/*===- 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 /*444 cases */, 127|128,124/*15999*/, TARGET_VAL(ISD::STORE),// ->16004
/*     5*/    OPC_RecordMemRef,
/*     6*/    OPC_RecordNode, // #0 = 'st' chained node
/*     7*/    OPC_Scope, 119|128,7/*1015*/, /*->1025*/ // 9 children in Scope
/*    10*/      OPC_RecordChild1, // #1 = $src
/*    11*/      OPC_Scope, 67, /*->80*/ // 22 children in Scope
/*    13*/        OPC_CheckChild1Type, MVT::v4f32,
/*    15*/        OPC_RecordChild2, // #2 = $dst
/*    16*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*    18*/        OPC_CheckPredicate, 1, // Predicate_store
/*    20*/        OPC_CheckPredicate, 2, // Predicate_nontemporalstore
/*    22*/        OPC_CheckPredicate, 3, // Predicate_alignednontemporalstore
/*    24*/        OPC_Scope, 17, /*->43*/ // 3 children in Scope
/*    26*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*    28*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*    31*/          OPC_EmitMergeInputChains1_0,
/*    32*/          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)
/*    43*/        /*Scope*/ 17, /*->61*/
/*    44*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*    46*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*    49*/          OPC_EmitMergeInputChains1_0,
/*    50*/          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)
/*    61*/        /*Scope*/ 17, /*->79*/
/*    62*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*    64*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*    67*/          OPC_EmitMergeInputChains1_0,
/*    68*/          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)
/*    79*/        0, /*End of Scope*/
/*    80*/      /*Scope*/ 67, /*->148*/
/*    81*/        OPC_CheckChild1Type, MVT::v2f64,
/*    83*/        OPC_RecordChild2, // #2 = $dst
/*    84*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*    86*/        OPC_CheckPredicate, 1, // Predicate_store
/*    88*/        OPC_CheckPredicate, 2, // Predicate_nontemporalstore
/*    90*/        OPC_CheckPredicate, 3, // Predicate_alignednontemporalstore
/*    92*/        OPC_Scope, 17, /*->111*/ // 3 children in Scope
/*    94*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*    96*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*    99*/          OPC_EmitMergeInputChains1_0,
/*   100*/          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)
/*   111*/        /*Scope*/ 17, /*->129*/
/*   112*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*   114*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   117*/          OPC_EmitMergeInputChains1_0,
/*   118*/          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)
/*   129*/        /*Scope*/ 17, /*->147*/
/*   130*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*   132*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   135*/          OPC_EmitMergeInputChains1_0,
/*   136*/          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)
/*   147*/        0, /*End of Scope*/
/*   148*/      /*Scope*/ 49, /*->198*/
/*   149*/        OPC_CheckChild1Type, MVT::v8f32,
/*   151*/        OPC_RecordChild2, // #2 = $dst
/*   152*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   154*/        OPC_CheckPredicate, 1, // Predicate_store
/*   156*/        OPC_CheckPredicate, 2, // Predicate_nontemporalstore
/*   158*/        OPC_CheckPredicate, 3, // Predicate_alignednontemporalstore
/*   160*/        OPC_Scope, 17, /*->179*/ // 2 children in Scope
/*   162*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*   164*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   167*/          OPC_EmitMergeInputChains1_0,
/*   168*/          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)
/*   179*/        /*Scope*/ 17, /*->197*/
/*   180*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*   182*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   185*/          OPC_EmitMergeInputChains1_0,
/*   186*/          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)
/*   197*/        0, /*End of Scope*/
/*   198*/      /*Scope*/ 49, /*->248*/
/*   199*/        OPC_CheckChild1Type, MVT::v4f64,
/*   201*/        OPC_RecordChild2, // #2 = $dst
/*   202*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   204*/        OPC_CheckPredicate, 1, // Predicate_store
/*   206*/        OPC_CheckPredicate, 2, // Predicate_nontemporalstore
/*   208*/        OPC_CheckPredicate, 3, // Predicate_alignednontemporalstore
/*   210*/        OPC_Scope, 17, /*->229*/ // 2 children in Scope
/*   212*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*   214*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   217*/          OPC_EmitMergeInputChains1_0,
/*   218*/          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)
/*   229*/        /*Scope*/ 17, /*->247*/
/*   230*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*   232*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   235*/          OPC_EmitMergeInputChains1_0,
/*   236*/          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)
/*   247*/        0, /*End of Scope*/
/*   248*/      /*Scope*/ 67, /*->316*/
/*   249*/        OPC_CheckChild1Type, MVT::v2i64,
/*   251*/        OPC_RecordChild2, // #2 = $dst
/*   252*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   254*/        OPC_CheckPredicate, 1, // Predicate_store
/*   256*/        OPC_CheckPredicate, 2, // Predicate_nontemporalstore
/*   258*/        OPC_CheckPredicate, 3, // Predicate_alignednontemporalstore
/*   260*/        OPC_Scope, 17, /*->279*/ // 3 children in Scope
/*   262*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*   264*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   267*/          OPC_EmitMergeInputChains1_0,
/*   268*/          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)
/*   279*/        /*Scope*/ 17, /*->297*/
/*   280*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*   282*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   285*/          OPC_EmitMergeInputChains1_0,
/*   286*/          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)
/*   297*/        /*Scope*/ 17, /*->315*/
/*   298*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*   300*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   303*/          OPC_EmitMergeInputChains1_0,
/*   304*/          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)
/*   315*/        0, /*End of Scope*/
/*   316*/      /*Scope*/ 49, /*->366*/
/*   317*/        OPC_CheckChild1Type, MVT::v4i64,
/*   319*/        OPC_RecordChild2, // #2 = $dst
/*   320*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   322*/        OPC_CheckPredicate, 1, // Predicate_store
/*   324*/        OPC_CheckPredicate, 2, // Predicate_nontemporalstore
/*   326*/        OPC_CheckPredicate, 3, // Predicate_alignednontemporalstore
/*   328*/        OPC_Scope, 17, /*->347*/ // 2 children in Scope
/*   330*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*   332*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   335*/          OPC_EmitMergeInputChains1_0,
/*   336*/          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)
/*   347*/        /*Scope*/ 17, /*->365*/
/*   348*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*   350*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   353*/          OPC_EmitMergeInputChains1_0,
/*   354*/          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)
/*   365*/        0, /*End of Scope*/
/*   366*/      /*Scope*/ 26, /*->393*/
/*   367*/        OPC_CheckChild1Type, MVT::i32,
/*   369*/        OPC_RecordChild2, // #2 = $dst
/*   370*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   372*/        OPC_CheckPredicate, 1, // Predicate_store
/*   374*/        OPC_CheckPredicate, 2, // Predicate_nontemporalstore
/*   376*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasSSE2())
/*   378*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   381*/        OPC_EmitMergeInputChains1_0,
/*   382*/        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)
/*   393*/      /*Scope*/ 26, /*->420*/
/*   394*/        OPC_CheckChild1Type, MVT::i64,
/*   396*/        OPC_RecordChild2, // #2 = $dst
/*   397*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   399*/        OPC_CheckPredicate, 1, // Predicate_store
/*   401*/        OPC_CheckPredicate, 2, // Predicate_nontemporalstore
/*   403*/        OPC_CheckPatternPredicate, 4, // (Subtarget->hasSSE2())
/*   405*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   408*/        OPC_EmitMergeInputChains1_0,
/*   409*/        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)
/*   420*/      /*Scope*/ 49, /*->470*/
/*   421*/        OPC_CheckChild1Type, MVT::v8i32,
/*   423*/        OPC_RecordChild2, // #2 = $dst
/*   424*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   426*/        OPC_CheckPredicate, 1, // Predicate_store
/*   428*/        OPC_CheckPredicate, 2, // Predicate_nontemporalstore
/*   430*/        OPC_CheckPredicate, 3, // Predicate_alignednontemporalstore
/*   432*/        OPC_Scope, 17, /*->451*/ // 2 children in Scope
/*   434*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*   436*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   439*/          OPC_EmitMergeInputChains1_0,
/*   440*/          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)
/*   451*/        /*Scope*/ 17, /*->469*/
/*   452*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*   454*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   457*/          OPC_EmitMergeInputChains1_0,
/*   458*/          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)
/*   469*/        0, /*End of Scope*/
/*   470*/      /*Scope*/ 49, /*->520*/
/*   471*/        OPC_CheckChild1Type, MVT::v16i16,
/*   473*/        OPC_RecordChild2, // #2 = $dst
/*   474*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   476*/        OPC_CheckPredicate, 1, // Predicate_store
/*   478*/        OPC_CheckPredicate, 2, // Predicate_nontemporalstore
/*   480*/        OPC_CheckPredicate, 3, // Predicate_alignednontemporalstore
/*   482*/        OPC_Scope, 17, /*->501*/ // 2 children in Scope
/*   484*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*   486*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   489*/          OPC_EmitMergeInputChains1_0,
/*   490*/          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)
/*   501*/        /*Scope*/ 17, /*->519*/
/*   502*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*   504*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   507*/          OPC_EmitMergeInputChains1_0,
/*   508*/          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)
/*   519*/        0, /*End of Scope*/
/*   520*/      /*Scope*/ 49, /*->570*/
/*   521*/        OPC_CheckChild1Type, MVT::v32i8,
/*   523*/        OPC_RecordChild2, // #2 = $dst
/*   524*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   526*/        OPC_CheckPredicate, 1, // Predicate_store
/*   528*/        OPC_CheckPredicate, 2, // Predicate_nontemporalstore
/*   530*/        OPC_CheckPredicate, 3, // Predicate_alignednontemporalstore
/*   532*/        OPC_Scope, 17, /*->551*/ // 2 children in Scope
/*   534*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*   536*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   539*/          OPC_EmitMergeInputChains1_0,
/*   540*/          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)
/*   551*/        /*Scope*/ 17, /*->569*/
/*   552*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*   554*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   557*/          OPC_EmitMergeInputChains1_0,
/*   558*/          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)
/*   569*/        0, /*End of Scope*/
/*   570*/      /*Scope*/ 67, /*->638*/
/*   571*/        OPC_CheckChild1Type, MVT::v4i32,
/*   573*/        OPC_RecordChild2, // #2 = $dst
/*   574*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   576*/        OPC_CheckPredicate, 1, // Predicate_store
/*   578*/        OPC_CheckPredicate, 2, // Predicate_nontemporalstore
/*   580*/        OPC_CheckPredicate, 3, // Predicate_alignednontemporalstore
/*   582*/        OPC_Scope, 17, /*->601*/ // 3 children in Scope
/*   584*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*   586*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   589*/          OPC_EmitMergeInputChains1_0,
/*   590*/          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)
/*   601*/        /*Scope*/ 17, /*->619*/
/*   602*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*   604*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   607*/          OPC_EmitMergeInputChains1_0,
/*   608*/          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)
/*   619*/        /*Scope*/ 17, /*->637*/
/*   620*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*   622*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   625*/          OPC_EmitMergeInputChains1_0,
/*   626*/          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)
/*   637*/        0, /*End of Scope*/
/*   638*/      /*Scope*/ 67, /*->706*/
/*   639*/        OPC_CheckChild1Type, MVT::v8i16,
/*   641*/        OPC_RecordChild2, // #2 = $dst
/*   642*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   644*/        OPC_CheckPredicate, 1, // Predicate_store
/*   646*/        OPC_CheckPredicate, 2, // Predicate_nontemporalstore
/*   648*/        OPC_CheckPredicate, 3, // Predicate_alignednontemporalstore
/*   650*/        OPC_Scope, 17, /*->669*/ // 3 children in Scope
/*   652*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*   654*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   657*/          OPC_EmitMergeInputChains1_0,
/*   658*/          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)
/*   669*/        /*Scope*/ 17, /*->687*/
/*   670*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*   672*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   675*/          OPC_EmitMergeInputChains1_0,
/*   676*/          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)
/*   687*/        /*Scope*/ 17, /*->705*/
/*   688*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*   690*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   693*/          OPC_EmitMergeInputChains1_0,
/*   694*/          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)
/*   705*/        0, /*End of Scope*/
/*   706*/      /*Scope*/ 67, /*->774*/
/*   707*/        OPC_CheckChild1Type, MVT::v16i8,
/*   709*/        OPC_RecordChild2, // #2 = $dst
/*   710*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   712*/        OPC_CheckPredicate, 1, // Predicate_store
/*   714*/        OPC_CheckPredicate, 2, // Predicate_nontemporalstore
/*   716*/        OPC_CheckPredicate, 3, // Predicate_alignednontemporalstore
/*   718*/        OPC_Scope, 17, /*->737*/ // 3 children in Scope
/*   720*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*   722*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   725*/          OPC_EmitMergeInputChains1_0,
/*   726*/          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)
/*   737*/        /*Scope*/ 17, /*->755*/
/*   738*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*   740*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   743*/          OPC_EmitMergeInputChains1_0,
/*   744*/          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)
/*   755*/        /*Scope*/ 17, /*->773*/
/*   756*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*   758*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   761*/          OPC_EmitMergeInputChains1_0,
/*   762*/          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)
/*   773*/        0, /*End of Scope*/
/*   774*/      /*Scope*/ 28, /*->803*/
/*   775*/        OPC_CheckChild1Type, MVT::v8i64,
/*   777*/        OPC_RecordChild2, // #2 = $dst
/*   778*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   780*/        OPC_CheckPredicate, 1, // Predicate_store
/*   782*/        OPC_CheckPredicate, 2, // Predicate_nontemporalstore
/*   784*/        OPC_CheckPredicate, 3, // Predicate_alignednontemporalstore
/*   786*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*   788*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   791*/        OPC_EmitMergeInputChains1_0,
/*   792*/        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)
/*   803*/      /*Scope*/ 28, /*->832*/
/*   804*/        OPC_CheckChild1Type, MVT::v8f64,
/*   806*/        OPC_RecordChild2, // #2 = $dst
/*   807*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   809*/        OPC_CheckPredicate, 1, // Predicate_store
/*   811*/        OPC_CheckPredicate, 2, // Predicate_nontemporalstore
/*   813*/        OPC_CheckPredicate, 3, // Predicate_alignednontemporalstore
/*   815*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*   817*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   820*/        OPC_EmitMergeInputChains1_0,
/*   821*/        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)
/*   832*/      /*Scope*/ 28, /*->861*/
/*   833*/        OPC_CheckChild1Type, MVT::v16f32,
/*   835*/        OPC_RecordChild2, // #2 = $dst
/*   836*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   838*/        OPC_CheckPredicate, 1, // Predicate_store
/*   840*/        OPC_CheckPredicate, 2, // Predicate_nontemporalstore
/*   842*/        OPC_CheckPredicate, 3, // Predicate_alignednontemporalstore
/*   844*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*   846*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   849*/        OPC_EmitMergeInputChains1_0,
/*   850*/        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)
/*   861*/      /*Scope*/ 28, /*->890*/
/*   862*/        OPC_CheckChild1Type, MVT::v16i32,
/*   864*/        OPC_RecordChild2, // #2 = $dst
/*   865*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   867*/        OPC_CheckPredicate, 1, // Predicate_store
/*   869*/        OPC_CheckPredicate, 2, // Predicate_nontemporalstore
/*   871*/        OPC_CheckPredicate, 3, // Predicate_alignednontemporalstore
/*   873*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*   875*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   878*/        OPC_EmitMergeInputChains1_0,
/*   879*/        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)
/*   890*/      /*Scope*/ 28, /*->919*/
/*   891*/        OPC_CheckChild1Type, MVT::v32i16,
/*   893*/        OPC_RecordChild2, // #2 = $dst
/*   894*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   896*/        OPC_CheckPredicate, 1, // Predicate_store
/*   898*/        OPC_CheckPredicate, 2, // Predicate_nontemporalstore
/*   900*/        OPC_CheckPredicate, 3, // Predicate_alignednontemporalstore
/*   902*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*   904*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   907*/        OPC_EmitMergeInputChains1_0,
/*   908*/        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)
/*   919*/      /*Scope*/ 28, /*->948*/
/*   920*/        OPC_CheckChild1Type, MVT::v64i8,
/*   922*/        OPC_RecordChild2, // #2 = $dst
/*   923*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   925*/        OPC_CheckPredicate, 1, // Predicate_store
/*   927*/        OPC_CheckPredicate, 2, // Predicate_nontemporalstore
/*   929*/        OPC_CheckPredicate, 3, // Predicate_alignednontemporalstore
/*   931*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*   933*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   936*/        OPC_EmitMergeInputChains1_0,
/*   937*/        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)
/*   948*/      /*Scope*/ 37, /*->986*/
/*   949*/        OPC_CheckChild1Type, MVT::f32,
/*   951*/        OPC_RecordChild2, // #2 = $dst
/*   952*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   954*/        OPC_CheckPredicate, 1, // Predicate_store
/*   956*/        OPC_CheckPredicate, 2, // Predicate_nontemporalstore
/*   958*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasSSE4A())
/*   960*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*   963*/        OPC_EmitMergeInputChains1_0,
/*   964*/        OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*   967*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4f32, 2/*#Ops*/, 1, 8,  // Results = #9
/*   975*/        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] }))
/*   986*/      /*Scope*/ 37, /*->1024*/
/*   987*/        OPC_CheckChild1Type, MVT::f64,
/*   989*/        OPC_RecordChild2, // #2 = $dst
/*   990*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*   992*/        OPC_CheckPredicate, 1, // Predicate_store
/*   994*/        OPC_CheckPredicate, 2, // Predicate_nontemporalstore
/*   996*/        OPC_CheckPatternPredicate, 7, // (Subtarget->hasSSE4A())
/*   998*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  1001*/        OPC_EmitMergeInputChains1_0,
/*  1002*/        OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*  1005*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2f64, 2/*#Ops*/, 1, 8,  // Results = #9
/*  1013*/        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] }))
/*  1024*/      0, /*End of Scope*/
/*  1025*/    /*Scope*/ 123|128,80/*10363*/, /*->11390*/
/*  1027*/      OPC_MoveChild1,
/*  1028*/      OPC_SwitchOpcode /*16 cases */, 30|128,5/*670*/, TARGET_VAL(ISD::SHL),// ->1703
/*  1033*/        OPC_MoveChild0,
/*  1034*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  1037*/        OPC_RecordMemRef,
/*  1038*/        OPC_RecordNode, // #1 = 'ld' chained node
/*  1039*/        OPC_CheckFoldableChainNode,
/*  1040*/        OPC_RecordChild1, // #2 = $dst
/*  1041*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  1043*/        OPC_Scope, 48, /*->1093*/ // 16 children in Scope
/*  1045*/          OPC_CheckPredicate, 5, // Predicate_loadi8
/*  1047*/          OPC_MoveParent,
/*  1048*/          OPC_MoveChild1,
/*  1049*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*  1052*/          OPC_RecordChild0, // #3 = physreg input CL
/*  1053*/          OPC_MoveChild1,
/*  1054*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  1057*/          OPC_MoveParent,
/*  1058*/          OPC_CheckPredicate, 6, // Predicate_shiftMask32
/*  1060*/          OPC_CheckType, MVT::i8,
/*  1062*/          OPC_MoveParent,
/*  1063*/          OPC_CheckType, MVT::i8,
/*  1065*/          OPC_MoveParent,
/*  1066*/          OPC_CheckChild2Same, 2,
/*  1068*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1070*/          OPC_CheckPredicate, 1, // Predicate_store
/*  1072*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  1075*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  1079*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  1082*/          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_shiftMask32>>), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 54
                    // Dst: (SHL8mCL:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*  1093*/        /*Scope*/ 48, /*->1142*/
/*  1094*/          OPC_CheckPredicate, 7, // Predicate_loadi16
/*  1096*/          OPC_MoveParent,
/*  1097*/          OPC_MoveChild1,
/*  1098*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*  1101*/          OPC_RecordChild0, // #3 = physreg input CL
/*  1102*/          OPC_MoveChild1,
/*  1103*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  1106*/          OPC_MoveParent,
/*  1107*/          OPC_CheckPredicate, 6, // Predicate_shiftMask32
/*  1109*/          OPC_CheckType, MVT::i8,
/*  1111*/          OPC_MoveParent,
/*  1112*/          OPC_CheckType, MVT::i16,
/*  1114*/          OPC_MoveParent,
/*  1115*/          OPC_CheckChild2Same, 2,
/*  1117*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1119*/          OPC_CheckPredicate, 1, // Predicate_store
/*  1121*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  1124*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  1128*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  1131*/          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_shiftMask32>>), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 54
                    // Dst: (SHL16mCL:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*  1142*/        /*Scope*/ 48, /*->1191*/
/*  1143*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*  1145*/          OPC_MoveParent,
/*  1146*/          OPC_MoveChild1,
/*  1147*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*  1150*/          OPC_RecordChild0, // #3 = physreg input CL
/*  1151*/          OPC_MoveChild1,
/*  1152*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  1155*/          OPC_MoveParent,
/*  1156*/          OPC_CheckPredicate, 6, // Predicate_shiftMask32
/*  1158*/          OPC_CheckType, MVT::i8,
/*  1160*/          OPC_MoveParent,
/*  1161*/          OPC_CheckType, MVT::i32,
/*  1163*/          OPC_MoveParent,
/*  1164*/          OPC_CheckChild2Same, 2,
/*  1166*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1168*/          OPC_CheckPredicate, 1, // Predicate_store
/*  1170*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  1173*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  1177*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  1180*/          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_shiftMask32>>), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 54
                    // Dst: (SHL32mCL:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*  1191*/        /*Scope*/ 48, /*->1240*/
/*  1192*/          OPC_CheckPredicate, 9, // Predicate_load
/*  1194*/          OPC_MoveParent,
/*  1195*/          OPC_MoveChild1,
/*  1196*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*  1199*/          OPC_RecordChild0, // #3 = physreg input CL
/*  1200*/          OPC_MoveChild1,
/*  1201*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  1204*/          OPC_MoveParent,
/*  1205*/          OPC_CheckPredicate, 10, // Predicate_shiftMask64
/*  1207*/          OPC_CheckType, MVT::i8,
/*  1209*/          OPC_MoveParent,
/*  1210*/          OPC_CheckType, MVT::i64,
/*  1212*/          OPC_MoveParent,
/*  1213*/          OPC_CheckChild2Same, 2,
/*  1215*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1217*/          OPC_CheckPredicate, 1, // Predicate_store
/*  1219*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  1222*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  1226*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  1229*/          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_shiftMask64>>), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 54
                    // Dst: (SHL64mCL:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*  1240*/        /*Scope*/ 34, /*->1275*/
/*  1241*/          OPC_CheckPredicate, 5, // Predicate_loadi8
/*  1243*/          OPC_MoveParent,
/*  1244*/          OPC_CheckChild1Integer, 1, 
/*  1246*/          OPC_CheckChild1Type, MVT::i8,
/*  1248*/          OPC_CheckType, MVT::i8,
/*  1250*/          OPC_MoveParent,
/*  1251*/          OPC_CheckChild2Same, 2,
/*  1253*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1255*/          OPC_CheckPredicate, 1, // Predicate_store
/*  1257*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  1260*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  1264*/          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)
/*  1275*/        /*Scope*/ 34, /*->1310*/
/*  1276*/          OPC_CheckPredicate, 7, // Predicate_loadi16
/*  1278*/          OPC_MoveParent,
/*  1279*/          OPC_CheckChild1Integer, 1, 
/*  1281*/          OPC_CheckChild1Type, MVT::i8,
/*  1283*/          OPC_CheckType, MVT::i16,
/*  1285*/          OPC_MoveParent,
/*  1286*/          OPC_CheckChild2Same, 2,
/*  1288*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1290*/          OPC_CheckPredicate, 1, // Predicate_store
/*  1292*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  1295*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  1299*/          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)
/*  1310*/        /*Scope*/ 34, /*->1345*/
/*  1311*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*  1313*/          OPC_MoveParent,
/*  1314*/          OPC_CheckChild1Integer, 1, 
/*  1316*/          OPC_CheckChild1Type, MVT::i8,
/*  1318*/          OPC_CheckType, MVT::i32,
/*  1320*/          OPC_MoveParent,
/*  1321*/          OPC_CheckChild2Same, 2,
/*  1323*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1325*/          OPC_CheckPredicate, 1, // Predicate_store
/*  1327*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  1330*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  1334*/          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)
/*  1345*/        /*Scope*/ 36, /*->1382*/
/*  1346*/          OPC_CheckPredicate, 9, // Predicate_load
/*  1348*/          OPC_MoveParent,
/*  1349*/          OPC_CheckChild1Integer, 1, 
/*  1351*/          OPC_CheckChild1Type, MVT::i8,
/*  1353*/          OPC_CheckType, MVT::i64,
/*  1355*/          OPC_MoveParent,
/*  1356*/          OPC_CheckChild2Same, 2,
/*  1358*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1360*/          OPC_CheckPredicate, 1, // Predicate_store
/*  1362*/          OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  1364*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  1367*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  1371*/          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)
/*  1382*/        /*Scope*/ 41, /*->1424*/
/*  1383*/          OPC_CheckPredicate, 5, // Predicate_loadi8
/*  1385*/          OPC_MoveParent,
/*  1386*/          OPC_RecordChild1, // #3 = $src
/*  1387*/          OPC_MoveChild1,
/*  1388*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  1391*/          OPC_CheckType, MVT::i8,
/*  1393*/          OPC_MoveParent,
/*  1394*/          OPC_CheckType, MVT::i8,
/*  1396*/          OPC_MoveParent,
/*  1397*/          OPC_CheckChild2Same, 2,
/*  1399*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1401*/          OPC_CheckPredicate, 1, // Predicate_store
/*  1403*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  1406*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  1410*/          OPC_EmitConvertToTarget, 3,
/*  1412*/          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)
/*  1424*/        /*Scope*/ 41, /*->1466*/
/*  1425*/          OPC_CheckPredicate, 7, // Predicate_loadi16
/*  1427*/          OPC_MoveParent,
/*  1428*/          OPC_RecordChild1, // #3 = $src
/*  1429*/          OPC_MoveChild1,
/*  1430*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  1433*/          OPC_CheckType, MVT::i8,
/*  1435*/          OPC_MoveParent,
/*  1436*/          OPC_CheckType, MVT::i16,
/*  1438*/          OPC_MoveParent,
/*  1439*/          OPC_CheckChild2Same, 2,
/*  1441*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1443*/          OPC_CheckPredicate, 1, // Predicate_store
/*  1445*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  1448*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  1452*/          OPC_EmitConvertToTarget, 3,
/*  1454*/          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)
/*  1466*/        /*Scope*/ 41, /*->1508*/
/*  1467*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*  1469*/          OPC_MoveParent,
/*  1470*/          OPC_RecordChild1, // #3 = $src
/*  1471*/          OPC_MoveChild1,
/*  1472*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  1475*/          OPC_CheckType, MVT::i8,
/*  1477*/          OPC_MoveParent,
/*  1478*/          OPC_CheckType, MVT::i32,
/*  1480*/          OPC_MoveParent,
/*  1481*/          OPC_CheckChild2Same, 2,
/*  1483*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1485*/          OPC_CheckPredicate, 1, // Predicate_store
/*  1487*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  1490*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  1494*/          OPC_EmitConvertToTarget, 3,
/*  1496*/          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)
/*  1508*/        /*Scope*/ 43, /*->1552*/
/*  1509*/          OPC_CheckPredicate, 9, // Predicate_load
/*  1511*/          OPC_MoveParent,
/*  1512*/          OPC_RecordChild1, // #3 = $src
/*  1513*/          OPC_MoveChild1,
/*  1514*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  1517*/          OPC_CheckType, MVT::i8,
/*  1519*/          OPC_MoveParent,
/*  1520*/          OPC_CheckType, MVT::i64,
/*  1522*/          OPC_MoveParent,
/*  1523*/          OPC_CheckChild2Same, 2,
/*  1525*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1527*/          OPC_CheckPredicate, 1, // Predicate_store
/*  1529*/          OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  1531*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  1534*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  1538*/          OPC_EmitConvertToTarget, 3,
/*  1540*/          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)
/*  1552*/        /*Scope*/ 36, /*->1589*/
/*  1553*/          OPC_CheckPredicate, 5, // Predicate_loadi8
/*  1555*/          OPC_MoveParent,
/*  1556*/          OPC_RecordChild1, // #3 = physreg input CL
/*  1557*/          OPC_CheckChild1Type, MVT::i8,
/*  1559*/          OPC_CheckType, MVT::i8,
/*  1561*/          OPC_MoveParent,
/*  1562*/          OPC_CheckChild2Same, 2,
/*  1564*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1566*/          OPC_CheckPredicate, 1, // Predicate_store
/*  1568*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  1571*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  1575*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  1578*/          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)
/*  1589*/        /*Scope*/ 36, /*->1626*/
/*  1590*/          OPC_CheckPredicate, 7, // Predicate_loadi16
/*  1592*/          OPC_MoveParent,
/*  1593*/          OPC_RecordChild1, // #3 = physreg input CL
/*  1594*/          OPC_CheckChild1Type, MVT::i8,
/*  1596*/          OPC_CheckType, MVT::i16,
/*  1598*/          OPC_MoveParent,
/*  1599*/          OPC_CheckChild2Same, 2,
/*  1601*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1603*/          OPC_CheckPredicate, 1, // Predicate_store
/*  1605*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  1608*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  1612*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  1615*/          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)
/*  1626*/        /*Scope*/ 36, /*->1663*/
/*  1627*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*  1629*/          OPC_MoveParent,
/*  1630*/          OPC_RecordChild1, // #3 = physreg input CL
/*  1631*/          OPC_CheckChild1Type, MVT::i8,
/*  1633*/          OPC_CheckType, MVT::i32,
/*  1635*/          OPC_MoveParent,
/*  1636*/          OPC_CheckChild2Same, 2,
/*  1638*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1640*/          OPC_CheckPredicate, 1, // Predicate_store
/*  1642*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  1645*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  1649*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  1652*/          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)
/*  1663*/        /*Scope*/ 38, /*->1702*/
/*  1664*/          OPC_CheckPredicate, 9, // Predicate_load
/*  1666*/          OPC_MoveParent,
/*  1667*/          OPC_RecordChild1, // #3 = physreg input CL
/*  1668*/          OPC_CheckChild1Type, MVT::i8,
/*  1670*/          OPC_CheckType, MVT::i64,
/*  1672*/          OPC_MoveParent,
/*  1673*/          OPC_CheckChild2Same, 2,
/*  1675*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1677*/          OPC_CheckPredicate, 1, // Predicate_store
/*  1679*/          OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  1681*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  1684*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  1688*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  1691*/          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)
/*  1702*/        0, /*End of Scope*/
/*  1703*/      /*SwitchOpcode*/ 30|128,5/*670*/, TARGET_VAL(ISD::SRL),// ->2377
/*  1707*/        OPC_MoveChild0,
/*  1708*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  1711*/        OPC_RecordMemRef,
/*  1712*/        OPC_RecordNode, // #1 = 'ld' chained node
/*  1713*/        OPC_CheckFoldableChainNode,
/*  1714*/        OPC_RecordChild1, // #2 = $dst
/*  1715*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  1717*/        OPC_Scope, 48, /*->1767*/ // 16 children in Scope
/*  1719*/          OPC_CheckPredicate, 5, // Predicate_loadi8
/*  1721*/          OPC_MoveParent,
/*  1722*/          OPC_MoveChild1,
/*  1723*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*  1726*/          OPC_RecordChild0, // #3 = physreg input CL
/*  1727*/          OPC_MoveChild1,
/*  1728*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  1731*/          OPC_MoveParent,
/*  1732*/          OPC_CheckPredicate, 6, // Predicate_shiftMask32
/*  1734*/          OPC_CheckType, MVT::i8,
/*  1736*/          OPC_MoveParent,
/*  1737*/          OPC_CheckType, MVT::i8,
/*  1739*/          OPC_MoveParent,
/*  1740*/          OPC_CheckChild2Same, 2,
/*  1742*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1744*/          OPC_CheckPredicate, 1, // Predicate_store
/*  1746*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  1749*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  1753*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  1756*/          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_shiftMask32>>), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 54
                    // Dst: (SHR8mCL:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*  1767*/        /*Scope*/ 48, /*->1816*/
/*  1768*/          OPC_CheckPredicate, 7, // Predicate_loadi16
/*  1770*/          OPC_MoveParent,
/*  1771*/          OPC_MoveChild1,
/*  1772*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*  1775*/          OPC_RecordChild0, // #3 = physreg input CL
/*  1776*/          OPC_MoveChild1,
/*  1777*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  1780*/          OPC_MoveParent,
/*  1781*/          OPC_CheckPredicate, 6, // Predicate_shiftMask32
/*  1783*/          OPC_CheckType, MVT::i8,
/*  1785*/          OPC_MoveParent,
/*  1786*/          OPC_CheckType, MVT::i16,
/*  1788*/          OPC_MoveParent,
/*  1789*/          OPC_CheckChild2Same, 2,
/*  1791*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1793*/          OPC_CheckPredicate, 1, // Predicate_store
/*  1795*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  1798*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  1802*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  1805*/          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_shiftMask32>>), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 54
                    // Dst: (SHR16mCL:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*  1816*/        /*Scope*/ 48, /*->1865*/
/*  1817*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*  1819*/          OPC_MoveParent,
/*  1820*/          OPC_MoveChild1,
/*  1821*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*  1824*/          OPC_RecordChild0, // #3 = physreg input CL
/*  1825*/          OPC_MoveChild1,
/*  1826*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  1829*/          OPC_MoveParent,
/*  1830*/          OPC_CheckPredicate, 6, // Predicate_shiftMask32
/*  1832*/          OPC_CheckType, MVT::i8,
/*  1834*/          OPC_MoveParent,
/*  1835*/          OPC_CheckType, MVT::i32,
/*  1837*/          OPC_MoveParent,
/*  1838*/          OPC_CheckChild2Same, 2,
/*  1840*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1842*/          OPC_CheckPredicate, 1, // Predicate_store
/*  1844*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  1847*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  1851*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  1854*/          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_shiftMask32>>), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 54
                    // Dst: (SHR32mCL:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*  1865*/        /*Scope*/ 48, /*->1914*/
/*  1866*/          OPC_CheckPredicate, 9, // Predicate_load
/*  1868*/          OPC_MoveParent,
/*  1869*/          OPC_MoveChild1,
/*  1870*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*  1873*/          OPC_RecordChild0, // #3 = physreg input CL
/*  1874*/          OPC_MoveChild1,
/*  1875*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  1878*/          OPC_MoveParent,
/*  1879*/          OPC_CheckPredicate, 10, // Predicate_shiftMask64
/*  1881*/          OPC_CheckType, MVT::i8,
/*  1883*/          OPC_MoveParent,
/*  1884*/          OPC_CheckType, MVT::i64,
/*  1886*/          OPC_MoveParent,
/*  1887*/          OPC_CheckChild2Same, 2,
/*  1889*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1891*/          OPC_CheckPredicate, 1, // Predicate_store
/*  1893*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  1896*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  1900*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  1903*/          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_shiftMask64>>), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 54
                    // Dst: (SHR64mCL:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*  1914*/        /*Scope*/ 34, /*->1949*/
/*  1915*/          OPC_CheckPredicate, 5, // Predicate_loadi8
/*  1917*/          OPC_MoveParent,
/*  1918*/          OPC_CheckChild1Integer, 1, 
/*  1920*/          OPC_CheckChild1Type, MVT::i8,
/*  1922*/          OPC_CheckType, MVT::i8,
/*  1924*/          OPC_MoveParent,
/*  1925*/          OPC_CheckChild2Same, 2,
/*  1927*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1929*/          OPC_CheckPredicate, 1, // Predicate_store
/*  1931*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  1934*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  1938*/          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)
/*  1949*/        /*Scope*/ 34, /*->1984*/
/*  1950*/          OPC_CheckPredicate, 7, // Predicate_loadi16
/*  1952*/          OPC_MoveParent,
/*  1953*/          OPC_CheckChild1Integer, 1, 
/*  1955*/          OPC_CheckChild1Type, MVT::i8,
/*  1957*/          OPC_CheckType, MVT::i16,
/*  1959*/          OPC_MoveParent,
/*  1960*/          OPC_CheckChild2Same, 2,
/*  1962*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1964*/          OPC_CheckPredicate, 1, // Predicate_store
/*  1966*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  1969*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  1973*/          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)
/*  1984*/        /*Scope*/ 34, /*->2019*/
/*  1985*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*  1987*/          OPC_MoveParent,
/*  1988*/          OPC_CheckChild1Integer, 1, 
/*  1990*/          OPC_CheckChild1Type, MVT::i8,
/*  1992*/          OPC_CheckType, MVT::i32,
/*  1994*/          OPC_MoveParent,
/*  1995*/          OPC_CheckChild2Same, 2,
/*  1997*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  1999*/          OPC_CheckPredicate, 1, // Predicate_store
/*  2001*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  2004*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  2008*/          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)
/*  2019*/        /*Scope*/ 36, /*->2056*/
/*  2020*/          OPC_CheckPredicate, 9, // Predicate_load
/*  2022*/          OPC_MoveParent,
/*  2023*/          OPC_CheckChild1Integer, 1, 
/*  2025*/          OPC_CheckChild1Type, MVT::i8,
/*  2027*/          OPC_CheckType, MVT::i64,
/*  2029*/          OPC_MoveParent,
/*  2030*/          OPC_CheckChild2Same, 2,
/*  2032*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2034*/          OPC_CheckPredicate, 1, // Predicate_store
/*  2036*/          OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  2038*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  2041*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  2045*/          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)
/*  2056*/        /*Scope*/ 41, /*->2098*/
/*  2057*/          OPC_CheckPredicate, 5, // Predicate_loadi8
/*  2059*/          OPC_MoveParent,
/*  2060*/          OPC_RecordChild1, // #3 = $src
/*  2061*/          OPC_MoveChild1,
/*  2062*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  2065*/          OPC_CheckType, MVT::i8,
/*  2067*/          OPC_MoveParent,
/*  2068*/          OPC_CheckType, MVT::i8,
/*  2070*/          OPC_MoveParent,
/*  2071*/          OPC_CheckChild2Same, 2,
/*  2073*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2075*/          OPC_CheckPredicate, 1, // Predicate_store
/*  2077*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  2080*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  2084*/          OPC_EmitConvertToTarget, 3,
/*  2086*/          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)
/*  2098*/        /*Scope*/ 41, /*->2140*/
/*  2099*/          OPC_CheckPredicate, 7, // Predicate_loadi16
/*  2101*/          OPC_MoveParent,
/*  2102*/          OPC_RecordChild1, // #3 = $src
/*  2103*/          OPC_MoveChild1,
/*  2104*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  2107*/          OPC_CheckType, MVT::i8,
/*  2109*/          OPC_MoveParent,
/*  2110*/          OPC_CheckType, MVT::i16,
/*  2112*/          OPC_MoveParent,
/*  2113*/          OPC_CheckChild2Same, 2,
/*  2115*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2117*/          OPC_CheckPredicate, 1, // Predicate_store
/*  2119*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  2122*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  2126*/          OPC_EmitConvertToTarget, 3,
/*  2128*/          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)
/*  2140*/        /*Scope*/ 41, /*->2182*/
/*  2141*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*  2143*/          OPC_MoveParent,
/*  2144*/          OPC_RecordChild1, // #3 = $src
/*  2145*/          OPC_MoveChild1,
/*  2146*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  2149*/          OPC_CheckType, MVT::i8,
/*  2151*/          OPC_MoveParent,
/*  2152*/          OPC_CheckType, MVT::i32,
/*  2154*/          OPC_MoveParent,
/*  2155*/          OPC_CheckChild2Same, 2,
/*  2157*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2159*/          OPC_CheckPredicate, 1, // Predicate_store
/*  2161*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  2164*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  2168*/          OPC_EmitConvertToTarget, 3,
/*  2170*/          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)
/*  2182*/        /*Scope*/ 43, /*->2226*/
/*  2183*/          OPC_CheckPredicate, 9, // Predicate_load
/*  2185*/          OPC_MoveParent,
/*  2186*/          OPC_RecordChild1, // #3 = $src
/*  2187*/          OPC_MoveChild1,
/*  2188*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  2191*/          OPC_CheckType, MVT::i8,
/*  2193*/          OPC_MoveParent,
/*  2194*/          OPC_CheckType, MVT::i64,
/*  2196*/          OPC_MoveParent,
/*  2197*/          OPC_CheckChild2Same, 2,
/*  2199*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2201*/          OPC_CheckPredicate, 1, // Predicate_store
/*  2203*/          OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  2205*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  2208*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  2212*/          OPC_EmitConvertToTarget, 3,
/*  2214*/          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)
/*  2226*/        /*Scope*/ 36, /*->2263*/
/*  2227*/          OPC_CheckPredicate, 5, // Predicate_loadi8
/*  2229*/          OPC_MoveParent,
/*  2230*/          OPC_RecordChild1, // #3 = physreg input CL
/*  2231*/          OPC_CheckChild1Type, MVT::i8,
/*  2233*/          OPC_CheckType, MVT::i8,
/*  2235*/          OPC_MoveParent,
/*  2236*/          OPC_CheckChild2Same, 2,
/*  2238*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2240*/          OPC_CheckPredicate, 1, // Predicate_store
/*  2242*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  2245*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  2249*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  2252*/          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)
/*  2263*/        /*Scope*/ 36, /*->2300*/
/*  2264*/          OPC_CheckPredicate, 7, // Predicate_loadi16
/*  2266*/          OPC_MoveParent,
/*  2267*/          OPC_RecordChild1, // #3 = physreg input CL
/*  2268*/          OPC_CheckChild1Type, MVT::i8,
/*  2270*/          OPC_CheckType, MVT::i16,
/*  2272*/          OPC_MoveParent,
/*  2273*/          OPC_CheckChild2Same, 2,
/*  2275*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2277*/          OPC_CheckPredicate, 1, // Predicate_store
/*  2279*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  2282*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  2286*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  2289*/          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)
/*  2300*/        /*Scope*/ 36, /*->2337*/
/*  2301*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*  2303*/          OPC_MoveParent,
/*  2304*/          OPC_RecordChild1, // #3 = physreg input CL
/*  2305*/          OPC_CheckChild1Type, MVT::i8,
/*  2307*/          OPC_CheckType, MVT::i32,
/*  2309*/          OPC_MoveParent,
/*  2310*/          OPC_CheckChild2Same, 2,
/*  2312*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2314*/          OPC_CheckPredicate, 1, // Predicate_store
/*  2316*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  2319*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  2323*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  2326*/          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)
/*  2337*/        /*Scope*/ 38, /*->2376*/
/*  2338*/          OPC_CheckPredicate, 9, // Predicate_load
/*  2340*/          OPC_MoveParent,
/*  2341*/          OPC_RecordChild1, // #3 = physreg input CL
/*  2342*/          OPC_CheckChild1Type, MVT::i8,
/*  2344*/          OPC_CheckType, MVT::i64,
/*  2346*/          OPC_MoveParent,
/*  2347*/          OPC_CheckChild2Same, 2,
/*  2349*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2351*/          OPC_CheckPredicate, 1, // Predicate_store
/*  2353*/          OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  2355*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  2358*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  2362*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  2365*/          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)
/*  2376*/        0, /*End of Scope*/
/*  2377*/      /*SwitchOpcode*/ 30|128,5/*670*/, TARGET_VAL(ISD::SRA),// ->3051
/*  2381*/        OPC_MoveChild0,
/*  2382*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  2385*/        OPC_RecordMemRef,
/*  2386*/        OPC_RecordNode, // #1 = 'ld' chained node
/*  2387*/        OPC_CheckFoldableChainNode,
/*  2388*/        OPC_RecordChild1, // #2 = $dst
/*  2389*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  2391*/        OPC_Scope, 48, /*->2441*/ // 16 children in Scope
/*  2393*/          OPC_CheckPredicate, 5, // Predicate_loadi8
/*  2395*/          OPC_MoveParent,
/*  2396*/          OPC_MoveChild1,
/*  2397*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*  2400*/          OPC_RecordChild0, // #3 = physreg input CL
/*  2401*/          OPC_MoveChild1,
/*  2402*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  2405*/          OPC_MoveParent,
/*  2406*/          OPC_CheckPredicate, 6, // Predicate_shiftMask32
/*  2408*/          OPC_CheckType, MVT::i8,
/*  2410*/          OPC_MoveParent,
/*  2411*/          OPC_CheckType, MVT::i8,
/*  2413*/          OPC_MoveParent,
/*  2414*/          OPC_CheckChild2Same, 2,
/*  2416*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2418*/          OPC_CheckPredicate, 1, // Predicate_store
/*  2420*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  2423*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  2427*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  2430*/          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_shiftMask32>>), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 54
                    // Dst: (SAR8mCL:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*  2441*/        /*Scope*/ 48, /*->2490*/
/*  2442*/          OPC_CheckPredicate, 7, // Predicate_loadi16
/*  2444*/          OPC_MoveParent,
/*  2445*/          OPC_MoveChild1,
/*  2446*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*  2449*/          OPC_RecordChild0, // #3 = physreg input CL
/*  2450*/          OPC_MoveChild1,
/*  2451*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  2454*/          OPC_MoveParent,
/*  2455*/          OPC_CheckPredicate, 6, // Predicate_shiftMask32
/*  2457*/          OPC_CheckType, MVT::i8,
/*  2459*/          OPC_MoveParent,
/*  2460*/          OPC_CheckType, MVT::i16,
/*  2462*/          OPC_MoveParent,
/*  2463*/          OPC_CheckChild2Same, 2,
/*  2465*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2467*/          OPC_CheckPredicate, 1, // Predicate_store
/*  2469*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  2472*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  2476*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  2479*/          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_shiftMask32>>), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 54
                    // Dst: (SAR16mCL:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*  2490*/        /*Scope*/ 48, /*->2539*/
/*  2491*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*  2493*/          OPC_MoveParent,
/*  2494*/          OPC_MoveChild1,
/*  2495*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*  2498*/          OPC_RecordChild0, // #3 = physreg input CL
/*  2499*/          OPC_MoveChild1,
/*  2500*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  2503*/          OPC_MoveParent,
/*  2504*/          OPC_CheckPredicate, 6, // Predicate_shiftMask32
/*  2506*/          OPC_CheckType, MVT::i8,
/*  2508*/          OPC_MoveParent,
/*  2509*/          OPC_CheckType, MVT::i32,
/*  2511*/          OPC_MoveParent,
/*  2512*/          OPC_CheckChild2Same, 2,
/*  2514*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2516*/          OPC_CheckPredicate, 1, // Predicate_store
/*  2518*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  2521*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  2525*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  2528*/          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_shiftMask32>>), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 54
                    // Dst: (SAR32mCL:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*  2539*/        /*Scope*/ 48, /*->2588*/
/*  2540*/          OPC_CheckPredicate, 9, // Predicate_load
/*  2542*/          OPC_MoveParent,
/*  2543*/          OPC_MoveChild1,
/*  2544*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*  2547*/          OPC_RecordChild0, // #3 = physreg input CL
/*  2548*/          OPC_MoveChild1,
/*  2549*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  2552*/          OPC_MoveParent,
/*  2553*/          OPC_CheckPredicate, 10, // Predicate_shiftMask64
/*  2555*/          OPC_CheckType, MVT::i8,
/*  2557*/          OPC_MoveParent,
/*  2558*/          OPC_CheckType, MVT::i64,
/*  2560*/          OPC_MoveParent,
/*  2561*/          OPC_CheckChild2Same, 2,
/*  2563*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2565*/          OPC_CheckPredicate, 1, // Predicate_store
/*  2567*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  2570*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  2574*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  2577*/          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_shiftMask64>>), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 54
                    // Dst: (SAR64mCL:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*  2588*/        /*Scope*/ 34, /*->2623*/
/*  2589*/          OPC_CheckPredicate, 5, // Predicate_loadi8
/*  2591*/          OPC_MoveParent,
/*  2592*/          OPC_CheckChild1Integer, 1, 
/*  2594*/          OPC_CheckChild1Type, MVT::i8,
/*  2596*/          OPC_CheckType, MVT::i8,
/*  2598*/          OPC_MoveParent,
/*  2599*/          OPC_CheckChild2Same, 2,
/*  2601*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2603*/          OPC_CheckPredicate, 1, // Predicate_store
/*  2605*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  2608*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  2612*/          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)
/*  2623*/        /*Scope*/ 34, /*->2658*/
/*  2624*/          OPC_CheckPredicate, 7, // Predicate_loadi16
/*  2626*/          OPC_MoveParent,
/*  2627*/          OPC_CheckChild1Integer, 1, 
/*  2629*/          OPC_CheckChild1Type, MVT::i8,
/*  2631*/          OPC_CheckType, MVT::i16,
/*  2633*/          OPC_MoveParent,
/*  2634*/          OPC_CheckChild2Same, 2,
/*  2636*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2638*/          OPC_CheckPredicate, 1, // Predicate_store
/*  2640*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  2643*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  2647*/          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)
/*  2658*/        /*Scope*/ 34, /*->2693*/
/*  2659*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*  2661*/          OPC_MoveParent,
/*  2662*/          OPC_CheckChild1Integer, 1, 
/*  2664*/          OPC_CheckChild1Type, MVT::i8,
/*  2666*/          OPC_CheckType, MVT::i32,
/*  2668*/          OPC_MoveParent,
/*  2669*/          OPC_CheckChild2Same, 2,
/*  2671*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2673*/          OPC_CheckPredicate, 1, // Predicate_store
/*  2675*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  2678*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  2682*/          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)
/*  2693*/        /*Scope*/ 36, /*->2730*/
/*  2694*/          OPC_CheckPredicate, 9, // Predicate_load
/*  2696*/          OPC_MoveParent,
/*  2697*/          OPC_CheckChild1Integer, 1, 
/*  2699*/          OPC_CheckChild1Type, MVT::i8,
/*  2701*/          OPC_CheckType, MVT::i64,
/*  2703*/          OPC_MoveParent,
/*  2704*/          OPC_CheckChild2Same, 2,
/*  2706*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2708*/          OPC_CheckPredicate, 1, // Predicate_store
/*  2710*/          OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  2712*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  2715*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  2719*/          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)
/*  2730*/        /*Scope*/ 41, /*->2772*/
/*  2731*/          OPC_CheckPredicate, 5, // Predicate_loadi8
/*  2733*/          OPC_MoveParent,
/*  2734*/          OPC_RecordChild1, // #3 = $src
/*  2735*/          OPC_MoveChild1,
/*  2736*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  2739*/          OPC_CheckType, MVT::i8,
/*  2741*/          OPC_MoveParent,
/*  2742*/          OPC_CheckType, MVT::i8,
/*  2744*/          OPC_MoveParent,
/*  2745*/          OPC_CheckChild2Same, 2,
/*  2747*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2749*/          OPC_CheckPredicate, 1, // Predicate_store
/*  2751*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  2754*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  2758*/          OPC_EmitConvertToTarget, 3,
/*  2760*/          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)
/*  2772*/        /*Scope*/ 41, /*->2814*/
/*  2773*/          OPC_CheckPredicate, 7, // Predicate_loadi16
/*  2775*/          OPC_MoveParent,
/*  2776*/          OPC_RecordChild1, // #3 = $src
/*  2777*/          OPC_MoveChild1,
/*  2778*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  2781*/          OPC_CheckType, MVT::i8,
/*  2783*/          OPC_MoveParent,
/*  2784*/          OPC_CheckType, MVT::i16,
/*  2786*/          OPC_MoveParent,
/*  2787*/          OPC_CheckChild2Same, 2,
/*  2789*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2791*/          OPC_CheckPredicate, 1, // Predicate_store
/*  2793*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  2796*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  2800*/          OPC_EmitConvertToTarget, 3,
/*  2802*/          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)
/*  2814*/        /*Scope*/ 41, /*->2856*/
/*  2815*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*  2817*/          OPC_MoveParent,
/*  2818*/          OPC_RecordChild1, // #3 = $src
/*  2819*/          OPC_MoveChild1,
/*  2820*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  2823*/          OPC_CheckType, MVT::i8,
/*  2825*/          OPC_MoveParent,
/*  2826*/          OPC_CheckType, MVT::i32,
/*  2828*/          OPC_MoveParent,
/*  2829*/          OPC_CheckChild2Same, 2,
/*  2831*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2833*/          OPC_CheckPredicate, 1, // Predicate_store
/*  2835*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  2838*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  2842*/          OPC_EmitConvertToTarget, 3,
/*  2844*/          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)
/*  2856*/        /*Scope*/ 43, /*->2900*/
/*  2857*/          OPC_CheckPredicate, 9, // Predicate_load
/*  2859*/          OPC_MoveParent,
/*  2860*/          OPC_RecordChild1, // #3 = $src
/*  2861*/          OPC_MoveChild1,
/*  2862*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  2865*/          OPC_CheckType, MVT::i8,
/*  2867*/          OPC_MoveParent,
/*  2868*/          OPC_CheckType, MVT::i64,
/*  2870*/          OPC_MoveParent,
/*  2871*/          OPC_CheckChild2Same, 2,
/*  2873*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2875*/          OPC_CheckPredicate, 1, // Predicate_store
/*  2877*/          OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  2879*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  2882*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  2886*/          OPC_EmitConvertToTarget, 3,
/*  2888*/          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)
/*  2900*/        /*Scope*/ 36, /*->2937*/
/*  2901*/          OPC_CheckPredicate, 5, // Predicate_loadi8
/*  2903*/          OPC_MoveParent,
/*  2904*/          OPC_RecordChild1, // #3 = physreg input CL
/*  2905*/          OPC_CheckChild1Type, MVT::i8,
/*  2907*/          OPC_CheckType, MVT::i8,
/*  2909*/          OPC_MoveParent,
/*  2910*/          OPC_CheckChild2Same, 2,
/*  2912*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2914*/          OPC_CheckPredicate, 1, // Predicate_store
/*  2916*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  2919*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  2923*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  2926*/          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)
/*  2937*/        /*Scope*/ 36, /*->2974*/
/*  2938*/          OPC_CheckPredicate, 7, // Predicate_loadi16
/*  2940*/          OPC_MoveParent,
/*  2941*/          OPC_RecordChild1, // #3 = physreg input CL
/*  2942*/          OPC_CheckChild1Type, MVT::i8,
/*  2944*/          OPC_CheckType, MVT::i16,
/*  2946*/          OPC_MoveParent,
/*  2947*/          OPC_CheckChild2Same, 2,
/*  2949*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2951*/          OPC_CheckPredicate, 1, // Predicate_store
/*  2953*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  2956*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  2960*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  2963*/          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)
/*  2974*/        /*Scope*/ 36, /*->3011*/
/*  2975*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*  2977*/          OPC_MoveParent,
/*  2978*/          OPC_RecordChild1, // #3 = physreg input CL
/*  2979*/          OPC_CheckChild1Type, MVT::i8,
/*  2981*/          OPC_CheckType, MVT::i32,
/*  2983*/          OPC_MoveParent,
/*  2984*/          OPC_CheckChild2Same, 2,
/*  2986*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  2988*/          OPC_CheckPredicate, 1, // Predicate_store
/*  2990*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  2993*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  2997*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  3000*/          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)
/*  3011*/        /*Scope*/ 38, /*->3050*/
/*  3012*/          OPC_CheckPredicate, 9, // Predicate_load
/*  3014*/          OPC_MoveParent,
/*  3015*/          OPC_RecordChild1, // #3 = physreg input CL
/*  3016*/          OPC_CheckChild1Type, MVT::i8,
/*  3018*/          OPC_CheckType, MVT::i64,
/*  3020*/          OPC_MoveParent,
/*  3021*/          OPC_CheckChild2Same, 2,
/*  3023*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  3025*/          OPC_CheckPredicate, 1, // Predicate_store
/*  3027*/          OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  3029*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  3032*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  3036*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  3039*/          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)
/*  3050*/        0, /*End of Scope*/
/*  3051*/      /*SwitchOpcode*/ 44|128,6/*812*/, TARGET_VAL(ISD::ROTL),// ->3867
/*  3055*/        OPC_MoveChild0,
/*  3056*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  3059*/        OPC_RecordMemRef,
/*  3060*/        OPC_RecordNode, // #1 = 'ld' chained node
/*  3061*/        OPC_CheckFoldableChainNode,
/*  3062*/        OPC_RecordChild1, // #2 = $dst
/*  3063*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  3065*/        OPC_Scope, 48, /*->3115*/ // 20 children in Scope
/*  3067*/          OPC_CheckPredicate, 5, // Predicate_loadi8
/*  3069*/          OPC_MoveParent,
/*  3070*/          OPC_MoveChild1,
/*  3071*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*  3074*/          OPC_RecordChild0, // #3 = physreg input CL
/*  3075*/          OPC_MoveChild1,
/*  3076*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  3079*/          OPC_MoveParent,
/*  3080*/          OPC_CheckPredicate, 11, // Predicate_shiftMask8
/*  3082*/          OPC_CheckType, MVT::i8,
/*  3084*/          OPC_MoveParent,
/*  3085*/          OPC_CheckType, MVT::i8,
/*  3087*/          OPC_MoveParent,
/*  3088*/          OPC_CheckChild2Same, 2,
/*  3090*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  3092*/          OPC_CheckPredicate, 1, // Predicate_store
/*  3094*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  3097*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  3101*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  3104*/          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_shiftMask8>>), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 54
                    // Dst: (ROL8mCL:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*  3115*/        /*Scope*/ 48, /*->3164*/
/*  3116*/          OPC_CheckPredicate, 7, // Predicate_loadi16
/*  3118*/          OPC_MoveParent,
/*  3119*/          OPC_MoveChild1,
/*  3120*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*  3123*/          OPC_RecordChild0, // #3 = physreg input CL
/*  3124*/          OPC_MoveChild1,
/*  3125*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  3128*/          OPC_MoveParent,
/*  3129*/          OPC_CheckPredicate, 12, // Predicate_shiftMask16
/*  3131*/          OPC_CheckType, MVT::i8,
/*  3133*/          OPC_MoveParent,
/*  3134*/          OPC_CheckType, MVT::i16,
/*  3136*/          OPC_MoveParent,
/*  3137*/          OPC_CheckChild2Same, 2,
/*  3139*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  3141*/          OPC_CheckPredicate, 1, // Predicate_store
/*  3143*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  3146*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  3150*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  3153*/          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_shiftMask16>>), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 54
                    // Dst: (ROL16mCL:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*  3164*/        /*Scope*/ 48, /*->3213*/
/*  3165*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*  3167*/          OPC_MoveParent,
/*  3168*/          OPC_MoveChild1,
/*  3169*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*  3172*/          OPC_RecordChild0, // #3 = physreg input CL
/*  3173*/          OPC_MoveChild1,
/*  3174*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  3177*/          OPC_MoveParent,
/*  3178*/          OPC_CheckPredicate, 6, // Predicate_shiftMask32
/*  3180*/          OPC_CheckType, MVT::i8,
/*  3182*/          OPC_MoveParent,
/*  3183*/          OPC_CheckType, MVT::i32,
/*  3185*/          OPC_MoveParent,
/*  3186*/          OPC_CheckChild2Same, 2,
/*  3188*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  3190*/          OPC_CheckPredicate, 1, // Predicate_store
/*  3192*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  3195*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  3199*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  3202*/          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_shiftMask32>>), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 54
                    // Dst: (ROL32mCL:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*  3213*/        /*Scope*/ 48, /*->3262*/
/*  3214*/          OPC_CheckPredicate, 9, // Predicate_load
/*  3216*/          OPC_MoveParent,
/*  3217*/          OPC_MoveChild1,
/*  3218*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*  3221*/          OPC_RecordChild0, // #3 = physreg input CL
/*  3222*/          OPC_MoveChild1,
/*  3223*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  3226*/          OPC_MoveParent,
/*  3227*/          OPC_CheckPredicate, 10, // Predicate_shiftMask64
/*  3229*/          OPC_CheckType, MVT::i8,
/*  3231*/          OPC_MoveParent,
/*  3232*/          OPC_CheckType, MVT::i64,
/*  3234*/          OPC_MoveParent,
/*  3235*/          OPC_CheckChild2Same, 2,
/*  3237*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  3239*/          OPC_CheckPredicate, 1, // Predicate_store
/*  3241*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  3244*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  3248*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  3251*/          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_shiftMask64>>), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 54
                    // Dst: (ROL64mCL:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*  3262*/        /*Scope*/ 34, /*->3297*/
/*  3263*/          OPC_CheckPredicate, 5, // Predicate_loadi8
/*  3265*/          OPC_MoveParent,
/*  3266*/          OPC_CheckChild1Integer, 1, 
/*  3268*/          OPC_CheckChild1Type, MVT::i8,
/*  3270*/          OPC_CheckType, MVT::i8,
/*  3272*/          OPC_MoveParent,
/*  3273*/          OPC_CheckChild2Same, 2,
/*  3275*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  3277*/          OPC_CheckPredicate, 1, // Predicate_store
/*  3279*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  3282*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  3286*/          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)
/*  3297*/        /*Scope*/ 34, /*->3332*/
/*  3298*/          OPC_CheckPredicate, 7, // Predicate_loadi16
/*  3300*/          OPC_MoveParent,
/*  3301*/          OPC_CheckChild1Integer, 1, 
/*  3303*/          OPC_CheckChild1Type, MVT::i8,
/*  3305*/          OPC_CheckType, MVT::i16,
/*  3307*/          OPC_MoveParent,
/*  3308*/          OPC_CheckChild2Same, 2,
/*  3310*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  3312*/          OPC_CheckPredicate, 1, // Predicate_store
/*  3314*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  3317*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  3321*/          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)
/*  3332*/        /*Scope*/ 34, /*->3367*/
/*  3333*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*  3335*/          OPC_MoveParent,
/*  3336*/          OPC_CheckChild1Integer, 1, 
/*  3338*/          OPC_CheckChild1Type, MVT::i8,
/*  3340*/          OPC_CheckType, MVT::i32,
/*  3342*/          OPC_MoveParent,
/*  3343*/          OPC_CheckChild2Same, 2,
/*  3345*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  3347*/          OPC_CheckPredicate, 1, // Predicate_store
/*  3349*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  3352*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  3356*/          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)
/*  3367*/        /*Scope*/ 36, /*->3404*/
/*  3368*/          OPC_CheckPredicate, 9, // Predicate_load
/*  3370*/          OPC_MoveParent,
/*  3371*/          OPC_CheckChild1Integer, 1, 
/*  3373*/          OPC_CheckChild1Type, MVT::i8,
/*  3375*/          OPC_CheckType, MVT::i64,
/*  3377*/          OPC_MoveParent,
/*  3378*/          OPC_CheckChild2Same, 2,
/*  3380*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  3382*/          OPC_CheckPredicate, 1, // Predicate_store
/*  3384*/          OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  3386*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  3389*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  3393*/          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)
/*  3404*/        /*Scope*/ 34, /*->3439*/
/*  3405*/          OPC_CheckPredicate, 5, // Predicate_loadi8
/*  3407*/          OPC_MoveParent,
/*  3408*/          OPC_CheckChild1Integer, 7, 
/*  3410*/          OPC_CheckChild1Type, MVT::i8,
/*  3412*/          OPC_CheckType, MVT::i8,
/*  3414*/          OPC_MoveParent,
/*  3415*/          OPC_CheckChild2Same, 2,
/*  3417*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  3419*/          OPC_CheckPredicate, 1, // Predicate_store
/*  3421*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  3424*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  3428*/          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)
/*  3439*/        /*Scope*/ 34, /*->3474*/
/*  3440*/          OPC_CheckPredicate, 7, // Predicate_loadi16
/*  3442*/          OPC_MoveParent,
/*  3443*/          OPC_CheckChild1Integer, 15, 
/*  3445*/          OPC_CheckChild1Type, MVT::i8,
/*  3447*/          OPC_CheckType, MVT::i16,
/*  3449*/          OPC_MoveParent,
/*  3450*/          OPC_CheckChild2Same, 2,
/*  3452*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  3454*/          OPC_CheckPredicate, 1, // Predicate_store
/*  3456*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  3459*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  3463*/          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)
/*  3474*/        /*Scope*/ 34, /*->3509*/
/*  3475*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*  3477*/          OPC_MoveParent,
/*  3478*/          OPC_CheckChild1Integer, 31, 
/*  3480*/          OPC_CheckChild1Type, MVT::i8,
/*  3482*/          OPC_CheckType, MVT::i32,
/*  3484*/          OPC_MoveParent,
/*  3485*/          OPC_CheckChild2Same, 2,
/*  3487*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  3489*/          OPC_CheckPredicate, 1, // Predicate_store
/*  3491*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  3494*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  3498*/          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)
/*  3509*/        /*Scope*/ 36, /*->3546*/
/*  3510*/          OPC_CheckPredicate, 9, // Predicate_load
/*  3512*/          OPC_MoveParent,
/*  3513*/          OPC_CheckChild1Integer, 63, 
/*  3515*/          OPC_CheckChild1Type, MVT::i8,
/*  3517*/          OPC_CheckType, MVT::i64,
/*  3519*/          OPC_MoveParent,
/*  3520*/          OPC_CheckChild2Same, 2,
/*  3522*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  3524*/          OPC_CheckPredicate, 1, // Predicate_store
/*  3526*/          OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  3528*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  3531*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  3535*/          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)
/*  3546*/        /*Scope*/ 41, /*->3588*/
/*  3547*/          OPC_CheckPredicate, 5, // Predicate_loadi8
/*  3549*/          OPC_MoveParent,
/*  3550*/          OPC_RecordChild1, // #3 = $src1
/*  3551*/          OPC_MoveChild1,
/*  3552*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  3555*/          OPC_CheckType, MVT::i8,
/*  3557*/          OPC_MoveParent,
/*  3558*/          OPC_CheckType, MVT::i8,
/*  3560*/          OPC_MoveParent,
/*  3561*/          OPC_CheckChild2Same, 2,
/*  3563*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  3565*/          OPC_CheckPredicate, 1, // Predicate_store
/*  3567*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  3570*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  3574*/          OPC_EmitConvertToTarget, 3,
/*  3576*/          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)
/*  3588*/        /*Scope*/ 41, /*->3630*/
/*  3589*/          OPC_CheckPredicate, 7, // Predicate_loadi16
/*  3591*/          OPC_MoveParent,
/*  3592*/          OPC_RecordChild1, // #3 = $src1
/*  3593*/          OPC_MoveChild1,
/*  3594*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  3597*/          OPC_CheckType, MVT::i8,
/*  3599*/          OPC_MoveParent,
/*  3600*/          OPC_CheckType, MVT::i16,
/*  3602*/          OPC_MoveParent,
/*  3603*/          OPC_CheckChild2Same, 2,
/*  3605*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  3607*/          OPC_CheckPredicate, 1, // Predicate_store
/*  3609*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  3612*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  3616*/          OPC_EmitConvertToTarget, 3,
/*  3618*/          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)
/*  3630*/        /*Scope*/ 41, /*->3672*/
/*  3631*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*  3633*/          OPC_MoveParent,
/*  3634*/          OPC_RecordChild1, // #3 = $src1
/*  3635*/          OPC_MoveChild1,
/*  3636*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  3639*/          OPC_CheckType, MVT::i8,
/*  3641*/          OPC_MoveParent,
/*  3642*/          OPC_CheckType, MVT::i32,
/*  3644*/          OPC_MoveParent,
/*  3645*/          OPC_CheckChild2Same, 2,
/*  3647*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  3649*/          OPC_CheckPredicate, 1, // Predicate_store
/*  3651*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  3654*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  3658*/          OPC_EmitConvertToTarget, 3,
/*  3660*/          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)
/*  3672*/        /*Scope*/ 43, /*->3716*/
/*  3673*/          OPC_CheckPredicate, 9, // Predicate_load
/*  3675*/          OPC_MoveParent,
/*  3676*/          OPC_RecordChild1, // #3 = $src1
/*  3677*/          OPC_MoveChild1,
/*  3678*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  3681*/          OPC_CheckType, MVT::i8,
/*  3683*/          OPC_MoveParent,
/*  3684*/          OPC_CheckType, MVT::i64,
/*  3686*/          OPC_MoveParent,
/*  3687*/          OPC_CheckChild2Same, 2,
/*  3689*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  3691*/          OPC_CheckPredicate, 1, // Predicate_store
/*  3693*/          OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  3695*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  3698*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  3702*/          OPC_EmitConvertToTarget, 3,
/*  3704*/          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)
/*  3716*/        /*Scope*/ 36, /*->3753*/
/*  3717*/          OPC_CheckPredicate, 5, // Predicate_loadi8
/*  3719*/          OPC_MoveParent,
/*  3720*/          OPC_RecordChild1, // #3 = physreg input CL
/*  3721*/          OPC_CheckChild1Type, MVT::i8,
/*  3723*/          OPC_CheckType, MVT::i8,
/*  3725*/          OPC_MoveParent,
/*  3726*/          OPC_CheckChild2Same, 2,
/*  3728*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  3730*/          OPC_CheckPredicate, 1, // Predicate_store
/*  3732*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  3735*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  3739*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  3742*/          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)
/*  3753*/        /*Scope*/ 36, /*->3790*/
/*  3754*/          OPC_CheckPredicate, 7, // Predicate_loadi16
/*  3756*/          OPC_MoveParent,
/*  3757*/          OPC_RecordChild1, // #3 = physreg input CL
/*  3758*/          OPC_CheckChild1Type, MVT::i8,
/*  3760*/          OPC_CheckType, MVT::i16,
/*  3762*/          OPC_MoveParent,
/*  3763*/          OPC_CheckChild2Same, 2,
/*  3765*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  3767*/          OPC_CheckPredicate, 1, // Predicate_store
/*  3769*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  3772*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  3776*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  3779*/          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)
/*  3790*/        /*Scope*/ 36, /*->3827*/
/*  3791*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*  3793*/          OPC_MoveParent,
/*  3794*/          OPC_RecordChild1, // #3 = physreg input CL
/*  3795*/          OPC_CheckChild1Type, MVT::i8,
/*  3797*/          OPC_CheckType, MVT::i32,
/*  3799*/          OPC_MoveParent,
/*  3800*/          OPC_CheckChild2Same, 2,
/*  3802*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  3804*/          OPC_CheckPredicate, 1, // Predicate_store
/*  3806*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  3809*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  3813*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  3816*/          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)
/*  3827*/        /*Scope*/ 38, /*->3866*/
/*  3828*/          OPC_CheckPredicate, 9, // Predicate_load
/*  3830*/          OPC_MoveParent,
/*  3831*/          OPC_RecordChild1, // #3 = physreg input CL
/*  3832*/          OPC_CheckChild1Type, MVT::i8,
/*  3834*/          OPC_CheckType, MVT::i64,
/*  3836*/          OPC_MoveParent,
/*  3837*/          OPC_CheckChild2Same, 2,
/*  3839*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  3841*/          OPC_CheckPredicate, 1, // Predicate_store
/*  3843*/          OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  3845*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  3848*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  3852*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  3855*/          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)
/*  3866*/        0, /*End of Scope*/
/*  3867*/      /*SwitchOpcode*/ 44|128,6/*812*/, TARGET_VAL(ISD::ROTR),// ->4683
/*  3871*/        OPC_MoveChild0,
/*  3872*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  3875*/        OPC_RecordMemRef,
/*  3876*/        OPC_RecordNode, // #1 = 'ld' chained node
/*  3877*/        OPC_CheckFoldableChainNode,
/*  3878*/        OPC_RecordChild1, // #2 = $dst
/*  3879*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  3881*/        OPC_Scope, 48, /*->3931*/ // 20 children in Scope
/*  3883*/          OPC_CheckPredicate, 5, // Predicate_loadi8
/*  3885*/          OPC_MoveParent,
/*  3886*/          OPC_MoveChild1,
/*  3887*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*  3890*/          OPC_RecordChild0, // #3 = physreg input CL
/*  3891*/          OPC_MoveChild1,
/*  3892*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  3895*/          OPC_MoveParent,
/*  3896*/          OPC_CheckPredicate, 11, // Predicate_shiftMask8
/*  3898*/          OPC_CheckType, MVT::i8,
/*  3900*/          OPC_MoveParent,
/*  3901*/          OPC_CheckType, MVT::i8,
/*  3903*/          OPC_MoveParent,
/*  3904*/          OPC_CheckChild2Same, 2,
/*  3906*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  3908*/          OPC_CheckPredicate, 1, // Predicate_store
/*  3910*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  3913*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  3917*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  3920*/          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_shiftMask8>>), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 54
                    // Dst: (ROR8mCL:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*  3931*/        /*Scope*/ 48, /*->3980*/
/*  3932*/          OPC_CheckPredicate, 7, // Predicate_loadi16
/*  3934*/          OPC_MoveParent,
/*  3935*/          OPC_MoveChild1,
/*  3936*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*  3939*/          OPC_RecordChild0, // #3 = physreg input CL
/*  3940*/          OPC_MoveChild1,
/*  3941*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  3944*/          OPC_MoveParent,
/*  3945*/          OPC_CheckPredicate, 12, // Predicate_shiftMask16
/*  3947*/          OPC_CheckType, MVT::i8,
/*  3949*/          OPC_MoveParent,
/*  3950*/          OPC_CheckType, MVT::i16,
/*  3952*/          OPC_MoveParent,
/*  3953*/          OPC_CheckChild2Same, 2,
/*  3955*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  3957*/          OPC_CheckPredicate, 1, // Predicate_store
/*  3959*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  3962*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  3966*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  3969*/          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_shiftMask16>>), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 54
                    // Dst: (ROR16mCL:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*  3980*/        /*Scope*/ 48, /*->4029*/
/*  3981*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*  3983*/          OPC_MoveParent,
/*  3984*/          OPC_MoveChild1,
/*  3985*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*  3988*/          OPC_RecordChild0, // #3 = physreg input CL
/*  3989*/          OPC_MoveChild1,
/*  3990*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  3993*/          OPC_MoveParent,
/*  3994*/          OPC_CheckPredicate, 6, // Predicate_shiftMask32
/*  3996*/          OPC_CheckType, MVT::i8,
/*  3998*/          OPC_MoveParent,
/*  3999*/          OPC_CheckType, MVT::i32,
/*  4001*/          OPC_MoveParent,
/*  4002*/          OPC_CheckChild2Same, 2,
/*  4004*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  4006*/          OPC_CheckPredicate, 1, // Predicate_store
/*  4008*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  4011*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  4015*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  4018*/          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_shiftMask32>>), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 54
                    // Dst: (ROR32mCL:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*  4029*/        /*Scope*/ 48, /*->4078*/
/*  4030*/          OPC_CheckPredicate, 9, // Predicate_load
/*  4032*/          OPC_MoveParent,
/*  4033*/          OPC_MoveChild1,
/*  4034*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*  4037*/          OPC_RecordChild0, // #3 = physreg input CL
/*  4038*/          OPC_MoveChild1,
/*  4039*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  4042*/          OPC_MoveParent,
/*  4043*/          OPC_CheckPredicate, 10, // Predicate_shiftMask64
/*  4045*/          OPC_CheckType, MVT::i8,
/*  4047*/          OPC_MoveParent,
/*  4048*/          OPC_CheckType, MVT::i64,
/*  4050*/          OPC_MoveParent,
/*  4051*/          OPC_CheckChild2Same, 2,
/*  4053*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  4055*/          OPC_CheckPredicate, 1, // Predicate_store
/*  4057*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  4060*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  4064*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  4067*/          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_shiftMask64>>), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 54
                    // Dst: (ROR64mCL:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*  4078*/        /*Scope*/ 34, /*->4113*/
/*  4079*/          OPC_CheckPredicate, 5, // Predicate_loadi8
/*  4081*/          OPC_MoveParent,
/*  4082*/          OPC_CheckChild1Integer, 1, 
/*  4084*/          OPC_CheckChild1Type, MVT::i8,
/*  4086*/          OPC_CheckType, MVT::i8,
/*  4088*/          OPC_MoveParent,
/*  4089*/          OPC_CheckChild2Same, 2,
/*  4091*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  4093*/          OPC_CheckPredicate, 1, // Predicate_store
/*  4095*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  4098*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  4102*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROR8m1), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (st (rotr:{ *:[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: (ROR8m1:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*  4113*/        /*Scope*/ 34, /*->4148*/
/*  4114*/          OPC_CheckPredicate, 7, // Predicate_loadi16
/*  4116*/          OPC_MoveParent,
/*  4117*/          OPC_CheckChild1Integer, 1, 
/*  4119*/          OPC_CheckChild1Type, MVT::i8,
/*  4121*/          OPC_CheckType, MVT::i16,
/*  4123*/          OPC_MoveParent,
/*  4124*/          OPC_CheckChild2Same, 2,
/*  4126*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  4128*/          OPC_CheckPredicate, 1, // Predicate_store
/*  4130*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  4133*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  4137*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROR16m1), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (st (rotr:{ *:[i16] } (ld:{ *:[i16] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, 1:{ *:[i8] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 52
                    // Dst: (ROR16m1:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*  4148*/        /*Scope*/ 34, /*->4183*/
/*  4149*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*  4151*/          OPC_MoveParent,
/*  4152*/          OPC_CheckChild1Integer, 1, 
/*  4154*/          OPC_CheckChild1Type, MVT::i8,
/*  4156*/          OPC_CheckType, MVT::i32,
/*  4158*/          OPC_MoveParent,
/*  4159*/          OPC_CheckChild2Same, 2,
/*  4161*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  4163*/          OPC_CheckPredicate, 1, // Predicate_store
/*  4165*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  4168*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  4172*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROR32m1), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (st (rotr:{ *:[i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, 1:{ *:[i8] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 52
                    // Dst: (ROR32m1:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*  4183*/        /*Scope*/ 36, /*->4220*/
/*  4184*/          OPC_CheckPredicate, 9, // Predicate_load
/*  4186*/          OPC_MoveParent,
/*  4187*/          OPC_CheckChild1Integer, 1, 
/*  4189*/          OPC_CheckChild1Type, MVT::i8,
/*  4191*/          OPC_CheckType, MVT::i64,
/*  4193*/          OPC_MoveParent,
/*  4194*/          OPC_CheckChild2Same, 2,
/*  4196*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  4198*/          OPC_CheckPredicate, 1, // Predicate_store
/*  4200*/          OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  4202*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  4205*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  4209*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROR64m1), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (st (rotr:{ *:[i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, 1:{ *:[i8] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 52
                    // Dst: (ROR64m1:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*  4220*/        /*Scope*/ 34, /*->4255*/
/*  4221*/          OPC_CheckPredicate, 5, // Predicate_loadi8
/*  4223*/          OPC_MoveParent,
/*  4224*/          OPC_CheckChild1Integer, 7, 
/*  4226*/          OPC_CheckChild1Type, MVT::i8,
/*  4228*/          OPC_CheckType, MVT::i8,
/*  4230*/          OPC_MoveParent,
/*  4231*/          OPC_CheckChild2Same, 2,
/*  4233*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  4235*/          OPC_CheckPredicate, 1, // Predicate_store
/*  4237*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  4240*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  4244*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROL8m1), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (st (rotr:{ *:[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: (ROL8m1:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*  4255*/        /*Scope*/ 34, /*->4290*/
/*  4256*/          OPC_CheckPredicate, 7, // Predicate_loadi16
/*  4258*/          OPC_MoveParent,
/*  4259*/          OPC_CheckChild1Integer, 15, 
/*  4261*/          OPC_CheckChild1Type, MVT::i8,
/*  4263*/          OPC_CheckType, MVT::i16,
/*  4265*/          OPC_MoveParent,
/*  4266*/          OPC_CheckChild2Same, 2,
/*  4268*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  4270*/          OPC_CheckPredicate, 1, // Predicate_store
/*  4272*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  4275*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  4279*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROL16m1), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (st (rotr:{ *:[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: (ROL16m1:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*  4290*/        /*Scope*/ 34, /*->4325*/
/*  4291*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*  4293*/          OPC_MoveParent,
/*  4294*/          OPC_CheckChild1Integer, 31, 
/*  4296*/          OPC_CheckChild1Type, MVT::i8,
/*  4298*/          OPC_CheckType, MVT::i32,
/*  4300*/          OPC_MoveParent,
/*  4301*/          OPC_CheckChild2Same, 2,
/*  4303*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  4305*/          OPC_CheckPredicate, 1, // Predicate_store
/*  4307*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  4310*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  4314*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROL32m1), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (st (rotr:{ *:[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: (ROL32m1:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*  4325*/        /*Scope*/ 36, /*->4362*/
/*  4326*/          OPC_CheckPredicate, 9, // Predicate_load
/*  4328*/          OPC_MoveParent,
/*  4329*/          OPC_CheckChild1Integer, 63, 
/*  4331*/          OPC_CheckChild1Type, MVT::i8,
/*  4333*/          OPC_CheckType, MVT::i64,
/*  4335*/          OPC_MoveParent,
/*  4336*/          OPC_CheckChild2Same, 2,
/*  4338*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  4340*/          OPC_CheckPredicate, 1, // Predicate_store
/*  4342*/          OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  4344*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  4347*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  4351*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROL64m1), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (st (rotr:{ *:[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: (ROL64m1:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/*  4362*/        /*Scope*/ 41, /*->4404*/
/*  4363*/          OPC_CheckPredicate, 5, // Predicate_loadi8
/*  4365*/          OPC_MoveParent,
/*  4366*/          OPC_RecordChild1, // #3 = $src
/*  4367*/          OPC_MoveChild1,
/*  4368*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  4371*/          OPC_CheckType, MVT::i8,
/*  4373*/          OPC_MoveParent,
/*  4374*/          OPC_CheckType, MVT::i8,
/*  4376*/          OPC_MoveParent,
/*  4377*/          OPC_CheckChild2Same, 2,
/*  4379*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  4381*/          OPC_CheckPredicate, 1, // Predicate_store
/*  4383*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  4386*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  4390*/          OPC_EmitConvertToTarget, 3,
/*  4392*/          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)
/*  4404*/        /*Scope*/ 41, /*->4446*/
/*  4405*/          OPC_CheckPredicate, 7, // Predicate_loadi16
/*  4407*/          OPC_MoveParent,
/*  4408*/          OPC_RecordChild1, // #3 = $src
/*  4409*/          OPC_MoveChild1,
/*  4410*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  4413*/          OPC_CheckType, MVT::i8,
/*  4415*/          OPC_MoveParent,
/*  4416*/          OPC_CheckType, MVT::i16,
/*  4418*/          OPC_MoveParent,
/*  4419*/          OPC_CheckChild2Same, 2,
/*  4421*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  4423*/          OPC_CheckPredicate, 1, // Predicate_store
/*  4425*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  4428*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  4432*/          OPC_EmitConvertToTarget, 3,
/*  4434*/          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)
/*  4446*/        /*Scope*/ 41, /*->4488*/
/*  4447*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*  4449*/          OPC_MoveParent,
/*  4450*/          OPC_RecordChild1, // #3 = $src
/*  4451*/          OPC_MoveChild1,
/*  4452*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  4455*/          OPC_CheckType, MVT::i8,
/*  4457*/          OPC_MoveParent,
/*  4458*/          OPC_CheckType, MVT::i32,
/*  4460*/          OPC_MoveParent,
/*  4461*/          OPC_CheckChild2Same, 2,
/*  4463*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  4465*/          OPC_CheckPredicate, 1, // Predicate_store
/*  4467*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  4470*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  4474*/          OPC_EmitConvertToTarget, 3,
/*  4476*/          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)
/*  4488*/        /*Scope*/ 43, /*->4532*/
/*  4489*/          OPC_CheckPredicate, 9, // Predicate_load
/*  4491*/          OPC_MoveParent,
/*  4492*/          OPC_RecordChild1, // #3 = $src
/*  4493*/          OPC_MoveChild1,
/*  4494*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  4497*/          OPC_CheckType, MVT::i8,
/*  4499*/          OPC_MoveParent,
/*  4500*/          OPC_CheckType, MVT::i64,
/*  4502*/          OPC_MoveParent,
/*  4503*/          OPC_CheckChild2Same, 2,
/*  4505*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  4507*/          OPC_CheckPredicate, 1, // Predicate_store
/*  4509*/          OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  4511*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  4514*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  4518*/          OPC_EmitConvertToTarget, 3,
/*  4520*/          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)
/*  4532*/        /*Scope*/ 36, /*->4569*/
/*  4533*/          OPC_CheckPredicate, 5, // Predicate_loadi8
/*  4535*/          OPC_MoveParent,
/*  4536*/          OPC_RecordChild1, // #3 = physreg input CL
/*  4537*/          OPC_CheckChild1Type, MVT::i8,
/*  4539*/          OPC_CheckType, MVT::i8,
/*  4541*/          OPC_MoveParent,
/*  4542*/          OPC_CheckChild2Same, 2,
/*  4544*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  4546*/          OPC_CheckPredicate, 1, // Predicate_store
/*  4548*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  4551*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  4555*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  4558*/          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)
/*  4569*/        /*Scope*/ 36, /*->4606*/
/*  4570*/          OPC_CheckPredicate, 7, // Predicate_loadi16
/*  4572*/          OPC_MoveParent,
/*  4573*/          OPC_RecordChild1, // #3 = physreg input CL
/*  4574*/          OPC_CheckChild1Type, MVT::i8,
/*  4576*/          OPC_CheckType, MVT::i16,
/*  4578*/          OPC_MoveParent,
/*  4579*/          OPC_CheckChild2Same, 2,
/*  4581*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  4583*/          OPC_CheckPredicate, 1, // Predicate_store
/*  4585*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  4588*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  4592*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  4595*/          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)
/*  4606*/        /*Scope*/ 36, /*->4643*/
/*  4607*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*  4609*/          OPC_MoveParent,
/*  4610*/          OPC_RecordChild1, // #3 = physreg input CL
/*  4611*/          OPC_CheckChild1Type, MVT::i8,
/*  4613*/          OPC_CheckType, MVT::i32,
/*  4615*/          OPC_MoveParent,
/*  4616*/          OPC_CheckChild2Same, 2,
/*  4618*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  4620*/          OPC_CheckPredicate, 1, // Predicate_store
/*  4622*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  4625*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  4629*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  4632*/          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)
/*  4643*/        /*Scope*/ 38, /*->4682*/
/*  4644*/          OPC_CheckPredicate, 9, // Predicate_load
/*  4646*/          OPC_MoveParent,
/*  4647*/          OPC_RecordChild1, // #3 = physreg input CL
/*  4648*/          OPC_CheckChild1Type, MVT::i8,
/*  4650*/          OPC_CheckType, MVT::i64,
/*  4652*/          OPC_MoveParent,
/*  4653*/          OPC_CheckChild2Same, 2,
/*  4655*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  4657*/          OPC_CheckPredicate, 1, // Predicate_store
/*  4659*/          OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  4661*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  4664*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  4668*/          OPC_EmitCopyToReg, 3, X86::CL,
/*  4671*/          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)
/*  4682*/        0, /*End of Scope*/
/*  4683*/      /*SwitchOpcode*/ 31|128,4/*543*/, TARGET_VAL(ISD::SUB),// ->5230
/*  4687*/        OPC_Scope, 12|128,1/*140*/, /*->4830*/ // 2 children in Scope
/*  4690*/          OPC_CheckChild0Integer, 0, 
/*  4692*/          OPC_MoveChild1,
/*  4693*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  4696*/          OPC_RecordMemRef,
/*  4697*/          OPC_RecordNode, // #1 = 'ld' chained node
/*  4698*/          OPC_CheckFoldableChainNode,
/*  4699*/          OPC_RecordChild1, // #2 = $dst
/*  4700*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  4702*/          OPC_Scope, 30, /*->4734*/ // 4 children in Scope
/*  4704*/            OPC_CheckPredicate, 5, // Predicate_loadi8
/*  4706*/            OPC_MoveParent,
/*  4707*/            OPC_CheckType, MVT::i8,
/*  4709*/            OPC_MoveParent,
/*  4710*/            OPC_CheckChild2Same, 2,
/*  4712*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  4714*/            OPC_CheckPredicate, 1, // Predicate_store
/*  4716*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  4719*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  4723*/            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)
/*  4734*/          /*Scope*/ 30, /*->4765*/
/*  4735*/            OPC_CheckPredicate, 7, // Predicate_loadi16
/*  4737*/            OPC_MoveParent,
/*  4738*/            OPC_CheckType, MVT::i16,
/*  4740*/            OPC_MoveParent,
/*  4741*/            OPC_CheckChild2Same, 2,
/*  4743*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  4745*/            OPC_CheckPredicate, 1, // Predicate_store
/*  4747*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  4750*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  4754*/            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)
/*  4765*/          /*Scope*/ 30, /*->4796*/
/*  4766*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/*  4768*/            OPC_MoveParent,
/*  4769*/            OPC_CheckType, MVT::i32,
/*  4771*/            OPC_MoveParent,
/*  4772*/            OPC_CheckChild2Same, 2,
/*  4774*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  4776*/            OPC_CheckPredicate, 1, // Predicate_store
/*  4778*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  4781*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  4785*/            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)
/*  4796*/          /*Scope*/ 32, /*->4829*/
/*  4797*/            OPC_CheckPredicate, 9, // Predicate_load
/*  4799*/            OPC_MoveParent,
/*  4800*/            OPC_CheckType, MVT::i64,
/*  4802*/            OPC_MoveParent,
/*  4803*/            OPC_CheckChild2Same, 2,
/*  4805*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  4807*/            OPC_CheckPredicate, 1, // Predicate_store
/*  4809*/            OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  4811*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  4814*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  4818*/            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)
/*  4829*/          0, /*End of Scope*/
/*  4830*/        /*Scope*/ 13|128,3/*397*/, /*->5229*/
/*  4832*/          OPC_MoveChild0,
/*  4833*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  4836*/          OPC_RecordMemRef,
/*  4837*/          OPC_RecordNode, // #1 = 'ld' chained node
/*  4838*/          OPC_CheckFoldableChainNode,
/*  4839*/          OPC_RecordChild1, // #2 = $dst
/*  4840*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  4842*/          OPC_CheckPredicate, 9, // Predicate_load
/*  4844*/          OPC_MoveParent,
/*  4845*/          OPC_RecordChild1, // #3 = $src
/*  4846*/          OPC_Scope, 7|128,2/*263*/, /*->5112*/ // 5 children in Scope
/*  4849*/            OPC_MoveChild1,
/*  4850*/            OPC_Scope, 115, /*->4967*/ // 5 children in Scope
/*  4852*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  4855*/              OPC_Scope, 35, /*->4892*/ // 3 children in Scope
/*  4857*/                OPC_CheckPredicate, 13, // Predicate_i16immSExt8
/*  4859*/                OPC_CheckPredicate, 14, // Predicate_i16immSExt8_su
/*  4861*/                OPC_MoveParent,
/*  4862*/                OPC_CheckType, MVT::i16,
/*  4864*/                OPC_MoveParent,
/*  4865*/                OPC_CheckChild2Same, 2,
/*  4867*/                OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  4869*/                OPC_CheckPredicate, 1, // Predicate_store
/*  4871*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  4874*/                OPC_EmitMergeInputChains, 2, 0, 1, 
/*  4878*/                OPC_EmitConvertToTarget, 3,
/*  4880*/                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)
/*  4892*/              /*Scope*/ 35, /*->4928*/
/*  4893*/                OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/*  4895*/                OPC_CheckPredicate, 14, // Predicate_i32immSExt8_su
/*  4897*/                OPC_MoveParent,
/*  4898*/                OPC_CheckType, MVT::i32,
/*  4900*/                OPC_MoveParent,
/*  4901*/                OPC_CheckChild2Same, 2,
/*  4903*/                OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  4905*/                OPC_CheckPredicate, 1, // Predicate_store
/*  4907*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  4910*/                OPC_EmitMergeInputChains, 2, 0, 1, 
/*  4914*/                OPC_EmitConvertToTarget, 3,
/*  4916*/                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)
/*  4928*/              /*Scope*/ 37, /*->4966*/
/*  4929*/                OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/*  4931*/                OPC_CheckPredicate, 14, // Predicate_i64immSExt8_su
/*  4933*/                OPC_MoveParent,
/*  4934*/                OPC_CheckType, MVT::i64,
/*  4936*/                OPC_MoveParent,
/*  4937*/                OPC_CheckChild2Same, 2,
/*  4939*/                OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  4941*/                OPC_CheckPredicate, 1, // Predicate_store
/*  4943*/                OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  4945*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  4948*/                OPC_EmitMergeInputChains, 2, 0, 1, 
/*  4952*/                OPC_EmitConvertToTarget, 3,
/*  4954*/                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)
/*  4966*/              0, /*End of Scope*/
/*  4967*/            /*Scope*/ 34, /*->5002*/
/*  4968*/              OPC_CheckPredicate, 15, // Predicate_relocImm8_su
/*  4970*/              OPC_MoveParent,
/*  4971*/              OPC_CheckType, MVT::i8,
/*  4973*/              OPC_MoveParent,
/*  4974*/              OPC_CheckChild2Same, 2,
/*  4976*/              OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  4978*/              OPC_CheckPredicate, 1, // Predicate_store
/*  4980*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  4983*/              OPC_CheckComplexPat, /*CP*/1, /*#*/3, // selectRelocImm:$src #9
/*  4986*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*  4990*/              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_relocImm8_su>>:$src), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                        // Dst: (SUB8mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i8] }:$src)
/*  5002*/            /*Scope*/ 34, /*->5037*/
/*  5003*/              OPC_CheckPredicate, 15, // Predicate_relocImm16_su
/*  5005*/              OPC_MoveParent,
/*  5006*/              OPC_CheckType, MVT::i16,
/*  5008*/              OPC_MoveParent,
/*  5009*/              OPC_CheckChild2Same, 2,
/*  5011*/              OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  5013*/              OPC_CheckPredicate, 1, // Predicate_store
/*  5015*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  5018*/              OPC_CheckComplexPat, /*CP*/1, /*#*/3, // selectRelocImm:$src #9
/*  5021*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*  5025*/              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_relocImm16_su>>:$src), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                        // Dst: (SUB16mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i16] }:$src)
/*  5037*/            /*Scope*/ 34, /*->5072*/
/*  5038*/              OPC_CheckPredicate, 15, // Predicate_relocImm32_su
/*  5040*/              OPC_MoveParent,
/*  5041*/              OPC_CheckType, MVT::i32,
/*  5043*/              OPC_MoveParent,
/*  5044*/              OPC_CheckChild2Same, 2,
/*  5046*/              OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  5048*/              OPC_CheckPredicate, 1, // Predicate_store
/*  5050*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  5053*/              OPC_CheckComplexPat, /*CP*/1, /*#*/3, // selectRelocImm:$src #9
/*  5056*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*  5060*/              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_relocImm32_su>>:$src), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                        // Dst: (SUB32mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i32] }:$src)
/*  5072*/            /*Scope*/ 38, /*->5111*/
/*  5073*/              OPC_CheckPredicate, 16, // Predicate_i64relocImmSExt32
/*  5075*/              OPC_CheckPredicate, 15, // Predicate_i64relocImmSExt32_su
/*  5077*/              OPC_MoveParent,
/*  5078*/              OPC_CheckType, MVT::i64,
/*  5080*/              OPC_MoveParent,
/*  5081*/              OPC_CheckChild2Same, 2,
/*  5083*/              OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  5085*/              OPC_CheckPredicate, 1, // Predicate_store
/*  5087*/              OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  5089*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  5092*/              OPC_CheckComplexPat, /*CP*/1, /*#*/3, // selectRelocImm:$src #9
/*  5095*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*  5099*/              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>>, relocImm:{ *:[i64] }<<P:Predicate_i64relocImmSExt32>><<P:Predicate_i64relocImmSExt32_su>>:$src), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                        // Dst: (SUB64mi32:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i64] }:$src)
/*  5111*/            0, /*End of Scope*/
/*  5112*/          /*Scope*/ 28, /*->5141*/
/*  5113*/            OPC_CheckType, MVT::i8,
/*  5115*/            OPC_MoveParent,
/*  5116*/            OPC_CheckChild2Same, 2,
/*  5118*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  5120*/            OPC_CheckPredicate, 1, // Predicate_store
/*  5122*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  5125*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  5129*/            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)
/*  5141*/          /*Scope*/ 28, /*->5170*/
/*  5142*/            OPC_CheckType, MVT::i16,
/*  5144*/            OPC_MoveParent,
/*  5145*/            OPC_CheckChild2Same, 2,
/*  5147*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  5149*/            OPC_CheckPredicate, 1, // Predicate_store
/*  5151*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  5154*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  5158*/            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)
/*  5170*/          /*Scope*/ 28, /*->5199*/
/*  5171*/            OPC_CheckType, MVT::i32,
/*  5173*/            OPC_MoveParent,
/*  5174*/            OPC_CheckChild2Same, 2,
/*  5176*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  5178*/            OPC_CheckPredicate, 1, // Predicate_store
/*  5180*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  5183*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  5187*/            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)
/*  5199*/          /*Scope*/ 28, /*->5228*/
/*  5200*/            OPC_CheckType, MVT::i64,
/*  5202*/            OPC_MoveParent,
/*  5203*/            OPC_CheckChild2Same, 2,
/*  5205*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  5207*/            OPC_CheckPredicate, 1, // Predicate_store
/*  5209*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  5212*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  5216*/            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)
/*  5228*/          0, /*End of Scope*/
/*  5229*/        0, /*End of Scope*/
/*  5230*/      /*SwitchOpcode*/ 18|128,7/*914*/, TARGET_VAL(ISD::XOR),// ->6148
/*  5234*/        OPC_Scope, 64|128,3/*448*/, /*->5685*/ // 4 children in Scope
/*  5237*/          OPC_MoveChild0,
/*  5238*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  5241*/          OPC_RecordMemRef,
/*  5242*/          OPC_RecordNode, // #1 = 'ld' chained node
/*  5243*/          OPC_CheckFoldableChainNode,
/*  5244*/          OPC_RecordChild1, // #2 = $dst
/*  5245*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  5247*/          OPC_Scope, 40, /*->5289*/ // 4 children in Scope
/*  5249*/            OPC_CheckPredicate, 5, // Predicate_loadi8
/*  5251*/            OPC_MoveParent,
/*  5252*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*  5263*/            OPC_CheckType, MVT::i8,
/*  5265*/            OPC_MoveParent,
/*  5266*/            OPC_CheckChild2Same, 2,
/*  5268*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  5270*/            OPC_CheckPredicate, 1, // Predicate_store
/*  5272*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  5275*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  5279*/            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)
/*  5289*/          /*Scope*/ 40, /*->5330*/
/*  5290*/            OPC_CheckPredicate, 7, // Predicate_loadi16
/*  5292*/            OPC_MoveParent,
/*  5293*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*  5304*/            OPC_CheckType, MVT::i16,
/*  5306*/            OPC_MoveParent,
/*  5307*/            OPC_CheckChild2Same, 2,
/*  5309*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  5311*/            OPC_CheckPredicate, 1, // Predicate_store
/*  5313*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  5316*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  5320*/            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)
/*  5330*/          /*Scope*/ 40, /*->5371*/
/*  5331*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/*  5333*/            OPC_MoveParent,
/*  5334*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*  5345*/            OPC_CheckType, MVT::i32,
/*  5347*/            OPC_MoveParent,
/*  5348*/            OPC_CheckChild2Same, 2,
/*  5350*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  5352*/            OPC_CheckPredicate, 1, // Predicate_store
/*  5354*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  5357*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  5361*/            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)
/*  5371*/          /*Scope*/ 55|128,2/*311*/, /*->5684*/
/*  5373*/            OPC_CheckPredicate, 9, // Predicate_load
/*  5375*/            OPC_MoveParent,
/*  5376*/            OPC_Scope, 39, /*->5417*/ // 2 children in Scope
/*  5378*/              OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*  5389*/              OPC_CheckType, MVT::i64,
/*  5391*/              OPC_MoveParent,
/*  5392*/              OPC_CheckChild2Same, 2,
/*  5394*/              OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  5396*/              OPC_CheckPredicate, 1, // Predicate_store
/*  5398*/              OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  5400*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  5403*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*  5407*/              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)
/*  5417*/            /*Scope*/ 8|128,2/*264*/, /*->5683*/
/*  5419*/              OPC_RecordChild1, // #3 = $src
/*  5420*/              OPC_MoveChild1,
/*  5421*/              OPC_Scope, 115, /*->5538*/ // 5 children in Scope
/*  5423*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  5426*/                OPC_Scope, 35, /*->5463*/ // 3 children in Scope
/*  5428*/                  OPC_CheckPredicate, 13, // Predicate_i16immSExt8
/*  5430*/                  OPC_CheckPredicate, 14, // Predicate_i16immSExt8_su
/*  5432*/                  OPC_MoveParent,
/*  5433*/                  OPC_CheckType, MVT::i16,
/*  5435*/                  OPC_MoveParent,
/*  5436*/                  OPC_CheckChild2Same, 2,
/*  5438*/                  OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  5440*/                  OPC_CheckPredicate, 1, // Predicate_store
/*  5442*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  5445*/                  OPC_EmitMergeInputChains, 2, 0, 1, 
/*  5449*/                  OPC_EmitConvertToTarget, 3,
/*  5451*/                  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)
/*  5463*/                /*Scope*/ 35, /*->5499*/
/*  5464*/                  OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/*  5466*/                  OPC_CheckPredicate, 14, // Predicate_i32immSExt8_su
/*  5468*/                  OPC_MoveParent,
/*  5469*/                  OPC_CheckType, MVT::i32,
/*  5471*/                  OPC_MoveParent,
/*  5472*/                  OPC_CheckChild2Same, 2,
/*  5474*/                  OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  5476*/                  OPC_CheckPredicate, 1, // Predicate_store
/*  5478*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  5481*/                  OPC_EmitMergeInputChains, 2, 0, 1, 
/*  5485*/                  OPC_EmitConvertToTarget, 3,
/*  5487*/                  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)
/*  5499*/                /*Scope*/ 37, /*->5537*/
/*  5500*/                  OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/*  5502*/                  OPC_CheckPredicate, 14, // Predicate_i64immSExt8_su
/*  5504*/                  OPC_MoveParent,
/*  5505*/                  OPC_CheckType, MVT::i64,
/*  5507*/                  OPC_MoveParent,
/*  5508*/                  OPC_CheckChild2Same, 2,
/*  5510*/                  OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  5512*/                  OPC_CheckPredicate, 1, // Predicate_store
/*  5514*/                  OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  5516*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  5519*/                  OPC_EmitMergeInputChains, 2, 0, 1, 
/*  5523*/                  OPC_EmitConvertToTarget, 3,
/*  5525*/                  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)
/*  5537*/                0, /*End of Scope*/
/*  5538*/              /*Scope*/ 34, /*->5573*/
/*  5539*/                OPC_CheckPredicate, 15, // Predicate_relocImm8_su
/*  5541*/                OPC_MoveParent,
/*  5542*/                OPC_CheckType, MVT::i8,
/*  5544*/                OPC_MoveParent,
/*  5545*/                OPC_CheckChild2Same, 2,
/*  5547*/                OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  5549*/                OPC_CheckPredicate, 1, // Predicate_store
/*  5551*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  5554*/                OPC_CheckComplexPat, /*CP*/1, /*#*/3, // selectRelocImm:$src #9
/*  5557*/                OPC_EmitMergeInputChains, 2, 0, 1, 
/*  5561*/                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_relocImm8_su>>:$src), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                          // Dst: (XOR8mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i8] }:$src)
/*  5573*/              /*Scope*/ 34, /*->5608*/
/*  5574*/                OPC_CheckPredicate, 15, // Predicate_relocImm16_su
/*  5576*/                OPC_MoveParent,
/*  5577*/                OPC_CheckType, MVT::i16,
/*  5579*/                OPC_MoveParent,
/*  5580*/                OPC_CheckChild2Same, 2,
/*  5582*/                OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  5584*/                OPC_CheckPredicate, 1, // Predicate_store
/*  5586*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  5589*/                OPC_CheckComplexPat, /*CP*/1, /*#*/3, // selectRelocImm:$src #9
/*  5592*/                OPC_EmitMergeInputChains, 2, 0, 1, 
/*  5596*/                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_relocImm16_su>>:$src), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                          // Dst: (XOR16mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i16] }:$src)
/*  5608*/              /*Scope*/ 34, /*->5643*/
/*  5609*/                OPC_CheckPredicate, 15, // Predicate_relocImm32_su
/*  5611*/                OPC_MoveParent,
/*  5612*/                OPC_CheckType, MVT::i32,
/*  5614*/                OPC_MoveParent,
/*  5615*/                OPC_CheckChild2Same, 2,
/*  5617*/                OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  5619*/                OPC_CheckPredicate, 1, // Predicate_store
/*  5621*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  5624*/                OPC_CheckComplexPat, /*CP*/1, /*#*/3, // selectRelocImm:$src #9
/*  5627*/                OPC_EmitMergeInputChains, 2, 0, 1, 
/*  5631*/                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_relocImm32_su>>:$src), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                          // Dst: (XOR32mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i32] }:$src)
/*  5643*/              /*Scope*/ 38, /*->5682*/
/*  5644*/                OPC_CheckPredicate, 16, // Predicate_i64relocImmSExt32
/*  5646*/                OPC_CheckPredicate, 15, // Predicate_i64relocImmSExt32_su
/*  5648*/                OPC_MoveParent,
/*  5649*/                OPC_CheckType, MVT::i64,
/*  5651*/                OPC_MoveParent,
/*  5652*/                OPC_CheckChild2Same, 2,
/*  5654*/                OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  5656*/                OPC_CheckPredicate, 1, // Predicate_store
/*  5658*/                OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  5660*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  5663*/                OPC_CheckComplexPat, /*CP*/1, /*#*/3, // selectRelocImm:$src #9
/*  5666*/                OPC_EmitMergeInputChains, 2, 0, 1, 
/*  5670*/                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>>, relocImm:{ *:[i64] }<<P:Predicate_i64relocImmSExt32>><<P:Predicate_i64relocImmSExt32_su>>:$src), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                          // Dst: (XOR64mi32:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i64] }:$src)
/*  5682*/              0, /*End of Scope*/
/*  5683*/            0, /*End of Scope*/
/*  5684*/          0, /*End of Scope*/
/*  5685*/        /*Scope*/ 72|128,1/*200*/, /*->5887*/
/*  5687*/          OPC_RecordChild0, // #1 = $src
/*  5688*/          OPC_MoveChild0,
/*  5689*/          OPC_Scope, 47, /*->5738*/ // 4 children in Scope
/*  5691*/            OPC_CheckPredicate, 15, // Predicate_relocImm8_su
/*  5693*/            OPC_MoveParent,
/*  5694*/            OPC_MoveChild1,
/*  5695*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  5698*/            OPC_RecordMemRef,
/*  5699*/            OPC_RecordNode, // #2 = 'ld' chained node
/*  5700*/            OPC_CheckFoldableChainNode,
/*  5701*/            OPC_RecordChild1, // #3 = $dst
/*  5702*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  5704*/            OPC_CheckPredicate, 9, // Predicate_load
/*  5706*/            OPC_MoveParent,
/*  5707*/            OPC_CheckType, MVT::i8,
/*  5709*/            OPC_MoveParent,
/*  5710*/            OPC_CheckChild2Same, 3,
/*  5712*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  5714*/            OPC_CheckPredicate, 1, // Predicate_store
/*  5716*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src #4
/*  5719*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #5 #6 #7 #8 #9
/*  5722*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*  5726*/            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_relocImm8_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)
/*  5738*/          /*Scope*/ 47, /*->5786*/
/*  5739*/            OPC_CheckPredicate, 15, // Predicate_relocImm16_su
/*  5741*/            OPC_MoveParent,
/*  5742*/            OPC_MoveChild1,
/*  5743*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  5746*/            OPC_RecordMemRef,
/*  5747*/            OPC_RecordNode, // #2 = 'ld' chained node
/*  5748*/            OPC_CheckFoldableChainNode,
/*  5749*/            OPC_RecordChild1, // #3 = $dst
/*  5750*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  5752*/            OPC_CheckPredicate, 9, // Predicate_load
/*  5754*/            OPC_MoveParent,
/*  5755*/            OPC_CheckType, MVT::i16,
/*  5757*/            OPC_MoveParent,
/*  5758*/            OPC_CheckChild2Same, 3,
/*  5760*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  5762*/            OPC_CheckPredicate, 1, // Predicate_store
/*  5764*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src #4
/*  5767*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #5 #6 #7 #8 #9
/*  5770*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*  5774*/            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_relocImm16_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)
/*  5786*/          /*Scope*/ 47, /*->5834*/
/*  5787*/            OPC_CheckPredicate, 15, // Predicate_relocImm32_su
/*  5789*/            OPC_MoveParent,
/*  5790*/            OPC_MoveChild1,
/*  5791*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  5794*/            OPC_RecordMemRef,
/*  5795*/            OPC_RecordNode, // #2 = 'ld' chained node
/*  5796*/            OPC_CheckFoldableChainNode,
/*  5797*/            OPC_RecordChild1, // #3 = $dst
/*  5798*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  5800*/            OPC_CheckPredicate, 9, // Predicate_load
/*  5802*/            OPC_MoveParent,
/*  5803*/            OPC_CheckType, MVT::i32,
/*  5805*/            OPC_MoveParent,
/*  5806*/            OPC_CheckChild2Same, 3,
/*  5808*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  5810*/            OPC_CheckPredicate, 1, // Predicate_store
/*  5812*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src #4
/*  5815*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #5 #6 #7 #8 #9
/*  5818*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*  5822*/            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_relocImm32_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)
/*  5834*/          /*Scope*/ 51, /*->5886*/
/*  5835*/            OPC_CheckPredicate, 16, // Predicate_i64relocImmSExt32
/*  5837*/            OPC_CheckPredicate, 15, // Predicate_i64relocImmSExt32_su
/*  5839*/            OPC_MoveParent,
/*  5840*/            OPC_MoveChild1,
/*  5841*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  5844*/            OPC_RecordMemRef,
/*  5845*/            OPC_RecordNode, // #2 = 'ld' chained node
/*  5846*/            OPC_CheckFoldableChainNode,
/*  5847*/            OPC_RecordChild1, // #3 = $dst
/*  5848*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  5850*/            OPC_CheckPredicate, 9, // Predicate_load
/*  5852*/            OPC_MoveParent,
/*  5853*/            OPC_CheckType, MVT::i64,
/*  5855*/            OPC_MoveParent,
/*  5856*/            OPC_CheckChild2Same, 3,
/*  5858*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  5860*/            OPC_CheckPredicate, 1, // Predicate_store
/*  5862*/            OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  5864*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src #4
/*  5867*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #5 #6 #7 #8 #9
/*  5870*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*  5874*/            OPC_MorphNodeTo1, TARGET_VAL(X86::XOR64mi32), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 5, 6, 7, 8, 9, 4, 
                      // Src: (st (xor:{ *:[i64] } relocImm:{ *:[i64] }<<P:Predicate_i64relocImmSExt32>><<P:Predicate_i64relocImmSExt32_su>>:$src, (ld:{ *:[i64] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                      // Dst: (XOR64mi32:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i64] }:$src)
/*  5886*/          0, /*End of Scope*/
/*  5887*/        /*Scope*/ 0|128,1/*128*/, /*->6017*/
/*  5889*/          OPC_MoveChild0,
/*  5890*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  5893*/          OPC_RecordMemRef,
/*  5894*/          OPC_RecordNode, // #1 = 'ld' chained node
/*  5895*/          OPC_CheckFoldableChainNode,
/*  5896*/          OPC_RecordChild1, // #2 = $dst
/*  5897*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  5899*/          OPC_CheckPredicate, 9, // Predicate_load
/*  5901*/          OPC_MoveParent,
/*  5902*/          OPC_RecordChild1, // #3 = $src
/*  5903*/          OPC_SwitchType /*4 cases */, 26, MVT::i8,// ->5932
/*  5906*/            OPC_MoveParent,
/*  5907*/            OPC_CheckChild2Same, 2,
/*  5909*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  5911*/            OPC_CheckPredicate, 1, // Predicate_store
/*  5913*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  5916*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  5920*/            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)
/*  5932*/          /*SwitchType*/ 26, MVT::i16,// ->5960
/*  5934*/            OPC_MoveParent,
/*  5935*/            OPC_CheckChild2Same, 2,
/*  5937*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  5939*/            OPC_CheckPredicate, 1, // Predicate_store
/*  5941*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  5944*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  5948*/            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)
/*  5960*/          /*SwitchType*/ 26, MVT::i32,// ->5988
/*  5962*/            OPC_MoveParent,
/*  5963*/            OPC_CheckChild2Same, 2,
/*  5965*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  5967*/            OPC_CheckPredicate, 1, // Predicate_store
/*  5969*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  5972*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  5976*/            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)
/*  5988*/          /*SwitchType*/ 26, MVT::i64,// ->6016
/*  5990*/            OPC_MoveParent,
/*  5991*/            OPC_CheckChild2Same, 2,
/*  5993*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  5995*/            OPC_CheckPredicate, 1, // Predicate_store
/*  5997*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  6000*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  6004*/            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)
/*  6016*/          0, // EndSwitchType
/*  6017*/        /*Scope*/ 0|128,1/*128*/, /*->6147*/
/*  6019*/          OPC_RecordChild0, // #1 = $src
/*  6020*/          OPC_MoveChild1,
/*  6021*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  6024*/          OPC_RecordMemRef,
/*  6025*/          OPC_RecordNode, // #2 = 'ld' chained node
/*  6026*/          OPC_CheckFoldableChainNode,
/*  6027*/          OPC_RecordChild1, // #3 = $dst
/*  6028*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  6030*/          OPC_CheckPredicate, 9, // Predicate_load
/*  6032*/          OPC_MoveParent,
/*  6033*/          OPC_SwitchType /*4 cases */, 26, MVT::i8,// ->6062
/*  6036*/            OPC_MoveParent,
/*  6037*/            OPC_CheckChild2Same, 3,
/*  6039*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  6041*/            OPC_CheckPredicate, 1, // Predicate_store
/*  6043*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/*  6046*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*  6050*/            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)
/*  6062*/          /*SwitchType*/ 26, MVT::i16,// ->6090
/*  6064*/            OPC_MoveParent,
/*  6065*/            OPC_CheckChild2Same, 3,
/*  6067*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  6069*/            OPC_CheckPredicate, 1, // Predicate_store
/*  6071*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/*  6074*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*  6078*/            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)
/*  6090*/          /*SwitchType*/ 26, MVT::i32,// ->6118
/*  6092*/            OPC_MoveParent,
/*  6093*/            OPC_CheckChild2Same, 3,
/*  6095*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  6097*/            OPC_CheckPredicate, 1, // Predicate_store
/*  6099*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/*  6102*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*  6106*/            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)
/*  6118*/          /*SwitchType*/ 26, MVT::i64,// ->6146
/*  6120*/            OPC_MoveParent,
/*  6121*/            OPC_CheckChild2Same, 3,
/*  6123*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  6125*/            OPC_CheckPredicate, 1, // Predicate_store
/*  6127*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/*  6130*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*  6134*/            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)
/*  6146*/          0, // EndSwitchType
/*  6147*/        0, /*End of Scope*/
/*  6148*/      /*SwitchOpcode*/ 100|128,9/*1252*/, TARGET_VAL(ISD::ADD),// ->7404
/*  6152*/        OPC_Scope, 18|128,6/*786*/, /*->6941*/ // 4 children in Scope
/*  6155*/          OPC_MoveChild0,
/*  6156*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  6159*/          OPC_RecordMemRef,
/*  6160*/          OPC_RecordNode, // #1 = 'ld' chained node
/*  6161*/          OPC_CheckFoldableChainNode,
/*  6162*/          OPC_RecordChild1, // #2 = $dst
/*  6163*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  6165*/          OPC_Scope, 34, /*->6201*/ // 11 children in Scope
/*  6167*/            OPC_CheckPredicate, 5, // Predicate_loadi8
/*  6169*/            OPC_MoveParent,
/*  6170*/            OPC_CheckChild1Integer, 1, 
/*  6172*/            OPC_CheckType, MVT::i8,
/*  6174*/            OPC_MoveParent,
/*  6175*/            OPC_CheckChild2Same, 2,
/*  6177*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  6179*/            OPC_CheckPredicate, 1, // Predicate_store
/*  6181*/            OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || shouldOptForSize(MF))
/*  6183*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  6186*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  6190*/            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)
/*  6201*/          /*Scope*/ 34, /*->6236*/
/*  6202*/            OPC_CheckPredicate, 7, // Predicate_loadi16
/*  6204*/            OPC_MoveParent,
/*  6205*/            OPC_CheckChild1Integer, 1, 
/*  6207*/            OPC_CheckType, MVT::i16,
/*  6209*/            OPC_MoveParent,
/*  6210*/            OPC_CheckChild2Same, 2,
/*  6212*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  6214*/            OPC_CheckPredicate, 1, // Predicate_store
/*  6216*/            OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || shouldOptForSize(MF))
/*  6218*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  6221*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  6225*/            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)
/*  6236*/          /*Scope*/ 34, /*->6271*/
/*  6237*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/*  6239*/            OPC_MoveParent,
/*  6240*/            OPC_CheckChild1Integer, 1, 
/*  6242*/            OPC_CheckType, MVT::i32,
/*  6244*/            OPC_MoveParent,
/*  6245*/            OPC_CheckChild2Same, 2,
/*  6247*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  6249*/            OPC_CheckPredicate, 1, // Predicate_store
/*  6251*/            OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || shouldOptForSize(MF))
/*  6253*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  6256*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  6260*/            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)
/*  6271*/          /*Scope*/ 34, /*->6306*/
/*  6272*/            OPC_CheckPredicate, 9, // Predicate_load
/*  6274*/            OPC_MoveParent,
/*  6275*/            OPC_CheckChild1Integer, 1, 
/*  6277*/            OPC_CheckType, MVT::i64,
/*  6279*/            OPC_MoveParent,
/*  6280*/            OPC_CheckChild2Same, 2,
/*  6282*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  6284*/            OPC_CheckPredicate, 1, // Predicate_store
/*  6286*/            OPC_CheckPatternPredicate, 10, // (Subtarget->is64Bit()) && (!Subtarget->slowIncDec() || shouldOptForSize(MF))
/*  6288*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  6291*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  6295*/            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)
/*  6306*/          /*Scope*/ 43, /*->6350*/
/*  6307*/            OPC_CheckPredicate, 5, // Predicate_loadi8
/*  6309*/            OPC_MoveParent,
/*  6310*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*  6321*/            OPC_CheckType, MVT::i8,
/*  6323*/            OPC_MoveParent,
/*  6324*/            OPC_CheckChild2Same, 2,
/*  6326*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  6328*/            OPC_CheckPredicate, 1, // Predicate_store
/*  6330*/            OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || shouldOptForSize(MF))
/*  6332*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  6335*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  6339*/            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)
/*  6350*/          /*Scope*/ 43, /*->6394*/
/*  6351*/            OPC_CheckPredicate, 7, // Predicate_loadi16
/*  6353*/            OPC_MoveParent,
/*  6354*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*  6365*/            OPC_CheckType, MVT::i16,
/*  6367*/            OPC_MoveParent,
/*  6368*/            OPC_CheckChild2Same, 2,
/*  6370*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  6372*/            OPC_CheckPredicate, 1, // Predicate_store
/*  6374*/            OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || shouldOptForSize(MF))
/*  6376*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  6379*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  6383*/            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)
/*  6394*/          /*Scope*/ 43, /*->6438*/
/*  6395*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/*  6397*/            OPC_MoveParent,
/*  6398*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*  6409*/            OPC_CheckType, MVT::i32,
/*  6411*/            OPC_MoveParent,
/*  6412*/            OPC_CheckChild2Same, 2,
/*  6414*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  6416*/            OPC_CheckPredicate, 1, // Predicate_store
/*  6418*/            OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || shouldOptForSize(MF))
/*  6420*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  6423*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  6427*/            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)
/*  6438*/          /*Scope*/ 43, /*->6482*/
/*  6439*/            OPC_CheckPredicate, 9, // Predicate_load
/*  6441*/            OPC_MoveParent,
/*  6442*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*  6453*/            OPC_CheckType, MVT::i64,
/*  6455*/            OPC_MoveParent,
/*  6456*/            OPC_CheckChild2Same, 2,
/*  6458*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  6460*/            OPC_CheckPredicate, 1, // Predicate_store
/*  6462*/            OPC_CheckPatternPredicate, 10, // (Subtarget->is64Bit()) && (!Subtarget->slowIncDec() || shouldOptForSize(MF))
/*  6464*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  6467*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  6471*/            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)
/*  6482*/          /*Scope*/ 46, /*->6529*/
/*  6483*/            OPC_CheckPredicate, 7, // Predicate_loadi16
/*  6485*/            OPC_MoveParent,
/*  6486*/            OPC_CheckChild1Integer, 0|128,1/*128*/, 
/*  6489*/            OPC_CheckType, MVT::i16,
/*  6491*/            OPC_MoveParent,
/*  6492*/            OPC_CheckChild2Same, 2,
/*  6494*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  6496*/            OPC_CheckPredicate, 1, // Predicate_store
/*  6498*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  6501*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  6505*/            OPC_EmitInteger, MVT::i16, 0|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551488*/, 
/*  6517*/            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] })
/*  6529*/          /*Scope*/ 46, /*->6576*/
/*  6530*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/*  6532*/            OPC_MoveParent,
/*  6533*/            OPC_CheckChild1Integer, 0|128,1/*128*/, 
/*  6536*/            OPC_CheckType, MVT::i32,
/*  6538*/            OPC_MoveParent,
/*  6539*/            OPC_CheckChild2Same, 2,
/*  6541*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  6543*/            OPC_CheckPredicate, 1, // Predicate_store
/*  6545*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  6548*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  6552*/            OPC_EmitInteger, MVT::i32, 0|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551488*/, 
/*  6564*/            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] })
/*  6576*/          /*Scope*/ 106|128,2/*362*/, /*->6940*/
/*  6578*/            OPC_CheckPredicate, 9, // Predicate_load
/*  6580*/            OPC_MoveParent,
/*  6581*/            OPC_Scope, 43, /*->6626*/ // 3 children in Scope
/*  6583*/              OPC_CheckChild1Integer, 0|128,1/*128*/, 
/*  6586*/              OPC_CheckType, MVT::i64,
/*  6588*/              OPC_MoveParent,
/*  6589*/              OPC_CheckChild2Same, 2,
/*  6591*/              OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  6593*/              OPC_CheckPredicate, 1, // Predicate_store
/*  6595*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  6598*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*  6602*/              OPC_EmitInteger, MVT::i64, 0|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551488*/, 
/*  6614*/              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] })
/*  6626*/            /*Scope*/ 46, /*->6673*/
/*  6627*/              OPC_CheckChild1Integer, 0|128,0|128,0|128,0|128,8/*2147483648*/, 
/*  6633*/              OPC_CheckType, MVT::i64,
/*  6635*/              OPC_MoveParent,
/*  6636*/              OPC_CheckChild2Same, 2,
/*  6638*/              OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  6640*/              OPC_CheckPredicate, 1, // Predicate_store
/*  6642*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*  6645*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*  6649*/              OPC_EmitInteger, MVT::i64, 0|128,0|128,0|128,0|128,120|128,127|128,127|128,127|128,127|128,1/*18446744071562067968*/, 
/*  6661*/              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] })
/*  6673*/            /*Scope*/ 8|128,2/*264*/, /*->6939*/
/*  6675*/              OPC_RecordChild1, // #3 = $src
/*  6676*/              OPC_MoveChild1,
/*  6677*/              OPC_Scope, 115, /*->6794*/ // 5 children in Scope
/*  6679*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  6682*/                OPC_Scope, 35, /*->6719*/ // 3 children in Scope
/*  6684*/                  OPC_CheckPredicate, 13, // Predicate_i16immSExt8
/*  6686*/                  OPC_CheckPredicate, 14, // Predicate_i16immSExt8_su
/*  6688*/                  OPC_MoveParent,
/*  6689*/                  OPC_CheckType, MVT::i16,
/*  6691*/                  OPC_MoveParent,
/*  6692*/                  OPC_CheckChild2Same, 2,
/*  6694*/                  OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  6696*/                  OPC_CheckPredicate, 1, // Predicate_store
/*  6698*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  6701*/                  OPC_EmitMergeInputChains, 2, 0, 1, 
/*  6705*/                  OPC_EmitConvertToTarget, 3,
/*  6707*/                  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)
/*  6719*/                /*Scope*/ 35, /*->6755*/
/*  6720*/                  OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/*  6722*/                  OPC_CheckPredicate, 14, // Predicate_i32immSExt8_su
/*  6724*/                  OPC_MoveParent,
/*  6725*/                  OPC_CheckType, MVT::i32,
/*  6727*/                  OPC_MoveParent,
/*  6728*/                  OPC_CheckChild2Same, 2,
/*  6730*/                  OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  6732*/                  OPC_CheckPredicate, 1, // Predicate_store
/*  6734*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  6737*/                  OPC_EmitMergeInputChains, 2, 0, 1, 
/*  6741*/                  OPC_EmitConvertToTarget, 3,
/*  6743*/                  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)
/*  6755*/                /*Scope*/ 37, /*->6793*/
/*  6756*/                  OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/*  6758*/                  OPC_CheckPredicate, 14, // Predicate_i64immSExt8_su
/*  6760*/                  OPC_MoveParent,
/*  6761*/                  OPC_CheckType, MVT::i64,
/*  6763*/                  OPC_MoveParent,
/*  6764*/                  OPC_CheckChild2Same, 2,
/*  6766*/                  OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  6768*/                  OPC_CheckPredicate, 1, // Predicate_store
/*  6770*/                  OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  6772*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  6775*/                  OPC_EmitMergeInputChains, 2, 0, 1, 
/*  6779*/                  OPC_EmitConvertToTarget, 3,
/*  6781*/                  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)
/*  6793*/                0, /*End of Scope*/
/*  6794*/              /*Scope*/ 34, /*->6829*/
/*  6795*/                OPC_CheckPredicate, 15, // Predicate_relocImm8_su
/*  6797*/                OPC_MoveParent,
/*  6798*/                OPC_CheckType, MVT::i8,
/*  6800*/                OPC_MoveParent,
/*  6801*/                OPC_CheckChild2Same, 2,
/*  6803*/                OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  6805*/                OPC_CheckPredicate, 1, // Predicate_store
/*  6807*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  6810*/                OPC_CheckComplexPat, /*CP*/1, /*#*/3, // selectRelocImm:$src #9
/*  6813*/                OPC_EmitMergeInputChains, 2, 0, 1, 
/*  6817*/                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_relocImm8_su>>:$src), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                          // Dst: (ADD8mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i8] }:$src)
/*  6829*/              /*Scope*/ 34, /*->6864*/
/*  6830*/                OPC_CheckPredicate, 15, // Predicate_relocImm16_su
/*  6832*/                OPC_MoveParent,
/*  6833*/                OPC_CheckType, MVT::i16,
/*  6835*/                OPC_MoveParent,
/*  6836*/                OPC_CheckChild2Same, 2,
/*  6838*/                OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  6840*/                OPC_CheckPredicate, 1, // Predicate_store
/*  6842*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  6845*/                OPC_CheckComplexPat, /*CP*/1, /*#*/3, // selectRelocImm:$src #9
/*  6848*/                OPC_EmitMergeInputChains, 2, 0, 1, 
/*  6852*/                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_relocImm16_su>>:$src), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                          // Dst: (ADD16mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i16] }:$src)
/*  6864*/              /*Scope*/ 34, /*->6899*/
/*  6865*/                OPC_CheckPredicate, 15, // Predicate_relocImm32_su
/*  6867*/                OPC_MoveParent,
/*  6868*/                OPC_CheckType, MVT::i32,
/*  6870*/                OPC_MoveParent,
/*  6871*/                OPC_CheckChild2Same, 2,
/*  6873*/                OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  6875*/                OPC_CheckPredicate, 1, // Predicate_store
/*  6877*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  6880*/                OPC_CheckComplexPat, /*CP*/1, /*#*/3, // selectRelocImm:$src #9
/*  6883*/                OPC_EmitMergeInputChains, 2, 0, 1, 
/*  6887*/                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_relocImm32_su>>:$src), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                          // Dst: (ADD32mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i32] }:$src)
/*  6899*/              /*Scope*/ 38, /*->6938*/
/*  6900*/                OPC_CheckPredicate, 16, // Predicate_i64relocImmSExt32
/*  6902*/                OPC_CheckPredicate, 15, // Predicate_i64relocImmSExt32_su
/*  6904*/                OPC_MoveParent,
/*  6905*/                OPC_CheckType, MVT::i64,
/*  6907*/                OPC_MoveParent,
/*  6908*/                OPC_CheckChild2Same, 2,
/*  6910*/                OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  6912*/                OPC_CheckPredicate, 1, // Predicate_store
/*  6914*/                OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  6916*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  6919*/                OPC_CheckComplexPat, /*CP*/1, /*#*/3, // selectRelocImm:$src #9
/*  6922*/                OPC_EmitMergeInputChains, 2, 0, 1, 
/*  6926*/                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>>, relocImm:{ *:[i64] }<<P:Predicate_i64relocImmSExt32>><<P:Predicate_i64relocImmSExt32_su>>:$src), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                          // Dst: (ADD64mi32:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i64] }:$src)
/*  6938*/              0, /*End of Scope*/
/*  6939*/            0, /*End of Scope*/
/*  6940*/          0, /*End of Scope*/
/*  6941*/        /*Scope*/ 72|128,1/*200*/, /*->7143*/
/*  6943*/          OPC_RecordChild0, // #1 = $src
/*  6944*/          OPC_MoveChild0,
/*  6945*/          OPC_Scope, 47, /*->6994*/ // 4 children in Scope
/*  6947*/            OPC_CheckPredicate, 15, // Predicate_relocImm8_su
/*  6949*/            OPC_MoveParent,
/*  6950*/            OPC_MoveChild1,
/*  6951*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  6954*/            OPC_RecordMemRef,
/*  6955*/            OPC_RecordNode, // #2 = 'ld' chained node
/*  6956*/            OPC_CheckFoldableChainNode,
/*  6957*/            OPC_RecordChild1, // #3 = $dst
/*  6958*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  6960*/            OPC_CheckPredicate, 9, // Predicate_load
/*  6962*/            OPC_MoveParent,
/*  6963*/            OPC_CheckType, MVT::i8,
/*  6965*/            OPC_MoveParent,
/*  6966*/            OPC_CheckChild2Same, 3,
/*  6968*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  6970*/            OPC_CheckPredicate, 1, // Predicate_store
/*  6972*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src #4
/*  6975*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #5 #6 #7 #8 #9
/*  6978*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*  6982*/            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_relocImm8_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)
/*  6994*/          /*Scope*/ 47, /*->7042*/
/*  6995*/            OPC_CheckPredicate, 15, // Predicate_relocImm16_su
/*  6997*/            OPC_MoveParent,
/*  6998*/            OPC_MoveChild1,
/*  6999*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  7002*/            OPC_RecordMemRef,
/*  7003*/            OPC_RecordNode, // #2 = 'ld' chained node
/*  7004*/            OPC_CheckFoldableChainNode,
/*  7005*/            OPC_RecordChild1, // #3 = $dst
/*  7006*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  7008*/            OPC_CheckPredicate, 9, // Predicate_load
/*  7010*/            OPC_MoveParent,
/*  7011*/            OPC_CheckType, MVT::i16,
/*  7013*/            OPC_MoveParent,
/*  7014*/            OPC_CheckChild2Same, 3,
/*  7016*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  7018*/            OPC_CheckPredicate, 1, // Predicate_store
/*  7020*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src #4
/*  7023*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #5 #6 #7 #8 #9
/*  7026*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*  7030*/            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_relocImm16_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)
/*  7042*/          /*Scope*/ 47, /*->7090*/
/*  7043*/            OPC_CheckPredicate, 15, // Predicate_relocImm32_su
/*  7045*/            OPC_MoveParent,
/*  7046*/            OPC_MoveChild1,
/*  7047*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  7050*/            OPC_RecordMemRef,
/*  7051*/            OPC_RecordNode, // #2 = 'ld' chained node
/*  7052*/            OPC_CheckFoldableChainNode,
/*  7053*/            OPC_RecordChild1, // #3 = $dst
/*  7054*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  7056*/            OPC_CheckPredicate, 9, // Predicate_load
/*  7058*/            OPC_MoveParent,
/*  7059*/            OPC_CheckType, MVT::i32,
/*  7061*/            OPC_MoveParent,
/*  7062*/            OPC_CheckChild2Same, 3,
/*  7064*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  7066*/            OPC_CheckPredicate, 1, // Predicate_store
/*  7068*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src #4
/*  7071*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #5 #6 #7 #8 #9
/*  7074*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*  7078*/            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_relocImm32_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)
/*  7090*/          /*Scope*/ 51, /*->7142*/
/*  7091*/            OPC_CheckPredicate, 16, // Predicate_i64relocImmSExt32
/*  7093*/            OPC_CheckPredicate, 15, // Predicate_i64relocImmSExt32_su
/*  7095*/            OPC_MoveParent,
/*  7096*/            OPC_MoveChild1,
/*  7097*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  7100*/            OPC_RecordMemRef,
/*  7101*/            OPC_RecordNode, // #2 = 'ld' chained node
/*  7102*/            OPC_CheckFoldableChainNode,
/*  7103*/            OPC_RecordChild1, // #3 = $dst
/*  7104*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  7106*/            OPC_CheckPredicate, 9, // Predicate_load
/*  7108*/            OPC_MoveParent,
/*  7109*/            OPC_CheckType, MVT::i64,
/*  7111*/            OPC_MoveParent,
/*  7112*/            OPC_CheckChild2Same, 3,
/*  7114*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  7116*/            OPC_CheckPredicate, 1, // Predicate_store
/*  7118*/            OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  7120*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src #4
/*  7123*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #5 #6 #7 #8 #9
/*  7126*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*  7130*/            OPC_MorphNodeTo1, TARGET_VAL(X86::ADD64mi32), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 5, 6, 7, 8, 9, 4, 
                      // Src: (st (add:{ *:[i64] } relocImm:{ *:[i64] }<<P:Predicate_i64relocImmSExt32>><<P:Predicate_i64relocImmSExt32_su>>:$src, (ld:{ *:[i64] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                      // Dst: (ADD64mi32:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i64] }:$src)
/*  7142*/          0, /*End of Scope*/
/*  7143*/        /*Scope*/ 0|128,1/*128*/, /*->7273*/
/*  7145*/          OPC_MoveChild0,
/*  7146*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  7149*/          OPC_RecordMemRef,
/*  7150*/          OPC_RecordNode, // #1 = 'ld' chained node
/*  7151*/          OPC_CheckFoldableChainNode,
/*  7152*/          OPC_RecordChild1, // #2 = $dst
/*  7153*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  7155*/          OPC_CheckPredicate, 9, // Predicate_load
/*  7157*/          OPC_MoveParent,
/*  7158*/          OPC_RecordChild1, // #3 = $src
/*  7159*/          OPC_SwitchType /*4 cases */, 26, MVT::i8,// ->7188
/*  7162*/            OPC_MoveParent,
/*  7163*/            OPC_CheckChild2Same, 2,
/*  7165*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  7167*/            OPC_CheckPredicate, 1, // Predicate_store
/*  7169*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  7172*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  7176*/            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)
/*  7188*/          /*SwitchType*/ 26, MVT::i16,// ->7216
/*  7190*/            OPC_MoveParent,
/*  7191*/            OPC_CheckChild2Same, 2,
/*  7193*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  7195*/            OPC_CheckPredicate, 1, // Predicate_store
/*  7197*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  7200*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  7204*/            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)
/*  7216*/          /*SwitchType*/ 26, MVT::i32,// ->7244
/*  7218*/            OPC_MoveParent,
/*  7219*/            OPC_CheckChild2Same, 2,
/*  7221*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  7223*/            OPC_CheckPredicate, 1, // Predicate_store
/*  7225*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  7228*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  7232*/            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)
/*  7244*/          /*SwitchType*/ 26, MVT::i64,// ->7272
/*  7246*/            OPC_MoveParent,
/*  7247*/            OPC_CheckChild2Same, 2,
/*  7249*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  7251*/            OPC_CheckPredicate, 1, // Predicate_store
/*  7253*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  7256*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  7260*/            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)
/*  7272*/          0, // EndSwitchType
/*  7273*/        /*Scope*/ 0|128,1/*128*/, /*->7403*/
/*  7275*/          OPC_RecordChild0, // #1 = $src
/*  7276*/          OPC_MoveChild1,
/*  7277*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  7280*/          OPC_RecordMemRef,
/*  7281*/          OPC_RecordNode, // #2 = 'ld' chained node
/*  7282*/          OPC_CheckFoldableChainNode,
/*  7283*/          OPC_RecordChild1, // #3 = $dst
/*  7284*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  7286*/          OPC_CheckPredicate, 9, // Predicate_load
/*  7288*/          OPC_MoveParent,
/*  7289*/          OPC_SwitchType /*4 cases */, 26, MVT::i8,// ->7318
/*  7292*/            OPC_MoveParent,
/*  7293*/            OPC_CheckChild2Same, 3,
/*  7295*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  7297*/            OPC_CheckPredicate, 1, // Predicate_store
/*  7299*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/*  7302*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*  7306*/            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)
/*  7318*/          /*SwitchType*/ 26, MVT::i16,// ->7346
/*  7320*/            OPC_MoveParent,
/*  7321*/            OPC_CheckChild2Same, 3,
/*  7323*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  7325*/            OPC_CheckPredicate, 1, // Predicate_store
/*  7327*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/*  7330*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*  7334*/            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)
/*  7346*/          /*SwitchType*/ 26, MVT::i32,// ->7374
/*  7348*/            OPC_MoveParent,
/*  7349*/            OPC_CheckChild2Same, 3,
/*  7351*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  7353*/            OPC_CheckPredicate, 1, // Predicate_store
/*  7355*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/*  7358*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*  7362*/            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)
/*  7374*/          /*SwitchType*/ 26, MVT::i64,// ->7402
/*  7376*/            OPC_MoveParent,
/*  7377*/            OPC_CheckChild2Same, 3,
/*  7379*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  7381*/            OPC_CheckPredicate, 1, // Predicate_store
/*  7383*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/*  7386*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*  7390*/            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)
/*  7402*/          0, // EndSwitchType
/*  7403*/        0, /*End of Scope*/
/*  7404*/      /*SwitchOpcode*/ 103|128,5/*743*/, TARGET_VAL(ISD::AND),// ->8151
/*  7408*/        OPC_Scope, 21|128,2/*277*/, /*->7688*/ // 4 children in Scope
/*  7411*/          OPC_MoveChild0,
/*  7412*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  7415*/          OPC_RecordMemRef,
/*  7416*/          OPC_RecordNode, // #1 = 'ld' chained node
/*  7417*/          OPC_CheckFoldableChainNode,
/*  7418*/          OPC_RecordChild1, // #2 = $dst
/*  7419*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  7421*/          OPC_CheckPredicate, 9, // Predicate_load
/*  7423*/          OPC_MoveParent,
/*  7424*/          OPC_RecordChild1, // #3 = $src
/*  7425*/          OPC_MoveChild1,
/*  7426*/          OPC_Scope, 115, /*->7543*/ // 5 children in Scope
/*  7428*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  7431*/            OPC_Scope, 35, /*->7468*/ // 3 children in Scope
/*  7433*/              OPC_CheckPredicate, 13, // Predicate_i16immSExt8
/*  7435*/              OPC_CheckPredicate, 14, // Predicate_i16immSExt8_su
/*  7437*/              OPC_MoveParent,
/*  7438*/              OPC_CheckType, MVT::i16,
/*  7440*/              OPC_MoveParent,
/*  7441*/              OPC_CheckChild2Same, 2,
/*  7443*/              OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  7445*/              OPC_CheckPredicate, 1, // Predicate_store
/*  7447*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  7450*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*  7454*/              OPC_EmitConvertToTarget, 3,
/*  7456*/              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)
/*  7468*/            /*Scope*/ 35, /*->7504*/
/*  7469*/              OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/*  7471*/              OPC_CheckPredicate, 14, // Predicate_i32immSExt8_su
/*  7473*/              OPC_MoveParent,
/*  7474*/              OPC_CheckType, MVT::i32,
/*  7476*/              OPC_MoveParent,
/*  7477*/              OPC_CheckChild2Same, 2,
/*  7479*/              OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  7481*/              OPC_CheckPredicate, 1, // Predicate_store
/*  7483*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  7486*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*  7490*/              OPC_EmitConvertToTarget, 3,
/*  7492*/              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)
/*  7504*/            /*Scope*/ 37, /*->7542*/
/*  7505*/              OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/*  7507*/              OPC_CheckPredicate, 14, // Predicate_i64immSExt8_su
/*  7509*/              OPC_MoveParent,
/*  7510*/              OPC_CheckType, MVT::i64,
/*  7512*/              OPC_MoveParent,
/*  7513*/              OPC_CheckChild2Same, 2,
/*  7515*/              OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  7517*/              OPC_CheckPredicate, 1, // Predicate_store
/*  7519*/              OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  7521*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  7524*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*  7528*/              OPC_EmitConvertToTarget, 3,
/*  7530*/              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)
/*  7542*/            0, /*End of Scope*/
/*  7543*/          /*Scope*/ 34, /*->7578*/
/*  7544*/            OPC_CheckPredicate, 15, // Predicate_relocImm8_su
/*  7546*/            OPC_MoveParent,
/*  7547*/            OPC_CheckType, MVT::i8,
/*  7549*/            OPC_MoveParent,
/*  7550*/            OPC_CheckChild2Same, 2,
/*  7552*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  7554*/            OPC_CheckPredicate, 1, // Predicate_store
/*  7556*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  7559*/            OPC_CheckComplexPat, /*CP*/1, /*#*/3, // selectRelocImm:$src #9
/*  7562*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  7566*/            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_relocImm8_su>>:$src), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                      // Dst: (AND8mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i8] }:$src)
/*  7578*/          /*Scope*/ 34, /*->7613*/
/*  7579*/            OPC_CheckPredicate, 15, // Predicate_relocImm16_su
/*  7581*/            OPC_MoveParent,
/*  7582*/            OPC_CheckType, MVT::i16,
/*  7584*/            OPC_MoveParent,
/*  7585*/            OPC_CheckChild2Same, 2,
/*  7587*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  7589*/            OPC_CheckPredicate, 1, // Predicate_store
/*  7591*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  7594*/            OPC_CheckComplexPat, /*CP*/1, /*#*/3, // selectRelocImm:$src #9
/*  7597*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  7601*/            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_relocImm16_su>>:$src), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                      // Dst: (AND16mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i16] }:$src)
/*  7613*/          /*Scope*/ 34, /*->7648*/
/*  7614*/            OPC_CheckPredicate, 15, // Predicate_relocImm32_su
/*  7616*/            OPC_MoveParent,
/*  7617*/            OPC_CheckType, MVT::i32,
/*  7619*/            OPC_MoveParent,
/*  7620*/            OPC_CheckChild2Same, 2,
/*  7622*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  7624*/            OPC_CheckPredicate, 1, // Predicate_store
/*  7626*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  7629*/            OPC_CheckComplexPat, /*CP*/1, /*#*/3, // selectRelocImm:$src #9
/*  7632*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  7636*/            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_relocImm32_su>>:$src), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                      // Dst: (AND32mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i32] }:$src)
/*  7648*/          /*Scope*/ 38, /*->7687*/
/*  7649*/            OPC_CheckPredicate, 16, // Predicate_i64relocImmSExt32
/*  7651*/            OPC_CheckPredicate, 15, // Predicate_i64relocImmSExt32_su
/*  7653*/            OPC_MoveParent,
/*  7654*/            OPC_CheckType, MVT::i64,
/*  7656*/            OPC_MoveParent,
/*  7657*/            OPC_CheckChild2Same, 2,
/*  7659*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  7661*/            OPC_CheckPredicate, 1, // Predicate_store
/*  7663*/            OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  7665*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  7668*/            OPC_CheckComplexPat, /*CP*/1, /*#*/3, // selectRelocImm:$src #9
/*  7671*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  7675*/            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>>, relocImm:{ *:[i64] }<<P:Predicate_i64relocImmSExt32>><<P:Predicate_i64relocImmSExt32_su>>:$src), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                      // Dst: (AND64mi32:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i64] }:$src)
/*  7687*/          0, /*End of Scope*/
/*  7688*/        /*Scope*/ 72|128,1/*200*/, /*->7890*/
/*  7690*/          OPC_RecordChild0, // #1 = $src
/*  7691*/          OPC_MoveChild0,
/*  7692*/          OPC_Scope, 47, /*->7741*/ // 4 children in Scope
/*  7694*/            OPC_CheckPredicate, 15, // Predicate_relocImm8_su
/*  7696*/            OPC_MoveParent,
/*  7697*/            OPC_MoveChild1,
/*  7698*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  7701*/            OPC_RecordMemRef,
/*  7702*/            OPC_RecordNode, // #2 = 'ld' chained node
/*  7703*/            OPC_CheckFoldableChainNode,
/*  7704*/            OPC_RecordChild1, // #3 = $dst
/*  7705*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  7707*/            OPC_CheckPredicate, 9, // Predicate_load
/*  7709*/            OPC_MoveParent,
/*  7710*/            OPC_CheckType, MVT::i8,
/*  7712*/            OPC_MoveParent,
/*  7713*/            OPC_CheckChild2Same, 3,
/*  7715*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  7717*/            OPC_CheckPredicate, 1, // Predicate_store
/*  7719*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src #4
/*  7722*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #5 #6 #7 #8 #9
/*  7725*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*  7729*/            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_relocImm8_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)
/*  7741*/          /*Scope*/ 47, /*->7789*/
/*  7742*/            OPC_CheckPredicate, 15, // Predicate_relocImm16_su
/*  7744*/            OPC_MoveParent,
/*  7745*/            OPC_MoveChild1,
/*  7746*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  7749*/            OPC_RecordMemRef,
/*  7750*/            OPC_RecordNode, // #2 = 'ld' chained node
/*  7751*/            OPC_CheckFoldableChainNode,
/*  7752*/            OPC_RecordChild1, // #3 = $dst
/*  7753*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  7755*/            OPC_CheckPredicate, 9, // Predicate_load
/*  7757*/            OPC_MoveParent,
/*  7758*/            OPC_CheckType, MVT::i16,
/*  7760*/            OPC_MoveParent,
/*  7761*/            OPC_CheckChild2Same, 3,
/*  7763*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  7765*/            OPC_CheckPredicate, 1, // Predicate_store
/*  7767*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src #4
/*  7770*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #5 #6 #7 #8 #9
/*  7773*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*  7777*/            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_relocImm16_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)
/*  7789*/          /*Scope*/ 47, /*->7837*/
/*  7790*/            OPC_CheckPredicate, 15, // Predicate_relocImm32_su
/*  7792*/            OPC_MoveParent,
/*  7793*/            OPC_MoveChild1,
/*  7794*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  7797*/            OPC_RecordMemRef,
/*  7798*/            OPC_RecordNode, // #2 = 'ld' chained node
/*  7799*/            OPC_CheckFoldableChainNode,
/*  7800*/            OPC_RecordChild1, // #3 = $dst
/*  7801*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  7803*/            OPC_CheckPredicate, 9, // Predicate_load
/*  7805*/            OPC_MoveParent,
/*  7806*/            OPC_CheckType, MVT::i32,
/*  7808*/            OPC_MoveParent,
/*  7809*/            OPC_CheckChild2Same, 3,
/*  7811*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  7813*/            OPC_CheckPredicate, 1, // Predicate_store
/*  7815*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src #4
/*  7818*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #5 #6 #7 #8 #9
/*  7821*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*  7825*/            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_relocImm32_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)
/*  7837*/          /*Scope*/ 51, /*->7889*/
/*  7838*/            OPC_CheckPredicate, 16, // Predicate_i64relocImmSExt32
/*  7840*/            OPC_CheckPredicate, 15, // Predicate_i64relocImmSExt32_su
/*  7842*/            OPC_MoveParent,
/*  7843*/            OPC_MoveChild1,
/*  7844*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  7847*/            OPC_RecordMemRef,
/*  7848*/            OPC_RecordNode, // #2 = 'ld' chained node
/*  7849*/            OPC_CheckFoldableChainNode,
/*  7850*/            OPC_RecordChild1, // #3 = $dst
/*  7851*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  7853*/            OPC_CheckPredicate, 9, // Predicate_load
/*  7855*/            OPC_MoveParent,
/*  7856*/            OPC_CheckType, MVT::i64,
/*  7858*/            OPC_MoveParent,
/*  7859*/            OPC_CheckChild2Same, 3,
/*  7861*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  7863*/            OPC_CheckPredicate, 1, // Predicate_store
/*  7865*/            OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  7867*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src #4
/*  7870*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #5 #6 #7 #8 #9
/*  7873*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*  7877*/            OPC_MorphNodeTo1, TARGET_VAL(X86::AND64mi32), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 5, 6, 7, 8, 9, 4, 
                      // Src: (st (and:{ *:[i64] } relocImm:{ *:[i64] }<<P:Predicate_i64relocImmSExt32>><<P:Predicate_i64relocImmSExt32_su>>:$src, (ld:{ *:[i64] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                      // Dst: (AND64mi32:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i64] }:$src)
/*  7889*/          0, /*End of Scope*/
/*  7890*/        /*Scope*/ 0|128,1/*128*/, /*->8020*/
/*  7892*/          OPC_MoveChild0,
/*  7893*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  7896*/          OPC_RecordMemRef,
/*  7897*/          OPC_RecordNode, // #1 = 'ld' chained node
/*  7898*/          OPC_CheckFoldableChainNode,
/*  7899*/          OPC_RecordChild1, // #2 = $dst
/*  7900*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  7902*/          OPC_CheckPredicate, 9, // Predicate_load
/*  7904*/          OPC_MoveParent,
/*  7905*/          OPC_RecordChild1, // #3 = $src
/*  7906*/          OPC_SwitchType /*4 cases */, 26, MVT::i8,// ->7935
/*  7909*/            OPC_MoveParent,
/*  7910*/            OPC_CheckChild2Same, 2,
/*  7912*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  7914*/            OPC_CheckPredicate, 1, // Predicate_store
/*  7916*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  7919*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  7923*/            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)
/*  7935*/          /*SwitchType*/ 26, MVT::i16,// ->7963
/*  7937*/            OPC_MoveParent,
/*  7938*/            OPC_CheckChild2Same, 2,
/*  7940*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  7942*/            OPC_CheckPredicate, 1, // Predicate_store
/*  7944*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  7947*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  7951*/            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)
/*  7963*/          /*SwitchType*/ 26, MVT::i32,// ->7991
/*  7965*/            OPC_MoveParent,
/*  7966*/            OPC_CheckChild2Same, 2,
/*  7968*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  7970*/            OPC_CheckPredicate, 1, // Predicate_store
/*  7972*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  7975*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  7979*/            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)
/*  7991*/          /*SwitchType*/ 26, MVT::i64,// ->8019
/*  7993*/            OPC_MoveParent,
/*  7994*/            OPC_CheckChild2Same, 2,
/*  7996*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  7998*/            OPC_CheckPredicate, 1, // Predicate_store
/*  8000*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  8003*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  8007*/            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)
/*  8019*/          0, // EndSwitchType
/*  8020*/        /*Scope*/ 0|128,1/*128*/, /*->8150*/
/*  8022*/          OPC_RecordChild0, // #1 = $src
/*  8023*/          OPC_MoveChild1,
/*  8024*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  8027*/          OPC_RecordMemRef,
/*  8028*/          OPC_RecordNode, // #2 = 'ld' chained node
/*  8029*/          OPC_CheckFoldableChainNode,
/*  8030*/          OPC_RecordChild1, // #3 = $dst
/*  8031*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  8033*/          OPC_CheckPredicate, 9, // Predicate_load
/*  8035*/          OPC_MoveParent,
/*  8036*/          OPC_SwitchType /*4 cases */, 26, MVT::i8,// ->8065
/*  8039*/            OPC_MoveParent,
/*  8040*/            OPC_CheckChild2Same, 3,
/*  8042*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  8044*/            OPC_CheckPredicate, 1, // Predicate_store
/*  8046*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/*  8049*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*  8053*/            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)
/*  8065*/          /*SwitchType*/ 26, MVT::i16,// ->8093
/*  8067*/            OPC_MoveParent,
/*  8068*/            OPC_CheckChild2Same, 3,
/*  8070*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  8072*/            OPC_CheckPredicate, 1, // Predicate_store
/*  8074*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/*  8077*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*  8081*/            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)
/*  8093*/          /*SwitchType*/ 26, MVT::i32,// ->8121
/*  8095*/            OPC_MoveParent,
/*  8096*/            OPC_CheckChild2Same, 3,
/*  8098*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  8100*/            OPC_CheckPredicate, 1, // Predicate_store
/*  8102*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/*  8105*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*  8109*/            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)
/*  8121*/          /*SwitchType*/ 26, MVT::i64,// ->8149
/*  8123*/            OPC_MoveParent,
/*  8124*/            OPC_CheckChild2Same, 3,
/*  8126*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  8128*/            OPC_CheckPredicate, 1, // Predicate_store
/*  8130*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/*  8133*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*  8137*/            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)
/*  8149*/          0, // EndSwitchType
/*  8150*/        0, /*End of Scope*/
/*  8151*/      /*SwitchOpcode*/ 103|128,5/*743*/, TARGET_VAL(ISD::OR),// ->8898
/*  8155*/        OPC_Scope, 21|128,2/*277*/, /*->8435*/ // 4 children in Scope
/*  8158*/          OPC_MoveChild0,
/*  8159*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  8162*/          OPC_RecordMemRef,
/*  8163*/          OPC_RecordNode, // #1 = 'ld' chained node
/*  8164*/          OPC_CheckFoldableChainNode,
/*  8165*/          OPC_RecordChild1, // #2 = $dst
/*  8166*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  8168*/          OPC_CheckPredicate, 9, // Predicate_load
/*  8170*/          OPC_MoveParent,
/*  8171*/          OPC_RecordChild1, // #3 = $src
/*  8172*/          OPC_MoveChild1,
/*  8173*/          OPC_Scope, 115, /*->8290*/ // 5 children in Scope
/*  8175*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  8178*/            OPC_Scope, 35, /*->8215*/ // 3 children in Scope
/*  8180*/              OPC_CheckPredicate, 13, // Predicate_i16immSExt8
/*  8182*/              OPC_CheckPredicate, 14, // Predicate_i16immSExt8_su
/*  8184*/              OPC_MoveParent,
/*  8185*/              OPC_CheckType, MVT::i16,
/*  8187*/              OPC_MoveParent,
/*  8188*/              OPC_CheckChild2Same, 2,
/*  8190*/              OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  8192*/              OPC_CheckPredicate, 1, // Predicate_store
/*  8194*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  8197*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*  8201*/              OPC_EmitConvertToTarget, 3,
/*  8203*/              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)
/*  8215*/            /*Scope*/ 35, /*->8251*/
/*  8216*/              OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/*  8218*/              OPC_CheckPredicate, 14, // Predicate_i32immSExt8_su
/*  8220*/              OPC_MoveParent,
/*  8221*/              OPC_CheckType, MVT::i32,
/*  8223*/              OPC_MoveParent,
/*  8224*/              OPC_CheckChild2Same, 2,
/*  8226*/              OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  8228*/              OPC_CheckPredicate, 1, // Predicate_store
/*  8230*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  8233*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*  8237*/              OPC_EmitConvertToTarget, 3,
/*  8239*/              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)
/*  8251*/            /*Scope*/ 37, /*->8289*/
/*  8252*/              OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/*  8254*/              OPC_CheckPredicate, 14, // Predicate_i64immSExt8_su
/*  8256*/              OPC_MoveParent,
/*  8257*/              OPC_CheckType, MVT::i64,
/*  8259*/              OPC_MoveParent,
/*  8260*/              OPC_CheckChild2Same, 2,
/*  8262*/              OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  8264*/              OPC_CheckPredicate, 1, // Predicate_store
/*  8266*/              OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  8268*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  8271*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*  8275*/              OPC_EmitConvertToTarget, 3,
/*  8277*/              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)
/*  8289*/            0, /*End of Scope*/
/*  8290*/          /*Scope*/ 34, /*->8325*/
/*  8291*/            OPC_CheckPredicate, 15, // Predicate_relocImm8_su
/*  8293*/            OPC_MoveParent,
/*  8294*/            OPC_CheckType, MVT::i8,
/*  8296*/            OPC_MoveParent,
/*  8297*/            OPC_CheckChild2Same, 2,
/*  8299*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  8301*/            OPC_CheckPredicate, 1, // Predicate_store
/*  8303*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  8306*/            OPC_CheckComplexPat, /*CP*/1, /*#*/3, // selectRelocImm:$src #9
/*  8309*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  8313*/            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_relocImm8_su>>:$src), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                      // Dst: (OR8mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i8] }:$src)
/*  8325*/          /*Scope*/ 34, /*->8360*/
/*  8326*/            OPC_CheckPredicate, 15, // Predicate_relocImm16_su
/*  8328*/            OPC_MoveParent,
/*  8329*/            OPC_CheckType, MVT::i16,
/*  8331*/            OPC_MoveParent,
/*  8332*/            OPC_CheckChild2Same, 2,
/*  8334*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  8336*/            OPC_CheckPredicate, 1, // Predicate_store
/*  8338*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  8341*/            OPC_CheckComplexPat, /*CP*/1, /*#*/3, // selectRelocImm:$src #9
/*  8344*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  8348*/            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_relocImm16_su>>:$src), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                      // Dst: (OR16mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i16] }:$src)
/*  8360*/          /*Scope*/ 34, /*->8395*/
/*  8361*/            OPC_CheckPredicate, 15, // Predicate_relocImm32_su
/*  8363*/            OPC_MoveParent,
/*  8364*/            OPC_CheckType, MVT::i32,
/*  8366*/            OPC_MoveParent,
/*  8367*/            OPC_CheckChild2Same, 2,
/*  8369*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  8371*/            OPC_CheckPredicate, 1, // Predicate_store
/*  8373*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  8376*/            OPC_CheckComplexPat, /*CP*/1, /*#*/3, // selectRelocImm:$src #9
/*  8379*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  8383*/            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_relocImm32_su>>:$src), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                      // Dst: (OR32mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i32] }:$src)
/*  8395*/          /*Scope*/ 38, /*->8434*/
/*  8396*/            OPC_CheckPredicate, 16, // Predicate_i64relocImmSExt32
/*  8398*/            OPC_CheckPredicate, 15, // Predicate_i64relocImmSExt32_su
/*  8400*/            OPC_MoveParent,
/*  8401*/            OPC_CheckType, MVT::i64,
/*  8403*/            OPC_MoveParent,
/*  8404*/            OPC_CheckChild2Same, 2,
/*  8406*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  8408*/            OPC_CheckPredicate, 1, // Predicate_store
/*  8410*/            OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  8412*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  8415*/            OPC_CheckComplexPat, /*CP*/1, /*#*/3, // selectRelocImm:$src #9
/*  8418*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  8422*/            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>>, relocImm:{ *:[i64] }<<P:Predicate_i64relocImmSExt32>><<P:Predicate_i64relocImmSExt32_su>>:$src), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                      // Dst: (OR64mi32:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i64] }:$src)
/*  8434*/          0, /*End of Scope*/
/*  8435*/        /*Scope*/ 72|128,1/*200*/, /*->8637*/
/*  8437*/          OPC_RecordChild0, // #1 = $src
/*  8438*/          OPC_MoveChild0,
/*  8439*/          OPC_Scope, 47, /*->8488*/ // 4 children in Scope
/*  8441*/            OPC_CheckPredicate, 15, // Predicate_relocImm8_su
/*  8443*/            OPC_MoveParent,
/*  8444*/            OPC_MoveChild1,
/*  8445*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  8448*/            OPC_RecordMemRef,
/*  8449*/            OPC_RecordNode, // #2 = 'ld' chained node
/*  8450*/            OPC_CheckFoldableChainNode,
/*  8451*/            OPC_RecordChild1, // #3 = $dst
/*  8452*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  8454*/            OPC_CheckPredicate, 9, // Predicate_load
/*  8456*/            OPC_MoveParent,
/*  8457*/            OPC_CheckType, MVT::i8,
/*  8459*/            OPC_MoveParent,
/*  8460*/            OPC_CheckChild2Same, 3,
/*  8462*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  8464*/            OPC_CheckPredicate, 1, // Predicate_store
/*  8466*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src #4
/*  8469*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #5 #6 #7 #8 #9
/*  8472*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*  8476*/            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_relocImm8_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)
/*  8488*/          /*Scope*/ 47, /*->8536*/
/*  8489*/            OPC_CheckPredicate, 15, // Predicate_relocImm16_su
/*  8491*/            OPC_MoveParent,
/*  8492*/            OPC_MoveChild1,
/*  8493*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  8496*/            OPC_RecordMemRef,
/*  8497*/            OPC_RecordNode, // #2 = 'ld' chained node
/*  8498*/            OPC_CheckFoldableChainNode,
/*  8499*/            OPC_RecordChild1, // #3 = $dst
/*  8500*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  8502*/            OPC_CheckPredicate, 9, // Predicate_load
/*  8504*/            OPC_MoveParent,
/*  8505*/            OPC_CheckType, MVT::i16,
/*  8507*/            OPC_MoveParent,
/*  8508*/            OPC_CheckChild2Same, 3,
/*  8510*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  8512*/            OPC_CheckPredicate, 1, // Predicate_store
/*  8514*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src #4
/*  8517*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #5 #6 #7 #8 #9
/*  8520*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*  8524*/            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_relocImm16_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)
/*  8536*/          /*Scope*/ 47, /*->8584*/
/*  8537*/            OPC_CheckPredicate, 15, // Predicate_relocImm32_su
/*  8539*/            OPC_MoveParent,
/*  8540*/            OPC_MoveChild1,
/*  8541*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  8544*/            OPC_RecordMemRef,
/*  8545*/            OPC_RecordNode, // #2 = 'ld' chained node
/*  8546*/            OPC_CheckFoldableChainNode,
/*  8547*/            OPC_RecordChild1, // #3 = $dst
/*  8548*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  8550*/            OPC_CheckPredicate, 9, // Predicate_load
/*  8552*/            OPC_MoveParent,
/*  8553*/            OPC_CheckType, MVT::i32,
/*  8555*/            OPC_MoveParent,
/*  8556*/            OPC_CheckChild2Same, 3,
/*  8558*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  8560*/            OPC_CheckPredicate, 1, // Predicate_store
/*  8562*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src #4
/*  8565*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #5 #6 #7 #8 #9
/*  8568*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*  8572*/            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_relocImm32_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)
/*  8584*/          /*Scope*/ 51, /*->8636*/
/*  8585*/            OPC_CheckPredicate, 16, // Predicate_i64relocImmSExt32
/*  8587*/            OPC_CheckPredicate, 15, // Predicate_i64relocImmSExt32_su
/*  8589*/            OPC_MoveParent,
/*  8590*/            OPC_MoveChild1,
/*  8591*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  8594*/            OPC_RecordMemRef,
/*  8595*/            OPC_RecordNode, // #2 = 'ld' chained node
/*  8596*/            OPC_CheckFoldableChainNode,
/*  8597*/            OPC_RecordChild1, // #3 = $dst
/*  8598*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  8600*/            OPC_CheckPredicate, 9, // Predicate_load
/*  8602*/            OPC_MoveParent,
/*  8603*/            OPC_CheckType, MVT::i64,
/*  8605*/            OPC_MoveParent,
/*  8606*/            OPC_CheckChild2Same, 3,
/*  8608*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  8610*/            OPC_CheckPredicate, 1, // Predicate_store
/*  8612*/            OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  8614*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src #4
/*  8617*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #5 #6 #7 #8 #9
/*  8620*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*  8624*/            OPC_MorphNodeTo1, TARGET_VAL(X86::OR64mi32), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 5, 6, 7, 8, 9, 4, 
                      // Src: (st (or:{ *:[i64] } relocImm:{ *:[i64] }<<P:Predicate_i64relocImmSExt32>><<P:Predicate_i64relocImmSExt32_su>>:$src, (ld:{ *:[i64] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                      // Dst: (OR64mi32:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i64] }:$src)
/*  8636*/          0, /*End of Scope*/
/*  8637*/        /*Scope*/ 0|128,1/*128*/, /*->8767*/
/*  8639*/          OPC_MoveChild0,
/*  8640*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  8643*/          OPC_RecordMemRef,
/*  8644*/          OPC_RecordNode, // #1 = 'ld' chained node
/*  8645*/          OPC_CheckFoldableChainNode,
/*  8646*/          OPC_RecordChild1, // #2 = $dst
/*  8647*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  8649*/          OPC_CheckPredicate, 9, // Predicate_load
/*  8651*/          OPC_MoveParent,
/*  8652*/          OPC_RecordChild1, // #3 = $src
/*  8653*/          OPC_SwitchType /*4 cases */, 26, MVT::i8,// ->8682
/*  8656*/            OPC_MoveParent,
/*  8657*/            OPC_CheckChild2Same, 2,
/*  8659*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  8661*/            OPC_CheckPredicate, 1, // Predicate_store
/*  8663*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  8666*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  8670*/            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)
/*  8682*/          /*SwitchType*/ 26, MVT::i16,// ->8710
/*  8684*/            OPC_MoveParent,
/*  8685*/            OPC_CheckChild2Same, 2,
/*  8687*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  8689*/            OPC_CheckPredicate, 1, // Predicate_store
/*  8691*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  8694*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  8698*/            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)
/*  8710*/          /*SwitchType*/ 26, MVT::i32,// ->8738
/*  8712*/            OPC_MoveParent,
/*  8713*/            OPC_CheckChild2Same, 2,
/*  8715*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  8717*/            OPC_CheckPredicate, 1, // Predicate_store
/*  8719*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  8722*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  8726*/            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)
/*  8738*/          /*SwitchType*/ 26, MVT::i64,// ->8766
/*  8740*/            OPC_MoveParent,
/*  8741*/            OPC_CheckChild2Same, 2,
/*  8743*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  8745*/            OPC_CheckPredicate, 1, // Predicate_store
/*  8747*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*  8750*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  8754*/            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)
/*  8766*/          0, // EndSwitchType
/*  8767*/        /*Scope*/ 0|128,1/*128*/, /*->8897*/
/*  8769*/          OPC_RecordChild0, // #1 = $src
/*  8770*/          OPC_MoveChild1,
/*  8771*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  8774*/          OPC_RecordMemRef,
/*  8775*/          OPC_RecordNode, // #2 = 'ld' chained node
/*  8776*/          OPC_CheckFoldableChainNode,
/*  8777*/          OPC_RecordChild1, // #3 = $dst
/*  8778*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  8780*/          OPC_CheckPredicate, 9, // Predicate_load
/*  8782*/          OPC_MoveParent,
/*  8783*/          OPC_SwitchType /*4 cases */, 26, MVT::i8,// ->8812
/*  8786*/            OPC_MoveParent,
/*  8787*/            OPC_CheckChild2Same, 3,
/*  8789*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  8791*/            OPC_CheckPredicate, 1, // Predicate_store
/*  8793*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/*  8796*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*  8800*/            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)
/*  8812*/          /*SwitchType*/ 26, MVT::i16,// ->8840
/*  8814*/            OPC_MoveParent,
/*  8815*/            OPC_CheckChild2Same, 3,
/*  8817*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  8819*/            OPC_CheckPredicate, 1, // Predicate_store
/*  8821*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/*  8824*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*  8828*/            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)
/*  8840*/          /*SwitchType*/ 26, MVT::i32,// ->8868
/*  8842*/            OPC_MoveParent,
/*  8843*/            OPC_CheckChild2Same, 3,
/*  8845*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  8847*/            OPC_CheckPredicate, 1, // Predicate_store
/*  8849*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/*  8852*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*  8856*/            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)
/*  8868*/          /*SwitchType*/ 26, MVT::i64,// ->8896
/*  8870*/            OPC_MoveParent,
/*  8871*/            OPC_CheckChild2Same, 3,
/*  8873*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  8875*/            OPC_CheckPredicate, 1, // Predicate_store
/*  8877*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/*  8880*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*  8884*/            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)
/*  8896*/          0, // EndSwitchType
/*  8897*/        0, /*End of Scope*/
/*  8898*/      /*SwitchOpcode*/ 88|128,4/*600*/, TARGET_VAL(X86ISD::ADC),// ->9502
/*  8902*/        OPC_Scope, 53|128,3/*437*/, /*->9342*/ // 2 children in Scope
/*  8905*/          OPC_MoveChild0,
/*  8906*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  8909*/          OPC_RecordMemRef,
/*  8910*/          OPC_RecordNode, // #1 = 'ld' chained node
/*  8911*/          OPC_CheckFoldableChainNode,
/*  8912*/          OPC_RecordChild1, // #2 = $dst
/*  8913*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  8915*/          OPC_CheckPredicate, 9, // Predicate_load
/*  8917*/          OPC_MoveParent,
/*  8918*/          OPC_RecordChild1, // #3 = $src
/*  8919*/          OPC_Scope, 35|128,2/*291*/, /*->9213*/ // 2 children in Scope
/*  8922*/            OPC_MoveChild1,
/*  8923*/            OPC_Scope, 127, /*->9052*/ // 5 children in Scope
/*  8925*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  8928*/              OPC_Scope, 39, /*->8969*/ // 3 children in Scope
/*  8930*/                OPC_CheckPredicate, 13, // Predicate_i16immSExt8
/*  8932*/                OPC_CheckPredicate, 14, // Predicate_i16immSExt8_su
/*  8934*/                OPC_MoveParent,
/*  8935*/                OPC_RecordChild2, // #4 = physreg input EFLAGS
/*  8936*/                OPC_CheckType, MVT::i16,
/*  8938*/                OPC_MoveParent,
/*  8939*/                OPC_CheckChild2Same, 2,
/*  8941*/                OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  8943*/                OPC_CheckPredicate, 1, // Predicate_store
/*  8945*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/*  8948*/                OPC_EmitMergeInputChains, 2, 0, 1, 
/*  8952*/                OPC_EmitConvertToTarget, 3,
/*  8954*/                OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*  8957*/                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)
/*  8969*/              /*Scope*/ 39, /*->9009*/
/*  8970*/                OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/*  8972*/                OPC_CheckPredicate, 14, // Predicate_i32immSExt8_su
/*  8974*/                OPC_MoveParent,
/*  8975*/                OPC_RecordChild2, // #4 = physreg input EFLAGS
/*  8976*/                OPC_CheckType, MVT::i32,
/*  8978*/                OPC_MoveParent,
/*  8979*/                OPC_CheckChild2Same, 2,
/*  8981*/                OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  8983*/                OPC_CheckPredicate, 1, // Predicate_store
/*  8985*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/*  8988*/                OPC_EmitMergeInputChains, 2, 0, 1, 
/*  8992*/                OPC_EmitConvertToTarget, 3,
/*  8994*/                OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*  8997*/                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)
/*  9009*/              /*Scope*/ 41, /*->9051*/
/*  9010*/                OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/*  9012*/                OPC_CheckPredicate, 14, // Predicate_i64immSExt8_su
/*  9014*/                OPC_MoveParent,
/*  9015*/                OPC_RecordChild2, // #4 = physreg input EFLAGS
/*  9016*/                OPC_CheckType, MVT::i64,
/*  9018*/                OPC_MoveParent,
/*  9019*/                OPC_CheckChild2Same, 2,
/*  9021*/                OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  9023*/                OPC_CheckPredicate, 1, // Predicate_store
/*  9025*/                OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  9027*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/*  9030*/                OPC_EmitMergeInputChains, 2, 0, 1, 
/*  9034*/                OPC_EmitConvertToTarget, 3,
/*  9036*/                OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*  9039*/                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)
/*  9051*/              0, /*End of Scope*/
/*  9052*/            /*Scope*/ 38, /*->9091*/
/*  9053*/              OPC_CheckPredicate, 15, // Predicate_relocImm8_su
/*  9055*/              OPC_MoveParent,
/*  9056*/              OPC_RecordChild2, // #4 = physreg input EFLAGS
/*  9057*/              OPC_CheckType, MVT::i8,
/*  9059*/              OPC_MoveParent,
/*  9060*/              OPC_CheckChild2Same, 2,
/*  9062*/              OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  9064*/              OPC_CheckPredicate, 1, // Predicate_store
/*  9066*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/*  9069*/              OPC_CheckComplexPat, /*CP*/1, /*#*/3, // selectRelocImm:$src #10
/*  9072*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*  9076*/              OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*  9079*/              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_relocImm8_su>>:$src, EFLAGS:{ *:[i32] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                        // Dst: (ADC8mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i8] }:$src)
/*  9091*/            /*Scope*/ 38, /*->9130*/
/*  9092*/              OPC_CheckPredicate, 15, // Predicate_relocImm16_su
/*  9094*/              OPC_MoveParent,
/*  9095*/              OPC_RecordChild2, // #4 = physreg input EFLAGS
/*  9096*/              OPC_CheckType, MVT::i16,
/*  9098*/              OPC_MoveParent,
/*  9099*/              OPC_CheckChild2Same, 2,
/*  9101*/              OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  9103*/              OPC_CheckPredicate, 1, // Predicate_store
/*  9105*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/*  9108*/              OPC_CheckComplexPat, /*CP*/1, /*#*/3, // selectRelocImm:$src #10
/*  9111*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*  9115*/              OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*  9118*/              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_relocImm16_su>>:$src, EFLAGS:{ *:[i32] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                        // Dst: (ADC16mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i16] }:$src)
/*  9130*/            /*Scope*/ 38, /*->9169*/
/*  9131*/              OPC_CheckPredicate, 15, // Predicate_relocImm32_su
/*  9133*/              OPC_MoveParent,
/*  9134*/              OPC_RecordChild2, // #4 = physreg input EFLAGS
/*  9135*/              OPC_CheckType, MVT::i32,
/*  9137*/              OPC_MoveParent,
/*  9138*/              OPC_CheckChild2Same, 2,
/*  9140*/              OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  9142*/              OPC_CheckPredicate, 1, // Predicate_store
/*  9144*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/*  9147*/              OPC_CheckComplexPat, /*CP*/1, /*#*/3, // selectRelocImm:$src #10
/*  9150*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*  9154*/              OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*  9157*/              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_relocImm32_su>>:$src, EFLAGS:{ *:[i32] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                        // Dst: (ADC32mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i32] }:$src)
/*  9169*/            /*Scope*/ 42, /*->9212*/
/*  9170*/              OPC_CheckPredicate, 16, // Predicate_i64relocImmSExt32
/*  9172*/              OPC_CheckPredicate, 15, // Predicate_i64relocImmSExt32_su
/*  9174*/              OPC_MoveParent,
/*  9175*/              OPC_RecordChild2, // #4 = physreg input EFLAGS
/*  9176*/              OPC_CheckType, MVT::i64,
/*  9178*/              OPC_MoveParent,
/*  9179*/              OPC_CheckChild2Same, 2,
/*  9181*/              OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  9183*/              OPC_CheckPredicate, 1, // Predicate_store
/*  9185*/              OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  9187*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/*  9190*/              OPC_CheckComplexPat, /*CP*/1, /*#*/3, // selectRelocImm:$src #10
/*  9193*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*  9197*/              OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*  9200*/              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>>, relocImm:{ *:[i64] }<<P:Predicate_i64relocImmSExt32>><<P:Predicate_i64relocImmSExt32_su>>:$src, EFLAGS:{ *:[i32] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                        // Dst: (ADC64mi32:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i64] }:$src)
/*  9212*/            0, /*End of Scope*/
/*  9213*/          /*Scope*/ 127, /*->9341*/
/*  9214*/            OPC_RecordChild2, // #4 = physreg input EFLAGS
/*  9215*/            OPC_SwitchType /*4 cases */, 29, MVT::i8,// ->9247
/*  9218*/              OPC_MoveParent,
/*  9219*/              OPC_CheckChild2Same, 2,
/*  9221*/              OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  9223*/              OPC_CheckPredicate, 1, // Predicate_store
/*  9225*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/*  9228*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*  9232*/              OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*  9235*/              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)
/*  9247*/            /*SwitchType*/ 29, MVT::i16,// ->9278
/*  9249*/              OPC_MoveParent,
/*  9250*/              OPC_CheckChild2Same, 2,
/*  9252*/              OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  9254*/              OPC_CheckPredicate, 1, // Predicate_store
/*  9256*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/*  9259*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*  9263*/              OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*  9266*/              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)
/*  9278*/            /*SwitchType*/ 29, MVT::i32,// ->9309
/*  9280*/              OPC_MoveParent,
/*  9281*/              OPC_CheckChild2Same, 2,
/*  9283*/              OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  9285*/              OPC_CheckPredicate, 1, // Predicate_store
/*  9287*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/*  9290*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*  9294*/              OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*  9297*/              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)
/*  9309*/            /*SwitchType*/ 29, MVT::i64,// ->9340
/*  9311*/              OPC_MoveParent,
/*  9312*/              OPC_CheckChild2Same, 2,
/*  9314*/              OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  9316*/              OPC_CheckPredicate, 1, // Predicate_store
/*  9318*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/*  9321*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*  9325*/              OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*  9328*/              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)
/*  9340*/            0, // EndSwitchType
/*  9341*/          0, /*End of Scope*/
/*  9342*/        /*Scope*/ 29|128,1/*157*/, /*->9501*/
/*  9344*/          OPC_RecordChild0, // #1 = $src
/*  9345*/          OPC_MoveChild1,
/*  9346*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  9349*/          OPC_RecordMemRef,
/*  9350*/          OPC_RecordNode, // #2 = 'ld' chained node
/*  9351*/          OPC_CheckFoldableChainNode,
/*  9352*/          OPC_RecordChild1, // #3 = $dst
/*  9353*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  9355*/          OPC_Scope, 35, /*->9392*/ // 4 children in Scope
/*  9357*/            OPC_CheckPredicate, 5, // Predicate_loadi8
/*  9359*/            OPC_MoveParent,
/*  9360*/            OPC_RecordChild2, // #4 = physreg input EFLAGS
/*  9361*/            OPC_CheckType, MVT::i8,
/*  9363*/            OPC_MoveParent,
/*  9364*/            OPC_CheckChild2Same, 3,
/*  9366*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  9368*/            OPC_CheckPredicate, 1, // Predicate_store
/*  9370*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #5 #6 #7 #8 #9
/*  9373*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*  9377*/            OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*  9380*/            OPC_MorphNodeTo1, TARGET_VAL(X86::ADC8mr), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 5, 6, 7, 8, 9, 1, 
                      // Src: (st (X86adc_flag:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src, (ld:{ *:[i8] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi8>>, EFLAGS:{ *:[i32] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                      // Dst: (ADC8mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR8:{ *:[i8] }:$src)
/*  9392*/          /*Scope*/ 35, /*->9428*/
/*  9393*/            OPC_CheckPredicate, 7, // Predicate_loadi16
/*  9395*/            OPC_MoveParent,
/*  9396*/            OPC_RecordChild2, // #4 = physreg input EFLAGS
/*  9397*/            OPC_CheckType, MVT::i16,
/*  9399*/            OPC_MoveParent,
/*  9400*/            OPC_CheckChild2Same, 3,
/*  9402*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  9404*/            OPC_CheckPredicate, 1, // Predicate_store
/*  9406*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #5 #6 #7 #8 #9
/*  9409*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*  9413*/            OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*  9416*/            OPC_MorphNodeTo1, TARGET_VAL(X86::ADC16mr), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 5, 6, 7, 8, 9, 1, 
                      // Src: (st (X86adc_flag:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src, (ld:{ *:[i16] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, EFLAGS:{ *:[i32] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                      // Dst: (ADC16mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR16:{ *:[i16] }:$src)
/*  9428*/          /*Scope*/ 35, /*->9464*/
/*  9429*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/*  9431*/            OPC_MoveParent,
/*  9432*/            OPC_RecordChild2, // #4 = physreg input EFLAGS
/*  9433*/            OPC_CheckType, MVT::i32,
/*  9435*/            OPC_MoveParent,
/*  9436*/            OPC_CheckChild2Same, 3,
/*  9438*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  9440*/            OPC_CheckPredicate, 1, // Predicate_store
/*  9442*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #5 #6 #7 #8 #9
/*  9445*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*  9449*/            OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*  9452*/            OPC_MorphNodeTo1, TARGET_VAL(X86::ADC32mr), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 5, 6, 7, 8, 9, 1, 
                      // Src: (st (X86adc_flag:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src, (ld:{ *:[i32] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, EFLAGS:{ *:[i32] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                      // Dst: (ADC32mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR32:{ *:[i32] }:$src)
/*  9464*/          /*Scope*/ 35, /*->9500*/
/*  9465*/            OPC_CheckPredicate, 9, // Predicate_load
/*  9467*/            OPC_MoveParent,
/*  9468*/            OPC_RecordChild2, // #4 = physreg input EFLAGS
/*  9469*/            OPC_CheckType, MVT::i64,
/*  9471*/            OPC_MoveParent,
/*  9472*/            OPC_CheckChild2Same, 3,
/*  9474*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  9476*/            OPC_CheckPredicate, 1, // Predicate_store
/*  9478*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #5 #6 #7 #8 #9
/*  9481*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*  9485*/            OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*  9488*/            OPC_MorphNodeTo1, TARGET_VAL(X86::ADC64mr), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 5, 6, 7, 8, 9, 1, 
                      // Src: (st (X86adc_flag:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src, (ld:{ *:[i64] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>, EFLAGS:{ *:[i32] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 47
                      // Dst: (ADC64mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR64:{ *:[i64] }:$src)
/*  9500*/          0, /*End of Scope*/
/*  9501*/        0, /*End of Scope*/
/*  9502*/      /*SwitchOpcode*/ 53|128,3/*437*/, TARGET_VAL(X86ISD::SBB),// ->9943
/*  9506*/        OPC_MoveChild0,
/*  9507*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  9510*/        OPC_RecordMemRef,
/*  9511*/        OPC_RecordNode, // #1 = 'ld' chained node
/*  9512*/        OPC_CheckFoldableChainNode,
/*  9513*/        OPC_RecordChild1, // #2 = $dst
/*  9514*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  9516*/        OPC_CheckPredicate, 9, // Predicate_load
/*  9518*/        OPC_MoveParent,
/*  9519*/        OPC_RecordChild1, // #3 = $src
/*  9520*/        OPC_Scope, 35|128,2/*291*/, /*->9814*/ // 2 children in Scope
/*  9523*/          OPC_MoveChild1,
/*  9524*/          OPC_Scope, 127, /*->9653*/ // 5 children in Scope
/*  9526*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  9529*/            OPC_Scope, 39, /*->9570*/ // 3 children in Scope
/*  9531*/              OPC_CheckPredicate, 13, // Predicate_i16immSExt8
/*  9533*/              OPC_CheckPredicate, 14, // Predicate_i16immSExt8_su
/*  9535*/              OPC_MoveParent,
/*  9536*/              OPC_RecordChild2, // #4 = physreg input EFLAGS
/*  9537*/              OPC_CheckType, MVT::i16,
/*  9539*/              OPC_MoveParent,
/*  9540*/              OPC_CheckChild2Same, 2,
/*  9542*/              OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  9544*/              OPC_CheckPredicate, 1, // Predicate_store
/*  9546*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/*  9549*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*  9553*/              OPC_EmitConvertToTarget, 3,
/*  9555*/              OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*  9558*/              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)
/*  9570*/            /*Scope*/ 39, /*->9610*/
/*  9571*/              OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/*  9573*/              OPC_CheckPredicate, 14, // Predicate_i32immSExt8_su
/*  9575*/              OPC_MoveParent,
/*  9576*/              OPC_RecordChild2, // #4 = physreg input EFLAGS
/*  9577*/              OPC_CheckType, MVT::i32,
/*  9579*/              OPC_MoveParent,
/*  9580*/              OPC_CheckChild2Same, 2,
/*  9582*/              OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  9584*/              OPC_CheckPredicate, 1, // Predicate_store
/*  9586*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/*  9589*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*  9593*/              OPC_EmitConvertToTarget, 3,
/*  9595*/              OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*  9598*/              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)
/*  9610*/            /*Scope*/ 41, /*->9652*/
/*  9611*/              OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/*  9613*/              OPC_CheckPredicate, 14, // Predicate_i64immSExt8_su
/*  9615*/              OPC_MoveParent,
/*  9616*/              OPC_RecordChild2, // #4 = physreg input EFLAGS
/*  9617*/              OPC_CheckType, MVT::i64,
/*  9619*/              OPC_MoveParent,
/*  9620*/              OPC_CheckChild2Same, 2,
/*  9622*/              OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  9624*/              OPC_CheckPredicate, 1, // Predicate_store
/*  9626*/              OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  9628*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/*  9631*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*  9635*/              OPC_EmitConvertToTarget, 3,
/*  9637*/              OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*  9640*/              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)
/*  9652*/            0, /*End of Scope*/
/*  9653*/          /*Scope*/ 38, /*->9692*/
/*  9654*/            OPC_CheckPredicate, 15, // Predicate_relocImm8_su
/*  9656*/            OPC_MoveParent,
/*  9657*/            OPC_RecordChild2, // #4 = physreg input EFLAGS
/*  9658*/            OPC_CheckType, MVT::i8,
/*  9660*/            OPC_MoveParent,
/*  9661*/            OPC_CheckChild2Same, 2,
/*  9663*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  9665*/            OPC_CheckPredicate, 1, // Predicate_store
/*  9667*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/*  9670*/            OPC_CheckComplexPat, /*CP*/1, /*#*/3, // selectRelocImm:$src #10
/*  9673*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  9677*/            OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*  9680*/            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_relocImm8_su>>:$src, EFLAGS:{ *:[i32] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                      // Dst: (SBB8mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i8] }:$src)
/*  9692*/          /*Scope*/ 38, /*->9731*/
/*  9693*/            OPC_CheckPredicate, 15, // Predicate_relocImm16_su
/*  9695*/            OPC_MoveParent,
/*  9696*/            OPC_RecordChild2, // #4 = physreg input EFLAGS
/*  9697*/            OPC_CheckType, MVT::i16,
/*  9699*/            OPC_MoveParent,
/*  9700*/            OPC_CheckChild2Same, 2,
/*  9702*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  9704*/            OPC_CheckPredicate, 1, // Predicate_store
/*  9706*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/*  9709*/            OPC_CheckComplexPat, /*CP*/1, /*#*/3, // selectRelocImm:$src #10
/*  9712*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  9716*/            OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*  9719*/            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_relocImm16_su>>:$src, EFLAGS:{ *:[i32] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                      // Dst: (SBB16mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i16] }:$src)
/*  9731*/          /*Scope*/ 38, /*->9770*/
/*  9732*/            OPC_CheckPredicate, 15, // Predicate_relocImm32_su
/*  9734*/            OPC_MoveParent,
/*  9735*/            OPC_RecordChild2, // #4 = physreg input EFLAGS
/*  9736*/            OPC_CheckType, MVT::i32,
/*  9738*/            OPC_MoveParent,
/*  9739*/            OPC_CheckChild2Same, 2,
/*  9741*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  9743*/            OPC_CheckPredicate, 1, // Predicate_store
/*  9745*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/*  9748*/            OPC_CheckComplexPat, /*CP*/1, /*#*/3, // selectRelocImm:$src #10
/*  9751*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  9755*/            OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*  9758*/            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_relocImm32_su>>:$src, EFLAGS:{ *:[i32] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                      // Dst: (SBB32mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i32] }:$src)
/*  9770*/          /*Scope*/ 42, /*->9813*/
/*  9771*/            OPC_CheckPredicate, 16, // Predicate_i64relocImmSExt32
/*  9773*/            OPC_CheckPredicate, 15, // Predicate_i64relocImmSExt32_su
/*  9775*/            OPC_MoveParent,
/*  9776*/            OPC_RecordChild2, // #4 = physreg input EFLAGS
/*  9777*/            OPC_CheckType, MVT::i64,
/*  9779*/            OPC_MoveParent,
/*  9780*/            OPC_CheckChild2Same, 2,
/*  9782*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  9784*/            OPC_CheckPredicate, 1, // Predicate_store
/*  9786*/            OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*  9788*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/*  9791*/            OPC_CheckComplexPat, /*CP*/1, /*#*/3, // selectRelocImm:$src #10
/*  9794*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  9798*/            OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*  9801*/            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>>, relocImm:{ *:[i64] }<<P:Predicate_i64relocImmSExt32>><<P:Predicate_i64relocImmSExt32_su>>:$src, EFLAGS:{ *:[i32] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 50
                      // Dst: (SBB64mi32:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i64] }:$src)
/*  9813*/          0, /*End of Scope*/
/*  9814*/        /*Scope*/ 127, /*->9942*/
/*  9815*/          OPC_RecordChild2, // #4 = physreg input EFLAGS
/*  9816*/          OPC_SwitchType /*4 cases */, 29, MVT::i8,// ->9848
/*  9819*/            OPC_MoveParent,
/*  9820*/            OPC_CheckChild2Same, 2,
/*  9822*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  9824*/            OPC_CheckPredicate, 1, // Predicate_store
/*  9826*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/*  9829*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  9833*/            OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*  9836*/            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)
/*  9848*/          /*SwitchType*/ 29, MVT::i16,// ->9879
/*  9850*/            OPC_MoveParent,
/*  9851*/            OPC_CheckChild2Same, 2,
/*  9853*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  9855*/            OPC_CheckPredicate, 1, // Predicate_store
/*  9857*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/*  9860*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  9864*/            OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*  9867*/            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)
/*  9879*/          /*SwitchType*/ 29, MVT::i32,// ->9910
/*  9881*/            OPC_MoveParent,
/*  9882*/            OPC_CheckChild2Same, 2,
/*  9884*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  9886*/            OPC_CheckPredicate, 1, // Predicate_store
/*  9888*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/*  9891*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  9895*/            OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*  9898*/            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)
/*  9910*/          /*SwitchType*/ 29, MVT::i64,// ->9941
/*  9912*/            OPC_MoveParent,
/*  9913*/            OPC_CheckChild2Same, 2,
/*  9915*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  9917*/            OPC_CheckPredicate, 1, // Predicate_store
/*  9919*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/*  9922*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*  9926*/            OPC_EmitCopyToReg, 4, X86::EFLAGS,
/*  9929*/            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)
/*  9941*/          0, // EndSwitchType
/*  9942*/        0, /*End of Scope*/
/*  9943*/      /*SwitchOpcode*/ 5|128,2/*261*/, TARGET_VAL(X86ISD::SHLD),// ->10208
/*  9947*/        OPC_MoveChild0,
/*  9948*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*  9951*/        OPC_RecordMemRef,
/*  9952*/        OPC_RecordNode, // #1 = 'ld' chained node
/*  9953*/        OPC_CheckFoldableChainNode,
/*  9954*/        OPC_RecordChild1, // #2 = $dst
/*  9955*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*  9957*/        OPC_Scope, 43, /*->10002*/ // 6 children in Scope
/*  9959*/          OPC_CheckPredicate, 7, // Predicate_loadi16
/*  9961*/          OPC_MoveParent,
/*  9962*/          OPC_RecordChild1, // #3 = $src2
/*  9963*/          OPC_RecordChild2, // #4 = $src3
/*  9964*/          OPC_MoveChild2,
/*  9965*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*  9968*/          OPC_CheckType, MVT::i8,
/*  9970*/          OPC_MoveParent,
/*  9971*/          OPC_CheckType, MVT::i16,
/*  9973*/          OPC_MoveParent,
/*  9974*/          OPC_CheckChild2Same, 2,
/*  9976*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/*  9978*/          OPC_CheckPredicate, 1, // Predicate_store
/*  9980*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/*  9983*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*  9987*/          OPC_EmitConvertToTarget, 4,
/*  9989*/          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)
/* 10002*/        /*Scope*/ 43, /*->10046*/
/* 10003*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/* 10005*/          OPC_MoveParent,
/* 10006*/          OPC_RecordChild1, // #3 = $src2
/* 10007*/          OPC_RecordChild2, // #4 = $src3
/* 10008*/          OPC_MoveChild2,
/* 10009*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 10012*/          OPC_CheckType, MVT::i8,
/* 10014*/          OPC_MoveParent,
/* 10015*/          OPC_CheckType, MVT::i32,
/* 10017*/          OPC_MoveParent,
/* 10018*/          OPC_CheckChild2Same, 2,
/* 10020*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 10022*/          OPC_CheckPredicate, 1, // Predicate_store
/* 10024*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/* 10027*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/* 10031*/          OPC_EmitConvertToTarget, 4,
/* 10033*/          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)
/* 10046*/        /*Scope*/ 43, /*->10090*/
/* 10047*/          OPC_CheckPredicate, 9, // Predicate_load
/* 10049*/          OPC_MoveParent,
/* 10050*/          OPC_RecordChild1, // #3 = $src2
/* 10051*/          OPC_RecordChild2, // #4 = $src3
/* 10052*/          OPC_MoveChild2,
/* 10053*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 10056*/          OPC_CheckType, MVT::i8,
/* 10058*/          OPC_MoveParent,
/* 10059*/          OPC_CheckType, MVT::i64,
/* 10061*/          OPC_MoveParent,
/* 10062*/          OPC_CheckChild2Same, 2,
/* 10064*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 10066*/          OPC_CheckPredicate, 1, // Predicate_store
/* 10068*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/* 10071*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/* 10075*/          OPC_EmitConvertToTarget, 4,
/* 10077*/          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)
/* 10090*/        /*Scope*/ 38, /*->10129*/
/* 10091*/          OPC_CheckPredicate, 7, // Predicate_loadi16
/* 10093*/          OPC_MoveParent,
/* 10094*/          OPC_RecordChild1, // #3 = $src2
/* 10095*/          OPC_RecordChild2, // #4 = physreg input CL
/* 10096*/          OPC_CheckChild2Type, MVT::i8,
/* 10098*/          OPC_CheckType, MVT::i16,
/* 10100*/          OPC_MoveParent,
/* 10101*/          OPC_CheckChild2Same, 2,
/* 10103*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 10105*/          OPC_CheckPredicate, 1, // Predicate_store
/* 10107*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/* 10110*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/* 10114*/          OPC_EmitCopyToReg, 4, X86::CL,
/* 10117*/          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)
/* 10129*/        /*Scope*/ 38, /*->10168*/
/* 10130*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/* 10132*/          OPC_MoveParent,
/* 10133*/          OPC_RecordChild1, // #3 = $src2
/* 10134*/          OPC_RecordChild2, // #4 = physreg input CL
/* 10135*/          OPC_CheckChild2Type, MVT::i8,
/* 10137*/          OPC_CheckType, MVT::i32,
/* 10139*/          OPC_MoveParent,
/* 10140*/          OPC_CheckChild2Same, 2,
/* 10142*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 10144*/          OPC_CheckPredicate, 1, // Predicate_store
/* 10146*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/* 10149*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/* 10153*/          OPC_EmitCopyToReg, 4, X86::CL,
/* 10156*/          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)
/* 10168*/        /*Scope*/ 38, /*->10207*/
/* 10169*/          OPC_CheckPredicate, 9, // Predicate_load
/* 10171*/          OPC_MoveParent,
/* 10172*/          OPC_RecordChild1, // #3 = $src2
/* 10173*/          OPC_RecordChild2, // #4 = physreg input CL
/* 10174*/          OPC_CheckChild2Type, MVT::i8,
/* 10176*/          OPC_CheckType, MVT::i64,
/* 10178*/          OPC_MoveParent,
/* 10179*/          OPC_CheckChild2Same, 2,
/* 10181*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 10183*/          OPC_CheckPredicate, 1, // Predicate_store
/* 10185*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/* 10188*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/* 10192*/          OPC_EmitCopyToReg, 4, X86::CL,
/* 10195*/          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)
/* 10207*/        0, /*End of Scope*/
/* 10208*/      /*SwitchOpcode*/ 5|128,2/*261*/, TARGET_VAL(X86ISD::SHRD),// ->10473
/* 10212*/        OPC_MoveChild0,
/* 10213*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 10216*/        OPC_RecordMemRef,
/* 10217*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 10218*/        OPC_CheckFoldableChainNode,
/* 10219*/        OPC_RecordChild1, // #2 = $dst
/* 10220*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 10222*/        OPC_Scope, 43, /*->10267*/ // 6 children in Scope
/* 10224*/          OPC_CheckPredicate, 7, // Predicate_loadi16
/* 10226*/          OPC_MoveParent,
/* 10227*/          OPC_RecordChild1, // #3 = $src2
/* 10228*/          OPC_RecordChild2, // #4 = $src3
/* 10229*/          OPC_MoveChild2,
/* 10230*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 10233*/          OPC_CheckType, MVT::i8,
/* 10235*/          OPC_MoveParent,
/* 10236*/          OPC_CheckType, MVT::i16,
/* 10238*/          OPC_MoveParent,
/* 10239*/          OPC_CheckChild2Same, 2,
/* 10241*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 10243*/          OPC_CheckPredicate, 1, // Predicate_store
/* 10245*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/* 10248*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/* 10252*/          OPC_EmitConvertToTarget, 4,
/* 10254*/          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)
/* 10267*/        /*Scope*/ 43, /*->10311*/
/* 10268*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/* 10270*/          OPC_MoveParent,
/* 10271*/          OPC_RecordChild1, // #3 = $src2
/* 10272*/          OPC_RecordChild2, // #4 = $src3
/* 10273*/          OPC_MoveChild2,
/* 10274*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 10277*/          OPC_CheckType, MVT::i8,
/* 10279*/          OPC_MoveParent,
/* 10280*/          OPC_CheckType, MVT::i32,
/* 10282*/          OPC_MoveParent,
/* 10283*/          OPC_CheckChild2Same, 2,
/* 10285*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 10287*/          OPC_CheckPredicate, 1, // Predicate_store
/* 10289*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/* 10292*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/* 10296*/          OPC_EmitConvertToTarget, 4,
/* 10298*/          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)
/* 10311*/        /*Scope*/ 43, /*->10355*/
/* 10312*/          OPC_CheckPredicate, 9, // Predicate_load
/* 10314*/          OPC_MoveParent,
/* 10315*/          OPC_RecordChild1, // #3 = $src2
/* 10316*/          OPC_RecordChild2, // #4 = $src3
/* 10317*/          OPC_MoveChild2,
/* 10318*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 10321*/          OPC_CheckType, MVT::i8,
/* 10323*/          OPC_MoveParent,
/* 10324*/          OPC_CheckType, MVT::i64,
/* 10326*/          OPC_MoveParent,
/* 10327*/          OPC_CheckChild2Same, 2,
/* 10329*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 10331*/          OPC_CheckPredicate, 1, // Predicate_store
/* 10333*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/* 10336*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/* 10340*/          OPC_EmitConvertToTarget, 4,
/* 10342*/          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)
/* 10355*/        /*Scope*/ 38, /*->10394*/
/* 10356*/          OPC_CheckPredicate, 7, // Predicate_loadi16
/* 10358*/          OPC_MoveParent,
/* 10359*/          OPC_RecordChild1, // #3 = $src2
/* 10360*/          OPC_RecordChild2, // #4 = physreg input CL
/* 10361*/          OPC_CheckChild2Type, MVT::i8,
/* 10363*/          OPC_CheckType, MVT::i16,
/* 10365*/          OPC_MoveParent,
/* 10366*/          OPC_CheckChild2Same, 2,
/* 10368*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 10370*/          OPC_CheckPredicate, 1, // Predicate_store
/* 10372*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/* 10375*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/* 10379*/          OPC_EmitCopyToReg, 4, X86::CL,
/* 10382*/          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)
/* 10394*/        /*Scope*/ 38, /*->10433*/
/* 10395*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/* 10397*/          OPC_MoveParent,
/* 10398*/          OPC_RecordChild1, // #3 = $src2
/* 10399*/          OPC_RecordChild2, // #4 = physreg input CL
/* 10400*/          OPC_CheckChild2Type, MVT::i8,
/* 10402*/          OPC_CheckType, MVT::i32,
/* 10404*/          OPC_MoveParent,
/* 10405*/          OPC_CheckChild2Same, 2,
/* 10407*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 10409*/          OPC_CheckPredicate, 1, // Predicate_store
/* 10411*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/* 10414*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/* 10418*/          OPC_EmitCopyToReg, 4, X86::CL,
/* 10421*/          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)
/* 10433*/        /*Scope*/ 38, /*->10472*/
/* 10434*/          OPC_CheckPredicate, 9, // Predicate_load
/* 10436*/          OPC_MoveParent,
/* 10437*/          OPC_RecordChild1, // #3 = $src2
/* 10438*/          OPC_RecordChild2, // #4 = physreg input CL
/* 10439*/          OPC_CheckChild2Type, MVT::i8,
/* 10441*/          OPC_CheckType, MVT::i64,
/* 10443*/          OPC_MoveParent,
/* 10444*/          OPC_CheckChild2Same, 2,
/* 10446*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 10448*/          OPC_CheckPredicate, 1, // Predicate_store
/* 10450*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #5 #6 #7 #8 #9
/* 10453*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/* 10457*/          OPC_EmitCopyToReg, 4, X86::CL,
/* 10460*/          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)
/* 10472*/        0, /*End of Scope*/
/* 10473*/      /*SwitchOpcode*/ 91|128,4/*603*/, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->11080
/* 10477*/        OPC_Scope, 6|128,3/*390*/, /*->10870*/ // 2 children in Scope
/* 10480*/          OPC_MoveChild0,
/* 10481*/          OPC_SwitchOpcode /*4 cases */, 85|128,1/*213*/, TARGET_VAL(ISD::BITCAST),// ->10699
/* 10486*/            OPC_Scope, 124, /*->10612*/ // 2 children in Scope
/* 10488*/              OPC_MoveChild0,
/* 10489*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::CVTPS2PH),
/* 10492*/              OPC_RecordChild0, // #1 = $src1
/* 10493*/              OPC_CheckChild0Type, MVT::v4f32,
/* 10495*/              OPC_RecordChild1, // #2 = $src2
/* 10496*/              OPC_MoveChild1,
/* 10497*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 10500*/              OPC_MoveParent,
/* 10501*/              OPC_CheckType, MVT::v8i16,
/* 10503*/              OPC_MoveParent,
/* 10504*/              OPC_SwitchType /*2 cases */, 51, MVT::v2f64,// ->10558
/* 10507*/                OPC_MoveParent,
/* 10508*/                OPC_CheckChild1Integer, 0, 
/* 10510*/                OPC_CheckType, MVT::f64,
/* 10512*/                OPC_MoveParent,
/* 10513*/                OPC_RecordChild2, // #3 = $dst
/* 10514*/                OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 10516*/                OPC_CheckPredicate, 1, // Predicate_store
/* 10518*/                OPC_Scope, 18, /*->10538*/ // 2 children in Scope
/* 10520*/                  OPC_CheckPatternPredicate, 11, // (Subtarget->hasF16C()) && (!Subtarget->hasVLX())
/* 10522*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 10525*/                  OPC_EmitMergeInputChains1_0,
/* 10526*/                  OPC_MorphNodeTo0, TARGET_VAL(X86::VCVTPS2PHmr), 0|OPFL_Chain|OPFL_MemRefs,
                                7/*#Ops*/, 4, 5, 6, 7, 8, 1, 2, 
                            // Src: (st (extractelt:{ *:[f64] } (bitconvert:{ *:[v2f64] } (X86cvtps2ph:{ *:[v8i16] } VR128:{ *:[v4f32] }:$src1, (timm:{ *:[i32] }):$src2)), 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 39
                            // Dst: (VCVTPS2PHmr addr:{ *:[iPTR] }:$dst, VR128:{ *:[v4f32] }:$src1, (timm:{ *:[i32] }):$src2)
/* 10538*/                /*Scope*/ 18, /*->10557*/
/* 10539*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 10541*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 10544*/                  OPC_EmitMergeInputChains1_0,
/* 10545*/                  OPC_MorphNodeTo0, TARGET_VAL(X86::VCVTPS2PHZ128mr), 0|OPFL_Chain|OPFL_MemRefs,
                                7/*#Ops*/, 4, 5, 6, 7, 8, 1, 2, 
                            // Src: (st (extractelt:{ *:[f64] } (bitconvert:{ *:[v2f64] } (X86cvtps2ph:{ *:[v8i16] } VR128X:{ *:[v4f32] }:$src1, (timm:{ *:[i32] }):$src2)), 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 39
                            // Dst: (VCVTPS2PHZ128mr addr:{ *:[iPTR] }:$dst, VR128X:{ *:[v4f32] }:$src1, (timm:{ *:[i32] }):$src2)
/* 10557*/                0, /*End of Scope*/
/* 10558*/              /*SwitchType*/ 51, MVT::v2i64,// ->10611
/* 10560*/                OPC_MoveParent,
/* 10561*/                OPC_CheckChild1Integer, 0, 
/* 10563*/                OPC_CheckType, MVT::i64,
/* 10565*/                OPC_MoveParent,
/* 10566*/                OPC_RecordChild2, // #3 = $dst
/* 10567*/                OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 10569*/                OPC_CheckPredicate, 1, // Predicate_store
/* 10571*/                OPC_Scope, 18, /*->10591*/ // 2 children in Scope
/* 10573*/                  OPC_CheckPatternPredicate, 11, // (Subtarget->hasF16C()) && (!Subtarget->hasVLX())
/* 10575*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 10578*/                  OPC_EmitMergeInputChains1_0,
/* 10579*/                  OPC_MorphNodeTo0, TARGET_VAL(X86::VCVTPS2PHmr), 0|OPFL_Chain|OPFL_MemRefs,
                                7/*#Ops*/, 4, 5, 6, 7, 8, 1, 2, 
                            // Src: (st (extractelt:{ *:[i64] } (bitconvert:{ *:[v2i64] } (X86cvtps2ph:{ *:[v8i16] } VR128:{ *:[v4f32] }:$src1, (timm:{ *:[i32] }):$src2)), 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 39
                            // Dst: (VCVTPS2PHmr addr:{ *:[iPTR] }:$dst, VR128:{ *:[v4f32] }:$src1, (timm:{ *:[i32] }):$src2)
/* 10591*/                /*Scope*/ 18, /*->10610*/
/* 10592*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 10594*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 10597*/                  OPC_EmitMergeInputChains1_0,
/* 10598*/                  OPC_MorphNodeTo0, TARGET_VAL(X86::VCVTPS2PHZ128mr), 0|OPFL_Chain|OPFL_MemRefs,
                                7/*#Ops*/, 4, 5, 6, 7, 8, 1, 2, 
                            // Src: (st (extractelt:{ *:[i64] } (bitconvert:{ *:[v2i64] } (X86cvtps2ph:{ *:[v8i16] } VR128X:{ *:[v4f32] }:$src1, (timm:{ *:[i32] }):$src2)), 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 39
                            // Dst: (VCVTPS2PHZ128mr addr:{ *:[iPTR] }:$dst, VR128X:{ *:[v4f32] }:$src1, (timm:{ *:[i32] }):$src2)
/* 10610*/                0, /*End of Scope*/
/* 10611*/              0, // EndSwitchType
/* 10612*/            /*Scope*/ 85, /*->10698*/
/* 10613*/              OPC_RecordChild0, // #1 = $src1
/* 10614*/              OPC_CheckChild0Type, MVT::v4f32,
/* 10616*/              OPC_CheckType, MVT::v4i32,
/* 10618*/              OPC_MoveParent,
/* 10619*/              OPC_RecordChild1, // #2 = $src2
/* 10620*/              OPC_MoveChild1,
/* 10621*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 10624*/              OPC_MoveParent,
/* 10625*/              OPC_CheckType, MVT::i32,
/* 10627*/              OPC_MoveParent,
/* 10628*/              OPC_RecordChild2, // #3 = $dst
/* 10629*/              OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 10631*/              OPC_CheckPredicate, 1, // Predicate_store
/* 10633*/              OPC_Scope, 20, /*->10655*/ // 3 children in Scope
/* 10635*/                OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 10637*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 10640*/                OPC_EmitMergeInputChains1_0,
/* 10641*/                OPC_EmitConvertToTarget, 2,
/* 10643*/                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)
/* 10655*/              /*Scope*/ 20, /*->10676*/
/* 10656*/                OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/* 10658*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 10661*/                OPC_EmitMergeInputChains1_0,
/* 10662*/                OPC_EmitConvertToTarget, 2,
/* 10664*/                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)
/* 10676*/              /*Scope*/ 20, /*->10697*/
/* 10677*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 10679*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 10682*/                OPC_EmitMergeInputChains1_0,
/* 10683*/                OPC_EmitConvertToTarget, 2,
/* 10685*/                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)
/* 10697*/              0, /*End of Scope*/
/* 10698*/            0, /*End of Scope*/
/* 10699*/          /*SwitchOpcode*/ 54, TARGET_VAL(X86ISD::VPERMILPI),// ->10756
/* 10702*/            OPC_RecordChild0, // #1 = $src
/* 10703*/            OPC_CheckChild1Integer, 1, 
/* 10705*/            OPC_CheckType, MVT::v2f64,
/* 10707*/            OPC_MoveParent,
/* 10708*/            OPC_CheckChild1Integer, 0, 
/* 10710*/            OPC_CheckType, MVT::f64,
/* 10712*/            OPC_MoveParent,
/* 10713*/            OPC_RecordChild2, // #2 = $dst
/* 10714*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 10716*/            OPC_CheckPredicate, 1, // Predicate_store
/* 10718*/            OPC_Scope, 17, /*->10737*/ // 2 children in Scope
/* 10720*/              OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 10722*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 10725*/              OPC_EmitMergeInputChains1_0,
/* 10726*/              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)
/* 10737*/            /*Scope*/ 17, /*->10755*/
/* 10738*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 10740*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 10743*/              OPC_EmitMergeInputChains1_0,
/* 10744*/              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)
/* 10755*/            0, /*End of Scope*/
/* 10756*/          /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::SHUFP),// ->10794
/* 10759*/            OPC_RecordChild0, // #1 = $src
/* 10760*/            OPC_CheckChild1Same, 1,
/* 10762*/            OPC_CheckChild2Integer, 1, 
/* 10764*/            OPC_CheckType, MVT::v2f64,
/* 10766*/            OPC_MoveParent,
/* 10767*/            OPC_CheckChild1Integer, 0, 
/* 10769*/            OPC_CheckType, MVT::f64,
/* 10771*/            OPC_MoveParent,
/* 10772*/            OPC_RecordChild2, // #2 = $dst
/* 10773*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 10775*/            OPC_CheckPredicate, 1, // Predicate_store
/* 10777*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 10779*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 10782*/            OPC_EmitMergeInputChains1_0,
/* 10783*/            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)
/* 10794*/          /*SwitchOpcode*/ 72, TARGET_VAL(X86ISD::UNPCKH),// ->10869
/* 10797*/            OPC_RecordChild0, // #1 = $src
/* 10798*/            OPC_CheckChild1Same, 1,
/* 10800*/            OPC_CheckType, MVT::v2f64,
/* 10802*/            OPC_MoveParent,
/* 10803*/            OPC_CheckChild1Integer, 0, 
/* 10805*/            OPC_CheckType, MVT::f64,
/* 10807*/            OPC_MoveParent,
/* 10808*/            OPC_RecordChild2, // #2 = $dst
/* 10809*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 10811*/            OPC_CheckPredicate, 1, // Predicate_store
/* 10813*/            OPC_Scope, 17, /*->10832*/ // 3 children in Scope
/* 10815*/              OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 10817*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 10820*/              OPC_EmitMergeInputChains1_0,
/* 10821*/              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)
/* 10832*/            /*Scope*/ 17, /*->10850*/
/* 10833*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 10835*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 10838*/              OPC_EmitMergeInputChains1_0,
/* 10839*/              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)
/* 10850*/            /*Scope*/ 17, /*->10868*/
/* 10851*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 10853*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 10856*/              OPC_EmitMergeInputChains1_0,
/* 10857*/              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)
/* 10868*/            0, /*End of Scope*/
/* 10869*/          0, // EndSwitchOpcode
/* 10870*/        /*Scope*/ 79|128,1/*207*/, /*->11079*/
/* 10872*/          OPC_RecordChild0, // #1 = $src
/* 10873*/          OPC_SwitchType /*3 cases */, 66, MVT::f64,// ->10942
/* 10876*/            OPC_CheckChild0Type, MVT::v2f64,
/* 10878*/            OPC_CheckChild1Integer, 0, 
/* 10880*/            OPC_MoveParent,
/* 10881*/            OPC_RecordChild2, // #2 = $dst
/* 10882*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 10884*/            OPC_CheckPredicate, 1, // Predicate_store
/* 10886*/            OPC_Scope, 17, /*->10905*/ // 3 children in Scope
/* 10888*/              OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 10890*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 10893*/              OPC_EmitMergeInputChains1_0,
/* 10894*/              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)
/* 10905*/            /*Scope*/ 17, /*->10923*/
/* 10906*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 10908*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 10911*/              OPC_EmitMergeInputChains1_0,
/* 10912*/              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)
/* 10923*/            /*Scope*/ 17, /*->10941*/
/* 10924*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 10926*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 10929*/              OPC_EmitMergeInputChains1_0,
/* 10930*/              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)
/* 10941*/            0, /*End of Scope*/
/* 10942*/          /*SwitchType*/ 66, MVT::i32,// ->11010
/* 10944*/            OPC_CheckChild0Type, MVT::v4i32,
/* 10946*/            OPC_CheckChild1Integer, 0, 
/* 10948*/            OPC_MoveParent,
/* 10949*/            OPC_RecordChild2, // #2 = $dst
/* 10950*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 10952*/            OPC_CheckPredicate, 1, // Predicate_store
/* 10954*/            OPC_Scope, 17, /*->10973*/ // 3 children in Scope
/* 10956*/              OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 10958*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 10961*/              OPC_EmitMergeInputChains1_0,
/* 10962*/              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)
/* 10973*/            /*Scope*/ 17, /*->10991*/
/* 10974*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 10976*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 10979*/              OPC_EmitMergeInputChains1_0,
/* 10980*/              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)
/* 10991*/            /*Scope*/ 17, /*->11009*/
/* 10992*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 10994*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 10997*/              OPC_EmitMergeInputChains1_0,
/* 10998*/              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)
/* 11009*/            0, /*End of Scope*/
/* 11010*/          /*SwitchType*/ 66, MVT::i64,// ->11078
/* 11012*/            OPC_CheckChild0Type, MVT::v2i64,
/* 11014*/            OPC_CheckChild1Integer, 0, 
/* 11016*/            OPC_MoveParent,
/* 11017*/            OPC_RecordChild2, // #2 = $dst
/* 11018*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 11020*/            OPC_CheckPredicate, 1, // Predicate_store
/* 11022*/            OPC_Scope, 17, /*->11041*/ // 3 children in Scope
/* 11024*/              OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 11026*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 11029*/              OPC_EmitMergeInputChains1_0,
/* 11030*/              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)
/* 11041*/            /*Scope*/ 17, /*->11059*/
/* 11042*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 11044*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 11047*/              OPC_EmitMergeInputChains1_0,
/* 11048*/              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)
/* 11059*/            /*Scope*/ 17, /*->11077*/
/* 11060*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 11062*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 11065*/              OPC_EmitMergeInputChains1_0,
/* 11066*/              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)
/* 11077*/            0, /*End of Scope*/
/* 11078*/          0, // EndSwitchType
/* 11079*/        0, /*End of Scope*/
/* 11080*/      /*SwitchOpcode*/ 49|128,2/*305*/, TARGET_VAL(ISD::TRUNCATE),// ->11389
/* 11084*/        OPC_MoveChild0,
/* 11085*/        OPC_SwitchOpcode /*3 cases */, 2|128,1/*130*/, TARGET_VAL(ISD::SRL),// ->11220
/* 11090*/          OPC_RecordChild0, // #1 = $src
/* 11091*/          OPC_CheckChild1Integer, 8, 
/* 11093*/          OPC_CheckChild1Type, MVT::i8,
/* 11095*/          OPC_CheckPredicate, 17, // Predicate_srl_su
/* 11097*/          OPC_SwitchType /*3 cases */, 37, MVT::i64,// ->11137
/* 11100*/            OPC_MoveParent,
/* 11101*/            OPC_CheckPredicate, 17, // Predicate_trunc_su
/* 11103*/            OPC_CheckType, MVT::i8,
/* 11105*/            OPC_MoveParent,
/* 11106*/            OPC_RecordChild2, // #2 = $dst
/* 11107*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 11109*/            OPC_CheckPredicate, 1, // Predicate_store
/* 11111*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 11114*/            OPC_EmitMergeInputChains1_0,
/* 11115*/            OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
/* 11118*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i8, 2/*#Ops*/, 1, 8,  // Results = #9
/* 11126*/            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] }))
/* 11137*/          /*SwitchType*/ 39, MVT::i32,// ->11178
/* 11139*/            OPC_MoveParent,
/* 11140*/            OPC_CheckPredicate, 17, // Predicate_trunc_su
/* 11142*/            OPC_CheckType, MVT::i8,
/* 11144*/            OPC_MoveParent,
/* 11145*/            OPC_RecordChild2, // #2 = $dst
/* 11146*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 11148*/            OPC_CheckPredicate, 1, // Predicate_store
/* 11150*/            OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/* 11152*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 11155*/            OPC_EmitMergeInputChains1_0,
/* 11156*/            OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
/* 11159*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i8, 2/*#Ops*/, 1, 8,  // Results = #9
/* 11167*/            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] }))
/* 11178*/          /*SwitchType*/ 39, MVT::i16,// ->11219
/* 11180*/            OPC_MoveParent,
/* 11181*/            OPC_CheckPredicate, 17, // Predicate_trunc_su
/* 11183*/            OPC_CheckType, MVT::i8,
/* 11185*/            OPC_MoveParent,
/* 11186*/            OPC_RecordChild2, // #2 = $dst
/* 11187*/            OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 11189*/            OPC_CheckPredicate, 1, // Predicate_store
/* 11191*/            OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/* 11193*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 11196*/            OPC_EmitMergeInputChains1_0,
/* 11197*/            OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
/* 11200*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::i8, 2/*#Ops*/, 1, 8,  // Results = #9
/* 11208*/            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] }))
/* 11219*/          0, // EndSwitchType
/* 11220*/        /*SwitchOpcode*/ 81, TARGET_VAL(X86ISD::PEXTRB),// ->11304
/* 11223*/          OPC_RecordChild0, // #1 = $src1
/* 11224*/          OPC_RecordChild1, // #2 = $src2
/* 11225*/          OPC_MoveChild1,
/* 11226*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 11229*/          OPC_MoveParent,
/* 11230*/          OPC_MoveParent,
/* 11231*/          OPC_CheckType, MVT::i8,
/* 11233*/          OPC_MoveParent,
/* 11234*/          OPC_RecordChild2, // #3 = $dst
/* 11235*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 11237*/          OPC_CheckPredicate, 1, // Predicate_store
/* 11239*/          OPC_Scope, 20, /*->11261*/ // 3 children in Scope
/* 11241*/            OPC_CheckPatternPredicate, 14, // (Subtarget->hasAVX()) && (!Subtarget->hasBWI())
/* 11243*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 11246*/            OPC_EmitMergeInputChains1_0,
/* 11247*/            OPC_EmitConvertToTarget, 2,
/* 11249*/            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)
/* 11261*/          /*Scope*/ 20, /*->11282*/
/* 11262*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/* 11264*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 11267*/            OPC_EmitMergeInputChains1_0,
/* 11268*/            OPC_EmitConvertToTarget, 2,
/* 11270*/            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)
/* 11282*/          /*Scope*/ 20, /*->11303*/
/* 11283*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/* 11285*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 11288*/            OPC_EmitMergeInputChains1_0,
/* 11289*/            OPC_EmitConvertToTarget, 2,
/* 11291*/            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)
/* 11303*/          0, /*End of Scope*/
/* 11304*/        /*SwitchOpcode*/ 81, TARGET_VAL(X86ISD::PEXTRW),// ->11388
/* 11307*/          OPC_RecordChild0, // #1 = $src1
/* 11308*/          OPC_RecordChild1, // #2 = $src2
/* 11309*/          OPC_MoveChild1,
/* 11310*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 11313*/          OPC_MoveParent,
/* 11314*/          OPC_MoveParent,
/* 11315*/          OPC_CheckType, MVT::i16,
/* 11317*/          OPC_MoveParent,
/* 11318*/          OPC_RecordChild2, // #3 = $dst
/* 11319*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 11321*/          OPC_CheckPredicate, 1, // Predicate_store
/* 11323*/          OPC_Scope, 20, /*->11345*/ // 3 children in Scope
/* 11325*/            OPC_CheckPatternPredicate, 14, // (Subtarget->hasAVX()) && (!Subtarget->hasBWI())
/* 11327*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 11330*/            OPC_EmitMergeInputChains1_0,
/* 11331*/            OPC_EmitConvertToTarget, 2,
/* 11333*/            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)
/* 11345*/          /*Scope*/ 20, /*->11366*/
/* 11346*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/* 11348*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 11351*/            OPC_EmitMergeInputChains1_0,
/* 11352*/            OPC_EmitConvertToTarget, 2,
/* 11354*/            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)
/* 11366*/          /*Scope*/ 20, /*->11387*/
/* 11367*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/* 11369*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 11372*/            OPC_EmitMergeInputChains1_0,
/* 11373*/            OPC_EmitConvertToTarget, 2,
/* 11375*/            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)
/* 11387*/          0, /*End of Scope*/
/* 11388*/        0, // EndSwitchOpcode
/* 11389*/      0, // EndSwitchOpcode
/* 11390*/    /*Scope*/ 40|128,8/*1064*/, /*->12456*/
/* 11392*/      OPC_RecordChild1, // #1 = $ext
/* 11393*/      OPC_MoveChild1,
/* 11394*/      OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 11397*/      OPC_RecordChild0, // #2 = $src1
/* 11398*/      OPC_Scope, 40, /*->11440*/ // 22 children in Scope
/* 11400*/        OPC_CheckChild0Type, MVT::v8f32,
/* 11402*/        OPC_MoveChild1,
/* 11403*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 11406*/        OPC_CheckType, MVT::iPTR,
/* 11408*/        OPC_MoveParent,
/* 11409*/        OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/* 11411*/        OPC_CheckType, MVT::v4f32,
/* 11413*/        OPC_MoveParent,
/* 11414*/        OPC_RecordChild2, // #3 = $dst
/* 11415*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 11417*/        OPC_CheckPredicate, 1, // Predicate_store
/* 11419*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 11421*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 11424*/        OPC_EmitMergeInputChains1_0,
/* 11425*/        OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/* 11428*/        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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                  // Dst: (VEXTRACTF128mr addr:{ *:[iPTR] }:$dst, VR256:{ *:[v8f32] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128:{ *:[v4f32] }:$ext))
/* 11440*/      /*Scope*/ 40, /*->11481*/
/* 11441*/        OPC_CheckChild0Type, MVT::v4f64,
/* 11443*/        OPC_MoveChild1,
/* 11444*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 11447*/        OPC_CheckType, MVT::iPTR,
/* 11449*/        OPC_MoveParent,
/* 11450*/        OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/* 11452*/        OPC_CheckType, MVT::v2f64,
/* 11454*/        OPC_MoveParent,
/* 11455*/        OPC_RecordChild2, // #3 = $dst
/* 11456*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 11458*/        OPC_CheckPredicate, 1, // Predicate_store
/* 11460*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 11462*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 11465*/        OPC_EmitMergeInputChains1_0,
/* 11466*/        OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/* 11469*/        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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                  // Dst: (VEXTRACTF128mr addr:{ *:[iPTR] }:$dst, VR256:{ *:[v4f64] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128:{ *:[v2f64] }:$ext))
/* 11481*/      /*Scope*/ 65, /*->11547*/
/* 11482*/        OPC_CheckChild0Type, MVT::v4i64,
/* 11484*/        OPC_MoveChild1,
/* 11485*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 11488*/        OPC_CheckType, MVT::iPTR,
/* 11490*/        OPC_MoveParent,
/* 11491*/        OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/* 11493*/        OPC_CheckType, MVT::v2i64,
/* 11495*/        OPC_MoveParent,
/* 11496*/        OPC_RecordChild2, // #3 = $dst
/* 11497*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 11499*/        OPC_CheckPredicate, 1, // Predicate_store
/* 11501*/        OPC_Scope, 21, /*->11524*/ // 2 children in Scope
/* 11503*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/* 11505*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 11508*/          OPC_EmitMergeInputChains1_0,
/* 11509*/          OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/* 11512*/          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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                    // Dst: (VEXTRACTF128mr addr:{ *:[iPTR] }:$dst, VR256:{ *:[v4i64] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128:{ *:[v2i64] }:$ext))
/* 11524*/        /*Scope*/ 21, /*->11546*/
/* 11525*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/* 11527*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 11530*/          OPC_EmitMergeInputChains1_0,
/* 11531*/          OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/* 11534*/          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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                    // Dst: (VEXTRACTI128mr addr:{ *:[iPTR] }:$dst, VR256:{ *:[v4i64] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128:{ *:[v2i64] }:$ext))
/* 11546*/        0, /*End of Scope*/
/* 11547*/      /*Scope*/ 65, /*->11613*/
/* 11548*/        OPC_CheckChild0Type, MVT::v8i32,
/* 11550*/        OPC_MoveChild1,
/* 11551*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 11554*/        OPC_CheckType, MVT::iPTR,
/* 11556*/        OPC_MoveParent,
/* 11557*/        OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/* 11559*/        OPC_CheckType, MVT::v4i32,
/* 11561*/        OPC_MoveParent,
/* 11562*/        OPC_RecordChild2, // #3 = $dst
/* 11563*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 11565*/        OPC_CheckPredicate, 1, // Predicate_store
/* 11567*/        OPC_Scope, 21, /*->11590*/ // 2 children in Scope
/* 11569*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/* 11571*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 11574*/          OPC_EmitMergeInputChains1_0,
/* 11575*/          OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/* 11578*/          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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                    // Dst: (VEXTRACTF128mr addr:{ *:[iPTR] }:$dst, VR256:{ *:[v8i32] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128:{ *:[v4i32] }:$ext))
/* 11590*/        /*Scope*/ 21, /*->11612*/
/* 11591*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/* 11593*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 11596*/          OPC_EmitMergeInputChains1_0,
/* 11597*/          OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/* 11600*/          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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                    // Dst: (VEXTRACTI128mr addr:{ *:[iPTR] }:$dst, VR256:{ *:[v8i32] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128:{ *:[v4i32] }:$ext))
/* 11612*/        0, /*End of Scope*/
/* 11613*/      /*Scope*/ 65, /*->11679*/
/* 11614*/        OPC_CheckChild0Type, MVT::v16i16,
/* 11616*/        OPC_MoveChild1,
/* 11617*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 11620*/        OPC_CheckType, MVT::iPTR,
/* 11622*/        OPC_MoveParent,
/* 11623*/        OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/* 11625*/        OPC_CheckType, MVT::v8i16,
/* 11627*/        OPC_MoveParent,
/* 11628*/        OPC_RecordChild2, // #3 = $dst
/* 11629*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 11631*/        OPC_CheckPredicate, 1, // Predicate_store
/* 11633*/        OPC_Scope, 21, /*->11656*/ // 2 children in Scope
/* 11635*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/* 11637*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 11640*/          OPC_EmitMergeInputChains1_0,
/* 11641*/          OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/* 11644*/          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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                    // Dst: (VEXTRACTF128mr addr:{ *:[iPTR] }:$dst, VR256:{ *:[v16i16] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128:{ *:[v8i16] }:$ext))
/* 11656*/        /*Scope*/ 21, /*->11678*/
/* 11657*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/* 11659*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 11662*/          OPC_EmitMergeInputChains1_0,
/* 11663*/          OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/* 11666*/          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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                    // Dst: (VEXTRACTI128mr addr:{ *:[iPTR] }:$dst, VR256:{ *:[v16i16] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128:{ *:[v8i16] }:$ext))
/* 11678*/        0, /*End of Scope*/
/* 11679*/      /*Scope*/ 65, /*->11745*/
/* 11680*/        OPC_CheckChild0Type, MVT::v32i8,
/* 11682*/        OPC_MoveChild1,
/* 11683*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 11686*/        OPC_CheckType, MVT::iPTR,
/* 11688*/        OPC_MoveParent,
/* 11689*/        OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/* 11691*/        OPC_CheckType, MVT::v16i8,
/* 11693*/        OPC_MoveParent,
/* 11694*/        OPC_RecordChild2, // #3 = $dst
/* 11695*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 11697*/        OPC_CheckPredicate, 1, // Predicate_store
/* 11699*/        OPC_Scope, 21, /*->11722*/ // 2 children in Scope
/* 11701*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/* 11703*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 11706*/          OPC_EmitMergeInputChains1_0,
/* 11707*/          OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/* 11710*/          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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                    // Dst: (VEXTRACTF128mr addr:{ *:[iPTR] }:$dst, VR256:{ *:[v32i8] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128:{ *:[v16i8] }:$ext))
/* 11722*/        /*Scope*/ 21, /*->11744*/
/* 11723*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/* 11725*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 11728*/          OPC_EmitMergeInputChains1_0,
/* 11729*/          OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/* 11732*/          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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                    // Dst: (VEXTRACTI128mr addr:{ *:[iPTR] }:$dst, VR256:{ *:[v32i8] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128:{ *:[v16i8] }:$ext))
/* 11744*/        0, /*End of Scope*/
/* 11745*/      /*Scope*/ 40, /*->11786*/
/* 11746*/        OPC_CheckChild0Type, MVT::v16f32,
/* 11748*/        OPC_MoveChild1,
/* 11749*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 11752*/        OPC_CheckType, MVT::iPTR,
/* 11754*/        OPC_MoveParent,
/* 11755*/        OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/* 11757*/        OPC_CheckType, MVT::v4f32,
/* 11759*/        OPC_MoveParent,
/* 11760*/        OPC_RecordChild2, // #3 = $dst
/* 11761*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 11763*/        OPC_CheckPredicate, 1, // Predicate_store
/* 11765*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 11767*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 11770*/        OPC_EmitMergeInputChains1_0,
/* 11771*/        OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/* 11774*/        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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$idx, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                  // Dst: (VEXTRACTF32x4Zmr addr:{ *:[iPTR] }:$dst, VR512:{ *:[v16f32] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } (extract_subvector:{ *:[v4f32] } VR512:{ *:[v16f32] }:$src1, (imm:{ *:[iPTR] })):$idx))
/* 11786*/      /*Scope*/ 38, /*->11825*/
/* 11787*/        OPC_MoveChild1,
/* 11788*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 11791*/        OPC_CheckType, MVT::iPTR,
/* 11793*/        OPC_MoveParent,
/* 11794*/        OPC_CheckPredicate, 18, // Predicate_vextract256_extract
/* 11796*/        OPC_CheckType, MVT::v4f64,
/* 11798*/        OPC_MoveParent,
/* 11799*/        OPC_RecordChild2, // #3 = $dst
/* 11800*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 11802*/        OPC_CheckPredicate, 1, // Predicate_store
/* 11804*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 11806*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 11809*/        OPC_EmitMergeInputChains1_0,
/* 11810*/        OPC_EmitNodeXForm, 1, 1, // EXTRACT_get_vextract256_imm
/* 11813*/        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] }))<<P:Predicate_vextract256_extract>><<X:EXTRACT_get_vextract256_imm>>:$idx, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                  // Dst: (VEXTRACTF64x4Zmr addr:{ *:[iPTR] }:$dst, VR512:{ *:[v8f64] }:$src1, (EXTRACT_get_vextract256_imm:{ *:[i8] } (extract_subvector:{ *:[v4f64] } VR512:{ *:[v8f64] }:$src1, (imm:{ *:[iPTR] })):$idx))
/* 11825*/      /*Scope*/ 40, /*->11866*/
/* 11826*/        OPC_CheckChild0Type, MVT::v8f32,
/* 11828*/        OPC_MoveChild1,
/* 11829*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 11832*/        OPC_CheckType, MVT::iPTR,
/* 11834*/        OPC_MoveParent,
/* 11835*/        OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/* 11837*/        OPC_CheckType, MVT::v4f32,
/* 11839*/        OPC_MoveParent,
/* 11840*/        OPC_RecordChild2, // #3 = $dst
/* 11841*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 11843*/        OPC_CheckPredicate, 1, // Predicate_store
/* 11845*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 11847*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 11850*/        OPC_EmitMergeInputChains1_0,
/* 11851*/        OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/* 11854*/        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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$idx, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                  // Dst: (VEXTRACTF32x4Z256mr addr:{ *:[iPTR] }:$dst, VR256X:{ *:[v8f32] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } (extract_subvector:{ *:[v4f32] } VR256X:{ *:[v8f32] }:$src1, (imm:{ *:[iPTR] })):$idx))
/* 11866*/      /*Scope*/ 40, /*->11907*/
/* 11867*/        OPC_CheckChild0Type, MVT::v16i32,
/* 11869*/        OPC_MoveChild1,
/* 11870*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 11873*/        OPC_CheckType, MVT::iPTR,
/* 11875*/        OPC_MoveParent,
/* 11876*/        OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/* 11878*/        OPC_CheckType, MVT::v4i32,
/* 11880*/        OPC_MoveParent,
/* 11881*/        OPC_RecordChild2, // #3 = $dst
/* 11882*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 11884*/        OPC_CheckPredicate, 1, // Predicate_store
/* 11886*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 11888*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 11891*/        OPC_EmitMergeInputChains1_0,
/* 11892*/        OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/* 11895*/        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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$idx, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                  // Dst: (VEXTRACTI32x4Zmr addr:{ *:[iPTR] }:$dst, VR512:{ *:[v16i32] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } (extract_subvector:{ *:[v4i32] } VR512:{ *:[v16i32] }:$src1, (imm:{ *:[iPTR] })):$idx))
/* 11907*/      /*Scope*/ 38, /*->11946*/
/* 11908*/        OPC_MoveChild1,
/* 11909*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 11912*/        OPC_CheckType, MVT::iPTR,
/* 11914*/        OPC_MoveParent,
/* 11915*/        OPC_CheckPredicate, 18, // Predicate_vextract256_extract
/* 11917*/        OPC_CheckType, MVT::v4i64,
/* 11919*/        OPC_MoveParent,
/* 11920*/        OPC_RecordChild2, // #3 = $dst
/* 11921*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 11923*/        OPC_CheckPredicate, 1, // Predicate_store
/* 11925*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 11927*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 11930*/        OPC_EmitMergeInputChains1_0,
/* 11931*/        OPC_EmitNodeXForm, 1, 1, // EXTRACT_get_vextract256_imm
/* 11934*/        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] }))<<P:Predicate_vextract256_extract>><<X:EXTRACT_get_vextract256_imm>>:$idx, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                  // Dst: (VEXTRACTI64x4Zmr addr:{ *:[iPTR] }:$dst, VR512:{ *:[v8i64] }:$src1, (EXTRACT_get_vextract256_imm:{ *:[i8] } (extract_subvector:{ *:[v4i64] } VR512:{ *:[v8i64] }:$src1, (imm:{ *:[iPTR] })):$idx))
/* 11946*/      /*Scope*/ 40, /*->11987*/
/* 11947*/        OPC_CheckChild0Type, MVT::v8i32,
/* 11949*/        OPC_MoveChild1,
/* 11950*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 11953*/        OPC_CheckType, MVT::iPTR,
/* 11955*/        OPC_MoveParent,
/* 11956*/        OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/* 11958*/        OPC_CheckType, MVT::v4i32,
/* 11960*/        OPC_MoveParent,
/* 11961*/        OPC_RecordChild2, // #3 = $dst
/* 11962*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 11964*/        OPC_CheckPredicate, 1, // Predicate_store
/* 11966*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 11968*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 11971*/        OPC_EmitMergeInputChains1_0,
/* 11972*/        OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/* 11975*/        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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$idx, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                  // Dst: (VEXTRACTI32x4Z256mr addr:{ *:[iPTR] }:$dst, VR256X:{ *:[v8i32] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } (extract_subvector:{ *:[v4i32] } VR256X:{ *:[v8i32] }:$src1, (imm:{ *:[iPTR] })):$idx))
/* 11987*/      /*Scope*/ 40, /*->12028*/
/* 11988*/        OPC_CheckChild0Type, MVT::v8f64,
/* 11990*/        OPC_MoveChild1,
/* 11991*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 11994*/        OPC_CheckType, MVT::iPTR,
/* 11996*/        OPC_MoveParent,
/* 11997*/        OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/* 11999*/        OPC_CheckType, MVT::v2f64,
/* 12001*/        OPC_MoveParent,
/* 12002*/        OPC_RecordChild2, // #3 = $dst
/* 12003*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 12005*/        OPC_CheckPredicate, 1, // Predicate_store
/* 12007*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 12009*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 12012*/        OPC_EmitMergeInputChains1_0,
/* 12013*/        OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/* 12016*/        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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                  // Dst: (VEXTRACTF32x4Zmr addr:{ *:[iPTR] }:$dst, VR512:{ *:[v8f64] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v2f64] }:$ext))
/* 12028*/      /*Scope*/ 40, /*->12069*/
/* 12029*/        OPC_CheckChild0Type, MVT::v8i64,
/* 12031*/        OPC_MoveChild1,
/* 12032*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 12035*/        OPC_CheckType, MVT::iPTR,
/* 12037*/        OPC_MoveParent,
/* 12038*/        OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/* 12040*/        OPC_CheckType, MVT::v2i64,
/* 12042*/        OPC_MoveParent,
/* 12043*/        OPC_RecordChild2, // #3 = $dst
/* 12044*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 12046*/        OPC_CheckPredicate, 1, // Predicate_store
/* 12048*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 12050*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 12053*/        OPC_EmitMergeInputChains1_0,
/* 12054*/        OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/* 12057*/        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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                  // Dst: (VEXTRACTI32x4Zmr addr:{ *:[iPTR] }:$dst, VR512:{ *:[v8i64] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v2i64] }:$ext))
/* 12069*/      /*Scope*/ 69, /*->12139*/
/* 12070*/        OPC_MoveChild1,
/* 12071*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 12074*/        OPC_CheckType, MVT::iPTR,
/* 12076*/        OPC_MoveParent,
/* 12077*/        OPC_CheckPredicate, 18, // Predicate_vextract256_extract
/* 12079*/        OPC_SwitchType /*2 cases */, 27, MVT::v8f32,// ->12109
/* 12082*/          OPC_MoveParent,
/* 12083*/          OPC_RecordChild2, // #3 = $dst
/* 12084*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 12086*/          OPC_CheckPredicate, 1, // Predicate_store
/* 12088*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 12090*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 12093*/          OPC_EmitMergeInputChains1_0,
/* 12094*/          OPC_EmitNodeXForm, 1, 1, // EXTRACT_get_vextract256_imm
/* 12097*/          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] }))<<P:Predicate_vextract256_extract>><<X:EXTRACT_get_vextract256_imm>>:$ext, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                    // Dst: (VEXTRACTF64x4Zmr addr:{ *:[iPTR] }:$dst, VR512:{ *:[v16f32] }:$src1, (EXTRACT_get_vextract256_imm:{ *:[i8] } VR256X:{ *:[v8f32] }:$ext))
/* 12109*/        /*SwitchType*/ 27, MVT::v8i32,// ->12138
/* 12111*/          OPC_MoveParent,
/* 12112*/          OPC_RecordChild2, // #3 = $dst
/* 12113*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 12115*/          OPC_CheckPredicate, 1, // Predicate_store
/* 12117*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 12119*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 12122*/          OPC_EmitMergeInputChains1_0,
/* 12123*/          OPC_EmitNodeXForm, 1, 1, // EXTRACT_get_vextract256_imm
/* 12126*/          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] }))<<P:Predicate_vextract256_extract>><<X:EXTRACT_get_vextract256_imm>>:$ext, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                    // Dst: (VEXTRACTI64x4Zmr addr:{ *:[iPTR] }:$dst, VR512:{ *:[v16i32] }:$src1, (EXTRACT_get_vextract256_imm:{ *:[i8] } VR256X:{ *:[v8i32] }:$ext))
/* 12138*/        0, // EndSwitchType
/* 12139*/      /*Scope*/ 40, /*->12180*/
/* 12140*/        OPC_CheckChild0Type, MVT::v4f64,
/* 12142*/        OPC_MoveChild1,
/* 12143*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 12146*/        OPC_CheckType, MVT::iPTR,
/* 12148*/        OPC_MoveParent,
/* 12149*/        OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/* 12151*/        OPC_CheckType, MVT::v2f64,
/* 12153*/        OPC_MoveParent,
/* 12154*/        OPC_RecordChild2, // #3 = $dst
/* 12155*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 12157*/        OPC_CheckPredicate, 1, // Predicate_store
/* 12159*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 12161*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 12164*/        OPC_EmitMergeInputChains1_0,
/* 12165*/        OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/* 12168*/        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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                  // Dst: (VEXTRACTF32x4Z256mr addr:{ *:[iPTR] }:$dst, VR256X:{ *:[v4f64] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v2f64] }:$ext))
/* 12180*/      /*Scope*/ 40, /*->12221*/
/* 12181*/        OPC_CheckChild0Type, MVT::v4i64,
/* 12183*/        OPC_MoveChild1,
/* 12184*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 12187*/        OPC_CheckType, MVT::iPTR,
/* 12189*/        OPC_MoveParent,
/* 12190*/        OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/* 12192*/        OPC_CheckType, MVT::v2i64,
/* 12194*/        OPC_MoveParent,
/* 12195*/        OPC_RecordChild2, // #3 = $dst
/* 12196*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 12198*/        OPC_CheckPredicate, 1, // Predicate_store
/* 12200*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 12202*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 12205*/        OPC_EmitMergeInputChains1_0,
/* 12206*/        OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/* 12209*/        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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                  // Dst: (VEXTRACTI32x4Z256mr addr:{ *:[iPTR] }:$dst, VR256X:{ *:[v4i64] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v2i64] }:$ext))
/* 12221*/      /*Scope*/ 40, /*->12262*/
/* 12222*/        OPC_CheckChild0Type, MVT::v16i16,
/* 12224*/        OPC_MoveChild1,
/* 12225*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 12228*/        OPC_CheckType, MVT::iPTR,
/* 12230*/        OPC_MoveParent,
/* 12231*/        OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/* 12233*/        OPC_CheckType, MVT::v8i16,
/* 12235*/        OPC_MoveParent,
/* 12236*/        OPC_RecordChild2, // #3 = $dst
/* 12237*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 12239*/        OPC_CheckPredicate, 1, // Predicate_store
/* 12241*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 12243*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 12246*/        OPC_EmitMergeInputChains1_0,
/* 12247*/        OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/* 12250*/        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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                  // Dst: (VEXTRACTI32x4Z256mr addr:{ *:[iPTR] }:$dst, VR256X:{ *:[v16i16] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v8i16] }:$ext))
/* 12262*/      /*Scope*/ 40, /*->12303*/
/* 12263*/        OPC_CheckChild0Type, MVT::v32i8,
/* 12265*/        OPC_MoveChild1,
/* 12266*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 12269*/        OPC_CheckType, MVT::iPTR,
/* 12271*/        OPC_MoveParent,
/* 12272*/        OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/* 12274*/        OPC_CheckType, MVT::v16i8,
/* 12276*/        OPC_MoveParent,
/* 12277*/        OPC_RecordChild2, // #3 = $dst
/* 12278*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 12280*/        OPC_CheckPredicate, 1, // Predicate_store
/* 12282*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 12284*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 12287*/        OPC_EmitMergeInputChains1_0,
/* 12288*/        OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/* 12291*/        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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                  // Dst: (VEXTRACTI32x4Z256mr addr:{ *:[iPTR] }:$dst, VR256X:{ *:[v32i8] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v16i8] }:$ext))
/* 12303*/      /*Scope*/ 40, /*->12344*/
/* 12304*/        OPC_CheckChild0Type, MVT::v32i16,
/* 12306*/        OPC_MoveChild1,
/* 12307*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 12310*/        OPC_CheckType, MVT::iPTR,
/* 12312*/        OPC_MoveParent,
/* 12313*/        OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/* 12315*/        OPC_CheckType, MVT::v8i16,
/* 12317*/        OPC_MoveParent,
/* 12318*/        OPC_RecordChild2, // #3 = $dst
/* 12319*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 12321*/        OPC_CheckPredicate, 1, // Predicate_store
/* 12323*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 12325*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 12328*/        OPC_EmitMergeInputChains1_0,
/* 12329*/        OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/* 12332*/        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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                  // Dst: (VEXTRACTI32x4Zmr addr:{ *:[iPTR] }:$dst, VR512:{ *:[v32i16] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v8i16] }:$ext))
/* 12344*/      /*Scope*/ 40, /*->12385*/
/* 12345*/        OPC_CheckChild0Type, MVT::v64i8,
/* 12347*/        OPC_MoveChild1,
/* 12348*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 12351*/        OPC_CheckType, MVT::iPTR,
/* 12353*/        OPC_MoveParent,
/* 12354*/        OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/* 12356*/        OPC_CheckType, MVT::v16i8,
/* 12358*/        OPC_MoveParent,
/* 12359*/        OPC_RecordChild2, // #3 = $dst
/* 12360*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 12362*/        OPC_CheckPredicate, 1, // Predicate_store
/* 12364*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 12366*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 12369*/        OPC_EmitMergeInputChains1_0,
/* 12370*/        OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/* 12373*/        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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                  // Dst: (VEXTRACTI32x4Zmr addr:{ *:[iPTR] }:$dst, VR512:{ *:[v64i8] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v16i8] }:$ext))
/* 12385*/      /*Scope*/ 69, /*->12455*/
/* 12386*/        OPC_MoveChild1,
/* 12387*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 12390*/        OPC_CheckType, MVT::iPTR,
/* 12392*/        OPC_MoveParent,
/* 12393*/        OPC_CheckPredicate, 18, // Predicate_vextract256_extract
/* 12395*/        OPC_SwitchType /*2 cases */, 27, MVT::v16i16,// ->12425
/* 12398*/          OPC_MoveParent,
/* 12399*/          OPC_RecordChild2, // #3 = $dst
/* 12400*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 12402*/          OPC_CheckPredicate, 1, // Predicate_store
/* 12404*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 12406*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 12409*/          OPC_EmitMergeInputChains1_0,
/* 12410*/          OPC_EmitNodeXForm, 1, 1, // EXTRACT_get_vextract256_imm
/* 12413*/          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] }))<<P:Predicate_vextract256_extract>><<X:EXTRACT_get_vextract256_imm>>:$ext, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                    // Dst: (VEXTRACTI64x4Zmr addr:{ *:[iPTR] }:$dst, VR512:{ *:[v32i16] }:$src1, (EXTRACT_get_vextract256_imm:{ *:[i8] } VR256X:{ *:[v16i16] }:$ext))
/* 12425*/        /*SwitchType*/ 27, MVT::v32i8,// ->12454
/* 12427*/          OPC_MoveParent,
/* 12428*/          OPC_RecordChild2, // #3 = $dst
/* 12429*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 12431*/          OPC_CheckPredicate, 1, // Predicate_store
/* 12433*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 12435*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 12438*/          OPC_EmitMergeInputChains1_0,
/* 12439*/          OPC_EmitNodeXForm, 1, 1, // EXTRACT_get_vextract256_imm
/* 12442*/          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] }))<<P:Predicate_vextract256_extract>><<X:EXTRACT_get_vextract256_imm>>:$ext, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 29
                    // Dst: (VEXTRACTI64x4Zmr addr:{ *:[iPTR] }:$dst, VR512:{ *:[v64i8] }:$src1, (EXTRACT_get_vextract256_imm:{ *:[i8] } VR256X:{ *:[v32i8] }:$ext))
/* 12454*/        0, // EndSwitchType
/* 12455*/      0, /*End of Scope*/
/* 12456*/    /*Scope*/ 104|128,3/*488*/, /*->12946*/
/* 12458*/      OPC_MoveChild1,
/* 12459*/      OPC_SwitchOpcode /*4 cases */, 31, TARGET_VAL(X86ISD::SETCC),// ->12494
/* 12463*/        OPC_RecordChild0, // #1 = $cond
/* 12464*/        OPC_MoveChild0,
/* 12465*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 12468*/        OPC_MoveParent,
/* 12469*/        OPC_RecordChild1, // #2 = physreg input EFLAGS
/* 12470*/        OPC_MoveParent,
/* 12471*/        OPC_RecordChild2, // #3 = $dst
/* 12472*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 12474*/        OPC_CheckPredicate, 1, // Predicate_store
/* 12476*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 12479*/        OPC_EmitMergeInputChains1_0,
/* 12480*/        OPC_EmitCopyToReg, 2, X86::EFLAGS,
/* 12483*/        OPC_MorphNodeTo0, TARGET_VAL(X86::SETCCm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      6/*#Ops*/, 4, 5, 6, 7, 8, 1, 
                  // Src: (st (X86setcc:{ *:[i8] } (timm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 28
                  // Dst: (SETCCm addr:{ *:[iPTR] }:$dst, (timm:{ *:[i8] }):$cond)
/* 12494*/      /*SwitchOpcode*/ 39|128,1/*167*/, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->12665
/* 12498*/        OPC_RecordChild0, // #1 = $src1
/* 12499*/        OPC_Scope, 81, /*->12582*/ // 2 children in Scope
/* 12501*/          OPC_CheckChild0Type, MVT::v4i32,
/* 12503*/          OPC_RecordChild1, // #2 = $src2
/* 12504*/          OPC_MoveChild1,
/* 12505*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 12508*/          OPC_MoveParent,
/* 12509*/          OPC_CheckType, MVT::i32,
/* 12511*/          OPC_MoveParent,
/* 12512*/          OPC_RecordChild2, // #3 = $dst
/* 12513*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 12515*/          OPC_CheckPredicate, 1, // Predicate_store
/* 12517*/          OPC_Scope, 20, /*->12539*/ // 3 children in Scope
/* 12519*/            OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX()) && (!Subtarget->hasDQI())
/* 12521*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 12524*/            OPC_EmitMergeInputChains1_0,
/* 12525*/            OPC_EmitConvertToTarget, 2,
/* 12527*/            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)
/* 12539*/          /*Scope*/ 20, /*->12560*/
/* 12540*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/* 12542*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 12545*/            OPC_EmitMergeInputChains1_0,
/* 12546*/            OPC_EmitConvertToTarget, 2,
/* 12548*/            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)
/* 12560*/          /*Scope*/ 20, /*->12581*/
/* 12561*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/* 12563*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 12566*/            OPC_EmitMergeInputChains1_0,
/* 12567*/            OPC_EmitConvertToTarget, 2,
/* 12569*/            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)
/* 12581*/          0, /*End of Scope*/
/* 12582*/        /*Scope*/ 81, /*->12664*/
/* 12583*/          OPC_CheckChild0Type, MVT::v2i64,
/* 12585*/          OPC_RecordChild1, // #2 = $src2
/* 12586*/          OPC_MoveChild1,
/* 12587*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 12590*/          OPC_MoveParent,
/* 12591*/          OPC_CheckType, MVT::i64,
/* 12593*/          OPC_MoveParent,
/* 12594*/          OPC_RecordChild2, // #3 = $dst
/* 12595*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 12597*/          OPC_CheckPredicate, 1, // Predicate_store
/* 12599*/          OPC_Scope, 20, /*->12621*/ // 3 children in Scope
/* 12601*/            OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX()) && (!Subtarget->hasDQI())
/* 12603*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 12606*/            OPC_EmitMergeInputChains1_0,
/* 12607*/            OPC_EmitConvertToTarget, 2,
/* 12609*/            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)
/* 12621*/          /*Scope*/ 20, /*->12642*/
/* 12622*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/* 12624*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 12627*/            OPC_EmitMergeInputChains1_0,
/* 12628*/            OPC_EmitConvertToTarget, 2,
/* 12630*/            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)
/* 12642*/          /*Scope*/ 20, /*->12663*/
/* 12643*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/* 12645*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 12648*/            OPC_EmitMergeInputChains1_0,
/* 12649*/            OPC_EmitConvertToTarget, 2,
/* 12651*/            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)
/* 12663*/          0, /*End of Scope*/
/* 12664*/        0, /*End of Scope*/
/* 12665*/      /*SwitchOpcode*/ 95, TARGET_VAL(X86ISD::CVTPS2PH),// ->12763
/* 12668*/        OPC_RecordChild0, // #1 = $src1
/* 12669*/        OPC_Scope, 56, /*->12727*/ // 2 children in Scope
/* 12671*/          OPC_CheckChild0Type, MVT::v8f32,
/* 12673*/          OPC_RecordChild1, // #2 = $src2
/* 12674*/          OPC_MoveChild1,
/* 12675*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 12678*/          OPC_MoveParent,
/* 12679*/          OPC_CheckType, MVT::v8i16,
/* 12681*/          OPC_MoveParent,
/* 12682*/          OPC_RecordChild2, // #3 = $dst
/* 12683*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 12685*/          OPC_CheckPredicate, 1, // Predicate_store
/* 12687*/          OPC_Scope, 18, /*->12707*/ // 2 children in Scope
/* 12689*/            OPC_CheckPatternPredicate, 11, // (Subtarget->hasF16C()) && (!Subtarget->hasVLX())
/* 12691*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 12694*/            OPC_EmitMergeInputChains1_0,
/* 12695*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VCVTPS2PHYmr), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 1, 2, 
                      // Src: (st (X86cvtps2ph:{ *:[v8i16] } VR256:{ *:[v8f32] }:$src1, (timm:{ *:[i32] }):$src2), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 28
                      // Dst: (VCVTPS2PHYmr addr:{ *:[iPTR] }:$dst, VR256:{ *:[v8f32] }:$src1, (timm:{ *:[i32] }):$src2)
/* 12707*/          /*Scope*/ 18, /*->12726*/
/* 12708*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 12710*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 12713*/            OPC_EmitMergeInputChains1_0,
/* 12714*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VCVTPS2PHZ256mr), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 1, 2, 
                      // Src: (st (X86cvtps2ph:{ *:[v8i16] } VR256X:{ *:[v8f32] }:$src1, (timm:{ *:[i32] }):$src2), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 28
                      // Dst: (VCVTPS2PHZ256mr addr:{ *:[iPTR] }:$dst, VR256X:{ *:[v8f32] }:$src1, (timm:{ *:[i32] }):$src2)
/* 12726*/          0, /*End of Scope*/
/* 12727*/        /*Scope*/ 34, /*->12762*/
/* 12728*/          OPC_CheckChild0Type, MVT::v16f32,
/* 12730*/          OPC_RecordChild1, // #2 = $src2
/* 12731*/          OPC_MoveChild1,
/* 12732*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 12735*/          OPC_MoveParent,
/* 12736*/          OPC_CheckType, MVT::v16i16,
/* 12738*/          OPC_MoveParent,
/* 12739*/          OPC_RecordChild2, // #3 = $dst
/* 12740*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 12742*/          OPC_CheckPredicate, 1, // Predicate_store
/* 12744*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 12746*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$dst #4 #5 #6 #7 #8
/* 12749*/          OPC_EmitMergeInputChains1_0,
/* 12750*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VCVTPS2PHZmr), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 1, 2, 
                    // Src: (st (X86cvtps2ph:{ *:[v16i16] } VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i32] }):$src2), addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 28
                    // Dst: (VCVTPS2PHZmr addr:{ *:[iPTR] }:$dst, VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i32] }):$src2)
/* 12762*/        0, /*End of Scope*/
/* 12763*/      /*SwitchOpcode*/ 50|128,1/*178*/, TARGET_VAL(X86ISD::Wrapper),// ->12945
/* 12767*/        OPC_RecordChild0, // #1 = $src
/* 12768*/        OPC_MoveChild0,
/* 12769*/        OPC_SwitchOpcode /*6 cases */, 26, TARGET_VAL(ISD::TargetConstantPool),// ->12799
/* 12773*/          OPC_MoveParent,
/* 12774*/          OPC_CheckType, MVT::i64,
/* 12776*/          OPC_MoveParent,
/* 12777*/          OPC_RecordChild2, // #2 = $dst
/* 12778*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 12780*/          OPC_CheckPredicate, 1, // Predicate_store
/* 12782*/          OPC_CheckPatternPredicate, 20, // (!TM.isPositionIndependent()) && (TM.getCodeModel() == CodeModel::Small ||TM.getCodeModel() == CodeModel::Kernel)
/* 12784*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 12787*/          OPC_EmitMergeInputChains1_0,
/* 12788*/          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)
/* 12799*/        /*SwitchOpcode*/ 26, TARGET_VAL(ISD::TargetJumpTable),// ->12828
/* 12802*/          OPC_MoveParent,
/* 12803*/          OPC_CheckType, MVT::i64,
/* 12805*/          OPC_MoveParent,
/* 12806*/          OPC_RecordChild2, // #2 = $dst
/* 12807*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 12809*/          OPC_CheckPredicate, 1, // Predicate_store
/* 12811*/          OPC_CheckPatternPredicate, 20, // (!TM.isPositionIndependent()) && (TM.getCodeModel() == CodeModel::Small ||TM.getCodeModel() == CodeModel::Kernel)
/* 12813*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 12816*/          OPC_EmitMergeInputChains1_0,
/* 12817*/          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)
/* 12828*/        /*SwitchOpcode*/ 26, TARGET_VAL(ISD::TargetGlobalAddress),// ->12857
/* 12831*/          OPC_MoveParent,
/* 12832*/          OPC_CheckType, MVT::i64,
/* 12834*/          OPC_MoveParent,
/* 12835*/          OPC_RecordChild2, // #2 = $dst
/* 12836*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 12838*/          OPC_CheckPredicate, 1, // Predicate_store
/* 12840*/          OPC_CheckPatternPredicate, 20, // (!TM.isPositionIndependent()) && (TM.getCodeModel() == CodeModel::Small ||TM.getCodeModel() == CodeModel::Kernel)
/* 12842*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 12845*/          OPC_EmitMergeInputChains1_0,
/* 12846*/          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)
/* 12857*/        /*SwitchOpcode*/ 26, TARGET_VAL(ISD::TargetExternalSymbol),// ->12886
/* 12860*/          OPC_MoveParent,
/* 12861*/          OPC_CheckType, MVT::i64,
/* 12863*/          OPC_MoveParent,
/* 12864*/          OPC_RecordChild2, // #2 = $dst
/* 12865*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 12867*/          OPC_CheckPredicate, 1, // Predicate_store
/* 12869*/          OPC_CheckPatternPredicate, 20, // (!TM.isPositionIndependent()) && (TM.getCodeModel() == CodeModel::Small ||TM.getCodeModel() == CodeModel::Kernel)
/* 12871*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 12874*/          OPC_EmitMergeInputChains1_0,
/* 12875*/          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)
/* 12886*/        /*SwitchOpcode*/ 26, TARGET_VAL(ISD::MCSymbol),// ->12915
/* 12889*/          OPC_MoveParent,
/* 12890*/          OPC_CheckType, MVT::i64,
/* 12892*/          OPC_MoveParent,
/* 12893*/          OPC_RecordChild2, // #2 = $dst
/* 12894*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 12896*/          OPC_CheckPredicate, 1, // Predicate_store
/* 12898*/          OPC_CheckPatternPredicate, 20, // (!TM.isPositionIndependent()) && (TM.getCodeModel() == CodeModel::Small ||TM.getCodeModel() == CodeModel::Kernel)
/* 12900*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 12903*/          OPC_EmitMergeInputChains1_0,
/* 12904*/          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)
/* 12915*/        /*SwitchOpcode*/ 26, TARGET_VAL(ISD::TargetBlockAddress),// ->12944
/* 12918*/          OPC_MoveParent,
/* 12919*/          OPC_CheckType, MVT::i64,
/* 12921*/          OPC_MoveParent,
/* 12922*/          OPC_RecordChild2, // #2 = $dst
/* 12923*/          OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 12925*/          OPC_CheckPredicate, 1, // Predicate_store
/* 12927*/          OPC_CheckPatternPredicate, 20, // (!TM.isPositionIndependent()) && (TM.getCodeModel() == CodeModel::Small ||TM.getCodeModel() == CodeModel::Kernel)
/* 12929*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 12932*/          OPC_EmitMergeInputChains1_0,
/* 12933*/          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)
/* 12944*/        0, // EndSwitchOpcode
/* 12945*/      0, // EndSwitchOpcode
/* 12946*/    /*Scope*/ 97, /*->13044*/
/* 12947*/      OPC_CheckChild1Integer, 0, 
/* 12949*/      OPC_Scope, 30, /*->12981*/ // 3 children in Scope
/* 12951*/        OPC_CheckChild1Type, MVT::i16,
/* 12953*/        OPC_RecordChild2, // #1 = $dst
/* 12954*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 12956*/        OPC_CheckPredicate, 1, // Predicate_store
/* 12958*/        OPC_CheckPredicate, 19, // Predicate_simple_store
/* 12960*/        OPC_CheckPatternPredicate, 21, // (MF->getFunction().hasMinSize())
/* 12962*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #2 #3 #4 #5 #6
/* 12965*/        OPC_EmitMergeInputChains1_0,
/* 12966*/        OPC_EmitInteger, MVT::i16, 0, 
/* 12969*/        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>><<P:Predicate_simple_store>> - Complexity = 27
                  // Dst: (AND16mi8:{ *:[i32] } addr:{ *:[iPTR] }:$dst, 0:{ *:[i16] })
/* 12981*/      /*Scope*/ 30, /*->13012*/
/* 12982*/        OPC_CheckChild1Type, MVT::i32,
/* 12984*/        OPC_RecordChild2, // #1 = $dst
/* 12985*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 12987*/        OPC_CheckPredicate, 1, // Predicate_store
/* 12989*/        OPC_CheckPredicate, 19, // Predicate_simple_store
/* 12991*/        OPC_CheckPatternPredicate, 21, // (MF->getFunction().hasMinSize())
/* 12993*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #2 #3 #4 #5 #6
/* 12996*/        OPC_EmitMergeInputChains1_0,
/* 12997*/        OPC_EmitInteger, MVT::i32, 0, 
/* 13000*/        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>><<P:Predicate_simple_store>> - Complexity = 27
                  // Dst: (AND32mi8:{ *:[i32] } addr:{ *:[iPTR] }:$dst, 0:{ *:[i32] })
/* 13012*/      /*Scope*/ 30, /*->13043*/
/* 13013*/        OPC_CheckChild1Type, MVT::i64,
/* 13015*/        OPC_RecordChild2, // #1 = $dst
/* 13016*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 13018*/        OPC_CheckPredicate, 1, // Predicate_store
/* 13020*/        OPC_CheckPredicate, 19, // Predicate_simple_store
/* 13022*/        OPC_CheckPatternPredicate, 21, // (MF->getFunction().hasMinSize())
/* 13024*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #2 #3 #4 #5 #6
/* 13027*/        OPC_EmitMergeInputChains1_0,
/* 13028*/        OPC_EmitInteger, MVT::i64, 0, 
/* 13031*/        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>><<P:Predicate_simple_store>> - Complexity = 27
                  // Dst: (AND64mi8:{ *:[i32] } addr:{ *:[iPTR] }:$dst, 0:{ *:[i64] })
/* 13043*/      0, /*End of Scope*/
/* 13044*/    /*Scope*/ 5|128,1/*133*/, /*->13179*/
/* 13046*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 13057*/      OPC_Scope, 39, /*->13098*/ // 3 children in Scope
/* 13059*/        OPC_CheckChild1Type, MVT::i16,
/* 13061*/        OPC_RecordChild2, // #1 = $dst
/* 13062*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 13064*/        OPC_CheckPredicate, 1, // Predicate_store
/* 13066*/        OPC_CheckPredicate, 19, // Predicate_simple_store
/* 13068*/        OPC_CheckPatternPredicate, 21, // (MF->getFunction().hasMinSize())
/* 13070*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #2 #3 #4 #5 #6
/* 13073*/        OPC_EmitMergeInputChains1_0,
/* 13074*/        OPC_EmitInteger, MVT::i16, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 13086*/        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>><<P:Predicate_simple_store>> - Complexity = 27
                  // Dst: (OR16mi8:{ *:[i32] } addr:{ *:[iPTR] }:$dst, -1:{ *:[i16] })
/* 13098*/      /*Scope*/ 39, /*->13138*/
/* 13099*/        OPC_CheckChild1Type, MVT::i32,
/* 13101*/        OPC_RecordChild2, // #1 = $dst
/* 13102*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 13104*/        OPC_CheckPredicate, 1, // Predicate_store
/* 13106*/        OPC_CheckPredicate, 19, // Predicate_simple_store
/* 13108*/        OPC_CheckPatternPredicate, 21, // (MF->getFunction().hasMinSize())
/* 13110*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #2 #3 #4 #5 #6
/* 13113*/        OPC_EmitMergeInputChains1_0,
/* 13114*/        OPC_EmitInteger, MVT::i32, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 13126*/        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>><<P:Predicate_simple_store>> - Complexity = 27
                  // Dst: (OR32mi8:{ *:[i32] } addr:{ *:[iPTR] }:$dst, -1:{ *:[i32] })
/* 13138*/      /*Scope*/ 39, /*->13178*/
/* 13139*/        OPC_CheckChild1Type, MVT::i64,
/* 13141*/        OPC_RecordChild2, // #1 = $dst
/* 13142*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 13144*/        OPC_CheckPredicate, 1, // Predicate_store
/* 13146*/        OPC_CheckPredicate, 19, // Predicate_simple_store
/* 13148*/        OPC_CheckPatternPredicate, 21, // (MF->getFunction().hasMinSize())
/* 13150*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #2 #3 #4 #5 #6
/* 13153*/        OPC_EmitMergeInputChains1_0,
/* 13154*/        OPC_EmitInteger, MVT::i64, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 13166*/        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>><<P:Predicate_simple_store>> - Complexity = 27
                  // Dst: (OR64mi8:{ *:[i32] } addr:{ *:[iPTR] }:$dst, -1:{ *:[i64] })
/* 13178*/      0, /*End of Scope*/
/* 13179*/    /*Scope*/ 120, /*->13300*/
/* 13180*/      OPC_RecordChild1, // #1 = $src
/* 13181*/      OPC_MoveChild1,
/* 13182*/      OPC_SwitchType /*4 cases */, 26, MVT::i8,// ->13211
/* 13185*/        OPC_CheckPredicate, 15, // Predicate_relocImm8_su
/* 13187*/        OPC_MoveParent,
/* 13188*/        OPC_RecordChild2, // #2 = $dst
/* 13189*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 13191*/        OPC_CheckPredicate, 1, // Predicate_store
/* 13193*/        OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src #3
/* 13196*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/* 13199*/        OPC_EmitMergeInputChains1_0,
/* 13200*/        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_relocImm8_su>>:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 25
                  // Dst: (MOV8mi addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i8] }:$src)
/* 13211*/      /*SwitchType*/ 26, MVT::i16,// ->13239
/* 13213*/        OPC_CheckPredicate, 15, // Predicate_relocImm16_su
/* 13215*/        OPC_MoveParent,
/* 13216*/        OPC_RecordChild2, // #2 = $dst
/* 13217*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 13219*/        OPC_CheckPredicate, 1, // Predicate_store
/* 13221*/        OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src #3
/* 13224*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/* 13227*/        OPC_EmitMergeInputChains1_0,
/* 13228*/        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_relocImm16_su>>:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 25
                  // Dst: (MOV16mi addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i16] }:$src)
/* 13239*/      /*SwitchType*/ 26, MVT::i32,// ->13267
/* 13241*/        OPC_CheckPredicate, 15, // Predicate_relocImm32_su
/* 13243*/        OPC_MoveParent,
/* 13244*/        OPC_RecordChild2, // #2 = $dst
/* 13245*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 13247*/        OPC_CheckPredicate, 1, // Predicate_store
/* 13249*/        OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src #3
/* 13252*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/* 13255*/        OPC_EmitMergeInputChains1_0,
/* 13256*/        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_relocImm32_su>>:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 25
                  // Dst: (MOV32mi addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i32] }:$src)
/* 13267*/      /*SwitchType*/ 30, MVT::i64,// ->13299
/* 13269*/        OPC_CheckPredicate, 16, // Predicate_i64relocImmSExt32
/* 13271*/        OPC_CheckPredicate, 15, // Predicate_i64relocImmSExt32_su
/* 13273*/        OPC_MoveParent,
/* 13274*/        OPC_RecordChild2, // #2 = $dst
/* 13275*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 13277*/        OPC_CheckPredicate, 1, // Predicate_store
/* 13279*/        OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/* 13281*/        OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src #3
/* 13284*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/* 13287*/        OPC_EmitMergeInputChains1_0,
/* 13288*/        OPC_MorphNodeTo0, TARGET_VAL(X86::MOV64mi32), 0|OPFL_Chain|OPFL_MemRefs,
                      6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                  // Src: (st relocImm:{ *:[i64] }<<P:Predicate_i64relocImmSExt32>><<P:Predicate_i64relocImmSExt32_su>>:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 25
                  // Dst: (MOV64mi32 addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i64] }:$src)
/* 13299*/      0, // EndSwitchType
/* 13300*/    /*Scope*/ 82, /*->13383*/
/* 13301*/      OPC_MoveChild1,
/* 13302*/      OPC_CheckOpcode, TARGET_VAL(ISD::BSWAP),
/* 13305*/      OPC_RecordChild0, // #1 = $src
/* 13306*/      OPC_SwitchType /*3 cases */, 23, MVT::i16,// ->13332
/* 13309*/        OPC_MoveParent,
/* 13310*/        OPC_RecordChild2, // #2 = $dst
/* 13311*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 13313*/        OPC_CheckPredicate, 1, // Predicate_store
/* 13315*/        OPC_CheckPatternPredicate, 22, // (Subtarget->hasMOVBE())
/* 13317*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 13320*/        OPC_EmitMergeInputChains1_0,
/* 13321*/        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)
/* 13332*/      /*SwitchType*/ 23, MVT::i32,// ->13357
/* 13334*/        OPC_MoveParent,
/* 13335*/        OPC_RecordChild2, // #2 = $dst
/* 13336*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 13338*/        OPC_CheckPredicate, 1, // Predicate_store
/* 13340*/        OPC_CheckPatternPredicate, 22, // (Subtarget->hasMOVBE())
/* 13342*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 13345*/        OPC_EmitMergeInputChains1_0,
/* 13346*/        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)
/* 13357*/      /*SwitchType*/ 23, MVT::i64,// ->13382
/* 13359*/        OPC_MoveParent,
/* 13360*/        OPC_RecordChild2, // #2 = $dst
/* 13361*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 13363*/        OPC_CheckPredicate, 1, // Predicate_store
/* 13365*/        OPC_CheckPatternPredicate, 22, // (Subtarget->hasMOVBE())
/* 13367*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 13370*/        OPC_EmitMergeInputChains1_0,
/* 13371*/        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)
/* 13382*/      0, // EndSwitchType
/* 13383*/    /*Scope*/ 58|128,20/*2618*/, /*->16003*/
/* 13385*/      OPC_RecordChild1, // #1 = $src
/* 13386*/      OPC_Scope, 82, /*->13470*/ // 32 children in Scope
/* 13388*/        OPC_CheckChild1Type, MVT::f32,
/* 13390*/        OPC_RecordChild2, // #2 = $op
/* 13391*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 13393*/        OPC_CheckPredicate, 1, // Predicate_store
/* 13395*/        OPC_Scope, 18, /*->13415*/ // 4 children in Scope
/* 13397*/          OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/* 13399*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$op #3 #4 #5 #6 #7
/* 13402*/          OPC_EmitMergeInputChains1_0,
/* 13403*/          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)
/* 13415*/        /*Scope*/ 17, /*->13433*/
/* 13416*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 13418*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 13421*/          OPC_EmitMergeInputChains1_0,
/* 13422*/          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)
/* 13433*/        /*Scope*/ 17, /*->13451*/
/* 13434*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/* 13436*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 13439*/          OPC_EmitMergeInputChains1_0,
/* 13440*/          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)
/* 13451*/        /*Scope*/ 17, /*->13469*/
/* 13452*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 13454*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 13457*/          OPC_EmitMergeInputChains1_0,
/* 13458*/          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)
/* 13469*/        0, /*End of Scope*/
/* 13470*/      /*Scope*/ 108, /*->13579*/
/* 13471*/        OPC_CheckChild1Type, MVT::f64,
/* 13473*/        OPC_RecordChild2, // #2 = $op
/* 13474*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 13476*/        OPC_Scope, 22, /*->13500*/ // 2 children in Scope
/* 13478*/          OPC_CheckPredicate, 20, // Predicate_truncstore
/* 13480*/          OPC_CheckPredicate, 21, // Predicate_truncstoref32
/* 13482*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/* 13484*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$op #3 #4 #5 #6 #7
/* 13487*/          OPC_EmitMergeInputChains1_0,
/* 13488*/          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)
/* 13500*/        /*Scope*/ 77, /*->13578*/
/* 13501*/          OPC_CheckPredicate, 1, // Predicate_store
/* 13503*/          OPC_Scope, 18, /*->13523*/ // 4 children in Scope
/* 13505*/            OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/* 13507*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$op #3 #4 #5 #6 #7
/* 13510*/            OPC_EmitMergeInputChains1_0,
/* 13511*/            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)
/* 13523*/          /*Scope*/ 17, /*->13541*/
/* 13524*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 13526*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 13529*/            OPC_EmitMergeInputChains1_0,
/* 13530*/            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)
/* 13541*/          /*Scope*/ 17, /*->13559*/
/* 13542*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 13544*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 13547*/            OPC_EmitMergeInputChains1_0,
/* 13548*/            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)
/* 13559*/          /*Scope*/ 17, /*->13577*/
/* 13560*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 13562*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 13565*/            OPC_EmitMergeInputChains1_0,
/* 13566*/            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)
/* 13577*/          0, /*End of Scope*/
/* 13578*/        0, /*End of Scope*/
/* 13579*/      /*Scope*/ 69, /*->13649*/
/* 13580*/        OPC_CheckChild1Type, MVT::f80,
/* 13582*/        OPC_RecordChild2, // #2 = $op
/* 13583*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 13585*/        OPC_Scope, 42, /*->13629*/ // 2 children in Scope
/* 13587*/          OPC_CheckPredicate, 20, // Predicate_truncstore
/* 13589*/          OPC_Scope, 18, /*->13609*/ // 2 children in Scope
/* 13591*/            OPC_CheckPredicate, 21, // Predicate_truncstoref32
/* 13593*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$op #3 #4 #5 #6 #7
/* 13596*/            OPC_EmitMergeInputChains1_0,
/* 13597*/            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)
/* 13609*/          /*Scope*/ 18, /*->13628*/
/* 13610*/            OPC_CheckPredicate, 22, // Predicate_truncstoref64
/* 13612*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$op #3 #4 #5 #6 #7
/* 13615*/            OPC_EmitMergeInputChains1_0,
/* 13616*/            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)
/* 13628*/          0, /*End of Scope*/
/* 13629*/        /*Scope*/ 18, /*->13648*/
/* 13630*/          OPC_CheckPredicate, 1, // Predicate_store
/* 13632*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$op #3 #4 #5 #6 #7
/* 13635*/          OPC_EmitMergeInputChains1_0,
/* 13636*/          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)
/* 13648*/        0, /*End of Scope*/
/* 13649*/      /*Scope*/ 22, /*->13672*/
/* 13650*/        OPC_CheckChild1Type, MVT::i8,
/* 13652*/        OPC_RecordChild2, // #2 = $dst
/* 13653*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 13655*/        OPC_CheckPredicate, 1, // Predicate_store
/* 13657*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 13660*/        OPC_EmitMergeInputChains1_0,
/* 13661*/        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)
/* 13672*/      /*Scope*/ 22, /*->13695*/
/* 13673*/        OPC_CheckChild1Type, MVT::i16,
/* 13675*/        OPC_RecordChild2, // #2 = $dst
/* 13676*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 13678*/        OPC_CheckPredicate, 1, // Predicate_store
/* 13680*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 13683*/        OPC_EmitMergeInputChains1_0,
/* 13684*/        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)
/* 13695*/      /*Scope*/ 22, /*->13718*/
/* 13696*/        OPC_CheckChild1Type, MVT::i32,
/* 13698*/        OPC_RecordChild2, // #2 = $dst
/* 13699*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 13701*/        OPC_CheckPredicate, 1, // Predicate_store
/* 13703*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 13706*/        OPC_EmitMergeInputChains1_0,
/* 13707*/        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)
/* 13718*/      /*Scope*/ 22, /*->13741*/
/* 13719*/        OPC_CheckChild1Type, MVT::i64,
/* 13721*/        OPC_RecordChild2, // #2 = $dst
/* 13722*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 13724*/        OPC_CheckPredicate, 1, // Predicate_store
/* 13726*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 13729*/        OPC_EmitMergeInputChains1_0,
/* 13730*/        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)
/* 13741*/      /*Scope*/ 123, /*->13865*/
/* 13742*/        OPC_CheckChild1Type, MVT::v4f32,
/* 13744*/        OPC_RecordChild2, // #2 = $dst
/* 13745*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 13747*/        OPC_CheckPredicate, 1, // Predicate_store
/* 13749*/        OPC_Scope, 19, /*->13770*/ // 6 children in Scope
/* 13751*/          OPC_CheckPredicate, 23, // Predicate_alignedstore
/* 13753*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 13755*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 13758*/          OPC_EmitMergeInputChains1_0,
/* 13759*/          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)
/* 13770*/        /*Scope*/ 17, /*->13788*/
/* 13771*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 13773*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 13776*/          OPC_EmitMergeInputChains1_0,
/* 13777*/          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)
/* 13788*/        /*Scope*/ 19, /*->13808*/
/* 13789*/          OPC_CheckPredicate, 23, // Predicate_alignedstore
/* 13791*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/* 13793*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 13796*/          OPC_EmitMergeInputChains1_0,
/* 13797*/          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)
/* 13808*/        /*Scope*/ 17, /*->13826*/
/* 13809*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/* 13811*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 13814*/          OPC_EmitMergeInputChains1_0,
/* 13815*/          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)
/* 13826*/        /*Scope*/ 19, /*->13846*/
/* 13827*/          OPC_CheckPredicate, 23, // Predicate_alignedstore
/* 13829*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 13831*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 13834*/          OPC_EmitMergeInputChains1_0,
/* 13835*/          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)
/* 13846*/        /*Scope*/ 17, /*->13864*/
/* 13847*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 13849*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 13852*/          OPC_EmitMergeInputChains1_0,
/* 13853*/          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)
/* 13864*/        0, /*End of Scope*/
/* 13865*/      /*Scope*/ 123, /*->13989*/
/* 13866*/        OPC_CheckChild1Type, MVT::v2f64,
/* 13868*/        OPC_RecordChild2, // #2 = $dst
/* 13869*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 13871*/        OPC_CheckPredicate, 1, // Predicate_store
/* 13873*/        OPC_Scope, 19, /*->13894*/ // 6 children in Scope
/* 13875*/          OPC_CheckPredicate, 23, // Predicate_alignedstore
/* 13877*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 13879*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 13882*/          OPC_EmitMergeInputChains1_0,
/* 13883*/          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)
/* 13894*/        /*Scope*/ 17, /*->13912*/
/* 13895*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 13897*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 13900*/          OPC_EmitMergeInputChains1_0,
/* 13901*/          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)
/* 13912*/        /*Scope*/ 19, /*->13932*/
/* 13913*/          OPC_CheckPredicate, 23, // Predicate_alignedstore
/* 13915*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 13917*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 13920*/          OPC_EmitMergeInputChains1_0,
/* 13921*/          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)
/* 13932*/        /*Scope*/ 17, /*->13950*/
/* 13933*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 13935*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 13938*/          OPC_EmitMergeInputChains1_0,
/* 13939*/          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)
/* 13950*/        /*Scope*/ 19, /*->13970*/
/* 13951*/          OPC_CheckPredicate, 23, // Predicate_alignedstore
/* 13953*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 13955*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 13958*/          OPC_EmitMergeInputChains1_0,
/* 13959*/          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)
/* 13970*/        /*Scope*/ 17, /*->13988*/
/* 13971*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 13973*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 13976*/          OPC_EmitMergeInputChains1_0,
/* 13977*/          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)
/* 13988*/        0, /*End of Scope*/
/* 13989*/      /*Scope*/ 85, /*->14075*/
/* 13990*/        OPC_CheckChild1Type, MVT::v8f32,
/* 13992*/        OPC_RecordChild2, // #2 = $dst
/* 13993*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 13995*/        OPC_CheckPredicate, 1, // Predicate_store
/* 13997*/        OPC_Scope, 19, /*->14018*/ // 4 children in Scope
/* 13999*/          OPC_CheckPredicate, 23, // Predicate_alignedstore
/* 14001*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 14003*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 14006*/          OPC_EmitMergeInputChains1_0,
/* 14007*/          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)
/* 14018*/        /*Scope*/ 17, /*->14036*/
/* 14019*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 14021*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 14024*/          OPC_EmitMergeInputChains1_0,
/* 14025*/          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)
/* 14036*/        /*Scope*/ 19, /*->14056*/
/* 14037*/          OPC_CheckPredicate, 23, // Predicate_alignedstore
/* 14039*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 14041*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 14044*/          OPC_EmitMergeInputChains1_0,
/* 14045*/          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)
/* 14056*/        /*Scope*/ 17, /*->14074*/
/* 14057*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 14059*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 14062*/          OPC_EmitMergeInputChains1_0,
/* 14063*/          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)
/* 14074*/        0, /*End of Scope*/
/* 14075*/      /*Scope*/ 85, /*->14161*/
/* 14076*/        OPC_CheckChild1Type, MVT::v4f64,
/* 14078*/        OPC_RecordChild2, // #2 = $dst
/* 14079*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 14081*/        OPC_CheckPredicate, 1, // Predicate_store
/* 14083*/        OPC_Scope, 19, /*->14104*/ // 4 children in Scope
/* 14085*/          OPC_CheckPredicate, 23, // Predicate_alignedstore
/* 14087*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 14089*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 14092*/          OPC_EmitMergeInputChains1_0,
/* 14093*/          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)
/* 14104*/        /*Scope*/ 17, /*->14122*/
/* 14105*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 14107*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 14110*/          OPC_EmitMergeInputChains1_0,
/* 14111*/          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)
/* 14122*/        /*Scope*/ 19, /*->14142*/
/* 14123*/          OPC_CheckPredicate, 23, // Predicate_alignedstore
/* 14125*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 14127*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 14130*/          OPC_EmitMergeInputChains1_0,
/* 14131*/          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)
/* 14142*/        /*Scope*/ 17, /*->14160*/
/* 14143*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 14145*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 14148*/          OPC_EmitMergeInputChains1_0,
/* 14149*/          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)
/* 14160*/        0, /*End of Scope*/
/* 14161*/      /*Scope*/ 25|128,1/*153*/, /*->14316*/
/* 14163*/        OPC_CheckChild1Type, MVT::v4i64,
/* 14165*/        OPC_RecordChild2, // #2 = $dst
/* 14166*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 14168*/        OPC_Scope, 80, /*->14250*/ // 2 children in Scope
/* 14170*/          OPC_CheckPredicate, 1, // Predicate_store
/* 14172*/          OPC_Scope, 19, /*->14193*/ // 4 children in Scope
/* 14174*/            OPC_CheckPredicate, 23, // Predicate_alignedstore
/* 14176*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 14178*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 14181*/            OPC_EmitMergeInputChains1_0,
/* 14182*/            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)
/* 14193*/          /*Scope*/ 17, /*->14211*/
/* 14194*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 14196*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 14199*/            OPC_EmitMergeInputChains1_0,
/* 14200*/            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)
/* 14211*/          /*Scope*/ 19, /*->14231*/
/* 14212*/            OPC_CheckPredicate, 23, // Predicate_alignedstore
/* 14214*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 14216*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 14219*/            OPC_EmitMergeInputChains1_0,
/* 14220*/            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)
/* 14231*/          /*Scope*/ 17, /*->14249*/
/* 14232*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 14234*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 14237*/            OPC_EmitMergeInputChains1_0,
/* 14238*/            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)
/* 14249*/          0, /*End of Scope*/
/* 14250*/        /*Scope*/ 64, /*->14315*/
/* 14251*/          OPC_CheckPredicate, 20, // Predicate_truncstore
/* 14253*/          OPC_Scope, 19, /*->14274*/ // 3 children in Scope
/* 14255*/            OPC_CheckPredicate, 24, // Predicate_truncstorevi8
/* 14257*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 14259*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 14262*/            OPC_EmitMergeInputChains1_0,
/* 14263*/            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)
/* 14274*/          /*Scope*/ 19, /*->14294*/
/* 14275*/            OPC_CheckPredicate, 25, // Predicate_truncstorevi16
/* 14277*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 14279*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 14282*/            OPC_EmitMergeInputChains1_0,
/* 14283*/            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)
/* 14294*/          /*Scope*/ 19, /*->14314*/
/* 14295*/            OPC_CheckPredicate, 26, // Predicate_truncstorevi32
/* 14297*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 14299*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 14302*/            OPC_EmitMergeInputChains1_0,
/* 14303*/            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)
/* 14314*/          0, /*End of Scope*/
/* 14315*/        0, /*End of Scope*/
/* 14316*/      /*Scope*/ 5|128,1/*133*/, /*->14451*/
/* 14318*/        OPC_CheckChild1Type, MVT::v8i32,
/* 14320*/        OPC_RecordChild2, // #2 = $dst
/* 14321*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 14323*/        OPC_Scope, 80, /*->14405*/ // 2 children in Scope
/* 14325*/          OPC_CheckPredicate, 1, // Predicate_store
/* 14327*/          OPC_Scope, 19, /*->14348*/ // 4 children in Scope
/* 14329*/            OPC_CheckPredicate, 23, // Predicate_alignedstore
/* 14331*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 14333*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 14336*/            OPC_EmitMergeInputChains1_0,
/* 14337*/            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)
/* 14348*/          /*Scope*/ 17, /*->14366*/
/* 14349*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 14351*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 14354*/            OPC_EmitMergeInputChains1_0,
/* 14355*/            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)
/* 14366*/          /*Scope*/ 19, /*->14386*/
/* 14367*/            OPC_CheckPredicate, 23, // Predicate_alignedstore
/* 14369*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 14371*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 14374*/            OPC_EmitMergeInputChains1_0,
/* 14375*/            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)
/* 14386*/          /*Scope*/ 17, /*->14404*/
/* 14387*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 14389*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 14392*/            OPC_EmitMergeInputChains1_0,
/* 14393*/            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)
/* 14404*/          0, /*End of Scope*/
/* 14405*/        /*Scope*/ 44, /*->14450*/
/* 14406*/          OPC_CheckPredicate, 20, // Predicate_truncstore
/* 14408*/          OPC_Scope, 19, /*->14429*/ // 2 children in Scope
/* 14410*/            OPC_CheckPredicate, 24, // Predicate_truncstorevi8
/* 14412*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 14414*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 14417*/            OPC_EmitMergeInputChains1_0,
/* 14418*/            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)
/* 14429*/          /*Scope*/ 19, /*->14449*/
/* 14430*/            OPC_CheckPredicate, 25, // Predicate_truncstorevi16
/* 14432*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 14434*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 14437*/            OPC_EmitMergeInputChains1_0,
/* 14438*/            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)
/* 14449*/          0, /*End of Scope*/
/* 14450*/        0, /*End of Scope*/
/* 14451*/      /*Scope*/ 110, /*->14562*/
/* 14452*/        OPC_CheckChild1Type, MVT::v16i16,
/* 14454*/        OPC_RecordChild2, // #2 = $dst
/* 14455*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 14457*/        OPC_Scope, 80, /*->14539*/ // 2 children in Scope
/* 14459*/          OPC_CheckPredicate, 1, // Predicate_store
/* 14461*/          OPC_Scope, 19, /*->14482*/ // 4 children in Scope
/* 14463*/            OPC_CheckPredicate, 23, // Predicate_alignedstore
/* 14465*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 14467*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 14470*/            OPC_EmitMergeInputChains1_0,
/* 14471*/            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)
/* 14482*/          /*Scope*/ 17, /*->14500*/
/* 14483*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 14485*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 14488*/            OPC_EmitMergeInputChains1_0,
/* 14489*/            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)
/* 14500*/          /*Scope*/ 19, /*->14520*/
/* 14501*/            OPC_CheckPredicate, 23, // Predicate_alignedstore
/* 14503*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 14505*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 14508*/            OPC_EmitMergeInputChains1_0,
/* 14509*/            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)
/* 14520*/          /*Scope*/ 17, /*->14538*/
/* 14521*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 14523*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 14526*/            OPC_EmitMergeInputChains1_0,
/* 14527*/            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)
/* 14538*/          0, /*End of Scope*/
/* 14539*/        /*Scope*/ 21, /*->14561*/
/* 14540*/          OPC_CheckPredicate, 20, // Predicate_truncstore
/* 14542*/          OPC_CheckPredicate, 24, // Predicate_truncstorevi8
/* 14544*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 14546*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 14549*/          OPC_EmitMergeInputChains1_0,
/* 14550*/          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)
/* 14561*/        0, /*End of Scope*/
/* 14562*/      /*Scope*/ 85, /*->14648*/
/* 14563*/        OPC_CheckChild1Type, MVT::v32i8,
/* 14565*/        OPC_RecordChild2, // #2 = $dst
/* 14566*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 14568*/        OPC_CheckPredicate, 1, // Predicate_store
/* 14570*/        OPC_Scope, 19, /*->14591*/ // 4 children in Scope
/* 14572*/          OPC_CheckPredicate, 23, // Predicate_alignedstore
/* 14574*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 14576*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 14579*/          OPC_EmitMergeInputChains1_0,
/* 14580*/          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)
/* 14591*/        /*Scope*/ 17, /*->14609*/
/* 14592*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 14594*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 14597*/          OPC_EmitMergeInputChains1_0,
/* 14598*/          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)
/* 14609*/        /*Scope*/ 19, /*->14629*/
/* 14610*/          OPC_CheckPredicate, 23, // Predicate_alignedstore
/* 14612*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 14614*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 14617*/          OPC_EmitMergeInputChains1_0,
/* 14618*/          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)
/* 14629*/        /*Scope*/ 17, /*->14647*/
/* 14630*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 14632*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 14635*/          OPC_EmitMergeInputChains1_0,
/* 14636*/          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)
/* 14647*/        0, /*End of Scope*/
/* 14648*/      /*Scope*/ 63|128,1/*191*/, /*->14841*/
/* 14650*/        OPC_CheckChild1Type, MVT::v2i64,
/* 14652*/        OPC_RecordChild2, // #2 = $dst
/* 14653*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 14655*/        OPC_Scope, 118, /*->14775*/ // 2 children in Scope
/* 14657*/          OPC_CheckPredicate, 1, // Predicate_store
/* 14659*/          OPC_Scope, 19, /*->14680*/ // 6 children in Scope
/* 14661*/            OPC_CheckPredicate, 23, // Predicate_alignedstore
/* 14663*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/* 14665*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 14668*/            OPC_EmitMergeInputChains1_0,
/* 14669*/            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)
/* 14680*/          /*Scope*/ 17, /*->14698*/
/* 14681*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/* 14683*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 14686*/            OPC_EmitMergeInputChains1_0,
/* 14687*/            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)
/* 14698*/          /*Scope*/ 19, /*->14718*/
/* 14699*/            OPC_CheckPredicate, 23, // Predicate_alignedstore
/* 14701*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 14703*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 14706*/            OPC_EmitMergeInputChains1_0,
/* 14707*/            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)
/* 14718*/          /*Scope*/ 17, /*->14736*/
/* 14719*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 14721*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 14724*/            OPC_EmitMergeInputChains1_0,
/* 14725*/            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)
/* 14736*/          /*Scope*/ 19, /*->14756*/
/* 14737*/            OPC_CheckPredicate, 23, // Predicate_alignedstore
/* 14739*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 14741*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 14744*/            OPC_EmitMergeInputChains1_0,
/* 14745*/            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)
/* 14756*/          /*Scope*/ 17, /*->14774*/
/* 14757*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 14759*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 14762*/            OPC_EmitMergeInputChains1_0,
/* 14763*/            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)
/* 14774*/          0, /*End of Scope*/
/* 14775*/        /*Scope*/ 64, /*->14840*/
/* 14776*/          OPC_CheckPredicate, 20, // Predicate_truncstore
/* 14778*/          OPC_Scope, 19, /*->14799*/ // 3 children in Scope
/* 14780*/            OPC_CheckPredicate, 24, // Predicate_truncstorevi8
/* 14782*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 14784*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 14787*/            OPC_EmitMergeInputChains1_0,
/* 14788*/            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)
/* 14799*/          /*Scope*/ 19, /*->14819*/
/* 14800*/            OPC_CheckPredicate, 25, // Predicate_truncstorevi16
/* 14802*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 14804*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 14807*/            OPC_EmitMergeInputChains1_0,
/* 14808*/            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)
/* 14819*/          /*Scope*/ 19, /*->14839*/
/* 14820*/            OPC_CheckPredicate, 26, // Predicate_truncstorevi32
/* 14822*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 14824*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 14827*/            OPC_EmitMergeInputChains1_0,
/* 14828*/            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)
/* 14839*/          0, /*End of Scope*/
/* 14840*/        0, /*End of Scope*/
/* 14841*/      /*Scope*/ 43|128,1/*171*/, /*->15014*/
/* 14843*/        OPC_CheckChild1Type, MVT::v4i32,
/* 14845*/        OPC_RecordChild2, // #2 = $dst
/* 14846*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 14848*/        OPC_Scope, 118, /*->14968*/ // 2 children in Scope
/* 14850*/          OPC_CheckPredicate, 1, // Predicate_store
/* 14852*/          OPC_Scope, 19, /*->14873*/ // 6 children in Scope
/* 14854*/            OPC_CheckPredicate, 23, // Predicate_alignedstore
/* 14856*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/* 14858*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 14861*/            OPC_EmitMergeInputChains1_0,
/* 14862*/            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)
/* 14873*/          /*Scope*/ 17, /*->14891*/
/* 14874*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/* 14876*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 14879*/            OPC_EmitMergeInputChains1_0,
/* 14880*/            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)
/* 14891*/          /*Scope*/ 19, /*->14911*/
/* 14892*/            OPC_CheckPredicate, 23, // Predicate_alignedstore
/* 14894*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 14896*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 14899*/            OPC_EmitMergeInputChains1_0,
/* 14900*/            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)
/* 14911*/          /*Scope*/ 17, /*->14929*/
/* 14912*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 14914*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 14917*/            OPC_EmitMergeInputChains1_0,
/* 14918*/            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)
/* 14929*/          /*Scope*/ 19, /*->14949*/
/* 14930*/            OPC_CheckPredicate, 23, // Predicate_alignedstore
/* 14932*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 14934*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 14937*/            OPC_EmitMergeInputChains1_0,
/* 14938*/            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)
/* 14949*/          /*Scope*/ 17, /*->14967*/
/* 14950*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 14952*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 14955*/            OPC_EmitMergeInputChains1_0,
/* 14956*/            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)
/* 14967*/          0, /*End of Scope*/
/* 14968*/        /*Scope*/ 44, /*->15013*/
/* 14969*/          OPC_CheckPredicate, 20, // Predicate_truncstore
/* 14971*/          OPC_Scope, 19, /*->14992*/ // 2 children in Scope
/* 14973*/            OPC_CheckPredicate, 24, // Predicate_truncstorevi8
/* 14975*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 14977*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 14980*/            OPC_EmitMergeInputChains1_0,
/* 14981*/            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)
/* 14992*/          /*Scope*/ 19, /*->15012*/
/* 14993*/            OPC_CheckPredicate, 25, // Predicate_truncstorevi16
/* 14995*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 14997*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15000*/            OPC_EmitMergeInputChains1_0,
/* 15001*/            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)
/* 15012*/          0, /*End of Scope*/
/* 15013*/        0, /*End of Scope*/
/* 15014*/      /*Scope*/ 20|128,1/*148*/, /*->15164*/
/* 15016*/        OPC_CheckChild1Type, MVT::v8i16,
/* 15018*/        OPC_RecordChild2, // #2 = $dst
/* 15019*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 15021*/        OPC_Scope, 118, /*->15141*/ // 2 children in Scope
/* 15023*/          OPC_CheckPredicate, 1, // Predicate_store
/* 15025*/          OPC_Scope, 19, /*->15046*/ // 6 children in Scope
/* 15027*/            OPC_CheckPredicate, 23, // Predicate_alignedstore
/* 15029*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/* 15031*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15034*/            OPC_EmitMergeInputChains1_0,
/* 15035*/            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)
/* 15046*/          /*Scope*/ 17, /*->15064*/
/* 15047*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/* 15049*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15052*/            OPC_EmitMergeInputChains1_0,
/* 15053*/            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)
/* 15064*/          /*Scope*/ 19, /*->15084*/
/* 15065*/            OPC_CheckPredicate, 23, // Predicate_alignedstore
/* 15067*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 15069*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15072*/            OPC_EmitMergeInputChains1_0,
/* 15073*/            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)
/* 15084*/          /*Scope*/ 17, /*->15102*/
/* 15085*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 15087*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15090*/            OPC_EmitMergeInputChains1_0,
/* 15091*/            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)
/* 15102*/          /*Scope*/ 19, /*->15122*/
/* 15103*/            OPC_CheckPredicate, 23, // Predicate_alignedstore
/* 15105*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 15107*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15110*/            OPC_EmitMergeInputChains1_0,
/* 15111*/            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)
/* 15122*/          /*Scope*/ 17, /*->15140*/
/* 15123*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 15125*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15128*/            OPC_EmitMergeInputChains1_0,
/* 15129*/            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)
/* 15140*/          0, /*End of Scope*/
/* 15141*/        /*Scope*/ 21, /*->15163*/
/* 15142*/          OPC_CheckPredicate, 20, // Predicate_truncstore
/* 15144*/          OPC_CheckPredicate, 24, // Predicate_truncstorevi8
/* 15146*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 15148*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15151*/          OPC_EmitMergeInputChains1_0,
/* 15152*/          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)
/* 15163*/        0, /*End of Scope*/
/* 15164*/      /*Scope*/ 123, /*->15288*/
/* 15165*/        OPC_CheckChild1Type, MVT::v16i8,
/* 15167*/        OPC_RecordChild2, // #2 = $dst
/* 15168*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 15170*/        OPC_CheckPredicate, 1, // Predicate_store
/* 15172*/        OPC_Scope, 19, /*->15193*/ // 6 children in Scope
/* 15174*/          OPC_CheckPredicate, 23, // Predicate_alignedstore
/* 15176*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/* 15178*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15181*/          OPC_EmitMergeInputChains1_0,
/* 15182*/          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)
/* 15193*/        /*Scope*/ 17, /*->15211*/
/* 15194*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/* 15196*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15199*/          OPC_EmitMergeInputChains1_0,
/* 15200*/          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)
/* 15211*/        /*Scope*/ 19, /*->15231*/
/* 15212*/          OPC_CheckPredicate, 23, // Predicate_alignedstore
/* 15214*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 15216*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15219*/          OPC_EmitMergeInputChains1_0,
/* 15220*/          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)
/* 15231*/        /*Scope*/ 17, /*->15249*/
/* 15232*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 15234*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15237*/          OPC_EmitMergeInputChains1_0,
/* 15238*/          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)
/* 15249*/        /*Scope*/ 19, /*->15269*/
/* 15250*/          OPC_CheckPredicate, 23, // Predicate_alignedstore
/* 15252*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 15254*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15257*/          OPC_EmitMergeInputChains1_0,
/* 15258*/          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)
/* 15269*/        /*Scope*/ 17, /*->15287*/
/* 15270*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 15272*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15275*/          OPC_EmitMergeInputChains1_0,
/* 15276*/          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)
/* 15287*/        0, /*End of Scope*/
/* 15288*/      /*Scope*/ 24, /*->15313*/
/* 15289*/        OPC_CheckChild1Type, MVT::v8i1,
/* 15291*/        OPC_RecordChild2, // #2 = $dst
/* 15292*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 15294*/        OPC_CheckPredicate, 1, // Predicate_store
/* 15296*/        OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/* 15298*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15301*/        OPC_EmitMergeInputChains1_0,
/* 15302*/        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)
/* 15313*/      /*Scope*/ 24, /*->15338*/
/* 15314*/        OPC_CheckChild1Type, MVT::v16i1,
/* 15316*/        OPC_RecordChild2, // #2 = $dst
/* 15317*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 15319*/        OPC_CheckPredicate, 1, // Predicate_store
/* 15321*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 15323*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15326*/        OPC_EmitMergeInputChains1_0,
/* 15327*/        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)
/* 15338*/      /*Scope*/ 24, /*->15363*/
/* 15339*/        OPC_CheckChild1Type, MVT::v32i1,
/* 15341*/        OPC_RecordChild2, // #2 = $dst
/* 15342*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 15344*/        OPC_CheckPredicate, 1, // Predicate_store
/* 15346*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/* 15348*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15351*/        OPC_EmitMergeInputChains1_0,
/* 15352*/        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)
/* 15363*/      /*Scope*/ 24, /*->15388*/
/* 15364*/        OPC_CheckChild1Type, MVT::v64i1,
/* 15366*/        OPC_RecordChild2, // #2 = $dst
/* 15367*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 15369*/        OPC_CheckPredicate, 1, // Predicate_store
/* 15371*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/* 15373*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15376*/        OPC_EmitMergeInputChains1_0,
/* 15377*/        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)
/* 15388*/      /*Scope*/ 47, /*->15436*/
/* 15389*/        OPC_CheckChild1Type, MVT::v16f32,
/* 15391*/        OPC_RecordChild2, // #2 = $dst
/* 15392*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 15394*/        OPC_CheckPredicate, 1, // Predicate_store
/* 15396*/        OPC_Scope, 19, /*->15417*/ // 2 children in Scope
/* 15398*/          OPC_CheckPredicate, 23, // Predicate_alignedstore
/* 15400*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 15402*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15405*/          OPC_EmitMergeInputChains1_0,
/* 15406*/          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)
/* 15417*/        /*Scope*/ 17, /*->15435*/
/* 15418*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 15420*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15423*/          OPC_EmitMergeInputChains1_0,
/* 15424*/          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)
/* 15435*/        0, /*End of Scope*/
/* 15436*/      /*Scope*/ 47, /*->15484*/
/* 15437*/        OPC_CheckChild1Type, MVT::v8f64,
/* 15439*/        OPC_RecordChild2, // #2 = $dst
/* 15440*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 15442*/        OPC_CheckPredicate, 1, // Predicate_store
/* 15444*/        OPC_Scope, 19, /*->15465*/ // 2 children in Scope
/* 15446*/          OPC_CheckPredicate, 23, // Predicate_alignedstore
/* 15448*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 15450*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15453*/          OPC_EmitMergeInputChains1_0,
/* 15454*/          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)
/* 15465*/        /*Scope*/ 17, /*->15483*/
/* 15466*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 15468*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15471*/          OPC_EmitMergeInputChains1_0,
/* 15472*/          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)
/* 15483*/        0, /*End of Scope*/
/* 15484*/      /*Scope*/ 115, /*->15600*/
/* 15485*/        OPC_CheckChild1Type, MVT::v8i64,
/* 15487*/        OPC_RecordChild2, // #2 = $dst
/* 15488*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 15490*/        OPC_Scope, 42, /*->15534*/ // 2 children in Scope
/* 15492*/          OPC_CheckPredicate, 1, // Predicate_store
/* 15494*/          OPC_Scope, 19, /*->15515*/ // 2 children in Scope
/* 15496*/            OPC_CheckPredicate, 23, // Predicate_alignedstore
/* 15498*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 15500*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15503*/            OPC_EmitMergeInputChains1_0,
/* 15504*/            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)
/* 15515*/          /*Scope*/ 17, /*->15533*/
/* 15516*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 15518*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15521*/            OPC_EmitMergeInputChains1_0,
/* 15522*/            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)
/* 15533*/          0, /*End of Scope*/
/* 15534*/        /*Scope*/ 64, /*->15599*/
/* 15535*/          OPC_CheckPredicate, 20, // Predicate_truncstore
/* 15537*/          OPC_Scope, 19, /*->15558*/ // 3 children in Scope
/* 15539*/            OPC_CheckPredicate, 24, // Predicate_truncstorevi8
/* 15541*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 15543*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15546*/            OPC_EmitMergeInputChains1_0,
/* 15547*/            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)
/* 15558*/          /*Scope*/ 19, /*->15578*/
/* 15559*/            OPC_CheckPredicate, 25, // Predicate_truncstorevi16
/* 15561*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 15563*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15566*/            OPC_EmitMergeInputChains1_0,
/* 15567*/            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)
/* 15578*/          /*Scope*/ 19, /*->15598*/
/* 15579*/            OPC_CheckPredicate, 26, // Predicate_truncstorevi32
/* 15581*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 15583*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15586*/            OPC_EmitMergeInputChains1_0,
/* 15587*/            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)
/* 15598*/          0, /*End of Scope*/
/* 15599*/        0, /*End of Scope*/
/* 15600*/      /*Scope*/ 95, /*->15696*/
/* 15601*/        OPC_CheckChild1Type, MVT::v16i32,
/* 15603*/        OPC_RecordChild2, // #2 = $dst
/* 15604*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 15606*/        OPC_Scope, 42, /*->15650*/ // 2 children in Scope
/* 15608*/          OPC_CheckPredicate, 1, // Predicate_store
/* 15610*/          OPC_Scope, 19, /*->15631*/ // 2 children in Scope
/* 15612*/            OPC_CheckPredicate, 23, // Predicate_alignedstore
/* 15614*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 15616*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15619*/            OPC_EmitMergeInputChains1_0,
/* 15620*/            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)
/* 15631*/          /*Scope*/ 17, /*->15649*/
/* 15632*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 15634*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15637*/            OPC_EmitMergeInputChains1_0,
/* 15638*/            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)
/* 15649*/          0, /*End of Scope*/
/* 15650*/        /*Scope*/ 44, /*->15695*/
/* 15651*/          OPC_CheckPredicate, 20, // Predicate_truncstore
/* 15653*/          OPC_Scope, 19, /*->15674*/ // 2 children in Scope
/* 15655*/            OPC_CheckPredicate, 24, // Predicate_truncstorevi8
/* 15657*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 15659*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15662*/            OPC_EmitMergeInputChains1_0,
/* 15663*/            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)
/* 15674*/          /*Scope*/ 19, /*->15694*/
/* 15675*/            OPC_CheckPredicate, 25, // Predicate_truncstorevi16
/* 15677*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 15679*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15682*/            OPC_EmitMergeInputChains1_0,
/* 15683*/            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)
/* 15694*/          0, /*End of Scope*/
/* 15695*/        0, /*End of Scope*/
/* 15696*/      /*Scope*/ 72, /*->15769*/
/* 15697*/        OPC_CheckChild1Type, MVT::v32i16,
/* 15699*/        OPC_RecordChild2, // #2 = $dst
/* 15700*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 15702*/        OPC_Scope, 42, /*->15746*/ // 2 children in Scope
/* 15704*/          OPC_CheckPredicate, 1, // Predicate_store
/* 15706*/          OPC_Scope, 19, /*->15727*/ // 2 children in Scope
/* 15708*/            OPC_CheckPredicate, 23, // Predicate_alignedstore
/* 15710*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 15712*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15715*/            OPC_EmitMergeInputChains1_0,
/* 15716*/            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)
/* 15727*/          /*Scope*/ 17, /*->15745*/
/* 15728*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 15730*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15733*/            OPC_EmitMergeInputChains1_0,
/* 15734*/            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)
/* 15745*/          0, /*End of Scope*/
/* 15746*/        /*Scope*/ 21, /*->15768*/
/* 15747*/          OPC_CheckPredicate, 20, // Predicate_truncstore
/* 15749*/          OPC_CheckPredicate, 24, // Predicate_truncstorevi8
/* 15751*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/* 15753*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15756*/          OPC_EmitMergeInputChains1_0,
/* 15757*/          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)
/* 15768*/        0, /*End of Scope*/
/* 15769*/      /*Scope*/ 47, /*->15817*/
/* 15770*/        OPC_CheckChild1Type, MVT::v64i8,
/* 15772*/        OPC_RecordChild2, // #2 = $dst
/* 15773*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 15775*/        OPC_CheckPredicate, 1, // Predicate_store
/* 15777*/        OPC_Scope, 19, /*->15798*/ // 2 children in Scope
/* 15779*/          OPC_CheckPredicate, 23, // Predicate_alignedstore
/* 15781*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 15783*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15786*/          OPC_EmitMergeInputChains1_0,
/* 15787*/          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)
/* 15798*/        /*Scope*/ 17, /*->15816*/
/* 15799*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 15801*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15804*/          OPC_EmitMergeInputChains1_0,
/* 15805*/          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)
/* 15816*/        0, /*End of Scope*/
/* 15817*/      /*Scope*/ 24, /*->15842*/
/* 15818*/        OPC_CheckChild1Type, MVT::x86mmx,
/* 15820*/        OPC_RecordChild2, // #2 = $dst
/* 15821*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 15823*/        OPC_CheckPredicate, 1, // Predicate_store
/* 15825*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 15827*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15830*/        OPC_EmitMergeInputChains1_0,
/* 15831*/        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)
/* 15842*/      /*Scope*/ 123, /*->15966*/
/* 15843*/        OPC_CheckChild1Type, MVT::f128,
/* 15845*/        OPC_RecordChild2, // #2 = $dst
/* 15846*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 15848*/        OPC_CheckPredicate, 1, // Predicate_store
/* 15850*/        OPC_Scope, 19, /*->15871*/ // 6 children in Scope
/* 15852*/          OPC_CheckPredicate, 23, // Predicate_alignedstore
/* 15854*/          OPC_CheckPatternPredicate, 27, // (!Subtarget->hasAVX())
/* 15856*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15859*/          OPC_EmitMergeInputChains1_0,
/* 15860*/          OPC_MorphNodeTo0, TARGET_VAL(X86::MOVAPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st VR128:{ *:[f128] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore>> - Complexity = 22
                    // Dst: (MOVAPSmr addr:{ *:[iPTR] }:$dst, VR128:{ *:[f128] }:$src)
/* 15871*/        /*Scope*/ 17, /*->15889*/
/* 15872*/          OPC_CheckPatternPredicate, 27, // (!Subtarget->hasAVX())
/* 15874*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15877*/          OPC_EmitMergeInputChains1_0,
/* 15878*/          OPC_MorphNodeTo0, TARGET_VAL(X86::MOVUPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st VR128:{ *:[f128] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 22
                    // Dst: (MOVUPSmr addr:{ *:[iPTR] }:$dst, VR128:{ *:[f128] }:$src)
/* 15889*/        /*Scope*/ 19, /*->15909*/
/* 15890*/          OPC_CheckPredicate, 23, // Predicate_alignedstore
/* 15892*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 15894*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15897*/          OPC_EmitMergeInputChains1_0,
/* 15898*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVAPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st VR128:{ *:[f128] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore>> - Complexity = 22
                    // Dst: (VMOVAPSmr addr:{ *:[iPTR] }:$dst, VR128:{ *:[f128] }:$src)
/* 15909*/        /*Scope*/ 17, /*->15927*/
/* 15910*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 15912*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15915*/          OPC_EmitMergeInputChains1_0,
/* 15916*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVUPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st VR128:{ *:[f128] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 22
                    // Dst: (VMOVUPSmr addr:{ *:[iPTR] }:$dst, VR128:{ *:[f128] }:$src)
/* 15927*/        /*Scope*/ 19, /*->15947*/
/* 15928*/          OPC_CheckPredicate, 23, // Predicate_alignedstore
/* 15930*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 15932*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15935*/          OPC_EmitMergeInputChains1_0,
/* 15936*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVAPSZ128mr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st VR128X:{ *:[f128] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>><<P:Predicate_alignedstore>> - Complexity = 22
                    // Dst: (VMOVAPSZ128mr addr:{ *:[iPTR] }:$dst, VR128X:{ *:[f128] }:$src)
/* 15947*/        /*Scope*/ 17, /*->15965*/
/* 15948*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 15950*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15953*/          OPC_EmitMergeInputChains1_0,
/* 15954*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVUPSZ128mr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (st VR128X:{ *:[f128] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 22
                    // Dst: (VMOVUPSZ128mr addr:{ *:[iPTR] }:$dst, VR128X:{ *:[f128] }:$src)
/* 15965*/        0, /*End of Scope*/
/* 15966*/      /*Scope*/ 35, /*->16002*/
/* 15967*/        OPC_CheckChild1Type, MVT::v1i1,
/* 15969*/        OPC_RecordChild2, // #2 = $dst
/* 15970*/        OPC_CheckPredicate, 0, // Predicate_unindexedstore
/* 15972*/        OPC_CheckPredicate, 1, // Predicate_store
/* 15974*/        OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/* 15976*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 15979*/        OPC_EmitMergeInputChains1_0,
/* 15980*/        OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 15983*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v8i1, 2/*#Ops*/, 1, 8,  // Results = #9
/* 15991*/        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] }))
/* 16002*/      0, /*End of Scope*/
/* 16003*/    0, /*End of Scope*/
/* 16004*/  /*SwitchOpcode*/ 37|128,20/*2597*/, TARGET_VAL(ISD::MSTORE),// ->18605
/* 16008*/    OPC_RecordMemRef,
/* 16009*/    OPC_RecordNode, // #0 = 'masked_st' chained node
/* 16010*/    OPC_Scope, 29|128,3/*413*/, /*->16426*/ // 2 children in Scope
/* 16013*/      OPC_MoveChild1,
/* 16014*/      OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/* 16017*/      OPC_MoveChild0,
/* 16018*/      OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/* 16021*/      OPC_MoveParent,
/* 16022*/      OPC_RecordChild1, // #1 = $src
/* 16023*/      OPC_SwitchType /*2 cases */, 50|128,1/*178*/, MVT::v8f64,// ->16205
/* 16027*/        OPC_CheckChild1Type, MVT::v2f64,
/* 16029*/        OPC_CheckChild2Integer, 0, 
/* 16031*/        OPC_CheckChild2Type, MVT::iPTR,
/* 16033*/        OPC_MoveParent,
/* 16034*/        OPC_RecordChild2, // #2 = $dst
/* 16035*/        OPC_MoveChild3,
/* 16036*/        OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/* 16039*/        OPC_MoveParent,
/* 16040*/        OPC_MoveChild4,
/* 16041*/        OPC_SwitchOpcode /*2 cases */, 96, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),// ->16141
/* 16045*/          OPC_MoveChild0,
/* 16046*/          OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/* 16049*/          OPC_MoveChild0,
/* 16050*/          OPC_CheckImmAllZerosV,
/* 16051*/          OPC_MoveParent,
/* 16052*/          OPC_MoveChild1,
/* 16053*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 16056*/          OPC_MoveChild0,
/* 16057*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 16060*/          OPC_MoveChild0,
/* 16061*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 16064*/          OPC_RecordChild0, // #3 = $mask
/* 16065*/          OPC_CheckChild1Integer, 1, 
/* 16067*/          OPC_CheckType, MVT::i8,
/* 16069*/          OPC_MoveParent,
/* 16070*/          OPC_CheckType, MVT::v8i1,
/* 16072*/          OPC_MoveParent,
/* 16073*/          OPC_CheckChild1Integer, 0, 
/* 16075*/          OPC_CheckChild1Type, MVT::iPTR,
/* 16077*/          OPC_CheckType, MVT::v2i1,
/* 16079*/          OPC_MoveParent,
/* 16080*/          OPC_CheckChild2Integer, 0, 
/* 16082*/          OPC_CheckChild2Type, MVT::iPTR,
/* 16084*/          OPC_CheckType, MVT::v16i1,
/* 16086*/          OPC_MoveParent,
/* 16087*/          OPC_CheckChild1Integer, 0, 
/* 16089*/          OPC_CheckChild1Type, MVT::iPTR,
/* 16091*/          OPC_CheckType, MVT::v8i1,
/* 16093*/          OPC_MoveParent,
/* 16094*/          OPC_CheckPredicate, 27, // Predicate_masked_store
/* 16096*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/* 16099*/          OPC_EmitMergeInputChains1_0,
/* 16100*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i32, 0/*#Ops*/,  // Results = #9
/* 16106*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 16109*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i32, 3/*#Ops*/, 9, 3, 10,  // Results = #11
/* 16118*/          OPC_EmitInteger, MVT::i32, X86::VK1WMRegClassID,
/* 16121*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v1i1, 2/*#Ops*/, 11, 12,  // Results = #13
/* 16129*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVSDZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 13, 1, 
                    // Src: (masked_st (insert_subvector:{ *:[v8f64] } (undef:{ *:[v8f64] }), VR128X:{ *:[v2f64] }:$src, 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst, (undef:{ *:[iPTR] }), (extract_subvector:{ *:[v8i1] } (insert_subvector:{ *:[v16i1] } immAllZerosV:{ *:[v16i1] }, (extract_subvector:{ *:[v2i1] } (bitconvert:{ *:[v8i1] } (and:{ *:[i8] } GR8:{ *:[i8] }:$mask, 1:{ *:[i8] })), 0:{ *:[iPTR] }), 0:{ *:[iPTR] }), 0:{ *:[iPTR] }))<<P:Predicate_masked_store>> - Complexity = 75
                    // Dst: (VMOVSDZmrk addr:{ *:[iPTR] }:$dst, (COPY_TO_REGCLASS:{ *:[v1i1] } (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$mask, sub_8bit:{ *:[i32] }), VK1WM:{ *:[i32] }), VR128X:{ *:[v2f64] }:$src)
/* 16141*/        /*SwitchOpcode*/ 60, TARGET_VAL(ISD::BITCAST),// ->16204
/* 16144*/          OPC_MoveChild0,
/* 16145*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 16148*/          OPC_RecordChild0, // #3 = $mask
/* 16149*/          OPC_CheckChild1Integer, 1, 
/* 16151*/          OPC_CheckType, MVT::i8,
/* 16153*/          OPC_MoveParent,
/* 16154*/          OPC_CheckType, MVT::v8i1,
/* 16156*/          OPC_MoveParent,
/* 16157*/          OPC_CheckPredicate, 27, // Predicate_masked_store
/* 16159*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/* 16162*/          OPC_EmitMergeInputChains1_0,
/* 16163*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i32, 0/*#Ops*/,  // Results = #9
/* 16169*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 16172*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i32, 3/*#Ops*/, 9, 3, 10,  // Results = #11
/* 16181*/          OPC_EmitInteger, MVT::i32, X86::VK1WMRegClassID,
/* 16184*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v1i1, 2/*#Ops*/, 11, 12,  // Results = #13
/* 16192*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVSDZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 13, 1, 
                    // Src: (masked_st (insert_subvector:{ *:[v8f64] } (undef:{ *:[v8f64] }), VR128X:{ *:[v2f64] }:$src, 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst, (undef:{ *:[iPTR] }), (bitconvert:{ *:[v8i1] } (and:{ *:[i8] } GR8:{ *:[i8] }:$mask, 1:{ *:[i8] })))<<P:Predicate_masked_store>> - Complexity = 47
                    // Dst: (VMOVSDZmrk addr:{ *:[iPTR] }:$dst, (COPY_TO_REGCLASS:{ *:[v1i1] } (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$mask, sub_8bit:{ *:[i32] }), VK1WM:{ *:[i32] }), VR128X:{ *:[v2f64] }:$src)
/* 16204*/        0, // EndSwitchOpcode
/* 16205*/      /*SwitchType*/ 89|128,1/*217*/, MVT::v16f32,// ->16425
/* 16208*/        OPC_CheckChild1Type, MVT::v4f32,
/* 16210*/        OPC_CheckChild2Integer, 0, 
/* 16212*/        OPC_CheckChild2Type, MVT::iPTR,
/* 16214*/        OPC_MoveParent,
/* 16215*/        OPC_RecordChild2, // #2 = $dst
/* 16216*/        OPC_MoveChild3,
/* 16217*/        OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/* 16220*/        OPC_MoveParent,
/* 16221*/        OPC_MoveChild4,
/* 16222*/        OPC_SwitchOpcode /*2 cases */, 85, TARGET_VAL(ISD::INSERT_SUBVECTOR),// ->16311
/* 16226*/          OPC_MoveChild0,
/* 16227*/          OPC_CheckImmAllZerosV,
/* 16228*/          OPC_MoveParent,
/* 16229*/          OPC_MoveChild1,
/* 16230*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 16233*/          OPC_MoveChild0,
/* 16234*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 16237*/          OPC_MoveChild0,
/* 16238*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 16241*/          OPC_RecordChild0, // #3 = $mask
/* 16242*/          OPC_CheckChild1Integer, 1, 
/* 16244*/          OPC_CheckType, MVT::i8,
/* 16246*/          OPC_MoveParent,
/* 16247*/          OPC_CheckType, MVT::v8i1,
/* 16249*/          OPC_MoveParent,
/* 16250*/          OPC_CheckChild1Integer, 0, 
/* 16252*/          OPC_CheckChild1Type, MVT::iPTR,
/* 16254*/          OPC_CheckType, MVT::v4i1,
/* 16256*/          OPC_MoveParent,
/* 16257*/          OPC_CheckChild2Integer, 0, 
/* 16259*/          OPC_CheckChild2Type, MVT::iPTR,
/* 16261*/          OPC_CheckType, MVT::v16i1,
/* 16263*/          OPC_MoveParent,
/* 16264*/          OPC_CheckPredicate, 27, // Predicate_masked_store
/* 16266*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/* 16269*/          OPC_EmitMergeInputChains1_0,
/* 16270*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i32, 0/*#Ops*/,  // Results = #9
/* 16276*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 16279*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i32, 3/*#Ops*/, 9, 3, 10,  // Results = #11
/* 16288*/          OPC_EmitInteger, MVT::i32, X86::VK1WMRegClassID,
/* 16291*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v1i1, 2/*#Ops*/, 11, 12,  // Results = #13
/* 16299*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVSSZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 13, 1, 
                    // Src: (masked_st (insert_subvector:{ *:[v16f32] } (undef:{ *:[v16f32] }), VR128X:{ *:[v4f32] }:$src, 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst, (undef:{ *:[iPTR] }), (insert_subvector:{ *:[v16i1] } immAllZerosV:{ *:[v16i1] }, (extract_subvector:{ *:[v4i1] } (bitconvert:{ *:[v8i1] } (and:{ *:[i8] } GR8:{ *:[i8] }:$mask, 1:{ *:[i8] })), 0:{ *:[iPTR] }), 0:{ *:[iPTR] }))<<P:Predicate_masked_store>> - Complexity = 67
                    // Dst: (VMOVSSZmrk addr:{ *:[iPTR] }:$dst, (COPY_TO_REGCLASS:{ *:[v1i1] } (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$mask, sub_8bit:{ *:[i32] }), VK1WM:{ *:[i32] }), VR128X:{ *:[v4f32] }:$src)
/* 16311*/        /*SwitchOpcode*/ 110, TARGET_VAL(ISD::BITCAST),// ->16424
/* 16314*/          OPC_MoveChild0,
/* 16315*/          OPC_SwitchOpcode /*2 cases */, 45, TARGET_VAL(ISD::TRUNCATE),// ->16364
/* 16319*/            OPC_MoveChild0,
/* 16320*/            OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 16323*/            OPC_RecordChild0, // #3 = $mask
/* 16324*/            OPC_CheckChild1Integer, 1, 
/* 16326*/            OPC_CheckType, MVT::i32,
/* 16328*/            OPC_MoveParent,
/* 16329*/            OPC_CheckType, MVT::i16,
/* 16331*/            OPC_MoveParent,
/* 16332*/            OPC_CheckType, MVT::v16i1,
/* 16334*/            OPC_MoveParent,
/* 16335*/            OPC_CheckPredicate, 27, // Predicate_masked_store
/* 16337*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/* 16340*/            OPC_EmitMergeInputChains1_0,
/* 16341*/            OPC_EmitInteger, MVT::i32, X86::VK1WMRegClassID,
/* 16344*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v1i1, 2/*#Ops*/, 3, 9,  // Results = #10
/* 16352*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVSSZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 10, 1, 
                      // Src: (masked_st (insert_subvector:{ *:[v16f32] } (undef:{ *:[v16f32] }), VR128X:{ *:[v4f32] }:$src, 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst, (undef:{ *:[iPTR] }), (bitconvert:{ *:[v16i1] } (trunc:{ *:[i16] } (and:{ *:[i32] } GR32:{ *:[i32] }:$mask, 1:{ *:[i32] }))))<<P:Predicate_masked_store>> - Complexity = 50
                      // Dst: (VMOVSSZmrk addr:{ *:[iPTR] }:$dst, (COPY_TO_REGCLASS:{ *:[v1i1] } GR32:{ *:[i32] }:$mask, VK1WM:{ *:[i32] }), VR128X:{ *:[v4f32] }:$src)
/* 16364*/          /*SwitchOpcode*/ 56, TARGET_VAL(ISD::AND),// ->16423
/* 16367*/            OPC_RecordChild0, // #3 = $mask
/* 16368*/            OPC_CheckChild1Integer, 1, 
/* 16370*/            OPC_CheckType, MVT::i16,
/* 16372*/            OPC_MoveParent,
/* 16373*/            OPC_CheckType, MVT::v16i1,
/* 16375*/            OPC_MoveParent,
/* 16376*/            OPC_CheckPredicate, 27, // Predicate_masked_store
/* 16378*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/* 16381*/            OPC_EmitMergeInputChains1_0,
/* 16382*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i32, 0/*#Ops*/,  // Results = #9
/* 16388*/            OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/* 16391*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i32, 3/*#Ops*/, 9, 3, 10,  // Results = #11
/* 16400*/            OPC_EmitInteger, MVT::i32, X86::VK1WMRegClassID,
/* 16403*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v1i1, 2/*#Ops*/, 11, 12,  // Results = #13
/* 16411*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVSSZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 13, 1, 
                      // Src: (masked_st (insert_subvector:{ *:[v16f32] } (undef:{ *:[v16f32] }), VR128X:{ *:[v4f32] }:$src, 0:{ *:[iPTR] }), addr:{ *:[iPTR] }:$dst, (undef:{ *:[iPTR] }), (bitconvert:{ *:[v16i1] } (and:{ *:[i16] } GR16:{ *:[i16] }:$mask, 1:{ *:[i16] })))<<P:Predicate_masked_store>> - Complexity = 47
                      // Dst: (VMOVSSZmrk addr:{ *:[iPTR] }:$dst, (COPY_TO_REGCLASS:{ *:[v1i1] } (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR16:{ *:[i16] }:$mask, sub_16bit:{ *:[i32] }), VK1WM:{ *:[i32] }), VR128X:{ *:[v4f32] }:$src)
/* 16423*/          0, // EndSwitchOpcode
/* 16424*/        0, // EndSwitchOpcode
/* 16425*/      0, // EndSwitchType
/* 16426*/    /*Scope*/ 0|128,17/*2176*/, /*->18604*/
/* 16428*/      OPC_RecordChild1, // #1 = $src
/* 16429*/      OPC_Scope, 56|128,1/*184*/, /*->16616*/ // 18 children in Scope
/* 16432*/        OPC_CheckChild1Type, MVT::v4f32,
/* 16434*/        OPC_RecordChild2, // #2 = $dst
/* 16435*/        OPC_MoveChild3,
/* 16436*/        OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/* 16439*/        OPC_MoveParent,
/* 16440*/        OPC_Scope, 75, /*->16517*/ // 2 children in Scope
/* 16442*/          OPC_MoveChild4,
/* 16443*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 16446*/          OPC_MoveChild0,
/* 16447*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 16450*/          OPC_MoveChild0,
/* 16451*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 16454*/          OPC_RecordChild0, // #3 = $mask
/* 16455*/          OPC_CheckChild1Integer, 1, 
/* 16457*/          OPC_CheckType, MVT::i8,
/* 16459*/          OPC_MoveParent,
/* 16460*/          OPC_CheckType, MVT::v8i1,
/* 16462*/          OPC_MoveParent,
/* 16463*/          OPC_CheckChild1Integer, 0, 
/* 16465*/          OPC_CheckChild1Type, MVT::iPTR,
/* 16467*/          OPC_CheckType, MVT::v4i1,
/* 16469*/          OPC_MoveParent,
/* 16470*/          OPC_CheckPredicate, 27, // Predicate_masked_store
/* 16472*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/* 16475*/          OPC_EmitMergeInputChains1_0,
/* 16476*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i32, 0/*#Ops*/,  // Results = #9
/* 16482*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 16485*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i32, 3/*#Ops*/, 9, 3, 10,  // Results = #11
/* 16494*/          OPC_EmitInteger, MVT::i32, X86::VK1WMRegClassID,
/* 16497*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v1i1, 2/*#Ops*/, 11, 12,  // Results = #13
/* 16505*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVSSZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 13, 1, 
                    // Src: (masked_st VR128X:{ *:[v4f32] }:$src, addr:{ *:[iPTR] }:$dst, (undef:{ *:[iPTR] }), (extract_subvector:{ *:[v4i1] } (bitconvert:{ *:[v8i1] } (and:{ *:[i8] } GR8:{ *:[i8] }:$mask, 1:{ *:[i8] })), 0:{ *:[iPTR] }))<<P:Predicate_masked_store>> - Complexity = 44
                    // Dst: (VMOVSSZmrk addr:{ *:[iPTR] }:$dst, (COPY_TO_REGCLASS:{ *:[v1i1] } (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$mask, sub_8bit:{ *:[i32] }), VK1WM:{ *:[i32] }), VR128X:{ *:[v4f32] }:$src)
/* 16517*/        /*Scope*/ 97, /*->16615*/
/* 16518*/          OPC_RecordChild4, // #3 = $mask
/* 16519*/          OPC_Scope, 22, /*->16543*/ // 2 children in Scope
/* 16521*/            OPC_CheckChild4Type, MVT::v4i32,
/* 16523*/            OPC_CheckPredicate, 27, // Predicate_masked_store
/* 16525*/            OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/* 16527*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 16530*/            OPC_EmitMergeInputChains1_0,
/* 16531*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMASKMOVPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                      // Src: (masked_st VR128:{ *:[v4f32] }:$src, addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VR128:{ *:[v4i32] }:$mask)<<P:Predicate_masked_store>> - Complexity = 25
                      // Dst: (VMASKMOVPSmr addr:{ *:[iPTR] }:$ptr, VR128:{ *:[v4i32] }:$mask, VR128:{ *:[v4f32] }:$src)
/* 16543*/          /*Scope*/ 70, /*->16614*/
/* 16544*/            OPC_CheckChild4Type, MVT::v4i1,
/* 16546*/            OPC_Scope, 44, /*->16592*/ // 2 children in Scope
/* 16548*/              OPC_CheckPredicate, 27, // Predicate_masked_store
/* 16550*/              OPC_Scope, 20, /*->16572*/ // 2 children in Scope
/* 16552*/                OPC_CheckPredicate, 28, // Predicate_masked_store_aligned
/* 16554*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 16556*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 16559*/                OPC_EmitMergeInputChains1_0,
/* 16560*/                OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVAPSZ128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                              7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                          // Src: (masked_st VR128X:{ *:[v4f32] }:$src, addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK4WM:{ *:[v4i1] }:$mask)<<P:Predicate_masked_store>><<P:Predicate_masked_store_aligned>> - Complexity = 25
                          // Dst: (VMOVAPSZ128mrk addr:{ *:[iPTR] }:$ptr, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/* 16572*/              /*Scope*/ 18, /*->16591*/
/* 16573*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 16575*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 16578*/                OPC_EmitMergeInputChains1_0,
/* 16579*/                OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVUPSZ128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                              7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                          // Src: (masked_st VR128X:{ *:[v4f32] }:$src, addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK4WM:{ *:[v4i1] }:$mask)<<P:Predicate_masked_store>> - Complexity = 25
                          // Dst: (VMOVUPSZ128mrk addr:{ *:[iPTR] }:$ptr, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/* 16591*/              0, /*End of Scope*/
/* 16592*/            /*Scope*/ 20, /*->16613*/
/* 16593*/              OPC_CheckPredicate, 29, // Predicate_X86mCompressingStore
/* 16595*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 16597*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/* 16600*/              OPC_EmitMergeInputChains1_0,
/* 16601*/              OPC_MorphNodeTo0, TARGET_VAL(X86::VCOMPRESSPSZ128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                            7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                        // Src: (masked_st VR128X:{ *:[v4f32] }:$src, addr:{ *:[iPTR] }:$dst, (undef:{ *:[iPTR] }), VK4WM:{ *:[v4i1] }:$mask)<<P:Predicate_X86mCompressingStore>> - Complexity = 25
                        // Dst: (VCOMPRESSPSZ128mrk addr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/* 16613*/            0, /*End of Scope*/
/* 16614*/          0, /*End of Scope*/
/* 16615*/        0, /*End of Scope*/
/* 16616*/      /*Scope*/ 56|128,1/*184*/, /*->16802*/
/* 16618*/        OPC_CheckChild1Type, MVT::v2f64,
/* 16620*/        OPC_RecordChild2, // #2 = $dst
/* 16621*/        OPC_MoveChild3,
/* 16622*/        OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/* 16625*/        OPC_MoveParent,
/* 16626*/        OPC_Scope, 75, /*->16703*/ // 2 children in Scope
/* 16628*/          OPC_MoveChild4,
/* 16629*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/* 16632*/          OPC_MoveChild0,
/* 16633*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 16636*/          OPC_MoveChild0,
/* 16637*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 16640*/          OPC_RecordChild0, // #3 = $mask
/* 16641*/          OPC_CheckChild1Integer, 1, 
/* 16643*/          OPC_CheckType, MVT::i8,
/* 16645*/          OPC_MoveParent,
/* 16646*/          OPC_CheckType, MVT::v8i1,
/* 16648*/          OPC_MoveParent,
/* 16649*/          OPC_CheckChild1Integer, 0, 
/* 16651*/          OPC_CheckChild1Type, MVT::iPTR,
/* 16653*/          OPC_CheckType, MVT::v2i1,
/* 16655*/          OPC_MoveParent,
/* 16656*/          OPC_CheckPredicate, 27, // Predicate_masked_store
/* 16658*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/* 16661*/          OPC_EmitMergeInputChains1_0,
/* 16662*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i32, 0/*#Ops*/,  // Results = #9
/* 16668*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 16671*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i32, 3/*#Ops*/, 9, 3, 10,  // Results = #11
/* 16680*/          OPC_EmitInteger, MVT::i32, X86::VK1WMRegClassID,
/* 16683*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v1i1, 2/*#Ops*/, 11, 12,  // Results = #13
/* 16691*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVSDZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 13, 1, 
                    // Src: (masked_st VR128X:{ *:[v2f64] }:$src, addr:{ *:[iPTR] }:$dst, (undef:{ *:[iPTR] }), (extract_subvector:{ *:[v2i1] } (bitconvert:{ *:[v8i1] } (and:{ *:[i8] } GR8:{ *:[i8] }:$mask, 1:{ *:[i8] })), 0:{ *:[iPTR] }))<<P:Predicate_masked_store>> - Complexity = 44
                    // Dst: (VMOVSDZmrk addr:{ *:[iPTR] }:$dst, (COPY_TO_REGCLASS:{ *:[v1i1] } (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$mask, sub_8bit:{ *:[i32] }), VK1WM:{ *:[i32] }), VR128X:{ *:[v2f64] }:$src)
/* 16703*/        /*Scope*/ 97, /*->16801*/
/* 16704*/          OPC_RecordChild4, // #3 = $mask
/* 16705*/          OPC_Scope, 22, /*->16729*/ // 2 children in Scope
/* 16707*/            OPC_CheckChild4Type, MVT::v2i64,
/* 16709*/            OPC_CheckPredicate, 27, // Predicate_masked_store
/* 16711*/            OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/* 16713*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 16716*/            OPC_EmitMergeInputChains1_0,
/* 16717*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMASKMOVPDmr), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                      // Src: (masked_st VR128:{ *:[v2f64] }:$src, addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VR128:{ *:[v2i64] }:$mask)<<P:Predicate_masked_store>> - Complexity = 25
                      // Dst: (VMASKMOVPDmr addr:{ *:[iPTR] }:$ptr, VR128:{ *:[v2i64] }:$mask, VR128:{ *:[v2f64] }:$src)
/* 16729*/          /*Scope*/ 70, /*->16800*/
/* 16730*/            OPC_CheckChild4Type, MVT::v2i1,
/* 16732*/            OPC_Scope, 44, /*->16778*/ // 2 children in Scope
/* 16734*/              OPC_CheckPredicate, 27, // Predicate_masked_store
/* 16736*/              OPC_Scope, 20, /*->16758*/ // 2 children in Scope
/* 16738*/                OPC_CheckPredicate, 28, // Predicate_masked_store_aligned
/* 16740*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 16742*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 16745*/                OPC_EmitMergeInputChains1_0,
/* 16746*/                OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVAPDZ128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                              7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                          // Src: (masked_st VR128X:{ *:[v2f64] }:$src, addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK2WM:{ *:[v2i1] }:$mask)<<P:Predicate_masked_store>><<P:Predicate_masked_store_aligned>> - Complexity = 25
                          // Dst: (VMOVAPDZ128mrk addr:{ *:[iPTR] }:$ptr, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/* 16758*/              /*Scope*/ 18, /*->16777*/
/* 16759*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 16761*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 16764*/                OPC_EmitMergeInputChains1_0,
/* 16765*/                OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVUPDZ128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                              7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                          // Src: (masked_st VR128X:{ *:[v2f64] }:$src, addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK2WM:{ *:[v2i1] }:$mask)<<P:Predicate_masked_store>> - Complexity = 25
                          // Dst: (VMOVUPDZ128mrk addr:{ *:[iPTR] }:$ptr, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/* 16777*/              0, /*End of Scope*/
/* 16778*/            /*Scope*/ 20, /*->16799*/
/* 16779*/              OPC_CheckPredicate, 29, // Predicate_X86mCompressingStore
/* 16781*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 16783*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/* 16786*/              OPC_EmitMergeInputChains1_0,
/* 16787*/              OPC_MorphNodeTo0, TARGET_VAL(X86::VCOMPRESSPDZ128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                            7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                        // Src: (masked_st VR128X:{ *:[v2f64] }:$src, addr:{ *:[iPTR] }:$dst, (undef:{ *:[iPTR] }), VK2WM:{ *:[v2i1] }:$mask)<<P:Predicate_X86mCompressingStore>> - Complexity = 25
                        // Dst: (VCOMPRESSPDZ128mrk addr:{ *:[iPTR] }:$dst, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/* 16799*/            0, /*End of Scope*/
/* 16800*/          0, /*End of Scope*/
/* 16801*/        0, /*End of Scope*/
/* 16802*/      /*Scope*/ 105, /*->16908*/
/* 16803*/        OPC_CheckChild1Type, MVT::v8f32,
/* 16805*/        OPC_RecordChild2, // #2 = $ptr
/* 16806*/        OPC_MoveChild3,
/* 16807*/        OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/* 16810*/        OPC_MoveParent,
/* 16811*/        OPC_RecordChild4, // #3 = $mask
/* 16812*/        OPC_Scope, 22, /*->16836*/ // 2 children in Scope
/* 16814*/          OPC_CheckChild4Type, MVT::v8i32,
/* 16816*/          OPC_CheckPredicate, 27, // Predicate_masked_store
/* 16818*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/* 16820*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 16823*/          OPC_EmitMergeInputChains1_0,
/* 16824*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMASKMOVPSYmr), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                    // Src: (masked_st VR256:{ *:[v8f32] }:$src, addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VR256:{ *:[v8i32] }:$mask)<<P:Predicate_masked_store>> - Complexity = 25
                    // Dst: (VMASKMOVPSYmr addr:{ *:[iPTR] }:$ptr, VR256:{ *:[v8i32] }:$mask, VR256:{ *:[v8f32] }:$src)
/* 16836*/        /*Scope*/ 70, /*->16907*/
/* 16837*/          OPC_CheckChild4Type, MVT::v8i1,
/* 16839*/          OPC_Scope, 44, /*->16885*/ // 2 children in Scope
/* 16841*/            OPC_CheckPredicate, 27, // Predicate_masked_store
/* 16843*/            OPC_Scope, 20, /*->16865*/ // 2 children in Scope
/* 16845*/              OPC_CheckPredicate, 28, // Predicate_masked_store_aligned
/* 16847*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 16849*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 16852*/              OPC_EmitMergeInputChains1_0,
/* 16853*/              OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVAPSZ256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                            7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                        // Src: (masked_st VR256X:{ *:[v8f32] }:$src, addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK8WM:{ *:[v8i1] }:$mask)<<P:Predicate_masked_store>><<P:Predicate_masked_store_aligned>> - Complexity = 25
                        // Dst: (VMOVAPSZ256mrk addr:{ *:[iPTR] }:$ptr, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/* 16865*/            /*Scope*/ 18, /*->16884*/
/* 16866*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 16868*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 16871*/              OPC_EmitMergeInputChains1_0,
/* 16872*/              OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVUPSZ256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                            7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                        // Src: (masked_st VR256X:{ *:[v8f32] }:$src, addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK8WM:{ *:[v8i1] }:$mask)<<P:Predicate_masked_store>> - Complexity = 25
                        // Dst: (VMOVUPSZ256mrk addr:{ *:[iPTR] }:$ptr, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/* 16884*/            0, /*End of Scope*/
/* 16885*/          /*Scope*/ 20, /*->16906*/
/* 16886*/            OPC_CheckPredicate, 29, // Predicate_X86mCompressingStore
/* 16888*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 16890*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/* 16893*/            OPC_EmitMergeInputChains1_0,
/* 16894*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VCOMPRESSPSZ256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                      // Src: (masked_st VR256X:{ *:[v8f32] }:$src, addr:{ *:[iPTR] }:$dst, (undef:{ *:[iPTR] }), VK8WM:{ *:[v8i1] }:$mask)<<P:Predicate_X86mCompressingStore>> - Complexity = 25
                      // Dst: (VCOMPRESSPSZ256mrk addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/* 16906*/          0, /*End of Scope*/
/* 16907*/        0, /*End of Scope*/
/* 16908*/      /*Scope*/ 105, /*->17014*/
/* 16909*/        OPC_CheckChild1Type, MVT::v4f64,
/* 16911*/        OPC_RecordChild2, // #2 = $ptr
/* 16912*/        OPC_MoveChild3,
/* 16913*/        OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/* 16916*/        OPC_MoveParent,
/* 16917*/        OPC_RecordChild4, // #3 = $mask
/* 16918*/        OPC_Scope, 22, /*->16942*/ // 2 children in Scope
/* 16920*/          OPC_CheckChild4Type, MVT::v4i64,
/* 16922*/          OPC_CheckPredicate, 27, // Predicate_masked_store
/* 16924*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/* 16926*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 16929*/          OPC_EmitMergeInputChains1_0,
/* 16930*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMASKMOVPDYmr), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                    // Src: (masked_st VR256:{ *:[v4f64] }:$src, addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VR256:{ *:[v4i64] }:$mask)<<P:Predicate_masked_store>> - Complexity = 25
                    // Dst: (VMASKMOVPDYmr addr:{ *:[iPTR] }:$ptr, VR256:{ *:[v4i64] }:$mask, VR256:{ *:[v4f64] }:$src)
/* 16942*/        /*Scope*/ 70, /*->17013*/
/* 16943*/          OPC_CheckChild4Type, MVT::v4i1,
/* 16945*/          OPC_Scope, 44, /*->16991*/ // 2 children in Scope
/* 16947*/            OPC_CheckPredicate, 27, // Predicate_masked_store
/* 16949*/            OPC_Scope, 20, /*->16971*/ // 2 children in Scope
/* 16951*/              OPC_CheckPredicate, 28, // Predicate_masked_store_aligned
/* 16953*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 16955*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 16958*/              OPC_EmitMergeInputChains1_0,
/* 16959*/              OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVAPDZ256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                            7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                        // Src: (masked_st VR256X:{ *:[v4f64] }:$src, addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK4WM:{ *:[v4i1] }:$mask)<<P:Predicate_masked_store>><<P:Predicate_masked_store_aligned>> - Complexity = 25
                        // Dst: (VMOVAPDZ256mrk addr:{ *:[iPTR] }:$ptr, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)
/* 16971*/            /*Scope*/ 18, /*->16990*/
/* 16972*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 16974*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 16977*/              OPC_EmitMergeInputChains1_0,
/* 16978*/              OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVUPDZ256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                            7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                        // Src: (masked_st VR256X:{ *:[v4f64] }:$src, addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK4WM:{ *:[v4i1] }:$mask)<<P:Predicate_masked_store>> - Complexity = 25
                        // Dst: (VMOVUPDZ256mrk addr:{ *:[iPTR] }:$ptr, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)
/* 16990*/            0, /*End of Scope*/
/* 16991*/          /*Scope*/ 20, /*->17012*/
/* 16992*/            OPC_CheckPredicate, 29, // Predicate_X86mCompressingStore
/* 16994*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 16996*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/* 16999*/            OPC_EmitMergeInputChains1_0,
/* 17000*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VCOMPRESSPDZ256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                      // Src: (masked_st VR256X:{ *:[v4f64] }:$src, addr:{ *:[iPTR] }:$dst, (undef:{ *:[iPTR] }), VK4WM:{ *:[v4i1] }:$mask)<<P:Predicate_X86mCompressingStore>> - Complexity = 25
                      // Dst: (VCOMPRESSPDZ256mrk addr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)
/* 17012*/          0, /*End of Scope*/
/* 17013*/        0, /*End of Scope*/
/* 17014*/      /*Scope*/ 46|128,1/*174*/, /*->17190*/
/* 17016*/        OPC_CheckChild1Type, MVT::v8i32,
/* 17018*/        OPC_RecordChild2, // #2 = $ptr
/* 17019*/        OPC_MoveChild3,
/* 17020*/        OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/* 17023*/        OPC_MoveParent,
/* 17024*/        OPC_RecordChild4, // #3 = $mask
/* 17025*/        OPC_Scope, 44, /*->17071*/ // 2 children in Scope
/* 17027*/          OPC_CheckChild4Type, MVT::v8i32,
/* 17029*/          OPC_CheckPredicate, 27, // Predicate_masked_store
/* 17031*/          OPC_Scope, 18, /*->17051*/ // 2 children in Scope
/* 17033*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/* 17035*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 17038*/            OPC_EmitMergeInputChains1_0,
/* 17039*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMASKMOVPSYmr), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                      // Src: (masked_st VR256:{ *:[v8i32] }:$src, addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VR256:{ *:[v8i32] }:$mask)<<P:Predicate_masked_store>> - Complexity = 25
                      // Dst: (VMASKMOVPSYmr addr:{ *:[iPTR] }:$ptr, VR256:{ *:[v8i32] }:$mask, VR256:{ *:[v8i32] }:$src)
/* 17051*/          /*Scope*/ 18, /*->17070*/
/* 17052*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/* 17054*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 17057*/            OPC_EmitMergeInputChains1_0,
/* 17058*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VPMASKMOVDYmr), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                      // Src: (masked_st VR256:{ *:[v8i32] }:$src, addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VR256:{ *:[v8i32] }:$mask)<<P:Predicate_masked_store>> - Complexity = 25
                      // Dst: (VPMASKMOVDYmr addr:{ *:[iPTR] }:$ptr, VR256:{ *:[v8i32] }:$mask, VR256:{ *:[v8i32] }:$src)
/* 17070*/          0, /*End of Scope*/
/* 17071*/        /*Scope*/ 117, /*->17189*/
/* 17072*/          OPC_CheckChild4Type, MVT::v8i1,
/* 17074*/          OPC_Scope, 44, /*->17120*/ // 3 children in Scope
/* 17076*/            OPC_CheckPredicate, 27, // Predicate_masked_store
/* 17078*/            OPC_Scope, 20, /*->17100*/ // 2 children in Scope
/* 17080*/              OPC_CheckPredicate, 28, // Predicate_masked_store_aligned
/* 17082*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 17084*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 17087*/              OPC_EmitMergeInputChains1_0,
/* 17088*/              OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQA32Z256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                            7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                        // Src: (masked_st VR256X:{ *:[v8i32] }:$src, addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK8WM:{ *:[v8i1] }:$mask)<<P:Predicate_masked_store>><<P:Predicate_masked_store_aligned>> - Complexity = 25
                        // Dst: (VMOVDQA32Z256mrk addr:{ *:[iPTR] }:$ptr, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/* 17100*/            /*Scope*/ 18, /*->17119*/
/* 17101*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 17103*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 17106*/              OPC_EmitMergeInputChains1_0,
/* 17107*/              OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQU32Z256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                            7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                        // Src: (masked_st VR256X:{ *:[v8i32] }:$src, addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK8WM:{ *:[v8i1] }:$mask)<<P:Predicate_masked_store>> - Complexity = 25
                        // Dst: (VMOVDQU32Z256mrk addr:{ *:[iPTR] }:$ptr, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/* 17119*/            0, /*End of Scope*/
/* 17120*/          /*Scope*/ 46, /*->17167*/
/* 17121*/            OPC_CheckPredicate, 30, // Predicate_X86mtruncstore
/* 17123*/            OPC_Scope, 20, /*->17145*/ // 2 children in Scope
/* 17125*/              OPC_CheckPredicate, 31, // Predicate_masked_truncstorevi8
/* 17127*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 17129*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/* 17132*/              OPC_EmitMergeInputChains1_0,
/* 17133*/              OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVDBZ256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                            7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                        // Src: (masked_st VR256X:{ *:[v8i32] }:$src, addr:{ *:[iPTR] }:$dst, (undef:{ *:[iPTR] }), VK8WM:{ *:[v8i1] }:$mask)<<P:Predicate_X86mtruncstore>><<P:Predicate_masked_truncstorevi8>> - Complexity = 25
                        // Dst: (VPMOVDBZ256mrk addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/* 17145*/            /*Scope*/ 20, /*->17166*/
/* 17146*/              OPC_CheckPredicate, 32, // Predicate_masked_truncstorevi16
/* 17148*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 17150*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/* 17153*/              OPC_EmitMergeInputChains1_0,
/* 17154*/              OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVDWZ256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                            7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                        // Src: (masked_st VR256X:{ *:[v8i32] }:$src, addr:{ *:[iPTR] }:$dst, (undef:{ *:[iPTR] }), VK8WM:{ *:[v8i1] }:$mask)<<P:Predicate_X86mtruncstore>><<P:Predicate_masked_truncstorevi16>> - Complexity = 25
                        // Dst: (VPMOVDWZ256mrk addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/* 17166*/            0, /*End of Scope*/
/* 17167*/          /*Scope*/ 20, /*->17188*/
/* 17168*/            OPC_CheckPredicate, 29, // Predicate_X86mCompressingStore
/* 17170*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 17172*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/* 17175*/            OPC_EmitMergeInputChains1_0,
/* 17176*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VPCOMPRESSDZ256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                      // Src: (masked_st VR256X:{ *:[v8i32] }:$src, addr:{ *:[iPTR] }:$dst, (undef:{ *:[iPTR] }), VK8WM:{ *:[v8i1] }:$mask)<<P:Predicate_X86mCompressingStore>> - Complexity = 25
                      // Dst: (VPCOMPRESSDZ256mrk addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/* 17188*/          0, /*End of Scope*/
/* 17189*/        0, /*End of Scope*/
/* 17190*/      /*Scope*/ 68|128,1/*196*/, /*->17388*/
/* 17192*/        OPC_CheckChild1Type, MVT::v4i64,
/* 17194*/        OPC_RecordChild2, // #2 = $ptr
/* 17195*/        OPC_MoveChild3,
/* 17196*/        OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/* 17199*/        OPC_MoveParent,
/* 17200*/        OPC_RecordChild4, // #3 = $mask
/* 17201*/        OPC_Scope, 44, /*->17247*/ // 2 children in Scope
/* 17203*/          OPC_CheckChild4Type, MVT::v4i64,
/* 17205*/          OPC_CheckPredicate, 27, // Predicate_masked_store
/* 17207*/          OPC_Scope, 18, /*->17227*/ // 2 children in Scope
/* 17209*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/* 17211*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 17214*/            OPC_EmitMergeInputChains1_0,
/* 17215*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMASKMOVPDYmr), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                      // Src: (masked_st VR256:{ *:[v4i64] }:$src, addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VR256:{ *:[v4i64] }:$mask)<<P:Predicate_masked_store>> - Complexity = 25
                      // Dst: (VMASKMOVPDYmr addr:{ *:[iPTR] }:$ptr, VR256:{ *:[v4i64] }:$mask, VR256:{ *:[v4i64] }:$src)
/* 17227*/          /*Scope*/ 18, /*->17246*/
/* 17228*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/* 17230*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 17233*/            OPC_EmitMergeInputChains1_0,
/* 17234*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VPMASKMOVQYmr), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                      // Src: (masked_st VR256:{ *:[v4i64] }:$src, addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VR256:{ *:[v4i64] }:$mask)<<P:Predicate_masked_store>> - Complexity = 25
                      // Dst: (VPMASKMOVQYmr addr:{ *:[iPTR] }:$ptr, VR256:{ *:[v4i64] }:$mask, VR256:{ *:[v4i64] }:$src)
/* 17246*/          0, /*End of Scope*/
/* 17247*/        /*Scope*/ 10|128,1/*138*/, /*->17387*/
/* 17249*/          OPC_CheckChild4Type, MVT::v4i1,
/* 17251*/          OPC_Scope, 44, /*->17297*/ // 3 children in Scope
/* 17253*/            OPC_CheckPredicate, 27, // Predicate_masked_store
/* 17255*/            OPC_Scope, 20, /*->17277*/ // 2 children in Scope
/* 17257*/              OPC_CheckPredicate, 28, // Predicate_masked_store_aligned
/* 17259*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 17261*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 17264*/              OPC_EmitMergeInputChains1_0,
/* 17265*/              OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQA64Z256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                            7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                        // Src: (masked_st VR256X:{ *:[v4i64] }:$src, addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK4WM:{ *:[v4i1] }:$mask)<<P:Predicate_masked_store>><<P:Predicate_masked_store_aligned>> - Complexity = 25
                        // Dst: (VMOVDQA64Z256mrk addr:{ *:[iPTR] }:$ptr, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/* 17277*/            /*Scope*/ 18, /*->17296*/
/* 17278*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 17280*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 17283*/              OPC_EmitMergeInputChains1_0,
/* 17284*/              OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQU64Z256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                            7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                        // Src: (masked_st VR256X:{ *:[v4i64] }:$src, addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK4WM:{ *:[v4i1] }:$mask)<<P:Predicate_masked_store>> - Complexity = 25
                        // Dst: (VMOVDQU64Z256mrk addr:{ *:[iPTR] }:$ptr, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/* 17296*/            0, /*End of Scope*/
/* 17297*/          /*Scope*/ 67, /*->17365*/
/* 17298*/            OPC_CheckPredicate, 30, // Predicate_X86mtruncstore
/* 17300*/            OPC_Scope, 20, /*->17322*/ // 3 children in Scope
/* 17302*/              OPC_CheckPredicate, 31, // Predicate_masked_truncstorevi8
/* 17304*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 17306*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/* 17309*/              OPC_EmitMergeInputChains1_0,
/* 17310*/              OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVQBZ256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                            7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                        // Src: (masked_st VR256X:{ *:[v4i64] }:$src, addr:{ *:[iPTR] }:$dst, (undef:{ *:[iPTR] }), VK4WM:{ *:[v4i1] }:$mask)<<P:Predicate_X86mtruncstore>><<P:Predicate_masked_truncstorevi8>> - Complexity = 25
                        // Dst: (VPMOVQBZ256mrk addr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/* 17322*/            /*Scope*/ 20, /*->17343*/
/* 17323*/              OPC_CheckPredicate, 32, // Predicate_masked_truncstorevi16
/* 17325*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 17327*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/* 17330*/              OPC_EmitMergeInputChains1_0,
/* 17331*/              OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVQWZ256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                            7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                        // Src: (masked_st VR256X:{ *:[v4i64] }:$src, addr:{ *:[iPTR] }:$dst, (undef:{ *:[iPTR] }), VK4WM:{ *:[v4i1] }:$mask)<<P:Predicate_X86mtruncstore>><<P:Predicate_masked_truncstorevi16>> - Complexity = 25
                        // Dst: (VPMOVQWZ256mrk addr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/* 17343*/            /*Scope*/ 20, /*->17364*/
/* 17344*/              OPC_CheckPredicate, 33, // Predicate_masked_truncstorevi32
/* 17346*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 17348*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/* 17351*/              OPC_EmitMergeInputChains1_0,
/* 17352*/              OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVQDZ256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                            7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                        // Src: (masked_st VR256X:{ *:[v4i64] }:$src, addr:{ *:[iPTR] }:$dst, (undef:{ *:[iPTR] }), VK4WM:{ *:[v4i1] }:$mask)<<P:Predicate_X86mtruncstore>><<P:Predicate_masked_truncstorevi32>> - Complexity = 25
                        // Dst: (VPMOVQDZ256mrk addr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/* 17364*/            0, /*End of Scope*/
/* 17365*/          /*Scope*/ 20, /*->17386*/
/* 17366*/            OPC_CheckPredicate, 29, // Predicate_X86mCompressingStore
/* 17368*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 17370*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/* 17373*/            OPC_EmitMergeInputChains1_0,
/* 17374*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VPCOMPRESSQZ256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                      // Src: (masked_st VR256X:{ *:[v4i64] }:$src, addr:{ *:[iPTR] }:$dst, (undef:{ *:[iPTR] }), VK4WM:{ *:[v4i1] }:$mask)<<P:Predicate_X86mCompressingStore>> - Complexity = 25
                      // Dst: (VPCOMPRESSQZ256mrk addr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/* 17386*/          0, /*End of Scope*/
/* 17387*/        0, /*End of Scope*/
/* 17388*/      /*Scope*/ 46|128,1/*174*/, /*->17564*/
/* 17390*/        OPC_CheckChild1Type, MVT::v4i32,
/* 17392*/        OPC_RecordChild2, // #2 = $ptr
/* 17393*/        OPC_MoveChild3,
/* 17394*/        OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/* 17397*/        OPC_MoveParent,
/* 17398*/        OPC_RecordChild4, // #3 = $mask
/* 17399*/        OPC_Scope, 44, /*->17445*/ // 2 children in Scope
/* 17401*/          OPC_CheckChild4Type, MVT::v4i32,
/* 17403*/          OPC_CheckPredicate, 27, // Predicate_masked_store
/* 17405*/          OPC_Scope, 18, /*->17425*/ // 2 children in Scope
/* 17407*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/* 17409*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 17412*/            OPC_EmitMergeInputChains1_0,
/* 17413*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMASKMOVPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                      // Src: (masked_st VR128:{ *:[v4i32] }:$src, addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VR128:{ *:[v4i32] }:$mask)<<P:Predicate_masked_store>> - Complexity = 25
                      // Dst: (VMASKMOVPSmr addr:{ *:[iPTR] }:$ptr, VR128:{ *:[v4i32] }:$mask, VR128:{ *:[v4i32] }:$src)
/* 17425*/          /*Scope*/ 18, /*->17444*/
/* 17426*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/* 17428*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 17431*/            OPC_EmitMergeInputChains1_0,
/* 17432*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VPMASKMOVDmr), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                      // Src: (masked_st VR128:{ *:[v4i32] }:$src, addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VR128:{ *:[v4i32] }:$mask)<<P:Predicate_masked_store>> - Complexity = 25
                      // Dst: (VPMASKMOVDmr addr:{ *:[iPTR] }:$ptr, VR128:{ *:[v4i32] }:$mask, VR128:{ *:[v4i32] }:$src)
/* 17444*/          0, /*End of Scope*/
/* 17445*/        /*Scope*/ 117, /*->17563*/
/* 17446*/          OPC_CheckChild4Type, MVT::v4i1,
/* 17448*/          OPC_Scope, 44, /*->17494*/ // 3 children in Scope
/* 17450*/            OPC_CheckPredicate, 27, // Predicate_masked_store
/* 17452*/            OPC_Scope, 20, /*->17474*/ // 2 children in Scope
/* 17454*/              OPC_CheckPredicate, 28, // Predicate_masked_store_aligned
/* 17456*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 17458*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 17461*/              OPC_EmitMergeInputChains1_0,
/* 17462*/              OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQA32Z128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                            7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                        // Src: (masked_st VR128X:{ *:[v4i32] }:$src, addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK4WM:{ *:[v4i1] }:$mask)<<P:Predicate_masked_store>><<P:Predicate_masked_store_aligned>> - Complexity = 25
                        // Dst: (VMOVDQA32Z128mrk addr:{ *:[iPTR] }:$ptr, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/* 17474*/            /*Scope*/ 18, /*->17493*/
/* 17475*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 17477*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 17480*/              OPC_EmitMergeInputChains1_0,
/* 17481*/              OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQU32Z128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                            7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                        // Src: (masked_st VR128X:{ *:[v4i32] }:$src, addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK4WM:{ *:[v4i1] }:$mask)<<P:Predicate_masked_store>> - Complexity = 25
                        // Dst: (VMOVDQU32Z128mrk addr:{ *:[iPTR] }:$ptr, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/* 17493*/            0, /*End of Scope*/
/* 17494*/          /*Scope*/ 46, /*->17541*/
/* 17495*/            OPC_CheckPredicate, 30, // Predicate_X86mtruncstore
/* 17497*/            OPC_Scope, 20, /*->17519*/ // 2 children in Scope
/* 17499*/              OPC_CheckPredicate, 31, // Predicate_masked_truncstorevi8
/* 17501*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 17503*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/* 17506*/              OPC_EmitMergeInputChains1_0,
/* 17507*/              OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVDBZ128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                            7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                        // Src: (masked_st VR128X:{ *:[v4i32] }:$src, addr:{ *:[iPTR] }:$dst, (undef:{ *:[iPTR] }), VK4WM:{ *:[v4i1] }:$mask)<<P:Predicate_X86mtruncstore>><<P:Predicate_masked_truncstorevi8>> - Complexity = 25
                        // Dst: (VPMOVDBZ128mrk addr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/* 17519*/            /*Scope*/ 20, /*->17540*/
/* 17520*/              OPC_CheckPredicate, 32, // Predicate_masked_truncstorevi16
/* 17522*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 17524*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/* 17527*/              OPC_EmitMergeInputChains1_0,
/* 17528*/              OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVDWZ128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                            7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                        // Src: (masked_st VR128X:{ *:[v4i32] }:$src, addr:{ *:[iPTR] }:$dst, (undef:{ *:[iPTR] }), VK4WM:{ *:[v4i1] }:$mask)<<P:Predicate_X86mtruncstore>><<P:Predicate_masked_truncstorevi16>> - Complexity = 25
                        // Dst: (VPMOVDWZ128mrk addr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/* 17540*/            0, /*End of Scope*/
/* 17541*/          /*Scope*/ 20, /*->17562*/
/* 17542*/            OPC_CheckPredicate, 29, // Predicate_X86mCompressingStore
/* 17544*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 17546*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/* 17549*/            OPC_EmitMergeInputChains1_0,
/* 17550*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VPCOMPRESSDZ128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                      // Src: (masked_st VR128X:{ *:[v4i32] }:$src, addr:{ *:[iPTR] }:$dst, (undef:{ *:[iPTR] }), VK4WM:{ *:[v4i1] }:$mask)<<P:Predicate_X86mCompressingStore>> - Complexity = 25
                      // Dst: (VPCOMPRESSDZ128mrk addr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/* 17562*/          0, /*End of Scope*/
/* 17563*/        0, /*End of Scope*/
/* 17564*/      /*Scope*/ 68|128,1/*196*/, /*->17762*/
/* 17566*/        OPC_CheckChild1Type, MVT::v2i64,
/* 17568*/        OPC_RecordChild2, // #2 = $ptr
/* 17569*/        OPC_MoveChild3,
/* 17570*/        OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/* 17573*/        OPC_MoveParent,
/* 17574*/        OPC_RecordChild4, // #3 = $mask
/* 17575*/        OPC_Scope, 44, /*->17621*/ // 2 children in Scope
/* 17577*/          OPC_CheckChild4Type, MVT::v2i64,
/* 17579*/          OPC_CheckPredicate, 27, // Predicate_masked_store
/* 17581*/          OPC_Scope, 18, /*->17601*/ // 2 children in Scope
/* 17583*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/* 17585*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 17588*/            OPC_EmitMergeInputChains1_0,
/* 17589*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMASKMOVPDmr), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                      // Src: (masked_st VR128:{ *:[v2i64] }:$src, addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VR128:{ *:[v2i64] }:$mask)<<P:Predicate_masked_store>> - Complexity = 25
                      // Dst: (VMASKMOVPDmr addr:{ *:[iPTR] }:$ptr, VR128:{ *:[v2i64] }:$mask, VR128:{ *:[v2i64] }:$src)
/* 17601*/          /*Scope*/ 18, /*->17620*/
/* 17602*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/* 17604*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 17607*/            OPC_EmitMergeInputChains1_0,
/* 17608*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VPMASKMOVQmr), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                      // Src: (masked_st VR128:{ *:[v2i64] }:$src, addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VR128:{ *:[v2i64] }:$mask)<<P:Predicate_masked_store>> - Complexity = 25
                      // Dst: (VPMASKMOVQmr addr:{ *:[iPTR] }:$ptr, VR128:{ *:[v2i64] }:$mask, VR128:{ *:[v2i64] }:$src)
/* 17620*/          0, /*End of Scope*/
/* 17621*/        /*Scope*/ 10|128,1/*138*/, /*->17761*/
/* 17623*/          OPC_CheckChild4Type, MVT::v2i1,
/* 17625*/          OPC_Scope, 44, /*->17671*/ // 3 children in Scope
/* 17627*/            OPC_CheckPredicate, 27, // Predicate_masked_store
/* 17629*/            OPC_Scope, 20, /*->17651*/ // 2 children in Scope
/* 17631*/              OPC_CheckPredicate, 28, // Predicate_masked_store_aligned
/* 17633*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 17635*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 17638*/              OPC_EmitMergeInputChains1_0,
/* 17639*/              OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQA64Z128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                            7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                        // Src: (masked_st VR128X:{ *:[v2i64] }:$src, addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK2WM:{ *:[v2i1] }:$mask)<<P:Predicate_masked_store>><<P:Predicate_masked_store_aligned>> - Complexity = 25
                        // Dst: (VMOVDQA64Z128mrk addr:{ *:[iPTR] }:$ptr, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/* 17651*/            /*Scope*/ 18, /*->17670*/
/* 17652*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 17654*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 17657*/              OPC_EmitMergeInputChains1_0,
/* 17658*/              OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQU64Z128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                            7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                        // Src: (masked_st VR128X:{ *:[v2i64] }:$src, addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK2WM:{ *:[v2i1] }:$mask)<<P:Predicate_masked_store>> - Complexity = 25
                        // Dst: (VMOVDQU64Z128mrk addr:{ *:[iPTR] }:$ptr, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/* 17670*/            0, /*End of Scope*/
/* 17671*/          /*Scope*/ 67, /*->17739*/
/* 17672*/            OPC_CheckPredicate, 30, // Predicate_X86mtruncstore
/* 17674*/            OPC_Scope, 20, /*->17696*/ // 3 children in Scope
/* 17676*/              OPC_CheckPredicate, 31, // Predicate_masked_truncstorevi8
/* 17678*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 17680*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/* 17683*/              OPC_EmitMergeInputChains1_0,
/* 17684*/              OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVQBZ128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                            7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                        // Src: (masked_st VR128X:{ *:[v2i64] }:$src, addr:{ *:[iPTR] }:$dst, (undef:{ *:[iPTR] }), VK2WM:{ *:[v2i1] }:$mask)<<P:Predicate_X86mtruncstore>><<P:Predicate_masked_truncstorevi8>> - Complexity = 25
                        // Dst: (VPMOVQBZ128mrk addr:{ *:[iPTR] }:$dst, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/* 17696*/            /*Scope*/ 20, /*->17717*/
/* 17697*/              OPC_CheckPredicate, 32, // Predicate_masked_truncstorevi16
/* 17699*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 17701*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/* 17704*/              OPC_EmitMergeInputChains1_0,
/* 17705*/              OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVQWZ128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                            7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                        // Src: (masked_st VR128X:{ *:[v2i64] }:$src, addr:{ *:[iPTR] }:$dst, (undef:{ *:[iPTR] }), VK2WM:{ *:[v2i1] }:$mask)<<P:Predicate_X86mtruncstore>><<P:Predicate_masked_truncstorevi16>> - Complexity = 25
                        // Dst: (VPMOVQWZ128mrk addr:{ *:[iPTR] }:$dst, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/* 17717*/            /*Scope*/ 20, /*->17738*/
/* 17718*/              OPC_CheckPredicate, 33, // Predicate_masked_truncstorevi32
/* 17720*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 17722*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/* 17725*/              OPC_EmitMergeInputChains1_0,
/* 17726*/              OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVQDZ128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                            7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                        // Src: (masked_st VR128X:{ *:[v2i64] }:$src, addr:{ *:[iPTR] }:$dst, (undef:{ *:[iPTR] }), VK2WM:{ *:[v2i1] }:$mask)<<P:Predicate_X86mtruncstore>><<P:Predicate_masked_truncstorevi32>> - Complexity = 25
                        // Dst: (VPMOVQDZ128mrk addr:{ *:[iPTR] }:$dst, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/* 17738*/            0, /*End of Scope*/
/* 17739*/          /*Scope*/ 20, /*->17760*/
/* 17740*/            OPC_CheckPredicate, 29, // Predicate_X86mCompressingStore
/* 17742*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 17744*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/* 17747*/            OPC_EmitMergeInputChains1_0,
/* 17748*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VPCOMPRESSQZ128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                      // Src: (masked_st VR128X:{ *:[v2i64] }:$src, addr:{ *:[iPTR] }:$dst, (undef:{ *:[iPTR] }), VK2WM:{ *:[v2i1] }:$mask)<<P:Predicate_X86mCompressingStore>> - Complexity = 25
                      // Dst: (VPCOMPRESSQZ128mrk addr:{ *:[iPTR] }:$dst, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/* 17760*/          0, /*End of Scope*/
/* 17761*/        0, /*End of Scope*/
/* 17762*/      /*Scope*/ 79, /*->17842*/
/* 17763*/        OPC_CheckChild1Type, MVT::v16f32,
/* 17765*/        OPC_RecordChild2, // #2 = $ptr
/* 17766*/        OPC_MoveChild3,
/* 17767*/        OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/* 17770*/        OPC_MoveParent,
/* 17771*/        OPC_RecordChild4, // #3 = $mask
/* 17772*/        OPC_CheckChild4Type, MVT::v16i1,
/* 17774*/        OPC_Scope, 44, /*->17820*/ // 2 children in Scope
/* 17776*/          OPC_CheckPredicate, 27, // Predicate_masked_store
/* 17778*/          OPC_Scope, 20, /*->17800*/ // 2 children in Scope
/* 17780*/            OPC_CheckPredicate, 28, // Predicate_masked_store_aligned
/* 17782*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 17784*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 17787*/            OPC_EmitMergeInputChains1_0,
/* 17788*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVAPSZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                      // Src: (masked_st VR512:{ *:[v16f32] }:$src, addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK16WM:{ *:[v16i1] }:$mask)<<P:Predicate_masked_store>><<P:Predicate_masked_store_aligned>> - Complexity = 25
                      // Dst: (VMOVAPSZmrk addr:{ *:[iPTR] }:$ptr, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/* 17800*/          /*Scope*/ 18, /*->17819*/
/* 17801*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 17803*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 17806*/            OPC_EmitMergeInputChains1_0,
/* 17807*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVUPSZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                      // Src: (masked_st VR512:{ *:[v16f32] }:$src, addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK16WM:{ *:[v16i1] }:$mask)<<P:Predicate_masked_store>> - Complexity = 25
                      // Dst: (VMOVUPSZmrk addr:{ *:[iPTR] }:$ptr, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/* 17819*/          0, /*End of Scope*/
/* 17820*/        /*Scope*/ 20, /*->17841*/
/* 17821*/          OPC_CheckPredicate, 29, // Predicate_X86mCompressingStore
/* 17823*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 17825*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/* 17828*/          OPC_EmitMergeInputChains1_0,
/* 17829*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VCOMPRESSPSZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                    // Src: (masked_st VR512:{ *:[v16f32] }:$src, addr:{ *:[iPTR] }:$dst, (undef:{ *:[iPTR] }), VK16WM:{ *:[v16i1] }:$mask)<<P:Predicate_X86mCompressingStore>> - Complexity = 25
                    // Dst: (VCOMPRESSPSZmrk addr:{ *:[iPTR] }:$dst, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/* 17841*/        0, /*End of Scope*/
/* 17842*/      /*Scope*/ 79, /*->17922*/
/* 17843*/        OPC_CheckChild1Type, MVT::v8f64,
/* 17845*/        OPC_RecordChild2, // #2 = $ptr
/* 17846*/        OPC_MoveChild3,
/* 17847*/        OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/* 17850*/        OPC_MoveParent,
/* 17851*/        OPC_RecordChild4, // #3 = $mask
/* 17852*/        OPC_CheckChild4Type, MVT::v8i1,
/* 17854*/        OPC_Scope, 44, /*->17900*/ // 2 children in Scope
/* 17856*/          OPC_CheckPredicate, 27, // Predicate_masked_store
/* 17858*/          OPC_Scope, 20, /*->17880*/ // 2 children in Scope
/* 17860*/            OPC_CheckPredicate, 28, // Predicate_masked_store_aligned
/* 17862*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 17864*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 17867*/            OPC_EmitMergeInputChains1_0,
/* 17868*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVAPDZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                      // Src: (masked_st VR512:{ *:[v8f64] }:$src, addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK8WM:{ *:[v8i1] }:$mask)<<P:Predicate_masked_store>><<P:Predicate_masked_store_aligned>> - Complexity = 25
                      // Dst: (VMOVAPDZmrk addr:{ *:[iPTR] }:$ptr, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/* 17880*/          /*Scope*/ 18, /*->17899*/
/* 17881*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 17883*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 17886*/            OPC_EmitMergeInputChains1_0,
/* 17887*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVUPDZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                      // Src: (masked_st VR512:{ *:[v8f64] }:$src, addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK8WM:{ *:[v8i1] }:$mask)<<P:Predicate_masked_store>> - Complexity = 25
                      // Dst: (VMOVUPDZmrk addr:{ *:[iPTR] }:$ptr, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/* 17899*/          0, /*End of Scope*/
/* 17900*/        /*Scope*/ 20, /*->17921*/
/* 17901*/          OPC_CheckPredicate, 29, // Predicate_X86mCompressingStore
/* 17903*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 17905*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/* 17908*/          OPC_EmitMergeInputChains1_0,
/* 17909*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VCOMPRESSPDZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                    // Src: (masked_st VR512:{ *:[v8f64] }:$src, addr:{ *:[iPTR] }:$dst, (undef:{ *:[iPTR] }), VK8WM:{ *:[v8i1] }:$mask)<<P:Predicate_X86mCompressingStore>> - Complexity = 25
                    // Dst: (VCOMPRESSPDZmrk addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/* 17921*/        0, /*End of Scope*/
/* 17922*/      /*Scope*/ 126, /*->18049*/
/* 17923*/        OPC_CheckChild1Type, MVT::v16i32,
/* 17925*/        OPC_RecordChild2, // #2 = $ptr
/* 17926*/        OPC_MoveChild3,
/* 17927*/        OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/* 17930*/        OPC_MoveParent,
/* 17931*/        OPC_RecordChild4, // #3 = $mask
/* 17932*/        OPC_CheckChild4Type, MVT::v16i1,
/* 17934*/        OPC_Scope, 44, /*->17980*/ // 3 children in Scope
/* 17936*/          OPC_CheckPredicate, 27, // Predicate_masked_store
/* 17938*/          OPC_Scope, 20, /*->17960*/ // 2 children in Scope
/* 17940*/            OPC_CheckPredicate, 28, // Predicate_masked_store_aligned
/* 17942*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 17944*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 17947*/            OPC_EmitMergeInputChains1_0,
/* 17948*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQA32Zmrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                      // Src: (masked_st VR512:{ *:[v16i32] }:$src, addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK16WM:{ *:[v16i1] }:$mask)<<P:Predicate_masked_store>><<P:Predicate_masked_store_aligned>> - Complexity = 25
                      // Dst: (VMOVDQA32Zmrk addr:{ *:[iPTR] }:$ptr, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)
/* 17960*/          /*Scope*/ 18, /*->17979*/
/* 17961*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 17963*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 17966*/            OPC_EmitMergeInputChains1_0,
/* 17967*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQU32Zmrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                      // Src: (masked_st VR512:{ *:[v16i32] }:$src, addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK16WM:{ *:[v16i1] }:$mask)<<P:Predicate_masked_store>> - Complexity = 25
                      // Dst: (VMOVDQU32Zmrk addr:{ *:[iPTR] }:$ptr, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)
/* 17979*/          0, /*End of Scope*/
/* 17980*/        /*Scope*/ 46, /*->18027*/
/* 17981*/          OPC_CheckPredicate, 30, // Predicate_X86mtruncstore
/* 17983*/          OPC_Scope, 20, /*->18005*/ // 2 children in Scope
/* 17985*/            OPC_CheckPredicate, 31, // Predicate_masked_truncstorevi8
/* 17987*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 17989*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/* 17992*/            OPC_EmitMergeInputChains1_0,
/* 17993*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVDBZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                      // Src: (masked_st VR512:{ *:[v16i32] }:$src, addr:{ *:[iPTR] }:$dst, (undef:{ *:[iPTR] }), VK16WM:{ *:[v16i1] }:$mask)<<P:Predicate_X86mtruncstore>><<P:Predicate_masked_truncstorevi8>> - Complexity = 25
                      // Dst: (VPMOVDBZmrk addr:{ *:[iPTR] }:$dst, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)
/* 18005*/          /*Scope*/ 20, /*->18026*/
/* 18006*/            OPC_CheckPredicate, 32, // Predicate_masked_truncstorevi16
/* 18008*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 18010*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/* 18013*/            OPC_EmitMergeInputChains1_0,
/* 18014*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVDWZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                      // Src: (masked_st VR512:{ *:[v16i32] }:$src, addr:{ *:[iPTR] }:$dst, (undef:{ *:[iPTR] }), VK16WM:{ *:[v16i1] }:$mask)<<P:Predicate_X86mtruncstore>><<P:Predicate_masked_truncstorevi16>> - Complexity = 25
                      // Dst: (VPMOVDWZmrk addr:{ *:[iPTR] }:$dst, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)
/* 18026*/          0, /*End of Scope*/
/* 18027*/        /*Scope*/ 20, /*->18048*/
/* 18028*/          OPC_CheckPredicate, 29, // Predicate_X86mCompressingStore
/* 18030*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 18032*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/* 18035*/          OPC_EmitMergeInputChains1_0,
/* 18036*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VPCOMPRESSDZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                    // Src: (masked_st VR512:{ *:[v16i32] }:$src, addr:{ *:[iPTR] }:$dst, (undef:{ *:[iPTR] }), VK16WM:{ *:[v16i1] }:$mask)<<P:Predicate_X86mCompressingStore>> - Complexity = 25
                    // Dst: (VPCOMPRESSDZmrk addr:{ *:[iPTR] }:$dst, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)
/* 18048*/        0, /*End of Scope*/
/* 18049*/      /*Scope*/ 19|128,1/*147*/, /*->18198*/
/* 18051*/        OPC_CheckChild1Type, MVT::v8i64,
/* 18053*/        OPC_RecordChild2, // #2 = $ptr
/* 18054*/        OPC_MoveChild3,
/* 18055*/        OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/* 18058*/        OPC_MoveParent,
/* 18059*/        OPC_RecordChild4, // #3 = $mask
/* 18060*/        OPC_CheckChild4Type, MVT::v8i1,
/* 18062*/        OPC_Scope, 44, /*->18108*/ // 3 children in Scope
/* 18064*/          OPC_CheckPredicate, 27, // Predicate_masked_store
/* 18066*/          OPC_Scope, 20, /*->18088*/ // 2 children in Scope
/* 18068*/            OPC_CheckPredicate, 28, // Predicate_masked_store_aligned
/* 18070*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 18072*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 18075*/            OPC_EmitMergeInputChains1_0,
/* 18076*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQA64Zmrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                      // Src: (masked_st VR512:{ *:[v8i64] }:$src, addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK8WM:{ *:[v8i1] }:$mask)<<P:Predicate_masked_store>><<P:Predicate_masked_store_aligned>> - Complexity = 25
                      // Dst: (VMOVDQA64Zmrk addr:{ *:[iPTR] }:$ptr, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/* 18088*/          /*Scope*/ 18, /*->18107*/
/* 18089*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 18091*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 18094*/            OPC_EmitMergeInputChains1_0,
/* 18095*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQU64Zmrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                      // Src: (masked_st VR512:{ *:[v8i64] }:$src, addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK8WM:{ *:[v8i1] }:$mask)<<P:Predicate_masked_store>> - Complexity = 25
                      // Dst: (VMOVDQU64Zmrk addr:{ *:[iPTR] }:$ptr, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/* 18107*/          0, /*End of Scope*/
/* 18108*/        /*Scope*/ 67, /*->18176*/
/* 18109*/          OPC_CheckPredicate, 30, // Predicate_X86mtruncstore
/* 18111*/          OPC_Scope, 20, /*->18133*/ // 3 children in Scope
/* 18113*/            OPC_CheckPredicate, 31, // Predicate_masked_truncstorevi8
/* 18115*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 18117*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/* 18120*/            OPC_EmitMergeInputChains1_0,
/* 18121*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVQBZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                      // Src: (masked_st VR512:{ *:[v8i64] }:$src, addr:{ *:[iPTR] }:$dst, (undef:{ *:[iPTR] }), VK8WM:{ *:[v8i1] }:$mask)<<P:Predicate_X86mtruncstore>><<P:Predicate_masked_truncstorevi8>> - Complexity = 25
                      // Dst: (VPMOVQBZmrk addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/* 18133*/          /*Scope*/ 20, /*->18154*/
/* 18134*/            OPC_CheckPredicate, 32, // Predicate_masked_truncstorevi16
/* 18136*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 18138*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/* 18141*/            OPC_EmitMergeInputChains1_0,
/* 18142*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVQWZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                      // Src: (masked_st VR512:{ *:[v8i64] }:$src, addr:{ *:[iPTR] }:$dst, (undef:{ *:[iPTR] }), VK8WM:{ *:[v8i1] }:$mask)<<P:Predicate_X86mtruncstore>><<P:Predicate_masked_truncstorevi16>> - Complexity = 25
                      // Dst: (VPMOVQWZmrk addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/* 18154*/          /*Scope*/ 20, /*->18175*/
/* 18155*/            OPC_CheckPredicate, 33, // Predicate_masked_truncstorevi32
/* 18157*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 18159*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/* 18162*/            OPC_EmitMergeInputChains1_0,
/* 18163*/            OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVQDZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                          7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                      // Src: (masked_st VR512:{ *:[v8i64] }:$src, addr:{ *:[iPTR] }:$dst, (undef:{ *:[iPTR] }), VK8WM:{ *:[v8i1] }:$mask)<<P:Predicate_X86mtruncstore>><<P:Predicate_masked_truncstorevi32>> - Complexity = 25
                      // Dst: (VPMOVQDZmrk addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/* 18175*/          0, /*End of Scope*/
/* 18176*/        /*Scope*/ 20, /*->18197*/
/* 18177*/          OPC_CheckPredicate, 29, // Predicate_X86mCompressingStore
/* 18179*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 18181*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/* 18184*/          OPC_EmitMergeInputChains1_0,
/* 18185*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VPCOMPRESSQZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                    // Src: (masked_st VR512:{ *:[v8i64] }:$src, addr:{ *:[iPTR] }:$dst, (undef:{ *:[iPTR] }), VK8WM:{ *:[v8i1] }:$mask)<<P:Predicate_X86mCompressingStore>> - Complexity = 25
                    // Dst: (VPCOMPRESSQZmrk addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/* 18197*/        0, /*End of Scope*/
/* 18198*/      /*Scope*/ 55, /*->18254*/
/* 18199*/        OPC_CheckChild1Type, MVT::v64i8,
/* 18201*/        OPC_RecordChild2, // #2 = $ptr
/* 18202*/        OPC_MoveChild3,
/* 18203*/        OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/* 18206*/        OPC_MoveParent,
/* 18207*/        OPC_RecordChild4, // #3 = $mask
/* 18208*/        OPC_CheckChild4Type, MVT::v64i1,
/* 18210*/        OPC_Scope, 20, /*->18232*/ // 2 children in Scope
/* 18212*/          OPC_CheckPredicate, 27, // Predicate_masked_store
/* 18214*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/* 18216*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 18219*/          OPC_EmitMergeInputChains1_0,
/* 18220*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQU8Zmrk), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                    // Src: (masked_st VR512:{ *:[v64i8] }:$src, addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK64WM:{ *:[v64i1] }:$mask)<<P:Predicate_masked_store>> - Complexity = 25
                    // Dst: (VMOVDQU8Zmrk addr:{ *:[iPTR] }:$ptr, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src)
/* 18232*/        /*Scope*/ 20, /*->18253*/
/* 18233*/          OPC_CheckPredicate, 29, // Predicate_X86mCompressingStore
/* 18235*/          OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/* 18237*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/* 18240*/          OPC_EmitMergeInputChains1_0,
/* 18241*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VPCOMPRESSBZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                    // Src: (masked_st VR512:{ *:[v64i8] }:$src, addr:{ *:[iPTR] }:$dst, (undef:{ *:[iPTR] }), VK64WM:{ *:[v64i1] }:$mask)<<P:Predicate_X86mCompressingStore>> - Complexity = 25
                    // Dst: (VPCOMPRESSBZmrk addr:{ *:[iPTR] }:$dst, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src)
/* 18253*/        0, /*End of Scope*/
/* 18254*/      /*Scope*/ 55, /*->18310*/
/* 18255*/        OPC_CheckChild1Type, MVT::v32i8,
/* 18257*/        OPC_RecordChild2, // #2 = $ptr
/* 18258*/        OPC_MoveChild3,
/* 18259*/        OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/* 18262*/        OPC_MoveParent,
/* 18263*/        OPC_RecordChild4, // #3 = $mask
/* 18264*/        OPC_CheckChild4Type, MVT::v32i1,
/* 18266*/        OPC_Scope, 20, /*->18288*/ // 2 children in Scope
/* 18268*/          OPC_CheckPredicate, 27, // Predicate_masked_store
/* 18270*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 18272*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 18275*/          OPC_EmitMergeInputChains1_0,
/* 18276*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQU8Z256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                    // Src: (masked_st VR256X:{ *:[v32i8] }:$src, addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK32WM:{ *:[v32i1] }:$mask)<<P:Predicate_masked_store>> - Complexity = 25
                    // Dst: (VMOVDQU8Z256mrk addr:{ *:[iPTR] }:$ptr, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src)
/* 18288*/        /*Scope*/ 20, /*->18309*/
/* 18289*/          OPC_CheckPredicate, 29, // Predicate_X86mCompressingStore
/* 18291*/          OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/* 18293*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/* 18296*/          OPC_EmitMergeInputChains1_0,
/* 18297*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VPCOMPRESSBZ256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                    // Src: (masked_st VR256X:{ *:[v32i8] }:$src, addr:{ *:[iPTR] }:$dst, (undef:{ *:[iPTR] }), VK32WM:{ *:[v32i1] }:$mask)<<P:Predicate_X86mCompressingStore>> - Complexity = 25
                    // Dst: (VPCOMPRESSBZ256mrk addr:{ *:[iPTR] }:$dst, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src)
/* 18309*/        0, /*End of Scope*/
/* 18310*/      /*Scope*/ 55, /*->18366*/
/* 18311*/        OPC_CheckChild1Type, MVT::v16i8,
/* 18313*/        OPC_RecordChild2, // #2 = $ptr
/* 18314*/        OPC_MoveChild3,
/* 18315*/        OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/* 18318*/        OPC_MoveParent,
/* 18319*/        OPC_RecordChild4, // #3 = $mask
/* 18320*/        OPC_CheckChild4Type, MVT::v16i1,
/* 18322*/        OPC_Scope, 20, /*->18344*/ // 2 children in Scope
/* 18324*/          OPC_CheckPredicate, 27, // Predicate_masked_store
/* 18326*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 18328*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 18331*/          OPC_EmitMergeInputChains1_0,
/* 18332*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQU8Z128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                    // Src: (masked_st VR128X:{ *:[v16i8] }:$src, addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK16WM:{ *:[v16i1] }:$mask)<<P:Predicate_masked_store>> - Complexity = 25
                    // Dst: (VMOVDQU8Z128mrk addr:{ *:[iPTR] }:$ptr, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/* 18344*/        /*Scope*/ 20, /*->18365*/
/* 18345*/          OPC_CheckPredicate, 29, // Predicate_X86mCompressingStore
/* 18347*/          OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/* 18349*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/* 18352*/          OPC_EmitMergeInputChains1_0,
/* 18353*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VPCOMPRESSBZ128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                    // Src: (masked_st VR128X:{ *:[v16i8] }:$src, addr:{ *:[iPTR] }:$dst, (undef:{ *:[iPTR] }), VK16WM:{ *:[v16i1] }:$mask)<<P:Predicate_X86mCompressingStore>> - Complexity = 25
                    // Dst: (VPCOMPRESSBZ128mrk addr:{ *:[iPTR] }:$dst, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/* 18365*/        0, /*End of Scope*/
/* 18366*/      /*Scope*/ 78, /*->18445*/
/* 18367*/        OPC_CheckChild1Type, MVT::v32i16,
/* 18369*/        OPC_RecordChild2, // #2 = $ptr
/* 18370*/        OPC_MoveChild3,
/* 18371*/        OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/* 18374*/        OPC_MoveParent,
/* 18375*/        OPC_RecordChild4, // #3 = $mask
/* 18376*/        OPC_CheckChild4Type, MVT::v32i1,
/* 18378*/        OPC_Scope, 20, /*->18400*/ // 3 children in Scope
/* 18380*/          OPC_CheckPredicate, 27, // Predicate_masked_store
/* 18382*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/* 18384*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 18387*/          OPC_EmitMergeInputChains1_0,
/* 18388*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQU16Zmrk), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                    // Src: (masked_st VR512:{ *:[v32i16] }:$src, addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK32WM:{ *:[v32i1] }:$mask)<<P:Predicate_masked_store>> - Complexity = 25
                    // Dst: (VMOVDQU16Zmrk addr:{ *:[iPTR] }:$ptr, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src)
/* 18400*/        /*Scope*/ 22, /*->18423*/
/* 18401*/          OPC_CheckPredicate, 30, // Predicate_X86mtruncstore
/* 18403*/          OPC_CheckPredicate, 31, // Predicate_masked_truncstorevi8
/* 18405*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/* 18407*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/* 18410*/          OPC_EmitMergeInputChains1_0,
/* 18411*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVWBZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                    // Src: (masked_st VR512:{ *:[v32i16] }:$src, addr:{ *:[iPTR] }:$dst, (undef:{ *:[iPTR] }), VK32WM:{ *:[v32i1] }:$mask)<<P:Predicate_X86mtruncstore>><<P:Predicate_masked_truncstorevi8>> - Complexity = 25
                    // Dst: (VPMOVWBZmrk addr:{ *:[iPTR] }:$dst, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src)
/* 18423*/        /*Scope*/ 20, /*->18444*/
/* 18424*/          OPC_CheckPredicate, 29, // Predicate_X86mCompressingStore
/* 18426*/          OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/* 18428*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/* 18431*/          OPC_EmitMergeInputChains1_0,
/* 18432*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VPCOMPRESSWZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                    // Src: (masked_st VR512:{ *:[v32i16] }:$src, addr:{ *:[iPTR] }:$dst, (undef:{ *:[iPTR] }), VK32WM:{ *:[v32i1] }:$mask)<<P:Predicate_X86mCompressingStore>> - Complexity = 25
                    // Dst: (VPCOMPRESSWZmrk addr:{ *:[iPTR] }:$dst, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src)
/* 18444*/        0, /*End of Scope*/
/* 18445*/      /*Scope*/ 78, /*->18524*/
/* 18446*/        OPC_CheckChild1Type, MVT::v16i16,
/* 18448*/        OPC_RecordChild2, // #2 = $ptr
/* 18449*/        OPC_MoveChild3,
/* 18450*/        OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/* 18453*/        OPC_MoveParent,
/* 18454*/        OPC_RecordChild4, // #3 = $mask
/* 18455*/        OPC_CheckChild4Type, MVT::v16i1,
/* 18457*/        OPC_Scope, 20, /*->18479*/ // 3 children in Scope
/* 18459*/          OPC_CheckPredicate, 27, // Predicate_masked_store
/* 18461*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 18463*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 18466*/          OPC_EmitMergeInputChains1_0,
/* 18467*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQU16Z256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                    // Src: (masked_st VR256X:{ *:[v16i16] }:$src, addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK16WM:{ *:[v16i1] }:$mask)<<P:Predicate_masked_store>> - Complexity = 25
                    // Dst: (VMOVDQU16Z256mrk addr:{ *:[iPTR] }:$ptr, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src)
/* 18479*/        /*Scope*/ 22, /*->18502*/
/* 18480*/          OPC_CheckPredicate, 30, // Predicate_X86mtruncstore
/* 18482*/          OPC_CheckPredicate, 31, // Predicate_masked_truncstorevi8
/* 18484*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 18486*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/* 18489*/          OPC_EmitMergeInputChains1_0,
/* 18490*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVWBZ256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                    // Src: (masked_st VR256X:{ *:[v16i16] }:$src, addr:{ *:[iPTR] }:$dst, (undef:{ *:[iPTR] }), VK16WM:{ *:[v16i1] }:$mask)<<P:Predicate_X86mtruncstore>><<P:Predicate_masked_truncstorevi8>> - Complexity = 25
                    // Dst: (VPMOVWBZ256mrk addr:{ *:[iPTR] }:$dst, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src)
/* 18502*/        /*Scope*/ 20, /*->18523*/
/* 18503*/          OPC_CheckPredicate, 29, // Predicate_X86mCompressingStore
/* 18505*/          OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/* 18507*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/* 18510*/          OPC_EmitMergeInputChains1_0,
/* 18511*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VPCOMPRESSWZ256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                    // Src: (masked_st VR256X:{ *:[v16i16] }:$src, addr:{ *:[iPTR] }:$dst, (undef:{ *:[iPTR] }), VK16WM:{ *:[v16i1] }:$mask)<<P:Predicate_X86mCompressingStore>> - Complexity = 25
                    // Dst: (VPCOMPRESSWZ256mrk addr:{ *:[iPTR] }:$dst, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src)
/* 18523*/        0, /*End of Scope*/
/* 18524*/      /*Scope*/ 78, /*->18603*/
/* 18525*/        OPC_CheckChild1Type, MVT::v8i16,
/* 18527*/        OPC_RecordChild2, // #2 = $ptr
/* 18528*/        OPC_MoveChild3,
/* 18529*/        OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/* 18532*/        OPC_MoveParent,
/* 18533*/        OPC_RecordChild4, // #3 = $mask
/* 18534*/        OPC_CheckChild4Type, MVT::v8i1,
/* 18536*/        OPC_Scope, 20, /*->18558*/ // 3 children in Scope
/* 18538*/          OPC_CheckPredicate, 27, // Predicate_masked_store
/* 18540*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 18542*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$ptr #4 #5 #6 #7 #8
/* 18545*/          OPC_EmitMergeInputChains1_0,
/* 18546*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVDQU16Z128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                    // Src: (masked_st VR128X:{ *:[v8i16] }:$src, addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK8WM:{ *:[v8i1] }:$mask)<<P:Predicate_masked_store>> - Complexity = 25
                    // Dst: (VMOVDQU16Z128mrk addr:{ *:[iPTR] }:$ptr, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/* 18558*/        /*Scope*/ 22, /*->18581*/
/* 18559*/          OPC_CheckPredicate, 30, // Predicate_X86mtruncstore
/* 18561*/          OPC_CheckPredicate, 31, // Predicate_masked_truncstorevi8
/* 18563*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 18565*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/* 18568*/          OPC_EmitMergeInputChains1_0,
/* 18569*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVWBZ128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                    // Src: (masked_st VR128X:{ *:[v8i16] }:$src, addr:{ *:[iPTR] }:$dst, (undef:{ *:[iPTR] }), VK8WM:{ *:[v8i1] }:$mask)<<P:Predicate_X86mtruncstore>><<P:Predicate_masked_truncstorevi8>> - Complexity = 25
                    // Dst: (VPMOVWBZ128mrk addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/* 18581*/        /*Scope*/ 20, /*->18602*/
/* 18582*/          OPC_CheckPredicate, 29, // Predicate_X86mCompressingStore
/* 18584*/          OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/* 18586*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/* 18589*/          OPC_EmitMergeInputChains1_0,
/* 18590*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VPCOMPRESSWZ128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                        7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                    // Src: (masked_st VR128X:{ *:[v8i16] }:$src, addr:{ *:[iPTR] }:$dst, (undef:{ *:[iPTR] }), VK8WM:{ *:[v8i1] }:$mask)<<P:Predicate_X86mCompressingStore>> - Complexity = 25
                    // Dst: (VPCOMPRESSWZ128mrk addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/* 18602*/        0, /*End of Scope*/
/* 18603*/      0, /*End of Scope*/
/* 18604*/    0, /*End of Scope*/
/* 18605*/  /*SwitchOpcode*/ 98|128,21/*2786*/, TARGET_VAL(ISD::ATOMIC_STORE),// ->21395
/* 18609*/    OPC_RecordMemRef,
/* 18610*/    OPC_RecordNode, // #0 = 'atomic_store' chained node
/* 18611*/    OPC_RecordChild1, // #1 = $dst
/* 18612*/    OPC_Scope, 30|128,19/*2462*/, /*->21077*/ // 4 children in Scope
/* 18615*/      OPC_MoveChild2,
/* 18616*/      OPC_SwitchOpcode /*5 cases */, 46|128,5/*686*/, TARGET_VAL(ISD::ADD),// ->19307
/* 18621*/        OPC_Scope, 45|128,4/*557*/, /*->19181*/ // 2 children in Scope
/* 18624*/          OPC_MoveChild0,
/* 18625*/          OPC_CheckOpcode, TARGET_VAL(ISD::ATOMIC_LOAD),
/* 18628*/          OPC_RecordMemRef,
/* 18629*/          OPC_RecordNode, // #2 = 'atomic_load' chained node
/* 18630*/          OPC_CheckFoldableChainNode,
/* 18631*/          OPC_CheckChild1Same, 1,
/* 18633*/          OPC_Scope, 30, /*->18665*/ // 15 children in Scope
/* 18635*/            OPC_CheckPredicate, 34, // Predicate_atomic_load_8
/* 18637*/            OPC_MoveParent,
/* 18638*/            OPC_CheckChild1Integer, 1, 
/* 18640*/            OPC_CheckType, MVT::i8,
/* 18642*/            OPC_MoveParent,
/* 18643*/            OPC_CheckPredicate, 34, // Predicate_atomic_store_8
/* 18645*/            OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || shouldOptForSize(MF))
/* 18647*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 18650*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 18654*/            OPC_MorphNodeTo1, TARGET_VAL(X86::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: (INC8m:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/* 18665*/          /*Scope*/ 30, /*->18696*/
/* 18666*/            OPC_CheckPredicate, 35, // Predicate_atomic_load_16
/* 18668*/            OPC_MoveParent,
/* 18669*/            OPC_CheckChild1Integer, 1, 
/* 18671*/            OPC_CheckType, MVT::i16,
/* 18673*/            OPC_MoveParent,
/* 18674*/            OPC_CheckPredicate, 35, // Predicate_atomic_store_16
/* 18676*/            OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || shouldOptForSize(MF))
/* 18678*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 18681*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 18685*/            OPC_MorphNodeTo1, TARGET_VAL(X86::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: (INC16m:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/* 18696*/          /*Scope*/ 30, /*->18727*/
/* 18697*/            OPC_CheckPredicate, 36, // Predicate_atomic_load_32
/* 18699*/            OPC_MoveParent,
/* 18700*/            OPC_CheckChild1Integer, 1, 
/* 18702*/            OPC_CheckType, MVT::i32,
/* 18704*/            OPC_MoveParent,
/* 18705*/            OPC_CheckPredicate, 36, // Predicate_atomic_store_32
/* 18707*/            OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || shouldOptForSize(MF))
/* 18709*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 18712*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 18716*/            OPC_MorphNodeTo1, TARGET_VAL(X86::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: (INC32m:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/* 18727*/          /*Scope*/ 30, /*->18758*/
/* 18728*/            OPC_CheckPredicate, 37, // Predicate_atomic_load_64
/* 18730*/            OPC_MoveParent,
/* 18731*/            OPC_CheckChild1Integer, 1, 
/* 18733*/            OPC_CheckType, MVT::i64,
/* 18735*/            OPC_MoveParent,
/* 18736*/            OPC_CheckPredicate, 37, // Predicate_atomic_store_64
/* 18738*/            OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || shouldOptForSize(MF))
/* 18740*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 18743*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 18747*/            OPC_MorphNodeTo1, TARGET_VAL(X86::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: (INC64m:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/* 18758*/          /*Scope*/ 39, /*->18798*/
/* 18759*/            OPC_CheckPredicate, 34, // Predicate_atomic_load_8
/* 18761*/            OPC_MoveParent,
/* 18762*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 18773*/            OPC_CheckType, MVT::i8,
/* 18775*/            OPC_MoveParent,
/* 18776*/            OPC_CheckPredicate, 34, // Predicate_atomic_store_8
/* 18778*/            OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || shouldOptForSize(MF))
/* 18780*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 18783*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 18787*/            OPC_MorphNodeTo1, TARGET_VAL(X86::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: (DEC8m:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/* 18798*/          /*Scope*/ 39, /*->18838*/
/* 18799*/            OPC_CheckPredicate, 35, // Predicate_atomic_load_16
/* 18801*/            OPC_MoveParent,
/* 18802*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 18813*/            OPC_CheckType, MVT::i16,
/* 18815*/            OPC_MoveParent,
/* 18816*/            OPC_CheckPredicate, 35, // Predicate_atomic_store_16
/* 18818*/            OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || shouldOptForSize(MF))
/* 18820*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 18823*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 18827*/            OPC_MorphNodeTo1, TARGET_VAL(X86::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: (DEC16m:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/* 18838*/          /*Scope*/ 39, /*->18878*/
/* 18839*/            OPC_CheckPredicate, 36, // Predicate_atomic_load_32
/* 18841*/            OPC_MoveParent,
/* 18842*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 18853*/            OPC_CheckType, MVT::i32,
/* 18855*/            OPC_MoveParent,
/* 18856*/            OPC_CheckPredicate, 36, // Predicate_atomic_store_32
/* 18858*/            OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || shouldOptForSize(MF))
/* 18860*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 18863*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 18867*/            OPC_MorphNodeTo1, TARGET_VAL(X86::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: (DEC32m:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/* 18878*/          /*Scope*/ 77, /*->18956*/
/* 18879*/            OPC_CheckPredicate, 37, // Predicate_atomic_load_64
/* 18881*/            OPC_MoveParent,
/* 18882*/            OPC_Scope, 36, /*->18920*/ // 2 children in Scope
/* 18884*/              OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 18895*/              OPC_CheckType, MVT::i64,
/* 18897*/              OPC_MoveParent,
/* 18898*/              OPC_CheckPredicate, 37, // Predicate_atomic_store_64
/* 18900*/              OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || shouldOptForSize(MF))
/* 18902*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 18905*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/* 18909*/              OPC_MorphNodeTo1, TARGET_VAL(X86::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: (DEC64m:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/* 18920*/            /*Scope*/ 34, /*->18955*/
/* 18921*/              OPC_RecordChild1, // #3 = $src
/* 18922*/              OPC_MoveChild1,
/* 18923*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 18926*/              OPC_CheckPredicate, 38, // Predicate_i64immSExt32
/* 18928*/              OPC_MoveParent,
/* 18929*/              OPC_CheckType, MVT::i64,
/* 18931*/              OPC_MoveParent,
/* 18932*/              OPC_CheckPredicate, 37, // Predicate_atomic_store_64
/* 18934*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 18937*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/* 18941*/              OPC_EmitConvertToTarget, 3,
/* 18943*/              OPC_MorphNodeTo1, TARGET_VAL(X86::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: (ADD64mi32:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>>:$src)
/* 18955*/            0, /*End of Scope*/
/* 18956*/          /*Scope*/ 35, /*->18992*/
/* 18957*/            OPC_CheckPredicate, 34, // Predicate_atomic_load_8
/* 18959*/            OPC_MoveParent,
/* 18960*/            OPC_RecordChild1, // #3 = $src
/* 18961*/            OPC_MoveChild1,
/* 18962*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 18965*/            OPC_MoveParent,
/* 18966*/            OPC_CheckType, MVT::i8,
/* 18968*/            OPC_MoveParent,
/* 18969*/            OPC_CheckPredicate, 34, // Predicate_atomic_store_8
/* 18971*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 18974*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 18978*/            OPC_EmitConvertToTarget, 3,
/* 18980*/            OPC_MorphNodeTo1, TARGET_VAL(X86::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: (ADD8mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i8] }):$src)
/* 18992*/          /*Scope*/ 35, /*->19028*/
/* 18993*/            OPC_CheckPredicate, 35, // Predicate_atomic_load_16
/* 18995*/            OPC_MoveParent,
/* 18996*/            OPC_RecordChild1, // #3 = $src
/* 18997*/            OPC_MoveChild1,
/* 18998*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 19001*/            OPC_MoveParent,
/* 19002*/            OPC_CheckType, MVT::i16,
/* 19004*/            OPC_MoveParent,
/* 19005*/            OPC_CheckPredicate, 35, // Predicate_atomic_store_16
/* 19007*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 19010*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 19014*/            OPC_EmitConvertToTarget, 3,
/* 19016*/            OPC_MorphNodeTo1, TARGET_VAL(X86::ADD16mi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (add:{ *:[i16] } (atomic_load:{ *:[i16] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_16>>, (imm:{ *:[i16] }):$src))<<P:Predicate_atomic_store_16>> - Complexity = 50
                      // Dst: (ADD16mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i16] }):$src)
/* 19028*/          /*Scope*/ 35, /*->19064*/
/* 19029*/            OPC_CheckPredicate, 36, // Predicate_atomic_load_32
/* 19031*/            OPC_MoveParent,
/* 19032*/            OPC_RecordChild1, // #3 = $src
/* 19033*/            OPC_MoveChild1,
/* 19034*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 19037*/            OPC_MoveParent,
/* 19038*/            OPC_CheckType, MVT::i32,
/* 19040*/            OPC_MoveParent,
/* 19041*/            OPC_CheckPredicate, 36, // Predicate_atomic_store_32
/* 19043*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 19046*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 19050*/            OPC_EmitConvertToTarget, 3,
/* 19052*/            OPC_MorphNodeTo1, TARGET_VAL(X86::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: (ADD32mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i32] }):$src)
/* 19064*/          /*Scope*/ 28, /*->19093*/
/* 19065*/            OPC_CheckPredicate, 34, // Predicate_atomic_load_8
/* 19067*/            OPC_MoveParent,
/* 19068*/            OPC_RecordChild1, // #3 = $src
/* 19069*/            OPC_CheckType, MVT::i8,
/* 19071*/            OPC_MoveParent,
/* 19072*/            OPC_CheckPredicate, 34, // Predicate_atomic_store_8
/* 19074*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 19077*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 19081*/            OPC_MorphNodeTo1, TARGET_VAL(X86::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: (ADD8mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR8:{ *:[i8] }:$src)
/* 19093*/          /*Scope*/ 28, /*->19122*/
/* 19094*/            OPC_CheckPredicate, 35, // Predicate_atomic_load_16
/* 19096*/            OPC_MoveParent,
/* 19097*/            OPC_RecordChild1, // #3 = $src
/* 19098*/            OPC_CheckType, MVT::i16,
/* 19100*/            OPC_MoveParent,
/* 19101*/            OPC_CheckPredicate, 35, // Predicate_atomic_store_16
/* 19103*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 19106*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 19110*/            OPC_MorphNodeTo1, TARGET_VAL(X86::ADD16mr), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (add:{ *:[i16] } (atomic_load:{ *:[i16] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_16>>, GR16:{ *:[i16] }:$src))<<P:Predicate_atomic_store_16>> - Complexity = 47
                      // Dst: (ADD16mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR16:{ *:[i16] }:$src)
/* 19122*/          /*Scope*/ 28, /*->19151*/
/* 19123*/            OPC_CheckPredicate, 36, // Predicate_atomic_load_32
/* 19125*/            OPC_MoveParent,
/* 19126*/            OPC_RecordChild1, // #3 = $src
/* 19127*/            OPC_CheckType, MVT::i32,
/* 19129*/            OPC_MoveParent,
/* 19130*/            OPC_CheckPredicate, 36, // Predicate_atomic_store_32
/* 19132*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 19135*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 19139*/            OPC_MorphNodeTo1, TARGET_VAL(X86::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: (ADD32mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR32:{ *:[i32] }:$src)
/* 19151*/          /*Scope*/ 28, /*->19180*/
/* 19152*/            OPC_CheckPredicate, 37, // Predicate_atomic_load_64
/* 19154*/            OPC_MoveParent,
/* 19155*/            OPC_RecordChild1, // #3 = $src
/* 19156*/            OPC_CheckType, MVT::i64,
/* 19158*/            OPC_MoveParent,
/* 19159*/            OPC_CheckPredicate, 37, // Predicate_atomic_store_64
/* 19161*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 19164*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 19168*/            OPC_MorphNodeTo1, TARGET_VAL(X86::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: (ADD64mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR64:{ *:[i64] }:$src)
/* 19180*/          0, /*End of Scope*/
/* 19181*/        /*Scope*/ 124, /*->19306*/
/* 19182*/          OPC_RecordChild0, // #2 = $src
/* 19183*/          OPC_MoveChild1,
/* 19184*/          OPC_CheckOpcode, TARGET_VAL(ISD::ATOMIC_LOAD),
/* 19187*/          OPC_RecordMemRef,
/* 19188*/          OPC_RecordNode, // #3 = 'atomic_load' chained node
/* 19189*/          OPC_CheckFoldableChainNode,
/* 19190*/          OPC_CheckChild1Same, 1,
/* 19192*/          OPC_Scope, 27, /*->19221*/ // 4 children in Scope
/* 19194*/            OPC_CheckPredicate, 34, // Predicate_atomic_load_8
/* 19196*/            OPC_MoveParent,
/* 19197*/            OPC_CheckType, MVT::i8,
/* 19199*/            OPC_MoveParent,
/* 19200*/            OPC_CheckPredicate, 34, // Predicate_atomic_store_8
/* 19202*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 19205*/            OPC_EmitMergeInputChains, 2, 0, 3, 
/* 19209*/            OPC_MorphNodeTo1, TARGET_VAL(X86::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: (ADD8mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR8:{ *:[i8] }:$src)
/* 19221*/          /*Scope*/ 27, /*->19249*/
/* 19222*/            OPC_CheckPredicate, 35, // Predicate_atomic_load_16
/* 19224*/            OPC_MoveParent,
/* 19225*/            OPC_CheckType, MVT::i16,
/* 19227*/            OPC_MoveParent,
/* 19228*/            OPC_CheckPredicate, 35, // Predicate_atomic_store_16
/* 19230*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 19233*/            OPC_EmitMergeInputChains, 2, 0, 3, 
/* 19237*/            OPC_MorphNodeTo1, TARGET_VAL(X86::ADD16mr), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 2, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (add:{ *:[i16] } GR16:{ *:[i16] }:$src, (atomic_load:{ *:[i16] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_16>>))<<P:Predicate_atomic_store_16>> - Complexity = 47
                      // Dst: (ADD16mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR16:{ *:[i16] }:$src)
/* 19249*/          /*Scope*/ 27, /*->19277*/
/* 19250*/            OPC_CheckPredicate, 36, // Predicate_atomic_load_32
/* 19252*/            OPC_MoveParent,
/* 19253*/            OPC_CheckType, MVT::i32,
/* 19255*/            OPC_MoveParent,
/* 19256*/            OPC_CheckPredicate, 36, // Predicate_atomic_store_32
/* 19258*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 19261*/            OPC_EmitMergeInputChains, 2, 0, 3, 
/* 19265*/            OPC_MorphNodeTo1, TARGET_VAL(X86::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: (ADD32mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR32:{ *:[i32] }:$src)
/* 19277*/          /*Scope*/ 27, /*->19305*/
/* 19278*/            OPC_CheckPredicate, 37, // Predicate_atomic_load_64
/* 19280*/            OPC_MoveParent,
/* 19281*/            OPC_CheckType, MVT::i64,
/* 19283*/            OPC_MoveParent,
/* 19284*/            OPC_CheckPredicate, 37, // Predicate_atomic_store_64
/* 19286*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 19289*/            OPC_EmitMergeInputChains, 2, 0, 3, 
/* 19293*/            OPC_MorphNodeTo1, TARGET_VAL(X86::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: (ADD64mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR64:{ *:[i64] }:$src)
/* 19305*/          0, /*End of Scope*/
/* 19306*/        0, /*End of Scope*/
/* 19307*/      /*SwitchOpcode*/ 15|128,3/*399*/, TARGET_VAL(ISD::SUB),// ->19710
/* 19311*/        OPC_Scope, 121, /*->19434*/ // 2 children in Scope
/* 19313*/          OPC_CheckChild0Integer, 0, 
/* 19315*/          OPC_MoveChild1,
/* 19316*/          OPC_CheckOpcode, TARGET_VAL(ISD::ATOMIC_LOAD),
/* 19319*/          OPC_RecordMemRef,
/* 19320*/          OPC_RecordNode, // #2 = 'atomic_load' chained node
/* 19321*/          OPC_CheckFoldableChainNode,
/* 19322*/          OPC_CheckChild1Same, 1,
/* 19324*/          OPC_Scope, 26, /*->19352*/ // 4 children in Scope
/* 19326*/            OPC_CheckPredicate, 34, // Predicate_atomic_load_8
/* 19328*/            OPC_MoveParent,
/* 19329*/            OPC_CheckType, MVT::i8,
/* 19331*/            OPC_MoveParent,
/* 19332*/            OPC_CheckPredicate, 34, // Predicate_atomic_store_8
/* 19334*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 19337*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 19341*/            OPC_MorphNodeTo1, TARGET_VAL(X86::NEG8m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (sub:{ *:[i8] } 0:{ *:[i8] }, (atomic_load:{ *:[i8] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_8>>))<<P:Predicate_atomic_store_8>> - Complexity = 52
                      // Dst: (NEG8m:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/* 19352*/          /*Scope*/ 26, /*->19379*/
/* 19353*/            OPC_CheckPredicate, 35, // Predicate_atomic_load_16
/* 19355*/            OPC_MoveParent,
/* 19356*/            OPC_CheckType, MVT::i16,
/* 19358*/            OPC_MoveParent,
/* 19359*/            OPC_CheckPredicate, 35, // Predicate_atomic_store_16
/* 19361*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 19364*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 19368*/            OPC_MorphNodeTo1, TARGET_VAL(X86::NEG16m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (sub:{ *:[i16] } 0:{ *:[i16] }, (atomic_load:{ *:[i16] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_16>>))<<P:Predicate_atomic_store_16>> - Complexity = 52
                      // Dst: (NEG16m:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/* 19379*/          /*Scope*/ 26, /*->19406*/
/* 19380*/            OPC_CheckPredicate, 36, // Predicate_atomic_load_32
/* 19382*/            OPC_MoveParent,
/* 19383*/            OPC_CheckType, MVT::i32,
/* 19385*/            OPC_MoveParent,
/* 19386*/            OPC_CheckPredicate, 36, // Predicate_atomic_store_32
/* 19388*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 19391*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 19395*/            OPC_MorphNodeTo1, TARGET_VAL(X86::NEG32m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (sub:{ *:[i32] } 0:{ *:[i32] }, (atomic_load:{ *:[i32] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_32>>))<<P:Predicate_atomic_store_32>> - Complexity = 52
                      // Dst: (NEG32m:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/* 19406*/          /*Scope*/ 26, /*->19433*/
/* 19407*/            OPC_CheckPredicate, 37, // Predicate_atomic_load_64
/* 19409*/            OPC_MoveParent,
/* 19410*/            OPC_CheckType, MVT::i64,
/* 19412*/            OPC_MoveParent,
/* 19413*/            OPC_CheckPredicate, 37, // Predicate_atomic_store_64
/* 19415*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 19418*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 19422*/            OPC_MorphNodeTo1, TARGET_VAL(X86::NEG64m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (sub:{ *:[i64] } 0:{ *:[i64] }, (atomic_load:{ *:[i64] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_64>>))<<P:Predicate_atomic_store_64>> - Complexity = 52
                      // Dst: (NEG64m:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/* 19433*/          0, /*End of Scope*/
/* 19434*/        /*Scope*/ 17|128,2/*273*/, /*->19709*/
/* 19436*/          OPC_MoveChild0,
/* 19437*/          OPC_CheckOpcode, TARGET_VAL(ISD::ATOMIC_LOAD),
/* 19440*/          OPC_RecordMemRef,
/* 19441*/          OPC_RecordNode, // #2 = 'atomic_load' chained node
/* 19442*/          OPC_CheckFoldableChainNode,
/* 19443*/          OPC_CheckChild1Same, 1,
/* 19445*/          OPC_Scope, 37, /*->19484*/ // 8 children in Scope
/* 19447*/            OPC_CheckPredicate, 37, // Predicate_atomic_load_64
/* 19449*/            OPC_MoveParent,
/* 19450*/            OPC_RecordChild1, // #3 = $src
/* 19451*/            OPC_MoveChild1,
/* 19452*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 19455*/            OPC_CheckPredicate, 38, // Predicate_i64immSExt32
/* 19457*/            OPC_MoveParent,
/* 19458*/            OPC_CheckType, MVT::i64,
/* 19460*/            OPC_MoveParent,
/* 19461*/            OPC_CheckPredicate, 37, // Predicate_atomic_store_64
/* 19463*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 19466*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 19470*/            OPC_EmitConvertToTarget, 3,
/* 19472*/            OPC_MorphNodeTo1, TARGET_VAL(X86::SUB64mi32), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (sub:{ *:[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: (SUB64mi32:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>>:$src)
/* 19484*/          /*Scope*/ 35, /*->19520*/
/* 19485*/            OPC_CheckPredicate, 34, // Predicate_atomic_load_8
/* 19487*/            OPC_MoveParent,
/* 19488*/            OPC_RecordChild1, // #3 = $src
/* 19489*/            OPC_MoveChild1,
/* 19490*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 19493*/            OPC_MoveParent,
/* 19494*/            OPC_CheckType, MVT::i8,
/* 19496*/            OPC_MoveParent,
/* 19497*/            OPC_CheckPredicate, 34, // Predicate_atomic_store_8
/* 19499*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 19502*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 19506*/            OPC_EmitConvertToTarget, 3,
/* 19508*/            OPC_MorphNodeTo1, TARGET_VAL(X86::SUB8mi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (sub:{ *:[i8] } (atomic_load:{ *:[i8] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_8>>, (imm:{ *:[i8] }):$src))<<P:Predicate_atomic_store_8>> - Complexity = 50
                      // Dst: (SUB8mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i8] }):$src)
/* 19520*/          /*Scope*/ 35, /*->19556*/
/* 19521*/            OPC_CheckPredicate, 35, // Predicate_atomic_load_16
/* 19523*/            OPC_MoveParent,
/* 19524*/            OPC_RecordChild1, // #3 = $src
/* 19525*/            OPC_MoveChild1,
/* 19526*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 19529*/            OPC_MoveParent,
/* 19530*/            OPC_CheckType, MVT::i16,
/* 19532*/            OPC_MoveParent,
/* 19533*/            OPC_CheckPredicate, 35, // Predicate_atomic_store_16
/* 19535*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 19538*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 19542*/            OPC_EmitConvertToTarget, 3,
/* 19544*/            OPC_MorphNodeTo1, TARGET_VAL(X86::SUB16mi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (sub:{ *:[i16] } (atomic_load:{ *:[i16] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_16>>, (imm:{ *:[i16] }):$src))<<P:Predicate_atomic_store_16>> - Complexity = 50
                      // Dst: (SUB16mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i16] }):$src)
/* 19556*/          /*Scope*/ 35, /*->19592*/
/* 19557*/            OPC_CheckPredicate, 36, // Predicate_atomic_load_32
/* 19559*/            OPC_MoveParent,
/* 19560*/            OPC_RecordChild1, // #3 = $src
/* 19561*/            OPC_MoveChild1,
/* 19562*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 19565*/            OPC_MoveParent,
/* 19566*/            OPC_CheckType, MVT::i32,
/* 19568*/            OPC_MoveParent,
/* 19569*/            OPC_CheckPredicate, 36, // Predicate_atomic_store_32
/* 19571*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 19574*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 19578*/            OPC_EmitConvertToTarget, 3,
/* 19580*/            OPC_MorphNodeTo1, TARGET_VAL(X86::SUB32mi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (sub:{ *:[i32] } (atomic_load:{ *:[i32] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_32>>, (imm:{ *:[i32] }):$src))<<P:Predicate_atomic_store_32>> - Complexity = 50
                      // Dst: (SUB32mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i32] }):$src)
/* 19592*/          /*Scope*/ 28, /*->19621*/
/* 19593*/            OPC_CheckPredicate, 34, // Predicate_atomic_load_8
/* 19595*/            OPC_MoveParent,
/* 19596*/            OPC_RecordChild1, // #3 = $src
/* 19597*/            OPC_CheckType, MVT::i8,
/* 19599*/            OPC_MoveParent,
/* 19600*/            OPC_CheckPredicate, 34, // Predicate_atomic_store_8
/* 19602*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 19605*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 19609*/            OPC_MorphNodeTo1, TARGET_VAL(X86::SUB8mr), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (sub:{ *:[i8] } (atomic_load:{ *:[i8] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_8>>, GR8:{ *:[i8] }:$src))<<P:Predicate_atomic_store_8>> - Complexity = 47
                      // Dst: (SUB8mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR8:{ *:[i8] }:$src)
/* 19621*/          /*Scope*/ 28, /*->19650*/
/* 19622*/            OPC_CheckPredicate, 35, // Predicate_atomic_load_16
/* 19624*/            OPC_MoveParent,
/* 19625*/            OPC_RecordChild1, // #3 = $src
/* 19626*/            OPC_CheckType, MVT::i16,
/* 19628*/            OPC_MoveParent,
/* 19629*/            OPC_CheckPredicate, 35, // Predicate_atomic_store_16
/* 19631*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 19634*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 19638*/            OPC_MorphNodeTo1, TARGET_VAL(X86::SUB16mr), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (sub:{ *:[i16] } (atomic_load:{ *:[i16] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_16>>, GR16:{ *:[i16] }:$src))<<P:Predicate_atomic_store_16>> - Complexity = 47
                      // Dst: (SUB16mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR16:{ *:[i16] }:$src)
/* 19650*/          /*Scope*/ 28, /*->19679*/
/* 19651*/            OPC_CheckPredicate, 36, // Predicate_atomic_load_32
/* 19653*/            OPC_MoveParent,
/* 19654*/            OPC_RecordChild1, // #3 = $src
/* 19655*/            OPC_CheckType, MVT::i32,
/* 19657*/            OPC_MoveParent,
/* 19658*/            OPC_CheckPredicate, 36, // Predicate_atomic_store_32
/* 19660*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 19663*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 19667*/            OPC_MorphNodeTo1, TARGET_VAL(X86::SUB32mr), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (sub:{ *:[i32] } (atomic_load:{ *:[i32] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_32>>, GR32:{ *:[i32] }:$src))<<P:Predicate_atomic_store_32>> - Complexity = 47
                      // Dst: (SUB32mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR32:{ *:[i32] }:$src)
/* 19679*/          /*Scope*/ 28, /*->19708*/
/* 19680*/            OPC_CheckPredicate, 37, // Predicate_atomic_load_64
/* 19682*/            OPC_MoveParent,
/* 19683*/            OPC_RecordChild1, // #3 = $src
/* 19684*/            OPC_CheckType, MVT::i64,
/* 19686*/            OPC_MoveParent,
/* 19687*/            OPC_CheckPredicate, 37, // Predicate_atomic_store_64
/* 19689*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 19692*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 19696*/            OPC_MorphNodeTo1, TARGET_VAL(X86::SUB64mr), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (sub:{ *:[i64] } (atomic_load:{ *:[i64] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_64>>, GR64:{ *:[i64] }:$src))<<P:Predicate_atomic_store_64>> - Complexity = 47
                      // Dst: (SUB64mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR64:{ *:[i64] }:$src)
/* 19708*/          0, /*End of Scope*/
/* 19709*/        0, /*End of Scope*/
/* 19710*/      /*SwitchOpcode*/ 38|128,4/*550*/, TARGET_VAL(ISD::XOR),// ->20264
/* 19714*/        OPC_Scope, 37|128,3/*421*/, /*->20138*/ // 2 children in Scope
/* 19717*/          OPC_MoveChild0,
/* 19718*/          OPC_CheckOpcode, TARGET_VAL(ISD::ATOMIC_LOAD),
/* 19721*/          OPC_RecordMemRef,
/* 19722*/          OPC_RecordNode, // #2 = 'atomic_load' chained node
/* 19723*/          OPC_CheckFoldableChainNode,
/* 19724*/          OPC_CheckChild1Same, 1,
/* 19726*/          OPC_Scope, 36, /*->19764*/ // 11 children in Scope
/* 19728*/            OPC_CheckPredicate, 34, // Predicate_atomic_load_8
/* 19730*/            OPC_MoveParent,
/* 19731*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 19742*/            OPC_CheckType, MVT::i8,
/* 19744*/            OPC_MoveParent,
/* 19745*/            OPC_CheckPredicate, 34, // Predicate_atomic_store_8
/* 19747*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 19750*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 19754*/            OPC_MorphNodeTo0, TARGET_VAL(X86::NOT8m), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (xor:{ *:[i8] } (atomic_load:{ *:[i8] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_8>>, -1:{ *:[i8] }))<<P:Predicate_atomic_store_8>> - Complexity = 52
                      // Dst: (NOT8m addr:{ *:[iPTR] }:$dst)
/* 19764*/          /*Scope*/ 36, /*->19801*/
/* 19765*/            OPC_CheckPredicate, 35, // Predicate_atomic_load_16
/* 19767*/            OPC_MoveParent,
/* 19768*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 19779*/            OPC_CheckType, MVT::i16,
/* 19781*/            OPC_MoveParent,
/* 19782*/            OPC_CheckPredicate, 35, // Predicate_atomic_store_16
/* 19784*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 19787*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 19791*/            OPC_MorphNodeTo0, TARGET_VAL(X86::NOT16m), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (xor:{ *:[i16] } (atomic_load:{ *:[i16] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_16>>, -1:{ *:[i16] }))<<P:Predicate_atomic_store_16>> - Complexity = 52
                      // Dst: (NOT16m addr:{ *:[iPTR] }:$dst)
/* 19801*/          /*Scope*/ 36, /*->19838*/
/* 19802*/            OPC_CheckPredicate, 36, // Predicate_atomic_load_32
/* 19804*/            OPC_MoveParent,
/* 19805*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 19816*/            OPC_CheckType, MVT::i32,
/* 19818*/            OPC_MoveParent,
/* 19819*/            OPC_CheckPredicate, 36, // Predicate_atomic_store_32
/* 19821*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 19824*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 19828*/            OPC_MorphNodeTo0, TARGET_VAL(X86::NOT32m), 0|OPFL_Chain|OPFL_MemRefs,
                          5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (xor:{ *:[i32] } (atomic_load:{ *:[i32] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_32>>, -1:{ *:[i32] }))<<P:Predicate_atomic_store_32>> - Complexity = 52
                      // Dst: (NOT32m addr:{ *:[iPTR] }:$dst)
/* 19838*/          /*Scope*/ 74, /*->19913*/
/* 19839*/            OPC_CheckPredicate, 37, // Predicate_atomic_load_64
/* 19841*/            OPC_MoveParent,
/* 19842*/            OPC_Scope, 33, /*->19877*/ // 2 children in Scope
/* 19844*/              OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 19855*/              OPC_CheckType, MVT::i64,
/* 19857*/              OPC_MoveParent,
/* 19858*/              OPC_CheckPredicate, 37, // Predicate_atomic_store_64
/* 19860*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 19863*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/* 19867*/              OPC_MorphNodeTo0, TARGET_VAL(X86::NOT64m), 0|OPFL_Chain|OPFL_MemRefs,
                            5/*#Ops*/, 3, 4, 5, 6, 7, 
                        // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (xor:{ *:[i64] } (atomic_load:{ *:[i64] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_64>>, -1:{ *:[i64] }))<<P:Predicate_atomic_store_64>> - Complexity = 52
                        // Dst: (NOT64m addr:{ *:[iPTR] }:$dst)
/* 19877*/            /*Scope*/ 34, /*->19912*/
/* 19878*/              OPC_RecordChild1, // #3 = $src
/* 19879*/              OPC_MoveChild1,
/* 19880*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 19883*/              OPC_CheckPredicate, 38, // Predicate_i64immSExt32
/* 19885*/              OPC_MoveParent,
/* 19886*/              OPC_CheckType, MVT::i64,
/* 19888*/              OPC_MoveParent,
/* 19889*/              OPC_CheckPredicate, 37, // Predicate_atomic_store_64
/* 19891*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 19894*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/* 19898*/              OPC_EmitConvertToTarget, 3,
/* 19900*/              OPC_MorphNodeTo1, TARGET_VAL(X86::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: (XOR64mi32:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>>:$src)
/* 19912*/            0, /*End of Scope*/
/* 19913*/          /*Scope*/ 35, /*->19949*/
/* 19914*/            OPC_CheckPredicate, 34, // Predicate_atomic_load_8
/* 19916*/            OPC_MoveParent,
/* 19917*/            OPC_RecordChild1, // #3 = $src
/* 19918*/            OPC_MoveChild1,
/* 19919*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 19922*/            OPC_MoveParent,
/* 19923*/            OPC_CheckType, MVT::i8,
/* 19925*/            OPC_MoveParent,
/* 19926*/            OPC_CheckPredicate, 34, // Predicate_atomic_store_8
/* 19928*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 19931*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 19935*/            OPC_EmitConvertToTarget, 3,
/* 19937*/            OPC_MorphNodeTo1, TARGET_VAL(X86::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: (XOR8mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i8] }):$src)
/* 19949*/          /*Scope*/ 35, /*->19985*/
/* 19950*/            OPC_CheckPredicate, 35, // Predicate_atomic_load_16
/* 19952*/            OPC_MoveParent,
/* 19953*/            OPC_RecordChild1, // #3 = $src
/* 19954*/            OPC_MoveChild1,
/* 19955*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 19958*/            OPC_MoveParent,
/* 19959*/            OPC_CheckType, MVT::i16,
/* 19961*/            OPC_MoveParent,
/* 19962*/            OPC_CheckPredicate, 35, // Predicate_atomic_store_16
/* 19964*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 19967*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 19971*/            OPC_EmitConvertToTarget, 3,
/* 19973*/            OPC_MorphNodeTo1, TARGET_VAL(X86::XOR16mi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (xor:{ *:[i16] } (atomic_load:{ *:[i16] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_16>>, (imm:{ *:[i16] }):$src))<<P:Predicate_atomic_store_16>> - Complexity = 50
                      // Dst: (XOR16mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i16] }):$src)
/* 19985*/          /*Scope*/ 35, /*->20021*/
/* 19986*/            OPC_CheckPredicate, 36, // Predicate_atomic_load_32
/* 19988*/            OPC_MoveParent,
/* 19989*/            OPC_RecordChild1, // #3 = $src
/* 19990*/            OPC_MoveChild1,
/* 19991*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 19994*/            OPC_MoveParent,
/* 19995*/            OPC_CheckType, MVT::i32,
/* 19997*/            OPC_MoveParent,
/* 19998*/            OPC_CheckPredicate, 36, // Predicate_atomic_store_32
/* 20000*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 20003*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 20007*/            OPC_EmitConvertToTarget, 3,
/* 20009*/            OPC_MorphNodeTo1, TARGET_VAL(X86::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: (XOR32mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i32] }):$src)
/* 20021*/          /*Scope*/ 28, /*->20050*/
/* 20022*/            OPC_CheckPredicate, 34, // Predicate_atomic_load_8
/* 20024*/            OPC_MoveParent,
/* 20025*/            OPC_RecordChild1, // #3 = $src
/* 20026*/            OPC_CheckType, MVT::i8,
/* 20028*/            OPC_MoveParent,
/* 20029*/            OPC_CheckPredicate, 34, // Predicate_atomic_store_8
/* 20031*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 20034*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 20038*/            OPC_MorphNodeTo1, TARGET_VAL(X86::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: (XOR8mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR8:{ *:[i8] }:$src)
/* 20050*/          /*Scope*/ 28, /*->20079*/
/* 20051*/            OPC_CheckPredicate, 35, // Predicate_atomic_load_16
/* 20053*/            OPC_MoveParent,
/* 20054*/            OPC_RecordChild1, // #3 = $src
/* 20055*/            OPC_CheckType, MVT::i16,
/* 20057*/            OPC_MoveParent,
/* 20058*/            OPC_CheckPredicate, 35, // Predicate_atomic_store_16
/* 20060*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 20063*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 20067*/            OPC_MorphNodeTo1, TARGET_VAL(X86::XOR16mr), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (xor:{ *:[i16] } (atomic_load:{ *:[i16] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_16>>, GR16:{ *:[i16] }:$src))<<P:Predicate_atomic_store_16>> - Complexity = 47
                      // Dst: (XOR16mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR16:{ *:[i16] }:$src)
/* 20079*/          /*Scope*/ 28, /*->20108*/
/* 20080*/            OPC_CheckPredicate, 36, // Predicate_atomic_load_32
/* 20082*/            OPC_MoveParent,
/* 20083*/            OPC_RecordChild1, // #3 = $src
/* 20084*/            OPC_CheckType, MVT::i32,
/* 20086*/            OPC_MoveParent,
/* 20087*/            OPC_CheckPredicate, 36, // Predicate_atomic_store_32
/* 20089*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 20092*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 20096*/            OPC_MorphNodeTo1, TARGET_VAL(X86::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: (XOR32mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR32:{ *:[i32] }:$src)
/* 20108*/          /*Scope*/ 28, /*->20137*/
/* 20109*/            OPC_CheckPredicate, 37, // Predicate_atomic_load_64
/* 20111*/            OPC_MoveParent,
/* 20112*/            OPC_RecordChild1, // #3 = $src
/* 20113*/            OPC_CheckType, MVT::i64,
/* 20115*/            OPC_MoveParent,
/* 20116*/            OPC_CheckPredicate, 37, // Predicate_atomic_store_64
/* 20118*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 20121*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 20125*/            OPC_MorphNodeTo1, TARGET_VAL(X86::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: (XOR64mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR64:{ *:[i64] }:$src)
/* 20137*/          0, /*End of Scope*/
/* 20138*/        /*Scope*/ 124, /*->20263*/
/* 20139*/          OPC_RecordChild0, // #2 = $src
/* 20140*/          OPC_MoveChild1,
/* 20141*/          OPC_CheckOpcode, TARGET_VAL(ISD::ATOMIC_LOAD),
/* 20144*/          OPC_RecordMemRef,
/* 20145*/          OPC_RecordNode, // #3 = 'atomic_load' chained node
/* 20146*/          OPC_CheckFoldableChainNode,
/* 20147*/          OPC_CheckChild1Same, 1,
/* 20149*/          OPC_Scope, 27, /*->20178*/ // 4 children in Scope
/* 20151*/            OPC_CheckPredicate, 34, // Predicate_atomic_load_8
/* 20153*/            OPC_MoveParent,
/* 20154*/            OPC_CheckType, MVT::i8,
/* 20156*/            OPC_MoveParent,
/* 20157*/            OPC_CheckPredicate, 34, // Predicate_atomic_store_8
/* 20159*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 20162*/            OPC_EmitMergeInputChains, 2, 0, 3, 
/* 20166*/            OPC_MorphNodeTo1, TARGET_VAL(X86::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: (XOR8mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR8:{ *:[i8] }:$src)
/* 20178*/          /*Scope*/ 27, /*->20206*/
/* 20179*/            OPC_CheckPredicate, 35, // Predicate_atomic_load_16
/* 20181*/            OPC_MoveParent,
/* 20182*/            OPC_CheckType, MVT::i16,
/* 20184*/            OPC_MoveParent,
/* 20185*/            OPC_CheckPredicate, 35, // Predicate_atomic_store_16
/* 20187*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 20190*/            OPC_EmitMergeInputChains, 2, 0, 3, 
/* 20194*/            OPC_MorphNodeTo1, TARGET_VAL(X86::XOR16mr), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 2, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (xor:{ *:[i16] } GR16:{ *:[i16] }:$src, (atomic_load:{ *:[i16] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_16>>))<<P:Predicate_atomic_store_16>> - Complexity = 47
                      // Dst: (XOR16mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR16:{ *:[i16] }:$src)
/* 20206*/          /*Scope*/ 27, /*->20234*/
/* 20207*/            OPC_CheckPredicate, 36, // Predicate_atomic_load_32
/* 20209*/            OPC_MoveParent,
/* 20210*/            OPC_CheckType, MVT::i32,
/* 20212*/            OPC_MoveParent,
/* 20213*/            OPC_CheckPredicate, 36, // Predicate_atomic_store_32
/* 20215*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 20218*/            OPC_EmitMergeInputChains, 2, 0, 3, 
/* 20222*/            OPC_MorphNodeTo1, TARGET_VAL(X86::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: (XOR32mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR32:{ *:[i32] }:$src)
/* 20234*/          /*Scope*/ 27, /*->20262*/
/* 20235*/            OPC_CheckPredicate, 37, // Predicate_atomic_load_64
/* 20237*/            OPC_MoveParent,
/* 20238*/            OPC_CheckType, MVT::i64,
/* 20240*/            OPC_MoveParent,
/* 20241*/            OPC_CheckPredicate, 37, // Predicate_atomic_store_64
/* 20243*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 20246*/            OPC_EmitMergeInputChains, 2, 0, 3, 
/* 20250*/            OPC_MorphNodeTo1, TARGET_VAL(X86::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: (XOR64mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR64:{ *:[i64] }:$src)
/* 20262*/          0, /*End of Scope*/
/* 20263*/        0, /*End of Scope*/
/* 20264*/      /*SwitchOpcode*/ 18|128,3/*402*/, TARGET_VAL(ISD::AND),// ->20670
/* 20268*/        OPC_Scope, 17|128,2/*273*/, /*->20544*/ // 2 children in Scope
/* 20271*/          OPC_MoveChild0,
/* 20272*/          OPC_CheckOpcode, TARGET_VAL(ISD::ATOMIC_LOAD),
/* 20275*/          OPC_RecordMemRef,
/* 20276*/          OPC_RecordNode, // #2 = 'atomic_load' chained node
/* 20277*/          OPC_CheckFoldableChainNode,
/* 20278*/          OPC_CheckChild1Same, 1,
/* 20280*/          OPC_Scope, 37, /*->20319*/ // 8 children in Scope
/* 20282*/            OPC_CheckPredicate, 37, // Predicate_atomic_load_64
/* 20284*/            OPC_MoveParent,
/* 20285*/            OPC_RecordChild1, // #3 = $src
/* 20286*/            OPC_MoveChild1,
/* 20287*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 20290*/            OPC_CheckPredicate, 38, // Predicate_i64immSExt32
/* 20292*/            OPC_MoveParent,
/* 20293*/            OPC_CheckType, MVT::i64,
/* 20295*/            OPC_MoveParent,
/* 20296*/            OPC_CheckPredicate, 37, // Predicate_atomic_store_64
/* 20298*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 20301*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 20305*/            OPC_EmitConvertToTarget, 3,
/* 20307*/            OPC_MorphNodeTo1, TARGET_VAL(X86::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: (AND64mi32:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>>:$src)
/* 20319*/          /*Scope*/ 35, /*->20355*/
/* 20320*/            OPC_CheckPredicate, 34, // Predicate_atomic_load_8
/* 20322*/            OPC_MoveParent,
/* 20323*/            OPC_RecordChild1, // #3 = $src
/* 20324*/            OPC_MoveChild1,
/* 20325*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 20328*/            OPC_MoveParent,
/* 20329*/            OPC_CheckType, MVT::i8,
/* 20331*/            OPC_MoveParent,
/* 20332*/            OPC_CheckPredicate, 34, // Predicate_atomic_store_8
/* 20334*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 20337*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 20341*/            OPC_EmitConvertToTarget, 3,
/* 20343*/            OPC_MorphNodeTo1, TARGET_VAL(X86::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: (AND8mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i8] }):$src)
/* 20355*/          /*Scope*/ 35, /*->20391*/
/* 20356*/            OPC_CheckPredicate, 35, // Predicate_atomic_load_16
/* 20358*/            OPC_MoveParent,
/* 20359*/            OPC_RecordChild1, // #3 = $src
/* 20360*/            OPC_MoveChild1,
/* 20361*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 20364*/            OPC_MoveParent,
/* 20365*/            OPC_CheckType, MVT::i16,
/* 20367*/            OPC_MoveParent,
/* 20368*/            OPC_CheckPredicate, 35, // Predicate_atomic_store_16
/* 20370*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 20373*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 20377*/            OPC_EmitConvertToTarget, 3,
/* 20379*/            OPC_MorphNodeTo1, TARGET_VAL(X86::AND16mi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (and:{ *:[i16] } (atomic_load:{ *:[i16] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_16>>, (imm:{ *:[i16] }):$src))<<P:Predicate_atomic_store_16>> - Complexity = 50
                      // Dst: (AND16mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i16] }):$src)
/* 20391*/          /*Scope*/ 35, /*->20427*/
/* 20392*/            OPC_CheckPredicate, 36, // Predicate_atomic_load_32
/* 20394*/            OPC_MoveParent,
/* 20395*/            OPC_RecordChild1, // #3 = $src
/* 20396*/            OPC_MoveChild1,
/* 20397*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 20400*/            OPC_MoveParent,
/* 20401*/            OPC_CheckType, MVT::i32,
/* 20403*/            OPC_MoveParent,
/* 20404*/            OPC_CheckPredicate, 36, // Predicate_atomic_store_32
/* 20406*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 20409*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 20413*/            OPC_EmitConvertToTarget, 3,
/* 20415*/            OPC_MorphNodeTo1, TARGET_VAL(X86::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: (AND32mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i32] }):$src)
/* 20427*/          /*Scope*/ 28, /*->20456*/
/* 20428*/            OPC_CheckPredicate, 34, // Predicate_atomic_load_8
/* 20430*/            OPC_MoveParent,
/* 20431*/            OPC_RecordChild1, // #3 = $src
/* 20432*/            OPC_CheckType, MVT::i8,
/* 20434*/            OPC_MoveParent,
/* 20435*/            OPC_CheckPredicate, 34, // Predicate_atomic_store_8
/* 20437*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 20440*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 20444*/            OPC_MorphNodeTo1, TARGET_VAL(X86::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: (AND8mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR8:{ *:[i8] }:$src)
/* 20456*/          /*Scope*/ 28, /*->20485*/
/* 20457*/            OPC_CheckPredicate, 35, // Predicate_atomic_load_16
/* 20459*/            OPC_MoveParent,
/* 20460*/            OPC_RecordChild1, // #3 = $src
/* 20461*/            OPC_CheckType, MVT::i16,
/* 20463*/            OPC_MoveParent,
/* 20464*/            OPC_CheckPredicate, 35, // Predicate_atomic_store_16
/* 20466*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 20469*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 20473*/            OPC_MorphNodeTo1, TARGET_VAL(X86::AND16mr), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (and:{ *:[i16] } (atomic_load:{ *:[i16] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_16>>, GR16:{ *:[i16] }:$src))<<P:Predicate_atomic_store_16>> - Complexity = 47
                      // Dst: (AND16mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR16:{ *:[i16] }:$src)
/* 20485*/          /*Scope*/ 28, /*->20514*/
/* 20486*/            OPC_CheckPredicate, 36, // Predicate_atomic_load_32
/* 20488*/            OPC_MoveParent,
/* 20489*/            OPC_RecordChild1, // #3 = $src
/* 20490*/            OPC_CheckType, MVT::i32,
/* 20492*/            OPC_MoveParent,
/* 20493*/            OPC_CheckPredicate, 36, // Predicate_atomic_store_32
/* 20495*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 20498*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 20502*/            OPC_MorphNodeTo1, TARGET_VAL(X86::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: (AND32mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR32:{ *:[i32] }:$src)
/* 20514*/          /*Scope*/ 28, /*->20543*/
/* 20515*/            OPC_CheckPredicate, 37, // Predicate_atomic_load_64
/* 20517*/            OPC_MoveParent,
/* 20518*/            OPC_RecordChild1, // #3 = $src
/* 20519*/            OPC_CheckType, MVT::i64,
/* 20521*/            OPC_MoveParent,
/* 20522*/            OPC_CheckPredicate, 37, // Predicate_atomic_store_64
/* 20524*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 20527*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 20531*/            OPC_MorphNodeTo1, TARGET_VAL(X86::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: (AND64mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR64:{ *:[i64] }:$src)
/* 20543*/          0, /*End of Scope*/
/* 20544*/        /*Scope*/ 124, /*->20669*/
/* 20545*/          OPC_RecordChild0, // #2 = $src
/* 20546*/          OPC_MoveChild1,
/* 20547*/          OPC_CheckOpcode, TARGET_VAL(ISD::ATOMIC_LOAD),
/* 20550*/          OPC_RecordMemRef,
/* 20551*/          OPC_RecordNode, // #3 = 'atomic_load' chained node
/* 20552*/          OPC_CheckFoldableChainNode,
/* 20553*/          OPC_CheckChild1Same, 1,
/* 20555*/          OPC_Scope, 27, /*->20584*/ // 4 children in Scope
/* 20557*/            OPC_CheckPredicate, 34, // Predicate_atomic_load_8
/* 20559*/            OPC_MoveParent,
/* 20560*/            OPC_CheckType, MVT::i8,
/* 20562*/            OPC_MoveParent,
/* 20563*/            OPC_CheckPredicate, 34, // Predicate_atomic_store_8
/* 20565*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 20568*/            OPC_EmitMergeInputChains, 2, 0, 3, 
/* 20572*/            OPC_MorphNodeTo1, TARGET_VAL(X86::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: (AND8mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR8:{ *:[i8] }:$src)
/* 20584*/          /*Scope*/ 27, /*->20612*/
/* 20585*/            OPC_CheckPredicate, 35, // Predicate_atomic_load_16
/* 20587*/            OPC_MoveParent,
/* 20588*/            OPC_CheckType, MVT::i16,
/* 20590*/            OPC_MoveParent,
/* 20591*/            OPC_CheckPredicate, 35, // Predicate_atomic_store_16
/* 20593*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 20596*/            OPC_EmitMergeInputChains, 2, 0, 3, 
/* 20600*/            OPC_MorphNodeTo1, TARGET_VAL(X86::AND16mr), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 2, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (and:{ *:[i16] } GR16:{ *:[i16] }:$src, (atomic_load:{ *:[i16] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_16>>))<<P:Predicate_atomic_store_16>> - Complexity = 47
                      // Dst: (AND16mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR16:{ *:[i16] }:$src)
/* 20612*/          /*Scope*/ 27, /*->20640*/
/* 20613*/            OPC_CheckPredicate, 36, // Predicate_atomic_load_32
/* 20615*/            OPC_MoveParent,
/* 20616*/            OPC_CheckType, MVT::i32,
/* 20618*/            OPC_MoveParent,
/* 20619*/            OPC_CheckPredicate, 36, // Predicate_atomic_store_32
/* 20621*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 20624*/            OPC_EmitMergeInputChains, 2, 0, 3, 
/* 20628*/            OPC_MorphNodeTo1, TARGET_VAL(X86::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: (AND32mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR32:{ *:[i32] }:$src)
/* 20640*/          /*Scope*/ 27, /*->20668*/
/* 20641*/            OPC_CheckPredicate, 37, // Predicate_atomic_load_64
/* 20643*/            OPC_MoveParent,
/* 20644*/            OPC_CheckType, MVT::i64,
/* 20646*/            OPC_MoveParent,
/* 20647*/            OPC_CheckPredicate, 37, // Predicate_atomic_store_64
/* 20649*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 20652*/            OPC_EmitMergeInputChains, 2, 0, 3, 
/* 20656*/            OPC_MorphNodeTo1, TARGET_VAL(X86::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: (AND64mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR64:{ *:[i64] }:$src)
/* 20668*/          0, /*End of Scope*/
/* 20669*/        0, /*End of Scope*/
/* 20670*/      /*SwitchOpcode*/ 18|128,3/*402*/, TARGET_VAL(ISD::OR),// ->21076
/* 20674*/        OPC_Scope, 17|128,2/*273*/, /*->20950*/ // 2 children in Scope
/* 20677*/          OPC_MoveChild0,
/* 20678*/          OPC_CheckOpcode, TARGET_VAL(ISD::ATOMIC_LOAD),
/* 20681*/          OPC_RecordMemRef,
/* 20682*/          OPC_RecordNode, // #2 = 'atomic_load' chained node
/* 20683*/          OPC_CheckFoldableChainNode,
/* 20684*/          OPC_CheckChild1Same, 1,
/* 20686*/          OPC_Scope, 37, /*->20725*/ // 8 children in Scope
/* 20688*/            OPC_CheckPredicate, 37, // Predicate_atomic_load_64
/* 20690*/            OPC_MoveParent,
/* 20691*/            OPC_RecordChild1, // #3 = $src
/* 20692*/            OPC_MoveChild1,
/* 20693*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 20696*/            OPC_CheckPredicate, 38, // Predicate_i64immSExt32
/* 20698*/            OPC_MoveParent,
/* 20699*/            OPC_CheckType, MVT::i64,
/* 20701*/            OPC_MoveParent,
/* 20702*/            OPC_CheckPredicate, 37, // Predicate_atomic_store_64
/* 20704*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 20707*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 20711*/            OPC_EmitConvertToTarget, 3,
/* 20713*/            OPC_MorphNodeTo1, TARGET_VAL(X86::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: (OR64mi32:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>>:$src)
/* 20725*/          /*Scope*/ 35, /*->20761*/
/* 20726*/            OPC_CheckPredicate, 34, // Predicate_atomic_load_8
/* 20728*/            OPC_MoveParent,
/* 20729*/            OPC_RecordChild1, // #3 = $src
/* 20730*/            OPC_MoveChild1,
/* 20731*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 20734*/            OPC_MoveParent,
/* 20735*/            OPC_CheckType, MVT::i8,
/* 20737*/            OPC_MoveParent,
/* 20738*/            OPC_CheckPredicate, 34, // Predicate_atomic_store_8
/* 20740*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 20743*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 20747*/            OPC_EmitConvertToTarget, 3,
/* 20749*/            OPC_MorphNodeTo1, TARGET_VAL(X86::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: (OR8mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i8] }):$src)
/* 20761*/          /*Scope*/ 35, /*->20797*/
/* 20762*/            OPC_CheckPredicate, 35, // Predicate_atomic_load_16
/* 20764*/            OPC_MoveParent,
/* 20765*/            OPC_RecordChild1, // #3 = $src
/* 20766*/            OPC_MoveChild1,
/* 20767*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 20770*/            OPC_MoveParent,
/* 20771*/            OPC_CheckType, MVT::i16,
/* 20773*/            OPC_MoveParent,
/* 20774*/            OPC_CheckPredicate, 35, // Predicate_atomic_store_16
/* 20776*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 20779*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 20783*/            OPC_EmitConvertToTarget, 3,
/* 20785*/            OPC_MorphNodeTo1, TARGET_VAL(X86::OR16mi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 9, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (or:{ *:[i16] } (atomic_load:{ *:[i16] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_16>>, (imm:{ *:[i16] }):$src))<<P:Predicate_atomic_store_16>> - Complexity = 50
                      // Dst: (OR16mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i16] }):$src)
/* 20797*/          /*Scope*/ 35, /*->20833*/
/* 20798*/            OPC_CheckPredicate, 36, // Predicate_atomic_load_32
/* 20800*/            OPC_MoveParent,
/* 20801*/            OPC_RecordChild1, // #3 = $src
/* 20802*/            OPC_MoveChild1,
/* 20803*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 20806*/            OPC_MoveParent,
/* 20807*/            OPC_CheckType, MVT::i32,
/* 20809*/            OPC_MoveParent,
/* 20810*/            OPC_CheckPredicate, 36, // Predicate_atomic_store_32
/* 20812*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 20815*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 20819*/            OPC_EmitConvertToTarget, 3,
/* 20821*/            OPC_MorphNodeTo1, TARGET_VAL(X86::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: (OR32mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, (imm:{ *:[i32] }):$src)
/* 20833*/          /*Scope*/ 28, /*->20862*/
/* 20834*/            OPC_CheckPredicate, 34, // Predicate_atomic_load_8
/* 20836*/            OPC_MoveParent,
/* 20837*/            OPC_RecordChild1, // #3 = $src
/* 20838*/            OPC_CheckType, MVT::i8,
/* 20840*/            OPC_MoveParent,
/* 20841*/            OPC_CheckPredicate, 34, // Predicate_atomic_store_8
/* 20843*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 20846*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 20850*/            OPC_MorphNodeTo1, TARGET_VAL(X86::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: (OR8mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR8:{ *:[i8] }:$src)
/* 20862*/          /*Scope*/ 28, /*->20891*/
/* 20863*/            OPC_CheckPredicate, 35, // Predicate_atomic_load_16
/* 20865*/            OPC_MoveParent,
/* 20866*/            OPC_RecordChild1, // #3 = $src
/* 20867*/            OPC_CheckType, MVT::i16,
/* 20869*/            OPC_MoveParent,
/* 20870*/            OPC_CheckPredicate, 35, // Predicate_atomic_store_16
/* 20872*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 20875*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 20879*/            OPC_MorphNodeTo1, TARGET_VAL(X86::OR16mr), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (or:{ *:[i16] } (atomic_load:{ *:[i16] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_16>>, GR16:{ *:[i16] }:$src))<<P:Predicate_atomic_store_16>> - Complexity = 47
                      // Dst: (OR16mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR16:{ *:[i16] }:$src)
/* 20891*/          /*Scope*/ 28, /*->20920*/
/* 20892*/            OPC_CheckPredicate, 36, // Predicate_atomic_load_32
/* 20894*/            OPC_MoveParent,
/* 20895*/            OPC_RecordChild1, // #3 = $src
/* 20896*/            OPC_CheckType, MVT::i32,
/* 20898*/            OPC_MoveParent,
/* 20899*/            OPC_CheckPredicate, 36, // Predicate_atomic_store_32
/* 20901*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 20904*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 20908*/            OPC_MorphNodeTo1, TARGET_VAL(X86::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: (OR32mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR32:{ *:[i32] }:$src)
/* 20920*/          /*Scope*/ 28, /*->20949*/
/* 20921*/            OPC_CheckPredicate, 37, // Predicate_atomic_load_64
/* 20923*/            OPC_MoveParent,
/* 20924*/            OPC_RecordChild1, // #3 = $src
/* 20925*/            OPC_CheckType, MVT::i64,
/* 20927*/            OPC_MoveParent,
/* 20928*/            OPC_CheckPredicate, 37, // Predicate_atomic_store_64
/* 20930*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 20933*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 20937*/            OPC_MorphNodeTo1, TARGET_VAL(X86::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: (OR64mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR64:{ *:[i64] }:$src)
/* 20949*/          0, /*End of Scope*/
/* 20950*/        /*Scope*/ 124, /*->21075*/
/* 20951*/          OPC_RecordChild0, // #2 = $src
/* 20952*/          OPC_MoveChild1,
/* 20953*/          OPC_CheckOpcode, TARGET_VAL(ISD::ATOMIC_LOAD),
/* 20956*/          OPC_RecordMemRef,
/* 20957*/          OPC_RecordNode, // #3 = 'atomic_load' chained node
/* 20958*/          OPC_CheckFoldableChainNode,
/* 20959*/          OPC_CheckChild1Same, 1,
/* 20961*/          OPC_Scope, 27, /*->20990*/ // 4 children in Scope
/* 20963*/            OPC_CheckPredicate, 34, // Predicate_atomic_load_8
/* 20965*/            OPC_MoveParent,
/* 20966*/            OPC_CheckType, MVT::i8,
/* 20968*/            OPC_MoveParent,
/* 20969*/            OPC_CheckPredicate, 34, // Predicate_atomic_store_8
/* 20971*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 20974*/            OPC_EmitMergeInputChains, 2, 0, 3, 
/* 20978*/            OPC_MorphNodeTo1, TARGET_VAL(X86::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: (OR8mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR8:{ *:[i8] }:$src)
/* 20990*/          /*Scope*/ 27, /*->21018*/
/* 20991*/            OPC_CheckPredicate, 35, // Predicate_atomic_load_16
/* 20993*/            OPC_MoveParent,
/* 20994*/            OPC_CheckType, MVT::i16,
/* 20996*/            OPC_MoveParent,
/* 20997*/            OPC_CheckPredicate, 35, // Predicate_atomic_store_16
/* 20999*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 21002*/            OPC_EmitMergeInputChains, 2, 0, 3, 
/* 21006*/            OPC_MorphNodeTo1, TARGET_VAL(X86::OR16mr), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 2, 
                      // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (or:{ *:[i16] } GR16:{ *:[i16] }:$src, (atomic_load:{ *:[i16] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_atomic_load_16>>))<<P:Predicate_atomic_store_16>> - Complexity = 47
                      // Dst: (OR16mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR16:{ *:[i16] }:$src)
/* 21018*/          /*Scope*/ 27, /*->21046*/
/* 21019*/            OPC_CheckPredicate, 36, // Predicate_atomic_load_32
/* 21021*/            OPC_MoveParent,
/* 21022*/            OPC_CheckType, MVT::i32,
/* 21024*/            OPC_MoveParent,
/* 21025*/            OPC_CheckPredicate, 36, // Predicate_atomic_store_32
/* 21027*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 21030*/            OPC_EmitMergeInputChains, 2, 0, 3, 
/* 21034*/            OPC_MorphNodeTo1, TARGET_VAL(X86::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: (OR32mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR32:{ *:[i32] }:$src)
/* 21046*/          /*Scope*/ 27, /*->21074*/
/* 21047*/            OPC_CheckPredicate, 37, // Predicate_atomic_load_64
/* 21049*/            OPC_MoveParent,
/* 21050*/            OPC_CheckType, MVT::i64,
/* 21052*/            OPC_MoveParent,
/* 21053*/            OPC_CheckPredicate, 37, // Predicate_atomic_store_64
/* 21055*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 21058*/            OPC_EmitMergeInputChains, 2, 0, 3, 
/* 21062*/            OPC_MorphNodeTo1, TARGET_VAL(X86::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: (OR64mr:{ *:[i32] } addr:{ *:[iPTR] }:$dst, GR64:{ *:[i64] }:$src)
/* 21074*/          0, /*End of Scope*/
/* 21075*/        0, /*End of Scope*/
/* 21076*/      0, // EndSwitchOpcode
/* 21077*/    /*Scope*/ 97, /*->21175*/
/* 21078*/      OPC_RecordChild2, // #2 = $src
/* 21079*/      OPC_MoveChild2,
/* 21080*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 21083*/      OPC_SwitchType /*4 cases */, 22, MVT::i64,// ->21108
/* 21086*/        OPC_CheckPredicate, 38, // Predicate_i64immSExt32
/* 21088*/        OPC_MoveParent,
/* 21089*/        OPC_CheckPredicate, 37, // Predicate_atomic_store_64
/* 21091*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 21094*/        OPC_EmitMergeInputChains1_0,
/* 21095*/        OPC_EmitConvertToTarget, 2,
/* 21097*/        OPC_MorphNodeTo0, TARGET_VAL(X86::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: (MOV64mi32 addr:{ *:[iPTR] }:$dst, (imm:{ *:[i64] })<<P:Predicate_i64immSExt32>>:$src)
/* 21108*/      /*SwitchType*/ 20, MVT::i8,// ->21130
/* 21110*/        OPC_MoveParent,
/* 21111*/        OPC_CheckPredicate, 34, // Predicate_atomic_store_8
/* 21113*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 21116*/        OPC_EmitMergeInputChains1_0,
/* 21117*/        OPC_EmitConvertToTarget, 2,
/* 21119*/        OPC_MorphNodeTo0, TARGET_VAL(X86::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: (MOV8mi addr:{ *:[iPTR] }:$dst, (imm:{ *:[i8] }):$src)
/* 21130*/      /*SwitchType*/ 20, MVT::i16,// ->21152
/* 21132*/        OPC_MoveParent,
/* 21133*/        OPC_CheckPredicate, 35, // Predicate_atomic_store_16
/* 21135*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 21138*/        OPC_EmitMergeInputChains1_0,
/* 21139*/        OPC_EmitConvertToTarget, 2,
/* 21141*/        OPC_MorphNodeTo0, TARGET_VAL(X86::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: (MOV16mi addr:{ *:[iPTR] }:$dst, (imm:{ *:[i16] }):$src)
/* 21152*/      /*SwitchType*/ 20, MVT::i32,// ->21174
/* 21154*/        OPC_MoveParent,
/* 21155*/        OPC_CheckPredicate, 36, // Predicate_atomic_store_32
/* 21157*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 21160*/        OPC_EmitMergeInputChains1_0,
/* 21161*/        OPC_EmitConvertToTarget, 2,
/* 21163*/        OPC_MorphNodeTo0, TARGET_VAL(X86::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: (MOV32mi addr:{ *:[iPTR] }:$dst, (imm:{ *:[i32] }):$src)
/* 21174*/      0, // EndSwitchType
/* 21175*/    /*Scope*/ 5|128,1/*133*/, /*->21310*/
/* 21177*/      OPC_MoveChild2,
/* 21178*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 21181*/      OPC_RecordChild0, // #2 = $src
/* 21182*/      OPC_SwitchType /*2 cases */, 61, MVT::i32,// ->21246
/* 21185*/        OPC_CheckChild0Type, MVT::f32,
/* 21187*/        OPC_MoveParent,
/* 21188*/        OPC_CheckPredicate, 36, // Predicate_atomic_store_32
/* 21190*/        OPC_Scope, 17, /*->21209*/ // 3 children in Scope
/* 21192*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/* 21194*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 21197*/          OPC_EmitMergeInputChains1_0,
/* 21198*/          OPC_MorphNodeTo0, TARGET_VAL(X86::MOVSSmr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (bitconvert:{ *:[i32] } FR32:{ *:[f32] }:$src))<<P:Predicate_atomic_store_32>> - Complexity = 25
                    // Dst: (MOVSSmr addr:{ *:[iPTR] }:$dst, FR32:{ *:[f32] }:$src)
/* 21209*/        /*Scope*/ 17, /*->21227*/
/* 21210*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 21212*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 21215*/          OPC_EmitMergeInputChains1_0,
/* 21216*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVSSmr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (bitconvert:{ *:[i32] } FR32:{ *:[f32] }:$src))<<P:Predicate_atomic_store_32>> - Complexity = 25
                    // Dst: (VMOVSSmr addr:{ *:[iPTR] }:$dst, FR32:{ *:[f32] }:$src)
/* 21227*/        /*Scope*/ 17, /*->21245*/
/* 21228*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 21230*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 21233*/          OPC_EmitMergeInputChains1_0,
/* 21234*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVSSZmr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (bitconvert:{ *:[i32] } FR32:{ *:[f32] }:$src))<<P:Predicate_atomic_store_32>> - Complexity = 25
                    // Dst: (VMOVSSZmr addr:{ *:[iPTR] }:$dst, FR32:{ *:[f32] }:$src)
/* 21245*/        0, /*End of Scope*/
/* 21246*/      /*SwitchType*/ 61, MVT::i64,// ->21309
/* 21248*/        OPC_CheckChild0Type, MVT::f64,
/* 21250*/        OPC_MoveParent,
/* 21251*/        OPC_CheckPredicate, 37, // Predicate_atomic_store_64
/* 21253*/        OPC_Scope, 17, /*->21272*/ // 3 children in Scope
/* 21255*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 21257*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 21260*/          OPC_EmitMergeInputChains1_0,
/* 21261*/          OPC_MorphNodeTo0, TARGET_VAL(X86::MOVSDmr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (bitconvert:{ *:[i64] } FR64:{ *:[f64] }:$src))<<P:Predicate_atomic_store_64>> - Complexity = 25
                    // Dst: (MOVSDmr addr:{ *:[iPTR] }:$dst, FR64:{ *:[f64] }:$src)
/* 21272*/        /*Scope*/ 17, /*->21290*/
/* 21273*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 21275*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 21278*/          OPC_EmitMergeInputChains1_0,
/* 21279*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVSDmr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (bitconvert:{ *:[i64] } FR64:{ *:[f64] }:$src))<<P:Predicate_atomic_store_64>> - Complexity = 25
                    // Dst: (VMOVSDmr addr:{ *:[iPTR] }:$dst, FR64:{ *:[f64] }:$src)
/* 21290*/        /*Scope*/ 17, /*->21308*/
/* 21291*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 21293*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 21296*/          OPC_EmitMergeInputChains1_0,
/* 21297*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVSDmr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (atomic_store addr:{ *:[iPTR] }:$dst, (bitconvert:{ *:[i64] } FR64:{ *:[f64] }:$src))<<P:Predicate_atomic_store_64>> - Complexity = 25
                    // Dst: (VMOVSDmr addr:{ *:[iPTR] }:$dst, FR64:{ *:[f64] }:$src)
/* 21308*/        0, /*End of Scope*/
/* 21309*/      0, // EndSwitchType
/* 21310*/    /*Scope*/ 83, /*->21394*/
/* 21311*/      OPC_RecordChild2, // #2 = $src
/* 21312*/      OPC_Scope, 19, /*->21333*/ // 4 children in Scope
/* 21314*/        OPC_CheckChild2Type, MVT::i8,
/* 21316*/        OPC_CheckPredicate, 34, // Predicate_atomic_store_8
/* 21318*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 21321*/        OPC_EmitMergeInputChains1_0,
/* 21322*/        OPC_MorphNodeTo0, TARGET_VAL(X86::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: (MOV8mr addr:{ *:[iPTR] }:$dst, GR8:{ *:[i8] }:$src)
/* 21333*/      /*Scope*/ 19, /*->21353*/
/* 21334*/        OPC_CheckChild2Type, MVT::i16,
/* 21336*/        OPC_CheckPredicate, 35, // Predicate_atomic_store_16
/* 21338*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 21341*/        OPC_EmitMergeInputChains1_0,
/* 21342*/        OPC_MorphNodeTo0, TARGET_VAL(X86::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: (MOV16mr addr:{ *:[iPTR] }:$dst, GR16:{ *:[i16] }:$src)
/* 21353*/      /*Scope*/ 19, /*->21373*/
/* 21354*/        OPC_CheckChild2Type, MVT::i32,
/* 21356*/        OPC_CheckPredicate, 36, // Predicate_atomic_store_32
/* 21358*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 21361*/        OPC_EmitMergeInputChains1_0,
/* 21362*/        OPC_MorphNodeTo0, TARGET_VAL(X86::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: (MOV32mr addr:{ *:[iPTR] }:$dst, GR32:{ *:[i32] }:$src)
/* 21373*/      /*Scope*/ 19, /*->21393*/
/* 21374*/        OPC_CheckChild2Type, MVT::i64,
/* 21376*/        OPC_CheckPredicate, 37, // Predicate_atomic_store_64
/* 21378*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 21381*/        OPC_EmitMergeInputChains1_0,
/* 21382*/        OPC_MorphNodeTo0, TARGET_VAL(X86::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: (MOV64mr addr:{ *:[iPTR] }:$dst, GR64:{ *:[i64] }:$src)
/* 21393*/      0, /*End of Scope*/
/* 21394*/    0, /*End of Scope*/
/* 21395*/  /*SwitchOpcode*/ 3|128,12/*1539*/, TARGET_VAL(X86ISD::CMP),// ->22938
/* 21399*/    OPC_Scope, 61|128,4/*573*/, /*->21975*/ // 6 children in Scope
/* 21402*/      OPC_MoveChild0,
/* 21403*/      OPC_SwitchOpcode /*2 cases */, 86|128,2/*342*/, TARGET_VAL(ISD::AND),// ->21750
/* 21408*/        OPC_Scope, 28|128,1/*156*/, /*->21567*/ // 2 children in Scope
/* 21411*/          OPC_MoveChild0,
/* 21412*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 21415*/          OPC_RecordMemRef,
/* 21416*/          OPC_RecordNode, // #0 = 'ld' chained node
/* 21417*/          OPC_CheckFoldableChainNode,
/* 21418*/          OPC_RecordChild1, // #1 = $dst
/* 21419*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 21421*/          OPC_Scope, 34, /*->21457*/ // 4 children in Scope
/* 21423*/            OPC_CheckPredicate, 5, // Predicate_loadi8
/* 21425*/            OPC_MoveParent,
/* 21426*/            OPC_RecordChild1, // #2 = $src
/* 21427*/            OPC_MoveChild1,
/* 21428*/            OPC_CheckPredicate, 15, // Predicate_relocImm8_su
/* 21430*/            OPC_MoveParent,
/* 21431*/            OPC_CheckPredicate, 17, // Predicate_and_su
/* 21433*/            OPC_CheckType, MVT::i8,
/* 21435*/            OPC_MoveParent,
/* 21436*/            OPC_CheckChild1Integer, 0, 
/* 21438*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 21441*/            OPC_CheckComplexPat, /*CP*/1, /*#*/2, // selectRelocImm:$src #8
/* 21444*/            OPC_EmitMergeInputChains1_0,
/* 21445*/            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_relocImm8_su>>:$src)<<P:Predicate_and_su>>, 0:{ *:[i8] }) - Complexity = 37
                      // Dst: (TEST8mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i8] }:$src)
/* 21457*/          /*Scope*/ 34, /*->21492*/
/* 21458*/            OPC_CheckPredicate, 7, // Predicate_loadi16
/* 21460*/            OPC_MoveParent,
/* 21461*/            OPC_RecordChild1, // #2 = $src
/* 21462*/            OPC_MoveChild1,
/* 21463*/            OPC_CheckPredicate, 15, // Predicate_relocImm16_su
/* 21465*/            OPC_MoveParent,
/* 21466*/            OPC_CheckPredicate, 17, // Predicate_and_su
/* 21468*/            OPC_CheckType, MVT::i16,
/* 21470*/            OPC_MoveParent,
/* 21471*/            OPC_CheckChild1Integer, 0, 
/* 21473*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 21476*/            OPC_CheckComplexPat, /*CP*/1, /*#*/2, // selectRelocImm:$src #8
/* 21479*/            OPC_EmitMergeInputChains1_0,
/* 21480*/            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_relocImm16_su>>:$src)<<P:Predicate_and_su>>, 0:{ *:[i16] }) - Complexity = 37
                      // Dst: (TEST16mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i16] }:$src)
/* 21492*/          /*Scope*/ 34, /*->21527*/
/* 21493*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/* 21495*/            OPC_MoveParent,
/* 21496*/            OPC_RecordChild1, // #2 = $src
/* 21497*/            OPC_MoveChild1,
/* 21498*/            OPC_CheckPredicate, 15, // Predicate_relocImm32_su
/* 21500*/            OPC_MoveParent,
/* 21501*/            OPC_CheckPredicate, 17, // Predicate_and_su
/* 21503*/            OPC_CheckType, MVT::i32,
/* 21505*/            OPC_MoveParent,
/* 21506*/            OPC_CheckChild1Integer, 0, 
/* 21508*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 21511*/            OPC_CheckComplexPat, /*CP*/1, /*#*/2, // selectRelocImm:$src #8
/* 21514*/            OPC_EmitMergeInputChains1_0,
/* 21515*/            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_relocImm32_su>>:$src)<<P:Predicate_and_su>>, 0:{ *:[i32] }) - Complexity = 37
                      // Dst: (TEST32mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i32] }:$src)
/* 21527*/          /*Scope*/ 38, /*->21566*/
/* 21528*/            OPC_CheckPredicate, 9, // Predicate_load
/* 21530*/            OPC_MoveParent,
/* 21531*/            OPC_RecordChild1, // #2 = $src
/* 21532*/            OPC_MoveChild1,
/* 21533*/            OPC_CheckPredicate, 16, // Predicate_i64relocImmSExt32
/* 21535*/            OPC_CheckPredicate, 15, // Predicate_i64relocImmSExt32_su
/* 21537*/            OPC_MoveParent,
/* 21538*/            OPC_CheckPredicate, 17, // Predicate_and_su
/* 21540*/            OPC_CheckType, MVT::i64,
/* 21542*/            OPC_MoveParent,
/* 21543*/            OPC_CheckChild1Integer, 0, 
/* 21545*/            OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/* 21547*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 21550*/            OPC_CheckComplexPat, /*CP*/1, /*#*/2, // selectRelocImm:$src #8
/* 21553*/            OPC_EmitMergeInputChains1_0,
/* 21554*/            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>>, relocImm:{ *:[i64] }<<P:Predicate_i64relocImmSExt32>><<P:Predicate_i64relocImmSExt32_su>>:$src)<<P:Predicate_and_su>>, 0:{ *:[i64] }) - Complexity = 37
                      // Dst: (TEST64mi32:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i64] }:$src)
/* 21566*/          0, /*End of Scope*/
/* 21567*/        /*Scope*/ 52|128,1/*180*/, /*->21749*/
/* 21569*/          OPC_RecordChild0, // #0 = $src
/* 21570*/          OPC_MoveChild0,
/* 21571*/          OPC_Scope, 42, /*->21615*/ // 4 children in Scope
/* 21573*/            OPC_CheckPredicate, 15, // Predicate_relocImm8_su
/* 21575*/            OPC_MoveParent,
/* 21576*/            OPC_MoveChild1,
/* 21577*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 21580*/            OPC_RecordMemRef,
/* 21581*/            OPC_RecordNode, // #1 = 'ld' chained node
/* 21582*/            OPC_CheckFoldableChainNode,
/* 21583*/            OPC_RecordChild1, // #2 = $dst
/* 21584*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 21586*/            OPC_CheckPredicate, 5, // Predicate_loadi8
/* 21588*/            OPC_MoveParent,
/* 21589*/            OPC_CheckPredicate, 17, // Predicate_and_su
/* 21591*/            OPC_CheckType, MVT::i8,
/* 21593*/            OPC_MoveParent,
/* 21594*/            OPC_CheckChild1Integer, 0, 
/* 21596*/            OPC_CheckComplexPat, /*CP*/1, /*#*/0, // selectRelocImm:$src #3
/* 21599*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/* 21602*/            OPC_EmitMergeInputChains1_1,
/* 21603*/            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_relocImm8_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)
/* 21615*/          /*Scope*/ 42, /*->21658*/
/* 21616*/            OPC_CheckPredicate, 15, // Predicate_relocImm16_su
/* 21618*/            OPC_MoveParent,
/* 21619*/            OPC_MoveChild1,
/* 21620*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 21623*/            OPC_RecordMemRef,
/* 21624*/            OPC_RecordNode, // #1 = 'ld' chained node
/* 21625*/            OPC_CheckFoldableChainNode,
/* 21626*/            OPC_RecordChild1, // #2 = $dst
/* 21627*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 21629*/            OPC_CheckPredicate, 7, // Predicate_loadi16
/* 21631*/            OPC_MoveParent,
/* 21632*/            OPC_CheckPredicate, 17, // Predicate_and_su
/* 21634*/            OPC_CheckType, MVT::i16,
/* 21636*/            OPC_MoveParent,
/* 21637*/            OPC_CheckChild1Integer, 0, 
/* 21639*/            OPC_CheckComplexPat, /*CP*/1, /*#*/0, // selectRelocImm:$src #3
/* 21642*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/* 21645*/            OPC_EmitMergeInputChains1_1,
/* 21646*/            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_relocImm16_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)
/* 21658*/          /*Scope*/ 42, /*->21701*/
/* 21659*/            OPC_CheckPredicate, 15, // Predicate_relocImm32_su
/* 21661*/            OPC_MoveParent,
/* 21662*/            OPC_MoveChild1,
/* 21663*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 21666*/            OPC_RecordMemRef,
/* 21667*/            OPC_RecordNode, // #1 = 'ld' chained node
/* 21668*/            OPC_CheckFoldableChainNode,
/* 21669*/            OPC_RecordChild1, // #2 = $dst
/* 21670*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 21672*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/* 21674*/            OPC_MoveParent,
/* 21675*/            OPC_CheckPredicate, 17, // Predicate_and_su
/* 21677*/            OPC_CheckType, MVT::i32,
/* 21679*/            OPC_MoveParent,
/* 21680*/            OPC_CheckChild1Integer, 0, 
/* 21682*/            OPC_CheckComplexPat, /*CP*/1, /*#*/0, // selectRelocImm:$src #3
/* 21685*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/* 21688*/            OPC_EmitMergeInputChains1_1,
/* 21689*/            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_relocImm32_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)
/* 21701*/          /*Scope*/ 46, /*->21748*/
/* 21702*/            OPC_CheckPredicate, 16, // Predicate_i64relocImmSExt32
/* 21704*/            OPC_CheckPredicate, 15, // Predicate_i64relocImmSExt32_su
/* 21706*/            OPC_MoveParent,
/* 21707*/            OPC_MoveChild1,
/* 21708*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 21711*/            OPC_RecordMemRef,
/* 21712*/            OPC_RecordNode, // #1 = 'ld' chained node
/* 21713*/            OPC_CheckFoldableChainNode,
/* 21714*/            OPC_RecordChild1, // #2 = $dst
/* 21715*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 21717*/            OPC_CheckPredicate, 9, // Predicate_load
/* 21719*/            OPC_MoveParent,
/* 21720*/            OPC_CheckPredicate, 17, // Predicate_and_su
/* 21722*/            OPC_CheckType, MVT::i64,
/* 21724*/            OPC_MoveParent,
/* 21725*/            OPC_CheckChild1Integer, 0, 
/* 21727*/            OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/* 21729*/            OPC_CheckComplexPat, /*CP*/1, /*#*/0, // selectRelocImm:$src #3
/* 21732*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/* 21735*/            OPC_EmitMergeInputChains1_1,
/* 21736*/            OPC_MorphNodeTo1, TARGET_VAL(X86::TEST64mi32), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86cmp:{ *:[i32] } (and:{ *:[i64] } relocImm:{ *:[i64] }<<P:Predicate_i64relocImmSExt32>><<P:Predicate_i64relocImmSExt32_su>>:$src, (ld:{ *:[i64] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>)<<P:Predicate_and_su>>, 0:{ *:[i64] }) - Complexity = 37
                      // Dst: (TEST64mi32:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i64] }:$src)
/* 21748*/          0, /*End of Scope*/
/* 21749*/        0, /*End of Scope*/
/* 21750*/      /*SwitchOpcode*/ 92|128,1/*220*/, TARGET_VAL(ISD::LOAD),// ->21974
/* 21754*/        OPC_RecordMemRef,
/* 21755*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 21756*/        OPC_CheckFoldableChainNode,
/* 21757*/        OPC_RecordChild1, // #1 = $dst
/* 21758*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 21760*/        OPC_SwitchType /*4 cases */, 57, MVT::i16,// ->21820
/* 21763*/          OPC_CheckPredicate, 7, // Predicate_loadi16
/* 21765*/          OPC_MoveParent,
/* 21766*/          OPC_RecordChild1, // #2 = $src
/* 21767*/          OPC_MoveChild1,
/* 21768*/          OPC_Scope, 26, /*->21796*/ // 2 children in Scope
/* 21770*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 21773*/            OPC_CheckPredicate, 13, // Predicate_i16immSExt8
/* 21775*/            OPC_CheckPredicate, 14, // Predicate_i16immSExt8_su
/* 21777*/            OPC_MoveParent,
/* 21778*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 21781*/            OPC_EmitMergeInputChains1_0,
/* 21782*/            OPC_EmitConvertToTarget, 2,
/* 21784*/            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)
/* 21796*/          /*Scope*/ 22, /*->21819*/
/* 21797*/            OPC_CheckPredicate, 15, // Predicate_relocImm16_su
/* 21799*/            OPC_MoveParent,
/* 21800*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 21803*/            OPC_CheckComplexPat, /*CP*/1, /*#*/2, // selectRelocImm:$src #8
/* 21806*/            OPC_EmitMergeInputChains1_0,
/* 21807*/            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_relocImm16_su>>:$src) - Complexity = 28
                      // Dst: (CMP16mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i16] }:$src)
/* 21819*/          0, /*End of Scope*/
/* 21820*/        /*SwitchType*/ 57, MVT::i32,// ->21879
/* 21822*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/* 21824*/          OPC_MoveParent,
/* 21825*/          OPC_RecordChild1, // #2 = $src
/* 21826*/          OPC_MoveChild1,
/* 21827*/          OPC_Scope, 26, /*->21855*/ // 2 children in Scope
/* 21829*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 21832*/            OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/* 21834*/            OPC_CheckPredicate, 14, // Predicate_i32immSExt8_su
/* 21836*/            OPC_MoveParent,
/* 21837*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 21840*/            OPC_EmitMergeInputChains1_0,
/* 21841*/            OPC_EmitConvertToTarget, 2,
/* 21843*/            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)
/* 21855*/          /*Scope*/ 22, /*->21878*/
/* 21856*/            OPC_CheckPredicate, 15, // Predicate_relocImm32_su
/* 21858*/            OPC_MoveParent,
/* 21859*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 21862*/            OPC_CheckComplexPat, /*CP*/1, /*#*/2, // selectRelocImm:$src #8
/* 21865*/            OPC_EmitMergeInputChains1_0,
/* 21866*/            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_relocImm32_su>>:$src) - Complexity = 28
                      // Dst: (CMP32mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i32] }:$src)
/* 21878*/          0, /*End of Scope*/
/* 21879*/        /*SwitchType*/ 63, MVT::i64,// ->21944
/* 21881*/          OPC_CheckPredicate, 9, // Predicate_load
/* 21883*/          OPC_MoveParent,
/* 21884*/          OPC_RecordChild1, // #2 = $src
/* 21885*/          OPC_MoveChild1,
/* 21886*/          OPC_Scope, 28, /*->21916*/ // 2 children in Scope
/* 21888*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 21891*/            OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/* 21893*/            OPC_CheckPredicate, 14, // Predicate_i64immSExt8_su
/* 21895*/            OPC_MoveParent,
/* 21896*/            OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/* 21898*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 21901*/            OPC_EmitMergeInputChains1_0,
/* 21902*/            OPC_EmitConvertToTarget, 2,
/* 21904*/            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)
/* 21916*/          /*Scope*/ 26, /*->21943*/
/* 21917*/            OPC_CheckPredicate, 16, // Predicate_i64relocImmSExt32
/* 21919*/            OPC_CheckPredicate, 15, // Predicate_i64relocImmSExt32_su
/* 21921*/            OPC_MoveParent,
/* 21922*/            OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/* 21924*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 21927*/            OPC_CheckComplexPat, /*CP*/1, /*#*/2, // selectRelocImm:$src #8
/* 21930*/            OPC_EmitMergeInputChains1_0,
/* 21931*/            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>>, relocImm:{ *:[i64] }<<P:Predicate_i64relocImmSExt32>><<P:Predicate_i64relocImmSExt32_su>>:$src) - Complexity = 28
                      // Dst: (CMP64mi32:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i64] }:$src)
/* 21943*/          0, /*End of Scope*/
/* 21944*/        /*SwitchType*/ 27, MVT::i8,// ->21973
/* 21946*/          OPC_CheckPredicate, 5, // Predicate_loadi8
/* 21948*/          OPC_MoveParent,
/* 21949*/          OPC_RecordChild1, // #2 = $src
/* 21950*/          OPC_MoveChild1,
/* 21951*/          OPC_CheckPredicate, 15, // Predicate_relocImm8_su
/* 21953*/          OPC_MoveParent,
/* 21954*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 21957*/          OPC_CheckComplexPat, /*CP*/1, /*#*/2, // selectRelocImm:$src #8
/* 21960*/          OPC_EmitMergeInputChains1_0,
/* 21961*/          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_relocImm8_su>>:$src) - Complexity = 28
                    // Dst: (CMP8mi:{ *:[i32] } addr:{ *:[iPTR] }:$dst, relocImm:{ *:[i8] }:$src)
/* 21973*/        0, // EndSwitchType
/* 21974*/      0, // EndSwitchOpcode
/* 21975*/    /*Scope*/ 3|128,1/*131*/, /*->22108*/
/* 21977*/      OPC_RecordChild0, // #0 = $src1
/* 21978*/      OPC_Scope, 31, /*->22011*/ // 4 children in Scope
/* 21980*/        OPC_CheckChild0Type, MVT::i8,
/* 21982*/        OPC_MoveChild1,
/* 21983*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 21986*/        OPC_RecordMemRef,
/* 21987*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 21988*/        OPC_CheckFoldableChainNode,
/* 21989*/        OPC_RecordChild1, // #2 = $src2
/* 21990*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 21992*/        OPC_CheckPredicate, 5, // Predicate_loadi8
/* 21994*/        OPC_MoveParent,
/* 21995*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 21998*/        OPC_EmitMergeInputChains1_1,
/* 21999*/        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)
/* 22011*/      /*Scope*/ 31, /*->22043*/
/* 22012*/        OPC_CheckChild0Type, MVT::i16,
/* 22014*/        OPC_MoveChild1,
/* 22015*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 22018*/        OPC_RecordMemRef,
/* 22019*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 22020*/        OPC_CheckFoldableChainNode,
/* 22021*/        OPC_RecordChild1, // #2 = $src2
/* 22022*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 22024*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 22026*/        OPC_MoveParent,
/* 22027*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 22030*/        OPC_EmitMergeInputChains1_1,
/* 22031*/        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)
/* 22043*/      /*Scope*/ 31, /*->22075*/
/* 22044*/        OPC_CheckChild0Type, MVT::i32,
/* 22046*/        OPC_MoveChild1,
/* 22047*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 22050*/        OPC_RecordMemRef,
/* 22051*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 22052*/        OPC_CheckFoldableChainNode,
/* 22053*/        OPC_RecordChild1, // #2 = $src2
/* 22054*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 22056*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 22058*/        OPC_MoveParent,
/* 22059*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 22062*/        OPC_EmitMergeInputChains1_1,
/* 22063*/        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)
/* 22075*/      /*Scope*/ 31, /*->22107*/
/* 22076*/        OPC_CheckChild0Type, MVT::i64,
/* 22078*/        OPC_MoveChild1,
/* 22079*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 22082*/        OPC_RecordMemRef,
/* 22083*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 22084*/        OPC_CheckFoldableChainNode,
/* 22085*/        OPC_RecordChild1, // #2 = $src2
/* 22086*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 22088*/        OPC_CheckPredicate, 9, // Predicate_load
/* 22090*/        OPC_MoveParent,
/* 22091*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 22094*/        OPC_EmitMergeInputChains1_1,
/* 22095*/        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)
/* 22107*/      0, /*End of Scope*/
/* 22108*/    /*Scope*/ 100, /*->22209*/
/* 22109*/      OPC_MoveChild0,
/* 22110*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 22113*/      OPC_RecordMemRef,
/* 22114*/      OPC_RecordNode, // #0 = 'ld' chained node
/* 22115*/      OPC_CheckFoldableChainNode,
/* 22116*/      OPC_RecordChild1, // #1 = $dst
/* 22117*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 22119*/      OPC_SwitchType /*4 cases */, 20, MVT::i8,// ->22142
/* 22122*/        OPC_CheckPredicate, 5, // Predicate_loadi8
/* 22124*/        OPC_MoveParent,
/* 22125*/        OPC_RecordChild1, // #2 = $src
/* 22126*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 22129*/        OPC_EmitMergeInputChains1_0,
/* 22130*/        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)
/* 22142*/      /*SwitchType*/ 20, MVT::i16,// ->22164
/* 22144*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 22146*/        OPC_MoveParent,
/* 22147*/        OPC_RecordChild1, // #2 = $src
/* 22148*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 22151*/        OPC_EmitMergeInputChains1_0,
/* 22152*/        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)
/* 22164*/      /*SwitchType*/ 20, MVT::i32,// ->22186
/* 22166*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 22168*/        OPC_MoveParent,
/* 22169*/        OPC_RecordChild1, // #2 = $src
/* 22170*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 22173*/        OPC_EmitMergeInputChains1_0,
/* 22174*/        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)
/* 22186*/      /*SwitchType*/ 20, MVT::i64,// ->22208
/* 22188*/        OPC_CheckPredicate, 9, // Predicate_load
/* 22190*/        OPC_MoveParent,
/* 22191*/        OPC_RecordChild1, // #2 = $src
/* 22192*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 22195*/        OPC_EmitMergeInputChains1_0,
/* 22196*/        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)
/* 22208*/      0, // EndSwitchType
/* 22209*/    /*Scope*/ 25|128,1/*153*/, /*->22364*/
/* 22211*/      OPC_RecordChild0, // #0 = $src1
/* 22212*/      OPC_Scope, 74, /*->22288*/ // 2 children in Scope
/* 22214*/        OPC_CheckChild0Type, MVT::f32,
/* 22216*/        OPC_MoveChild1,
/* 22217*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 22220*/        OPC_RecordMemRef,
/* 22221*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 22222*/        OPC_CheckFoldableChainNode,
/* 22223*/        OPC_RecordChild1, // #2 = $src2
/* 22224*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 22226*/        OPC_CheckPredicate, 9, // Predicate_load
/* 22228*/        OPC_MoveParent,
/* 22229*/        OPC_Scope, 18, /*->22249*/ // 3 children in Scope
/* 22231*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 22233*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 22236*/          OPC_EmitMergeInputChains1_1,
/* 22237*/          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)
/* 22249*/        /*Scope*/ 18, /*->22268*/
/* 22250*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/* 22252*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 22255*/          OPC_EmitMergeInputChains1_1,
/* 22256*/          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)
/* 22268*/        /*Scope*/ 18, /*->22287*/
/* 22269*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 22271*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 22274*/          OPC_EmitMergeInputChains1_1,
/* 22275*/          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)
/* 22287*/        0, /*End of Scope*/
/* 22288*/      /*Scope*/ 74, /*->22363*/
/* 22289*/        OPC_CheckChild0Type, MVT::f64,
/* 22291*/        OPC_MoveChild1,
/* 22292*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 22295*/        OPC_RecordMemRef,
/* 22296*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 22297*/        OPC_CheckFoldableChainNode,
/* 22298*/        OPC_RecordChild1, // #2 = $src2
/* 22299*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 22301*/        OPC_CheckPredicate, 9, // Predicate_load
/* 22303*/        OPC_MoveParent,
/* 22304*/        OPC_Scope, 18, /*->22324*/ // 3 children in Scope
/* 22306*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 22308*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 22311*/          OPC_EmitMergeInputChains1_1,
/* 22312*/          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)
/* 22324*/        /*Scope*/ 18, /*->22343*/
/* 22325*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 22327*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 22330*/          OPC_EmitMergeInputChains1_1,
/* 22331*/          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)
/* 22343*/        /*Scope*/ 18, /*->22362*/
/* 22344*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 22346*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 22349*/          OPC_EmitMergeInputChains1_1,
/* 22350*/          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)
/* 22362*/        0, /*End of Scope*/
/* 22363*/      0, /*End of Scope*/
/* 22364*/    /*Scope*/ 76|128,1/*204*/, /*->22570*/
/* 22366*/      OPC_MoveChild0,
/* 22367*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 22370*/      OPC_RecordChild0, // #0 = $src1
/* 22371*/      OPC_Scope, 96, /*->22469*/ // 2 children in Scope
/* 22373*/        OPC_RecordChild1, // #1 = $src2
/* 22374*/        OPC_MoveChild1,
/* 22375*/        OPC_Scope, 21, /*->22398*/ // 4 children in Scope
/* 22377*/          OPC_CheckPredicate, 15, // Predicate_relocImm8_su
/* 22379*/          OPC_MoveParent,
/* 22380*/          OPC_CheckPredicate, 17, // Predicate_and_su
/* 22382*/          OPC_CheckType, MVT::i8,
/* 22384*/          OPC_MoveParent,
/* 22385*/          OPC_CheckChild1Integer, 0, 
/* 22387*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #2
/* 22390*/          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_relocImm8_su>>:$src2)<<P:Predicate_and_su>>, 0:{ *:[i8] }) - Complexity = 15
                    // Dst: (TEST8ri:{ *:[i32] } GR8:{ *:[i8] }:$src1, relocImm:{ *:[i8] }:$src2)
/* 22398*/        /*Scope*/ 21, /*->22420*/
/* 22399*/          OPC_CheckPredicate, 15, // Predicate_relocImm16_su
/* 22401*/          OPC_MoveParent,
/* 22402*/          OPC_CheckPredicate, 17, // Predicate_and_su
/* 22404*/          OPC_CheckType, MVT::i16,
/* 22406*/          OPC_MoveParent,
/* 22407*/          OPC_CheckChild1Integer, 0, 
/* 22409*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #2
/* 22412*/          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_relocImm16_su>>:$src2)<<P:Predicate_and_su>>, 0:{ *:[i16] }) - Complexity = 15
                    // Dst: (TEST16ri:{ *:[i32] } GR16:{ *:[i16] }:$src1, relocImm:{ *:[i16] }:$src2)
/* 22420*/        /*Scope*/ 21, /*->22442*/
/* 22421*/          OPC_CheckPredicate, 15, // Predicate_relocImm32_su
/* 22423*/          OPC_MoveParent,
/* 22424*/          OPC_CheckPredicate, 17, // Predicate_and_su
/* 22426*/          OPC_CheckType, MVT::i32,
/* 22428*/          OPC_MoveParent,
/* 22429*/          OPC_CheckChild1Integer, 0, 
/* 22431*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #2
/* 22434*/          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_relocImm32_su>>:$src2)<<P:Predicate_and_su>>, 0:{ *:[i32] }) - Complexity = 15
                    // Dst: (TEST32ri:{ *:[i32] } GR32:{ *:[i32] }:$src1, relocImm:{ *:[i32] }:$src2)
/* 22442*/        /*Scope*/ 25, /*->22468*/
/* 22443*/          OPC_CheckPredicate, 16, // Predicate_i64relocImmSExt32
/* 22445*/          OPC_CheckPredicate, 15, // Predicate_i64relocImmSExt32_su
/* 22447*/          OPC_MoveParent,
/* 22448*/          OPC_CheckPredicate, 17, // Predicate_and_su
/* 22450*/          OPC_CheckType, MVT::i64,
/* 22452*/          OPC_MoveParent,
/* 22453*/          OPC_CheckChild1Integer, 0, 
/* 22455*/          OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/* 22457*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #2
/* 22460*/          OPC_MorphNodeTo1, TARGET_VAL(X86::TEST64ri32), 0,
                        MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86cmp:{ *:[i32] } (and:{ *:[i64] } GR64:{ *:[i64] }:$src1, relocImm:{ *:[i64] }<<P:Predicate_i64relocImmSExt32>><<P:Predicate_i64relocImmSExt32_su>>:$src2)<<P:Predicate_and_su>>, 0:{ *:[i64] }) - Complexity = 15
                    // Dst: (TEST64ri32:{ *:[i32] } GR64:{ *:[i64] }:$src1, relocImm:{ *:[i64] }:$src2)
/* 22468*/        0, /*End of Scope*/
/* 22469*/      /*Scope*/ 99, /*->22569*/
/* 22470*/        OPC_MoveChild0,
/* 22471*/        OPC_Scope, 22, /*->22495*/ // 4 children in Scope
/* 22473*/          OPC_CheckPredicate, 15, // Predicate_relocImm8_su
/* 22475*/          OPC_MoveParent,
/* 22476*/          OPC_RecordChild1, // #1 = $src1
/* 22477*/          OPC_CheckPredicate, 17, // Predicate_and_su
/* 22479*/          OPC_CheckType, MVT::i8,
/* 22481*/          OPC_MoveParent,
/* 22482*/          OPC_CheckChild1Integer, 0, 
/* 22484*/          OPC_CheckComplexPat, /*CP*/1, /*#*/0, // selectRelocImm:$src2 #2
/* 22487*/          OPC_MorphNodeTo1, TARGET_VAL(X86::TEST8ri), 0,
                        MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (X86cmp:{ *:[i32] } (and:{ *:[i8] } relocImm:{ *:[i8] }<<P:Predicate_relocImm8_su>>:$src2, GR8:{ *:[i8] }:$src1)<<P:Predicate_and_su>>, 0:{ *:[i8] }) - Complexity = 15
                    // Dst: (TEST8ri:{ *:[i32] } GR8:{ *:[i8] }:$src1, relocImm:{ *:[i8] }:$src2)
/* 22495*/        /*Scope*/ 22, /*->22518*/
/* 22496*/          OPC_CheckPredicate, 15, // Predicate_relocImm16_su
/* 22498*/          OPC_MoveParent,
/* 22499*/          OPC_RecordChild1, // #1 = $src1
/* 22500*/          OPC_CheckPredicate, 17, // Predicate_and_su
/* 22502*/          OPC_CheckType, MVT::i16,
/* 22504*/          OPC_MoveParent,
/* 22505*/          OPC_CheckChild1Integer, 0, 
/* 22507*/          OPC_CheckComplexPat, /*CP*/1, /*#*/0, // selectRelocImm:$src2 #2
/* 22510*/          OPC_MorphNodeTo1, TARGET_VAL(X86::TEST16ri), 0,
                        MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (X86cmp:{ *:[i32] } (and:{ *:[i16] } relocImm:{ *:[i16] }<<P:Predicate_relocImm16_su>>:$src2, GR16:{ *:[i16] }:$src1)<<P:Predicate_and_su>>, 0:{ *:[i16] }) - Complexity = 15
                    // Dst: (TEST16ri:{ *:[i32] } GR16:{ *:[i16] }:$src1, relocImm:{ *:[i16] }:$src2)
/* 22518*/        /*Scope*/ 22, /*->22541*/
/* 22519*/          OPC_CheckPredicate, 15, // Predicate_relocImm32_su
/* 22521*/          OPC_MoveParent,
/* 22522*/          OPC_RecordChild1, // #1 = $src1
/* 22523*/          OPC_CheckPredicate, 17, // Predicate_and_su
/* 22525*/          OPC_CheckType, MVT::i32,
/* 22527*/          OPC_MoveParent,
/* 22528*/          OPC_CheckChild1Integer, 0, 
/* 22530*/          OPC_CheckComplexPat, /*CP*/1, /*#*/0, // selectRelocImm:$src2 #2
/* 22533*/          OPC_MorphNodeTo1, TARGET_VAL(X86::TEST32ri), 0,
                        MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (X86cmp:{ *:[i32] } (and:{ *:[i32] } relocImm:{ *:[i32] }<<P:Predicate_relocImm32_su>>:$src2, GR32:{ *:[i32] }:$src1)<<P:Predicate_and_su>>, 0:{ *:[i32] }) - Complexity = 15
                    // Dst: (TEST32ri:{ *:[i32] } GR32:{ *:[i32] }:$src1, relocImm:{ *:[i32] }:$src2)
/* 22541*/        /*Scope*/ 26, /*->22568*/
/* 22542*/          OPC_CheckPredicate, 16, // Predicate_i64relocImmSExt32
/* 22544*/          OPC_CheckPredicate, 15, // Predicate_i64relocImmSExt32_su
/* 22546*/          OPC_MoveParent,
/* 22547*/          OPC_RecordChild1, // #1 = $src1
/* 22548*/          OPC_CheckPredicate, 17, // Predicate_and_su
/* 22550*/          OPC_CheckType, MVT::i64,
/* 22552*/          OPC_MoveParent,
/* 22553*/          OPC_CheckChild1Integer, 0, 
/* 22555*/          OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/* 22557*/          OPC_CheckComplexPat, /*CP*/1, /*#*/0, // selectRelocImm:$src2 #2
/* 22560*/          OPC_MorphNodeTo1, TARGET_VAL(X86::TEST64ri32), 0,
                        MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (X86cmp:{ *:[i32] } (and:{ *:[i64] } relocImm:{ *:[i64] }<<P:Predicate_i64relocImmSExt32>><<P:Predicate_i64relocImmSExt32_su>>:$src2, GR64:{ *:[i64] }:$src1)<<P:Predicate_and_su>>, 0:{ *:[i64] }) - Complexity = 15
                    // Dst: (TEST64ri32:{ *:[i32] } GR64:{ *:[i64] }:$src1, relocImm:{ *:[i64] }:$src2)
/* 22568*/        0, /*End of Scope*/
/* 22569*/      0, /*End of Scope*/
/* 22570*/    /*Scope*/ 109|128,2/*365*/, /*->22937*/
/* 22572*/      OPC_RecordChild0, // #0 = $src1
/* 22573*/      OPC_Scope, 44, /*->22619*/ // 7 children in Scope
/* 22575*/        OPC_CheckChild0Type, MVT::i8,
/* 22577*/        OPC_Scope, 10, /*->22589*/ // 2 children in Scope
/* 22579*/          OPC_CheckChild1Integer, 0, 
/* 22581*/          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)
/* 22589*/        /*Scope*/ 28, /*->22618*/
/* 22590*/          OPC_RecordChild1, // #1 = $src2
/* 22591*/          OPC_Scope, 15, /*->22608*/ // 2 children in Scope
/* 22593*/            OPC_MoveChild1,
/* 22594*/            OPC_CheckPredicate, 15, // Predicate_relocImm8_su
/* 22596*/            OPC_MoveParent,
/* 22597*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #2
/* 22600*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMP8ri), 0,
                          MVT::i32, 2/*#Ops*/, 0, 2, 
                      // Src: (X86cmp:{ *:[i32] } GR8:{ *:[i8] }:$src1, relocImm:{ *:[i8] }<<P:Predicate_relocImm8_su>>:$src2) - Complexity = 6
                      // Dst: (CMP8ri:{ *:[i32] } GR8:{ *:[i8] }:$src1, relocImm:{ *:[i8] }:$src2)
/* 22608*/          /*Scope*/ 8, /*->22617*/
/* 22609*/            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)
/* 22617*/          0, /*End of Scope*/
/* 22618*/        0, /*End of Scope*/
/* 22619*/      /*Scope*/ 66, /*->22686*/
/* 22620*/        OPC_CheckChild0Type, MVT::i16,
/* 22622*/        OPC_Scope, 10, /*->22634*/ // 2 children in Scope
/* 22624*/          OPC_CheckChild1Integer, 0, 
/* 22626*/          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)
/* 22634*/        /*Scope*/ 50, /*->22685*/
/* 22635*/          OPC_RecordChild1, // #1 = $src2
/* 22636*/          OPC_Scope, 37, /*->22675*/ // 2 children in Scope
/* 22638*/            OPC_MoveChild1,
/* 22639*/            OPC_Scope, 18, /*->22659*/ // 2 children in Scope
/* 22641*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 22644*/              OPC_CheckPredicate, 13, // Predicate_i16immSExt8
/* 22646*/              OPC_CheckPredicate, 14, // Predicate_i16immSExt8_su
/* 22648*/              OPC_MoveParent,
/* 22649*/              OPC_EmitConvertToTarget, 1,
/* 22651*/              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)
/* 22659*/            /*Scope*/ 14, /*->22674*/
/* 22660*/              OPC_CheckPredicate, 15, // Predicate_relocImm16_su
/* 22662*/              OPC_MoveParent,
/* 22663*/              OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #2
/* 22666*/              OPC_MorphNodeTo1, TARGET_VAL(X86::CMP16ri), 0,
                            MVT::i32, 2/*#Ops*/, 0, 2, 
                        // Src: (X86cmp:{ *:[i32] } GR16:{ *:[i16] }:$src1, relocImm:{ *:[i16] }<<P:Predicate_relocImm16_su>>:$src2) - Complexity = 6
                        // Dst: (CMP16ri:{ *:[i32] } GR16:{ *:[i16] }:$src1, relocImm:{ *:[i16] }:$src2)
/* 22674*/            0, /*End of Scope*/
/* 22675*/          /*Scope*/ 8, /*->22684*/
/* 22676*/            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)
/* 22684*/          0, /*End of Scope*/
/* 22685*/        0, /*End of Scope*/
/* 22686*/      /*Scope*/ 66, /*->22753*/
/* 22687*/        OPC_CheckChild0Type, MVT::i32,
/* 22689*/        OPC_Scope, 10, /*->22701*/ // 2 children in Scope
/* 22691*/          OPC_CheckChild1Integer, 0, 
/* 22693*/          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)
/* 22701*/        /*Scope*/ 50, /*->22752*/
/* 22702*/          OPC_RecordChild1, // #1 = $src2
/* 22703*/          OPC_Scope, 37, /*->22742*/ // 2 children in Scope
/* 22705*/            OPC_MoveChild1,
/* 22706*/            OPC_Scope, 18, /*->22726*/ // 2 children in Scope
/* 22708*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 22711*/              OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/* 22713*/              OPC_CheckPredicate, 14, // Predicate_i32immSExt8_su
/* 22715*/              OPC_MoveParent,
/* 22716*/              OPC_EmitConvertToTarget, 1,
/* 22718*/              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)
/* 22726*/            /*Scope*/ 14, /*->22741*/
/* 22727*/              OPC_CheckPredicate, 15, // Predicate_relocImm32_su
/* 22729*/              OPC_MoveParent,
/* 22730*/              OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #2
/* 22733*/              OPC_MorphNodeTo1, TARGET_VAL(X86::CMP32ri), 0,
                            MVT::i32, 2/*#Ops*/, 0, 2, 
                        // Src: (X86cmp:{ *:[i32] } GR32:{ *:[i32] }:$src1, relocImm:{ *:[i32] }<<P:Predicate_relocImm32_su>>:$src2) - Complexity = 6
                        // Dst: (CMP32ri:{ *:[i32] } GR32:{ *:[i32] }:$src1, relocImm:{ *:[i32] }:$src2)
/* 22741*/            0, /*End of Scope*/
/* 22742*/          /*Scope*/ 8, /*->22751*/
/* 22743*/            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)
/* 22751*/          0, /*End of Scope*/
/* 22752*/        0, /*End of Scope*/
/* 22753*/      /*Scope*/ 68, /*->22822*/
/* 22754*/        OPC_CheckChild0Type, MVT::i64,
/* 22756*/        OPC_Scope, 10, /*->22768*/ // 2 children in Scope
/* 22758*/          OPC_CheckChild1Integer, 0, 
/* 22760*/          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)
/* 22768*/        /*Scope*/ 52, /*->22821*/
/* 22769*/          OPC_RecordChild1, // #1 = $src2
/* 22770*/          OPC_Scope, 39, /*->22811*/ // 2 children in Scope
/* 22772*/            OPC_MoveChild1,
/* 22773*/            OPC_Scope, 18, /*->22793*/ // 2 children in Scope
/* 22775*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 22778*/              OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/* 22780*/              OPC_CheckPredicate, 14, // Predicate_i64immSExt8_su
/* 22782*/              OPC_MoveParent,
/* 22783*/              OPC_EmitConvertToTarget, 1,
/* 22785*/              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)
/* 22793*/            /*Scope*/ 16, /*->22810*/
/* 22794*/              OPC_CheckPredicate, 16, // Predicate_i64relocImmSExt32
/* 22796*/              OPC_CheckPredicate, 15, // Predicate_i64relocImmSExt32_su
/* 22798*/              OPC_MoveParent,
/* 22799*/              OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #2
/* 22802*/              OPC_MorphNodeTo1, TARGET_VAL(X86::CMP64ri32), 0,
                            MVT::i32, 2/*#Ops*/, 0, 2, 
                        // Src: (X86cmp:{ *:[i32] } GR64:{ *:[i64] }:$src1, relocImm:{ *:[i64] }<<P:Predicate_i64relocImmSExt32>><<P:Predicate_i64relocImmSExt32_su>>:$src2) - Complexity = 6
                        // Dst: (CMP64ri32:{ *:[i32] } GR64:{ *:[i64] }:$src1, relocImm:{ *:[i64] }:$src2)
/* 22810*/            0, /*End of Scope*/
/* 22811*/          /*Scope*/ 8, /*->22820*/
/* 22812*/            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)
/* 22820*/          0, /*End of Scope*/
/* 22821*/        0, /*End of Scope*/
/* 22822*/      /*Scope*/ 49, /*->22872*/
/* 22823*/        OPC_CheckChild0Type, MVT::f32,
/* 22825*/        OPC_RecordChild1, // #1 = $rhs
/* 22826*/        OPC_Scope, 10, /*->22838*/ // 4 children in Scope
/* 22828*/          OPC_CheckPatternPredicate, 32, // (!Subtarget->hasSSE1()) && (Subtarget->hasCMov())
/* 22830*/          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)
/* 22838*/        /*Scope*/ 10, /*->22849*/
/* 22839*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 22841*/          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)
/* 22849*/        /*Scope*/ 10, /*->22860*/
/* 22850*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/* 22852*/          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)
/* 22860*/        /*Scope*/ 10, /*->22871*/
/* 22861*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 22863*/          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)
/* 22871*/        0, /*End of Scope*/
/* 22872*/      /*Scope*/ 49, /*->22922*/
/* 22873*/        OPC_CheckChild0Type, MVT::f64,
/* 22875*/        OPC_RecordChild1, // #1 = $rhs
/* 22876*/        OPC_Scope, 10, /*->22888*/ // 4 children in Scope
/* 22878*/          OPC_CheckPatternPredicate, 33, // (!Subtarget->hasSSE2()) && (Subtarget->hasCMov())
/* 22880*/          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)
/* 22888*/        /*Scope*/ 10, /*->22899*/
/* 22889*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 22891*/          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)
/* 22899*/        /*Scope*/ 10, /*->22910*/
/* 22900*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 22902*/          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)
/* 22910*/        /*Scope*/ 10, /*->22921*/
/* 22911*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 22913*/          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)
/* 22921*/        0, /*End of Scope*/
/* 22922*/      /*Scope*/ 13, /*->22936*/
/* 22923*/        OPC_CheckChild0Type, MVT::f80,
/* 22925*/        OPC_RecordChild1, // #1 = $rhs
/* 22926*/        OPC_CheckPatternPredicate, 34, // (Subtarget->hasCMov())
/* 22928*/        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)
/* 22936*/      0, /*End of Scope*/
/* 22937*/    0, /*End of Scope*/
/* 22938*/  /*SwitchOpcode*/ 20|128,101/*12948*/, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),// ->35890
/* 22942*/    OPC_Scope, 71, /*->23015*/ // 199 children in Scope
/* 22944*/      OPC_CheckChild0Integer, 105|128,55/*7145*/, 
/* 22947*/      OPC_RecordChild1, // #0 = $src1
/* 22948*/      OPC_Scope, 45, /*->22995*/ // 2 children in Scope
/* 22950*/        OPC_MoveChild2,
/* 22951*/        OPC_CheckOpcode, TARGET_VAL(ISD::ANY_EXTEND),
/* 22954*/        OPC_MoveChild0,
/* 22955*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 22958*/        OPC_RecordMemRef,
/* 22959*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 22960*/        OPC_CheckFoldableChainNode,
/* 22961*/        OPC_RecordChild1, // #2 = $src2
/* 22962*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 22964*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 22966*/        OPC_CheckType, MVT::i16,
/* 22968*/        OPC_MoveParent,
/* 22969*/        OPC_MoveParent,
/* 22970*/        OPC_RecordChild3, // #3 = $src3
/* 22971*/        OPC_MoveChild3,
/* 22972*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 22975*/        OPC_MoveParent,
/* 22976*/        OPC_CheckPatternPredicate, 35, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 22978*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 22981*/        OPC_EmitMergeInputChains1_1,
/* 22982*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PINSRWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7145:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, (anyext:{ *:[i32] } (ld:{ *:[i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>), (timm:{ *:[i32] }):$src3) - Complexity = 36
                  // Dst: (MMX_PINSRWrm:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i32] }):$src3)
/* 22995*/      /*Scope*/ 18, /*->23014*/
/* 22996*/        OPC_RecordChild2, // #1 = $src2
/* 22997*/        OPC_RecordChild3, // #2 = $src3
/* 22998*/        OPC_MoveChild3,
/* 22999*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 23002*/        OPC_MoveParent,
/* 23003*/        OPC_CheckPatternPredicate, 35, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 23005*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PINSRWrr), 0,
                      MVT::x86mmx, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7145:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, GR32orGR64:{ *:[i32] }:$src2, (timm:{ *:[i32] }):$src3) - Complexity = 11
                  // Dst: (MMX_PINSRWrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, GR32orGR64:{ *:[i32] }:$src2, (timm:{ *:[i32] }):$src3)
/* 23014*/      0, /*End of Scope*/
/* 23015*/    /*Scope*/ 64, /*->23080*/
/* 23016*/      OPC_CheckChild0Integer, 93|128,55/*7133*/, 
/* 23019*/      OPC_RecordChild1, // #0 = $src1
/* 23020*/      OPC_Scope, 38, /*->23060*/ // 2 children in Scope
/* 23022*/        OPC_MoveChild2,
/* 23023*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 23026*/        OPC_RecordMemRef,
/* 23027*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 23028*/        OPC_CheckFoldableChainNode,
/* 23029*/        OPC_RecordChild1, // #2 = $src2
/* 23030*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 23032*/        OPC_CheckPredicate, 9, // Predicate_load
/* 23034*/        OPC_MoveParent,
/* 23035*/        OPC_RecordChild3, // #3 = $src3
/* 23036*/        OPC_MoveChild3,
/* 23037*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 23040*/        OPC_MoveParent,
/* 23041*/        OPC_CheckPatternPredicate, 36, // (Subtarget->hasMMX()) && (Subtarget->hasSSSE3())
/* 23043*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 23046*/        OPC_EmitMergeInputChains1_1,
/* 23047*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PALIGNRrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7133:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, (ld:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 33
                  // Dst: (MMX_PALIGNRrmi:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/* 23060*/      /*Scope*/ 18, /*->23079*/
/* 23061*/        OPC_RecordChild2, // #1 = $src2
/* 23062*/        OPC_RecordChild3, // #2 = $src3
/* 23063*/        OPC_MoveChild3,
/* 23064*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 23067*/        OPC_MoveParent,
/* 23068*/        OPC_CheckPatternPredicate, 36, // (Subtarget->hasMMX()) && (Subtarget->hasSSSE3())
/* 23070*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PALIGNRrri), 0,
                      MVT::x86mmx, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7133:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 11
                  // Dst: (MMX_PALIGNRrri:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2, (timm:{ *:[i8] }):$src3)
/* 23079*/      0, /*End of Scope*/
/* 23080*/    /*Scope*/ 61, /*->23142*/
/* 23081*/      OPC_CheckChild0Integer, 84|128,56/*7252*/, 
/* 23084*/      OPC_Scope, 37, /*->23123*/ // 2 children in Scope
/* 23086*/        OPC_MoveChild1,
/* 23087*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 23090*/        OPC_RecordMemRef,
/* 23091*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 23092*/        OPC_CheckFoldableChainNode,
/* 23093*/        OPC_RecordChild1, // #1 = $src1
/* 23094*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 23096*/        OPC_CheckPredicate, 9, // Predicate_load
/* 23098*/        OPC_MoveParent,
/* 23099*/        OPC_RecordChild2, // #2 = $src2
/* 23100*/        OPC_MoveChild2,
/* 23101*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 23104*/        OPC_MoveParent,
/* 23105*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 23107*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/* 23110*/        OPC_EmitMergeInputChains1_0,
/* 23111*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSHUFWmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::x86mmx, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7252:{ *:[iPTR] }, (ld:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 33
                  // Dst: (MMX_PSHUFWmi:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/* 23123*/      /*Scope*/ 17, /*->23141*/
/* 23124*/        OPC_RecordChild1, // #0 = $src1
/* 23125*/        OPC_RecordChild2, // #1 = $src2
/* 23126*/        OPC_MoveChild2,
/* 23127*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 23130*/        OPC_MoveParent,
/* 23131*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 23133*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSHUFWri), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7252:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 11
                  // Dst: (MMX_PSHUFWri:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, (timm:{ *:[i8] }):$src2)
/* 23141*/      0, /*End of Scope*/
/* 23142*/    /*Scope*/ 50, /*->23193*/
/* 23143*/      OPC_CheckChild0Integer, 48|128,55/*7088*/, 
/* 23146*/      OPC_RecordChild1, // #0 = $src1
/* 23147*/      OPC_Scope, 31, /*->23180*/ // 2 children in Scope
/* 23149*/        OPC_MoveChild2,
/* 23150*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 23153*/        OPC_RecordMemRef,
/* 23154*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 23155*/        OPC_CheckFoldableChainNode,
/* 23156*/        OPC_RecordChild1, // #2 = $src2
/* 23157*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 23159*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 23161*/        OPC_MoveParent,
/* 23162*/        OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI2())
/* 23164*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 23167*/        OPC_EmitMergeInputChains1_1,
/* 23168*/        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] } 7088:{ *:[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)
/* 23180*/      /*Scope*/ 11, /*->23192*/
/* 23181*/        OPC_RecordChild2, // #1 = $src2
/* 23182*/        OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI2())
/* 23184*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PDEP32rr), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 7088:{ *:[iPTR] }, GR32:{ *:[i32] }:$src1, GR32:{ *:[i32] }:$src2) - Complexity = 8
                  // Dst: (PDEP32rr:{ *:[i32] } GR32:{ *:[i32] }:$src1, GR32:{ *:[i32] }:$src2)
/* 23192*/      0, /*End of Scope*/
/* 23193*/    /*Scope*/ 50, /*->23244*/
/* 23194*/      OPC_CheckChild0Integer, 49|128,55/*7089*/, 
/* 23197*/      OPC_RecordChild1, // #0 = $src1
/* 23198*/      OPC_Scope, 31, /*->23231*/ // 2 children in Scope
/* 23200*/        OPC_MoveChild2,
/* 23201*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 23204*/        OPC_RecordMemRef,
/* 23205*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 23206*/        OPC_CheckFoldableChainNode,
/* 23207*/        OPC_RecordChild1, // #2 = $src2
/* 23208*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 23210*/        OPC_CheckPredicate, 9, // Predicate_load
/* 23212*/        OPC_MoveParent,
/* 23213*/        OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI2())
/* 23215*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 23218*/        OPC_EmitMergeInputChains1_1,
/* 23219*/        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] } 7089:{ *:[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)
/* 23231*/      /*Scope*/ 11, /*->23243*/
/* 23232*/        OPC_RecordChild2, // #1 = $src2
/* 23233*/        OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI2())
/* 23235*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PDEP64rr), 0,
                      MVT::i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i64] } 7089:{ *:[iPTR] }, GR64:{ *:[i64] }:$src1, GR64:{ *:[i64] }:$src2) - Complexity = 8
                  // Dst: (PDEP64rr:{ *:[i64] } GR64:{ *:[i64] }:$src1, GR64:{ *:[i64] }:$src2)
/* 23243*/      0, /*End of Scope*/
/* 23244*/    /*Scope*/ 50, /*->23295*/
/* 23245*/      OPC_CheckChild0Integer, 50|128,55/*7090*/, 
/* 23248*/      OPC_RecordChild1, // #0 = $src1
/* 23249*/      OPC_Scope, 31, /*->23282*/ // 2 children in Scope
/* 23251*/        OPC_MoveChild2,
/* 23252*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 23255*/        OPC_RecordMemRef,
/* 23256*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 23257*/        OPC_CheckFoldableChainNode,
/* 23258*/        OPC_RecordChild1, // #2 = $src2
/* 23259*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 23261*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 23263*/        OPC_MoveParent,
/* 23264*/        OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI2())
/* 23266*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 23269*/        OPC_EmitMergeInputChains1_1,
/* 23270*/        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] } 7090:{ *:[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)
/* 23282*/      /*Scope*/ 11, /*->23294*/
/* 23283*/        OPC_RecordChild2, // #1 = $src2
/* 23284*/        OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI2())
/* 23286*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PEXT32rr), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 7090:{ *:[iPTR] }, GR32:{ *:[i32] }:$src1, GR32:{ *:[i32] }:$src2) - Complexity = 8
                  // Dst: (PEXT32rr:{ *:[i32] } GR32:{ *:[i32] }:$src1, GR32:{ *:[i32] }:$src2)
/* 23294*/      0, /*End of Scope*/
/* 23295*/    /*Scope*/ 50, /*->23346*/
/* 23296*/      OPC_CheckChild0Integer, 51|128,55/*7091*/, 
/* 23299*/      OPC_RecordChild1, // #0 = $src1
/* 23300*/      OPC_Scope, 31, /*->23333*/ // 2 children in Scope
/* 23302*/        OPC_MoveChild2,
/* 23303*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 23306*/        OPC_RecordMemRef,
/* 23307*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 23308*/        OPC_CheckFoldableChainNode,
/* 23309*/        OPC_RecordChild1, // #2 = $src2
/* 23310*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 23312*/        OPC_CheckPredicate, 9, // Predicate_load
/* 23314*/        OPC_MoveParent,
/* 23315*/        OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI2())
/* 23317*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 23320*/        OPC_EmitMergeInputChains1_1,
/* 23321*/        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] } 7091:{ *:[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)
/* 23333*/      /*Scope*/ 11, /*->23345*/
/* 23334*/        OPC_RecordChild2, // #1 = $src2
/* 23335*/        OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI2())
/* 23337*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PEXT64rr), 0,
                      MVT::i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i64] } 7091:{ *:[iPTR] }, GR64:{ *:[i64] }:$src1, GR64:{ *:[i64] }:$src2) - Complexity = 8
                  // Dst: (PEXT64rr:{ *:[i64] } GR64:{ *:[i64] }:$src1, GR64:{ *:[i64] }:$src2)
/* 23345*/      0, /*End of Scope*/
/* 23346*/    /*Scope*/ 50, /*->23397*/
/* 23347*/      OPC_CheckChild0Integer, 56|128,57/*7352*/, 
/* 23350*/      OPC_RecordChild1, // #0 = $src1
/* 23351*/      OPC_Scope, 31, /*->23384*/ // 2 children in Scope
/* 23353*/        OPC_MoveChild2,
/* 23354*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 23357*/        OPC_RecordMemRef,
/* 23358*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 23359*/        OPC_CheckFoldableChainNode,
/* 23360*/        OPC_RecordChild1, // #2 = $src2
/* 23361*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 23363*/        OPC_CheckPredicate, 9, // Predicate_load
/* 23365*/        OPC_MoveParent,
/* 23366*/        OPC_CheckPatternPredicate, 38, // (Subtarget->hasSSE42())
/* 23368*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 23371*/        OPC_EmitMergeInputChains1_1,
/* 23372*/        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] } 7352:{ *:[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)
/* 23384*/      /*Scope*/ 11, /*->23396*/
/* 23385*/        OPC_RecordChild2, // #1 = $src2
/* 23386*/        OPC_CheckPatternPredicate, 38, // (Subtarget->hasSSE42())
/* 23388*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CRC32r32r8), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 7352:{ *:[iPTR] }, GR32:{ *:[i32] }:$src1, GR8:{ *:[i8] }:$src2) - Complexity = 8
                  // Dst: (CRC32r32r8:{ *:[i32] } GR32:{ *:[i32] }:$src1, GR8:{ *:[i8] }:$src2)
/* 23396*/      0, /*End of Scope*/
/* 23397*/    /*Scope*/ 50, /*->23448*/
/* 23398*/      OPC_CheckChild0Integer, 54|128,57/*7350*/, 
/* 23401*/      OPC_RecordChild1, // #0 = $src1
/* 23402*/      OPC_Scope, 31, /*->23435*/ // 2 children in Scope
/* 23404*/        OPC_MoveChild2,
/* 23405*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 23408*/        OPC_RecordMemRef,
/* 23409*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 23410*/        OPC_CheckFoldableChainNode,
/* 23411*/        OPC_RecordChild1, // #2 = $src2
/* 23412*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 23414*/        OPC_CheckPredicate, 9, // Predicate_load
/* 23416*/        OPC_MoveParent,
/* 23417*/        OPC_CheckPatternPredicate, 38, // (Subtarget->hasSSE42())
/* 23419*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 23422*/        OPC_EmitMergeInputChains1_1,
/* 23423*/        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] } 7350:{ *:[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)
/* 23435*/      /*Scope*/ 11, /*->23447*/
/* 23436*/        OPC_RecordChild2, // #1 = $src2
/* 23437*/        OPC_CheckPatternPredicate, 38, // (Subtarget->hasSSE42())
/* 23439*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CRC32r32r16), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 7350:{ *:[iPTR] }, GR32:{ *:[i32] }:$src1, GR16:{ *:[i16] }:$src2) - Complexity = 8
                  // Dst: (CRC32r32r16:{ *:[i32] } GR32:{ *:[i32] }:$src1, GR16:{ *:[i16] }:$src2)
/* 23447*/      0, /*End of Scope*/
/* 23448*/    /*Scope*/ 50, /*->23499*/
/* 23449*/      OPC_CheckChild0Integer, 55|128,57/*7351*/, 
/* 23452*/      OPC_RecordChild1, // #0 = $src1
/* 23453*/      OPC_Scope, 31, /*->23486*/ // 2 children in Scope
/* 23455*/        OPC_MoveChild2,
/* 23456*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 23459*/        OPC_RecordMemRef,
/* 23460*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 23461*/        OPC_CheckFoldableChainNode,
/* 23462*/        OPC_RecordChild1, // #2 = $src2
/* 23463*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 23465*/        OPC_CheckPredicate, 9, // Predicate_load
/* 23467*/        OPC_MoveParent,
/* 23468*/        OPC_CheckPatternPredicate, 38, // (Subtarget->hasSSE42())
/* 23470*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 23473*/        OPC_EmitMergeInputChains1_1,
/* 23474*/        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] } 7351:{ *:[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)
/* 23486*/      /*Scope*/ 11, /*->23498*/
/* 23487*/        OPC_RecordChild2, // #1 = $src2
/* 23488*/        OPC_CheckPatternPredicate, 38, // (Subtarget->hasSSE42())
/* 23490*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CRC32r32r32), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i32] } 7351:{ *:[iPTR] }, GR32:{ *:[i32] }:$src1, GR32:{ *:[i32] }:$src2) - Complexity = 8
                  // Dst: (CRC32r32r32:{ *:[i32] } GR32:{ *:[i32] }:$src1, GR32:{ *:[i32] }:$src2)
/* 23498*/      0, /*End of Scope*/
/* 23499*/    /*Scope*/ 50, /*->23550*/
/* 23500*/      OPC_CheckChild0Integer, 57|128,57/*7353*/, 
/* 23503*/      OPC_RecordChild1, // #0 = $src1
/* 23504*/      OPC_Scope, 31, /*->23537*/ // 2 children in Scope
/* 23506*/        OPC_MoveChild2,
/* 23507*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 23510*/        OPC_RecordMemRef,
/* 23511*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 23512*/        OPC_CheckFoldableChainNode,
/* 23513*/        OPC_RecordChild1, // #2 = $src2
/* 23514*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 23516*/        OPC_CheckPredicate, 9, // Predicate_load
/* 23518*/        OPC_MoveParent,
/* 23519*/        OPC_CheckPatternPredicate, 38, // (Subtarget->hasSSE42())
/* 23521*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 23524*/        OPC_EmitMergeInputChains1_1,
/* 23525*/        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] } 7353:{ *:[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)
/* 23537*/      /*Scope*/ 11, /*->23549*/
/* 23538*/        OPC_RecordChild2, // #1 = $src2
/* 23539*/        OPC_CheckPatternPredicate, 38, // (Subtarget->hasSSE42())
/* 23541*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CRC32r64r64), 0,
                      MVT::i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[i64] } 7353:{ *:[iPTR] }, GR64:{ *:[i64] }:$src1, GR64:{ *:[i64] }:$src2) - Complexity = 8
                  // Dst: (CRC32r64r64:{ *:[i64] } GR64:{ *:[i64] }:$src1, GR64:{ *:[i64] }:$src2)
/* 23549*/      0, /*End of Scope*/
/* 23550*/    /*Scope*/ 47, /*->23598*/
/* 23551*/      OPC_CheckChild0Integer, 76|128,57/*7372*/, 
/* 23554*/      OPC_Scope, 30, /*->23586*/ // 2 children in Scope
/* 23556*/        OPC_MoveChild1,
/* 23557*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 23560*/        OPC_RecordMemRef,
/* 23561*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 23562*/        OPC_CheckFoldableChainNode,
/* 23563*/        OPC_RecordChild1, // #1 = $src
/* 23564*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 23566*/        OPC_CheckPredicate, 9, // Predicate_load
/* 23568*/        OPC_MoveParent,
/* 23569*/        OPC_CheckPatternPredicate, 36, // (Subtarget->hasMMX()) && (Subtarget->hasSSSE3())
/* 23571*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 23574*/        OPC_EmitMergeInputChains1_0,
/* 23575*/        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] } 7372:{ *:[iPTR] }, (ld:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (MMX_PABSBrm:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src)
/* 23586*/      /*Scope*/ 10, /*->23597*/
/* 23587*/        OPC_RecordChild1, // #0 = $src
/* 23588*/        OPC_CheckPatternPredicate, 36, // (Subtarget->hasMMX()) && (Subtarget->hasSSSE3())
/* 23590*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PABSBrr), 0,
                      MVT::x86mmx, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7372:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src) - Complexity = 8
                  // Dst: (MMX_PABSBrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src)
/* 23597*/      0, /*End of Scope*/
/* 23598*/    /*Scope*/ 47, /*->23646*/
/* 23599*/      OPC_CheckChild0Integer, 78|128,57/*7374*/, 
/* 23602*/      OPC_Scope, 30, /*->23634*/ // 2 children in Scope
/* 23604*/        OPC_MoveChild1,
/* 23605*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 23608*/        OPC_RecordMemRef,
/* 23609*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 23610*/        OPC_CheckFoldableChainNode,
/* 23611*/        OPC_RecordChild1, // #1 = $src
/* 23612*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 23614*/        OPC_CheckPredicate, 9, // Predicate_load
/* 23616*/        OPC_MoveParent,
/* 23617*/        OPC_CheckPatternPredicate, 36, // (Subtarget->hasMMX()) && (Subtarget->hasSSSE3())
/* 23619*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 23622*/        OPC_EmitMergeInputChains1_0,
/* 23623*/        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] } 7374:{ *:[iPTR] }, (ld:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (MMX_PABSWrm:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src)
/* 23634*/      /*Scope*/ 10, /*->23645*/
/* 23635*/        OPC_RecordChild1, // #0 = $src
/* 23636*/        OPC_CheckPatternPredicate, 36, // (Subtarget->hasMMX()) && (Subtarget->hasSSSE3())
/* 23638*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PABSWrr), 0,
                      MVT::x86mmx, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7374:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src) - Complexity = 8
                  // Dst: (MMX_PABSWrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src)
/* 23645*/      0, /*End of Scope*/
/* 23646*/    /*Scope*/ 47, /*->23694*/
/* 23647*/      OPC_CheckChild0Integer, 77|128,57/*7373*/, 
/* 23650*/      OPC_Scope, 30, /*->23682*/ // 2 children in Scope
/* 23652*/        OPC_MoveChild1,
/* 23653*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 23656*/        OPC_RecordMemRef,
/* 23657*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 23658*/        OPC_CheckFoldableChainNode,
/* 23659*/        OPC_RecordChild1, // #1 = $src
/* 23660*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 23662*/        OPC_CheckPredicate, 9, // Predicate_load
/* 23664*/        OPC_MoveParent,
/* 23665*/        OPC_CheckPatternPredicate, 36, // (Subtarget->hasMMX()) && (Subtarget->hasSSSE3())
/* 23667*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 23670*/        OPC_EmitMergeInputChains1_0,
/* 23671*/        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] } 7373:{ *:[iPTR] }, (ld:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (MMX_PABSDrm:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src)
/* 23682*/      /*Scope*/ 10, /*->23693*/
/* 23683*/        OPC_RecordChild1, // #0 = $src
/* 23684*/        OPC_CheckPatternPredicate, 36, // (Subtarget->hasMMX()) && (Subtarget->hasSSSE3())
/* 23686*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PABSDrr), 0,
                      MVT::x86mmx, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7373:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src) - Complexity = 8
                  // Dst: (MMX_PABSDrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src)
/* 23693*/      0, /*End of Scope*/
/* 23694*/    /*Scope*/ 84, /*->23779*/
/* 23695*/      OPC_CheckChild0Integer, 85|128,55/*7125*/, 
/* 23698*/      OPC_Scope, 32, /*->23732*/ // 3 children in Scope
/* 23700*/        OPC_RecordChild1, // #0 = $src1
/* 23701*/        OPC_MoveChild2,
/* 23702*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 23705*/        OPC_RecordMemRef,
/* 23706*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 23707*/        OPC_CheckFoldableChainNode,
/* 23708*/        OPC_RecordChild1, // #2 = $src2
/* 23709*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 23711*/        OPC_CheckPredicate, 9, // Predicate_load
/* 23713*/        OPC_MoveParent,
/* 23714*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 23716*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 23719*/        OPC_EmitMergeInputChains1_1,
/* 23720*/        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] } 7125:{ *:[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)
/* 23732*/      /*Scope*/ 32, /*->23765*/
/* 23733*/        OPC_MoveChild1,
/* 23734*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 23737*/        OPC_RecordMemRef,
/* 23738*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 23739*/        OPC_CheckFoldableChainNode,
/* 23740*/        OPC_RecordChild1, // #1 = $src2
/* 23741*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 23743*/        OPC_CheckPredicate, 9, // Predicate_load
/* 23745*/        OPC_MoveParent,
/* 23746*/        OPC_RecordChild2, // #2 = $src1
/* 23747*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 23749*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 23752*/        OPC_EmitMergeInputChains1_0,
/* 23753*/        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] } 7125:{ *:[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)
/* 23765*/      /*Scope*/ 12, /*->23778*/
/* 23766*/        OPC_RecordChild1, // #0 = $src1
/* 23767*/        OPC_RecordChild2, // #1 = $src2
/* 23768*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 23770*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PADDBirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7125:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PADDBirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 23778*/      0, /*End of Scope*/
/* 23779*/    /*Scope*/ 84, /*->23864*/
/* 23780*/      OPC_CheckChild0Integer, 88|128,55/*7128*/, 
/* 23783*/      OPC_Scope, 32, /*->23817*/ // 3 children in Scope
/* 23785*/        OPC_RecordChild1, // #0 = $src1
/* 23786*/        OPC_MoveChild2,
/* 23787*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 23790*/        OPC_RecordMemRef,
/* 23791*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 23792*/        OPC_CheckFoldableChainNode,
/* 23793*/        OPC_RecordChild1, // #2 = $src2
/* 23794*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 23796*/        OPC_CheckPredicate, 9, // Predicate_load
/* 23798*/        OPC_MoveParent,
/* 23799*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 23801*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 23804*/        OPC_EmitMergeInputChains1_1,
/* 23805*/        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] } 7128:{ *:[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)
/* 23817*/      /*Scope*/ 32, /*->23850*/
/* 23818*/        OPC_MoveChild1,
/* 23819*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 23822*/        OPC_RecordMemRef,
/* 23823*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 23824*/        OPC_CheckFoldableChainNode,
/* 23825*/        OPC_RecordChild1, // #1 = $src2
/* 23826*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 23828*/        OPC_CheckPredicate, 9, // Predicate_load
/* 23830*/        OPC_MoveParent,
/* 23831*/        OPC_RecordChild2, // #2 = $src1
/* 23832*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 23834*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 23837*/        OPC_EmitMergeInputChains1_0,
/* 23838*/        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] } 7128:{ *:[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)
/* 23850*/      /*Scope*/ 12, /*->23863*/
/* 23851*/        OPC_RecordChild1, // #0 = $src1
/* 23852*/        OPC_RecordChild2, // #1 = $src2
/* 23853*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 23855*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PADDWirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7128:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PADDWirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 23863*/      0, /*End of Scope*/
/* 23864*/    /*Scope*/ 84, /*->23949*/
/* 23865*/      OPC_CheckChild0Integer, 86|128,55/*7126*/, 
/* 23868*/      OPC_Scope, 32, /*->23902*/ // 3 children in Scope
/* 23870*/        OPC_RecordChild1, // #0 = $src1
/* 23871*/        OPC_MoveChild2,
/* 23872*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 23875*/        OPC_RecordMemRef,
/* 23876*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 23877*/        OPC_CheckFoldableChainNode,
/* 23878*/        OPC_RecordChild1, // #2 = $src2
/* 23879*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 23881*/        OPC_CheckPredicate, 9, // Predicate_load
/* 23883*/        OPC_MoveParent,
/* 23884*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 23886*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 23889*/        OPC_EmitMergeInputChains1_1,
/* 23890*/        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] } 7126:{ *:[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)
/* 23902*/      /*Scope*/ 32, /*->23935*/
/* 23903*/        OPC_MoveChild1,
/* 23904*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 23907*/        OPC_RecordMemRef,
/* 23908*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 23909*/        OPC_CheckFoldableChainNode,
/* 23910*/        OPC_RecordChild1, // #1 = $src2
/* 23911*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 23913*/        OPC_CheckPredicate, 9, // Predicate_load
/* 23915*/        OPC_MoveParent,
/* 23916*/        OPC_RecordChild2, // #2 = $src1
/* 23917*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 23919*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 23922*/        OPC_EmitMergeInputChains1_0,
/* 23923*/        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] } 7126:{ *:[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)
/* 23935*/      /*Scope*/ 12, /*->23948*/
/* 23936*/        OPC_RecordChild1, // #0 = $src1
/* 23937*/        OPC_RecordChild2, // #1 = $src2
/* 23938*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 23940*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PADDDirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7126:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PADDDirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 23948*/      0, /*End of Scope*/
/* 23949*/    /*Scope*/ 84, /*->24034*/
/* 23950*/      OPC_CheckChild0Integer, 87|128,55/*7127*/, 
/* 23953*/      OPC_Scope, 32, /*->23987*/ // 3 children in Scope
/* 23955*/        OPC_RecordChild1, // #0 = $src1
/* 23956*/        OPC_MoveChild2,
/* 23957*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 23960*/        OPC_RecordMemRef,
/* 23961*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 23962*/        OPC_CheckFoldableChainNode,
/* 23963*/        OPC_RecordChild1, // #2 = $src2
/* 23964*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 23966*/        OPC_CheckPredicate, 9, // Predicate_load
/* 23968*/        OPC_MoveParent,
/* 23969*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasMMX()) && (Subtarget->hasSSE2())
/* 23971*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 23974*/        OPC_EmitMergeInputChains1_1,
/* 23975*/        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] } 7127:{ *:[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)
/* 23987*/      /*Scope*/ 32, /*->24020*/
/* 23988*/        OPC_MoveChild1,
/* 23989*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 23992*/        OPC_RecordMemRef,
/* 23993*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 23994*/        OPC_CheckFoldableChainNode,
/* 23995*/        OPC_RecordChild1, // #1 = $src2
/* 23996*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 23998*/        OPC_CheckPredicate, 9, // Predicate_load
/* 24000*/        OPC_MoveParent,
/* 24001*/        OPC_RecordChild2, // #2 = $src1
/* 24002*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasMMX()) && (Subtarget->hasSSE2())
/* 24004*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 24007*/        OPC_EmitMergeInputChains1_0,
/* 24008*/        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] } 7127:{ *:[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)
/* 24020*/      /*Scope*/ 12, /*->24033*/
/* 24021*/        OPC_RecordChild1, // #0 = $src1
/* 24022*/        OPC_RecordChild2, // #1 = $src2
/* 24023*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasMMX()) && (Subtarget->hasSSE2())
/* 24025*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PADDQirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7127:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PADDQirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 24033*/      0, /*End of Scope*/
/* 24034*/    /*Scope*/ 84, /*->24119*/
/* 24035*/      OPC_CheckChild0Integer, 89|128,55/*7129*/, 
/* 24038*/      OPC_Scope, 32, /*->24072*/ // 3 children in Scope
/* 24040*/        OPC_RecordChild1, // #0 = $src1
/* 24041*/        OPC_MoveChild2,
/* 24042*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 24045*/        OPC_RecordMemRef,
/* 24046*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 24047*/        OPC_CheckFoldableChainNode,
/* 24048*/        OPC_RecordChild1, // #2 = $src2
/* 24049*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 24051*/        OPC_CheckPredicate, 9, // Predicate_load
/* 24053*/        OPC_MoveParent,
/* 24054*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 24056*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 24059*/        OPC_EmitMergeInputChains1_1,
/* 24060*/        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] } 7129:{ *:[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)
/* 24072*/      /*Scope*/ 32, /*->24105*/
/* 24073*/        OPC_MoveChild1,
/* 24074*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 24077*/        OPC_RecordMemRef,
/* 24078*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 24079*/        OPC_CheckFoldableChainNode,
/* 24080*/        OPC_RecordChild1, // #1 = $src2
/* 24081*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 24083*/        OPC_CheckPredicate, 9, // Predicate_load
/* 24085*/        OPC_MoveParent,
/* 24086*/        OPC_RecordChild2, // #2 = $src1
/* 24087*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 24089*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 24092*/        OPC_EmitMergeInputChains1_0,
/* 24093*/        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] } 7129:{ *:[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)
/* 24105*/      /*Scope*/ 12, /*->24118*/
/* 24106*/        OPC_RecordChild1, // #0 = $src1
/* 24107*/        OPC_RecordChild2, // #1 = $src2
/* 24108*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 24110*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PADDSBirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7129:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PADDSBirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 24118*/      0, /*End of Scope*/
/* 24119*/    /*Scope*/ 84, /*->24204*/
/* 24120*/      OPC_CheckChild0Integer, 90|128,55/*7130*/, 
/* 24123*/      OPC_Scope, 32, /*->24157*/ // 3 children in Scope
/* 24125*/        OPC_RecordChild1, // #0 = $src1
/* 24126*/        OPC_MoveChild2,
/* 24127*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 24130*/        OPC_RecordMemRef,
/* 24131*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 24132*/        OPC_CheckFoldableChainNode,
/* 24133*/        OPC_RecordChild1, // #2 = $src2
/* 24134*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 24136*/        OPC_CheckPredicate, 9, // Predicate_load
/* 24138*/        OPC_MoveParent,
/* 24139*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 24141*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 24144*/        OPC_EmitMergeInputChains1_1,
/* 24145*/        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] } 7130:{ *:[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)
/* 24157*/      /*Scope*/ 32, /*->24190*/
/* 24158*/        OPC_MoveChild1,
/* 24159*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 24162*/        OPC_RecordMemRef,
/* 24163*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 24164*/        OPC_CheckFoldableChainNode,
/* 24165*/        OPC_RecordChild1, // #1 = $src2
/* 24166*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 24168*/        OPC_CheckPredicate, 9, // Predicate_load
/* 24170*/        OPC_MoveParent,
/* 24171*/        OPC_RecordChild2, // #2 = $src1
/* 24172*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 24174*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 24177*/        OPC_EmitMergeInputChains1_0,
/* 24178*/        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] } 7130:{ *:[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)
/* 24190*/      /*Scope*/ 12, /*->24203*/
/* 24191*/        OPC_RecordChild1, // #0 = $src1
/* 24192*/        OPC_RecordChild2, // #1 = $src2
/* 24193*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 24195*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PADDSWirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7130:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PADDSWirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 24203*/      0, /*End of Scope*/
/* 24204*/    /*Scope*/ 84, /*->24289*/
/* 24205*/      OPC_CheckChild0Integer, 91|128,55/*7131*/, 
/* 24208*/      OPC_Scope, 32, /*->24242*/ // 3 children in Scope
/* 24210*/        OPC_RecordChild1, // #0 = $src1
/* 24211*/        OPC_MoveChild2,
/* 24212*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 24215*/        OPC_RecordMemRef,
/* 24216*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 24217*/        OPC_CheckFoldableChainNode,
/* 24218*/        OPC_RecordChild1, // #2 = $src2
/* 24219*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 24221*/        OPC_CheckPredicate, 9, // Predicate_load
/* 24223*/        OPC_MoveParent,
/* 24224*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 24226*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 24229*/        OPC_EmitMergeInputChains1_1,
/* 24230*/        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] } 7131:{ *:[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)
/* 24242*/      /*Scope*/ 32, /*->24275*/
/* 24243*/        OPC_MoveChild1,
/* 24244*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 24247*/        OPC_RecordMemRef,
/* 24248*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 24249*/        OPC_CheckFoldableChainNode,
/* 24250*/        OPC_RecordChild1, // #1 = $src2
/* 24251*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 24253*/        OPC_CheckPredicate, 9, // Predicate_load
/* 24255*/        OPC_MoveParent,
/* 24256*/        OPC_RecordChild2, // #2 = $src1
/* 24257*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 24259*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 24262*/        OPC_EmitMergeInputChains1_0,
/* 24263*/        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] } 7131:{ *:[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)
/* 24275*/      /*Scope*/ 12, /*->24288*/
/* 24276*/        OPC_RecordChild1, // #0 = $src1
/* 24277*/        OPC_RecordChild2, // #1 = $src2
/* 24278*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 24280*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PADDUSBirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7131:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PADDUSBirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 24288*/      0, /*End of Scope*/
/* 24289*/    /*Scope*/ 84, /*->24374*/
/* 24290*/      OPC_CheckChild0Integer, 92|128,55/*7132*/, 
/* 24293*/      OPC_Scope, 32, /*->24327*/ // 3 children in Scope
/* 24295*/        OPC_RecordChild1, // #0 = $src1
/* 24296*/        OPC_MoveChild2,
/* 24297*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 24300*/        OPC_RecordMemRef,
/* 24301*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 24302*/        OPC_CheckFoldableChainNode,
/* 24303*/        OPC_RecordChild1, // #2 = $src2
/* 24304*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 24306*/        OPC_CheckPredicate, 9, // Predicate_load
/* 24308*/        OPC_MoveParent,
/* 24309*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 24311*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 24314*/        OPC_EmitMergeInputChains1_1,
/* 24315*/        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] } 7132:{ *:[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)
/* 24327*/      /*Scope*/ 32, /*->24360*/
/* 24328*/        OPC_MoveChild1,
/* 24329*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 24332*/        OPC_RecordMemRef,
/* 24333*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 24334*/        OPC_CheckFoldableChainNode,
/* 24335*/        OPC_RecordChild1, // #1 = $src2
/* 24336*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 24338*/        OPC_CheckPredicate, 9, // Predicate_load
/* 24340*/        OPC_MoveParent,
/* 24341*/        OPC_RecordChild2, // #2 = $src1
/* 24342*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 24344*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 24347*/        OPC_EmitMergeInputChains1_0,
/* 24348*/        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] } 7132:{ *:[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)
/* 24360*/      /*Scope*/ 12, /*->24373*/
/* 24361*/        OPC_RecordChild1, // #0 = $src1
/* 24362*/        OPC_RecordChild2, // #1 = $src2
/* 24363*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 24365*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PADDUSWirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7132:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PADDUSWirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 24373*/      0, /*End of Scope*/
/* 24374*/    /*Scope*/ 50, /*->24425*/
/* 24375*/      OPC_CheckChild0Integer, 83|128,57/*7379*/, 
/* 24378*/      OPC_RecordChild1, // #0 = $src1
/* 24379*/      OPC_Scope, 31, /*->24412*/ // 2 children in Scope
/* 24381*/        OPC_MoveChild2,
/* 24382*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 24385*/        OPC_RecordMemRef,
/* 24386*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 24387*/        OPC_CheckFoldableChainNode,
/* 24388*/        OPC_RecordChild1, // #2 = $src2
/* 24389*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 24391*/        OPC_CheckPredicate, 9, // Predicate_load
/* 24393*/        OPC_MoveParent,
/* 24394*/        OPC_CheckPatternPredicate, 36, // (Subtarget->hasMMX()) && (Subtarget->hasSSSE3())
/* 24396*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 24399*/        OPC_EmitMergeInputChains1_1,
/* 24400*/        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] } 7379:{ *:[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)
/* 24412*/      /*Scope*/ 11, /*->24424*/
/* 24413*/        OPC_RecordChild2, // #1 = $src2
/* 24414*/        OPC_CheckPatternPredicate, 36, // (Subtarget->hasMMX()) && (Subtarget->hasSSSE3())
/* 24416*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PHADDWrr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7379:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PHADDWrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 24424*/      0, /*End of Scope*/
/* 24425*/    /*Scope*/ 50, /*->24476*/
/* 24426*/      OPC_CheckChild0Integer, 79|128,57/*7375*/, 
/* 24429*/      OPC_RecordChild1, // #0 = $src1
/* 24430*/      OPC_Scope, 31, /*->24463*/ // 2 children in Scope
/* 24432*/        OPC_MoveChild2,
/* 24433*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 24436*/        OPC_RecordMemRef,
/* 24437*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 24438*/        OPC_CheckFoldableChainNode,
/* 24439*/        OPC_RecordChild1, // #2 = $src2
/* 24440*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 24442*/        OPC_CheckPredicate, 9, // Predicate_load
/* 24444*/        OPC_MoveParent,
/* 24445*/        OPC_CheckPatternPredicate, 36, // (Subtarget->hasMMX()) && (Subtarget->hasSSSE3())
/* 24447*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 24450*/        OPC_EmitMergeInputChains1_1,
/* 24451*/        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] } 7375:{ *:[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)
/* 24463*/      /*Scope*/ 11, /*->24475*/
/* 24464*/        OPC_RecordChild2, // #1 = $src2
/* 24465*/        OPC_CheckPatternPredicate, 36, // (Subtarget->hasMMX()) && (Subtarget->hasSSSE3())
/* 24467*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PHADDDrr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7375:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PHADDDrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 24475*/      0, /*End of Scope*/
/* 24476*/    /*Scope*/ 50, /*->24527*/
/* 24477*/      OPC_CheckChild0Integer, 81|128,57/*7377*/, 
/* 24480*/      OPC_RecordChild1, // #0 = $src1
/* 24481*/      OPC_Scope, 31, /*->24514*/ // 2 children in Scope
/* 24483*/        OPC_MoveChild2,
/* 24484*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 24487*/        OPC_RecordMemRef,
/* 24488*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 24489*/        OPC_CheckFoldableChainNode,
/* 24490*/        OPC_RecordChild1, // #2 = $src2
/* 24491*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 24493*/        OPC_CheckPredicate, 9, // Predicate_load
/* 24495*/        OPC_MoveParent,
/* 24496*/        OPC_CheckPatternPredicate, 36, // (Subtarget->hasMMX()) && (Subtarget->hasSSSE3())
/* 24498*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 24501*/        OPC_EmitMergeInputChains1_1,
/* 24502*/        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] } 7377:{ *:[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)
/* 24514*/      /*Scope*/ 11, /*->24526*/
/* 24515*/        OPC_RecordChild2, // #1 = $src2
/* 24516*/        OPC_CheckPatternPredicate, 36, // (Subtarget->hasMMX()) && (Subtarget->hasSSSE3())
/* 24518*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PHADDSWrr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7377:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PHADDSWrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 24526*/      0, /*End of Scope*/
/* 24527*/    /*Scope*/ 50, /*->24578*/
/* 24528*/      OPC_CheckChild0Integer, 6|128,56/*7174*/, 
/* 24531*/      OPC_RecordChild1, // #0 = $src1
/* 24532*/      OPC_Scope, 31, /*->24565*/ // 2 children in Scope
/* 24534*/        OPC_MoveChild2,
/* 24535*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 24538*/        OPC_RecordMemRef,
/* 24539*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 24540*/        OPC_CheckFoldableChainNode,
/* 24541*/        OPC_RecordChild1, // #2 = $src2
/* 24542*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 24544*/        OPC_CheckPredicate, 9, // Predicate_load
/* 24546*/        OPC_MoveParent,
/* 24547*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 24549*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 24552*/        OPC_EmitMergeInputChains1_1,
/* 24553*/        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] } 7174:{ *:[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)
/* 24565*/      /*Scope*/ 11, /*->24577*/
/* 24566*/        OPC_RecordChild2, // #1 = $src2
/* 24567*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 24569*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSUBBirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7174:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PSUBBirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 24577*/      0, /*End of Scope*/
/* 24578*/    /*Scope*/ 50, /*->24629*/
/* 24579*/      OPC_CheckChild0Integer, 9|128,56/*7177*/, 
/* 24582*/      OPC_RecordChild1, // #0 = $src1
/* 24583*/      OPC_Scope, 31, /*->24616*/ // 2 children in Scope
/* 24585*/        OPC_MoveChild2,
/* 24586*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 24589*/        OPC_RecordMemRef,
/* 24590*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 24591*/        OPC_CheckFoldableChainNode,
/* 24592*/        OPC_RecordChild1, // #2 = $src2
/* 24593*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 24595*/        OPC_CheckPredicate, 9, // Predicate_load
/* 24597*/        OPC_MoveParent,
/* 24598*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 24600*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 24603*/        OPC_EmitMergeInputChains1_1,
/* 24604*/        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] } 7177:{ *:[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)
/* 24616*/      /*Scope*/ 11, /*->24628*/
/* 24617*/        OPC_RecordChild2, // #1 = $src2
/* 24618*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 24620*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSUBWirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7177:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PSUBWirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 24628*/      0, /*End of Scope*/
/* 24629*/    /*Scope*/ 50, /*->24680*/
/* 24630*/      OPC_CheckChild0Integer, 7|128,56/*7175*/, 
/* 24633*/      OPC_RecordChild1, // #0 = $src1
/* 24634*/      OPC_Scope, 31, /*->24667*/ // 2 children in Scope
/* 24636*/        OPC_MoveChild2,
/* 24637*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 24640*/        OPC_RecordMemRef,
/* 24641*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 24642*/        OPC_CheckFoldableChainNode,
/* 24643*/        OPC_RecordChild1, // #2 = $src2
/* 24644*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 24646*/        OPC_CheckPredicate, 9, // Predicate_load
/* 24648*/        OPC_MoveParent,
/* 24649*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 24651*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 24654*/        OPC_EmitMergeInputChains1_1,
/* 24655*/        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] } 7175:{ *:[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)
/* 24667*/      /*Scope*/ 11, /*->24679*/
/* 24668*/        OPC_RecordChild2, // #1 = $src2
/* 24669*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 24671*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSUBDirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7175:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PSUBDirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 24679*/      0, /*End of Scope*/
/* 24680*/    /*Scope*/ 50, /*->24731*/
/* 24681*/      OPC_CheckChild0Integer, 8|128,56/*7176*/, 
/* 24684*/      OPC_RecordChild1, // #0 = $src1
/* 24685*/      OPC_Scope, 31, /*->24718*/ // 2 children in Scope
/* 24687*/        OPC_MoveChild2,
/* 24688*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 24691*/        OPC_RecordMemRef,
/* 24692*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 24693*/        OPC_CheckFoldableChainNode,
/* 24694*/        OPC_RecordChild1, // #2 = $src2
/* 24695*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 24697*/        OPC_CheckPredicate, 9, // Predicate_load
/* 24699*/        OPC_MoveParent,
/* 24700*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasMMX()) && (Subtarget->hasSSE2())
/* 24702*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 24705*/        OPC_EmitMergeInputChains1_1,
/* 24706*/        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] } 7176:{ *:[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)
/* 24718*/      /*Scope*/ 11, /*->24730*/
/* 24719*/        OPC_RecordChild2, // #1 = $src2
/* 24720*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasMMX()) && (Subtarget->hasSSE2())
/* 24722*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSUBQirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7176:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PSUBQirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 24730*/      0, /*End of Scope*/
/* 24731*/    /*Scope*/ 50, /*->24782*/
/* 24732*/      OPC_CheckChild0Integer, 10|128,56/*7178*/, 
/* 24735*/      OPC_RecordChild1, // #0 = $src1
/* 24736*/      OPC_Scope, 31, /*->24769*/ // 2 children in Scope
/* 24738*/        OPC_MoveChild2,
/* 24739*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 24742*/        OPC_RecordMemRef,
/* 24743*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 24744*/        OPC_CheckFoldableChainNode,
/* 24745*/        OPC_RecordChild1, // #2 = $src2
/* 24746*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 24748*/        OPC_CheckPredicate, 9, // Predicate_load
/* 24750*/        OPC_MoveParent,
/* 24751*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 24753*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 24756*/        OPC_EmitMergeInputChains1_1,
/* 24757*/        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] } 7178:{ *:[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)
/* 24769*/      /*Scope*/ 11, /*->24781*/
/* 24770*/        OPC_RecordChild2, // #1 = $src2
/* 24771*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 24773*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSUBSBirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7178:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PSUBSBirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 24781*/      0, /*End of Scope*/
/* 24782*/    /*Scope*/ 50, /*->24833*/
/* 24783*/      OPC_CheckChild0Integer, 11|128,56/*7179*/, 
/* 24786*/      OPC_RecordChild1, // #0 = $src1
/* 24787*/      OPC_Scope, 31, /*->24820*/ // 2 children in Scope
/* 24789*/        OPC_MoveChild2,
/* 24790*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 24793*/        OPC_RecordMemRef,
/* 24794*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 24795*/        OPC_CheckFoldableChainNode,
/* 24796*/        OPC_RecordChild1, // #2 = $src2
/* 24797*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 24799*/        OPC_CheckPredicate, 9, // Predicate_load
/* 24801*/        OPC_MoveParent,
/* 24802*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 24804*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 24807*/        OPC_EmitMergeInputChains1_1,
/* 24808*/        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] } 7179:{ *:[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)
/* 24820*/      /*Scope*/ 11, /*->24832*/
/* 24821*/        OPC_RecordChild2, // #1 = $src2
/* 24822*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 24824*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSUBSWirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7179:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PSUBSWirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 24832*/      0, /*End of Scope*/
/* 24833*/    /*Scope*/ 50, /*->24884*/
/* 24834*/      OPC_CheckChild0Integer, 12|128,56/*7180*/, 
/* 24837*/      OPC_RecordChild1, // #0 = $src1
/* 24838*/      OPC_Scope, 31, /*->24871*/ // 2 children in Scope
/* 24840*/        OPC_MoveChild2,
/* 24841*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 24844*/        OPC_RecordMemRef,
/* 24845*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 24846*/        OPC_CheckFoldableChainNode,
/* 24847*/        OPC_RecordChild1, // #2 = $src2
/* 24848*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 24850*/        OPC_CheckPredicate, 9, // Predicate_load
/* 24852*/        OPC_MoveParent,
/* 24853*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 24855*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 24858*/        OPC_EmitMergeInputChains1_1,
/* 24859*/        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] } 7180:{ *:[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)
/* 24871*/      /*Scope*/ 11, /*->24883*/
/* 24872*/        OPC_RecordChild2, // #1 = $src2
/* 24873*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 24875*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSUBUSBirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7180:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PSUBUSBirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 24883*/      0, /*End of Scope*/
/* 24884*/    /*Scope*/ 50, /*->24935*/
/* 24885*/      OPC_CheckChild0Integer, 13|128,56/*7181*/, 
/* 24888*/      OPC_RecordChild1, // #0 = $src1
/* 24889*/      OPC_Scope, 31, /*->24922*/ // 2 children in Scope
/* 24891*/        OPC_MoveChild2,
/* 24892*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 24895*/        OPC_RecordMemRef,
/* 24896*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 24897*/        OPC_CheckFoldableChainNode,
/* 24898*/        OPC_RecordChild1, // #2 = $src2
/* 24899*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 24901*/        OPC_CheckPredicate, 9, // Predicate_load
/* 24903*/        OPC_MoveParent,
/* 24904*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 24906*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 24909*/        OPC_EmitMergeInputChains1_1,
/* 24910*/        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] } 7181:{ *:[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)
/* 24922*/      /*Scope*/ 11, /*->24934*/
/* 24923*/        OPC_RecordChild2, // #1 = $src2
/* 24924*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 24926*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSUBUSWirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7181:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PSUBUSWirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 24934*/      0, /*End of Scope*/
/* 24935*/    /*Scope*/ 50, /*->24986*/
/* 24936*/      OPC_CheckChild0Integer, 89|128,57/*7385*/, 
/* 24939*/      OPC_RecordChild1, // #0 = $src1
/* 24940*/      OPC_Scope, 31, /*->24973*/ // 2 children in Scope
/* 24942*/        OPC_MoveChild2,
/* 24943*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 24946*/        OPC_RecordMemRef,
/* 24947*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 24948*/        OPC_CheckFoldableChainNode,
/* 24949*/        OPC_RecordChild1, // #2 = $src2
/* 24950*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 24952*/        OPC_CheckPredicate, 9, // Predicate_load
/* 24954*/        OPC_MoveParent,
/* 24955*/        OPC_CheckPatternPredicate, 36, // (Subtarget->hasMMX()) && (Subtarget->hasSSSE3())
/* 24957*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 24960*/        OPC_EmitMergeInputChains1_1,
/* 24961*/        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] } 7385:{ *:[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)
/* 24973*/      /*Scope*/ 11, /*->24985*/
/* 24974*/        OPC_RecordChild2, // #1 = $src2
/* 24975*/        OPC_CheckPatternPredicate, 36, // (Subtarget->hasMMX()) && (Subtarget->hasSSSE3())
/* 24977*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PHSUBWrr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7385:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PHSUBWrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 24985*/      0, /*End of Scope*/
/* 24986*/    /*Scope*/ 50, /*->25037*/
/* 24987*/      OPC_CheckChild0Integer, 85|128,57/*7381*/, 
/* 24990*/      OPC_RecordChild1, // #0 = $src1
/* 24991*/      OPC_Scope, 31, /*->25024*/ // 2 children in Scope
/* 24993*/        OPC_MoveChild2,
/* 24994*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 24997*/        OPC_RecordMemRef,
/* 24998*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 24999*/        OPC_CheckFoldableChainNode,
/* 25000*/        OPC_RecordChild1, // #2 = $src2
/* 25001*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 25003*/        OPC_CheckPredicate, 9, // Predicate_load
/* 25005*/        OPC_MoveParent,
/* 25006*/        OPC_CheckPatternPredicate, 36, // (Subtarget->hasMMX()) && (Subtarget->hasSSSE3())
/* 25008*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 25011*/        OPC_EmitMergeInputChains1_1,
/* 25012*/        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] } 7381:{ *:[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)
/* 25024*/      /*Scope*/ 11, /*->25036*/
/* 25025*/        OPC_RecordChild2, // #1 = $src2
/* 25026*/        OPC_CheckPatternPredicate, 36, // (Subtarget->hasMMX()) && (Subtarget->hasSSSE3())
/* 25028*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PHSUBDrr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7381:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PHSUBDrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 25036*/      0, /*End of Scope*/
/* 25037*/    /*Scope*/ 50, /*->25088*/
/* 25038*/      OPC_CheckChild0Integer, 87|128,57/*7383*/, 
/* 25041*/      OPC_RecordChild1, // #0 = $src1
/* 25042*/      OPC_Scope, 31, /*->25075*/ // 2 children in Scope
/* 25044*/        OPC_MoveChild2,
/* 25045*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 25048*/        OPC_RecordMemRef,
/* 25049*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 25050*/        OPC_CheckFoldableChainNode,
/* 25051*/        OPC_RecordChild1, // #2 = $src2
/* 25052*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 25054*/        OPC_CheckPredicate, 9, // Predicate_load
/* 25056*/        OPC_MoveParent,
/* 25057*/        OPC_CheckPatternPredicate, 36, // (Subtarget->hasMMX()) && (Subtarget->hasSSSE3())
/* 25059*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 25062*/        OPC_EmitMergeInputChains1_1,
/* 25063*/        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] } 7383:{ *:[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)
/* 25075*/      /*Scope*/ 11, /*->25087*/
/* 25076*/        OPC_RecordChild2, // #1 = $src2
/* 25077*/        OPC_CheckPatternPredicate, 36, // (Subtarget->hasMMX()) && (Subtarget->hasSSSE3())
/* 25079*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PHSUBSWrr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7383:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PHSUBSWrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 25087*/      0, /*End of Scope*/
/* 25088*/    /*Scope*/ 84, /*->25173*/
/* 25089*/      OPC_CheckChild0Integer, 114|128,55/*7154*/, 
/* 25092*/      OPC_Scope, 32, /*->25126*/ // 3 children in Scope
/* 25094*/        OPC_RecordChild1, // #0 = $src1
/* 25095*/        OPC_MoveChild2,
/* 25096*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 25099*/        OPC_RecordMemRef,
/* 25100*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 25101*/        OPC_CheckFoldableChainNode,
/* 25102*/        OPC_RecordChild1, // #2 = $src2
/* 25103*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 25105*/        OPC_CheckPredicate, 9, // Predicate_load
/* 25107*/        OPC_MoveParent,
/* 25108*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 25110*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 25113*/        OPC_EmitMergeInputChains1_1,
/* 25114*/        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] } 7154:{ *:[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)
/* 25126*/      /*Scope*/ 32, /*->25159*/
/* 25127*/        OPC_MoveChild1,
/* 25128*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 25131*/        OPC_RecordMemRef,
/* 25132*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 25133*/        OPC_CheckFoldableChainNode,
/* 25134*/        OPC_RecordChild1, // #1 = $src2
/* 25135*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 25137*/        OPC_CheckPredicate, 9, // Predicate_load
/* 25139*/        OPC_MoveParent,
/* 25140*/        OPC_RecordChild2, // #2 = $src1
/* 25141*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 25143*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 25146*/        OPC_EmitMergeInputChains1_0,
/* 25147*/        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] } 7154:{ *:[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)
/* 25159*/      /*Scope*/ 12, /*->25172*/
/* 25160*/        OPC_RecordChild1, // #0 = $src1
/* 25161*/        OPC_RecordChild2, // #1 = $src2
/* 25162*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 25164*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PMULLWirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7154:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PMULLWirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 25172*/      0, /*End of Scope*/
/* 25173*/    /*Scope*/ 84, /*->25258*/
/* 25174*/      OPC_CheckChild0Integer, 112|128,55/*7152*/, 
/* 25177*/      OPC_Scope, 32, /*->25211*/ // 3 children in Scope
/* 25179*/        OPC_RecordChild1, // #0 = $src1
/* 25180*/        OPC_MoveChild2,
/* 25181*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 25184*/        OPC_RecordMemRef,
/* 25185*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 25186*/        OPC_CheckFoldableChainNode,
/* 25187*/        OPC_RecordChild1, // #2 = $src2
/* 25188*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 25190*/        OPC_CheckPredicate, 9, // Predicate_load
/* 25192*/        OPC_MoveParent,
/* 25193*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 25195*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 25198*/        OPC_EmitMergeInputChains1_1,
/* 25199*/        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] } 7152:{ *:[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)
/* 25211*/      /*Scope*/ 32, /*->25244*/
/* 25212*/        OPC_MoveChild1,
/* 25213*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 25216*/        OPC_RecordMemRef,
/* 25217*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 25218*/        OPC_CheckFoldableChainNode,
/* 25219*/        OPC_RecordChild1, // #1 = $src2
/* 25220*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 25222*/        OPC_CheckPredicate, 9, // Predicate_load
/* 25224*/        OPC_MoveParent,
/* 25225*/        OPC_RecordChild2, // #2 = $src1
/* 25226*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 25228*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 25231*/        OPC_EmitMergeInputChains1_0,
/* 25232*/        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] } 7152:{ *:[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)
/* 25244*/      /*Scope*/ 12, /*->25257*/
/* 25245*/        OPC_RecordChild1, // #0 = $src1
/* 25246*/        OPC_RecordChild2, // #1 = $src2
/* 25247*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 25249*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PMULHWirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7152:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PMULHWirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 25257*/      0, /*End of Scope*/
/* 25258*/    /*Scope*/ 84, /*->25343*/
/* 25259*/      OPC_CheckChild0Integer, 113|128,55/*7153*/, 
/* 25262*/      OPC_Scope, 32, /*->25296*/ // 3 children in Scope
/* 25264*/        OPC_RecordChild1, // #0 = $src1
/* 25265*/        OPC_MoveChild2,
/* 25266*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 25269*/        OPC_RecordMemRef,
/* 25270*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 25271*/        OPC_CheckFoldableChainNode,
/* 25272*/        OPC_RecordChild1, // #2 = $src2
/* 25273*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 25275*/        OPC_CheckPredicate, 9, // Predicate_load
/* 25277*/        OPC_MoveParent,
/* 25278*/        OPC_CheckPatternPredicate, 35, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 25280*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 25283*/        OPC_EmitMergeInputChains1_1,
/* 25284*/        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] } 7153:{ *:[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)
/* 25296*/      /*Scope*/ 32, /*->25329*/
/* 25297*/        OPC_MoveChild1,
/* 25298*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 25301*/        OPC_RecordMemRef,
/* 25302*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 25303*/        OPC_CheckFoldableChainNode,
/* 25304*/        OPC_RecordChild1, // #1 = $src2
/* 25305*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 25307*/        OPC_CheckPredicate, 9, // Predicate_load
/* 25309*/        OPC_MoveParent,
/* 25310*/        OPC_RecordChild2, // #2 = $src1
/* 25311*/        OPC_CheckPatternPredicate, 35, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 25313*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 25316*/        OPC_EmitMergeInputChains1_0,
/* 25317*/        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] } 7153:{ *:[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)
/* 25329*/      /*Scope*/ 12, /*->25342*/
/* 25330*/        OPC_RecordChild1, // #0 = $src1
/* 25331*/        OPC_RecordChild2, // #1 = $src2
/* 25332*/        OPC_CheckPatternPredicate, 35, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 25334*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PMULHUWirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7153:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PMULHUWirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 25342*/      0, /*End of Scope*/
/* 25343*/    /*Scope*/ 84, /*->25428*/
/* 25344*/      OPC_CheckChild0Integer, 115|128,55/*7155*/, 
/* 25347*/      OPC_Scope, 32, /*->25381*/ // 3 children in Scope
/* 25349*/        OPC_RecordChild1, // #0 = $src1
/* 25350*/        OPC_MoveChild2,
/* 25351*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 25354*/        OPC_RecordMemRef,
/* 25355*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 25356*/        OPC_CheckFoldableChainNode,
/* 25357*/        OPC_RecordChild1, // #2 = $src2
/* 25358*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 25360*/        OPC_CheckPredicate, 9, // Predicate_load
/* 25362*/        OPC_MoveParent,
/* 25363*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasMMX()) && (Subtarget->hasSSE2())
/* 25365*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 25368*/        OPC_EmitMergeInputChains1_1,
/* 25369*/        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] } 7155:{ *:[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)
/* 25381*/      /*Scope*/ 32, /*->25414*/
/* 25382*/        OPC_MoveChild1,
/* 25383*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 25386*/        OPC_RecordMemRef,
/* 25387*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 25388*/        OPC_CheckFoldableChainNode,
/* 25389*/        OPC_RecordChild1, // #1 = $src2
/* 25390*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 25392*/        OPC_CheckPredicate, 9, // Predicate_load
/* 25394*/        OPC_MoveParent,
/* 25395*/        OPC_RecordChild2, // #2 = $src1
/* 25396*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasMMX()) && (Subtarget->hasSSE2())
/* 25398*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 25401*/        OPC_EmitMergeInputChains1_0,
/* 25402*/        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] } 7155:{ *:[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)
/* 25414*/      /*Scope*/ 12, /*->25427*/
/* 25415*/        OPC_RecordChild1, // #0 = $src1
/* 25416*/        OPC_RecordChild2, // #1 = $src2
/* 25417*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasMMX()) && (Subtarget->hasSSE2())
/* 25419*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PMULUDQirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7155:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PMULUDQirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 25427*/      0, /*End of Scope*/
/* 25428*/    /*Scope*/ 84, /*->25513*/
/* 25429*/      OPC_CheckChild0Integer, 93|128,57/*7389*/, 
/* 25432*/      OPC_Scope, 32, /*->25466*/ // 3 children in Scope
/* 25434*/        OPC_RecordChild1, // #0 = $src1
/* 25435*/        OPC_MoveChild2,
/* 25436*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 25439*/        OPC_RecordMemRef,
/* 25440*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 25441*/        OPC_CheckFoldableChainNode,
/* 25442*/        OPC_RecordChild1, // #2 = $src2
/* 25443*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 25445*/        OPC_CheckPredicate, 9, // Predicate_load
/* 25447*/        OPC_MoveParent,
/* 25448*/        OPC_CheckPatternPredicate, 36, // (Subtarget->hasMMX()) && (Subtarget->hasSSSE3())
/* 25450*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 25453*/        OPC_EmitMergeInputChains1_1,
/* 25454*/        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] } 7389:{ *:[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)
/* 25466*/      /*Scope*/ 32, /*->25499*/
/* 25467*/        OPC_MoveChild1,
/* 25468*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 25471*/        OPC_RecordMemRef,
/* 25472*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 25473*/        OPC_CheckFoldableChainNode,
/* 25474*/        OPC_RecordChild1, // #1 = $src2
/* 25475*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 25477*/        OPC_CheckPredicate, 9, // Predicate_load
/* 25479*/        OPC_MoveParent,
/* 25480*/        OPC_RecordChild2, // #2 = $src1
/* 25481*/        OPC_CheckPatternPredicate, 36, // (Subtarget->hasMMX()) && (Subtarget->hasSSSE3())
/* 25483*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 25486*/        OPC_EmitMergeInputChains1_0,
/* 25487*/        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] } 7389:{ *:[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)
/* 25499*/      /*Scope*/ 12, /*->25512*/
/* 25500*/        OPC_RecordChild1, // #0 = $src1
/* 25501*/        OPC_RecordChild2, // #1 = $src2
/* 25502*/        OPC_CheckPatternPredicate, 36, // (Subtarget->hasMMX()) && (Subtarget->hasSSSE3())
/* 25504*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PMULHRSWrr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7389:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PMULHRSWrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 25512*/      0, /*End of Scope*/
/* 25513*/    /*Scope*/ 84, /*->25598*/
/* 25514*/      OPC_CheckChild0Integer, 106|128,55/*7146*/, 
/* 25517*/      OPC_Scope, 32, /*->25551*/ // 3 children in Scope
/* 25519*/        OPC_RecordChild1, // #0 = $src1
/* 25520*/        OPC_MoveChild2,
/* 25521*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 25524*/        OPC_RecordMemRef,
/* 25525*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 25526*/        OPC_CheckFoldableChainNode,
/* 25527*/        OPC_RecordChild1, // #2 = $src2
/* 25528*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 25530*/        OPC_CheckPredicate, 9, // Predicate_load
/* 25532*/        OPC_MoveParent,
/* 25533*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 25535*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 25538*/        OPC_EmitMergeInputChains1_1,
/* 25539*/        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] } 7146:{ *:[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)
/* 25551*/      /*Scope*/ 32, /*->25584*/
/* 25552*/        OPC_MoveChild1,
/* 25553*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 25556*/        OPC_RecordMemRef,
/* 25557*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 25558*/        OPC_CheckFoldableChainNode,
/* 25559*/        OPC_RecordChild1, // #1 = $src2
/* 25560*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 25562*/        OPC_CheckPredicate, 9, // Predicate_load
/* 25564*/        OPC_MoveParent,
/* 25565*/        OPC_RecordChild2, // #2 = $src1
/* 25566*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 25568*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 25571*/        OPC_EmitMergeInputChains1_0,
/* 25572*/        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] } 7146:{ *:[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)
/* 25584*/      /*Scope*/ 12, /*->25597*/
/* 25585*/        OPC_RecordChild1, // #0 = $src1
/* 25586*/        OPC_RecordChild2, // #1 = $src2
/* 25587*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 25589*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PMADDWDirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7146:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PMADDWDirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 25597*/      0, /*End of Scope*/
/* 25598*/    /*Scope*/ 50, /*->25649*/
/* 25599*/      OPC_CheckChild0Integer, 91|128,57/*7387*/, 
/* 25602*/      OPC_RecordChild1, // #0 = $src1
/* 25603*/      OPC_Scope, 31, /*->25636*/ // 2 children in Scope
/* 25605*/        OPC_MoveChild2,
/* 25606*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 25609*/        OPC_RecordMemRef,
/* 25610*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 25611*/        OPC_CheckFoldableChainNode,
/* 25612*/        OPC_RecordChild1, // #2 = $src2
/* 25613*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 25615*/        OPC_CheckPredicate, 9, // Predicate_load
/* 25617*/        OPC_MoveParent,
/* 25618*/        OPC_CheckPatternPredicate, 36, // (Subtarget->hasMMX()) && (Subtarget->hasSSSE3())
/* 25620*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 25623*/        OPC_EmitMergeInputChains1_1,
/* 25624*/        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] } 7387:{ *:[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)
/* 25636*/      /*Scope*/ 11, /*->25648*/
/* 25637*/        OPC_RecordChild2, // #1 = $src2
/* 25638*/        OPC_CheckPatternPredicate, 36, // (Subtarget->hasMMX()) && (Subtarget->hasSSSE3())
/* 25640*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PMADDUBSWrr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7387:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PMADDUBSWrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 25648*/      0, /*End of Scope*/
/* 25649*/    /*Scope*/ 84, /*->25734*/
/* 25650*/      OPC_CheckChild0Integer, 96|128,55/*7136*/, 
/* 25653*/      OPC_Scope, 32, /*->25687*/ // 3 children in Scope
/* 25655*/        OPC_RecordChild1, // #0 = $src1
/* 25656*/        OPC_MoveChild2,
/* 25657*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 25660*/        OPC_RecordMemRef,
/* 25661*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 25662*/        OPC_CheckFoldableChainNode,
/* 25663*/        OPC_RecordChild1, // #2 = $src2
/* 25664*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 25666*/        OPC_CheckPredicate, 9, // Predicate_load
/* 25668*/        OPC_MoveParent,
/* 25669*/        OPC_CheckPatternPredicate, 35, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 25671*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 25674*/        OPC_EmitMergeInputChains1_1,
/* 25675*/        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] } 7136:{ *:[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)
/* 25687*/      /*Scope*/ 32, /*->25720*/
/* 25688*/        OPC_MoveChild1,
/* 25689*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 25692*/        OPC_RecordMemRef,
/* 25693*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 25694*/        OPC_CheckFoldableChainNode,
/* 25695*/        OPC_RecordChild1, // #1 = $src2
/* 25696*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 25698*/        OPC_CheckPredicate, 9, // Predicate_load
/* 25700*/        OPC_MoveParent,
/* 25701*/        OPC_RecordChild2, // #2 = $src1
/* 25702*/        OPC_CheckPatternPredicate, 35, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 25704*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 25707*/        OPC_EmitMergeInputChains1_0,
/* 25708*/        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] } 7136:{ *:[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)
/* 25720*/      /*Scope*/ 12, /*->25733*/
/* 25721*/        OPC_RecordChild1, // #0 = $src1
/* 25722*/        OPC_RecordChild2, // #1 = $src2
/* 25723*/        OPC_CheckPatternPredicate, 35, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 25725*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PAVGBirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7136:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PAVGBirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 25733*/      0, /*End of Scope*/
/* 25734*/    /*Scope*/ 84, /*->25819*/
/* 25735*/      OPC_CheckChild0Integer, 97|128,55/*7137*/, 
/* 25738*/      OPC_Scope, 32, /*->25772*/ // 3 children in Scope
/* 25740*/        OPC_RecordChild1, // #0 = $src1
/* 25741*/        OPC_MoveChild2,
/* 25742*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 25745*/        OPC_RecordMemRef,
/* 25746*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 25747*/        OPC_CheckFoldableChainNode,
/* 25748*/        OPC_RecordChild1, // #2 = $src2
/* 25749*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 25751*/        OPC_CheckPredicate, 9, // Predicate_load
/* 25753*/        OPC_MoveParent,
/* 25754*/        OPC_CheckPatternPredicate, 35, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 25756*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 25759*/        OPC_EmitMergeInputChains1_1,
/* 25760*/        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] } 7137:{ *:[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)
/* 25772*/      /*Scope*/ 32, /*->25805*/
/* 25773*/        OPC_MoveChild1,
/* 25774*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 25777*/        OPC_RecordMemRef,
/* 25778*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 25779*/        OPC_CheckFoldableChainNode,
/* 25780*/        OPC_RecordChild1, // #1 = $src2
/* 25781*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 25783*/        OPC_CheckPredicate, 9, // Predicate_load
/* 25785*/        OPC_MoveParent,
/* 25786*/        OPC_RecordChild2, // #2 = $src1
/* 25787*/        OPC_CheckPatternPredicate, 35, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 25789*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 25792*/        OPC_EmitMergeInputChains1_0,
/* 25793*/        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] } 7137:{ *:[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)
/* 25805*/      /*Scope*/ 12, /*->25818*/
/* 25806*/        OPC_RecordChild1, // #0 = $src1
/* 25807*/        OPC_RecordChild2, // #1 = $src2
/* 25808*/        OPC_CheckPatternPredicate, 35, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 25810*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PAVGWirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7137:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PAVGWirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 25818*/      0, /*End of Scope*/
/* 25819*/    /*Scope*/ 84, /*->25904*/
/* 25820*/      OPC_CheckChild0Integer, 110|128,55/*7150*/, 
/* 25823*/      OPC_Scope, 32, /*->25857*/ // 3 children in Scope
/* 25825*/        OPC_RecordChild1, // #0 = $src1
/* 25826*/        OPC_MoveChild2,
/* 25827*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 25830*/        OPC_RecordMemRef,
/* 25831*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 25832*/        OPC_CheckFoldableChainNode,
/* 25833*/        OPC_RecordChild1, // #2 = $src2
/* 25834*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 25836*/        OPC_CheckPredicate, 9, // Predicate_load
/* 25838*/        OPC_MoveParent,
/* 25839*/        OPC_CheckPatternPredicate, 35, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 25841*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 25844*/        OPC_EmitMergeInputChains1_1,
/* 25845*/        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] } 7150:{ *:[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)
/* 25857*/      /*Scope*/ 32, /*->25890*/
/* 25858*/        OPC_MoveChild1,
/* 25859*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 25862*/        OPC_RecordMemRef,
/* 25863*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 25864*/        OPC_CheckFoldableChainNode,
/* 25865*/        OPC_RecordChild1, // #1 = $src2
/* 25866*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 25868*/        OPC_CheckPredicate, 9, // Predicate_load
/* 25870*/        OPC_MoveParent,
/* 25871*/        OPC_RecordChild2, // #2 = $src1
/* 25872*/        OPC_CheckPatternPredicate, 35, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 25874*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 25877*/        OPC_EmitMergeInputChains1_0,
/* 25878*/        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] } 7150:{ *:[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)
/* 25890*/      /*Scope*/ 12, /*->25903*/
/* 25891*/        OPC_RecordChild1, // #0 = $src1
/* 25892*/        OPC_RecordChild2, // #1 = $src2
/* 25893*/        OPC_CheckPatternPredicate, 35, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 25895*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PMINUBirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7150:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PMINUBirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 25903*/      0, /*End of Scope*/
/* 25904*/    /*Scope*/ 84, /*->25989*/
/* 25905*/      OPC_CheckChild0Integer, 109|128,55/*7149*/, 
/* 25908*/      OPC_Scope, 32, /*->25942*/ // 3 children in Scope
/* 25910*/        OPC_RecordChild1, // #0 = $src1
/* 25911*/        OPC_MoveChild2,
/* 25912*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 25915*/        OPC_RecordMemRef,
/* 25916*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 25917*/        OPC_CheckFoldableChainNode,
/* 25918*/        OPC_RecordChild1, // #2 = $src2
/* 25919*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 25921*/        OPC_CheckPredicate, 9, // Predicate_load
/* 25923*/        OPC_MoveParent,
/* 25924*/        OPC_CheckPatternPredicate, 35, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 25926*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 25929*/        OPC_EmitMergeInputChains1_1,
/* 25930*/        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] } 7149:{ *:[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)
/* 25942*/      /*Scope*/ 32, /*->25975*/
/* 25943*/        OPC_MoveChild1,
/* 25944*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 25947*/        OPC_RecordMemRef,
/* 25948*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 25949*/        OPC_CheckFoldableChainNode,
/* 25950*/        OPC_RecordChild1, // #1 = $src2
/* 25951*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 25953*/        OPC_CheckPredicate, 9, // Predicate_load
/* 25955*/        OPC_MoveParent,
/* 25956*/        OPC_RecordChild2, // #2 = $src1
/* 25957*/        OPC_CheckPatternPredicate, 35, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 25959*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 25962*/        OPC_EmitMergeInputChains1_0,
/* 25963*/        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] } 7149:{ *:[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)
/* 25975*/      /*Scope*/ 12, /*->25988*/
/* 25976*/        OPC_RecordChild1, // #0 = $src1
/* 25977*/        OPC_RecordChild2, // #1 = $src2
/* 25978*/        OPC_CheckPatternPredicate, 35, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 25980*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PMINSWirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7149:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PMINSWirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 25988*/      0, /*End of Scope*/
/* 25989*/    /*Scope*/ 84, /*->26074*/
/* 25990*/      OPC_CheckChild0Integer, 108|128,55/*7148*/, 
/* 25993*/      OPC_Scope, 32, /*->26027*/ // 3 children in Scope
/* 25995*/        OPC_RecordChild1, // #0 = $src1
/* 25996*/        OPC_MoveChild2,
/* 25997*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 26000*/        OPC_RecordMemRef,
/* 26001*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 26002*/        OPC_CheckFoldableChainNode,
/* 26003*/        OPC_RecordChild1, // #2 = $src2
/* 26004*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 26006*/        OPC_CheckPredicate, 9, // Predicate_load
/* 26008*/        OPC_MoveParent,
/* 26009*/        OPC_CheckPatternPredicate, 35, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 26011*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 26014*/        OPC_EmitMergeInputChains1_1,
/* 26015*/        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] } 7148:{ *:[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)
/* 26027*/      /*Scope*/ 32, /*->26060*/
/* 26028*/        OPC_MoveChild1,
/* 26029*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 26032*/        OPC_RecordMemRef,
/* 26033*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 26034*/        OPC_CheckFoldableChainNode,
/* 26035*/        OPC_RecordChild1, // #1 = $src2
/* 26036*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 26038*/        OPC_CheckPredicate, 9, // Predicate_load
/* 26040*/        OPC_MoveParent,
/* 26041*/        OPC_RecordChild2, // #2 = $src1
/* 26042*/        OPC_CheckPatternPredicate, 35, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 26044*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 26047*/        OPC_EmitMergeInputChains1_0,
/* 26048*/        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] } 7148:{ *:[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)
/* 26060*/      /*Scope*/ 12, /*->26073*/
/* 26061*/        OPC_RecordChild1, // #0 = $src1
/* 26062*/        OPC_RecordChild2, // #1 = $src2
/* 26063*/        OPC_CheckPatternPredicate, 35, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 26065*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PMAXUBirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7148:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PMAXUBirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 26073*/      0, /*End of Scope*/
/* 26074*/    /*Scope*/ 84, /*->26159*/
/* 26075*/      OPC_CheckChild0Integer, 107|128,55/*7147*/, 
/* 26078*/      OPC_Scope, 32, /*->26112*/ // 3 children in Scope
/* 26080*/        OPC_RecordChild1, // #0 = $src1
/* 26081*/        OPC_MoveChild2,
/* 26082*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 26085*/        OPC_RecordMemRef,
/* 26086*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 26087*/        OPC_CheckFoldableChainNode,
/* 26088*/        OPC_RecordChild1, // #2 = $src2
/* 26089*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 26091*/        OPC_CheckPredicate, 9, // Predicate_load
/* 26093*/        OPC_MoveParent,
/* 26094*/        OPC_CheckPatternPredicate, 35, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 26096*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 26099*/        OPC_EmitMergeInputChains1_1,
/* 26100*/        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] } 7147:{ *:[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)
/* 26112*/      /*Scope*/ 32, /*->26145*/
/* 26113*/        OPC_MoveChild1,
/* 26114*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 26117*/        OPC_RecordMemRef,
/* 26118*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 26119*/        OPC_CheckFoldableChainNode,
/* 26120*/        OPC_RecordChild1, // #1 = $src2
/* 26121*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 26123*/        OPC_CheckPredicate, 9, // Predicate_load
/* 26125*/        OPC_MoveParent,
/* 26126*/        OPC_RecordChild2, // #2 = $src1
/* 26127*/        OPC_CheckPatternPredicate, 35, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 26129*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 26132*/        OPC_EmitMergeInputChains1_0,
/* 26133*/        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] } 7147:{ *:[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)
/* 26145*/      /*Scope*/ 12, /*->26158*/
/* 26146*/        OPC_RecordChild1, // #0 = $src1
/* 26147*/        OPC_RecordChild2, // #1 = $src2
/* 26148*/        OPC_CheckPatternPredicate, 35, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 26150*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PMAXSWirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7147:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PMAXSWirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 26158*/      0, /*End of Scope*/
/* 26159*/    /*Scope*/ 84, /*->26244*/
/* 26160*/      OPC_CheckChild0Integer, 117|128,55/*7157*/, 
/* 26163*/      OPC_Scope, 32, /*->26197*/ // 3 children in Scope
/* 26165*/        OPC_RecordChild1, // #0 = $src1
/* 26166*/        OPC_MoveChild2,
/* 26167*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 26170*/        OPC_RecordMemRef,
/* 26171*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 26172*/        OPC_CheckFoldableChainNode,
/* 26173*/        OPC_RecordChild1, // #2 = $src2
/* 26174*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 26176*/        OPC_CheckPredicate, 9, // Predicate_load
/* 26178*/        OPC_MoveParent,
/* 26179*/        OPC_CheckPatternPredicate, 35, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 26181*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 26184*/        OPC_EmitMergeInputChains1_1,
/* 26185*/        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] } 7157:{ *:[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)
/* 26197*/      /*Scope*/ 32, /*->26230*/
/* 26198*/        OPC_MoveChild1,
/* 26199*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 26202*/        OPC_RecordMemRef,
/* 26203*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 26204*/        OPC_CheckFoldableChainNode,
/* 26205*/        OPC_RecordChild1, // #1 = $src2
/* 26206*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 26208*/        OPC_CheckPredicate, 9, // Predicate_load
/* 26210*/        OPC_MoveParent,
/* 26211*/        OPC_RecordChild2, // #2 = $src1
/* 26212*/        OPC_CheckPatternPredicate, 35, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 26214*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 26217*/        OPC_EmitMergeInputChains1_0,
/* 26218*/        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] } 7157:{ *:[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)
/* 26230*/      /*Scope*/ 12, /*->26243*/
/* 26231*/        OPC_RecordChild1, // #0 = $src1
/* 26232*/        OPC_RecordChild2, // #1 = $src2
/* 26233*/        OPC_CheckPatternPredicate, 35, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 26235*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSADBWirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7157:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PSADBWirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 26243*/      0, /*End of Scope*/
/* 26244*/    /*Scope*/ 50, /*->26295*/
/* 26245*/      OPC_CheckChild0Integer, 97|128,57/*7393*/, 
/* 26248*/      OPC_RecordChild1, // #0 = $src1
/* 26249*/      OPC_Scope, 31, /*->26282*/ // 2 children in Scope
/* 26251*/        OPC_MoveChild2,
/* 26252*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 26255*/        OPC_RecordMemRef,
/* 26256*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 26257*/        OPC_CheckFoldableChainNode,
/* 26258*/        OPC_RecordChild1, // #2 = $src2
/* 26259*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 26261*/        OPC_CheckPredicate, 9, // Predicate_load
/* 26263*/        OPC_MoveParent,
/* 26264*/        OPC_CheckPatternPredicate, 36, // (Subtarget->hasMMX()) && (Subtarget->hasSSSE3())
/* 26266*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 26269*/        OPC_EmitMergeInputChains1_1,
/* 26270*/        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] } 7393:{ *:[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)
/* 26282*/      /*Scope*/ 11, /*->26294*/
/* 26283*/        OPC_RecordChild2, // #1 = $src2
/* 26284*/        OPC_CheckPatternPredicate, 36, // (Subtarget->hasMMX()) && (Subtarget->hasSSSE3())
/* 26286*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSIGNBrr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7393:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PSIGNBrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 26294*/      0, /*End of Scope*/
/* 26295*/    /*Scope*/ 50, /*->26346*/
/* 26296*/      OPC_CheckChild0Integer, 101|128,57/*7397*/, 
/* 26299*/      OPC_RecordChild1, // #0 = $src1
/* 26300*/      OPC_Scope, 31, /*->26333*/ // 2 children in Scope
/* 26302*/        OPC_MoveChild2,
/* 26303*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 26306*/        OPC_RecordMemRef,
/* 26307*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 26308*/        OPC_CheckFoldableChainNode,
/* 26309*/        OPC_RecordChild1, // #2 = $src2
/* 26310*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 26312*/        OPC_CheckPredicate, 9, // Predicate_load
/* 26314*/        OPC_MoveParent,
/* 26315*/        OPC_CheckPatternPredicate, 36, // (Subtarget->hasMMX()) && (Subtarget->hasSSSE3())
/* 26317*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 26320*/        OPC_EmitMergeInputChains1_1,
/* 26321*/        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] } 7397:{ *:[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)
/* 26333*/      /*Scope*/ 11, /*->26345*/
/* 26334*/        OPC_RecordChild2, // #1 = $src2
/* 26335*/        OPC_CheckPatternPredicate, 36, // (Subtarget->hasMMX()) && (Subtarget->hasSSSE3())
/* 26337*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSIGNWrr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7397:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PSIGNWrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 26345*/      0, /*End of Scope*/
/* 26346*/    /*Scope*/ 50, /*->26397*/
/* 26347*/      OPC_CheckChild0Integer, 99|128,57/*7395*/, 
/* 26350*/      OPC_RecordChild1, // #0 = $src1
/* 26351*/      OPC_Scope, 31, /*->26384*/ // 2 children in Scope
/* 26353*/        OPC_MoveChild2,
/* 26354*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 26357*/        OPC_RecordMemRef,
/* 26358*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 26359*/        OPC_CheckFoldableChainNode,
/* 26360*/        OPC_RecordChild1, // #2 = $src2
/* 26361*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 26363*/        OPC_CheckPredicate, 9, // Predicate_load
/* 26365*/        OPC_MoveParent,
/* 26366*/        OPC_CheckPatternPredicate, 36, // (Subtarget->hasMMX()) && (Subtarget->hasSSSE3())
/* 26368*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 26371*/        OPC_EmitMergeInputChains1_1,
/* 26372*/        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] } 7395:{ *:[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)
/* 26384*/      /*Scope*/ 11, /*->26396*/
/* 26385*/        OPC_RecordChild2, // #1 = $src2
/* 26386*/        OPC_CheckPatternPredicate, 36, // (Subtarget->hasMMX()) && (Subtarget->hasSSSE3())
/* 26388*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSIGNDrr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7395:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PSIGNDrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 26396*/      0, /*End of Scope*/
/* 26397*/    /*Scope*/ 84, /*->26482*/
/* 26398*/      OPC_CheckChild0Integer, 94|128,55/*7134*/, 
/* 26401*/      OPC_Scope, 32, /*->26435*/ // 3 children in Scope
/* 26403*/        OPC_RecordChild1, // #0 = $src1
/* 26404*/        OPC_MoveChild2,
/* 26405*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 26408*/        OPC_RecordMemRef,
/* 26409*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 26410*/        OPC_CheckFoldableChainNode,
/* 26411*/        OPC_RecordChild1, // #2 = $src2
/* 26412*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 26414*/        OPC_CheckPredicate, 9, // Predicate_load
/* 26416*/        OPC_MoveParent,
/* 26417*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 26419*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 26422*/        OPC_EmitMergeInputChains1_1,
/* 26423*/        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] } 7134:{ *:[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)
/* 26435*/      /*Scope*/ 32, /*->26468*/
/* 26436*/        OPC_MoveChild1,
/* 26437*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 26440*/        OPC_RecordMemRef,
/* 26441*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 26442*/        OPC_CheckFoldableChainNode,
/* 26443*/        OPC_RecordChild1, // #1 = $src2
/* 26444*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 26446*/        OPC_CheckPredicate, 9, // Predicate_load
/* 26448*/        OPC_MoveParent,
/* 26449*/        OPC_RecordChild2, // #2 = $src1
/* 26450*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 26452*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 26455*/        OPC_EmitMergeInputChains1_0,
/* 26456*/        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] } 7134:{ *:[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)
/* 26468*/      /*Scope*/ 12, /*->26481*/
/* 26469*/        OPC_RecordChild1, // #0 = $src1
/* 26470*/        OPC_RecordChild2, // #1 = $src2
/* 26471*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 26473*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PANDirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7134:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PANDirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 26481*/      0, /*End of Scope*/
/* 26482*/    /*Scope*/ 84, /*->26567*/
/* 26483*/      OPC_CheckChild0Integer, 116|128,55/*7156*/, 
/* 26486*/      OPC_Scope, 32, /*->26520*/ // 3 children in Scope
/* 26488*/        OPC_RecordChild1, // #0 = $src1
/* 26489*/        OPC_MoveChild2,
/* 26490*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 26493*/        OPC_RecordMemRef,
/* 26494*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 26495*/        OPC_CheckFoldableChainNode,
/* 26496*/        OPC_RecordChild1, // #2 = $src2
/* 26497*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 26499*/        OPC_CheckPredicate, 9, // Predicate_load
/* 26501*/        OPC_MoveParent,
/* 26502*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 26504*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 26507*/        OPC_EmitMergeInputChains1_1,
/* 26508*/        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] } 7156:{ *:[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)
/* 26520*/      /*Scope*/ 32, /*->26553*/
/* 26521*/        OPC_MoveChild1,
/* 26522*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 26525*/        OPC_RecordMemRef,
/* 26526*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 26527*/        OPC_CheckFoldableChainNode,
/* 26528*/        OPC_RecordChild1, // #1 = $src2
/* 26529*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 26531*/        OPC_CheckPredicate, 9, // Predicate_load
/* 26533*/        OPC_MoveParent,
/* 26534*/        OPC_RecordChild2, // #2 = $src1
/* 26535*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 26537*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 26540*/        OPC_EmitMergeInputChains1_0,
/* 26541*/        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] } 7156:{ *:[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)
/* 26553*/      /*Scope*/ 12, /*->26566*/
/* 26554*/        OPC_RecordChild1, // #0 = $src1
/* 26555*/        OPC_RecordChild2, // #1 = $src2
/* 26556*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 26558*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PORirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7156:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PORirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 26566*/      0, /*End of Scope*/
/* 26567*/    /*Scope*/ 84, /*->26652*/
/* 26568*/      OPC_CheckChild0Integer, 20|128,56/*7188*/, 
/* 26571*/      OPC_Scope, 32, /*->26605*/ // 3 children in Scope
/* 26573*/        OPC_RecordChild1, // #0 = $src1
/* 26574*/        OPC_MoveChild2,
/* 26575*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 26578*/        OPC_RecordMemRef,
/* 26579*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 26580*/        OPC_CheckFoldableChainNode,
/* 26581*/        OPC_RecordChild1, // #2 = $src2
/* 26582*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 26584*/        OPC_CheckPredicate, 9, // Predicate_load
/* 26586*/        OPC_MoveParent,
/* 26587*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 26589*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 26592*/        OPC_EmitMergeInputChains1_1,
/* 26593*/        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] } 7188:{ *:[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)
/* 26605*/      /*Scope*/ 32, /*->26638*/
/* 26606*/        OPC_MoveChild1,
/* 26607*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 26610*/        OPC_RecordMemRef,
/* 26611*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 26612*/        OPC_CheckFoldableChainNode,
/* 26613*/        OPC_RecordChild1, // #1 = $src2
/* 26614*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 26616*/        OPC_CheckPredicate, 9, // Predicate_load
/* 26618*/        OPC_MoveParent,
/* 26619*/        OPC_RecordChild2, // #2 = $src1
/* 26620*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 26622*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 26625*/        OPC_EmitMergeInputChains1_0,
/* 26626*/        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] } 7188:{ *:[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)
/* 26638*/      /*Scope*/ 12, /*->26651*/
/* 26639*/        OPC_RecordChild1, // #0 = $src1
/* 26640*/        OPC_RecordChild2, // #1 = $src2
/* 26641*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 26643*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PXORirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7188:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PXORirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 26651*/      0, /*End of Scope*/
/* 26652*/    /*Scope*/ 50, /*->26703*/
/* 26653*/      OPC_CheckChild0Integer, 95|128,55/*7135*/, 
/* 26656*/      OPC_RecordChild1, // #0 = $src1
/* 26657*/      OPC_Scope, 31, /*->26690*/ // 2 children in Scope
/* 26659*/        OPC_MoveChild2,
/* 26660*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 26663*/        OPC_RecordMemRef,
/* 26664*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 26665*/        OPC_CheckFoldableChainNode,
/* 26666*/        OPC_RecordChild1, // #2 = $src2
/* 26667*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 26669*/        OPC_CheckPredicate, 9, // Predicate_load
/* 26671*/        OPC_MoveParent,
/* 26672*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 26674*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 26677*/        OPC_EmitMergeInputChains1_1,
/* 26678*/        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] } 7135:{ *:[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)
/* 26690*/      /*Scope*/ 11, /*->26702*/
/* 26691*/        OPC_RecordChild2, // #1 = $src2
/* 26692*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 26694*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PANDNirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7135:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PANDNirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 26702*/      0, /*End of Scope*/
/* 26703*/    /*Scope*/ 50, /*->26754*/
/* 26704*/      OPC_CheckChild0Integer, 2|128,56/*7170*/, 
/* 26707*/      OPC_RecordChild1, // #0 = $src1
/* 26708*/      OPC_Scope, 31, /*->26741*/ // 2 children in Scope
/* 26710*/        OPC_MoveChild2,
/* 26711*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 26714*/        OPC_RecordMemRef,
/* 26715*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 26716*/        OPC_CheckFoldableChainNode,
/* 26717*/        OPC_RecordChild1, // #2 = $src2
/* 26718*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 26720*/        OPC_CheckPredicate, 9, // Predicate_load
/* 26722*/        OPC_MoveParent,
/* 26723*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 26725*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 26728*/        OPC_EmitMergeInputChains1_1,
/* 26729*/        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] } 7170:{ *:[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)
/* 26741*/      /*Scope*/ 11, /*->26753*/
/* 26742*/        OPC_RecordChild2, // #1 = $src2
/* 26743*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 26745*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSRLWrr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7170:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PSRLWrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 26753*/      0, /*End of Scope*/
/* 26754*/    /*Scope*/ 50, /*->26805*/
/* 26755*/      OPC_CheckChild0Integer, 0|128,56/*7168*/, 
/* 26758*/      OPC_RecordChild1, // #0 = $src1
/* 26759*/      OPC_Scope, 31, /*->26792*/ // 2 children in Scope
/* 26761*/        OPC_MoveChild2,
/* 26762*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 26765*/        OPC_RecordMemRef,
/* 26766*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 26767*/        OPC_CheckFoldableChainNode,
/* 26768*/        OPC_RecordChild1, // #2 = $src2
/* 26769*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 26771*/        OPC_CheckPredicate, 9, // Predicate_load
/* 26773*/        OPC_MoveParent,
/* 26774*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 26776*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 26779*/        OPC_EmitMergeInputChains1_1,
/* 26780*/        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] } 7168:{ *:[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)
/* 26792*/      /*Scope*/ 11, /*->26804*/
/* 26793*/        OPC_RecordChild2, // #1 = $src2
/* 26794*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 26796*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSRLDrr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7168:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PSRLDrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 26804*/      0, /*End of Scope*/
/* 26805*/    /*Scope*/ 50, /*->26856*/
/* 26806*/      OPC_CheckChild0Integer, 1|128,56/*7169*/, 
/* 26809*/      OPC_RecordChild1, // #0 = $src1
/* 26810*/      OPC_Scope, 31, /*->26843*/ // 2 children in Scope
/* 26812*/        OPC_MoveChild2,
/* 26813*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 26816*/        OPC_RecordMemRef,
/* 26817*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 26818*/        OPC_CheckFoldableChainNode,
/* 26819*/        OPC_RecordChild1, // #2 = $src2
/* 26820*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 26822*/        OPC_CheckPredicate, 9, // Predicate_load
/* 26824*/        OPC_MoveParent,
/* 26825*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 26827*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 26830*/        OPC_EmitMergeInputChains1_1,
/* 26831*/        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] } 7169:{ *:[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)
/* 26843*/      /*Scope*/ 11, /*->26855*/
/* 26844*/        OPC_RecordChild2, // #1 = $src2
/* 26845*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 26847*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSRLQrr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7169:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PSRLQrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 26855*/      0, /*End of Scope*/
/* 26856*/    /*Scope*/ 50, /*->26907*/
/* 26857*/      OPC_CheckChild0Integer, 120|128,55/*7160*/, 
/* 26860*/      OPC_RecordChild1, // #0 = $src1
/* 26861*/      OPC_Scope, 31, /*->26894*/ // 2 children in Scope
/* 26863*/        OPC_MoveChild2,
/* 26864*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 26867*/        OPC_RecordMemRef,
/* 26868*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 26869*/        OPC_CheckFoldableChainNode,
/* 26870*/        OPC_RecordChild1, // #2 = $src2
/* 26871*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 26873*/        OPC_CheckPredicate, 9, // Predicate_load
/* 26875*/        OPC_MoveParent,
/* 26876*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 26878*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 26881*/        OPC_EmitMergeInputChains1_1,
/* 26882*/        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] } 7160:{ *:[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)
/* 26894*/      /*Scope*/ 11, /*->26906*/
/* 26895*/        OPC_RecordChild2, // #1 = $src2
/* 26896*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 26898*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSLLWrr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7160:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PSLLWrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 26906*/      0, /*End of Scope*/
/* 26907*/    /*Scope*/ 50, /*->26958*/
/* 26908*/      OPC_CheckChild0Integer, 118|128,55/*7158*/, 
/* 26911*/      OPC_RecordChild1, // #0 = $src1
/* 26912*/      OPC_Scope, 31, /*->26945*/ // 2 children in Scope
/* 26914*/        OPC_MoveChild2,
/* 26915*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 26918*/        OPC_RecordMemRef,
/* 26919*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 26920*/        OPC_CheckFoldableChainNode,
/* 26921*/        OPC_RecordChild1, // #2 = $src2
/* 26922*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 26924*/        OPC_CheckPredicate, 9, // Predicate_load
/* 26926*/        OPC_MoveParent,
/* 26927*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 26929*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 26932*/        OPC_EmitMergeInputChains1_1,
/* 26933*/        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] } 7158:{ *:[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)
/* 26945*/      /*Scope*/ 11, /*->26957*/
/* 26946*/        OPC_RecordChild2, // #1 = $src2
/* 26947*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 26949*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSLLDrr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7158:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PSLLDrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 26957*/      0, /*End of Scope*/
/* 26958*/    /*Scope*/ 50, /*->27009*/
/* 26959*/      OPC_CheckChild0Integer, 119|128,55/*7159*/, 
/* 26962*/      OPC_RecordChild1, // #0 = $src1
/* 26963*/      OPC_Scope, 31, /*->26996*/ // 2 children in Scope
/* 26965*/        OPC_MoveChild2,
/* 26966*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 26969*/        OPC_RecordMemRef,
/* 26970*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 26971*/        OPC_CheckFoldableChainNode,
/* 26972*/        OPC_RecordChild1, // #2 = $src2
/* 26973*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 26975*/        OPC_CheckPredicate, 9, // Predicate_load
/* 26977*/        OPC_MoveParent,
/* 26978*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 26980*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 26983*/        OPC_EmitMergeInputChains1_1,
/* 26984*/        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] } 7159:{ *:[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)
/* 26996*/      /*Scope*/ 11, /*->27008*/
/* 26997*/        OPC_RecordChild2, // #1 = $src2
/* 26998*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 27000*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSLLQrr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7159:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PSLLQrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 27008*/      0, /*End of Scope*/
/* 27009*/    /*Scope*/ 50, /*->27060*/
/* 27010*/      OPC_CheckChild0Integer, 125|128,55/*7165*/, 
/* 27013*/      OPC_RecordChild1, // #0 = $src1
/* 27014*/      OPC_Scope, 31, /*->27047*/ // 2 children in Scope
/* 27016*/        OPC_MoveChild2,
/* 27017*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 27020*/        OPC_RecordMemRef,
/* 27021*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 27022*/        OPC_CheckFoldableChainNode,
/* 27023*/        OPC_RecordChild1, // #2 = $src2
/* 27024*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 27026*/        OPC_CheckPredicate, 9, // Predicate_load
/* 27028*/        OPC_MoveParent,
/* 27029*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 27031*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 27034*/        OPC_EmitMergeInputChains1_1,
/* 27035*/        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] } 7165:{ *:[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)
/* 27047*/      /*Scope*/ 11, /*->27059*/
/* 27048*/        OPC_RecordChild2, // #1 = $src2
/* 27049*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 27051*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSRAWrr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7165:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PSRAWrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 27059*/      0, /*End of Scope*/
/* 27060*/    /*Scope*/ 50, /*->27111*/
/* 27061*/      OPC_CheckChild0Integer, 124|128,55/*7164*/, 
/* 27064*/      OPC_RecordChild1, // #0 = $src1
/* 27065*/      OPC_Scope, 31, /*->27098*/ // 2 children in Scope
/* 27067*/        OPC_MoveChild2,
/* 27068*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 27071*/        OPC_RecordMemRef,
/* 27072*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 27073*/        OPC_CheckFoldableChainNode,
/* 27074*/        OPC_RecordChild1, // #2 = $src2
/* 27075*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 27077*/        OPC_CheckPredicate, 9, // Predicate_load
/* 27079*/        OPC_MoveParent,
/* 27080*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 27082*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 27085*/        OPC_EmitMergeInputChains1_1,
/* 27086*/        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] } 7164:{ *:[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)
/* 27098*/      /*Scope*/ 11, /*->27110*/
/* 27099*/        OPC_RecordChild2, // #1 = $src2
/* 27100*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 27102*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSRADrr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7164:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PSRADrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 27110*/      0, /*End of Scope*/
/* 27111*/    /*Scope*/ 84, /*->27196*/
/* 27112*/      OPC_CheckChild0Integer, 98|128,55/*7138*/, 
/* 27115*/      OPC_Scope, 32, /*->27149*/ // 3 children in Scope
/* 27117*/        OPC_RecordChild1, // #0 = $src1
/* 27118*/        OPC_MoveChild2,
/* 27119*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 27122*/        OPC_RecordMemRef,
/* 27123*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 27124*/        OPC_CheckFoldableChainNode,
/* 27125*/        OPC_RecordChild1, // #2 = $src2
/* 27126*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 27128*/        OPC_CheckPredicate, 9, // Predicate_load
/* 27130*/        OPC_MoveParent,
/* 27131*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 27133*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 27136*/        OPC_EmitMergeInputChains1_1,
/* 27137*/        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] } 7138:{ *:[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)
/* 27149*/      /*Scope*/ 32, /*->27182*/
/* 27150*/        OPC_MoveChild1,
/* 27151*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 27154*/        OPC_RecordMemRef,
/* 27155*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 27156*/        OPC_CheckFoldableChainNode,
/* 27157*/        OPC_RecordChild1, // #1 = $src2
/* 27158*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 27160*/        OPC_CheckPredicate, 9, // Predicate_load
/* 27162*/        OPC_MoveParent,
/* 27163*/        OPC_RecordChild2, // #2 = $src1
/* 27164*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 27166*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 27169*/        OPC_EmitMergeInputChains1_0,
/* 27170*/        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] } 7138:{ *:[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)
/* 27182*/      /*Scope*/ 12, /*->27195*/
/* 27183*/        OPC_RecordChild1, // #0 = $src1
/* 27184*/        OPC_RecordChild2, // #1 = $src2
/* 27185*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 27187*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PCMPEQBirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7138:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PCMPEQBirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 27195*/      0, /*End of Scope*/
/* 27196*/    /*Scope*/ 84, /*->27281*/
/* 27197*/      OPC_CheckChild0Integer, 100|128,55/*7140*/, 
/* 27200*/      OPC_Scope, 32, /*->27234*/ // 3 children in Scope
/* 27202*/        OPC_RecordChild1, // #0 = $src1
/* 27203*/        OPC_MoveChild2,
/* 27204*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 27207*/        OPC_RecordMemRef,
/* 27208*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 27209*/        OPC_CheckFoldableChainNode,
/* 27210*/        OPC_RecordChild1, // #2 = $src2
/* 27211*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 27213*/        OPC_CheckPredicate, 9, // Predicate_load
/* 27215*/        OPC_MoveParent,
/* 27216*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 27218*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 27221*/        OPC_EmitMergeInputChains1_1,
/* 27222*/        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] } 7140:{ *:[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)
/* 27234*/      /*Scope*/ 32, /*->27267*/
/* 27235*/        OPC_MoveChild1,
/* 27236*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 27239*/        OPC_RecordMemRef,
/* 27240*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 27241*/        OPC_CheckFoldableChainNode,
/* 27242*/        OPC_RecordChild1, // #1 = $src2
/* 27243*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 27245*/        OPC_CheckPredicate, 9, // Predicate_load
/* 27247*/        OPC_MoveParent,
/* 27248*/        OPC_RecordChild2, // #2 = $src1
/* 27249*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 27251*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 27254*/        OPC_EmitMergeInputChains1_0,
/* 27255*/        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] } 7140:{ *:[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)
/* 27267*/      /*Scope*/ 12, /*->27280*/
/* 27268*/        OPC_RecordChild1, // #0 = $src1
/* 27269*/        OPC_RecordChild2, // #1 = $src2
/* 27270*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 27272*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PCMPEQWirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7140:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PCMPEQWirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 27280*/      0, /*End of Scope*/
/* 27281*/    /*Scope*/ 84, /*->27366*/
/* 27282*/      OPC_CheckChild0Integer, 99|128,55/*7139*/, 
/* 27285*/      OPC_Scope, 32, /*->27319*/ // 3 children in Scope
/* 27287*/        OPC_RecordChild1, // #0 = $src1
/* 27288*/        OPC_MoveChild2,
/* 27289*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 27292*/        OPC_RecordMemRef,
/* 27293*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 27294*/        OPC_CheckFoldableChainNode,
/* 27295*/        OPC_RecordChild1, // #2 = $src2
/* 27296*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 27298*/        OPC_CheckPredicate, 9, // Predicate_load
/* 27300*/        OPC_MoveParent,
/* 27301*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 27303*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 27306*/        OPC_EmitMergeInputChains1_1,
/* 27307*/        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] } 7139:{ *:[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)
/* 27319*/      /*Scope*/ 32, /*->27352*/
/* 27320*/        OPC_MoveChild1,
/* 27321*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 27324*/        OPC_RecordMemRef,
/* 27325*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 27326*/        OPC_CheckFoldableChainNode,
/* 27327*/        OPC_RecordChild1, // #1 = $src2
/* 27328*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 27330*/        OPC_CheckPredicate, 9, // Predicate_load
/* 27332*/        OPC_MoveParent,
/* 27333*/        OPC_RecordChild2, // #2 = $src1
/* 27334*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 27336*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 27339*/        OPC_EmitMergeInputChains1_0,
/* 27340*/        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] } 7139:{ *:[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)
/* 27352*/      /*Scope*/ 12, /*->27365*/
/* 27353*/        OPC_RecordChild1, // #0 = $src1
/* 27354*/        OPC_RecordChild2, // #1 = $src2
/* 27355*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 27357*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PCMPEQDirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7139:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PCMPEQDirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 27365*/      0, /*End of Scope*/
/* 27366*/    /*Scope*/ 50, /*->27417*/
/* 27367*/      OPC_CheckChild0Integer, 101|128,55/*7141*/, 
/* 27370*/      OPC_RecordChild1, // #0 = $src1
/* 27371*/      OPC_Scope, 31, /*->27404*/ // 2 children in Scope
/* 27373*/        OPC_MoveChild2,
/* 27374*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 27377*/        OPC_RecordMemRef,
/* 27378*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 27379*/        OPC_CheckFoldableChainNode,
/* 27380*/        OPC_RecordChild1, // #2 = $src2
/* 27381*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 27383*/        OPC_CheckPredicate, 9, // Predicate_load
/* 27385*/        OPC_MoveParent,
/* 27386*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 27388*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 27391*/        OPC_EmitMergeInputChains1_1,
/* 27392*/        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] } 7141:{ *:[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)
/* 27404*/      /*Scope*/ 11, /*->27416*/
/* 27405*/        OPC_RecordChild2, // #1 = $src2
/* 27406*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 27408*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PCMPGTBirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7141:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PCMPGTBirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 27416*/      0, /*End of Scope*/
/* 27417*/    /*Scope*/ 50, /*->27468*/
/* 27418*/      OPC_CheckChild0Integer, 103|128,55/*7143*/, 
/* 27421*/      OPC_RecordChild1, // #0 = $src1
/* 27422*/      OPC_Scope, 31, /*->27455*/ // 2 children in Scope
/* 27424*/        OPC_MoveChild2,
/* 27425*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 27428*/        OPC_RecordMemRef,
/* 27429*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 27430*/        OPC_CheckFoldableChainNode,
/* 27431*/        OPC_RecordChild1, // #2 = $src2
/* 27432*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 27434*/        OPC_CheckPredicate, 9, // Predicate_load
/* 27436*/        OPC_MoveParent,
/* 27437*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 27439*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 27442*/        OPC_EmitMergeInputChains1_1,
/* 27443*/        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] } 7143:{ *:[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)
/* 27455*/      /*Scope*/ 11, /*->27467*/
/* 27456*/        OPC_RecordChild2, // #1 = $src2
/* 27457*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 27459*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PCMPGTWirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7143:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PCMPGTWirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 27467*/      0, /*End of Scope*/
/* 27468*/    /*Scope*/ 50, /*->27519*/
/* 27469*/      OPC_CheckChild0Integer, 102|128,55/*7142*/, 
/* 27472*/      OPC_RecordChild1, // #0 = $src1
/* 27473*/      OPC_Scope, 31, /*->27506*/ // 2 children in Scope
/* 27475*/        OPC_MoveChild2,
/* 27476*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 27479*/        OPC_RecordMemRef,
/* 27480*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 27481*/        OPC_CheckFoldableChainNode,
/* 27482*/        OPC_RecordChild1, // #2 = $src2
/* 27483*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 27485*/        OPC_CheckPredicate, 9, // Predicate_load
/* 27487*/        OPC_MoveParent,
/* 27488*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 27490*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 27493*/        OPC_EmitMergeInputChains1_1,
/* 27494*/        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] } 7142:{ *:[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)
/* 27506*/      /*Scope*/ 11, /*->27518*/
/* 27507*/        OPC_RecordChild2, // #1 = $src2
/* 27508*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 27510*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PCMPGTDirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7142:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PCMPGTDirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 27518*/      0, /*End of Scope*/
/* 27519*/    /*Scope*/ 50, /*->27570*/
/* 27520*/      OPC_CheckChild0Integer, 14|128,56/*7182*/, 
/* 27523*/      OPC_RecordChild1, // #0 = $src1
/* 27524*/      OPC_Scope, 31, /*->27557*/ // 2 children in Scope
/* 27526*/        OPC_MoveChild2,
/* 27527*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 27530*/        OPC_RecordMemRef,
/* 27531*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 27532*/        OPC_CheckFoldableChainNode,
/* 27533*/        OPC_RecordChild1, // #2 = $src2
/* 27534*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 27536*/        OPC_CheckPredicate, 9, // Predicate_load
/* 27538*/        OPC_MoveParent,
/* 27539*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 27541*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 27544*/        OPC_EmitMergeInputChains1_1,
/* 27545*/        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] } 7182:{ *:[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)
/* 27557*/      /*Scope*/ 11, /*->27569*/
/* 27558*/        OPC_RecordChild2, // #1 = $src2
/* 27559*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 27561*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PUNPCKHBWirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7182:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PUNPCKHBWirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 27569*/      0, /*End of Scope*/
/* 27570*/    /*Scope*/ 50, /*->27621*/
/* 27571*/      OPC_CheckChild0Integer, 16|128,56/*7184*/, 
/* 27574*/      OPC_RecordChild1, // #0 = $src1
/* 27575*/      OPC_Scope, 31, /*->27608*/ // 2 children in Scope
/* 27577*/        OPC_MoveChild2,
/* 27578*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 27581*/        OPC_RecordMemRef,
/* 27582*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 27583*/        OPC_CheckFoldableChainNode,
/* 27584*/        OPC_RecordChild1, // #2 = $src2
/* 27585*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 27587*/        OPC_CheckPredicate, 9, // Predicate_load
/* 27589*/        OPC_MoveParent,
/* 27590*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 27592*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 27595*/        OPC_EmitMergeInputChains1_1,
/* 27596*/        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] } 7184:{ *:[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)
/* 27608*/      /*Scope*/ 11, /*->27620*/
/* 27609*/        OPC_RecordChild2, // #1 = $src2
/* 27610*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 27612*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PUNPCKHWDirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7184:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PUNPCKHWDirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 27620*/      0, /*End of Scope*/
/* 27621*/    /*Scope*/ 50, /*->27672*/
/* 27622*/      OPC_CheckChild0Integer, 15|128,56/*7183*/, 
/* 27625*/      OPC_RecordChild1, // #0 = $src1
/* 27626*/      OPC_Scope, 31, /*->27659*/ // 2 children in Scope
/* 27628*/        OPC_MoveChild2,
/* 27629*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 27632*/        OPC_RecordMemRef,
/* 27633*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 27634*/        OPC_CheckFoldableChainNode,
/* 27635*/        OPC_RecordChild1, // #2 = $src2
/* 27636*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 27638*/        OPC_CheckPredicate, 9, // Predicate_load
/* 27640*/        OPC_MoveParent,
/* 27641*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 27643*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 27646*/        OPC_EmitMergeInputChains1_1,
/* 27647*/        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] } 7183:{ *:[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)
/* 27659*/      /*Scope*/ 11, /*->27671*/
/* 27660*/        OPC_RecordChild2, // #1 = $src2
/* 27661*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 27663*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PUNPCKHDQirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7183:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PUNPCKHDQirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 27671*/      0, /*End of Scope*/
/* 27672*/    /*Scope*/ 50, /*->27723*/
/* 27673*/      OPC_CheckChild0Integer, 17|128,56/*7185*/, 
/* 27676*/      OPC_RecordChild1, // #0 = $src1
/* 27677*/      OPC_Scope, 31, /*->27710*/ // 2 children in Scope
/* 27679*/        OPC_MoveChild2,
/* 27680*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 27683*/        OPC_RecordMemRef,
/* 27684*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 27685*/        OPC_CheckFoldableChainNode,
/* 27686*/        OPC_RecordChild1, // #2 = $src2
/* 27687*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 27689*/        OPC_CheckPredicate, 9, // Predicate_load
/* 27691*/        OPC_MoveParent,
/* 27692*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 27694*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 27697*/        OPC_EmitMergeInputChains1_1,
/* 27698*/        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] } 7185:{ *:[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)
/* 27710*/      /*Scope*/ 11, /*->27722*/
/* 27711*/        OPC_RecordChild2, // #1 = $src2
/* 27712*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 27714*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PUNPCKLBWirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7185:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PUNPCKLBWirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 27722*/      0, /*End of Scope*/
/* 27723*/    /*Scope*/ 50, /*->27774*/
/* 27724*/      OPC_CheckChild0Integer, 19|128,56/*7187*/, 
/* 27727*/      OPC_RecordChild1, // #0 = $src1
/* 27728*/      OPC_Scope, 31, /*->27761*/ // 2 children in Scope
/* 27730*/        OPC_MoveChild2,
/* 27731*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 27734*/        OPC_RecordMemRef,
/* 27735*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 27736*/        OPC_CheckFoldableChainNode,
/* 27737*/        OPC_RecordChild1, // #2 = $src2
/* 27738*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 27740*/        OPC_CheckPredicate, 9, // Predicate_load
/* 27742*/        OPC_MoveParent,
/* 27743*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 27745*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 27748*/        OPC_EmitMergeInputChains1_1,
/* 27749*/        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] } 7187:{ *:[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)
/* 27761*/      /*Scope*/ 11, /*->27773*/
/* 27762*/        OPC_RecordChild2, // #1 = $src2
/* 27763*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 27765*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PUNPCKLWDirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7187:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PUNPCKLWDirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 27773*/      0, /*End of Scope*/
/* 27774*/    /*Scope*/ 50, /*->27825*/
/* 27775*/      OPC_CheckChild0Integer, 18|128,56/*7186*/, 
/* 27778*/      OPC_RecordChild1, // #0 = $src1
/* 27779*/      OPC_Scope, 31, /*->27812*/ // 2 children in Scope
/* 27781*/        OPC_MoveChild2,
/* 27782*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 27785*/        OPC_RecordMemRef,
/* 27786*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 27787*/        OPC_CheckFoldableChainNode,
/* 27788*/        OPC_RecordChild1, // #2 = $src2
/* 27789*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 27791*/        OPC_CheckPredicate, 9, // Predicate_load
/* 27793*/        OPC_MoveParent,
/* 27794*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 27796*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 27799*/        OPC_EmitMergeInputChains1_1,
/* 27800*/        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] } 7186:{ *:[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)
/* 27812*/      /*Scope*/ 11, /*->27824*/
/* 27813*/        OPC_RecordChild2, // #1 = $src2
/* 27814*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 27816*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PUNPCKLDQirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7186:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PUNPCKLDQirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 27824*/      0, /*End of Scope*/
/* 27825*/    /*Scope*/ 50, /*->27876*/
/* 27826*/      OPC_CheckChild0Integer, 83|128,55/*7123*/, 
/* 27829*/      OPC_RecordChild1, // #0 = $src1
/* 27830*/      OPC_Scope, 31, /*->27863*/ // 2 children in Scope
/* 27832*/        OPC_MoveChild2,
/* 27833*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 27836*/        OPC_RecordMemRef,
/* 27837*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 27838*/        OPC_CheckFoldableChainNode,
/* 27839*/        OPC_RecordChild1, // #2 = $src2
/* 27840*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 27842*/        OPC_CheckPredicate, 9, // Predicate_load
/* 27844*/        OPC_MoveParent,
/* 27845*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 27847*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 27850*/        OPC_EmitMergeInputChains1_1,
/* 27851*/        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] } 7123:{ *:[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)
/* 27863*/      /*Scope*/ 11, /*->27875*/
/* 27864*/        OPC_RecordChild2, // #1 = $src2
/* 27865*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 27867*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PACKSSWBirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7123:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PACKSSWBirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 27875*/      0, /*End of Scope*/
/* 27876*/    /*Scope*/ 50, /*->27927*/
/* 27877*/      OPC_CheckChild0Integer, 82|128,55/*7122*/, 
/* 27880*/      OPC_RecordChild1, // #0 = $src1
/* 27881*/      OPC_Scope, 31, /*->27914*/ // 2 children in Scope
/* 27883*/        OPC_MoveChild2,
/* 27884*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 27887*/        OPC_RecordMemRef,
/* 27888*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 27889*/        OPC_CheckFoldableChainNode,
/* 27890*/        OPC_RecordChild1, // #2 = $src2
/* 27891*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 27893*/        OPC_CheckPredicate, 9, // Predicate_load
/* 27895*/        OPC_MoveParent,
/* 27896*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 27898*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 27901*/        OPC_EmitMergeInputChains1_1,
/* 27902*/        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] } 7122:{ *:[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)
/* 27914*/      /*Scope*/ 11, /*->27926*/
/* 27915*/        OPC_RecordChild2, // #1 = $src2
/* 27916*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 27918*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PACKSSDWirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7122:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PACKSSDWirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 27926*/      0, /*End of Scope*/
/* 27927*/    /*Scope*/ 50, /*->27978*/
/* 27928*/      OPC_CheckChild0Integer, 84|128,55/*7124*/, 
/* 27931*/      OPC_RecordChild1, // #0 = $src1
/* 27932*/      OPC_Scope, 31, /*->27965*/ // 2 children in Scope
/* 27934*/        OPC_MoveChild2,
/* 27935*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 27938*/        OPC_RecordMemRef,
/* 27939*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 27940*/        OPC_CheckFoldableChainNode,
/* 27941*/        OPC_RecordChild1, // #2 = $src2
/* 27942*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 27944*/        OPC_CheckPredicate, 9, // Predicate_load
/* 27946*/        OPC_MoveParent,
/* 27947*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 27949*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 27952*/        OPC_EmitMergeInputChains1_1,
/* 27953*/        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] } 7124:{ *:[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)
/* 27965*/      /*Scope*/ 11, /*->27977*/
/* 27966*/        OPC_RecordChild2, // #1 = $src2
/* 27967*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 27969*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PACKUSWBirr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7124:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PACKUSWBirr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 27977*/      0, /*End of Scope*/
/* 27978*/    /*Scope*/ 50, /*->28029*/
/* 27979*/      OPC_CheckChild0Integer, 95|128,57/*7391*/, 
/* 27982*/      OPC_RecordChild1, // #0 = $src1
/* 27983*/      OPC_Scope, 31, /*->28016*/ // 2 children in Scope
/* 27985*/        OPC_MoveChild2,
/* 27986*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 27989*/        OPC_RecordMemRef,
/* 27990*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 27991*/        OPC_CheckFoldableChainNode,
/* 27992*/        OPC_RecordChild1, // #2 = $src2
/* 27993*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 27995*/        OPC_CheckPredicate, 9, // Predicate_load
/* 27997*/        OPC_MoveParent,
/* 27998*/        OPC_CheckPatternPredicate, 36, // (Subtarget->hasMMX()) && (Subtarget->hasSSSE3())
/* 28000*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 28003*/        OPC_EmitMergeInputChains1_1,
/* 28004*/        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] } 7391:{ *:[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)
/* 28016*/      /*Scope*/ 11, /*->28028*/
/* 28017*/        OPC_RecordChild2, // #1 = $src2
/* 28018*/        OPC_CheckPatternPredicate, 36, // (Subtarget->hasMMX()) && (Subtarget->hasSSSE3())
/* 28020*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSHUFBrr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7391:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_PSHUFBrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 28028*/      0, /*End of Scope*/
/* 28029*/    /*Scope*/ 47, /*->28077*/
/* 28030*/      OPC_CheckChild0Integer, 71|128,56/*7239*/, 
/* 28033*/      OPC_Scope, 30, /*->28065*/ // 2 children in Scope
/* 28035*/        OPC_MoveChild1,
/* 28036*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 28039*/        OPC_RecordMemRef,
/* 28040*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 28041*/        OPC_CheckFoldableChainNode,
/* 28042*/        OPC_RecordChild1, // #1 = $src
/* 28043*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 28045*/        OPC_CheckPredicate, 9, // Predicate_load
/* 28047*/        OPC_MoveParent,
/* 28048*/        OPC_CheckPatternPredicate, 35, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 28050*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 28053*/        OPC_EmitMergeInputChains1_0,
/* 28054*/        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] } 7239:{ *:[iPTR] }, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (MMX_CVTPS2PIirm:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src)
/* 28065*/      /*Scope*/ 10, /*->28076*/
/* 28066*/        OPC_RecordChild1, // #0 = $src
/* 28067*/        OPC_CheckPatternPredicate, 35, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 28069*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_CVTPS2PIirr), 0,
                      MVT::x86mmx, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7239:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src) - Complexity = 8
                  // Dst: (MMX_CVTPS2PIirr:{ *:[x86mmx] } VR128:{ *:[v4f32] }:$src)
/* 28076*/      0, /*End of Scope*/
/* 28077*/    /*Scope*/ 49, /*->28127*/
/* 28078*/      OPC_CheckChild0Integer, 68|128,56/*7236*/, 
/* 28081*/      OPC_Scope, 32, /*->28115*/ // 2 children in Scope
/* 28083*/        OPC_MoveChild1,
/* 28084*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 28087*/        OPC_RecordMemRef,
/* 28088*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 28089*/        OPC_CheckFoldableChainNode,
/* 28090*/        OPC_RecordChild1, // #1 = $src
/* 28091*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 28093*/        OPC_CheckPredicate, 9, // Predicate_load
/* 28095*/        OPC_CheckPredicate, 39, // Predicate_memop
/* 28097*/        OPC_MoveParent,
/* 28098*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasMMX()) && (Subtarget->hasSSE2())
/* 28100*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 28103*/        OPC_EmitMergeInputChains1_0,
/* 28104*/        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] } 7236:{ *:[iPTR] }, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                  // Dst: (MMX_CVTPD2PIirm:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src)
/* 28115*/      /*Scope*/ 10, /*->28126*/
/* 28116*/        OPC_RecordChild1, // #0 = $src
/* 28117*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasMMX()) && (Subtarget->hasSSE2())
/* 28119*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_CVTPD2PIirr), 0,
                      MVT::x86mmx, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7236:{ *:[iPTR] }, VR128:{ *:[v2f64] }:$src) - Complexity = 8
                  // Dst: (MMX_CVTPD2PIirr:{ *:[x86mmx] } VR128:{ *:[v2f64] }:$src)
/* 28126*/      0, /*End of Scope*/
/* 28127*/    /*Scope*/ 47, /*->28175*/
/* 28128*/      OPC_CheckChild0Integer, 75|128,56/*7243*/, 
/* 28131*/      OPC_Scope, 30, /*->28163*/ // 2 children in Scope
/* 28133*/        OPC_MoveChild1,
/* 28134*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 28137*/        OPC_RecordMemRef,
/* 28138*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 28139*/        OPC_CheckFoldableChainNode,
/* 28140*/        OPC_RecordChild1, // #1 = $src
/* 28141*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 28143*/        OPC_CheckPredicate, 9, // Predicate_load
/* 28145*/        OPC_MoveParent,
/* 28146*/        OPC_CheckPatternPredicate, 35, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 28148*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 28151*/        OPC_EmitMergeInputChains1_0,
/* 28152*/        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] } 7243:{ *:[iPTR] }, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (MMX_CVTTPS2PIirm:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src)
/* 28163*/      /*Scope*/ 10, /*->28174*/
/* 28164*/        OPC_RecordChild1, // #0 = $src
/* 28165*/        OPC_CheckPatternPredicate, 35, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 28167*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_CVTTPS2PIirr), 0,
                      MVT::x86mmx, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7243:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src) - Complexity = 8
                  // Dst: (MMX_CVTTPS2PIirr:{ *:[x86mmx] } VR128:{ *:[v4f32] }:$src)
/* 28174*/      0, /*End of Scope*/
/* 28175*/    /*Scope*/ 49, /*->28225*/
/* 28176*/      OPC_CheckChild0Integer, 74|128,56/*7242*/, 
/* 28179*/      OPC_Scope, 32, /*->28213*/ // 2 children in Scope
/* 28181*/        OPC_MoveChild1,
/* 28182*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 28185*/        OPC_RecordMemRef,
/* 28186*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 28187*/        OPC_CheckFoldableChainNode,
/* 28188*/        OPC_RecordChild1, // #1 = $src
/* 28189*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 28191*/        OPC_CheckPredicate, 9, // Predicate_load
/* 28193*/        OPC_CheckPredicate, 39, // Predicate_memop
/* 28195*/        OPC_MoveParent,
/* 28196*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasMMX()) && (Subtarget->hasSSE2())
/* 28198*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 28201*/        OPC_EmitMergeInputChains1_0,
/* 28202*/        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] } 7242:{ *:[iPTR] }, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                  // Dst: (MMX_CVTTPD2PIirm:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src)
/* 28213*/      /*Scope*/ 10, /*->28224*/
/* 28214*/        OPC_RecordChild1, // #0 = $src
/* 28215*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasMMX()) && (Subtarget->hasSSE2())
/* 28217*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_CVTTPD2PIirr), 0,
                      MVT::x86mmx, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7242:{ *:[iPTR] }, VR128:{ *:[v2f64] }:$src) - Complexity = 8
                  // Dst: (MMX_CVTTPD2PIirr:{ *:[x86mmx] } VR128:{ *:[v2f64] }:$src)
/* 28224*/      0, /*End of Scope*/
/* 28225*/    /*Scope*/ 50, /*->28276*/
/* 28226*/      OPC_CheckChild0Integer, 50|128,49/*6322*/, 
/* 28229*/      OPC_RecordChild1, // #0 = $src1
/* 28230*/      OPC_Scope, 31, /*->28263*/ // 2 children in Scope
/* 28232*/        OPC_MoveChild2,
/* 28233*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 28236*/        OPC_RecordMemRef,
/* 28237*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 28238*/        OPC_CheckFoldableChainNode,
/* 28239*/        OPC_RecordChild1, // #2 = $src2
/* 28240*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 28242*/        OPC_CheckPredicate, 9, // Predicate_load
/* 28244*/        OPC_MoveParent,
/* 28245*/        OPC_CheckPatternPredicate, 40, // (Subtarget->has3DNow())
/* 28247*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 28250*/        OPC_EmitMergeInputChains1_1,
/* 28251*/        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] } 6322:{ *:[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)
/* 28263*/      /*Scope*/ 11, /*->28275*/
/* 28264*/        OPC_RecordChild2, // #1 = $src2
/* 28265*/        OPC_CheckPatternPredicate, 40, // (Subtarget->has3DNow())
/* 28267*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PAVGUSBrr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6322:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (PAVGUSBrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 28275*/      0, /*End of Scope*/
/* 28276*/    /*Scope*/ 47, /*->28324*/
/* 28277*/      OPC_CheckChild0Integer, 51|128,49/*6323*/, 
/* 28280*/      OPC_Scope, 30, /*->28312*/ // 2 children in Scope
/* 28282*/        OPC_MoveChild1,
/* 28283*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 28286*/        OPC_RecordMemRef,
/* 28287*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 28288*/        OPC_CheckFoldableChainNode,
/* 28289*/        OPC_RecordChild1, // #1 = $src
/* 28290*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 28292*/        OPC_CheckPredicate, 9, // Predicate_load
/* 28294*/        OPC_MoveParent,
/* 28295*/        OPC_CheckPatternPredicate, 40, // (Subtarget->has3DNow())
/* 28297*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 28300*/        OPC_EmitMergeInputChains1_0,
/* 28301*/        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] } 6323:{ *:[iPTR] }, (ld:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (PF2IDrm:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src)
/* 28312*/      /*Scope*/ 10, /*->28323*/
/* 28313*/        OPC_RecordChild1, // #0 = $src
/* 28314*/        OPC_CheckPatternPredicate, 40, // (Subtarget->has3DNow())
/* 28316*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PF2IDrr), 0,
                      MVT::x86mmx, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6323:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src) - Complexity = 8
                  // Dst: (PF2IDrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src)
/* 28323*/      0, /*End of Scope*/
/* 28324*/    /*Scope*/ 50, /*->28375*/
/* 28325*/      OPC_CheckChild0Integer, 52|128,49/*6324*/, 
/* 28328*/      OPC_RecordChild1, // #0 = $src1
/* 28329*/      OPC_Scope, 31, /*->28362*/ // 2 children in Scope
/* 28331*/        OPC_MoveChild2,
/* 28332*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 28335*/        OPC_RecordMemRef,
/* 28336*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 28337*/        OPC_CheckFoldableChainNode,
/* 28338*/        OPC_RecordChild1, // #2 = $src2
/* 28339*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 28341*/        OPC_CheckPredicate, 9, // Predicate_load
/* 28343*/        OPC_MoveParent,
/* 28344*/        OPC_CheckPatternPredicate, 40, // (Subtarget->has3DNow())
/* 28346*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 28349*/        OPC_EmitMergeInputChains1_1,
/* 28350*/        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] } 6324:{ *:[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)
/* 28362*/      /*Scope*/ 11, /*->28374*/
/* 28363*/        OPC_RecordChild2, // #1 = $src2
/* 28364*/        OPC_CheckPatternPredicate, 40, // (Subtarget->has3DNow())
/* 28366*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PFACCrr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6324:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (PFACCrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 28374*/      0, /*End of Scope*/
/* 28375*/    /*Scope*/ 50, /*->28426*/
/* 28376*/      OPC_CheckChild0Integer, 53|128,49/*6325*/, 
/* 28379*/      OPC_RecordChild1, // #0 = $src1
/* 28380*/      OPC_Scope, 31, /*->28413*/ // 2 children in Scope
/* 28382*/        OPC_MoveChild2,
/* 28383*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 28386*/        OPC_RecordMemRef,
/* 28387*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 28388*/        OPC_CheckFoldableChainNode,
/* 28389*/        OPC_RecordChild1, // #2 = $src2
/* 28390*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 28392*/        OPC_CheckPredicate, 9, // Predicate_load
/* 28394*/        OPC_MoveParent,
/* 28395*/        OPC_CheckPatternPredicate, 40, // (Subtarget->has3DNow())
/* 28397*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 28400*/        OPC_EmitMergeInputChains1_1,
/* 28401*/        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] } 6325:{ *:[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)
/* 28413*/      /*Scope*/ 11, /*->28425*/
/* 28414*/        OPC_RecordChild2, // #1 = $src2
/* 28415*/        OPC_CheckPatternPredicate, 40, // (Subtarget->has3DNow())
/* 28417*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PFADDrr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6325:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (PFADDrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 28425*/      0, /*End of Scope*/
/* 28426*/    /*Scope*/ 50, /*->28477*/
/* 28427*/      OPC_CheckChild0Integer, 54|128,49/*6326*/, 
/* 28430*/      OPC_RecordChild1, // #0 = $src1
/* 28431*/      OPC_Scope, 31, /*->28464*/ // 2 children in Scope
/* 28433*/        OPC_MoveChild2,
/* 28434*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 28437*/        OPC_RecordMemRef,
/* 28438*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 28439*/        OPC_CheckFoldableChainNode,
/* 28440*/        OPC_RecordChild1, // #2 = $src2
/* 28441*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 28443*/        OPC_CheckPredicate, 9, // Predicate_load
/* 28445*/        OPC_MoveParent,
/* 28446*/        OPC_CheckPatternPredicate, 40, // (Subtarget->has3DNow())
/* 28448*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 28451*/        OPC_EmitMergeInputChains1_1,
/* 28452*/        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] } 6326:{ *:[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)
/* 28464*/      /*Scope*/ 11, /*->28476*/
/* 28465*/        OPC_RecordChild2, // #1 = $src2
/* 28466*/        OPC_CheckPatternPredicate, 40, // (Subtarget->has3DNow())
/* 28468*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PFCMPEQrr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6326:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (PFCMPEQrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 28476*/      0, /*End of Scope*/
/* 28477*/    /*Scope*/ 50, /*->28528*/
/* 28478*/      OPC_CheckChild0Integer, 55|128,49/*6327*/, 
/* 28481*/      OPC_RecordChild1, // #0 = $src1
/* 28482*/      OPC_Scope, 31, /*->28515*/ // 2 children in Scope
/* 28484*/        OPC_MoveChild2,
/* 28485*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 28488*/        OPC_RecordMemRef,
/* 28489*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 28490*/        OPC_CheckFoldableChainNode,
/* 28491*/        OPC_RecordChild1, // #2 = $src2
/* 28492*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 28494*/        OPC_CheckPredicate, 9, // Predicate_load
/* 28496*/        OPC_MoveParent,
/* 28497*/        OPC_CheckPatternPredicate, 40, // (Subtarget->has3DNow())
/* 28499*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 28502*/        OPC_EmitMergeInputChains1_1,
/* 28503*/        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] } 6327:{ *:[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)
/* 28515*/      /*Scope*/ 11, /*->28527*/
/* 28516*/        OPC_RecordChild2, // #1 = $src2
/* 28517*/        OPC_CheckPatternPredicate, 40, // (Subtarget->has3DNow())
/* 28519*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PFCMPGErr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6327:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (PFCMPGErr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 28527*/      0, /*End of Scope*/
/* 28528*/    /*Scope*/ 50, /*->28579*/
/* 28529*/      OPC_CheckChild0Integer, 56|128,49/*6328*/, 
/* 28532*/      OPC_RecordChild1, // #0 = $src1
/* 28533*/      OPC_Scope, 31, /*->28566*/ // 2 children in Scope
/* 28535*/        OPC_MoveChild2,
/* 28536*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 28539*/        OPC_RecordMemRef,
/* 28540*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 28541*/        OPC_CheckFoldableChainNode,
/* 28542*/        OPC_RecordChild1, // #2 = $src2
/* 28543*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 28545*/        OPC_CheckPredicate, 9, // Predicate_load
/* 28547*/        OPC_MoveParent,
/* 28548*/        OPC_CheckPatternPredicate, 40, // (Subtarget->has3DNow())
/* 28550*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 28553*/        OPC_EmitMergeInputChains1_1,
/* 28554*/        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] } 6328:{ *:[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)
/* 28566*/      /*Scope*/ 11, /*->28578*/
/* 28567*/        OPC_RecordChild2, // #1 = $src2
/* 28568*/        OPC_CheckPatternPredicate, 40, // (Subtarget->has3DNow())
/* 28570*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PFCMPGTrr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6328:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (PFCMPGTrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 28578*/      0, /*End of Scope*/
/* 28579*/    /*Scope*/ 50, /*->28630*/
/* 28580*/      OPC_CheckChild0Integer, 57|128,49/*6329*/, 
/* 28583*/      OPC_RecordChild1, // #0 = $src1
/* 28584*/      OPC_Scope, 31, /*->28617*/ // 2 children in Scope
/* 28586*/        OPC_MoveChild2,
/* 28587*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 28590*/        OPC_RecordMemRef,
/* 28591*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 28592*/        OPC_CheckFoldableChainNode,
/* 28593*/        OPC_RecordChild1, // #2 = $src2
/* 28594*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 28596*/        OPC_CheckPredicate, 9, // Predicate_load
/* 28598*/        OPC_MoveParent,
/* 28599*/        OPC_CheckPatternPredicate, 40, // (Subtarget->has3DNow())
/* 28601*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 28604*/        OPC_EmitMergeInputChains1_1,
/* 28605*/        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] } 6329:{ *:[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)
/* 28617*/      /*Scope*/ 11, /*->28629*/
/* 28618*/        OPC_RecordChild2, // #1 = $src2
/* 28619*/        OPC_CheckPatternPredicate, 40, // (Subtarget->has3DNow())
/* 28621*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PFMAXrr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6329:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (PFMAXrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 28629*/      0, /*End of Scope*/
/* 28630*/    /*Scope*/ 50, /*->28681*/
/* 28631*/      OPC_CheckChild0Integer, 58|128,49/*6330*/, 
/* 28634*/      OPC_RecordChild1, // #0 = $src1
/* 28635*/      OPC_Scope, 31, /*->28668*/ // 2 children in Scope
/* 28637*/        OPC_MoveChild2,
/* 28638*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 28641*/        OPC_RecordMemRef,
/* 28642*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 28643*/        OPC_CheckFoldableChainNode,
/* 28644*/        OPC_RecordChild1, // #2 = $src2
/* 28645*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 28647*/        OPC_CheckPredicate, 9, // Predicate_load
/* 28649*/        OPC_MoveParent,
/* 28650*/        OPC_CheckPatternPredicate, 40, // (Subtarget->has3DNow())
/* 28652*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 28655*/        OPC_EmitMergeInputChains1_1,
/* 28656*/        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] } 6330:{ *:[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)
/* 28668*/      /*Scope*/ 11, /*->28680*/
/* 28669*/        OPC_RecordChild2, // #1 = $src2
/* 28670*/        OPC_CheckPatternPredicate, 40, // (Subtarget->has3DNow())
/* 28672*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PFMINrr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6330:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (PFMINrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 28680*/      0, /*End of Scope*/
/* 28681*/    /*Scope*/ 50, /*->28732*/
/* 28682*/      OPC_CheckChild0Integer, 59|128,49/*6331*/, 
/* 28685*/      OPC_RecordChild1, // #0 = $src1
/* 28686*/      OPC_Scope, 31, /*->28719*/ // 2 children in Scope
/* 28688*/        OPC_MoveChild2,
/* 28689*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 28692*/        OPC_RecordMemRef,
/* 28693*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 28694*/        OPC_CheckFoldableChainNode,
/* 28695*/        OPC_RecordChild1, // #2 = $src2
/* 28696*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 28698*/        OPC_CheckPredicate, 9, // Predicate_load
/* 28700*/        OPC_MoveParent,
/* 28701*/        OPC_CheckPatternPredicate, 40, // (Subtarget->has3DNow())
/* 28703*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 28706*/        OPC_EmitMergeInputChains1_1,
/* 28707*/        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] } 6331:{ *:[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)
/* 28719*/      /*Scope*/ 11, /*->28731*/
/* 28720*/        OPC_RecordChild2, // #1 = $src2
/* 28721*/        OPC_CheckPatternPredicate, 40, // (Subtarget->has3DNow())
/* 28723*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PFMULrr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6331:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (PFMULrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 28731*/      0, /*End of Scope*/
/* 28732*/    /*Scope*/ 47, /*->28780*/
/* 28733*/      OPC_CheckChild0Integer, 60|128,49/*6332*/, 
/* 28736*/      OPC_Scope, 30, /*->28768*/ // 2 children in Scope
/* 28738*/        OPC_MoveChild1,
/* 28739*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 28742*/        OPC_RecordMemRef,
/* 28743*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 28744*/        OPC_CheckFoldableChainNode,
/* 28745*/        OPC_RecordChild1, // #1 = $src
/* 28746*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 28748*/        OPC_CheckPredicate, 9, // Predicate_load
/* 28750*/        OPC_MoveParent,
/* 28751*/        OPC_CheckPatternPredicate, 40, // (Subtarget->has3DNow())
/* 28753*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 28756*/        OPC_EmitMergeInputChains1_0,
/* 28757*/        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] } 6332:{ *:[iPTR] }, (ld:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (PFRCPrm:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src)
/* 28768*/      /*Scope*/ 10, /*->28779*/
/* 28769*/        OPC_RecordChild1, // #0 = $src
/* 28770*/        OPC_CheckPatternPredicate, 40, // (Subtarget->has3DNow())
/* 28772*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PFRCPrr), 0,
                      MVT::x86mmx, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6332:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src) - Complexity = 8
                  // Dst: (PFRCPrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src)
/* 28779*/      0, /*End of Scope*/
/* 28780*/    /*Scope*/ 50, /*->28831*/
/* 28781*/      OPC_CheckChild0Integer, 61|128,49/*6333*/, 
/* 28784*/      OPC_RecordChild1, // #0 = $src1
/* 28785*/      OPC_Scope, 31, /*->28818*/ // 2 children in Scope
/* 28787*/        OPC_MoveChild2,
/* 28788*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 28791*/        OPC_RecordMemRef,
/* 28792*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 28793*/        OPC_CheckFoldableChainNode,
/* 28794*/        OPC_RecordChild1, // #2 = $src2
/* 28795*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 28797*/        OPC_CheckPredicate, 9, // Predicate_load
/* 28799*/        OPC_MoveParent,
/* 28800*/        OPC_CheckPatternPredicate, 40, // (Subtarget->has3DNow())
/* 28802*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 28805*/        OPC_EmitMergeInputChains1_1,
/* 28806*/        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] } 6333:{ *:[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)
/* 28818*/      /*Scope*/ 11, /*->28830*/
/* 28819*/        OPC_RecordChild2, // #1 = $src2
/* 28820*/        OPC_CheckPatternPredicate, 40, // (Subtarget->has3DNow())
/* 28822*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PFRCPIT1rr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6333:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (PFRCPIT1rr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 28830*/      0, /*End of Scope*/
/* 28831*/    /*Scope*/ 50, /*->28882*/
/* 28832*/      OPC_CheckChild0Integer, 62|128,49/*6334*/, 
/* 28835*/      OPC_RecordChild1, // #0 = $src1
/* 28836*/      OPC_Scope, 31, /*->28869*/ // 2 children in Scope
/* 28838*/        OPC_MoveChild2,
/* 28839*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 28842*/        OPC_RecordMemRef,
/* 28843*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 28844*/        OPC_CheckFoldableChainNode,
/* 28845*/        OPC_RecordChild1, // #2 = $src2
/* 28846*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 28848*/        OPC_CheckPredicate, 9, // Predicate_load
/* 28850*/        OPC_MoveParent,
/* 28851*/        OPC_CheckPatternPredicate, 40, // (Subtarget->has3DNow())
/* 28853*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 28856*/        OPC_EmitMergeInputChains1_1,
/* 28857*/        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] } 6334:{ *:[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)
/* 28869*/      /*Scope*/ 11, /*->28881*/
/* 28870*/        OPC_RecordChild2, // #1 = $src2
/* 28871*/        OPC_CheckPatternPredicate, 40, // (Subtarget->has3DNow())
/* 28873*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PFRCPIT2rr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6334:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (PFRCPIT2rr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 28881*/      0, /*End of Scope*/
/* 28882*/    /*Scope*/ 50, /*->28933*/
/* 28883*/      OPC_CheckChild0Integer, 63|128,49/*6335*/, 
/* 28886*/      OPC_RecordChild1, // #0 = $src1
/* 28887*/      OPC_Scope, 31, /*->28920*/ // 2 children in Scope
/* 28889*/        OPC_MoveChild2,
/* 28890*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 28893*/        OPC_RecordMemRef,
/* 28894*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 28895*/        OPC_CheckFoldableChainNode,
/* 28896*/        OPC_RecordChild1, // #2 = $src2
/* 28897*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 28899*/        OPC_CheckPredicate, 9, // Predicate_load
/* 28901*/        OPC_MoveParent,
/* 28902*/        OPC_CheckPatternPredicate, 40, // (Subtarget->has3DNow())
/* 28904*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 28907*/        OPC_EmitMergeInputChains1_1,
/* 28908*/        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] } 6335:{ *:[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)
/* 28920*/      /*Scope*/ 11, /*->28932*/
/* 28921*/        OPC_RecordChild2, // #1 = $src2
/* 28922*/        OPC_CheckPatternPredicate, 40, // (Subtarget->has3DNow())
/* 28924*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PFRSQIT1rr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6335:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (PFRSQIT1rr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 28932*/      0, /*End of Scope*/
/* 28933*/    /*Scope*/ 47, /*->28981*/
/* 28934*/      OPC_CheckChild0Integer, 64|128,49/*6336*/, 
/* 28937*/      OPC_Scope, 30, /*->28969*/ // 2 children in Scope
/* 28939*/        OPC_MoveChild1,
/* 28940*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 28943*/        OPC_RecordMemRef,
/* 28944*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 28945*/        OPC_CheckFoldableChainNode,
/* 28946*/        OPC_RecordChild1, // #1 = $src
/* 28947*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 28949*/        OPC_CheckPredicate, 9, // Predicate_load
/* 28951*/        OPC_MoveParent,
/* 28952*/        OPC_CheckPatternPredicate, 40, // (Subtarget->has3DNow())
/* 28954*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 28957*/        OPC_EmitMergeInputChains1_0,
/* 28958*/        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] } 6336:{ *:[iPTR] }, (ld:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (PFRSQRTrm:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src)
/* 28969*/      /*Scope*/ 10, /*->28980*/
/* 28970*/        OPC_RecordChild1, // #0 = $src
/* 28971*/        OPC_CheckPatternPredicate, 40, // (Subtarget->has3DNow())
/* 28973*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PFRSQRTrr), 0,
                      MVT::x86mmx, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6336:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src) - Complexity = 8
                  // Dst: (PFRSQRTrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src)
/* 28980*/      0, /*End of Scope*/
/* 28981*/    /*Scope*/ 50, /*->29032*/
/* 28982*/      OPC_CheckChild0Integer, 65|128,49/*6337*/, 
/* 28985*/      OPC_RecordChild1, // #0 = $src1
/* 28986*/      OPC_Scope, 31, /*->29019*/ // 2 children in Scope
/* 28988*/        OPC_MoveChild2,
/* 28989*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 28992*/        OPC_RecordMemRef,
/* 28993*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 28994*/        OPC_CheckFoldableChainNode,
/* 28995*/        OPC_RecordChild1, // #2 = $src2
/* 28996*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 28998*/        OPC_CheckPredicate, 9, // Predicate_load
/* 29000*/        OPC_MoveParent,
/* 29001*/        OPC_CheckPatternPredicate, 40, // (Subtarget->has3DNow())
/* 29003*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 29006*/        OPC_EmitMergeInputChains1_1,
/* 29007*/        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] } 6337:{ *:[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)
/* 29019*/      /*Scope*/ 11, /*->29031*/
/* 29020*/        OPC_RecordChild2, // #1 = $src2
/* 29021*/        OPC_CheckPatternPredicate, 40, // (Subtarget->has3DNow())
/* 29023*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PFSUBrr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6337:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (PFSUBrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 29031*/      0, /*End of Scope*/
/* 29032*/    /*Scope*/ 50, /*->29083*/
/* 29033*/      OPC_CheckChild0Integer, 66|128,49/*6338*/, 
/* 29036*/      OPC_RecordChild1, // #0 = $src1
/* 29037*/      OPC_Scope, 31, /*->29070*/ // 2 children in Scope
/* 29039*/        OPC_MoveChild2,
/* 29040*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 29043*/        OPC_RecordMemRef,
/* 29044*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 29045*/        OPC_CheckFoldableChainNode,
/* 29046*/        OPC_RecordChild1, // #2 = $src2
/* 29047*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 29049*/        OPC_CheckPredicate, 9, // Predicate_load
/* 29051*/        OPC_MoveParent,
/* 29052*/        OPC_CheckPatternPredicate, 40, // (Subtarget->has3DNow())
/* 29054*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 29057*/        OPC_EmitMergeInputChains1_1,
/* 29058*/        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] } 6338:{ *:[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)
/* 29070*/      /*Scope*/ 11, /*->29082*/
/* 29071*/        OPC_RecordChild2, // #1 = $src2
/* 29072*/        OPC_CheckPatternPredicate, 40, // (Subtarget->has3DNow())
/* 29074*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PFSUBRrr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6338:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (PFSUBRrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 29082*/      0, /*End of Scope*/
/* 29083*/    /*Scope*/ 47, /*->29131*/
/* 29084*/      OPC_CheckChild0Integer, 67|128,49/*6339*/, 
/* 29087*/      OPC_Scope, 30, /*->29119*/ // 2 children in Scope
/* 29089*/        OPC_MoveChild1,
/* 29090*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 29093*/        OPC_RecordMemRef,
/* 29094*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 29095*/        OPC_CheckFoldableChainNode,
/* 29096*/        OPC_RecordChild1, // #1 = $src
/* 29097*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 29099*/        OPC_CheckPredicate, 9, // Predicate_load
/* 29101*/        OPC_MoveParent,
/* 29102*/        OPC_CheckPatternPredicate, 40, // (Subtarget->has3DNow())
/* 29104*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 29107*/        OPC_EmitMergeInputChains1_0,
/* 29108*/        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] } 6339:{ *:[iPTR] }, (ld:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (PI2FDrm:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src)
/* 29119*/      /*Scope*/ 10, /*->29130*/
/* 29120*/        OPC_RecordChild1, // #0 = $src
/* 29121*/        OPC_CheckPatternPredicate, 40, // (Subtarget->has3DNow())
/* 29123*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PI2FDrr), 0,
                      MVT::x86mmx, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6339:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src) - Complexity = 8
                  // Dst: (PI2FDrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src)
/* 29130*/      0, /*End of Scope*/
/* 29131*/    /*Scope*/ 50, /*->29182*/
/* 29132*/      OPC_CheckChild0Integer, 68|128,49/*6340*/, 
/* 29135*/      OPC_RecordChild1, // #0 = $src1
/* 29136*/      OPC_Scope, 31, /*->29169*/ // 2 children in Scope
/* 29138*/        OPC_MoveChild2,
/* 29139*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 29142*/        OPC_RecordMemRef,
/* 29143*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 29144*/        OPC_CheckFoldableChainNode,
/* 29145*/        OPC_RecordChild1, // #2 = $src2
/* 29146*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 29148*/        OPC_CheckPredicate, 9, // Predicate_load
/* 29150*/        OPC_MoveParent,
/* 29151*/        OPC_CheckPatternPredicate, 40, // (Subtarget->has3DNow())
/* 29153*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 29156*/        OPC_EmitMergeInputChains1_1,
/* 29157*/        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] } 6340:{ *:[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)
/* 29169*/      /*Scope*/ 11, /*->29181*/
/* 29170*/        OPC_RecordChild2, // #1 = $src2
/* 29171*/        OPC_CheckPatternPredicate, 40, // (Subtarget->has3DNow())
/* 29173*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PMULHRWrr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6340:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (PMULHRWrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 29181*/      0, /*End of Scope*/
/* 29182*/    /*Scope*/ 47, /*->29230*/
/* 29183*/      OPC_CheckChild0Integer, 69|128,49/*6341*/, 
/* 29186*/      OPC_Scope, 30, /*->29218*/ // 2 children in Scope
/* 29188*/        OPC_MoveChild1,
/* 29189*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 29192*/        OPC_RecordMemRef,
/* 29193*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 29194*/        OPC_CheckFoldableChainNode,
/* 29195*/        OPC_RecordChild1, // #1 = $src
/* 29196*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 29198*/        OPC_CheckPredicate, 9, // Predicate_load
/* 29200*/        OPC_MoveParent,
/* 29201*/        OPC_CheckPatternPredicate, 40, // (Subtarget->has3DNow())
/* 29203*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 29206*/        OPC_EmitMergeInputChains1_0,
/* 29207*/        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] } 6341:{ *:[iPTR] }, (ld:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (PF2IWrm:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src)
/* 29218*/      /*Scope*/ 10, /*->29229*/
/* 29219*/        OPC_RecordChild1, // #0 = $src
/* 29220*/        OPC_CheckPatternPredicate, 40, // (Subtarget->has3DNow())
/* 29222*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PF2IWrr), 0,
                      MVT::x86mmx, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6341:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src) - Complexity = 8
                  // Dst: (PF2IWrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src)
/* 29229*/      0, /*End of Scope*/
/* 29230*/    /*Scope*/ 47, /*->29278*/
/* 29231*/      OPC_CheckChild0Integer, 72|128,49/*6344*/, 
/* 29234*/      OPC_Scope, 30, /*->29266*/ // 2 children in Scope
/* 29236*/        OPC_MoveChild1,
/* 29237*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 29240*/        OPC_RecordMemRef,
/* 29241*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 29242*/        OPC_CheckFoldableChainNode,
/* 29243*/        OPC_RecordChild1, // #1 = $src
/* 29244*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 29246*/        OPC_CheckPredicate, 9, // Predicate_load
/* 29248*/        OPC_MoveParent,
/* 29249*/        OPC_CheckPatternPredicate, 40, // (Subtarget->has3DNow())
/* 29251*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 29254*/        OPC_EmitMergeInputChains1_0,
/* 29255*/        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] } 6344:{ *:[iPTR] }, (ld:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (PI2FWrm:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src)
/* 29266*/      /*Scope*/ 10, /*->29277*/
/* 29267*/        OPC_RecordChild1, // #0 = $src
/* 29268*/        OPC_CheckPatternPredicate, 40, // (Subtarget->has3DNow())
/* 29270*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PI2FWrr), 0,
                      MVT::x86mmx, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6344:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src) - Complexity = 8
                  // Dst: (PI2FWrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src)
/* 29277*/      0, /*End of Scope*/
/* 29278*/    /*Scope*/ 50, /*->29329*/
/* 29279*/      OPC_CheckChild0Integer, 70|128,49/*6342*/, 
/* 29282*/      OPC_RecordChild1, // #0 = $src1
/* 29283*/      OPC_Scope, 31, /*->29316*/ // 2 children in Scope
/* 29285*/        OPC_MoveChild2,
/* 29286*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 29289*/        OPC_RecordMemRef,
/* 29290*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 29291*/        OPC_CheckFoldableChainNode,
/* 29292*/        OPC_RecordChild1, // #2 = $src2
/* 29293*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 29295*/        OPC_CheckPredicate, 9, // Predicate_load
/* 29297*/        OPC_MoveParent,
/* 29298*/        OPC_CheckPatternPredicate, 40, // (Subtarget->has3DNow())
/* 29300*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 29303*/        OPC_EmitMergeInputChains1_1,
/* 29304*/        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] } 6342:{ *:[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)
/* 29316*/      /*Scope*/ 11, /*->29328*/
/* 29317*/        OPC_RecordChild2, // #1 = $src2
/* 29318*/        OPC_CheckPatternPredicate, 40, // (Subtarget->has3DNow())
/* 29320*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PFNACCrr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6342:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (PFNACCrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 29328*/      0, /*End of Scope*/
/* 29329*/    /*Scope*/ 50, /*->29380*/
/* 29330*/      OPC_CheckChild0Integer, 71|128,49/*6343*/, 
/* 29333*/      OPC_RecordChild1, // #0 = $src1
/* 29334*/      OPC_Scope, 31, /*->29367*/ // 2 children in Scope
/* 29336*/        OPC_MoveChild2,
/* 29337*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 29340*/        OPC_RecordMemRef,
/* 29341*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 29342*/        OPC_CheckFoldableChainNode,
/* 29343*/        OPC_RecordChild1, // #2 = $src2
/* 29344*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 29346*/        OPC_CheckPredicate, 9, // Predicate_load
/* 29348*/        OPC_MoveParent,
/* 29349*/        OPC_CheckPatternPredicate, 40, // (Subtarget->has3DNow())
/* 29351*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 29354*/        OPC_EmitMergeInputChains1_1,
/* 29355*/        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] } 6343:{ *:[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)
/* 29367*/      /*Scope*/ 11, /*->29379*/
/* 29368*/        OPC_RecordChild2, // #1 = $src2
/* 29369*/        OPC_CheckPatternPredicate, 40, // (Subtarget->has3DNow())
/* 29371*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PFPNACCrr), 0,
                      MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6343:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (PFPNACCrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 29379*/      0, /*End of Scope*/
/* 29380*/    /*Scope*/ 47, /*->29428*/
/* 29381*/      OPC_CheckChild0Integer, 73|128,49/*6345*/, 
/* 29384*/      OPC_Scope, 30, /*->29416*/ // 2 children in Scope
/* 29386*/        OPC_MoveChild1,
/* 29387*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 29390*/        OPC_RecordMemRef,
/* 29391*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 29392*/        OPC_CheckFoldableChainNode,
/* 29393*/        OPC_RecordChild1, // #1 = $src
/* 29394*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 29396*/        OPC_CheckPredicate, 9, // Predicate_load
/* 29398*/        OPC_MoveParent,
/* 29399*/        OPC_CheckPatternPredicate, 40, // (Subtarget->has3DNow())
/* 29401*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 29404*/        OPC_EmitMergeInputChains1_0,
/* 29405*/        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] } 6345:{ *:[iPTR] }, (ld:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (PSWAPDrm:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src)
/* 29416*/      /*Scope*/ 10, /*->29427*/
/* 29417*/        OPC_RecordChild1, // #0 = $src
/* 29418*/        OPC_CheckPatternPredicate, 40, // (Subtarget->has3DNow())
/* 29420*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PSWAPDrr), 0,
                      MVT::x86mmx, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 6345:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src) - Complexity = 8
                  // Dst: (PSWAPDrr:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src)
/* 29427*/      0, /*End of Scope*/
/* 29428*/    /*Scope*/ 20, /*->29449*/
/* 29429*/      OPC_CheckChild0Integer, 5|128,56/*7173*/, 
/* 29432*/      OPC_RecordChild1, // #0 = $src1
/* 29433*/      OPC_RecordChild2, // #1 = $src2
/* 29434*/      OPC_MoveChild2,
/* 29435*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 29438*/      OPC_MoveParent,
/* 29439*/      OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 29441*/      OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSRLWri), 0,
                    MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7173:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 11
                // Dst: (MMX_PSRLWri:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, (timm:{ *:[i32] }):$src2)
/* 29449*/    /*Scope*/ 20, /*->29470*/
/* 29450*/      OPC_CheckChild0Integer, 3|128,56/*7171*/, 
/* 29453*/      OPC_RecordChild1, // #0 = $src1
/* 29454*/      OPC_RecordChild2, // #1 = $src2
/* 29455*/      OPC_MoveChild2,
/* 29456*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 29459*/      OPC_MoveParent,
/* 29460*/      OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 29462*/      OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSRLDri), 0,
                    MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7171:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 11
                // Dst: (MMX_PSRLDri:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, (timm:{ *:[i32] }):$src2)
/* 29470*/    /*Scope*/ 20, /*->29491*/
/* 29471*/      OPC_CheckChild0Integer, 4|128,56/*7172*/, 
/* 29474*/      OPC_RecordChild1, // #0 = $src1
/* 29475*/      OPC_RecordChild2, // #1 = $src2
/* 29476*/      OPC_MoveChild2,
/* 29477*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 29480*/      OPC_MoveParent,
/* 29481*/      OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 29483*/      OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSRLQri), 0,
                    MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7172:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 11
                // Dst: (MMX_PSRLQri:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, (timm:{ *:[i32] }):$src2)
/* 29491*/    /*Scope*/ 20, /*->29512*/
/* 29492*/      OPC_CheckChild0Integer, 123|128,55/*7163*/, 
/* 29495*/      OPC_RecordChild1, // #0 = $src1
/* 29496*/      OPC_RecordChild2, // #1 = $src2
/* 29497*/      OPC_MoveChild2,
/* 29498*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 29501*/      OPC_MoveParent,
/* 29502*/      OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 29504*/      OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSLLWri), 0,
                    MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7163:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 11
                // Dst: (MMX_PSLLWri:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, (timm:{ *:[i32] }):$src2)
/* 29512*/    /*Scope*/ 20, /*->29533*/
/* 29513*/      OPC_CheckChild0Integer, 121|128,55/*7161*/, 
/* 29516*/      OPC_RecordChild1, // #0 = $src1
/* 29517*/      OPC_RecordChild2, // #1 = $src2
/* 29518*/      OPC_MoveChild2,
/* 29519*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 29522*/      OPC_MoveParent,
/* 29523*/      OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 29525*/      OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSLLDri), 0,
                    MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7161:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 11
                // Dst: (MMX_PSLLDri:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, (timm:{ *:[i32] }):$src2)
/* 29533*/    /*Scope*/ 20, /*->29554*/
/* 29534*/      OPC_CheckChild0Integer, 122|128,55/*7162*/, 
/* 29537*/      OPC_RecordChild1, // #0 = $src1
/* 29538*/      OPC_RecordChild2, // #1 = $src2
/* 29539*/      OPC_MoveChild2,
/* 29540*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 29543*/      OPC_MoveParent,
/* 29544*/      OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 29546*/      OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSLLQri), 0,
                    MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7162:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 11
                // Dst: (MMX_PSLLQri:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, (timm:{ *:[i32] }):$src2)
/* 29554*/    /*Scope*/ 20, /*->29575*/
/* 29555*/      OPC_CheckChild0Integer, 127|128,55/*7167*/, 
/* 29558*/      OPC_RecordChild1, // #0 = $src1
/* 29559*/      OPC_RecordChild2, // #1 = $src2
/* 29560*/      OPC_MoveChild2,
/* 29561*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 29564*/      OPC_MoveParent,
/* 29565*/      OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 29567*/      OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSRAWri), 0,
                    MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7167:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 11
                // Dst: (MMX_PSRAWri:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, (timm:{ *:[i32] }):$src2)
/* 29575*/    /*Scope*/ 20, /*->29596*/
/* 29576*/      OPC_CheckChild0Integer, 126|128,55/*7166*/, 
/* 29579*/      OPC_RecordChild1, // #0 = $src1
/* 29580*/      OPC_RecordChild2, // #1 = $src2
/* 29581*/      OPC_MoveChild2,
/* 29582*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 29585*/      OPC_MoveParent,
/* 29586*/      OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 29588*/      OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PSRADri), 0,
                    MVT::x86mmx, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[x86mmx] } 7166:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 11
                // Dst: (MMX_PSRADri:{ *:[x86mmx] } VR64:{ *:[x86mmx] }:$src1, (timm:{ *:[i32] }):$src2)
/* 29596*/    /*Scope*/ 20, /*->29617*/
/* 29597*/      OPC_CheckChild0Integer, 104|128,55/*7144*/, 
/* 29600*/      OPC_RecordChild1, // #0 = $src1
/* 29601*/      OPC_RecordChild2, // #1 = $src2
/* 29602*/      OPC_MoveChild2,
/* 29603*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 29606*/      OPC_MoveParent,
/* 29607*/      OPC_CheckPatternPredicate, 35, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 29609*/      OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PEXTRWrr), 0,
                    MVT::i32, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[i32] } 7144:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 11
                // Dst: (MMX_PEXTRWrr:{ *:[i32] } VR64:{ *:[x86mmx] }:$src1, (timm:{ *:[i32] }):$src2)
/* 29617*/    /*Scope*/ 13, /*->29631*/
/* 29618*/      OPC_CheckChild0Integer, 111|128,55/*7151*/, 
/* 29621*/      OPC_RecordChild1, // #0 = $src
/* 29622*/      OPC_CheckPatternPredicate, 35, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 29624*/      OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_PMOVMSKBrr), 0,
                    MVT::i32, 1/*#Ops*/, 0, 
                // Src: (intrinsic_wo_chain:{ *:[i32] } 7151:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src) - Complexity = 8
                // Dst: (MMX_PMOVMSKBrr:{ *:[i32] } VR64:{ *:[x86mmx] }:$src)
/* 29631*/    /*Scope*/ 57|128,1/*185*/, /*->29818*/
/* 29633*/      OPC_CheckChild0Integer, 43|128,57/*7339*/, 
/* 29636*/      OPC_Scope, 71, /*->29709*/ // 3 children in Scope
/* 29638*/        OPC_RecordChild1, // #0 = $src1
/* 29639*/        OPC_MoveChild2,
/* 29640*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 29643*/        OPC_RecordMemRef,
/* 29644*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 29645*/        OPC_CheckFoldableChainNode,
/* 29646*/        OPC_RecordChild1, // #2 = $src2
/* 29647*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 29649*/        OPC_CheckPredicate, 9, // Predicate_load
/* 29651*/        OPC_Scope, 26, /*->29679*/ // 2 children in Scope
/* 29653*/          OPC_MoveParent,
/* 29654*/          OPC_RecordChild3, // #3 = $src3
/* 29655*/          OPC_MoveChild3,
/* 29656*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 29659*/          OPC_MoveParent,
/* 29660*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/* 29662*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 29665*/          OPC_EmitMergeInputChains1_1,
/* 29666*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMPSADBWrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 7339:{ *:[iPTR] }, VR128:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 33
                    // Dst: (VMPSADBWrmi:{ *:[v8i16] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/* 29679*/        /*Scope*/ 28, /*->29708*/
/* 29680*/          OPC_CheckPredicate, 39, // Predicate_memop
/* 29682*/          OPC_MoveParent,
/* 29683*/          OPC_RecordChild3, // #3 = $src3
/* 29684*/          OPC_MoveChild3,
/* 29685*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 29688*/          OPC_MoveParent,
/* 29689*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/* 29691*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 29694*/          OPC_EmitMergeInputChains1_1,
/* 29695*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MPSADBWrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 7339:{ *:[iPTR] }, VR128:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (timm:{ *:[i8] }):$src3) - Complexity = 33
                    // Dst: (MPSADBWrmi:{ *:[v8i16] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/* 29708*/        0, /*End of Scope*/
/* 29709*/      /*Scope*/ 72, /*->29782*/
/* 29710*/        OPC_MoveChild1,
/* 29711*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 29714*/        OPC_RecordMemRef,
/* 29715*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 29716*/        OPC_CheckFoldableChainNode,
/* 29717*/        OPC_RecordChild1, // #1 = $src2
/* 29718*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 29720*/        OPC_CheckPredicate, 9, // Predicate_load
/* 29722*/        OPC_Scope, 27, /*->29751*/ // 2 children in Scope
/* 29724*/          OPC_MoveParent,
/* 29725*/          OPC_RecordChild2, // #2 = $src1
/* 29726*/          OPC_RecordChild3, // #3 = $src3
/* 29727*/          OPC_MoveChild3,
/* 29728*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 29731*/          OPC_MoveParent,
/* 29732*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/* 29734*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 29737*/          OPC_EmitMergeInputChains1_0,
/* 29738*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMPSADBWrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 7339:{ *:[iPTR] }, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v16i8] }:$src1, (timm:{ *:[i8] }):$src3) - Complexity = 33
                    // Dst: (VMPSADBWrmi:{ *:[v8i16] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/* 29751*/        /*Scope*/ 29, /*->29781*/
/* 29752*/          OPC_CheckPredicate, 39, // Predicate_memop
/* 29754*/          OPC_MoveParent,
/* 29755*/          OPC_RecordChild2, // #2 = $src1
/* 29756*/          OPC_RecordChild3, // #3 = $src3
/* 29757*/          OPC_MoveChild3,
/* 29758*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 29761*/          OPC_MoveParent,
/* 29762*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/* 29764*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 29767*/          OPC_EmitMergeInputChains1_0,
/* 29768*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MPSADBWrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 7339:{ *:[iPTR] }, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:{ *:[v16i8] }:$src1, (timm:{ *:[i8] }):$src3) - Complexity = 33
                    // Dst: (MPSADBWrmi:{ *:[v8i16] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/* 29781*/        0, /*End of Scope*/
/* 29782*/      /*Scope*/ 34, /*->29817*/
/* 29783*/        OPC_RecordChild1, // #0 = $src1
/* 29784*/        OPC_RecordChild2, // #1 = $src2
/* 29785*/        OPC_RecordChild3, // #2 = $src3
/* 29786*/        OPC_MoveChild3,
/* 29787*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 29790*/        OPC_MoveParent,
/* 29791*/        OPC_Scope, 11, /*->29804*/ // 2 children in Scope
/* 29793*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/* 29795*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMPSADBWrri), 0,
                        MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 7339:{ *:[iPTR] }, VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 11
                    // Dst: (VMPSADBWrri:{ *:[v8i16] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2, (timm:{ *:[i8] }):$src3)
/* 29804*/        /*Scope*/ 11, /*->29816*/
/* 29805*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/* 29807*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MPSADBWrri), 0,
                        MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 7339:{ *:[iPTR] }, VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 11
                    // Dst: (MPSADBWrri:{ *:[v8i16] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2, (timm:{ *:[i8] }):$src3)
/* 29816*/        0, /*End of Scope*/
/* 29817*/      0, /*End of Scope*/
/* 29818*/    /*Scope*/ 105, /*->29924*/
/* 29819*/      OPC_CheckChild0Integer, 42|128,50/*6442*/, 
/* 29822*/      OPC_Scope, 39, /*->29863*/ // 3 children in Scope
/* 29824*/        OPC_RecordChild1, // #0 = $src1
/* 29825*/        OPC_MoveChild2,
/* 29826*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 29829*/        OPC_RecordMemRef,
/* 29830*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 29831*/        OPC_CheckFoldableChainNode,
/* 29832*/        OPC_RecordChild1, // #2 = $src2
/* 29833*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 29835*/        OPC_CheckPredicate, 9, // Predicate_load
/* 29837*/        OPC_MoveParent,
/* 29838*/        OPC_RecordChild3, // #3 = $src3
/* 29839*/        OPC_MoveChild3,
/* 29840*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 29843*/        OPC_MoveParent,
/* 29844*/        OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/* 29846*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 29849*/        OPC_EmitMergeInputChains1_1,
/* 29850*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMPSADBWYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i16] } 6442:{ *:[iPTR] }, VR256:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 33
                  // Dst: (VMPSADBWYrmi:{ *:[v16i16] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/* 29863*/      /*Scope*/ 39, /*->29903*/
/* 29864*/        OPC_MoveChild1,
/* 29865*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 29868*/        OPC_RecordMemRef,
/* 29869*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 29870*/        OPC_CheckFoldableChainNode,
/* 29871*/        OPC_RecordChild1, // #1 = $src2
/* 29872*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 29874*/        OPC_CheckPredicate, 9, // Predicate_load
/* 29876*/        OPC_MoveParent,
/* 29877*/        OPC_RecordChild2, // #2 = $src1
/* 29878*/        OPC_RecordChild3, // #3 = $src3
/* 29879*/        OPC_MoveChild3,
/* 29880*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 29883*/        OPC_MoveParent,
/* 29884*/        OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/* 29886*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 29889*/        OPC_EmitMergeInputChains1_0,
/* 29890*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMPSADBWYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i16, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i16] } 6442:{ *:[iPTR] }, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v32i8] }:$src1, (timm:{ *:[i8] }):$src3) - Complexity = 33
                  // Dst: (VMPSADBWYrmi:{ *:[v16i16] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/* 29903*/      /*Scope*/ 19, /*->29923*/
/* 29904*/        OPC_RecordChild1, // #0 = $src1
/* 29905*/        OPC_RecordChild2, // #1 = $src2
/* 29906*/        OPC_RecordChild3, // #2 = $src3
/* 29907*/        OPC_MoveChild3,
/* 29908*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 29911*/        OPC_MoveParent,
/* 29912*/        OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/* 29914*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMPSADBWYrri), 0,
                      MVT::v16i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i16] } 6442:{ *:[iPTR] }, VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 11
                  // Dst: (VMPSADBWYrri:{ *:[v16i16] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2, (timm:{ *:[i8] }):$src3)
/* 29923*/      0, /*End of Scope*/
/* 29924*/    /*Scope*/ 66, /*->29991*/
/* 29925*/      OPC_CheckChild0Integer, 55|128,56/*7223*/, 
/* 29928*/      OPC_RecordChild1, // #0 = $src1
/* 29929*/      OPC_Scope, 40, /*->29971*/ // 2 children in Scope
/* 29931*/        OPC_MoveChild2,
/* 29932*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 29935*/        OPC_RecordMemRef,
/* 29936*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 29937*/        OPC_CheckFoldableChainNode,
/* 29938*/        OPC_RecordChild1, // #2 = $src2
/* 29939*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 29941*/        OPC_CheckPredicate, 9, // Predicate_load
/* 29943*/        OPC_CheckPredicate, 39, // Predicate_memop
/* 29945*/        OPC_MoveParent,
/* 29946*/        OPC_RecordChild3, // #3 = $src3
/* 29947*/        OPC_MoveChild3,
/* 29948*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 29951*/        OPC_MoveParent,
/* 29952*/        OPC_CheckPatternPredicate, 41, // (Subtarget->hasSHA())
/* 29954*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 29957*/        OPC_EmitMergeInputChains1_1,
/* 29958*/        OPC_MorphNodeTo1, TARGET_VAL(X86::SHA1RNDS4rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 7223:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (timm:{ *:[i8] }):$src3) - Complexity = 33
                  // Dst: (SHA1RNDS4rmi:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/* 29971*/      /*Scope*/ 18, /*->29990*/
/* 29972*/        OPC_RecordChild2, // #1 = $src2
/* 29973*/        OPC_RecordChild3, // #2 = $src3
/* 29974*/        OPC_MoveChild3,
/* 29975*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 29978*/        OPC_MoveParent,
/* 29979*/        OPC_CheckPatternPredicate, 41, // (Subtarget->hasSHA())
/* 29981*/        OPC_MorphNodeTo1, TARGET_VAL(X86::SHA1RNDS4rri), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 7223:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 11
                  // Dst: (SHA1RNDS4rri:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2, (timm:{ *:[i8] }):$src3)
/* 29990*/      0, /*End of Scope*/
/* 29991*/    /*Scope*/ 106, /*->30098*/
/* 29992*/      OPC_CheckChild0Integer, 89|128,49/*6361*/, 
/* 29995*/      OPC_Scope, 68, /*->30065*/ // 2 children in Scope
/* 29997*/        OPC_MoveChild1,
/* 29998*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 30001*/        OPC_RecordMemRef,
/* 30002*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 30003*/        OPC_CheckFoldableChainNode,
/* 30004*/        OPC_RecordChild1, // #1 = $src1
/* 30005*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 30007*/        OPC_CheckPredicate, 9, // Predicate_load
/* 30009*/        OPC_Scope, 25, /*->30036*/ // 2 children in Scope
/* 30011*/          OPC_MoveParent,
/* 30012*/          OPC_RecordChild2, // #2 = $src2
/* 30013*/          OPC_MoveChild2,
/* 30014*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 30017*/          OPC_MoveParent,
/* 30018*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAES()) && (Subtarget->hasAVX())
/* 30020*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/* 30023*/          OPC_EmitMergeInputChains1_0,
/* 30024*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VAESKEYGENASSIST128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 6361:{ *:[iPTR] }, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 33
                    // Dst: (VAESKEYGENASSIST128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/* 30036*/        /*Scope*/ 27, /*->30064*/
/* 30037*/          OPC_CheckPredicate, 39, // Predicate_memop
/* 30039*/          OPC_MoveParent,
/* 30040*/          OPC_RecordChild2, // #2 = $src2
/* 30041*/          OPC_MoveChild2,
/* 30042*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 30045*/          OPC_MoveParent,
/* 30046*/          OPC_CheckPatternPredicate, 43, // (Subtarget->hasAES()) && (!Subtarget->hasAVX())
/* 30048*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/* 30051*/          OPC_EmitMergeInputChains1_0,
/* 30052*/          OPC_MorphNodeTo1, TARGET_VAL(X86::AESKEYGENASSIST128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 6361:{ *:[iPTR] }, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (timm:{ *:[i8] }):$src2) - Complexity = 33
                    // Dst: (AESKEYGENASSIST128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/* 30064*/        0, /*End of Scope*/
/* 30065*/      /*Scope*/ 31, /*->30097*/
/* 30066*/        OPC_RecordChild1, // #0 = $src1
/* 30067*/        OPC_RecordChild2, // #1 = $src2
/* 30068*/        OPC_MoveChild2,
/* 30069*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 30072*/        OPC_MoveParent,
/* 30073*/        OPC_Scope, 10, /*->30085*/ // 2 children in Scope
/* 30075*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAES()) && (Subtarget->hasAVX())
/* 30077*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VAESKEYGENASSIST128rr), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 6361:{ *:[iPTR] }, VR128:{ *:[v2i64] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 11
                    // Dst: (VAESKEYGENASSIST128rr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, (timm:{ *:[i8] }):$src2)
/* 30085*/        /*Scope*/ 10, /*->30096*/
/* 30086*/          OPC_CheckPatternPredicate, 43, // (Subtarget->hasAES()) && (!Subtarget->hasAVX())
/* 30088*/          OPC_MorphNodeTo1, TARGET_VAL(X86::AESKEYGENASSIST128rr), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 6361:{ *:[iPTR] }, VR128:{ *:[v2i64] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 11
                    // Dst: (AESKEYGENASSIST128rr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, (timm:{ *:[i8] }):$src2)
/* 30096*/        0, /*End of Scope*/
/* 30097*/      0, /*End of Scope*/
/* 30098*/    /*Scope*/ 49|128,2/*305*/, /*->30405*/
/* 30100*/      OPC_CheckChild0Integer, 24|128,56/*7192*/, 
/* 30103*/      OPC_Scope, 41, /*->30146*/ // 7 children in Scope
/* 30105*/        OPC_RecordChild1, // #0 = $src1
/* 30106*/        OPC_MoveChild2,
/* 30107*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 30110*/        OPC_RecordMemRef,
/* 30111*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 30112*/        OPC_CheckFoldableChainNode,
/* 30113*/        OPC_RecordChild1, // #2 = $src2
/* 30114*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 30116*/        OPC_CheckPredicate, 9, // Predicate_load
/* 30118*/        OPC_CheckPredicate, 39, // Predicate_memop
/* 30120*/        OPC_MoveParent,
/* 30121*/        OPC_RecordChild3, // #3 = $src3
/* 30122*/        OPC_MoveChild3,
/* 30123*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 30126*/        OPC_MoveParent,
/* 30127*/        OPC_CheckPatternPredicate, 44, // (Subtarget->hasPCLMUL()) && (!Subtarget->hasAVX())
/* 30129*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 30132*/        OPC_EmitMergeInputChains1_1,
/* 30133*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PCLMULQDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 7192:{ *:[iPTR] }, VR128:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (timm:{ *:[i8] }):$src3) - Complexity = 33
                  // Dst: (PCLMULQDQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/* 30146*/      /*Scope*/ 44, /*->30191*/
/* 30147*/        OPC_MoveChild1,
/* 30148*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 30151*/        OPC_RecordMemRef,
/* 30152*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 30153*/        OPC_CheckFoldableChainNode,
/* 30154*/        OPC_RecordChild1, // #1 = $src2
/* 30155*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 30157*/        OPC_CheckPredicate, 9, // Predicate_load
/* 30159*/        OPC_CheckPredicate, 39, // Predicate_memop
/* 30161*/        OPC_MoveParent,
/* 30162*/        OPC_RecordChild2, // #2 = $src1
/* 30163*/        OPC_RecordChild3, // #3 = $src3
/* 30164*/        OPC_MoveChild3,
/* 30165*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 30168*/        OPC_MoveParent,
/* 30169*/        OPC_CheckPatternPredicate, 44, // (Subtarget->hasPCLMUL()) && (!Subtarget->hasAVX())
/* 30171*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 30174*/        OPC_EmitMergeInputChains1_0,
/* 30175*/        OPC_EmitNodeXForm, 2, 3, // PCLMULCommuteImm
/* 30178*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PCLMULQDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 7192:{ *:[iPTR] }, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:{ *:[v2i64] }:$src1, (timm:{ *:[i8] }):$src3) - Complexity = 33
                  // Dst: (PCLMULQDQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (PCLMULCommuteImm:{ *:[i8] } (timm:{ *:[i8] }):$src3))
/* 30191*/      /*Scope*/ 39, /*->30231*/
/* 30192*/        OPC_RecordChild1, // #0 = $src1
/* 30193*/        OPC_MoveChild2,
/* 30194*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 30197*/        OPC_RecordMemRef,
/* 30198*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 30199*/        OPC_CheckFoldableChainNode,
/* 30200*/        OPC_RecordChild1, // #2 = $src2
/* 30201*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 30203*/        OPC_CheckPredicate, 9, // Predicate_load
/* 30205*/        OPC_MoveParent,
/* 30206*/        OPC_RecordChild3, // #3 = $src3
/* 30207*/        OPC_MoveChild3,
/* 30208*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 30211*/        OPC_MoveParent,
/* 30212*/        OPC_CheckPatternPredicate, 45, // (Subtarget->hasAVX()) && (Subtarget->hasPCLMUL()) && (!Subtarget->hasVLX() || !Subtarget->hasVPCLMULQDQ())
/* 30214*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 30217*/        OPC_EmitMergeInputChains1_1,
/* 30218*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCLMULQDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 7192:{ *:[iPTR] }, VR128:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 33
                  // Dst: (VPCLMULQDQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/* 30231*/      /*Scope*/ 42, /*->30274*/
/* 30232*/        OPC_MoveChild1,
/* 30233*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 30236*/        OPC_RecordMemRef,
/* 30237*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 30238*/        OPC_CheckFoldableChainNode,
/* 30239*/        OPC_RecordChild1, // #1 = $src2
/* 30240*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 30242*/        OPC_CheckPredicate, 9, // Predicate_load
/* 30244*/        OPC_MoveParent,
/* 30245*/        OPC_RecordChild2, // #2 = $src1
/* 30246*/        OPC_RecordChild3, // #3 = $src3
/* 30247*/        OPC_MoveChild3,
/* 30248*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 30251*/        OPC_MoveParent,
/* 30252*/        OPC_CheckPatternPredicate, 45, // (Subtarget->hasAVX()) && (Subtarget->hasPCLMUL()) && (!Subtarget->hasVLX() || !Subtarget->hasVPCLMULQDQ())
/* 30254*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 30257*/        OPC_EmitMergeInputChains1_0,
/* 30258*/        OPC_EmitNodeXForm, 2, 3, // PCLMULCommuteImm
/* 30261*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCLMULQDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 7192:{ *:[iPTR] }, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v2i64] }:$src1, (timm:{ *:[i8] }):$src3) - Complexity = 33
                  // Dst: (VPCLMULQDQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (PCLMULCommuteImm:{ *:[i8] } (timm:{ *:[i8] }):$src3))
/* 30274*/      /*Scope*/ 39, /*->30314*/
/* 30275*/        OPC_RecordChild1, // #0 = $src1
/* 30276*/        OPC_MoveChild2,
/* 30277*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 30280*/        OPC_RecordMemRef,
/* 30281*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 30282*/        OPC_CheckFoldableChainNode,
/* 30283*/        OPC_RecordChild1, // #2 = $src2
/* 30284*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 30286*/        OPC_CheckPredicate, 9, // Predicate_load
/* 30288*/        OPC_MoveParent,
/* 30289*/        OPC_RecordChild3, // #3 = $src3
/* 30290*/        OPC_MoveChild3,
/* 30291*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 30294*/        OPC_MoveParent,
/* 30295*/        OPC_CheckPatternPredicate, 46, // (Subtarget->hasVLX()) && (Subtarget->hasVPCLMULQDQ())
/* 30297*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 30300*/        OPC_EmitMergeInputChains1_1,
/* 30301*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCLMULQDQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 7192:{ *:[iPTR] }, VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 33
                  // Dst: (VPCLMULQDQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/* 30314*/      /*Scope*/ 42, /*->30357*/
/* 30315*/        OPC_MoveChild1,
/* 30316*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 30319*/        OPC_RecordMemRef,
/* 30320*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 30321*/        OPC_CheckFoldableChainNode,
/* 30322*/        OPC_RecordChild1, // #1 = $src2
/* 30323*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 30325*/        OPC_CheckPredicate, 9, // Predicate_load
/* 30327*/        OPC_MoveParent,
/* 30328*/        OPC_RecordChild2, // #2 = $src1
/* 30329*/        OPC_RecordChild3, // #3 = $src3
/* 30330*/        OPC_MoveChild3,
/* 30331*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 30334*/        OPC_MoveParent,
/* 30335*/        OPC_CheckPatternPredicate, 46, // (Subtarget->hasVLX()) && (Subtarget->hasVPCLMULQDQ())
/* 30337*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 30340*/        OPC_EmitMergeInputChains1_0,
/* 30341*/        OPC_EmitNodeXForm, 2, 3, // PCLMULCommuteImm
/* 30344*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCLMULQDQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 7192:{ *:[iPTR] }, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v2i64] }:$src1, (timm:{ *:[i8] }):$src3) - Complexity = 33
                  // Dst: (VPCLMULQDQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (PCLMULCommuteImm:{ *:[i8] } (timm:{ *:[i8] }):$src3))
/* 30357*/      /*Scope*/ 46, /*->30404*/
/* 30358*/        OPC_RecordChild1, // #0 = $src1
/* 30359*/        OPC_RecordChild2, // #1 = $src2
/* 30360*/        OPC_RecordChild3, // #2 = $src3
/* 30361*/        OPC_MoveChild3,
/* 30362*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 30365*/        OPC_MoveParent,
/* 30366*/        OPC_Scope, 11, /*->30379*/ // 3 children in Scope
/* 30368*/          OPC_CheckPatternPredicate, 44, // (Subtarget->hasPCLMUL()) && (!Subtarget->hasAVX())
/* 30370*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PCLMULQDQrr), 0,
                        MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 7192:{ *:[iPTR] }, VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 11
                    // Dst: (PCLMULQDQrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2, (timm:{ *:[i8] }):$src3)
/* 30379*/        /*Scope*/ 11, /*->30391*/
/* 30380*/          OPC_CheckPatternPredicate, 45, // (Subtarget->hasAVX()) && (Subtarget->hasPCLMUL()) && (!Subtarget->hasVLX() || !Subtarget->hasVPCLMULQDQ())
/* 30382*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCLMULQDQrr), 0,
                        MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 7192:{ *:[iPTR] }, VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 11
                    // Dst: (VPCLMULQDQrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2, (timm:{ *:[i8] }):$src3)
/* 30391*/        /*Scope*/ 11, /*->30403*/
/* 30392*/          OPC_CheckPatternPredicate, 46, // (Subtarget->hasVLX()) && (Subtarget->hasVPCLMULQDQ())
/* 30394*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCLMULQDQZ128rr), 0,
                        MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 7192:{ *:[iPTR] }, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 11
                    // Dst: (VPCLMULQDQZ128rr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (timm:{ *:[i8] }):$src3)
/* 30403*/        0, /*End of Scope*/
/* 30404*/      0, /*End of Scope*/
/* 30405*/    /*Scope*/ 78|128,1/*206*/, /*->30613*/
/* 30407*/      OPC_CheckChild0Integer, 25|128,56/*7193*/, 
/* 30410*/      OPC_Scope, 39, /*->30451*/ // 5 children in Scope
/* 30412*/        OPC_RecordChild1, // #0 = $src1
/* 30413*/        OPC_MoveChild2,
/* 30414*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 30417*/        OPC_RecordMemRef,
/* 30418*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 30419*/        OPC_CheckFoldableChainNode,
/* 30420*/        OPC_RecordChild1, // #2 = $src2
/* 30421*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 30423*/        OPC_CheckPredicate, 9, // Predicate_load
/* 30425*/        OPC_MoveParent,
/* 30426*/        OPC_RecordChild3, // #3 = $src3
/* 30427*/        OPC_MoveChild3,
/* 30428*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 30431*/        OPC_MoveParent,
/* 30432*/        OPC_CheckPatternPredicate, 47, // (Subtarget->hasVPCLMULQDQ()) && (!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::VPCLMULQDQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i64] } 7193:{ *:[iPTR] }, VR256:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 33
                  // Dst: (VPCLMULQDQYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/* 30451*/      /*Scope*/ 42, /*->30494*/
/* 30452*/        OPC_MoveChild1,
/* 30453*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 30456*/        OPC_RecordMemRef,
/* 30457*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 30458*/        OPC_CheckFoldableChainNode,
/* 30459*/        OPC_RecordChild1, // #1 = $src2
/* 30460*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 30462*/        OPC_CheckPredicate, 9, // Predicate_load
/* 30464*/        OPC_MoveParent,
/* 30465*/        OPC_RecordChild2, // #2 = $src1
/* 30466*/        OPC_RecordChild3, // #3 = $src3
/* 30467*/        OPC_MoveChild3,
/* 30468*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 30471*/        OPC_MoveParent,
/* 30472*/        OPC_CheckPatternPredicate, 47, // (Subtarget->hasVPCLMULQDQ()) && (!Subtarget->hasVLX())
/* 30474*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 30477*/        OPC_EmitMergeInputChains1_0,
/* 30478*/        OPC_EmitNodeXForm, 2, 3, // PCLMULCommuteImm
/* 30481*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCLMULQDQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i64] } 7193:{ *:[iPTR] }, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v4i64] }:$src1, (timm:{ *:[i8] }):$src3) - Complexity = 33
                  // Dst: (VPCLMULQDQYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (PCLMULCommuteImm:{ *:[i8] } (timm:{ *:[i8] }):$src3))
/* 30494*/      /*Scope*/ 39, /*->30534*/
/* 30495*/        OPC_RecordChild1, // #0 = $src1
/* 30496*/        OPC_MoveChild2,
/* 30497*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 30500*/        OPC_RecordMemRef,
/* 30501*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 30502*/        OPC_CheckFoldableChainNode,
/* 30503*/        OPC_RecordChild1, // #2 = $src2
/* 30504*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 30506*/        OPC_CheckPredicate, 9, // Predicate_load
/* 30508*/        OPC_MoveParent,
/* 30509*/        OPC_RecordChild3, // #3 = $src3
/* 30510*/        OPC_MoveChild3,
/* 30511*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 30514*/        OPC_MoveParent,
/* 30515*/        OPC_CheckPatternPredicate, 46, // (Subtarget->hasVLX()) && (Subtarget->hasVPCLMULQDQ())
/* 30517*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 30520*/        OPC_EmitMergeInputChains1_1,
/* 30521*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCLMULQDQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i64] } 7193:{ *:[iPTR] }, VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 33
                  // Dst: (VPCLMULQDQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/* 30534*/      /*Scope*/ 42, /*->30577*/
/* 30535*/        OPC_MoveChild1,
/* 30536*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 30539*/        OPC_RecordMemRef,
/* 30540*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 30541*/        OPC_CheckFoldableChainNode,
/* 30542*/        OPC_RecordChild1, // #1 = $src2
/* 30543*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 30545*/        OPC_CheckPredicate, 9, // Predicate_load
/* 30547*/        OPC_MoveParent,
/* 30548*/        OPC_RecordChild2, // #2 = $src1
/* 30549*/        OPC_RecordChild3, // #3 = $src3
/* 30550*/        OPC_MoveChild3,
/* 30551*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 30554*/        OPC_MoveParent,
/* 30555*/        OPC_CheckPatternPredicate, 46, // (Subtarget->hasVLX()) && (Subtarget->hasVPCLMULQDQ())
/* 30557*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 30560*/        OPC_EmitMergeInputChains1_0,
/* 30561*/        OPC_EmitNodeXForm, 2, 3, // PCLMULCommuteImm
/* 30564*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCLMULQDQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i64] } 7193:{ *:[iPTR] }, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v4i64] }:$src1, (timm:{ *:[i8] }):$src3) - Complexity = 33
                  // Dst: (VPCLMULQDQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (PCLMULCommuteImm:{ *:[i8] } (timm:{ *:[i8] }):$src3))
/* 30577*/      /*Scope*/ 34, /*->30612*/
/* 30578*/        OPC_RecordChild1, // #0 = $src1
/* 30579*/        OPC_RecordChild2, // #1 = $src2
/* 30580*/        OPC_RecordChild3, // #2 = $src3
/* 30581*/        OPC_MoveChild3,
/* 30582*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 30585*/        OPC_MoveParent,
/* 30586*/        OPC_Scope, 11, /*->30599*/ // 2 children in Scope
/* 30588*/          OPC_CheckPatternPredicate, 47, // (Subtarget->hasVPCLMULQDQ()) && (!Subtarget->hasVLX())
/* 30590*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCLMULQDQYrr), 0,
                        MVT::v4i64, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i64] } 7193:{ *:[iPTR] }, VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 11
                    // Dst: (VPCLMULQDQYrr:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2, (timm:{ *:[i8] }):$src3)
/* 30599*/        /*Scope*/ 11, /*->30611*/
/* 30600*/          OPC_CheckPatternPredicate, 46, // (Subtarget->hasVLX()) && (Subtarget->hasVPCLMULQDQ())
/* 30602*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCLMULQDQZ256rr), 0,
                        MVT::v4i64, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i64] } 7193:{ *:[iPTR] }, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 11
                    // Dst: (VPCLMULQDQZ256rr:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (timm:{ *:[i8] }):$src3)
/* 30611*/        0, /*End of Scope*/
/* 30612*/      0, /*End of Scope*/
/* 30613*/    /*Scope*/ 108, /*->30722*/
/* 30614*/      OPC_CheckChild0Integer, 26|128,56/*7194*/, 
/* 30617*/      OPC_Scope, 39, /*->30658*/ // 3 children in Scope
/* 30619*/        OPC_RecordChild1, // #0 = $src1
/* 30620*/        OPC_MoveChild2,
/* 30621*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 30624*/        OPC_RecordMemRef,
/* 30625*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 30626*/        OPC_CheckFoldableChainNode,
/* 30627*/        OPC_RecordChild1, // #2 = $src2
/* 30628*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 30630*/        OPC_CheckPredicate, 9, // Predicate_load
/* 30632*/        OPC_MoveParent,
/* 30633*/        OPC_RecordChild3, // #3 = $src3
/* 30634*/        OPC_MoveChild3,
/* 30635*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 30638*/        OPC_MoveParent,
/* 30639*/        OPC_CheckPatternPredicate, 48, // (Subtarget->hasAVX512()) && (Subtarget->hasVPCLMULQDQ())
/* 30641*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 30644*/        OPC_EmitMergeInputChains1_1,
/* 30645*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCLMULQDQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i64] } 7194:{ *:[iPTR] }, VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 33
                  // Dst: (VPCLMULQDQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/* 30658*/      /*Scope*/ 42, /*->30701*/
/* 30659*/        OPC_MoveChild1,
/* 30660*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 30663*/        OPC_RecordMemRef,
/* 30664*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 30665*/        OPC_CheckFoldableChainNode,
/* 30666*/        OPC_RecordChild1, // #1 = $src2
/* 30667*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 30669*/        OPC_CheckPredicate, 9, // Predicate_load
/* 30671*/        OPC_MoveParent,
/* 30672*/        OPC_RecordChild2, // #2 = $src1
/* 30673*/        OPC_RecordChild3, // #3 = $src3
/* 30674*/        OPC_MoveChild3,
/* 30675*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 30678*/        OPC_MoveParent,
/* 30679*/        OPC_CheckPatternPredicate, 48, // (Subtarget->hasAVX512()) && (Subtarget->hasVPCLMULQDQ())
/* 30681*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 30684*/        OPC_EmitMergeInputChains1_0,
/* 30685*/        OPC_EmitNodeXForm, 2, 3, // PCLMULCommuteImm
/* 30688*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCLMULQDQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i64] } 7194:{ *:[iPTR] }, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v8i64] }:$src1, (timm:{ *:[i8] }):$src3) - Complexity = 33
                  // Dst: (VPCLMULQDQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (PCLMULCommuteImm:{ *:[i8] } (timm:{ *:[i8] }):$src3))
/* 30701*/      /*Scope*/ 19, /*->30721*/
/* 30702*/        OPC_RecordChild1, // #0 = $src1
/* 30703*/        OPC_RecordChild2, // #1 = $src2
/* 30704*/        OPC_RecordChild3, // #2 = $src3
/* 30705*/        OPC_MoveChild3,
/* 30706*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 30709*/        OPC_MoveParent,
/* 30710*/        OPC_CheckPatternPredicate, 48, // (Subtarget->hasAVX512()) && (Subtarget->hasVPCLMULQDQ())
/* 30712*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCLMULQDQZrr), 0,
                      MVT::v8i64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i64] } 7194:{ *:[iPTR] }, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 11
                  // Dst: (VPCLMULQDQZrr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (timm:{ *:[i8] }):$src3)
/* 30721*/      0, /*End of Scope*/
/* 30722*/    /*Scope*/ 47, /*->30770*/
/* 30723*/      OPC_CheckChild0Integer, 34|128,58/*7458*/, 
/* 30726*/      OPC_Scope, 30, /*->30758*/ // 2 children in Scope
/* 30728*/        OPC_MoveChild1,
/* 30729*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 30732*/        OPC_RecordMemRef,
/* 30733*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 30734*/        OPC_CheckFoldableChainNode,
/* 30735*/        OPC_RecordChild1, // #1 = $src
/* 30736*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 30738*/        OPC_CheckPredicate, 9, // Predicate_load
/* 30740*/        OPC_MoveParent,
/* 30741*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 30743*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 30746*/        OPC_EmitMergeInputChains1_0,
/* 30747*/        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] } 7458:{ *:[iPTR] }, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (VPHSUBWDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/* 30758*/      /*Scope*/ 10, /*->30769*/
/* 30759*/        OPC_RecordChild1, // #0 = $src
/* 30760*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 30762*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPHSUBWDrr), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 7458:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src) - Complexity = 8
                  // Dst: (VPHSUBWDrr:{ *:[v4i32] } VR128:{ *:[v8i16] }:$src)
/* 30769*/      0, /*End of Scope*/
/* 30770*/    /*Scope*/ 47, /*->30818*/
/* 30771*/      OPC_CheckChild0Integer, 33|128,58/*7457*/, 
/* 30774*/      OPC_Scope, 30, /*->30806*/ // 2 children in Scope
/* 30776*/        OPC_MoveChild1,
/* 30777*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 30780*/        OPC_RecordMemRef,
/* 30781*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 30782*/        OPC_CheckFoldableChainNode,
/* 30783*/        OPC_RecordChild1, // #1 = $src
/* 30784*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 30786*/        OPC_CheckPredicate, 9, // Predicate_load
/* 30788*/        OPC_MoveParent,
/* 30789*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 30791*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 30794*/        OPC_EmitMergeInputChains1_0,
/* 30795*/        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] } 7457:{ *:[iPTR] }, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (VPHSUBDQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/* 30806*/      /*Scope*/ 10, /*->30817*/
/* 30807*/        OPC_RecordChild1, // #0 = $src
/* 30808*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 30810*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPHSUBDQrr), 0,
                      MVT::v2i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 7457:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src) - Complexity = 8
                  // Dst: (VPHSUBDQrr:{ *:[v2i64] } VR128:{ *:[v4i32] }:$src)
/* 30817*/      0, /*End of Scope*/
/* 30818*/    /*Scope*/ 47, /*->30866*/
/* 30819*/      OPC_CheckChild0Integer, 32|128,58/*7456*/, 
/* 30822*/      OPC_Scope, 30, /*->30854*/ // 2 children in Scope
/* 30824*/        OPC_MoveChild1,
/* 30825*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 30828*/        OPC_RecordMemRef,
/* 30829*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 30830*/        OPC_CheckFoldableChainNode,
/* 30831*/        OPC_RecordChild1, // #1 = $src
/* 30832*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 30834*/        OPC_CheckPredicate, 9, // Predicate_load
/* 30836*/        OPC_MoveParent,
/* 30837*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 30839*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 30842*/        OPC_EmitMergeInputChains1_0,
/* 30843*/        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] } 7456:{ *:[iPTR] }, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (VPHSUBBWrm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/* 30854*/      /*Scope*/ 10, /*->30865*/
/* 30855*/        OPC_RecordChild1, // #0 = $src
/* 30856*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 30858*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPHSUBBWrr), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 7456:{ *:[iPTR] }, VR128:{ *:[v16i8] }:$src) - Complexity = 8
                  // Dst: (VPHSUBBWrr:{ *:[v8i16] } VR128:{ *:[v16i8] }:$src)
/* 30865*/      0, /*End of Scope*/
/* 30866*/    /*Scope*/ 47, /*->30914*/
/* 30867*/      OPC_CheckChild0Integer, 31|128,58/*7455*/, 
/* 30870*/      OPC_Scope, 30, /*->30902*/ // 2 children in Scope
/* 30872*/        OPC_MoveChild1,
/* 30873*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 30876*/        OPC_RecordMemRef,
/* 30877*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 30878*/        OPC_CheckFoldableChainNode,
/* 30879*/        OPC_RecordChild1, // #1 = $src
/* 30880*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 30882*/        OPC_CheckPredicate, 9, // Predicate_load
/* 30884*/        OPC_MoveParent,
/* 30885*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 30887*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 30890*/        OPC_EmitMergeInputChains1_0,
/* 30891*/        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] } 7455:{ *:[iPTR] }, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (VPHADDWQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/* 30902*/      /*Scope*/ 10, /*->30913*/
/* 30903*/        OPC_RecordChild1, // #0 = $src
/* 30904*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 30906*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPHADDWQrr), 0,
                      MVT::v2i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 7455:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src) - Complexity = 8
                  // Dst: (VPHADDWQrr:{ *:[v2i64] } VR128:{ *:[v8i16] }:$src)
/* 30913*/      0, /*End of Scope*/
/* 30914*/    /*Scope*/ 47, /*->30962*/
/* 30915*/      OPC_CheckChild0Integer, 30|128,58/*7454*/, 
/* 30918*/      OPC_Scope, 30, /*->30950*/ // 2 children in Scope
/* 30920*/        OPC_MoveChild1,
/* 30921*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 30924*/        OPC_RecordMemRef,
/* 30925*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 30926*/        OPC_CheckFoldableChainNode,
/* 30927*/        OPC_RecordChild1, // #1 = $src
/* 30928*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 30930*/        OPC_CheckPredicate, 9, // Predicate_load
/* 30932*/        OPC_MoveParent,
/* 30933*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 30935*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 30938*/        OPC_EmitMergeInputChains1_0,
/* 30939*/        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] } 7454:{ *:[iPTR] }, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (VPHADDWDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/* 30950*/      /*Scope*/ 10, /*->30961*/
/* 30951*/        OPC_RecordChild1, // #0 = $src
/* 30952*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 30954*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPHADDWDrr), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 7454:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src) - Complexity = 8
                  // Dst: (VPHADDWDrr:{ *:[v4i32] } VR128:{ *:[v8i16] }:$src)
/* 30961*/      0, /*End of Scope*/
/* 30962*/    /*Scope*/ 47, /*->31010*/
/* 30963*/      OPC_CheckChild0Integer, 29|128,58/*7453*/, 
/* 30966*/      OPC_Scope, 30, /*->30998*/ // 2 children in Scope
/* 30968*/        OPC_MoveChild1,
/* 30969*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 30972*/        OPC_RecordMemRef,
/* 30973*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 30974*/        OPC_CheckFoldableChainNode,
/* 30975*/        OPC_RecordChild1, // #1 = $src
/* 30976*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 30978*/        OPC_CheckPredicate, 9, // Predicate_load
/* 30980*/        OPC_MoveParent,
/* 30981*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 30983*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 30986*/        OPC_EmitMergeInputChains1_0,
/* 30987*/        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] } 7453:{ *:[iPTR] }, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (VPHADDUWQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/* 30998*/      /*Scope*/ 10, /*->31009*/
/* 30999*/        OPC_RecordChild1, // #0 = $src
/* 31000*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 31002*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPHADDUWQrr), 0,
                      MVT::v2i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 7453:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src) - Complexity = 8
                  // Dst: (VPHADDUWQrr:{ *:[v2i64] } VR128:{ *:[v8i16] }:$src)
/* 31009*/      0, /*End of Scope*/
/* 31010*/    /*Scope*/ 47, /*->31058*/
/* 31011*/      OPC_CheckChild0Integer, 28|128,58/*7452*/, 
/* 31014*/      OPC_Scope, 30, /*->31046*/ // 2 children in Scope
/* 31016*/        OPC_MoveChild1,
/* 31017*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 31020*/        OPC_RecordMemRef,
/* 31021*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 31022*/        OPC_CheckFoldableChainNode,
/* 31023*/        OPC_RecordChild1, // #1 = $src
/* 31024*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 31026*/        OPC_CheckPredicate, 9, // Predicate_load
/* 31028*/        OPC_MoveParent,
/* 31029*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 31031*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 31034*/        OPC_EmitMergeInputChains1_0,
/* 31035*/        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] } 7452:{ *:[iPTR] }, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (VPHADDUWDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/* 31046*/      /*Scope*/ 10, /*->31057*/
/* 31047*/        OPC_RecordChild1, // #0 = $src
/* 31048*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 31050*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPHADDUWDrr), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 7452:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src) - Complexity = 8
                  // Dst: (VPHADDUWDrr:{ *:[v4i32] } VR128:{ *:[v8i16] }:$src)
/* 31057*/      0, /*End of Scope*/
/* 31058*/    /*Scope*/ 47, /*->31106*/
/* 31059*/      OPC_CheckChild0Integer, 27|128,58/*7451*/, 
/* 31062*/      OPC_Scope, 30, /*->31094*/ // 2 children in Scope
/* 31064*/        OPC_MoveChild1,
/* 31065*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 31068*/        OPC_RecordMemRef,
/* 31069*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 31070*/        OPC_CheckFoldableChainNode,
/* 31071*/        OPC_RecordChild1, // #1 = $src
/* 31072*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 31074*/        OPC_CheckPredicate, 9, // Predicate_load
/* 31076*/        OPC_MoveParent,
/* 31077*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 31079*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 31082*/        OPC_EmitMergeInputChains1_0,
/* 31083*/        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] } 7451:{ *:[iPTR] }, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (VPHADDUDQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/* 31094*/      /*Scope*/ 10, /*->31105*/
/* 31095*/        OPC_RecordChild1, // #0 = $src
/* 31096*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 31098*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPHADDUDQrr), 0,
                      MVT::v2i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 7451:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src) - Complexity = 8
                  // Dst: (VPHADDUDQrr:{ *:[v2i64] } VR128:{ *:[v4i32] }:$src)
/* 31105*/      0, /*End of Scope*/
/* 31106*/    /*Scope*/ 47, /*->31154*/
/* 31107*/      OPC_CheckChild0Integer, 26|128,58/*7450*/, 
/* 31110*/      OPC_Scope, 30, /*->31142*/ // 2 children in Scope
/* 31112*/        OPC_MoveChild1,
/* 31113*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 31116*/        OPC_RecordMemRef,
/* 31117*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 31118*/        OPC_CheckFoldableChainNode,
/* 31119*/        OPC_RecordChild1, // #1 = $src
/* 31120*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 31122*/        OPC_CheckPredicate, 9, // Predicate_load
/* 31124*/        OPC_MoveParent,
/* 31125*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 31127*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 31130*/        OPC_EmitMergeInputChains1_0,
/* 31131*/        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] } 7450:{ *:[iPTR] }, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (VPHADDUBWrm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/* 31142*/      /*Scope*/ 10, /*->31153*/
/* 31143*/        OPC_RecordChild1, // #0 = $src
/* 31144*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 31146*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPHADDUBWrr), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 7450:{ *:[iPTR] }, VR128:{ *:[v16i8] }:$src) - Complexity = 8
                  // Dst: (VPHADDUBWrr:{ *:[v8i16] } VR128:{ *:[v16i8] }:$src)
/* 31153*/      0, /*End of Scope*/
/* 31154*/    /*Scope*/ 47, /*->31202*/
/* 31155*/      OPC_CheckChild0Integer, 25|128,58/*7449*/, 
/* 31158*/      OPC_Scope, 30, /*->31190*/ // 2 children in Scope
/* 31160*/        OPC_MoveChild1,
/* 31161*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 31164*/        OPC_RecordMemRef,
/* 31165*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 31166*/        OPC_CheckFoldableChainNode,
/* 31167*/        OPC_RecordChild1, // #1 = $src
/* 31168*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 31170*/        OPC_CheckPredicate, 9, // Predicate_load
/* 31172*/        OPC_MoveParent,
/* 31173*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 31175*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 31178*/        OPC_EmitMergeInputChains1_0,
/* 31179*/        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] } 7449:{ *:[iPTR] }, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (VPHADDUBQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/* 31190*/      /*Scope*/ 10, /*->31201*/
/* 31191*/        OPC_RecordChild1, // #0 = $src
/* 31192*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 31194*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPHADDUBQrr), 0,
                      MVT::v2i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 7449:{ *:[iPTR] }, VR128:{ *:[v16i8] }:$src) - Complexity = 8
                  // Dst: (VPHADDUBQrr:{ *:[v2i64] } VR128:{ *:[v16i8] }:$src)
/* 31201*/      0, /*End of Scope*/
/* 31202*/    /*Scope*/ 47, /*->31250*/
/* 31203*/      OPC_CheckChild0Integer, 24|128,58/*7448*/, 
/* 31206*/      OPC_Scope, 30, /*->31238*/ // 2 children in Scope
/* 31208*/        OPC_MoveChild1,
/* 31209*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 31212*/        OPC_RecordMemRef,
/* 31213*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 31214*/        OPC_CheckFoldableChainNode,
/* 31215*/        OPC_RecordChild1, // #1 = $src
/* 31216*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 31218*/        OPC_CheckPredicate, 9, // Predicate_load
/* 31220*/        OPC_MoveParent,
/* 31221*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 31223*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 31226*/        OPC_EmitMergeInputChains1_0,
/* 31227*/        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] } 7448:{ *:[iPTR] }, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (VPHADDUBDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/* 31238*/      /*Scope*/ 10, /*->31249*/
/* 31239*/        OPC_RecordChild1, // #0 = $src
/* 31240*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 31242*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPHADDUBDrr), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 7448:{ *:[iPTR] }, VR128:{ *:[v16i8] }:$src) - Complexity = 8
                  // Dst: (VPHADDUBDrr:{ *:[v4i32] } VR128:{ *:[v16i8] }:$src)
/* 31249*/      0, /*End of Scope*/
/* 31250*/    /*Scope*/ 47, /*->31298*/
/* 31251*/      OPC_CheckChild0Integer, 23|128,58/*7447*/, 
/* 31254*/      OPC_Scope, 30, /*->31286*/ // 2 children in Scope
/* 31256*/        OPC_MoveChild1,
/* 31257*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 31260*/        OPC_RecordMemRef,
/* 31261*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 31262*/        OPC_CheckFoldableChainNode,
/* 31263*/        OPC_RecordChild1, // #1 = $src
/* 31264*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 31266*/        OPC_CheckPredicate, 9, // Predicate_load
/* 31268*/        OPC_MoveParent,
/* 31269*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 31271*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 31274*/        OPC_EmitMergeInputChains1_0,
/* 31275*/        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] } 7447:{ *:[iPTR] }, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (VPHADDDQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/* 31286*/      /*Scope*/ 10, /*->31297*/
/* 31287*/        OPC_RecordChild1, // #0 = $src
/* 31288*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 31290*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPHADDDQrr), 0,
                      MVT::v2i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 7447:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src) - Complexity = 8
                  // Dst: (VPHADDDQrr:{ *:[v2i64] } VR128:{ *:[v4i32] }:$src)
/* 31297*/      0, /*End of Scope*/
/* 31298*/    /*Scope*/ 47, /*->31346*/
/* 31299*/      OPC_CheckChild0Integer, 22|128,58/*7446*/, 
/* 31302*/      OPC_Scope, 30, /*->31334*/ // 2 children in Scope
/* 31304*/        OPC_MoveChild1,
/* 31305*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 31308*/        OPC_RecordMemRef,
/* 31309*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 31310*/        OPC_CheckFoldableChainNode,
/* 31311*/        OPC_RecordChild1, // #1 = $src
/* 31312*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 31314*/        OPC_CheckPredicate, 9, // Predicate_load
/* 31316*/        OPC_MoveParent,
/* 31317*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 31319*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 31322*/        OPC_EmitMergeInputChains1_0,
/* 31323*/        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] } 7446:{ *:[iPTR] }, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (VPHADDBWrm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/* 31334*/      /*Scope*/ 10, /*->31345*/
/* 31335*/        OPC_RecordChild1, // #0 = $src
/* 31336*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 31338*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPHADDBWrr), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 7446:{ *:[iPTR] }, VR128:{ *:[v16i8] }:$src) - Complexity = 8
                  // Dst: (VPHADDBWrr:{ *:[v8i16] } VR128:{ *:[v16i8] }:$src)
/* 31345*/      0, /*End of Scope*/
/* 31346*/    /*Scope*/ 47, /*->31394*/
/* 31347*/      OPC_CheckChild0Integer, 21|128,58/*7445*/, 
/* 31350*/      OPC_Scope, 30, /*->31382*/ // 2 children in Scope
/* 31352*/        OPC_MoveChild1,
/* 31353*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 31356*/        OPC_RecordMemRef,
/* 31357*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 31358*/        OPC_CheckFoldableChainNode,
/* 31359*/        OPC_RecordChild1, // #1 = $src
/* 31360*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 31362*/        OPC_CheckPredicate, 9, // Predicate_load
/* 31364*/        OPC_MoveParent,
/* 31365*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 31367*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 31370*/        OPC_EmitMergeInputChains1_0,
/* 31371*/        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] } 7445:{ *:[iPTR] }, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (VPHADDBQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/* 31382*/      /*Scope*/ 10, /*->31393*/
/* 31383*/        OPC_RecordChild1, // #0 = $src
/* 31384*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 31386*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPHADDBQrr), 0,
                      MVT::v2i64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 7445:{ *:[iPTR] }, VR128:{ *:[v16i8] }:$src) - Complexity = 8
                  // Dst: (VPHADDBQrr:{ *:[v2i64] } VR128:{ *:[v16i8] }:$src)
/* 31393*/      0, /*End of Scope*/
/* 31394*/    /*Scope*/ 47, /*->31442*/
/* 31395*/      OPC_CheckChild0Integer, 20|128,58/*7444*/, 
/* 31398*/      OPC_Scope, 30, /*->31430*/ // 2 children in Scope
/* 31400*/        OPC_MoveChild1,
/* 31401*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 31404*/        OPC_RecordMemRef,
/* 31405*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 31406*/        OPC_CheckFoldableChainNode,
/* 31407*/        OPC_RecordChild1, // #1 = $src
/* 31408*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 31410*/        OPC_CheckPredicate, 9, // Predicate_load
/* 31412*/        OPC_MoveParent,
/* 31413*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 31415*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 31418*/        OPC_EmitMergeInputChains1_0,
/* 31419*/        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] } 7444:{ *:[iPTR] }, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (VPHADDBDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/* 31430*/      /*Scope*/ 10, /*->31441*/
/* 31431*/        OPC_RecordChild1, // #0 = $src
/* 31432*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 31434*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPHADDBDrr), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 7444:{ *:[iPTR] }, VR128:{ *:[v16i8] }:$src) - Complexity = 8
                  // Dst: (VPHADDBDrr:{ *:[v4i32] } VR128:{ *:[v16i8] }:$src)
/* 31441*/      0, /*End of Scope*/
/* 31442*/    /*Scope*/ 90, /*->31533*/
/* 31443*/      OPC_CheckChild0Integer, 46|128,58/*7470*/, 
/* 31446*/      OPC_Scope, 34, /*->31482*/ // 3 children in Scope
/* 31448*/        OPC_RecordChild1, // #0 = $src1
/* 31449*/        OPC_MoveChild2,
/* 31450*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 31453*/        OPC_RecordMemRef,
/* 31454*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 31455*/        OPC_CheckFoldableChainNode,
/* 31456*/        OPC_RecordChild1, // #2 = $src2
/* 31457*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 31459*/        OPC_CheckPredicate, 9, // Predicate_load
/* 31461*/        OPC_MoveParent,
/* 31462*/        OPC_RecordChild3, // #3 = $src3
/* 31463*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 31465*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 31468*/        OPC_EmitMergeInputChains1_1,
/* 31469*/        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] } 7470:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v4i32] }:$src3) - Complexity = 30
                  // Dst: (VPMADCSWDrm:{ *:[v4i32] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v4i32] }:$src3)
/* 31482*/      /*Scope*/ 34, /*->31517*/
/* 31483*/        OPC_MoveChild1,
/* 31484*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 31487*/        OPC_RecordMemRef,
/* 31488*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 31489*/        OPC_CheckFoldableChainNode,
/* 31490*/        OPC_RecordChild1, // #1 = $src2
/* 31491*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 31493*/        OPC_CheckPredicate, 9, // Predicate_load
/* 31495*/        OPC_MoveParent,
/* 31496*/        OPC_RecordChild2, // #2 = $src1
/* 31497*/        OPC_RecordChild3, // #3 = $src3
/* 31498*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 31500*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 31503*/        OPC_EmitMergeInputChains1_0,
/* 31504*/        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] } 7470:{ *:[iPTR] }, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v4i32] }:$src3) - Complexity = 30
                  // Dst: (VPMADCSWDrm:{ *:[v4i32] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v4i32] }:$src3)
/* 31517*/      /*Scope*/ 14, /*->31532*/
/* 31518*/        OPC_RecordChild1, // #0 = $src1
/* 31519*/        OPC_RecordChild2, // #1 = $src2
/* 31520*/        OPC_RecordChild3, // #2 = $src3
/* 31521*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 31523*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADCSWDrr), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 7470:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2, VR128:{ *:[v4i32] }:$src3) - Complexity = 8
                  // Dst: (VPMADCSWDrr:{ *:[v4i32] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2, VR128:{ *:[v4i32] }:$src3)
/* 31532*/      0, /*End of Scope*/
/* 31533*/    /*Scope*/ 90, /*->31624*/
/* 31534*/      OPC_CheckChild0Integer, 45|128,58/*7469*/, 
/* 31537*/      OPC_Scope, 34, /*->31573*/ // 3 children in Scope
/* 31539*/        OPC_RecordChild1, // #0 = $src1
/* 31540*/        OPC_MoveChild2,
/* 31541*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 31544*/        OPC_RecordMemRef,
/* 31545*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 31546*/        OPC_CheckFoldableChainNode,
/* 31547*/        OPC_RecordChild1, // #2 = $src2
/* 31548*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 31550*/        OPC_CheckPredicate, 9, // Predicate_load
/* 31552*/        OPC_MoveParent,
/* 31553*/        OPC_RecordChild3, // #3 = $src3
/* 31554*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 31556*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 31559*/        OPC_EmitMergeInputChains1_1,
/* 31560*/        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] } 7469:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v4i32] }:$src3) - Complexity = 30
                  // Dst: (VPMADCSSWDrm:{ *:[v4i32] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v4i32] }:$src3)
/* 31573*/      /*Scope*/ 34, /*->31608*/
/* 31574*/        OPC_MoveChild1,
/* 31575*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 31578*/        OPC_RecordMemRef,
/* 31579*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 31580*/        OPC_CheckFoldableChainNode,
/* 31581*/        OPC_RecordChild1, // #1 = $src2
/* 31582*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 31584*/        OPC_CheckPredicate, 9, // Predicate_load
/* 31586*/        OPC_MoveParent,
/* 31587*/        OPC_RecordChild2, // #2 = $src1
/* 31588*/        OPC_RecordChild3, // #3 = $src3
/* 31589*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 31591*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 31594*/        OPC_EmitMergeInputChains1_0,
/* 31595*/        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] } 7469:{ *:[iPTR] }, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v4i32] }:$src3) - Complexity = 30
                  // Dst: (VPMADCSSWDrm:{ *:[v4i32] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v4i32] }:$src3)
/* 31608*/      /*Scope*/ 14, /*->31623*/
/* 31609*/        OPC_RecordChild1, // #0 = $src1
/* 31610*/        OPC_RecordChild2, // #1 = $src2
/* 31611*/        OPC_RecordChild3, // #2 = $src3
/* 31612*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 31614*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADCSSWDrr), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 7469:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2, VR128:{ *:[v4i32] }:$src3) - Complexity = 8
                  // Dst: (VPMADCSSWDrr:{ *:[v4i32] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2, VR128:{ *:[v4i32] }:$src3)
/* 31623*/      0, /*End of Scope*/
/* 31624*/    /*Scope*/ 90, /*->31715*/
/* 31625*/      OPC_CheckChild0Integer, 44|128,58/*7468*/, 
/* 31628*/      OPC_Scope, 34, /*->31664*/ // 3 children in Scope
/* 31630*/        OPC_RecordChild1, // #0 = $src1
/* 31631*/        OPC_MoveChild2,
/* 31632*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 31635*/        OPC_RecordMemRef,
/* 31636*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 31637*/        OPC_CheckFoldableChainNode,
/* 31638*/        OPC_RecordChild1, // #2 = $src2
/* 31639*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 31641*/        OPC_CheckPredicate, 9, // Predicate_load
/* 31643*/        OPC_MoveParent,
/* 31644*/        OPC_RecordChild3, // #3 = $src3
/* 31645*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 31647*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 31650*/        OPC_EmitMergeInputChains1_1,
/* 31651*/        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] } 7468:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v8i16] }:$src3) - Complexity = 30
                  // Dst: (VPMACSWWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v8i16] }:$src3)
/* 31664*/      /*Scope*/ 34, /*->31699*/
/* 31665*/        OPC_MoveChild1,
/* 31666*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 31669*/        OPC_RecordMemRef,
/* 31670*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 31671*/        OPC_CheckFoldableChainNode,
/* 31672*/        OPC_RecordChild1, // #1 = $src2
/* 31673*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 31675*/        OPC_CheckPredicate, 9, // Predicate_load
/* 31677*/        OPC_MoveParent,
/* 31678*/        OPC_RecordChild2, // #2 = $src1
/* 31679*/        OPC_RecordChild3, // #3 = $src3
/* 31680*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 31682*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 31685*/        OPC_EmitMergeInputChains1_0,
/* 31686*/        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] } 7468:{ *:[iPTR] }, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src3) - Complexity = 30
                  // Dst: (VPMACSWWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v8i16] }:$src3)
/* 31699*/      /*Scope*/ 14, /*->31714*/
/* 31700*/        OPC_RecordChild1, // #0 = $src1
/* 31701*/        OPC_RecordChild2, // #1 = $src2
/* 31702*/        OPC_RecordChild3, // #2 = $src3
/* 31703*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 31705*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMACSWWrr), 0,
                      MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 7468:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2, VR128:{ *:[v8i16] }:$src3) - Complexity = 8
                  // Dst: (VPMACSWWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2, VR128:{ *:[v8i16] }:$src3)
/* 31714*/      0, /*End of Scope*/
/* 31715*/    /*Scope*/ 90, /*->31806*/
/* 31716*/      OPC_CheckChild0Integer, 43|128,58/*7467*/, 
/* 31719*/      OPC_Scope, 34, /*->31755*/ // 3 children in Scope
/* 31721*/        OPC_RecordChild1, // #0 = $src1
/* 31722*/        OPC_MoveChild2,
/* 31723*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 31726*/        OPC_RecordMemRef,
/* 31727*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 31728*/        OPC_CheckFoldableChainNode,
/* 31729*/        OPC_RecordChild1, // #2 = $src2
/* 31730*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 31732*/        OPC_CheckPredicate, 9, // Predicate_load
/* 31734*/        OPC_MoveParent,
/* 31735*/        OPC_RecordChild3, // #3 = $src3
/* 31736*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 31738*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 31741*/        OPC_EmitMergeInputChains1_1,
/* 31742*/        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] } 7467:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v4i32] }:$src3) - Complexity = 30
                  // Dst: (VPMACSWDrm:{ *:[v4i32] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v4i32] }:$src3)
/* 31755*/      /*Scope*/ 34, /*->31790*/
/* 31756*/        OPC_MoveChild1,
/* 31757*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 31760*/        OPC_RecordMemRef,
/* 31761*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 31762*/        OPC_CheckFoldableChainNode,
/* 31763*/        OPC_RecordChild1, // #1 = $src2
/* 31764*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 31766*/        OPC_CheckPredicate, 9, // Predicate_load
/* 31768*/        OPC_MoveParent,
/* 31769*/        OPC_RecordChild2, // #2 = $src1
/* 31770*/        OPC_RecordChild3, // #3 = $src3
/* 31771*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 31773*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 31776*/        OPC_EmitMergeInputChains1_0,
/* 31777*/        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] } 7467:{ *:[iPTR] }, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v4i32] }:$src3) - Complexity = 30
                  // Dst: (VPMACSWDrm:{ *:[v4i32] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v4i32] }:$src3)
/* 31790*/      /*Scope*/ 14, /*->31805*/
/* 31791*/        OPC_RecordChild1, // #0 = $src1
/* 31792*/        OPC_RecordChild2, // #1 = $src2
/* 31793*/        OPC_RecordChild3, // #2 = $src3
/* 31794*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 31796*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMACSWDrr), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 7467:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2, VR128:{ *:[v4i32] }:$src3) - Complexity = 8
                  // Dst: (VPMACSWDrr:{ *:[v4i32] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2, VR128:{ *:[v4i32] }:$src3)
/* 31805*/      0, /*End of Scope*/
/* 31806*/    /*Scope*/ 90, /*->31897*/
/* 31807*/      OPC_CheckChild0Integer, 42|128,58/*7466*/, 
/* 31810*/      OPC_Scope, 34, /*->31846*/ // 3 children in Scope
/* 31812*/        OPC_RecordChild1, // #0 = $src1
/* 31813*/        OPC_MoveChild2,
/* 31814*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 31817*/        OPC_RecordMemRef,
/* 31818*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 31819*/        OPC_CheckFoldableChainNode,
/* 31820*/        OPC_RecordChild1, // #2 = $src2
/* 31821*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 31823*/        OPC_CheckPredicate, 9, // Predicate_load
/* 31825*/        OPC_MoveParent,
/* 31826*/        OPC_RecordChild3, // #3 = $src3
/* 31827*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 31829*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 31832*/        OPC_EmitMergeInputChains1_1,
/* 31833*/        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] } 7466:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v8i16] }:$src3) - Complexity = 30
                  // Dst: (VPMACSSWWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v8i16] }:$src3)
/* 31846*/      /*Scope*/ 34, /*->31881*/
/* 31847*/        OPC_MoveChild1,
/* 31848*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 31851*/        OPC_RecordMemRef,
/* 31852*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 31853*/        OPC_CheckFoldableChainNode,
/* 31854*/        OPC_RecordChild1, // #1 = $src2
/* 31855*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 31857*/        OPC_CheckPredicate, 9, // Predicate_load
/* 31859*/        OPC_MoveParent,
/* 31860*/        OPC_RecordChild2, // #2 = $src1
/* 31861*/        OPC_RecordChild3, // #3 = $src3
/* 31862*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 31864*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 31867*/        OPC_EmitMergeInputChains1_0,
/* 31868*/        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] } 7466:{ *:[iPTR] }, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src3) - Complexity = 30
                  // Dst: (VPMACSSWWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v8i16] }:$src3)
/* 31881*/      /*Scope*/ 14, /*->31896*/
/* 31882*/        OPC_RecordChild1, // #0 = $src1
/* 31883*/        OPC_RecordChild2, // #1 = $src2
/* 31884*/        OPC_RecordChild3, // #2 = $src3
/* 31885*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 31887*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMACSSWWrr), 0,
                      MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i16] } 7466:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2, VR128:{ *:[v8i16] }:$src3) - Complexity = 8
                  // Dst: (VPMACSSWWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2, VR128:{ *:[v8i16] }:$src3)
/* 31896*/      0, /*End of Scope*/
/* 31897*/    /*Scope*/ 90, /*->31988*/
/* 31898*/      OPC_CheckChild0Integer, 41|128,58/*7465*/, 
/* 31901*/      OPC_Scope, 34, /*->31937*/ // 3 children in Scope
/* 31903*/        OPC_RecordChild1, // #0 = $src1
/* 31904*/        OPC_MoveChild2,
/* 31905*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 31908*/        OPC_RecordMemRef,
/* 31909*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 31910*/        OPC_CheckFoldableChainNode,
/* 31911*/        OPC_RecordChild1, // #2 = $src2
/* 31912*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 31914*/        OPC_CheckPredicate, 9, // Predicate_load
/* 31916*/        OPC_MoveParent,
/* 31917*/        OPC_RecordChild3, // #3 = $src3
/* 31918*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 31920*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 31923*/        OPC_EmitMergeInputChains1_1,
/* 31924*/        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] } 7465:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v4i32] }:$src3) - Complexity = 30
                  // Dst: (VPMACSSWDrm:{ *:[v4i32] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v4i32] }:$src3)
/* 31937*/      /*Scope*/ 34, /*->31972*/
/* 31938*/        OPC_MoveChild1,
/* 31939*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 31942*/        OPC_RecordMemRef,
/* 31943*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 31944*/        OPC_CheckFoldableChainNode,
/* 31945*/        OPC_RecordChild1, // #1 = $src2
/* 31946*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 31948*/        OPC_CheckPredicate, 9, // Predicate_load
/* 31950*/        OPC_MoveParent,
/* 31951*/        OPC_RecordChild2, // #2 = $src1
/* 31952*/        OPC_RecordChild3, // #3 = $src3
/* 31953*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 31955*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 31958*/        OPC_EmitMergeInputChains1_0,
/* 31959*/        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] } 7465:{ *:[iPTR] }, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v4i32] }:$src3) - Complexity = 30
                  // Dst: (VPMACSSWDrm:{ *:[v4i32] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v4i32] }:$src3)
/* 31972*/      /*Scope*/ 14, /*->31987*/
/* 31973*/        OPC_RecordChild1, // #0 = $src1
/* 31974*/        OPC_RecordChild2, // #1 = $src2
/* 31975*/        OPC_RecordChild3, // #2 = $src3
/* 31976*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 31978*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMACSSWDrr), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 7465:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2, VR128:{ *:[v4i32] }:$src3) - Complexity = 8
                  // Dst: (VPMACSSWDrr:{ *:[v4i32] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2, VR128:{ *:[v4i32] }:$src3)
/* 31987*/      0, /*End of Scope*/
/* 31988*/    /*Scope*/ 90, /*->32079*/
/* 31989*/      OPC_CheckChild0Integer, 40|128,58/*7464*/, 
/* 31992*/      OPC_Scope, 34, /*->32028*/ // 3 children in Scope
/* 31994*/        OPC_RecordChild1, // #0 = $src1
/* 31995*/        OPC_MoveChild2,
/* 31996*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 31999*/        OPC_RecordMemRef,
/* 32000*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 32001*/        OPC_CheckFoldableChainNode,
/* 32002*/        OPC_RecordChild1, // #2 = $src2
/* 32003*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 32005*/        OPC_CheckPredicate, 9, // Predicate_load
/* 32007*/        OPC_MoveParent,
/* 32008*/        OPC_RecordChild3, // #3 = $src3
/* 32009*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 32011*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 32014*/        OPC_EmitMergeInputChains1_1,
/* 32015*/        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] } 7464:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v2i64] }:$src3) - Complexity = 30
                  // Dst: (VPMACSSDQLrm:{ *:[v2i64] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v2i64] }:$src3)
/* 32028*/      /*Scope*/ 34, /*->32063*/
/* 32029*/        OPC_MoveChild1,
/* 32030*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 32033*/        OPC_RecordMemRef,
/* 32034*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 32035*/        OPC_CheckFoldableChainNode,
/* 32036*/        OPC_RecordChild1, // #1 = $src2
/* 32037*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 32039*/        OPC_CheckPredicate, 9, // Predicate_load
/* 32041*/        OPC_MoveParent,
/* 32042*/        OPC_RecordChild2, // #2 = $src1
/* 32043*/        OPC_RecordChild3, // #3 = $src3
/* 32044*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 32046*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 32049*/        OPC_EmitMergeInputChains1_0,
/* 32050*/        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] } 7464:{ *:[iPTR] }, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v2i64] }:$src3) - Complexity = 30
                  // Dst: (VPMACSSDQLrm:{ *:[v2i64] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v2i64] }:$src3)
/* 32063*/      /*Scope*/ 14, /*->32078*/
/* 32064*/        OPC_RecordChild1, // #0 = $src1
/* 32065*/        OPC_RecordChild2, // #1 = $src2
/* 32066*/        OPC_RecordChild3, // #2 = $src3
/* 32067*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 32069*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMACSSDQLrr), 0,
                      MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 7464:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2, VR128:{ *:[v2i64] }:$src3) - Complexity = 8
                  // Dst: (VPMACSSDQLrr:{ *:[v2i64] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2, VR128:{ *:[v2i64] }:$src3)
/* 32078*/      0, /*End of Scope*/
/* 32079*/    /*Scope*/ 90, /*->32170*/
/* 32080*/      OPC_CheckChild0Integer, 39|128,58/*7463*/, 
/* 32083*/      OPC_Scope, 34, /*->32119*/ // 3 children in Scope
/* 32085*/        OPC_RecordChild1, // #0 = $src1
/* 32086*/        OPC_MoveChild2,
/* 32087*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 32090*/        OPC_RecordMemRef,
/* 32091*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 32092*/        OPC_CheckFoldableChainNode,
/* 32093*/        OPC_RecordChild1, // #2 = $src2
/* 32094*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 32096*/        OPC_CheckPredicate, 9, // Predicate_load
/* 32098*/        OPC_MoveParent,
/* 32099*/        OPC_RecordChild3, // #3 = $src3
/* 32100*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 32102*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 32105*/        OPC_EmitMergeInputChains1_1,
/* 32106*/        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] } 7463:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v2i64] }:$src3) - Complexity = 30
                  // Dst: (VPMACSSDQHrm:{ *:[v2i64] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v2i64] }:$src3)
/* 32119*/      /*Scope*/ 34, /*->32154*/
/* 32120*/        OPC_MoveChild1,
/* 32121*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 32124*/        OPC_RecordMemRef,
/* 32125*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 32126*/        OPC_CheckFoldableChainNode,
/* 32127*/        OPC_RecordChild1, // #1 = $src2
/* 32128*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 32130*/        OPC_CheckPredicate, 9, // Predicate_load
/* 32132*/        OPC_MoveParent,
/* 32133*/        OPC_RecordChild2, // #2 = $src1
/* 32134*/        OPC_RecordChild3, // #3 = $src3
/* 32135*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 32137*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 32140*/        OPC_EmitMergeInputChains1_0,
/* 32141*/        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] } 7463:{ *:[iPTR] }, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v2i64] }:$src3) - Complexity = 30
                  // Dst: (VPMACSSDQHrm:{ *:[v2i64] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v2i64] }:$src3)
/* 32154*/      /*Scope*/ 14, /*->32169*/
/* 32155*/        OPC_RecordChild1, // #0 = $src1
/* 32156*/        OPC_RecordChild2, // #1 = $src2
/* 32157*/        OPC_RecordChild3, // #2 = $src3
/* 32158*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 32160*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMACSSDQHrr), 0,
                      MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 7463:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2, VR128:{ *:[v2i64] }:$src3) - Complexity = 8
                  // Dst: (VPMACSSDQHrr:{ *:[v2i64] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2, VR128:{ *:[v2i64] }:$src3)
/* 32169*/      0, /*End of Scope*/
/* 32170*/    /*Scope*/ 90, /*->32261*/
/* 32171*/      OPC_CheckChild0Integer, 38|128,58/*7462*/, 
/* 32174*/      OPC_Scope, 34, /*->32210*/ // 3 children in Scope
/* 32176*/        OPC_RecordChild1, // #0 = $src1
/* 32177*/        OPC_MoveChild2,
/* 32178*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 32181*/        OPC_RecordMemRef,
/* 32182*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 32183*/        OPC_CheckFoldableChainNode,
/* 32184*/        OPC_RecordChild1, // #2 = $src2
/* 32185*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 32187*/        OPC_CheckPredicate, 9, // Predicate_load
/* 32189*/        OPC_MoveParent,
/* 32190*/        OPC_RecordChild3, // #3 = $src3
/* 32191*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 32193*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 32196*/        OPC_EmitMergeInputChains1_1,
/* 32197*/        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] } 7462:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v4i32] }:$src3) - Complexity = 30
                  // Dst: (VPMACSSDDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v4i32] }:$src3)
/* 32210*/      /*Scope*/ 34, /*->32245*/
/* 32211*/        OPC_MoveChild1,
/* 32212*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 32215*/        OPC_RecordMemRef,
/* 32216*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 32217*/        OPC_CheckFoldableChainNode,
/* 32218*/        OPC_RecordChild1, // #1 = $src2
/* 32219*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 32221*/        OPC_CheckPredicate, 9, // Predicate_load
/* 32223*/        OPC_MoveParent,
/* 32224*/        OPC_RecordChild2, // #2 = $src1
/* 32225*/        OPC_RecordChild3, // #3 = $src3
/* 32226*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 32228*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 32231*/        OPC_EmitMergeInputChains1_0,
/* 32232*/        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] } 7462:{ *:[iPTR] }, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src3) - Complexity = 30
                  // Dst: (VPMACSSDDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v4i32] }:$src3)
/* 32245*/      /*Scope*/ 14, /*->32260*/
/* 32246*/        OPC_RecordChild1, // #0 = $src1
/* 32247*/        OPC_RecordChild2, // #1 = $src2
/* 32248*/        OPC_RecordChild3, // #2 = $src3
/* 32249*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 32251*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMACSSDDrr), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 7462:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2, VR128:{ *:[v4i32] }:$src3) - Complexity = 8
                  // Dst: (VPMACSSDDrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2, VR128:{ *:[v4i32] }:$src3)
/* 32260*/      0, /*End of Scope*/
/* 32261*/    /*Scope*/ 90, /*->32352*/
/* 32262*/      OPC_CheckChild0Integer, 37|128,58/*7461*/, 
/* 32265*/      OPC_Scope, 34, /*->32301*/ // 3 children in Scope
/* 32267*/        OPC_RecordChild1, // #0 = $src1
/* 32268*/        OPC_MoveChild2,
/* 32269*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 32272*/        OPC_RecordMemRef,
/* 32273*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 32274*/        OPC_CheckFoldableChainNode,
/* 32275*/        OPC_RecordChild1, // #2 = $src2
/* 32276*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 32278*/        OPC_CheckPredicate, 9, // Predicate_load
/* 32280*/        OPC_MoveParent,
/* 32281*/        OPC_RecordChild3, // #3 = $src3
/* 32282*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 32284*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 32287*/        OPC_EmitMergeInputChains1_1,
/* 32288*/        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] } 7461:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v2i64] }:$src3) - Complexity = 30
                  // Dst: (VPMACSDQLrm:{ *:[v2i64] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v2i64] }:$src3)
/* 32301*/      /*Scope*/ 34, /*->32336*/
/* 32302*/        OPC_MoveChild1,
/* 32303*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 32306*/        OPC_RecordMemRef,
/* 32307*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 32308*/        OPC_CheckFoldableChainNode,
/* 32309*/        OPC_RecordChild1, // #1 = $src2
/* 32310*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 32312*/        OPC_CheckPredicate, 9, // Predicate_load
/* 32314*/        OPC_MoveParent,
/* 32315*/        OPC_RecordChild2, // #2 = $src1
/* 32316*/        OPC_RecordChild3, // #3 = $src3
/* 32317*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 32319*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 32322*/        OPC_EmitMergeInputChains1_0,
/* 32323*/        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] } 7461:{ *:[iPTR] }, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v2i64] }:$src3) - Complexity = 30
                  // Dst: (VPMACSDQLrm:{ *:[v2i64] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v2i64] }:$src3)
/* 32336*/      /*Scope*/ 14, /*->32351*/
/* 32337*/        OPC_RecordChild1, // #0 = $src1
/* 32338*/        OPC_RecordChild2, // #1 = $src2
/* 32339*/        OPC_RecordChild3, // #2 = $src3
/* 32340*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 32342*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMACSDQLrr), 0,
                      MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 7461:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2, VR128:{ *:[v2i64] }:$src3) - Complexity = 8
                  // Dst: (VPMACSDQLrr:{ *:[v2i64] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2, VR128:{ *:[v2i64] }:$src3)
/* 32351*/      0, /*End of Scope*/
/* 32352*/    /*Scope*/ 90, /*->32443*/
/* 32353*/      OPC_CheckChild0Integer, 36|128,58/*7460*/, 
/* 32356*/      OPC_Scope, 34, /*->32392*/ // 3 children in Scope
/* 32358*/        OPC_RecordChild1, // #0 = $src1
/* 32359*/        OPC_MoveChild2,
/* 32360*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 32363*/        OPC_RecordMemRef,
/* 32364*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 32365*/        OPC_CheckFoldableChainNode,
/* 32366*/        OPC_RecordChild1, // #2 = $src2
/* 32367*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 32369*/        OPC_CheckPredicate, 9, // Predicate_load
/* 32371*/        OPC_MoveParent,
/* 32372*/        OPC_RecordChild3, // #3 = $src3
/* 32373*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 32375*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 32378*/        OPC_EmitMergeInputChains1_1,
/* 32379*/        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] } 7460:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v2i64] }:$src3) - Complexity = 30
                  // Dst: (VPMACSDQHrm:{ *:[v2i64] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v2i64] }:$src3)
/* 32392*/      /*Scope*/ 34, /*->32427*/
/* 32393*/        OPC_MoveChild1,
/* 32394*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 32397*/        OPC_RecordMemRef,
/* 32398*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 32399*/        OPC_CheckFoldableChainNode,
/* 32400*/        OPC_RecordChild1, // #1 = $src2
/* 32401*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 32403*/        OPC_CheckPredicate, 9, // Predicate_load
/* 32405*/        OPC_MoveParent,
/* 32406*/        OPC_RecordChild2, // #2 = $src1
/* 32407*/        OPC_RecordChild3, // #3 = $src3
/* 32408*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 32410*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 32413*/        OPC_EmitMergeInputChains1_0,
/* 32414*/        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] } 7460:{ *:[iPTR] }, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v2i64] }:$src3) - Complexity = 30
                  // Dst: (VPMACSDQHrm:{ *:[v2i64] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v2i64] }:$src3)
/* 32427*/      /*Scope*/ 14, /*->32442*/
/* 32428*/        OPC_RecordChild1, // #0 = $src1
/* 32429*/        OPC_RecordChild2, // #1 = $src2
/* 32430*/        OPC_RecordChild3, // #2 = $src3
/* 32431*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 32433*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMACSDQHrr), 0,
                      MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v2i64] } 7460:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2, VR128:{ *:[v2i64] }:$src3) - Complexity = 8
                  // Dst: (VPMACSDQHrr:{ *:[v2i64] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2, VR128:{ *:[v2i64] }:$src3)
/* 32442*/      0, /*End of Scope*/
/* 32443*/    /*Scope*/ 90, /*->32534*/
/* 32444*/      OPC_CheckChild0Integer, 35|128,58/*7459*/, 
/* 32447*/      OPC_Scope, 34, /*->32483*/ // 3 children in Scope
/* 32449*/        OPC_RecordChild1, // #0 = $src1
/* 32450*/        OPC_MoveChild2,
/* 32451*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 32454*/        OPC_RecordMemRef,
/* 32455*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 32456*/        OPC_CheckFoldableChainNode,
/* 32457*/        OPC_RecordChild1, // #2 = $src2
/* 32458*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 32460*/        OPC_CheckPredicate, 9, // Predicate_load
/* 32462*/        OPC_MoveParent,
/* 32463*/        OPC_RecordChild3, // #3 = $src3
/* 32464*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 32466*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 32469*/        OPC_EmitMergeInputChains1_1,
/* 32470*/        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] } 7459:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v4i32] }:$src3) - Complexity = 30
                  // Dst: (VPMACSDDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v4i32] }:$src3)
/* 32483*/      /*Scope*/ 34, /*->32518*/
/* 32484*/        OPC_MoveChild1,
/* 32485*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 32488*/        OPC_RecordMemRef,
/* 32489*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 32490*/        OPC_CheckFoldableChainNode,
/* 32491*/        OPC_RecordChild1, // #1 = $src2
/* 32492*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 32494*/        OPC_CheckPredicate, 9, // Predicate_load
/* 32496*/        OPC_MoveParent,
/* 32497*/        OPC_RecordChild2, // #2 = $src1
/* 32498*/        OPC_RecordChild3, // #3 = $src3
/* 32499*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 32501*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 32504*/        OPC_EmitMergeInputChains1_0,
/* 32505*/        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] } 7459:{ *:[iPTR] }, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src3) - Complexity = 30
                  // Dst: (VPMACSDDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v4i32] }:$src3)
/* 32518*/      /*Scope*/ 14, /*->32533*/
/* 32519*/        OPC_RecordChild1, // #0 = $src1
/* 32520*/        OPC_RecordChild2, // #1 = $src2
/* 32521*/        OPC_RecordChild3, // #2 = $src3
/* 32522*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 32524*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMACSDDrr), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 7459:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2, VR128:{ *:[v4i32] }:$src3) - Complexity = 8
                  // Dst: (VPMACSDDrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2, VR128:{ *:[v4i32] }:$src3)
/* 32533*/      0, /*End of Scope*/
/* 32534*/    /*Scope*/ 89, /*->32624*/
/* 32535*/      OPC_CheckChild0Integer, 98|128,57/*7394*/, 
/* 32538*/      OPC_RecordChild1, // #0 = $src1
/* 32539*/      OPC_Scope, 56, /*->32597*/ // 2 children in Scope
/* 32541*/        OPC_MoveChild2,
/* 32542*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 32545*/        OPC_RecordMemRef,
/* 32546*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 32547*/        OPC_CheckFoldableChainNode,
/* 32548*/        OPC_RecordChild1, // #2 = $src2
/* 32549*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 32551*/        OPC_CheckPredicate, 9, // Predicate_load
/* 32553*/        OPC_Scope, 19, /*->32574*/ // 2 children in Scope
/* 32555*/          OPC_MoveParent,
/* 32556*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/* 32558*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 32561*/          OPC_EmitMergeInputChains1_1,
/* 32562*/          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] } 7394:{ *:[iPTR] }, VR128:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                    // Dst: (VPSIGNBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 32574*/        /*Scope*/ 21, /*->32596*/
/* 32575*/          OPC_CheckPredicate, 39, // Predicate_memop
/* 32577*/          OPC_MoveParent,
/* 32578*/          OPC_CheckPatternPredicate, 50, // (Subtarget->hasSSSE3() && !Subtarget->hasAVX())
/* 32580*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 32583*/          OPC_EmitMergeInputChains1_1,
/* 32584*/          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] } 7394:{ *:[iPTR] }, VR128:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                    // Dst: (PSIGNBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 32596*/        0, /*End of Scope*/
/* 32597*/      /*Scope*/ 25, /*->32623*/
/* 32598*/        OPC_RecordChild2, // #1 = $src2
/* 32599*/        OPC_Scope, 10, /*->32611*/ // 2 children in Scope
/* 32601*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/* 32603*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSIGNBrr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v16i8] } 7394:{ *:[iPTR] }, VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2) - Complexity = 8
                    // Dst: (VPSIGNBrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)
/* 32611*/        /*Scope*/ 10, /*->32622*/
/* 32612*/          OPC_CheckPatternPredicate, 50, // (Subtarget->hasSSSE3() && !Subtarget->hasAVX())
/* 32614*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PSIGNBrr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v16i8] } 7394:{ *:[iPTR] }, VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2) - Complexity = 8
                    // Dst: (PSIGNBrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)
/* 32622*/        0, /*End of Scope*/
/* 32623*/      0, /*End of Scope*/
/* 32624*/    /*Scope*/ 89, /*->32714*/
/* 32625*/      OPC_CheckChild0Integer, 102|128,57/*7398*/, 
/* 32628*/      OPC_RecordChild1, // #0 = $src1
/* 32629*/      OPC_Scope, 56, /*->32687*/ // 2 children in Scope
/* 32631*/        OPC_MoveChild2,
/* 32632*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 32635*/        OPC_RecordMemRef,
/* 32636*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 32637*/        OPC_CheckFoldableChainNode,
/* 32638*/        OPC_RecordChild1, // #2 = $src2
/* 32639*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 32641*/        OPC_CheckPredicate, 9, // Predicate_load
/* 32643*/        OPC_Scope, 19, /*->32664*/ // 2 children in Scope
/* 32645*/          OPC_MoveParent,
/* 32646*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/* 32648*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 32651*/          OPC_EmitMergeInputChains1_1,
/* 32652*/          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] } 7398:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                    // Dst: (VPSIGNWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 32664*/        /*Scope*/ 21, /*->32686*/
/* 32665*/          OPC_CheckPredicate, 39, // Predicate_memop
/* 32667*/          OPC_MoveParent,
/* 32668*/          OPC_CheckPatternPredicate, 50, // (Subtarget->hasSSSE3() && !Subtarget->hasAVX())
/* 32670*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 32673*/          OPC_EmitMergeInputChains1_1,
/* 32674*/          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] } 7398:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                    // Dst: (PSIGNWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 32686*/        0, /*End of Scope*/
/* 32687*/      /*Scope*/ 25, /*->32713*/
/* 32688*/        OPC_RecordChild2, // #1 = $src2
/* 32689*/        OPC_Scope, 10, /*->32701*/ // 2 children in Scope
/* 32691*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/* 32693*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSIGNWrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 7398:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 8
                    // Dst: (VPSIGNWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/* 32701*/        /*Scope*/ 10, /*->32712*/
/* 32702*/          OPC_CheckPatternPredicate, 50, // (Subtarget->hasSSSE3() && !Subtarget->hasAVX())
/* 32704*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PSIGNWrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 7398:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 8
                    // Dst: (PSIGNWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/* 32712*/        0, /*End of Scope*/
/* 32713*/      0, /*End of Scope*/
/* 32714*/    /*Scope*/ 89, /*->32804*/
/* 32715*/      OPC_CheckChild0Integer, 100|128,57/*7396*/, 
/* 32718*/      OPC_RecordChild1, // #0 = $src1
/* 32719*/      OPC_Scope, 56, /*->32777*/ // 2 children in Scope
/* 32721*/        OPC_MoveChild2,
/* 32722*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 32725*/        OPC_RecordMemRef,
/* 32726*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 32727*/        OPC_CheckFoldableChainNode,
/* 32728*/        OPC_RecordChild1, // #2 = $src2
/* 32729*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 32731*/        OPC_CheckPredicate, 9, // Predicate_load
/* 32733*/        OPC_Scope, 19, /*->32754*/ // 2 children in Scope
/* 32735*/          OPC_MoveParent,
/* 32736*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/* 32738*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 32741*/          OPC_EmitMergeInputChains1_1,
/* 32742*/          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] } 7396:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                    // Dst: (VPSIGNDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 32754*/        /*Scope*/ 21, /*->32776*/
/* 32755*/          OPC_CheckPredicate, 39, // Predicate_memop
/* 32757*/          OPC_MoveParent,
/* 32758*/          OPC_CheckPatternPredicate, 50, // (Subtarget->hasSSSE3() && !Subtarget->hasAVX())
/* 32760*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 32763*/          OPC_EmitMergeInputChains1_1,
/* 32764*/          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] } 7396:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                    // Dst: (PSIGNDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 32776*/        0, /*End of Scope*/
/* 32777*/      /*Scope*/ 25, /*->32803*/
/* 32778*/        OPC_RecordChild2, // #1 = $src2
/* 32779*/        OPC_Scope, 10, /*->32791*/ // 2 children in Scope
/* 32781*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/* 32783*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSIGNDrr), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 7396:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 8
                    // Dst: (VPSIGNDrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/* 32791*/        /*Scope*/ 10, /*->32802*/
/* 32792*/          OPC_CheckPatternPredicate, 50, // (Subtarget->hasSSSE3() && !Subtarget->hasAVX())
/* 32794*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PSIGNDrr), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i32] } 7396:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 8
                    // Dst: (PSIGNDrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/* 32802*/        0, /*End of Scope*/
/* 32803*/      0, /*End of Scope*/
/* 32804*/    /*Scope*/ 89, /*->32894*/
/* 32805*/      OPC_CheckChild0Integer, 82|128,57/*7378*/, 
/* 32808*/      OPC_RecordChild1, // #0 = $src1
/* 32809*/      OPC_Scope, 56, /*->32867*/ // 2 children in Scope
/* 32811*/        OPC_MoveChild2,
/* 32812*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 32815*/        OPC_RecordMemRef,
/* 32816*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 32817*/        OPC_CheckFoldableChainNode,
/* 32818*/        OPC_RecordChild1, // #2 = $src2
/* 32819*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 32821*/        OPC_CheckPredicate, 9, // Predicate_load
/* 32823*/        OPC_Scope, 19, /*->32844*/ // 2 children in Scope
/* 32825*/          OPC_MoveParent,
/* 32826*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/* 32828*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 32831*/          OPC_EmitMergeInputChains1_1,
/* 32832*/          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] } 7378:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                    // Dst: (VPHADDSWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 32844*/        /*Scope*/ 21, /*->32866*/
/* 32845*/          OPC_CheckPredicate, 39, // Predicate_memop
/* 32847*/          OPC_MoveParent,
/* 32848*/          OPC_CheckPatternPredicate, 50, // (Subtarget->hasSSSE3() && !Subtarget->hasAVX())
/* 32850*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 32853*/          OPC_EmitMergeInputChains1_1,
/* 32854*/          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] } 7378:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                    // Dst: (PHADDSWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 32866*/        0, /*End of Scope*/
/* 32867*/      /*Scope*/ 25, /*->32893*/
/* 32868*/        OPC_RecordChild2, // #1 = $src2
/* 32869*/        OPC_Scope, 10, /*->32881*/ // 2 children in Scope
/* 32871*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/* 32873*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPHADDSWrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 7378:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 8
                    // Dst: (VPHADDSWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/* 32881*/        /*Scope*/ 10, /*->32892*/
/* 32882*/          OPC_CheckPatternPredicate, 50, // (Subtarget->hasSSSE3() && !Subtarget->hasAVX())
/* 32884*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PHADDSWrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 7378:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 8
                    // Dst: (PHADDSWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/* 32892*/        0, /*End of Scope*/
/* 32893*/      0, /*End of Scope*/
/* 32894*/    /*Scope*/ 89, /*->32984*/
/* 32895*/      OPC_CheckChild0Integer, 88|128,57/*7384*/, 
/* 32898*/      OPC_RecordChild1, // #0 = $src1
/* 32899*/      OPC_Scope, 56, /*->32957*/ // 2 children in Scope
/* 32901*/        OPC_MoveChild2,
/* 32902*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 32905*/        OPC_RecordMemRef,
/* 32906*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 32907*/        OPC_CheckFoldableChainNode,
/* 32908*/        OPC_RecordChild1, // #2 = $src2
/* 32909*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 32911*/        OPC_CheckPredicate, 9, // Predicate_load
/* 32913*/        OPC_Scope, 19, /*->32934*/ // 2 children in Scope
/* 32915*/          OPC_MoveParent,
/* 32916*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/* 32918*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 32921*/          OPC_EmitMergeInputChains1_1,
/* 32922*/          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] } 7384:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                    // Dst: (VPHSUBSWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 32934*/        /*Scope*/ 21, /*->32956*/
/* 32935*/          OPC_CheckPredicate, 39, // Predicate_memop
/* 32937*/          OPC_MoveParent,
/* 32938*/          OPC_CheckPatternPredicate, 50, // (Subtarget->hasSSSE3() && !Subtarget->hasAVX())
/* 32940*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 32943*/          OPC_EmitMergeInputChains1_1,
/* 32944*/          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] } 7384:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                    // Dst: (PHSUBSWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 32956*/        0, /*End of Scope*/
/* 32957*/      /*Scope*/ 25, /*->32983*/
/* 32958*/        OPC_RecordChild2, // #1 = $src2
/* 32959*/        OPC_Scope, 10, /*->32971*/ // 2 children in Scope
/* 32961*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/* 32963*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPHSUBSWrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 7384:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 8
                    // Dst: (VPHSUBSWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/* 32971*/        /*Scope*/ 10, /*->32982*/
/* 32972*/          OPC_CheckPatternPredicate, 50, // (Subtarget->hasSSSE3() && !Subtarget->hasAVX())
/* 32974*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PHSUBSWrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v8i16] } 7384:{ *:[iPTR] }, VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 8
                    // Dst: (PHSUBSWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/* 32982*/        0, /*End of Scope*/
/* 32983*/      0, /*End of Scope*/
/* 32984*/    /*Scope*/ 50, /*->33035*/
/* 32985*/      OPC_CheckChild0Integer, 66|128,50/*6466*/, 
/* 32988*/      OPC_RecordChild1, // #0 = $src1
/* 32989*/      OPC_Scope, 31, /*->33022*/ // 2 children in Scope
/* 32991*/        OPC_MoveChild2,
/* 32992*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 32995*/        OPC_RecordMemRef,
/* 32996*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 32997*/        OPC_CheckFoldableChainNode,
/* 32998*/        OPC_RecordChild1, // #2 = $src2
/* 32999*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 33001*/        OPC_CheckPredicate, 9, // Predicate_load
/* 33003*/        OPC_MoveParent,
/* 33004*/        OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/* 33006*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 33009*/        OPC_EmitMergeInputChains1_1,
/* 33010*/        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] } 6466:{ *:[iPTR] }, VR256:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (VPSIGNBYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 33022*/      /*Scope*/ 11, /*->33034*/
/* 33023*/        OPC_RecordChild2, // #1 = $src2
/* 33024*/        OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/* 33026*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSIGNBYrr), 0,
                      MVT::v32i8, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v32i8] } 6466:{ *:[iPTR] }, VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2) - Complexity = 8
                  // Dst: (VPSIGNBYrr:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2)
/* 33034*/      0, /*End of Scope*/
/* 33035*/    /*Scope*/ 50, /*->33086*/
/* 33036*/      OPC_CheckChild0Integer, 68|128,50/*6468*/, 
/* 33039*/      OPC_RecordChild1, // #0 = $src1
/* 33040*/      OPC_Scope, 31, /*->33073*/ // 2 children in Scope
/* 33042*/        OPC_MoveChild2,
/* 33043*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 33046*/        OPC_RecordMemRef,
/* 33047*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 33048*/        OPC_CheckFoldableChainNode,
/* 33049*/        OPC_RecordChild1, // #2 = $src2
/* 33050*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 33052*/        OPC_CheckPredicate, 9, // Predicate_load
/* 33054*/        OPC_MoveParent,
/* 33055*/        OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/* 33057*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 33060*/        OPC_EmitMergeInputChains1_1,
/* 33061*/        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] } 6468:{ *:[iPTR] }, VR256:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (VPSIGNWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 33073*/      /*Scope*/ 11, /*->33085*/
/* 33074*/        OPC_RecordChild2, // #1 = $src2
/* 33075*/        OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/* 33077*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSIGNWYrr), 0,
                      MVT::v16i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i16] } 6468:{ *:[iPTR] }, VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2) - Complexity = 8
                  // Dst: (VPSIGNWYrr:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2)
/* 33085*/      0, /*End of Scope*/
/* 33086*/    /*Scope*/ 50, /*->33137*/
/* 33087*/      OPC_CheckChild0Integer, 67|128,50/*6467*/, 
/* 33090*/      OPC_RecordChild1, // #0 = $src1
/* 33091*/      OPC_Scope, 31, /*->33124*/ // 2 children in Scope
/* 33093*/        OPC_MoveChild2,
/* 33094*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 33097*/        OPC_RecordMemRef,
/* 33098*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 33099*/        OPC_CheckFoldableChainNode,
/* 33100*/        OPC_RecordChild1, // #2 = $src2
/* 33101*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 33103*/        OPC_CheckPredicate, 9, // Predicate_load
/* 33105*/        OPC_MoveParent,
/* 33106*/        OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/* 33108*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 33111*/        OPC_EmitMergeInputChains1_1,
/* 33112*/        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] } 6467:{ *:[iPTR] }, VR256:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (VPSIGNDYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 33124*/      /*Scope*/ 11, /*->33136*/
/* 33125*/        OPC_RecordChild2, // #1 = $src2
/* 33126*/        OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/* 33128*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSIGNDYrr), 0,
                      MVT::v8i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i32] } 6467:{ *:[iPTR] }, VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2) - Complexity = 8
                  // Dst: (VPSIGNDYrr:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2)
/* 33136*/      0, /*End of Scope*/
/* 33137*/    /*Scope*/ 50, /*->33188*/
/* 33138*/      OPC_CheckChild0Integer, 53|128,50/*6453*/, 
/* 33141*/      OPC_RecordChild1, // #0 = $src1
/* 33142*/      OPC_Scope, 31, /*->33175*/ // 2 children in Scope
/* 33144*/        OPC_MoveChild2,
/* 33145*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 33148*/        OPC_RecordMemRef,
/* 33149*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 33150*/        OPC_CheckFoldableChainNode,
/* 33151*/        OPC_RecordChild1, // #2 = $src2
/* 33152*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 33154*/        OPC_CheckPredicate, 9, // Predicate_load
/* 33156*/        OPC_MoveParent,
/* 33157*/        OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/* 33159*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 33162*/        OPC_EmitMergeInputChains1_1,
/* 33163*/        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] } 6453:{ *:[iPTR] }, VR256:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (VPHADDSWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 33175*/      /*Scope*/ 11, /*->33187*/
/* 33176*/        OPC_RecordChild2, // #1 = $src2
/* 33177*/        OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/* 33179*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPHADDSWYrr), 0,
                      MVT::v16i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i16] } 6453:{ *:[iPTR] }, VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2) - Complexity = 8
                  // Dst: (VPHADDSWYrr:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2)
/* 33187*/      0, /*End of Scope*/
/* 33188*/    /*Scope*/ 50, /*->33239*/
/* 33189*/      OPC_CheckChild0Integer, 56|128,50/*6456*/, 
/* 33192*/      OPC_RecordChild1, // #0 = $src1
/* 33193*/      OPC_Scope, 31, /*->33226*/ // 2 children in Scope
/* 33195*/        OPC_MoveChild2,
/* 33196*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 33199*/        OPC_RecordMemRef,
/* 33200*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 33201*/        OPC_CheckFoldableChainNode,
/* 33202*/        OPC_RecordChild1, // #2 = $src2
/* 33203*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 33205*/        OPC_CheckPredicate, 9, // Predicate_load
/* 33207*/        OPC_MoveParent,
/* 33208*/        OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/* 33210*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 33213*/        OPC_EmitMergeInputChains1_1,
/* 33214*/        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] } 6456:{ *:[iPTR] }, VR256:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (VPHSUBSWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 33226*/      /*Scope*/ 11, /*->33238*/
/* 33227*/        OPC_RecordChild2, // #1 = $src2
/* 33228*/        OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/* 33230*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPHSUBSWYrr), 0,
                      MVT::v16i16, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v16i16] } 6456:{ *:[iPTR] }, VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2) - Complexity = 8
                  // Dst: (VPHSUBSWYrr:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2)
/* 33238*/      0, /*End of Scope*/
/* 33239*/    /*Scope*/ 52, /*->33292*/
/* 33240*/      OPC_CheckChild0Integer, 54|128,56/*7222*/, 
/* 33243*/      OPC_RecordChild1, // #0 = $src1
/* 33244*/      OPC_Scope, 33, /*->33279*/ // 2 children in Scope
/* 33246*/        OPC_MoveChild2,
/* 33247*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 33250*/        OPC_RecordMemRef,
/* 33251*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 33252*/        OPC_CheckFoldableChainNode,
/* 33253*/        OPC_RecordChild1, // #2 = $src2
/* 33254*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 33256*/        OPC_CheckPredicate, 9, // Predicate_load
/* 33258*/        OPC_CheckPredicate, 39, // Predicate_memop
/* 33260*/        OPC_MoveParent,
/* 33261*/        OPC_CheckPatternPredicate, 41, // (Subtarget->hasSHA())
/* 33263*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 33266*/        OPC_EmitMergeInputChains1_1,
/* 33267*/        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] } 7222:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                  // Dst: (SHA1NEXTErm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 33279*/      /*Scope*/ 11, /*->33291*/
/* 33280*/        OPC_RecordChild2, // #1 = $src2
/* 33281*/        OPC_CheckPatternPredicate, 41, // (Subtarget->hasSHA())
/* 33283*/        OPC_MorphNodeTo1, TARGET_VAL(X86::SHA1NEXTErr), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 7222:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 8
                  // Dst: (SHA1NEXTErr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/* 33291*/      0, /*End of Scope*/
/* 33292*/    /*Scope*/ 52, /*->33345*/
/* 33293*/      OPC_CheckChild0Integer, 52|128,56/*7220*/, 
/* 33296*/      OPC_RecordChild1, // #0 = $src1
/* 33297*/      OPC_Scope, 33, /*->33332*/ // 2 children in Scope
/* 33299*/        OPC_MoveChild2,
/* 33300*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 33303*/        OPC_RecordMemRef,
/* 33304*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 33305*/        OPC_CheckFoldableChainNode,
/* 33306*/        OPC_RecordChild1, // #2 = $src2
/* 33307*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 33309*/        OPC_CheckPredicate, 9, // Predicate_load
/* 33311*/        OPC_CheckPredicate, 39, // Predicate_memop
/* 33313*/        OPC_MoveParent,
/* 33314*/        OPC_CheckPatternPredicate, 41, // (Subtarget->hasSHA())
/* 33316*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 33319*/        OPC_EmitMergeInputChains1_1,
/* 33320*/        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] } 7220:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                  // Dst: (SHA1MSG1rm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 33332*/      /*Scope*/ 11, /*->33344*/
/* 33333*/        OPC_RecordChild2, // #1 = $src2
/* 33334*/        OPC_CheckPatternPredicate, 41, // (Subtarget->hasSHA())
/* 33336*/        OPC_MorphNodeTo1, TARGET_VAL(X86::SHA1MSG1rr), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 7220:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 8
                  // Dst: (SHA1MSG1rr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/* 33344*/      0, /*End of Scope*/
/* 33345*/    /*Scope*/ 52, /*->33398*/
/* 33346*/      OPC_CheckChild0Integer, 53|128,56/*7221*/, 
/* 33349*/      OPC_RecordChild1, // #0 = $src1
/* 33350*/      OPC_Scope, 33, /*->33385*/ // 2 children in Scope
/* 33352*/        OPC_MoveChild2,
/* 33353*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 33356*/        OPC_RecordMemRef,
/* 33357*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 33358*/        OPC_CheckFoldableChainNode,
/* 33359*/        OPC_RecordChild1, // #2 = $src2
/* 33360*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 33362*/        OPC_CheckPredicate, 9, // Predicate_load
/* 33364*/        OPC_CheckPredicate, 39, // Predicate_memop
/* 33366*/        OPC_MoveParent,
/* 33367*/        OPC_CheckPatternPredicate, 41, // (Subtarget->hasSHA())
/* 33369*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 33372*/        OPC_EmitMergeInputChains1_1,
/* 33373*/        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] } 7221:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                  // Dst: (SHA1MSG2rm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 33385*/      /*Scope*/ 11, /*->33397*/
/* 33386*/        OPC_RecordChild2, // #1 = $src2
/* 33387*/        OPC_CheckPatternPredicate, 41, // (Subtarget->hasSHA())
/* 33389*/        OPC_MorphNodeTo1, TARGET_VAL(X86::SHA1MSG2rr), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 7221:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 8
                  // Dst: (SHA1MSG2rr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/* 33397*/      0, /*End of Scope*/
/* 33398*/    /*Scope*/ 60, /*->33459*/
/* 33399*/      OPC_CheckChild0Integer, 58|128,56/*7226*/, 
/* 33402*/      OPC_RecordChild1, // #0 = $src1
/* 33403*/      OPC_Scope, 37, /*->33442*/ // 2 children in Scope
/* 33405*/        OPC_MoveChild2,
/* 33406*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 33409*/        OPC_RecordMemRef,
/* 33410*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 33411*/        OPC_CheckFoldableChainNode,
/* 33412*/        OPC_RecordChild1, // #2 = $src2
/* 33413*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 33415*/        OPC_CheckPredicate, 9, // Predicate_load
/* 33417*/        OPC_CheckPredicate, 39, // Predicate_memop
/* 33419*/        OPC_MoveParent,
/* 33420*/        OPC_RecordChild3, // #3 = physreg input XMM0
/* 33421*/        OPC_CheckPatternPredicate, 41, // (Subtarget->hasSHA())
/* 33423*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 33426*/        OPC_EmitMergeInputChains1_1,
/* 33427*/        OPC_EmitCopyToReg, 3, X86::XMM0,
/* 33430*/        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] } 7226:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, XMM0:{ *:[v4i32] }) - Complexity = 30
                  // Dst: (SHA256RNDS2rm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 33442*/      /*Scope*/ 15, /*->33458*/
/* 33443*/        OPC_RecordChild2, // #1 = $src2
/* 33444*/        OPC_RecordChild3, // #2 = physreg input XMM0
/* 33445*/        OPC_CheckPatternPredicate, 41, // (Subtarget->hasSHA())
/* 33447*/        OPC_EmitCopyToReg, 2, X86::XMM0,
/* 33450*/        OPC_MorphNodeTo1, TARGET_VAL(X86::SHA256RNDS2rr), 0|OPFL_GlueInput,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 7226:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2, XMM0:{ *:[v4i32] }) - Complexity = 8
                  // Dst: (SHA256RNDS2rr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/* 33458*/      0, /*End of Scope*/
/* 33459*/    /*Scope*/ 52, /*->33512*/
/* 33460*/      OPC_CheckChild0Integer, 56|128,56/*7224*/, 
/* 33463*/      OPC_RecordChild1, // #0 = $src1
/* 33464*/      OPC_Scope, 33, /*->33499*/ // 2 children in Scope
/* 33466*/        OPC_MoveChild2,
/* 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, 39, // Predicate_memop
/* 33480*/        OPC_MoveParent,
/* 33481*/        OPC_CheckPatternPredicate, 41, // (Subtarget->hasSHA())
/* 33483*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 33486*/        OPC_EmitMergeInputChains1_1,
/* 33487*/        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] } 7224:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                  // Dst: (SHA256MSG1rm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 33499*/      /*Scope*/ 11, /*->33511*/
/* 33500*/        OPC_RecordChild2, // #1 = $src2
/* 33501*/        OPC_CheckPatternPredicate, 41, // (Subtarget->hasSHA())
/* 33503*/        OPC_MorphNodeTo1, TARGET_VAL(X86::SHA256MSG1rr), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 7224:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 8
                  // Dst: (SHA256MSG1rr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/* 33511*/      0, /*End of Scope*/
/* 33512*/    /*Scope*/ 52, /*->33565*/
/* 33513*/      OPC_CheckChild0Integer, 57|128,56/*7225*/, 
/* 33516*/      OPC_RecordChild1, // #0 = $src1
/* 33517*/      OPC_Scope, 33, /*->33552*/ // 2 children in Scope
/* 33519*/        OPC_MoveChild2,
/* 33520*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 33523*/        OPC_RecordMemRef,
/* 33524*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 33525*/        OPC_CheckFoldableChainNode,
/* 33526*/        OPC_RecordChild1, // #2 = $src2
/* 33527*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 33529*/        OPC_CheckPredicate, 9, // Predicate_load
/* 33531*/        OPC_CheckPredicate, 39, // Predicate_memop
/* 33533*/        OPC_MoveParent,
/* 33534*/        OPC_CheckPatternPredicate, 41, // (Subtarget->hasSHA())
/* 33536*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 33539*/        OPC_EmitMergeInputChains1_1,
/* 33540*/        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] } 7225:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                  // Dst: (SHA256MSG2rm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 33552*/      /*Scope*/ 11, /*->33564*/
/* 33553*/        OPC_RecordChild2, // #1 = $src2
/* 33554*/        OPC_CheckPatternPredicate, 41, // (Subtarget->hasSHA())
/* 33556*/        OPC_MorphNodeTo1, TARGET_VAL(X86::SHA256MSG2rr), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4i32] } 7225:{ *:[iPTR] }, VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 8
                  // Dst: (SHA256MSG2rr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/* 33564*/      0, /*End of Scope*/
/* 33565*/    /*Scope*/ 120, /*->33686*/
/* 33566*/      OPC_CheckChild0Integer, 82|128,49/*6354*/, 
/* 33569*/      OPC_RecordChild1, // #0 = $src1
/* 33570*/      OPC_Scope, 76, /*->33648*/ // 2 children in Scope
/* 33572*/        OPC_MoveChild2,
/* 33573*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 33576*/        OPC_RecordMemRef,
/* 33577*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 33578*/        OPC_CheckFoldableChainNode,
/* 33579*/        OPC_RecordChild1, // #2 = $src2
/* 33580*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 33582*/        OPC_CheckPredicate, 9, // Predicate_load
/* 33584*/        OPC_Scope, 19, /*->33605*/ // 3 children in Scope
/* 33586*/          OPC_MoveParent,
/* 33587*/          OPC_CheckPatternPredicate, 51, // (Subtarget->hasAES()) && (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasVAES())
/* 33589*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 33592*/          OPC_EmitMergeInputChains1_1,
/* 33593*/          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] } 6354:{ *:[iPTR] }, VR128:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                    // Dst: (VAESENCrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 33605*/        /*Scope*/ 21, /*->33627*/
/* 33606*/          OPC_CheckPredicate, 39, // Predicate_memop
/* 33608*/          OPC_MoveParent,
/* 33609*/          OPC_CheckPatternPredicate, 43, // (Subtarget->hasAES()) && (!Subtarget->hasAVX())
/* 33611*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 33614*/          OPC_EmitMergeInputChains1_1,
/* 33615*/          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] } 6354:{ *:[iPTR] }, VR128:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                    // Dst: (AESENCrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 33627*/        /*Scope*/ 19, /*->33647*/
/* 33628*/          OPC_MoveParent,
/* 33629*/          OPC_CheckPatternPredicate, 52, // (Subtarget->hasVAES()) && (Subtarget->hasVLX())
/* 33631*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 33634*/          OPC_EmitMergeInputChains1_1,
/* 33635*/          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] } 6354:{ *:[iPTR] }, VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                    // Dst: (VAESENCZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 33647*/        0, /*End of Scope*/
/* 33648*/      /*Scope*/ 36, /*->33685*/
/* 33649*/        OPC_RecordChild2, // #1 = $src2
/* 33650*/        OPC_Scope, 10, /*->33662*/ // 3 children in Scope
/* 33652*/          OPC_CheckPatternPredicate, 51, // (Subtarget->hasAES()) && (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasVAES())
/* 33654*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VAESENCrr), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 6354:{ *:[iPTR] }, VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2) - Complexity = 8
                    // Dst: (VAESENCrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)
/* 33662*/        /*Scope*/ 10, /*->33673*/
/* 33663*/          OPC_CheckPatternPredicate, 43, // (Subtarget->hasAES()) && (!Subtarget->hasAVX())
/* 33665*/          OPC_MorphNodeTo1, TARGET_VAL(X86::AESENCrr), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 6354:{ *:[iPTR] }, VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2) - Complexity = 8
                    // Dst: (AESENCrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)
/* 33673*/        /*Scope*/ 10, /*->33684*/
/* 33674*/          OPC_CheckPatternPredicate, 52, // (Subtarget->hasVAES()) && (Subtarget->hasVLX())
/* 33676*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VAESENCZ128rr), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 6354:{ *:[iPTR] }, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2) - Complexity = 8
                    // Dst: (VAESENCZ128rr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/* 33684*/        0, /*End of Scope*/
/* 33685*/      0, /*End of Scope*/
/* 33686*/    /*Scope*/ 120, /*->33807*/
/* 33687*/      OPC_CheckChild0Integer, 85|128,49/*6357*/, 
/* 33690*/      OPC_RecordChild1, // #0 = $src1
/* 33691*/      OPC_Scope, 76, /*->33769*/ // 2 children in Scope
/* 33693*/        OPC_MoveChild2,
/* 33694*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 33697*/        OPC_RecordMemRef,
/* 33698*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 33699*/        OPC_CheckFoldableChainNode,
/* 33700*/        OPC_RecordChild1, // #2 = $src2
/* 33701*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 33703*/        OPC_CheckPredicate, 9, // Predicate_load
/* 33705*/        OPC_Scope, 19, /*->33726*/ // 3 children in Scope
/* 33707*/          OPC_MoveParent,
/* 33708*/          OPC_CheckPatternPredicate, 51, // (Subtarget->hasAES()) && (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasVAES())
/* 33710*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 33713*/          OPC_EmitMergeInputChains1_1,
/* 33714*/          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] } 6357:{ *:[iPTR] }, VR128:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                    // Dst: (VAESENCLASTrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 33726*/        /*Scope*/ 21, /*->33748*/
/* 33727*/          OPC_CheckPredicate, 39, // Predicate_memop
/* 33729*/          OPC_MoveParent,
/* 33730*/          OPC_CheckPatternPredicate, 43, // (Subtarget->hasAES()) && (!Subtarget->hasAVX())
/* 33732*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 33735*/          OPC_EmitMergeInputChains1_1,
/* 33736*/          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] } 6357:{ *:[iPTR] }, VR128:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                    // Dst: (AESENCLASTrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 33748*/        /*Scope*/ 19, /*->33768*/
/* 33749*/          OPC_MoveParent,
/* 33750*/          OPC_CheckPatternPredicate, 52, // (Subtarget->hasVAES()) && (Subtarget->hasVLX())
/* 33752*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 33755*/          OPC_EmitMergeInputChains1_1,
/* 33756*/          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] } 6357:{ *:[iPTR] }, VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                    // Dst: (VAESENCLASTZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 33768*/        0, /*End of Scope*/
/* 33769*/      /*Scope*/ 36, /*->33806*/
/* 33770*/        OPC_RecordChild2, // #1 = $src2
/* 33771*/        OPC_Scope, 10, /*->33783*/ // 3 children in Scope
/* 33773*/          OPC_CheckPatternPredicate, 51, // (Subtarget->hasAES()) && (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasVAES())
/* 33775*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VAESENCLASTrr), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 6357:{ *:[iPTR] }, VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2) - Complexity = 8
                    // Dst: (VAESENCLASTrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)
/* 33783*/        /*Scope*/ 10, /*->33794*/
/* 33784*/          OPC_CheckPatternPredicate, 43, // (Subtarget->hasAES()) && (!Subtarget->hasAVX())
/* 33786*/          OPC_MorphNodeTo1, TARGET_VAL(X86::AESENCLASTrr), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 6357:{ *:[iPTR] }, VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2) - Complexity = 8
                    // Dst: (AESENCLASTrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)
/* 33794*/        /*Scope*/ 10, /*->33805*/
/* 33795*/          OPC_CheckPatternPredicate, 52, // (Subtarget->hasVAES()) && (Subtarget->hasVLX())
/* 33797*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VAESENCLASTZ128rr), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 6357:{ *:[iPTR] }, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2) - Complexity = 8
                    // Dst: (VAESENCLASTZ128rr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/* 33805*/        0, /*End of Scope*/
/* 33806*/      0, /*End of Scope*/
/* 33807*/    /*Scope*/ 120, /*->33928*/
/* 33808*/      OPC_CheckChild0Integer, 76|128,49/*6348*/, 
/* 33811*/      OPC_RecordChild1, // #0 = $src1
/* 33812*/      OPC_Scope, 76, /*->33890*/ // 2 children in Scope
/* 33814*/        OPC_MoveChild2,
/* 33815*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 33818*/        OPC_RecordMemRef,
/* 33819*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 33820*/        OPC_CheckFoldableChainNode,
/* 33821*/        OPC_RecordChild1, // #2 = $src2
/* 33822*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 33824*/        OPC_CheckPredicate, 9, // Predicate_load
/* 33826*/        OPC_Scope, 19, /*->33847*/ // 3 children in Scope
/* 33828*/          OPC_MoveParent,
/* 33829*/          OPC_CheckPatternPredicate, 51, // (Subtarget->hasAES()) && (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasVAES())
/* 33831*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 33834*/          OPC_EmitMergeInputChains1_1,
/* 33835*/          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] } 6348:{ *:[iPTR] }, VR128:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                    // Dst: (VAESDECrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 33847*/        /*Scope*/ 21, /*->33869*/
/* 33848*/          OPC_CheckPredicate, 39, // Predicate_memop
/* 33850*/          OPC_MoveParent,
/* 33851*/          OPC_CheckPatternPredicate, 43, // (Subtarget->hasAES()) && (!Subtarget->hasAVX())
/* 33853*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 33856*/          OPC_EmitMergeInputChains1_1,
/* 33857*/          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] } 6348:{ *:[iPTR] }, VR128:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                    // Dst: (AESDECrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 33869*/        /*Scope*/ 19, /*->33889*/
/* 33870*/          OPC_MoveParent,
/* 33871*/          OPC_CheckPatternPredicate, 52, // (Subtarget->hasVAES()) && (Subtarget->hasVLX())
/* 33873*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 33876*/          OPC_EmitMergeInputChains1_1,
/* 33877*/          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] } 6348:{ *:[iPTR] }, VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                    // Dst: (VAESDECZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 33889*/        0, /*End of Scope*/
/* 33890*/      /*Scope*/ 36, /*->33927*/
/* 33891*/        OPC_RecordChild2, // #1 = $src2
/* 33892*/        OPC_Scope, 10, /*->33904*/ // 3 children in Scope
/* 33894*/          OPC_CheckPatternPredicate, 51, // (Subtarget->hasAES()) && (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasVAES())
/* 33896*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VAESDECrr), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 6348:{ *:[iPTR] }, VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2) - Complexity = 8
                    // Dst: (VAESDECrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)
/* 33904*/        /*Scope*/ 10, /*->33915*/
/* 33905*/          OPC_CheckPatternPredicate, 43, // (Subtarget->hasAES()) && (!Subtarget->hasAVX())
/* 33907*/          OPC_MorphNodeTo1, TARGET_VAL(X86::AESDECrr), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 6348:{ *:[iPTR] }, VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2) - Complexity = 8
                    // Dst: (AESDECrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)
/* 33915*/        /*Scope*/ 10, /*->33926*/
/* 33916*/          OPC_CheckPatternPredicate, 52, // (Subtarget->hasVAES()) && (Subtarget->hasVLX())
/* 33918*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VAESDECZ128rr), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 6348:{ *:[iPTR] }, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2) - Complexity = 8
                    // Dst: (VAESDECZ128rr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/* 33926*/        0, /*End of Scope*/
/* 33927*/      0, /*End of Scope*/
/* 33928*/    /*Scope*/ 120, /*->34049*/
/* 33929*/      OPC_CheckChild0Integer, 79|128,49/*6351*/, 
/* 33932*/      OPC_RecordChild1, // #0 = $src1
/* 33933*/      OPC_Scope, 76, /*->34011*/ // 2 children in Scope
/* 33935*/        OPC_MoveChild2,
/* 33936*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 33939*/        OPC_RecordMemRef,
/* 33940*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 33941*/        OPC_CheckFoldableChainNode,
/* 33942*/        OPC_RecordChild1, // #2 = $src2
/* 33943*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 33945*/        OPC_CheckPredicate, 9, // Predicate_load
/* 33947*/        OPC_Scope, 19, /*->33968*/ // 3 children in Scope
/* 33949*/          OPC_MoveParent,
/* 33950*/          OPC_CheckPatternPredicate, 51, // (Subtarget->hasAES()) && (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasVAES())
/* 33952*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 33955*/          OPC_EmitMergeInputChains1_1,
/* 33956*/          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] } 6351:{ *:[iPTR] }, VR128:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                    // Dst: (VAESDECLASTrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 33968*/        /*Scope*/ 21, /*->33990*/
/* 33969*/          OPC_CheckPredicate, 39, // Predicate_memop
/* 33971*/          OPC_MoveParent,
/* 33972*/          OPC_CheckPatternPredicate, 43, // (Subtarget->hasAES()) && (!Subtarget->hasAVX())
/* 33974*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 33977*/          OPC_EmitMergeInputChains1_1,
/* 33978*/          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] } 6351:{ *:[iPTR] }, VR128:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                    // Dst: (AESDECLASTrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 33990*/        /*Scope*/ 19, /*->34010*/
/* 33991*/          OPC_MoveParent,
/* 33992*/          OPC_CheckPatternPredicate, 52, // (Subtarget->hasVAES()) && (Subtarget->hasVLX())
/* 33994*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 33997*/          OPC_EmitMergeInputChains1_1,
/* 33998*/          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] } 6351:{ *:[iPTR] }, VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                    // Dst: (VAESDECLASTZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 34010*/        0, /*End of Scope*/
/* 34011*/      /*Scope*/ 36, /*->34048*/
/* 34012*/        OPC_RecordChild2, // #1 = $src2
/* 34013*/        OPC_Scope, 10, /*->34025*/ // 3 children in Scope
/* 34015*/          OPC_CheckPatternPredicate, 51, // (Subtarget->hasAES()) && (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasVAES())
/* 34017*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VAESDECLASTrr), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 6351:{ *:[iPTR] }, VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2) - Complexity = 8
                    // Dst: (VAESDECLASTrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)
/* 34025*/        /*Scope*/ 10, /*->34036*/
/* 34026*/          OPC_CheckPatternPredicate, 43, // (Subtarget->hasAES()) && (!Subtarget->hasAVX())
/* 34028*/          OPC_MorphNodeTo1, TARGET_VAL(X86::AESDECLASTrr), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 6351:{ *:[iPTR] }, VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2) - Complexity = 8
                    // Dst: (AESDECLASTrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)
/* 34036*/        /*Scope*/ 10, /*->34047*/
/* 34037*/          OPC_CheckPatternPredicate, 52, // (Subtarget->hasVAES()) && (Subtarget->hasVLX())
/* 34039*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VAESDECLASTZ128rr), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 6351:{ *:[iPTR] }, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2) - Complexity = 8
                    // Dst: (VAESDECLASTZ128rr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/* 34047*/        0, /*End of Scope*/
/* 34048*/      0, /*End of Scope*/
/* 34049*/    /*Scope*/ 86, /*->34136*/
/* 34050*/      OPC_CheckChild0Integer, 83|128,49/*6355*/, 
/* 34053*/      OPC_RecordChild1, // #0 = $src1
/* 34054*/      OPC_Scope, 53, /*->34109*/ // 2 children in Scope
/* 34056*/        OPC_MoveChild2,
/* 34057*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 34060*/        OPC_RecordMemRef,
/* 34061*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 34062*/        OPC_CheckFoldableChainNode,
/* 34063*/        OPC_RecordChild1, // #2 = $src2
/* 34064*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 34066*/        OPC_CheckPredicate, 9, // Predicate_load
/* 34068*/        OPC_MoveParent,
/* 34069*/        OPC_Scope, 18, /*->34089*/ // 2 children in Scope
/* 34071*/          OPC_CheckPatternPredicate, 53, // (Subtarget->hasVAES()) && (!Subtarget->hasVLX())
/* 34073*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 34076*/          OPC_EmitMergeInputChains1_1,
/* 34077*/          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] } 6355:{ *:[iPTR] }, VR256:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                    // Dst: (VAESENCYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 34089*/        /*Scope*/ 18, /*->34108*/
/* 34090*/          OPC_CheckPatternPredicate, 52, // (Subtarget->hasVAES()) && (Subtarget->hasVLX())
/* 34092*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 34095*/          OPC_EmitMergeInputChains1_1,
/* 34096*/          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] } 6355:{ *:[iPTR] }, VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                    // Dst: (VAESENCZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 34108*/        0, /*End of Scope*/
/* 34109*/      /*Scope*/ 25, /*->34135*/
/* 34110*/        OPC_RecordChild2, // #1 = $src2
/* 34111*/        OPC_Scope, 10, /*->34123*/ // 2 children in Scope
/* 34113*/          OPC_CheckPatternPredicate, 53, // (Subtarget->hasVAES()) && (!Subtarget->hasVLX())
/* 34115*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VAESENCYrr), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i64] } 6355:{ *:[iPTR] }, VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2) - Complexity = 8
                    // Dst: (VAESENCYrr:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2)
/* 34123*/        /*Scope*/ 10, /*->34134*/
/* 34124*/          OPC_CheckPatternPredicate, 52, // (Subtarget->hasVAES()) && (Subtarget->hasVLX())
/* 34126*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VAESENCZ256rr), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i64] } 6355:{ *:[iPTR] }, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2) - Complexity = 8
                    // Dst: (VAESENCZ256rr:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/* 34134*/        0, /*End of Scope*/
/* 34135*/      0, /*End of Scope*/
/* 34136*/    /*Scope*/ 86, /*->34223*/
/* 34137*/      OPC_CheckChild0Integer, 86|128,49/*6358*/, 
/* 34140*/      OPC_RecordChild1, // #0 = $src1
/* 34141*/      OPC_Scope, 53, /*->34196*/ // 2 children in Scope
/* 34143*/        OPC_MoveChild2,
/* 34144*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 34147*/        OPC_RecordMemRef,
/* 34148*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 34149*/        OPC_CheckFoldableChainNode,
/* 34150*/        OPC_RecordChild1, // #2 = $src2
/* 34151*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 34153*/        OPC_CheckPredicate, 9, // Predicate_load
/* 34155*/        OPC_MoveParent,
/* 34156*/        OPC_Scope, 18, /*->34176*/ // 2 children in Scope
/* 34158*/          OPC_CheckPatternPredicate, 53, // (Subtarget->hasVAES()) && (!Subtarget->hasVLX())
/* 34160*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 34163*/          OPC_EmitMergeInputChains1_1,
/* 34164*/          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] } 6358:{ *:[iPTR] }, VR256:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                    // Dst: (VAESENCLASTYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 34176*/        /*Scope*/ 18, /*->34195*/
/* 34177*/          OPC_CheckPatternPredicate, 52, // (Subtarget->hasVAES()) && (Subtarget->hasVLX())
/* 34179*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 34182*/          OPC_EmitMergeInputChains1_1,
/* 34183*/          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] } 6358:{ *:[iPTR] }, VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                    // Dst: (VAESENCLASTZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 34195*/        0, /*End of Scope*/
/* 34196*/      /*Scope*/ 25, /*->34222*/
/* 34197*/        OPC_RecordChild2, // #1 = $src2
/* 34198*/        OPC_Scope, 10, /*->34210*/ // 2 children in Scope
/* 34200*/          OPC_CheckPatternPredicate, 53, // (Subtarget->hasVAES()) && (!Subtarget->hasVLX())
/* 34202*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VAESENCLASTYrr), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i64] } 6358:{ *:[iPTR] }, VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2) - Complexity = 8
                    // Dst: (VAESENCLASTYrr:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2)
/* 34210*/        /*Scope*/ 10, /*->34221*/
/* 34211*/          OPC_CheckPatternPredicate, 52, // (Subtarget->hasVAES()) && (Subtarget->hasVLX())
/* 34213*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VAESENCLASTZ256rr), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i64] } 6358:{ *:[iPTR] }, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2) - Complexity = 8
                    // Dst: (VAESENCLASTZ256rr:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/* 34221*/        0, /*End of Scope*/
/* 34222*/      0, /*End of Scope*/
/* 34223*/    /*Scope*/ 86, /*->34310*/
/* 34224*/      OPC_CheckChild0Integer, 77|128,49/*6349*/, 
/* 34227*/      OPC_RecordChild1, // #0 = $src1
/* 34228*/      OPC_Scope, 53, /*->34283*/ // 2 children in Scope
/* 34230*/        OPC_MoveChild2,
/* 34231*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 34234*/        OPC_RecordMemRef,
/* 34235*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 34236*/        OPC_CheckFoldableChainNode,
/* 34237*/        OPC_RecordChild1, // #2 = $src2
/* 34238*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 34240*/        OPC_CheckPredicate, 9, // Predicate_load
/* 34242*/        OPC_MoveParent,
/* 34243*/        OPC_Scope, 18, /*->34263*/ // 2 children in Scope
/* 34245*/          OPC_CheckPatternPredicate, 53, // (Subtarget->hasVAES()) && (!Subtarget->hasVLX())
/* 34247*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 34250*/          OPC_EmitMergeInputChains1_1,
/* 34251*/          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] } 6349:{ *:[iPTR] }, VR256:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                    // Dst: (VAESDECYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 34263*/        /*Scope*/ 18, /*->34282*/
/* 34264*/          OPC_CheckPatternPredicate, 52, // (Subtarget->hasVAES()) && (Subtarget->hasVLX())
/* 34266*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 34269*/          OPC_EmitMergeInputChains1_1,
/* 34270*/          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] } 6349:{ *:[iPTR] }, VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                    // Dst: (VAESDECZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 34282*/        0, /*End of Scope*/
/* 34283*/      /*Scope*/ 25, /*->34309*/
/* 34284*/        OPC_RecordChild2, // #1 = $src2
/* 34285*/        OPC_Scope, 10, /*->34297*/ // 2 children in Scope
/* 34287*/          OPC_CheckPatternPredicate, 53, // (Subtarget->hasVAES()) && (!Subtarget->hasVLX())
/* 34289*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VAESDECYrr), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i64] } 6349:{ *:[iPTR] }, VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2) - Complexity = 8
                    // Dst: (VAESDECYrr:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2)
/* 34297*/        /*Scope*/ 10, /*->34308*/
/* 34298*/          OPC_CheckPatternPredicate, 52, // (Subtarget->hasVAES()) && (Subtarget->hasVLX())
/* 34300*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VAESDECZ256rr), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i64] } 6349:{ *:[iPTR] }, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2) - Complexity = 8
                    // Dst: (VAESDECZ256rr:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/* 34308*/        0, /*End of Scope*/
/* 34309*/      0, /*End of Scope*/
/* 34310*/    /*Scope*/ 86, /*->34397*/
/* 34311*/      OPC_CheckChild0Integer, 80|128,49/*6352*/, 
/* 34314*/      OPC_RecordChild1, // #0 = $src1
/* 34315*/      OPC_Scope, 53, /*->34370*/ // 2 children in Scope
/* 34317*/        OPC_MoveChild2,
/* 34318*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 34321*/        OPC_RecordMemRef,
/* 34322*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 34323*/        OPC_CheckFoldableChainNode,
/* 34324*/        OPC_RecordChild1, // #2 = $src2
/* 34325*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 34327*/        OPC_CheckPredicate, 9, // Predicate_load
/* 34329*/        OPC_MoveParent,
/* 34330*/        OPC_Scope, 18, /*->34350*/ // 2 children in Scope
/* 34332*/          OPC_CheckPatternPredicate, 53, // (Subtarget->hasVAES()) && (!Subtarget->hasVLX())
/* 34334*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 34337*/          OPC_EmitMergeInputChains1_1,
/* 34338*/          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] } 6352:{ *:[iPTR] }, VR256:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                    // Dst: (VAESDECLASTYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 34350*/        /*Scope*/ 18, /*->34369*/
/* 34351*/          OPC_CheckPatternPredicate, 52, // (Subtarget->hasVAES()) && (Subtarget->hasVLX())
/* 34353*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 34356*/          OPC_EmitMergeInputChains1_1,
/* 34357*/          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] } 6352:{ *:[iPTR] }, VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                    // Dst: (VAESDECLASTZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 34369*/        0, /*End of Scope*/
/* 34370*/      /*Scope*/ 25, /*->34396*/
/* 34371*/        OPC_RecordChild2, // #1 = $src2
/* 34372*/        OPC_Scope, 10, /*->34384*/ // 2 children in Scope
/* 34374*/          OPC_CheckPatternPredicate, 53, // (Subtarget->hasVAES()) && (!Subtarget->hasVLX())
/* 34376*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VAESDECLASTYrr), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i64] } 6352:{ *:[iPTR] }, VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2) - Complexity = 8
                    // Dst: (VAESDECLASTYrr:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2)
/* 34384*/        /*Scope*/ 10, /*->34395*/
/* 34385*/          OPC_CheckPatternPredicate, 52, // (Subtarget->hasVAES()) && (Subtarget->hasVLX())
/* 34387*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VAESDECLASTZ256rr), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 1, 
                    // Src: (intrinsic_wo_chain:{ *:[v4i64] } 6352:{ *:[iPTR] }, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2) - Complexity = 8
                    // Dst: (VAESDECLASTZ256rr:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/* 34395*/        0, /*End of Scope*/
/* 34396*/      0, /*End of Scope*/
/* 34397*/    /*Scope*/ 84, /*->34482*/
/* 34398*/      OPC_CheckChild0Integer, 88|128,49/*6360*/, 
/* 34401*/      OPC_Scope, 54, /*->34457*/ // 2 children in Scope
/* 34403*/        OPC_MoveChild1,
/* 34404*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 34407*/        OPC_RecordMemRef,
/* 34408*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 34409*/        OPC_CheckFoldableChainNode,
/* 34410*/        OPC_RecordChild1, // #1 = $src1
/* 34411*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 34413*/        OPC_CheckPredicate, 9, // Predicate_load
/* 34415*/        OPC_Scope, 18, /*->34435*/ // 2 children in Scope
/* 34417*/          OPC_MoveParent,
/* 34418*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAES()) && (Subtarget->hasAVX())
/* 34420*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/* 34423*/          OPC_EmitMergeInputChains1_0,
/* 34424*/          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] } 6360:{ *:[iPTR] }, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                    // Dst: (VAESIMCrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)
/* 34435*/        /*Scope*/ 20, /*->34456*/
/* 34436*/          OPC_CheckPredicate, 39, // Predicate_memop
/* 34438*/          OPC_MoveParent,
/* 34439*/          OPC_CheckPatternPredicate, 43, // (Subtarget->hasAES()) && (!Subtarget->hasAVX())
/* 34441*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/* 34444*/          OPC_EmitMergeInputChains1_0,
/* 34445*/          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] } 6360:{ *:[iPTR] }, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 30
                    // Dst: (AESIMCrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)
/* 34456*/        0, /*End of Scope*/
/* 34457*/      /*Scope*/ 23, /*->34481*/
/* 34458*/        OPC_RecordChild1, // #0 = $src1
/* 34459*/        OPC_Scope, 9, /*->34470*/ // 2 children in Scope
/* 34461*/          OPC_CheckPatternPredicate, 42, // (Subtarget->hasAES()) && (Subtarget->hasAVX())
/* 34463*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VAESIMCrr), 0,
                        MVT::v2i64, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 6360:{ *:[iPTR] }, VR128:{ *:[v2i64] }:$src1) - Complexity = 8
                    // Dst: (VAESIMCrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1)
/* 34470*/        /*Scope*/ 9, /*->34480*/
/* 34471*/          OPC_CheckPatternPredicate, 43, // (Subtarget->hasAES()) && (!Subtarget->hasAVX())
/* 34473*/          OPC_MorphNodeTo1, TARGET_VAL(X86::AESIMCrr), 0,
                        MVT::v2i64, 1/*#Ops*/, 0, 
                    // Src: (intrinsic_wo_chain:{ *:[v2i64] } 6360:{ *:[iPTR] }, VR128:{ *:[v2i64] }:$src1) - Complexity = 8
                    // Dst: (AESIMCrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1)
/* 34480*/        0, /*End of Scope*/
/* 34481*/      0, /*End of Scope*/
/* 34482*/    /*Scope*/ 50, /*->34533*/
/* 34483*/      OPC_CheckChild0Integer, 84|128,49/*6356*/, 
/* 34486*/      OPC_RecordChild1, // #0 = $src1
/* 34487*/      OPC_Scope, 31, /*->34520*/ // 2 children in Scope
/* 34489*/        OPC_MoveChild2,
/* 34490*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 34493*/        OPC_RecordMemRef,
/* 34494*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 34495*/        OPC_CheckFoldableChainNode,
/* 34496*/        OPC_RecordChild1, // #2 = $src2
/* 34497*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 34499*/        OPC_CheckPredicate, 9, // Predicate_load
/* 34501*/        OPC_MoveParent,
/* 34502*/        OPC_CheckPatternPredicate, 54, // (Subtarget->hasAVX512()) && (Subtarget->hasVAES())
/* 34504*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 34507*/        OPC_EmitMergeInputChains1_1,
/* 34508*/        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] } 6356:{ *:[iPTR] }, VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (VAESENCZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 34520*/      /*Scope*/ 11, /*->34532*/
/* 34521*/        OPC_RecordChild2, // #1 = $src2
/* 34522*/        OPC_CheckPatternPredicate, 54, // (Subtarget->hasAVX512()) && (Subtarget->hasVAES())
/* 34524*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VAESENCZrr), 0,
                      MVT::v8i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i64] } 6356:{ *:[iPTR] }, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2) - Complexity = 8
                  // Dst: (VAESENCZrr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/* 34532*/      0, /*End of Scope*/
/* 34533*/    /*Scope*/ 50, /*->34584*/
/* 34534*/      OPC_CheckChild0Integer, 87|128,49/*6359*/, 
/* 34537*/      OPC_RecordChild1, // #0 = $src1
/* 34538*/      OPC_Scope, 31, /*->34571*/ // 2 children in Scope
/* 34540*/        OPC_MoveChild2,
/* 34541*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 34544*/        OPC_RecordMemRef,
/* 34545*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 34546*/        OPC_CheckFoldableChainNode,
/* 34547*/        OPC_RecordChild1, // #2 = $src2
/* 34548*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 34550*/        OPC_CheckPredicate, 9, // Predicate_load
/* 34552*/        OPC_MoveParent,
/* 34553*/        OPC_CheckPatternPredicate, 54, // (Subtarget->hasAVX512()) && (Subtarget->hasVAES())
/* 34555*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 34558*/        OPC_EmitMergeInputChains1_1,
/* 34559*/        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] } 6359:{ *:[iPTR] }, VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (VAESENCLASTZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 34571*/      /*Scope*/ 11, /*->34583*/
/* 34572*/        OPC_RecordChild2, // #1 = $src2
/* 34573*/        OPC_CheckPatternPredicate, 54, // (Subtarget->hasAVX512()) && (Subtarget->hasVAES())
/* 34575*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VAESENCLASTZrr), 0,
                      MVT::v8i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i64] } 6359:{ *:[iPTR] }, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2) - Complexity = 8
                  // Dst: (VAESENCLASTZrr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/* 34583*/      0, /*End of Scope*/
/* 34584*/    /*Scope*/ 50, /*->34635*/
/* 34585*/      OPC_CheckChild0Integer, 78|128,49/*6350*/, 
/* 34588*/      OPC_RecordChild1, // #0 = $src1
/* 34589*/      OPC_Scope, 31, /*->34622*/ // 2 children in Scope
/* 34591*/        OPC_MoveChild2,
/* 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, 9, // Predicate_load
/* 34603*/        OPC_MoveParent,
/* 34604*/        OPC_CheckPatternPredicate, 54, // (Subtarget->hasAVX512()) && (Subtarget->hasVAES())
/* 34606*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 34609*/        OPC_EmitMergeInputChains1_1,
/* 34610*/        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] } 6350:{ *:[iPTR] }, VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (VAESDECZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 34622*/      /*Scope*/ 11, /*->34634*/
/* 34623*/        OPC_RecordChild2, // #1 = $src2
/* 34624*/        OPC_CheckPatternPredicate, 54, // (Subtarget->hasAVX512()) && (Subtarget->hasVAES())
/* 34626*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VAESDECZrr), 0,
                      MVT::v8i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i64] } 6350:{ *:[iPTR] }, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2) - Complexity = 8
                  // Dst: (VAESDECZrr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/* 34634*/      0, /*End of Scope*/
/* 34635*/    /*Scope*/ 50, /*->34686*/
/* 34636*/      OPC_CheckChild0Integer, 81|128,49/*6353*/, 
/* 34639*/      OPC_RecordChild1, // #0 = $src1
/* 34640*/      OPC_Scope, 31, /*->34673*/ // 2 children in Scope
/* 34642*/        OPC_MoveChild2,
/* 34643*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 34646*/        OPC_RecordMemRef,
/* 34647*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 34648*/        OPC_CheckFoldableChainNode,
/* 34649*/        OPC_RecordChild1, // #2 = $src2
/* 34650*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 34652*/        OPC_CheckPredicate, 9, // Predicate_load
/* 34654*/        OPC_MoveParent,
/* 34655*/        OPC_CheckPatternPredicate, 54, // (Subtarget->hasAVX512()) && (Subtarget->hasVAES())
/* 34657*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 34660*/        OPC_EmitMergeInputChains1_1,
/* 34661*/        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] } 6353:{ *:[iPTR] }, VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (VAESDECLASTZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 34673*/      /*Scope*/ 11, /*->34685*/
/* 34674*/        OPC_RecordChild2, // #1 = $src2
/* 34675*/        OPC_CheckPatternPredicate, 54, // (Subtarget->hasAVX512()) && (Subtarget->hasVAES())
/* 34677*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VAESDECLASTZrr), 0,
                      MVT::v8i64, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v8i64] } 6353:{ *:[iPTR] }, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2) - Complexity = 8
                  // Dst: (VAESDECLASTZrr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/* 34685*/      0, /*End of Scope*/
/* 34686*/    /*Scope*/ 15, /*->34702*/
/* 34687*/      OPC_CheckChild0Integer, 72|128,57/*7368*/, 
/* 34690*/      OPC_RecordChild1, // #0 = $src
/* 34691*/      OPC_RecordChild2, // #1 = $mask
/* 34692*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasSSE4A())
/* 34694*/      OPC_MorphNodeTo1, TARGET_VAL(X86::EXTRQ), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v2i64] } 7368:{ *:[iPTR] }, VR128:{ *:[v2i64] }:$src, VR128:{ *:[v16i8] }:$mask) - Complexity = 8
                // Dst: (EXTRQ:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src, VR128:{ *:[v16i8] }:$mask)
/* 34702*/    /*Scope*/ 15, /*->34718*/
/* 34703*/      OPC_CheckChild0Integer, 74|128,57/*7370*/, 
/* 34706*/      OPC_RecordChild1, // #0 = $src
/* 34707*/      OPC_RecordChild2, // #1 = $mask
/* 34708*/      OPC_CheckPatternPredicate, 7, // (Subtarget->hasSSE4A())
/* 34710*/      OPC_MorphNodeTo1, TARGET_VAL(X86::INSERTQ), 0,
                    MVT::v2i64, 2/*#Ops*/, 0, 1, 
                // Src: (intrinsic_wo_chain:{ *:[v2i64] } 7370:{ *:[iPTR] }, VR128:{ *:[v2i64] }:$src, VR128:{ *:[v2i64] }:$mask) - Complexity = 8
                // Dst: (INSERTQ:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src, VR128:{ *:[v2i64] }:$mask)
/* 34718*/    /*Scope*/ 57|128,1/*185*/, /*->34905*/
/* 34720*/      OPC_CheckChild0Integer, 41|128,57/*7337*/, 
/* 34723*/      OPC_Scope, 71, /*->34796*/ // 3 children in Scope
/* 34725*/        OPC_RecordChild1, // #0 = $src1
/* 34726*/        OPC_MoveChild2,
/* 34727*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 34730*/        OPC_RecordMemRef,
/* 34731*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 34732*/        OPC_CheckFoldableChainNode,
/* 34733*/        OPC_RecordChild1, // #2 = $src2
/* 34734*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 34736*/        OPC_CheckPredicate, 9, // Predicate_load
/* 34738*/        OPC_Scope, 26, /*->34766*/ // 2 children in Scope
/* 34740*/          OPC_MoveParent,
/* 34741*/          OPC_RecordChild3, // #3 = $src3
/* 34742*/          OPC_MoveChild3,
/* 34743*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 34746*/          OPC_MoveParent,
/* 34747*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/* 34749*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 34752*/          OPC_EmitMergeInputChains1_1,
/* 34753*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VDPPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v4f32] } 7337:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 33
                    // Dst: (VDPPSrmi:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/* 34766*/        /*Scope*/ 28, /*->34795*/
/* 34767*/          OPC_CheckPredicate, 39, // Predicate_memop
/* 34769*/          OPC_MoveParent,
/* 34770*/          OPC_RecordChild3, // #3 = $src3
/* 34771*/          OPC_MoveChild3,
/* 34772*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 34775*/          OPC_MoveParent,
/* 34776*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/* 34778*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 34781*/          OPC_EmitMergeInputChains1_1,
/* 34782*/          OPC_MorphNodeTo1, TARGET_VAL(X86::DPPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v4f32] } 7337:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (timm:{ *:[i8] }):$src3) - Complexity = 33
                    // Dst: (DPPSrmi:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/* 34795*/        0, /*End of Scope*/
/* 34796*/      /*Scope*/ 72, /*->34869*/
/* 34797*/        OPC_MoveChild1,
/* 34798*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 34801*/        OPC_RecordMemRef,
/* 34802*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 34803*/        OPC_CheckFoldableChainNode,
/* 34804*/        OPC_RecordChild1, // #1 = $src2
/* 34805*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 34807*/        OPC_CheckPredicate, 9, // Predicate_load
/* 34809*/        OPC_Scope, 27, /*->34838*/ // 2 children in Scope
/* 34811*/          OPC_MoveParent,
/* 34812*/          OPC_RecordChild2, // #2 = $src1
/* 34813*/          OPC_RecordChild3, // #3 = $src3
/* 34814*/          OPC_MoveChild3,
/* 34815*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 34818*/          OPC_MoveParent,
/* 34819*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/* 34821*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 34824*/          OPC_EmitMergeInputChains1_0,
/* 34825*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VDPPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v4f32] } 7337:{ *:[iPTR] }, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v4f32] }:$src1, (timm:{ *:[i8] }):$src3) - Complexity = 33
                    // Dst: (VDPPSrmi:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/* 34838*/        /*Scope*/ 29, /*->34868*/
/* 34839*/          OPC_CheckPredicate, 39, // Predicate_memop
/* 34841*/          OPC_MoveParent,
/* 34842*/          OPC_RecordChild2, // #2 = $src1
/* 34843*/          OPC_RecordChild3, // #3 = $src3
/* 34844*/          OPC_MoveChild3,
/* 34845*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 34848*/          OPC_MoveParent,
/* 34849*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/* 34851*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 34854*/          OPC_EmitMergeInputChains1_0,
/* 34855*/          OPC_MorphNodeTo1, TARGET_VAL(X86::DPPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v4f32] } 7337:{ *:[iPTR] }, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:{ *:[v4f32] }:$src1, (timm:{ *:[i8] }):$src3) - Complexity = 33
                    // Dst: (DPPSrmi:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/* 34868*/        0, /*End of Scope*/
/* 34869*/      /*Scope*/ 34, /*->34904*/
/* 34870*/        OPC_RecordChild1, // #0 = $src1
/* 34871*/        OPC_RecordChild2, // #1 = $src2
/* 34872*/        OPC_RecordChild3, // #2 = $src3
/* 34873*/        OPC_MoveChild3,
/* 34874*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 34877*/        OPC_MoveParent,
/* 34878*/        OPC_Scope, 11, /*->34891*/ // 2 children in Scope
/* 34880*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/* 34882*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VDPPSrri), 0,
                        MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (intrinsic_wo_chain:{ *:[v4f32] } 7337:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 11
                    // Dst: (VDPPSrri:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, (timm:{ *:[i8] }):$src3)
/* 34891*/        /*Scope*/ 11, /*->34903*/
/* 34892*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/* 34894*/          OPC_MorphNodeTo1, TARGET_VAL(X86::DPPSrri), 0,
                        MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (intrinsic_wo_chain:{ *:[v4f32] } 7337:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 11
                    // Dst: (DPPSrri:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, (timm:{ *:[i8] }):$src3)
/* 34903*/        0, /*End of Scope*/
/* 34904*/      0, /*End of Scope*/
/* 34905*/    /*Scope*/ 57|128,1/*185*/, /*->35092*/
/* 34907*/      OPC_CheckChild0Integer, 40|128,57/*7336*/, 
/* 34910*/      OPC_Scope, 71, /*->34983*/ // 3 children in Scope
/* 34912*/        OPC_RecordChild1, // #0 = $src1
/* 34913*/        OPC_MoveChild2,
/* 34914*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 34917*/        OPC_RecordMemRef,
/* 34918*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 34919*/        OPC_CheckFoldableChainNode,
/* 34920*/        OPC_RecordChild1, // #2 = $src2
/* 34921*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 34923*/        OPC_CheckPredicate, 9, // Predicate_load
/* 34925*/        OPC_Scope, 26, /*->34953*/ // 2 children in Scope
/* 34927*/          OPC_MoveParent,
/* 34928*/          OPC_RecordChild3, // #3 = $src3
/* 34929*/          OPC_MoveChild3,
/* 34930*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 34933*/          OPC_MoveParent,
/* 34934*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/* 34936*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 34939*/          OPC_EmitMergeInputChains1_1,
/* 34940*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VDPPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v2f64] } 7336:{ *:[iPTR] }, VR128:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 33
                    // Dst: (VDPPDrmi:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/* 34953*/        /*Scope*/ 28, /*->34982*/
/* 34954*/          OPC_CheckPredicate, 39, // Predicate_memop
/* 34956*/          OPC_MoveParent,
/* 34957*/          OPC_RecordChild3, // #3 = $src3
/* 34958*/          OPC_MoveChild3,
/* 34959*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 34962*/          OPC_MoveParent,
/* 34963*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/* 34965*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 34968*/          OPC_EmitMergeInputChains1_1,
/* 34969*/          OPC_MorphNodeTo1, TARGET_VAL(X86::DPPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v2f64] } 7336:{ *:[iPTR] }, VR128:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (timm:{ *:[i8] }):$src3) - Complexity = 33
                    // Dst: (DPPDrmi:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/* 34982*/        0, /*End of Scope*/
/* 34983*/      /*Scope*/ 72, /*->35056*/
/* 34984*/        OPC_MoveChild1,
/* 34985*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 34988*/        OPC_RecordMemRef,
/* 34989*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 34990*/        OPC_CheckFoldableChainNode,
/* 34991*/        OPC_RecordChild1, // #1 = $src2
/* 34992*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 34994*/        OPC_CheckPredicate, 9, // Predicate_load
/* 34996*/        OPC_Scope, 27, /*->35025*/ // 2 children in Scope
/* 34998*/          OPC_MoveParent,
/* 34999*/          OPC_RecordChild2, // #2 = $src1
/* 35000*/          OPC_RecordChild3, // #3 = $src3
/* 35001*/          OPC_MoveChild3,
/* 35002*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 35005*/          OPC_MoveParent,
/* 35006*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/* 35008*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 35011*/          OPC_EmitMergeInputChains1_0,
/* 35012*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VDPPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v2f64] } 7336:{ *:[iPTR] }, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v2f64] }:$src1, (timm:{ *:[i8] }):$src3) - Complexity = 33
                    // Dst: (VDPPDrmi:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/* 35025*/        /*Scope*/ 29, /*->35055*/
/* 35026*/          OPC_CheckPredicate, 39, // Predicate_memop
/* 35028*/          OPC_MoveParent,
/* 35029*/          OPC_RecordChild2, // #2 = $src1
/* 35030*/          OPC_RecordChild3, // #3 = $src3
/* 35031*/          OPC_MoveChild3,
/* 35032*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 35035*/          OPC_MoveParent,
/* 35036*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/* 35038*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 35041*/          OPC_EmitMergeInputChains1_0,
/* 35042*/          OPC_MorphNodeTo1, TARGET_VAL(X86::DPPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 3, 
                    // Src: (intrinsic_wo_chain:{ *:[v2f64] } 7336:{ *:[iPTR] }, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:{ *:[v2f64] }:$src1, (timm:{ *:[i8] }):$src3) - Complexity = 33
                    // Dst: (DPPDrmi:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/* 35055*/        0, /*End of Scope*/
/* 35056*/      /*Scope*/ 34, /*->35091*/
/* 35057*/        OPC_RecordChild1, // #0 = $src1
/* 35058*/        OPC_RecordChild2, // #1 = $src2
/* 35059*/        OPC_RecordChild3, // #2 = $src3
/* 35060*/        OPC_MoveChild3,
/* 35061*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 35064*/        OPC_MoveParent,
/* 35065*/        OPC_Scope, 11, /*->35078*/ // 2 children in Scope
/* 35067*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/* 35069*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VDPPDrri), 0,
                        MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (intrinsic_wo_chain:{ *:[v2f64] } 7336:{ *:[iPTR] }, VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 11
                    // Dst: (VDPPDrri:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, (timm:{ *:[i8] }):$src3)
/* 35078*/        /*Scope*/ 11, /*->35090*/
/* 35079*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/* 35081*/          OPC_MorphNodeTo1, TARGET_VAL(X86::DPPDrri), 0,
                        MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (intrinsic_wo_chain:{ *:[v2f64] } 7336:{ *:[iPTR] }, VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 11
                    // Dst: (DPPDrri:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, (timm:{ *:[i8] }):$src3)
/* 35090*/        0, /*End of Scope*/
/* 35091*/      0, /*End of Scope*/
/* 35092*/    /*Scope*/ 105, /*->35198*/
/* 35093*/      OPC_CheckChild0Integer, 101|128,49/*6373*/, 
/* 35096*/      OPC_Scope, 39, /*->35137*/ // 3 children in Scope
/* 35098*/        OPC_RecordChild1, // #0 = $src1
/* 35099*/        OPC_MoveChild2,
/* 35100*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 35103*/        OPC_RecordMemRef,
/* 35104*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 35105*/        OPC_CheckFoldableChainNode,
/* 35106*/        OPC_RecordChild1, // #2 = $src2
/* 35107*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 35109*/        OPC_CheckPredicate, 9, // Predicate_load
/* 35111*/        OPC_MoveParent,
/* 35112*/        OPC_RecordChild3, // #3 = $src3
/* 35113*/        OPC_MoveChild3,
/* 35114*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 35117*/        OPC_MoveParent,
/* 35118*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/* 35120*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 35123*/        OPC_EmitMergeInputChains1_1,
/* 35124*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VDPPSYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8f32] } 6373:{ *:[iPTR] }, VR256:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 33
                  // Dst: (VDPPSYrmi:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/* 35137*/      /*Scope*/ 39, /*->35177*/
/* 35138*/        OPC_MoveChild1,
/* 35139*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 35142*/        OPC_RecordMemRef,
/* 35143*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 35144*/        OPC_CheckFoldableChainNode,
/* 35145*/        OPC_RecordChild1, // #1 = $src2
/* 35146*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 35148*/        OPC_CheckPredicate, 9, // Predicate_load
/* 35150*/        OPC_MoveParent,
/* 35151*/        OPC_RecordChild2, // #2 = $src1
/* 35152*/        OPC_RecordChild3, // #3 = $src3
/* 35153*/        OPC_MoveChild3,
/* 35154*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 35157*/        OPC_MoveParent,
/* 35158*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/* 35160*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 35163*/        OPC_EmitMergeInputChains1_0,
/* 35164*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VDPPSYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8f32, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 3, 
                  // Src: (intrinsic_wo_chain:{ *:[v8f32] } 6373:{ *:[iPTR] }, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v8f32] }:$src1, (timm:{ *:[i8] }):$src3) - Complexity = 33
                  // Dst: (VDPPSYrmi:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/* 35177*/      /*Scope*/ 19, /*->35197*/
/* 35178*/        OPC_RecordChild1, // #0 = $src1
/* 35179*/        OPC_RecordChild2, // #1 = $src2
/* 35180*/        OPC_RecordChild3, // #2 = $src3
/* 35181*/        OPC_MoveChild3,
/* 35182*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 35185*/        OPC_MoveParent,
/* 35186*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/* 35188*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VDPPSYrri), 0,
                      MVT::v8f32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v8f32] } 6373:{ *:[iPTR] }, VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 11
                  // Dst: (VDPPSYrri:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, (timm:{ *:[i8] }):$src3)
/* 35197*/      0, /*End of Scope*/
/* 35198*/    /*Scope*/ 47, /*->35246*/
/* 35199*/      OPC_CheckChild0Integer, 12|128,58/*7436*/, 
/* 35202*/      OPC_Scope, 30, /*->35234*/ // 2 children in Scope
/* 35204*/        OPC_MoveChild1,
/* 35205*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 35208*/        OPC_RecordMemRef,
/* 35209*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 35210*/        OPC_CheckFoldableChainNode,
/* 35211*/        OPC_RecordChild1, // #1 = $src
/* 35212*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 35214*/        OPC_CheckPredicate, 9, // Predicate_load
/* 35216*/        OPC_MoveParent,
/* 35217*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 35219*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 35222*/        OPC_EmitMergeInputChains1_0,
/* 35223*/        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] } 7436:{ *:[iPTR] }, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (VFRCZPSrm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/* 35234*/      /*Scope*/ 10, /*->35245*/
/* 35235*/        OPC_RecordChild1, // #0 = $src
/* 35236*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 35238*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFRCZPSrr), 0,
                      MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 7436:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src) - Complexity = 8
                  // Dst: (VFRCZPSrr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src)
/* 35245*/      0, /*End of Scope*/
/* 35246*/    /*Scope*/ 47, /*->35294*/
/* 35247*/      OPC_CheckChild0Integer, 13|128,58/*7437*/, 
/* 35250*/      OPC_Scope, 30, /*->35282*/ // 2 children in Scope
/* 35252*/        OPC_MoveChild1,
/* 35253*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 35256*/        OPC_RecordMemRef,
/* 35257*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 35258*/        OPC_CheckFoldableChainNode,
/* 35259*/        OPC_RecordChild1, // #1 = $src
/* 35260*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 35262*/        OPC_CheckPredicate, 9, // Predicate_load
/* 35264*/        OPC_MoveParent,
/* 35265*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 35267*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 35270*/        OPC_EmitMergeInputChains1_0,
/* 35271*/        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] } 7437:{ *:[iPTR] }, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (VFRCZPSYrm:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/* 35282*/      /*Scope*/ 10, /*->35293*/
/* 35283*/        OPC_RecordChild1, // #0 = $src
/* 35284*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 35286*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFRCZPSYrr), 0,
                      MVT::v8f32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v8f32] } 7437:{ *:[iPTR] }, VR256:{ *:[v8f32] }:$src) - Complexity = 8
                  // Dst: (VFRCZPSYrr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src)
/* 35293*/      0, /*End of Scope*/
/* 35294*/    /*Scope*/ 47, /*->35342*/
/* 35295*/      OPC_CheckChild0Integer, 10|128,58/*7434*/, 
/* 35298*/      OPC_Scope, 30, /*->35330*/ // 2 children in Scope
/* 35300*/        OPC_MoveChild1,
/* 35301*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 35304*/        OPC_RecordMemRef,
/* 35305*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 35306*/        OPC_CheckFoldableChainNode,
/* 35307*/        OPC_RecordChild1, // #1 = $src
/* 35308*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 35310*/        OPC_CheckPredicate, 9, // Predicate_load
/* 35312*/        OPC_MoveParent,
/* 35313*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 35315*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 35318*/        OPC_EmitMergeInputChains1_0,
/* 35319*/        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] } 7434:{ *:[iPTR] }, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (VFRCZPDrm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/* 35330*/      /*Scope*/ 10, /*->35341*/
/* 35331*/        OPC_RecordChild1, // #0 = $src
/* 35332*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 35334*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFRCZPDrr), 0,
                      MVT::v2f64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f64] } 7434:{ *:[iPTR] }, VR128:{ *:[v2f64] }:$src) - Complexity = 8
                  // Dst: (VFRCZPDrr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src)
/* 35341*/      0, /*End of Scope*/
/* 35342*/    /*Scope*/ 47, /*->35390*/
/* 35343*/      OPC_CheckChild0Integer, 11|128,58/*7435*/, 
/* 35346*/      OPC_Scope, 30, /*->35378*/ // 2 children in Scope
/* 35348*/        OPC_MoveChild1,
/* 35349*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 35352*/        OPC_RecordMemRef,
/* 35353*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 35354*/        OPC_CheckFoldableChainNode,
/* 35355*/        OPC_RecordChild1, // #1 = $src
/* 35356*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 35358*/        OPC_CheckPredicate, 9, // Predicate_load
/* 35360*/        OPC_MoveParent,
/* 35361*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 35363*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 35366*/        OPC_EmitMergeInputChains1_0,
/* 35367*/        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] } 7435:{ *:[iPTR] }, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (VFRCZPDYrm:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/* 35378*/      /*Scope*/ 10, /*->35389*/
/* 35379*/        OPC_RecordChild1, // #0 = $src
/* 35380*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 35382*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFRCZPDYrr), 0,
                      MVT::v4f64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f64] } 7435:{ *:[iPTR] }, VR256:{ *:[v4f64] }:$src) - Complexity = 8
                  // Dst: (VFRCZPDYrr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src)
/* 35389*/      0, /*End of Scope*/
/* 35390*/    /*Scope*/ 47, /*->35438*/
/* 35391*/      OPC_CheckChild0Integer, 69|128,56/*7237*/, 
/* 35394*/      OPC_Scope, 30, /*->35426*/ // 2 children in Scope
/* 35396*/        OPC_MoveChild1,
/* 35397*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 35400*/        OPC_RecordMemRef,
/* 35401*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 35402*/        OPC_CheckFoldableChainNode,
/* 35403*/        OPC_RecordChild1, // #1 = $src
/* 35404*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 35406*/        OPC_CheckPredicate, 9, // Predicate_load
/* 35408*/        OPC_MoveParent,
/* 35409*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasMMX()) && (Subtarget->hasSSE2())
/* 35411*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 35414*/        OPC_EmitMergeInputChains1_0,
/* 35415*/        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] } 7237:{ *:[iPTR] }, (ld:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (MMX_CVTPI2PDirm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/* 35426*/      /*Scope*/ 10, /*->35437*/
/* 35427*/        OPC_RecordChild1, // #0 = $src
/* 35428*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasMMX()) && (Subtarget->hasSSE2())
/* 35430*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_CVTPI2PDirr), 0,
                      MVT::v2f64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f64] } 7237:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src) - Complexity = 8
                  // Dst: (MMX_CVTPI2PDirr:{ *:[v2f64] } VR64:{ *:[x86mmx] }:$src)
/* 35437*/      0, /*End of Scope*/
/* 35438*/    /*Scope*/ 50, /*->35489*/
/* 35439*/      OPC_CheckChild0Integer, 70|128,56/*7238*/, 
/* 35442*/      OPC_RecordChild1, // #0 = $src1
/* 35443*/      OPC_Scope, 31, /*->35476*/ // 2 children in Scope
/* 35445*/        OPC_MoveChild2,
/* 35446*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 35449*/        OPC_RecordMemRef,
/* 35450*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 35451*/        OPC_CheckFoldableChainNode,
/* 35452*/        OPC_RecordChild1, // #2 = $src2
/* 35453*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 35455*/        OPC_CheckPredicate, 9, // Predicate_load
/* 35457*/        OPC_MoveParent,
/* 35458*/        OPC_CheckPatternPredicate, 35, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 35460*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 35463*/        OPC_EmitMergeInputChains1_1,
/* 35464*/        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] } 7238:{ *:[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)
/* 35476*/      /*Scope*/ 11, /*->35488*/
/* 35477*/        OPC_RecordChild2, // #1 = $src2
/* 35478*/        OPC_CheckPatternPredicate, 35, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 35480*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_CVTPI2PSirr), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 7238:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src1, VR64:{ *:[x86mmx] }:$src2) - Complexity = 8
                  // Dst: (MMX_CVTPI2PSirr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR64:{ *:[x86mmx] }:$src2)
/* 35488*/      0, /*End of Scope*/
/* 35489*/    /*Scope*/ 81, /*->35571*/
/* 35490*/      OPC_CheckChild0Integer, 61|128,56/*7229*/, 
/* 35493*/      OPC_RecordChild1, // #0 = $src1
/* 35494*/      OPC_RecordChild2, // #1 = $src
/* 35495*/      OPC_RecordChild3, // #2 = $cc
/* 35496*/      OPC_MoveChild3,
/* 35497*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 35500*/      OPC_MoveParent,
/* 35501*/      OPC_Scope, 21, /*->35524*/ // 4 children in Scope
/* 35503*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/* 35505*/        OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectScalarSSELoad:$src #3 #4 #5 #6 #7 + chain result
/* 35508*/        OPC_EmitMergeInputChains, 1, 8, 
/* 35511*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPSSrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 7229:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src, (timm:{ *:[i8] }):$cc) - Complexity = 29
                  // Dst: (VCMPSSrm_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src, (timm:{ *:[i8] }):$cc)
/* 35524*/      /*Scope*/ 21, /*->35546*/
/* 35525*/        OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/* 35527*/        OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectScalarSSELoad:$src #3 #4 #5 #6 #7 + chain result
/* 35530*/        OPC_EmitMergeInputChains, 1, 8, 
/* 35533*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMPSSrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 7229:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src, (timm:{ *:[i8] }):$cc) - Complexity = 29
                  // Dst: (CMPSSrm_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src, (timm:{ *:[i8] }):$cc)
/* 35546*/      /*Scope*/ 11, /*->35558*/
/* 35547*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/* 35549*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPSSrr_Int), 0,
                      MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 7229:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src, (timm:{ *:[i8] }):$cc) - Complexity = 11
                  // Dst: (VCMPSSrr_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src, (timm:{ *:[i8] }):$cc)
/* 35558*/      /*Scope*/ 11, /*->35570*/
/* 35559*/        OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/* 35561*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMPSSrr_Int), 0,
                      MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 7229:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src, (timm:{ *:[i8] }):$cc) - Complexity = 11
                  // Dst: (CMPSSrr_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src, (timm:{ *:[i8] }):$cc)
/* 35570*/      0, /*End of Scope*/
/* 35571*/    /*Scope*/ 81, /*->35653*/
/* 35572*/      OPC_CheckChild0Integer, 99|128,56/*7267*/, 
/* 35575*/      OPC_RecordChild1, // #0 = $src1
/* 35576*/      OPC_RecordChild2, // #1 = $src
/* 35577*/      OPC_RecordChild3, // #2 = $cc
/* 35578*/      OPC_MoveChild3,
/* 35579*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 35582*/      OPC_MoveParent,
/* 35583*/      OPC_Scope, 21, /*->35606*/ // 4 children in Scope
/* 35585*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/* 35587*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src #3 #4 #5 #6 #7 + chain result
/* 35590*/        OPC_EmitMergeInputChains, 1, 8, 
/* 35593*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPSDrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f64] } 7267:{ *:[iPTR] }, VR128:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src, (timm:{ *:[i8] }):$cc) - Complexity = 29
                  // Dst: (VCMPSDrm_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src, (timm:{ *:[i8] }):$cc)
/* 35606*/      /*Scope*/ 21, /*->35628*/
/* 35607*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 35609*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src #3 #4 #5 #6 #7 + chain result
/* 35612*/        OPC_EmitMergeInputChains, 1, 8, 
/* 35615*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMPSDrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f64] } 7267:{ *:[iPTR] }, VR128:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src, (timm:{ *:[i8] }):$cc) - Complexity = 29
                  // Dst: (CMPSDrm_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src, (timm:{ *:[i8] }):$cc)
/* 35628*/      /*Scope*/ 11, /*->35640*/
/* 35629*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/* 35631*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPSDrr_Int), 0,
                      MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f64] } 7267:{ *:[iPTR] }, VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src, (timm:{ *:[i8] }):$cc) - Complexity = 11
                  // Dst: (VCMPSDrr_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src, (timm:{ *:[i8] }):$cc)
/* 35640*/      /*Scope*/ 11, /*->35652*/
/* 35641*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 35643*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMPSDrr_Int), 0,
                      MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f64] } 7267:{ *:[iPTR] }, VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src, (timm:{ *:[i8] }):$cc) - Complexity = 11
                  // Dst: (CMPSDrr_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src, (timm:{ *:[i8] }):$cc)
/* 35652*/      0, /*End of Scope*/
/* 35653*/    /*Scope*/ 34, /*->35688*/
/* 35654*/      OPC_CheckChild0Integer, 15|128,58/*7439*/, 
/* 35657*/      OPC_RecordChild1, // #0 = $src
/* 35658*/      OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 35660*/      OPC_Scope, 17, /*->35679*/ // 2 children in Scope
/* 35662*/        OPC_CheckComplexPat, /*CP*/2, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/* 35665*/        OPC_EmitMergeInputChains, 1, 6, 
/* 35668*/        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] } 7439:{ *:[iPTR] }, sse_load_f32:{ *:[v4f32] }:$src) - Complexity = 26
                  // Dst: (VFRCZSSrm:{ *:[v4f32] } sse_load_f32:{ *:[v4f32] }:$src)
/* 35679*/      /*Scope*/ 7, /*->35687*/
/* 35680*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFRCZSSrr), 0,
                      MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 7439:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src) - Complexity = 8
                  // Dst: (VFRCZSSrr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src)
/* 35687*/      0, /*End of Scope*/
/* 35688*/    /*Scope*/ 34, /*->35723*/
/* 35689*/      OPC_CheckChild0Integer, 14|128,58/*7438*/, 
/* 35692*/      OPC_RecordChild1, // #0 = $src
/* 35693*/      OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 35695*/      OPC_Scope, 17, /*->35714*/ // 2 children in Scope
/* 35697*/        OPC_CheckComplexPat, /*CP*/3, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/* 35700*/        OPC_EmitMergeInputChains, 1, 6, 
/* 35703*/        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] } 7438:{ *:[iPTR] }, sse_load_f64:{ *:[v2f64] }:$src) - Complexity = 26
                  // Dst: (VFRCZSDrm:{ *:[v2f64] } sse_load_f64:{ *:[v2f64] }:$src)
/* 35714*/      /*Scope*/ 7, /*->35722*/
/* 35715*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFRCZSDrr), 0,
                      MVT::v2f64, 1/*#Ops*/, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v2f64] } 7438:{ *:[iPTR] }, VR128:{ *:[v2f64] }:$src) - Complexity = 8
                  // Dst: (VFRCZSDrr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src)
/* 35722*/      0, /*End of Scope*/
/* 35723*/    /*Scope*/ 82, /*->35806*/
/* 35724*/      OPC_CheckChild0Integer, 88|128,56/*7256*/, 
/* 35727*/      OPC_RecordChild1, // #0 = $src2
/* 35728*/      OPC_Scope, 26, /*->35756*/ // 4 children in Scope
/* 35730*/        OPC_CheckPatternPredicate, 55, // (shouldOptForSize(MF)) && (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/* 35732*/        OPC_CheckComplexPat, /*CP*/2, /*#*/0, // selectScalarSSELoad:$src2 #1 #2 #3 #4 #5 + chain result
/* 35735*/        OPC_EmitMergeInputChains, 1, 6, 
/* 35738*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4f32, 0/*#Ops*/,  // Results = #7
/* 35744*/        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] } 7256:{ *:[iPTR] }, sse_load_f32:{ *:[v4f32] }:$src2) - Complexity = 26
                  // Dst: (RSQRTSSm_Int:{ *:[v4f32] } (IMPLICIT_DEF:{ *:[v4f32] }), addr:{ *:[v4f32] }:$src2)
/* 35756*/      /*Scope*/ 26, /*->35783*/
/* 35757*/        OPC_CheckPatternPredicate, 56, // (Subtarget->hasAVX()) && (shouldOptForSize(MF))
/* 35759*/        OPC_CheckComplexPat, /*CP*/2, /*#*/0, // selectScalarSSELoad:$src2 #1 #2 #3 #4 #5 + chain result
/* 35762*/        OPC_EmitMergeInputChains, 1, 6, 
/* 35765*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4f32, 0/*#Ops*/,  // Results = #7
/* 35771*/        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] } 7256:{ *:[iPTR] }, sse_load_f32:{ *:[v4f32] }:$src2) - Complexity = 26
                  // Dst: (VRSQRTSSm_Int:{ *:[v4f32] } (IMPLICIT_DEF:{ *:[v4f32] }), addr:{ *:[v4f32] }:$src2)
/* 35783*/      /*Scope*/ 10, /*->35794*/
/* 35784*/        OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/* 35786*/        OPC_MorphNodeTo1, TARGET_VAL(X86::RSQRTSSr_Int), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 7256:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src) - Complexity = 8
                  // Dst: (RSQRTSSr_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src, VR128:{ *:[v4f32] }:$src)
/* 35794*/      /*Scope*/ 10, /*->35805*/
/* 35795*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/* 35797*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRTSSr_Int), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 7256:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src) - Complexity = 8
                  // Dst: (VRSQRTSSr_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src, VR128:{ *:[v4f32] }:$src)
/* 35805*/      0, /*End of Scope*/
/* 35806*/    /*Scope*/ 82, /*->35889*/
/* 35807*/      OPC_CheckChild0Integer, 86|128,56/*7254*/, 
/* 35810*/      OPC_RecordChild1, // #0 = $src2
/* 35811*/      OPC_Scope, 26, /*->35839*/ // 4 children in Scope
/* 35813*/        OPC_CheckPatternPredicate, 55, // (shouldOptForSize(MF)) && (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/* 35815*/        OPC_CheckComplexPat, /*CP*/2, /*#*/0, // selectScalarSSELoad:$src2 #1 #2 #3 #4 #5 + chain result
/* 35818*/        OPC_EmitMergeInputChains, 1, 6, 
/* 35821*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4f32, 0/*#Ops*/,  // Results = #7
/* 35827*/        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] } 7254:{ *:[iPTR] }, sse_load_f32:{ *:[v4f32] }:$src2) - Complexity = 26
                  // Dst: (RCPSSm_Int:{ *:[v4f32] } (IMPLICIT_DEF:{ *:[v4f32] }), addr:{ *:[v4f32] }:$src2)
/* 35839*/      /*Scope*/ 26, /*->35866*/
/* 35840*/        OPC_CheckPatternPredicate, 56, // (Subtarget->hasAVX()) && (shouldOptForSize(MF))
/* 35842*/        OPC_CheckComplexPat, /*CP*/2, /*#*/0, // selectScalarSSELoad:$src2 #1 #2 #3 #4 #5 + chain result
/* 35845*/        OPC_EmitMergeInputChains, 1, 6, 
/* 35848*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4f32, 0/*#Ops*/,  // Results = #7
/* 35854*/        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] } 7254:{ *:[iPTR] }, sse_load_f32:{ *:[v4f32] }:$src2) - Complexity = 26
                  // Dst: (VRCPSSm_Int:{ *:[v4f32] } (IMPLICIT_DEF:{ *:[v4f32] }), addr:{ *:[v4f32] }:$src2)
/* 35866*/      /*Scope*/ 10, /*->35877*/
/* 35867*/        OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/* 35869*/        OPC_MorphNodeTo1, TARGET_VAL(X86::RCPSSr_Int), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 7254:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src) - Complexity = 8
                  // Dst: (RCPSSr_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src, VR128:{ *:[v4f32] }:$src)
/* 35877*/      /*Scope*/ 10, /*->35888*/
/* 35878*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/* 35880*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRCPSSr_Int), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 0, 
                  // Src: (intrinsic_wo_chain:{ *:[v4f32] } 7254:{ *:[iPTR] }, VR128:{ *:[v4f32] }:$src) - Complexity = 8
                  // Dst: (VRCPSSr_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src, VR128:{ *:[v4f32] }:$src)
/* 35888*/      0, /*End of Scope*/
/* 35889*/    0, /*End of Scope*/
/* 35890*/  /*SwitchOpcode*/ 50|128,1/*178*/, TARGET_VAL(ISD::PREFETCH),// ->36072
/* 35894*/    OPC_RecordMemRef,
/* 35895*/    OPC_RecordNode, // #0 = 'prefetch' chained node
/* 35896*/    OPC_RecordChild1, // #1 = $addr
/* 35897*/    OPC_Scope, 54, /*->35953*/ // 2 children in Scope
/* 35899*/      OPC_CheckChild2Integer, 1, 
/* 35901*/      OPC_CheckChild2Type, MVT::i32,
/* 35903*/      OPC_MoveChild3,
/* 35904*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 35907*/      OPC_Scope, 21, /*->35930*/ // 2 children in Scope
/* 35909*/        OPC_CheckPredicate, 40, // Predicate_PrefetchWLevel
/* 35911*/        OPC_MoveParent,
/* 35912*/        OPC_CheckChild4Integer, 1, 
/* 35914*/        OPC_CheckPatternPredicate, 57, // (Subtarget->hasPRFCHW())
/* 35916*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$addr #2 #3 #4 #5 #6
/* 35919*/        OPC_EmitMergeInputChains1_0,
/* 35920*/        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)
/* 35930*/      /*Scope*/ 21, /*->35952*/
/* 35931*/        OPC_CheckPredicate, 41, // Predicate_PrefetchWT1Level
/* 35933*/        OPC_MoveParent,
/* 35934*/        OPC_CheckChild4Integer, 1, 
/* 35936*/        OPC_CheckPatternPredicate, 58, // (Subtarget->hasPREFETCHWT1())
/* 35938*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$addr #2 #3 #4 #5 #6
/* 35941*/        OPC_EmitMergeInputChains1_0,
/* 35942*/        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)
/* 35952*/      0, /*End of Scope*/
/* 35953*/    /*Scope*/ 117, /*->36071*/
/* 35954*/      OPC_MoveChild2,
/* 35955*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 35958*/      OPC_CheckType, MVT::i32,
/* 35960*/      OPC_MoveParent,
/* 35961*/      OPC_Scope, 20, /*->35983*/ // 5 children in Scope
/* 35963*/        OPC_CheckChild3Integer, 3, 
/* 35965*/        OPC_CheckChild4Integer, 1, 
/* 35967*/        OPC_CheckPatternPredicate, 59, // (Subtarget->hasSSEPrefetch())
/* 35969*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 35972*/        OPC_EmitMergeInputChains1_0,
/* 35973*/        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)
/* 35983*/      /*Scope*/ 20, /*->36004*/
/* 35984*/        OPC_CheckChild3Integer, 2, 
/* 35986*/        OPC_CheckChild4Integer, 1, 
/* 35988*/        OPC_CheckPatternPredicate, 59, // (Subtarget->hasSSEPrefetch())
/* 35990*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 35993*/        OPC_EmitMergeInputChains1_0,
/* 35994*/        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)
/* 36004*/      /*Scope*/ 20, /*->36025*/
/* 36005*/        OPC_CheckChild3Integer, 1, 
/* 36007*/        OPC_CheckChild4Integer, 1, 
/* 36009*/        OPC_CheckPatternPredicate, 59, // (Subtarget->hasSSEPrefetch())
/* 36011*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 36014*/        OPC_EmitMergeInputChains1_0,
/* 36015*/        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)
/* 36025*/      /*Scope*/ 20, /*->36046*/
/* 36026*/        OPC_CheckChild3Integer, 0, 
/* 36028*/        OPC_CheckChild4Integer, 1, 
/* 36030*/        OPC_CheckPatternPredicate, 59, // (Subtarget->hasSSEPrefetch())
/* 36032*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 36035*/        OPC_EmitMergeInputChains1_0,
/* 36036*/        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)
/* 36046*/      /*Scope*/ 23, /*->36070*/
/* 36047*/        OPC_MoveChild3,
/* 36048*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 36051*/        OPC_MoveParent,
/* 36052*/        OPC_CheckChild4Integer, 1, 
/* 36054*/        OPC_CheckPatternPredicate, 60, // (Subtarget->has3DNow()) && (!Subtarget->hasSSEPrefetch())
/* 36056*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$addr #2 #3 #4 #5 #6
/* 36059*/        OPC_EmitMergeInputChains1_0,
/* 36060*/        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)
/* 36070*/      0, /*End of Scope*/
/* 36071*/    0, /*End of Scope*/
/* 36072*/  /*SwitchOpcode*/ 113|128,14/*1905*/, TARGET_VAL(ISD::INTRINSIC_VOID),// ->37981
/* 36076*/    OPC_RecordNode, // #0 = 'intrinsic_void' chained node
/* 36077*/    OPC_Scope, 66, /*->36145*/ // 75 children in Scope
/* 36079*/      OPC_CheckChild1Integer, 76|128,55/*7116*/, 
/* 36082*/      OPC_RecordChild2, // #1 = $src0
/* 36083*/      OPC_Scope, 40, /*->36125*/ // 2 children in Scope
/* 36085*/        OPC_MoveChild3,
/* 36086*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 36089*/        OPC_RecordMemRef,
/* 36090*/        OPC_RecordNode, // #2 = 'ld' chained node
/* 36091*/        OPC_CheckFoldableChainNode,
/* 36092*/        OPC_RecordChild1, // #3 = $src1
/* 36093*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 36095*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 36097*/        OPC_MoveParent,
/* 36098*/        OPC_RecordChild4, // #4 = $cntl
/* 36099*/        OPC_MoveChild4,
/* 36100*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 36103*/        OPC_MoveParent,
/* 36104*/        OPC_CheckPatternPredicate, 61, // (Subtarget->hasLWP())
/* 36106*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src1 #5 #6 #7 #8 #9
/* 36109*/        OPC_EmitMergeInputChains, 2, 0, 2, 
/* 36113*/        OPC_MorphNodeTo0, TARGET_VAL(X86::LWPVAL32rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      7/*#Ops*/, 1, 5, 6, 7, 8, 9, 4, 
                  // Src: (intrinsic_void 7116:{ *:[iPTR] }, GR32:{ *:[i32] }:$src0, (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, (timm:{ *:[i32] }):$cntl) - Complexity = 33
                  // Dst: (LWPVAL32rmi GR32:{ *:[i32] }:$src0, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$cntl)
/* 36125*/      /*Scope*/ 18, /*->36144*/
/* 36126*/        OPC_RecordChild3, // #2 = $src1
/* 36127*/        OPC_RecordChild4, // #3 = $cntl
/* 36128*/        OPC_MoveChild4,
/* 36129*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 36132*/        OPC_MoveParent,
/* 36133*/        OPC_CheckPatternPredicate, 61, // (Subtarget->hasLWP())
/* 36135*/        OPC_EmitMergeInputChains1_0,
/* 36136*/        OPC_MorphNodeTo0, TARGET_VAL(X86::LWPVAL32rri), 0|OPFL_Chain,
                      3/*#Ops*/, 1, 2, 3, 
                  // Src: (intrinsic_void 7116:{ *:[iPTR] }, GR32:{ *:[i32] }:$src0, GR32:{ *:[i32] }:$src1, (timm:{ *:[i32] }):$cntl) - Complexity = 11
                  // Dst: (LWPVAL32rri GR32:{ *:[i32] }:$src0, GR32:{ *:[i32] }:$src1, (timm:{ *:[i32] }):$cntl)
/* 36144*/      0, /*End of Scope*/
/* 36145*/    /*Scope*/ 66, /*->36212*/
/* 36146*/      OPC_CheckChild1Integer, 77|128,55/*7117*/, 
/* 36149*/      OPC_RecordChild2, // #1 = $src0
/* 36150*/      OPC_Scope, 40, /*->36192*/ // 2 children in Scope
/* 36152*/        OPC_MoveChild3,
/* 36153*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 36156*/        OPC_RecordMemRef,
/* 36157*/        OPC_RecordNode, // #2 = 'ld' chained node
/* 36158*/        OPC_CheckFoldableChainNode,
/* 36159*/        OPC_RecordChild1, // #3 = $src1
/* 36160*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 36162*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 36164*/        OPC_MoveParent,
/* 36165*/        OPC_RecordChild4, // #4 = $cntl
/* 36166*/        OPC_MoveChild4,
/* 36167*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 36170*/        OPC_MoveParent,
/* 36171*/        OPC_CheckPatternPredicate, 61, // (Subtarget->hasLWP())
/* 36173*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src1 #5 #6 #7 #8 #9
/* 36176*/        OPC_EmitMergeInputChains, 2, 0, 2, 
/* 36180*/        OPC_MorphNodeTo0, TARGET_VAL(X86::LWPVAL64rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      7/*#Ops*/, 1, 5, 6, 7, 8, 9, 4, 
                  // Src: (intrinsic_void 7117:{ *:[iPTR] }, GR64:{ *:[i64] }:$src0, (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, (timm:{ *:[i32] }):$cntl) - Complexity = 33
                  // Dst: (LWPVAL64rmi GR64:{ *:[i64] }:$src0, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$cntl)
/* 36192*/      /*Scope*/ 18, /*->36211*/
/* 36193*/        OPC_RecordChild3, // #2 = $src1
/* 36194*/        OPC_RecordChild4, // #3 = $cntl
/* 36195*/        OPC_MoveChild4,
/* 36196*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 36199*/        OPC_MoveParent,
/* 36200*/        OPC_CheckPatternPredicate, 61, // (Subtarget->hasLWP())
/* 36202*/        OPC_EmitMergeInputChains1_0,
/* 36203*/        OPC_MorphNodeTo0, TARGET_VAL(X86::LWPVAL64rri), 0|OPFL_Chain,
                      3/*#Ops*/, 1, 2, 3, 
                  // Src: (intrinsic_void 7117:{ *:[iPTR] }, GR64:{ *:[i64] }:$src0, GR32:{ *:[i32] }:$src1, (timm:{ *:[i32] }):$cntl) - Complexity = 11
                  // Dst: (LWPVAL64rri GR64:{ *:[i64] }:$src0, GR32:{ *:[i32] }:$src1, (timm:{ *:[i32] }):$cntl)
/* 36211*/      0, /*End of Scope*/
/* 36212*/    /*Scope*/ 49, /*->36262*/
/* 36213*/      OPC_CheckChild1Integer, 27|128,56/*7195*/, 
/* 36216*/      OPC_Scope, 32, /*->36250*/ // 2 children in Scope
/* 36218*/        OPC_MoveChild2,
/* 36219*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 36222*/        OPC_RecordMemRef,
/* 36223*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 36224*/        OPC_CheckFoldableChainNode,
/* 36225*/        OPC_RecordChild1, // #2 = $dst
/* 36226*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 36228*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 36230*/        OPC_MoveParent,
/* 36231*/        OPC_CheckPatternPredicate, 62, // (Subtarget->hasPTWRITE())
/* 36233*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 36236*/        OPC_EmitMergeInputChains, 2, 0, 1, 
/* 36240*/        OPC_MorphNodeTo0, TARGET_VAL(X86::PTWRITEm), 0|OPFL_Chain|OPFL_MemRefs,
                      5/*#Ops*/, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_void 7195:{ *:[iPTR] }, (ld:{ *:[i32] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>) - Complexity = 30
                  // Dst: (PTWRITEm addr:{ *:[iPTR] }:$dst)
/* 36250*/      /*Scope*/ 10, /*->36261*/
/* 36251*/        OPC_RecordChild2, // #1 = $dst
/* 36252*/        OPC_CheckPatternPredicate, 62, // (Subtarget->hasPTWRITE())
/* 36254*/        OPC_EmitMergeInputChains1_0,
/* 36255*/        OPC_MorphNodeTo0, TARGET_VAL(X86::PTWRITEr), 0|OPFL_Chain,
                      1/*#Ops*/, 1, 
                  // Src: (intrinsic_void 7195:{ *:[iPTR] }, GR32:{ *:[i32] }:$dst) - Complexity = 8
                  // Dst: (PTWRITEr GR32:{ *:[i32] }:$dst)
/* 36261*/      0, /*End of Scope*/
/* 36262*/    /*Scope*/ 49, /*->36312*/
/* 36263*/      OPC_CheckChild1Integer, 28|128,56/*7196*/, 
/* 36266*/      OPC_Scope, 32, /*->36300*/ // 2 children in Scope
/* 36268*/        OPC_MoveChild2,
/* 36269*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 36272*/        OPC_RecordMemRef,
/* 36273*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 36274*/        OPC_CheckFoldableChainNode,
/* 36275*/        OPC_RecordChild1, // #2 = $dst
/* 36276*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 36278*/        OPC_CheckPredicate, 9, // Predicate_load
/* 36280*/        OPC_MoveParent,
/* 36281*/        OPC_CheckPatternPredicate, 63, // (Subtarget->hasPTWRITE()) && (Subtarget->is64Bit())
/* 36283*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 36286*/        OPC_EmitMergeInputChains, 2, 0, 1, 
/* 36290*/        OPC_MorphNodeTo0, TARGET_VAL(X86::PTWRITE64m), 0|OPFL_Chain|OPFL_MemRefs,
                      5/*#Ops*/, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_void 7196:{ *:[iPTR] }, (ld:{ *:[i64] } addr:{ *:[iPTR] }:$dst)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 30
                  // Dst: (PTWRITE64m addr:{ *:[iPTR] }:$dst)
/* 36300*/      /*Scope*/ 10, /*->36311*/
/* 36301*/        OPC_RecordChild2, // #1 = $dst
/* 36302*/        OPC_CheckPatternPredicate, 63, // (Subtarget->hasPTWRITE()) && (Subtarget->is64Bit())
/* 36304*/        OPC_EmitMergeInputChains1_0,
/* 36305*/        OPC_MorphNodeTo0, TARGET_VAL(X86::PTWRITE64r), 0|OPFL_Chain,
                      1/*#Ops*/, 1, 
                  // Src: (intrinsic_void 7196:{ *:[iPTR] }, GR64:{ *:[i64] }:$dst) - Complexity = 8
                  // Dst: (PTWRITE64r GR64:{ *:[i64] }:$dst)
/* 36311*/      0, /*End of Scope*/
/* 36312*/    /*Scope*/ 22, /*->36335*/
/* 36313*/      OPC_CheckChild1Integer, 57|128,55/*7097*/, 
/* 36316*/      OPC_RecordChild2, // #1 = $dst
/* 36317*/      OPC_RecordChild3, // #2 = $src
/* 36318*/      OPC_CheckPatternPredicate, 64, // (Subtarget->hasMOVDIRI())
/* 36320*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 36323*/      OPC_EmitMergeInputChains1_0,
/* 36324*/      OPC_MorphNodeTo0, TARGET_VAL(X86::MOVDIRI32), 0|OPFL_Chain,
                    6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                // Src: (intrinsic_void 7097:{ *:[iPTR] }, addr:{ *:[iPTR] }:$dst, GR32:{ *:[i32] }:$src) - Complexity = 26
                // Dst: (MOVDIRI32 addr:{ *:[iPTR] }:$dst, GR32:{ *:[i32] }:$src)
/* 36335*/    /*Scope*/ 22, /*->36358*/
/* 36336*/      OPC_CheckChild1Integer, 58|128,55/*7098*/, 
/* 36339*/      OPC_RecordChild2, // #1 = $dst
/* 36340*/      OPC_RecordChild3, // #2 = $src
/* 36341*/      OPC_CheckPatternPredicate, 65, // (Subtarget->hasMOVDIRI()) && (Subtarget->is64Bit())
/* 36343*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 36346*/      OPC_EmitMergeInputChains1_0,
/* 36347*/      OPC_MorphNodeTo0, TARGET_VAL(X86::MOVDIRI64), 0|OPFL_Chain,
                    6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                // Src: (intrinsic_void 7098:{ *:[iPTR] }, addr:{ *:[iPTR] }:$dst, GR64:{ *:[i64] }:$src) - Complexity = 26
                // Dst: (MOVDIRI64 addr:{ *:[iPTR] }:$dst, GR64:{ *:[i64] }:$src)
/* 36358*/    /*Scope*/ 48, /*->36407*/
/* 36359*/      OPC_CheckChild1Integer, 22|128,56/*7190*/, 
/* 36362*/      OPC_RecordChild2, // #1 = $dst
/* 36363*/      OPC_Scope, 20, /*->36385*/ // 2 children in Scope
/* 36365*/        OPC_CheckChild2Type, MVT::i32,
/* 36367*/        OPC_RecordChild3, // #2 = $src
/* 36368*/        OPC_CheckPatternPredicate, 66, // (Subtarget->hasMOVDIR64B())
/* 36370*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/* 36373*/        OPC_EmitMergeInputChains1_0,
/* 36374*/        OPC_MorphNodeTo0, TARGET_VAL(X86::MOVDIR64B32), 0|OPFL_Chain,
                      6/*#Ops*/, 1, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_void 7190:{ *:[iPTR] }, GR32:{ *:[i32] }:$dst, addr:{ *:[iPTR] }:$src) - Complexity = 26
                  // Dst: (MOVDIR64B32 GR32:{ *:[i32] }:$dst, addr:{ *:[iPTR] }:$src)
/* 36385*/      /*Scope*/ 20, /*->36406*/
/* 36386*/        OPC_CheckChild2Type, MVT::i64,
/* 36388*/        OPC_RecordChild3, // #2 = $src
/* 36389*/        OPC_CheckPatternPredicate, 67, // (Subtarget->hasMOVDIR64B()) && (Subtarget->is64Bit())
/* 36391*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/* 36394*/        OPC_EmitMergeInputChains1_0,
/* 36395*/        OPC_MorphNodeTo0, TARGET_VAL(X86::MOVDIR64B64), 0|OPFL_Chain,
                      6/*#Ops*/, 1, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_void 7190:{ *:[iPTR] }, GR64:{ *:[i64] }:$dst, addr:{ *:[iPTR] }:$src) - Complexity = 26
                  // Dst: (MOVDIR64B64 GR64:{ *:[i64] }:$dst, addr:{ *:[iPTR] }:$src)
/* 36406*/      0, /*End of Scope*/
/* 36407*/    /*Scope*/ 20, /*->36428*/
/* 36408*/      OPC_CheckChild1Integer, 53|128,55/*7093*/, 
/* 36411*/      OPC_RecordChild2, // #1 = $src
/* 36412*/      OPC_CheckPatternPredicate, 68, // (Subtarget->hasCLFLUSHOPT())
/* 36414*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 36417*/      OPC_EmitMergeInputChains1_0,
/* 36418*/      OPC_MorphNodeTo0, TARGET_VAL(X86::CLFLUSHOPT), 0|OPFL_Chain,
                    5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_void 7093:{ *:[iPTR] }, addr:{ *:[iPTR] }:$src) - Complexity = 26
                // Dst: (CLFLUSHOPT addr:{ *:[iPTR] }:$src)
/* 36428*/    /*Scope*/ 20, /*->36449*/
/* 36429*/      OPC_CheckChild1Integer, 55|128,55/*7095*/, 
/* 36432*/      OPC_RecordChild2, // #1 = $src
/* 36433*/      OPC_CheckPatternPredicate, 69, // (Subtarget->hasCLWB())
/* 36435*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 36438*/      OPC_EmitMergeInputChains1_0,
/* 36439*/      OPC_MorphNodeTo0, TARGET_VAL(X86::CLWB), 0|OPFL_Chain,
                    5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_void 7095:{ *:[iPTR] }, addr:{ *:[iPTR] }:$src) - Complexity = 26
                // Dst: (CLWB addr:{ *:[iPTR] }:$src)
/* 36449*/    /*Scope*/ 20, /*->36470*/
/* 36450*/      OPC_CheckChild1Integer, 52|128,55/*7092*/, 
/* 36453*/      OPC_RecordChild2, // #1 = $src
/* 36454*/      OPC_CheckPatternPredicate, 70, // (Subtarget->hasCLDEMOTE())
/* 36456*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 36459*/      OPC_EmitMergeInputChains1_0,
/* 36460*/      OPC_MorphNodeTo0, TARGET_VAL(X86::CLDEMOTE), 0|OPFL_Chain,
                    5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_void 7092:{ *:[iPTR] }, addr:{ *:[iPTR] }:$src) - Complexity = 26
                // Dst: (CLDEMOTE addr:{ *:[iPTR] }:$src)
/* 36470*/    /*Scope*/ 20, /*->36491*/
/* 36471*/      OPC_CheckChild1Integer, 67|128,55/*7107*/, 
/* 36474*/      OPC_RecordChild2, // #1 = $dst
/* 36475*/      OPC_CheckPatternPredicate, 71, // (Subtarget->hasFXSR())
/* 36477*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #2 #3 #4 #5 #6
/* 36480*/      OPC_EmitMergeInputChains1_0,
/* 36481*/      OPC_MorphNodeTo0, TARGET_VAL(X86::FXSAVE), 0|OPFL_Chain,
                    5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_void 7107:{ *:[iPTR] }, addr:{ *:[iPTR] }:$dst) - Complexity = 26
                // Dst: (FXSAVE addr:{ *:[iPTR] }:$dst)
/* 36491*/    /*Scope*/ 20, /*->36512*/
/* 36492*/      OPC_CheckChild1Integer, 68|128,55/*7108*/, 
/* 36495*/      OPC_RecordChild2, // #1 = $dst
/* 36496*/      OPC_CheckPatternPredicate, 72, // (Subtarget->hasFXSR()) && (Subtarget->is64Bit())
/* 36498*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #2 #3 #4 #5 #6
/* 36501*/      OPC_EmitMergeInputChains1_0,
/* 36502*/      OPC_MorphNodeTo0, TARGET_VAL(X86::FXSAVE64), 0|OPFL_Chain,
                    5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_void 7108:{ *:[iPTR] }, addr:{ *:[iPTR] }:$dst) - Complexity = 26
                // Dst: (FXSAVE64 addr:{ *:[iPTR] }:$dst)
/* 36512*/    /*Scope*/ 21, /*->36534*/
/* 36513*/      OPC_CheckChild1Integer, 65|128,55/*7105*/, 
/* 36516*/      OPC_RecordChild2, // #1 = $src
/* 36517*/      OPC_CheckPatternPredicate, 71, // (Subtarget->hasFXSR())
/* 36519*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 36522*/      OPC_EmitMergeInputChains1_0,
/* 36523*/      OPC_MorphNodeTo1, TARGET_VAL(X86::FXRSTOR), 0|OPFL_Chain,
                    MVT::i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_void 7105:{ *:[iPTR] }, addr:{ *:[iPTR] }:$src) - Complexity = 26
                // Dst: (FXRSTOR:{ *:[i16] } addr:{ *:[iPTR] }:$src)
/* 36534*/    /*Scope*/ 21, /*->36556*/
/* 36535*/      OPC_CheckChild1Integer, 66|128,55/*7106*/, 
/* 36538*/      OPC_RecordChild2, // #1 = $src
/* 36539*/      OPC_CheckPatternPredicate, 72, // (Subtarget->hasFXSR()) && (Subtarget->is64Bit())
/* 36541*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 36544*/      OPC_EmitMergeInputChains1_0,
/* 36545*/      OPC_MorphNodeTo1, TARGET_VAL(X86::FXRSTOR64), 0|OPFL_Chain,
                    MVT::i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_void 7106:{ *:[iPTR] }, addr:{ *:[iPTR] }:$src) - Complexity = 26
                // Dst: (FXRSTOR64:{ *:[i16] } addr:{ *:[iPTR] }:$src)
/* 36556*/    /*Scope*/ 20, /*->36577*/
/* 36557*/      OPC_CheckChild1Integer, 97|128,56/*7265*/, 
/* 36560*/      OPC_RecordChild2, // #1 = $src
/* 36561*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasSSE2())
/* 36563*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 36566*/      OPC_EmitMergeInputChains1_0,
/* 36567*/      OPC_MorphNodeTo0, TARGET_VAL(X86::CLFLUSH), 0|OPFL_Chain,
                    5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_void 7265:{ *:[iPTR] }, addr:{ *:[iPTR] }:$src) - Complexity = 26
                // Dst: (CLFLUSH addr:{ *:[iPTR] }:$src)
/* 36577*/    /*Scope*/ 38, /*->36616*/
/* 36578*/      OPC_CheckChild1Integer, 78|128,56/*7246*/, 
/* 36581*/      OPC_RecordChild2, // #1 = $src
/* 36582*/      OPC_Scope, 16, /*->36600*/ // 2 children in Scope
/* 36584*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/* 36586*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 36589*/        OPC_EmitMergeInputChains1_0,
/* 36590*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VLDMXCSR), 0|OPFL_Chain,
                      5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_void 7246:{ *:[iPTR] }, addr:{ *:[iPTR] }:$src) - Complexity = 26
                  // Dst: (VLDMXCSR addr:{ *:[iPTR] }:$src)
/* 36600*/      /*Scope*/ 14, /*->36615*/
/* 36601*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 36604*/        OPC_EmitMergeInputChains1_0,
/* 36605*/        OPC_MorphNodeTo0, TARGET_VAL(X86::LDMXCSR), 0|OPFL_Chain,
                      5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_void 7246:{ *:[iPTR] }, addr:{ *:[iPTR] }:$src) - Complexity = 26
                  // Dst: (LDMXCSR addr:{ *:[iPTR] }:$src)
/* 36615*/      0, /*End of Scope*/
/* 36616*/    /*Scope*/ 38, /*->36655*/
/* 36617*/      OPC_CheckChild1Integer, 90|128,56/*7258*/, 
/* 36620*/      OPC_RecordChild2, // #1 = $dst
/* 36621*/      OPC_Scope, 16, /*->36639*/ // 2 children in Scope
/* 36623*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/* 36625*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #2 #3 #4 #5 #6
/* 36628*/        OPC_EmitMergeInputChains1_0,
/* 36629*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VSTMXCSR), 0|OPFL_Chain,
                      5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_void 7258:{ *:[iPTR] }, addr:{ *:[iPTR] }:$dst) - Complexity = 26
                  // Dst: (VSTMXCSR addr:{ *:[iPTR] }:$dst)
/* 36639*/      /*Scope*/ 14, /*->36654*/
/* 36640*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #2 #3 #4 #5 #6
/* 36643*/        OPC_EmitMergeInputChains1_0,
/* 36644*/        OPC_MorphNodeTo0, TARGET_VAL(X86::STMXCSR), 0|OPFL_Chain,
                      5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_void 7258:{ *:[iPTR] }, addr:{ *:[iPTR] }:$dst) - Complexity = 26
                  // Dst: (STMXCSR addr:{ *:[iPTR] }:$dst)
/* 36654*/      0, /*End of Scope*/
/* 36655*/    /*Scope*/ 24, /*->36680*/
/* 36656*/      OPC_CheckChild1Integer, 113|128,49/*6385*/, 
/* 36659*/      OPC_RecordChild2, // #1 = $dst
/* 36660*/      OPC_RecordChild3, // #2 = $src1
/* 36661*/      OPC_RecordChild4, // #3 = $src2
/* 36662*/      OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/* 36664*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 36667*/      OPC_EmitMergeInputChains1_0,
/* 36668*/      OPC_MorphNodeTo0, TARGET_VAL(X86::VMASKMOVPSmr), 0|OPFL_Chain,
                    7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                // Src: (intrinsic_void 6385:{ *:[iPTR] }, addr:{ *:[iPTR] }:$dst, VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4f32] }:$src2) - Complexity = 26
                // Dst: (VMASKMOVPSmr addr:{ *:[iPTR] }:$dst, VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4f32] }:$src2)
/* 36680*/    /*Scope*/ 24, /*->36705*/
/* 36681*/      OPC_CheckChild1Integer, 114|128,49/*6386*/, 
/* 36684*/      OPC_RecordChild2, // #1 = $dst
/* 36685*/      OPC_RecordChild3, // #2 = $src1
/* 36686*/      OPC_RecordChild4, // #3 = $src2
/* 36687*/      OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/* 36689*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 36692*/      OPC_EmitMergeInputChains1_0,
/* 36693*/      OPC_MorphNodeTo0, TARGET_VAL(X86::VMASKMOVPSYmr), 0|OPFL_Chain,
                    7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                // Src: (intrinsic_void 6386:{ *:[iPTR] }, addr:{ *:[iPTR] }:$dst, VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8f32] }:$src2) - Complexity = 26
                // Dst: (VMASKMOVPSYmr addr:{ *:[iPTR] }:$dst, VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8f32] }:$src2)
/* 36705*/    /*Scope*/ 24, /*->36730*/
/* 36706*/      OPC_CheckChild1Integer, 111|128,49/*6383*/, 
/* 36709*/      OPC_RecordChild2, // #1 = $dst
/* 36710*/      OPC_RecordChild3, // #2 = $src1
/* 36711*/      OPC_RecordChild4, // #3 = $src2
/* 36712*/      OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/* 36714*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 36717*/      OPC_EmitMergeInputChains1_0,
/* 36718*/      OPC_MorphNodeTo0, TARGET_VAL(X86::VMASKMOVPDmr), 0|OPFL_Chain,
                    7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                // Src: (intrinsic_void 6383:{ *:[iPTR] }, addr:{ *:[iPTR] }:$dst, VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2f64] }:$src2) - Complexity = 26
                // Dst: (VMASKMOVPDmr addr:{ *:[iPTR] }:$dst, VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2f64] }:$src2)
/* 36730*/    /*Scope*/ 24, /*->36755*/
/* 36731*/      OPC_CheckChild1Integer, 112|128,49/*6384*/, 
/* 36734*/      OPC_RecordChild2, // #1 = $dst
/* 36735*/      OPC_RecordChild3, // #2 = $src1
/* 36736*/      OPC_RecordChild4, // #3 = $src2
/* 36737*/      OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/* 36739*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 36742*/      OPC_EmitMergeInputChains1_0,
/* 36743*/      OPC_MorphNodeTo0, TARGET_VAL(X86::VMASKMOVPDYmr), 0|OPFL_Chain,
                    7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                // Src: (intrinsic_void 6384:{ *:[iPTR] }, addr:{ *:[iPTR] }:$dst, VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4f64] }:$src2) - Complexity = 26
                // Dst: (VMASKMOVPDYmr addr:{ *:[iPTR] }:$dst, VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4f64] }:$src2)
/* 36755*/    /*Scope*/ 24, /*->36780*/
/* 36756*/      OPC_CheckChild1Integer, 38|128,50/*6438*/, 
/* 36759*/      OPC_RecordChild2, // #1 = $dst
/* 36760*/      OPC_RecordChild3, // #2 = $src1
/* 36761*/      OPC_RecordChild4, // #3 = $src2
/* 36762*/      OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/* 36764*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 36767*/      OPC_EmitMergeInputChains1_0,
/* 36768*/      OPC_MorphNodeTo0, TARGET_VAL(X86::VPMASKMOVDmr), 0|OPFL_Chain,
                    7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                // Src: (intrinsic_void 6438:{ *:[iPTR] }, addr:{ *:[iPTR] }:$dst, VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 26
                // Dst: (VPMASKMOVDmr addr:{ *:[iPTR] }:$dst, VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/* 36780*/    /*Scope*/ 24, /*->36805*/
/* 36781*/      OPC_CheckChild1Integer, 39|128,50/*6439*/, 
/* 36784*/      OPC_RecordChild2, // #1 = $dst
/* 36785*/      OPC_RecordChild3, // #2 = $src1
/* 36786*/      OPC_RecordChild4, // #3 = $src2
/* 36787*/      OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/* 36789*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 36792*/      OPC_EmitMergeInputChains1_0,
/* 36793*/      OPC_MorphNodeTo0, TARGET_VAL(X86::VPMASKMOVDYmr), 0|OPFL_Chain,
                    7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                // Src: (intrinsic_void 6439:{ *:[iPTR] }, addr:{ *:[iPTR] }:$dst, VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2) - Complexity = 26
                // Dst: (VPMASKMOVDYmr addr:{ *:[iPTR] }:$dst, VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2)
/* 36805*/    /*Scope*/ 24, /*->36830*/
/* 36806*/      OPC_CheckChild1Integer, 40|128,50/*6440*/, 
/* 36809*/      OPC_RecordChild2, // #1 = $dst
/* 36810*/      OPC_RecordChild3, // #2 = $src1
/* 36811*/      OPC_RecordChild4, // #3 = $src2
/* 36812*/      OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/* 36814*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 36817*/      OPC_EmitMergeInputChains1_0,
/* 36818*/      OPC_MorphNodeTo0, TARGET_VAL(X86::VPMASKMOVQmr), 0|OPFL_Chain,
                    7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                // Src: (intrinsic_void 6440:{ *:[iPTR] }, addr:{ *:[iPTR] }:$dst, VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2) - Complexity = 26
                // Dst: (VPMASKMOVQmr addr:{ *:[iPTR] }:$dst, VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)
/* 36830*/    /*Scope*/ 24, /*->36855*/
/* 36831*/      OPC_CheckChild1Integer, 41|128,50/*6441*/, 
/* 36834*/      OPC_RecordChild2, // #1 = $dst
/* 36835*/      OPC_RecordChild3, // #2 = $src1
/* 36836*/      OPC_RecordChild4, // #3 = $src2
/* 36837*/      OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/* 36839*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 36842*/      OPC_EmitMergeInputChains1_0,
/* 36843*/      OPC_MorphNodeTo0, TARGET_VAL(X86::VPMASKMOVQYmr), 0|OPFL_Chain,
                    7/*#Ops*/, 4, 5, 6, 7, 8, 2, 3, 
                // Src: (intrinsic_void 6441:{ *:[iPTR] }, addr:{ *:[iPTR] }:$dst, VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2) - Complexity = 26
                // Dst: (VPMASKMOVQYmr addr:{ *:[iPTR] }:$dst, VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2)
/* 36855*/    /*Scope*/ 22, /*->36878*/
/* 36856*/      OPC_CheckChild1Integer, 81|128,55/*7121*/, 
/* 36859*/      OPC_RecordChild2, // #1 = $dst
/* 36860*/      OPC_RecordChild3, // #2 = $src
/* 36861*/      OPC_CheckPatternPredicate, 35, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1())
/* 36863*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 36866*/      OPC_EmitMergeInputChains1_0,
/* 36867*/      OPC_MorphNodeTo0, TARGET_VAL(X86::MMX_MOVNTQmr), 0|OPFL_Chain,
                    6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                // Src: (intrinsic_void 7121:{ *:[iPTR] }, addr:{ *:[iPTR] }:$dst, VR64:{ *:[x86mmx] }:$src) - Complexity = 26
                // Dst: (MMX_MOVNTQmr addr:{ *:[iPTR] }:$dst, VR64:{ *:[x86mmx] }:$src)
/* 36878*/    /*Scope*/ 18, /*->36897*/
/* 36879*/      OPC_CheckChild1Integer, 46|128,56/*7214*/, 
/* 36882*/      OPC_RecordChild2, // #1 = $src
/* 36883*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 36886*/      OPC_EmitMergeInputChains1_0,
/* 36887*/      OPC_MorphNodeTo0, TARGET_VAL(X86::RSTORSSP), 0|OPFL_Chain,
                    5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_void 7214:{ *:[iPTR] }, addr:{ *:[iPTR] }:$src) - Complexity = 26
                // Dst: (RSTORSSP addr:{ *:[iPTR] }:$src)
/* 36897*/    /*Scope*/ 20, /*->36918*/
/* 36898*/      OPC_CheckChild1Integer, 2|128,58/*7426*/, 
/* 36901*/      OPC_RecordChild2, // #1 = $src
/* 36902*/      OPC_RecordChild3, // #2 = $dst
/* 36903*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 36906*/      OPC_EmitMergeInputChains1_0,
/* 36907*/      OPC_MorphNodeTo0, TARGET_VAL(X86::WRSSD), 0|OPFL_Chain,
                    6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                // Src: (intrinsic_void 7426:{ *:[iPTR] }, GR32:{ *:[i32] }:$src, addr:{ *:[iPTR] }:$dst) - Complexity = 26
                // Dst: (WRSSD addr:{ *:[iPTR] }:$dst, GR32:{ *:[i32] }:$src)
/* 36918*/    /*Scope*/ 20, /*->36939*/
/* 36919*/      OPC_CheckChild1Integer, 3|128,58/*7427*/, 
/* 36922*/      OPC_RecordChild2, // #1 = $src
/* 36923*/      OPC_RecordChild3, // #2 = $dst
/* 36924*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 36927*/      OPC_EmitMergeInputChains1_0,
/* 36928*/      OPC_MorphNodeTo0, TARGET_VAL(X86::WRSSQ), 0|OPFL_Chain,
                    6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                // Src: (intrinsic_void 7427:{ *:[iPTR] }, GR64:{ *:[i64] }:$src, addr:{ *:[iPTR] }:$dst) - Complexity = 26
                // Dst: (WRSSQ addr:{ *:[iPTR] }:$dst, GR64:{ *:[i64] }:$src)
/* 36939*/    /*Scope*/ 20, /*->36960*/
/* 36940*/      OPC_CheckChild1Integer, 4|128,58/*7428*/, 
/* 36943*/      OPC_RecordChild2, // #1 = $src
/* 36944*/      OPC_RecordChild3, // #2 = $dst
/* 36945*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 36948*/      OPC_EmitMergeInputChains1_0,
/* 36949*/      OPC_MorphNodeTo0, TARGET_VAL(X86::WRUSSD), 0|OPFL_Chain,
                    6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                // Src: (intrinsic_void 7428:{ *:[iPTR] }, GR32:{ *:[i32] }:$src, addr:{ *:[iPTR] }:$dst) - Complexity = 26
                // Dst: (WRUSSD addr:{ *:[iPTR] }:$dst, GR32:{ *:[i32] }:$src)
/* 36960*/    /*Scope*/ 20, /*->36981*/
/* 36961*/      OPC_CheckChild1Integer, 5|128,58/*7429*/, 
/* 36964*/      OPC_RecordChild2, // #1 = $src
/* 36965*/      OPC_RecordChild3, // #2 = $dst
/* 36966*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 36969*/      OPC_EmitMergeInputChains1_0,
/* 36970*/      OPC_MorphNodeTo0, TARGET_VAL(X86::WRUSSQ), 0|OPFL_Chain,
                    6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                // Src: (intrinsic_void 7429:{ *:[iPTR] }, GR64:{ *:[i64] }:$src, addr:{ *:[iPTR] }:$dst) - Complexity = 26
                // Dst: (WRUSSQ addr:{ *:[iPTR] }:$dst, GR64:{ *:[i64] }:$src)
/* 36981*/    /*Scope*/ 18, /*->37000*/
/* 36982*/      OPC_CheckChild1Integer, 54|128,55/*7094*/, 
/* 36985*/      OPC_RecordChild2, // #1 = $src
/* 36986*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 36989*/      OPC_EmitMergeInputChains1_0,
/* 36990*/      OPC_MorphNodeTo0, TARGET_VAL(X86::CLRSSBSY), 0|OPFL_Chain,
                    5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_void 7094:{ *:[iPTR] }, addr:{ *:[iPTR] }:$src) - Complexity = 26
                // Dst: (CLRSSBSY addr:{ *:[iPTR] }:$src)
/* 37000*/    /*Scope*/ 28, /*->37029*/
/* 37001*/      OPC_CheckChild1Integer, 60|128,58/*7484*/, 
/* 37004*/      OPC_RecordChild2, // #1 = $dst
/* 37005*/      OPC_RecordChild3, // #2 = physreg input EDX
/* 37006*/      OPC_RecordChild4, // #3 = physreg input EAX
/* 37007*/      OPC_CheckPatternPredicate, 73, // (Subtarget->hasXSAVE())
/* 37009*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 37012*/      OPC_EmitMergeInputChains1_0,
/* 37013*/      OPC_EmitCopyToReg, 2, X86::EDX,
/* 37016*/      OPC_EmitCopyToReg, 3, X86::EAX,
/* 37019*/      OPC_MorphNodeTo0, TARGET_VAL(X86::XSAVE), 0|OPFL_Chain|OPFL_GlueInput,
                    5/*#Ops*/, 4, 5, 6, 7, 8, 
                // Src: (intrinsic_void 7484:{ *:[iPTR] }, addr:{ *:[iPTR] }:$dst, EDX:{ *:[i32] }, EAX:{ *:[i32] }) - Complexity = 26
                // Dst: (XSAVE addr:{ *:[iPTR] }:$dst)
/* 37029*/    /*Scope*/ 28, /*->37058*/
/* 37030*/      OPC_CheckChild1Integer, 61|128,58/*7485*/, 
/* 37033*/      OPC_RecordChild2, // #1 = $dst
/* 37034*/      OPC_RecordChild3, // #2 = physreg input EDX
/* 37035*/      OPC_RecordChild4, // #3 = physreg input EAX
/* 37036*/      OPC_CheckPatternPredicate, 74, // (Subtarget->hasXSAVE()) && (Subtarget->is64Bit())
/* 37038*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 37041*/      OPC_EmitMergeInputChains1_0,
/* 37042*/      OPC_EmitCopyToReg, 2, X86::EDX,
/* 37045*/      OPC_EmitCopyToReg, 3, X86::EAX,
/* 37048*/      OPC_MorphNodeTo0, TARGET_VAL(X86::XSAVE64), 0|OPFL_Chain|OPFL_GlueInput,
                    5/*#Ops*/, 4, 5, 6, 7, 8, 
                // Src: (intrinsic_void 7485:{ *:[iPTR] }, addr:{ *:[iPTR] }:$dst, EDX:{ *:[i32] }, EAX:{ *:[i32] }) - Complexity = 26
                // Dst: (XSAVE64 addr:{ *:[iPTR] }:$dst)
/* 37058*/    /*Scope*/ 28, /*->37087*/
/* 37059*/      OPC_CheckChild1Integer, 56|128,58/*7480*/, 
/* 37062*/      OPC_RecordChild2, // #1 = $dst
/* 37063*/      OPC_RecordChild3, // #2 = physreg input EDX
/* 37064*/      OPC_RecordChild4, // #3 = physreg input EAX
/* 37065*/      OPC_CheckPatternPredicate, 73, // (Subtarget->hasXSAVE())
/* 37067*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 37070*/      OPC_EmitMergeInputChains1_0,
/* 37071*/      OPC_EmitCopyToReg, 2, X86::EDX,
/* 37074*/      OPC_EmitCopyToReg, 3, X86::EAX,
/* 37077*/      OPC_MorphNodeTo0, TARGET_VAL(X86::XRSTOR), 0|OPFL_Chain|OPFL_GlueInput,
                    5/*#Ops*/, 4, 5, 6, 7, 8, 
                // Src: (intrinsic_void 7480:{ *:[iPTR] }, addr:{ *:[iPTR] }:$dst, EDX:{ *:[i32] }, EAX:{ *:[i32] }) - Complexity = 26
                // Dst: (XRSTOR addr:{ *:[iPTR] }:$dst)
/* 37087*/    /*Scope*/ 28, /*->37116*/
/* 37088*/      OPC_CheckChild1Integer, 57|128,58/*7481*/, 
/* 37091*/      OPC_RecordChild2, // #1 = $dst
/* 37092*/      OPC_RecordChild3, // #2 = physreg input EDX
/* 37093*/      OPC_RecordChild4, // #3 = physreg input EAX
/* 37094*/      OPC_CheckPatternPredicate, 74, // (Subtarget->hasXSAVE()) && (Subtarget->is64Bit())
/* 37096*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 37099*/      OPC_EmitMergeInputChains1_0,
/* 37100*/      OPC_EmitCopyToReg, 2, X86::EDX,
/* 37103*/      OPC_EmitCopyToReg, 3, X86::EAX,
/* 37106*/      OPC_MorphNodeTo0, TARGET_VAL(X86::XRSTOR64), 0|OPFL_Chain|OPFL_GlueInput,
                    5/*#Ops*/, 4, 5, 6, 7, 8, 
                // Src: (intrinsic_void 7481:{ *:[iPTR] }, addr:{ *:[iPTR] }:$dst, EDX:{ *:[i32] }, EAX:{ *:[i32] }) - Complexity = 26
                // Dst: (XRSTOR64 addr:{ *:[iPTR] }:$dst)
/* 37116*/    /*Scope*/ 28, /*->37145*/
/* 37117*/      OPC_CheckChild1Integer, 64|128,58/*7488*/, 
/* 37120*/      OPC_RecordChild2, // #1 = $dst
/* 37121*/      OPC_RecordChild3, // #2 = physreg input EDX
/* 37122*/      OPC_RecordChild4, // #3 = physreg input EAX
/* 37123*/      OPC_CheckPatternPredicate, 75, // (Subtarget->hasXSAVEOPT())
/* 37125*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 37128*/      OPC_EmitMergeInputChains1_0,
/* 37129*/      OPC_EmitCopyToReg, 2, X86::EDX,
/* 37132*/      OPC_EmitCopyToReg, 3, X86::EAX,
/* 37135*/      OPC_MorphNodeTo0, TARGET_VAL(X86::XSAVEOPT), 0|OPFL_Chain|OPFL_GlueInput,
                    5/*#Ops*/, 4, 5, 6, 7, 8, 
                // Src: (intrinsic_void 7488:{ *:[iPTR] }, addr:{ *:[iPTR] }:$dst, EDX:{ *:[i32] }, EAX:{ *:[i32] }) - Complexity = 26
                // Dst: (XSAVEOPT addr:{ *:[iPTR] }:$dst)
/* 37145*/    /*Scope*/ 28, /*->37174*/
/* 37146*/      OPC_CheckChild1Integer, 65|128,58/*7489*/, 
/* 37149*/      OPC_RecordChild2, // #1 = $dst
/* 37150*/      OPC_RecordChild3, // #2 = physreg input EDX
/* 37151*/      OPC_RecordChild4, // #3 = physreg input EAX
/* 37152*/      OPC_CheckPatternPredicate, 76, // (Subtarget->hasXSAVEOPT()) && (Subtarget->is64Bit())
/* 37154*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 37157*/      OPC_EmitMergeInputChains1_0,
/* 37158*/      OPC_EmitCopyToReg, 2, X86::EDX,
/* 37161*/      OPC_EmitCopyToReg, 3, X86::EAX,
/* 37164*/      OPC_MorphNodeTo0, TARGET_VAL(X86::XSAVEOPT64), 0|OPFL_Chain|OPFL_GlueInput,
                    5/*#Ops*/, 4, 5, 6, 7, 8, 
                // Src: (intrinsic_void 7489:{ *:[iPTR] }, addr:{ *:[iPTR] }:$dst, EDX:{ *:[i32] }, EAX:{ *:[i32] }) - Complexity = 26
                // Dst: (XSAVEOPT64 addr:{ *:[iPTR] }:$dst)
/* 37174*/    /*Scope*/ 28, /*->37203*/
/* 37175*/      OPC_CheckChild1Integer, 62|128,58/*7486*/, 
/* 37178*/      OPC_RecordChild2, // #1 = $dst
/* 37179*/      OPC_RecordChild3, // #2 = physreg input EDX
/* 37180*/      OPC_RecordChild4, // #3 = physreg input EAX
/* 37181*/      OPC_CheckPatternPredicate, 77, // (Subtarget->hasXSAVEC())
/* 37183*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 37186*/      OPC_EmitMergeInputChains1_0,
/* 37187*/      OPC_EmitCopyToReg, 2, X86::EDX,
/* 37190*/      OPC_EmitCopyToReg, 3, X86::EAX,
/* 37193*/      OPC_MorphNodeTo0, TARGET_VAL(X86::XSAVEC), 0|OPFL_Chain|OPFL_GlueInput,
                    5/*#Ops*/, 4, 5, 6, 7, 8, 
                // Src: (intrinsic_void 7486:{ *:[iPTR] }, addr:{ *:[iPTR] }:$dst, EDX:{ *:[i32] }, EAX:{ *:[i32] }) - Complexity = 26
                // Dst: (XSAVEC addr:{ *:[iPTR] }:$dst)
/* 37203*/    /*Scope*/ 28, /*->37232*/
/* 37204*/      OPC_CheckChild1Integer, 63|128,58/*7487*/, 
/* 37207*/      OPC_RecordChild2, // #1 = $dst
/* 37208*/      OPC_RecordChild3, // #2 = physreg input EDX
/* 37209*/      OPC_RecordChild4, // #3 = physreg input EAX
/* 37210*/      OPC_CheckPatternPredicate, 78, // (Subtarget->hasXSAVEC()) && (Subtarget->is64Bit())
/* 37212*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 37215*/      OPC_EmitMergeInputChains1_0,
/* 37216*/      OPC_EmitCopyToReg, 2, X86::EDX,
/* 37219*/      OPC_EmitCopyToReg, 3, X86::EAX,
/* 37222*/      OPC_MorphNodeTo0, TARGET_VAL(X86::XSAVEC64), 0|OPFL_Chain|OPFL_GlueInput,
                    5/*#Ops*/, 4, 5, 6, 7, 8, 
                // Src: (intrinsic_void 7487:{ *:[iPTR] }, addr:{ *:[iPTR] }:$dst, EDX:{ *:[i32] }, EAX:{ *:[i32] }) - Complexity = 26
                // Dst: (XSAVEC64 addr:{ *:[iPTR] }:$dst)
/* 37232*/    /*Scope*/ 28, /*->37261*/
/* 37233*/      OPC_CheckChild1Integer, 66|128,58/*7490*/, 
/* 37236*/      OPC_RecordChild2, // #1 = $dst
/* 37237*/      OPC_RecordChild3, // #2 = physreg input EDX
/* 37238*/      OPC_RecordChild4, // #3 = physreg input EAX
/* 37239*/      OPC_CheckPatternPredicate, 79, // (Subtarget->hasXSAVES())
/* 37241*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 37244*/      OPC_EmitMergeInputChains1_0,
/* 37245*/      OPC_EmitCopyToReg, 2, X86::EDX,
/* 37248*/      OPC_EmitCopyToReg, 3, X86::EAX,
/* 37251*/      OPC_MorphNodeTo0, TARGET_VAL(X86::XSAVES), 0|OPFL_Chain|OPFL_GlueInput,
                    5/*#Ops*/, 4, 5, 6, 7, 8, 
                // Src: (intrinsic_void 7490:{ *:[iPTR] }, addr:{ *:[iPTR] }:$dst, EDX:{ *:[i32] }, EAX:{ *:[i32] }) - Complexity = 26
                // Dst: (XSAVES addr:{ *:[iPTR] }:$dst)
/* 37261*/    /*Scope*/ 28, /*->37290*/
/* 37262*/      OPC_CheckChild1Integer, 67|128,58/*7491*/, 
/* 37265*/      OPC_RecordChild2, // #1 = $dst
/* 37266*/      OPC_RecordChild3, // #2 = physreg input EDX
/* 37267*/      OPC_RecordChild4, // #3 = physreg input EAX
/* 37268*/      OPC_CheckPatternPredicate, 74, // (Subtarget->hasXSAVE()) && (Subtarget->is64Bit())
/* 37270*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 37273*/      OPC_EmitMergeInputChains1_0,
/* 37274*/      OPC_EmitCopyToReg, 2, X86::EDX,
/* 37277*/      OPC_EmitCopyToReg, 3, X86::EAX,
/* 37280*/      OPC_MorphNodeTo0, TARGET_VAL(X86::XSAVES64), 0|OPFL_Chain|OPFL_GlueInput,
                    5/*#Ops*/, 4, 5, 6, 7, 8, 
                // Src: (intrinsic_void 7491:{ *:[iPTR] }, addr:{ *:[iPTR] }:$dst, EDX:{ *:[i32] }, EAX:{ *:[i32] }) - Complexity = 26
                // Dst: (XSAVES64 addr:{ *:[iPTR] }:$dst)
/* 37290*/    /*Scope*/ 28, /*->37319*/
/* 37291*/      OPC_CheckChild1Integer, 58|128,58/*7482*/, 
/* 37294*/      OPC_RecordChild2, // #1 = $dst
/* 37295*/      OPC_RecordChild3, // #2 = physreg input EDX
/* 37296*/      OPC_RecordChild4, // #3 = physreg input EAX
/* 37297*/      OPC_CheckPatternPredicate, 79, // (Subtarget->hasXSAVES())
/* 37299*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 37302*/      OPC_EmitMergeInputChains1_0,
/* 37303*/      OPC_EmitCopyToReg, 2, X86::EDX,
/* 37306*/      OPC_EmitCopyToReg, 3, X86::EAX,
/* 37309*/      OPC_MorphNodeTo0, TARGET_VAL(X86::XRSTORS), 0|OPFL_Chain|OPFL_GlueInput,
                    5/*#Ops*/, 4, 5, 6, 7, 8, 
                // Src: (intrinsic_void 7482:{ *:[iPTR] }, addr:{ *:[iPTR] }:$dst, EDX:{ *:[i32] }, EAX:{ *:[i32] }) - Complexity = 26
                // Dst: (XRSTORS addr:{ *:[iPTR] }:$dst)
/* 37319*/    /*Scope*/ 28, /*->37348*/
/* 37320*/      OPC_CheckChild1Integer, 59|128,58/*7483*/, 
/* 37323*/      OPC_RecordChild2, // #1 = $dst
/* 37324*/      OPC_RecordChild3, // #2 = physreg input EDX
/* 37325*/      OPC_RecordChild4, // #3 = physreg input EAX
/* 37326*/      OPC_CheckPatternPredicate, 80, // (Subtarget->hasXSAVES()) && (Subtarget->is64Bit())
/* 37328*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #4 #5 #6 #7 #8
/* 37331*/      OPC_EmitMergeInputChains1_0,
/* 37332*/      OPC_EmitCopyToReg, 2, X86::EDX,
/* 37335*/      OPC_EmitCopyToReg, 3, X86::EAX,
/* 37338*/      OPC_MorphNodeTo0, TARGET_VAL(X86::XRSTORS64), 0|OPFL_Chain|OPFL_GlueInput,
                    5/*#Ops*/, 4, 5, 6, 7, 8, 
                // Src: (intrinsic_void 7483:{ *:[iPTR] }, addr:{ *:[iPTR] }:$dst, EDX:{ *:[i32] }, EAX:{ *:[i32] }) - Complexity = 26
                // Dst: (XRSTORS64 addr:{ *:[iPTR] }:$dst)
/* 37348*/    /*Scope*/ 65, /*->37414*/
/* 37349*/      OPC_CheckChild1Integer, 72|128,55/*7112*/, 
/* 37352*/      OPC_RecordChild2, // #1 = $src1
/* 37353*/      OPC_RecordChild3, // #2 = $src2
/* 37354*/      OPC_Scope, 17, /*->37373*/ // 2 children in Scope
/* 37356*/        OPC_CheckPatternPredicate, 81, // (Subtarget->hasINVPCID()) && (!Subtarget->is64Bit())
/* 37358*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 37361*/        OPC_EmitMergeInputChains1_0,
/* 37362*/        OPC_MorphNodeTo0, TARGET_VAL(X86::INVPCID32), 0|OPFL_Chain,
                      6/*#Ops*/, 1, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_void 7112:{ *:[iPTR] }, GR32:{ *:[i32] }:$src1, addr:{ *:[iPTR] }:$src2) - Complexity = 26
                  // Dst: (INVPCID32 GR32:{ *:[i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 37373*/      /*Scope*/ 39, /*->37413*/
/* 37374*/        OPC_CheckPatternPredicate, 82, // (Subtarget->hasINVPCID()) && (Subtarget->is64Bit())
/* 37376*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 37379*/        OPC_EmitMergeInputChains1_0,
/* 37380*/        OPC_EmitInteger, MVT::i64, 0, 
/* 37383*/        OPC_EmitNode1, TARGET_VAL(X86::MOV32rr), 0,
                      MVT::i32, 1/*#Ops*/, 1,  // Results = #9
/* 37390*/        OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/* 37393*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                      MVT::i64, 3/*#Ops*/, 8, 9, 10,  // Results = #11
/* 37402*/        OPC_MorphNodeTo0, TARGET_VAL(X86::INVPCID64), 0|OPFL_Chain,
                      6/*#Ops*/, 11, 3, 4, 5, 6, 7, 
                  // Src: (intrinsic_void 7112:{ *:[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)
/* 37413*/      0, /*End of Scope*/
/* 37414*/    /*Scope*/ 28, /*->37443*/
/* 37415*/      OPC_CheckChild1Integer, 71|128,55/*7111*/, 
/* 37418*/      OPC_Scope, 8, /*->37428*/ // 2 children in Scope
/* 37420*/        OPC_CheckChild2Integer, 3, 
/* 37422*/        OPC_EmitMergeInputChains1_0,
/* 37423*/        OPC_MorphNodeTo0, TARGET_VAL(X86::INT3), 0|OPFL_Chain,
                      0/*#Ops*/, 
                  // Src: (intrinsic_void 7111:{ *:[iPTR] }, 3:{ *:[i8] }) - Complexity = 13
                  // Dst: (INT3)
/* 37428*/      /*Scope*/ 13, /*->37442*/
/* 37429*/        OPC_RecordChild2, // #1 = $trap
/* 37430*/        OPC_MoveChild2,
/* 37431*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 37434*/        OPC_MoveParent,
/* 37435*/        OPC_EmitMergeInputChains1_0,
/* 37436*/        OPC_MorphNodeTo0, TARGET_VAL(X86::INT), 0|OPFL_Chain,
                      1/*#Ops*/, 1, 
                  // Src: (intrinsic_void 7111:{ *:[iPTR] }, (timm:{ *:[i8] }):$trap) - Complexity = 11
                  // Dst: (INT (timm:{ *:[i8] }):$trap)
/* 37442*/      0, /*End of Scope*/
/* 37443*/    /*Scope*/ 18, /*->37462*/
/* 37444*/      OPC_CheckChild1Integer, 6|128,58/*7430*/, 
/* 37447*/      OPC_RecordChild2, // #1 = $imm
/* 37448*/      OPC_MoveChild2,
/* 37449*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 37452*/      OPC_MoveParent,
/* 37453*/      OPC_CheckPatternPredicate, 83, // (Subtarget->hasRTM())
/* 37455*/      OPC_EmitMergeInputChains1_0,
/* 37456*/      OPC_MorphNodeTo0, TARGET_VAL(X86::XABORT), 0|OPFL_Chain,
                    1/*#Ops*/, 1, 
                // Src: (intrinsic_void 7430:{ *:[iPTR] }, (timm:{ *:[i8] }):$imm) - Complexity = 11
                // Dst: (XABORT (timm:{ *:[i8] }):$imm)
/* 37462*/    /*Scope*/ 30, /*->37493*/
/* 37463*/      OPC_CheckChild1Integer, 73|128,55/*7113*/, 
/* 37466*/      OPC_RecordChild2, // #1 = $src
/* 37467*/      OPC_Scope, 11, /*->37480*/ // 2 children in Scope
/* 37469*/        OPC_CheckChild2Type, MVT::i32,
/* 37471*/        OPC_CheckPatternPredicate, 61, // (Subtarget->hasLWP())
/* 37473*/        OPC_EmitMergeInputChains1_0,
/* 37474*/        OPC_MorphNodeTo0, TARGET_VAL(X86::LLWPCB), 0|OPFL_Chain,
                      1/*#Ops*/, 1, 
                  // Src: (intrinsic_void 7113:{ *:[iPTR] }, GR32:{ *:[i32] }:$src) - Complexity = 8
                  // Dst: (LLWPCB GR32:{ *:[i32] }:$src)
/* 37480*/      /*Scope*/ 11, /*->37492*/
/* 37481*/        OPC_CheckChild2Type, MVT::i64,
/* 37483*/        OPC_CheckPatternPredicate, 61, // (Subtarget->hasLWP())
/* 37485*/        OPC_EmitMergeInputChains1_0,
/* 37486*/        OPC_MorphNodeTo0, TARGET_VAL(X86::LLWPCB64), 0|OPFL_Chain,
                      1/*#Ops*/, 1, 
                  // Src: (intrinsic_void 7113:{ *:[iPTR] }, GR64:{ *:[i64] }:$src) - Complexity = 8
                  // Dst: (LLWPCB64 GR64:{ *:[i64] }:$src)
/* 37492*/      0, /*End of Scope*/
/* 37493*/    /*Scope*/ 23, /*->37517*/
/* 37494*/      OPC_CheckChild1Integer, 23|128,56/*7191*/, 
/* 37497*/      OPC_RecordChild2, // #1 = physreg input ECX
/* 37498*/      OPC_RecordChild3, // #2 = physreg input EAX
/* 37499*/      OPC_RecordChild4, // #3 = physreg input EBX
/* 37500*/      OPC_CheckPatternPredicate, 84, // (Subtarget->hasMWAITX())
/* 37502*/      OPC_EmitMergeInputChains1_0,
/* 37503*/      OPC_EmitCopyToReg, 1, X86::ECX,
/* 37506*/      OPC_EmitCopyToReg, 2, X86::EAX,
/* 37509*/      OPC_EmitCopyToReg, 3, X86::EBX,
/* 37512*/      OPC_MorphNodeTo0, TARGET_VAL(X86::MWAITXrrr), 0|OPFL_Chain|OPFL_GlueInput,
                    0/*#Ops*/, 
                // Src: (intrinsic_void 7191:{ *:[iPTR] }, ECX:{ *:[i32] }, EAX:{ *:[i32] }, EBX:{ *:[i32] }) - Complexity = 8
                // Dst: (MWAITXrrr)
/* 37517*/    /*Scope*/ 42, /*->37560*/
/* 37518*/      OPC_CheckChild1Integer, 108|128,57/*7404*/, 
/* 37521*/      OPC_RecordChild2, // #1 = $src
/* 37522*/      OPC_Scope, 11, /*->37535*/ // 3 children in Scope
/* 37524*/        OPC_CheckChild2Type, MVT::i16,
/* 37526*/        OPC_CheckPatternPredicate, 85, // (Subtarget->hasWAITPKG()) && (!Subtarget->is64Bit())
/* 37528*/        OPC_EmitMergeInputChains1_0,
/* 37529*/        OPC_MorphNodeTo0, TARGET_VAL(X86::UMONITOR16), 0|OPFL_Chain,
                      1/*#Ops*/, 1, 
                  // Src: (intrinsic_void 7404:{ *:[iPTR] }, GR16:{ *:[i16] }:$src) - Complexity = 8
                  // Dst: (UMONITOR16 GR16:{ *:[i16] }:$src)
/* 37535*/      /*Scope*/ 11, /*->37547*/
/* 37536*/        OPC_CheckChild2Type, MVT::i32,
/* 37538*/        OPC_CheckPatternPredicate, 86, // (Subtarget->hasWAITPKG())
/* 37540*/        OPC_EmitMergeInputChains1_0,
/* 37541*/        OPC_MorphNodeTo0, TARGET_VAL(X86::UMONITOR32), 0|OPFL_Chain,
                      1/*#Ops*/, 1, 
                  // Src: (intrinsic_void 7404:{ *:[iPTR] }, GR32:{ *:[i32] }:$src) - Complexity = 8
                  // Dst: (UMONITOR32 GR32:{ *:[i32] }:$src)
/* 37547*/      /*Scope*/ 11, /*->37559*/
/* 37548*/        OPC_CheckChild2Type, MVT::i64,
/* 37550*/        OPC_CheckPatternPredicate, 87, // (Subtarget->hasWAITPKG()) && (Subtarget->is64Bit())
/* 37552*/        OPC_EmitMergeInputChains1_0,
/* 37553*/        OPC_MorphNodeTo0, TARGET_VAL(X86::UMONITOR64), 0|OPFL_Chain,
                      1/*#Ops*/, 1, 
                  // Src: (intrinsic_void 7404:{ *:[iPTR] }, GR64:{ *:[i64] }:$src) - Complexity = 8
                  // Dst: (UMONITOR64 GR64:{ *:[i64] }:$src)
/* 37559*/      0, /*End of Scope*/
/* 37560*/    /*Scope*/ 9, /*->37570*/
/* 37561*/      OPC_CheckChild1Integer, 127|128,56/*7295*/, 
/* 37564*/      OPC_EmitMergeInputChains1_0,
/* 37565*/      OPC_MorphNodeTo0, TARGET_VAL(X86::PAUSE), 0|OPFL_Chain,
                    0/*#Ops*/, 
                // Src: (intrinsic_void 7295:{ *:[iPTR] }) - Complexity = 8
                // Dst: (PAUSE)
/* 37570*/    /*Scope*/ 11, /*->37582*/
/* 37571*/      OPC_CheckChild1Integer, 89|128,56/*7257*/, 
/* 37574*/      OPC_CheckPatternPredicate, 88, // (Subtarget->hasSSE1())
/* 37576*/      OPC_EmitMergeInputChains1_0,
/* 37577*/      OPC_MorphNodeTo0, TARGET_VAL(X86::SFENCE), 0|OPFL_Chain,
                    0/*#Ops*/, 
                // Src: (intrinsic_void 7257:{ *:[iPTR] }) - Complexity = 8
                // Dst: (SFENCE)
/* 37582*/    /*Scope*/ 11, /*->37594*/
/* 37583*/      OPC_CheckChild1Integer, 116|128,56/*7284*/, 
/* 37586*/      OPC_CheckPatternPredicate, 4, // (Subtarget->hasSSE2())
/* 37588*/      OPC_EmitMergeInputChains1_0,
/* 37589*/      OPC_MorphNodeTo0, TARGET_VAL(X86::LFENCE), 0|OPFL_Chain,
                    0/*#Ops*/, 
                // Src: (intrinsic_void 7284:{ *:[iPTR] }) - Complexity = 8
                // Dst: (LFENCE)
/* 37594*/    /*Scope*/ 11, /*->37606*/
/* 37595*/      OPC_CheckChild1Integer, 120|128,56/*7288*/, 
/* 37598*/      OPC_CheckPatternPredicate, 89, // (Subtarget->hasMFence())
/* 37600*/      OPC_EmitMergeInputChains1_0,
/* 37601*/      OPC_MorphNodeTo0, TARGET_VAL(X86::MFENCE), 0|OPFL_Chain,
                    0/*#Ops*/, 
                // Src: (intrinsic_void 7288:{ *:[iPTR] }) - Complexity = 8
                // Dst: (MFENCE)
/* 37606*/    /*Scope*/ 74, /*->37681*/
/* 37607*/      OPC_CheckChild1Integer, 117|128,56/*7285*/, 
/* 37610*/      OPC_RecordChild2, // #1 = $src
/* 37611*/      OPC_RecordChild3, // #2 = $mask
/* 37612*/      OPC_RecordChild4, // #3 = physreg input EDI
/* 37613*/      OPC_Scope, 32, /*->37647*/ // 2 children in Scope
/* 37615*/        OPC_CheckChild4Type, MVT::i32,
/* 37617*/        OPC_Scope, 13, /*->37632*/ // 2 children in Scope
/* 37619*/          OPC_CheckPatternPredicate, 90, // (Subtarget->hasAVX()) && (!Subtarget->is64Bit())
/* 37621*/          OPC_EmitMergeInputChains1_0,
/* 37622*/          OPC_EmitCopyToReg, 3, X86::EDI,
/* 37625*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMASKMOVDQU), 0|OPFL_Chain|OPFL_GlueInput,
                        2/*#Ops*/, 1, 2, 
                    // Src: (intrinsic_void 7285:{ *:[iPTR] }, VR128:{ *:[v16i8] }:$src, VR128:{ *:[v16i8] }:$mask, EDI:{ *:[i32] }) - Complexity = 8
                    // Dst: (VMASKMOVDQU VR128:{ *:[v16i8] }:$src, VR128:{ *:[v16i8] }:$mask)
/* 37632*/        /*Scope*/ 13, /*->37646*/
/* 37633*/          OPC_CheckPatternPredicate, 91, // (!Subtarget->is64Bit()) && (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 37635*/          OPC_EmitMergeInputChains1_0,
/* 37636*/          OPC_EmitCopyToReg, 3, X86::EDI,
/* 37639*/          OPC_MorphNodeTo0, TARGET_VAL(X86::MASKMOVDQU), 0|OPFL_Chain|OPFL_GlueInput,
                        2/*#Ops*/, 1, 2, 
                    // Src: (intrinsic_void 7285:{ *:[iPTR] }, VR128:{ *:[v16i8] }:$src, VR128:{ *:[v16i8] }:$mask, EDI:{ *:[i32] }) - Complexity = 8
                    // Dst: (MASKMOVDQU VR128:{ *:[v16i8] }:$src, VR128:{ *:[v16i8] }:$mask)
/* 37646*/        0, /*End of Scope*/
/* 37647*/      /*Scope*/ 32, /*->37680*/
/* 37648*/        OPC_CheckChild4Type, MVT::i64,
/* 37650*/        OPC_Scope, 13, /*->37665*/ // 2 children in Scope
/* 37652*/          OPC_CheckPatternPredicate, 92, // (Subtarget->hasAVX()) && (Subtarget->is64Bit())
/* 37654*/          OPC_EmitMergeInputChains1_0,
/* 37655*/          OPC_EmitCopyToReg, 3, X86::RDI,
/* 37658*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMASKMOVDQU64), 0|OPFL_Chain|OPFL_GlueInput,
                        2/*#Ops*/, 1, 2, 
                    // Src: (intrinsic_void 7285:{ *:[iPTR] }, VR128:{ *:[v16i8] }:$src, VR128:{ *:[v16i8] }:$mask, RDI:{ *:[i64] }) - Complexity = 8
                    // Dst: (VMASKMOVDQU64 VR128:{ *:[v16i8] }:$src, VR128:{ *:[v16i8] }:$mask)
/* 37665*/        /*Scope*/ 13, /*->37679*/
/* 37666*/          OPC_CheckPatternPredicate, 93, // (Subtarget->is64Bit()) && (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 37668*/          OPC_EmitMergeInputChains1_0,
/* 37669*/          OPC_EmitCopyToReg, 3, X86::RDI,
/* 37672*/          OPC_MorphNodeTo0, TARGET_VAL(X86::MASKMOVDQU64), 0|OPFL_Chain|OPFL_GlueInput,
                        2/*#Ops*/, 1, 2, 
                    // Src: (intrinsic_void 7285:{ *:[iPTR] }, VR128:{ *:[v16i8] }:$src, VR128:{ *:[v16i8] }:$mask, RDI:{ *:[i64] }) - Complexity = 8
                    // Dst: (MASKMOVDQU64 VR128:{ *:[v16i8] }:$src, VR128:{ *:[v16i8] }:$mask)
/* 37679*/        0, /*End of Scope*/
/* 37680*/      0, /*End of Scope*/
/* 37681*/    /*Scope*/ 19, /*->37701*/
/* 37682*/      OPC_CheckChild1Integer, 37|128,57/*7333*/, 
/* 37685*/      OPC_RecordChild2, // #1 = physreg input ECX
/* 37686*/      OPC_RecordChild3, // #2 = physreg input EAX
/* 37687*/      OPC_CheckPatternPredicate, 94, // (Subtarget->hasSSE3())
/* 37689*/      OPC_EmitMergeInputChains1_0,
/* 37690*/      OPC_EmitCopyToReg, 1, X86::ECX,
/* 37693*/      OPC_EmitCopyToReg, 2, X86::EAX,
/* 37696*/      OPC_MorphNodeTo0, TARGET_VAL(X86::MWAITrr), 0|OPFL_Chain|OPFL_GlueInput,
                    0/*#Ops*/, 
                // Src: (intrinsic_void 7333:{ *:[iPTR] }, ECX:{ *:[i32] }, EAX:{ *:[i32] }) - Complexity = 8
                // Dst: (MWAITrr)
/* 37701*/    /*Scope*/ 11, /*->37713*/
/* 37702*/      OPC_CheckChild1Integer, 16|128,50/*6416*/, 
/* 37705*/      OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/* 37707*/      OPC_EmitMergeInputChains1_0,
/* 37708*/      OPC_MorphNodeTo0, TARGET_VAL(X86::VZEROALL), 0|OPFL_Chain,
                    0/*#Ops*/, 
                // Src: (intrinsic_void 6416:{ *:[iPTR] }) - Complexity = 8
                // Dst: (VZEROALL)
/* 37713*/    /*Scope*/ 11, /*->37725*/
/* 37714*/      OPC_CheckChild1Integer, 17|128,50/*6417*/, 
/* 37717*/      OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/* 37719*/      OPC_EmitMergeInputChains1_0,
/* 37720*/      OPC_MorphNodeTo0, TARGET_VAL(X86::VZEROUPPER), 0|OPFL_Chain,
                    0/*#Ops*/, 
                // Src: (intrinsic_void 6417:{ *:[iPTR] }) - Complexity = 8
                // Dst: (VZEROUPPER)
/* 37725*/    /*Scope*/ 12, /*->37738*/
/* 37726*/      OPC_CheckChild1Integer, 78|128,55/*7118*/, 
/* 37729*/      OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 37731*/      OPC_EmitMergeInputChains1_0,
/* 37732*/      OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_EMMS), 0|OPFL_Chain,
                    MVT::x86mmx, 0/*#Ops*/, 
                // Src: (intrinsic_void 7118:{ *:[iPTR] }) - Complexity = 8
                // Dst: (MMX_EMMS:{ *:[x86mmx] })
/* 37738*/    /*Scope*/ 40, /*->37779*/
/* 37739*/      OPC_CheckChild1Integer, 80|128,55/*7120*/, 
/* 37742*/      OPC_RecordChild2, // #1 = $src
/* 37743*/      OPC_RecordChild3, // #2 = $mask
/* 37744*/      OPC_RecordChild4, // #3 = physreg input EDI
/* 37745*/      OPC_Scope, 15, /*->37762*/ // 2 children in Scope
/* 37747*/        OPC_CheckChild4Type, MVT::i32,
/* 37749*/        OPC_CheckPatternPredicate, 95, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1()) && (!Subtarget->is64Bit())
/* 37751*/        OPC_EmitMergeInputChains1_0,
/* 37752*/        OPC_EmitCopyToReg, 3, X86::EDI,
/* 37755*/        OPC_MorphNodeTo0, TARGET_VAL(X86::MMX_MASKMOVQ), 0|OPFL_Chain|OPFL_GlueInput,
                      2/*#Ops*/, 1, 2, 
                  // Src: (intrinsic_void 7120:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src, VR64:{ *:[x86mmx] }:$mask, EDI:{ *:[i32] }) - Complexity = 8
                  // Dst: (MMX_MASKMOVQ VR64:{ *:[x86mmx] }:$src, VR64:{ *:[x86mmx] }:$mask)
/* 37762*/      /*Scope*/ 15, /*->37778*/
/* 37763*/        OPC_CheckChild4Type, MVT::i64,
/* 37765*/        OPC_CheckPatternPredicate, 96, // (Subtarget->hasMMX()) && (Subtarget->hasSSE1()) && (Subtarget->is64Bit())
/* 37767*/        OPC_EmitMergeInputChains1_0,
/* 37768*/        OPC_EmitCopyToReg, 3, X86::RDI,
/* 37771*/        OPC_MorphNodeTo0, TARGET_VAL(X86::MMX_MASKMOVQ64), 0|OPFL_Chain|OPFL_GlueInput,
                      2/*#Ops*/, 1, 2, 
                  // Src: (intrinsic_void 7120:{ *:[iPTR] }, VR64:{ *:[x86mmx] }:$src, VR64:{ *:[x86mmx] }:$mask, RDI:{ *:[i64] }) - Complexity = 8
                  // Dst: (MMX_MASKMOVQ64 VR64:{ *:[x86mmx] }:$src, VR64:{ *:[x86mmx] }:$mask)
/* 37778*/      0, /*End of Scope*/
/* 37779*/    /*Scope*/ 12, /*->37792*/
/* 37780*/      OPC_CheckChild1Integer, 79|128,55/*7119*/, 
/* 37783*/      OPC_CheckPatternPredicate, 40, // (Subtarget->has3DNow())
/* 37785*/      OPC_EmitMergeInputChains1_0,
/* 37786*/      OPC_MorphNodeTo1, TARGET_VAL(X86::FEMMS), 0|OPFL_Chain,
                    MVT::x86mmx, 0/*#Ops*/, 
                // Src: (intrinsic_void 7119:{ *:[iPTR] }) - Complexity = 8
                // Dst: (FEMMS:{ *:[x86mmx] })
/* 37792*/    /*Scope*/ 11, /*->37804*/
/* 37793*/      OPC_CheckChild1Integer, 8|128,58/*7432*/, 
/* 37796*/      OPC_CheckPatternPredicate, 83, // (Subtarget->hasRTM())
/* 37798*/      OPC_EmitMergeInputChains1_0,
/* 37799*/      OPC_MorphNodeTo0, TARGET_VAL(X86::XEND), 0|OPFL_Chain,
                    0/*#Ops*/, 
                // Src: (intrinsic_void 7432:{ *:[iPTR] }) - Complexity = 8
                // Dst: (XEND)
/* 37804*/    /*Scope*/ 9, /*->37814*/
/* 37805*/      OPC_CheckChild1Integer, 123|128,57/*7419*/, 
/* 37808*/      OPC_EmitMergeInputChains1_0,
/* 37809*/      OPC_MorphNodeTo0, TARGET_VAL(X86::WBINVD), 0|OPFL_Chain,
                    0/*#Ops*/, 
                // Src: (intrinsic_void 7419:{ *:[iPTR] }) - Complexity = 8
                // Dst: (WBINVD)
/* 37814*/    /*Scope*/ 11, /*->37826*/
/* 37815*/      OPC_CheckChild1Integer, 124|128,57/*7420*/, 
/* 37818*/      OPC_CheckPatternPredicate, 97, // (Subtarget->hasWBNOINVD())
/* 37820*/      OPC_EmitMergeInputChains1_0,
/* 37821*/      OPC_MorphNodeTo0, TARGET_VAL(X86::WBNOINVD), 0|OPFL_Chain,
                    0/*#Ops*/, 
                // Src: (intrinsic_void 7420:{ *:[iPTR] }) - Complexity = 8
                // Dst: (WBNOINVD)
/* 37826*/    /*Scope*/ 11, /*->37838*/
/* 37827*/      OPC_CheckChild1Integer, 69|128,55/*7109*/, 
/* 37830*/      OPC_RecordChild2, // #1 = $src
/* 37831*/      OPC_EmitMergeInputChains1_0,
/* 37832*/      OPC_MorphNodeTo0, TARGET_VAL(X86::INCSSPD), 0|OPFL_Chain,
                    1/*#Ops*/, 1, 
                // Src: (intrinsic_void 7109:{ *:[iPTR] }, GR32:{ *:[i32] }:$src) - Complexity = 8
                // Dst: (INCSSPD GR32:{ *:[i32] }:$src)
/* 37838*/    /*Scope*/ 11, /*->37850*/
/* 37839*/      OPC_CheckChild1Integer, 70|128,55/*7110*/, 
/* 37842*/      OPC_RecordChild2, // #1 = $src
/* 37843*/      OPC_EmitMergeInputChains1_0,
/* 37844*/      OPC_MorphNodeTo0, TARGET_VAL(X86::INCSSPQ), 0|OPFL_Chain,
                    1/*#Ops*/, 1, 
                // Src: (intrinsic_void 7110:{ *:[iPTR] }, GR64:{ *:[i64] }:$src) - Complexity = 8
                // Dst: (INCSSPQ GR64:{ *:[i64] }:$src)
/* 37850*/    /*Scope*/ 9, /*->37860*/
/* 37851*/      OPC_CheckChild1Integer, 47|128,56/*7215*/, 
/* 37854*/      OPC_EmitMergeInputChains1_0,
/* 37855*/      OPC_MorphNodeTo0, TARGET_VAL(X86::SAVEPREVSSP), 0|OPFL_Chain,
                    0/*#Ops*/, 
                // Src: (intrinsic_void 7215:{ *:[iPTR] }) - Complexity = 8
                // Dst: (SAVEPREVSSP)
/* 37860*/    /*Scope*/ 9, /*->37870*/
/* 37861*/      OPC_CheckChild1Integer, 51|128,56/*7219*/, 
/* 37864*/      OPC_EmitMergeInputChains1_0,
/* 37865*/      OPC_MorphNodeTo0, TARGET_VAL(X86::SETSSBSY), 0|OPFL_Chain,
                    0/*#Ops*/, 
                // Src: (intrinsic_void 7219:{ *:[iPTR] }) - Complexity = 8
                // Dst: (SETSSBSY)
/* 37870*/    /*Scope*/ 23, /*->37894*/
/* 37871*/      OPC_CheckChild1Integer, 68|128,58/*7492*/, 
/* 37874*/      OPC_RecordChild2, // #1 = physreg input ECX
/* 37875*/      OPC_RecordChild3, // #2 = physreg input EDX
/* 37876*/      OPC_RecordChild4, // #3 = physreg input EAX
/* 37877*/      OPC_CheckPatternPredicate, 73, // (Subtarget->hasXSAVE())
/* 37879*/      OPC_EmitMergeInputChains1_0,
/* 37880*/      OPC_EmitCopyToReg, 1, X86::ECX,
/* 37883*/      OPC_EmitCopyToReg, 2, X86::EDX,
/* 37886*/      OPC_EmitCopyToReg, 3, X86::EAX,
/* 37889*/      OPC_MorphNodeTo0, TARGET_VAL(X86::XSETBV), 0|OPFL_Chain|OPFL_GlueInput,
                    0/*#Ops*/, 
                // Src: (intrinsic_void 7492:{ *:[iPTR] }, ECX:{ *:[i32] }, EDX:{ *:[i32] }, EAX:{ *:[i32] }) - Complexity = 8
                // Dst: (XSETBV)
/* 37894*/    /*Scope*/ 13, /*->37908*/
/* 37895*/      OPC_CheckChild1Integer, 125|128,57/*7421*/, 
/* 37898*/      OPC_RecordChild2, // #1 = $src
/* 37899*/      OPC_CheckPatternPredicate, 98, // (Subtarget->hasFSGSBase()) && (Subtarget->is64Bit())
/* 37901*/      OPC_EmitMergeInputChains1_0,
/* 37902*/      OPC_MorphNodeTo0, TARGET_VAL(X86::WRFSBASE), 0|OPFL_Chain,
                    1/*#Ops*/, 1, 
                // Src: (intrinsic_void 7421:{ *:[iPTR] }, GR32:{ *:[i32] }:$src) - Complexity = 8
                // Dst: (WRFSBASE GR32:{ *:[i32] }:$src)
/* 37908*/    /*Scope*/ 13, /*->37922*/
/* 37909*/      OPC_CheckChild1Integer, 126|128,57/*7422*/, 
/* 37912*/      OPC_RecordChild2, // #1 = $src
/* 37913*/      OPC_CheckPatternPredicate, 98, // (Subtarget->hasFSGSBase()) && (Subtarget->is64Bit())
/* 37915*/      OPC_EmitMergeInputChains1_0,
/* 37916*/      OPC_MorphNodeTo0, TARGET_VAL(X86::WRFSBASE64), 0|OPFL_Chain,
                    1/*#Ops*/, 1, 
                // Src: (intrinsic_void 7422:{ *:[iPTR] }, GR64:{ *:[i64] }:$src) - Complexity = 8
                // Dst: (WRFSBASE64 GR64:{ *:[i64] }:$src)
/* 37922*/    /*Scope*/ 13, /*->37936*/
/* 37923*/      OPC_CheckChild1Integer, 127|128,57/*7423*/, 
/* 37926*/      OPC_RecordChild2, // #1 = $src
/* 37927*/      OPC_CheckPatternPredicate, 98, // (Subtarget->hasFSGSBase()) && (Subtarget->is64Bit())
/* 37929*/      OPC_EmitMergeInputChains1_0,
/* 37930*/      OPC_MorphNodeTo0, TARGET_VAL(X86::WRGSBASE), 0|OPFL_Chain,
                    1/*#Ops*/, 1, 
                // Src: (intrinsic_void 7423:{ *:[iPTR] }, GR32:{ *:[i32] }:$src) - Complexity = 8
                // Dst: (WRGSBASE GR32:{ *:[i32] }:$src)
/* 37936*/    /*Scope*/ 13, /*->37950*/
/* 37937*/      OPC_CheckChild1Integer, 0|128,58/*7424*/, 
/* 37940*/      OPC_RecordChild2, // #1 = $src
/* 37941*/      OPC_CheckPatternPredicate, 98, // (Subtarget->hasFSGSBase()) && (Subtarget->is64Bit())
/* 37943*/      OPC_EmitMergeInputChains1_0,
/* 37944*/      OPC_MorphNodeTo0, TARGET_VAL(X86::WRGSBASE64), 0|OPFL_Chain,
                    1/*#Ops*/, 1, 
                // Src: (intrinsic_void 7424:{ *:[iPTR] }, GR64:{ *:[i64] }:$src) - Complexity = 8
                // Dst: (WRGSBASE64 GR64:{ *:[i64] }:$src)
/* 37950*/    /*Scope*/ 14, /*->37965*/
/* 37951*/      OPC_CheckChild1Integer, 63|128,55/*7103*/, 
/* 37954*/      OPC_RecordChild2, // #1 = $src
/* 37955*/      OPC_CheckPatternPredicate, 99, // (!Subtarget->is64Bit())
/* 37957*/      OPC_EmitMergeInputChains1_0,
/* 37958*/      OPC_MorphNodeTo1, TARGET_VAL(X86::WRFLAGS32), 0|OPFL_Chain,
                    MVT::i32, 1/*#Ops*/, 1, 
                // Src: (intrinsic_void 7103:{ *:[iPTR] }, GR32:{ *:[i32] }:$src) - Complexity = 8
                // Dst: (WRFLAGS32:{ *:[i32] } GR32:{ *:[i32] }:$src)
/* 37965*/    /*Scope*/ 14, /*->37980*/
/* 37966*/      OPC_CheckChild1Integer, 64|128,55/*7104*/, 
/* 37969*/      OPC_RecordChild2, // #1 = $src
/* 37970*/      OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/* 37972*/      OPC_EmitMergeInputChains1_0,
/* 37973*/      OPC_MorphNodeTo1, TARGET_VAL(X86::WRFLAGS64), 0|OPFL_Chain,
                    MVT::i64, 1/*#Ops*/, 1, 
                // Src: (intrinsic_void 7104:{ *:[iPTR] }, GR64:{ *:[i64] }:$src) - Complexity = 8
                // Dst: (WRFLAGS64:{ *:[i64] } GR64:{ *:[i64] }:$src)
/* 37980*/    0, /*End of Scope*/
/* 37981*/  /*SwitchOpcode*/ 94|128,4/*606*/, TARGET_VAL(ISD::SRA),// ->38591
/* 37985*/    OPC_Scope, 88|128,1/*216*/, /*->38204*/ // 2 children in Scope
/* 37988*/      OPC_MoveChild0,
/* 37989*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 37992*/      OPC_RecordMemRef,
/* 37993*/      OPC_RecordNode, // #0 = 'ld' chained node
/* 37994*/      OPC_CheckFoldableChainNode,
/* 37995*/      OPC_RecordChild1, // #1 = $src1
/* 37996*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 37998*/      OPC_Scope, 56, /*->38056*/ // 4 children in Scope
/* 38000*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 38002*/        OPC_MoveParent,
/* 38003*/        OPC_MoveChild1,
/* 38004*/        OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 38007*/        OPC_RecordChild0, // #2 = $src2
/* 38008*/        OPC_MoveChild1,
/* 38009*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 38012*/        OPC_MoveParent,
/* 38013*/        OPC_CheckPredicate, 6, // Predicate_shiftMask32
/* 38015*/        OPC_CheckType, MVT::i8,
/* 38017*/        OPC_MoveParent,
/* 38018*/        OPC_CheckType, MVT::i32,
/* 38020*/        OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI2())
/* 38022*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/* 38025*/        OPC_EmitMergeInputChains1_0,
/* 38026*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i32, 0/*#Ops*/,  // Results = #8
/* 38032*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 38035*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i32, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 38044*/        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_shiftMask32>>) - Complexity = 32
                  // Dst: (SARX32rm:{ *:[i32] } addr:{ *:[iPTR] }:$src1, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/* 38056*/      /*Scope*/ 56, /*->38113*/
/* 38057*/        OPC_CheckPredicate, 9, // Predicate_load
/* 38059*/        OPC_MoveParent,
/* 38060*/        OPC_MoveChild1,
/* 38061*/        OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 38064*/        OPC_RecordChild0, // #2 = $src2
/* 38065*/        OPC_MoveChild1,
/* 38066*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 38069*/        OPC_MoveParent,
/* 38070*/        OPC_CheckPredicate, 10, // Predicate_shiftMask64
/* 38072*/        OPC_CheckType, MVT::i8,
/* 38074*/        OPC_MoveParent,
/* 38075*/        OPC_CheckType, MVT::i64,
/* 38077*/        OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI2())
/* 38079*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/* 38082*/        OPC_EmitMergeInputChains1_0,
/* 38083*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i64, 0/*#Ops*/,  // Results = #8
/* 38089*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 38092*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i64, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 38101*/        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_shiftMask64>>) - Complexity = 32
                  // Dst: (SARX64rm:{ *:[i64] } addr:{ *:[iPTR] }:$src1, (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/* 38113*/      /*Scope*/ 44, /*->38158*/
/* 38114*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 38116*/        OPC_MoveParent,
/* 38117*/        OPC_RecordChild1, // #2 = $src2
/* 38118*/        OPC_CheckChild1Type, MVT::i8,
/* 38120*/        OPC_CheckType, MVT::i32,
/* 38122*/        OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI2())
/* 38124*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/* 38127*/        OPC_EmitMergeInputChains1_0,
/* 38128*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i32, 0/*#Ops*/,  // Results = #8
/* 38134*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 38137*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i32, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 38146*/        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] }))
/* 38158*/      /*Scope*/ 44, /*->38203*/
/* 38159*/        OPC_CheckPredicate, 9, // Predicate_load
/* 38161*/        OPC_MoveParent,
/* 38162*/        OPC_RecordChild1, // #2 = $src2
/* 38163*/        OPC_CheckChild1Type, MVT::i8,
/* 38165*/        OPC_CheckType, MVT::i64,
/* 38167*/        OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI2())
/* 38169*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/* 38172*/        OPC_EmitMergeInputChains1_0,
/* 38173*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i64, 0/*#Ops*/,  // Results = #8
/* 38179*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 38182*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i64, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 38191*/        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] }))
/* 38203*/      0, /*End of Scope*/
/* 38204*/    /*Scope*/ 0|128,3/*384*/, /*->38590*/
/* 38206*/      OPC_RecordChild0, // #0 = $src1
/* 38207*/      OPC_Scope, 16|128,1/*144*/, /*->38354*/ // 3 children in Scope
/* 38210*/        OPC_MoveChild1,
/* 38211*/        OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 38214*/        OPC_RecordChild0, // #1 = $src2
/* 38215*/        OPC_MoveChild1,
/* 38216*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 38219*/        OPC_MoveParent,
/* 38220*/        OPC_CheckType, MVT::i8,
/* 38222*/        OPC_Scope, 33, /*->38257*/ // 4 children in Scope
/* 38224*/          OPC_CheckPredicate, 6, // Predicate_shiftMask32
/* 38226*/          OPC_MoveParent,
/* 38227*/          OPC_CheckType, MVT::i32,
/* 38229*/          OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI2())
/* 38231*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i32, 0/*#Ops*/,  // Results = #2
/* 38237*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 38240*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i32, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/* 38249*/          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_shiftMask32>>) - Complexity = 11
                    // Dst: (SARX32rr:{ *:[i32] } GR32:{ *:[i32] }:$src1, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/* 38257*/        /*Scope*/ 33, /*->38291*/
/* 38258*/          OPC_CheckPredicate, 10, // Predicate_shiftMask64
/* 38260*/          OPC_MoveParent,
/* 38261*/          OPC_CheckType, MVT::i64,
/* 38263*/          OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI2())
/* 38265*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i64, 0/*#Ops*/,  // Results = #2
/* 38271*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 38274*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i64, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/* 38283*/          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_shiftMask64>>) - Complexity = 11
                    // Dst: (SARX64rr:{ *:[i64] } GR64:{ *:[i64] }:$src1, (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/* 38291*/        /*Scope*/ 44, /*->38336*/
/* 38292*/          OPC_CheckPredicate, 6, // Predicate_shiftMask32
/* 38294*/          OPC_MoveParent,
/* 38295*/          OPC_SwitchType /*3 cases */, 11, MVT::i8,// ->38309
/* 38298*/            OPC_EmitCopyToReg, 1, X86::CL,
/* 38301*/            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_shiftMask32>>) - Complexity = 10
                      // Dst: (SAR8rCL:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1)
/* 38309*/          /*SwitchType*/ 11, MVT::i16,// ->38322
/* 38311*/            OPC_EmitCopyToReg, 1, X86::CL,
/* 38314*/            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_shiftMask32>>) - Complexity = 10
                      // Dst: (SAR16rCL:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1)
/* 38322*/          /*SwitchType*/ 11, MVT::i32,// ->38335
/* 38324*/            OPC_EmitCopyToReg, 1, X86::CL,
/* 38327*/            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_shiftMask32>>) - Complexity = 10
                      // Dst: (SAR32rCL:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1)
/* 38335*/          0, // EndSwitchType
/* 38336*/        /*Scope*/ 16, /*->38353*/
/* 38337*/          OPC_CheckPredicate, 10, // Predicate_shiftMask64
/* 38339*/          OPC_MoveParent,
/* 38340*/          OPC_CheckType, MVT::i64,
/* 38342*/          OPC_EmitCopyToReg, 1, X86::CL,
/* 38345*/          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_shiftMask64>>) - Complexity = 10
                    // Dst: (SAR64rCL:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1)
/* 38353*/        0, /*End of Scope*/
/* 38354*/      /*Scope*/ 46, /*->38401*/
/* 38355*/        OPC_CheckChild1Integer, 1, 
/* 38357*/        OPC_CheckChild1Type, MVT::i8,
/* 38359*/        OPC_SwitchType /*4 cases */, 8, MVT::i8,// ->38370
/* 38362*/          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)
/* 38370*/        /*SwitchType*/ 8, MVT::i16,// ->38380
/* 38372*/          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)
/* 38380*/        /*SwitchType*/ 8, MVT::i32,// ->38390
/* 38382*/          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)
/* 38390*/        /*SwitchType*/ 8, MVT::i64,// ->38400
/* 38392*/          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)
/* 38400*/        0, // EndSwitchType
/* 38401*/      /*Scope*/ 58|128,1/*186*/, /*->38589*/
/* 38403*/        OPC_RecordChild1, // #1 = $src2
/* 38404*/        OPC_Scope, 61, /*->38467*/ // 2 children in Scope
/* 38406*/          OPC_MoveChild1,
/* 38407*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 38410*/          OPC_CheckType, MVT::i8,
/* 38412*/          OPC_MoveParent,
/* 38413*/          OPC_SwitchType /*4 cases */, 11, MVT::i8,// ->38427
/* 38416*/            OPC_EmitConvertToTarget, 1,
/* 38418*/            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)
/* 38427*/          /*SwitchType*/ 11, MVT::i16,// ->38440
/* 38429*/            OPC_EmitConvertToTarget, 1,
/* 38431*/            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)
/* 38440*/          /*SwitchType*/ 11, MVT::i32,// ->38453
/* 38442*/            OPC_EmitConvertToTarget, 1,
/* 38444*/            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)
/* 38453*/          /*SwitchType*/ 11, MVT::i64,// ->38466
/* 38455*/            OPC_EmitConvertToTarget, 1,
/* 38457*/            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)
/* 38466*/          0, // EndSwitchType
/* 38467*/        /*Scope*/ 120, /*->38588*/
/* 38468*/          OPC_CheckChild1Type, MVT::i8,
/* 38470*/          OPC_SwitchType /*4 cases */, 43, MVT::i32,// ->38516
/* 38473*/            OPC_Scope, 28, /*->38503*/ // 2 children in Scope
/* 38475*/              OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI2())
/* 38477*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::i32, 0/*#Ops*/,  // Results = #2
/* 38483*/              OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 38486*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::i32, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/* 38495*/              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] }))
/* 38503*/            /*Scope*/ 11, /*->38515*/
/* 38504*/              OPC_EmitCopyToReg, 1, X86::CL,
/* 38507*/              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)
/* 38515*/            0, /*End of Scope*/
/* 38516*/          /*SwitchType*/ 43, MVT::i64,// ->38561
/* 38518*/            OPC_Scope, 28, /*->38548*/ // 2 children in Scope
/* 38520*/              OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI2())
/* 38522*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::i64, 0/*#Ops*/,  // Results = #2
/* 38528*/              OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 38531*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::i64, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/* 38540*/              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] }))
/* 38548*/            /*Scope*/ 11, /*->38560*/
/* 38549*/              OPC_EmitCopyToReg, 1, X86::CL,
/* 38552*/              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)
/* 38560*/            0, /*End of Scope*/
/* 38561*/          /*SwitchType*/ 11, MVT::i8,// ->38574
/* 38563*/            OPC_EmitCopyToReg, 1, X86::CL,
/* 38566*/            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)
/* 38574*/          /*SwitchType*/ 11, MVT::i16,// ->38587
/* 38576*/            OPC_EmitCopyToReg, 1, X86::CL,
/* 38579*/            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)
/* 38587*/          0, // EndSwitchType
/* 38588*/        0, /*End of Scope*/
/* 38589*/      0, /*End of Scope*/
/* 38590*/    0, /*End of Scope*/
/* 38591*/  /*SwitchOpcode*/ 43|128,5/*683*/, TARGET_VAL(ISD::SRL),// ->39278
/* 38595*/    OPC_Scope, 1|128,2/*257*/, /*->38855*/ // 2 children in Scope
/* 38598*/      OPC_MoveChild0,
/* 38599*/      OPC_SwitchOpcode /*2 cases */, 84|128,1/*212*/, TARGET_VAL(ISD::LOAD),// ->38816
/* 38604*/        OPC_RecordMemRef,
/* 38605*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 38606*/        OPC_CheckFoldableChainNode,
/* 38607*/        OPC_RecordChild1, // #1 = $src1
/* 38608*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 38610*/        OPC_Scope, 56, /*->38668*/ // 4 children in Scope
/* 38612*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/* 38614*/          OPC_MoveParent,
/* 38615*/          OPC_MoveChild1,
/* 38616*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 38619*/          OPC_RecordChild0, // #2 = $src2
/* 38620*/          OPC_MoveChild1,
/* 38621*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 38624*/          OPC_MoveParent,
/* 38625*/          OPC_CheckPredicate, 6, // Predicate_shiftMask32
/* 38627*/          OPC_CheckType, MVT::i8,
/* 38629*/          OPC_MoveParent,
/* 38630*/          OPC_CheckType, MVT::i32,
/* 38632*/          OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI2())
/* 38634*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/* 38637*/          OPC_EmitMergeInputChains1_0,
/* 38638*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i32, 0/*#Ops*/,  // Results = #8
/* 38644*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 38647*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i32, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 38656*/          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_shiftMask32>>) - Complexity = 32
                    // Dst: (SHRX32rm:{ *:[i32] } addr:{ *:[iPTR] }:$src1, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/* 38668*/        /*Scope*/ 56, /*->38725*/
/* 38669*/          OPC_CheckPredicate, 9, // Predicate_load
/* 38671*/          OPC_MoveParent,
/* 38672*/          OPC_MoveChild1,
/* 38673*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 38676*/          OPC_RecordChild0, // #2 = $src2
/* 38677*/          OPC_MoveChild1,
/* 38678*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 38681*/          OPC_MoveParent,
/* 38682*/          OPC_CheckPredicate, 10, // Predicate_shiftMask64
/* 38684*/          OPC_CheckType, MVT::i8,
/* 38686*/          OPC_MoveParent,
/* 38687*/          OPC_CheckType, MVT::i64,
/* 38689*/          OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI2())
/* 38691*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/* 38694*/          OPC_EmitMergeInputChains1_0,
/* 38695*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i64, 0/*#Ops*/,  // Results = #8
/* 38701*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 38704*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i64, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 38713*/          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_shiftMask64>>) - Complexity = 32
                    // Dst: (SHRX64rm:{ *:[i64] } addr:{ *:[iPTR] }:$src1, (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/* 38725*/        /*Scope*/ 44, /*->38770*/
/* 38726*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/* 38728*/          OPC_MoveParent,
/* 38729*/          OPC_RecordChild1, // #2 = $src2
/* 38730*/          OPC_CheckChild1Type, MVT::i8,
/* 38732*/          OPC_CheckType, MVT::i32,
/* 38734*/          OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI2())
/* 38736*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/* 38739*/          OPC_EmitMergeInputChains1_0,
/* 38740*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i32, 0/*#Ops*/,  // Results = #8
/* 38746*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 38749*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i32, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 38758*/          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] }))
/* 38770*/        /*Scope*/ 44, /*->38815*/
/* 38771*/          OPC_CheckPredicate, 9, // Predicate_load
/* 38773*/          OPC_MoveParent,
/* 38774*/          OPC_RecordChild1, // #2 = $src2
/* 38775*/          OPC_CheckChild1Type, MVT::i8,
/* 38777*/          OPC_CheckType, MVT::i64,
/* 38779*/          OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI2())
/* 38781*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/* 38784*/          OPC_EmitMergeInputChains1_0,
/* 38785*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i64, 0/*#Ops*/,  // Results = #8
/* 38791*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 38794*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i64, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 38803*/          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] }))
/* 38815*/        0, /*End of Scope*/
/* 38816*/      /*SwitchOpcode*/ 35, TARGET_VAL(ISD::AND),// ->38854
/* 38819*/        OPC_RecordChild0, // #0 = $src
/* 38820*/        OPC_MoveChild1,
/* 38821*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 38824*/        OPC_CheckPredicate, 42, // Predicate_immff00_ffff
/* 38826*/        OPC_MoveParent,
/* 38827*/        OPC_CheckPredicate, 17, // Predicate_and_su
/* 38829*/        OPC_MoveParent,
/* 38830*/        OPC_CheckChild1Integer, 8, 
/* 38832*/        OPC_CheckChild1Type, MVT::i8,
/* 38834*/        OPC_CheckType, MVT::i32,
/* 38836*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
/* 38839*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i8, 2/*#Ops*/, 0, 1,  // Results = #2
/* 38847*/        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] }))
/* 38854*/      0, // EndSwitchOpcode
/* 38855*/    /*Scope*/ 36|128,3/*420*/, /*->39277*/
/* 38857*/      OPC_RecordChild0, // #0 = $src1
/* 38858*/      OPC_Scope, 16|128,1/*144*/, /*->39005*/ // 4 children in Scope
/* 38861*/        OPC_MoveChild1,
/* 38862*/        OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 38865*/        OPC_RecordChild0, // #1 = $src2
/* 38866*/        OPC_MoveChild1,
/* 38867*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 38870*/        OPC_MoveParent,
/* 38871*/        OPC_CheckType, MVT::i8,
/* 38873*/        OPC_Scope, 33, /*->38908*/ // 4 children in Scope
/* 38875*/          OPC_CheckPredicate, 6, // Predicate_shiftMask32
/* 38877*/          OPC_MoveParent,
/* 38878*/          OPC_CheckType, MVT::i32,
/* 38880*/          OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI2())
/* 38882*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i32, 0/*#Ops*/,  // Results = #2
/* 38888*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 38891*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i32, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/* 38900*/          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_shiftMask32>>) - Complexity = 11
                    // Dst: (SHRX32rr:{ *:[i32] } GR32:{ *:[i32] }:$src1, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/* 38908*/        /*Scope*/ 33, /*->38942*/
/* 38909*/          OPC_CheckPredicate, 10, // Predicate_shiftMask64
/* 38911*/          OPC_MoveParent,
/* 38912*/          OPC_CheckType, MVT::i64,
/* 38914*/          OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI2())
/* 38916*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i64, 0/*#Ops*/,  // Results = #2
/* 38922*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 38925*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i64, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/* 38934*/          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_shiftMask64>>) - Complexity = 11
                    // Dst: (SHRX64rr:{ *:[i64] } GR64:{ *:[i64] }:$src1, (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/* 38942*/        /*Scope*/ 44, /*->38987*/
/* 38943*/          OPC_CheckPredicate, 6, // Predicate_shiftMask32
/* 38945*/          OPC_MoveParent,
/* 38946*/          OPC_SwitchType /*3 cases */, 11, MVT::i8,// ->38960
/* 38949*/            OPC_EmitCopyToReg, 1, X86::CL,
/* 38952*/            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_shiftMask32>>) - Complexity = 10
                      // Dst: (SHR8rCL:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1)
/* 38960*/          /*SwitchType*/ 11, MVT::i16,// ->38973
/* 38962*/            OPC_EmitCopyToReg, 1, X86::CL,
/* 38965*/            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_shiftMask32>>) - Complexity = 10
                      // Dst: (SHR16rCL:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1)
/* 38973*/          /*SwitchType*/ 11, MVT::i32,// ->38986
/* 38975*/            OPC_EmitCopyToReg, 1, X86::CL,
/* 38978*/            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_shiftMask32>>) - Complexity = 10
                      // Dst: (SHR32rCL:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1)
/* 38986*/          0, // EndSwitchType
/* 38987*/        /*Scope*/ 16, /*->39004*/
/* 38988*/          OPC_CheckPredicate, 10, // Predicate_shiftMask64
/* 38990*/          OPC_MoveParent,
/* 38991*/          OPC_CheckType, MVT::i64,
/* 38993*/          OPC_EmitCopyToReg, 1, X86::CL,
/* 38996*/          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_shiftMask64>>) - Complexity = 10
                    // Dst: (SHR64rCL:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1)
/* 39004*/        0, /*End of Scope*/
/* 39005*/      /*Scope*/ 46, /*->39052*/
/* 39006*/        OPC_CheckChild1Integer, 1, 
/* 39008*/        OPC_CheckChild1Type, MVT::i8,
/* 39010*/        OPC_SwitchType /*4 cases */, 8, MVT::i8,// ->39021
/* 39013*/          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)
/* 39021*/        /*SwitchType*/ 8, MVT::i16,// ->39031
/* 39023*/          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)
/* 39031*/        /*SwitchType*/ 8, MVT::i32,// ->39041
/* 39033*/          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)
/* 39041*/        /*SwitchType*/ 8, MVT::i64,// ->39051
/* 39043*/          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)
/* 39051*/        0, // EndSwitchType
/* 39052*/      /*Scope*/ 35, /*->39088*/
/* 39053*/        OPC_CheckChild1Integer, 8, 
/* 39055*/        OPC_CheckChild1Type, MVT::i8,
/* 39057*/        OPC_CheckType, MVT::i16,
/* 39059*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
/* 39062*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i8, 2/*#Ops*/, 0, 1,  // Results = #2
/* 39070*/        OPC_EmitNode1, TARGET_VAL(X86::MOVZX32rr8_NOREX), 0,
                      MVT::i32, 1/*#Ops*/, 2,  // Results = #3
/* 39077*/        OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/* 39080*/        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] })
/* 39088*/      /*Scope*/ 58|128,1/*186*/, /*->39276*/
/* 39090*/        OPC_RecordChild1, // #1 = $src2
/* 39091*/        OPC_Scope, 61, /*->39154*/ // 2 children in Scope
/* 39093*/          OPC_MoveChild1,
/* 39094*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 39097*/          OPC_CheckType, MVT::i8,
/* 39099*/          OPC_MoveParent,
/* 39100*/          OPC_SwitchType /*4 cases */, 11, MVT::i8,// ->39114
/* 39103*/            OPC_EmitConvertToTarget, 1,
/* 39105*/            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)
/* 39114*/          /*SwitchType*/ 11, MVT::i16,// ->39127
/* 39116*/            OPC_EmitConvertToTarget, 1,
/* 39118*/            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)
/* 39127*/          /*SwitchType*/ 11, MVT::i32,// ->39140
/* 39129*/            OPC_EmitConvertToTarget, 1,
/* 39131*/            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)
/* 39140*/          /*SwitchType*/ 11, MVT::i64,// ->39153
/* 39142*/            OPC_EmitConvertToTarget, 1,
/* 39144*/            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)
/* 39153*/          0, // EndSwitchType
/* 39154*/        /*Scope*/ 120, /*->39275*/
/* 39155*/          OPC_CheckChild1Type, MVT::i8,
/* 39157*/          OPC_SwitchType /*4 cases */, 43, MVT::i32,// ->39203
/* 39160*/            OPC_Scope, 28, /*->39190*/ // 2 children in Scope
/* 39162*/              OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI2())
/* 39164*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::i32, 0/*#Ops*/,  // Results = #2
/* 39170*/              OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 39173*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::i32, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/* 39182*/              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] }))
/* 39190*/            /*Scope*/ 11, /*->39202*/
/* 39191*/              OPC_EmitCopyToReg, 1, X86::CL,
/* 39194*/              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)
/* 39202*/            0, /*End of Scope*/
/* 39203*/          /*SwitchType*/ 43, MVT::i64,// ->39248
/* 39205*/            OPC_Scope, 28, /*->39235*/ // 2 children in Scope
/* 39207*/              OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI2())
/* 39209*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::i64, 0/*#Ops*/,  // Results = #2
/* 39215*/              OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 39218*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::i64, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/* 39227*/              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] }))
/* 39235*/            /*Scope*/ 11, /*->39247*/
/* 39236*/              OPC_EmitCopyToReg, 1, X86::CL,
/* 39239*/              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)
/* 39247*/            0, /*End of Scope*/
/* 39248*/          /*SwitchType*/ 11, MVT::i8,// ->39261
/* 39250*/            OPC_EmitCopyToReg, 1, X86::CL,
/* 39253*/            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)
/* 39261*/          /*SwitchType*/ 11, MVT::i16,// ->39274
/* 39263*/            OPC_EmitCopyToReg, 1, X86::CL,
/* 39266*/            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)
/* 39274*/          0, // EndSwitchType
/* 39275*/        0, /*End of Scope*/
/* 39276*/      0, /*End of Scope*/
/* 39277*/    0, /*End of Scope*/
/* 39278*/  /*SwitchOpcode*/ 28|128,5/*668*/, TARGET_VAL(ISD::SHL),// ->39950
/* 39282*/    OPC_Scope, 88|128,1/*216*/, /*->39501*/ // 3 children in Scope
/* 39285*/      OPC_MoveChild0,
/* 39286*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 39289*/      OPC_RecordMemRef,
/* 39290*/      OPC_RecordNode, // #0 = 'ld' chained node
/* 39291*/      OPC_CheckFoldableChainNode,
/* 39292*/      OPC_RecordChild1, // #1 = $src1
/* 39293*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 39295*/      OPC_Scope, 56, /*->39353*/ // 4 children in Scope
/* 39297*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 39299*/        OPC_MoveParent,
/* 39300*/        OPC_MoveChild1,
/* 39301*/        OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 39304*/        OPC_RecordChild0, // #2 = $src2
/* 39305*/        OPC_MoveChild1,
/* 39306*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 39309*/        OPC_MoveParent,
/* 39310*/        OPC_CheckPredicate, 6, // Predicate_shiftMask32
/* 39312*/        OPC_CheckType, MVT::i8,
/* 39314*/        OPC_MoveParent,
/* 39315*/        OPC_CheckType, MVT::i32,
/* 39317*/        OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI2())
/* 39319*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/* 39322*/        OPC_EmitMergeInputChains1_0,
/* 39323*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i32, 0/*#Ops*/,  // Results = #8
/* 39329*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 39332*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i32, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 39341*/        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_shiftMask32>>) - Complexity = 32
                  // Dst: (SHLX32rm:{ *:[i32] } addr:{ *:[iPTR] }:$src1, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/* 39353*/      /*Scope*/ 56, /*->39410*/
/* 39354*/        OPC_CheckPredicate, 9, // Predicate_load
/* 39356*/        OPC_MoveParent,
/* 39357*/        OPC_MoveChild1,
/* 39358*/        OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 39361*/        OPC_RecordChild0, // #2 = $src2
/* 39362*/        OPC_MoveChild1,
/* 39363*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 39366*/        OPC_MoveParent,
/* 39367*/        OPC_CheckPredicate, 10, // Predicate_shiftMask64
/* 39369*/        OPC_CheckType, MVT::i8,
/* 39371*/        OPC_MoveParent,
/* 39372*/        OPC_CheckType, MVT::i64,
/* 39374*/        OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI2())
/* 39376*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/* 39379*/        OPC_EmitMergeInputChains1_0,
/* 39380*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i64, 0/*#Ops*/,  // Results = #8
/* 39386*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 39389*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i64, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 39398*/        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_shiftMask64>>) - Complexity = 32
                  // Dst: (SHLX64rm:{ *:[i64] } addr:{ *:[iPTR] }:$src1, (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/* 39410*/      /*Scope*/ 44, /*->39455*/
/* 39411*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 39413*/        OPC_MoveParent,
/* 39414*/        OPC_RecordChild1, // #2 = $src2
/* 39415*/        OPC_CheckChild1Type, MVT::i8,
/* 39417*/        OPC_CheckType, MVT::i32,
/* 39419*/        OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI2())
/* 39421*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/* 39424*/        OPC_EmitMergeInputChains1_0,
/* 39425*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i32, 0/*#Ops*/,  // Results = #8
/* 39431*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 39434*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i32, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 39443*/        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] }))
/* 39455*/      /*Scope*/ 44, /*->39500*/
/* 39456*/        OPC_CheckPredicate, 9, // Predicate_load
/* 39458*/        OPC_MoveParent,
/* 39459*/        OPC_RecordChild1, // #2 = $src2
/* 39460*/        OPC_CheckChild1Type, MVT::i8,
/* 39462*/        OPC_CheckType, MVT::i64,
/* 39464*/        OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI2())
/* 39466*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/* 39469*/        OPC_EmitMergeInputChains1_0,
/* 39470*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i64, 0/*#Ops*/,  // Results = #8
/* 39476*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 39479*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i64, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 39488*/        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] }))
/* 39500*/      0, /*End of Scope*/
/* 39501*/    /*Scope*/ 57, /*->39559*/
/* 39502*/      OPC_RecordNode, // #0 = $src
/* 39503*/      OPC_SwitchType /*2 cases */, 36, MVT::i32,// ->39542
/* 39506*/        OPC_Scope, 16, /*->39524*/ // 2 children in Scope
/* 39508*/          OPC_CheckPatternPredicate, 99, // (!Subtarget->is64Bit())
/* 39510*/          OPC_CheckComplexPat, /*CP*/4, /*#*/0, // selectLEAAddr:$src #1 #2 #3 #4 #5
/* 39513*/          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)
/* 39524*/        /*Scope*/ 16, /*->39541*/
/* 39525*/          OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/* 39527*/          OPC_CheckComplexPat, /*CP*/5, /*#*/0, // selectLEA64_32Addr:$src #1 #2 #3 #4 #5
/* 39530*/          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)
/* 39541*/        0, /*End of Scope*/
/* 39542*/      /*SwitchType*/ 14, MVT::i64,// ->39558
/* 39544*/        OPC_CheckComplexPat, /*CP*/6, /*#*/0, // selectLEAAddr:$src #1 #2 #3 #4 #5
/* 39547*/        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)
/* 39558*/      0, // EndSwitchType
/* 39559*/    /*Scope*/ 4|128,3/*388*/, /*->39949*/
/* 39561*/      OPC_RecordChild0, // #0 = $src1
/* 39562*/      OPC_Scope, 16|128,1/*144*/, /*->39709*/ // 3 children in Scope
/* 39565*/        OPC_MoveChild1,
/* 39566*/        OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 39569*/        OPC_RecordChild0, // #1 = $src2
/* 39570*/        OPC_MoveChild1,
/* 39571*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 39574*/        OPC_MoveParent,
/* 39575*/        OPC_CheckType, MVT::i8,
/* 39577*/        OPC_Scope, 33, /*->39612*/ // 4 children in Scope
/* 39579*/          OPC_CheckPredicate, 6, // Predicate_shiftMask32
/* 39581*/          OPC_MoveParent,
/* 39582*/          OPC_CheckType, MVT::i32,
/* 39584*/          OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI2())
/* 39586*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i32, 0/*#Ops*/,  // Results = #2
/* 39592*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 39595*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i32, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/* 39604*/          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_shiftMask32>>) - Complexity = 11
                    // Dst: (SHLX32rr:{ *:[i32] } GR32:{ *:[i32] }:$src1, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/* 39612*/        /*Scope*/ 33, /*->39646*/
/* 39613*/          OPC_CheckPredicate, 10, // Predicate_shiftMask64
/* 39615*/          OPC_MoveParent,
/* 39616*/          OPC_CheckType, MVT::i64,
/* 39618*/          OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI2())
/* 39620*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i64, 0/*#Ops*/,  // Results = #2
/* 39626*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 39629*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i64, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/* 39638*/          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_shiftMask64>>) - Complexity = 11
                    // Dst: (SHLX64rr:{ *:[i64] } GR64:{ *:[i64] }:$src1, (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/* 39646*/        /*Scope*/ 44, /*->39691*/
/* 39647*/          OPC_CheckPredicate, 6, // Predicate_shiftMask32
/* 39649*/          OPC_MoveParent,
/* 39650*/          OPC_SwitchType /*3 cases */, 11, MVT::i8,// ->39664
/* 39653*/            OPC_EmitCopyToReg, 1, X86::CL,
/* 39656*/            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_shiftMask32>>) - Complexity = 10
                      // Dst: (SHL8rCL:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1)
/* 39664*/          /*SwitchType*/ 11, MVT::i16,// ->39677
/* 39666*/            OPC_EmitCopyToReg, 1, X86::CL,
/* 39669*/            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_shiftMask32>>) - Complexity = 10
                      // Dst: (SHL16rCL:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1)
/* 39677*/          /*SwitchType*/ 11, MVT::i32,// ->39690
/* 39679*/            OPC_EmitCopyToReg, 1, X86::CL,
/* 39682*/            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_shiftMask32>>) - Complexity = 10
                      // Dst: (SHL32rCL:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1)
/* 39690*/          0, // EndSwitchType
/* 39691*/        /*Scope*/ 16, /*->39708*/
/* 39692*/          OPC_CheckPredicate, 10, // Predicate_shiftMask64
/* 39694*/          OPC_MoveParent,
/* 39695*/          OPC_CheckType, MVT::i64,
/* 39697*/          OPC_EmitCopyToReg, 1, X86::CL,
/* 39700*/          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_shiftMask64>>) - Complexity = 10
                    // Dst: (SHL64rCL:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1)
/* 39708*/        0, /*End of Scope*/
/* 39709*/      /*Scope*/ 50, /*->39760*/
/* 39710*/        OPC_CheckChild1Integer, 1, 
/* 39712*/        OPC_CheckChild1Type, MVT::i8,
/* 39714*/        OPC_SwitchType /*4 cases */, 9, MVT::i8,// ->39726
/* 39717*/          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)
/* 39726*/        /*SwitchType*/ 9, MVT::i16,// ->39737
/* 39728*/          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)
/* 39737*/        /*SwitchType*/ 9, MVT::i32,// ->39748
/* 39739*/          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)
/* 39748*/        /*SwitchType*/ 9, MVT::i64,// ->39759
/* 39750*/          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)
/* 39759*/        0, // EndSwitchType
/* 39760*/      /*Scope*/ 58|128,1/*186*/, /*->39948*/
/* 39762*/        OPC_RecordChild1, // #1 = $src2
/* 39763*/        OPC_Scope, 61, /*->39826*/ // 2 children in Scope
/* 39765*/          OPC_MoveChild1,
/* 39766*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 39769*/          OPC_CheckType, MVT::i8,
/* 39771*/          OPC_MoveParent,
/* 39772*/          OPC_SwitchType /*4 cases */, 11, MVT::i8,// ->39786
/* 39775*/            OPC_EmitConvertToTarget, 1,
/* 39777*/            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)
/* 39786*/          /*SwitchType*/ 11, MVT::i16,// ->39799
/* 39788*/            OPC_EmitConvertToTarget, 1,
/* 39790*/            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)
/* 39799*/          /*SwitchType*/ 11, MVT::i32,// ->39812
/* 39801*/            OPC_EmitConvertToTarget, 1,
/* 39803*/            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)
/* 39812*/          /*SwitchType*/ 11, MVT::i64,// ->39825
/* 39814*/            OPC_EmitConvertToTarget, 1,
/* 39816*/            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)
/* 39825*/          0, // EndSwitchType
/* 39826*/        /*Scope*/ 120, /*->39947*/
/* 39827*/          OPC_CheckChild1Type, MVT::i8,
/* 39829*/          OPC_SwitchType /*4 cases */, 43, MVT::i32,// ->39875
/* 39832*/            OPC_Scope, 28, /*->39862*/ // 2 children in Scope
/* 39834*/              OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI2())
/* 39836*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::i32, 0/*#Ops*/,  // Results = #2
/* 39842*/              OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 39845*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::i32, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/* 39854*/              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] }))
/* 39862*/            /*Scope*/ 11, /*->39874*/
/* 39863*/              OPC_EmitCopyToReg, 1, X86::CL,
/* 39866*/              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)
/* 39874*/            0, /*End of Scope*/
/* 39875*/          /*SwitchType*/ 43, MVT::i64,// ->39920
/* 39877*/            OPC_Scope, 28, /*->39907*/ // 2 children in Scope
/* 39879*/              OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI2())
/* 39881*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::i64, 0/*#Ops*/,  // Results = #2
/* 39887*/              OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 39890*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::i64, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/* 39899*/              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] }))
/* 39907*/            /*Scope*/ 11, /*->39919*/
/* 39908*/              OPC_EmitCopyToReg, 1, X86::CL,
/* 39911*/              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)
/* 39919*/            0, /*End of Scope*/
/* 39920*/          /*SwitchType*/ 11, MVT::i8,// ->39933
/* 39922*/            OPC_EmitCopyToReg, 1, X86::CL,
/* 39925*/            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)
/* 39933*/          /*SwitchType*/ 11, MVT::i16,// ->39946
/* 39935*/            OPC_EmitCopyToReg, 1, X86::CL,
/* 39938*/            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)
/* 39946*/          0, // EndSwitchType
/* 39947*/        0, /*End of Scope*/
/* 39948*/      0, /*End of Scope*/
/* 39949*/    0, /*End of Scope*/
/* 39950*/  /*SwitchOpcode*/ 48, TARGET_VAL(X86ISD::VAARG_64),// ->40001
/* 39953*/    OPC_RecordMemRef,
/* 39954*/    OPC_RecordNode, // #0 = 'X86vaarg64' chained node
/* 39955*/    OPC_RecordChild1, // #1 = $ap
/* 39956*/    OPC_RecordChild2, // #2 = $size
/* 39957*/    OPC_MoveChild2,
/* 39958*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 39961*/    OPC_MoveParent,
/* 39962*/    OPC_RecordChild3, // #3 = $mode
/* 39963*/    OPC_MoveChild3,
/* 39964*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 39967*/    OPC_MoveParent,
/* 39968*/    OPC_RecordChild4, // #4 = $align
/* 39969*/    OPC_MoveChild4,
/* 39970*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 39973*/    OPC_MoveParent,
/* 39974*/    OPC_CheckType, MVT::i64,
/* 39976*/    OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ap #5 #6 #7 #8 #9
/* 39979*/    OPC_EmitMergeInputChains1_0,
/* 39980*/    OPC_EmitConvertToTarget, 2,
/* 39982*/    OPC_EmitConvertToTarget, 3,
/* 39984*/    OPC_EmitConvertToTarget, 4,
/* 39986*/    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)
/* 40001*/  /*SwitchOpcode*/ 110|128,1/*238*/, TARGET_VAL(X86ISD::TC_RETURN),// ->40243
/* 40005*/    OPC_RecordNode, // #0 = 'X86tcret' chained node
/* 40006*/    OPC_CaptureGlueInput,
/* 40007*/    OPC_Scope, 69, /*->40078*/ // 2 children in Scope
/* 40009*/      OPC_MoveChild1,
/* 40010*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 40013*/      OPC_RecordMemRef,
/* 40014*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 40015*/      OPC_CheckFoldableChainNode,
/* 40016*/      OPC_RecordChild1, // #2 = $dst
/* 40017*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 40019*/      OPC_CheckPredicate, 9, // Predicate_load
/* 40021*/      OPC_MoveParent,
/* 40022*/      OPC_RecordChild2, // #3 = $off
/* 40023*/      OPC_MoveChild2,
/* 40024*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 40027*/      OPC_MoveParent,
/* 40028*/      OPC_Scope, 24, /*->40054*/ // 2 children in Scope
/* 40030*/        OPC_CheckPredicate, 43, // Predicate_X86tcret_6regs
/* 40032*/        OPC_CheckPatternPredicate, 100, // (Subtarget->is64Bit()) && (!Subtarget->useRetpolineIndirectCalls())
/* 40034*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/* 40037*/        OPC_EmitMergeInputChains, 2, 0, 1, 
/* 40041*/        OPC_EmitConvertToTarget, 3,
/* 40043*/        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)
/* 40054*/      /*Scope*/ 22, /*->40077*/
/* 40055*/        OPC_CheckPatternPredicate, 101, // (!TM.isPositionIndependent()) && (!Subtarget->is64Bit()) && (!Subtarget->useRetpolineIndirectCalls())
/* 40057*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/* 40060*/        OPC_EmitMergeInputChains, 2, 0, 1, 
/* 40064*/        OPC_EmitConvertToTarget, 3,
/* 40066*/        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)
/* 40077*/      0, /*End of Scope*/
/* 40078*/    /*Scope*/ 34|128,1/*162*/, /*->40242*/
/* 40080*/      OPC_RecordChild1, // #1 = $dst
/* 40081*/      OPC_Scope, 97, /*->40180*/ // 2 children in Scope
/* 40083*/        OPC_MoveChild1,
/* 40084*/        OPC_SwitchOpcode /*2 cases */, 44, TARGET_VAL(ISD::TargetGlobalAddress),// ->40132
/* 40088*/          OPC_SwitchType /*2 cases */, 19, MVT::i32,// ->40110
/* 40091*/            OPC_MoveParent,
/* 40092*/            OPC_RecordChild2, // #2 = $off
/* 40093*/            OPC_MoveChild2,
/* 40094*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 40097*/            OPC_MoveParent,
/* 40098*/            OPC_CheckPatternPredicate, 102, // (!Subtarget->isTarget64BitLP64())
/* 40100*/            OPC_EmitMergeInputChains1_0,
/* 40101*/            OPC_EmitConvertToTarget, 2,
/* 40103*/            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)
/* 40110*/          /*SwitchType*/ 19, MVT::i64,// ->40131
/* 40112*/            OPC_MoveParent,
/* 40113*/            OPC_RecordChild2, // #2 = $off
/* 40114*/            OPC_MoveChild2,
/* 40115*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 40118*/            OPC_MoveParent,
/* 40119*/            OPC_CheckPatternPredicate, 103, // (Subtarget->isTarget64BitLP64())
/* 40121*/            OPC_EmitMergeInputChains1_0,
/* 40122*/            OPC_EmitConvertToTarget, 2,
/* 40124*/            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)
/* 40131*/          0, // EndSwitchType
/* 40132*/        /*SwitchOpcode*/ 44, TARGET_VAL(ISD::TargetExternalSymbol),// ->40179
/* 40135*/          OPC_SwitchType /*2 cases */, 19, MVT::i32,// ->40157
/* 40138*/            OPC_MoveParent,
/* 40139*/            OPC_RecordChild2, // #2 = $off
/* 40140*/            OPC_MoveChild2,
/* 40141*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 40144*/            OPC_MoveParent,
/* 40145*/            OPC_CheckPatternPredicate, 102, // (!Subtarget->isTarget64BitLP64())
/* 40147*/            OPC_EmitMergeInputChains1_0,
/* 40148*/            OPC_EmitConvertToTarget, 2,
/* 40150*/            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)
/* 40157*/          /*SwitchType*/ 19, MVT::i64,// ->40178
/* 40159*/            OPC_MoveParent,
/* 40160*/            OPC_RecordChild2, // #2 = $off
/* 40161*/            OPC_MoveChild2,
/* 40162*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 40165*/            OPC_MoveParent,
/* 40166*/            OPC_CheckPatternPredicate, 103, // (Subtarget->isTarget64BitLP64())
/* 40168*/            OPC_EmitMergeInputChains1_0,
/* 40169*/            OPC_EmitConvertToTarget, 2,
/* 40171*/            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)
/* 40178*/          0, // EndSwitchType
/* 40179*/        0, // EndSwitchOpcode
/* 40180*/      /*Scope*/ 60, /*->40241*/
/* 40181*/        OPC_RecordChild2, // #2 = $off
/* 40182*/        OPC_MoveChild2,
/* 40183*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 40186*/        OPC_MoveParent,
/* 40187*/        OPC_Scope, 12, /*->40201*/ // 4 children in Scope
/* 40189*/          OPC_CheckPatternPredicate, 104, // (!Subtarget->is64Bit()) && (!Subtarget->useRetpolineIndirectCalls())
/* 40191*/          OPC_EmitMergeInputChains1_0,
/* 40192*/          OPC_EmitConvertToTarget, 2,
/* 40194*/          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)
/* 40201*/        /*Scope*/ 12, /*->40214*/
/* 40202*/          OPC_CheckPatternPredicate, 100, // (Subtarget->is64Bit()) && (!Subtarget->useRetpolineIndirectCalls())
/* 40204*/          OPC_EmitMergeInputChains1_0,
/* 40205*/          OPC_EmitConvertToTarget, 2,
/* 40207*/          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)
/* 40214*/        /*Scope*/ 12, /*->40227*/
/* 40215*/          OPC_CheckPatternPredicate, 105, // (Subtarget->is64Bit()) && (Subtarget->useRetpolineIndirectCalls())
/* 40217*/          OPC_EmitMergeInputChains1_0,
/* 40218*/          OPC_EmitConvertToTarget, 2,
/* 40220*/          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)
/* 40227*/        /*Scope*/ 12, /*->40240*/
/* 40228*/          OPC_CheckPatternPredicate, 106, // (!Subtarget->is64Bit()) && (Subtarget->useRetpolineIndirectCalls())
/* 40230*/          OPC_EmitMergeInputChains1_0,
/* 40231*/          OPC_EmitConvertToTarget, 2,
/* 40233*/          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)
/* 40240*/        0, /*End of Scope*/
/* 40241*/      0, /*End of Scope*/
/* 40242*/    0, /*End of Scope*/
/* 40243*/  /*SwitchOpcode*/ 83|128,1/*211*/, TARGET_VAL(X86ISD::BEXTR),// ->40458
/* 40247*/    OPC_Scope, 3|128,1/*131*/, /*->40381*/ // 2 children in Scope
/* 40250*/      OPC_MoveChild0,
/* 40251*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 40254*/      OPC_RecordMemRef,
/* 40255*/      OPC_RecordNode, // #0 = 'ld' chained node
/* 40256*/      OPC_CheckFoldableChainNode,
/* 40257*/      OPC_RecordChild1, // #1 = $src1
/* 40258*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 40260*/      OPC_Scope, 34, /*->40296*/ // 3 children in Scope
/* 40262*/        OPC_CheckPredicate, 9, // Predicate_load
/* 40264*/        OPC_MoveParent,
/* 40265*/        OPC_RecordChild1, // #2 = $cntl
/* 40266*/        OPC_MoveChild1,
/* 40267*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 40270*/        OPC_CheckPredicate, 38, // Predicate_i64immSExt32
/* 40272*/        OPC_MoveParent,
/* 40273*/        OPC_CheckType, MVT::i64,
/* 40275*/        OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 40277*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/* 40280*/        OPC_EmitMergeInputChains1_0,
/* 40281*/        OPC_EmitConvertToTarget, 2,
/* 40283*/        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)
/* 40296*/      /*Scope*/ 57, /*->40354*/
/* 40297*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 40299*/        OPC_MoveParent,
/* 40300*/        OPC_RecordChild1, // #2 = $cntl
/* 40301*/        OPC_Scope, 28, /*->40331*/ // 2 children in Scope
/* 40303*/          OPC_MoveChild1,
/* 40304*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 40307*/          OPC_MoveParent,
/* 40308*/          OPC_CheckType, MVT::i32,
/* 40310*/          OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 40312*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/* 40315*/          OPC_EmitMergeInputChains1_0,
/* 40316*/          OPC_EmitConvertToTarget, 2,
/* 40318*/          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)
/* 40331*/        /*Scope*/ 21, /*->40353*/
/* 40332*/          OPC_CheckType, MVT::i32,
/* 40334*/          OPC_CheckPatternPredicate, 108, // (Subtarget->hasBMI())
/* 40336*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/* 40339*/          OPC_EmitMergeInputChains1_0,
/* 40340*/          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)
/* 40353*/        0, /*End of Scope*/
/* 40354*/      /*Scope*/ 25, /*->40380*/
/* 40355*/        OPC_CheckPredicate, 9, // Predicate_load
/* 40357*/        OPC_MoveParent,
/* 40358*/        OPC_RecordChild1, // #2 = $src2
/* 40359*/        OPC_CheckType, MVT::i64,
/* 40361*/        OPC_CheckPatternPredicate, 108, // (Subtarget->hasBMI())
/* 40363*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/* 40366*/        OPC_EmitMergeInputChains1_0,
/* 40367*/        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)
/* 40380*/      0, /*End of Scope*/
/* 40381*/    /*Scope*/ 75, /*->40457*/
/* 40382*/      OPC_RecordChild0, // #0 = $src1
/* 40383*/      OPC_RecordChild1, // #1 = $cntl
/* 40384*/      OPC_Scope, 42, /*->40428*/ // 3 children in Scope
/* 40386*/        OPC_MoveChild1,
/* 40387*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 40390*/        OPC_Scope, 18, /*->40410*/ // 2 children in Scope
/* 40392*/          OPC_CheckPredicate, 38, // Predicate_i64immSExt32
/* 40394*/          OPC_MoveParent,
/* 40395*/          OPC_CheckType, MVT::i64,
/* 40397*/          OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 40399*/          OPC_EmitConvertToTarget, 1,
/* 40401*/          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)
/* 40410*/        /*Scope*/ 16, /*->40427*/
/* 40411*/          OPC_MoveParent,
/* 40412*/          OPC_CheckType, MVT::i32,
/* 40414*/          OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 40416*/          OPC_EmitConvertToTarget, 1,
/* 40418*/          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)
/* 40427*/        0, /*End of Scope*/
/* 40428*/      /*Scope*/ 13, /*->40442*/
/* 40429*/        OPC_CheckType, MVT::i32,
/* 40431*/        OPC_CheckPatternPredicate, 108, // (Subtarget->hasBMI())
/* 40433*/        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)
/* 40442*/      /*Scope*/ 13, /*->40456*/
/* 40443*/        OPC_CheckType, MVT::i64,
/* 40445*/        OPC_CheckPatternPredicate, 108, // (Subtarget->hasBMI())
/* 40447*/        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)
/* 40456*/      0, /*End of Scope*/
/* 40457*/    0, /*End of Scope*/
/* 40458*/  /*SwitchOpcode*/ 108|128,74|128,1/*25964*/, TARGET_VAL(ISD::AND),// ->66427
/* 40463*/    OPC_Scope, 60|128,2/*316*/, /*->40782*/ // 48 children in Scope
/* 40466*/      OPC_MoveChild0,
/* 40467*/      OPC_SwitchOpcode /*2 cases */, 103|128,1/*231*/, TARGET_VAL(ISD::LOAD),// ->40703
/* 40472*/        OPC_RecordMemRef,
/* 40473*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 40474*/        OPC_CheckFoldableChainNode,
/* 40475*/        OPC_RecordChild1, // #1 = $src
/* 40476*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 40478*/        OPC_Scope, 9|128,1/*137*/, /*->40618*/ // 3 children in Scope
/* 40481*/          OPC_CheckPredicate, 9, // Predicate_load
/* 40483*/          OPC_MoveParent,
/* 40484*/          OPC_RecordChild1, // #2 = $mask
/* 40485*/          OPC_MoveChild1,
/* 40486*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 40489*/          OPC_CheckPredicate, 44, // Predicate_AndMask64
/* 40491*/          OPC_MoveParent,
/* 40492*/          OPC_CheckType, MVT::i64,
/* 40494*/          OPC_Scope, 24, /*->40520*/ // 3 children in Scope
/* 40496*/            OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 40498*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/* 40501*/            OPC_EmitMergeInputChains1_0,
/* 40502*/            OPC_EmitConvertToTarget, 2,
/* 40504*/            OPC_EmitNodeXForm, 3, 8, // BEXTRMaskXForm
/* 40507*/            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))
/* 40520*/          /*Scope*/ 46, /*->40567*/
/* 40521*/            OPC_CheckPatternPredicate, 109, // (Subtarget->hasBMI()) && (!Subtarget->hasBMI2()) && (!Subtarget->hasTBM())
/* 40523*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/* 40526*/            OPC_EmitMergeInputChains1_0,
/* 40527*/            OPC_EmitInteger, MVT::i64, 0, 
/* 40530*/            OPC_EmitConvertToTarget, 2,
/* 40532*/            OPC_EmitNodeXForm, 3, 9, // BEXTRMaskXForm
/* 40535*/            OPC_EmitNode1, TARGET_VAL(X86::MOV32ri), 0,
                          MVT::i32, 1/*#Ops*/, 10,  // Results = #11
/* 40542*/            OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/* 40545*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                          MVT::i64, 3/*#Ops*/, 8, 11, 12,  // Results = #13
/* 40554*/            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] }))
/* 40567*/          /*Scope*/ 49, /*->40617*/
/* 40568*/            OPC_CheckPatternPredicate, 110, // (Subtarget->hasBMI2()) && (!Subtarget->hasTBM())
/* 40570*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/* 40573*/            OPC_EmitMergeInputChains1_0,
/* 40574*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i64, 0/*#Ops*/,  // Results = #8
/* 40580*/            OPC_EmitConvertToTarget, 2,
/* 40582*/            OPC_EmitNodeXForm, 4, 9, // CountTrailingOnes
/* 40585*/            OPC_EmitNode1, TARGET_VAL(X86::MOV8ri), 0,
                          MVT::i8, 1/*#Ops*/, 10,  // Results = #11
/* 40592*/            OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 40595*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i64, 3/*#Ops*/, 8, 11, 12,  // Results = #13
/* 40604*/            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] }))
/* 40617*/          0, /*End of Scope*/
/* 40618*/        /*Scope*/ 41, /*->40660*/
/* 40619*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/* 40621*/          OPC_MoveParent,
/* 40622*/          OPC_MoveChild1,
/* 40623*/          OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 40626*/          OPC_RecordChild0, // #2 = $src1
/* 40627*/          OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 40638*/          OPC_MoveParent,
/* 40639*/          OPC_CheckType, MVT::i32,
/* 40641*/          OPC_CheckPatternPredicate, 108, // (Subtarget->hasBMI())
/* 40643*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 40646*/          OPC_EmitMergeInputChains1_0,
/* 40647*/          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)
/* 40660*/        /*Scope*/ 41, /*->40702*/
/* 40661*/          OPC_CheckPredicate, 9, // Predicate_load
/* 40663*/          OPC_MoveParent,
/* 40664*/          OPC_MoveChild1,
/* 40665*/          OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 40668*/          OPC_RecordChild0, // #2 = $src1
/* 40669*/          OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 40680*/          OPC_MoveParent,
/* 40681*/          OPC_CheckType, MVT::i64,
/* 40683*/          OPC_CheckPatternPredicate, 108, // (Subtarget->hasBMI())
/* 40685*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 40688*/          OPC_EmitMergeInputChains1_0,
/* 40689*/          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)
/* 40702*/        0, /*End of Scope*/
/* 40703*/      /*SwitchOpcode*/ 75, TARGET_VAL(ISD::XOR),// ->40781
/* 40706*/        OPC_RecordChild0, // #0 = $src1
/* 40707*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 40718*/        OPC_MoveParent,
/* 40719*/        OPC_MoveChild1,
/* 40720*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 40723*/        OPC_RecordMemRef,
/* 40724*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 40725*/        OPC_CheckFoldableChainNode,
/* 40726*/        OPC_RecordChild1, // #2 = $src2
/* 40727*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 40729*/        OPC_Scope, 24, /*->40755*/ // 2 children in Scope
/* 40731*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/* 40733*/          OPC_MoveParent,
/* 40734*/          OPC_CheckType, MVT::i32,
/* 40736*/          OPC_CheckPatternPredicate, 108, // (Subtarget->hasBMI())
/* 40738*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 40741*/          OPC_EmitMergeInputChains1_1,
/* 40742*/          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)
/* 40755*/        /*Scope*/ 24, /*->40780*/
/* 40756*/          OPC_CheckPredicate, 9, // Predicate_load
/* 40758*/          OPC_MoveParent,
/* 40759*/          OPC_CheckType, MVT::i64,
/* 40761*/          OPC_CheckPatternPredicate, 108, // (Subtarget->hasBMI())
/* 40763*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 40766*/          OPC_EmitMergeInputChains1_1,
/* 40767*/          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)
/* 40780*/        0, /*End of Scope*/
/* 40781*/      0, // EndSwitchOpcode
/* 40782*/    /*Scope*/ 105, /*->40888*/
/* 40783*/      OPC_RecordChild0, // #0 = $src1
/* 40784*/      OPC_MoveChild1,
/* 40785*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 40788*/      OPC_RecordMemRef,
/* 40789*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 40790*/      OPC_CheckFoldableChainNode,
/* 40791*/      OPC_RecordChild1, // #2 = $src2
/* 40792*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 40794*/      OPC_Scope, 22, /*->40818*/ // 4 children in Scope
/* 40796*/        OPC_CheckPredicate, 5, // Predicate_loadi8
/* 40798*/        OPC_MoveParent,
/* 40799*/        OPC_CheckType, MVT::i8,
/* 40801*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 40804*/        OPC_EmitMergeInputChains1_1,
/* 40805*/        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)
/* 40818*/      /*Scope*/ 22, /*->40841*/
/* 40819*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 40821*/        OPC_MoveParent,
/* 40822*/        OPC_CheckType, MVT::i16,
/* 40824*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 40827*/        OPC_EmitMergeInputChains1_1,
/* 40828*/        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)
/* 40841*/      /*Scope*/ 22, /*->40864*/
/* 40842*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 40844*/        OPC_MoveParent,
/* 40845*/        OPC_CheckType, MVT::i32,
/* 40847*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 40850*/        OPC_EmitMergeInputChains1_1,
/* 40851*/        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)
/* 40864*/      /*Scope*/ 22, /*->40887*/
/* 40865*/        OPC_CheckPredicate, 9, // Predicate_load
/* 40867*/        OPC_MoveParent,
/* 40868*/        OPC_CheckType, MVT::i64,
/* 40870*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 40873*/        OPC_EmitMergeInputChains1_1,
/* 40874*/        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)
/* 40887*/      0, /*End of Scope*/
/* 40888*/    /*Scope*/ 58|128,2/*314*/, /*->41204*/
/* 40890*/      OPC_MoveChild0,
/* 40891*/      OPC_SwitchOpcode /*3 cases */, 104, TARGET_VAL(ISD::LOAD),// ->40999
/* 40895*/        OPC_RecordMemRef,
/* 40896*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 40897*/        OPC_CheckFoldableChainNode,
/* 40898*/        OPC_RecordChild1, // #1 = $src2
/* 40899*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 40901*/        OPC_Scope, 23, /*->40926*/ // 4 children in Scope
/* 40903*/          OPC_CheckPredicate, 5, // Predicate_loadi8
/* 40905*/          OPC_MoveParent,
/* 40906*/          OPC_RecordChild1, // #2 = $src1
/* 40907*/          OPC_CheckType, MVT::i8,
/* 40909*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 40912*/          OPC_EmitMergeInputChains1_0,
/* 40913*/          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)
/* 40926*/        /*Scope*/ 23, /*->40950*/
/* 40927*/          OPC_CheckPredicate, 7, // Predicate_loadi16
/* 40929*/          OPC_MoveParent,
/* 40930*/          OPC_RecordChild1, // #2 = $src1
/* 40931*/          OPC_CheckType, MVT::i16,
/* 40933*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 40936*/          OPC_EmitMergeInputChains1_0,
/* 40937*/          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)
/* 40950*/        /*Scope*/ 23, /*->40974*/
/* 40951*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/* 40953*/          OPC_MoveParent,
/* 40954*/          OPC_RecordChild1, // #2 = $src1
/* 40955*/          OPC_CheckType, MVT::i32,
/* 40957*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 40960*/          OPC_EmitMergeInputChains1_0,
/* 40961*/          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)
/* 40974*/        /*Scope*/ 23, /*->40998*/
/* 40975*/          OPC_CheckPredicate, 9, // Predicate_load
/* 40977*/          OPC_MoveParent,
/* 40978*/          OPC_RecordChild1, // #2 = $src1
/* 40979*/          OPC_CheckType, MVT::i64,
/* 40981*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 40984*/          OPC_EmitMergeInputChains1_0,
/* 40985*/          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)
/* 40998*/        0, /*End of Scope*/
/* 40999*/      /*SwitchOpcode*/ 90, TARGET_VAL(ISD::XOR),// ->41092
/* 41002*/        OPC_RecordChild0, // #0 = $src
/* 41003*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 41014*/        OPC_MoveParent,
/* 41015*/        OPC_MoveChild1,
/* 41016*/        OPC_CheckOpcode, TARGET_VAL(ISD::ADD),
/* 41019*/        OPC_CheckChild0Same, 0,
/* 41021*/        OPC_Scope, 29, /*->41052*/ // 2 children in Scope
/* 41023*/          OPC_CheckChild1Integer, 1, 
/* 41025*/          OPC_MoveParent,
/* 41026*/          OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->41039
/* 41029*/            OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 41031*/            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)
/* 41039*/          /*SwitchType*/ 10, MVT::i64,// ->41051
/* 41041*/            OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 41043*/            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)
/* 41051*/          0, // EndSwitchType
/* 41052*/        /*Scope*/ 38, /*->41091*/
/* 41053*/          OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 41064*/          OPC_MoveParent,
/* 41065*/          OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->41078
/* 41068*/            OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 41070*/            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)
/* 41078*/          /*SwitchType*/ 10, MVT::i64,// ->41090
/* 41080*/            OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 41082*/            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)
/* 41090*/          0, // EndSwitchType
/* 41091*/        0, /*End of Scope*/
/* 41092*/      /*SwitchOpcode*/ 108, TARGET_VAL(ISD::ADD),// ->41203
/* 41095*/        OPC_RecordChild0, // #0 = $src
/* 41096*/        OPC_Scope, 47, /*->41145*/ // 2 children in Scope
/* 41098*/          OPC_CheckChild1Integer, 1, 
/* 41100*/          OPC_MoveParent,
/* 41101*/          OPC_MoveChild1,
/* 41102*/          OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 41105*/          OPC_CheckChild0Same, 0,
/* 41107*/          OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 41118*/          OPC_MoveParent,
/* 41119*/          OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->41132
/* 41122*/            OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 41124*/            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)
/* 41132*/          /*SwitchType*/ 10, MVT::i64,// ->41144
/* 41134*/            OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 41136*/            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)
/* 41144*/          0, // EndSwitchType
/* 41145*/        /*Scope*/ 56, /*->41202*/
/* 41146*/          OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 41157*/          OPC_MoveParent,
/* 41158*/          OPC_MoveChild1,
/* 41159*/          OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 41162*/          OPC_CheckChild0Same, 0,
/* 41164*/          OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 41175*/          OPC_MoveParent,
/* 41176*/          OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->41189
/* 41179*/            OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 41181*/            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)
/* 41189*/          /*SwitchType*/ 10, MVT::i64,// ->41201
/* 41191*/            OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 41193*/            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)
/* 41201*/          0, // EndSwitchType
/* 41202*/        0, /*End of Scope*/
/* 41203*/      0, // EndSwitchOpcode
/* 41204*/    /*Scope*/ 4|128,1/*132*/, /*->41338*/
/* 41206*/      OPC_RecordChild0, // #0 = $src1
/* 41207*/      OPC_MoveChild1,
/* 41208*/      OPC_CheckOpcode, TARGET_VAL(ISD::ROTL),
/* 41211*/      OPC_CheckChild0Integer, 126|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551614*/, 
/* 41222*/      OPC_MoveChild1,
/* 41223*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 41226*/      OPC_RecordChild0, // #1 = $src2
/* 41227*/      OPC_MoveChild1,
/* 41228*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 41231*/      OPC_MoveParent,
/* 41232*/      OPC_CheckType, MVT::i8,
/* 41234*/      OPC_Scope, 33, /*->41269*/ // 3 children in Scope
/* 41236*/        OPC_CheckPredicate, 12, // Predicate_shiftMask16
/* 41238*/        OPC_MoveParent,
/* 41239*/        OPC_MoveParent,
/* 41240*/        OPC_CheckType, MVT::i16,
/* 41242*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i16, 0/*#Ops*/,  // Results = #2
/* 41248*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 41251*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i16, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/* 41260*/        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_shiftMask16>>)) - Complexity = 18
                  // Dst: (BTR16rr:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, (INSERT_SUBREG:{ *:[i16] } (IMPLICIT_DEF:{ *:[i16] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/* 41269*/      /*Scope*/ 33, /*->41303*/
/* 41270*/        OPC_CheckPredicate, 6, // Predicate_shiftMask32
/* 41272*/        OPC_MoveParent,
/* 41273*/        OPC_MoveParent,
/* 41274*/        OPC_CheckType, MVT::i32,
/* 41276*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i32, 0/*#Ops*/,  // Results = #2
/* 41282*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 41285*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i32, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/* 41294*/        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_shiftMask32>>)) - Complexity = 18
                  // Dst: (BTR32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/* 41303*/      /*Scope*/ 33, /*->41337*/
/* 41304*/        OPC_CheckPredicate, 10, // Predicate_shiftMask64
/* 41306*/        OPC_MoveParent,
/* 41307*/        OPC_MoveParent,
/* 41308*/        OPC_CheckType, MVT::i64,
/* 41310*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i64, 0/*#Ops*/,  // Results = #2
/* 41316*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 41319*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i64, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/* 41328*/        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_shiftMask64>>)) - Complexity = 18
                  // Dst: (BTR64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/* 41337*/      0, /*End of Scope*/
/* 41338*/    /*Scope*/ 6|128,1/*134*/, /*->41474*/
/* 41340*/      OPC_MoveChild0,
/* 41341*/      OPC_CheckOpcode, TARGET_VAL(ISD::ROTL),
/* 41344*/      OPC_CheckChild0Integer, 126|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551614*/, 
/* 41355*/      OPC_MoveChild1,
/* 41356*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 41359*/      OPC_RecordChild0, // #0 = $src2
/* 41360*/      OPC_MoveChild1,
/* 41361*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 41364*/      OPC_MoveParent,
/* 41365*/      OPC_CheckType, MVT::i8,
/* 41367*/      OPC_Scope, 34, /*->41403*/ // 3 children in Scope
/* 41369*/        OPC_CheckPredicate, 12, // Predicate_shiftMask16
/* 41371*/        OPC_MoveParent,
/* 41372*/        OPC_MoveParent,
/* 41373*/        OPC_RecordChild1, // #1 = $src1
/* 41374*/        OPC_CheckType, MVT::i16,
/* 41376*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i16, 0/*#Ops*/,  // Results = #2
/* 41382*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 41385*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i16, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 41394*/        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_shiftMask16>>), GR16:{ *:[i16] }:$src1) - Complexity = 18
                  // Dst: (BTR16rr:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, (INSERT_SUBREG:{ *:[i16] } (IMPLICIT_DEF:{ *:[i16] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/* 41403*/      /*Scope*/ 34, /*->41438*/
/* 41404*/        OPC_CheckPredicate, 6, // Predicate_shiftMask32
/* 41406*/        OPC_MoveParent,
/* 41407*/        OPC_MoveParent,
/* 41408*/        OPC_RecordChild1, // #1 = $src1
/* 41409*/        OPC_CheckType, MVT::i32,
/* 41411*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i32, 0/*#Ops*/,  // Results = #2
/* 41417*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 41420*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i32, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 41429*/        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_shiftMask32>>), GR32:{ *:[i32] }:$src1) - Complexity = 18
                  // Dst: (BTR32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/* 41438*/      /*Scope*/ 34, /*->41473*/
/* 41439*/        OPC_CheckPredicate, 10, // Predicate_shiftMask64
/* 41441*/        OPC_MoveParent,
/* 41442*/        OPC_MoveParent,
/* 41443*/        OPC_RecordChild1, // #1 = $src1
/* 41444*/        OPC_CheckType, MVT::i64,
/* 41446*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i64, 0/*#Ops*/,  // Results = #2
/* 41452*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 41455*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 41464*/        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_shiftMask64>>), GR64:{ *:[i64] }:$src1) - Complexity = 18
                  // Dst: (BTR64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/* 41473*/      0, /*End of Scope*/
/* 41474*/    /*Scope*/ 72, /*->41547*/
/* 41475*/      OPC_CheckAndImm, 127|128,1/*255*/, 
/* 41478*/      OPC_MoveChild0,
/* 41479*/      OPC_CheckOpcode, TARGET_VAL(ISD::SRL),
/* 41482*/      OPC_RecordChild0, // #0 = $src
/* 41483*/      OPC_CheckChild1Integer, 8, 
/* 41485*/      OPC_CheckChild1Type, MVT::i8,
/* 41487*/      OPC_CheckPredicate, 17, // Predicate_srl_su
/* 41489*/      OPC_MoveParent,
/* 41490*/      OPC_SwitchType /*2 cases */, 18, MVT::i32,// ->41511
/* 41493*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
/* 41496*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i8, 2/*#Ops*/, 0, 1,  // Results = #2
/* 41504*/        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] }))
/* 41511*/      /*SwitchType*/ 33, MVT::i64,// ->41546
/* 41513*/        OPC_EmitInteger, MVT::i64, 0, 
/* 41516*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
/* 41519*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i8, 2/*#Ops*/, 0, 2,  // Results = #3
/* 41527*/        OPC_EmitNode1, TARGET_VAL(X86::MOVZX32rr8_NOREX), 0,
                      MVT::i32, 1/*#Ops*/, 3,  // Results = #4
/* 41534*/        OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/* 41537*/        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] })
/* 41546*/      0, // EndSwitchType
/* 41547*/    /*Scope*/ 25, /*->41573*/
/* 41548*/      OPC_MoveChild0,
/* 41549*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::SETCC_CARRY),
/* 41552*/      OPC_CheckChild0Integer, 2, 
/* 41554*/      OPC_RecordChild1, // #0 = physreg input EFLAGS
/* 41555*/      OPC_MoveParent,
/* 41556*/      OPC_CheckChild1Integer, 1, 
/* 41558*/      OPC_CheckType, MVT::i8,
/* 41560*/      OPC_EmitInteger, MVT::i8, 2, 
/* 41563*/      OPC_EmitCopyToReg, 0, X86::EFLAGS,
/* 41566*/      OPC_MorphNodeTo1, TARGET_VAL(X86::SETCCr), 0|OPFL_GlueInput,
                    MVT::i8, 1/*#Ops*/, 1, 
                // Src: (and:{ *:[i8] } (X86setcc_c:{ *:[i8] } 2:{ *:[i8] }, EFLAGS:{ *:[i32] }), 1:{ *:[i8] }) - Complexity = 16
                // Dst: (SETCCr:{ *:[i8] } 2:{ *:[i8] })
/* 41573*/    /*Scope*/ 35, /*->41609*/
/* 41574*/      OPC_CheckAndImm, 127|128,127|128,127|128,127|128,15/*4294967295*/, 
/* 41580*/      OPC_MoveChild0,
/* 41581*/      OPC_CheckOpcode, TARGET_VAL(ISD::ANY_EXTEND),
/* 41584*/      OPC_RecordChild0, // #0 = $src
/* 41585*/      OPC_MoveChild0,
/* 41586*/      OPC_CheckPredicate, 45, // Predicate_def32
/* 41588*/      OPC_CheckType, MVT::i32,
/* 41590*/      OPC_MoveParent,
/* 41591*/      OPC_MoveParent,
/* 41592*/      OPC_CheckType, MVT::i64,
/* 41594*/      OPC_EmitInteger, MVT::i64, 0, 
/* 41597*/      OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/* 41600*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                    MVT::i64, 3/*#Ops*/, 1, 0, 2, 
                // Src: (and:{ *:[i64] } (anyext:{ *:[i64] } GR32:{ *:[i32] }<<P:Predicate_def32>>:$src), 4294967295:{ *:[i64] }) - Complexity = 12
                // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, GR32:{ *:[i32] }:$src, sub_32bit:{ *:[i32] })
/* 41609*/    /*Scope*/ 114, /*->41724*/
/* 41610*/      OPC_RecordChild0, // #0 = $src
/* 41611*/      OPC_MoveChild1,
/* 41612*/      OPC_SwitchOpcode /*2 cases */, 73, TARGET_VAL(ISD::ADD),// ->41689
/* 41616*/        OPC_CheckChild0Same, 0,
/* 41618*/        OPC_Scope, 38, /*->41658*/ // 2 children in Scope
/* 41620*/          OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 41631*/          OPC_MoveParent,
/* 41632*/          OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->41645
/* 41635*/            OPC_CheckPatternPredicate, 108, // (Subtarget->hasBMI())
/* 41637*/            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)
/* 41645*/          /*SwitchType*/ 10, MVT::i64,// ->41657
/* 41647*/            OPC_CheckPatternPredicate, 108, // (Subtarget->hasBMI())
/* 41649*/            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)
/* 41657*/          0, // EndSwitchType
/* 41658*/        /*Scope*/ 29, /*->41688*/
/* 41659*/          OPC_CheckChild1Integer, 1, 
/* 41661*/          OPC_MoveParent,
/* 41662*/          OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->41675
/* 41665*/            OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 41667*/            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)
/* 41675*/          /*SwitchType*/ 10, MVT::i64,// ->41687
/* 41677*/            OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 41679*/            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)
/* 41687*/          0, // EndSwitchType
/* 41688*/        0, /*End of Scope*/
/* 41689*/      /*SwitchOpcode*/ 31, TARGET_VAL(ISD::SUB),// ->41723
/* 41692*/        OPC_CheckChild0Integer, 0, 
/* 41694*/        OPC_CheckChild1Same, 0,
/* 41696*/        OPC_MoveParent,
/* 41697*/        OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->41710
/* 41700*/          OPC_CheckPatternPredicate, 108, // (Subtarget->hasBMI())
/* 41702*/          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)
/* 41710*/        /*SwitchType*/ 10, MVT::i64,// ->41722
/* 41712*/          OPC_CheckPatternPredicate, 108, // (Subtarget->hasBMI())
/* 41714*/          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)
/* 41722*/        0, // EndSwitchType
/* 41723*/      0, // EndSwitchOpcode
/* 41724*/    /*Scope*/ 117, /*->41842*/
/* 41725*/      OPC_MoveChild0,
/* 41726*/      OPC_SwitchOpcode /*2 cases */, 76, TARGET_VAL(ISD::ADD),// ->41806
/* 41730*/        OPC_RecordChild0, // #0 = $src
/* 41731*/        OPC_Scope, 40, /*->41773*/ // 2 children in Scope
/* 41733*/          OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 41744*/          OPC_MoveParent,
/* 41745*/          OPC_CheckChild1Same, 0,
/* 41747*/          OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->41760
/* 41750*/            OPC_CheckPatternPredicate, 108, // (Subtarget->hasBMI())
/* 41752*/            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)
/* 41760*/          /*SwitchType*/ 10, MVT::i64,// ->41772
/* 41762*/            OPC_CheckPatternPredicate, 108, // (Subtarget->hasBMI())
/* 41764*/            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)
/* 41772*/          0, // EndSwitchType
/* 41773*/        /*Scope*/ 31, /*->41805*/
/* 41774*/          OPC_CheckChild1Integer, 1, 
/* 41776*/          OPC_MoveParent,
/* 41777*/          OPC_CheckChild1Same, 0,
/* 41779*/          OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->41792
/* 41782*/            OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 41784*/            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)
/* 41792*/          /*SwitchType*/ 10, MVT::i64,// ->41804
/* 41794*/            OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 41796*/            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)
/* 41804*/          0, // EndSwitchType
/* 41805*/        0, /*End of Scope*/
/* 41806*/      /*SwitchOpcode*/ 32, TARGET_VAL(ISD::SUB),// ->41841
/* 41809*/        OPC_CheckChild0Integer, 0, 
/* 41811*/        OPC_RecordChild1, // #0 = $src
/* 41812*/        OPC_MoveParent,
/* 41813*/        OPC_CheckChild1Same, 0,
/* 41815*/        OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->41828
/* 41818*/          OPC_CheckPatternPredicate, 108, // (Subtarget->hasBMI())
/* 41820*/          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)
/* 41828*/        /*SwitchType*/ 10, MVT::i64,// ->41840
/* 41830*/          OPC_CheckPatternPredicate, 108, // (Subtarget->hasBMI())
/* 41832*/          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)
/* 41840*/        0, // EndSwitchType
/* 41841*/      0, // EndSwitchOpcode
/* 41842*/    /*Scope*/ 109, /*->41952*/
/* 41843*/      OPC_RecordChild0, // #0 = $src1
/* 41844*/      OPC_MoveChild1,
/* 41845*/      OPC_CheckOpcode, TARGET_VAL(ISD::ROTL),
/* 41848*/      OPC_CheckChild0Integer, 126|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551614*/, 
/* 41859*/      OPC_RecordChild1, // #1 = $src2
/* 41860*/      OPC_CheckChild1Type, MVT::i8,
/* 41862*/      OPC_MoveParent,
/* 41863*/      OPC_SwitchType /*3 cases */, 27, MVT::i16,// ->41893
/* 41866*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i16, 0/*#Ops*/,  // Results = #2
/* 41872*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 41875*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i16, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/* 41884*/        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] }))
/* 41893*/      /*SwitchType*/ 27, MVT::i32,// ->41922
/* 41895*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i32, 0/*#Ops*/,  // Results = #2
/* 41901*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 41904*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i32, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/* 41913*/        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] }))
/* 41922*/      /*SwitchType*/ 27, MVT::i64,// ->41951
/* 41924*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i64, 0/*#Ops*/,  // Results = #2
/* 41930*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 41933*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i64, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/* 41942*/        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] }))
/* 41951*/      0, // EndSwitchType
/* 41952*/    /*Scope*/ 109, /*->42062*/
/* 41953*/      OPC_MoveChild0,
/* 41954*/      OPC_CheckOpcode, TARGET_VAL(ISD::ROTL),
/* 41957*/      OPC_CheckChild0Integer, 126|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551614*/, 
/* 41968*/      OPC_RecordChild1, // #0 = $src2
/* 41969*/      OPC_CheckChild1Type, MVT::i8,
/* 41971*/      OPC_MoveParent,
/* 41972*/      OPC_RecordChild1, // #1 = $src1
/* 41973*/      OPC_SwitchType /*3 cases */, 27, MVT::i16,// ->42003
/* 41976*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i16, 0/*#Ops*/,  // Results = #2
/* 41982*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 41985*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i16, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 41994*/        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] }))
/* 42003*/      /*SwitchType*/ 27, MVT::i32,// ->42032
/* 42005*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i32, 0/*#Ops*/,  // Results = #2
/* 42011*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 42014*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i32, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 42023*/        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] }))
/* 42032*/      /*SwitchType*/ 27, MVT::i64,// ->42061
/* 42034*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i64, 0/*#Ops*/,  // Results = #2
/* 42040*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 42043*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 42052*/        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] }))
/* 42061*/      0, // EndSwitchType
/* 42062*/    /*Scope*/ 25, /*->42088*/
/* 42063*/      OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/* 42067*/      OPC_RecordChild0, // #0 = $src1
/* 42068*/      OPC_CheckType, MVT::i32,
/* 42070*/      OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/* 42073*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::i16, 2/*#Ops*/, 0, 1,  // Results = #2
/* 42081*/      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] }))
/* 42088*/    /*Scope*/ 57, /*->42146*/
/* 42089*/      OPC_CheckAndImm, 127|128,1/*255*/, 
/* 42092*/      OPC_RecordChild0, // #0 = $src1
/* 42093*/      OPC_SwitchType /*2 cases */, 18, MVT::i32,// ->42114
/* 42096*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 42099*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i8, 2/*#Ops*/, 0, 1,  // Results = #2
/* 42107*/        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] }))
/* 42114*/      /*SwitchType*/ 29, MVT::i16,// ->42145
/* 42116*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 42119*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i8, 2/*#Ops*/, 0, 1,  // Results = #2
/* 42127*/        OPC_EmitNode1, TARGET_VAL(X86::MOVZX32rr8), 0,
                      MVT::i32, 1/*#Ops*/, 2,  // Results = #3
/* 42134*/        OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/* 42137*/        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] })
/* 42145*/      0, // EndSwitchType
/* 42146*/    /*Scope*/ 42, /*->42189*/
/* 42147*/      OPC_CheckAndImm, 127|128,127|128,127|128,127|128,15/*4294967295*/, 
/* 42153*/      OPC_RecordChild0, // #0 = $src
/* 42154*/      OPC_CheckType, MVT::i64,
/* 42156*/      OPC_EmitInteger, MVT::i64, 0, 
/* 42159*/      OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/* 42162*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::i32, 2/*#Ops*/, 0, 2,  // Results = #3
/* 42170*/      OPC_EmitNode1, TARGET_VAL(X86::MOV32rr), 0,
                    MVT::i32, 1/*#Ops*/, 3,  // Results = #4
/* 42177*/      OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/* 42180*/      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] })
/* 42189*/    /*Scope*/ 40, /*->42230*/
/* 42190*/      OPC_CheckAndImm, 127|128,127|128,3/*65535*/, 
/* 42194*/      OPC_RecordChild0, // #0 = $src
/* 42195*/      OPC_CheckType, MVT::i64,
/* 42197*/      OPC_EmitInteger, MVT::i64, 0, 
/* 42200*/      OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/* 42203*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::i16, 2/*#Ops*/, 0, 2,  // Results = #3
/* 42211*/      OPC_EmitNode1, TARGET_VAL(X86::MOVZX32rr16), 0,
                    MVT::i32, 1/*#Ops*/, 3,  // Results = #4
/* 42218*/      OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/* 42221*/      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] })
/* 42230*/    /*Scope*/ 39, /*->42270*/
/* 42231*/      OPC_CheckAndImm, 127|128,1/*255*/, 
/* 42234*/      OPC_RecordChild0, // #0 = $src
/* 42235*/      OPC_CheckType, MVT::i64,
/* 42237*/      OPC_EmitInteger, MVT::i64, 0, 
/* 42240*/      OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 42243*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::i8, 2/*#Ops*/, 0, 2,  // Results = #3
/* 42251*/      OPC_EmitNode1, TARGET_VAL(X86::MOVZX32rr8), 0,
                    MVT::i32, 1/*#Ops*/, 3,  // Results = #4
/* 42258*/      OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/* 42261*/      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] })
/* 42270*/    /*Scope*/ 88|128,2/*344*/, /*->42616*/
/* 42272*/      OPC_RecordChild0, // #0 = $src1
/* 42273*/      OPC_RecordChild1, // #1 = $mask
/* 42274*/      OPC_MoveChild1,
/* 42275*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 42278*/      OPC_Scope, 21, /*->42301*/ // 10 children in Scope
/* 42280*/        OPC_CheckPredicate, 46, // Predicate_BTRMask64
/* 42282*/        OPC_MoveParent,
/* 42283*/        OPC_CheckType, MVT::i64,
/* 42285*/        OPC_CheckPatternPredicate, 111, // (shouldOptForSize(MF))
/* 42287*/        OPC_EmitConvertToTarget, 1,
/* 42289*/        OPC_EmitNodeXForm, 5, 2, // BTRXForm
/* 42292*/        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))
/* 42301*/      /*Scope*/ 45, /*->42347*/
/* 42302*/        OPC_CheckPredicate, 47, // Predicate_i64immZExt32SExt8
/* 42304*/        OPC_MoveParent,
/* 42305*/        OPC_CheckType, MVT::i64,
/* 42307*/        OPC_EmitInteger, MVT::i64, 0, 
/* 42310*/        OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/* 42313*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 42321*/        OPC_EmitConvertToTarget, 1,
/* 42323*/        OPC_EmitNodeXForm, 6, 5, // GetLo32XForm
/* 42326*/        OPC_EmitNode2, TARGET_VAL(X86::AND32ri8), 0,
                      MVT::i32, MVT::i32, 2/*#Ops*/, 4, 6,  // Results = #7 #8
/* 42335*/        OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/* 42338*/        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] }), (GetLo32XForm:{ *:[i32] } (imm:{ *:[i64] }):$imm)), sub_32bit:{ *:[i32] })
/* 42347*/      /*Scope*/ 45, /*->42393*/
/* 42348*/        OPC_CheckPredicate, 48, // Predicate_i64immZExt32
/* 42350*/        OPC_MoveParent,
/* 42351*/        OPC_CheckType, MVT::i64,
/* 42353*/        OPC_EmitInteger, MVT::i64, 0, 
/* 42356*/        OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/* 42359*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 42367*/        OPC_EmitConvertToTarget, 1,
/* 42369*/        OPC_EmitNodeXForm, 6, 5, // GetLo32XForm
/* 42372*/        OPC_EmitNode2, TARGET_VAL(X86::AND32ri), 0,
                      MVT::i32, MVT::i32, 2/*#Ops*/, 4, 6,  // Results = #7 #8
/* 42381*/        OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/* 42384*/        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] })
/* 42393*/      /*Scope*/ 21, /*->42415*/
/* 42394*/        OPC_CheckPredicate, 44, // Predicate_AndMask64
/* 42396*/        OPC_MoveParent,
/* 42397*/        OPC_CheckType, MVT::i64,
/* 42399*/        OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 42401*/        OPC_EmitConvertToTarget, 1,
/* 42403*/        OPC_EmitNodeXForm, 3, 2, // BEXTRMaskXForm
/* 42406*/        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))
/* 42415*/      /*Scope*/ 16, /*->42432*/
/* 42416*/        OPC_CheckPredicate, 13, // Predicate_i16immSExt8
/* 42418*/        OPC_MoveParent,
/* 42419*/        OPC_CheckType, MVT::i16,
/* 42421*/        OPC_EmitConvertToTarget, 1,
/* 42423*/        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)
/* 42432*/      /*Scope*/ 16, /*->42449*/
/* 42433*/        OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/* 42435*/        OPC_MoveParent,
/* 42436*/        OPC_CheckType, MVT::i32,
/* 42438*/        OPC_EmitConvertToTarget, 1,
/* 42440*/        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)
/* 42449*/      /*Scope*/ 16, /*->42466*/
/* 42450*/        OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/* 42452*/        OPC_MoveParent,
/* 42453*/        OPC_CheckType, MVT::i64,
/* 42455*/        OPC_EmitConvertToTarget, 1,
/* 42457*/        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)
/* 42466*/      /*Scope*/ 16, /*->42483*/
/* 42467*/        OPC_CheckPredicate, 38, // Predicate_i64immSExt32
/* 42469*/        OPC_MoveParent,
/* 42470*/        OPC_CheckType, MVT::i64,
/* 42472*/        OPC_EmitConvertToTarget, 1,
/* 42474*/        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)
/* 42483*/      /*Scope*/ 88, /*->42572*/
/* 42484*/        OPC_CheckPredicate, 44, // Predicate_AndMask64
/* 42486*/        OPC_MoveParent,
/* 42487*/        OPC_CheckType, MVT::i64,
/* 42489*/        OPC_Scope, 38, /*->42529*/ // 2 children in Scope
/* 42491*/          OPC_CheckPatternPredicate, 109, // (Subtarget->hasBMI()) && (!Subtarget->hasBMI2()) && (!Subtarget->hasTBM())
/* 42493*/          OPC_EmitInteger, MVT::i64, 0, 
/* 42496*/          OPC_EmitConvertToTarget, 1,
/* 42498*/          OPC_EmitNodeXForm, 3, 3, // BEXTRMaskXForm
/* 42501*/          OPC_EmitNode1, TARGET_VAL(X86::MOV32ri), 0,
                        MVT::i32, 1/*#Ops*/, 4,  // Results = #5
/* 42508*/          OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/* 42511*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                        MVT::i64, 3/*#Ops*/, 2, 5, 6,  // Results = #7
/* 42520*/          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] }))
/* 42529*/        /*Scope*/ 41, /*->42571*/
/* 42530*/          OPC_CheckPatternPredicate, 110, // (Subtarget->hasBMI2()) && (!Subtarget->hasTBM())
/* 42532*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i64, 0/*#Ops*/,  // Results = #2
/* 42538*/          OPC_EmitConvertToTarget, 1,
/* 42540*/          OPC_EmitNodeXForm, 4, 3, // CountTrailingOnes
/* 42543*/          OPC_EmitNode1, TARGET_VAL(X86::MOV8ri), 0,
                        MVT::i8, 1/*#Ops*/, 4,  // Results = #5
/* 42550*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 42553*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i64, 3/*#Ops*/, 2, 5, 6,  // Results = #7
/* 42562*/          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] }))
/* 42571*/        0, /*End of Scope*/
/* 42572*/      /*Scope*/ 42, /*->42615*/
/* 42573*/        OPC_MoveParent,
/* 42574*/        OPC_SwitchType /*3 cases */, 11, MVT::i8,// ->42588
/* 42577*/          OPC_EmitConvertToTarget, 1,
/* 42579*/          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)
/* 42588*/        /*SwitchType*/ 11, MVT::i16,// ->42601
/* 42590*/          OPC_EmitConvertToTarget, 1,
/* 42592*/          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)
/* 42601*/        /*SwitchType*/ 11, MVT::i32,// ->42614
/* 42603*/          OPC_EmitConvertToTarget, 1,
/* 42605*/          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)
/* 42614*/        0, // EndSwitchType
/* 42615*/      0, /*End of Scope*/
/* 42616*/    /*Scope*/ 46, /*->42663*/
/* 42617*/      OPC_MoveChild0,
/* 42618*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 42621*/      OPC_RecordChild0, // #0 = $src1
/* 42622*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 42633*/      OPC_MoveParent,
/* 42634*/      OPC_RecordChild1, // #1 = $src2
/* 42635*/      OPC_SwitchType /*2 cases */, 11, MVT::i32,// ->42649
/* 42638*/        OPC_CheckPatternPredicate, 108, // (Subtarget->hasBMI())
/* 42640*/        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)
/* 42649*/      /*SwitchType*/ 11, MVT::i64,// ->42662
/* 42651*/        OPC_CheckPatternPredicate, 108, // (Subtarget->hasBMI())
/* 42653*/        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)
/* 42662*/      0, // EndSwitchType
/* 42663*/    /*Scope*/ 31|128,13/*1695*/, /*->44360*/
/* 42665*/      OPC_RecordChild0, // #0 = $src2
/* 42666*/      OPC_Scope, 45, /*->42713*/ // 3 children in Scope
/* 42668*/        OPC_MoveChild1,
/* 42669*/        OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 42672*/        OPC_RecordChild0, // #1 = $src1
/* 42673*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 42684*/        OPC_MoveParent,
/* 42685*/        OPC_SwitchType /*2 cases */, 11, MVT::i32,// ->42699
/* 42688*/          OPC_CheckPatternPredicate, 108, // (Subtarget->hasBMI())
/* 42690*/          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)
/* 42699*/        /*SwitchType*/ 11, MVT::i64,// ->42712
/* 42701*/          OPC_CheckPatternPredicate, 108, // (Subtarget->hasBMI())
/* 42703*/          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)
/* 42712*/        0, // EndSwitchType
/* 42713*/      /*Scope*/ 47, /*->42761*/
/* 42714*/        OPC_RecordChild1, // #1 = $src2
/* 42715*/        OPC_SwitchType /*4 cases */, 9, MVT::i8,// ->42727
/* 42718*/          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)
/* 42727*/        /*SwitchType*/ 9, MVT::i16,// ->42738
/* 42729*/          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)
/* 42738*/        /*SwitchType*/ 9, MVT::i32,// ->42749
/* 42740*/          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)
/* 42749*/        /*SwitchType*/ 9, MVT::i64,// ->42760
/* 42751*/          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)
/* 42760*/        0, // EndSwitchType
/* 42761*/      /*Scope*/ 60|128,12/*1596*/, /*->44359*/
/* 42763*/        OPC_MoveChild1,
/* 42764*/        OPC_SwitchOpcode /*2 cases */, 124|128,8/*1148*/, TARGET_VAL(X86ISD::CMPM),// ->43917
/* 42769*/          OPC_Scope, 90, /*->42861*/ // 12 children in Scope
/* 42771*/            OPC_RecordChild0, // #1 = $src1
/* 42772*/            OPC_CheckChild0Type, MVT::v8f64,
/* 42774*/            OPC_MoveChild1,
/* 42775*/            OPC_SwitchOpcode /*2 cases */, 40, TARGET_VAL(ISD::LOAD),// ->42819
/* 42779*/              OPC_RecordMemRef,
/* 42780*/              OPC_RecordNode, // #2 = 'ld' chained node
/* 42781*/              OPC_CheckFoldableChainNode,
/* 42782*/              OPC_RecordChild1, // #3 = $src2
/* 42783*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 42785*/              OPC_CheckPredicate, 9, // Predicate_load
/* 42787*/              OPC_MoveParent,
/* 42788*/              OPC_RecordChild2, // #4 = $cc
/* 42789*/              OPC_MoveChild2,
/* 42790*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 42793*/              OPC_MoveParent,
/* 42794*/              OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 42796*/              OPC_MoveParent,
/* 42797*/              OPC_CheckType, MVT::v8i1,
/* 42799*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 42801*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 42804*/              OPC_EmitMergeInputChains1_2,
/* 42805*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i1, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                        // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (X86cmpm:{ *:[v8i1] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>) - Complexity = 32
                        // Dst: (VCMPPDZrmik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/* 42819*/            /*SwitchOpcode*/ 38, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->42860
/* 42822*/              OPC_RecordMemRef,
/* 42823*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/* 42824*/              OPC_CheckFoldableChainNode,
/* 42825*/              OPC_RecordChild1, // #3 = $src2
/* 42826*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 42828*/              OPC_MoveParent,
/* 42829*/              OPC_RecordChild2, // #4 = $cc
/* 42830*/              OPC_MoveChild2,
/* 42831*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 42834*/              OPC_MoveParent,
/* 42835*/              OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 42837*/              OPC_MoveParent,
/* 42838*/              OPC_CheckType, MVT::v8i1,
/* 42840*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 42842*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 42845*/              OPC_EmitMergeInputChains1_2,
/* 42846*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i1, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                        // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (X86cmpm:{ *:[v8i1] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>) - Complexity = 32
                        // Dst: (VCMPPDZrmbik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/* 42860*/            0, // EndSwitchOpcode
/* 42861*/          /*Scope*/ 99, /*->42961*/
/* 42862*/            OPC_MoveChild0,
/* 42863*/            OPC_SwitchOpcode /*2 cases */, 46, TARGET_VAL(ISD::LOAD),// ->42913
/* 42867*/              OPC_RecordMemRef,
/* 42868*/              OPC_RecordNode, // #1 = 'ld' chained node
/* 42869*/              OPC_CheckFoldableChainNode,
/* 42870*/              OPC_RecordChild1, // #2 = $src2
/* 42871*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 42873*/              OPC_CheckPredicate, 9, // Predicate_load
/* 42875*/              OPC_CheckType, MVT::v8f64,
/* 42877*/              OPC_MoveParent,
/* 42878*/              OPC_RecordChild1, // #3 = $src1
/* 42879*/              OPC_RecordChild2, // #4 = $cc
/* 42880*/              OPC_MoveChild2,
/* 42881*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 42884*/              OPC_MoveParent,
/* 42885*/              OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 42887*/              OPC_MoveParent,
/* 42888*/              OPC_CheckType, MVT::v8i1,
/* 42890*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 42892*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 42895*/              OPC_EmitMergeInputChains1_1,
/* 42896*/              OPC_EmitNodeXForm, 7, 4, // X86cmpm_imm_commute
/* 42899*/              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>>, VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>) - Complexity = 32
                        // Dst: (VCMPPDZrmik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86cmpm_imm_commute:{ *:[i8] } (timm:{ *:[i8] }):$cc))
/* 42913*/            /*SwitchOpcode*/ 44, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->42960
/* 42916*/              OPC_RecordMemRef,
/* 42917*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/* 42918*/              OPC_CheckFoldableChainNode,
/* 42919*/              OPC_RecordChild1, // #2 = $src2
/* 42920*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 42922*/              OPC_CheckType, MVT::v8f64,
/* 42924*/              OPC_MoveParent,
/* 42925*/              OPC_RecordChild1, // #3 = $src1
/* 42926*/              OPC_RecordChild2, // #4 = $cc
/* 42927*/              OPC_MoveChild2,
/* 42928*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 42931*/              OPC_MoveParent,
/* 42932*/              OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 42934*/              OPC_MoveParent,
/* 42935*/              OPC_CheckType, MVT::v8i1,
/* 42937*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 42939*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 42942*/              OPC_EmitMergeInputChains1_1,
/* 42943*/              OPC_EmitNodeXForm, 7, 4, // X86cmpm_imm_commute
/* 42946*/              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] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>) - Complexity = 32
                        // Dst: (VCMPPDZrmbik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86cmpm_imm_commute:{ *:[i8] } (timm:{ *:[i8] }):$cc))
/* 42960*/            0, // EndSwitchOpcode
/* 42961*/          /*Scope*/ 90, /*->43052*/
/* 42962*/            OPC_RecordChild0, // #1 = $src1
/* 42963*/            OPC_CheckChild0Type, MVT::v2f64,
/* 42965*/            OPC_MoveChild1,
/* 42966*/            OPC_SwitchOpcode /*2 cases */, 40, TARGET_VAL(ISD::LOAD),// ->43010
/* 42970*/              OPC_RecordMemRef,
/* 42971*/              OPC_RecordNode, // #2 = 'ld' chained node
/* 42972*/              OPC_CheckFoldableChainNode,
/* 42973*/              OPC_RecordChild1, // #3 = $src2
/* 42974*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 42976*/              OPC_CheckPredicate, 9, // Predicate_load
/* 42978*/              OPC_MoveParent,
/* 42979*/              OPC_RecordChild2, // #4 = $cc
/* 42980*/              OPC_MoveChild2,
/* 42981*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 42984*/              OPC_MoveParent,
/* 42985*/              OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 42987*/              OPC_MoveParent,
/* 42988*/              OPC_CheckType, MVT::v2i1,
/* 42990*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 42992*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 42995*/              OPC_EmitMergeInputChains1_2,
/* 42996*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i1, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                        // Src: (and:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, (X86cmpm:{ *:[v2i1] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>) - Complexity = 32
                        // Dst: (VCMPPDZ128rmik:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/* 43010*/            /*SwitchOpcode*/ 38, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->43051
/* 43013*/              OPC_RecordMemRef,
/* 43014*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/* 43015*/              OPC_CheckFoldableChainNode,
/* 43016*/              OPC_RecordChild1, // #3 = $src2
/* 43017*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 43019*/              OPC_MoveParent,
/* 43020*/              OPC_RecordChild2, // #4 = $cc
/* 43021*/              OPC_MoveChild2,
/* 43022*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 43025*/              OPC_MoveParent,
/* 43026*/              OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 43028*/              OPC_MoveParent,
/* 43029*/              OPC_CheckType, MVT::v2i1,
/* 43031*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 43033*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 43036*/              OPC_EmitMergeInputChains1_2,
/* 43037*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i1, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                        // Src: (and:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, (X86cmpm:{ *:[v2i1] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>) - Complexity = 32
                        // Dst: (VCMPPDZ128rmbik:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/* 43051*/            0, // EndSwitchOpcode
/* 43052*/          /*Scope*/ 99, /*->43152*/
/* 43053*/            OPC_MoveChild0,
/* 43054*/            OPC_SwitchOpcode /*2 cases */, 46, TARGET_VAL(ISD::LOAD),// ->43104
/* 43058*/              OPC_RecordMemRef,
/* 43059*/              OPC_RecordNode, // #1 = 'ld' chained node
/* 43060*/              OPC_CheckFoldableChainNode,
/* 43061*/              OPC_RecordChild1, // #2 = $src2
/* 43062*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 43064*/              OPC_CheckPredicate, 9, // Predicate_load
/* 43066*/              OPC_CheckType, MVT::v2f64,
/* 43068*/              OPC_MoveParent,
/* 43069*/              OPC_RecordChild1, // #3 = $src1
/* 43070*/              OPC_RecordChild2, // #4 = $cc
/* 43071*/              OPC_MoveChild2,
/* 43072*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 43075*/              OPC_MoveParent,
/* 43076*/              OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 43078*/              OPC_MoveParent,
/* 43079*/              OPC_CheckType, MVT::v2i1,
/* 43081*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 43083*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 43086*/              OPC_EmitMergeInputChains1_1,
/* 43087*/              OPC_EmitNodeXForm, 7, 4, // X86cmpm_imm_commute
/* 43090*/              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>>, VR128X:{ *:[v2f64] }:$src1, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>) - Complexity = 32
                        // Dst: (VCMPPDZ128rmik:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86cmpm_imm_commute:{ *:[i8] } (timm:{ *:[i8] }):$cc))
/* 43104*/            /*SwitchOpcode*/ 44, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->43151
/* 43107*/              OPC_RecordMemRef,
/* 43108*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/* 43109*/              OPC_CheckFoldableChainNode,
/* 43110*/              OPC_RecordChild1, // #2 = $src2
/* 43111*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 43113*/              OPC_CheckType, MVT::v2f64,
/* 43115*/              OPC_MoveParent,
/* 43116*/              OPC_RecordChild1, // #3 = $src1
/* 43117*/              OPC_RecordChild2, // #4 = $cc
/* 43118*/              OPC_MoveChild2,
/* 43119*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 43122*/              OPC_MoveParent,
/* 43123*/              OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 43125*/              OPC_MoveParent,
/* 43126*/              OPC_CheckType, MVT::v2i1,
/* 43128*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 43130*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 43133*/              OPC_EmitMergeInputChains1_1,
/* 43134*/              OPC_EmitNodeXForm, 7, 4, // X86cmpm_imm_commute
/* 43137*/              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] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>) - Complexity = 32
                        // Dst: (VCMPPDZ128rmbik:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86cmpm_imm_commute:{ *:[i8] } (timm:{ *:[i8] }):$cc))
/* 43151*/            0, // EndSwitchOpcode
/* 43152*/          /*Scope*/ 90, /*->43243*/
/* 43153*/            OPC_RecordChild0, // #1 = $src1
/* 43154*/            OPC_CheckChild0Type, MVT::v4f64,
/* 43156*/            OPC_MoveChild1,
/* 43157*/            OPC_SwitchOpcode /*2 cases */, 40, TARGET_VAL(ISD::LOAD),// ->43201
/* 43161*/              OPC_RecordMemRef,
/* 43162*/              OPC_RecordNode, // #2 = 'ld' chained node
/* 43163*/              OPC_CheckFoldableChainNode,
/* 43164*/              OPC_RecordChild1, // #3 = $src2
/* 43165*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 43167*/              OPC_CheckPredicate, 9, // Predicate_load
/* 43169*/              OPC_MoveParent,
/* 43170*/              OPC_RecordChild2, // #4 = $cc
/* 43171*/              OPC_MoveChild2,
/* 43172*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 43175*/              OPC_MoveParent,
/* 43176*/              OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 43178*/              OPC_MoveParent,
/* 43179*/              OPC_CheckType, MVT::v4i1,
/* 43181*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 43183*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 43186*/              OPC_EmitMergeInputChains1_2,
/* 43187*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i1, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                        // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (X86cmpm:{ *:[v4i1] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>) - Complexity = 32
                        // Dst: (VCMPPDZ256rmik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/* 43201*/            /*SwitchOpcode*/ 38, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->43242
/* 43204*/              OPC_RecordMemRef,
/* 43205*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/* 43206*/              OPC_CheckFoldableChainNode,
/* 43207*/              OPC_RecordChild1, // #3 = $src2
/* 43208*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 43210*/              OPC_MoveParent,
/* 43211*/              OPC_RecordChild2, // #4 = $cc
/* 43212*/              OPC_MoveChild2,
/* 43213*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 43216*/              OPC_MoveParent,
/* 43217*/              OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 43219*/              OPC_MoveParent,
/* 43220*/              OPC_CheckType, MVT::v4i1,
/* 43222*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 43224*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 43227*/              OPC_EmitMergeInputChains1_2,
/* 43228*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i1, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                        // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (X86cmpm:{ *:[v4i1] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>) - Complexity = 32
                        // Dst: (VCMPPDZ256rmbik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/* 43242*/            0, // EndSwitchOpcode
/* 43243*/          /*Scope*/ 99, /*->43343*/
/* 43244*/            OPC_MoveChild0,
/* 43245*/            OPC_SwitchOpcode /*2 cases */, 46, TARGET_VAL(ISD::LOAD),// ->43295
/* 43249*/              OPC_RecordMemRef,
/* 43250*/              OPC_RecordNode, // #1 = 'ld' chained node
/* 43251*/              OPC_CheckFoldableChainNode,
/* 43252*/              OPC_RecordChild1, // #2 = $src2
/* 43253*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 43255*/              OPC_CheckPredicate, 9, // Predicate_load
/* 43257*/              OPC_CheckType, MVT::v4f64,
/* 43259*/              OPC_MoveParent,
/* 43260*/              OPC_RecordChild1, // #3 = $src1
/* 43261*/              OPC_RecordChild2, // #4 = $cc
/* 43262*/              OPC_MoveChild2,
/* 43263*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 43266*/              OPC_MoveParent,
/* 43267*/              OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 43269*/              OPC_MoveParent,
/* 43270*/              OPC_CheckType, MVT::v4i1,
/* 43272*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 43274*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 43277*/              OPC_EmitMergeInputChains1_1,
/* 43278*/              OPC_EmitNodeXForm, 7, 4, // X86cmpm_imm_commute
/* 43281*/              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>>, VR256X:{ *:[v4f64] }:$src1, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>) - Complexity = 32
                        // Dst: (VCMPPDZ256rmik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86cmpm_imm_commute:{ *:[i8] } (timm:{ *:[i8] }):$cc))
/* 43295*/            /*SwitchOpcode*/ 44, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->43342
/* 43298*/              OPC_RecordMemRef,
/* 43299*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/* 43300*/              OPC_CheckFoldableChainNode,
/* 43301*/              OPC_RecordChild1, // #2 = $src2
/* 43302*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 43304*/              OPC_CheckType, MVT::v4f64,
/* 43306*/              OPC_MoveParent,
/* 43307*/              OPC_RecordChild1, // #3 = $src1
/* 43308*/              OPC_RecordChild2, // #4 = $cc
/* 43309*/              OPC_MoveChild2,
/* 43310*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 43313*/              OPC_MoveParent,
/* 43314*/              OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 43316*/              OPC_MoveParent,
/* 43317*/              OPC_CheckType, MVT::v4i1,
/* 43319*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 43321*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 43324*/              OPC_EmitMergeInputChains1_1,
/* 43325*/              OPC_EmitNodeXForm, 7, 4, // X86cmpm_imm_commute
/* 43328*/              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] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>) - Complexity = 32
                        // Dst: (VCMPPDZ256rmbik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86cmpm_imm_commute:{ *:[i8] } (timm:{ *:[i8] }):$cc))
/* 43342*/            0, // EndSwitchOpcode
/* 43343*/          /*Scope*/ 90, /*->43434*/
/* 43344*/            OPC_RecordChild0, // #1 = $src1
/* 43345*/            OPC_CheckChild0Type, MVT::v16f32,
/* 43347*/            OPC_MoveChild1,
/* 43348*/            OPC_SwitchOpcode /*2 cases */, 40, TARGET_VAL(ISD::LOAD),// ->43392
/* 43352*/              OPC_RecordMemRef,
/* 43353*/              OPC_RecordNode, // #2 = 'ld' chained node
/* 43354*/              OPC_CheckFoldableChainNode,
/* 43355*/              OPC_RecordChild1, // #3 = $src2
/* 43356*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 43358*/              OPC_CheckPredicate, 9, // Predicate_load
/* 43360*/              OPC_MoveParent,
/* 43361*/              OPC_RecordChild2, // #4 = $cc
/* 43362*/              OPC_MoveChild2,
/* 43363*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 43366*/              OPC_MoveParent,
/* 43367*/              OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 43369*/              OPC_MoveParent,
/* 43370*/              OPC_CheckType, MVT::v16i1,
/* 43372*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 43374*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 43377*/              OPC_EmitMergeInputChains1_2,
/* 43378*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i1, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                        // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (X86cmpm:{ *:[v16i1] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>) - Complexity = 32
                        // Dst: (VCMPPSZrmik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/* 43392*/            /*SwitchOpcode*/ 38, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->43433
/* 43395*/              OPC_RecordMemRef,
/* 43396*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/* 43397*/              OPC_CheckFoldableChainNode,
/* 43398*/              OPC_RecordChild1, // #3 = $src2
/* 43399*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/* 43401*/              OPC_MoveParent,
/* 43402*/              OPC_RecordChild2, // #4 = $cc
/* 43403*/              OPC_MoveChild2,
/* 43404*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 43407*/              OPC_MoveParent,
/* 43408*/              OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 43410*/              OPC_MoveParent,
/* 43411*/              OPC_CheckType, MVT::v16i1,
/* 43413*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 43415*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 43418*/              OPC_EmitMergeInputChains1_2,
/* 43419*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i1, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                        // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (X86cmpm:{ *:[v16i1] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>) - Complexity = 32
                        // Dst: (VCMPPSZrmbik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/* 43433*/            0, // EndSwitchOpcode
/* 43434*/          /*Scope*/ 99, /*->43534*/
/* 43435*/            OPC_MoveChild0,
/* 43436*/            OPC_SwitchOpcode /*2 cases */, 46, TARGET_VAL(ISD::LOAD),// ->43486
/* 43440*/              OPC_RecordMemRef,
/* 43441*/              OPC_RecordNode, // #1 = 'ld' chained node
/* 43442*/              OPC_CheckFoldableChainNode,
/* 43443*/              OPC_RecordChild1, // #2 = $src2
/* 43444*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 43446*/              OPC_CheckPredicate, 9, // Predicate_load
/* 43448*/              OPC_CheckType, MVT::v16f32,
/* 43450*/              OPC_MoveParent,
/* 43451*/              OPC_RecordChild1, // #3 = $src1
/* 43452*/              OPC_RecordChild2, // #4 = $cc
/* 43453*/              OPC_MoveChild2,
/* 43454*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 43457*/              OPC_MoveParent,
/* 43458*/              OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 43460*/              OPC_MoveParent,
/* 43461*/              OPC_CheckType, MVT::v16i1,
/* 43463*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 43465*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 43468*/              OPC_EmitMergeInputChains1_1,
/* 43469*/              OPC_EmitNodeXForm, 7, 4, // X86cmpm_imm_commute
/* 43472*/              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>>, VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>) - Complexity = 32
                        // Dst: (VCMPPSZrmik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86cmpm_imm_commute:{ *:[i8] } (timm:{ *:[i8] }):$cc))
/* 43486*/            /*SwitchOpcode*/ 44, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->43533
/* 43489*/              OPC_RecordMemRef,
/* 43490*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/* 43491*/              OPC_CheckFoldableChainNode,
/* 43492*/              OPC_RecordChild1, // #2 = $src2
/* 43493*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/* 43495*/              OPC_CheckType, MVT::v16f32,
/* 43497*/              OPC_MoveParent,
/* 43498*/              OPC_RecordChild1, // #3 = $src1
/* 43499*/              OPC_RecordChild2, // #4 = $cc
/* 43500*/              OPC_MoveChild2,
/* 43501*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 43504*/              OPC_MoveParent,
/* 43505*/              OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 43507*/              OPC_MoveParent,
/* 43508*/              OPC_CheckType, MVT::v16i1,
/* 43510*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 43512*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 43515*/              OPC_EmitMergeInputChains1_1,
/* 43516*/              OPC_EmitNodeXForm, 7, 4, // X86cmpm_imm_commute
/* 43519*/              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] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>) - Complexity = 32
                        // Dst: (VCMPPSZrmbik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86cmpm_imm_commute:{ *:[i8] } (timm:{ *:[i8] }):$cc))
/* 43533*/            0, // EndSwitchOpcode
/* 43534*/          /*Scope*/ 90, /*->43625*/
/* 43535*/            OPC_RecordChild0, // #1 = $src1
/* 43536*/            OPC_CheckChild0Type, MVT::v4f32,
/* 43538*/            OPC_MoveChild1,
/* 43539*/            OPC_SwitchOpcode /*2 cases */, 40, TARGET_VAL(ISD::LOAD),// ->43583
/* 43543*/              OPC_RecordMemRef,
/* 43544*/              OPC_RecordNode, // #2 = 'ld' chained node
/* 43545*/              OPC_CheckFoldableChainNode,
/* 43546*/              OPC_RecordChild1, // #3 = $src2
/* 43547*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 43549*/              OPC_CheckPredicate, 9, // Predicate_load
/* 43551*/              OPC_MoveParent,
/* 43552*/              OPC_RecordChild2, // #4 = $cc
/* 43553*/              OPC_MoveChild2,
/* 43554*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 43557*/              OPC_MoveParent,
/* 43558*/              OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 43560*/              OPC_MoveParent,
/* 43561*/              OPC_CheckType, MVT::v4i1,
/* 43563*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 43565*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 43568*/              OPC_EmitMergeInputChains1_2,
/* 43569*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i1, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                        // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (X86cmpm:{ *:[v4i1] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>) - Complexity = 32
                        // Dst: (VCMPPSZ128rmik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/* 43583*/            /*SwitchOpcode*/ 38, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->43624
/* 43586*/              OPC_RecordMemRef,
/* 43587*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/* 43588*/              OPC_CheckFoldableChainNode,
/* 43589*/              OPC_RecordChild1, // #3 = $src2
/* 43590*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/* 43592*/              OPC_MoveParent,
/* 43593*/              OPC_RecordChild2, // #4 = $cc
/* 43594*/              OPC_MoveChild2,
/* 43595*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 43598*/              OPC_MoveParent,
/* 43599*/              OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 43601*/              OPC_MoveParent,
/* 43602*/              OPC_CheckType, MVT::v4i1,
/* 43604*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 43606*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 43609*/              OPC_EmitMergeInputChains1_2,
/* 43610*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i1, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                        // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (X86cmpm:{ *:[v4i1] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>) - Complexity = 32
                        // Dst: (VCMPPSZ128rmbik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/* 43624*/            0, // EndSwitchOpcode
/* 43625*/          /*Scope*/ 99, /*->43725*/
/* 43626*/            OPC_MoveChild0,
/* 43627*/            OPC_SwitchOpcode /*2 cases */, 46, TARGET_VAL(ISD::LOAD),// ->43677
/* 43631*/              OPC_RecordMemRef,
/* 43632*/              OPC_RecordNode, // #1 = 'ld' chained node
/* 43633*/              OPC_CheckFoldableChainNode,
/* 43634*/              OPC_RecordChild1, // #2 = $src2
/* 43635*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 43637*/              OPC_CheckPredicate, 9, // Predicate_load
/* 43639*/              OPC_CheckType, MVT::v4f32,
/* 43641*/              OPC_MoveParent,
/* 43642*/              OPC_RecordChild1, // #3 = $src1
/* 43643*/              OPC_RecordChild2, // #4 = $cc
/* 43644*/              OPC_MoveChild2,
/* 43645*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 43648*/              OPC_MoveParent,
/* 43649*/              OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 43651*/              OPC_MoveParent,
/* 43652*/              OPC_CheckType, MVT::v4i1,
/* 43654*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 43656*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 43659*/              OPC_EmitMergeInputChains1_1,
/* 43660*/              OPC_EmitNodeXForm, 7, 4, // X86cmpm_imm_commute
/* 43663*/              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>>, VR128X:{ *:[v4f32] }:$src1, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>) - Complexity = 32
                        // Dst: (VCMPPSZ128rmik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86cmpm_imm_commute:{ *:[i8] } (timm:{ *:[i8] }):$cc))
/* 43677*/            /*SwitchOpcode*/ 44, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->43724
/* 43680*/              OPC_RecordMemRef,
/* 43681*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/* 43682*/              OPC_CheckFoldableChainNode,
/* 43683*/              OPC_RecordChild1, // #2 = $src2
/* 43684*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/* 43686*/              OPC_CheckType, MVT::v4f32,
/* 43688*/              OPC_MoveParent,
/* 43689*/              OPC_RecordChild1, // #3 = $src1
/* 43690*/              OPC_RecordChild2, // #4 = $cc
/* 43691*/              OPC_MoveChild2,
/* 43692*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 43695*/              OPC_MoveParent,
/* 43696*/              OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 43698*/              OPC_MoveParent,
/* 43699*/              OPC_CheckType, MVT::v4i1,
/* 43701*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 43703*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 43706*/              OPC_EmitMergeInputChains1_1,
/* 43707*/              OPC_EmitNodeXForm, 7, 4, // X86cmpm_imm_commute
/* 43710*/              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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>) - Complexity = 32
                        // Dst: (VCMPPSZ128rmbik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86cmpm_imm_commute:{ *:[i8] } (timm:{ *:[i8] }):$cc))
/* 43724*/            0, // EndSwitchOpcode
/* 43725*/          /*Scope*/ 90, /*->43816*/
/* 43726*/            OPC_RecordChild0, // #1 = $src1
/* 43727*/            OPC_CheckChild0Type, MVT::v8f32,
/* 43729*/            OPC_MoveChild1,
/* 43730*/            OPC_SwitchOpcode /*2 cases */, 40, TARGET_VAL(ISD::LOAD),// ->43774
/* 43734*/              OPC_RecordMemRef,
/* 43735*/              OPC_RecordNode, // #2 = 'ld' chained node
/* 43736*/              OPC_CheckFoldableChainNode,
/* 43737*/              OPC_RecordChild1, // #3 = $src2
/* 43738*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 43740*/              OPC_CheckPredicate, 9, // Predicate_load
/* 43742*/              OPC_MoveParent,
/* 43743*/              OPC_RecordChild2, // #4 = $cc
/* 43744*/              OPC_MoveChild2,
/* 43745*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 43748*/              OPC_MoveParent,
/* 43749*/              OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 43751*/              OPC_MoveParent,
/* 43752*/              OPC_CheckType, MVT::v8i1,
/* 43754*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 43756*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 43759*/              OPC_EmitMergeInputChains1_2,
/* 43760*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i1, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                        // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (X86cmpm:{ *:[v8i1] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>) - Complexity = 32
                        // Dst: (VCMPPSZ256rmik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/* 43774*/            /*SwitchOpcode*/ 38, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->43815
/* 43777*/              OPC_RecordMemRef,
/* 43778*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/* 43779*/              OPC_CheckFoldableChainNode,
/* 43780*/              OPC_RecordChild1, // #3 = $src2
/* 43781*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/* 43783*/              OPC_MoveParent,
/* 43784*/              OPC_RecordChild2, // #4 = $cc
/* 43785*/              OPC_MoveChild2,
/* 43786*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 43789*/              OPC_MoveParent,
/* 43790*/              OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 43792*/              OPC_MoveParent,
/* 43793*/              OPC_CheckType, MVT::v8i1,
/* 43795*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 43797*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 43800*/              OPC_EmitMergeInputChains1_2,
/* 43801*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i1, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                        // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (X86cmpm:{ *:[v8i1] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>) - Complexity = 32
                        // Dst: (VCMPPSZ256rmbik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/* 43815*/            0, // EndSwitchOpcode
/* 43816*/          /*Scope*/ 99, /*->43916*/
/* 43817*/            OPC_MoveChild0,
/* 43818*/            OPC_SwitchOpcode /*2 cases */, 46, TARGET_VAL(ISD::LOAD),// ->43868
/* 43822*/              OPC_RecordMemRef,
/* 43823*/              OPC_RecordNode, // #1 = 'ld' chained node
/* 43824*/              OPC_CheckFoldableChainNode,
/* 43825*/              OPC_RecordChild1, // #2 = $src2
/* 43826*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 43828*/              OPC_CheckPredicate, 9, // Predicate_load
/* 43830*/              OPC_CheckType, MVT::v8f32,
/* 43832*/              OPC_MoveParent,
/* 43833*/              OPC_RecordChild1, // #3 = $src1
/* 43834*/              OPC_RecordChild2, // #4 = $cc
/* 43835*/              OPC_MoveChild2,
/* 43836*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 43839*/              OPC_MoveParent,
/* 43840*/              OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 43842*/              OPC_MoveParent,
/* 43843*/              OPC_CheckType, MVT::v8i1,
/* 43845*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 43847*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 43850*/              OPC_EmitMergeInputChains1_1,
/* 43851*/              OPC_EmitNodeXForm, 7, 4, // X86cmpm_imm_commute
/* 43854*/              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>>, VR256X:{ *:[v8f32] }:$src1, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>) - Complexity = 32
                        // Dst: (VCMPPSZ256rmik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86cmpm_imm_commute:{ *:[i8] } (timm:{ *:[i8] }):$cc))
/* 43868*/            /*SwitchOpcode*/ 44, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->43915
/* 43871*/              OPC_RecordMemRef,
/* 43872*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/* 43873*/              OPC_CheckFoldableChainNode,
/* 43874*/              OPC_RecordChild1, // #2 = $src2
/* 43875*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/* 43877*/              OPC_CheckType, MVT::v8f32,
/* 43879*/              OPC_MoveParent,
/* 43880*/              OPC_RecordChild1, // #3 = $src1
/* 43881*/              OPC_RecordChild2, // #4 = $cc
/* 43882*/              OPC_MoveChild2,
/* 43883*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 43886*/              OPC_MoveParent,
/* 43887*/              OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 43889*/              OPC_MoveParent,
/* 43890*/              OPC_CheckType, MVT::v8i1,
/* 43892*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 43894*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 43897*/              OPC_EmitMergeInputChains1_1,
/* 43898*/              OPC_EmitNodeXForm, 7, 4, // X86cmpm_imm_commute
/* 43901*/              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] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>) - Complexity = 32
                        // Dst: (VCMPPSZ256rmbik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86cmpm_imm_commute:{ *:[i8] } (timm:{ *:[i8] }):$cc))
/* 43915*/            0, // EndSwitchOpcode
/* 43916*/          0, /*End of Scope*/
/* 43917*/        /*SwitchOpcode*/ 53|128,3/*437*/, TARGET_VAL(X86ISD::VFPCLASS),// ->44358
/* 43921*/          OPC_MoveChild0,
/* 43922*/          OPC_SwitchOpcode /*2 cases */, 82|128,1/*210*/, TARGET_VAL(ISD::LOAD),// ->44137
/* 43927*/            OPC_RecordMemRef,
/* 43928*/            OPC_RecordNode, // #1 = 'ld' chained node
/* 43929*/            OPC_CheckFoldableChainNode,
/* 43930*/            OPC_RecordChild1, // #2 = $src1
/* 43931*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 43933*/            OPC_CheckPredicate, 9, // Predicate_load
/* 43935*/            OPC_Scope, 31, /*->43968*/ // 6 children in Scope
/* 43937*/              OPC_MoveParent,
/* 43938*/              OPC_RecordChild1, // #3 = $src2
/* 43939*/              OPC_MoveChild1,
/* 43940*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 43943*/              OPC_MoveParent,
/* 43944*/              OPC_CheckPredicate, 17, // Predicate_X86Vfpclass_su
/* 43946*/              OPC_MoveParent,
/* 43947*/              OPC_CheckType, MVT::v16i1,
/* 43949*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/* 43951*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 43954*/              OPC_EmitMergeInputChains1_1,
/* 43955*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPSZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i1, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                        // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (X86Vfpclass:{ *:[v16i1] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2)<<P:Predicate_X86Vfpclass_su>>) - Complexity = 32
                        // Dst: (VFPCLASSPSZrmk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/* 43968*/            /*Scope*/ 33, /*->44002*/
/* 43969*/              OPC_CheckType, MVT::v4f32,
/* 43971*/              OPC_MoveParent,
/* 43972*/              OPC_RecordChild1, // #3 = $src2
/* 43973*/              OPC_MoveChild1,
/* 43974*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 43977*/              OPC_MoveParent,
/* 43978*/              OPC_CheckPredicate, 17, // Predicate_X86Vfpclass_su
/* 43980*/              OPC_MoveParent,
/* 43981*/              OPC_CheckType, MVT::v4i1,
/* 43983*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/* 43985*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 43988*/              OPC_EmitMergeInputChains1_1,
/* 43989*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPSZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i1, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                        // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (X86Vfpclass:{ *:[v4i1] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2)<<P:Predicate_X86Vfpclass_su>>) - Complexity = 32
                        // Dst: (VFPCLASSPSZ128rmk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/* 44002*/            /*Scope*/ 33, /*->44036*/
/* 44003*/              OPC_CheckType, MVT::v8f32,
/* 44005*/              OPC_MoveParent,
/* 44006*/              OPC_RecordChild1, // #3 = $src2
/* 44007*/              OPC_MoveChild1,
/* 44008*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 44011*/              OPC_MoveParent,
/* 44012*/              OPC_CheckPredicate, 17, // Predicate_X86Vfpclass_su
/* 44014*/              OPC_MoveParent,
/* 44015*/              OPC_CheckType, MVT::v8i1,
/* 44017*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/* 44019*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 44022*/              OPC_EmitMergeInputChains1_1,
/* 44023*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPSZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i1, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                        // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (X86Vfpclass:{ *:[v8i1] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2)<<P:Predicate_X86Vfpclass_su>>) - Complexity = 32
                        // Dst: (VFPCLASSPSZ256rmk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/* 44036*/            /*Scope*/ 33, /*->44070*/
/* 44037*/              OPC_CheckType, MVT::v8f64,
/* 44039*/              OPC_MoveParent,
/* 44040*/              OPC_RecordChild1, // #3 = $src2
/* 44041*/              OPC_MoveChild1,
/* 44042*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 44045*/              OPC_MoveParent,
/* 44046*/              OPC_CheckPredicate, 17, // Predicate_X86Vfpclass_su
/* 44048*/              OPC_MoveParent,
/* 44049*/              OPC_CheckType, MVT::v8i1,
/* 44051*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/* 44053*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 44056*/              OPC_EmitMergeInputChains1_1,
/* 44057*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i1, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                        // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (X86Vfpclass:{ *:[v8i1] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2)<<P:Predicate_X86Vfpclass_su>>) - Complexity = 32
                        // Dst: (VFPCLASSPDZrmk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/* 44070*/            /*Scope*/ 31, /*->44102*/
/* 44071*/              OPC_MoveParent,
/* 44072*/              OPC_RecordChild1, // #3 = $src2
/* 44073*/              OPC_MoveChild1,
/* 44074*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 44077*/              OPC_MoveParent,
/* 44078*/              OPC_CheckPredicate, 17, // Predicate_X86Vfpclass_su
/* 44080*/              OPC_MoveParent,
/* 44081*/              OPC_CheckType, MVT::v2i1,
/* 44083*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/* 44085*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 44088*/              OPC_EmitMergeInputChains1_1,
/* 44089*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i1, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                        // Src: (and:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, (X86Vfpclass:{ *:[v2i1] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2)<<P:Predicate_X86Vfpclass_su>>) - Complexity = 32
                        // Dst: (VFPCLASSPDZ128rmk:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/* 44102*/            /*Scope*/ 33, /*->44136*/
/* 44103*/              OPC_CheckType, MVT::v4f64,
/* 44105*/              OPC_MoveParent,
/* 44106*/              OPC_RecordChild1, // #3 = $src2
/* 44107*/              OPC_MoveChild1,
/* 44108*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 44111*/              OPC_MoveParent,
/* 44112*/              OPC_CheckPredicate, 17, // Predicate_X86Vfpclass_su
/* 44114*/              OPC_MoveParent,
/* 44115*/              OPC_CheckType, MVT::v4i1,
/* 44117*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/* 44119*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 44122*/              OPC_EmitMergeInputChains1_1,
/* 44123*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i1, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                        // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (X86Vfpclass:{ *:[v4i1] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2)<<P:Predicate_X86Vfpclass_su>>) - Complexity = 32
                        // Dst: (VFPCLASSPDZ256rmk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/* 44136*/            0, /*End of Scope*/
/* 44137*/          /*SwitchOpcode*/ 88|128,1/*216*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->44357
/* 44141*/            OPC_RecordMemRef,
/* 44142*/            OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/* 44143*/            OPC_CheckFoldableChainNode,
/* 44144*/            OPC_RecordChild1, // #2 = $src1
/* 44145*/            OPC_Scope, 104, /*->44251*/ // 2 children in Scope
/* 44147*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/* 44149*/              OPC_Scope, 31, /*->44182*/ // 3 children in Scope
/* 44151*/                OPC_MoveParent,
/* 44152*/                OPC_RecordChild1, // #3 = $src2
/* 44153*/                OPC_MoveChild1,
/* 44154*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 44157*/                OPC_MoveParent,
/* 44158*/                OPC_CheckPredicate, 17, // Predicate_X86Vfpclass_su
/* 44160*/                OPC_MoveParent,
/* 44161*/                OPC_CheckType, MVT::v16i1,
/* 44163*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/* 44165*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 44168*/                OPC_EmitMergeInputChains1_1,
/* 44169*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPSZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i1, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (X86Vfpclass:{ *:[v16i1] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i32] }):$src2)<<P:Predicate_X86Vfpclass_su>>) - Complexity = 32
                          // Dst: (VFPCLASSPSZrmbk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/* 44182*/              /*Scope*/ 33, /*->44216*/
/* 44183*/                OPC_CheckType, MVT::v4f32,
/* 44185*/                OPC_MoveParent,
/* 44186*/                OPC_RecordChild1, // #3 = $src2
/* 44187*/                OPC_MoveChild1,
/* 44188*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 44191*/                OPC_MoveParent,
/* 44192*/                OPC_CheckPredicate, 17, // Predicate_X86Vfpclass_su
/* 44194*/                OPC_MoveParent,
/* 44195*/                OPC_CheckType, MVT::v4i1,
/* 44197*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/* 44199*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 44202*/                OPC_EmitMergeInputChains1_1,
/* 44203*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPSZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i1, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (X86Vfpclass:{ *:[v4i1] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i32] }):$src2)<<P:Predicate_X86Vfpclass_su>>) - Complexity = 32
                          // Dst: (VFPCLASSPSZ128rmbk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/* 44216*/              /*Scope*/ 33, /*->44250*/
/* 44217*/                OPC_CheckType, MVT::v8f32,
/* 44219*/                OPC_MoveParent,
/* 44220*/                OPC_RecordChild1, // #3 = $src2
/* 44221*/                OPC_MoveChild1,
/* 44222*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 44225*/                OPC_MoveParent,
/* 44226*/                OPC_CheckPredicate, 17, // Predicate_X86Vfpclass_su
/* 44228*/                OPC_MoveParent,
/* 44229*/                OPC_CheckType, MVT::v8i1,
/* 44231*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/* 44233*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 44236*/                OPC_EmitMergeInputChains1_1,
/* 44237*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPSZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i1, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (X86Vfpclass:{ *:[v8i1] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i32] }):$src2)<<P:Predicate_X86Vfpclass_su>>) - Complexity = 32
                          // Dst: (VFPCLASSPSZ256rmbk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/* 44250*/              0, /*End of Scope*/
/* 44251*/            /*Scope*/ 104, /*->44356*/
/* 44252*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 44254*/              OPC_Scope, 33, /*->44289*/ // 3 children in Scope
/* 44256*/                OPC_CheckType, MVT::v8f64,
/* 44258*/                OPC_MoveParent,
/* 44259*/                OPC_RecordChild1, // #3 = $src2
/* 44260*/                OPC_MoveChild1,
/* 44261*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 44264*/                OPC_MoveParent,
/* 44265*/                OPC_CheckPredicate, 17, // Predicate_X86Vfpclass_su
/* 44267*/                OPC_MoveParent,
/* 44268*/                OPC_CheckType, MVT::v8i1,
/* 44270*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/* 44272*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 44275*/                OPC_EmitMergeInputChains1_1,
/* 44276*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i1, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (X86Vfpclass:{ *:[v8i1] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i32] }):$src2)<<P:Predicate_X86Vfpclass_su>>) - Complexity = 32
                          // Dst: (VFPCLASSPDZrmbk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/* 44289*/              /*Scope*/ 31, /*->44321*/
/* 44290*/                OPC_MoveParent,
/* 44291*/                OPC_RecordChild1, // #3 = $src2
/* 44292*/                OPC_MoveChild1,
/* 44293*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 44296*/                OPC_MoveParent,
/* 44297*/                OPC_CheckPredicate, 17, // Predicate_X86Vfpclass_su
/* 44299*/                OPC_MoveParent,
/* 44300*/                OPC_CheckType, MVT::v2i1,
/* 44302*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/* 44304*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 44307*/                OPC_EmitMergeInputChains1_1,
/* 44308*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i1, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (and:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, (X86Vfpclass:{ *:[v2i1] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i32] }):$src2)<<P:Predicate_X86Vfpclass_su>>) - Complexity = 32
                          // Dst: (VFPCLASSPDZ128rmbk:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/* 44321*/              /*Scope*/ 33, /*->44355*/
/* 44322*/                OPC_CheckType, MVT::v4f64,
/* 44324*/                OPC_MoveParent,
/* 44325*/                OPC_RecordChild1, // #3 = $src2
/* 44326*/                OPC_MoveChild1,
/* 44327*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 44330*/                OPC_MoveParent,
/* 44331*/                OPC_CheckPredicate, 17, // Predicate_X86Vfpclass_su
/* 44333*/                OPC_MoveParent,
/* 44334*/                OPC_CheckType, MVT::v4i1,
/* 44336*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/* 44338*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 44341*/                OPC_EmitMergeInputChains1_1,
/* 44342*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i1, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (X86Vfpclass:{ *:[v4i1] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i32] }):$src2)<<P:Predicate_X86Vfpclass_su>>) - Complexity = 32
                          // Dst: (VFPCLASSPDZ256rmbk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/* 44355*/              0, /*End of Scope*/
/* 44356*/            0, /*End of Scope*/
/* 44357*/          0, // EndSwitchOpcode
/* 44358*/        0, // EndSwitchOpcode
/* 44359*/      0, /*End of Scope*/
/* 44360*/    /*Scope*/ 118|128,11/*1526*/, /*->45888*/
/* 44362*/      OPC_MoveChild0,
/* 44363*/      OPC_SwitchOpcode /*2 cases */, 42|128,8/*1066*/, TARGET_VAL(X86ISD::CMPM),// ->45434
/* 44368*/        OPC_Scope, 43|128,4/*555*/, /*->44926*/ // 2 children in Scope
/* 44371*/          OPC_RecordChild0, // #0 = $src1
/* 44372*/          OPC_Scope, 91, /*->44465*/ // 6 children in Scope
/* 44374*/            OPC_CheckChild0Type, MVT::v8f64,
/* 44376*/            OPC_MoveChild1,
/* 44377*/            OPC_SwitchOpcode /*2 cases */, 41, TARGET_VAL(ISD::LOAD),// ->44422
/* 44381*/              OPC_RecordMemRef,
/* 44382*/              OPC_RecordNode, // #1 = 'ld' chained node
/* 44383*/              OPC_CheckFoldableChainNode,
/* 44384*/              OPC_RecordChild1, // #2 = $src2
/* 44385*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 44387*/              OPC_CheckPredicate, 9, // Predicate_load
/* 44389*/              OPC_MoveParent,
/* 44390*/              OPC_RecordChild2, // #3 = $cc
/* 44391*/              OPC_MoveChild2,
/* 44392*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 44395*/              OPC_MoveParent,
/* 44396*/              OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 44398*/              OPC_MoveParent,
/* 44399*/              OPC_RecordChild1, // #4 = $mask
/* 44400*/              OPC_CheckType, MVT::v8i1,
/* 44402*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 44404*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 44407*/              OPC_EmitMergeInputChains1_1,
/* 44408*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i1, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                        // Src: (and:{ *:[v8i1] } (X86cmpm:{ *:[v8i1] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 32
                        // Dst: (VCMPPDZrmik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/* 44422*/            /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->44464
/* 44425*/              OPC_RecordMemRef,
/* 44426*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/* 44427*/              OPC_CheckFoldableChainNode,
/* 44428*/              OPC_RecordChild1, // #2 = $src2
/* 44429*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 44431*/              OPC_MoveParent,
/* 44432*/              OPC_RecordChild2, // #3 = $cc
/* 44433*/              OPC_MoveChild2,
/* 44434*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 44437*/              OPC_MoveParent,
/* 44438*/              OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 44440*/              OPC_MoveParent,
/* 44441*/              OPC_RecordChild1, // #4 = $mask
/* 44442*/              OPC_CheckType, MVT::v8i1,
/* 44444*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 44446*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 44449*/              OPC_EmitMergeInputChains1_1,
/* 44450*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i1, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                        // Src: (and:{ *:[v8i1] } (X86cmpm:{ *:[v8i1] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 32
                        // Dst: (VCMPPDZrmbik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/* 44464*/            0, // EndSwitchOpcode
/* 44465*/          /*Scope*/ 91, /*->44557*/
/* 44466*/            OPC_CheckChild0Type, MVT::v2f64,
/* 44468*/            OPC_MoveChild1,
/* 44469*/            OPC_SwitchOpcode /*2 cases */, 41, TARGET_VAL(ISD::LOAD),// ->44514
/* 44473*/              OPC_RecordMemRef,
/* 44474*/              OPC_RecordNode, // #1 = 'ld' chained node
/* 44475*/              OPC_CheckFoldableChainNode,
/* 44476*/              OPC_RecordChild1, // #2 = $src2
/* 44477*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 44479*/              OPC_CheckPredicate, 9, // Predicate_load
/* 44481*/              OPC_MoveParent,
/* 44482*/              OPC_RecordChild2, // #3 = $cc
/* 44483*/              OPC_MoveChild2,
/* 44484*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 44487*/              OPC_MoveParent,
/* 44488*/              OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 44490*/              OPC_MoveParent,
/* 44491*/              OPC_RecordChild1, // #4 = $mask
/* 44492*/              OPC_CheckType, MVT::v2i1,
/* 44494*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 44496*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 44499*/              OPC_EmitMergeInputChains1_1,
/* 44500*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i1, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                        // Src: (and:{ *:[v2i1] } (X86cmpm:{ *:[v2i1] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 32
                        // Dst: (VCMPPDZ128rmik:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/* 44514*/            /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->44556
/* 44517*/              OPC_RecordMemRef,
/* 44518*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/* 44519*/              OPC_CheckFoldableChainNode,
/* 44520*/              OPC_RecordChild1, // #2 = $src2
/* 44521*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 44523*/              OPC_MoveParent,
/* 44524*/              OPC_RecordChild2, // #3 = $cc
/* 44525*/              OPC_MoveChild2,
/* 44526*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 44529*/              OPC_MoveParent,
/* 44530*/              OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 44532*/              OPC_MoveParent,
/* 44533*/              OPC_RecordChild1, // #4 = $mask
/* 44534*/              OPC_CheckType, MVT::v2i1,
/* 44536*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 44538*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 44541*/              OPC_EmitMergeInputChains1_1,
/* 44542*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i1, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                        // Src: (and:{ *:[v2i1] } (X86cmpm:{ *:[v2i1] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 32
                        // Dst: (VCMPPDZ128rmbik:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/* 44556*/            0, // EndSwitchOpcode
/* 44557*/          /*Scope*/ 91, /*->44649*/
/* 44558*/            OPC_CheckChild0Type, MVT::v4f64,
/* 44560*/            OPC_MoveChild1,
/* 44561*/            OPC_SwitchOpcode /*2 cases */, 41, TARGET_VAL(ISD::LOAD),// ->44606
/* 44565*/              OPC_RecordMemRef,
/* 44566*/              OPC_RecordNode, // #1 = 'ld' chained node
/* 44567*/              OPC_CheckFoldableChainNode,
/* 44568*/              OPC_RecordChild1, // #2 = $src2
/* 44569*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 44571*/              OPC_CheckPredicate, 9, // Predicate_load
/* 44573*/              OPC_MoveParent,
/* 44574*/              OPC_RecordChild2, // #3 = $cc
/* 44575*/              OPC_MoveChild2,
/* 44576*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 44579*/              OPC_MoveParent,
/* 44580*/              OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 44582*/              OPC_MoveParent,
/* 44583*/              OPC_RecordChild1, // #4 = $mask
/* 44584*/              OPC_CheckType, MVT::v4i1,
/* 44586*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 44588*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 44591*/              OPC_EmitMergeInputChains1_1,
/* 44592*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i1, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                        // Src: (and:{ *:[v4i1] } (X86cmpm:{ *:[v4i1] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 32
                        // Dst: (VCMPPDZ256rmik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/* 44606*/            /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->44648
/* 44609*/              OPC_RecordMemRef,
/* 44610*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/* 44611*/              OPC_CheckFoldableChainNode,
/* 44612*/              OPC_RecordChild1, // #2 = $src2
/* 44613*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 44615*/              OPC_MoveParent,
/* 44616*/              OPC_RecordChild2, // #3 = $cc
/* 44617*/              OPC_MoveChild2,
/* 44618*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 44621*/              OPC_MoveParent,
/* 44622*/              OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 44624*/              OPC_MoveParent,
/* 44625*/              OPC_RecordChild1, // #4 = $mask
/* 44626*/              OPC_CheckType, MVT::v4i1,
/* 44628*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 44630*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 44633*/              OPC_EmitMergeInputChains1_1,
/* 44634*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i1, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                        // Src: (and:{ *:[v4i1] } (X86cmpm:{ *:[v4i1] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 32
                        // Dst: (VCMPPDZ256rmbik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/* 44648*/            0, // EndSwitchOpcode
/* 44649*/          /*Scope*/ 91, /*->44741*/
/* 44650*/            OPC_CheckChild0Type, MVT::v16f32,
/* 44652*/            OPC_MoveChild1,
/* 44653*/            OPC_SwitchOpcode /*2 cases */, 41, TARGET_VAL(ISD::LOAD),// ->44698
/* 44657*/              OPC_RecordMemRef,
/* 44658*/              OPC_RecordNode, // #1 = 'ld' chained node
/* 44659*/              OPC_CheckFoldableChainNode,
/* 44660*/              OPC_RecordChild1, // #2 = $src2
/* 44661*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 44663*/              OPC_CheckPredicate, 9, // Predicate_load
/* 44665*/              OPC_MoveParent,
/* 44666*/              OPC_RecordChild2, // #3 = $cc
/* 44667*/              OPC_MoveChild2,
/* 44668*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 44671*/              OPC_MoveParent,
/* 44672*/              OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 44674*/              OPC_MoveParent,
/* 44675*/              OPC_RecordChild1, // #4 = $mask
/* 44676*/              OPC_CheckType, MVT::v16i1,
/* 44678*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 44680*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 44683*/              OPC_EmitMergeInputChains1_1,
/* 44684*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i1, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                        // Src: (and:{ *:[v16i1] } (X86cmpm:{ *:[v16i1] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 32
                        // Dst: (VCMPPSZrmik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/* 44698*/            /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->44740
/* 44701*/              OPC_RecordMemRef,
/* 44702*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/* 44703*/              OPC_CheckFoldableChainNode,
/* 44704*/              OPC_RecordChild1, // #2 = $src2
/* 44705*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/* 44707*/              OPC_MoveParent,
/* 44708*/              OPC_RecordChild2, // #3 = $cc
/* 44709*/              OPC_MoveChild2,
/* 44710*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 44713*/              OPC_MoveParent,
/* 44714*/              OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 44716*/              OPC_MoveParent,
/* 44717*/              OPC_RecordChild1, // #4 = $mask
/* 44718*/              OPC_CheckType, MVT::v16i1,
/* 44720*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 44722*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 44725*/              OPC_EmitMergeInputChains1_1,
/* 44726*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i1, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                        // Src: (and:{ *:[v16i1] } (X86cmpm:{ *:[v16i1] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 32
                        // Dst: (VCMPPSZrmbik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/* 44740*/            0, // EndSwitchOpcode
/* 44741*/          /*Scope*/ 91, /*->44833*/
/* 44742*/            OPC_CheckChild0Type, MVT::v4f32,
/* 44744*/            OPC_MoveChild1,
/* 44745*/            OPC_SwitchOpcode /*2 cases */, 41, TARGET_VAL(ISD::LOAD),// ->44790
/* 44749*/              OPC_RecordMemRef,
/* 44750*/              OPC_RecordNode, // #1 = 'ld' chained node
/* 44751*/              OPC_CheckFoldableChainNode,
/* 44752*/              OPC_RecordChild1, // #2 = $src2
/* 44753*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 44755*/              OPC_CheckPredicate, 9, // Predicate_load
/* 44757*/              OPC_MoveParent,
/* 44758*/              OPC_RecordChild2, // #3 = $cc
/* 44759*/              OPC_MoveChild2,
/* 44760*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 44763*/              OPC_MoveParent,
/* 44764*/              OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 44766*/              OPC_MoveParent,
/* 44767*/              OPC_RecordChild1, // #4 = $mask
/* 44768*/              OPC_CheckType, MVT::v4i1,
/* 44770*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 44772*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 44775*/              OPC_EmitMergeInputChains1_1,
/* 44776*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i1, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                        // Src: (and:{ *:[v4i1] } (X86cmpm:{ *:[v4i1] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 32
                        // Dst: (VCMPPSZ128rmik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/* 44790*/            /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->44832
/* 44793*/              OPC_RecordMemRef,
/* 44794*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/* 44795*/              OPC_CheckFoldableChainNode,
/* 44796*/              OPC_RecordChild1, // #2 = $src2
/* 44797*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/* 44799*/              OPC_MoveParent,
/* 44800*/              OPC_RecordChild2, // #3 = $cc
/* 44801*/              OPC_MoveChild2,
/* 44802*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 44805*/              OPC_MoveParent,
/* 44806*/              OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 44808*/              OPC_MoveParent,
/* 44809*/              OPC_RecordChild1, // #4 = $mask
/* 44810*/              OPC_CheckType, MVT::v4i1,
/* 44812*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 44814*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 44817*/              OPC_EmitMergeInputChains1_1,
/* 44818*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i1, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                        // Src: (and:{ *:[v4i1] } (X86cmpm:{ *:[v4i1] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 32
                        // Dst: (VCMPPSZ128rmbik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/* 44832*/            0, // EndSwitchOpcode
/* 44833*/          /*Scope*/ 91, /*->44925*/
/* 44834*/            OPC_CheckChild0Type, MVT::v8f32,
/* 44836*/            OPC_MoveChild1,
/* 44837*/            OPC_SwitchOpcode /*2 cases */, 41, TARGET_VAL(ISD::LOAD),// ->44882
/* 44841*/              OPC_RecordMemRef,
/* 44842*/              OPC_RecordNode, // #1 = 'ld' chained node
/* 44843*/              OPC_CheckFoldableChainNode,
/* 44844*/              OPC_RecordChild1, // #2 = $src2
/* 44845*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 44847*/              OPC_CheckPredicate, 9, // Predicate_load
/* 44849*/              OPC_MoveParent,
/* 44850*/              OPC_RecordChild2, // #3 = $cc
/* 44851*/              OPC_MoveChild2,
/* 44852*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 44855*/              OPC_MoveParent,
/* 44856*/              OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 44858*/              OPC_MoveParent,
/* 44859*/              OPC_RecordChild1, // #4 = $mask
/* 44860*/              OPC_CheckType, MVT::v8i1,
/* 44862*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 44864*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 44867*/              OPC_EmitMergeInputChains1_1,
/* 44868*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i1, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                        // Src: (and:{ *:[v8i1] } (X86cmpm:{ *:[v8i1] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 32
                        // Dst: (VCMPPSZ256rmik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/* 44882*/            /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->44924
/* 44885*/              OPC_RecordMemRef,
/* 44886*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/* 44887*/              OPC_CheckFoldableChainNode,
/* 44888*/              OPC_RecordChild1, // #2 = $src2
/* 44889*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/* 44891*/              OPC_MoveParent,
/* 44892*/              OPC_RecordChild2, // #3 = $cc
/* 44893*/              OPC_MoveChild2,
/* 44894*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 44897*/              OPC_MoveParent,
/* 44898*/              OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 44900*/              OPC_MoveParent,
/* 44901*/              OPC_RecordChild1, // #4 = $mask
/* 44902*/              OPC_CheckType, MVT::v8i1,
/* 44904*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 44906*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 44909*/              OPC_EmitMergeInputChains1_1,
/* 44910*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i1, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                        // Src: (and:{ *:[v8i1] } (X86cmpm:{ *:[v8i1] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 32
                        // Dst: (VCMPPSZ256rmbik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/* 44924*/            0, // EndSwitchOpcode
/* 44925*/          0, /*End of Scope*/
/* 44926*/        /*Scope*/ 121|128,3/*505*/, /*->45433*/
/* 44928*/          OPC_MoveChild0,
/* 44929*/          OPC_SwitchOpcode /*2 cases */, 116|128,1/*244*/, TARGET_VAL(ISD::LOAD),// ->45178
/* 44934*/            OPC_RecordMemRef,
/* 44935*/            OPC_RecordNode, // #0 = 'ld' chained node
/* 44936*/            OPC_CheckFoldableChainNode,
/* 44937*/            OPC_RecordChild1, // #1 = $src2
/* 44938*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 44940*/            OPC_CheckPredicate, 9, // Predicate_load
/* 44942*/            OPC_SwitchType /*6 cases */, 37, MVT::v8f64,// ->44982
/* 44945*/              OPC_MoveParent,
/* 44946*/              OPC_RecordChild1, // #2 = $src1
/* 44947*/              OPC_RecordChild2, // #3 = $cc
/* 44948*/              OPC_MoveChild2,
/* 44949*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 44952*/              OPC_MoveParent,
/* 44953*/              OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 44955*/              OPC_MoveParent,
/* 44956*/              OPC_RecordChild1, // #4 = $mask
/* 44957*/              OPC_CheckType, MVT::v8i1,
/* 44959*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 44961*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 44964*/              OPC_EmitMergeInputChains1_0,
/* 44965*/              OPC_EmitNodeXForm, 7, 3, // X86cmpm_imm_commute
/* 44968*/              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>>, VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 32
                        // Dst: (VCMPPDZrmik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86cmpm_imm_commute:{ *:[i8] } (timm:{ *:[i8] }):$cc))
/* 44982*/            /*SwitchType*/ 37, MVT::v2f64,// ->45021
/* 44984*/              OPC_MoveParent,
/* 44985*/              OPC_RecordChild1, // #2 = $src1
/* 44986*/              OPC_RecordChild2, // #3 = $cc
/* 44987*/              OPC_MoveChild2,
/* 44988*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 44991*/              OPC_MoveParent,
/* 44992*/              OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 44994*/              OPC_MoveParent,
/* 44995*/              OPC_RecordChild1, // #4 = $mask
/* 44996*/              OPC_CheckType, MVT::v2i1,
/* 44998*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 45000*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 45003*/              OPC_EmitMergeInputChains1_0,
/* 45004*/              OPC_EmitNodeXForm, 7, 3, // X86cmpm_imm_commute
/* 45007*/              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>>, VR128X:{ *:[v2f64] }:$src1, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 32
                        // Dst: (VCMPPDZ128rmik:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86cmpm_imm_commute:{ *:[i8] } (timm:{ *:[i8] }):$cc))
/* 45021*/            /*SwitchType*/ 37, MVT::v4f64,// ->45060
/* 45023*/              OPC_MoveParent,
/* 45024*/              OPC_RecordChild1, // #2 = $src1
/* 45025*/              OPC_RecordChild2, // #3 = $cc
/* 45026*/              OPC_MoveChild2,
/* 45027*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 45030*/              OPC_MoveParent,
/* 45031*/              OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 45033*/              OPC_MoveParent,
/* 45034*/              OPC_RecordChild1, // #4 = $mask
/* 45035*/              OPC_CheckType, MVT::v4i1,
/* 45037*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 45039*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 45042*/              OPC_EmitMergeInputChains1_0,
/* 45043*/              OPC_EmitNodeXForm, 7, 3, // X86cmpm_imm_commute
/* 45046*/              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>>, VR256X:{ *:[v4f64] }:$src1, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 32
                        // Dst: (VCMPPDZ256rmik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86cmpm_imm_commute:{ *:[i8] } (timm:{ *:[i8] }):$cc))
/* 45060*/            /*SwitchType*/ 37, MVT::v16f32,// ->45099
/* 45062*/              OPC_MoveParent,
/* 45063*/              OPC_RecordChild1, // #2 = $src1
/* 45064*/              OPC_RecordChild2, // #3 = $cc
/* 45065*/              OPC_MoveChild2,
/* 45066*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 45069*/              OPC_MoveParent,
/* 45070*/              OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 45072*/              OPC_MoveParent,
/* 45073*/              OPC_RecordChild1, // #4 = $mask
/* 45074*/              OPC_CheckType, MVT::v16i1,
/* 45076*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 45078*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 45081*/              OPC_EmitMergeInputChains1_0,
/* 45082*/              OPC_EmitNodeXForm, 7, 3, // X86cmpm_imm_commute
/* 45085*/              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>>, VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 32
                        // Dst: (VCMPPSZrmik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86cmpm_imm_commute:{ *:[i8] } (timm:{ *:[i8] }):$cc))
/* 45099*/            /*SwitchType*/ 37, MVT::v4f32,// ->45138
/* 45101*/              OPC_MoveParent,
/* 45102*/              OPC_RecordChild1, // #2 = $src1
/* 45103*/              OPC_RecordChild2, // #3 = $cc
/* 45104*/              OPC_MoveChild2,
/* 45105*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 45108*/              OPC_MoveParent,
/* 45109*/              OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 45111*/              OPC_MoveParent,
/* 45112*/              OPC_RecordChild1, // #4 = $mask
/* 45113*/              OPC_CheckType, MVT::v4i1,
/* 45115*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 45117*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 45120*/              OPC_EmitMergeInputChains1_0,
/* 45121*/              OPC_EmitNodeXForm, 7, 3, // X86cmpm_imm_commute
/* 45124*/              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>>, VR128X:{ *:[v4f32] }:$src1, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 32
                        // Dst: (VCMPPSZ128rmik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86cmpm_imm_commute:{ *:[i8] } (timm:{ *:[i8] }):$cc))
/* 45138*/            /*SwitchType*/ 37, MVT::v8f32,// ->45177
/* 45140*/              OPC_MoveParent,
/* 45141*/              OPC_RecordChild1, // #2 = $src1
/* 45142*/              OPC_RecordChild2, // #3 = $cc
/* 45143*/              OPC_MoveChild2,
/* 45144*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 45147*/              OPC_MoveParent,
/* 45148*/              OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 45150*/              OPC_MoveParent,
/* 45151*/              OPC_RecordChild1, // #4 = $mask
/* 45152*/              OPC_CheckType, MVT::v8i1,
/* 45154*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 45156*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 45159*/              OPC_EmitMergeInputChains1_0,
/* 45160*/              OPC_EmitNodeXForm, 7, 3, // X86cmpm_imm_commute
/* 45163*/              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>>, VR256X:{ *:[v8f32] }:$src1, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 32
                        // Dst: (VCMPPSZ256rmik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86cmpm_imm_commute:{ *:[i8] } (timm:{ *:[i8] }):$cc))
/* 45177*/            0, // EndSwitchType
/* 45178*/          /*SwitchOpcode*/ 122|128,1/*250*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->45432
/* 45182*/            OPC_RecordMemRef,
/* 45183*/            OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/* 45184*/            OPC_CheckFoldableChainNode,
/* 45185*/            OPC_RecordChild1, // #1 = $src2
/* 45186*/            OPC_Scope, 121, /*->45309*/ // 2 children in Scope
/* 45188*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 45190*/              OPC_SwitchType /*3 cases */, 37, MVT::v8f64,// ->45230
/* 45193*/                OPC_MoveParent,
/* 45194*/                OPC_RecordChild1, // #2 = $src1
/* 45195*/                OPC_RecordChild2, // #3 = $cc
/* 45196*/                OPC_MoveChild2,
/* 45197*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 45200*/                OPC_MoveParent,
/* 45201*/                OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 45203*/                OPC_MoveParent,
/* 45204*/                OPC_RecordChild1, // #4 = $mask
/* 45205*/                OPC_CheckType, MVT::v8i1,
/* 45207*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 45209*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 45212*/                OPC_EmitMergeInputChains1_0,
/* 45213*/                OPC_EmitNodeXForm, 7, 3, // X86cmpm_imm_commute
/* 45216*/                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] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 32
                          // Dst: (VCMPPDZrmbik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86cmpm_imm_commute:{ *:[i8] } (timm:{ *:[i8] }):$cc))
/* 45230*/              /*SwitchType*/ 37, MVT::v2f64,// ->45269
/* 45232*/                OPC_MoveParent,
/* 45233*/                OPC_RecordChild1, // #2 = $src1
/* 45234*/                OPC_RecordChild2, // #3 = $cc
/* 45235*/                OPC_MoveChild2,
/* 45236*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 45239*/                OPC_MoveParent,
/* 45240*/                OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 45242*/                OPC_MoveParent,
/* 45243*/                OPC_RecordChild1, // #4 = $mask
/* 45244*/                OPC_CheckType, MVT::v2i1,
/* 45246*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 45248*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 45251*/                OPC_EmitMergeInputChains1_0,
/* 45252*/                OPC_EmitNodeXForm, 7, 3, // X86cmpm_imm_commute
/* 45255*/                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] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 32
                          // Dst: (VCMPPDZ128rmbik:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86cmpm_imm_commute:{ *:[i8] } (timm:{ *:[i8] }):$cc))
/* 45269*/              /*SwitchType*/ 37, MVT::v4f64,// ->45308
/* 45271*/                OPC_MoveParent,
/* 45272*/                OPC_RecordChild1, // #2 = $src1
/* 45273*/                OPC_RecordChild2, // #3 = $cc
/* 45274*/                OPC_MoveChild2,
/* 45275*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 45278*/                OPC_MoveParent,
/* 45279*/                OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 45281*/                OPC_MoveParent,
/* 45282*/                OPC_RecordChild1, // #4 = $mask
/* 45283*/                OPC_CheckType, MVT::v4i1,
/* 45285*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 45287*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 45290*/                OPC_EmitMergeInputChains1_0,
/* 45291*/                OPC_EmitNodeXForm, 7, 3, // X86cmpm_imm_commute
/* 45294*/                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] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 32
                          // Dst: (VCMPPDZ256rmbik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86cmpm_imm_commute:{ *:[i8] } (timm:{ *:[i8] }):$cc))
/* 45308*/              0, // EndSwitchType
/* 45309*/            /*Scope*/ 121, /*->45431*/
/* 45310*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/* 45312*/              OPC_SwitchType /*3 cases */, 37, MVT::v16f32,// ->45352
/* 45315*/                OPC_MoveParent,
/* 45316*/                OPC_RecordChild1, // #2 = $src1
/* 45317*/                OPC_RecordChild2, // #3 = $cc
/* 45318*/                OPC_MoveChild2,
/* 45319*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 45322*/                OPC_MoveParent,
/* 45323*/                OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 45325*/                OPC_MoveParent,
/* 45326*/                OPC_RecordChild1, // #4 = $mask
/* 45327*/                OPC_CheckType, MVT::v16i1,
/* 45329*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 45331*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 45334*/                OPC_EmitMergeInputChains1_0,
/* 45335*/                OPC_EmitNodeXForm, 7, 3, // X86cmpm_imm_commute
/* 45338*/                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] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 32
                          // Dst: (VCMPPSZrmbik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86cmpm_imm_commute:{ *:[i8] } (timm:{ *:[i8] }):$cc))
/* 45352*/              /*SwitchType*/ 37, MVT::v4f32,// ->45391
/* 45354*/                OPC_MoveParent,
/* 45355*/                OPC_RecordChild1, // #2 = $src1
/* 45356*/                OPC_RecordChild2, // #3 = $cc
/* 45357*/                OPC_MoveChild2,
/* 45358*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 45361*/                OPC_MoveParent,
/* 45362*/                OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 45364*/                OPC_MoveParent,
/* 45365*/                OPC_RecordChild1, // #4 = $mask
/* 45366*/                OPC_CheckType, MVT::v4i1,
/* 45368*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 45370*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 45373*/                OPC_EmitMergeInputChains1_0,
/* 45374*/                OPC_EmitNodeXForm, 7, 3, // X86cmpm_imm_commute
/* 45377*/                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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 32
                          // Dst: (VCMPPSZ128rmbik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86cmpm_imm_commute:{ *:[i8] } (timm:{ *:[i8] }):$cc))
/* 45391*/              /*SwitchType*/ 37, MVT::v8f32,// ->45430
/* 45393*/                OPC_MoveParent,
/* 45394*/                OPC_RecordChild1, // #2 = $src1
/* 45395*/                OPC_RecordChild2, // #3 = $cc
/* 45396*/                OPC_MoveChild2,
/* 45397*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 45400*/                OPC_MoveParent,
/* 45401*/                OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 45403*/                OPC_MoveParent,
/* 45404*/                OPC_RecordChild1, // #4 = $mask
/* 45405*/                OPC_CheckType, MVT::v8i1,
/* 45407*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 45409*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 45412*/                OPC_EmitMergeInputChains1_0,
/* 45413*/                OPC_EmitNodeXForm, 7, 3, // X86cmpm_imm_commute
/* 45416*/                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] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 32
                          // Dst: (VCMPPSZ256rmbik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86cmpm_imm_commute:{ *:[i8] } (timm:{ *:[i8] }):$cc))
/* 45430*/              0, // EndSwitchType
/* 45431*/            0, /*End of Scope*/
/* 45432*/          0, // EndSwitchOpcode
/* 45433*/        0, /*End of Scope*/
/* 45434*/      /*SwitchOpcode*/ 65|128,3/*449*/, TARGET_VAL(X86ISD::VFPCLASS),// ->45887
/* 45438*/        OPC_MoveChild0,
/* 45439*/        OPC_SwitchOpcode /*2 cases */, 88|128,1/*216*/, TARGET_VAL(ISD::LOAD),// ->45660
/* 45444*/          OPC_RecordMemRef,
/* 45445*/          OPC_RecordNode, // #0 = 'ld' chained node
/* 45446*/          OPC_CheckFoldableChainNode,
/* 45447*/          OPC_RecordChild1, // #1 = $src1
/* 45448*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 45450*/          OPC_CheckPredicate, 9, // Predicate_load
/* 45452*/          OPC_Scope, 32, /*->45486*/ // 6 children in Scope
/* 45454*/            OPC_MoveParent,
/* 45455*/            OPC_RecordChild1, // #2 = $src2
/* 45456*/            OPC_MoveChild1,
/* 45457*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 45460*/            OPC_MoveParent,
/* 45461*/            OPC_CheckPredicate, 17, // Predicate_X86Vfpclass_su
/* 45463*/            OPC_MoveParent,
/* 45464*/            OPC_RecordChild1, // #3 = $mask
/* 45465*/            OPC_CheckType, MVT::v16i1,
/* 45467*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/* 45469*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 45472*/            OPC_EmitMergeInputChains1_0,
/* 45473*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPSZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i1, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 2, 
                      // Src: (and:{ *:[v16i1] } (X86Vfpclass:{ *:[v16i1] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2)<<P:Predicate_X86Vfpclass_su>>, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 32
                      // Dst: (VFPCLASSPSZrmk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/* 45486*/          /*Scope*/ 34, /*->45521*/
/* 45487*/            OPC_CheckType, MVT::v4f32,
/* 45489*/            OPC_MoveParent,
/* 45490*/            OPC_RecordChild1, // #2 = $src2
/* 45491*/            OPC_MoveChild1,
/* 45492*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 45495*/            OPC_MoveParent,
/* 45496*/            OPC_CheckPredicate, 17, // Predicate_X86Vfpclass_su
/* 45498*/            OPC_MoveParent,
/* 45499*/            OPC_RecordChild1, // #3 = $mask
/* 45500*/            OPC_CheckType, MVT::v4i1,
/* 45502*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/* 45504*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 45507*/            OPC_EmitMergeInputChains1_0,
/* 45508*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPSZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i1, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 2, 
                      // Src: (and:{ *:[v4i1] } (X86Vfpclass:{ *:[v4i1] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2)<<P:Predicate_X86Vfpclass_su>>, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 32
                      // Dst: (VFPCLASSPSZ128rmk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/* 45521*/          /*Scope*/ 34, /*->45556*/
/* 45522*/            OPC_CheckType, MVT::v8f32,
/* 45524*/            OPC_MoveParent,
/* 45525*/            OPC_RecordChild1, // #2 = $src2
/* 45526*/            OPC_MoveChild1,
/* 45527*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 45530*/            OPC_MoveParent,
/* 45531*/            OPC_CheckPredicate, 17, // Predicate_X86Vfpclass_su
/* 45533*/            OPC_MoveParent,
/* 45534*/            OPC_RecordChild1, // #3 = $mask
/* 45535*/            OPC_CheckType, MVT::v8i1,
/* 45537*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/* 45539*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 45542*/            OPC_EmitMergeInputChains1_0,
/* 45543*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPSZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i1, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 2, 
                      // Src: (and:{ *:[v8i1] } (X86Vfpclass:{ *:[v8i1] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2)<<P:Predicate_X86Vfpclass_su>>, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 32
                      // Dst: (VFPCLASSPSZ256rmk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/* 45556*/          /*Scope*/ 34, /*->45591*/
/* 45557*/            OPC_CheckType, MVT::v8f64,
/* 45559*/            OPC_MoveParent,
/* 45560*/            OPC_RecordChild1, // #2 = $src2
/* 45561*/            OPC_MoveChild1,
/* 45562*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 45565*/            OPC_MoveParent,
/* 45566*/            OPC_CheckPredicate, 17, // Predicate_X86Vfpclass_su
/* 45568*/            OPC_MoveParent,
/* 45569*/            OPC_RecordChild1, // #3 = $mask
/* 45570*/            OPC_CheckType, MVT::v8i1,
/* 45572*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/* 45574*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 45577*/            OPC_EmitMergeInputChains1_0,
/* 45578*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i1, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 2, 
                      // Src: (and:{ *:[v8i1] } (X86Vfpclass:{ *:[v8i1] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2)<<P:Predicate_X86Vfpclass_su>>, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 32
                      // Dst: (VFPCLASSPDZrmk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/* 45591*/          /*Scope*/ 32, /*->45624*/
/* 45592*/            OPC_MoveParent,
/* 45593*/            OPC_RecordChild1, // #2 = $src2
/* 45594*/            OPC_MoveChild1,
/* 45595*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 45598*/            OPC_MoveParent,
/* 45599*/            OPC_CheckPredicate, 17, // Predicate_X86Vfpclass_su
/* 45601*/            OPC_MoveParent,
/* 45602*/            OPC_RecordChild1, // #3 = $mask
/* 45603*/            OPC_CheckType, MVT::v2i1,
/* 45605*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/* 45607*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 45610*/            OPC_EmitMergeInputChains1_0,
/* 45611*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i1, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 2, 
                      // Src: (and:{ *:[v2i1] } (X86Vfpclass:{ *:[v2i1] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2)<<P:Predicate_X86Vfpclass_su>>, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 32
                      // Dst: (VFPCLASSPDZ128rmk:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/* 45624*/          /*Scope*/ 34, /*->45659*/
/* 45625*/            OPC_CheckType, MVT::v4f64,
/* 45627*/            OPC_MoveParent,
/* 45628*/            OPC_RecordChild1, // #2 = $src2
/* 45629*/            OPC_MoveChild1,
/* 45630*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 45633*/            OPC_MoveParent,
/* 45634*/            OPC_CheckPredicate, 17, // Predicate_X86Vfpclass_su
/* 45636*/            OPC_MoveParent,
/* 45637*/            OPC_RecordChild1, // #3 = $mask
/* 45638*/            OPC_CheckType, MVT::v4i1,
/* 45640*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/* 45642*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 45645*/            OPC_EmitMergeInputChains1_0,
/* 45646*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i1, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 2, 
                      // Src: (and:{ *:[v4i1] } (X86Vfpclass:{ *:[v4i1] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2)<<P:Predicate_X86Vfpclass_su>>, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 32
                      // Dst: (VFPCLASSPDZ256rmk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/* 45659*/          0, /*End of Scope*/
/* 45660*/        /*SwitchOpcode*/ 94|128,1/*222*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->45886
/* 45664*/          OPC_RecordMemRef,
/* 45665*/          OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/* 45666*/          OPC_CheckFoldableChainNode,
/* 45667*/          OPC_RecordChild1, // #1 = $src1
/* 45668*/          OPC_Scope, 107, /*->45777*/ // 2 children in Scope
/* 45670*/            OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/* 45672*/            OPC_Scope, 32, /*->45706*/ // 3 children in Scope
/* 45674*/              OPC_MoveParent,
/* 45675*/              OPC_RecordChild1, // #2 = $src2
/* 45676*/              OPC_MoveChild1,
/* 45677*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 45680*/              OPC_MoveParent,
/* 45681*/              OPC_CheckPredicate, 17, // Predicate_X86Vfpclass_su
/* 45683*/              OPC_MoveParent,
/* 45684*/              OPC_RecordChild1, // #3 = $mask
/* 45685*/              OPC_CheckType, MVT::v16i1,
/* 45687*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/* 45689*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 45692*/              OPC_EmitMergeInputChains1_0,
/* 45693*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPSZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i1, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 2, 
                        // Src: (and:{ *:[v16i1] } (X86Vfpclass:{ *:[v16i1] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i32] }):$src2)<<P:Predicate_X86Vfpclass_su>>, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 32
                        // Dst: (VFPCLASSPSZrmbk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/* 45706*/            /*Scope*/ 34, /*->45741*/
/* 45707*/              OPC_CheckType, MVT::v4f32,
/* 45709*/              OPC_MoveParent,
/* 45710*/              OPC_RecordChild1, // #2 = $src2
/* 45711*/              OPC_MoveChild1,
/* 45712*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 45715*/              OPC_MoveParent,
/* 45716*/              OPC_CheckPredicate, 17, // Predicate_X86Vfpclass_su
/* 45718*/              OPC_MoveParent,
/* 45719*/              OPC_RecordChild1, // #3 = $mask
/* 45720*/              OPC_CheckType, MVT::v4i1,
/* 45722*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/* 45724*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 45727*/              OPC_EmitMergeInputChains1_0,
/* 45728*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPSZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i1, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 2, 
                        // Src: (and:{ *:[v4i1] } (X86Vfpclass:{ *:[v4i1] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i32] }):$src2)<<P:Predicate_X86Vfpclass_su>>, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 32
                        // Dst: (VFPCLASSPSZ128rmbk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/* 45741*/            /*Scope*/ 34, /*->45776*/
/* 45742*/              OPC_CheckType, MVT::v8f32,
/* 45744*/              OPC_MoveParent,
/* 45745*/              OPC_RecordChild1, // #2 = $src2
/* 45746*/              OPC_MoveChild1,
/* 45747*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 45750*/              OPC_MoveParent,
/* 45751*/              OPC_CheckPredicate, 17, // Predicate_X86Vfpclass_su
/* 45753*/              OPC_MoveParent,
/* 45754*/              OPC_RecordChild1, // #3 = $mask
/* 45755*/              OPC_CheckType, MVT::v8i1,
/* 45757*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/* 45759*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 45762*/              OPC_EmitMergeInputChains1_0,
/* 45763*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPSZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i1, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 2, 
                        // Src: (and:{ *:[v8i1] } (X86Vfpclass:{ *:[v8i1] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i32] }):$src2)<<P:Predicate_X86Vfpclass_su>>, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 32
                        // Dst: (VFPCLASSPSZ256rmbk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/* 45776*/            0, /*End of Scope*/
/* 45777*/          /*Scope*/ 107, /*->45885*/
/* 45778*/            OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 45780*/            OPC_Scope, 34, /*->45816*/ // 3 children in Scope
/* 45782*/              OPC_CheckType, MVT::v8f64,
/* 45784*/              OPC_MoveParent,
/* 45785*/              OPC_RecordChild1, // #2 = $src2
/* 45786*/              OPC_MoveChild1,
/* 45787*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 45790*/              OPC_MoveParent,
/* 45791*/              OPC_CheckPredicate, 17, // Predicate_X86Vfpclass_su
/* 45793*/              OPC_MoveParent,
/* 45794*/              OPC_RecordChild1, // #3 = $mask
/* 45795*/              OPC_CheckType, MVT::v8i1,
/* 45797*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/* 45799*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 45802*/              OPC_EmitMergeInputChains1_0,
/* 45803*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i1, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 2, 
                        // Src: (and:{ *:[v8i1] } (X86Vfpclass:{ *:[v8i1] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i32] }):$src2)<<P:Predicate_X86Vfpclass_su>>, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 32
                        // Dst: (VFPCLASSPDZrmbk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/* 45816*/            /*Scope*/ 32, /*->45849*/
/* 45817*/              OPC_MoveParent,
/* 45818*/              OPC_RecordChild1, // #2 = $src2
/* 45819*/              OPC_MoveChild1,
/* 45820*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 45823*/              OPC_MoveParent,
/* 45824*/              OPC_CheckPredicate, 17, // Predicate_X86Vfpclass_su
/* 45826*/              OPC_MoveParent,
/* 45827*/              OPC_RecordChild1, // #3 = $mask
/* 45828*/              OPC_CheckType, MVT::v2i1,
/* 45830*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/* 45832*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 45835*/              OPC_EmitMergeInputChains1_0,
/* 45836*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i1, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 2, 
                        // Src: (and:{ *:[v2i1] } (X86Vfpclass:{ *:[v2i1] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i32] }):$src2)<<P:Predicate_X86Vfpclass_su>>, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 32
                        // Dst: (VFPCLASSPDZ128rmbk:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/* 45849*/            /*Scope*/ 34, /*->45884*/
/* 45850*/              OPC_CheckType, MVT::v4f64,
/* 45852*/              OPC_MoveParent,
/* 45853*/              OPC_RecordChild1, // #2 = $src2
/* 45854*/              OPC_MoveChild1,
/* 45855*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 45858*/              OPC_MoveParent,
/* 45859*/              OPC_CheckPredicate, 17, // Predicate_X86Vfpclass_su
/* 45861*/              OPC_MoveParent,
/* 45862*/              OPC_RecordChild1, // #3 = $mask
/* 45863*/              OPC_CheckType, MVT::v4i1,
/* 45865*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/* 45867*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #4 #5 #6 #7 #8
/* 45870*/              OPC_EmitMergeInputChains1_0,
/* 45871*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i1, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 2, 
                        // Src: (and:{ *:[v4i1] } (X86Vfpclass:{ *:[v4i1] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i32] }):$src2)<<P:Predicate_X86Vfpclass_su>>, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 32
                        // Dst: (VFPCLASSPDZ256rmbk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/* 45884*/            0, /*End of Scope*/
/* 45885*/          0, /*End of Scope*/
/* 45886*/        0, // EndSwitchOpcode
/* 45887*/      0, // EndSwitchOpcode
/* 45888*/    /*Scope*/ 67|128,5/*707*/, /*->46597*/
/* 45890*/      OPC_RecordChild0, // #0 = $mask
/* 45891*/      OPC_MoveChild1,
/* 45892*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::CMPM),
/* 45895*/      OPC_Scope, 85, /*->45982*/ // 8 children in Scope
/* 45897*/        OPC_RecordChild0, // #1 = $src1
/* 45898*/        OPC_CheckChild0Type, MVT::v8f32,
/* 45900*/        OPC_MoveChild1,
/* 45901*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 45904*/        OPC_RecordMemRef,
/* 45905*/        OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/* 45906*/        OPC_CheckFoldableChainNode,
/* 45907*/        OPC_RecordChild1, // #3 = $src2
/* 45908*/        OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/* 45910*/        OPC_MoveParent,
/* 45911*/        OPC_RecordChild2, // #4 = $cc
/* 45912*/        OPC_MoveChild2,
/* 45913*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 45916*/        OPC_MoveParent,
/* 45917*/        OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 45919*/        OPC_MoveParent,
/* 45920*/        OPC_CheckType, MVT::v8i1,
/* 45922*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 45924*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 45927*/        OPC_EmitMergeInputChains1_2,
/* 45928*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 45931*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 10,  // Results = #11
/* 45939*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v16f32, 0/*#Ops*/,  // Results = #12
/* 45945*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 45948*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v16f32, 3/*#Ops*/, 12, 1, 13,  // Results = #14
/* 45957*/        OPC_EmitNode1, TARGET_VAL(X86::VCMPPSZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i1, 8/*#Ops*/, 11, 14, 5, 6, 7, 8, 9, 4,  // Results = #15
/* 45971*/        OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 45974*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                      MVT::v8i1, 2/*#Ops*/, 15, 16, 
                  // Src: (and:{ *:[v8i1] } VK8:{ *:[v8i1] }:$mask, (X86cmpm:{ *:[v8i1] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>) - Complexity = 32
                  // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VCMPPSZrmbik:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$mask, VK16:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16f32] } (IMPLICIT_DEF:{ *:[v16f32] }), VR256X:{ *:[v8f32] }:$src1, sub_ymm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc), VK8:{ *:[i32] })
/* 45982*/      /*Scope*/ 88, /*->46071*/
/* 45983*/        OPC_MoveChild0,
/* 45984*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 45987*/        OPC_RecordMemRef,
/* 45988*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/* 45989*/        OPC_CheckFoldableChainNode,
/* 45990*/        OPC_RecordChild1, // #2 = $src2
/* 45991*/        OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/* 45993*/        OPC_CheckType, MVT::v8f32,
/* 45995*/        OPC_MoveParent,
/* 45996*/        OPC_RecordChild1, // #3 = $src1
/* 45997*/        OPC_RecordChild2, // #4 = $cc
/* 45998*/        OPC_MoveChild2,
/* 45999*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 46002*/        OPC_MoveParent,
/* 46003*/        OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 46005*/        OPC_MoveParent,
/* 46006*/        OPC_CheckType, MVT::v8i1,
/* 46008*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 46010*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 46013*/        OPC_EmitMergeInputChains1_1,
/* 46014*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 46017*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 10,  // Results = #11
/* 46025*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v16f32, 0/*#Ops*/,  // Results = #12
/* 46031*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 46034*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v16f32, 3/*#Ops*/, 12, 3, 13,  // Results = #14
/* 46043*/        OPC_EmitNodeXForm, 7, 4, // X86cmpm_imm_commute
/* 46046*/        OPC_EmitNode1, TARGET_VAL(X86::VCMPPSZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i1, 8/*#Ops*/, 11, 14, 5, 6, 7, 8, 9, 15,  // Results = #16
/* 46060*/        OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 46063*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                      MVT::v8i1, 2/*#Ops*/, 16, 17, 
                  // Src: (and:{ *:[v8i1] } VK8:{ *:[v8i1] }:$mask, (X86cmpm:{ *:[v8i1] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>) - Complexity = 32
                  // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VCMPPSZrmbik:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$mask, VK16:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16f32] } (IMPLICIT_DEF:{ *:[v16f32] }), VR256X:{ *:[v8f32] }:$src1, sub_ymm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (X86cmpm_imm_commute:{ *:[i8] } (timm:{ *:[i8] }):$cc)), VK8:{ *:[i32] })
/* 46071*/      /*Scope*/ 85, /*->46157*/
/* 46072*/        OPC_RecordChild0, // #1 = $src1
/* 46073*/        OPC_CheckChild0Type, MVT::v4f32,
/* 46075*/        OPC_MoveChild1,
/* 46076*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 46079*/        OPC_RecordMemRef,
/* 46080*/        OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/* 46081*/        OPC_CheckFoldableChainNode,
/* 46082*/        OPC_RecordChild1, // #3 = $src2
/* 46083*/        OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/* 46085*/        OPC_MoveParent,
/* 46086*/        OPC_RecordChild2, // #4 = $cc
/* 46087*/        OPC_MoveChild2,
/* 46088*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 46091*/        OPC_MoveParent,
/* 46092*/        OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 46094*/        OPC_MoveParent,
/* 46095*/        OPC_CheckType, MVT::v4i1,
/* 46097*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 46099*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 46102*/        OPC_EmitMergeInputChains1_2,
/* 46103*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 46106*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 10,  // Results = #11
/* 46114*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v16f32, 0/*#Ops*/,  // Results = #12
/* 46120*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 46123*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v16f32, 3/*#Ops*/, 12, 1, 13,  // Results = #14
/* 46132*/        OPC_EmitNode1, TARGET_VAL(X86::VCMPPSZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i1, 8/*#Ops*/, 11, 14, 5, 6, 7, 8, 9, 4,  // Results = #15
/* 46146*/        OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 46149*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                      MVT::v4i1, 2/*#Ops*/, 15, 16, 
                  // Src: (and:{ *:[v4i1] } VK4:{ *:[v4i1] }:$mask, (X86cmpm:{ *:[v4i1] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>) - Complexity = 32
                  // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VCMPPSZrmbik:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$mask, VK16:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16f32] } (IMPLICIT_DEF:{ *:[v16f32] }), VR128X:{ *:[v4f32] }:$src1, sub_xmm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc), VK4:{ *:[i32] })
/* 46157*/      /*Scope*/ 88, /*->46246*/
/* 46158*/        OPC_MoveChild0,
/* 46159*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 46162*/        OPC_RecordMemRef,
/* 46163*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/* 46164*/        OPC_CheckFoldableChainNode,
/* 46165*/        OPC_RecordChild1, // #2 = $src2
/* 46166*/        OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/* 46168*/        OPC_CheckType, MVT::v4f32,
/* 46170*/        OPC_MoveParent,
/* 46171*/        OPC_RecordChild1, // #3 = $src1
/* 46172*/        OPC_RecordChild2, // #4 = $cc
/* 46173*/        OPC_MoveChild2,
/* 46174*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 46177*/        OPC_MoveParent,
/* 46178*/        OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 46180*/        OPC_MoveParent,
/* 46181*/        OPC_CheckType, MVT::v4i1,
/* 46183*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 46185*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 46188*/        OPC_EmitMergeInputChains1_1,
/* 46189*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 46192*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 10,  // Results = #11
/* 46200*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v16f32, 0/*#Ops*/,  // Results = #12
/* 46206*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 46209*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v16f32, 3/*#Ops*/, 12, 3, 13,  // Results = #14
/* 46218*/        OPC_EmitNodeXForm, 7, 4, // X86cmpm_imm_commute
/* 46221*/        OPC_EmitNode1, TARGET_VAL(X86::VCMPPSZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i1, 8/*#Ops*/, 11, 14, 5, 6, 7, 8, 9, 15,  // Results = #16
/* 46235*/        OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 46238*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                      MVT::v4i1, 2/*#Ops*/, 16, 17, 
                  // Src: (and:{ *:[v4i1] } VK4:{ *:[v4i1] }:$mask, (X86cmpm:{ *:[v4i1] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>) - Complexity = 32
                  // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VCMPPSZrmbik:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$mask, VK16:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16f32] } (IMPLICIT_DEF:{ *:[v16f32] }), VR128X:{ *:[v4f32] }:$src1, sub_xmm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (X86cmpm_imm_commute:{ *:[i8] } (timm:{ *:[i8] }):$cc)), VK4:{ *:[i32] })
/* 46246*/      /*Scope*/ 85, /*->46332*/
/* 46247*/        OPC_RecordChild0, // #1 = $src1
/* 46248*/        OPC_CheckChild0Type, MVT::v4f64,
/* 46250*/        OPC_MoveChild1,
/* 46251*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 46254*/        OPC_RecordMemRef,
/* 46255*/        OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/* 46256*/        OPC_CheckFoldableChainNode,
/* 46257*/        OPC_RecordChild1, // #3 = $src2
/* 46258*/        OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 46260*/        OPC_MoveParent,
/* 46261*/        OPC_RecordChild2, // #4 = $cc
/* 46262*/        OPC_MoveChild2,
/* 46263*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 46266*/        OPC_MoveParent,
/* 46267*/        OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 46269*/        OPC_MoveParent,
/* 46270*/        OPC_CheckType, MVT::v4i1,
/* 46272*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 46274*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 46277*/        OPC_EmitMergeInputChains1_2,
/* 46278*/        OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 46281*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v8i1, 2/*#Ops*/, 0, 10,  // Results = #11
/* 46289*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8f64, 0/*#Ops*/,  // Results = #12
/* 46295*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 46298*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8f64, 3/*#Ops*/, 12, 1, 13,  // Results = #14
/* 46307*/        OPC_EmitNode1, TARGET_VAL(X86::VCMPPDZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 8/*#Ops*/, 11, 14, 5, 6, 7, 8, 9, 4,  // Results = #15
/* 46321*/        OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 46324*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                      MVT::v4i1, 2/*#Ops*/, 15, 16, 
                  // Src: (and:{ *:[v4i1] } VK4:{ *:[v4i1] }:$mask, (X86cmpm:{ *:[v4i1] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>) - Complexity = 32
                  // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VCMPPDZrmbik:{ *:[v8i1] } (COPY_TO_REGCLASS:{ *:[v8i1] } VK4:{ *:[v4i1] }:$mask, VK8:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8f64] } (IMPLICIT_DEF:{ *:[v8f64] }), VR256X:{ *:[v4f64] }:$src1, sub_ymm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc), VK4:{ *:[i32] })
/* 46332*/      /*Scope*/ 88, /*->46421*/
/* 46333*/        OPC_MoveChild0,
/* 46334*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 46337*/        OPC_RecordMemRef,
/* 46338*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/* 46339*/        OPC_CheckFoldableChainNode,
/* 46340*/        OPC_RecordChild1, // #2 = $src2
/* 46341*/        OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 46343*/        OPC_CheckType, MVT::v4f64,
/* 46345*/        OPC_MoveParent,
/* 46346*/        OPC_RecordChild1, // #3 = $src1
/* 46347*/        OPC_RecordChild2, // #4 = $cc
/* 46348*/        OPC_MoveChild2,
/* 46349*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 46352*/        OPC_MoveParent,
/* 46353*/        OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 46355*/        OPC_MoveParent,
/* 46356*/        OPC_CheckType, MVT::v4i1,
/* 46358*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 46360*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 46363*/        OPC_EmitMergeInputChains1_1,
/* 46364*/        OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 46367*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v8i1, 2/*#Ops*/, 0, 10,  // Results = #11
/* 46375*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8f64, 0/*#Ops*/,  // Results = #12
/* 46381*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 46384*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8f64, 3/*#Ops*/, 12, 3, 13,  // Results = #14
/* 46393*/        OPC_EmitNodeXForm, 7, 4, // X86cmpm_imm_commute
/* 46396*/        OPC_EmitNode1, TARGET_VAL(X86::VCMPPDZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 8/*#Ops*/, 11, 14, 5, 6, 7, 8, 9, 15,  // Results = #16
/* 46410*/        OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 46413*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                      MVT::v4i1, 2/*#Ops*/, 16, 17, 
                  // Src: (and:{ *:[v4i1] } VK4:{ *:[v4i1] }:$mask, (X86cmpm:{ *:[v4i1] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>) - Complexity = 32
                  // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VCMPPDZrmbik:{ *:[v8i1] } (COPY_TO_REGCLASS:{ *:[v8i1] } VK4:{ *:[v4i1] }:$mask, VK8:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8f64] } (IMPLICIT_DEF:{ *:[v8f64] }), VR256X:{ *:[v4f64] }:$src1, sub_ymm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (X86cmpm_imm_commute:{ *:[i8] } (timm:{ *:[i8] }):$cc)), VK4:{ *:[i32] })
/* 46421*/      /*Scope*/ 85, /*->46507*/
/* 46422*/        OPC_RecordChild0, // #1 = $src1
/* 46423*/        OPC_CheckChild0Type, MVT::v2f64,
/* 46425*/        OPC_MoveChild1,
/* 46426*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 46429*/        OPC_RecordMemRef,
/* 46430*/        OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/* 46431*/        OPC_CheckFoldableChainNode,
/* 46432*/        OPC_RecordChild1, // #3 = $src2
/* 46433*/        OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 46435*/        OPC_MoveParent,
/* 46436*/        OPC_RecordChild2, // #4 = $cc
/* 46437*/        OPC_MoveChild2,
/* 46438*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 46441*/        OPC_MoveParent,
/* 46442*/        OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 46444*/        OPC_MoveParent,
/* 46445*/        OPC_CheckType, MVT::v2i1,
/* 46447*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 46449*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 46452*/        OPC_EmitMergeInputChains1_2,
/* 46453*/        OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 46456*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v8i1, 2/*#Ops*/, 0, 10,  // Results = #11
/* 46464*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8f64, 0/*#Ops*/,  // Results = #12
/* 46470*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 46473*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8f64, 3/*#Ops*/, 12, 1, 13,  // Results = #14
/* 46482*/        OPC_EmitNode1, TARGET_VAL(X86::VCMPPDZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 8/*#Ops*/, 11, 14, 5, 6, 7, 8, 9, 4,  // Results = #15
/* 46496*/        OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/* 46499*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                      MVT::v2i1, 2/*#Ops*/, 15, 16, 
                  // Src: (and:{ *:[v2i1] } VK2:{ *:[v2i1] }:$mask, (X86cmpm:{ *:[v2i1] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>) - Complexity = 32
                  // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (VCMPPDZrmbik:{ *:[v8i1] } (COPY_TO_REGCLASS:{ *:[v8i1] } VK2:{ *:[v2i1] }:$mask, VK8:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8f64] } (IMPLICIT_DEF:{ *:[v8f64] }), VR128X:{ *:[v2f64] }:$src1, sub_xmm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc), VK2:{ *:[i32] })
/* 46507*/      /*Scope*/ 88, /*->46596*/
/* 46508*/        OPC_MoveChild0,
/* 46509*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 46512*/        OPC_RecordMemRef,
/* 46513*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/* 46514*/        OPC_CheckFoldableChainNode,
/* 46515*/        OPC_RecordChild1, // #2 = $src2
/* 46516*/        OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 46518*/        OPC_CheckType, MVT::v2f64,
/* 46520*/        OPC_MoveParent,
/* 46521*/        OPC_RecordChild1, // #3 = $src1
/* 46522*/        OPC_RecordChild2, // #4 = $cc
/* 46523*/        OPC_MoveChild2,
/* 46524*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 46527*/        OPC_MoveParent,
/* 46528*/        OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 46530*/        OPC_MoveParent,
/* 46531*/        OPC_CheckType, MVT::v2i1,
/* 46533*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 46535*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 46538*/        OPC_EmitMergeInputChains1_1,
/* 46539*/        OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 46542*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v8i1, 2/*#Ops*/, 0, 10,  // Results = #11
/* 46550*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8f64, 0/*#Ops*/,  // Results = #12
/* 46556*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 46559*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8f64, 3/*#Ops*/, 12, 3, 13,  // Results = #14
/* 46568*/        OPC_EmitNodeXForm, 7, 4, // X86cmpm_imm_commute
/* 46571*/        OPC_EmitNode1, TARGET_VAL(X86::VCMPPDZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 8/*#Ops*/, 11, 14, 5, 6, 7, 8, 9, 15,  // Results = #16
/* 46585*/        OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/* 46588*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                      MVT::v2i1, 2/*#Ops*/, 16, 17, 
                  // Src: (and:{ *:[v2i1] } VK2:{ *:[v2i1] }:$mask, (X86cmpm:{ *:[v2i1] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>) - Complexity = 32
                  // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (VCMPPDZrmbik:{ *:[v8i1] } (COPY_TO_REGCLASS:{ *:[v8i1] } VK2:{ *:[v2i1] }:$mask, VK8:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8f64] } (IMPLICIT_DEF:{ *:[v8f64] }), VR128X:{ *:[v2f64] }:$src1, sub_xmm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (X86cmpm_imm_commute:{ *:[i8] } (timm:{ *:[i8] }):$cc)), VK2:{ *:[i32] })
/* 46596*/      0, /*End of Scope*/
/* 46597*/    /*Scope*/ 74|128,5/*714*/, /*->47313*/
/* 46599*/      OPC_MoveChild0,
/* 46600*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::CMPM),
/* 46603*/      OPC_Scope, 86, /*->46691*/ // 8 children in Scope
/* 46605*/        OPC_RecordChild0, // #0 = $src1
/* 46606*/        OPC_CheckChild0Type, MVT::v8f32,
/* 46608*/        OPC_MoveChild1,
/* 46609*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 46612*/        OPC_RecordMemRef,
/* 46613*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/* 46614*/        OPC_CheckFoldableChainNode,
/* 46615*/        OPC_RecordChild1, // #2 = $src2
/* 46616*/        OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/* 46618*/        OPC_MoveParent,
/* 46619*/        OPC_RecordChild2, // #3 = $cc
/* 46620*/        OPC_MoveChild2,
/* 46621*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 46624*/        OPC_MoveParent,
/* 46625*/        OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 46627*/        OPC_MoveParent,
/* 46628*/        OPC_RecordChild1, // #4 = $mask
/* 46629*/        OPC_CheckType, MVT::v8i1,
/* 46631*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 46633*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 46636*/        OPC_EmitMergeInputChains1_1,
/* 46637*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 46640*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 4, 10,  // Results = #11
/* 46648*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v16f32, 0/*#Ops*/,  // Results = #12
/* 46654*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 46657*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v16f32, 3/*#Ops*/, 12, 0, 13,  // Results = #14
/* 46666*/        OPC_EmitNode1, TARGET_VAL(X86::VCMPPSZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i1, 8/*#Ops*/, 11, 14, 5, 6, 7, 8, 9, 3,  // Results = #15
/* 46680*/        OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 46683*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                      MVT::v8i1, 2/*#Ops*/, 15, 16, 
                  // Src: (and:{ *:[v8i1] } (X86cmpm:{ *:[v8i1] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>, VK8:{ *:[v8i1] }:$mask) - Complexity = 32
                  // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VCMPPSZrmbik:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$mask, VK16:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16f32] } (IMPLICIT_DEF:{ *:[v16f32] }), VR256X:{ *:[v8f32] }:$src1, sub_ymm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc), VK8:{ *:[i32] })
/* 46691*/      /*Scope*/ 89, /*->46781*/
/* 46692*/        OPC_MoveChild0,
/* 46693*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 46696*/        OPC_RecordMemRef,
/* 46697*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/* 46698*/        OPC_CheckFoldableChainNode,
/* 46699*/        OPC_RecordChild1, // #1 = $src2
/* 46700*/        OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/* 46702*/        OPC_CheckType, MVT::v8f32,
/* 46704*/        OPC_MoveParent,
/* 46705*/        OPC_RecordChild1, // #2 = $src1
/* 46706*/        OPC_RecordChild2, // #3 = $cc
/* 46707*/        OPC_MoveChild2,
/* 46708*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 46711*/        OPC_MoveParent,
/* 46712*/        OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 46714*/        OPC_MoveParent,
/* 46715*/        OPC_RecordChild1, // #4 = $mask
/* 46716*/        OPC_CheckType, MVT::v8i1,
/* 46718*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 46720*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 46723*/        OPC_EmitMergeInputChains1_0,
/* 46724*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 46727*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 4, 10,  // Results = #11
/* 46735*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v16f32, 0/*#Ops*/,  // Results = #12
/* 46741*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 46744*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v16f32, 3/*#Ops*/, 12, 2, 13,  // Results = #14
/* 46753*/        OPC_EmitNodeXForm, 7, 3, // X86cmpm_imm_commute
/* 46756*/        OPC_EmitNode1, TARGET_VAL(X86::VCMPPSZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i1, 8/*#Ops*/, 11, 14, 5, 6, 7, 8, 9, 15,  // Results = #16
/* 46770*/        OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 46773*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                      MVT::v8i1, 2/*#Ops*/, 16, 17, 
                  // Src: (and:{ *:[v8i1] } (X86cmpm:{ *:[v8i1] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>, VK8:{ *:[v8i1] }:$mask) - Complexity = 32
                  // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VCMPPSZrmbik:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$mask, VK16:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16f32] } (IMPLICIT_DEF:{ *:[v16f32] }), VR256X:{ *:[v8f32] }:$src1, sub_ymm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (X86cmpm_imm_commute:{ *:[i8] } (timm:{ *:[i8] }):$cc)), VK8:{ *:[i32] })
/* 46781*/      /*Scope*/ 86, /*->46868*/
/* 46782*/        OPC_RecordChild0, // #0 = $src1
/* 46783*/        OPC_CheckChild0Type, MVT::v4f32,
/* 46785*/        OPC_MoveChild1,
/* 46786*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 46789*/        OPC_RecordMemRef,
/* 46790*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/* 46791*/        OPC_CheckFoldableChainNode,
/* 46792*/        OPC_RecordChild1, // #2 = $src2
/* 46793*/        OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/* 46795*/        OPC_MoveParent,
/* 46796*/        OPC_RecordChild2, // #3 = $cc
/* 46797*/        OPC_MoveChild2,
/* 46798*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 46801*/        OPC_MoveParent,
/* 46802*/        OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 46804*/        OPC_MoveParent,
/* 46805*/        OPC_RecordChild1, // #4 = $mask
/* 46806*/        OPC_CheckType, MVT::v4i1,
/* 46808*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 46810*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 46813*/        OPC_EmitMergeInputChains1_1,
/* 46814*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 46817*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 4, 10,  // Results = #11
/* 46825*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v16f32, 0/*#Ops*/,  // Results = #12
/* 46831*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 46834*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v16f32, 3/*#Ops*/, 12, 0, 13,  // Results = #14
/* 46843*/        OPC_EmitNode1, TARGET_VAL(X86::VCMPPSZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i1, 8/*#Ops*/, 11, 14, 5, 6, 7, 8, 9, 3,  // Results = #15
/* 46857*/        OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 46860*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                      MVT::v4i1, 2/*#Ops*/, 15, 16, 
                  // Src: (and:{ *:[v4i1] } (X86cmpm:{ *:[v4i1] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>, VK4:{ *:[v4i1] }:$mask) - Complexity = 32
                  // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VCMPPSZrmbik:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$mask, VK16:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16f32] } (IMPLICIT_DEF:{ *:[v16f32] }), VR128X:{ *:[v4f32] }:$src1, sub_xmm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc), VK4:{ *:[i32] })
/* 46868*/      /*Scope*/ 89, /*->46958*/
/* 46869*/        OPC_MoveChild0,
/* 46870*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 46873*/        OPC_RecordMemRef,
/* 46874*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/* 46875*/        OPC_CheckFoldableChainNode,
/* 46876*/        OPC_RecordChild1, // #1 = $src2
/* 46877*/        OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/* 46879*/        OPC_CheckType, MVT::v4f32,
/* 46881*/        OPC_MoveParent,
/* 46882*/        OPC_RecordChild1, // #2 = $src1
/* 46883*/        OPC_RecordChild2, // #3 = $cc
/* 46884*/        OPC_MoveChild2,
/* 46885*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 46888*/        OPC_MoveParent,
/* 46889*/        OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 46891*/        OPC_MoveParent,
/* 46892*/        OPC_RecordChild1, // #4 = $mask
/* 46893*/        OPC_CheckType, MVT::v4i1,
/* 46895*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 46897*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 46900*/        OPC_EmitMergeInputChains1_0,
/* 46901*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 46904*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 4, 10,  // Results = #11
/* 46912*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v16f32, 0/*#Ops*/,  // Results = #12
/* 46918*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 46921*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v16f32, 3/*#Ops*/, 12, 2, 13,  // Results = #14
/* 46930*/        OPC_EmitNodeXForm, 7, 3, // X86cmpm_imm_commute
/* 46933*/        OPC_EmitNode1, TARGET_VAL(X86::VCMPPSZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i1, 8/*#Ops*/, 11, 14, 5, 6, 7, 8, 9, 15,  // Results = #16
/* 46947*/        OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 46950*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                      MVT::v4i1, 2/*#Ops*/, 16, 17, 
                  // Src: (and:{ *:[v4i1] } (X86cmpm:{ *:[v4i1] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>, VK4:{ *:[v4i1] }:$mask) - Complexity = 32
                  // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VCMPPSZrmbik:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$mask, VK16:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16f32] } (IMPLICIT_DEF:{ *:[v16f32] }), VR128X:{ *:[v4f32] }:$src1, sub_xmm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (X86cmpm_imm_commute:{ *:[i8] } (timm:{ *:[i8] }):$cc)), VK4:{ *:[i32] })
/* 46958*/      /*Scope*/ 86, /*->47045*/
/* 46959*/        OPC_RecordChild0, // #0 = $src1
/* 46960*/        OPC_CheckChild0Type, MVT::v4f64,
/* 46962*/        OPC_MoveChild1,
/* 46963*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 46966*/        OPC_RecordMemRef,
/* 46967*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/* 46968*/        OPC_CheckFoldableChainNode,
/* 46969*/        OPC_RecordChild1, // #2 = $src2
/* 46970*/        OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 46972*/        OPC_MoveParent,
/* 46973*/        OPC_RecordChild2, // #3 = $cc
/* 46974*/        OPC_MoveChild2,
/* 46975*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 46978*/        OPC_MoveParent,
/* 46979*/        OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 46981*/        OPC_MoveParent,
/* 46982*/        OPC_RecordChild1, // #4 = $mask
/* 46983*/        OPC_CheckType, MVT::v4i1,
/* 46985*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 46987*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 46990*/        OPC_EmitMergeInputChains1_1,
/* 46991*/        OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 46994*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v8i1, 2/*#Ops*/, 4, 10,  // Results = #11
/* 47002*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8f64, 0/*#Ops*/,  // Results = #12
/* 47008*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 47011*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8f64, 3/*#Ops*/, 12, 0, 13,  // Results = #14
/* 47020*/        OPC_EmitNode1, TARGET_VAL(X86::VCMPPDZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 8/*#Ops*/, 11, 14, 5, 6, 7, 8, 9, 3,  // Results = #15
/* 47034*/        OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 47037*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                      MVT::v4i1, 2/*#Ops*/, 15, 16, 
                  // Src: (and:{ *:[v4i1] } (X86cmpm:{ *:[v4i1] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>, VK4:{ *:[v4i1] }:$mask) - Complexity = 32
                  // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VCMPPDZrmbik:{ *:[v8i1] } (COPY_TO_REGCLASS:{ *:[v8i1] } VK4:{ *:[v4i1] }:$mask, VK8:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8f64] } (IMPLICIT_DEF:{ *:[v8f64] }), VR256X:{ *:[v4f64] }:$src1, sub_ymm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc), VK4:{ *:[i32] })
/* 47045*/      /*Scope*/ 89, /*->47135*/
/* 47046*/        OPC_MoveChild0,
/* 47047*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 47050*/        OPC_RecordMemRef,
/* 47051*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/* 47052*/        OPC_CheckFoldableChainNode,
/* 47053*/        OPC_RecordChild1, // #1 = $src2
/* 47054*/        OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 47056*/        OPC_CheckType, MVT::v4f64,
/* 47058*/        OPC_MoveParent,
/* 47059*/        OPC_RecordChild1, // #2 = $src1
/* 47060*/        OPC_RecordChild2, // #3 = $cc
/* 47061*/        OPC_MoveChild2,
/* 47062*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 47065*/        OPC_MoveParent,
/* 47066*/        OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 47068*/        OPC_MoveParent,
/* 47069*/        OPC_RecordChild1, // #4 = $mask
/* 47070*/        OPC_CheckType, MVT::v4i1,
/* 47072*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 47074*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 47077*/        OPC_EmitMergeInputChains1_0,
/* 47078*/        OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 47081*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v8i1, 2/*#Ops*/, 4, 10,  // Results = #11
/* 47089*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8f64, 0/*#Ops*/,  // Results = #12
/* 47095*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 47098*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8f64, 3/*#Ops*/, 12, 2, 13,  // Results = #14
/* 47107*/        OPC_EmitNodeXForm, 7, 3, // X86cmpm_imm_commute
/* 47110*/        OPC_EmitNode1, TARGET_VAL(X86::VCMPPDZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 8/*#Ops*/, 11, 14, 5, 6, 7, 8, 9, 15,  // Results = #16
/* 47124*/        OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 47127*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                      MVT::v4i1, 2/*#Ops*/, 16, 17, 
                  // Src: (and:{ *:[v4i1] } (X86cmpm:{ *:[v4i1] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>, VK4:{ *:[v4i1] }:$mask) - Complexity = 32
                  // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VCMPPDZrmbik:{ *:[v8i1] } (COPY_TO_REGCLASS:{ *:[v8i1] } VK4:{ *:[v4i1] }:$mask, VK8:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8f64] } (IMPLICIT_DEF:{ *:[v8f64] }), VR256X:{ *:[v4f64] }:$src1, sub_ymm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (X86cmpm_imm_commute:{ *:[i8] } (timm:{ *:[i8] }):$cc)), VK4:{ *:[i32] })
/* 47135*/      /*Scope*/ 86, /*->47222*/
/* 47136*/        OPC_RecordChild0, // #0 = $src1
/* 47137*/        OPC_CheckChild0Type, MVT::v2f64,
/* 47139*/        OPC_MoveChild1,
/* 47140*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 47143*/        OPC_RecordMemRef,
/* 47144*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/* 47145*/        OPC_CheckFoldableChainNode,
/* 47146*/        OPC_RecordChild1, // #2 = $src2
/* 47147*/        OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 47149*/        OPC_MoveParent,
/* 47150*/        OPC_RecordChild2, // #3 = $cc
/* 47151*/        OPC_MoveChild2,
/* 47152*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 47155*/        OPC_MoveParent,
/* 47156*/        OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 47158*/        OPC_MoveParent,
/* 47159*/        OPC_RecordChild1, // #4 = $mask
/* 47160*/        OPC_CheckType, MVT::v2i1,
/* 47162*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 47164*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 47167*/        OPC_EmitMergeInputChains1_1,
/* 47168*/        OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 47171*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v8i1, 2/*#Ops*/, 4, 10,  // Results = #11
/* 47179*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8f64, 0/*#Ops*/,  // Results = #12
/* 47185*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 47188*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8f64, 3/*#Ops*/, 12, 0, 13,  // Results = #14
/* 47197*/        OPC_EmitNode1, TARGET_VAL(X86::VCMPPDZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 8/*#Ops*/, 11, 14, 5, 6, 7, 8, 9, 3,  // Results = #15
/* 47211*/        OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/* 47214*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                      MVT::v2i1, 2/*#Ops*/, 15, 16, 
                  // Src: (and:{ *:[v2i1] } (X86cmpm:{ *:[v2i1] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>, VK2:{ *:[v2i1] }:$mask) - Complexity = 32
                  // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (VCMPPDZrmbik:{ *:[v8i1] } (COPY_TO_REGCLASS:{ *:[v8i1] } VK2:{ *:[v2i1] }:$mask, VK8:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8f64] } (IMPLICIT_DEF:{ *:[v8f64] }), VR128X:{ *:[v2f64] }:$src1, sub_xmm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc), VK2:{ *:[i32] })
/* 47222*/      /*Scope*/ 89, /*->47312*/
/* 47223*/        OPC_MoveChild0,
/* 47224*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 47227*/        OPC_RecordMemRef,
/* 47228*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/* 47229*/        OPC_CheckFoldableChainNode,
/* 47230*/        OPC_RecordChild1, // #1 = $src2
/* 47231*/        OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 47233*/        OPC_CheckType, MVT::v2f64,
/* 47235*/        OPC_MoveParent,
/* 47236*/        OPC_RecordChild1, // #2 = $src1
/* 47237*/        OPC_RecordChild2, // #3 = $cc
/* 47238*/        OPC_MoveChild2,
/* 47239*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 47242*/        OPC_MoveParent,
/* 47243*/        OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 47245*/        OPC_MoveParent,
/* 47246*/        OPC_RecordChild1, // #4 = $mask
/* 47247*/        OPC_CheckType, MVT::v2i1,
/* 47249*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 47251*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 47254*/        OPC_EmitMergeInputChains1_0,
/* 47255*/        OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 47258*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v8i1, 2/*#Ops*/, 4, 10,  // Results = #11
/* 47266*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8f64, 0/*#Ops*/,  // Results = #12
/* 47272*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 47275*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8f64, 3/*#Ops*/, 12, 2, 13,  // Results = #14
/* 47284*/        OPC_EmitNodeXForm, 7, 3, // X86cmpm_imm_commute
/* 47287*/        OPC_EmitNode1, TARGET_VAL(X86::VCMPPDZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 8/*#Ops*/, 11, 14, 5, 6, 7, 8, 9, 15,  // Results = #16
/* 47301*/        OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/* 47304*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                      MVT::v2i1, 2/*#Ops*/, 16, 17, 
                  // Src: (and:{ *:[v2i1] } (X86cmpm:{ *:[v2i1] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>, VK2:{ *:[v2i1] }:$mask) - Complexity = 32
                  // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (VCMPPDZrmbik:{ *:[v8i1] } (COPY_TO_REGCLASS:{ *:[v8i1] } VK2:{ *:[v2i1] }:$mask, VK8:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8f64] } (IMPLICIT_DEF:{ *:[v8f64] }), VR128X:{ *:[v2f64] }:$src1, sub_xmm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (X86cmpm_imm_commute:{ *:[i8] } (timm:{ *:[i8] }):$cc)), VK2:{ *:[i32] })
/* 47312*/      0, /*End of Scope*/
/* 47313*/    /*Scope*/ 1|128,41/*5249*/, /*->52564*/
/* 47315*/      OPC_RecordChild0, // #0 = $mask
/* 47316*/      OPC_Scope, 47|128,28/*3631*/, /*->50950*/ // 3 children in Scope
/* 47319*/        OPC_RecordChild1, // #1 = $cc
/* 47320*/        OPC_MoveChild1,
/* 47321*/        OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 47324*/        OPC_Scope, 51, /*->47377*/ // 72 children in Scope
/* 47326*/          OPC_RecordChild0, // #2 = $src1
/* 47327*/          OPC_CheckChild0Type, MVT::v64i8,
/* 47329*/          OPC_MoveChild1,
/* 47330*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 47333*/          OPC_RecordMemRef,
/* 47334*/          OPC_RecordNode, // #3 = 'ld' chained node
/* 47335*/          OPC_CheckFoldableChainNode,
/* 47336*/          OPC_RecordChild1, // #4 = $src2
/* 47337*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 47339*/          OPC_CheckPredicate, 9, // Predicate_load
/* 47341*/          OPC_MoveParent,
/* 47342*/          OPC_MoveChild2,
/* 47343*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 47346*/          OPC_MoveParent,
/* 47347*/          OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 47349*/          OPC_MoveParent,
/* 47350*/          OPC_CheckType, MVT::v64i1,
/* 47352*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/* 47354*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 47357*/          OPC_EmitMergeInputChains, 1, 3, 
/* 47360*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 47363*/          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, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_su>><<X:X86pcmpm_imm>>:$cc) - Complexity = 29
                    // Dst: (VPCMPBZrmik:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src1, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] })):$cc))
/* 47377*/        /*Scope*/ 49, /*->47427*/
/* 47378*/          OPC_MoveChild0,
/* 47379*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 47382*/          OPC_RecordMemRef,
/* 47383*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 47384*/          OPC_CheckFoldableChainNode,
/* 47385*/          OPC_RecordChild1, // #3 = $src2
/* 47386*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 47388*/          OPC_CheckPredicate, 9, // Predicate_load
/* 47390*/          OPC_CheckType, MVT::v64i8,
/* 47392*/          OPC_MoveParent,
/* 47393*/          OPC_RecordChild1, // #4 = $src1
/* 47394*/          OPC_MoveChild2,
/* 47395*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 47398*/          OPC_MoveParent,
/* 47399*/          OPC_CheckPredicate, 51, // Predicate_X86pcmpm_commute_su
/* 47401*/          OPC_MoveParent,
/* 47402*/          OPC_CheckType, MVT::v64i1,
/* 47404*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/* 47406*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 47409*/          OPC_EmitMergeInputChains1_2,
/* 47410*/          OPC_EmitNodeXForm, 9, 1, // X86pcmpm_imm_commute
/* 47413*/          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] } (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v64i8] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute_su>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 29
                    // Dst: (VPCMPBZrmik:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v64i1] }:$cc))
/* 47427*/        /*Scope*/ 51, /*->47479*/
/* 47428*/          OPC_RecordChild0, // #2 = $src1
/* 47429*/          OPC_CheckChild0Type, MVT::v32i8,
/* 47431*/          OPC_MoveChild1,
/* 47432*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 47435*/          OPC_RecordMemRef,
/* 47436*/          OPC_RecordNode, // #3 = 'ld' chained node
/* 47437*/          OPC_CheckFoldableChainNode,
/* 47438*/          OPC_RecordChild1, // #4 = $src2
/* 47439*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 47441*/          OPC_CheckPredicate, 9, // Predicate_load
/* 47443*/          OPC_MoveParent,
/* 47444*/          OPC_MoveChild2,
/* 47445*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 47448*/          OPC_MoveParent,
/* 47449*/          OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 47451*/          OPC_MoveParent,
/* 47452*/          OPC_CheckType, MVT::v32i1,
/* 47454*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 47456*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 47459*/          OPC_EmitMergeInputChains, 1, 3, 
/* 47462*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 47465*/          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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_su>><<X:X86pcmpm_imm>>:$cc) - Complexity = 29
                    // Dst: (VPCMPBZ256rmik:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] })):$cc))
/* 47479*/        /*Scope*/ 49, /*->47529*/
/* 47480*/          OPC_MoveChild0,
/* 47481*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 47484*/          OPC_RecordMemRef,
/* 47485*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 47486*/          OPC_CheckFoldableChainNode,
/* 47487*/          OPC_RecordChild1, // #3 = $src2
/* 47488*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 47490*/          OPC_CheckPredicate, 9, // Predicate_load
/* 47492*/          OPC_CheckType, MVT::v32i8,
/* 47494*/          OPC_MoveParent,
/* 47495*/          OPC_RecordChild1, // #4 = $src1
/* 47496*/          OPC_MoveChild2,
/* 47497*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 47500*/          OPC_MoveParent,
/* 47501*/          OPC_CheckPredicate, 51, // Predicate_X86pcmpm_commute_su
/* 47503*/          OPC_MoveParent,
/* 47504*/          OPC_CheckType, MVT::v32i1,
/* 47506*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 47508*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 47511*/          OPC_EmitMergeInputChains1_2,
/* 47512*/          OPC_EmitNodeXForm, 9, 1, // X86pcmpm_imm_commute
/* 47515*/          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] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v32i8] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute_su>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 29
                    // Dst: (VPCMPBZ256rmik:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v32i1] }:$cc))
/* 47529*/        /*Scope*/ 51, /*->47581*/
/* 47530*/          OPC_RecordChild0, // #2 = $src1
/* 47531*/          OPC_CheckChild0Type, MVT::v16i8,
/* 47533*/          OPC_MoveChild1,
/* 47534*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 47537*/          OPC_RecordMemRef,
/* 47538*/          OPC_RecordNode, // #3 = 'ld' chained node
/* 47539*/          OPC_CheckFoldableChainNode,
/* 47540*/          OPC_RecordChild1, // #4 = $src2
/* 47541*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 47543*/          OPC_CheckPredicate, 9, // Predicate_load
/* 47545*/          OPC_MoveParent,
/* 47546*/          OPC_MoveChild2,
/* 47547*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 47550*/          OPC_MoveParent,
/* 47551*/          OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 47553*/          OPC_MoveParent,
/* 47554*/          OPC_CheckType, MVT::v16i1,
/* 47556*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 47558*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 47561*/          OPC_EmitMergeInputChains, 1, 3, 
/* 47564*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 47567*/          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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_su>><<X:X86pcmpm_imm>>:$cc) - Complexity = 29
                    // Dst: (VPCMPBZ128rmik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] })):$cc))
/* 47581*/        /*Scope*/ 49, /*->47631*/
/* 47582*/          OPC_MoveChild0,
/* 47583*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 47586*/          OPC_RecordMemRef,
/* 47587*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 47588*/          OPC_CheckFoldableChainNode,
/* 47589*/          OPC_RecordChild1, // #3 = $src2
/* 47590*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 47592*/          OPC_CheckPredicate, 9, // Predicate_load
/* 47594*/          OPC_CheckType, MVT::v16i8,
/* 47596*/          OPC_MoveParent,
/* 47597*/          OPC_RecordChild1, // #4 = $src1
/* 47598*/          OPC_MoveChild2,
/* 47599*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 47602*/          OPC_MoveParent,
/* 47603*/          OPC_CheckPredicate, 51, // Predicate_X86pcmpm_commute_su
/* 47605*/          OPC_MoveParent,
/* 47606*/          OPC_CheckType, MVT::v16i1,
/* 47608*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 47610*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 47613*/          OPC_EmitMergeInputChains1_2,
/* 47614*/          OPC_EmitNodeXForm, 9, 1, // X86pcmpm_imm_commute
/* 47617*/          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] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v16i8] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute_su>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 29
                    // Dst: (VPCMPBZ128rmik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v16i1] }:$cc))
/* 47631*/        /*Scope*/ 51, /*->47683*/
/* 47632*/          OPC_RecordChild0, // #2 = $src1
/* 47633*/          OPC_CheckChild0Type, MVT::v64i8,
/* 47635*/          OPC_MoveChild1,
/* 47636*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 47639*/          OPC_RecordMemRef,
/* 47640*/          OPC_RecordNode, // #3 = 'ld' chained node
/* 47641*/          OPC_CheckFoldableChainNode,
/* 47642*/          OPC_RecordChild1, // #4 = $src2
/* 47643*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 47645*/          OPC_CheckPredicate, 9, // Predicate_load
/* 47647*/          OPC_MoveParent,
/* 47648*/          OPC_MoveChild2,
/* 47649*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 47652*/          OPC_MoveParent,
/* 47653*/          OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 47655*/          OPC_MoveParent,
/* 47656*/          OPC_CheckType, MVT::v64i1,
/* 47658*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/* 47660*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 47663*/          OPC_EmitMergeInputChains, 1, 3, 
/* 47666*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 47669*/          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, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_su>><<X:X86pcmpm_imm>>:$cc) - Complexity = 29
                    // Dst: (VPCMPUBZrmik:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src1, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] })):$cc))
/* 47683*/        /*Scope*/ 49, /*->47733*/
/* 47684*/          OPC_MoveChild0,
/* 47685*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 47688*/          OPC_RecordMemRef,
/* 47689*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 47690*/          OPC_CheckFoldableChainNode,
/* 47691*/          OPC_RecordChild1, // #3 = $src2
/* 47692*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 47694*/          OPC_CheckPredicate, 9, // Predicate_load
/* 47696*/          OPC_CheckType, MVT::v64i8,
/* 47698*/          OPC_MoveParent,
/* 47699*/          OPC_RecordChild1, // #4 = $src1
/* 47700*/          OPC_MoveChild2,
/* 47701*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 47704*/          OPC_MoveParent,
/* 47705*/          OPC_CheckPredicate, 52, // Predicate_X86pcmpum_commute_su
/* 47707*/          OPC_MoveParent,
/* 47708*/          OPC_CheckType, MVT::v64i1,
/* 47710*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/* 47712*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 47715*/          OPC_EmitMergeInputChains1_2,
/* 47716*/          OPC_EmitNodeXForm, 9, 1, // X86pcmpm_imm_commute
/* 47719*/          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] } (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v64i8] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute_su>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 29
                    // Dst: (VPCMPUBZrmik:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v64i1] }:$cc))
/* 47733*/        /*Scope*/ 51, /*->47785*/
/* 47734*/          OPC_RecordChild0, // #2 = $src1
/* 47735*/          OPC_CheckChild0Type, MVT::v32i8,
/* 47737*/          OPC_MoveChild1,
/* 47738*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 47741*/          OPC_RecordMemRef,
/* 47742*/          OPC_RecordNode, // #3 = 'ld' chained node
/* 47743*/          OPC_CheckFoldableChainNode,
/* 47744*/          OPC_RecordChild1, // #4 = $src2
/* 47745*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 47747*/          OPC_CheckPredicate, 9, // Predicate_load
/* 47749*/          OPC_MoveParent,
/* 47750*/          OPC_MoveChild2,
/* 47751*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 47754*/          OPC_MoveParent,
/* 47755*/          OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 47757*/          OPC_MoveParent,
/* 47758*/          OPC_CheckType, MVT::v32i1,
/* 47760*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 47762*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 47765*/          OPC_EmitMergeInputChains, 1, 3, 
/* 47768*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 47771*/          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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_su>><<X:X86pcmpm_imm>>:$cc) - Complexity = 29
                    // Dst: (VPCMPUBZ256rmik:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] })):$cc))
/* 47785*/        /*Scope*/ 49, /*->47835*/
/* 47786*/          OPC_MoveChild0,
/* 47787*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 47790*/          OPC_RecordMemRef,
/* 47791*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 47792*/          OPC_CheckFoldableChainNode,
/* 47793*/          OPC_RecordChild1, // #3 = $src2
/* 47794*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 47796*/          OPC_CheckPredicate, 9, // Predicate_load
/* 47798*/          OPC_CheckType, MVT::v32i8,
/* 47800*/          OPC_MoveParent,
/* 47801*/          OPC_RecordChild1, // #4 = $src1
/* 47802*/          OPC_MoveChild2,
/* 47803*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 47806*/          OPC_MoveParent,
/* 47807*/          OPC_CheckPredicate, 52, // Predicate_X86pcmpum_commute_su
/* 47809*/          OPC_MoveParent,
/* 47810*/          OPC_CheckType, MVT::v32i1,
/* 47812*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 47814*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 47817*/          OPC_EmitMergeInputChains1_2,
/* 47818*/          OPC_EmitNodeXForm, 9, 1, // X86pcmpm_imm_commute
/* 47821*/          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] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v32i8] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute_su>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 29
                    // Dst: (VPCMPUBZ256rmik:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v32i1] }:$cc))
/* 47835*/        /*Scope*/ 51, /*->47887*/
/* 47836*/          OPC_RecordChild0, // #2 = $src1
/* 47837*/          OPC_CheckChild0Type, MVT::v16i8,
/* 47839*/          OPC_MoveChild1,
/* 47840*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 47843*/          OPC_RecordMemRef,
/* 47844*/          OPC_RecordNode, // #3 = 'ld' chained node
/* 47845*/          OPC_CheckFoldableChainNode,
/* 47846*/          OPC_RecordChild1, // #4 = $src2
/* 47847*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 47849*/          OPC_CheckPredicate, 9, // Predicate_load
/* 47851*/          OPC_MoveParent,
/* 47852*/          OPC_MoveChild2,
/* 47853*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 47856*/          OPC_MoveParent,
/* 47857*/          OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 47859*/          OPC_MoveParent,
/* 47860*/          OPC_CheckType, MVT::v16i1,
/* 47862*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 47864*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 47867*/          OPC_EmitMergeInputChains, 1, 3, 
/* 47870*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 47873*/          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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_su>><<X:X86pcmpm_imm>>:$cc) - Complexity = 29
                    // Dst: (VPCMPUBZ128rmik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] })):$cc))
/* 47887*/        /*Scope*/ 49, /*->47937*/
/* 47888*/          OPC_MoveChild0,
/* 47889*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 47892*/          OPC_RecordMemRef,
/* 47893*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 47894*/          OPC_CheckFoldableChainNode,
/* 47895*/          OPC_RecordChild1, // #3 = $src2
/* 47896*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 47898*/          OPC_CheckPredicate, 9, // Predicate_load
/* 47900*/          OPC_CheckType, MVT::v16i8,
/* 47902*/          OPC_MoveParent,
/* 47903*/          OPC_RecordChild1, // #4 = $src1
/* 47904*/          OPC_MoveChild2,
/* 47905*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 47908*/          OPC_MoveParent,
/* 47909*/          OPC_CheckPredicate, 52, // Predicate_X86pcmpum_commute_su
/* 47911*/          OPC_MoveParent,
/* 47912*/          OPC_CheckType, MVT::v16i1,
/* 47914*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 47916*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 47919*/          OPC_EmitMergeInputChains1_2,
/* 47920*/          OPC_EmitNodeXForm, 9, 1, // X86pcmpm_imm_commute
/* 47923*/          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] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v16i8] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute_su>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 29
                    // Dst: (VPCMPUBZ128rmik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v16i1] }:$cc))
/* 47937*/        /*Scope*/ 51, /*->47989*/
/* 47938*/          OPC_RecordChild0, // #2 = $src1
/* 47939*/          OPC_CheckChild0Type, MVT::v32i16,
/* 47941*/          OPC_MoveChild1,
/* 47942*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 47945*/          OPC_RecordMemRef,
/* 47946*/          OPC_RecordNode, // #3 = 'ld' chained node
/* 47947*/          OPC_CheckFoldableChainNode,
/* 47948*/          OPC_RecordChild1, // #4 = $src2
/* 47949*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 47951*/          OPC_CheckPredicate, 9, // Predicate_load
/* 47953*/          OPC_MoveParent,
/* 47954*/          OPC_MoveChild2,
/* 47955*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 47958*/          OPC_MoveParent,
/* 47959*/          OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 47961*/          OPC_MoveParent,
/* 47962*/          OPC_CheckType, MVT::v32i1,
/* 47964*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/* 47966*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 47969*/          OPC_EmitMergeInputChains, 1, 3, 
/* 47972*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 47975*/          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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_su>><<X:X86pcmpm_imm>>:$cc) - Complexity = 29
                    // Dst: (VPCMPWZrmik:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v32i1] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] })):$cc))
/* 47989*/        /*Scope*/ 49, /*->48039*/
/* 47990*/          OPC_MoveChild0,
/* 47991*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 47994*/          OPC_RecordMemRef,
/* 47995*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 47996*/          OPC_CheckFoldableChainNode,
/* 47997*/          OPC_RecordChild1, // #3 = $src2
/* 47998*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 48000*/          OPC_CheckPredicate, 9, // Predicate_load
/* 48002*/          OPC_CheckType, MVT::v32i16,
/* 48004*/          OPC_MoveParent,
/* 48005*/          OPC_RecordChild1, // #4 = $src1
/* 48006*/          OPC_MoveChild2,
/* 48007*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 48010*/          OPC_MoveParent,
/* 48011*/          OPC_CheckPredicate, 51, // Predicate_X86pcmpm_commute_su
/* 48013*/          OPC_MoveParent,
/* 48014*/          OPC_CheckType, MVT::v32i1,
/* 48016*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/* 48018*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 48021*/          OPC_EmitMergeInputChains1_2,
/* 48022*/          OPC_EmitNodeXForm, 9, 1, // X86pcmpm_imm_commute
/* 48025*/          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] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute_su>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 29
                    // Dst: (VPCMPWZrmik:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v32i1] }:$cc))
/* 48039*/        /*Scope*/ 51, /*->48091*/
/* 48040*/          OPC_RecordChild0, // #2 = $src1
/* 48041*/          OPC_CheckChild0Type, MVT::v16i16,
/* 48043*/          OPC_MoveChild1,
/* 48044*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 48047*/          OPC_RecordMemRef,
/* 48048*/          OPC_RecordNode, // #3 = 'ld' chained node
/* 48049*/          OPC_CheckFoldableChainNode,
/* 48050*/          OPC_RecordChild1, // #4 = $src2
/* 48051*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 48053*/          OPC_CheckPredicate, 9, // Predicate_load
/* 48055*/          OPC_MoveParent,
/* 48056*/          OPC_MoveChild2,
/* 48057*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 48060*/          OPC_MoveParent,
/* 48061*/          OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 48063*/          OPC_MoveParent,
/* 48064*/          OPC_CheckType, MVT::v16i1,
/* 48066*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 48068*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 48071*/          OPC_EmitMergeInputChains, 1, 3, 
/* 48074*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 48077*/          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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_su>><<X:X86pcmpm_imm>>:$cc) - Complexity = 29
                    // Dst: (VPCMPWZ256rmik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] })):$cc))
/* 48091*/        /*Scope*/ 49, /*->48141*/
/* 48092*/          OPC_MoveChild0,
/* 48093*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 48096*/          OPC_RecordMemRef,
/* 48097*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 48098*/          OPC_CheckFoldableChainNode,
/* 48099*/          OPC_RecordChild1, // #3 = $src2
/* 48100*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 48102*/          OPC_CheckPredicate, 9, // Predicate_load
/* 48104*/          OPC_CheckType, MVT::v16i16,
/* 48106*/          OPC_MoveParent,
/* 48107*/          OPC_RecordChild1, // #4 = $src1
/* 48108*/          OPC_MoveChild2,
/* 48109*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 48112*/          OPC_MoveParent,
/* 48113*/          OPC_CheckPredicate, 51, // Predicate_X86pcmpm_commute_su
/* 48115*/          OPC_MoveParent,
/* 48116*/          OPC_CheckType, MVT::v16i1,
/* 48118*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 48120*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 48123*/          OPC_EmitMergeInputChains1_2,
/* 48124*/          OPC_EmitNodeXForm, 9, 1, // X86pcmpm_imm_commute
/* 48127*/          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] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute_su>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 29
                    // Dst: (VPCMPWZ256rmik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v16i1] }:$cc))
/* 48141*/        /*Scope*/ 51, /*->48193*/
/* 48142*/          OPC_RecordChild0, // #2 = $src1
/* 48143*/          OPC_CheckChild0Type, MVT::v8i16,
/* 48145*/          OPC_MoveChild1,
/* 48146*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 48149*/          OPC_RecordMemRef,
/* 48150*/          OPC_RecordNode, // #3 = 'ld' chained node
/* 48151*/          OPC_CheckFoldableChainNode,
/* 48152*/          OPC_RecordChild1, // #4 = $src2
/* 48153*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 48155*/          OPC_CheckPredicate, 9, // Predicate_load
/* 48157*/          OPC_MoveParent,
/* 48158*/          OPC_MoveChild2,
/* 48159*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 48162*/          OPC_MoveParent,
/* 48163*/          OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 48165*/          OPC_MoveParent,
/* 48166*/          OPC_CheckType, MVT::v8i1,
/* 48168*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 48170*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 48173*/          OPC_EmitMergeInputChains, 1, 3, 
/* 48176*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 48179*/          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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_su>><<X:X86pcmpm_imm>>:$cc) - Complexity = 29
                    // Dst: (VPCMPWZ128rmik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] })):$cc))
/* 48193*/        /*Scope*/ 49, /*->48243*/
/* 48194*/          OPC_MoveChild0,
/* 48195*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 48198*/          OPC_RecordMemRef,
/* 48199*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 48200*/          OPC_CheckFoldableChainNode,
/* 48201*/          OPC_RecordChild1, // #3 = $src2
/* 48202*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 48204*/          OPC_CheckPredicate, 9, // Predicate_load
/* 48206*/          OPC_CheckType, MVT::v8i16,
/* 48208*/          OPC_MoveParent,
/* 48209*/          OPC_RecordChild1, // #4 = $src1
/* 48210*/          OPC_MoveChild2,
/* 48211*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 48214*/          OPC_MoveParent,
/* 48215*/          OPC_CheckPredicate, 51, // Predicate_X86pcmpm_commute_su
/* 48217*/          OPC_MoveParent,
/* 48218*/          OPC_CheckType, MVT::v8i1,
/* 48220*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 48222*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 48225*/          OPC_EmitMergeInputChains1_2,
/* 48226*/          OPC_EmitNodeXForm, 9, 1, // X86pcmpm_imm_commute
/* 48229*/          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] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute_su>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 29
                    // Dst: (VPCMPWZ128rmik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v8i1] }:$cc))
/* 48243*/        /*Scope*/ 51, /*->48295*/
/* 48244*/          OPC_RecordChild0, // #2 = $src1
/* 48245*/          OPC_CheckChild0Type, MVT::v32i16,
/* 48247*/          OPC_MoveChild1,
/* 48248*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 48251*/          OPC_RecordMemRef,
/* 48252*/          OPC_RecordNode, // #3 = 'ld' chained node
/* 48253*/          OPC_CheckFoldableChainNode,
/* 48254*/          OPC_RecordChild1, // #4 = $src2
/* 48255*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 48257*/          OPC_CheckPredicate, 9, // Predicate_load
/* 48259*/          OPC_MoveParent,
/* 48260*/          OPC_MoveChild2,
/* 48261*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 48264*/          OPC_MoveParent,
/* 48265*/          OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 48267*/          OPC_MoveParent,
/* 48268*/          OPC_CheckType, MVT::v32i1,
/* 48270*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/* 48272*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 48275*/          OPC_EmitMergeInputChains, 1, 3, 
/* 48278*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 48281*/          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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_su>><<X:X86pcmpm_imm>>:$cc) - Complexity = 29
                    // Dst: (VPCMPUWZrmik:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v32i1] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] })):$cc))
/* 48295*/        /*Scope*/ 49, /*->48345*/
/* 48296*/          OPC_MoveChild0,
/* 48297*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 48300*/          OPC_RecordMemRef,
/* 48301*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 48302*/          OPC_CheckFoldableChainNode,
/* 48303*/          OPC_RecordChild1, // #3 = $src2
/* 48304*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 48306*/          OPC_CheckPredicate, 9, // Predicate_load
/* 48308*/          OPC_CheckType, MVT::v32i16,
/* 48310*/          OPC_MoveParent,
/* 48311*/          OPC_RecordChild1, // #4 = $src1
/* 48312*/          OPC_MoveChild2,
/* 48313*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 48316*/          OPC_MoveParent,
/* 48317*/          OPC_CheckPredicate, 52, // Predicate_X86pcmpum_commute_su
/* 48319*/          OPC_MoveParent,
/* 48320*/          OPC_CheckType, MVT::v32i1,
/* 48322*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/* 48324*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 48327*/          OPC_EmitMergeInputChains1_2,
/* 48328*/          OPC_EmitNodeXForm, 9, 1, // X86pcmpm_imm_commute
/* 48331*/          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] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute_su>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 29
                    // Dst: (VPCMPUWZrmik:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v32i1] }:$cc))
/* 48345*/        /*Scope*/ 51, /*->48397*/
/* 48346*/          OPC_RecordChild0, // #2 = $src1
/* 48347*/          OPC_CheckChild0Type, MVT::v16i16,
/* 48349*/          OPC_MoveChild1,
/* 48350*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 48353*/          OPC_RecordMemRef,
/* 48354*/          OPC_RecordNode, // #3 = 'ld' chained node
/* 48355*/          OPC_CheckFoldableChainNode,
/* 48356*/          OPC_RecordChild1, // #4 = $src2
/* 48357*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 48359*/          OPC_CheckPredicate, 9, // Predicate_load
/* 48361*/          OPC_MoveParent,
/* 48362*/          OPC_MoveChild2,
/* 48363*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 48366*/          OPC_MoveParent,
/* 48367*/          OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 48369*/          OPC_MoveParent,
/* 48370*/          OPC_CheckType, MVT::v16i1,
/* 48372*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 48374*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 48377*/          OPC_EmitMergeInputChains, 1, 3, 
/* 48380*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 48383*/          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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_su>><<X:X86pcmpm_imm>>:$cc) - Complexity = 29
                    // Dst: (VPCMPUWZ256rmik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] })):$cc))
/* 48397*/        /*Scope*/ 49, /*->48447*/
/* 48398*/          OPC_MoveChild0,
/* 48399*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 48402*/          OPC_RecordMemRef,
/* 48403*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 48404*/          OPC_CheckFoldableChainNode,
/* 48405*/          OPC_RecordChild1, // #3 = $src2
/* 48406*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 48408*/          OPC_CheckPredicate, 9, // Predicate_load
/* 48410*/          OPC_CheckType, MVT::v16i16,
/* 48412*/          OPC_MoveParent,
/* 48413*/          OPC_RecordChild1, // #4 = $src1
/* 48414*/          OPC_MoveChild2,
/* 48415*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 48418*/          OPC_MoveParent,
/* 48419*/          OPC_CheckPredicate, 52, // Predicate_X86pcmpum_commute_su
/* 48421*/          OPC_MoveParent,
/* 48422*/          OPC_CheckType, MVT::v16i1,
/* 48424*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 48426*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 48429*/          OPC_EmitMergeInputChains1_2,
/* 48430*/          OPC_EmitNodeXForm, 9, 1, // X86pcmpm_imm_commute
/* 48433*/          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] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute_su>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 29
                    // Dst: (VPCMPUWZ256rmik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v16i1] }:$cc))
/* 48447*/        /*Scope*/ 51, /*->48499*/
/* 48448*/          OPC_RecordChild0, // #2 = $src1
/* 48449*/          OPC_CheckChild0Type, MVT::v8i16,
/* 48451*/          OPC_MoveChild1,
/* 48452*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 48455*/          OPC_RecordMemRef,
/* 48456*/          OPC_RecordNode, // #3 = 'ld' chained node
/* 48457*/          OPC_CheckFoldableChainNode,
/* 48458*/          OPC_RecordChild1, // #4 = $src2
/* 48459*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 48461*/          OPC_CheckPredicate, 9, // Predicate_load
/* 48463*/          OPC_MoveParent,
/* 48464*/          OPC_MoveChild2,
/* 48465*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 48468*/          OPC_MoveParent,
/* 48469*/          OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 48471*/          OPC_MoveParent,
/* 48472*/          OPC_CheckType, MVT::v8i1,
/* 48474*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 48476*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 48479*/          OPC_EmitMergeInputChains, 1, 3, 
/* 48482*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 48485*/          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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_su>><<X:X86pcmpm_imm>>:$cc) - Complexity = 29
                    // Dst: (VPCMPUWZ128rmik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] })):$cc))
/* 48499*/        /*Scope*/ 49, /*->48549*/
/* 48500*/          OPC_MoveChild0,
/* 48501*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 48504*/          OPC_RecordMemRef,
/* 48505*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 48506*/          OPC_CheckFoldableChainNode,
/* 48507*/          OPC_RecordChild1, // #3 = $src2
/* 48508*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 48510*/          OPC_CheckPredicate, 9, // Predicate_load
/* 48512*/          OPC_CheckType, MVT::v8i16,
/* 48514*/          OPC_MoveParent,
/* 48515*/          OPC_RecordChild1, // #4 = $src1
/* 48516*/          OPC_MoveChild2,
/* 48517*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 48520*/          OPC_MoveParent,
/* 48521*/          OPC_CheckPredicate, 52, // Predicate_X86pcmpum_commute_su
/* 48523*/          OPC_MoveParent,
/* 48524*/          OPC_CheckType, MVT::v8i1,
/* 48526*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 48528*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 48531*/          OPC_EmitMergeInputChains1_2,
/* 48532*/          OPC_EmitNodeXForm, 9, 1, // X86pcmpm_imm_commute
/* 48535*/          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] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute_su>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 29
                    // Dst: (VPCMPUWZ128rmik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v8i1] }:$cc))
/* 48549*/        /*Scope*/ 51, /*->48601*/
/* 48550*/          OPC_RecordChild0, // #2 = $src1
/* 48551*/          OPC_CheckChild0Type, MVT::v16i32,
/* 48553*/          OPC_MoveChild1,
/* 48554*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 48557*/          OPC_RecordMemRef,
/* 48558*/          OPC_RecordNode, // #3 = 'ld' chained node
/* 48559*/          OPC_CheckFoldableChainNode,
/* 48560*/          OPC_RecordChild1, // #4 = $src2
/* 48561*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 48563*/          OPC_CheckPredicate, 9, // Predicate_load
/* 48565*/          OPC_MoveParent,
/* 48566*/          OPC_MoveChild2,
/* 48567*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 48570*/          OPC_MoveParent,
/* 48571*/          OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 48573*/          OPC_MoveParent,
/* 48574*/          OPC_CheckType, MVT::v16i1,
/* 48576*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 48578*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 48581*/          OPC_EmitMergeInputChains, 1, 3, 
/* 48584*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 48587*/          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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_su>><<X:X86pcmpm_imm>>:$cc) - Complexity = 29
                    // Dst: (VPCMPDZrmik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] })):$cc))
/* 48601*/        /*Scope*/ 49, /*->48651*/
/* 48602*/          OPC_MoveChild0,
/* 48603*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 48606*/          OPC_RecordMemRef,
/* 48607*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 48608*/          OPC_CheckFoldableChainNode,
/* 48609*/          OPC_RecordChild1, // #3 = $src2
/* 48610*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 48612*/          OPC_CheckPredicate, 9, // Predicate_load
/* 48614*/          OPC_CheckType, MVT::v16i32,
/* 48616*/          OPC_MoveParent,
/* 48617*/          OPC_RecordChild1, // #4 = $src1
/* 48618*/          OPC_MoveChild2,
/* 48619*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 48622*/          OPC_MoveParent,
/* 48623*/          OPC_CheckPredicate, 51, // Predicate_X86pcmpm_commute_su
/* 48625*/          OPC_MoveParent,
/* 48626*/          OPC_CheckType, MVT::v16i1,
/* 48628*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 48630*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 48633*/          OPC_EmitMergeInputChains1_2,
/* 48634*/          OPC_EmitNodeXForm, 9, 1, // X86pcmpm_imm_commute
/* 48637*/          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] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute_su>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 29
                    // Dst: (VPCMPDZrmik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v16i1] }:$cc))
/* 48651*/        /*Scope*/ 49, /*->48701*/
/* 48652*/          OPC_RecordChild0, // #2 = $src1
/* 48653*/          OPC_CheckChild0Type, MVT::v16i32,
/* 48655*/          OPC_MoveChild1,
/* 48656*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 48659*/          OPC_RecordMemRef,
/* 48660*/          OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/* 48661*/          OPC_CheckFoldableChainNode,
/* 48662*/          OPC_RecordChild1, // #4 = $src2
/* 48663*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/* 48665*/          OPC_MoveParent,
/* 48666*/          OPC_MoveChild2,
/* 48667*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 48670*/          OPC_MoveParent,
/* 48671*/          OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 48673*/          OPC_MoveParent,
/* 48674*/          OPC_CheckType, MVT::v16i1,
/* 48676*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 48678*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 48681*/          OPC_EmitMergeInputChains, 1, 3, 
/* 48684*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 48687*/          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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_su>><<X:X86pcmpm_imm>>:$cc) - Complexity = 29
                    // Dst: (VPCMPDZrmibk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (cond:{ *:[Other] })):$cc))
/* 48701*/        /*Scope*/ 47, /*->48749*/
/* 48702*/          OPC_MoveChild0,
/* 48703*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 48706*/          OPC_RecordMemRef,
/* 48707*/          OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/* 48708*/          OPC_CheckFoldableChainNode,
/* 48709*/          OPC_RecordChild1, // #3 = $src2
/* 48710*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/* 48712*/          OPC_CheckType, MVT::v16i32,
/* 48714*/          OPC_MoveParent,
/* 48715*/          OPC_RecordChild1, // #4 = $src1
/* 48716*/          OPC_MoveChild2,
/* 48717*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 48720*/          OPC_MoveParent,
/* 48721*/          OPC_CheckPredicate, 51, // Predicate_X86pcmpm_commute_su
/* 48723*/          OPC_MoveParent,
/* 48724*/          OPC_CheckType, MVT::v16i1,
/* 48726*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 48728*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 48731*/          OPC_EmitMergeInputChains1_2,
/* 48732*/          OPC_EmitNodeXForm, 9, 1, // X86pcmpm_imm_commute
/* 48735*/          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] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute_su>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 29
                    // Dst: (VPCMPDZrmibk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v16i1] }:$cc))
/* 48749*/        /*Scope*/ 51, /*->48801*/
/* 48750*/          OPC_RecordChild0, // #2 = $src1
/* 48751*/          OPC_CheckChild0Type, MVT::v8i32,
/* 48753*/          OPC_MoveChild1,
/* 48754*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 48757*/          OPC_RecordMemRef,
/* 48758*/          OPC_RecordNode, // #3 = 'ld' chained node
/* 48759*/          OPC_CheckFoldableChainNode,
/* 48760*/          OPC_RecordChild1, // #4 = $src2
/* 48761*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 48763*/          OPC_CheckPredicate, 9, // Predicate_load
/* 48765*/          OPC_MoveParent,
/* 48766*/          OPC_MoveChild2,
/* 48767*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 48770*/          OPC_MoveParent,
/* 48771*/          OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 48773*/          OPC_MoveParent,
/* 48774*/          OPC_CheckType, MVT::v8i1,
/* 48776*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 48778*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 48781*/          OPC_EmitMergeInputChains, 1, 3, 
/* 48784*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 48787*/          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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_su>><<X:X86pcmpm_imm>>:$cc) - Complexity = 29
                    // Dst: (VPCMPDZ256rmik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] })):$cc))
/* 48801*/        /*Scope*/ 49, /*->48851*/
/* 48802*/          OPC_MoveChild0,
/* 48803*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 48806*/          OPC_RecordMemRef,
/* 48807*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 48808*/          OPC_CheckFoldableChainNode,
/* 48809*/          OPC_RecordChild1, // #3 = $src2
/* 48810*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 48812*/          OPC_CheckPredicate, 9, // Predicate_load
/* 48814*/          OPC_CheckType, MVT::v8i32,
/* 48816*/          OPC_MoveParent,
/* 48817*/          OPC_RecordChild1, // #4 = $src1
/* 48818*/          OPC_MoveChild2,
/* 48819*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 48822*/          OPC_MoveParent,
/* 48823*/          OPC_CheckPredicate, 51, // Predicate_X86pcmpm_commute_su
/* 48825*/          OPC_MoveParent,
/* 48826*/          OPC_CheckType, MVT::v8i1,
/* 48828*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 48830*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 48833*/          OPC_EmitMergeInputChains1_2,
/* 48834*/          OPC_EmitNodeXForm, 9, 1, // X86pcmpm_imm_commute
/* 48837*/          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] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute_su>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 29
                    // Dst: (VPCMPDZ256rmik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v8i1] }:$cc))
/* 48851*/        /*Scope*/ 49, /*->48901*/
/* 48852*/          OPC_RecordChild0, // #2 = $src1
/* 48853*/          OPC_CheckChild0Type, MVT::v8i32,
/* 48855*/          OPC_MoveChild1,
/* 48856*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 48859*/          OPC_RecordMemRef,
/* 48860*/          OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/* 48861*/          OPC_CheckFoldableChainNode,
/* 48862*/          OPC_RecordChild1, // #4 = $src2
/* 48863*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/* 48865*/          OPC_MoveParent,
/* 48866*/          OPC_MoveChild2,
/* 48867*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 48870*/          OPC_MoveParent,
/* 48871*/          OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 48873*/          OPC_MoveParent,
/* 48874*/          OPC_CheckType, MVT::v8i1,
/* 48876*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 48878*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 48881*/          OPC_EmitMergeInputChains, 1, 3, 
/* 48884*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 48887*/          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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_su>><<X:X86pcmpm_imm>>:$cc) - Complexity = 29
                    // Dst: (VPCMPDZ256rmibk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (cond:{ *:[Other] })):$cc))
/* 48901*/        /*Scope*/ 47, /*->48949*/
/* 48902*/          OPC_MoveChild0,
/* 48903*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 48906*/          OPC_RecordMemRef,
/* 48907*/          OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/* 48908*/          OPC_CheckFoldableChainNode,
/* 48909*/          OPC_RecordChild1, // #3 = $src2
/* 48910*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/* 48912*/          OPC_CheckType, MVT::v8i32,
/* 48914*/          OPC_MoveParent,
/* 48915*/          OPC_RecordChild1, // #4 = $src1
/* 48916*/          OPC_MoveChild2,
/* 48917*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 48920*/          OPC_MoveParent,
/* 48921*/          OPC_CheckPredicate, 51, // Predicate_X86pcmpm_commute_su
/* 48923*/          OPC_MoveParent,
/* 48924*/          OPC_CheckType, MVT::v8i1,
/* 48926*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 48928*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 48931*/          OPC_EmitMergeInputChains1_2,
/* 48932*/          OPC_EmitNodeXForm, 9, 1, // X86pcmpm_imm_commute
/* 48935*/          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] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute_su>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 29
                    // Dst: (VPCMPDZ256rmibk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v8i1] }:$cc))
/* 48949*/        /*Scope*/ 51, /*->49001*/
/* 48950*/          OPC_RecordChild0, // #2 = $src1
/* 48951*/          OPC_CheckChild0Type, MVT::v4i32,
/* 48953*/          OPC_MoveChild1,
/* 48954*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 48957*/          OPC_RecordMemRef,
/* 48958*/          OPC_RecordNode, // #3 = 'ld' chained node
/* 48959*/          OPC_CheckFoldableChainNode,
/* 48960*/          OPC_RecordChild1, // #4 = $src2
/* 48961*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 48963*/          OPC_CheckPredicate, 9, // Predicate_load
/* 48965*/          OPC_MoveParent,
/* 48966*/          OPC_MoveChild2,
/* 48967*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 48970*/          OPC_MoveParent,
/* 48971*/          OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 48973*/          OPC_MoveParent,
/* 48974*/          OPC_CheckType, MVT::v4i1,
/* 48976*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 48978*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 48981*/          OPC_EmitMergeInputChains, 1, 3, 
/* 48984*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 48987*/          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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_su>><<X:X86pcmpm_imm>>:$cc) - Complexity = 29
                    // Dst: (VPCMPDZ128rmik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] })):$cc))
/* 49001*/        /*Scope*/ 49, /*->49051*/
/* 49002*/          OPC_MoveChild0,
/* 49003*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 49006*/          OPC_RecordMemRef,
/* 49007*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 49008*/          OPC_CheckFoldableChainNode,
/* 49009*/          OPC_RecordChild1, // #3 = $src2
/* 49010*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 49012*/          OPC_CheckPredicate, 9, // Predicate_load
/* 49014*/          OPC_CheckType, MVT::v4i32,
/* 49016*/          OPC_MoveParent,
/* 49017*/          OPC_RecordChild1, // #4 = $src1
/* 49018*/          OPC_MoveChild2,
/* 49019*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 49022*/          OPC_MoveParent,
/* 49023*/          OPC_CheckPredicate, 51, // Predicate_X86pcmpm_commute_su
/* 49025*/          OPC_MoveParent,
/* 49026*/          OPC_CheckType, MVT::v4i1,
/* 49028*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 49030*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 49033*/          OPC_EmitMergeInputChains1_2,
/* 49034*/          OPC_EmitNodeXForm, 9, 1, // X86pcmpm_imm_commute
/* 49037*/          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] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute_su>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 29
                    // Dst: (VPCMPDZ128rmik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v4i1] }:$cc))
/* 49051*/        /*Scope*/ 49, /*->49101*/
/* 49052*/          OPC_RecordChild0, // #2 = $src1
/* 49053*/          OPC_CheckChild0Type, MVT::v4i32,
/* 49055*/          OPC_MoveChild1,
/* 49056*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 49059*/          OPC_RecordMemRef,
/* 49060*/          OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/* 49061*/          OPC_CheckFoldableChainNode,
/* 49062*/          OPC_RecordChild1, // #4 = $src2
/* 49063*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/* 49065*/          OPC_MoveParent,
/* 49066*/          OPC_MoveChild2,
/* 49067*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 49070*/          OPC_MoveParent,
/* 49071*/          OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 49073*/          OPC_MoveParent,
/* 49074*/          OPC_CheckType, MVT::v4i1,
/* 49076*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 49078*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 49081*/          OPC_EmitMergeInputChains, 1, 3, 
/* 49084*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 49087*/          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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_su>><<X:X86pcmpm_imm>>:$cc) - Complexity = 29
                    // Dst: (VPCMPDZ128rmibk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (cond:{ *:[Other] })):$cc))
/* 49101*/        /*Scope*/ 47, /*->49149*/
/* 49102*/          OPC_MoveChild0,
/* 49103*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 49106*/          OPC_RecordMemRef,
/* 49107*/          OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/* 49108*/          OPC_CheckFoldableChainNode,
/* 49109*/          OPC_RecordChild1, // #3 = $src2
/* 49110*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/* 49112*/          OPC_CheckType, MVT::v4i32,
/* 49114*/          OPC_MoveParent,
/* 49115*/          OPC_RecordChild1, // #4 = $src1
/* 49116*/          OPC_MoveChild2,
/* 49117*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 49120*/          OPC_MoveParent,
/* 49121*/          OPC_CheckPredicate, 51, // Predicate_X86pcmpm_commute_su
/* 49123*/          OPC_MoveParent,
/* 49124*/          OPC_CheckType, MVT::v4i1,
/* 49126*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 49128*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 49131*/          OPC_EmitMergeInputChains1_2,
/* 49132*/          OPC_EmitNodeXForm, 9, 1, // X86pcmpm_imm_commute
/* 49135*/          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] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute_su>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 29
                    // Dst: (VPCMPDZ128rmibk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v4i1] }:$cc))
/* 49149*/        /*Scope*/ 51, /*->49201*/
/* 49150*/          OPC_RecordChild0, // #2 = $src1
/* 49151*/          OPC_CheckChild0Type, MVT::v16i32,
/* 49153*/          OPC_MoveChild1,
/* 49154*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 49157*/          OPC_RecordMemRef,
/* 49158*/          OPC_RecordNode, // #3 = 'ld' chained node
/* 49159*/          OPC_CheckFoldableChainNode,
/* 49160*/          OPC_RecordChild1, // #4 = $src2
/* 49161*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 49163*/          OPC_CheckPredicate, 9, // Predicate_load
/* 49165*/          OPC_MoveParent,
/* 49166*/          OPC_MoveChild2,
/* 49167*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 49170*/          OPC_MoveParent,
/* 49171*/          OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 49173*/          OPC_MoveParent,
/* 49174*/          OPC_CheckType, MVT::v16i1,
/* 49176*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 49178*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 49181*/          OPC_EmitMergeInputChains, 1, 3, 
/* 49184*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 49187*/          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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_su>><<X:X86pcmpm_imm>>:$cc) - Complexity = 29
                    // Dst: (VPCMPUDZrmik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] })):$cc))
/* 49201*/        /*Scope*/ 49, /*->49251*/
/* 49202*/          OPC_MoveChild0,
/* 49203*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 49206*/          OPC_RecordMemRef,
/* 49207*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 49208*/          OPC_CheckFoldableChainNode,
/* 49209*/          OPC_RecordChild1, // #3 = $src2
/* 49210*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 49212*/          OPC_CheckPredicate, 9, // Predicate_load
/* 49214*/          OPC_CheckType, MVT::v16i32,
/* 49216*/          OPC_MoveParent,
/* 49217*/          OPC_RecordChild1, // #4 = $src1
/* 49218*/          OPC_MoveChild2,
/* 49219*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 49222*/          OPC_MoveParent,
/* 49223*/          OPC_CheckPredicate, 52, // Predicate_X86pcmpum_commute_su
/* 49225*/          OPC_MoveParent,
/* 49226*/          OPC_CheckType, MVT::v16i1,
/* 49228*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 49230*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 49233*/          OPC_EmitMergeInputChains1_2,
/* 49234*/          OPC_EmitNodeXForm, 9, 1, // X86pcmpm_imm_commute
/* 49237*/          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] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute_su>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 29
                    // Dst: (VPCMPUDZrmik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v16i1] }:$cc))
/* 49251*/        /*Scope*/ 49, /*->49301*/
/* 49252*/          OPC_RecordChild0, // #2 = $src1
/* 49253*/          OPC_CheckChild0Type, MVT::v16i32,
/* 49255*/          OPC_MoveChild1,
/* 49256*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 49259*/          OPC_RecordMemRef,
/* 49260*/          OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/* 49261*/          OPC_CheckFoldableChainNode,
/* 49262*/          OPC_RecordChild1, // #4 = $src2
/* 49263*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/* 49265*/          OPC_MoveParent,
/* 49266*/          OPC_MoveChild2,
/* 49267*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 49270*/          OPC_MoveParent,
/* 49271*/          OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 49273*/          OPC_MoveParent,
/* 49274*/          OPC_CheckType, MVT::v16i1,
/* 49276*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 49278*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 49281*/          OPC_EmitMergeInputChains, 1, 3, 
/* 49284*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 49287*/          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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_su>><<X:X86pcmpm_imm>>:$cc) - Complexity = 29
                    // Dst: (VPCMPUDZrmibk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (cond:{ *:[Other] })):$cc))
/* 49301*/        /*Scope*/ 47, /*->49349*/
/* 49302*/          OPC_MoveChild0,
/* 49303*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 49306*/          OPC_RecordMemRef,
/* 49307*/          OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/* 49308*/          OPC_CheckFoldableChainNode,
/* 49309*/          OPC_RecordChild1, // #3 = $src2
/* 49310*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/* 49312*/          OPC_CheckType, MVT::v16i32,
/* 49314*/          OPC_MoveParent,
/* 49315*/          OPC_RecordChild1, // #4 = $src1
/* 49316*/          OPC_MoveChild2,
/* 49317*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 49320*/          OPC_MoveParent,
/* 49321*/          OPC_CheckPredicate, 52, // Predicate_X86pcmpum_commute_su
/* 49323*/          OPC_MoveParent,
/* 49324*/          OPC_CheckType, MVT::v16i1,
/* 49326*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 49328*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 49331*/          OPC_EmitMergeInputChains1_2,
/* 49332*/          OPC_EmitNodeXForm, 9, 1, // X86pcmpm_imm_commute
/* 49335*/          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] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute_su>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 29
                    // Dst: (VPCMPUDZrmibk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v16i1] }:$cc))
/* 49349*/        /*Scope*/ 51, /*->49401*/
/* 49350*/          OPC_RecordChild0, // #2 = $src1
/* 49351*/          OPC_CheckChild0Type, MVT::v8i32,
/* 49353*/          OPC_MoveChild1,
/* 49354*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 49357*/          OPC_RecordMemRef,
/* 49358*/          OPC_RecordNode, // #3 = 'ld' chained node
/* 49359*/          OPC_CheckFoldableChainNode,
/* 49360*/          OPC_RecordChild1, // #4 = $src2
/* 49361*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 49363*/          OPC_CheckPredicate, 9, // Predicate_load
/* 49365*/          OPC_MoveParent,
/* 49366*/          OPC_MoveChild2,
/* 49367*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 49370*/          OPC_MoveParent,
/* 49371*/          OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 49373*/          OPC_MoveParent,
/* 49374*/          OPC_CheckType, MVT::v8i1,
/* 49376*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 49378*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 49381*/          OPC_EmitMergeInputChains, 1, 3, 
/* 49384*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 49387*/          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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_su>><<X:X86pcmpm_imm>>:$cc) - Complexity = 29
                    // Dst: (VPCMPUDZ256rmik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] })):$cc))
/* 49401*/        /*Scope*/ 49, /*->49451*/
/* 49402*/          OPC_MoveChild0,
/* 49403*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 49406*/          OPC_RecordMemRef,
/* 49407*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 49408*/          OPC_CheckFoldableChainNode,
/* 49409*/          OPC_RecordChild1, // #3 = $src2
/* 49410*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 49412*/          OPC_CheckPredicate, 9, // Predicate_load
/* 49414*/          OPC_CheckType, MVT::v8i32,
/* 49416*/          OPC_MoveParent,
/* 49417*/          OPC_RecordChild1, // #4 = $src1
/* 49418*/          OPC_MoveChild2,
/* 49419*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 49422*/          OPC_MoveParent,
/* 49423*/          OPC_CheckPredicate, 52, // Predicate_X86pcmpum_commute_su
/* 49425*/          OPC_MoveParent,
/* 49426*/          OPC_CheckType, MVT::v8i1,
/* 49428*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 49430*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 49433*/          OPC_EmitMergeInputChains1_2,
/* 49434*/          OPC_EmitNodeXForm, 9, 1, // X86pcmpm_imm_commute
/* 49437*/          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] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute_su>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 29
                    // Dst: (VPCMPUDZ256rmik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v8i1] }:$cc))
/* 49451*/        /*Scope*/ 49, /*->49501*/
/* 49452*/          OPC_RecordChild0, // #2 = $src1
/* 49453*/          OPC_CheckChild0Type, MVT::v8i32,
/* 49455*/          OPC_MoveChild1,
/* 49456*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 49459*/          OPC_RecordMemRef,
/* 49460*/          OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/* 49461*/          OPC_CheckFoldableChainNode,
/* 49462*/          OPC_RecordChild1, // #4 = $src2
/* 49463*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/* 49465*/          OPC_MoveParent,
/* 49466*/          OPC_MoveChild2,
/* 49467*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 49470*/          OPC_MoveParent,
/* 49471*/          OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 49473*/          OPC_MoveParent,
/* 49474*/          OPC_CheckType, MVT::v8i1,
/* 49476*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 49478*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 49481*/          OPC_EmitMergeInputChains, 1, 3, 
/* 49484*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 49487*/          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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_su>><<X:X86pcmpm_imm>>:$cc) - Complexity = 29
                    // Dst: (VPCMPUDZ256rmibk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (cond:{ *:[Other] })):$cc))
/* 49501*/        /*Scope*/ 47, /*->49549*/
/* 49502*/          OPC_MoveChild0,
/* 49503*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 49506*/          OPC_RecordMemRef,
/* 49507*/          OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/* 49508*/          OPC_CheckFoldableChainNode,
/* 49509*/          OPC_RecordChild1, // #3 = $src2
/* 49510*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/* 49512*/          OPC_CheckType, MVT::v8i32,
/* 49514*/          OPC_MoveParent,
/* 49515*/          OPC_RecordChild1, // #4 = $src1
/* 49516*/          OPC_MoveChild2,
/* 49517*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 49520*/          OPC_MoveParent,
/* 49521*/          OPC_CheckPredicate, 52, // Predicate_X86pcmpum_commute_su
/* 49523*/          OPC_MoveParent,
/* 49524*/          OPC_CheckType, MVT::v8i1,
/* 49526*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 49528*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 49531*/          OPC_EmitMergeInputChains1_2,
/* 49532*/          OPC_EmitNodeXForm, 9, 1, // X86pcmpm_imm_commute
/* 49535*/          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] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute_su>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 29
                    // Dst: (VPCMPUDZ256rmibk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v8i1] }:$cc))
/* 49549*/        /*Scope*/ 51, /*->49601*/
/* 49550*/          OPC_RecordChild0, // #2 = $src1
/* 49551*/          OPC_CheckChild0Type, MVT::v4i32,
/* 49553*/          OPC_MoveChild1,
/* 49554*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 49557*/          OPC_RecordMemRef,
/* 49558*/          OPC_RecordNode, // #3 = 'ld' chained node
/* 49559*/          OPC_CheckFoldableChainNode,
/* 49560*/          OPC_RecordChild1, // #4 = $src2
/* 49561*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 49563*/          OPC_CheckPredicate, 9, // Predicate_load
/* 49565*/          OPC_MoveParent,
/* 49566*/          OPC_MoveChild2,
/* 49567*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 49570*/          OPC_MoveParent,
/* 49571*/          OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 49573*/          OPC_MoveParent,
/* 49574*/          OPC_CheckType, MVT::v4i1,
/* 49576*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 49578*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 49581*/          OPC_EmitMergeInputChains, 1, 3, 
/* 49584*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 49587*/          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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_su>><<X:X86pcmpm_imm>>:$cc) - Complexity = 29
                    // Dst: (VPCMPUDZ128rmik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] })):$cc))
/* 49601*/        /*Scope*/ 49, /*->49651*/
/* 49602*/          OPC_MoveChild0,
/* 49603*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 49606*/          OPC_RecordMemRef,
/* 49607*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 49608*/          OPC_CheckFoldableChainNode,
/* 49609*/          OPC_RecordChild1, // #3 = $src2
/* 49610*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 49612*/          OPC_CheckPredicate, 9, // Predicate_load
/* 49614*/          OPC_CheckType, MVT::v4i32,
/* 49616*/          OPC_MoveParent,
/* 49617*/          OPC_RecordChild1, // #4 = $src1
/* 49618*/          OPC_MoveChild2,
/* 49619*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 49622*/          OPC_MoveParent,
/* 49623*/          OPC_CheckPredicate, 52, // Predicate_X86pcmpum_commute_su
/* 49625*/          OPC_MoveParent,
/* 49626*/          OPC_CheckType, MVT::v4i1,
/* 49628*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 49630*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 49633*/          OPC_EmitMergeInputChains1_2,
/* 49634*/          OPC_EmitNodeXForm, 9, 1, // X86pcmpm_imm_commute
/* 49637*/          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] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute_su>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 29
                    // Dst: (VPCMPUDZ128rmik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v4i1] }:$cc))
/* 49651*/        /*Scope*/ 49, /*->49701*/
/* 49652*/          OPC_RecordChild0, // #2 = $src1
/* 49653*/          OPC_CheckChild0Type, MVT::v4i32,
/* 49655*/          OPC_MoveChild1,
/* 49656*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 49659*/          OPC_RecordMemRef,
/* 49660*/          OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/* 49661*/          OPC_CheckFoldableChainNode,
/* 49662*/          OPC_RecordChild1, // #4 = $src2
/* 49663*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/* 49665*/          OPC_MoveParent,
/* 49666*/          OPC_MoveChild2,
/* 49667*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 49670*/          OPC_MoveParent,
/* 49671*/          OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 49673*/          OPC_MoveParent,
/* 49674*/          OPC_CheckType, MVT::v4i1,
/* 49676*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 49678*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 49681*/          OPC_EmitMergeInputChains, 1, 3, 
/* 49684*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 49687*/          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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_su>><<X:X86pcmpm_imm>>:$cc) - Complexity = 29
                    // Dst: (VPCMPUDZ128rmibk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (cond:{ *:[Other] })):$cc))
/* 49701*/        /*Scope*/ 47, /*->49749*/
/* 49702*/          OPC_MoveChild0,
/* 49703*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 49706*/          OPC_RecordMemRef,
/* 49707*/          OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/* 49708*/          OPC_CheckFoldableChainNode,
/* 49709*/          OPC_RecordChild1, // #3 = $src2
/* 49710*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/* 49712*/          OPC_CheckType, MVT::v4i32,
/* 49714*/          OPC_MoveParent,
/* 49715*/          OPC_RecordChild1, // #4 = $src1
/* 49716*/          OPC_MoveChild2,
/* 49717*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 49720*/          OPC_MoveParent,
/* 49721*/          OPC_CheckPredicate, 52, // Predicate_X86pcmpum_commute_su
/* 49723*/          OPC_MoveParent,
/* 49724*/          OPC_CheckType, MVT::v4i1,
/* 49726*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 49728*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 49731*/          OPC_EmitMergeInputChains1_2,
/* 49732*/          OPC_EmitNodeXForm, 9, 1, // X86pcmpm_imm_commute
/* 49735*/          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] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute_su>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 29
                    // Dst: (VPCMPUDZ128rmibk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v4i1] }:$cc))
/* 49749*/        /*Scope*/ 51, /*->49801*/
/* 49750*/          OPC_RecordChild0, // #2 = $src1
/* 49751*/          OPC_CheckChild0Type, MVT::v8i64,
/* 49753*/          OPC_MoveChild1,
/* 49754*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 49757*/          OPC_RecordMemRef,
/* 49758*/          OPC_RecordNode, // #3 = 'ld' chained node
/* 49759*/          OPC_CheckFoldableChainNode,
/* 49760*/          OPC_RecordChild1, // #4 = $src2
/* 49761*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 49763*/          OPC_CheckPredicate, 9, // Predicate_load
/* 49765*/          OPC_MoveParent,
/* 49766*/          OPC_MoveChild2,
/* 49767*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 49770*/          OPC_MoveParent,
/* 49771*/          OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 49773*/          OPC_MoveParent,
/* 49774*/          OPC_CheckType, MVT::v8i1,
/* 49776*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 49778*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 49781*/          OPC_EmitMergeInputChains, 1, 3, 
/* 49784*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 49787*/          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>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_su>><<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>>, (cond:{ *:[Other] })):$cc))
/* 49801*/        /*Scope*/ 49, /*->49851*/
/* 49802*/          OPC_MoveChild0,
/* 49803*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 49806*/          OPC_RecordMemRef,
/* 49807*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 49808*/          OPC_CheckFoldableChainNode,
/* 49809*/          OPC_RecordChild1, // #3 = $src2
/* 49810*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 49812*/          OPC_CheckPredicate, 9, // Predicate_load
/* 49814*/          OPC_CheckType, MVT::v8i64,
/* 49816*/          OPC_MoveParent,
/* 49817*/          OPC_RecordChild1, // #4 = $src1
/* 49818*/          OPC_MoveChild2,
/* 49819*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 49822*/          OPC_MoveParent,
/* 49823*/          OPC_CheckPredicate, 51, // Predicate_X86pcmpm_commute_su
/* 49825*/          OPC_MoveParent,
/* 49826*/          OPC_CheckType, MVT::v8i1,
/* 49828*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 49830*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 49833*/          OPC_EmitMergeInputChains1_2,
/* 49834*/          OPC_EmitNodeXForm, 9, 1, // X86pcmpm_imm_commute
/* 49837*/          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>>, VR512:{ *:[v8i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute_su>><<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))
/* 49851*/        /*Scope*/ 49, /*->49901*/
/* 49852*/          OPC_RecordChild0, // #2 = $src1
/* 49853*/          OPC_CheckChild0Type, MVT::v8i64,
/* 49855*/          OPC_MoveChild1,
/* 49856*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 49859*/          OPC_RecordMemRef,
/* 49860*/          OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/* 49861*/          OPC_CheckFoldableChainNode,
/* 49862*/          OPC_RecordChild1, // #4 = $src2
/* 49863*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 49865*/          OPC_MoveParent,
/* 49866*/          OPC_MoveChild2,
/* 49867*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 49870*/          OPC_MoveParent,
/* 49871*/          OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 49873*/          OPC_MoveParent,
/* 49874*/          OPC_CheckType, MVT::v8i1,
/* 49876*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 49878*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 49881*/          OPC_EmitMergeInputChains, 1, 3, 
/* 49884*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 49887*/          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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_su>><<X:X86pcmpm_imm>>:$cc) - Complexity = 29
                    // Dst: (VPCMPQZrmibk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (cond:{ *:[Other] })):$cc))
/* 49901*/        /*Scope*/ 47, /*->49949*/
/* 49902*/          OPC_MoveChild0,
/* 49903*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 49906*/          OPC_RecordMemRef,
/* 49907*/          OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/* 49908*/          OPC_CheckFoldableChainNode,
/* 49909*/          OPC_RecordChild1, // #3 = $src2
/* 49910*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 49912*/          OPC_CheckType, MVT::v8i64,
/* 49914*/          OPC_MoveParent,
/* 49915*/          OPC_RecordChild1, // #4 = $src1
/* 49916*/          OPC_MoveChild2,
/* 49917*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 49920*/          OPC_MoveParent,
/* 49921*/          OPC_CheckPredicate, 51, // Predicate_X86pcmpm_commute_su
/* 49923*/          OPC_MoveParent,
/* 49924*/          OPC_CheckType, MVT::v8i1,
/* 49926*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 49928*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 49931*/          OPC_EmitMergeInputChains1_2,
/* 49932*/          OPC_EmitNodeXForm, 9, 1, // X86pcmpm_imm_commute
/* 49935*/          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] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute_su>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 29
                    // Dst: (VPCMPQZrmibk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v8i1] }:$cc))
/* 49949*/        /*Scope*/ 51, /*->50001*/
/* 49950*/          OPC_RecordChild0, // #2 = $src1
/* 49951*/          OPC_CheckChild0Type, MVT::v4i64,
/* 49953*/          OPC_MoveChild1,
/* 49954*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 49957*/          OPC_RecordMemRef,
/* 49958*/          OPC_RecordNode, // #3 = 'ld' chained node
/* 49959*/          OPC_CheckFoldableChainNode,
/* 49960*/          OPC_RecordChild1, // #4 = $src2
/* 49961*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 49963*/          OPC_CheckPredicate, 9, // Predicate_load
/* 49965*/          OPC_MoveParent,
/* 49966*/          OPC_MoveChild2,
/* 49967*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 49970*/          OPC_MoveParent,
/* 49971*/          OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 49973*/          OPC_MoveParent,
/* 49974*/          OPC_CheckType, MVT::v4i1,
/* 49976*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 49978*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 49981*/          OPC_EmitMergeInputChains, 1, 3, 
/* 49984*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 49987*/          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>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_su>><<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>>, (cond:{ *:[Other] })):$cc))
/* 50001*/        /*Scope*/ 49, /*->50051*/
/* 50002*/          OPC_MoveChild0,
/* 50003*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 50006*/          OPC_RecordMemRef,
/* 50007*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 50008*/          OPC_CheckFoldableChainNode,
/* 50009*/          OPC_RecordChild1, // #3 = $src2
/* 50010*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 50012*/          OPC_CheckPredicate, 9, // Predicate_load
/* 50014*/          OPC_CheckType, MVT::v4i64,
/* 50016*/          OPC_MoveParent,
/* 50017*/          OPC_RecordChild1, // #4 = $src1
/* 50018*/          OPC_MoveChild2,
/* 50019*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 50022*/          OPC_MoveParent,
/* 50023*/          OPC_CheckPredicate, 51, // Predicate_X86pcmpm_commute_su
/* 50025*/          OPC_MoveParent,
/* 50026*/          OPC_CheckType, MVT::v4i1,
/* 50028*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 50030*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 50033*/          OPC_EmitMergeInputChains1_2,
/* 50034*/          OPC_EmitNodeXForm, 9, 1, // X86pcmpm_imm_commute
/* 50037*/          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>>, VR256X:{ *:[v4i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute_su>><<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))
/* 50051*/        /*Scope*/ 49, /*->50101*/
/* 50052*/          OPC_RecordChild0, // #2 = $src1
/* 50053*/          OPC_CheckChild0Type, MVT::v4i64,
/* 50055*/          OPC_MoveChild1,
/* 50056*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 50059*/          OPC_RecordMemRef,
/* 50060*/          OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/* 50061*/          OPC_CheckFoldableChainNode,
/* 50062*/          OPC_RecordChild1, // #4 = $src2
/* 50063*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 50065*/          OPC_MoveParent,
/* 50066*/          OPC_MoveChild2,
/* 50067*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 50070*/          OPC_MoveParent,
/* 50071*/          OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 50073*/          OPC_MoveParent,
/* 50074*/          OPC_CheckType, MVT::v4i1,
/* 50076*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 50078*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 50081*/          OPC_EmitMergeInputChains, 1, 3, 
/* 50084*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 50087*/          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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_su>><<X:X86pcmpm_imm>>:$cc) - Complexity = 29
                    // Dst: (VPCMPQZ256rmibk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (cond:{ *:[Other] })):$cc))
/* 50101*/        /*Scope*/ 47, /*->50149*/
/* 50102*/          OPC_MoveChild0,
/* 50103*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 50106*/          OPC_RecordMemRef,
/* 50107*/          OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/* 50108*/          OPC_CheckFoldableChainNode,
/* 50109*/          OPC_RecordChild1, // #3 = $src2
/* 50110*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 50112*/          OPC_CheckType, MVT::v4i64,
/* 50114*/          OPC_MoveParent,
/* 50115*/          OPC_RecordChild1, // #4 = $src1
/* 50116*/          OPC_MoveChild2,
/* 50117*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 50120*/          OPC_MoveParent,
/* 50121*/          OPC_CheckPredicate, 51, // Predicate_X86pcmpm_commute_su
/* 50123*/          OPC_MoveParent,
/* 50124*/          OPC_CheckType, MVT::v4i1,
/* 50126*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 50128*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 50131*/          OPC_EmitMergeInputChains1_2,
/* 50132*/          OPC_EmitNodeXForm, 9, 1, // X86pcmpm_imm_commute
/* 50135*/          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] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute_su>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 29
                    // Dst: (VPCMPQZ256rmibk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v4i1] }:$cc))
/* 50149*/        /*Scope*/ 51, /*->50201*/
/* 50150*/          OPC_RecordChild0, // #2 = $src1
/* 50151*/          OPC_CheckChild0Type, MVT::v2i64,
/* 50153*/          OPC_MoveChild1,
/* 50154*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 50157*/          OPC_RecordMemRef,
/* 50158*/          OPC_RecordNode, // #3 = 'ld' chained node
/* 50159*/          OPC_CheckFoldableChainNode,
/* 50160*/          OPC_RecordChild1, // #4 = $src2
/* 50161*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 50163*/          OPC_CheckPredicate, 9, // Predicate_load
/* 50165*/          OPC_MoveParent,
/* 50166*/          OPC_MoveChild2,
/* 50167*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 50170*/          OPC_MoveParent,
/* 50171*/          OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 50173*/          OPC_MoveParent,
/* 50174*/          OPC_CheckType, MVT::v2i1,
/* 50176*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 50178*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 50181*/          OPC_EmitMergeInputChains, 1, 3, 
/* 50184*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 50187*/          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>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_su>><<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>>, (cond:{ *:[Other] })):$cc))
/* 50201*/        /*Scope*/ 49, /*->50251*/
/* 50202*/          OPC_MoveChild0,
/* 50203*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 50206*/          OPC_RecordMemRef,
/* 50207*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 50208*/          OPC_CheckFoldableChainNode,
/* 50209*/          OPC_RecordChild1, // #3 = $src2
/* 50210*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 50212*/          OPC_CheckPredicate, 9, // Predicate_load
/* 50214*/          OPC_CheckType, MVT::v2i64,
/* 50216*/          OPC_MoveParent,
/* 50217*/          OPC_RecordChild1, // #4 = $src1
/* 50218*/          OPC_MoveChild2,
/* 50219*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 50222*/          OPC_MoveParent,
/* 50223*/          OPC_CheckPredicate, 51, // Predicate_X86pcmpm_commute_su
/* 50225*/          OPC_MoveParent,
/* 50226*/          OPC_CheckType, MVT::v2i1,
/* 50228*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 50230*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 50233*/          OPC_EmitMergeInputChains1_2,
/* 50234*/          OPC_EmitNodeXForm, 9, 1, // X86pcmpm_imm_commute
/* 50237*/          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>>, VR128X:{ *:[v2i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute_su>><<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))
/* 50251*/        /*Scope*/ 49, /*->50301*/
/* 50252*/          OPC_RecordChild0, // #2 = $src1
/* 50253*/          OPC_CheckChild0Type, MVT::v2i64,
/* 50255*/          OPC_MoveChild1,
/* 50256*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 50259*/          OPC_RecordMemRef,
/* 50260*/          OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/* 50261*/          OPC_CheckFoldableChainNode,
/* 50262*/          OPC_RecordChild1, // #4 = $src2
/* 50263*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 50265*/          OPC_MoveParent,
/* 50266*/          OPC_MoveChild2,
/* 50267*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 50270*/          OPC_MoveParent,
/* 50271*/          OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 50273*/          OPC_MoveParent,
/* 50274*/          OPC_CheckType, MVT::v2i1,
/* 50276*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 50278*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 50281*/          OPC_EmitMergeInputChains, 1, 3, 
/* 50284*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 50287*/          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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_su>><<X:X86pcmpm_imm>>:$cc) - Complexity = 29
                    // Dst: (VPCMPQZ128rmibk:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (cond:{ *:[Other] })):$cc))
/* 50301*/        /*Scope*/ 47, /*->50349*/
/* 50302*/          OPC_MoveChild0,
/* 50303*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 50306*/          OPC_RecordMemRef,
/* 50307*/          OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/* 50308*/          OPC_CheckFoldableChainNode,
/* 50309*/          OPC_RecordChild1, // #3 = $src2
/* 50310*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 50312*/          OPC_CheckType, MVT::v2i64,
/* 50314*/          OPC_MoveParent,
/* 50315*/          OPC_RecordChild1, // #4 = $src1
/* 50316*/          OPC_MoveChild2,
/* 50317*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 50320*/          OPC_MoveParent,
/* 50321*/          OPC_CheckPredicate, 51, // Predicate_X86pcmpm_commute_su
/* 50323*/          OPC_MoveParent,
/* 50324*/          OPC_CheckType, MVT::v2i1,
/* 50326*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 50328*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 50331*/          OPC_EmitMergeInputChains1_2,
/* 50332*/          OPC_EmitNodeXForm, 9, 1, // X86pcmpm_imm_commute
/* 50335*/          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] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute_su>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 29
                    // Dst: (VPCMPQZ128rmibk:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v2i1] }:$cc))
/* 50349*/        /*Scope*/ 51, /*->50401*/
/* 50350*/          OPC_RecordChild0, // #2 = $src1
/* 50351*/          OPC_CheckChild0Type, MVT::v8i64,
/* 50353*/          OPC_MoveChild1,
/* 50354*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 50357*/          OPC_RecordMemRef,
/* 50358*/          OPC_RecordNode, // #3 = 'ld' chained node
/* 50359*/          OPC_CheckFoldableChainNode,
/* 50360*/          OPC_RecordChild1, // #4 = $src2
/* 50361*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 50363*/          OPC_CheckPredicate, 9, // Predicate_load
/* 50365*/          OPC_MoveParent,
/* 50366*/          OPC_MoveChild2,
/* 50367*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 50370*/          OPC_MoveParent,
/* 50371*/          OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 50373*/          OPC_MoveParent,
/* 50374*/          OPC_CheckType, MVT::v8i1,
/* 50376*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 50378*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 50381*/          OPC_EmitMergeInputChains, 1, 3, 
/* 50384*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 50387*/          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>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_su>><<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>>, (cond:{ *:[Other] })):$cc))
/* 50401*/        /*Scope*/ 49, /*->50451*/
/* 50402*/          OPC_MoveChild0,
/* 50403*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 50406*/          OPC_RecordMemRef,
/* 50407*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 50408*/          OPC_CheckFoldableChainNode,
/* 50409*/          OPC_RecordChild1, // #3 = $src2
/* 50410*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 50412*/          OPC_CheckPredicate, 9, // Predicate_load
/* 50414*/          OPC_CheckType, MVT::v8i64,
/* 50416*/          OPC_MoveParent,
/* 50417*/          OPC_RecordChild1, // #4 = $src1
/* 50418*/          OPC_MoveChild2,
/* 50419*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 50422*/          OPC_MoveParent,
/* 50423*/          OPC_CheckPredicate, 52, // Predicate_X86pcmpum_commute_su
/* 50425*/          OPC_MoveParent,
/* 50426*/          OPC_CheckType, MVT::v8i1,
/* 50428*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 50430*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 50433*/          OPC_EmitMergeInputChains1_2,
/* 50434*/          OPC_EmitNodeXForm, 9, 1, // X86pcmpm_imm_commute
/* 50437*/          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>>, VR512:{ *:[v8i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute_su>><<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))
/* 50451*/        /*Scope*/ 49, /*->50501*/
/* 50452*/          OPC_RecordChild0, // #2 = $src1
/* 50453*/          OPC_CheckChild0Type, MVT::v8i64,
/* 50455*/          OPC_MoveChild1,
/* 50456*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 50459*/          OPC_RecordMemRef,
/* 50460*/          OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/* 50461*/          OPC_CheckFoldableChainNode,
/* 50462*/          OPC_RecordChild1, // #4 = $src2
/* 50463*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 50465*/          OPC_MoveParent,
/* 50466*/          OPC_MoveChild2,
/* 50467*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 50470*/          OPC_MoveParent,
/* 50471*/          OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 50473*/          OPC_MoveParent,
/* 50474*/          OPC_CheckType, MVT::v8i1,
/* 50476*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 50478*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 50481*/          OPC_EmitMergeInputChains, 1, 3, 
/* 50484*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 50487*/          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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_su>><<X:X86pcmpm_imm>>:$cc) - Complexity = 29
                    // Dst: (VPCMPUQZrmibk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (cond:{ *:[Other] })):$cc))
/* 50501*/        /*Scope*/ 47, /*->50549*/
/* 50502*/          OPC_MoveChild0,
/* 50503*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 50506*/          OPC_RecordMemRef,
/* 50507*/          OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/* 50508*/          OPC_CheckFoldableChainNode,
/* 50509*/          OPC_RecordChild1, // #3 = $src2
/* 50510*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 50512*/          OPC_CheckType, MVT::v8i64,
/* 50514*/          OPC_MoveParent,
/* 50515*/          OPC_RecordChild1, // #4 = $src1
/* 50516*/          OPC_MoveChild2,
/* 50517*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 50520*/          OPC_MoveParent,
/* 50521*/          OPC_CheckPredicate, 52, // Predicate_X86pcmpum_commute_su
/* 50523*/          OPC_MoveParent,
/* 50524*/          OPC_CheckType, MVT::v8i1,
/* 50526*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 50528*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 50531*/          OPC_EmitMergeInputChains1_2,
/* 50532*/          OPC_EmitNodeXForm, 9, 1, // X86pcmpm_imm_commute
/* 50535*/          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] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute_su>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 29
                    // Dst: (VPCMPUQZrmibk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v8i1] }:$cc))
/* 50549*/        /*Scope*/ 51, /*->50601*/
/* 50550*/          OPC_RecordChild0, // #2 = $src1
/* 50551*/          OPC_CheckChild0Type, MVT::v4i64,
/* 50553*/          OPC_MoveChild1,
/* 50554*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 50557*/          OPC_RecordMemRef,
/* 50558*/          OPC_RecordNode, // #3 = 'ld' chained node
/* 50559*/          OPC_CheckFoldableChainNode,
/* 50560*/          OPC_RecordChild1, // #4 = $src2
/* 50561*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 50563*/          OPC_CheckPredicate, 9, // Predicate_load
/* 50565*/          OPC_MoveParent,
/* 50566*/          OPC_MoveChild2,
/* 50567*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 50570*/          OPC_MoveParent,
/* 50571*/          OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 50573*/          OPC_MoveParent,
/* 50574*/          OPC_CheckType, MVT::v4i1,
/* 50576*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 50578*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 50581*/          OPC_EmitMergeInputChains, 1, 3, 
/* 50584*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 50587*/          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>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_su>><<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>>, (cond:{ *:[Other] })):$cc))
/* 50601*/        /*Scope*/ 49, /*->50651*/
/* 50602*/          OPC_MoveChild0,
/* 50603*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 50606*/          OPC_RecordMemRef,
/* 50607*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 50608*/          OPC_CheckFoldableChainNode,
/* 50609*/          OPC_RecordChild1, // #3 = $src2
/* 50610*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 50612*/          OPC_CheckPredicate, 9, // Predicate_load
/* 50614*/          OPC_CheckType, MVT::v4i64,
/* 50616*/          OPC_MoveParent,
/* 50617*/          OPC_RecordChild1, // #4 = $src1
/* 50618*/          OPC_MoveChild2,
/* 50619*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 50622*/          OPC_MoveParent,
/* 50623*/          OPC_CheckPredicate, 52, // Predicate_X86pcmpum_commute_su
/* 50625*/          OPC_MoveParent,
/* 50626*/          OPC_CheckType, MVT::v4i1,
/* 50628*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 50630*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 50633*/          OPC_EmitMergeInputChains1_2,
/* 50634*/          OPC_EmitNodeXForm, 9, 1, // X86pcmpm_imm_commute
/* 50637*/          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>>, VR256X:{ *:[v4i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute_su>><<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))
/* 50651*/        /*Scope*/ 49, /*->50701*/
/* 50652*/          OPC_RecordChild0, // #2 = $src1
/* 50653*/          OPC_CheckChild0Type, MVT::v4i64,
/* 50655*/          OPC_MoveChild1,
/* 50656*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 50659*/          OPC_RecordMemRef,
/* 50660*/          OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/* 50661*/          OPC_CheckFoldableChainNode,
/* 50662*/          OPC_RecordChild1, // #4 = $src2
/* 50663*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 50665*/          OPC_MoveParent,
/* 50666*/          OPC_MoveChild2,
/* 50667*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 50670*/          OPC_MoveParent,
/* 50671*/          OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 50673*/          OPC_MoveParent,
/* 50674*/          OPC_CheckType, MVT::v4i1,
/* 50676*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 50678*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 50681*/          OPC_EmitMergeInputChains, 1, 3, 
/* 50684*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 50687*/          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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_su>><<X:X86pcmpm_imm>>:$cc) - Complexity = 29
                    // Dst: (VPCMPUQZ256rmibk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (cond:{ *:[Other] })):$cc))
/* 50701*/        /*Scope*/ 47, /*->50749*/
/* 50702*/          OPC_MoveChild0,
/* 50703*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 50706*/          OPC_RecordMemRef,
/* 50707*/          OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/* 50708*/          OPC_CheckFoldableChainNode,
/* 50709*/          OPC_RecordChild1, // #3 = $src2
/* 50710*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 50712*/          OPC_CheckType, MVT::v4i64,
/* 50714*/          OPC_MoveParent,
/* 50715*/          OPC_RecordChild1, // #4 = $src1
/* 50716*/          OPC_MoveChild2,
/* 50717*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 50720*/          OPC_MoveParent,
/* 50721*/          OPC_CheckPredicate, 52, // Predicate_X86pcmpum_commute_su
/* 50723*/          OPC_MoveParent,
/* 50724*/          OPC_CheckType, MVT::v4i1,
/* 50726*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 50728*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 50731*/          OPC_EmitMergeInputChains1_2,
/* 50732*/          OPC_EmitNodeXForm, 9, 1, // X86pcmpm_imm_commute
/* 50735*/          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] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute_su>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 29
                    // Dst: (VPCMPUQZ256rmibk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v4i1] }:$cc))
/* 50749*/        /*Scope*/ 51, /*->50801*/
/* 50750*/          OPC_RecordChild0, // #2 = $src1
/* 50751*/          OPC_CheckChild0Type, MVT::v2i64,
/* 50753*/          OPC_MoveChild1,
/* 50754*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 50757*/          OPC_RecordMemRef,
/* 50758*/          OPC_RecordNode, // #3 = 'ld' chained node
/* 50759*/          OPC_CheckFoldableChainNode,
/* 50760*/          OPC_RecordChild1, // #4 = $src2
/* 50761*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 50763*/          OPC_CheckPredicate, 9, // Predicate_load
/* 50765*/          OPC_MoveParent,
/* 50766*/          OPC_MoveChild2,
/* 50767*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 50770*/          OPC_MoveParent,
/* 50771*/          OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 50773*/          OPC_MoveParent,
/* 50774*/          OPC_CheckType, MVT::v2i1,
/* 50776*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 50778*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 50781*/          OPC_EmitMergeInputChains, 1, 3, 
/* 50784*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 50787*/          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>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_su>><<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>>, (cond:{ *:[Other] })):$cc))
/* 50801*/        /*Scope*/ 49, /*->50851*/
/* 50802*/          OPC_MoveChild0,
/* 50803*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 50806*/          OPC_RecordMemRef,
/* 50807*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 50808*/          OPC_CheckFoldableChainNode,
/* 50809*/          OPC_RecordChild1, // #3 = $src2
/* 50810*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 50812*/          OPC_CheckPredicate, 9, // Predicate_load
/* 50814*/          OPC_CheckType, MVT::v2i64,
/* 50816*/          OPC_MoveParent,
/* 50817*/          OPC_RecordChild1, // #4 = $src1
/* 50818*/          OPC_MoveChild2,
/* 50819*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 50822*/          OPC_MoveParent,
/* 50823*/          OPC_CheckPredicate, 52, // Predicate_X86pcmpum_commute_su
/* 50825*/          OPC_MoveParent,
/* 50826*/          OPC_CheckType, MVT::v2i1,
/* 50828*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 50830*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 50833*/          OPC_EmitMergeInputChains1_2,
/* 50834*/          OPC_EmitNodeXForm, 9, 1, // X86pcmpm_imm_commute
/* 50837*/          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>>, VR128X:{ *:[v2i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute_su>><<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))
/* 50851*/        /*Scope*/ 49, /*->50901*/
/* 50852*/          OPC_RecordChild0, // #2 = $src1
/* 50853*/          OPC_CheckChild0Type, MVT::v2i64,
/* 50855*/          OPC_MoveChild1,
/* 50856*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 50859*/          OPC_RecordMemRef,
/* 50860*/          OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/* 50861*/          OPC_CheckFoldableChainNode,
/* 50862*/          OPC_RecordChild1, // #4 = $src2
/* 50863*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 50865*/          OPC_MoveParent,
/* 50866*/          OPC_MoveChild2,
/* 50867*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 50870*/          OPC_MoveParent,
/* 50871*/          OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 50873*/          OPC_MoveParent,
/* 50874*/          OPC_CheckType, MVT::v2i1,
/* 50876*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 50878*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 50881*/          OPC_EmitMergeInputChains, 1, 3, 
/* 50884*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 50887*/          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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_su>><<X:X86pcmpm_imm>>:$cc) - Complexity = 29
                    // Dst: (VPCMPUQZ128rmibk:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (cond:{ *:[Other] })):$cc))
/* 50901*/        /*Scope*/ 47, /*->50949*/
/* 50902*/          OPC_MoveChild0,
/* 50903*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 50906*/          OPC_RecordMemRef,
/* 50907*/          OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/* 50908*/          OPC_CheckFoldableChainNode,
/* 50909*/          OPC_RecordChild1, // #3 = $src2
/* 50910*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 50912*/          OPC_CheckType, MVT::v2i64,
/* 50914*/          OPC_MoveParent,
/* 50915*/          OPC_RecordChild1, // #4 = $src1
/* 50916*/          OPC_MoveChild2,
/* 50917*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 50920*/          OPC_MoveParent,
/* 50921*/          OPC_CheckPredicate, 52, // Predicate_X86pcmpum_commute_su
/* 50923*/          OPC_MoveParent,
/* 50924*/          OPC_CheckType, MVT::v2i1,
/* 50926*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 50928*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 50931*/          OPC_EmitMergeInputChains1_2,
/* 50932*/          OPC_EmitNodeXForm, 9, 1, // X86pcmpm_imm_commute
/* 50935*/          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] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute_su>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 29
                    // Dst: (VPCMPUQZ128rmibk:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v2i1] }:$cc))
/* 50949*/        0, /*End of Scope*/
/* 50950*/      /*Scope*/ 127, /*->51078*/
/* 50951*/        OPC_MoveChild1,
/* 50952*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VPSHUFBITQMB),
/* 50955*/        OPC_RecordChild0, // #1 = $src1
/* 50956*/        OPC_Scope, 39, /*->50997*/ // 3 children in Scope
/* 50958*/          OPC_CheckChild0Type, MVT::v64i8,
/* 50960*/          OPC_MoveChild1,
/* 50961*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 50964*/          OPC_RecordMemRef,
/* 50965*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 50966*/          OPC_CheckFoldableChainNode,
/* 50967*/          OPC_RecordChild1, // #3 = $src2
/* 50968*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 50970*/          OPC_CheckPredicate, 9, // Predicate_load
/* 50972*/          OPC_MoveParent,
/* 50973*/          OPC_CheckPredicate, 17, // Predicate_X86Vpshufbitqmb_su
/* 50975*/          OPC_MoveParent,
/* 50976*/          OPC_CheckType, MVT::v64i1,
/* 50978*/          OPC_CheckPatternPredicate, 114, // (Subtarget->hasBITALG())
/* 50980*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 50983*/          OPC_EmitMergeInputChains1_2,
/* 50984*/          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, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)<<P:Predicate_X86Vpshufbitqmb_su>>) - Complexity = 29
                    // Dst: (VPSHUFBITQMBZrmk:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 50997*/        /*Scope*/ 39, /*->51037*/
/* 50998*/          OPC_CheckChild0Type, MVT::v32i8,
/* 51000*/          OPC_MoveChild1,
/* 51001*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 51004*/          OPC_RecordMemRef,
/* 51005*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 51006*/          OPC_CheckFoldableChainNode,
/* 51007*/          OPC_RecordChild1, // #3 = $src2
/* 51008*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 51010*/          OPC_CheckPredicate, 9, // Predicate_load
/* 51012*/          OPC_MoveParent,
/* 51013*/          OPC_CheckPredicate, 17, // Predicate_X86Vpshufbitqmb_su
/* 51015*/          OPC_MoveParent,
/* 51016*/          OPC_CheckType, MVT::v32i1,
/* 51018*/          OPC_CheckPatternPredicate, 115, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/* 51020*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 51023*/          OPC_EmitMergeInputChains1_2,
/* 51024*/          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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)<<P:Predicate_X86Vpshufbitqmb_su>>) - Complexity = 29
                    // Dst: (VPSHUFBITQMBZ256rmk:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 51037*/        /*Scope*/ 39, /*->51077*/
/* 51038*/          OPC_CheckChild0Type, MVT::v16i8,
/* 51040*/          OPC_MoveChild1,
/* 51041*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 51044*/          OPC_RecordMemRef,
/* 51045*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 51046*/          OPC_CheckFoldableChainNode,
/* 51047*/          OPC_RecordChild1, // #3 = $src2
/* 51048*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 51050*/          OPC_CheckPredicate, 9, // Predicate_load
/* 51052*/          OPC_MoveParent,
/* 51053*/          OPC_CheckPredicate, 17, // Predicate_X86Vpshufbitqmb_su
/* 51055*/          OPC_MoveParent,
/* 51056*/          OPC_CheckType, MVT::v16i1,
/* 51058*/          OPC_CheckPatternPredicate, 115, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/* 51060*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 51063*/          OPC_EmitMergeInputChains1_2,
/* 51064*/          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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)<<P:Predicate_X86Vpshufbitqmb_su>>) - Complexity = 29
                    // Dst: (VPSHUFBITQMBZ128rmk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 51077*/        0, /*End of Scope*/
/* 51078*/      /*Scope*/ 75|128,11/*1483*/, /*->52563*/
/* 51080*/        OPC_MoveChild0,
/* 51081*/        OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 51084*/        OPC_RecordChild0, // #1 = $src1
/* 51085*/        OPC_Scope, 82, /*->51169*/ // 12 children in Scope
/* 51087*/          OPC_CheckChild0Type, MVT::v64i8,
/* 51089*/          OPC_MoveChild1,
/* 51090*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 51093*/          OPC_RecordMemRef,
/* 51094*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 51095*/          OPC_CheckFoldableChainNode,
/* 51096*/          OPC_RecordChild1, // #3 = $src2
/* 51097*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 51099*/          OPC_CheckPredicate, 9, // Predicate_load
/* 51101*/          OPC_MoveParent,
/* 51102*/          OPC_MoveChild2,
/* 51103*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 51106*/          OPC_MoveParent,
/* 51107*/          OPC_Scope, 29, /*->51138*/ // 2 children in Scope
/* 51109*/            OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 51111*/            OPC_MoveParent,
/* 51112*/            OPC_RecordChild1, // #4 = $mask
/* 51113*/            OPC_CheckType, MVT::v64i1,
/* 51115*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/* 51117*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 51120*/            OPC_EmitMergeInputChains1_2,
/* 51121*/            OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 51124*/            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, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_su>><<X:X86pcmpm_imm>>:$cc, VK64WM:{ *:[v64i1] }:$mask) - Complexity = 29
                      // Dst: (VPCMPBZrmik:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src1, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] })):$cc))
/* 51138*/          /*Scope*/ 29, /*->51168*/
/* 51139*/            OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 51141*/            OPC_MoveParent,
/* 51142*/            OPC_RecordChild1, // #4 = $mask
/* 51143*/            OPC_CheckType, MVT::v64i1,
/* 51145*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/* 51147*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 51150*/            OPC_EmitMergeInputChains1_2,
/* 51151*/            OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 51154*/            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, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_su>><<X:X86pcmpm_imm>>:$cc, VK64WM:{ *:[v64i1] }:$mask) - Complexity = 29
                      // Dst: (VPCMPUBZrmik:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src1, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] })):$cc))
/* 51168*/          0, /*End of Scope*/
/* 51169*/        /*Scope*/ 82, /*->51252*/
/* 51170*/          OPC_CheckChild0Type, MVT::v32i8,
/* 51172*/          OPC_MoveChild1,
/* 51173*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 51176*/          OPC_RecordMemRef,
/* 51177*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 51178*/          OPC_CheckFoldableChainNode,
/* 51179*/          OPC_RecordChild1, // #3 = $src2
/* 51180*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 51182*/          OPC_CheckPredicate, 9, // Predicate_load
/* 51184*/          OPC_MoveParent,
/* 51185*/          OPC_MoveChild2,
/* 51186*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 51189*/          OPC_MoveParent,
/* 51190*/          OPC_Scope, 29, /*->51221*/ // 2 children in Scope
/* 51192*/            OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 51194*/            OPC_MoveParent,
/* 51195*/            OPC_RecordChild1, // #4 = $mask
/* 51196*/            OPC_CheckType, MVT::v32i1,
/* 51198*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 51200*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 51203*/            OPC_EmitMergeInputChains1_2,
/* 51204*/            OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 51207*/            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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_su>><<X:X86pcmpm_imm>>:$cc, VK32WM:{ *:[v32i1] }:$mask) - Complexity = 29
                      // Dst: (VPCMPBZ256rmik:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] })):$cc))
/* 51221*/          /*Scope*/ 29, /*->51251*/
/* 51222*/            OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 51224*/            OPC_MoveParent,
/* 51225*/            OPC_RecordChild1, // #4 = $mask
/* 51226*/            OPC_CheckType, MVT::v32i1,
/* 51228*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 51230*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 51233*/            OPC_EmitMergeInputChains1_2,
/* 51234*/            OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 51237*/            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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_su>><<X:X86pcmpm_imm>>:$cc, VK32WM:{ *:[v32i1] }:$mask) - Complexity = 29
                      // Dst: (VPCMPUBZ256rmik:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] })):$cc))
/* 51251*/          0, /*End of Scope*/
/* 51252*/        /*Scope*/ 82, /*->51335*/
/* 51253*/          OPC_CheckChild0Type, MVT::v16i8,
/* 51255*/          OPC_MoveChild1,
/* 51256*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 51259*/          OPC_RecordMemRef,
/* 51260*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 51261*/          OPC_CheckFoldableChainNode,
/* 51262*/          OPC_RecordChild1, // #3 = $src2
/* 51263*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 51265*/          OPC_CheckPredicate, 9, // Predicate_load
/* 51267*/          OPC_MoveParent,
/* 51268*/          OPC_MoveChild2,
/* 51269*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 51272*/          OPC_MoveParent,
/* 51273*/          OPC_Scope, 29, /*->51304*/ // 2 children in Scope
/* 51275*/            OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 51277*/            OPC_MoveParent,
/* 51278*/            OPC_RecordChild1, // #4 = $mask
/* 51279*/            OPC_CheckType, MVT::v16i1,
/* 51281*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 51283*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 51286*/            OPC_EmitMergeInputChains1_2,
/* 51287*/            OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 51290*/            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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_su>><<X:X86pcmpm_imm>>:$cc, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 29
                      // Dst: (VPCMPBZ128rmik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] })):$cc))
/* 51304*/          /*Scope*/ 29, /*->51334*/
/* 51305*/            OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 51307*/            OPC_MoveParent,
/* 51308*/            OPC_RecordChild1, // #4 = $mask
/* 51309*/            OPC_CheckType, MVT::v16i1,
/* 51311*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 51313*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 51316*/            OPC_EmitMergeInputChains1_2,
/* 51317*/            OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 51320*/            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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_su>><<X:X86pcmpm_imm>>:$cc, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 29
                      // Dst: (VPCMPUBZ128rmik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] })):$cc))
/* 51334*/          0, /*End of Scope*/
/* 51335*/        /*Scope*/ 82, /*->51418*/
/* 51336*/          OPC_CheckChild0Type, MVT::v32i16,
/* 51338*/          OPC_MoveChild1,
/* 51339*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 51342*/          OPC_RecordMemRef,
/* 51343*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 51344*/          OPC_CheckFoldableChainNode,
/* 51345*/          OPC_RecordChild1, // #3 = $src2
/* 51346*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 51348*/          OPC_CheckPredicate, 9, // Predicate_load
/* 51350*/          OPC_MoveParent,
/* 51351*/          OPC_MoveChild2,
/* 51352*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 51355*/          OPC_MoveParent,
/* 51356*/          OPC_Scope, 29, /*->51387*/ // 2 children in Scope
/* 51358*/            OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 51360*/            OPC_MoveParent,
/* 51361*/            OPC_RecordChild1, // #4 = $mask
/* 51362*/            OPC_CheckType, MVT::v32i1,
/* 51364*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/* 51366*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 51369*/            OPC_EmitMergeInputChains1_2,
/* 51370*/            OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 51373*/            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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_su>><<X:X86pcmpm_imm>>:$cc, VK32WM:{ *:[v32i1] }:$mask) - Complexity = 29
                      // Dst: (VPCMPWZrmik:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v32i1] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] })):$cc))
/* 51387*/          /*Scope*/ 29, /*->51417*/
/* 51388*/            OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 51390*/            OPC_MoveParent,
/* 51391*/            OPC_RecordChild1, // #4 = $mask
/* 51392*/            OPC_CheckType, MVT::v32i1,
/* 51394*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/* 51396*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 51399*/            OPC_EmitMergeInputChains1_2,
/* 51400*/            OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 51403*/            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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_su>><<X:X86pcmpm_imm>>:$cc, VK32WM:{ *:[v32i1] }:$mask) - Complexity = 29
                      // Dst: (VPCMPUWZrmik:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v32i1] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] })):$cc))
/* 51417*/          0, /*End of Scope*/
/* 51418*/        /*Scope*/ 82, /*->51501*/
/* 51419*/          OPC_CheckChild0Type, MVT::v16i16,
/* 51421*/          OPC_MoveChild1,
/* 51422*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 51425*/          OPC_RecordMemRef,
/* 51426*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 51427*/          OPC_CheckFoldableChainNode,
/* 51428*/          OPC_RecordChild1, // #3 = $src2
/* 51429*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 51431*/          OPC_CheckPredicate, 9, // Predicate_load
/* 51433*/          OPC_MoveParent,
/* 51434*/          OPC_MoveChild2,
/* 51435*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 51438*/          OPC_MoveParent,
/* 51439*/          OPC_Scope, 29, /*->51470*/ // 2 children in Scope
/* 51441*/            OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 51443*/            OPC_MoveParent,
/* 51444*/            OPC_RecordChild1, // #4 = $mask
/* 51445*/            OPC_CheckType, MVT::v16i1,
/* 51447*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 51449*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 51452*/            OPC_EmitMergeInputChains1_2,
/* 51453*/            OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 51456*/            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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_su>><<X:X86pcmpm_imm>>:$cc, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 29
                      // Dst: (VPCMPWZ256rmik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] })):$cc))
/* 51470*/          /*Scope*/ 29, /*->51500*/
/* 51471*/            OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 51473*/            OPC_MoveParent,
/* 51474*/            OPC_RecordChild1, // #4 = $mask
/* 51475*/            OPC_CheckType, MVT::v16i1,
/* 51477*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 51479*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 51482*/            OPC_EmitMergeInputChains1_2,
/* 51483*/            OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 51486*/            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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_su>><<X:X86pcmpm_imm>>:$cc, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 29
                      // Dst: (VPCMPUWZ256rmik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] })):$cc))
/* 51500*/          0, /*End of Scope*/
/* 51501*/        /*Scope*/ 82, /*->51584*/
/* 51502*/          OPC_CheckChild0Type, MVT::v8i16,
/* 51504*/          OPC_MoveChild1,
/* 51505*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 51508*/          OPC_RecordMemRef,
/* 51509*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 51510*/          OPC_CheckFoldableChainNode,
/* 51511*/          OPC_RecordChild1, // #3 = $src2
/* 51512*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 51514*/          OPC_CheckPredicate, 9, // Predicate_load
/* 51516*/          OPC_MoveParent,
/* 51517*/          OPC_MoveChild2,
/* 51518*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 51521*/          OPC_MoveParent,
/* 51522*/          OPC_Scope, 29, /*->51553*/ // 2 children in Scope
/* 51524*/            OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 51526*/            OPC_MoveParent,
/* 51527*/            OPC_RecordChild1, // #4 = $mask
/* 51528*/            OPC_CheckType, MVT::v8i1,
/* 51530*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 51532*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 51535*/            OPC_EmitMergeInputChains1_2,
/* 51536*/            OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 51539*/            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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_su>><<X:X86pcmpm_imm>>:$cc, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 29
                      // Dst: (VPCMPWZ128rmik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] })):$cc))
/* 51553*/          /*Scope*/ 29, /*->51583*/
/* 51554*/            OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 51556*/            OPC_MoveParent,
/* 51557*/            OPC_RecordChild1, // #4 = $mask
/* 51558*/            OPC_CheckType, MVT::v8i1,
/* 51560*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 51562*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 51565*/            OPC_EmitMergeInputChains1_2,
/* 51566*/            OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 51569*/            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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_su>><<X:X86pcmpm_imm>>:$cc, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 29
                      // Dst: (VPCMPUWZ128rmik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] })):$cc))
/* 51583*/          0, /*End of Scope*/
/* 51584*/        /*Scope*/ 33|128,1/*161*/, /*->51747*/
/* 51586*/          OPC_CheckChild0Type, MVT::v16i32,
/* 51588*/          OPC_MoveChild1,
/* 51589*/          OPC_SwitchOpcode /*2 cases */, 76, TARGET_VAL(ISD::LOAD),// ->51669
/* 51593*/            OPC_RecordMemRef,
/* 51594*/            OPC_RecordNode, // #2 = 'ld' chained node
/* 51595*/            OPC_CheckFoldableChainNode,
/* 51596*/            OPC_RecordChild1, // #3 = $src2
/* 51597*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 51599*/            OPC_CheckPredicate, 9, // Predicate_load
/* 51601*/            OPC_MoveParent,
/* 51602*/            OPC_MoveChild2,
/* 51603*/            OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 51606*/            OPC_MoveParent,
/* 51607*/            OPC_Scope, 29, /*->51638*/ // 2 children in Scope
/* 51609*/              OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 51611*/              OPC_MoveParent,
/* 51612*/              OPC_RecordChild1, // #4 = $mask
/* 51613*/              OPC_CheckType, MVT::v16i1,
/* 51615*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 51617*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 51620*/              OPC_EmitMergeInputChains1_2,
/* 51621*/              OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 51624*/              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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_su>><<X:X86pcmpm_imm>>:$cc, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 29
                        // Dst: (VPCMPDZrmik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] })):$cc))
/* 51638*/            /*Scope*/ 29, /*->51668*/
/* 51639*/              OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 51641*/              OPC_MoveParent,
/* 51642*/              OPC_RecordChild1, // #4 = $mask
/* 51643*/              OPC_CheckType, MVT::v16i1,
/* 51645*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 51647*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 51650*/              OPC_EmitMergeInputChains1_2,
/* 51651*/              OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 51654*/              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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_su>><<X:X86pcmpm_imm>>:$cc, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 29
                        // Dst: (VPCMPUDZrmik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] })):$cc))
/* 51668*/            0, /*End of Scope*/
/* 51669*/          /*SwitchOpcode*/ 74, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->51746
/* 51672*/            OPC_RecordMemRef,
/* 51673*/            OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/* 51674*/            OPC_CheckFoldableChainNode,
/* 51675*/            OPC_RecordChild1, // #3 = $src2
/* 51676*/            OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/* 51678*/            OPC_MoveParent,
/* 51679*/            OPC_MoveChild2,
/* 51680*/            OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 51683*/            OPC_MoveParent,
/* 51684*/            OPC_Scope, 29, /*->51715*/ // 2 children in Scope
/* 51686*/              OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 51688*/              OPC_MoveParent,
/* 51689*/              OPC_RecordChild1, // #4 = $mask
/* 51690*/              OPC_CheckType, MVT::v16i1,
/* 51692*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 51694*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 51697*/              OPC_EmitMergeInputChains1_2,
/* 51698*/              OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 51701*/              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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_su>><<X:X86pcmpm_imm>>:$cc, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 29
                        // Dst: (VPCMPDZrmibk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (cond:{ *:[Other] })):$cc))
/* 51715*/            /*Scope*/ 29, /*->51745*/
/* 51716*/              OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 51718*/              OPC_MoveParent,
/* 51719*/              OPC_RecordChild1, // #4 = $mask
/* 51720*/              OPC_CheckType, MVT::v16i1,
/* 51722*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 51724*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 51727*/              OPC_EmitMergeInputChains1_2,
/* 51728*/              OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 51731*/              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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_su>><<X:X86pcmpm_imm>>:$cc, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 29
                        // Dst: (VPCMPUDZrmibk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (cond:{ *:[Other] })):$cc))
/* 51745*/            0, /*End of Scope*/
/* 51746*/          0, // EndSwitchOpcode
/* 51747*/        /*Scope*/ 33|128,1/*161*/, /*->51910*/
/* 51749*/          OPC_CheckChild0Type, MVT::v8i32,
/* 51751*/          OPC_MoveChild1,
/* 51752*/          OPC_SwitchOpcode /*2 cases */, 76, TARGET_VAL(ISD::LOAD),// ->51832
/* 51756*/            OPC_RecordMemRef,
/* 51757*/            OPC_RecordNode, // #2 = 'ld' chained node
/* 51758*/            OPC_CheckFoldableChainNode,
/* 51759*/            OPC_RecordChild1, // #3 = $src2
/* 51760*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 51762*/            OPC_CheckPredicate, 9, // Predicate_load
/* 51764*/            OPC_MoveParent,
/* 51765*/            OPC_MoveChild2,
/* 51766*/            OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 51769*/            OPC_MoveParent,
/* 51770*/            OPC_Scope, 29, /*->51801*/ // 2 children in Scope
/* 51772*/              OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 51774*/              OPC_MoveParent,
/* 51775*/              OPC_RecordChild1, // #4 = $mask
/* 51776*/              OPC_CheckType, MVT::v8i1,
/* 51778*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 51780*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 51783*/              OPC_EmitMergeInputChains1_2,
/* 51784*/              OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 51787*/              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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_su>><<X:X86pcmpm_imm>>:$cc, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 29
                        // Dst: (VPCMPDZ256rmik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] })):$cc))
/* 51801*/            /*Scope*/ 29, /*->51831*/
/* 51802*/              OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 51804*/              OPC_MoveParent,
/* 51805*/              OPC_RecordChild1, // #4 = $mask
/* 51806*/              OPC_CheckType, MVT::v8i1,
/* 51808*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 51810*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 51813*/              OPC_EmitMergeInputChains1_2,
/* 51814*/              OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 51817*/              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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_su>><<X:X86pcmpm_imm>>:$cc, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 29
                        // Dst: (VPCMPUDZ256rmik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] })):$cc))
/* 51831*/            0, /*End of Scope*/
/* 51832*/          /*SwitchOpcode*/ 74, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->51909
/* 51835*/            OPC_RecordMemRef,
/* 51836*/            OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/* 51837*/            OPC_CheckFoldableChainNode,
/* 51838*/            OPC_RecordChild1, // #3 = $src2
/* 51839*/            OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/* 51841*/            OPC_MoveParent,
/* 51842*/            OPC_MoveChild2,
/* 51843*/            OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 51846*/            OPC_MoveParent,
/* 51847*/            OPC_Scope, 29, /*->51878*/ // 2 children in Scope
/* 51849*/              OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 51851*/              OPC_MoveParent,
/* 51852*/              OPC_RecordChild1, // #4 = $mask
/* 51853*/              OPC_CheckType, MVT::v8i1,
/* 51855*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 51857*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 51860*/              OPC_EmitMergeInputChains1_2,
/* 51861*/              OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 51864*/              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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_su>><<X:X86pcmpm_imm>>:$cc, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 29
                        // Dst: (VPCMPDZ256rmibk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (cond:{ *:[Other] })):$cc))
/* 51878*/            /*Scope*/ 29, /*->51908*/
/* 51879*/              OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 51881*/              OPC_MoveParent,
/* 51882*/              OPC_RecordChild1, // #4 = $mask
/* 51883*/              OPC_CheckType, MVT::v8i1,
/* 51885*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 51887*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 51890*/              OPC_EmitMergeInputChains1_2,
/* 51891*/              OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 51894*/              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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_su>><<X:X86pcmpm_imm>>:$cc, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 29
                        // Dst: (VPCMPUDZ256rmibk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (cond:{ *:[Other] })):$cc))
/* 51908*/            0, /*End of Scope*/
/* 51909*/          0, // EndSwitchOpcode
/* 51910*/        /*Scope*/ 33|128,1/*161*/, /*->52073*/
/* 51912*/          OPC_CheckChild0Type, MVT::v4i32,
/* 51914*/          OPC_MoveChild1,
/* 51915*/          OPC_SwitchOpcode /*2 cases */, 76, TARGET_VAL(ISD::LOAD),// ->51995
/* 51919*/            OPC_RecordMemRef,
/* 51920*/            OPC_RecordNode, // #2 = 'ld' chained node
/* 51921*/            OPC_CheckFoldableChainNode,
/* 51922*/            OPC_RecordChild1, // #3 = $src2
/* 51923*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 51925*/            OPC_CheckPredicate, 9, // Predicate_load
/* 51927*/            OPC_MoveParent,
/* 51928*/            OPC_MoveChild2,
/* 51929*/            OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 51932*/            OPC_MoveParent,
/* 51933*/            OPC_Scope, 29, /*->51964*/ // 2 children in Scope
/* 51935*/              OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 51937*/              OPC_MoveParent,
/* 51938*/              OPC_RecordChild1, // #4 = $mask
/* 51939*/              OPC_CheckType, MVT::v4i1,
/* 51941*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 51943*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 51946*/              OPC_EmitMergeInputChains1_2,
/* 51947*/              OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 51950*/              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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_su>><<X:X86pcmpm_imm>>:$cc, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 29
                        // Dst: (VPCMPDZ128rmik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] })):$cc))
/* 51964*/            /*Scope*/ 29, /*->51994*/
/* 51965*/              OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 51967*/              OPC_MoveParent,
/* 51968*/              OPC_RecordChild1, // #4 = $mask
/* 51969*/              OPC_CheckType, MVT::v4i1,
/* 51971*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 51973*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 51976*/              OPC_EmitMergeInputChains1_2,
/* 51977*/              OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 51980*/              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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_su>><<X:X86pcmpm_imm>>:$cc, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 29
                        // Dst: (VPCMPUDZ128rmik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] })):$cc))
/* 51994*/            0, /*End of Scope*/
/* 51995*/          /*SwitchOpcode*/ 74, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->52072
/* 51998*/            OPC_RecordMemRef,
/* 51999*/            OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/* 52000*/            OPC_CheckFoldableChainNode,
/* 52001*/            OPC_RecordChild1, // #3 = $src2
/* 52002*/            OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/* 52004*/            OPC_MoveParent,
/* 52005*/            OPC_MoveChild2,
/* 52006*/            OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 52009*/            OPC_MoveParent,
/* 52010*/            OPC_Scope, 29, /*->52041*/ // 2 children in Scope
/* 52012*/              OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 52014*/              OPC_MoveParent,
/* 52015*/              OPC_RecordChild1, // #4 = $mask
/* 52016*/              OPC_CheckType, MVT::v4i1,
/* 52018*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 52020*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 52023*/              OPC_EmitMergeInputChains1_2,
/* 52024*/              OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 52027*/              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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_su>><<X:X86pcmpm_imm>>:$cc, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 29
                        // Dst: (VPCMPDZ128rmibk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (cond:{ *:[Other] })):$cc))
/* 52041*/            /*Scope*/ 29, /*->52071*/
/* 52042*/              OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 52044*/              OPC_MoveParent,
/* 52045*/              OPC_RecordChild1, // #4 = $mask
/* 52046*/              OPC_CheckType, MVT::v4i1,
/* 52048*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 52050*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 52053*/              OPC_EmitMergeInputChains1_2,
/* 52054*/              OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 52057*/              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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_su>><<X:X86pcmpm_imm>>:$cc, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 29
                        // Dst: (VPCMPUDZ128rmibk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (cond:{ *:[Other] })):$cc))
/* 52071*/            0, /*End of Scope*/
/* 52072*/          0, // EndSwitchOpcode
/* 52073*/        /*Scope*/ 33|128,1/*161*/, /*->52236*/
/* 52075*/          OPC_CheckChild0Type, MVT::v8i64,
/* 52077*/          OPC_MoveChild1,
/* 52078*/          OPC_SwitchOpcode /*2 cases */, 76, TARGET_VAL(ISD::LOAD),// ->52158
/* 52082*/            OPC_RecordMemRef,
/* 52083*/            OPC_RecordNode, // #2 = 'ld' chained node
/* 52084*/            OPC_CheckFoldableChainNode,
/* 52085*/            OPC_RecordChild1, // #3 = $src2
/* 52086*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 52088*/            OPC_CheckPredicate, 9, // Predicate_load
/* 52090*/            OPC_MoveParent,
/* 52091*/            OPC_MoveChild2,
/* 52092*/            OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 52095*/            OPC_MoveParent,
/* 52096*/            OPC_Scope, 29, /*->52127*/ // 2 children in Scope
/* 52098*/              OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 52100*/              OPC_MoveParent,
/* 52101*/              OPC_RecordChild1, // #4 = $mask
/* 52102*/              OPC_CheckType, MVT::v8i1,
/* 52104*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 52106*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 52109*/              OPC_EmitMergeInputChains1_2,
/* 52110*/              OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 52113*/              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>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_su>><<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>>, (cond:{ *:[Other] })):$cc))
/* 52127*/            /*Scope*/ 29, /*->52157*/
/* 52128*/              OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 52130*/              OPC_MoveParent,
/* 52131*/              OPC_RecordChild1, // #4 = $mask
/* 52132*/              OPC_CheckType, MVT::v8i1,
/* 52134*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 52136*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 52139*/              OPC_EmitMergeInputChains1_2,
/* 52140*/              OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 52143*/              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>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_su>><<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>>, (cond:{ *:[Other] })):$cc))
/* 52157*/            0, /*End of Scope*/
/* 52158*/          /*SwitchOpcode*/ 74, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->52235
/* 52161*/            OPC_RecordMemRef,
/* 52162*/            OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/* 52163*/            OPC_CheckFoldableChainNode,
/* 52164*/            OPC_RecordChild1, // #3 = $src2
/* 52165*/            OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 52167*/            OPC_MoveParent,
/* 52168*/            OPC_MoveChild2,
/* 52169*/            OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 52172*/            OPC_MoveParent,
/* 52173*/            OPC_Scope, 29, /*->52204*/ // 2 children in Scope
/* 52175*/              OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 52177*/              OPC_MoveParent,
/* 52178*/              OPC_RecordChild1, // #4 = $mask
/* 52179*/              OPC_CheckType, MVT::v8i1,
/* 52181*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 52183*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 52186*/              OPC_EmitMergeInputChains1_2,
/* 52187*/              OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 52190*/              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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_su>><<X:X86pcmpm_imm>>:$cc, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 29
                        // Dst: (VPCMPQZrmibk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (cond:{ *:[Other] })):$cc))
/* 52204*/            /*Scope*/ 29, /*->52234*/
/* 52205*/              OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 52207*/              OPC_MoveParent,
/* 52208*/              OPC_RecordChild1, // #4 = $mask
/* 52209*/              OPC_CheckType, MVT::v8i1,
/* 52211*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 52213*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 52216*/              OPC_EmitMergeInputChains1_2,
/* 52217*/              OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 52220*/              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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_su>><<X:X86pcmpm_imm>>:$cc, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 29
                        // Dst: (VPCMPUQZrmibk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (cond:{ *:[Other] })):$cc))
/* 52234*/            0, /*End of Scope*/
/* 52235*/          0, // EndSwitchOpcode
/* 52236*/        /*Scope*/ 33|128,1/*161*/, /*->52399*/
/* 52238*/          OPC_CheckChild0Type, MVT::v4i64,
/* 52240*/          OPC_MoveChild1,
/* 52241*/          OPC_SwitchOpcode /*2 cases */, 76, TARGET_VAL(ISD::LOAD),// ->52321
/* 52245*/            OPC_RecordMemRef,
/* 52246*/            OPC_RecordNode, // #2 = 'ld' chained node
/* 52247*/            OPC_CheckFoldableChainNode,
/* 52248*/            OPC_RecordChild1, // #3 = $src2
/* 52249*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 52251*/            OPC_CheckPredicate, 9, // Predicate_load
/* 52253*/            OPC_MoveParent,
/* 52254*/            OPC_MoveChild2,
/* 52255*/            OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 52258*/            OPC_MoveParent,
/* 52259*/            OPC_Scope, 29, /*->52290*/ // 2 children in Scope
/* 52261*/              OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 52263*/              OPC_MoveParent,
/* 52264*/              OPC_RecordChild1, // #4 = $mask
/* 52265*/              OPC_CheckType, MVT::v4i1,
/* 52267*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 52269*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 52272*/              OPC_EmitMergeInputChains1_2,
/* 52273*/              OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 52276*/              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>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_su>><<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>>, (cond:{ *:[Other] })):$cc))
/* 52290*/            /*Scope*/ 29, /*->52320*/
/* 52291*/              OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 52293*/              OPC_MoveParent,
/* 52294*/              OPC_RecordChild1, // #4 = $mask
/* 52295*/              OPC_CheckType, MVT::v4i1,
/* 52297*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 52299*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 52302*/              OPC_EmitMergeInputChains1_2,
/* 52303*/              OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 52306*/              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>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_su>><<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>>, (cond:{ *:[Other] })):$cc))
/* 52320*/            0, /*End of Scope*/
/* 52321*/          /*SwitchOpcode*/ 74, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->52398
/* 52324*/            OPC_RecordMemRef,
/* 52325*/            OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/* 52326*/            OPC_CheckFoldableChainNode,
/* 52327*/            OPC_RecordChild1, // #3 = $src2
/* 52328*/            OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 52330*/            OPC_MoveParent,
/* 52331*/            OPC_MoveChild2,
/* 52332*/            OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 52335*/            OPC_MoveParent,
/* 52336*/            OPC_Scope, 29, /*->52367*/ // 2 children in Scope
/* 52338*/              OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 52340*/              OPC_MoveParent,
/* 52341*/              OPC_RecordChild1, // #4 = $mask
/* 52342*/              OPC_CheckType, MVT::v4i1,
/* 52344*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 52346*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 52349*/              OPC_EmitMergeInputChains1_2,
/* 52350*/              OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 52353*/              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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_su>><<X:X86pcmpm_imm>>:$cc, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 29
                        // Dst: (VPCMPQZ256rmibk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (cond:{ *:[Other] })):$cc))
/* 52367*/            /*Scope*/ 29, /*->52397*/
/* 52368*/              OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 52370*/              OPC_MoveParent,
/* 52371*/              OPC_RecordChild1, // #4 = $mask
/* 52372*/              OPC_CheckType, MVT::v4i1,
/* 52374*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 52376*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 52379*/              OPC_EmitMergeInputChains1_2,
/* 52380*/              OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 52383*/              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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_su>><<X:X86pcmpm_imm>>:$cc, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 29
                        // Dst: (VPCMPUQZ256rmibk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (cond:{ *:[Other] })):$cc))
/* 52397*/            0, /*End of Scope*/
/* 52398*/          0, // EndSwitchOpcode
/* 52399*/        /*Scope*/ 33|128,1/*161*/, /*->52562*/
/* 52401*/          OPC_CheckChild0Type, MVT::v2i64,
/* 52403*/          OPC_MoveChild1,
/* 52404*/          OPC_SwitchOpcode /*2 cases */, 76, TARGET_VAL(ISD::LOAD),// ->52484
/* 52408*/            OPC_RecordMemRef,
/* 52409*/            OPC_RecordNode, // #2 = 'ld' chained node
/* 52410*/            OPC_CheckFoldableChainNode,
/* 52411*/            OPC_RecordChild1, // #3 = $src2
/* 52412*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 52414*/            OPC_CheckPredicate, 9, // Predicate_load
/* 52416*/            OPC_MoveParent,
/* 52417*/            OPC_MoveChild2,
/* 52418*/            OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 52421*/            OPC_MoveParent,
/* 52422*/            OPC_Scope, 29, /*->52453*/ // 2 children in Scope
/* 52424*/              OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 52426*/              OPC_MoveParent,
/* 52427*/              OPC_RecordChild1, // #4 = $mask
/* 52428*/              OPC_CheckType, MVT::v2i1,
/* 52430*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 52432*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 52435*/              OPC_EmitMergeInputChains1_2,
/* 52436*/              OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 52439*/              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>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_su>><<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>>, (cond:{ *:[Other] })):$cc))
/* 52453*/            /*Scope*/ 29, /*->52483*/
/* 52454*/              OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 52456*/              OPC_MoveParent,
/* 52457*/              OPC_RecordChild1, // #4 = $mask
/* 52458*/              OPC_CheckType, MVT::v2i1,
/* 52460*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 52462*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 52465*/              OPC_EmitMergeInputChains1_2,
/* 52466*/              OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 52469*/              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>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_su>><<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>>, (cond:{ *:[Other] })):$cc))
/* 52483*/            0, /*End of Scope*/
/* 52484*/          /*SwitchOpcode*/ 74, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->52561
/* 52487*/            OPC_RecordMemRef,
/* 52488*/            OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/* 52489*/            OPC_CheckFoldableChainNode,
/* 52490*/            OPC_RecordChild1, // #3 = $src2
/* 52491*/            OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 52493*/            OPC_MoveParent,
/* 52494*/            OPC_MoveChild2,
/* 52495*/            OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 52498*/            OPC_MoveParent,
/* 52499*/            OPC_Scope, 29, /*->52530*/ // 2 children in Scope
/* 52501*/              OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 52503*/              OPC_MoveParent,
/* 52504*/              OPC_RecordChild1, // #4 = $mask
/* 52505*/              OPC_CheckType, MVT::v2i1,
/* 52507*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 52509*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 52512*/              OPC_EmitMergeInputChains1_2,
/* 52513*/              OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 52516*/              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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_su>><<X:X86pcmpm_imm>>:$cc, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 29
                        // Dst: (VPCMPQZ128rmibk:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (cond:{ *:[Other] })):$cc))
/* 52530*/            /*Scope*/ 29, /*->52560*/
/* 52531*/              OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 52533*/              OPC_MoveParent,
/* 52534*/              OPC_RecordChild1, // #4 = $mask
/* 52535*/              OPC_CheckType, MVT::v2i1,
/* 52537*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 52539*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 52542*/              OPC_EmitMergeInputChains1_2,
/* 52543*/              OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 52546*/              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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_su>><<X:X86pcmpm_imm>>:$cc, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 29
                        // Dst: (VPCMPUQZ128rmibk:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (cond:{ *:[Other] })):$cc))
/* 52560*/            0, /*End of Scope*/
/* 52561*/          0, // EndSwitchOpcode
/* 52562*/        0, /*End of Scope*/
/* 52563*/      0, /*End of Scope*/
/* 52564*/    /*Scope*/ 2|128,1/*130*/, /*->52696*/
/* 52566*/      OPC_MoveChild0,
/* 52567*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VPSHUFBITQMB),
/* 52570*/      OPC_RecordChild0, // #0 = $src1
/* 52571*/      OPC_Scope, 40, /*->52613*/ // 3 children in Scope
/* 52573*/        OPC_CheckChild0Type, MVT::v64i8,
/* 52575*/        OPC_MoveChild1,
/* 52576*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 52579*/        OPC_RecordMemRef,
/* 52580*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 52581*/        OPC_CheckFoldableChainNode,
/* 52582*/        OPC_RecordChild1, // #2 = $src2
/* 52583*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 52585*/        OPC_CheckPredicate, 9, // Predicate_load
/* 52587*/        OPC_MoveParent,
/* 52588*/        OPC_CheckPredicate, 17, // Predicate_X86Vpshufbitqmb_su
/* 52590*/        OPC_MoveParent,
/* 52591*/        OPC_RecordChild1, // #3 = $mask
/* 52592*/        OPC_CheckType, MVT::v64i1,
/* 52594*/        OPC_CheckPatternPredicate, 114, // (Subtarget->hasBITALG())
/* 52596*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 52599*/        OPC_EmitMergeInputChains1_1,
/* 52600*/        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, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)<<P:Predicate_X86Vpshufbitqmb_su>>, VK64WM:{ *:[v64i1] }:$mask) - Complexity = 29
                  // Dst: (VPSHUFBITQMBZrmk:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 52613*/      /*Scope*/ 40, /*->52654*/
/* 52614*/        OPC_CheckChild0Type, MVT::v32i8,
/* 52616*/        OPC_MoveChild1,
/* 52617*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 52620*/        OPC_RecordMemRef,
/* 52621*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 52622*/        OPC_CheckFoldableChainNode,
/* 52623*/        OPC_RecordChild1, // #2 = $src2
/* 52624*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 52626*/        OPC_CheckPredicate, 9, // Predicate_load
/* 52628*/        OPC_MoveParent,
/* 52629*/        OPC_CheckPredicate, 17, // Predicate_X86Vpshufbitqmb_su
/* 52631*/        OPC_MoveParent,
/* 52632*/        OPC_RecordChild1, // #3 = $mask
/* 52633*/        OPC_CheckType, MVT::v32i1,
/* 52635*/        OPC_CheckPatternPredicate, 115, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/* 52637*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 52640*/        OPC_EmitMergeInputChains1_1,
/* 52641*/        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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)<<P:Predicate_X86Vpshufbitqmb_su>>, VK32WM:{ *:[v32i1] }:$mask) - Complexity = 29
                  // Dst: (VPSHUFBITQMBZ256rmk:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 52654*/      /*Scope*/ 40, /*->52695*/
/* 52655*/        OPC_CheckChild0Type, MVT::v16i8,
/* 52657*/        OPC_MoveChild1,
/* 52658*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 52661*/        OPC_RecordMemRef,
/* 52662*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 52663*/        OPC_CheckFoldableChainNode,
/* 52664*/        OPC_RecordChild1, // #2 = $src2
/* 52665*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 52667*/        OPC_CheckPredicate, 9, // Predicate_load
/* 52669*/        OPC_MoveParent,
/* 52670*/        OPC_CheckPredicate, 17, // Predicate_X86Vpshufbitqmb_su
/* 52672*/        OPC_MoveParent,
/* 52673*/        OPC_RecordChild1, // #3 = $mask
/* 52674*/        OPC_CheckType, MVT::v16i1,
/* 52676*/        OPC_CheckPatternPredicate, 115, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/* 52678*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 52681*/        OPC_EmitMergeInputChains1_1,
/* 52682*/        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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)<<P:Predicate_X86Vpshufbitqmb_su>>, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 29
                  // Dst: (VPSHUFBITQMBZ128rmk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 52695*/      0, /*End of Scope*/
/* 52696*/    /*Scope*/ 124|128,33/*4348*/, /*->57046*/
/* 52698*/      OPC_RecordChild0, // #0 = $cc
/* 52699*/      OPC_Scope, 41|128,10/*1321*/, /*->54023*/ // 4 children in Scope
/* 52702*/        OPC_MoveChild0,
/* 52703*/        OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 52706*/        OPC_MoveChild0,
/* 52707*/        OPC_SwitchOpcode /*2 cases */, 94|128,6/*862*/, TARGET_VAL(ISD::LOAD),// ->53574
/* 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_SwitchType /*12 cases */, 69, MVT::v64i8,// ->52792
/* 52723*/            OPC_MoveParent,
/* 52724*/            OPC_RecordChild1, // #3 = $src1
/* 52725*/            OPC_MoveChild2,
/* 52726*/            OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 52729*/            OPC_MoveParent,
/* 52730*/            OPC_Scope, 29, /*->52761*/ // 2 children in Scope
/* 52732*/              OPC_CheckPredicate, 51, // Predicate_X86pcmpm_commute_su
/* 52734*/              OPC_MoveParent,
/* 52735*/              OPC_RecordChild1, // #4 = $mask
/* 52736*/              OPC_CheckType, MVT::v64i1,
/* 52738*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/* 52740*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 52743*/              OPC_EmitMergeInputChains1_1,
/* 52744*/              OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/* 52747*/              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] } (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v64i8] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute_su>><<X:X86pcmpm_imm_commute>>:$cc, VK64WM:{ *:[v64i1] }:$mask) - Complexity = 29
                        // Dst: (VPCMPBZrmik:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v64i1] }:$cc))
/* 52761*/            /*Scope*/ 29, /*->52791*/
/* 52762*/              OPC_CheckPredicate, 52, // Predicate_X86pcmpum_commute_su
/* 52764*/              OPC_MoveParent,
/* 52765*/              OPC_RecordChild1, // #4 = $mask
/* 52766*/              OPC_CheckType, MVT::v64i1,
/* 52768*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/* 52770*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 52773*/              OPC_EmitMergeInputChains1_1,
/* 52774*/              OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/* 52777*/              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] } (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v64i8] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute_su>><<X:X86pcmpm_imm_commute>>:$cc, VK64WM:{ *:[v64i1] }:$mask) - Complexity = 29
                        // Dst: (VPCMPUBZrmik:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v64i1] }:$cc))
/* 52791*/            0, /*End of Scope*/
/* 52792*/          /*SwitchType*/ 69, MVT::v32i8,// ->52863
/* 52794*/            OPC_MoveParent,
/* 52795*/            OPC_RecordChild1, // #3 = $src1
/* 52796*/            OPC_MoveChild2,
/* 52797*/            OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 52800*/            OPC_MoveParent,
/* 52801*/            OPC_Scope, 29, /*->52832*/ // 2 children in Scope
/* 52803*/              OPC_CheckPredicate, 51, // Predicate_X86pcmpm_commute_su
/* 52805*/              OPC_MoveParent,
/* 52806*/              OPC_RecordChild1, // #4 = $mask
/* 52807*/              OPC_CheckType, MVT::v32i1,
/* 52809*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 52811*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 52814*/              OPC_EmitMergeInputChains1_1,
/* 52815*/              OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/* 52818*/              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] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v32i8] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute_su>><<X:X86pcmpm_imm_commute>>:$cc, VK32WM:{ *:[v32i1] }:$mask) - Complexity = 29
                        // Dst: (VPCMPBZ256rmik:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v32i1] }:$cc))
/* 52832*/            /*Scope*/ 29, /*->52862*/
/* 52833*/              OPC_CheckPredicate, 52, // Predicate_X86pcmpum_commute_su
/* 52835*/              OPC_MoveParent,
/* 52836*/              OPC_RecordChild1, // #4 = $mask
/* 52837*/              OPC_CheckType, MVT::v32i1,
/* 52839*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 52841*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 52844*/              OPC_EmitMergeInputChains1_1,
/* 52845*/              OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/* 52848*/              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] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v32i8] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute_su>><<X:X86pcmpm_imm_commute>>:$cc, VK32WM:{ *:[v32i1] }:$mask) - Complexity = 29
                        // Dst: (VPCMPUBZ256rmik:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v32i1] }:$cc))
/* 52862*/            0, /*End of Scope*/
/* 52863*/          /*SwitchType*/ 69, MVT::v16i8,// ->52934
/* 52865*/            OPC_MoveParent,
/* 52866*/            OPC_RecordChild1, // #3 = $src1
/* 52867*/            OPC_MoveChild2,
/* 52868*/            OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 52871*/            OPC_MoveParent,
/* 52872*/            OPC_Scope, 29, /*->52903*/ // 2 children in Scope
/* 52874*/              OPC_CheckPredicate, 51, // Predicate_X86pcmpm_commute_su
/* 52876*/              OPC_MoveParent,
/* 52877*/              OPC_RecordChild1, // #4 = $mask
/* 52878*/              OPC_CheckType, MVT::v16i1,
/* 52880*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 52882*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 52885*/              OPC_EmitMergeInputChains1_1,
/* 52886*/              OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/* 52889*/              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] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v16i8] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute_su>><<X:X86pcmpm_imm_commute>>:$cc, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 29
                        // Dst: (VPCMPBZ128rmik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v16i1] }:$cc))
/* 52903*/            /*Scope*/ 29, /*->52933*/
/* 52904*/              OPC_CheckPredicate, 52, // Predicate_X86pcmpum_commute_su
/* 52906*/              OPC_MoveParent,
/* 52907*/              OPC_RecordChild1, // #4 = $mask
/* 52908*/              OPC_CheckType, MVT::v16i1,
/* 52910*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 52912*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 52915*/              OPC_EmitMergeInputChains1_1,
/* 52916*/              OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/* 52919*/              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] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v16i8] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute_su>><<X:X86pcmpm_imm_commute>>:$cc, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 29
                        // Dst: (VPCMPUBZ128rmik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v16i1] }:$cc))
/* 52933*/            0, /*End of Scope*/
/* 52934*/          /*SwitchType*/ 69, MVT::v32i16,// ->53005
/* 52936*/            OPC_MoveParent,
/* 52937*/            OPC_RecordChild1, // #3 = $src1
/* 52938*/            OPC_MoveChild2,
/* 52939*/            OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 52942*/            OPC_MoveParent,
/* 52943*/            OPC_Scope, 29, /*->52974*/ // 2 children in Scope
/* 52945*/              OPC_CheckPredicate, 51, // Predicate_X86pcmpm_commute_su
/* 52947*/              OPC_MoveParent,
/* 52948*/              OPC_RecordChild1, // #4 = $mask
/* 52949*/              OPC_CheckType, MVT::v32i1,
/* 52951*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/* 52953*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 52956*/              OPC_EmitMergeInputChains1_1,
/* 52957*/              OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/* 52960*/              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] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute_su>><<X:X86pcmpm_imm_commute>>:$cc, VK32WM:{ *:[v32i1] }:$mask) - Complexity = 29
                        // Dst: (VPCMPWZrmik:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v32i1] }:$cc))
/* 52974*/            /*Scope*/ 29, /*->53004*/
/* 52975*/              OPC_CheckPredicate, 52, // Predicate_X86pcmpum_commute_su
/* 52977*/              OPC_MoveParent,
/* 52978*/              OPC_RecordChild1, // #4 = $mask
/* 52979*/              OPC_CheckType, MVT::v32i1,
/* 52981*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/* 52983*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 52986*/              OPC_EmitMergeInputChains1_1,
/* 52987*/              OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/* 52990*/              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] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute_su>><<X:X86pcmpm_imm_commute>>:$cc, VK32WM:{ *:[v32i1] }:$mask) - Complexity = 29
                        // Dst: (VPCMPUWZrmik:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v32i1] }:$cc))
/* 53004*/            0, /*End of Scope*/
/* 53005*/          /*SwitchType*/ 69, MVT::v16i16,// ->53076
/* 53007*/            OPC_MoveParent,
/* 53008*/            OPC_RecordChild1, // #3 = $src1
/* 53009*/            OPC_MoveChild2,
/* 53010*/            OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 53013*/            OPC_MoveParent,
/* 53014*/            OPC_Scope, 29, /*->53045*/ // 2 children in Scope
/* 53016*/              OPC_CheckPredicate, 51, // Predicate_X86pcmpm_commute_su
/* 53018*/              OPC_MoveParent,
/* 53019*/              OPC_RecordChild1, // #4 = $mask
/* 53020*/              OPC_CheckType, MVT::v16i1,
/* 53022*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 53024*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 53027*/              OPC_EmitMergeInputChains1_1,
/* 53028*/              OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/* 53031*/              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] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute_su>><<X:X86pcmpm_imm_commute>>:$cc, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 29
                        // Dst: (VPCMPWZ256rmik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v16i1] }:$cc))
/* 53045*/            /*Scope*/ 29, /*->53075*/
/* 53046*/              OPC_CheckPredicate, 52, // Predicate_X86pcmpum_commute_su
/* 53048*/              OPC_MoveParent,
/* 53049*/              OPC_RecordChild1, // #4 = $mask
/* 53050*/              OPC_CheckType, MVT::v16i1,
/* 53052*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 53054*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 53057*/              OPC_EmitMergeInputChains1_1,
/* 53058*/              OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/* 53061*/              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] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute_su>><<X:X86pcmpm_imm_commute>>:$cc, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 29
                        // Dst: (VPCMPUWZ256rmik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v16i1] }:$cc))
/* 53075*/            0, /*End of Scope*/
/* 53076*/          /*SwitchType*/ 69, MVT::v8i16,// ->53147
/* 53078*/            OPC_MoveParent,
/* 53079*/            OPC_RecordChild1, // #3 = $src1
/* 53080*/            OPC_MoveChild2,
/* 53081*/            OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 53084*/            OPC_MoveParent,
/* 53085*/            OPC_Scope, 29, /*->53116*/ // 2 children in Scope
/* 53087*/              OPC_CheckPredicate, 51, // Predicate_X86pcmpm_commute_su
/* 53089*/              OPC_MoveParent,
/* 53090*/              OPC_RecordChild1, // #4 = $mask
/* 53091*/              OPC_CheckType, MVT::v8i1,
/* 53093*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 53095*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 53098*/              OPC_EmitMergeInputChains1_1,
/* 53099*/              OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/* 53102*/              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] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute_su>><<X:X86pcmpm_imm_commute>>:$cc, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 29
                        // Dst: (VPCMPWZ128rmik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v8i1] }:$cc))
/* 53116*/            /*Scope*/ 29, /*->53146*/
/* 53117*/              OPC_CheckPredicate, 52, // Predicate_X86pcmpum_commute_su
/* 53119*/              OPC_MoveParent,
/* 53120*/              OPC_RecordChild1, // #4 = $mask
/* 53121*/              OPC_CheckType, MVT::v8i1,
/* 53123*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 53125*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 53128*/              OPC_EmitMergeInputChains1_1,
/* 53129*/              OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/* 53132*/              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] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute_su>><<X:X86pcmpm_imm_commute>>:$cc, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 29
                        // Dst: (VPCMPUWZ128rmik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v8i1] }:$cc))
/* 53146*/            0, /*End of Scope*/
/* 53147*/          /*SwitchType*/ 69, MVT::v16i32,// ->53218
/* 53149*/            OPC_MoveParent,
/* 53150*/            OPC_RecordChild1, // #3 = $src1
/* 53151*/            OPC_MoveChild2,
/* 53152*/            OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 53155*/            OPC_MoveParent,
/* 53156*/            OPC_Scope, 29, /*->53187*/ // 2 children in Scope
/* 53158*/              OPC_CheckPredicate, 51, // Predicate_X86pcmpm_commute_su
/* 53160*/              OPC_MoveParent,
/* 53161*/              OPC_RecordChild1, // #4 = $mask
/* 53162*/              OPC_CheckType, MVT::v16i1,
/* 53164*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 53166*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 53169*/              OPC_EmitMergeInputChains1_1,
/* 53170*/              OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/* 53173*/              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] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute_su>><<X:X86pcmpm_imm_commute>>:$cc, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 29
                        // Dst: (VPCMPDZrmik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v16i1] }:$cc))
/* 53187*/            /*Scope*/ 29, /*->53217*/
/* 53188*/              OPC_CheckPredicate, 52, // Predicate_X86pcmpum_commute_su
/* 53190*/              OPC_MoveParent,
/* 53191*/              OPC_RecordChild1, // #4 = $mask
/* 53192*/              OPC_CheckType, MVT::v16i1,
/* 53194*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 53196*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 53199*/              OPC_EmitMergeInputChains1_1,
/* 53200*/              OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/* 53203*/              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] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute_su>><<X:X86pcmpm_imm_commute>>:$cc, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 29
                        // Dst: (VPCMPUDZrmik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v16i1] }:$cc))
/* 53217*/            0, /*End of Scope*/
/* 53218*/          /*SwitchType*/ 69, MVT::v8i32,// ->53289
/* 53220*/            OPC_MoveParent,
/* 53221*/            OPC_RecordChild1, // #3 = $src1
/* 53222*/            OPC_MoveChild2,
/* 53223*/            OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 53226*/            OPC_MoveParent,
/* 53227*/            OPC_Scope, 29, /*->53258*/ // 2 children in Scope
/* 53229*/              OPC_CheckPredicate, 51, // Predicate_X86pcmpm_commute_su
/* 53231*/              OPC_MoveParent,
/* 53232*/              OPC_RecordChild1, // #4 = $mask
/* 53233*/              OPC_CheckType, MVT::v8i1,
/* 53235*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 53237*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 53240*/              OPC_EmitMergeInputChains1_1,
/* 53241*/              OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/* 53244*/              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] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute_su>><<X:X86pcmpm_imm_commute>>:$cc, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 29
                        // Dst: (VPCMPDZ256rmik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v8i1] }:$cc))
/* 53258*/            /*Scope*/ 29, /*->53288*/
/* 53259*/              OPC_CheckPredicate, 52, // Predicate_X86pcmpum_commute_su
/* 53261*/              OPC_MoveParent,
/* 53262*/              OPC_RecordChild1, // #4 = $mask
/* 53263*/              OPC_CheckType, MVT::v8i1,
/* 53265*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 53267*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 53270*/              OPC_EmitMergeInputChains1_1,
/* 53271*/              OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/* 53274*/              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] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute_su>><<X:X86pcmpm_imm_commute>>:$cc, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 29
                        // Dst: (VPCMPUDZ256rmik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v8i1] }:$cc))
/* 53288*/            0, /*End of Scope*/
/* 53289*/          /*SwitchType*/ 69, MVT::v4i32,// ->53360
/* 53291*/            OPC_MoveParent,
/* 53292*/            OPC_RecordChild1, // #3 = $src1
/* 53293*/            OPC_MoveChild2,
/* 53294*/            OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 53297*/            OPC_MoveParent,
/* 53298*/            OPC_Scope, 29, /*->53329*/ // 2 children in Scope
/* 53300*/              OPC_CheckPredicate, 51, // Predicate_X86pcmpm_commute_su
/* 53302*/              OPC_MoveParent,
/* 53303*/              OPC_RecordChild1, // #4 = $mask
/* 53304*/              OPC_CheckType, MVT::v4i1,
/* 53306*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 53308*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 53311*/              OPC_EmitMergeInputChains1_1,
/* 53312*/              OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/* 53315*/              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] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute_su>><<X:X86pcmpm_imm_commute>>:$cc, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 29
                        // Dst: (VPCMPDZ128rmik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v4i1] }:$cc))
/* 53329*/            /*Scope*/ 29, /*->53359*/
/* 53330*/              OPC_CheckPredicate, 52, // Predicate_X86pcmpum_commute_su
/* 53332*/              OPC_MoveParent,
/* 53333*/              OPC_RecordChild1, // #4 = $mask
/* 53334*/              OPC_CheckType, MVT::v4i1,
/* 53336*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 53338*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 53341*/              OPC_EmitMergeInputChains1_1,
/* 53342*/              OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/* 53345*/              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] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute_su>><<X:X86pcmpm_imm_commute>>:$cc, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 29
                        // Dst: (VPCMPUDZ128rmik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v4i1] }:$cc))
/* 53359*/            0, /*End of Scope*/
/* 53360*/          /*SwitchType*/ 69, MVT::v8i64,// ->53431
/* 53362*/            OPC_MoveParent,
/* 53363*/            OPC_RecordChild1, // #3 = $src1
/* 53364*/            OPC_MoveChild2,
/* 53365*/            OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 53368*/            OPC_MoveParent,
/* 53369*/            OPC_Scope, 29, /*->53400*/ // 2 children in Scope
/* 53371*/              OPC_CheckPredicate, 51, // Predicate_X86pcmpm_commute_su
/* 53373*/              OPC_MoveParent,
/* 53374*/              OPC_RecordChild1, // #4 = $mask
/* 53375*/              OPC_CheckType, MVT::v8i1,
/* 53377*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 53379*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 53382*/              OPC_EmitMergeInputChains1_1,
/* 53383*/              OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/* 53386*/              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>>, VR512:{ *:[v8i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute_su>><<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))
/* 53400*/            /*Scope*/ 29, /*->53430*/
/* 53401*/              OPC_CheckPredicate, 52, // Predicate_X86pcmpum_commute_su
/* 53403*/              OPC_MoveParent,
/* 53404*/              OPC_RecordChild1, // #4 = $mask
/* 53405*/              OPC_CheckType, MVT::v8i1,
/* 53407*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 53409*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 53412*/              OPC_EmitMergeInputChains1_1,
/* 53413*/              OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/* 53416*/              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>>, VR512:{ *:[v8i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute_su>><<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))
/* 53430*/            0, /*End of Scope*/
/* 53431*/          /*SwitchType*/ 69, MVT::v4i64,// ->53502
/* 53433*/            OPC_MoveParent,
/* 53434*/            OPC_RecordChild1, // #3 = $src1
/* 53435*/            OPC_MoveChild2,
/* 53436*/            OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 53439*/            OPC_MoveParent,
/* 53440*/            OPC_Scope, 29, /*->53471*/ // 2 children in Scope
/* 53442*/              OPC_CheckPredicate, 51, // Predicate_X86pcmpm_commute_su
/* 53444*/              OPC_MoveParent,
/* 53445*/              OPC_RecordChild1, // #4 = $mask
/* 53446*/              OPC_CheckType, MVT::v4i1,
/* 53448*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 53450*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 53453*/              OPC_EmitMergeInputChains1_1,
/* 53454*/              OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/* 53457*/              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>>, VR256X:{ *:[v4i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute_su>><<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))
/* 53471*/            /*Scope*/ 29, /*->53501*/
/* 53472*/              OPC_CheckPredicate, 52, // Predicate_X86pcmpum_commute_su
/* 53474*/              OPC_MoveParent,
/* 53475*/              OPC_RecordChild1, // #4 = $mask
/* 53476*/              OPC_CheckType, MVT::v4i1,
/* 53478*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 53480*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 53483*/              OPC_EmitMergeInputChains1_1,
/* 53484*/              OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/* 53487*/              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>>, VR256X:{ *:[v4i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute_su>><<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))
/* 53501*/            0, /*End of Scope*/
/* 53502*/          /*SwitchType*/ 69, MVT::v2i64,// ->53573
/* 53504*/            OPC_MoveParent,
/* 53505*/            OPC_RecordChild1, // #3 = $src1
/* 53506*/            OPC_MoveChild2,
/* 53507*/            OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 53510*/            OPC_MoveParent,
/* 53511*/            OPC_Scope, 29, /*->53542*/ // 2 children in Scope
/* 53513*/              OPC_CheckPredicate, 51, // Predicate_X86pcmpm_commute_su
/* 53515*/              OPC_MoveParent,
/* 53516*/              OPC_RecordChild1, // #4 = $mask
/* 53517*/              OPC_CheckType, MVT::v2i1,
/* 53519*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 53521*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 53524*/              OPC_EmitMergeInputChains1_1,
/* 53525*/              OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/* 53528*/              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>>, VR128X:{ *:[v2i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute_su>><<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))
/* 53542*/            /*Scope*/ 29, /*->53572*/
/* 53543*/              OPC_CheckPredicate, 52, // Predicate_X86pcmpum_commute_su
/* 53545*/              OPC_MoveParent,
/* 53546*/              OPC_RecordChild1, // #4 = $mask
/* 53547*/              OPC_CheckType, MVT::v2i1,
/* 53549*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 53551*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 53554*/              OPC_EmitMergeInputChains1_1,
/* 53555*/              OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/* 53558*/              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>>, VR128X:{ *:[v2i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute_su>><<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))
/* 53572*/            0, /*End of Scope*/
/* 53573*/          0, // EndSwitchType
/* 53574*/        /*SwitchOpcode*/ 60|128,3/*444*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->54022
/* 53578*/          OPC_RecordMemRef,
/* 53579*/          OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/* 53580*/          OPC_CheckFoldableChainNode,
/* 53581*/          OPC_RecordChild1, // #2 = $src2
/* 53582*/          OPC_Scope, 89|128,1/*217*/, /*->53802*/ // 2 children in Scope
/* 53585*/            OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/* 53587*/            OPC_SwitchType /*3 cases */, 69, MVT::v16i32,// ->53659
/* 53590*/              OPC_MoveParent,
/* 53591*/              OPC_RecordChild1, // #3 = $src1
/* 53592*/              OPC_MoveChild2,
/* 53593*/              OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 53596*/              OPC_MoveParent,
/* 53597*/              OPC_Scope, 29, /*->53628*/ // 2 children in Scope
/* 53599*/                OPC_CheckPredicate, 51, // Predicate_X86pcmpm_commute_su
/* 53601*/                OPC_MoveParent,
/* 53602*/                OPC_RecordChild1, // #4 = $mask
/* 53603*/                OPC_CheckType, MVT::v16i1,
/* 53605*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 53607*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 53610*/                OPC_EmitMergeInputChains1_1,
/* 53611*/                OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/* 53614*/                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] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute_su>><<X:X86pcmpm_imm_commute>>:$cc, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 29
                          // Dst: (VPCMPDZrmibk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v16i1] }:$cc))
/* 53628*/              /*Scope*/ 29, /*->53658*/
/* 53629*/                OPC_CheckPredicate, 52, // Predicate_X86pcmpum_commute_su
/* 53631*/                OPC_MoveParent,
/* 53632*/                OPC_RecordChild1, // #4 = $mask
/* 53633*/                OPC_CheckType, MVT::v16i1,
/* 53635*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 53637*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 53640*/                OPC_EmitMergeInputChains1_1,
/* 53641*/                OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/* 53644*/                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] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute_su>><<X:X86pcmpm_imm_commute>>:$cc, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 29
                          // Dst: (VPCMPUDZrmibk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v16i1] }:$cc))
/* 53658*/              0, /*End of Scope*/
/* 53659*/            /*SwitchType*/ 69, MVT::v8i32,// ->53730
/* 53661*/              OPC_MoveParent,
/* 53662*/              OPC_RecordChild1, // #3 = $src1
/* 53663*/              OPC_MoveChild2,
/* 53664*/              OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 53667*/              OPC_MoveParent,
/* 53668*/              OPC_Scope, 29, /*->53699*/ // 2 children in Scope
/* 53670*/                OPC_CheckPredicate, 51, // Predicate_X86pcmpm_commute_su
/* 53672*/                OPC_MoveParent,
/* 53673*/                OPC_RecordChild1, // #4 = $mask
/* 53674*/                OPC_CheckType, MVT::v8i1,
/* 53676*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 53678*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 53681*/                OPC_EmitMergeInputChains1_1,
/* 53682*/                OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/* 53685*/                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] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute_su>><<X:X86pcmpm_imm_commute>>:$cc, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 29
                          // Dst: (VPCMPDZ256rmibk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v8i1] }:$cc))
/* 53699*/              /*Scope*/ 29, /*->53729*/
/* 53700*/                OPC_CheckPredicate, 52, // Predicate_X86pcmpum_commute_su
/* 53702*/                OPC_MoveParent,
/* 53703*/                OPC_RecordChild1, // #4 = $mask
/* 53704*/                OPC_CheckType, MVT::v8i1,
/* 53706*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 53708*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 53711*/                OPC_EmitMergeInputChains1_1,
/* 53712*/                OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/* 53715*/                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] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute_su>><<X:X86pcmpm_imm_commute>>:$cc, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 29
                          // Dst: (VPCMPUDZ256rmibk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v8i1] }:$cc))
/* 53729*/              0, /*End of Scope*/
/* 53730*/            /*SwitchType*/ 69, MVT::v4i32,// ->53801
/* 53732*/              OPC_MoveParent,
/* 53733*/              OPC_RecordChild1, // #3 = $src1
/* 53734*/              OPC_MoveChild2,
/* 53735*/              OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 53738*/              OPC_MoveParent,
/* 53739*/              OPC_Scope, 29, /*->53770*/ // 2 children in Scope
/* 53741*/                OPC_CheckPredicate, 51, // Predicate_X86pcmpm_commute_su
/* 53743*/                OPC_MoveParent,
/* 53744*/                OPC_RecordChild1, // #4 = $mask
/* 53745*/                OPC_CheckType, MVT::v4i1,
/* 53747*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 53749*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 53752*/                OPC_EmitMergeInputChains1_1,
/* 53753*/                OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/* 53756*/                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] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute_su>><<X:X86pcmpm_imm_commute>>:$cc, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 29
                          // Dst: (VPCMPDZ128rmibk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v4i1] }:$cc))
/* 53770*/              /*Scope*/ 29, /*->53800*/
/* 53771*/                OPC_CheckPredicate, 52, // Predicate_X86pcmpum_commute_su
/* 53773*/                OPC_MoveParent,
/* 53774*/                OPC_RecordChild1, // #4 = $mask
/* 53775*/                OPC_CheckType, MVT::v4i1,
/* 53777*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 53779*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 53782*/                OPC_EmitMergeInputChains1_1,
/* 53783*/                OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/* 53786*/                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] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute_su>><<X:X86pcmpm_imm_commute>>:$cc, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 29
                          // Dst: (VPCMPUDZ128rmibk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v4i1] }:$cc))
/* 53800*/              0, /*End of Scope*/
/* 53801*/            0, // EndSwitchType
/* 53802*/          /*Scope*/ 89|128,1/*217*/, /*->54021*/
/* 53804*/            OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 53806*/            OPC_SwitchType /*3 cases */, 69, MVT::v8i64,// ->53878
/* 53809*/              OPC_MoveParent,
/* 53810*/              OPC_RecordChild1, // #3 = $src1
/* 53811*/              OPC_MoveChild2,
/* 53812*/              OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 53815*/              OPC_MoveParent,
/* 53816*/              OPC_Scope, 29, /*->53847*/ // 2 children in Scope
/* 53818*/                OPC_CheckPredicate, 51, // Predicate_X86pcmpm_commute_su
/* 53820*/                OPC_MoveParent,
/* 53821*/                OPC_RecordChild1, // #4 = $mask
/* 53822*/                OPC_CheckType, MVT::v8i1,
/* 53824*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 53826*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 53829*/                OPC_EmitMergeInputChains1_1,
/* 53830*/                OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/* 53833*/                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] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute_su>><<X:X86pcmpm_imm_commute>>:$cc, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 29
                          // Dst: (VPCMPQZrmibk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v8i1] }:$cc))
/* 53847*/              /*Scope*/ 29, /*->53877*/
/* 53848*/                OPC_CheckPredicate, 52, // Predicate_X86pcmpum_commute_su
/* 53850*/                OPC_MoveParent,
/* 53851*/                OPC_RecordChild1, // #4 = $mask
/* 53852*/                OPC_CheckType, MVT::v8i1,
/* 53854*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 53856*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 53859*/                OPC_EmitMergeInputChains1_1,
/* 53860*/                OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/* 53863*/                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] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute_su>><<X:X86pcmpm_imm_commute>>:$cc, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 29
                          // Dst: (VPCMPUQZrmibk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v8i1] }:$cc))
/* 53877*/              0, /*End of Scope*/
/* 53878*/            /*SwitchType*/ 69, MVT::v4i64,// ->53949
/* 53880*/              OPC_MoveParent,
/* 53881*/              OPC_RecordChild1, // #3 = $src1
/* 53882*/              OPC_MoveChild2,
/* 53883*/              OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 53886*/              OPC_MoveParent,
/* 53887*/              OPC_Scope, 29, /*->53918*/ // 2 children in Scope
/* 53889*/                OPC_CheckPredicate, 51, // Predicate_X86pcmpm_commute_su
/* 53891*/                OPC_MoveParent,
/* 53892*/                OPC_RecordChild1, // #4 = $mask
/* 53893*/                OPC_CheckType, MVT::v4i1,
/* 53895*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 53897*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 53900*/                OPC_EmitMergeInputChains1_1,
/* 53901*/                OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/* 53904*/                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] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute_su>><<X:X86pcmpm_imm_commute>>:$cc, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 29
                          // Dst: (VPCMPQZ256rmibk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v4i1] }:$cc))
/* 53918*/              /*Scope*/ 29, /*->53948*/
/* 53919*/                OPC_CheckPredicate, 52, // Predicate_X86pcmpum_commute_su
/* 53921*/                OPC_MoveParent,
/* 53922*/                OPC_RecordChild1, // #4 = $mask
/* 53923*/                OPC_CheckType, MVT::v4i1,
/* 53925*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 53927*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 53930*/                OPC_EmitMergeInputChains1_1,
/* 53931*/                OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/* 53934*/                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] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute_su>><<X:X86pcmpm_imm_commute>>:$cc, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 29
                          // Dst: (VPCMPUQZ256rmibk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v4i1] }:$cc))
/* 53948*/              0, /*End of Scope*/
/* 53949*/            /*SwitchType*/ 69, MVT::v2i64,// ->54020
/* 53951*/              OPC_MoveParent,
/* 53952*/              OPC_RecordChild1, // #3 = $src1
/* 53953*/              OPC_MoveChild2,
/* 53954*/              OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 53957*/              OPC_MoveParent,
/* 53958*/              OPC_Scope, 29, /*->53989*/ // 2 children in Scope
/* 53960*/                OPC_CheckPredicate, 51, // Predicate_X86pcmpm_commute_su
/* 53962*/                OPC_MoveParent,
/* 53963*/                OPC_RecordChild1, // #4 = $mask
/* 53964*/                OPC_CheckType, MVT::v2i1,
/* 53966*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 53968*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 53971*/                OPC_EmitMergeInputChains1_1,
/* 53972*/                OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/* 53975*/                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] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute_su>><<X:X86pcmpm_imm_commute>>:$cc, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 29
                          // Dst: (VPCMPQZ128rmibk:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v2i1] }:$cc))
/* 53989*/              /*Scope*/ 29, /*->54019*/
/* 53990*/                OPC_CheckPredicate, 52, // Predicate_X86pcmpum_commute_su
/* 53992*/                OPC_MoveParent,
/* 53993*/                OPC_RecordChild1, // #4 = $mask
/* 53994*/                OPC_CheckType, MVT::v2i1,
/* 53996*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 53998*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 54001*/                OPC_EmitMergeInputChains1_1,
/* 54002*/                OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/* 54005*/                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] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute_su>><<X:X86pcmpm_imm_commute>>:$cc, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 29
                          // Dst: (VPCMPUQZ128rmibk:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v2i1] }:$cc))
/* 54019*/              0, /*End of Scope*/
/* 54020*/            0, // EndSwitchType
/* 54021*/          0, /*End of Scope*/
/* 54022*/        0, // EndSwitchOpcode
/* 54023*/      /*Scope*/ 23|128,11/*1431*/, /*->55456*/
/* 54025*/        OPC_RecordChild1, // #1 = $cc
/* 54026*/        OPC_MoveChild1,
/* 54027*/        OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 54030*/        OPC_Scope, 89, /*->54121*/ // 16 children in Scope
/* 54032*/          OPC_RecordChild0, // #2 = $src1
/* 54033*/          OPC_CheckChild0Type, MVT::v8i32,
/* 54035*/          OPC_MoveChild1,
/* 54036*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 54039*/          OPC_RecordMemRef,
/* 54040*/          OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/* 54041*/          OPC_CheckFoldableChainNode,
/* 54042*/          OPC_RecordChild1, // #4 = $src2
/* 54043*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/* 54045*/          OPC_MoveParent,
/* 54046*/          OPC_MoveChild2,
/* 54047*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 54050*/          OPC_MoveParent,
/* 54051*/          OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 54053*/          OPC_MoveParent,
/* 54054*/          OPC_CheckType, MVT::v8i1,
/* 54056*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 54058*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 54061*/          OPC_EmitMergeInputChains, 1, 3, 
/* 54064*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 54067*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 0, 10,  // Results = #11
/* 54075*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #12
/* 54081*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 54084*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 12, 2, 13,  // Results = #14
/* 54093*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 54096*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPDZrmibk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i1, 8/*#Ops*/, 11, 14, 5, 6, 7, 8, 9, 15,  // Results = #16
/* 54110*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 54113*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                        MVT::v8i1, 2/*#Ops*/, 16, 17, 
                    // Src: (and:{ *:[v8i1] } VK8:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_su>><<X:X86pcmpm_imm>>:$cc) - Complexity = 29
                    // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VPCMPDZrmibk:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$mask, VK16:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v8i32] }:$src1, sub_ymm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v8i1] }:$cc)), VK8:{ *:[i32] })
/* 54121*/        /*Scope*/ 87, /*->54209*/
/* 54122*/          OPC_MoveChild0,
/* 54123*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 54126*/          OPC_RecordMemRef,
/* 54127*/          OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/* 54128*/          OPC_CheckFoldableChainNode,
/* 54129*/          OPC_RecordChild1, // #3 = $src2
/* 54130*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/* 54132*/          OPC_CheckType, MVT::v8i32,
/* 54134*/          OPC_MoveParent,
/* 54135*/          OPC_RecordChild1, // #4 = $src1
/* 54136*/          OPC_MoveChild2,
/* 54137*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 54140*/          OPC_MoveParent,
/* 54141*/          OPC_CheckPredicate, 51, // Predicate_X86pcmpm_commute_su
/* 54143*/          OPC_MoveParent,
/* 54144*/          OPC_CheckType, MVT::v8i1,
/* 54146*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 54148*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 54151*/          OPC_EmitMergeInputChains1_2,
/* 54152*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 54155*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 0, 10,  // Results = #11
/* 54163*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #12
/* 54169*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 54172*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 12, 4, 13,  // Results = #14
/* 54181*/          OPC_EmitNodeXForm, 9, 1, // X86pcmpm_imm_commute
/* 54184*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPDZrmibk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i1, 8/*#Ops*/, 11, 14, 5, 6, 7, 8, 9, 15,  // Results = #16
/* 54198*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 54201*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                        MVT::v8i1, 2/*#Ops*/, 16, 17, 
                    // Src: (and:{ *:[v8i1] } VK8:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute_su>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 29
                    // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VPCMPDZrmibk:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$mask, VK16:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v8i32] }:$src1, sub_ymm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v8i1] }:$cc)), VK8:{ *:[i32] })
/* 54209*/        /*Scope*/ 89, /*->54299*/
/* 54210*/          OPC_RecordChild0, // #2 = $src1
/* 54211*/          OPC_CheckChild0Type, MVT::v8i32,
/* 54213*/          OPC_MoveChild1,
/* 54214*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 54217*/          OPC_RecordMemRef,
/* 54218*/          OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/* 54219*/          OPC_CheckFoldableChainNode,
/* 54220*/          OPC_RecordChild1, // #4 = $src2
/* 54221*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/* 54223*/          OPC_MoveParent,
/* 54224*/          OPC_MoveChild2,
/* 54225*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 54228*/          OPC_MoveParent,
/* 54229*/          OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 54231*/          OPC_MoveParent,
/* 54232*/          OPC_CheckType, MVT::v8i1,
/* 54234*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 54236*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 54239*/          OPC_EmitMergeInputChains, 1, 3, 
/* 54242*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 54245*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 0, 10,  // Results = #11
/* 54253*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #12
/* 54259*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 54262*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 12, 2, 13,  // Results = #14
/* 54271*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 54274*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPUDZrmibk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i1, 8/*#Ops*/, 11, 14, 5, 6, 7, 8, 9, 15,  // Results = #16
/* 54288*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 54291*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                        MVT::v8i1, 2/*#Ops*/, 16, 17, 
                    // Src: (and:{ *:[v8i1] } VK8:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_su>><<X:X86pcmpm_imm>>:$cc) - Complexity = 29
                    // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VPCMPUDZrmibk:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$mask, VK16:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v8i32] }:$src1, sub_ymm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v8i1] }:$cc)), VK8:{ *:[i32] })
/* 54299*/        /*Scope*/ 87, /*->54387*/
/* 54300*/          OPC_MoveChild0,
/* 54301*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 54304*/          OPC_RecordMemRef,
/* 54305*/          OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/* 54306*/          OPC_CheckFoldableChainNode,
/* 54307*/          OPC_RecordChild1, // #3 = $src2
/* 54308*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/* 54310*/          OPC_CheckType, MVT::v8i32,
/* 54312*/          OPC_MoveParent,
/* 54313*/          OPC_RecordChild1, // #4 = $src1
/* 54314*/          OPC_MoveChild2,
/* 54315*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 54318*/          OPC_MoveParent,
/* 54319*/          OPC_CheckPredicate, 52, // Predicate_X86pcmpum_commute_su
/* 54321*/          OPC_MoveParent,
/* 54322*/          OPC_CheckType, MVT::v8i1,
/* 54324*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 54326*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 54329*/          OPC_EmitMergeInputChains1_2,
/* 54330*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 54333*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 0, 10,  // Results = #11
/* 54341*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #12
/* 54347*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 54350*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 12, 4, 13,  // Results = #14
/* 54359*/          OPC_EmitNodeXForm, 9, 1, // X86pcmpm_imm_commute
/* 54362*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPUDZrmibk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i1, 8/*#Ops*/, 11, 14, 5, 6, 7, 8, 9, 15,  // Results = #16
/* 54376*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 54379*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                        MVT::v8i1, 2/*#Ops*/, 16, 17, 
                    // Src: (and:{ *:[v8i1] } VK8:{ *:[v8i1] }:$mask, (setcc:{ *:[v8i1] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute_su>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 29
                    // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VPCMPUDZrmibk:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$mask, VK16:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v8i32] }:$src1, sub_ymm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v8i1] }:$cc)), VK8:{ *:[i32] })
/* 54387*/        /*Scope*/ 89, /*->54477*/
/* 54388*/          OPC_RecordChild0, // #2 = $src1
/* 54389*/          OPC_CheckChild0Type, MVT::v4i32,
/* 54391*/          OPC_MoveChild1,
/* 54392*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 54395*/          OPC_RecordMemRef,
/* 54396*/          OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/* 54397*/          OPC_CheckFoldableChainNode,
/* 54398*/          OPC_RecordChild1, // #4 = $src2
/* 54399*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/* 54401*/          OPC_MoveParent,
/* 54402*/          OPC_MoveChild2,
/* 54403*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 54406*/          OPC_MoveParent,
/* 54407*/          OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 54409*/          OPC_MoveParent,
/* 54410*/          OPC_CheckType, MVT::v4i1,
/* 54412*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 54414*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 54417*/          OPC_EmitMergeInputChains, 1, 3, 
/* 54420*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 54423*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 0, 10,  // Results = #11
/* 54431*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #12
/* 54437*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 54440*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 12, 2, 13,  // Results = #14
/* 54449*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 54452*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPDZrmibk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i1, 8/*#Ops*/, 11, 14, 5, 6, 7, 8, 9, 15,  // Results = #16
/* 54466*/          OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 54469*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                        MVT::v4i1, 2/*#Ops*/, 16, 17, 
                    // Src: (and:{ *:[v4i1] } VK4:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_su>><<X:X86pcmpm_imm>>:$cc) - Complexity = 29
                    // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPCMPDZrmibk:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$mask, VK16:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v4i32] }:$src1, sub_xmm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v4i1] }:$cc)), VK4:{ *:[i32] })
/* 54477*/        /*Scope*/ 87, /*->54565*/
/* 54478*/          OPC_MoveChild0,
/* 54479*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 54482*/          OPC_RecordMemRef,
/* 54483*/          OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/* 54484*/          OPC_CheckFoldableChainNode,
/* 54485*/          OPC_RecordChild1, // #3 = $src2
/* 54486*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/* 54488*/          OPC_CheckType, MVT::v4i32,
/* 54490*/          OPC_MoveParent,
/* 54491*/          OPC_RecordChild1, // #4 = $src1
/* 54492*/          OPC_MoveChild2,
/* 54493*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 54496*/          OPC_MoveParent,
/* 54497*/          OPC_CheckPredicate, 51, // Predicate_X86pcmpm_commute_su
/* 54499*/          OPC_MoveParent,
/* 54500*/          OPC_CheckType, MVT::v4i1,
/* 54502*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 54504*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 54507*/          OPC_EmitMergeInputChains1_2,
/* 54508*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 54511*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 0, 10,  // Results = #11
/* 54519*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #12
/* 54525*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 54528*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 12, 4, 13,  // Results = #14
/* 54537*/          OPC_EmitNodeXForm, 9, 1, // X86pcmpm_imm_commute
/* 54540*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPDZrmibk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i1, 8/*#Ops*/, 11, 14, 5, 6, 7, 8, 9, 15,  // Results = #16
/* 54554*/          OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 54557*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                        MVT::v4i1, 2/*#Ops*/, 16, 17, 
                    // Src: (and:{ *:[v4i1] } VK4:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute_su>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 29
                    // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPCMPDZrmibk:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$mask, VK16:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v4i32] }:$src1, sub_xmm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v4i1] }:$cc)), VK4:{ *:[i32] })
/* 54565*/        /*Scope*/ 89, /*->54655*/
/* 54566*/          OPC_RecordChild0, // #2 = $src1
/* 54567*/          OPC_CheckChild0Type, MVT::v4i32,
/* 54569*/          OPC_MoveChild1,
/* 54570*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 54573*/          OPC_RecordMemRef,
/* 54574*/          OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/* 54575*/          OPC_CheckFoldableChainNode,
/* 54576*/          OPC_RecordChild1, // #4 = $src2
/* 54577*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/* 54579*/          OPC_MoveParent,
/* 54580*/          OPC_MoveChild2,
/* 54581*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 54584*/          OPC_MoveParent,
/* 54585*/          OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 54587*/          OPC_MoveParent,
/* 54588*/          OPC_CheckType, MVT::v4i1,
/* 54590*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 54592*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 54595*/          OPC_EmitMergeInputChains, 1, 3, 
/* 54598*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 54601*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 0, 10,  // Results = #11
/* 54609*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #12
/* 54615*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 54618*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 12, 2, 13,  // Results = #14
/* 54627*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 54630*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPUDZrmibk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i1, 8/*#Ops*/, 11, 14, 5, 6, 7, 8, 9, 15,  // Results = #16
/* 54644*/          OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 54647*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                        MVT::v4i1, 2/*#Ops*/, 16, 17, 
                    // Src: (and:{ *:[v4i1] } VK4:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_su>><<X:X86pcmpm_imm>>:$cc) - Complexity = 29
                    // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPCMPUDZrmibk:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$mask, VK16:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v4i32] }:$src1, sub_xmm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v4i1] }:$cc)), VK4:{ *:[i32] })
/* 54655*/        /*Scope*/ 87, /*->54743*/
/* 54656*/          OPC_MoveChild0,
/* 54657*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 54660*/          OPC_RecordMemRef,
/* 54661*/          OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/* 54662*/          OPC_CheckFoldableChainNode,
/* 54663*/          OPC_RecordChild1, // #3 = $src2
/* 54664*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/* 54666*/          OPC_CheckType, MVT::v4i32,
/* 54668*/          OPC_MoveParent,
/* 54669*/          OPC_RecordChild1, // #4 = $src1
/* 54670*/          OPC_MoveChild2,
/* 54671*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 54674*/          OPC_MoveParent,
/* 54675*/          OPC_CheckPredicate, 52, // Predicate_X86pcmpum_commute_su
/* 54677*/          OPC_MoveParent,
/* 54678*/          OPC_CheckType, MVT::v4i1,
/* 54680*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 54682*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 54685*/          OPC_EmitMergeInputChains1_2,
/* 54686*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 54689*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 0, 10,  // Results = #11
/* 54697*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #12
/* 54703*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 54706*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 12, 4, 13,  // Results = #14
/* 54715*/          OPC_EmitNodeXForm, 9, 1, // X86pcmpm_imm_commute
/* 54718*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPUDZrmibk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i1, 8/*#Ops*/, 11, 14, 5, 6, 7, 8, 9, 15,  // Results = #16
/* 54732*/          OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 54735*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                        MVT::v4i1, 2/*#Ops*/, 16, 17, 
                    // Src: (and:{ *:[v4i1] } VK4:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute_su>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 29
                    // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPCMPUDZrmibk:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$mask, VK16:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v4i32] }:$src1, sub_xmm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v4i1] }:$cc)), VK4:{ *:[i32] })
/* 54743*/        /*Scope*/ 89, /*->54833*/
/* 54744*/          OPC_RecordChild0, // #2 = $src1
/* 54745*/          OPC_CheckChild0Type, MVT::v4i64,
/* 54747*/          OPC_MoveChild1,
/* 54748*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 54751*/          OPC_RecordMemRef,
/* 54752*/          OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/* 54753*/          OPC_CheckFoldableChainNode,
/* 54754*/          OPC_RecordChild1, // #4 = $src2
/* 54755*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 54757*/          OPC_MoveParent,
/* 54758*/          OPC_MoveChild2,
/* 54759*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 54762*/          OPC_MoveParent,
/* 54763*/          OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 54765*/          OPC_MoveParent,
/* 54766*/          OPC_CheckType, MVT::v4i1,
/* 54768*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 54770*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 54773*/          OPC_EmitMergeInputChains, 1, 3, 
/* 54776*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 54779*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 0, 10,  // Results = #11
/* 54787*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #12
/* 54793*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 54796*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 12, 2, 13,  // Results = #14
/* 54805*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 54808*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPQZrmibk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 8/*#Ops*/, 11, 14, 5, 6, 7, 8, 9, 15,  // Results = #16
/* 54822*/          OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 54825*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                        MVT::v4i1, 2/*#Ops*/, 16, 17, 
                    // Src: (and:{ *:[v4i1] } VK4:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_su>><<X:X86pcmpm_imm>>:$cc) - Complexity = 29
                    // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPCMPQZrmibk:{ *:[v8i1] } (COPY_TO_REGCLASS:{ *:[v8i1] } VK4:{ *:[v4i1] }:$mask, VK8:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v4i1] }:$cc)), VK4:{ *:[i32] })
/* 54833*/        /*Scope*/ 87, /*->54921*/
/* 54834*/          OPC_MoveChild0,
/* 54835*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 54838*/          OPC_RecordMemRef,
/* 54839*/          OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/* 54840*/          OPC_CheckFoldableChainNode,
/* 54841*/          OPC_RecordChild1, // #3 = $src2
/* 54842*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 54844*/          OPC_CheckType, MVT::v4i64,
/* 54846*/          OPC_MoveParent,
/* 54847*/          OPC_RecordChild1, // #4 = $src1
/* 54848*/          OPC_MoveChild2,
/* 54849*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 54852*/          OPC_MoveParent,
/* 54853*/          OPC_CheckPredicate, 51, // Predicate_X86pcmpm_commute_su
/* 54855*/          OPC_MoveParent,
/* 54856*/          OPC_CheckType, MVT::v4i1,
/* 54858*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 54860*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 54863*/          OPC_EmitMergeInputChains1_2,
/* 54864*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 54867*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 0, 10,  // Results = #11
/* 54875*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #12
/* 54881*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 54884*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 12, 4, 13,  // Results = #14
/* 54893*/          OPC_EmitNodeXForm, 9, 1, // X86pcmpm_imm_commute
/* 54896*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPQZrmibk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 8/*#Ops*/, 11, 14, 5, 6, 7, 8, 9, 15,  // Results = #16
/* 54910*/          OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 54913*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                        MVT::v4i1, 2/*#Ops*/, 16, 17, 
                    // Src: (and:{ *:[v4i1] } VK4:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute_su>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 29
                    // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPCMPQZrmibk:{ *:[v8i1] } (COPY_TO_REGCLASS:{ *:[v8i1] } VK4:{ *:[v4i1] }:$mask, VK8:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v4i1] }:$cc)), VK4:{ *:[i32] })
/* 54921*/        /*Scope*/ 89, /*->55011*/
/* 54922*/          OPC_RecordChild0, // #2 = $src1
/* 54923*/          OPC_CheckChild0Type, MVT::v4i64,
/* 54925*/          OPC_MoveChild1,
/* 54926*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 54929*/          OPC_RecordMemRef,
/* 54930*/          OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/* 54931*/          OPC_CheckFoldableChainNode,
/* 54932*/          OPC_RecordChild1, // #4 = $src2
/* 54933*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 54935*/          OPC_MoveParent,
/* 54936*/          OPC_MoveChild2,
/* 54937*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 54940*/          OPC_MoveParent,
/* 54941*/          OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 54943*/          OPC_MoveParent,
/* 54944*/          OPC_CheckType, MVT::v4i1,
/* 54946*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 54948*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 54951*/          OPC_EmitMergeInputChains, 1, 3, 
/* 54954*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 54957*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 0, 10,  // Results = #11
/* 54965*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #12
/* 54971*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 54974*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 12, 2, 13,  // Results = #14
/* 54983*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 54986*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPUQZrmibk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 8/*#Ops*/, 11, 14, 5, 6, 7, 8, 9, 15,  // Results = #16
/* 55000*/          OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 55003*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                        MVT::v4i1, 2/*#Ops*/, 16, 17, 
                    // Src: (and:{ *:[v4i1] } VK4:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_su>><<X:X86pcmpm_imm>>:$cc) - Complexity = 29
                    // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPCMPUQZrmibk:{ *:[v8i1] } (COPY_TO_REGCLASS:{ *:[v8i1] } VK4:{ *:[v4i1] }:$mask, VK8:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v4i1] }:$cc)), VK4:{ *:[i32] })
/* 55011*/        /*Scope*/ 87, /*->55099*/
/* 55012*/          OPC_MoveChild0,
/* 55013*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 55016*/          OPC_RecordMemRef,
/* 55017*/          OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/* 55018*/          OPC_CheckFoldableChainNode,
/* 55019*/          OPC_RecordChild1, // #3 = $src2
/* 55020*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 55022*/          OPC_CheckType, MVT::v4i64,
/* 55024*/          OPC_MoveParent,
/* 55025*/          OPC_RecordChild1, // #4 = $src1
/* 55026*/          OPC_MoveChild2,
/* 55027*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 55030*/          OPC_MoveParent,
/* 55031*/          OPC_CheckPredicate, 52, // Predicate_X86pcmpum_commute_su
/* 55033*/          OPC_MoveParent,
/* 55034*/          OPC_CheckType, MVT::v4i1,
/* 55036*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 55038*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 55041*/          OPC_EmitMergeInputChains1_2,
/* 55042*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 55045*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 0, 10,  // Results = #11
/* 55053*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #12
/* 55059*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 55062*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 12, 4, 13,  // Results = #14
/* 55071*/          OPC_EmitNodeXForm, 9, 1, // X86pcmpm_imm_commute
/* 55074*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPUQZrmibk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 8/*#Ops*/, 11, 14, 5, 6, 7, 8, 9, 15,  // Results = #16
/* 55088*/          OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 55091*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                        MVT::v4i1, 2/*#Ops*/, 16, 17, 
                    // Src: (and:{ *:[v4i1] } VK4:{ *:[v4i1] }:$mask, (setcc:{ *:[v4i1] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute_su>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 29
                    // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPCMPUQZrmibk:{ *:[v8i1] } (COPY_TO_REGCLASS:{ *:[v8i1] } VK4:{ *:[v4i1] }:$mask, VK8:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v4i1] }:$cc)), VK4:{ *:[i32] })
/* 55099*/        /*Scope*/ 89, /*->55189*/
/* 55100*/          OPC_RecordChild0, // #2 = $src1
/* 55101*/          OPC_CheckChild0Type, MVT::v2i64,
/* 55103*/          OPC_MoveChild1,
/* 55104*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 55107*/          OPC_RecordMemRef,
/* 55108*/          OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/* 55109*/          OPC_CheckFoldableChainNode,
/* 55110*/          OPC_RecordChild1, // #4 = $src2
/* 55111*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 55113*/          OPC_MoveParent,
/* 55114*/          OPC_MoveChild2,
/* 55115*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 55118*/          OPC_MoveParent,
/* 55119*/          OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 55121*/          OPC_MoveParent,
/* 55122*/          OPC_CheckType, MVT::v2i1,
/* 55124*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 55126*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 55129*/          OPC_EmitMergeInputChains, 1, 3, 
/* 55132*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 55135*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 0, 10,  // Results = #11
/* 55143*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #12
/* 55149*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 55152*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 12, 2, 13,  // Results = #14
/* 55161*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 55164*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPQZrmibk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 8/*#Ops*/, 11, 14, 5, 6, 7, 8, 9, 15,  // Results = #16
/* 55178*/          OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/* 55181*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                        MVT::v2i1, 2/*#Ops*/, 16, 17, 
                    // Src: (and:{ *:[v2i1] } VK2:{ *:[v2i1] }:$mask, (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_su>><<X:X86pcmpm_imm>>:$cc) - Complexity = 29
                    // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (VPCMPQZrmibk:{ *:[v8i1] } (COPY_TO_REGCLASS:{ *:[v8i1] } VK2:{ *:[v2i1] }:$mask, VK8:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v2i1] }:$cc)), VK2:{ *:[i32] })
/* 55189*/        /*Scope*/ 87, /*->55277*/
/* 55190*/          OPC_MoveChild0,
/* 55191*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 55194*/          OPC_RecordMemRef,
/* 55195*/          OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/* 55196*/          OPC_CheckFoldableChainNode,
/* 55197*/          OPC_RecordChild1, // #3 = $src2
/* 55198*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 55200*/          OPC_CheckType, MVT::v2i64,
/* 55202*/          OPC_MoveParent,
/* 55203*/          OPC_RecordChild1, // #4 = $src1
/* 55204*/          OPC_MoveChild2,
/* 55205*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 55208*/          OPC_MoveParent,
/* 55209*/          OPC_CheckPredicate, 51, // Predicate_X86pcmpm_commute_su
/* 55211*/          OPC_MoveParent,
/* 55212*/          OPC_CheckType, MVT::v2i1,
/* 55214*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 55216*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 55219*/          OPC_EmitMergeInputChains1_2,
/* 55220*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 55223*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 0, 10,  // Results = #11
/* 55231*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #12
/* 55237*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 55240*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 12, 4, 13,  // Results = #14
/* 55249*/          OPC_EmitNodeXForm, 9, 1, // X86pcmpm_imm_commute
/* 55252*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPQZrmibk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 8/*#Ops*/, 11, 14, 5, 6, 7, 8, 9, 15,  // Results = #16
/* 55266*/          OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/* 55269*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                        MVT::v2i1, 2/*#Ops*/, 16, 17, 
                    // Src: (and:{ *:[v2i1] } VK2:{ *:[v2i1] }:$mask, (setcc:{ *:[v2i1] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute_su>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 29
                    // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (VPCMPQZrmibk:{ *:[v8i1] } (COPY_TO_REGCLASS:{ *:[v8i1] } VK2:{ *:[v2i1] }:$mask, VK8:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v2i1] }:$cc)), VK2:{ *:[i32] })
/* 55277*/        /*Scope*/ 89, /*->55367*/
/* 55278*/          OPC_RecordChild0, // #2 = $src1
/* 55279*/          OPC_CheckChild0Type, MVT::v2i64,
/* 55281*/          OPC_MoveChild1,
/* 55282*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 55285*/          OPC_RecordMemRef,
/* 55286*/          OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/* 55287*/          OPC_CheckFoldableChainNode,
/* 55288*/          OPC_RecordChild1, // #4 = $src2
/* 55289*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 55291*/          OPC_MoveParent,
/* 55292*/          OPC_MoveChild2,
/* 55293*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 55296*/          OPC_MoveParent,
/* 55297*/          OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 55299*/          OPC_MoveParent,
/* 55300*/          OPC_CheckType, MVT::v2i1,
/* 55302*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 55304*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 55307*/          OPC_EmitMergeInputChains, 1, 3, 
/* 55310*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 55313*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 0, 10,  // Results = #11
/* 55321*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #12
/* 55327*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 55330*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 12, 2, 13,  // Results = #14
/* 55339*/          OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 55342*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPUQZrmibk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 8/*#Ops*/, 11, 14, 5, 6, 7, 8, 9, 15,  // Results = #16
/* 55356*/          OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/* 55359*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                        MVT::v2i1, 2/*#Ops*/, 16, 17, 
                    // Src: (and:{ *:[v2i1] } VK2:{ *:[v2i1] }:$mask, (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_su>><<X:X86pcmpm_imm>>:$cc) - Complexity = 29
                    // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (VPCMPUQZrmibk:{ *:[v8i1] } (COPY_TO_REGCLASS:{ *:[v8i1] } VK2:{ *:[v2i1] }:$mask, VK8:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v2i1] }:$cc)), VK2:{ *:[i32] })
/* 55367*/        /*Scope*/ 87, /*->55455*/
/* 55368*/          OPC_MoveChild0,
/* 55369*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 55372*/          OPC_RecordMemRef,
/* 55373*/          OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/* 55374*/          OPC_CheckFoldableChainNode,
/* 55375*/          OPC_RecordChild1, // #3 = $src2
/* 55376*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 55378*/          OPC_CheckType, MVT::v2i64,
/* 55380*/          OPC_MoveParent,
/* 55381*/          OPC_RecordChild1, // #4 = $src1
/* 55382*/          OPC_MoveChild2,
/* 55383*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 55386*/          OPC_MoveParent,
/* 55387*/          OPC_CheckPredicate, 52, // Predicate_X86pcmpum_commute_su
/* 55389*/          OPC_MoveParent,
/* 55390*/          OPC_CheckType, MVT::v2i1,
/* 55392*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 55394*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 55397*/          OPC_EmitMergeInputChains1_2,
/* 55398*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 55401*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 0, 10,  // Results = #11
/* 55409*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #12
/* 55415*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 55418*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 12, 4, 13,  // Results = #14
/* 55427*/          OPC_EmitNodeXForm, 9, 1, // X86pcmpm_imm_commute
/* 55430*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPUQZrmibk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 8/*#Ops*/, 11, 14, 5, 6, 7, 8, 9, 15,  // Results = #16
/* 55444*/          OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/* 55447*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                        MVT::v2i1, 2/*#Ops*/, 16, 17, 
                    // Src: (and:{ *:[v2i1] } VK2:{ *:[v2i1] }:$mask, (setcc:{ *:[v2i1] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute_su>><<X:X86pcmpm_imm_commute>>:$cc) - Complexity = 29
                    // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (VPCMPUQZrmibk:{ *:[v8i1] } (COPY_TO_REGCLASS:{ *:[v8i1] } VK2:{ *:[v2i1] }:$mask, VK8:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v2i1] }:$cc)), VK2:{ *:[i32] })
/* 55455*/        0, /*End of Scope*/
/* 55456*/      /*Scope*/ 22|128,11/*1430*/, /*->56888*/
/* 55458*/        OPC_MoveChild0,
/* 55459*/        OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 55462*/        OPC_Scope, 88, /*->55552*/ // 16 children in Scope
/* 55464*/          OPC_RecordChild0, // #1 = $src1
/* 55465*/          OPC_CheckChild0Type, MVT::v8i32,
/* 55467*/          OPC_MoveChild1,
/* 55468*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 55471*/          OPC_RecordMemRef,
/* 55472*/          OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/* 55473*/          OPC_CheckFoldableChainNode,
/* 55474*/          OPC_RecordChild1, // #3 = $src2
/* 55475*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/* 55477*/          OPC_MoveParent,
/* 55478*/          OPC_MoveChild2,
/* 55479*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 55482*/          OPC_MoveParent,
/* 55483*/          OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 55485*/          OPC_MoveParent,
/* 55486*/          OPC_RecordChild1, // #4 = $mask
/* 55487*/          OPC_CheckType, MVT::v8i1,
/* 55489*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 55491*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 55494*/          OPC_EmitMergeInputChains1_2,
/* 55495*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 55498*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 4, 10,  // Results = #11
/* 55506*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #12
/* 55512*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 55515*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 12, 1, 13,  // Results = #14
/* 55524*/          OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 55527*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPDZrmibk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i1, 8/*#Ops*/, 11, 14, 5, 6, 7, 8, 9, 15,  // Results = #16
/* 55541*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 55544*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                        MVT::v8i1, 2/*#Ops*/, 16, 17, 
                    // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_su>><<X:X86pcmpm_imm>>:$cc, VK8:{ *:[v8i1] }:$mask) - Complexity = 29
                    // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VPCMPDZrmibk:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$mask, VK16:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v8i32] }:$src1, sub_ymm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v8i1] }:$cc)), VK8:{ *:[i32] })
/* 55552*/        /*Scope*/ 88, /*->55641*/
/* 55553*/          OPC_MoveChild0,
/* 55554*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 55557*/          OPC_RecordMemRef,
/* 55558*/          OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/* 55559*/          OPC_CheckFoldableChainNode,
/* 55560*/          OPC_RecordChild1, // #2 = $src2
/* 55561*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/* 55563*/          OPC_CheckType, MVT::v8i32,
/* 55565*/          OPC_MoveParent,
/* 55566*/          OPC_RecordChild1, // #3 = $src1
/* 55567*/          OPC_MoveChild2,
/* 55568*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 55571*/          OPC_MoveParent,
/* 55572*/          OPC_CheckPredicate, 51, // Predicate_X86pcmpm_commute_su
/* 55574*/          OPC_MoveParent,
/* 55575*/          OPC_RecordChild1, // #4 = $mask
/* 55576*/          OPC_CheckType, MVT::v8i1,
/* 55578*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 55580*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 55583*/          OPC_EmitMergeInputChains1_1,
/* 55584*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 55587*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 4, 10,  // Results = #11
/* 55595*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #12
/* 55601*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 55604*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 12, 3, 13,  // Results = #14
/* 55613*/          OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/* 55616*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPDZrmibk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i1, 8/*#Ops*/, 11, 14, 5, 6, 7, 8, 9, 15,  // Results = #16
/* 55630*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 55633*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                        MVT::v8i1, 2/*#Ops*/, 16, 17, 
                    // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute_su>><<X:X86pcmpm_imm_commute>>:$cc, VK8:{ *:[v8i1] }:$mask) - Complexity = 29
                    // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VPCMPDZrmibk:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$mask, VK16:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v8i32] }:$src1, sub_ymm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v8i1] }:$cc)), VK8:{ *:[i32] })
/* 55641*/        /*Scope*/ 88, /*->55730*/
/* 55642*/          OPC_RecordChild0, // #1 = $src1
/* 55643*/          OPC_CheckChild0Type, MVT::v8i32,
/* 55645*/          OPC_MoveChild1,
/* 55646*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 55649*/          OPC_RecordMemRef,
/* 55650*/          OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/* 55651*/          OPC_CheckFoldableChainNode,
/* 55652*/          OPC_RecordChild1, // #3 = $src2
/* 55653*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/* 55655*/          OPC_MoveParent,
/* 55656*/          OPC_MoveChild2,
/* 55657*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 55660*/          OPC_MoveParent,
/* 55661*/          OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 55663*/          OPC_MoveParent,
/* 55664*/          OPC_RecordChild1, // #4 = $mask
/* 55665*/          OPC_CheckType, MVT::v8i1,
/* 55667*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 55669*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 55672*/          OPC_EmitMergeInputChains1_2,
/* 55673*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 55676*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 4, 10,  // Results = #11
/* 55684*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #12
/* 55690*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 55693*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 12, 1, 13,  // Results = #14
/* 55702*/          OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 55705*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPUDZrmibk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i1, 8/*#Ops*/, 11, 14, 5, 6, 7, 8, 9, 15,  // Results = #16
/* 55719*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 55722*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                        MVT::v8i1, 2/*#Ops*/, 16, 17, 
                    // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_su>><<X:X86pcmpm_imm>>:$cc, VK8:{ *:[v8i1] }:$mask) - Complexity = 29
                    // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VPCMPUDZrmibk:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$mask, VK16:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v8i32] }:$src1, sub_ymm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v8i1] }:$cc)), VK8:{ *:[i32] })
/* 55730*/        /*Scope*/ 88, /*->55819*/
/* 55731*/          OPC_MoveChild0,
/* 55732*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 55735*/          OPC_RecordMemRef,
/* 55736*/          OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/* 55737*/          OPC_CheckFoldableChainNode,
/* 55738*/          OPC_RecordChild1, // #2 = $src2
/* 55739*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/* 55741*/          OPC_CheckType, MVT::v8i32,
/* 55743*/          OPC_MoveParent,
/* 55744*/          OPC_RecordChild1, // #3 = $src1
/* 55745*/          OPC_MoveChild2,
/* 55746*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 55749*/          OPC_MoveParent,
/* 55750*/          OPC_CheckPredicate, 52, // Predicate_X86pcmpum_commute_su
/* 55752*/          OPC_MoveParent,
/* 55753*/          OPC_RecordChild1, // #4 = $mask
/* 55754*/          OPC_CheckType, MVT::v8i1,
/* 55756*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 55758*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 55761*/          OPC_EmitMergeInputChains1_1,
/* 55762*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 55765*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 4, 10,  // Results = #11
/* 55773*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #12
/* 55779*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 55782*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 12, 3, 13,  // Results = #14
/* 55791*/          OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/* 55794*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPUDZrmibk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i1, 8/*#Ops*/, 11, 14, 5, 6, 7, 8, 9, 15,  // Results = #16
/* 55808*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 55811*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                        MVT::v8i1, 2/*#Ops*/, 16, 17, 
                    // Src: (and:{ *:[v8i1] } (setcc:{ *:[v8i1] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute_su>><<X:X86pcmpm_imm_commute>>:$cc, VK8:{ *:[v8i1] }:$mask) - Complexity = 29
                    // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VPCMPUDZrmibk:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$mask, VK16:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v8i32] }:$src1, sub_ymm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v8i1] }:$cc)), VK8:{ *:[i32] })
/* 55819*/        /*Scope*/ 88, /*->55908*/
/* 55820*/          OPC_RecordChild0, // #1 = $src1
/* 55821*/          OPC_CheckChild0Type, MVT::v4i32,
/* 55823*/          OPC_MoveChild1,
/* 55824*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 55827*/          OPC_RecordMemRef,
/* 55828*/          OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/* 55829*/          OPC_CheckFoldableChainNode,
/* 55830*/          OPC_RecordChild1, // #3 = $src2
/* 55831*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/* 55833*/          OPC_MoveParent,
/* 55834*/          OPC_MoveChild2,
/* 55835*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 55838*/          OPC_MoveParent,
/* 55839*/          OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 55841*/          OPC_MoveParent,
/* 55842*/          OPC_RecordChild1, // #4 = $mask
/* 55843*/          OPC_CheckType, MVT::v4i1,
/* 55845*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 55847*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 55850*/          OPC_EmitMergeInputChains1_2,
/* 55851*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 55854*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 4, 10,  // Results = #11
/* 55862*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #12
/* 55868*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 55871*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 12, 1, 13,  // Results = #14
/* 55880*/          OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 55883*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPDZrmibk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i1, 8/*#Ops*/, 11, 14, 5, 6, 7, 8, 9, 15,  // Results = #16
/* 55897*/          OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 55900*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                        MVT::v4i1, 2/*#Ops*/, 16, 17, 
                    // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_su>><<X:X86pcmpm_imm>>:$cc, VK4:{ *:[v4i1] }:$mask) - Complexity = 29
                    // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPCMPDZrmibk:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$mask, VK16:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v4i32] }:$src1, sub_xmm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v4i1] }:$cc)), VK4:{ *:[i32] })
/* 55908*/        /*Scope*/ 88, /*->55997*/
/* 55909*/          OPC_MoveChild0,
/* 55910*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 55913*/          OPC_RecordMemRef,
/* 55914*/          OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/* 55915*/          OPC_CheckFoldableChainNode,
/* 55916*/          OPC_RecordChild1, // #2 = $src2
/* 55917*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/* 55919*/          OPC_CheckType, MVT::v4i32,
/* 55921*/          OPC_MoveParent,
/* 55922*/          OPC_RecordChild1, // #3 = $src1
/* 55923*/          OPC_MoveChild2,
/* 55924*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 55927*/          OPC_MoveParent,
/* 55928*/          OPC_CheckPredicate, 51, // Predicate_X86pcmpm_commute_su
/* 55930*/          OPC_MoveParent,
/* 55931*/          OPC_RecordChild1, // #4 = $mask
/* 55932*/          OPC_CheckType, MVT::v4i1,
/* 55934*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 55936*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 55939*/          OPC_EmitMergeInputChains1_1,
/* 55940*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 55943*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 4, 10,  // Results = #11
/* 55951*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #12
/* 55957*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 55960*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 12, 3, 13,  // Results = #14
/* 55969*/          OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/* 55972*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPDZrmibk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i1, 8/*#Ops*/, 11, 14, 5, 6, 7, 8, 9, 15,  // Results = #16
/* 55986*/          OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 55989*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                        MVT::v4i1, 2/*#Ops*/, 16, 17, 
                    // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute_su>><<X:X86pcmpm_imm_commute>>:$cc, VK4:{ *:[v4i1] }:$mask) - Complexity = 29
                    // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPCMPDZrmibk:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$mask, VK16:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v4i32] }:$src1, sub_xmm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v4i1] }:$cc)), VK4:{ *:[i32] })
/* 55997*/        /*Scope*/ 88, /*->56086*/
/* 55998*/          OPC_RecordChild0, // #1 = $src1
/* 55999*/          OPC_CheckChild0Type, MVT::v4i32,
/* 56001*/          OPC_MoveChild1,
/* 56002*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 56005*/          OPC_RecordMemRef,
/* 56006*/          OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/* 56007*/          OPC_CheckFoldableChainNode,
/* 56008*/          OPC_RecordChild1, // #3 = $src2
/* 56009*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/* 56011*/          OPC_MoveParent,
/* 56012*/          OPC_MoveChild2,
/* 56013*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 56016*/          OPC_MoveParent,
/* 56017*/          OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 56019*/          OPC_MoveParent,
/* 56020*/          OPC_RecordChild1, // #4 = $mask
/* 56021*/          OPC_CheckType, MVT::v4i1,
/* 56023*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 56025*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 56028*/          OPC_EmitMergeInputChains1_2,
/* 56029*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 56032*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 4, 10,  // Results = #11
/* 56040*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #12
/* 56046*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 56049*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 12, 1, 13,  // Results = #14
/* 56058*/          OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 56061*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPUDZrmibk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i1, 8/*#Ops*/, 11, 14, 5, 6, 7, 8, 9, 15,  // Results = #16
/* 56075*/          OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 56078*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                        MVT::v4i1, 2/*#Ops*/, 16, 17, 
                    // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_su>><<X:X86pcmpm_imm>>:$cc, VK4:{ *:[v4i1] }:$mask) - Complexity = 29
                    // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPCMPUDZrmibk:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$mask, VK16:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v4i32] }:$src1, sub_xmm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v4i1] }:$cc)), VK4:{ *:[i32] })
/* 56086*/        /*Scope*/ 88, /*->56175*/
/* 56087*/          OPC_MoveChild0,
/* 56088*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 56091*/          OPC_RecordMemRef,
/* 56092*/          OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/* 56093*/          OPC_CheckFoldableChainNode,
/* 56094*/          OPC_RecordChild1, // #2 = $src2
/* 56095*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/* 56097*/          OPC_CheckType, MVT::v4i32,
/* 56099*/          OPC_MoveParent,
/* 56100*/          OPC_RecordChild1, // #3 = $src1
/* 56101*/          OPC_MoveChild2,
/* 56102*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 56105*/          OPC_MoveParent,
/* 56106*/          OPC_CheckPredicate, 52, // Predicate_X86pcmpum_commute_su
/* 56108*/          OPC_MoveParent,
/* 56109*/          OPC_RecordChild1, // #4 = $mask
/* 56110*/          OPC_CheckType, MVT::v4i1,
/* 56112*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 56114*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 56117*/          OPC_EmitMergeInputChains1_1,
/* 56118*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 56121*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 4, 10,  // Results = #11
/* 56129*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #12
/* 56135*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 56138*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 12, 3, 13,  // Results = #14
/* 56147*/          OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/* 56150*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPUDZrmibk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i1, 8/*#Ops*/, 11, 14, 5, 6, 7, 8, 9, 15,  // Results = #16
/* 56164*/          OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 56167*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                        MVT::v4i1, 2/*#Ops*/, 16, 17, 
                    // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute_su>><<X:X86pcmpm_imm_commute>>:$cc, VK4:{ *:[v4i1] }:$mask) - Complexity = 29
                    // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPCMPUDZrmibk:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$mask, VK16:{ *:[i32] }), (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v4i32] }:$src1, sub_xmm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v4i1] }:$cc)), VK4:{ *:[i32] })
/* 56175*/        /*Scope*/ 88, /*->56264*/
/* 56176*/          OPC_RecordChild0, // #1 = $src1
/* 56177*/          OPC_CheckChild0Type, MVT::v4i64,
/* 56179*/          OPC_MoveChild1,
/* 56180*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 56183*/          OPC_RecordMemRef,
/* 56184*/          OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/* 56185*/          OPC_CheckFoldableChainNode,
/* 56186*/          OPC_RecordChild1, // #3 = $src2
/* 56187*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 56189*/          OPC_MoveParent,
/* 56190*/          OPC_MoveChild2,
/* 56191*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 56194*/          OPC_MoveParent,
/* 56195*/          OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 56197*/          OPC_MoveParent,
/* 56198*/          OPC_RecordChild1, // #4 = $mask
/* 56199*/          OPC_CheckType, MVT::v4i1,
/* 56201*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 56203*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 56206*/          OPC_EmitMergeInputChains1_2,
/* 56207*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 56210*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 4, 10,  // Results = #11
/* 56218*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #12
/* 56224*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 56227*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 12, 1, 13,  // Results = #14
/* 56236*/          OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 56239*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPQZrmibk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 8/*#Ops*/, 11, 14, 5, 6, 7, 8, 9, 15,  // Results = #16
/* 56253*/          OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 56256*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                        MVT::v4i1, 2/*#Ops*/, 16, 17, 
                    // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_su>><<X:X86pcmpm_imm>>:$cc, VK4:{ *:[v4i1] }:$mask) - Complexity = 29
                    // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPCMPQZrmibk:{ *:[v8i1] } (COPY_TO_REGCLASS:{ *:[v8i1] } VK4:{ *:[v4i1] }:$mask, VK8:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v4i1] }:$cc)), VK4:{ *:[i32] })
/* 56264*/        /*Scope*/ 88, /*->56353*/
/* 56265*/          OPC_MoveChild0,
/* 56266*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 56269*/          OPC_RecordMemRef,
/* 56270*/          OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/* 56271*/          OPC_CheckFoldableChainNode,
/* 56272*/          OPC_RecordChild1, // #2 = $src2
/* 56273*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 56275*/          OPC_CheckType, MVT::v4i64,
/* 56277*/          OPC_MoveParent,
/* 56278*/          OPC_RecordChild1, // #3 = $src1
/* 56279*/          OPC_MoveChild2,
/* 56280*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 56283*/          OPC_MoveParent,
/* 56284*/          OPC_CheckPredicate, 51, // Predicate_X86pcmpm_commute_su
/* 56286*/          OPC_MoveParent,
/* 56287*/          OPC_RecordChild1, // #4 = $mask
/* 56288*/          OPC_CheckType, MVT::v4i1,
/* 56290*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 56292*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 56295*/          OPC_EmitMergeInputChains1_1,
/* 56296*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 56299*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 4, 10,  // Results = #11
/* 56307*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #12
/* 56313*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 56316*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 12, 3, 13,  // Results = #14
/* 56325*/          OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/* 56328*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPQZrmibk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 8/*#Ops*/, 11, 14, 5, 6, 7, 8, 9, 15,  // Results = #16
/* 56342*/          OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 56345*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                        MVT::v4i1, 2/*#Ops*/, 16, 17, 
                    // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute_su>><<X:X86pcmpm_imm_commute>>:$cc, VK4:{ *:[v4i1] }:$mask) - Complexity = 29
                    // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPCMPQZrmibk:{ *:[v8i1] } (COPY_TO_REGCLASS:{ *:[v8i1] } VK4:{ *:[v4i1] }:$mask, VK8:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v4i1] }:$cc)), VK4:{ *:[i32] })
/* 56353*/        /*Scope*/ 88, /*->56442*/
/* 56354*/          OPC_RecordChild0, // #1 = $src1
/* 56355*/          OPC_CheckChild0Type, MVT::v4i64,
/* 56357*/          OPC_MoveChild1,
/* 56358*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 56361*/          OPC_RecordMemRef,
/* 56362*/          OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/* 56363*/          OPC_CheckFoldableChainNode,
/* 56364*/          OPC_RecordChild1, // #3 = $src2
/* 56365*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 56367*/          OPC_MoveParent,
/* 56368*/          OPC_MoveChild2,
/* 56369*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 56372*/          OPC_MoveParent,
/* 56373*/          OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 56375*/          OPC_MoveParent,
/* 56376*/          OPC_RecordChild1, // #4 = $mask
/* 56377*/          OPC_CheckType, MVT::v4i1,
/* 56379*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 56381*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 56384*/          OPC_EmitMergeInputChains1_2,
/* 56385*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 56388*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 4, 10,  // Results = #11
/* 56396*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #12
/* 56402*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 56405*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 12, 1, 13,  // Results = #14
/* 56414*/          OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 56417*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPUQZrmibk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 8/*#Ops*/, 11, 14, 5, 6, 7, 8, 9, 15,  // Results = #16
/* 56431*/          OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 56434*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                        MVT::v4i1, 2/*#Ops*/, 16, 17, 
                    // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_su>><<X:X86pcmpm_imm>>:$cc, VK4:{ *:[v4i1] }:$mask) - Complexity = 29
                    // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPCMPUQZrmibk:{ *:[v8i1] } (COPY_TO_REGCLASS:{ *:[v8i1] } VK4:{ *:[v4i1] }:$mask, VK8:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v4i1] }:$cc)), VK4:{ *:[i32] })
/* 56442*/        /*Scope*/ 88, /*->56531*/
/* 56443*/          OPC_MoveChild0,
/* 56444*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 56447*/          OPC_RecordMemRef,
/* 56448*/          OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/* 56449*/          OPC_CheckFoldableChainNode,
/* 56450*/          OPC_RecordChild1, // #2 = $src2
/* 56451*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 56453*/          OPC_CheckType, MVT::v4i64,
/* 56455*/          OPC_MoveParent,
/* 56456*/          OPC_RecordChild1, // #3 = $src1
/* 56457*/          OPC_MoveChild2,
/* 56458*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 56461*/          OPC_MoveParent,
/* 56462*/          OPC_CheckPredicate, 52, // Predicate_X86pcmpum_commute_su
/* 56464*/          OPC_MoveParent,
/* 56465*/          OPC_RecordChild1, // #4 = $mask
/* 56466*/          OPC_CheckType, MVT::v4i1,
/* 56468*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 56470*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 56473*/          OPC_EmitMergeInputChains1_1,
/* 56474*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 56477*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 4, 10,  // Results = #11
/* 56485*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #12
/* 56491*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 56494*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 12, 3, 13,  // Results = #14
/* 56503*/          OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/* 56506*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPUQZrmibk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 8/*#Ops*/, 11, 14, 5, 6, 7, 8, 9, 15,  // Results = #16
/* 56520*/          OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 56523*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                        MVT::v4i1, 2/*#Ops*/, 16, 17, 
                    // Src: (and:{ *:[v4i1] } (setcc:{ *:[v4i1] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute_su>><<X:X86pcmpm_imm_commute>>:$cc, VK4:{ *:[v4i1] }:$mask) - Complexity = 29
                    // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPCMPUQZrmibk:{ *:[v8i1] } (COPY_TO_REGCLASS:{ *:[v8i1] } VK4:{ *:[v4i1] }:$mask, VK8:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v4i1] }:$cc)), VK4:{ *:[i32] })
/* 56531*/        /*Scope*/ 88, /*->56620*/
/* 56532*/          OPC_RecordChild0, // #1 = $src1
/* 56533*/          OPC_CheckChild0Type, MVT::v2i64,
/* 56535*/          OPC_MoveChild1,
/* 56536*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 56539*/          OPC_RecordMemRef,
/* 56540*/          OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/* 56541*/          OPC_CheckFoldableChainNode,
/* 56542*/          OPC_RecordChild1, // #3 = $src2
/* 56543*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 56545*/          OPC_MoveParent,
/* 56546*/          OPC_MoveChild2,
/* 56547*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 56550*/          OPC_MoveParent,
/* 56551*/          OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 56553*/          OPC_MoveParent,
/* 56554*/          OPC_RecordChild1, // #4 = $mask
/* 56555*/          OPC_CheckType, MVT::v2i1,
/* 56557*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 56559*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 56562*/          OPC_EmitMergeInputChains1_2,
/* 56563*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 56566*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 4, 10,  // Results = #11
/* 56574*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #12
/* 56580*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 56583*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 12, 1, 13,  // Results = #14
/* 56592*/          OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 56595*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPQZrmibk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 8/*#Ops*/, 11, 14, 5, 6, 7, 8, 9, 15,  // Results = #16
/* 56609*/          OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/* 56612*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                        MVT::v2i1, 2/*#Ops*/, 16, 17, 
                    // Src: (and:{ *:[v2i1] } (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_su>><<X:X86pcmpm_imm>>:$cc, VK2:{ *:[v2i1] }:$mask) - Complexity = 29
                    // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (VPCMPQZrmibk:{ *:[v8i1] } (COPY_TO_REGCLASS:{ *:[v8i1] } VK2:{ *:[v2i1] }:$mask, VK8:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v2i1] }:$cc)), VK2:{ *:[i32] })
/* 56620*/        /*Scope*/ 88, /*->56709*/
/* 56621*/          OPC_MoveChild0,
/* 56622*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 56625*/          OPC_RecordMemRef,
/* 56626*/          OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/* 56627*/          OPC_CheckFoldableChainNode,
/* 56628*/          OPC_RecordChild1, // #2 = $src2
/* 56629*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 56631*/          OPC_CheckType, MVT::v2i64,
/* 56633*/          OPC_MoveParent,
/* 56634*/          OPC_RecordChild1, // #3 = $src1
/* 56635*/          OPC_MoveChild2,
/* 56636*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 56639*/          OPC_MoveParent,
/* 56640*/          OPC_CheckPredicate, 51, // Predicate_X86pcmpm_commute_su
/* 56642*/          OPC_MoveParent,
/* 56643*/          OPC_RecordChild1, // #4 = $mask
/* 56644*/          OPC_CheckType, MVT::v2i1,
/* 56646*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 56648*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 56651*/          OPC_EmitMergeInputChains1_1,
/* 56652*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 56655*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 4, 10,  // Results = #11
/* 56663*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #12
/* 56669*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 56672*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 12, 3, 13,  // Results = #14
/* 56681*/          OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/* 56684*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPQZrmibk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 8/*#Ops*/, 11, 14, 5, 6, 7, 8, 9, 15,  // Results = #16
/* 56698*/          OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/* 56701*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                        MVT::v2i1, 2/*#Ops*/, 16, 17, 
                    // Src: (and:{ *:[v2i1] } (setcc:{ *:[v2i1] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute_su>><<X:X86pcmpm_imm_commute>>:$cc, VK2:{ *:[v2i1] }:$mask) - Complexity = 29
                    // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (VPCMPQZrmibk:{ *:[v8i1] } (COPY_TO_REGCLASS:{ *:[v8i1] } VK2:{ *:[v2i1] }:$mask, VK8:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v2i1] }:$cc)), VK2:{ *:[i32] })
/* 56709*/        /*Scope*/ 88, /*->56798*/
/* 56710*/          OPC_RecordChild0, // #1 = $src1
/* 56711*/          OPC_CheckChild0Type, MVT::v2i64,
/* 56713*/          OPC_MoveChild1,
/* 56714*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 56717*/          OPC_RecordMemRef,
/* 56718*/          OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/* 56719*/          OPC_CheckFoldableChainNode,
/* 56720*/          OPC_RecordChild1, // #3 = $src2
/* 56721*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 56723*/          OPC_MoveParent,
/* 56724*/          OPC_MoveChild2,
/* 56725*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 56728*/          OPC_MoveParent,
/* 56729*/          OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 56731*/          OPC_MoveParent,
/* 56732*/          OPC_RecordChild1, // #4 = $mask
/* 56733*/          OPC_CheckType, MVT::v2i1,
/* 56735*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 56737*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 56740*/          OPC_EmitMergeInputChains1_2,
/* 56741*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 56744*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 4, 10,  // Results = #11
/* 56752*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #12
/* 56758*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 56761*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 12, 1, 13,  // Results = #14
/* 56770*/          OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 56773*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPUQZrmibk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 8/*#Ops*/, 11, 14, 5, 6, 7, 8, 9, 15,  // Results = #16
/* 56787*/          OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/* 56790*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                        MVT::v2i1, 2/*#Ops*/, 16, 17, 
                    // Src: (and:{ *:[v2i1] } (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_su>><<X:X86pcmpm_imm>>:$cc, VK2:{ *:[v2i1] }:$mask) - Complexity = 29
                    // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (VPCMPUQZrmibk:{ *:[v8i1] } (COPY_TO_REGCLASS:{ *:[v8i1] } VK2:{ *:[v2i1] }:$mask, VK8:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v2i1] }:$cc)), VK2:{ *:[i32] })
/* 56798*/        /*Scope*/ 88, /*->56887*/
/* 56799*/          OPC_MoveChild0,
/* 56800*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 56803*/          OPC_RecordMemRef,
/* 56804*/          OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/* 56805*/          OPC_CheckFoldableChainNode,
/* 56806*/          OPC_RecordChild1, // #2 = $src2
/* 56807*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 56809*/          OPC_CheckType, MVT::v2i64,
/* 56811*/          OPC_MoveParent,
/* 56812*/          OPC_RecordChild1, // #3 = $src1
/* 56813*/          OPC_MoveChild2,
/* 56814*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 56817*/          OPC_MoveParent,
/* 56818*/          OPC_CheckPredicate, 52, // Predicate_X86pcmpum_commute_su
/* 56820*/          OPC_MoveParent,
/* 56821*/          OPC_RecordChild1, // #4 = $mask
/* 56822*/          OPC_CheckType, MVT::v2i1,
/* 56824*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 56826*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 56829*/          OPC_EmitMergeInputChains1_1,
/* 56830*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 56833*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 4, 10,  // Results = #11
/* 56841*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #12
/* 56847*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 56850*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 12, 3, 13,  // Results = #14
/* 56859*/          OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/* 56862*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPUQZrmibk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 8/*#Ops*/, 11, 14, 5, 6, 7, 8, 9, 15,  // Results = #16
/* 56876*/          OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/* 56879*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                        MVT::v2i1, 2/*#Ops*/, 16, 17, 
                    // Src: (and:{ *:[v2i1] } (setcc:{ *:[v2i1] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute_su>><<X:X86pcmpm_imm_commute>>:$cc, VK2:{ *:[v2i1] }:$mask) - Complexity = 29
                    // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (VPCMPUQZrmibk:{ *:[v8i1] } (COPY_TO_REGCLASS:{ *:[v8i1] } VK2:{ *:[v2i1] }:$mask, VK8:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v2i1] }:$cc)), VK2:{ *:[i32] })
/* 56887*/        0, /*End of Scope*/
/* 56888*/      /*Scope*/ 27|128,1/*155*/, /*->57045*/
/* 56890*/        OPC_MoveChild1,
/* 56891*/        OPC_SwitchOpcode /*2 cases */, 77, TARGET_VAL(X86ISD::FSETCCM),// ->56972
/* 56895*/          OPC_RecordChild0, // #1 = $src1
/* 56896*/          OPC_Scope, 36, /*->56934*/ // 2 children in Scope
/* 56898*/            OPC_CheckChild0Type, MVT::v4f32,
/* 56900*/            OPC_RecordChild1, // #2 = $src2
/* 56901*/            OPC_RecordChild2, // #3 = $cc
/* 56902*/            OPC_MoveChild2,
/* 56903*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 56906*/            OPC_MoveParent,
/* 56907*/            OPC_CheckPredicate, 17, // Predicate_X86cmpms_su
/* 56909*/            OPC_MoveParent,
/* 56910*/            OPC_CheckType, MVT::v1i1,
/* 56912*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 56914*/            OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/* 56917*/            OPC_EmitMergeInputChains, 1, 9, 
/* 56920*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPSSZrm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v1i1, 8/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 3, 
                      // Src: (and:{ *:[v1i1] } VK1WM:{ *:[v1i1] }:$mask, (X86cmpms:{ *:[v1i1] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpms_su>>) - Complexity = 28
                      // Dst: (VCMPSSZrm_Intk:{ *:[v1i1] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, (timm:{ *:[i8] }):$cc)
/* 56934*/          /*Scope*/ 36, /*->56971*/
/* 56935*/            OPC_CheckChild0Type, MVT::v2f64,
/* 56937*/            OPC_RecordChild1, // #2 = $src2
/* 56938*/            OPC_RecordChild2, // #3 = $cc
/* 56939*/            OPC_MoveChild2,
/* 56940*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 56943*/            OPC_MoveParent,
/* 56944*/            OPC_CheckPredicate, 17, // Predicate_X86cmpms_su
/* 56946*/            OPC_MoveParent,
/* 56947*/            OPC_CheckType, MVT::v1i1,
/* 56949*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 56951*/            OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/* 56954*/            OPC_EmitMergeInputChains, 1, 9, 
/* 56957*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPSDZrm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v1i1, 8/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 3, 
                      // Src: (and:{ *:[v1i1] } VK1WM:{ *:[v1i1] }:$mask, (X86cmpms:{ *:[v1i1] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpms_su>>) - Complexity = 28
                      // Dst: (VCMPSDZrm_Intk:{ *:[v1i1] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, (timm:{ *:[i8] }):$cc)
/* 56971*/          0, /*End of Scope*/
/* 56972*/        /*SwitchOpcode*/ 69, TARGET_VAL(X86ISD::VFPCLASSS),// ->57044
/* 56975*/          OPC_RecordChild0, // #1 = $src1
/* 56976*/          OPC_Scope, 32, /*->57010*/ // 2 children in Scope
/* 56978*/            OPC_CheckChild0Type, MVT::v4f32,
/* 56980*/            OPC_RecordChild1, // #2 = $src2
/* 56981*/            OPC_MoveChild1,
/* 56982*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 56985*/            OPC_MoveParent,
/* 56986*/            OPC_CheckPredicate, 17, // Predicate_X86Vfpclasss_su
/* 56988*/            OPC_MoveParent,
/* 56989*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/* 56991*/            OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectScalarSSELoad:$src1 #3 #4 #5 #6 #7 + chain result
/* 56994*/            OPC_EmitMergeInputChains, 1, 8, 
/* 56997*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSSSZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v1i1, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 2, 
                      // Src: (and:{ *:[v1i1] } VK1WM:{ *:[v1i1] }:$mask, (X86Vfpclasss:{ *:[v1i1] } sse_load_f32:{ *:[v4f32] }:$src1, (timm:{ *:[i32] }):$src2)<<P:Predicate_X86Vfpclasss_su>>) - Complexity = 28
                      // Dst: (VFPCLASSSSZrmk:{ *:[v1i1] } VK1WM:{ *:[v1i1] }:$mask, sse_load_f32:{ *:[v4f32] }:$src1, (timm:{ *:[i32] }):$src2)
/* 57010*/          /*Scope*/ 32, /*->57043*/
/* 57011*/            OPC_CheckChild0Type, MVT::v2f64,
/* 57013*/            OPC_RecordChild1, // #2 = $src2
/* 57014*/            OPC_MoveChild1,
/* 57015*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 57018*/            OPC_MoveParent,
/* 57019*/            OPC_CheckPredicate, 17, // Predicate_X86Vfpclasss_su
/* 57021*/            OPC_MoveParent,
/* 57022*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/* 57024*/            OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src1 #3 #4 #5 #6 #7 + chain result
/* 57027*/            OPC_EmitMergeInputChains, 1, 8, 
/* 57030*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSSDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v1i1, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 2, 
                      // Src: (and:{ *:[v1i1] } VK1WM:{ *:[v1i1] }:$mask, (X86Vfpclasss:{ *:[v1i1] } sse_load_f64:{ *:[v2f64] }:$src1, (timm:{ *:[i32] }):$src2)<<P:Predicate_X86Vfpclasss_su>>) - Complexity = 28
                      // Dst: (VFPCLASSSDZrmk:{ *:[v1i1] } VK1WM:{ *:[v1i1] }:$mask, sse_load_f64:{ *:[v2f64] }:$src1, (timm:{ *:[i32] }):$src2)
/* 57043*/          0, /*End of Scope*/
/* 57044*/        0, // EndSwitchOpcode
/* 57045*/      0, /*End of Scope*/
/* 57046*/    /*Scope*/ 31|128,1/*159*/, /*->57207*/
/* 57048*/      OPC_MoveChild0,
/* 57049*/      OPC_SwitchOpcode /*2 cases */, 79, TARGET_VAL(X86ISD::FSETCCM),// ->57132
/* 57053*/        OPC_RecordChild0, // #0 = $src1
/* 57054*/        OPC_Scope, 37, /*->57093*/ // 2 children in Scope
/* 57056*/          OPC_CheckChild0Type, MVT::v4f32,
/* 57058*/          OPC_RecordChild1, // #1 = $src2
/* 57059*/          OPC_RecordChild2, // #2 = $cc
/* 57060*/          OPC_MoveChild2,
/* 57061*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 57064*/          OPC_MoveParent,
/* 57065*/          OPC_CheckPredicate, 17, // Predicate_X86cmpms_su
/* 57067*/          OPC_MoveParent,
/* 57068*/          OPC_RecordChild1, // #3 = $mask
/* 57069*/          OPC_CheckType, MVT::v1i1,
/* 57071*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 57073*/          OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/* 57076*/          OPC_EmitMergeInputChains, 1, 9, 
/* 57079*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPSSZrm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v1i1, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 2, 
                    // Src: (and:{ *:[v1i1] } (X86cmpms:{ *:[v1i1] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpms_su>>, VK1WM:{ *:[v1i1] }:$mask) - Complexity = 28
                    // Dst: (VCMPSSZrm_Intk:{ *:[v1i1] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, (timm:{ *:[i8] }):$cc)
/* 57093*/        /*Scope*/ 37, /*->57131*/
/* 57094*/          OPC_CheckChild0Type, MVT::v2f64,
/* 57096*/          OPC_RecordChild1, // #1 = $src2
/* 57097*/          OPC_RecordChild2, // #2 = $cc
/* 57098*/          OPC_MoveChild2,
/* 57099*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 57102*/          OPC_MoveParent,
/* 57103*/          OPC_CheckPredicate, 17, // Predicate_X86cmpms_su
/* 57105*/          OPC_MoveParent,
/* 57106*/          OPC_RecordChild1, // #3 = $mask
/* 57107*/          OPC_CheckType, MVT::v1i1,
/* 57109*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 57111*/          OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/* 57114*/          OPC_EmitMergeInputChains, 1, 9, 
/* 57117*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPSDZrm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v1i1, 8/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 2, 
                    // Src: (and:{ *:[v1i1] } (X86cmpms:{ *:[v1i1] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpms_su>>, VK1WM:{ *:[v1i1] }:$mask) - Complexity = 28
                    // Dst: (VCMPSDZrm_Intk:{ *:[v1i1] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, (timm:{ *:[i8] }):$cc)
/* 57131*/        0, /*End of Scope*/
/* 57132*/      /*SwitchOpcode*/ 71, TARGET_VAL(X86ISD::VFPCLASSS),// ->57206
/* 57135*/        OPC_RecordChild0, // #0 = $src1
/* 57136*/        OPC_Scope, 33, /*->57171*/ // 2 children in Scope
/* 57138*/          OPC_CheckChild0Type, MVT::v4f32,
/* 57140*/          OPC_RecordChild1, // #1 = $src2
/* 57141*/          OPC_MoveChild1,
/* 57142*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 57145*/          OPC_MoveParent,
/* 57146*/          OPC_CheckPredicate, 17, // Predicate_X86Vfpclasss_su
/* 57148*/          OPC_MoveParent,
/* 57149*/          OPC_RecordChild1, // #2 = $mask
/* 57150*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/* 57152*/          OPC_CheckComplexPat, /*CP*/2, /*#*/0, // selectScalarSSELoad:$src1 #3 #4 #5 #6 #7 + chain result
/* 57155*/          OPC_EmitMergeInputChains, 1, 8, 
/* 57158*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSSSZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v1i1, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 1, 
                    // Src: (and:{ *:[v1i1] } (X86Vfpclasss:{ *:[v1i1] } sse_load_f32:{ *:[v4f32] }:$src1, (timm:{ *:[i32] }):$src2)<<P:Predicate_X86Vfpclasss_su>>, VK1WM:{ *:[v1i1] }:$mask) - Complexity = 28
                    // Dst: (VFPCLASSSSZrmk:{ *:[v1i1] } VK1WM:{ *:[v1i1] }:$mask, sse_load_f32:{ *:[v4f32] }:$src1, (timm:{ *:[i32] }):$src2)
/* 57171*/        /*Scope*/ 33, /*->57205*/
/* 57172*/          OPC_CheckChild0Type, MVT::v2f64,
/* 57174*/          OPC_RecordChild1, // #1 = $src2
/* 57175*/          OPC_MoveChild1,
/* 57176*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 57179*/          OPC_MoveParent,
/* 57180*/          OPC_CheckPredicate, 17, // Predicate_X86Vfpclasss_su
/* 57182*/          OPC_MoveParent,
/* 57183*/          OPC_RecordChild1, // #2 = $mask
/* 57184*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/* 57186*/          OPC_CheckComplexPat, /*CP*/3, /*#*/0, // selectScalarSSELoad:$src1 #3 #4 #5 #6 #7 + chain result
/* 57189*/          OPC_EmitMergeInputChains, 1, 8, 
/* 57192*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSSDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v1i1, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 1, 
                    // Src: (and:{ *:[v1i1] } (X86Vfpclasss:{ *:[v1i1] } sse_load_f64:{ *:[v2f64] }:$src1, (timm:{ *:[i32] }):$src2)<<P:Predicate_X86Vfpclasss_su>>, VK1WM:{ *:[v1i1] }:$mask) - Complexity = 28
                    // Dst: (VFPCLASSSDZrmk:{ *:[v1i1] } VK1WM:{ *:[v1i1] }:$mask, sse_load_f64:{ *:[v2f64] }:$src1, (timm:{ *:[i32] }):$src2)
/* 57205*/        0, /*End of Scope*/
/* 57206*/      0, // EndSwitchOpcode
/* 57207*/    /*Scope*/ 110|128,5/*750*/, /*->57959*/
/* 57209*/      OPC_RecordChild0, // #0 = $src1
/* 57210*/      OPC_MoveChild1,
/* 57211*/      OPC_SwitchOpcode /*2 cases */, 88|128,4/*600*/, TARGET_VAL(ISD::LOAD),// ->57816
/* 57216*/        OPC_RecordMemRef,
/* 57217*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 57218*/        OPC_CheckFoldableChainNode,
/* 57219*/        OPC_RecordChild1, // #2 = $src2
/* 57220*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 57222*/        OPC_CheckPredicate, 9, // Predicate_load
/* 57224*/        OPC_Scope, 21, /*->57247*/ // 5 children in Scope
/* 57226*/          OPC_MoveParent,
/* 57227*/          OPC_CheckType, MVT::v2i64,
/* 57229*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 57231*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 57234*/          OPC_EmitMergeInputChains1_1,
/* 57235*/          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>>) - Complexity = 25
                    // Dst: (VPANDrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 57247*/        /*Scope*/ 23, /*->57271*/
/* 57248*/          OPC_CheckPredicate, 39, // Predicate_memop
/* 57250*/          OPC_MoveParent,
/* 57251*/          OPC_CheckType, MVT::v2i64,
/* 57253*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 57255*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 57258*/          OPC_EmitMergeInputChains1_1,
/* 57259*/          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_memop>>) - Complexity = 25
                    // Dst: (PANDrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 57271*/        /*Scope*/ 103|128,1/*231*/, /*->57504*/
/* 57273*/          OPC_MoveParent,
/* 57274*/          OPC_SwitchType /*7 cases */, 40, MVT::v4i64,// ->57317
/* 57277*/            OPC_Scope, 18, /*->57297*/ // 2 children in Scope
/* 57279*/              OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/* 57281*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 57284*/              OPC_EmitMergeInputChains1_1,
/* 57285*/              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>>) - Complexity = 25
                        // Dst: (VPANDYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 57297*/            /*Scope*/ 18, /*->57316*/
/* 57298*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/* 57300*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 57303*/              OPC_EmitMergeInputChains1_1,
/* 57304*/              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>>) - Complexity = 25
                        // Dst: (VANDPSYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 57316*/            0, /*End of Scope*/
/* 57317*/          /*SwitchType*/ 40, MVT::v32i8,// ->57359
/* 57319*/            OPC_Scope, 18, /*->57339*/ // 2 children in Scope
/* 57321*/              OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/* 57323*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 57326*/              OPC_EmitMergeInputChains1_1,
/* 57327*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (and:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VPANDYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 57339*/            /*Scope*/ 18, /*->57358*/
/* 57340*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/* 57342*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 57345*/              OPC_EmitMergeInputChains1_1,
/* 57346*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VANDPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (and:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VANDPSYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 57358*/            0, /*End of Scope*/
/* 57359*/          /*SwitchType*/ 40, MVT::v16i16,// ->57401
/* 57361*/            OPC_Scope, 18, /*->57381*/ // 2 children in Scope
/* 57363*/              OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/* 57365*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 57368*/              OPC_EmitMergeInputChains1_1,
/* 57369*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (and:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VPANDYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 57381*/            /*Scope*/ 18, /*->57400*/
/* 57382*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/* 57384*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 57387*/              OPC_EmitMergeInputChains1_1,
/* 57388*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VANDPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (and:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VANDPSYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 57400*/            0, /*End of Scope*/
/* 57401*/          /*SwitchType*/ 40, MVT::v8i32,// ->57443
/* 57403*/            OPC_Scope, 18, /*->57423*/ // 2 children in Scope
/* 57405*/              OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/* 57407*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 57410*/              OPC_EmitMergeInputChains1_1,
/* 57411*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (and:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VPANDYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 57423*/            /*Scope*/ 18, /*->57442*/
/* 57424*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/* 57426*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 57429*/              OPC_EmitMergeInputChains1_1,
/* 57430*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VANDPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (and:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VANDPSYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 57442*/            0, /*End of Scope*/
/* 57443*/          /*SwitchType*/ 18, MVT::v16i8,// ->57463
/* 57445*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 57447*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 57450*/            OPC_EmitMergeInputChains1_1,
/* 57451*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (and:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPANDrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 57463*/          /*SwitchType*/ 18, MVT::v8i16,// ->57483
/* 57465*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 57467*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 57470*/            OPC_EmitMergeInputChains1_1,
/* 57471*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (and:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPANDrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 57483*/          /*SwitchType*/ 18, MVT::v4i32,// ->57503
/* 57485*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 57487*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 57490*/            OPC_EmitMergeInputChains1_1,
/* 57491*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (and:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPANDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 57503*/          0, // EndSwitchType
/* 57504*/        /*Scope*/ 65, /*->57570*/
/* 57505*/          OPC_CheckPredicate, 39, // Predicate_memop
/* 57507*/          OPC_MoveParent,
/* 57508*/          OPC_SwitchType /*3 cases */, 18, MVT::v16i8,// ->57529
/* 57511*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 57513*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 57516*/            OPC_EmitMergeInputChains1_1,
/* 57517*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PANDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (and:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                      // Dst: (PANDrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 57529*/          /*SwitchType*/ 18, MVT::v8i16,// ->57549
/* 57531*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 57533*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 57536*/            OPC_EmitMergeInputChains1_1,
/* 57537*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PANDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (and:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                      // Dst: (PANDrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 57549*/          /*SwitchType*/ 18, MVT::v4i32,// ->57569
/* 57551*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 57553*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 57556*/            OPC_EmitMergeInputChains1_1,
/* 57557*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PANDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (and:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                      // Dst: (PANDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 57569*/          0, // EndSwitchType
/* 57570*/        /*Scope*/ 115|128,1/*243*/, /*->57815*/
/* 57572*/          OPC_MoveParent,
/* 57573*/          OPC_SwitchType /*12 cases */, 18, MVT::v8i64,// ->57594
/* 57576*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 57578*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 57581*/            OPC_EmitMergeInputChains1_1,
/* 57582*/            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>>) - Complexity = 25
                      // Dst: (VPANDQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 57594*/          /*SwitchType*/ 18, MVT::v4i64,// ->57614
/* 57596*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 57598*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 57601*/            OPC_EmitMergeInputChains1_1,
/* 57602*/            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>>) - Complexity = 25
                      // Dst: (VPANDQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 57614*/          /*SwitchType*/ 18, MVT::v2i64,// ->57634
/* 57616*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 57618*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 57621*/            OPC_EmitMergeInputChains1_1,
/* 57622*/            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>>) - Complexity = 25
                      // Dst: (VPANDQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 57634*/          /*SwitchType*/ 18, MVT::v16i32,// ->57654
/* 57636*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 57638*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 57641*/            OPC_EmitMergeInputChains1_1,
/* 57642*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (and:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPANDDZrm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 57654*/          /*SwitchType*/ 18, MVT::v8i32,// ->57674
/* 57656*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 57658*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 57661*/            OPC_EmitMergeInputChains1_1,
/* 57662*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (and:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPANDDZ256rm:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 57674*/          /*SwitchType*/ 18, MVT::v4i32,// ->57694
/* 57676*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 57678*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 57681*/            OPC_EmitMergeInputChains1_1,
/* 57682*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (and:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPANDDZ128rm:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 57694*/          /*SwitchType*/ 18, MVT::v16i8,// ->57714
/* 57696*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 57698*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 57701*/            OPC_EmitMergeInputChains1_1,
/* 57702*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (and:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPANDQZ128rm:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 57714*/          /*SwitchType*/ 18, MVT::v8i16,// ->57734
/* 57716*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 57718*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 57721*/            OPC_EmitMergeInputChains1_1,
/* 57722*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (and:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPANDQZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 57734*/          /*SwitchType*/ 18, MVT::v32i8,// ->57754
/* 57736*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 57738*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 57741*/            OPC_EmitMergeInputChains1_1,
/* 57742*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (and:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPANDQZ256rm:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 57754*/          /*SwitchType*/ 18, MVT::v16i16,// ->57774
/* 57756*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 57758*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 57761*/            OPC_EmitMergeInputChains1_1,
/* 57762*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (and:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPANDQZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 57774*/          /*SwitchType*/ 18, MVT::v64i8,// ->57794
/* 57776*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 57778*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 57781*/            OPC_EmitMergeInputChains1_1,
/* 57782*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (and:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPANDQZrm:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 57794*/          /*SwitchType*/ 18, MVT::v32i16,// ->57814
/* 57796*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 57798*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 57801*/            OPC_EmitMergeInputChains1_1,
/* 57802*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (and:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPANDQZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 57814*/          0, // EndSwitchType
/* 57815*/        0, /*End of Scope*/
/* 57816*/      /*SwitchOpcode*/ 10|128,1/*138*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->57958
/* 57820*/        OPC_RecordMemRef,
/* 57821*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/* 57822*/        OPC_CheckFoldableChainNode,
/* 57823*/        OPC_RecordChild1, // #2 = $src2
/* 57824*/        OPC_Scope, 65, /*->57891*/ // 2 children in Scope
/* 57826*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 57828*/          OPC_MoveParent,
/* 57829*/          OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->57850
/* 57832*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 57834*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 57837*/            OPC_EmitMergeInputChains1_1,
/* 57838*/            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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPANDQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 57850*/          /*SwitchType*/ 18, MVT::v4i64,// ->57870
/* 57852*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 57854*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 57857*/            OPC_EmitMergeInputChains1_1,
/* 57858*/            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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPANDQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 57870*/          /*SwitchType*/ 18, MVT::v2i64,// ->57890
/* 57872*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 57874*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 57877*/            OPC_EmitMergeInputChains1_1,
/* 57878*/            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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPANDQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 57890*/          0, // EndSwitchType
/* 57891*/        /*Scope*/ 65, /*->57957*/
/* 57892*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/* 57894*/          OPC_MoveParent,
/* 57895*/          OPC_SwitchType /*3 cases */, 18, MVT::v16i32,// ->57916
/* 57898*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 57900*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 57903*/            OPC_EmitMergeInputChains1_1,
/* 57904*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (and:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPANDDZrmb:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 57916*/          /*SwitchType*/ 18, MVT::v8i32,// ->57936
/* 57918*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 57920*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 57923*/            OPC_EmitMergeInputChains1_1,
/* 57924*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (and:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPANDDZ256rmb:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 57936*/          /*SwitchType*/ 18, MVT::v4i32,// ->57956
/* 57938*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 57940*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 57943*/            OPC_EmitMergeInputChains1_1,
/* 57944*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (and:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPANDDZ128rmb:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 57956*/          0, // EndSwitchType
/* 57957*/        0, /*End of Scope*/
/* 57958*/      0, // EndSwitchOpcode
/* 57959*/    /*Scope*/ 47|128,6/*815*/, /*->58776*/
/* 57961*/      OPC_MoveChild0,
/* 57962*/      OPC_SwitchOpcode /*3 cases */, 92|128,4/*604*/, TARGET_VAL(ISD::LOAD),// ->58571
/* 57967*/        OPC_RecordMemRef,
/* 57968*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 57969*/        OPC_CheckFoldableChainNode,
/* 57970*/        OPC_RecordChild1, // #1 = $src2
/* 57971*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 57973*/        OPC_CheckPredicate, 9, // Predicate_load
/* 57975*/        OPC_Scope, 22, /*->57999*/ // 5 children in Scope
/* 57977*/          OPC_MoveParent,
/* 57978*/          OPC_RecordChild1, // #2 = $src1
/* 57979*/          OPC_CheckType, MVT::v2i64,
/* 57981*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 57983*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 57986*/          OPC_EmitMergeInputChains1_0,
/* 57987*/          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>>, VR128:{ *:[v2i64] }:$src1) - Complexity = 25
                    // Dst: (VPANDrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 57999*/        /*Scope*/ 24, /*->58024*/
/* 58000*/          OPC_CheckPredicate, 39, // Predicate_memop
/* 58002*/          OPC_MoveParent,
/* 58003*/          OPC_RecordChild1, // #2 = $src1
/* 58004*/          OPC_CheckType, MVT::v2i64,
/* 58006*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 58008*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 58011*/          OPC_EmitMergeInputChains1_0,
/* 58012*/          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_memop>>, VR128:{ *:[v2i64] }:$src1) - Complexity = 25
                    // Dst: (PANDrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 58024*/        /*Scope*/ 96|128,2/*352*/, /*->58378*/
/* 58026*/          OPC_MoveParent,
/* 58027*/          OPC_RecordChild1, // #2 = $src1
/* 58028*/          OPC_SwitchType /*10 cases */, 59, MVT::v4i64,// ->58090
/* 58031*/            OPC_Scope, 18, /*->58051*/ // 3 children in Scope
/* 58033*/              OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/* 58035*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 58038*/              OPC_EmitMergeInputChains1_0,
/* 58039*/              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>>, VR256:{ *:[v4i64] }:$src1) - Complexity = 25
                        // Dst: (VPANDYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 58051*/            /*Scope*/ 18, /*->58070*/
/* 58052*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 58054*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 58057*/              OPC_EmitMergeInputChains1_0,
/* 58058*/              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>>, VR256X:{ *:[v4i64] }:$src1) - Complexity = 25
                        // Dst: (VPANDQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 58070*/            /*Scope*/ 18, /*->58089*/
/* 58071*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/* 58073*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 58076*/              OPC_EmitMergeInputChains1_0,
/* 58077*/              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>>, VR256:{ *:[v4i64] }:$src1) - Complexity = 25
                        // Dst: (VANDPSYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 58089*/            0, /*End of Scope*/
/* 58090*/          /*SwitchType*/ 18, MVT::v8i64,// ->58110
/* 58092*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 58094*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 58097*/            OPC_EmitMergeInputChains1_0,
/* 58098*/            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>>, VR512:{ *:[v8i64] }:$src1) - Complexity = 25
                      // Dst: (VPANDQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 58110*/          /*SwitchType*/ 18, MVT::v2i64,// ->58130
/* 58112*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 58114*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 58117*/            OPC_EmitMergeInputChains1_0,
/* 58118*/            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>>, VR128X:{ *:[v2i64] }:$src1) - Complexity = 25
                      // Dst: (VPANDQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 58130*/          /*SwitchType*/ 18, MVT::v16i32,// ->58150
/* 58132*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 58134*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 58137*/            OPC_EmitMergeInputChains1_0,
/* 58138*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (and:{ *:[v16i32] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16i32] }:$src1) - Complexity = 25
                      // Dst: (VPANDDZrm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 58150*/          /*SwitchType*/ 59, MVT::v8i32,// ->58211
/* 58152*/            OPC_Scope, 18, /*->58172*/ // 3 children in Scope
/* 58154*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 58156*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 58159*/              OPC_EmitMergeInputChains1_0,
/* 58160*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (and:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8i32] }:$src1) - Complexity = 25
                        // Dst: (VPANDDZ256rm:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 58172*/            /*Scope*/ 18, /*->58191*/
/* 58173*/              OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/* 58175*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 58178*/              OPC_EmitMergeInputChains1_0,
/* 58179*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (and:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v8i32] }:$src1) - Complexity = 25
                        // Dst: (VPANDYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 58191*/            /*Scope*/ 18, /*->58210*/
/* 58192*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/* 58194*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 58197*/              OPC_EmitMergeInputChains1_0,
/* 58198*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VANDPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (and:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v8i32] }:$src1) - Complexity = 25
                        // Dst: (VANDPSYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 58210*/            0, /*End of Scope*/
/* 58211*/          /*SwitchType*/ 40, MVT::v4i32,// ->58253
/* 58213*/            OPC_Scope, 18, /*->58233*/ // 2 children in Scope
/* 58215*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 58217*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 58220*/              OPC_EmitMergeInputChains1_0,
/* 58221*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (and:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4i32] }:$src1) - Complexity = 25
                        // Dst: (VPANDDZ128rm:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 58233*/            /*Scope*/ 18, /*->58252*/
/* 58234*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 58236*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 58239*/              OPC_EmitMergeInputChains1_0,
/* 58240*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (and:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v4i32] }:$src1) - Complexity = 25
                        // Dst: (VPANDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 58252*/            0, /*End of Scope*/
/* 58253*/          /*SwitchType*/ 40, MVT::v32i8,// ->58295
/* 58255*/            OPC_Scope, 18, /*->58275*/ // 2 children in Scope
/* 58257*/              OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/* 58259*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 58262*/              OPC_EmitMergeInputChains1_0,
/* 58263*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (and:{ *:[v32i8] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v32i8] }:$src1) - Complexity = 25
                        // Dst: (VPANDYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 58275*/            /*Scope*/ 18, /*->58294*/
/* 58276*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/* 58278*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 58281*/              OPC_EmitMergeInputChains1_0,
/* 58282*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VANDPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (and:{ *:[v32i8] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v32i8] }:$src1) - Complexity = 25
                        // Dst: (VANDPSYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 58294*/            0, /*End of Scope*/
/* 58295*/          /*SwitchType*/ 40, MVT::v16i16,// ->58337
/* 58297*/            OPC_Scope, 18, /*->58317*/ // 2 children in Scope
/* 58299*/              OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/* 58301*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 58304*/              OPC_EmitMergeInputChains1_0,
/* 58305*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (and:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v16i16] }:$src1) - Complexity = 25
                        // Dst: (VPANDYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 58317*/            /*Scope*/ 18, /*->58336*/
/* 58318*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/* 58320*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 58323*/              OPC_EmitMergeInputChains1_0,
/* 58324*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VANDPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (and:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v16i16] }:$src1) - Complexity = 25
                        // Dst: (VANDPSYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 58336*/            0, /*End of Scope*/
/* 58337*/          /*SwitchType*/ 18, MVT::v16i8,// ->58357
/* 58339*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 58341*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 58344*/            OPC_EmitMergeInputChains1_0,
/* 58345*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (and:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v16i8] }:$src1) - Complexity = 25
                      // Dst: (VPANDrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 58357*/          /*SwitchType*/ 18, MVT::v8i16,// ->58377
/* 58359*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 58361*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 58364*/            OPC_EmitMergeInputChains1_0,
/* 58365*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (and:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v8i16] }:$src1) - Complexity = 25
                      // Dst: (VPANDrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 58377*/          0, // EndSwitchType
/* 58378*/        /*Scope*/ 66, /*->58445*/
/* 58379*/          OPC_CheckPredicate, 39, // Predicate_memop
/* 58381*/          OPC_MoveParent,
/* 58382*/          OPC_RecordChild1, // #2 = $src1
/* 58383*/          OPC_SwitchType /*3 cases */, 18, MVT::v16i8,// ->58404
/* 58386*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 58388*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 58391*/            OPC_EmitMergeInputChains1_0,
/* 58392*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PANDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (and:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:{ *:[v16i8] }:$src1) - Complexity = 25
                      // Dst: (PANDrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 58404*/          /*SwitchType*/ 18, MVT::v8i16,// ->58424
/* 58406*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 58408*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 58411*/            OPC_EmitMergeInputChains1_0,
/* 58412*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PANDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (and:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:{ *:[v8i16] }:$src1) - Complexity = 25
                      // Dst: (PANDrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 58424*/          /*SwitchType*/ 18, MVT::v4i32,// ->58444
/* 58426*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 58428*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 58431*/            OPC_EmitMergeInputChains1_0,
/* 58432*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PANDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (and:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:{ *:[v4i32] }:$src1) - Complexity = 25
                      // Dst: (PANDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 58444*/          0, // EndSwitchType
/* 58445*/        /*Scope*/ 124, /*->58570*/
/* 58446*/          OPC_MoveParent,
/* 58447*/          OPC_RecordChild1, // #2 = $src1
/* 58448*/          OPC_SwitchType /*6 cases */, 18, MVT::v16i8,// ->58469
/* 58451*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 58453*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 58456*/            OPC_EmitMergeInputChains1_0,
/* 58457*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (and:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v16i8] }:$src1) - Complexity = 25
                      // Dst: (VPANDQZ128rm:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 58469*/          /*SwitchType*/ 18, MVT::v8i16,// ->58489
/* 58471*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 58473*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 58476*/            OPC_EmitMergeInputChains1_0,
/* 58477*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (and:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1) - Complexity = 25
                      // Dst: (VPANDQZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 58489*/          /*SwitchType*/ 18, MVT::v32i8,// ->58509
/* 58491*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 58493*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 58496*/            OPC_EmitMergeInputChains1_0,
/* 58497*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (and:{ *:[v32i8] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v32i8] }:$src1) - Complexity = 25
                      // Dst: (VPANDQZ256rm:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 58509*/          /*SwitchType*/ 18, MVT::v16i16,// ->58529
/* 58511*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 58513*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 58516*/            OPC_EmitMergeInputChains1_0,
/* 58517*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (and:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1) - Complexity = 25
                      // Dst: (VPANDQZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 58529*/          /*SwitchType*/ 18, MVT::v64i8,// ->58549
/* 58531*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 58533*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 58536*/            OPC_EmitMergeInputChains1_0,
/* 58537*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (and:{ *:[v64i8] } (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v64i8] }:$src1) - Complexity = 25
                      // Dst: (VPANDQZrm:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 58549*/          /*SwitchType*/ 18, MVT::v32i16,// ->58569
/* 58551*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 58553*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 58556*/            OPC_EmitMergeInputChains1_0,
/* 58557*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (and:{ *:[v32i16] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1) - Complexity = 25
                      // Dst: (VPANDQZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 58569*/          0, // EndSwitchType
/* 58570*/        0, /*End of Scope*/
/* 58571*/      /*SwitchOpcode*/ 12|128,1/*140*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->58715
/* 58575*/        OPC_RecordMemRef,
/* 58576*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/* 58577*/        OPC_CheckFoldableChainNode,
/* 58578*/        OPC_RecordChild1, // #1 = $src2
/* 58579*/        OPC_Scope, 66, /*->58647*/ // 2 children in Scope
/* 58581*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 58583*/          OPC_MoveParent,
/* 58584*/          OPC_RecordChild1, // #2 = $src1
/* 58585*/          OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->58606
/* 58588*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 58590*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 58593*/            OPC_EmitMergeInputChains1_0,
/* 58594*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (and:{ *:[v8i64] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8i64] }:$src1) - Complexity = 25
                      // Dst: (VPANDQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 58606*/          /*SwitchType*/ 18, MVT::v4i64,// ->58626
/* 58608*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 58610*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 58613*/            OPC_EmitMergeInputChains1_0,
/* 58614*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (and:{ *:[v4i64] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src1) - Complexity = 25
                      // Dst: (VPANDQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 58626*/          /*SwitchType*/ 18, MVT::v2i64,// ->58646
/* 58628*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 58630*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 58633*/            OPC_EmitMergeInputChains1_0,
/* 58634*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (and:{ *:[v2i64] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src1) - Complexity = 25
                      // Dst: (VPANDQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 58646*/          0, // EndSwitchType
/* 58647*/        /*Scope*/ 66, /*->58714*/
/* 58648*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/* 58650*/          OPC_MoveParent,
/* 58651*/          OPC_RecordChild1, // #2 = $src1
/* 58652*/          OPC_SwitchType /*3 cases */, 18, MVT::v16i32,// ->58673
/* 58655*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 58657*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 58660*/            OPC_EmitMergeInputChains1_0,
/* 58661*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (and:{ *:[v16i32] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16i32] }:$src1) - Complexity = 25
                      // Dst: (VPANDDZrmb:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 58673*/          /*SwitchType*/ 18, MVT::v8i32,// ->58693
/* 58675*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 58677*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 58680*/            OPC_EmitMergeInputChains1_0,
/* 58681*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (and:{ *:[v8i32] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8i32] }:$src1) - Complexity = 25
                      // Dst: (VPANDDZ256rmb:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 58693*/          /*SwitchType*/ 18, MVT::v4i32,// ->58713
/* 58695*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 58697*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 58700*/            OPC_EmitMergeInputChains1_0,
/* 58701*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (and:{ *:[v4i32] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4i32] }:$src1) - Complexity = 25
                      // Dst: (VPANDDZ128rmb:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 58713*/          0, // EndSwitchType
/* 58714*/        0, /*End of Scope*/
/* 58715*/      /*SwitchOpcode*/ 57, TARGET_VAL(ISD::XOR),// ->58775
/* 58718*/        OPC_RecordChild0, // #0 = $src1
/* 58719*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 58730*/        OPC_MoveParent,
/* 58731*/        OPC_RecordChild1, // #1 = $src2
/* 58732*/        OPC_CheckType, MVT::v1i1,
/* 58734*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 58737*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/* 58745*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 58748*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 1, 4,  // Results = #5
/* 58756*/        OPC_EmitNode1, TARGET_VAL(X86::KANDNWrr), 0,
                      MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/* 58764*/        OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/* 58767*/        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] })
/* 58775*/      0, // EndSwitchOpcode
/* 58776*/    /*Scope*/ 105|128,4/*617*/, /*->59395*/
/* 58778*/      OPC_RecordChild0, // #0 = $src2
/* 58779*/      OPC_MoveChild1,
/* 58780*/      OPC_SwitchOpcode /*7 cases */, 56, TARGET_VAL(ISD::XOR),// ->58840
/* 58784*/        OPC_RecordChild0, // #1 = $src1
/* 58785*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 58796*/        OPC_MoveParent,
/* 58797*/        OPC_CheckType, MVT::v1i1,
/* 58799*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 58802*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 1, 2,  // Results = #3
/* 58810*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 58813*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 4,  // Results = #5
/* 58821*/        OPC_EmitNode1, TARGET_VAL(X86::KANDNWrr), 0,
                      MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/* 58829*/        OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/* 58832*/        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] })
/* 58840*/      /*SwitchOpcode*/ 57, TARGET_VAL(X86ISD::FSETCCM),// ->58900
/* 58843*/        OPC_RecordChild0, // #1 = $src1
/* 58844*/        OPC_Scope, 26, /*->58872*/ // 2 children in Scope
/* 58846*/          OPC_CheckChild0Type, MVT::v4f32,
/* 58848*/          OPC_RecordChild1, // #2 = $src2
/* 58849*/          OPC_RecordChild2, // #3 = $cc
/* 58850*/          OPC_MoveChild2,
/* 58851*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 58854*/          OPC_MoveParent,
/* 58855*/          OPC_CheckPredicate, 17, // Predicate_X86cmpms_su
/* 58857*/          OPC_MoveParent,
/* 58858*/          OPC_CheckType, MVT::v1i1,
/* 58860*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 58862*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPSSZrr_Intk), 0,
                        MVT::v1i1, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (and:{ *:[v1i1] } VK1WM:{ *:[v1i1] }:$mask, (X86cmpms:{ *:[v1i1] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpms_su>>) - Complexity = 10
                    // Dst: (VCMPSSZrr_Intk:{ *:[v1i1] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i8] }):$cc)
/* 58872*/        /*Scope*/ 26, /*->58899*/
/* 58873*/          OPC_CheckChild0Type, MVT::v2f64,
/* 58875*/          OPC_RecordChild1, // #2 = $src2
/* 58876*/          OPC_RecordChild2, // #3 = $cc
/* 58877*/          OPC_MoveChild2,
/* 58878*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 58881*/          OPC_MoveParent,
/* 58882*/          OPC_CheckPredicate, 17, // Predicate_X86cmpms_su
/* 58884*/          OPC_MoveParent,
/* 58885*/          OPC_CheckType, MVT::v1i1,
/* 58887*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 58889*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPSDZrr_Intk), 0,
                        MVT::v1i1, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (and:{ *:[v1i1] } VK1WM:{ *:[v1i1] }:$mask, (X86cmpms:{ *:[v1i1] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpms_su>>) - Complexity = 10
                    // Dst: (VCMPSDZrr_Intk:{ *:[v1i1] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i8] }):$cc)
/* 58899*/        0, /*End of Scope*/
/* 58900*/      /*SwitchOpcode*/ 57, TARGET_VAL(X86ISD::FSETCCM_SAE),// ->58960
/* 58903*/        OPC_RecordChild0, // #1 = $src1
/* 58904*/        OPC_Scope, 26, /*->58932*/ // 2 children in Scope
/* 58906*/          OPC_CheckChild0Type, MVT::v4f32,
/* 58908*/          OPC_RecordChild1, // #2 = $src2
/* 58909*/          OPC_RecordChild2, // #3 = $cc
/* 58910*/          OPC_MoveChild2,
/* 58911*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 58914*/          OPC_MoveParent,
/* 58915*/          OPC_CheckPredicate, 17, // Predicate_X86cmpmsSAE_su
/* 58917*/          OPC_MoveParent,
/* 58918*/          OPC_CheckType, MVT::v1i1,
/* 58920*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 58922*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPSSZrrb_Intk), 0,
                        MVT::v1i1, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (and:{ *:[v1i1] } VK1WM:{ *:[v1i1] }:$mask, (X86cmpmsSAE:{ *:[v1i1] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpmsSAE_su>>) - Complexity = 10
                    // Dst: (VCMPSSZrrb_Intk:{ *:[v1i1] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i8] }):$cc)
/* 58932*/        /*Scope*/ 26, /*->58959*/
/* 58933*/          OPC_CheckChild0Type, MVT::v2f64,
/* 58935*/          OPC_RecordChild1, // #2 = $src2
/* 58936*/          OPC_RecordChild2, // #3 = $cc
/* 58937*/          OPC_MoveChild2,
/* 58938*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 58941*/          OPC_MoveParent,
/* 58942*/          OPC_CheckPredicate, 17, // Predicate_X86cmpmsSAE_su
/* 58944*/          OPC_MoveParent,
/* 58945*/          OPC_CheckType, MVT::v1i1,
/* 58947*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 58949*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPSDZrrb_Intk), 0,
                        MVT::v1i1, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (and:{ *:[v1i1] } VK1WM:{ *:[v1i1] }:$mask, (X86cmpmsSAE:{ *:[v1i1] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpmsSAE_su>>) - Complexity = 10
                    // Dst: (VCMPSDZrrb_Intk:{ *:[v1i1] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i8] }):$cc)
/* 58959*/        0, /*End of Scope*/
/* 58960*/      /*SwitchOpcode*/ 37|128,1/*165*/, TARGET_VAL(X86ISD::CMPM),// ->59129
/* 58964*/        OPC_RecordChild0, // #1 = $src1
/* 58965*/        OPC_Scope, 26, /*->58993*/ // 6 children in Scope
/* 58967*/          OPC_CheckChild0Type, MVT::v8f64,
/* 58969*/          OPC_RecordChild1, // #2 = $src2
/* 58970*/          OPC_RecordChild2, // #3 = $cc
/* 58971*/          OPC_MoveChild2,
/* 58972*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 58975*/          OPC_MoveParent,
/* 58976*/          OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 58978*/          OPC_MoveParent,
/* 58979*/          OPC_CheckType, MVT::v8i1,
/* 58981*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 58983*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZrrik), 0,
                        MVT::v8i1, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (X86cmpm:{ *:[v8i1] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>) - Complexity = 10
                    // Dst: (VCMPPDZrrik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i8] }):$cc)
/* 58993*/        /*Scope*/ 26, /*->59020*/
/* 58994*/          OPC_CheckChild0Type, MVT::v2f64,
/* 58996*/          OPC_RecordChild1, // #2 = $src2
/* 58997*/          OPC_RecordChild2, // #3 = $cc
/* 58998*/          OPC_MoveChild2,
/* 58999*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 59002*/          OPC_MoveParent,
/* 59003*/          OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 59005*/          OPC_MoveParent,
/* 59006*/          OPC_CheckType, MVT::v2i1,
/* 59008*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 59010*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZ128rrik), 0,
                        MVT::v2i1, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (and:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, (X86cmpm:{ *:[v2i1] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>) - Complexity = 10
                    // Dst: (VCMPPDZ128rrik:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i8] }):$cc)
/* 59020*/        /*Scope*/ 26, /*->59047*/
/* 59021*/          OPC_CheckChild0Type, MVT::v4f64,
/* 59023*/          OPC_RecordChild1, // #2 = $src2
/* 59024*/          OPC_RecordChild2, // #3 = $cc
/* 59025*/          OPC_MoveChild2,
/* 59026*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 59029*/          OPC_MoveParent,
/* 59030*/          OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 59032*/          OPC_MoveParent,
/* 59033*/          OPC_CheckType, MVT::v4i1,
/* 59035*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 59037*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZ256rrik), 0,
                        MVT::v4i1, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (X86cmpm:{ *:[v4i1] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>) - Complexity = 10
                    // Dst: (VCMPPDZ256rrik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (timm:{ *:[i8] }):$cc)
/* 59047*/        /*Scope*/ 26, /*->59074*/
/* 59048*/          OPC_CheckChild0Type, MVT::v16f32,
/* 59050*/          OPC_RecordChild1, // #2 = $src2
/* 59051*/          OPC_RecordChild2, // #3 = $cc
/* 59052*/          OPC_MoveChild2,
/* 59053*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 59056*/          OPC_MoveParent,
/* 59057*/          OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 59059*/          OPC_MoveParent,
/* 59060*/          OPC_CheckType, MVT::v16i1,
/* 59062*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 59064*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZrrik), 0,
                        MVT::v16i1, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (X86cmpm:{ *:[v16i1] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>) - Complexity = 10
                    // Dst: (VCMPPSZrrik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i8] }):$cc)
/* 59074*/        /*Scope*/ 26, /*->59101*/
/* 59075*/          OPC_CheckChild0Type, MVT::v4f32,
/* 59077*/          OPC_RecordChild1, // #2 = $src2
/* 59078*/          OPC_RecordChild2, // #3 = $cc
/* 59079*/          OPC_MoveChild2,
/* 59080*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 59083*/          OPC_MoveParent,
/* 59084*/          OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 59086*/          OPC_MoveParent,
/* 59087*/          OPC_CheckType, MVT::v4i1,
/* 59089*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 59091*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZ128rrik), 0,
                        MVT::v4i1, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (X86cmpm:{ *:[v4i1] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>) - Complexity = 10
                    // Dst: (VCMPPSZ128rrik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i8] }):$cc)
/* 59101*/        /*Scope*/ 26, /*->59128*/
/* 59102*/          OPC_CheckChild0Type, MVT::v8f32,
/* 59104*/          OPC_RecordChild1, // #2 = $src2
/* 59105*/          OPC_RecordChild2, // #3 = $cc
/* 59106*/          OPC_MoveChild2,
/* 59107*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 59110*/          OPC_MoveParent,
/* 59111*/          OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 59113*/          OPC_MoveParent,
/* 59114*/          OPC_CheckType, MVT::v8i1,
/* 59116*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 59118*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZ256rrik), 0,
                        MVT::v8i1, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (X86cmpm:{ *:[v8i1] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>) - Complexity = 10
                    // Dst: (VCMPPSZ256rrik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (timm:{ *:[i8] }):$cc)
/* 59128*/        0, /*End of Scope*/
/* 59129*/      /*SwitchOpcode*/ 57, TARGET_VAL(X86ISD::CMPM_SAE),// ->59189
/* 59132*/        OPC_RecordChild0, // #1 = $src1
/* 59133*/        OPC_Scope, 26, /*->59161*/ // 2 children in Scope
/* 59135*/          OPC_CheckChild0Type, MVT::v8f64,
/* 59137*/          OPC_RecordChild1, // #2 = $src2
/* 59138*/          OPC_RecordChild2, // #3 = $cc
/* 59139*/          OPC_MoveChild2,
/* 59140*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 59143*/          OPC_MoveParent,
/* 59144*/          OPC_CheckPredicate, 17, // Predicate_X86cmpmSAE_su
/* 59146*/          OPC_MoveParent,
/* 59147*/          OPC_CheckType, MVT::v8i1,
/* 59149*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 59151*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZrribk), 0,
                        MVT::v8i1, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (X86cmpmSAE:{ *:[v8i1] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpmSAE_su>>) - Complexity = 10
                    // Dst: (VCMPPDZrribk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i8] }):$cc)
/* 59161*/        /*Scope*/ 26, /*->59188*/
/* 59162*/          OPC_CheckChild0Type, MVT::v16f32,
/* 59164*/          OPC_RecordChild1, // #2 = $src2
/* 59165*/          OPC_RecordChild2, // #3 = $cc
/* 59166*/          OPC_MoveChild2,
/* 59167*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 59170*/          OPC_MoveParent,
/* 59171*/          OPC_CheckPredicate, 17, // Predicate_X86cmpmSAE_su
/* 59173*/          OPC_MoveParent,
/* 59174*/          OPC_CheckType, MVT::v16i1,
/* 59176*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 59178*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZrribk), 0,
                        MVT::v16i1, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (X86cmpmSAE:{ *:[v16i1] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpmSAE_su>>) - Complexity = 10
                    // Dst: (VCMPPSZrribk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i8] }):$cc)
/* 59188*/        0, /*End of Scope*/
/* 59189*/      /*SwitchOpcode*/ 21|128,1/*149*/, TARGET_VAL(X86ISD::VFPCLASS),// ->59342
/* 59193*/        OPC_RecordChild0, // #1 = $src1
/* 59194*/        OPC_Scope, 22, /*->59218*/ // 6 children in Scope
/* 59196*/          OPC_RecordChild1, // #2 = $src2
/* 59197*/          OPC_MoveChild1,
/* 59198*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 59201*/          OPC_MoveParent,
/* 59202*/          OPC_CheckPredicate, 17, // Predicate_X86Vfpclass_su
/* 59204*/          OPC_MoveParent,
/* 59205*/          OPC_CheckType, MVT::v16i1,
/* 59207*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/* 59209*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPSZrrk), 0,
                        MVT::v16i1, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (and:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, (X86Vfpclass:{ *:[v16i1] } VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i32] }):$src2)<<P:Predicate_X86Vfpclass_su>>) - Complexity = 10
                    // Dst: (VFPCLASSPSZrrk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i32] }):$src2)
/* 59218*/        /*Scope*/ 24, /*->59243*/
/* 59219*/          OPC_CheckChild0Type, MVT::v4f32,
/* 59221*/          OPC_RecordChild1, // #2 = $src2
/* 59222*/          OPC_MoveChild1,
/* 59223*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 59226*/          OPC_MoveParent,
/* 59227*/          OPC_CheckPredicate, 17, // Predicate_X86Vfpclass_su
/* 59229*/          OPC_MoveParent,
/* 59230*/          OPC_CheckType, MVT::v4i1,
/* 59232*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/* 59234*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPSZ128rrk), 0,
                        MVT::v4i1, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (X86Vfpclass:{ *:[v4i1] } VR128X:{ *:[v4f32] }:$src1, (timm:{ *:[i32] }):$src2)<<P:Predicate_X86Vfpclass_su>>) - Complexity = 10
                    // Dst: (VFPCLASSPSZ128rrk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, (timm:{ *:[i32] }):$src2)
/* 59243*/        /*Scope*/ 24, /*->59268*/
/* 59244*/          OPC_CheckChild0Type, MVT::v8f32,
/* 59246*/          OPC_RecordChild1, // #2 = $src2
/* 59247*/          OPC_MoveChild1,
/* 59248*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 59251*/          OPC_MoveParent,
/* 59252*/          OPC_CheckPredicate, 17, // Predicate_X86Vfpclass_su
/* 59254*/          OPC_MoveParent,
/* 59255*/          OPC_CheckType, MVT::v8i1,
/* 59257*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/* 59259*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPSZ256rrk), 0,
                        MVT::v8i1, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (X86Vfpclass:{ *:[v8i1] } VR256X:{ *:[v8f32] }:$src1, (timm:{ *:[i32] }):$src2)<<P:Predicate_X86Vfpclass_su>>) - Complexity = 10
                    // Dst: (VFPCLASSPSZ256rrk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, (timm:{ *:[i32] }):$src2)
/* 59268*/        /*Scope*/ 24, /*->59293*/
/* 59269*/          OPC_CheckChild0Type, MVT::v8f64,
/* 59271*/          OPC_RecordChild1, // #2 = $src2
/* 59272*/          OPC_MoveChild1,
/* 59273*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 59276*/          OPC_MoveParent,
/* 59277*/          OPC_CheckPredicate, 17, // Predicate_X86Vfpclass_su
/* 59279*/          OPC_MoveParent,
/* 59280*/          OPC_CheckType, MVT::v8i1,
/* 59282*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/* 59284*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPDZrrk), 0,
                        MVT::v8i1, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (and:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, (X86Vfpclass:{ *:[v8i1] } VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i32] }):$src2)<<P:Predicate_X86Vfpclass_su>>) - Complexity = 10
                    // Dst: (VFPCLASSPDZrrk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i32] }):$src2)
/* 59293*/        /*Scope*/ 22, /*->59316*/
/* 59294*/          OPC_RecordChild1, // #2 = $src2
/* 59295*/          OPC_MoveChild1,
/* 59296*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 59299*/          OPC_MoveParent,
/* 59300*/          OPC_CheckPredicate, 17, // Predicate_X86Vfpclass_su
/* 59302*/          OPC_MoveParent,
/* 59303*/          OPC_CheckType, MVT::v2i1,
/* 59305*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/* 59307*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPDZ128rrk), 0,
                        MVT::v2i1, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (and:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, (X86Vfpclass:{ *:[v2i1] } VR128X:{ *:[v2f64] }:$src1, (timm:{ *:[i32] }):$src2)<<P:Predicate_X86Vfpclass_su>>) - Complexity = 10
                    // Dst: (VFPCLASSPDZ128rrk:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, (timm:{ *:[i32] }):$src2)
/* 59316*/        /*Scope*/ 24, /*->59341*/
/* 59317*/          OPC_CheckChild0Type, MVT::v4f64,
/* 59319*/          OPC_RecordChild1, // #2 = $src2
/* 59320*/          OPC_MoveChild1,
/* 59321*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 59324*/          OPC_MoveParent,
/* 59325*/          OPC_CheckPredicate, 17, // Predicate_X86Vfpclass_su
/* 59327*/          OPC_MoveParent,
/* 59328*/          OPC_CheckType, MVT::v4i1,
/* 59330*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/* 59332*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPDZ256rrk), 0,
                        MVT::v4i1, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (and:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, (X86Vfpclass:{ *:[v4i1] } VR256X:{ *:[v4f64] }:$src1, (timm:{ *:[i32] }):$src2)<<P:Predicate_X86Vfpclass_su>>) - Complexity = 10
                    // Dst: (VFPCLASSPDZ256rrk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, (timm:{ *:[i32] }):$src2)
/* 59341*/        0, /*End of Scope*/
/* 59342*/      /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::VFPCLASSS),// ->59394
/* 59345*/        OPC_RecordChild0, // #1 = $src1
/* 59346*/        OPC_Scope, 22, /*->59370*/ // 2 children in Scope
/* 59348*/          OPC_CheckChild0Type, MVT::v4f32,
/* 59350*/          OPC_RecordChild1, // #2 = $src2
/* 59351*/          OPC_MoveChild1,
/* 59352*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 59355*/          OPC_MoveParent,
/* 59356*/          OPC_CheckPredicate, 17, // Predicate_X86Vfpclasss_su
/* 59358*/          OPC_MoveParent,
/* 59359*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/* 59361*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSSSZrrk), 0,
                        MVT::v1i1, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (and:{ *:[v1i1] } VK1WM:{ *:[v1i1] }:$mask, (X86Vfpclasss:{ *:[v1i1] } VR128X:{ *:[v4f32] }:$src1, (timm:{ *:[i32] }):$src2)<<P:Predicate_X86Vfpclasss_su>>) - Complexity = 10
                    // Dst: (VFPCLASSSSZrrk:{ *:[v1i1] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, (timm:{ *:[i32] }):$src2)
/* 59370*/        /*Scope*/ 22, /*->59393*/
/* 59371*/          OPC_CheckChild0Type, MVT::v2f64,
/* 59373*/          OPC_RecordChild1, // #2 = $src2
/* 59374*/          OPC_MoveChild1,
/* 59375*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 59378*/          OPC_MoveParent,
/* 59379*/          OPC_CheckPredicate, 17, // Predicate_X86Vfpclasss_su
/* 59381*/          OPC_MoveParent,
/* 59382*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/* 59384*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSSDZrrk), 0,
                        MVT::v1i1, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (and:{ *:[v1i1] } VK1WM:{ *:[v1i1] }:$mask, (X86Vfpclasss:{ *:[v1i1] } VR128X:{ *:[v2f64] }:$src1, (timm:{ *:[i32] }):$src2)<<P:Predicate_X86Vfpclasss_su>>) - Complexity = 10
                    // Dst: (VFPCLASSSDZrrk:{ *:[v1i1] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, (timm:{ *:[i32] }):$src2)
/* 59393*/        0, /*End of Scope*/
/* 59394*/      0, // EndSwitchOpcode
/* 59395*/    /*Scope*/ 18|128,5/*658*/, /*->60055*/
/* 59397*/      OPC_MoveChild0,
/* 59398*/      OPC_SwitchOpcode /*7 cases */, 78, TARGET_VAL(ISD::XOR),// ->59480
/* 59402*/        OPC_Scope, 56, /*->59460*/ // 2 children in Scope
/* 59404*/          OPC_RecordChild0, // #0 = $src1
/* 59405*/          OPC_MoveChild1,
/* 59406*/          OPC_CheckImmAllOnesV,
/* 59407*/          OPC_MoveParent,
/* 59408*/          OPC_MoveParent,
/* 59409*/          OPC_RecordChild1, // #1 = $src2
/* 59410*/          OPC_SwitchType /*4 cases */, 10, MVT::v8i1,// ->59423
/* 59413*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/* 59415*/            OPC_MorphNodeTo1, TARGET_VAL(X86::KANDNBrr), 0,
                          MVT::v8i1, 2/*#Ops*/, 0, 1, 
                      // Src: (and:{ *:[v8i1] } (xor:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src1, immAllOnesV:{ *:[v8i1] }), VK8:{ *:[v8i1] }:$src2) - Complexity = 10
                      // Dst: (KANDNBrr:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src1, VK8:{ *:[v8i1] }:$src2)
/* 59423*/          /*SwitchType*/ 10, MVT::v16i1,// ->59435
/* 59425*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 59427*/            OPC_MorphNodeTo1, TARGET_VAL(X86::KANDNWrr), 0,
                          MVT::v16i1, 2/*#Ops*/, 0, 1, 
                      // Src: (and:{ *:[v16i1] } (xor:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src1, immAllOnesV:{ *:[v16i1] }), VK16:{ *:[v16i1] }:$src2) - Complexity = 10
                      // Dst: (KANDNWrr:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src1, VK16:{ *:[v16i1] }:$src2)
/* 59435*/          /*SwitchType*/ 10, MVT::v32i1,// ->59447
/* 59437*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/* 59439*/            OPC_MorphNodeTo1, TARGET_VAL(X86::KANDNDrr), 0,
                          MVT::v32i1, 2/*#Ops*/, 0, 1, 
                      // Src: (and:{ *:[v32i1] } (xor:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src1, immAllOnesV:{ *:[v32i1] }), VK32:{ *:[v32i1] }:$src2) - Complexity = 10
                      // Dst: (KANDNDrr:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src1, VK32:{ *:[v32i1] }:$src2)
/* 59447*/          /*SwitchType*/ 10, MVT::v64i1,// ->59459
/* 59449*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/* 59451*/            OPC_MorphNodeTo1, TARGET_VAL(X86::KANDNQrr), 0,
                          MVT::v64i1, 2/*#Ops*/, 0, 1, 
                      // Src: (and:{ *:[v64i1] } (xor:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src1, immAllOnesV:{ *:[v64i1] }), VK64:{ *:[v64i1] }:$src2) - Complexity = 10
                      // Dst: (KANDNQrr:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src1, VK64:{ *:[v64i1] }:$src2)
/* 59459*/          0, // EndSwitchType
/* 59460*/        /*Scope*/ 18, /*->59479*/
/* 59461*/          OPC_MoveChild0,
/* 59462*/          OPC_CheckImmAllOnesV,
/* 59463*/          OPC_MoveParent,
/* 59464*/          OPC_RecordChild1, // #0 = $src1
/* 59465*/          OPC_MoveParent,
/* 59466*/          OPC_RecordChild1, // #1 = $src2
/* 59467*/          OPC_CheckType, MVT::v8i1,
/* 59469*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/* 59471*/          OPC_MorphNodeTo1, TARGET_VAL(X86::KANDNBrr), 0,
                        MVT::v8i1, 2/*#Ops*/, 0, 1, 
                    // Src: (and:{ *:[v8i1] } (xor:{ *:[v8i1] } immAllOnesV:{ *:[v8i1] }, VK8:{ *:[v8i1] }:$src1), VK8:{ *:[v8i1] }:$src2) - Complexity = 10
                    // Dst: (KANDNBrr:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src1, VK8:{ *:[v8i1] }:$src2)
/* 59479*/        0, /*End of Scope*/
/* 59480*/      /*SwitchOpcode*/ 59, TARGET_VAL(X86ISD::FSETCCM),// ->59542
/* 59483*/        OPC_RecordChild0, // #0 = $src1
/* 59484*/        OPC_Scope, 27, /*->59513*/ // 2 children in Scope
/* 59486*/          OPC_CheckChild0Type, MVT::v4f32,
/* 59488*/          OPC_RecordChild1, // #1 = $src2
/* 59489*/          OPC_RecordChild2, // #2 = $cc
/* 59490*/          OPC_MoveChild2,
/* 59491*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 59494*/          OPC_MoveParent,
/* 59495*/          OPC_CheckPredicate, 17, // Predicate_X86cmpms_su
/* 59497*/          OPC_MoveParent,
/* 59498*/          OPC_RecordChild1, // #3 = $mask
/* 59499*/          OPC_CheckType, MVT::v1i1,
/* 59501*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 59503*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPSSZrr_Intk), 0,
                        MVT::v1i1, 4/*#Ops*/, 3, 0, 1, 2, 
                    // Src: (and:{ *:[v1i1] } (X86cmpms:{ *:[v1i1] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpms_su>>, VK1WM:{ *:[v1i1] }:$mask) - Complexity = 10
                    // Dst: (VCMPSSZrr_Intk:{ *:[v1i1] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i8] }):$cc)
/* 59513*/        /*Scope*/ 27, /*->59541*/
/* 59514*/          OPC_CheckChild0Type, MVT::v2f64,
/* 59516*/          OPC_RecordChild1, // #1 = $src2
/* 59517*/          OPC_RecordChild2, // #2 = $cc
/* 59518*/          OPC_MoveChild2,
/* 59519*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 59522*/          OPC_MoveParent,
/* 59523*/          OPC_CheckPredicate, 17, // Predicate_X86cmpms_su
/* 59525*/          OPC_MoveParent,
/* 59526*/          OPC_RecordChild1, // #3 = $mask
/* 59527*/          OPC_CheckType, MVT::v1i1,
/* 59529*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 59531*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPSDZrr_Intk), 0,
                        MVT::v1i1, 4/*#Ops*/, 3, 0, 1, 2, 
                    // Src: (and:{ *:[v1i1] } (X86cmpms:{ *:[v1i1] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpms_su>>, VK1WM:{ *:[v1i1] }:$mask) - Complexity = 10
                    // Dst: (VCMPSDZrr_Intk:{ *:[v1i1] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i8] }):$cc)
/* 59541*/        0, /*End of Scope*/
/* 59542*/      /*SwitchOpcode*/ 59, TARGET_VAL(X86ISD::FSETCCM_SAE),// ->59604
/* 59545*/        OPC_RecordChild0, // #0 = $src1
/* 59546*/        OPC_Scope, 27, /*->59575*/ // 2 children in Scope
/* 59548*/          OPC_CheckChild0Type, MVT::v4f32,
/* 59550*/          OPC_RecordChild1, // #1 = $src2
/* 59551*/          OPC_RecordChild2, // #2 = $cc
/* 59552*/          OPC_MoveChild2,
/* 59553*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 59556*/          OPC_MoveParent,
/* 59557*/          OPC_CheckPredicate, 17, // Predicate_X86cmpmsSAE_su
/* 59559*/          OPC_MoveParent,
/* 59560*/          OPC_RecordChild1, // #3 = $mask
/* 59561*/          OPC_CheckType, MVT::v1i1,
/* 59563*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 59565*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPSSZrrb_Intk), 0,
                        MVT::v1i1, 4/*#Ops*/, 3, 0, 1, 2, 
                    // Src: (and:{ *:[v1i1] } (X86cmpmsSAE:{ *:[v1i1] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpmsSAE_su>>, VK1WM:{ *:[v1i1] }:$mask) - Complexity = 10
                    // Dst: (VCMPSSZrrb_Intk:{ *:[v1i1] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i8] }):$cc)
/* 59575*/        /*Scope*/ 27, /*->59603*/
/* 59576*/          OPC_CheckChild0Type, MVT::v2f64,
/* 59578*/          OPC_RecordChild1, // #1 = $src2
/* 59579*/          OPC_RecordChild2, // #2 = $cc
/* 59580*/          OPC_MoveChild2,
/* 59581*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 59584*/          OPC_MoveParent,
/* 59585*/          OPC_CheckPredicate, 17, // Predicate_X86cmpmsSAE_su
/* 59587*/          OPC_MoveParent,
/* 59588*/          OPC_RecordChild1, // #3 = $mask
/* 59589*/          OPC_CheckType, MVT::v1i1,
/* 59591*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 59593*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPSDZrrb_Intk), 0,
                        MVT::v1i1, 4/*#Ops*/, 3, 0, 1, 2, 
                    // Src: (and:{ *:[v1i1] } (X86cmpmsSAE:{ *:[v1i1] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpmsSAE_su>>, VK1WM:{ *:[v1i1] }:$mask) - Complexity = 10
                    // Dst: (VCMPSDZrrb_Intk:{ *:[v1i1] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i8] }):$cc)
/* 59603*/        0, /*End of Scope*/
/* 59604*/      /*SwitchOpcode*/ 43|128,1/*171*/, TARGET_VAL(X86ISD::CMPM),// ->59779
/* 59608*/        OPC_RecordChild0, // #0 = $src1
/* 59609*/        OPC_Scope, 27, /*->59638*/ // 6 children in Scope
/* 59611*/          OPC_CheckChild0Type, MVT::v8f64,
/* 59613*/          OPC_RecordChild1, // #1 = $src2
/* 59614*/          OPC_RecordChild2, // #2 = $cc
/* 59615*/          OPC_MoveChild2,
/* 59616*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 59619*/          OPC_MoveParent,
/* 59620*/          OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 59622*/          OPC_MoveParent,
/* 59623*/          OPC_RecordChild1, // #3 = $mask
/* 59624*/          OPC_CheckType, MVT::v8i1,
/* 59626*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 59628*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZrrik), 0,
                        MVT::v8i1, 4/*#Ops*/, 3, 0, 1, 2, 
                    // Src: (and:{ *:[v8i1] } (X86cmpm:{ *:[v8i1] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 10
                    // Dst: (VCMPPDZrrik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i8] }):$cc)
/* 59638*/        /*Scope*/ 27, /*->59666*/
/* 59639*/          OPC_CheckChild0Type, MVT::v2f64,
/* 59641*/          OPC_RecordChild1, // #1 = $src2
/* 59642*/          OPC_RecordChild2, // #2 = $cc
/* 59643*/          OPC_MoveChild2,
/* 59644*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 59647*/          OPC_MoveParent,
/* 59648*/          OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 59650*/          OPC_MoveParent,
/* 59651*/          OPC_RecordChild1, // #3 = $mask
/* 59652*/          OPC_CheckType, MVT::v2i1,
/* 59654*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 59656*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZ128rrik), 0,
                        MVT::v2i1, 4/*#Ops*/, 3, 0, 1, 2, 
                    // Src: (and:{ *:[v2i1] } (X86cmpm:{ *:[v2i1] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 10
                    // Dst: (VCMPPDZ128rrik:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i8] }):$cc)
/* 59666*/        /*Scope*/ 27, /*->59694*/
/* 59667*/          OPC_CheckChild0Type, MVT::v4f64,
/* 59669*/          OPC_RecordChild1, // #1 = $src2
/* 59670*/          OPC_RecordChild2, // #2 = $cc
/* 59671*/          OPC_MoveChild2,
/* 59672*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 59675*/          OPC_MoveParent,
/* 59676*/          OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 59678*/          OPC_MoveParent,
/* 59679*/          OPC_RecordChild1, // #3 = $mask
/* 59680*/          OPC_CheckType, MVT::v4i1,
/* 59682*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 59684*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZ256rrik), 0,
                        MVT::v4i1, 4/*#Ops*/, 3, 0, 1, 2, 
                    // Src: (and:{ *:[v4i1] } (X86cmpm:{ *:[v4i1] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 10
                    // Dst: (VCMPPDZ256rrik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (timm:{ *:[i8] }):$cc)
/* 59694*/        /*Scope*/ 27, /*->59722*/
/* 59695*/          OPC_CheckChild0Type, MVT::v16f32,
/* 59697*/          OPC_RecordChild1, // #1 = $src2
/* 59698*/          OPC_RecordChild2, // #2 = $cc
/* 59699*/          OPC_MoveChild2,
/* 59700*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 59703*/          OPC_MoveParent,
/* 59704*/          OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 59706*/          OPC_MoveParent,
/* 59707*/          OPC_RecordChild1, // #3 = $mask
/* 59708*/          OPC_CheckType, MVT::v16i1,
/* 59710*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 59712*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZrrik), 0,
                        MVT::v16i1, 4/*#Ops*/, 3, 0, 1, 2, 
                    // Src: (and:{ *:[v16i1] } (X86cmpm:{ *:[v16i1] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 10
                    // Dst: (VCMPPSZrrik:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i8] }):$cc)
/* 59722*/        /*Scope*/ 27, /*->59750*/
/* 59723*/          OPC_CheckChild0Type, MVT::v4f32,
/* 59725*/          OPC_RecordChild1, // #1 = $src2
/* 59726*/          OPC_RecordChild2, // #2 = $cc
/* 59727*/          OPC_MoveChild2,
/* 59728*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 59731*/          OPC_MoveParent,
/* 59732*/          OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 59734*/          OPC_MoveParent,
/* 59735*/          OPC_RecordChild1, // #3 = $mask
/* 59736*/          OPC_CheckType, MVT::v4i1,
/* 59738*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 59740*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZ128rrik), 0,
                        MVT::v4i1, 4/*#Ops*/, 3, 0, 1, 2, 
                    // Src: (and:{ *:[v4i1] } (X86cmpm:{ *:[v4i1] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 10
                    // Dst: (VCMPPSZ128rrik:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i8] }):$cc)
/* 59750*/        /*Scope*/ 27, /*->59778*/
/* 59751*/          OPC_CheckChild0Type, MVT::v8f32,
/* 59753*/          OPC_RecordChild1, // #1 = $src2
/* 59754*/          OPC_RecordChild2, // #2 = $cc
/* 59755*/          OPC_MoveChild2,
/* 59756*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 59759*/          OPC_MoveParent,
/* 59760*/          OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 59762*/          OPC_MoveParent,
/* 59763*/          OPC_RecordChild1, // #3 = $mask
/* 59764*/          OPC_CheckType, MVT::v8i1,
/* 59766*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 59768*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZ256rrik), 0,
                        MVT::v8i1, 4/*#Ops*/, 3, 0, 1, 2, 
                    // Src: (and:{ *:[v8i1] } (X86cmpm:{ *:[v8i1] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 10
                    // Dst: (VCMPPSZ256rrik:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (timm:{ *:[i8] }):$cc)
/* 59778*/        0, /*End of Scope*/
/* 59779*/      /*SwitchOpcode*/ 59, TARGET_VAL(X86ISD::CMPM_SAE),// ->59841
/* 59782*/        OPC_RecordChild0, // #0 = $src1
/* 59783*/        OPC_Scope, 27, /*->59812*/ // 2 children in Scope
/* 59785*/          OPC_CheckChild0Type, MVT::v8f64,
/* 59787*/          OPC_RecordChild1, // #1 = $src2
/* 59788*/          OPC_RecordChild2, // #2 = $cc
/* 59789*/          OPC_MoveChild2,
/* 59790*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 59793*/          OPC_MoveParent,
/* 59794*/          OPC_CheckPredicate, 17, // Predicate_X86cmpmSAE_su
/* 59796*/          OPC_MoveParent,
/* 59797*/          OPC_RecordChild1, // #3 = $mask
/* 59798*/          OPC_CheckType, MVT::v8i1,
/* 59800*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 59802*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZrribk), 0,
                        MVT::v8i1, 4/*#Ops*/, 3, 0, 1, 2, 
                    // Src: (and:{ *:[v8i1] } (X86cmpmSAE:{ *:[v8i1] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpmSAE_su>>, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 10
                    // Dst: (VCMPPDZrribk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i8] }):$cc)
/* 59812*/        /*Scope*/ 27, /*->59840*/
/* 59813*/          OPC_CheckChild0Type, MVT::v16f32,
/* 59815*/          OPC_RecordChild1, // #1 = $src2
/* 59816*/          OPC_RecordChild2, // #2 = $cc
/* 59817*/          OPC_MoveChild2,
/* 59818*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 59821*/          OPC_MoveParent,
/* 59822*/          OPC_CheckPredicate, 17, // Predicate_X86cmpmSAE_su
/* 59824*/          OPC_MoveParent,
/* 59825*/          OPC_RecordChild1, // #3 = $mask
/* 59826*/          OPC_CheckType, MVT::v16i1,
/* 59828*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 59830*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZrribk), 0,
                        MVT::v16i1, 4/*#Ops*/, 3, 0, 1, 2, 
                    // Src: (and:{ *:[v16i1] } (X86cmpmSAE:{ *:[v16i1] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpmSAE_su>>, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 10
                    // Dst: (VCMPPSZrribk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i8] }):$cc)
/* 59840*/        0, /*End of Scope*/
/* 59841*/      /*SwitchOpcode*/ 27|128,1/*155*/, TARGET_VAL(X86ISD::VFPCLASS),// ->60000
/* 59845*/        OPC_RecordChild0, // #0 = $src1
/* 59846*/        OPC_Scope, 23, /*->59871*/ // 6 children in Scope
/* 59848*/          OPC_RecordChild1, // #1 = $src2
/* 59849*/          OPC_MoveChild1,
/* 59850*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 59853*/          OPC_MoveParent,
/* 59854*/          OPC_CheckPredicate, 17, // Predicate_X86Vfpclass_su
/* 59856*/          OPC_MoveParent,
/* 59857*/          OPC_RecordChild1, // #2 = $mask
/* 59858*/          OPC_CheckType, MVT::v16i1,
/* 59860*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/* 59862*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPSZrrk), 0,
                        MVT::v16i1, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (and:{ *:[v16i1] } (X86Vfpclass:{ *:[v16i1] } VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i32] }):$src2)<<P:Predicate_X86Vfpclass_su>>, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 10
                    // Dst: (VFPCLASSPSZrrk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i32] }):$src2)
/* 59871*/        /*Scope*/ 25, /*->59897*/
/* 59872*/          OPC_CheckChild0Type, MVT::v4f32,
/* 59874*/          OPC_RecordChild1, // #1 = $src2
/* 59875*/          OPC_MoveChild1,
/* 59876*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 59879*/          OPC_MoveParent,
/* 59880*/          OPC_CheckPredicate, 17, // Predicate_X86Vfpclass_su
/* 59882*/          OPC_MoveParent,
/* 59883*/          OPC_RecordChild1, // #2 = $mask
/* 59884*/          OPC_CheckType, MVT::v4i1,
/* 59886*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/* 59888*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPSZ128rrk), 0,
                        MVT::v4i1, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (and:{ *:[v4i1] } (X86Vfpclass:{ *:[v4i1] } VR128X:{ *:[v4f32] }:$src1, (timm:{ *:[i32] }):$src2)<<P:Predicate_X86Vfpclass_su>>, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 10
                    // Dst: (VFPCLASSPSZ128rrk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, (timm:{ *:[i32] }):$src2)
/* 59897*/        /*Scope*/ 25, /*->59923*/
/* 59898*/          OPC_CheckChild0Type, MVT::v8f32,
/* 59900*/          OPC_RecordChild1, // #1 = $src2
/* 59901*/          OPC_MoveChild1,
/* 59902*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 59905*/          OPC_MoveParent,
/* 59906*/          OPC_CheckPredicate, 17, // Predicate_X86Vfpclass_su
/* 59908*/          OPC_MoveParent,
/* 59909*/          OPC_RecordChild1, // #2 = $mask
/* 59910*/          OPC_CheckType, MVT::v8i1,
/* 59912*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/* 59914*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPSZ256rrk), 0,
                        MVT::v8i1, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (and:{ *:[v8i1] } (X86Vfpclass:{ *:[v8i1] } VR256X:{ *:[v8f32] }:$src1, (timm:{ *:[i32] }):$src2)<<P:Predicate_X86Vfpclass_su>>, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 10
                    // Dst: (VFPCLASSPSZ256rrk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, (timm:{ *:[i32] }):$src2)
/* 59923*/        /*Scope*/ 25, /*->59949*/
/* 59924*/          OPC_CheckChild0Type, MVT::v8f64,
/* 59926*/          OPC_RecordChild1, // #1 = $src2
/* 59927*/          OPC_MoveChild1,
/* 59928*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 59931*/          OPC_MoveParent,
/* 59932*/          OPC_CheckPredicate, 17, // Predicate_X86Vfpclass_su
/* 59934*/          OPC_MoveParent,
/* 59935*/          OPC_RecordChild1, // #2 = $mask
/* 59936*/          OPC_CheckType, MVT::v8i1,
/* 59938*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/* 59940*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPDZrrk), 0,
                        MVT::v8i1, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (and:{ *:[v8i1] } (X86Vfpclass:{ *:[v8i1] } VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i32] }):$src2)<<P:Predicate_X86Vfpclass_su>>, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 10
                    // Dst: (VFPCLASSPDZrrk:{ *:[v8i1] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i32] }):$src2)
/* 59949*/        /*Scope*/ 23, /*->59973*/
/* 59950*/          OPC_RecordChild1, // #1 = $src2
/* 59951*/          OPC_MoveChild1,
/* 59952*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 59955*/          OPC_MoveParent,
/* 59956*/          OPC_CheckPredicate, 17, // Predicate_X86Vfpclass_su
/* 59958*/          OPC_MoveParent,
/* 59959*/          OPC_RecordChild1, // #2 = $mask
/* 59960*/          OPC_CheckType, MVT::v2i1,
/* 59962*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/* 59964*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPDZ128rrk), 0,
                        MVT::v2i1, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (and:{ *:[v2i1] } (X86Vfpclass:{ *:[v2i1] } VR128X:{ *:[v2f64] }:$src1, (timm:{ *:[i32] }):$src2)<<P:Predicate_X86Vfpclass_su>>, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 10
                    // Dst: (VFPCLASSPDZ128rrk:{ *:[v2i1] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, (timm:{ *:[i32] }):$src2)
/* 59973*/        /*Scope*/ 25, /*->59999*/
/* 59974*/          OPC_CheckChild0Type, MVT::v4f64,
/* 59976*/          OPC_RecordChild1, // #1 = $src2
/* 59977*/          OPC_MoveChild1,
/* 59978*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 59981*/          OPC_MoveParent,
/* 59982*/          OPC_CheckPredicate, 17, // Predicate_X86Vfpclass_su
/* 59984*/          OPC_MoveParent,
/* 59985*/          OPC_RecordChild1, // #2 = $mask
/* 59986*/          OPC_CheckType, MVT::v4i1,
/* 59988*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/* 59990*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPDZ256rrk), 0,
                        MVT::v4i1, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (and:{ *:[v4i1] } (X86Vfpclass:{ *:[v4i1] } VR256X:{ *:[v4f64] }:$src1, (timm:{ *:[i32] }):$src2)<<P:Predicate_X86Vfpclass_su>>, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 10
                    // Dst: (VFPCLASSPDZ256rrk:{ *:[v4i1] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, (timm:{ *:[i32] }):$src2)
/* 59999*/        0, /*End of Scope*/
/* 60000*/      /*SwitchOpcode*/ 51, TARGET_VAL(X86ISD::VFPCLASSS),// ->60054
/* 60003*/        OPC_RecordChild0, // #0 = $src1
/* 60004*/        OPC_Scope, 23, /*->60029*/ // 2 children in Scope
/* 60006*/          OPC_CheckChild0Type, MVT::v4f32,
/* 60008*/          OPC_RecordChild1, // #1 = $src2
/* 60009*/          OPC_MoveChild1,
/* 60010*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 60013*/          OPC_MoveParent,
/* 60014*/          OPC_CheckPredicate, 17, // Predicate_X86Vfpclasss_su
/* 60016*/          OPC_MoveParent,
/* 60017*/          OPC_RecordChild1, // #2 = $mask
/* 60018*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/* 60020*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSSSZrrk), 0,
                        MVT::v1i1, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (and:{ *:[v1i1] } (X86Vfpclasss:{ *:[v1i1] } VR128X:{ *:[v4f32] }:$src1, (timm:{ *:[i32] }):$src2)<<P:Predicate_X86Vfpclasss_su>>, VK1WM:{ *:[v1i1] }:$mask) - Complexity = 10
                    // Dst: (VFPCLASSSSZrrk:{ *:[v1i1] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, (timm:{ *:[i32] }):$src2)
/* 60029*/        /*Scope*/ 23, /*->60053*/
/* 60030*/          OPC_CheckChild0Type, MVT::v2f64,
/* 60032*/          OPC_RecordChild1, // #1 = $src2
/* 60033*/          OPC_MoveChild1,
/* 60034*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 60037*/          OPC_MoveParent,
/* 60038*/          OPC_CheckPredicate, 17, // Predicate_X86Vfpclasss_su
/* 60040*/          OPC_MoveParent,
/* 60041*/          OPC_RecordChild1, // #2 = $mask
/* 60042*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/* 60044*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSSDZrrk), 0,
                        MVT::v1i1, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (and:{ *:[v1i1] } (X86Vfpclasss:{ *:[v1i1] } VR128X:{ *:[v2f64] }:$src1, (timm:{ *:[i32] }):$src2)<<P:Predicate_X86Vfpclasss_su>>, VK1WM:{ *:[v1i1] }:$mask) - Complexity = 10
                    // Dst: (VFPCLASSSDZrrk:{ *:[v1i1] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, (timm:{ *:[i32] }):$src2)
/* 60053*/        0, /*End of Scope*/
/* 60054*/      0, // EndSwitchOpcode
/* 60055*/    /*Scope*/ 43, /*->60099*/
/* 60056*/      OPC_RecordChild0, // #0 = $src2
/* 60057*/      OPC_MoveChild1,
/* 60058*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 60061*/      OPC_Scope, 17, /*->60080*/ // 2 children in Scope
/* 60063*/        OPC_RecordChild0, // #1 = $src1
/* 60064*/        OPC_MoveChild1,
/* 60065*/        OPC_CheckImmAllOnesV,
/* 60066*/        OPC_MoveParent,
/* 60067*/        OPC_MoveParent,
/* 60068*/        OPC_CheckType, MVT::v8i1,
/* 60070*/        OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/* 60072*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KANDNBrr), 0,
                      MVT::v8i1, 2/*#Ops*/, 1, 0, 
                  // Src: (and:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src2, (xor:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src1, immAllOnesV:{ *:[v8i1] })) - Complexity = 10
                  // Dst: (KANDNBrr:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src1, VK8:{ *:[v8i1] }:$src2)
/* 60080*/      /*Scope*/ 17, /*->60098*/
/* 60081*/        OPC_MoveChild0,
/* 60082*/        OPC_CheckImmAllOnesV,
/* 60083*/        OPC_MoveParent,
/* 60084*/        OPC_RecordChild1, // #1 = $src1
/* 60085*/        OPC_MoveParent,
/* 60086*/        OPC_CheckType, MVT::v8i1,
/* 60088*/        OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/* 60090*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KANDNBrr), 0,
                      MVT::v8i1, 2/*#Ops*/, 1, 0, 
                  // Src: (and:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src2, (xor:{ *:[v8i1] } immAllOnesV:{ *:[v8i1] }, VK8:{ *:[v8i1] }:$src1)) - Complexity = 10
                  // Dst: (KANDNBrr:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src1, VK8:{ *:[v8i1] }:$src2)
/* 60098*/      0, /*End of Scope*/
/* 60099*/    /*Scope*/ 22, /*->60122*/
/* 60100*/      OPC_MoveChild0,
/* 60101*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 60104*/      OPC_MoveChild0,
/* 60105*/      OPC_CheckImmAllOnesV,
/* 60106*/      OPC_MoveParent,
/* 60107*/      OPC_RecordChild1, // #0 = $src1
/* 60108*/      OPC_MoveParent,
/* 60109*/      OPC_RecordChild1, // #1 = $src2
/* 60110*/      OPC_CheckType, MVT::v16i1,
/* 60112*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 60114*/      OPC_MorphNodeTo1, TARGET_VAL(X86::KANDNWrr), 0,
                    MVT::v16i1, 2/*#Ops*/, 0, 1, 
                // Src: (and:{ *:[v16i1] } (xor:{ *:[v16i1] } immAllOnesV:{ *:[v16i1] }, VK16:{ *:[v16i1] }:$src1), VK16:{ *:[v16i1] }:$src2) - Complexity = 10
                // Dst: (KANDNWrr:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src1, VK16:{ *:[v16i1] }:$src2)
/* 60122*/    /*Scope*/ 43, /*->60166*/
/* 60123*/      OPC_RecordChild0, // #0 = $src2
/* 60124*/      OPC_MoveChild1,
/* 60125*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 60128*/      OPC_Scope, 17, /*->60147*/ // 2 children in Scope
/* 60130*/        OPC_RecordChild0, // #1 = $src1
/* 60131*/        OPC_MoveChild1,
/* 60132*/        OPC_CheckImmAllOnesV,
/* 60133*/        OPC_MoveParent,
/* 60134*/        OPC_MoveParent,
/* 60135*/        OPC_CheckType, MVT::v16i1,
/* 60137*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 60139*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KANDNWrr), 0,
                      MVT::v16i1, 2/*#Ops*/, 1, 0, 
                  // Src: (and:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src2, (xor:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src1, immAllOnesV:{ *:[v16i1] })) - Complexity = 10
                  // Dst: (KANDNWrr:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src1, VK16:{ *:[v16i1] }:$src2)
/* 60147*/      /*Scope*/ 17, /*->60165*/
/* 60148*/        OPC_MoveChild0,
/* 60149*/        OPC_CheckImmAllOnesV,
/* 60150*/        OPC_MoveParent,
/* 60151*/        OPC_RecordChild1, // #1 = $src1
/* 60152*/        OPC_MoveParent,
/* 60153*/        OPC_CheckType, MVT::v16i1,
/* 60155*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 60157*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KANDNWrr), 0,
                      MVT::v16i1, 2/*#Ops*/, 1, 0, 
                  // Src: (and:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src2, (xor:{ *:[v16i1] } immAllOnesV:{ *:[v16i1] }, VK16:{ *:[v16i1] }:$src1)) - Complexity = 10
                  // Dst: (KANDNWrr:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src1, VK16:{ *:[v16i1] }:$src2)
/* 60165*/      0, /*End of Scope*/
/* 60166*/    /*Scope*/ 22, /*->60189*/
/* 60167*/      OPC_MoveChild0,
/* 60168*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 60171*/      OPC_MoveChild0,
/* 60172*/      OPC_CheckImmAllOnesV,
/* 60173*/      OPC_MoveParent,
/* 60174*/      OPC_RecordChild1, // #0 = $src1
/* 60175*/      OPC_MoveParent,
/* 60176*/      OPC_RecordChild1, // #1 = $src2
/* 60177*/      OPC_CheckType, MVT::v32i1,
/* 60179*/      OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/* 60181*/      OPC_MorphNodeTo1, TARGET_VAL(X86::KANDNDrr), 0,
                    MVT::v32i1, 2/*#Ops*/, 0, 1, 
                // Src: (and:{ *:[v32i1] } (xor:{ *:[v32i1] } immAllOnesV:{ *:[v32i1] }, VK32:{ *:[v32i1] }:$src1), VK32:{ *:[v32i1] }:$src2) - Complexity = 10
                // Dst: (KANDNDrr:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src1, VK32:{ *:[v32i1] }:$src2)
/* 60189*/    /*Scope*/ 43, /*->60233*/
/* 60190*/      OPC_RecordChild0, // #0 = $src2
/* 60191*/      OPC_MoveChild1,
/* 60192*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 60195*/      OPC_Scope, 17, /*->60214*/ // 2 children in Scope
/* 60197*/        OPC_RecordChild0, // #1 = $src1
/* 60198*/        OPC_MoveChild1,
/* 60199*/        OPC_CheckImmAllOnesV,
/* 60200*/        OPC_MoveParent,
/* 60201*/        OPC_MoveParent,
/* 60202*/        OPC_CheckType, MVT::v32i1,
/* 60204*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/* 60206*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KANDNDrr), 0,
                      MVT::v32i1, 2/*#Ops*/, 1, 0, 
                  // Src: (and:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src2, (xor:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src1, immAllOnesV:{ *:[v32i1] })) - Complexity = 10
                  // Dst: (KANDNDrr:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src1, VK32:{ *:[v32i1] }:$src2)
/* 60214*/      /*Scope*/ 17, /*->60232*/
/* 60215*/        OPC_MoveChild0,
/* 60216*/        OPC_CheckImmAllOnesV,
/* 60217*/        OPC_MoveParent,
/* 60218*/        OPC_RecordChild1, // #1 = $src1
/* 60219*/        OPC_MoveParent,
/* 60220*/        OPC_CheckType, MVT::v32i1,
/* 60222*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/* 60224*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KANDNDrr), 0,
                      MVT::v32i1, 2/*#Ops*/, 1, 0, 
                  // Src: (and:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src2, (xor:{ *:[v32i1] } immAllOnesV:{ *:[v32i1] }, VK32:{ *:[v32i1] }:$src1)) - Complexity = 10
                  // Dst: (KANDNDrr:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src1, VK32:{ *:[v32i1] }:$src2)
/* 60232*/      0, /*End of Scope*/
/* 60233*/    /*Scope*/ 22, /*->60256*/
/* 60234*/      OPC_MoveChild0,
/* 60235*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 60238*/      OPC_MoveChild0,
/* 60239*/      OPC_CheckImmAllOnesV,
/* 60240*/      OPC_MoveParent,
/* 60241*/      OPC_RecordChild1, // #0 = $src1
/* 60242*/      OPC_MoveParent,
/* 60243*/      OPC_RecordChild1, // #1 = $src2
/* 60244*/      OPC_CheckType, MVT::v64i1,
/* 60246*/      OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/* 60248*/      OPC_MorphNodeTo1, TARGET_VAL(X86::KANDNQrr), 0,
                    MVT::v64i1, 2/*#Ops*/, 0, 1, 
                // Src: (and:{ *:[v64i1] } (xor:{ *:[v64i1] } immAllOnesV:{ *:[v64i1] }, VK64:{ *:[v64i1] }:$src1), VK64:{ *:[v64i1] }:$src2) - Complexity = 10
                // Dst: (KANDNQrr:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src1, VK64:{ *:[v64i1] }:$src2)
/* 60256*/    /*Scope*/ 43, /*->60300*/
/* 60257*/      OPC_RecordChild0, // #0 = $src2
/* 60258*/      OPC_MoveChild1,
/* 60259*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 60262*/      OPC_Scope, 17, /*->60281*/ // 2 children in Scope
/* 60264*/        OPC_RecordChild0, // #1 = $src1
/* 60265*/        OPC_MoveChild1,
/* 60266*/        OPC_CheckImmAllOnesV,
/* 60267*/        OPC_MoveParent,
/* 60268*/        OPC_MoveParent,
/* 60269*/        OPC_CheckType, MVT::v64i1,
/* 60271*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/* 60273*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KANDNQrr), 0,
                      MVT::v64i1, 2/*#Ops*/, 1, 0, 
                  // Src: (and:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src2, (xor:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src1, immAllOnesV:{ *:[v64i1] })) - Complexity = 10
                  // Dst: (KANDNQrr:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src1, VK64:{ *:[v64i1] }:$src2)
/* 60281*/      /*Scope*/ 17, /*->60299*/
/* 60282*/        OPC_MoveChild0,
/* 60283*/        OPC_CheckImmAllOnesV,
/* 60284*/        OPC_MoveParent,
/* 60285*/        OPC_RecordChild1, // #1 = $src1
/* 60286*/        OPC_MoveParent,
/* 60287*/        OPC_CheckType, MVT::v64i1,
/* 60289*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/* 60291*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KANDNQrr), 0,
                      MVT::v64i1, 2/*#Ops*/, 1, 0, 
                  // Src: (and:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src2, (xor:{ *:[v64i1] } immAllOnesV:{ *:[v64i1] }, VK64:{ *:[v64i1] }:$src1)) - Complexity = 10
                  // Dst: (KANDNQrr:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src1, VK64:{ *:[v64i1] }:$src2)
/* 60299*/      0, /*End of Scope*/
/* 60300*/    /*Scope*/ 71|128,1/*199*/, /*->60501*/
/* 60302*/      OPC_MoveChild0,
/* 60303*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 60306*/      OPC_Scope, 11|128,1/*139*/, /*->60448*/ // 2 children in Scope
/* 60309*/        OPC_RecordChild0, // #0 = $src1
/* 60310*/        OPC_MoveChild1,
/* 60311*/        OPC_CheckImmAllOnesV,
/* 60312*/        OPC_MoveParent,
/* 60313*/        OPC_MoveParent,
/* 60314*/        OPC_RecordChild1, // #1 = $src2
/* 60315*/        OPC_SwitchType /*3 cases */, 43, MVT::v8i1,// ->60361
/* 60318*/          OPC_CheckPatternPredicate, 116, // (!Subtarget->hasDQI())
/* 60320*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 60323*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/* 60331*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 60334*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 1, 4,  // Results = #5
/* 60342*/          OPC_EmitNode1, TARGET_VAL(X86::KANDNWrr), 0,
                        MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/* 60350*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 60353*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 6, 7, 
                    // Src: (and:{ *:[v8i1] } (xor:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src1, immAllOnesV:{ *:[v8i1] }), 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] })
/* 60361*/        /*SwitchType*/ 41, MVT::v2i1,// ->60404
/* 60363*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 60366*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/* 60374*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 60377*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 1, 4,  // Results = #5
/* 60385*/          OPC_EmitNode1, TARGET_VAL(X86::KANDNWrr), 0,
                        MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/* 60393*/          OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/* 60396*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2i1, 2/*#Ops*/, 6, 7, 
                    // Src: (and:{ *:[v2i1] } (xor:{ *:[v2i1] } VK2:{ *:[v2i1] }:$src1, immAllOnesV:{ *:[v2i1] }), 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] })
/* 60404*/        /*SwitchType*/ 41, MVT::v4i1,// ->60447
/* 60406*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 60409*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/* 60417*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 60420*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 1, 4,  // Results = #5
/* 60428*/          OPC_EmitNode1, TARGET_VAL(X86::KANDNWrr), 0,
                        MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/* 60436*/          OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/* 60439*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i1, 2/*#Ops*/, 6, 7, 
                    // Src: (and:{ *:[v4i1] } (xor:{ *:[v4i1] } VK4:{ *:[v4i1] }:$src1, immAllOnesV:{ *:[v4i1] }), 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] })
/* 60447*/        0, // EndSwitchType
/* 60448*/      /*Scope*/ 51, /*->60500*/
/* 60449*/        OPC_MoveChild0,
/* 60450*/        OPC_CheckImmAllOnesV,
/* 60451*/        OPC_MoveParent,
/* 60452*/        OPC_RecordChild1, // #0 = $src1
/* 60453*/        OPC_MoveParent,
/* 60454*/        OPC_RecordChild1, // #1 = $src2
/* 60455*/        OPC_CheckType, MVT::v8i1,
/* 60457*/        OPC_CheckPatternPredicate, 116, // (!Subtarget->hasDQI())
/* 60459*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 60462*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/* 60470*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 60473*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 1, 4,  // Results = #5
/* 60481*/        OPC_EmitNode1, TARGET_VAL(X86::KANDNWrr), 0,
                      MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/* 60489*/        OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 60492*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v8i1, 2/*#Ops*/, 6, 7, 
                  // Src: (and:{ *:[v8i1] } (xor:{ *:[v8i1] } immAllOnesV:{ *:[v8i1] }, 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] })
/* 60500*/      0, /*End of Scope*/
/* 60501*/    /*Scope*/ 109, /*->60611*/
/* 60502*/      OPC_RecordChild0, // #0 = $src2
/* 60503*/      OPC_MoveChild1,
/* 60504*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 60507*/      OPC_Scope, 50, /*->60559*/ // 2 children in Scope
/* 60509*/        OPC_RecordChild0, // #1 = $src1
/* 60510*/        OPC_MoveChild1,
/* 60511*/        OPC_CheckImmAllOnesV,
/* 60512*/        OPC_MoveParent,
/* 60513*/        OPC_MoveParent,
/* 60514*/        OPC_CheckType, MVT::v8i1,
/* 60516*/        OPC_CheckPatternPredicate, 116, // (!Subtarget->hasDQI())
/* 60518*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 60521*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 1, 2,  // Results = #3
/* 60529*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 60532*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 4,  // Results = #5
/* 60540*/        OPC_EmitNode1, TARGET_VAL(X86::KANDNWrr), 0,
                      MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/* 60548*/        OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 60551*/        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, immAllOnesV:{ *:[v8i1] })) - 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] })
/* 60559*/      /*Scope*/ 50, /*->60610*/
/* 60560*/        OPC_MoveChild0,
/* 60561*/        OPC_CheckImmAllOnesV,
/* 60562*/        OPC_MoveParent,
/* 60563*/        OPC_RecordChild1, // #1 = $src1
/* 60564*/        OPC_MoveParent,
/* 60565*/        OPC_CheckType, MVT::v8i1,
/* 60567*/        OPC_CheckPatternPredicate, 116, // (!Subtarget->hasDQI())
/* 60569*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 60572*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 1, 2,  // Results = #3
/* 60580*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 60583*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 4,  // Results = #5
/* 60591*/        OPC_EmitNode1, TARGET_VAL(X86::KANDNWrr), 0,
                      MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/* 60599*/        OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 60602*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v8i1, 2/*#Ops*/, 6, 7, 
                  // Src: (and:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src2, (xor:{ *:[v8i1] } immAllOnesV:{ *:[v8i1] }, 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] })
/* 60610*/      0, /*End of Scope*/
/* 60611*/    /*Scope*/ 53, /*->60665*/
/* 60612*/      OPC_MoveChild0,
/* 60613*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 60616*/      OPC_MoveChild0,
/* 60617*/      OPC_CheckImmAllOnesV,
/* 60618*/      OPC_MoveParent,
/* 60619*/      OPC_RecordChild1, // #0 = $src1
/* 60620*/      OPC_MoveParent,
/* 60621*/      OPC_RecordChild1, // #1 = $src2
/* 60622*/      OPC_CheckType, MVT::v2i1,
/* 60624*/      OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 60627*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/* 60635*/      OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 60638*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v16i1, 2/*#Ops*/, 1, 4,  // Results = #5
/* 60646*/      OPC_EmitNode1, TARGET_VAL(X86::KANDNWrr), 0,
                    MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/* 60654*/      OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/* 60657*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v2i1, 2/*#Ops*/, 6, 7, 
                // Src: (and:{ *:[v2i1] } (xor:{ *:[v2i1] } immAllOnesV:{ *:[v2i1] }, 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] })
/* 60665*/    /*Scope*/ 105, /*->60771*/
/* 60666*/      OPC_RecordChild0, // #0 = $src2
/* 60667*/      OPC_MoveChild1,
/* 60668*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 60671*/      OPC_Scope, 48, /*->60721*/ // 2 children in Scope
/* 60673*/        OPC_RecordChild0, // #1 = $src1
/* 60674*/        OPC_MoveChild1,
/* 60675*/        OPC_CheckImmAllOnesV,
/* 60676*/        OPC_MoveParent,
/* 60677*/        OPC_MoveParent,
/* 60678*/        OPC_CheckType, MVT::v2i1,
/* 60680*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 60683*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 1, 2,  // Results = #3
/* 60691*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 60694*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 4,  // Results = #5
/* 60702*/        OPC_EmitNode1, TARGET_VAL(X86::KANDNWrr), 0,
                      MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/* 60710*/        OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/* 60713*/        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, immAllOnesV:{ *:[v2i1] })) - 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] })
/* 60721*/      /*Scope*/ 48, /*->60770*/
/* 60722*/        OPC_MoveChild0,
/* 60723*/        OPC_CheckImmAllOnesV,
/* 60724*/        OPC_MoveParent,
/* 60725*/        OPC_RecordChild1, // #1 = $src1
/* 60726*/        OPC_MoveParent,
/* 60727*/        OPC_CheckType, MVT::v2i1,
/* 60729*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 60732*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 1, 2,  // Results = #3
/* 60740*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 60743*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 4,  // Results = #5
/* 60751*/        OPC_EmitNode1, TARGET_VAL(X86::KANDNWrr), 0,
                      MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/* 60759*/        OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/* 60762*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2i1, 2/*#Ops*/, 6, 7, 
                  // Src: (and:{ *:[v2i1] } VK2:{ *:[v2i1] }:$src2, (xor:{ *:[v2i1] } immAllOnesV:{ *:[v2i1] }, 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] })
/* 60770*/      0, /*End of Scope*/
/* 60771*/    /*Scope*/ 53, /*->60825*/
/* 60772*/      OPC_MoveChild0,
/* 60773*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 60776*/      OPC_MoveChild0,
/* 60777*/      OPC_CheckImmAllOnesV,
/* 60778*/      OPC_MoveParent,
/* 60779*/      OPC_RecordChild1, // #0 = $src1
/* 60780*/      OPC_MoveParent,
/* 60781*/      OPC_RecordChild1, // #1 = $src2
/* 60782*/      OPC_CheckType, MVT::v4i1,
/* 60784*/      OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 60787*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/* 60795*/      OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 60798*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v16i1, 2/*#Ops*/, 1, 4,  // Results = #5
/* 60806*/      OPC_EmitNode1, TARGET_VAL(X86::KANDNWrr), 0,
                    MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/* 60814*/      OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/* 60817*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v4i1, 2/*#Ops*/, 6, 7, 
                // Src: (and:{ *:[v4i1] } (xor:{ *:[v4i1] } immAllOnesV:{ *:[v4i1] }, 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] })
/* 60825*/    /*Scope*/ 70|128,3/*454*/, /*->61281*/
/* 60827*/      OPC_RecordChild0, // #0 = $src2
/* 60828*/      OPC_MoveChild1,
/* 60829*/      OPC_SwitchOpcode /*2 cases */, 100, TARGET_VAL(ISD::XOR),// ->60933
/* 60833*/        OPC_Scope, 48, /*->60883*/ // 2 children in Scope
/* 60835*/          OPC_RecordChild0, // #1 = $src1
/* 60836*/          OPC_MoveChild1,
/* 60837*/          OPC_CheckImmAllOnesV,
/* 60838*/          OPC_MoveParent,
/* 60839*/          OPC_MoveParent,
/* 60840*/          OPC_CheckType, MVT::v4i1,
/* 60842*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 60845*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 1, 2,  // Results = #3
/* 60853*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 60856*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 0, 4,  // Results = #5
/* 60864*/          OPC_EmitNode1, TARGET_VAL(X86::KANDNWrr), 0,
                        MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/* 60872*/          OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/* 60875*/          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, immAllOnesV:{ *:[v4i1] })) - 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] })
/* 60883*/        /*Scope*/ 48, /*->60932*/
/* 60884*/          OPC_MoveChild0,
/* 60885*/          OPC_CheckImmAllOnesV,
/* 60886*/          OPC_MoveParent,
/* 60887*/          OPC_RecordChild1, // #1 = $src1
/* 60888*/          OPC_MoveParent,
/* 60889*/          OPC_CheckType, MVT::v4i1,
/* 60891*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 60894*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 1, 2,  // Results = #3
/* 60902*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 60905*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 0, 4,  // Results = #5
/* 60913*/          OPC_EmitNode1, TARGET_VAL(X86::KANDNWrr), 0,
                        MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/* 60921*/          OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/* 60924*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i1, 2/*#Ops*/, 6, 7, 
                    // Src: (and:{ *:[v4i1] } VK4:{ *:[v4i1] }:$src2, (xor:{ *:[v4i1] } immAllOnesV:{ *:[v4i1] }, 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] })
/* 60932*/        0, /*End of Scope*/
/* 60933*/      /*SwitchOpcode*/ 87|128,2/*343*/, TARGET_VAL(X86ISD::CMPM),// ->61280
/* 60937*/        OPC_RecordChild0, // #1 = $src1
/* 60938*/        OPC_Scope, 84, /*->61024*/ // 4 children in Scope
/* 60940*/          OPC_CheckChild0Type, MVT::v8f32,
/* 60942*/          OPC_RecordChild1, // #2 = $src2
/* 60943*/          OPC_RecordChild2, // #3 = $cc
/* 60944*/          OPC_MoveChild2,
/* 60945*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 60948*/          OPC_MoveParent,
/* 60949*/          OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 60951*/          OPC_MoveParent,
/* 60952*/          OPC_CheckType, MVT::v8i1,
/* 60954*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 60956*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 60959*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 0, 4,  // Results = #5
/* 60967*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16f32, 0/*#Ops*/,  // Results = #6
/* 60973*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 60976*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16f32, 3/*#Ops*/, 6, 1, 7,  // Results = #8
/* 60985*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16f32, 0/*#Ops*/,  // Results = #9
/* 60991*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 60994*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16f32, 3/*#Ops*/, 9, 2, 10,  // Results = #11
/* 61003*/          OPC_EmitNode1, TARGET_VAL(X86::VCMPPSZrrik), 0,
                        MVT::v16i1, 4/*#Ops*/, 5, 8, 11, 3,  // Results = #12
/* 61013*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 61016*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 12, 13, 
                    // Src: (and:{ *:[v8i1] } VK8:{ *:[v8i1] }:$mask, (X86cmpm:{ *:[v8i1] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>) - Complexity = 10
                    // 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] }), (timm:{ *:[i8] }):$cc), VK8:{ *:[i32] })
/* 61024*/        /*Scope*/ 84, /*->61109*/
/* 61025*/          OPC_CheckChild0Type, MVT::v4f32,
/* 61027*/          OPC_RecordChild1, // #2 = $src2
/* 61028*/          OPC_RecordChild2, // #3 = $cc
/* 61029*/          OPC_MoveChild2,
/* 61030*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 61033*/          OPC_MoveParent,
/* 61034*/          OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 61036*/          OPC_MoveParent,
/* 61037*/          OPC_CheckType, MVT::v4i1,
/* 61039*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 61041*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 61044*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 0, 4,  // Results = #5
/* 61052*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16f32, 0/*#Ops*/,  // Results = #6
/* 61058*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 61061*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16f32, 3/*#Ops*/, 6, 1, 7,  // Results = #8
/* 61070*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16f32, 0/*#Ops*/,  // Results = #9
/* 61076*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 61079*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16f32, 3/*#Ops*/, 9, 2, 10,  // Results = #11
/* 61088*/          OPC_EmitNode1, TARGET_VAL(X86::VCMPPSZrrik), 0,
                        MVT::v16i1, 4/*#Ops*/, 5, 8, 11, 3,  // Results = #12
/* 61098*/          OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 61101*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i1, 2/*#Ops*/, 12, 13, 
                    // Src: (and:{ *:[v4i1] } VK4:{ *:[v4i1] }:$mask, (X86cmpm:{ *:[v4i1] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>) - Complexity = 10
                    // 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] }), (timm:{ *:[i8] }):$cc), VK4:{ *:[i32] })
/* 61109*/        /*Scope*/ 84, /*->61194*/
/* 61110*/          OPC_CheckChild0Type, MVT::v4f64,
/* 61112*/          OPC_RecordChild1, // #2 = $src2
/* 61113*/          OPC_RecordChild2, // #3 = $cc
/* 61114*/          OPC_MoveChild2,
/* 61115*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 61118*/          OPC_MoveParent,
/* 61119*/          OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 61121*/          OPC_MoveParent,
/* 61122*/          OPC_CheckType, MVT::v4i1,
/* 61124*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 61126*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 61129*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 0, 4,  // Results = #5
/* 61137*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8f64, 0/*#Ops*/,  // Results = #6
/* 61143*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 61146*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8f64, 3/*#Ops*/, 6, 1, 7,  // Results = #8
/* 61155*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8f64, 0/*#Ops*/,  // Results = #9
/* 61161*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 61164*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8f64, 3/*#Ops*/, 9, 2, 10,  // Results = #11
/* 61173*/          OPC_EmitNode1, TARGET_VAL(X86::VCMPPDZrrik), 0,
                        MVT::v8i1, 4/*#Ops*/, 5, 8, 11, 3,  // Results = #12
/* 61183*/          OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 61186*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i1, 2/*#Ops*/, 12, 13, 
                    // Src: (and:{ *:[v4i1] } VK4:{ *:[v4i1] }:$mask, (X86cmpm:{ *:[v4i1] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>) - Complexity = 10
                    // 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] }), (timm:{ *:[i8] }):$cc), VK4:{ *:[i32] })
/* 61194*/        /*Scope*/ 84, /*->61279*/
/* 61195*/          OPC_CheckChild0Type, MVT::v2f64,
/* 61197*/          OPC_RecordChild1, // #2 = $src2
/* 61198*/          OPC_RecordChild2, // #3 = $cc
/* 61199*/          OPC_MoveChild2,
/* 61200*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 61203*/          OPC_MoveParent,
/* 61204*/          OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 61206*/          OPC_MoveParent,
/* 61207*/          OPC_CheckType, MVT::v2i1,
/* 61209*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 61211*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 61214*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 0, 4,  // Results = #5
/* 61222*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8f64, 0/*#Ops*/,  // Results = #6
/* 61228*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 61231*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8f64, 3/*#Ops*/, 6, 1, 7,  // Results = #8
/* 61240*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8f64, 0/*#Ops*/,  // Results = #9
/* 61246*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 61249*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8f64, 3/*#Ops*/, 9, 2, 10,  // Results = #11
/* 61258*/          OPC_EmitNode1, TARGET_VAL(X86::VCMPPDZrrik), 0,
                        MVT::v8i1, 4/*#Ops*/, 5, 8, 11, 3,  // Results = #12
/* 61268*/          OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/* 61271*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2i1, 2/*#Ops*/, 12, 13, 
                    // Src: (and:{ *:[v2i1] } VK2:{ *:[v2i1] }:$mask, (X86cmpm:{ *:[v2i1] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>) - Complexity = 10
                    // 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] }), (timm:{ *:[i8] }):$cc), VK2:{ *:[i32] })
/* 61279*/        0, /*End of Scope*/
/* 61280*/      0, // EndSwitchOpcode
/* 61281*/    /*Scope*/ 95|128,2/*351*/, /*->61634*/
/* 61283*/      OPC_MoveChild0,
/* 61284*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::CMPM),
/* 61287*/      OPC_RecordChild0, // #0 = $src1
/* 61288*/      OPC_Scope, 85, /*->61375*/ // 4 children in Scope
/* 61290*/        OPC_CheckChild0Type, MVT::v8f32,
/* 61292*/        OPC_RecordChild1, // #1 = $src2
/* 61293*/        OPC_RecordChild2, // #2 = $cc
/* 61294*/        OPC_MoveChild2,
/* 61295*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 61298*/        OPC_MoveParent,
/* 61299*/        OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 61301*/        OPC_MoveParent,
/* 61302*/        OPC_RecordChild1, // #3 = $mask
/* 61303*/        OPC_CheckType, MVT::v8i1,
/* 61305*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 61307*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 61310*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 61318*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v16f32, 0/*#Ops*/,  // Results = #6
/* 61324*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 61327*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v16f32, 3/*#Ops*/, 6, 0, 7,  // Results = #8
/* 61336*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v16f32, 0/*#Ops*/,  // Results = #9
/* 61342*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 61345*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v16f32, 3/*#Ops*/, 9, 1, 10,  // Results = #11
/* 61354*/        OPC_EmitNode1, TARGET_VAL(X86::VCMPPSZrrik), 0,
                      MVT::v16i1, 4/*#Ops*/, 5, 8, 11, 2,  // Results = #12
/* 61364*/        OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 61367*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v8i1, 2/*#Ops*/, 12, 13, 
                  // Src: (and:{ *:[v8i1] } (X86cmpm:{ *:[v8i1] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>, VK8:{ *:[v8i1] }:$mask) - Complexity = 10
                  // 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] }), (timm:{ *:[i8] }):$cc), VK8:{ *:[i32] })
/* 61375*/      /*Scope*/ 85, /*->61461*/
/* 61376*/        OPC_CheckChild0Type, MVT::v4f32,
/* 61378*/        OPC_RecordChild1, // #1 = $src2
/* 61379*/        OPC_RecordChild2, // #2 = $cc
/* 61380*/        OPC_MoveChild2,
/* 61381*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 61384*/        OPC_MoveParent,
/* 61385*/        OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 61387*/        OPC_MoveParent,
/* 61388*/        OPC_RecordChild1, // #3 = $mask
/* 61389*/        OPC_CheckType, MVT::v4i1,
/* 61391*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 61393*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 61396*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 61404*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v16f32, 0/*#Ops*/,  // Results = #6
/* 61410*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 61413*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v16f32, 3/*#Ops*/, 6, 0, 7,  // Results = #8
/* 61422*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v16f32, 0/*#Ops*/,  // Results = #9
/* 61428*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 61431*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v16f32, 3/*#Ops*/, 9, 1, 10,  // Results = #11
/* 61440*/        OPC_EmitNode1, TARGET_VAL(X86::VCMPPSZrrik), 0,
                      MVT::v16i1, 4/*#Ops*/, 5, 8, 11, 2,  // Results = #12
/* 61450*/        OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 61453*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i1, 2/*#Ops*/, 12, 13, 
                  // Src: (and:{ *:[v4i1] } (X86cmpm:{ *:[v4i1] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>, VK4:{ *:[v4i1] }:$mask) - Complexity = 10
                  // 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] }), (timm:{ *:[i8] }):$cc), VK4:{ *:[i32] })
/* 61461*/      /*Scope*/ 85, /*->61547*/
/* 61462*/        OPC_CheckChild0Type, MVT::v4f64,
/* 61464*/        OPC_RecordChild1, // #1 = $src2
/* 61465*/        OPC_RecordChild2, // #2 = $cc
/* 61466*/        OPC_MoveChild2,
/* 61467*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 61470*/        OPC_MoveParent,
/* 61471*/        OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 61473*/        OPC_MoveParent,
/* 61474*/        OPC_RecordChild1, // #3 = $mask
/* 61475*/        OPC_CheckType, MVT::v4i1,
/* 61477*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 61479*/        OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 61482*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v8i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 61490*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8f64, 0/*#Ops*/,  // Results = #6
/* 61496*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 61499*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8f64, 3/*#Ops*/, 6, 0, 7,  // Results = #8
/* 61508*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8f64, 0/*#Ops*/,  // Results = #9
/* 61514*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 61517*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8f64, 3/*#Ops*/, 9, 1, 10,  // Results = #11
/* 61526*/        OPC_EmitNode1, TARGET_VAL(X86::VCMPPDZrrik), 0,
                      MVT::v8i1, 4/*#Ops*/, 5, 8, 11, 2,  // Results = #12
/* 61536*/        OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 61539*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i1, 2/*#Ops*/, 12, 13, 
                  // Src: (and:{ *:[v4i1] } (X86cmpm:{ *:[v4i1] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>, VK4:{ *:[v4i1] }:$mask) - Complexity = 10
                  // 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] }), (timm:{ *:[i8] }):$cc), VK4:{ *:[i32] })
/* 61547*/      /*Scope*/ 85, /*->61633*/
/* 61548*/        OPC_CheckChild0Type, MVT::v2f64,
/* 61550*/        OPC_RecordChild1, // #1 = $src2
/* 61551*/        OPC_RecordChild2, // #2 = $cc
/* 61552*/        OPC_MoveChild2,
/* 61553*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 61556*/        OPC_MoveParent,
/* 61557*/        OPC_CheckPredicate, 17, // Predicate_X86cmpm_su
/* 61559*/        OPC_MoveParent,
/* 61560*/        OPC_RecordChild1, // #3 = $mask
/* 61561*/        OPC_CheckType, MVT::v2i1,
/* 61563*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 61565*/        OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 61568*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v8i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 61576*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8f64, 0/*#Ops*/,  // Results = #6
/* 61582*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 61585*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8f64, 3/*#Ops*/, 6, 0, 7,  // Results = #8
/* 61594*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8f64, 0/*#Ops*/,  // Results = #9
/* 61600*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 61603*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8f64, 3/*#Ops*/, 9, 1, 10,  // Results = #11
/* 61612*/        OPC_EmitNode1, TARGET_VAL(X86::VCMPPDZrrik), 0,
                      MVT::v8i1, 4/*#Ops*/, 5, 8, 11, 2,  // Results = #12
/* 61622*/        OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/* 61625*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2i1, 2/*#Ops*/, 12, 13, 
                  // Src: (and:{ *:[v2i1] } (X86cmpm:{ *:[v2i1] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i8] }):$cc)<<P:Predicate_X86cmpm_su>>, VK2:{ *:[v2i1] }:$mask) - Complexity = 10
                  // 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] }), (timm:{ *:[i8] }):$cc), VK2:{ *:[i32] })
/* 61633*/      0, /*End of Scope*/
/* 61634*/    /*Scope*/ 106|128,10/*1386*/, /*->63022*/
/* 61636*/      OPC_RecordChild0, // #0 = $mask
/* 61637*/      OPC_Scope, 4|128,5/*644*/, /*->62284*/ // 3 children in Scope
/* 61640*/        OPC_RecordChild1, // #1 = $cc
/* 61641*/        OPC_MoveChild1,
/* 61642*/        OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 61645*/        OPC_RecordChild0, // #2 = $src1
/* 61646*/        OPC_Scope, 52, /*->61700*/ // 12 children in Scope
/* 61648*/          OPC_CheckChild0Type, MVT::v64i8,
/* 61650*/          OPC_RecordChild1, // #3 = $src2
/* 61651*/          OPC_MoveChild2,
/* 61652*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 61655*/          OPC_MoveParent,
/* 61656*/          OPC_Scope, 20, /*->61678*/ // 2 children in Scope
/* 61658*/            OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 61660*/            OPC_MoveParent,
/* 61661*/            OPC_CheckType, MVT::v64i1,
/* 61663*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/* 61665*/            OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 61668*/            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_su>><<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))
/* 61678*/          /*Scope*/ 20, /*->61699*/
/* 61679*/            OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 61681*/            OPC_MoveParent,
/* 61682*/            OPC_CheckType, MVT::v64i1,
/* 61684*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/* 61686*/            OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 61689*/            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_su>><<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))
/* 61699*/          0, /*End of Scope*/
/* 61700*/        /*Scope*/ 52, /*->61753*/
/* 61701*/          OPC_CheckChild0Type, MVT::v32i8,
/* 61703*/          OPC_RecordChild1, // #3 = $src2
/* 61704*/          OPC_MoveChild2,
/* 61705*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 61708*/          OPC_MoveParent,
/* 61709*/          OPC_Scope, 20, /*->61731*/ // 2 children in Scope
/* 61711*/            OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 61713*/            OPC_MoveParent,
/* 61714*/            OPC_CheckType, MVT::v32i1,
/* 61716*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 61718*/            OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 61721*/            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_su>><<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))
/* 61731*/          /*Scope*/ 20, /*->61752*/
/* 61732*/            OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 61734*/            OPC_MoveParent,
/* 61735*/            OPC_CheckType, MVT::v32i1,
/* 61737*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 61739*/            OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 61742*/            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_su>><<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))
/* 61752*/          0, /*End of Scope*/
/* 61753*/        /*Scope*/ 52, /*->61806*/
/* 61754*/          OPC_CheckChild0Type, MVT::v16i8,
/* 61756*/          OPC_RecordChild1, // #3 = $src2
/* 61757*/          OPC_MoveChild2,
/* 61758*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 61761*/          OPC_MoveParent,
/* 61762*/          OPC_Scope, 20, /*->61784*/ // 2 children in Scope
/* 61764*/            OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 61766*/            OPC_MoveParent,
/* 61767*/            OPC_CheckType, MVT::v16i1,
/* 61769*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 61771*/            OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 61774*/            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_su>><<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))
/* 61784*/          /*Scope*/ 20, /*->61805*/
/* 61785*/            OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 61787*/            OPC_MoveParent,
/* 61788*/            OPC_CheckType, MVT::v16i1,
/* 61790*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 61792*/            OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 61795*/            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_su>><<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))
/* 61805*/          0, /*End of Scope*/
/* 61806*/        /*Scope*/ 52, /*->61859*/
/* 61807*/          OPC_CheckChild0Type, MVT::v32i16,
/* 61809*/          OPC_RecordChild1, // #3 = $src2
/* 61810*/          OPC_MoveChild2,
/* 61811*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 61814*/          OPC_MoveParent,
/* 61815*/          OPC_Scope, 20, /*->61837*/ // 2 children in Scope
/* 61817*/            OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 61819*/            OPC_MoveParent,
/* 61820*/            OPC_CheckType, MVT::v32i1,
/* 61822*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/* 61824*/            OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 61827*/            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_su>><<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))
/* 61837*/          /*Scope*/ 20, /*->61858*/
/* 61838*/            OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 61840*/            OPC_MoveParent,
/* 61841*/            OPC_CheckType, MVT::v32i1,
/* 61843*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/* 61845*/            OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 61848*/            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_su>><<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))
/* 61858*/          0, /*End of Scope*/
/* 61859*/        /*Scope*/ 52, /*->61912*/
/* 61860*/          OPC_CheckChild0Type, MVT::v16i16,
/* 61862*/          OPC_RecordChild1, // #3 = $src2
/* 61863*/          OPC_MoveChild2,
/* 61864*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 61867*/          OPC_MoveParent,
/* 61868*/          OPC_Scope, 20, /*->61890*/ // 2 children in Scope
/* 61870*/            OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 61872*/            OPC_MoveParent,
/* 61873*/            OPC_CheckType, MVT::v16i1,
/* 61875*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 61877*/            OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 61880*/            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_su>><<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))
/* 61890*/          /*Scope*/ 20, /*->61911*/
/* 61891*/            OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 61893*/            OPC_MoveParent,
/* 61894*/            OPC_CheckType, MVT::v16i1,
/* 61896*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 61898*/            OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 61901*/            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_su>><<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))
/* 61911*/          0, /*End of Scope*/
/* 61912*/        /*Scope*/ 52, /*->61965*/
/* 61913*/          OPC_CheckChild0Type, MVT::v8i16,
/* 61915*/          OPC_RecordChild1, // #3 = $src2
/* 61916*/          OPC_MoveChild2,
/* 61917*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 61920*/          OPC_MoveParent,
/* 61921*/          OPC_Scope, 20, /*->61943*/ // 2 children in Scope
/* 61923*/            OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 61925*/            OPC_MoveParent,
/* 61926*/            OPC_CheckType, MVT::v8i1,
/* 61928*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 61930*/            OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 61933*/            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_su>><<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))
/* 61943*/          /*Scope*/ 20, /*->61964*/
/* 61944*/            OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 61946*/            OPC_MoveParent,
/* 61947*/            OPC_CheckType, MVT::v8i1,
/* 61949*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 61951*/            OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 61954*/            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_su>><<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))
/* 61964*/          0, /*End of Scope*/
/* 61965*/        /*Scope*/ 52, /*->62018*/
/* 61966*/          OPC_CheckChild0Type, MVT::v16i32,
/* 61968*/          OPC_RecordChild1, // #3 = $src2
/* 61969*/          OPC_MoveChild2,
/* 61970*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 61973*/          OPC_MoveParent,
/* 61974*/          OPC_Scope, 20, /*->61996*/ // 2 children in Scope
/* 61976*/            OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 61978*/            OPC_MoveParent,
/* 61979*/            OPC_CheckType, MVT::v16i1,
/* 61981*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 61983*/            OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 61986*/            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_su>><<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))
/* 61996*/          /*Scope*/ 20, /*->62017*/
/* 61997*/            OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 61999*/            OPC_MoveParent,
/* 62000*/            OPC_CheckType, MVT::v16i1,
/* 62002*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 62004*/            OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 62007*/            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_su>><<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))
/* 62017*/          0, /*End of Scope*/
/* 62018*/        /*Scope*/ 52, /*->62071*/
/* 62019*/          OPC_CheckChild0Type, MVT::v8i32,
/* 62021*/          OPC_RecordChild1, // #3 = $src2
/* 62022*/          OPC_MoveChild2,
/* 62023*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 62026*/          OPC_MoveParent,
/* 62027*/          OPC_Scope, 20, /*->62049*/ // 2 children in Scope
/* 62029*/            OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 62031*/            OPC_MoveParent,
/* 62032*/            OPC_CheckType, MVT::v8i1,
/* 62034*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 62036*/            OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 62039*/            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_su>><<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))
/* 62049*/          /*Scope*/ 20, /*->62070*/
/* 62050*/            OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 62052*/            OPC_MoveParent,
/* 62053*/            OPC_CheckType, MVT::v8i1,
/* 62055*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 62057*/            OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 62060*/            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_su>><<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))
/* 62070*/          0, /*End of Scope*/
/* 62071*/        /*Scope*/ 52, /*->62124*/
/* 62072*/          OPC_CheckChild0Type, MVT::v4i32,
/* 62074*/          OPC_RecordChild1, // #3 = $src2
/* 62075*/          OPC_MoveChild2,
/* 62076*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 62079*/          OPC_MoveParent,
/* 62080*/          OPC_Scope, 20, /*->62102*/ // 2 children in Scope
/* 62082*/            OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 62084*/            OPC_MoveParent,
/* 62085*/            OPC_CheckType, MVT::v4i1,
/* 62087*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 62089*/            OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 62092*/            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_su>><<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))
/* 62102*/          /*Scope*/ 20, /*->62123*/
/* 62103*/            OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 62105*/            OPC_MoveParent,
/* 62106*/            OPC_CheckType, MVT::v4i1,
/* 62108*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 62110*/            OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 62113*/            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_su>><<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))
/* 62123*/          0, /*End of Scope*/
/* 62124*/        /*Scope*/ 52, /*->62177*/
/* 62125*/          OPC_CheckChild0Type, MVT::v8i64,
/* 62127*/          OPC_RecordChild1, // #3 = $src2
/* 62128*/          OPC_MoveChild2,
/* 62129*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 62132*/          OPC_MoveParent,
/* 62133*/          OPC_Scope, 20, /*->62155*/ // 2 children in Scope
/* 62135*/            OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 62137*/            OPC_MoveParent,
/* 62138*/            OPC_CheckType, MVT::v8i1,
/* 62140*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 62142*/            OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 62145*/            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_su>><<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))
/* 62155*/          /*Scope*/ 20, /*->62176*/
/* 62156*/            OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 62158*/            OPC_MoveParent,
/* 62159*/            OPC_CheckType, MVT::v8i1,
/* 62161*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 62163*/            OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 62166*/            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_su>><<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))
/* 62176*/          0, /*End of Scope*/
/* 62177*/        /*Scope*/ 52, /*->62230*/
/* 62178*/          OPC_CheckChild0Type, MVT::v4i64,
/* 62180*/          OPC_RecordChild1, // #3 = $src2
/* 62181*/          OPC_MoveChild2,
/* 62182*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 62185*/          OPC_MoveParent,
/* 62186*/          OPC_Scope, 20, /*->62208*/ // 2 children in Scope
/* 62188*/            OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 62190*/            OPC_MoveParent,
/* 62191*/            OPC_CheckType, MVT::v4i1,
/* 62193*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 62195*/            OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 62198*/            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_su>><<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))
/* 62208*/          /*Scope*/ 20, /*->62229*/
/* 62209*/            OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 62211*/            OPC_MoveParent,
/* 62212*/            OPC_CheckType, MVT::v4i1,
/* 62214*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 62216*/            OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 62219*/            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_su>><<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))
/* 62229*/          0, /*End of Scope*/
/* 62230*/        /*Scope*/ 52, /*->62283*/
/* 62231*/          OPC_CheckChild0Type, MVT::v2i64,
/* 62233*/          OPC_RecordChild1, // #3 = $src2
/* 62234*/          OPC_MoveChild2,
/* 62235*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 62238*/          OPC_MoveParent,
/* 62239*/          OPC_Scope, 20, /*->62261*/ // 2 children in Scope
/* 62241*/            OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 62243*/            OPC_MoveParent,
/* 62244*/            OPC_CheckType, MVT::v2i1,
/* 62246*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 62248*/            OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 62251*/            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_su>><<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))
/* 62261*/          /*Scope*/ 20, /*->62282*/
/* 62262*/            OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 62264*/            OPC_MoveParent,
/* 62265*/            OPC_CheckType, MVT::v2i1,
/* 62267*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 62269*/            OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 62272*/            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_su>><<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))
/* 62282*/          0, /*End of Scope*/
/* 62283*/        0, /*End of Scope*/
/* 62284*/      /*Scope*/ 67, /*->62352*/
/* 62285*/        OPC_MoveChild1,
/* 62286*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VPSHUFBITQMB),
/* 62289*/        OPC_RecordChild0, // #1 = $src1
/* 62290*/        OPC_Scope, 19, /*->62311*/ // 3 children in Scope
/* 62292*/          OPC_CheckChild0Type, MVT::v64i8,
/* 62294*/          OPC_RecordChild1, // #2 = $src2
/* 62295*/          OPC_CheckPredicate, 17, // Predicate_X86Vpshufbitqmb_su
/* 62297*/          OPC_MoveParent,
/* 62298*/          OPC_CheckType, MVT::v64i1,
/* 62300*/          OPC_CheckPatternPredicate, 114, // (Subtarget->hasBITALG())
/* 62302*/          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)<<P:Predicate_X86Vpshufbitqmb_su>>) - Complexity = 7
                    // Dst: (VPSHUFBITQMBZrrk:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/* 62311*/        /*Scope*/ 19, /*->62331*/
/* 62312*/          OPC_CheckChild0Type, MVT::v32i8,
/* 62314*/          OPC_RecordChild1, // #2 = $src2
/* 62315*/          OPC_CheckPredicate, 17, // Predicate_X86Vpshufbitqmb_su
/* 62317*/          OPC_MoveParent,
/* 62318*/          OPC_CheckType, MVT::v32i1,
/* 62320*/          OPC_CheckPatternPredicate, 115, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/* 62322*/          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)<<P:Predicate_X86Vpshufbitqmb_su>>) - Complexity = 7
                    // Dst: (VPSHUFBITQMBZ256rrk:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/* 62331*/        /*Scope*/ 19, /*->62351*/
/* 62332*/          OPC_CheckChild0Type, MVT::v16i8,
/* 62334*/          OPC_RecordChild1, // #2 = $src2
/* 62335*/          OPC_CheckPredicate, 17, // Predicate_X86Vpshufbitqmb_su
/* 62337*/          OPC_MoveParent,
/* 62338*/          OPC_CheckType, MVT::v16i1,
/* 62340*/          OPC_CheckPatternPredicate, 115, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/* 62342*/          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)<<P:Predicate_X86Vpshufbitqmb_su>>) - Complexity = 7
                    // Dst: (VPSHUFBITQMBZ128rrk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/* 62351*/        0, /*End of Scope*/
/* 62352*/      /*Scope*/ 27|128,5/*667*/, /*->63021*/
/* 62354*/        OPC_MoveChild0,
/* 62355*/        OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 62358*/        OPC_RecordChild0, // #1 = $src1
/* 62359*/        OPC_Scope, 54, /*->62415*/ // 12 children in Scope
/* 62361*/          OPC_CheckChild0Type, MVT::v64i8,
/* 62363*/          OPC_RecordChild1, // #2 = $src2
/* 62364*/          OPC_MoveChild2,
/* 62365*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 62368*/          OPC_MoveParent,
/* 62369*/          OPC_Scope, 21, /*->62392*/ // 2 children in Scope
/* 62371*/            OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 62373*/            OPC_MoveParent,
/* 62374*/            OPC_RecordChild1, // #3 = $mask
/* 62375*/            OPC_CheckType, MVT::v64i1,
/* 62377*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/* 62379*/            OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 62382*/            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_su>><<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))
/* 62392*/          /*Scope*/ 21, /*->62414*/
/* 62393*/            OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 62395*/            OPC_MoveParent,
/* 62396*/            OPC_RecordChild1, // #3 = $mask
/* 62397*/            OPC_CheckType, MVT::v64i1,
/* 62399*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/* 62401*/            OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 62404*/            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_su>><<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))
/* 62414*/          0, /*End of Scope*/
/* 62415*/        /*Scope*/ 54, /*->62470*/
/* 62416*/          OPC_CheckChild0Type, MVT::v32i8,
/* 62418*/          OPC_RecordChild1, // #2 = $src2
/* 62419*/          OPC_MoveChild2,
/* 62420*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 62423*/          OPC_MoveParent,
/* 62424*/          OPC_Scope, 21, /*->62447*/ // 2 children in Scope
/* 62426*/            OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 62428*/            OPC_MoveParent,
/* 62429*/            OPC_RecordChild1, // #3 = $mask
/* 62430*/            OPC_CheckType, MVT::v32i1,
/* 62432*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 62434*/            OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 62437*/            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_su>><<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))
/* 62447*/          /*Scope*/ 21, /*->62469*/
/* 62448*/            OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 62450*/            OPC_MoveParent,
/* 62451*/            OPC_RecordChild1, // #3 = $mask
/* 62452*/            OPC_CheckType, MVT::v32i1,
/* 62454*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 62456*/            OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 62459*/            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_su>><<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))
/* 62469*/          0, /*End of Scope*/
/* 62470*/        /*Scope*/ 54, /*->62525*/
/* 62471*/          OPC_CheckChild0Type, MVT::v16i8,
/* 62473*/          OPC_RecordChild1, // #2 = $src2
/* 62474*/          OPC_MoveChild2,
/* 62475*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 62478*/          OPC_MoveParent,
/* 62479*/          OPC_Scope, 21, /*->62502*/ // 2 children in Scope
/* 62481*/            OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 62483*/            OPC_MoveParent,
/* 62484*/            OPC_RecordChild1, // #3 = $mask
/* 62485*/            OPC_CheckType, MVT::v16i1,
/* 62487*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 62489*/            OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 62492*/            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_su>><<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))
/* 62502*/          /*Scope*/ 21, /*->62524*/
/* 62503*/            OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 62505*/            OPC_MoveParent,
/* 62506*/            OPC_RecordChild1, // #3 = $mask
/* 62507*/            OPC_CheckType, MVT::v16i1,
/* 62509*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 62511*/            OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 62514*/            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_su>><<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))
/* 62524*/          0, /*End of Scope*/
/* 62525*/        /*Scope*/ 54, /*->62580*/
/* 62526*/          OPC_CheckChild0Type, MVT::v32i16,
/* 62528*/          OPC_RecordChild1, // #2 = $src2
/* 62529*/          OPC_MoveChild2,
/* 62530*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 62533*/          OPC_MoveParent,
/* 62534*/          OPC_Scope, 21, /*->62557*/ // 2 children in Scope
/* 62536*/            OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 62538*/            OPC_MoveParent,
/* 62539*/            OPC_RecordChild1, // #3 = $mask
/* 62540*/            OPC_CheckType, MVT::v32i1,
/* 62542*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/* 62544*/            OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 62547*/            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_su>><<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))
/* 62557*/          /*Scope*/ 21, /*->62579*/
/* 62558*/            OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 62560*/            OPC_MoveParent,
/* 62561*/            OPC_RecordChild1, // #3 = $mask
/* 62562*/            OPC_CheckType, MVT::v32i1,
/* 62564*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/* 62566*/            OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 62569*/            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_su>><<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))
/* 62579*/          0, /*End of Scope*/
/* 62580*/        /*Scope*/ 54, /*->62635*/
/* 62581*/          OPC_CheckChild0Type, MVT::v16i16,
/* 62583*/          OPC_RecordChild1, // #2 = $src2
/* 62584*/          OPC_MoveChild2,
/* 62585*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 62588*/          OPC_MoveParent,
/* 62589*/          OPC_Scope, 21, /*->62612*/ // 2 children in Scope
/* 62591*/            OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 62593*/            OPC_MoveParent,
/* 62594*/            OPC_RecordChild1, // #3 = $mask
/* 62595*/            OPC_CheckType, MVT::v16i1,
/* 62597*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 62599*/            OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 62602*/            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_su>><<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))
/* 62612*/          /*Scope*/ 21, /*->62634*/
/* 62613*/            OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 62615*/            OPC_MoveParent,
/* 62616*/            OPC_RecordChild1, // #3 = $mask
/* 62617*/            OPC_CheckType, MVT::v16i1,
/* 62619*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 62621*/            OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 62624*/            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_su>><<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))
/* 62634*/          0, /*End of Scope*/
/* 62635*/        /*Scope*/ 54, /*->62690*/
/* 62636*/          OPC_CheckChild0Type, MVT::v8i16,
/* 62638*/          OPC_RecordChild1, // #2 = $src2
/* 62639*/          OPC_MoveChild2,
/* 62640*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 62643*/          OPC_MoveParent,
/* 62644*/          OPC_Scope, 21, /*->62667*/ // 2 children in Scope
/* 62646*/            OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 62648*/            OPC_MoveParent,
/* 62649*/            OPC_RecordChild1, // #3 = $mask
/* 62650*/            OPC_CheckType, MVT::v8i1,
/* 62652*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 62654*/            OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 62657*/            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_su>><<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))
/* 62667*/          /*Scope*/ 21, /*->62689*/
/* 62668*/            OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 62670*/            OPC_MoveParent,
/* 62671*/            OPC_RecordChild1, // #3 = $mask
/* 62672*/            OPC_CheckType, MVT::v8i1,
/* 62674*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 62676*/            OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 62679*/            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_su>><<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))
/* 62689*/          0, /*End of Scope*/
/* 62690*/        /*Scope*/ 54, /*->62745*/
/* 62691*/          OPC_CheckChild0Type, MVT::v16i32,
/* 62693*/          OPC_RecordChild1, // #2 = $src2
/* 62694*/          OPC_MoveChild2,
/* 62695*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 62698*/          OPC_MoveParent,
/* 62699*/          OPC_Scope, 21, /*->62722*/ // 2 children in Scope
/* 62701*/            OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 62703*/            OPC_MoveParent,
/* 62704*/            OPC_RecordChild1, // #3 = $mask
/* 62705*/            OPC_CheckType, MVT::v16i1,
/* 62707*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 62709*/            OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 62712*/            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_su>><<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))
/* 62722*/          /*Scope*/ 21, /*->62744*/
/* 62723*/            OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 62725*/            OPC_MoveParent,
/* 62726*/            OPC_RecordChild1, // #3 = $mask
/* 62727*/            OPC_CheckType, MVT::v16i1,
/* 62729*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 62731*/            OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 62734*/            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_su>><<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))
/* 62744*/          0, /*End of Scope*/
/* 62745*/        /*Scope*/ 54, /*->62800*/
/* 62746*/          OPC_CheckChild0Type, MVT::v8i32,
/* 62748*/          OPC_RecordChild1, // #2 = $src2
/* 62749*/          OPC_MoveChild2,
/* 62750*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 62753*/          OPC_MoveParent,
/* 62754*/          OPC_Scope, 21, /*->62777*/ // 2 children in Scope
/* 62756*/            OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 62758*/            OPC_MoveParent,
/* 62759*/            OPC_RecordChild1, // #3 = $mask
/* 62760*/            OPC_CheckType, MVT::v8i1,
/* 62762*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 62764*/            OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 62767*/            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_su>><<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))
/* 62777*/          /*Scope*/ 21, /*->62799*/
/* 62778*/            OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 62780*/            OPC_MoveParent,
/* 62781*/            OPC_RecordChild1, // #3 = $mask
/* 62782*/            OPC_CheckType, MVT::v8i1,
/* 62784*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 62786*/            OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 62789*/            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_su>><<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))
/* 62799*/          0, /*End of Scope*/
/* 62800*/        /*Scope*/ 54, /*->62855*/
/* 62801*/          OPC_CheckChild0Type, MVT::v4i32,
/* 62803*/          OPC_RecordChild1, // #2 = $src2
/* 62804*/          OPC_MoveChild2,
/* 62805*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 62808*/          OPC_MoveParent,
/* 62809*/          OPC_Scope, 21, /*->62832*/ // 2 children in Scope
/* 62811*/            OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 62813*/            OPC_MoveParent,
/* 62814*/            OPC_RecordChild1, // #3 = $mask
/* 62815*/            OPC_CheckType, MVT::v4i1,
/* 62817*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 62819*/            OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 62822*/            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_su>><<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))
/* 62832*/          /*Scope*/ 21, /*->62854*/
/* 62833*/            OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 62835*/            OPC_MoveParent,
/* 62836*/            OPC_RecordChild1, // #3 = $mask
/* 62837*/            OPC_CheckType, MVT::v4i1,
/* 62839*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 62841*/            OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 62844*/            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_su>><<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))
/* 62854*/          0, /*End of Scope*/
/* 62855*/        /*Scope*/ 54, /*->62910*/
/* 62856*/          OPC_CheckChild0Type, MVT::v8i64,
/* 62858*/          OPC_RecordChild1, // #2 = $src2
/* 62859*/          OPC_MoveChild2,
/* 62860*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 62863*/          OPC_MoveParent,
/* 62864*/          OPC_Scope, 21, /*->62887*/ // 2 children in Scope
/* 62866*/            OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 62868*/            OPC_MoveParent,
/* 62869*/            OPC_RecordChild1, // #3 = $mask
/* 62870*/            OPC_CheckType, MVT::v8i1,
/* 62872*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 62874*/            OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 62877*/            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_su>><<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))
/* 62887*/          /*Scope*/ 21, /*->62909*/
/* 62888*/            OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 62890*/            OPC_MoveParent,
/* 62891*/            OPC_RecordChild1, // #3 = $mask
/* 62892*/            OPC_CheckType, MVT::v8i1,
/* 62894*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 62896*/            OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 62899*/            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_su>><<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))
/* 62909*/          0, /*End of Scope*/
/* 62910*/        /*Scope*/ 54, /*->62965*/
/* 62911*/          OPC_CheckChild0Type, MVT::v4i64,
/* 62913*/          OPC_RecordChild1, // #2 = $src2
/* 62914*/          OPC_MoveChild2,
/* 62915*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 62918*/          OPC_MoveParent,
/* 62919*/          OPC_Scope, 21, /*->62942*/ // 2 children in Scope
/* 62921*/            OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 62923*/            OPC_MoveParent,
/* 62924*/            OPC_RecordChild1, // #3 = $mask
/* 62925*/            OPC_CheckType, MVT::v4i1,
/* 62927*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 62929*/            OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 62932*/            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_su>><<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))
/* 62942*/          /*Scope*/ 21, /*->62964*/
/* 62943*/            OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 62945*/            OPC_MoveParent,
/* 62946*/            OPC_RecordChild1, // #3 = $mask
/* 62947*/            OPC_CheckType, MVT::v4i1,
/* 62949*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 62951*/            OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 62954*/            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_su>><<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))
/* 62964*/          0, /*End of Scope*/
/* 62965*/        /*Scope*/ 54, /*->63020*/
/* 62966*/          OPC_CheckChild0Type, MVT::v2i64,
/* 62968*/          OPC_RecordChild1, // #2 = $src2
/* 62969*/          OPC_MoveChild2,
/* 62970*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 62973*/          OPC_MoveParent,
/* 62974*/          OPC_Scope, 21, /*->62997*/ // 2 children in Scope
/* 62976*/            OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 62978*/            OPC_MoveParent,
/* 62979*/            OPC_RecordChild1, // #3 = $mask
/* 62980*/            OPC_CheckType, MVT::v2i1,
/* 62982*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 62984*/            OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 62987*/            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_su>><<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))
/* 62997*/          /*Scope*/ 21, /*->63019*/
/* 62998*/            OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 63000*/            OPC_MoveParent,
/* 63001*/            OPC_RecordChild1, // #3 = $mask
/* 63002*/            OPC_CheckType, MVT::v2i1,
/* 63004*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 63006*/            OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 63009*/            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_su>><<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))
/* 63019*/          0, /*End of Scope*/
/* 63020*/        0, /*End of Scope*/
/* 63021*/      0, /*End of Scope*/
/* 63022*/    /*Scope*/ 70, /*->63093*/
/* 63023*/      OPC_MoveChild0,
/* 63024*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VPSHUFBITQMB),
/* 63027*/      OPC_RecordChild0, // #0 = $src1
/* 63028*/      OPC_Scope, 20, /*->63050*/ // 3 children in Scope
/* 63030*/        OPC_CheckChild0Type, MVT::v64i8,
/* 63032*/        OPC_RecordChild1, // #1 = $src2
/* 63033*/        OPC_CheckPredicate, 17, // Predicate_X86Vpshufbitqmb_su
/* 63035*/        OPC_MoveParent,
/* 63036*/        OPC_RecordChild1, // #2 = $mask
/* 63037*/        OPC_CheckType, MVT::v64i1,
/* 63039*/        OPC_CheckPatternPredicate, 114, // (Subtarget->hasBITALG())
/* 63041*/        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)<<P:Predicate_X86Vpshufbitqmb_su>>, VK64WM:{ *:[v64i1] }:$mask) - Complexity = 7
                  // Dst: (VPSHUFBITQMBZrrk:{ *:[v64i1] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/* 63050*/      /*Scope*/ 20, /*->63071*/
/* 63051*/        OPC_CheckChild0Type, MVT::v32i8,
/* 63053*/        OPC_RecordChild1, // #1 = $src2
/* 63054*/        OPC_CheckPredicate, 17, // Predicate_X86Vpshufbitqmb_su
/* 63056*/        OPC_MoveParent,
/* 63057*/        OPC_RecordChild1, // #2 = $mask
/* 63058*/        OPC_CheckType, MVT::v32i1,
/* 63060*/        OPC_CheckPatternPredicate, 115, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/* 63062*/        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)<<P:Predicate_X86Vpshufbitqmb_su>>, VK32WM:{ *:[v32i1] }:$mask) - Complexity = 7
                  // Dst: (VPSHUFBITQMBZ256rrk:{ *:[v32i1] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/* 63071*/      /*Scope*/ 20, /*->63092*/
/* 63072*/        OPC_CheckChild0Type, MVT::v16i8,
/* 63074*/        OPC_RecordChild1, // #1 = $src2
/* 63075*/        OPC_CheckPredicate, 17, // Predicate_X86Vpshufbitqmb_su
/* 63077*/        OPC_MoveParent,
/* 63078*/        OPC_RecordChild1, // #2 = $mask
/* 63079*/        OPC_CheckType, MVT::v16i1,
/* 63081*/        OPC_CheckPatternPredicate, 115, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/* 63083*/        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)<<P:Predicate_X86Vpshufbitqmb_su>>, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 7
                  // Dst: (VPSHUFBITQMBZ128rrk:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/* 63092*/      0, /*End of Scope*/
/* 63093*/    /*Scope*/ 3|128,26/*3331*/, /*->66426*/
/* 63095*/      OPC_RecordChild0, // #0 = $mask
/* 63096*/      OPC_Scope, 88|128,10/*1368*/, /*->64467*/ // 3 children in Scope
/* 63099*/        OPC_RecordChild1, // #1 = $cc
/* 63100*/        OPC_MoveChild1,
/* 63101*/        OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 63104*/        OPC_RecordChild0, // #2 = $src1
/* 63105*/        OPC_Scope, 40|128,1/*168*/, /*->63276*/ // 8 children in Scope
/* 63108*/          OPC_CheckChild0Type, MVT::v8i32,
/* 63110*/          OPC_RecordChild1, // #3 = $src2
/* 63111*/          OPC_MoveChild2,
/* 63112*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 63115*/          OPC_MoveParent,
/* 63116*/          OPC_Scope, 78, /*->63196*/ // 2 children in Scope
/* 63118*/            OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 63120*/            OPC_MoveParent,
/* 63121*/            OPC_CheckType, MVT::v8i1,
/* 63123*/            OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 63125*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 63128*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 0, 4,  // Results = #5
/* 63136*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #6
/* 63142*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 63145*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 6, 2, 7,  // Results = #8
/* 63154*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #9
/* 63160*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 63163*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 9, 3, 10,  // Results = #11
/* 63172*/            OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 63175*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPDZrrik), 0,
                          MVT::v16i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 63185*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 63188*/            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_su>><<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] })
/* 63196*/          /*Scope*/ 78, /*->63275*/
/* 63197*/            OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 63199*/            OPC_MoveParent,
/* 63200*/            OPC_CheckType, MVT::v8i1,
/* 63202*/            OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 63204*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 63207*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 0, 4,  // Results = #5
/* 63215*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #6
/* 63221*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 63224*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 6, 2, 7,  // Results = #8
/* 63233*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #9
/* 63239*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 63242*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 9, 3, 10,  // Results = #11
/* 63251*/            OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 63254*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPUDZrrik), 0,
                          MVT::v16i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 63264*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 63267*/            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_su>><<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] })
/* 63275*/          0, /*End of Scope*/
/* 63276*/        /*Scope*/ 40|128,1/*168*/, /*->63446*/
/* 63278*/          OPC_CheckChild0Type, MVT::v4i32,
/* 63280*/          OPC_RecordChild1, // #3 = $src2
/* 63281*/          OPC_MoveChild2,
/* 63282*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 63285*/          OPC_MoveParent,
/* 63286*/          OPC_Scope, 78, /*->63366*/ // 2 children in Scope
/* 63288*/            OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 63290*/            OPC_MoveParent,
/* 63291*/            OPC_CheckType, MVT::v4i1,
/* 63293*/            OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 63295*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 63298*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 0, 4,  // Results = #5
/* 63306*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #6
/* 63312*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 63315*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 6, 2, 7,  // Results = #8
/* 63324*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #9
/* 63330*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 63333*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 9, 3, 10,  // Results = #11
/* 63342*/            OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 63345*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPDZrrik), 0,
                          MVT::v16i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 63355*/            OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 63358*/            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_su>><<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] })
/* 63366*/          /*Scope*/ 78, /*->63445*/
/* 63367*/            OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 63369*/            OPC_MoveParent,
/* 63370*/            OPC_CheckType, MVT::v4i1,
/* 63372*/            OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 63374*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 63377*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 0, 4,  // Results = #5
/* 63385*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #6
/* 63391*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 63394*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 6, 2, 7,  // Results = #8
/* 63403*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #9
/* 63409*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 63412*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 9, 3, 10,  // Results = #11
/* 63421*/            OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 63424*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPUDZrrik), 0,
                          MVT::v16i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 63434*/            OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 63437*/            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_su>><<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] })
/* 63445*/          0, /*End of Scope*/
/* 63446*/        /*Scope*/ 40|128,1/*168*/, /*->63616*/
/* 63448*/          OPC_CheckChild0Type, MVT::v4i64,
/* 63450*/          OPC_RecordChild1, // #3 = $src2
/* 63451*/          OPC_MoveChild2,
/* 63452*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 63455*/          OPC_MoveParent,
/* 63456*/          OPC_Scope, 78, /*->63536*/ // 2 children in Scope
/* 63458*/            OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 63460*/            OPC_MoveParent,
/* 63461*/            OPC_CheckType, MVT::v4i1,
/* 63463*/            OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 63465*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 63468*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 0, 4,  // Results = #5
/* 63476*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #6
/* 63482*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 63485*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 6, 2, 7,  // Results = #8
/* 63494*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #9
/* 63500*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 63503*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 9, 3, 10,  // Results = #11
/* 63512*/            OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 63515*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPQZrrik), 0,
                          MVT::v8i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 63525*/            OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 63528*/            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_su>><<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] })
/* 63536*/          /*Scope*/ 78, /*->63615*/
/* 63537*/            OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 63539*/            OPC_MoveParent,
/* 63540*/            OPC_CheckType, MVT::v4i1,
/* 63542*/            OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 63544*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 63547*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 0, 4,  // Results = #5
/* 63555*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #6
/* 63561*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 63564*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 6, 2, 7,  // Results = #8
/* 63573*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #9
/* 63579*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 63582*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 9, 3, 10,  // Results = #11
/* 63591*/            OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 63594*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPUQZrrik), 0,
                          MVT::v8i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 63604*/            OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 63607*/            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_su>><<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] })
/* 63615*/          0, /*End of Scope*/
/* 63616*/        /*Scope*/ 40|128,1/*168*/, /*->63786*/
/* 63618*/          OPC_CheckChild0Type, MVT::v2i64,
/* 63620*/          OPC_RecordChild1, // #3 = $src2
/* 63621*/          OPC_MoveChild2,
/* 63622*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 63625*/          OPC_MoveParent,
/* 63626*/          OPC_Scope, 78, /*->63706*/ // 2 children in Scope
/* 63628*/            OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 63630*/            OPC_MoveParent,
/* 63631*/            OPC_CheckType, MVT::v2i1,
/* 63633*/            OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 63635*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 63638*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 0, 4,  // Results = #5
/* 63646*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #6
/* 63652*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 63655*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 6, 2, 7,  // Results = #8
/* 63664*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #9
/* 63670*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 63673*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 9, 3, 10,  // Results = #11
/* 63682*/            OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 63685*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPQZrrik), 0,
                          MVT::v8i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 63695*/            OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/* 63698*/            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_su>><<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] })
/* 63706*/          /*Scope*/ 78, /*->63785*/
/* 63707*/            OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 63709*/            OPC_MoveParent,
/* 63710*/            OPC_CheckType, MVT::v2i1,
/* 63712*/            OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 63714*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 63717*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 0, 4,  // Results = #5
/* 63725*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #6
/* 63731*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 63734*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 6, 2, 7,  // Results = #8
/* 63743*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #9
/* 63749*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 63752*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 9, 3, 10,  // Results = #11
/* 63761*/            OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 63764*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPUQZrrik), 0,
                          MVT::v8i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 63774*/            OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/* 63777*/            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_su>><<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] })
/* 63785*/          0, /*End of Scope*/
/* 63786*/        /*Scope*/ 40|128,1/*168*/, /*->63956*/
/* 63788*/          OPC_CheckChild0Type, MVT::v32i8,
/* 63790*/          OPC_RecordChild1, // #3 = $src2
/* 63791*/          OPC_MoveChild2,
/* 63792*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 63795*/          OPC_MoveParent,
/* 63796*/          OPC_Scope, 78, /*->63876*/ // 2 children in Scope
/* 63798*/            OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 63800*/            OPC_MoveParent,
/* 63801*/            OPC_CheckType, MVT::v32i1,
/* 63803*/            OPC_CheckPatternPredicate, 117, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/* 63805*/            OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/* 63808*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v64i1, 2/*#Ops*/, 0, 4,  // Results = #5
/* 63816*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v64i8, 0/*#Ops*/,  // Results = #6
/* 63822*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 63825*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v64i8, 3/*#Ops*/, 6, 2, 7,  // Results = #8
/* 63834*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v64i8, 0/*#Ops*/,  // Results = #9
/* 63840*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 63843*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v64i8, 3/*#Ops*/, 9, 3, 10,  // Results = #11
/* 63852*/            OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 63855*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPBZrrik), 0,
                          MVT::v64i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 63865*/            OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/* 63868*/            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_su>><<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] })
/* 63876*/          /*Scope*/ 78, /*->63955*/
/* 63877*/            OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 63879*/            OPC_MoveParent,
/* 63880*/            OPC_CheckType, MVT::v32i1,
/* 63882*/            OPC_CheckPatternPredicate, 117, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/* 63884*/            OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/* 63887*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v64i1, 2/*#Ops*/, 0, 4,  // Results = #5
/* 63895*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v64i8, 0/*#Ops*/,  // Results = #6
/* 63901*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 63904*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v64i8, 3/*#Ops*/, 6, 2, 7,  // Results = #8
/* 63913*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v64i8, 0/*#Ops*/,  // Results = #9
/* 63919*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 63922*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v64i8, 3/*#Ops*/, 9, 3, 10,  // Results = #11
/* 63931*/            OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 63934*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPUBZrrik), 0,
                          MVT::v64i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 63944*/            OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/* 63947*/            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_su>><<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] })
/* 63955*/          0, /*End of Scope*/
/* 63956*/        /*Scope*/ 40|128,1/*168*/, /*->64126*/
/* 63958*/          OPC_CheckChild0Type, MVT::v16i8,
/* 63960*/          OPC_RecordChild1, // #3 = $src2
/* 63961*/          OPC_MoveChild2,
/* 63962*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 63965*/          OPC_MoveParent,
/* 63966*/          OPC_Scope, 78, /*->64046*/ // 2 children in Scope
/* 63968*/            OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 63970*/            OPC_MoveParent,
/* 63971*/            OPC_CheckType, MVT::v16i1,
/* 63973*/            OPC_CheckPatternPredicate, 117, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/* 63975*/            OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/* 63978*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v64i1, 2/*#Ops*/, 0, 4,  // Results = #5
/* 63986*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v64i8, 0/*#Ops*/,  // Results = #6
/* 63992*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 63995*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v64i8, 3/*#Ops*/, 6, 2, 7,  // Results = #8
/* 64004*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v64i8, 0/*#Ops*/,  // Results = #9
/* 64010*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 64013*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v64i8, 3/*#Ops*/, 9, 3, 10,  // Results = #11
/* 64022*/            OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 64025*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPBZrrik), 0,
                          MVT::v64i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 64035*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 64038*/            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_su>><<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] })
/* 64046*/          /*Scope*/ 78, /*->64125*/
/* 64047*/            OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 64049*/            OPC_MoveParent,
/* 64050*/            OPC_CheckType, MVT::v16i1,
/* 64052*/            OPC_CheckPatternPredicate, 117, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/* 64054*/            OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/* 64057*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v64i1, 2/*#Ops*/, 0, 4,  // Results = #5
/* 64065*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v64i8, 0/*#Ops*/,  // Results = #6
/* 64071*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 64074*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v64i8, 3/*#Ops*/, 6, 2, 7,  // Results = #8
/* 64083*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v64i8, 0/*#Ops*/,  // Results = #9
/* 64089*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 64092*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v64i8, 3/*#Ops*/, 9, 3, 10,  // Results = #11
/* 64101*/            OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 64104*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPUBZrrik), 0,
                          MVT::v64i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 64114*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 64117*/            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_su>><<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] })
/* 64125*/          0, /*End of Scope*/
/* 64126*/        /*Scope*/ 40|128,1/*168*/, /*->64296*/
/* 64128*/          OPC_CheckChild0Type, MVT::v16i16,
/* 64130*/          OPC_RecordChild1, // #3 = $src2
/* 64131*/          OPC_MoveChild2,
/* 64132*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 64135*/          OPC_MoveParent,
/* 64136*/          OPC_Scope, 78, /*->64216*/ // 2 children in Scope
/* 64138*/            OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 64140*/            OPC_MoveParent,
/* 64141*/            OPC_CheckType, MVT::v16i1,
/* 64143*/            OPC_CheckPatternPredicate, 117, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/* 64145*/            OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/* 64148*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v32i1, 2/*#Ops*/, 0, 4,  // Results = #5
/* 64156*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #6
/* 64162*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 64165*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 6, 2, 7,  // Results = #8
/* 64174*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #9
/* 64180*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 64183*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 9, 3, 10,  // Results = #11
/* 64192*/            OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 64195*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPWZrrik), 0,
                          MVT::v32i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 64205*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 64208*/            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_su>><<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] })
/* 64216*/          /*Scope*/ 78, /*->64295*/
/* 64217*/            OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 64219*/            OPC_MoveParent,
/* 64220*/            OPC_CheckType, MVT::v16i1,
/* 64222*/            OPC_CheckPatternPredicate, 117, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/* 64224*/            OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/* 64227*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v32i1, 2/*#Ops*/, 0, 4,  // Results = #5
/* 64235*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #6
/* 64241*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 64244*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 6, 2, 7,  // Results = #8
/* 64253*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #9
/* 64259*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 64262*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 9, 3, 10,  // Results = #11
/* 64271*/            OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 64274*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPUWZrrik), 0,
                          MVT::v32i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 64284*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 64287*/            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_su>><<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] })
/* 64295*/          0, /*End of Scope*/
/* 64296*/        /*Scope*/ 40|128,1/*168*/, /*->64466*/
/* 64298*/          OPC_CheckChild0Type, MVT::v8i16,
/* 64300*/          OPC_RecordChild1, // #3 = $src2
/* 64301*/          OPC_MoveChild2,
/* 64302*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 64305*/          OPC_MoveParent,
/* 64306*/          OPC_Scope, 78, /*->64386*/ // 2 children in Scope
/* 64308*/            OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 64310*/            OPC_MoveParent,
/* 64311*/            OPC_CheckType, MVT::v8i1,
/* 64313*/            OPC_CheckPatternPredicate, 117, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/* 64315*/            OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/* 64318*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v32i1, 2/*#Ops*/, 0, 4,  // Results = #5
/* 64326*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #6
/* 64332*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 64335*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 6, 2, 7,  // Results = #8
/* 64344*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #9
/* 64350*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 64353*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 9, 3, 10,  // Results = #11
/* 64362*/            OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 64365*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPWZrrik), 0,
                          MVT::v32i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 64375*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 64378*/            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_su>><<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] })
/* 64386*/          /*Scope*/ 78, /*->64465*/
/* 64387*/            OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 64389*/            OPC_MoveParent,
/* 64390*/            OPC_CheckType, MVT::v8i1,
/* 64392*/            OPC_CheckPatternPredicate, 117, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/* 64394*/            OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/* 64397*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v32i1, 2/*#Ops*/, 0, 4,  // Results = #5
/* 64405*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #6
/* 64411*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 64414*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 6, 2, 7,  // Results = #8
/* 64423*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #9
/* 64429*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 64432*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 9, 3, 10,  // Results = #11
/* 64441*/            OPC_EmitNodeXForm, 8, 1, // X86pcmpm_imm
/* 64444*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPUWZrrik), 0,
                          MVT::v32i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 64454*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 64457*/            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_su>><<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] })
/* 64465*/          0, /*End of Scope*/
/* 64466*/        0, /*End of Scope*/
/* 64467*/      /*Scope*/ 103|128,10/*1383*/, /*->65852*/
/* 64469*/        OPC_MoveChild0,
/* 64470*/        OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
/* 64473*/        OPC_RecordChild0, // #1 = $src1
/* 64474*/        OPC_Scope, 42|128,1/*170*/, /*->64647*/ // 8 children in Scope
/* 64477*/          OPC_CheckChild0Type, MVT::v8i32,
/* 64479*/          OPC_RecordChild1, // #2 = $src2
/* 64480*/          OPC_MoveChild2,
/* 64481*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 64484*/          OPC_MoveParent,
/* 64485*/          OPC_Scope, 79, /*->64566*/ // 2 children in Scope
/* 64487*/            OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 64489*/            OPC_MoveParent,
/* 64490*/            OPC_RecordChild1, // #3 = $mask
/* 64491*/            OPC_CheckType, MVT::v8i1,
/* 64493*/            OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 64495*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 64498*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 64506*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #6
/* 64512*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 64515*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 6, 1, 7,  // Results = #8
/* 64524*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #9
/* 64530*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 64533*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 9, 2, 10,  // Results = #11
/* 64542*/            OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 64545*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPDZrrik), 0,
                          MVT::v16i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 64555*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 64558*/            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_su>><<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] })
/* 64566*/          /*Scope*/ 79, /*->64646*/
/* 64567*/            OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 64569*/            OPC_MoveParent,
/* 64570*/            OPC_RecordChild1, // #3 = $mask
/* 64571*/            OPC_CheckType, MVT::v8i1,
/* 64573*/            OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 64575*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 64578*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 64586*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #6
/* 64592*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 64595*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 6, 1, 7,  // Results = #8
/* 64604*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #9
/* 64610*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 64613*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 9, 2, 10,  // Results = #11
/* 64622*/            OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 64625*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPUDZrrik), 0,
                          MVT::v16i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 64635*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 64638*/            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_su>><<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] })
/* 64646*/          0, /*End of Scope*/
/* 64647*/        /*Scope*/ 42|128,1/*170*/, /*->64819*/
/* 64649*/          OPC_CheckChild0Type, MVT::v4i32,
/* 64651*/          OPC_RecordChild1, // #2 = $src2
/* 64652*/          OPC_MoveChild2,
/* 64653*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 64656*/          OPC_MoveParent,
/* 64657*/          OPC_Scope, 79, /*->64738*/ // 2 children in Scope
/* 64659*/            OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 64661*/            OPC_MoveParent,
/* 64662*/            OPC_RecordChild1, // #3 = $mask
/* 64663*/            OPC_CheckType, MVT::v4i1,
/* 64665*/            OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 64667*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 64670*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 64678*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #6
/* 64684*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 64687*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 6, 1, 7,  // Results = #8
/* 64696*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #9
/* 64702*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 64705*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 9, 2, 10,  // Results = #11
/* 64714*/            OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 64717*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPDZrrik), 0,
                          MVT::v16i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 64727*/            OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 64730*/            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_su>><<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] })
/* 64738*/          /*Scope*/ 79, /*->64818*/
/* 64739*/            OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 64741*/            OPC_MoveParent,
/* 64742*/            OPC_RecordChild1, // #3 = $mask
/* 64743*/            OPC_CheckType, MVT::v4i1,
/* 64745*/            OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 64747*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 64750*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 64758*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #6
/* 64764*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 64767*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 6, 1, 7,  // Results = #8
/* 64776*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #9
/* 64782*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 64785*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 9, 2, 10,  // Results = #11
/* 64794*/            OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 64797*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPUDZrrik), 0,
                          MVT::v16i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 64807*/            OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 64810*/            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_su>><<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] })
/* 64818*/          0, /*End of Scope*/
/* 64819*/        /*Scope*/ 42|128,1/*170*/, /*->64991*/
/* 64821*/          OPC_CheckChild0Type, MVT::v4i64,
/* 64823*/          OPC_RecordChild1, // #2 = $src2
/* 64824*/          OPC_MoveChild2,
/* 64825*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 64828*/          OPC_MoveParent,
/* 64829*/          OPC_Scope, 79, /*->64910*/ // 2 children in Scope
/* 64831*/            OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 64833*/            OPC_MoveParent,
/* 64834*/            OPC_RecordChild1, // #3 = $mask
/* 64835*/            OPC_CheckType, MVT::v4i1,
/* 64837*/            OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 64839*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 64842*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 64850*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #6
/* 64856*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 64859*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 6, 1, 7,  // Results = #8
/* 64868*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #9
/* 64874*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 64877*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 9, 2, 10,  // Results = #11
/* 64886*/            OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 64889*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPQZrrik), 0,
                          MVT::v8i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 64899*/            OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 64902*/            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_su>><<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] })
/* 64910*/          /*Scope*/ 79, /*->64990*/
/* 64911*/            OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 64913*/            OPC_MoveParent,
/* 64914*/            OPC_RecordChild1, // #3 = $mask
/* 64915*/            OPC_CheckType, MVT::v4i1,
/* 64917*/            OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 64919*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 64922*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 64930*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #6
/* 64936*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 64939*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 6, 1, 7,  // Results = #8
/* 64948*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #9
/* 64954*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 64957*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 9, 2, 10,  // Results = #11
/* 64966*/            OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 64969*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPUQZrrik), 0,
                          MVT::v8i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 64979*/            OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 64982*/            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_su>><<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] })
/* 64990*/          0, /*End of Scope*/
/* 64991*/        /*Scope*/ 42|128,1/*170*/, /*->65163*/
/* 64993*/          OPC_CheckChild0Type, MVT::v2i64,
/* 64995*/          OPC_RecordChild1, // #2 = $src2
/* 64996*/          OPC_MoveChild2,
/* 64997*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 65000*/          OPC_MoveParent,
/* 65001*/          OPC_Scope, 79, /*->65082*/ // 2 children in Scope
/* 65003*/            OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 65005*/            OPC_MoveParent,
/* 65006*/            OPC_RecordChild1, // #3 = $mask
/* 65007*/            OPC_CheckType, MVT::v2i1,
/* 65009*/            OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 65011*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 65014*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 65022*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #6
/* 65028*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 65031*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 6, 1, 7,  // Results = #8
/* 65040*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #9
/* 65046*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 65049*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 9, 2, 10,  // Results = #11
/* 65058*/            OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 65061*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPQZrrik), 0,
                          MVT::v8i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 65071*/            OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/* 65074*/            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_su>><<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] })
/* 65082*/          /*Scope*/ 79, /*->65162*/
/* 65083*/            OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 65085*/            OPC_MoveParent,
/* 65086*/            OPC_RecordChild1, // #3 = $mask
/* 65087*/            OPC_CheckType, MVT::v2i1,
/* 65089*/            OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 65091*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 65094*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 65102*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #6
/* 65108*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 65111*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 6, 1, 7,  // Results = #8
/* 65120*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #9
/* 65126*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 65129*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 9, 2, 10,  // Results = #11
/* 65138*/            OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 65141*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPUQZrrik), 0,
                          MVT::v8i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 65151*/            OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/* 65154*/            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_su>><<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] })
/* 65162*/          0, /*End of Scope*/
/* 65163*/        /*Scope*/ 42|128,1/*170*/, /*->65335*/
/* 65165*/          OPC_CheckChild0Type, MVT::v32i8,
/* 65167*/          OPC_RecordChild1, // #2 = $src2
/* 65168*/          OPC_MoveChild2,
/* 65169*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 65172*/          OPC_MoveParent,
/* 65173*/          OPC_Scope, 79, /*->65254*/ // 2 children in Scope
/* 65175*/            OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 65177*/            OPC_MoveParent,
/* 65178*/            OPC_RecordChild1, // #3 = $mask
/* 65179*/            OPC_CheckType, MVT::v32i1,
/* 65181*/            OPC_CheckPatternPredicate, 117, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/* 65183*/            OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/* 65186*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v64i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 65194*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v64i8, 0/*#Ops*/,  // Results = #6
/* 65200*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 65203*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v64i8, 3/*#Ops*/, 6, 1, 7,  // Results = #8
/* 65212*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v64i8, 0/*#Ops*/,  // Results = #9
/* 65218*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 65221*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v64i8, 3/*#Ops*/, 9, 2, 10,  // Results = #11
/* 65230*/            OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 65233*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPBZrrik), 0,
                          MVT::v64i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 65243*/            OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/* 65246*/            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_su>><<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] })
/* 65254*/          /*Scope*/ 79, /*->65334*/
/* 65255*/            OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 65257*/            OPC_MoveParent,
/* 65258*/            OPC_RecordChild1, // #3 = $mask
/* 65259*/            OPC_CheckType, MVT::v32i1,
/* 65261*/            OPC_CheckPatternPredicate, 117, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/* 65263*/            OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/* 65266*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v64i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 65274*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v64i8, 0/*#Ops*/,  // Results = #6
/* 65280*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 65283*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v64i8, 3/*#Ops*/, 6, 1, 7,  // Results = #8
/* 65292*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v64i8, 0/*#Ops*/,  // Results = #9
/* 65298*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 65301*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v64i8, 3/*#Ops*/, 9, 2, 10,  // Results = #11
/* 65310*/            OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 65313*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPUBZrrik), 0,
                          MVT::v64i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 65323*/            OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/* 65326*/            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_su>><<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] })
/* 65334*/          0, /*End of Scope*/
/* 65335*/        /*Scope*/ 42|128,1/*170*/, /*->65507*/
/* 65337*/          OPC_CheckChild0Type, MVT::v16i8,
/* 65339*/          OPC_RecordChild1, // #2 = $src2
/* 65340*/          OPC_MoveChild2,
/* 65341*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 65344*/          OPC_MoveParent,
/* 65345*/          OPC_Scope, 79, /*->65426*/ // 2 children in Scope
/* 65347*/            OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 65349*/            OPC_MoveParent,
/* 65350*/            OPC_RecordChild1, // #3 = $mask
/* 65351*/            OPC_CheckType, MVT::v16i1,
/* 65353*/            OPC_CheckPatternPredicate, 117, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/* 65355*/            OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/* 65358*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v64i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 65366*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v64i8, 0/*#Ops*/,  // Results = #6
/* 65372*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 65375*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v64i8, 3/*#Ops*/, 6, 1, 7,  // Results = #8
/* 65384*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v64i8, 0/*#Ops*/,  // Results = #9
/* 65390*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 65393*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v64i8, 3/*#Ops*/, 9, 2, 10,  // Results = #11
/* 65402*/            OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 65405*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPBZrrik), 0,
                          MVT::v64i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 65415*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 65418*/            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_su>><<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] })
/* 65426*/          /*Scope*/ 79, /*->65506*/
/* 65427*/            OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 65429*/            OPC_MoveParent,
/* 65430*/            OPC_RecordChild1, // #3 = $mask
/* 65431*/            OPC_CheckType, MVT::v16i1,
/* 65433*/            OPC_CheckPatternPredicate, 117, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/* 65435*/            OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/* 65438*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v64i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 65446*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v64i8, 0/*#Ops*/,  // Results = #6
/* 65452*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 65455*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v64i8, 3/*#Ops*/, 6, 1, 7,  // Results = #8
/* 65464*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v64i8, 0/*#Ops*/,  // Results = #9
/* 65470*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 65473*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v64i8, 3/*#Ops*/, 9, 2, 10,  // Results = #11
/* 65482*/            OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 65485*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPUBZrrik), 0,
                          MVT::v64i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 65495*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 65498*/            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_su>><<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] })
/* 65506*/          0, /*End of Scope*/
/* 65507*/        /*Scope*/ 42|128,1/*170*/, /*->65679*/
/* 65509*/          OPC_CheckChild0Type, MVT::v16i16,
/* 65511*/          OPC_RecordChild1, // #2 = $src2
/* 65512*/          OPC_MoveChild2,
/* 65513*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 65516*/          OPC_MoveParent,
/* 65517*/          OPC_Scope, 79, /*->65598*/ // 2 children in Scope
/* 65519*/            OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 65521*/            OPC_MoveParent,
/* 65522*/            OPC_RecordChild1, // #3 = $mask
/* 65523*/            OPC_CheckType, MVT::v16i1,
/* 65525*/            OPC_CheckPatternPredicate, 117, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/* 65527*/            OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/* 65530*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v32i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 65538*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #6
/* 65544*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 65547*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 6, 1, 7,  // Results = #8
/* 65556*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #9
/* 65562*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 65565*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 9, 2, 10,  // Results = #11
/* 65574*/            OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 65577*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPWZrrik), 0,
                          MVT::v32i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 65587*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 65590*/            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_su>><<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] })
/* 65598*/          /*Scope*/ 79, /*->65678*/
/* 65599*/            OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 65601*/            OPC_MoveParent,
/* 65602*/            OPC_RecordChild1, // #3 = $mask
/* 65603*/            OPC_CheckType, MVT::v16i1,
/* 65605*/            OPC_CheckPatternPredicate, 117, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/* 65607*/            OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/* 65610*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v32i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 65618*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #6
/* 65624*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 65627*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 6, 1, 7,  // Results = #8
/* 65636*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #9
/* 65642*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 65645*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 9, 2, 10,  // Results = #11
/* 65654*/            OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 65657*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPUWZrrik), 0,
                          MVT::v32i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 65667*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 65670*/            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_su>><<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] })
/* 65678*/          0, /*End of Scope*/
/* 65679*/        /*Scope*/ 42|128,1/*170*/, /*->65851*/
/* 65681*/          OPC_CheckChild0Type, MVT::v8i16,
/* 65683*/          OPC_RecordChild1, // #2 = $src2
/* 65684*/          OPC_MoveChild2,
/* 65685*/          OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/* 65688*/          OPC_MoveParent,
/* 65689*/          OPC_Scope, 79, /*->65770*/ // 2 children in Scope
/* 65691*/            OPC_CheckPredicate, 51, // Predicate_X86pcmpm_su
/* 65693*/            OPC_MoveParent,
/* 65694*/            OPC_RecordChild1, // #3 = $mask
/* 65695*/            OPC_CheckType, MVT::v8i1,
/* 65697*/            OPC_CheckPatternPredicate, 117, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/* 65699*/            OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/* 65702*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v32i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 65710*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #6
/* 65716*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 65719*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 6, 1, 7,  // Results = #8
/* 65728*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #9
/* 65734*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 65737*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 9, 2, 10,  // Results = #11
/* 65746*/            OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 65749*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPWZrrik), 0,
                          MVT::v32i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 65759*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 65762*/            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_su>><<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] })
/* 65770*/          /*Scope*/ 79, /*->65850*/
/* 65771*/            OPC_CheckPredicate, 52, // Predicate_X86pcmpum_su
/* 65773*/            OPC_MoveParent,
/* 65774*/            OPC_RecordChild1, // #3 = $mask
/* 65775*/            OPC_CheckType, MVT::v8i1,
/* 65777*/            OPC_CheckPatternPredicate, 117, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/* 65779*/            OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/* 65782*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v32i1, 2/*#Ops*/, 3, 4,  // Results = #5
/* 65790*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #6
/* 65796*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 65799*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 6, 1, 7,  // Results = #8
/* 65808*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #9
/* 65814*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 65817*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 9, 2, 10,  // Results = #11
/* 65826*/            OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/* 65829*/            OPC_EmitNode1, TARGET_VAL(X86::VPCMPUWZrrik), 0,
                          MVT::v32i1, 4/*#Ops*/, 5, 8, 11, 12,  // Results = #13
/* 65839*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 65842*/            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_su>><<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] })
/* 65850*/          0, /*End of Scope*/
/* 65851*/        0, /*End of Scope*/
/* 65852*/      /*Scope*/ 59|128,4/*571*/, /*->66425*/
/* 65854*/        OPC_RecordChild1, // #1 = $src2
/* 65855*/        OPC_SwitchType /*19 cases */, 35, MVT::v2i64,// ->65893
/* 65858*/          OPC_Scope, 10, /*->65870*/ // 3 children in Scope
/* 65860*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 65862*/            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)
/* 65870*/          /*Scope*/ 10, /*->65881*/
/* 65871*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 65873*/            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)
/* 65881*/          /*Scope*/ 10, /*->65892*/
/* 65882*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 65884*/            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)
/* 65892*/          0, /*End of Scope*/
/* 65893*/        /*SwitchType*/ 35, MVT::v4i64,// ->65930
/* 65895*/          OPC_Scope, 10, /*->65907*/ // 3 children in Scope
/* 65897*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/* 65899*/            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)
/* 65907*/          /*Scope*/ 10, /*->65918*/
/* 65908*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/* 65910*/            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)
/* 65918*/          /*Scope*/ 10, /*->65929*/
/* 65919*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 65921*/            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)
/* 65929*/          0, /*End of Scope*/
/* 65930*/        /*SwitchType*/ 35, MVT::v32i8,// ->65967
/* 65932*/          OPC_Scope, 10, /*->65944*/ // 3 children in Scope
/* 65934*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/* 65936*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDYrr), 0,
                          MVT::v32i8, 2/*#Ops*/, 0, 1, 
                      // Src: (and:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2) - Complexity = 3
                      // Dst: (VPANDYrr:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2)
/* 65944*/          /*Scope*/ 10, /*->65955*/
/* 65945*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/* 65947*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VANDPSYrr), 0,
                          MVT::v32i8, 2/*#Ops*/, 0, 1, 
                      // Src: (and:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2) - Complexity = 3
                      // Dst: (VANDPSYrr:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2)
/* 65955*/          /*Scope*/ 10, /*->65966*/
/* 65956*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 65958*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ256rr), 0,
                          MVT::v32i8, 2/*#Ops*/, 0, 1, 
                      // Src: (and:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2) - Complexity = 3
                      // Dst: (VPANDQZ256rr:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/* 65966*/          0, /*End of Scope*/
/* 65967*/        /*SwitchType*/ 35, MVT::v16i16,// ->66004
/* 65969*/          OPC_Scope, 10, /*->65981*/ // 3 children in Scope
/* 65971*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/* 65973*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDYrr), 0,
                          MVT::v16i16, 2/*#Ops*/, 0, 1, 
                      // Src: (and:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2) - Complexity = 3
                      // Dst: (VPANDYrr:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2)
/* 65981*/          /*Scope*/ 10, /*->65992*/
/* 65982*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/* 65984*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VANDPSYrr), 0,
                          MVT::v16i16, 2/*#Ops*/, 0, 1, 
                      // Src: (and:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2) - Complexity = 3
                      // Dst: (VANDPSYrr:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2)
/* 65992*/          /*Scope*/ 10, /*->66003*/
/* 65993*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 65995*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ256rr), 0,
                          MVT::v16i16, 2/*#Ops*/, 0, 1, 
                      // Src: (and:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2) - Complexity = 3
                      // Dst: (VPANDQZ256rr:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/* 66003*/          0, /*End of Scope*/
/* 66004*/        /*SwitchType*/ 35, MVT::v8i32,// ->66041
/* 66006*/          OPC_Scope, 10, /*->66018*/ // 3 children in Scope
/* 66008*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/* 66010*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDYrr), 0,
                          MVT::v8i32, 2/*#Ops*/, 0, 1, 
                      // Src: (and:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2) - Complexity = 3
                      // Dst: (VPANDYrr:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2)
/* 66018*/          /*Scope*/ 10, /*->66029*/
/* 66019*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/* 66021*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VANDPSYrr), 0,
                          MVT::v8i32, 2/*#Ops*/, 0, 1, 
                      // Src: (and:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2) - Complexity = 3
                      // Dst: (VANDPSYrr:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2)
/* 66029*/          /*Scope*/ 10, /*->66040*/
/* 66030*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 66032*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ256rr), 0,
                          MVT::v8i32, 2/*#Ops*/, 0, 1, 
                      // Src: (and:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2) - Complexity = 3
                      // Dst: (VPANDDZ256rr:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/* 66040*/          0, /*End of Scope*/
/* 66041*/        /*SwitchType*/ 35, MVT::v16i8,// ->66078
/* 66043*/          OPC_Scope, 10, /*->66055*/ // 3 children in Scope
/* 66045*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 66047*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDrr), 0,
                          MVT::v16i8, 2/*#Ops*/, 0, 1, 
                      // Src: (and:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2) - Complexity = 3
                      // Dst: (VPANDrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)
/* 66055*/          /*Scope*/ 10, /*->66066*/
/* 66056*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 66058*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PANDrr), 0,
                          MVT::v16i8, 2/*#Ops*/, 0, 1, 
                      // Src: (and:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2) - Complexity = 3
                      // Dst: (PANDrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)
/* 66066*/          /*Scope*/ 10, /*->66077*/
/* 66067*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 66069*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ128rr), 0,
                          MVT::v16i8, 2/*#Ops*/, 0, 1, 
                      // Src: (and:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2) - Complexity = 3
                      // Dst: (VPANDQZ128rr:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/* 66077*/          0, /*End of Scope*/
/* 66078*/        /*SwitchType*/ 35, MVT::v8i16,// ->66115
/* 66080*/          OPC_Scope, 10, /*->66092*/ // 3 children in Scope
/* 66082*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 66084*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDrr), 0,
                          MVT::v8i16, 2/*#Ops*/, 0, 1, 
                      // Src: (and:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                      // Dst: (VPANDrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/* 66092*/          /*Scope*/ 10, /*->66103*/
/* 66093*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 66095*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PANDrr), 0,
                          MVT::v8i16, 2/*#Ops*/, 0, 1, 
                      // Src: (and:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                      // Dst: (PANDrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/* 66103*/          /*Scope*/ 10, /*->66114*/
/* 66104*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 66106*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ128rr), 0,
                          MVT::v8i16, 2/*#Ops*/, 0, 1, 
                      // Src: (and:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2) - Complexity = 3
                      // Dst: (VPANDQZ128rr:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/* 66114*/          0, /*End of Scope*/
/* 66115*/        /*SwitchType*/ 35, MVT::v4i32,// ->66152
/* 66117*/          OPC_Scope, 10, /*->66129*/ // 3 children in Scope
/* 66119*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 66121*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDrr), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1, 
                      // Src: (and:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 3
                      // Dst: (VPANDrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/* 66129*/          /*Scope*/ 10, /*->66140*/
/* 66130*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 66132*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PANDrr), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1, 
                      // Src: (and:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 3
                      // Dst: (PANDrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/* 66140*/          /*Scope*/ 10, /*->66151*/
/* 66141*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 66143*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ128rr), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1, 
                      // Src: (and:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2) - Complexity = 3
                      // Dst: (VPANDDZ128rr:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/* 66151*/          0, /*End of Scope*/
/* 66152*/        /*SwitchType*/ 57, MVT::v8i1,// ->66211
/* 66154*/          OPC_Scope, 10, /*->66166*/ // 2 children in Scope
/* 66156*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/* 66158*/            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)
/* 66166*/          /*Scope*/ 43, /*->66210*/
/* 66167*/            OPC_CheckPatternPredicate, 116, // (!Subtarget->hasDQI())
/* 66169*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 66172*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/* 66180*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 66183*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 1, 4,  // Results = #5
/* 66191*/            OPC_EmitNode1, TARGET_VAL(X86::KANDWrr), 0,
                          MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/* 66199*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 66202*/            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] })
/* 66210*/          0, /*End of Scope*/
/* 66211*/        /*SwitchType*/ 10, MVT::v16i1,// ->66223
/* 66213*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 66215*/          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)
/* 66223*/        /*SwitchType*/ 10, MVT::v32i1,// ->66235
/* 66225*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/* 66227*/          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)
/* 66235*/        /*SwitchType*/ 10, MVT::v64i1,// ->66247
/* 66237*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/* 66239*/          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)
/* 66247*/        /*SwitchType*/ 10, MVT::v8i64,// ->66259
/* 66249*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 66251*/          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)
/* 66259*/        /*SwitchType*/ 10, MVT::v16i32,// ->66271
/* 66261*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 66263*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZrr), 0,
                        MVT::v16i32, 2/*#Ops*/, 0, 1, 
                    // Src: (and:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2) - Complexity = 3
                    // Dst: (VPANDDZrr:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/* 66271*/        /*SwitchType*/ 10, MVT::v64i8,// ->66283
/* 66273*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 66275*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZrr), 0,
                        MVT::v64i8, 2/*#Ops*/, 0, 1, 
                    // Src: (and:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2) - Complexity = 3
                    // Dst: (VPANDQZrr:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/* 66283*/        /*SwitchType*/ 10, MVT::v32i16,// ->66295
/* 66285*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 66287*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZrr), 0,
                        MVT::v32i16, 2/*#Ops*/, 0, 1, 
                    // Src: (and:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2) - Complexity = 3
                    // Dst: (VPANDQZrr:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/* 66295*/        /*SwitchType*/ 41, MVT::v1i1,// ->66338
/* 66297*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 66300*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/* 66308*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 66311*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 1, 4,  // Results = #5
/* 66319*/          OPC_EmitNode1, TARGET_VAL(X86::KANDWrr), 0,
                        MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/* 66327*/          OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/* 66330*/          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] })
/* 66338*/        /*SwitchType*/ 41, MVT::v2i1,// ->66381
/* 66340*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 66343*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/* 66351*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 66354*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 1, 4,  // Results = #5
/* 66362*/          OPC_EmitNode1, TARGET_VAL(X86::KANDWrr), 0,
                        MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/* 66370*/          OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/* 66373*/          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] })
/* 66381*/        /*SwitchType*/ 41, MVT::v4i1,// ->66424
/* 66383*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 66386*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/* 66394*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 66397*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 1, 4,  // Results = #5
/* 66405*/          OPC_EmitNode1, TARGET_VAL(X86::KANDWrr), 0,
                        MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/* 66413*/          OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/* 66416*/          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] })
/* 66424*/        0, // EndSwitchType
/* 66425*/      0, /*End of Scope*/
/* 66426*/    0, /*End of Scope*/
/* 66427*/  /*SwitchOpcode*/ 8|128,4/*520*/, TARGET_VAL(X86ISD::SMUL),// ->66951
/* 66431*/    OPC_Scope, 73|128,1/*201*/, /*->66635*/ // 4 children in Scope
/* 66434*/      OPC_MoveChild0,
/* 66435*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 66438*/      OPC_RecordMemRef,
/* 66439*/      OPC_RecordNode, // #0 = 'ld' chained node
/* 66440*/      OPC_CheckFoldableChainNode,
/* 66441*/      OPC_RecordChild1, // #1 = $src1
/* 66442*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 66444*/      OPC_Scope, 32, /*->66478*/ // 5 children in Scope
/* 66446*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 66448*/        OPC_MoveParent,
/* 66449*/        OPC_RecordChild1, // #2 = $src2
/* 66450*/        OPC_MoveChild1,
/* 66451*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 66454*/        OPC_CheckPredicate, 13, // Predicate_i16immSExt8
/* 66456*/        OPC_MoveParent,
/* 66457*/        OPC_CheckType, MVT::i16,
/* 66459*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/* 66462*/        OPC_EmitMergeInputChains1_0,
/* 66463*/        OPC_EmitConvertToTarget, 2,
/* 66465*/        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)
/* 66478*/      /*Scope*/ 32, /*->66511*/
/* 66479*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 66481*/        OPC_MoveParent,
/* 66482*/        OPC_RecordChild1, // #2 = $src2
/* 66483*/        OPC_MoveChild1,
/* 66484*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 66487*/        OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/* 66489*/        OPC_MoveParent,
/* 66490*/        OPC_CheckType, MVT::i32,
/* 66492*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/* 66495*/        OPC_EmitMergeInputChains1_0,
/* 66496*/        OPC_EmitConvertToTarget, 2,
/* 66498*/        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)
/* 66511*/      /*Scope*/ 60, /*->66572*/
/* 66512*/        OPC_CheckPredicate, 9, // Predicate_load
/* 66514*/        OPC_MoveParent,
/* 66515*/        OPC_RecordChild1, // #2 = $src2
/* 66516*/        OPC_MoveChild1,
/* 66517*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 66520*/        OPC_Scope, 24, /*->66546*/ // 2 children in Scope
/* 66522*/          OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/* 66524*/          OPC_MoveParent,
/* 66525*/          OPC_CheckType, MVT::i64,
/* 66527*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/* 66530*/          OPC_EmitMergeInputChains1_0,
/* 66531*/          OPC_EmitConvertToTarget, 2,
/* 66533*/          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)
/* 66546*/        /*Scope*/ 24, /*->66571*/
/* 66547*/          OPC_CheckPredicate, 38, // Predicate_i64immSExt32
/* 66549*/          OPC_MoveParent,
/* 66550*/          OPC_CheckType, MVT::i64,
/* 66552*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/* 66555*/          OPC_EmitMergeInputChains1_0,
/* 66556*/          OPC_EmitConvertToTarget, 2,
/* 66558*/          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)
/* 66571*/        0, /*End of Scope*/
/* 66572*/      /*Scope*/ 30, /*->66603*/
/* 66573*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 66575*/        OPC_MoveParent,
/* 66576*/        OPC_RecordChild1, // #2 = $src2
/* 66577*/        OPC_MoveChild1,
/* 66578*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 66581*/        OPC_MoveParent,
/* 66582*/        OPC_CheckType, MVT::i16,
/* 66584*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/* 66587*/        OPC_EmitMergeInputChains1_0,
/* 66588*/        OPC_EmitConvertToTarget, 2,
/* 66590*/        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)
/* 66603*/      /*Scope*/ 30, /*->66634*/
/* 66604*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 66606*/        OPC_MoveParent,
/* 66607*/        OPC_RecordChild1, // #2 = $src2
/* 66608*/        OPC_MoveChild1,
/* 66609*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 66612*/        OPC_MoveParent,
/* 66613*/        OPC_CheckType, MVT::i32,
/* 66615*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/* 66618*/        OPC_EmitMergeInputChains1_0,
/* 66619*/        OPC_EmitConvertToTarget, 2,
/* 66621*/        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)
/* 66634*/      0, /*End of Scope*/
/* 66635*/    /*Scope*/ 82, /*->66718*/
/* 66636*/      OPC_RecordChild0, // #0 = $src1
/* 66637*/      OPC_MoveChild1,
/* 66638*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 66641*/      OPC_RecordMemRef,
/* 66642*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 66643*/      OPC_CheckFoldableChainNode,
/* 66644*/      OPC_RecordChild1, // #2 = $src2
/* 66645*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 66647*/      OPC_Scope, 22, /*->66671*/ // 3 children in Scope
/* 66649*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 66651*/        OPC_MoveParent,
/* 66652*/        OPC_CheckType, MVT::i16,
/* 66654*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 66657*/        OPC_EmitMergeInputChains1_1,
/* 66658*/        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)
/* 66671*/      /*Scope*/ 22, /*->66694*/
/* 66672*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 66674*/        OPC_MoveParent,
/* 66675*/        OPC_CheckType, MVT::i32,
/* 66677*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 66680*/        OPC_EmitMergeInputChains1_1,
/* 66681*/        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)
/* 66694*/      /*Scope*/ 22, /*->66717*/
/* 66695*/        OPC_CheckPredicate, 9, // Predicate_load
/* 66697*/        OPC_MoveParent,
/* 66698*/        OPC_CheckType, MVT::i64,
/* 66700*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 66703*/        OPC_EmitMergeInputChains1_1,
/* 66704*/        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)
/* 66717*/      0, /*End of Scope*/
/* 66718*/    /*Scope*/ 84, /*->66803*/
/* 66719*/      OPC_MoveChild0,
/* 66720*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 66723*/      OPC_RecordMemRef,
/* 66724*/      OPC_RecordNode, // #0 = 'ld' chained node
/* 66725*/      OPC_CheckFoldableChainNode,
/* 66726*/      OPC_RecordChild1, // #1 = $src2
/* 66727*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 66729*/      OPC_Scope, 23, /*->66754*/ // 3 children in Scope
/* 66731*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 66733*/        OPC_MoveParent,
/* 66734*/        OPC_RecordChild1, // #2 = $src1
/* 66735*/        OPC_CheckType, MVT::i16,
/* 66737*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 66740*/        OPC_EmitMergeInputChains1_0,
/* 66741*/        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)
/* 66754*/      /*Scope*/ 23, /*->66778*/
/* 66755*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 66757*/        OPC_MoveParent,
/* 66758*/        OPC_RecordChild1, // #2 = $src1
/* 66759*/        OPC_CheckType, MVT::i32,
/* 66761*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 66764*/        OPC_EmitMergeInputChains1_0,
/* 66765*/        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)
/* 66778*/      /*Scope*/ 23, /*->66802*/
/* 66779*/        OPC_CheckPredicate, 9, // Predicate_load
/* 66781*/        OPC_MoveParent,
/* 66782*/        OPC_RecordChild1, // #2 = $src1
/* 66783*/        OPC_CheckType, MVT::i64,
/* 66785*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 66788*/        OPC_EmitMergeInputChains1_0,
/* 66789*/        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)
/* 66802*/      0, /*End of Scope*/
/* 66803*/    /*Scope*/ 17|128,1/*145*/, /*->66950*/
/* 66805*/      OPC_RecordChild0, // #0 = $src1
/* 66806*/      OPC_RecordChild1, // #1 = $src2
/* 66807*/      OPC_Scope, 104, /*->66913*/ // 4 children in Scope
/* 66809*/        OPC_MoveChild1,
/* 66810*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 66813*/        OPC_Scope, 16, /*->66831*/ // 5 children in Scope
/* 66815*/          OPC_CheckPredicate, 13, // Predicate_i16immSExt8
/* 66817*/          OPC_MoveParent,
/* 66818*/          OPC_CheckType, MVT::i16,
/* 66820*/          OPC_EmitConvertToTarget, 1,
/* 66822*/          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)
/* 66831*/        /*Scope*/ 16, /*->66848*/
/* 66832*/          OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/* 66834*/          OPC_MoveParent,
/* 66835*/          OPC_CheckType, MVT::i32,
/* 66837*/          OPC_EmitConvertToTarget, 1,
/* 66839*/          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)
/* 66848*/        /*Scope*/ 16, /*->66865*/
/* 66849*/          OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/* 66851*/          OPC_MoveParent,
/* 66852*/          OPC_CheckType, MVT::i64,
/* 66854*/          OPC_EmitConvertToTarget, 1,
/* 66856*/          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)
/* 66865*/        /*Scope*/ 16, /*->66882*/
/* 66866*/          OPC_CheckPredicate, 38, // Predicate_i64immSExt32
/* 66868*/          OPC_MoveParent,
/* 66869*/          OPC_CheckType, MVT::i64,
/* 66871*/          OPC_EmitConvertToTarget, 1,
/* 66873*/          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)
/* 66882*/        /*Scope*/ 29, /*->66912*/
/* 66883*/          OPC_MoveParent,
/* 66884*/          OPC_SwitchType /*2 cases */, 11, MVT::i16,// ->66898
/* 66887*/            OPC_EmitConvertToTarget, 1,
/* 66889*/            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)
/* 66898*/          /*SwitchType*/ 11, MVT::i32,// ->66911
/* 66900*/            OPC_EmitConvertToTarget, 1,
/* 66902*/            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)
/* 66911*/          0, // EndSwitchType
/* 66912*/        0, /*End of Scope*/
/* 66913*/      /*Scope*/ 11, /*->66925*/
/* 66914*/        OPC_CheckType, MVT::i16,
/* 66916*/        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)
/* 66925*/      /*Scope*/ 11, /*->66937*/
/* 66926*/        OPC_CheckType, MVT::i32,
/* 66928*/        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)
/* 66937*/      /*Scope*/ 11, /*->66949*/
/* 66938*/        OPC_CheckType, MVT::i64,
/* 66940*/        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)
/* 66949*/      0, /*End of Scope*/
/* 66950*/    0, /*End of Scope*/
/* 66951*/  /*SwitchOpcode*/ 80|128,16/*2128*/, TARGET_VAL(ISD::MUL),// ->69083
/* 66955*/    OPC_Scope, 73|128,1/*201*/, /*->67159*/ // 9 children in Scope
/* 66958*/      OPC_MoveChild0,
/* 66959*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 66962*/      OPC_RecordMemRef,
/* 66963*/      OPC_RecordNode, // #0 = 'ld' chained node
/* 66964*/      OPC_CheckFoldableChainNode,
/* 66965*/      OPC_RecordChild1, // #1 = $src1
/* 66966*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 66968*/      OPC_Scope, 32, /*->67002*/ // 5 children in Scope
/* 66970*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 66972*/        OPC_MoveParent,
/* 66973*/        OPC_RecordChild1, // #2 = $src2
/* 66974*/        OPC_MoveChild1,
/* 66975*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 66978*/        OPC_CheckPredicate, 13, // Predicate_i16immSExt8
/* 66980*/        OPC_MoveParent,
/* 66981*/        OPC_CheckType, MVT::i16,
/* 66983*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/* 66986*/        OPC_EmitMergeInputChains1_0,
/* 66987*/        OPC_EmitConvertToTarget, 2,
/* 66989*/        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)
/* 67002*/      /*Scope*/ 32, /*->67035*/
/* 67003*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 67005*/        OPC_MoveParent,
/* 67006*/        OPC_RecordChild1, // #2 = $src2
/* 67007*/        OPC_MoveChild1,
/* 67008*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 67011*/        OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/* 67013*/        OPC_MoveParent,
/* 67014*/        OPC_CheckType, MVT::i32,
/* 67016*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/* 67019*/        OPC_EmitMergeInputChains1_0,
/* 67020*/        OPC_EmitConvertToTarget, 2,
/* 67022*/        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)
/* 67035*/      /*Scope*/ 60, /*->67096*/
/* 67036*/        OPC_CheckPredicate, 9, // Predicate_load
/* 67038*/        OPC_MoveParent,
/* 67039*/        OPC_RecordChild1, // #2 = $src2
/* 67040*/        OPC_MoveChild1,
/* 67041*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 67044*/        OPC_Scope, 24, /*->67070*/ // 2 children in Scope
/* 67046*/          OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/* 67048*/          OPC_MoveParent,
/* 67049*/          OPC_CheckType, MVT::i64,
/* 67051*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/* 67054*/          OPC_EmitMergeInputChains1_0,
/* 67055*/          OPC_EmitConvertToTarget, 2,
/* 67057*/          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)
/* 67070*/        /*Scope*/ 24, /*->67095*/
/* 67071*/          OPC_CheckPredicate, 38, // Predicate_i64immSExt32
/* 67073*/          OPC_MoveParent,
/* 67074*/          OPC_CheckType, MVT::i64,
/* 67076*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/* 67079*/          OPC_EmitMergeInputChains1_0,
/* 67080*/          OPC_EmitConvertToTarget, 2,
/* 67082*/          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)
/* 67095*/        0, /*End of Scope*/
/* 67096*/      /*Scope*/ 30, /*->67127*/
/* 67097*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 67099*/        OPC_MoveParent,
/* 67100*/        OPC_RecordChild1, // #2 = $src2
/* 67101*/        OPC_MoveChild1,
/* 67102*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 67105*/        OPC_MoveParent,
/* 67106*/        OPC_CheckType, MVT::i16,
/* 67108*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/* 67111*/        OPC_EmitMergeInputChains1_0,
/* 67112*/        OPC_EmitConvertToTarget, 2,
/* 67114*/        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)
/* 67127*/      /*Scope*/ 30, /*->67158*/
/* 67128*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 67130*/        OPC_MoveParent,
/* 67131*/        OPC_RecordChild1, // #2 = $src2
/* 67132*/        OPC_MoveChild1,
/* 67133*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 67136*/        OPC_MoveParent,
/* 67137*/        OPC_CheckType, MVT::i32,
/* 67139*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/* 67142*/        OPC_EmitMergeInputChains1_0,
/* 67143*/        OPC_EmitConvertToTarget, 2,
/* 67145*/        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)
/* 67158*/      0, /*End of Scope*/
/* 67159*/    /*Scope*/ 107, /*->67267*/
/* 67160*/      OPC_RecordChild0, // #0 = physreg input AL
/* 67161*/      OPC_MoveChild1,
/* 67162*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 67165*/      OPC_RecordMemRef,
/* 67166*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 67167*/      OPC_CheckFoldableChainNode,
/* 67168*/      OPC_RecordChild1, // #2 = $src
/* 67169*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 67171*/      OPC_Scope, 24, /*->67197*/ // 4 children in Scope
/* 67173*/        OPC_CheckPredicate, 5, // Predicate_loadi8
/* 67175*/        OPC_MoveParent,
/* 67176*/        OPC_CheckType, MVT::i8,
/* 67178*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/* 67181*/        OPC_EmitMergeInputChains1_1,
/* 67182*/        OPC_EmitCopyToReg, 0, X86::AL,
/* 67185*/        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)
/* 67197*/      /*Scope*/ 22, /*->67220*/
/* 67198*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 67200*/        OPC_MoveParent,
/* 67201*/        OPC_CheckType, MVT::i16,
/* 67203*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 67206*/        OPC_EmitMergeInputChains1_1,
/* 67207*/        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)
/* 67220*/      /*Scope*/ 22, /*->67243*/
/* 67221*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 67223*/        OPC_MoveParent,
/* 67224*/        OPC_CheckType, MVT::i32,
/* 67226*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 67229*/        OPC_EmitMergeInputChains1_1,
/* 67230*/        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)
/* 67243*/      /*Scope*/ 22, /*->67266*/
/* 67244*/        OPC_CheckPredicate, 9, // Predicate_load
/* 67246*/        OPC_MoveParent,
/* 67247*/        OPC_CheckType, MVT::i64,
/* 67249*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 67252*/        OPC_EmitMergeInputChains1_1,
/* 67253*/        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)
/* 67266*/      0, /*End of Scope*/
/* 67267*/    /*Scope*/ 84, /*->67352*/
/* 67268*/      OPC_MoveChild0,
/* 67269*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 67272*/      OPC_RecordMemRef,
/* 67273*/      OPC_RecordNode, // #0 = 'ld' chained node
/* 67274*/      OPC_CheckFoldableChainNode,
/* 67275*/      OPC_RecordChild1, // #1 = $src2
/* 67276*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 67278*/      OPC_Scope, 23, /*->67303*/ // 3 children in Scope
/* 67280*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 67282*/        OPC_MoveParent,
/* 67283*/        OPC_RecordChild1, // #2 = $src1
/* 67284*/        OPC_CheckType, MVT::i16,
/* 67286*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 67289*/        OPC_EmitMergeInputChains1_0,
/* 67290*/        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)
/* 67303*/      /*Scope*/ 23, /*->67327*/
/* 67304*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 67306*/        OPC_MoveParent,
/* 67307*/        OPC_RecordChild1, // #2 = $src1
/* 67308*/        OPC_CheckType, MVT::i32,
/* 67310*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 67313*/        OPC_EmitMergeInputChains1_0,
/* 67314*/        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)
/* 67327*/      /*Scope*/ 23, /*->67351*/
/* 67328*/        OPC_CheckPredicate, 9, // Predicate_load
/* 67330*/        OPC_MoveParent,
/* 67331*/        OPC_RecordChild1, // #2 = $src1
/* 67332*/        OPC_CheckType, MVT::i64,
/* 67334*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 67337*/        OPC_EmitMergeInputChains1_0,
/* 67338*/        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)
/* 67351*/      0, /*End of Scope*/
/* 67352*/    /*Scope*/ 57, /*->67410*/
/* 67353*/      OPC_RecordNode, // #0 = $src
/* 67354*/      OPC_SwitchType /*2 cases */, 36, MVT::i32,// ->67393
/* 67357*/        OPC_Scope, 16, /*->67375*/ // 2 children in Scope
/* 67359*/          OPC_CheckPatternPredicate, 99, // (!Subtarget->is64Bit())
/* 67361*/          OPC_CheckComplexPat, /*CP*/4, /*#*/0, // selectLEAAddr:$src #1 #2 #3 #4 #5
/* 67364*/          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)
/* 67375*/        /*Scope*/ 16, /*->67392*/
/* 67376*/          OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/* 67378*/          OPC_CheckComplexPat, /*CP*/5, /*#*/0, // selectLEA64_32Addr:$src #1 #2 #3 #4 #5
/* 67381*/          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)
/* 67392*/        0, /*End of Scope*/
/* 67393*/      /*SwitchType*/ 14, MVT::i64,// ->67409
/* 67395*/        OPC_CheckComplexPat, /*CP*/6, /*#*/0, // selectLEAAddr:$src #1 #2 #3 #4 #5
/* 67398*/        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)
/* 67409*/      0, // EndSwitchType
/* 67410*/    /*Scope*/ 3|128,5/*643*/, /*->68055*/
/* 67412*/      OPC_RecordChild0, // #0 = $src1
/* 67413*/      OPC_Scope, 30|128,1/*158*/, /*->67574*/ // 2 children in Scope
/* 67416*/        OPC_RecordChild1, // #1 = $src2
/* 67417*/        OPC_Scope, 104, /*->67523*/ // 5 children in Scope
/* 67419*/          OPC_MoveChild1,
/* 67420*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 67423*/          OPC_Scope, 16, /*->67441*/ // 5 children in Scope
/* 67425*/            OPC_CheckPredicate, 13, // Predicate_i16immSExt8
/* 67427*/            OPC_MoveParent,
/* 67428*/            OPC_CheckType, MVT::i16,
/* 67430*/            OPC_EmitConvertToTarget, 1,
/* 67432*/            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)
/* 67441*/          /*Scope*/ 16, /*->67458*/
/* 67442*/            OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/* 67444*/            OPC_MoveParent,
/* 67445*/            OPC_CheckType, MVT::i32,
/* 67447*/            OPC_EmitConvertToTarget, 1,
/* 67449*/            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)
/* 67458*/          /*Scope*/ 16, /*->67475*/
/* 67459*/            OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/* 67461*/            OPC_MoveParent,
/* 67462*/            OPC_CheckType, MVT::i64,
/* 67464*/            OPC_EmitConvertToTarget, 1,
/* 67466*/            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)
/* 67475*/          /*Scope*/ 16, /*->67492*/
/* 67476*/            OPC_CheckPredicate, 38, // Predicate_i64immSExt32
/* 67478*/            OPC_MoveParent,
/* 67479*/            OPC_CheckType, MVT::i64,
/* 67481*/            OPC_EmitConvertToTarget, 1,
/* 67483*/            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)
/* 67492*/          /*Scope*/ 29, /*->67522*/
/* 67493*/            OPC_MoveParent,
/* 67494*/            OPC_SwitchType /*2 cases */, 11, MVT::i16,// ->67508
/* 67497*/              OPC_EmitConvertToTarget, 1,
/* 67499*/              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)
/* 67508*/            /*SwitchType*/ 11, MVT::i32,// ->67521
/* 67510*/              OPC_EmitConvertToTarget, 1,
/* 67512*/              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)
/* 67521*/            0, // EndSwitchType
/* 67522*/          0, /*End of Scope*/
/* 67523*/        /*Scope*/ 13, /*->67537*/
/* 67524*/          OPC_CheckType, MVT::i8,
/* 67526*/          OPC_EmitCopyToReg, 0, X86::AL,
/* 67529*/          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)
/* 67537*/        /*Scope*/ 11, /*->67549*/
/* 67538*/          OPC_CheckType, MVT::i16,
/* 67540*/          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)
/* 67549*/        /*Scope*/ 11, /*->67561*/
/* 67550*/          OPC_CheckType, MVT::i32,
/* 67552*/          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)
/* 67561*/        /*Scope*/ 11, /*->67573*/
/* 67562*/          OPC_CheckType, MVT::i64,
/* 67564*/          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)
/* 67573*/        0, /*End of Scope*/
/* 67574*/      /*Scope*/ 94|128,3/*478*/, /*->68054*/
/* 67576*/        OPC_MoveChild1,
/* 67577*/        OPC_SwitchOpcode /*2 cases */, 73|128,2/*329*/, TARGET_VAL(ISD::LOAD),// ->67911
/* 67582*/          OPC_RecordMemRef,
/* 67583*/          OPC_RecordNode, // #1 = 'ld' chained node
/* 67584*/          OPC_CheckFoldableChainNode,
/* 67585*/          OPC_RecordChild1, // #2 = $src2
/* 67586*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 67588*/          OPC_CheckPredicate, 9, // Predicate_load
/* 67590*/          OPC_Scope, 21, /*->67613*/ // 5 children in Scope
/* 67592*/            OPC_MoveParent,
/* 67593*/            OPC_CheckType, MVT::v8i16,
/* 67595*/            OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/* 67597*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 67600*/            OPC_EmitMergeInputChains1_1,
/* 67601*/            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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMULLWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 67613*/          /*Scope*/ 23, /*->67637*/
/* 67614*/            OPC_CheckPredicate, 39, // Predicate_memop
/* 67616*/            OPC_MoveParent,
/* 67617*/            OPC_CheckType, MVT::v8i16,
/* 67619*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 67621*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 67624*/            OPC_EmitMergeInputChains1_1,
/* 67625*/            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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                      // Dst: (PMULLWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 67637*/          /*Scope*/ 63, /*->67701*/
/* 67638*/            OPC_MoveParent,
/* 67639*/            OPC_SwitchType /*3 cases */, 18, MVT::v16i16,// ->67660
/* 67642*/              OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/* 67644*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 67647*/              OPC_EmitMergeInputChains1_1,
/* 67648*/              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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VPMULLWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 67660*/            /*SwitchType*/ 18, MVT::v4i32,// ->67680
/* 67662*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 67664*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 67667*/              OPC_EmitMergeInputChains1_1,
/* 67668*/              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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VPMULLDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 67680*/            /*SwitchType*/ 18, MVT::v8i32,// ->67700
/* 67682*/              OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/* 67684*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 67687*/              OPC_EmitMergeInputChains1_1,
/* 67688*/              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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VPMULLDYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 67700*/            0, // EndSwitchType
/* 67701*/          /*Scope*/ 23, /*->67725*/
/* 67702*/            OPC_CheckPredicate, 39, // Predicate_memop
/* 67704*/            OPC_MoveParent,
/* 67705*/            OPC_CheckType, MVT::v4i32,
/* 67707*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/* 67709*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 67712*/            OPC_EmitMergeInputChains1_1,
/* 67713*/            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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                      // Dst: (PMULLDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 67725*/          /*Scope*/ 55|128,1/*183*/, /*->67910*/
/* 67727*/            OPC_MoveParent,
/* 67728*/            OPC_SwitchType /*9 cases */, 18, MVT::v16i32,// ->67749
/* 67731*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 67733*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 67736*/              OPC_EmitMergeInputChains1_1,
/* 67737*/              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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VPMULLDZrm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 67749*/            /*SwitchType*/ 18, MVT::v8i32,// ->67769
/* 67751*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 67753*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 67756*/              OPC_EmitMergeInputChains1_1,
/* 67757*/              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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VPMULLDZ256rm:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 67769*/            /*SwitchType*/ 18, MVT::v4i32,// ->67789
/* 67771*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 67773*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 67776*/              OPC_EmitMergeInputChains1_1,
/* 67777*/              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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VPMULLDZ128rm:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 67789*/            /*SwitchType*/ 18, MVT::v32i16,// ->67809
/* 67791*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/* 67793*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 67796*/              OPC_EmitMergeInputChains1_1,
/* 67797*/              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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VPMULLWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 67809*/            /*SwitchType*/ 18, MVT::v16i16,// ->67829
/* 67811*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 67813*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 67816*/              OPC_EmitMergeInputChains1_1,
/* 67817*/              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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VPMULLWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 67829*/            /*SwitchType*/ 18, MVT::v8i16,// ->67849
/* 67831*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 67833*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 67836*/              OPC_EmitMergeInputChains1_1,
/* 67837*/              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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VPMULLWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 67849*/            /*SwitchType*/ 18, MVT::v8i64,// ->67869
/* 67851*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/* 67853*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 67856*/              OPC_EmitMergeInputChains1_1,
/* 67857*/              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>>) - Complexity = 25
                        // Dst: (VPMULLQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 67869*/            /*SwitchType*/ 18, MVT::v4i64,// ->67889
/* 67871*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/* 67873*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 67876*/              OPC_EmitMergeInputChains1_1,
/* 67877*/              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>>) - Complexity = 25
                        // Dst: (VPMULLQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 67889*/            /*SwitchType*/ 18, MVT::v2i64,// ->67909
/* 67891*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/* 67893*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 67896*/              OPC_EmitMergeInputChains1_1,
/* 67897*/              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>>) - Complexity = 25
                        // Dst: (VPMULLQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 67909*/            0, // EndSwitchType
/* 67910*/          0, /*End of Scope*/
/* 67911*/        /*SwitchOpcode*/ 10|128,1/*138*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->68053
/* 67915*/          OPC_RecordMemRef,
/* 67916*/          OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/* 67917*/          OPC_CheckFoldableChainNode,
/* 67918*/          OPC_RecordChild1, // #2 = $src2
/* 67919*/          OPC_Scope, 65, /*->67986*/ // 2 children in Scope
/* 67921*/            OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/* 67923*/            OPC_MoveParent,
/* 67924*/            OPC_SwitchType /*3 cases */, 18, MVT::v16i32,// ->67945
/* 67927*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 67929*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 67932*/              OPC_EmitMergeInputChains1_1,
/* 67933*/              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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VPMULLDZrmb:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 67945*/            /*SwitchType*/ 18, MVT::v8i32,// ->67965
/* 67947*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 67949*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 67952*/              OPC_EmitMergeInputChains1_1,
/* 67953*/              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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VPMULLDZ256rmb:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 67965*/            /*SwitchType*/ 18, MVT::v4i32,// ->67985
/* 67967*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 67969*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 67972*/              OPC_EmitMergeInputChains1_1,
/* 67973*/              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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VPMULLDZ128rmb:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 67985*/            0, // EndSwitchType
/* 67986*/          /*Scope*/ 65, /*->68052*/
/* 67987*/            OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 67989*/            OPC_MoveParent,
/* 67990*/            OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->68011
/* 67993*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/* 67995*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 67998*/              OPC_EmitMergeInputChains1_1,
/* 67999*/              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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VPMULLQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 68011*/            /*SwitchType*/ 18, MVT::v4i64,// ->68031
/* 68013*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/* 68015*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 68018*/              OPC_EmitMergeInputChains1_1,
/* 68019*/              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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VPMULLQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 68031*/            /*SwitchType*/ 18, MVT::v2i64,// ->68051
/* 68033*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/* 68035*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 68038*/              OPC_EmitMergeInputChains1_1,
/* 68039*/              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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VPMULLQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 68051*/            0, // EndSwitchType
/* 68052*/          0, /*End of Scope*/
/* 68053*/        0, // EndSwitchOpcode
/* 68054*/      0, /*End of Scope*/
/* 68055*/    /*Scope*/ 101|128,3/*485*/, /*->68542*/
/* 68057*/      OPC_MoveChild0,
/* 68058*/      OPC_SwitchOpcode /*2 cases */, 78|128,2/*334*/, TARGET_VAL(ISD::LOAD),// ->68397
/* 68063*/        OPC_RecordMemRef,
/* 68064*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 68065*/        OPC_CheckFoldableChainNode,
/* 68066*/        OPC_RecordChild1, // #1 = $src2
/* 68067*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 68069*/        OPC_CheckPredicate, 9, // Predicate_load
/* 68071*/        OPC_Scope, 22, /*->68095*/ // 5 children in Scope
/* 68073*/          OPC_MoveParent,
/* 68074*/          OPC_RecordChild1, // #2 = $src1
/* 68075*/          OPC_CheckType, MVT::v8i16,
/* 68077*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/* 68079*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 68082*/          OPC_EmitMergeInputChains1_0,
/* 68083*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (mul:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v8i16] }:$src1) - Complexity = 25
                    // Dst: (VPMULLWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 68095*/        /*Scope*/ 24, /*->68120*/
/* 68096*/          OPC_CheckPredicate, 39, // Predicate_memop
/* 68098*/          OPC_MoveParent,
/* 68099*/          OPC_RecordChild1, // #2 = $src1
/* 68100*/          OPC_CheckType, MVT::v8i16,
/* 68102*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 68104*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 68107*/          OPC_EmitMergeInputChains1_0,
/* 68108*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PMULLWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (mul:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:{ *:[v8i16] }:$src1) - Complexity = 25
                    // Dst: (PMULLWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 68120*/        /*Scope*/ 64, /*->68185*/
/* 68121*/          OPC_MoveParent,
/* 68122*/          OPC_RecordChild1, // #2 = $src1
/* 68123*/          OPC_SwitchType /*3 cases */, 18, MVT::v16i16,// ->68144
/* 68126*/            OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/* 68128*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 68131*/            OPC_EmitMergeInputChains1_0,
/* 68132*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (mul:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v16i16] }:$src1) - Complexity = 25
                      // Dst: (VPMULLWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 68144*/          /*SwitchType*/ 18, MVT::v4i32,// ->68164
/* 68146*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 68148*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 68151*/            OPC_EmitMergeInputChains1_0,
/* 68152*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (mul:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v4i32] }:$src1) - Complexity = 25
                      // Dst: (VPMULLDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 68164*/          /*SwitchType*/ 18, MVT::v8i32,// ->68184
/* 68166*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/* 68168*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 68171*/            OPC_EmitMergeInputChains1_0,
/* 68172*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (mul:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v8i32] }:$src1) - Complexity = 25
                      // Dst: (VPMULLDYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 68184*/          0, // EndSwitchType
/* 68185*/        /*Scope*/ 24, /*->68210*/
/* 68186*/          OPC_CheckPredicate, 39, // Predicate_memop
/* 68188*/          OPC_MoveParent,
/* 68189*/          OPC_RecordChild1, // #2 = $src1
/* 68190*/          OPC_CheckType, MVT::v4i32,
/* 68192*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/* 68194*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 68197*/          OPC_EmitMergeInputChains1_0,
/* 68198*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PMULLDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (mul:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:{ *:[v4i32] }:$src1) - Complexity = 25
                    // Dst: (PMULLDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 68210*/        /*Scope*/ 56|128,1/*184*/, /*->68396*/
/* 68212*/          OPC_MoveParent,
/* 68213*/          OPC_RecordChild1, // #2 = $src1
/* 68214*/          OPC_SwitchType /*9 cases */, 18, MVT::v16i32,// ->68235
/* 68217*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 68219*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 68222*/            OPC_EmitMergeInputChains1_0,
/* 68223*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (mul:{ *:[v16i32] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16i32] }:$src1) - Complexity = 25
                      // Dst: (VPMULLDZrm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 68235*/          /*SwitchType*/ 18, MVT::v8i32,// ->68255
/* 68237*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 68239*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 68242*/            OPC_EmitMergeInputChains1_0,
/* 68243*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (mul:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8i32] }:$src1) - Complexity = 25
                      // Dst: (VPMULLDZ256rm:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 68255*/          /*SwitchType*/ 18, MVT::v4i32,// ->68275
/* 68257*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 68259*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 68262*/            OPC_EmitMergeInputChains1_0,
/* 68263*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (mul:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4i32] }:$src1) - Complexity = 25
                      // Dst: (VPMULLDZ128rm:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 68275*/          /*SwitchType*/ 18, MVT::v32i16,// ->68295
/* 68277*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/* 68279*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 68282*/            OPC_EmitMergeInputChains1_0,
/* 68283*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (mul:{ *:[v32i16] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1) - Complexity = 25
                      // Dst: (VPMULLWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 68295*/          /*SwitchType*/ 18, MVT::v16i16,// ->68315
/* 68297*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 68299*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 68302*/            OPC_EmitMergeInputChains1_0,
/* 68303*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (mul:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1) - Complexity = 25
                      // Dst: (VPMULLWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 68315*/          /*SwitchType*/ 18, MVT::v8i16,// ->68335
/* 68317*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 68319*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 68322*/            OPC_EmitMergeInputChains1_0,
/* 68323*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (mul:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1) - Complexity = 25
                      // Dst: (VPMULLWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 68335*/          /*SwitchType*/ 18, MVT::v8i64,// ->68355
/* 68337*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/* 68339*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 68342*/            OPC_EmitMergeInputChains1_0,
/* 68343*/            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>>, VR512:{ *:[v8i64] }:$src1) - Complexity = 25
                      // Dst: (VPMULLQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 68355*/          /*SwitchType*/ 18, MVT::v4i64,// ->68375
/* 68357*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/* 68359*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 68362*/            OPC_EmitMergeInputChains1_0,
/* 68363*/            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>>, VR256X:{ *:[v4i64] }:$src1) - Complexity = 25
                      // Dst: (VPMULLQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 68375*/          /*SwitchType*/ 18, MVT::v2i64,// ->68395
/* 68377*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/* 68379*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 68382*/            OPC_EmitMergeInputChains1_0,
/* 68383*/            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>>, VR128X:{ *:[v2i64] }:$src1) - Complexity = 25
                      // Dst: (VPMULLQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 68395*/          0, // EndSwitchType
/* 68396*/        0, /*End of Scope*/
/* 68397*/      /*SwitchOpcode*/ 12|128,1/*140*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->68541
/* 68401*/        OPC_RecordMemRef,
/* 68402*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/* 68403*/        OPC_CheckFoldableChainNode,
/* 68404*/        OPC_RecordChild1, // #1 = $src2
/* 68405*/        OPC_Scope, 66, /*->68473*/ // 2 children in Scope
/* 68407*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/* 68409*/          OPC_MoveParent,
/* 68410*/          OPC_RecordChild1, // #2 = $src1
/* 68411*/          OPC_SwitchType /*3 cases */, 18, MVT::v16i32,// ->68432
/* 68414*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 68416*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 68419*/            OPC_EmitMergeInputChains1_0,
/* 68420*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (mul:{ *:[v16i32] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16i32] }:$src1) - Complexity = 25
                      // Dst: (VPMULLDZrmb:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 68432*/          /*SwitchType*/ 18, MVT::v8i32,// ->68452
/* 68434*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 68436*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 68439*/            OPC_EmitMergeInputChains1_0,
/* 68440*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (mul:{ *:[v8i32] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8i32] }:$src1) - Complexity = 25
                      // Dst: (VPMULLDZ256rmb:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 68452*/          /*SwitchType*/ 18, MVT::v4i32,// ->68472
/* 68454*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 68456*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 68459*/            OPC_EmitMergeInputChains1_0,
/* 68460*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (mul:{ *:[v4i32] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4i32] }:$src1) - Complexity = 25
                      // Dst: (VPMULLDZ128rmb:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 68472*/          0, // EndSwitchType
/* 68473*/        /*Scope*/ 66, /*->68540*/
/* 68474*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 68476*/          OPC_MoveParent,
/* 68477*/          OPC_RecordChild1, // #2 = $src1
/* 68478*/          OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->68499
/* 68481*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/* 68483*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 68486*/            OPC_EmitMergeInputChains1_0,
/* 68487*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (mul:{ *:[v8i64] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8i64] }:$src1) - Complexity = 25
                      // Dst: (VPMULLQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 68499*/          /*SwitchType*/ 18, MVT::v4i64,// ->68519
/* 68501*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/* 68503*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 68506*/            OPC_EmitMergeInputChains1_0,
/* 68507*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (mul:{ *:[v4i64] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src1) - Complexity = 25
                      // Dst: (VPMULLQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 68519*/          /*SwitchType*/ 18, MVT::v2i64,// ->68539
/* 68521*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/* 68523*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 68526*/            OPC_EmitMergeInputChains1_0,
/* 68527*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULLQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (mul:{ *:[v2i64] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src1) - Complexity = 25
                      // Dst: (VPMULLQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 68539*/          0, // EndSwitchType
/* 68540*/        0, /*End of Scope*/
/* 68541*/      0, // EndSwitchOpcode
/* 68542*/    /*Scope*/ 112, /*->68655*/
/* 68543*/      OPC_RecordChild0, // #0 = $src1
/* 68544*/      OPC_MoveChild1,
/* 68545*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 68548*/      OPC_RecordMemRef,
/* 68549*/      OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/* 68550*/      OPC_CheckFoldableChainNode,
/* 68551*/      OPC_RecordChild1, // #2 = $src2
/* 68552*/      OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 68554*/      OPC_MoveParent,
/* 68555*/      OPC_SwitchType /*2 cases */, 47, MVT::v4i64,// ->68605
/* 68558*/        OPC_CheckPatternPredicate, 120, // (Subtarget->hasDQI()) && (!Subtarget->hasVLX())
/* 68560*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 68563*/        OPC_EmitMergeInputChains1_1,
/* 68564*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #8
/* 68570*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 68573*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 8, 0, 9,  // Results = #10
/* 68582*/        OPC_EmitNode1, TARGET_VAL(X86::VPMULLQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v64i8, 6/*#Ops*/, 10, 3, 4, 5, 6, 7,  // Results = #11
/* 68594*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 68597*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0|OPFL_Chain,
                      MVT::v4i64, 2/*#Ops*/, 11, 12, 
                  // Src: (mul:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                  // Dst: (EXTRACT_SUBREG:{ *:[v4i64] } (VPMULLQZrmb:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2), sub_ymm:{ *:[i32] })
/* 68605*/      /*SwitchType*/ 47, MVT::v2i64,// ->68654
/* 68607*/        OPC_CheckPatternPredicate, 120, // (Subtarget->hasDQI()) && (!Subtarget->hasVLX())
/* 68609*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 68612*/        OPC_EmitMergeInputChains1_1,
/* 68613*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #8
/* 68619*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 68622*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 8, 0, 9,  // Results = #10
/* 68631*/        OPC_EmitNode1, TARGET_VAL(X86::VPMULLQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v64i8, 6/*#Ops*/, 10, 3, 4, 5, 6, 7,  // Results = #11
/* 68643*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 68646*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0|OPFL_Chain,
                      MVT::v2i64, 2/*#Ops*/, 11, 12, 
                  // Src: (mul:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                  // Dst: (EXTRACT_SUBREG:{ *:[v2i64] } (VPMULLQZrmb:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2), sub_xmm:{ *:[i32] })
/* 68654*/      0, // EndSwitchType
/* 68655*/    /*Scope*/ 112, /*->68768*/
/* 68656*/      OPC_MoveChild0,
/* 68657*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/* 68660*/      OPC_RecordMemRef,
/* 68661*/      OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/* 68662*/      OPC_CheckFoldableChainNode,
/* 68663*/      OPC_RecordChild1, // #1 = $src2
/* 68664*/      OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 68666*/      OPC_MoveParent,
/* 68667*/      OPC_RecordChild1, // #2 = $src1
/* 68668*/      OPC_SwitchType /*2 cases */, 47, MVT::v4i64,// ->68718
/* 68671*/        OPC_CheckPatternPredicate, 120, // (Subtarget->hasDQI()) && (!Subtarget->hasVLX())
/* 68673*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 68676*/        OPC_EmitMergeInputChains1_0,
/* 68677*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #8
/* 68683*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 68686*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 68695*/        OPC_EmitNode1, TARGET_VAL(X86::VPMULLQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v64i8, 6/*#Ops*/, 10, 3, 4, 5, 6, 7,  // Results = #11
/* 68707*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 68710*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0|OPFL_Chain,
                      MVT::v4i64, 2/*#Ops*/, 11, 12, 
                  // Src: (mul:{ *:[v4i64] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src1) - Complexity = 25
                  // Dst: (EXTRACT_SUBREG:{ *:[v4i64] } (VPMULLQZrmb:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2), sub_ymm:{ *:[i32] })
/* 68718*/      /*SwitchType*/ 47, MVT::v2i64,// ->68767
/* 68720*/        OPC_CheckPatternPredicate, 120, // (Subtarget->hasDQI()) && (!Subtarget->hasVLX())
/* 68722*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 68725*/        OPC_EmitMergeInputChains1_0,
/* 68726*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #8
/* 68732*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 68735*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/* 68744*/        OPC_EmitNode1, TARGET_VAL(X86::VPMULLQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v64i8, 6/*#Ops*/, 10, 3, 4, 5, 6, 7,  // Results = #11
/* 68756*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 68759*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0|OPFL_Chain,
                      MVT::v2i64, 2/*#Ops*/, 11, 12, 
                  // Src: (mul:{ *:[v2i64] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src1) - Complexity = 25
                  // Dst: (EXTRACT_SUBREG:{ *:[v2i64] } (VPMULLQZrmb:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2), sub_xmm:{ *:[i32] })
/* 68767*/      0, // EndSwitchType
/* 68768*/    /*Scope*/ 56|128,2/*312*/, /*->69082*/
/* 68770*/      OPC_RecordChild0, // #0 = $src1
/* 68771*/      OPC_RecordChild1, // #1 = $src2
/* 68772*/      OPC_SwitchType /*9 cases */, 35, MVT::v8i16,// ->68810
/* 68775*/        OPC_Scope, 10, /*->68787*/ // 3 children in Scope
/* 68777*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/* 68779*/          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)
/* 68787*/        /*Scope*/ 10, /*->68798*/
/* 68788*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 68790*/          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)
/* 68798*/        /*Scope*/ 10, /*->68809*/
/* 68799*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 68801*/          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)
/* 68809*/        0, /*End of Scope*/
/* 68810*/      /*SwitchType*/ 24, MVT::v16i16,// ->68836
/* 68812*/        OPC_Scope, 10, /*->68824*/ // 2 children in Scope
/* 68814*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/* 68816*/          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)
/* 68824*/        /*Scope*/ 10, /*->68835*/
/* 68825*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 68827*/          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)
/* 68835*/        0, /*End of Scope*/
/* 68836*/      /*SwitchType*/ 35, MVT::v4i32,// ->68873
/* 68838*/        OPC_Scope, 10, /*->68850*/ // 3 children in Scope
/* 68840*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 68842*/          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)
/* 68850*/        /*Scope*/ 10, /*->68861*/
/* 68851*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/* 68853*/          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)
/* 68861*/        /*Scope*/ 10, /*->68872*/
/* 68862*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 68864*/          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)
/* 68872*/        0, /*End of Scope*/
/* 68873*/      /*SwitchType*/ 24, MVT::v8i32,// ->68899
/* 68875*/        OPC_Scope, 10, /*->68887*/ // 2 children in Scope
/* 68877*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/* 68879*/          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)
/* 68887*/        /*Scope*/ 10, /*->68898*/
/* 68888*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 68890*/          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)
/* 68898*/        0, /*End of Scope*/
/* 68899*/      /*SwitchType*/ 10, MVT::v16i32,// ->68911
/* 68901*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 68903*/        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)
/* 68911*/      /*SwitchType*/ 10, MVT::v32i16,// ->68923
/* 68913*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/* 68915*/        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)
/* 68923*/      /*SwitchType*/ 10, MVT::v8i64,// ->68935
/* 68925*/        OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/* 68927*/        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)
/* 68935*/      /*SwitchType*/ 71, MVT::v4i64,// ->69008
/* 68937*/        OPC_Scope, 10, /*->68949*/ // 2 children in Scope
/* 68939*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/* 68941*/          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)
/* 68949*/        /*Scope*/ 57, /*->69007*/
/* 68950*/          OPC_CheckPatternPredicate, 120, // (Subtarget->hasDQI()) && (!Subtarget->hasVLX())
/* 68952*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #2
/* 68958*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 68961*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 68970*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #5
/* 68976*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 68979*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/* 68988*/          OPC_EmitNode1, TARGET_VAL(X86::VPMULLQZrr), 0,
                        MVT::v64i8, 2/*#Ops*/, 4, 7,  // Results = #8
/* 68996*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 68999*/          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] })
/* 69007*/        0, /*End of Scope*/
/* 69008*/      /*SwitchType*/ 71, MVT::v2i64,// ->69081
/* 69010*/        OPC_Scope, 10, /*->69022*/ // 2 children in Scope
/* 69012*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/* 69014*/          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)
/* 69022*/        /*Scope*/ 57, /*->69080*/
/* 69023*/          OPC_CheckPatternPredicate, 120, // (Subtarget->hasDQI()) && (!Subtarget->hasVLX())
/* 69025*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #2
/* 69031*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 69034*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 69043*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #5
/* 69049*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 69052*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/* 69061*/          OPC_EmitNode1, TARGET_VAL(X86::VPMULLQZrr), 0,
                        MVT::v64i8, 2/*#Ops*/, 4, 7,  // Results = #8
/* 69069*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 69072*/          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] })
/* 69080*/        0, /*End of Scope*/
/* 69081*/      0, // EndSwitchType
/* 69082*/    0, /*End of Scope*/
/* 69083*/  /*SwitchOpcode*/ 73|128,1/*201*/, TARGET_VAL(X86ISD::BT),// ->69288
/* 69087*/    OPC_Scope, 101, /*->69190*/ // 2 children in Scope
/* 69089*/      OPC_MoveChild0,
/* 69090*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 69093*/      OPC_RecordMemRef,
/* 69094*/      OPC_RecordNode, // #0 = 'ld' chained node
/* 69095*/      OPC_CheckFoldableChainNode,
/* 69096*/      OPC_RecordChild1, // #1 = $src1
/* 69097*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 69099*/      OPC_SwitchType /*3 cases */, 27, MVT::i16,// ->69129
/* 69102*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 69104*/        OPC_MoveParent,
/* 69105*/        OPC_RecordChild1, // #2 = $src2
/* 69106*/        OPC_MoveChild1,
/* 69107*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 69110*/        OPC_MoveParent,
/* 69111*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/* 69114*/        OPC_EmitMergeInputChains1_0,
/* 69115*/        OPC_EmitConvertToTarget, 2,
/* 69117*/        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] }):$src2) - Complexity = 28
                  // Dst: (BT16mi8:{ *:[i32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i16] }):$src2)
/* 69129*/      /*SwitchType*/ 27, MVT::i32,// ->69158
/* 69131*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 69133*/        OPC_MoveParent,
/* 69134*/        OPC_RecordChild1, // #2 = $src2
/* 69135*/        OPC_MoveChild1,
/* 69136*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 69139*/        OPC_MoveParent,
/* 69140*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/* 69143*/        OPC_EmitMergeInputChains1_0,
/* 69144*/        OPC_EmitConvertToTarget, 2,
/* 69146*/        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] }):$src2) - Complexity = 28
                  // Dst: (BT32mi8:{ *:[i32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i32] }):$src2)
/* 69158*/      /*SwitchType*/ 29, MVT::i64,// ->69189
/* 69160*/        OPC_CheckPredicate, 9, // Predicate_load
/* 69162*/        OPC_MoveParent,
/* 69163*/        OPC_RecordChild1, // #2 = $src2
/* 69164*/        OPC_MoveChild1,
/* 69165*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 69168*/        OPC_MoveParent,
/* 69169*/        OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/* 69171*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/* 69174*/        OPC_EmitMergeInputChains1_0,
/* 69175*/        OPC_EmitConvertToTarget, 2,
/* 69177*/        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] }):$src2) - Complexity = 28
                  // Dst: (BT64mi8:{ *:[i32] } addr:{ *:[iPTR] }:$src1, (imm:{ *:[i64] }):$src2)
/* 69189*/      0, // EndSwitchType
/* 69190*/    /*Scope*/ 96, /*->69287*/
/* 69191*/      OPC_RecordChild0, // #0 = $src1
/* 69192*/      OPC_Scope, 30, /*->69224*/ // 3 children in Scope
/* 69194*/        OPC_CheckChild0Type, MVT::i16,
/* 69196*/        OPC_RecordChild1, // #1 = $src2
/* 69197*/        OPC_Scope, 15, /*->69214*/ // 2 children in Scope
/* 69199*/          OPC_MoveChild1,
/* 69200*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 69203*/          OPC_MoveParent,
/* 69204*/          OPC_EmitConvertToTarget, 1,
/* 69206*/          OPC_MorphNodeTo1, TARGET_VAL(X86::BT16ri8), 0,
                        MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86bt:{ *:[i32] } GR16:{ *:[i16] }:$src1, (imm:{ *:[i16] }):$src2) - Complexity = 6
                    // Dst: (BT16ri8:{ *:[i32] } GR16:{ *:[i16] }:$src1, (imm:{ *:[i16] }):$src2)
/* 69214*/        /*Scope*/ 8, /*->69223*/
/* 69215*/          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)
/* 69223*/        0, /*End of Scope*/
/* 69224*/      /*Scope*/ 30, /*->69255*/
/* 69225*/        OPC_CheckChild0Type, MVT::i32,
/* 69227*/        OPC_RecordChild1, // #1 = $src2
/* 69228*/        OPC_Scope, 15, /*->69245*/ // 2 children in Scope
/* 69230*/          OPC_MoveChild1,
/* 69231*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 69234*/          OPC_MoveParent,
/* 69235*/          OPC_EmitConvertToTarget, 1,
/* 69237*/          OPC_MorphNodeTo1, TARGET_VAL(X86::BT32ri8), 0,
                        MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86bt:{ *:[i32] } GR32:{ *:[i32] }:$src1, (imm:{ *:[i32] }):$src2) - Complexity = 6
                    // Dst: (BT32ri8:{ *:[i32] } GR32:{ *:[i32] }:$src1, (imm:{ *:[i32] }):$src2)
/* 69245*/        /*Scope*/ 8, /*->69254*/
/* 69246*/          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)
/* 69254*/        0, /*End of Scope*/
/* 69255*/      /*Scope*/ 30, /*->69286*/
/* 69256*/        OPC_CheckChild0Type, MVT::i64,
/* 69258*/        OPC_RecordChild1, // #1 = $src2
/* 69259*/        OPC_Scope, 15, /*->69276*/ // 2 children in Scope
/* 69261*/          OPC_MoveChild1,
/* 69262*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 69265*/          OPC_MoveParent,
/* 69266*/          OPC_EmitConvertToTarget, 1,
/* 69268*/          OPC_MorphNodeTo1, TARGET_VAL(X86::BT64ri8), 0,
                        MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86bt:{ *:[i32] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] }):$src2) - Complexity = 6
                    // Dst: (BT64ri8:{ *:[i32] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] }):$src2)
/* 69276*/        /*Scope*/ 8, /*->69285*/
/* 69277*/          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)
/* 69285*/        0, /*End of Scope*/
/* 69286*/      0, /*End of Scope*/
/* 69287*/    0, /*End of Scope*/
/* 69288*/  /*SwitchOpcode*/ 10|128,1/*138*/, TARGET_VAL(X86ISD::LWPINS),// ->69430
/* 69292*/    OPC_RecordNode, // #0 = 'X86lwpins' chained node
/* 69293*/    OPC_RecordChild1, // #1 = $src0
/* 69294*/    OPC_Scope, 66, /*->69362*/ // 2 children in Scope
/* 69296*/      OPC_CheckChild1Type, MVT::i32,
/* 69298*/      OPC_Scope, 41, /*->69341*/ // 2 children in Scope
/* 69300*/        OPC_MoveChild2,
/* 69301*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 69304*/        OPC_RecordMemRef,
/* 69305*/        OPC_RecordNode, // #2 = 'ld' chained node
/* 69306*/        OPC_CheckFoldableChainNode,
/* 69307*/        OPC_RecordChild1, // #3 = $src1
/* 69308*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 69310*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 69312*/        OPC_MoveParent,
/* 69313*/        OPC_RecordChild3, // #4 = $cntl
/* 69314*/        OPC_MoveChild3,
/* 69315*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 69318*/        OPC_MoveParent,
/* 69319*/        OPC_CheckPatternPredicate, 61, // (Subtarget->hasLWP())
/* 69321*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src1 #5 #6 #7 #8 #9
/* 69324*/        OPC_EmitMergeInputChains, 2, 0, 2, 
/* 69328*/        OPC_MorphNodeTo1, TARGET_VAL(X86::LWPINS32rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 7/*#Ops*/, 1, 5, 6, 7, 8, 9, 4, 
                  // Src: (X86lwpins:{ *:[i32] } GR32:{ *:[i32] }:$src0, (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, (timm:{ *:[i32] }):$cntl) - Complexity = 28
                  // Dst: (LWPINS32rmi:{ *:[i32] } GR32:{ *:[i32] }:$src0, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$cntl)
/* 69341*/      /*Scope*/ 19, /*->69361*/
/* 69342*/        OPC_RecordChild2, // #2 = $src1
/* 69343*/        OPC_RecordChild3, // #3 = $cntl
/* 69344*/        OPC_MoveChild3,
/* 69345*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 69348*/        OPC_MoveParent,
/* 69349*/        OPC_CheckPatternPredicate, 61, // (Subtarget->hasLWP())
/* 69351*/        OPC_EmitMergeInputChains1_0,
/* 69352*/        OPC_MorphNodeTo1, TARGET_VAL(X86::LWPINS32rri), 0|OPFL_Chain,
                      MVT::i32, 3/*#Ops*/, 1, 2, 3, 
                  // Src: (X86lwpins:{ *:[i32] } GR32:{ *:[i32] }:$src0, GR32:{ *:[i32] }:$src1, (timm:{ *:[i32] }):$cntl) - Complexity = 6
                  // Dst: (LWPINS32rri:{ *:[i32] } GR32:{ *:[i32] }:$src0, GR32:{ *:[i32] }:$src1, (timm:{ *:[i32] }):$cntl)
/* 69361*/      0, /*End of Scope*/
/* 69362*/    /*Scope*/ 66, /*->69429*/
/* 69363*/      OPC_CheckChild1Type, MVT::i64,
/* 69365*/      OPC_Scope, 41, /*->69408*/ // 2 children in Scope
/* 69367*/        OPC_MoveChild2,
/* 69368*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 69371*/        OPC_RecordMemRef,
/* 69372*/        OPC_RecordNode, // #2 = 'ld' chained node
/* 69373*/        OPC_CheckFoldableChainNode,
/* 69374*/        OPC_RecordChild1, // #3 = $src1
/* 69375*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 69377*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 69379*/        OPC_MoveParent,
/* 69380*/        OPC_RecordChild3, // #4 = $cntl
/* 69381*/        OPC_MoveChild3,
/* 69382*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 69385*/        OPC_MoveParent,
/* 69386*/        OPC_CheckPatternPredicate, 61, // (Subtarget->hasLWP())
/* 69388*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src1 #5 #6 #7 #8 #9
/* 69391*/        OPC_EmitMergeInputChains, 2, 0, 2, 
/* 69395*/        OPC_MorphNodeTo1, TARGET_VAL(X86::LWPINS64rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 7/*#Ops*/, 1, 5, 6, 7, 8, 9, 4, 
                  // Src: (X86lwpins:{ *:[i32] } GR64:{ *:[i64] }:$src0, (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, (timm:{ *:[i32] }):$cntl) - Complexity = 28
                  // Dst: (LWPINS64rmi:{ *:[i32] } GR64:{ *:[i64] }:$src0, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$cntl)
/* 69408*/      /*Scope*/ 19, /*->69428*/
/* 69409*/        OPC_RecordChild2, // #2 = $src1
/* 69410*/        OPC_RecordChild3, // #3 = $cntl
/* 69411*/        OPC_MoveChild3,
/* 69412*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 69415*/        OPC_MoveParent,
/* 69416*/        OPC_CheckPatternPredicate, 61, // (Subtarget->hasLWP())
/* 69418*/        OPC_EmitMergeInputChains1_0,
/* 69419*/        OPC_MorphNodeTo1, TARGET_VAL(X86::LWPINS64rri), 0|OPFL_Chain,
                      MVT::i32, 3/*#Ops*/, 1, 2, 3, 
                  // Src: (X86lwpins:{ *:[i32] } GR64:{ *:[i64] }:$src0, GR32:{ *:[i32] }:$src1, (timm:{ *:[i32] }):$cntl) - Complexity = 6
                  // Dst: (LWPINS64rri:{ *:[i32] } GR64:{ *:[i64] }:$src0, GR32:{ *:[i32] }:$src1, (timm:{ *:[i32] }):$cntl)
/* 69428*/      0, /*End of Scope*/
/* 69429*/    0, /*End of Scope*/
/* 69430*/  /*SwitchOpcode*/ 103|128,11/*1511*/, TARGET_VAL(X86ISD::CMOV),// ->70945
/* 69434*/    OPC_Scope, 118, /*->69554*/ // 3 children in Scope
/* 69436*/      OPC_RecordChild0, // #0 = $src1
/* 69437*/      OPC_MoveChild1,
/* 69438*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 69441*/      OPC_RecordMemRef,
/* 69442*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 69443*/      OPC_CheckFoldableChainNode,
/* 69444*/      OPC_RecordChild1, // #2 = $src2
/* 69445*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 69447*/      OPC_Scope, 34, /*->69483*/ // 3 children in Scope
/* 69449*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 69451*/        OPC_MoveParent,
/* 69452*/        OPC_RecordChild2, // #3 = $cond
/* 69453*/        OPC_MoveChild2,
/* 69454*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 69457*/        OPC_MoveParent,
/* 69458*/        OPC_RecordChild3, // #4 = physreg input EFLAGS
/* 69459*/        OPC_CheckType, MVT::i16,
/* 69461*/        OPC_CheckPatternPredicate, 34, // (Subtarget->hasCMov())
/* 69463*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 69466*/        OPC_EmitMergeInputChains1_1,
/* 69467*/        OPC_EmitCopyToReg, 4, X86::EFLAGS,
/* 69470*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      MVT::i16, 7/*#Ops*/, 0, 5, 6, 7, 8, 9, 3, 
                  // Src: (X86cmov:{ *:[i16] } GR16:{ *:[i16] }:$src1, (ld:{ *:[i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, (timm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 28
                  // Dst: (CMOV16rm:{ *:[i16] } GR16:{ *:[i16] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cond)
/* 69483*/      /*Scope*/ 34, /*->69518*/
/* 69484*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 69486*/        OPC_MoveParent,
/* 69487*/        OPC_RecordChild2, // #3 = $cond
/* 69488*/        OPC_MoveChild2,
/* 69489*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 69492*/        OPC_MoveParent,
/* 69493*/        OPC_RecordChild3, // #4 = physreg input EFLAGS
/* 69494*/        OPC_CheckType, MVT::i32,
/* 69496*/        OPC_CheckPatternPredicate, 34, // (Subtarget->hasCMov())
/* 69498*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 69501*/        OPC_EmitMergeInputChains1_1,
/* 69502*/        OPC_EmitCopyToReg, 4, X86::EFLAGS,
/* 69505*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      MVT::i32, 7/*#Ops*/, 0, 5, 6, 7, 8, 9, 3, 
                  // Src: (X86cmov:{ *:[i32] } GR32:{ *:[i32] }:$src1, (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, (timm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 28
                  // Dst: (CMOV32rm:{ *:[i32] } GR32:{ *:[i32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cond)
/* 69518*/      /*Scope*/ 34, /*->69553*/
/* 69519*/        OPC_CheckPredicate, 9, // Predicate_load
/* 69521*/        OPC_MoveParent,
/* 69522*/        OPC_RecordChild2, // #3 = $cond
/* 69523*/        OPC_MoveChild2,
/* 69524*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 69527*/        OPC_MoveParent,
/* 69528*/        OPC_RecordChild3, // #4 = physreg input EFLAGS
/* 69529*/        OPC_CheckType, MVT::i64,
/* 69531*/        OPC_CheckPatternPredicate, 34, // (Subtarget->hasCMov())
/* 69533*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 69536*/        OPC_EmitMergeInputChains1_1,
/* 69537*/        OPC_EmitCopyToReg, 4, X86::EFLAGS,
/* 69540*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      MVT::i64, 7/*#Ops*/, 0, 5, 6, 7, 8, 9, 3, 
                  // Src: (X86cmov:{ *:[i64] } GR64:{ *:[i64] }:$src1, (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 28
                  // Dst: (CMOV64rm:{ *:[i64] } GR64:{ *:[i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cond)
/* 69553*/      0, /*End of Scope*/
/* 69554*/    /*Scope*/ 1|128,1/*129*/, /*->69685*/
/* 69556*/      OPC_MoveChild0,
/* 69557*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 69560*/      OPC_RecordMemRef,
/* 69561*/      OPC_RecordNode, // #0 = 'ld' chained node
/* 69562*/      OPC_CheckFoldableChainNode,
/* 69563*/      OPC_RecordChild1, // #1 = $src1
/* 69564*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 69566*/      OPC_Scope, 38, /*->69606*/ // 3 children in Scope
/* 69568*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 69570*/        OPC_MoveParent,
/* 69571*/        OPC_RecordChild1, // #2 = $src2
/* 69572*/        OPC_RecordChild2, // #3 = $cond
/* 69573*/        OPC_MoveChild2,
/* 69574*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 69577*/        OPC_MoveParent,
/* 69578*/        OPC_RecordChild3, // #4 = physreg input EFLAGS
/* 69579*/        OPC_CheckType, MVT::i16,
/* 69581*/        OPC_CheckPatternPredicate, 34, // (Subtarget->hasCMov())
/* 69583*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #5 #6 #7 #8 #9
/* 69586*/        OPC_EmitMergeInputChains1_0,
/* 69587*/        OPC_EmitNodeXForm, 10, 3, // inv_cond_XFORM
/* 69590*/        OPC_EmitCopyToReg, 4, X86::EFLAGS,
/* 69593*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      MVT::i16, 7/*#Ops*/, 2, 5, 6, 7, 8, 9, 10, 
                  // Src: (X86cmov:{ *:[i16] } (ld:{ *:[i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, GR16:{ *:[i16] }:$src2, (timm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 28
                  // Dst: (CMOV16rm:{ *:[i16] } GR16:{ *:[i16] }:$src2, addr:{ *:[iPTR] }:$src1, (inv_cond_XFORM:{ *:[i8] } (timm:{ *:[i8] }):$cond))
/* 69606*/      /*Scope*/ 38, /*->69645*/
/* 69607*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 69609*/        OPC_MoveParent,
/* 69610*/        OPC_RecordChild1, // #2 = $src2
/* 69611*/        OPC_RecordChild2, // #3 = $cond
/* 69612*/        OPC_MoveChild2,
/* 69613*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 69616*/        OPC_MoveParent,
/* 69617*/        OPC_RecordChild3, // #4 = physreg input EFLAGS
/* 69618*/        OPC_CheckType, MVT::i32,
/* 69620*/        OPC_CheckPatternPredicate, 34, // (Subtarget->hasCMov())
/* 69622*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #5 #6 #7 #8 #9
/* 69625*/        OPC_EmitMergeInputChains1_0,
/* 69626*/        OPC_EmitNodeXForm, 10, 3, // inv_cond_XFORM
/* 69629*/        OPC_EmitCopyToReg, 4, X86::EFLAGS,
/* 69632*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      MVT::i32, 7/*#Ops*/, 2, 5, 6, 7, 8, 9, 10, 
                  // Src: (X86cmov:{ *:[i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, GR32:{ *:[i32] }:$src2, (timm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 28
                  // Dst: (CMOV32rm:{ *:[i32] } GR32:{ *:[i32] }:$src2, addr:{ *:[iPTR] }:$src1, (inv_cond_XFORM:{ *:[i8] } (timm:{ *:[i8] }):$cond))
/* 69645*/      /*Scope*/ 38, /*->69684*/
/* 69646*/        OPC_CheckPredicate, 9, // Predicate_load
/* 69648*/        OPC_MoveParent,
/* 69649*/        OPC_RecordChild1, // #2 = $src2
/* 69650*/        OPC_RecordChild2, // #3 = $cond
/* 69651*/        OPC_MoveChild2,
/* 69652*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 69655*/        OPC_MoveParent,
/* 69656*/        OPC_RecordChild3, // #4 = physreg input EFLAGS
/* 69657*/        OPC_CheckType, MVT::i64,
/* 69659*/        OPC_CheckPatternPredicate, 34, // (Subtarget->hasCMov())
/* 69661*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #5 #6 #7 #8 #9
/* 69664*/        OPC_EmitMergeInputChains1_0,
/* 69665*/        OPC_EmitNodeXForm, 10, 3, // inv_cond_XFORM
/* 69668*/        OPC_EmitCopyToReg, 4, X86::EFLAGS,
/* 69671*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      MVT::i64, 7/*#Ops*/, 2, 5, 6, 7, 8, 9, 10, 
                  // Src: (X86cmov:{ *:[i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR64:{ *:[i64] }:$src2, (timm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 28
                  // Dst: (CMOV64rm:{ *:[i64] } GR64:{ *:[i64] }:$src2, addr:{ *:[iPTR] }:$src1, (inv_cond_XFORM:{ *:[i8] } (timm:{ *:[i8] }):$cond))
/* 69684*/      0, /*End of Scope*/
/* 69685*/    /*Scope*/ 105|128,9/*1257*/, /*->70944*/
/* 69687*/      OPC_RecordChild0, // #0 = $src1
/* 69688*/      OPC_RecordChild1, // #1 = $src2
/* 69689*/      OPC_Scope, 107, /*->69798*/ // 10 children in Scope
/* 69691*/        OPC_RecordChild2, // #2 = $cond
/* 69692*/        OPC_MoveChild2,
/* 69693*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 69696*/        OPC_MoveParent,
/* 69697*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 69698*/        OPC_SwitchType /*4 cases */, 32, MVT::i16,// ->69733
/* 69701*/          OPC_Scope, 14, /*->69717*/ // 2 children in Scope
/* 69703*/            OPC_CheckPatternPredicate, 34, // (Subtarget->hasCMov())
/* 69705*/            OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 69708*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV16rr), 0|OPFL_GlueInput,
                          MVT::i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86cmov:{ *:[i16] } GR16:{ *:[i16] }:$src1, GR16:{ *:[i16] }:$src2, (timm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 6
                      // Dst: (CMOV16rr:{ *:[i16] } GR16:{ *:[i16] }:$src1, GR16:{ *:[i16] }:$src2, (timm:{ *:[i8] }):$cond)
/* 69717*/          /*Scope*/ 14, /*->69732*/
/* 69718*/            OPC_CheckPatternPredicate, 121, // (!Subtarget->hasCMov())
/* 69720*/            OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 69723*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_GR16), 0|OPFL_GlueInput,
                          MVT::i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86cmov:{ *:[i16] } GR16:{ *:[i16] }:$t, GR16:{ *:[i16] }:$f, (timm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 6
                      // Dst: (CMOV_GR16:{ *:[i16] } GR16:{ *:[i16] }:$t, GR16:{ *:[i16] }:$f, (timm:{ *:[i8] }):$cond)
/* 69732*/          0, /*End of Scope*/
/* 69733*/        /*SwitchType*/ 32, MVT::i32,// ->69767
/* 69735*/          OPC_Scope, 14, /*->69751*/ // 2 children in Scope
/* 69737*/            OPC_CheckPatternPredicate, 34, // (Subtarget->hasCMov())
/* 69739*/            OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 69742*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV32rr), 0|OPFL_GlueInput,
                          MVT::i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86cmov:{ *:[i32] } GR32:{ *:[i32] }:$src1, GR32:{ *:[i32] }:$src2, (timm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 6
                      // Dst: (CMOV32rr:{ *:[i32] } GR32:{ *:[i32] }:$src1, GR32:{ *:[i32] }:$src2, (timm:{ *:[i8] }):$cond)
/* 69751*/          /*Scope*/ 14, /*->69766*/
/* 69752*/            OPC_CheckPatternPredicate, 121, // (!Subtarget->hasCMov())
/* 69754*/            OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 69757*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_GR32), 0|OPFL_GlueInput,
                          MVT::i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86cmov:{ *:[i32] } GR32:{ *:[i32] }:$t, GR32:{ *:[i32] }:$f, (timm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 6
                      // Dst: (CMOV_GR32:{ *:[i32] } GR32:{ *:[i32] }:$t, GR32:{ *:[i32] }:$f, (timm:{ *:[i8] }):$cond)
/* 69766*/          0, /*End of Scope*/
/* 69767*/        /*SwitchType*/ 14, MVT::i64,// ->69783
/* 69769*/          OPC_CheckPatternPredicate, 34, // (Subtarget->hasCMov())
/* 69771*/          OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 69774*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV64rr), 0|OPFL_GlueInput,
                        MVT::i64, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86cmov:{ *:[i64] } GR64:{ *:[i64] }:$src1, GR64:{ *:[i64] }:$src2, (timm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 6
                    // Dst: (CMOV64rr:{ *:[i64] } GR64:{ *:[i64] }:$src1, GR64:{ *:[i64] }:$src2, (timm:{ *:[i8] }):$cond)
/* 69783*/        /*SwitchType*/ 12, MVT::i8,// ->69797
/* 69785*/          OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 69788*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_GR8), 0|OPFL_GlueInput,
                        MVT::i8, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86cmov:{ *:[i8] } GR8:{ *:[i8] }:$t, GR8:{ *:[i8] }:$f, (timm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 6
                    // Dst: (CMOV_GR8:{ *:[i8] } GR8:{ *:[i8] }:$t, GR8:{ *:[i8] }:$f, (timm:{ *:[i8] }):$cond)
/* 69797*/        0, // EndSwitchType
/* 69798*/      /*Scope*/ 53, /*->69852*/
/* 69799*/        OPC_CheckChild2Integer, 2, 
/* 69801*/        OPC_RecordChild3, // #2 = physreg input EFLAGS
/* 69802*/        OPC_SwitchType /*3 cases */, 14, MVT::f32,// ->69819
/* 69805*/          OPC_CheckPatternPredicate, 32, // (!Subtarget->hasSSE1()) && (Subtarget->hasCMov())
/* 69807*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/* 69810*/          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)
/* 69819*/        /*SwitchType*/ 14, MVT::f64,// ->69835
/* 69821*/          OPC_CheckPatternPredicate, 33, // (!Subtarget->hasSSE2()) && (Subtarget->hasCMov())
/* 69823*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/* 69826*/          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)
/* 69835*/        /*SwitchType*/ 14, MVT::f80,// ->69851
/* 69837*/          OPC_CheckPatternPredicate, 34, // (Subtarget->hasCMov())
/* 69839*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/* 69842*/          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)
/* 69851*/        0, // EndSwitchType
/* 69852*/      /*Scope*/ 53, /*->69906*/
/* 69853*/        OPC_CheckChild2Integer, 6, 
/* 69855*/        OPC_RecordChild3, // #2 = physreg input EFLAGS
/* 69856*/        OPC_SwitchType /*3 cases */, 14, MVT::f32,// ->69873
/* 69859*/          OPC_CheckPatternPredicate, 32, // (!Subtarget->hasSSE1()) && (Subtarget->hasCMov())
/* 69861*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/* 69864*/          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, 6:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                    // Dst: (CMOVBE_Fp32:{ *:[f32] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, RFP32:{ *:[f32] }:$src2)
/* 69873*/        /*SwitchType*/ 14, MVT::f64,// ->69889
/* 69875*/          OPC_CheckPatternPredicate, 33, // (!Subtarget->hasSSE2()) && (Subtarget->hasCMov())
/* 69877*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/* 69880*/          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, 6:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                    // Dst: (CMOVBE_Fp64:{ *:[f64] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, RFP64:{ *:[f64] }:$src2)
/* 69889*/        /*SwitchType*/ 14, MVT::f80,// ->69905
/* 69891*/          OPC_CheckPatternPredicate, 34, // (Subtarget->hasCMov())
/* 69893*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/* 69896*/          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, 6:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                    // Dst: (CMOVBE_Fp80:{ *:[f80] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, RFP80:{ *:[f80] }:$src2)
/* 69905*/        0, // EndSwitchType
/* 69906*/      /*Scope*/ 53, /*->69960*/
/* 69907*/        OPC_CheckChild2Integer, 4, 
/* 69909*/        OPC_RecordChild3, // #2 = physreg input EFLAGS
/* 69910*/        OPC_SwitchType /*3 cases */, 14, MVT::f32,// ->69927
/* 69913*/          OPC_CheckPatternPredicate, 32, // (!Subtarget->hasSSE1()) && (Subtarget->hasCMov())
/* 69915*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/* 69918*/          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)
/* 69927*/        /*SwitchType*/ 14, MVT::f64,// ->69943
/* 69929*/          OPC_CheckPatternPredicate, 33, // (!Subtarget->hasSSE2()) && (Subtarget->hasCMov())
/* 69931*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/* 69934*/          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)
/* 69943*/        /*SwitchType*/ 14, MVT::f80,// ->69959
/* 69945*/          OPC_CheckPatternPredicate, 34, // (Subtarget->hasCMov())
/* 69947*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/* 69950*/          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)
/* 69959*/        0, // EndSwitchType
/* 69960*/      /*Scope*/ 53, /*->70014*/
/* 69961*/        OPC_CheckChild2Integer, 10, 
/* 69963*/        OPC_RecordChild3, // #2 = physreg input EFLAGS
/* 69964*/        OPC_SwitchType /*3 cases */, 14, MVT::f32,// ->69981
/* 69967*/          OPC_CheckPatternPredicate, 32, // (!Subtarget->hasSSE1()) && (Subtarget->hasCMov())
/* 69969*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/* 69972*/          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, 10:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                    // Dst: (CMOVP_Fp32:{ *:[f32] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, RFP32:{ *:[f32] }:$src2)
/* 69981*/        /*SwitchType*/ 14, MVT::f64,// ->69997
/* 69983*/          OPC_CheckPatternPredicate, 33, // (!Subtarget->hasSSE2()) && (Subtarget->hasCMov())
/* 69985*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/* 69988*/          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, 10:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                    // Dst: (CMOVP_Fp64:{ *:[f64] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, RFP64:{ *:[f64] }:$src2)
/* 69997*/        /*SwitchType*/ 14, MVT::f80,// ->70013
/* 69999*/          OPC_CheckPatternPredicate, 34, // (Subtarget->hasCMov())
/* 70001*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/* 70004*/          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, 10:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                    // Dst: (CMOVP_Fp80:{ *:[f80] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, RFP80:{ *:[f80] }:$src2)
/* 70013*/        0, // EndSwitchType
/* 70014*/      /*Scope*/ 53, /*->70068*/
/* 70015*/        OPC_CheckChild2Integer, 3, 
/* 70017*/        OPC_RecordChild3, // #2 = physreg input EFLAGS
/* 70018*/        OPC_SwitchType /*3 cases */, 14, MVT::f32,// ->70035
/* 70021*/          OPC_CheckPatternPredicate, 32, // (!Subtarget->hasSSE1()) && (Subtarget->hasCMov())
/* 70023*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/* 70026*/          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, 3:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                    // Dst: (CMOVNB_Fp32:{ *:[f32] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, RFP32:{ *:[f32] }:$src2)
/* 70035*/        /*SwitchType*/ 14, MVT::f64,// ->70051
/* 70037*/          OPC_CheckPatternPredicate, 33, // (!Subtarget->hasSSE2()) && (Subtarget->hasCMov())
/* 70039*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/* 70042*/          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, 3:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                    // Dst: (CMOVNB_Fp64:{ *:[f64] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, RFP64:{ *:[f64] }:$src2)
/* 70051*/        /*SwitchType*/ 14, MVT::f80,// ->70067
/* 70053*/          OPC_CheckPatternPredicate, 34, // (Subtarget->hasCMov())
/* 70055*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/* 70058*/          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, 3:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                    // Dst: (CMOVNB_Fp80:{ *:[f80] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, RFP80:{ *:[f80] }:$src2)
/* 70067*/        0, // EndSwitchType
/* 70068*/      /*Scope*/ 53, /*->70122*/
/* 70069*/        OPC_CheckChild2Integer, 7, 
/* 70071*/        OPC_RecordChild3, // #2 = physreg input EFLAGS
/* 70072*/        OPC_SwitchType /*3 cases */, 14, MVT::f32,// ->70089
/* 70075*/          OPC_CheckPatternPredicate, 32, // (!Subtarget->hasSSE1()) && (Subtarget->hasCMov())
/* 70077*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/* 70080*/          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, 7:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                    // Dst: (CMOVNBE_Fp32:{ *:[f32] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, RFP32:{ *:[f32] }:$src2)
/* 70089*/        /*SwitchType*/ 14, MVT::f64,// ->70105
/* 70091*/          OPC_CheckPatternPredicate, 33, // (!Subtarget->hasSSE2()) && (Subtarget->hasCMov())
/* 70093*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/* 70096*/          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, 7:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                    // Dst: (CMOVNBE_Fp64:{ *:[f64] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, RFP64:{ *:[f64] }:$src2)
/* 70105*/        /*SwitchType*/ 14, MVT::f80,// ->70121
/* 70107*/          OPC_CheckPatternPredicate, 34, // (Subtarget->hasCMov())
/* 70109*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/* 70112*/          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, 7:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                    // Dst: (CMOVNBE_Fp80:{ *:[f80] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, RFP80:{ *:[f80] }:$src2)
/* 70121*/        0, // EndSwitchType
/* 70122*/      /*Scope*/ 53, /*->70176*/
/* 70123*/        OPC_CheckChild2Integer, 5, 
/* 70125*/        OPC_RecordChild3, // #2 = physreg input EFLAGS
/* 70126*/        OPC_SwitchType /*3 cases */, 14, MVT::f32,// ->70143
/* 70129*/          OPC_CheckPatternPredicate, 32, // (!Subtarget->hasSSE1()) && (Subtarget->hasCMov())
/* 70131*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/* 70134*/          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, 5:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                    // Dst: (CMOVNE_Fp32:{ *:[f32] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, RFP32:{ *:[f32] }:$src2)
/* 70143*/        /*SwitchType*/ 14, MVT::f64,// ->70159
/* 70145*/          OPC_CheckPatternPredicate, 33, // (!Subtarget->hasSSE2()) && (Subtarget->hasCMov())
/* 70147*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/* 70150*/          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, 5:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                    // Dst: (CMOVNE_Fp64:{ *:[f64] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, RFP64:{ *:[f64] }:$src2)
/* 70159*/        /*SwitchType*/ 14, MVT::f80,// ->70175
/* 70161*/          OPC_CheckPatternPredicate, 34, // (Subtarget->hasCMov())
/* 70163*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/* 70166*/          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, 5:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 8
                    // Dst: (CMOVNE_Fp80:{ *:[f80] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, RFP80:{ *:[f80] }:$src2)
/* 70175*/        0, // EndSwitchType
/* 70176*/      /*Scope*/ 53, /*->70230*/
/* 70177*/        OPC_CheckChild2Integer, 11, 
/* 70179*/        OPC_RecordChild3, // #2 = physreg input EFLAGS
/* 70180*/        OPC_SwitchType /*3 cases */, 14, MVT::f32,// ->70197
/* 70183*/          OPC_CheckPatternPredicate, 32, // (!Subtarget->hasSSE1()) && (Subtarget->hasCMov())
/* 70185*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/* 70188*/          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)
/* 70197*/        /*SwitchType*/ 14, MVT::f64,// ->70213
/* 70199*/          OPC_CheckPatternPredicate, 33, // (!Subtarget->hasSSE2()) && (Subtarget->hasCMov())
/* 70201*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/* 70204*/          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)
/* 70213*/        /*SwitchType*/ 14, MVT::f80,// ->70229
/* 70215*/          OPC_CheckPatternPredicate, 34, // (Subtarget->hasCMov())
/* 70217*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/* 70220*/          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)
/* 70229*/        0, // EndSwitchType
/* 70230*/      /*Scope*/ 71|128,5/*711*/, /*->70943*/
/* 70232*/        OPC_RecordChild2, // #2 = $cond
/* 70233*/        OPC_MoveChild2,
/* 70234*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/* 70237*/        OPC_MoveParent,
/* 70238*/        OPC_RecordChild3, // #3 = physreg input EFLAGS
/* 70239*/        OPC_SwitchType /*28 cases */, 47, MVT::f32,// ->70289
/* 70242*/          OPC_Scope, 14, /*->70258*/ // 3 children in Scope
/* 70244*/            OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/* 70246*/            OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 70249*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_RFP32), 0|OPFL_GlueInput,
                          MVT::f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86cmov:{ *:[f32] } RFP32:{ *:[f32] }:$t, RFP32:{ *:[f32] }:$f, (timm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 6
                      // Dst: (CMOV_RFP32:{ *:[f32] } RFP32:{ *:[f32] }:$t, RFP32:{ *:[f32] }:$f, (timm:{ *:[i8] }):$cond)
/* 70258*/          /*Scope*/ 14, /*->70273*/
/* 70259*/            OPC_CheckPatternPredicate, 122, // (!Subtarget->hasAVX512())
/* 70261*/            OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 70264*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_FR32), 0|OPFL_GlueInput,
                          MVT::f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86cmov:{ *:[f32] } FR32:{ *:[f32] }:$t, FR32:{ *:[f32] }:$f, (timm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 6
                      // Dst: (CMOV_FR32:{ *:[f32] } FR32:{ *:[f32] }:$t, FR32:{ *:[f32] }:$f, (timm:{ *:[i8] }):$cond)
/* 70273*/          /*Scope*/ 14, /*->70288*/
/* 70274*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 70276*/            OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 70279*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_FR32X), 0|OPFL_GlueInput,
                          MVT::f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86cmov:{ *:[f32] } FR32X:{ *:[f32] }:$t, FR32X:{ *:[f32] }:$f, (timm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 6
                      // Dst: (CMOV_FR32X:{ *:[f32] } FR32X:{ *:[f32] }:$t, FR32X:{ *:[f32] }:$f, (timm:{ *:[i8] }):$cond)
/* 70288*/          0, /*End of Scope*/
/* 70289*/        /*SwitchType*/ 47, MVT::f64,// ->70338
/* 70291*/          OPC_Scope, 14, /*->70307*/ // 3 children in Scope
/* 70293*/            OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/* 70295*/            OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 70298*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_RFP64), 0|OPFL_GlueInput,
                          MVT::f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86cmov:{ *:[f64] } RFP64:{ *:[f64] }:$t, RFP64:{ *:[f64] }:$f, (timm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 6
                      // Dst: (CMOV_RFP64:{ *:[f64] } RFP64:{ *:[f64] }:$t, RFP64:{ *:[f64] }:$f, (timm:{ *:[i8] }):$cond)
/* 70307*/          /*Scope*/ 14, /*->70322*/
/* 70308*/            OPC_CheckPatternPredicate, 122, // (!Subtarget->hasAVX512())
/* 70310*/            OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 70313*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_FR64), 0|OPFL_GlueInput,
                          MVT::f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86cmov:{ *:[f64] } FR64:{ *:[f64] }:$t, FR64:{ *:[f64] }:$f, (timm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 6
                      // Dst: (CMOV_FR64:{ *:[f64] } FR64:{ *:[f64] }:$t, FR64:{ *:[f64] }:$f, (timm:{ *:[i8] }):$cond)
/* 70322*/          /*Scope*/ 14, /*->70337*/
/* 70323*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 70325*/            OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 70328*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_FR64X), 0|OPFL_GlueInput,
                          MVT::f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86cmov:{ *:[f64] } FR64X:{ *:[f64] }:$t, FR64X:{ *:[f64] }:$f, (timm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 6
                      // Dst: (CMOV_FR64X:{ *:[f64] } FR64X:{ *:[f64] }:$t, FR64X:{ *:[f64] }:$f, (timm:{ *:[i8] }):$cond)
/* 70337*/          0, /*End of Scope*/
/* 70338*/        /*SwitchType*/ 12, MVT::f80,// ->70352
/* 70340*/          OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 70343*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_RFP80), 0|OPFL_GlueInput,
                        MVT::f80, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86cmov:{ *:[f80] } RFP80:{ *:[f80] }:$t, RFP80:{ *:[f80] }:$f, (timm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 6
                    // Dst: (CMOV_RFP80:{ *:[f80] } RFP80:{ *:[f80] }:$t, RFP80:{ *:[f80] }:$f, (timm:{ *:[i8] }):$cond)
/* 70352*/        /*SwitchType*/ 12, MVT::f128,// ->70366
/* 70354*/          OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 70357*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_VR128), 0|OPFL_GlueInput,
                        MVT::f128, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86cmov:{ *:[f128] } VR128:{ *:[f128] }:$t, VR128:{ *:[f128] }:$f, (timm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 6
                    // Dst: (CMOV_VR128:{ *:[f128] } VR128:{ *:[f128] }:$t, VR128:{ *:[f128] }:$f, (timm:{ *:[i8] }):$cond)
/* 70366*/        /*SwitchType*/ 32, MVT::v2i64,// ->70400
/* 70368*/          OPC_Scope, 14, /*->70384*/ // 2 children in Scope
/* 70370*/            OPC_CheckPatternPredicate, 123, // (!Subtarget->hasVLX())
/* 70372*/            OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 70375*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_VR128), 0|OPFL_GlueInput,
                          MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86cmov:{ *:[v2i64] } VR128:{ *:[v2i64] }:$t, VR128:{ *:[v2i64] }:$f, (timm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 6
                      // Dst: (CMOV_VR128:{ *:[v2i64] } VR128:{ *:[v2i64] }:$t, VR128:{ *:[v2i64] }:$f, (timm:{ *:[i8] }):$cond)
/* 70384*/          /*Scope*/ 14, /*->70399*/
/* 70385*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 70387*/            OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 70390*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_VR128X), 0|OPFL_GlueInput,
                          MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86cmov:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$t, VR128X:{ *:[v2i64] }:$f, (timm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 6
                      // Dst: (CMOV_VR128X:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$t, VR128X:{ *:[v2i64] }:$f, (timm:{ *:[i8] }):$cond)
/* 70399*/          0, /*End of Scope*/
/* 70400*/        /*SwitchType*/ 32, MVT::v4i64,// ->70434
/* 70402*/          OPC_Scope, 14, /*->70418*/ // 2 children in Scope
/* 70404*/            OPC_CheckPatternPredicate, 123, // (!Subtarget->hasVLX())
/* 70406*/            OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 70409*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_VR256), 0|OPFL_GlueInput,
                          MVT::v4i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86cmov:{ *:[v4i64] } VR256:{ *:[v4i64] }:$t, VR256:{ *:[v4i64] }:$f, (timm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 6
                      // Dst: (CMOV_VR256:{ *:[v4i64] } VR256:{ *:[v4i64] }:$t, VR256:{ *:[v4i64] }:$f, (timm:{ *:[i8] }):$cond)
/* 70418*/          /*Scope*/ 14, /*->70433*/
/* 70419*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 70421*/            OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 70424*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_VR256X), 0|OPFL_GlueInput,
                          MVT::v4i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86cmov:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$t, VR256X:{ *:[v4i64] }:$f, (timm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 6
                      // Dst: (CMOV_VR256X:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$t, VR256X:{ *:[v4i64] }:$f, (timm:{ *:[i8] }):$cond)
/* 70433*/          0, /*End of Scope*/
/* 70434*/        /*SwitchType*/ 12, MVT::v8i64,// ->70448
/* 70436*/          OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 70439*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_VR512), 0|OPFL_GlueInput,
                        MVT::v8i64, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86cmov:{ *:[v8i64] } VR512:{ *:[v8i64] }:$t, VR512:{ *:[v8i64] }:$f, (timm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 6
                    // Dst: (CMOV_VR512:{ *:[v8i64] } VR512:{ *:[v8i64] }:$t, VR512:{ *:[v8i64] }:$f, (timm:{ *:[i8] }):$cond)
/* 70448*/        /*SwitchType*/ 12, MVT::v2i1,// ->70462
/* 70450*/          OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 70453*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_VK2), 0|OPFL_GlueInput,
                        MVT::v2i1, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86cmov:{ *:[v2i1] } VK2:{ *:[v2i1] }:$t, VK2:{ *:[v2i1] }:$f, (timm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 6
                    // Dst: (CMOV_VK2:{ *:[v2i1] } VK2:{ *:[v2i1] }:$t, VK2:{ *:[v2i1] }:$f, (timm:{ *:[i8] }):$cond)
/* 70462*/        /*SwitchType*/ 12, MVT::v4i1,// ->70476
/* 70464*/          OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 70467*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_VK4), 0|OPFL_GlueInput,
                        MVT::v4i1, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86cmov:{ *:[v4i1] } VK4:{ *:[v4i1] }:$t, VK4:{ *:[v4i1] }:$f, (timm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 6
                    // Dst: (CMOV_VK4:{ *:[v4i1] } VK4:{ *:[v4i1] }:$t, VK4:{ *:[v4i1] }:$f, (timm:{ *:[i8] }):$cond)
/* 70476*/        /*SwitchType*/ 12, MVT::v8i1,// ->70490
/* 70478*/          OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 70481*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_VK8), 0|OPFL_GlueInput,
                        MVT::v8i1, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86cmov:{ *:[v8i1] } VK8:{ *:[v8i1] }:$t, VK8:{ *:[v8i1] }:$f, (timm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 6
                    // Dst: (CMOV_VK8:{ *:[v8i1] } VK8:{ *:[v8i1] }:$t, VK8:{ *:[v8i1] }:$f, (timm:{ *:[i8] }):$cond)
/* 70490*/        /*SwitchType*/ 12, MVT::v16i1,// ->70504
/* 70492*/          OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 70495*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_VK16), 0|OPFL_GlueInput,
                        MVT::v16i1, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86cmov:{ *:[v16i1] } VK16:{ *:[v16i1] }:$t, VK16:{ *:[v16i1] }:$f, (timm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 6
                    // Dst: (CMOV_VK16:{ *:[v16i1] } VK16:{ *:[v16i1] }:$t, VK16:{ *:[v16i1] }:$f, (timm:{ *:[i8] }):$cond)
/* 70504*/        /*SwitchType*/ 12, MVT::v32i1,// ->70518
/* 70506*/          OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 70509*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_VK32), 0|OPFL_GlueInput,
                        MVT::v32i1, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86cmov:{ *:[v32i1] } VK32:{ *:[v32i1] }:$t, VK32:{ *:[v32i1] }:$f, (timm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 6
                    // Dst: (CMOV_VK32:{ *:[v32i1] } VK32:{ *:[v32i1] }:$t, VK32:{ *:[v32i1] }:$f, (timm:{ *:[i8] }):$cond)
/* 70518*/        /*SwitchType*/ 12, MVT::v64i1,// ->70532
/* 70520*/          OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 70523*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_VK64), 0|OPFL_GlueInput,
                        MVT::v64i1, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86cmov:{ *:[v64i1] } VK64:{ *:[v64i1] }:$t, VK64:{ *:[v64i1] }:$f, (timm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 6
                    // Dst: (CMOV_VK64:{ *:[v64i1] } VK64:{ *:[v64i1] }:$t, VK64:{ *:[v64i1] }:$f, (timm:{ *:[i8] }):$cond)
/* 70532*/        /*SwitchType*/ 32, MVT::v16i8,// ->70566
/* 70534*/          OPC_Scope, 14, /*->70550*/ // 2 children in Scope
/* 70536*/            OPC_CheckPatternPredicate, 123, // (!Subtarget->hasVLX())
/* 70538*/            OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 70541*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_VR128), 0|OPFL_GlueInput,
                          MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86cmov:{ *:[v16i8] } VR128:{ *:[v16i8] }:$t, VR128:{ *:[v16i8] }:$f, (timm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 6
                      // Dst: (CMOV_VR128:{ *:[v16i8] } VR128:{ *:[v16i8] }:$t, VR128:{ *:[v16i8] }:$f, (timm:{ *:[i8] }):$cond)
/* 70550*/          /*Scope*/ 14, /*->70565*/
/* 70551*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 70553*/            OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 70556*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_VR128X), 0|OPFL_GlueInput,
                          MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86cmov:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$t, VR128X:{ *:[v16i8] }:$f, (timm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 6
                      // Dst: (CMOV_VR128X:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$t, VR128X:{ *:[v16i8] }:$f, (timm:{ *:[i8] }):$cond)
/* 70565*/          0, /*End of Scope*/
/* 70566*/        /*SwitchType*/ 32, MVT::v8i16,// ->70600
/* 70568*/          OPC_Scope, 14, /*->70584*/ // 2 children in Scope
/* 70570*/            OPC_CheckPatternPredicate, 123, // (!Subtarget->hasVLX())
/* 70572*/            OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 70575*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_VR128), 0|OPFL_GlueInput,
                          MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86cmov:{ *:[v8i16] } VR128:{ *:[v8i16] }:$t, VR128:{ *:[v8i16] }:$f, (timm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 6
                      // Dst: (CMOV_VR128:{ *:[v8i16] } VR128:{ *:[v8i16] }:$t, VR128:{ *:[v8i16] }:$f, (timm:{ *:[i8] }):$cond)
/* 70584*/          /*Scope*/ 14, /*->70599*/
/* 70585*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 70587*/            OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 70590*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_VR128X), 0|OPFL_GlueInput,
                          MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86cmov:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$t, VR128X:{ *:[v8i16] }:$f, (timm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 6
                      // Dst: (CMOV_VR128X:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$t, VR128X:{ *:[v8i16] }:$f, (timm:{ *:[i8] }):$cond)
/* 70599*/          0, /*End of Scope*/
/* 70600*/        /*SwitchType*/ 32, MVT::v4i32,// ->70634
/* 70602*/          OPC_Scope, 14, /*->70618*/ // 2 children in Scope
/* 70604*/            OPC_CheckPatternPredicate, 123, // (!Subtarget->hasVLX())
/* 70606*/            OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 70609*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_VR128), 0|OPFL_GlueInput,
                          MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86cmov:{ *:[v4i32] } VR128:{ *:[v4i32] }:$t, VR128:{ *:[v4i32] }:$f, (timm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 6
                      // Dst: (CMOV_VR128:{ *:[v4i32] } VR128:{ *:[v4i32] }:$t, VR128:{ *:[v4i32] }:$f, (timm:{ *:[i8] }):$cond)
/* 70618*/          /*Scope*/ 14, /*->70633*/
/* 70619*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 70621*/            OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 70624*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_VR128X), 0|OPFL_GlueInput,
                          MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86cmov:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$t, VR128X:{ *:[v4i32] }:$f, (timm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 6
                      // Dst: (CMOV_VR128X:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$t, VR128X:{ *:[v4i32] }:$f, (timm:{ *:[i8] }):$cond)
/* 70633*/          0, /*End of Scope*/
/* 70634*/        /*SwitchType*/ 32, MVT::v32i8,// ->70668
/* 70636*/          OPC_Scope, 14, /*->70652*/ // 2 children in Scope
/* 70638*/            OPC_CheckPatternPredicate, 123, // (!Subtarget->hasVLX())
/* 70640*/            OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 70643*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_VR256), 0|OPFL_GlueInput,
                          MVT::v32i8, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86cmov:{ *:[v32i8] } VR256:{ *:[v32i8] }:$t, VR256:{ *:[v32i8] }:$f, (timm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 6
                      // Dst: (CMOV_VR256:{ *:[v32i8] } VR256:{ *:[v32i8] }:$t, VR256:{ *:[v32i8] }:$f, (timm:{ *:[i8] }):$cond)
/* 70652*/          /*Scope*/ 14, /*->70667*/
/* 70653*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 70655*/            OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 70658*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_VR256X), 0|OPFL_GlueInput,
                          MVT::v32i8, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86cmov:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$t, VR256X:{ *:[v32i8] }:$f, (timm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 6
                      // Dst: (CMOV_VR256X:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$t, VR256X:{ *:[v32i8] }:$f, (timm:{ *:[i8] }):$cond)
/* 70667*/          0, /*End of Scope*/
/* 70668*/        /*SwitchType*/ 32, MVT::v16i16,// ->70702
/* 70670*/          OPC_Scope, 14, /*->70686*/ // 2 children in Scope
/* 70672*/            OPC_CheckPatternPredicate, 123, // (!Subtarget->hasVLX())
/* 70674*/            OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 70677*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_VR256), 0|OPFL_GlueInput,
                          MVT::v16i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86cmov:{ *:[v16i16] } VR256:{ *:[v16i16] }:$t, VR256:{ *:[v16i16] }:$f, (timm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 6
                      // Dst: (CMOV_VR256:{ *:[v16i16] } VR256:{ *:[v16i16] }:$t, VR256:{ *:[v16i16] }:$f, (timm:{ *:[i8] }):$cond)
/* 70686*/          /*Scope*/ 14, /*->70701*/
/* 70687*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 70689*/            OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 70692*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_VR256X), 0|OPFL_GlueInput,
                          MVT::v16i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86cmov:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$t, VR256X:{ *:[v16i16] }:$f, (timm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 6
                      // Dst: (CMOV_VR256X:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$t, VR256X:{ *:[v16i16] }:$f, (timm:{ *:[i8] }):$cond)
/* 70701*/          0, /*End of Scope*/
/* 70702*/        /*SwitchType*/ 32, MVT::v8i32,// ->70736
/* 70704*/          OPC_Scope, 14, /*->70720*/ // 2 children in Scope
/* 70706*/            OPC_CheckPatternPredicate, 123, // (!Subtarget->hasVLX())
/* 70708*/            OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 70711*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_VR256), 0|OPFL_GlueInput,
                          MVT::v8i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86cmov:{ *:[v8i32] } VR256:{ *:[v8i32] }:$t, VR256:{ *:[v8i32] }:$f, (timm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 6
                      // Dst: (CMOV_VR256:{ *:[v8i32] } VR256:{ *:[v8i32] }:$t, VR256:{ *:[v8i32] }:$f, (timm:{ *:[i8] }):$cond)
/* 70720*/          /*Scope*/ 14, /*->70735*/
/* 70721*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 70723*/            OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 70726*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_VR256X), 0|OPFL_GlueInput,
                          MVT::v8i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86cmov:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$t, VR256X:{ *:[v8i32] }:$f, (timm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 6
                      // Dst: (CMOV_VR256X:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$t, VR256X:{ *:[v8i32] }:$f, (timm:{ *:[i8] }):$cond)
/* 70735*/          0, /*End of Scope*/
/* 70736*/        /*SwitchType*/ 12, MVT::v64i8,// ->70750
/* 70738*/          OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 70741*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_VR512), 0|OPFL_GlueInput,
                        MVT::v64i8, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86cmov:{ *:[v64i8] } VR512:{ *:[v64i8] }:$t, VR512:{ *:[v64i8] }:$f, (timm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 6
                    // Dst: (CMOV_VR512:{ *:[v64i8] } VR512:{ *:[v64i8] }:$t, VR512:{ *:[v64i8] }:$f, (timm:{ *:[i8] }):$cond)
/* 70750*/        /*SwitchType*/ 12, MVT::v32i16,// ->70764
/* 70752*/          OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 70755*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_VR512), 0|OPFL_GlueInput,
                        MVT::v32i16, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86cmov:{ *:[v32i16] } VR512:{ *:[v32i16] }:$t, VR512:{ *:[v32i16] }:$f, (timm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 6
                    // Dst: (CMOV_VR512:{ *:[v32i16] } VR512:{ *:[v32i16] }:$t, VR512:{ *:[v32i16] }:$f, (timm:{ *:[i8] }):$cond)
/* 70764*/        /*SwitchType*/ 12, MVT::v16i32,// ->70778
/* 70766*/          OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 70769*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_VR512), 0|OPFL_GlueInput,
                        MVT::v16i32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86cmov:{ *:[v16i32] } VR512:{ *:[v16i32] }:$t, VR512:{ *:[v16i32] }:$f, (timm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 6
                    // Dst: (CMOV_VR512:{ *:[v16i32] } VR512:{ *:[v16i32] }:$t, VR512:{ *:[v16i32] }:$f, (timm:{ *:[i8] }):$cond)
/* 70778*/        /*SwitchType*/ 32, MVT::v4f32,// ->70812
/* 70780*/          OPC_Scope, 14, /*->70796*/ // 2 children in Scope
/* 70782*/            OPC_CheckPatternPredicate, 123, // (!Subtarget->hasVLX())
/* 70784*/            OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 70787*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_VR128), 0|OPFL_GlueInput,
                          MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86cmov:{ *:[v4f32] } VR128:{ *:[v4f32] }:$t, VR128:{ *:[v4f32] }:$f, (timm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 6
                      // Dst: (CMOV_VR128:{ *:[v4f32] } VR128:{ *:[v4f32] }:$t, VR128:{ *:[v4f32] }:$f, (timm:{ *:[i8] }):$cond)
/* 70796*/          /*Scope*/ 14, /*->70811*/
/* 70797*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 70799*/            OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 70802*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_VR128X), 0|OPFL_GlueInput,
                          MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86cmov:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$t, VR128X:{ *:[v4f32] }:$f, (timm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 6
                      // Dst: (CMOV_VR128X:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$t, VR128X:{ *:[v4f32] }:$f, (timm:{ *:[i8] }):$cond)
/* 70811*/          0, /*End of Scope*/
/* 70812*/        /*SwitchType*/ 32, MVT::v2f64,// ->70846
/* 70814*/          OPC_Scope, 14, /*->70830*/ // 2 children in Scope
/* 70816*/            OPC_CheckPatternPredicate, 123, // (!Subtarget->hasVLX())
/* 70818*/            OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 70821*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_VR128), 0|OPFL_GlueInput,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86cmov:{ *:[v2f64] } VR128:{ *:[v2f64] }:$t, VR128:{ *:[v2f64] }:$f, (timm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 6
                      // Dst: (CMOV_VR128:{ *:[v2f64] } VR128:{ *:[v2f64] }:$t, VR128:{ *:[v2f64] }:$f, (timm:{ *:[i8] }):$cond)
/* 70830*/          /*Scope*/ 14, /*->70845*/
/* 70831*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 70833*/            OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 70836*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_VR128X), 0|OPFL_GlueInput,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86cmov:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$t, VR128X:{ *:[v2f64] }:$f, (timm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 6
                      // Dst: (CMOV_VR128X:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$t, VR128X:{ *:[v2f64] }:$f, (timm:{ *:[i8] }):$cond)
/* 70845*/          0, /*End of Scope*/
/* 70846*/        /*SwitchType*/ 32, MVT::v8f32,// ->70880
/* 70848*/          OPC_Scope, 14, /*->70864*/ // 2 children in Scope
/* 70850*/            OPC_CheckPatternPredicate, 123, // (!Subtarget->hasVLX())
/* 70852*/            OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 70855*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_VR256), 0|OPFL_GlueInput,
                          MVT::v8f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86cmov:{ *:[v8f32] } VR256:{ *:[v8f32] }:$t, VR256:{ *:[v8f32] }:$f, (timm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 6
                      // Dst: (CMOV_VR256:{ *:[v8f32] } VR256:{ *:[v8f32] }:$t, VR256:{ *:[v8f32] }:$f, (timm:{ *:[i8] }):$cond)
/* 70864*/          /*Scope*/ 14, /*->70879*/
/* 70865*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 70867*/            OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 70870*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_VR256X), 0|OPFL_GlueInput,
                          MVT::v8f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86cmov:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$t, VR256X:{ *:[v8f32] }:$f, (timm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 6
                      // Dst: (CMOV_VR256X:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$t, VR256X:{ *:[v8f32] }:$f, (timm:{ *:[i8] }):$cond)
/* 70879*/          0, /*End of Scope*/
/* 70880*/        /*SwitchType*/ 32, MVT::v4f64,// ->70914
/* 70882*/          OPC_Scope, 14, /*->70898*/ // 2 children in Scope
/* 70884*/            OPC_CheckPatternPredicate, 123, // (!Subtarget->hasVLX())
/* 70886*/            OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 70889*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_VR256), 0|OPFL_GlueInput,
                          MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86cmov:{ *:[v4f64] } VR256:{ *:[v4f64] }:$t, VR256:{ *:[v4f64] }:$f, (timm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 6
                      // Dst: (CMOV_VR256:{ *:[v4f64] } VR256:{ *:[v4f64] }:$t, VR256:{ *:[v4f64] }:$f, (timm:{ *:[i8] }):$cond)
/* 70898*/          /*Scope*/ 14, /*->70913*/
/* 70899*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 70901*/            OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 70904*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_VR256X), 0|OPFL_GlueInput,
                          MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86cmov:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$t, VR256X:{ *:[v4f64] }:$f, (timm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 6
                      // Dst: (CMOV_VR256X:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$t, VR256X:{ *:[v4f64] }:$f, (timm:{ *:[i8] }):$cond)
/* 70913*/          0, /*End of Scope*/
/* 70914*/        /*SwitchType*/ 12, MVT::v16f32,// ->70928
/* 70916*/          OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 70919*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_VR512), 0|OPFL_GlueInput,
                        MVT::v16f32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86cmov:{ *:[v16f32] } VR512:{ *:[v16f32] }:$t, VR512:{ *:[v16f32] }:$f, (timm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 6
                    // Dst: (CMOV_VR512:{ *:[v16f32] } VR512:{ *:[v16f32] }:$t, VR512:{ *:[v16f32] }:$f, (timm:{ *:[i8] }):$cond)
/* 70928*/        /*SwitchType*/ 12, MVT::v8f64,// ->70942
/* 70930*/          OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 70933*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMOV_VR512), 0|OPFL_GlueInput,
                        MVT::v8f64, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86cmov:{ *:[v8f64] } VR512:{ *:[v8f64] }:$t, VR512:{ *:[v8f64] }:$f, (timm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 6
                    // Dst: (CMOV_VR512:{ *:[v8f64] } VR512:{ *:[v8f64] }:$t, VR512:{ *:[v8f64] }:$f, (timm:{ *:[i8] }):$cond)
/* 70942*/        0, // EndSwitchType
/* 70943*/      0, /*End of Scope*/
/* 70944*/    0, /*End of Scope*/
/* 70945*/  /*SwitchOpcode*/ 97|128,8/*1121*/, TARGET_VAL(ISD::ROTR),// ->72070
/* 70949*/    OPC_Scope, 80, /*->71031*/ // 2 children in Scope
/* 70951*/      OPC_MoveChild0,
/* 70952*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 70955*/      OPC_RecordMemRef,
/* 70956*/      OPC_RecordNode, // #0 = 'ld' chained node
/* 70957*/      OPC_CheckFoldableChainNode,
/* 70958*/      OPC_RecordChild1, // #1 = $src
/* 70959*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 70961*/      OPC_Scope, 33, /*->70996*/ // 2 children in Scope
/* 70963*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 70965*/        OPC_MoveParent,
/* 70966*/        OPC_RecordChild1, // #2 = $shamt
/* 70967*/        OPC_MoveChild1,
/* 70968*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 70971*/        OPC_CheckType, MVT::i8,
/* 70973*/        OPC_MoveParent,
/* 70974*/        OPC_CheckType, MVT::i32,
/* 70976*/        OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI2())
/* 70978*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/* 70981*/        OPC_EmitMergeInputChains1_0,
/* 70982*/        OPC_EmitConvertToTarget, 2,
/* 70984*/        OPC_MorphNodeTo1, TARGET_VAL(X86::RORX32mi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                  // Src: (rotr:{ *:[i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, (imm:{ *:[i8] }):$shamt) - Complexity = 28
                  // Dst: (RORX32mi:{ *:[i32] } addr:{ *:[iPTR] }:$src, (imm:{ *:[i8] }):$shamt)
/* 70996*/      /*Scope*/ 33, /*->71030*/
/* 70997*/        OPC_CheckPredicate, 9, // Predicate_load
/* 70999*/        OPC_MoveParent,
/* 71000*/        OPC_RecordChild1, // #2 = $shamt
/* 71001*/        OPC_MoveChild1,
/* 71002*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 71005*/        OPC_CheckType, MVT::i8,
/* 71007*/        OPC_MoveParent,
/* 71008*/        OPC_CheckType, MVT::i64,
/* 71010*/        OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI2())
/* 71012*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/* 71015*/        OPC_EmitMergeInputChains1_0,
/* 71016*/        OPC_EmitConvertToTarget, 2,
/* 71018*/        OPC_MorphNodeTo1, TARGET_VAL(X86::RORX64mi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                  // Src: (rotr:{ *:[i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[i8] }):$shamt) - Complexity = 28
                  // Dst: (RORX64mi:{ *:[i64] } addr:{ *:[iPTR] }:$src, (imm:{ *:[i8] }):$shamt)
/* 71030*/      0, /*End of Scope*/
/* 71031*/    /*Scope*/ 12|128,8/*1036*/, /*->72069*/
/* 71033*/      OPC_RecordChild0, // #0 = $src
/* 71034*/      OPC_Scope, 72, /*->71108*/ // 10 children in Scope
/* 71036*/        OPC_RecordChild1, // #1 = $shamt
/* 71037*/        OPC_MoveChild1,
/* 71038*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 71041*/        OPC_CheckType, MVT::i8,
/* 71043*/        OPC_MoveParent,
/* 71044*/        OPC_SwitchType /*2 cases */, 29, MVT::i32,// ->71076
/* 71047*/          OPC_Scope, 12, /*->71061*/ // 2 children in Scope
/* 71049*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI2())
/* 71051*/            OPC_EmitConvertToTarget, 1,
/* 71053*/            OPC_MorphNodeTo1, TARGET_VAL(X86::RORX32ri), 0,
                          MVT::i32, 2/*#Ops*/, 0, 2, 
                      // Src: (rotr:{ *:[i32] } GR32:{ *:[i32] }:$src, (imm:{ *:[i8] }):$shamt) - Complexity = 16
                      // Dst: (RORX32ri:{ *:[i32] } GR32:{ *:[i32] }:$src, (imm:{ *:[i8] }):$shamt)
/* 71061*/          /*Scope*/ 13, /*->71075*/
/* 71062*/            OPC_CheckPatternPredicate, 124, // (Subtarget->hasFastSHLDRotate())
/* 71064*/            OPC_EmitConvertToTarget, 1,
/* 71066*/            OPC_MorphNodeTo2, TARGET_VAL(X86::SHRDROT32ri), 0,
                          MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2, 
                      // Src: (rotr:{ *:[i32] } GR32:{ *:[i32] }:$src1, (imm:{ *:[i8] }):$shamt) - Complexity = 11
                      // Dst: (SHRDROT32ri:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, (imm:{ *:[i8] }):$shamt)
/* 71075*/          0, /*End of Scope*/
/* 71076*/        /*SwitchType*/ 29, MVT::i64,// ->71107
/* 71078*/          OPC_Scope, 12, /*->71092*/ // 2 children in Scope
/* 71080*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI2())
/* 71082*/            OPC_EmitConvertToTarget, 1,
/* 71084*/            OPC_MorphNodeTo1, TARGET_VAL(X86::RORX64ri), 0,
                          MVT::i64, 2/*#Ops*/, 0, 2, 
                      // Src: (rotr:{ *:[i64] } GR64:{ *:[i64] }:$src, (imm:{ *:[i8] }):$shamt) - Complexity = 16
                      // Dst: (RORX64ri:{ *:[i64] } GR64:{ *:[i64] }:$src, (imm:{ *:[i8] }):$shamt)
/* 71092*/          /*Scope*/ 13, /*->71106*/
/* 71093*/            OPC_CheckPatternPredicate, 124, // (Subtarget->hasFastSHLDRotate())
/* 71095*/            OPC_EmitConvertToTarget, 1,
/* 71097*/            OPC_MorphNodeTo2, TARGET_VAL(X86::SHRDROT64ri), 0,
                          MVT::i64, MVT::i32, 2/*#Ops*/, 0, 2, 
                      // Src: (rotr:{ *:[i64] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i8] }):$shamt) - Complexity = 11
                      // Dst: (SHRDROT64ri:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i8] }):$shamt)
/* 71106*/          0, /*End of Scope*/
/* 71107*/        0, // EndSwitchType
/* 71108*/      /*Scope*/ 82, /*->71191*/
/* 71109*/        OPC_MoveChild1,
/* 71110*/        OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 71113*/        OPC_RecordChild0, // #1 = physreg input CL
/* 71114*/        OPC_MoveChild1,
/* 71115*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 71118*/        OPC_MoveParent,
/* 71119*/        OPC_CheckType, MVT::i8,
/* 71121*/        OPC_Scope, 16, /*->71139*/ // 4 children in Scope
/* 71123*/          OPC_CheckPredicate, 11, // Predicate_shiftMask8
/* 71125*/          OPC_MoveParent,
/* 71126*/          OPC_CheckType, MVT::i8,
/* 71128*/          OPC_EmitCopyToReg, 1, X86::CL,
/* 71131*/          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_shiftMask8>>) - Complexity = 10
                    // Dst: (ROR8rCL:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1)
/* 71139*/        /*Scope*/ 16, /*->71156*/
/* 71140*/          OPC_CheckPredicate, 12, // Predicate_shiftMask16
/* 71142*/          OPC_MoveParent,
/* 71143*/          OPC_CheckType, MVT::i16,
/* 71145*/          OPC_EmitCopyToReg, 1, X86::CL,
/* 71148*/          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_shiftMask16>>) - Complexity = 10
                    // Dst: (ROR16rCL:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1)
/* 71156*/        /*Scope*/ 16, /*->71173*/
/* 71157*/          OPC_CheckPredicate, 6, // Predicate_shiftMask32
/* 71159*/          OPC_MoveParent,
/* 71160*/          OPC_CheckType, MVT::i32,
/* 71162*/          OPC_EmitCopyToReg, 1, X86::CL,
/* 71165*/          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_shiftMask32>>) - Complexity = 10
                    // Dst: (ROR32rCL:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1)
/* 71173*/        /*Scope*/ 16, /*->71190*/
/* 71174*/          OPC_CheckPredicate, 10, // Predicate_shiftMask64
/* 71176*/          OPC_MoveParent,
/* 71177*/          OPC_CheckType, MVT::i64,
/* 71179*/          OPC_EmitCopyToReg, 1, X86::CL,
/* 71182*/          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_shiftMask64>>) - Complexity = 10
                    // Dst: (ROR64rCL:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1)
/* 71190*/        0, /*End of Scope*/
/* 71191*/      /*Scope*/ 46, /*->71238*/
/* 71192*/        OPC_CheckChild1Integer, 1, 
/* 71194*/        OPC_CheckChild1Type, MVT::i8,
/* 71196*/        OPC_SwitchType /*4 cases */, 8, MVT::i8,// ->71207
/* 71199*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ROR8r1), 0,
                        MVT::i8, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (rotr:{ *:[i8] } GR8:{ *:[i8] }:$src1, 1:{ *:[i8] }) - Complexity = 8
                    // Dst: (ROR8r1:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1)
/* 71207*/        /*SwitchType*/ 8, MVT::i16,// ->71217
/* 71209*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ROR16r1), 0,
                        MVT::i16, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (rotr:{ *:[i16] } GR16:{ *:[i16] }:$src1, 1:{ *:[i8] }) - Complexity = 8
                    // Dst: (ROR16r1:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1)
/* 71217*/        /*SwitchType*/ 8, MVT::i32,// ->71227
/* 71219*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ROR32r1), 0,
                        MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (rotr:{ *:[i32] } GR32:{ *:[i32] }:$src1, 1:{ *:[i8] }) - Complexity = 8
                    // Dst: (ROR32r1:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1)
/* 71227*/        /*SwitchType*/ 8, MVT::i64,// ->71237
/* 71229*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ROR64r1), 0,
                        MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (rotr:{ *:[i64] } GR64:{ *:[i64] }:$src1, 1:{ *:[i8] }) - Complexity = 8
                    // Dst: (ROR64r1:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1)
/* 71237*/        0, // EndSwitchType
/* 71238*/      /*Scope*/ 14, /*->71253*/
/* 71239*/        OPC_CheckChild1Integer, 7, 
/* 71241*/        OPC_CheckChild1Type, MVT::i8,
/* 71243*/        OPC_CheckType, MVT::i8,
/* 71245*/        OPC_MorphNodeTo2, TARGET_VAL(X86::ROL8r1), 0,
                      MVT::i8, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (rotr:{ *:[i8] } GR8:{ *:[i8] }:$src1, 7:{ *:[i8] }) - Complexity = 8
                  // Dst: (ROL8r1:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1)
/* 71253*/      /*Scope*/ 14, /*->71268*/
/* 71254*/        OPC_CheckChild1Integer, 15, 
/* 71256*/        OPC_CheckChild1Type, MVT::i8,
/* 71258*/        OPC_CheckType, MVT::i16,
/* 71260*/        OPC_MorphNodeTo2, TARGET_VAL(X86::ROL16r1), 0,
                      MVT::i16, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (rotr:{ *:[i16] } GR16:{ *:[i16] }:$src1, 15:{ *:[i8] }) - Complexity = 8
                  // Dst: (ROL16r1:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1)
/* 71268*/      /*Scope*/ 14, /*->71283*/
/* 71269*/        OPC_CheckChild1Integer, 31, 
/* 71271*/        OPC_CheckChild1Type, MVT::i8,
/* 71273*/        OPC_CheckType, MVT::i32,
/* 71275*/        OPC_MorphNodeTo2, TARGET_VAL(X86::ROL32r1), 0,
                      MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (rotr:{ *:[i32] } GR32:{ *:[i32] }:$src1, 31:{ *:[i8] }) - Complexity = 8
                  // Dst: (ROL32r1:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1)
/* 71283*/      /*Scope*/ 14, /*->71298*/
/* 71284*/        OPC_CheckChild1Integer, 63, 
/* 71286*/        OPC_CheckChild1Type, MVT::i8,
/* 71288*/        OPC_CheckType, MVT::i64,
/* 71290*/        OPC_MorphNodeTo2, TARGET_VAL(X86::ROL64r1), 0,
                      MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (rotr:{ *:[i64] } GR64:{ *:[i64] }:$src1, 63:{ *:[i8] }) - Complexity = 8
                  // Dst: (ROL64r1:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1)
/* 71298*/      /*Scope*/ 121, /*->71420*/
/* 71299*/        OPC_RecordChild1, // #1 = $src2
/* 71300*/        OPC_CheckChild1Type, MVT::i8,
/* 71302*/        OPC_SwitchType /*4 cases */, 27, MVT::i8,// ->71332
/* 71305*/          OPC_Scope, 12, /*->71319*/ // 2 children in Scope
/* 71307*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #2
/* 71310*/            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)
/* 71319*/          /*Scope*/ 11, /*->71331*/
/* 71320*/            OPC_EmitCopyToReg, 1, X86::CL,
/* 71323*/            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)
/* 71331*/          0, /*End of Scope*/
/* 71332*/        /*SwitchType*/ 27, MVT::i16,// ->71361
/* 71334*/          OPC_Scope, 12, /*->71348*/ // 2 children in Scope
/* 71336*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #2
/* 71339*/            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)
/* 71348*/          /*Scope*/ 11, /*->71360*/
/* 71349*/            OPC_EmitCopyToReg, 1, X86::CL,
/* 71352*/            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)
/* 71360*/          0, /*End of Scope*/
/* 71361*/        /*SwitchType*/ 27, MVT::i32,// ->71390
/* 71363*/          OPC_Scope, 12, /*->71377*/ // 2 children in Scope
/* 71365*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #2
/* 71368*/            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)
/* 71377*/          /*Scope*/ 11, /*->71389*/
/* 71378*/            OPC_EmitCopyToReg, 1, X86::CL,
/* 71381*/            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)
/* 71389*/          0, /*End of Scope*/
/* 71390*/        /*SwitchType*/ 27, MVT::i64,// ->71419
/* 71392*/          OPC_Scope, 12, /*->71406*/ // 2 children in Scope
/* 71394*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #2
/* 71397*/            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)
/* 71406*/          /*Scope*/ 11, /*->71418*/
/* 71407*/            OPC_EmitCopyToReg, 1, X86::CL,
/* 71410*/            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)
/* 71418*/          0, /*End of Scope*/
/* 71419*/        0, // EndSwitchType
/* 71420*/      /*Scope*/ 57|128,2/*313*/, /*->71735*/
/* 71422*/        OPC_MoveChild1,
/* 71423*/        OPC_SwitchOpcode /*2 cases */, 20|128,1/*148*/, TARGET_VAL(ISD::LOAD),// ->71576
/* 71428*/          OPC_RecordMemRef,
/* 71429*/          OPC_RecordNode, // #1 = 'ld' chained node
/* 71430*/          OPC_CheckFoldableChainNode,
/* 71431*/          OPC_RecordChild1, // #2 = $src2
/* 71432*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 71434*/          OPC_CheckPredicate, 9, // Predicate_load
/* 71436*/          OPC_SwitchType /*6 cases */, 21, MVT::v16i32,// ->71460
/* 71439*/            OPC_MoveParent,
/* 71440*/            OPC_CheckType, MVT::v16i32,
/* 71442*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 71444*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 71447*/            OPC_EmitMergeInputChains1_1,
/* 71448*/            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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPRORVDZrm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 71460*/          /*SwitchType*/ 21, MVT::v8i32,// ->71483
/* 71462*/            OPC_MoveParent,
/* 71463*/            OPC_CheckType, MVT::v8i32,
/* 71465*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 71467*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 71470*/            OPC_EmitMergeInputChains1_1,
/* 71471*/            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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPRORVDZ256rm:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 71483*/          /*SwitchType*/ 21, MVT::v4i32,// ->71506
/* 71485*/            OPC_MoveParent,
/* 71486*/            OPC_CheckType, MVT::v4i32,
/* 71488*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 71490*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 71493*/            OPC_EmitMergeInputChains1_1,
/* 71494*/            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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPRORVDZ128rm:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 71506*/          /*SwitchType*/ 21, MVT::v8i64,// ->71529
/* 71508*/            OPC_MoveParent,
/* 71509*/            OPC_CheckType, MVT::v8i64,
/* 71511*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 71513*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 71516*/            OPC_EmitMergeInputChains1_1,
/* 71517*/            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>>) - Complexity = 25
                      // Dst: (VPRORVQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 71529*/          /*SwitchType*/ 21, MVT::v4i64,// ->71552
/* 71531*/            OPC_MoveParent,
/* 71532*/            OPC_CheckType, MVT::v4i64,
/* 71534*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 71536*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 71539*/            OPC_EmitMergeInputChains1_1,
/* 71540*/            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>>) - Complexity = 25
                      // Dst: (VPRORVQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 71552*/          /*SwitchType*/ 21, MVT::v2i64,// ->71575
/* 71554*/            OPC_MoveParent,
/* 71555*/            OPC_CheckType, MVT::v2i64,
/* 71557*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 71559*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 71562*/            OPC_EmitMergeInputChains1_1,
/* 71563*/            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>>) - Complexity = 25
                      // Dst: (VPRORVQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 71575*/          0, // EndSwitchType
/* 71576*/        /*SwitchOpcode*/ 26|128,1/*154*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->71734
/* 71580*/          OPC_RecordMemRef,
/* 71581*/          OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/* 71582*/          OPC_CheckFoldableChainNode,
/* 71583*/          OPC_RecordChild1, // #2 = $src2
/* 71584*/          OPC_Scope, 73, /*->71659*/ // 2 children in Scope
/* 71586*/            OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/* 71588*/            OPC_SwitchType /*3 cases */, 21, MVT::v16i32,// ->71612
/* 71591*/              OPC_MoveParent,
/* 71592*/              OPC_CheckType, MVT::v16i32,
/* 71594*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 71596*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 71599*/              OPC_EmitMergeInputChains1_1,
/* 71600*/              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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VPRORVDZrmb:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 71612*/            /*SwitchType*/ 21, MVT::v8i32,// ->71635
/* 71614*/              OPC_MoveParent,
/* 71615*/              OPC_CheckType, MVT::v8i32,
/* 71617*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 71619*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 71622*/              OPC_EmitMergeInputChains1_1,
/* 71623*/              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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VPRORVDZ256rmb:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 71635*/            /*SwitchType*/ 21, MVT::v4i32,// ->71658
/* 71637*/              OPC_MoveParent,
/* 71638*/              OPC_CheckType, MVT::v4i32,
/* 71640*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 71642*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 71645*/              OPC_EmitMergeInputChains1_1,
/* 71646*/              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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VPRORVDZ128rmb:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 71658*/            0, // EndSwitchType
/* 71659*/          /*Scope*/ 73, /*->71733*/
/* 71660*/            OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 71662*/            OPC_SwitchType /*3 cases */, 21, MVT::v8i64,// ->71686
/* 71665*/              OPC_MoveParent,
/* 71666*/              OPC_CheckType, MVT::v8i64,
/* 71668*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 71670*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 71673*/              OPC_EmitMergeInputChains1_1,
/* 71674*/              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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VPRORVQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 71686*/            /*SwitchType*/ 21, MVT::v4i64,// ->71709
/* 71688*/              OPC_MoveParent,
/* 71689*/              OPC_CheckType, MVT::v4i64,
/* 71691*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 71693*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 71696*/              OPC_EmitMergeInputChains1_1,
/* 71697*/              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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VPRORVQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 71709*/            /*SwitchType*/ 21, MVT::v2i64,// ->71732
/* 71711*/              OPC_MoveParent,
/* 71712*/              OPC_CheckType, MVT::v2i64,
/* 71714*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 71716*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 71719*/              OPC_EmitMergeInputChains1_1,
/* 71720*/              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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VPRORVQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 71732*/            0, // EndSwitchType
/* 71733*/          0, /*End of Scope*/
/* 71734*/        0, // EndSwitchOpcode
/* 71735*/      /*Scope*/ 75|128,2/*331*/, /*->72068*/
/* 71737*/        OPC_RecordChild1, // #1 = $src2
/* 71738*/        OPC_SwitchType /*6 cases */, 12, MVT::v16i32,// ->71753
/* 71741*/          OPC_CheckChild1Type, MVT::v16i32,
/* 71743*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 71745*/          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)
/* 71753*/        /*SwitchType*/ 73, MVT::v8i32,// ->71828
/* 71755*/          OPC_CheckChild1Type, MVT::v8i32,
/* 71757*/          OPC_Scope, 10, /*->71769*/ // 2 children in Scope
/* 71759*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 71761*/            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)
/* 71769*/          /*Scope*/ 57, /*->71827*/
/* 71770*/            OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 71772*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #2
/* 71778*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 71781*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 71790*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #5
/* 71796*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 71799*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/* 71808*/            OPC_EmitNode1, TARGET_VAL(X86::VPRORVDZrr), 0,
                          MVT::v16i32, 2/*#Ops*/, 4, 7,  // Results = #8
/* 71816*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 71819*/            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] })
/* 71827*/          0, /*End of Scope*/
/* 71828*/        /*SwitchType*/ 73, MVT::v4i32,// ->71903
/* 71830*/          OPC_CheckChild1Type, MVT::v4i32,
/* 71832*/          OPC_Scope, 10, /*->71844*/ // 2 children in Scope
/* 71834*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 71836*/            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)
/* 71844*/          /*Scope*/ 57, /*->71902*/
/* 71845*/            OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 71847*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #2
/* 71853*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 71856*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 71865*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #5
/* 71871*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 71874*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/* 71883*/            OPC_EmitNode1, TARGET_VAL(X86::VPRORVDZrr), 0,
                          MVT::v16i32, 2/*#Ops*/, 4, 7,  // Results = #8
/* 71891*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 71894*/            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] })
/* 71902*/          0, /*End of Scope*/
/* 71903*/        /*SwitchType*/ 12, MVT::v8i64,// ->71917
/* 71905*/          OPC_CheckChild1Type, MVT::v8i64,
/* 71907*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 71909*/          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)
/* 71917*/        /*SwitchType*/ 73, MVT::v4i64,// ->71992
/* 71919*/          OPC_CheckChild1Type, MVT::v4i64,
/* 71921*/          OPC_Scope, 10, /*->71933*/ // 2 children in Scope
/* 71923*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 71925*/            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)
/* 71933*/          /*Scope*/ 57, /*->71991*/
/* 71934*/            OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 71936*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #2
/* 71942*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 71945*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 71954*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #5
/* 71960*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 71963*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/* 71972*/            OPC_EmitNode1, TARGET_VAL(X86::VPRORVQZrr), 0,
                          MVT::v8i64, 2/*#Ops*/, 4, 7,  // Results = #8
/* 71980*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 71983*/            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] })
/* 71991*/          0, /*End of Scope*/
/* 71992*/        /*SwitchType*/ 73, MVT::v2i64,// ->72067
/* 71994*/          OPC_CheckChild1Type, MVT::v2i64,
/* 71996*/          OPC_Scope, 10, /*->72008*/ // 2 children in Scope
/* 71998*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 72000*/            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)
/* 72008*/          /*Scope*/ 57, /*->72066*/
/* 72009*/            OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 72011*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #2
/* 72017*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 72020*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 72029*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #5
/* 72035*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 72038*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/* 72047*/            OPC_EmitNode1, TARGET_VAL(X86::VPRORVQZrr), 0,
                          MVT::v8i64, 2/*#Ops*/, 4, 7,  // Results = #8
/* 72055*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 72058*/            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] })
/* 72066*/          0, /*End of Scope*/
/* 72067*/        0, // EndSwitchType
/* 72068*/      0, /*End of Scope*/
/* 72069*/    0, /*End of Scope*/
/* 72070*/  /*SwitchOpcode*/ 75|128,11/*1483*/, TARGET_VAL(ISD::ROTL),// ->73557
/* 72074*/    OPC_Scope, 86, /*->72162*/ // 10 children in Scope
/* 72076*/      OPC_MoveChild0,
/* 72077*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 72080*/      OPC_RecordMemRef,
/* 72081*/      OPC_RecordNode, // #0 = 'ld' chained node
/* 72082*/      OPC_CheckFoldableChainNode,
/* 72083*/      OPC_RecordChild1, // #1 = $src
/* 72084*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 72086*/      OPC_Scope, 36, /*->72124*/ // 2 children in Scope
/* 72088*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 72090*/        OPC_MoveParent,
/* 72091*/        OPC_RecordChild1, // #2 = $shamt
/* 72092*/        OPC_MoveChild1,
/* 72093*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 72096*/        OPC_CheckType, MVT::i8,
/* 72098*/        OPC_MoveParent,
/* 72099*/        OPC_CheckType, MVT::i32,
/* 72101*/        OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI2())
/* 72103*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/* 72106*/        OPC_EmitMergeInputChains1_0,
/* 72107*/        OPC_EmitConvertToTarget, 2,
/* 72109*/        OPC_EmitNodeXForm, 11, 8, // ROT32L2R_imm8
/* 72112*/        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))
/* 72124*/      /*Scope*/ 36, /*->72161*/
/* 72125*/        OPC_CheckPredicate, 9, // Predicate_load
/* 72127*/        OPC_MoveParent,
/* 72128*/        OPC_RecordChild1, // #2 = $shamt
/* 72129*/        OPC_MoveChild1,
/* 72130*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 72133*/        OPC_CheckType, MVT::i8,
/* 72135*/        OPC_MoveParent,
/* 72136*/        OPC_CheckType, MVT::i64,
/* 72138*/        OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI2())
/* 72140*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/* 72143*/        OPC_EmitMergeInputChains1_0,
/* 72144*/        OPC_EmitConvertToTarget, 2,
/* 72146*/        OPC_EmitNodeXForm, 12, 8, // ROT64L2R_imm8
/* 72149*/        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))
/* 72161*/      0, /*End of Scope*/
/* 72162*/    /*Scope*/ 46|128,3/*430*/, /*->72594*/
/* 72164*/      OPC_RecordChild0, // #0 = $src
/* 72165*/      OPC_Scope, 78, /*->72245*/ // 9 children in Scope
/* 72167*/        OPC_RecordChild1, // #1 = $shamt
/* 72168*/        OPC_MoveChild1,
/* 72169*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 72172*/        OPC_CheckType, MVT::i8,
/* 72174*/        OPC_MoveParent,
/* 72175*/        OPC_SwitchType /*2 cases */, 32, MVT::i32,// ->72210
/* 72178*/          OPC_Scope, 15, /*->72195*/ // 2 children in Scope
/* 72180*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI2())
/* 72182*/            OPC_EmitConvertToTarget, 1,
/* 72184*/            OPC_EmitNodeXForm, 11, 2, // ROT32L2R_imm8
/* 72187*/            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))
/* 72195*/          /*Scope*/ 13, /*->72209*/
/* 72196*/            OPC_CheckPatternPredicate, 124, // (Subtarget->hasFastSHLDRotate())
/* 72198*/            OPC_EmitConvertToTarget, 1,
/* 72200*/            OPC_MorphNodeTo2, TARGET_VAL(X86::SHLDROT32ri), 0,
                          MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2, 
                      // Src: (rotl:{ *:[i32] } GR32:{ *:[i32] }:$src1, (imm:{ *:[i8] }):$shamt) - Complexity = 11
                      // Dst: (SHLDROT32ri:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, (imm:{ *:[i8] }):$shamt)
/* 72209*/          0, /*End of Scope*/
/* 72210*/        /*SwitchType*/ 32, MVT::i64,// ->72244
/* 72212*/          OPC_Scope, 15, /*->72229*/ // 2 children in Scope
/* 72214*/            OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI2())
/* 72216*/            OPC_EmitConvertToTarget, 1,
/* 72218*/            OPC_EmitNodeXForm, 12, 2, // ROT64L2R_imm8
/* 72221*/            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))
/* 72229*/          /*Scope*/ 13, /*->72243*/
/* 72230*/            OPC_CheckPatternPredicate, 124, // (Subtarget->hasFastSHLDRotate())
/* 72232*/            OPC_EmitConvertToTarget, 1,
/* 72234*/            OPC_MorphNodeTo2, TARGET_VAL(X86::SHLDROT64ri), 0,
                          MVT::i64, MVT::i32, 2/*#Ops*/, 0, 2, 
                      // Src: (rotl:{ *:[i64] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i8] }):$shamt) - Complexity = 11
                      // Dst: (SHLDROT64ri:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i8] }):$shamt)
/* 72243*/          0, /*End of Scope*/
/* 72244*/        0, // EndSwitchType
/* 72245*/      /*Scope*/ 82, /*->72328*/
/* 72246*/        OPC_MoveChild1,
/* 72247*/        OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 72250*/        OPC_RecordChild0, // #1 = physreg input CL
/* 72251*/        OPC_MoveChild1,
/* 72252*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 72255*/        OPC_MoveParent,
/* 72256*/        OPC_CheckType, MVT::i8,
/* 72258*/        OPC_Scope, 16, /*->72276*/ // 4 children in Scope
/* 72260*/          OPC_CheckPredicate, 11, // Predicate_shiftMask8
/* 72262*/          OPC_MoveParent,
/* 72263*/          OPC_CheckType, MVT::i8,
/* 72265*/          OPC_EmitCopyToReg, 1, X86::CL,
/* 72268*/          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_shiftMask8>>) - Complexity = 10
                    // Dst: (ROL8rCL:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1)
/* 72276*/        /*Scope*/ 16, /*->72293*/
/* 72277*/          OPC_CheckPredicate, 12, // Predicate_shiftMask16
/* 72279*/          OPC_MoveParent,
/* 72280*/          OPC_CheckType, MVT::i16,
/* 72282*/          OPC_EmitCopyToReg, 1, X86::CL,
/* 72285*/          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_shiftMask16>>) - Complexity = 10
                    // Dst: (ROL16rCL:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1)
/* 72293*/        /*Scope*/ 16, /*->72310*/
/* 72294*/          OPC_CheckPredicate, 6, // Predicate_shiftMask32
/* 72296*/          OPC_MoveParent,
/* 72297*/          OPC_CheckType, MVT::i32,
/* 72299*/          OPC_EmitCopyToReg, 1, X86::CL,
/* 72302*/          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_shiftMask32>>) - Complexity = 10
                    // Dst: (ROL32rCL:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1)
/* 72310*/        /*Scope*/ 16, /*->72327*/
/* 72311*/          OPC_CheckPredicate, 10, // Predicate_shiftMask64
/* 72313*/          OPC_MoveParent,
/* 72314*/          OPC_CheckType, MVT::i64,
/* 72316*/          OPC_EmitCopyToReg, 1, X86::CL,
/* 72319*/          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_shiftMask64>>) - Complexity = 10
                    // Dst: (ROL64rCL:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1)
/* 72327*/        0, /*End of Scope*/
/* 72328*/      /*Scope*/ 46, /*->72375*/
/* 72329*/        OPC_CheckChild1Integer, 1, 
/* 72331*/        OPC_CheckChild1Type, MVT::i8,
/* 72333*/        OPC_SwitchType /*4 cases */, 8, MVT::i8,// ->72344
/* 72336*/          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)
/* 72344*/        /*SwitchType*/ 8, MVT::i16,// ->72354
/* 72346*/          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)
/* 72354*/        /*SwitchType*/ 8, MVT::i32,// ->72364
/* 72356*/          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)
/* 72364*/        /*SwitchType*/ 8, MVT::i64,// ->72374
/* 72366*/          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)
/* 72374*/        0, // EndSwitchType
/* 72375*/      /*Scope*/ 14, /*->72390*/
/* 72376*/        OPC_CheckChild1Integer, 7, 
/* 72378*/        OPC_CheckChild1Type, MVT::i8,
/* 72380*/        OPC_CheckType, MVT::i8,
/* 72382*/        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)
/* 72390*/      /*Scope*/ 14, /*->72405*/
/* 72391*/        OPC_CheckChild1Integer, 15, 
/* 72393*/        OPC_CheckChild1Type, MVT::i8,
/* 72395*/        OPC_CheckType, MVT::i16,
/* 72397*/        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)
/* 72405*/      /*Scope*/ 14, /*->72420*/
/* 72406*/        OPC_CheckChild1Integer, 31, 
/* 72408*/        OPC_CheckChild1Type, MVT::i8,
/* 72410*/        OPC_CheckType, MVT::i32,
/* 72412*/        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)
/* 72420*/      /*Scope*/ 14, /*->72435*/
/* 72421*/        OPC_CheckChild1Integer, 63, 
/* 72423*/        OPC_CheckChild1Type, MVT::i8,
/* 72425*/        OPC_CheckType, MVT::i64,
/* 72427*/        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)
/* 72435*/      /*Scope*/ 121, /*->72557*/
/* 72436*/        OPC_RecordChild1, // #1 = $src2
/* 72437*/        OPC_CheckChild1Type, MVT::i8,
/* 72439*/        OPC_SwitchType /*4 cases */, 27, MVT::i8,// ->72469
/* 72442*/          OPC_Scope, 12, /*->72456*/ // 2 children in Scope
/* 72444*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #2
/* 72447*/            OPC_MorphNodeTo2, TARGET_VAL(X86::ROL8ri), 0,
                          MVT::i8, MVT::i32, 2/*#Ops*/, 0, 2, 
                      // Src: (rotl:{ *:[i8] } GR8:{ *:[i8] }:$src1, relocImm:{ *:[i8] }:$src2) - Complexity = 6
                      // Dst: (ROL8ri:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1, relocImm:{ *:[i8] }:$src2)
/* 72456*/          /*Scope*/ 11, /*->72468*/
/* 72457*/            OPC_EmitCopyToReg, 1, X86::CL,
/* 72460*/            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)
/* 72468*/          0, /*End of Scope*/
/* 72469*/        /*SwitchType*/ 27, MVT::i16,// ->72498
/* 72471*/          OPC_Scope, 12, /*->72485*/ // 2 children in Scope
/* 72473*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #2
/* 72476*/            OPC_MorphNodeTo2, TARGET_VAL(X86::ROL16ri), 0,
                          MVT::i16, MVT::i32, 2/*#Ops*/, 0, 2, 
                      // Src: (rotl:{ *:[i16] } GR16:{ *:[i16] }:$src1, relocImm:{ *:[i8] }:$src2) - Complexity = 6
                      // Dst: (ROL16ri:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, relocImm:{ *:[i8] }:$src2)
/* 72485*/          /*Scope*/ 11, /*->72497*/
/* 72486*/            OPC_EmitCopyToReg, 1, X86::CL,
/* 72489*/            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)
/* 72497*/          0, /*End of Scope*/
/* 72498*/        /*SwitchType*/ 27, MVT::i32,// ->72527
/* 72500*/          OPC_Scope, 12, /*->72514*/ // 2 children in Scope
/* 72502*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #2
/* 72505*/            OPC_MorphNodeTo2, TARGET_VAL(X86::ROL32ri), 0,
                          MVT::i32, MVT::i32, 2/*#Ops*/, 0, 2, 
                      // Src: (rotl:{ *:[i32] } GR32:{ *:[i32] }:$src1, relocImm:{ *:[i8] }:$src2) - Complexity = 6
                      // Dst: (ROL32ri:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, relocImm:{ *:[i8] }:$src2)
/* 72514*/          /*Scope*/ 11, /*->72526*/
/* 72515*/            OPC_EmitCopyToReg, 1, X86::CL,
/* 72518*/            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)
/* 72526*/          0, /*End of Scope*/
/* 72527*/        /*SwitchType*/ 27, MVT::i64,// ->72556
/* 72529*/          OPC_Scope, 12, /*->72543*/ // 2 children in Scope
/* 72531*/            OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #2
/* 72534*/            OPC_MorphNodeTo2, TARGET_VAL(X86::ROL64ri), 0,
                          MVT::i64, MVT::i32, 2/*#Ops*/, 0, 2, 
                      // Src: (rotl:{ *:[i64] } GR64:{ *:[i64] }:$src1, relocImm:{ *:[i8] }:$src2) - Complexity = 6
                      // Dst: (ROL64ri:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, relocImm:{ *:[i8] }:$src2)
/* 72543*/          /*Scope*/ 11, /*->72555*/
/* 72544*/            OPC_EmitCopyToReg, 1, X86::CL,
/* 72547*/            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)
/* 72555*/          0, /*End of Scope*/
/* 72556*/        0, // EndSwitchType
/* 72557*/      /*Scope*/ 35, /*->72593*/
/* 72558*/        OPC_MoveChild1,
/* 72559*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 72562*/        OPC_RecordMemRef,
/* 72563*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 72564*/        OPC_CheckFoldableChainNode,
/* 72565*/        OPC_RecordChild1, // #2 = $src2
/* 72566*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 72568*/        OPC_CheckPredicate, 9, // Predicate_load
/* 72570*/        OPC_CheckType, MVT::v16i8,
/* 72572*/        OPC_MoveParent,
/* 72573*/        OPC_CheckType, MVT::v16i8,
/* 72575*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 72577*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 72580*/        OPC_EmitMergeInputChains1_1,
/* 72581*/        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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VPROTBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 72593*/      0, /*End of Scope*/
/* 72594*/    /*Scope*/ 36, /*->72631*/
/* 72595*/      OPC_MoveChild0,
/* 72596*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 72599*/      OPC_RecordMemRef,
/* 72600*/      OPC_RecordNode, // #0 = 'ld' chained node
/* 72601*/      OPC_CheckFoldableChainNode,
/* 72602*/      OPC_RecordChild1, // #1 = $src1
/* 72603*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 72605*/      OPC_CheckPredicate, 9, // Predicate_load
/* 72607*/      OPC_MoveParent,
/* 72608*/      OPC_RecordChild1, // #2 = $src2
/* 72609*/      OPC_CheckChild1Type, MVT::v16i8,
/* 72611*/      OPC_CheckType, MVT::v16i8,
/* 72613*/      OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 72615*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/* 72618*/      OPC_EmitMergeInputChains1_0,
/* 72619*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPROTBmr), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v16i8, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                // Src: (rotl:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v16i8] }:$src2) - Complexity = 25
                // Dst: (VPROTBmr:{ *:[v16i8] } addr:{ *:[iPTR] }:$src1, VR128:{ *:[v16i8] }:$src2)
/* 72631*/    /*Scope*/ 36, /*->72668*/
/* 72632*/      OPC_RecordChild0, // #0 = $src1
/* 72633*/      OPC_MoveChild1,
/* 72634*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 72637*/      OPC_RecordMemRef,
/* 72638*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 72639*/      OPC_CheckFoldableChainNode,
/* 72640*/      OPC_RecordChild1, // #2 = $src2
/* 72641*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 72643*/      OPC_CheckPredicate, 9, // Predicate_load
/* 72645*/      OPC_CheckType, MVT::v4i32,
/* 72647*/      OPC_MoveParent,
/* 72648*/      OPC_CheckType, MVT::v4i32,
/* 72650*/      OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 72652*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 72655*/      OPC_EmitMergeInputChains1_1,
/* 72656*/      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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                // Dst: (VPROTDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 72668*/    /*Scope*/ 36, /*->72705*/
/* 72669*/      OPC_MoveChild0,
/* 72670*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 72673*/      OPC_RecordMemRef,
/* 72674*/      OPC_RecordNode, // #0 = 'ld' chained node
/* 72675*/      OPC_CheckFoldableChainNode,
/* 72676*/      OPC_RecordChild1, // #1 = $src1
/* 72677*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 72679*/      OPC_CheckPredicate, 9, // Predicate_load
/* 72681*/      OPC_MoveParent,
/* 72682*/      OPC_RecordChild1, // #2 = $src2
/* 72683*/      OPC_CheckChild1Type, MVT::v4i32,
/* 72685*/      OPC_CheckType, MVT::v4i32,
/* 72687*/      OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 72689*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/* 72692*/      OPC_EmitMergeInputChains1_0,
/* 72693*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPROTDmr), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                // Src: (rotl:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v4i32] }:$src2) - Complexity = 25
                // Dst: (VPROTDmr:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1, VR128:{ *:[v4i32] }:$src2)
/* 72705*/    /*Scope*/ 36, /*->72742*/
/* 72706*/      OPC_RecordChild0, // #0 = $src1
/* 72707*/      OPC_MoveChild1,
/* 72708*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 72711*/      OPC_RecordMemRef,
/* 72712*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 72713*/      OPC_CheckFoldableChainNode,
/* 72714*/      OPC_RecordChild1, // #2 = $src2
/* 72715*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 72717*/      OPC_CheckPredicate, 9, // Predicate_load
/* 72719*/      OPC_CheckType, MVT::v2i64,
/* 72721*/      OPC_MoveParent,
/* 72722*/      OPC_CheckType, MVT::v2i64,
/* 72724*/      OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 72726*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 72729*/      OPC_EmitMergeInputChains1_1,
/* 72730*/      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>>) - Complexity = 25
                // Dst: (VPROTQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 72742*/    /*Scope*/ 36, /*->72779*/
/* 72743*/      OPC_MoveChild0,
/* 72744*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 72747*/      OPC_RecordMemRef,
/* 72748*/      OPC_RecordNode, // #0 = 'ld' chained node
/* 72749*/      OPC_CheckFoldableChainNode,
/* 72750*/      OPC_RecordChild1, // #1 = $src1
/* 72751*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 72753*/      OPC_CheckPredicate, 9, // Predicate_load
/* 72755*/      OPC_MoveParent,
/* 72756*/      OPC_RecordChild1, // #2 = $src2
/* 72757*/      OPC_CheckChild1Type, MVT::v2i64,
/* 72759*/      OPC_CheckType, MVT::v2i64,
/* 72761*/      OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 72763*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/* 72766*/      OPC_EmitMergeInputChains1_0,
/* 72767*/      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>>, VR128:{ *:[v2i64] }:$src2) - Complexity = 25
                // Dst: (VPROTQmr:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1, VR128:{ *:[v2i64] }:$src2)
/* 72779*/    /*Scope*/ 36, /*->72816*/
/* 72780*/      OPC_RecordChild0, // #0 = $src1
/* 72781*/      OPC_MoveChild1,
/* 72782*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 72785*/      OPC_RecordMemRef,
/* 72786*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 72787*/      OPC_CheckFoldableChainNode,
/* 72788*/      OPC_RecordChild1, // #2 = $src2
/* 72789*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 72791*/      OPC_CheckPredicate, 9, // Predicate_load
/* 72793*/      OPC_CheckType, MVT::v8i16,
/* 72795*/      OPC_MoveParent,
/* 72796*/      OPC_CheckType, MVT::v8i16,
/* 72798*/      OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 72800*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 72803*/      OPC_EmitMergeInputChains1_1,
/* 72804*/      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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                // Dst: (VPROTWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 72816*/    /*Scope*/ 36, /*->72853*/
/* 72817*/      OPC_MoveChild0,
/* 72818*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 72821*/      OPC_RecordMemRef,
/* 72822*/      OPC_RecordNode, // #0 = 'ld' chained node
/* 72823*/      OPC_CheckFoldableChainNode,
/* 72824*/      OPC_RecordChild1, // #1 = $src1
/* 72825*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 72827*/      OPC_CheckPredicate, 9, // Predicate_load
/* 72829*/      OPC_MoveParent,
/* 72830*/      OPC_RecordChild1, // #2 = $src2
/* 72831*/      OPC_CheckChild1Type, MVT::v8i16,
/* 72833*/      OPC_CheckType, MVT::v8i16,
/* 72835*/      OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 72837*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/* 72840*/      OPC_EmitMergeInputChains1_0,
/* 72841*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPROTWmr), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                // Src: (rotl:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v8i16] }:$src2) - Complexity = 25
                // Dst: (VPROTWmr:{ *:[v8i16] } addr:{ *:[iPTR] }:$src1, VR128:{ *:[v8i16] }:$src2)
/* 72853*/    /*Scope*/ 61|128,5/*701*/, /*->73556*/
/* 72855*/      OPC_RecordChild0, // #0 = $src1
/* 72856*/      OPC_Scope, 57|128,2/*313*/, /*->73172*/ // 2 children in Scope
/* 72859*/        OPC_MoveChild1,
/* 72860*/        OPC_SwitchOpcode /*2 cases */, 20|128,1/*148*/, TARGET_VAL(ISD::LOAD),// ->73013
/* 72865*/          OPC_RecordMemRef,
/* 72866*/          OPC_RecordNode, // #1 = 'ld' chained node
/* 72867*/          OPC_CheckFoldableChainNode,
/* 72868*/          OPC_RecordChild1, // #2 = $src2
/* 72869*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 72871*/          OPC_CheckPredicate, 9, // Predicate_load
/* 72873*/          OPC_SwitchType /*6 cases */, 21, MVT::v16i32,// ->72897
/* 72876*/            OPC_MoveParent,
/* 72877*/            OPC_CheckType, MVT::v16i32,
/* 72879*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 72881*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 72884*/            OPC_EmitMergeInputChains1_1,
/* 72885*/            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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPROLVDZrm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 72897*/          /*SwitchType*/ 21, MVT::v8i32,// ->72920
/* 72899*/            OPC_MoveParent,
/* 72900*/            OPC_CheckType, MVT::v8i32,
/* 72902*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 72904*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 72907*/            OPC_EmitMergeInputChains1_1,
/* 72908*/            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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPROLVDZ256rm:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 72920*/          /*SwitchType*/ 21, MVT::v4i32,// ->72943
/* 72922*/            OPC_MoveParent,
/* 72923*/            OPC_CheckType, MVT::v4i32,
/* 72925*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 72927*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 72930*/            OPC_EmitMergeInputChains1_1,
/* 72931*/            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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPROLVDZ128rm:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 72943*/          /*SwitchType*/ 21, MVT::v8i64,// ->72966
/* 72945*/            OPC_MoveParent,
/* 72946*/            OPC_CheckType, MVT::v8i64,
/* 72948*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 72950*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 72953*/            OPC_EmitMergeInputChains1_1,
/* 72954*/            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>>) - Complexity = 25
                      // Dst: (VPROLVQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 72966*/          /*SwitchType*/ 21, MVT::v4i64,// ->72989
/* 72968*/            OPC_MoveParent,
/* 72969*/            OPC_CheckType, MVT::v4i64,
/* 72971*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 72973*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 72976*/            OPC_EmitMergeInputChains1_1,
/* 72977*/            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>>) - Complexity = 25
                      // Dst: (VPROLVQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 72989*/          /*SwitchType*/ 21, MVT::v2i64,// ->73012
/* 72991*/            OPC_MoveParent,
/* 72992*/            OPC_CheckType, MVT::v2i64,
/* 72994*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 72996*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 72999*/            OPC_EmitMergeInputChains1_1,
/* 73000*/            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>>) - Complexity = 25
                      // Dst: (VPROLVQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 73012*/          0, // EndSwitchType
/* 73013*/        /*SwitchOpcode*/ 26|128,1/*154*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->73171
/* 73017*/          OPC_RecordMemRef,
/* 73018*/          OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/* 73019*/          OPC_CheckFoldableChainNode,
/* 73020*/          OPC_RecordChild1, // #2 = $src2
/* 73021*/          OPC_Scope, 73, /*->73096*/ // 2 children in Scope
/* 73023*/            OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/* 73025*/            OPC_SwitchType /*3 cases */, 21, MVT::v16i32,// ->73049
/* 73028*/              OPC_MoveParent,
/* 73029*/              OPC_CheckType, MVT::v16i32,
/* 73031*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 73033*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 73036*/              OPC_EmitMergeInputChains1_1,
/* 73037*/              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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VPROLVDZrmb:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 73049*/            /*SwitchType*/ 21, MVT::v8i32,// ->73072
/* 73051*/              OPC_MoveParent,
/* 73052*/              OPC_CheckType, MVT::v8i32,
/* 73054*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 73056*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 73059*/              OPC_EmitMergeInputChains1_1,
/* 73060*/              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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VPROLVDZ256rmb:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 73072*/            /*SwitchType*/ 21, MVT::v4i32,// ->73095
/* 73074*/              OPC_MoveParent,
/* 73075*/              OPC_CheckType, MVT::v4i32,
/* 73077*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 73079*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 73082*/              OPC_EmitMergeInputChains1_1,
/* 73083*/              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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VPROLVDZ128rmb:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 73095*/            0, // EndSwitchType
/* 73096*/          /*Scope*/ 73, /*->73170*/
/* 73097*/            OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 73099*/            OPC_SwitchType /*3 cases */, 21, MVT::v8i64,// ->73123
/* 73102*/              OPC_MoveParent,
/* 73103*/              OPC_CheckType, MVT::v8i64,
/* 73105*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 73107*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 73110*/              OPC_EmitMergeInputChains1_1,
/* 73111*/              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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VPROLVQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 73123*/            /*SwitchType*/ 21, MVT::v4i64,// ->73146
/* 73125*/              OPC_MoveParent,
/* 73126*/              OPC_CheckType, MVT::v4i64,
/* 73128*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 73130*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 73133*/              OPC_EmitMergeInputChains1_1,
/* 73134*/              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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VPROLVQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 73146*/            /*SwitchType*/ 21, MVT::v2i64,// ->73169
/* 73148*/              OPC_MoveParent,
/* 73149*/              OPC_CheckType, MVT::v2i64,
/* 73151*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 73153*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 73156*/              OPC_EmitMergeInputChains1_1,
/* 73157*/              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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VPROLVQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 73169*/            0, // EndSwitchType
/* 73170*/          0, /*End of Scope*/
/* 73171*/        0, // EndSwitchOpcode
/* 73172*/      /*Scope*/ 125|128,2/*381*/, /*->73555*/
/* 73174*/        OPC_RecordChild1, // #1 = $src2
/* 73175*/        OPC_SwitchType /*8 cases */, 12, MVT::v16i8,// ->73190
/* 73178*/          OPC_CheckChild1Type, MVT::v16i8,
/* 73180*/          OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 73182*/          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)
/* 73190*/        /*SwitchType*/ 84, MVT::v4i32,// ->73276
/* 73192*/          OPC_CheckChild1Type, MVT::v4i32,
/* 73194*/          OPC_Scope, 10, /*->73206*/ // 3 children in Scope
/* 73196*/            OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 73198*/            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)
/* 73206*/          /*Scope*/ 10, /*->73217*/
/* 73207*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 73209*/            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)
/* 73217*/          /*Scope*/ 57, /*->73275*/
/* 73218*/            OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 73220*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #2
/* 73226*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 73229*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 73238*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #5
/* 73244*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 73247*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/* 73256*/            OPC_EmitNode1, TARGET_VAL(X86::VPROLVDZrr), 0,
                          MVT::v16i32, 2/*#Ops*/, 4, 7,  // Results = #8
/* 73264*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 73267*/            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] })
/* 73275*/          0, /*End of Scope*/
/* 73276*/        /*SwitchType*/ 84, MVT::v2i64,// ->73362
/* 73278*/          OPC_CheckChild1Type, MVT::v2i64,
/* 73280*/          OPC_Scope, 10, /*->73292*/ // 3 children in Scope
/* 73282*/            OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 73284*/            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)
/* 73292*/          /*Scope*/ 10, /*->73303*/
/* 73293*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 73295*/            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)
/* 73303*/          /*Scope*/ 57, /*->73361*/
/* 73304*/            OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 73306*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #2
/* 73312*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 73315*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 73324*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #5
/* 73330*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 73333*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/* 73342*/            OPC_EmitNode1, TARGET_VAL(X86::VPROLVQZrr), 0,
                          MVT::v8i64, 2/*#Ops*/, 4, 7,  // Results = #8
/* 73350*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 73353*/            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] })
/* 73361*/          0, /*End of Scope*/
/* 73362*/        /*SwitchType*/ 12, MVT::v8i16,// ->73376
/* 73364*/          OPC_CheckChild1Type, MVT::v8i16,
/* 73366*/          OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 73368*/          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)
/* 73376*/        /*SwitchType*/ 12, MVT::v16i32,// ->73390
/* 73378*/          OPC_CheckChild1Type, MVT::v16i32,
/* 73380*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 73382*/          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)
/* 73390*/        /*SwitchType*/ 73, MVT::v8i32,// ->73465
/* 73392*/          OPC_CheckChild1Type, MVT::v8i32,
/* 73394*/          OPC_Scope, 10, /*->73406*/ // 2 children in Scope
/* 73396*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 73398*/            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)
/* 73406*/          /*Scope*/ 57, /*->73464*/
/* 73407*/            OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 73409*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #2
/* 73415*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 73418*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 73427*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #5
/* 73433*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 73436*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/* 73445*/            OPC_EmitNode1, TARGET_VAL(X86::VPROLVDZrr), 0,
                          MVT::v16i32, 2/*#Ops*/, 4, 7,  // Results = #8
/* 73453*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 73456*/            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] })
/* 73464*/          0, /*End of Scope*/
/* 73465*/        /*SwitchType*/ 12, MVT::v8i64,// ->73479
/* 73467*/          OPC_CheckChild1Type, MVT::v8i64,
/* 73469*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 73471*/          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)
/* 73479*/        /*SwitchType*/ 73, MVT::v4i64,// ->73554
/* 73481*/          OPC_CheckChild1Type, MVT::v4i64,
/* 73483*/          OPC_Scope, 10, /*->73495*/ // 2 children in Scope
/* 73485*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 73487*/            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)
/* 73495*/          /*Scope*/ 57, /*->73553*/
/* 73496*/            OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/* 73498*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #2
/* 73504*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 73507*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 73516*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #5
/* 73522*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 73525*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/* 73534*/            OPC_EmitNode1, TARGET_VAL(X86::VPROLVQZrr), 0,
                          MVT::v8i64, 2/*#Ops*/, 4, 7,  // Results = #8
/* 73542*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 73545*/            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] })
/* 73553*/          0, /*End of Scope*/
/* 73554*/        0, // EndSwitchType
/* 73555*/      0, /*End of Scope*/
/* 73556*/    0, /*End of Scope*/
/* 73557*/  /*SwitchOpcode*/ 34|128,28/*3618*/, TARGET_VAL(X86ISD::VZEXT_MOVL),// ->77179
/* 73561*/    OPC_Scope, 108|128,1/*236*/, /*->73800*/ // 4 children in Scope
/* 73564*/      OPC_MoveChild0,
/* 73565*/      OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/* 73568*/      OPC_Scope, 35, /*->73605*/ // 4 children in Scope
/* 73570*/        OPC_MoveChild0,
/* 73571*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 73574*/        OPC_RecordMemRef,
/* 73575*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 73576*/        OPC_CheckFoldableChainNode,
/* 73577*/        OPC_RecordChild1, // #1 = $src
/* 73578*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 73580*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 73582*/        OPC_CheckType, MVT::i32,
/* 73584*/        OPC_MoveParent,
/* 73585*/        OPC_MoveParent,
/* 73586*/        OPC_CheckType, MVT::x86mmx,
/* 73588*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 73590*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 73593*/        OPC_EmitMergeInputChains1_0,
/* 73594*/        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)
/* 73605*/      /*Scope*/ 15, /*->73621*/
/* 73606*/        OPC_RecordChild0, // #0 = $src
/* 73607*/        OPC_CheckChild0Type, MVT::i32,
/* 73609*/        OPC_MoveParent,
/* 73610*/        OPC_CheckType, MVT::x86mmx,
/* 73612*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 73614*/        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)
/* 73621*/      /*Scope*/ 97, /*->73719*/
/* 73622*/        OPC_MoveChild0,
/* 73623*/        OPC_SwitchOpcode /*2 cases */, 72, TARGET_VAL(ISD::LOAD),// ->73699
/* 73627*/          OPC_RecordMemRef,
/* 73628*/          OPC_RecordNode, // #0 = 'ld' chained node
/* 73629*/          OPC_CheckFoldableChainNode,
/* 73630*/          OPC_RecordChild1, // #1 = $src
/* 73631*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 73633*/          OPC_CheckPredicate, 53, // Predicate_zextload
/* 73635*/          OPC_CheckPredicate, 36, // Predicate_zextloadi32
/* 73637*/          OPC_CheckType, MVT::i64,
/* 73639*/          OPC_MoveParent,
/* 73640*/          OPC_MoveParent,
/* 73641*/          OPC_CheckType, MVT::v2i64,
/* 73643*/          OPC_Scope, 17, /*->73662*/ // 3 children in Scope
/* 73645*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 73647*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 73650*/            OPC_EmitMergeInputChains1_0,
/* 73651*/            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)
/* 73662*/          /*Scope*/ 17, /*->73680*/
/* 73663*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 73665*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 73668*/            OPC_EmitMergeInputChains1_0,
/* 73669*/            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)
/* 73680*/          /*Scope*/ 17, /*->73698*/
/* 73681*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 73683*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 73686*/            OPC_EmitMergeInputChains1_0,
/* 73687*/            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)
/* 73698*/          0, /*End of Scope*/
/* 73699*/        /*SwitchOpcode*/ 16, TARGET_VAL(ISD::BITCAST),// ->73718
/* 73702*/          OPC_RecordChild0, // #0 = $src
/* 73703*/          OPC_CheckChild0Type, MVT::x86mmx,
/* 73705*/          OPC_CheckType, MVT::i64,
/* 73707*/          OPC_MoveParent,
/* 73708*/          OPC_MoveParent,
/* 73709*/          OPC_CheckType, MVT::v2i64,
/* 73711*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_MOVQ2DQrr), 0,
                        MVT::v2i64, 1/*#Ops*/, 0, 
                    // Src: (X86vzmovl:{ *:[v2i64] } (scalar_to_vector:{ *:[v2i64] } (bitconvert:{ *:[i64] } VR64:{ *:[x86mmx] }:$src))) - Complexity = 9
                    // Dst: (MMX_MOVQ2DQrr:{ *:[v2i64] } VR64:{ *:[x86mmx] }:$src)
/* 73718*/        0, // EndSwitchOpcode
/* 73719*/      /*Scope*/ 79, /*->73799*/
/* 73720*/        OPC_RecordChild0, // #0 = $src
/* 73721*/        OPC_Scope, 37, /*->73760*/ // 2 children in Scope
/* 73723*/          OPC_CheckChild0Type, MVT::i32,
/* 73725*/          OPC_MoveParent,
/* 73726*/          OPC_CheckType, MVT::v4i32,
/* 73728*/          OPC_Scope, 9, /*->73739*/ // 3 children in Scope
/* 73730*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 73732*/            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)
/* 73739*/          /*Scope*/ 9, /*->73749*/
/* 73740*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 73742*/            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)
/* 73749*/          /*Scope*/ 9, /*->73759*/
/* 73750*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 73752*/            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)
/* 73759*/          0, /*End of Scope*/
/* 73760*/        /*Scope*/ 37, /*->73798*/
/* 73761*/          OPC_CheckChild0Type, MVT::i64,
/* 73763*/          OPC_MoveParent,
/* 73764*/          OPC_CheckType, MVT::v2i64,
/* 73766*/          OPC_Scope, 9, /*->73777*/ // 3 children in Scope
/* 73768*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 73770*/            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)
/* 73777*/          /*Scope*/ 9, /*->73787*/
/* 73778*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 73780*/            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)
/* 73787*/          /*Scope*/ 9, /*->73797*/
/* 73788*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 73790*/            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)
/* 73797*/          0, /*End of Scope*/
/* 73798*/        0, /*End of Scope*/
/* 73799*/      0, /*End of Scope*/
/* 73800*/    /*Scope*/ 95|128,3/*479*/, /*->74281*/
/* 73802*/      OPC_RecordChild0, // #0 = $src
/* 73803*/      OPC_SwitchType /*6 cases */, 32, MVT::v2i64,// ->73838
/* 73806*/        OPC_Scope, 9, /*->73817*/ // 3 children in Scope
/* 73808*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 73810*/          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)
/* 73817*/        /*Scope*/ 9, /*->73827*/
/* 73818*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 73820*/          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)
/* 73827*/        /*Scope*/ 9, /*->73837*/
/* 73828*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 73830*/          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)
/* 73837*/        0, /*End of Scope*/
/* 73838*/      /*SwitchType*/ 95, MVT::v4i32,// ->73935
/* 73840*/        OPC_Scope, 16, /*->73858*/ // 5 children in Scope
/* 73842*/          OPC_CheckPatternPredicate, 125, // (shouldOptForSize(MF)) && (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 73844*/          OPC_EmitNode1, TARGET_VAL(X86::V_SET0), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #1
/* 73850*/          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)
/* 73858*/        /*Scope*/ 16, /*->73875*/
/* 73859*/          OPC_CheckPatternPredicate, 126, // (shouldOptForSize(MF) || !Subtarget->hasSSE41()) && (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/* 73861*/          OPC_EmitNode1, TARGET_VAL(X86::V_SET0), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #1
/* 73867*/          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)
/* 73875*/        /*Scope*/ 20, /*->73896*/
/* 73876*/          OPC_CheckPatternPredicate, 127, // (Subtarget->hasAVX()) && (!shouldOptForSize(MF))
/* 73878*/          OPC_EmitNode1, TARGET_VAL(X86::V_SET0), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #1
/* 73884*/          OPC_EmitInteger, MVT::i8, 3, 
/* 73887*/          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] })
/* 73896*/        /*Scope*/ 20, /*->73917*/
/* 73897*/          OPC_CheckPatternPredicate, 128, // (!shouldOptForSize(MF)) && (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/* 73899*/          OPC_EmitNode1, TARGET_VAL(X86::V_SET0), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #1
/* 73905*/          OPC_EmitInteger, MVT::i8, 3, 
/* 73908*/          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] })
/* 73917*/        /*Scope*/ 16, /*->73934*/
/* 73918*/          OPC_CheckPatternPredicate, 129, // (Subtarget->hasAVX512()) && (shouldOptForSize(MF))
/* 73920*/          OPC_EmitNode1, TARGET_VAL(X86::AVX512_128_SET0), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #1
/* 73926*/          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)
/* 73934*/        0, /*End of Scope*/
/* 73935*/      /*SwitchType*/ 74, MVT::v4i64,// ->74011
/* 73937*/        OPC_Scope, 35, /*->73974*/ // 2 children in Scope
/* 73939*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 73941*/          OPC_EmitInteger, MVT::i32, 0, 
/* 73944*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 73947*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 2,  // Results = #3
/* 73955*/          OPC_EmitNode1, TARGET_VAL(X86::VMOVZPQILo2PQIrr), 0,
                        MVT::v2i64, 1/*#Ops*/, 3,  // Results = #4
/* 73962*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 73965*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                        MVT::v4i64, 3/*#Ops*/, 1, 4, 5, 
                    // Src: (X86vzmovl:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src) - Complexity = 3
                    // Dst: (SUBREG_TO_REG:{ *:[v4i64] } 0:{ *:[i32] }, (VMOVZPQILo2PQIrr:{ *:[v2i64] } (EXTRACT_SUBREG:{ *:[v2i64] } VR256:{ *:[v4i64] }:$src, sub_xmm:{ *:[i32] })), sub_xmm:{ *:[i32] })
/* 73974*/        /*Scope*/ 35, /*->74010*/
/* 73975*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 73977*/          OPC_EmitInteger, MVT::i32, 0, 
/* 73980*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 73983*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 2,  // Results = #3
/* 73991*/          OPC_EmitNode1, TARGET_VAL(X86::VMOVZPQILo2PQIZrr), 0,
                        MVT::v2i64, 1/*#Ops*/, 3,  // Results = #4
/* 73998*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 74001*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                        MVT::v4i64, 3/*#Ops*/, 1, 4, 5, 
                    // Src: (X86vzmovl:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src) - Complexity = 3
                    // Dst: (SUBREG_TO_REG:{ *:[v4i64] } 0:{ *:[i32] }, (VMOVZPQILo2PQIZrr:{ *:[v2i64] } (EXTRACT_SUBREG:{ *:[v2i64] } VR256X:{ *:[v4i64] }:$src, sub_xmm:{ *:[i32] })), sub_xmm:{ *:[i32] })
/* 74010*/        0, /*End of Scope*/
/* 74011*/      /*SwitchType*/ 35, MVT::v8i64,// ->74048
/* 74013*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 74015*/        OPC_EmitInteger, MVT::i32, 0, 
/* 74018*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 74021*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v2i64, 2/*#Ops*/, 0, 2,  // Results = #3
/* 74029*/        OPC_EmitNode1, TARGET_VAL(X86::VMOVZPQILo2PQIZrr), 0,
                      MVT::v2i64, 1/*#Ops*/, 3,  // Results = #4
/* 74036*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 74039*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                      MVT::v8i64, 3/*#Ops*/, 1, 4, 5, 
                  // Src: (X86vzmovl:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src) - Complexity = 3
                  // Dst: (SUBREG_TO_REG:{ *:[v8i64] } 0:{ *:[i32] }, (VMOVZPQILo2PQIZrr:{ *:[v2i64] } (EXTRACT_SUBREG:{ *:[v2i64] } VR512:{ *:[v8i64] }:$src, sub_xmm:{ *:[i32] })), sub_xmm:{ *:[i32] })
/* 74048*/      /*SwitchType*/ 7|128,1/*135*/, MVT::v8i32,// ->74186
/* 74051*/        OPC_Scope, 42, /*->74095*/ // 3 children in Scope
/* 74053*/          OPC_CheckPatternPredicate, 125, // (shouldOptForSize(MF)) && (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 74055*/          OPC_EmitInteger, MVT::i32, 0, 
/* 74058*/          OPC_EmitNode1, TARGET_VAL(X86::V_SET0), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #2
/* 74064*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 74067*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 74075*/          OPC_EmitNode1, TARGET_VAL(X86::VMOVSSrr), 0,
                        MVT::v4i32, 2/*#Ops*/, 2, 4,  // Results = #5
/* 74083*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 74086*/          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] })
/* 74095*/        /*Scope*/ 46, /*->74142*/
/* 74096*/          OPC_CheckPatternPredicate, 127, // (Subtarget->hasAVX()) && (!shouldOptForSize(MF))
/* 74098*/          OPC_EmitInteger, MVT::i32, 0, 
/* 74101*/          OPC_EmitNode1, TARGET_VAL(X86::V_SET0), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #2
/* 74107*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 74110*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 74118*/          OPC_EmitInteger, MVT::i8, 3, 
/* 74121*/          OPC_EmitNode1, TARGET_VAL(X86::VPBLENDWrri), 0,
                        MVT::v4i32, 3/*#Ops*/, 2, 4, 5,  // Results = #6
/* 74130*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 74133*/          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] })
/* 74142*/        /*Scope*/ 42, /*->74185*/
/* 74143*/          OPC_CheckPatternPredicate, 129, // (Subtarget->hasAVX512()) && (shouldOptForSize(MF))
/* 74145*/          OPC_EmitInteger, MVT::i32, 0, 
/* 74148*/          OPC_EmitNode1, TARGET_VAL(X86::AVX512_128_SET0), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #2
/* 74154*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 74157*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 74165*/          OPC_EmitNode1, TARGET_VAL(X86::VMOVSSZrr), 0,
                        MVT::v4i32, 2/*#Ops*/, 2, 4,  // Results = #5
/* 74173*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 74176*/          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] })
/* 74185*/        0, /*End of Scope*/
/* 74186*/      /*SwitchType*/ 92, MVT::v16i32,// ->74280
/* 74188*/        OPC_Scope, 42, /*->74232*/ // 2 children in Scope
/* 74190*/          OPC_CheckPatternPredicate, 129, // (Subtarget->hasAVX512()) && (shouldOptForSize(MF))
/* 74192*/          OPC_EmitInteger, MVT::i32, 0, 
/* 74195*/          OPC_EmitNode1, TARGET_VAL(X86::AVX512_128_SET0), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #2
/* 74201*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 74204*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 74212*/          OPC_EmitNode1, TARGET_VAL(X86::VMOVSSZrr), 0,
                        MVT::v4i32, 2/*#Ops*/, 2, 4,  // Results = #5
/* 74220*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 74223*/          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] })
/* 74232*/        /*Scope*/ 46, /*->74279*/
/* 74233*/          OPC_CheckPatternPredicate, 130, // (Subtarget->hasAVX512()) && (!shouldOptForSize(MF))
/* 74235*/          OPC_EmitInteger, MVT::i32, 0, 
/* 74238*/          OPC_EmitNode1, TARGET_VAL(X86::V_SET0), 0,
                        MVT::v4i32, 0/*#Ops*/,  // Results = #2
/* 74244*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 74247*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 74255*/          OPC_EmitInteger, MVT::i8, 3, 
/* 74258*/          OPC_EmitNode1, TARGET_VAL(X86::VPBLENDWrri), 0,
                        MVT::v4i32, 3/*#Ops*/, 2, 4, 5,  // Results = #6
/* 74267*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 74270*/          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] })
/* 74279*/        0, /*End of Scope*/
/* 74280*/      0, // EndSwitchType
/* 74281*/    /*Scope*/ 110|128,18/*2414*/, /*->76697*/
/* 74283*/      OPC_MoveChild0,
/* 74284*/      OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/* 74287*/      OPC_MoveChild0,
/* 74288*/      OPC_SwitchOpcode /*5 cases */, 111|128,3/*495*/, TARGET_VAL(ISD::STRICT_FMA),// ->74788
/* 74293*/        OPC_RecordNode, // #0 = 'X86strict_Fmadd' chained node
/* 74294*/        OPC_CheckFoldableChainNode,
/* 74295*/        OPC_Scope, 7|128,2/*263*/, /*->74561*/ // 3 children in Scope
/* 74298*/          OPC_RecordChild1, // #1 = $src1
/* 74299*/          OPC_Scope, 64, /*->74365*/ // 4 children in Scope
/* 74301*/            OPC_RecordChild2, // #2 = $src2
/* 74302*/            OPC_MoveChild3,
/* 74303*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 74306*/            OPC_RecordMemRef,
/* 74307*/            OPC_RecordNode, // #3 = 'ld' chained node
/* 74308*/            OPC_CheckFoldableChainNode,
/* 74309*/            OPC_RecordChild1, // #4 = $src3
/* 74310*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 74312*/            OPC_CheckPredicate, 9, // Predicate_load
/* 74314*/            OPC_MoveParent,
/* 74315*/            OPC_CheckType, MVT::f32,
/* 74317*/            OPC_MoveParent,
/* 74318*/            OPC_MoveParent,
/* 74319*/            OPC_CheckType, MVT::v4f32,
/* 74321*/            OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/* 74323*/            OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/* 74326*/            OPC_EmitMergeInputChains, 2, 0, 3, 
/* 74330*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 74333*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 1, 10,  // Results = #11
/* 74341*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 74344*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 2, 12,  // Results = #13
/* 74352*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSS4rm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 7/*#Ops*/, 11, 13, 5, 6, 7, 8, 9, 
                      // Src: (X86vzmovl:{ *:[v4f32] } (scalar_to_vector:{ *:[v4f32] } (X86strict_Fmadd:{ *:[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:{ *:[iPTR] }:$src3)
/* 74365*/          /*Scope*/ 64, /*->74430*/
/* 74366*/            OPC_MoveChild2,
/* 74367*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 74370*/            OPC_RecordMemRef,
/* 74371*/            OPC_RecordNode, // #2 = 'ld' chained node
/* 74372*/            OPC_CheckFoldableChainNode,
/* 74373*/            OPC_RecordChild1, // #3 = $src2
/* 74374*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 74376*/            OPC_CheckPredicate, 9, // Predicate_load
/* 74378*/            OPC_MoveParent,
/* 74379*/            OPC_RecordChild3, // #4 = $src3
/* 74380*/            OPC_CheckType, MVT::f32,
/* 74382*/            OPC_MoveParent,
/* 74383*/            OPC_MoveParent,
/* 74384*/            OPC_CheckType, MVT::v4f32,
/* 74386*/            OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/* 74388*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 74391*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 74395*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 74398*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 1, 10,  // Results = #11
/* 74406*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 74409*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 4, 12,  // Results = #13
/* 74417*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSS4mr_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 7/*#Ops*/, 11, 5, 6, 7, 8, 9, 13, 
                      // Src: (X86vzmovl:{ *:[v4f32] } (scalar_to_vector:{ *:[v4f32] } (X86strict_Fmadd:{ *:[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:{ *:[iPTR] }:$src2, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src3, VR128:{ *:[i32] }))
/* 74430*/          /*Scope*/ 64, /*->74495*/
/* 74431*/            OPC_RecordChild2, // #2 = $src2
/* 74432*/            OPC_MoveChild3,
/* 74433*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 74436*/            OPC_RecordMemRef,
/* 74437*/            OPC_RecordNode, // #3 = 'ld' chained node
/* 74438*/            OPC_CheckFoldableChainNode,
/* 74439*/            OPC_RecordChild1, // #4 = $src3
/* 74440*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 74442*/            OPC_CheckPredicate, 9, // Predicate_load
/* 74444*/            OPC_MoveParent,
/* 74445*/            OPC_CheckType, MVT::f64,
/* 74447*/            OPC_MoveParent,
/* 74448*/            OPC_MoveParent,
/* 74449*/            OPC_CheckType, MVT::v2f64,
/* 74451*/            OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/* 74453*/            OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/* 74456*/            OPC_EmitMergeInputChains, 2, 0, 3, 
/* 74460*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 74463*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 1, 10,  // Results = #11
/* 74471*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 74474*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 2, 12,  // Results = #13
/* 74482*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSD4rm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 7/*#Ops*/, 11, 13, 5, 6, 7, 8, 9, 
                      // Src: (X86vzmovl:{ *:[v2f64] } (scalar_to_vector:{ *:[v2f64] } (X86strict_Fmadd:{ *:[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:{ *:[iPTR] }:$src3)
/* 74495*/          /*Scope*/ 64, /*->74560*/
/* 74496*/            OPC_MoveChild2,
/* 74497*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 74500*/            OPC_RecordMemRef,
/* 74501*/            OPC_RecordNode, // #2 = 'ld' chained node
/* 74502*/            OPC_CheckFoldableChainNode,
/* 74503*/            OPC_RecordChild1, // #3 = $src2
/* 74504*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 74506*/            OPC_CheckPredicate, 9, // Predicate_load
/* 74508*/            OPC_MoveParent,
/* 74509*/            OPC_RecordChild3, // #4 = $src3
/* 74510*/            OPC_CheckType, MVT::f64,
/* 74512*/            OPC_MoveParent,
/* 74513*/            OPC_MoveParent,
/* 74514*/            OPC_CheckType, MVT::v2f64,
/* 74516*/            OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/* 74518*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 74521*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/* 74525*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 74528*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 1, 10,  // Results = #11
/* 74536*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 74539*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 4, 12,  // Results = #13
/* 74547*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSD4mr_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 7/*#Ops*/, 11, 5, 6, 7, 8, 9, 13, 
                      // Src: (X86vzmovl:{ *:[v2f64] } (scalar_to_vector:{ *:[v2f64] } (X86strict_Fmadd:{ *:[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:{ *:[iPTR] }:$src2, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src3, VR128:{ *:[i32] }))
/* 74560*/          0, /*End of Scope*/
/* 74561*/        /*Scope*/ 117, /*->74679*/
/* 74562*/          OPC_MoveChild1,
/* 74563*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 74566*/          OPC_RecordMemRef,
/* 74567*/          OPC_RecordNode, // #1 = 'ld' chained node
/* 74568*/          OPC_CheckFoldableChainNode,
/* 74569*/          OPC_RecordChild1, // #2 = $src2
/* 74570*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 74572*/          OPC_CheckPredicate, 9, // Predicate_load
/* 74574*/          OPC_MoveParent,
/* 74575*/          OPC_RecordChild2, // #3 = $src1
/* 74576*/          OPC_RecordChild3, // #4 = $src3
/* 74577*/          OPC_SwitchType /*2 cases */, 48, MVT::f32,// ->74628
/* 74580*/            OPC_MoveParent,
/* 74581*/            OPC_MoveParent,
/* 74582*/            OPC_CheckType, MVT::v4f32,
/* 74584*/            OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/* 74586*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 74589*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/* 74593*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 74596*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 3, 10,  // Results = #11
/* 74604*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 74607*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 4, 12,  // Results = #13
/* 74615*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSS4mr_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 7/*#Ops*/, 11, 5, 6, 7, 8, 9, 13, 
                      // Src: (X86vzmovl:{ *:[v4f32] } (scalar_to_vector:{ *:[v4f32] } (X86strict_Fmadd:{ *:[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:{ *:[iPTR] }:$src2, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src3, VR128:{ *:[i32] }))
/* 74628*/          /*SwitchType*/ 48, MVT::f64,// ->74678
/* 74630*/            OPC_MoveParent,
/* 74631*/            OPC_MoveParent,
/* 74632*/            OPC_CheckType, MVT::v2f64,
/* 74634*/            OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/* 74636*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/* 74639*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/* 74643*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 74646*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 3, 10,  // Results = #11
/* 74654*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 74657*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 4, 12,  // Results = #13
/* 74665*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSD4mr_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 7/*#Ops*/, 11, 5, 6, 7, 8, 9, 13, 
                      // Src: (X86vzmovl:{ *:[v2f64] } (scalar_to_vector:{ *:[v2f64] } (X86strict_Fmadd:{ *:[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:{ *:[iPTR] }:$src2, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src3, VR128:{ *:[i32] }))
/* 74678*/          0, // EndSwitchType
/* 74679*/        /*Scope*/ 107, /*->74787*/
/* 74680*/          OPC_RecordChild1, // #1 = $src1
/* 74681*/          OPC_RecordChild2, // #2 = $src2
/* 74682*/          OPC_RecordChild3, // #3 = $src3
/* 74683*/          OPC_SwitchType /*2 cases */, 49, MVT::f32,// ->74735
/* 74686*/            OPC_MoveParent,
/* 74687*/            OPC_MoveParent,
/* 74688*/            OPC_CheckType, MVT::v4f32,
/* 74690*/            OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/* 74692*/            OPC_EmitMergeInputChains1_0,
/* 74693*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 74696*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 1, 4,  // Results = #5
/* 74704*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 74707*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 2, 6,  // Results = #7
/* 74715*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 74718*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 3, 8,  // Results = #9
/* 74726*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSS4rr_Int), 0|OPFL_Chain,
                          MVT::v4f32, 3/*#Ops*/, 5, 7, 9, 
                      // Src: (X86vzmovl:{ *:[v4f32] } (scalar_to_vector:{ *:[v4f32] } (X86strict_Fmadd:{ *:[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] }))
/* 74735*/          /*SwitchType*/ 49, MVT::f64,// ->74786
/* 74737*/            OPC_MoveParent,
/* 74738*/            OPC_MoveParent,
/* 74739*/            OPC_CheckType, MVT::v2f64,
/* 74741*/            OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/* 74743*/            OPC_EmitMergeInputChains1_0,
/* 74744*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 74747*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 1, 4,  // Results = #5
/* 74755*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 74758*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 2, 6,  // Results = #7
/* 74766*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 74769*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 3, 8,  // Results = #9
/* 74777*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSD4rr_Int), 0|OPFL_Chain,
                          MVT::v2f64, 3/*#Ops*/, 5, 7, 9, 
                      // Src: (X86vzmovl:{ *:[v2f64] } (scalar_to_vector:{ *:[v2f64] } (X86strict_Fmadd:{ *:[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] }))
/* 74786*/          0, // EndSwitchType
/* 74787*/        0, /*End of Scope*/
/* 74788*/      /*SwitchOpcode*/ 89|128,3/*473*/, TARGET_VAL(ISD::FMA),// ->75265
/* 74792*/        OPC_Scope, 123|128,1/*251*/, /*->75046*/ // 3 children in Scope
/* 74795*/          OPC_RecordChild0, // #0 = $src1
/* 74796*/          OPC_Scope, 61, /*->74859*/ // 4 children in Scope
/* 74798*/            OPC_RecordChild1, // #1 = $src2
/* 74799*/            OPC_MoveChild2,
/* 74800*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 74803*/            OPC_RecordMemRef,
/* 74804*/            OPC_RecordNode, // #2 = 'ld' chained node
/* 74805*/            OPC_CheckFoldableChainNode,
/* 74806*/            OPC_RecordChild1, // #3 = $src3
/* 74807*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 74809*/            OPC_CheckPredicate, 9, // Predicate_load
/* 74811*/            OPC_MoveParent,
/* 74812*/            OPC_CheckType, MVT::f32,
/* 74814*/            OPC_MoveParent,
/* 74815*/            OPC_MoveParent,
/* 74816*/            OPC_CheckType, MVT::v4f32,
/* 74818*/            OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/* 74820*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/* 74823*/            OPC_EmitMergeInputChains1_2,
/* 74824*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 74827*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 0, 9,  // Results = #10
/* 74835*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 74838*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 1, 11,  // Results = #12
/* 74846*/            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:{ *:[iPTR] }:$src3)
/* 74859*/          /*Scope*/ 61, /*->74921*/
/* 74860*/            OPC_MoveChild1,
/* 74861*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 74864*/            OPC_RecordMemRef,
/* 74865*/            OPC_RecordNode, // #1 = 'ld' chained node
/* 74866*/            OPC_CheckFoldableChainNode,
/* 74867*/            OPC_RecordChild1, // #2 = $src2
/* 74868*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 74870*/            OPC_CheckPredicate, 9, // Predicate_load
/* 74872*/            OPC_MoveParent,
/* 74873*/            OPC_RecordChild2, // #3 = $src3
/* 74874*/            OPC_CheckType, MVT::f32,
/* 74876*/            OPC_MoveParent,
/* 74877*/            OPC_MoveParent,
/* 74878*/            OPC_CheckType, MVT::v4f32,
/* 74880*/            OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/* 74882*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 74885*/            OPC_EmitMergeInputChains1_1,
/* 74886*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 74889*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 0, 9,  // Results = #10
/* 74897*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 74900*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 3, 11,  // Results = #12
/* 74908*/            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:{ *:[iPTR] }:$src2, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src3, VR128:{ *:[i32] }))
/* 74921*/          /*Scope*/ 61, /*->74983*/
/* 74922*/            OPC_RecordChild1, // #1 = $src2
/* 74923*/            OPC_MoveChild2,
/* 74924*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 74927*/            OPC_RecordMemRef,
/* 74928*/            OPC_RecordNode, // #2 = 'ld' chained node
/* 74929*/            OPC_CheckFoldableChainNode,
/* 74930*/            OPC_RecordChild1, // #3 = $src3
/* 74931*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 74933*/            OPC_CheckPredicate, 9, // Predicate_load
/* 74935*/            OPC_MoveParent,
/* 74936*/            OPC_CheckType, MVT::f64,
/* 74938*/            OPC_MoveParent,
/* 74939*/            OPC_MoveParent,
/* 74940*/            OPC_CheckType, MVT::v2f64,
/* 74942*/            OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/* 74944*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/* 74947*/            OPC_EmitMergeInputChains1_2,
/* 74948*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 74951*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 9,  // Results = #10
/* 74959*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 74962*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 1, 11,  // Results = #12
/* 74970*/            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:{ *:[iPTR] }:$src3)
/* 74983*/          /*Scope*/ 61, /*->75045*/
/* 74984*/            OPC_MoveChild1,
/* 74985*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 74988*/            OPC_RecordMemRef,
/* 74989*/            OPC_RecordNode, // #1 = 'ld' chained node
/* 74990*/            OPC_CheckFoldableChainNode,
/* 74991*/            OPC_RecordChild1, // #2 = $src2
/* 74992*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 74994*/            OPC_CheckPredicate, 9, // Predicate_load
/* 74996*/            OPC_MoveParent,
/* 74997*/            OPC_RecordChild2, // #3 = $src3
/* 74998*/            OPC_CheckType, MVT::f64,
/* 75000*/            OPC_MoveParent,
/* 75001*/            OPC_MoveParent,
/* 75002*/            OPC_CheckType, MVT::v2f64,
/* 75004*/            OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/* 75006*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 75009*/            OPC_EmitMergeInputChains1_1,
/* 75010*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 75013*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 9,  // Results = #10
/* 75021*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 75024*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 3, 11,  // Results = #12
/* 75032*/            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:{ *:[iPTR] }:$src2, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src3, VR128:{ *:[i32] }))
/* 75045*/          0, /*End of Scope*/
/* 75046*/        /*Scope*/ 111, /*->75158*/
/* 75047*/          OPC_MoveChild0,
/* 75048*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 75051*/          OPC_RecordMemRef,
/* 75052*/          OPC_RecordNode, // #0 = 'ld' chained node
/* 75053*/          OPC_CheckFoldableChainNode,
/* 75054*/          OPC_RecordChild1, // #1 = $src2
/* 75055*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 75057*/          OPC_CheckPredicate, 9, // Predicate_load
/* 75059*/          OPC_MoveParent,
/* 75060*/          OPC_RecordChild1, // #2 = $src1
/* 75061*/          OPC_RecordChild2, // #3 = $src3
/* 75062*/          OPC_SwitchType /*2 cases */, 45, MVT::f32,// ->75110
/* 75065*/            OPC_MoveParent,
/* 75066*/            OPC_MoveParent,
/* 75067*/            OPC_CheckType, MVT::v4f32,
/* 75069*/            OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/* 75071*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 75074*/            OPC_EmitMergeInputChains1_0,
/* 75075*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 75078*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 2, 9,  // Results = #10
/* 75086*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 75089*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 3, 11,  // Results = #12
/* 75097*/            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:{ *:[iPTR] }:$src2, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src3, VR128:{ *:[i32] }))
/* 75110*/          /*SwitchType*/ 45, MVT::f64,// ->75157
/* 75112*/            OPC_MoveParent,
/* 75113*/            OPC_MoveParent,
/* 75114*/            OPC_CheckType, MVT::v2f64,
/* 75116*/            OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/* 75118*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 75121*/            OPC_EmitMergeInputChains1_0,
/* 75122*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 75125*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 2, 9,  // Results = #10
/* 75133*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 75136*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 3, 11,  // Results = #12
/* 75144*/            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:{ *:[iPTR] }:$src2, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src3, VR128:{ *:[i32] }))
/* 75157*/          0, // EndSwitchType
/* 75158*/        /*Scope*/ 105, /*->75264*/
/* 75159*/          OPC_RecordChild0, // #0 = $src1
/* 75160*/          OPC_RecordChild1, // #1 = $src2
/* 75161*/          OPC_RecordChild2, // #2 = $src3
/* 75162*/          OPC_SwitchType /*2 cases */, 48, MVT::f32,// ->75213
/* 75165*/            OPC_MoveParent,
/* 75166*/            OPC_MoveParent,
/* 75167*/            OPC_CheckType, MVT::v4f32,
/* 75169*/            OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/* 75171*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 75174*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 75182*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 75185*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 1, 5,  // Results = #6
/* 75193*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 75196*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 2, 7,  // Results = #8
/* 75204*/            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] }))
/* 75213*/          /*SwitchType*/ 48, MVT::f64,// ->75263
/* 75215*/            OPC_MoveParent,
/* 75216*/            OPC_MoveParent,
/* 75217*/            OPC_CheckType, MVT::v2f64,
/* 75219*/            OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/* 75221*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 75224*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 3,  // Results = #4
/* 75232*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 75235*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 1, 5,  // Results = #6
/* 75243*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 75246*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 2, 7,  // Results = #8
/* 75254*/            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] }))
/* 75263*/          0, // EndSwitchType
/* 75264*/        0, /*End of Scope*/
/* 75265*/      /*SwitchOpcode*/ 89|128,3/*473*/, TARGET_VAL(X86ISD::FMSUB),// ->75742
/* 75269*/        OPC_Scope, 123|128,1/*251*/, /*->75523*/ // 3 children in Scope
/* 75272*/          OPC_RecordChild0, // #0 = $src1
/* 75273*/          OPC_Scope, 61, /*->75336*/ // 4 children in Scope
/* 75275*/            OPC_RecordChild1, // #1 = $src2
/* 75276*/            OPC_MoveChild2,
/* 75277*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 75280*/            OPC_RecordMemRef,
/* 75281*/            OPC_RecordNode, // #2 = 'ld' chained node
/* 75282*/            OPC_CheckFoldableChainNode,
/* 75283*/            OPC_RecordChild1, // #3 = $src3
/* 75284*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 75286*/            OPC_CheckPredicate, 9, // Predicate_load
/* 75288*/            OPC_MoveParent,
/* 75289*/            OPC_CheckType, MVT::f32,
/* 75291*/            OPC_MoveParent,
/* 75292*/            OPC_MoveParent,
/* 75293*/            OPC_CheckType, MVT::v4f32,
/* 75295*/            OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/* 75297*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/* 75300*/            OPC_EmitMergeInputChains1_2,
/* 75301*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 75304*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 0, 9,  // Results = #10
/* 75312*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 75315*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 1, 11,  // Results = #12
/* 75323*/            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:{ *:[iPTR] }:$src3)
/* 75336*/          /*Scope*/ 61, /*->75398*/
/* 75337*/            OPC_MoveChild1,
/* 75338*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 75341*/            OPC_RecordMemRef,
/* 75342*/            OPC_RecordNode, // #1 = 'ld' chained node
/* 75343*/            OPC_CheckFoldableChainNode,
/* 75344*/            OPC_RecordChild1, // #2 = $src2
/* 75345*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 75347*/            OPC_CheckPredicate, 9, // Predicate_load
/* 75349*/            OPC_MoveParent,
/* 75350*/            OPC_RecordChild2, // #3 = $src3
/* 75351*/            OPC_CheckType, MVT::f32,
/* 75353*/            OPC_MoveParent,
/* 75354*/            OPC_MoveParent,
/* 75355*/            OPC_CheckType, MVT::v4f32,
/* 75357*/            OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/* 75359*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 75362*/            OPC_EmitMergeInputChains1_1,
/* 75363*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 75366*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 0, 9,  // Results = #10
/* 75374*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 75377*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 3, 11,  // Results = #12
/* 75385*/            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:{ *:[iPTR] }:$src2, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src3, VR128:{ *:[i32] }))
/* 75398*/          /*Scope*/ 61, /*->75460*/
/* 75399*/            OPC_RecordChild1, // #1 = $src2
/* 75400*/            OPC_MoveChild2,
/* 75401*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 75404*/            OPC_RecordMemRef,
/* 75405*/            OPC_RecordNode, // #2 = 'ld' chained node
/* 75406*/            OPC_CheckFoldableChainNode,
/* 75407*/            OPC_RecordChild1, // #3 = $src3
/* 75408*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 75410*/            OPC_CheckPredicate, 9, // Predicate_load
/* 75412*/            OPC_MoveParent,
/* 75413*/            OPC_CheckType, MVT::f64,
/* 75415*/            OPC_MoveParent,
/* 75416*/            OPC_MoveParent,
/* 75417*/            OPC_CheckType, MVT::v2f64,
/* 75419*/            OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/* 75421*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/* 75424*/            OPC_EmitMergeInputChains1_2,
/* 75425*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 75428*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 9,  // Results = #10
/* 75436*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 75439*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 1, 11,  // Results = #12
/* 75447*/            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:{ *:[iPTR] }:$src3)
/* 75460*/          /*Scope*/ 61, /*->75522*/
/* 75461*/            OPC_MoveChild1,
/* 75462*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 75465*/            OPC_RecordMemRef,
/* 75466*/            OPC_RecordNode, // #1 = 'ld' chained node
/* 75467*/            OPC_CheckFoldableChainNode,
/* 75468*/            OPC_RecordChild1, // #2 = $src2
/* 75469*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 75471*/            OPC_CheckPredicate, 9, // Predicate_load
/* 75473*/            OPC_MoveParent,
/* 75474*/            OPC_RecordChild2, // #3 = $src3
/* 75475*/            OPC_CheckType, MVT::f64,
/* 75477*/            OPC_MoveParent,
/* 75478*/            OPC_MoveParent,
/* 75479*/            OPC_CheckType, MVT::v2f64,
/* 75481*/            OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/* 75483*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 75486*/            OPC_EmitMergeInputChains1_1,
/* 75487*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 75490*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 9,  // Results = #10
/* 75498*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 75501*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 3, 11,  // Results = #12
/* 75509*/            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:{ *:[iPTR] }:$src2, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src3, VR128:{ *:[i32] }))
/* 75522*/          0, /*End of Scope*/
/* 75523*/        /*Scope*/ 111, /*->75635*/
/* 75524*/          OPC_MoveChild0,
/* 75525*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 75528*/          OPC_RecordMemRef,
/* 75529*/          OPC_RecordNode, // #0 = 'ld' chained node
/* 75530*/          OPC_CheckFoldableChainNode,
/* 75531*/          OPC_RecordChild1, // #1 = $src2
/* 75532*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 75534*/          OPC_CheckPredicate, 9, // Predicate_load
/* 75536*/          OPC_MoveParent,
/* 75537*/          OPC_RecordChild1, // #2 = $src1
/* 75538*/          OPC_RecordChild2, // #3 = $src3
/* 75539*/          OPC_SwitchType /*2 cases */, 45, MVT::f32,// ->75587
/* 75542*/            OPC_MoveParent,
/* 75543*/            OPC_MoveParent,
/* 75544*/            OPC_CheckType, MVT::v4f32,
/* 75546*/            OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/* 75548*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 75551*/            OPC_EmitMergeInputChains1_0,
/* 75552*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 75555*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 2, 9,  // Results = #10
/* 75563*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 75566*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 3, 11,  // Results = #12
/* 75574*/            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:{ *:[iPTR] }:$src2, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src3, VR128:{ *:[i32] }))
/* 75587*/          /*SwitchType*/ 45, MVT::f64,// ->75634
/* 75589*/            OPC_MoveParent,
/* 75590*/            OPC_MoveParent,
/* 75591*/            OPC_CheckType, MVT::v2f64,
/* 75593*/            OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/* 75595*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 75598*/            OPC_EmitMergeInputChains1_0,
/* 75599*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 75602*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 2, 9,  // Results = #10
/* 75610*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 75613*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 3, 11,  // Results = #12
/* 75621*/            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:{ *:[iPTR] }:$src2, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src3, VR128:{ *:[i32] }))
/* 75634*/          0, // EndSwitchType
/* 75635*/        /*Scope*/ 105, /*->75741*/
/* 75636*/          OPC_RecordChild0, // #0 = $src1
/* 75637*/          OPC_RecordChild1, // #1 = $src2
/* 75638*/          OPC_RecordChild2, // #2 = $src3
/* 75639*/          OPC_SwitchType /*2 cases */, 48, MVT::f32,// ->75690
/* 75642*/            OPC_MoveParent,
/* 75643*/            OPC_MoveParent,
/* 75644*/            OPC_CheckType, MVT::v4f32,
/* 75646*/            OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/* 75648*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 75651*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 75659*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 75662*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 1, 5,  // Results = #6
/* 75670*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 75673*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 2, 7,  // Results = #8
/* 75681*/            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] }))
/* 75690*/          /*SwitchType*/ 48, MVT::f64,// ->75740
/* 75692*/            OPC_MoveParent,
/* 75693*/            OPC_MoveParent,
/* 75694*/            OPC_CheckType, MVT::v2f64,
/* 75696*/            OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/* 75698*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 75701*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 3,  // Results = #4
/* 75709*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 75712*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 1, 5,  // Results = #6
/* 75720*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 75723*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 2, 7,  // Results = #8
/* 75731*/            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] }))
/* 75740*/          0, // EndSwitchType
/* 75741*/        0, /*End of Scope*/
/* 75742*/      /*SwitchOpcode*/ 89|128,3/*473*/, TARGET_VAL(X86ISD::FNMADD),// ->76219
/* 75746*/        OPC_Scope, 123|128,1/*251*/, /*->76000*/ // 3 children in Scope
/* 75749*/          OPC_RecordChild0, // #0 = $src1
/* 75750*/          OPC_Scope, 61, /*->75813*/ // 4 children in Scope
/* 75752*/            OPC_RecordChild1, // #1 = $src2
/* 75753*/            OPC_MoveChild2,
/* 75754*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 75757*/            OPC_RecordMemRef,
/* 75758*/            OPC_RecordNode, // #2 = 'ld' chained node
/* 75759*/            OPC_CheckFoldableChainNode,
/* 75760*/            OPC_RecordChild1, // #3 = $src3
/* 75761*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 75763*/            OPC_CheckPredicate, 9, // Predicate_load
/* 75765*/            OPC_MoveParent,
/* 75766*/            OPC_CheckType, MVT::f32,
/* 75768*/            OPC_MoveParent,
/* 75769*/            OPC_MoveParent,
/* 75770*/            OPC_CheckType, MVT::v4f32,
/* 75772*/            OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/* 75774*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/* 75777*/            OPC_EmitMergeInputChains1_2,
/* 75778*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 75781*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 0, 9,  // Results = #10
/* 75789*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 75792*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 1, 11,  // Results = #12
/* 75800*/            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:{ *:[iPTR] }:$src3)
/* 75813*/          /*Scope*/ 61, /*->75875*/
/* 75814*/            OPC_MoveChild1,
/* 75815*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 75818*/            OPC_RecordMemRef,
/* 75819*/            OPC_RecordNode, // #1 = 'ld' chained node
/* 75820*/            OPC_CheckFoldableChainNode,
/* 75821*/            OPC_RecordChild1, // #2 = $src2
/* 75822*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 75824*/            OPC_CheckPredicate, 9, // Predicate_load
/* 75826*/            OPC_MoveParent,
/* 75827*/            OPC_RecordChild2, // #3 = $src3
/* 75828*/            OPC_CheckType, MVT::f32,
/* 75830*/            OPC_MoveParent,
/* 75831*/            OPC_MoveParent,
/* 75832*/            OPC_CheckType, MVT::v4f32,
/* 75834*/            OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/* 75836*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 75839*/            OPC_EmitMergeInputChains1_1,
/* 75840*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 75843*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 0, 9,  // Results = #10
/* 75851*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 75854*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 3, 11,  // Results = #12
/* 75862*/            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:{ *:[iPTR] }:$src2, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src3, VR128:{ *:[i32] }))
/* 75875*/          /*Scope*/ 61, /*->75937*/
/* 75876*/            OPC_RecordChild1, // #1 = $src2
/* 75877*/            OPC_MoveChild2,
/* 75878*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 75881*/            OPC_RecordMemRef,
/* 75882*/            OPC_RecordNode, // #2 = 'ld' chained node
/* 75883*/            OPC_CheckFoldableChainNode,
/* 75884*/            OPC_RecordChild1, // #3 = $src3
/* 75885*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 75887*/            OPC_CheckPredicate, 9, // Predicate_load
/* 75889*/            OPC_MoveParent,
/* 75890*/            OPC_CheckType, MVT::f64,
/* 75892*/            OPC_MoveParent,
/* 75893*/            OPC_MoveParent,
/* 75894*/            OPC_CheckType, MVT::v2f64,
/* 75896*/            OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/* 75898*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/* 75901*/            OPC_EmitMergeInputChains1_2,
/* 75902*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 75905*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 9,  // Results = #10
/* 75913*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 75916*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 1, 11,  // Results = #12
/* 75924*/            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:{ *:[iPTR] }:$src3)
/* 75937*/          /*Scope*/ 61, /*->75999*/
/* 75938*/            OPC_MoveChild1,
/* 75939*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 75942*/            OPC_RecordMemRef,
/* 75943*/            OPC_RecordNode, // #1 = 'ld' chained node
/* 75944*/            OPC_CheckFoldableChainNode,
/* 75945*/            OPC_RecordChild1, // #2 = $src2
/* 75946*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 75948*/            OPC_CheckPredicate, 9, // Predicate_load
/* 75950*/            OPC_MoveParent,
/* 75951*/            OPC_RecordChild2, // #3 = $src3
/* 75952*/            OPC_CheckType, MVT::f64,
/* 75954*/            OPC_MoveParent,
/* 75955*/            OPC_MoveParent,
/* 75956*/            OPC_CheckType, MVT::v2f64,
/* 75958*/            OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/* 75960*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 75963*/            OPC_EmitMergeInputChains1_1,
/* 75964*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 75967*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 9,  // Results = #10
/* 75975*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 75978*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 3, 11,  // Results = #12
/* 75986*/            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:{ *:[iPTR] }:$src2, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src3, VR128:{ *:[i32] }))
/* 75999*/          0, /*End of Scope*/
/* 76000*/        /*Scope*/ 111, /*->76112*/
/* 76001*/          OPC_MoveChild0,
/* 76002*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 76005*/          OPC_RecordMemRef,
/* 76006*/          OPC_RecordNode, // #0 = 'ld' chained node
/* 76007*/          OPC_CheckFoldableChainNode,
/* 76008*/          OPC_RecordChild1, // #1 = $src2
/* 76009*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 76011*/          OPC_CheckPredicate, 9, // Predicate_load
/* 76013*/          OPC_MoveParent,
/* 76014*/          OPC_RecordChild1, // #2 = $src1
/* 76015*/          OPC_RecordChild2, // #3 = $src3
/* 76016*/          OPC_SwitchType /*2 cases */, 45, MVT::f32,// ->76064
/* 76019*/            OPC_MoveParent,
/* 76020*/            OPC_MoveParent,
/* 76021*/            OPC_CheckType, MVT::v4f32,
/* 76023*/            OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/* 76025*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 76028*/            OPC_EmitMergeInputChains1_0,
/* 76029*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 76032*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 2, 9,  // Results = #10
/* 76040*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 76043*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 3, 11,  // Results = #12
/* 76051*/            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:{ *:[iPTR] }:$src2, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src3, VR128:{ *:[i32] }))
/* 76064*/          /*SwitchType*/ 45, MVT::f64,// ->76111
/* 76066*/            OPC_MoveParent,
/* 76067*/            OPC_MoveParent,
/* 76068*/            OPC_CheckType, MVT::v2f64,
/* 76070*/            OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/* 76072*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 76075*/            OPC_EmitMergeInputChains1_0,
/* 76076*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 76079*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 2, 9,  // Results = #10
/* 76087*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 76090*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 3, 11,  // Results = #12
/* 76098*/            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:{ *:[iPTR] }:$src2, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src3, VR128:{ *:[i32] }))
/* 76111*/          0, // EndSwitchType
/* 76112*/        /*Scope*/ 105, /*->76218*/
/* 76113*/          OPC_RecordChild0, // #0 = $src1
/* 76114*/          OPC_RecordChild1, // #1 = $src2
/* 76115*/          OPC_RecordChild2, // #2 = $src3
/* 76116*/          OPC_SwitchType /*2 cases */, 48, MVT::f32,// ->76167
/* 76119*/            OPC_MoveParent,
/* 76120*/            OPC_MoveParent,
/* 76121*/            OPC_CheckType, MVT::v4f32,
/* 76123*/            OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/* 76125*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 76128*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 76136*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 76139*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 1, 5,  // Results = #6
/* 76147*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 76150*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 2, 7,  // Results = #8
/* 76158*/            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] }))
/* 76167*/          /*SwitchType*/ 48, MVT::f64,// ->76217
/* 76169*/            OPC_MoveParent,
/* 76170*/            OPC_MoveParent,
/* 76171*/            OPC_CheckType, MVT::v2f64,
/* 76173*/            OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/* 76175*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 76178*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 3,  // Results = #4
/* 76186*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 76189*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 1, 5,  // Results = #6
/* 76197*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 76200*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 2, 7,  // Results = #8
/* 76208*/            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] }))
/* 76217*/          0, // EndSwitchType
/* 76218*/        0, /*End of Scope*/
/* 76219*/      /*SwitchOpcode*/ 89|128,3/*473*/, TARGET_VAL(X86ISD::FNMSUB),// ->76696
/* 76223*/        OPC_Scope, 123|128,1/*251*/, /*->76477*/ // 3 children in Scope
/* 76226*/          OPC_RecordChild0, // #0 = $src1
/* 76227*/          OPC_Scope, 61, /*->76290*/ // 4 children in Scope
/* 76229*/            OPC_RecordChild1, // #1 = $src2
/* 76230*/            OPC_MoveChild2,
/* 76231*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 76234*/            OPC_RecordMemRef,
/* 76235*/            OPC_RecordNode, // #2 = 'ld' chained node
/* 76236*/            OPC_CheckFoldableChainNode,
/* 76237*/            OPC_RecordChild1, // #3 = $src3
/* 76238*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 76240*/            OPC_CheckPredicate, 9, // Predicate_load
/* 76242*/            OPC_MoveParent,
/* 76243*/            OPC_CheckType, MVT::f32,
/* 76245*/            OPC_MoveParent,
/* 76246*/            OPC_MoveParent,
/* 76247*/            OPC_CheckType, MVT::v4f32,
/* 76249*/            OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/* 76251*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/* 76254*/            OPC_EmitMergeInputChains1_2,
/* 76255*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 76258*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 0, 9,  // Results = #10
/* 76266*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 76269*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 1, 11,  // Results = #12
/* 76277*/            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:{ *:[iPTR] }:$src3)
/* 76290*/          /*Scope*/ 61, /*->76352*/
/* 76291*/            OPC_MoveChild1,
/* 76292*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 76295*/            OPC_RecordMemRef,
/* 76296*/            OPC_RecordNode, // #1 = 'ld' chained node
/* 76297*/            OPC_CheckFoldableChainNode,
/* 76298*/            OPC_RecordChild1, // #2 = $src2
/* 76299*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 76301*/            OPC_CheckPredicate, 9, // Predicate_load
/* 76303*/            OPC_MoveParent,
/* 76304*/            OPC_RecordChild2, // #3 = $src3
/* 76305*/            OPC_CheckType, MVT::f32,
/* 76307*/            OPC_MoveParent,
/* 76308*/            OPC_MoveParent,
/* 76309*/            OPC_CheckType, MVT::v4f32,
/* 76311*/            OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/* 76313*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 76316*/            OPC_EmitMergeInputChains1_1,
/* 76317*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 76320*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 0, 9,  // Results = #10
/* 76328*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 76331*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 3, 11,  // Results = #12
/* 76339*/            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:{ *:[iPTR] }:$src2, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src3, VR128:{ *:[i32] }))
/* 76352*/          /*Scope*/ 61, /*->76414*/
/* 76353*/            OPC_RecordChild1, // #1 = $src2
/* 76354*/            OPC_MoveChild2,
/* 76355*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 76358*/            OPC_RecordMemRef,
/* 76359*/            OPC_RecordNode, // #2 = 'ld' chained node
/* 76360*/            OPC_CheckFoldableChainNode,
/* 76361*/            OPC_RecordChild1, // #3 = $src3
/* 76362*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 76364*/            OPC_CheckPredicate, 9, // Predicate_load
/* 76366*/            OPC_MoveParent,
/* 76367*/            OPC_CheckType, MVT::f64,
/* 76369*/            OPC_MoveParent,
/* 76370*/            OPC_MoveParent,
/* 76371*/            OPC_CheckType, MVT::v2f64,
/* 76373*/            OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/* 76375*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/* 76378*/            OPC_EmitMergeInputChains1_2,
/* 76379*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 76382*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 9,  // Results = #10
/* 76390*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 76393*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 1, 11,  // Results = #12
/* 76401*/            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:{ *:[iPTR] }:$src3)
/* 76414*/          /*Scope*/ 61, /*->76476*/
/* 76415*/            OPC_MoveChild1,
/* 76416*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 76419*/            OPC_RecordMemRef,
/* 76420*/            OPC_RecordNode, // #1 = 'ld' chained node
/* 76421*/            OPC_CheckFoldableChainNode,
/* 76422*/            OPC_RecordChild1, // #2 = $src2
/* 76423*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 76425*/            OPC_CheckPredicate, 9, // Predicate_load
/* 76427*/            OPC_MoveParent,
/* 76428*/            OPC_RecordChild2, // #3 = $src3
/* 76429*/            OPC_CheckType, MVT::f64,
/* 76431*/            OPC_MoveParent,
/* 76432*/            OPC_MoveParent,
/* 76433*/            OPC_CheckType, MVT::v2f64,
/* 76435*/            OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/* 76437*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 76440*/            OPC_EmitMergeInputChains1_1,
/* 76441*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 76444*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 9,  // Results = #10
/* 76452*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 76455*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 3, 11,  // Results = #12
/* 76463*/            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:{ *:[iPTR] }:$src2, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src3, VR128:{ *:[i32] }))
/* 76476*/          0, /*End of Scope*/
/* 76477*/        /*Scope*/ 111, /*->76589*/
/* 76478*/          OPC_MoveChild0,
/* 76479*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 76482*/          OPC_RecordMemRef,
/* 76483*/          OPC_RecordNode, // #0 = 'ld' chained node
/* 76484*/          OPC_CheckFoldableChainNode,
/* 76485*/          OPC_RecordChild1, // #1 = $src2
/* 76486*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 76488*/          OPC_CheckPredicate, 9, // Predicate_load
/* 76490*/          OPC_MoveParent,
/* 76491*/          OPC_RecordChild1, // #2 = $src1
/* 76492*/          OPC_RecordChild2, // #3 = $src3
/* 76493*/          OPC_SwitchType /*2 cases */, 45, MVT::f32,// ->76541
/* 76496*/            OPC_MoveParent,
/* 76497*/            OPC_MoveParent,
/* 76498*/            OPC_CheckType, MVT::v4f32,
/* 76500*/            OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/* 76502*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 76505*/            OPC_EmitMergeInputChains1_0,
/* 76506*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 76509*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 2, 9,  // Results = #10
/* 76517*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 76520*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 3, 11,  // Results = #12
/* 76528*/            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:{ *:[iPTR] }:$src2, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32:{ *:[f32] }:$src3, VR128:{ *:[i32] }))
/* 76541*/          /*SwitchType*/ 45, MVT::f64,// ->76588
/* 76543*/            OPC_MoveParent,
/* 76544*/            OPC_MoveParent,
/* 76545*/            OPC_CheckType, MVT::v2f64,
/* 76547*/            OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/* 76549*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 76552*/            OPC_EmitMergeInputChains1_0,
/* 76553*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 76556*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 2, 9,  // Results = #10
/* 76564*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 76567*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 3, 11,  // Results = #12
/* 76575*/            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:{ *:[iPTR] }:$src2, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64:{ *:[f64] }:$src3, VR128:{ *:[i32] }))
/* 76588*/          0, // EndSwitchType
/* 76589*/        /*Scope*/ 105, /*->76695*/
/* 76590*/          OPC_RecordChild0, // #0 = $src1
/* 76591*/          OPC_RecordChild1, // #1 = $src2
/* 76592*/          OPC_RecordChild2, // #2 = $src3
/* 76593*/          OPC_SwitchType /*2 cases */, 48, MVT::f32,// ->76644
/* 76596*/            OPC_MoveParent,
/* 76597*/            OPC_MoveParent,
/* 76598*/            OPC_CheckType, MVT::v4f32,
/* 76600*/            OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/* 76602*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 76605*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 76613*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 76616*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 1, 5,  // Results = #6
/* 76624*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 76627*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 2, 7,  // Results = #8
/* 76635*/            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] }))
/* 76644*/          /*SwitchType*/ 48, MVT::f64,// ->76694
/* 76646*/            OPC_MoveParent,
/* 76647*/            OPC_MoveParent,
/* 76648*/            OPC_CheckType, MVT::v2f64,
/* 76650*/            OPC_CheckPatternPredicate, 131, // (Subtarget->hasFMA4())
/* 76652*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 76655*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 3,  // Results = #4
/* 76663*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 76666*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 1, 5,  // Results = #6
/* 76674*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 76677*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 2, 7,  // Results = #8
/* 76685*/            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] }))
/* 76694*/          0, // EndSwitchType
/* 76695*/        0, /*End of Scope*/
/* 76696*/      0, // EndSwitchOpcode
/* 76697*/    /*Scope*/ 95|128,3/*479*/, /*->77178*/
/* 76699*/      OPC_RecordChild0, // #0 = $src
/* 76700*/      OPC_SwitchType /*6 cases */, 32, MVT::v2f64,// ->76735
/* 76703*/        OPC_Scope, 9, /*->76714*/ // 3 children in Scope
/* 76705*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 76707*/          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)
/* 76714*/        /*Scope*/ 9, /*->76724*/
/* 76715*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 76717*/          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)
/* 76724*/        /*Scope*/ 9, /*->76734*/
/* 76725*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 76727*/          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)
/* 76734*/        0, /*End of Scope*/
/* 76735*/      /*SwitchType*/ 95, MVT::v4f32,// ->76832
/* 76737*/        OPC_Scope, 16, /*->76755*/ // 5 children in Scope
/* 76739*/          OPC_CheckPatternPredicate, 125, // (shouldOptForSize(MF)) && (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 76741*/          OPC_EmitNode1, TARGET_VAL(X86::V_SET0), 0,
                        MVT::v4f32, 0/*#Ops*/,  // Results = #1
/* 76747*/          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)
/* 76755*/        /*Scope*/ 16, /*->76772*/
/* 76756*/          OPC_CheckPatternPredicate, 126, // (shouldOptForSize(MF) || !Subtarget->hasSSE41()) && (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/* 76758*/          OPC_EmitNode1, TARGET_VAL(X86::V_SET0), 0,
                        MVT::v4f32, 0/*#Ops*/,  // Results = #1
/* 76764*/          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)
/* 76772*/        /*Scope*/ 20, /*->76793*/
/* 76773*/          OPC_CheckPatternPredicate, 127, // (Subtarget->hasAVX()) && (!shouldOptForSize(MF))
/* 76775*/          OPC_EmitNode1, TARGET_VAL(X86::V_SET0), 0,
                        MVT::v4f32, 0/*#Ops*/,  // Results = #1
/* 76781*/          OPC_EmitInteger, MVT::i8, 1, 
/* 76784*/          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] })
/* 76793*/        /*Scope*/ 20, /*->76814*/
/* 76794*/          OPC_CheckPatternPredicate, 128, // (!shouldOptForSize(MF)) && (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/* 76796*/          OPC_EmitNode1, TARGET_VAL(X86::V_SET0), 0,
                        MVT::v4f32, 0/*#Ops*/,  // Results = #1
/* 76802*/          OPC_EmitInteger, MVT::i8, 1, 
/* 76805*/          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] })
/* 76814*/        /*Scope*/ 16, /*->76831*/
/* 76815*/          OPC_CheckPatternPredicate, 129, // (Subtarget->hasAVX512()) && (shouldOptForSize(MF))
/* 76817*/          OPC_EmitNode1, TARGET_VAL(X86::AVX512_128_SET0), 0,
                        MVT::v4f32, 0/*#Ops*/,  // Results = #1
/* 76823*/          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)
/* 76831*/        0, /*End of Scope*/
/* 76832*/      /*SwitchType*/ 74, MVT::v4f64,// ->76908
/* 76834*/        OPC_Scope, 35, /*->76871*/ // 2 children in Scope
/* 76836*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 76838*/          OPC_EmitInteger, MVT::i32, 0, 
/* 76841*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 76844*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 2,  // Results = #3
/* 76852*/          OPC_EmitNode1, TARGET_VAL(X86::VMOVZPQILo2PQIrr), 0,
                        MVT::v2f64, 1/*#Ops*/, 3,  // Results = #4
/* 76859*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 76862*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                        MVT::v4f64, 3/*#Ops*/, 1, 4, 5, 
                    // Src: (X86vzmovl:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src) - Complexity = 3
                    // Dst: (SUBREG_TO_REG:{ *:[v4f64] } 0:{ *:[i32] }, (VMOVZPQILo2PQIrr:{ *:[v2f64] } (EXTRACT_SUBREG:{ *:[v2f64] } VR256:{ *:[v4f64] }:$src, sub_xmm:{ *:[i32] })), sub_xmm:{ *:[i32] })
/* 76871*/        /*Scope*/ 35, /*->76907*/
/* 76872*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 76874*/          OPC_EmitInteger, MVT::i32, 0, 
/* 76877*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 76880*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 2,  // Results = #3
/* 76888*/          OPC_EmitNode1, TARGET_VAL(X86::VMOVZPQILo2PQIZrr), 0,
                        MVT::v2f64, 1/*#Ops*/, 3,  // Results = #4
/* 76895*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 76898*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                        MVT::v4f64, 3/*#Ops*/, 1, 4, 5, 
                    // Src: (X86vzmovl:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src) - Complexity = 3
                    // Dst: (SUBREG_TO_REG:{ *:[v4f64] } 0:{ *:[i32] }, (VMOVZPQILo2PQIZrr:{ *:[v2f64] } (EXTRACT_SUBREG:{ *:[v2f64] } VR256X:{ *:[v4f64] }:$src, sub_xmm:{ *:[i32] })), sub_xmm:{ *:[i32] })
/* 76907*/        0, /*End of Scope*/
/* 76908*/      /*SwitchType*/ 35, MVT::v8f64,// ->76945
/* 76910*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 76912*/        OPC_EmitInteger, MVT::i32, 0, 
/* 76915*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 76918*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v2f64, 2/*#Ops*/, 0, 2,  // Results = #3
/* 76926*/        OPC_EmitNode1, TARGET_VAL(X86::VMOVZPQILo2PQIZrr), 0,
                      MVT::v2f64, 1/*#Ops*/, 3,  // Results = #4
/* 76933*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 76936*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                      MVT::v8f64, 3/*#Ops*/, 1, 4, 5, 
                  // Src: (X86vzmovl:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src) - Complexity = 3
                  // Dst: (SUBREG_TO_REG:{ *:[v8f64] } 0:{ *:[i32] }, (VMOVZPQILo2PQIZrr:{ *:[v2f64] } (EXTRACT_SUBREG:{ *:[v2f64] } VR512:{ *:[v8f64] }:$src, sub_xmm:{ *:[i32] })), sub_xmm:{ *:[i32] })
/* 76945*/      /*SwitchType*/ 7|128,1/*135*/, MVT::v8f32,// ->77083
/* 76948*/        OPC_Scope, 42, /*->76992*/ // 3 children in Scope
/* 76950*/          OPC_CheckPatternPredicate, 125, // (shouldOptForSize(MF)) && (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 76952*/          OPC_EmitInteger, MVT::i32, 0, 
/* 76955*/          OPC_EmitNode1, TARGET_VAL(X86::V_SET0), 0,
                        MVT::v4f32, 0/*#Ops*/,  // Results = #2
/* 76961*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 76964*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 76972*/          OPC_EmitNode1, TARGET_VAL(X86::VMOVSSrr), 0,
                        MVT::v4f32, 2/*#Ops*/, 2, 4,  // Results = #5
/* 76980*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 76983*/          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] })
/* 76992*/        /*Scope*/ 46, /*->77039*/
/* 76993*/          OPC_CheckPatternPredicate, 127, // (Subtarget->hasAVX()) && (!shouldOptForSize(MF))
/* 76995*/          OPC_EmitInteger, MVT::i32, 0, 
/* 76998*/          OPC_EmitNode1, TARGET_VAL(X86::V_SET0), 0,
                        MVT::v4f32, 0/*#Ops*/,  // Results = #2
/* 77004*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 77007*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 77015*/          OPC_EmitInteger, MVT::i8, 1, 
/* 77018*/          OPC_EmitNode1, TARGET_VAL(X86::VBLENDPSrri), 0,
                        MVT::v4f32, 3/*#Ops*/, 2, 4, 5,  // Results = #6
/* 77027*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 77030*/          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] })
/* 77039*/        /*Scope*/ 42, /*->77082*/
/* 77040*/          OPC_CheckPatternPredicate, 129, // (Subtarget->hasAVX512()) && (shouldOptForSize(MF))
/* 77042*/          OPC_EmitInteger, MVT::i32, 0, 
/* 77045*/          OPC_EmitNode1, TARGET_VAL(X86::AVX512_128_SET0), 0,
                        MVT::v4f32, 0/*#Ops*/,  // Results = #2
/* 77051*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 77054*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 77062*/          OPC_EmitNode1, TARGET_VAL(X86::VMOVSSZrr), 0,
                        MVT::v4f32, 2/*#Ops*/, 2, 4,  // Results = #5
/* 77070*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 77073*/          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] })
/* 77082*/        0, /*End of Scope*/
/* 77083*/      /*SwitchType*/ 92, MVT::v16f32,// ->77177
/* 77085*/        OPC_Scope, 42, /*->77129*/ // 2 children in Scope
/* 77087*/          OPC_CheckPatternPredicate, 129, // (Subtarget->hasAVX512()) && (shouldOptForSize(MF))
/* 77089*/          OPC_EmitInteger, MVT::i32, 0, 
/* 77092*/          OPC_EmitNode1, TARGET_VAL(X86::AVX512_128_SET0), 0,
                        MVT::v4f32, 0/*#Ops*/,  // Results = #2
/* 77098*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 77101*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 77109*/          OPC_EmitNode1, TARGET_VAL(X86::VMOVSSZrr), 0,
                        MVT::v4f32, 2/*#Ops*/, 2, 4,  // Results = #5
/* 77117*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 77120*/          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] })
/* 77129*/        /*Scope*/ 46, /*->77176*/
/* 77130*/          OPC_CheckPatternPredicate, 130, // (Subtarget->hasAVX512()) && (!shouldOptForSize(MF))
/* 77132*/          OPC_EmitInteger, MVT::i32, 0, 
/* 77135*/          OPC_EmitNode1, TARGET_VAL(X86::V_SET0), 0,
                        MVT::v4f32, 0/*#Ops*/,  // Results = #2
/* 77141*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 77144*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 3,  // Results = #4
/* 77152*/          OPC_EmitInteger, MVT::i8, 1, 
/* 77155*/          OPC_EmitNode1, TARGET_VAL(X86::VBLENDPSrri), 0,
                        MVT::v4f32, 3/*#Ops*/, 2, 4, 5,  // Results = #6
/* 77164*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 77167*/          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] })
/* 77176*/        0, /*End of Scope*/
/* 77177*/      0, // EndSwitchType
/* 77178*/    0, /*End of Scope*/
/* 77179*/  /*SwitchOpcode*/ 6|128,9/*1158*/, TARGET_VAL(X86ISD::AND),// ->78341
/* 77183*/    OPC_Scope, 48|128,1/*176*/, /*->77362*/ // 8 children in Scope
/* 77186*/      OPC_MoveChild0,
/* 77187*/      OPC_SwitchOpcode /*2 cases */, 75, TARGET_VAL(ISD::XOR),// ->77266
/* 77191*/        OPC_RecordChild0, // #0 = $src1
/* 77192*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 77203*/        OPC_MoveParent,
/* 77204*/        OPC_MoveChild1,
/* 77205*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 77208*/        OPC_RecordMemRef,
/* 77209*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 77210*/        OPC_CheckFoldableChainNode,
/* 77211*/        OPC_RecordChild1, // #2 = $src2
/* 77212*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 77214*/        OPC_Scope, 24, /*->77240*/ // 2 children in Scope
/* 77216*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/* 77218*/          OPC_MoveParent,
/* 77219*/          OPC_CheckType, MVT::i32,
/* 77221*/          OPC_CheckPatternPredicate, 108, // (Subtarget->hasBMI())
/* 77223*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 77226*/          OPC_EmitMergeInputChains1_1,
/* 77227*/          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)
/* 77240*/        /*Scope*/ 24, /*->77265*/
/* 77241*/          OPC_CheckPredicate, 9, // Predicate_load
/* 77243*/          OPC_MoveParent,
/* 77244*/          OPC_CheckType, MVT::i64,
/* 77246*/          OPC_CheckPatternPredicate, 108, // (Subtarget->hasBMI())
/* 77248*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 77251*/          OPC_EmitMergeInputChains1_1,
/* 77252*/          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)
/* 77265*/        0, /*End of Scope*/
/* 77266*/      /*SwitchOpcode*/ 92, TARGET_VAL(ISD::LOAD),// ->77361
/* 77269*/        OPC_RecordMemRef,
/* 77270*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 77271*/        OPC_CheckFoldableChainNode,
/* 77272*/        OPC_RecordChild1, // #1 = $src2
/* 77273*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 77275*/        OPC_Scope, 41, /*->77318*/ // 2 children in Scope
/* 77277*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/* 77279*/          OPC_MoveParent,
/* 77280*/          OPC_MoveChild1,
/* 77281*/          OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 77284*/          OPC_RecordChild0, // #2 = $src1
/* 77285*/          OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 77296*/          OPC_MoveParent,
/* 77297*/          OPC_CheckType, MVT::i32,
/* 77299*/          OPC_CheckPatternPredicate, 108, // (Subtarget->hasBMI())
/* 77301*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 77304*/          OPC_EmitMergeInputChains1_0,
/* 77305*/          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)
/* 77318*/        /*Scope*/ 41, /*->77360*/
/* 77319*/          OPC_CheckPredicate, 9, // Predicate_load
/* 77321*/          OPC_MoveParent,
/* 77322*/          OPC_MoveChild1,
/* 77323*/          OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 77326*/          OPC_RecordChild0, // #2 = $src1
/* 77327*/          OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 77338*/          OPC_MoveParent,
/* 77339*/          OPC_CheckType, MVT::i64,
/* 77341*/          OPC_CheckPatternPredicate, 108, // (Subtarget->hasBMI())
/* 77343*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 77346*/          OPC_EmitMergeInputChains1_0,
/* 77347*/          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)
/* 77360*/        0, /*End of Scope*/
/* 77361*/      0, // EndSwitchOpcode
/* 77362*/    /*Scope*/ 105, /*->77468*/
/* 77363*/      OPC_RecordChild0, // #0 = $src1
/* 77364*/      OPC_MoveChild1,
/* 77365*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 77368*/      OPC_RecordMemRef,
/* 77369*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 77370*/      OPC_CheckFoldableChainNode,
/* 77371*/      OPC_RecordChild1, // #2 = $src2
/* 77372*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 77374*/      OPC_Scope, 22, /*->77398*/ // 4 children in Scope
/* 77376*/        OPC_CheckPredicate, 5, // Predicate_loadi8
/* 77378*/        OPC_MoveParent,
/* 77379*/        OPC_CheckType, MVT::i8,
/* 77381*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 77384*/        OPC_EmitMergeInputChains1_1,
/* 77385*/        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)
/* 77398*/      /*Scope*/ 22, /*->77421*/
/* 77399*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 77401*/        OPC_MoveParent,
/* 77402*/        OPC_CheckType, MVT::i16,
/* 77404*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 77407*/        OPC_EmitMergeInputChains1_1,
/* 77408*/        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)
/* 77421*/      /*Scope*/ 22, /*->77444*/
/* 77422*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 77424*/        OPC_MoveParent,
/* 77425*/        OPC_CheckType, MVT::i32,
/* 77427*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 77430*/        OPC_EmitMergeInputChains1_1,
/* 77431*/        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)
/* 77444*/      /*Scope*/ 22, /*->77467*/
/* 77445*/        OPC_CheckPredicate, 9, // Predicate_load
/* 77447*/        OPC_MoveParent,
/* 77448*/        OPC_CheckType, MVT::i64,
/* 77450*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 77453*/        OPC_EmitMergeInputChains1_1,
/* 77454*/        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)
/* 77467*/      0, /*End of Scope*/
/* 77468*/    /*Scope*/ 66|128,2/*322*/, /*->77792*/
/* 77470*/      OPC_MoveChild0,
/* 77471*/      OPC_SwitchOpcode /*3 cases */, 104, TARGET_VAL(ISD::LOAD),// ->77579
/* 77475*/        OPC_RecordMemRef,
/* 77476*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 77477*/        OPC_CheckFoldableChainNode,
/* 77478*/        OPC_RecordChild1, // #1 = $src2
/* 77479*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 77481*/        OPC_Scope, 23, /*->77506*/ // 4 children in Scope
/* 77483*/          OPC_CheckPredicate, 5, // Predicate_loadi8
/* 77485*/          OPC_MoveParent,
/* 77486*/          OPC_RecordChild1, // #2 = $src1
/* 77487*/          OPC_CheckType, MVT::i8,
/* 77489*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 77492*/          OPC_EmitMergeInputChains1_0,
/* 77493*/          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)
/* 77506*/        /*Scope*/ 23, /*->77530*/
/* 77507*/          OPC_CheckPredicate, 7, // Predicate_loadi16
/* 77509*/          OPC_MoveParent,
/* 77510*/          OPC_RecordChild1, // #2 = $src1
/* 77511*/          OPC_CheckType, MVT::i16,
/* 77513*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 77516*/          OPC_EmitMergeInputChains1_0,
/* 77517*/          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)
/* 77530*/        /*Scope*/ 23, /*->77554*/
/* 77531*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/* 77533*/          OPC_MoveParent,
/* 77534*/          OPC_RecordChild1, // #2 = $src1
/* 77535*/          OPC_CheckType, MVT::i32,
/* 77537*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 77540*/          OPC_EmitMergeInputChains1_0,
/* 77541*/          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)
/* 77554*/        /*Scope*/ 23, /*->77578*/
/* 77555*/          OPC_CheckPredicate, 9, // Predicate_load
/* 77557*/          OPC_MoveParent,
/* 77558*/          OPC_RecordChild1, // #2 = $src1
/* 77559*/          OPC_CheckType, MVT::i64,
/* 77561*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 77564*/          OPC_EmitMergeInputChains1_0,
/* 77565*/          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)
/* 77578*/        0, /*End of Scope*/
/* 77579*/      /*SwitchOpcode*/ 94, TARGET_VAL(ISD::XOR),// ->77676
/* 77582*/        OPC_RecordChild0, // #0 = $src
/* 77583*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 77594*/        OPC_MoveParent,
/* 77595*/        OPC_MoveChild1,
/* 77596*/        OPC_CheckOpcode, TARGET_VAL(ISD::ADD),
/* 77599*/        OPC_CheckChild0Same, 0,
/* 77601*/        OPC_Scope, 31, /*->77634*/ // 2 children in Scope
/* 77603*/          OPC_CheckChild1Integer, 1, 
/* 77605*/          OPC_MoveParent,
/* 77606*/          OPC_CheckPredicate, 54, // Predicate_and_flag_nocf
/* 77608*/          OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->77621
/* 77611*/            OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 77613*/            OPC_MorphNodeTo2, TARGET_VAL(X86::BLCIC32rr), 0,
                          MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (X86and_flag:{ *:[i32] }:{ *:[i32] } (xor:{ *:[i32] } GR32:{ *:[i32] }:$src, -1:{ *:[i32] }), (add:{ *:[i32] } GR32:{ *:[i32] }:$src, 1:{ *:[i32] }))<<P:Predicate_and_flag_nocf>> - Complexity = 20
                      // Dst: (BLCIC32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
/* 77621*/          /*SwitchType*/ 10, MVT::i64,// ->77633
/* 77623*/            OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 77625*/            OPC_MorphNodeTo2, TARGET_VAL(X86::BLCIC64rr), 0,
                          MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (X86and_flag:{ *:[i64] }:{ *:[i32] } (xor:{ *:[i64] } GR64:{ *:[i64] }:$src, -1:{ *:[i64] }), (add:{ *:[i64] } GR64:{ *:[i64] }:$src, 1:{ *:[i64] }))<<P:Predicate_and_flag_nocf>> - Complexity = 20
                      // Dst: (BLCIC64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
/* 77633*/          0, // EndSwitchType
/* 77634*/        /*Scope*/ 40, /*->77675*/
/* 77635*/          OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 77646*/          OPC_MoveParent,
/* 77647*/          OPC_CheckPredicate, 54, // Predicate_and_flag_nocf
/* 77649*/          OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->77662
/* 77652*/            OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 77654*/            OPC_MorphNodeTo2, TARGET_VAL(X86::TZMSK32rr), 0,
                          MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (X86and_flag:{ *:[i32] }:{ *:[i32] } (xor:{ *:[i32] } GR32:{ *:[i32] }:$src, -1:{ *:[i32] }), (add:{ *:[i32] } GR32:{ *:[i32] }:$src, -1:{ *:[i32] }))<<P:Predicate_and_flag_nocf>> - Complexity = 20
                      // Dst: (TZMSK32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
/* 77662*/          /*SwitchType*/ 10, MVT::i64,// ->77674
/* 77664*/            OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 77666*/            OPC_MorphNodeTo2, TARGET_VAL(X86::TZMSK64rr), 0,
                          MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (X86and_flag:{ *:[i64] }:{ *:[i32] } (xor:{ *:[i64] } GR64:{ *:[i64] }:$src, -1:{ *:[i64] }), (add:{ *:[i64] } GR64:{ *:[i64] }:$src, -1:{ *:[i64] }))<<P:Predicate_and_flag_nocf>> - Complexity = 20
                      // Dst: (TZMSK64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
/* 77674*/          0, // EndSwitchType
/* 77675*/        0, /*End of Scope*/
/* 77676*/      /*SwitchOpcode*/ 112, TARGET_VAL(ISD::ADD),// ->77791
/* 77679*/        OPC_RecordChild0, // #0 = $src
/* 77680*/        OPC_Scope, 49, /*->77731*/ // 2 children in Scope
/* 77682*/          OPC_CheckChild1Integer, 1, 
/* 77684*/          OPC_MoveParent,
/* 77685*/          OPC_MoveChild1,
/* 77686*/          OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 77689*/          OPC_CheckChild0Same, 0,
/* 77691*/          OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 77702*/          OPC_MoveParent,
/* 77703*/          OPC_CheckPredicate, 54, // Predicate_and_flag_nocf
/* 77705*/          OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->77718
/* 77708*/            OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 77710*/            OPC_MorphNodeTo2, TARGET_VAL(X86::BLCIC32rr), 0,
                          MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (X86and_flag:{ *:[i32] }:{ *:[i32] } (add:{ *:[i32] } GR32:{ *:[i32] }:$src, 1:{ *:[i32] }), (xor:{ *:[i32] } GR32:{ *:[i32] }:$src, -1:{ *:[i32] }))<<P:Predicate_and_flag_nocf>> - Complexity = 20
                      // Dst: (BLCIC32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
/* 77718*/          /*SwitchType*/ 10, MVT::i64,// ->77730
/* 77720*/            OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 77722*/            OPC_MorphNodeTo2, TARGET_VAL(X86::BLCIC64rr), 0,
                          MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (X86and_flag:{ *:[i64] }:{ *:[i32] } (add:{ *:[i64] } GR64:{ *:[i64] }:$src, 1:{ *:[i64] }), (xor:{ *:[i64] } GR64:{ *:[i64] }:$src, -1:{ *:[i64] }))<<P:Predicate_and_flag_nocf>> - Complexity = 20
                      // Dst: (BLCIC64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
/* 77730*/          0, // EndSwitchType
/* 77731*/        /*Scope*/ 58, /*->77790*/
/* 77732*/          OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 77743*/          OPC_MoveParent,
/* 77744*/          OPC_MoveChild1,
/* 77745*/          OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 77748*/          OPC_CheckChild0Same, 0,
/* 77750*/          OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 77761*/          OPC_MoveParent,
/* 77762*/          OPC_CheckPredicate, 54, // Predicate_and_flag_nocf
/* 77764*/          OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->77777
/* 77767*/            OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 77769*/            OPC_MorphNodeTo2, TARGET_VAL(X86::TZMSK32rr), 0,
                          MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (X86and_flag:{ *:[i32] }:{ *:[i32] } (add:{ *:[i32] } GR32:{ *:[i32] }:$src, -1:{ *:[i32] }), (xor:{ *:[i32] } GR32:{ *:[i32] }:$src, -1:{ *:[i32] }))<<P:Predicate_and_flag_nocf>> - Complexity = 20
                      // Dst: (TZMSK32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
/* 77777*/          /*SwitchType*/ 10, MVT::i64,// ->77789
/* 77779*/            OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 77781*/            OPC_MorphNodeTo2, TARGET_VAL(X86::TZMSK64rr), 0,
                          MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (X86and_flag:{ *:[i64] }:{ *:[i32] } (add:{ *:[i64] } GR64:{ *:[i64] }:$src, -1:{ *:[i64] }), (xor:{ *:[i64] } GR64:{ *:[i64] }:$src, -1:{ *:[i64] }))<<P:Predicate_and_flag_nocf>> - Complexity = 20
                      // Dst: (TZMSK64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
/* 77789*/          0, // EndSwitchType
/* 77790*/        0, /*End of Scope*/
/* 77791*/      0, // EndSwitchOpcode
/* 77792*/    /*Scope*/ 85, /*->77878*/
/* 77793*/      OPC_RecordChild0, // #0 = $src
/* 77794*/      OPC_MoveChild1,
/* 77795*/      OPC_SwitchOpcode /*2 cases */, 42, TARGET_VAL(ISD::ADD),// ->77841
/* 77799*/        OPC_CheckChild0Same, 0,
/* 77801*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 77812*/        OPC_MoveParent,
/* 77813*/        OPC_CheckPredicate, 54, // Predicate_and_flag_nocf
/* 77815*/        OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->77828
/* 77818*/          OPC_CheckPatternPredicate, 108, // (Subtarget->hasBMI())
/* 77820*/          OPC_MorphNodeTo2, TARGET_VAL(X86::BLSR32rr), 0,
                        MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (X86and_flag:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src, (add:{ *:[i32] } GR32:{ *:[i32] }:$src, -1:{ *:[i32] }))<<P:Predicate_and_flag_nocf>> - Complexity = 12
                    // Dst: (BLSR32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
/* 77828*/        /*SwitchType*/ 10, MVT::i64,// ->77840
/* 77830*/          OPC_CheckPatternPredicate, 108, // (Subtarget->hasBMI())
/* 77832*/          OPC_MorphNodeTo2, TARGET_VAL(X86::BLSR64rr), 0,
                        MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (X86and_flag:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src, (add:{ *:[i64] } GR64:{ *:[i64] }:$src, -1:{ *:[i64] }))<<P:Predicate_and_flag_nocf>> - Complexity = 12
                    // Dst: (BLSR64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
/* 77840*/        0, // EndSwitchType
/* 77841*/      /*SwitchOpcode*/ 33, TARGET_VAL(ISD::SUB),// ->77877
/* 77844*/        OPC_CheckChild0Integer, 0, 
/* 77846*/        OPC_CheckChild1Same, 0,
/* 77848*/        OPC_MoveParent,
/* 77849*/        OPC_CheckPredicate, 54, // Predicate_and_flag_nocf
/* 77851*/        OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->77864
/* 77854*/          OPC_CheckPatternPredicate, 108, // (Subtarget->hasBMI())
/* 77856*/          OPC_MorphNodeTo2, TARGET_VAL(X86::BLSI32rr), 0,
                        MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (X86and_flag:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src, (sub:{ *:[i32] } 0:{ *:[i32] }, GR32:{ *:[i32] }:$src))<<P:Predicate_and_flag_nocf>> - Complexity = 12
                    // Dst: (BLSI32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
/* 77864*/        /*SwitchType*/ 10, MVT::i64,// ->77876
/* 77866*/          OPC_CheckPatternPredicate, 108, // (Subtarget->hasBMI())
/* 77868*/          OPC_MorphNodeTo2, TARGET_VAL(X86::BLSI64rr), 0,
                        MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (X86and_flag:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src, (sub:{ *:[i64] } 0:{ *:[i64] }, GR64:{ *:[i64] }:$src))<<P:Predicate_and_flag_nocf>> - Complexity = 12
                    // Dst: (BLSI64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
/* 77876*/        0, // EndSwitchType
/* 77877*/      0, // EndSwitchOpcode
/* 77878*/    /*Scope*/ 86, /*->77965*/
/* 77879*/      OPC_MoveChild0,
/* 77880*/      OPC_SwitchOpcode /*2 cases */, 43, TARGET_VAL(ISD::ADD),// ->77927
/* 77884*/        OPC_RecordChild0, // #0 = $src
/* 77885*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 77896*/        OPC_MoveParent,
/* 77897*/        OPC_CheckChild1Same, 0,
/* 77899*/        OPC_CheckPredicate, 54, // Predicate_and_flag_nocf
/* 77901*/        OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->77914
/* 77904*/          OPC_CheckPatternPredicate, 108, // (Subtarget->hasBMI())
/* 77906*/          OPC_MorphNodeTo2, TARGET_VAL(X86::BLSR32rr), 0,
                        MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (X86and_flag:{ *:[i32] }:{ *:[i32] } (add:{ *:[i32] } GR32:{ *:[i32] }:$src, -1:{ *:[i32] }), GR32:{ *:[i32] }:$src)<<P:Predicate_and_flag_nocf>> - Complexity = 12
                    // Dst: (BLSR32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
/* 77914*/        /*SwitchType*/ 10, MVT::i64,// ->77926
/* 77916*/          OPC_CheckPatternPredicate, 108, // (Subtarget->hasBMI())
/* 77918*/          OPC_MorphNodeTo2, TARGET_VAL(X86::BLSR64rr), 0,
                        MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (X86and_flag:{ *:[i64] }:{ *:[i32] } (add:{ *:[i64] } GR64:{ *:[i64] }:$src, -1:{ *:[i64] }), GR64:{ *:[i64] }:$src)<<P:Predicate_and_flag_nocf>> - Complexity = 12
                    // Dst: (BLSR64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
/* 77926*/        0, // EndSwitchType
/* 77927*/      /*SwitchOpcode*/ 34, TARGET_VAL(ISD::SUB),// ->77964
/* 77930*/        OPC_CheckChild0Integer, 0, 
/* 77932*/        OPC_RecordChild1, // #0 = $src
/* 77933*/        OPC_MoveParent,
/* 77934*/        OPC_CheckChild1Same, 0,
/* 77936*/        OPC_CheckPredicate, 54, // Predicate_and_flag_nocf
/* 77938*/        OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->77951
/* 77941*/          OPC_CheckPatternPredicate, 108, // (Subtarget->hasBMI())
/* 77943*/          OPC_MorphNodeTo2, TARGET_VAL(X86::BLSI32rr), 0,
                        MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (X86and_flag:{ *:[i32] }:{ *:[i32] } (sub:{ *:[i32] } 0:{ *:[i32] }, GR32:{ *:[i32] }:$src), GR32:{ *:[i32] }:$src)<<P:Predicate_and_flag_nocf>> - Complexity = 12
                    // Dst: (BLSI32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
/* 77951*/        /*SwitchType*/ 10, MVT::i64,// ->77963
/* 77953*/          OPC_CheckPatternPredicate, 108, // (Subtarget->hasBMI())
/* 77955*/          OPC_MorphNodeTo2, TARGET_VAL(X86::BLSI64rr), 0,
                        MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (X86and_flag:{ *:[i64] }:{ *:[i32] } (sub:{ *:[i64] } 0:{ *:[i64] }, GR64:{ *:[i64] }:$src), GR64:{ *:[i64] }:$src)<<P:Predicate_and_flag_nocf>> - Complexity = 12
                    // Dst: (BLSI64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
/* 77963*/        0, // EndSwitchType
/* 77964*/      0, // EndSwitchOpcode
/* 77965*/    /*Scope*/ 100|128,1/*228*/, /*->78195*/
/* 77967*/      OPC_RecordChild0, // #0 = $src1
/* 77968*/      OPC_Scope, 13|128,1/*141*/, /*->78112*/ // 2 children in Scope
/* 77971*/        OPC_RecordChild1, // #1 = $src2
/* 77972*/        OPC_MoveChild1,
/* 77973*/        OPC_Scope, 62, /*->78037*/ // 5 children in Scope
/* 77975*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 77978*/          OPC_Scope, 18, /*->77998*/ // 3 children in Scope
/* 77980*/            OPC_CheckPredicate, 13, // Predicate_i16immSExt8
/* 77982*/            OPC_CheckPredicate, 14, // Predicate_i16immSExt8_su
/* 77984*/            OPC_MoveParent,
/* 77985*/            OPC_CheckType, MVT::i16,
/* 77987*/            OPC_EmitConvertToTarget, 1,
/* 77989*/            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)
/* 77998*/          /*Scope*/ 18, /*->78017*/
/* 77999*/            OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/* 78001*/            OPC_CheckPredicate, 14, // Predicate_i32immSExt8_su
/* 78003*/            OPC_MoveParent,
/* 78004*/            OPC_CheckType, MVT::i32,
/* 78006*/            OPC_EmitConvertToTarget, 1,
/* 78008*/            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)
/* 78017*/          /*Scope*/ 18, /*->78036*/
/* 78018*/            OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/* 78020*/            OPC_CheckPredicate, 14, // Predicate_i64immSExt8_su
/* 78022*/            OPC_MoveParent,
/* 78023*/            OPC_CheckType, MVT::i64,
/* 78025*/            OPC_EmitConvertToTarget, 1,
/* 78027*/            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)
/* 78036*/          0, /*End of Scope*/
/* 78037*/        /*Scope*/ 17, /*->78055*/
/* 78038*/          OPC_CheckPredicate, 15, // Predicate_relocImm8_su
/* 78040*/          OPC_MoveParent,
/* 78041*/          OPC_CheckType, MVT::i8,
/* 78043*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #2
/* 78046*/          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_relocImm8_su>>:$src2) - Complexity = 6
                    // Dst: (AND8ri:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1, relocImm:{ *:[i8] }:$src2)
/* 78055*/        /*Scope*/ 17, /*->78073*/
/* 78056*/          OPC_CheckPredicate, 15, // Predicate_relocImm16_su
/* 78058*/          OPC_MoveParent,
/* 78059*/          OPC_CheckType, MVT::i16,
/* 78061*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #2
/* 78064*/          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_relocImm16_su>>:$src2) - Complexity = 6
                    // Dst: (AND16ri:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, relocImm:{ *:[i16] }:$src2)
/* 78073*/        /*Scope*/ 17, /*->78091*/
/* 78074*/          OPC_CheckPredicate, 15, // Predicate_relocImm32_su
/* 78076*/          OPC_MoveParent,
/* 78077*/          OPC_CheckType, MVT::i32,
/* 78079*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #2
/* 78082*/          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_relocImm32_su>>:$src2) - Complexity = 6
                    // Dst: (AND32ri:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, relocImm:{ *:[i32] }:$src2)
/* 78091*/        /*Scope*/ 19, /*->78111*/
/* 78092*/          OPC_CheckPredicate, 16, // Predicate_i64relocImmSExt32
/* 78094*/          OPC_CheckPredicate, 15, // Predicate_i64relocImmSExt32_su
/* 78096*/          OPC_MoveParent,
/* 78097*/          OPC_CheckType, MVT::i64,
/* 78099*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #2
/* 78102*/          OPC_MorphNodeTo2, TARGET_VAL(X86::AND64ri32), 0,
                        MVT::i64, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86and_flag:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, relocImm:{ *:[i64] }<<P:Predicate_i64relocImmSExt32>><<P:Predicate_i64relocImmSExt32_su>>:$src2) - Complexity = 6
                    // Dst: (AND64ri32:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, relocImm:{ *:[i64] }:$src2)
/* 78111*/        0, /*End of Scope*/
/* 78112*/      /*Scope*/ 81, /*->78194*/
/* 78113*/        OPC_MoveChild0,
/* 78114*/        OPC_Scope, 18, /*->78134*/ // 4 children in Scope
/* 78116*/          OPC_CheckPredicate, 15, // Predicate_relocImm8_su
/* 78118*/          OPC_MoveParent,
/* 78119*/          OPC_RecordChild1, // #1 = $src1
/* 78120*/          OPC_CheckType, MVT::i8,
/* 78122*/          OPC_CheckComplexPat, /*CP*/1, /*#*/0, // selectRelocImm:$src2 #2
/* 78125*/          OPC_MorphNodeTo2, TARGET_VAL(X86::AND8ri), 0,
                        MVT::i8, MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (X86and_flag:{ *:[i8] }:{ *:[i32] } relocImm:{ *:[i8] }<<P:Predicate_relocImm8_su>>:$src2, GR8:{ *:[i8] }:$src1) - Complexity = 6
                    // Dst: (AND8ri:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1, relocImm:{ *:[i8] }:$src2)
/* 78134*/        /*Scope*/ 18, /*->78153*/
/* 78135*/          OPC_CheckPredicate, 15, // Predicate_relocImm16_su
/* 78137*/          OPC_MoveParent,
/* 78138*/          OPC_RecordChild1, // #1 = $src1
/* 78139*/          OPC_CheckType, MVT::i16,
/* 78141*/          OPC_CheckComplexPat, /*CP*/1, /*#*/0, // selectRelocImm:$src2 #2
/* 78144*/          OPC_MorphNodeTo2, TARGET_VAL(X86::AND16ri), 0,
                        MVT::i16, MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (X86and_flag:{ *:[i16] }:{ *:[i32] } relocImm:{ *:[i16] }<<P:Predicate_relocImm16_su>>:$src2, GR16:{ *:[i16] }:$src1) - Complexity = 6
                    // Dst: (AND16ri:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, relocImm:{ *:[i16] }:$src2)
/* 78153*/        /*Scope*/ 18, /*->78172*/
/* 78154*/          OPC_CheckPredicate, 15, // Predicate_relocImm32_su
/* 78156*/          OPC_MoveParent,
/* 78157*/          OPC_RecordChild1, // #1 = $src1
/* 78158*/          OPC_CheckType, MVT::i32,
/* 78160*/          OPC_CheckComplexPat, /*CP*/1, /*#*/0, // selectRelocImm:$src2 #2
/* 78163*/          OPC_MorphNodeTo2, TARGET_VAL(X86::AND32ri), 0,
                        MVT::i32, MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (X86and_flag:{ *:[i32] }:{ *:[i32] } relocImm:{ *:[i32] }<<P:Predicate_relocImm32_su>>:$src2, GR32:{ *:[i32] }:$src1) - Complexity = 6
                    // Dst: (AND32ri:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, relocImm:{ *:[i32] }:$src2)
/* 78172*/        /*Scope*/ 20, /*->78193*/
/* 78173*/          OPC_CheckPredicate, 16, // Predicate_i64relocImmSExt32
/* 78175*/          OPC_CheckPredicate, 15, // Predicate_i64relocImmSExt32_su
/* 78177*/          OPC_MoveParent,
/* 78178*/          OPC_RecordChild1, // #1 = $src1
/* 78179*/          OPC_CheckType, MVT::i64,
/* 78181*/          OPC_CheckComplexPat, /*CP*/1, /*#*/0, // selectRelocImm:$src2 #2
/* 78184*/          OPC_MorphNodeTo2, TARGET_VAL(X86::AND64ri32), 0,
                        MVT::i64, MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (X86and_flag:{ *:[i64] }:{ *:[i32] } relocImm:{ *:[i64] }<<P:Predicate_i64relocImmSExt32>><<P:Predicate_i64relocImmSExt32_su>>:$src2, GR64:{ *:[i64] }:$src1) - Complexity = 6
                    // Dst: (AND64ri32:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, relocImm:{ *:[i64] }:$src2)
/* 78193*/        0, /*End of Scope*/
/* 78194*/      0, /*End of Scope*/
/* 78195*/    /*Scope*/ 46, /*->78242*/
/* 78196*/      OPC_MoveChild0,
/* 78197*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 78200*/      OPC_RecordChild0, // #0 = $src1
/* 78201*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 78212*/      OPC_MoveParent,
/* 78213*/      OPC_RecordChild1, // #1 = $src2
/* 78214*/      OPC_SwitchType /*2 cases */, 11, MVT::i32,// ->78228
/* 78217*/        OPC_CheckPatternPredicate, 108, // (Subtarget->hasBMI())
/* 78219*/        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)
/* 78228*/      /*SwitchType*/ 11, MVT::i64,// ->78241
/* 78230*/        OPC_CheckPatternPredicate, 108, // (Subtarget->hasBMI())
/* 78232*/        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)
/* 78241*/      0, // EndSwitchType
/* 78242*/    /*Scope*/ 97, /*->78340*/
/* 78243*/      OPC_RecordChild0, // #0 = $src2
/* 78244*/      OPC_Scope, 45, /*->78291*/ // 2 children in Scope
/* 78246*/        OPC_MoveChild1,
/* 78247*/        OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 78250*/        OPC_RecordChild0, // #1 = $src1
/* 78251*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 78262*/        OPC_MoveParent,
/* 78263*/        OPC_SwitchType /*2 cases */, 11, MVT::i32,// ->78277
/* 78266*/          OPC_CheckPatternPredicate, 108, // (Subtarget->hasBMI())
/* 78268*/          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)
/* 78277*/        /*SwitchType*/ 11, MVT::i64,// ->78290
/* 78279*/          OPC_CheckPatternPredicate, 108, // (Subtarget->hasBMI())
/* 78281*/          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)
/* 78290*/        0, // EndSwitchType
/* 78291*/      /*Scope*/ 47, /*->78339*/
/* 78292*/        OPC_RecordChild1, // #1 = $src2
/* 78293*/        OPC_SwitchType /*4 cases */, 9, MVT::i8,// ->78305
/* 78296*/          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)
/* 78305*/        /*SwitchType*/ 9, MVT::i16,// ->78316
/* 78307*/          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)
/* 78316*/        /*SwitchType*/ 9, MVT::i32,// ->78327
/* 78318*/          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)
/* 78327*/        /*SwitchType*/ 9, MVT::i64,// ->78338
/* 78329*/          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)
/* 78338*/        0, // EndSwitchType
/* 78339*/      0, /*End of Scope*/
/* 78340*/    0, /*End of Scope*/
/* 78341*/  /*SwitchOpcode*/ 58|128,3/*442*/, TARGET_VAL(X86ISD::LADD),// ->78787
/* 78345*/    OPC_RecordMemRef,
/* 78346*/    OPC_RecordNode, // #0 = 'X86lock_add' chained node
/* 78347*/    OPC_RecordChild1, // #1 = $dst
/* 78348*/    OPC_Scope, 92, /*->78442*/ // 3 children in Scope
/* 78350*/      OPC_CheckChild2Integer, 1, 
/* 78352*/      OPC_Scope, 21, /*->78375*/ // 4 children in Scope
/* 78354*/        OPC_CheckChild2Type, MVT::i8,
/* 78356*/        OPC_CheckPredicate, 55, // Predicate_X86lock_add_nocf
/* 78358*/        OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || shouldOptForSize(MF))
/* 78360*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #2 #3 #4 #5 #6
/* 78363*/        OPC_EmitMergeInputChains1_0,
/* 78364*/        OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_INC8m), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86lock_add:{ *:[i32] } addr:{ *:[iPTR] }:$dst, 1:{ *:[i8] })<<P:Predicate_X86lock_add_nocf>> - Complexity = 27
                  // Dst: (LOCK_INC8m:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/* 78375*/      /*Scope*/ 21, /*->78397*/
/* 78376*/        OPC_CheckChild2Type, MVT::i16,
/* 78378*/        OPC_CheckPredicate, 55, // Predicate_X86lock_add_nocf
/* 78380*/        OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || shouldOptForSize(MF))
/* 78382*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #2 #3 #4 #5 #6
/* 78385*/        OPC_EmitMergeInputChains1_0,
/* 78386*/        OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_INC16m), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86lock_add:{ *:[i32] } addr:{ *:[iPTR] }:$dst, 1:{ *:[i16] })<<P:Predicate_X86lock_add_nocf>> - Complexity = 27
                  // Dst: (LOCK_INC16m:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/* 78397*/      /*Scope*/ 21, /*->78419*/
/* 78398*/        OPC_CheckChild2Type, MVT::i32,
/* 78400*/        OPC_CheckPredicate, 55, // Predicate_X86lock_add_nocf
/* 78402*/        OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || shouldOptForSize(MF))
/* 78404*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #2 #3 #4 #5 #6
/* 78407*/        OPC_EmitMergeInputChains1_0,
/* 78408*/        OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_INC32m), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86lock_add:{ *:[i32] } addr:{ *:[iPTR] }:$dst, 1:{ *:[i32] })<<P:Predicate_X86lock_add_nocf>> - Complexity = 27
                  // Dst: (LOCK_INC32m:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/* 78419*/      /*Scope*/ 21, /*->78441*/
/* 78420*/        OPC_CheckChild2Type, MVT::i64,
/* 78422*/        OPC_CheckPredicate, 55, // Predicate_X86lock_add_nocf
/* 78424*/        OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || shouldOptForSize(MF))
/* 78426*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #2 #3 #4 #5 #6
/* 78429*/        OPC_EmitMergeInputChains1_0,
/* 78430*/        OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_INC64m), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86lock_add:{ *:[i32] } addr:{ *:[iPTR] }:$dst, 1:{ *:[i64] })<<P:Predicate_X86lock_add_nocf>> - Complexity = 27
                  // Dst: (LOCK_INC64m:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/* 78441*/      0, /*End of Scope*/
/* 78442*/    /*Scope*/ 93, /*->78536*/
/* 78443*/      OPC_CheckChild2Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 78454*/      OPC_Scope, 19, /*->78475*/ // 4 children in Scope
/* 78456*/        OPC_CheckChild2Type, MVT::i8,
/* 78458*/        OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || shouldOptForSize(MF))
/* 78460*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #2 #3 #4 #5 #6
/* 78463*/        OPC_EmitMergeInputChains1_0,
/* 78464*/        OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_DEC8m), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86lock_add:{ *:[i32] } addr:{ *:[iPTR] }:$dst, -1:{ *:[i8] }) - Complexity = 26
                  // Dst: (LOCK_DEC8m:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/* 78475*/      /*Scope*/ 19, /*->78495*/
/* 78476*/        OPC_CheckChild2Type, MVT::i16,
/* 78478*/        OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || shouldOptForSize(MF))
/* 78480*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #2 #3 #4 #5 #6
/* 78483*/        OPC_EmitMergeInputChains1_0,
/* 78484*/        OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_DEC16m), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86lock_add:{ *:[i32] } addr:{ *:[iPTR] }:$dst, -1:{ *:[i16] }) - Complexity = 26
                  // Dst: (LOCK_DEC16m:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/* 78495*/      /*Scope*/ 19, /*->78515*/
/* 78496*/        OPC_CheckChild2Type, MVT::i32,
/* 78498*/        OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || shouldOptForSize(MF))
/* 78500*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #2 #3 #4 #5 #6
/* 78503*/        OPC_EmitMergeInputChains1_0,
/* 78504*/        OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_DEC32m), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86lock_add:{ *:[i32] } addr:{ *:[iPTR] }:$dst, -1:{ *:[i32] }) - Complexity = 26
                  // Dst: (LOCK_DEC32m:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/* 78515*/      /*Scope*/ 19, /*->78535*/
/* 78516*/        OPC_CheckChild2Type, MVT::i64,
/* 78518*/        OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || shouldOptForSize(MF))
/* 78520*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #2 #3 #4 #5 #6
/* 78523*/        OPC_EmitMergeInputChains1_0,
/* 78524*/        OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_DEC64m), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86lock_add:{ *:[i32] } addr:{ *:[iPTR] }:$dst, -1:{ *:[i64] }) - Complexity = 26
                  // Dst: (LOCK_DEC64m:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/* 78535*/      0, /*End of Scope*/
/* 78536*/    /*Scope*/ 120|128,1/*248*/, /*->78786*/
/* 78538*/      OPC_RecordChild2, // #2 = $src2
/* 78539*/      OPC_Scope, 39|128,1/*167*/, /*->78709*/ // 5 children in Scope
/* 78542*/        OPC_MoveChild2,
/* 78543*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 78546*/        OPC_SwitchType /*4 cases */, 44, MVT::i16,// ->78593
/* 78549*/          OPC_Scope, 21, /*->78572*/ // 2 children in Scope
/* 78551*/            OPC_CheckPredicate, 13, // Predicate_i16immSExt8
/* 78553*/            OPC_MoveParent,
/* 78554*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 78557*/            OPC_EmitMergeInputChains1_0,
/* 78558*/            OPC_EmitConvertToTarget, 2,
/* 78560*/            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)
/* 78572*/          /*Scope*/ 19, /*->78592*/
/* 78573*/            OPC_MoveParent,
/* 78574*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 78577*/            OPC_EmitMergeInputChains1_0,
/* 78578*/            OPC_EmitConvertToTarget, 2,
/* 78580*/            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)
/* 78592*/          0, /*End of Scope*/
/* 78593*/        /*SwitchType*/ 44, MVT::i32,// ->78639
/* 78595*/          OPC_Scope, 21, /*->78618*/ // 2 children in Scope
/* 78597*/            OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/* 78599*/            OPC_MoveParent,
/* 78600*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 78603*/            OPC_EmitMergeInputChains1_0,
/* 78604*/            OPC_EmitConvertToTarget, 2,
/* 78606*/            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)
/* 78618*/          /*Scope*/ 19, /*->78638*/
/* 78619*/            OPC_MoveParent,
/* 78620*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 78623*/            OPC_EmitMergeInputChains1_0,
/* 78624*/            OPC_EmitConvertToTarget, 2,
/* 78626*/            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)
/* 78638*/          0, /*End of Scope*/
/* 78639*/        /*SwitchType*/ 46, MVT::i64,// ->78687
/* 78641*/          OPC_Scope, 21, /*->78664*/ // 2 children in Scope
/* 78643*/            OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/* 78645*/            OPC_MoveParent,
/* 78646*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 78649*/            OPC_EmitMergeInputChains1_0,
/* 78650*/            OPC_EmitConvertToTarget, 2,
/* 78652*/            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)
/* 78664*/          /*Scope*/ 21, /*->78686*/
/* 78665*/            OPC_CheckPredicate, 38, // Predicate_i64immSExt32
/* 78667*/            OPC_MoveParent,
/* 78668*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 78671*/            OPC_EmitMergeInputChains1_0,
/* 78672*/            OPC_EmitConvertToTarget, 2,
/* 78674*/            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)
/* 78686*/          0, /*End of Scope*/
/* 78687*/        /*SwitchType*/ 19, MVT::i8,// ->78708
/* 78689*/          OPC_MoveParent,
/* 78690*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 78693*/          OPC_EmitMergeInputChains1_0,
/* 78694*/          OPC_EmitConvertToTarget, 2,
/* 78696*/          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)
/* 78708*/        0, // EndSwitchType
/* 78709*/      /*Scope*/ 18, /*->78728*/
/* 78710*/        OPC_CheckChild2Type, MVT::i8,
/* 78712*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 78715*/        OPC_EmitMergeInputChains1_0,
/* 78716*/        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)
/* 78728*/      /*Scope*/ 18, /*->78747*/
/* 78729*/        OPC_CheckChild2Type, MVT::i16,
/* 78731*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 78734*/        OPC_EmitMergeInputChains1_0,
/* 78735*/        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)
/* 78747*/      /*Scope*/ 18, /*->78766*/
/* 78748*/        OPC_CheckChild2Type, MVT::i32,
/* 78750*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 78753*/        OPC_EmitMergeInputChains1_0,
/* 78754*/        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)
/* 78766*/      /*Scope*/ 18, /*->78785*/
/* 78767*/        OPC_CheckChild2Type, MVT::i64,
/* 78769*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 78772*/        OPC_EmitMergeInputChains1_0,
/* 78773*/        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)
/* 78785*/      0, /*End of Scope*/
/* 78786*/    0, /*End of Scope*/
/* 78787*/  /*SwitchOpcode*/ 58|128,3/*442*/, TARGET_VAL(X86ISD::LSUB),// ->79233
/* 78791*/    OPC_RecordMemRef,
/* 78792*/    OPC_RecordNode, // #0 = 'X86lock_sub' chained node
/* 78793*/    OPC_RecordChild1, // #1 = $dst
/* 78794*/    OPC_Scope, 92, /*->78888*/ // 3 children in Scope
/* 78796*/      OPC_CheckChild2Integer, 1, 
/* 78798*/      OPC_Scope, 21, /*->78821*/ // 4 children in Scope
/* 78800*/        OPC_CheckChild2Type, MVT::i8,
/* 78802*/        OPC_CheckPredicate, 55, // Predicate_X86lock_sub_nocf
/* 78804*/        OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || shouldOptForSize(MF))
/* 78806*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #2 #3 #4 #5 #6
/* 78809*/        OPC_EmitMergeInputChains1_0,
/* 78810*/        OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_DEC8m), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86lock_sub:{ *:[i32] } addr:{ *:[iPTR] }:$dst, 1:{ *:[i8] })<<P:Predicate_X86lock_sub_nocf>> - Complexity = 27
                  // Dst: (LOCK_DEC8m:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/* 78821*/      /*Scope*/ 21, /*->78843*/
/* 78822*/        OPC_CheckChild2Type, MVT::i16,
/* 78824*/        OPC_CheckPredicate, 55, // Predicate_X86lock_sub_nocf
/* 78826*/        OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || shouldOptForSize(MF))
/* 78828*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #2 #3 #4 #5 #6
/* 78831*/        OPC_EmitMergeInputChains1_0,
/* 78832*/        OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_DEC16m), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86lock_sub:{ *:[i32] } addr:{ *:[iPTR] }:$dst, 1:{ *:[i16] })<<P:Predicate_X86lock_sub_nocf>> - Complexity = 27
                  // Dst: (LOCK_DEC16m:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/* 78843*/      /*Scope*/ 21, /*->78865*/
/* 78844*/        OPC_CheckChild2Type, MVT::i32,
/* 78846*/        OPC_CheckPredicate, 55, // Predicate_X86lock_sub_nocf
/* 78848*/        OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || shouldOptForSize(MF))
/* 78850*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #2 #3 #4 #5 #6
/* 78853*/        OPC_EmitMergeInputChains1_0,
/* 78854*/        OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_DEC32m), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86lock_sub:{ *:[i32] } addr:{ *:[iPTR] }:$dst, 1:{ *:[i32] })<<P:Predicate_X86lock_sub_nocf>> - Complexity = 27
                  // Dst: (LOCK_DEC32m:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/* 78865*/      /*Scope*/ 21, /*->78887*/
/* 78866*/        OPC_CheckChild2Type, MVT::i64,
/* 78868*/        OPC_CheckPredicate, 55, // Predicate_X86lock_sub_nocf
/* 78870*/        OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || shouldOptForSize(MF))
/* 78872*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #2 #3 #4 #5 #6
/* 78875*/        OPC_EmitMergeInputChains1_0,
/* 78876*/        OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_DEC64m), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86lock_sub:{ *:[i32] } addr:{ *:[iPTR] }:$dst, 1:{ *:[i64] })<<P:Predicate_X86lock_sub_nocf>> - Complexity = 27
                  // Dst: (LOCK_DEC64m:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/* 78887*/      0, /*End of Scope*/
/* 78888*/    /*Scope*/ 93, /*->78982*/
/* 78889*/      OPC_CheckChild2Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 78900*/      OPC_Scope, 19, /*->78921*/ // 4 children in Scope
/* 78902*/        OPC_CheckChild2Type, MVT::i8,
/* 78904*/        OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || shouldOptForSize(MF))
/* 78906*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #2 #3 #4 #5 #6
/* 78909*/        OPC_EmitMergeInputChains1_0,
/* 78910*/        OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_INC8m), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86lock_sub:{ *:[i32] } addr:{ *:[iPTR] }:$dst, -1:{ *:[i8] }) - Complexity = 26
                  // Dst: (LOCK_INC8m:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/* 78921*/      /*Scope*/ 19, /*->78941*/
/* 78922*/        OPC_CheckChild2Type, MVT::i16,
/* 78924*/        OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || shouldOptForSize(MF))
/* 78926*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #2 #3 #4 #5 #6
/* 78929*/        OPC_EmitMergeInputChains1_0,
/* 78930*/        OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_INC16m), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86lock_sub:{ *:[i32] } addr:{ *:[iPTR] }:$dst, -1:{ *:[i16] }) - Complexity = 26
                  // Dst: (LOCK_INC16m:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/* 78941*/      /*Scope*/ 19, /*->78961*/
/* 78942*/        OPC_CheckChild2Type, MVT::i32,
/* 78944*/        OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || shouldOptForSize(MF))
/* 78946*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #2 #3 #4 #5 #6
/* 78949*/        OPC_EmitMergeInputChains1_0,
/* 78950*/        OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_INC32m), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86lock_sub:{ *:[i32] } addr:{ *:[iPTR] }:$dst, -1:{ *:[i32] }) - Complexity = 26
                  // Dst: (LOCK_INC32m:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/* 78961*/      /*Scope*/ 19, /*->78981*/
/* 78962*/        OPC_CheckChild2Type, MVT::i64,
/* 78964*/        OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || shouldOptForSize(MF))
/* 78966*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #2 #3 #4 #5 #6
/* 78969*/        OPC_EmitMergeInputChains1_0,
/* 78970*/        OPC_MorphNodeTo1, TARGET_VAL(X86::LOCK_INC64m), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86lock_sub:{ *:[i32] } addr:{ *:[iPTR] }:$dst, -1:{ *:[i64] }) - Complexity = 26
                  // Dst: (LOCK_INC64m:{ *:[i32] } addr:{ *:[iPTR] }:$dst)
/* 78981*/      0, /*End of Scope*/
/* 78982*/    /*Scope*/ 120|128,1/*248*/, /*->79232*/
/* 78984*/      OPC_RecordChild2, // #2 = $src2
/* 78985*/      OPC_Scope, 39|128,1/*167*/, /*->79155*/ // 5 children in Scope
/* 78988*/        OPC_MoveChild2,
/* 78989*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 78992*/        OPC_SwitchType /*4 cases */, 44, MVT::i16,// ->79039
/* 78995*/          OPC_Scope, 21, /*->79018*/ // 2 children in Scope
/* 78997*/            OPC_CheckPredicate, 13, // Predicate_i16immSExt8
/* 78999*/            OPC_MoveParent,
/* 79000*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 79003*/            OPC_EmitMergeInputChains1_0,
/* 79004*/            OPC_EmitConvertToTarget, 2,
/* 79006*/            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)
/* 79018*/          /*Scope*/ 19, /*->79038*/
/* 79019*/            OPC_MoveParent,
/* 79020*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 79023*/            OPC_EmitMergeInputChains1_0,
/* 79024*/            OPC_EmitConvertToTarget, 2,
/* 79026*/            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)
/* 79038*/          0, /*End of Scope*/
/* 79039*/        /*SwitchType*/ 44, MVT::i32,// ->79085
/* 79041*/          OPC_Scope, 21, /*->79064*/ // 2 children in Scope
/* 79043*/            OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/* 79045*/            OPC_MoveParent,
/* 79046*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 79049*/            OPC_EmitMergeInputChains1_0,
/* 79050*/            OPC_EmitConvertToTarget, 2,
/* 79052*/            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)
/* 79064*/          /*Scope*/ 19, /*->79084*/
/* 79065*/            OPC_MoveParent,
/* 79066*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 79069*/            OPC_EmitMergeInputChains1_0,
/* 79070*/            OPC_EmitConvertToTarget, 2,
/* 79072*/            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)
/* 79084*/          0, /*End of Scope*/
/* 79085*/        /*SwitchType*/ 46, MVT::i64,// ->79133
/* 79087*/          OPC_Scope, 21, /*->79110*/ // 2 children in Scope
/* 79089*/            OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/* 79091*/            OPC_MoveParent,
/* 79092*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 79095*/            OPC_EmitMergeInputChains1_0,
/* 79096*/            OPC_EmitConvertToTarget, 2,
/* 79098*/            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)
/* 79110*/          /*Scope*/ 21, /*->79132*/
/* 79111*/            OPC_CheckPredicate, 38, // Predicate_i64immSExt32
/* 79113*/            OPC_MoveParent,
/* 79114*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 79117*/            OPC_EmitMergeInputChains1_0,
/* 79118*/            OPC_EmitConvertToTarget, 2,
/* 79120*/            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)
/* 79132*/          0, /*End of Scope*/
/* 79133*/        /*SwitchType*/ 19, MVT::i8,// ->79154
/* 79135*/          OPC_MoveParent,
/* 79136*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 79139*/          OPC_EmitMergeInputChains1_0,
/* 79140*/          OPC_EmitConvertToTarget, 2,
/* 79142*/          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)
/* 79154*/        0, // EndSwitchType
/* 79155*/      /*Scope*/ 18, /*->79174*/
/* 79156*/        OPC_CheckChild2Type, MVT::i8,
/* 79158*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 79161*/        OPC_EmitMergeInputChains1_0,
/* 79162*/        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)
/* 79174*/      /*Scope*/ 18, /*->79193*/
/* 79175*/        OPC_CheckChild2Type, MVT::i16,
/* 79177*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 79180*/        OPC_EmitMergeInputChains1_0,
/* 79181*/        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)
/* 79193*/      /*Scope*/ 18, /*->79212*/
/* 79194*/        OPC_CheckChild2Type, MVT::i32,
/* 79196*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 79199*/        OPC_EmitMergeInputChains1_0,
/* 79200*/        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)
/* 79212*/      /*Scope*/ 18, /*->79231*/
/* 79213*/        OPC_CheckChild2Type, MVT::i64,
/* 79215*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 79218*/        OPC_EmitMergeInputChains1_0,
/* 79219*/        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)
/* 79231*/      0, /*End of Scope*/
/* 79232*/    0, /*End of Scope*/
/* 79233*/  /*SwitchOpcode*/ 91, TARGET_VAL(X86ISD::LCMPXCHG_DAG),// ->79327
/* 79236*/    OPC_RecordMemRef,
/* 79237*/    OPC_RecordNode, // #0 = 'X86cas' chained node
/* 79238*/    OPC_CaptureGlueInput,
/* 79239*/    OPC_RecordChild1, // #1 = $ptr
/* 79240*/    OPC_RecordChild2, // #2 = $swap
/* 79241*/    OPC_Scope, 20, /*->79263*/ // 4 children in Scope
/* 79243*/      OPC_CheckChild2Type, MVT::i8,
/* 79245*/      OPC_CheckChild3Integer, 1, 
/* 79247*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/* 79250*/      OPC_EmitMergeInputChains1_0,
/* 79251*/      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)
/* 79263*/    /*Scope*/ 20, /*->79284*/
/* 79264*/      OPC_CheckChild2Type, MVT::i16,
/* 79266*/      OPC_CheckChild3Integer, 2, 
/* 79268*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/* 79271*/      OPC_EmitMergeInputChains1_0,
/* 79272*/      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)
/* 79284*/    /*Scope*/ 20, /*->79305*/
/* 79285*/      OPC_CheckChild2Type, MVT::i32,
/* 79287*/      OPC_CheckChild3Integer, 4, 
/* 79289*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/* 79292*/      OPC_EmitMergeInputChains1_0,
/* 79293*/      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)
/* 79305*/    /*Scope*/ 20, /*->79326*/
/* 79306*/      OPC_CheckChild2Type, MVT::i64,
/* 79308*/      OPC_CheckChild3Integer, 8, 
/* 79310*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/* 79313*/      OPC_EmitMergeInputChains1_0,
/* 79314*/      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)
/* 79326*/    0, /*End of Scope*/
/* 79327*/  /*SwitchOpcode*/ 114, TARGET_VAL(X86ISD::BSF),// ->79444
/* 79330*/    OPC_Scope, 77, /*->79409*/ // 2 children in Scope
/* 79332*/      OPC_MoveChild0,
/* 79333*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 79336*/      OPC_RecordMemRef,
/* 79337*/      OPC_RecordNode, // #0 = 'ld' chained node
/* 79338*/      OPC_RecordChild1, // #1 = $src
/* 79339*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 79341*/      OPC_Scope, 21, /*->79364*/ // 3 children in Scope
/* 79343*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 79345*/        OPC_MoveParent,
/* 79346*/        OPC_CheckType, MVT::i16,
/* 79348*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 79351*/        OPC_EmitMergeInputChains1_0,
/* 79352*/        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)
/* 79364*/      /*Scope*/ 21, /*->79386*/
/* 79365*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 79367*/        OPC_MoveParent,
/* 79368*/        OPC_CheckType, MVT::i32,
/* 79370*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 79373*/        OPC_EmitMergeInputChains1_0,
/* 79374*/        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)
/* 79386*/      /*Scope*/ 21, /*->79408*/
/* 79387*/        OPC_CheckPredicate, 9, // Predicate_load
/* 79389*/        OPC_MoveParent,
/* 79390*/        OPC_CheckType, MVT::i64,
/* 79392*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 79395*/        OPC_EmitMergeInputChains1_0,
/* 79396*/        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)
/* 79408*/      0, /*End of Scope*/
/* 79409*/    /*Scope*/ 33, /*->79443*/
/* 79410*/      OPC_RecordChild0, // #0 = $src
/* 79411*/      OPC_SwitchType /*3 cases */, 8, MVT::i16,// ->79422
/* 79414*/        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)
/* 79422*/      /*SwitchType*/ 8, MVT::i32,// ->79432
/* 79424*/        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)
/* 79432*/      /*SwitchType*/ 8, MVT::i64,// ->79442
/* 79434*/        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)
/* 79442*/      0, // EndSwitchType
/* 79443*/    0, /*End of Scope*/
/* 79444*/  /*SwitchOpcode*/ 114, TARGET_VAL(X86ISD::BSR),// ->79561
/* 79447*/    OPC_Scope, 77, /*->79526*/ // 2 children in Scope
/* 79449*/      OPC_MoveChild0,
/* 79450*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 79453*/      OPC_RecordMemRef,
/* 79454*/      OPC_RecordNode, // #0 = 'ld' chained node
/* 79455*/      OPC_RecordChild1, // #1 = $src
/* 79456*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 79458*/      OPC_Scope, 21, /*->79481*/ // 3 children in Scope
/* 79460*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 79462*/        OPC_MoveParent,
/* 79463*/        OPC_CheckType, MVT::i16,
/* 79465*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 79468*/        OPC_EmitMergeInputChains1_0,
/* 79469*/        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)
/* 79481*/      /*Scope*/ 21, /*->79503*/
/* 79482*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 79484*/        OPC_MoveParent,
/* 79485*/        OPC_CheckType, MVT::i32,
/* 79487*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 79490*/        OPC_EmitMergeInputChains1_0,
/* 79491*/        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)
/* 79503*/      /*Scope*/ 21, /*->79525*/
/* 79504*/        OPC_CheckPredicate, 9, // Predicate_load
/* 79506*/        OPC_MoveParent,
/* 79507*/        OPC_CheckType, MVT::i64,
/* 79509*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 79512*/        OPC_EmitMergeInputChains1_0,
/* 79513*/        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)
/* 79525*/      0, /*End of Scope*/
/* 79526*/    /*Scope*/ 33, /*->79560*/
/* 79527*/      OPC_RecordChild0, // #0 = $src
/* 79528*/      OPC_SwitchType /*3 cases */, 8, MVT::i16,// ->79539
/* 79531*/        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)
/* 79539*/      /*SwitchType*/ 8, MVT::i32,// ->79549
/* 79541*/        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)
/* 79549*/      /*SwitchType*/ 8, MVT::i64,// ->79559
/* 79551*/        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)
/* 79559*/      0, // EndSwitchType
/* 79560*/    0, /*End of Scope*/
/* 79561*/  /*SwitchOpcode*/ 121, TARGET_VAL(ISD::BSWAP),// ->79685
/* 79564*/    OPC_Scope, 80, /*->79646*/ // 2 children in Scope
/* 79566*/      OPC_MoveChild0,
/* 79567*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 79570*/      OPC_RecordMemRef,
/* 79571*/      OPC_RecordNode, // #0 = 'ld' chained node
/* 79572*/      OPC_RecordChild1, // #1 = $src
/* 79573*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 79575*/      OPC_Scope, 22, /*->79599*/ // 3 children in Scope
/* 79577*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 79579*/        OPC_MoveParent,
/* 79580*/        OPC_CheckType, MVT::i16,
/* 79582*/        OPC_CheckPatternPredicate, 22, // (Subtarget->hasMOVBE())
/* 79584*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 79587*/        OPC_EmitMergeInputChains1_0,
/* 79588*/        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)
/* 79599*/      /*Scope*/ 22, /*->79622*/
/* 79600*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 79602*/        OPC_MoveParent,
/* 79603*/        OPC_CheckType, MVT::i32,
/* 79605*/        OPC_CheckPatternPredicate, 22, // (Subtarget->hasMOVBE())
/* 79607*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 79610*/        OPC_EmitMergeInputChains1_0,
/* 79611*/        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)
/* 79622*/      /*Scope*/ 22, /*->79645*/
/* 79623*/        OPC_CheckPredicate, 9, // Predicate_load
/* 79625*/        OPC_MoveParent,
/* 79626*/        OPC_CheckType, MVT::i64,
/* 79628*/        OPC_CheckPatternPredicate, 22, // (Subtarget->hasMOVBE())
/* 79630*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 79633*/        OPC_EmitMergeInputChains1_0,
/* 79634*/        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)
/* 79645*/      0, /*End of Scope*/
/* 79646*/    /*Scope*/ 37, /*->79684*/
/* 79647*/      OPC_RecordChild0, // #0 = $src
/* 79648*/      OPC_SwitchType /*3 cases */, 7, MVT::i32,// ->79658
/* 79651*/        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)
/* 79658*/      /*SwitchType*/ 7, MVT::i64,// ->79667
/* 79660*/        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)
/* 79667*/      /*SwitchType*/ 14, MVT::i16,// ->79683
/* 79669*/        OPC_CheckPatternPredicate, 22, // (Subtarget->hasMOVBE())
/* 79671*/        OPC_EmitInteger, MVT::i8, 8, 
/* 79674*/        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] })
/* 79683*/      0, // EndSwitchType
/* 79684*/    0, /*End of Scope*/
/* 79685*/  /*SwitchOpcode*/ 47|128,5/*687*/, TARGET_VAL(ISD::CTLZ),// ->80376
/* 79689*/    OPC_Scope, 86, /*->79777*/ // 4 children in Scope
/* 79691*/      OPC_MoveChild0,
/* 79692*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 79695*/      OPC_RecordMemRef,
/* 79696*/      OPC_RecordNode, // #0 = 'ld' chained node
/* 79697*/      OPC_RecordChild1, // #1 = $src
/* 79698*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 79700*/      OPC_SwitchType /*3 cases */, 23, MVT::i16,// ->79726
/* 79703*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 79705*/        OPC_MoveParent,
/* 79706*/        OPC_CheckType, MVT::i16,
/* 79708*/        OPC_CheckPatternPredicate, 132, // (Subtarget->hasLZCNT())
/* 79710*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 79713*/        OPC_EmitMergeInputChains1_0,
/* 79714*/        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)
/* 79726*/      /*SwitchType*/ 23, MVT::i32,// ->79751
/* 79728*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 79730*/        OPC_MoveParent,
/* 79731*/        OPC_CheckType, MVT::i32,
/* 79733*/        OPC_CheckPatternPredicate, 132, // (Subtarget->hasLZCNT())
/* 79735*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 79738*/        OPC_EmitMergeInputChains1_0,
/* 79739*/        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)
/* 79751*/      /*SwitchType*/ 23, MVT::i64,// ->79776
/* 79753*/        OPC_CheckPredicate, 9, // Predicate_load
/* 79755*/        OPC_MoveParent,
/* 79756*/        OPC_CheckType, MVT::i64,
/* 79758*/        OPC_CheckPatternPredicate, 132, // (Subtarget->hasLZCNT())
/* 79760*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 79763*/        OPC_EmitMergeInputChains1_0,
/* 79764*/        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)
/* 79776*/      0, // EndSwitchType
/* 79777*/    /*Scope*/ 45, /*->79823*/
/* 79778*/      OPC_RecordChild0, // #0 = $src
/* 79779*/      OPC_SwitchType /*3 cases */, 12, MVT::i16,// ->79794
/* 79782*/        OPC_CheckChild0Type, MVT::i16,
/* 79784*/        OPC_CheckPatternPredicate, 132, // (Subtarget->hasLZCNT())
/* 79786*/        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)
/* 79794*/      /*SwitchType*/ 12, MVT::i32,// ->79808
/* 79796*/        OPC_CheckChild0Type, MVT::i32,
/* 79798*/        OPC_CheckPatternPredicate, 132, // (Subtarget->hasLZCNT())
/* 79800*/        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)
/* 79808*/      /*SwitchType*/ 12, MVT::i64,// ->79822
/* 79810*/        OPC_CheckChild0Type, MVT::i64,
/* 79812*/        OPC_CheckPatternPredicate, 132, // (Subtarget->hasLZCNT())
/* 79814*/        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)
/* 79822*/      0, // EndSwitchType
/* 79823*/    /*Scope*/ 43|128,2/*299*/, /*->80124*/
/* 79825*/      OPC_MoveChild0,
/* 79826*/      OPC_SwitchOpcode /*2 cases */, 13|128,1/*141*/, TARGET_VAL(ISD::LOAD),// ->79972
/* 79831*/        OPC_RecordMemRef,
/* 79832*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 79833*/        OPC_RecordChild1, // #1 = $src1
/* 79834*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 79836*/        OPC_CheckPredicate, 9, // Predicate_load
/* 79838*/        OPC_SwitchType /*6 cases */, 20, MVT::v8i64,// ->79861
/* 79841*/          OPC_MoveParent,
/* 79842*/          OPC_CheckType, MVT::v8i64,
/* 79844*/          OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/* 79846*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/* 79849*/          OPC_EmitMergeInputChains1_0,
/* 79850*/          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>>) - Complexity = 25
                    // Dst: (VPLZCNTQZrm:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)
/* 79861*/        /*SwitchType*/ 20, MVT::v4i64,// ->79883
/* 79863*/          OPC_MoveParent,
/* 79864*/          OPC_CheckType, MVT::v4i64,
/* 79866*/          OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/* 79868*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/* 79871*/          OPC_EmitMergeInputChains1_0,
/* 79872*/          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>>) - Complexity = 25
                    // Dst: (VPLZCNTQZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)
/* 79883*/        /*SwitchType*/ 20, MVT::v2i64,// ->79905
/* 79885*/          OPC_MoveParent,
/* 79886*/          OPC_CheckType, MVT::v2i64,
/* 79888*/          OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/* 79890*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/* 79893*/          OPC_EmitMergeInputChains1_0,
/* 79894*/          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>>) - Complexity = 25
                    // Dst: (VPLZCNTQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)
/* 79905*/        /*SwitchType*/ 20, MVT::v16i32,// ->79927
/* 79907*/          OPC_MoveParent,
/* 79908*/          OPC_CheckType, MVT::v16i32,
/* 79910*/          OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/* 79912*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/* 79915*/          OPC_EmitMergeInputChains1_0,
/* 79916*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ctlz:{ *:[v16i32] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPLZCNTDZrm:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)
/* 79927*/        /*SwitchType*/ 20, MVT::v8i32,// ->79949
/* 79929*/          OPC_MoveParent,
/* 79930*/          OPC_CheckType, MVT::v8i32,
/* 79932*/          OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/* 79934*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/* 79937*/          OPC_EmitMergeInputChains1_0,
/* 79938*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ctlz:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPLZCNTDZ256rm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)
/* 79949*/        /*SwitchType*/ 20, MVT::v4i32,// ->79971
/* 79951*/          OPC_MoveParent,
/* 79952*/          OPC_CheckType, MVT::v4i32,
/* 79954*/          OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/* 79956*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/* 79959*/          OPC_EmitMergeInputChains1_0,
/* 79960*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ctlz:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPLZCNTDZ128rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)
/* 79971*/        0, // EndSwitchType
/* 79972*/      /*SwitchOpcode*/ 19|128,1/*147*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->80123
/* 79976*/        OPC_RecordMemRef,
/* 79977*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/* 79978*/        OPC_RecordChild1, // #1 = $src1
/* 79979*/        OPC_Scope, 70, /*->80051*/ // 2 children in Scope
/* 79981*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 79983*/          OPC_SwitchType /*3 cases */, 20, MVT::v8i64,// ->80006
/* 79986*/            OPC_MoveParent,
/* 79987*/            OPC_CheckType, MVT::v8i64,
/* 79989*/            OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/* 79991*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/* 79994*/            OPC_EmitMergeInputChains1_0,
/* 79995*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (ctlz:{ *:[v8i64] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPLZCNTQZrmb:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)
/* 80006*/          /*SwitchType*/ 20, MVT::v4i64,// ->80028
/* 80008*/            OPC_MoveParent,
/* 80009*/            OPC_CheckType, MVT::v4i64,
/* 80011*/            OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/* 80013*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/* 80016*/            OPC_EmitMergeInputChains1_0,
/* 80017*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (ctlz:{ *:[v4i64] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPLZCNTQZ256rmb:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)
/* 80028*/          /*SwitchType*/ 20, MVT::v2i64,// ->80050
/* 80030*/            OPC_MoveParent,
/* 80031*/            OPC_CheckType, MVT::v2i64,
/* 80033*/            OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/* 80035*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/* 80038*/            OPC_EmitMergeInputChains1_0,
/* 80039*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (ctlz:{ *:[v2i64] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPLZCNTQZ128rmb:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)
/* 80050*/          0, // EndSwitchType
/* 80051*/        /*Scope*/ 70, /*->80122*/
/* 80052*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/* 80054*/          OPC_SwitchType /*3 cases */, 20, MVT::v16i32,// ->80077
/* 80057*/            OPC_MoveParent,
/* 80058*/            OPC_CheckType, MVT::v16i32,
/* 80060*/            OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/* 80062*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/* 80065*/            OPC_EmitMergeInputChains1_0,
/* 80066*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (ctlz:{ *:[v16i32] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPLZCNTDZrmb:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)
/* 80077*/          /*SwitchType*/ 20, MVT::v8i32,// ->80099
/* 80079*/            OPC_MoveParent,
/* 80080*/            OPC_CheckType, MVT::v8i32,
/* 80082*/            OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/* 80084*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/* 80087*/            OPC_EmitMergeInputChains1_0,
/* 80088*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (ctlz:{ *:[v8i32] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPLZCNTDZ256rmb:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)
/* 80099*/          /*SwitchType*/ 20, MVT::v4i32,// ->80121
/* 80101*/            OPC_MoveParent,
/* 80102*/            OPC_CheckType, MVT::v4i32,
/* 80104*/            OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/* 80106*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/* 80109*/            OPC_EmitMergeInputChains1_0,
/* 80110*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (ctlz:{ *:[v4i32] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPLZCNTDZ128rmb:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)
/* 80121*/          0, // EndSwitchType
/* 80122*/        0, /*End of Scope*/
/* 80123*/      0, // EndSwitchOpcode
/* 80124*/    /*Scope*/ 121|128,1/*249*/, /*->80375*/
/* 80126*/      OPC_RecordChild0, // #0 = $src1
/* 80127*/      OPC_SwitchType /*6 cases */, 11, MVT::v8i64,// ->80141
/* 80130*/        OPC_CheckChild0Type, MVT::v8i64,
/* 80132*/        OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/* 80134*/        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)
/* 80141*/      /*SwitchType*/ 53, MVT::v4i64,// ->80196
/* 80143*/        OPC_CheckChild0Type, MVT::v4i64,
/* 80145*/        OPC_Scope, 9, /*->80156*/ // 2 children in Scope
/* 80147*/          OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/* 80149*/          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)
/* 80156*/        /*Scope*/ 38, /*->80195*/
/* 80157*/          OPC_CheckPatternPredicate, 135, // (Subtarget->hasCDI()) && (!Subtarget->hasVLX())
/* 80159*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #1
/* 80165*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 80168*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/* 80177*/          OPC_EmitNode1, TARGET_VAL(X86::VPLZCNTQZrr), 0,
                        MVT::v64i8, 1/*#Ops*/, 3,  // Results = #4
/* 80184*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 80187*/          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] })
/* 80195*/        0, /*End of Scope*/
/* 80196*/      /*SwitchType*/ 53, MVT::v2i64,// ->80251
/* 80198*/        OPC_CheckChild0Type, MVT::v2i64,
/* 80200*/        OPC_Scope, 9, /*->80211*/ // 2 children in Scope
/* 80202*/          OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/* 80204*/          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)
/* 80211*/        /*Scope*/ 38, /*->80250*/
/* 80212*/          OPC_CheckPatternPredicate, 135, // (Subtarget->hasCDI()) && (!Subtarget->hasVLX())
/* 80214*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #1
/* 80220*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 80223*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/* 80232*/          OPC_EmitNode1, TARGET_VAL(X86::VPLZCNTQZrr), 0,
                        MVT::v64i8, 1/*#Ops*/, 3,  // Results = #4
/* 80239*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 80242*/          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] })
/* 80250*/        0, /*End of Scope*/
/* 80251*/      /*SwitchType*/ 11, MVT::v16i32,// ->80264
/* 80253*/        OPC_CheckChild0Type, MVT::v16i32,
/* 80255*/        OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/* 80257*/        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)
/* 80264*/      /*SwitchType*/ 53, MVT::v8i32,// ->80319
/* 80266*/        OPC_CheckChild0Type, MVT::v8i32,
/* 80268*/        OPC_Scope, 9, /*->80279*/ // 2 children in Scope
/* 80270*/          OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/* 80272*/          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)
/* 80279*/        /*Scope*/ 38, /*->80318*/
/* 80280*/          OPC_CheckPatternPredicate, 135, // (Subtarget->hasCDI()) && (!Subtarget->hasVLX())
/* 80282*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #1
/* 80288*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 80291*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/* 80300*/          OPC_EmitNode1, TARGET_VAL(X86::VPLZCNTDZrr), 0,
                        MVT::v64i8, 1/*#Ops*/, 3,  // Results = #4
/* 80307*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 80310*/          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] })
/* 80318*/        0, /*End of Scope*/
/* 80319*/      /*SwitchType*/ 53, MVT::v4i32,// ->80374
/* 80321*/        OPC_CheckChild0Type, MVT::v4i32,
/* 80323*/        OPC_Scope, 9, /*->80334*/ // 2 children in Scope
/* 80325*/          OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/* 80327*/          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)
/* 80334*/        /*Scope*/ 38, /*->80373*/
/* 80335*/          OPC_CheckPatternPredicate, 135, // (Subtarget->hasCDI()) && (!Subtarget->hasVLX())
/* 80337*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #1
/* 80343*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 80346*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/* 80355*/          OPC_EmitNode1, TARGET_VAL(X86::VPLZCNTDZrr), 0,
                        MVT::v64i8, 1/*#Ops*/, 3,  // Results = #4
/* 80362*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 80365*/          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] })
/* 80373*/        0, /*End of Scope*/
/* 80374*/      0, // EndSwitchType
/* 80375*/    0, /*End of Scope*/
/* 80376*/  /*SwitchOpcode*/ 7|128,1/*135*/, TARGET_VAL(ISD::CTTZ),// ->80515
/* 80380*/    OPC_Scope, 86, /*->80468*/ // 2 children in Scope
/* 80382*/      OPC_MoveChild0,
/* 80383*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 80386*/      OPC_RecordMemRef,
/* 80387*/      OPC_RecordNode, // #0 = 'ld' chained node
/* 80388*/      OPC_RecordChild1, // #1 = $src
/* 80389*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 80391*/      OPC_SwitchType /*3 cases */, 23, MVT::i16,// ->80417
/* 80394*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 80396*/        OPC_MoveParent,
/* 80397*/        OPC_CheckType, MVT::i16,
/* 80399*/        OPC_CheckPatternPredicate, 108, // (Subtarget->hasBMI())
/* 80401*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 80404*/        OPC_EmitMergeInputChains1_0,
/* 80405*/        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)
/* 80417*/      /*SwitchType*/ 23, MVT::i32,// ->80442
/* 80419*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 80421*/        OPC_MoveParent,
/* 80422*/        OPC_CheckType, MVT::i32,
/* 80424*/        OPC_CheckPatternPredicate, 108, // (Subtarget->hasBMI())
/* 80426*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 80429*/        OPC_EmitMergeInputChains1_0,
/* 80430*/        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)
/* 80442*/      /*SwitchType*/ 23, MVT::i64,// ->80467
/* 80444*/        OPC_CheckPredicate, 9, // Predicate_load
/* 80446*/        OPC_MoveParent,
/* 80447*/        OPC_CheckType, MVT::i64,
/* 80449*/        OPC_CheckPatternPredicate, 108, // (Subtarget->hasBMI())
/* 80451*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 80454*/        OPC_EmitMergeInputChains1_0,
/* 80455*/        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)
/* 80467*/      0, // EndSwitchType
/* 80468*/    /*Scope*/ 45, /*->80514*/
/* 80469*/      OPC_RecordChild0, // #0 = $src
/* 80470*/      OPC_SwitchType /*3 cases */, 12, MVT::i16,// ->80485
/* 80473*/        OPC_CheckChild0Type, MVT::i16,
/* 80475*/        OPC_CheckPatternPredicate, 108, // (Subtarget->hasBMI())
/* 80477*/        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)
/* 80485*/      /*SwitchType*/ 12, MVT::i32,// ->80499
/* 80487*/        OPC_CheckChild0Type, MVT::i32,
/* 80489*/        OPC_CheckPatternPredicate, 108, // (Subtarget->hasBMI())
/* 80491*/        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)
/* 80499*/      /*SwitchType*/ 12, MVT::i64,// ->80513
/* 80501*/        OPC_CheckChild0Type, MVT::i64,
/* 80503*/        OPC_CheckPatternPredicate, 108, // (Subtarget->hasBMI())
/* 80505*/        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)
/* 80513*/      0, // EndSwitchType
/* 80514*/    0, /*End of Scope*/
/* 80515*/  /*SwitchOpcode*/ 98, TARGET_VAL(X86ISD::BZHI),// ->80616
/* 80518*/    OPC_Scope, 64, /*->80584*/ // 2 children in Scope
/* 80520*/      OPC_MoveChild0,
/* 80521*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 80524*/      OPC_RecordMemRef,
/* 80525*/      OPC_RecordNode, // #0 = 'ld' chained node
/* 80526*/      OPC_CheckFoldableChainNode,
/* 80527*/      OPC_RecordChild1, // #1 = $src1
/* 80528*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 80530*/      OPC_Scope, 25, /*->80557*/ // 2 children in Scope
/* 80532*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 80534*/        OPC_MoveParent,
/* 80535*/        OPC_RecordChild1, // #2 = $src2
/* 80536*/        OPC_CheckType, MVT::i32,
/* 80538*/        OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI2())
/* 80540*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/* 80543*/        OPC_EmitMergeInputChains1_0,
/* 80544*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BZHI32rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                  // Src: (X86bzhi:{ *:[i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, GR32:{ *:[i32] }:$src2) - Complexity = 25
                  // Dst: (BZHI32rm:{ *:[i32] }:{ *:[i32] } addr:{ *:[iPTR] }:$src1, GR32:{ *:[i32] }:$src2)
/* 80557*/      /*Scope*/ 25, /*->80583*/
/* 80558*/        OPC_CheckPredicate, 9, // Predicate_load
/* 80560*/        OPC_MoveParent,
/* 80561*/        OPC_RecordChild1, // #2 = $src2
/* 80562*/        OPC_CheckType, MVT::i64,
/* 80564*/        OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI2())
/* 80566*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/* 80569*/        OPC_EmitMergeInputChains1_0,
/* 80570*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BZHI64rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i64, MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                  // Src: (X86bzhi:{ *:[i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR64:{ *:[i64] }:$src2) - Complexity = 25
                  // Dst: (BZHI64rm:{ *:[i64] }:{ *:[i32] } addr:{ *:[iPTR] }:$src1, GR64:{ *:[i64] }:$src2)
/* 80583*/      0, /*End of Scope*/
/* 80584*/    /*Scope*/ 30, /*->80615*/
/* 80585*/      OPC_RecordChild0, // #0 = $src1
/* 80586*/      OPC_RecordChild1, // #1 = $src2
/* 80587*/      OPC_SwitchType /*2 cases */, 11, MVT::i32,// ->80601
/* 80590*/        OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI2())
/* 80592*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BZHI32rr), 0,
                      MVT::i32, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86bzhi:{ *:[i32] } GR32:{ *:[i32] }:$src1, GR32:{ *:[i32] }:$src2) - Complexity = 3
                  // Dst: (BZHI32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, GR32:{ *:[i32] }:$src2)
/* 80601*/      /*SwitchType*/ 11, MVT::i64,// ->80614
/* 80603*/        OPC_CheckPatternPredicate, 37, // (Subtarget->hasBMI2())
/* 80605*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BZHI64rr), 0,
                      MVT::i64, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86bzhi:{ *:[i64] } GR64:{ *:[i64] }:$src1, GR64:{ *:[i64] }:$src2) - Complexity = 3
                  // Dst: (BZHI64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, GR64:{ *:[i64] }:$src2)
/* 80614*/      0, // EndSwitchType
/* 80615*/    0, /*End of Scope*/
/* 80616*/  /*SwitchOpcode*/ 63|128,8/*1087*/, TARGET_VAL(X86ISD::OR),// ->81707
/* 80620*/    OPC_Scope, 105, /*->80727*/ // 7 children in Scope
/* 80622*/      OPC_RecordChild0, // #0 = $src1
/* 80623*/      OPC_MoveChild1,
/* 80624*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 80627*/      OPC_RecordMemRef,
/* 80628*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 80629*/      OPC_CheckFoldableChainNode,
/* 80630*/      OPC_RecordChild1, // #2 = $src2
/* 80631*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 80633*/      OPC_Scope, 22, /*->80657*/ // 4 children in Scope
/* 80635*/        OPC_CheckPredicate, 5, // Predicate_loadi8
/* 80637*/        OPC_MoveParent,
/* 80638*/        OPC_CheckType, MVT::i8,
/* 80640*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 80643*/        OPC_EmitMergeInputChains1_1,
/* 80644*/        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)
/* 80657*/      /*Scope*/ 22, /*->80680*/
/* 80658*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 80660*/        OPC_MoveParent,
/* 80661*/        OPC_CheckType, MVT::i16,
/* 80663*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 80666*/        OPC_EmitMergeInputChains1_1,
/* 80667*/        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)
/* 80680*/      /*Scope*/ 22, /*->80703*/
/* 80681*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 80683*/        OPC_MoveParent,
/* 80684*/        OPC_CheckType, MVT::i32,
/* 80686*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 80689*/        OPC_EmitMergeInputChains1_1,
/* 80690*/        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)
/* 80703*/      /*Scope*/ 22, /*->80726*/
/* 80704*/        OPC_CheckPredicate, 9, // Predicate_load
/* 80706*/        OPC_MoveParent,
/* 80707*/        OPC_CheckType, MVT::i64,
/* 80709*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 80712*/        OPC_EmitMergeInputChains1_1,
/* 80713*/        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)
/* 80726*/      0, /*End of Scope*/
/* 80727*/    /*Scope*/ 108, /*->80836*/
/* 80728*/      OPC_MoveChild0,
/* 80729*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 80732*/      OPC_RecordMemRef,
/* 80733*/      OPC_RecordNode, // #0 = 'ld' chained node
/* 80734*/      OPC_CheckFoldableChainNode,
/* 80735*/      OPC_RecordChild1, // #1 = $src2
/* 80736*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 80738*/      OPC_Scope, 23, /*->80763*/ // 4 children in Scope
/* 80740*/        OPC_CheckPredicate, 5, // Predicate_loadi8
/* 80742*/        OPC_MoveParent,
/* 80743*/        OPC_RecordChild1, // #2 = $src1
/* 80744*/        OPC_CheckType, MVT::i8,
/* 80746*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 80749*/        OPC_EmitMergeInputChains1_0,
/* 80750*/        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)
/* 80763*/      /*Scope*/ 23, /*->80787*/
/* 80764*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 80766*/        OPC_MoveParent,
/* 80767*/        OPC_RecordChild1, // #2 = $src1
/* 80768*/        OPC_CheckType, MVT::i16,
/* 80770*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 80773*/        OPC_EmitMergeInputChains1_0,
/* 80774*/        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)
/* 80787*/      /*Scope*/ 23, /*->80811*/
/* 80788*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 80790*/        OPC_MoveParent,
/* 80791*/        OPC_RecordChild1, // #2 = $src1
/* 80792*/        OPC_CheckType, MVT::i32,
/* 80794*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 80797*/        OPC_EmitMergeInputChains1_0,
/* 80798*/        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)
/* 80811*/      /*Scope*/ 23, /*->80835*/
/* 80812*/        OPC_CheckPredicate, 9, // Predicate_load
/* 80814*/        OPC_MoveParent,
/* 80815*/        OPC_RecordChild1, // #2 = $src1
/* 80816*/        OPC_CheckType, MVT::i64,
/* 80818*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 80821*/        OPC_EmitMergeInputChains1_0,
/* 80822*/        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)
/* 80835*/      0, /*End of Scope*/
/* 80836*/    /*Scope*/ 54, /*->80891*/
/* 80837*/      OPC_RecordChild0, // #0 = $src
/* 80838*/      OPC_MoveChild1,
/* 80839*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 80842*/      OPC_MoveChild0,
/* 80843*/      OPC_CheckOpcode, TARGET_VAL(ISD::ADD),
/* 80846*/      OPC_CheckChild0Same, 0,
/* 80848*/      OPC_CheckChild1Integer, 1, 
/* 80850*/      OPC_MoveParent,
/* 80851*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 80862*/      OPC_MoveParent,
/* 80863*/      OPC_CheckPredicate, 54, // Predicate_or_flag_nocf
/* 80865*/      OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->80878
/* 80868*/        OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 80870*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BLCI32rr), 0,
                      MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (X86or_flag:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src, (xor:{ *:[i32] } (add:{ *:[i32] } GR32:{ *:[i32] }:$src, 1:{ *:[i32] }), -1:{ *:[i32] }))<<P:Predicate_or_flag_nocf>> - Complexity = 20
                  // Dst: (BLCI32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
/* 80878*/      /*SwitchType*/ 10, MVT::i64,// ->80890
/* 80880*/        OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 80882*/        OPC_MorphNodeTo2, TARGET_VAL(X86::BLCI64rr), 0,
                      MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (X86or_flag:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src, (xor:{ *:[i64] } (add:{ *:[i64] } GR64:{ *:[i64] }:$src, 1:{ *:[i64] }), -1:{ *:[i64] }))<<P:Predicate_or_flag_nocf>> - Complexity = 20
                  // Dst: (BLCI64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
/* 80890*/      0, // EndSwitchType
/* 80891*/    /*Scope*/ 14|128,2/*270*/, /*->81163*/
/* 80893*/      OPC_MoveChild0,
/* 80894*/      OPC_SwitchOpcode /*2 cases */, 20|128,1/*148*/, TARGET_VAL(ISD::XOR),// ->81047
/* 80899*/        OPC_Scope, 94, /*->80995*/ // 2 children in Scope
/* 80901*/          OPC_RecordChild0, // #0 = $src
/* 80902*/          OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 80913*/          OPC_MoveParent,
/* 80914*/          OPC_MoveChild1,
/* 80915*/          OPC_CheckOpcode, TARGET_VAL(ISD::ADD),
/* 80918*/          OPC_CheckChild0Same, 0,
/* 80920*/          OPC_Scope, 40, /*->80962*/ // 2 children in Scope
/* 80922*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 80933*/            OPC_MoveParent,
/* 80934*/            OPC_CheckPredicate, 54, // Predicate_or_flag_nocf
/* 80936*/            OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->80949
/* 80939*/              OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 80941*/              OPC_MorphNodeTo2, TARGET_VAL(X86::BLSIC32rr), 0,
                            MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                        // Src: (X86or_flag:{ *:[i32] }:{ *:[i32] } (xor:{ *:[i32] } GR32:{ *:[i32] }:$src, -1:{ *:[i32] }), (add:{ *:[i32] } GR32:{ *:[i32] }:$src, -1:{ *:[i32] }))<<P:Predicate_or_flag_nocf>> - Complexity = 20
                        // Dst: (BLSIC32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
/* 80949*/            /*SwitchType*/ 10, MVT::i64,// ->80961
/* 80951*/              OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 80953*/              OPC_MorphNodeTo2, TARGET_VAL(X86::BLSIC64rr), 0,
                            MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                        // Src: (X86or_flag:{ *:[i64] }:{ *:[i32] } (xor:{ *:[i64] } GR64:{ *:[i64] }:$src, -1:{ *:[i64] }), (add:{ *:[i64] } GR64:{ *:[i64] }:$src, -1:{ *:[i64] }))<<P:Predicate_or_flag_nocf>> - Complexity = 20
                        // Dst: (BLSIC64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
/* 80961*/            0, // EndSwitchType
/* 80962*/          /*Scope*/ 31, /*->80994*/
/* 80963*/            OPC_CheckChild1Integer, 1, 
/* 80965*/            OPC_MoveParent,
/* 80966*/            OPC_CheckPredicate, 54, // Predicate_or_flag_nocf
/* 80968*/            OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->80981
/* 80971*/              OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 80973*/              OPC_MorphNodeTo2, TARGET_VAL(X86::T1MSKC32rr), 0,
                            MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                        // Src: (X86or_flag:{ *:[i32] }:{ *:[i32] } (xor:{ *:[i32] } GR32:{ *:[i32] }:$src, -1:{ *:[i32] }), (add:{ *:[i32] } GR32:{ *:[i32] }:$src, 1:{ *:[i32] }))<<P:Predicate_or_flag_nocf>> - Complexity = 20
                        // Dst: (T1MSKC32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
/* 80981*/            /*SwitchType*/ 10, MVT::i64,// ->80993
/* 80983*/              OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 80985*/              OPC_MorphNodeTo2, TARGET_VAL(X86::T1MSKC64rr), 0,
                            MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                        // Src: (X86or_flag:{ *:[i64] }:{ *:[i32] } (xor:{ *:[i64] } GR64:{ *:[i64] }:$src, -1:{ *:[i64] }), (add:{ *:[i64] } GR64:{ *:[i64] }:$src, 1:{ *:[i64] }))<<P:Predicate_or_flag_nocf>> - Complexity = 20
                        // Dst: (T1MSKC64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
/* 80993*/            0, // EndSwitchType
/* 80994*/          0, /*End of Scope*/
/* 80995*/        /*Scope*/ 50, /*->81046*/
/* 80996*/          OPC_MoveChild0,
/* 80997*/          OPC_CheckOpcode, TARGET_VAL(ISD::ADD),
/* 81000*/          OPC_RecordChild0, // #0 = $src
/* 81001*/          OPC_CheckChild1Integer, 1, 
/* 81003*/          OPC_MoveParent,
/* 81004*/          OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 81015*/          OPC_MoveParent,
/* 81016*/          OPC_CheckChild1Same, 0,
/* 81018*/          OPC_CheckPredicate, 54, // Predicate_or_flag_nocf
/* 81020*/          OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->81033
/* 81023*/            OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 81025*/            OPC_MorphNodeTo2, TARGET_VAL(X86::BLCI32rr), 0,
                          MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (X86or_flag:{ *:[i32] }:{ *:[i32] } (xor:{ *:[i32] } (add:{ *:[i32] } GR32:{ *:[i32] }:$src, 1:{ *:[i32] }), -1:{ *:[i32] }), GR32:{ *:[i32] }:$src)<<P:Predicate_or_flag_nocf>> - Complexity = 20
                      // Dst: (BLCI32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
/* 81033*/          /*SwitchType*/ 10, MVT::i64,// ->81045
/* 81035*/            OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 81037*/            OPC_MorphNodeTo2, TARGET_VAL(X86::BLCI64rr), 0,
                          MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (X86or_flag:{ *:[i64] }:{ *:[i32] } (xor:{ *:[i64] } (add:{ *:[i64] } GR64:{ *:[i64] }:$src, 1:{ *:[i64] }), -1:{ *:[i64] }), GR64:{ *:[i64] }:$src)<<P:Predicate_or_flag_nocf>> - Complexity = 20
                      // Dst: (BLCI64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
/* 81045*/          0, // EndSwitchType
/* 81046*/        0, /*End of Scope*/
/* 81047*/      /*SwitchOpcode*/ 112, TARGET_VAL(ISD::ADD),// ->81162
/* 81050*/        OPC_RecordChild0, // #0 = $src
/* 81051*/        OPC_Scope, 58, /*->81111*/ // 2 children in Scope
/* 81053*/          OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 81064*/          OPC_MoveParent,
/* 81065*/          OPC_MoveChild1,
/* 81066*/          OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 81069*/          OPC_CheckChild0Same, 0,
/* 81071*/          OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 81082*/          OPC_MoveParent,
/* 81083*/          OPC_CheckPredicate, 54, // Predicate_or_flag_nocf
/* 81085*/          OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->81098
/* 81088*/            OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 81090*/            OPC_MorphNodeTo2, TARGET_VAL(X86::BLSIC32rr), 0,
                          MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (X86or_flag:{ *:[i32] }:{ *:[i32] } (add:{ *:[i32] } GR32:{ *:[i32] }:$src, -1:{ *:[i32] }), (xor:{ *:[i32] } GR32:{ *:[i32] }:$src, -1:{ *:[i32] }))<<P:Predicate_or_flag_nocf>> - Complexity = 20
                      // Dst: (BLSIC32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
/* 81098*/          /*SwitchType*/ 10, MVT::i64,// ->81110
/* 81100*/            OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 81102*/            OPC_MorphNodeTo2, TARGET_VAL(X86::BLSIC64rr), 0,
                          MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (X86or_flag:{ *:[i64] }:{ *:[i32] } (add:{ *:[i64] } GR64:{ *:[i64] }:$src, -1:{ *:[i64] }), (xor:{ *:[i64] } GR64:{ *:[i64] }:$src, -1:{ *:[i64] }))<<P:Predicate_or_flag_nocf>> - Complexity = 20
                      // Dst: (BLSIC64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
/* 81110*/          0, // EndSwitchType
/* 81111*/        /*Scope*/ 49, /*->81161*/
/* 81112*/          OPC_CheckChild1Integer, 1, 
/* 81114*/          OPC_MoveParent,
/* 81115*/          OPC_MoveChild1,
/* 81116*/          OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 81119*/          OPC_CheckChild0Same, 0,
/* 81121*/          OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 81132*/          OPC_MoveParent,
/* 81133*/          OPC_CheckPredicate, 54, // Predicate_or_flag_nocf
/* 81135*/          OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->81148
/* 81138*/            OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 81140*/            OPC_MorphNodeTo2, TARGET_VAL(X86::T1MSKC32rr), 0,
                          MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (X86or_flag:{ *:[i32] }:{ *:[i32] } (add:{ *:[i32] } GR32:{ *:[i32] }:$src, 1:{ *:[i32] }), (xor:{ *:[i32] } GR32:{ *:[i32] }:$src, -1:{ *:[i32] }))<<P:Predicate_or_flag_nocf>> - Complexity = 20
                      // Dst: (T1MSKC32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
/* 81148*/          /*SwitchType*/ 10, MVT::i64,// ->81160
/* 81150*/            OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 81152*/            OPC_MorphNodeTo2, TARGET_VAL(X86::T1MSKC64rr), 0,
                          MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (X86or_flag:{ *:[i64] }:{ *:[i32] } (add:{ *:[i64] } GR64:{ *:[i64] }:$src, 1:{ *:[i64] }), (xor:{ *:[i64] } GR64:{ *:[i64] }:$src, -1:{ *:[i64] }))<<P:Predicate_or_flag_nocf>> - Complexity = 20
                      // Dst: (T1MSKC64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
/* 81160*/          0, // EndSwitchType
/* 81161*/        0, /*End of Scope*/
/* 81162*/      0, // EndSwitchOpcode
/* 81163*/    /*Scope*/ 1|128,1/*129*/, /*->81294*/
/* 81165*/      OPC_RecordChild0, // #0 = $src
/* 81166*/      OPC_MoveChild1,
/* 81167*/      OPC_SwitchOpcode /*2 cases */, 42, TARGET_VAL(ISD::SUB),// ->81213
/* 81171*/        OPC_CheckChild0Integer, 126|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551614*/, 
/* 81182*/        OPC_CheckChild1Same, 0,
/* 81184*/        OPC_MoveParent,
/* 81185*/        OPC_CheckPredicate, 54, // Predicate_or_flag_nocf
/* 81187*/        OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->81200
/* 81190*/          OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 81192*/          OPC_MorphNodeTo2, TARGET_VAL(X86::BLCI32rr), 0,
                        MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (X86or_flag:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src, (sub:{ *:[i32] } -2:{ *:[i32] }, GR32:{ *:[i32] }:$src))<<P:Predicate_or_flag_nocf>> - Complexity = 12
                    // Dst: (BLCI32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
/* 81200*/        /*SwitchType*/ 10, MVT::i64,// ->81212
/* 81202*/          OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 81204*/          OPC_MorphNodeTo2, TARGET_VAL(X86::BLCI64rr), 0,
                        MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (X86or_flag:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src, (sub:{ *:[i64] } -2:{ *:[i64] }, GR64:{ *:[i64] }:$src))<<P:Predicate_or_flag_nocf>> - Complexity = 12
                    // Dst: (BLCI64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
/* 81212*/        0, // EndSwitchType
/* 81213*/      /*SwitchOpcode*/ 77, TARGET_VAL(ISD::ADD),// ->81293
/* 81216*/        OPC_CheckChild0Same, 0,
/* 81218*/        OPC_Scope, 31, /*->81251*/ // 2 children in Scope
/* 81220*/          OPC_CheckChild1Integer, 1, 
/* 81222*/          OPC_MoveParent,
/* 81223*/          OPC_CheckPredicate, 54, // Predicate_or_flag_nocf
/* 81225*/          OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->81238
/* 81228*/            OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 81230*/            OPC_MorphNodeTo2, TARGET_VAL(X86::BLCS32rr), 0,
                          MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (X86or_flag:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src, (add:{ *:[i32] } GR32:{ *:[i32] }:$src, 1:{ *:[i32] }))<<P:Predicate_or_flag_nocf>> - Complexity = 12
                      // Dst: (BLCS32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
/* 81238*/          /*SwitchType*/ 10, MVT::i64,// ->81250
/* 81240*/            OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 81242*/            OPC_MorphNodeTo2, TARGET_VAL(X86::BLCS64rr), 0,
                          MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (X86or_flag:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src, (add:{ *:[i64] } GR64:{ *:[i64] }:$src, 1:{ *:[i64] }))<<P:Predicate_or_flag_nocf>> - Complexity = 12
                      // Dst: (BLCS64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
/* 81250*/          0, // EndSwitchType
/* 81251*/        /*Scope*/ 40, /*->81292*/
/* 81252*/          OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 81263*/          OPC_MoveParent,
/* 81264*/          OPC_CheckPredicate, 54, // Predicate_or_flag_nocf
/* 81266*/          OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->81279
/* 81269*/            OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 81271*/            OPC_MorphNodeTo2, TARGET_VAL(X86::BLSFILL32rr), 0,
                          MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (X86or_flag:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src, (add:{ *:[i32] } GR32:{ *:[i32] }:$src, -1:{ *:[i32] }))<<P:Predicate_or_flag_nocf>> - Complexity = 12
                      // Dst: (BLSFILL32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
/* 81279*/          /*SwitchType*/ 10, MVT::i64,// ->81291
/* 81281*/            OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 81283*/            OPC_MorphNodeTo2, TARGET_VAL(X86::BLSFILL64rr), 0,
                          MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (X86or_flag:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src, (add:{ *:[i64] } GR64:{ *:[i64] }:$src, -1:{ *:[i64] }))<<P:Predicate_or_flag_nocf>> - Complexity = 12
                      // Dst: (BLSFILL64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
/* 81291*/          0, // EndSwitchType
/* 81292*/        0, /*End of Scope*/
/* 81293*/      0, // EndSwitchOpcode
/* 81294*/    /*Scope*/ 4|128,1/*132*/, /*->81428*/
/* 81296*/      OPC_MoveChild0,
/* 81297*/      OPC_SwitchOpcode /*2 cases */, 43, TARGET_VAL(ISD::SUB),// ->81344
/* 81301*/        OPC_CheckChild0Integer, 126|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551614*/, 
/* 81312*/        OPC_RecordChild1, // #0 = $src
/* 81313*/        OPC_MoveParent,
/* 81314*/        OPC_CheckChild1Same, 0,
/* 81316*/        OPC_CheckPredicate, 54, // Predicate_or_flag_nocf
/* 81318*/        OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->81331
/* 81321*/          OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 81323*/          OPC_MorphNodeTo2, TARGET_VAL(X86::BLCI32rr), 0,
                        MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (X86or_flag:{ *:[i32] }:{ *:[i32] } (sub:{ *:[i32] } -2:{ *:[i32] }, GR32:{ *:[i32] }:$src), GR32:{ *:[i32] }:$src)<<P:Predicate_or_flag_nocf>> - Complexity = 12
                    // Dst: (BLCI32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
/* 81331*/        /*SwitchType*/ 10, MVT::i64,// ->81343
/* 81333*/          OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 81335*/          OPC_MorphNodeTo2, TARGET_VAL(X86::BLCI64rr), 0,
                        MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (X86or_flag:{ *:[i64] }:{ *:[i32] } (sub:{ *:[i64] } -2:{ *:[i64] }, GR64:{ *:[i64] }:$src), GR64:{ *:[i64] }:$src)<<P:Predicate_or_flag_nocf>> - Complexity = 12
                    // Dst: (BLCI64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
/* 81343*/        0, // EndSwitchType
/* 81344*/      /*SwitchOpcode*/ 80, TARGET_VAL(ISD::ADD),// ->81427
/* 81347*/        OPC_RecordChild0, // #0 = $src
/* 81348*/        OPC_Scope, 33, /*->81383*/ // 2 children in Scope
/* 81350*/          OPC_CheckChild1Integer, 1, 
/* 81352*/          OPC_MoveParent,
/* 81353*/          OPC_CheckChild1Same, 0,
/* 81355*/          OPC_CheckPredicate, 54, // Predicate_or_flag_nocf
/* 81357*/          OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->81370
/* 81360*/            OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 81362*/            OPC_MorphNodeTo2, TARGET_VAL(X86::BLCS32rr), 0,
                          MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (X86or_flag:{ *:[i32] }:{ *:[i32] } (add:{ *:[i32] } GR32:{ *:[i32] }:$src, 1:{ *:[i32] }), GR32:{ *:[i32] }:$src)<<P:Predicate_or_flag_nocf>> - Complexity = 12
                      // Dst: (BLCS32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
/* 81370*/          /*SwitchType*/ 10, MVT::i64,// ->81382
/* 81372*/            OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 81374*/            OPC_MorphNodeTo2, TARGET_VAL(X86::BLCS64rr), 0,
                          MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (X86or_flag:{ *:[i64] }:{ *:[i32] } (add:{ *:[i64] } GR64:{ *:[i64] }:$src, 1:{ *:[i64] }), GR64:{ *:[i64] }:$src)<<P:Predicate_or_flag_nocf>> - Complexity = 12
                      // Dst: (BLCS64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
/* 81382*/          0, // EndSwitchType
/* 81383*/        /*Scope*/ 42, /*->81426*/
/* 81384*/          OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 81395*/          OPC_MoveParent,
/* 81396*/          OPC_CheckChild1Same, 0,
/* 81398*/          OPC_CheckPredicate, 54, // Predicate_or_flag_nocf
/* 81400*/          OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->81413
/* 81403*/            OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 81405*/            OPC_MorphNodeTo2, TARGET_VAL(X86::BLSFILL32rr), 0,
                          MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (X86or_flag:{ *:[i32] }:{ *:[i32] } (add:{ *:[i32] } GR32:{ *:[i32] }:$src, -1:{ *:[i32] }), GR32:{ *:[i32] }:$src)<<P:Predicate_or_flag_nocf>> - Complexity = 12
                      // Dst: (BLSFILL32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
/* 81413*/          /*SwitchType*/ 10, MVT::i64,// ->81425
/* 81415*/            OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 81417*/            OPC_MorphNodeTo2, TARGET_VAL(X86::BLSFILL64rr), 0,
                          MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (X86or_flag:{ *:[i64] }:{ *:[i32] } (add:{ *:[i64] } GR64:{ *:[i64] }:$src, -1:{ *:[i64] }), GR64:{ *:[i64] }:$src)<<P:Predicate_or_flag_nocf>> - Complexity = 12
                      // Dst: (BLSFILL64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
/* 81425*/          0, // EndSwitchType
/* 81426*/        0, /*End of Scope*/
/* 81427*/      0, // EndSwitchOpcode
/* 81428*/    /*Scope*/ 20|128,2/*276*/, /*->81706*/
/* 81430*/      OPC_RecordChild0, // #0 = $src1
/* 81431*/      OPC_Scope, 13|128,1/*141*/, /*->81575*/ // 3 children in Scope
/* 81434*/        OPC_RecordChild1, // #1 = $src2
/* 81435*/        OPC_MoveChild1,
/* 81436*/        OPC_Scope, 62, /*->81500*/ // 5 children in Scope
/* 81438*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 81441*/          OPC_Scope, 18, /*->81461*/ // 3 children in Scope
/* 81443*/            OPC_CheckPredicate, 13, // Predicate_i16immSExt8
/* 81445*/            OPC_CheckPredicate, 14, // Predicate_i16immSExt8_su
/* 81447*/            OPC_MoveParent,
/* 81448*/            OPC_CheckType, MVT::i16,
/* 81450*/            OPC_EmitConvertToTarget, 1,
/* 81452*/            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)
/* 81461*/          /*Scope*/ 18, /*->81480*/
/* 81462*/            OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/* 81464*/            OPC_CheckPredicate, 14, // Predicate_i32immSExt8_su
/* 81466*/            OPC_MoveParent,
/* 81467*/            OPC_CheckType, MVT::i32,
/* 81469*/            OPC_EmitConvertToTarget, 1,
/* 81471*/            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)
/* 81480*/          /*Scope*/ 18, /*->81499*/
/* 81481*/            OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/* 81483*/            OPC_CheckPredicate, 14, // Predicate_i64immSExt8_su
/* 81485*/            OPC_MoveParent,
/* 81486*/            OPC_CheckType, MVT::i64,
/* 81488*/            OPC_EmitConvertToTarget, 1,
/* 81490*/            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)
/* 81499*/          0, /*End of Scope*/
/* 81500*/        /*Scope*/ 17, /*->81518*/
/* 81501*/          OPC_CheckPredicate, 15, // Predicate_relocImm8_su
/* 81503*/          OPC_MoveParent,
/* 81504*/          OPC_CheckType, MVT::i8,
/* 81506*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #2
/* 81509*/          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_relocImm8_su>>:$src2) - Complexity = 6
                    // Dst: (OR8ri:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1, relocImm:{ *:[i8] }:$src2)
/* 81518*/        /*Scope*/ 17, /*->81536*/
/* 81519*/          OPC_CheckPredicate, 15, // Predicate_relocImm16_su
/* 81521*/          OPC_MoveParent,
/* 81522*/          OPC_CheckType, MVT::i16,
/* 81524*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #2
/* 81527*/          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_relocImm16_su>>:$src2) - Complexity = 6
                    // Dst: (OR16ri:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, relocImm:{ *:[i16] }:$src2)
/* 81536*/        /*Scope*/ 17, /*->81554*/
/* 81537*/          OPC_CheckPredicate, 15, // Predicate_relocImm32_su
/* 81539*/          OPC_MoveParent,
/* 81540*/          OPC_CheckType, MVT::i32,
/* 81542*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #2
/* 81545*/          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_relocImm32_su>>:$src2) - Complexity = 6
                    // Dst: (OR32ri:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, relocImm:{ *:[i32] }:$src2)
/* 81554*/        /*Scope*/ 19, /*->81574*/
/* 81555*/          OPC_CheckPredicate, 16, // Predicate_i64relocImmSExt32
/* 81557*/          OPC_CheckPredicate, 15, // Predicate_i64relocImmSExt32_su
/* 81559*/          OPC_MoveParent,
/* 81560*/          OPC_CheckType, MVT::i64,
/* 81562*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #2
/* 81565*/          OPC_MorphNodeTo2, TARGET_VAL(X86::OR64ri32), 0,
                        MVT::i64, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86or_flag:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, relocImm:{ *:[i64] }<<P:Predicate_i64relocImmSExt32>><<P:Predicate_i64relocImmSExt32_su>>:$src2) - Complexity = 6
                    // Dst: (OR64ri32:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, relocImm:{ *:[i64] }:$src2)
/* 81574*/        0, /*End of Scope*/
/* 81575*/      /*Scope*/ 81, /*->81657*/
/* 81576*/        OPC_MoveChild0,
/* 81577*/        OPC_Scope, 18, /*->81597*/ // 4 children in Scope
/* 81579*/          OPC_CheckPredicate, 15, // Predicate_relocImm8_su
/* 81581*/          OPC_MoveParent,
/* 81582*/          OPC_RecordChild1, // #1 = $src1
/* 81583*/          OPC_CheckType, MVT::i8,
/* 81585*/          OPC_CheckComplexPat, /*CP*/1, /*#*/0, // selectRelocImm:$src2 #2
/* 81588*/          OPC_MorphNodeTo2, TARGET_VAL(X86::OR8ri), 0,
                        MVT::i8, MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (X86or_flag:{ *:[i8] }:{ *:[i32] } relocImm:{ *:[i8] }<<P:Predicate_relocImm8_su>>:$src2, GR8:{ *:[i8] }:$src1) - Complexity = 6
                    // Dst: (OR8ri:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1, relocImm:{ *:[i8] }:$src2)
/* 81597*/        /*Scope*/ 18, /*->81616*/
/* 81598*/          OPC_CheckPredicate, 15, // Predicate_relocImm16_su
/* 81600*/          OPC_MoveParent,
/* 81601*/          OPC_RecordChild1, // #1 = $src1
/* 81602*/          OPC_CheckType, MVT::i16,
/* 81604*/          OPC_CheckComplexPat, /*CP*/1, /*#*/0, // selectRelocImm:$src2 #2
/* 81607*/          OPC_MorphNodeTo2, TARGET_VAL(X86::OR16ri), 0,
                        MVT::i16, MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (X86or_flag:{ *:[i16] }:{ *:[i32] } relocImm:{ *:[i16] }<<P:Predicate_relocImm16_su>>:$src2, GR16:{ *:[i16] }:$src1) - Complexity = 6
                    // Dst: (OR16ri:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, relocImm:{ *:[i16] }:$src2)
/* 81616*/        /*Scope*/ 18, /*->81635*/
/* 81617*/          OPC_CheckPredicate, 15, // Predicate_relocImm32_su
/* 81619*/          OPC_MoveParent,
/* 81620*/          OPC_RecordChild1, // #1 = $src1
/* 81621*/          OPC_CheckType, MVT::i32,
/* 81623*/          OPC_CheckComplexPat, /*CP*/1, /*#*/0, // selectRelocImm:$src2 #2
/* 81626*/          OPC_MorphNodeTo2, TARGET_VAL(X86::OR32ri), 0,
                        MVT::i32, MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (X86or_flag:{ *:[i32] }:{ *:[i32] } relocImm:{ *:[i32] }<<P:Predicate_relocImm32_su>>:$src2, GR32:{ *:[i32] }:$src1) - Complexity = 6
                    // Dst: (OR32ri:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, relocImm:{ *:[i32] }:$src2)
/* 81635*/        /*Scope*/ 20, /*->81656*/
/* 81636*/          OPC_CheckPredicate, 16, // Predicate_i64relocImmSExt32
/* 81638*/          OPC_CheckPredicate, 15, // Predicate_i64relocImmSExt32_su
/* 81640*/          OPC_MoveParent,
/* 81641*/          OPC_RecordChild1, // #1 = $src1
/* 81642*/          OPC_CheckType, MVT::i64,
/* 81644*/          OPC_CheckComplexPat, /*CP*/1, /*#*/0, // selectRelocImm:$src2 #2
/* 81647*/          OPC_MorphNodeTo2, TARGET_VAL(X86::OR64ri32), 0,
                        MVT::i64, MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (X86or_flag:{ *:[i64] }:{ *:[i32] } relocImm:{ *:[i64] }<<P:Predicate_i64relocImmSExt32>><<P:Predicate_i64relocImmSExt32_su>>:$src2, GR64:{ *:[i64] }:$src1) - Complexity = 6
                    // Dst: (OR64ri32:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, relocImm:{ *:[i64] }:$src2)
/* 81656*/        0, /*End of Scope*/
/* 81657*/      /*Scope*/ 47, /*->81705*/
/* 81658*/        OPC_RecordChild1, // #1 = $src2
/* 81659*/        OPC_SwitchType /*4 cases */, 9, MVT::i8,// ->81671
/* 81662*/          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)
/* 81671*/        /*SwitchType*/ 9, MVT::i16,// ->81682
/* 81673*/          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)
/* 81682*/        /*SwitchType*/ 9, MVT::i32,// ->81693
/* 81684*/          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)
/* 81693*/        /*SwitchType*/ 9, MVT::i64,// ->81704
/* 81695*/          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)
/* 81704*/        0, // EndSwitchType
/* 81705*/      0, /*End of Scope*/
/* 81706*/    0, /*End of Scope*/
/* 81707*/  /*SwitchOpcode*/ 23|128,5/*663*/, TARGET_VAL(X86ISD::XOR),// ->82374
/* 81711*/    OPC_Scope, 105, /*->81818*/ // 5 children in Scope
/* 81713*/      OPC_RecordChild0, // #0 = $src1
/* 81714*/      OPC_MoveChild1,
/* 81715*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 81718*/      OPC_RecordMemRef,
/* 81719*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 81720*/      OPC_CheckFoldableChainNode,
/* 81721*/      OPC_RecordChild1, // #2 = $src2
/* 81722*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 81724*/      OPC_Scope, 22, /*->81748*/ // 4 children in Scope
/* 81726*/        OPC_CheckPredicate, 5, // Predicate_loadi8
/* 81728*/        OPC_MoveParent,
/* 81729*/        OPC_CheckType, MVT::i8,
/* 81731*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 81734*/        OPC_EmitMergeInputChains1_1,
/* 81735*/        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)
/* 81748*/      /*Scope*/ 22, /*->81771*/
/* 81749*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 81751*/        OPC_MoveParent,
/* 81752*/        OPC_CheckType, MVT::i16,
/* 81754*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 81757*/        OPC_EmitMergeInputChains1_1,
/* 81758*/        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)
/* 81771*/      /*Scope*/ 22, /*->81794*/
/* 81772*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 81774*/        OPC_MoveParent,
/* 81775*/        OPC_CheckType, MVT::i32,
/* 81777*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 81780*/        OPC_EmitMergeInputChains1_1,
/* 81781*/        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)
/* 81794*/      /*Scope*/ 22, /*->81817*/
/* 81795*/        OPC_CheckPredicate, 9, // Predicate_load
/* 81797*/        OPC_MoveParent,
/* 81798*/        OPC_CheckType, MVT::i64,
/* 81800*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 81803*/        OPC_EmitMergeInputChains1_1,
/* 81804*/        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)
/* 81817*/      0, /*End of Scope*/
/* 81818*/    /*Scope*/ 108, /*->81927*/
/* 81819*/      OPC_MoveChild0,
/* 81820*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 81823*/      OPC_RecordMemRef,
/* 81824*/      OPC_RecordNode, // #0 = 'ld' chained node
/* 81825*/      OPC_CheckFoldableChainNode,
/* 81826*/      OPC_RecordChild1, // #1 = $src2
/* 81827*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 81829*/      OPC_Scope, 23, /*->81854*/ // 4 children in Scope
/* 81831*/        OPC_CheckPredicate, 5, // Predicate_loadi8
/* 81833*/        OPC_MoveParent,
/* 81834*/        OPC_RecordChild1, // #2 = $src1
/* 81835*/        OPC_CheckType, MVT::i8,
/* 81837*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 81840*/        OPC_EmitMergeInputChains1_0,
/* 81841*/        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)
/* 81854*/      /*Scope*/ 23, /*->81878*/
/* 81855*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 81857*/        OPC_MoveParent,
/* 81858*/        OPC_RecordChild1, // #2 = $src1
/* 81859*/        OPC_CheckType, MVT::i16,
/* 81861*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 81864*/        OPC_EmitMergeInputChains1_0,
/* 81865*/        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)
/* 81878*/      /*Scope*/ 23, /*->81902*/
/* 81879*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 81881*/        OPC_MoveParent,
/* 81882*/        OPC_RecordChild1, // #2 = $src1
/* 81883*/        OPC_CheckType, MVT::i32,
/* 81885*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 81888*/        OPC_EmitMergeInputChains1_0,
/* 81889*/        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)
/* 81902*/      /*Scope*/ 23, /*->81926*/
/* 81903*/        OPC_CheckPredicate, 9, // Predicate_load
/* 81905*/        OPC_MoveParent,
/* 81906*/        OPC_RecordChild1, // #2 = $src1
/* 81907*/        OPC_CheckType, MVT::i64,
/* 81909*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 81912*/        OPC_EmitMergeInputChains1_0,
/* 81913*/        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)
/* 81926*/      0, /*End of Scope*/
/* 81927*/    /*Scope*/ 82, /*->82010*/
/* 81928*/      OPC_RecordChild0, // #0 = $src
/* 81929*/      OPC_MoveChild1,
/* 81930*/      OPC_CheckOpcode, TARGET_VAL(ISD::ADD),
/* 81933*/      OPC_CheckChild0Same, 0,
/* 81935*/      OPC_Scope, 40, /*->81977*/ // 2 children in Scope
/* 81937*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 81948*/        OPC_MoveParent,
/* 81949*/        OPC_CheckPredicate, 54, // Predicate_xor_flag_nocf
/* 81951*/        OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->81964
/* 81954*/          OPC_CheckPatternPredicate, 108, // (Subtarget->hasBMI())
/* 81956*/          OPC_MorphNodeTo2, TARGET_VAL(X86::BLSMSK32rr), 0,
                        MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (X86xor_flag:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src, (add:{ *:[i32] } GR32:{ *:[i32] }:$src, -1:{ *:[i32] }))<<P:Predicate_xor_flag_nocf>> - Complexity = 12
                    // Dst: (BLSMSK32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
/* 81964*/        /*SwitchType*/ 10, MVT::i64,// ->81976
/* 81966*/          OPC_CheckPatternPredicate, 108, // (Subtarget->hasBMI())
/* 81968*/          OPC_MorphNodeTo2, TARGET_VAL(X86::BLSMSK64rr), 0,
                        MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (X86xor_flag:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src, (add:{ *:[i64] } GR64:{ *:[i64] }:$src, -1:{ *:[i64] }))<<P:Predicate_xor_flag_nocf>> - Complexity = 12
                    // Dst: (BLSMSK64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
/* 81976*/        0, // EndSwitchType
/* 81977*/      /*Scope*/ 31, /*->82009*/
/* 81978*/        OPC_CheckChild1Integer, 1, 
/* 81980*/        OPC_MoveParent,
/* 81981*/        OPC_CheckPredicate, 54, // Predicate_xor_flag_nocf
/* 81983*/        OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->81996
/* 81986*/          OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 81988*/          OPC_MorphNodeTo2, TARGET_VAL(X86::BLCMSK32rr), 0,
                        MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (X86xor_flag:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src, (add:{ *:[i32] } GR32:{ *:[i32] }:$src, 1:{ *:[i32] }))<<P:Predicate_xor_flag_nocf>> - Complexity = 12
                    // Dst: (BLCMSK32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
/* 81996*/        /*SwitchType*/ 10, MVT::i64,// ->82008
/* 81998*/          OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 82000*/          OPC_MorphNodeTo2, TARGET_VAL(X86::BLCMSK64rr), 0,
                        MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (X86xor_flag:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src, (add:{ *:[i64] } GR64:{ *:[i64] }:$src, 1:{ *:[i64] }))<<P:Predicate_xor_flag_nocf>> - Complexity = 12
                    // Dst: (BLCMSK64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
/* 82008*/        0, // EndSwitchType
/* 82009*/      0, /*End of Scope*/
/* 82010*/    /*Scope*/ 84, /*->82095*/
/* 82011*/      OPC_MoveChild0,
/* 82012*/      OPC_CheckOpcode, TARGET_VAL(ISD::ADD),
/* 82015*/      OPC_RecordChild0, // #0 = $src
/* 82016*/      OPC_Scope, 42, /*->82060*/ // 2 children in Scope
/* 82018*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 82029*/        OPC_MoveParent,
/* 82030*/        OPC_CheckChild1Same, 0,
/* 82032*/        OPC_CheckPredicate, 54, // Predicate_xor_flag_nocf
/* 82034*/        OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->82047
/* 82037*/          OPC_CheckPatternPredicate, 108, // (Subtarget->hasBMI())
/* 82039*/          OPC_MorphNodeTo2, TARGET_VAL(X86::BLSMSK32rr), 0,
                        MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (X86xor_flag:{ *:[i32] }:{ *:[i32] } (add:{ *:[i32] } GR32:{ *:[i32] }:$src, -1:{ *:[i32] }), GR32:{ *:[i32] }:$src)<<P:Predicate_xor_flag_nocf>> - Complexity = 12
                    // Dst: (BLSMSK32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
/* 82047*/        /*SwitchType*/ 10, MVT::i64,// ->82059
/* 82049*/          OPC_CheckPatternPredicate, 108, // (Subtarget->hasBMI())
/* 82051*/          OPC_MorphNodeTo2, TARGET_VAL(X86::BLSMSK64rr), 0,
                        MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (X86xor_flag:{ *:[i64] }:{ *:[i32] } (add:{ *:[i64] } GR64:{ *:[i64] }:$src, -1:{ *:[i64] }), GR64:{ *:[i64] }:$src)<<P:Predicate_xor_flag_nocf>> - Complexity = 12
                    // Dst: (BLSMSK64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
/* 82059*/        0, // EndSwitchType
/* 82060*/      /*Scope*/ 33, /*->82094*/
/* 82061*/        OPC_CheckChild1Integer, 1, 
/* 82063*/        OPC_MoveParent,
/* 82064*/        OPC_CheckChild1Same, 0,
/* 82066*/        OPC_CheckPredicate, 54, // Predicate_xor_flag_nocf
/* 82068*/        OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->82081
/* 82071*/          OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 82073*/          OPC_MorphNodeTo2, TARGET_VAL(X86::BLCMSK32rr), 0,
                        MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (X86xor_flag:{ *:[i32] }:{ *:[i32] } (add:{ *:[i32] } GR32:{ *:[i32] }:$src, 1:{ *:[i32] }), GR32:{ *:[i32] }:$src)<<P:Predicate_xor_flag_nocf>> - Complexity = 12
                    // Dst: (BLCMSK32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
/* 82081*/        /*SwitchType*/ 10, MVT::i64,// ->82093
/* 82083*/          OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 82085*/          OPC_MorphNodeTo2, TARGET_VAL(X86::BLCMSK64rr), 0,
                        MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (X86xor_flag:{ *:[i64] }:{ *:[i32] } (add:{ *:[i64] } GR64:{ *:[i64] }:$src, 1:{ *:[i64] }), GR64:{ *:[i64] }:$src)<<P:Predicate_xor_flag_nocf>> - Complexity = 12
                    // Dst: (BLCMSK64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
/* 82093*/        0, // EndSwitchType
/* 82094*/      0, /*End of Scope*/
/* 82095*/    /*Scope*/ 20|128,2/*276*/, /*->82373*/
/* 82097*/      OPC_RecordChild0, // #0 = $src1
/* 82098*/      OPC_Scope, 13|128,1/*141*/, /*->82242*/ // 3 children in Scope
/* 82101*/        OPC_RecordChild1, // #1 = $src2
/* 82102*/        OPC_MoveChild1,
/* 82103*/        OPC_Scope, 62, /*->82167*/ // 5 children in Scope
/* 82105*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 82108*/          OPC_Scope, 18, /*->82128*/ // 3 children in Scope
/* 82110*/            OPC_CheckPredicate, 13, // Predicate_i16immSExt8
/* 82112*/            OPC_CheckPredicate, 14, // Predicate_i16immSExt8_su
/* 82114*/            OPC_MoveParent,
/* 82115*/            OPC_CheckType, MVT::i16,
/* 82117*/            OPC_EmitConvertToTarget, 1,
/* 82119*/            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)
/* 82128*/          /*Scope*/ 18, /*->82147*/
/* 82129*/            OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/* 82131*/            OPC_CheckPredicate, 14, // Predicate_i32immSExt8_su
/* 82133*/            OPC_MoveParent,
/* 82134*/            OPC_CheckType, MVT::i32,
/* 82136*/            OPC_EmitConvertToTarget, 1,
/* 82138*/            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)
/* 82147*/          /*Scope*/ 18, /*->82166*/
/* 82148*/            OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/* 82150*/            OPC_CheckPredicate, 14, // Predicate_i64immSExt8_su
/* 82152*/            OPC_MoveParent,
/* 82153*/            OPC_CheckType, MVT::i64,
/* 82155*/            OPC_EmitConvertToTarget, 1,
/* 82157*/            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)
/* 82166*/          0, /*End of Scope*/
/* 82167*/        /*Scope*/ 17, /*->82185*/
/* 82168*/          OPC_CheckPredicate, 15, // Predicate_relocImm8_su
/* 82170*/          OPC_MoveParent,
/* 82171*/          OPC_CheckType, MVT::i8,
/* 82173*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #2
/* 82176*/          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_relocImm8_su>>:$src2) - Complexity = 6
                    // Dst: (XOR8ri:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1, relocImm:{ *:[i8] }:$src2)
/* 82185*/        /*Scope*/ 17, /*->82203*/
/* 82186*/          OPC_CheckPredicate, 15, // Predicate_relocImm16_su
/* 82188*/          OPC_MoveParent,
/* 82189*/          OPC_CheckType, MVT::i16,
/* 82191*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #2
/* 82194*/          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_relocImm16_su>>:$src2) - Complexity = 6
                    // Dst: (XOR16ri:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, relocImm:{ *:[i16] }:$src2)
/* 82203*/        /*Scope*/ 17, /*->82221*/
/* 82204*/          OPC_CheckPredicate, 15, // Predicate_relocImm32_su
/* 82206*/          OPC_MoveParent,
/* 82207*/          OPC_CheckType, MVT::i32,
/* 82209*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #2
/* 82212*/          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_relocImm32_su>>:$src2) - Complexity = 6
                    // Dst: (XOR32ri:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, relocImm:{ *:[i32] }:$src2)
/* 82221*/        /*Scope*/ 19, /*->82241*/
/* 82222*/          OPC_CheckPredicate, 16, // Predicate_i64relocImmSExt32
/* 82224*/          OPC_CheckPredicate, 15, // Predicate_i64relocImmSExt32_su
/* 82226*/          OPC_MoveParent,
/* 82227*/          OPC_CheckType, MVT::i64,
/* 82229*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #2
/* 82232*/          OPC_MorphNodeTo2, TARGET_VAL(X86::XOR64ri32), 0,
                        MVT::i64, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86xor_flag:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, relocImm:{ *:[i64] }<<P:Predicate_i64relocImmSExt32>><<P:Predicate_i64relocImmSExt32_su>>:$src2) - Complexity = 6
                    // Dst: (XOR64ri32:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, relocImm:{ *:[i64] }:$src2)
/* 82241*/        0, /*End of Scope*/
/* 82242*/      /*Scope*/ 81, /*->82324*/
/* 82243*/        OPC_MoveChild0,
/* 82244*/        OPC_Scope, 18, /*->82264*/ // 4 children in Scope
/* 82246*/          OPC_CheckPredicate, 15, // Predicate_relocImm8_su
/* 82248*/          OPC_MoveParent,
/* 82249*/          OPC_RecordChild1, // #1 = $src1
/* 82250*/          OPC_CheckType, MVT::i8,
/* 82252*/          OPC_CheckComplexPat, /*CP*/1, /*#*/0, // selectRelocImm:$src2 #2
/* 82255*/          OPC_MorphNodeTo2, TARGET_VAL(X86::XOR8ri), 0,
                        MVT::i8, MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (X86xor_flag:{ *:[i8] }:{ *:[i32] } relocImm:{ *:[i8] }<<P:Predicate_relocImm8_su>>:$src2, GR8:{ *:[i8] }:$src1) - Complexity = 6
                    // Dst: (XOR8ri:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1, relocImm:{ *:[i8] }:$src2)
/* 82264*/        /*Scope*/ 18, /*->82283*/
/* 82265*/          OPC_CheckPredicate, 15, // Predicate_relocImm16_su
/* 82267*/          OPC_MoveParent,
/* 82268*/          OPC_RecordChild1, // #1 = $src1
/* 82269*/          OPC_CheckType, MVT::i16,
/* 82271*/          OPC_CheckComplexPat, /*CP*/1, /*#*/0, // selectRelocImm:$src2 #2
/* 82274*/          OPC_MorphNodeTo2, TARGET_VAL(X86::XOR16ri), 0,
                        MVT::i16, MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (X86xor_flag:{ *:[i16] }:{ *:[i32] } relocImm:{ *:[i16] }<<P:Predicate_relocImm16_su>>:$src2, GR16:{ *:[i16] }:$src1) - Complexity = 6
                    // Dst: (XOR16ri:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, relocImm:{ *:[i16] }:$src2)
/* 82283*/        /*Scope*/ 18, /*->82302*/
/* 82284*/          OPC_CheckPredicate, 15, // Predicate_relocImm32_su
/* 82286*/          OPC_MoveParent,
/* 82287*/          OPC_RecordChild1, // #1 = $src1
/* 82288*/          OPC_CheckType, MVT::i32,
/* 82290*/          OPC_CheckComplexPat, /*CP*/1, /*#*/0, // selectRelocImm:$src2 #2
/* 82293*/          OPC_MorphNodeTo2, TARGET_VAL(X86::XOR32ri), 0,
                        MVT::i32, MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (X86xor_flag:{ *:[i32] }:{ *:[i32] } relocImm:{ *:[i32] }<<P:Predicate_relocImm32_su>>:$src2, GR32:{ *:[i32] }:$src1) - Complexity = 6
                    // Dst: (XOR32ri:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, relocImm:{ *:[i32] }:$src2)
/* 82302*/        /*Scope*/ 20, /*->82323*/
/* 82303*/          OPC_CheckPredicate, 16, // Predicate_i64relocImmSExt32
/* 82305*/          OPC_CheckPredicate, 15, // Predicate_i64relocImmSExt32_su
/* 82307*/          OPC_MoveParent,
/* 82308*/          OPC_RecordChild1, // #1 = $src1
/* 82309*/          OPC_CheckType, MVT::i64,
/* 82311*/          OPC_CheckComplexPat, /*CP*/1, /*#*/0, // selectRelocImm:$src2 #2
/* 82314*/          OPC_MorphNodeTo2, TARGET_VAL(X86::XOR64ri32), 0,
                        MVT::i64, MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (X86xor_flag:{ *:[i64] }:{ *:[i32] } relocImm:{ *:[i64] }<<P:Predicate_i64relocImmSExt32>><<P:Predicate_i64relocImmSExt32_su>>:$src2, GR64:{ *:[i64] }:$src1) - Complexity = 6
                    // Dst: (XOR64ri32:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, relocImm:{ *:[i64] }:$src2)
/* 82323*/        0, /*End of Scope*/
/* 82324*/      /*Scope*/ 47, /*->82372*/
/* 82325*/        OPC_RecordChild1, // #1 = $src2
/* 82326*/        OPC_SwitchType /*4 cases */, 9, MVT::i8,// ->82338
/* 82329*/          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)
/* 82338*/        /*SwitchType*/ 9, MVT::i16,// ->82349
/* 82340*/          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)
/* 82349*/        /*SwitchType*/ 9, MVT::i32,// ->82360
/* 82351*/          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)
/* 82360*/        /*SwitchType*/ 9, MVT::i64,// ->82371
/* 82362*/          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)
/* 82371*/        0, // EndSwitchType
/* 82372*/      0, /*End of Scope*/
/* 82373*/    0, /*End of Scope*/
/* 82374*/  /*SwitchOpcode*/ 75|128,5/*715*/, TARGET_VAL(X86ISD::ADD),// ->83093
/* 82378*/    OPC_Scope, 105, /*->82485*/ // 3 children in Scope
/* 82380*/      OPC_RecordChild0, // #0 = $src1
/* 82381*/      OPC_MoveChild1,
/* 82382*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 82385*/      OPC_RecordMemRef,
/* 82386*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 82387*/      OPC_CheckFoldableChainNode,
/* 82388*/      OPC_RecordChild1, // #2 = $src2
/* 82389*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 82391*/      OPC_Scope, 22, /*->82415*/ // 4 children in Scope
/* 82393*/        OPC_CheckPredicate, 5, // Predicate_loadi8
/* 82395*/        OPC_MoveParent,
/* 82396*/        OPC_CheckType, MVT::i8,
/* 82398*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 82401*/        OPC_EmitMergeInputChains1_1,
/* 82402*/        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)
/* 82415*/      /*Scope*/ 22, /*->82438*/
/* 82416*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 82418*/        OPC_MoveParent,
/* 82419*/        OPC_CheckType, MVT::i16,
/* 82421*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 82424*/        OPC_EmitMergeInputChains1_1,
/* 82425*/        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)
/* 82438*/      /*Scope*/ 22, /*->82461*/
/* 82439*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 82441*/        OPC_MoveParent,
/* 82442*/        OPC_CheckType, MVT::i32,
/* 82444*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 82447*/        OPC_EmitMergeInputChains1_1,
/* 82448*/        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)
/* 82461*/      /*Scope*/ 22, /*->82484*/
/* 82462*/        OPC_CheckPredicate, 9, // Predicate_load
/* 82464*/        OPC_MoveParent,
/* 82465*/        OPC_CheckType, MVT::i64,
/* 82467*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 82470*/        OPC_EmitMergeInputChains1_1,
/* 82471*/        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)
/* 82484*/      0, /*End of Scope*/
/* 82485*/    /*Scope*/ 108, /*->82594*/
/* 82486*/      OPC_MoveChild0,
/* 82487*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 82490*/      OPC_RecordMemRef,
/* 82491*/      OPC_RecordNode, // #0 = 'ld' chained node
/* 82492*/      OPC_CheckFoldableChainNode,
/* 82493*/      OPC_RecordChild1, // #1 = $src2
/* 82494*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 82496*/      OPC_Scope, 23, /*->82521*/ // 4 children in Scope
/* 82498*/        OPC_CheckPredicate, 5, // Predicate_loadi8
/* 82500*/        OPC_MoveParent,
/* 82501*/        OPC_RecordChild1, // #2 = $src1
/* 82502*/        OPC_CheckType, MVT::i8,
/* 82504*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 82507*/        OPC_EmitMergeInputChains1_0,
/* 82508*/        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)
/* 82521*/      /*Scope*/ 23, /*->82545*/
/* 82522*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 82524*/        OPC_MoveParent,
/* 82525*/        OPC_RecordChild1, // #2 = $src1
/* 82526*/        OPC_CheckType, MVT::i16,
/* 82528*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 82531*/        OPC_EmitMergeInputChains1_0,
/* 82532*/        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)
/* 82545*/      /*Scope*/ 23, /*->82569*/
/* 82546*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 82548*/        OPC_MoveParent,
/* 82549*/        OPC_RecordChild1, // #2 = $src1
/* 82550*/        OPC_CheckType, MVT::i32,
/* 82552*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 82555*/        OPC_EmitMergeInputChains1_0,
/* 82556*/        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)
/* 82569*/      /*Scope*/ 23, /*->82593*/
/* 82570*/        OPC_CheckPredicate, 9, // Predicate_load
/* 82572*/        OPC_MoveParent,
/* 82573*/        OPC_RecordChild1, // #2 = $src1
/* 82574*/        OPC_CheckType, MVT::i64,
/* 82576*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 82579*/        OPC_EmitMergeInputChains1_0,
/* 82580*/        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)
/* 82593*/      0, /*End of Scope*/
/* 82594*/    /*Scope*/ 112|128,3/*496*/, /*->83092*/
/* 82596*/      OPC_RecordChild0, // #0 = $src1
/* 82597*/      OPC_Scope, 46, /*->82645*/ // 7 children in Scope
/* 82599*/        OPC_CheckChild1Integer, 1, 
/* 82601*/        OPC_CheckPredicate, 54, // Predicate_X86add_flag_nocf
/* 82603*/        OPC_SwitchType /*4 cases */, 8, MVT::i8,// ->82614
/* 82606*/          OPC_MorphNodeTo2, TARGET_VAL(X86::INC8r), 0,
                        MVT::i8, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (X86add_flag:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1, 1:{ *:[i8] })<<P:Predicate_X86add_flag_nocf>> - Complexity = 9
                    // Dst: (INC8r:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1)
/* 82614*/        /*SwitchType*/ 8, MVT::i16,// ->82624
/* 82616*/          OPC_MorphNodeTo2, TARGET_VAL(X86::INC16r), 0,
                        MVT::i16, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (X86add_flag:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, 1:{ *:[i16] })<<P:Predicate_X86add_flag_nocf>> - Complexity = 9
                    // Dst: (INC16r:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1)
/* 82624*/        /*SwitchType*/ 8, MVT::i32,// ->82634
/* 82626*/          OPC_MorphNodeTo2, TARGET_VAL(X86::INC32r), 0,
                        MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (X86add_flag:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, 1:{ *:[i32] })<<P:Predicate_X86add_flag_nocf>> - Complexity = 9
                    // Dst: (INC32r:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1)
/* 82634*/        /*SwitchType*/ 8, MVT::i64,// ->82644
/* 82636*/          OPC_MorphNodeTo2, TARGET_VAL(X86::INC64r), 0,
                        MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (X86add_flag:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, 1:{ *:[i64] })<<P:Predicate_X86add_flag_nocf>> - Complexity = 9
                    // Dst: (INC64r:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1)
/* 82644*/        0, // EndSwitchType
/* 82645*/      /*Scope*/ 63, /*->82709*/
/* 82646*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 82657*/        OPC_CheckPredicate, 54, // Predicate_X86add_flag_nocf
/* 82659*/        OPC_SwitchType /*4 cases */, 10, MVT::i8,// ->82672
/* 82662*/          OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || shouldOptForSize(MF))
/* 82664*/          OPC_MorphNodeTo2, TARGET_VAL(X86::DEC8r), 0,
                        MVT::i8, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (X86add_flag:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src, -1:{ *:[i8] })<<P:Predicate_X86add_flag_nocf>> - Complexity = 9
                    // Dst: (DEC8r:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src)
/* 82672*/        /*SwitchType*/ 10, MVT::i16,// ->82684
/* 82674*/          OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || shouldOptForSize(MF))
/* 82676*/          OPC_MorphNodeTo2, TARGET_VAL(X86::DEC16r), 0,
                        MVT::i16, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (X86add_flag:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src, -1:{ *:[i16] })<<P:Predicate_X86add_flag_nocf>> - Complexity = 9
                    // Dst: (DEC16r:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src)
/* 82684*/        /*SwitchType*/ 10, MVT::i32,// ->82696
/* 82686*/          OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || shouldOptForSize(MF))
/* 82688*/          OPC_MorphNodeTo2, TARGET_VAL(X86::DEC32r), 0,
                        MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (X86add_flag:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src, -1:{ *:[i32] })<<P:Predicate_X86add_flag_nocf>> - Complexity = 9
                    // Dst: (DEC32r:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
/* 82696*/        /*SwitchType*/ 10, MVT::i64,// ->82708
/* 82698*/          OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || shouldOptForSize(MF))
/* 82700*/          OPC_MorphNodeTo2, TARGET_VAL(X86::DEC64r), 0,
                        MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (X86add_flag:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src, -1:{ *:[i64] })<<P:Predicate_X86add_flag_nocf>> - Complexity = 9
                    // Dst: (DEC64r:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
/* 82708*/        0, // EndSwitchType
/* 82709*/      /*Scope*/ 76, /*->82786*/
/* 82710*/        OPC_CheckChild1Integer, 0|128,1/*128*/, 
/* 82713*/        OPC_CheckPredicate, 54, // Predicate_X86add_flag_nocf
/* 82715*/        OPC_SwitchType /*3 cases */, 21, MVT::i16,// ->82739
/* 82718*/          OPC_EmitInteger, MVT::i16, 0|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551488*/, 
/* 82730*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SUB16ri8), 0,
                        MVT::i16, MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86add_flag:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, 128:{ *:[i16] })<<P:Predicate_X86add_flag_nocf>> - Complexity = 9
                    // Dst: (SUB16ri8:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, -128:{ *:[i16] })
/* 82739*/        /*SwitchType*/ 21, MVT::i32,// ->82762
/* 82741*/          OPC_EmitInteger, MVT::i32, 0|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551488*/, 
/* 82753*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SUB32ri8), 0,
                        MVT::i32, MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86add_flag:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, 128:{ *:[i32] })<<P:Predicate_X86add_flag_nocf>> - Complexity = 9
                    // Dst: (SUB32ri8:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, -128:{ *:[i32] })
/* 82762*/        /*SwitchType*/ 21, MVT::i64,// ->82785
/* 82764*/          OPC_EmitInteger, MVT::i64, 0|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551488*/, 
/* 82776*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SUB64ri8), 0,
                        MVT::i64, MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86add_flag:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, 128:{ *:[i64] })<<P:Predicate_X86add_flag_nocf>> - Complexity = 9
                    // Dst: (SUB64ri8:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, -128:{ *:[i64] })
/* 82785*/        0, // EndSwitchType
/* 82786*/      /*Scope*/ 31, /*->82818*/
/* 82787*/        OPC_CheckChild1Integer, 0|128,0|128,0|128,0|128,8/*2147483648*/, 
/* 82793*/        OPC_CheckPredicate, 54, // Predicate_X86add_flag_nocf
/* 82795*/        OPC_CheckType, MVT::i64,
/* 82797*/        OPC_EmitInteger, MVT::i64, 0|128,0|128,0|128,0|128,120|128,127|128,127|128,127|128,127|128,1/*18446744071562067968*/, 
/* 82809*/        OPC_MorphNodeTo2, TARGET_VAL(X86::SUB64ri32), 0,
                      MVT::i64, MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86add_flag:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, 2147483648:{ *:[i64] })<<P:Predicate_X86add_flag_nocf>> - Complexity = 9
                  // Dst: (SUB64ri32:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, -2147483648:{ *:[i64] })
/* 82818*/      /*Scope*/ 13|128,1/*141*/, /*->82961*/
/* 82820*/        OPC_RecordChild1, // #1 = $src2
/* 82821*/        OPC_MoveChild1,
/* 82822*/        OPC_Scope, 62, /*->82886*/ // 5 children in Scope
/* 82824*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 82827*/          OPC_Scope, 18, /*->82847*/ // 3 children in Scope
/* 82829*/            OPC_CheckPredicate, 13, // Predicate_i16immSExt8
/* 82831*/            OPC_CheckPredicate, 14, // Predicate_i16immSExt8_su
/* 82833*/            OPC_MoveParent,
/* 82834*/            OPC_CheckType, MVT::i16,
/* 82836*/            OPC_EmitConvertToTarget, 1,
/* 82838*/            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)
/* 82847*/          /*Scope*/ 18, /*->82866*/
/* 82848*/            OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/* 82850*/            OPC_CheckPredicate, 14, // Predicate_i32immSExt8_su
/* 82852*/            OPC_MoveParent,
/* 82853*/            OPC_CheckType, MVT::i32,
/* 82855*/            OPC_EmitConvertToTarget, 1,
/* 82857*/            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)
/* 82866*/          /*Scope*/ 18, /*->82885*/
/* 82867*/            OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/* 82869*/            OPC_CheckPredicate, 14, // Predicate_i64immSExt8_su
/* 82871*/            OPC_MoveParent,
/* 82872*/            OPC_CheckType, MVT::i64,
/* 82874*/            OPC_EmitConvertToTarget, 1,
/* 82876*/            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)
/* 82885*/          0, /*End of Scope*/
/* 82886*/        /*Scope*/ 17, /*->82904*/
/* 82887*/          OPC_CheckPredicate, 15, // Predicate_relocImm8_su
/* 82889*/          OPC_MoveParent,
/* 82890*/          OPC_CheckType, MVT::i8,
/* 82892*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #2
/* 82895*/          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_relocImm8_su>>:$src2) - Complexity = 6
                    // Dst: (ADD8ri:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1, relocImm:{ *:[i8] }:$src2)
/* 82904*/        /*Scope*/ 17, /*->82922*/
/* 82905*/          OPC_CheckPredicate, 15, // Predicate_relocImm16_su
/* 82907*/          OPC_MoveParent,
/* 82908*/          OPC_CheckType, MVT::i16,
/* 82910*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #2
/* 82913*/          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_relocImm16_su>>:$src2) - Complexity = 6
                    // Dst: (ADD16ri:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, relocImm:{ *:[i16] }:$src2)
/* 82922*/        /*Scope*/ 17, /*->82940*/
/* 82923*/          OPC_CheckPredicate, 15, // Predicate_relocImm32_su
/* 82925*/          OPC_MoveParent,
/* 82926*/          OPC_CheckType, MVT::i32,
/* 82928*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #2
/* 82931*/          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_relocImm32_su>>:$src2) - Complexity = 6
                    // Dst: (ADD32ri:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, relocImm:{ *:[i32] }:$src2)
/* 82940*/        /*Scope*/ 19, /*->82960*/
/* 82941*/          OPC_CheckPredicate, 16, // Predicate_i64relocImmSExt32
/* 82943*/          OPC_CheckPredicate, 15, // Predicate_i64relocImmSExt32_su
/* 82945*/          OPC_MoveParent,
/* 82946*/          OPC_CheckType, MVT::i64,
/* 82948*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #2
/* 82951*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADD64ri32), 0,
                        MVT::i64, MVT::i32, 2/*#Ops*/, 0, 2, 
                    // Src: (X86add_flag:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, relocImm:{ *:[i64] }<<P:Predicate_i64relocImmSExt32>><<P:Predicate_i64relocImmSExt32_su>>:$src2) - Complexity = 6
                    // Dst: (ADD64ri32:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, relocImm:{ *:[i64] }:$src2)
/* 82960*/        0, /*End of Scope*/
/* 82961*/      /*Scope*/ 81, /*->83043*/
/* 82962*/        OPC_MoveChild0,
/* 82963*/        OPC_Scope, 18, /*->82983*/ // 4 children in Scope
/* 82965*/          OPC_CheckPredicate, 15, // Predicate_relocImm8_su
/* 82967*/          OPC_MoveParent,
/* 82968*/          OPC_RecordChild1, // #1 = $src1
/* 82969*/          OPC_CheckType, MVT::i8,
/* 82971*/          OPC_CheckComplexPat, /*CP*/1, /*#*/0, // selectRelocImm:$src2 #2
/* 82974*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADD8ri), 0,
                        MVT::i8, MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (X86add_flag:{ *:[i8] }:{ *:[i32] } relocImm:{ *:[i8] }<<P:Predicate_relocImm8_su>>:$src2, GR8:{ *:[i8] }:$src1) - Complexity = 6
                    // Dst: (ADD8ri:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1, relocImm:{ *:[i8] }:$src2)
/* 82983*/        /*Scope*/ 18, /*->83002*/
/* 82984*/          OPC_CheckPredicate, 15, // Predicate_relocImm16_su
/* 82986*/          OPC_MoveParent,
/* 82987*/          OPC_RecordChild1, // #1 = $src1
/* 82988*/          OPC_CheckType, MVT::i16,
/* 82990*/          OPC_CheckComplexPat, /*CP*/1, /*#*/0, // selectRelocImm:$src2 #2
/* 82993*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADD16ri), 0,
                        MVT::i16, MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (X86add_flag:{ *:[i16] }:{ *:[i32] } relocImm:{ *:[i16] }<<P:Predicate_relocImm16_su>>:$src2, GR16:{ *:[i16] }:$src1) - Complexity = 6
                    // Dst: (ADD16ri:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, relocImm:{ *:[i16] }:$src2)
/* 83002*/        /*Scope*/ 18, /*->83021*/
/* 83003*/          OPC_CheckPredicate, 15, // Predicate_relocImm32_su
/* 83005*/          OPC_MoveParent,
/* 83006*/          OPC_RecordChild1, // #1 = $src1
/* 83007*/          OPC_CheckType, MVT::i32,
/* 83009*/          OPC_CheckComplexPat, /*CP*/1, /*#*/0, // selectRelocImm:$src2 #2
/* 83012*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADD32ri), 0,
                        MVT::i32, MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (X86add_flag:{ *:[i32] }:{ *:[i32] } relocImm:{ *:[i32] }<<P:Predicate_relocImm32_su>>:$src2, GR32:{ *:[i32] }:$src1) - Complexity = 6
                    // Dst: (ADD32ri:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, relocImm:{ *:[i32] }:$src2)
/* 83021*/        /*Scope*/ 20, /*->83042*/
/* 83022*/          OPC_CheckPredicate, 16, // Predicate_i64relocImmSExt32
/* 83024*/          OPC_CheckPredicate, 15, // Predicate_i64relocImmSExt32_su
/* 83026*/          OPC_MoveParent,
/* 83027*/          OPC_RecordChild1, // #1 = $src1
/* 83028*/          OPC_CheckType, MVT::i64,
/* 83030*/          OPC_CheckComplexPat, /*CP*/1, /*#*/0, // selectRelocImm:$src2 #2
/* 83033*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADD64ri32), 0,
                        MVT::i64, MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (X86add_flag:{ *:[i64] }:{ *:[i32] } relocImm:{ *:[i64] }<<P:Predicate_i64relocImmSExt32>><<P:Predicate_i64relocImmSExt32_su>>:$src2, GR64:{ *:[i64] }:$src1) - Complexity = 6
                    // Dst: (ADD64ri32:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, relocImm:{ *:[i64] }:$src2)
/* 83042*/        0, /*End of Scope*/
/* 83043*/      /*Scope*/ 47, /*->83091*/
/* 83044*/        OPC_RecordChild1, // #1 = $src2
/* 83045*/        OPC_SwitchType /*4 cases */, 9, MVT::i8,// ->83057
/* 83048*/          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)
/* 83057*/        /*SwitchType*/ 9, MVT::i16,// ->83068
/* 83059*/          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)
/* 83068*/        /*SwitchType*/ 9, MVT::i32,// ->83079
/* 83070*/          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)
/* 83079*/        /*SwitchType*/ 9, MVT::i64,// ->83090
/* 83081*/          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)
/* 83090*/        0, // EndSwitchType
/* 83091*/      0, /*End of Scope*/
/* 83092*/    0, /*End of Scope*/
/* 83093*/  /*SwitchOpcode*/ 101|128,3/*485*/, TARGET_VAL(X86ISD::SUB),// ->83582
/* 83097*/    OPC_Scope, 91|128,1/*219*/, /*->83319*/ // 3 children in Scope
/* 83100*/      OPC_RecordChild0, // #0 = $src1
/* 83101*/      OPC_Scope, 104, /*->83207*/ // 3 children in Scope
/* 83103*/        OPC_MoveChild1,
/* 83104*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 83107*/        OPC_RecordMemRef,
/* 83108*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 83109*/        OPC_CheckFoldableChainNode,
/* 83110*/        OPC_RecordChild1, // #2 = $src2
/* 83111*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 83113*/        OPC_Scope, 22, /*->83137*/ // 4 children in Scope
/* 83115*/          OPC_CheckPredicate, 5, // Predicate_loadi8
/* 83117*/          OPC_MoveParent,
/* 83118*/          OPC_CheckType, MVT::i8,
/* 83120*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 83123*/          OPC_EmitMergeInputChains1_1,
/* 83124*/          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)
/* 83137*/        /*Scope*/ 22, /*->83160*/
/* 83138*/          OPC_CheckPredicate, 7, // Predicate_loadi16
/* 83140*/          OPC_MoveParent,
/* 83141*/          OPC_CheckType, MVT::i16,
/* 83143*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 83146*/          OPC_EmitMergeInputChains1_1,
/* 83147*/          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)
/* 83160*/        /*Scope*/ 22, /*->83183*/
/* 83161*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/* 83163*/          OPC_MoveParent,
/* 83164*/          OPC_CheckType, MVT::i32,
/* 83166*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 83169*/          OPC_EmitMergeInputChains1_1,
/* 83170*/          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)
/* 83183*/        /*Scope*/ 22, /*->83206*/
/* 83184*/          OPC_CheckPredicate, 9, // Predicate_load
/* 83186*/          OPC_MoveParent,
/* 83187*/          OPC_CheckType, MVT::i64,
/* 83189*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 83192*/          OPC_EmitMergeInputChains1_1,
/* 83193*/          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)
/* 83206*/        0, /*End of Scope*/
/* 83207*/      /*Scope*/ 46, /*->83254*/
/* 83208*/        OPC_CheckChild1Integer, 1, 
/* 83210*/        OPC_CheckPredicate, 56, // Predicate_X86sub_flag_nocf
/* 83212*/        OPC_SwitchType /*4 cases */, 8, MVT::i8,// ->83223
/* 83215*/          OPC_MorphNodeTo2, TARGET_VAL(X86::DEC8r), 0,
                        MVT::i8, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (X86sub_flag:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1, 1:{ *:[i8] })<<P:Predicate_X86sub_flag_nocf>> - Complexity = 9
                    // Dst: (DEC8r:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1)
/* 83223*/        /*SwitchType*/ 8, MVT::i16,// ->83233
/* 83225*/          OPC_MorphNodeTo2, TARGET_VAL(X86::DEC16r), 0,
                        MVT::i16, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (X86sub_flag:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, 1:{ *:[i16] })<<P:Predicate_X86sub_flag_nocf>> - Complexity = 9
                    // Dst: (DEC16r:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1)
/* 83233*/        /*SwitchType*/ 8, MVT::i32,// ->83243
/* 83235*/          OPC_MorphNodeTo2, TARGET_VAL(X86::DEC32r), 0,
                        MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (X86sub_flag:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, 1:{ *:[i32] })<<P:Predicate_X86sub_flag_nocf>> - Complexity = 9
                    // Dst: (DEC32r:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1)
/* 83243*/        /*SwitchType*/ 8, MVT::i64,// ->83253
/* 83245*/          OPC_MorphNodeTo2, TARGET_VAL(X86::DEC64r), 0,
                        MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (X86sub_flag:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, 1:{ *:[i64] })<<P:Predicate_X86sub_flag_nocf>> - Complexity = 9
                    // Dst: (DEC64r:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1)
/* 83253*/        0, // EndSwitchType
/* 83254*/      /*Scope*/ 63, /*->83318*/
/* 83255*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 83266*/        OPC_CheckPredicate, 56, // Predicate_X86sub_flag_nocf
/* 83268*/        OPC_SwitchType /*4 cases */, 10, MVT::i8,// ->83281
/* 83271*/          OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || shouldOptForSize(MF))
/* 83273*/          OPC_MorphNodeTo2, TARGET_VAL(X86::INC8r), 0,
                        MVT::i8, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (X86sub_flag:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src, -1:{ *:[i8] })<<P:Predicate_X86sub_flag_nocf>> - Complexity = 9
                    // Dst: (INC8r:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src)
/* 83281*/        /*SwitchType*/ 10, MVT::i16,// ->83293
/* 83283*/          OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || shouldOptForSize(MF))
/* 83285*/          OPC_MorphNodeTo2, TARGET_VAL(X86::INC16r), 0,
                        MVT::i16, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (X86sub_flag:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src, -1:{ *:[i16] })<<P:Predicate_X86sub_flag_nocf>> - Complexity = 9
                    // Dst: (INC16r:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src)
/* 83293*/        /*SwitchType*/ 10, MVT::i32,// ->83305
/* 83295*/          OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || shouldOptForSize(MF))
/* 83297*/          OPC_MorphNodeTo2, TARGET_VAL(X86::INC32r), 0,
                        MVT::i32, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (X86sub_flag:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src, -1:{ *:[i32] })<<P:Predicate_X86sub_flag_nocf>> - Complexity = 9
                    // Dst: (INC32r:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src)
/* 83305*/        /*SwitchType*/ 10, MVT::i64,// ->83317
/* 83307*/          OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || shouldOptForSize(MF))
/* 83309*/          OPC_MorphNodeTo2, TARGET_VAL(X86::INC64r), 0,
                        MVT::i64, MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (X86sub_flag:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src, -1:{ *:[i64] })<<P:Predicate_X86sub_flag_nocf>> - Complexity = 9
                    // Dst: (INC64r:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src)
/* 83317*/        0, // EndSwitchType
/* 83318*/      0, /*End of Scope*/
/* 83319*/    /*Scope*/ 45, /*->83365*/
/* 83320*/      OPC_CheckChild0Integer, 0, 
/* 83322*/      OPC_RecordChild1, // #0 = $src
/* 83323*/      OPC_SwitchType /*4 cases */, 8, MVT::i8,// ->83334
/* 83326*/        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)
/* 83334*/      /*SwitchType*/ 8, MVT::i16,// ->83344
/* 83336*/        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)
/* 83344*/      /*SwitchType*/ 8, MVT::i32,// ->83354
/* 83346*/        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)
/* 83354*/      /*SwitchType*/ 8, MVT::i64,// ->83364
/* 83356*/        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)
/* 83364*/      0, // EndSwitchType
/* 83365*/    /*Scope*/ 86|128,1/*214*/, /*->83581*/
/* 83367*/      OPC_RecordChild0, // #0 = $src1
/* 83368*/      OPC_RecordChild1, // #1 = $src2
/* 83369*/      OPC_Scope, 32|128,1/*160*/, /*->83532*/ // 5 children in Scope
/* 83372*/        OPC_MoveChild1,
/* 83373*/        OPC_Scope, 62, /*->83437*/ // 6 children in Scope
/* 83375*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 83378*/          OPC_Scope, 18, /*->83398*/ // 3 children in Scope
/* 83380*/            OPC_CheckPredicate, 13, // Predicate_i16immSExt8
/* 83382*/            OPC_CheckPredicate, 14, // Predicate_i16immSExt8_su
/* 83384*/            OPC_MoveParent,
/* 83385*/            OPC_CheckType, MVT::i16,
/* 83387*/            OPC_EmitConvertToTarget, 1,
/* 83389*/            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)
/* 83398*/          /*Scope*/ 18, /*->83417*/
/* 83399*/            OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/* 83401*/            OPC_CheckPredicate, 14, // Predicate_i32immSExt8_su
/* 83403*/            OPC_MoveParent,
/* 83404*/            OPC_CheckType, MVT::i32,
/* 83406*/            OPC_EmitConvertToTarget, 1,
/* 83408*/            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)
/* 83417*/          /*Scope*/ 18, /*->83436*/
/* 83418*/            OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/* 83420*/            OPC_CheckPredicate, 14, // Predicate_i64immSExt8_su
/* 83422*/            OPC_MoveParent,
/* 83423*/            OPC_CheckType, MVT::i64,
/* 83425*/            OPC_EmitConvertToTarget, 1,
/* 83427*/            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)
/* 83436*/          0, /*End of Scope*/
/* 83437*/        /*Scope*/ 17, /*->83455*/
/* 83438*/          OPC_CheckPredicate, 15, // Predicate_relocImm8_su
/* 83440*/          OPC_MoveParent,
/* 83441*/          OPC_CheckType, MVT::i8,
/* 83443*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #2
/* 83446*/          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_relocImm8_su>>:$src2) - Complexity = 6
                    // Dst: (SUB8ri:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1, relocImm:{ *:[i8] }:$src2)
/* 83455*/        /*Scope*/ 17, /*->83473*/
/* 83456*/          OPC_CheckPredicate, 15, // Predicate_relocImm16_su
/* 83458*/          OPC_MoveParent,
/* 83459*/          OPC_CheckType, MVT::i16,
/* 83461*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #2
/* 83464*/          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_relocImm16_su>>:$src2) - Complexity = 6
                    // Dst: (SUB16ri:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, relocImm:{ *:[i16] }:$src2)
/* 83473*/        /*Scope*/ 17, /*->83491*/
/* 83474*/          OPC_CheckPredicate, 15, // Predicate_relocImm32_su
/* 83476*/          OPC_MoveParent,
/* 83477*/          OPC_CheckType, MVT::i32,
/* 83479*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #2
/* 83482*/          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_relocImm32_su>>:$src2) - Complexity = 6
                    // Dst: (SUB32ri:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, relocImm:{ *:[i32] }:$src2)
/* 83491*/        /*Scope*/ 19, /*->83511*/
/* 83492*/          OPC_CheckPredicate, 16, // Predicate_i64relocImmSExt32
/* 83494*/          OPC_CheckPredicate, 15, // Predicate_i64relocImmSExt32_su
/* 83496*/          OPC_MoveParent,
/* 83497*/          OPC_CheckType, MVT::i64,
/* 83499*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #2
/* 83502*/          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] }:$src2)
/* 83511*/        /*Scope*/ 19, /*->83531*/
/* 83512*/          OPC_CheckPredicate, 57, // Predicate_i64relocImmSExt8
/* 83514*/          OPC_CheckPredicate, 15, // Predicate_i64relocImmSExt8_su
/* 83516*/          OPC_MoveParent,
/* 83517*/          OPC_CheckType, MVT::i64,
/* 83519*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #2
/* 83522*/          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)
/* 83531*/        0, /*End of Scope*/
/* 83532*/      /*Scope*/ 11, /*->83544*/
/* 83533*/        OPC_CheckType, MVT::i8,
/* 83535*/        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)
/* 83544*/      /*Scope*/ 11, /*->83556*/
/* 83545*/        OPC_CheckType, MVT::i16,
/* 83547*/        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)
/* 83556*/      /*Scope*/ 11, /*->83568*/
/* 83557*/        OPC_CheckType, MVT::i32,
/* 83559*/        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)
/* 83568*/      /*Scope*/ 11, /*->83580*/
/* 83569*/        OPC_CheckType, MVT::i64,
/* 83571*/        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)
/* 83580*/      0, /*End of Scope*/
/* 83581*/    0, /*End of Scope*/
/* 83582*/  /*SwitchOpcode*/ 101|128,3/*485*/, TARGET_VAL(X86ISD::ADC),// ->84071
/* 83586*/    OPC_Scope, 121, /*->83709*/ // 3 children in Scope
/* 83588*/      OPC_RecordChild0, // #0 = $src1
/* 83589*/      OPC_MoveChild1,
/* 83590*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 83593*/      OPC_RecordMemRef,
/* 83594*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 83595*/      OPC_CheckFoldableChainNode,
/* 83596*/      OPC_RecordChild1, // #2 = $src2
/* 83597*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 83599*/      OPC_Scope, 26, /*->83627*/ // 4 children in Scope
/* 83601*/        OPC_CheckPredicate, 5, // Predicate_loadi8
/* 83603*/        OPC_MoveParent,
/* 83604*/        OPC_RecordChild2, // #3 = physreg input EFLAGS
/* 83605*/        OPC_CheckType, MVT::i8,
/* 83607*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 83610*/        OPC_EmitMergeInputChains1_1,
/* 83611*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 83614*/        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)
/* 83627*/      /*Scope*/ 26, /*->83654*/
/* 83628*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 83630*/        OPC_MoveParent,
/* 83631*/        OPC_RecordChild2, // #3 = physreg input EFLAGS
/* 83632*/        OPC_CheckType, MVT::i16,
/* 83634*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 83637*/        OPC_EmitMergeInputChains1_1,
/* 83638*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 83641*/        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)
/* 83654*/      /*Scope*/ 26, /*->83681*/
/* 83655*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 83657*/        OPC_MoveParent,
/* 83658*/        OPC_RecordChild2, // #3 = physreg input EFLAGS
/* 83659*/        OPC_CheckType, MVT::i32,
/* 83661*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 83664*/        OPC_EmitMergeInputChains1_1,
/* 83665*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 83668*/        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)
/* 83681*/      /*Scope*/ 26, /*->83708*/
/* 83682*/        OPC_CheckPredicate, 9, // Predicate_load
/* 83684*/        OPC_MoveParent,
/* 83685*/        OPC_RecordChild2, // #3 = physreg input EFLAGS
/* 83686*/        OPC_CheckType, MVT::i64,
/* 83688*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 83691*/        OPC_EmitMergeInputChains1_1,
/* 83692*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 83695*/        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)
/* 83708*/      0, /*End of Scope*/
/* 83709*/    /*Scope*/ 124, /*->83834*/
/* 83710*/      OPC_MoveChild0,
/* 83711*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 83714*/      OPC_RecordMemRef,
/* 83715*/      OPC_RecordNode, // #0 = 'ld' chained node
/* 83716*/      OPC_CheckFoldableChainNode,
/* 83717*/      OPC_RecordChild1, // #1 = $src2
/* 83718*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 83720*/      OPC_Scope, 27, /*->83749*/ // 4 children in Scope
/* 83722*/        OPC_CheckPredicate, 5, // Predicate_loadi8
/* 83724*/        OPC_MoveParent,
/* 83725*/        OPC_RecordChild1, // #2 = $src1
/* 83726*/        OPC_RecordChild2, // #3 = physreg input EFLAGS
/* 83727*/        OPC_CheckType, MVT::i8,
/* 83729*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 83732*/        OPC_EmitMergeInputChains1_0,
/* 83733*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 83736*/        OPC_MorphNodeTo2, TARGET_VAL(X86::ADC8rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      MVT::i8, MVT::i32, 6/*#Ops*/, 2, 4, 5, 6, 7, 8, 
                  // Src: (X86adc_flag:{ *:[i8] }:{ *:[i32] } (ld:{ *:[i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi8>>, GR8:{ *:[i8] }:$src1, EFLAGS:{ *:[i32] }) - Complexity = 25
                  // Dst: (ADC8rm:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 83749*/      /*Scope*/ 27, /*->83777*/
/* 83750*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 83752*/        OPC_MoveParent,
/* 83753*/        OPC_RecordChild1, // #2 = $src1
/* 83754*/        OPC_RecordChild2, // #3 = physreg input EFLAGS
/* 83755*/        OPC_CheckType, MVT::i16,
/* 83757*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 83760*/        OPC_EmitMergeInputChains1_0,
/* 83761*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 83764*/        OPC_MorphNodeTo2, TARGET_VAL(X86::ADC16rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      MVT::i16, MVT::i32, 6/*#Ops*/, 2, 4, 5, 6, 7, 8, 
                  // Src: (X86adc_flag:{ *:[i16] }:{ *:[i32] } (ld:{ *:[i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>, GR16:{ *:[i16] }:$src1, EFLAGS:{ *:[i32] }) - Complexity = 25
                  // Dst: (ADC16rm:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 83777*/      /*Scope*/ 27, /*->83805*/
/* 83778*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 83780*/        OPC_MoveParent,
/* 83781*/        OPC_RecordChild1, // #2 = $src1
/* 83782*/        OPC_RecordChild2, // #3 = physreg input EFLAGS
/* 83783*/        OPC_CheckType, MVT::i32,
/* 83785*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 83788*/        OPC_EmitMergeInputChains1_0,
/* 83789*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 83792*/        OPC_MorphNodeTo2, TARGET_VAL(X86::ADC32rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      MVT::i32, MVT::i32, 6/*#Ops*/, 2, 4, 5, 6, 7, 8, 
                  // Src: (X86adc_flag:{ *:[i32] }:{ *:[i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>, GR32:{ *:[i32] }:$src1, EFLAGS:{ *:[i32] }) - Complexity = 25
                  // Dst: (ADC32rm:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 83805*/      /*Scope*/ 27, /*->83833*/
/* 83806*/        OPC_CheckPredicate, 9, // Predicate_load
/* 83808*/        OPC_MoveParent,
/* 83809*/        OPC_RecordChild1, // #2 = $src1
/* 83810*/        OPC_RecordChild2, // #3 = physreg input EFLAGS
/* 83811*/        OPC_CheckType, MVT::i64,
/* 83813*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 83816*/        OPC_EmitMergeInputChains1_0,
/* 83817*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 83820*/        OPC_MorphNodeTo2, TARGET_VAL(X86::ADC64rm), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      MVT::i64, MVT::i32, 6/*#Ops*/, 2, 4, 5, 6, 7, 8, 
                  // Src: (X86adc_flag:{ *:[i64] }:{ *:[i32] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, GR64:{ *:[i64] }:$src1, EFLAGS:{ *:[i32] }) - Complexity = 25
                  // Dst: (ADC64rm:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 83833*/      0, /*End of Scope*/
/* 83834*/    /*Scope*/ 106|128,1/*234*/, /*->84070*/
/* 83836*/      OPC_RecordChild0, // #0 = $src1
/* 83837*/      OPC_RecordChild1, // #1 = $src2
/* 83838*/      OPC_Scope, 40|128,1/*168*/, /*->84009*/ // 2 children in Scope
/* 83841*/        OPC_MoveChild1,
/* 83842*/        OPC_Scope, 74, /*->83918*/ // 5 children in Scope
/* 83844*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 83847*/          OPC_Scope, 22, /*->83871*/ // 3 children in Scope
/* 83849*/            OPC_CheckPredicate, 13, // Predicate_i16immSExt8
/* 83851*/            OPC_CheckPredicate, 14, // Predicate_i16immSExt8_su
/* 83853*/            OPC_MoveParent,
/* 83854*/            OPC_RecordChild2, // #2 = physreg input EFLAGS
/* 83855*/            OPC_CheckType, MVT::i16,
/* 83857*/            OPC_EmitConvertToTarget, 1,
/* 83859*/            OPC_EmitCopyToReg, 2, X86::EFLAGS,
/* 83862*/            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)
/* 83871*/          /*Scope*/ 22, /*->83894*/
/* 83872*/            OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/* 83874*/            OPC_CheckPredicate, 14, // Predicate_i32immSExt8_su
/* 83876*/            OPC_MoveParent,
/* 83877*/            OPC_RecordChild2, // #2 = physreg input EFLAGS
/* 83878*/            OPC_CheckType, MVT::i32,
/* 83880*/            OPC_EmitConvertToTarget, 1,
/* 83882*/            OPC_EmitCopyToReg, 2, X86::EFLAGS,
/* 83885*/            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)
/* 83894*/          /*Scope*/ 22, /*->83917*/
/* 83895*/            OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/* 83897*/            OPC_CheckPredicate, 14, // Predicate_i64immSExt8_su
/* 83899*/            OPC_MoveParent,
/* 83900*/            OPC_RecordChild2, // #2 = physreg input EFLAGS
/* 83901*/            OPC_CheckType, MVT::i64,
/* 83903*/            OPC_EmitConvertToTarget, 1,
/* 83905*/            OPC_EmitCopyToReg, 2, X86::EFLAGS,
/* 83908*/            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)
/* 83917*/          0, /*End of Scope*/
/* 83918*/        /*Scope*/ 21, /*->83940*/
/* 83919*/          OPC_CheckPredicate, 15, // Predicate_relocImm8_su
/* 83921*/          OPC_MoveParent,
/* 83922*/          OPC_RecordChild2, // #2 = physreg input EFLAGS
/* 83923*/          OPC_CheckType, MVT::i8,
/* 83925*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #3
/* 83928*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/* 83931*/          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_relocImm8_su>>:$src2, EFLAGS:{ *:[i32] }) - Complexity = 6
                    // Dst: (ADC8ri:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1, relocImm:{ *:[i8] }:$src2)
/* 83940*/        /*Scope*/ 21, /*->83962*/
/* 83941*/          OPC_CheckPredicate, 15, // Predicate_relocImm16_su
/* 83943*/          OPC_MoveParent,
/* 83944*/          OPC_RecordChild2, // #2 = physreg input EFLAGS
/* 83945*/          OPC_CheckType, MVT::i16,
/* 83947*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #3
/* 83950*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/* 83953*/          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_relocImm16_su>>:$src2, EFLAGS:{ *:[i32] }) - Complexity = 6
                    // Dst: (ADC16ri:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, relocImm:{ *:[i16] }:$src2)
/* 83962*/        /*Scope*/ 21, /*->83984*/
/* 83963*/          OPC_CheckPredicate, 15, // Predicate_relocImm32_su
/* 83965*/          OPC_MoveParent,
/* 83966*/          OPC_RecordChild2, // #2 = physreg input EFLAGS
/* 83967*/          OPC_CheckType, MVT::i32,
/* 83969*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #3
/* 83972*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/* 83975*/          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_relocImm32_su>>:$src2, EFLAGS:{ *:[i32] }) - Complexity = 6
                    // Dst: (ADC32ri:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, relocImm:{ *:[i32] }:$src2)
/* 83984*/        /*Scope*/ 23, /*->84008*/
/* 83985*/          OPC_CheckPredicate, 16, // Predicate_i64relocImmSExt32
/* 83987*/          OPC_CheckPredicate, 15, // Predicate_i64relocImmSExt32_su
/* 83989*/          OPC_MoveParent,
/* 83990*/          OPC_RecordChild2, // #2 = physreg input EFLAGS
/* 83991*/          OPC_CheckType, MVT::i64,
/* 83993*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #3
/* 83996*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/* 83999*/          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, relocImm:{ *:[i64] }<<P:Predicate_i64relocImmSExt32>><<P:Predicate_i64relocImmSExt32_su>>:$src2, EFLAGS:{ *:[i32] }) - Complexity = 6
                    // Dst: (ADC64ri32:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, relocImm:{ *:[i64] }:$src2)
/* 84008*/        0, /*End of Scope*/
/* 84009*/      /*Scope*/ 59, /*->84069*/
/* 84010*/        OPC_RecordChild2, // #2 = physreg input EFLAGS
/* 84011*/        OPC_SwitchType /*4 cases */, 12, MVT::i8,// ->84026
/* 84014*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/* 84017*/          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)
/* 84026*/        /*SwitchType*/ 12, MVT::i16,// ->84040
/* 84028*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/* 84031*/          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)
/* 84040*/        /*SwitchType*/ 12, MVT::i32,// ->84054
/* 84042*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/* 84045*/          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)
/* 84054*/        /*SwitchType*/ 12, MVT::i64,// ->84068
/* 84056*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/* 84059*/          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)
/* 84068*/        0, // EndSwitchType
/* 84069*/      0, /*End of Scope*/
/* 84070*/    0, /*End of Scope*/
/* 84071*/  /*SwitchOpcode*/ 43|128,4/*555*/, TARGET_VAL(X86ISD::SBB),// ->84630
/* 84075*/    OPC_Scope, 121, /*->84198*/ // 3 children in Scope
/* 84077*/      OPC_RecordChild0, // #0 = $src1
/* 84078*/      OPC_MoveChild1,
/* 84079*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 84082*/      OPC_RecordMemRef,
/* 84083*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 84084*/      OPC_CheckFoldableChainNode,
/* 84085*/      OPC_RecordChild1, // #2 = $src2
/* 84086*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 84088*/      OPC_Scope, 26, /*->84116*/ // 4 children in Scope
/* 84090*/        OPC_CheckPredicate, 5, // Predicate_loadi8
/* 84092*/        OPC_MoveParent,
/* 84093*/        OPC_RecordChild2, // #3 = physreg input EFLAGS
/* 84094*/        OPC_CheckType, MVT::i8,
/* 84096*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 84099*/        OPC_EmitMergeInputChains1_1,
/* 84100*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 84103*/        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)
/* 84116*/      /*Scope*/ 26, /*->84143*/
/* 84117*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 84119*/        OPC_MoveParent,
/* 84120*/        OPC_RecordChild2, // #3 = physreg input EFLAGS
/* 84121*/        OPC_CheckType, MVT::i16,
/* 84123*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 84126*/        OPC_EmitMergeInputChains1_1,
/* 84127*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 84130*/        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)
/* 84143*/      /*Scope*/ 26, /*->84170*/
/* 84144*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 84146*/        OPC_MoveParent,
/* 84147*/        OPC_RecordChild2, // #3 = physreg input EFLAGS
/* 84148*/        OPC_CheckType, MVT::i32,
/* 84150*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 84153*/        OPC_EmitMergeInputChains1_1,
/* 84154*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 84157*/        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)
/* 84170*/      /*Scope*/ 26, /*->84197*/
/* 84171*/        OPC_CheckPredicate, 9, // Predicate_load
/* 84173*/        OPC_MoveParent,
/* 84174*/        OPC_RecordChild2, // #3 = physreg input EFLAGS
/* 84175*/        OPC_CheckType, MVT::i64,
/* 84177*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 84180*/        OPC_EmitMergeInputChains1_1,
/* 84181*/        OPC_EmitCopyToReg, 3, X86::EFLAGS,
/* 84184*/        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)
/* 84197*/      0, /*End of Scope*/
/* 84198*/    /*Scope*/ 65|128,1/*193*/, /*->84393*/
/* 84200*/      OPC_CheckChild0Integer, 0, 
/* 84202*/      OPC_CheckChild1Integer, 0, 
/* 84204*/      OPC_RecordChild2, // #0 = physreg input EFLAGS
/* 84205*/      OPC_SwitchType /*4 cases */, 26, MVT::i32,// ->84234
/* 84208*/        OPC_EmitNode2, TARGET_VAL(X86::MOV32r0), 0,
                      MVT::i32, MVT::i32, 0/*#Ops*/,  // Results = #1 #2
/* 84215*/        OPC_EmitNode2, TARGET_VAL(X86::MOV32r0), 0,
                      MVT::i32, MVT::i32, 0/*#Ops*/,  // Results = #3 #4
/* 84222*/        OPC_EmitCopyToReg, 0, X86::EFLAGS,
/* 84225*/        OPC_MorphNodeTo2, TARGET_VAL(X86::SBB32rr), 0|OPFL_GlueInput,
                      MVT::i32, MVT::i32, 2/*#Ops*/, 1, 3, 
                  // Src: (X86sbb_flag:{ *:[i32] }:{ *:[i32] } 0:{ *:[i32] }, 0:{ *:[i32] }, EFLAGS:{ *:[i32] }) - Complexity = 13
                  // Dst: (SBB32rr:{ *:[i32] }:{ *:[i32] } (MOV32r0:{ *:[i32] }:{ *:[i32] }), (MOV32r0:{ *:[i32] }:{ *:[i32] }))
/* 84234*/      /*SwitchType*/ 48, MVT::i8,// ->84284
/* 84236*/        OPC_EmitNode2, TARGET_VAL(X86::MOV32r0), 0,
                      MVT::i32, MVT::i32, 0/*#Ops*/,  // Results = #1 #2
/* 84243*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 84246*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i8, 2/*#Ops*/, 1, 3,  // Results = #4
/* 84254*/        OPC_EmitNode2, TARGET_VAL(X86::MOV32r0), 0,
                      MVT::i32, MVT::i32, 0/*#Ops*/,  // Results = #5 #6
/* 84261*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 84264*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i8, 2/*#Ops*/, 5, 7,  // Results = #8
/* 84272*/        OPC_EmitCopyToReg, 0, X86::EFLAGS,
/* 84275*/        OPC_MorphNodeTo2, TARGET_VAL(X86::SBB8rr), 0|OPFL_GlueInput,
                      MVT::i8, MVT::i32, 2/*#Ops*/, 4, 8, 
                  // Src: (X86sbb_flag:{ *:[i8] }:{ *:[i32] } 0:{ *:[i8] }, 0:{ *:[i8] }, EFLAGS:{ *:[i32] }) - Complexity = 13
                  // Dst: (SBB8rr:{ *:[i8] }:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i8] } (MOV32r0:{ *:[i32] }:{ *:[i32] }), sub_8bit:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i8] } (MOV32r0:{ *:[i32] }:{ *:[i32] }), sub_8bit:{ *:[i32] }))
/* 84284*/      /*SwitchType*/ 48, MVT::i16,// ->84334
/* 84286*/        OPC_EmitNode2, TARGET_VAL(X86::MOV32r0), 0,
                      MVT::i32, MVT::i32, 0/*#Ops*/,  // Results = #1 #2
/* 84293*/        OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/* 84296*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i16, 2/*#Ops*/, 1, 3,  // Results = #4
/* 84304*/        OPC_EmitNode2, TARGET_VAL(X86::MOV32r0), 0,
                      MVT::i32, MVT::i32, 0/*#Ops*/,  // Results = #5 #6
/* 84311*/        OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/* 84314*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i16, 2/*#Ops*/, 5, 7,  // Results = #8
/* 84322*/        OPC_EmitCopyToReg, 0, X86::EFLAGS,
/* 84325*/        OPC_MorphNodeTo2, TARGET_VAL(X86::SBB16rr), 0|OPFL_GlueInput,
                      MVT::i16, MVT::i32, 2/*#Ops*/, 4, 8, 
                  // Src: (X86sbb_flag:{ *:[i16] }:{ *:[i32] } 0:{ *:[i16] }, 0:{ *:[i16] }, EFLAGS:{ *:[i32] }) - Complexity = 13
                  // Dst: (SBB16rr:{ *:[i16] }:{ *:[i32] } (EXTRACT_SUBREG:{ *:[i16] } (MOV32r0:{ *:[i32] }:{ *:[i32] }), sub_16bit:{ *:[i32] }), (EXTRACT_SUBREG:{ *:[i16] } (MOV32r0:{ *:[i32] }:{ *:[i32] }), sub_16bit:{ *:[i32] }))
/* 84334*/      /*SwitchType*/ 56, MVT::i64,// ->84392
/* 84336*/        OPC_EmitInteger, MVT::i64, 0, 
/* 84339*/        OPC_EmitNode2, TARGET_VAL(X86::MOV32r0), 0,
                      MVT::i32, MVT::i32, 0/*#Ops*/,  // Results = #2 #3
/* 84346*/        OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/* 84349*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                      MVT::i64, 3/*#Ops*/, 1, 2, 4,  // Results = #5
/* 84358*/        OPC_EmitInteger, MVT::i64, 0, 
/* 84361*/        OPC_EmitNode2, TARGET_VAL(X86::MOV32r0), 0,
                      MVT::i32, MVT::i32, 0/*#Ops*/,  // Results = #7 #8
/* 84368*/        OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/* 84371*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                      MVT::i64, 3/*#Ops*/, 6, 7, 9,  // Results = #10
/* 84380*/        OPC_EmitCopyToReg, 0, X86::EFLAGS,
/* 84383*/        OPC_MorphNodeTo2, TARGET_VAL(X86::SBB64rr), 0|OPFL_GlueInput,
                      MVT::i64, MVT::i32, 2/*#Ops*/, 5, 10, 
                  // Src: (X86sbb_flag:{ *:[i64] }:{ *:[i32] } 0:{ *:[i64] }, 0:{ *:[i64] }, EFLAGS:{ *:[i32] }) - Complexity = 13
                  // Dst: (SBB64rr:{ *:[i64] }:{ *:[i32] } (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (MOV32r0:{ *:[i32] }:{ *:[i32] }), sub_32bit:{ *:[i32] }), (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (MOV32r0:{ *:[i32] }:{ *:[i32] }), sub_32bit:{ *:[i32] }))
/* 84392*/      0, // EndSwitchType
/* 84393*/    /*Scope*/ 106|128,1/*234*/, /*->84629*/
/* 84395*/      OPC_RecordChild0, // #0 = $src1
/* 84396*/      OPC_RecordChild1, // #1 = $src2
/* 84397*/      OPC_Scope, 40|128,1/*168*/, /*->84568*/ // 2 children in Scope
/* 84400*/        OPC_MoveChild1,
/* 84401*/        OPC_Scope, 74, /*->84477*/ // 5 children in Scope
/* 84403*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 84406*/          OPC_Scope, 22, /*->84430*/ // 3 children in Scope
/* 84408*/            OPC_CheckPredicate, 13, // Predicate_i16immSExt8
/* 84410*/            OPC_CheckPredicate, 14, // Predicate_i16immSExt8_su
/* 84412*/            OPC_MoveParent,
/* 84413*/            OPC_RecordChild2, // #2 = physreg input EFLAGS
/* 84414*/            OPC_CheckType, MVT::i16,
/* 84416*/            OPC_EmitConvertToTarget, 1,
/* 84418*/            OPC_EmitCopyToReg, 2, X86::EFLAGS,
/* 84421*/            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)
/* 84430*/          /*Scope*/ 22, /*->84453*/
/* 84431*/            OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/* 84433*/            OPC_CheckPredicate, 14, // Predicate_i32immSExt8_su
/* 84435*/            OPC_MoveParent,
/* 84436*/            OPC_RecordChild2, // #2 = physreg input EFLAGS
/* 84437*/            OPC_CheckType, MVT::i32,
/* 84439*/            OPC_EmitConvertToTarget, 1,
/* 84441*/            OPC_EmitCopyToReg, 2, X86::EFLAGS,
/* 84444*/            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)
/* 84453*/          /*Scope*/ 22, /*->84476*/
/* 84454*/            OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/* 84456*/            OPC_CheckPredicate, 14, // Predicate_i64immSExt8_su
/* 84458*/            OPC_MoveParent,
/* 84459*/            OPC_RecordChild2, // #2 = physreg input EFLAGS
/* 84460*/            OPC_CheckType, MVT::i64,
/* 84462*/            OPC_EmitConvertToTarget, 1,
/* 84464*/            OPC_EmitCopyToReg, 2, X86::EFLAGS,
/* 84467*/            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)
/* 84476*/          0, /*End of Scope*/
/* 84477*/        /*Scope*/ 21, /*->84499*/
/* 84478*/          OPC_CheckPredicate, 15, // Predicate_relocImm8_su
/* 84480*/          OPC_MoveParent,
/* 84481*/          OPC_RecordChild2, // #2 = physreg input EFLAGS
/* 84482*/          OPC_CheckType, MVT::i8,
/* 84484*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #3
/* 84487*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/* 84490*/          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_relocImm8_su>>:$src2, EFLAGS:{ *:[i32] }) - Complexity = 6
                    // Dst: (SBB8ri:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1, relocImm:{ *:[i8] }:$src2)
/* 84499*/        /*Scope*/ 21, /*->84521*/
/* 84500*/          OPC_CheckPredicate, 15, // Predicate_relocImm16_su
/* 84502*/          OPC_MoveParent,
/* 84503*/          OPC_RecordChild2, // #2 = physreg input EFLAGS
/* 84504*/          OPC_CheckType, MVT::i16,
/* 84506*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #3
/* 84509*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/* 84512*/          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_relocImm16_su>>:$src2, EFLAGS:{ *:[i32] }) - Complexity = 6
                    // Dst: (SBB16ri:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, relocImm:{ *:[i16] }:$src2)
/* 84521*/        /*Scope*/ 21, /*->84543*/
/* 84522*/          OPC_CheckPredicate, 15, // Predicate_relocImm32_su
/* 84524*/          OPC_MoveParent,
/* 84525*/          OPC_RecordChild2, // #2 = physreg input EFLAGS
/* 84526*/          OPC_CheckType, MVT::i32,
/* 84528*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #3
/* 84531*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/* 84534*/          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_relocImm32_su>>:$src2, EFLAGS:{ *:[i32] }) - Complexity = 6
                    // Dst: (SBB32ri:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, relocImm:{ *:[i32] }:$src2)
/* 84543*/        /*Scope*/ 23, /*->84567*/
/* 84544*/          OPC_CheckPredicate, 16, // Predicate_i64relocImmSExt32
/* 84546*/          OPC_CheckPredicate, 15, // Predicate_i64relocImmSExt32_su
/* 84548*/          OPC_MoveParent,
/* 84549*/          OPC_RecordChild2, // #2 = physreg input EFLAGS
/* 84550*/          OPC_CheckType, MVT::i64,
/* 84552*/          OPC_CheckComplexPat, /*CP*/1, /*#*/1, // selectRelocImm:$src2 #3
/* 84555*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/* 84558*/          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, relocImm:{ *:[i64] }<<P:Predicate_i64relocImmSExt32>><<P:Predicate_i64relocImmSExt32_su>>:$src2, EFLAGS:{ *:[i32] }) - Complexity = 6
                    // Dst: (SBB64ri32:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, relocImm:{ *:[i64] }:$src2)
/* 84567*/        0, /*End of Scope*/
/* 84568*/      /*Scope*/ 59, /*->84628*/
/* 84569*/        OPC_RecordChild2, // #2 = physreg input EFLAGS
/* 84570*/        OPC_SwitchType /*4 cases */, 12, MVT::i8,// ->84585
/* 84573*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/* 84576*/          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)
/* 84585*/        /*SwitchType*/ 12, MVT::i16,// ->84599
/* 84587*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/* 84590*/          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)
/* 84599*/        /*SwitchType*/ 12, MVT::i32,// ->84613
/* 84601*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/* 84604*/          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)
/* 84613*/        /*SwitchType*/ 12, MVT::i64,// ->84627
/* 84615*/          OPC_EmitCopyToReg, 2, X86::EFLAGS,
/* 84618*/          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)
/* 84627*/        0, // EndSwitchType
/* 84628*/      0, /*End of Scope*/
/* 84629*/    0, /*End of Scope*/
/* 84630*/  /*SwitchOpcode*/ 0|128,1/*128*/, TARGET_VAL(ISD::BRIND),// ->84762
/* 84634*/    OPC_RecordNode, // #0 = 'brind' chained node
/* 84635*/    OPC_Scope, 84, /*->84721*/ // 2 children in Scope
/* 84637*/      OPC_MoveChild1,
/* 84638*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 84641*/      OPC_RecordMemRef,
/* 84642*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 84643*/      OPC_CheckFoldableChainNode,
/* 84644*/      OPC_RecordChild1, // #2 = $dst
/* 84645*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 84647*/      OPC_SwitchType /*3 cases */, 22, MVT::i16,// ->84672
/* 84650*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 84652*/        OPC_MoveParent,
/* 84653*/        OPC_CheckPatternPredicate, 99, // (!Subtarget->is64Bit())
/* 84655*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 84658*/        OPC_EmitMergeInputChains, 2, 0, 1, 
/* 84662*/        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)
/* 84672*/      /*SwitchType*/ 22, MVT::i32,// ->84696
/* 84674*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 84676*/        OPC_MoveParent,
/* 84677*/        OPC_CheckPatternPredicate, 99, // (!Subtarget->is64Bit())
/* 84679*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 84682*/        OPC_EmitMergeInputChains, 2, 0, 1, 
/* 84686*/        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)
/* 84696*/      /*SwitchType*/ 22, MVT::i64,// ->84720
/* 84698*/        OPC_CheckPredicate, 9, // Predicate_load
/* 84700*/        OPC_MoveParent,
/* 84701*/        OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/* 84703*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 84706*/        OPC_EmitMergeInputChains, 2, 0, 1, 
/* 84710*/        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)
/* 84720*/      0, // EndSwitchType
/* 84721*/    /*Scope*/ 39, /*->84761*/
/* 84722*/      OPC_RecordChild1, // #1 = $dst
/* 84723*/      OPC_Scope, 11, /*->84736*/ // 3 children in Scope
/* 84725*/        OPC_CheckChild1Type, MVT::i16,
/* 84727*/        OPC_CheckPatternPredicate, 99, // (!Subtarget->is64Bit())
/* 84729*/        OPC_EmitMergeInputChains1_0,
/* 84730*/        OPC_MorphNodeTo0, TARGET_VAL(X86::JMP16r), 0|OPFL_Chain,
                      1/*#Ops*/, 1, 
                  // Src: (brind GR16:{ *:[i16] }:$dst) - Complexity = 3
                  // Dst: (JMP16r GR16:{ *:[i16] }:$dst)
/* 84736*/      /*Scope*/ 11, /*->84748*/
/* 84737*/        OPC_CheckChild1Type, MVT::i32,
/* 84739*/        OPC_CheckPatternPredicate, 99, // (!Subtarget->is64Bit())
/* 84741*/        OPC_EmitMergeInputChains1_0,
/* 84742*/        OPC_MorphNodeTo0, TARGET_VAL(X86::JMP32r), 0|OPFL_Chain,
                      1/*#Ops*/, 1, 
                  // Src: (brind GR32:{ *:[i32] }:$dst) - Complexity = 3
                  // Dst: (JMP32r GR32:{ *:[i32] }:$dst)
/* 84748*/      /*Scope*/ 11, /*->84760*/
/* 84749*/        OPC_CheckChild1Type, MVT::i64,
/* 84751*/        OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/* 84753*/        OPC_EmitMergeInputChains1_0,
/* 84754*/        OPC_MorphNodeTo0, TARGET_VAL(X86::JMP64r), 0|OPFL_Chain,
                      1/*#Ops*/, 1, 
                  // Src: (brind GR64:{ *:[i64] }:$dst) - Complexity = 3
                  // Dst: (JMP64r GR64:{ *:[i64] }:$dst)
/* 84760*/      0, /*End of Scope*/
/* 84761*/    0, /*End of Scope*/
/* 84762*/  /*SwitchOpcode*/ 0|128,1/*128*/, TARGET_VAL(X86ISD::NT_BRIND),// ->84894
/* 84766*/    OPC_RecordNode, // #0 = 'X86NoTrackBrind' chained node
/* 84767*/    OPC_Scope, 84, /*->84853*/ // 2 children in Scope
/* 84769*/      OPC_MoveChild1,
/* 84770*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 84773*/      OPC_RecordMemRef,
/* 84774*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 84775*/      OPC_CheckFoldableChainNode,
/* 84776*/      OPC_RecordChild1, // #2 = $dst
/* 84777*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 84779*/      OPC_SwitchType /*3 cases */, 22, MVT::i16,// ->84804
/* 84782*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 84784*/        OPC_MoveParent,
/* 84785*/        OPC_CheckPatternPredicate, 99, // (!Subtarget->is64Bit())
/* 84787*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 84790*/        OPC_EmitMergeInputChains, 2, 0, 1, 
/* 84794*/        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)
/* 84804*/      /*SwitchType*/ 22, MVT::i32,// ->84828
/* 84806*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 84808*/        OPC_MoveParent,
/* 84809*/        OPC_CheckPatternPredicate, 99, // (!Subtarget->is64Bit())
/* 84811*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 84814*/        OPC_EmitMergeInputChains, 2, 0, 1, 
/* 84818*/        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)
/* 84828*/      /*SwitchType*/ 22, MVT::i64,// ->84852
/* 84830*/        OPC_CheckPredicate, 9, // Predicate_load
/* 84832*/        OPC_MoveParent,
/* 84833*/        OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/* 84835*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 84838*/        OPC_EmitMergeInputChains, 2, 0, 1, 
/* 84842*/        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)
/* 84852*/      0, // EndSwitchType
/* 84853*/    /*Scope*/ 39, /*->84893*/
/* 84854*/      OPC_RecordChild1, // #1 = $dst
/* 84855*/      OPC_Scope, 11, /*->84868*/ // 3 children in Scope
/* 84857*/        OPC_CheckChild1Type, MVT::i16,
/* 84859*/        OPC_CheckPatternPredicate, 99, // (!Subtarget->is64Bit())
/* 84861*/        OPC_EmitMergeInputChains1_0,
/* 84862*/        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)
/* 84868*/      /*Scope*/ 11, /*->84880*/
/* 84869*/        OPC_CheckChild1Type, MVT::i32,
/* 84871*/        OPC_CheckPatternPredicate, 99, // (!Subtarget->is64Bit())
/* 84873*/        OPC_EmitMergeInputChains1_0,
/* 84874*/        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)
/* 84880*/      /*Scope*/ 11, /*->84892*/
/* 84881*/        OPC_CheckChild1Type, MVT::i64,
/* 84883*/        OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/* 84885*/        OPC_EmitMergeInputChains1_0,
/* 84886*/        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)
/* 84892*/      0, /*End of Scope*/
/* 84893*/    0, /*End of Scope*/
/* 84894*/  /*SwitchOpcode*/ 99|128,1/*227*/, TARGET_VAL(X86ISD::CALL),// ->85125
/* 84898*/    OPC_RecordNode, // #0 = 'X86call' chained node
/* 84899*/    OPC_CaptureGlueInput,
/* 84900*/    OPC_Scope, 84, /*->84986*/ // 2 children in Scope
/* 84902*/      OPC_MoveChild1,
/* 84903*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 84906*/      OPC_RecordMemRef,
/* 84907*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 84908*/      OPC_CheckFoldableChainNode,
/* 84909*/      OPC_RecordChild1, // #2 = $dst
/* 84910*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 84912*/      OPC_SwitchType /*3 cases */, 22, MVT::i16,// ->84937
/* 84915*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 84917*/        OPC_MoveParent,
/* 84918*/        OPC_CheckPatternPredicate, 136, // (!Subtarget->slowTwoMemOps()) && (!Subtarget->is64Bit())
/* 84920*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 84923*/        OPC_EmitMergeInputChains, 2, 0, 1, 
/* 84927*/        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)
/* 84937*/      /*SwitchType*/ 22, MVT::i32,// ->84961
/* 84939*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 84941*/        OPC_MoveParent,
/* 84942*/        OPC_CheckPatternPredicate, 137, // (!Subtarget->slowTwoMemOps()) && (!Subtarget->is64Bit()) && (!Subtarget->useRetpolineIndirectCalls())
/* 84944*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 84947*/        OPC_EmitMergeInputChains, 2, 0, 1, 
/* 84951*/        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)
/* 84961*/      /*SwitchType*/ 22, MVT::i64,// ->84985
/* 84963*/        OPC_CheckPredicate, 9, // Predicate_load
/* 84965*/        OPC_MoveParent,
/* 84966*/        OPC_CheckPatternPredicate, 138, // (!Subtarget->slowTwoMemOps()) && (Subtarget->is64Bit()) && (!Subtarget->useRetpolineIndirectCalls())
/* 84968*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 84971*/        OPC_EmitMergeInputChains, 2, 0, 1, 
/* 84975*/        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)
/* 84985*/      0, // EndSwitchType
/* 84986*/    /*Scope*/ 8|128,1/*136*/, /*->85124*/
/* 84988*/      OPC_RecordChild1, // #1 = $dst
/* 84989*/      OPC_Scope, 70, /*->85061*/ // 4 children in Scope
/* 84991*/        OPC_MoveChild1,
/* 84992*/        OPC_SwitchOpcode /*3 cases */, 22, TARGET_VAL(ISD::TargetGlobalAddress),// ->85018
/* 84996*/          OPC_SwitchType /*2 cases */, 8, MVT::i64,// ->85007
/* 84999*/            OPC_MoveParent,
/* 85000*/            OPC_EmitMergeInputChains1_0,
/* 85001*/            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)
/* 85007*/          /*SwitchType*/ 8, MVT::i32,// ->85017
/* 85009*/            OPC_MoveParent,
/* 85010*/            OPC_EmitMergeInputChains1_0,
/* 85011*/            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)
/* 85017*/          0, // EndSwitchType
/* 85018*/        /*SwitchOpcode*/ 22, TARGET_VAL(ISD::TargetExternalSymbol),// ->85043
/* 85021*/          OPC_SwitchType /*2 cases */, 8, MVT::i64,// ->85032
/* 85024*/            OPC_MoveParent,
/* 85025*/            OPC_EmitMergeInputChains1_0,
/* 85026*/            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)
/* 85032*/          /*SwitchType*/ 8, MVT::i32,// ->85042
/* 85034*/            OPC_MoveParent,
/* 85035*/            OPC_EmitMergeInputChains1_0,
/* 85036*/            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)
/* 85042*/          0, // EndSwitchType
/* 85043*/        /*SwitchOpcode*/ 14, TARGET_VAL(ISD::Constant),// ->85060
/* 85046*/          OPC_CheckType, MVT::i32,
/* 85048*/          OPC_MoveParent,
/* 85049*/          OPC_CheckPatternPredicate, 139, // (Subtarget->isLegalToCallImmediateAddr())
/* 85051*/          OPC_EmitMergeInputChains1_0,
/* 85052*/          OPC_EmitConvertToTarget, 1,
/* 85054*/          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)
/* 85060*/        0, // EndSwitchOpcode
/* 85061*/      /*Scope*/ 11, /*->85073*/
/* 85062*/        OPC_CheckChild1Type, MVT::i16,
/* 85064*/        OPC_CheckPatternPredicate, 99, // (!Subtarget->is64Bit())
/* 85066*/        OPC_EmitMergeInputChains1_0,
/* 85067*/        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)
/* 85073*/      /*Scope*/ 24, /*->85098*/
/* 85074*/        OPC_CheckChild1Type, MVT::i32,
/* 85076*/        OPC_Scope, 9, /*->85087*/ // 2 children in Scope
/* 85078*/          OPC_CheckPatternPredicate, 104, // (!Subtarget->is64Bit()) && (!Subtarget->useRetpolineIndirectCalls())
/* 85080*/          OPC_EmitMergeInputChains1_0,
/* 85081*/          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)
/* 85087*/        /*Scope*/ 9, /*->85097*/
/* 85088*/          OPC_CheckPatternPredicate, 106, // (!Subtarget->is64Bit()) && (Subtarget->useRetpolineIndirectCalls())
/* 85090*/          OPC_EmitMergeInputChains1_0,
/* 85091*/          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)
/* 85097*/        0, /*End of Scope*/
/* 85098*/      /*Scope*/ 24, /*->85123*/
/* 85099*/        OPC_CheckChild1Type, MVT::i64,
/* 85101*/        OPC_Scope, 9, /*->85112*/ // 2 children in Scope
/* 85103*/          OPC_CheckPatternPredicate, 100, // (Subtarget->is64Bit()) && (!Subtarget->useRetpolineIndirectCalls())
/* 85105*/          OPC_EmitMergeInputChains1_0,
/* 85106*/          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)
/* 85112*/        /*Scope*/ 9, /*->85122*/
/* 85113*/          OPC_CheckPatternPredicate, 105, // (Subtarget->is64Bit()) && (Subtarget->useRetpolineIndirectCalls())
/* 85115*/          OPC_EmitMergeInputChains1_0,
/* 85116*/          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)
/* 85122*/        0, /*End of Scope*/
/* 85123*/      0, /*End of Scope*/
/* 85124*/    0, /*End of Scope*/
/* 85125*/  /*SwitchOpcode*/ 1|128,1/*129*/, TARGET_VAL(X86ISD::NT_CALL),// ->85258
/* 85129*/    OPC_RecordNode, // #0 = 'X86NoTrackCall' chained node
/* 85130*/    OPC_CaptureGlueInput,
/* 85131*/    OPC_Scope, 84, /*->85217*/ // 2 children in Scope
/* 85133*/      OPC_MoveChild1,
/* 85134*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 85137*/      OPC_RecordMemRef,
/* 85138*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 85139*/      OPC_CheckFoldableChainNode,
/* 85140*/      OPC_RecordChild1, // #2 = $dst
/* 85141*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 85143*/      OPC_SwitchType /*3 cases */, 22, MVT::i16,// ->85168
/* 85146*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 85148*/        OPC_MoveParent,
/* 85149*/        OPC_CheckPatternPredicate, 136, // (!Subtarget->slowTwoMemOps()) && (!Subtarget->is64Bit())
/* 85151*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 85154*/        OPC_EmitMergeInputChains, 2, 0, 1, 
/* 85158*/        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)
/* 85168*/      /*SwitchType*/ 22, MVT::i32,// ->85192
/* 85170*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 85172*/        OPC_MoveParent,
/* 85173*/        OPC_CheckPatternPredicate, 136, // (!Subtarget->slowTwoMemOps()) && (!Subtarget->is64Bit())
/* 85175*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 85178*/        OPC_EmitMergeInputChains, 2, 0, 1, 
/* 85182*/        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)
/* 85192*/      /*SwitchType*/ 22, MVT::i64,// ->85216
/* 85194*/        OPC_CheckPredicate, 9, // Predicate_load
/* 85196*/        OPC_MoveParent,
/* 85197*/        OPC_CheckPatternPredicate, 140, // (!Subtarget->slowTwoMemOps()) && (Subtarget->is64Bit())
/* 85199*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 85202*/        OPC_EmitMergeInputChains, 2, 0, 1, 
/* 85206*/        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)
/* 85216*/      0, // EndSwitchType
/* 85217*/    /*Scope*/ 39, /*->85257*/
/* 85218*/      OPC_RecordChild1, // #1 = $dst
/* 85219*/      OPC_Scope, 11, /*->85232*/ // 3 children in Scope
/* 85221*/        OPC_CheckChild1Type, MVT::i16,
/* 85223*/        OPC_CheckPatternPredicate, 99, // (!Subtarget->is64Bit())
/* 85225*/        OPC_EmitMergeInputChains1_0,
/* 85226*/        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)
/* 85232*/      /*Scope*/ 11, /*->85244*/
/* 85233*/        OPC_CheckChild1Type, MVT::i32,
/* 85235*/        OPC_CheckPatternPredicate, 99, // (!Subtarget->is64Bit())
/* 85237*/        OPC_EmitMergeInputChains1_0,
/* 85238*/        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)
/* 85244*/      /*Scope*/ 11, /*->85256*/
/* 85245*/        OPC_CheckChild1Type, MVT::i64,
/* 85247*/        OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/* 85249*/        OPC_EmitMergeInputChains1_0,
/* 85250*/        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)
/* 85256*/      0, /*End of Scope*/
/* 85257*/    0, /*End of Scope*/
/* 85258*/  /*SwitchOpcode*/ 122, TARGET_VAL(X86ISD::VEXTRACT_STORE),// ->85383
/* 85261*/    OPC_RecordMemRef,
/* 85262*/    OPC_RecordNode, // #0 = 'X86vextractst' chained node
/* 85263*/    OPC_Scope, 28, /*->85293*/ // 2 children in Scope
/* 85265*/      OPC_MoveChild1,
/* 85266*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::MOVHLPS),
/* 85269*/      OPC_RecordChild0, // #1 = $src
/* 85270*/      OPC_CheckChild1Same, 1,
/* 85272*/      OPC_MoveParent,
/* 85273*/      OPC_RecordChild2, // #2 = $dst
/* 85274*/      OPC_CheckPredicate, 49, // Predicate_X86vextractstore64
/* 85276*/      OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/* 85278*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 85281*/      OPC_EmitMergeInputChains1_0,
/* 85282*/      OPC_MorphNodeTo0, TARGET_VAL(X86::MOVHPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                    6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                // Src: (X86vextractst (X86Movhlps:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src, VR128:{ *:[v4f32] }:$src), addr:{ *:[iPTR] }:$dst)<<P:Predicate_X86vextractstore64>> - Complexity = 25
                // Dst: (MOVHPSmr addr:{ *:[iPTR] }:$dst, VR128:{ *:[v4f32] }:$src)
/* 85293*/    /*Scope*/ 88, /*->85382*/
/* 85294*/      OPC_RecordChild1, // #1 = $src
/* 85295*/      OPC_Scope, 22, /*->85319*/ // 2 children in Scope
/* 85297*/        OPC_CheckChild1Type, MVT::v4f32,
/* 85299*/        OPC_RecordChild2, // #2 = $dst
/* 85300*/        OPC_CheckPredicate, 49, // Predicate_X86vextractstore64
/* 85302*/        OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/* 85304*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 85307*/        OPC_EmitMergeInputChains1_0,
/* 85308*/        OPC_MorphNodeTo0, TARGET_VAL(X86::MOVLPSmr), 0|OPFL_Chain|OPFL_MemRefs,
                      6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (X86vextractst VR128:{ *:[v4f32] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_X86vextractstore64>> - Complexity = 22
                  // Dst: (MOVLPSmr addr:{ *:[iPTR] }:$dst, VR128:{ *:[v4f32] }:$src)
/* 85319*/      /*Scope*/ 61, /*->85381*/
/* 85320*/        OPC_CheckChild1Type, MVT::v2i64,
/* 85322*/        OPC_RecordChild2, // #2 = $dst
/* 85323*/        OPC_CheckPredicate, 49, // Predicate_X86vextractstore64
/* 85325*/        OPC_Scope, 17, /*->85344*/ // 3 children in Scope
/* 85327*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 85329*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 85332*/          OPC_EmitMergeInputChains1_0,
/* 85333*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVPQI2QImr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (X86vextractst VR128:{ *:[v2i64] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_X86vextractstore64>> - Complexity = 22
                    // Dst: (VMOVPQI2QImr addr:{ *:[iPTR] }:$dst, VR128:{ *:[v2i64] }:$src)
/* 85344*/        /*Scope*/ 17, /*->85362*/
/* 85345*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 85347*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 85350*/          OPC_EmitMergeInputChains1_0,
/* 85351*/          OPC_MorphNodeTo0, TARGET_VAL(X86::MOVPQI2QImr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (X86vextractst VR128:{ *:[v2i64] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_X86vextractstore64>> - Complexity = 22
                    // Dst: (MOVPQI2QImr addr:{ *:[iPTR] }:$dst, VR128:{ *:[v2i64] }:$src)
/* 85362*/        /*Scope*/ 17, /*->85380*/
/* 85363*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 85365*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/* 85368*/          OPC_EmitMergeInputChains1_0,
/* 85369*/          OPC_MorphNodeTo0, TARGET_VAL(X86::VMOVPQI2QIZmr), 0|OPFL_Chain|OPFL_MemRefs,
                        6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                    // Src: (X86vextractst VR128X:{ *:[v2i64] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_X86vextractstore64>> - Complexity = 22
                    // Dst: (VMOVPQI2QIZmr addr:{ *:[iPTR] }:$dst, VR128X:{ *:[v2i64] }:$src)
/* 85380*/        0, /*End of Scope*/
/* 85381*/      0, /*End of Scope*/
/* 85382*/    0, /*End of Scope*/
/* 85383*/  /*SwitchOpcode*/ 4|128,4/*516*/, TARGET_VAL(ISD::STRICT_FP_TO_SINT),// ->85903
/* 85387*/    OPC_RecordNode, // #0 = 'strict_fp_to_sint' chained node
/* 85388*/    OPC_Scope, 38|128,2/*294*/, /*->85685*/ // 4 children in Scope
/* 85391*/      OPC_MoveChild1,
/* 85392*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 85395*/      OPC_RecordMemRef,
/* 85396*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 85397*/      OPC_CheckFoldableChainNode,
/* 85398*/      OPC_RecordChild1, // #2 = $src
/* 85399*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 85401*/      OPC_CheckPredicate, 9, // Predicate_load
/* 85403*/      OPC_SwitchType /*2 cases */, 9|128,1/*137*/, MVT::f32,// ->85544
/* 85407*/        OPC_MoveParent,
/* 85408*/        OPC_SwitchType /*2 cases */, 65, MVT::i32,// ->85476
/* 85411*/          OPC_Scope, 20, /*->85433*/ // 3 children in Scope
/* 85413*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 85415*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/* 85418*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/* 85422*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSS2SIrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (strict_fp_to_sint:{ *:[i32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VCVTTSS2SIrm:{ *:[i32] } addr:{ *:[iPTR] }:$src)
/* 85433*/          /*Scope*/ 20, /*->85454*/
/* 85434*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/* 85436*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/* 85439*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/* 85443*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CVTTSS2SIrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (strict_fp_to_sint:{ *:[i32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (CVTTSS2SIrm:{ *:[i32] } addr:{ *:[iPTR] }:$src)
/* 85454*/          /*Scope*/ 20, /*->85475*/
/* 85455*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 85457*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/* 85460*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/* 85464*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSS2SIZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (strict_fp_to_sint:{ *:[i32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VCVTTSS2SIZrm:{ *:[i32] } addr:{ *:[iPTR] }:$src)
/* 85475*/          0, /*End of Scope*/
/* 85476*/        /*SwitchType*/ 65, MVT::i64,// ->85543
/* 85478*/          OPC_Scope, 20, /*->85500*/ // 3 children in Scope
/* 85480*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 85482*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/* 85485*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/* 85489*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSS2SI64rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (strict_fp_to_sint:{ *:[i64] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VCVTTSS2SI64rm:{ *:[i64] } addr:{ *:[iPTR] }:$src)
/* 85500*/          /*Scope*/ 20, /*->85521*/
/* 85501*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/* 85503*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/* 85506*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/* 85510*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CVTTSS2SI64rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (strict_fp_to_sint:{ *:[i64] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (CVTTSS2SI64rm:{ *:[i64] } addr:{ *:[iPTR] }:$src)
/* 85521*/          /*Scope*/ 20, /*->85542*/
/* 85522*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 85524*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/* 85527*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/* 85531*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSS2SI64Zrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (strict_fp_to_sint:{ *:[i64] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VCVTTSS2SI64Zrm:{ *:[i64] } addr:{ *:[iPTR] }:$src)
/* 85542*/          0, /*End of Scope*/
/* 85543*/        0, // EndSwitchType
/* 85544*/      /*SwitchType*/ 9|128,1/*137*/, MVT::f64,// ->85684
/* 85547*/        OPC_MoveParent,
/* 85548*/        OPC_SwitchType /*2 cases */, 65, MVT::i32,// ->85616
/* 85551*/          OPC_Scope, 20, /*->85573*/ // 3 children in Scope
/* 85553*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 85555*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/* 85558*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/* 85562*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSD2SIrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (strict_fp_to_sint:{ *:[i32] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VCVTTSD2SIrm:{ *:[i32] } addr:{ *:[iPTR] }:$src)
/* 85573*/          /*Scope*/ 20, /*->85594*/
/* 85574*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 85576*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/* 85579*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/* 85583*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CVTTSD2SIrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (strict_fp_to_sint:{ *:[i32] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (CVTTSD2SIrm:{ *:[i32] } addr:{ *:[iPTR] }:$src)
/* 85594*/          /*Scope*/ 20, /*->85615*/
/* 85595*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 85597*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/* 85600*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/* 85604*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSD2SIZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (strict_fp_to_sint:{ *:[i32] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VCVTTSD2SIZrm:{ *:[i32] } addr:{ *:[iPTR] }:$src)
/* 85615*/          0, /*End of Scope*/
/* 85616*/        /*SwitchType*/ 65, MVT::i64,// ->85683
/* 85618*/          OPC_Scope, 20, /*->85640*/ // 3 children in Scope
/* 85620*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 85622*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/* 85625*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/* 85629*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSD2SI64rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (strict_fp_to_sint:{ *:[i64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VCVTTSD2SI64rm:{ *:[i64] } addr:{ *:[iPTR] }:$src)
/* 85640*/          /*Scope*/ 20, /*->85661*/
/* 85641*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 85643*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/* 85646*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/* 85650*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CVTTSD2SI64rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (strict_fp_to_sint:{ *:[i64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (CVTTSD2SI64rm:{ *:[i64] } addr:{ *:[iPTR] }:$src)
/* 85661*/          /*Scope*/ 20, /*->85682*/
/* 85662*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 85664*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/* 85667*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/* 85671*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSD2SI64Zrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::i64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (strict_fp_to_sint:{ *:[i64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VCVTTSD2SI64Zrm:{ *:[i64] } addr:{ *:[iPTR] }:$src)
/* 85682*/          0, /*End of Scope*/
/* 85683*/        0, // EndSwitchType
/* 85684*/      0, // EndSwitchType
/* 85685*/    /*Scope*/ 33|128,1/*161*/, /*->85848*/
/* 85687*/      OPC_RecordChild1, // #1 = $src
/* 85688*/      OPC_Scope, 78, /*->85768*/ // 2 children in Scope
/* 85690*/        OPC_CheckChild1Type, MVT::f32,
/* 85692*/        OPC_SwitchType /*2 cases */, 35, MVT::i32,// ->85730
/* 85695*/          OPC_Scope, 10, /*->85707*/ // 3 children in Scope
/* 85697*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 85699*/            OPC_EmitMergeInputChains1_0,
/* 85700*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSS2SIrr), 0|OPFL_Chain,
                          MVT::i32, 1/*#Ops*/, 1, 
                      // Src: (strict_fp_to_sint:{ *:[i32] } FR32:{ *:[f32] }:$src) - Complexity = 3
                      // Dst: (VCVTTSS2SIrr:{ *:[i32] } FR32:{ *:[f32] }:$src)
/* 85707*/          /*Scope*/ 10, /*->85718*/
/* 85708*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/* 85710*/            OPC_EmitMergeInputChains1_0,
/* 85711*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CVTTSS2SIrr), 0|OPFL_Chain,
                          MVT::i32, 1/*#Ops*/, 1, 
                      // Src: (strict_fp_to_sint:{ *:[i32] } FR32:{ *:[f32] }:$src) - Complexity = 3
                      // Dst: (CVTTSS2SIrr:{ *:[i32] } FR32:{ *:[f32] }:$src)
/* 85718*/          /*Scope*/ 10, /*->85729*/
/* 85719*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 85721*/            OPC_EmitMergeInputChains1_0,
/* 85722*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSS2SIZrr), 0|OPFL_Chain,
                          MVT::i32, 1/*#Ops*/, 1, 
                      // Src: (strict_fp_to_sint:{ *:[i32] } FR32X:{ *:[f32] }:$src) - Complexity = 3
                      // Dst: (VCVTTSS2SIZrr:{ *:[i32] } FR32X:{ *:[f32] }:$src)
/* 85729*/          0, /*End of Scope*/
/* 85730*/        /*SwitchType*/ 35, MVT::i64,// ->85767
/* 85732*/          OPC_Scope, 10, /*->85744*/ // 3 children in Scope
/* 85734*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 85736*/            OPC_EmitMergeInputChains1_0,
/* 85737*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSS2SI64rr), 0|OPFL_Chain,
                          MVT::i64, 1/*#Ops*/, 1, 
                      // Src: (strict_fp_to_sint:{ *:[i64] } FR32:{ *:[f32] }:$src) - Complexity = 3
                      // Dst: (VCVTTSS2SI64rr:{ *:[i64] } FR32:{ *:[f32] }:$src)
/* 85744*/          /*Scope*/ 10, /*->85755*/
/* 85745*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/* 85747*/            OPC_EmitMergeInputChains1_0,
/* 85748*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CVTTSS2SI64rr), 0|OPFL_Chain,
                          MVT::i64, 1/*#Ops*/, 1, 
                      // Src: (strict_fp_to_sint:{ *:[i64] } FR32:{ *:[f32] }:$src) - Complexity = 3
                      // Dst: (CVTTSS2SI64rr:{ *:[i64] } FR32:{ *:[f32] }:$src)
/* 85755*/          /*Scope*/ 10, /*->85766*/
/* 85756*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 85758*/            OPC_EmitMergeInputChains1_0,
/* 85759*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSS2SI64Zrr), 0|OPFL_Chain,
                          MVT::i64, 1/*#Ops*/, 1, 
                      // Src: (strict_fp_to_sint:{ *:[i64] } FR32X:{ *:[f32] }:$src) - Complexity = 3
                      // Dst: (VCVTTSS2SI64Zrr:{ *:[i64] } FR32X:{ *:[f32] }:$src)
/* 85766*/          0, /*End of Scope*/
/* 85767*/        0, // EndSwitchType
/* 85768*/      /*Scope*/ 78, /*->85847*/
/* 85769*/        OPC_CheckChild1Type, MVT::f64,
/* 85771*/        OPC_SwitchType /*2 cases */, 35, MVT::i32,// ->85809
/* 85774*/          OPC_Scope, 10, /*->85786*/ // 3 children in Scope
/* 85776*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 85778*/            OPC_EmitMergeInputChains1_0,
/* 85779*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSD2SIrr), 0|OPFL_Chain,
                          MVT::i32, 1/*#Ops*/, 1, 
                      // Src: (strict_fp_to_sint:{ *:[i32] } FR64:{ *:[f64] }:$src) - Complexity = 3
                      // Dst: (VCVTTSD2SIrr:{ *:[i32] } FR64:{ *:[f64] }:$src)
/* 85786*/          /*Scope*/ 10, /*->85797*/
/* 85787*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 85789*/            OPC_EmitMergeInputChains1_0,
/* 85790*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CVTTSD2SIrr), 0|OPFL_Chain,
                          MVT::i32, 1/*#Ops*/, 1, 
                      // Src: (strict_fp_to_sint:{ *:[i32] } FR64:{ *:[f64] }:$src) - Complexity = 3
                      // Dst: (CVTTSD2SIrr:{ *:[i32] } FR64:{ *:[f64] }:$src)
/* 85797*/          /*Scope*/ 10, /*->85808*/
/* 85798*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 85800*/            OPC_EmitMergeInputChains1_0,
/* 85801*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSD2SIZrr), 0|OPFL_Chain,
                          MVT::i32, 1/*#Ops*/, 1, 
                      // Src: (strict_fp_to_sint:{ *:[i32] } FR64X:{ *:[f64] }:$src) - Complexity = 3
                      // Dst: (VCVTTSD2SIZrr:{ *:[i32] } FR64X:{ *:[f64] }:$src)
/* 85808*/          0, /*End of Scope*/
/* 85809*/        /*SwitchType*/ 35, MVT::i64,// ->85846
/* 85811*/          OPC_Scope, 10, /*->85823*/ // 3 children in Scope
/* 85813*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 85815*/            OPC_EmitMergeInputChains1_0,
/* 85816*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSD2SI64rr), 0|OPFL_Chain,
                          MVT::i64, 1/*#Ops*/, 1, 
                      // Src: (strict_fp_to_sint:{ *:[i64] } FR64:{ *:[f64] }:$src) - Complexity = 3
                      // Dst: (VCVTTSD2SI64rr:{ *:[i64] } FR64:{ *:[f64] }:$src)
/* 85823*/          /*Scope*/ 10, /*->85834*/
/* 85824*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 85826*/            OPC_EmitMergeInputChains1_0,
/* 85827*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CVTTSD2SI64rr), 0|OPFL_Chain,
                          MVT::i64, 1/*#Ops*/, 1, 
                      // Src: (strict_fp_to_sint:{ *:[i64] } FR64:{ *:[f64] }:$src) - Complexity = 3
                      // Dst: (CVTTSD2SI64rr:{ *:[i64] } FR64:{ *:[f64] }:$src)
/* 85834*/          /*Scope*/ 10, /*->85845*/
/* 85835*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 85837*/            OPC_EmitMergeInputChains1_0,
/* 85838*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSD2SI64Zrr), 0|OPFL_Chain,
                          MVT::i64, 1/*#Ops*/, 1, 
                      // Src: (strict_fp_to_sint:{ *:[i64] } FR64X:{ *:[f64] }:$src) - Complexity = 3
                      // Dst: (VCVTTSD2SI64Zrr:{ *:[i64] } FR64X:{ *:[f64] }:$src)
/* 85845*/          0, /*End of Scope*/
/* 85846*/        0, // EndSwitchType
/* 85847*/      0, /*End of Scope*/
/* 85848*/    /*Scope*/ 37, /*->85886*/
/* 85849*/      OPC_MoveChild1,
/* 85850*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 85853*/      OPC_RecordMemRef,
/* 85854*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 85855*/      OPC_CheckFoldableChainNode,
/* 85856*/      OPC_RecordChild1, // #2 = $src
/* 85857*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 85859*/      OPC_CheckPredicate, 9, // Predicate_load
/* 85861*/      OPC_CheckType, MVT::v4f64,
/* 85863*/      OPC_MoveParent,
/* 85864*/      OPC_CheckType, MVT::v4i32,
/* 85866*/      OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 85868*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/* 85871*/      OPC_EmitMergeInputChains, 2, 0, 1, 
/* 85875*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                // Src: (strict_fp_to_sint:{ *:[v4i32] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                // Dst: (VCVTTPD2DQYrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/* 85886*/    /*Scope*/ 15, /*->85902*/
/* 85887*/      OPC_RecordChild1, // #1 = $src
/* 85888*/      OPC_CheckChild1Type, MVT::v4f64,
/* 85890*/      OPC_CheckType, MVT::v4i32,
/* 85892*/      OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 85894*/      OPC_EmitMergeInputChains1_0,
/* 85895*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQYrr), 0|OPFL_Chain,
                    MVT::v4i32, 1/*#Ops*/, 1, 
                // Src: (strict_fp_to_sint:{ *:[v4i32] } VR256:{ *:[v4f64] }:$src) - Complexity = 3
                // Dst: (VCVTTPD2DQYrr:{ *:[v4i32] } VR256:{ *:[v4f64] }:$src)
/* 85902*/    0, /*End of Scope*/
/* 85903*/  /*SwitchOpcode*/ 75|128,3/*459*/, TARGET_VAL(ISD::FP_TO_SINT),// ->86366
/* 85907*/    OPC_Scope, 127|128,1/*255*/, /*->86165*/ // 4 children in Scope
/* 85910*/      OPC_MoveChild0,
/* 85911*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 85914*/      OPC_RecordMemRef,
/* 85915*/      OPC_RecordNode, // #0 = 'ld' chained node
/* 85916*/      OPC_RecordChild1, // #1 = $src
/* 85917*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 85919*/      OPC_CheckPredicate, 9, // Predicate_load
/* 85921*/      OPC_SwitchType /*2 cases */, 119, MVT::f32,// ->86043
/* 85924*/        OPC_MoveParent,
/* 85925*/        OPC_SwitchType /*2 cases */, 56, MVT::i32,// ->85984
/* 85928*/          OPC_Scope, 17, /*->85947*/ // 3 children in Scope
/* 85930*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 85932*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 85935*/            OPC_EmitMergeInputChains1_0,
/* 85936*/            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)
/* 85947*/          /*Scope*/ 17, /*->85965*/
/* 85948*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/* 85950*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 85953*/            OPC_EmitMergeInputChains1_0,
/* 85954*/            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)
/* 85965*/          /*Scope*/ 17, /*->85983*/
/* 85966*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 85968*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 85971*/            OPC_EmitMergeInputChains1_0,
/* 85972*/            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)
/* 85983*/          0, /*End of Scope*/
/* 85984*/        /*SwitchType*/ 56, MVT::i64,// ->86042
/* 85986*/          OPC_Scope, 17, /*->86005*/ // 3 children in Scope
/* 85988*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 85990*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 85993*/            OPC_EmitMergeInputChains1_0,
/* 85994*/            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)
/* 86005*/          /*Scope*/ 17, /*->86023*/
/* 86006*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/* 86008*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 86011*/            OPC_EmitMergeInputChains1_0,
/* 86012*/            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)
/* 86023*/          /*Scope*/ 17, /*->86041*/
/* 86024*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 86026*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 86029*/            OPC_EmitMergeInputChains1_0,
/* 86030*/            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)
/* 86041*/          0, /*End of Scope*/
/* 86042*/        0, // EndSwitchType
/* 86043*/      /*SwitchType*/ 119, MVT::f64,// ->86164
/* 86045*/        OPC_MoveParent,
/* 86046*/        OPC_SwitchType /*2 cases */, 56, MVT::i32,// ->86105
/* 86049*/          OPC_Scope, 17, /*->86068*/ // 3 children in Scope
/* 86051*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 86053*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 86056*/            OPC_EmitMergeInputChains1_0,
/* 86057*/            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)
/* 86068*/          /*Scope*/ 17, /*->86086*/
/* 86069*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 86071*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 86074*/            OPC_EmitMergeInputChains1_0,
/* 86075*/            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)
/* 86086*/          /*Scope*/ 17, /*->86104*/
/* 86087*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 86089*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 86092*/            OPC_EmitMergeInputChains1_0,
/* 86093*/            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)
/* 86104*/          0, /*End of Scope*/
/* 86105*/        /*SwitchType*/ 56, MVT::i64,// ->86163
/* 86107*/          OPC_Scope, 17, /*->86126*/ // 3 children in Scope
/* 86109*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 86111*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 86114*/            OPC_EmitMergeInputChains1_0,
/* 86115*/            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)
/* 86126*/          /*Scope*/ 17, /*->86144*/
/* 86127*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 86129*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 86132*/            OPC_EmitMergeInputChains1_0,
/* 86133*/            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)
/* 86144*/          /*Scope*/ 17, /*->86162*/
/* 86145*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 86147*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 86150*/            OPC_EmitMergeInputChains1_0,
/* 86151*/            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)
/* 86162*/          0, /*End of Scope*/
/* 86163*/        0, // EndSwitchType
/* 86164*/      0, // EndSwitchType
/* 86165*/    /*Scope*/ 21|128,1/*149*/, /*->86316*/
/* 86167*/      OPC_RecordChild0, // #0 = $src
/* 86168*/      OPC_Scope, 72, /*->86242*/ // 2 children in Scope
/* 86170*/        OPC_CheckChild0Type, MVT::f32,
/* 86172*/        OPC_SwitchType /*2 cases */, 32, MVT::i32,// ->86207
/* 86175*/          OPC_Scope, 9, /*->86186*/ // 3 children in Scope
/* 86177*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 86179*/            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)
/* 86186*/          /*Scope*/ 9, /*->86196*/
/* 86187*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/* 86189*/            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)
/* 86196*/          /*Scope*/ 9, /*->86206*/
/* 86197*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 86199*/            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)
/* 86206*/          0, /*End of Scope*/
/* 86207*/        /*SwitchType*/ 32, MVT::i64,// ->86241
/* 86209*/          OPC_Scope, 9, /*->86220*/ // 3 children in Scope
/* 86211*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 86213*/            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)
/* 86220*/          /*Scope*/ 9, /*->86230*/
/* 86221*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/* 86223*/            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)
/* 86230*/          /*Scope*/ 9, /*->86240*/
/* 86231*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 86233*/            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)
/* 86240*/          0, /*End of Scope*/
/* 86241*/        0, // EndSwitchType
/* 86242*/      /*Scope*/ 72, /*->86315*/
/* 86243*/        OPC_CheckChild0Type, MVT::f64,
/* 86245*/        OPC_SwitchType /*2 cases */, 32, MVT::i32,// ->86280
/* 86248*/          OPC_Scope, 9, /*->86259*/ // 3 children in Scope
/* 86250*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 86252*/            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)
/* 86259*/          /*Scope*/ 9, /*->86269*/
/* 86260*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 86262*/            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)
/* 86269*/          /*Scope*/ 9, /*->86279*/
/* 86270*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 86272*/            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)
/* 86279*/          0, /*End of Scope*/
/* 86280*/        /*SwitchType*/ 32, MVT::i64,// ->86314
/* 86282*/          OPC_Scope, 9, /*->86293*/ // 3 children in Scope
/* 86284*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 86286*/            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)
/* 86293*/          /*Scope*/ 9, /*->86303*/
/* 86294*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 86296*/            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)
/* 86303*/          /*Scope*/ 9, /*->86313*/
/* 86304*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 86306*/            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)
/* 86313*/          0, /*End of Scope*/
/* 86314*/        0, // EndSwitchType
/* 86315*/      0, /*End of Scope*/
/* 86316*/    /*Scope*/ 33, /*->86350*/
/* 86317*/      OPC_MoveChild0,
/* 86318*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 86321*/      OPC_RecordMemRef,
/* 86322*/      OPC_RecordNode, // #0 = 'ld' chained node
/* 86323*/      OPC_RecordChild1, // #1 = $src
/* 86324*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 86326*/      OPC_CheckPredicate, 9, // Predicate_load
/* 86328*/      OPC_CheckType, MVT::v4f64,
/* 86330*/      OPC_MoveParent,
/* 86331*/      OPC_CheckType, MVT::v4i32,
/* 86333*/      OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 86335*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 86338*/      OPC_EmitMergeInputChains1_0,
/* 86339*/      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>>) - Complexity = 25
                // Dst: (VCVTTPD2DQYrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/* 86350*/    /*Scope*/ 14, /*->86365*/
/* 86351*/      OPC_RecordChild0, // #0 = $src
/* 86352*/      OPC_CheckChild0Type, MVT::v4f64,
/* 86354*/      OPC_CheckType, MVT::v4i32,
/* 86356*/      OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 86358*/      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)
/* 86365*/    0, /*End of Scope*/
/* 86366*/  /*SwitchOpcode*/ 43|128,2/*299*/, TARGET_VAL(X86ISD::STRICT_FCMP),// ->86669
/* 86370*/    OPC_RecordNode, // #0 = 'X86strict_fcmp' chained node
/* 86371*/    OPC_RecordChild1, // #1 = $src1
/* 86372*/    OPC_Scope, 10|128,1/*138*/, /*->86513*/ // 3 children in Scope
/* 86375*/      OPC_CheckChild1Type, MVT::f32,
/* 86377*/      OPC_Scope, 81, /*->86460*/ // 2 children in Scope
/* 86379*/        OPC_MoveChild2,
/* 86380*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 86383*/        OPC_RecordMemRef,
/* 86384*/        OPC_RecordNode, // #2 = 'ld' chained node
/* 86385*/        OPC_CheckFoldableChainNode,
/* 86386*/        OPC_RecordChild1, // #3 = $src2
/* 86387*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 86389*/        OPC_CheckPredicate, 9, // Predicate_load
/* 86391*/        OPC_MoveParent,
/* 86392*/        OPC_Scope, 21, /*->86415*/ // 3 children in Scope
/* 86394*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 86396*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 86399*/          OPC_EmitMergeInputChains, 2, 0, 2, 
/* 86403*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VUCOMISSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                    // Src: (X86strict_fcmp:{ *:[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)
/* 86415*/        /*Scope*/ 21, /*->86437*/
/* 86416*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/* 86418*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 86421*/          OPC_EmitMergeInputChains, 2, 0, 2, 
/* 86425*/          OPC_MorphNodeTo1, TARGET_VAL(X86::UCOMISSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                    // Src: (X86strict_fcmp:{ *:[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)
/* 86437*/        /*Scope*/ 21, /*->86459*/
/* 86438*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 86440*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 86443*/          OPC_EmitMergeInputChains, 2, 0, 2, 
/* 86447*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VUCOMISSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                    // Src: (X86strict_fcmp:{ *:[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)
/* 86459*/        0, /*End of Scope*/
/* 86460*/      /*Scope*/ 51, /*->86512*/
/* 86461*/        OPC_RecordChild2, // #2 = $rhs
/* 86462*/        OPC_Scope, 11, /*->86475*/ // 4 children in Scope
/* 86464*/          OPC_CheckPatternPredicate, 32, // (!Subtarget->hasSSE1()) && (Subtarget->hasCMov())
/* 86466*/          OPC_EmitMergeInputChains1_0,
/* 86467*/          OPC_MorphNodeTo1, TARGET_VAL(X86::UCOM_FpIr32), 0|OPFL_Chain,
                        MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (X86strict_fcmp:{ *:[i32] } RFP32:{ *:[f32] }:$lhs, RFP32:{ *:[f32] }:$rhs) - Complexity = 3
                    // Dst: (UCOM_FpIr32:{ *:[i32] } RFP32:{ *:[f32] }:$lhs, RFP32:{ *:[f32] }:$rhs)
/* 86475*/        /*Scope*/ 11, /*->86487*/
/* 86476*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 86478*/          OPC_EmitMergeInputChains1_0,
/* 86479*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VUCOMISSrr), 0|OPFL_Chain,
                        MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (X86strict_fcmp:{ *:[i32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2) - Complexity = 3
                    // Dst: (VUCOMISSrr:{ *:[i32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2)
/* 86487*/        /*Scope*/ 11, /*->86499*/
/* 86488*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/* 86490*/          OPC_EmitMergeInputChains1_0,
/* 86491*/          OPC_MorphNodeTo1, TARGET_VAL(X86::UCOMISSrr), 0|OPFL_Chain,
                        MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (X86strict_fcmp:{ *:[i32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2) - Complexity = 3
                    // Dst: (UCOMISSrr:{ *:[i32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2)
/* 86499*/        /*Scope*/ 11, /*->86511*/
/* 86500*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 86502*/          OPC_EmitMergeInputChains1_0,
/* 86503*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VUCOMISSZrr), 0|OPFL_Chain,
                        MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (X86strict_fcmp:{ *:[i32] } FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2) - Complexity = 3
                    // Dst: (VUCOMISSZrr:{ *:[i32] } FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2)
/* 86511*/        0, /*End of Scope*/
/* 86512*/      0, /*End of Scope*/
/* 86513*/    /*Scope*/ 10|128,1/*138*/, /*->86653*/
/* 86515*/      OPC_CheckChild1Type, MVT::f64,
/* 86517*/      OPC_Scope, 81, /*->86600*/ // 2 children in Scope
/* 86519*/        OPC_MoveChild2,
/* 86520*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 86523*/        OPC_RecordMemRef,
/* 86524*/        OPC_RecordNode, // #2 = 'ld' chained node
/* 86525*/        OPC_CheckFoldableChainNode,
/* 86526*/        OPC_RecordChild1, // #3 = $src2
/* 86527*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 86529*/        OPC_CheckPredicate, 9, // Predicate_load
/* 86531*/        OPC_MoveParent,
/* 86532*/        OPC_Scope, 21, /*->86555*/ // 3 children in Scope
/* 86534*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 86536*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 86539*/          OPC_EmitMergeInputChains, 2, 0, 2, 
/* 86543*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VUCOMISDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                    // Src: (X86strict_fcmp:{ *:[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)
/* 86555*/        /*Scope*/ 21, /*->86577*/
/* 86556*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 86558*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 86561*/          OPC_EmitMergeInputChains, 2, 0, 2, 
/* 86565*/          OPC_MorphNodeTo1, TARGET_VAL(X86::UCOMISDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                    // Src: (X86strict_fcmp:{ *:[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)
/* 86577*/        /*Scope*/ 21, /*->86599*/
/* 86578*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 86580*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 86583*/          OPC_EmitMergeInputChains, 2, 0, 2, 
/* 86587*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VUCOMISDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                    // Src: (X86strict_fcmp:{ *:[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)
/* 86599*/        0, /*End of Scope*/
/* 86600*/      /*Scope*/ 51, /*->86652*/
/* 86601*/        OPC_RecordChild2, // #2 = $rhs
/* 86602*/        OPC_Scope, 11, /*->86615*/ // 4 children in Scope
/* 86604*/          OPC_CheckPatternPredicate, 33, // (!Subtarget->hasSSE2()) && (Subtarget->hasCMov())
/* 86606*/          OPC_EmitMergeInputChains1_0,
/* 86607*/          OPC_MorphNodeTo1, TARGET_VAL(X86::UCOM_FpIr64), 0|OPFL_Chain,
                        MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (X86strict_fcmp:{ *:[i32] } RFP64:{ *:[f64] }:$lhs, RFP64:{ *:[f64] }:$rhs) - Complexity = 3
                    // Dst: (UCOM_FpIr64:{ *:[i32] } RFP64:{ *:[f64] }:$lhs, RFP64:{ *:[f64] }:$rhs)
/* 86615*/        /*Scope*/ 11, /*->86627*/
/* 86616*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 86618*/          OPC_EmitMergeInputChains1_0,
/* 86619*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VUCOMISDrr), 0|OPFL_Chain,
                        MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (X86strict_fcmp:{ *:[i32] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2) - Complexity = 3
                    // Dst: (VUCOMISDrr:{ *:[i32] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2)
/* 86627*/        /*Scope*/ 11, /*->86639*/
/* 86628*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 86630*/          OPC_EmitMergeInputChains1_0,
/* 86631*/          OPC_MorphNodeTo1, TARGET_VAL(X86::UCOMISDrr), 0|OPFL_Chain,
                        MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (X86strict_fcmp:{ *:[i32] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2) - Complexity = 3
                    // Dst: (UCOMISDrr:{ *:[i32] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2)
/* 86639*/        /*Scope*/ 11, /*->86651*/
/* 86640*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 86642*/          OPC_EmitMergeInputChains1_0,
/* 86643*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VUCOMISDZrr), 0|OPFL_Chain,
                        MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (X86strict_fcmp:{ *:[i32] } FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2) - Complexity = 3
                    // Dst: (VUCOMISDZrr:{ *:[i32] } FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2)
/* 86651*/        0, /*End of Scope*/
/* 86652*/      0, /*End of Scope*/
/* 86653*/    /*Scope*/ 14, /*->86668*/
/* 86654*/      OPC_CheckChild1Type, MVT::f80,
/* 86656*/      OPC_RecordChild2, // #2 = $rhs
/* 86657*/      OPC_CheckPatternPredicate, 34, // (Subtarget->hasCMov())
/* 86659*/      OPC_EmitMergeInputChains1_0,
/* 86660*/      OPC_MorphNodeTo1, TARGET_VAL(X86::UCOM_FpIr80), 0|OPFL_Chain,
                    MVT::i32, 2/*#Ops*/, 1, 2, 
                // Src: (X86strict_fcmp:{ *:[i32] } RFP80:{ *:[f80] }:$lhs, RFP80:{ *:[f80] }:$rhs) - Complexity = 3
                // Dst: (UCOM_FpIr80:{ *:[i32] } RFP80:{ *:[f80] }:$lhs, RFP80:{ *:[f80] }:$rhs)
/* 86668*/    0, /*End of Scope*/
/* 86669*/  /*SwitchOpcode*/ 43|128,2/*299*/, TARGET_VAL(X86ISD::STRICT_FCMPS),// ->86972
/* 86673*/    OPC_RecordNode, // #0 = 'X86strict_fcmps' chained node
/* 86674*/    OPC_RecordChild1, // #1 = $src1
/* 86675*/    OPC_Scope, 10|128,1/*138*/, /*->86816*/ // 3 children in Scope
/* 86678*/      OPC_CheckChild1Type, MVT::f32,
/* 86680*/      OPC_Scope, 81, /*->86763*/ // 2 children in Scope
/* 86682*/        OPC_MoveChild2,
/* 86683*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 86686*/        OPC_RecordMemRef,
/* 86687*/        OPC_RecordNode, // #2 = 'ld' chained node
/* 86688*/        OPC_CheckFoldableChainNode,
/* 86689*/        OPC_RecordChild1, // #3 = $src2
/* 86690*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 86692*/        OPC_CheckPredicate, 9, // Predicate_load
/* 86694*/        OPC_MoveParent,
/* 86695*/        OPC_Scope, 21, /*->86718*/ // 3 children in Scope
/* 86697*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 86699*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 86702*/          OPC_EmitMergeInputChains, 2, 0, 2, 
/* 86706*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCOMISSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                    // Src: (X86strict_fcmps:{ *:[i32] } FR32:{ *:[f32] }:$src1, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VCOMISSrm:{ *:[i32] } FR32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 86718*/        /*Scope*/ 21, /*->86740*/
/* 86719*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/* 86721*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 86724*/          OPC_EmitMergeInputChains, 2, 0, 2, 
/* 86728*/          OPC_MorphNodeTo1, TARGET_VAL(X86::COMISSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                    // Src: (X86strict_fcmps:{ *:[i32] } FR32:{ *:[f32] }:$src1, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (COMISSrm:{ *:[i32] } FR32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 86740*/        /*Scope*/ 21, /*->86762*/
/* 86741*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 86743*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 86746*/          OPC_EmitMergeInputChains, 2, 0, 2, 
/* 86750*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCOMISSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                    // Src: (X86strict_fcmps:{ *:[i32] } FR32X:{ *:[f32] }:$src1, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VCOMISSZrm:{ *:[i32] } FR32X:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 86762*/        0, /*End of Scope*/
/* 86763*/      /*Scope*/ 51, /*->86815*/
/* 86764*/        OPC_RecordChild2, // #2 = $rhs
/* 86765*/        OPC_Scope, 11, /*->86778*/ // 4 children in Scope
/* 86767*/          OPC_CheckPatternPredicate, 32, // (!Subtarget->hasSSE1()) && (Subtarget->hasCMov())
/* 86769*/          OPC_EmitMergeInputChains1_0,
/* 86770*/          OPC_MorphNodeTo1, TARGET_VAL(X86::COM_FpIr32), 0|OPFL_Chain,
                        MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (X86strict_fcmps:{ *:[i32] } RFP32:{ *:[f32] }:$lhs, RFP32:{ *:[f32] }:$rhs) - Complexity = 3
                    // Dst: (COM_FpIr32:{ *:[i32] } RFP32:{ *:[f32] }:$lhs, RFP32:{ *:[f32] }:$rhs)
/* 86778*/        /*Scope*/ 11, /*->86790*/
/* 86779*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 86781*/          OPC_EmitMergeInputChains1_0,
/* 86782*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCOMISSrr), 0|OPFL_Chain,
                        MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (X86strict_fcmps:{ *:[i32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2) - Complexity = 3
                    // Dst: (VCOMISSrr:{ *:[i32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2)
/* 86790*/        /*Scope*/ 11, /*->86802*/
/* 86791*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/* 86793*/          OPC_EmitMergeInputChains1_0,
/* 86794*/          OPC_MorphNodeTo1, TARGET_VAL(X86::COMISSrr), 0|OPFL_Chain,
                        MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (X86strict_fcmps:{ *:[i32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2) - Complexity = 3
                    // Dst: (COMISSrr:{ *:[i32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2)
/* 86802*/        /*Scope*/ 11, /*->86814*/
/* 86803*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 86805*/          OPC_EmitMergeInputChains1_0,
/* 86806*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCOMISSZrr), 0|OPFL_Chain,
                        MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (X86strict_fcmps:{ *:[i32] } FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2) - Complexity = 3
                    // Dst: (VCOMISSZrr:{ *:[i32] } FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2)
/* 86814*/        0, /*End of Scope*/
/* 86815*/      0, /*End of Scope*/
/* 86816*/    /*Scope*/ 10|128,1/*138*/, /*->86956*/
/* 86818*/      OPC_CheckChild1Type, MVT::f64,
/* 86820*/      OPC_Scope, 81, /*->86903*/ // 2 children in Scope
/* 86822*/        OPC_MoveChild2,
/* 86823*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 86826*/        OPC_RecordMemRef,
/* 86827*/        OPC_RecordNode, // #2 = 'ld' chained node
/* 86828*/        OPC_CheckFoldableChainNode,
/* 86829*/        OPC_RecordChild1, // #3 = $src2
/* 86830*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 86832*/        OPC_CheckPredicate, 9, // Predicate_load
/* 86834*/        OPC_MoveParent,
/* 86835*/        OPC_Scope, 21, /*->86858*/ // 3 children in Scope
/* 86837*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 86839*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 86842*/          OPC_EmitMergeInputChains, 2, 0, 2, 
/* 86846*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCOMISDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                    // Src: (X86strict_fcmps:{ *:[i32] } FR64:{ *:[f64] }:$src1, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VCOMISDrm:{ *:[i32] } FR64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 86858*/        /*Scope*/ 21, /*->86880*/
/* 86859*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 86861*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 86864*/          OPC_EmitMergeInputChains, 2, 0, 2, 
/* 86868*/          OPC_MorphNodeTo1, TARGET_VAL(X86::COMISDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                    // Src: (X86strict_fcmps:{ *:[i32] } FR64:{ *:[f64] }:$src1, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (COMISDrm:{ *:[i32] } FR64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 86880*/        /*Scope*/ 21, /*->86902*/
/* 86881*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 86883*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 86886*/          OPC_EmitMergeInputChains, 2, 0, 2, 
/* 86890*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCOMISDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                    // Src: (X86strict_fcmps:{ *:[i32] } FR64X:{ *:[f64] }:$src1, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VCOMISDZrm:{ *:[i32] } FR64X:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 86902*/        0, /*End of Scope*/
/* 86903*/      /*Scope*/ 51, /*->86955*/
/* 86904*/        OPC_RecordChild2, // #2 = $rhs
/* 86905*/        OPC_Scope, 11, /*->86918*/ // 4 children in Scope
/* 86907*/          OPC_CheckPatternPredicate, 33, // (!Subtarget->hasSSE2()) && (Subtarget->hasCMov())
/* 86909*/          OPC_EmitMergeInputChains1_0,
/* 86910*/          OPC_MorphNodeTo1, TARGET_VAL(X86::COM_FpIr64), 0|OPFL_Chain,
                        MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (X86strict_fcmps:{ *:[i32] } RFP64:{ *:[f64] }:$lhs, RFP64:{ *:[f64] }:$rhs) - Complexity = 3
                    // Dst: (COM_FpIr64:{ *:[i32] } RFP64:{ *:[f64] }:$lhs, RFP64:{ *:[f64] }:$rhs)
/* 86918*/        /*Scope*/ 11, /*->86930*/
/* 86919*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 86921*/          OPC_EmitMergeInputChains1_0,
/* 86922*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCOMISDrr), 0|OPFL_Chain,
                        MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (X86strict_fcmps:{ *:[i32] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2) - Complexity = 3
                    // Dst: (VCOMISDrr:{ *:[i32] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2)
/* 86930*/        /*Scope*/ 11, /*->86942*/
/* 86931*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 86933*/          OPC_EmitMergeInputChains1_0,
/* 86934*/          OPC_MorphNodeTo1, TARGET_VAL(X86::COMISDrr), 0|OPFL_Chain,
                        MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (X86strict_fcmps:{ *:[i32] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2) - Complexity = 3
                    // Dst: (COMISDrr:{ *:[i32] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2)
/* 86942*/        /*Scope*/ 11, /*->86954*/
/* 86943*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 86945*/          OPC_EmitMergeInputChains1_0,
/* 86946*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCOMISDZrr), 0|OPFL_Chain,
                        MVT::i32, 2/*#Ops*/, 1, 2, 
                    // Src: (X86strict_fcmps:{ *:[i32] } FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2) - Complexity = 3
                    // Dst: (VCOMISDZrr:{ *:[i32] } FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2)
/* 86954*/        0, /*End of Scope*/
/* 86955*/      0, /*End of Scope*/
/* 86956*/    /*Scope*/ 14, /*->86971*/
/* 86957*/      OPC_CheckChild1Type, MVT::f80,
/* 86959*/      OPC_RecordChild2, // #2 = $rhs
/* 86960*/      OPC_CheckPatternPredicate, 34, // (Subtarget->hasCMov())
/* 86962*/      OPC_EmitMergeInputChains1_0,
/* 86963*/      OPC_MorphNodeTo1, TARGET_VAL(X86::COM_FpIr80), 0|OPFL_Chain,
                    MVT::i32, 2/*#Ops*/, 1, 2, 
                // Src: (X86strict_fcmps:{ *:[i32] } RFP80:{ *:[f80] }:$lhs, RFP80:{ *:[f80] }:$rhs) - Complexity = 3
                // Dst: (COM_FpIr80:{ *:[i32] } RFP80:{ *:[f80] }:$lhs, RFP80:{ *:[f80] }:$rhs)
/* 86971*/    0, /*End of Scope*/
/* 86972*/  /*SwitchOpcode*/ 12|128,1/*140*/, TARGET_VAL(X86ISD::PTEST),// ->87116
/* 86976*/    OPC_RecordChild0, // #0 = $src1
/* 86977*/    OPC_Scope, 87, /*->87066*/ // 2 children in Scope
/* 86979*/      OPC_CheckChild0Type, MVT::v2i64,
/* 86981*/      OPC_Scope, 56, /*->87039*/ // 2 children in Scope
/* 86983*/        OPC_MoveChild1,
/* 86984*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 86987*/        OPC_RecordMemRef,
/* 86988*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 86989*/        OPC_CheckFoldableChainNode,
/* 86990*/        OPC_RecordChild1, // #2 = $src2
/* 86991*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 86993*/        OPC_CheckPredicate, 9, // Predicate_load
/* 86995*/        OPC_Scope, 19, /*->87016*/ // 2 children in Scope
/* 86997*/          OPC_MoveParent,
/* 86998*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/* 87000*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 87003*/          OPC_EmitMergeInputChains1_1,
/* 87004*/          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>>) - Complexity = 25
                    // Dst: (VPTESTrm:{ *:[i32] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 87016*/        /*Scope*/ 21, /*->87038*/
/* 87017*/          OPC_CheckPredicate, 39, // Predicate_memop
/* 87019*/          OPC_MoveParent,
/* 87020*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/* 87022*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 87025*/          OPC_EmitMergeInputChains1_1,
/* 87026*/          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_memop>>) - Complexity = 25
                    // Dst: (PTESTrm:{ *:[i32] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 87038*/        0, /*End of Scope*/
/* 87039*/      /*Scope*/ 25, /*->87065*/
/* 87040*/        OPC_RecordChild1, // #1 = $src2
/* 87041*/        OPC_Scope, 10, /*->87053*/ // 2 children in Scope
/* 87043*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/* 87045*/          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)
/* 87053*/        /*Scope*/ 10, /*->87064*/
/* 87054*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/* 87056*/          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)
/* 87064*/        0, /*End of Scope*/
/* 87065*/      0, /*End of Scope*/
/* 87066*/    /*Scope*/ 48, /*->87115*/
/* 87067*/      OPC_CheckChild0Type, MVT::v4i64,
/* 87069*/      OPC_Scope, 31, /*->87102*/ // 2 children in Scope
/* 87071*/        OPC_MoveChild1,
/* 87072*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 87075*/        OPC_RecordMemRef,
/* 87076*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 87077*/        OPC_CheckFoldableChainNode,
/* 87078*/        OPC_RecordChild1, // #2 = $src2
/* 87079*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 87081*/        OPC_CheckPredicate, 9, // Predicate_load
/* 87083*/        OPC_MoveParent,
/* 87084*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/* 87086*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 87089*/        OPC_EmitMergeInputChains1_1,
/* 87090*/        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>>) - Complexity = 25
                  // Dst: (VPTESTYrm:{ *:[i32] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 87102*/      /*Scope*/ 11, /*->87114*/
/* 87103*/        OPC_RecordChild1, // #1 = $src2
/* 87104*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/* 87106*/        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)
/* 87114*/      0, /*End of Scope*/
/* 87115*/    0, /*End of Scope*/
/* 87116*/  /*SwitchOpcode*/ 71|128,1/*199*/, TARGET_VAL(X86ISD::TESTP),// ->87319
/* 87120*/    OPC_RecordChild0, // #0 = $src1
/* 87121*/    OPC_Scope, 48, /*->87171*/ // 4 children in Scope
/* 87123*/      OPC_CheckChild0Type, MVT::v4f32,
/* 87125*/      OPC_Scope, 31, /*->87158*/ // 2 children in Scope
/* 87127*/        OPC_MoveChild1,
/* 87128*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 87131*/        OPC_RecordMemRef,
/* 87132*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 87133*/        OPC_CheckFoldableChainNode,
/* 87134*/        OPC_RecordChild1, // #2 = $src2
/* 87135*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 87137*/        OPC_CheckPredicate, 9, // Predicate_load
/* 87139*/        OPC_MoveParent,
/* 87140*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/* 87142*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 87145*/        OPC_EmitMergeInputChains1_1,
/* 87146*/        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>>) - Complexity = 25
                  // Dst: (VTESTPSrm:{ *:[i32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 87158*/      /*Scope*/ 11, /*->87170*/
/* 87159*/        OPC_RecordChild1, // #1 = $src2
/* 87160*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/* 87162*/        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)
/* 87170*/      0, /*End of Scope*/
/* 87171*/    /*Scope*/ 48, /*->87220*/
/* 87172*/      OPC_CheckChild0Type, MVT::v8f32,
/* 87174*/      OPC_Scope, 31, /*->87207*/ // 2 children in Scope
/* 87176*/        OPC_MoveChild1,
/* 87177*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 87180*/        OPC_RecordMemRef,
/* 87181*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 87182*/        OPC_CheckFoldableChainNode,
/* 87183*/        OPC_RecordChild1, // #2 = $src2
/* 87184*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 87186*/        OPC_CheckPredicate, 9, // Predicate_load
/* 87188*/        OPC_MoveParent,
/* 87189*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/* 87191*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 87194*/        OPC_EmitMergeInputChains1_1,
/* 87195*/        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>>) - Complexity = 25
                  // Dst: (VTESTPSYrm:{ *:[i32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 87207*/      /*Scope*/ 11, /*->87219*/
/* 87208*/        OPC_RecordChild1, // #1 = $src2
/* 87209*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/* 87211*/        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)
/* 87219*/      0, /*End of Scope*/
/* 87220*/    /*Scope*/ 48, /*->87269*/
/* 87221*/      OPC_CheckChild0Type, MVT::v2f64,
/* 87223*/      OPC_Scope, 31, /*->87256*/ // 2 children in Scope
/* 87225*/        OPC_MoveChild1,
/* 87226*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 87229*/        OPC_RecordMemRef,
/* 87230*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 87231*/        OPC_CheckFoldableChainNode,
/* 87232*/        OPC_RecordChild1, // #2 = $src2
/* 87233*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 87235*/        OPC_CheckPredicate, 9, // Predicate_load
/* 87237*/        OPC_MoveParent,
/* 87238*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/* 87240*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 87243*/        OPC_EmitMergeInputChains1_1,
/* 87244*/        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>>) - Complexity = 25
                  // Dst: (VTESTPDrm:{ *:[i32] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 87256*/      /*Scope*/ 11, /*->87268*/
/* 87257*/        OPC_RecordChild1, // #1 = $src2
/* 87258*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/* 87260*/        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)
/* 87268*/      0, /*End of Scope*/
/* 87269*/    /*Scope*/ 48, /*->87318*/
/* 87270*/      OPC_CheckChild0Type, MVT::v4f64,
/* 87272*/      OPC_Scope, 31, /*->87305*/ // 2 children in Scope
/* 87274*/        OPC_MoveChild1,
/* 87275*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 87278*/        OPC_RecordMemRef,
/* 87279*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 87280*/        OPC_CheckFoldableChainNode,
/* 87281*/        OPC_RecordChild1, // #2 = $src2
/* 87282*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 87284*/        OPC_CheckPredicate, 9, // Predicate_load
/* 87286*/        OPC_MoveParent,
/* 87287*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/* 87289*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 87292*/        OPC_EmitMergeInputChains1_1,
/* 87293*/        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>>) - Complexity = 25
                  // Dst: (VTESTPDYrm:{ *:[i32] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 87305*/      /*Scope*/ 11, /*->87317*/
/* 87306*/        OPC_RecordChild1, // #1 = $src2
/* 87307*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/* 87309*/        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)
/* 87317*/      0, /*End of Scope*/
/* 87318*/    0, /*End of Scope*/
/* 87319*/  /*SwitchOpcode*/ 41|128,8/*1065*/, TARGET_VAL(ISD::CTPOP),// ->88388
/* 87323*/    OPC_Scope, 86, /*->87411*/ // 4 children in Scope
/* 87325*/      OPC_MoveChild0,
/* 87326*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 87329*/      OPC_RecordMemRef,
/* 87330*/      OPC_RecordNode, // #0 = 'ld' chained node
/* 87331*/      OPC_RecordChild1, // #1 = $src
/* 87332*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 87334*/      OPC_SwitchType /*3 cases */, 23, MVT::i16,// ->87360
/* 87337*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 87339*/        OPC_MoveParent,
/* 87340*/        OPC_CheckType, MVT::i16,
/* 87342*/        OPC_CheckPatternPredicate, 141, // (Subtarget->hasPOPCNT())
/* 87344*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 87347*/        OPC_EmitMergeInputChains1_0,
/* 87348*/        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)
/* 87360*/      /*SwitchType*/ 23, MVT::i32,// ->87385
/* 87362*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 87364*/        OPC_MoveParent,
/* 87365*/        OPC_CheckType, MVT::i32,
/* 87367*/        OPC_CheckPatternPredicate, 141, // (Subtarget->hasPOPCNT())
/* 87369*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 87372*/        OPC_EmitMergeInputChains1_0,
/* 87373*/        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)
/* 87385*/      /*SwitchType*/ 23, MVT::i64,// ->87410
/* 87387*/        OPC_CheckPredicate, 9, // Predicate_load
/* 87389*/        OPC_MoveParent,
/* 87390*/        OPC_CheckType, MVT::i64,
/* 87392*/        OPC_CheckPatternPredicate, 141, // (Subtarget->hasPOPCNT())
/* 87394*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 87397*/        OPC_EmitMergeInputChains1_0,
/* 87398*/        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)
/* 87410*/      0, // EndSwitchType
/* 87411*/    /*Scope*/ 45, /*->87457*/
/* 87412*/      OPC_RecordChild0, // #0 = $src
/* 87413*/      OPC_SwitchType /*3 cases */, 12, MVT::i16,// ->87428
/* 87416*/        OPC_CheckChild0Type, MVT::i16,
/* 87418*/        OPC_CheckPatternPredicate, 141, // (Subtarget->hasPOPCNT())
/* 87420*/        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)
/* 87428*/      /*SwitchType*/ 12, MVT::i32,// ->87442
/* 87430*/        OPC_CheckChild0Type, MVT::i32,
/* 87432*/        OPC_CheckPatternPredicate, 141, // (Subtarget->hasPOPCNT())
/* 87434*/        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)
/* 87442*/      /*SwitchType*/ 12, MVT::i64,// ->87456
/* 87444*/        OPC_CheckChild0Type, MVT::i64,
/* 87446*/        OPC_CheckPatternPredicate, 141, // (Subtarget->hasPOPCNT())
/* 87448*/        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)
/* 87456*/      0, // EndSwitchType
/* 87457*/    /*Scope*/ 47|128,3/*431*/, /*->87890*/
/* 87459*/      OPC_MoveChild0,
/* 87460*/      OPC_SwitchOpcode /*2 cases */, 17|128,2/*273*/, TARGET_VAL(ISD::LOAD),// ->87738
/* 87465*/        OPC_RecordMemRef,
/* 87466*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 87467*/        OPC_RecordChild1, // #1 = $src1
/* 87468*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 87470*/        OPC_CheckPredicate, 9, // Predicate_load
/* 87472*/        OPC_SwitchType /*12 cases */, 20, MVT::v8i64,// ->87495
/* 87475*/          OPC_MoveParent,
/* 87476*/          OPC_CheckType, MVT::v8i64,
/* 87478*/          OPC_CheckPatternPredicate, 142, // (Subtarget->hasVPOPCNTDQ())
/* 87480*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/* 87483*/          OPC_EmitMergeInputChains1_0,
/* 87484*/          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>>) - Complexity = 25
                    // Dst: (VPOPCNTQZrm:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)
/* 87495*/        /*SwitchType*/ 20, MVT::v4i64,// ->87517
/* 87497*/          OPC_MoveParent,
/* 87498*/          OPC_CheckType, MVT::v4i64,
/* 87500*/          OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/* 87502*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/* 87505*/          OPC_EmitMergeInputChains1_0,
/* 87506*/          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>>) - Complexity = 25
                    // Dst: (VPOPCNTQZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)
/* 87517*/        /*SwitchType*/ 20, MVT::v2i64,// ->87539
/* 87519*/          OPC_MoveParent,
/* 87520*/          OPC_CheckType, MVT::v2i64,
/* 87522*/          OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/* 87524*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/* 87527*/          OPC_EmitMergeInputChains1_0,
/* 87528*/          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>>) - Complexity = 25
                    // Dst: (VPOPCNTQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)
/* 87539*/        /*SwitchType*/ 20, MVT::v16i32,// ->87561
/* 87541*/          OPC_MoveParent,
/* 87542*/          OPC_CheckType, MVT::v16i32,
/* 87544*/          OPC_CheckPatternPredicate, 142, // (Subtarget->hasVPOPCNTDQ())
/* 87546*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/* 87549*/          OPC_EmitMergeInputChains1_0,
/* 87550*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ctpop:{ *:[v16i32] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPOPCNTDZrm:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)
/* 87561*/        /*SwitchType*/ 20, MVT::v8i32,// ->87583
/* 87563*/          OPC_MoveParent,
/* 87564*/          OPC_CheckType, MVT::v8i32,
/* 87566*/          OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/* 87568*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/* 87571*/          OPC_EmitMergeInputChains1_0,
/* 87572*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ctpop:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPOPCNTDZ256rm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)
/* 87583*/        /*SwitchType*/ 20, MVT::v4i32,// ->87605
/* 87585*/          OPC_MoveParent,
/* 87586*/          OPC_CheckType, MVT::v4i32,
/* 87588*/          OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/* 87590*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/* 87593*/          OPC_EmitMergeInputChains1_0,
/* 87594*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ctpop:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPOPCNTDZ128rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)
/* 87605*/        /*SwitchType*/ 20, MVT::v64i8,// ->87627
/* 87607*/          OPC_MoveParent,
/* 87608*/          OPC_CheckType, MVT::v64i8,
/* 87610*/          OPC_CheckPatternPredicate, 114, // (Subtarget->hasBITALG())
/* 87612*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/* 87615*/          OPC_EmitMergeInputChains1_0,
/* 87616*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTBZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v64i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ctpop:{ *:[v64i8] } (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPOPCNTBZrm:{ *:[v64i8] } addr:{ *:[iPTR] }:$src1)
/* 87627*/        /*SwitchType*/ 20, MVT::v32i8,// ->87649
/* 87629*/          OPC_MoveParent,
/* 87630*/          OPC_CheckType, MVT::v32i8,
/* 87632*/          OPC_CheckPatternPredicate, 115, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/* 87634*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/* 87637*/          OPC_EmitMergeInputChains1_0,
/* 87638*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTBZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ctpop:{ *:[v32i8] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPOPCNTBZ256rm:{ *:[v32i8] } addr:{ *:[iPTR] }:$src1)
/* 87649*/        /*SwitchType*/ 20, MVT::v16i8,// ->87671
/* 87651*/          OPC_MoveParent,
/* 87652*/          OPC_CheckType, MVT::v16i8,
/* 87654*/          OPC_CheckPatternPredicate, 115, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/* 87656*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/* 87659*/          OPC_EmitMergeInputChains1_0,
/* 87660*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTBZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ctpop:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPOPCNTBZ128rm:{ *:[v16i8] } addr:{ *:[iPTR] }:$src1)
/* 87671*/        /*SwitchType*/ 20, MVT::v32i16,// ->87693
/* 87673*/          OPC_MoveParent,
/* 87674*/          OPC_CheckType, MVT::v32i16,
/* 87676*/          OPC_CheckPatternPredicate, 114, // (Subtarget->hasBITALG())
/* 87678*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/* 87681*/          OPC_EmitMergeInputChains1_0,
/* 87682*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ctpop:{ *:[v32i16] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPOPCNTWZrm:{ *:[v32i16] } addr:{ *:[iPTR] }:$src1)
/* 87693*/        /*SwitchType*/ 20, MVT::v16i16,// ->87715
/* 87695*/          OPC_MoveParent,
/* 87696*/          OPC_CheckType, MVT::v16i16,
/* 87698*/          OPC_CheckPatternPredicate, 115, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/* 87700*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/* 87703*/          OPC_EmitMergeInputChains1_0,
/* 87704*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ctpop:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPOPCNTWZ256rm:{ *:[v16i16] } addr:{ *:[iPTR] }:$src1)
/* 87715*/        /*SwitchType*/ 20, MVT::v8i16,// ->87737
/* 87717*/          OPC_MoveParent,
/* 87718*/          OPC_CheckType, MVT::v8i16,
/* 87720*/          OPC_CheckPatternPredicate, 115, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/* 87722*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/* 87725*/          OPC_EmitMergeInputChains1_0,
/* 87726*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ctpop:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPOPCNTWZ128rm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src1)
/* 87737*/        0, // EndSwitchType
/* 87738*/      /*SwitchOpcode*/ 19|128,1/*147*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->87889
/* 87742*/        OPC_RecordMemRef,
/* 87743*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/* 87744*/        OPC_RecordChild1, // #1 = $src1
/* 87745*/        OPC_Scope, 70, /*->87817*/ // 2 children in Scope
/* 87747*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 87749*/          OPC_SwitchType /*3 cases */, 20, MVT::v8i64,// ->87772
/* 87752*/            OPC_MoveParent,
/* 87753*/            OPC_CheckType, MVT::v8i64,
/* 87755*/            OPC_CheckPatternPredicate, 142, // (Subtarget->hasVPOPCNTDQ())
/* 87757*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/* 87760*/            OPC_EmitMergeInputChains1_0,
/* 87761*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (ctpop:{ *:[v8i64] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPOPCNTQZrmb:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)
/* 87772*/          /*SwitchType*/ 20, MVT::v4i64,// ->87794
/* 87774*/            OPC_MoveParent,
/* 87775*/            OPC_CheckType, MVT::v4i64,
/* 87777*/            OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/* 87779*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/* 87782*/            OPC_EmitMergeInputChains1_0,
/* 87783*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (ctpop:{ *:[v4i64] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPOPCNTQZ256rmb:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)
/* 87794*/          /*SwitchType*/ 20, MVT::v2i64,// ->87816
/* 87796*/            OPC_MoveParent,
/* 87797*/            OPC_CheckType, MVT::v2i64,
/* 87799*/            OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/* 87801*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/* 87804*/            OPC_EmitMergeInputChains1_0,
/* 87805*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (ctpop:{ *:[v2i64] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPOPCNTQZ128rmb:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)
/* 87816*/          0, // EndSwitchType
/* 87817*/        /*Scope*/ 70, /*->87888*/
/* 87818*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/* 87820*/          OPC_SwitchType /*3 cases */, 20, MVT::v16i32,// ->87843
/* 87823*/            OPC_MoveParent,
/* 87824*/            OPC_CheckType, MVT::v16i32,
/* 87826*/            OPC_CheckPatternPredicate, 142, // (Subtarget->hasVPOPCNTDQ())
/* 87828*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/* 87831*/            OPC_EmitMergeInputChains1_0,
/* 87832*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (ctpop:{ *:[v16i32] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPOPCNTDZrmb:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)
/* 87843*/          /*SwitchType*/ 20, MVT::v8i32,// ->87865
/* 87845*/            OPC_MoveParent,
/* 87846*/            OPC_CheckType, MVT::v8i32,
/* 87848*/            OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/* 87850*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/* 87853*/            OPC_EmitMergeInputChains1_0,
/* 87854*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (ctpop:{ *:[v8i32] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPOPCNTDZ256rmb:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)
/* 87865*/          /*SwitchType*/ 20, MVT::v4i32,// ->87887
/* 87867*/            OPC_MoveParent,
/* 87868*/            OPC_CheckType, MVT::v4i32,
/* 87870*/            OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/* 87872*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/* 87875*/            OPC_EmitMergeInputChains1_0,
/* 87876*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (ctpop:{ *:[v4i32] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPOPCNTDZ128rmb:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)
/* 87887*/          0, // EndSwitchType
/* 87888*/        0, /*End of Scope*/
/* 87889*/      0, // EndSwitchOpcode
/* 87890*/    /*Scope*/ 111|128,3/*495*/, /*->88387*/
/* 87892*/      OPC_RecordChild0, // #0 = $src1
/* 87893*/      OPC_SwitchType /*12 cases */, 11, MVT::v8i64,// ->87907
/* 87896*/        OPC_CheckChild0Type, MVT::v8i64,
/* 87898*/        OPC_CheckPatternPredicate, 142, // (Subtarget->hasVPOPCNTDQ())
/* 87900*/        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)
/* 87907*/      /*SwitchType*/ 53, MVT::v4i64,// ->87962
/* 87909*/        OPC_CheckChild0Type, MVT::v4i64,
/* 87911*/        OPC_Scope, 9, /*->87922*/ // 2 children in Scope
/* 87913*/          OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/* 87915*/          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)
/* 87922*/        /*Scope*/ 38, /*->87961*/
/* 87923*/          OPC_CheckPatternPredicate, 144, // (Subtarget->hasVPOPCNTDQ()) && (!Subtarget->hasVLX())
/* 87925*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #1
/* 87931*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 87934*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/* 87943*/          OPC_EmitNode1, TARGET_VAL(X86::VPOPCNTQZrr), 0,
                        MVT::v64i8, 1/*#Ops*/, 3,  // Results = #4
/* 87950*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 87953*/          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] })
/* 87961*/        0, /*End of Scope*/
/* 87962*/      /*SwitchType*/ 53, MVT::v2i64,// ->88017
/* 87964*/        OPC_CheckChild0Type, MVT::v2i64,
/* 87966*/        OPC_Scope, 9, /*->87977*/ // 2 children in Scope
/* 87968*/          OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/* 87970*/          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)
/* 87977*/        /*Scope*/ 38, /*->88016*/
/* 87978*/          OPC_CheckPatternPredicate, 144, // (Subtarget->hasVPOPCNTDQ()) && (!Subtarget->hasVLX())
/* 87980*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #1
/* 87986*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 87989*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/* 87998*/          OPC_EmitNode1, TARGET_VAL(X86::VPOPCNTQZrr), 0,
                        MVT::v64i8, 1/*#Ops*/, 3,  // Results = #4
/* 88005*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 88008*/          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] })
/* 88016*/        0, /*End of Scope*/
/* 88017*/      /*SwitchType*/ 11, MVT::v16i32,// ->88030
/* 88019*/        OPC_CheckChild0Type, MVT::v16i32,
/* 88021*/        OPC_CheckPatternPredicate, 142, // (Subtarget->hasVPOPCNTDQ())
/* 88023*/        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)
/* 88030*/      /*SwitchType*/ 53, MVT::v8i32,// ->88085
/* 88032*/        OPC_CheckChild0Type, MVT::v8i32,
/* 88034*/        OPC_Scope, 9, /*->88045*/ // 2 children in Scope
/* 88036*/          OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/* 88038*/          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)
/* 88045*/        /*Scope*/ 38, /*->88084*/
/* 88046*/          OPC_CheckPatternPredicate, 144, // (Subtarget->hasVPOPCNTDQ()) && (!Subtarget->hasVLX())
/* 88048*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #1
/* 88054*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 88057*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/* 88066*/          OPC_EmitNode1, TARGET_VAL(X86::VPOPCNTDZrr), 0,
                        MVT::v64i8, 1/*#Ops*/, 3,  // Results = #4
/* 88073*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 88076*/          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] })
/* 88084*/        0, /*End of Scope*/
/* 88085*/      /*SwitchType*/ 53, MVT::v4i32,// ->88140
/* 88087*/        OPC_CheckChild0Type, MVT::v4i32,
/* 88089*/        OPC_Scope, 9, /*->88100*/ // 2 children in Scope
/* 88091*/          OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/* 88093*/          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)
/* 88100*/        /*Scope*/ 38, /*->88139*/
/* 88101*/          OPC_CheckPatternPredicate, 144, // (Subtarget->hasVPOPCNTDQ()) && (!Subtarget->hasVLX())
/* 88103*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #1
/* 88109*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 88112*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/* 88121*/          OPC_EmitNode1, TARGET_VAL(X86::VPOPCNTDZrr), 0,
                        MVT::v64i8, 1/*#Ops*/, 3,  // Results = #4
/* 88128*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 88131*/          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] })
/* 88139*/        0, /*End of Scope*/
/* 88140*/      /*SwitchType*/ 11, MVT::v64i8,// ->88153
/* 88142*/        OPC_CheckChild0Type, MVT::v64i8,
/* 88144*/        OPC_CheckPatternPredicate, 114, // (Subtarget->hasBITALG())
/* 88146*/        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)
/* 88153*/      /*SwitchType*/ 53, MVT::v32i8,// ->88208
/* 88155*/        OPC_CheckChild0Type, MVT::v32i8,
/* 88157*/        OPC_Scope, 9, /*->88168*/ // 2 children in Scope
/* 88159*/          OPC_CheckPatternPredicate, 115, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/* 88161*/          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)
/* 88168*/        /*Scope*/ 38, /*->88207*/
/* 88169*/          OPC_CheckPatternPredicate, 145, // (Subtarget->hasBITALG()) && (!Subtarget->hasVLX())
/* 88171*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #1
/* 88177*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 88180*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v64i8, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/* 88189*/          OPC_EmitNode1, TARGET_VAL(X86::VPOPCNTBZrr), 0,
                        MVT::v64i8, 1/*#Ops*/, 3,  // Results = #4
/* 88196*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 88199*/          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] })
/* 88207*/        0, /*End of Scope*/
/* 88208*/      /*SwitchType*/ 53, MVT::v16i8,// ->88263
/* 88210*/        OPC_CheckChild0Type, MVT::v16i8,
/* 88212*/        OPC_Scope, 9, /*->88223*/ // 2 children in Scope
/* 88214*/          OPC_CheckPatternPredicate, 115, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/* 88216*/          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)
/* 88223*/        /*Scope*/ 38, /*->88262*/
/* 88224*/          OPC_CheckPatternPredicate, 145, // (Subtarget->hasBITALG()) && (!Subtarget->hasVLX())
/* 88226*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #1
/* 88232*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 88235*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v64i8, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/* 88244*/          OPC_EmitNode1, TARGET_VAL(X86::VPOPCNTBZrr), 0,
                        MVT::v64i8, 1/*#Ops*/, 3,  // Results = #4
/* 88251*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 88254*/          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] })
/* 88262*/        0, /*End of Scope*/
/* 88263*/      /*SwitchType*/ 11, MVT::v32i16,// ->88276
/* 88265*/        OPC_CheckChild0Type, MVT::v32i16,
/* 88267*/        OPC_CheckPatternPredicate, 114, // (Subtarget->hasBITALG())
/* 88269*/        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)
/* 88276*/      /*SwitchType*/ 53, MVT::v16i16,// ->88331
/* 88278*/        OPC_CheckChild0Type, MVT::v16i16,
/* 88280*/        OPC_Scope, 9, /*->88291*/ // 2 children in Scope
/* 88282*/          OPC_CheckPatternPredicate, 115, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/* 88284*/          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)
/* 88291*/        /*Scope*/ 38, /*->88330*/
/* 88292*/          OPC_CheckPatternPredicate, 145, // (Subtarget->hasBITALG()) && (!Subtarget->hasVLX())
/* 88294*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #1
/* 88300*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 88303*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/* 88312*/          OPC_EmitNode1, TARGET_VAL(X86::VPOPCNTWZrr), 0,
                        MVT::v64i8, 1/*#Ops*/, 3,  // Results = #4
/* 88319*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/* 88322*/          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] })
/* 88330*/        0, /*End of Scope*/
/* 88331*/      /*SwitchType*/ 53, MVT::v8i16,// ->88386
/* 88333*/        OPC_CheckChild0Type, MVT::v8i16,
/* 88335*/        OPC_Scope, 9, /*->88346*/ // 2 children in Scope
/* 88337*/          OPC_CheckPatternPredicate, 115, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/* 88339*/          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)
/* 88346*/        /*Scope*/ 38, /*->88385*/
/* 88347*/          OPC_CheckPatternPredicate, 145, // (Subtarget->hasBITALG()) && (!Subtarget->hasVLX())
/* 88349*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #1
/* 88355*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 88358*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/* 88367*/          OPC_EmitNode1, TARGET_VAL(X86::VPOPCNTWZrr), 0,
                        MVT::v64i8, 1/*#Ops*/, 3,  // Results = #4
/* 88374*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/* 88377*/          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] })
/* 88385*/        0, /*End of Scope*/
/* 88386*/      0, // EndSwitchType
/* 88387*/    0, /*End of Scope*/
/* 88388*/  /*SwitchOpcode*/ 50|128,1/*178*/, TARGET_VAL(ISD::STRICT_FP_TO_UINT),// ->88570
/* 88392*/    OPC_RecordNode, // #0 = 'strict_fp_to_uint' chained node
/* 88393*/    OPC_Scope, 112, /*->88507*/ // 2 children in Scope
/* 88395*/      OPC_MoveChild1,
/* 88396*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 88399*/      OPC_RecordMemRef,
/* 88400*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 88401*/      OPC_CheckFoldableChainNode,
/* 88402*/      OPC_RecordChild1, // #2 = $src
/* 88403*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 88405*/      OPC_CheckPredicate, 9, // Predicate_load
/* 88407*/      OPC_SwitchType /*2 cases */, 47, MVT::f32,// ->88457
/* 88410*/        OPC_MoveParent,
/* 88411*/        OPC_SwitchType /*2 cases */, 20, MVT::i32,// ->88434
/* 88414*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 88416*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/* 88419*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/* 88423*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSS2USIZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (strict_fp_to_uint:{ *:[i32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VCVTTSS2USIZrm:{ *:[i32] } addr:{ *:[iPTR] }:$src)
/* 88434*/        /*SwitchType*/ 20, MVT::i64,// ->88456
/* 88436*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 88438*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/* 88441*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/* 88445*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSS2USI64Zrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (strict_fp_to_uint:{ *:[i64] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VCVTTSS2USI64Zrm:{ *:[i64] } addr:{ *:[iPTR] }:$src)
/* 88456*/        0, // EndSwitchType
/* 88457*/      /*SwitchType*/ 47, MVT::f64,// ->88506
/* 88459*/        OPC_MoveParent,
/* 88460*/        OPC_SwitchType /*2 cases */, 20, MVT::i32,// ->88483
/* 88463*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 88465*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/* 88468*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/* 88472*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSD2USIZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (strict_fp_to_uint:{ *:[i32] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VCVTTSD2USIZrm:{ *:[i32] } addr:{ *:[iPTR] }:$src)
/* 88483*/        /*SwitchType*/ 20, MVT::i64,// ->88505
/* 88485*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 88487*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/* 88490*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/* 88494*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSD2USI64Zrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (strict_fp_to_uint:{ *:[i64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VCVTTSD2USI64Zrm:{ *:[i64] } addr:{ *:[iPTR] }:$src)
/* 88505*/        0, // EndSwitchType
/* 88506*/      0, // EndSwitchType
/* 88507*/    /*Scope*/ 61, /*->88569*/
/* 88508*/      OPC_RecordChild1, // #1 = $src
/* 88509*/      OPC_Scope, 28, /*->88539*/ // 2 children in Scope
/* 88511*/        OPC_CheckChild1Type, MVT::f32,
/* 88513*/        OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->88526
/* 88516*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 88518*/          OPC_EmitMergeInputChains1_0,
/* 88519*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSS2USIZrr), 0|OPFL_Chain,
                        MVT::i32, 1/*#Ops*/, 1, 
                    // Src: (strict_fp_to_uint:{ *:[i32] } FR32X:{ *:[f32] }:$src) - Complexity = 3
                    // Dst: (VCVTTSS2USIZrr:{ *:[i32] } FR32X:{ *:[f32] }:$src)
/* 88526*/        /*SwitchType*/ 10, MVT::i64,// ->88538
/* 88528*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 88530*/          OPC_EmitMergeInputChains1_0,
/* 88531*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSS2USI64Zrr), 0|OPFL_Chain,
                        MVT::i64, 1/*#Ops*/, 1, 
                    // Src: (strict_fp_to_uint:{ *:[i64] } FR32X:{ *:[f32] }:$src) - Complexity = 3
                    // Dst: (VCVTTSS2USI64Zrr:{ *:[i64] } FR32X:{ *:[f32] }:$src)
/* 88538*/        0, // EndSwitchType
/* 88539*/      /*Scope*/ 28, /*->88568*/
/* 88540*/        OPC_CheckChild1Type, MVT::f64,
/* 88542*/        OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->88555
/* 88545*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 88547*/          OPC_EmitMergeInputChains1_0,
/* 88548*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSD2USIZrr), 0|OPFL_Chain,
                        MVT::i32, 1/*#Ops*/, 1, 
                    // Src: (strict_fp_to_uint:{ *:[i32] } FR64X:{ *:[f64] }:$src) - Complexity = 3
                    // Dst: (VCVTTSD2USIZrr:{ *:[i32] } FR64X:{ *:[f64] }:$src)
/* 88555*/        /*SwitchType*/ 10, MVT::i64,// ->88567
/* 88557*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 88559*/          OPC_EmitMergeInputChains1_0,
/* 88560*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSD2USI64Zrr), 0|OPFL_Chain,
                        MVT::i64, 1/*#Ops*/, 1, 
                    // Src: (strict_fp_to_uint:{ *:[i64] } FR64X:{ *:[f64] }:$src) - Complexity = 3
                    // Dst: (VCVTTSD2USI64Zrr:{ *:[i64] } FR64X:{ *:[f64] }:$src)
/* 88567*/        0, // EndSwitchType
/* 88568*/      0, /*End of Scope*/
/* 88569*/    0, /*End of Scope*/
/* 88570*/  /*SwitchOpcode*/ 32|128,1/*160*/, TARGET_VAL(ISD::FP_TO_UINT),// ->88734
/* 88574*/    OPC_Scope, 99, /*->88675*/ // 2 children in Scope
/* 88576*/      OPC_MoveChild0,
/* 88577*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 88580*/      OPC_RecordMemRef,
/* 88581*/      OPC_RecordNode, // #0 = 'ld' chained node
/* 88582*/      OPC_RecordChild1, // #1 = $src
/* 88583*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 88585*/      OPC_CheckPredicate, 9, // Predicate_load
/* 88587*/      OPC_SwitchType /*2 cases */, 41, MVT::f32,// ->88631
/* 88590*/        OPC_MoveParent,
/* 88591*/        OPC_SwitchType /*2 cases */, 17, MVT::i32,// ->88611
/* 88594*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 88596*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 88599*/          OPC_EmitMergeInputChains1_0,
/* 88600*/          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)
/* 88611*/        /*SwitchType*/ 17, MVT::i64,// ->88630
/* 88613*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 88615*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 88618*/          OPC_EmitMergeInputChains1_0,
/* 88619*/          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)
/* 88630*/        0, // EndSwitchType
/* 88631*/      /*SwitchType*/ 41, MVT::f64,// ->88674
/* 88633*/        OPC_MoveParent,
/* 88634*/        OPC_SwitchType /*2 cases */, 17, MVT::i32,// ->88654
/* 88637*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 88639*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 88642*/          OPC_EmitMergeInputChains1_0,
/* 88643*/          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)
/* 88654*/        /*SwitchType*/ 17, MVT::i64,// ->88673
/* 88656*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 88658*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 88661*/          OPC_EmitMergeInputChains1_0,
/* 88662*/          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)
/* 88673*/        0, // EndSwitchType
/* 88674*/      0, // EndSwitchType
/* 88675*/    /*Scope*/ 57, /*->88733*/
/* 88676*/      OPC_RecordChild0, // #0 = $src
/* 88677*/      OPC_Scope, 26, /*->88705*/ // 2 children in Scope
/* 88679*/        OPC_CheckChild0Type, MVT::f32,
/* 88681*/        OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->88693
/* 88684*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 88686*/          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)
/* 88693*/        /*SwitchType*/ 9, MVT::i64,// ->88704
/* 88695*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 88697*/          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)
/* 88704*/        0, // EndSwitchType
/* 88705*/      /*Scope*/ 26, /*->88732*/
/* 88706*/        OPC_CheckChild0Type, MVT::f64,
/* 88708*/        OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->88720
/* 88711*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 88713*/          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)
/* 88720*/        /*SwitchType*/ 9, MVT::i64,// ->88731
/* 88722*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 88724*/          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)
/* 88731*/        0, // EndSwitchType
/* 88732*/      0, /*End of Scope*/
/* 88733*/    0, /*End of Scope*/
/* 88734*/  /*SwitchOpcode*/ 93|128,3/*477*/, TARGET_VAL(X86ISD::VP2INTERSECT),// ->89215
/* 88738*/    OPC_RecordChild0, // #0 = $src1
/* 88739*/    OPC_Scope, 78, /*->88819*/ // 6 children in Scope
/* 88741*/      OPC_CheckChild0Type, MVT::v16i32,
/* 88743*/      OPC_Scope, 61, /*->88806*/ // 2 children in Scope
/* 88745*/        OPC_MoveChild1,
/* 88746*/        OPC_SwitchOpcode /*2 cases */, 27, TARGET_VAL(ISD::LOAD),// ->88777
/* 88750*/          OPC_RecordMemRef,
/* 88751*/          OPC_RecordNode, // #1 = 'ld' chained node
/* 88752*/          OPC_CheckFoldableChainNode,
/* 88753*/          OPC_RecordChild1, // #2 = $src2
/* 88754*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 88756*/          OPC_CheckPredicate, 9, // Predicate_load
/* 88758*/          OPC_MoveParent,
/* 88759*/          OPC_CheckPatternPredicate, 146, // (Subtarget->hasAVX512()) && (Subtarget->hasVP2INTERSECT())
/* 88761*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 88764*/          OPC_EmitMergeInputChains1_1,
/* 88765*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VP2INTERSECTDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::Untyped, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86vp2intersect:{ *:[Untyped] } VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VP2INTERSECTDZrm:{ *:[Untyped] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 88777*/        /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->88805
/* 88780*/          OPC_RecordMemRef,
/* 88781*/          OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/* 88782*/          OPC_CheckFoldableChainNode,
/* 88783*/          OPC_RecordChild1, // #2 = $src2
/* 88784*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/* 88786*/          OPC_MoveParent,
/* 88787*/          OPC_CheckPatternPredicate, 146, // (Subtarget->hasAVX512()) && (Subtarget->hasVP2INTERSECT())
/* 88789*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 88792*/          OPC_EmitMergeInputChains1_1,
/* 88793*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VP2INTERSECTDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::Untyped, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86vp2intersect:{ *:[Untyped] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                    // Dst: (VP2INTERSECTDZrmb:{ *:[Untyped] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 88805*/        0, // EndSwitchOpcode
/* 88806*/      /*Scope*/ 11, /*->88818*/
/* 88807*/        OPC_RecordChild1, // #1 = $src2
/* 88808*/        OPC_CheckPatternPredicate, 146, // (Subtarget->hasAVX512()) && (Subtarget->hasVP2INTERSECT())
/* 88810*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VP2INTERSECTDZrr), 0,
                      MVT::Untyped, 2/*#Ops*/, 0, 1, 
                  // Src: (X86vp2intersect:{ *:[Untyped] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2) - Complexity = 3
                  // Dst: (VP2INTERSECTDZrr:{ *:[Untyped] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/* 88818*/      0, /*End of Scope*/
/* 88819*/    /*Scope*/ 78, /*->88898*/
/* 88820*/      OPC_CheckChild0Type, MVT::v8i32,
/* 88822*/      OPC_Scope, 61, /*->88885*/ // 2 children in Scope
/* 88824*/        OPC_MoveChild1,
/* 88825*/        OPC_SwitchOpcode /*2 cases */, 27, TARGET_VAL(ISD::LOAD),// ->88856
/* 88829*/          OPC_RecordMemRef,
/* 88830*/          OPC_RecordNode, // #1 = 'ld' chained node
/* 88831*/          OPC_CheckFoldableChainNode,
/* 88832*/          OPC_RecordChild1, // #2 = $src2
/* 88833*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 88835*/          OPC_CheckPredicate, 9, // Predicate_load
/* 88837*/          OPC_MoveParent,
/* 88838*/          OPC_CheckPatternPredicate, 147, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX()) && (Subtarget->hasVP2INTERSECT())
/* 88840*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 88843*/          OPC_EmitMergeInputChains1_1,
/* 88844*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VP2INTERSECTDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::Untyped, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86vp2intersect:{ *:[Untyped] } VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VP2INTERSECTDZ256rm:{ *:[Untyped] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 88856*/        /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->88884
/* 88859*/          OPC_RecordMemRef,
/* 88860*/          OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/* 88861*/          OPC_CheckFoldableChainNode,
/* 88862*/          OPC_RecordChild1, // #2 = $src2
/* 88863*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/* 88865*/          OPC_MoveParent,
/* 88866*/          OPC_CheckPatternPredicate, 147, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX()) && (Subtarget->hasVP2INTERSECT())
/* 88868*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 88871*/          OPC_EmitMergeInputChains1_1,
/* 88872*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VP2INTERSECTDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::Untyped, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86vp2intersect:{ *:[Untyped] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                    // Dst: (VP2INTERSECTDZ256rmb:{ *:[Untyped] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 88884*/        0, // EndSwitchOpcode
/* 88885*/      /*Scope*/ 11, /*->88897*/
/* 88886*/        OPC_RecordChild1, // #1 = $src2
/* 88887*/        OPC_CheckPatternPredicate, 147, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX()) && (Subtarget->hasVP2INTERSECT())
/* 88889*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VP2INTERSECTDZ256rr), 0,
                      MVT::Untyped, 2/*#Ops*/, 0, 1, 
                  // Src: (X86vp2intersect:{ *:[Untyped] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2) - Complexity = 3
                  // Dst: (VP2INTERSECTDZ256rr:{ *:[Untyped] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/* 88897*/      0, /*End of Scope*/
/* 88898*/    /*Scope*/ 78, /*->88977*/
/* 88899*/      OPC_CheckChild0Type, MVT::v4i32,
/* 88901*/      OPC_Scope, 61, /*->88964*/ // 2 children in Scope
/* 88903*/        OPC_MoveChild1,
/* 88904*/        OPC_SwitchOpcode /*2 cases */, 27, TARGET_VAL(ISD::LOAD),// ->88935
/* 88908*/          OPC_RecordMemRef,
/* 88909*/          OPC_RecordNode, // #1 = 'ld' chained node
/* 88910*/          OPC_CheckFoldableChainNode,
/* 88911*/          OPC_RecordChild1, // #2 = $src2
/* 88912*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 88914*/          OPC_CheckPredicate, 9, // Predicate_load
/* 88916*/          OPC_MoveParent,
/* 88917*/          OPC_CheckPatternPredicate, 147, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX()) && (Subtarget->hasVP2INTERSECT())
/* 88919*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 88922*/          OPC_EmitMergeInputChains1_1,
/* 88923*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VP2INTERSECTDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::Untyped, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86vp2intersect:{ *:[Untyped] } VR128X:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VP2INTERSECTDZ128rm:{ *:[Untyped] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 88935*/        /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->88963
/* 88938*/          OPC_RecordMemRef,
/* 88939*/          OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/* 88940*/          OPC_CheckFoldableChainNode,
/* 88941*/          OPC_RecordChild1, // #2 = $src2
/* 88942*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/* 88944*/          OPC_MoveParent,
/* 88945*/          OPC_CheckPatternPredicate, 147, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX()) && (Subtarget->hasVP2INTERSECT())
/* 88947*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 88950*/          OPC_EmitMergeInputChains1_1,
/* 88951*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VP2INTERSECTDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::Untyped, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86vp2intersect:{ *:[Untyped] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                    // Dst: (VP2INTERSECTDZ128rmb:{ *:[Untyped] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 88963*/        0, // EndSwitchOpcode
/* 88964*/      /*Scope*/ 11, /*->88976*/
/* 88965*/        OPC_RecordChild1, // #1 = $src2
/* 88966*/        OPC_CheckPatternPredicate, 147, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX()) && (Subtarget->hasVP2INTERSECT())
/* 88968*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VP2INTERSECTDZ128rr), 0,
                      MVT::Untyped, 2/*#Ops*/, 0, 1, 
                  // Src: (X86vp2intersect:{ *:[Untyped] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2) - Complexity = 3
                  // Dst: (VP2INTERSECTDZ128rr:{ *:[Untyped] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/* 88976*/      0, /*End of Scope*/
/* 88977*/    /*Scope*/ 78, /*->89056*/
/* 88978*/      OPC_CheckChild0Type, MVT::v8i64,
/* 88980*/      OPC_Scope, 61, /*->89043*/ // 2 children in Scope
/* 88982*/        OPC_MoveChild1,
/* 88983*/        OPC_SwitchOpcode /*2 cases */, 27, TARGET_VAL(ISD::LOAD),// ->89014
/* 88987*/          OPC_RecordMemRef,
/* 88988*/          OPC_RecordNode, // #1 = 'ld' chained node
/* 88989*/          OPC_CheckFoldableChainNode,
/* 88990*/          OPC_RecordChild1, // #2 = $src2
/* 88991*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 88993*/          OPC_CheckPredicate, 9, // Predicate_load
/* 88995*/          OPC_MoveParent,
/* 88996*/          OPC_CheckPatternPredicate, 146, // (Subtarget->hasAVX512()) && (Subtarget->hasVP2INTERSECT())
/* 88998*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 89001*/          OPC_EmitMergeInputChains1_1,
/* 89002*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VP2INTERSECTQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::Untyped, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86vp2intersect:{ *:[Untyped] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VP2INTERSECTQZrm:{ *:[Untyped] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 89014*/        /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->89042
/* 89017*/          OPC_RecordMemRef,
/* 89018*/          OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/* 89019*/          OPC_CheckFoldableChainNode,
/* 89020*/          OPC_RecordChild1, // #2 = $src2
/* 89021*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 89023*/          OPC_MoveParent,
/* 89024*/          OPC_CheckPatternPredicate, 146, // (Subtarget->hasAVX512()) && (Subtarget->hasVP2INTERSECT())
/* 89026*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 89029*/          OPC_EmitMergeInputChains1_1,
/* 89030*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VP2INTERSECTQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::Untyped, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86vp2intersect:{ *:[Untyped] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                    // Dst: (VP2INTERSECTQZrmb:{ *:[Untyped] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 89042*/        0, // EndSwitchOpcode
/* 89043*/      /*Scope*/ 11, /*->89055*/
/* 89044*/        OPC_RecordChild1, // #1 = $src2
/* 89045*/        OPC_CheckPatternPredicate, 146, // (Subtarget->hasAVX512()) && (Subtarget->hasVP2INTERSECT())
/* 89047*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VP2INTERSECTQZrr), 0,
                      MVT::Untyped, 2/*#Ops*/, 0, 1, 
                  // Src: (X86vp2intersect:{ *:[Untyped] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2) - Complexity = 3
                  // Dst: (VP2INTERSECTQZrr:{ *:[Untyped] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/* 89055*/      0, /*End of Scope*/
/* 89056*/    /*Scope*/ 78, /*->89135*/
/* 89057*/      OPC_CheckChild0Type, MVT::v4i64,
/* 89059*/      OPC_Scope, 61, /*->89122*/ // 2 children in Scope
/* 89061*/        OPC_MoveChild1,
/* 89062*/        OPC_SwitchOpcode /*2 cases */, 27, TARGET_VAL(ISD::LOAD),// ->89093
/* 89066*/          OPC_RecordMemRef,
/* 89067*/          OPC_RecordNode, // #1 = 'ld' chained node
/* 89068*/          OPC_CheckFoldableChainNode,
/* 89069*/          OPC_RecordChild1, // #2 = $src2
/* 89070*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 89072*/          OPC_CheckPredicate, 9, // Predicate_load
/* 89074*/          OPC_MoveParent,
/* 89075*/          OPC_CheckPatternPredicate, 147, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX()) && (Subtarget->hasVP2INTERSECT())
/* 89077*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 89080*/          OPC_EmitMergeInputChains1_1,
/* 89081*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VP2INTERSECTQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::Untyped, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86vp2intersect:{ *:[Untyped] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VP2INTERSECTQZ256rm:{ *:[Untyped] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 89093*/        /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->89121
/* 89096*/          OPC_RecordMemRef,
/* 89097*/          OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/* 89098*/          OPC_CheckFoldableChainNode,
/* 89099*/          OPC_RecordChild1, // #2 = $src2
/* 89100*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 89102*/          OPC_MoveParent,
/* 89103*/          OPC_CheckPatternPredicate, 147, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX()) && (Subtarget->hasVP2INTERSECT())
/* 89105*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 89108*/          OPC_EmitMergeInputChains1_1,
/* 89109*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VP2INTERSECTQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::Untyped, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86vp2intersect:{ *:[Untyped] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                    // Dst: (VP2INTERSECTQZ256rmb:{ *:[Untyped] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 89121*/        0, // EndSwitchOpcode
/* 89122*/      /*Scope*/ 11, /*->89134*/
/* 89123*/        OPC_RecordChild1, // #1 = $src2
/* 89124*/        OPC_CheckPatternPredicate, 147, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX()) && (Subtarget->hasVP2INTERSECT())
/* 89126*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VP2INTERSECTQZ256rr), 0,
                      MVT::Untyped, 2/*#Ops*/, 0, 1, 
                  // Src: (X86vp2intersect:{ *:[Untyped] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2) - Complexity = 3
                  // Dst: (VP2INTERSECTQZ256rr:{ *:[Untyped] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/* 89134*/      0, /*End of Scope*/
/* 89135*/    /*Scope*/ 78, /*->89214*/
/* 89136*/      OPC_CheckChild0Type, MVT::v2i64,
/* 89138*/      OPC_Scope, 61, /*->89201*/ // 2 children in Scope
/* 89140*/        OPC_MoveChild1,
/* 89141*/        OPC_SwitchOpcode /*2 cases */, 27, TARGET_VAL(ISD::LOAD),// ->89172
/* 89145*/          OPC_RecordMemRef,
/* 89146*/          OPC_RecordNode, // #1 = 'ld' chained node
/* 89147*/          OPC_CheckFoldableChainNode,
/* 89148*/          OPC_RecordChild1, // #2 = $src2
/* 89149*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 89151*/          OPC_CheckPredicate, 9, // Predicate_load
/* 89153*/          OPC_MoveParent,
/* 89154*/          OPC_CheckPatternPredicate, 147, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX()) && (Subtarget->hasVP2INTERSECT())
/* 89156*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 89159*/          OPC_EmitMergeInputChains1_1,
/* 89160*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VP2INTERSECTQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::Untyped, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86vp2intersect:{ *:[Untyped] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VP2INTERSECTQZ128rm:{ *:[Untyped] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 89172*/        /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->89200
/* 89175*/          OPC_RecordMemRef,
/* 89176*/          OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/* 89177*/          OPC_CheckFoldableChainNode,
/* 89178*/          OPC_RecordChild1, // #2 = $src2
/* 89179*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 89181*/          OPC_MoveParent,
/* 89182*/          OPC_CheckPatternPredicate, 147, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX()) && (Subtarget->hasVP2INTERSECT())
/* 89184*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 89187*/          OPC_EmitMergeInputChains1_1,
/* 89188*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VP2INTERSECTQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::Untyped, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86vp2intersect:{ *:[Untyped] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                    // Dst: (VP2INTERSECTQZ128rmb:{ *:[Untyped] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 89200*/        0, // EndSwitchOpcode
/* 89201*/      /*Scope*/ 11, /*->89213*/
/* 89202*/        OPC_RecordChild1, // #1 = $src2
/* 89203*/        OPC_CheckPatternPredicate, 147, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX()) && (Subtarget->hasVP2INTERSECT())
/* 89205*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VP2INTERSECTQZ128rr), 0,
                      MVT::Untyped, 2/*#Ops*/, 0, 1, 
                  // Src: (X86vp2intersect:{ *:[Untyped] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2) - Complexity = 3
                  // Dst: (VP2INTERSECTQZ128rr:{ *:[Untyped] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/* 89213*/      0, /*End of Scope*/
/* 89214*/    0, /*End of Scope*/
/* 89215*/  /*SwitchOpcode*/ 78|128,6/*846*/, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->90065
/* 89219*/    OPC_Scope, 33, /*->89254*/ // 6 children in Scope
/* 89221*/      OPC_MoveChild0,
/* 89222*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 89225*/      OPC_RecordMemRef,
/* 89226*/      OPC_RecordNode, // #0 = 'ld' chained node
/* 89227*/      OPC_RecordChild1, // #1 = $src
/* 89228*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 89230*/      OPC_CheckPredicate, 8, // Predicate_loadi32
/* 89232*/      OPC_CheckType, MVT::i32,
/* 89234*/      OPC_MoveParent,
/* 89235*/      OPC_CheckType, MVT::x86mmx,
/* 89237*/      OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 89239*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 89242*/      OPC_EmitMergeInputChains1_0,
/* 89243*/      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)
/* 89254*/    /*Scope*/ 14, /*->89269*/
/* 89255*/      OPC_RecordChild0, // #0 = $src
/* 89256*/      OPC_CheckChild0Type, MVT::i32,
/* 89258*/      OPC_CheckType, MVT::x86mmx,
/* 89260*/      OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 89262*/      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)
/* 89269*/    /*Scope*/ 32|128,1/*160*/, /*->89431*/
/* 89271*/      OPC_MoveChild0,
/* 89272*/      OPC_SwitchOpcode /*2 cases */, 5|128,1/*133*/, TARGET_VAL(ISD::LOAD),// ->89410
/* 89277*/        OPC_RecordMemRef,
/* 89278*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 89279*/        OPC_RecordChild1, // #1 = $src
/* 89280*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 89282*/        OPC_SwitchType /*2 cases */, 61, MVT::i32,// ->89346
/* 89285*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/* 89287*/          OPC_MoveParent,
/* 89288*/          OPC_CheckType, MVT::v4i32,
/* 89290*/          OPC_Scope, 17, /*->89309*/ // 3 children in Scope
/* 89292*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 89294*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 89297*/            OPC_EmitMergeInputChains1_0,
/* 89298*/            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)
/* 89309*/          /*Scope*/ 17, /*->89327*/
/* 89310*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 89312*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 89315*/            OPC_EmitMergeInputChains1_0,
/* 89316*/            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)
/* 89327*/          /*Scope*/ 17, /*->89345*/
/* 89328*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 89330*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 89333*/            OPC_EmitMergeInputChains1_0,
/* 89334*/            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)
/* 89345*/          0, /*End of Scope*/
/* 89346*/        /*SwitchType*/ 61, MVT::i64,// ->89409
/* 89348*/          OPC_CheckPredicate, 9, // Predicate_load
/* 89350*/          OPC_MoveParent,
/* 89351*/          OPC_CheckType, MVT::v2i64,
/* 89353*/          OPC_Scope, 17, /*->89372*/ // 3 children in Scope
/* 89355*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 89357*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 89360*/            OPC_EmitMergeInputChains1_0,
/* 89361*/            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)
/* 89372*/          /*Scope*/ 17, /*->89390*/
/* 89373*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 89375*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 89378*/            OPC_EmitMergeInputChains1_0,
/* 89379*/            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)
/* 89390*/          /*Scope*/ 17, /*->89408*/
/* 89391*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 89393*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 89396*/            OPC_EmitMergeInputChains1_0,
/* 89397*/            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)
/* 89408*/          0, /*End of Scope*/
/* 89409*/        0, // EndSwitchType
/* 89410*/      /*SwitchOpcode*/ 17, TARGET_VAL(ISD::BITCAST),// ->89430
/* 89413*/        OPC_RecordChild0, // #0 = $src
/* 89414*/        OPC_CheckChild0Type, MVT::x86mmx,
/* 89416*/        OPC_CheckType, MVT::i64,
/* 89418*/        OPC_MoveParent,
/* 89419*/        OPC_CheckType, MVT::v2i64,
/* 89421*/        OPC_CheckPatternPredicate, 39, // (Subtarget->hasMMX()) && (Subtarget->hasSSE2())
/* 89423*/        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)
/* 89430*/      0, // EndSwitchOpcode
/* 89431*/    /*Scope*/ 38|128,3/*422*/, /*->89855*/
/* 89433*/      OPC_RecordChild0, // #0 = $src
/* 89434*/      OPC_Scope, 15|128,1/*143*/, /*->89580*/ // 3 children in Scope
/* 89437*/        OPC_CheckChild0Type, MVT::i32,
/* 89439*/        OPC_SwitchType /*8 cases */, 13, MVT::v1i1,// ->89455
/* 89442*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 89444*/          OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/* 89447*/          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] })
/* 89455*/        /*SwitchType*/ 13, MVT::v2i1,// ->89470
/* 89457*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 89459*/          OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/* 89462*/          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] })
/* 89470*/        /*SwitchType*/ 13, MVT::v4i1,// ->89485
/* 89472*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 89474*/          OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 89477*/          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] })
/* 89485*/        /*SwitchType*/ 13, MVT::v8i1,// ->89500
/* 89487*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 89489*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 89492*/          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] })
/* 89500*/        /*SwitchType*/ 13, MVT::v16i1,// ->89515
/* 89502*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 89504*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 89507*/          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] })
/* 89515*/        /*SwitchType*/ 13, MVT::v32i1,// ->89530
/* 89517*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 89519*/          OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/* 89522*/          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] })
/* 89530*/        /*SwitchType*/ 13, MVT::v64i1,// ->89545
/* 89532*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 89534*/          OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/* 89537*/          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] })
/* 89545*/        /*SwitchType*/ 32, MVT::v4i32,// ->89579
/* 89547*/          OPC_Scope, 9, /*->89558*/ // 3 children in Scope
/* 89549*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 89551*/            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)
/* 89558*/          /*Scope*/ 9, /*->89568*/
/* 89559*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 89561*/            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)
/* 89568*/          /*Scope*/ 9, /*->89578*/
/* 89569*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 89571*/            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)
/* 89578*/          0, /*End of Scope*/
/* 89579*/        0, // EndSwitchType
/* 89580*/      /*Scope*/ 36, /*->89617*/
/* 89581*/        OPC_CheckChild0Type, MVT::i64,
/* 89583*/        OPC_CheckType, MVT::v2i64,
/* 89585*/        OPC_Scope, 9, /*->89596*/ // 3 children in Scope
/* 89587*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 89589*/          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)
/* 89596*/        /*Scope*/ 9, /*->89606*/
/* 89597*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 89599*/          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)
/* 89606*/        /*Scope*/ 9, /*->89616*/
/* 89607*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 89609*/          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)
/* 89616*/        0, /*End of Scope*/
/* 89617*/      /*Scope*/ 107|128,1/*235*/, /*->89854*/
/* 89619*/        OPC_CheckChild0Type, MVT::i8,
/* 89621*/        OPC_SwitchType /*7 cases */, 31, MVT::v1i1,// ->89655
/* 89624*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 89626*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i32, 0/*#Ops*/,  // Results = #1
/* 89632*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 89635*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/* 89644*/          OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/* 89647*/          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] })
/* 89655*/        /*SwitchType*/ 31, MVT::v2i1,// ->89688
/* 89657*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 89659*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i32, 0/*#Ops*/,  // Results = #1
/* 89665*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 89668*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/* 89677*/          OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/* 89680*/          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] })
/* 89688*/        /*SwitchType*/ 31, MVT::v4i1,// ->89721
/* 89690*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 89692*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i32, 0/*#Ops*/,  // Results = #1
/* 89698*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 89701*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/* 89710*/          OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/* 89713*/          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] })
/* 89721*/        /*SwitchType*/ 31, MVT::v8i1,// ->89754
/* 89723*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 89725*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i32, 0/*#Ops*/,  // Results = #1
/* 89731*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 89734*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/* 89743*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/* 89746*/          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] })
/* 89754*/        /*SwitchType*/ 31, MVT::v16i1,// ->89787
/* 89756*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 89758*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i32, 0/*#Ops*/,  // Results = #1
/* 89764*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 89767*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/* 89776*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/* 89779*/          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] })
/* 89787*/        /*SwitchType*/ 31, MVT::v32i1,// ->89820
/* 89789*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 89791*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i32, 0/*#Ops*/,  // Results = #1
/* 89797*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 89800*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/* 89809*/          OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/* 89812*/          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] })
/* 89820*/        /*SwitchType*/ 31, MVT::v64i1,// ->89853
/* 89822*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 89824*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i32, 0/*#Ops*/,  // Results = #1
/* 89830*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 89833*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/* 89842*/          OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/* 89845*/          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] })
/* 89853*/        0, // EndSwitchType
/* 89854*/      0, /*End of Scope*/
/* 89855*/    /*Scope*/ 7|128,1/*135*/, /*->89992*/
/* 89857*/      OPC_MoveChild0,
/* 89858*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 89861*/      OPC_RecordMemRef,
/* 89862*/      OPC_RecordNode, // #0 = 'ld' chained node
/* 89863*/      OPC_RecordChild1, // #1 = $src
/* 89864*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 89866*/      OPC_CheckPredicate, 9, // Predicate_load
/* 89868*/      OPC_SwitchType /*2 cases */, 59, MVT::f32,// ->89930
/* 89871*/        OPC_MoveParent,
/* 89872*/        OPC_CheckType, MVT::v4f32,
/* 89874*/        OPC_Scope, 17, /*->89893*/ // 3 children in Scope
/* 89876*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 89878*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 89881*/          OPC_EmitMergeInputChains1_0,
/* 89882*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (scalar_to_vector:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VMOVSSrm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/* 89893*/        /*Scope*/ 17, /*->89911*/
/* 89894*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/* 89896*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 89899*/          OPC_EmitMergeInputChains1_0,
/* 89900*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MOVSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (scalar_to_vector:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (MOVSSrm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/* 89911*/        /*Scope*/ 17, /*->89929*/
/* 89912*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 89914*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 89917*/          OPC_EmitMergeInputChains1_0,
/* 89918*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (scalar_to_vector:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VMOVSSZrm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/* 89929*/        0, /*End of Scope*/
/* 89930*/      /*SwitchType*/ 59, MVT::f64,// ->89991
/* 89932*/        OPC_MoveParent,
/* 89933*/        OPC_CheckType, MVT::v2f64,
/* 89935*/        OPC_Scope, 17, /*->89954*/ // 3 children in Scope
/* 89937*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/* 89939*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 89942*/          OPC_EmitMergeInputChains1_0,
/* 89943*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VMOVSDrm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/* 89954*/        /*Scope*/ 17, /*->89972*/
/* 89955*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 89957*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 89960*/          OPC_EmitMergeInputChains1_0,
/* 89961*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MOVSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (MOVSDrm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/* 89972*/        /*Scope*/ 17, /*->89990*/
/* 89973*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 89975*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 89978*/          OPC_EmitMergeInputChains1_0,
/* 89979*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VMOVSDZrm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/* 89990*/        0, /*End of Scope*/
/* 89991*/      0, // EndSwitchType
/* 89992*/    /*Scope*/ 71, /*->90064*/
/* 89993*/      OPC_RecordChild0, // #0 = $src
/* 89994*/      OPC_SwitchType /*2 cases */, 32, MVT::v4f32,// ->90029
/* 89997*/        OPC_CheckChild0Type, MVT::f32,
/* 89999*/        OPC_Scope, 13, /*->90014*/ // 2 children in Scope
/* 90001*/          OPC_CheckPatternPredicate, 123, // (!Subtarget->hasVLX())
/* 90003*/          OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 90006*/          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] })
/* 90014*/        /*Scope*/ 13, /*->90028*/
/* 90015*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 90017*/          OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/* 90020*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 1, 
                    // Src: (scalar_to_vector:{ *:[v4f32] } FR32X:{ *:[f32] }:$src) - Complexity = 3
                    // Dst: (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src, VR128X:{ *:[i32] })
/* 90028*/        0, /*End of Scope*/
/* 90029*/      /*SwitchType*/ 32, MVT::v2f64,// ->90063
/* 90031*/        OPC_CheckChild0Type, MVT::f64,
/* 90033*/        OPC_Scope, 13, /*->90048*/ // 2 children in Scope
/* 90035*/          OPC_CheckPatternPredicate, 123, // (!Subtarget->hasVLX())
/* 90037*/          OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/* 90040*/          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] })
/* 90048*/        /*Scope*/ 13, /*->90062*/
/* 90049*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 90051*/          OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/* 90054*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 1, 
                    // Src: (scalar_to_vector:{ *:[v2f64] } FR64X:{ *:[f64] }:$src) - Complexity = 3
                    // Dst: (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src, VR128X:{ *:[i32] })
/* 90062*/        0, /*End of Scope*/
/* 90063*/      0, // EndSwitchType
/* 90064*/    0, /*End of Scope*/
/* 90065*/  /*SwitchOpcode*/ 54, TARGET_VAL(X86ISD::MMX_MOVW2D),// ->90122
/* 90068*/    OPC_Scope, 29, /*->90099*/ // 3 children in Scope
/* 90070*/      OPC_MoveChild0,
/* 90071*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 90074*/      OPC_RecordMemRef,
/* 90075*/      OPC_RecordNode, // #0 = 'ld' chained node
/* 90076*/      OPC_RecordChild1, // #1 = $src
/* 90077*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 90079*/      OPC_CheckPredicate, 8, // Predicate_loadi32
/* 90081*/      OPC_MoveParent,
/* 90082*/      OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 90084*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 90087*/      OPC_EmitMergeInputChains1_0,
/* 90088*/      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)
/* 90099*/    /*Scope*/ 10, /*->90110*/
/* 90100*/      OPC_CheckChild0Integer, 0, 
/* 90102*/      OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 90104*/      OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_SET0), 0,
                    MVT::x86mmx, 0/*#Ops*/, 
                // Src: (MMX_X86movw2d:{ *:[x86mmx] } 0:{ *:[i32] }) - Complexity = 8
                // Dst: (MMX_SET0:{ *:[x86mmx] })
/* 90110*/    /*Scope*/ 10, /*->90121*/
/* 90111*/      OPC_RecordChild0, // #0 = $src
/* 90112*/      OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/* 90114*/      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)
/* 90121*/    0, /*End of Scope*/
/* 90122*/  /*SwitchOpcode*/ 121, TARGET_VAL(X86ISD::MOVDQ2Q),// ->90246
/* 90125*/    OPC_Scope, 109, /*->90236*/ // 2 children in Scope
/* 90127*/      OPC_MoveChild0,
/* 90128*/      OPC_SwitchOpcode /*2 cases */, 25, TARGET_VAL(ISD::LOAD),// ->90157
/* 90132*/        OPC_RecordMemRef,
/* 90133*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 90134*/        OPC_RecordChild1, // #1 = $src
/* 90135*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 90137*/        OPC_CheckPredicate, 9, // Predicate_load
/* 90139*/        OPC_CheckPredicate, 58, // Predicate_simple_load
/* 90141*/        OPC_MoveParent,
/* 90142*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/* 90145*/        OPC_EmitMergeInputChains1_0,
/* 90146*/        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_simple_load>>) - Complexity = 25
                  // Dst: (MMX_MOVQ64rm:{ *:[x86mmx] } addr:{ *:[iPTR] }:$src)
/* 90157*/      /*SwitchOpcode*/ 75, TARGET_VAL(ISD::BITCAST),// ->90235
/* 90160*/        OPC_MoveChild0,
/* 90161*/        OPC_SwitchOpcode /*2 cases */, 33, TARGET_VAL(X86ISD::CVTP2SI),// ->90198
/* 90165*/          OPC_RecordChild0, // #0 = $src
/* 90166*/          OPC_CheckType, MVT::v4i32,
/* 90168*/          OPC_Scope, 13, /*->90183*/ // 2 children in Scope
/* 90170*/            OPC_CheckChild0Type, MVT::v4f32,
/* 90172*/            OPC_MoveParent,
/* 90173*/            OPC_MoveParent,
/* 90174*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasMMX()) && (Subtarget->hasSSE2())
/* 90176*/            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)
/* 90183*/          /*Scope*/ 13, /*->90197*/
/* 90184*/            OPC_CheckChild0Type, MVT::v2f64,
/* 90186*/            OPC_MoveParent,
/* 90187*/            OPC_MoveParent,
/* 90188*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasMMX()) && (Subtarget->hasSSE2())
/* 90190*/            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)
/* 90197*/          0, /*End of Scope*/
/* 90198*/        /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::CVTTP2SI),// ->90234
/* 90201*/          OPC_RecordChild0, // #0 = $src
/* 90202*/          OPC_CheckType, MVT::v4i32,
/* 90204*/          OPC_Scope, 13, /*->90219*/ // 2 children in Scope
/* 90206*/            OPC_CheckChild0Type, MVT::v4f32,
/* 90208*/            OPC_MoveParent,
/* 90209*/            OPC_MoveParent,
/* 90210*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasMMX()) && (Subtarget->hasSSE2())
/* 90212*/            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)
/* 90219*/          /*Scope*/ 13, /*->90233*/
/* 90220*/            OPC_CheckChild0Type, MVT::v2f64,
/* 90222*/            OPC_MoveParent,
/* 90223*/            OPC_MoveParent,
/* 90224*/            OPC_CheckPatternPredicate, 39, // (Subtarget->hasMMX()) && (Subtarget->hasSSE2())
/* 90226*/            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)
/* 90233*/          0, /*End of Scope*/
/* 90234*/        0, // EndSwitchOpcode
/* 90235*/      0, // EndSwitchOpcode
/* 90236*/    /*Scope*/ 8, /*->90245*/
/* 90237*/      OPC_RecordChild0, // #0 = $src
/* 90238*/      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)
/* 90245*/    0, /*End of Scope*/
/* 90246*/  /*SwitchOpcode*/ 123|128,1/*251*/, TARGET_VAL(X86ISD::LOR),// ->90501
/* 90250*/    OPC_RecordMemRef,
/* 90251*/    OPC_RecordNode, // #0 = 'X86lock_or' chained node
/* 90252*/    OPC_RecordChild1, // #1 = $dst
/* 90253*/    OPC_RecordChild2, // #2 = $src2
/* 90254*/    OPC_Scope, 39|128,1/*167*/, /*->90424*/ // 5 children in Scope
/* 90257*/      OPC_MoveChild2,
/* 90258*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 90261*/      OPC_SwitchType /*4 cases */, 44, MVT::i16,// ->90308
/* 90264*/        OPC_Scope, 21, /*->90287*/ // 2 children in Scope
/* 90266*/          OPC_CheckPredicate, 13, // Predicate_i16immSExt8
/* 90268*/          OPC_MoveParent,
/* 90269*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 90272*/          OPC_EmitMergeInputChains1_0,
/* 90273*/          OPC_EmitConvertToTarget, 2,
/* 90275*/          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)
/* 90287*/        /*Scope*/ 19, /*->90307*/
/* 90288*/          OPC_MoveParent,
/* 90289*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 90292*/          OPC_EmitMergeInputChains1_0,
/* 90293*/          OPC_EmitConvertToTarget, 2,
/* 90295*/          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)
/* 90307*/        0, /*End of Scope*/
/* 90308*/      /*SwitchType*/ 44, MVT::i32,// ->90354
/* 90310*/        OPC_Scope, 21, /*->90333*/ // 2 children in Scope
/* 90312*/          OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/* 90314*/          OPC_MoveParent,
/* 90315*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 90318*/          OPC_EmitMergeInputChains1_0,
/* 90319*/          OPC_EmitConvertToTarget, 2,
/* 90321*/          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)
/* 90333*/        /*Scope*/ 19, /*->90353*/
/* 90334*/          OPC_MoveParent,
/* 90335*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 90338*/          OPC_EmitMergeInputChains1_0,
/* 90339*/          OPC_EmitConvertToTarget, 2,
/* 90341*/          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)
/* 90353*/        0, /*End of Scope*/
/* 90354*/      /*SwitchType*/ 46, MVT::i64,// ->90402
/* 90356*/        OPC_Scope, 21, /*->90379*/ // 2 children in Scope
/* 90358*/          OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/* 90360*/          OPC_MoveParent,
/* 90361*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 90364*/          OPC_EmitMergeInputChains1_0,
/* 90365*/          OPC_EmitConvertToTarget, 2,
/* 90367*/          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)
/* 90379*/        /*Scope*/ 21, /*->90401*/
/* 90380*/          OPC_CheckPredicate, 38, // Predicate_i64immSExt32
/* 90382*/          OPC_MoveParent,
/* 90383*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 90386*/          OPC_EmitMergeInputChains1_0,
/* 90387*/          OPC_EmitConvertToTarget, 2,
/* 90389*/          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)
/* 90401*/        0, /*End of Scope*/
/* 90402*/      /*SwitchType*/ 19, MVT::i8,// ->90423
/* 90404*/        OPC_MoveParent,
/* 90405*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 90408*/        OPC_EmitMergeInputChains1_0,
/* 90409*/        OPC_EmitConvertToTarget, 2,
/* 90411*/        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)
/* 90423*/      0, // EndSwitchType
/* 90424*/    /*Scope*/ 18, /*->90443*/
/* 90425*/      OPC_CheckChild2Type, MVT::i8,
/* 90427*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 90430*/      OPC_EmitMergeInputChains1_0,
/* 90431*/      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)
/* 90443*/    /*Scope*/ 18, /*->90462*/
/* 90444*/      OPC_CheckChild2Type, MVT::i16,
/* 90446*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 90449*/      OPC_EmitMergeInputChains1_0,
/* 90450*/      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)
/* 90462*/    /*Scope*/ 18, /*->90481*/
/* 90463*/      OPC_CheckChild2Type, MVT::i32,
/* 90465*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 90468*/      OPC_EmitMergeInputChains1_0,
/* 90469*/      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)
/* 90481*/    /*Scope*/ 18, /*->90500*/
/* 90482*/      OPC_CheckChild2Type, MVT::i64,
/* 90484*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 90487*/      OPC_EmitMergeInputChains1_0,
/* 90488*/      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)
/* 90500*/    0, /*End of Scope*/
/* 90501*/  /*SwitchOpcode*/ 123|128,1/*251*/, TARGET_VAL(X86ISD::LAND),// ->90756
/* 90505*/    OPC_RecordMemRef,
/* 90506*/    OPC_RecordNode, // #0 = 'X86lock_and' chained node
/* 90507*/    OPC_RecordChild1, // #1 = $dst
/* 90508*/    OPC_RecordChild2, // #2 = $src2
/* 90509*/    OPC_Scope, 39|128,1/*167*/, /*->90679*/ // 5 children in Scope
/* 90512*/      OPC_MoveChild2,
/* 90513*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 90516*/      OPC_SwitchType /*4 cases */, 44, MVT::i16,// ->90563
/* 90519*/        OPC_Scope, 21, /*->90542*/ // 2 children in Scope
/* 90521*/          OPC_CheckPredicate, 13, // Predicate_i16immSExt8
/* 90523*/          OPC_MoveParent,
/* 90524*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 90527*/          OPC_EmitMergeInputChains1_0,
/* 90528*/          OPC_EmitConvertToTarget, 2,
/* 90530*/          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)
/* 90542*/        /*Scope*/ 19, /*->90562*/
/* 90543*/          OPC_MoveParent,
/* 90544*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 90547*/          OPC_EmitMergeInputChains1_0,
/* 90548*/          OPC_EmitConvertToTarget, 2,
/* 90550*/          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)
/* 90562*/        0, /*End of Scope*/
/* 90563*/      /*SwitchType*/ 44, MVT::i32,// ->90609
/* 90565*/        OPC_Scope, 21, /*->90588*/ // 2 children in Scope
/* 90567*/          OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/* 90569*/          OPC_MoveParent,
/* 90570*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 90573*/          OPC_EmitMergeInputChains1_0,
/* 90574*/          OPC_EmitConvertToTarget, 2,
/* 90576*/          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)
/* 90588*/        /*Scope*/ 19, /*->90608*/
/* 90589*/          OPC_MoveParent,
/* 90590*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 90593*/          OPC_EmitMergeInputChains1_0,
/* 90594*/          OPC_EmitConvertToTarget, 2,
/* 90596*/          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)
/* 90608*/        0, /*End of Scope*/
/* 90609*/      /*SwitchType*/ 46, MVT::i64,// ->90657
/* 90611*/        OPC_Scope, 21, /*->90634*/ // 2 children in Scope
/* 90613*/          OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/* 90615*/          OPC_MoveParent,
/* 90616*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 90619*/          OPC_EmitMergeInputChains1_0,
/* 90620*/          OPC_EmitConvertToTarget, 2,
/* 90622*/          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)
/* 90634*/        /*Scope*/ 21, /*->90656*/
/* 90635*/          OPC_CheckPredicate, 38, // Predicate_i64immSExt32
/* 90637*/          OPC_MoveParent,
/* 90638*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 90641*/          OPC_EmitMergeInputChains1_0,
/* 90642*/          OPC_EmitConvertToTarget, 2,
/* 90644*/          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)
/* 90656*/        0, /*End of Scope*/
/* 90657*/      /*SwitchType*/ 19, MVT::i8,// ->90678
/* 90659*/        OPC_MoveParent,
/* 90660*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 90663*/        OPC_EmitMergeInputChains1_0,
/* 90664*/        OPC_EmitConvertToTarget, 2,
/* 90666*/        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)
/* 90678*/      0, // EndSwitchType
/* 90679*/    /*Scope*/ 18, /*->90698*/
/* 90680*/      OPC_CheckChild2Type, MVT::i8,
/* 90682*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 90685*/      OPC_EmitMergeInputChains1_0,
/* 90686*/      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)
/* 90698*/    /*Scope*/ 18, /*->90717*/
/* 90699*/      OPC_CheckChild2Type, MVT::i16,
/* 90701*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 90704*/      OPC_EmitMergeInputChains1_0,
/* 90705*/      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)
/* 90717*/    /*Scope*/ 18, /*->90736*/
/* 90718*/      OPC_CheckChild2Type, MVT::i32,
/* 90720*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 90723*/      OPC_EmitMergeInputChains1_0,
/* 90724*/      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)
/* 90736*/    /*Scope*/ 18, /*->90755*/
/* 90737*/      OPC_CheckChild2Type, MVT::i64,
/* 90739*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 90742*/      OPC_EmitMergeInputChains1_0,
/* 90743*/      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)
/* 90755*/    0, /*End of Scope*/
/* 90756*/  /*SwitchOpcode*/ 123|128,1/*251*/, TARGET_VAL(X86ISD::LXOR),// ->91011
/* 90760*/    OPC_RecordMemRef,
/* 90761*/    OPC_RecordNode, // #0 = 'X86lock_xor' chained node
/* 90762*/    OPC_RecordChild1, // #1 = $dst
/* 90763*/    OPC_RecordChild2, // #2 = $src2
/* 90764*/    OPC_Scope, 39|128,1/*167*/, /*->90934*/ // 5 children in Scope
/* 90767*/      OPC_MoveChild2,
/* 90768*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 90771*/      OPC_SwitchType /*4 cases */, 44, MVT::i16,// ->90818
/* 90774*/        OPC_Scope, 21, /*->90797*/ // 2 children in Scope
/* 90776*/          OPC_CheckPredicate, 13, // Predicate_i16immSExt8
/* 90778*/          OPC_MoveParent,
/* 90779*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 90782*/          OPC_EmitMergeInputChains1_0,
/* 90783*/          OPC_EmitConvertToTarget, 2,
/* 90785*/          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)
/* 90797*/        /*Scope*/ 19, /*->90817*/
/* 90798*/          OPC_MoveParent,
/* 90799*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 90802*/          OPC_EmitMergeInputChains1_0,
/* 90803*/          OPC_EmitConvertToTarget, 2,
/* 90805*/          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)
/* 90817*/        0, /*End of Scope*/
/* 90818*/      /*SwitchType*/ 44, MVT::i32,// ->90864
/* 90820*/        OPC_Scope, 21, /*->90843*/ // 2 children in Scope
/* 90822*/          OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/* 90824*/          OPC_MoveParent,
/* 90825*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 90828*/          OPC_EmitMergeInputChains1_0,
/* 90829*/          OPC_EmitConvertToTarget, 2,
/* 90831*/          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)
/* 90843*/        /*Scope*/ 19, /*->90863*/
/* 90844*/          OPC_MoveParent,
/* 90845*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 90848*/          OPC_EmitMergeInputChains1_0,
/* 90849*/          OPC_EmitConvertToTarget, 2,
/* 90851*/          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)
/* 90863*/        0, /*End of Scope*/
/* 90864*/      /*SwitchType*/ 46, MVT::i64,// ->90912
/* 90866*/        OPC_Scope, 21, /*->90889*/ // 2 children in Scope
/* 90868*/          OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/* 90870*/          OPC_MoveParent,
/* 90871*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 90874*/          OPC_EmitMergeInputChains1_0,
/* 90875*/          OPC_EmitConvertToTarget, 2,
/* 90877*/          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)
/* 90889*/        /*Scope*/ 21, /*->90911*/
/* 90890*/          OPC_CheckPredicate, 38, // Predicate_i64immSExt32
/* 90892*/          OPC_MoveParent,
/* 90893*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 90896*/          OPC_EmitMergeInputChains1_0,
/* 90897*/          OPC_EmitConvertToTarget, 2,
/* 90899*/          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)
/* 90911*/        0, /*End of Scope*/
/* 90912*/      /*SwitchType*/ 19, MVT::i8,// ->90933
/* 90914*/        OPC_MoveParent,
/* 90915*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 90918*/        OPC_EmitMergeInputChains1_0,
/* 90919*/        OPC_EmitConvertToTarget, 2,
/* 90921*/        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)
/* 90933*/      0, // EndSwitchType
/* 90934*/    /*Scope*/ 18, /*->90953*/
/* 90935*/      OPC_CheckChild2Type, MVT::i8,
/* 90937*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 90940*/      OPC_EmitMergeInputChains1_0,
/* 90941*/      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)
/* 90953*/    /*Scope*/ 18, /*->90972*/
/* 90954*/      OPC_CheckChild2Type, MVT::i16,
/* 90956*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 90959*/      OPC_EmitMergeInputChains1_0,
/* 90960*/      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)
/* 90972*/    /*Scope*/ 18, /*->90991*/
/* 90973*/      OPC_CheckChild2Type, MVT::i32,
/* 90975*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 90978*/      OPC_EmitMergeInputChains1_0,
/* 90979*/      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)
/* 90991*/    /*Scope*/ 18, /*->91010*/
/* 90992*/      OPC_CheckChild2Type, MVT::i64,
/* 90994*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #3 #4 #5 #6 #7
/* 90997*/      OPC_EmitMergeInputChains1_0,
/* 90998*/      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)
/* 91010*/    0, /*End of Scope*/
/* 91011*/  /*SwitchOpcode*/ 66|128,25/*3266*/, TARGET_VAL(ISD::ADD),// ->94281
/* 91015*/    OPC_Scope, 105, /*->91122*/ // 16 children in Scope
/* 91017*/      OPC_RecordChild0, // #0 = $src1
/* 91018*/      OPC_MoveChild1,
/* 91019*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 91022*/      OPC_RecordMemRef,
/* 91023*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 91024*/      OPC_CheckFoldableChainNode,
/* 91025*/      OPC_RecordChild1, // #2 = $src2
/* 91026*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 91028*/      OPC_Scope, 22, /*->91052*/ // 4 children in Scope
/* 91030*/        OPC_CheckPredicate, 5, // Predicate_loadi8
/* 91032*/        OPC_MoveParent,
/* 91033*/        OPC_CheckType, MVT::i8,
/* 91035*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 91038*/        OPC_EmitMergeInputChains1_1,
/* 91039*/        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)
/* 91052*/      /*Scope*/ 22, /*->91075*/
/* 91053*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 91055*/        OPC_MoveParent,
/* 91056*/        OPC_CheckType, MVT::i16,
/* 91058*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 91061*/        OPC_EmitMergeInputChains1_1,
/* 91062*/        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)
/* 91075*/      /*Scope*/ 22, /*->91098*/
/* 91076*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 91078*/        OPC_MoveParent,
/* 91079*/        OPC_CheckType, MVT::i32,
/* 91081*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 91084*/        OPC_EmitMergeInputChains1_1,
/* 91085*/        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)
/* 91098*/      /*Scope*/ 22, /*->91121*/
/* 91099*/        OPC_CheckPredicate, 9, // Predicate_load
/* 91101*/        OPC_MoveParent,
/* 91102*/        OPC_CheckType, MVT::i64,
/* 91104*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 91107*/        OPC_EmitMergeInputChains1_1,
/* 91108*/        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)
/* 91121*/      0, /*End of Scope*/
/* 91122*/    /*Scope*/ 108, /*->91231*/
/* 91123*/      OPC_MoveChild0,
/* 91124*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 91127*/      OPC_RecordMemRef,
/* 91128*/      OPC_RecordNode, // #0 = 'ld' chained node
/* 91129*/      OPC_CheckFoldableChainNode,
/* 91130*/      OPC_RecordChild1, // #1 = $src2
/* 91131*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 91133*/      OPC_Scope, 23, /*->91158*/ // 4 children in Scope
/* 91135*/        OPC_CheckPredicate, 5, // Predicate_loadi8
/* 91137*/        OPC_MoveParent,
/* 91138*/        OPC_RecordChild1, // #2 = $src1
/* 91139*/        OPC_CheckType, MVT::i8,
/* 91141*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 91144*/        OPC_EmitMergeInputChains1_0,
/* 91145*/        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)
/* 91158*/      /*Scope*/ 23, /*->91182*/
/* 91159*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 91161*/        OPC_MoveParent,
/* 91162*/        OPC_RecordChild1, // #2 = $src1
/* 91163*/        OPC_CheckType, MVT::i16,
/* 91165*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 91168*/        OPC_EmitMergeInputChains1_0,
/* 91169*/        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)
/* 91182*/      /*Scope*/ 23, /*->91206*/
/* 91183*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 91185*/        OPC_MoveParent,
/* 91186*/        OPC_RecordChild1, // #2 = $src1
/* 91187*/        OPC_CheckType, MVT::i32,
/* 91189*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 91192*/        OPC_EmitMergeInputChains1_0,
/* 91193*/        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)
/* 91206*/      /*Scope*/ 23, /*->91230*/
/* 91207*/        OPC_CheckPredicate, 9, // Predicate_load
/* 91209*/        OPC_MoveParent,
/* 91210*/        OPC_RecordChild1, // #2 = $src1
/* 91211*/        OPC_CheckType, MVT::i64,
/* 91213*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 91216*/        OPC_EmitMergeInputChains1_0,
/* 91217*/        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)
/* 91230*/      0, /*End of Scope*/
/* 91231*/    /*Scope*/ 57, /*->91289*/
/* 91232*/      OPC_RecordNode, // #0 = $src
/* 91233*/      OPC_SwitchType /*2 cases */, 36, MVT::i32,// ->91272
/* 91236*/        OPC_Scope, 16, /*->91254*/ // 2 children in Scope
/* 91238*/          OPC_CheckPatternPredicate, 99, // (!Subtarget->is64Bit())
/* 91240*/          OPC_CheckComplexPat, /*CP*/4, /*#*/0, // selectLEAAddr:$src #1 #2 #3 #4 #5
/* 91243*/          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)
/* 91254*/        /*Scope*/ 16, /*->91271*/
/* 91255*/          OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/* 91257*/          OPC_CheckComplexPat, /*CP*/5, /*#*/0, // selectLEA64_32Addr:$src #1 #2 #3 #4 #5
/* 91260*/          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)
/* 91271*/        0, /*End of Scope*/
/* 91272*/      /*SwitchType*/ 14, MVT::i64,// ->91288
/* 91274*/        OPC_CheckComplexPat, /*CP*/6, /*#*/0, // selectLEAAddr:$src #1 #2 #3 #4 #5
/* 91277*/        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)
/* 91288*/      0, // EndSwitchType
/* 91289*/    /*Scope*/ 23, /*->91313*/
/* 91290*/      OPC_RecordChild0, // #0 = $src1
/* 91291*/      OPC_MoveChild1,
/* 91292*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::Wrapper),
/* 91295*/      OPC_RecordChild0, // #1 = $dst
/* 91296*/      OPC_MoveChild0,
/* 91297*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalTLSAddress),
/* 91300*/      OPC_MoveParent,
/* 91301*/      OPC_MoveParent,
/* 91302*/      OPC_CheckType, MVT::i64,
/* 91304*/      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)
/* 91313*/    /*Scope*/ 23, /*->91337*/
/* 91314*/      OPC_MoveChild0,
/* 91315*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::Wrapper),
/* 91318*/      OPC_RecordChild0, // #0 = $dst
/* 91319*/      OPC_MoveChild0,
/* 91320*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetGlobalTLSAddress),
/* 91323*/      OPC_MoveParent,
/* 91324*/      OPC_MoveParent,
/* 91325*/      OPC_RecordChild1, // #1 = $src1
/* 91326*/      OPC_CheckType, MVT::i64,
/* 91328*/      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)
/* 91337*/    /*Scope*/ 12|128,4/*524*/, /*->91863*/
/* 91339*/      OPC_RecordChild0, // #0 = $src
/* 91340*/      OPC_Scope, 52, /*->91394*/ // 6 children in Scope
/* 91342*/        OPC_CheckChild1Integer, 1, 
/* 91344*/        OPC_SwitchType /*4 cases */, 10, MVT::i8,// ->91357
/* 91347*/          OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || shouldOptForSize(MF))
/* 91349*/          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)
/* 91357*/        /*SwitchType*/ 10, MVT::i16,// ->91369
/* 91359*/          OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || shouldOptForSize(MF))
/* 91361*/          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)
/* 91369*/        /*SwitchType*/ 10, MVT::i32,// ->91381
/* 91371*/          OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || shouldOptForSize(MF))
/* 91373*/          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)
/* 91381*/        /*SwitchType*/ 10, MVT::i64,// ->91393
/* 91383*/          OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || shouldOptForSize(MF))
/* 91385*/          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)
/* 91393*/        0, // EndSwitchType
/* 91394*/      /*Scope*/ 61, /*->91456*/
/* 91395*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 91406*/        OPC_SwitchType /*4 cases */, 10, MVT::i8,// ->91419
/* 91409*/          OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || shouldOptForSize(MF))
/* 91411*/          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)
/* 91419*/        /*SwitchType*/ 10, MVT::i16,// ->91431
/* 91421*/          OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || shouldOptForSize(MF))
/* 91423*/          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)
/* 91431*/        /*SwitchType*/ 10, MVT::i32,// ->91443
/* 91433*/          OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || shouldOptForSize(MF))
/* 91435*/          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)
/* 91443*/        /*SwitchType*/ 10, MVT::i64,// ->91455
/* 91445*/          OPC_CheckPatternPredicate, 9, // (!Subtarget->slowIncDec() || shouldOptForSize(MF))
/* 91447*/          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)
/* 91455*/        0, // EndSwitchType
/* 91456*/      /*Scope*/ 74, /*->91531*/
/* 91457*/        OPC_CheckChild1Integer, 0|128,1/*128*/, 
/* 91460*/        OPC_SwitchType /*3 cases */, 21, MVT::i16,// ->91484
/* 91463*/          OPC_EmitInteger, MVT::i16, 0|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551488*/, 
/* 91475*/          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] })
/* 91484*/        /*SwitchType*/ 21, MVT::i32,// ->91507
/* 91486*/          OPC_EmitInteger, MVT::i32, 0|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551488*/, 
/* 91498*/          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] })
/* 91507*/        /*SwitchType*/ 21, MVT::i64,// ->91530
/* 91509*/          OPC_EmitInteger, MVT::i64, 0|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551488*/, 
/* 91521*/          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] })
/* 91530*/        0, // EndSwitchType
/* 91531*/      /*Scope*/ 29, /*->91561*/
/* 91532*/        OPC_CheckChild1Integer, 0|128,0|128,0|128,0|128,8/*2147483648*/, 
/* 91538*/        OPC_CheckType, MVT::i64,
/* 91540*/        OPC_EmitInteger, MVT::i64, 0|128,0|128,0|128,0|128,120|128,127|128,127|128,127|128,127|128,1/*18446744071562067968*/, 
/* 91552*/        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] })
/* 91561*/      /*Scope*/ 41|128,1/*169*/, /*->91732*/
/* 91563*/        OPC_RecordChild1, // #1 = $src2
/* 91564*/        OPC_Scope, 117, /*->91683*/ // 5 children in Scope
/* 91566*/          OPC_MoveChild1,
/* 91567*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 91570*/          OPC_Scope, 16, /*->91588*/ // 5 children in Scope
/* 91572*/            OPC_CheckPredicate, 13, // Predicate_i16immSExt8
/* 91574*/            OPC_MoveParent,
/* 91575*/            OPC_CheckType, MVT::i16,
/* 91577*/            OPC_EmitConvertToTarget, 1,
/* 91579*/            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)
/* 91588*/          /*Scope*/ 16, /*->91605*/
/* 91589*/            OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/* 91591*/            OPC_MoveParent,
/* 91592*/            OPC_CheckType, MVT::i32,
/* 91594*/            OPC_EmitConvertToTarget, 1,
/* 91596*/            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)
/* 91605*/          /*Scope*/ 16, /*->91622*/
/* 91606*/            OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/* 91608*/            OPC_MoveParent,
/* 91609*/            OPC_CheckType, MVT::i64,
/* 91611*/            OPC_EmitConvertToTarget, 1,
/* 91613*/            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)
/* 91622*/          /*Scope*/ 16, /*->91639*/
/* 91623*/            OPC_CheckPredicate, 38, // Predicate_i64immSExt32
/* 91625*/            OPC_MoveParent,
/* 91626*/            OPC_CheckType, MVT::i64,
/* 91628*/            OPC_EmitConvertToTarget, 1,
/* 91630*/            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)
/* 91639*/          /*Scope*/ 42, /*->91682*/
/* 91640*/            OPC_MoveParent,
/* 91641*/            OPC_SwitchType /*3 cases */, 11, MVT::i8,// ->91655
/* 91644*/              OPC_EmitConvertToTarget, 1,
/* 91646*/              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)
/* 91655*/            /*SwitchType*/ 11, MVT::i16,// ->91668
/* 91657*/              OPC_EmitConvertToTarget, 1,
/* 91659*/              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)
/* 91668*/            /*SwitchType*/ 11, MVT::i32,// ->91681
/* 91670*/              OPC_EmitConvertToTarget, 1,
/* 91672*/              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)
/* 91681*/            0, // EndSwitchType
/* 91682*/          0, /*End of Scope*/
/* 91683*/        /*Scope*/ 11, /*->91695*/
/* 91684*/          OPC_CheckType, MVT::i8,
/* 91686*/          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)
/* 91695*/        /*Scope*/ 11, /*->91707*/
/* 91696*/          OPC_CheckType, MVT::i16,
/* 91698*/          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)
/* 91707*/        /*Scope*/ 11, /*->91719*/
/* 91708*/          OPC_CheckType, MVT::i32,
/* 91710*/          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)
/* 91719*/        /*Scope*/ 11, /*->91731*/
/* 91720*/          OPC_CheckType, MVT::i64,
/* 91722*/          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)
/* 91731*/        0, /*End of Scope*/
/* 91732*/      /*Scope*/ 0|128,1/*128*/, /*->91862*/
/* 91734*/        OPC_MoveChild1,
/* 91735*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VPMADDWD),
/* 91738*/        OPC_Scope, 82, /*->91822*/ // 2 children in Scope
/* 91740*/          OPC_RecordChild0, // #1 = $src2
/* 91741*/          OPC_MoveChild1,
/* 91742*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 91745*/          OPC_RecordMemRef,
/* 91746*/          OPC_RecordNode, // #2 = 'ld' chained node
/* 91747*/          OPC_CheckFoldableChainNode,
/* 91748*/          OPC_RecordChild1, // #3 = $src3
/* 91749*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 91751*/          OPC_CheckPredicate, 9, // Predicate_load
/* 91753*/          OPC_MoveParent,
/* 91754*/          OPC_CheckPredicate, 17, // Predicate_X86vpmaddwd_su
/* 91756*/          OPC_MoveParent,
/* 91757*/          OPC_SwitchType /*3 cases */, 19, MVT::v16i32,// ->91779
/* 91760*/            OPC_CheckPatternPredicate, 148, // (Subtarget->hasVNNI())
/* 91762*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/* 91765*/            OPC_EmitMergeInputChains1_2,
/* 91766*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDZm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (add:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86vpmaddwd:{ *:[v16i32] } VR512:{ *:[v32i16] }:$src2, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)<<P:Predicate_X86vpmaddwd_su>>) - Complexity = 29
                      // Dst: (VPDPWSSDZm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v32i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/* 91779*/          /*SwitchType*/ 19, MVT::v8i32,// ->91800
/* 91781*/            OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/* 91783*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/* 91786*/            OPC_EmitMergeInputChains1_2,
/* 91787*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (add:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86vpmaddwd:{ *:[v8i32] } VR256X:{ *:[v16i16] }:$src2, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)<<P:Predicate_X86vpmaddwd_su>>) - Complexity = 29
                      // Dst: (VPDPWSSDZ256m:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v16i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/* 91800*/          /*SwitchType*/ 19, MVT::v4i32,// ->91821
/* 91802*/            OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/* 91804*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/* 91807*/            OPC_EmitMergeInputChains1_2,
/* 91808*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                      // Src: (add:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86vpmaddwd:{ *:[v4i32] } VR128X:{ *:[v8i16] }:$src2, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)<<P:Predicate_X86vpmaddwd_su>>) - Complexity = 29
                      // Dst: (VPDPWSSDZ128m:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v8i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/* 91821*/          0, // EndSwitchType
/* 91822*/        /*Scope*/ 38, /*->91861*/
/* 91823*/          OPC_MoveChild0,
/* 91824*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 91827*/          OPC_RecordMemRef,
/* 91828*/          OPC_RecordNode, // #1 = 'ld' chained node
/* 91829*/          OPC_CheckFoldableChainNode,
/* 91830*/          OPC_RecordChild1, // #2 = $src3
/* 91831*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 91833*/          OPC_CheckPredicate, 9, // Predicate_load
/* 91835*/          OPC_MoveParent,
/* 91836*/          OPC_RecordChild1, // #3 = $src2
/* 91837*/          OPC_CheckPredicate, 17, // Predicate_X86vpmaddwd_su
/* 91839*/          OPC_MoveParent,
/* 91840*/          OPC_CheckType, MVT::v16i32,
/* 91842*/          OPC_CheckPatternPredicate, 148, // (Subtarget->hasVNNI())
/* 91844*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/* 91847*/          OPC_EmitMergeInputChains1_1,
/* 91848*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                    // Src: (add:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86vpmaddwd:{ *:[v16i32] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src2)<<P:Predicate_X86vpmaddwd_su>>) - Complexity = 29
                    // Dst: (VPDPWSSDZm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v32i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/* 91861*/        0, /*End of Scope*/
/* 91862*/      0, /*End of Scope*/
/* 91863*/    /*Scope*/ 86, /*->91950*/
/* 91864*/      OPC_MoveChild0,
/* 91865*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VPMADDWD),
/* 91868*/      OPC_Scope, 39, /*->91909*/ // 2 children in Scope
/* 91870*/        OPC_RecordChild0, // #0 = $src2
/* 91871*/        OPC_MoveChild1,
/* 91872*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 91875*/        OPC_RecordMemRef,
/* 91876*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 91877*/        OPC_CheckFoldableChainNode,
/* 91878*/        OPC_RecordChild1, // #2 = $src3
/* 91879*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 91881*/        OPC_CheckPredicate, 9, // Predicate_load
/* 91883*/        OPC_MoveParent,
/* 91884*/        OPC_CheckPredicate, 17, // Predicate_X86vpmaddwd_su
/* 91886*/        OPC_MoveParent,
/* 91887*/        OPC_RecordChild1, // #3 = $src1
/* 91888*/        OPC_CheckType, MVT::v16i32,
/* 91890*/        OPC_CheckPatternPredicate, 148, // (Subtarget->hasVNNI())
/* 91892*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/* 91895*/        OPC_EmitMergeInputChains1_1,
/* 91896*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDZm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (add:{ *:[v16i32] } (X86vpmaddwd:{ *:[v16i32] } VR512:{ *:[v32i16] }:$src2, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)<<P:Predicate_X86vpmaddwd_su>>, VR512:{ *:[v16i32] }:$src1) - Complexity = 29
                  // Dst: (VPDPWSSDZm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v32i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/* 91909*/      /*Scope*/ 39, /*->91949*/
/* 91910*/        OPC_MoveChild0,
/* 91911*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 91914*/        OPC_RecordMemRef,
/* 91915*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 91916*/        OPC_CheckFoldableChainNode,
/* 91917*/        OPC_RecordChild1, // #1 = $src3
/* 91918*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 91920*/        OPC_CheckPredicate, 9, // Predicate_load
/* 91922*/        OPC_MoveParent,
/* 91923*/        OPC_RecordChild1, // #2 = $src2
/* 91924*/        OPC_CheckPredicate, 17, // Predicate_X86vpmaddwd_su
/* 91926*/        OPC_MoveParent,
/* 91927*/        OPC_RecordChild1, // #3 = $src1
/* 91928*/        OPC_CheckType, MVT::v16i32,
/* 91930*/        OPC_CheckPatternPredicate, 148, // (Subtarget->hasVNNI())
/* 91932*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/* 91935*/        OPC_EmitMergeInputChains1_0,
/* 91936*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDZm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i32, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (add:{ *:[v16i32] } (X86vpmaddwd:{ *:[v16i32] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src2)<<P:Predicate_X86vpmaddwd_su>>, VR512:{ *:[v16i32] }:$src1) - Complexity = 29
                  // Dst: (VPDPWSSDZm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v32i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/* 91949*/      0, /*End of Scope*/
/* 91950*/    /*Scope*/ 43, /*->91994*/
/* 91951*/      OPC_RecordChild0, // #0 = $src1
/* 91952*/      OPC_MoveChild1,
/* 91953*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VPMADDWD),
/* 91956*/      OPC_MoveChild0,
/* 91957*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 91960*/      OPC_RecordMemRef,
/* 91961*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 91962*/      OPC_CheckFoldableChainNode,
/* 91963*/      OPC_RecordChild1, // #2 = $src3
/* 91964*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 91966*/      OPC_CheckPredicate, 9, // Predicate_load
/* 91968*/      OPC_MoveParent,
/* 91969*/      OPC_RecordChild1, // #3 = $src2
/* 91970*/      OPC_CheckPredicate, 17, // Predicate_X86vpmaddwd_su
/* 91972*/      OPC_MoveParent,
/* 91973*/      OPC_CheckType, MVT::v8i32,
/* 91975*/      OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/* 91977*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/* 91980*/      OPC_EmitMergeInputChains1_1,
/* 91981*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                // Src: (add:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86vpmaddwd:{ *:[v8i32] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src2)<<P:Predicate_X86vpmaddwd_su>>) - Complexity = 29
                // Dst: (VPDPWSSDZ256m:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v16i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/* 91994*/    /*Scope*/ 86, /*->92081*/
/* 91995*/      OPC_MoveChild0,
/* 91996*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VPMADDWD),
/* 91999*/      OPC_Scope, 39, /*->92040*/ // 2 children in Scope
/* 92001*/        OPC_RecordChild0, // #0 = $src2
/* 92002*/        OPC_MoveChild1,
/* 92003*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 92006*/        OPC_RecordMemRef,
/* 92007*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 92008*/        OPC_CheckFoldableChainNode,
/* 92009*/        OPC_RecordChild1, // #2 = $src3
/* 92010*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 92012*/        OPC_CheckPredicate, 9, // Predicate_load
/* 92014*/        OPC_MoveParent,
/* 92015*/        OPC_CheckPredicate, 17, // Predicate_X86vpmaddwd_su
/* 92017*/        OPC_MoveParent,
/* 92018*/        OPC_RecordChild1, // #3 = $src1
/* 92019*/        OPC_CheckType, MVT::v8i32,
/* 92021*/        OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/* 92023*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/* 92026*/        OPC_EmitMergeInputChains1_1,
/* 92027*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                  // Src: (add:{ *:[v8i32] } (X86vpmaddwd:{ *:[v8i32] } VR256X:{ *:[v16i16] }:$src2, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)<<P:Predicate_X86vpmaddwd_su>>, VR256X:{ *:[v8i32] }:$src1) - Complexity = 29
                  // Dst: (VPDPWSSDZ256m:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v16i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/* 92040*/      /*Scope*/ 39, /*->92080*/
/* 92041*/        OPC_MoveChild0,
/* 92042*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 92045*/        OPC_RecordMemRef,
/* 92046*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 92047*/        OPC_CheckFoldableChainNode,
/* 92048*/        OPC_RecordChild1, // #1 = $src3
/* 92049*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 92051*/        OPC_CheckPredicate, 9, // Predicate_load
/* 92053*/        OPC_MoveParent,
/* 92054*/        OPC_RecordChild1, // #2 = $src2
/* 92055*/        OPC_CheckPredicate, 17, // Predicate_X86vpmaddwd_su
/* 92057*/        OPC_MoveParent,
/* 92058*/        OPC_RecordChild1, // #3 = $src1
/* 92059*/        OPC_CheckType, MVT::v8i32,
/* 92061*/        OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/* 92063*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/* 92066*/        OPC_EmitMergeInputChains1_0,
/* 92067*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i32, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                  // Src: (add:{ *:[v8i32] } (X86vpmaddwd:{ *:[v8i32] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src2)<<P:Predicate_X86vpmaddwd_su>>, VR256X:{ *:[v8i32] }:$src1) - Complexity = 29
                  // Dst: (VPDPWSSDZ256m:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v16i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/* 92080*/      0, /*End of Scope*/
/* 92081*/    /*Scope*/ 43, /*->92125*/
/* 92082*/      OPC_RecordChild0, // #0 = $src1
/* 92083*/      OPC_MoveChild1,
/* 92084*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VPMADDWD),
/* 92087*/      OPC_MoveChild0,
/* 92088*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 92091*/      OPC_RecordMemRef,
/* 92092*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 92093*/      OPC_CheckFoldableChainNode,
/* 92094*/      OPC_RecordChild1, // #2 = $src3
/* 92095*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 92097*/      OPC_CheckPredicate, 9, // Predicate_load
/* 92099*/      OPC_MoveParent,
/* 92100*/      OPC_RecordChild1, // #3 = $src2
/* 92101*/      OPC_CheckPredicate, 17, // Predicate_X86vpmaddwd_su
/* 92103*/      OPC_MoveParent,
/* 92104*/      OPC_CheckType, MVT::v4i32,
/* 92106*/      OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/* 92108*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/* 92111*/      OPC_EmitMergeInputChains1_1,
/* 92112*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 8, 
                // Src: (add:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86vpmaddwd:{ *:[v4i32] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src2)<<P:Predicate_X86vpmaddwd_su>>) - Complexity = 29
                // Dst: (VPDPWSSDZ128m:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v8i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/* 92125*/    /*Scope*/ 26|128,1/*154*/, /*->92281*/
/* 92127*/      OPC_MoveChild0,
/* 92128*/      OPC_SwitchOpcode /*2 cases */, 82, TARGET_VAL(X86ISD::VPMADDWD),// ->92214
/* 92132*/        OPC_Scope, 39, /*->92173*/ // 2 children in Scope
/* 92134*/          OPC_RecordChild0, // #0 = $src2
/* 92135*/          OPC_MoveChild1,
/* 92136*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 92139*/          OPC_RecordMemRef,
/* 92140*/          OPC_RecordNode, // #1 = 'ld' chained node
/* 92141*/          OPC_CheckFoldableChainNode,
/* 92142*/          OPC_RecordChild1, // #2 = $src3
/* 92143*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 92145*/          OPC_CheckPredicate, 9, // Predicate_load
/* 92147*/          OPC_MoveParent,
/* 92148*/          OPC_CheckPredicate, 17, // Predicate_X86vpmaddwd_su
/* 92150*/          OPC_MoveParent,
/* 92151*/          OPC_RecordChild1, // #3 = $src1
/* 92152*/          OPC_CheckType, MVT::v4i32,
/* 92154*/          OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/* 92156*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/* 92159*/          OPC_EmitMergeInputChains1_1,
/* 92160*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                    // Src: (add:{ *:[v4i32] } (X86vpmaddwd:{ *:[v4i32] } VR128X:{ *:[v8i16] }:$src2, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>)<<P:Predicate_X86vpmaddwd_su>>, VR128X:{ *:[v4i32] }:$src1) - Complexity = 29
                    // Dst: (VPDPWSSDZ128m:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v8i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/* 92173*/        /*Scope*/ 39, /*->92213*/
/* 92174*/          OPC_MoveChild0,
/* 92175*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 92178*/          OPC_RecordMemRef,
/* 92179*/          OPC_RecordNode, // #0 = 'ld' chained node
/* 92180*/          OPC_CheckFoldableChainNode,
/* 92181*/          OPC_RecordChild1, // #1 = $src3
/* 92182*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 92184*/          OPC_CheckPredicate, 9, // Predicate_load
/* 92186*/          OPC_MoveParent,
/* 92187*/          OPC_RecordChild1, // #2 = $src2
/* 92188*/          OPC_CheckPredicate, 17, // Predicate_X86vpmaddwd_su
/* 92190*/          OPC_MoveParent,
/* 92191*/          OPC_RecordChild1, // #3 = $src1
/* 92192*/          OPC_CheckType, MVT::v4i32,
/* 92194*/          OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/* 92196*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/* 92199*/          OPC_EmitMergeInputChains1_0,
/* 92200*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                    // Src: (add:{ *:[v4i32] } (X86vpmaddwd:{ *:[v4i32] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src2)<<P:Predicate_X86vpmaddwd_su>>, VR128X:{ *:[v4i32] }:$src1) - Complexity = 29
                    // Dst: (VPDPWSSDZ128m:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v8i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/* 92213*/        0, /*End of Scope*/
/* 92214*/      /*SwitchOpcode*/ 63, TARGET_VAL(X86ISD::PMULDQ),// ->92280
/* 92217*/        OPC_MoveChild0,
/* 92218*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 92221*/        OPC_MoveChild0,
/* 92222*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::PSHUFD),
/* 92225*/        OPC_RecordChild0, // #0 = $src1
/* 92226*/        OPC_CheckChild1Integer, 117|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551605*/, 
/* 92237*/        OPC_CheckType, MVT::v4i32,
/* 92239*/        OPC_MoveParent,
/* 92240*/        OPC_MoveParent,
/* 92241*/        OPC_MoveChild1,
/* 92242*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 92245*/        OPC_MoveChild0,
/* 92246*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::PSHUFD),
/* 92249*/        OPC_RecordChild0, // #1 = $src2
/* 92250*/        OPC_CheckChild1Integer, 117|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551605*/, 
/* 92261*/        OPC_CheckType, MVT::v4i32,
/* 92263*/        OPC_MoveParent,
/* 92264*/        OPC_MoveParent,
/* 92265*/        OPC_MoveParent,
/* 92266*/        OPC_RecordChild1, // #2 = $src3
/* 92267*/        OPC_CheckType, MVT::v2i64,
/* 92269*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 92271*/        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)
/* 92280*/      0, // EndSwitchOpcode
/* 92281*/    /*Scope*/ 102|128,5/*742*/, /*->93025*/
/* 92283*/      OPC_RecordChild0, // #0 = $src3
/* 92284*/      OPC_MoveChild1,
/* 92285*/      OPC_SwitchOpcode /*3 cases */, 62, TARGET_VAL(X86ISD::PMULDQ),// ->92351
/* 92289*/        OPC_MoveChild0,
/* 92290*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 92293*/        OPC_MoveChild0,
/* 92294*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::PSHUFD),
/* 92297*/        OPC_RecordChild0, // #1 = $src1
/* 92298*/        OPC_CheckChild1Integer, 117|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551605*/, 
/* 92309*/        OPC_CheckType, MVT::v4i32,
/* 92311*/        OPC_MoveParent,
/* 92312*/        OPC_MoveParent,
/* 92313*/        OPC_MoveChild1,
/* 92314*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 92317*/        OPC_MoveChild0,
/* 92318*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::PSHUFD),
/* 92321*/        OPC_RecordChild0, // #2 = $src2
/* 92322*/        OPC_CheckChild1Integer, 117|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551605*/, 
/* 92333*/        OPC_CheckType, MVT::v4i32,
/* 92335*/        OPC_MoveParent,
/* 92336*/        OPC_MoveParent,
/* 92337*/        OPC_MoveParent,
/* 92338*/        OPC_CheckType, MVT::v2i64,
/* 92340*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 92342*/        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)
/* 92351*/      /*SwitchOpcode*/ 15|128,4/*527*/, TARGET_VAL(ISD::LOAD),// ->92882
/* 92355*/        OPC_RecordMemRef,
/* 92356*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 92357*/        OPC_CheckFoldableChainNode,
/* 92358*/        OPC_RecordChild1, // #2 = $src2
/* 92359*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 92361*/        OPC_CheckPredicate, 9, // Predicate_load
/* 92363*/        OPC_Scope, 21, /*->92386*/ // 9 children in Scope
/* 92365*/          OPC_MoveParent,
/* 92366*/          OPC_CheckType, MVT::v16i8,
/* 92368*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/* 92370*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 92373*/          OPC_EmitMergeInputChains1_1,
/* 92374*/          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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPADDBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 92386*/        /*Scope*/ 23, /*->92410*/
/* 92387*/          OPC_CheckPredicate, 39, // Predicate_memop
/* 92389*/          OPC_MoveParent,
/* 92390*/          OPC_CheckType, MVT::v16i8,
/* 92392*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 92394*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 92397*/          OPC_EmitMergeInputChains1_1,
/* 92398*/          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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                    // Dst: (PADDBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 92410*/        /*Scope*/ 43, /*->92454*/
/* 92411*/          OPC_MoveParent,
/* 92412*/          OPC_SwitchType /*2 cases */, 18, MVT::v32i8,// ->92433
/* 92415*/            OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/* 92417*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 92420*/            OPC_EmitMergeInputChains1_1,
/* 92421*/            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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPADDBYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 92433*/          /*SwitchType*/ 18, MVT::v8i16,// ->92453
/* 92435*/            OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/* 92437*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 92440*/            OPC_EmitMergeInputChains1_1,
/* 92441*/            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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPADDWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 92453*/          0, // EndSwitchType
/* 92454*/        /*Scope*/ 23, /*->92478*/
/* 92455*/          OPC_CheckPredicate, 39, // Predicate_memop
/* 92457*/          OPC_MoveParent,
/* 92458*/          OPC_CheckType, MVT::v8i16,
/* 92460*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 92462*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 92465*/          OPC_EmitMergeInputChains1_1,
/* 92466*/          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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                    // Dst: (PADDWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 92478*/        /*Scope*/ 43, /*->92522*/
/* 92479*/          OPC_MoveParent,
/* 92480*/          OPC_SwitchType /*2 cases */, 18, MVT::v16i16,// ->92501
/* 92483*/            OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/* 92485*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 92488*/            OPC_EmitMergeInputChains1_1,
/* 92489*/            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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPADDWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 92501*/          /*SwitchType*/ 18, MVT::v4i32,// ->92521
/* 92503*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 92505*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 92508*/            OPC_EmitMergeInputChains1_1,
/* 92509*/            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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPADDDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 92521*/          0, // EndSwitchType
/* 92522*/        /*Scope*/ 23, /*->92546*/
/* 92523*/          OPC_CheckPredicate, 39, // Predicate_memop
/* 92525*/          OPC_MoveParent,
/* 92526*/          OPC_CheckType, MVT::v4i32,
/* 92528*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 92530*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 92533*/          OPC_EmitMergeInputChains1_1,
/* 92534*/          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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                    // Dst: (PADDDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 92546*/        /*Scope*/ 43, /*->92590*/
/* 92547*/          OPC_MoveParent,
/* 92548*/          OPC_SwitchType /*2 cases */, 18, MVT::v8i32,// ->92569
/* 92551*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/* 92553*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 92556*/            OPC_EmitMergeInputChains1_1,
/* 92557*/            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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPADDDYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 92569*/          /*SwitchType*/ 18, MVT::v2i64,// ->92589
/* 92571*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 92573*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 92576*/            OPC_EmitMergeInputChains1_1,
/* 92577*/            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>>) - Complexity = 25
                      // Dst: (VPADDQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 92589*/          0, // EndSwitchType
/* 92590*/        /*Scope*/ 23, /*->92614*/
/* 92591*/          OPC_CheckPredicate, 39, // Predicate_memop
/* 92593*/          OPC_MoveParent,
/* 92594*/          OPC_CheckType, MVT::v2i64,
/* 92596*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 92598*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 92601*/          OPC_EmitMergeInputChains1_1,
/* 92602*/          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_memop>>) - Complexity = 25
                    // Dst: (PADDQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 92614*/        /*Scope*/ 9|128,2/*265*/, /*->92881*/
/* 92616*/          OPC_MoveParent,
/* 92617*/          OPC_SwitchType /*12 cases */, 40, MVT::v4i64,// ->92660
/* 92620*/            OPC_Scope, 18, /*->92640*/ // 2 children in Scope
/* 92622*/              OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/* 92624*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 92627*/              OPC_EmitMergeInputChains1_1,
/* 92628*/              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>>) - Complexity = 25
                        // Dst: (VPADDQYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 92640*/            /*Scope*/ 18, /*->92659*/
/* 92641*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 92643*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 92646*/              OPC_EmitMergeInputChains1_1,
/* 92647*/              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>>) - Complexity = 25
                        // Dst: (VPADDQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 92659*/            0, /*End of Scope*/
/* 92660*/          /*SwitchType*/ 18, MVT::v8i64,// ->92680
/* 92662*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 92664*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 92667*/            OPC_EmitMergeInputChains1_1,
/* 92668*/            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>>) - Complexity = 25
                      // Dst: (VPADDQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 92680*/          /*SwitchType*/ 18, MVT::v2i64,// ->92700
/* 92682*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 92684*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 92687*/            OPC_EmitMergeInputChains1_1,
/* 92688*/            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>>) - Complexity = 25
                      // Dst: (VPADDQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 92700*/          /*SwitchType*/ 18, MVT::v16i32,// ->92720
/* 92702*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 92704*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 92707*/            OPC_EmitMergeInputChains1_1,
/* 92708*/            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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPADDDZrm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 92720*/          /*SwitchType*/ 18, MVT::v8i32,// ->92740
/* 92722*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 92724*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 92727*/            OPC_EmitMergeInputChains1_1,
/* 92728*/            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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPADDDZ256rm:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 92740*/          /*SwitchType*/ 18, MVT::v4i32,// ->92760
/* 92742*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 92744*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 92747*/            OPC_EmitMergeInputChains1_1,
/* 92748*/            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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPADDDZ128rm:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 92760*/          /*SwitchType*/ 18, MVT::v32i16,// ->92780
/* 92762*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/* 92764*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 92767*/            OPC_EmitMergeInputChains1_1,
/* 92768*/            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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPADDWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 92780*/          /*SwitchType*/ 18, MVT::v16i16,// ->92800
/* 92782*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 92784*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 92787*/            OPC_EmitMergeInputChains1_1,
/* 92788*/            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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPADDWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 92800*/          /*SwitchType*/ 18, MVT::v8i16,// ->92820
/* 92802*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 92804*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 92807*/            OPC_EmitMergeInputChains1_1,
/* 92808*/            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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPADDWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 92820*/          /*SwitchType*/ 18, MVT::v64i8,// ->92840
/* 92822*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/* 92824*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 92827*/            OPC_EmitMergeInputChains1_1,
/* 92828*/            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, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPADDBZrm:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 92840*/          /*SwitchType*/ 18, MVT::v32i8,// ->92860
/* 92842*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 92844*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 92847*/            OPC_EmitMergeInputChains1_1,
/* 92848*/            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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPADDBZ256rm:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 92860*/          /*SwitchType*/ 18, MVT::v16i8,// ->92880
/* 92862*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 92864*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 92867*/            OPC_EmitMergeInputChains1_1,
/* 92868*/            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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPADDBZ128rm:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 92880*/          0, // EndSwitchType
/* 92881*/        0, /*End of Scope*/
/* 92882*/      /*SwitchOpcode*/ 10|128,1/*138*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->93024
/* 92886*/        OPC_RecordMemRef,
/* 92887*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/* 92888*/        OPC_CheckFoldableChainNode,
/* 92889*/        OPC_RecordChild1, // #2 = $src2
/* 92890*/        OPC_Scope, 65, /*->92957*/ // 2 children in Scope
/* 92892*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 92894*/          OPC_MoveParent,
/* 92895*/          OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->92916
/* 92898*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 92900*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 92903*/            OPC_EmitMergeInputChains1_1,
/* 92904*/            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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPADDQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 92916*/          /*SwitchType*/ 18, MVT::v4i64,// ->92936
/* 92918*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 92920*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 92923*/            OPC_EmitMergeInputChains1_1,
/* 92924*/            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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPADDQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 92936*/          /*SwitchType*/ 18, MVT::v2i64,// ->92956
/* 92938*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 92940*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 92943*/            OPC_EmitMergeInputChains1_1,
/* 92944*/            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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPADDQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 92956*/          0, // EndSwitchType
/* 92957*/        /*Scope*/ 65, /*->93023*/
/* 92958*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/* 92960*/          OPC_MoveParent,
/* 92961*/          OPC_SwitchType /*3 cases */, 18, MVT::v16i32,// ->92982
/* 92964*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 92966*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 92969*/            OPC_EmitMergeInputChains1_1,
/* 92970*/            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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPADDDZrmb:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 92982*/          /*SwitchType*/ 18, MVT::v8i32,// ->93002
/* 92984*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 92986*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 92989*/            OPC_EmitMergeInputChains1_1,
/* 92990*/            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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPADDDZ256rmb:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 93002*/          /*SwitchType*/ 18, MVT::v4i32,// ->93022
/* 93004*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 93006*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 93009*/            OPC_EmitMergeInputChains1_1,
/* 93010*/            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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPADDDZ128rmb:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 93022*/          0, // EndSwitchType
/* 93023*/        0, /*End of Scope*/
/* 93024*/      0, // EndSwitchOpcode
/* 93025*/    /*Scope*/ 47|128,5/*687*/, /*->93714*/
/* 93027*/      OPC_MoveChild0,
/* 93028*/      OPC_SwitchOpcode /*2 cases */, 24|128,4/*536*/, TARGET_VAL(ISD::LOAD),// ->93569
/* 93033*/        OPC_RecordMemRef,
/* 93034*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 93035*/        OPC_CheckFoldableChainNode,
/* 93036*/        OPC_RecordChild1, // #1 = $src2
/* 93037*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 93039*/        OPC_CheckPredicate, 9, // Predicate_load
/* 93041*/        OPC_Scope, 22, /*->93065*/ // 9 children in Scope
/* 93043*/          OPC_MoveParent,
/* 93044*/          OPC_RecordChild1, // #2 = $src1
/* 93045*/          OPC_CheckType, MVT::v16i8,
/* 93047*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/* 93049*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 93052*/          OPC_EmitMergeInputChains1_0,
/* 93053*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDBrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (add:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v16i8] }:$src1) - Complexity = 25
                    // Dst: (VPADDBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 93065*/        /*Scope*/ 24, /*->93090*/
/* 93066*/          OPC_CheckPredicate, 39, // Predicate_memop
/* 93068*/          OPC_MoveParent,
/* 93069*/          OPC_RecordChild1, // #2 = $src1
/* 93070*/          OPC_CheckType, MVT::v16i8,
/* 93072*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 93074*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 93077*/          OPC_EmitMergeInputChains1_0,
/* 93078*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PADDBrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (add:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:{ *:[v16i8] }:$src1) - Complexity = 25
                    // Dst: (PADDBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 93090*/        /*Scope*/ 44, /*->93135*/
/* 93091*/          OPC_MoveParent,
/* 93092*/          OPC_RecordChild1, // #2 = $src1
/* 93093*/          OPC_SwitchType /*2 cases */, 18, MVT::v32i8,// ->93114
/* 93096*/            OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/* 93098*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 93101*/            OPC_EmitMergeInputChains1_0,
/* 93102*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDBYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (add:{ *:[v32i8] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v32i8] }:$src1) - Complexity = 25
                      // Dst: (VPADDBYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 93114*/          /*SwitchType*/ 18, MVT::v8i16,// ->93134
/* 93116*/            OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/* 93118*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 93121*/            OPC_EmitMergeInputChains1_0,
/* 93122*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDWrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (add:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v8i16] }:$src1) - Complexity = 25
                      // Dst: (VPADDWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 93134*/          0, // EndSwitchType
/* 93135*/        /*Scope*/ 24, /*->93160*/
/* 93136*/          OPC_CheckPredicate, 39, // Predicate_memop
/* 93138*/          OPC_MoveParent,
/* 93139*/          OPC_RecordChild1, // #2 = $src1
/* 93140*/          OPC_CheckType, MVT::v8i16,
/* 93142*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 93144*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 93147*/          OPC_EmitMergeInputChains1_0,
/* 93148*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PADDWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (add:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:{ *:[v8i16] }:$src1) - Complexity = 25
                    // Dst: (PADDWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 93160*/        /*Scope*/ 44, /*->93205*/
/* 93161*/          OPC_MoveParent,
/* 93162*/          OPC_RecordChild1, // #2 = $src1
/* 93163*/          OPC_SwitchType /*2 cases */, 18, MVT::v16i16,// ->93184
/* 93166*/            OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/* 93168*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 93171*/            OPC_EmitMergeInputChains1_0,
/* 93172*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (add:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v16i16] }:$src1) - Complexity = 25
                      // Dst: (VPADDWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 93184*/          /*SwitchType*/ 18, MVT::v4i32,// ->93204
/* 93186*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 93188*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 93191*/            OPC_EmitMergeInputChains1_0,
/* 93192*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (add:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v4i32] }:$src1) - Complexity = 25
                      // Dst: (VPADDDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 93204*/          0, // EndSwitchType
/* 93205*/        /*Scope*/ 24, /*->93230*/
/* 93206*/          OPC_CheckPredicate, 39, // Predicate_memop
/* 93208*/          OPC_MoveParent,
/* 93209*/          OPC_RecordChild1, // #2 = $src1
/* 93210*/          OPC_CheckType, MVT::v4i32,
/* 93212*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 93214*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 93217*/          OPC_EmitMergeInputChains1_0,
/* 93218*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PADDDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (add:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:{ *:[v4i32] }:$src1) - Complexity = 25
                    // Dst: (PADDDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 93230*/        /*Scope*/ 44, /*->93275*/
/* 93231*/          OPC_MoveParent,
/* 93232*/          OPC_RecordChild1, // #2 = $src1
/* 93233*/          OPC_SwitchType /*2 cases */, 18, MVT::v8i32,// ->93254
/* 93236*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/* 93238*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 93241*/            OPC_EmitMergeInputChains1_0,
/* 93242*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (add:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v8i32] }:$src1) - Complexity = 25
                      // Dst: (VPADDDYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 93254*/          /*SwitchType*/ 18, MVT::v2i64,// ->93274
/* 93256*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 93258*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 93261*/            OPC_EmitMergeInputChains1_0,
/* 93262*/            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>>, VR128:{ *:[v2i64] }:$src1) - Complexity = 25
                      // Dst: (VPADDQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 93274*/          0, // EndSwitchType
/* 93275*/        /*Scope*/ 24, /*->93300*/
/* 93276*/          OPC_CheckPredicate, 39, // Predicate_memop
/* 93278*/          OPC_MoveParent,
/* 93279*/          OPC_RecordChild1, // #2 = $src1
/* 93280*/          OPC_CheckType, MVT::v2i64,
/* 93282*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 93284*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 93287*/          OPC_EmitMergeInputChains1_0,
/* 93288*/          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_memop>>, VR128:{ *:[v2i64] }:$src1) - Complexity = 25
                    // Dst: (PADDQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 93300*/        /*Scope*/ 10|128,2/*266*/, /*->93568*/
/* 93302*/          OPC_MoveParent,
/* 93303*/          OPC_RecordChild1, // #2 = $src1
/* 93304*/          OPC_SwitchType /*12 cases */, 40, MVT::v4i64,// ->93347
/* 93307*/            OPC_Scope, 18, /*->93327*/ // 2 children in Scope
/* 93309*/              OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/* 93311*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 93314*/              OPC_EmitMergeInputChains1_0,
/* 93315*/              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>>, VR256:{ *:[v4i64] }:$src1) - Complexity = 25
                        // Dst: (VPADDQYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 93327*/            /*Scope*/ 18, /*->93346*/
/* 93328*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 93330*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 93333*/              OPC_EmitMergeInputChains1_0,
/* 93334*/              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>>, VR256X:{ *:[v4i64] }:$src1) - Complexity = 25
                        // Dst: (VPADDQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 93346*/            0, /*End of Scope*/
/* 93347*/          /*SwitchType*/ 18, MVT::v8i64,// ->93367
/* 93349*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 93351*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 93354*/            OPC_EmitMergeInputChains1_0,
/* 93355*/            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>>, VR512:{ *:[v8i64] }:$src1) - Complexity = 25
                      // Dst: (VPADDQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 93367*/          /*SwitchType*/ 18, MVT::v2i64,// ->93387
/* 93369*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 93371*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 93374*/            OPC_EmitMergeInputChains1_0,
/* 93375*/            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>>, VR128X:{ *:[v2i64] }:$src1) - Complexity = 25
                      // Dst: (VPADDQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 93387*/          /*SwitchType*/ 18, MVT::v16i32,// ->93407
/* 93389*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 93391*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 93394*/            OPC_EmitMergeInputChains1_0,
/* 93395*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (add:{ *:[v16i32] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16i32] }:$src1) - Complexity = 25
                      // Dst: (VPADDDZrm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 93407*/          /*SwitchType*/ 18, MVT::v8i32,// ->93427
/* 93409*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 93411*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 93414*/            OPC_EmitMergeInputChains1_0,
/* 93415*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (add:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8i32] }:$src1) - Complexity = 25
                      // Dst: (VPADDDZ256rm:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 93427*/          /*SwitchType*/ 18, MVT::v4i32,// ->93447
/* 93429*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 93431*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 93434*/            OPC_EmitMergeInputChains1_0,
/* 93435*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (add:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4i32] }:$src1) - Complexity = 25
                      // Dst: (VPADDDZ128rm:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 93447*/          /*SwitchType*/ 18, MVT::v32i16,// ->93467
/* 93449*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/* 93451*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 93454*/            OPC_EmitMergeInputChains1_0,
/* 93455*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (add:{ *:[v32i16] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1) - Complexity = 25
                      // Dst: (VPADDWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 93467*/          /*SwitchType*/ 18, MVT::v16i16,// ->93487
/* 93469*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 93471*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 93474*/            OPC_EmitMergeInputChains1_0,
/* 93475*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (add:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1) - Complexity = 25
                      // Dst: (VPADDWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 93487*/          /*SwitchType*/ 18, MVT::v8i16,// ->93507
/* 93489*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 93491*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 93494*/            OPC_EmitMergeInputChains1_0,
/* 93495*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (add:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1) - Complexity = 25
                      // Dst: (VPADDWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 93507*/          /*SwitchType*/ 18, MVT::v64i8,// ->93527
/* 93509*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/* 93511*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 93514*/            OPC_EmitMergeInputChains1_0,
/* 93515*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDBZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (add:{ *:[v64i8] } (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v64i8] }:$src1) - Complexity = 25
                      // Dst: (VPADDBZrm:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 93527*/          /*SwitchType*/ 18, MVT::v32i8,// ->93547
/* 93529*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 93531*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 93534*/            OPC_EmitMergeInputChains1_0,
/* 93535*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDBZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (add:{ *:[v32i8] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v32i8] }:$src1) - Complexity = 25
                      // Dst: (VPADDBZ256rm:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 93547*/          /*SwitchType*/ 18, MVT::v16i8,// ->93567
/* 93549*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 93551*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 93554*/            OPC_EmitMergeInputChains1_0,
/* 93555*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDBZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (add:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v16i8] }:$src1) - Complexity = 25
                      // Dst: (VPADDBZ128rm:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 93567*/          0, // EndSwitchType
/* 93568*/        0, /*End of Scope*/
/* 93569*/      /*SwitchOpcode*/ 12|128,1/*140*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->93713
/* 93573*/        OPC_RecordMemRef,
/* 93574*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/* 93575*/        OPC_CheckFoldableChainNode,
/* 93576*/        OPC_RecordChild1, // #1 = $src2
/* 93577*/        OPC_Scope, 66, /*->93645*/ // 2 children in Scope
/* 93579*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 93581*/          OPC_MoveParent,
/* 93582*/          OPC_RecordChild1, // #2 = $src1
/* 93583*/          OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->93604
/* 93586*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 93588*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 93591*/            OPC_EmitMergeInputChains1_0,
/* 93592*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (add:{ *:[v8i64] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8i64] }:$src1) - Complexity = 25
                      // Dst: (VPADDQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 93604*/          /*SwitchType*/ 18, MVT::v4i64,// ->93624
/* 93606*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 93608*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 93611*/            OPC_EmitMergeInputChains1_0,
/* 93612*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (add:{ *:[v4i64] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src1) - Complexity = 25
                      // Dst: (VPADDQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 93624*/          /*SwitchType*/ 18, MVT::v2i64,// ->93644
/* 93626*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 93628*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 93631*/            OPC_EmitMergeInputChains1_0,
/* 93632*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (add:{ *:[v2i64] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src1) - Complexity = 25
                      // Dst: (VPADDQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 93644*/          0, // EndSwitchType
/* 93645*/        /*Scope*/ 66, /*->93712*/
/* 93646*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/* 93648*/          OPC_MoveParent,
/* 93649*/          OPC_RecordChild1, // #2 = $src1
/* 93650*/          OPC_SwitchType /*3 cases */, 18, MVT::v16i32,// ->93671
/* 93653*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 93655*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 93658*/            OPC_EmitMergeInputChains1_0,
/* 93659*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (add:{ *:[v16i32] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16i32] }:$src1) - Complexity = 25
                      // Dst: (VPADDDZrmb:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 93671*/          /*SwitchType*/ 18, MVT::v8i32,// ->93691
/* 93673*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 93675*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 93678*/            OPC_EmitMergeInputChains1_0,
/* 93679*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (add:{ *:[v8i32] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8i32] }:$src1) - Complexity = 25
                      // Dst: (VPADDDZ256rmb:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 93691*/          /*SwitchType*/ 18, MVT::v4i32,// ->93711
/* 93693*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 93695*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 93698*/            OPC_EmitMergeInputChains1_0,
/* 93699*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (add:{ *:[v4i32] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4i32] }:$src1) - Complexity = 25
                      // Dst: (VPADDDZ128rmb:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 93711*/          0, // EndSwitchType
/* 93712*/        0, /*End of Scope*/
/* 93713*/      0, // EndSwitchOpcode
/* 93714*/    /*Scope*/ 51, /*->93766*/
/* 93715*/      OPC_RecordChild0, // #0 = $src1
/* 93716*/      OPC_MoveChild1,
/* 93717*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VPMADDWD),
/* 93720*/      OPC_RecordChild0, // #1 = $src2
/* 93721*/      OPC_RecordChild1, // #2 = $src3
/* 93722*/      OPC_CheckPredicate, 17, // Predicate_X86vpmaddwd_su
/* 93724*/      OPC_MoveParent,
/* 93725*/      OPC_SwitchType /*3 cases */, 11, MVT::v16i32,// ->93739
/* 93728*/        OPC_CheckPatternPredicate, 148, // (Subtarget->hasVNNI())
/* 93730*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDZr), 0,
                      MVT::v16i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (add:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86vpmaddwd:{ *:[v16i32] } VR512:{ *:[v32i16] }:$src2, VR512:{ *:[v32i16] }:$src3)<<P:Predicate_X86vpmaddwd_su>>) - Complexity = 7
                  // Dst: (VPDPWSSDZr:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v32i16] }:$src2, VR512:{ *:[v32i16] }:$src3)
/* 93739*/      /*SwitchType*/ 11, MVT::v8i32,// ->93752
/* 93741*/        OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/* 93743*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDZ256r), 0,
                      MVT::v8i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (add:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86vpmaddwd:{ *:[v8i32] } VR256X:{ *:[v16i16] }:$src2, VR256X:{ *:[v16i16] }:$src3)<<P:Predicate_X86vpmaddwd_su>>) - Complexity = 7
                  // Dst: (VPDPWSSDZ256r:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v16i16] }:$src2, VR256X:{ *:[v16i16] }:$src3)
/* 93752*/      /*SwitchType*/ 11, MVT::v4i32,// ->93765
/* 93754*/        OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/* 93756*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDZ128r), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (add:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86vpmaddwd:{ *:[v4i32] } VR128X:{ *:[v8i16] }:$src2, VR128X:{ *:[v8i16] }:$src3)<<P:Predicate_X86vpmaddwd_su>>) - Complexity = 7
                  // Dst: (VPDPWSSDZ128r:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v8i16] }:$src2, VR128X:{ *:[v8i16] }:$src3)
/* 93765*/      0, // EndSwitchType
/* 93766*/    /*Scope*/ 127, /*->93894*/
/* 93767*/      OPC_MoveChild0,
/* 93768*/      OPC_SwitchOpcode /*3 cases */, 66, TARGET_VAL(X86ISD::VPMADDWD),// ->93838
/* 93772*/        OPC_RecordChild0, // #0 = $src2
/* 93773*/        OPC_RecordChild1, // #1 = $src3
/* 93774*/        OPC_Scope, 45, /*->93821*/ // 2 children in Scope
/* 93776*/          OPC_CheckPredicate, 17, // Predicate_X86vpmaddwd_su
/* 93778*/          OPC_MoveParent,
/* 93779*/          OPC_RecordChild1, // #2 = $src1
/* 93780*/          OPC_SwitchType /*3 cases */, 11, MVT::v16i32,// ->93794
/* 93783*/            OPC_CheckPatternPredicate, 148, // (Subtarget->hasVNNI())
/* 93785*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDZr), 0,
                          MVT::v16i32, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (add:{ *:[v16i32] } (X86vpmaddwd:{ *:[v16i32] } VR512:{ *:[v32i16] }:$src2, VR512:{ *:[v32i16] }:$src3)<<P:Predicate_X86vpmaddwd_su>>, VR512:{ *:[v16i32] }:$src1) - Complexity = 7
                      // Dst: (VPDPWSSDZr:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v32i16] }:$src2, VR512:{ *:[v32i16] }:$src3)
/* 93794*/          /*SwitchType*/ 11, MVT::v8i32,// ->93807
/* 93796*/            OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/* 93798*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDZ256r), 0,
                          MVT::v8i32, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (add:{ *:[v8i32] } (X86vpmaddwd:{ *:[v8i32] } VR256X:{ *:[v16i16] }:$src2, VR256X:{ *:[v16i16] }:$src3)<<P:Predicate_X86vpmaddwd_su>>, VR256X:{ *:[v8i32] }:$src1) - Complexity = 7
                      // Dst: (VPDPWSSDZ256r:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v16i16] }:$src2, VR256X:{ *:[v16i16] }:$src3)
/* 93807*/          /*SwitchType*/ 11, MVT::v4i32,// ->93820
/* 93809*/            OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/* 93811*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPDPWSSDZ128r), 0,
                          MVT::v4i32, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (add:{ *:[v4i32] } (X86vpmaddwd:{ *:[v4i32] } VR128X:{ *:[v8i16] }:$src2, VR128X:{ *:[v8i16] }:$src3)<<P:Predicate_X86vpmaddwd_su>>, VR128X:{ *:[v4i32] }:$src1) - Complexity = 7
                      // Dst: (VPDPWSSDZ128r:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v8i16] }:$src2, VR128X:{ *:[v8i16] }:$src3)
/* 93820*/          0, // EndSwitchType
/* 93821*/        /*Scope*/ 15, /*->93837*/
/* 93822*/          OPC_MoveParent,
/* 93823*/          OPC_RecordChild1, // #2 = $src3
/* 93824*/          OPC_CheckType, MVT::v4i32,
/* 93826*/          OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 93828*/          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)
/* 93837*/        0, /*End of Scope*/
/* 93838*/      /*SwitchOpcode*/ 32, TARGET_VAL(ISD::MUL),// ->93873
/* 93841*/        OPC_RecordChild0, // #0 = $src1
/* 93842*/        OPC_RecordChild1, // #1 = $src2
/* 93843*/        OPC_MoveParent,
/* 93844*/        OPC_RecordChild1, // #2 = $src3
/* 93845*/        OPC_SwitchType /*2 cases */, 11, MVT::v8i16,// ->93859
/* 93848*/          OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 93850*/          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)
/* 93859*/        /*SwitchType*/ 11, MVT::v4i32,// ->93872
/* 93861*/          OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 93863*/          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)
/* 93872*/        0, // EndSwitchType
/* 93873*/      /*SwitchOpcode*/ 17, TARGET_VAL(X86ISD::PMULDQ),// ->93893
/* 93876*/        OPC_RecordChild0, // #0 = $src1
/* 93877*/        OPC_RecordChild1, // #1 = $src2
/* 93878*/        OPC_MoveParent,
/* 93879*/        OPC_RecordChild1, // #2 = $src3
/* 93880*/        OPC_CheckType, MVT::v2i64,
/* 93882*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 93884*/        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)
/* 93893*/      0, // EndSwitchOpcode
/* 93894*/    /*Scope*/ 0|128,3/*384*/, /*->94280*/
/* 93896*/      OPC_RecordChild0, // #0 = $src3
/* 93897*/      OPC_Scope, 75, /*->93974*/ // 2 children in Scope
/* 93899*/        OPC_MoveChild1,
/* 93900*/        OPC_SwitchOpcode /*3 cases */, 31, TARGET_VAL(ISD::MUL),// ->93935
/* 93904*/          OPC_RecordChild0, // #1 = $src1
/* 93905*/          OPC_RecordChild1, // #2 = $src2
/* 93906*/          OPC_MoveParent,
/* 93907*/          OPC_SwitchType /*2 cases */, 11, MVT::v8i16,// ->93921
/* 93910*/            OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 93912*/            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)
/* 93921*/          /*SwitchType*/ 11, MVT::v4i32,// ->93934
/* 93923*/            OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 93925*/            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)
/* 93934*/          0, // EndSwitchType
/* 93935*/        /*SwitchOpcode*/ 16, TARGET_VAL(X86ISD::PMULDQ),// ->93954
/* 93938*/          OPC_RecordChild0, // #1 = $src1
/* 93939*/          OPC_RecordChild1, // #2 = $src2
/* 93940*/          OPC_MoveParent,
/* 93941*/          OPC_CheckType, MVT::v2i64,
/* 93943*/          OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 93945*/          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)
/* 93954*/        /*SwitchOpcode*/ 16, TARGET_VAL(X86ISD::VPMADDWD),// ->93973
/* 93957*/          OPC_RecordChild0, // #1 = $src1
/* 93958*/          OPC_RecordChild1, // #2 = $src2
/* 93959*/          OPC_MoveParent,
/* 93960*/          OPC_CheckType, MVT::v4i32,
/* 93962*/          OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 93964*/          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)
/* 93973*/        0, // EndSwitchOpcode
/* 93974*/      /*Scope*/ 47|128,2/*303*/, /*->94279*/
/* 93976*/        OPC_RecordChild1, // #1 = $src2
/* 93977*/        OPC_SwitchType /*12 cases */, 35, MVT::v16i8,// ->94015
/* 93980*/          OPC_Scope, 10, /*->93992*/ // 3 children in Scope
/* 93982*/            OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/* 93984*/            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)
/* 93992*/          /*Scope*/ 10, /*->94003*/
/* 93993*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 93995*/            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)
/* 94003*/          /*Scope*/ 10, /*->94014*/
/* 94004*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 94006*/            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)
/* 94014*/          0, /*End of Scope*/
/* 94015*/        /*SwitchType*/ 24, MVT::v32i8,// ->94041
/* 94017*/          OPC_Scope, 10, /*->94029*/ // 2 children in Scope
/* 94019*/            OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/* 94021*/            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)
/* 94029*/          /*Scope*/ 10, /*->94040*/
/* 94030*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 94032*/            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)
/* 94040*/          0, /*End of Scope*/
/* 94041*/        /*SwitchType*/ 35, MVT::v8i16,// ->94078
/* 94043*/          OPC_Scope, 10, /*->94055*/ // 3 children in Scope
/* 94045*/            OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/* 94047*/            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)
/* 94055*/          /*Scope*/ 10, /*->94066*/
/* 94056*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 94058*/            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)
/* 94066*/          /*Scope*/ 10, /*->94077*/
/* 94067*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 94069*/            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)
/* 94077*/          0, /*End of Scope*/
/* 94078*/        /*SwitchType*/ 24, MVT::v16i16,// ->94104
/* 94080*/          OPC_Scope, 10, /*->94092*/ // 2 children in Scope
/* 94082*/            OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/* 94084*/            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)
/* 94092*/          /*Scope*/ 10, /*->94103*/
/* 94093*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 94095*/            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)
/* 94103*/          0, /*End of Scope*/
/* 94104*/        /*SwitchType*/ 35, MVT::v4i32,// ->94141
/* 94106*/          OPC_Scope, 10, /*->94118*/ // 3 children in Scope
/* 94108*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 94110*/            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)
/* 94118*/          /*Scope*/ 10, /*->94129*/
/* 94119*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 94121*/            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)
/* 94129*/          /*Scope*/ 10, /*->94140*/
/* 94130*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 94132*/            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)
/* 94140*/          0, /*End of Scope*/
/* 94141*/        /*SwitchType*/ 24, MVT::v8i32,// ->94167
/* 94143*/          OPC_Scope, 10, /*->94155*/ // 2 children in Scope
/* 94145*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/* 94147*/            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)
/* 94155*/          /*Scope*/ 10, /*->94166*/
/* 94156*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 94158*/            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)
/* 94166*/          0, /*End of Scope*/
/* 94167*/        /*SwitchType*/ 35, MVT::v2i64,// ->94204
/* 94169*/          OPC_Scope, 10, /*->94181*/ // 3 children in Scope
/* 94171*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 94173*/            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)
/* 94181*/          /*Scope*/ 10, /*->94192*/
/* 94182*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 94184*/            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)
/* 94192*/          /*Scope*/ 10, /*->94203*/
/* 94193*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 94195*/            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)
/* 94203*/          0, /*End of Scope*/
/* 94204*/        /*SwitchType*/ 24, MVT::v4i64,// ->94230
/* 94206*/          OPC_Scope, 10, /*->94218*/ // 2 children in Scope
/* 94208*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/* 94210*/            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)
/* 94218*/          /*Scope*/ 10, /*->94229*/
/* 94219*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 94221*/            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)
/* 94229*/          0, /*End of Scope*/
/* 94230*/        /*SwitchType*/ 10, MVT::v8i64,// ->94242
/* 94232*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 94234*/          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)
/* 94242*/        /*SwitchType*/ 10, MVT::v16i32,// ->94254
/* 94244*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 94246*/          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)
/* 94254*/        /*SwitchType*/ 10, MVT::v32i16,// ->94266
/* 94256*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/* 94258*/          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)
/* 94266*/        /*SwitchType*/ 10, MVT::v64i8,// ->94278
/* 94268*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/* 94270*/          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)
/* 94278*/        0, // EndSwitchType
/* 94279*/      0, /*End of Scope*/
/* 94280*/    0, /*End of Scope*/
/* 94281*/  /*SwitchOpcode*/ 98|128,11/*1506*/, TARGET_VAL(ISD::SUB),// ->95791
/* 94285*/    OPC_Scope, 105, /*->94392*/ // 5 children in Scope
/* 94287*/      OPC_RecordChild0, // #0 = $src1
/* 94288*/      OPC_MoveChild1,
/* 94289*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 94292*/      OPC_RecordMemRef,
/* 94293*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 94294*/      OPC_CheckFoldableChainNode,
/* 94295*/      OPC_RecordChild1, // #2 = $src2
/* 94296*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 94298*/      OPC_Scope, 22, /*->94322*/ // 4 children in Scope
/* 94300*/        OPC_CheckPredicate, 5, // Predicate_loadi8
/* 94302*/        OPC_MoveParent,
/* 94303*/        OPC_CheckType, MVT::i8,
/* 94305*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 94308*/        OPC_EmitMergeInputChains1_1,
/* 94309*/        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)
/* 94322*/      /*Scope*/ 22, /*->94345*/
/* 94323*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 94325*/        OPC_MoveParent,
/* 94326*/        OPC_CheckType, MVT::i16,
/* 94328*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 94331*/        OPC_EmitMergeInputChains1_1,
/* 94332*/        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)
/* 94345*/      /*Scope*/ 22, /*->94368*/
/* 94346*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 94348*/        OPC_MoveParent,
/* 94349*/        OPC_CheckType, MVT::i32,
/* 94351*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 94354*/        OPC_EmitMergeInputChains1_1,
/* 94355*/        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)
/* 94368*/      /*Scope*/ 22, /*->94391*/
/* 94369*/        OPC_CheckPredicate, 9, // Predicate_load
/* 94371*/        OPC_MoveParent,
/* 94372*/        OPC_CheckType, MVT::i64,
/* 94374*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 94377*/        OPC_EmitMergeInputChains1_1,
/* 94378*/        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)
/* 94391*/      0, /*End of Scope*/
/* 94392*/    /*Scope*/ 57, /*->94450*/
/* 94393*/      OPC_RecordNode, // #0 = $src
/* 94394*/      OPC_SwitchType /*2 cases */, 36, MVT::i32,// ->94433
/* 94397*/        OPC_Scope, 16, /*->94415*/ // 2 children in Scope
/* 94399*/          OPC_CheckPatternPredicate, 99, // (!Subtarget->is64Bit())
/* 94401*/          OPC_CheckComplexPat, /*CP*/4, /*#*/0, // selectLEAAddr:$src #1 #2 #3 #4 #5
/* 94404*/          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)
/* 94415*/        /*Scope*/ 16, /*->94432*/
/* 94416*/          OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/* 94418*/          OPC_CheckComplexPat, /*CP*/5, /*#*/0, // selectLEA64_32Addr:$src #1 #2 #3 #4 #5
/* 94421*/          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)
/* 94432*/        0, /*End of Scope*/
/* 94433*/      /*SwitchType*/ 14, MVT::i64,// ->94449
/* 94435*/        OPC_CheckComplexPat, /*CP*/6, /*#*/0, // selectLEAAddr:$src #1 #2 #3 #4 #5
/* 94438*/        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)
/* 94449*/      0, // EndSwitchType
/* 94450*/    /*Scope*/ 5|128,1/*133*/, /*->94585*/
/* 94452*/      OPC_RecordChild0, // #0 = $src2
/* 94453*/      OPC_MoveChild0,
/* 94454*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 94457*/      OPC_Scope, 19, /*->94478*/ // 5 children in Scope
/* 94459*/        OPC_CheckPredicate, 13, // Predicate_i16immSExt8
/* 94461*/        OPC_MoveParent,
/* 94462*/        OPC_RecordChild1, // #1 = $src1
/* 94463*/        OPC_CheckPredicate, 59, // Predicate_sub_is_xor
/* 94465*/        OPC_CheckType, MVT::i16,
/* 94467*/        OPC_EmitConvertToTarget, 0,
/* 94469*/        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)
/* 94478*/      /*Scope*/ 19, /*->94498*/
/* 94479*/        OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/* 94481*/        OPC_MoveParent,
/* 94482*/        OPC_RecordChild1, // #1 = $src1
/* 94483*/        OPC_CheckPredicate, 59, // Predicate_sub_is_xor
/* 94485*/        OPC_CheckType, MVT::i32,
/* 94487*/        OPC_EmitConvertToTarget, 0,
/* 94489*/        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)
/* 94498*/      /*Scope*/ 19, /*->94518*/
/* 94499*/        OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/* 94501*/        OPC_MoveParent,
/* 94502*/        OPC_RecordChild1, // #1 = $src1
/* 94503*/        OPC_CheckPredicate, 59, // Predicate_sub_is_xor
/* 94505*/        OPC_CheckType, MVT::i64,
/* 94507*/        OPC_EmitConvertToTarget, 0,
/* 94509*/        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)
/* 94518*/      /*Scope*/ 19, /*->94538*/
/* 94519*/        OPC_CheckPredicate, 38, // Predicate_i64immSExt32
/* 94521*/        OPC_MoveParent,
/* 94522*/        OPC_RecordChild1, // #1 = $src1
/* 94523*/        OPC_CheckPredicate, 59, // Predicate_sub_is_xor
/* 94525*/        OPC_CheckType, MVT::i64,
/* 94527*/        OPC_EmitConvertToTarget, 0,
/* 94529*/        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)
/* 94538*/      /*Scope*/ 45, /*->94584*/
/* 94539*/        OPC_MoveParent,
/* 94540*/        OPC_RecordChild1, // #1 = $src1
/* 94541*/        OPC_CheckPredicate, 59, // Predicate_sub_is_xor
/* 94543*/        OPC_SwitchType /*3 cases */, 11, MVT::i8,// ->94557
/* 94546*/          OPC_EmitConvertToTarget, 0,
/* 94548*/          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)
/* 94557*/        /*SwitchType*/ 11, MVT::i16,// ->94570
/* 94559*/          OPC_EmitConvertToTarget, 0,
/* 94561*/          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)
/* 94570*/        /*SwitchType*/ 11, MVT::i32,// ->94583
/* 94572*/          OPC_EmitConvertToTarget, 0,
/* 94574*/          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)
/* 94583*/        0, // EndSwitchType
/* 94584*/      0, /*End of Scope*/
/* 94585*/    /*Scope*/ 45, /*->94631*/
/* 94586*/      OPC_CheckChild0Integer, 0, 
/* 94588*/      OPC_RecordChild1, // #0 = $src1
/* 94589*/      OPC_SwitchType /*4 cases */, 8, MVT::i8,// ->94600
/* 94592*/        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)
/* 94600*/      /*SwitchType*/ 8, MVT::i16,// ->94610
/* 94602*/        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)
/* 94610*/      /*SwitchType*/ 8, MVT::i32,// ->94620
/* 94612*/        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)
/* 94620*/      /*SwitchType*/ 8, MVT::i64,// ->94630
/* 94622*/        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)
/* 94630*/      0, // EndSwitchType
/* 94631*/    /*Scope*/ 5|128,9/*1157*/, /*->95790*/
/* 94633*/      OPC_RecordChild0, // #0 = $src1
/* 94634*/      OPC_Scope, 41|128,1/*169*/, /*->94806*/ // 3 children in Scope
/* 94637*/        OPC_RecordChild1, // #1 = $src2
/* 94638*/        OPC_Scope, 117, /*->94757*/ // 5 children in Scope
/* 94640*/          OPC_MoveChild1,
/* 94641*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 94644*/          OPC_Scope, 16, /*->94662*/ // 5 children in Scope
/* 94646*/            OPC_CheckPredicate, 13, // Predicate_i16immSExt8
/* 94648*/            OPC_MoveParent,
/* 94649*/            OPC_CheckType, MVT::i16,
/* 94651*/            OPC_EmitConvertToTarget, 1,
/* 94653*/            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)
/* 94662*/          /*Scope*/ 16, /*->94679*/
/* 94663*/            OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/* 94665*/            OPC_MoveParent,
/* 94666*/            OPC_CheckType, MVT::i32,
/* 94668*/            OPC_EmitConvertToTarget, 1,
/* 94670*/            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)
/* 94679*/          /*Scope*/ 16, /*->94696*/
/* 94680*/            OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/* 94682*/            OPC_MoveParent,
/* 94683*/            OPC_CheckType, MVT::i64,
/* 94685*/            OPC_EmitConvertToTarget, 1,
/* 94687*/            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)
/* 94696*/          /*Scope*/ 16, /*->94713*/
/* 94697*/            OPC_CheckPredicate, 38, // Predicate_i64immSExt32
/* 94699*/            OPC_MoveParent,
/* 94700*/            OPC_CheckType, MVT::i64,
/* 94702*/            OPC_EmitConvertToTarget, 1,
/* 94704*/            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)
/* 94713*/          /*Scope*/ 42, /*->94756*/
/* 94714*/            OPC_MoveParent,
/* 94715*/            OPC_SwitchType /*3 cases */, 11, MVT::i8,// ->94729
/* 94718*/              OPC_EmitConvertToTarget, 1,
/* 94720*/              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)
/* 94729*/            /*SwitchType*/ 11, MVT::i16,// ->94742
/* 94731*/              OPC_EmitConvertToTarget, 1,
/* 94733*/              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)
/* 94742*/            /*SwitchType*/ 11, MVT::i32,// ->94755
/* 94744*/              OPC_EmitConvertToTarget, 1,
/* 94746*/              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)
/* 94755*/            0, // EndSwitchType
/* 94756*/          0, /*End of Scope*/
/* 94757*/        /*Scope*/ 11, /*->94769*/
/* 94758*/          OPC_CheckType, MVT::i8,
/* 94760*/          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)
/* 94769*/        /*Scope*/ 11, /*->94781*/
/* 94770*/          OPC_CheckType, MVT::i16,
/* 94772*/          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)
/* 94781*/        /*Scope*/ 11, /*->94793*/
/* 94782*/          OPC_CheckType, MVT::i32,
/* 94784*/          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)
/* 94793*/        /*Scope*/ 11, /*->94805*/
/* 94794*/          OPC_CheckType, MVT::i64,
/* 94796*/          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)
/* 94805*/        0, /*End of Scope*/
/* 94806*/      /*Scope*/ 36|128,5/*676*/, /*->95484*/
/* 94808*/        OPC_MoveChild1,
/* 94809*/        OPC_SwitchOpcode /*2 cases */, 15|128,4/*527*/, TARGET_VAL(ISD::LOAD),// ->95341
/* 94814*/          OPC_RecordMemRef,
/* 94815*/          OPC_RecordNode, // #1 = 'ld' chained node
/* 94816*/          OPC_CheckFoldableChainNode,
/* 94817*/          OPC_RecordChild1, // #2 = $src2
/* 94818*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 94820*/          OPC_CheckPredicate, 9, // Predicate_load
/* 94822*/          OPC_Scope, 21, /*->94845*/ // 9 children in Scope
/* 94824*/            OPC_MoveParent,
/* 94825*/            OPC_CheckType, MVT::v16i8,
/* 94827*/            OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/* 94829*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 94832*/            OPC_EmitMergeInputChains1_1,
/* 94833*/            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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPSUBBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 94845*/          /*Scope*/ 23, /*->94869*/
/* 94846*/            OPC_CheckPredicate, 39, // Predicate_memop
/* 94848*/            OPC_MoveParent,
/* 94849*/            OPC_CheckType, MVT::v16i8,
/* 94851*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 94853*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 94856*/            OPC_EmitMergeInputChains1_1,
/* 94857*/            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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                      // Dst: (PSUBBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 94869*/          /*Scope*/ 43, /*->94913*/
/* 94870*/            OPC_MoveParent,
/* 94871*/            OPC_SwitchType /*2 cases */, 18, MVT::v32i8,// ->94892
/* 94874*/              OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/* 94876*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 94879*/              OPC_EmitMergeInputChains1_1,
/* 94880*/              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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VPSUBBYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 94892*/            /*SwitchType*/ 18, MVT::v8i16,// ->94912
/* 94894*/              OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/* 94896*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 94899*/              OPC_EmitMergeInputChains1_1,
/* 94900*/              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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VPSUBWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 94912*/            0, // EndSwitchType
/* 94913*/          /*Scope*/ 23, /*->94937*/
/* 94914*/            OPC_CheckPredicate, 39, // Predicate_memop
/* 94916*/            OPC_MoveParent,
/* 94917*/            OPC_CheckType, MVT::v8i16,
/* 94919*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 94921*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 94924*/            OPC_EmitMergeInputChains1_1,
/* 94925*/            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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                      // Dst: (PSUBWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 94937*/          /*Scope*/ 43, /*->94981*/
/* 94938*/            OPC_MoveParent,
/* 94939*/            OPC_SwitchType /*2 cases */, 18, MVT::v16i16,// ->94960
/* 94942*/              OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/* 94944*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 94947*/              OPC_EmitMergeInputChains1_1,
/* 94948*/              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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VPSUBWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 94960*/            /*SwitchType*/ 18, MVT::v4i32,// ->94980
/* 94962*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 94964*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 94967*/              OPC_EmitMergeInputChains1_1,
/* 94968*/              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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VPSUBDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 94980*/            0, // EndSwitchType
/* 94981*/          /*Scope*/ 23, /*->95005*/
/* 94982*/            OPC_CheckPredicate, 39, // Predicate_memop
/* 94984*/            OPC_MoveParent,
/* 94985*/            OPC_CheckType, MVT::v4i32,
/* 94987*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 94989*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 94992*/            OPC_EmitMergeInputChains1_1,
/* 94993*/            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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                      // Dst: (PSUBDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 95005*/          /*Scope*/ 43, /*->95049*/
/* 95006*/            OPC_MoveParent,
/* 95007*/            OPC_SwitchType /*2 cases */, 18, MVT::v8i32,// ->95028
/* 95010*/              OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/* 95012*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 95015*/              OPC_EmitMergeInputChains1_1,
/* 95016*/              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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VPSUBDYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 95028*/            /*SwitchType*/ 18, MVT::v2i64,// ->95048
/* 95030*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 95032*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 95035*/              OPC_EmitMergeInputChains1_1,
/* 95036*/              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>>) - Complexity = 25
                        // Dst: (VPSUBQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 95048*/            0, // EndSwitchType
/* 95049*/          /*Scope*/ 23, /*->95073*/
/* 95050*/            OPC_CheckPredicate, 39, // Predicate_memop
/* 95052*/            OPC_MoveParent,
/* 95053*/            OPC_CheckType, MVT::v2i64,
/* 95055*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 95057*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 95060*/            OPC_EmitMergeInputChains1_1,
/* 95061*/            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_memop>>) - Complexity = 25
                      // Dst: (PSUBQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 95073*/          /*Scope*/ 9|128,2/*265*/, /*->95340*/
/* 95075*/            OPC_MoveParent,
/* 95076*/            OPC_SwitchType /*12 cases */, 40, MVT::v4i64,// ->95119
/* 95079*/              OPC_Scope, 18, /*->95099*/ // 2 children in Scope
/* 95081*/                OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/* 95083*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 95086*/                OPC_EmitMergeInputChains1_1,
/* 95087*/                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>>) - Complexity = 25
                          // Dst: (VPSUBQYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 95099*/              /*Scope*/ 18, /*->95118*/
/* 95100*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 95102*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 95105*/                OPC_EmitMergeInputChains1_1,
/* 95106*/                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>>) - Complexity = 25
                          // Dst: (VPSUBQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 95118*/              0, /*End of Scope*/
/* 95119*/            /*SwitchType*/ 18, MVT::v8i64,// ->95139
/* 95121*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 95123*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 95126*/              OPC_EmitMergeInputChains1_1,
/* 95127*/              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>>) - Complexity = 25
                        // Dst: (VPSUBQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 95139*/            /*SwitchType*/ 18, MVT::v2i64,// ->95159
/* 95141*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 95143*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 95146*/              OPC_EmitMergeInputChains1_1,
/* 95147*/              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>>) - Complexity = 25
                        // Dst: (VPSUBQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 95159*/            /*SwitchType*/ 18, MVT::v16i32,// ->95179
/* 95161*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 95163*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 95166*/              OPC_EmitMergeInputChains1_1,
/* 95167*/              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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VPSUBDZrm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 95179*/            /*SwitchType*/ 18, MVT::v8i32,// ->95199
/* 95181*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 95183*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 95186*/              OPC_EmitMergeInputChains1_1,
/* 95187*/              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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VPSUBDZ256rm:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 95199*/            /*SwitchType*/ 18, MVT::v4i32,// ->95219
/* 95201*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 95203*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 95206*/              OPC_EmitMergeInputChains1_1,
/* 95207*/              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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VPSUBDZ128rm:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 95219*/            /*SwitchType*/ 18, MVT::v32i16,// ->95239
/* 95221*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/* 95223*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 95226*/              OPC_EmitMergeInputChains1_1,
/* 95227*/              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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VPSUBWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 95239*/            /*SwitchType*/ 18, MVT::v16i16,// ->95259
/* 95241*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 95243*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 95246*/              OPC_EmitMergeInputChains1_1,
/* 95247*/              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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VPSUBWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 95259*/            /*SwitchType*/ 18, MVT::v8i16,// ->95279
/* 95261*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 95263*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 95266*/              OPC_EmitMergeInputChains1_1,
/* 95267*/              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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VPSUBWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 95279*/            /*SwitchType*/ 18, MVT::v64i8,// ->95299
/* 95281*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/* 95283*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 95286*/              OPC_EmitMergeInputChains1_1,
/* 95287*/              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, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VPSUBBZrm:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 95299*/            /*SwitchType*/ 18, MVT::v32i8,// ->95319
/* 95301*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 95303*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 95306*/              OPC_EmitMergeInputChains1_1,
/* 95307*/              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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VPSUBBZ256rm:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 95319*/            /*SwitchType*/ 18, MVT::v16i8,// ->95339
/* 95321*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 95323*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 95326*/              OPC_EmitMergeInputChains1_1,
/* 95327*/              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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VPSUBBZ128rm:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 95339*/            0, // EndSwitchType
/* 95340*/          0, /*End of Scope*/
/* 95341*/        /*SwitchOpcode*/ 10|128,1/*138*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->95483
/* 95345*/          OPC_RecordMemRef,
/* 95346*/          OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/* 95347*/          OPC_CheckFoldableChainNode,
/* 95348*/          OPC_RecordChild1, // #2 = $src2
/* 95349*/          OPC_Scope, 65, /*->95416*/ // 2 children in Scope
/* 95351*/            OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 95353*/            OPC_MoveParent,
/* 95354*/            OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->95375
/* 95357*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 95359*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 95362*/              OPC_EmitMergeInputChains1_1,
/* 95363*/              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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VPSUBQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 95375*/            /*SwitchType*/ 18, MVT::v4i64,// ->95395
/* 95377*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 95379*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 95382*/              OPC_EmitMergeInputChains1_1,
/* 95383*/              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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VPSUBQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 95395*/            /*SwitchType*/ 18, MVT::v2i64,// ->95415
/* 95397*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 95399*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 95402*/              OPC_EmitMergeInputChains1_1,
/* 95403*/              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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VPSUBQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 95415*/            0, // EndSwitchType
/* 95416*/          /*Scope*/ 65, /*->95482*/
/* 95417*/            OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/* 95419*/            OPC_MoveParent,
/* 95420*/            OPC_SwitchType /*3 cases */, 18, MVT::v16i32,// ->95441
/* 95423*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 95425*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 95428*/              OPC_EmitMergeInputChains1_1,
/* 95429*/              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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VPSUBDZrmb:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 95441*/            /*SwitchType*/ 18, MVT::v8i32,// ->95461
/* 95443*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 95445*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 95448*/              OPC_EmitMergeInputChains1_1,
/* 95449*/              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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VPSUBDZ256rmb:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 95461*/            /*SwitchType*/ 18, MVT::v4i32,// ->95481
/* 95463*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 95465*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 95468*/              OPC_EmitMergeInputChains1_1,
/* 95469*/              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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VPSUBDZ128rmb:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 95481*/            0, // EndSwitchType
/* 95482*/          0, /*End of Scope*/
/* 95483*/        0, // EndSwitchOpcode
/* 95484*/      /*Scope*/ 47|128,2/*303*/, /*->95789*/
/* 95486*/        OPC_RecordChild1, // #1 = $src2
/* 95487*/        OPC_SwitchType /*12 cases */, 35, MVT::v16i8,// ->95525
/* 95490*/          OPC_Scope, 10, /*->95502*/ // 3 children in Scope
/* 95492*/            OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/* 95494*/            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)
/* 95502*/          /*Scope*/ 10, /*->95513*/
/* 95503*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 95505*/            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)
/* 95513*/          /*Scope*/ 10, /*->95524*/
/* 95514*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 95516*/            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)
/* 95524*/          0, /*End of Scope*/
/* 95525*/        /*SwitchType*/ 24, MVT::v32i8,// ->95551
/* 95527*/          OPC_Scope, 10, /*->95539*/ // 2 children in Scope
/* 95529*/            OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/* 95531*/            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)
/* 95539*/          /*Scope*/ 10, /*->95550*/
/* 95540*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 95542*/            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)
/* 95550*/          0, /*End of Scope*/
/* 95551*/        /*SwitchType*/ 35, MVT::v8i16,// ->95588
/* 95553*/          OPC_Scope, 10, /*->95565*/ // 3 children in Scope
/* 95555*/            OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/* 95557*/            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)
/* 95565*/          /*Scope*/ 10, /*->95576*/
/* 95566*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 95568*/            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)
/* 95576*/          /*Scope*/ 10, /*->95587*/
/* 95577*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 95579*/            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)
/* 95587*/          0, /*End of Scope*/
/* 95588*/        /*SwitchType*/ 24, MVT::v16i16,// ->95614
/* 95590*/          OPC_Scope, 10, /*->95602*/ // 2 children in Scope
/* 95592*/            OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/* 95594*/            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)
/* 95602*/          /*Scope*/ 10, /*->95613*/
/* 95603*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/* 95605*/            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)
/* 95613*/          0, /*End of Scope*/
/* 95614*/        /*SwitchType*/ 35, MVT::v4i32,// ->95651
/* 95616*/          OPC_Scope, 10, /*->95628*/ // 3 children in Scope
/* 95618*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 95620*/            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)
/* 95628*/          /*Scope*/ 10, /*->95639*/
/* 95629*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 95631*/            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)
/* 95639*/          /*Scope*/ 10, /*->95650*/
/* 95640*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 95642*/            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)
/* 95650*/          0, /*End of Scope*/
/* 95651*/        /*SwitchType*/ 24, MVT::v8i32,// ->95677
/* 95653*/          OPC_Scope, 10, /*->95665*/ // 2 children in Scope
/* 95655*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/* 95657*/            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)
/* 95665*/          /*Scope*/ 10, /*->95676*/
/* 95666*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 95668*/            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)
/* 95676*/          0, /*End of Scope*/
/* 95677*/        /*SwitchType*/ 35, MVT::v2i64,// ->95714
/* 95679*/          OPC_Scope, 10, /*->95691*/ // 3 children in Scope
/* 95681*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 95683*/            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)
/* 95691*/          /*Scope*/ 10, /*->95702*/
/* 95692*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 95694*/            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)
/* 95702*/          /*Scope*/ 10, /*->95713*/
/* 95703*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 95705*/            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)
/* 95713*/          0, /*End of Scope*/
/* 95714*/        /*SwitchType*/ 24, MVT::v4i64,// ->95740
/* 95716*/          OPC_Scope, 10, /*->95728*/ // 2 children in Scope
/* 95718*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/* 95720*/            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)
/* 95728*/          /*Scope*/ 10, /*->95739*/
/* 95729*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 95731*/            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)
/* 95739*/          0, /*End of Scope*/
/* 95740*/        /*SwitchType*/ 10, MVT::v8i64,// ->95752
/* 95742*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 95744*/          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)
/* 95752*/        /*SwitchType*/ 10, MVT::v16i32,// ->95764
/* 95754*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 95756*/          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)
/* 95764*/        /*SwitchType*/ 10, MVT::v32i16,// ->95776
/* 95766*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/* 95768*/          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)
/* 95776*/        /*SwitchType*/ 10, MVT::v64i8,// ->95788
/* 95778*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/* 95780*/          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)
/* 95788*/        0, // EndSwitchType
/* 95789*/      0, /*End of Scope*/
/* 95790*/    0, /*End of Scope*/
/* 95791*/  /*SwitchOpcode*/ 92|128,43/*5596*/, TARGET_VAL(ISD::OR),// ->101391
/* 95795*/    OPC_Scope, 105, /*->95902*/ // 16 children in Scope
/* 95797*/      OPC_RecordChild0, // #0 = $src1
/* 95798*/      OPC_MoveChild1,
/* 95799*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 95802*/      OPC_RecordMemRef,
/* 95803*/      OPC_RecordNode, // #1 = 'ld' chained node
/* 95804*/      OPC_CheckFoldableChainNode,
/* 95805*/      OPC_RecordChild1, // #2 = $src2
/* 95806*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 95808*/      OPC_Scope, 22, /*->95832*/ // 4 children in Scope
/* 95810*/        OPC_CheckPredicate, 5, // Predicate_loadi8
/* 95812*/        OPC_MoveParent,
/* 95813*/        OPC_CheckType, MVT::i8,
/* 95815*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 95818*/        OPC_EmitMergeInputChains1_1,
/* 95819*/        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)
/* 95832*/      /*Scope*/ 22, /*->95855*/
/* 95833*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 95835*/        OPC_MoveParent,
/* 95836*/        OPC_CheckType, MVT::i16,
/* 95838*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 95841*/        OPC_EmitMergeInputChains1_1,
/* 95842*/        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)
/* 95855*/      /*Scope*/ 22, /*->95878*/
/* 95856*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 95858*/        OPC_MoveParent,
/* 95859*/        OPC_CheckType, MVT::i32,
/* 95861*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 95864*/        OPC_EmitMergeInputChains1_1,
/* 95865*/        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)
/* 95878*/      /*Scope*/ 22, /*->95901*/
/* 95879*/        OPC_CheckPredicate, 9, // Predicate_load
/* 95881*/        OPC_MoveParent,
/* 95882*/        OPC_CheckType, MVT::i64,
/* 95884*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 95887*/        OPC_EmitMergeInputChains1_1,
/* 95888*/        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)
/* 95901*/      0, /*End of Scope*/
/* 95902*/    /*Scope*/ 108, /*->96011*/
/* 95903*/      OPC_MoveChild0,
/* 95904*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 95907*/      OPC_RecordMemRef,
/* 95908*/      OPC_RecordNode, // #0 = 'ld' chained node
/* 95909*/      OPC_CheckFoldableChainNode,
/* 95910*/      OPC_RecordChild1, // #1 = $src2
/* 95911*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 95913*/      OPC_Scope, 23, /*->95938*/ // 4 children in Scope
/* 95915*/        OPC_CheckPredicate, 5, // Predicate_loadi8
/* 95917*/        OPC_MoveParent,
/* 95918*/        OPC_RecordChild1, // #2 = $src1
/* 95919*/        OPC_CheckType, MVT::i8,
/* 95921*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 95924*/        OPC_EmitMergeInputChains1_0,
/* 95925*/        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)
/* 95938*/      /*Scope*/ 23, /*->95962*/
/* 95939*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/* 95941*/        OPC_MoveParent,
/* 95942*/        OPC_RecordChild1, // #2 = $src1
/* 95943*/        OPC_CheckType, MVT::i16,
/* 95945*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 95948*/        OPC_EmitMergeInputChains1_0,
/* 95949*/        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)
/* 95962*/      /*Scope*/ 23, /*->95986*/
/* 95963*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/* 95965*/        OPC_MoveParent,
/* 95966*/        OPC_RecordChild1, // #2 = $src1
/* 95967*/        OPC_CheckType, MVT::i32,
/* 95969*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 95972*/        OPC_EmitMergeInputChains1_0,
/* 95973*/        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)
/* 95986*/      /*Scope*/ 23, /*->96010*/
/* 95987*/        OPC_CheckPredicate, 9, // Predicate_load
/* 95989*/        OPC_MoveParent,
/* 95990*/        OPC_RecordChild1, // #2 = $src1
/* 95991*/        OPC_CheckType, MVT::i64,
/* 95993*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 95996*/        OPC_EmitMergeInputChains1_0,
/* 95997*/        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)
/* 96010*/      0, /*End of Scope*/
/* 96011*/    /*Scope*/ 52, /*->96064*/
/* 96012*/      OPC_RecordChild0, // #0 = $src
/* 96013*/      OPC_MoveChild1,
/* 96014*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 96017*/      OPC_MoveChild0,
/* 96018*/      OPC_CheckOpcode, TARGET_VAL(ISD::ADD),
/* 96021*/      OPC_CheckChild0Same, 0,
/* 96023*/      OPC_CheckChild1Integer, 1, 
/* 96025*/      OPC_MoveParent,
/* 96026*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 96037*/      OPC_MoveParent,
/* 96038*/      OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->96051
/* 96041*/        OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 96043*/        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)
/* 96051*/      /*SwitchType*/ 10, MVT::i64,// ->96063
/* 96053*/        OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 96055*/        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)
/* 96063*/      0, // EndSwitchType
/* 96064*/    /*Scope*/ 4|128,2/*260*/, /*->96326*/
/* 96066*/      OPC_MoveChild0,
/* 96067*/      OPC_SwitchOpcode /*2 cases */, 14|128,1/*142*/, TARGET_VAL(ISD::XOR),// ->96214
/* 96072*/        OPC_Scope, 90, /*->96164*/ // 2 children in Scope
/* 96074*/          OPC_RecordChild0, // #0 = $src
/* 96075*/          OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 96086*/          OPC_MoveParent,
/* 96087*/          OPC_MoveChild1,
/* 96088*/          OPC_CheckOpcode, TARGET_VAL(ISD::ADD),
/* 96091*/          OPC_CheckChild0Same, 0,
/* 96093*/          OPC_Scope, 38, /*->96133*/ // 2 children in Scope
/* 96095*/            OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 96106*/            OPC_MoveParent,
/* 96107*/            OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->96120
/* 96110*/              OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 96112*/              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)
/* 96120*/            /*SwitchType*/ 10, MVT::i64,// ->96132
/* 96122*/              OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 96124*/              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)
/* 96132*/            0, // EndSwitchType
/* 96133*/          /*Scope*/ 29, /*->96163*/
/* 96134*/            OPC_CheckChild1Integer, 1, 
/* 96136*/            OPC_MoveParent,
/* 96137*/            OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->96150
/* 96140*/              OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 96142*/              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)
/* 96150*/            /*SwitchType*/ 10, MVT::i64,// ->96162
/* 96152*/              OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 96154*/              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)
/* 96162*/            0, // EndSwitchType
/* 96163*/          0, /*End of Scope*/
/* 96164*/        /*Scope*/ 48, /*->96213*/
/* 96165*/          OPC_MoveChild0,
/* 96166*/          OPC_CheckOpcode, TARGET_VAL(ISD::ADD),
/* 96169*/          OPC_RecordChild0, // #0 = $src
/* 96170*/          OPC_CheckChild1Integer, 1, 
/* 96172*/          OPC_MoveParent,
/* 96173*/          OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 96184*/          OPC_MoveParent,
/* 96185*/          OPC_CheckChild1Same, 0,
/* 96187*/          OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->96200
/* 96190*/            OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 96192*/            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)
/* 96200*/          /*SwitchType*/ 10, MVT::i64,// ->96212
/* 96202*/            OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 96204*/            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)
/* 96212*/          0, // EndSwitchType
/* 96213*/        0, /*End of Scope*/
/* 96214*/      /*SwitchOpcode*/ 108, TARGET_VAL(ISD::ADD),// ->96325
/* 96217*/        OPC_RecordChild0, // #0 = $src
/* 96218*/        OPC_Scope, 56, /*->96276*/ // 2 children in Scope
/* 96220*/          OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 96231*/          OPC_MoveParent,
/* 96232*/          OPC_MoveChild1,
/* 96233*/          OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 96236*/          OPC_CheckChild0Same, 0,
/* 96238*/          OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 96249*/          OPC_MoveParent,
/* 96250*/          OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->96263
/* 96253*/            OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 96255*/            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)
/* 96263*/          /*SwitchType*/ 10, MVT::i64,// ->96275
/* 96265*/            OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 96267*/            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)
/* 96275*/          0, // EndSwitchType
/* 96276*/        /*Scope*/ 47, /*->96324*/
/* 96277*/          OPC_CheckChild1Integer, 1, 
/* 96279*/          OPC_MoveParent,
/* 96280*/          OPC_MoveChild1,
/* 96281*/          OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/* 96284*/          OPC_CheckChild0Same, 0,
/* 96286*/          OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 96297*/          OPC_MoveParent,
/* 96298*/          OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->96311
/* 96301*/            OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 96303*/            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)
/* 96311*/          /*SwitchType*/ 10, MVT::i64,// ->96323
/* 96313*/            OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 96315*/            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)
/* 96323*/          0, // EndSwitchType
/* 96324*/        0, /*End of Scope*/
/* 96325*/      0, // EndSwitchOpcode
/* 96326*/    /*Scope*/ 57, /*->96384*/
/* 96327*/      OPC_RecordNode, // #0 = $src
/* 96328*/      OPC_SwitchType /*2 cases */, 36, MVT::i32,// ->96367
/* 96331*/        OPC_Scope, 16, /*->96349*/ // 2 children in Scope
/* 96333*/          OPC_CheckPatternPredicate, 99, // (!Subtarget->is64Bit())
/* 96335*/          OPC_CheckComplexPat, /*CP*/4, /*#*/0, // selectLEAAddr:$src #1 #2 #3 #4 #5
/* 96338*/          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)
/* 96349*/        /*Scope*/ 16, /*->96366*/
/* 96350*/          OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/* 96352*/          OPC_CheckComplexPat, /*CP*/5, /*#*/0, // selectLEA64_32Addr:$src #1 #2 #3 #4 #5
/* 96355*/          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)
/* 96366*/        0, /*End of Scope*/
/* 96367*/      /*SwitchType*/ 14, MVT::i64,// ->96383
/* 96369*/        OPC_CheckComplexPat, /*CP*/6, /*#*/0, // selectLEAAddr:$src #1 #2 #3 #4 #5
/* 96372*/        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)
/* 96383*/      0, // EndSwitchType
/* 96384*/    /*Scope*/ 123, /*->96508*/
/* 96385*/      OPC_RecordChild0, // #0 = $src1
/* 96386*/      OPC_MoveChild1,
/* 96387*/      OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/* 96390*/      OPC_CheckChild0Integer, 1, 
/* 96392*/      OPC_MoveChild1,
/* 96393*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 96396*/      OPC_RecordChild0, // #1 = $src2
/* 96397*/      OPC_MoveChild1,
/* 96398*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 96401*/      OPC_MoveParent,
/* 96402*/      OPC_CheckType, MVT::i8,
/* 96404*/      OPC_Scope, 33, /*->96439*/ // 3 children in Scope
/* 96406*/        OPC_CheckPredicate, 12, // Predicate_shiftMask16
/* 96408*/        OPC_MoveParent,
/* 96409*/        OPC_MoveParent,
/* 96410*/        OPC_CheckType, MVT::i16,
/* 96412*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i16, 0/*#Ops*/,  // Results = #2
/* 96418*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 96421*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i16, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/* 96430*/        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_shiftMask16>>)) - Complexity = 18
                  // Dst: (BTS16rr:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, (INSERT_SUBREG:{ *:[i16] } (IMPLICIT_DEF:{ *:[i16] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/* 96439*/      /*Scope*/ 33, /*->96473*/
/* 96440*/        OPC_CheckPredicate, 6, // Predicate_shiftMask32
/* 96442*/        OPC_MoveParent,
/* 96443*/        OPC_MoveParent,
/* 96444*/        OPC_CheckType, MVT::i32,
/* 96446*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i32, 0/*#Ops*/,  // Results = #2
/* 96452*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 96455*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i32, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/* 96464*/        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_shiftMask32>>)) - Complexity = 18
                  // Dst: (BTS32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/* 96473*/      /*Scope*/ 33, /*->96507*/
/* 96474*/        OPC_CheckPredicate, 10, // Predicate_shiftMask64
/* 96476*/        OPC_MoveParent,
/* 96477*/        OPC_MoveParent,
/* 96478*/        OPC_CheckType, MVT::i64,
/* 96480*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i64, 0/*#Ops*/,  // Results = #2
/* 96486*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 96489*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i64, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/* 96498*/        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_shiftMask64>>)) - Complexity = 18
                  // Dst: (BTS64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/* 96507*/      0, /*End of Scope*/
/* 96508*/    /*Scope*/ 125, /*->96634*/
/* 96509*/      OPC_MoveChild0,
/* 96510*/      OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/* 96513*/      OPC_CheckChild0Integer, 1, 
/* 96515*/      OPC_MoveChild1,
/* 96516*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 96519*/      OPC_RecordChild0, // #0 = $src2
/* 96520*/      OPC_MoveChild1,
/* 96521*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 96524*/      OPC_MoveParent,
/* 96525*/      OPC_CheckType, MVT::i8,
/* 96527*/      OPC_Scope, 34, /*->96563*/ // 3 children in Scope
/* 96529*/        OPC_CheckPredicate, 12, // Predicate_shiftMask16
/* 96531*/        OPC_MoveParent,
/* 96532*/        OPC_MoveParent,
/* 96533*/        OPC_RecordChild1, // #1 = $src1
/* 96534*/        OPC_CheckType, MVT::i16,
/* 96536*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i16, 0/*#Ops*/,  // Results = #2
/* 96542*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 96545*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i16, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 96554*/        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_shiftMask16>>), GR16:{ *:[i16] }:$src1) - Complexity = 18
                  // Dst: (BTS16rr:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, (INSERT_SUBREG:{ *:[i16] } (IMPLICIT_DEF:{ *:[i16] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/* 96563*/      /*Scope*/ 34, /*->96598*/
/* 96564*/        OPC_CheckPredicate, 6, // Predicate_shiftMask32
/* 96566*/        OPC_MoveParent,
/* 96567*/        OPC_MoveParent,
/* 96568*/        OPC_RecordChild1, // #1 = $src1
/* 96569*/        OPC_CheckType, MVT::i32,
/* 96571*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i32, 0/*#Ops*/,  // Results = #2
/* 96577*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 96580*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i32, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 96589*/        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_shiftMask32>>), GR32:{ *:[i32] }:$src1) - Complexity = 18
                  // Dst: (BTS32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/* 96598*/      /*Scope*/ 34, /*->96633*/
/* 96599*/        OPC_CheckPredicate, 10, // Predicate_shiftMask64
/* 96601*/        OPC_MoveParent,
/* 96602*/        OPC_MoveParent,
/* 96603*/        OPC_RecordChild1, // #1 = $src1
/* 96604*/        OPC_CheckType, MVT::i64,
/* 96606*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i64, 0/*#Ops*/,  // Results = #2
/* 96612*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 96615*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 96624*/        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_shiftMask64>>), GR64:{ *:[i64] }:$src1) - Complexity = 18
                  // Dst: (BTS64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/* 96633*/      0, /*End of Scope*/
/* 96634*/    /*Scope*/ 123, /*->96758*/
/* 96635*/      OPC_RecordChild0, // #0 = $src
/* 96636*/      OPC_MoveChild1,
/* 96637*/      OPC_SwitchOpcode /*2 cases */, 40, TARGET_VAL(ISD::SUB),// ->96681
/* 96641*/        OPC_CheckChild0Integer, 126|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551614*/, 
/* 96652*/        OPC_CheckChild1Same, 0,
/* 96654*/        OPC_MoveParent,
/* 96655*/        OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->96668
/* 96658*/          OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 96660*/          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)
/* 96668*/        /*SwitchType*/ 10, MVT::i64,// ->96680
/* 96670*/          OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 96672*/          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)
/* 96680*/        0, // EndSwitchType
/* 96681*/      /*SwitchOpcode*/ 73, TARGET_VAL(ISD::ADD),// ->96757
/* 96684*/        OPC_CheckChild0Same, 0,
/* 96686*/        OPC_Scope, 29, /*->96717*/ // 2 children in Scope
/* 96688*/          OPC_CheckChild1Integer, 1, 
/* 96690*/          OPC_MoveParent,
/* 96691*/          OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->96704
/* 96694*/            OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 96696*/            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)
/* 96704*/          /*SwitchType*/ 10, MVT::i64,// ->96716
/* 96706*/            OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 96708*/            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)
/* 96716*/          0, // EndSwitchType
/* 96717*/        /*Scope*/ 38, /*->96756*/
/* 96718*/          OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 96729*/          OPC_MoveParent,
/* 96730*/          OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->96743
/* 96733*/            OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 96735*/            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)
/* 96743*/          /*SwitchType*/ 10, MVT::i64,// ->96755
/* 96745*/            OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 96747*/            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)
/* 96755*/          0, // EndSwitchType
/* 96756*/        0, /*End of Scope*/
/* 96757*/      0, // EndSwitchOpcode
/* 96758*/    /*Scope*/ 126, /*->96885*/
/* 96759*/      OPC_MoveChild0,
/* 96760*/      OPC_SwitchOpcode /*2 cases */, 41, TARGET_VAL(ISD::SUB),// ->96805
/* 96764*/        OPC_CheckChild0Integer, 126|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551614*/, 
/* 96775*/        OPC_RecordChild1, // #0 = $src
/* 96776*/        OPC_MoveParent,
/* 96777*/        OPC_CheckChild1Same, 0,
/* 96779*/        OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->96792
/* 96782*/          OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 96784*/          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)
/* 96792*/        /*SwitchType*/ 10, MVT::i64,// ->96804
/* 96794*/          OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 96796*/          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)
/* 96804*/        0, // EndSwitchType
/* 96805*/      /*SwitchOpcode*/ 76, TARGET_VAL(ISD::ADD),// ->96884
/* 96808*/        OPC_RecordChild0, // #0 = $src
/* 96809*/        OPC_Scope, 31, /*->96842*/ // 2 children in Scope
/* 96811*/          OPC_CheckChild1Integer, 1, 
/* 96813*/          OPC_MoveParent,
/* 96814*/          OPC_CheckChild1Same, 0,
/* 96816*/          OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->96829
/* 96819*/            OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 96821*/            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)
/* 96829*/          /*SwitchType*/ 10, MVT::i64,// ->96841
/* 96831*/            OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 96833*/            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)
/* 96841*/          0, // EndSwitchType
/* 96842*/        /*Scope*/ 40, /*->96883*/
/* 96843*/          OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/* 96854*/          OPC_MoveParent,
/* 96855*/          OPC_CheckChild1Same, 0,
/* 96857*/          OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->96870
/* 96860*/            OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 96862*/            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)
/* 96870*/          /*SwitchType*/ 10, MVT::i64,// ->96882
/* 96872*/            OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/* 96874*/            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)
/* 96882*/          0, // EndSwitchType
/* 96883*/        0, /*End of Scope*/
/* 96884*/      0, // EndSwitchOpcode
/* 96885*/    /*Scope*/ 100, /*->96986*/
/* 96886*/      OPC_RecordChild0, // #0 = $src1
/* 96887*/      OPC_MoveChild1,
/* 96888*/      OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/* 96891*/      OPC_CheckChild0Integer, 1, 
/* 96893*/      OPC_RecordChild1, // #1 = $src2
/* 96894*/      OPC_CheckChild1Type, MVT::i8,
/* 96896*/      OPC_MoveParent,
/* 96897*/      OPC_SwitchType /*3 cases */, 27, MVT::i16,// ->96927
/* 96900*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i16, 0/*#Ops*/,  // Results = #2
/* 96906*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 96909*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i16, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/* 96918*/        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] }))
/* 96927*/      /*SwitchType*/ 27, MVT::i32,// ->96956
/* 96929*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i32, 0/*#Ops*/,  // Results = #2
/* 96935*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 96938*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i32, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/* 96947*/        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] }))
/* 96956*/      /*SwitchType*/ 27, MVT::i64,// ->96985
/* 96958*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i64, 0/*#Ops*/,  // Results = #2
/* 96964*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 96967*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i64, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/* 96976*/        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] }))
/* 96985*/      0, // EndSwitchType
/* 96986*/    /*Scope*/ 100, /*->97087*/
/* 96987*/      OPC_MoveChild0,
/* 96988*/      OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/* 96991*/      OPC_CheckChild0Integer, 1, 
/* 96993*/      OPC_RecordChild1, // #0 = $src2
/* 96994*/      OPC_CheckChild1Type, MVT::i8,
/* 96996*/      OPC_MoveParent,
/* 96997*/      OPC_RecordChild1, // #1 = $src1
/* 96998*/      OPC_SwitchType /*3 cases */, 27, MVT::i16,// ->97028
/* 97001*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i16, 0/*#Ops*/,  // Results = #2
/* 97007*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 97010*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i16, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 97019*/        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] }))
/* 97028*/      /*SwitchType*/ 27, MVT::i32,// ->97057
/* 97030*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i32, 0/*#Ops*/,  // Results = #2
/* 97036*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 97039*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i32, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 97048*/        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] }))
/* 97057*/      /*SwitchType*/ 27, MVT::i64,// ->97086
/* 97059*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i64, 0/*#Ops*/,  // Results = #2
/* 97065*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/* 97068*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/* 97077*/        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] }))
/* 97086*/      0, // EndSwitchType
/* 97087*/    /*Scope*/ 107|128,2/*363*/, /*->97452*/
/* 97089*/      OPC_RecordChild0, // #0 = $src1
/* 97090*/      OPC_RecordChild1, // #1 = $src2
/* 97091*/      OPC_Scope, 4|128,2/*260*/, /*->97354*/ // 6 children in Scope
/* 97094*/        OPC_MoveChild1,
/* 97095*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/* 97098*/        OPC_Scope, 18, /*->97118*/ // 11 children in Scope
/* 97100*/          OPC_CheckPredicate, 13, // Predicate_i16immSExt8
/* 97102*/          OPC_MoveParent,
/* 97103*/          OPC_CheckPredicate, 60, // Predicate_or_is_add
/* 97105*/          OPC_CheckType, MVT::i16,
/* 97107*/          OPC_EmitConvertToTarget, 1,
/* 97109*/          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 = 8
                    // Dst: (ADD16ri8_DB:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, (imm:{ *:[i16] }):$src2)
/* 97118*/        /*Scope*/ 18, /*->97137*/
/* 97119*/          OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/* 97121*/          OPC_MoveParent,
/* 97122*/          OPC_CheckPredicate, 60, // Predicate_or_is_add
/* 97124*/          OPC_CheckType, MVT::i32,
/* 97126*/          OPC_EmitConvertToTarget, 1,
/* 97128*/          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 = 8
                    // Dst: (ADD32ri8_DB:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, (imm:{ *:[i32] }):$src2)
/* 97137*/        /*Scope*/ 18, /*->97156*/
/* 97138*/          OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/* 97140*/          OPC_MoveParent,
/* 97141*/          OPC_CheckPredicate, 60, // Predicate_or_is_add
/* 97143*/          OPC_CheckType, MVT::i64,
/* 97145*/          OPC_EmitConvertToTarget, 1,
/* 97147*/          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 = 8
                    // Dst: (ADD64ri8_DB:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] }):$src2)
/* 97156*/        /*Scope*/ 18, /*->97175*/
/* 97157*/          OPC_CheckPredicate, 38, // Predicate_i64immSExt32
/* 97159*/          OPC_MoveParent,
/* 97160*/          OPC_CheckPredicate, 60, // Predicate_or_is_add
/* 97162*/          OPC_CheckType, MVT::i64,
/* 97164*/          OPC_EmitConvertToTarget, 1,
/* 97166*/          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 = 8
                    // Dst: (ADD64ri32_DB:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (imm:{ *:[i64] }):$src2)
/* 97175*/        /*Scope*/ 21, /*->97197*/
/* 97176*/          OPC_CheckPredicate, 61, // Predicate_BTCBTSMask64
/* 97178*/          OPC_MoveParent,
/* 97179*/          OPC_CheckType, MVT::i64,
/* 97181*/          OPC_CheckPatternPredicate, 111, // (shouldOptForSize(MF))
/* 97183*/          OPC_EmitConvertToTarget, 1,
/* 97185*/          OPC_EmitNodeXForm, 13, 2, // BTCBTSXForm
/* 97188*/          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))
/* 97197*/        /*Scope*/ 44, /*->97242*/
/* 97198*/          OPC_MoveParent,
/* 97199*/          OPC_CheckPredicate, 60, // Predicate_or_is_add
/* 97201*/          OPC_SwitchType /*3 cases */, 11, MVT::i8,// ->97215
/* 97204*/            OPC_EmitConvertToTarget, 1,
/* 97206*/            OPC_MorphNodeTo2, TARGET_VAL(X86::ADD8ri_DB), 0,
                          MVT::i8, MVT::i32, 2/*#Ops*/, 0, 2, 
                      // Src: (or:{ *:[i8] } GR8:{ *:[i8] }:$src1, (imm:{ *:[i8] }):$src2)<<P:Predicate_or_is_add>> - Complexity = 7
                      // Dst: (ADD8ri_DB:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1, (imm:{ *:[i8] }):$src2)
/* 97215*/          /*SwitchType*/ 11, MVT::i16,// ->97228
/* 97217*/            OPC_EmitConvertToTarget, 1,
/* 97219*/            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 = 7
                      // Dst: (ADD16ri_DB:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, (imm:{ *:[i16] }):$src2)
/* 97228*/          /*SwitchType*/ 11, MVT::i32,// ->97241
/* 97230*/            OPC_EmitConvertToTarget, 1,
/* 97232*/            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 = 7
                      // Dst: (ADD32ri_DB:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, (imm:{ *:[i32] }):$src2)
/* 97241*/          0, // EndSwitchType
/* 97242*/        /*Scope*/ 16, /*->97259*/
/* 97243*/          OPC_CheckPredicate, 13, // Predicate_i16immSExt8
/* 97245*/          OPC_MoveParent,
/* 97246*/          OPC_CheckType, MVT::i16,
/* 97248*/          OPC_EmitConvertToTarget, 1,
/* 97250*/          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)
/* 97259*/        /*Scope*/ 16, /*->97276*/
/* 97260*/          OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/* 97262*/          OPC_MoveParent,
/* 97263*/          OPC_CheckType, MVT::i32,
/* 97265*/          OPC_EmitConvertToTarget, 1,
/* 97267*/          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)
/* 97276*/        /*Scope*/ 16, /*->97293*/
/* 97277*/          OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/* 97279*/          OPC_MoveParent,
/* 97280*/          OPC_CheckType, MVT::i64,
/* 97282*/          OPC_EmitConvertToTarget, 1,
/* 97284*/          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)
/* 97293*/        /*Scope*/ 16, /*->97310*/
/* 97294*/          OPC_CheckPredicate, 38, // Predicate_i64immSExt32
/* 97296*/          OPC_MoveParent,
/* 97297*/          OPC_CheckType, MVT::i64,
/* 97299*/          OPC_EmitConvertToTarget, 1,
/* 97301*/          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)
/* 97310*/        /*Scope*/ 42, /*->97353*/
/* 97311*/          OPC_MoveParent,
/* 97312*/          OPC_SwitchType /*3 cases */, 11, MVT::i8,// ->97326
/* 97315*/            OPC_EmitConvertToTarget, 1,
/* 97317*/            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)
/* 97326*/          /*SwitchType*/ 11, MVT::i16,// ->97339
/* 97328*/            OPC_EmitConvertToTarget, 1,
/* 97330*/            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)
/* 97339*/          /*SwitchType*/ 11, MVT::i32,// ->97352
/* 97341*/            OPC_EmitConvertToTarget, 1,
/* 97343*/            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)
/* 97352*/          0, // EndSwitchType
/* 97353*/        0, /*End of Scope*/
/* 97354*/      /*Scope*/ 48, /*->97403*/
/* 97355*/        OPC_CheckPredicate, 60, // Predicate_or_is_add
/* 97357*/        OPC_SwitchType /*4 cases */, 9, MVT::i8,// ->97369
/* 97360*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADD8rr_DB), 0,
                        MVT::i8, MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (or:{ *:[i8] } GR8:{ *:[i8] }:$src1, GR8:{ *:[i8] }:$src2)<<P:Predicate_or_is_add>> - Complexity = 4
                    // Dst: (ADD8rr_DB:{ *:[i8] }:{ *:[i32] } GR8:{ *:[i8] }:$src1, GR8:{ *:[i8] }:$src2)
/* 97369*/        /*SwitchType*/ 9, MVT::i16,// ->97380
/* 97371*/          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 = 4
                    // Dst: (ADD16rr_DB:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, GR16:{ *:[i16] }:$src2)
/* 97380*/        /*SwitchType*/ 9, MVT::i32,// ->97391
/* 97382*/          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 = 4
                    // Dst: (ADD32rr_DB:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, GR32:{ *:[i32] }:$src2)
/* 97391*/        /*SwitchType*/ 9, MVT::i64,// ->97402
/* 97393*/          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 = 4
                    // Dst: (ADD64rr_DB:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, GR64:{ *:[i64] }:$src2)
/* 97402*/        0, // EndSwitchType
/* 97403*/      /*Scope*/ 11, /*->97415*/
/* 97404*/        OPC_CheckType, MVT::i8,
/* 97406*/        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)
/* 97415*/      /*Scope*/ 11, /*->97427*/
/* 97416*/        OPC_CheckType, MVT::i16,
/* 97418*/        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)
/* 97427*/      /*Scope*/ 11, /*->97439*/
/* 97428*/        OPC_CheckType, MVT::i32,
/* 97430*/        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)
/* 97439*/      /*Scope*/ 11, /*->97451*/
/* 97440*/        OPC_CheckType, MVT::i64,
/* 97442*/        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)
/* 97451*/      0, /*End of Scope*/
/* 97452*/    /*Scope*/ 37|128,10/*1317*/, /*->98771*/
/* 97454*/      OPC_MoveChild0,
/* 97455*/      OPC_SwitchOpcode /*2 cases */, 122|128,4/*634*/, TARGET_VAL(ISD::AND),// ->98094
/* 97460*/        OPC_Scope, 85, /*->97547*/ // 2 children in Scope
/* 97462*/          OPC_MoveChild0,
/* 97463*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 97466*/          OPC_RecordMemRef,
/* 97467*/          OPC_RecordNode, // #0 = 'ld' chained node
/* 97468*/          OPC_CheckFoldableChainNode,
/* 97469*/          OPC_RecordChild1, // #1 = $src3
/* 97470*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 97472*/          OPC_CheckPredicate, 9, // Predicate_load
/* 97474*/          OPC_MoveParent,
/* 97475*/          OPC_RecordChild1, // #2 = $src1
/* 97476*/          OPC_MoveParent,
/* 97477*/          OPC_MoveChild1,
/* 97478*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::ANDNP),
/* 97481*/          OPC_MoveChild0,
/* 97482*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 97485*/          OPC_RecordMemRef,
/* 97486*/          OPC_RecordNode, // #3 = 'ld' chained node
/* 97487*/          OPC_CheckFoldableChainNode,
/* 97488*/          OPC_CheckChild1Same, 1,
/* 97490*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 97492*/          OPC_CheckPredicate, 9, // Predicate_load
/* 97494*/          OPC_MoveParent,
/* 97495*/          OPC_RecordChild1, // #4 = $src2
/* 97496*/          OPC_MoveParent,
/* 97497*/          OPC_SwitchType /*2 cases */, 22, MVT::v2i64,// ->97522
/* 97500*/            OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 97502*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #5 #6 #7 #8 #9
/* 97505*/            OPC_EmitMergeInputChains, 2, 0, 3, 
/* 97509*/            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)
/* 97522*/          /*SwitchType*/ 22, MVT::v4i64,// ->97546
/* 97524*/            OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 97526*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #5 #6 #7 #8 #9
/* 97529*/            OPC_EmitMergeInputChains, 2, 0, 3, 
/* 97533*/            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)
/* 97546*/          0, // EndSwitchType
/* 97547*/        /*Scope*/ 32|128,4/*544*/, /*->98093*/
/* 97549*/          OPC_RecordChild0, // #0 = $src1
/* 97550*/          OPC_Scope, 84, /*->97636*/ // 2 children in Scope
/* 97552*/            OPC_MoveChild1,
/* 97553*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 97556*/            OPC_RecordMemRef,
/* 97557*/            OPC_RecordNode, // #1 = 'ld' chained node
/* 97558*/            OPC_CheckFoldableChainNode,
/* 97559*/            OPC_RecordChild1, // #2 = $src3
/* 97560*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 97562*/            OPC_CheckPredicate, 9, // Predicate_load
/* 97564*/            OPC_MoveParent,
/* 97565*/            OPC_MoveParent,
/* 97566*/            OPC_MoveChild1,
/* 97567*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::ANDNP),
/* 97570*/            OPC_MoveChild0,
/* 97571*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 97574*/            OPC_RecordMemRef,
/* 97575*/            OPC_RecordNode, // #3 = 'ld' chained node
/* 97576*/            OPC_CheckFoldableChainNode,
/* 97577*/            OPC_CheckChild1Same, 2,
/* 97579*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 97581*/            OPC_CheckPredicate, 9, // Predicate_load
/* 97583*/            OPC_MoveParent,
/* 97584*/            OPC_RecordChild1, // #4 = $src2
/* 97585*/            OPC_MoveParent,
/* 97586*/            OPC_SwitchType /*2 cases */, 22, MVT::v2i64,// ->97611
/* 97589*/              OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 97591*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/* 97594*/              OPC_EmitMergeInputChains, 2, 1, 3, 
/* 97598*/              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)
/* 97611*/            /*SwitchType*/ 22, MVT::v4i64,// ->97635
/* 97613*/              OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 97615*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/* 97618*/              OPC_EmitMergeInputChains, 2, 1, 3, 
/* 97622*/              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)
/* 97635*/            0, // EndSwitchType
/* 97636*/          /*Scope*/ 70|128,3/*454*/, /*->98092*/
/* 97638*/            OPC_RecordChild1, // #1 = $src1
/* 97639*/            OPC_MoveParent,
/* 97640*/            OPC_MoveChild1,
/* 97641*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::ANDNP),
/* 97644*/            OPC_Scope, 32|128,1/*160*/, /*->97807*/ // 4 children in Scope
/* 97647*/              OPC_CheckChild0Same, 0,
/* 97649*/              OPC_MoveChild1,
/* 97650*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 97653*/              OPC_MoveChild0,
/* 97654*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 97657*/              OPC_RecordMemRef,
/* 97658*/              OPC_RecordNode, // #2 = 'ld' chained node
/* 97659*/              OPC_CheckFoldableChainNode,
/* 97660*/              OPC_RecordChild1, // #3 = $src2
/* 97661*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 97663*/              OPC_CheckPredicate, 9, // Predicate_load
/* 97665*/              OPC_SwitchType /*2 cases */, 68, MVT::v2i64,// ->97736
/* 97668*/                OPC_MoveParent,
/* 97669*/                OPC_MoveParent,
/* 97670*/                OPC_MoveParent,
/* 97671*/                OPC_SwitchType /*3 cases */, 19, MVT::v16i8,// ->97693
/* 97674*/                  OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 97676*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 97679*/                  OPC_EmitMergeInputChains1_2,
/* 97680*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVrmr), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i8, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 0, 
                            // Src: (or:{ *:[v16i8] } (and:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src3, VR128:{ *:[v16i8] }:$src1), (X86andnp:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src3, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 34
                            // Dst: (VPCMOVrmr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v16i8] }:$src3)
/* 97693*/                /*SwitchType*/ 19, MVT::v8i16,// ->97714
/* 97695*/                  OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 97697*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 97700*/                  OPC_EmitMergeInputChains1_2,
/* 97701*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVrmr), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i16, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 0, 
                            // Src: (or:{ *:[v8i16] } (and:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src3, VR128:{ *:[v8i16] }:$src1), (X86andnp:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src3, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 34
                            // Dst: (VPCMOVrmr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v8i16] }:$src3)
/* 97714*/                /*SwitchType*/ 19, MVT::v4i32,// ->97735
/* 97716*/                  OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 97718*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 97721*/                  OPC_EmitMergeInputChains1_2,
/* 97722*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVrmr), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 0, 
                            // Src: (or:{ *:[v4i32] } (and:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src3, VR128:{ *:[v4i32] }:$src1), (X86andnp:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src3, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 34
                            // Dst: (VPCMOVrmr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v4i32] }:$src3)
/* 97735*/                0, // EndSwitchType
/* 97736*/              /*SwitchType*/ 68, MVT::v4i64,// ->97806
/* 97738*/                OPC_MoveParent,
/* 97739*/                OPC_MoveParent,
/* 97740*/                OPC_MoveParent,
/* 97741*/                OPC_SwitchType /*3 cases */, 19, MVT::v32i8,// ->97763
/* 97744*/                  OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 97746*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 97749*/                  OPC_EmitMergeInputChains1_2,
/* 97750*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVYrmr), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v32i8, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 0, 
                            // Src: (or:{ *:[v32i8] } (and:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src3, VR256:{ *:[v32i8] }:$src1), (X86andnp:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src3, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 34
                            // Dst: (VPCMOVYrmr:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v32i8] }:$src3)
/* 97763*/                /*SwitchType*/ 19, MVT::v16i16,// ->97784
/* 97765*/                  OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 97767*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 97770*/                  OPC_EmitMergeInputChains1_2,
/* 97771*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVYrmr), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i16, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 0, 
                            // Src: (or:{ *:[v16i16] } (and:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src3, VR256:{ *:[v16i16] }:$src1), (X86andnp:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src3, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 34
                            // Dst: (VPCMOVYrmr:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v16i16] }:$src3)
/* 97784*/                /*SwitchType*/ 19, MVT::v8i32,// ->97805
/* 97786*/                  OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 97788*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 97791*/                  OPC_EmitMergeInputChains1_2,
/* 97792*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVYrmr), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 7/*#Ops*/, 1, 4, 5, 6, 7, 8, 0, 
                            // Src: (or:{ *:[v8i32] } (and:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src3, VR256:{ *:[v8i32] }:$src1), (X86andnp:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src3, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 34
                            // Dst: (VPCMOVYrmr:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v8i32] }:$src3)
/* 97805*/                0, // EndSwitchType
/* 97806*/              0, // EndSwitchType
/* 97807*/            /*Scope*/ 32|128,1/*160*/, /*->97969*/
/* 97809*/              OPC_CheckChild0Same, 1,
/* 97811*/              OPC_MoveChild1,
/* 97812*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/* 97815*/              OPC_MoveChild0,
/* 97816*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 97819*/              OPC_RecordMemRef,
/* 97820*/              OPC_RecordNode, // #2 = 'ld' chained node
/* 97821*/              OPC_CheckFoldableChainNode,
/* 97822*/              OPC_RecordChild1, // #3 = $src2
/* 97823*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 97825*/              OPC_CheckPredicate, 9, // Predicate_load
/* 97827*/              OPC_SwitchType /*2 cases */, 68, MVT::v2i64,// ->97898
/* 97830*/                OPC_MoveParent,
/* 97831*/                OPC_MoveParent,
/* 97832*/                OPC_MoveParent,
/* 97833*/                OPC_SwitchType /*3 cases */, 19, MVT::v16i8,// ->97855
/* 97836*/                  OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 97838*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 97841*/                  OPC_EmitMergeInputChains1_2,
/* 97842*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVrmr), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i8, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 1, 
                            // Src: (or:{ *:[v16i8] } (and:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src3), (X86andnp:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src3, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 34
                            // Dst: (VPCMOVrmr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v16i8] }:$src3)
/* 97855*/                /*SwitchType*/ 19, MVT::v8i16,// ->97876
/* 97857*/                  OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 97859*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 97862*/                  OPC_EmitMergeInputChains1_2,
/* 97863*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVrmr), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 1, 
                            // Src: (or:{ *:[v8i16] } (and:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src3), (X86andnp:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src3, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 34
                            // Dst: (VPCMOVrmr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v8i16] }:$src3)
/* 97876*/                /*SwitchType*/ 19, MVT::v4i32,// ->97897
/* 97878*/                  OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 97880*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 97883*/                  OPC_EmitMergeInputChains1_2,
/* 97884*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVrmr), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 1, 
                            // Src: (or:{ *:[v4i32] } (and:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src3), (X86andnp:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src3, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 34
                            // Dst: (VPCMOVrmr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v4i32] }:$src3)
/* 97897*/                0, // EndSwitchType
/* 97898*/              /*SwitchType*/ 68, MVT::v4i64,// ->97968
/* 97900*/                OPC_MoveParent,
/* 97901*/                OPC_MoveParent,
/* 97902*/                OPC_MoveParent,
/* 97903*/                OPC_SwitchType /*3 cases */, 19, MVT::v32i8,// ->97925
/* 97906*/                  OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 97908*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 97911*/                  OPC_EmitMergeInputChains1_2,
/* 97912*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVYrmr), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v32i8, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 1, 
                            // Src: (or:{ *:[v32i8] } (and:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src3), (X86andnp:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src3, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 34
                            // Dst: (VPCMOVYrmr:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v32i8] }:$src3)
/* 97925*/                /*SwitchType*/ 19, MVT::v16i16,// ->97946
/* 97927*/                  OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 97929*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 97932*/                  OPC_EmitMergeInputChains1_2,
/* 97933*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVYrmr), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 1, 
                            // Src: (or:{ *:[v16i16] } (and:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src3), (X86andnp:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src3, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 34
                            // Dst: (VPCMOVYrmr:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v16i16] }:$src3)
/* 97946*/                /*SwitchType*/ 19, MVT::v8i32,// ->97967
/* 97948*/                  OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 97950*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 97953*/                  OPC_EmitMergeInputChains1_2,
/* 97954*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVYrmr), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 1, 
                            // Src: (or:{ *:[v8i32] } (and:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src3), (X86andnp:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src3, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 34
                            // Dst: (VPCMOVYrmr:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v8i32] }:$src3)
/* 97967*/                0, // EndSwitchType
/* 97968*/              0, // EndSwitchType
/* 97969*/            /*Scope*/ 60, /*->98030*/
/* 97970*/              OPC_CheckChild0Same, 0,
/* 97972*/              OPC_MoveChild1,
/* 97973*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 97976*/              OPC_RecordMemRef,
/* 97977*/              OPC_RecordNode, // #2 = 'ld' chained node
/* 97978*/              OPC_CheckFoldableChainNode,
/* 97979*/              OPC_RecordChild1, // #3 = $src2
/* 97980*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 97982*/              OPC_CheckPredicate, 9, // Predicate_load
/* 97984*/              OPC_MoveParent,
/* 97985*/              OPC_MoveParent,
/* 97986*/              OPC_SwitchType /*2 cases */, 19, MVT::v2i64,// ->98008
/* 97989*/                OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 97991*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 97994*/                OPC_EmitMergeInputChains1_2,
/* 97995*/                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)
/* 98008*/              /*SwitchType*/ 19, MVT::v4i64,// ->98029
/* 98010*/                OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 98012*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 98015*/                OPC_EmitMergeInputChains1_2,
/* 98016*/                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)
/* 98029*/              0, // EndSwitchType
/* 98030*/            /*Scope*/ 60, /*->98091*/
/* 98031*/              OPC_CheckChild0Same, 1,
/* 98033*/              OPC_MoveChild1,
/* 98034*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 98037*/              OPC_RecordMemRef,
/* 98038*/              OPC_RecordNode, // #2 = 'ld' chained node
/* 98039*/              OPC_CheckFoldableChainNode,
/* 98040*/              OPC_RecordChild1, // #3 = $src2
/* 98041*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 98043*/              OPC_CheckPredicate, 9, // Predicate_load
/* 98045*/              OPC_MoveParent,
/* 98046*/              OPC_MoveParent,
/* 98047*/              OPC_SwitchType /*2 cases */, 19, MVT::v2i64,// ->98069
/* 98050*/                OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 98052*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 98055*/                OPC_EmitMergeInputChains1_2,
/* 98056*/                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)
/* 98069*/              /*SwitchType*/ 19, MVT::v4i64,// ->98090
/* 98071*/                OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 98073*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 98076*/                OPC_EmitMergeInputChains1_2,
/* 98077*/                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)
/* 98090*/              0, // EndSwitchType
/* 98091*/            0, /*End of Scope*/
/* 98092*/          0, /*End of Scope*/
/* 98093*/        0, /*End of Scope*/
/* 98094*/      /*SwitchOpcode*/ 32|128,5/*672*/, TARGET_VAL(X86ISD::ANDNP),// ->98770
/* 98098*/        OPC_Scope, 57|128,1/*185*/, /*->98286*/ // 2 children in Scope
/* 98101*/          OPC_MoveChild0,
/* 98102*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 98105*/          OPC_RecordMemRef,
/* 98106*/          OPC_RecordNode, // #0 = 'ld' chained node
/* 98107*/          OPC_CheckFoldableChainNode,
/* 98108*/          OPC_RecordChild1, // #1 = $src3
/* 98109*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 98111*/          OPC_CheckPredicate, 9, // Predicate_load
/* 98113*/          OPC_MoveParent,
/* 98114*/          OPC_RecordChild1, // #2 = $src2
/* 98115*/          OPC_MoveParent,
/* 98116*/          OPC_MoveChild1,
/* 98117*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 98120*/          OPC_Scope, 40, /*->98162*/ // 4 children in Scope
/* 98122*/            OPC_MoveChild0,
/* 98123*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 98126*/            OPC_RecordMemRef,
/* 98127*/            OPC_RecordNode, // #3 = 'ld' chained node
/* 98128*/            OPC_CheckFoldableChainNode,
/* 98129*/            OPC_CheckChild1Same, 1,
/* 98131*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 98133*/            OPC_CheckPredicate, 9, // Predicate_load
/* 98135*/            OPC_MoveParent,
/* 98136*/            OPC_RecordChild1, // #4 = $src1
/* 98137*/            OPC_MoveParent,
/* 98138*/            OPC_CheckType, MVT::v2i64,
/* 98140*/            OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 98142*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #5 #6 #7 #8 #9
/* 98145*/            OPC_EmitMergeInputChains, 2, 0, 3, 
/* 98149*/            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)
/* 98162*/          /*Scope*/ 40, /*->98203*/
/* 98163*/            OPC_RecordChild0, // #3 = $src1
/* 98164*/            OPC_MoveChild1,
/* 98165*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 98168*/            OPC_RecordMemRef,
/* 98169*/            OPC_RecordNode, // #4 = 'ld' chained node
/* 98170*/            OPC_CheckFoldableChainNode,
/* 98171*/            OPC_CheckChild1Same, 1,
/* 98173*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 98175*/            OPC_CheckPredicate, 9, // Predicate_load
/* 98177*/            OPC_MoveParent,
/* 98178*/            OPC_MoveParent,
/* 98179*/            OPC_CheckType, MVT::v2i64,
/* 98181*/            OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 98183*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #5 #6 #7 #8 #9
/* 98186*/            OPC_EmitMergeInputChains, 2, 0, 4, 
/* 98190*/            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)
/* 98203*/          /*Scope*/ 40, /*->98244*/
/* 98204*/            OPC_MoveChild0,
/* 98205*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 98208*/            OPC_RecordMemRef,
/* 98209*/            OPC_RecordNode, // #3 = 'ld' chained node
/* 98210*/            OPC_CheckFoldableChainNode,
/* 98211*/            OPC_CheckChild1Same, 1,
/* 98213*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 98215*/            OPC_CheckPredicate, 9, // Predicate_load
/* 98217*/            OPC_MoveParent,
/* 98218*/            OPC_RecordChild1, // #4 = $src1
/* 98219*/            OPC_MoveParent,
/* 98220*/            OPC_CheckType, MVT::v4i64,
/* 98222*/            OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 98224*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #5 #6 #7 #8 #9
/* 98227*/            OPC_EmitMergeInputChains, 2, 0, 3, 
/* 98231*/            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)
/* 98244*/          /*Scope*/ 40, /*->98285*/
/* 98245*/            OPC_RecordChild0, // #3 = $src1
/* 98246*/            OPC_MoveChild1,
/* 98247*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 98250*/            OPC_RecordMemRef,
/* 98251*/            OPC_RecordNode, // #4 = 'ld' chained node
/* 98252*/            OPC_CheckFoldableChainNode,
/* 98253*/            OPC_CheckChild1Same, 1,
/* 98255*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 98257*/            OPC_CheckPredicate, 9, // Predicate_load
/* 98259*/            OPC_MoveParent,
/* 98260*/            OPC_MoveParent,
/* 98261*/            OPC_CheckType, MVT::v4i64,
/* 98263*/            OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 98265*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #5 #6 #7 #8 #9
/* 98268*/            OPC_EmitMergeInputChains, 2, 0, 4, 
/* 98272*/            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)
/* 98285*/          0, /*End of Scope*/
/* 98286*/        /*Scope*/ 97|128,3/*481*/, /*->98769*/
/* 98288*/          OPC_RecordChild0, // #0 = $src3
/* 98289*/          OPC_MoveChild1,
/* 98290*/          OPC_SwitchOpcode /*2 cases */, 94|128,2/*350*/, TARGET_VAL(ISD::BITCAST),// ->98645
/* 98295*/            OPC_MoveChild0,
/* 98296*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/* 98299*/            OPC_RecordMemRef,
/* 98300*/            OPC_RecordNode, // #1 = 'ld' chained node
/* 98301*/            OPC_CheckFoldableChainNode,
/* 98302*/            OPC_RecordChild1, // #2 = $src2
/* 98303*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 98305*/            OPC_CheckPredicate, 9, // Predicate_load
/* 98307*/            OPC_SwitchType /*2 cases */, 37|128,1/*165*/, MVT::v2i64,// ->98476
/* 98311*/              OPC_MoveParent,
/* 98312*/              OPC_MoveParent,
/* 98313*/              OPC_MoveParent,
/* 98314*/              OPC_MoveChild1,
/* 98315*/              OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 98318*/              OPC_Scope, 25, /*->98345*/ // 6 children in Scope
/* 98320*/                OPC_CheckChild0Same, 0,
/* 98322*/                OPC_RecordChild1, // #3 = $src1
/* 98323*/                OPC_MoveParent,
/* 98324*/                OPC_CheckType, MVT::v16i8,
/* 98326*/                OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 98328*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 98331*/                OPC_EmitMergeInputChains1_1,
/* 98332*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVrmr), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i8, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 0, 
                          // Src: (or:{ *:[v16i8] } (X86andnp:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src3, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (and:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src3, VR128:{ *:[v16i8] }:$src1)) - Complexity = 34
                          // Dst: (VPCMOVrmr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v16i8] }:$src3)
/* 98345*/              /*Scope*/ 25, /*->98371*/
/* 98346*/                OPC_RecordChild0, // #3 = $src1
/* 98347*/                OPC_CheckChild1Same, 0,
/* 98349*/                OPC_MoveParent,
/* 98350*/                OPC_CheckType, MVT::v16i8,
/* 98352*/                OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 98354*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 98357*/                OPC_EmitMergeInputChains1_1,
/* 98358*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVrmr), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i8, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 0, 
                          // Src: (or:{ *:[v16i8] } (X86andnp:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src3, (bitconvert:{ *:[v16i8] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (and:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src3)) - Complexity = 34
                          // Dst: (VPCMOVrmr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v16i8] }:$src3)
/* 98371*/              /*Scope*/ 25, /*->98397*/
/* 98372*/                OPC_CheckChild0Same, 0,
/* 98374*/                OPC_RecordChild1, // #3 = $src1
/* 98375*/                OPC_MoveParent,
/* 98376*/                OPC_CheckType, MVT::v8i16,
/* 98378*/                OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 98380*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 98383*/                OPC_EmitMergeInputChains1_1,
/* 98384*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVrmr), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 0, 
                          // Src: (or:{ *:[v8i16] } (X86andnp:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src3, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (and:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src3, VR128:{ *:[v8i16] }:$src1)) - Complexity = 34
                          // Dst: (VPCMOVrmr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v8i16] }:$src3)
/* 98397*/              /*Scope*/ 25, /*->98423*/
/* 98398*/                OPC_RecordChild0, // #3 = $src1
/* 98399*/                OPC_CheckChild1Same, 0,
/* 98401*/                OPC_MoveParent,
/* 98402*/                OPC_CheckType, MVT::v8i16,
/* 98404*/                OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 98406*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 98409*/                OPC_EmitMergeInputChains1_1,
/* 98410*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVrmr), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 0, 
                          // Src: (or:{ *:[v8i16] } (X86andnp:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src3, (bitconvert:{ *:[v8i16] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (and:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src3)) - Complexity = 34
                          // Dst: (VPCMOVrmr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v8i16] }:$src3)
/* 98423*/              /*Scope*/ 25, /*->98449*/
/* 98424*/                OPC_CheckChild0Same, 0,
/* 98426*/                OPC_RecordChild1, // #3 = $src1
/* 98427*/                OPC_MoveParent,
/* 98428*/                OPC_CheckType, MVT::v4i32,
/* 98430*/                OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 98432*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 98435*/                OPC_EmitMergeInputChains1_1,
/* 98436*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVrmr), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 0, 
                          // Src: (or:{ *:[v4i32] } (X86andnp:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src3, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (and:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src3, VR128:{ *:[v4i32] }:$src1)) - Complexity = 34
                          // Dst: (VPCMOVrmr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v4i32] }:$src3)
/* 98449*/              /*Scope*/ 25, /*->98475*/
/* 98450*/                OPC_RecordChild0, // #3 = $src1
/* 98451*/                OPC_CheckChild1Same, 0,
/* 98453*/                OPC_MoveParent,
/* 98454*/                OPC_CheckType, MVT::v4i32,
/* 98456*/                OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 98458*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 98461*/                OPC_EmitMergeInputChains1_1,
/* 98462*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVrmr), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 0, 
                          // Src: (or:{ *:[v4i32] } (X86andnp:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src3, (bitconvert:{ *:[v4i32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (and:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src3)) - Complexity = 34
                          // Dst: (VPCMOVrmr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v4i32] }:$src3)
/* 98475*/              0, /*End of Scope*/
/* 98476*/            /*SwitchType*/ 37|128,1/*165*/, MVT::v4i64,// ->98644
/* 98479*/              OPC_MoveParent,
/* 98480*/              OPC_MoveParent,
/* 98481*/              OPC_MoveParent,
/* 98482*/              OPC_MoveChild1,
/* 98483*/              OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 98486*/              OPC_Scope, 25, /*->98513*/ // 6 children in Scope
/* 98488*/                OPC_CheckChild0Same, 0,
/* 98490*/                OPC_RecordChild1, // #3 = $src1
/* 98491*/                OPC_MoveParent,
/* 98492*/                OPC_CheckType, MVT::v32i8,
/* 98494*/                OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 98496*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 98499*/                OPC_EmitMergeInputChains1_1,
/* 98500*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVYrmr), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v32i8, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 0, 
                          // Src: (or:{ *:[v32i8] } (X86andnp:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src3, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (and:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src3, VR256:{ *:[v32i8] }:$src1)) - Complexity = 34
                          // Dst: (VPCMOVYrmr:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v32i8] }:$src3)
/* 98513*/              /*Scope*/ 25, /*->98539*/
/* 98514*/                OPC_RecordChild0, // #3 = $src1
/* 98515*/                OPC_CheckChild1Same, 0,
/* 98517*/                OPC_MoveParent,
/* 98518*/                OPC_CheckType, MVT::v32i8,
/* 98520*/                OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 98522*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 98525*/                OPC_EmitMergeInputChains1_1,
/* 98526*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVYrmr), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v32i8, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 0, 
                          // Src: (or:{ *:[v32i8] } (X86andnp:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src3, (bitconvert:{ *:[v32i8] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (and:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src3)) - Complexity = 34
                          // Dst: (VPCMOVYrmr:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v32i8] }:$src3)
/* 98539*/              /*Scope*/ 25, /*->98565*/
/* 98540*/                OPC_CheckChild0Same, 0,
/* 98542*/                OPC_RecordChild1, // #3 = $src1
/* 98543*/                OPC_MoveParent,
/* 98544*/                OPC_CheckType, MVT::v16i16,
/* 98546*/                OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 98548*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 98551*/                OPC_EmitMergeInputChains1_1,
/* 98552*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVYrmr), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 0, 
                          // Src: (or:{ *:[v16i16] } (X86andnp:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src3, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (and:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src3, VR256:{ *:[v16i16] }:$src1)) - Complexity = 34
                          // Dst: (VPCMOVYrmr:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v16i16] }:$src3)
/* 98565*/              /*Scope*/ 25, /*->98591*/
/* 98566*/                OPC_RecordChild0, // #3 = $src1
/* 98567*/                OPC_CheckChild1Same, 0,
/* 98569*/                OPC_MoveParent,
/* 98570*/                OPC_CheckType, MVT::v16i16,
/* 98572*/                OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 98574*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 98577*/                OPC_EmitMergeInputChains1_1,
/* 98578*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVYrmr), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 0, 
                          // Src: (or:{ *:[v16i16] } (X86andnp:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src3, (bitconvert:{ *:[v16i16] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (and:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src3)) - Complexity = 34
                          // Dst: (VPCMOVYrmr:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v16i16] }:$src3)
/* 98591*/              /*Scope*/ 25, /*->98617*/
/* 98592*/                OPC_CheckChild0Same, 0,
/* 98594*/                OPC_RecordChild1, // #3 = $src1
/* 98595*/                OPC_MoveParent,
/* 98596*/                OPC_CheckType, MVT::v8i32,
/* 98598*/                OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 98600*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 98603*/                OPC_EmitMergeInputChains1_1,
/* 98604*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVYrmr), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 0, 
                          // Src: (or:{ *:[v8i32] } (X86andnp:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src3, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (and:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src3, VR256:{ *:[v8i32] }:$src1)) - Complexity = 34
                          // Dst: (VPCMOVYrmr:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v8i32] }:$src3)
/* 98617*/              /*Scope*/ 25, /*->98643*/
/* 98618*/                OPC_RecordChild0, // #3 = $src1
/* 98619*/                OPC_CheckChild1Same, 0,
/* 98621*/                OPC_MoveParent,
/* 98622*/                OPC_CheckType, MVT::v8i32,
/* 98624*/                OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 98626*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 98629*/                OPC_EmitMergeInputChains1_1,
/* 98630*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVYrmr), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 0, 
                          // Src: (or:{ *:[v8i32] } (X86andnp:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src3, (bitconvert:{ *:[v8i32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), (and:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src3)) - Complexity = 34
                          // Dst: (VPCMOVYrmr:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v8i32] }:$src3)
/* 98643*/              0, /*End of Scope*/
/* 98644*/            0, // EndSwitchType
/* 98645*/          /*SwitchOpcode*/ 120, TARGET_VAL(ISD::LOAD),// ->98768
/* 98648*/            OPC_RecordMemRef,
/* 98649*/            OPC_RecordNode, // #1 = 'ld' chained node
/* 98650*/            OPC_CheckFoldableChainNode,
/* 98651*/            OPC_RecordChild1, // #2 = $src2
/* 98652*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 98654*/            OPC_CheckPredicate, 9, // Predicate_load
/* 98656*/            OPC_MoveParent,
/* 98657*/            OPC_MoveParent,
/* 98658*/            OPC_MoveChild1,
/* 98659*/            OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/* 98662*/            OPC_Scope, 25, /*->98689*/ // 4 children in Scope
/* 98664*/              OPC_CheckChild0Same, 0,
/* 98666*/              OPC_RecordChild1, // #3 = $src1
/* 98667*/              OPC_MoveParent,
/* 98668*/              OPC_CheckType, MVT::v2i64,
/* 98670*/              OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 98672*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 98675*/              OPC_EmitMergeInputChains1_1,
/* 98676*/              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)
/* 98689*/            /*Scope*/ 25, /*->98715*/
/* 98690*/              OPC_RecordChild0, // #3 = $src1
/* 98691*/              OPC_CheckChild1Same, 0,
/* 98693*/              OPC_MoveParent,
/* 98694*/              OPC_CheckType, MVT::v2i64,
/* 98696*/              OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 98698*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 98701*/              OPC_EmitMergeInputChains1_1,
/* 98702*/              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)
/* 98715*/            /*Scope*/ 25, /*->98741*/
/* 98716*/              OPC_CheckChild0Same, 0,
/* 98718*/              OPC_RecordChild1, // #3 = $src1
/* 98719*/              OPC_MoveParent,
/* 98720*/              OPC_CheckType, MVT::v4i64,
/* 98722*/              OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 98724*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 98727*/              OPC_EmitMergeInputChains1_1,
/* 98728*/              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)
/* 98741*/            /*Scope*/ 25, /*->98767*/
/* 98742*/              OPC_RecordChild0, // #3 = $src1
/* 98743*/              OPC_CheckChild1Same, 0,
/* 98745*/              OPC_MoveParent,
/* 98746*/              OPC_CheckType, MVT::v4i64,
/* 98748*/              OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/* 98750*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/* 98753*/              OPC_EmitMergeInputChains1_1,
/* 98754*/              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)
/* 98767*/            0, /*End of Scope*/
/* 98768*/          0, // EndSwitchOpcode
/* 98769*/        0, /*End of Scope*/
/* 98770*/      0, // EndSwitchOpcode
/* 98771*/    /*Scope*/ 110|128,5/*750*/, /*->99523*/
/* 98773*/      OPC_RecordChild0, // #0 = $src1
/* 98774*/      OPC_MoveChild1,
/* 98775*/      OPC_SwitchOpcode /*2 cases */, 88|128,4/*600*/, TARGET_VAL(ISD::LOAD),// ->99380
/* 98780*/        OPC_RecordMemRef,
/* 98781*/        OPC_RecordNode, // #1 = 'ld' chained node
/* 98782*/        OPC_CheckFoldableChainNode,
/* 98783*/        OPC_RecordChild1, // #2 = $src2
/* 98784*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 98786*/        OPC_CheckPredicate, 9, // Predicate_load
/* 98788*/        OPC_Scope, 21, /*->98811*/ // 5 children in Scope
/* 98790*/          OPC_MoveParent,
/* 98791*/          OPC_CheckType, MVT::v2i64,
/* 98793*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 98795*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 98798*/          OPC_EmitMergeInputChains1_1,
/* 98799*/          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>>) - Complexity = 25
                    // Dst: (VPORrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 98811*/        /*Scope*/ 23, /*->98835*/
/* 98812*/          OPC_CheckPredicate, 39, // Predicate_memop
/* 98814*/          OPC_MoveParent,
/* 98815*/          OPC_CheckType, MVT::v2i64,
/* 98817*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 98819*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 98822*/          OPC_EmitMergeInputChains1_1,
/* 98823*/          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_memop>>) - Complexity = 25
                    // Dst: (PORrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 98835*/        /*Scope*/ 103|128,1/*231*/, /*->99068*/
/* 98837*/          OPC_MoveParent,
/* 98838*/          OPC_SwitchType /*7 cases */, 40, MVT::v4i64,// ->98881
/* 98841*/            OPC_Scope, 18, /*->98861*/ // 2 children in Scope
/* 98843*/              OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/* 98845*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 98848*/              OPC_EmitMergeInputChains1_1,
/* 98849*/              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>>) - Complexity = 25
                        // Dst: (VPORYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 98861*/            /*Scope*/ 18, /*->98880*/
/* 98862*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/* 98864*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 98867*/              OPC_EmitMergeInputChains1_1,
/* 98868*/              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>>) - Complexity = 25
                        // Dst: (VORPSYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 98880*/            0, /*End of Scope*/
/* 98881*/          /*SwitchType*/ 40, MVT::v32i8,// ->98923
/* 98883*/            OPC_Scope, 18, /*->98903*/ // 2 children in Scope
/* 98885*/              OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/* 98887*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 98890*/              OPC_EmitMergeInputChains1_1,
/* 98891*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPORYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (or:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VPORYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 98903*/            /*Scope*/ 18, /*->98922*/
/* 98904*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/* 98906*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 98909*/              OPC_EmitMergeInputChains1_1,
/* 98910*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VORPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (or:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VORPSYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 98922*/            0, /*End of Scope*/
/* 98923*/          /*SwitchType*/ 40, MVT::v16i16,// ->98965
/* 98925*/            OPC_Scope, 18, /*->98945*/ // 2 children in Scope
/* 98927*/              OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/* 98929*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 98932*/              OPC_EmitMergeInputChains1_1,
/* 98933*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPORYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (or:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VPORYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 98945*/            /*Scope*/ 18, /*->98964*/
/* 98946*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/* 98948*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 98951*/              OPC_EmitMergeInputChains1_1,
/* 98952*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VORPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (or:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VORPSYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 98964*/            0, /*End of Scope*/
/* 98965*/          /*SwitchType*/ 40, MVT::v8i32,// ->99007
/* 98967*/            OPC_Scope, 18, /*->98987*/ // 2 children in Scope
/* 98969*/              OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/* 98971*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 98974*/              OPC_EmitMergeInputChains1_1,
/* 98975*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPORYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (or:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VPORYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 98987*/            /*Scope*/ 18, /*->99006*/
/* 98988*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/* 98990*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 98993*/              OPC_EmitMergeInputChains1_1,
/* 98994*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VORPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (or:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VORPSYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 99006*/            0, /*End of Scope*/
/* 99007*/          /*SwitchType*/ 18, MVT::v16i8,// ->99027
/* 99009*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 99011*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 99014*/            OPC_EmitMergeInputChains1_1,
/* 99015*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPORrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (or:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPORrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 99027*/          /*SwitchType*/ 18, MVT::v8i16,// ->99047
/* 99029*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 99031*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 99034*/            OPC_EmitMergeInputChains1_1,
/* 99035*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPORrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (or:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPORrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 99047*/          /*SwitchType*/ 18, MVT::v4i32,// ->99067
/* 99049*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 99051*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 99054*/            OPC_EmitMergeInputChains1_1,
/* 99055*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPORrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (or:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPORrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 99067*/          0, // EndSwitchType
/* 99068*/        /*Scope*/ 65, /*->99134*/
/* 99069*/          OPC_CheckPredicate, 39, // Predicate_memop
/* 99071*/          OPC_MoveParent,
/* 99072*/          OPC_SwitchType /*3 cases */, 18, MVT::v16i8,// ->99093
/* 99075*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 99077*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 99080*/            OPC_EmitMergeInputChains1_1,
/* 99081*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PORrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (or:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                      // Dst: (PORrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 99093*/          /*SwitchType*/ 18, MVT::v8i16,// ->99113
/* 99095*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 99097*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 99100*/            OPC_EmitMergeInputChains1_1,
/* 99101*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PORrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (or:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                      // Dst: (PORrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 99113*/          /*SwitchType*/ 18, MVT::v4i32,// ->99133
/* 99115*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 99117*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 99120*/            OPC_EmitMergeInputChains1_1,
/* 99121*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PORrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (or:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                      // Dst: (PORrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 99133*/          0, // EndSwitchType
/* 99134*/        /*Scope*/ 115|128,1/*243*/, /*->99379*/
/* 99136*/          OPC_MoveParent,
/* 99137*/          OPC_SwitchType /*12 cases */, 18, MVT::v8i64,// ->99158
/* 99140*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 99142*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 99145*/            OPC_EmitMergeInputChains1_1,
/* 99146*/            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>>) - Complexity = 25
                      // Dst: (VPORQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 99158*/          /*SwitchType*/ 18, MVT::v4i64,// ->99178
/* 99160*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 99162*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 99165*/            OPC_EmitMergeInputChains1_1,
/* 99166*/            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>>) - Complexity = 25
                      // Dst: (VPORQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 99178*/          /*SwitchType*/ 18, MVT::v2i64,// ->99198
/* 99180*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 99182*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 99185*/            OPC_EmitMergeInputChains1_1,
/* 99186*/            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>>) - Complexity = 25
                      // Dst: (VPORQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 99198*/          /*SwitchType*/ 18, MVT::v16i32,// ->99218
/* 99200*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 99202*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 99205*/            OPC_EmitMergeInputChains1_1,
/* 99206*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (or:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPORDZrm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 99218*/          /*SwitchType*/ 18, MVT::v8i32,// ->99238
/* 99220*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 99222*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 99225*/            OPC_EmitMergeInputChains1_1,
/* 99226*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (or:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPORDZ256rm:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 99238*/          /*SwitchType*/ 18, MVT::v4i32,// ->99258
/* 99240*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 99242*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 99245*/            OPC_EmitMergeInputChains1_1,
/* 99246*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (or:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPORDZ128rm:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 99258*/          /*SwitchType*/ 18, MVT::v16i8,// ->99278
/* 99260*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 99262*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 99265*/            OPC_EmitMergeInputChains1_1,
/* 99266*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (or:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPORQZ128rm:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 99278*/          /*SwitchType*/ 18, MVT::v8i16,// ->99298
/* 99280*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 99282*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 99285*/            OPC_EmitMergeInputChains1_1,
/* 99286*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (or:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPORQZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 99298*/          /*SwitchType*/ 18, MVT::v32i8,// ->99318
/* 99300*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 99302*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 99305*/            OPC_EmitMergeInputChains1_1,
/* 99306*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (or:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPORQZ256rm:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 99318*/          /*SwitchType*/ 18, MVT::v16i16,// ->99338
/* 99320*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/* 99322*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 99325*/            OPC_EmitMergeInputChains1_1,
/* 99326*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (or:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPORQZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 99338*/          /*SwitchType*/ 18, MVT::v64i8,// ->99358
/* 99340*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 99342*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 99345*/            OPC_EmitMergeInputChains1_1,
/* 99346*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (or:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPORQZrm:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 99358*/          /*SwitchType*/ 18, MVT::v32i16,// ->99378
/* 99360*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 99362*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 99365*/            OPC_EmitMergeInputChains1_1,
/* 99366*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (or:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPORQZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 99378*/          0, // EndSwitchType
/* 99379*/        0, /*End of Scope*/
/* 99380*/      /*SwitchOpcode*/ 10|128,1/*138*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->99522
/* 99384*/        OPC_RecordMemRef,
/* 99385*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/* 99386*/        OPC_CheckFoldableChainNode,
/* 99387*/        OPC_RecordChild1, // #2 = $src2
/* 99388*/        OPC_Scope, 65, /*->99455*/ // 2 children in Scope
/* 99390*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/* 99392*/          OPC_MoveParent,
/* 99393*/          OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->99414
/* 99396*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 99398*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 99401*/            OPC_EmitMergeInputChains1_1,
/* 99402*/            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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPORQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 99414*/          /*SwitchType*/ 18, MVT::v4i64,// ->99434
/* 99416*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 99418*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 99421*/            OPC_EmitMergeInputChains1_1,
/* 99422*/            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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPORQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 99434*/          /*SwitchType*/ 18, MVT::v2i64,// ->99454
/* 99436*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 99438*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 99441*/            OPC_EmitMergeInputChains1_1,
/* 99442*/            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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPORQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 99454*/          0, // EndSwitchType
/* 99455*/        /*Scope*/ 65, /*->99521*/
/* 99456*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/* 99458*/          OPC_MoveParent,
/* 99459*/          OPC_SwitchType /*3 cases */, 18, MVT::v16i32,// ->99480
/* 99462*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 99464*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 99467*/            OPC_EmitMergeInputChains1_1,
/* 99468*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (or:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPORDZrmb:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 99480*/          /*SwitchType*/ 18, MVT::v8i32,// ->99500
/* 99482*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 99484*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 99487*/            OPC_EmitMergeInputChains1_1,
/* 99488*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (or:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPORDZ256rmb:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 99500*/          /*SwitchType*/ 18, MVT::v4i32,// ->99520
/* 99502*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 99504*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 99507*/            OPC_EmitMergeInputChains1_1,
/* 99508*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (or:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPORDZ128rmb:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 99520*/          0, // EndSwitchType
/* 99521*/        0, /*End of Scope*/
/* 99522*/      0, // EndSwitchOpcode
/* 99523*/    /*Scope*/ 11|128,10/*1291*/, /*->100816*/
/* 99525*/      OPC_MoveChild0,
/* 99526*/      OPC_SwitchOpcode /*4 cases */, 92|128,4/*604*/, TARGET_VAL(ISD::LOAD),// ->100135
/* 99531*/        OPC_RecordMemRef,
/* 99532*/        OPC_RecordNode, // #0 = 'ld' chained node
/* 99533*/        OPC_CheckFoldableChainNode,
/* 99534*/        OPC_RecordChild1, // #1 = $src2
/* 99535*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/* 99537*/        OPC_CheckPredicate, 9, // Predicate_load
/* 99539*/        OPC_Scope, 22, /*->99563*/ // 5 children in Scope
/* 99541*/          OPC_MoveParent,
/* 99542*/          OPC_RecordChild1, // #2 = $src1
/* 99543*/          OPC_CheckType, MVT::v2i64,
/* 99545*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 99547*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 99550*/          OPC_EmitMergeInputChains1_0,
/* 99551*/          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>>, VR128:{ *:[v2i64] }:$src1) - Complexity = 25
                    // Dst: (VPORrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 99563*/        /*Scope*/ 24, /*->99588*/
/* 99564*/          OPC_CheckPredicate, 39, // Predicate_memop
/* 99566*/          OPC_MoveParent,
/* 99567*/          OPC_RecordChild1, // #2 = $src1
/* 99568*/          OPC_CheckType, MVT::v2i64,
/* 99570*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 99572*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 99575*/          OPC_EmitMergeInputChains1_0,
/* 99576*/          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_memop>>, VR128:{ *:[v2i64] }:$src1) - Complexity = 25
                    // Dst: (PORrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 99588*/        /*Scope*/ 96|128,2/*352*/, /*->99942*/
/* 99590*/          OPC_MoveParent,
/* 99591*/          OPC_RecordChild1, // #2 = $src1
/* 99592*/          OPC_SwitchType /*10 cases */, 59, MVT::v4i64,// ->99654
/* 99595*/            OPC_Scope, 18, /*->99615*/ // 3 children in Scope
/* 99597*/              OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/* 99599*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 99602*/              OPC_EmitMergeInputChains1_0,
/* 99603*/              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>>, VR256:{ *:[v4i64] }:$src1) - Complexity = 25
                        // Dst: (VPORYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 99615*/            /*Scope*/ 18, /*->99634*/
/* 99616*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 99618*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 99621*/              OPC_EmitMergeInputChains1_0,
/* 99622*/              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>>, VR256X:{ *:[v4i64] }:$src1) - Complexity = 25
                        // Dst: (VPORQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 99634*/            /*Scope*/ 18, /*->99653*/
/* 99635*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/* 99637*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 99640*/              OPC_EmitMergeInputChains1_0,
/* 99641*/              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>>, VR256:{ *:[v4i64] }:$src1) - Complexity = 25
                        // Dst: (VORPSYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 99653*/            0, /*End of Scope*/
/* 99654*/          /*SwitchType*/ 18, MVT::v8i64,// ->99674
/* 99656*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 99658*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 99661*/            OPC_EmitMergeInputChains1_0,
/* 99662*/            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>>, VR512:{ *:[v8i64] }:$src1) - Complexity = 25
                      // Dst: (VPORQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 99674*/          /*SwitchType*/ 18, MVT::v2i64,// ->99694
/* 99676*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 99678*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 99681*/            OPC_EmitMergeInputChains1_0,
/* 99682*/            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>>, VR128X:{ *:[v2i64] }:$src1) - Complexity = 25
                      // Dst: (VPORQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 99694*/          /*SwitchType*/ 18, MVT::v16i32,// ->99714
/* 99696*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/* 99698*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 99701*/            OPC_EmitMergeInputChains1_0,
/* 99702*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (or:{ *:[v16i32] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16i32] }:$src1) - Complexity = 25
                      // Dst: (VPORDZrm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 99714*/          /*SwitchType*/ 59, MVT::v8i32,// ->99775
/* 99716*/            OPC_Scope, 18, /*->99736*/ // 3 children in Scope
/* 99718*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 99720*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 99723*/              OPC_EmitMergeInputChains1_0,
/* 99724*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (or:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8i32] }:$src1) - Complexity = 25
                        // Dst: (VPORDZ256rm:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 99736*/            /*Scope*/ 18, /*->99755*/
/* 99737*/              OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/* 99739*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 99742*/              OPC_EmitMergeInputChains1_0,
/* 99743*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPORYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (or:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v8i32] }:$src1) - Complexity = 25
                        // Dst: (VPORYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 99755*/            /*Scope*/ 18, /*->99774*/
/* 99756*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/* 99758*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 99761*/              OPC_EmitMergeInputChains1_0,
/* 99762*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VORPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (or:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v8i32] }:$src1) - Complexity = 25
                        // Dst: (VORPSYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 99774*/            0, /*End of Scope*/
/* 99775*/          /*SwitchType*/ 40, MVT::v4i32,// ->99817
/* 99777*/            OPC_Scope, 18, /*->99797*/ // 2 children in Scope
/* 99779*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/* 99781*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 99784*/              OPC_EmitMergeInputChains1_0,
/* 99785*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (or:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4i32] }:$src1) - Complexity = 25
                        // Dst: (VPORDZ128rm:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 99797*/            /*Scope*/ 18, /*->99816*/
/* 99798*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 99800*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 99803*/              OPC_EmitMergeInputChains1_0,
/* 99804*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPORrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (or:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v4i32] }:$src1) - Complexity = 25
                        // Dst: (VPORrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 99816*/            0, /*End of Scope*/
/* 99817*/          /*SwitchType*/ 40, MVT::v32i8,// ->99859
/* 99819*/            OPC_Scope, 18, /*->99839*/ // 2 children in Scope
/* 99821*/              OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/* 99823*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 99826*/              OPC_EmitMergeInputChains1_0,
/* 99827*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPORYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (or:{ *:[v32i8] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v32i8] }:$src1) - Complexity = 25
                        // Dst: (VPORYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 99839*/            /*Scope*/ 18, /*->99858*/
/* 99840*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/* 99842*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 99845*/              OPC_EmitMergeInputChains1_0,
/* 99846*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VORPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (or:{ *:[v32i8] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v32i8] }:$src1) - Complexity = 25
                        // Dst: (VORPSYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 99858*/            0, /*End of Scope*/
/* 99859*/          /*SwitchType*/ 40, MVT::v16i16,// ->99901
/* 99861*/            OPC_Scope, 18, /*->99881*/ // 2 children in Scope
/* 99863*/              OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/* 99865*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 99868*/              OPC_EmitMergeInputChains1_0,
/* 99869*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPORYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (or:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v16i16] }:$src1) - Complexity = 25
                        // Dst: (VPORYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 99881*/            /*Scope*/ 18, /*->99900*/
/* 99882*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/* 99884*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 99887*/              OPC_EmitMergeInputChains1_0,
/* 99888*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VORPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (or:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v16i16] }:$src1) - Complexity = 25
                        // Dst: (VORPSYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 99900*/            0, /*End of Scope*/
/* 99901*/          /*SwitchType*/ 18, MVT::v16i8,// ->99921
/* 99903*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 99905*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 99908*/            OPC_EmitMergeInputChains1_0,
/* 99909*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPORrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (or:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v16i8] }:$src1) - Complexity = 25
                      // Dst: (VPORrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 99921*/          /*SwitchType*/ 18, MVT::v8i16,// ->99941
/* 99923*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/* 99925*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 99928*/            OPC_EmitMergeInputChains1_0,
/* 99929*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPORrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (or:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v8i16] }:$src1) - Complexity = 25
                      // Dst: (VPORrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 99941*/          0, // EndSwitchType
/* 99942*/        /*Scope*/ 66, /*->100009*/
/* 99943*/          OPC_CheckPredicate, 39, // Predicate_memop
/* 99945*/          OPC_MoveParent,
/* 99946*/          OPC_RecordChild1, // #2 = $src1
/* 99947*/          OPC_SwitchType /*3 cases */, 18, MVT::v16i8,// ->99968
/* 99950*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 99952*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 99955*/            OPC_EmitMergeInputChains1_0,
/* 99956*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PORrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (or:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:{ *:[v16i8] }:$src1) - Complexity = 25
                      // Dst: (PORrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 99968*/          /*SwitchType*/ 18, MVT::v8i16,// ->99988
/* 99970*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 99972*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 99975*/            OPC_EmitMergeInputChains1_0,
/* 99976*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PORrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (or:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:{ *:[v8i16] }:$src1) - Complexity = 25
                      // Dst: (PORrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/* 99988*/          /*SwitchType*/ 18, MVT::v4i32,// ->100008
/* 99990*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/* 99992*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/* 99995*/            OPC_EmitMergeInputChains1_0,
/* 99996*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PORrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (or:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:{ *:[v4i32] }:$src1) - Complexity = 25
                      // Dst: (PORrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*100008*/          0, // EndSwitchType
/*100009*/        /*Scope*/ 124, /*->100134*/
/*100010*/          OPC_MoveParent,
/*100011*/          OPC_RecordChild1, // #2 = $src1
/*100012*/          OPC_SwitchType /*6 cases */, 18, MVT::v16i8,// ->100033
/*100015*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*100017*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*100020*/            OPC_EmitMergeInputChains1_0,
/*100021*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (or:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v16i8] }:$src1) - Complexity = 25
                      // Dst: (VPORQZ128rm:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*100033*/          /*SwitchType*/ 18, MVT::v8i16,// ->100053
/*100035*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*100037*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*100040*/            OPC_EmitMergeInputChains1_0,
/*100041*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (or:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1) - Complexity = 25
                      // Dst: (VPORQZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*100053*/          /*SwitchType*/ 18, MVT::v32i8,// ->100073
/*100055*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*100057*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*100060*/            OPC_EmitMergeInputChains1_0,
/*100061*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (or:{ *:[v32i8] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v32i8] }:$src1) - Complexity = 25
                      // Dst: (VPORQZ256rm:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*100073*/          /*SwitchType*/ 18, MVT::v16i16,// ->100093
/*100075*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*100077*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*100080*/            OPC_EmitMergeInputChains1_0,
/*100081*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (or:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1) - Complexity = 25
                      // Dst: (VPORQZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*100093*/          /*SwitchType*/ 18, MVT::v64i8,// ->100113
/*100095*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*100097*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*100100*/            OPC_EmitMergeInputChains1_0,
/*100101*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (or:{ *:[v64i8] } (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v64i8] }:$src1) - Complexity = 25
                      // Dst: (VPORQZrm:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*100113*/          /*SwitchType*/ 18, MVT::v32i16,// ->100133
/*100115*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*100117*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*100120*/            OPC_EmitMergeInputChains1_0,
/*100121*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (or:{ *:[v32i16] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1) - Complexity = 25
                      // Dst: (VPORQZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*100133*/          0, // EndSwitchType
/*100134*/        0, /*End of Scope*/
/*100135*/      /*SwitchOpcode*/ 12|128,1/*140*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->100279
/*100139*/        OPC_RecordMemRef,
/*100140*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*100141*/        OPC_CheckFoldableChainNode,
/*100142*/        OPC_RecordChild1, // #1 = $src2
/*100143*/        OPC_Scope, 66, /*->100211*/ // 2 children in Scope
/*100145*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*100147*/          OPC_MoveParent,
/*100148*/          OPC_RecordChild1, // #2 = $src1
/*100149*/          OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->100170
/*100152*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*100154*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*100157*/            OPC_EmitMergeInputChains1_0,
/*100158*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (or:{ *:[v8i64] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8i64] }:$src1) - Complexity = 25
                      // Dst: (VPORQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*100170*/          /*SwitchType*/ 18, MVT::v4i64,// ->100190
/*100172*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*100174*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*100177*/            OPC_EmitMergeInputChains1_0,
/*100178*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (or:{ *:[v4i64] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src1) - Complexity = 25
                      // Dst: (VPORQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*100190*/          /*SwitchType*/ 18, MVT::v2i64,// ->100210
/*100192*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*100194*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*100197*/            OPC_EmitMergeInputChains1_0,
/*100198*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (or:{ *:[v2i64] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src1) - Complexity = 25
                      // Dst: (VPORQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*100210*/          0, // EndSwitchType
/*100211*/        /*Scope*/ 66, /*->100278*/
/*100212*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*100214*/          OPC_MoveParent,
/*100215*/          OPC_RecordChild1, // #2 = $src1
/*100216*/          OPC_SwitchType /*3 cases */, 18, MVT::v16i32,// ->100237
/*100219*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*100221*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*100224*/            OPC_EmitMergeInputChains1_0,
/*100225*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (or:{ *:[v16i32] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16i32] }:$src1) - Complexity = 25
                      // Dst: (VPORDZrmb:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*100237*/          /*SwitchType*/ 18, MVT::v8i32,// ->100257
/*100239*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*100241*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*100244*/            OPC_EmitMergeInputChains1_0,
/*100245*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (or:{ *:[v8i32] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8i32] }:$src1) - Complexity = 25
                      // Dst: (VPORDZ256rmb:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*100257*/          /*SwitchType*/ 18, MVT::v4i32,// ->100277
/*100259*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*100261*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*100264*/            OPC_EmitMergeInputChains1_0,
/*100265*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (or:{ *:[v4i32] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4i32] }:$src1) - Complexity = 25
                      // Dst: (VPORDZ128rmb:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*100277*/          0, // EndSwitchType
/*100278*/        0, /*End of Scope*/
/*100279*/      /*SwitchOpcode*/ 103|128,1/*231*/, TARGET_VAL(ISD::AND),// ->100514
/*100283*/        OPC_RecordChild0, // #0 = $src3
/*100284*/        OPC_RecordChild1, // #1 = $src1
/*100285*/        OPC_MoveParent,
/*100286*/        OPC_MoveChild1,
/*100287*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::ANDNP),
/*100290*/        OPC_Scope, 110, /*->100402*/ // 2 children in Scope
/*100292*/          OPC_CheckChild0Same, 0,
/*100294*/          OPC_RecordChild1, // #2 = $src2
/*100295*/          OPC_MoveParent,
/*100296*/          OPC_SwitchType /*8 cases */, 11, MVT::v2i64,// ->100310
/*100299*/            OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*100301*/            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)
/*100310*/          /*SwitchType*/ 11, MVT::v4i64,// ->100323
/*100312*/            OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*100314*/            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)
/*100323*/          /*SwitchType*/ 11, MVT::v16i8,// ->100336
/*100325*/            OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*100327*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVrrr), 0,
                          MVT::v16i8, 3/*#Ops*/, 1, 2, 0, 
                      // Src: (or:{ *:[v16i8] } (and:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src3, VR128:{ *:[v16i8] }:$src1), (X86andnp:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src3, VR128:{ *:[v16i8] }:$src2)) - Complexity = 9
                      // Dst: (VPCMOVrrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2, VR128:{ *:[v16i8] }:$src3)
/*100336*/          /*SwitchType*/ 11, MVT::v8i16,// ->100349
/*100338*/            OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*100340*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVrrr), 0,
                          MVT::v8i16, 3/*#Ops*/, 1, 2, 0, 
                      // Src: (or:{ *:[v8i16] } (and:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src3, VR128:{ *:[v8i16] }:$src1), (X86andnp:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src3, VR128:{ *:[v8i16] }:$src2)) - Complexity = 9
                      // Dst: (VPCMOVrrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2, VR128:{ *:[v8i16] }:$src3)
/*100349*/          /*SwitchType*/ 11, MVT::v4i32,// ->100362
/*100351*/            OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*100353*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVrrr), 0,
                          MVT::v4i32, 3/*#Ops*/, 1, 2, 0, 
                      // Src: (or:{ *:[v4i32] } (and:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src3, VR128:{ *:[v4i32] }:$src1), (X86andnp:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src3, VR128:{ *:[v4i32] }:$src2)) - Complexity = 9
                      // Dst: (VPCMOVrrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2, VR128:{ *:[v4i32] }:$src3)
/*100362*/          /*SwitchType*/ 11, MVT::v32i8,// ->100375
/*100364*/            OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*100366*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVYrrr), 0,
                          MVT::v32i8, 3/*#Ops*/, 1, 2, 0, 
                      // Src: (or:{ *:[v32i8] } (and:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src3, VR256:{ *:[v32i8] }:$src1), (X86andnp:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src3, VR256:{ *:[v32i8] }:$src2)) - Complexity = 9
                      // Dst: (VPCMOVYrrr:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2, VR256:{ *:[v32i8] }:$src3)
/*100375*/          /*SwitchType*/ 11, MVT::v16i16,// ->100388
/*100377*/            OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*100379*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVYrrr), 0,
                          MVT::v16i16, 3/*#Ops*/, 1, 2, 0, 
                      // Src: (or:{ *:[v16i16] } (and:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src3, VR256:{ *:[v16i16] }:$src1), (X86andnp:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src3, VR256:{ *:[v16i16] }:$src2)) - Complexity = 9
                      // Dst: (VPCMOVYrrr:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2, VR256:{ *:[v16i16] }:$src3)
/*100388*/          /*SwitchType*/ 11, MVT::v8i32,// ->100401
/*100390*/            OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*100392*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVYrrr), 0,
                          MVT::v8i32, 3/*#Ops*/, 1, 2, 0, 
                      // Src: (or:{ *:[v8i32] } (and:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src3, VR256:{ *:[v8i32] }:$src1), (X86andnp:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src3, VR256:{ *:[v8i32] }:$src2)) - Complexity = 9
                      // Dst: (VPCMOVYrrr:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2, VR256:{ *:[v8i32] }:$src3)
/*100401*/          0, // EndSwitchType
/*100402*/        /*Scope*/ 110, /*->100513*/
/*100403*/          OPC_CheckChild0Same, 1,
/*100405*/          OPC_RecordChild1, // #2 = $src2
/*100406*/          OPC_MoveParent,
/*100407*/          OPC_SwitchType /*8 cases */, 11, MVT::v2i64,// ->100421
/*100410*/            OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*100412*/            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)
/*100421*/          /*SwitchType*/ 11, MVT::v4i64,// ->100434
/*100423*/            OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*100425*/            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)
/*100434*/          /*SwitchType*/ 11, MVT::v16i8,// ->100447
/*100436*/            OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*100438*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVrrr), 0,
                          MVT::v16i8, 3/*#Ops*/, 0, 2, 1, 
                      // Src: (or:{ *:[v16i8] } (and:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src3), (X86andnp:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src3, VR128:{ *:[v16i8] }:$src2)) - Complexity = 9
                      // Dst: (VPCMOVrrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2, VR128:{ *:[v16i8] }:$src3)
/*100447*/          /*SwitchType*/ 11, MVT::v8i16,// ->100460
/*100449*/            OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*100451*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVrrr), 0,
                          MVT::v8i16, 3/*#Ops*/, 0, 2, 1, 
                      // Src: (or:{ *:[v8i16] } (and:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src3), (X86andnp:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src3, VR128:{ *:[v8i16] }:$src2)) - Complexity = 9
                      // Dst: (VPCMOVrrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2, VR128:{ *:[v8i16] }:$src3)
/*100460*/          /*SwitchType*/ 11, MVT::v4i32,// ->100473
/*100462*/            OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*100464*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVrrr), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 2, 1, 
                      // Src: (or:{ *:[v4i32] } (and:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src3), (X86andnp:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src3, VR128:{ *:[v4i32] }:$src2)) - Complexity = 9
                      // Dst: (VPCMOVrrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2, VR128:{ *:[v4i32] }:$src3)
/*100473*/          /*SwitchType*/ 11, MVT::v32i8,// ->100486
/*100475*/            OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*100477*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVYrrr), 0,
                          MVT::v32i8, 3/*#Ops*/, 0, 2, 1, 
                      // Src: (or:{ *:[v32i8] } (and:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src3), (X86andnp:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src3, VR256:{ *:[v32i8] }:$src2)) - Complexity = 9
                      // Dst: (VPCMOVYrrr:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2, VR256:{ *:[v32i8] }:$src3)
/*100486*/          /*SwitchType*/ 11, MVT::v16i16,// ->100499
/*100488*/            OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*100490*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVYrrr), 0,
                          MVT::v16i16, 3/*#Ops*/, 0, 2, 1, 
                      // Src: (or:{ *:[v16i16] } (and:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src3), (X86andnp:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src3, VR256:{ *:[v16i16] }:$src2)) - Complexity = 9
                      // Dst: (VPCMOVYrrr:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2, VR256:{ *:[v16i16] }:$src3)
/*100499*/          /*SwitchType*/ 11, MVT::v8i32,// ->100512
/*100501*/            OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*100503*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVYrrr), 0,
                          MVT::v8i32, 3/*#Ops*/, 0, 2, 1, 
                      // Src: (or:{ *:[v8i32] } (and:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src3), (X86andnp:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src3, VR256:{ *:[v8i32] }:$src2)) - Complexity = 9
                      // Dst: (VPCMOVYrrr:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2, VR256:{ *:[v8i32] }:$src3)
/*100512*/          0, // EndSwitchType
/*100513*/        0, /*End of Scope*/
/*100514*/      /*SwitchOpcode*/ 41|128,2/*297*/, TARGET_VAL(X86ISD::ANDNP),// ->100815
/*100518*/        OPC_RecordChild0, // #0 = $src3
/*100519*/        OPC_RecordChild1, // #1 = $src2
/*100520*/        OPC_MoveParent,
/*100521*/        OPC_MoveChild1,
/*100522*/        OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*100525*/        OPC_Scope, 17, /*->100544*/ // 16 children in Scope
/*100527*/          OPC_CheckChild0Same, 0,
/*100529*/          OPC_RecordChild1, // #2 = $src1
/*100530*/          OPC_MoveParent,
/*100531*/          OPC_CheckType, MVT::v2i64,
/*100533*/          OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*100535*/          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)
/*100544*/        /*Scope*/ 17, /*->100562*/
/*100545*/          OPC_RecordChild0, // #2 = $src1
/*100546*/          OPC_CheckChild1Same, 0,
/*100548*/          OPC_MoveParent,
/*100549*/          OPC_CheckType, MVT::v2i64,
/*100551*/          OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*100553*/          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)
/*100562*/        /*Scope*/ 17, /*->100580*/
/*100563*/          OPC_CheckChild0Same, 0,
/*100565*/          OPC_RecordChild1, // #2 = $src1
/*100566*/          OPC_MoveParent,
/*100567*/          OPC_CheckType, MVT::v4i64,
/*100569*/          OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*100571*/          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)
/*100580*/        /*Scope*/ 17, /*->100598*/
/*100581*/          OPC_RecordChild0, // #2 = $src1
/*100582*/          OPC_CheckChild1Same, 0,
/*100584*/          OPC_MoveParent,
/*100585*/          OPC_CheckType, MVT::v4i64,
/*100587*/          OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*100589*/          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)
/*100598*/        /*Scope*/ 17, /*->100616*/
/*100599*/          OPC_CheckChild0Same, 0,
/*100601*/          OPC_RecordChild1, // #2 = $src1
/*100602*/          OPC_MoveParent,
/*100603*/          OPC_CheckType, MVT::v16i8,
/*100605*/          OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*100607*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVrrr), 0,
                        MVT::v16i8, 3/*#Ops*/, 2, 1, 0, 
                    // Src: (or:{ *:[v16i8] } (X86andnp:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src3, VR128:{ *:[v16i8] }:$src2), (and:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src3, VR128:{ *:[v16i8] }:$src1)) - Complexity = 9
                    // Dst: (VPCMOVrrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2, VR128:{ *:[v16i8] }:$src3)
/*100616*/        /*Scope*/ 17, /*->100634*/
/*100617*/          OPC_RecordChild0, // #2 = $src1
/*100618*/          OPC_CheckChild1Same, 0,
/*100620*/          OPC_MoveParent,
/*100621*/          OPC_CheckType, MVT::v16i8,
/*100623*/          OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*100625*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVrrr), 0,
                        MVT::v16i8, 3/*#Ops*/, 2, 1, 0, 
                    // Src: (or:{ *:[v16i8] } (X86andnp:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src3, VR128:{ *:[v16i8] }:$src2), (and:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src3)) - Complexity = 9
                    // Dst: (VPCMOVrrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2, VR128:{ *:[v16i8] }:$src3)
/*100634*/        /*Scope*/ 17, /*->100652*/
/*100635*/          OPC_CheckChild0Same, 0,
/*100637*/          OPC_RecordChild1, // #2 = $src1
/*100638*/          OPC_MoveParent,
/*100639*/          OPC_CheckType, MVT::v8i16,
/*100641*/          OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*100643*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVrrr), 0,
                        MVT::v8i16, 3/*#Ops*/, 2, 1, 0, 
                    // Src: (or:{ *:[v8i16] } (X86andnp:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src3, VR128:{ *:[v8i16] }:$src2), (and:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src3, VR128:{ *:[v8i16] }:$src1)) - Complexity = 9
                    // Dst: (VPCMOVrrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2, VR128:{ *:[v8i16] }:$src3)
/*100652*/        /*Scope*/ 17, /*->100670*/
/*100653*/          OPC_RecordChild0, // #2 = $src1
/*100654*/          OPC_CheckChild1Same, 0,
/*100656*/          OPC_MoveParent,
/*100657*/          OPC_CheckType, MVT::v8i16,
/*100659*/          OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*100661*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVrrr), 0,
                        MVT::v8i16, 3/*#Ops*/, 2, 1, 0, 
                    // Src: (or:{ *:[v8i16] } (X86andnp:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src3, VR128:{ *:[v8i16] }:$src2), (and:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src3)) - Complexity = 9
                    // Dst: (VPCMOVrrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2, VR128:{ *:[v8i16] }:$src3)
/*100670*/        /*Scope*/ 17, /*->100688*/
/*100671*/          OPC_CheckChild0Same, 0,
/*100673*/          OPC_RecordChild1, // #2 = $src1
/*100674*/          OPC_MoveParent,
/*100675*/          OPC_CheckType, MVT::v4i32,
/*100677*/          OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*100679*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVrrr), 0,
                        MVT::v4i32, 3/*#Ops*/, 2, 1, 0, 
                    // Src: (or:{ *:[v4i32] } (X86andnp:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src3, VR128:{ *:[v4i32] }:$src2), (and:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src3, VR128:{ *:[v4i32] }:$src1)) - Complexity = 9
                    // Dst: (VPCMOVrrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2, VR128:{ *:[v4i32] }:$src3)
/*100688*/        /*Scope*/ 17, /*->100706*/
/*100689*/          OPC_RecordChild0, // #2 = $src1
/*100690*/          OPC_CheckChild1Same, 0,
/*100692*/          OPC_MoveParent,
/*100693*/          OPC_CheckType, MVT::v4i32,
/*100695*/          OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*100697*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVrrr), 0,
                        MVT::v4i32, 3/*#Ops*/, 2, 1, 0, 
                    // Src: (or:{ *:[v4i32] } (X86andnp:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src3, VR128:{ *:[v4i32] }:$src2), (and:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src3)) - Complexity = 9
                    // Dst: (VPCMOVrrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2, VR128:{ *:[v4i32] }:$src3)
/*100706*/        /*Scope*/ 17, /*->100724*/
/*100707*/          OPC_CheckChild0Same, 0,
/*100709*/          OPC_RecordChild1, // #2 = $src1
/*100710*/          OPC_MoveParent,
/*100711*/          OPC_CheckType, MVT::v32i8,
/*100713*/          OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*100715*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVYrrr), 0,
                        MVT::v32i8, 3/*#Ops*/, 2, 1, 0, 
                    // Src: (or:{ *:[v32i8] } (X86andnp:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src3, VR256:{ *:[v32i8] }:$src2), (and:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src3, VR256:{ *:[v32i8] }:$src1)) - Complexity = 9
                    // Dst: (VPCMOVYrrr:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2, VR256:{ *:[v32i8] }:$src3)
/*100724*/        /*Scope*/ 17, /*->100742*/
/*100725*/          OPC_RecordChild0, // #2 = $src1
/*100726*/          OPC_CheckChild1Same, 0,
/*100728*/          OPC_MoveParent,
/*100729*/          OPC_CheckType, MVT::v32i8,
/*100731*/          OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*100733*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVYrrr), 0,
                        MVT::v32i8, 3/*#Ops*/, 2, 1, 0, 
                    // Src: (or:{ *:[v32i8] } (X86andnp:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src3, VR256:{ *:[v32i8] }:$src2), (and:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src3)) - Complexity = 9
                    // Dst: (VPCMOVYrrr:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2, VR256:{ *:[v32i8] }:$src3)
/*100742*/        /*Scope*/ 17, /*->100760*/
/*100743*/          OPC_CheckChild0Same, 0,
/*100745*/          OPC_RecordChild1, // #2 = $src1
/*100746*/          OPC_MoveParent,
/*100747*/          OPC_CheckType, MVT::v16i16,
/*100749*/          OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*100751*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVYrrr), 0,
                        MVT::v16i16, 3/*#Ops*/, 2, 1, 0, 
                    // Src: (or:{ *:[v16i16] } (X86andnp:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src3, VR256:{ *:[v16i16] }:$src2), (and:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src3, VR256:{ *:[v16i16] }:$src1)) - Complexity = 9
                    // Dst: (VPCMOVYrrr:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2, VR256:{ *:[v16i16] }:$src3)
/*100760*/        /*Scope*/ 17, /*->100778*/
/*100761*/          OPC_RecordChild0, // #2 = $src1
/*100762*/          OPC_CheckChild1Same, 0,
/*100764*/          OPC_MoveParent,
/*100765*/          OPC_CheckType, MVT::v16i16,
/*100767*/          OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*100769*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVYrrr), 0,
                        MVT::v16i16, 3/*#Ops*/, 2, 1, 0, 
                    // Src: (or:{ *:[v16i16] } (X86andnp:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src3, VR256:{ *:[v16i16] }:$src2), (and:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src3)) - Complexity = 9
                    // Dst: (VPCMOVYrrr:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2, VR256:{ *:[v16i16] }:$src3)
/*100778*/        /*Scope*/ 17, /*->100796*/
/*100779*/          OPC_CheckChild0Same, 0,
/*100781*/          OPC_RecordChild1, // #2 = $src1
/*100782*/          OPC_MoveParent,
/*100783*/          OPC_CheckType, MVT::v8i32,
/*100785*/          OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*100787*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVYrrr), 0,
                        MVT::v8i32, 3/*#Ops*/, 2, 1, 0, 
                    // Src: (or:{ *:[v8i32] } (X86andnp:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src3, VR256:{ *:[v8i32] }:$src2), (and:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src3, VR256:{ *:[v8i32] }:$src1)) - Complexity = 9
                    // Dst: (VPCMOVYrrr:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2, VR256:{ *:[v8i32] }:$src3)
/*100796*/        /*Scope*/ 17, /*->100814*/
/*100797*/          OPC_RecordChild0, // #2 = $src1
/*100798*/          OPC_CheckChild1Same, 0,
/*100800*/          OPC_MoveParent,
/*100801*/          OPC_CheckType, MVT::v8i32,
/*100803*/          OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*100805*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMOVYrrr), 0,
                        MVT::v8i32, 3/*#Ops*/, 2, 1, 0, 
                    // Src: (or:{ *:[v8i32] } (X86andnp:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src3, VR256:{ *:[v8i32] }:$src2), (and:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src3)) - Complexity = 9
                    // Dst: (VPCMOVYrrr:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2, VR256:{ *:[v8i32] }:$src3)
/*100814*/        0, /*End of Scope*/
/*100815*/      0, // EndSwitchOpcode
/*100816*/    /*Scope*/ 60|128,4/*572*/, /*->101390*/
/*100818*/      OPC_RecordChild0, // #0 = $src1
/*100819*/      OPC_RecordChild1, // #1 = $src2
/*100820*/      OPC_SwitchType /*19 cases */, 35, MVT::v2i64,// ->100858
/*100823*/        OPC_Scope, 10, /*->100835*/ // 3 children in Scope
/*100825*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*100827*/          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)
/*100835*/        /*Scope*/ 10, /*->100846*/
/*100836*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*100838*/          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)
/*100846*/        /*Scope*/ 10, /*->100857*/
/*100847*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*100849*/          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)
/*100857*/        0, /*End of Scope*/
/*100858*/      /*SwitchType*/ 35, MVT::v4i64,// ->100895
/*100860*/        OPC_Scope, 10, /*->100872*/ // 3 children in Scope
/*100862*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*100864*/          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)
/*100872*/        /*Scope*/ 10, /*->100883*/
/*100873*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*100875*/          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)
/*100883*/        /*Scope*/ 10, /*->100894*/
/*100884*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*100886*/          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)
/*100894*/        0, /*End of Scope*/
/*100895*/      /*SwitchType*/ 35, MVT::v32i8,// ->100932
/*100897*/        OPC_Scope, 10, /*->100909*/ // 3 children in Scope
/*100899*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*100901*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPORYrr), 0,
                        MVT::v32i8, 2/*#Ops*/, 0, 1, 
                    // Src: (or:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2) - Complexity = 3
                    // Dst: (VPORYrr:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2)
/*100909*/        /*Scope*/ 10, /*->100920*/
/*100910*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*100912*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VORPSYrr), 0,
                        MVT::v32i8, 2/*#Ops*/, 0, 1, 
                    // Src: (or:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2) - Complexity = 3
                    // Dst: (VORPSYrr:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2)
/*100920*/        /*Scope*/ 10, /*->100931*/
/*100921*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*100923*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ256rr), 0,
                        MVT::v32i8, 2/*#Ops*/, 0, 1, 
                    // Src: (or:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2) - Complexity = 3
                    // Dst: (VPORQZ256rr:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*100931*/        0, /*End of Scope*/
/*100932*/      /*SwitchType*/ 35, MVT::v16i16,// ->100969
/*100934*/        OPC_Scope, 10, /*->100946*/ // 3 children in Scope
/*100936*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*100938*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPORYrr), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1, 
                    // Src: (or:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2) - Complexity = 3
                    // Dst: (VPORYrr:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2)
/*100946*/        /*Scope*/ 10, /*->100957*/
/*100947*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*100949*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VORPSYrr), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1, 
                    // Src: (or:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2) - Complexity = 3
                    // Dst: (VORPSYrr:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2)
/*100957*/        /*Scope*/ 10, /*->100968*/
/*100958*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*100960*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ256rr), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1, 
                    // Src: (or:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2) - Complexity = 3
                    // Dst: (VPORQZ256rr:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*100968*/        0, /*End of Scope*/
/*100969*/      /*SwitchType*/ 35, MVT::v8i32,// ->101006
/*100971*/        OPC_Scope, 10, /*->100983*/ // 3 children in Scope
/*100973*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*100975*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPORYrr), 0,
                        MVT::v8i32, 2/*#Ops*/, 0, 1, 
                    // Src: (or:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2) - Complexity = 3
                    // Dst: (VPORYrr:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2)
/*100983*/        /*Scope*/ 10, /*->100994*/
/*100984*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*100986*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VORPSYrr), 0,
                        MVT::v8i32, 2/*#Ops*/, 0, 1, 
                    // Src: (or:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2) - Complexity = 3
                    // Dst: (VORPSYrr:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2)
/*100994*/        /*Scope*/ 10, /*->101005*/
/*100995*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*100997*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ256rr), 0,
                        MVT::v8i32, 2/*#Ops*/, 0, 1, 
                    // Src: (or:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2) - Complexity = 3
                    // Dst: (VPORDZ256rr:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*101005*/        0, /*End of Scope*/
/*101006*/      /*SwitchType*/ 35, MVT::v16i8,// ->101043
/*101008*/        OPC_Scope, 10, /*->101020*/ // 3 children in Scope
/*101010*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*101012*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPORrr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (or:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (VPORrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)
/*101020*/        /*Scope*/ 10, /*->101031*/
/*101021*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*101023*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PORrr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (or:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (PORrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)
/*101031*/        /*Scope*/ 10, /*->101042*/
/*101032*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*101034*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ128rr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (or:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (VPORQZ128rr:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*101042*/        0, /*End of Scope*/
/*101043*/      /*SwitchType*/ 35, MVT::v8i16,// ->101080
/*101045*/        OPC_Scope, 10, /*->101057*/ // 3 children in Scope
/*101047*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*101049*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPORrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (or:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (VPORrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*101057*/        /*Scope*/ 10, /*->101068*/
/*101058*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*101060*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PORrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (or:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (PORrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*101068*/        /*Scope*/ 10, /*->101079*/
/*101069*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*101071*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ128rr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (or:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (VPORQZ128rr:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*101079*/        0, /*End of Scope*/
/*101080*/      /*SwitchType*/ 35, MVT::v4i32,// ->101117
/*101082*/        OPC_Scope, 10, /*->101094*/ // 3 children in Scope
/*101084*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*101086*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPORrr), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (or:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 3
                    // Dst: (VPORrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/*101094*/        /*Scope*/ 10, /*->101105*/
/*101095*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*101097*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PORrr), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (or:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 3
                    // Dst: (PORrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/*101105*/        /*Scope*/ 10, /*->101116*/
/*101106*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*101108*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ128rr), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (or:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2) - Complexity = 3
                    // Dst: (VPORDZ128rr:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*101116*/        0, /*End of Scope*/
/*101117*/      /*SwitchType*/ 57, MVT::v8i1,// ->101176
/*101119*/        OPC_Scope, 10, /*->101131*/ // 2 children in Scope
/*101121*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*101123*/          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)
/*101131*/        /*Scope*/ 43, /*->101175*/
/*101132*/          OPC_CheckPatternPredicate, 116, // (!Subtarget->hasDQI())
/*101134*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*101137*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*101145*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*101148*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 1, 4,  // Results = #5
/*101156*/          OPC_EmitNode1, TARGET_VAL(X86::KORWrr), 0,
                        MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/*101164*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*101167*/          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] })
/*101175*/        0, /*End of Scope*/
/*101176*/      /*SwitchType*/ 10, MVT::v16i1,// ->101188
/*101178*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*101180*/        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)
/*101188*/      /*SwitchType*/ 10, MVT::v32i1,// ->101200
/*101190*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*101192*/        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)
/*101200*/      /*SwitchType*/ 10, MVT::v64i1,// ->101212
/*101202*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*101204*/        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)
/*101212*/      /*SwitchType*/ 10, MVT::v8i64,// ->101224
/*101214*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*101216*/        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)
/*101224*/      /*SwitchType*/ 10, MVT::v16i32,// ->101236
/*101226*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*101228*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZrr), 0,
                      MVT::v16i32, 2/*#Ops*/, 0, 1, 
                  // Src: (or:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2) - Complexity = 3
                  // Dst: (VPORDZrr:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*101236*/      /*SwitchType*/ 10, MVT::v64i8,// ->101248
/*101238*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*101240*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZrr), 0,
                      MVT::v64i8, 2/*#Ops*/, 0, 1, 
                  // Src: (or:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2) - Complexity = 3
                  // Dst: (VPORQZrr:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*101248*/      /*SwitchType*/ 10, MVT::v32i16,// ->101260
/*101250*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*101252*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZrr), 0,
                      MVT::v32i16, 2/*#Ops*/, 0, 1, 
                  // Src: (or:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2) - Complexity = 3
                  // Dst: (VPORQZrr:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*101260*/      /*SwitchType*/ 41, MVT::v1i1,// ->101303
/*101262*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*101265*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*101273*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*101276*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 1, 4,  // Results = #5
/*101284*/        OPC_EmitNode1, TARGET_VAL(X86::KORWrr), 0,
                      MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/*101292*/        OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/*101295*/        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] })
/*101303*/      /*SwitchType*/ 41, MVT::v2i1,// ->101346
/*101305*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*101308*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*101316*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*101319*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 1, 4,  // Results = #5
/*101327*/        OPC_EmitNode1, TARGET_VAL(X86::KORWrr), 0,
                      MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/*101335*/        OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/*101338*/        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] })
/*101346*/      /*SwitchType*/ 41, MVT::v4i1,// ->101389
/*101348*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*101351*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*101359*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*101362*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 1, 4,  // Results = #5
/*101370*/        OPC_EmitNode1, TARGET_VAL(X86::KORWrr), 0,
                      MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/*101378*/        OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/*101381*/        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] })
/*101389*/      0, // EndSwitchType
/*101390*/    0, /*End of Scope*/
/*101391*/  /*SwitchOpcode*/ 85|128,53/*6869*/, TARGET_VAL(ISD::XOR),// ->108264
/*101395*/    OPC_Scope, 105, /*->101502*/ // 31 children in Scope
/*101397*/      OPC_RecordChild0, // #0 = $src1
/*101398*/      OPC_MoveChild1,
/*101399*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*101402*/      OPC_RecordMemRef,
/*101403*/      OPC_RecordNode, // #1 = 'ld' chained node
/*101404*/      OPC_CheckFoldableChainNode,
/*101405*/      OPC_RecordChild1, // #2 = $src2
/*101406*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*101408*/      OPC_Scope, 22, /*->101432*/ // 4 children in Scope
/*101410*/        OPC_CheckPredicate, 5, // Predicate_loadi8
/*101412*/        OPC_MoveParent,
/*101413*/        OPC_CheckType, MVT::i8,
/*101415*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*101418*/        OPC_EmitMergeInputChains1_1,
/*101419*/        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)
/*101432*/      /*Scope*/ 22, /*->101455*/
/*101433*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/*101435*/        OPC_MoveParent,
/*101436*/        OPC_CheckType, MVT::i16,
/*101438*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*101441*/        OPC_EmitMergeInputChains1_1,
/*101442*/        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)
/*101455*/      /*Scope*/ 22, /*->101478*/
/*101456*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*101458*/        OPC_MoveParent,
/*101459*/        OPC_CheckType, MVT::i32,
/*101461*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*101464*/        OPC_EmitMergeInputChains1_1,
/*101465*/        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)
/*101478*/      /*Scope*/ 22, /*->101501*/
/*101479*/        OPC_CheckPredicate, 9, // Predicate_load
/*101481*/        OPC_MoveParent,
/*101482*/        OPC_CheckType, MVT::i64,
/*101484*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*101487*/        OPC_EmitMergeInputChains1_1,
/*101488*/        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)
/*101501*/      0, /*End of Scope*/
/*101502*/    /*Scope*/ 108, /*->101611*/
/*101503*/      OPC_MoveChild0,
/*101504*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*101507*/      OPC_RecordMemRef,
/*101508*/      OPC_RecordNode, // #0 = 'ld' chained node
/*101509*/      OPC_CheckFoldableChainNode,
/*101510*/      OPC_RecordChild1, // #1 = $src2
/*101511*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*101513*/      OPC_Scope, 23, /*->101538*/ // 4 children in Scope
/*101515*/        OPC_CheckPredicate, 5, // Predicate_loadi8
/*101517*/        OPC_MoveParent,
/*101518*/        OPC_RecordChild1, // #2 = $src1
/*101519*/        OPC_CheckType, MVT::i8,
/*101521*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*101524*/        OPC_EmitMergeInputChains1_0,
/*101525*/        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)
/*101538*/      /*Scope*/ 23, /*->101562*/
/*101539*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/*101541*/        OPC_MoveParent,
/*101542*/        OPC_RecordChild1, // #2 = $src1
/*101543*/        OPC_CheckType, MVT::i16,
/*101545*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*101548*/        OPC_EmitMergeInputChains1_0,
/*101549*/        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)
/*101562*/      /*Scope*/ 23, /*->101586*/
/*101563*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*101565*/        OPC_MoveParent,
/*101566*/        OPC_RecordChild1, // #2 = $src1
/*101567*/        OPC_CheckType, MVT::i32,
/*101569*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*101572*/        OPC_EmitMergeInputChains1_0,
/*101573*/        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)
/*101586*/      /*Scope*/ 23, /*->101610*/
/*101587*/        OPC_CheckPredicate, 9, // Predicate_load
/*101589*/        OPC_MoveParent,
/*101590*/        OPC_RecordChild1, // #2 = $src1
/*101591*/        OPC_CheckType, MVT::i64,
/*101593*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*101596*/        OPC_EmitMergeInputChains1_0,
/*101597*/        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)
/*101610*/      0, /*End of Scope*/
/*101611*/    /*Scope*/ 123, /*->101735*/
/*101612*/      OPC_RecordChild0, // #0 = $src1
/*101613*/      OPC_MoveChild1,
/*101614*/      OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/*101617*/      OPC_CheckChild0Integer, 1, 
/*101619*/      OPC_MoveChild1,
/*101620*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*101623*/      OPC_RecordChild0, // #1 = $src2
/*101624*/      OPC_MoveChild1,
/*101625*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*101628*/      OPC_MoveParent,
/*101629*/      OPC_CheckType, MVT::i8,
/*101631*/      OPC_Scope, 33, /*->101666*/ // 3 children in Scope
/*101633*/        OPC_CheckPredicate, 12, // Predicate_shiftMask16
/*101635*/        OPC_MoveParent,
/*101636*/        OPC_MoveParent,
/*101637*/        OPC_CheckType, MVT::i16,
/*101639*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i16, 0/*#Ops*/,  // Results = #2
/*101645*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*101648*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i16, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/*101657*/        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_shiftMask16>>)) - Complexity = 18
                  // Dst: (BTC16rr:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, (INSERT_SUBREG:{ *:[i16] } (IMPLICIT_DEF:{ *:[i16] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/*101666*/      /*Scope*/ 33, /*->101700*/
/*101667*/        OPC_CheckPredicate, 6, // Predicate_shiftMask32
/*101669*/        OPC_MoveParent,
/*101670*/        OPC_MoveParent,
/*101671*/        OPC_CheckType, MVT::i32,
/*101673*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i32, 0/*#Ops*/,  // Results = #2
/*101679*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*101682*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i32, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/*101691*/        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_shiftMask32>>)) - Complexity = 18
                  // Dst: (BTC32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/*101700*/      /*Scope*/ 33, /*->101734*/
/*101701*/        OPC_CheckPredicate, 10, // Predicate_shiftMask64
/*101703*/        OPC_MoveParent,
/*101704*/        OPC_MoveParent,
/*101705*/        OPC_CheckType, MVT::i64,
/*101707*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i64, 0/*#Ops*/,  // Results = #2
/*101713*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*101716*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i64, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/*101725*/        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_shiftMask64>>)) - Complexity = 18
                  // Dst: (BTC64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/*101734*/      0, /*End of Scope*/
/*101735*/    /*Scope*/ 125, /*->101861*/
/*101736*/      OPC_MoveChild0,
/*101737*/      OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/*101740*/      OPC_CheckChild0Integer, 1, 
/*101742*/      OPC_MoveChild1,
/*101743*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*101746*/      OPC_RecordChild0, // #0 = $src2
/*101747*/      OPC_MoveChild1,
/*101748*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*101751*/      OPC_MoveParent,
/*101752*/      OPC_CheckType, MVT::i8,
/*101754*/      OPC_Scope, 34, /*->101790*/ // 3 children in Scope
/*101756*/        OPC_CheckPredicate, 12, // Predicate_shiftMask16
/*101758*/        OPC_MoveParent,
/*101759*/        OPC_MoveParent,
/*101760*/        OPC_RecordChild1, // #1 = $src1
/*101761*/        OPC_CheckType, MVT::i16,
/*101763*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i16, 0/*#Ops*/,  // Results = #2
/*101769*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*101772*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i16, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*101781*/        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_shiftMask16>>), GR16:{ *:[i16] }:$src1) - Complexity = 18
                  // Dst: (BTC16rr:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, (INSERT_SUBREG:{ *:[i16] } (IMPLICIT_DEF:{ *:[i16] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/*101790*/      /*Scope*/ 34, /*->101825*/
/*101791*/        OPC_CheckPredicate, 6, // Predicate_shiftMask32
/*101793*/        OPC_MoveParent,
/*101794*/        OPC_MoveParent,
/*101795*/        OPC_RecordChild1, // #1 = $src1
/*101796*/        OPC_CheckType, MVT::i32,
/*101798*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i32, 0/*#Ops*/,  // Results = #2
/*101804*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*101807*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i32, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*101816*/        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_shiftMask32>>), GR32:{ *:[i32] }:$src1) - Complexity = 18
                  // Dst: (BTC32rr:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/*101825*/      /*Scope*/ 34, /*->101860*/
/*101826*/        OPC_CheckPredicate, 10, // Predicate_shiftMask64
/*101828*/        OPC_MoveParent,
/*101829*/        OPC_MoveParent,
/*101830*/        OPC_RecordChild1, // #1 = $src1
/*101831*/        OPC_CheckType, MVT::i64,
/*101833*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i64, 0/*#Ops*/,  // Results = #2
/*101839*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*101842*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*101851*/        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_shiftMask64>>), GR64:{ *:[i64] }:$src1) - Complexity = 18
                  // Dst: (BTC64rr:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, (INSERT_SUBREG:{ *:[i64] } (IMPLICIT_DEF:{ *:[i64] }), GR8:{ *:[i8] }:$src2, sub_8bit:{ *:[i32] }))
/*101860*/      0, /*End of Scope*/
/*101861*/    /*Scope*/ 78, /*->101940*/
/*101862*/      OPC_RecordChild0, // #0 = $src
/*101863*/      OPC_MoveChild1,
/*101864*/      OPC_CheckOpcode, TARGET_VAL(ISD::ADD),
/*101867*/      OPC_CheckChild0Same, 0,
/*101869*/      OPC_Scope, 38, /*->101909*/ // 2 children in Scope
/*101871*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*101882*/        OPC_MoveParent,
/*101883*/        OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->101896
/*101886*/          OPC_CheckPatternPredicate, 108, // (Subtarget->hasBMI())
/*101888*/          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)
/*101896*/        /*SwitchType*/ 10, MVT::i64,// ->101908
/*101898*/          OPC_CheckPatternPredicate, 108, // (Subtarget->hasBMI())
/*101900*/          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)
/*101908*/        0, // EndSwitchType
/*101909*/      /*Scope*/ 29, /*->101939*/
/*101910*/        OPC_CheckChild1Integer, 1, 
/*101912*/        OPC_MoveParent,
/*101913*/        OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->101926
/*101916*/          OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/*101918*/          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)
/*101926*/        /*SwitchType*/ 10, MVT::i64,// ->101938
/*101928*/          OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/*101930*/          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)
/*101938*/        0, // EndSwitchType
/*101939*/      0, /*End of Scope*/
/*101940*/    /*Scope*/ 80, /*->102021*/
/*101941*/      OPC_MoveChild0,
/*101942*/      OPC_CheckOpcode, TARGET_VAL(ISD::ADD),
/*101945*/      OPC_RecordChild0, // #0 = $src
/*101946*/      OPC_Scope, 40, /*->101988*/ // 2 children in Scope
/*101948*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*101959*/        OPC_MoveParent,
/*101960*/        OPC_CheckChild1Same, 0,
/*101962*/        OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->101975
/*101965*/          OPC_CheckPatternPredicate, 108, // (Subtarget->hasBMI())
/*101967*/          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)
/*101975*/        /*SwitchType*/ 10, MVT::i64,// ->101987
/*101977*/          OPC_CheckPatternPredicate, 108, // (Subtarget->hasBMI())
/*101979*/          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)
/*101987*/        0, // EndSwitchType
/*101988*/      /*Scope*/ 31, /*->102020*/
/*101989*/        OPC_CheckChild1Integer, 1, 
/*101991*/        OPC_MoveParent,
/*101992*/        OPC_CheckChild1Same, 0,
/*101994*/        OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->102007
/*101997*/          OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/*101999*/          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)
/*102007*/        /*SwitchType*/ 10, MVT::i64,// ->102019
/*102009*/          OPC_CheckPatternPredicate, 107, // (Subtarget->hasTBM())
/*102011*/          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)
/*102019*/        0, // EndSwitchType
/*102020*/      0, /*End of Scope*/
/*102021*/    /*Scope*/ 100, /*->102122*/
/*102022*/      OPC_RecordChild0, // #0 = $src1
/*102023*/      OPC_MoveChild1,
/*102024*/      OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/*102027*/      OPC_CheckChild0Integer, 1, 
/*102029*/      OPC_RecordChild1, // #1 = $src2
/*102030*/      OPC_CheckChild1Type, MVT::i8,
/*102032*/      OPC_MoveParent,
/*102033*/      OPC_SwitchType /*3 cases */, 27, MVT::i16,// ->102063
/*102036*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i16, 0/*#Ops*/,  // Results = #2
/*102042*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*102045*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i16, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/*102054*/        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] }))
/*102063*/      /*SwitchType*/ 27, MVT::i32,// ->102092
/*102065*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i32, 0/*#Ops*/,  // Results = #2
/*102071*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*102074*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i32, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/*102083*/        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] }))
/*102092*/      /*SwitchType*/ 27, MVT::i64,// ->102121
/*102094*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i64, 0/*#Ops*/,  // Results = #2
/*102100*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*102103*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i64, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/*102112*/        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] }))
/*102121*/      0, // EndSwitchType
/*102122*/    /*Scope*/ 100, /*->102223*/
/*102123*/      OPC_MoveChild0,
/*102124*/      OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
/*102127*/      OPC_CheckChild0Integer, 1, 
/*102129*/      OPC_RecordChild1, // #0 = $src2
/*102130*/      OPC_CheckChild1Type, MVT::i8,
/*102132*/      OPC_MoveParent,
/*102133*/      OPC_RecordChild1, // #1 = $src1
/*102134*/      OPC_SwitchType /*3 cases */, 27, MVT::i16,// ->102164
/*102137*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i16, 0/*#Ops*/,  // Results = #2
/*102143*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*102146*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i16, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*102155*/        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] }))
/*102164*/      /*SwitchType*/ 27, MVT::i32,// ->102193
/*102166*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i32, 0/*#Ops*/,  // Results = #2
/*102172*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*102175*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i32, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*102184*/        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] }))
/*102193*/      /*SwitchType*/ 27, MVT::i64,// ->102222
/*102195*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i64, 0/*#Ops*/,  // Results = #2
/*102201*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*102204*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*102213*/        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] }))
/*102222*/      0, // EndSwitchType
/*102223*/    /*Scope*/ 102|128,7/*998*/, /*->103223*/
/*102225*/      OPC_RecordChild0, // #0 = $src1
/*102226*/      OPC_Scope, 49, /*->102277*/ // 3 children in Scope
/*102228*/        OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*102239*/        OPC_SwitchType /*4 cases */, 7, MVT::i8,// ->102249
/*102242*/          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)
/*102249*/        /*SwitchType*/ 7, MVT::i16,// ->102258
/*102251*/          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)
/*102258*/        /*SwitchType*/ 7, MVT::i32,// ->102267
/*102260*/          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)
/*102267*/        /*SwitchType*/ 7, MVT::i64,// ->102276
/*102269*/          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)
/*102276*/        0, // EndSwitchType
/*102277*/      /*Scope*/ 64|128,1/*192*/, /*->102471*/
/*102279*/        OPC_RecordChild1, // #1 = $mask
/*102280*/        OPC_Scope, 11|128,1/*139*/, /*->102422*/ // 5 children in Scope
/*102283*/          OPC_MoveChild1,
/*102284*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*102287*/          OPC_Scope, 21, /*->102310*/ // 6 children in Scope
/*102289*/            OPC_CheckPredicate, 61, // Predicate_BTCBTSMask64
/*102291*/            OPC_MoveParent,
/*102292*/            OPC_CheckType, MVT::i64,
/*102294*/            OPC_CheckPatternPredicate, 111, // (shouldOptForSize(MF))
/*102296*/            OPC_EmitConvertToTarget, 1,
/*102298*/            OPC_EmitNodeXForm, 13, 2, // BTCBTSXForm
/*102301*/            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))
/*102310*/          /*Scope*/ 16, /*->102327*/
/*102311*/            OPC_CheckPredicate, 13, // Predicate_i16immSExt8
/*102313*/            OPC_MoveParent,
/*102314*/            OPC_CheckType, MVT::i16,
/*102316*/            OPC_EmitConvertToTarget, 1,
/*102318*/            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)
/*102327*/          /*Scope*/ 16, /*->102344*/
/*102328*/            OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/*102330*/            OPC_MoveParent,
/*102331*/            OPC_CheckType, MVT::i32,
/*102333*/            OPC_EmitConvertToTarget, 1,
/*102335*/            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)
/*102344*/          /*Scope*/ 16, /*->102361*/
/*102345*/            OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/*102347*/            OPC_MoveParent,
/*102348*/            OPC_CheckType, MVT::i64,
/*102350*/            OPC_EmitConvertToTarget, 1,
/*102352*/            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)
/*102361*/          /*Scope*/ 16, /*->102378*/
/*102362*/            OPC_CheckPredicate, 38, // Predicate_i64immSExt32
/*102364*/            OPC_MoveParent,
/*102365*/            OPC_CheckType, MVT::i64,
/*102367*/            OPC_EmitConvertToTarget, 1,
/*102369*/            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)
/*102378*/          /*Scope*/ 42, /*->102421*/
/*102379*/            OPC_MoveParent,
/*102380*/            OPC_SwitchType /*3 cases */, 11, MVT::i8,// ->102394
/*102383*/              OPC_EmitConvertToTarget, 1,
/*102385*/              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)
/*102394*/            /*SwitchType*/ 11, MVT::i16,// ->102407
/*102396*/              OPC_EmitConvertToTarget, 1,
/*102398*/              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)
/*102407*/            /*SwitchType*/ 11, MVT::i32,// ->102420
/*102409*/              OPC_EmitConvertToTarget, 1,
/*102411*/              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)
/*102420*/            0, // EndSwitchType
/*102421*/          0, /*End of Scope*/
/*102422*/        /*Scope*/ 11, /*->102434*/
/*102423*/          OPC_CheckType, MVT::i8,
/*102425*/          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)
/*102434*/        /*Scope*/ 11, /*->102446*/
/*102435*/          OPC_CheckType, MVT::i16,
/*102437*/          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)
/*102446*/        /*Scope*/ 11, /*->102458*/
/*102447*/          OPC_CheckType, MVT::i32,
/*102449*/          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)
/*102458*/        /*Scope*/ 11, /*->102470*/
/*102459*/          OPC_CheckType, MVT::i64,
/*102461*/          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)
/*102470*/        0, /*End of Scope*/
/*102471*/      /*Scope*/ 109|128,5/*749*/, /*->103222*/
/*102473*/        OPC_MoveChild1,
/*102474*/        OPC_SwitchOpcode /*2 cases */, 88|128,4/*600*/, TARGET_VAL(ISD::LOAD),// ->103079
/*102479*/          OPC_RecordMemRef,
/*102480*/          OPC_RecordNode, // #1 = 'ld' chained node
/*102481*/          OPC_CheckFoldableChainNode,
/*102482*/          OPC_RecordChild1, // #2 = $src2
/*102483*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*102485*/          OPC_CheckPredicate, 9, // Predicate_load
/*102487*/          OPC_Scope, 21, /*->102510*/ // 5 children in Scope
/*102489*/            OPC_MoveParent,
/*102490*/            OPC_CheckType, MVT::v2i64,
/*102492*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*102494*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*102497*/            OPC_EmitMergeInputChains1_1,
/*102498*/            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>>) - Complexity = 25
                      // Dst: (VPXORrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*102510*/          /*Scope*/ 23, /*->102534*/
/*102511*/            OPC_CheckPredicate, 39, // Predicate_memop
/*102513*/            OPC_MoveParent,
/*102514*/            OPC_CheckType, MVT::v2i64,
/*102516*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*102518*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*102521*/            OPC_EmitMergeInputChains1_1,
/*102522*/            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_memop>>) - Complexity = 25
                      // Dst: (PXORrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*102534*/          /*Scope*/ 103|128,1/*231*/, /*->102767*/
/*102536*/            OPC_MoveParent,
/*102537*/            OPC_SwitchType /*7 cases */, 40, MVT::v4i64,// ->102580
/*102540*/              OPC_Scope, 18, /*->102560*/ // 2 children in Scope
/*102542*/                OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*102544*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*102547*/                OPC_EmitMergeInputChains1_1,
/*102548*/                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>>) - Complexity = 25
                          // Dst: (VPXORYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*102560*/              /*Scope*/ 18, /*->102579*/
/*102561*/                OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*102563*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*102566*/                OPC_EmitMergeInputChains1_1,
/*102567*/                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>>) - Complexity = 25
                          // Dst: (VXORPSYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*102579*/              0, /*End of Scope*/
/*102580*/            /*SwitchType*/ 40, MVT::v32i8,// ->102622
/*102582*/              OPC_Scope, 18, /*->102602*/ // 2 children in Scope
/*102584*/                OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*102586*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*102589*/                OPC_EmitMergeInputChains1_1,
/*102590*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORYrm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v32i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (xor:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                          // Dst: (VPXORYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*102602*/              /*Scope*/ 18, /*->102621*/
/*102603*/                OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*102605*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*102608*/                OPC_EmitMergeInputChains1_1,
/*102609*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VXORPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v32i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (xor:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                          // Dst: (VXORPSYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*102621*/              0, /*End of Scope*/
/*102622*/            /*SwitchType*/ 40, MVT::v16i16,// ->102664
/*102624*/              OPC_Scope, 18, /*->102644*/ // 2 children in Scope
/*102626*/                OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*102628*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*102631*/                OPC_EmitMergeInputChains1_1,
/*102632*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORYrm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (xor:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                          // Dst: (VPXORYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*102644*/              /*Scope*/ 18, /*->102663*/
/*102645*/                OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*102647*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*102650*/                OPC_EmitMergeInputChains1_1,
/*102651*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VXORPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (xor:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                          // Dst: (VXORPSYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*102663*/              0, /*End of Scope*/
/*102664*/            /*SwitchType*/ 40, MVT::v8i32,// ->102706
/*102666*/              OPC_Scope, 18, /*->102686*/ // 2 children in Scope
/*102668*/                OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*102670*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*102673*/                OPC_EmitMergeInputChains1_1,
/*102674*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORYrm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (xor:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                          // Dst: (VPXORYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*102686*/              /*Scope*/ 18, /*->102705*/
/*102687*/                OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*102689*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*102692*/                OPC_EmitMergeInputChains1_1,
/*102693*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VXORPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                          // Src: (xor:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                          // Dst: (VXORPSYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*102705*/              0, /*End of Scope*/
/*102706*/            /*SwitchType*/ 18, MVT::v16i8,// ->102726
/*102708*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*102710*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*102713*/              OPC_EmitMergeInputChains1_1,
/*102714*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (xor:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VPXORrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*102726*/            /*SwitchType*/ 18, MVT::v8i16,// ->102746
/*102728*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*102730*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*102733*/              OPC_EmitMergeInputChains1_1,
/*102734*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (xor:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VPXORrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*102746*/            /*SwitchType*/ 18, MVT::v4i32,// ->102766
/*102748*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*102750*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*102753*/              OPC_EmitMergeInputChains1_1,
/*102754*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (xor:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VPXORrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*102766*/            0, // EndSwitchType
/*102767*/          /*Scope*/ 65, /*->102833*/
/*102768*/            OPC_CheckPredicate, 39, // Predicate_memop
/*102770*/            OPC_MoveParent,
/*102771*/            OPC_SwitchType /*3 cases */, 18, MVT::v16i8,// ->102792
/*102774*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*102776*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*102779*/              OPC_EmitMergeInputChains1_1,
/*102780*/              OPC_MorphNodeTo1, TARGET_VAL(X86::PXORrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (xor:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                        // Dst: (PXORrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*102792*/            /*SwitchType*/ 18, MVT::v8i16,// ->102812
/*102794*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*102796*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*102799*/              OPC_EmitMergeInputChains1_1,
/*102800*/              OPC_MorphNodeTo1, TARGET_VAL(X86::PXORrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (xor:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                        // Dst: (PXORrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*102812*/            /*SwitchType*/ 18, MVT::v4i32,// ->102832
/*102814*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*102816*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*102819*/              OPC_EmitMergeInputChains1_1,
/*102820*/              OPC_MorphNodeTo1, TARGET_VAL(X86::PXORrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (xor:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                        // Dst: (PXORrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*102832*/            0, // EndSwitchType
/*102833*/          /*Scope*/ 115|128,1/*243*/, /*->103078*/
/*102835*/            OPC_MoveParent,
/*102836*/            OPC_SwitchType /*12 cases */, 18, MVT::v8i64,// ->102857
/*102839*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*102841*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*102844*/              OPC_EmitMergeInputChains1_1,
/*102845*/              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>>) - Complexity = 25
                        // Dst: (VPXORQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*102857*/            /*SwitchType*/ 18, MVT::v4i64,// ->102877
/*102859*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*102861*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*102864*/              OPC_EmitMergeInputChains1_1,
/*102865*/              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>>) - Complexity = 25
                        // Dst: (VPXORQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*102877*/            /*SwitchType*/ 18, MVT::v2i64,// ->102897
/*102879*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*102881*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*102884*/              OPC_EmitMergeInputChains1_1,
/*102885*/              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>>) - Complexity = 25
                        // Dst: (VPXORQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*102897*/            /*SwitchType*/ 18, MVT::v16i32,// ->102917
/*102899*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*102901*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*102904*/              OPC_EmitMergeInputChains1_1,
/*102905*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (xor:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VPXORDZrm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*102917*/            /*SwitchType*/ 18, MVT::v8i32,// ->102937
/*102919*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*102921*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*102924*/              OPC_EmitMergeInputChains1_1,
/*102925*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (xor:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VPXORDZ256rm:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*102937*/            /*SwitchType*/ 18, MVT::v4i32,// ->102957
/*102939*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*102941*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*102944*/              OPC_EmitMergeInputChains1_1,
/*102945*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (xor:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VPXORDZ128rm:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*102957*/            /*SwitchType*/ 18, MVT::v16i8,// ->102977
/*102959*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*102961*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*102964*/              OPC_EmitMergeInputChains1_1,
/*102965*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (xor:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VPXORQZ128rm:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*102977*/            /*SwitchType*/ 18, MVT::v8i16,// ->102997
/*102979*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*102981*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*102984*/              OPC_EmitMergeInputChains1_1,
/*102985*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (xor:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VPXORQZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*102997*/            /*SwitchType*/ 18, MVT::v32i8,// ->103017
/*102999*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*103001*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*103004*/              OPC_EmitMergeInputChains1_1,
/*103005*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (xor:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VPXORQZ256rm:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*103017*/            /*SwitchType*/ 18, MVT::v16i16,// ->103037
/*103019*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*103021*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*103024*/              OPC_EmitMergeInputChains1_1,
/*103025*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (xor:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VPXORQZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*103037*/            /*SwitchType*/ 18, MVT::v64i8,// ->103057
/*103039*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*103041*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*103044*/              OPC_EmitMergeInputChains1_1,
/*103045*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v64i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (xor:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VPXORQZrm:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*103057*/            /*SwitchType*/ 18, MVT::v32i16,// ->103077
/*103059*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*103061*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*103064*/              OPC_EmitMergeInputChains1_1,
/*103065*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (xor:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VPXORQZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*103077*/            0, // EndSwitchType
/*103078*/          0, /*End of Scope*/
/*103079*/        /*SwitchOpcode*/ 10|128,1/*138*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->103221
/*103083*/          OPC_RecordMemRef,
/*103084*/          OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*103085*/          OPC_CheckFoldableChainNode,
/*103086*/          OPC_RecordChild1, // #2 = $src2
/*103087*/          OPC_Scope, 65, /*->103154*/ // 2 children in Scope
/*103089*/            OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*103091*/            OPC_MoveParent,
/*103092*/            OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->103113
/*103095*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*103097*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*103100*/              OPC_EmitMergeInputChains1_1,
/*103101*/              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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VPXORQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*103113*/            /*SwitchType*/ 18, MVT::v4i64,// ->103133
/*103115*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*103117*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*103120*/              OPC_EmitMergeInputChains1_1,
/*103121*/              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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VPXORQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*103133*/            /*SwitchType*/ 18, MVT::v2i64,// ->103153
/*103135*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*103137*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*103140*/              OPC_EmitMergeInputChains1_1,
/*103141*/              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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VPXORQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*103153*/            0, // EndSwitchType
/*103154*/          /*Scope*/ 65, /*->103220*/
/*103155*/            OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*103157*/            OPC_MoveParent,
/*103158*/            OPC_SwitchType /*3 cases */, 18, MVT::v16i32,// ->103179
/*103161*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*103163*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*103166*/              OPC_EmitMergeInputChains1_1,
/*103167*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (xor:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VPXORDZrmb:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*103179*/            /*SwitchType*/ 18, MVT::v8i32,// ->103199
/*103181*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*103183*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*103186*/              OPC_EmitMergeInputChains1_1,
/*103187*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (xor:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VPXORDZ256rmb:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*103199*/            /*SwitchType*/ 18, MVT::v4i32,// ->103219
/*103201*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*103203*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*103206*/              OPC_EmitMergeInputChains1_1,
/*103207*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (xor:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VPXORDZ128rmb:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*103219*/            0, // EndSwitchType
/*103220*/          0, /*End of Scope*/
/*103221*/        0, // EndSwitchOpcode
/*103222*/      0, /*End of Scope*/
/*103223*/    /*Scope*/ 107|128,6/*875*/, /*->104100*/
/*103225*/      OPC_MoveChild0,
/*103226*/      OPC_SwitchOpcode /*3 cases */, 92|128,4/*604*/, TARGET_VAL(ISD::LOAD),// ->103835
/*103231*/        OPC_RecordMemRef,
/*103232*/        OPC_RecordNode, // #0 = 'ld' chained node
/*103233*/        OPC_CheckFoldableChainNode,
/*103234*/        OPC_RecordChild1, // #1 = $src2
/*103235*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*103237*/        OPC_CheckPredicate, 9, // Predicate_load
/*103239*/        OPC_Scope, 22, /*->103263*/ // 5 children in Scope
/*103241*/          OPC_MoveParent,
/*103242*/          OPC_RecordChild1, // #2 = $src1
/*103243*/          OPC_CheckType, MVT::v2i64,
/*103245*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*103247*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*103250*/          OPC_EmitMergeInputChains1_0,
/*103251*/          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>>, VR128:{ *:[v2i64] }:$src1) - Complexity = 25
                    // Dst: (VPXORrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*103263*/        /*Scope*/ 24, /*->103288*/
/*103264*/          OPC_CheckPredicate, 39, // Predicate_memop
/*103266*/          OPC_MoveParent,
/*103267*/          OPC_RecordChild1, // #2 = $src1
/*103268*/          OPC_CheckType, MVT::v2i64,
/*103270*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*103272*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*103275*/          OPC_EmitMergeInputChains1_0,
/*103276*/          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_memop>>, VR128:{ *:[v2i64] }:$src1) - Complexity = 25
                    // Dst: (PXORrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*103288*/        /*Scope*/ 96|128,2/*352*/, /*->103642*/
/*103290*/          OPC_MoveParent,
/*103291*/          OPC_RecordChild1, // #2 = $src1
/*103292*/          OPC_SwitchType /*10 cases */, 59, MVT::v4i64,// ->103354
/*103295*/            OPC_Scope, 18, /*->103315*/ // 3 children in Scope
/*103297*/              OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*103299*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*103302*/              OPC_EmitMergeInputChains1_0,
/*103303*/              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>>, VR256:{ *:[v4i64] }:$src1) - Complexity = 25
                        // Dst: (VPXORYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*103315*/            /*Scope*/ 18, /*->103334*/
/*103316*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*103318*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*103321*/              OPC_EmitMergeInputChains1_0,
/*103322*/              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>>, VR256X:{ *:[v4i64] }:$src1) - Complexity = 25
                        // Dst: (VPXORQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*103334*/            /*Scope*/ 18, /*->103353*/
/*103335*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*103337*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*103340*/              OPC_EmitMergeInputChains1_0,
/*103341*/              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>>, VR256:{ *:[v4i64] }:$src1) - Complexity = 25
                        // Dst: (VXORPSYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*103353*/            0, /*End of Scope*/
/*103354*/          /*SwitchType*/ 18, MVT::v8i64,// ->103374
/*103356*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*103358*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*103361*/            OPC_EmitMergeInputChains1_0,
/*103362*/            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>>, VR512:{ *:[v8i64] }:$src1) - Complexity = 25
                      // Dst: (VPXORQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*103374*/          /*SwitchType*/ 18, MVT::v2i64,// ->103394
/*103376*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*103378*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*103381*/            OPC_EmitMergeInputChains1_0,
/*103382*/            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>>, VR128X:{ *:[v2i64] }:$src1) - Complexity = 25
                      // Dst: (VPXORQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*103394*/          /*SwitchType*/ 18, MVT::v16i32,// ->103414
/*103396*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*103398*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*103401*/            OPC_EmitMergeInputChains1_0,
/*103402*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (xor:{ *:[v16i32] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16i32] }:$src1) - Complexity = 25
                      // Dst: (VPXORDZrm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*103414*/          /*SwitchType*/ 59, MVT::v8i32,// ->103475
/*103416*/            OPC_Scope, 18, /*->103436*/ // 3 children in Scope
/*103418*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*103420*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*103423*/              OPC_EmitMergeInputChains1_0,
/*103424*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (xor:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8i32] }:$src1) - Complexity = 25
                        // Dst: (VPXORDZ256rm:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*103436*/            /*Scope*/ 18, /*->103455*/
/*103437*/              OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*103439*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*103442*/              OPC_EmitMergeInputChains1_0,
/*103443*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (xor:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v8i32] }:$src1) - Complexity = 25
                        // Dst: (VPXORYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*103455*/            /*Scope*/ 18, /*->103474*/
/*103456*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*103458*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*103461*/              OPC_EmitMergeInputChains1_0,
/*103462*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VXORPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (xor:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v8i32] }:$src1) - Complexity = 25
                        // Dst: (VXORPSYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*103474*/            0, /*End of Scope*/
/*103475*/          /*SwitchType*/ 40, MVT::v4i32,// ->103517
/*103477*/            OPC_Scope, 18, /*->103497*/ // 2 children in Scope
/*103479*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*103481*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*103484*/              OPC_EmitMergeInputChains1_0,
/*103485*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (xor:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4i32] }:$src1) - Complexity = 25
                        // Dst: (VPXORDZ128rm:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*103497*/            /*Scope*/ 18, /*->103516*/
/*103498*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*103500*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*103503*/              OPC_EmitMergeInputChains1_0,
/*103504*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (xor:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v4i32] }:$src1) - Complexity = 25
                        // Dst: (VPXORrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*103516*/            0, /*End of Scope*/
/*103517*/          /*SwitchType*/ 40, MVT::v32i8,// ->103559
/*103519*/            OPC_Scope, 18, /*->103539*/ // 2 children in Scope
/*103521*/              OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*103523*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*103526*/              OPC_EmitMergeInputChains1_0,
/*103527*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (xor:{ *:[v32i8] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v32i8] }:$src1) - Complexity = 25
                        // Dst: (VPXORYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*103539*/            /*Scope*/ 18, /*->103558*/
/*103540*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*103542*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*103545*/              OPC_EmitMergeInputChains1_0,
/*103546*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VXORPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (xor:{ *:[v32i8] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v32i8] }:$src1) - Complexity = 25
                        // Dst: (VXORPSYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*103558*/            0, /*End of Scope*/
/*103559*/          /*SwitchType*/ 40, MVT::v16i16,// ->103601
/*103561*/            OPC_Scope, 18, /*->103581*/ // 2 children in Scope
/*103563*/              OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*103565*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*103568*/              OPC_EmitMergeInputChains1_0,
/*103569*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (xor:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v16i16] }:$src1) - Complexity = 25
                        // Dst: (VPXORYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*103581*/            /*Scope*/ 18, /*->103600*/
/*103582*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*103584*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*103587*/              OPC_EmitMergeInputChains1_0,
/*103588*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VXORPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (xor:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v16i16] }:$src1) - Complexity = 25
                        // Dst: (VXORPSYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*103600*/            0, /*End of Scope*/
/*103601*/          /*SwitchType*/ 18, MVT::v16i8,// ->103621
/*103603*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*103605*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*103608*/            OPC_EmitMergeInputChains1_0,
/*103609*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (xor:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v16i8] }:$src1) - Complexity = 25
                      // Dst: (VPXORrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*103621*/          /*SwitchType*/ 18, MVT::v8i16,// ->103641
/*103623*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*103625*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*103628*/            OPC_EmitMergeInputChains1_0,
/*103629*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (xor:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v8i16] }:$src1) - Complexity = 25
                      // Dst: (VPXORrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*103641*/          0, // EndSwitchType
/*103642*/        /*Scope*/ 66, /*->103709*/
/*103643*/          OPC_CheckPredicate, 39, // Predicate_memop
/*103645*/          OPC_MoveParent,
/*103646*/          OPC_RecordChild1, // #2 = $src1
/*103647*/          OPC_SwitchType /*3 cases */, 18, MVT::v16i8,// ->103668
/*103650*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*103652*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*103655*/            OPC_EmitMergeInputChains1_0,
/*103656*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PXORrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (xor:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:{ *:[v16i8] }:$src1) - Complexity = 25
                      // Dst: (PXORrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*103668*/          /*SwitchType*/ 18, MVT::v8i16,// ->103688
/*103670*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*103672*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*103675*/            OPC_EmitMergeInputChains1_0,
/*103676*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PXORrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (xor:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:{ *:[v8i16] }:$src1) - Complexity = 25
                      // Dst: (PXORrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*103688*/          /*SwitchType*/ 18, MVT::v4i32,// ->103708
/*103690*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*103692*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*103695*/            OPC_EmitMergeInputChains1_0,
/*103696*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PXORrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (xor:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:{ *:[v4i32] }:$src1) - Complexity = 25
                      // Dst: (PXORrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*103708*/          0, // EndSwitchType
/*103709*/        /*Scope*/ 124, /*->103834*/
/*103710*/          OPC_MoveParent,
/*103711*/          OPC_RecordChild1, // #2 = $src1
/*103712*/          OPC_SwitchType /*6 cases */, 18, MVT::v16i8,// ->103733
/*103715*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*103717*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*103720*/            OPC_EmitMergeInputChains1_0,
/*103721*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (xor:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v16i8] }:$src1) - Complexity = 25
                      // Dst: (VPXORQZ128rm:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*103733*/          /*SwitchType*/ 18, MVT::v8i16,// ->103753
/*103735*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*103737*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*103740*/            OPC_EmitMergeInputChains1_0,
/*103741*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (xor:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1) - Complexity = 25
                      // Dst: (VPXORQZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*103753*/          /*SwitchType*/ 18, MVT::v32i8,// ->103773
/*103755*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*103757*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*103760*/            OPC_EmitMergeInputChains1_0,
/*103761*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (xor:{ *:[v32i8] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v32i8] }:$src1) - Complexity = 25
                      // Dst: (VPXORQZ256rm:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*103773*/          /*SwitchType*/ 18, MVT::v16i16,// ->103793
/*103775*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*103777*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*103780*/            OPC_EmitMergeInputChains1_0,
/*103781*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (xor:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1) - Complexity = 25
                      // Dst: (VPXORQZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*103793*/          /*SwitchType*/ 18, MVT::v64i8,// ->103813
/*103795*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*103797*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*103800*/            OPC_EmitMergeInputChains1_0,
/*103801*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (xor:{ *:[v64i8] } (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v64i8] }:$src1) - Complexity = 25
                      // Dst: (VPXORQZrm:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*103813*/          /*SwitchType*/ 18, MVT::v32i16,// ->103833
/*103815*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*103817*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*103820*/            OPC_EmitMergeInputChains1_0,
/*103821*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (xor:{ *:[v32i16] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1) - Complexity = 25
                      // Dst: (VPXORQZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*103833*/          0, // EndSwitchType
/*103834*/        0, /*End of Scope*/
/*103835*/      /*SwitchOpcode*/ 12|128,1/*140*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->103979
/*103839*/        OPC_RecordMemRef,
/*103840*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*103841*/        OPC_CheckFoldableChainNode,
/*103842*/        OPC_RecordChild1, // #1 = $src2
/*103843*/        OPC_Scope, 66, /*->103911*/ // 2 children in Scope
/*103845*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*103847*/          OPC_MoveParent,
/*103848*/          OPC_RecordChild1, // #2 = $src1
/*103849*/          OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->103870
/*103852*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*103854*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*103857*/            OPC_EmitMergeInputChains1_0,
/*103858*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (xor:{ *:[v8i64] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8i64] }:$src1) - Complexity = 25
                      // Dst: (VPXORQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*103870*/          /*SwitchType*/ 18, MVT::v4i64,// ->103890
/*103872*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*103874*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*103877*/            OPC_EmitMergeInputChains1_0,
/*103878*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (xor:{ *:[v4i64] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src1) - Complexity = 25
                      // Dst: (VPXORQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*103890*/          /*SwitchType*/ 18, MVT::v2i64,// ->103910
/*103892*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*103894*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*103897*/            OPC_EmitMergeInputChains1_0,
/*103898*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (xor:{ *:[v2i64] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src1) - Complexity = 25
                      // Dst: (VPXORQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*103910*/          0, // EndSwitchType
/*103911*/        /*Scope*/ 66, /*->103978*/
/*103912*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*103914*/          OPC_MoveParent,
/*103915*/          OPC_RecordChild1, // #2 = $src1
/*103916*/          OPC_SwitchType /*3 cases */, 18, MVT::v16i32,// ->103937
/*103919*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*103921*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*103924*/            OPC_EmitMergeInputChains1_0,
/*103925*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (xor:{ *:[v16i32] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16i32] }:$src1) - Complexity = 25
                      // Dst: (VPXORDZrmb:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*103937*/          /*SwitchType*/ 18, MVT::v8i32,// ->103957
/*103939*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*103941*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*103944*/            OPC_EmitMergeInputChains1_0,
/*103945*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (xor:{ *:[v8i32] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8i32] }:$src1) - Complexity = 25
                      // Dst: (VPXORDZ256rmb:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*103957*/          /*SwitchType*/ 18, MVT::v4i32,// ->103977
/*103959*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*103961*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*103964*/            OPC_EmitMergeInputChains1_0,
/*103965*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (xor:{ *:[v4i32] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4i32] }:$src1) - Complexity = 25
                      // Dst: (VPXORDZ128rmb:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*103977*/          0, // EndSwitchType
/*103978*/        0, /*End of Scope*/
/*103979*/      /*SwitchOpcode*/ 117, TARGET_VAL(ISD::XOR),// ->104099
/*103982*/        OPC_RecordChild0, // #0 = $src1
/*103983*/        OPC_Scope, 56, /*->104041*/ // 2 children in Scope
/*103985*/          OPC_RecordChild1, // #1 = $src2
/*103986*/          OPC_MoveParent,
/*103987*/          OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*103998*/          OPC_CheckType, MVT::v1i1,
/*104000*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*104003*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*104011*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*104014*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 1, 4,  // Results = #5
/*104022*/          OPC_EmitNode1, TARGET_VAL(X86::KXNORWrr), 0,
                        MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/*104030*/          OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/*104033*/          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] })
/*104041*/        /*Scope*/ 56, /*->104098*/
/*104042*/          OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*104053*/          OPC_MoveParent,
/*104054*/          OPC_RecordChild1, // #1 = $src2
/*104055*/          OPC_CheckType, MVT::v1i1,
/*104057*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*104060*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*104068*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*104071*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 1, 4,  // Results = #5
/*104079*/          OPC_EmitNode1, TARGET_VAL(X86::KXNORWrr), 0,
                        MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/*104087*/          OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/*104090*/          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] })
/*104098*/        0, /*End of Scope*/
/*104099*/      0, // EndSwitchOpcode
/*104100*/    /*Scope*/ 61, /*->104162*/
/*104101*/      OPC_RecordChild0, // #0 = $src2
/*104102*/      OPC_MoveChild1,
/*104103*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*104106*/      OPC_RecordChild0, // #1 = $src1
/*104107*/      OPC_CheckChild1Integer, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*104118*/      OPC_MoveParent,
/*104119*/      OPC_CheckType, MVT::v1i1,
/*104121*/      OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*104124*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v16i1, 2/*#Ops*/, 1, 2,  // Results = #3
/*104132*/      OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*104135*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v16i1, 2/*#Ops*/, 0, 4,  // Results = #5
/*104143*/      OPC_EmitNode1, TARGET_VAL(X86::KXNORWrr), 0,
                    MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/*104151*/      OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/*104154*/      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] })
/*104162*/    /*Scope*/ 0|128,1/*128*/, /*->104292*/
/*104164*/      OPC_MoveChild0,
/*104165*/      OPC_Scope, 102, /*->104269*/ // 2 children in Scope
/*104167*/        OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*104170*/        OPC_Scope, 77, /*->104249*/ // 2 children in Scope
/*104172*/          OPC_RecordChild0, // #0 = $src1
/*104173*/          OPC_Scope, 55, /*->104230*/ // 2 children in Scope
/*104175*/            OPC_RecordChild1, // #1 = $src2
/*104176*/            OPC_MoveParent,
/*104177*/            OPC_MoveChild1,
/*104178*/            OPC_CheckImmAllOnesV,
/*104179*/            OPC_MoveParent,
/*104180*/            OPC_SwitchType /*4 cases */, 10, MVT::v8i1,// ->104193
/*104183*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*104185*/              OPC_MorphNodeTo1, TARGET_VAL(X86::KXNORBrr), 0,
                            MVT::v8i1, 2/*#Ops*/, 0, 1, 
                        // Src: (xor:{ *:[v8i1] } (xor:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src1, VK8:{ *:[v8i1] }:$src2), immAllOnesV:{ *:[v8i1] }) - Complexity = 10
                        // Dst: (KXNORBrr:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src1, VK8:{ *:[v8i1] }:$src2)
/*104193*/            /*SwitchType*/ 10, MVT::v16i1,// ->104205
/*104195*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*104197*/              OPC_MorphNodeTo1, TARGET_VAL(X86::KXNORWrr), 0,
                            MVT::v16i1, 2/*#Ops*/, 0, 1, 
                        // Src: (xor:{ *:[v16i1] } (xor:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src1, VK16:{ *:[v16i1] }:$src2), immAllOnesV:{ *:[v16i1] }) - Complexity = 10
                        // Dst: (KXNORWrr:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src1, VK16:{ *:[v16i1] }:$src2)
/*104205*/            /*SwitchType*/ 10, MVT::v32i1,// ->104217
/*104207*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*104209*/              OPC_MorphNodeTo1, TARGET_VAL(X86::KXNORDrr), 0,
                            MVT::v32i1, 2/*#Ops*/, 0, 1, 
                        // Src: (xor:{ *:[v32i1] } (xor:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src1, VK32:{ *:[v32i1] }:$src2), immAllOnesV:{ *:[v32i1] }) - Complexity = 10
                        // Dst: (KXNORDrr:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src1, VK32:{ *:[v32i1] }:$src2)
/*104217*/            /*SwitchType*/ 10, MVT::v64i1,// ->104229
/*104219*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*104221*/              OPC_MorphNodeTo1, TARGET_VAL(X86::KXNORQrr), 0,
                            MVT::v64i1, 2/*#Ops*/, 0, 1, 
                        // Src: (xor:{ *:[v64i1] } (xor:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src1, VK64:{ *:[v64i1] }:$src2), immAllOnesV:{ *:[v64i1] }) - Complexity = 10
                        // Dst: (KXNORQrr:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src1, VK64:{ *:[v64i1] }:$src2)
/*104229*/            0, // EndSwitchType
/*104230*/          /*Scope*/ 17, /*->104248*/
/*104231*/            OPC_MoveChild1,
/*104232*/            OPC_CheckImmAllOnesV,
/*104233*/            OPC_MoveParent,
/*104234*/            OPC_MoveParent,
/*104235*/            OPC_RecordChild1, // #1 = $src2
/*104236*/            OPC_CheckType, MVT::v8i1,
/*104238*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*104240*/            OPC_MorphNodeTo1, TARGET_VAL(X86::KXNORBrr), 0,
                          MVT::v8i1, 2/*#Ops*/, 0, 1, 
                      // Src: (xor:{ *:[v8i1] } (xor:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src1, immAllOnesV:{ *:[v8i1] }), VK8:{ *:[v8i1] }:$src2) - Complexity = 10
                      // Dst: (KXNORBrr:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src1, VK8:{ *:[v8i1] }:$src2)
/*104248*/          0, /*End of Scope*/
/*104249*/        /*Scope*/ 18, /*->104268*/
/*104250*/          OPC_MoveChild0,
/*104251*/          OPC_CheckImmAllOnesV,
/*104252*/          OPC_MoveParent,
/*104253*/          OPC_RecordChild1, // #0 = $src1
/*104254*/          OPC_MoveParent,
/*104255*/          OPC_RecordChild1, // #1 = $src2
/*104256*/          OPC_CheckType, MVT::v8i1,
/*104258*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*104260*/          OPC_MorphNodeTo1, TARGET_VAL(X86::KXNORBrr), 0,
                        MVT::v8i1, 2/*#Ops*/, 0, 1, 
                    // Src: (xor:{ *:[v8i1] } (xor:{ *:[v8i1] } immAllOnesV:{ *:[v8i1] }, VK8:{ *:[v8i1] }:$src1), VK8:{ *:[v8i1] }:$src2) - Complexity = 10
                    // Dst: (KXNORBrr:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src1, VK8:{ *:[v8i1] }:$src2)
/*104268*/        0, /*End of Scope*/
/*104269*/      /*Scope*/ 21, /*->104291*/
/*104270*/        OPC_CheckImmAllOnesV,
/*104271*/        OPC_MoveParent,
/*104272*/        OPC_MoveChild1,
/*104273*/        OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*104276*/        OPC_RecordChild0, // #0 = $src1
/*104277*/        OPC_RecordChild1, // #1 = $src2
/*104278*/        OPC_MoveParent,
/*104279*/        OPC_CheckType, MVT::v8i1,
/*104281*/        OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*104283*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KXNORBrr), 0,
                      MVT::v8i1, 2/*#Ops*/, 0, 1, 
                  // Src: (xor:{ *:[v8i1] } immAllOnesV:{ *:[v8i1] }, (xor:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src1, VK8:{ *:[v8i1] }:$src2)) - Complexity = 10
                  // Dst: (KXNORBrr:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src1, VK8:{ *:[v8i1] }:$src2)
/*104291*/      0, /*End of Scope*/
/*104292*/    /*Scope*/ 43, /*->104336*/
/*104293*/      OPC_RecordChild0, // #0 = $src2
/*104294*/      OPC_MoveChild1,
/*104295*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*104298*/      OPC_Scope, 17, /*->104317*/ // 2 children in Scope
/*104300*/        OPC_RecordChild0, // #1 = $src1
/*104301*/        OPC_MoveChild1,
/*104302*/        OPC_CheckImmAllOnesV,
/*104303*/        OPC_MoveParent,
/*104304*/        OPC_MoveParent,
/*104305*/        OPC_CheckType, MVT::v8i1,
/*104307*/        OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*104309*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KXNORBrr), 0,
                      MVT::v8i1, 2/*#Ops*/, 1, 0, 
                  // Src: (xor:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src2, (xor:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src1, immAllOnesV:{ *:[v8i1] })) - Complexity = 10
                  // Dst: (KXNORBrr:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src1, VK8:{ *:[v8i1] }:$src2)
/*104317*/      /*Scope*/ 17, /*->104335*/
/*104318*/        OPC_MoveChild0,
/*104319*/        OPC_CheckImmAllOnesV,
/*104320*/        OPC_MoveParent,
/*104321*/        OPC_RecordChild1, // #1 = $src1
/*104322*/        OPC_MoveParent,
/*104323*/        OPC_CheckType, MVT::v8i1,
/*104325*/        OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*104327*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KXNORBrr), 0,
                      MVT::v8i1, 2/*#Ops*/, 1, 0, 
                  // Src: (xor:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src2, (xor:{ *:[v8i1] } immAllOnesV:{ *:[v8i1] }, VK8:{ *:[v8i1] }:$src1)) - Complexity = 10
                  // Dst: (KXNORBrr:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src1, VK8:{ *:[v8i1] }:$src2)
/*104335*/      0, /*End of Scope*/
/*104336*/    /*Scope*/ 69, /*->104406*/
/*104337*/      OPC_MoveChild0,
/*104338*/      OPC_Scope, 43, /*->104383*/ // 2 children in Scope
/*104340*/        OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*104343*/        OPC_Scope, 18, /*->104363*/ // 2 children in Scope
/*104345*/          OPC_RecordChild0, // #0 = $src1
/*104346*/          OPC_MoveChild1,
/*104347*/          OPC_CheckImmAllOnesV,
/*104348*/          OPC_MoveParent,
/*104349*/          OPC_MoveParent,
/*104350*/          OPC_RecordChild1, // #1 = $src2
/*104351*/          OPC_CheckType, MVT::v16i1,
/*104353*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*104355*/          OPC_MorphNodeTo1, TARGET_VAL(X86::KXNORWrr), 0,
                        MVT::v16i1, 2/*#Ops*/, 0, 1, 
                    // Src: (xor:{ *:[v16i1] } (xor:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src1, immAllOnesV:{ *:[v16i1] }), VK16:{ *:[v16i1] }:$src2) - Complexity = 10
                    // Dst: (KXNORWrr:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src1, VK16:{ *:[v16i1] }:$src2)
/*104363*/        /*Scope*/ 18, /*->104382*/
/*104364*/          OPC_MoveChild0,
/*104365*/          OPC_CheckImmAllOnesV,
/*104366*/          OPC_MoveParent,
/*104367*/          OPC_RecordChild1, // #0 = $src1
/*104368*/          OPC_MoveParent,
/*104369*/          OPC_RecordChild1, // #1 = $src2
/*104370*/          OPC_CheckType, MVT::v16i1,
/*104372*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*104374*/          OPC_MorphNodeTo1, TARGET_VAL(X86::KXNORWrr), 0,
                        MVT::v16i1, 2/*#Ops*/, 0, 1, 
                    // Src: (xor:{ *:[v16i1] } (xor:{ *:[v16i1] } immAllOnesV:{ *:[v16i1] }, VK16:{ *:[v16i1] }:$src1), VK16:{ *:[v16i1] }:$src2) - Complexity = 10
                    // Dst: (KXNORWrr:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src1, VK16:{ *:[v16i1] }:$src2)
/*104382*/        0, /*End of Scope*/
/*104383*/      /*Scope*/ 21, /*->104405*/
/*104384*/        OPC_CheckImmAllOnesV,
/*104385*/        OPC_MoveParent,
/*104386*/        OPC_MoveChild1,
/*104387*/        OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*104390*/        OPC_RecordChild0, // #0 = $src1
/*104391*/        OPC_RecordChild1, // #1 = $src2
/*104392*/        OPC_MoveParent,
/*104393*/        OPC_CheckType, MVT::v16i1,
/*104395*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*104397*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KXNORWrr), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 1, 
                  // Src: (xor:{ *:[v16i1] } immAllOnesV:{ *:[v16i1] }, (xor:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src1, VK16:{ *:[v16i1] }:$src2)) - Complexity = 10
                  // Dst: (KXNORWrr:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src1, VK16:{ *:[v16i1] }:$src2)
/*104405*/      0, /*End of Scope*/
/*104406*/    /*Scope*/ 43, /*->104450*/
/*104407*/      OPC_RecordChild0, // #0 = $src2
/*104408*/      OPC_MoveChild1,
/*104409*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*104412*/      OPC_Scope, 17, /*->104431*/ // 2 children in Scope
/*104414*/        OPC_RecordChild0, // #1 = $src1
/*104415*/        OPC_MoveChild1,
/*104416*/        OPC_CheckImmAllOnesV,
/*104417*/        OPC_MoveParent,
/*104418*/        OPC_MoveParent,
/*104419*/        OPC_CheckType, MVT::v16i1,
/*104421*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*104423*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KXNORWrr), 0,
                      MVT::v16i1, 2/*#Ops*/, 1, 0, 
                  // Src: (xor:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src2, (xor:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src1, immAllOnesV:{ *:[v16i1] })) - Complexity = 10
                  // Dst: (KXNORWrr:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src1, VK16:{ *:[v16i1] }:$src2)
/*104431*/      /*Scope*/ 17, /*->104449*/
/*104432*/        OPC_MoveChild0,
/*104433*/        OPC_CheckImmAllOnesV,
/*104434*/        OPC_MoveParent,
/*104435*/        OPC_RecordChild1, // #1 = $src1
/*104436*/        OPC_MoveParent,
/*104437*/        OPC_CheckType, MVT::v16i1,
/*104439*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*104441*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KXNORWrr), 0,
                      MVT::v16i1, 2/*#Ops*/, 1, 0, 
                  // Src: (xor:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src2, (xor:{ *:[v16i1] } immAllOnesV:{ *:[v16i1] }, VK16:{ *:[v16i1] }:$src1)) - Complexity = 10
                  // Dst: (KXNORWrr:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src1, VK16:{ *:[v16i1] }:$src2)
/*104449*/      0, /*End of Scope*/
/*104450*/    /*Scope*/ 69, /*->104520*/
/*104451*/      OPC_MoveChild0,
/*104452*/      OPC_Scope, 43, /*->104497*/ // 2 children in Scope
/*104454*/        OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*104457*/        OPC_Scope, 18, /*->104477*/ // 2 children in Scope
/*104459*/          OPC_RecordChild0, // #0 = $src1
/*104460*/          OPC_MoveChild1,
/*104461*/          OPC_CheckImmAllOnesV,
/*104462*/          OPC_MoveParent,
/*104463*/          OPC_MoveParent,
/*104464*/          OPC_RecordChild1, // #1 = $src2
/*104465*/          OPC_CheckType, MVT::v32i1,
/*104467*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*104469*/          OPC_MorphNodeTo1, TARGET_VAL(X86::KXNORDrr), 0,
                        MVT::v32i1, 2/*#Ops*/, 0, 1, 
                    // Src: (xor:{ *:[v32i1] } (xor:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src1, immAllOnesV:{ *:[v32i1] }), VK32:{ *:[v32i1] }:$src2) - Complexity = 10
                    // Dst: (KXNORDrr:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src1, VK32:{ *:[v32i1] }:$src2)
/*104477*/        /*Scope*/ 18, /*->104496*/
/*104478*/          OPC_MoveChild0,
/*104479*/          OPC_CheckImmAllOnesV,
/*104480*/          OPC_MoveParent,
/*104481*/          OPC_RecordChild1, // #0 = $src1
/*104482*/          OPC_MoveParent,
/*104483*/          OPC_RecordChild1, // #1 = $src2
/*104484*/          OPC_CheckType, MVT::v32i1,
/*104486*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*104488*/          OPC_MorphNodeTo1, TARGET_VAL(X86::KXNORDrr), 0,
                        MVT::v32i1, 2/*#Ops*/, 0, 1, 
                    // Src: (xor:{ *:[v32i1] } (xor:{ *:[v32i1] } immAllOnesV:{ *:[v32i1] }, VK32:{ *:[v32i1] }:$src1), VK32:{ *:[v32i1] }:$src2) - Complexity = 10
                    // Dst: (KXNORDrr:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src1, VK32:{ *:[v32i1] }:$src2)
/*104496*/        0, /*End of Scope*/
/*104497*/      /*Scope*/ 21, /*->104519*/
/*104498*/        OPC_CheckImmAllOnesV,
/*104499*/        OPC_MoveParent,
/*104500*/        OPC_MoveChild1,
/*104501*/        OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*104504*/        OPC_RecordChild0, // #0 = $src1
/*104505*/        OPC_RecordChild1, // #1 = $src2
/*104506*/        OPC_MoveParent,
/*104507*/        OPC_CheckType, MVT::v32i1,
/*104509*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*104511*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KXNORDrr), 0,
                      MVT::v32i1, 2/*#Ops*/, 0, 1, 
                  // Src: (xor:{ *:[v32i1] } immAllOnesV:{ *:[v32i1] }, (xor:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src1, VK32:{ *:[v32i1] }:$src2)) - Complexity = 10
                  // Dst: (KXNORDrr:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src1, VK32:{ *:[v32i1] }:$src2)
/*104519*/      0, /*End of Scope*/
/*104520*/    /*Scope*/ 43, /*->104564*/
/*104521*/      OPC_RecordChild0, // #0 = $src2
/*104522*/      OPC_MoveChild1,
/*104523*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*104526*/      OPC_Scope, 17, /*->104545*/ // 2 children in Scope
/*104528*/        OPC_RecordChild0, // #1 = $src1
/*104529*/        OPC_MoveChild1,
/*104530*/        OPC_CheckImmAllOnesV,
/*104531*/        OPC_MoveParent,
/*104532*/        OPC_MoveParent,
/*104533*/        OPC_CheckType, MVT::v32i1,
/*104535*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*104537*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KXNORDrr), 0,
                      MVT::v32i1, 2/*#Ops*/, 1, 0, 
                  // Src: (xor:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src2, (xor:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src1, immAllOnesV:{ *:[v32i1] })) - Complexity = 10
                  // Dst: (KXNORDrr:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src1, VK32:{ *:[v32i1] }:$src2)
/*104545*/      /*Scope*/ 17, /*->104563*/
/*104546*/        OPC_MoveChild0,
/*104547*/        OPC_CheckImmAllOnesV,
/*104548*/        OPC_MoveParent,
/*104549*/        OPC_RecordChild1, // #1 = $src1
/*104550*/        OPC_MoveParent,
/*104551*/        OPC_CheckType, MVT::v32i1,
/*104553*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*104555*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KXNORDrr), 0,
                      MVT::v32i1, 2/*#Ops*/, 1, 0, 
                  // Src: (xor:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src2, (xor:{ *:[v32i1] } immAllOnesV:{ *:[v32i1] }, VK32:{ *:[v32i1] }:$src1)) - Complexity = 10
                  // Dst: (KXNORDrr:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src1, VK32:{ *:[v32i1] }:$src2)
/*104563*/      0, /*End of Scope*/
/*104564*/    /*Scope*/ 69, /*->104634*/
/*104565*/      OPC_MoveChild0,
/*104566*/      OPC_Scope, 43, /*->104611*/ // 2 children in Scope
/*104568*/        OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*104571*/        OPC_Scope, 18, /*->104591*/ // 2 children in Scope
/*104573*/          OPC_RecordChild0, // #0 = $src1
/*104574*/          OPC_MoveChild1,
/*104575*/          OPC_CheckImmAllOnesV,
/*104576*/          OPC_MoveParent,
/*104577*/          OPC_MoveParent,
/*104578*/          OPC_RecordChild1, // #1 = $src2
/*104579*/          OPC_CheckType, MVT::v64i1,
/*104581*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*104583*/          OPC_MorphNodeTo1, TARGET_VAL(X86::KXNORQrr), 0,
                        MVT::v64i1, 2/*#Ops*/, 0, 1, 
                    // Src: (xor:{ *:[v64i1] } (xor:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src1, immAllOnesV:{ *:[v64i1] }), VK64:{ *:[v64i1] }:$src2) - Complexity = 10
                    // Dst: (KXNORQrr:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src1, VK64:{ *:[v64i1] }:$src2)
/*104591*/        /*Scope*/ 18, /*->104610*/
/*104592*/          OPC_MoveChild0,
/*104593*/          OPC_CheckImmAllOnesV,
/*104594*/          OPC_MoveParent,
/*104595*/          OPC_RecordChild1, // #0 = $src1
/*104596*/          OPC_MoveParent,
/*104597*/          OPC_RecordChild1, // #1 = $src2
/*104598*/          OPC_CheckType, MVT::v64i1,
/*104600*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*104602*/          OPC_MorphNodeTo1, TARGET_VAL(X86::KXNORQrr), 0,
                        MVT::v64i1, 2/*#Ops*/, 0, 1, 
                    // Src: (xor:{ *:[v64i1] } (xor:{ *:[v64i1] } immAllOnesV:{ *:[v64i1] }, VK64:{ *:[v64i1] }:$src1), VK64:{ *:[v64i1] }:$src2) - Complexity = 10
                    // Dst: (KXNORQrr:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src1, VK64:{ *:[v64i1] }:$src2)
/*104610*/        0, /*End of Scope*/
/*104611*/      /*Scope*/ 21, /*->104633*/
/*104612*/        OPC_CheckImmAllOnesV,
/*104613*/        OPC_MoveParent,
/*104614*/        OPC_MoveChild1,
/*104615*/        OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*104618*/        OPC_RecordChild0, // #0 = $src1
/*104619*/        OPC_RecordChild1, // #1 = $src2
/*104620*/        OPC_MoveParent,
/*104621*/        OPC_CheckType, MVT::v64i1,
/*104623*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*104625*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KXNORQrr), 0,
                      MVT::v64i1, 2/*#Ops*/, 0, 1, 
                  // Src: (xor:{ *:[v64i1] } immAllOnesV:{ *:[v64i1] }, (xor:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src1, VK64:{ *:[v64i1] }:$src2)) - Complexity = 10
                  // Dst: (KXNORQrr:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src1, VK64:{ *:[v64i1] }:$src2)
/*104633*/      0, /*End of Scope*/
/*104634*/    /*Scope*/ 43, /*->104678*/
/*104635*/      OPC_RecordChild0, // #0 = $src2
/*104636*/      OPC_MoveChild1,
/*104637*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*104640*/      OPC_Scope, 17, /*->104659*/ // 2 children in Scope
/*104642*/        OPC_RecordChild0, // #1 = $src1
/*104643*/        OPC_MoveChild1,
/*104644*/        OPC_CheckImmAllOnesV,
/*104645*/        OPC_MoveParent,
/*104646*/        OPC_MoveParent,
/*104647*/        OPC_CheckType, MVT::v64i1,
/*104649*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*104651*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KXNORQrr), 0,
                      MVT::v64i1, 2/*#Ops*/, 1, 0, 
                  // Src: (xor:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src2, (xor:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src1, immAllOnesV:{ *:[v64i1] })) - Complexity = 10
                  // Dst: (KXNORQrr:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src1, VK64:{ *:[v64i1] }:$src2)
/*104659*/      /*Scope*/ 17, /*->104677*/
/*104660*/        OPC_MoveChild0,
/*104661*/        OPC_CheckImmAllOnesV,
/*104662*/        OPC_MoveParent,
/*104663*/        OPC_RecordChild1, // #1 = $src1
/*104664*/        OPC_MoveParent,
/*104665*/        OPC_CheckType, MVT::v64i1,
/*104667*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*104669*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KXNORQrr), 0,
                      MVT::v64i1, 2/*#Ops*/, 1, 0, 
                  // Src: (xor:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src2, (xor:{ *:[v64i1] } immAllOnesV:{ *:[v64i1] }, VK64:{ *:[v64i1] }:$src1)) - Complexity = 10
                  // Dst: (KXNORQrr:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src1, VK64:{ *:[v64i1] }:$src2)
/*104677*/      0, /*End of Scope*/
/*104678*/    /*Scope*/ 57|128,2/*313*/, /*->104993*/
/*104680*/      OPC_MoveChild0,
/*104681*/      OPC_Scope, 125|128,1/*253*/, /*->104937*/ // 2 children in Scope
/*104684*/        OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*104687*/        OPC_Scope, 66|128,1/*194*/, /*->104884*/ // 2 children in Scope
/*104690*/          OPC_RecordChild0, // #0 = $src1
/*104691*/          OPC_Scope, 10|128,1/*138*/, /*->104832*/ // 2 children in Scope
/*104694*/            OPC_RecordChild1, // #1 = $src2
/*104695*/            OPC_MoveParent,
/*104696*/            OPC_MoveChild1,
/*104697*/            OPC_CheckImmAllOnesV,
/*104698*/            OPC_MoveParent,
/*104699*/            OPC_SwitchType /*3 cases */, 43, MVT::v8i1,// ->104745
/*104702*/              OPC_CheckPatternPredicate, 116, // (!Subtarget->hasDQI())
/*104704*/              OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*104707*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*104715*/              OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*104718*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v16i1, 2/*#Ops*/, 1, 4,  // Results = #5
/*104726*/              OPC_EmitNode1, TARGET_VAL(X86::KXNORWrr), 0,
                            MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/*104734*/              OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*104737*/              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), immAllOnesV:{ *:[v8i1] }) - 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] })
/*104745*/            /*SwitchType*/ 41, MVT::v2i1,// ->104788
/*104747*/              OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*104750*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*104758*/              OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*104761*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v16i1, 2/*#Ops*/, 1, 4,  // Results = #5
/*104769*/              OPC_EmitNode1, TARGET_VAL(X86::KXNORWrr), 0,
                            MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/*104777*/              OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/*104780*/              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), immAllOnesV:{ *:[v2i1] }) - 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] })
/*104788*/            /*SwitchType*/ 41, MVT::v4i1,// ->104831
/*104790*/              OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*104793*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*104801*/              OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*104804*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v16i1, 2/*#Ops*/, 1, 4,  // Results = #5
/*104812*/              OPC_EmitNode1, TARGET_VAL(X86::KXNORWrr), 0,
                            MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/*104820*/              OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/*104823*/              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), immAllOnesV:{ *:[v4i1] }) - 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] })
/*104831*/            0, // EndSwitchType
/*104832*/          /*Scope*/ 50, /*->104883*/
/*104833*/            OPC_MoveChild1,
/*104834*/            OPC_CheckImmAllOnesV,
/*104835*/            OPC_MoveParent,
/*104836*/            OPC_MoveParent,
/*104837*/            OPC_RecordChild1, // #1 = $src2
/*104838*/            OPC_CheckType, MVT::v8i1,
/*104840*/            OPC_CheckPatternPredicate, 116, // (!Subtarget->hasDQI())
/*104842*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*104845*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*104853*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*104856*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 1, 4,  // Results = #5
/*104864*/            OPC_EmitNode1, TARGET_VAL(X86::KXNORWrr), 0,
                          MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/*104872*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*104875*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 6, 7, 
                      // Src: (xor:{ *:[v8i1] } (xor:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src1, immAllOnesV:{ *:[v8i1] }), 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] })
/*104883*/          0, /*End of Scope*/
/*104884*/        /*Scope*/ 51, /*->104936*/
/*104885*/          OPC_MoveChild0,
/*104886*/          OPC_CheckImmAllOnesV,
/*104887*/          OPC_MoveParent,
/*104888*/          OPC_RecordChild1, // #0 = $src1
/*104889*/          OPC_MoveParent,
/*104890*/          OPC_RecordChild1, // #1 = $src2
/*104891*/          OPC_CheckType, MVT::v8i1,
/*104893*/          OPC_CheckPatternPredicate, 116, // (!Subtarget->hasDQI())
/*104895*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*104898*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*104906*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*104909*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 1, 4,  // Results = #5
/*104917*/          OPC_EmitNode1, TARGET_VAL(X86::KXNORWrr), 0,
                        MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/*104925*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*104928*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 6, 7, 
                    // Src: (xor:{ *:[v8i1] } (xor:{ *:[v8i1] } immAllOnesV:{ *:[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] })
/*104936*/        0, /*End of Scope*/
/*104937*/      /*Scope*/ 54, /*->104992*/
/*104938*/        OPC_CheckImmAllOnesV,
/*104939*/        OPC_MoveParent,
/*104940*/        OPC_MoveChild1,
/*104941*/        OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*104944*/        OPC_RecordChild0, // #0 = $src1
/*104945*/        OPC_RecordChild1, // #1 = $src2
/*104946*/        OPC_MoveParent,
/*104947*/        OPC_CheckType, MVT::v8i1,
/*104949*/        OPC_CheckPatternPredicate, 116, // (!Subtarget->hasDQI())
/*104951*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*104954*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*104962*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*104965*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 1, 4,  // Results = #5
/*104973*/        OPC_EmitNode1, TARGET_VAL(X86::KXNORWrr), 0,
                      MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/*104981*/        OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*104984*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v8i1, 2/*#Ops*/, 6, 7, 
                  // Src: (xor:{ *:[v8i1] } immAllOnesV:{ *:[v8i1] }, (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] })
/*104992*/      0, /*End of Scope*/
/*104993*/    /*Scope*/ 109, /*->105103*/
/*104994*/      OPC_RecordChild0, // #0 = $src2
/*104995*/      OPC_MoveChild1,
/*104996*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*104999*/      OPC_Scope, 50, /*->105051*/ // 2 children in Scope
/*105001*/        OPC_RecordChild0, // #1 = $src1
/*105002*/        OPC_MoveChild1,
/*105003*/        OPC_CheckImmAllOnesV,
/*105004*/        OPC_MoveParent,
/*105005*/        OPC_MoveParent,
/*105006*/        OPC_CheckType, MVT::v8i1,
/*105008*/        OPC_CheckPatternPredicate, 116, // (!Subtarget->hasDQI())
/*105010*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*105013*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 1, 2,  // Results = #3
/*105021*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*105024*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 4,  // Results = #5
/*105032*/        OPC_EmitNode1, TARGET_VAL(X86::KXNORWrr), 0,
                      MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/*105040*/        OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*105043*/        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, immAllOnesV:{ *:[v8i1] })) - 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] })
/*105051*/      /*Scope*/ 50, /*->105102*/
/*105052*/        OPC_MoveChild0,
/*105053*/        OPC_CheckImmAllOnesV,
/*105054*/        OPC_MoveParent,
/*105055*/        OPC_RecordChild1, // #1 = $src1
/*105056*/        OPC_MoveParent,
/*105057*/        OPC_CheckType, MVT::v8i1,
/*105059*/        OPC_CheckPatternPredicate, 116, // (!Subtarget->hasDQI())
/*105061*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*105064*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 1, 2,  // Results = #3
/*105072*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*105075*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 4,  // Results = #5
/*105083*/        OPC_EmitNode1, TARGET_VAL(X86::KXNORWrr), 0,
                      MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/*105091*/        OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*105094*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v8i1, 2/*#Ops*/, 6, 7, 
                  // Src: (xor:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src2, (xor:{ *:[v8i1] } immAllOnesV:{ *:[v8i1] }, 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] })
/*105102*/      0, /*End of Scope*/
/*105103*/    /*Scope*/ 34|128,1/*162*/, /*->105267*/
/*105105*/      OPC_MoveChild0,
/*105106*/      OPC_Scope, 105, /*->105213*/ // 2 children in Scope
/*105108*/        OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*105111*/        OPC_Scope, 49, /*->105162*/ // 2 children in Scope
/*105113*/          OPC_RecordChild0, // #0 = $src1
/*105114*/          OPC_MoveChild1,
/*105115*/          OPC_CheckImmAllOnesV,
/*105116*/          OPC_MoveParent,
/*105117*/          OPC_MoveParent,
/*105118*/          OPC_RecordChild1, // #1 = $src2
/*105119*/          OPC_CheckType, MVT::v2i1,
/*105121*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*105124*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*105132*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*105135*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 1, 4,  // Results = #5
/*105143*/          OPC_EmitNode1, TARGET_VAL(X86::KXNORWrr), 0,
                        MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/*105151*/          OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/*105154*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2i1, 2/*#Ops*/, 6, 7, 
                    // Src: (xor:{ *:[v2i1] } (xor:{ *:[v2i1] } VK2:{ *:[v2i1] }:$src1, immAllOnesV:{ *:[v2i1] }), 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] })
/*105162*/        /*Scope*/ 49, /*->105212*/
/*105163*/          OPC_MoveChild0,
/*105164*/          OPC_CheckImmAllOnesV,
/*105165*/          OPC_MoveParent,
/*105166*/          OPC_RecordChild1, // #0 = $src1
/*105167*/          OPC_MoveParent,
/*105168*/          OPC_RecordChild1, // #1 = $src2
/*105169*/          OPC_CheckType, MVT::v2i1,
/*105171*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*105174*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*105182*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*105185*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 1, 4,  // Results = #5
/*105193*/          OPC_EmitNode1, TARGET_VAL(X86::KXNORWrr), 0,
                        MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/*105201*/          OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/*105204*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2i1, 2/*#Ops*/, 6, 7, 
                    // Src: (xor:{ *:[v2i1] } (xor:{ *:[v2i1] } immAllOnesV:{ *:[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] })
/*105212*/        0, /*End of Scope*/
/*105213*/      /*Scope*/ 52, /*->105266*/
/*105214*/        OPC_CheckImmAllOnesV,
/*105215*/        OPC_MoveParent,
/*105216*/        OPC_MoveChild1,
/*105217*/        OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*105220*/        OPC_RecordChild0, // #0 = $src1
/*105221*/        OPC_RecordChild1, // #1 = $src2
/*105222*/        OPC_MoveParent,
/*105223*/        OPC_CheckType, MVT::v2i1,
/*105225*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*105228*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*105236*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*105239*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 1, 4,  // Results = #5
/*105247*/        OPC_EmitNode1, TARGET_VAL(X86::KXNORWrr), 0,
                      MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/*105255*/        OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/*105258*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2i1, 2/*#Ops*/, 6, 7, 
                  // Src: (xor:{ *:[v2i1] } immAllOnesV:{ *:[v2i1] }, (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] })
/*105266*/      0, /*End of Scope*/
/*105267*/    /*Scope*/ 105, /*->105373*/
/*105268*/      OPC_RecordChild0, // #0 = $src2
/*105269*/      OPC_MoveChild1,
/*105270*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*105273*/      OPC_Scope, 48, /*->105323*/ // 2 children in Scope
/*105275*/        OPC_RecordChild0, // #1 = $src1
/*105276*/        OPC_MoveChild1,
/*105277*/        OPC_CheckImmAllOnesV,
/*105278*/        OPC_MoveParent,
/*105279*/        OPC_MoveParent,
/*105280*/        OPC_CheckType, MVT::v2i1,
/*105282*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*105285*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 1, 2,  // Results = #3
/*105293*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*105296*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 4,  // Results = #5
/*105304*/        OPC_EmitNode1, TARGET_VAL(X86::KXNORWrr), 0,
                      MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/*105312*/        OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/*105315*/        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, immAllOnesV:{ *:[v2i1] })) - 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] })
/*105323*/      /*Scope*/ 48, /*->105372*/
/*105324*/        OPC_MoveChild0,
/*105325*/        OPC_CheckImmAllOnesV,
/*105326*/        OPC_MoveParent,
/*105327*/        OPC_RecordChild1, // #1 = $src1
/*105328*/        OPC_MoveParent,
/*105329*/        OPC_CheckType, MVT::v2i1,
/*105331*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*105334*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 1, 2,  // Results = #3
/*105342*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*105345*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 4,  // Results = #5
/*105353*/        OPC_EmitNode1, TARGET_VAL(X86::KXNORWrr), 0,
                      MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/*105361*/        OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/*105364*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2i1, 2/*#Ops*/, 6, 7, 
                  // Src: (xor:{ *:[v2i1] } VK2:{ *:[v2i1] }:$src2, (xor:{ *:[v2i1] } immAllOnesV:{ *:[v2i1] }, 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] })
/*105372*/      0, /*End of Scope*/
/*105373*/    /*Scope*/ 34|128,1/*162*/, /*->105537*/
/*105375*/      OPC_MoveChild0,
/*105376*/      OPC_Scope, 105, /*->105483*/ // 2 children in Scope
/*105378*/        OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*105381*/        OPC_Scope, 49, /*->105432*/ // 2 children in Scope
/*105383*/          OPC_RecordChild0, // #0 = $src1
/*105384*/          OPC_MoveChild1,
/*105385*/          OPC_CheckImmAllOnesV,
/*105386*/          OPC_MoveParent,
/*105387*/          OPC_MoveParent,
/*105388*/          OPC_RecordChild1, // #1 = $src2
/*105389*/          OPC_CheckType, MVT::v4i1,
/*105391*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*105394*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*105402*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*105405*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 1, 4,  // Results = #5
/*105413*/          OPC_EmitNode1, TARGET_VAL(X86::KXNORWrr), 0,
                        MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/*105421*/          OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/*105424*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i1, 2/*#Ops*/, 6, 7, 
                    // Src: (xor:{ *:[v4i1] } (xor:{ *:[v4i1] } VK4:{ *:[v4i1] }:$src1, immAllOnesV:{ *:[v4i1] }), 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] })
/*105432*/        /*Scope*/ 49, /*->105482*/
/*105433*/          OPC_MoveChild0,
/*105434*/          OPC_CheckImmAllOnesV,
/*105435*/          OPC_MoveParent,
/*105436*/          OPC_RecordChild1, // #0 = $src1
/*105437*/          OPC_MoveParent,
/*105438*/          OPC_RecordChild1, // #1 = $src2
/*105439*/          OPC_CheckType, MVT::v4i1,
/*105441*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*105444*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*105452*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*105455*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 1, 4,  // Results = #5
/*105463*/          OPC_EmitNode1, TARGET_VAL(X86::KXNORWrr), 0,
                        MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/*105471*/          OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/*105474*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i1, 2/*#Ops*/, 6, 7, 
                    // Src: (xor:{ *:[v4i1] } (xor:{ *:[v4i1] } immAllOnesV:{ *:[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] })
/*105482*/        0, /*End of Scope*/
/*105483*/      /*Scope*/ 52, /*->105536*/
/*105484*/        OPC_CheckImmAllOnesV,
/*105485*/        OPC_MoveParent,
/*105486*/        OPC_MoveChild1,
/*105487*/        OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*105490*/        OPC_RecordChild0, // #0 = $src1
/*105491*/        OPC_RecordChild1, // #1 = $src2
/*105492*/        OPC_MoveParent,
/*105493*/        OPC_CheckType, MVT::v4i1,
/*105495*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*105498*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*105506*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*105509*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 1, 4,  // Results = #5
/*105517*/        OPC_EmitNode1, TARGET_VAL(X86::KXNORWrr), 0,
                      MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/*105525*/        OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/*105528*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i1, 2/*#Ops*/, 6, 7, 
                  // Src: (xor:{ *:[v4i1] } immAllOnesV:{ *:[v4i1] }, (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] })
/*105536*/      0, /*End of Scope*/
/*105537*/    /*Scope*/ 106|128,2/*362*/, /*->105901*/
/*105539*/      OPC_RecordChild0, // #0 = $src2
/*105540*/      OPC_MoveChild1,
/*105541*/      OPC_Scope, 103, /*->105646*/ // 2 children in Scope
/*105543*/        OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*105546*/        OPC_Scope, 48, /*->105596*/ // 2 children in Scope
/*105548*/          OPC_RecordChild0, // #1 = $src1
/*105549*/          OPC_MoveChild1,
/*105550*/          OPC_CheckImmAllOnesV,
/*105551*/          OPC_MoveParent,
/*105552*/          OPC_MoveParent,
/*105553*/          OPC_CheckType, MVT::v4i1,
/*105555*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*105558*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 1, 2,  // Results = #3
/*105566*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*105569*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 0, 4,  // Results = #5
/*105577*/          OPC_EmitNode1, TARGET_VAL(X86::KXNORWrr), 0,
                        MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/*105585*/          OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/*105588*/          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, immAllOnesV:{ *:[v4i1] })) - 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] })
/*105596*/        /*Scope*/ 48, /*->105645*/
/*105597*/          OPC_MoveChild0,
/*105598*/          OPC_CheckImmAllOnesV,
/*105599*/          OPC_MoveParent,
/*105600*/          OPC_RecordChild1, // #1 = $src1
/*105601*/          OPC_MoveParent,
/*105602*/          OPC_CheckType, MVT::v4i1,
/*105604*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*105607*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 1, 2,  // Results = #3
/*105615*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*105618*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 0, 4,  // Results = #5
/*105626*/          OPC_EmitNode1, TARGET_VAL(X86::KXNORWrr), 0,
                        MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/*105634*/          OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/*105637*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i1, 2/*#Ops*/, 6, 7, 
                    // Src: (xor:{ *:[v4i1] } VK4:{ *:[v4i1] }:$src2, (xor:{ *:[v4i1] } immAllOnesV:{ *:[v4i1] }, 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] })
/*105645*/        0, /*End of Scope*/
/*105646*/      /*Scope*/ 124|128,1/*252*/, /*->105900*/
/*105648*/        OPC_CheckImmAllOnesV,
/*105649*/        OPC_MoveParent,
/*105650*/        OPC_SwitchType /*16 cases */, 9, MVT::v8i1,// ->105662
/*105653*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*105655*/          OPC_MorphNodeTo1, TARGET_VAL(X86::KNOTBrr), 0,
                        MVT::v8i1, 1/*#Ops*/, 0, 
                    // Src: (xor:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src, immAllOnesV:{ *:[v8i1] }) - Complexity = 7
                    // Dst: (KNOTBrr:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src)
/*105662*/        /*SwitchType*/ 9, MVT::v16i1,// ->105673
/*105664*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*105666*/          OPC_MorphNodeTo1, TARGET_VAL(X86::KNOTWrr), 0,
                        MVT::v16i1, 1/*#Ops*/, 0, 
                    // Src: (xor:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src, immAllOnesV:{ *:[v16i1] }) - Complexity = 7
                    // Dst: (KNOTWrr:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src)
/*105673*/        /*SwitchType*/ 9, MVT::v32i1,// ->105684
/*105675*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*105677*/          OPC_MorphNodeTo1, TARGET_VAL(X86::KNOTDrr), 0,
                        MVT::v32i1, 1/*#Ops*/, 0, 
                    // Src: (xor:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src, immAllOnesV:{ *:[v32i1] }) - Complexity = 7
                    // Dst: (KNOTDrr:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src)
/*105684*/        /*SwitchType*/ 9, MVT::v64i1,// ->105695
/*105686*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*105688*/          OPC_MorphNodeTo1, TARGET_VAL(X86::KNOTQrr), 0,
                        MVT::v64i1, 1/*#Ops*/, 0, 
                    // Src: (xor:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src, immAllOnesV:{ *:[v64i1] }) - Complexity = 7
                    // Dst: (KNOTQrr:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src)
/*105695*/        /*SwitchType*/ 15, MVT::v64i8,// ->105712
/*105697*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*105699*/          OPC_EmitInteger, MVT::i8, 15, 
/*105702*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrri), 0,
                        MVT::v64i8, 4/*#Ops*/, 0, 0, 0, 1, 
                    // Src: (xor:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src, immAllOnesV:{ *:[v64i8] }) - Complexity = 7
                    // Dst: (VPTERNLOGQZrri:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src, VR512:{ *:[v64i8] }:$src, VR512:{ *:[v64i8] }:$src, 15:{ *:[i8] })
/*105712*/        /*SwitchType*/ 15, MVT::v32i16,// ->105729
/*105714*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*105716*/          OPC_EmitInteger, MVT::i8, 15, 
/*105719*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrri), 0,
                        MVT::v32i16, 4/*#Ops*/, 0, 0, 0, 1, 
                    // Src: (xor:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src, immAllOnesV:{ *:[v32i16] }) - Complexity = 7
                    // Dst: (VPTERNLOGQZrri:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src, VR512:{ *:[v32i16] }:$src, VR512:{ *:[v32i16] }:$src, 15:{ *:[i8] })
/*105729*/        /*SwitchType*/ 15, MVT::v16i32,// ->105746
/*105731*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*105733*/          OPC_EmitInteger, MVT::i8, 15, 
/*105736*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrri), 0,
                        MVT::v16i32, 4/*#Ops*/, 0, 0, 0, 1, 
                    // Src: (xor:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src, immAllOnesV:{ *:[v16i32] }) - Complexity = 7
                    // Dst: (VPTERNLOGQZrri:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src, VR512:{ *:[v16i32] }:$src, VR512:{ *:[v16i32] }:$src, 15:{ *:[i8] })
/*105746*/        /*SwitchType*/ 15, MVT::v8i64,// ->105763
/*105748*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*105750*/          OPC_EmitInteger, MVT::i8, 15, 
/*105753*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrri), 0,
                        MVT::v8i64, 4/*#Ops*/, 0, 0, 0, 1, 
                    // Src: (xor:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src, immAllOnesV:{ *:[v8i64] }) - Complexity = 7
                    // Dst: (VPTERNLOGQZrri:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src, VR512:{ *:[v8i64] }:$src, VR512:{ *:[v8i64] }:$src, 15:{ *:[i8] })
/*105763*/        /*SwitchType*/ 15, MVT::v16i8,// ->105780
/*105765*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*105767*/          OPC_EmitInteger, MVT::i8, 15, 
/*105770*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rri), 0,
                        MVT::v16i8, 4/*#Ops*/, 0, 0, 0, 1, 
                    // Src: (xor:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src, immAllOnesV:{ *:[v16i8] }) - Complexity = 7
                    // Dst: (VPTERNLOGQZ128rri:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src, VR128X:{ *:[v16i8] }:$src, VR128X:{ *:[v16i8] }:$src, 15:{ *:[i8] })
/*105780*/        /*SwitchType*/ 15, MVT::v8i16,// ->105797
/*105782*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*105784*/          OPC_EmitInteger, MVT::i8, 15, 
/*105787*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rri), 0,
                        MVT::v8i16, 4/*#Ops*/, 0, 0, 0, 1, 
                    // Src: (xor:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src, immAllOnesV:{ *:[v8i16] }) - Complexity = 7
                    // Dst: (VPTERNLOGQZ128rri:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src, VR128X:{ *:[v8i16] }:$src, VR128X:{ *:[v8i16] }:$src, 15:{ *:[i8] })
/*105797*/        /*SwitchType*/ 15, MVT::v4i32,// ->105814
/*105799*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*105801*/          OPC_EmitInteger, MVT::i8, 15, 
/*105804*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rri), 0,
                        MVT::v4i32, 4/*#Ops*/, 0, 0, 0, 1, 
                    // Src: (xor:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src, immAllOnesV:{ *:[v4i32] }) - Complexity = 7
                    // Dst: (VPTERNLOGQZ128rri:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src, VR128X:{ *:[v4i32] }:$src, VR128X:{ *:[v4i32] }:$src, 15:{ *:[i8] })
/*105814*/        /*SwitchType*/ 15, MVT::v2i64,// ->105831
/*105816*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*105818*/          OPC_EmitInteger, MVT::i8, 15, 
/*105821*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rri), 0,
                        MVT::v2i64, 4/*#Ops*/, 0, 0, 0, 1, 
                    // Src: (xor:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src, immAllOnesV:{ *:[v2i64] }) - Complexity = 7
                    // Dst: (VPTERNLOGQZ128rri:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src, VR128X:{ *:[v2i64] }:$src, VR128X:{ *:[v2i64] }:$src, 15:{ *:[i8] })
/*105831*/        /*SwitchType*/ 15, MVT::v32i8,// ->105848
/*105833*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*105835*/          OPC_EmitInteger, MVT::i8, 15, 
/*105838*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rri), 0,
                        MVT::v32i8, 4/*#Ops*/, 0, 0, 0, 1, 
                    // Src: (xor:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src, immAllOnesV:{ *:[v32i8] }) - Complexity = 7
                    // Dst: (VPTERNLOGQZ256rri:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src, VR256X:{ *:[v32i8] }:$src, VR256X:{ *:[v32i8] }:$src, 15:{ *:[i8] })
/*105848*/        /*SwitchType*/ 15, MVT::v16i16,// ->105865
/*105850*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*105852*/          OPC_EmitInteger, MVT::i8, 15, 
/*105855*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rri), 0,
                        MVT::v16i16, 4/*#Ops*/, 0, 0, 0, 1, 
                    // Src: (xor:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src, immAllOnesV:{ *:[v16i16] }) - Complexity = 7
                    // Dst: (VPTERNLOGQZ256rri:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src, VR256X:{ *:[v16i16] }:$src, VR256X:{ *:[v16i16] }:$src, 15:{ *:[i8] })
/*105865*/        /*SwitchType*/ 15, MVT::v8i32,// ->105882
/*105867*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*105869*/          OPC_EmitInteger, MVT::i8, 15, 
/*105872*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rri), 0,
                        MVT::v8i32, 4/*#Ops*/, 0, 0, 0, 1, 
                    // Src: (xor:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src, immAllOnesV:{ *:[v8i32] }) - Complexity = 7
                    // Dst: (VPTERNLOGQZ256rri:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src, VR256X:{ *:[v8i32] }:$src, VR256X:{ *:[v8i32] }:$src, 15:{ *:[i8] })
/*105882*/        /*SwitchType*/ 15, MVT::v4i64,// ->105899
/*105884*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*105886*/          OPC_EmitInteger, MVT::i8, 15, 
/*105889*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rri), 0,
                        MVT::v4i64, 4/*#Ops*/, 0, 0, 0, 1, 
                    // Src: (xor:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src, immAllOnesV:{ *:[v4i64] }) - Complexity = 7
                    // Dst: (VPTERNLOGQZ256rri:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src, VR256X:{ *:[v4i64] }:$src, VR256X:{ *:[v4i64] }:$src, 15:{ *:[i8] })
/*105899*/        0, // EndSwitchType
/*105900*/      0, /*End of Scope*/
/*105901*/    /*Scope*/ 126|128,1/*254*/, /*->106157*/
/*105903*/      OPC_MoveChild0,
/*105904*/      OPC_CheckImmAllOnesV,
/*105905*/      OPC_MoveParent,
/*105906*/      OPC_RecordChild1, // #0 = $src
/*105907*/      OPC_SwitchType /*16 cases */, 9, MVT::v8i1,// ->105919
/*105910*/        OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*105912*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KNOTBrr), 0,
                      MVT::v8i1, 1/*#Ops*/, 0, 
                  // Src: (xor:{ *:[v8i1] } immAllOnesV:{ *:[v8i1] }, VK8:{ *:[v8i1] }:$src) - Complexity = 7
                  // Dst: (KNOTBrr:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src)
/*105919*/      /*SwitchType*/ 9, MVT::v16i1,// ->105930
/*105921*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*105923*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KNOTWrr), 0,
                      MVT::v16i1, 1/*#Ops*/, 0, 
                  // Src: (xor:{ *:[v16i1] } immAllOnesV:{ *:[v16i1] }, VK16:{ *:[v16i1] }:$src) - Complexity = 7
                  // Dst: (KNOTWrr:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src)
/*105930*/      /*SwitchType*/ 9, MVT::v32i1,// ->105941
/*105932*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*105934*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KNOTDrr), 0,
                      MVT::v32i1, 1/*#Ops*/, 0, 
                  // Src: (xor:{ *:[v32i1] } immAllOnesV:{ *:[v32i1] }, VK32:{ *:[v32i1] }:$src) - Complexity = 7
                  // Dst: (KNOTDrr:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src)
/*105941*/      /*SwitchType*/ 9, MVT::v64i1,// ->105952
/*105943*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*105945*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KNOTQrr), 0,
                      MVT::v64i1, 1/*#Ops*/, 0, 
                  // Src: (xor:{ *:[v64i1] } immAllOnesV:{ *:[v64i1] }, VK64:{ *:[v64i1] }:$src) - Complexity = 7
                  // Dst: (KNOTQrr:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src)
/*105952*/      /*SwitchType*/ 15, MVT::v64i8,// ->105969
/*105954*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*105956*/        OPC_EmitInteger, MVT::i8, 15, 
/*105959*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrri), 0,
                      MVT::v64i8, 4/*#Ops*/, 0, 0, 0, 1, 
                  // Src: (xor:{ *:[v64i8] } immAllOnesV:{ *:[v64i8] }, VR512:{ *:[v64i8] }:$src) - Complexity = 7
                  // Dst: (VPTERNLOGQZrri:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src, VR512:{ *:[v64i8] }:$src, VR512:{ *:[v64i8] }:$src, 15:{ *:[i8] })
/*105969*/      /*SwitchType*/ 15, MVT::v32i16,// ->105986
/*105971*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*105973*/        OPC_EmitInteger, MVT::i8, 15, 
/*105976*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrri), 0,
                      MVT::v32i16, 4/*#Ops*/, 0, 0, 0, 1, 
                  // Src: (xor:{ *:[v32i16] } immAllOnesV:{ *:[v32i16] }, VR512:{ *:[v32i16] }:$src) - Complexity = 7
                  // Dst: (VPTERNLOGQZrri:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src, VR512:{ *:[v32i16] }:$src, VR512:{ *:[v32i16] }:$src, 15:{ *:[i8] })
/*105986*/      /*SwitchType*/ 15, MVT::v16i32,// ->106003
/*105988*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*105990*/        OPC_EmitInteger, MVT::i8, 15, 
/*105993*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrri), 0,
                      MVT::v16i32, 4/*#Ops*/, 0, 0, 0, 1, 
                  // Src: (xor:{ *:[v16i32] } immAllOnesV:{ *:[v16i32] }, VR512:{ *:[v16i32] }:$src) - Complexity = 7
                  // Dst: (VPTERNLOGQZrri:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src, VR512:{ *:[v16i32] }:$src, VR512:{ *:[v16i32] }:$src, 15:{ *:[i8] })
/*106003*/      /*SwitchType*/ 15, MVT::v8i64,// ->106020
/*106005*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*106007*/        OPC_EmitInteger, MVT::i8, 15, 
/*106010*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrri), 0,
                      MVT::v8i64, 4/*#Ops*/, 0, 0, 0, 1, 
                  // Src: (xor:{ *:[v8i64] } immAllOnesV:{ *:[v8i64] }, VR512:{ *:[v8i64] }:$src) - Complexity = 7
                  // Dst: (VPTERNLOGQZrri:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src, VR512:{ *:[v8i64] }:$src, VR512:{ *:[v8i64] }:$src, 15:{ *:[i8] })
/*106020*/      /*SwitchType*/ 15, MVT::v16i8,// ->106037
/*106022*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*106024*/        OPC_EmitInteger, MVT::i8, 15, 
/*106027*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rri), 0,
                      MVT::v16i8, 4/*#Ops*/, 0, 0, 0, 1, 
                  // Src: (xor:{ *:[v16i8] } immAllOnesV:{ *:[v16i8] }, VR128X:{ *:[v16i8] }:$src) - Complexity = 7
                  // Dst: (VPTERNLOGQZ128rri:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src, VR128X:{ *:[v16i8] }:$src, VR128X:{ *:[v16i8] }:$src, 15:{ *:[i8] })
/*106037*/      /*SwitchType*/ 15, MVT::v8i16,// ->106054
/*106039*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*106041*/        OPC_EmitInteger, MVT::i8, 15, 
/*106044*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rri), 0,
                      MVT::v8i16, 4/*#Ops*/, 0, 0, 0, 1, 
                  // Src: (xor:{ *:[v8i16] } immAllOnesV:{ *:[v8i16] }, VR128X:{ *:[v8i16] }:$src) - Complexity = 7
                  // Dst: (VPTERNLOGQZ128rri:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src, VR128X:{ *:[v8i16] }:$src, VR128X:{ *:[v8i16] }:$src, 15:{ *:[i8] })
/*106054*/      /*SwitchType*/ 15, MVT::v4i32,// ->106071
/*106056*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*106058*/        OPC_EmitInteger, MVT::i8, 15, 
/*106061*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rri), 0,
                      MVT::v4i32, 4/*#Ops*/, 0, 0, 0, 1, 
                  // Src: (xor:{ *:[v4i32] } immAllOnesV:{ *:[v4i32] }, VR128X:{ *:[v4i32] }:$src) - Complexity = 7
                  // Dst: (VPTERNLOGQZ128rri:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src, VR128X:{ *:[v4i32] }:$src, VR128X:{ *:[v4i32] }:$src, 15:{ *:[i8] })
/*106071*/      /*SwitchType*/ 15, MVT::v2i64,// ->106088
/*106073*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*106075*/        OPC_EmitInteger, MVT::i8, 15, 
/*106078*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rri), 0,
                      MVT::v2i64, 4/*#Ops*/, 0, 0, 0, 1, 
                  // Src: (xor:{ *:[v2i64] } immAllOnesV:{ *:[v2i64] }, VR128X:{ *:[v2i64] }:$src) - Complexity = 7
                  // Dst: (VPTERNLOGQZ128rri:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src, VR128X:{ *:[v2i64] }:$src, VR128X:{ *:[v2i64] }:$src, 15:{ *:[i8] })
/*106088*/      /*SwitchType*/ 15, MVT::v32i8,// ->106105
/*106090*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*106092*/        OPC_EmitInteger, MVT::i8, 15, 
/*106095*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rri), 0,
                      MVT::v32i8, 4/*#Ops*/, 0, 0, 0, 1, 
                  // Src: (xor:{ *:[v32i8] } immAllOnesV:{ *:[v32i8] }, VR256X:{ *:[v32i8] }:$src) - Complexity = 7
                  // Dst: (VPTERNLOGQZ256rri:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src, VR256X:{ *:[v32i8] }:$src, VR256X:{ *:[v32i8] }:$src, 15:{ *:[i8] })
/*106105*/      /*SwitchType*/ 15, MVT::v16i16,// ->106122
/*106107*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*106109*/        OPC_EmitInteger, MVT::i8, 15, 
/*106112*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rri), 0,
                      MVT::v16i16, 4/*#Ops*/, 0, 0, 0, 1, 
                  // Src: (xor:{ *:[v16i16] } immAllOnesV:{ *:[v16i16] }, VR256X:{ *:[v16i16] }:$src) - Complexity = 7
                  // Dst: (VPTERNLOGQZ256rri:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src, VR256X:{ *:[v16i16] }:$src, VR256X:{ *:[v16i16] }:$src, 15:{ *:[i8] })
/*106122*/      /*SwitchType*/ 15, MVT::v8i32,// ->106139
/*106124*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*106126*/        OPC_EmitInteger, MVT::i8, 15, 
/*106129*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rri), 0,
                      MVT::v8i32, 4/*#Ops*/, 0, 0, 0, 1, 
                  // Src: (xor:{ *:[v8i32] } immAllOnesV:{ *:[v8i32] }, VR256X:{ *:[v8i32] }:$src) - Complexity = 7
                  // Dst: (VPTERNLOGQZ256rri:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src, VR256X:{ *:[v8i32] }:$src, VR256X:{ *:[v8i32] }:$src, 15:{ *:[i8] })
/*106139*/      /*SwitchType*/ 15, MVT::v4i64,// ->106156
/*106141*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*106143*/        OPC_EmitInteger, MVT::i8, 15, 
/*106146*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rri), 0,
                      MVT::v4i64, 4/*#Ops*/, 0, 0, 0, 1, 
                  // Src: (xor:{ *:[v4i64] } immAllOnesV:{ *:[v4i64] }, VR256X:{ *:[v4i64] }:$src) - Complexity = 7
                  // Dst: (VPTERNLOGQZ256rri:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src, VR256X:{ *:[v4i64] }:$src, VR256X:{ *:[v4i64] }:$src, 15:{ *:[i8] })
/*106156*/      0, // EndSwitchType
/*106157*/    /*Scope*/ 101, /*->106259*/
/*106158*/      OPC_RecordChild0, // #0 = $src
/*106159*/      OPC_MoveChild1,
/*106160*/      OPC_CheckImmAllOnesV,
/*106161*/      OPC_MoveParent,
/*106162*/      OPC_SwitchType /*3 cases */, 31, MVT::v8i1,// ->106196
/*106165*/        OPC_CheckPatternPredicate, 150, // (Subtarget->hasAVX512()) && (!Subtarget->hasDQI())
/*106167*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*106170*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 1,  // Results = #2
/*106178*/        OPC_EmitNode1, TARGET_VAL(X86::KNOTWrr), 0,
                      MVT::v16i1, 1/*#Ops*/, 2,  // Results = #3
/*106185*/        OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*106188*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v8i1, 2/*#Ops*/, 3, 4, 
                  // Src: (xor:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src, immAllOnesV:{ *:[v8i1] }) - Complexity = 7
                  // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (KNOTWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$src, VK16:{ *:[i32] })), VK8:{ *:[i32] })
/*106196*/      /*SwitchType*/ 29, MVT::v4i1,// ->106227
/*106198*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*106201*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 1,  // Results = #2
/*106209*/        OPC_EmitNode1, TARGET_VAL(X86::KNOTWrr), 0,
                      MVT::v16i1, 1/*#Ops*/, 2,  // Results = #3
/*106216*/        OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*106219*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i1, 2/*#Ops*/, 3, 4, 
                  // Src: (xor:{ *:[v4i1] } VK4:{ *:[v4i1] }:$src, immAllOnesV:{ *:[v4i1] }) - Complexity = 7
                  // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (KNOTWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$src, VK16:{ *:[i32] })), VK4:{ *:[i32] })
/*106227*/      /*SwitchType*/ 29, MVT::v2i1,// ->106258
/*106229*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*106232*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 1,  // Results = #2
/*106240*/        OPC_EmitNode1, TARGET_VAL(X86::KNOTWrr), 0,
                      MVT::v16i1, 1/*#Ops*/, 2,  // Results = #3
/*106247*/        OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/*106250*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2i1, 2/*#Ops*/, 3, 4, 
                  // Src: (xor:{ *:[v2i1] } VK2:{ *:[v2i1] }:$src, immAllOnesV:{ *:[v2i1] }) - Complexity = 7
                  // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (KNOTWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK2:{ *:[v2i1] }:$src, VK16:{ *:[i32] })), VK2:{ *:[i32] })
/*106258*/      0, // EndSwitchType
/*106259*/    /*Scope*/ 101, /*->106361*/
/*106260*/      OPC_MoveChild0,
/*106261*/      OPC_CheckImmAllOnesV,
/*106262*/      OPC_MoveParent,
/*106263*/      OPC_RecordChild1, // #0 = $src
/*106264*/      OPC_SwitchType /*3 cases */, 31, MVT::v8i1,// ->106298
/*106267*/        OPC_CheckPatternPredicate, 150, // (Subtarget->hasAVX512()) && (!Subtarget->hasDQI())
/*106269*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*106272*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 1,  // Results = #2
/*106280*/        OPC_EmitNode1, TARGET_VAL(X86::KNOTWrr), 0,
                      MVT::v16i1, 1/*#Ops*/, 2,  // Results = #3
/*106287*/        OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*106290*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v8i1, 2/*#Ops*/, 3, 4, 
                  // Src: (xor:{ *:[v8i1] } immAllOnesV:{ *:[v8i1] }, VK8:{ *:[v8i1] }:$src) - Complexity = 7
                  // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (KNOTWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$src, VK16:{ *:[i32] })), VK8:{ *:[i32] })
/*106298*/      /*SwitchType*/ 29, MVT::v4i1,// ->106329
/*106300*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*106303*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 1,  // Results = #2
/*106311*/        OPC_EmitNode1, TARGET_VAL(X86::KNOTWrr), 0,
                      MVT::v16i1, 1/*#Ops*/, 2,  // Results = #3
/*106318*/        OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*106321*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i1, 2/*#Ops*/, 3, 4, 
                  // Src: (xor:{ *:[v4i1] } immAllOnesV:{ *:[v4i1] }, VK4:{ *:[v4i1] }:$src) - Complexity = 7
                  // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (KNOTWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$src, VK16:{ *:[i32] })), VK4:{ *:[i32] })
/*106329*/      /*SwitchType*/ 29, MVT::v2i1,// ->106360
/*106331*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*106334*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 1,  // Results = #2
/*106342*/        OPC_EmitNode1, TARGET_VAL(X86::KNOTWrr), 0,
                      MVT::v16i1, 1/*#Ops*/, 2,  // Results = #3
/*106349*/        OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/*106352*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2i1, 2/*#Ops*/, 3, 4, 
                  // Src: (xor:{ *:[v2i1] } immAllOnesV:{ *:[v2i1] }, VK2:{ *:[v2i1] }:$src) - Complexity = 7
                  // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (KNOTWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK2:{ *:[v2i1] }:$src, VK16:{ *:[i32] })), VK2:{ *:[i32] })
/*106360*/      0, // EndSwitchType
/*106361*/    /*Scope*/ 22|128,5/*662*/, /*->107025*/
/*106363*/      OPC_RecordChild0, // #0 = $src
/*106364*/      OPC_MoveChild1,
/*106365*/      OPC_CheckImmAllOnesV,
/*106366*/      OPC_MoveParent,
/*106367*/      OPC_SwitchType /*8 cases */, 80, MVT::v16i8,// ->106450
/*106370*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*106372*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #1
/*106378*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*106381*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*106390*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #4
/*106396*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*106399*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/*106408*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #7
/*106414*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*106417*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 7, 0, 8,  // Results = #9
/*106426*/        OPC_EmitInteger, MVT::i8, 15, 
/*106429*/        OPC_EmitNode1, TARGET_VAL(X86::VPTERNLOGQZrri), 0,
                      MVT::v64i8, 4/*#Ops*/, 3, 6, 9, 10,  // Results = #11
/*106439*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*106442*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v16i8, 2/*#Ops*/, 11, 12, 
                  // Src: (xor:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src, immAllOnesV:{ *:[v16i8] }) - Complexity = 7
                  // Dst: (EXTRACT_SUBREG:{ *:[v16i8] } (VPTERNLOGQZrri:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v16i8] }:$src, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v16i8] }:$src, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v16i8] }:$src, sub_xmm:{ *:[i32] }), 15:{ *:[i8] }), sub_xmm:{ *:[i32] })
/*106450*/      /*SwitchType*/ 80, MVT::v8i16,// ->106532
/*106452*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*106454*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #1
/*106460*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*106463*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*106472*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #4
/*106478*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*106481*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/*106490*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #7
/*106496*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*106499*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 7, 0, 8,  // Results = #9
/*106508*/        OPC_EmitInteger, MVT::i8, 15, 
/*106511*/        OPC_EmitNode1, TARGET_VAL(X86::VPTERNLOGQZrri), 0,
                      MVT::v64i8, 4/*#Ops*/, 3, 6, 9, 10,  // Results = #11
/*106521*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*106524*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v8i16, 2/*#Ops*/, 11, 12, 
                  // Src: (xor:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src, immAllOnesV:{ *:[v8i16] }) - Complexity = 7
                  // Dst: (EXTRACT_SUBREG:{ *:[v8i16] } (VPTERNLOGQZrri:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v8i16] }:$src, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v8i16] }:$src, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v8i16] }:$src, sub_xmm:{ *:[i32] }), 15:{ *:[i8] }), sub_xmm:{ *:[i32] })
/*106532*/      /*SwitchType*/ 80, MVT::v4i32,// ->106614
/*106534*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*106536*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #1
/*106542*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*106545*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*106554*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #4
/*106560*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*106563*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/*106572*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #7
/*106578*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*106581*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 7, 0, 8,  // Results = #9
/*106590*/        OPC_EmitInteger, MVT::i8, 15, 
/*106593*/        OPC_EmitNode1, TARGET_VAL(X86::VPTERNLOGQZrri), 0,
                      MVT::v64i8, 4/*#Ops*/, 3, 6, 9, 10,  // Results = #11
/*106603*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*106606*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v4i32, 2/*#Ops*/, 11, 12, 
                  // Src: (xor:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src, immAllOnesV:{ *:[v4i32] }) - Complexity = 7
                  // Dst: (EXTRACT_SUBREG:{ *:[v4i32] } (VPTERNLOGQZrri:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v4i32] }:$src, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v4i32] }:$src, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v4i32] }:$src, sub_xmm:{ *:[i32] }), 15:{ *:[i8] }), sub_xmm:{ *:[i32] })
/*106614*/      /*SwitchType*/ 80, MVT::v2i64,// ->106696
/*106616*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*106618*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #1
/*106624*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*106627*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*106636*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #4
/*106642*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*106645*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/*106654*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #7
/*106660*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*106663*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 7, 0, 8,  // Results = #9
/*106672*/        OPC_EmitInteger, MVT::i8, 15, 
/*106675*/        OPC_EmitNode1, TARGET_VAL(X86::VPTERNLOGQZrri), 0,
                      MVT::v64i8, 4/*#Ops*/, 3, 6, 9, 10,  // Results = #11
/*106685*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*106688*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v2i64, 2/*#Ops*/, 11, 12, 
                  // Src: (xor:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src, immAllOnesV:{ *:[v2i64] }) - Complexity = 7
                  // 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] })
/*106696*/      /*SwitchType*/ 80, MVT::v32i8,// ->106778
/*106698*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*106700*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #1
/*106706*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*106709*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*106718*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #4
/*106724*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*106727*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/*106736*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #7
/*106742*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*106745*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 7, 0, 8,  // Results = #9
/*106754*/        OPC_EmitInteger, MVT::i8, 15, 
/*106757*/        OPC_EmitNode1, TARGET_VAL(X86::VPTERNLOGQZrri), 0,
                      MVT::v64i8, 4/*#Ops*/, 3, 6, 9, 10,  // Results = #11
/*106767*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*106770*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v32i8, 2/*#Ops*/, 11, 12, 
                  // Src: (xor:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src, immAllOnesV:{ *:[v32i8] }) - Complexity = 7
                  // Dst: (EXTRACT_SUBREG:{ *:[v32i8] } (VPTERNLOGQZrri:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v32i8] }:$src, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v32i8] }:$src, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v32i8] }:$src, sub_ymm:{ *:[i32] }), 15:{ *:[i8] }), sub_ymm:{ *:[i32] })
/*106778*/      /*SwitchType*/ 80, MVT::v16i16,// ->106860
/*106780*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*106782*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #1
/*106788*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*106791*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*106800*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #4
/*106806*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*106809*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/*106818*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #7
/*106824*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*106827*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 7, 0, 8,  // Results = #9
/*106836*/        OPC_EmitInteger, MVT::i8, 15, 
/*106839*/        OPC_EmitNode1, TARGET_VAL(X86::VPTERNLOGQZrri), 0,
                      MVT::v64i8, 4/*#Ops*/, 3, 6, 9, 10,  // Results = #11
/*106849*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*106852*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v16i16, 2/*#Ops*/, 11, 12, 
                  // Src: (xor:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src, immAllOnesV:{ *:[v16i16] }) - Complexity = 7
                  // Dst: (EXTRACT_SUBREG:{ *:[v16i16] } (VPTERNLOGQZrri:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v16i16] }:$src, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v16i16] }:$src, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v16i16] }:$src, sub_ymm:{ *:[i32] }), 15:{ *:[i8] }), sub_ymm:{ *:[i32] })
/*106860*/      /*SwitchType*/ 80, MVT::v8i32,// ->106942
/*106862*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*106864*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #1
/*106870*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*106873*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*106882*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #4
/*106888*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*106891*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/*106900*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #7
/*106906*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*106909*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 7, 0, 8,  // Results = #9
/*106918*/        OPC_EmitInteger, MVT::i8, 15, 
/*106921*/        OPC_EmitNode1, TARGET_VAL(X86::VPTERNLOGQZrri), 0,
                      MVT::v64i8, 4/*#Ops*/, 3, 6, 9, 10,  // Results = #11
/*106931*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*106934*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v8i32, 2/*#Ops*/, 11, 12, 
                  // Src: (xor:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src, immAllOnesV:{ *:[v8i32] }) - Complexity = 7
                  // Dst: (EXTRACT_SUBREG:{ *:[v8i32] } (VPTERNLOGQZrri:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v8i32] }:$src, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v8i32] }:$src, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v8i32] }:$src, sub_ymm:{ *:[i32] }), 15:{ *:[i8] }), sub_ymm:{ *:[i32] })
/*106942*/      /*SwitchType*/ 80, MVT::v4i64,// ->107024
/*106944*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*106946*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #1
/*106952*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*106955*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*106964*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #4
/*106970*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*106973*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/*106982*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #7
/*106988*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*106991*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 7, 0, 8,  // Results = #9
/*107000*/        OPC_EmitInteger, MVT::i8, 15, 
/*107003*/        OPC_EmitNode1, TARGET_VAL(X86::VPTERNLOGQZrri), 0,
                      MVT::v64i8, 4/*#Ops*/, 3, 6, 9, 10,  // Results = #11
/*107013*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*107016*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v4i64, 2/*#Ops*/, 11, 12, 
                  // Src: (xor:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src, immAllOnesV:{ *:[v4i64] }) - Complexity = 7
                  // 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] })
/*107024*/      0, // EndSwitchType
/*107025*/    /*Scope*/ 22|128,5/*662*/, /*->107689*/
/*107027*/      OPC_MoveChild0,
/*107028*/      OPC_CheckImmAllOnesV,
/*107029*/      OPC_MoveParent,
/*107030*/      OPC_RecordChild1, // #0 = $src
/*107031*/      OPC_SwitchType /*8 cases */, 80, MVT::v16i8,// ->107114
/*107034*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*107036*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #1
/*107042*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*107045*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*107054*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #4
/*107060*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*107063*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/*107072*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #7
/*107078*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*107081*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 7, 0, 8,  // Results = #9
/*107090*/        OPC_EmitInteger, MVT::i8, 15, 
/*107093*/        OPC_EmitNode1, TARGET_VAL(X86::VPTERNLOGQZrri), 0,
                      MVT::v64i8, 4/*#Ops*/, 3, 6, 9, 10,  // Results = #11
/*107103*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*107106*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v16i8, 2/*#Ops*/, 11, 12, 
                  // Src: (xor:{ *:[v16i8] } immAllOnesV:{ *:[v16i8] }, VR128X:{ *:[v16i8] }:$src) - Complexity = 7
                  // Dst: (EXTRACT_SUBREG:{ *:[v16i8] } (VPTERNLOGQZrri:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v16i8] }:$src, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v16i8] }:$src, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v16i8] }:$src, sub_xmm:{ *:[i32] }), 15:{ *:[i8] }), sub_xmm:{ *:[i32] })
/*107114*/      /*SwitchType*/ 80, MVT::v8i16,// ->107196
/*107116*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*107118*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #1
/*107124*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*107127*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*107136*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #4
/*107142*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*107145*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/*107154*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #7
/*107160*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*107163*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 7, 0, 8,  // Results = #9
/*107172*/        OPC_EmitInteger, MVT::i8, 15, 
/*107175*/        OPC_EmitNode1, TARGET_VAL(X86::VPTERNLOGQZrri), 0,
                      MVT::v64i8, 4/*#Ops*/, 3, 6, 9, 10,  // Results = #11
/*107185*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*107188*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v8i16, 2/*#Ops*/, 11, 12, 
                  // Src: (xor:{ *:[v8i16] } immAllOnesV:{ *:[v8i16] }, VR128X:{ *:[v8i16] }:$src) - Complexity = 7
                  // Dst: (EXTRACT_SUBREG:{ *:[v8i16] } (VPTERNLOGQZrri:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v8i16] }:$src, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v8i16] }:$src, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v8i16] }:$src, sub_xmm:{ *:[i32] }), 15:{ *:[i8] }), sub_xmm:{ *:[i32] })
/*107196*/      /*SwitchType*/ 80, MVT::v4i32,// ->107278
/*107198*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*107200*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #1
/*107206*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*107209*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*107218*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #4
/*107224*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*107227*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/*107236*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #7
/*107242*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*107245*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 7, 0, 8,  // Results = #9
/*107254*/        OPC_EmitInteger, MVT::i8, 15, 
/*107257*/        OPC_EmitNode1, TARGET_VAL(X86::VPTERNLOGQZrri), 0,
                      MVT::v64i8, 4/*#Ops*/, 3, 6, 9, 10,  // Results = #11
/*107267*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*107270*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v4i32, 2/*#Ops*/, 11, 12, 
                  // Src: (xor:{ *:[v4i32] } immAllOnesV:{ *:[v4i32] }, VR128X:{ *:[v4i32] }:$src) - Complexity = 7
                  // Dst: (EXTRACT_SUBREG:{ *:[v4i32] } (VPTERNLOGQZrri:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v4i32] }:$src, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v4i32] }:$src, sub_xmm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v4i32] }:$src, sub_xmm:{ *:[i32] }), 15:{ *:[i8] }), sub_xmm:{ *:[i32] })
/*107278*/      /*SwitchType*/ 80, MVT::v2i64,// ->107360
/*107280*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*107282*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #1
/*107288*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*107291*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*107300*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #4
/*107306*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*107309*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/*107318*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #7
/*107324*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*107327*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 7, 0, 8,  // Results = #9
/*107336*/        OPC_EmitInteger, MVT::i8, 15, 
/*107339*/        OPC_EmitNode1, TARGET_VAL(X86::VPTERNLOGQZrri), 0,
                      MVT::v64i8, 4/*#Ops*/, 3, 6, 9, 10,  // Results = #11
/*107349*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*107352*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v2i64, 2/*#Ops*/, 11, 12, 
                  // Src: (xor:{ *:[v2i64] } immAllOnesV:{ *:[v2i64] }, VR128X:{ *:[v2i64] }:$src) - Complexity = 7
                  // 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] })
/*107360*/      /*SwitchType*/ 80, MVT::v32i8,// ->107442
/*107362*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*107364*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #1
/*107370*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*107373*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*107382*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #4
/*107388*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*107391*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/*107400*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #7
/*107406*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*107409*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 7, 0, 8,  // Results = #9
/*107418*/        OPC_EmitInteger, MVT::i8, 15, 
/*107421*/        OPC_EmitNode1, TARGET_VAL(X86::VPTERNLOGQZrri), 0,
                      MVT::v64i8, 4/*#Ops*/, 3, 6, 9, 10,  // Results = #11
/*107431*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*107434*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v32i8, 2/*#Ops*/, 11, 12, 
                  // Src: (xor:{ *:[v32i8] } immAllOnesV:{ *:[v32i8] }, VR256X:{ *:[v32i8] }:$src) - Complexity = 7
                  // Dst: (EXTRACT_SUBREG:{ *:[v32i8] } (VPTERNLOGQZrri:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v32i8] }:$src, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v32i8] }:$src, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v32i8] }:$src, sub_ymm:{ *:[i32] }), 15:{ *:[i8] }), sub_ymm:{ *:[i32] })
/*107442*/      /*SwitchType*/ 80, MVT::v16i16,// ->107524
/*107444*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*107446*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #1
/*107452*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*107455*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*107464*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #4
/*107470*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*107473*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/*107482*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #7
/*107488*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*107491*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 7, 0, 8,  // Results = #9
/*107500*/        OPC_EmitInteger, MVT::i8, 15, 
/*107503*/        OPC_EmitNode1, TARGET_VAL(X86::VPTERNLOGQZrri), 0,
                      MVT::v64i8, 4/*#Ops*/, 3, 6, 9, 10,  // Results = #11
/*107513*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*107516*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v16i16, 2/*#Ops*/, 11, 12, 
                  // Src: (xor:{ *:[v16i16] } immAllOnesV:{ *:[v16i16] }, VR256X:{ *:[v16i16] }:$src) - Complexity = 7
                  // Dst: (EXTRACT_SUBREG:{ *:[v16i16] } (VPTERNLOGQZrri:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v16i16] }:$src, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v16i16] }:$src, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v16i16] }:$src, sub_ymm:{ *:[i32] }), 15:{ *:[i8] }), sub_ymm:{ *:[i32] })
/*107524*/      /*SwitchType*/ 80, MVT::v8i32,// ->107606
/*107526*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*107528*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #1
/*107534*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*107537*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*107546*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #4
/*107552*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*107555*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/*107564*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #7
/*107570*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*107573*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 7, 0, 8,  // Results = #9
/*107582*/        OPC_EmitInteger, MVT::i8, 15, 
/*107585*/        OPC_EmitNode1, TARGET_VAL(X86::VPTERNLOGQZrri), 0,
                      MVT::v64i8, 4/*#Ops*/, 3, 6, 9, 10,  // Results = #11
/*107595*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*107598*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v8i32, 2/*#Ops*/, 11, 12, 
                  // Src: (xor:{ *:[v8i32] } immAllOnesV:{ *:[v8i32] }, VR256X:{ *:[v8i32] }:$src) - Complexity = 7
                  // Dst: (EXTRACT_SUBREG:{ *:[v8i32] } (VPTERNLOGQZrri:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v8i32] }:$src, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v8i32] }:$src, sub_ymm:{ *:[i32] }), (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v8i32] }:$src, sub_ymm:{ *:[i32] }), 15:{ *:[i8] }), sub_ymm:{ *:[i32] })
/*107606*/      /*SwitchType*/ 80, MVT::v4i64,// ->107688
/*107608*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*107610*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #1
/*107616*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*107619*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*107628*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #4
/*107634*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*107637*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/*107646*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #7
/*107652*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*107655*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 7, 0, 8,  // Results = #9
/*107664*/        OPC_EmitInteger, MVT::i8, 15, 
/*107667*/        OPC_EmitNode1, TARGET_VAL(X86::VPTERNLOGQZrri), 0,
                      MVT::v64i8, 4/*#Ops*/, 3, 6, 9, 10,  // Results = #11
/*107677*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*107680*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v4i64, 2/*#Ops*/, 11, 12, 
                  // Src: (xor:{ *:[v4i64] } immAllOnesV:{ *:[v4i64] }, VR256X:{ *:[v4i64] }:$src) - Complexity = 7
                  // 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] })
/*107688*/      0, // EndSwitchType
/*107689*/    /*Scope*/ 60|128,4/*572*/, /*->108263*/
/*107691*/      OPC_RecordChild0, // #0 = $src1
/*107692*/      OPC_RecordChild1, // #1 = $src2
/*107693*/      OPC_SwitchType /*19 cases */, 35, MVT::v2i64,// ->107731
/*107696*/        OPC_Scope, 10, /*->107708*/ // 3 children in Scope
/*107698*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*107700*/          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)
/*107708*/        /*Scope*/ 10, /*->107719*/
/*107709*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*107711*/          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)
/*107719*/        /*Scope*/ 10, /*->107730*/
/*107720*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*107722*/          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)
/*107730*/        0, /*End of Scope*/
/*107731*/      /*SwitchType*/ 35, MVT::v4i64,// ->107768
/*107733*/        OPC_Scope, 10, /*->107745*/ // 3 children in Scope
/*107735*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*107737*/          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)
/*107745*/        /*Scope*/ 10, /*->107756*/
/*107746*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*107748*/          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)
/*107756*/        /*Scope*/ 10, /*->107767*/
/*107757*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*107759*/          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)
/*107767*/        0, /*End of Scope*/
/*107768*/      /*SwitchType*/ 35, MVT::v32i8,// ->107805
/*107770*/        OPC_Scope, 10, /*->107782*/ // 3 children in Scope
/*107772*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*107774*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORYrr), 0,
                        MVT::v32i8, 2/*#Ops*/, 0, 1, 
                    // Src: (xor:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2) - Complexity = 3
                    // Dst: (VPXORYrr:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2)
/*107782*/        /*Scope*/ 10, /*->107793*/
/*107783*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*107785*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VXORPSYrr), 0,
                        MVT::v32i8, 2/*#Ops*/, 0, 1, 
                    // Src: (xor:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2) - Complexity = 3
                    // Dst: (VXORPSYrr:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2)
/*107793*/        /*Scope*/ 10, /*->107804*/
/*107794*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*107796*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ256rr), 0,
                        MVT::v32i8, 2/*#Ops*/, 0, 1, 
                    // Src: (xor:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2) - Complexity = 3
                    // Dst: (VPXORQZ256rr:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*107804*/        0, /*End of Scope*/
/*107805*/      /*SwitchType*/ 35, MVT::v16i16,// ->107842
/*107807*/        OPC_Scope, 10, /*->107819*/ // 3 children in Scope
/*107809*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*107811*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORYrr), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1, 
                    // Src: (xor:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2) - Complexity = 3
                    // Dst: (VPXORYrr:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2)
/*107819*/        /*Scope*/ 10, /*->107830*/
/*107820*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*107822*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VXORPSYrr), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1, 
                    // Src: (xor:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2) - Complexity = 3
                    // Dst: (VXORPSYrr:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2)
/*107830*/        /*Scope*/ 10, /*->107841*/
/*107831*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*107833*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ256rr), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1, 
                    // Src: (xor:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2) - Complexity = 3
                    // Dst: (VPXORQZ256rr:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*107841*/        0, /*End of Scope*/
/*107842*/      /*SwitchType*/ 35, MVT::v8i32,// ->107879
/*107844*/        OPC_Scope, 10, /*->107856*/ // 3 children in Scope
/*107846*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*107848*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORYrr), 0,
                        MVT::v8i32, 2/*#Ops*/, 0, 1, 
                    // Src: (xor:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2) - Complexity = 3
                    // Dst: (VPXORYrr:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2)
/*107856*/        /*Scope*/ 10, /*->107867*/
/*107857*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*107859*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VXORPSYrr), 0,
                        MVT::v8i32, 2/*#Ops*/, 0, 1, 
                    // Src: (xor:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2) - Complexity = 3
                    // Dst: (VXORPSYrr:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2)
/*107867*/        /*Scope*/ 10, /*->107878*/
/*107868*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*107870*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ256rr), 0,
                        MVT::v8i32, 2/*#Ops*/, 0, 1, 
                    // Src: (xor:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2) - Complexity = 3
                    // Dst: (VPXORDZ256rr:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*107878*/        0, /*End of Scope*/
/*107879*/      /*SwitchType*/ 35, MVT::v16i8,// ->107916
/*107881*/        OPC_Scope, 10, /*->107893*/ // 3 children in Scope
/*107883*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*107885*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORrr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (xor:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (VPXORrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)
/*107893*/        /*Scope*/ 10, /*->107904*/
/*107894*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*107896*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PXORrr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (xor:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (PXORrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)
/*107904*/        /*Scope*/ 10, /*->107915*/
/*107905*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*107907*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ128rr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (xor:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (VPXORQZ128rr:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*107915*/        0, /*End of Scope*/
/*107916*/      /*SwitchType*/ 35, MVT::v8i16,// ->107953
/*107918*/        OPC_Scope, 10, /*->107930*/ // 3 children in Scope
/*107920*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*107922*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (xor:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (VPXORrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*107930*/        /*Scope*/ 10, /*->107941*/
/*107931*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*107933*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PXORrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (xor:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (PXORrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*107941*/        /*Scope*/ 10, /*->107952*/
/*107942*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*107944*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ128rr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (xor:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (VPXORQZ128rr:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*107952*/        0, /*End of Scope*/
/*107953*/      /*SwitchType*/ 35, MVT::v4i32,// ->107990
/*107955*/        OPC_Scope, 10, /*->107967*/ // 3 children in Scope
/*107957*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*107959*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORrr), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (xor:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 3
                    // Dst: (VPXORrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/*107967*/        /*Scope*/ 10, /*->107978*/
/*107968*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*107970*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PXORrr), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (xor:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 3
                    // Dst: (PXORrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/*107978*/        /*Scope*/ 10, /*->107989*/
/*107979*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*107981*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ128rr), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (xor:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2) - Complexity = 3
                    // Dst: (VPXORDZ128rr:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*107989*/        0, /*End of Scope*/
/*107990*/      /*SwitchType*/ 57, MVT::v8i1,// ->108049
/*107992*/        OPC_Scope, 10, /*->108004*/ // 2 children in Scope
/*107994*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*107996*/          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)
/*108004*/        /*Scope*/ 43, /*->108048*/
/*108005*/          OPC_CheckPatternPredicate, 116, // (!Subtarget->hasDQI())
/*108007*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*108010*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*108018*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*108021*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 1, 4,  // Results = #5
/*108029*/          OPC_EmitNode1, TARGET_VAL(X86::KXORWrr), 0,
                        MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/*108037*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*108040*/          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] })
/*108048*/        0, /*End of Scope*/
/*108049*/      /*SwitchType*/ 10, MVT::v16i1,// ->108061
/*108051*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*108053*/        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)
/*108061*/      /*SwitchType*/ 10, MVT::v32i1,// ->108073
/*108063*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*108065*/        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)
/*108073*/      /*SwitchType*/ 10, MVT::v64i1,// ->108085
/*108075*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*108077*/        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)
/*108085*/      /*SwitchType*/ 10, MVT::v8i64,// ->108097
/*108087*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*108089*/        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)
/*108097*/      /*SwitchType*/ 10, MVT::v16i32,// ->108109
/*108099*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*108101*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZrr), 0,
                      MVT::v16i32, 2/*#Ops*/, 0, 1, 
                  // Src: (xor:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2) - Complexity = 3
                  // Dst: (VPXORDZrr:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*108109*/      /*SwitchType*/ 10, MVT::v64i8,// ->108121
/*108111*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*108113*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZrr), 0,
                      MVT::v64i8, 2/*#Ops*/, 0, 1, 
                  // Src: (xor:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2) - Complexity = 3
                  // Dst: (VPXORQZrr:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*108121*/      /*SwitchType*/ 10, MVT::v32i16,// ->108133
/*108123*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*108125*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZrr), 0,
                      MVT::v32i16, 2/*#Ops*/, 0, 1, 
                  // Src: (xor:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2) - Complexity = 3
                  // Dst: (VPXORQZrr:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*108133*/      /*SwitchType*/ 41, MVT::v1i1,// ->108176
/*108135*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*108138*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*108146*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*108149*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 1, 4,  // Results = #5
/*108157*/        OPC_EmitNode1, TARGET_VAL(X86::KXORWrr), 0,
                      MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/*108165*/        OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/*108168*/        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] })
/*108176*/      /*SwitchType*/ 41, MVT::v2i1,// ->108219
/*108178*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*108181*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*108189*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*108192*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 1, 4,  // Results = #5
/*108200*/        OPC_EmitNode1, TARGET_VAL(X86::KXORWrr), 0,
                      MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/*108208*/        OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/*108211*/        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] })
/*108219*/      /*SwitchType*/ 41, MVT::v4i1,// ->108262
/*108221*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*108224*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*108232*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*108235*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v16i1, 2/*#Ops*/, 1, 4,  // Results = #5
/*108243*/        OPC_EmitNode1, TARGET_VAL(X86::KXORWrr), 0,
                      MVT::v16i1, 2/*#Ops*/, 3, 5,  // Results = #6
/*108251*/        OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/*108254*/        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] })
/*108262*/      0, // EndSwitchType
/*108263*/    0, /*End of Scope*/
/*108264*/  /*SwitchOpcode*/ 123, TARGET_VAL(ISD::CTTZ_ZERO_UNDEF),// ->108390
/*108267*/    OPC_Scope, 80, /*->108349*/ // 2 children in Scope
/*108269*/      OPC_MoveChild0,
/*108270*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*108273*/      OPC_RecordMemRef,
/*108274*/      OPC_RecordNode, // #0 = 'ld' chained node
/*108275*/      OPC_RecordChild1, // #1 = $src
/*108276*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*108278*/      OPC_SwitchType /*3 cases */, 21, MVT::i16,// ->108302
/*108281*/        OPC_CheckPredicate, 7, // Predicate_loadi16
/*108283*/        OPC_MoveParent,
/*108284*/        OPC_CheckType, MVT::i16,
/*108286*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*108289*/        OPC_EmitMergeInputChains1_0,
/*108290*/        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)
/*108302*/      /*SwitchType*/ 21, MVT::i32,// ->108325
/*108304*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*108306*/        OPC_MoveParent,
/*108307*/        OPC_CheckType, MVT::i32,
/*108309*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*108312*/        OPC_EmitMergeInputChains1_0,
/*108313*/        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)
/*108325*/      /*SwitchType*/ 21, MVT::i64,// ->108348
/*108327*/        OPC_CheckPredicate, 9, // Predicate_load
/*108329*/        OPC_MoveParent,
/*108330*/        OPC_CheckType, MVT::i64,
/*108332*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*108335*/        OPC_EmitMergeInputChains1_0,
/*108336*/        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)
/*108348*/      0, // EndSwitchType
/*108349*/    /*Scope*/ 39, /*->108389*/
/*108350*/      OPC_RecordChild0, // #0 = $src
/*108351*/      OPC_SwitchType /*3 cases */, 10, MVT::i16,// ->108364
/*108354*/        OPC_CheckChild0Type, MVT::i16,
/*108356*/        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)
/*108364*/      /*SwitchType*/ 10, MVT::i32,// ->108376
/*108366*/        OPC_CheckChild0Type, MVT::i32,
/*108368*/        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)
/*108376*/      /*SwitchType*/ 10, MVT::i64,// ->108388
/*108378*/        OPC_CheckChild0Type, MVT::i64,
/*108380*/        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)
/*108388*/      0, // EndSwitchType
/*108389*/    0, /*End of Scope*/
/*108390*/  /*SwitchOpcode*/ 127|128,2/*383*/, TARGET_VAL(X86ISD::FP_TO_INT_IN_MEM),// ->108777
/*108394*/    OPC_RecordMemRef,
/*108395*/    OPC_RecordNode, // #0 = 'X86fp_to_mem' chained node
/*108396*/    OPC_RecordChild1, // #1 = $src
/*108397*/    OPC_Scope, 125, /*->108524*/ // 3 children in Scope
/*108399*/      OPC_CheckChild1Type, MVT::f32,
/*108401*/      OPC_RecordChild2, // #2 = $op
/*108402*/      OPC_Scope, 20, /*->108424*/ // 6 children in Scope
/*108404*/        OPC_CheckPredicate, 62, // Predicate_X86fp_to_i16mem
/*108406*/        OPC_CheckPatternPredicate, 94, // (Subtarget->hasSSE3())
/*108408*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$op #3 #4 #5 #6 #7
/*108411*/        OPC_EmitMergeInputChains1_0,
/*108412*/        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_mem RFP32:{ *:[f32] }:$src, addr:{ *:[iPTR] }:$op)<<P:Predicate_X86fp_to_i16mem>> - Complexity = 22
                  // Dst: (ISTT_Fp16m32:{ *:[i16] } addr:{ *:[iPTR] }:$op, RFP32:{ *:[f32] }:$src)
/*108424*/      /*Scope*/ 20, /*->108445*/
/*108425*/        OPC_CheckPredicate, 63, // Predicate_X86fp_to_i32mem
/*108427*/        OPC_CheckPatternPredicate, 94, // (Subtarget->hasSSE3())
/*108429*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$op #3 #4 #5 #6 #7
/*108432*/        OPC_EmitMergeInputChains1_0,
/*108433*/        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_mem RFP32:{ *:[f32] }:$src, addr:{ *:[iPTR] }:$op)<<P:Predicate_X86fp_to_i32mem>> - Complexity = 22
                  // Dst: (ISTT_Fp32m32:{ *:[i16] } addr:{ *:[iPTR] }:$op, RFP32:{ *:[f32] }:$src)
/*108445*/      /*Scope*/ 20, /*->108466*/
/*108446*/        OPC_CheckPredicate, 64, // Predicate_X86fp_to_i64mem
/*108448*/        OPC_CheckPatternPredicate, 94, // (Subtarget->hasSSE3())
/*108450*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$op #3 #4 #5 #6 #7
/*108453*/        OPC_EmitMergeInputChains1_0,
/*108454*/        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_mem RFP32:{ *:[f32] }:$src, addr:{ *:[iPTR] }:$op)<<P:Predicate_X86fp_to_i64mem>> - Complexity = 22
                  // Dst: (ISTT_Fp64m32:{ *:[i16] } addr:{ *:[iPTR] }:$op, RFP32:{ *:[f32] }:$src)
/*108466*/      /*Scope*/ 18, /*->108485*/
/*108467*/        OPC_CheckPredicate, 62, // Predicate_X86fp_to_i16mem
/*108469*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*108472*/        OPC_EmitMergeInputChains1_0,
/*108473*/        OPC_MorphNodeTo1, TARGET_VAL(X86::FP32_TO_INT16_IN_MEM), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (X86fp_to_mem RFP32:{ *:[f32] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_X86fp_to_i16mem>> - Complexity = 22
                  // Dst: (FP32_TO_INT16_IN_MEM:{ *:[i32] } addr:{ *:[iPTR] }:$dst, RFP32:{ *:[f32] }:$src)
/*108485*/      /*Scope*/ 18, /*->108504*/
/*108486*/        OPC_CheckPredicate, 63, // Predicate_X86fp_to_i32mem
/*108488*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*108491*/        OPC_EmitMergeInputChains1_0,
/*108492*/        OPC_MorphNodeTo1, TARGET_VAL(X86::FP32_TO_INT32_IN_MEM), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (X86fp_to_mem RFP32:{ *:[f32] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_X86fp_to_i32mem>> - Complexity = 22
                  // Dst: (FP32_TO_INT32_IN_MEM:{ *:[i32] } addr:{ *:[iPTR] }:$dst, RFP32:{ *:[f32] }:$src)
/*108504*/      /*Scope*/ 18, /*->108523*/
/*108505*/        OPC_CheckPredicate, 64, // Predicate_X86fp_to_i64mem
/*108507*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*108510*/        OPC_EmitMergeInputChains1_0,
/*108511*/        OPC_MorphNodeTo1, TARGET_VAL(X86::FP32_TO_INT64_IN_MEM), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (X86fp_to_mem RFP32:{ *:[f32] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_X86fp_to_i64mem>> - Complexity = 22
                  // Dst: (FP32_TO_INT64_IN_MEM:{ *:[i32] } addr:{ *:[iPTR] }:$dst, RFP32:{ *:[f32] }:$src)
/*108523*/      0, /*End of Scope*/
/*108524*/    /*Scope*/ 125, /*->108650*/
/*108525*/      OPC_CheckChild1Type, MVT::f64,
/*108527*/      OPC_RecordChild2, // #2 = $op
/*108528*/      OPC_Scope, 20, /*->108550*/ // 6 children in Scope
/*108530*/        OPC_CheckPredicate, 62, // Predicate_X86fp_to_i16mem
/*108532*/        OPC_CheckPatternPredicate, 94, // (Subtarget->hasSSE3())
/*108534*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$op #3 #4 #5 #6 #7
/*108537*/        OPC_EmitMergeInputChains1_0,
/*108538*/        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_mem RFP64:{ *:[f64] }:$src, addr:{ *:[iPTR] }:$op)<<P:Predicate_X86fp_to_i16mem>> - Complexity = 22
                  // Dst: (ISTT_Fp16m64:{ *:[i16] } addr:{ *:[iPTR] }:$op, RFP64:{ *:[f64] }:$src)
/*108550*/      /*Scope*/ 20, /*->108571*/
/*108551*/        OPC_CheckPredicate, 63, // Predicate_X86fp_to_i32mem
/*108553*/        OPC_CheckPatternPredicate, 94, // (Subtarget->hasSSE3())
/*108555*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$op #3 #4 #5 #6 #7
/*108558*/        OPC_EmitMergeInputChains1_0,
/*108559*/        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_mem RFP64:{ *:[f64] }:$src, addr:{ *:[iPTR] }:$op)<<P:Predicate_X86fp_to_i32mem>> - Complexity = 22
                  // Dst: (ISTT_Fp32m64:{ *:[i16] } addr:{ *:[iPTR] }:$op, RFP64:{ *:[f64] }:$src)
/*108571*/      /*Scope*/ 20, /*->108592*/
/*108572*/        OPC_CheckPredicate, 64, // Predicate_X86fp_to_i64mem
/*108574*/        OPC_CheckPatternPredicate, 94, // (Subtarget->hasSSE3())
/*108576*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$op #3 #4 #5 #6 #7
/*108579*/        OPC_EmitMergeInputChains1_0,
/*108580*/        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_mem RFP64:{ *:[f64] }:$src, addr:{ *:[iPTR] }:$op)<<P:Predicate_X86fp_to_i64mem>> - Complexity = 22
                  // Dst: (ISTT_Fp64m64:{ *:[i16] } addr:{ *:[iPTR] }:$op, RFP64:{ *:[f64] }:$src)
/*108592*/      /*Scope*/ 18, /*->108611*/
/*108593*/        OPC_CheckPredicate, 62, // Predicate_X86fp_to_i16mem
/*108595*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*108598*/        OPC_EmitMergeInputChains1_0,
/*108599*/        OPC_MorphNodeTo1, TARGET_VAL(X86::FP64_TO_INT16_IN_MEM), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (X86fp_to_mem RFP64:{ *:[f64] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_X86fp_to_i16mem>> - Complexity = 22
                  // Dst: (FP64_TO_INT16_IN_MEM:{ *:[i32] } addr:{ *:[iPTR] }:$dst, RFP64:{ *:[f64] }:$src)
/*108611*/      /*Scope*/ 18, /*->108630*/
/*108612*/        OPC_CheckPredicate, 63, // Predicate_X86fp_to_i32mem
/*108614*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*108617*/        OPC_EmitMergeInputChains1_0,
/*108618*/        OPC_MorphNodeTo1, TARGET_VAL(X86::FP64_TO_INT32_IN_MEM), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (X86fp_to_mem RFP64:{ *:[f64] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_X86fp_to_i32mem>> - Complexity = 22
                  // Dst: (FP64_TO_INT32_IN_MEM:{ *:[i32] } addr:{ *:[iPTR] }:$dst, RFP64:{ *:[f64] }:$src)
/*108630*/      /*Scope*/ 18, /*->108649*/
/*108631*/        OPC_CheckPredicate, 64, // Predicate_X86fp_to_i64mem
/*108633*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*108636*/        OPC_EmitMergeInputChains1_0,
/*108637*/        OPC_MorphNodeTo1, TARGET_VAL(X86::FP64_TO_INT64_IN_MEM), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (X86fp_to_mem RFP64:{ *:[f64] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_X86fp_to_i64mem>> - Complexity = 22
                  // Dst: (FP64_TO_INT64_IN_MEM:{ *:[i32] } addr:{ *:[iPTR] }:$dst, RFP64:{ *:[f64] }:$src)
/*108649*/      0, /*End of Scope*/
/*108650*/    /*Scope*/ 125, /*->108776*/
/*108651*/      OPC_CheckChild1Type, MVT::f80,
/*108653*/      OPC_RecordChild2, // #2 = $op
/*108654*/      OPC_Scope, 20, /*->108676*/ // 6 children in Scope
/*108656*/        OPC_CheckPredicate, 62, // Predicate_X86fp_to_i16mem
/*108658*/        OPC_CheckPatternPredicate, 94, // (Subtarget->hasSSE3())
/*108660*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$op #3 #4 #5 #6 #7
/*108663*/        OPC_EmitMergeInputChains1_0,
/*108664*/        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_mem RFP80:{ *:[f80] }:$src, addr:{ *:[iPTR] }:$op)<<P:Predicate_X86fp_to_i16mem>> - Complexity = 22
                  // Dst: (ISTT_Fp16m80:{ *:[i16] } addr:{ *:[iPTR] }:$op, RFP80:{ *:[f80] }:$src)
/*108676*/      /*Scope*/ 20, /*->108697*/
/*108677*/        OPC_CheckPredicate, 63, // Predicate_X86fp_to_i32mem
/*108679*/        OPC_CheckPatternPredicate, 94, // (Subtarget->hasSSE3())
/*108681*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$op #3 #4 #5 #6 #7
/*108684*/        OPC_EmitMergeInputChains1_0,
/*108685*/        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_mem RFP80:{ *:[f80] }:$src, addr:{ *:[iPTR] }:$op)<<P:Predicate_X86fp_to_i32mem>> - Complexity = 22
                  // Dst: (ISTT_Fp32m80:{ *:[i16] } addr:{ *:[iPTR] }:$op, RFP80:{ *:[f80] }:$src)
/*108697*/      /*Scope*/ 20, /*->108718*/
/*108698*/        OPC_CheckPredicate, 64, // Predicate_X86fp_to_i64mem
/*108700*/        OPC_CheckPatternPredicate, 94, // (Subtarget->hasSSE3())
/*108702*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$op #3 #4 #5 #6 #7
/*108705*/        OPC_EmitMergeInputChains1_0,
/*108706*/        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_mem RFP80:{ *:[f80] }:$src, addr:{ *:[iPTR] }:$op)<<P:Predicate_X86fp_to_i64mem>> - Complexity = 22
                  // Dst: (ISTT_Fp64m80:{ *:[i16] } addr:{ *:[iPTR] }:$op, RFP80:{ *:[f80] }:$src)
/*108718*/      /*Scope*/ 18, /*->108737*/
/*108719*/        OPC_CheckPredicate, 62, // Predicate_X86fp_to_i16mem
/*108721*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*108724*/        OPC_EmitMergeInputChains1_0,
/*108725*/        OPC_MorphNodeTo1, TARGET_VAL(X86::FP80_TO_INT16_IN_MEM), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (X86fp_to_mem RFP80:{ *:[f80] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_X86fp_to_i16mem>> - Complexity = 22
                  // Dst: (FP80_TO_INT16_IN_MEM:{ *:[i32] } addr:{ *:[iPTR] }:$dst, RFP80:{ *:[f80] }:$src)
/*108737*/      /*Scope*/ 18, /*->108756*/
/*108738*/        OPC_CheckPredicate, 63, // Predicate_X86fp_to_i32mem
/*108740*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*108743*/        OPC_EmitMergeInputChains1_0,
/*108744*/        OPC_MorphNodeTo1, TARGET_VAL(X86::FP80_TO_INT32_IN_MEM), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (X86fp_to_mem RFP80:{ *:[f80] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_X86fp_to_i32mem>> - Complexity = 22
                  // Dst: (FP80_TO_INT32_IN_MEM:{ *:[i32] } addr:{ *:[iPTR] }:$dst, RFP80:{ *:[f80] }:$src)
/*108756*/      /*Scope*/ 18, /*->108775*/
/*108757*/        OPC_CheckPredicate, 64, // Predicate_X86fp_to_i64mem
/*108759*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*108762*/        OPC_EmitMergeInputChains1_0,
/*108763*/        OPC_MorphNodeTo1, TARGET_VAL(X86::FP80_TO_INT64_IN_MEM), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
                  // Src: (X86fp_to_mem RFP80:{ *:[f80] }:$src, addr:{ *:[iPTR] }:$dst)<<P:Predicate_X86fp_to_i64mem>> - Complexity = 22
                  // Dst: (FP80_TO_INT64_IN_MEM:{ *:[i32] } addr:{ *:[iPTR] }:$dst, RFP80:{ *:[f80] }:$src)
/*108775*/      0, /*End of Scope*/
/*108776*/    0, /*End of Scope*/
/*108777*/  /*SwitchOpcode*/ 7|128,1/*135*/, TARGET_VAL(X86ISD::FST),// ->108916
/*108781*/    OPC_RecordMemRef,
/*108782*/    OPC_RecordNode, // #0 = 'X86fst' chained node
/*108783*/    OPC_CaptureGlueInput,
/*108784*/    OPC_RecordChild1, // #1 = $src
/*108785*/    OPC_Scope, 21, /*->108808*/ // 3 children in Scope
/*108787*/      OPC_CheckChild1Type, MVT::f32,
/*108789*/      OPC_RecordChild2, // #2 = $op
/*108790*/      OPC_CheckPredicate, 65, // Predicate_X86fstf32
/*108792*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$op #3 #4 #5 #6 #7
/*108795*/      OPC_EmitMergeInputChains1_0,
/*108796*/      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)<<P:Predicate_X86fstf32>> - Complexity = 22
                // Dst: (ST_Fp32m:{ *:[i16] } addr:{ *:[iPTR] }:$op, RFP32:{ *:[f32] }:$src)
/*108808*/    /*Scope*/ 43, /*->108852*/
/*108809*/      OPC_CheckChild1Type, MVT::f64,
/*108811*/      OPC_RecordChild2, // #2 = $op
/*108812*/      OPC_Scope, 18, /*->108832*/ // 2 children in Scope
/*108814*/        OPC_CheckPredicate, 65, // Predicate_X86fstf32
/*108816*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$op #3 #4 #5 #6 #7
/*108819*/        OPC_EmitMergeInputChains1_0,
/*108820*/        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)<<P:Predicate_X86fstf32>> - Complexity = 22
                  // Dst: (ST_Fp64m32:{ *:[i16] } addr:{ *:[iPTR] }:$op, RFP64:{ *:[f64] }:$src)
/*108832*/      /*Scope*/ 18, /*->108851*/
/*108833*/        OPC_CheckPredicate, 66, // Predicate_X86fstf64
/*108835*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$op #3 #4 #5 #6 #7
/*108838*/        OPC_EmitMergeInputChains1_0,
/*108839*/        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)<<P:Predicate_X86fstf64>> - Complexity = 22
                  // Dst: (ST_Fp64m:{ *:[i16] } addr:{ *:[iPTR] }:$op, RFP64:{ *:[f64] }:$src)
/*108851*/      0, /*End of Scope*/
/*108852*/    /*Scope*/ 62, /*->108915*/
/*108853*/      OPC_CheckChild1Type, MVT::f80,
/*108855*/      OPC_RecordChild2, // #2 = $op
/*108856*/      OPC_Scope, 18, /*->108876*/ // 3 children in Scope
/*108858*/        OPC_CheckPredicate, 65, // Predicate_X86fstf32
/*108860*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$op #3 #4 #5 #6 #7
/*108863*/        OPC_EmitMergeInputChains1_0,
/*108864*/        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)<<P:Predicate_X86fstf32>> - Complexity = 22
                  // Dst: (ST_Fp80m32:{ *:[i16] } addr:{ *:[iPTR] }:$op, RFP80:{ *:[f80] }:$src)
/*108876*/      /*Scope*/ 18, /*->108895*/
/*108877*/        OPC_CheckPredicate, 66, // Predicate_X86fstf64
/*108879*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$op #3 #4 #5 #6 #7
/*108882*/        OPC_EmitMergeInputChains1_0,
/*108883*/        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)<<P:Predicate_X86fstf64>> - Complexity = 22
                  // Dst: (ST_Fp80m64:{ *:[i16] } addr:{ *:[iPTR] }:$op, RFP80:{ *:[f80] }:$src)
/*108895*/      /*Scope*/ 18, /*->108914*/
/*108896*/        OPC_CheckPredicate, 67, // Predicate_X86fstf80
/*108898*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$op #3 #4 #5 #6 #7
/*108901*/        OPC_EmitMergeInputChains1_0,
/*108902*/        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)<<P:Predicate_X86fstf80>> - Complexity = 22
                  // Dst: (ST_FpP80m:{ *:[i16] } addr:{ *:[iPTR] }:$op, RFP80:{ *:[f80] }:$src)
/*108914*/      0, /*End of Scope*/
/*108915*/    0, /*End of Scope*/
/*108916*/  /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::FIST),// ->108944
/*108919*/    OPC_RecordMemRef,
/*108920*/    OPC_RecordNode, // #0 = 'X86fist' chained node
/*108921*/    OPC_CaptureGlueInput,
/*108922*/    OPC_RecordChild1, // #1 = $src
/*108923*/    OPC_CheckChild1Type, MVT::f80,
/*108925*/    OPC_RecordChild2, // #2 = $op
/*108926*/    OPC_CheckPredicate, 64, // Predicate_X86fist64
/*108928*/    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$op #3 #4 #5 #6 #7
/*108931*/    OPC_EmitMergeInputChains1_0,
/*108932*/    OPC_MorphNodeTo1, TARGET_VAL(X86::IST_Fp64m80), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                  MVT::i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 1, 
              // Src: (X86fist RFP80:{ *:[f80] }:$src, addr:{ *:[iPTR] }:$op)<<P:Predicate_X86fist64>> - Complexity = 22
              // Dst: (IST_Fp64m80:{ *:[i16] } addr:{ *:[iPTR] }:$op, RFP80:{ *:[f80] }:$src)
/*108944*/  /*SwitchOpcode*/ 38|128,41/*5286*/, TARGET_VAL(ISD::LOAD),// ->114234
/*108948*/    OPC_RecordMemRef,
/*108949*/    OPC_RecordNode, // #0 = 'ld' chained node
/*108950*/    OPC_RecordChild1, // #1 = $src
/*108951*/    OPC_CheckPredicate, 4, // Predicate_unindexedload
/*108953*/    OPC_Scope, 19, /*->108974*/ // 32 children in Scope
/*108955*/      OPC_CheckPredicate, 5, // Predicate_loadi8
/*108957*/      OPC_CheckType, MVT::i8,
/*108959*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*108962*/      OPC_EmitMergeInputChains1_0,
/*108963*/      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)
/*108974*/    /*Scope*/ 19, /*->108994*/
/*108975*/      OPC_CheckPredicate, 7, // Predicate_loadi16
/*108977*/      OPC_CheckType, MVT::i16,
/*108979*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*108982*/      OPC_EmitMergeInputChains1_0,
/*108983*/      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)
/*108994*/    /*Scope*/ 19, /*->109014*/
/*108995*/      OPC_CheckPredicate, 8, // Predicate_loadi32
/*108997*/      OPC_CheckType, MVT::i32,
/*108999*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*109002*/      OPC_EmitMergeInputChains1_0,
/*109003*/      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)
/*109014*/    /*Scope*/ 19, /*->109034*/
/*109015*/      OPC_CheckPredicate, 9, // Predicate_load
/*109017*/      OPC_CheckType, MVT::i64,
/*109019*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*109022*/      OPC_EmitMergeInputChains1_0,
/*109023*/      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)
/*109034*/    /*Scope*/ 42, /*->109077*/
/*109035*/      OPC_CheckPredicate, 68, // Predicate_sextload
/*109037*/      OPC_CheckType, MVT::i32,
/*109039*/      OPC_Scope, 17, /*->109058*/ // 2 children in Scope
/*109041*/        OPC_CheckPredicate, 34, // Predicate_sextloadi8
/*109043*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*109046*/        OPC_EmitMergeInputChains1_0,
/*109047*/        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)
/*109058*/      /*Scope*/ 17, /*->109076*/
/*109059*/        OPC_CheckPredicate, 35, // Predicate_sextloadi16
/*109061*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*109064*/        OPC_EmitMergeInputChains1_0,
/*109065*/        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)
/*109076*/      0, /*End of Scope*/
/*109077*/    /*Scope*/ 42, /*->109120*/
/*109078*/      OPC_CheckPredicate, 53, // Predicate_zextload
/*109080*/      OPC_CheckType, MVT::i32,
/*109082*/      OPC_Scope, 17, /*->109101*/ // 2 children in Scope
/*109084*/        OPC_CheckPredicate, 34, // Predicate_zextloadi8
/*109086*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*109089*/        OPC_EmitMergeInputChains1_0,
/*109090*/        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)
/*109101*/      /*Scope*/ 17, /*->109119*/
/*109102*/        OPC_CheckPredicate, 35, // Predicate_zextloadi16
/*109104*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*109107*/        OPC_EmitMergeInputChains1_0,
/*109108*/        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)
/*109119*/      0, /*End of Scope*/
/*109120*/    /*Scope*/ 62, /*->109183*/
/*109121*/      OPC_CheckPredicate, 68, // Predicate_sextload
/*109123*/      OPC_CheckType, MVT::i64,
/*109125*/      OPC_Scope, 17, /*->109144*/ // 3 children in Scope
/*109127*/        OPC_CheckPredicate, 34, // Predicate_sextloadi8
/*109129*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*109132*/        OPC_EmitMergeInputChains1_0,
/*109133*/        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)
/*109144*/      /*Scope*/ 17, /*->109162*/
/*109145*/        OPC_CheckPredicate, 35, // Predicate_sextloadi16
/*109147*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*109150*/        OPC_EmitMergeInputChains1_0,
/*109151*/        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)
/*109162*/      /*Scope*/ 19, /*->109182*/
/*109163*/        OPC_CheckPredicate, 36, // Predicate_sextloadi32
/*109165*/        OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*109167*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*109170*/        OPC_EmitMergeInputChains1_0,
/*109171*/        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)
/*109182*/      0, /*End of Scope*/
/*109183*/    /*Scope*/ 21, /*->109205*/
/*109184*/      OPC_CheckPredicate, 9, // Predicate_load
/*109186*/      OPC_CheckType, MVT::x86mmx,
/*109188*/      OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/*109190*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*109193*/      OPC_EmitMergeInputChains1_0,
/*109194*/      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)
/*109205*/    /*Scope*/ 40, /*->109246*/
/*109206*/      OPC_CheckPredicate, 53, // Predicate_zextload
/*109208*/      OPC_CheckPredicate, 69, // Predicate_zextloadi1
/*109210*/      OPC_SwitchType /*2 cases */, 15, MVT::i8,// ->109228
/*109213*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*109216*/        OPC_EmitMergeInputChains1_0,
/*109217*/        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)
/*109228*/      /*SwitchType*/ 15, MVT::i32,// ->109245
/*109230*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*109233*/        OPC_EmitMergeInputChains1_0,
/*109234*/        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)
/*109245*/      0, // EndSwitchType
/*109246*/    /*Scope*/ 83, /*->109330*/
/*109247*/      OPC_CheckPredicate, 70, // Predicate_extload
/*109249*/      OPC_Scope, 38, /*->109289*/ // 3 children in Scope
/*109251*/        OPC_CheckPredicate, 69, // Predicate_extloadi1
/*109253*/        OPC_SwitchType /*2 cases */, 15, MVT::i8,// ->109271
/*109256*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*109259*/          OPC_EmitMergeInputChains1_0,
/*109260*/          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)
/*109271*/        /*SwitchType*/ 15, MVT::i32,// ->109288
/*109273*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*109276*/          OPC_EmitMergeInputChains1_0,
/*109277*/          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)
/*109288*/        0, // EndSwitchType
/*109289*/      /*Scope*/ 19, /*->109309*/
/*109290*/        OPC_CheckPredicate, 34, // Predicate_extloadi8
/*109292*/        OPC_CheckType, MVT::i32,
/*109294*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*109297*/        OPC_EmitMergeInputChains1_0,
/*109298*/        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)
/*109309*/      /*Scope*/ 19, /*->109329*/
/*109310*/        OPC_CheckPredicate, 35, // Predicate_extloadi16
/*109312*/        OPC_CheckType, MVT::i32,
/*109314*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*109317*/        OPC_EmitMergeInputChains1_0,
/*109318*/        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)
/*109329*/      0, /*End of Scope*/
/*109330*/    /*Scope*/ 46|128,1/*174*/, /*->109506*/
/*109332*/      OPC_CheckPredicate, 53, // Predicate_zextload
/*109334*/      OPC_Scope, 34, /*->109370*/ // 4 children in Scope
/*109336*/        OPC_CheckPredicate, 34, // Predicate_zextloadi8
/*109338*/        OPC_CheckType, MVT::i64,
/*109340*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*109343*/        OPC_EmitMergeInputChains1_0,
/*109344*/        OPC_EmitInteger, MVT::i64, 0, 
/*109347*/        OPC_EmitNode1, TARGET_VAL(X86::MOVZX32rm8), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8
/*109358*/        OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*109361*/        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] })
/*109370*/      /*Scope*/ 34, /*->109405*/
/*109371*/        OPC_CheckPredicate, 35, // Predicate_zextloadi16
/*109373*/        OPC_CheckType, MVT::i64,
/*109375*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*109378*/        OPC_EmitMergeInputChains1_0,
/*109379*/        OPC_EmitInteger, MVT::i64, 0, 
/*109382*/        OPC_EmitNode1, TARGET_VAL(X86::MOVZX32rm16), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8
/*109393*/        OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*109396*/        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] })
/*109405*/      /*Scope*/ 34, /*->109440*/
/*109406*/        OPC_CheckPredicate, 36, // Predicate_zextloadi32
/*109408*/        OPC_CheckType, MVT::i64,
/*109410*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*109413*/        OPC_EmitMergeInputChains1_0,
/*109414*/        OPC_EmitInteger, MVT::i64, 0, 
/*109417*/        OPC_EmitNode1, TARGET_VAL(X86::MOV32rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8
/*109428*/        OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*109431*/        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] })
/*109440*/      /*Scope*/ 64, /*->109505*/
/*109441*/        OPC_CheckPredicate, 69, // Predicate_zextloadi1
/*109443*/        OPC_SwitchType /*2 cases */, 26, MVT::i16,// ->109472
/*109446*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*109449*/          OPC_EmitMergeInputChains1_0,
/*109450*/          OPC_EmitNode1, TARGET_VAL(X86::MOVZX32rm8), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #7
/*109461*/          OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*109464*/          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_zextloadi1>> - Complexity = 22
                    // Dst: (EXTRACT_SUBREG:{ *:[i16] } (MOVZX32rm8:{ *:[i32] } addr:{ *:[iPTR] }:$src), sub_16bit:{ *:[i32] })
/*109472*/        /*SwitchType*/ 30, MVT::i64,// ->109504
/*109474*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*109477*/          OPC_EmitMergeInputChains1_0,
/*109478*/          OPC_EmitInteger, MVT::i64, 0, 
/*109481*/          OPC_EmitNode1, TARGET_VAL(X86::MOVZX32rm8), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8
/*109492*/          OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*109495*/          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] })
/*109504*/        0, // EndSwitchType
/*109505*/      0, /*End of Scope*/
/*109506*/    /*Scope*/ 64, /*->109571*/
/*109507*/      OPC_CheckPredicate, 70, // Predicate_extload
/*109509*/      OPC_CheckType, MVT::i16,
/*109511*/      OPC_Scope, 28, /*->109541*/ // 2 children in Scope
/*109513*/        OPC_CheckPredicate, 69, // Predicate_extloadi1
/*109515*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*109518*/        OPC_EmitMergeInputChains1_0,
/*109519*/        OPC_EmitNode1, TARGET_VAL(X86::MOVZX32rm8), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #7
/*109530*/        OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*109533*/        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_extload>><<P:Predicate_extloadi1>> - Complexity = 22
                  // Dst: (EXTRACT_SUBREG:{ *:[i16] } (MOVZX32rm8:{ *:[i32] } addr:{ *:[iPTR] }:$src), sub_16bit:{ *:[i32] })
/*109541*/      /*Scope*/ 28, /*->109570*/
/*109542*/        OPC_CheckPredicate, 34, // Predicate_extloadi8
/*109544*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*109547*/        OPC_EmitMergeInputChains1_0,
/*109548*/        OPC_EmitNode1, TARGET_VAL(X86::MOVZX32rm8), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #7
/*109559*/        OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*109562*/        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_extload>><<P:Predicate_extloadi8>> - Complexity = 22
                  // Dst: (EXTRACT_SUBREG:{ *:[i16] } (MOVZX32rm8:{ *:[i32] } addr:{ *:[iPTR] }:$src), sub_16bit:{ *:[i32] })
/*109570*/      0, /*End of Scope*/
/*109571*/    /*Scope*/ 34, /*->109606*/
/*109572*/      OPC_CheckPredicate, 71, // Predicate_extloadi64i32
/*109574*/      OPC_CheckType, MVT::i64,
/*109576*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*109579*/      OPC_EmitMergeInputChains1_0,
/*109580*/      OPC_EmitInteger, MVT::i64, 0, 
/*109583*/      OPC_EmitNode1, TARGET_VAL(X86::MOV32rm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8
/*109594*/      OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*109597*/      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_extloadi64i32>> - Complexity = 22
                // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (MOV32rm:{ *:[i32] } addr:{ *:[iPTR] }:$src), sub_32bit:{ *:[i32] })
/*109606*/    /*Scope*/ 105, /*->109712*/
/*109607*/      OPC_CheckPredicate, 70, // Predicate_extload
/*109609*/      OPC_CheckType, MVT::i64,
/*109611*/      OPC_Scope, 32, /*->109645*/ // 3 children in Scope
/*109613*/        OPC_CheckPredicate, 69, // Predicate_extloadi1
/*109615*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*109618*/        OPC_EmitMergeInputChains1_0,
/*109619*/        OPC_EmitInteger, MVT::i64, 0, 
/*109622*/        OPC_EmitNode1, TARGET_VAL(X86::MOVZX32rm8), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8
/*109633*/        OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*109636*/        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] })
/*109645*/      /*Scope*/ 32, /*->109678*/
/*109646*/        OPC_CheckPredicate, 34, // Predicate_extloadi8
/*109648*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*109651*/        OPC_EmitMergeInputChains1_0,
/*109652*/        OPC_EmitInteger, MVT::i64, 0, 
/*109655*/        OPC_EmitNode1, TARGET_VAL(X86::MOVZX32rm8), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8
/*109666*/        OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*109669*/        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] })
/*109678*/      /*Scope*/ 32, /*->109711*/
/*109679*/        OPC_CheckPredicate, 35, // Predicate_extloadi16
/*109681*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*109684*/        OPC_EmitMergeInputChains1_0,
/*109685*/        OPC_EmitInteger, MVT::i64, 0, 
/*109688*/        OPC_EmitNode1, TARGET_VAL(X86::MOVZX32rm16), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8
/*109699*/        OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*109702*/        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] })
/*109711*/      0, /*End of Scope*/
/*109712*/    /*Scope*/ 32, /*->109745*/
/*109713*/      OPC_CheckPredicate, 68, // Predicate_sextload
/*109715*/      OPC_CheckPredicate, 34, // Predicate_sextloadi8
/*109717*/      OPC_CheckType, MVT::i16,
/*109719*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*109722*/      OPC_EmitMergeInputChains1_0,
/*109723*/      OPC_EmitNode1, TARGET_VAL(X86::MOVSX32rm8), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #7
/*109734*/      OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*109737*/      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] })
/*109745*/    /*Scope*/ 32, /*->109778*/
/*109746*/      OPC_CheckPredicate, 53, // Predicate_zextload
/*109748*/      OPC_CheckPredicate, 34, // Predicate_zextloadi8
/*109750*/      OPC_CheckType, MVT::i16,
/*109752*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*109755*/      OPC_EmitMergeInputChains1_0,
/*109756*/      OPC_EmitNode1, TARGET_VAL(X86::MOVZX32rm8), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #7
/*109767*/      OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*109770*/      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] })
/*109778*/    /*Scope*/ 62, /*->109841*/
/*109779*/      OPC_CheckPredicate, 9, // Predicate_load
/*109781*/      OPC_SwitchType /*3 cases */, 18, MVT::f32,// ->109802
/*109784*/        OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*109786*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*109789*/        OPC_EmitMergeInputChains1_0,
/*109790*/        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)
/*109802*/      /*SwitchType*/ 18, MVT::f64,// ->109822
/*109804*/        OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*109806*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*109809*/        OPC_EmitMergeInputChains1_0,
/*109810*/        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)
/*109822*/      /*SwitchType*/ 16, MVT::f80,// ->109840
/*109824*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*109827*/        OPC_EmitMergeInputChains1_0,
/*109828*/        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)
/*109840*/      0, // EndSwitchType
/*109841*/    /*Scope*/ 68, /*->109910*/
/*109842*/      OPC_CheckPredicate, 70, // Predicate_extload
/*109844*/      OPC_SwitchType /*2 cases */, 20, MVT::f64,// ->109867
/*109847*/        OPC_CheckPredicate, 21, // Predicate_extloadf32
/*109849*/        OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*109851*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*109854*/        OPC_EmitMergeInputChains1_0,
/*109855*/        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)
/*109867*/      /*SwitchType*/ 40, MVT::f80,// ->109909
/*109869*/        OPC_Scope, 18, /*->109889*/ // 2 children in Scope
/*109871*/          OPC_CheckPredicate, 22, // Predicate_extloadf64
/*109873*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*109876*/          OPC_EmitMergeInputChains1_0,
/*109877*/          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)
/*109889*/        /*Scope*/ 18, /*->109908*/
/*109890*/          OPC_CheckPredicate, 21, // Predicate_extloadf32
/*109892*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*109895*/          OPC_EmitMergeInputChains1_0,
/*109896*/          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)
/*109908*/        0, /*End of Scope*/
/*109909*/      0, // EndSwitchType
/*109910*/    /*Scope*/ 86|128,9/*1238*/, /*->111150*/
/*109912*/      OPC_CheckPredicate, 9, // Predicate_load
/*109914*/      OPC_SwitchType /*15 cases */, 56, MVT::f32,// ->109973
/*109917*/        OPC_Scope, 17, /*->109936*/ // 3 children in Scope
/*109919*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*109921*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*109924*/          OPC_EmitMergeInputChains1_0,
/*109925*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSSrm_alt), 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_alt:{ *:[f32] } addr:{ *:[iPTR] }:$src)
/*109936*/        /*Scope*/ 17, /*->109954*/
/*109937*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*109939*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*109942*/          OPC_EmitMergeInputChains1_0,
/*109943*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MOVSSrm_alt), 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_alt:{ *:[f32] } addr:{ *:[iPTR] }:$src)
/*109954*/        /*Scope*/ 17, /*->109972*/
/*109955*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*109957*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*109960*/          OPC_EmitMergeInputChains1_0,
/*109961*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSSZrm_alt), 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_alt:{ *:[f32] } addr:{ *:[iPTR] }:$src)
/*109972*/        0, /*End of Scope*/
/*109973*/      /*SwitchType*/ 56, MVT::f64,// ->110031
/*109975*/        OPC_Scope, 17, /*->109994*/ // 3 children in Scope
/*109977*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*109979*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*109982*/          OPC_EmitMergeInputChains1_0,
/*109983*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSDrm_alt), 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_alt:{ *:[f64] } addr:{ *:[iPTR] }:$src)
/*109994*/        /*Scope*/ 17, /*->110012*/
/*109995*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*109997*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*110000*/          OPC_EmitMergeInputChains1_0,
/*110001*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MOVSDrm_alt), 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_alt:{ *:[f64] } addr:{ *:[iPTR] }:$src)
/*110012*/        /*Scope*/ 17, /*->110030*/
/*110013*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*110015*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*110018*/          OPC_EmitMergeInputChains1_0,
/*110019*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSDZrm_alt), 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_alt:{ *:[f64] } addr:{ *:[iPTR] }:$src)
/*110030*/        0, /*End of Scope*/
/*110031*/      /*SwitchType*/ 116, MVT::f128,// ->110149
/*110033*/        OPC_Scope, 19, /*->110054*/ // 6 children in Scope
/*110035*/          OPC_CheckPredicate, 72, // Predicate_alignedloadf128
/*110037*/          OPC_CheckPatternPredicate, 27, // (!Subtarget->hasAVX())
/*110039*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*110042*/          OPC_EmitMergeInputChains1_0,
/*110043*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MOVAPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f128, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[f128] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedloadf128>> - Complexity = 22
                    // Dst: (MOVAPSrm:{ *:[f128] } addr:{ *:[iPTR] }:$src)
/*110054*/        /*Scope*/ 17, /*->110072*/
/*110055*/          OPC_CheckPatternPredicate, 27, // (!Subtarget->hasAVX())
/*110057*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*110060*/          OPC_EmitMergeInputChains1_0,
/*110061*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MOVUPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f128, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[f128] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 22
                    // Dst: (MOVUPSrm:{ *:[f128] } addr:{ *:[iPTR] }:$src)
/*110072*/        /*Scope*/ 19, /*->110092*/
/*110073*/          OPC_CheckPredicate, 72, // Predicate_alignedloadf128
/*110075*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*110077*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*110080*/          OPC_EmitMergeInputChains1_0,
/*110081*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f128, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[f128] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedloadf128>> - Complexity = 22
                    // Dst: (VMOVAPSrm:{ *:[f128] } addr:{ *:[iPTR] }:$src)
/*110092*/        /*Scope*/ 17, /*->110110*/
/*110093*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*110095*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*110098*/          OPC_EmitMergeInputChains1_0,
/*110099*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVUPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f128, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[f128] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 22
                    // Dst: (VMOVUPSrm:{ *:[f128] } addr:{ *:[iPTR] }:$src)
/*110110*/        /*Scope*/ 19, /*->110130*/
/*110111*/          OPC_CheckPredicate, 72, // Predicate_alignedloadf128
/*110113*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*110115*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*110118*/          OPC_EmitMergeInputChains1_0,
/*110119*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPSZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f128, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[f128] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedloadf128>> - Complexity = 22
                    // Dst: (VMOVAPSZ128rm:{ *:[f128] } addr:{ *:[iPTR] }:$src)
/*110130*/        /*Scope*/ 17, /*->110148*/
/*110131*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*110133*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*110136*/          OPC_EmitMergeInputChains1_0,
/*110137*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVUPSZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f128, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[f128] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 22
                    // Dst: (VMOVUPSZ128rm:{ *:[f128] } addr:{ *:[iPTR] }:$src)
/*110148*/        0, /*End of Scope*/
/*110149*/      /*SwitchType*/ 83, MVT::v4i64,// ->110234
/*110151*/        OPC_Scope, 42, /*->110195*/ // 3 children in Scope
/*110153*/          OPC_CheckPredicate, 73, // Predicate_nontemporalload
/*110155*/          OPC_CheckPredicate, 72, // Predicate_alignednontemporalload
/*110157*/          OPC_Scope, 17, /*->110176*/ // 2 children in Scope
/*110159*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*110161*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*110164*/            OPC_EmitMergeInputChains1_0,
/*110165*/            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)
/*110176*/          /*Scope*/ 17, /*->110194*/
/*110177*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*110179*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*110182*/            OPC_EmitMergeInputChains1_0,
/*110183*/            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)
/*110194*/          0, /*End of Scope*/
/*110195*/        /*Scope*/ 19, /*->110215*/
/*110196*/          OPC_CheckPredicate, 74, // Predicate_alignedload
/*110198*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*110200*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*110203*/          OPC_EmitMergeInputChains1_0,
/*110204*/          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_alignedload>> - Complexity = 22
                    // Dst: (VMOVAPSYrm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*110215*/        /*Scope*/ 17, /*->110233*/
/*110216*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*110218*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*110221*/          OPC_EmitMergeInputChains1_0,
/*110222*/          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>> - Complexity = 22
                    // Dst: (VMOVUPSYrm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*110233*/        0, /*End of Scope*/
/*110234*/      /*SwitchType*/ 83, MVT::v8i32,// ->110319
/*110236*/        OPC_Scope, 42, /*->110280*/ // 3 children in Scope
/*110238*/          OPC_CheckPredicate, 73, // Predicate_nontemporalload
/*110240*/          OPC_CheckPredicate, 72, // Predicate_alignednontemporalload
/*110242*/          OPC_Scope, 17, /*->110261*/ // 2 children in Scope
/*110244*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*110246*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*110249*/            OPC_EmitMergeInputChains1_0,
/*110250*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVNTDQAYrm), 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_load>><<P:Predicate_nontemporalload>><<P:Predicate_alignednontemporalload>> - Complexity = 422
                      // Dst: (VMOVNTDQAYrm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*110261*/          /*Scope*/ 17, /*->110279*/
/*110262*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*110264*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*110267*/            OPC_EmitMergeInputChains1_0,
/*110268*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVNTDQAZ256rm), 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_load>><<P:Predicate_nontemporalload>><<P:Predicate_alignednontemporalload>> - Complexity = 422
                      // Dst: (VMOVNTDQAZ256rm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*110279*/          0, /*End of Scope*/
/*110280*/        /*Scope*/ 19, /*->110300*/
/*110281*/          OPC_CheckPredicate, 74, // Predicate_alignedload
/*110283*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*110285*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*110288*/          OPC_EmitMergeInputChains1_0,
/*110289*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPSYrm), 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_load>><<P:Predicate_alignedload>> - Complexity = 22
                    // Dst: (VMOVAPSYrm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*110300*/        /*Scope*/ 17, /*->110318*/
/*110301*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*110303*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*110306*/          OPC_EmitMergeInputChains1_0,
/*110307*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVUPSYrm), 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_load>> - Complexity = 22
                    // Dst: (VMOVUPSYrm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*110318*/        0, /*End of Scope*/
/*110319*/      /*SwitchType*/ 83, MVT::v16i16,// ->110404
/*110321*/        OPC_Scope, 42, /*->110365*/ // 3 children in Scope
/*110323*/          OPC_CheckPredicate, 73, // Predicate_nontemporalload
/*110325*/          OPC_CheckPredicate, 72, // Predicate_alignednontemporalload
/*110327*/          OPC_Scope, 17, /*->110346*/ // 2 children in Scope
/*110329*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*110331*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*110334*/            OPC_EmitMergeInputChains1_0,
/*110335*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVNTDQAYrm), 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_load>><<P:Predicate_nontemporalload>><<P:Predicate_alignednontemporalload>> - Complexity = 422
                      // Dst: (VMOVNTDQAYrm:{ *:[v16i16] } addr:{ *:[iPTR] }:$src)
/*110346*/          /*Scope*/ 17, /*->110364*/
/*110347*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*110349*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*110352*/            OPC_EmitMergeInputChains1_0,
/*110353*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVNTDQAZ256rm), 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_load>><<P:Predicate_nontemporalload>><<P:Predicate_alignednontemporalload>> - Complexity = 422
                      // Dst: (VMOVNTDQAZ256rm:{ *:[v16i16] } addr:{ *:[iPTR] }:$src)
/*110364*/          0, /*End of Scope*/
/*110365*/        /*Scope*/ 19, /*->110385*/
/*110366*/          OPC_CheckPredicate, 74, // Predicate_alignedload
/*110368*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*110370*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*110373*/          OPC_EmitMergeInputChains1_0,
/*110374*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPSYrm), 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_load>><<P:Predicate_alignedload>> - Complexity = 22
                    // Dst: (VMOVAPSYrm:{ *:[v16i16] } addr:{ *:[iPTR] }:$src)
/*110385*/        /*Scope*/ 17, /*->110403*/
/*110386*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*110388*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*110391*/          OPC_EmitMergeInputChains1_0,
/*110392*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVUPSYrm), 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_load>> - Complexity = 22
                    // Dst: (VMOVUPSYrm:{ *:[v16i16] } addr:{ *:[iPTR] }:$src)
/*110403*/        0, /*End of Scope*/
/*110404*/      /*SwitchType*/ 83, MVT::v32i8,// ->110489
/*110406*/        OPC_Scope, 42, /*->110450*/ // 3 children in Scope
/*110408*/          OPC_CheckPredicate, 73, // Predicate_nontemporalload
/*110410*/          OPC_CheckPredicate, 72, // Predicate_alignednontemporalload
/*110412*/          OPC_Scope, 17, /*->110431*/ // 2 children in Scope
/*110414*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*110416*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*110419*/            OPC_EmitMergeInputChains1_0,
/*110420*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVNTDQAYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_nontemporalload>><<P:Predicate_alignednontemporalload>> - Complexity = 422
                      // Dst: (VMOVNTDQAYrm:{ *:[v32i8] } addr:{ *:[iPTR] }:$src)
/*110431*/          /*Scope*/ 17, /*->110449*/
/*110432*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*110434*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*110437*/            OPC_EmitMergeInputChains1_0,
/*110438*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVNTDQAZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_nontemporalload>><<P:Predicate_alignednontemporalload>> - Complexity = 422
                      // Dst: (VMOVNTDQAZ256rm:{ *:[v32i8] } addr:{ *:[iPTR] }:$src)
/*110449*/          0, /*End of Scope*/
/*110450*/        /*Scope*/ 19, /*->110470*/
/*110451*/          OPC_CheckPredicate, 74, // Predicate_alignedload
/*110453*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*110455*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*110458*/          OPC_EmitMergeInputChains1_0,
/*110459*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedload>> - Complexity = 22
                    // Dst: (VMOVAPSYrm:{ *:[v32i8] } addr:{ *:[iPTR] }:$src)
/*110470*/        /*Scope*/ 17, /*->110488*/
/*110471*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*110473*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*110476*/          OPC_EmitMergeInputChains1_0,
/*110477*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVUPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 22
                    // Dst: (VMOVUPSYrm:{ *:[v32i8] } addr:{ *:[iPTR] }:$src)
/*110488*/        0, /*End of Scope*/
/*110489*/      /*SwitchType*/ 11|128,1/*139*/, MVT::v2i64,// ->110631
/*110492*/        OPC_Scope, 60, /*->110554*/ // 5 children in Scope
/*110494*/          OPC_CheckPredicate, 73, // Predicate_nontemporalload
/*110496*/          OPC_CheckPredicate, 72, // Predicate_alignednontemporalload
/*110498*/          OPC_Scope, 17, /*->110517*/ // 3 children in Scope
/*110500*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*110502*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*110505*/            OPC_EmitMergeInputChains1_0,
/*110506*/            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)
/*110517*/          /*Scope*/ 17, /*->110535*/
/*110518*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*110520*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*110523*/            OPC_EmitMergeInputChains1_0,
/*110524*/            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)
/*110535*/          /*Scope*/ 17, /*->110553*/
/*110536*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*110538*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*110541*/            OPC_EmitMergeInputChains1_0,
/*110542*/            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)
/*110553*/          0, /*End of Scope*/
/*110554*/        /*Scope*/ 19, /*->110574*/
/*110555*/          OPC_CheckPredicate, 74, // Predicate_alignedload
/*110557*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*110559*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*110562*/          OPC_EmitMergeInputChains1_0,
/*110563*/          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_alignedload>> - Complexity = 22
                    // Dst: (MOVAPSrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*110574*/        /*Scope*/ 17, /*->110592*/
/*110575*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*110577*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*110580*/          OPC_EmitMergeInputChains1_0,
/*110581*/          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>> - Complexity = 22
                    // Dst: (MOVUPSrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*110592*/        /*Scope*/ 19, /*->110612*/
/*110593*/          OPC_CheckPredicate, 74, // Predicate_alignedload
/*110595*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*110597*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*110600*/          OPC_EmitMergeInputChains1_0,
/*110601*/          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_alignedload>> - Complexity = 22
                    // Dst: (VMOVDQArm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*110612*/        /*Scope*/ 17, /*->110630*/
/*110613*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*110615*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*110618*/          OPC_EmitMergeInputChains1_0,
/*110619*/          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>> - Complexity = 22
                    // Dst: (VMOVDQUrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*110630*/        0, /*End of Scope*/
/*110631*/      /*SwitchType*/ 11|128,1/*139*/, MVT::v4i32,// ->110773
/*110634*/        OPC_Scope, 60, /*->110696*/ // 5 children in Scope
/*110636*/          OPC_CheckPredicate, 73, // Predicate_nontemporalload
/*110638*/          OPC_CheckPredicate, 72, // Predicate_alignednontemporalload
/*110640*/          OPC_Scope, 17, /*->110659*/ // 3 children in Scope
/*110642*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*110644*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*110647*/            OPC_EmitMergeInputChains1_0,
/*110648*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVNTDQArm), 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_load>><<P:Predicate_nontemporalload>><<P:Predicate_alignednontemporalload>> - Complexity = 422
                      // Dst: (VMOVNTDQArm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*110659*/          /*Scope*/ 17, /*->110677*/
/*110660*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*110662*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*110665*/            OPC_EmitMergeInputChains1_0,
/*110666*/            OPC_MorphNodeTo1, TARGET_VAL(X86::MOVNTDQArm), 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_load>><<P:Predicate_nontemporalload>><<P:Predicate_alignednontemporalload>> - Complexity = 422
                      // Dst: (MOVNTDQArm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*110677*/          /*Scope*/ 17, /*->110695*/
/*110678*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*110680*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*110683*/            OPC_EmitMergeInputChains1_0,
/*110684*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVNTDQAZ128rm), 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_load>><<P:Predicate_nontemporalload>><<P:Predicate_alignednontemporalload>> - Complexity = 422
                      // Dst: (VMOVNTDQAZ128rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*110695*/          0, /*End of Scope*/
/*110696*/        /*Scope*/ 19, /*->110716*/
/*110697*/          OPC_CheckPredicate, 74, // Predicate_alignedload
/*110699*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*110701*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*110704*/          OPC_EmitMergeInputChains1_0,
/*110705*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MOVAPSrm), 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_load>><<P:Predicate_alignedload>> - Complexity = 22
                    // Dst: (MOVAPSrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*110716*/        /*Scope*/ 17, /*->110734*/
/*110717*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*110719*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*110722*/          OPC_EmitMergeInputChains1_0,
/*110723*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MOVUPSrm), 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_load>> - Complexity = 22
                    // Dst: (MOVUPSrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*110734*/        /*Scope*/ 19, /*->110754*/
/*110735*/          OPC_CheckPredicate, 74, // Predicate_alignedload
/*110737*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*110739*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*110742*/          OPC_EmitMergeInputChains1_0,
/*110743*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQArm), 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_load>><<P:Predicate_alignedload>> - Complexity = 22
                    // Dst: (VMOVDQArm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*110754*/        /*Scope*/ 17, /*->110772*/
/*110755*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*110757*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*110760*/          OPC_EmitMergeInputChains1_0,
/*110761*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQUrm), 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_load>> - Complexity = 22
                    // Dst: (VMOVDQUrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*110772*/        0, /*End of Scope*/
/*110773*/      /*SwitchType*/ 11|128,1/*139*/, MVT::v8i16,// ->110915
/*110776*/        OPC_Scope, 60, /*->110838*/ // 5 children in Scope
/*110778*/          OPC_CheckPredicate, 73, // Predicate_nontemporalload
/*110780*/          OPC_CheckPredicate, 72, // Predicate_alignednontemporalload
/*110782*/          OPC_Scope, 17, /*->110801*/ // 3 children in Scope
/*110784*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*110786*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*110789*/            OPC_EmitMergeInputChains1_0,
/*110790*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVNTDQArm), 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_load>><<P:Predicate_nontemporalload>><<P:Predicate_alignednontemporalload>> - Complexity = 422
                      // Dst: (VMOVNTDQArm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*110801*/          /*Scope*/ 17, /*->110819*/
/*110802*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*110804*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*110807*/            OPC_EmitMergeInputChains1_0,
/*110808*/            OPC_MorphNodeTo1, TARGET_VAL(X86::MOVNTDQArm), 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_load>><<P:Predicate_nontemporalload>><<P:Predicate_alignednontemporalload>> - Complexity = 422
                      // Dst: (MOVNTDQArm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*110819*/          /*Scope*/ 17, /*->110837*/
/*110820*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*110822*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*110825*/            OPC_EmitMergeInputChains1_0,
/*110826*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVNTDQAZ128rm), 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_load>><<P:Predicate_nontemporalload>><<P:Predicate_alignednontemporalload>> - Complexity = 422
                      // Dst: (VMOVNTDQAZ128rm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*110837*/          0, /*End of Scope*/
/*110838*/        /*Scope*/ 19, /*->110858*/
/*110839*/          OPC_CheckPredicate, 74, // Predicate_alignedload
/*110841*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*110843*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*110846*/          OPC_EmitMergeInputChains1_0,
/*110847*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MOVAPSrm), 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_load>><<P:Predicate_alignedload>> - Complexity = 22
                    // Dst: (MOVAPSrm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*110858*/        /*Scope*/ 17, /*->110876*/
/*110859*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*110861*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*110864*/          OPC_EmitMergeInputChains1_0,
/*110865*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MOVUPSrm), 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_load>> - Complexity = 22
                    // Dst: (MOVUPSrm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*110876*/        /*Scope*/ 19, /*->110896*/
/*110877*/          OPC_CheckPredicate, 74, // Predicate_alignedload
/*110879*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*110881*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*110884*/          OPC_EmitMergeInputChains1_0,
/*110885*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQArm), 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_load>><<P:Predicate_alignedload>> - Complexity = 22
                    // Dst: (VMOVDQArm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*110896*/        /*Scope*/ 17, /*->110914*/
/*110897*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*110899*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*110902*/          OPC_EmitMergeInputChains1_0,
/*110903*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQUrm), 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_load>> - Complexity = 22
                    // Dst: (VMOVDQUrm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*110914*/        0, /*End of Scope*/
/*110915*/      /*SwitchType*/ 11|128,1/*139*/, MVT::v16i8,// ->111057
/*110918*/        OPC_Scope, 60, /*->110980*/ // 5 children in Scope
/*110920*/          OPC_CheckPredicate, 73, // Predicate_nontemporalload
/*110922*/          OPC_CheckPredicate, 72, // Predicate_alignednontemporalload
/*110924*/          OPC_Scope, 17, /*->110943*/ // 3 children in Scope
/*110926*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*110928*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*110931*/            OPC_EmitMergeInputChains1_0,
/*110932*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVNTDQArm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_nontemporalload>><<P:Predicate_alignednontemporalload>> - Complexity = 422
                      // Dst: (VMOVNTDQArm:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)
/*110943*/          /*Scope*/ 17, /*->110961*/
/*110944*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*110946*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*110949*/            OPC_EmitMergeInputChains1_0,
/*110950*/            OPC_MorphNodeTo1, TARGET_VAL(X86::MOVNTDQArm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_nontemporalload>><<P:Predicate_alignednontemporalload>> - Complexity = 422
                      // Dst: (MOVNTDQArm:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)
/*110961*/          /*Scope*/ 17, /*->110979*/
/*110962*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*110964*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*110967*/            OPC_EmitMergeInputChains1_0,
/*110968*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVNTDQAZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_nontemporalload>><<P:Predicate_alignednontemporalload>> - Complexity = 422
                      // Dst: (VMOVNTDQAZ128rm:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)
/*110979*/          0, /*End of Scope*/
/*110980*/        /*Scope*/ 19, /*->111000*/
/*110981*/          OPC_CheckPredicate, 74, // Predicate_alignedload
/*110983*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*110985*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*110988*/          OPC_EmitMergeInputChains1_0,
/*110989*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MOVAPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedload>> - Complexity = 22
                    // Dst: (MOVAPSrm:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)
/*111000*/        /*Scope*/ 17, /*->111018*/
/*111001*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*111003*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*111006*/          OPC_EmitMergeInputChains1_0,
/*111007*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MOVUPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 22
                    // Dst: (MOVUPSrm:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)
/*111018*/        /*Scope*/ 19, /*->111038*/
/*111019*/          OPC_CheckPredicate, 74, // Predicate_alignedload
/*111021*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*111023*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*111026*/          OPC_EmitMergeInputChains1_0,
/*111027*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQArm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedload>> - Complexity = 22
                    // Dst: (VMOVDQArm:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)
/*111038*/        /*Scope*/ 17, /*->111056*/
/*111039*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*111041*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*111044*/          OPC_EmitMergeInputChains1_0,
/*111045*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQUrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 22
                    // Dst: (VMOVDQUrm:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)
/*111056*/        0, /*End of Scope*/
/*111057*/      /*SwitchType*/ 21, MVT::v8i64,// ->111080
/*111059*/        OPC_CheckPredicate, 73, // Predicate_nontemporalload
/*111061*/        OPC_CheckPredicate, 72, // Predicate_alignednontemporalload
/*111063*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*111065*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*111068*/        OPC_EmitMergeInputChains1_0,
/*111069*/        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)
/*111080*/      /*SwitchType*/ 21, MVT::v16i32,// ->111103
/*111082*/        OPC_CheckPredicate, 73, // Predicate_nontemporalload
/*111084*/        OPC_CheckPredicate, 72, // Predicate_alignednontemporalload
/*111086*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*111088*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*111091*/        OPC_EmitMergeInputChains1_0,
/*111092*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVNTDQAZrm), 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_load>><<P:Predicate_nontemporalload>><<P:Predicate_alignednontemporalload>> - Complexity = 422
                  // Dst: (VMOVNTDQAZrm:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)
/*111103*/      /*SwitchType*/ 21, MVT::v32i16,// ->111126
/*111105*/        OPC_CheckPredicate, 73, // Predicate_nontemporalload
/*111107*/        OPC_CheckPredicate, 72, // Predicate_alignednontemporalload
/*111109*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*111111*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*111114*/        OPC_EmitMergeInputChains1_0,
/*111115*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVNTDQAZrm), 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_load>><<P:Predicate_nontemporalload>><<P:Predicate_alignednontemporalload>> - Complexity = 422
                  // Dst: (VMOVNTDQAZrm:{ *:[v32i16] } addr:{ *:[iPTR] }:$src)
/*111126*/      /*SwitchType*/ 21, MVT::v64i8,// ->111149
/*111128*/        OPC_CheckPredicate, 73, // Predicate_nontemporalload
/*111130*/        OPC_CheckPredicate, 72, // Predicate_alignednontemporalload
/*111132*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*111134*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*111137*/        OPC_EmitMergeInputChains1_0,
/*111138*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVNTDQAZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v64i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_nontemporalload>><<P:Predicate_alignednontemporalload>> - Complexity = 422
                  // Dst: (VMOVNTDQAZrm:{ *:[v64i8] } addr:{ *:[iPTR] }:$src)
/*111149*/      0, // EndSwitchType
/*111150*/    /*Scope*/ 3|128,1/*131*/, /*->111283*/
/*111152*/      OPC_CheckPredicate, 68, // Predicate_sextload
/*111154*/      OPC_Scope, 61, /*->111217*/ // 3 children in Scope
/*111156*/        OPC_CheckPredicate, 75, // Predicate_sextloadvi8
/*111158*/        OPC_SwitchType /*3 cases */, 17, MVT::v16i16,// ->111178
/*111161*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*111163*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*111166*/          OPC_EmitMergeInputChains1_0,
/*111167*/          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)
/*111178*/        /*SwitchType*/ 17, MVT::v8i32,// ->111197
/*111180*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*111182*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*111185*/          OPC_EmitMergeInputChains1_0,
/*111186*/          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)
/*111197*/        /*SwitchType*/ 17, MVT::v4i64,// ->111216
/*111199*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*111201*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*111204*/          OPC_EmitMergeInputChains1_0,
/*111205*/          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)
/*111216*/        0, // EndSwitchType
/*111217*/      /*Scope*/ 42, /*->111260*/
/*111218*/        OPC_CheckPredicate, 76, // Predicate_sextloadvi16
/*111220*/        OPC_SwitchType /*2 cases */, 17, MVT::v8i32,// ->111240
/*111223*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*111225*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*111228*/          OPC_EmitMergeInputChains1_0,
/*111229*/          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)
/*111240*/        /*SwitchType*/ 17, MVT::v4i64,// ->111259
/*111242*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*111244*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*111247*/          OPC_EmitMergeInputChains1_0,
/*111248*/          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)
/*111259*/        0, // EndSwitchType
/*111260*/      /*Scope*/ 21, /*->111282*/
/*111261*/        OPC_CheckPredicate, 77, // Predicate_sextloadvi32
/*111263*/        OPC_CheckType, MVT::v4i64,
/*111265*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*111267*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*111270*/        OPC_EmitMergeInputChains1_0,
/*111271*/        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)
/*111282*/      0, /*End of Scope*/
/*111283*/    /*Scope*/ 3|128,1/*131*/, /*->111416*/
/*111285*/      OPC_CheckPredicate, 53, // Predicate_zextload
/*111287*/      OPC_Scope, 61, /*->111350*/ // 3 children in Scope
/*111289*/        OPC_CheckPredicate, 75, // Predicate_zextloadvi8
/*111291*/        OPC_SwitchType /*3 cases */, 17, MVT::v16i16,// ->111311
/*111294*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*111296*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*111299*/          OPC_EmitMergeInputChains1_0,
/*111300*/          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)
/*111311*/        /*SwitchType*/ 17, MVT::v8i32,// ->111330
/*111313*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*111315*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*111318*/          OPC_EmitMergeInputChains1_0,
/*111319*/          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)
/*111330*/        /*SwitchType*/ 17, MVT::v4i64,// ->111349
/*111332*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*111334*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*111337*/          OPC_EmitMergeInputChains1_0,
/*111338*/          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)
/*111349*/        0, // EndSwitchType
/*111350*/      /*Scope*/ 42, /*->111393*/
/*111351*/        OPC_CheckPredicate, 76, // Predicate_zextloadvi16
/*111353*/        OPC_SwitchType /*2 cases */, 17, MVT::v8i32,// ->111373
/*111356*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*111358*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*111361*/          OPC_EmitMergeInputChains1_0,
/*111362*/          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)
/*111373*/        /*SwitchType*/ 17, MVT::v4i64,// ->111392
/*111375*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*111377*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*111380*/          OPC_EmitMergeInputChains1_0,
/*111381*/          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)
/*111392*/        0, // EndSwitchType
/*111393*/      /*Scope*/ 21, /*->111415*/
/*111394*/        OPC_CheckPredicate, 77, // Predicate_zextloadvi32
/*111396*/        OPC_CheckType, MVT::v4i64,
/*111398*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*111400*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*111403*/        OPC_EmitMergeInputChains1_0,
/*111404*/        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)
/*111415*/      0, /*End of Scope*/
/*111416*/    /*Scope*/ 3|128,1/*131*/, /*->111549*/
/*111418*/      OPC_CheckPredicate, 68, // Predicate_sextload
/*111420*/      OPC_Scope, 61, /*->111483*/ // 3 children in Scope
/*111422*/        OPC_CheckPredicate, 75, // Predicate_sextloadvi8
/*111424*/        OPC_SwitchType /*3 cases */, 17, MVT::v8i16,// ->111444
/*111427*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*111429*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*111432*/          OPC_EmitMergeInputChains1_0,
/*111433*/          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)
/*111444*/        /*SwitchType*/ 17, MVT::v4i32,// ->111463
/*111446*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*111448*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*111451*/          OPC_EmitMergeInputChains1_0,
/*111452*/          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)
/*111463*/        /*SwitchType*/ 17, MVT::v2i64,// ->111482
/*111465*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*111467*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*111470*/          OPC_EmitMergeInputChains1_0,
/*111471*/          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)
/*111482*/        0, // EndSwitchType
/*111483*/      /*Scope*/ 42, /*->111526*/
/*111484*/        OPC_CheckPredicate, 76, // Predicate_sextloadvi16
/*111486*/        OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->111506
/*111489*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*111491*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*111494*/          OPC_EmitMergeInputChains1_0,
/*111495*/          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)
/*111506*/        /*SwitchType*/ 17, MVT::v2i64,// ->111525
/*111508*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*111510*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*111513*/          OPC_EmitMergeInputChains1_0,
/*111514*/          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)
/*111525*/        0, // EndSwitchType
/*111526*/      /*Scope*/ 21, /*->111548*/
/*111527*/        OPC_CheckPredicate, 77, // Predicate_sextloadvi32
/*111529*/        OPC_CheckType, MVT::v2i64,
/*111531*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*111533*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*111536*/        OPC_EmitMergeInputChains1_0,
/*111537*/        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)
/*111548*/      0, /*End of Scope*/
/*111549*/    /*Scope*/ 3|128,1/*131*/, /*->111682*/
/*111551*/      OPC_CheckPredicate, 53, // Predicate_zextload
/*111553*/      OPC_Scope, 61, /*->111616*/ // 3 children in Scope
/*111555*/        OPC_CheckPredicate, 75, // Predicate_zextloadvi8
/*111557*/        OPC_SwitchType /*3 cases */, 17, MVT::v8i16,// ->111577
/*111560*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*111562*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*111565*/          OPC_EmitMergeInputChains1_0,
/*111566*/          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)
/*111577*/        /*SwitchType*/ 17, MVT::v4i32,// ->111596
/*111579*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*111581*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*111584*/          OPC_EmitMergeInputChains1_0,
/*111585*/          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)
/*111596*/        /*SwitchType*/ 17, MVT::v2i64,// ->111615
/*111598*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*111600*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*111603*/          OPC_EmitMergeInputChains1_0,
/*111604*/          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)
/*111615*/        0, // EndSwitchType
/*111616*/      /*Scope*/ 42, /*->111659*/
/*111617*/        OPC_CheckPredicate, 76, // Predicate_zextloadvi16
/*111619*/        OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->111639
/*111622*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*111624*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*111627*/          OPC_EmitMergeInputChains1_0,
/*111628*/          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)
/*111639*/        /*SwitchType*/ 17, MVT::v2i64,// ->111658
/*111641*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*111643*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*111646*/          OPC_EmitMergeInputChains1_0,
/*111647*/          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)
/*111658*/        0, // EndSwitchType
/*111659*/      /*Scope*/ 21, /*->111681*/
/*111660*/        OPC_CheckPredicate, 77, // Predicate_zextloadvi32
/*111662*/        OPC_CheckType, MVT::v2i64,
/*111664*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*111666*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*111669*/        OPC_EmitMergeInputChains1_0,
/*111670*/        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)
/*111681*/      0, /*End of Scope*/
/*111682*/    /*Scope*/ 3|128,1/*131*/, /*->111815*/
/*111684*/      OPC_CheckPredicate, 68, // Predicate_sextload
/*111686*/      OPC_Scope, 61, /*->111749*/ // 3 children in Scope
/*111688*/        OPC_CheckPredicate, 75, // Predicate_sextloadvi8
/*111690*/        OPC_SwitchType /*3 cases */, 17, MVT::v8i16,// ->111710
/*111693*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*111695*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*111698*/          OPC_EmitMergeInputChains1_0,
/*111699*/          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)
/*111710*/        /*SwitchType*/ 17, MVT::v4i32,// ->111729
/*111712*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*111714*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*111717*/          OPC_EmitMergeInputChains1_0,
/*111718*/          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)
/*111729*/        /*SwitchType*/ 17, MVT::v2i64,// ->111748
/*111731*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*111733*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*111736*/          OPC_EmitMergeInputChains1_0,
/*111737*/          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)
/*111748*/        0, // EndSwitchType
/*111749*/      /*Scope*/ 42, /*->111792*/
/*111750*/        OPC_CheckPredicate, 76, // Predicate_sextloadvi16
/*111752*/        OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->111772
/*111755*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*111757*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*111760*/          OPC_EmitMergeInputChains1_0,
/*111761*/          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)
/*111772*/        /*SwitchType*/ 17, MVT::v2i64,// ->111791
/*111774*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*111776*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*111779*/          OPC_EmitMergeInputChains1_0,
/*111780*/          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)
/*111791*/        0, // EndSwitchType
/*111792*/      /*Scope*/ 21, /*->111814*/
/*111793*/        OPC_CheckPredicate, 77, // Predicate_sextloadvi32
/*111795*/        OPC_CheckType, MVT::v2i64,
/*111797*/        OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*111799*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*111802*/        OPC_EmitMergeInputChains1_0,
/*111803*/        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)
/*111814*/      0, /*End of Scope*/
/*111815*/    /*Scope*/ 3|128,1/*131*/, /*->111948*/
/*111817*/      OPC_CheckPredicate, 53, // Predicate_zextload
/*111819*/      OPC_Scope, 61, /*->111882*/ // 3 children in Scope
/*111821*/        OPC_CheckPredicate, 75, // Predicate_zextloadvi8
/*111823*/        OPC_SwitchType /*3 cases */, 17, MVT::v8i16,// ->111843
/*111826*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*111828*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*111831*/          OPC_EmitMergeInputChains1_0,
/*111832*/          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)
/*111843*/        /*SwitchType*/ 17, MVT::v4i32,// ->111862
/*111845*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*111847*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*111850*/          OPC_EmitMergeInputChains1_0,
/*111851*/          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)
/*111862*/        /*SwitchType*/ 17, MVT::v2i64,// ->111881
/*111864*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*111866*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*111869*/          OPC_EmitMergeInputChains1_0,
/*111870*/          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)
/*111881*/        0, // EndSwitchType
/*111882*/      /*Scope*/ 42, /*->111925*/
/*111883*/        OPC_CheckPredicate, 76, // Predicate_zextloadvi16
/*111885*/        OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->111905
/*111888*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*111890*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*111893*/          OPC_EmitMergeInputChains1_0,
/*111894*/          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)
/*111905*/        /*SwitchType*/ 17, MVT::v2i64,// ->111924
/*111907*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*111909*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*111912*/          OPC_EmitMergeInputChains1_0,
/*111913*/          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)
/*111924*/        0, // EndSwitchType
/*111925*/      /*Scope*/ 21, /*->111947*/
/*111926*/        OPC_CheckPredicate, 77, // Predicate_zextloadvi32
/*111928*/        OPC_CheckType, MVT::v2i64,
/*111930*/        OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*111932*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*111935*/        OPC_EmitMergeInputChains1_0,
/*111936*/        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)
/*111947*/      0, /*End of Scope*/
/*111948*/    /*Scope*/ 72|128,4/*584*/, /*->112534*/
/*111950*/      OPC_CheckPredicate, 9, // Predicate_load
/*111952*/      OPC_SwitchType /*16 cases */, 17, MVT::v8i1,// ->111972
/*111955*/        OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*111957*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*111960*/        OPC_EmitMergeInputChains1_0,
/*111961*/        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)
/*111972*/      /*SwitchType*/ 17, MVT::v16i1,// ->111991
/*111974*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*111976*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*111979*/        OPC_EmitMergeInputChains1_0,
/*111980*/        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)
/*111991*/      /*SwitchType*/ 17, MVT::v32i1,// ->112010
/*111993*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*111995*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*111998*/        OPC_EmitMergeInputChains1_0,
/*111999*/        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)
/*112010*/      /*SwitchType*/ 17, MVT::v64i1,// ->112029
/*112012*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*112014*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*112017*/        OPC_EmitMergeInputChains1_0,
/*112018*/        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)
/*112029*/      /*SwitchType*/ 40, MVT::v8i64,// ->112071
/*112031*/        OPC_Scope, 19, /*->112052*/ // 2 children in Scope
/*112033*/          OPC_CheckPredicate, 74, // Predicate_alignedload
/*112035*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*112037*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*112040*/          OPC_EmitMergeInputChains1_0,
/*112041*/          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_alignedload>> - Complexity = 22
                    // Dst: (VMOVDQA64Zrm:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*112052*/        /*Scope*/ 17, /*->112070*/
/*112053*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*112055*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*112058*/          OPC_EmitMergeInputChains1_0,
/*112059*/          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>> - Complexity = 22
                    // Dst: (VMOVDQU64Zrm:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*112070*/        0, /*End of Scope*/
/*112071*/      /*SwitchType*/ 40, MVT::v4i64,// ->112113
/*112073*/        OPC_Scope, 19, /*->112094*/ // 2 children in Scope
/*112075*/          OPC_CheckPredicate, 74, // Predicate_alignedload
/*112077*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*112079*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*112082*/          OPC_EmitMergeInputChains1_0,
/*112083*/          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_alignedload>> - Complexity = 22
                    // Dst: (VMOVDQA64Z256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*112094*/        /*Scope*/ 17, /*->112112*/
/*112095*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*112097*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*112100*/          OPC_EmitMergeInputChains1_0,
/*112101*/          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>> - Complexity = 22
                    // Dst: (VMOVDQU64Z256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*112112*/        0, /*End of Scope*/
/*112113*/      /*SwitchType*/ 40, MVT::v2i64,// ->112155
/*112115*/        OPC_Scope, 19, /*->112136*/ // 2 children in Scope
/*112117*/          OPC_CheckPredicate, 74, // Predicate_alignedload
/*112119*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*112121*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*112124*/          OPC_EmitMergeInputChains1_0,
/*112125*/          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_alignedload>> - Complexity = 22
                    // Dst: (VMOVDQA64Z128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*112136*/        /*Scope*/ 17, /*->112154*/
/*112137*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*112139*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*112142*/          OPC_EmitMergeInputChains1_0,
/*112143*/          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>> - Complexity = 22
                    // Dst: (VMOVDQU64Z128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*112154*/        0, /*End of Scope*/
/*112155*/      /*SwitchType*/ 40, MVT::v16i32,// ->112197
/*112157*/        OPC_Scope, 19, /*->112178*/ // 2 children in Scope
/*112159*/          OPC_CheckPredicate, 74, // Predicate_alignedload
/*112161*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*112163*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*112166*/          OPC_EmitMergeInputChains1_0,
/*112167*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Zrm), 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_load>><<P:Predicate_alignedload>> - Complexity = 22
                    // Dst: (VMOVDQA64Zrm:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)
/*112178*/        /*Scope*/ 17, /*->112196*/
/*112179*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*112181*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*112184*/          OPC_EmitMergeInputChains1_0,
/*112185*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU64Zrm), 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_load>> - Complexity = 22
                    // Dst: (VMOVDQU64Zrm:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)
/*112196*/        0, /*End of Scope*/
/*112197*/      /*SwitchType*/ 40, MVT::v32i16,// ->112239
/*112199*/        OPC_Scope, 19, /*->112220*/ // 2 children in Scope
/*112201*/          OPC_CheckPredicate, 74, // Predicate_alignedload
/*112203*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*112205*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*112208*/          OPC_EmitMergeInputChains1_0,
/*112209*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Zrm), 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_load>><<P:Predicate_alignedload>> - Complexity = 22
                    // Dst: (VMOVDQA64Zrm:{ *:[v32i16] } addr:{ *:[iPTR] }:$src)
/*112220*/        /*Scope*/ 17, /*->112238*/
/*112221*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*112223*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*112226*/          OPC_EmitMergeInputChains1_0,
/*112227*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU64Zrm), 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_load>> - Complexity = 22
                    // Dst: (VMOVDQU64Zrm:{ *:[v32i16] } addr:{ *:[iPTR] }:$src)
/*112238*/        0, /*End of Scope*/
/*112239*/      /*SwitchType*/ 40, MVT::v64i8,// ->112281
/*112241*/        OPC_Scope, 19, /*->112262*/ // 2 children in Scope
/*112243*/          OPC_CheckPredicate, 74, // Predicate_alignedload
/*112245*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*112247*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*112250*/          OPC_EmitMergeInputChains1_0,
/*112251*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Zrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v64i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedload>> - Complexity = 22
                    // Dst: (VMOVDQA64Zrm:{ *:[v64i8] } addr:{ *:[iPTR] }:$src)
/*112262*/        /*Scope*/ 17, /*->112280*/
/*112263*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*112265*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*112268*/          OPC_EmitMergeInputChains1_0,
/*112269*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU64Zrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v64i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 22
                    // Dst: (VMOVDQU64Zrm:{ *:[v64i8] } addr:{ *:[iPTR] }:$src)
/*112280*/        0, /*End of Scope*/
/*112281*/      /*SwitchType*/ 40, MVT::v4i32,// ->112323
/*112283*/        OPC_Scope, 19, /*->112304*/ // 2 children in Scope
/*112285*/          OPC_CheckPredicate, 74, // Predicate_alignedload
/*112287*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*112289*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*112292*/          OPC_EmitMergeInputChains1_0,
/*112293*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Z128rm), 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_load>><<P:Predicate_alignedload>> - Complexity = 22
                    // Dst: (VMOVDQA64Z128rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*112304*/        /*Scope*/ 17, /*->112322*/
/*112305*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*112307*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*112310*/          OPC_EmitMergeInputChains1_0,
/*112311*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU64Z128rm), 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_load>> - Complexity = 22
                    // Dst: (VMOVDQU64Z128rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*112322*/        0, /*End of Scope*/
/*112323*/      /*SwitchType*/ 40, MVT::v8i16,// ->112365
/*112325*/        OPC_Scope, 19, /*->112346*/ // 2 children in Scope
/*112327*/          OPC_CheckPredicate, 74, // Predicate_alignedload
/*112329*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*112331*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*112334*/          OPC_EmitMergeInputChains1_0,
/*112335*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Z128rm), 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_load>><<P:Predicate_alignedload>> - Complexity = 22
                    // Dst: (VMOVDQA64Z128rm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*112346*/        /*Scope*/ 17, /*->112364*/
/*112347*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*112349*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*112352*/          OPC_EmitMergeInputChains1_0,
/*112353*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU64Z128rm), 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_load>> - Complexity = 22
                    // Dst: (VMOVDQU64Z128rm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*112364*/        0, /*End of Scope*/
/*112365*/      /*SwitchType*/ 40, MVT::v16i8,// ->112407
/*112367*/        OPC_Scope, 19, /*->112388*/ // 2 children in Scope
/*112369*/          OPC_CheckPredicate, 74, // Predicate_alignedload
/*112371*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*112373*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*112376*/          OPC_EmitMergeInputChains1_0,
/*112377*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Z128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedload>> - Complexity = 22
                    // Dst: (VMOVDQA64Z128rm:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)
/*112388*/        /*Scope*/ 17, /*->112406*/
/*112389*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*112391*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*112394*/          OPC_EmitMergeInputChains1_0,
/*112395*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU64Z128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 22
                    // Dst: (VMOVDQU64Z128rm:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)
/*112406*/        0, /*End of Scope*/
/*112407*/      /*SwitchType*/ 40, MVT::v8i32,// ->112449
/*112409*/        OPC_Scope, 19, /*->112430*/ // 2 children in Scope
/*112411*/          OPC_CheckPredicate, 74, // Predicate_alignedload
/*112413*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*112415*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*112418*/          OPC_EmitMergeInputChains1_0,
/*112419*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Z256rm), 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_load>><<P:Predicate_alignedload>> - Complexity = 22
                    // Dst: (VMOVDQA64Z256rm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*112430*/        /*Scope*/ 17, /*->112448*/
/*112431*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*112433*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*112436*/          OPC_EmitMergeInputChains1_0,
/*112437*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU64Z256rm), 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_load>> - Complexity = 22
                    // Dst: (VMOVDQU64Z256rm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*112448*/        0, /*End of Scope*/
/*112449*/      /*SwitchType*/ 40, MVT::v16i16,// ->112491
/*112451*/        OPC_Scope, 19, /*->112472*/ // 2 children in Scope
/*112453*/          OPC_CheckPredicate, 74, // Predicate_alignedload
/*112455*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*112457*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*112460*/          OPC_EmitMergeInputChains1_0,
/*112461*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Z256rm), 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_load>><<P:Predicate_alignedload>> - Complexity = 22
                    // Dst: (VMOVDQA64Z256rm:{ *:[v16i16] } addr:{ *:[iPTR] }:$src)
/*112472*/        /*Scope*/ 17, /*->112490*/
/*112473*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*112475*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*112478*/          OPC_EmitMergeInputChains1_0,
/*112479*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU64Z256rm), 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_load>> - Complexity = 22
                    // Dst: (VMOVDQU64Z256rm:{ *:[v16i16] } addr:{ *:[iPTR] }:$src)
/*112490*/        0, /*End of Scope*/
/*112491*/      /*SwitchType*/ 40, MVT::v32i8,// ->112533
/*112493*/        OPC_Scope, 19, /*->112514*/ // 2 children in Scope
/*112495*/          OPC_CheckPredicate, 74, // Predicate_alignedload
/*112497*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*112499*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*112502*/          OPC_EmitMergeInputChains1_0,
/*112503*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Z256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedload>> - Complexity = 22
                    // Dst: (VMOVDQA64Z256rm:{ *:[v32i8] } addr:{ *:[iPTR] }:$src)
/*112514*/        /*Scope*/ 17, /*->112532*/
/*112515*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*112517*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*112520*/          OPC_EmitMergeInputChains1_0,
/*112521*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU64Z256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 22
                    // Dst: (VMOVDQU64Z256rm:{ *:[v32i8] } addr:{ *:[iPTR] }:$src)
/*112532*/        0, /*End of Scope*/
/*112533*/      0, // EndSwitchType
/*112534*/    /*Scope*/ 106|128,2/*362*/, /*->112898*/
/*112536*/      OPC_CheckPredicate, 53, // Predicate_zextload
/*112538*/      OPC_Scope, 47|128,1/*175*/, /*->112716*/ // 3 children in Scope
/*112541*/        OPC_CheckPredicate, 75, // Predicate_zextloadvi8
/*112543*/        OPC_SwitchType /*9 cases */, 17, MVT::v8i16,// ->112563
/*112546*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*112548*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*112551*/          OPC_EmitMergeInputChains1_0,
/*112552*/          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)
/*112563*/        /*SwitchType*/ 17, MVT::v16i16,// ->112582
/*112565*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*112567*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*112570*/          OPC_EmitMergeInputChains1_0,
/*112571*/          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)
/*112582*/        /*SwitchType*/ 17, MVT::v32i16,// ->112601
/*112584*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*112586*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*112589*/          OPC_EmitMergeInputChains1_0,
/*112590*/          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)
/*112601*/        /*SwitchType*/ 17, MVT::v4i32,// ->112620
/*112603*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*112605*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*112608*/          OPC_EmitMergeInputChains1_0,
/*112609*/          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)
/*112620*/        /*SwitchType*/ 17, MVT::v8i32,// ->112639
/*112622*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*112624*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*112627*/          OPC_EmitMergeInputChains1_0,
/*112628*/          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)
/*112639*/        /*SwitchType*/ 17, MVT::v16i32,// ->112658
/*112641*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*112643*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*112646*/          OPC_EmitMergeInputChains1_0,
/*112647*/          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)
/*112658*/        /*SwitchType*/ 17, MVT::v2i64,// ->112677
/*112660*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*112662*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*112665*/          OPC_EmitMergeInputChains1_0,
/*112666*/          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)
/*112677*/        /*SwitchType*/ 17, MVT::v4i64,// ->112696
/*112679*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*112681*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*112684*/          OPC_EmitMergeInputChains1_0,
/*112685*/          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)
/*112696*/        /*SwitchType*/ 17, MVT::v8i64,// ->112715
/*112698*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*112700*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*112703*/          OPC_EmitMergeInputChains1_0,
/*112704*/          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)
/*112715*/        0, // EndSwitchType
/*112716*/      /*Scope*/ 118, /*->112835*/
/*112717*/        OPC_CheckPredicate, 76, // Predicate_zextloadvi16
/*112719*/        OPC_SwitchType /*6 cases */, 17, MVT::v4i32,// ->112739
/*112722*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*112724*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*112727*/          OPC_EmitMergeInputChains1_0,
/*112728*/          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)
/*112739*/        /*SwitchType*/ 17, MVT::v8i32,// ->112758
/*112741*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*112743*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*112746*/          OPC_EmitMergeInputChains1_0,
/*112747*/          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)
/*112758*/        /*SwitchType*/ 17, MVT::v16i32,// ->112777
/*112760*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*112762*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*112765*/          OPC_EmitMergeInputChains1_0,
/*112766*/          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)
/*112777*/        /*SwitchType*/ 17, MVT::v2i64,// ->112796
/*112779*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*112781*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*112784*/          OPC_EmitMergeInputChains1_0,
/*112785*/          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)
/*112796*/        /*SwitchType*/ 17, MVT::v4i64,// ->112815
/*112798*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*112800*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*112803*/          OPC_EmitMergeInputChains1_0,
/*112804*/          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)
/*112815*/        /*SwitchType*/ 17, MVT::v8i64,// ->112834
/*112817*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*112819*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*112822*/          OPC_EmitMergeInputChains1_0,
/*112823*/          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)
/*112834*/        0, // EndSwitchType
/*112835*/      /*Scope*/ 61, /*->112897*/
/*112836*/        OPC_CheckPredicate, 77, // Predicate_zextloadvi32
/*112838*/        OPC_SwitchType /*3 cases */, 17, MVT::v2i64,// ->112858
/*112841*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*112843*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*112846*/          OPC_EmitMergeInputChains1_0,
/*112847*/          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)
/*112858*/        /*SwitchType*/ 17, MVT::v4i64,// ->112877
/*112860*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*112862*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*112865*/          OPC_EmitMergeInputChains1_0,
/*112866*/          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)
/*112877*/        /*SwitchType*/ 17, MVT::v8i64,// ->112896
/*112879*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*112881*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*112884*/          OPC_EmitMergeInputChains1_0,
/*112885*/          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)
/*112896*/        0, // EndSwitchType
/*112897*/      0, /*End of Scope*/
/*112898*/    /*Scope*/ 106|128,2/*362*/, /*->113262*/
/*112900*/      OPC_CheckPredicate, 68, // Predicate_sextload
/*112902*/      OPC_Scope, 47|128,1/*175*/, /*->113080*/ // 3 children in Scope
/*112905*/        OPC_CheckPredicate, 75, // Predicate_sextloadvi8
/*112907*/        OPC_SwitchType /*9 cases */, 17, MVT::v8i16,// ->112927
/*112910*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*112912*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*112915*/          OPC_EmitMergeInputChains1_0,
/*112916*/          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)
/*112927*/        /*SwitchType*/ 17, MVT::v16i16,// ->112946
/*112929*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*112931*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*112934*/          OPC_EmitMergeInputChains1_0,
/*112935*/          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)
/*112946*/        /*SwitchType*/ 17, MVT::v32i16,// ->112965
/*112948*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*112950*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*112953*/          OPC_EmitMergeInputChains1_0,
/*112954*/          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)
/*112965*/        /*SwitchType*/ 17, MVT::v4i32,// ->112984
/*112967*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*112969*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*112972*/          OPC_EmitMergeInputChains1_0,
/*112973*/          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)
/*112984*/        /*SwitchType*/ 17, MVT::v8i32,// ->113003
/*112986*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*112988*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*112991*/          OPC_EmitMergeInputChains1_0,
/*112992*/          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)
/*113003*/        /*SwitchType*/ 17, MVT::v16i32,// ->113022
/*113005*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*113007*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*113010*/          OPC_EmitMergeInputChains1_0,
/*113011*/          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)
/*113022*/        /*SwitchType*/ 17, MVT::v2i64,// ->113041
/*113024*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*113026*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*113029*/          OPC_EmitMergeInputChains1_0,
/*113030*/          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)
/*113041*/        /*SwitchType*/ 17, MVT::v4i64,// ->113060
/*113043*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*113045*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*113048*/          OPC_EmitMergeInputChains1_0,
/*113049*/          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)
/*113060*/        /*SwitchType*/ 17, MVT::v8i64,// ->113079
/*113062*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*113064*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*113067*/          OPC_EmitMergeInputChains1_0,
/*113068*/          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)
/*113079*/        0, // EndSwitchType
/*113080*/      /*Scope*/ 118, /*->113199*/
/*113081*/        OPC_CheckPredicate, 76, // Predicate_sextloadvi16
/*113083*/        OPC_SwitchType /*6 cases */, 17, MVT::v4i32,// ->113103
/*113086*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*113088*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*113091*/          OPC_EmitMergeInputChains1_0,
/*113092*/          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)
/*113103*/        /*SwitchType*/ 17, MVT::v8i32,// ->113122
/*113105*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*113107*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*113110*/          OPC_EmitMergeInputChains1_0,
/*113111*/          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)
/*113122*/        /*SwitchType*/ 17, MVT::v16i32,// ->113141
/*113124*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*113126*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*113129*/          OPC_EmitMergeInputChains1_0,
/*113130*/          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)
/*113141*/        /*SwitchType*/ 17, MVT::v2i64,// ->113160
/*113143*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*113145*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*113148*/          OPC_EmitMergeInputChains1_0,
/*113149*/          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)
/*113160*/        /*SwitchType*/ 17, MVT::v4i64,// ->113179
/*113162*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*113164*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*113167*/          OPC_EmitMergeInputChains1_0,
/*113168*/          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)
/*113179*/        /*SwitchType*/ 17, MVT::v8i64,// ->113198
/*113181*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*113183*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*113186*/          OPC_EmitMergeInputChains1_0,
/*113187*/          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)
/*113198*/        0, // EndSwitchType
/*113199*/      /*Scope*/ 61, /*->113261*/
/*113200*/        OPC_CheckPredicate, 77, // Predicate_sextloadvi32
/*113202*/        OPC_SwitchType /*3 cases */, 17, MVT::v2i64,// ->113222
/*113205*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*113207*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*113210*/          OPC_EmitMergeInputChains1_0,
/*113211*/          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)
/*113222*/        /*SwitchType*/ 17, MVT::v4i64,// ->113241
/*113224*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*113226*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*113229*/          OPC_EmitMergeInputChains1_0,
/*113230*/          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)
/*113241*/        /*SwitchType*/ 17, MVT::v8i64,// ->113260
/*113243*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*113245*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*113248*/          OPC_EmitMergeInputChains1_0,
/*113249*/          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)
/*113260*/        0, // EndSwitchType
/*113261*/      0, /*End of Scope*/
/*113262*/    /*Scope*/ 82|128,4/*594*/, /*->113858*/
/*113264*/      OPC_CheckPredicate, 9, // Predicate_load
/*113266*/      OPC_SwitchType /*9 cases */, 28, MVT::v1i1,// ->113297
/*113269*/        OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*113271*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*113274*/        OPC_EmitMergeInputChains1_0,
/*113275*/        OPC_EmitNode1, TARGET_VAL(X86::KMOVBkm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #7
/*113286*/        OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/*113289*/        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] })
/*113297*/      /*SwitchType*/ 28, MVT::v2i1,// ->113327
/*113299*/        OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*113301*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*113304*/        OPC_EmitMergeInputChains1_0,
/*113305*/        OPC_EmitNode1, TARGET_VAL(X86::KMOVBkm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #7
/*113316*/        OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/*113319*/        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] })
/*113327*/      /*SwitchType*/ 28, MVT::v4i1,// ->113357
/*113329*/        OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*113331*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*113334*/        OPC_EmitMergeInputChains1_0,
/*113335*/        OPC_EmitNode1, TARGET_VAL(X86::KMOVBkm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #7
/*113346*/        OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*113349*/        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] })
/*113357*/      /*SwitchType*/ 83, MVT::v8f32,// ->113442
/*113359*/        OPC_Scope, 42, /*->113403*/ // 3 children in Scope
/*113361*/          OPC_CheckPredicate, 73, // Predicate_nontemporalload
/*113363*/          OPC_CheckPredicate, 72, // Predicate_alignednontemporalload
/*113365*/          OPC_Scope, 17, /*->113384*/ // 2 children in Scope
/*113367*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*113369*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*113372*/            OPC_EmitMergeInputChains1_0,
/*113373*/            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)
/*113384*/          /*Scope*/ 17, /*->113402*/
/*113385*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*113387*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*113390*/            OPC_EmitMergeInputChains1_0,
/*113391*/            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)
/*113402*/          0, /*End of Scope*/
/*113403*/        /*Scope*/ 19, /*->113423*/
/*113404*/          OPC_CheckPredicate, 74, // Predicate_alignedload
/*113406*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*113408*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*113411*/          OPC_EmitMergeInputChains1_0,
/*113412*/          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_alignedload>> - Complexity = 22
                    // Dst: (VMOVAPSYrm:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*113423*/        /*Scope*/ 17, /*->113441*/
/*113424*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*113426*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*113429*/          OPC_EmitMergeInputChains1_0,
/*113430*/          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>> - Complexity = 22
                    // Dst: (VMOVUPSYrm:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*113441*/        0, /*End of Scope*/
/*113442*/      /*SwitchType*/ 83, MVT::v4f64,// ->113527
/*113444*/        OPC_Scope, 42, /*->113488*/ // 3 children in Scope
/*113446*/          OPC_CheckPredicate, 73, // Predicate_nontemporalload
/*113448*/          OPC_CheckPredicate, 72, // Predicate_alignednontemporalload
/*113450*/          OPC_Scope, 17, /*->113469*/ // 2 children in Scope
/*113452*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*113454*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*113457*/            OPC_EmitMergeInputChains1_0,
/*113458*/            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)
/*113469*/          /*Scope*/ 17, /*->113487*/
/*113470*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*113472*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*113475*/            OPC_EmitMergeInputChains1_0,
/*113476*/            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)
/*113487*/          0, /*End of Scope*/
/*113488*/        /*Scope*/ 19, /*->113508*/
/*113489*/          OPC_CheckPredicate, 74, // Predicate_alignedload
/*113491*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*113493*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*113496*/          OPC_EmitMergeInputChains1_0,
/*113497*/          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_alignedload>> - Complexity = 22
                    // Dst: (VMOVAPDYrm:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*113508*/        /*Scope*/ 17, /*->113526*/
/*113509*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*113511*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*113514*/          OPC_EmitMergeInputChains1_0,
/*113515*/          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>> - Complexity = 22
                    // Dst: (VMOVUPDYrm:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*113526*/        0, /*End of Scope*/
/*113527*/      /*SwitchType*/ 11|128,1/*139*/, MVT::v4f32,// ->113669
/*113530*/        OPC_Scope, 60, /*->113592*/ // 5 children in Scope
/*113532*/          OPC_CheckPredicate, 73, // Predicate_nontemporalload
/*113534*/          OPC_CheckPredicate, 72, // Predicate_alignednontemporalload
/*113536*/          OPC_Scope, 17, /*->113555*/ // 3 children in Scope
/*113538*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*113540*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*113543*/            OPC_EmitMergeInputChains1_0,
/*113544*/            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)
/*113555*/          /*Scope*/ 17, /*->113573*/
/*113556*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*113558*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*113561*/            OPC_EmitMergeInputChains1_0,
/*113562*/            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)
/*113573*/          /*Scope*/ 17, /*->113591*/
/*113574*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*113576*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*113579*/            OPC_EmitMergeInputChains1_0,
/*113580*/            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)
/*113591*/          0, /*End of Scope*/
/*113592*/        /*Scope*/ 19, /*->113612*/
/*113593*/          OPC_CheckPredicate, 74, // Predicate_alignedload
/*113595*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*113597*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*113600*/          OPC_EmitMergeInputChains1_0,
/*113601*/          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_alignedload>> - Complexity = 22
                    // Dst: (VMOVAPSrm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*113612*/        /*Scope*/ 17, /*->113630*/
/*113613*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*113615*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*113618*/          OPC_EmitMergeInputChains1_0,
/*113619*/          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>> - Complexity = 22
                    // Dst: (VMOVUPSrm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*113630*/        /*Scope*/ 19, /*->113650*/
/*113631*/          OPC_CheckPredicate, 74, // Predicate_alignedload
/*113633*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*113635*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*113638*/          OPC_EmitMergeInputChains1_0,
/*113639*/          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_alignedload>> - Complexity = 22
                    // Dst: (MOVAPSrm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*113650*/        /*Scope*/ 17, /*->113668*/
/*113651*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*113653*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*113656*/          OPC_EmitMergeInputChains1_0,
/*113657*/          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>> - Complexity = 22
                    // Dst: (MOVUPSrm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*113668*/        0, /*End of Scope*/
/*113669*/      /*SwitchType*/ 11|128,1/*139*/, MVT::v2f64,// ->113811
/*113672*/        OPC_Scope, 60, /*->113734*/ // 5 children in Scope
/*113674*/          OPC_CheckPredicate, 73, // Predicate_nontemporalload
/*113676*/          OPC_CheckPredicate, 72, // Predicate_alignednontemporalload
/*113678*/          OPC_Scope, 17, /*->113697*/ // 3 children in Scope
/*113680*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*113682*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*113685*/            OPC_EmitMergeInputChains1_0,
/*113686*/            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)
/*113697*/          /*Scope*/ 17, /*->113715*/
/*113698*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*113700*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*113703*/            OPC_EmitMergeInputChains1_0,
/*113704*/            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)
/*113715*/          /*Scope*/ 17, /*->113733*/
/*113716*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*113718*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*113721*/            OPC_EmitMergeInputChains1_0,
/*113722*/            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)
/*113733*/          0, /*End of Scope*/
/*113734*/        /*Scope*/ 19, /*->113754*/
/*113735*/          OPC_CheckPredicate, 74, // Predicate_alignedload
/*113737*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*113739*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*113742*/          OPC_EmitMergeInputChains1_0,
/*113743*/          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_alignedload>> - Complexity = 22
                    // Dst: (VMOVAPDrm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*113754*/        /*Scope*/ 17, /*->113772*/
/*113755*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*113757*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*113760*/          OPC_EmitMergeInputChains1_0,
/*113761*/          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>> - Complexity = 22
                    // Dst: (VMOVUPDrm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*113772*/        /*Scope*/ 19, /*->113792*/
/*113773*/          OPC_CheckPredicate, 74, // Predicate_alignedload
/*113775*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*113777*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*113780*/          OPC_EmitMergeInputChains1_0,
/*113781*/          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_alignedload>> - Complexity = 22
                    // Dst: (MOVAPDrm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*113792*/        /*Scope*/ 17, /*->113810*/
/*113793*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*113795*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*113798*/          OPC_EmitMergeInputChains1_0,
/*113799*/          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>> - Complexity = 22
                    // Dst: (MOVUPDrm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*113810*/        0, /*End of Scope*/
/*113811*/      /*SwitchType*/ 21, MVT::v8f64,// ->113834
/*113813*/        OPC_CheckPredicate, 73, // Predicate_nontemporalload
/*113815*/        OPC_CheckPredicate, 72, // Predicate_alignednontemporalload
/*113817*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*113819*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*113822*/        OPC_EmitMergeInputChains1_0,
/*113823*/        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)
/*113834*/      /*SwitchType*/ 21, MVT::v16f32,// ->113857
/*113836*/        OPC_CheckPredicate, 73, // Predicate_nontemporalload
/*113838*/        OPC_CheckPredicate, 72, // Predicate_alignednontemporalload
/*113840*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*113842*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*113845*/        OPC_EmitMergeInputChains1_0,
/*113846*/        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)
/*113857*/      0, // EndSwitchType
/*113858*/    /*Scope*/ 65, /*->113924*/
/*113859*/      OPC_CheckPredicate, 70, // Predicate_extload
/*113861*/      OPC_CheckPredicate, 78, // Predicate_extloadvf32
/*113863*/      OPC_SwitchType /*2 cases */, 38, MVT::v2f64,// ->113904
/*113866*/        OPC_Scope, 17, /*->113885*/ // 2 children in Scope
/*113868*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*113870*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*113873*/          OPC_EmitMergeInputChains1_0,
/*113874*/          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)
/*113885*/        /*Scope*/ 17, /*->113903*/
/*113886*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*113888*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*113891*/          OPC_EmitMergeInputChains1_0,
/*113892*/          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)
/*113903*/        0, /*End of Scope*/
/*113904*/      /*SwitchType*/ 17, MVT::v4f64,// ->113923
/*113906*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*113908*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*113911*/        OPC_EmitMergeInputChains1_0,
/*113912*/        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)
/*113923*/      0, // EndSwitchType
/*113924*/    /*Scope*/ 115|128,1/*243*/, /*->114169*/
/*113926*/      OPC_CheckPredicate, 9, // Predicate_load
/*113928*/      OPC_Scope, 118, /*->114048*/ // 7 children in Scope
/*113930*/        OPC_CheckPredicate, 74, // Predicate_alignedload
/*113932*/        OPC_SwitchType /*6 cases */, 17, MVT::v16f32,// ->113952
/*113935*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*113937*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*113940*/          OPC_EmitMergeInputChains1_0,
/*113941*/          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_alignedload>> - Complexity = 22
                    // Dst: (VMOVAPSZrm:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)
/*113952*/        /*SwitchType*/ 17, MVT::v8f32,// ->113971
/*113954*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*113956*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*113959*/          OPC_EmitMergeInputChains1_0,
/*113960*/          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_alignedload>> - Complexity = 22
                    // Dst: (VMOVAPSZ256rm:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*113971*/        /*SwitchType*/ 17, MVT::v4f32,// ->113990
/*113973*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*113975*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*113978*/          OPC_EmitMergeInputChains1_0,
/*113979*/          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_alignedload>> - Complexity = 22
                    // Dst: (VMOVAPSZ128rm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*113990*/        /*SwitchType*/ 17, MVT::v8f64,// ->114009
/*113992*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*113994*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*113997*/          OPC_EmitMergeInputChains1_0,
/*113998*/          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_alignedload>> - Complexity = 22
                    // Dst: (VMOVAPDZrm:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*114009*/        /*SwitchType*/ 17, MVT::v4f64,// ->114028
/*114011*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*114013*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*114016*/          OPC_EmitMergeInputChains1_0,
/*114017*/          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_alignedload>> - Complexity = 22
                    // Dst: (VMOVAPDZ256rm:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*114028*/        /*SwitchType*/ 17, MVT::v2f64,// ->114047
/*114030*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*114032*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*114035*/          OPC_EmitMergeInputChains1_0,
/*114036*/          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_alignedload>> - Complexity = 22
                    // Dst: (VMOVAPDZ128rm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*114047*/        0, // EndSwitchType
/*114048*/      /*Scope*/ 19, /*->114068*/
/*114049*/        OPC_CheckType, MVT::v16f32,
/*114051*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*114053*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*114056*/        OPC_EmitMergeInputChains1_0,
/*114057*/        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>> - Complexity = 22
                  // Dst: (VMOVUPSZrm:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)
/*114068*/      /*Scope*/ 19, /*->114088*/
/*114069*/        OPC_CheckType, MVT::v8f32,
/*114071*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*114073*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*114076*/        OPC_EmitMergeInputChains1_0,
/*114077*/        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>> - Complexity = 22
                  // Dst: (VMOVUPSZ256rm:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*114088*/      /*Scope*/ 19, /*->114108*/
/*114089*/        OPC_CheckType, MVT::v4f32,
/*114091*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*114093*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*114096*/        OPC_EmitMergeInputChains1_0,
/*114097*/        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>> - Complexity = 22
                  // Dst: (VMOVUPSZ128rm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*114108*/      /*Scope*/ 19, /*->114128*/
/*114109*/        OPC_CheckType, MVT::v8f64,
/*114111*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*114113*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*114116*/        OPC_EmitMergeInputChains1_0,
/*114117*/        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>> - Complexity = 22
                  // Dst: (VMOVUPDZrm:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*114128*/      /*Scope*/ 19, /*->114148*/
/*114129*/        OPC_CheckType, MVT::v4f64,
/*114131*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*114133*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*114136*/        OPC_EmitMergeInputChains1_0,
/*114137*/        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>> - Complexity = 22
                  // Dst: (VMOVUPDZ256rm:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*114148*/      /*Scope*/ 19, /*->114168*/
/*114149*/        OPC_CheckType, MVT::v2f64,
/*114151*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*114153*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*114156*/        OPC_EmitMergeInputChains1_0,
/*114157*/        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>> - Complexity = 22
                  // Dst: (VMOVUPDZ128rm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*114168*/      0, /*End of Scope*/
/*114169*/    /*Scope*/ 63, /*->114233*/
/*114170*/      OPC_CheckPredicate, 70, // Predicate_extload
/*114172*/      OPC_CheckPredicate, 78, // Predicate_extloadvf32
/*114174*/      OPC_SwitchType /*3 cases */, 17, MVT::v8f64,// ->114194
/*114177*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*114179*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*114182*/        OPC_EmitMergeInputChains1_0,
/*114183*/        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)
/*114194*/      /*SwitchType*/ 17, MVT::v2f64,// ->114213
/*114196*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*114198*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*114201*/        OPC_EmitMergeInputChains1_0,
/*114202*/        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)
/*114213*/      /*SwitchType*/ 17, MVT::v4f64,// ->114232
/*114215*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*114217*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*114220*/        OPC_EmitMergeInputChains1_0,
/*114221*/        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)
/*114232*/      0, // EndSwitchType
/*114233*/    0, /*End of Scope*/
/*114234*/  /*SwitchOpcode*/ 86, TARGET_VAL(ISD::ATOMIC_SWAP),// ->114323
/*114237*/    OPC_RecordMemRef,
/*114238*/    OPC_RecordNode, // #0 = 'atomic_swap' chained node
/*114239*/    OPC_RecordChild1, // #1 = $ptr
/*114240*/    OPC_RecordChild2, // #2 = $val
/*114241*/    OPC_SwitchType /*4 cases */, 18, MVT::i8,// ->114262
/*114244*/      OPC_CheckPredicate, 34, // Predicate_atomic_swap_8
/*114246*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*114249*/      OPC_EmitMergeInputChains1_0,
/*114250*/      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)
/*114262*/    /*SwitchType*/ 18, MVT::i16,// ->114282
/*114264*/      OPC_CheckPredicate, 35, // Predicate_atomic_swap_16
/*114266*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*114269*/      OPC_EmitMergeInputChains1_0,
/*114270*/      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)
/*114282*/    /*SwitchType*/ 18, MVT::i32,// ->114302
/*114284*/      OPC_CheckPredicate, 36, // Predicate_atomic_swap_32
/*114286*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*114289*/      OPC_EmitMergeInputChains1_0,
/*114290*/      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)
/*114302*/    /*SwitchType*/ 18, MVT::i64,// ->114322
/*114304*/      OPC_CheckPredicate, 37, // Predicate_atomic_swap_64
/*114306*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*114309*/      OPC_EmitMergeInputChains1_0,
/*114310*/      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)
/*114322*/    0, // EndSwitchType
/*114323*/  /*SwitchOpcode*/ 26|128,3/*410*/, TARGET_VAL(X86ISD::VTRUNCSTORES),// ->114737
/*114327*/    OPC_RecordMemRef,
/*114328*/    OPC_RecordNode, // #0 = 'X86TruncSStore' chained node
/*114329*/    OPC_RecordChild1, // #1 = $src
/*114330*/    OPC_Scope, 65, /*->114397*/ // 9 children in Scope
/*114332*/      OPC_CheckChild1Type, MVT::v2i64,
/*114334*/      OPC_RecordChild2, // #2 = $dst
/*114335*/      OPC_Scope, 19, /*->114356*/ // 3 children in Scope
/*114337*/        OPC_CheckPredicate, 79, // Predicate_truncstore_s_vi8
/*114339*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*114341*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*114344*/        OPC_EmitMergeInputChains1_0,
/*114345*/        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)
/*114356*/      /*Scope*/ 19, /*->114376*/
/*114357*/        OPC_CheckPredicate, 80, // Predicate_truncstore_s_vi16
/*114359*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*114361*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*114364*/        OPC_EmitMergeInputChains1_0,
/*114365*/        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)
/*114376*/      /*Scope*/ 19, /*->114396*/
/*114377*/        OPC_CheckPredicate, 81, // Predicate_truncstore_s_vi32
/*114379*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*114381*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*114384*/        OPC_EmitMergeInputChains1_0,
/*114385*/        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)
/*114396*/      0, /*End of Scope*/
/*114397*/    /*Scope*/ 65, /*->114463*/
/*114398*/      OPC_CheckChild1Type, MVT::v4i64,
/*114400*/      OPC_RecordChild2, // #2 = $dst
/*114401*/      OPC_Scope, 19, /*->114422*/ // 3 children in Scope
/*114403*/        OPC_CheckPredicate, 79, // Predicate_truncstore_s_vi8
/*114405*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*114407*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*114410*/        OPC_EmitMergeInputChains1_0,
/*114411*/        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)
/*114422*/      /*Scope*/ 19, /*->114442*/
/*114423*/        OPC_CheckPredicate, 80, // Predicate_truncstore_s_vi16
/*114425*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*114427*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*114430*/        OPC_EmitMergeInputChains1_0,
/*114431*/        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)
/*114442*/      /*Scope*/ 19, /*->114462*/
/*114443*/        OPC_CheckPredicate, 81, // Predicate_truncstore_s_vi32
/*114445*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*114447*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*114450*/        OPC_EmitMergeInputChains1_0,
/*114451*/        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)
/*114462*/      0, /*End of Scope*/
/*114463*/    /*Scope*/ 65, /*->114529*/
/*114464*/      OPC_CheckChild1Type, MVT::v8i64,
/*114466*/      OPC_RecordChild2, // #2 = $dst
/*114467*/      OPC_Scope, 19, /*->114488*/ // 3 children in Scope
/*114469*/        OPC_CheckPredicate, 79, // Predicate_truncstore_s_vi8
/*114471*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*114473*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*114476*/        OPC_EmitMergeInputChains1_0,
/*114477*/        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)
/*114488*/      /*Scope*/ 19, /*->114508*/
/*114489*/        OPC_CheckPredicate, 80, // Predicate_truncstore_s_vi16
/*114491*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*114493*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*114496*/        OPC_EmitMergeInputChains1_0,
/*114497*/        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)
/*114508*/      /*Scope*/ 19, /*->114528*/
/*114509*/        OPC_CheckPredicate, 81, // Predicate_truncstore_s_vi32
/*114511*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*114513*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*114516*/        OPC_EmitMergeInputChains1_0,
/*114517*/        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)
/*114528*/      0, /*End of Scope*/
/*114529*/    /*Scope*/ 45, /*->114575*/
/*114530*/      OPC_CheckChild1Type, MVT::v4i32,
/*114532*/      OPC_RecordChild2, // #2 = $dst
/*114533*/      OPC_Scope, 19, /*->114554*/ // 2 children in Scope
/*114535*/        OPC_CheckPredicate, 79, // Predicate_truncstore_s_vi8
/*114537*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*114539*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*114542*/        OPC_EmitMergeInputChains1_0,
/*114543*/        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)
/*114554*/      /*Scope*/ 19, /*->114574*/
/*114555*/        OPC_CheckPredicate, 80, // Predicate_truncstore_s_vi16
/*114557*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*114559*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*114562*/        OPC_EmitMergeInputChains1_0,
/*114563*/        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)
/*114574*/      0, /*End of Scope*/
/*114575*/    /*Scope*/ 45, /*->114621*/
/*114576*/      OPC_CheckChild1Type, MVT::v8i32,
/*114578*/      OPC_RecordChild2, // #2 = $dst
/*114579*/      OPC_Scope, 19, /*->114600*/ // 2 children in Scope
/*114581*/        OPC_CheckPredicate, 79, // Predicate_truncstore_s_vi8
/*114583*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*114585*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*114588*/        OPC_EmitMergeInputChains1_0,
/*114589*/        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)
/*114600*/      /*Scope*/ 19, /*->114620*/
/*114601*/        OPC_CheckPredicate, 80, // Predicate_truncstore_s_vi16
/*114603*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*114605*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*114608*/        OPC_EmitMergeInputChains1_0,
/*114609*/        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)
/*114620*/      0, /*End of Scope*/
/*114621*/    /*Scope*/ 45, /*->114667*/
/*114622*/      OPC_CheckChild1Type, MVT::v16i32,
/*114624*/      OPC_RecordChild2, // #2 = $dst
/*114625*/      OPC_Scope, 19, /*->114646*/ // 2 children in Scope
/*114627*/        OPC_CheckPredicate, 79, // Predicate_truncstore_s_vi8
/*114629*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*114631*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*114634*/        OPC_EmitMergeInputChains1_0,
/*114635*/        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)
/*114646*/      /*Scope*/ 19, /*->114666*/
/*114647*/        OPC_CheckPredicate, 80, // Predicate_truncstore_s_vi16
/*114649*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*114651*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*114654*/        OPC_EmitMergeInputChains1_0,
/*114655*/        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)
/*114666*/      0, /*End of Scope*/
/*114667*/    /*Scope*/ 22, /*->114690*/
/*114668*/      OPC_CheckChild1Type, MVT::v8i16,
/*114670*/      OPC_RecordChild2, // #2 = $dst
/*114671*/      OPC_CheckPredicate, 79, // Predicate_truncstore_s_vi8
/*114673*/      OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*114675*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*114678*/      OPC_EmitMergeInputChains1_0,
/*114679*/      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)
/*114690*/    /*Scope*/ 22, /*->114713*/
/*114691*/      OPC_CheckChild1Type, MVT::v16i16,
/*114693*/      OPC_RecordChild2, // #2 = $dst
/*114694*/      OPC_CheckPredicate, 79, // Predicate_truncstore_s_vi8
/*114696*/      OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*114698*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*114701*/      OPC_EmitMergeInputChains1_0,
/*114702*/      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)
/*114713*/    /*Scope*/ 22, /*->114736*/
/*114714*/      OPC_CheckChild1Type, MVT::v32i16,
/*114716*/      OPC_RecordChild2, // #2 = $dst
/*114717*/      OPC_CheckPredicate, 79, // Predicate_truncstore_s_vi8
/*114719*/      OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*114721*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*114724*/      OPC_EmitMergeInputChains1_0,
/*114725*/      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)
/*114736*/    0, /*End of Scope*/
/*114737*/  /*SwitchOpcode*/ 71|128,3/*455*/, TARGET_VAL(X86ISD::VMTRUNCSTORES),// ->115196
/*114741*/    OPC_RecordMemRef,
/*114742*/    OPC_RecordNode, // #0 = 'X86MTruncSStore' chained node
/*114743*/    OPC_RecordChild1, // #1 = $src
/*114744*/    OPC_Scope, 71, /*->114817*/ // 9 children in Scope
/*114746*/      OPC_CheckChild1Type, MVT::v2i64,
/*114748*/      OPC_RecordChild2, // #2 = $dst
/*114749*/      OPC_RecordChild3, // #3 = $mask
/*114750*/      OPC_CheckChild3Type, MVT::v2i1,
/*114752*/      OPC_Scope, 20, /*->114774*/ // 3 children in Scope
/*114754*/        OPC_CheckPredicate, 82, // Predicate_masked_truncstore_s_vi8
/*114756*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*114758*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*114761*/        OPC_EmitMergeInputChains1_0,
/*114762*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVSQBZ128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                      7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                  // Src: (X86MTruncSStore VR128X:{ *:[v2i64] }:$src, addr:{ *:[iPTR] }:$dst, VK2WM:{ *:[v2i1] }:$mask)<<P:Predicate_masked_truncstore_s_vi8>> - Complexity = 22
                  // Dst: (VPMOVSQBZ128mrk addr:{ *:[iPTR] }:$dst, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*114774*/      /*Scope*/ 20, /*->114795*/
/*114775*/        OPC_CheckPredicate, 83, // Predicate_masked_truncstore_s_vi16
/*114777*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*114779*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*114782*/        OPC_EmitMergeInputChains1_0,
/*114783*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVSQWZ128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                      7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                  // Src: (X86MTruncSStore VR128X:{ *:[v2i64] }:$src, addr:{ *:[iPTR] }:$dst, VK2WM:{ *:[v2i1] }:$mask)<<P:Predicate_masked_truncstore_s_vi16>> - Complexity = 22
                  // Dst: (VPMOVSQWZ128mrk addr:{ *:[iPTR] }:$dst, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*114795*/      /*Scope*/ 20, /*->114816*/
/*114796*/        OPC_CheckPredicate, 84, // Predicate_masked_truncstore_s_vi32
/*114798*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*114800*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*114803*/        OPC_EmitMergeInputChains1_0,
/*114804*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVSQDZ128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                      7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                  // Src: (X86MTruncSStore VR128X:{ *:[v2i64] }:$src, addr:{ *:[iPTR] }:$dst, VK2WM:{ *:[v2i1] }:$mask)<<P:Predicate_masked_truncstore_s_vi32>> - Complexity = 22
                  // Dst: (VPMOVSQDZ128mrk addr:{ *:[iPTR] }:$dst, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*114816*/      0, /*End of Scope*/
/*114817*/    /*Scope*/ 71, /*->114889*/
/*114818*/      OPC_CheckChild1Type, MVT::v4i64,
/*114820*/      OPC_RecordChild2, // #2 = $dst
/*114821*/      OPC_RecordChild3, // #3 = $mask
/*114822*/      OPC_CheckChild3Type, MVT::v4i1,
/*114824*/      OPC_Scope, 20, /*->114846*/ // 3 children in Scope
/*114826*/        OPC_CheckPredicate, 82, // Predicate_masked_truncstore_s_vi8
/*114828*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*114830*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*114833*/        OPC_EmitMergeInputChains1_0,
/*114834*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVSQBZ256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                      7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                  // Src: (X86MTruncSStore VR256X:{ *:[v4i64] }:$src, addr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask)<<P:Predicate_masked_truncstore_s_vi8>> - Complexity = 22
                  // Dst: (VPMOVSQBZ256mrk addr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/*114846*/      /*Scope*/ 20, /*->114867*/
/*114847*/        OPC_CheckPredicate, 83, // Predicate_masked_truncstore_s_vi16
/*114849*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*114851*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*114854*/        OPC_EmitMergeInputChains1_0,
/*114855*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVSQWZ256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                      7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                  // Src: (X86MTruncSStore VR256X:{ *:[v4i64] }:$src, addr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask)<<P:Predicate_masked_truncstore_s_vi16>> - Complexity = 22
                  // Dst: (VPMOVSQWZ256mrk addr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/*114867*/      /*Scope*/ 20, /*->114888*/
/*114868*/        OPC_CheckPredicate, 84, // Predicate_masked_truncstore_s_vi32
/*114870*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*114872*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*114875*/        OPC_EmitMergeInputChains1_0,
/*114876*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVSQDZ256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                      7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                  // Src: (X86MTruncSStore VR256X:{ *:[v4i64] }:$src, addr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask)<<P:Predicate_masked_truncstore_s_vi32>> - Complexity = 22
                  // Dst: (VPMOVSQDZ256mrk addr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/*114888*/      0, /*End of Scope*/
/*114889*/    /*Scope*/ 71, /*->114961*/
/*114890*/      OPC_CheckChild1Type, MVT::v8i64,
/*114892*/      OPC_RecordChild2, // #2 = $dst
/*114893*/      OPC_RecordChild3, // #3 = $mask
/*114894*/      OPC_CheckChild3Type, MVT::v8i1,
/*114896*/      OPC_Scope, 20, /*->114918*/ // 3 children in Scope
/*114898*/        OPC_CheckPredicate, 82, // Predicate_masked_truncstore_s_vi8
/*114900*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*114902*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*114905*/        OPC_EmitMergeInputChains1_0,
/*114906*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVSQBZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                      7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                  // Src: (X86MTruncSStore VR512:{ *:[v8i64] }:$src, addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask)<<P:Predicate_masked_truncstore_s_vi8>> - Complexity = 22
                  // Dst: (VPMOVSQBZmrk addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*114918*/      /*Scope*/ 20, /*->114939*/
/*114919*/        OPC_CheckPredicate, 83, // Predicate_masked_truncstore_s_vi16
/*114921*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*114923*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*114926*/        OPC_EmitMergeInputChains1_0,
/*114927*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVSQWZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                      7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                  // Src: (X86MTruncSStore VR512:{ *:[v8i64] }:$src, addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask)<<P:Predicate_masked_truncstore_s_vi16>> - Complexity = 22
                  // Dst: (VPMOVSQWZmrk addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*114939*/      /*Scope*/ 20, /*->114960*/
/*114940*/        OPC_CheckPredicate, 84, // Predicate_masked_truncstore_s_vi32
/*114942*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*114944*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*114947*/        OPC_EmitMergeInputChains1_0,
/*114948*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVSQDZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                      7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                  // Src: (X86MTruncSStore VR512:{ *:[v8i64] }:$src, addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask)<<P:Predicate_masked_truncstore_s_vi32>> - Complexity = 22
                  // Dst: (VPMOVSQDZmrk addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*114960*/      0, /*End of Scope*/
/*114961*/    /*Scope*/ 50, /*->115012*/
/*114962*/      OPC_CheckChild1Type, MVT::v4i32,
/*114964*/      OPC_RecordChild2, // #2 = $dst
/*114965*/      OPC_RecordChild3, // #3 = $mask
/*114966*/      OPC_CheckChild3Type, MVT::v4i1,
/*114968*/      OPC_Scope, 20, /*->114990*/ // 2 children in Scope
/*114970*/        OPC_CheckPredicate, 82, // Predicate_masked_truncstore_s_vi8
/*114972*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*114974*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*114977*/        OPC_EmitMergeInputChains1_0,
/*114978*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVSDBZ128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                      7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                  // Src: (X86MTruncSStore VR128X:{ *:[v4i32] }:$src, addr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask)<<P:Predicate_masked_truncstore_s_vi8>> - Complexity = 22
                  // Dst: (VPMOVSDBZ128mrk addr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*114990*/      /*Scope*/ 20, /*->115011*/
/*114991*/        OPC_CheckPredicate, 83, // Predicate_masked_truncstore_s_vi16
/*114993*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*114995*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*114998*/        OPC_EmitMergeInputChains1_0,
/*114999*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVSDWZ128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                      7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                  // Src: (X86MTruncSStore VR128X:{ *:[v4i32] }:$src, addr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask)<<P:Predicate_masked_truncstore_s_vi16>> - Complexity = 22
                  // Dst: (VPMOVSDWZ128mrk addr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*115011*/      0, /*End of Scope*/
/*115012*/    /*Scope*/ 50, /*->115063*/
/*115013*/      OPC_CheckChild1Type, MVT::v8i32,
/*115015*/      OPC_RecordChild2, // #2 = $dst
/*115016*/      OPC_RecordChild3, // #3 = $mask
/*115017*/      OPC_CheckChild3Type, MVT::v8i1,
/*115019*/      OPC_Scope, 20, /*->115041*/ // 2 children in Scope
/*115021*/        OPC_CheckPredicate, 82, // Predicate_masked_truncstore_s_vi8
/*115023*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*115025*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*115028*/        OPC_EmitMergeInputChains1_0,
/*115029*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVSDBZ256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                      7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                  // Src: (X86MTruncSStore VR256X:{ *:[v8i32] }:$src, addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask)<<P:Predicate_masked_truncstore_s_vi8>> - Complexity = 22
                  // Dst: (VPMOVSDBZ256mrk addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/*115041*/      /*Scope*/ 20, /*->115062*/
/*115042*/        OPC_CheckPredicate, 83, // Predicate_masked_truncstore_s_vi16
/*115044*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*115046*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*115049*/        OPC_EmitMergeInputChains1_0,
/*115050*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVSDWZ256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                      7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                  // Src: (X86MTruncSStore VR256X:{ *:[v8i32] }:$src, addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask)<<P:Predicate_masked_truncstore_s_vi16>> - Complexity = 22
                  // Dst: (VPMOVSDWZ256mrk addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/*115062*/      0, /*End of Scope*/
/*115063*/    /*Scope*/ 50, /*->115114*/
/*115064*/      OPC_CheckChild1Type, MVT::v16i32,
/*115066*/      OPC_RecordChild2, // #2 = $dst
/*115067*/      OPC_RecordChild3, // #3 = $mask
/*115068*/      OPC_CheckChild3Type, MVT::v16i1,
/*115070*/      OPC_Scope, 20, /*->115092*/ // 2 children in Scope
/*115072*/        OPC_CheckPredicate, 82, // Predicate_masked_truncstore_s_vi8
/*115074*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*115076*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*115079*/        OPC_EmitMergeInputChains1_0,
/*115080*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVSDBZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                      7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                  // Src: (X86MTruncSStore VR512:{ *:[v16i32] }:$src, addr:{ *:[iPTR] }:$dst, VK16WM:{ *:[v16i1] }:$mask)<<P:Predicate_masked_truncstore_s_vi8>> - Complexity = 22
                  // Dst: (VPMOVSDBZmrk addr:{ *:[iPTR] }:$dst, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)
/*115092*/      /*Scope*/ 20, /*->115113*/
/*115093*/        OPC_CheckPredicate, 83, // Predicate_masked_truncstore_s_vi16
/*115095*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*115097*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*115100*/        OPC_EmitMergeInputChains1_0,
/*115101*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVSDWZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                      7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                  // Src: (X86MTruncSStore VR512:{ *:[v16i32] }:$src, addr:{ *:[iPTR] }:$dst, VK16WM:{ *:[v16i1] }:$mask)<<P:Predicate_masked_truncstore_s_vi16>> - Complexity = 22
                  // Dst: (VPMOVSDWZmrk addr:{ *:[iPTR] }:$dst, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)
/*115113*/      0, /*End of Scope*/
/*115114*/    /*Scope*/ 26, /*->115141*/
/*115115*/      OPC_CheckChild1Type, MVT::v8i16,
/*115117*/      OPC_RecordChild2, // #2 = $dst
/*115118*/      OPC_RecordChild3, // #3 = $mask
/*115119*/      OPC_CheckChild3Type, MVT::v8i1,
/*115121*/      OPC_CheckPredicate, 82, // Predicate_masked_truncstore_s_vi8
/*115123*/      OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*115125*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*115128*/      OPC_EmitMergeInputChains1_0,
/*115129*/      OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVSWBZ128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                    7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                // Src: (X86MTruncSStore VR128X:{ *:[v8i16] }:$src, addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask)<<P:Predicate_masked_truncstore_s_vi8>> - Complexity = 22
                // Dst: (VPMOVSWBZ128mrk addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/*115141*/    /*Scope*/ 26, /*->115168*/
/*115142*/      OPC_CheckChild1Type, MVT::v16i16,
/*115144*/      OPC_RecordChild2, // #2 = $dst
/*115145*/      OPC_RecordChild3, // #3 = $mask
/*115146*/      OPC_CheckChild3Type, MVT::v16i1,
/*115148*/      OPC_CheckPredicate, 82, // Predicate_masked_truncstore_s_vi8
/*115150*/      OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*115152*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*115155*/      OPC_EmitMergeInputChains1_0,
/*115156*/      OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVSWBZ256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                    7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                // Src: (X86MTruncSStore VR256X:{ *:[v16i16] }:$src, addr:{ *:[iPTR] }:$dst, VK16WM:{ *:[v16i1] }:$mask)<<P:Predicate_masked_truncstore_s_vi8>> - Complexity = 22
                // Dst: (VPMOVSWBZ256mrk addr:{ *:[iPTR] }:$dst, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src)
/*115168*/    /*Scope*/ 26, /*->115195*/
/*115169*/      OPC_CheckChild1Type, MVT::v32i16,
/*115171*/      OPC_RecordChild2, // #2 = $dst
/*115172*/      OPC_RecordChild3, // #3 = $mask
/*115173*/      OPC_CheckChild3Type, MVT::v32i1,
/*115175*/      OPC_CheckPredicate, 82, // Predicate_masked_truncstore_s_vi8
/*115177*/      OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*115179*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*115182*/      OPC_EmitMergeInputChains1_0,
/*115183*/      OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVSWBZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                    7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                // Src: (X86MTruncSStore VR512:{ *:[v32i16] }:$src, addr:{ *:[iPTR] }:$dst, VK32WM:{ *:[v32i1] }:$mask)<<P:Predicate_masked_truncstore_s_vi8>> - Complexity = 22
                // Dst: (VPMOVSWBZmrk addr:{ *:[iPTR] }:$dst, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src)
/*115195*/    0, /*End of Scope*/
/*115196*/  /*SwitchOpcode*/ 26|128,3/*410*/, TARGET_VAL(X86ISD::VTRUNCSTOREUS),// ->115610
/*115200*/    OPC_RecordMemRef,
/*115201*/    OPC_RecordNode, // #0 = 'X86TruncUSStore' chained node
/*115202*/    OPC_RecordChild1, // #1 = $src
/*115203*/    OPC_Scope, 65, /*->115270*/ // 9 children in Scope
/*115205*/      OPC_CheckChild1Type, MVT::v2i64,
/*115207*/      OPC_RecordChild2, // #2 = $dst
/*115208*/      OPC_Scope, 19, /*->115229*/ // 3 children in Scope
/*115210*/        OPC_CheckPredicate, 85, // Predicate_truncstore_us_vi8
/*115212*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*115214*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*115217*/        OPC_EmitMergeInputChains1_0,
/*115218*/        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)
/*115229*/      /*Scope*/ 19, /*->115249*/
/*115230*/        OPC_CheckPredicate, 86, // Predicate_truncstore_us_vi16
/*115232*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*115234*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*115237*/        OPC_EmitMergeInputChains1_0,
/*115238*/        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)
/*115249*/      /*Scope*/ 19, /*->115269*/
/*115250*/        OPC_CheckPredicate, 87, // Predicate_truncstore_us_vi32
/*115252*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*115254*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*115257*/        OPC_EmitMergeInputChains1_0,
/*115258*/        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)
/*115269*/      0, /*End of Scope*/
/*115270*/    /*Scope*/ 65, /*->115336*/
/*115271*/      OPC_CheckChild1Type, MVT::v4i64,
/*115273*/      OPC_RecordChild2, // #2 = $dst
/*115274*/      OPC_Scope, 19, /*->115295*/ // 3 children in Scope
/*115276*/        OPC_CheckPredicate, 85, // Predicate_truncstore_us_vi8
/*115278*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*115280*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*115283*/        OPC_EmitMergeInputChains1_0,
/*115284*/        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)
/*115295*/      /*Scope*/ 19, /*->115315*/
/*115296*/        OPC_CheckPredicate, 86, // Predicate_truncstore_us_vi16
/*115298*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*115300*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*115303*/        OPC_EmitMergeInputChains1_0,
/*115304*/        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)
/*115315*/      /*Scope*/ 19, /*->115335*/
/*115316*/        OPC_CheckPredicate, 87, // Predicate_truncstore_us_vi32
/*115318*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*115320*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*115323*/        OPC_EmitMergeInputChains1_0,
/*115324*/        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)
/*115335*/      0, /*End of Scope*/
/*115336*/    /*Scope*/ 65, /*->115402*/
/*115337*/      OPC_CheckChild1Type, MVT::v8i64,
/*115339*/      OPC_RecordChild2, // #2 = $dst
/*115340*/      OPC_Scope, 19, /*->115361*/ // 3 children in Scope
/*115342*/        OPC_CheckPredicate, 85, // Predicate_truncstore_us_vi8
/*115344*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*115346*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*115349*/        OPC_EmitMergeInputChains1_0,
/*115350*/        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)
/*115361*/      /*Scope*/ 19, /*->115381*/
/*115362*/        OPC_CheckPredicate, 86, // Predicate_truncstore_us_vi16
/*115364*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*115366*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*115369*/        OPC_EmitMergeInputChains1_0,
/*115370*/        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)
/*115381*/      /*Scope*/ 19, /*->115401*/
/*115382*/        OPC_CheckPredicate, 87, // Predicate_truncstore_us_vi32
/*115384*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*115386*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*115389*/        OPC_EmitMergeInputChains1_0,
/*115390*/        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)
/*115401*/      0, /*End of Scope*/
/*115402*/    /*Scope*/ 45, /*->115448*/
/*115403*/      OPC_CheckChild1Type, MVT::v4i32,
/*115405*/      OPC_RecordChild2, // #2 = $dst
/*115406*/      OPC_Scope, 19, /*->115427*/ // 2 children in Scope
/*115408*/        OPC_CheckPredicate, 85, // Predicate_truncstore_us_vi8
/*115410*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*115412*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*115415*/        OPC_EmitMergeInputChains1_0,
/*115416*/        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)
/*115427*/      /*Scope*/ 19, /*->115447*/
/*115428*/        OPC_CheckPredicate, 86, // Predicate_truncstore_us_vi16
/*115430*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*115432*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*115435*/        OPC_EmitMergeInputChains1_0,
/*115436*/        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)
/*115447*/      0, /*End of Scope*/
/*115448*/    /*Scope*/ 45, /*->115494*/
/*115449*/      OPC_CheckChild1Type, MVT::v8i32,
/*115451*/      OPC_RecordChild2, // #2 = $dst
/*115452*/      OPC_Scope, 19, /*->115473*/ // 2 children in Scope
/*115454*/        OPC_CheckPredicate, 85, // Predicate_truncstore_us_vi8
/*115456*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*115458*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*115461*/        OPC_EmitMergeInputChains1_0,
/*115462*/        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)
/*115473*/      /*Scope*/ 19, /*->115493*/
/*115474*/        OPC_CheckPredicate, 86, // Predicate_truncstore_us_vi16
/*115476*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*115478*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*115481*/        OPC_EmitMergeInputChains1_0,
/*115482*/        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)
/*115493*/      0, /*End of Scope*/
/*115494*/    /*Scope*/ 45, /*->115540*/
/*115495*/      OPC_CheckChild1Type, MVT::v16i32,
/*115497*/      OPC_RecordChild2, // #2 = $dst
/*115498*/      OPC_Scope, 19, /*->115519*/ // 2 children in Scope
/*115500*/        OPC_CheckPredicate, 85, // Predicate_truncstore_us_vi8
/*115502*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*115504*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*115507*/        OPC_EmitMergeInputChains1_0,
/*115508*/        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)
/*115519*/      /*Scope*/ 19, /*->115539*/
/*115520*/        OPC_CheckPredicate, 86, // Predicate_truncstore_us_vi16
/*115522*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*115524*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*115527*/        OPC_EmitMergeInputChains1_0,
/*115528*/        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)
/*115539*/      0, /*End of Scope*/
/*115540*/    /*Scope*/ 22, /*->115563*/
/*115541*/      OPC_CheckChild1Type, MVT::v8i16,
/*115543*/      OPC_RecordChild2, // #2 = $dst
/*115544*/      OPC_CheckPredicate, 85, // Predicate_truncstore_us_vi8
/*115546*/      OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*115548*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*115551*/      OPC_EmitMergeInputChains1_0,
/*115552*/      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)
/*115563*/    /*Scope*/ 22, /*->115586*/
/*115564*/      OPC_CheckChild1Type, MVT::v16i16,
/*115566*/      OPC_RecordChild2, // #2 = $dst
/*115567*/      OPC_CheckPredicate, 85, // Predicate_truncstore_us_vi8
/*115569*/      OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*115571*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*115574*/      OPC_EmitMergeInputChains1_0,
/*115575*/      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)
/*115586*/    /*Scope*/ 22, /*->115609*/
/*115587*/      OPC_CheckChild1Type, MVT::v32i16,
/*115589*/      OPC_RecordChild2, // #2 = $dst
/*115590*/      OPC_CheckPredicate, 85, // Predicate_truncstore_us_vi8
/*115592*/      OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*115594*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #3 #4 #5 #6 #7
/*115597*/      OPC_EmitMergeInputChains1_0,
/*115598*/      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)
/*115609*/    0, /*End of Scope*/
/*115610*/  /*SwitchOpcode*/ 71|128,3/*455*/, TARGET_VAL(X86ISD::VMTRUNCSTOREUS),// ->116069
/*115614*/    OPC_RecordMemRef,
/*115615*/    OPC_RecordNode, // #0 = 'X86MTruncUSStore' chained node
/*115616*/    OPC_RecordChild1, // #1 = $src
/*115617*/    OPC_Scope, 71, /*->115690*/ // 9 children in Scope
/*115619*/      OPC_CheckChild1Type, MVT::v2i64,
/*115621*/      OPC_RecordChild2, // #2 = $dst
/*115622*/      OPC_RecordChild3, // #3 = $mask
/*115623*/      OPC_CheckChild3Type, MVT::v2i1,
/*115625*/      OPC_Scope, 20, /*->115647*/ // 3 children in Scope
/*115627*/        OPC_CheckPredicate, 88, // Predicate_masked_truncstore_us_vi8
/*115629*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*115631*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*115634*/        OPC_EmitMergeInputChains1_0,
/*115635*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVUSQBZ128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                      7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                  // Src: (X86MTruncUSStore VR128X:{ *:[v2i64] }:$src, addr:{ *:[iPTR] }:$dst, VK2WM:{ *:[v2i1] }:$mask)<<P:Predicate_masked_truncstore_us_vi8>> - Complexity = 22
                  // Dst: (VPMOVUSQBZ128mrk addr:{ *:[iPTR] }:$dst, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*115647*/      /*Scope*/ 20, /*->115668*/
/*115648*/        OPC_CheckPredicate, 89, // Predicate_masked_truncstore_us_vi16
/*115650*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*115652*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*115655*/        OPC_EmitMergeInputChains1_0,
/*115656*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVUSQWZ128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                      7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                  // Src: (X86MTruncUSStore VR128X:{ *:[v2i64] }:$src, addr:{ *:[iPTR] }:$dst, VK2WM:{ *:[v2i1] }:$mask)<<P:Predicate_masked_truncstore_us_vi16>> - Complexity = 22
                  // Dst: (VPMOVUSQWZ128mrk addr:{ *:[iPTR] }:$dst, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*115668*/      /*Scope*/ 20, /*->115689*/
/*115669*/        OPC_CheckPredicate, 90, // Predicate_masked_truncstore_us_vi32
/*115671*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*115673*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*115676*/        OPC_EmitMergeInputChains1_0,
/*115677*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVUSQDZ128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                      7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                  // Src: (X86MTruncUSStore VR128X:{ *:[v2i64] }:$src, addr:{ *:[iPTR] }:$dst, VK2WM:{ *:[v2i1] }:$mask)<<P:Predicate_masked_truncstore_us_vi32>> - Complexity = 22
                  // Dst: (VPMOVUSQDZ128mrk addr:{ *:[iPTR] }:$dst, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*115689*/      0, /*End of Scope*/
/*115690*/    /*Scope*/ 71, /*->115762*/
/*115691*/      OPC_CheckChild1Type, MVT::v4i64,
/*115693*/      OPC_RecordChild2, // #2 = $dst
/*115694*/      OPC_RecordChild3, // #3 = $mask
/*115695*/      OPC_CheckChild3Type, MVT::v4i1,
/*115697*/      OPC_Scope, 20, /*->115719*/ // 3 children in Scope
/*115699*/        OPC_CheckPredicate, 88, // Predicate_masked_truncstore_us_vi8
/*115701*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*115703*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*115706*/        OPC_EmitMergeInputChains1_0,
/*115707*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVUSQBZ256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                      7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                  // Src: (X86MTruncUSStore VR256X:{ *:[v4i64] }:$src, addr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask)<<P:Predicate_masked_truncstore_us_vi8>> - Complexity = 22
                  // Dst: (VPMOVUSQBZ256mrk addr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/*115719*/      /*Scope*/ 20, /*->115740*/
/*115720*/        OPC_CheckPredicate, 89, // Predicate_masked_truncstore_us_vi16
/*115722*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*115724*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*115727*/        OPC_EmitMergeInputChains1_0,
/*115728*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVUSQWZ256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                      7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                  // Src: (X86MTruncUSStore VR256X:{ *:[v4i64] }:$src, addr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask)<<P:Predicate_masked_truncstore_us_vi16>> - Complexity = 22
                  // Dst: (VPMOVUSQWZ256mrk addr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/*115740*/      /*Scope*/ 20, /*->115761*/
/*115741*/        OPC_CheckPredicate, 90, // Predicate_masked_truncstore_us_vi32
/*115743*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*115745*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*115748*/        OPC_EmitMergeInputChains1_0,
/*115749*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVUSQDZ256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                      7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                  // Src: (X86MTruncUSStore VR256X:{ *:[v4i64] }:$src, addr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask)<<P:Predicate_masked_truncstore_us_vi32>> - Complexity = 22
                  // Dst: (VPMOVUSQDZ256mrk addr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/*115761*/      0, /*End of Scope*/
/*115762*/    /*Scope*/ 71, /*->115834*/
/*115763*/      OPC_CheckChild1Type, MVT::v8i64,
/*115765*/      OPC_RecordChild2, // #2 = $dst
/*115766*/      OPC_RecordChild3, // #3 = $mask
/*115767*/      OPC_CheckChild3Type, MVT::v8i1,
/*115769*/      OPC_Scope, 20, /*->115791*/ // 3 children in Scope
/*115771*/        OPC_CheckPredicate, 88, // Predicate_masked_truncstore_us_vi8
/*115773*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*115775*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*115778*/        OPC_EmitMergeInputChains1_0,
/*115779*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVUSQBZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                      7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                  // Src: (X86MTruncUSStore VR512:{ *:[v8i64] }:$src, addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask)<<P:Predicate_masked_truncstore_us_vi8>> - Complexity = 22
                  // Dst: (VPMOVUSQBZmrk addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*115791*/      /*Scope*/ 20, /*->115812*/
/*115792*/        OPC_CheckPredicate, 89, // Predicate_masked_truncstore_us_vi16
/*115794*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*115796*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*115799*/        OPC_EmitMergeInputChains1_0,
/*115800*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVUSQWZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                      7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                  // Src: (X86MTruncUSStore VR512:{ *:[v8i64] }:$src, addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask)<<P:Predicate_masked_truncstore_us_vi16>> - Complexity = 22
                  // Dst: (VPMOVUSQWZmrk addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*115812*/      /*Scope*/ 20, /*->115833*/
/*115813*/        OPC_CheckPredicate, 90, // Predicate_masked_truncstore_us_vi32
/*115815*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*115817*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*115820*/        OPC_EmitMergeInputChains1_0,
/*115821*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVUSQDZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                      7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                  // Src: (X86MTruncUSStore VR512:{ *:[v8i64] }:$src, addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask)<<P:Predicate_masked_truncstore_us_vi32>> - Complexity = 22
                  // Dst: (VPMOVUSQDZmrk addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*115833*/      0, /*End of Scope*/
/*115834*/    /*Scope*/ 50, /*->115885*/
/*115835*/      OPC_CheckChild1Type, MVT::v4i32,
/*115837*/      OPC_RecordChild2, // #2 = $dst
/*115838*/      OPC_RecordChild3, // #3 = $mask
/*115839*/      OPC_CheckChild3Type, MVT::v4i1,
/*115841*/      OPC_Scope, 20, /*->115863*/ // 2 children in Scope
/*115843*/        OPC_CheckPredicate, 88, // Predicate_masked_truncstore_us_vi8
/*115845*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*115847*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*115850*/        OPC_EmitMergeInputChains1_0,
/*115851*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVUSDBZ128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                      7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                  // Src: (X86MTruncUSStore VR128X:{ *:[v4i32] }:$src, addr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask)<<P:Predicate_masked_truncstore_us_vi8>> - Complexity = 22
                  // Dst: (VPMOVUSDBZ128mrk addr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*115863*/      /*Scope*/ 20, /*->115884*/
/*115864*/        OPC_CheckPredicate, 89, // Predicate_masked_truncstore_us_vi16
/*115866*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*115868*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*115871*/        OPC_EmitMergeInputChains1_0,
/*115872*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVUSDWZ128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                      7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                  // Src: (X86MTruncUSStore VR128X:{ *:[v4i32] }:$src, addr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask)<<P:Predicate_masked_truncstore_us_vi16>> - Complexity = 22
                  // Dst: (VPMOVUSDWZ128mrk addr:{ *:[iPTR] }:$dst, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*115884*/      0, /*End of Scope*/
/*115885*/    /*Scope*/ 50, /*->115936*/
/*115886*/      OPC_CheckChild1Type, MVT::v8i32,
/*115888*/      OPC_RecordChild2, // #2 = $dst
/*115889*/      OPC_RecordChild3, // #3 = $mask
/*115890*/      OPC_CheckChild3Type, MVT::v8i1,
/*115892*/      OPC_Scope, 20, /*->115914*/ // 2 children in Scope
/*115894*/        OPC_CheckPredicate, 88, // Predicate_masked_truncstore_us_vi8
/*115896*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*115898*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*115901*/        OPC_EmitMergeInputChains1_0,
/*115902*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVUSDBZ256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                      7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                  // Src: (X86MTruncUSStore VR256X:{ *:[v8i32] }:$src, addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask)<<P:Predicate_masked_truncstore_us_vi8>> - Complexity = 22
                  // Dst: (VPMOVUSDBZ256mrk addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/*115914*/      /*Scope*/ 20, /*->115935*/
/*115915*/        OPC_CheckPredicate, 89, // Predicate_masked_truncstore_us_vi16
/*115917*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*115919*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*115922*/        OPC_EmitMergeInputChains1_0,
/*115923*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVUSDWZ256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                      7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                  // Src: (X86MTruncUSStore VR256X:{ *:[v8i32] }:$src, addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask)<<P:Predicate_masked_truncstore_us_vi16>> - Complexity = 22
                  // Dst: (VPMOVUSDWZ256mrk addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/*115935*/      0, /*End of Scope*/
/*115936*/    /*Scope*/ 50, /*->115987*/
/*115937*/      OPC_CheckChild1Type, MVT::v16i32,
/*115939*/      OPC_RecordChild2, // #2 = $dst
/*115940*/      OPC_RecordChild3, // #3 = $mask
/*115941*/      OPC_CheckChild3Type, MVT::v16i1,
/*115943*/      OPC_Scope, 20, /*->115965*/ // 2 children in Scope
/*115945*/        OPC_CheckPredicate, 88, // Predicate_masked_truncstore_us_vi8
/*115947*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*115949*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*115952*/        OPC_EmitMergeInputChains1_0,
/*115953*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVUSDBZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                      7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                  // Src: (X86MTruncUSStore VR512:{ *:[v16i32] }:$src, addr:{ *:[iPTR] }:$dst, VK16WM:{ *:[v16i1] }:$mask)<<P:Predicate_masked_truncstore_us_vi8>> - Complexity = 22
                  // Dst: (VPMOVUSDBZmrk addr:{ *:[iPTR] }:$dst, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)
/*115965*/      /*Scope*/ 20, /*->115986*/
/*115966*/        OPC_CheckPredicate, 89, // Predicate_masked_truncstore_us_vi16
/*115968*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*115970*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*115973*/        OPC_EmitMergeInputChains1_0,
/*115974*/        OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVUSDWZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                      7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                  // Src: (X86MTruncUSStore VR512:{ *:[v16i32] }:$src, addr:{ *:[iPTR] }:$dst, VK16WM:{ *:[v16i1] }:$mask)<<P:Predicate_masked_truncstore_us_vi16>> - Complexity = 22
                  // Dst: (VPMOVUSDWZmrk addr:{ *:[iPTR] }:$dst, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)
/*115986*/      0, /*End of Scope*/
/*115987*/    /*Scope*/ 26, /*->116014*/
/*115988*/      OPC_CheckChild1Type, MVT::v8i16,
/*115990*/      OPC_RecordChild2, // #2 = $dst
/*115991*/      OPC_RecordChild3, // #3 = $mask
/*115992*/      OPC_CheckChild3Type, MVT::v8i1,
/*115994*/      OPC_CheckPredicate, 88, // Predicate_masked_truncstore_us_vi8
/*115996*/      OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*115998*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*116001*/      OPC_EmitMergeInputChains1_0,
/*116002*/      OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVUSWBZ128mrk), 0|OPFL_Chain|OPFL_MemRefs,
                    7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                // Src: (X86MTruncUSStore VR128X:{ *:[v8i16] }:$src, addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask)<<P:Predicate_masked_truncstore_us_vi8>> - Complexity = 22
                // Dst: (VPMOVUSWBZ128mrk addr:{ *:[iPTR] }:$dst, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/*116014*/    /*Scope*/ 26, /*->116041*/
/*116015*/      OPC_CheckChild1Type, MVT::v16i16,
/*116017*/      OPC_RecordChild2, // #2 = $dst
/*116018*/      OPC_RecordChild3, // #3 = $mask
/*116019*/      OPC_CheckChild3Type, MVT::v16i1,
/*116021*/      OPC_CheckPredicate, 88, // Predicate_masked_truncstore_us_vi8
/*116023*/      OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*116025*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*116028*/      OPC_EmitMergeInputChains1_0,
/*116029*/      OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVUSWBZ256mrk), 0|OPFL_Chain|OPFL_MemRefs,
                    7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                // Src: (X86MTruncUSStore VR256X:{ *:[v16i16] }:$src, addr:{ *:[iPTR] }:$dst, VK16WM:{ *:[v16i1] }:$mask)<<P:Predicate_masked_truncstore_us_vi8>> - Complexity = 22
                // Dst: (VPMOVUSWBZ256mrk addr:{ *:[iPTR] }:$dst, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src)
/*116041*/    /*Scope*/ 26, /*->116068*/
/*116042*/      OPC_CheckChild1Type, MVT::v32i16,
/*116044*/      OPC_RecordChild2, // #2 = $dst
/*116045*/      OPC_RecordChild3, // #3 = $mask
/*116046*/      OPC_CheckChild3Type, MVT::v32i1,
/*116048*/      OPC_CheckPredicate, 88, // Predicate_masked_truncstore_us_vi8
/*116050*/      OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*116052*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$dst #4 #5 #6 #7 #8
/*116055*/      OPC_EmitMergeInputChains1_0,
/*116056*/      OPC_MorphNodeTo0, TARGET_VAL(X86::VPMOVUSWBZmrk), 0|OPFL_Chain|OPFL_MemRefs,
                    7/*#Ops*/, 4, 5, 6, 7, 8, 3, 1, 
                // Src: (X86MTruncUSStore VR512:{ *:[v32i16] }:$src, addr:{ *:[iPTR] }:$dst, VK32WM:{ *:[v32i1] }:$mask)<<P:Predicate_masked_truncstore_us_vi8>> - Complexity = 22
                // Dst: (VPMOVUSWBZmrk addr:{ *:[iPTR] }:$dst, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src)
/*116068*/    0, /*End of Scope*/
/*116069*/  /*SwitchOpcode*/ 90, TARGET_VAL(ISD::ATOMIC_LOAD_ADD),// ->116162
/*116072*/    OPC_RecordMemRef,
/*116073*/    OPC_RecordNode, // #0 = 'atomic_load_add' chained node
/*116074*/    OPC_RecordChild1, // #1 = $ptr
/*116075*/    OPC_RecordChild2, // #2 = $val
/*116076*/    OPC_SwitchType /*4 cases */, 19, MVT::i8,// ->116098
/*116079*/      OPC_CheckPredicate, 34, // Predicate_atomic_load_add_8
/*116081*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*116084*/      OPC_EmitMergeInputChains1_0,
/*116085*/      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)
/*116098*/    /*SwitchType*/ 19, MVT::i16,// ->116119
/*116100*/      OPC_CheckPredicate, 35, // Predicate_atomic_load_add_16
/*116102*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*116105*/      OPC_EmitMergeInputChains1_0,
/*116106*/      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)
/*116119*/    /*SwitchType*/ 19, MVT::i32,// ->116140
/*116121*/      OPC_CheckPredicate, 36, // Predicate_atomic_load_add_32
/*116123*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*116126*/      OPC_EmitMergeInputChains1_0,
/*116127*/      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)
/*116140*/    /*SwitchType*/ 19, MVT::i64,// ->116161
/*116142*/      OPC_CheckPredicate, 37, // Predicate_atomic_load_add_64
/*116144*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*116147*/      OPC_EmitMergeInputChains1_0,
/*116148*/      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)
/*116161*/    0, // EndSwitchType
/*116162*/  /*SwitchOpcode*/ 81, TARGET_VAL(ISD::ATOMIC_LOAD),// ->116246
/*116165*/    OPC_RecordMemRef,
/*116166*/    OPC_RecordNode, // #0 = 'atomic_load' chained node
/*116167*/    OPC_RecordChild1, // #1 = $src
/*116168*/    OPC_SwitchType /*4 cases */, 17, MVT::i8,// ->116188
/*116171*/      OPC_CheckPredicate, 34, // Predicate_atomic_load_8
/*116173*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*116176*/      OPC_EmitMergeInputChains1_0,
/*116177*/      OPC_MorphNodeTo1, TARGET_VAL(X86::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: (MOV8rm:{ *:[i8] } addr:{ *:[iPTR] }:$src)
/*116188*/    /*SwitchType*/ 17, MVT::i16,// ->116207
/*116190*/      OPC_CheckPredicate, 35, // Predicate_atomic_load_16
/*116192*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*116195*/      OPC_EmitMergeInputChains1_0,
/*116196*/      OPC_MorphNodeTo1, TARGET_VAL(X86::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: (MOV16rm:{ *:[i16] } addr:{ *:[iPTR] }:$src)
/*116207*/    /*SwitchType*/ 17, MVT::i32,// ->116226
/*116209*/      OPC_CheckPredicate, 36, // Predicate_atomic_load_32
/*116211*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*116214*/      OPC_EmitMergeInputChains1_0,
/*116215*/      OPC_MorphNodeTo1, TARGET_VAL(X86::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: (MOV32rm:{ *:[i32] } addr:{ *:[iPTR] }:$src)
/*116226*/    /*SwitchType*/ 17, MVT::i64,// ->116245
/*116228*/      OPC_CheckPredicate, 37, // Predicate_atomic_load_64
/*116230*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*116233*/      OPC_EmitMergeInputChains1_0,
/*116234*/      OPC_MorphNodeTo1, TARGET_VAL(X86::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: (MOV64rm:{ *:[i64] } addr:{ *:[iPTR] }:$src)
/*116245*/    0, // EndSwitchType
/*116246*/  /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::ENQCMD),// ->116319
/*116249*/    OPC_RecordNode, // #0 = 'X86enqcmd' chained node
/*116250*/    OPC_RecordChild1, // #1 = $dst
/*116251*/    OPC_Scope, 21, /*->116274*/ // 3 children in Scope
/*116253*/      OPC_CheckChild1Type, MVT::i16,
/*116255*/      OPC_RecordChild2, // #2 = $src
/*116256*/      OPC_CheckPatternPredicate, 151, // (Subtarget->hasENQCMD()) && (!Subtarget->is64Bit())
/*116258*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*116261*/      OPC_EmitMergeInputChains1_0,
/*116262*/      OPC_MorphNodeTo1, TARGET_VAL(X86::ENQCMD16), 0|OPFL_Chain,
                    MVT::i32, 6/*#Ops*/, 1, 3, 4, 5, 6, 7, 
                // Src: (X86enqcmd:{ *:[i32] } GR16:{ *:[i16] }:$dst, addr:{ *:[i16] }:$src) - Complexity = 21
                // Dst: (ENQCMD16:{ *:[i32] } GR16:{ *:[i16] }:$dst, addr:{ *:[i16] }:$src)
/*116274*/    /*Scope*/ 21, /*->116296*/
/*116275*/      OPC_CheckChild1Type, MVT::i32,
/*116277*/      OPC_RecordChild2, // #2 = $src
/*116278*/      OPC_CheckPatternPredicate, 152, // (Subtarget->hasENQCMD())
/*116280*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*116283*/      OPC_EmitMergeInputChains1_0,
/*116284*/      OPC_MorphNodeTo1, TARGET_VAL(X86::ENQCMD32), 0|OPFL_Chain,
                    MVT::i32, 6/*#Ops*/, 1, 3, 4, 5, 6, 7, 
                // Src: (X86enqcmd:{ *:[i32] } GR32:{ *:[i32] }:$dst, addr:{ *:[i32] }:$src) - Complexity = 21
                // Dst: (ENQCMD32:{ *:[i32] } GR32:{ *:[i32] }:$dst, addr:{ *:[i32] }:$src)
/*116296*/    /*Scope*/ 21, /*->116318*/
/*116297*/      OPC_CheckChild1Type, MVT::i64,
/*116299*/      OPC_RecordChild2, // #2 = $src
/*116300*/      OPC_CheckPatternPredicate, 153, // (Subtarget->hasENQCMD()) && (Subtarget->is64Bit())
/*116302*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*116305*/      OPC_EmitMergeInputChains1_0,
/*116306*/      OPC_MorphNodeTo1, TARGET_VAL(X86::ENQCMD64), 0|OPFL_Chain,
                    MVT::i32, 6/*#Ops*/, 1, 3, 4, 5, 6, 7, 
                // Src: (X86enqcmd:{ *:[i32] } GR64:{ *:[i64] }:$dst, addr:{ *:[i64] }:$src) - Complexity = 21
                // Dst: (ENQCMD64:{ *:[i32] } GR64:{ *:[i64] }:$dst, addr:{ *:[i64] }:$src)
/*116318*/    0, /*End of Scope*/
/*116319*/  /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::ENQCMDS),// ->116392
/*116322*/    OPC_RecordNode, // #0 = 'X86enqcmds' chained node
/*116323*/    OPC_RecordChild1, // #1 = $dst
/*116324*/    OPC_Scope, 21, /*->116347*/ // 3 children in Scope
/*116326*/      OPC_CheckChild1Type, MVT::i16,
/*116328*/      OPC_RecordChild2, // #2 = $src
/*116329*/      OPC_CheckPatternPredicate, 151, // (Subtarget->hasENQCMD()) && (!Subtarget->is64Bit())
/*116331*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*116334*/      OPC_EmitMergeInputChains1_0,
/*116335*/      OPC_MorphNodeTo1, TARGET_VAL(X86::ENQCMDS16), 0|OPFL_Chain,
                    MVT::i32, 6/*#Ops*/, 1, 3, 4, 5, 6, 7, 
                // Src: (X86enqcmds:{ *:[i32] } GR16:{ *:[i16] }:$dst, addr:{ *:[i16] }:$src) - Complexity = 21
                // Dst: (ENQCMDS16:{ *:[i32] } GR16:{ *:[i16] }:$dst, addr:{ *:[i16] }:$src)
/*116347*/    /*Scope*/ 21, /*->116369*/
/*116348*/      OPC_CheckChild1Type, MVT::i32,
/*116350*/      OPC_RecordChild2, // #2 = $src
/*116351*/      OPC_CheckPatternPredicate, 152, // (Subtarget->hasENQCMD())
/*116353*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*116356*/      OPC_EmitMergeInputChains1_0,
/*116357*/      OPC_MorphNodeTo1, TARGET_VAL(X86::ENQCMDS32), 0|OPFL_Chain,
                    MVT::i32, 6/*#Ops*/, 1, 3, 4, 5, 6, 7, 
                // Src: (X86enqcmds:{ *:[i32] } GR32:{ *:[i32] }:$dst, addr:{ *:[i32] }:$src) - Complexity = 21
                // Dst: (ENQCMDS32:{ *:[i32] } GR32:{ *:[i32] }:$dst, addr:{ *:[i32] }:$src)
/*116369*/    /*Scope*/ 21, /*->116391*/
/*116370*/      OPC_CheckChild1Type, MVT::i64,
/*116372*/      OPC_RecordChild2, // #2 = $src
/*116373*/      OPC_CheckPatternPredicate, 153, // (Subtarget->hasENQCMD()) && (Subtarget->is64Bit())
/*116375*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*116378*/      OPC_EmitMergeInputChains1_0,
/*116379*/      OPC_MorphNodeTo1, TARGET_VAL(X86::ENQCMDS64), 0|OPFL_Chain,
                    MVT::i32, 6/*#Ops*/, 1, 3, 4, 5, 6, 7, 
                // Src: (X86enqcmds:{ *:[i32] } GR64:{ *:[i64] }:$dst, addr:{ *:[i64] }:$src) - Complexity = 21
                // Dst: (ENQCMDS64:{ *:[i32] } GR64:{ *:[i64] }:$dst, addr:{ *:[i64] }:$src)
/*116391*/    0, /*End of Scope*/
/*116392*/  /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::FNSTCW16m),// ->116413
/*116395*/    OPC_RecordMemRef,
/*116396*/    OPC_RecordNode, // #0 = 'X86fp_cwd_get16' chained node
/*116397*/    OPC_RecordChild1, // #1 = $dst
/*116398*/    OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$dst #2 #3 #4 #5 #6
/*116401*/    OPC_EmitMergeInputChains1_0,
/*116402*/    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)
/*116413*/  /*SwitchOpcode*/ 7|128,3/*391*/, TARGET_VAL(X86ISD::CVTS2SI),// ->116808
/*116417*/    OPC_RecordChild0, // #0 = $src
/*116418*/    OPC_Scope, 64|128,1/*192*/, /*->116613*/ // 2 children in Scope
/*116421*/      OPC_CheckChild0Type, MVT::v2f64,
/*116423*/      OPC_SwitchType /*2 cases */, 92, MVT::i32,// ->116518
/*116426*/        OPC_Scope, 19, /*->116447*/ // 6 children in Scope
/*116428*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*116430*/          OPC_CheckComplexPat, /*CP*/3, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/*116433*/          OPC_EmitMergeInputChains, 1, 6, 
/*116436*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSD2SIrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                    // Src: (X86cvts2si:{ *:[i32] } sse_load_f64:{ *:[v2f64] }:$src) - Complexity = 21
                    // Dst: (VCVTSD2SIrm_Int:{ *:[i32] } sse_load_f64:{ *:[v2f64] }:$src)
/*116447*/        /*Scope*/ 19, /*->116467*/
/*116448*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*116450*/          OPC_CheckComplexPat, /*CP*/3, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/*116453*/          OPC_EmitMergeInputChains, 1, 6, 
/*116456*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CVTSD2SIrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                    // Src: (X86cvts2si:{ *:[i32] } sse_load_f64:{ *:[v2f64] }:$src) - Complexity = 21
                    // Dst: (CVTSD2SIrm_Int:{ *:[i32] } sse_load_f64:{ *:[v2f64] }:$src)
/*116467*/        /*Scope*/ 19, /*->116487*/
/*116468*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*116470*/          OPC_CheckComplexPat, /*CP*/3, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/*116473*/          OPC_EmitMergeInputChains, 1, 6, 
/*116476*/          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) - Complexity = 21
                    // Dst: (VCVTSD2SIZrm_Int:{ *:[i32] } sse_load_f64:{ *:[v2f64] }:$src)
/*116487*/        /*Scope*/ 9, /*->116497*/
/*116488*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*116490*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSD2SIrr_Int), 0,
                        MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (X86cvts2si:{ *:[i32] } VR128:{ *:[v2f64] }:$src) - Complexity = 3
                    // Dst: (VCVTSD2SIrr_Int:{ *:[i32] } VR128:{ *:[v2f64] }:$src)
/*116497*/        /*Scope*/ 9, /*->116507*/
/*116498*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*116500*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CVTSD2SIrr_Int), 0,
                        MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (X86cvts2si:{ *:[i32] } VR128:{ *:[v2f64] }:$src) - Complexity = 3
                    // Dst: (CVTSD2SIrr_Int:{ *:[i32] } VR128:{ *:[v2f64] }:$src)
/*116507*/        /*Scope*/ 9, /*->116517*/
/*116508*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*116510*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSD2SIZrr_Int), 0,
                        MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (X86cvts2si:{ *:[i32] } VR128X:{ *:[v2f64] }:$src) - Complexity = 3
                    // Dst: (VCVTSD2SIZrr_Int:{ *:[i32] } VR128X:{ *:[v2f64] }:$src)
/*116517*/        0, /*End of Scope*/
/*116518*/      /*SwitchType*/ 92, MVT::i64,// ->116612
/*116520*/        OPC_Scope, 19, /*->116541*/ // 6 children in Scope
/*116522*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*116524*/          OPC_CheckComplexPat, /*CP*/3, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/*116527*/          OPC_EmitMergeInputChains, 1, 6, 
/*116530*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSD2SI64rm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i64, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                    // Src: (X86cvts2si:{ *:[i64] } sse_load_f64:{ *:[v2f64] }:$src) - Complexity = 21
                    // Dst: (VCVTSD2SI64rm_Int:{ *:[i64] } sse_load_f64:{ *:[v2f64] }:$src)
/*116541*/        /*Scope*/ 19, /*->116561*/
/*116542*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*116544*/          OPC_CheckComplexPat, /*CP*/3, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/*116547*/          OPC_EmitMergeInputChains, 1, 6, 
/*116550*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CVTSD2SI64rm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i64, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                    // Src: (X86cvts2si:{ *:[i64] } sse_load_f64:{ *:[v2f64] }:$src) - Complexity = 21
                    // Dst: (CVTSD2SI64rm_Int:{ *:[i64] } sse_load_f64:{ *:[v2f64] }:$src)
/*116561*/        /*Scope*/ 19, /*->116581*/
/*116562*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*116564*/          OPC_CheckComplexPat, /*CP*/3, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/*116567*/          OPC_EmitMergeInputChains, 1, 6, 
/*116570*/          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) - Complexity = 21
                    // Dst: (VCVTSD2SI64Zrm_Int:{ *:[i64] } sse_load_f64:{ *:[v2f64] }:$src)
/*116581*/        /*Scope*/ 9, /*->116591*/
/*116582*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*116584*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSD2SI64rr_Int), 0,
                        MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (X86cvts2si:{ *:[i64] } VR128:{ *:[v2f64] }:$src) - Complexity = 3
                    // Dst: (VCVTSD2SI64rr_Int:{ *:[i64] } VR128:{ *:[v2f64] }:$src)
/*116591*/        /*Scope*/ 9, /*->116601*/
/*116592*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*116594*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CVTSD2SI64rr_Int), 0,
                        MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (X86cvts2si:{ *:[i64] } VR128:{ *:[v2f64] }:$src) - Complexity = 3
                    // Dst: (CVTSD2SI64rr_Int:{ *:[i64] } VR128:{ *:[v2f64] }:$src)
/*116601*/        /*Scope*/ 9, /*->116611*/
/*116602*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*116604*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSD2SI64Zrr_Int), 0,
                        MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (X86cvts2si:{ *:[i64] } VR128X:{ *:[v2f64] }:$src) - Complexity = 3
                    // Dst: (VCVTSD2SI64Zrr_Int:{ *:[i64] } VR128X:{ *:[v2f64] }:$src)
/*116611*/        0, /*End of Scope*/
/*116612*/      0, // EndSwitchType
/*116613*/    /*Scope*/ 64|128,1/*192*/, /*->116807*/
/*116615*/      OPC_CheckChild0Type, MVT::v4f32,
/*116617*/      OPC_SwitchType /*2 cases */, 92, MVT::i32,// ->116712
/*116620*/        OPC_Scope, 19, /*->116641*/ // 6 children in Scope
/*116622*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*116624*/          OPC_CheckComplexPat, /*CP*/2, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/*116627*/          OPC_EmitMergeInputChains, 1, 6, 
/*116630*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSS2SIrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                    // Src: (X86cvts2si:{ *:[i32] } sse_load_f32:{ *:[v4f32] }:$src) - Complexity = 21
                    // Dst: (VCVTSS2SIrm_Int:{ *:[i32] } sse_load_f32:{ *:[v4f32] }:$src)
/*116641*/        /*Scope*/ 19, /*->116661*/
/*116642*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*116644*/          OPC_CheckComplexPat, /*CP*/2, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/*116647*/          OPC_EmitMergeInputChains, 1, 6, 
/*116650*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CVTSS2SIrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                    // Src: (X86cvts2si:{ *:[i32] } sse_load_f32:{ *:[v4f32] }:$src) - Complexity = 21
                    // Dst: (CVTSS2SIrm_Int:{ *:[i32] } sse_load_f32:{ *:[v4f32] }:$src)
/*116661*/        /*Scope*/ 19, /*->116681*/
/*116662*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*116664*/          OPC_CheckComplexPat, /*CP*/2, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/*116667*/          OPC_EmitMergeInputChains, 1, 6, 
/*116670*/          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) - Complexity = 21
                    // Dst: (VCVTSS2SIZrm_Int:{ *:[i32] } sse_load_f32:{ *:[v4f32] }:$src)
/*116681*/        /*Scope*/ 9, /*->116691*/
/*116682*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*116684*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSS2SIrr_Int), 0,
                        MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (X86cvts2si:{ *:[i32] } VR128:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (VCVTSS2SIrr_Int:{ *:[i32] } VR128:{ *:[v4f32] }:$src)
/*116691*/        /*Scope*/ 9, /*->116701*/
/*116692*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*116694*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CVTSS2SIrr_Int), 0,
                        MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (X86cvts2si:{ *:[i32] } VR128:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (CVTSS2SIrr_Int:{ *:[i32] } VR128:{ *:[v4f32] }:$src)
/*116701*/        /*Scope*/ 9, /*->116711*/
/*116702*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*116704*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSS2SIZrr_Int), 0,
                        MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (X86cvts2si:{ *:[i32] } VR128X:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (VCVTSS2SIZrr_Int:{ *:[i32] } VR128X:{ *:[v4f32] }:$src)
/*116711*/        0, /*End of Scope*/
/*116712*/      /*SwitchType*/ 92, MVT::i64,// ->116806
/*116714*/        OPC_Scope, 19, /*->116735*/ // 6 children in Scope
/*116716*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*116718*/          OPC_CheckComplexPat, /*CP*/2, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/*116721*/          OPC_EmitMergeInputChains, 1, 6, 
/*116724*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSS2SI64rm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i64, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                    // Src: (X86cvts2si:{ *:[i64] } sse_load_f32:{ *:[v4f32] }:$src) - Complexity = 21
                    // Dst: (VCVTSS2SI64rm_Int:{ *:[i64] } sse_load_f32:{ *:[v4f32] }:$src)
/*116735*/        /*Scope*/ 19, /*->116755*/
/*116736*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*116738*/          OPC_CheckComplexPat, /*CP*/2, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/*116741*/          OPC_EmitMergeInputChains, 1, 6, 
/*116744*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CVTSS2SI64rm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i64, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                    // Src: (X86cvts2si:{ *:[i64] } sse_load_f32:{ *:[v4f32] }:$src) - Complexity = 21
                    // Dst: (CVTSS2SI64rm_Int:{ *:[i64] } sse_load_f32:{ *:[v4f32] }:$src)
/*116755*/        /*Scope*/ 19, /*->116775*/
/*116756*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*116758*/          OPC_CheckComplexPat, /*CP*/2, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/*116761*/          OPC_EmitMergeInputChains, 1, 6, 
/*116764*/          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) - Complexity = 21
                    // Dst: (VCVTSS2SI64Zrm_Int:{ *:[i64] } sse_load_f32:{ *:[v4f32] }:$src)
/*116775*/        /*Scope*/ 9, /*->116785*/
/*116776*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*116778*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSS2SI64rr_Int), 0,
                        MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (X86cvts2si:{ *:[i64] } VR128:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (VCVTSS2SI64rr_Int:{ *:[i64] } VR128:{ *:[v4f32] }:$src)
/*116785*/        /*Scope*/ 9, /*->116795*/
/*116786*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*116788*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CVTSS2SI64rr_Int), 0,
                        MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (X86cvts2si:{ *:[i64] } VR128:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (CVTSS2SI64rr_Int:{ *:[i64] } VR128:{ *:[v4f32] }:$src)
/*116795*/        /*Scope*/ 9, /*->116805*/
/*116796*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*116798*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSS2SI64Zrr_Int), 0,
                        MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (X86cvts2si:{ *:[i64] } VR128X:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (VCVTSS2SI64Zrr_Int:{ *:[i64] } VR128X:{ *:[v4f32] }:$src)
/*116805*/        0, /*End of Scope*/
/*116806*/      0, // EndSwitchType
/*116807*/    0, /*End of Scope*/
/*116808*/  /*SwitchOpcode*/ 7|128,3/*391*/, TARGET_VAL(X86ISD::CVTTS2SI),// ->117203
/*116812*/    OPC_RecordChild0, // #0 = $src
/*116813*/    OPC_Scope, 64|128,1/*192*/, /*->117008*/ // 2 children in Scope
/*116816*/      OPC_CheckChild0Type, MVT::v4f32,
/*116818*/      OPC_SwitchType /*2 cases */, 92, MVT::i32,// ->116913
/*116821*/        OPC_Scope, 19, /*->116842*/ // 6 children in Scope
/*116823*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*116825*/          OPC_CheckComplexPat, /*CP*/2, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/*116828*/          OPC_EmitMergeInputChains, 1, 6, 
/*116831*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSS2SIrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                    // Src: (X86cvtts2Int:{ *:[i32] } sse_load_f32:{ *:[v4f32] }:$src) - Complexity = 21
                    // Dst: (VCVTTSS2SIrm_Int:{ *:[i32] } sse_load_f32:{ *:[v4f32] }:$src)
/*116842*/        /*Scope*/ 19, /*->116862*/
/*116843*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*116845*/          OPC_CheckComplexPat, /*CP*/2, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/*116848*/          OPC_EmitMergeInputChains, 1, 6, 
/*116851*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CVTTSS2SIrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                    // Src: (X86cvtts2Int:{ *:[i32] } sse_load_f32:{ *:[v4f32] }:$src) - Complexity = 21
                    // Dst: (CVTTSS2SIrm_Int:{ *:[i32] } sse_load_f32:{ *:[v4f32] }:$src)
/*116862*/        /*Scope*/ 19, /*->116882*/
/*116863*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*116865*/          OPC_CheckComplexPat, /*CP*/2, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/*116868*/          OPC_EmitMergeInputChains, 1, 6, 
/*116871*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSS2SIZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                    // Src: (X86cvtts2Int:{ *:[i32] } sse_load_f32:{ *:[v4f32] }:$src) - Complexity = 21
                    // Dst: (VCVTTSS2SIZrm_Int:{ *:[i32] } sse_load_f32:{ *:[v4f32] }:$src)
/*116882*/        /*Scope*/ 9, /*->116892*/
/*116883*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*116885*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSS2SIrr_Int), 0,
                        MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (X86cvtts2Int:{ *:[i32] } VR128:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (VCVTTSS2SIrr_Int:{ *:[i32] } VR128:{ *:[v4f32] }:$src)
/*116892*/        /*Scope*/ 9, /*->116902*/
/*116893*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*116895*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CVTTSS2SIrr_Int), 0,
                        MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (X86cvtts2Int:{ *:[i32] } VR128:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (CVTTSS2SIrr_Int:{ *:[i32] } VR128:{ *:[v4f32] }:$src)
/*116902*/        /*Scope*/ 9, /*->116912*/
/*116903*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*116905*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSS2SIZrr_Int), 0,
                        MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (X86cvtts2Int:{ *:[i32] } VR128X:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (VCVTTSS2SIZrr_Int:{ *:[i32] } VR128X:{ *:[v4f32] }:$src)
/*116912*/        0, /*End of Scope*/
/*116913*/      /*SwitchType*/ 92, MVT::i64,// ->117007
/*116915*/        OPC_Scope, 19, /*->116936*/ // 6 children in Scope
/*116917*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*116919*/          OPC_CheckComplexPat, /*CP*/2, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/*116922*/          OPC_EmitMergeInputChains, 1, 6, 
/*116925*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSS2SI64rm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i64, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                    // Src: (X86cvtts2Int:{ *:[i64] } sse_load_f32:{ *:[v4f32] }:$src) - Complexity = 21
                    // Dst: (VCVTTSS2SI64rm_Int:{ *:[i64] } sse_load_f32:{ *:[v4f32] }:$src)
/*116936*/        /*Scope*/ 19, /*->116956*/
/*116937*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*116939*/          OPC_CheckComplexPat, /*CP*/2, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/*116942*/          OPC_EmitMergeInputChains, 1, 6, 
/*116945*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CVTTSS2SI64rm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i64, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                    // Src: (X86cvtts2Int:{ *:[i64] } sse_load_f32:{ *:[v4f32] }:$src) - Complexity = 21
                    // Dst: (CVTTSS2SI64rm_Int:{ *:[i64] } sse_load_f32:{ *:[v4f32] }:$src)
/*116956*/        /*Scope*/ 19, /*->116976*/
/*116957*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*116959*/          OPC_CheckComplexPat, /*CP*/2, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/*116962*/          OPC_EmitMergeInputChains, 1, 6, 
/*116965*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSS2SI64Zrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i64, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                    // Src: (X86cvtts2Int:{ *:[i64] } sse_load_f32:{ *:[v4f32] }:$src) - Complexity = 21
                    // Dst: (VCVTTSS2SI64Zrm_Int:{ *:[i64] } sse_load_f32:{ *:[v4f32] }:$src)
/*116976*/        /*Scope*/ 9, /*->116986*/
/*116977*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*116979*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSS2SI64rr_Int), 0,
                        MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (X86cvtts2Int:{ *:[i64] } VR128:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (VCVTTSS2SI64rr_Int:{ *:[i64] } VR128:{ *:[v4f32] }:$src)
/*116986*/        /*Scope*/ 9, /*->116996*/
/*116987*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*116989*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CVTTSS2SI64rr_Int), 0,
                        MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (X86cvtts2Int:{ *:[i64] } VR128:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (CVTTSS2SI64rr_Int:{ *:[i64] } VR128:{ *:[v4f32] }:$src)
/*116996*/        /*Scope*/ 9, /*->117006*/
/*116997*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*116999*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSS2SI64Zrr_Int), 0,
                        MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (X86cvtts2Int:{ *:[i64] } VR128X:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (VCVTTSS2SI64Zrr_Int:{ *:[i64] } VR128X:{ *:[v4f32] }:$src)
/*117006*/        0, /*End of Scope*/
/*117007*/      0, // EndSwitchType
/*117008*/    /*Scope*/ 64|128,1/*192*/, /*->117202*/
/*117010*/      OPC_CheckChild0Type, MVT::v2f64,
/*117012*/      OPC_SwitchType /*2 cases */, 92, MVT::i32,// ->117107
/*117015*/        OPC_Scope, 19, /*->117036*/ // 6 children in Scope
/*117017*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*117019*/          OPC_CheckComplexPat, /*CP*/3, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/*117022*/          OPC_EmitMergeInputChains, 1, 6, 
/*117025*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSD2SIrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                    // Src: (X86cvtts2Int:{ *:[i32] } sse_load_f64:{ *:[v2f64] }:$src) - Complexity = 21
                    // Dst: (VCVTTSD2SIrm_Int:{ *:[i32] } sse_load_f64:{ *:[v2f64] }:$src)
/*117036*/        /*Scope*/ 19, /*->117056*/
/*117037*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*117039*/          OPC_CheckComplexPat, /*CP*/3, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/*117042*/          OPC_EmitMergeInputChains, 1, 6, 
/*117045*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CVTTSD2SIrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                    // Src: (X86cvtts2Int:{ *:[i32] } sse_load_f64:{ *:[v2f64] }:$src) - Complexity = 21
                    // Dst: (CVTTSD2SIrm_Int:{ *:[i32] } sse_load_f64:{ *:[v2f64] }:$src)
/*117056*/        /*Scope*/ 19, /*->117076*/
/*117057*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*117059*/          OPC_CheckComplexPat, /*CP*/3, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/*117062*/          OPC_EmitMergeInputChains, 1, 6, 
/*117065*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSD2SIZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                    // Src: (X86cvtts2Int:{ *:[i32] } sse_load_f64:{ *:[v2f64] }:$src) - Complexity = 21
                    // Dst: (VCVTTSD2SIZrm_Int:{ *:[i32] } sse_load_f64:{ *:[v2f64] }:$src)
/*117076*/        /*Scope*/ 9, /*->117086*/
/*117077*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*117079*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSD2SIrr_Int), 0,
                        MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (X86cvtts2Int:{ *:[i32] } VR128:{ *:[v2f64] }:$src) - Complexity = 3
                    // Dst: (VCVTTSD2SIrr_Int:{ *:[i32] } VR128:{ *:[v2f64] }:$src)
/*117086*/        /*Scope*/ 9, /*->117096*/
/*117087*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*117089*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CVTTSD2SIrr_Int), 0,
                        MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (X86cvtts2Int:{ *:[i32] } VR128:{ *:[v2f64] }:$src) - Complexity = 3
                    // Dst: (CVTTSD2SIrr_Int:{ *:[i32] } VR128:{ *:[v2f64] }:$src)
/*117096*/        /*Scope*/ 9, /*->117106*/
/*117097*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*117099*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSD2SIZrr_Int), 0,
                        MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (X86cvtts2Int:{ *:[i32] } VR128X:{ *:[v2f64] }:$src) - Complexity = 3
                    // Dst: (VCVTTSD2SIZrr_Int:{ *:[i32] } VR128X:{ *:[v2f64] }:$src)
/*117106*/        0, /*End of Scope*/
/*117107*/      /*SwitchType*/ 92, MVT::i64,// ->117201
/*117109*/        OPC_Scope, 19, /*->117130*/ // 6 children in Scope
/*117111*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*117113*/          OPC_CheckComplexPat, /*CP*/3, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/*117116*/          OPC_EmitMergeInputChains, 1, 6, 
/*117119*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSD2SI64rm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i64, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                    // Src: (X86cvtts2Int:{ *:[i64] } sse_load_f64:{ *:[v2f64] }:$src) - Complexity = 21
                    // Dst: (VCVTTSD2SI64rm_Int:{ *:[i64] } sse_load_f64:{ *:[v2f64] }:$src)
/*117130*/        /*Scope*/ 19, /*->117150*/
/*117131*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*117133*/          OPC_CheckComplexPat, /*CP*/3, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/*117136*/          OPC_EmitMergeInputChains, 1, 6, 
/*117139*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CVTTSD2SI64rm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i64, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                    // Src: (X86cvtts2Int:{ *:[i64] } sse_load_f64:{ *:[v2f64] }:$src) - Complexity = 21
                    // Dst: (CVTTSD2SI64rm_Int:{ *:[i64] } sse_load_f64:{ *:[v2f64] }:$src)
/*117150*/        /*Scope*/ 19, /*->117170*/
/*117151*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*117153*/          OPC_CheckComplexPat, /*CP*/3, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/*117156*/          OPC_EmitMergeInputChains, 1, 6, 
/*117159*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSD2SI64Zrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i64, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                    // Src: (X86cvtts2Int:{ *:[i64] } sse_load_f64:{ *:[v2f64] }:$src) - Complexity = 21
                    // Dst: (VCVTTSD2SI64Zrm_Int:{ *:[i64] } sse_load_f64:{ *:[v2f64] }:$src)
/*117170*/        /*Scope*/ 9, /*->117180*/
/*117171*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*117173*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSD2SI64rr_Int), 0,
                        MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (X86cvtts2Int:{ *:[i64] } VR128:{ *:[v2f64] }:$src) - Complexity = 3
                    // Dst: (VCVTTSD2SI64rr_Int:{ *:[i64] } VR128:{ *:[v2f64] }:$src)
/*117180*/        /*Scope*/ 9, /*->117190*/
/*117181*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*117183*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CVTTSD2SI64rr_Int), 0,
                        MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (X86cvtts2Int:{ *:[i64] } VR128:{ *:[v2f64] }:$src) - Complexity = 3
                    // Dst: (CVTTSD2SI64rr_Int:{ *:[i64] } VR128:{ *:[v2f64] }:$src)
/*117190*/        /*Scope*/ 9, /*->117200*/
/*117191*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*117193*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSD2SI64Zrr_Int), 0,
                        MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (X86cvtts2Int:{ *:[i64] } VR128X:{ *:[v2f64] }:$src) - Complexity = 3
                    // Dst: (VCVTTSD2SI64Zrr_Int:{ *:[i64] } VR128X:{ *:[v2f64] }:$src)
/*117200*/        0, /*End of Scope*/
/*117201*/      0, // EndSwitchType
/*117202*/    0, /*End of Scope*/
/*117203*/  /*SwitchOpcode*/ 79|128,1/*207*/, TARGET_VAL(X86ISD::UCOMI),// ->117414
/*117207*/    OPC_RecordChild0, // #0 = $src1
/*117208*/    OPC_Scope, 101, /*->117311*/ // 2 children in Scope
/*117210*/      OPC_CheckChild0Type, MVT::v4f32,
/*117212*/      OPC_RecordChild1, // #1 = $src2
/*117213*/      OPC_Scope, 20, /*->117235*/ // 6 children in Scope
/*117215*/        OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*117217*/        OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*117220*/        OPC_EmitMergeInputChains, 1, 7, 
/*117223*/        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)
/*117235*/      /*Scope*/ 20, /*->117256*/
/*117236*/        OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*117238*/        OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*117241*/        OPC_EmitMergeInputChains, 1, 7, 
/*117244*/        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)
/*117256*/      /*Scope*/ 20, /*->117277*/
/*117257*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*117259*/        OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*117262*/        OPC_EmitMergeInputChains, 1, 7, 
/*117265*/        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)
/*117277*/      /*Scope*/ 10, /*->117288*/
/*117278*/        OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*117280*/        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)
/*117288*/      /*Scope*/ 10, /*->117299*/
/*117289*/        OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*117291*/        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)
/*117299*/      /*Scope*/ 10, /*->117310*/
/*117300*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*117302*/        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)
/*117310*/      0, /*End of Scope*/
/*117311*/    /*Scope*/ 101, /*->117413*/
/*117312*/      OPC_CheckChild0Type, MVT::v2f64,
/*117314*/      OPC_RecordChild1, // #1 = $src2
/*117315*/      OPC_Scope, 20, /*->117337*/ // 6 children in Scope
/*117317*/        OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*117319*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*117322*/        OPC_EmitMergeInputChains, 1, 7, 
/*117325*/        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)
/*117337*/      /*Scope*/ 20, /*->117358*/
/*117338*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*117340*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*117343*/        OPC_EmitMergeInputChains, 1, 7, 
/*117346*/        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)
/*117358*/      /*Scope*/ 20, /*->117379*/
/*117359*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*117361*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*117364*/        OPC_EmitMergeInputChains, 1, 7, 
/*117367*/        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)
/*117379*/      /*Scope*/ 10, /*->117390*/
/*117380*/        OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*117382*/        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)
/*117390*/      /*Scope*/ 10, /*->117401*/
/*117391*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*117393*/        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)
/*117401*/      /*Scope*/ 10, /*->117412*/
/*117402*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*117404*/        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)
/*117412*/      0, /*End of Scope*/
/*117413*/    0, /*End of Scope*/
/*117414*/  /*SwitchOpcode*/ 79|128,1/*207*/, TARGET_VAL(X86ISD::COMI),// ->117625
/*117418*/    OPC_RecordChild0, // #0 = $src1
/*117419*/    OPC_Scope, 101, /*->117522*/ // 2 children in Scope
/*117421*/      OPC_CheckChild0Type, MVT::v4f32,
/*117423*/      OPC_RecordChild1, // #1 = $src2
/*117424*/      OPC_Scope, 20, /*->117446*/ // 6 children in Scope
/*117426*/        OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*117428*/        OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*117431*/        OPC_EmitMergeInputChains, 1, 7, 
/*117434*/        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)
/*117446*/      /*Scope*/ 20, /*->117467*/
/*117447*/        OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*117449*/        OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*117452*/        OPC_EmitMergeInputChains, 1, 7, 
/*117455*/        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)
/*117467*/      /*Scope*/ 20, /*->117488*/
/*117468*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*117470*/        OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*117473*/        OPC_EmitMergeInputChains, 1, 7, 
/*117476*/        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)
/*117488*/      /*Scope*/ 10, /*->117499*/
/*117489*/        OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*117491*/        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)
/*117499*/      /*Scope*/ 10, /*->117510*/
/*117500*/        OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*117502*/        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)
/*117510*/      /*Scope*/ 10, /*->117521*/
/*117511*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*117513*/        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)
/*117521*/      0, /*End of Scope*/
/*117522*/    /*Scope*/ 101, /*->117624*/
/*117523*/      OPC_CheckChild0Type, MVT::v2f64,
/*117525*/      OPC_RecordChild1, // #1 = $src2
/*117526*/      OPC_Scope, 20, /*->117548*/ // 6 children in Scope
/*117528*/        OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*117530*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*117533*/        OPC_EmitMergeInputChains, 1, 7, 
/*117536*/        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)
/*117548*/      /*Scope*/ 20, /*->117569*/
/*117549*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*117551*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*117554*/        OPC_EmitMergeInputChains, 1, 7, 
/*117557*/        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)
/*117569*/      /*Scope*/ 20, /*->117590*/
/*117570*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*117572*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*117575*/        OPC_EmitMergeInputChains, 1, 7, 
/*117578*/        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)
/*117590*/      /*Scope*/ 10, /*->117601*/
/*117591*/        OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*117593*/        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)
/*117601*/      /*Scope*/ 10, /*->117612*/
/*117602*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*117604*/        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)
/*117612*/      /*Scope*/ 10, /*->117623*/
/*117613*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*117615*/        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)
/*117623*/      0, /*End of Scope*/
/*117624*/    0, /*End of Scope*/
/*117625*/  /*SwitchOpcode*/ 13|128,1/*141*/, TARGET_VAL(X86ISD::CVTS2UI),// ->117770
/*117629*/    OPC_RecordChild0, // #0 = $src
/*117630*/    OPC_Scope, 68, /*->117700*/ // 2 children in Scope
/*117632*/      OPC_CheckChild0Type, MVT::v4f32,
/*117634*/      OPC_SwitchType /*2 cases */, 30, MVT::i32,// ->117667
/*117637*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*117639*/        OPC_Scope, 17, /*->117658*/ // 2 children in Scope
/*117641*/          OPC_CheckComplexPat, /*CP*/2, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/*117644*/          OPC_EmitMergeInputChains, 1, 6, 
/*117647*/          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) - Complexity = 21
                    // Dst: (VCVTSS2USIZrm_Int:{ *:[i32] } sse_load_f32:{ *:[v4f32] }:$src)
/*117658*/        /*Scope*/ 7, /*->117666*/
/*117659*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSS2USIZrr_Int), 0,
                        MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (X86cvts2usi:{ *:[i32] } VR128X:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (VCVTSS2USIZrr_Int:{ *:[i32] } VR128X:{ *:[v4f32] }:$src)
/*117666*/        0, /*End of Scope*/
/*117667*/      /*SwitchType*/ 30, MVT::i64,// ->117699
/*117669*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*117671*/        OPC_Scope, 17, /*->117690*/ // 2 children in Scope
/*117673*/          OPC_CheckComplexPat, /*CP*/2, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/*117676*/          OPC_EmitMergeInputChains, 1, 6, 
/*117679*/          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) - Complexity = 21
                    // Dst: (VCVTSS2USI64Zrm_Int:{ *:[i64] } sse_load_f32:{ *:[v4f32] }:$src)
/*117690*/        /*Scope*/ 7, /*->117698*/
/*117691*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSS2USI64Zrr_Int), 0,
                        MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (X86cvts2usi:{ *:[i64] } VR128X:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (VCVTSS2USI64Zrr_Int:{ *:[i64] } VR128X:{ *:[v4f32] }:$src)
/*117698*/        0, /*End of Scope*/
/*117699*/      0, // EndSwitchType
/*117700*/    /*Scope*/ 68, /*->117769*/
/*117701*/      OPC_CheckChild0Type, MVT::v2f64,
/*117703*/      OPC_SwitchType /*2 cases */, 30, MVT::i32,// ->117736
/*117706*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*117708*/        OPC_Scope, 17, /*->117727*/ // 2 children in Scope
/*117710*/          OPC_CheckComplexPat, /*CP*/3, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/*117713*/          OPC_EmitMergeInputChains, 1, 6, 
/*117716*/          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) - Complexity = 21
                    // Dst: (VCVTSD2USIZrm_Int:{ *:[i32] } sse_load_f64:{ *:[v2f64] }:$src)
/*117727*/        /*Scope*/ 7, /*->117735*/
/*117728*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSD2USIZrr_Int), 0,
                        MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (X86cvts2usi:{ *:[i32] } VR128X:{ *:[v2f64] }:$src) - Complexity = 3
                    // Dst: (VCVTSD2USIZrr_Int:{ *:[i32] } VR128X:{ *:[v2f64] }:$src)
/*117735*/        0, /*End of Scope*/
/*117736*/      /*SwitchType*/ 30, MVT::i64,// ->117768
/*117738*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*117740*/        OPC_Scope, 17, /*->117759*/ // 2 children in Scope
/*117742*/          OPC_CheckComplexPat, /*CP*/3, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/*117745*/          OPC_EmitMergeInputChains, 1, 6, 
/*117748*/          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) - Complexity = 21
                    // Dst: (VCVTSD2USI64Zrm_Int:{ *:[i64] } sse_load_f64:{ *:[v2f64] }:$src)
/*117759*/        /*Scope*/ 7, /*->117767*/
/*117760*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSD2USI64Zrr_Int), 0,
                        MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (X86cvts2usi:{ *:[i64] } VR128X:{ *:[v2f64] }:$src) - Complexity = 3
                    // Dst: (VCVTSD2USI64Zrr_Int:{ *:[i64] } VR128X:{ *:[v2f64] }:$src)
/*117767*/        0, /*End of Scope*/
/*117768*/      0, // EndSwitchType
/*117769*/    0, /*End of Scope*/
/*117770*/  /*SwitchOpcode*/ 13|128,1/*141*/, TARGET_VAL(X86ISD::CVTTS2UI),// ->117915
/*117774*/    OPC_RecordChild0, // #0 = $src
/*117775*/    OPC_Scope, 68, /*->117845*/ // 2 children in Scope
/*117777*/      OPC_CheckChild0Type, MVT::v4f32,
/*117779*/      OPC_SwitchType /*2 cases */, 30, MVT::i32,// ->117812
/*117782*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*117784*/        OPC_Scope, 17, /*->117803*/ // 2 children in Scope
/*117786*/          OPC_CheckComplexPat, /*CP*/2, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/*117789*/          OPC_EmitMergeInputChains, 1, 6, 
/*117792*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSS2USIZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                    // Src: (X86cvtts2UInt:{ *:[i32] } sse_load_f32:{ *:[v4f32] }:$src) - Complexity = 21
                    // Dst: (VCVTTSS2USIZrm_Int:{ *:[i32] } sse_load_f32:{ *:[v4f32] }:$src)
/*117803*/        /*Scope*/ 7, /*->117811*/
/*117804*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSS2USIZrr_Int), 0,
                        MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (X86cvtts2UInt:{ *:[i32] } VR128X:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (VCVTTSS2USIZrr_Int:{ *:[i32] } VR128X:{ *:[v4f32] }:$src)
/*117811*/        0, /*End of Scope*/
/*117812*/      /*SwitchType*/ 30, MVT::i64,// ->117844
/*117814*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*117816*/        OPC_Scope, 17, /*->117835*/ // 2 children in Scope
/*117818*/          OPC_CheckComplexPat, /*CP*/2, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/*117821*/          OPC_EmitMergeInputChains, 1, 6, 
/*117824*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSS2USI64Zrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i64, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                    // Src: (X86cvtts2UInt:{ *:[i64] } sse_load_f32:{ *:[v4f32] }:$src) - Complexity = 21
                    // Dst: (VCVTTSS2USI64Zrm_Int:{ *:[i64] } sse_load_f32:{ *:[v4f32] }:$src)
/*117835*/        /*Scope*/ 7, /*->117843*/
/*117836*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSS2USI64Zrr_Int), 0,
                        MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (X86cvtts2UInt:{ *:[i64] } VR128X:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (VCVTTSS2USI64Zrr_Int:{ *:[i64] } VR128X:{ *:[v4f32] }:$src)
/*117843*/        0, /*End of Scope*/
/*117844*/      0, // EndSwitchType
/*117845*/    /*Scope*/ 68, /*->117914*/
/*117846*/      OPC_CheckChild0Type, MVT::v2f64,
/*117848*/      OPC_SwitchType /*2 cases */, 30, MVT::i32,// ->117881
/*117851*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*117853*/        OPC_Scope, 17, /*->117872*/ // 2 children in Scope
/*117855*/          OPC_CheckComplexPat, /*CP*/3, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/*117858*/          OPC_EmitMergeInputChains, 1, 6, 
/*117861*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSD2USIZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                    // Src: (X86cvtts2UInt:{ *:[i32] } sse_load_f64:{ *:[v2f64] }:$src) - Complexity = 21
                    // Dst: (VCVTTSD2USIZrm_Int:{ *:[i32] } sse_load_f64:{ *:[v2f64] }:$src)
/*117872*/        /*Scope*/ 7, /*->117880*/
/*117873*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSD2USIZrr_Int), 0,
                        MVT::i32, 1/*#Ops*/, 0, 
                    // Src: (X86cvtts2UInt:{ *:[i32] } VR128X:{ *:[v2f64] }:$src) - Complexity = 3
                    // Dst: (VCVTTSD2USIZrr_Int:{ *:[i32] } VR128X:{ *:[v2f64] }:$src)
/*117880*/        0, /*End of Scope*/
/*117881*/      /*SwitchType*/ 30, MVT::i64,// ->117913
/*117883*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*117885*/        OPC_Scope, 17, /*->117904*/ // 2 children in Scope
/*117887*/          OPC_CheckComplexPat, /*CP*/3, /*#*/0, // selectScalarSSELoad:$src #1 #2 #3 #4 #5 + chain result
/*117890*/          OPC_EmitMergeInputChains, 1, 6, 
/*117893*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSD2USI64Zrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i64, 5/*#Ops*/, 1, 2, 3, 4, 5, 
                    // Src: (X86cvtts2UInt:{ *:[i64] } sse_load_f64:{ *:[v2f64] }:$src) - Complexity = 21
                    // Dst: (VCVTTSD2USI64Zrm_Int:{ *:[i64] } sse_load_f64:{ *:[v2f64] }:$src)
/*117904*/        /*Scope*/ 7, /*->117912*/
/*117905*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSD2USI64Zrr_Int), 0,
                        MVT::i64, 1/*#Ops*/, 0, 
                    // Src: (X86cvtts2UInt:{ *:[i64] } VR128X:{ *:[v2f64] }:$src) - Complexity = 3
                    // Dst: (VCVTTSD2USI64Zrr_Int:{ *:[i64] } VR128X:{ *:[v2f64] }:$src)
/*117912*/        0, /*End of Scope*/
/*117913*/      0, // EndSwitchType
/*117914*/    0, /*End of Scope*/
/*117915*/  /*SwitchOpcode*/ 42, TARGET_VAL(X86ISD::EH_SJLJ_SETJMP),// ->117960
/*117918*/    OPC_RecordNode, // #0 = 'X86eh_sjlj_setjmp' chained node
/*117919*/    OPC_RecordChild1, // #1 = $buf
/*117920*/    OPC_CheckType, MVT::i32,
/*117922*/    OPC_Scope, 17, /*->117941*/ // 2 children in Scope
/*117924*/      OPC_CheckPatternPredicate, 99, // (!Subtarget->is64Bit())
/*117926*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$buf #2 #3 #4 #5 #6
/*117929*/      OPC_EmitMergeInputChains1_0,
/*117930*/      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)
/*117941*/    /*Scope*/ 17, /*->117959*/
/*117942*/      OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*117944*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$buf #2 #3 #4 #5 #6
/*117947*/      OPC_EmitMergeInputChains1_0,
/*117948*/      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)
/*117959*/    0, /*End of Scope*/
/*117960*/  /*SwitchOpcode*/ 38, TARGET_VAL(X86ISD::EH_SJLJ_LONGJMP),// ->118001
/*117963*/    OPC_RecordNode, // #0 = 'X86eh_sjlj_longjmp' chained node
/*117964*/    OPC_RecordChild1, // #1 = $buf
/*117965*/    OPC_Scope, 16, /*->117983*/ // 2 children in Scope
/*117967*/      OPC_CheckPatternPredicate, 99, // (!Subtarget->is64Bit())
/*117969*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$buf #2 #3 #4 #5 #6
/*117972*/      OPC_EmitMergeInputChains1_0,
/*117973*/      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)
/*117983*/    /*Scope*/ 16, /*->118000*/
/*117984*/      OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*117986*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$buf #2 #3 #4 #5 #6
/*117989*/      OPC_EmitMergeInputChains1_0,
/*117990*/      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)
/*118000*/    0, /*End of Scope*/
/*118001*/  /*SwitchOpcode*/ 45, TARGET_VAL(X86ISD::TLSADDR),// ->118049
/*118004*/    OPC_RecordNode, // #0 = 'X86tlsaddr' chained node
/*118005*/    OPC_CaptureGlueInput,
/*118006*/    OPC_RecordChild1, // #1 = $sym
/*118007*/    OPC_Scope, 19, /*->118028*/ // 2 children in Scope
/*118009*/      OPC_CheckChild1Type, MVT::i32,
/*118011*/      OPC_CheckPatternPredicate, 99, // (!Subtarget->is64Bit())
/*118013*/      OPC_CheckComplexPat, /*CP*/7, /*#*/1, // selectTLSADDRAddr:$sym #2 #3 #4 #5 #6
/*118016*/      OPC_EmitMergeInputChains1_0,
/*118017*/      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)
/*118028*/    /*Scope*/ 19, /*->118048*/
/*118029*/      OPC_CheckChild1Type, MVT::i64,
/*118031*/      OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*118033*/      OPC_CheckComplexPat, /*CP*/8, /*#*/1, // selectTLSADDRAddr:$sym #2 #3 #4 #5 #6
/*118036*/      OPC_EmitMergeInputChains1_0,
/*118037*/      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)
/*118048*/    0, /*End of Scope*/
/*118049*/  /*SwitchOpcode*/ 45, TARGET_VAL(X86ISD::TLSBASEADDR),// ->118097
/*118052*/    OPC_RecordNode, // #0 = 'X86tlsbaseaddr' chained node
/*118053*/    OPC_CaptureGlueInput,
/*118054*/    OPC_RecordChild1, // #1 = $sym
/*118055*/    OPC_Scope, 19, /*->118076*/ // 2 children in Scope
/*118057*/      OPC_CheckChild1Type, MVT::i32,
/*118059*/      OPC_CheckPatternPredicate, 99, // (!Subtarget->is64Bit())
/*118061*/      OPC_CheckComplexPat, /*CP*/9, /*#*/1, // selectTLSADDRAddr:$sym #2 #3 #4 #5 #6
/*118064*/      OPC_EmitMergeInputChains1_0,
/*118065*/      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)
/*118076*/    /*Scope*/ 19, /*->118096*/
/*118077*/      OPC_CheckChild1Type, MVT::i64,
/*118079*/      OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*118081*/      OPC_CheckComplexPat, /*CP*/10, /*#*/1, // selectTLSADDRAddr:$sym #2 #3 #4 #5 #6
/*118084*/      OPC_EmitMergeInputChains1_0,
/*118085*/      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)
/*118096*/    0, /*End of Scope*/
/*118097*/  /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::TLSCALL),// ->118143
/*118100*/    OPC_RecordNode, // #0 = 'X86TLSCall' chained node
/*118101*/    OPC_CaptureGlueInput,
/*118102*/    OPC_RecordChild1, // #1 = $sym
/*118103*/    OPC_CheckChild1Type, MVT::iPTR,
/*118105*/    OPC_Scope, 17, /*->118124*/ // 2 children in Scope
/*118107*/      OPC_CheckPatternPredicate, 99, // (!Subtarget->is64Bit())
/*118109*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$sym #2 #3 #4 #5 #6
/*118112*/      OPC_EmitMergeInputChains1_0,
/*118113*/      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)
/*118124*/    /*Scope*/ 17, /*->118142*/
/*118125*/      OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*118127*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$sym #2 #3 #4 #5 #6
/*118130*/      OPC_EmitMergeInputChains1_0,
/*118131*/      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)
/*118142*/    0, /*End of Scope*/
/*118143*/  /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::LCMPXCHG8_DAG),// ->118167
/*118146*/    OPC_RecordMemRef,
/*118147*/    OPC_RecordNode, // #0 = 'X86cas8' chained node
/*118148*/    OPC_CaptureGlueInput,
/*118149*/    OPC_RecordChild1, // #1 = $ptr
/*118150*/    OPC_CheckPatternPredicate, 154, // (Subtarget->hasCmpxchg8b())
/*118152*/    OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #2 #3 #4 #5 #6
/*118155*/    OPC_EmitMergeInputChains1_0,
/*118156*/    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)
/*118167*/  /*SwitchOpcode*/ 26, TARGET_VAL(X86ISD::LCMPXCHG8_SAVE_EBX_DAG),// ->118196
/*118170*/    OPC_RecordMemRef,
/*118171*/    OPC_RecordNode, // #0 = 'X86cas8save_ebx' chained node
/*118172*/    OPC_CaptureGlueInput,
/*118173*/    OPC_RecordChild1, // #1 = $ptr
/*118174*/    OPC_RecordChild2, // #2 = $ebx_input
/*118175*/    OPC_RecordChild3, // #3 = $ebx_save
/*118176*/    OPC_CheckPatternPredicate, 154, // (Subtarget->hasCmpxchg8b())
/*118178*/    OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*118181*/    OPC_EmitMergeInputChains1_0,
/*118182*/    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)
/*118196*/  /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::LCMPXCHG16_DAG),// ->118220
/*118199*/    OPC_RecordMemRef,
/*118200*/    OPC_RecordNode, // #0 = 'X86cas16' chained node
/*118201*/    OPC_CaptureGlueInput,
/*118202*/    OPC_RecordChild1, // #1 = $ptr
/*118203*/    OPC_CheckPatternPredicate, 155, // (Subtarget->hasCmpxchg16b()) && (Subtarget->is64Bit())
/*118205*/    OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #2 #3 #4 #5 #6
/*118208*/    OPC_EmitMergeInputChains1_0,
/*118209*/    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)
/*118220*/  /*SwitchOpcode*/ 26, TARGET_VAL(X86ISD::LCMPXCHG16_SAVE_RBX_DAG),// ->118249
/*118223*/    OPC_RecordMemRef,
/*118224*/    OPC_RecordNode, // #0 = 'X86cas16save_rbx' chained node
/*118225*/    OPC_CaptureGlueInput,
/*118226*/    OPC_RecordChild1, // #1 = $ptr
/*118227*/    OPC_RecordChild2, // #2 = $rbx_input
/*118228*/    OPC_RecordChild3, // #3 = $rbx_save
/*118229*/    OPC_CheckPatternPredicate, 155, // (Subtarget->hasCmpxchg16b()) && (Subtarget->is64Bit())
/*118231*/    OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*118234*/    OPC_EmitMergeInputChains1_0,
/*118235*/    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)
/*118249*/  /*SwitchOpcode*/ 57, TARGET_VAL(X86ISD::MUL_IMM),// ->118309
/*118252*/    OPC_RecordNode, // #0 = $src
/*118253*/    OPC_SwitchType /*2 cases */, 36, MVT::i32,// ->118292
/*118256*/      OPC_Scope, 16, /*->118274*/ // 2 children in Scope
/*118258*/        OPC_CheckPatternPredicate, 99, // (!Subtarget->is64Bit())
/*118260*/        OPC_CheckComplexPat, /*CP*/4, /*#*/0, // selectLEAAddr:$src #1 #2 #3 #4 #5
/*118263*/        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)
/*118274*/      /*Scope*/ 16, /*->118291*/
/*118275*/        OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*118277*/        OPC_CheckComplexPat, /*CP*/5, /*#*/0, // selectLEA64_32Addr:$src #1 #2 #3 #4 #5
/*118280*/        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)
/*118291*/      0, /*End of Scope*/
/*118292*/    /*SwitchType*/ 14, MVT::i64,// ->118308
/*118294*/      OPC_CheckComplexPat, /*CP*/6, /*#*/0, // selectLEAAddr:$src #1 #2 #3 #4 #5
/*118297*/      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)
/*118308*/    0, // EndSwitchType
/*118309*/  /*SwitchOpcode*/ 57, TARGET_VAL(ISD::FrameIndex),// ->118369
/*118312*/    OPC_RecordNode, // #0 = $src
/*118313*/    OPC_SwitchType /*2 cases */, 36, MVT::i32,// ->118352
/*118316*/      OPC_Scope, 16, /*->118334*/ // 2 children in Scope
/*118318*/        OPC_CheckPatternPredicate, 99, // (!Subtarget->is64Bit())
/*118320*/        OPC_CheckComplexPat, /*CP*/4, /*#*/0, // selectLEAAddr:$src #1 #2 #3 #4 #5
/*118323*/        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)
/*118334*/      /*Scope*/ 16, /*->118351*/
/*118335*/        OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*118337*/        OPC_CheckComplexPat, /*CP*/5, /*#*/0, // selectLEA64_32Addr:$src #1 #2 #3 #4 #5
/*118340*/        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)
/*118351*/      0, /*End of Scope*/
/*118352*/    /*SwitchType*/ 14, MVT::i64,// ->118368
/*118354*/      OPC_CheckComplexPat, /*CP*/6, /*#*/0, // selectLEAAddr:$src #1 #2 #3 #4 #5
/*118357*/      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)
/*118368*/    0, // EndSwitchType
/*118369*/  /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::WrapperRIP),// ->118409
/*118372*/    OPC_RecordNode, // #0 = $src
/*118373*/    OPC_SwitchType /*2 cases */, 16, MVT::i32,// ->118392
/*118376*/      OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*118378*/      OPC_CheckComplexPat, /*CP*/5, /*#*/0, // selectLEA64_32Addr:$src #1 #2 #3 #4 #5
/*118381*/      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)
/*118392*/    /*SwitchType*/ 14, MVT::i64,// ->118408
/*118394*/      OPC_CheckComplexPat, /*CP*/6, /*#*/0, // selectLEAAddr:$src #1 #2 #3 #4 #5
/*118397*/      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)
/*118408*/    0, // EndSwitchType
/*118409*/  /*SwitchOpcode*/ 69|128,5/*709*/, TARGET_VAL(ISD::TRUNCATE),// ->119122
/*118413*/    OPC_Scope, 4|128,2/*260*/, /*->118676*/ // 4 children in Scope
/*118416*/      OPC_MoveChild0,
/*118417*/      OPC_SwitchOpcode /*4 cases */, 81, TARGET_VAL(ISD::SRL),// ->118502
/*118421*/        OPC_Scope, 32, /*->118455*/ // 2 children in Scope
/*118423*/          OPC_MoveChild0,
/*118424*/          OPC_CheckOpcode, TARGET_VAL(ISD::ANY_EXTEND),
/*118427*/          OPC_RecordChild0, // #0 = $src
/*118428*/          OPC_CheckChild0Type, MVT::i16,
/*118430*/          OPC_MoveParent,
/*118431*/          OPC_CheckChild1Integer, 8, 
/*118433*/          OPC_CheckChild1Type, MVT::i8,
/*118435*/          OPC_CheckPredicate, 17, // Predicate_srl_su
/*118437*/          OPC_CheckType, MVT::i32,
/*118439*/          OPC_MoveParent,
/*118440*/          OPC_CheckType, MVT::i8,
/*118442*/          OPC_CheckPatternPredicate, 99, // (!Subtarget->is64Bit())
/*118444*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
/*118447*/          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] })
/*118455*/        /*Scope*/ 45, /*->118501*/
/*118456*/          OPC_RecordChild0, // #0 = $src
/*118457*/          OPC_CheckChild1Integer, 8, 
/*118459*/          OPC_CheckChild1Type, MVT::i8,
/*118461*/          OPC_CheckPredicate, 17, // Predicate_srl_su
/*118463*/          OPC_SwitchType /*2 cases */, 16, MVT::i16,// ->118482
/*118466*/            OPC_MoveParent,
/*118467*/            OPC_CheckType, MVT::i8,
/*118469*/            OPC_CheckPatternPredicate, 99, // (!Subtarget->is64Bit())
/*118471*/            OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
/*118474*/            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] })
/*118482*/          /*SwitchType*/ 16, MVT::i32,// ->118500
/*118484*/            OPC_MoveParent,
/*118485*/            OPC_CheckType, MVT::i8,
/*118487*/            OPC_CheckPatternPredicate, 99, // (!Subtarget->is64Bit())
/*118489*/            OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
/*118492*/            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] })
/*118500*/          0, // EndSwitchType
/*118501*/        0, /*End of Scope*/
/*118502*/      /*SwitchOpcode*/ 56, TARGET_VAL(X86ISD::STRICT_FCMP),// ->118561
/*118505*/        OPC_RecordNode, // #0 = 'X86strict_fcmp' chained node
/*118506*/        OPC_RecordChild1, // #1 = $lhs
/*118507*/        OPC_Scope, 17, /*->118526*/ // 3 children in Scope
/*118509*/          OPC_CheckChild1Type, MVT::f32,
/*118511*/          OPC_RecordChild2, // #2 = $rhs
/*118512*/          OPC_MoveParent,
/*118513*/          OPC_CheckType, MVT::i16,
/*118515*/          OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*118517*/          OPC_EmitMergeInputChains1_0,
/*118518*/          OPC_MorphNodeTo1, TARGET_VAL(X86::UCOM_Fpr32), 0|OPFL_Chain,
                        MVT::i16, 2/*#Ops*/, 1, 2, 
                    // Src: (trunc:{ *:[i16] } (X86strict_fcmp:{ *:[i32] } RFP32:{ *:[f32] }:$lhs, RFP32:{ *:[f32] }:$rhs)) - Complexity = 6
                    // Dst: (UCOM_Fpr32:{ *:[i16] } RFP32:{ *:[f32] }:$lhs, RFP32:{ *:[f32] }:$rhs)
/*118526*/        /*Scope*/ 17, /*->118544*/
/*118527*/          OPC_CheckChild1Type, MVT::f64,
/*118529*/          OPC_RecordChild2, // #2 = $rhs
/*118530*/          OPC_MoveParent,
/*118531*/          OPC_CheckType, MVT::i16,
/*118533*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*118535*/          OPC_EmitMergeInputChains1_0,
/*118536*/          OPC_MorphNodeTo1, TARGET_VAL(X86::UCOM_Fpr64), 0|OPFL_Chain,
                        MVT::i16, 2/*#Ops*/, 1, 2, 
                    // Src: (trunc:{ *:[i16] } (X86strict_fcmp:{ *:[i32] } RFP64:{ *:[f64] }:$lhs, RFP64:{ *:[f64] }:$rhs)) - Complexity = 6
                    // Dst: (UCOM_Fpr64:{ *:[i16] } RFP64:{ *:[f64] }:$lhs, RFP64:{ *:[f64] }:$rhs)
/*118544*/        /*Scope*/ 15, /*->118560*/
/*118545*/          OPC_CheckChild1Type, MVT::f80,
/*118547*/          OPC_RecordChild2, // #2 = $rhs
/*118548*/          OPC_MoveParent,
/*118549*/          OPC_CheckType, MVT::i16,
/*118551*/          OPC_EmitMergeInputChains1_0,
/*118552*/          OPC_MorphNodeTo1, TARGET_VAL(X86::UCOM_Fpr80), 0|OPFL_Chain,
                        MVT::i16, 2/*#Ops*/, 1, 2, 
                    // Src: (trunc:{ *:[i16] } (X86strict_fcmp:{ *:[i32] } RFP80:{ *:[f80] }:$lhs, RFP80:{ *:[f80] }:$rhs)) - Complexity = 6
                    // Dst: (UCOM_Fpr80:{ *:[i16] } RFP80:{ *:[f80] }:$lhs, RFP80:{ *:[f80] }:$rhs)
/*118560*/        0, /*End of Scope*/
/*118561*/      /*SwitchOpcode*/ 52, TARGET_VAL(X86ISD::CMP),// ->118616
/*118564*/        OPC_RecordChild0, // #0 = $lhs
/*118565*/        OPC_Scope, 16, /*->118583*/ // 3 children in Scope
/*118567*/          OPC_CheckChild0Type, MVT::f32,
/*118569*/          OPC_RecordChild1, // #1 = $rhs
/*118570*/          OPC_MoveParent,
/*118571*/          OPC_CheckType, MVT::i16,
/*118573*/          OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*118575*/          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)
/*118583*/        /*Scope*/ 16, /*->118600*/
/*118584*/          OPC_CheckChild0Type, MVT::f64,
/*118586*/          OPC_RecordChild1, // #1 = $rhs
/*118587*/          OPC_MoveParent,
/*118588*/          OPC_CheckType, MVT::i16,
/*118590*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*118592*/          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)
/*118600*/        /*Scope*/ 14, /*->118615*/
/*118601*/          OPC_CheckChild0Type, MVT::f80,
/*118603*/          OPC_RecordChild1, // #1 = $rhs
/*118604*/          OPC_MoveParent,
/*118605*/          OPC_CheckType, MVT::i16,
/*118607*/          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)
/*118615*/        0, /*End of Scope*/
/*118616*/      /*SwitchOpcode*/ 56, TARGET_VAL(X86ISD::STRICT_FCMPS),// ->118675
/*118619*/        OPC_RecordNode, // #0 = 'X86strict_fcmps' chained node
/*118620*/        OPC_RecordChild1, // #1 = $lhs
/*118621*/        OPC_Scope, 17, /*->118640*/ // 3 children in Scope
/*118623*/          OPC_CheckChild1Type, MVT::f32,
/*118625*/          OPC_RecordChild2, // #2 = $rhs
/*118626*/          OPC_MoveParent,
/*118627*/          OPC_CheckType, MVT::i16,
/*118629*/          OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*118631*/          OPC_EmitMergeInputChains1_0,
/*118632*/          OPC_MorphNodeTo1, TARGET_VAL(X86::COM_Fpr32), 0|OPFL_Chain,
                        MVT::i16, 2/*#Ops*/, 1, 2, 
                    // Src: (trunc:{ *:[i16] } (X86strict_fcmps:{ *:[i32] } RFP32:{ *:[f32] }:$lhs, RFP32:{ *:[f32] }:$rhs)) - Complexity = 6
                    // Dst: (COM_Fpr32:{ *:[i16] } RFP32:{ *:[f32] }:$lhs, RFP32:{ *:[f32] }:$rhs)
/*118640*/        /*Scope*/ 17, /*->118658*/
/*118641*/          OPC_CheckChild1Type, MVT::f64,
/*118643*/          OPC_RecordChild2, // #2 = $rhs
/*118644*/          OPC_MoveParent,
/*118645*/          OPC_CheckType, MVT::i16,
/*118647*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*118649*/          OPC_EmitMergeInputChains1_0,
/*118650*/          OPC_MorphNodeTo1, TARGET_VAL(X86::COM_Fpr64), 0|OPFL_Chain,
                        MVT::i16, 2/*#Ops*/, 1, 2, 
                    // Src: (trunc:{ *:[i16] } (X86strict_fcmps:{ *:[i32] } RFP64:{ *:[f64] }:$lhs, RFP64:{ *:[f64] }:$rhs)) - Complexity = 6
                    // Dst: (COM_Fpr64:{ *:[i16] } RFP64:{ *:[f64] }:$lhs, RFP64:{ *:[f64] }:$rhs)
/*118658*/        /*Scope*/ 15, /*->118674*/
/*118659*/          OPC_CheckChild1Type, MVT::f80,
/*118661*/          OPC_RecordChild2, // #2 = $rhs
/*118662*/          OPC_MoveParent,
/*118663*/          OPC_CheckType, MVT::i16,
/*118665*/          OPC_EmitMergeInputChains1_0,
/*118666*/          OPC_MorphNodeTo1, TARGET_VAL(X86::COM_Fpr80), 0|OPFL_Chain,
                        MVT::i16, 2/*#Ops*/, 1, 2, 
                    // Src: (trunc:{ *:[i16] } (X86strict_fcmps:{ *:[i32] } RFP80:{ *:[f80] }:$lhs, RFP80:{ *:[f80] }:$rhs)) - Complexity = 6
                    // Dst: (COM_Fpr80:{ *:[i16] } RFP80:{ *:[f80] }:$lhs, RFP80:{ *:[f80] }:$rhs)
/*118674*/        0, /*End of Scope*/
/*118675*/      0, // EndSwitchOpcode
/*118676*/    /*Scope*/ 26|128,1/*154*/, /*->118832*/
/*118678*/      OPC_RecordChild0, // #0 = $src
/*118679*/      OPC_SwitchType /*3 cases */, 30, MVT::i16,// ->118712
/*118682*/        OPC_Scope, 13, /*->118697*/ // 2 children in Scope
/*118684*/          OPC_CheckChild0Type, MVT::i32,
/*118686*/          OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*118689*/          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] })
/*118697*/        /*Scope*/ 13, /*->118711*/
/*118698*/          OPC_CheckChild0Type, MVT::i64,
/*118700*/          OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*118703*/          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] })
/*118711*/        0, /*End of Scope*/
/*118712*/      /*SwitchType*/ 11, MVT::i32,// ->118725
/*118714*/        OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*118717*/        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] })
/*118725*/      /*SwitchType*/ 104, MVT::i8,// ->118831
/*118727*/        OPC_Scope, 13, /*->118742*/ // 3 children in Scope
/*118729*/          OPC_CheckChild0Type, MVT::i64,
/*118731*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*118734*/          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] })
/*118742*/        /*Scope*/ 43, /*->118786*/
/*118743*/          OPC_CheckChild0Type, MVT::i32,
/*118745*/          OPC_Scope, 13, /*->118760*/ // 2 children in Scope
/*118747*/            OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*118749*/            OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*118752*/            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] })
/*118760*/          /*Scope*/ 24, /*->118785*/
/*118761*/            OPC_CheckPatternPredicate, 99, // (!Subtarget->is64Bit())
/*118763*/            OPC_EmitInteger, MVT::i32, X86::GR32_ABCDRegClassID,
/*118766*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/*118774*/            OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*118777*/            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] })
/*118785*/          0, /*End of Scope*/
/*118786*/        /*Scope*/ 43, /*->118830*/
/*118787*/          OPC_CheckChild0Type, MVT::i16,
/*118789*/          OPC_Scope, 13, /*->118804*/ // 2 children in Scope
/*118791*/            OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*118793*/            OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*118796*/            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] })
/*118804*/          /*Scope*/ 24, /*->118829*/
/*118805*/            OPC_CheckPatternPredicate, 99, // (!Subtarget->is64Bit())
/*118807*/            OPC_EmitInteger, MVT::i32, X86::GR16_ABCDRegClassID,
/*118810*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::i16, 2/*#Ops*/, 0, 1,  // Results = #2
/*118818*/            OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*118821*/            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] })
/*118829*/          0, /*End of Scope*/
/*118830*/        0, /*End of Scope*/
/*118831*/      0, // EndSwitchType
/*118832*/    /*Scope*/ 40, /*->118873*/
/*118833*/      OPC_MoveChild0,
/*118834*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*118837*/      OPC_RecordMemRef,
/*118838*/      OPC_RecordNode, // #0 = 'ld' chained node
/*118839*/      OPC_RecordChild1, // #1 = $src
/*118840*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*118842*/      OPC_CheckPredicate, 9, // Predicate_load
/*118844*/      OPC_CheckType, MVT::v16i16,
/*118846*/      OPC_MoveParent,
/*118847*/      OPC_CheckType, MVT::v16i8,
/*118849*/      OPC_CheckPatternPredicate, 156, // (Subtarget->hasAVX512()) && (!Subtarget->hasBWI())
/*118851*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*118854*/      OPC_EmitMergeInputChains1_0,
/*118855*/      OPC_EmitNode1, TARGET_VAL(X86::VPMOVZXWDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v16i32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #7
/*118866*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVDBZrr), 0,
                    MVT::v16i8, 1/*#Ops*/, 7, 
                // Src: (trunc:{ *:[v16i8] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                // Dst: (VPMOVDBZrr:{ *:[v16i8] } (VPMOVZXWDZrm:{ *:[v16i32] } addr:{ *:[iPTR] }:$src))
/*118873*/    /*Scope*/ 118|128,1/*246*/, /*->119121*/
/*118875*/      OPC_RecordChild0, // #0 = $src
/*118876*/      OPC_SwitchType /*6 cases */, 68, MVT::v8i16,// ->118947
/*118879*/        OPC_Scope, 11, /*->118892*/ // 2 children in Scope
/*118881*/          OPC_CheckChild0Type, MVT::v8i64,
/*118883*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*118885*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVQWZrr), 0,
                        MVT::v8i16, 1/*#Ops*/, 0, 
                    // Src: (trunc:{ *:[v8i16] } VR512:{ *:[v8i64] }:$src) - Complexity = 3
                    // Dst: (VPMOVQWZrr:{ *:[v8i16] } VR512:{ *:[v8i64] }:$src)
/*118892*/        /*Scope*/ 53, /*->118946*/
/*118893*/          OPC_CheckChild0Type, MVT::v8i32,
/*118895*/          OPC_Scope, 9, /*->118906*/ // 2 children in Scope
/*118897*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*118899*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVDWZ256rr), 0,
                          MVT::v8i16, 1/*#Ops*/, 0, 
                      // Src: (trunc:{ *:[v8i16] } VR256X:{ *:[v8i32] }:$src) - Complexity = 3
                      // Dst: (VPMOVDWZ256rr:{ *:[v8i16] } VR256X:{ *:[v8i32] }:$src)
/*118906*/          /*Scope*/ 38, /*->118945*/
/*118907*/            OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*118909*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #1
/*118915*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*118918*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*118927*/            OPC_EmitNode1, TARGET_VAL(X86::VPMOVDWZrr), 0,
                          MVT::v16i16, 1/*#Ops*/, 3,  // Results = #4
/*118934*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*118937*/            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] })
/*118945*/          0, /*End of Scope*/
/*118946*/        0, /*End of Scope*/
/*118947*/      /*SwitchType*/ 51, MVT::v4i32,// ->119000
/*118949*/        OPC_Scope, 9, /*->118960*/ // 2 children in Scope
/*118951*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*118953*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVQDZ256rr), 0,
                        MVT::v4i32, 1/*#Ops*/, 0, 
                    // Src: (trunc:{ *:[v4i32] } VR256X:{ *:[v4i64] }:$src) - Complexity = 3
                    // Dst: (VPMOVQDZ256rr:{ *:[v4i32] } VR256X:{ *:[v4i64] }:$src)
/*118960*/        /*Scope*/ 38, /*->118999*/
/*118961*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*118963*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #1
/*118969*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*118972*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*118981*/          OPC_EmitNode1, TARGET_VAL(X86::VPMOVQDZrr), 0,
                        MVT::v8i32, 1/*#Ops*/, 3,  // Results = #4
/*118988*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*118991*/          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] })
/*118999*/        0, /*End of Scope*/
/*119000*/      /*SwitchType*/ 9, MVT::v8i32,// ->119011
/*119002*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*119004*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVQDZrr), 0,
                      MVT::v8i32, 1/*#Ops*/, 0, 
                  // Src: (trunc:{ *:[v8i32] } VR512:{ *:[v8i64] }:$src) - Complexity = 3
                  // Dst: (VPMOVQDZrr:{ *:[v8i32] } VR512:{ *:[v8i64] }:$src)
/*119011*/      /*SwitchType*/ 85, MVT::v16i8,// ->119098
/*119013*/        OPC_Scope, 11, /*->119026*/ // 2 children in Scope
/*119015*/          OPC_CheckChild0Type, MVT::v16i32,
/*119017*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*119019*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVDBZrr), 0,
                        MVT::v16i8, 1/*#Ops*/, 0, 
                    // Src: (trunc:{ *:[v16i8] } VR512:{ *:[v16i32] }:$src) - Complexity = 3
                    // Dst: (VPMOVDBZrr:{ *:[v16i8] } VR512:{ *:[v16i32] }:$src)
/*119026*/        /*Scope*/ 70, /*->119097*/
/*119027*/          OPC_CheckChild0Type, MVT::v16i16,
/*119029*/          OPC_Scope, 9, /*->119040*/ // 3 children in Scope
/*119031*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*119033*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVWBZ256rr), 0,
                          MVT::v16i8, 1/*#Ops*/, 0, 
                      // Src: (trunc:{ *:[v16i8] } VR256X:{ *:[v16i16] }:$src) - Complexity = 3
                      // Dst: (VPMOVWBZ256rr:{ *:[v16i8] } VR256X:{ *:[v16i16] }:$src)
/*119040*/          /*Scope*/ 16, /*->119057*/
/*119041*/            OPC_CheckPatternPredicate, 156, // (Subtarget->hasAVX512()) && (!Subtarget->hasBWI())
/*119043*/            OPC_EmitNode1, TARGET_VAL(X86::VPMOVZXWDZrr), 0,
                          MVT::v16i32, 1/*#Ops*/, 0,  // Results = #1
/*119050*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVDBZrr), 0,
                          MVT::v16i8, 1/*#Ops*/, 1, 
                      // Src: (trunc:{ *:[v16i8] } VR256X:{ *:[v16i16] }:$src) - Complexity = 3
                      // Dst: (VPMOVDBZrr:{ *:[v16i8] } (VPMOVZXWDZrr:{ *:[v16i32] } VR256X:{ *:[v16i16] }:$src))
/*119057*/          /*Scope*/ 38, /*->119096*/
/*119058*/            OPC_CheckPatternPredicate, 117, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/*119060*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #1
/*119066*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*119069*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*119078*/            OPC_EmitNode1, TARGET_VAL(X86::VPMOVWBZrr), 0,
                          MVT::v32i8, 1/*#Ops*/, 3,  // Results = #4
/*119085*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*119088*/            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] })
/*119096*/          0, /*End of Scope*/
/*119097*/        0, /*End of Scope*/
/*119098*/      /*SwitchType*/ 9, MVT::v16i16,// ->119109
/*119100*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*119102*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVDWZrr), 0,
                      MVT::v16i16, 1/*#Ops*/, 0, 
                  // Src: (trunc:{ *:[v16i16] } VR512:{ *:[v16i32] }:$src) - Complexity = 3
                  // Dst: (VPMOVDWZrr:{ *:[v16i16] } VR512:{ *:[v16i32] }:$src)
/*119109*/      /*SwitchType*/ 9, MVT::v32i8,// ->119120
/*119111*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*119113*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVWBZrr), 0,
                      MVT::v32i8, 1/*#Ops*/, 0, 
                  // Src: (trunc:{ *:[v32i8] } VR512:{ *:[v32i16] }:$src) - Complexity = 3
                  // Dst: (VPMOVWBZrr:{ *:[v32i8] } VR512:{ *:[v32i16] }:$src)
/*119120*/      0, // EndSwitchType
/*119121*/    0, /*End of Scope*/
/*119122*/  /*SwitchOpcode*/ 16|128,2/*272*/, TARGET_VAL(ISD::Constant),// ->119398
/*119126*/    OPC_Scope, 77, /*->119205*/ // 4 children in Scope
/*119128*/      OPC_CheckInteger, 0, 
/*119130*/      OPC_SwitchType /*4 cases */, 7, MVT::i32,// ->119140
/*119133*/        OPC_MorphNodeTo2, TARGET_VAL(X86::MOV32r0), 0,
                      MVT::i32, MVT::i32, 0/*#Ops*/, 
                  // Src: 0:{ *:[i32] } - Complexity = 15
                  // Dst: (MOV32r0:{ *:[i32] }:{ *:[i32] })
/*119140*/      /*SwitchType*/ 18, MVT::i8,// ->119160
/*119142*/        OPC_EmitNode2, TARGET_VAL(X86::MOV32r0), 0,
                      MVT::i32, MVT::i32, 0/*#Ops*/,  // Results = #0 #1
/*119149*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*119152*/        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] })
/*119160*/      /*SwitchType*/ 18, MVT::i16,// ->119180
/*119162*/        OPC_EmitNode2, TARGET_VAL(X86::MOV32r0), 0,
                      MVT::i32, MVT::i32, 0/*#Ops*/,  // Results = #0 #1
/*119169*/        OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*119172*/        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] })
/*119180*/      /*SwitchType*/ 22, MVT::i64,// ->119204
/*119182*/        OPC_EmitInteger, MVT::i64, 0, 
/*119185*/        OPC_EmitNode2, TARGET_VAL(X86::MOV32r0), 0,
                      MVT::i32, MVT::i32, 0/*#Ops*/,  // Results = #1 #2
/*119192*/        OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*119195*/        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] })
/*119204*/      0, // EndSwitchType
/*119205*/    /*Scope*/ 37, /*->119243*/
/*119206*/      OPC_CheckInteger, 1, 
/*119208*/      OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->119220
/*119211*/        OPC_CheckPatternPredicate, 157, // (!Subtarget->is64Bit()) && (shouldOptForSize(MF))
/*119213*/        OPC_MorphNodeTo2, TARGET_VAL(X86::MOV32r1), 0,
                      MVT::i32, MVT::i32, 0/*#Ops*/, 
                  // Src: 1:{ *:[i32] } - Complexity = 15
                  // Dst: (MOV32r1:{ *:[i32] }:{ *:[i32] })
/*119220*/      /*SwitchType*/ 20, MVT::i16,// ->119242
/*119222*/        OPC_CheckPatternPredicate, 157, // (!Subtarget->is64Bit()) && (shouldOptForSize(MF))
/*119224*/        OPC_EmitNode2, TARGET_VAL(X86::MOV32r1), 0,
                      MVT::i32, MVT::i32, 0/*#Ops*/,  // Results = #0 #1
/*119231*/        OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*119234*/        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] })
/*119242*/      0, // EndSwitchType
/*119243*/    /*Scope*/ 46, /*->119290*/
/*119244*/      OPC_CheckInteger, 127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551615*/, 
/*119255*/      OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->119267
/*119258*/        OPC_CheckPatternPredicate, 157, // (!Subtarget->is64Bit()) && (shouldOptForSize(MF))
/*119260*/        OPC_MorphNodeTo2, TARGET_VAL(X86::MOV32r_1), 0,
                      MVT::i32, MVT::i32, 0/*#Ops*/, 
                  // Src: -1:{ *:[i32] } - Complexity = 15
                  // Dst: (MOV32r_1:{ *:[i32] }:{ *:[i32] })
/*119267*/      /*SwitchType*/ 20, MVT::i16,// ->119289
/*119269*/        OPC_CheckPatternPredicate, 157, // (!Subtarget->is64Bit()) && (shouldOptForSize(MF))
/*119271*/        OPC_EmitNode2, TARGET_VAL(X86::MOV32r_1), 0,
                      MVT::i32, MVT::i32, 0/*#Ops*/,  // Results = #0 #1
/*119278*/        OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*119281*/        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] })
/*119289*/      0, // EndSwitchType
/*119290*/    /*Scope*/ 106, /*->119397*/
/*119291*/      OPC_RecordNode, // #0 = $src
/*119292*/      OPC_SwitchType /*4 cases */, 27, MVT::i32,// ->119322
/*119295*/        OPC_Scope, 13, /*->119310*/ // 2 children in Scope
/*119297*/          OPC_CheckPredicate, 13, // Predicate_i32immSExt8
/*119299*/          OPC_CheckPatternPredicate, 158, // (!Subtarget->isTargetWin64() ||Subtarget->getFrameLowering()->hasFP(*MF)) && (MF->getFunction().hasMinSize())
/*119301*/          OPC_EmitConvertToTarget, 0,
/*119303*/          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)
/*119310*/        /*Scope*/ 10, /*->119321*/
/*119311*/          OPC_CheckComplexPat, /*CP*/1, /*#*/0, // selectRelocImm:$src #1
/*119314*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MOV32ri), 0,
                        MVT::i32, 1/*#Ops*/, 1, 
                    // Src: relocImm:{ *:[i32] }:$src - Complexity = 3
                    // Dst: (MOV32ri:{ *:[i32] } relocImm:{ *:[i32] }:$src)
/*119321*/        0, /*End of Scope*/
/*119322*/      /*SwitchType*/ 50, MVT::i64,// ->119374
/*119324*/        OPC_Scope, 13, /*->119339*/ // 4 children in Scope
/*119326*/          OPC_CheckPredicate, 13, // Predicate_i64immSExt8
/*119328*/          OPC_CheckPatternPredicate, 158, // (!Subtarget->isTargetWin64() ||Subtarget->getFrameLowering()->hasFP(*MF)) && (MF->getFunction().hasMinSize())
/*119330*/          OPC_EmitConvertToTarget, 0,
/*119332*/          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)
/*119339*/        /*Scope*/ 10, /*->119350*/
/*119340*/          OPC_CheckComplexPat, /*CP*/11, /*#*/0, // selectMOV64Imm32:$src #1
/*119343*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MOV32ri64), 0,
                        MVT::i64, 1/*#Ops*/, 1, 
                    // Src: mov64imm32:{ *:[i64] }:$src - Complexity = 6
                    // Dst: (MOV32ri64:{ *:[i64] } mov64imm32:{ *:[i64] }:$src)
/*119350*/        /*Scope*/ 11, /*->119362*/
/*119351*/          OPC_CheckPredicate, 38, // Predicate_i64immSExt32
/*119353*/          OPC_EmitConvertToTarget, 0,
/*119355*/          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)
/*119362*/        /*Scope*/ 10, /*->119373*/
/*119363*/          OPC_CheckComplexPat, /*CP*/1, /*#*/0, // selectRelocImm:$src #1
/*119366*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MOV64ri), 0,
                        MVT::i64, 1/*#Ops*/, 1, 
                    // Src: relocImm:{ *:[i64] }:$src - Complexity = 3
                    // Dst: (MOV64ri:{ *:[i64] } relocImm:{ *:[i64] }:$src)
/*119373*/        0, /*End of Scope*/
/*119374*/      /*SwitchType*/ 9, MVT::i8,// ->119385
/*119376*/        OPC_EmitConvertToTarget, 0,
/*119378*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MOV8ri), 0,
                      MVT::i8, 1/*#Ops*/, 1, 
                  // Src: (imm:{ *:[i8] }):$src - Complexity = 3
                  // Dst: (MOV8ri:{ *:[i8] } (imm:{ *:[i8] }):$src)
/*119385*/      /*SwitchType*/ 9, MVT::i16,// ->119396
/*119387*/        OPC_EmitConvertToTarget, 0,
/*119389*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MOV16ri), 0,
                      MVT::i16, 1/*#Ops*/, 1, 
                  // Src: (imm:{ *:[i16] }):$src - Complexity = 3
                  // Dst: (MOV16ri:{ *:[i16] } (imm:{ *:[i16] }):$src)
/*119396*/      0, // EndSwitchType
/*119397*/    0, /*End of Scope*/
/*119398*/  /*SwitchOpcode*/ 86|128,5/*726*/, TARGET_VAL(ISD::ZERO_EXTEND),// ->120128
/*119402*/    OPC_Scope, 35|128,1/*163*/, /*->119568*/ // 4 children in Scope
/*119405*/      OPC_MoveChild0,
/*119406*/      OPC_SwitchOpcode /*2 cases */, 67, TARGET_VAL(ISD::SRL),// ->119477
/*119410*/        OPC_RecordChild0, // #0 = $src
/*119411*/        OPC_CheckChild1Integer, 8, 
/*119413*/        OPC_CheckChild1Type, MVT::i8,
/*119415*/        OPC_CheckPredicate, 17, // Predicate_srl_su
/*119417*/        OPC_CheckType, MVT::i16,
/*119419*/        OPC_MoveParent,
/*119420*/        OPC_SwitchType /*2 cases */, 18, MVT::i32,// ->119441
/*119423*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
/*119426*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i8, 2/*#Ops*/, 0, 1,  // Results = #2
/*119434*/          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] }))
/*119441*/        /*SwitchType*/ 33, MVT::i64,// ->119476
/*119443*/          OPC_EmitInteger, MVT::i64, 0, 
/*119446*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
/*119449*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i8, 2/*#Ops*/, 0, 2,  // Results = #3
/*119457*/          OPC_EmitNode1, TARGET_VAL(X86::MOVZX32rr8_NOREX), 0,
                        MVT::i32, 1/*#Ops*/, 3,  // Results = #4
/*119464*/          OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*119467*/          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] })
/*119476*/        0, // EndSwitchType
/*119477*/      /*SwitchOpcode*/ 87, TARGET_VAL(ISD::BITCAST),// ->119567
/*119480*/        OPC_RecordChild0, // #0 = $src
/*119481*/        OPC_SwitchType /*2 cases */, 38, MVT::i16,// ->119522
/*119484*/          OPC_CheckChild0Type, MVT::v16i1,
/*119486*/          OPC_MoveParent,
/*119487*/          OPC_SwitchType /*2 cases */, 7, MVT::i32,// ->119497
/*119490*/            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)
/*119497*/          /*SwitchType*/ 22, MVT::i64,// ->119521
/*119499*/            OPC_EmitInteger, MVT::i64, 0, 
/*119502*/            OPC_EmitNode1, TARGET_VAL(X86::KMOVWrk), 0,
                          MVT::i32, 1/*#Ops*/, 0,  // Results = #2
/*119509*/            OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*119512*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                          MVT::i64, 3/*#Ops*/, 1, 2, 3, 
                      // Src: (zext:{ *:[i64] } (bitconvert:{ *:[i16] } VK16:{ *:[v16i1] }:$src)) - Complexity = 6
                      // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (KMOVWrk:{ *:[i32] } VK16:{ *:[v16i1] }:$src), sub_32bit:{ *:[i32] })
/*119521*/          0, // EndSwitchType
/*119522*/        /*SwitchType*/ 42, MVT::i8,// ->119566
/*119524*/          OPC_CheckChild0Type, MVT::v8i1,
/*119526*/          OPC_MoveParent,
/*119527*/          OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->119539
/*119530*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*119532*/            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)
/*119539*/          /*SwitchType*/ 24, MVT::i64,// ->119565
/*119541*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*119543*/            OPC_EmitInteger, MVT::i64, 0, 
/*119546*/            OPC_EmitNode1, TARGET_VAL(X86::KMOVBrk), 0,
                          MVT::i32, 1/*#Ops*/, 0,  // Results = #2
/*119553*/            OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*119556*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                          MVT::i64, 3/*#Ops*/, 1, 2, 3, 
                      // Src: (zext:{ *:[i64] } (bitconvert:{ *:[i8] } VK8:{ *:[v8i1] }:$src)) - Complexity = 6
                      // Dst: (SUBREG_TO_REG:{ *:[i64] } 0:{ *:[i64] }, (KMOVBrk:{ *:[i32] } VK8:{ *:[v8i1] }:$src), sub_32bit:{ *:[i32] })
/*119565*/          0, // EndSwitchType
/*119566*/        0, // EndSwitchType
/*119567*/      0, // EndSwitchOpcode
/*119568*/    /*Scope*/ 23|128,1/*151*/, /*->119721*/
/*119570*/      OPC_RecordChild0, // #0 = $src
/*119571*/      OPC_Scope, 23, /*->119596*/ // 5 children in Scope
/*119573*/        OPC_MoveChild0,
/*119574*/        OPC_CheckPredicate, 45, // Predicate_def32
/*119576*/        OPC_CheckType, MVT::i32,
/*119578*/        OPC_MoveParent,
/*119579*/        OPC_CheckType, MVT::i64,
/*119581*/        OPC_EmitInteger, MVT::i64, 0, 
/*119584*/        OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*119587*/        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] })
/*119596*/      /*Scope*/ 37, /*->119634*/
/*119597*/        OPC_CheckChild0Type, MVT::i8,
/*119599*/        OPC_SwitchType /*2 cases */, 7, MVT::i32,// ->119609
/*119602*/          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)
/*119609*/        /*SwitchType*/ 22, MVT::i64,// ->119633
/*119611*/          OPC_EmitInteger, MVT::i64, 0, 
/*119614*/          OPC_EmitNode1, TARGET_VAL(X86::MOVZX32rr8), 0,
                        MVT::i32, 1/*#Ops*/, 0,  // Results = #2
/*119621*/          OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*119624*/          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] })
/*119633*/        0, // EndSwitchType
/*119634*/      /*Scope*/ 37, /*->119672*/
/*119635*/        OPC_CheckChild0Type, MVT::i16,
/*119637*/        OPC_SwitchType /*2 cases */, 7, MVT::i32,// ->119647
/*119640*/          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)
/*119647*/        /*SwitchType*/ 22, MVT::i64,// ->119671
/*119649*/          OPC_EmitInteger, MVT::i64, 0, 
/*119652*/          OPC_EmitNode1, TARGET_VAL(X86::MOVZX32rr16), 0,
                        MVT::i32, 1/*#Ops*/, 0,  // Results = #2
/*119659*/          OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*119662*/          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] })
/*119671*/        0, // EndSwitchType
/*119672*/      /*Scope*/ 26, /*->119699*/
/*119673*/        OPC_CheckChild0Type, MVT::i32,
/*119675*/        OPC_CheckType, MVT::i64,
/*119677*/        OPC_EmitInteger, MVT::i64, 0, 
/*119680*/        OPC_EmitNode1, TARGET_VAL(X86::MOV32rr), 0,
                      MVT::i32, 1/*#Ops*/, 0,  // Results = #2
/*119687*/        OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*119690*/        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] })
/*119699*/      /*Scope*/ 20, /*->119720*/
/*119700*/        OPC_CheckType, MVT::i16,
/*119702*/        OPC_EmitNode1, TARGET_VAL(X86::MOVZX32rr8), 0,
                      MVT::i32, 1/*#Ops*/, 0,  // Results = #1
/*119709*/        OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*119712*/        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] })
/*119720*/      0, /*End of Scope*/
/*119721*/    /*Scope*/ 122|128,1/*250*/, /*->119973*/
/*119723*/      OPC_MoveChild0,
/*119724*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*119727*/      OPC_RecordMemRef,
/*119728*/      OPC_RecordNode, // #0 = 'ld' chained node
/*119729*/      OPC_RecordChild1, // #1 = $src
/*119730*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*119732*/      OPC_CheckPredicate, 9, // Predicate_load
/*119734*/      OPC_SwitchType /*6 cases */, 62, MVT::v16i8,// ->119799
/*119737*/        OPC_MoveParent,
/*119738*/        OPC_SwitchType /*2 cases */, 38, MVT::v16i16,// ->119779
/*119741*/          OPC_Scope, 17, /*->119760*/ // 2 children in Scope
/*119743*/            OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*119745*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*119748*/            OPC_EmitMergeInputChains1_0,
/*119749*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (zext:{ *:[v16i16] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMOVZXBWYrm:{ *:[v16i16] } addr:{ *:[iPTR] }:$src)
/*119760*/          /*Scope*/ 17, /*->119778*/
/*119761*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*119763*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*119766*/            OPC_EmitMergeInputChains1_0,
/*119767*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (zext:{ *:[v16i16] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMOVZXBWZ256rm:{ *:[v16i16] } addr:{ *:[iPTR] }:$src)
/*119778*/          0, /*End of Scope*/
/*119779*/        /*SwitchType*/ 17, MVT::v16i32,// ->119798
/*119781*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*119783*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*119786*/          OPC_EmitMergeInputChains1_0,
/*119787*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (zext:{ *:[v16i32] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPMOVZXBDZrm:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)
/*119798*/        0, // EndSwitchType
/*119799*/      /*SwitchType*/ 62, MVT::v8i16,// ->119863
/*119801*/        OPC_MoveParent,
/*119802*/        OPC_SwitchType /*2 cases */, 38, MVT::v8i32,// ->119843
/*119805*/          OPC_Scope, 17, /*->119824*/ // 2 children in Scope
/*119807*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*119809*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*119812*/            OPC_EmitMergeInputChains1_0,
/*119813*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (zext:{ *:[v8i32] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMOVZXWDYrm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*119824*/          /*Scope*/ 17, /*->119842*/
/*119825*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*119827*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*119830*/            OPC_EmitMergeInputChains1_0,
/*119831*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (zext:{ *:[v8i32] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMOVZXWDZ256rm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*119842*/          0, /*End of Scope*/
/*119843*/        /*SwitchType*/ 17, MVT::v8i64,// ->119862
/*119845*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*119847*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*119850*/          OPC_EmitMergeInputChains1_0,
/*119851*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (zext:{ *:[v8i64] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPMOVZXWQZrm:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*119862*/        0, // EndSwitchType
/*119863*/      /*SwitchType*/ 41, MVT::v4i32,// ->119906
/*119865*/        OPC_MoveParent,
/*119866*/        OPC_CheckType, MVT::v4i64,
/*119868*/        OPC_Scope, 17, /*->119887*/ // 2 children in Scope
/*119870*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*119872*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*119875*/          OPC_EmitMergeInputChains1_0,
/*119876*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXDQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (zext:{ *:[v4i64] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPMOVZXDQYrm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*119887*/        /*Scope*/ 17, /*->119905*/
/*119888*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*119890*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*119893*/          OPC_EmitMergeInputChains1_0,
/*119894*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXDQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (zext:{ *:[v4i64] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPMOVZXDQZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*119905*/        0, /*End of Scope*/
/*119906*/      /*SwitchType*/ 20, MVT::v32i8,// ->119928
/*119908*/        OPC_MoveParent,
/*119909*/        OPC_CheckType, MVT::v32i16,
/*119911*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*119913*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*119916*/        OPC_EmitMergeInputChains1_0,
/*119917*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v32i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (zext:{ *:[v32i16] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VPMOVZXBWZrm:{ *:[v32i16] } addr:{ *:[iPTR] }:$src)
/*119928*/      /*SwitchType*/ 20, MVT::v16i16,// ->119950
/*119930*/        OPC_MoveParent,
/*119931*/        OPC_CheckType, MVT::v16i32,
/*119933*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*119935*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*119938*/        OPC_EmitMergeInputChains1_0,
/*119939*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (zext:{ *:[v16i32] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VPMOVZXWDZrm:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)
/*119950*/      /*SwitchType*/ 20, MVT::v8i32,// ->119972
/*119952*/        OPC_MoveParent,
/*119953*/        OPC_CheckType, MVT::v8i64,
/*119955*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*119957*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*119960*/        OPC_EmitMergeInputChains1_0,
/*119961*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXDQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (zext:{ *:[v8i64] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VPMOVZXDQZrm:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*119972*/      0, // EndSwitchType
/*119973*/    /*Scope*/ 24|128,1/*152*/, /*->120127*/
/*119975*/      OPC_RecordChild0, // #0 = $src
/*119976*/      OPC_Scope, 39, /*->120017*/ // 6 children in Scope
/*119978*/        OPC_CheckChild0Type, MVT::v16i8,
/*119980*/        OPC_SwitchType /*2 cases */, 22, MVT::v16i16,// ->120005
/*119983*/          OPC_Scope, 9, /*->119994*/ // 2 children in Scope
/*119985*/            OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*119987*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBWYrr), 0,
                          MVT::v16i16, 1/*#Ops*/, 0, 
                      // Src: (zext:{ *:[v16i16] } VR128:{ *:[v16i8] }:$src) - Complexity = 3
                      // Dst: (VPMOVZXBWYrr:{ *:[v16i16] } VR128:{ *:[v16i8] }:$src)
/*119994*/          /*Scope*/ 9, /*->120004*/
/*119995*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*119997*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBWZ256rr), 0,
                          MVT::v16i16, 1/*#Ops*/, 0, 
                      // Src: (zext:{ *:[v16i16] } VR128X:{ *:[v16i8] }:$src) - Complexity = 3
                      // Dst: (VPMOVZXBWZ256rr:{ *:[v16i16] } VR128X:{ *:[v16i8] }:$src)
/*120004*/          0, /*End of Scope*/
/*120005*/        /*SwitchType*/ 9, MVT::v16i32,// ->120016
/*120007*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*120009*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBDZrr), 0,
                        MVT::v16i32, 1/*#Ops*/, 0, 
                    // Src: (zext:{ *:[v16i32] } VR128X:{ *:[v16i8] }:$src) - Complexity = 3
                    // Dst: (VPMOVZXBDZrr:{ *:[v16i32] } VR128X:{ *:[v16i8] }:$src)
/*120016*/        0, // EndSwitchType
/*120017*/      /*Scope*/ 39, /*->120057*/
/*120018*/        OPC_CheckChild0Type, MVT::v8i16,
/*120020*/        OPC_SwitchType /*2 cases */, 22, MVT::v8i32,// ->120045
/*120023*/          OPC_Scope, 9, /*->120034*/ // 2 children in Scope
/*120025*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*120027*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWDYrr), 0,
                          MVT::v8i32, 1/*#Ops*/, 0, 
                      // Src: (zext:{ *:[v8i32] } VR128:{ *:[v8i16] }:$src) - Complexity = 3
                      // Dst: (VPMOVZXWDYrr:{ *:[v8i32] } VR128:{ *:[v8i16] }:$src)
/*120034*/          /*Scope*/ 9, /*->120044*/
/*120035*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*120037*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWDZ256rr), 0,
                          MVT::v8i32, 1/*#Ops*/, 0, 
                      // Src: (zext:{ *:[v8i32] } VR128X:{ *:[v8i16] }:$src) - Complexity = 3
                      // Dst: (VPMOVZXWDZ256rr:{ *:[v8i32] } VR128X:{ *:[v8i16] }:$src)
/*120044*/          0, /*End of Scope*/
/*120045*/        /*SwitchType*/ 9, MVT::v8i64,// ->120056
/*120047*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*120049*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWQZrr), 0,
                        MVT::v8i64, 1/*#Ops*/, 0, 
                    // Src: (zext:{ *:[v8i64] } VR128X:{ *:[v8i16] }:$src) - Complexity = 3
                    // Dst: (VPMOVZXWQZrr:{ *:[v8i64] } VR128X:{ *:[v8i16] }:$src)
/*120056*/        0, // EndSwitchType
/*120057*/      /*Scope*/ 26, /*->120084*/
/*120058*/        OPC_CheckChild0Type, MVT::v4i32,
/*120060*/        OPC_CheckType, MVT::v4i64,
/*120062*/        OPC_Scope, 9, /*->120073*/ // 2 children in Scope
/*120064*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*120066*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXDQYrr), 0,
                        MVT::v4i64, 1/*#Ops*/, 0, 
                    // Src: (zext:{ *:[v4i64] } VR128:{ *:[v4i32] }:$src) - Complexity = 3
                    // Dst: (VPMOVZXDQYrr:{ *:[v4i64] } VR128:{ *:[v4i32] }:$src)
/*120073*/        /*Scope*/ 9, /*->120083*/
/*120074*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*120076*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXDQZ256rr), 0,
                        MVT::v4i64, 1/*#Ops*/, 0, 
                    // Src: (zext:{ *:[v4i64] } VR128X:{ *:[v4i32] }:$src) - Complexity = 3
                    // Dst: (VPMOVZXDQZ256rr:{ *:[v4i64] } VR128X:{ *:[v4i32] }:$src)
/*120083*/        0, /*End of Scope*/
/*120084*/      /*Scope*/ 13, /*->120098*/
/*120085*/        OPC_CheckChild0Type, MVT::v32i8,
/*120087*/        OPC_CheckType, MVT::v32i16,
/*120089*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*120091*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBWZrr), 0,
                      MVT::v32i16, 1/*#Ops*/, 0, 
                  // Src: (zext:{ *:[v32i16] } VR256X:{ *:[v32i8] }:$src) - Complexity = 3
                  // Dst: (VPMOVZXBWZrr:{ *:[v32i16] } VR256X:{ *:[v32i8] }:$src)
/*120098*/      /*Scope*/ 13, /*->120112*/
/*120099*/        OPC_CheckChild0Type, MVT::v16i16,
/*120101*/        OPC_CheckType, MVT::v16i32,
/*120103*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*120105*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWDZrr), 0,
                      MVT::v16i32, 1/*#Ops*/, 0, 
                  // Src: (zext:{ *:[v16i32] } VR256X:{ *:[v16i16] }:$src) - Complexity = 3
                  // Dst: (VPMOVZXWDZrr:{ *:[v16i32] } VR256X:{ *:[v16i16] }:$src)
/*120112*/      /*Scope*/ 13, /*->120126*/
/*120113*/        OPC_CheckChild0Type, MVT::v8i32,
/*120115*/        OPC_CheckType, MVT::v8i64,
/*120117*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*120119*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXDQZrr), 0,
                      MVT::v8i64, 1/*#Ops*/, 0, 
                  // Src: (zext:{ *:[v8i64] } VR256X:{ *:[v8i32] }:$src) - Complexity = 3
                  // Dst: (VPMOVZXDQZrr:{ *:[v8i64] } VR256X:{ *:[v8i32] }:$src)
/*120126*/      0, /*End of Scope*/
/*120127*/    0, /*End of Scope*/
/*120128*/  /*SwitchOpcode*/ 83|128,5/*723*/, TARGET_VAL(ISD::ANY_EXTEND),// ->120855
/*120132*/    OPC_Scope, 111|128,2/*367*/, /*->120502*/ // 2 children in Scope
/*120135*/      OPC_MoveChild0,
/*120136*/      OPC_SwitchOpcode /*4 cases */, 67, TARGET_VAL(ISD::SRL),// ->120207
/*120140*/        OPC_RecordChild0, // #0 = $src
/*120141*/        OPC_CheckChild1Integer, 8, 
/*120143*/        OPC_CheckChild1Type, MVT::i8,
/*120145*/        OPC_CheckPredicate, 17, // Predicate_srl_su
/*120147*/        OPC_CheckType, MVT::i16,
/*120149*/        OPC_MoveParent,
/*120150*/        OPC_SwitchType /*2 cases */, 18, MVT::i32,// ->120171
/*120153*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
/*120156*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i8, 2/*#Ops*/, 0, 1,  // Results = #2
/*120164*/          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] }))
/*120171*/        /*SwitchType*/ 33, MVT::i64,// ->120206
/*120173*/          OPC_EmitInteger, MVT::i64, 0, 
/*120176*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit_hi,
/*120179*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::i8, 2/*#Ops*/, 0, 2,  // Results = #3
/*120187*/          OPC_EmitNode1, TARGET_VAL(X86::MOVZX32rr8_NOREX), 0,
                        MVT::i32, 1/*#Ops*/, 3,  // Results = #4
/*120194*/          OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*120197*/          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] })
/*120206*/        0, // EndSwitchType
/*120207*/      /*SwitchOpcode*/ 22|128,1/*150*/, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->120361
/*120211*/        OPC_RecordChild0, // #0 = $src
/*120212*/        OPC_Scope, 20, /*->120234*/ // 7 children in Scope
/*120214*/          OPC_CheckChild0Type, MVT::v1i1,
/*120216*/          OPC_CheckChild1Integer, 0, 
/*120218*/          OPC_MoveParent,
/*120219*/          OPC_CheckType, MVT::i32,
/*120221*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*120223*/          OPC_EmitInteger, MVT::i32, X86::GR32RegClassID,
/*120226*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (anyext:{ *:[i32] } (X86kextract:{ *:[i8] } VK1:{ *:[v1i1] }:$src, 0:{ *:[iPTR] })) - Complexity = 11
                    // Dst: (COPY_TO_REGCLASS:{ *:[i32] } VK1:{ *:[v1i1] }:$src, GR32:{ *:[i32] })
/*120234*/        /*Scope*/ 20, /*->120255*/
/*120235*/          OPC_CheckChild0Type, MVT::v2i1,
/*120237*/          OPC_CheckChild1Integer, 0, 
/*120239*/          OPC_MoveParent,
/*120240*/          OPC_CheckType, MVT::i32,
/*120242*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*120244*/          OPC_EmitInteger, MVT::i32, X86::GR32RegClassID,
/*120247*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (anyext:{ *:[i32] } (X86kextract:{ *:[i8] } VK2:{ *:[v2i1] }:$src, 0:{ *:[iPTR] })) - Complexity = 11
                    // Dst: (COPY_TO_REGCLASS:{ *:[i32] } VK2:{ *:[v2i1] }:$src, GR32:{ *:[i32] })
/*120255*/        /*Scope*/ 20, /*->120276*/
/*120256*/          OPC_CheckChild0Type, MVT::v4i1,
/*120258*/          OPC_CheckChild1Integer, 0, 
/*120260*/          OPC_MoveParent,
/*120261*/          OPC_CheckType, MVT::i32,
/*120263*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*120265*/          OPC_EmitInteger, MVT::i32, X86::GR32RegClassID,
/*120268*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (anyext:{ *:[i32] } (X86kextract:{ *:[i8] } VK4:{ *:[v4i1] }:$src, 0:{ *:[iPTR] })) - Complexity = 11
                    // Dst: (COPY_TO_REGCLASS:{ *:[i32] } VK4:{ *:[v4i1] }:$src, GR32:{ *:[i32] })
/*120276*/        /*Scope*/ 20, /*->120297*/
/*120277*/          OPC_CheckChild0Type, MVT::v8i1,
/*120279*/          OPC_CheckChild1Integer, 0, 
/*120281*/          OPC_MoveParent,
/*120282*/          OPC_CheckType, MVT::i32,
/*120284*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*120286*/          OPC_EmitInteger, MVT::i32, X86::GR32RegClassID,
/*120289*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (anyext:{ *:[i32] } (X86kextract:{ *:[i8] } VK8:{ *:[v8i1] }:$src, 0:{ *:[iPTR] })) - Complexity = 11
                    // Dst: (COPY_TO_REGCLASS:{ *:[i32] } VK8:{ *:[v8i1] }:$src, GR32:{ *:[i32] })
/*120297*/        /*Scope*/ 20, /*->120318*/
/*120298*/          OPC_CheckChild0Type, MVT::v16i1,
/*120300*/          OPC_CheckChild1Integer, 0, 
/*120302*/          OPC_MoveParent,
/*120303*/          OPC_CheckType, MVT::i32,
/*120305*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*120307*/          OPC_EmitInteger, MVT::i32, X86::GR32RegClassID,
/*120310*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (anyext:{ *:[i32] } (X86kextract:{ *:[i8] } VK16:{ *:[v16i1] }:$src, 0:{ *:[iPTR] })) - Complexity = 11
                    // Dst: (COPY_TO_REGCLASS:{ *:[i32] } VK16:{ *:[v16i1] }:$src, GR32:{ *:[i32] })
/*120318*/        /*Scope*/ 20, /*->120339*/
/*120319*/          OPC_CheckChild0Type, MVT::v32i1,
/*120321*/          OPC_CheckChild1Integer, 0, 
/*120323*/          OPC_MoveParent,
/*120324*/          OPC_CheckType, MVT::i32,
/*120326*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*120328*/          OPC_EmitInteger, MVT::i32, X86::GR32RegClassID,
/*120331*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (anyext:{ *:[i32] } (X86kextract:{ *:[i8] } VK32:{ *:[v32i1] }:$src, 0:{ *:[iPTR] })) - Complexity = 11
                    // Dst: (COPY_TO_REGCLASS:{ *:[i32] } VK32:{ *:[v32i1] }:$src, GR32:{ *:[i32] })
/*120339*/        /*Scope*/ 20, /*->120360*/
/*120340*/          OPC_CheckChild0Type, MVT::v64i1,
/*120342*/          OPC_CheckChild1Integer, 0, 
/*120344*/          OPC_MoveParent,
/*120345*/          OPC_CheckType, MVT::i32,
/*120347*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*120349*/          OPC_EmitInteger, MVT::i32, X86::GR32RegClassID,
/*120352*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::i32, 2/*#Ops*/, 0, 1, 
                    // Src: (anyext:{ *:[i32] } (X86kextract:{ *:[i8] } VK64:{ *:[v64i1] }:$src, 0:{ *:[iPTR] })) - Complexity = 11
                    // Dst: (COPY_TO_REGCLASS:{ *:[i32] } VK64:{ *:[v64i1] }:$src, GR32:{ *:[i32] })
/*120360*/        0, /*End of Scope*/
/*120361*/      /*SwitchOpcode*/ 95, TARGET_VAL(X86ISD::SETCC_CARRY),// ->120459
/*120364*/        OPC_CheckChild0Integer, 2, 
/*120366*/        OPC_RecordChild1, // #0 = physreg input EFLAGS
/*120367*/        OPC_Scope, 13, /*->120382*/ // 5 children in Scope
/*120369*/          OPC_MoveParent,
/*120370*/          OPC_CheckType, MVT::i16,
/*120372*/          OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*120375*/          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] })
/*120382*/        /*Scope*/ 29, /*->120412*/
/*120383*/          OPC_CheckType, MVT::i8,
/*120385*/          OPC_MoveParent,
/*120386*/          OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->120399
/*120389*/            OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*120392*/            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] })
/*120399*/          /*SwitchType*/ 10, MVT::i64,// ->120411
/*120401*/            OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*120404*/            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] })
/*120411*/          0, // EndSwitchType
/*120412*/        /*Scope*/ 13, /*->120426*/
/*120413*/          OPC_MoveParent,
/*120414*/          OPC_CheckType, MVT::i16,
/*120416*/          OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*120419*/          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] })
/*120426*/        /*Scope*/ 15, /*->120442*/
/*120427*/          OPC_CheckType, MVT::i8,
/*120429*/          OPC_MoveParent,
/*120430*/          OPC_CheckType, MVT::i32,
/*120432*/          OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*120435*/          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] })
/*120442*/        /*Scope*/ 15, /*->120458*/
/*120443*/          OPC_CheckType, MVT::i16,
/*120445*/          OPC_MoveParent,
/*120446*/          OPC_CheckType, MVT::i32,
/*120448*/          OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*120451*/          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] })
/*120458*/        0, /*End of Scope*/
/*120459*/      /*SwitchOpcode*/ 39, TARGET_VAL(ISD::BITCAST),// ->120501
/*120462*/        OPC_RecordChild0, // #0 = $src
/*120463*/        OPC_SwitchType /*2 cases */, 16, MVT::i16,// ->120482
/*120466*/          OPC_CheckChild0Type, MVT::v16i1,
/*120468*/          OPC_MoveParent,
/*120469*/          OPC_CheckType, MVT::i32,
/*120471*/          OPC_EmitInteger, MVT::i32, X86::GR32RegClassID,
/*120474*/          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] })
/*120482*/        /*SwitchType*/ 16, MVT::i8,// ->120500
/*120484*/          OPC_CheckChild0Type, MVT::v8i1,
/*120486*/          OPC_MoveParent,
/*120487*/          OPC_CheckType, MVT::i32,
/*120489*/          OPC_EmitInteger, MVT::i32, X86::GR32RegClassID,
/*120492*/          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] })
/*120500*/        0, // EndSwitchType
/*120501*/      0, // EndSwitchOpcode
/*120502*/    /*Scope*/ 94|128,2/*350*/, /*->120854*/
/*120504*/      OPC_RecordChild0, // #0 = $src
/*120505*/      OPC_SwitchType /*15 cases */, 46, MVT::i32,// ->120554
/*120508*/        OPC_Scope, 22, /*->120532*/ // 2 children in Scope
/*120510*/          OPC_CheckChild0Type, MVT::i8,
/*120512*/          OPC_Scope, 9, /*->120523*/ // 2 children in Scope
/*120514*/            OPC_CheckPredicate, 91, // Predicate_anyext_sdiv
/*120516*/            OPC_MorphNodeTo1, TARGET_VAL(X86::MOVSX32rr8), 0,
                          MVT::i32, 1/*#Ops*/, 0, 
                      // Src: (anyext:{ *:[i32] } GR8:{ *:[i8] }:$src)<<P:Predicate_anyext_sdiv>> - Complexity = 4
                      // Dst: (MOVSX32rr8:{ *:[i32] } GR8:{ *:[i8] }:$src)
/*120523*/          /*Scope*/ 7, /*->120531*/
/*120524*/            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)
/*120531*/          0, /*End of Scope*/
/*120532*/        /*Scope*/ 20, /*->120553*/
/*120533*/          OPC_CheckChild0Type, MVT::i16,
/*120535*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i32, 0/*#Ops*/,  // Results = #1
/*120541*/          OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*120544*/          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] })
/*120553*/        0, /*End of Scope*/
/*120554*/      /*SwitchType*/ 73, MVT::i64,// ->120629
/*120556*/        OPC_Scope, 20, /*->120578*/ // 3 children in Scope
/*120558*/          OPC_CheckChild0Type, MVT::i32,
/*120560*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i64, 0/*#Ops*/,  // Results = #1
/*120566*/          OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*120569*/          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] })
/*120578*/        /*Scope*/ 24, /*->120603*/
/*120579*/          OPC_CheckChild0Type, MVT::i8,
/*120581*/          OPC_EmitInteger, MVT::i64, 0, 
/*120584*/          OPC_EmitNode1, TARGET_VAL(X86::MOVZX32rr8), 0,
                        MVT::i32, 1/*#Ops*/, 0,  // Results = #2
/*120591*/          OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*120594*/          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] })
/*120603*/        /*Scope*/ 24, /*->120628*/
/*120604*/          OPC_CheckChild0Type, MVT::i16,
/*120606*/          OPC_EmitInteger, MVT::i64, 0, 
/*120609*/          OPC_EmitNode1, TARGET_VAL(X86::MOVZX32rr16), 0,
                        MVT::i32, 1/*#Ops*/, 0,  // Results = #2
/*120616*/          OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*120619*/          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] })
/*120628*/        0, /*End of Scope*/
/*120629*/      /*SwitchType*/ 18, MVT::i16,// ->120649
/*120631*/        OPC_EmitNode1, TARGET_VAL(X86::MOVZX32rr8), 0,
                      MVT::i32, 1/*#Ops*/, 0,  // Results = #1
/*120638*/        OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*120641*/        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] })
/*120649*/      /*SwitchType*/ 9, MVT::v64i8,// ->120660
/*120651*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*120653*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVM2BZrr), 0,
                      MVT::v64i8, 1/*#Ops*/, 0, 
                  // Src: (anyext:{ *:[v64i8] } VK64:{ *:[v64i1] }:$src) - Complexity = 3
                  // Dst: (VPMOVM2BZrr:{ *:[v64i8] } VK64:{ *:[v64i1] }:$src)
/*120660*/      /*SwitchType*/ 9, MVT::v32i8,// ->120671
/*120662*/        OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*120664*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVM2BZ256rr), 0,
                      MVT::v32i8, 1/*#Ops*/, 0, 
                  // Src: (anyext:{ *:[v32i8] } VK32:{ *:[v32i1] }:$src) - Complexity = 3
                  // Dst: (VPMOVM2BZ256rr:{ *:[v32i8] } VK32:{ *:[v32i1] }:$src)
/*120671*/      /*SwitchType*/ 29, MVT::v16i8,// ->120702
/*120673*/        OPC_Scope, 9, /*->120684*/ // 2 children in Scope
/*120675*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*120677*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVM2BZ128rr), 0,
                        MVT::v16i8, 1/*#Ops*/, 0, 
                    // Src: (anyext:{ *:[v16i8] } VK16:{ *:[v16i1] }:$src) - Complexity = 3
                    // Dst: (VPMOVM2BZ128rr:{ *:[v16i8] } VK16:{ *:[v16i1] }:$src)
/*120684*/        /*Scope*/ 16, /*->120701*/
/*120685*/          OPC_CheckPatternPredicate, 159, // (Subtarget->hasDQI()) && (!Subtarget->hasBWI())
/*120687*/          OPC_EmitNode1, TARGET_VAL(X86::VPMOVM2DZrr), 0,
                        MVT::v16i32, 1/*#Ops*/, 0,  // Results = #1
/*120694*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVDBZrr), 0,
                        MVT::v16i8, 1/*#Ops*/, 1, 
                    // Src: (anyext:{ *:[v16i8] } VK16:{ *:[v16i1] }:$src) - Complexity = 3
                    // Dst: (VPMOVDBZrr:{ *:[v16i8] } (VPMOVM2DZrr:{ *:[v16i32] } VK16:{ *:[v16i1] }:$src))
/*120701*/        0, /*End of Scope*/
/*120702*/      /*SwitchType*/ 11, MVT::v32i16,// ->120715
/*120704*/        OPC_CheckChild0Type, MVT::v32i1,
/*120706*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*120708*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVM2WZrr), 0,
                      MVT::v32i16, 1/*#Ops*/, 0, 
                  // Src: (anyext:{ *:[v32i16] } VK32:{ *:[v32i1] }:$src) - Complexity = 3
                  // Dst: (VPMOVM2WZrr:{ *:[v32i16] } VK32:{ *:[v32i1] }:$src)
/*120715*/      /*SwitchType*/ 31, MVT::v16i16,// ->120748
/*120717*/        OPC_CheckChild0Type, MVT::v16i1,
/*120719*/        OPC_Scope, 9, /*->120730*/ // 2 children in Scope
/*120721*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*120723*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVM2WZ256rr), 0,
                        MVT::v16i16, 1/*#Ops*/, 0, 
                    // Src: (anyext:{ *:[v16i16] } VK16:{ *:[v16i1] }:$src) - Complexity = 3
                    // Dst: (VPMOVM2WZ256rr:{ *:[v16i16] } VK16:{ *:[v16i1] }:$src)
/*120730*/        /*Scope*/ 16, /*->120747*/
/*120731*/          OPC_CheckPatternPredicate, 159, // (Subtarget->hasDQI()) && (!Subtarget->hasBWI())
/*120733*/          OPC_EmitNode1, TARGET_VAL(X86::VPMOVM2DZrr), 0,
                        MVT::v16i32, 1/*#Ops*/, 0,  // Results = #1
/*120740*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVDWZrr), 0,
                        MVT::v16i16, 1/*#Ops*/, 1, 
                    // Src: (anyext:{ *:[v16i16] } VK16:{ *:[v16i1] }:$src) - Complexity = 3
                    // Dst: (VPMOVDWZrr:{ *:[v16i16] } (VPMOVM2DZrr:{ *:[v16i32] } VK16:{ *:[v16i1] }:$src))
/*120747*/        0, /*End of Scope*/
/*120748*/      /*SwitchType*/ 29, MVT::v8i16,// ->120779
/*120750*/        OPC_Scope, 9, /*->120761*/ // 2 children in Scope
/*120752*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*120754*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVM2WZ128rr), 0,
                        MVT::v8i16, 1/*#Ops*/, 0, 
                    // Src: (anyext:{ *:[v8i16] } VK8:{ *:[v8i1] }:$src) - Complexity = 3
                    // Dst: (VPMOVM2WZ128rr:{ *:[v8i16] } VK8:{ *:[v8i1] }:$src)
/*120761*/        /*Scope*/ 16, /*->120778*/
/*120762*/          OPC_CheckPatternPredicate, 160, // (Subtarget->hasDQI()) && (Subtarget->hasVLX()) && (!Subtarget->hasBWI())
/*120764*/          OPC_EmitNode1, TARGET_VAL(X86::VPMOVM2DZ256rr), 0,
                        MVT::v8i32, 1/*#Ops*/, 0,  // Results = #1
/*120771*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVDWZ256rr), 0,
                        MVT::v8i16, 1/*#Ops*/, 1, 
                    // Src: (anyext:{ *:[v8i16] } VK8:{ *:[v8i1] }:$src) - Complexity = 3
                    // Dst: (VPMOVDWZ256rr:{ *:[v8i16] } (VPMOVM2DZ256rr:{ *:[v8i32] } VK8:{ *:[v8i1] }:$src))
/*120778*/        0, /*End of Scope*/
/*120779*/      /*SwitchType*/ 11, MVT::v16i32,// ->120792
/*120781*/        OPC_CheckChild0Type, MVT::v16i1,
/*120783*/        OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*120785*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVM2DZrr), 0,
                      MVT::v16i32, 1/*#Ops*/, 0, 
                  // Src: (anyext:{ *:[v16i32] } VK16:{ *:[v16i1] }:$src) - Complexity = 3
                  // Dst: (VPMOVM2DZrr:{ *:[v16i32] } VK16:{ *:[v16i1] }:$src)
/*120792*/      /*SwitchType*/ 11, MVT::v8i32,// ->120805
/*120794*/        OPC_CheckChild0Type, MVT::v8i1,
/*120796*/        OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*120798*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVM2DZ256rr), 0,
                      MVT::v8i32, 1/*#Ops*/, 0, 
                  // Src: (anyext:{ *:[v8i32] } VK8:{ *:[v8i1] }:$src) - Complexity = 3
                  // Dst: (VPMOVM2DZ256rr:{ *:[v8i32] } VK8:{ *:[v8i1] }:$src)
/*120805*/      /*SwitchType*/ 9, MVT::v4i32,// ->120816
/*120807*/        OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*120809*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVM2DZ128rr), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (anyext:{ *:[v4i32] } VK4:{ *:[v4i1] }:$src) - Complexity = 3
                  // Dst: (VPMOVM2DZ128rr:{ *:[v4i32] } VK4:{ *:[v4i1] }:$src)
/*120816*/      /*SwitchType*/ 11, MVT::v8i64,// ->120829
/*120818*/        OPC_CheckChild0Type, MVT::v8i1,
/*120820*/        OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*120822*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVM2QZrr), 0,
                      MVT::v8i64, 1/*#Ops*/, 0, 
                  // Src: (anyext:{ *:[v8i64] } VK8:{ *:[v8i1] }:$src) - Complexity = 3
                  // Dst: (VPMOVM2QZrr:{ *:[v8i64] } VK8:{ *:[v8i1] }:$src)
/*120829*/      /*SwitchType*/ 11, MVT::v4i64,// ->120842
/*120831*/        OPC_CheckChild0Type, MVT::v4i1,
/*120833*/        OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*120835*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVM2QZ256rr), 0,
                      MVT::v4i64, 1/*#Ops*/, 0, 
                  // Src: (anyext:{ *:[v4i64] } VK4:{ *:[v4i1] }:$src) - Complexity = 3
                  // Dst: (VPMOVM2QZ256rr:{ *:[v4i64] } VK4:{ *:[v4i1] }:$src)
/*120842*/      /*SwitchType*/ 9, MVT::v2i64,// ->120853
/*120844*/        OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*120846*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVM2QZ128rr), 0,
                      MVT::v2i64, 1/*#Ops*/, 0, 
                  // Src: (anyext:{ *:[v2i64] } VK2:{ *:[v2i1] }:$src) - Complexity = 3
                  // Dst: (VPMOVM2QZ128rr:{ *:[v2i64] } VK2:{ *:[v2i1] }:$src)
/*120853*/      0, // EndSwitchType
/*120854*/    0, /*End of Scope*/
/*120855*/  /*SwitchOpcode*/ 66|128,8/*1090*/, TARGET_VAL(ISD::BITCAST),// ->121949
/*120859*/    OPC_Scope, 23, /*->120884*/ // 7 children in Scope
/*120861*/      OPC_MoveChild0,
/*120862*/      OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*120865*/      OPC_RecordChild0, // #0 = $src
/*120866*/      OPC_CheckChild0Type, MVT::v2i64,
/*120868*/      OPC_CheckChild1Integer, 0, 
/*120870*/      OPC_CheckType, MVT::i64,
/*120872*/      OPC_MoveParent,
/*120873*/      OPC_CheckType, MVT::x86mmx,
/*120875*/      OPC_CheckPatternPredicate, 39, // (Subtarget->hasMMX()) && (Subtarget->hasSSE2())
/*120877*/      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)
/*120884*/    /*Scope*/ 76|128,1/*204*/, /*->121090*/
/*120886*/      OPC_RecordChild0, // #0 = $src
/*120887*/      OPC_Scope, 15, /*->120904*/ // 8 children in Scope
/*120889*/        OPC_CheckChild0Type, MVT::v32i1,
/*120891*/        OPC_CheckType, MVT::i32,
/*120893*/        OPC_EmitInteger, MVT::i32, X86::GR32RegClassID,
/*120896*/        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] })
/*120904*/      /*Scope*/ 15, /*->120920*/
/*120905*/        OPC_CheckChild0Type, MVT::v64i1,
/*120907*/        OPC_CheckType, MVT::i64,
/*120909*/        OPC_EmitInteger, MVT::i32, X86::GR64RegClassID,
/*120912*/        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] })
/*120920*/      /*Scope*/ 49, /*->120970*/
/*120921*/        OPC_CheckChild0Type, MVT::f64,
/*120923*/        OPC_SwitchType /*2 cases */, 32, MVT::i64,// ->120958
/*120926*/          OPC_Scope, 9, /*->120937*/ // 3 children in Scope
/*120928*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*120930*/            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)
/*120937*/          /*Scope*/ 9, /*->120947*/
/*120938*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*120940*/            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)
/*120947*/          /*Scope*/ 9, /*->120957*/
/*120948*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*120950*/            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)
/*120957*/          0, /*End of Scope*/
/*120958*/        /*SwitchType*/ 9, MVT::x86mmx,// ->120969
/*120960*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasMMX()) && (Subtarget->hasSSE2())
/*120962*/          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)
/*120969*/        0, // EndSwitchType
/*120970*/      /*Scope*/ 36, /*->121007*/
/*120971*/        OPC_CheckChild0Type, MVT::f32,
/*120973*/        OPC_CheckType, MVT::i32,
/*120975*/        OPC_Scope, 9, /*->120986*/ // 3 children in Scope
/*120977*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*120979*/          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)
/*120986*/        /*Scope*/ 9, /*->120996*/
/*120987*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*120989*/          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)
/*120996*/        /*Scope*/ 9, /*->121006*/
/*120997*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*120999*/          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)
/*121006*/        0, /*End of Scope*/
/*121007*/      /*Scope*/ 13, /*->121021*/
/*121008*/        OPC_CheckChild0Type, MVT::i64,
/*121010*/        OPC_CheckType, MVT::x86mmx,
/*121012*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/*121014*/        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)
/*121021*/      /*Scope*/ 13, /*->121035*/
/*121022*/        OPC_CheckChild0Type, MVT::x86mmx,
/*121024*/        OPC_CheckType, MVT::i64,
/*121026*/        OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/*121028*/        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)
/*121035*/      /*Scope*/ 26, /*->121062*/
/*121036*/        OPC_CheckChild0Type, MVT::v16i1,
/*121038*/        OPC_CheckType, MVT::i16,
/*121040*/        OPC_EmitInteger, MVT::i32, X86::GR32RegClassID,
/*121043*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/*121051*/        OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*121054*/        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] })
/*121062*/      /*Scope*/ 26, /*->121089*/
/*121063*/        OPC_CheckChild0Type, MVT::v8i1,
/*121065*/        OPC_CheckType, MVT::i8,
/*121067*/        OPC_EmitInteger, MVT::i32, X86::GR32RegClassID,
/*121070*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/*121078*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*121081*/        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] })
/*121089*/      0, /*End of Scope*/
/*121090*/    /*Scope*/ 7|128,1/*135*/, /*->121227*/
/*121092*/      OPC_MoveChild0,
/*121093*/      OPC_CheckOpcode, TARGET_VAL(ISD::ATOMIC_LOAD),
/*121096*/      OPC_RecordMemRef,
/*121097*/      OPC_RecordNode, // #0 = 'atomic_load' chained node
/*121098*/      OPC_RecordChild1, // #1 = $src
/*121099*/      OPC_SwitchType /*2 cases */, 61, MVT::i32,// ->121163
/*121102*/        OPC_CheckPredicate, 36, // Predicate_atomic_load_32
/*121104*/        OPC_MoveParent,
/*121105*/        OPC_CheckType, MVT::f32,
/*121107*/        OPC_Scope, 17, /*->121126*/ // 3 children in Scope
/*121109*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*121111*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*121114*/          OPC_EmitMergeInputChains1_0,
/*121115*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MOVSSrm_alt), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (bitconvert:{ *:[f32] } (atomic_load:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_atomic_load_32>>) - Complexity = 25
                    // Dst: (MOVSSrm_alt:{ *:[f32] } addr:{ *:[iPTR] }:$src)
/*121126*/        /*Scope*/ 17, /*->121144*/
/*121127*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*121129*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*121132*/          OPC_EmitMergeInputChains1_0,
/*121133*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSSrm_alt), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (bitconvert:{ *:[f32] } (atomic_load:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_atomic_load_32>>) - Complexity = 25
                    // Dst: (VMOVSSrm_alt:{ *:[f32] } addr:{ *:[iPTR] }:$src)
/*121144*/        /*Scope*/ 17, /*->121162*/
/*121145*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*121147*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*121150*/          OPC_EmitMergeInputChains1_0,
/*121151*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSSZrm_alt), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (bitconvert:{ *:[f32] } (atomic_load:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_atomic_load_32>>) - Complexity = 25
                    // Dst: (VMOVSSZrm_alt:{ *:[f32] } addr:{ *:[iPTR] }:$src)
/*121162*/        0, /*End of Scope*/
/*121163*/      /*SwitchType*/ 61, MVT::i64,// ->121226
/*121165*/        OPC_CheckPredicate, 37, // Predicate_atomic_load_64
/*121167*/        OPC_MoveParent,
/*121168*/        OPC_CheckType, MVT::f64,
/*121170*/        OPC_Scope, 17, /*->121189*/ // 3 children in Scope
/*121172*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*121174*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*121177*/          OPC_EmitMergeInputChains1_0,
/*121178*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MOVSDrm_alt), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (bitconvert:{ *:[f64] } (atomic_load:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_atomic_load_64>>) - Complexity = 25
                    // Dst: (MOVSDrm_alt:{ *:[f64] } addr:{ *:[iPTR] }:$src)
/*121189*/        /*Scope*/ 17, /*->121207*/
/*121190*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*121192*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*121195*/          OPC_EmitMergeInputChains1_0,
/*121196*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSDrm_alt), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (bitconvert:{ *:[f64] } (atomic_load:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_atomic_load_64>>) - Complexity = 25
                    // Dst: (VMOVSDrm_alt:{ *:[f64] } addr:{ *:[iPTR] }:$src)
/*121207*/        /*Scope*/ 17, /*->121225*/
/*121208*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*121210*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*121213*/          OPC_EmitMergeInputChains1_0,
/*121214*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSDZrm_alt), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (bitconvert:{ *:[f64] } (atomic_load:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_atomic_load_64>>) - Complexity = 25
                    // Dst: (VMOVSDZrm_alt:{ *:[f64] } addr:{ *:[iPTR] }:$src)
/*121225*/        0, /*End of Scope*/
/*121226*/      0, // EndSwitchType
/*121227*/    /*Scope*/ 127, /*->121355*/
/*121228*/      OPC_RecordChild0, // #0 = $src
/*121229*/      OPC_SwitchType /*2 cases */, 66, MVT::f64,// ->121298
/*121232*/        OPC_Scope, 34, /*->121268*/ // 3 children in Scope
/*121234*/          OPC_CheckChild0Type, MVT::i64,
/*121236*/          OPC_Scope, 9, /*->121247*/ // 3 children in Scope
/*121238*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*121240*/            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)
/*121247*/          /*Scope*/ 9, /*->121257*/
/*121248*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*121250*/            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)
/*121257*/          /*Scope*/ 9, /*->121267*/
/*121258*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*121260*/            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)
/*121267*/          0, /*End of Scope*/
/*121268*/        /*Scope*/ 11, /*->121280*/
/*121269*/          OPC_CheckChild0Type, MVT::x86mmx,
/*121271*/          OPC_CheckPatternPredicate, 39, // (Subtarget->hasMMX()) && (Subtarget->hasSSE2())
/*121273*/          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)
/*121280*/        /*Scope*/ 16, /*->121297*/
/*121281*/          OPC_CheckChild0Type, MVT::v64i1,
/*121283*/          OPC_EmitNode1, TARGET_VAL(X86::KMOVQrk), 0,
                        MVT::i64, 1/*#Ops*/, 0,  // Results = #1
/*121290*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOV64toSDZrr), 0,
                        MVT::f64, 1/*#Ops*/, 1, 
                    // Src: (bitconvert:{ *:[f64] } VK64:{ *:[v64i1] }:$src) - Complexity = 3
                    // Dst: (VMOV64toSDZrr:{ *:[f64] } (KMOVQrk:{ *:[i64] } VK64:{ *:[v64i1] }:$src))
/*121297*/        0, /*End of Scope*/
/*121298*/      /*SwitchType*/ 54, MVT::f32,// ->121354
/*121300*/        OPC_Scope, 34, /*->121336*/ // 2 children in Scope
/*121302*/          OPC_CheckChild0Type, MVT::i32,
/*121304*/          OPC_Scope, 9, /*->121315*/ // 3 children in Scope
/*121306*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*121308*/            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)
/*121315*/          /*Scope*/ 9, /*->121325*/
/*121316*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*121318*/            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)
/*121325*/          /*Scope*/ 9, /*->121335*/
/*121326*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*121328*/            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)
/*121335*/          0, /*End of Scope*/
/*121336*/        /*Scope*/ 16, /*->121353*/
/*121337*/          OPC_CheckChild0Type, MVT::v32i1,
/*121339*/          OPC_EmitNode1, TARGET_VAL(X86::KMOVDrk), 0,
                        MVT::i32, 1/*#Ops*/, 0,  // Results = #1
/*121346*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDI2SSZrr), 0,
                        MVT::f32, 1/*#Ops*/, 1, 
                    // Src: (bitconvert:{ *:[f32] } VK32:{ *:[v32i1] }:$src) - Complexity = 3
                    // Dst: (VMOVDI2SSZrr:{ *:[f32] } (KMOVDrk:{ *:[i32] } VK32:{ *:[v32i1] }:$src))
/*121353*/        0, /*End of Scope*/
/*121354*/      0, // EndSwitchType
/*121355*/    /*Scope*/ 4|128,2/*260*/, /*->121617*/
/*121357*/      OPC_MoveChild0,
/*121358*/      OPC_SwitchOpcode /*2 cases */, 56|128,1/*184*/, TARGET_VAL(X86ISD::SHUF128),// ->121547
/*121363*/        OPC_RecordChild0, // #0 = $src1
/*121364*/        OPC_Scope, 9|128,1/*137*/, /*->121504*/ // 2 children in Scope
/*121367*/          OPC_MoveChild1,
/*121368*/          OPC_SwitchOpcode /*2 cases */, 65, TARGET_VAL(ISD::LOAD),// ->121437
/*121372*/            OPC_RecordMemRef,
/*121373*/            OPC_RecordNode, // #1 = 'ld' chained node
/*121374*/            OPC_CheckFoldableChainNode,
/*121375*/            OPC_RecordChild1, // #2 = $src2
/*121376*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*121378*/            OPC_CheckPredicate, 9, // Predicate_load
/*121380*/            OPC_MoveParent,
/*121381*/            OPC_RecordChild2, // #3 = $src3
/*121382*/            OPC_MoveChild2,
/*121383*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*121386*/            OPC_MoveParent,
/*121387*/            OPC_SwitchType /*2 cases */, 22, MVT::v8i64,// ->121412
/*121390*/              OPC_MoveParent,
/*121391*/              OPC_CheckType, MVT::v16i32,
/*121393*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*121395*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*121398*/              OPC_EmitMergeInputChains1_1,
/*121399*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI32X4Zrmi), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                        // Src: (bitconvert:{ *:[v16i32] } (X86Shuf128:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3)) - Complexity = 31
                        // Dst: (VSHUFI32X4Zrmi:{ *:[v16i32] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*121412*/            /*SwitchType*/ 22, MVT::v4i64,// ->121436
/*121414*/              OPC_MoveParent,
/*121415*/              OPC_CheckType, MVT::v8i32,
/*121417*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*121419*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*121422*/              OPC_EmitMergeInputChains1_1,
/*121423*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI32X4Z256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                        // Src: (bitconvert:{ *:[v8i32] } (X86Shuf128:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3)) - Complexity = 31
                        // Dst: (VSHUFI32X4Z256rmi:{ *:[v8i32] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*121436*/            0, // EndSwitchType
/*121437*/          /*SwitchOpcode*/ 63, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->121503
/*121440*/            OPC_RecordMemRef,
/*121441*/            OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*121442*/            OPC_CheckFoldableChainNode,
/*121443*/            OPC_RecordChild1, // #2 = $src2
/*121444*/            OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*121446*/            OPC_MoveParent,
/*121447*/            OPC_RecordChild2, // #3 = $src3
/*121448*/            OPC_MoveChild2,
/*121449*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*121452*/            OPC_MoveParent,
/*121453*/            OPC_SwitchType /*2 cases */, 22, MVT::v8i64,// ->121478
/*121456*/              OPC_MoveParent,
/*121457*/              OPC_CheckType, MVT::v16i32,
/*121459*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*121461*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*121464*/              OPC_EmitMergeInputChains1_1,
/*121465*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI32X4Zrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                        // Src: (bitconvert:{ *:[v16i32] } (X86Shuf128:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src3)) - Complexity = 31
                        // Dst: (VSHUFI32X4Zrmbi:{ *:[v16i32] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*121478*/            /*SwitchType*/ 22, MVT::v4i64,// ->121502
/*121480*/              OPC_MoveParent,
/*121481*/              OPC_CheckType, MVT::v8i32,
/*121483*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*121485*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*121488*/              OPC_EmitMergeInputChains1_1,
/*121489*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI32X4Z256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                        // Src: (bitconvert:{ *:[v8i32] } (X86Shuf128:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src3)) - Complexity = 31
                        // Dst: (VSHUFI32X4Z256rmbi:{ *:[v8i32] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*121502*/            0, // EndSwitchType
/*121503*/          0, // EndSwitchOpcode
/*121504*/        /*Scope*/ 41, /*->121546*/
/*121505*/          OPC_RecordChild1, // #1 = $src2
/*121506*/          OPC_RecordChild2, // #2 = $src3
/*121507*/          OPC_MoveChild2,
/*121508*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*121511*/          OPC_MoveParent,
/*121512*/          OPC_SwitchType /*2 cases */, 14, MVT::v8i64,// ->121529
/*121515*/            OPC_MoveParent,
/*121516*/            OPC_CheckType, MVT::v16i32,
/*121518*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*121520*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI32X4Zrri), 0,
                          MVT::v16i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v16i32] } (X86Shuf128:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (timm:{ *:[i8] }):$src3)) - Complexity = 9
                      // Dst: (VSHUFI32X4Zrri:{ *:[v16i32] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (timm:{ *:[i8] }):$src3)
/*121529*/          /*SwitchType*/ 14, MVT::v4i64,// ->121545
/*121531*/            OPC_MoveParent,
/*121532*/            OPC_CheckType, MVT::v8i32,
/*121534*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*121536*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI32X4Z256rri), 0,
                          MVT::v8i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (bitconvert:{ *:[v8i32] } (X86Shuf128:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (timm:{ *:[i8] }):$src3)) - Complexity = 9
                      // Dst: (VSHUFI32X4Z256rri:{ *:[v8i32] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (timm:{ *:[i8] }):$src3)
/*121545*/          0, // EndSwitchType
/*121546*/        0, /*End of Scope*/
/*121547*/      /*SwitchOpcode*/ 66, TARGET_VAL(ISD::LOAD),// ->121616
/*121550*/        OPC_RecordMemRef,
/*121551*/        OPC_RecordNode, // #0 = 'ld' chained node
/*121552*/        OPC_RecordChild1, // #1 = $src
/*121553*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*121555*/        OPC_SwitchType /*2 cases */, 22, MVT::i16,// ->121580
/*121558*/          OPC_CheckPredicate, 7, // Predicate_loadi16
/*121560*/          OPC_MoveParent,
/*121561*/          OPC_CheckType, MVT::v16i1,
/*121563*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*121565*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*121568*/          OPC_EmitMergeInputChains1_0,
/*121569*/          OPC_MorphNodeTo1, TARGET_VAL(X86::KMOVWkm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i1, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (bitconvert:{ *:[v16i1] } (ld:{ *:[i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi16>>) - Complexity = 25
                    // Dst: (KMOVWkm:{ *:[v16i1] } addr:{ *:[iPTR] }:$src)
/*121580*/        /*SwitchType*/ 33, MVT::i8,// ->121615
/*121582*/          OPC_CheckPredicate, 9, // Predicate_load
/*121584*/          OPC_MoveParent,
/*121585*/          OPC_CheckType, MVT::v8i1,
/*121587*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*121589*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*121592*/          OPC_EmitMergeInputChains1_0,
/*121593*/          OPC_EmitNode1, TARGET_VAL(X86::MOVZX32rm8), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::i32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #7
/*121604*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*121607*/          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] })
/*121615*/        0, // EndSwitchType
/*121616*/      0, // EndSwitchOpcode
/*121617*/    /*Scope*/ 11|128,1/*139*/, /*->121758*/
/*121619*/      OPC_RecordChild0, // #0 = $src
/*121620*/      OPC_SwitchType /*4 cases */, 33, MVT::v32i1,// ->121656
/*121623*/        OPC_Scope, 13, /*->121638*/ // 2 children in Scope
/*121625*/          OPC_CheckChild0Type, MVT::i32,
/*121627*/          OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/*121630*/          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] })
/*121638*/        /*Scope*/ 16, /*->121655*/
/*121639*/          OPC_CheckChild0Type, MVT::f32,
/*121641*/          OPC_EmitNode1, TARGET_VAL(X86::VMOVSS2DIZrr), 0,
                        MVT::i32, 1/*#Ops*/, 0,  // Results = #1
/*121648*/          OPC_MorphNodeTo1, TARGET_VAL(X86::KMOVDkr), 0,
                        MVT::v32i1, 1/*#Ops*/, 1, 
                    // Src: (bitconvert:{ *:[v32i1] } FR32X:{ *:[f32] }:$src) - Complexity = 3
                    // Dst: (KMOVDkr:{ *:[v32i1] } (VMOVSS2DIZrr:{ *:[i32] } FR32X:{ *:[f32] }:$src))
/*121655*/        0, /*End of Scope*/
/*121656*/      /*SwitchType*/ 33, MVT::v64i1,// ->121691
/*121658*/        OPC_Scope, 13, /*->121673*/ // 2 children in Scope
/*121660*/          OPC_CheckChild0Type, MVT::i64,
/*121662*/          OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/*121665*/          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] })
/*121673*/        /*Scope*/ 16, /*->121690*/
/*121674*/          OPC_CheckChild0Type, MVT::f64,
/*121676*/          OPC_EmitNode1, TARGET_VAL(X86::VMOVSDto64Zrr), 0,
                        MVT::i64, 1/*#Ops*/, 0,  // Results = #1
/*121683*/          OPC_MorphNodeTo1, TARGET_VAL(X86::KMOVQkr), 0,
                        MVT::v64i1, 1/*#Ops*/, 1, 
                    // Src: (bitconvert:{ *:[v64i1] } FR64X:{ *:[f64] }:$src) - Complexity = 3
                    // Dst: (KMOVQkr:{ *:[v64i1] } (VMOVSDto64Zrr:{ *:[i64] } FR64X:{ *:[f64] }:$src))
/*121690*/        0, /*End of Scope*/
/*121691*/      /*SwitchType*/ 31, MVT::v16i1,// ->121724
/*121693*/        OPC_CheckChild0Type, MVT::i16,
/*121695*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i32, 0/*#Ops*/,  // Results = #1
/*121701*/        OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*121704*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*121713*/        OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*121716*/        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] })
/*121724*/      /*SwitchType*/ 31, MVT::v8i1,// ->121757
/*121726*/        OPC_CheckChild0Type, MVT::i8,
/*121728*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::i32, 0/*#Ops*/,  // Results = #1
/*121734*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*121737*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*121746*/        OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*121749*/        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] })
/*121757*/      0, // EndSwitchType
/*121758*/    /*Scope*/ 60|128,1/*188*/, /*->121948*/
/*121760*/      OPC_MoveChild0,
/*121761*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::SHUF128),
/*121764*/      OPC_RecordChild0, // #0 = $src1
/*121765*/      OPC_Scope, 9|128,1/*137*/, /*->121905*/ // 2 children in Scope
/*121768*/        OPC_MoveChild1,
/*121769*/        OPC_SwitchOpcode /*2 cases */, 65, TARGET_VAL(ISD::LOAD),// ->121838
/*121773*/          OPC_RecordMemRef,
/*121774*/          OPC_RecordNode, // #1 = 'ld' chained node
/*121775*/          OPC_CheckFoldableChainNode,
/*121776*/          OPC_RecordChild1, // #2 = $src2
/*121777*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*121779*/          OPC_CheckPredicate, 9, // Predicate_load
/*121781*/          OPC_MoveParent,
/*121782*/          OPC_RecordChild2, // #3 = $src3
/*121783*/          OPC_MoveChild2,
/*121784*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*121787*/          OPC_MoveParent,
/*121788*/          OPC_SwitchType /*2 cases */, 22, MVT::v8f64,// ->121813
/*121791*/            OPC_MoveParent,
/*121792*/            OPC_CheckType, MVT::v16f32,
/*121794*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*121796*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*121799*/            OPC_EmitMergeInputChains1_1,
/*121800*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF32X4Zrmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                      // Src: (bitconvert:{ *:[v16f32] } (X86Shuf128:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3)) - Complexity = 31
                      // Dst: (VSHUFF32X4Zrmi:{ *:[v16f32] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*121813*/          /*SwitchType*/ 22, MVT::v4f64,// ->121837
/*121815*/            OPC_MoveParent,
/*121816*/            OPC_CheckType, MVT::v8f32,
/*121818*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*121820*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*121823*/            OPC_EmitMergeInputChains1_1,
/*121824*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF32X4Z256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                      // Src: (bitconvert:{ *:[v8f32] } (X86Shuf128:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3)) - Complexity = 31
                      // Dst: (VSHUFF32X4Z256rmi:{ *:[v8f32] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*121837*/          0, // EndSwitchType
/*121838*/        /*SwitchOpcode*/ 63, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->121904
/*121841*/          OPC_RecordMemRef,
/*121842*/          OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*121843*/          OPC_CheckFoldableChainNode,
/*121844*/          OPC_RecordChild1, // #2 = $src2
/*121845*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*121847*/          OPC_MoveParent,
/*121848*/          OPC_RecordChild2, // #3 = $src3
/*121849*/          OPC_MoveChild2,
/*121850*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*121853*/          OPC_MoveParent,
/*121854*/          OPC_SwitchType /*2 cases */, 22, MVT::v8f64,// ->121879
/*121857*/            OPC_MoveParent,
/*121858*/            OPC_CheckType, MVT::v16f32,
/*121860*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*121862*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*121865*/            OPC_EmitMergeInputChains1_1,
/*121866*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF32X4Zrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                      // Src: (bitconvert:{ *:[v16f32] } (X86Shuf128:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src3)) - Complexity = 31
                      // Dst: (VSHUFF32X4Zrmbi:{ *:[v16f32] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*121879*/          /*SwitchType*/ 22, MVT::v4f64,// ->121903
/*121881*/            OPC_MoveParent,
/*121882*/            OPC_CheckType, MVT::v8f32,
/*121884*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*121886*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*121889*/            OPC_EmitMergeInputChains1_1,
/*121890*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF32X4Z256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                      // Src: (bitconvert:{ *:[v8f32] } (X86Shuf128:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src3)) - Complexity = 31
                      // Dst: (VSHUFF32X4Z256rmbi:{ *:[v8f32] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*121903*/          0, // EndSwitchType
/*121904*/        0, // EndSwitchOpcode
/*121905*/      /*Scope*/ 41, /*->121947*/
/*121906*/        OPC_RecordChild1, // #1 = $src2
/*121907*/        OPC_RecordChild2, // #2 = $src3
/*121908*/        OPC_MoveChild2,
/*121909*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*121912*/        OPC_MoveParent,
/*121913*/        OPC_SwitchType /*2 cases */, 14, MVT::v8f64,// ->121930
/*121916*/          OPC_MoveParent,
/*121917*/          OPC_CheckType, MVT::v16f32,
/*121919*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*121921*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF32X4Zrri), 0,
                        MVT::v16f32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (bitconvert:{ *:[v16f32] } (X86Shuf128:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i8] }):$src3)) - Complexity = 9
                    // Dst: (VSHUFF32X4Zrri:{ *:[v16f32] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i8] }):$src3)
/*121930*/        /*SwitchType*/ 14, MVT::v4f64,// ->121946
/*121932*/          OPC_MoveParent,
/*121933*/          OPC_CheckType, MVT::v8f32,
/*121935*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*121937*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF32X4Z256rri), 0,
                        MVT::v8f32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (bitconvert:{ *:[v8f32] } (X86Shuf128:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (timm:{ *:[i8] }):$src3)) - Complexity = 9
                    // Dst: (VSHUFF32X4Z256rri:{ *:[v8f32] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (timm:{ *:[i8] }):$src3)
/*121946*/        0, // EndSwitchType
/*121947*/      0, /*End of Scope*/
/*121948*/    0, /*End of Scope*/
/*121949*/  /*SwitchOpcode*/ 123|128,5/*763*/, TARGET_VAL(ISD::SIGN_EXTEND),// ->122716
/*121953*/    OPC_Scope, 53, /*->122008*/ // 4 children in Scope
/*121955*/      OPC_MoveChild0,
/*121956*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::SETCC_CARRY),
/*121959*/      OPC_CheckChild0Integer, 2, 
/*121961*/      OPC_RecordChild1, // #0 = physreg input EFLAGS
/*121962*/      OPC_Scope, 13, /*->121977*/ // 2 children in Scope
/*121964*/        OPC_MoveParent,
/*121965*/        OPC_CheckType, MVT::i16,
/*121967*/        OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*121970*/        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] })
/*121977*/      /*Scope*/ 29, /*->122007*/
/*121978*/        OPC_CheckType, MVT::i8,
/*121980*/        OPC_MoveParent,
/*121981*/        OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->121994
/*121984*/          OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*121987*/          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] })
/*121994*/        /*SwitchType*/ 10, MVT::i64,// ->122006
/*121996*/          OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*121999*/          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] })
/*122006*/        0, // EndSwitchType
/*122007*/      0, /*End of Scope*/
/*122008*/    /*Scope*/ 84, /*->122093*/
/*122009*/      OPC_RecordChild0, // #0 = $src
/*122010*/      OPC_Scope, 22, /*->122034*/ // 4 children in Scope
/*122012*/        OPC_CheckChild0Type, MVT::i8,
/*122014*/        OPC_SwitchType /*2 cases */, 7, MVT::i32,// ->122024
/*122017*/          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)
/*122024*/        /*SwitchType*/ 7, MVT::i64,// ->122033
/*122026*/          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)
/*122033*/        0, // EndSwitchType
/*122034*/      /*Scope*/ 22, /*->122057*/
/*122035*/        OPC_CheckChild0Type, MVT::i16,
/*122037*/        OPC_SwitchType /*2 cases */, 7, MVT::i32,// ->122047
/*122040*/          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)
/*122047*/        /*SwitchType*/ 7, MVT::i64,// ->122056
/*122049*/          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)
/*122056*/        0, // EndSwitchType
/*122057*/      /*Scope*/ 13, /*->122071*/
/*122058*/        OPC_CheckChild0Type, MVT::i32,
/*122060*/        OPC_CheckType, MVT::i64,
/*122062*/        OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*122064*/        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)
/*122071*/      /*Scope*/ 20, /*->122092*/
/*122072*/        OPC_CheckType, MVT::i16,
/*122074*/        OPC_EmitNode1, TARGET_VAL(X86::MOVSX32rr8), 0,
                      MVT::i32, 1/*#Ops*/, 0,  // Results = #1
/*122081*/        OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*122084*/        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] })
/*122092*/      0, /*End of Scope*/
/*122093*/    /*Scope*/ 122|128,1/*250*/, /*->122345*/
/*122095*/      OPC_MoveChild0,
/*122096*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*122099*/      OPC_RecordMemRef,
/*122100*/      OPC_RecordNode, // #0 = 'ld' chained node
/*122101*/      OPC_RecordChild1, // #1 = $src
/*122102*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*122104*/      OPC_CheckPredicate, 9, // Predicate_load
/*122106*/      OPC_SwitchType /*6 cases */, 62, MVT::v16i8,// ->122171
/*122109*/        OPC_MoveParent,
/*122110*/        OPC_SwitchType /*2 cases */, 38, MVT::v16i16,// ->122151
/*122113*/          OPC_Scope, 17, /*->122132*/ // 2 children in Scope
/*122115*/            OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*122117*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*122120*/            OPC_EmitMergeInputChains1_0,
/*122121*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (sext:{ *:[v16i16] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMOVSXBWYrm:{ *:[v16i16] } addr:{ *:[iPTR] }:$src)
/*122132*/          /*Scope*/ 17, /*->122150*/
/*122133*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*122135*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*122138*/            OPC_EmitMergeInputChains1_0,
/*122139*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (sext:{ *:[v16i16] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMOVSXBWZ256rm:{ *:[v16i16] } addr:{ *:[iPTR] }:$src)
/*122150*/          0, /*End of Scope*/
/*122151*/        /*SwitchType*/ 17, MVT::v16i32,// ->122170
/*122153*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*122155*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*122158*/          OPC_EmitMergeInputChains1_0,
/*122159*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (sext:{ *:[v16i32] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPMOVSXBDZrm:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)
/*122170*/        0, // EndSwitchType
/*122171*/      /*SwitchType*/ 62, MVT::v8i16,// ->122235
/*122173*/        OPC_MoveParent,
/*122174*/        OPC_SwitchType /*2 cases */, 38, MVT::v8i32,// ->122215
/*122177*/          OPC_Scope, 17, /*->122196*/ // 2 children in Scope
/*122179*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*122181*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*122184*/            OPC_EmitMergeInputChains1_0,
/*122185*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (sext:{ *:[v8i32] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMOVSXWDYrm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*122196*/          /*Scope*/ 17, /*->122214*/
/*122197*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*122199*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*122202*/            OPC_EmitMergeInputChains1_0,
/*122203*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (sext:{ *:[v8i32] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMOVSXWDZ256rm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*122214*/          0, /*End of Scope*/
/*122215*/        /*SwitchType*/ 17, MVT::v8i64,// ->122234
/*122217*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*122219*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*122222*/          OPC_EmitMergeInputChains1_0,
/*122223*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (sext:{ *:[v8i64] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPMOVSXWQZrm:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*122234*/        0, // EndSwitchType
/*122235*/      /*SwitchType*/ 41, MVT::v4i32,// ->122278
/*122237*/        OPC_MoveParent,
/*122238*/        OPC_CheckType, MVT::v4i64,
/*122240*/        OPC_Scope, 17, /*->122259*/ // 2 children in Scope
/*122242*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*122244*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*122247*/          OPC_EmitMergeInputChains1_0,
/*122248*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXDQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (sext:{ *:[v4i64] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPMOVSXDQYrm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*122259*/        /*Scope*/ 17, /*->122277*/
/*122260*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*122262*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*122265*/          OPC_EmitMergeInputChains1_0,
/*122266*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXDQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (sext:{ *:[v4i64] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPMOVSXDQZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*122277*/        0, /*End of Scope*/
/*122278*/      /*SwitchType*/ 20, MVT::v32i8,// ->122300
/*122280*/        OPC_MoveParent,
/*122281*/        OPC_CheckType, MVT::v32i16,
/*122283*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*122285*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*122288*/        OPC_EmitMergeInputChains1_0,
/*122289*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v32i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (sext:{ *:[v32i16] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VPMOVSXBWZrm:{ *:[v32i16] } addr:{ *:[iPTR] }:$src)
/*122300*/      /*SwitchType*/ 20, MVT::v16i16,// ->122322
/*122302*/        OPC_MoveParent,
/*122303*/        OPC_CheckType, MVT::v16i32,
/*122305*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*122307*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*122310*/        OPC_EmitMergeInputChains1_0,
/*122311*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (sext:{ *:[v16i32] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VPMOVSXWDZrm:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)
/*122322*/      /*SwitchType*/ 20, MVT::v8i32,// ->122344
/*122324*/        OPC_MoveParent,
/*122325*/        OPC_CheckType, MVT::v8i64,
/*122327*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*122329*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*122332*/        OPC_EmitMergeInputChains1_0,
/*122333*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXDQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (sext:{ *:[v8i64] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VPMOVSXDQZrm:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*122344*/      0, // EndSwitchType
/*122345*/    /*Scope*/ 112|128,2/*368*/, /*->122715*/
/*122347*/      OPC_RecordChild0, // #0 = $src
/*122348*/      OPC_Scope, 39, /*->122389*/ // 18 children in Scope
/*122350*/        OPC_CheckChild0Type, MVT::v16i8,
/*122352*/        OPC_SwitchType /*2 cases */, 22, MVT::v16i16,// ->122377
/*122355*/          OPC_Scope, 9, /*->122366*/ // 2 children in Scope
/*122357*/            OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*122359*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBWYrr), 0,
                          MVT::v16i16, 1/*#Ops*/, 0, 
                      // Src: (sext:{ *:[v16i16] } VR128:{ *:[v16i8] }:$src) - Complexity = 3
                      // Dst: (VPMOVSXBWYrr:{ *:[v16i16] } VR128:{ *:[v16i8] }:$src)
/*122366*/          /*Scope*/ 9, /*->122376*/
/*122367*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*122369*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBWZ256rr), 0,
                          MVT::v16i16, 1/*#Ops*/, 0, 
                      // Src: (sext:{ *:[v16i16] } VR128X:{ *:[v16i8] }:$src) - Complexity = 3
                      // Dst: (VPMOVSXBWZ256rr:{ *:[v16i16] } VR128X:{ *:[v16i8] }:$src)
/*122376*/          0, /*End of Scope*/
/*122377*/        /*SwitchType*/ 9, MVT::v16i32,// ->122388
/*122379*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*122381*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBDZrr), 0,
                        MVT::v16i32, 1/*#Ops*/, 0, 
                    // Src: (sext:{ *:[v16i32] } VR128X:{ *:[v16i8] }:$src) - Complexity = 3
                    // Dst: (VPMOVSXBDZrr:{ *:[v16i32] } VR128X:{ *:[v16i8] }:$src)
/*122388*/        0, // EndSwitchType
/*122389*/      /*Scope*/ 39, /*->122429*/
/*122390*/        OPC_CheckChild0Type, MVT::v8i16,
/*122392*/        OPC_SwitchType /*2 cases */, 22, MVT::v8i32,// ->122417
/*122395*/          OPC_Scope, 9, /*->122406*/ // 2 children in Scope
/*122397*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*122399*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWDYrr), 0,
                          MVT::v8i32, 1/*#Ops*/, 0, 
                      // Src: (sext:{ *:[v8i32] } VR128:{ *:[v8i16] }:$src) - Complexity = 3
                      // Dst: (VPMOVSXWDYrr:{ *:[v8i32] } VR128:{ *:[v8i16] }:$src)
/*122406*/          /*Scope*/ 9, /*->122416*/
/*122407*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*122409*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWDZ256rr), 0,
                          MVT::v8i32, 1/*#Ops*/, 0, 
                      // Src: (sext:{ *:[v8i32] } VR128X:{ *:[v8i16] }:$src) - Complexity = 3
                      // Dst: (VPMOVSXWDZ256rr:{ *:[v8i32] } VR128X:{ *:[v8i16] }:$src)
/*122416*/          0, /*End of Scope*/
/*122417*/        /*SwitchType*/ 9, MVT::v8i64,// ->122428
/*122419*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*122421*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWQZrr), 0,
                        MVT::v8i64, 1/*#Ops*/, 0, 
                    // Src: (sext:{ *:[v8i64] } VR128X:{ *:[v8i16] }:$src) - Complexity = 3
                    // Dst: (VPMOVSXWQZrr:{ *:[v8i64] } VR128X:{ *:[v8i16] }:$src)
/*122428*/        0, // EndSwitchType
/*122429*/      /*Scope*/ 26, /*->122456*/
/*122430*/        OPC_CheckChild0Type, MVT::v4i32,
/*122432*/        OPC_CheckType, MVT::v4i64,
/*122434*/        OPC_Scope, 9, /*->122445*/ // 2 children in Scope
/*122436*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*122438*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXDQYrr), 0,
                        MVT::v4i64, 1/*#Ops*/, 0, 
                    // Src: (sext:{ *:[v4i64] } VR128:{ *:[v4i32] }:$src) - Complexity = 3
                    // Dst: (VPMOVSXDQYrr:{ *:[v4i64] } VR128:{ *:[v4i32] }:$src)
/*122445*/        /*Scope*/ 9, /*->122455*/
/*122446*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*122448*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXDQZ256rr), 0,
                        MVT::v4i64, 1/*#Ops*/, 0, 
                    // Src: (sext:{ *:[v4i64] } VR128X:{ *:[v4i32] }:$src) - Complexity = 3
                    // Dst: (VPMOVSXDQZ256rr:{ *:[v4i64] } VR128X:{ *:[v4i32] }:$src)
/*122455*/        0, /*End of Scope*/
/*122456*/      /*Scope*/ 13, /*->122470*/
/*122457*/        OPC_CheckChild0Type, MVT::v32i8,
/*122459*/        OPC_CheckType, MVT::v32i16,
/*122461*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*122463*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBWZrr), 0,
                      MVT::v32i16, 1/*#Ops*/, 0, 
                  // Src: (sext:{ *:[v32i16] } VR256X:{ *:[v32i8] }:$src) - Complexity = 3
                  // Dst: (VPMOVSXBWZrr:{ *:[v32i16] } VR256X:{ *:[v32i8] }:$src)
/*122470*/      /*Scope*/ 13, /*->122484*/
/*122471*/        OPC_CheckChild0Type, MVT::v16i16,
/*122473*/        OPC_CheckType, MVT::v16i32,
/*122475*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*122477*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWDZrr), 0,
                      MVT::v16i32, 1/*#Ops*/, 0, 
                  // Src: (sext:{ *:[v16i32] } VR256X:{ *:[v16i16] }:$src) - Complexity = 3
                  // Dst: (VPMOVSXWDZrr:{ *:[v16i32] } VR256X:{ *:[v16i16] }:$src)
/*122484*/      /*Scope*/ 13, /*->122498*/
/*122485*/        OPC_CheckChild0Type, MVT::v8i32,
/*122487*/        OPC_CheckType, MVT::v8i64,
/*122489*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*122491*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXDQZrr), 0,
                      MVT::v8i64, 1/*#Ops*/, 0, 
                  // Src: (sext:{ *:[v8i64] } VR256X:{ *:[v8i32] }:$src) - Complexity = 3
                  // Dst: (VPMOVSXDQZrr:{ *:[v8i64] } VR256X:{ *:[v8i32] }:$src)
/*122498*/      /*Scope*/ 11, /*->122510*/
/*122499*/        OPC_CheckType, MVT::v64i8,
/*122501*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*122503*/        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)
/*122510*/      /*Scope*/ 11, /*->122522*/
/*122511*/        OPC_CheckType, MVT::v32i8,
/*122513*/        OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*122515*/        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)
/*122522*/      /*Scope*/ 31, /*->122554*/
/*122523*/        OPC_CheckType, MVT::v16i8,
/*122525*/        OPC_Scope, 9, /*->122536*/ // 2 children in Scope
/*122527*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*122529*/          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)
/*122536*/        /*Scope*/ 16, /*->122553*/
/*122537*/          OPC_CheckPatternPredicate, 159, // (Subtarget->hasDQI()) && (!Subtarget->hasBWI())
/*122539*/          OPC_EmitNode1, TARGET_VAL(X86::VPMOVM2DZrr), 0,
                        MVT::v16i32, 1/*#Ops*/, 0,  // Results = #1
/*122546*/          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))
/*122553*/        0, /*End of Scope*/
/*122554*/      /*Scope*/ 13, /*->122568*/
/*122555*/        OPC_CheckType, MVT::v32i16,
/*122557*/        OPC_CheckChild0Type, MVT::v32i1,
/*122559*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*122561*/        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)
/*122568*/      /*Scope*/ 33, /*->122602*/
/*122569*/        OPC_CheckType, MVT::v16i16,
/*122571*/        OPC_CheckChild0Type, MVT::v16i1,
/*122573*/        OPC_Scope, 9, /*->122584*/ // 2 children in Scope
/*122575*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*122577*/          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)
/*122584*/        /*Scope*/ 16, /*->122601*/
/*122585*/          OPC_CheckPatternPredicate, 159, // (Subtarget->hasDQI()) && (!Subtarget->hasBWI())
/*122587*/          OPC_EmitNode1, TARGET_VAL(X86::VPMOVM2DZrr), 0,
                        MVT::v16i32, 1/*#Ops*/, 0,  // Results = #1
/*122594*/          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))
/*122601*/        0, /*End of Scope*/
/*122602*/      /*Scope*/ 31, /*->122634*/
/*122603*/        OPC_CheckType, MVT::v8i16,
/*122605*/        OPC_Scope, 9, /*->122616*/ // 2 children in Scope
/*122607*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*122609*/          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)
/*122616*/        /*Scope*/ 16, /*->122633*/
/*122617*/          OPC_CheckPatternPredicate, 160, // (Subtarget->hasDQI()) && (Subtarget->hasVLX()) && (!Subtarget->hasBWI())
/*122619*/          OPC_EmitNode1, TARGET_VAL(X86::VPMOVM2DZ256rr), 0,
                        MVT::v8i32, 1/*#Ops*/, 0,  // Results = #1
/*122626*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVDWZ256rr), 0,
                        MVT::v8i16, 1/*#Ops*/, 1, 
                    // Src: (sext:{ *:[v8i16] } VK8:{ *:[v8i1] }:$src) - Complexity = 3
                    // Dst: (VPMOVDWZ256rr:{ *:[v8i16] } (VPMOVM2DZ256rr:{ *:[v8i32] } VK8:{ *:[v8i1] }:$src))
/*122633*/        0, /*End of Scope*/
/*122634*/      /*Scope*/ 13, /*->122648*/
/*122635*/        OPC_CheckType, MVT::v16i32,
/*122637*/        OPC_CheckChild0Type, MVT::v16i1,
/*122639*/        OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*122641*/        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)
/*122648*/      /*Scope*/ 13, /*->122662*/
/*122649*/        OPC_CheckType, MVT::v8i32,
/*122651*/        OPC_CheckChild0Type, MVT::v8i1,
/*122653*/        OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*122655*/        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)
/*122662*/      /*Scope*/ 11, /*->122674*/
/*122663*/        OPC_CheckType, MVT::v4i32,
/*122665*/        OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*122667*/        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)
/*122674*/      /*Scope*/ 13, /*->122688*/
/*122675*/        OPC_CheckType, MVT::v8i64,
/*122677*/        OPC_CheckChild0Type, MVT::v8i1,
/*122679*/        OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*122681*/        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)
/*122688*/      /*Scope*/ 13, /*->122702*/
/*122689*/        OPC_CheckType, MVT::v4i64,
/*122691*/        OPC_CheckChild0Type, MVT::v4i1,
/*122693*/        OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*122695*/        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)
/*122702*/      /*Scope*/ 11, /*->122714*/
/*122703*/        OPC_CheckType, MVT::v2i64,
/*122705*/        OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*122707*/        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)
/*122714*/      0, /*End of Scope*/
/*122715*/    0, /*End of Scope*/
/*122716*/  /*SwitchOpcode*/ 39|128,1/*167*/, TARGET_VAL(X86ISD::SHLD),// ->122887
/*122720*/    OPC_RecordChild0, // #0 = $src1
/*122721*/    OPC_RecordChild1, // #1 = $src2
/*122722*/    OPC_Scope, 59, /*->122783*/ // 2 children in Scope
/*122724*/      OPC_MoveChild2,
/*122725*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*122728*/      OPC_RecordChild0, // #2 = physreg input CL
/*122729*/      OPC_MoveChild1,
/*122730*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*122733*/      OPC_MoveParent,
/*122734*/      OPC_CheckPredicate, 6, // Predicate_shiftMask32
/*122736*/      OPC_CheckType, MVT::i8,
/*122738*/      OPC_MoveParent,
/*122739*/      OPC_SwitchType /*3 cases */, 12, MVT::i16,// ->122754
/*122742*/        OPC_EmitCopyToReg, 2, X86::CL,
/*122745*/        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_shiftMask32>>) - Complexity = 10
                  // Dst: (SHLD16rrCL:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, GR16:{ *:[i16] }:$src2)
/*122754*/      /*SwitchType*/ 12, MVT::i32,// ->122768
/*122756*/        OPC_EmitCopyToReg, 2, X86::CL,
/*122759*/        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_shiftMask32>>) - Complexity = 10
                  // Dst: (SHLD32rrCL:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, GR32:{ *:[i32] }:$src2)
/*122768*/      /*SwitchType*/ 12, MVT::i64,// ->122782
/*122770*/        OPC_EmitCopyToReg, 2, X86::CL,
/*122773*/        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_shiftMask32>>) - Complexity = 10
                  // Dst: (SHLD64rrCL:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, GR64:{ *:[i64] }:$src2)
/*122782*/      0, // EndSwitchType
/*122783*/    /*Scope*/ 102, /*->122886*/
/*122784*/      OPC_RecordChild2, // #2 = $src3
/*122785*/      OPC_Scope, 51, /*->122838*/ // 2 children in Scope
/*122787*/        OPC_MoveChild2,
/*122788*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*122791*/        OPC_CheckType, MVT::i8,
/*122793*/        OPC_MoveParent,
/*122794*/        OPC_SwitchType /*3 cases */, 12, MVT::i16,// ->122809
/*122797*/          OPC_EmitConvertToTarget, 2,
/*122799*/          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)
/*122809*/        /*SwitchType*/ 12, MVT::i32,// ->122823
/*122811*/          OPC_EmitConvertToTarget, 2,
/*122813*/          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)
/*122823*/        /*SwitchType*/ 12, MVT::i64,// ->122837
/*122825*/          OPC_EmitConvertToTarget, 2,
/*122827*/          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)
/*122837*/        0, // EndSwitchType
/*122838*/      /*Scope*/ 46, /*->122885*/
/*122839*/        OPC_CheckChild2Type, MVT::i8,
/*122841*/        OPC_SwitchType /*3 cases */, 12, MVT::i16,// ->122856
/*122844*/          OPC_EmitCopyToReg, 2, X86::CL,
/*122847*/          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)
/*122856*/        /*SwitchType*/ 12, MVT::i32,// ->122870
/*122858*/          OPC_EmitCopyToReg, 2, X86::CL,
/*122861*/          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)
/*122870*/        /*SwitchType*/ 12, MVT::i64,// ->122884
/*122872*/          OPC_EmitCopyToReg, 2, X86::CL,
/*122875*/          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)
/*122884*/        0, // EndSwitchType
/*122885*/      0, /*End of Scope*/
/*122886*/    0, /*End of Scope*/
/*122887*/  /*SwitchOpcode*/ 39|128,1/*167*/, TARGET_VAL(X86ISD::SHRD),// ->123058
/*122891*/    OPC_RecordChild0, // #0 = $src1
/*122892*/    OPC_RecordChild1, // #1 = $src2
/*122893*/    OPC_Scope, 59, /*->122954*/ // 2 children in Scope
/*122895*/      OPC_MoveChild2,
/*122896*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*122899*/      OPC_RecordChild0, // #2 = physreg input CL
/*122900*/      OPC_MoveChild1,
/*122901*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*122904*/      OPC_MoveParent,
/*122905*/      OPC_CheckPredicate, 6, // Predicate_shiftMask32
/*122907*/      OPC_CheckType, MVT::i8,
/*122909*/      OPC_MoveParent,
/*122910*/      OPC_SwitchType /*3 cases */, 12, MVT::i16,// ->122925
/*122913*/        OPC_EmitCopyToReg, 2, X86::CL,
/*122916*/        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_shiftMask32>>) - Complexity = 10
                  // Dst: (SHRD16rrCL:{ *:[i16] }:{ *:[i32] } GR16:{ *:[i16] }:$src1, GR16:{ *:[i16] }:$src2)
/*122925*/      /*SwitchType*/ 12, MVT::i32,// ->122939
/*122927*/        OPC_EmitCopyToReg, 2, X86::CL,
/*122930*/        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_shiftMask32>>) - Complexity = 10
                  // Dst: (SHRD32rrCL:{ *:[i32] }:{ *:[i32] } GR32:{ *:[i32] }:$src1, GR32:{ *:[i32] }:$src2)
/*122939*/      /*SwitchType*/ 12, MVT::i64,// ->122953
/*122941*/        OPC_EmitCopyToReg, 2, X86::CL,
/*122944*/        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_shiftMask32>>) - Complexity = 10
                  // Dst: (SHRD64rrCL:{ *:[i64] }:{ *:[i32] } GR64:{ *:[i64] }:$src1, GR64:{ *:[i64] }:$src2)
/*122953*/      0, // EndSwitchType
/*122954*/    /*Scope*/ 102, /*->123057*/
/*122955*/      OPC_RecordChild2, // #2 = $src3
/*122956*/      OPC_Scope, 51, /*->123009*/ // 2 children in Scope
/*122958*/        OPC_MoveChild2,
/*122959*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*122962*/        OPC_CheckType, MVT::i8,
/*122964*/        OPC_MoveParent,
/*122965*/        OPC_SwitchType /*3 cases */, 12, MVT::i16,// ->122980
/*122968*/          OPC_EmitConvertToTarget, 2,
/*122970*/          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)
/*122980*/        /*SwitchType*/ 12, MVT::i32,// ->122994
/*122982*/          OPC_EmitConvertToTarget, 2,
/*122984*/          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)
/*122994*/        /*SwitchType*/ 12, MVT::i64,// ->123008
/*122996*/          OPC_EmitConvertToTarget, 2,
/*122998*/          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)
/*123008*/        0, // EndSwitchType
/*123009*/      /*Scope*/ 46, /*->123056*/
/*123010*/        OPC_CheckChild2Type, MVT::i8,
/*123012*/        OPC_SwitchType /*3 cases */, 12, MVT::i16,// ->123027
/*123015*/          OPC_EmitCopyToReg, 2, X86::CL,
/*123018*/          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)
/*123027*/        /*SwitchType*/ 12, MVT::i32,// ->123041
/*123029*/          OPC_EmitCopyToReg, 2, X86::CL,
/*123032*/          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)
/*123041*/        /*SwitchType*/ 12, MVT::i64,// ->123055
/*123043*/          OPC_EmitCopyToReg, 2, X86::CL,
/*123046*/          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)
/*123055*/        0, // EndSwitchType
/*123056*/      0, /*End of Scope*/
/*123057*/    0, /*End of Scope*/
/*123058*/  /*SwitchOpcode*/ 16|128,4/*528*/, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->123590
/*123062*/    OPC_Scope, 59, /*->123123*/ // 2 children in Scope
/*123064*/      OPC_MoveChild0,
/*123065*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*123068*/      OPC_RecordChild0, // #0 = $src1
/*123069*/      OPC_CheckChild0Type, MVT::v4f32,
/*123071*/      OPC_CheckType, MVT::v4i32,
/*123073*/      OPC_MoveParent,
/*123074*/      OPC_RecordChild1, // #1 = $src2
/*123075*/      OPC_MoveChild1,
/*123076*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*123079*/      OPC_MoveParent,
/*123080*/      OPC_CheckType, MVT::i32,
/*123082*/      OPC_Scope, 12, /*->123096*/ // 3 children in Scope
/*123084*/        OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*123086*/        OPC_EmitConvertToTarget, 1,
/*123088*/        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)
/*123096*/      /*Scope*/ 12, /*->123109*/
/*123097*/        OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*123099*/        OPC_EmitConvertToTarget, 1,
/*123101*/        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)
/*123109*/      /*Scope*/ 12, /*->123122*/
/*123110*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*123112*/        OPC_EmitConvertToTarget, 1,
/*123114*/        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)
/*123122*/      0, /*End of Scope*/
/*123123*/    /*Scope*/ 80|128,3/*464*/, /*->123589*/
/*123125*/      OPC_RecordChild0, // #0 = $src
/*123126*/      OPC_Scope, 91, /*->123219*/ // 11 children in Scope
/*123128*/        OPC_CheckChild0Type, MVT::v4i32,
/*123130*/        OPC_Scope, 36, /*->123168*/ // 2 children in Scope
/*123132*/          OPC_CheckChild1Integer, 0, 
/*123134*/          OPC_CheckType, MVT::i32,
/*123136*/          OPC_Scope, 9, /*->123147*/ // 3 children in Scope
/*123138*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*123140*/            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)
/*123147*/          /*Scope*/ 9, /*->123157*/
/*123148*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*123150*/            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)
/*123157*/          /*Scope*/ 9, /*->123167*/
/*123158*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*123160*/            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)
/*123167*/          0, /*End of Scope*/
/*123168*/        /*Scope*/ 49, /*->123218*/
/*123169*/          OPC_RecordChild1, // #1 = $src2
/*123170*/          OPC_MoveChild1,
/*123171*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*123174*/          OPC_MoveParent,
/*123175*/          OPC_CheckType, MVT::i32,
/*123177*/          OPC_Scope, 12, /*->123191*/ // 3 children in Scope
/*123179*/            OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX()) && (!Subtarget->hasDQI())
/*123181*/            OPC_EmitConvertToTarget, 1,
/*123183*/            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)
/*123191*/          /*Scope*/ 12, /*->123204*/
/*123192*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*123194*/            OPC_EmitConvertToTarget, 1,
/*123196*/            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)
/*123204*/          /*Scope*/ 12, /*->123217*/
/*123205*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*123207*/            OPC_EmitConvertToTarget, 1,
/*123209*/            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)
/*123217*/          0, /*End of Scope*/
/*123218*/        0, /*End of Scope*/
/*123219*/      /*Scope*/ 91, /*->123311*/
/*123220*/        OPC_CheckChild0Type, MVT::v2i64,
/*123222*/        OPC_Scope, 36, /*->123260*/ // 2 children in Scope
/*123224*/          OPC_CheckChild1Integer, 0, 
/*123226*/          OPC_CheckType, MVT::i64,
/*123228*/          OPC_Scope, 9, /*->123239*/ // 3 children in Scope
/*123230*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*123232*/            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)
/*123239*/          /*Scope*/ 9, /*->123249*/
/*123240*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*123242*/            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)
/*123249*/          /*Scope*/ 9, /*->123259*/
/*123250*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*123252*/            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)
/*123259*/          0, /*End of Scope*/
/*123260*/        /*Scope*/ 49, /*->123310*/
/*123261*/          OPC_RecordChild1, // #1 = $src2
/*123262*/          OPC_MoveChild1,
/*123263*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*123266*/          OPC_MoveParent,
/*123267*/          OPC_CheckType, MVT::i64,
/*123269*/          OPC_Scope, 12, /*->123283*/ // 3 children in Scope
/*123271*/            OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX()) && (!Subtarget->hasDQI())
/*123273*/            OPC_EmitConvertToTarget, 1,
/*123275*/            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)
/*123283*/          /*Scope*/ 12, /*->123296*/
/*123284*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*123286*/            OPC_EmitConvertToTarget, 1,
/*123288*/            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)
/*123296*/          /*Scope*/ 12, /*->123309*/
/*123297*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*123299*/            OPC_EmitConvertToTarget, 1,
/*123301*/            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)
/*123309*/          0, /*End of Scope*/
/*123310*/        0, /*End of Scope*/
/*123311*/      /*Scope*/ 28, /*->123340*/
/*123312*/        OPC_CheckChild0Type, MVT::v1i1,
/*123314*/        OPC_CheckChild1Integer, 0, 
/*123316*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*123318*/        OPC_EmitInteger, MVT::i32, X86::GR32RegClassID,
/*123321*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/*123329*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*123332*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i8, 2/*#Ops*/, 2, 3, 
                  // Src: (X86kextract:{ *:[i8] } VK1:{ *:[v1i1] }:$src, 0:{ *:[iPTR] }) - Complexity = 8
                  // Dst: (EXTRACT_SUBREG:{ *:[i8] } (COPY_TO_REGCLASS:{ *:[i32] } VK1:{ *:[v1i1] }:$src, GR32:{ *:[i32] }), sub_8bit:{ *:[i32] })
/*123340*/      /*Scope*/ 28, /*->123369*/
/*123341*/        OPC_CheckChild0Type, MVT::v2i1,
/*123343*/        OPC_CheckChild1Integer, 0, 
/*123345*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*123347*/        OPC_EmitInteger, MVT::i32, X86::GR32RegClassID,
/*123350*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/*123358*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*123361*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i8, 2/*#Ops*/, 2, 3, 
                  // Src: (X86kextract:{ *:[i8] } VK2:{ *:[v2i1] }:$src, 0:{ *:[iPTR] }) - Complexity = 8
                  // Dst: (EXTRACT_SUBREG:{ *:[i8] } (COPY_TO_REGCLASS:{ *:[i32] } VK2:{ *:[v2i1] }:$src, GR32:{ *:[i32] }), sub_8bit:{ *:[i32] })
/*123369*/      /*Scope*/ 28, /*->123398*/
/*123370*/        OPC_CheckChild0Type, MVT::v4i1,
/*123372*/        OPC_CheckChild1Integer, 0, 
/*123374*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*123376*/        OPC_EmitInteger, MVT::i32, X86::GR32RegClassID,
/*123379*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/*123387*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*123390*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i8, 2/*#Ops*/, 2, 3, 
                  // Src: (X86kextract:{ *:[i8] } VK4:{ *:[v4i1] }:$src, 0:{ *:[iPTR] }) - Complexity = 8
                  // Dst: (EXTRACT_SUBREG:{ *:[i8] } (COPY_TO_REGCLASS:{ *:[i32] } VK4:{ *:[v4i1] }:$src, GR32:{ *:[i32] }), sub_8bit:{ *:[i32] })
/*123398*/      /*Scope*/ 28, /*->123427*/
/*123399*/        OPC_CheckChild0Type, MVT::v8i1,
/*123401*/        OPC_CheckChild1Integer, 0, 
/*123403*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*123405*/        OPC_EmitInteger, MVT::i32, X86::GR32RegClassID,
/*123408*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/*123416*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*123419*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i8, 2/*#Ops*/, 2, 3, 
                  // Src: (X86kextract:{ *:[i8] } VK8:{ *:[v8i1] }:$src, 0:{ *:[iPTR] }) - Complexity = 8
                  // Dst: (EXTRACT_SUBREG:{ *:[i8] } (COPY_TO_REGCLASS:{ *:[i32] } VK8:{ *:[v8i1] }:$src, GR32:{ *:[i32] }), sub_8bit:{ *:[i32] })
/*123427*/      /*Scope*/ 28, /*->123456*/
/*123428*/        OPC_CheckChild0Type, MVT::v16i1,
/*123430*/        OPC_CheckChild1Integer, 0, 
/*123432*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*123434*/        OPC_EmitInteger, MVT::i32, X86::GR32RegClassID,
/*123437*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/*123445*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*123448*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i8, 2/*#Ops*/, 2, 3, 
                  // Src: (X86kextract:{ *:[i8] } VK16:{ *:[v16i1] }:$src, 0:{ *:[iPTR] }) - Complexity = 8
                  // Dst: (EXTRACT_SUBREG:{ *:[i8] } (COPY_TO_REGCLASS:{ *:[i32] } VK16:{ *:[v16i1] }:$src, GR32:{ *:[i32] }), sub_8bit:{ *:[i32] })
/*123456*/      /*Scope*/ 28, /*->123485*/
/*123457*/        OPC_CheckChild0Type, MVT::v32i1,
/*123459*/        OPC_CheckChild1Integer, 0, 
/*123461*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*123463*/        OPC_EmitInteger, MVT::i32, X86::GR32RegClassID,
/*123466*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/*123474*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*123477*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i8, 2/*#Ops*/, 2, 3, 
                  // Src: (X86kextract:{ *:[i8] } VK32:{ *:[v32i1] }:$src, 0:{ *:[iPTR] }) - Complexity = 8
                  // Dst: (EXTRACT_SUBREG:{ *:[i8] } (COPY_TO_REGCLASS:{ *:[i32] } VK32:{ *:[v32i1] }:$src, GR32:{ *:[i32] }), sub_8bit:{ *:[i32] })
/*123485*/      /*Scope*/ 28, /*->123514*/
/*123486*/        OPC_CheckChild0Type, MVT::v64i1,
/*123488*/        OPC_CheckChild1Integer, 0, 
/*123490*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*123492*/        OPC_EmitInteger, MVT::i32, X86::GR32RegClassID,
/*123495*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/*123503*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*123506*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i8, 2/*#Ops*/, 2, 3, 
                  // Src: (X86kextract:{ *:[i8] } VK64:{ *:[v64i1] }:$src, 0:{ *:[iPTR] }) - Complexity = 8
                  // Dst: (EXTRACT_SUBREG:{ *:[i8] } (COPY_TO_REGCLASS:{ *:[i32] } VK64:{ *:[v64i1] }:$src, GR32:{ *:[i32] }), sub_8bit:{ *:[i32] })
/*123514*/      /*Scope*/ 36, /*->123551*/
/*123515*/        OPC_CheckChild0Type, MVT::v4f32,
/*123517*/        OPC_CheckChild1Integer, 0, 
/*123519*/        OPC_CheckType, MVT::f32,
/*123521*/        OPC_Scope, 13, /*->123536*/ // 2 children in Scope
/*123523*/          OPC_CheckPatternPredicate, 122, // (!Subtarget->hasAVX512())
/*123525*/          OPC_EmitInteger, MVT::i32, X86::FR32RegClassID,
/*123528*/          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] })
/*123536*/        /*Scope*/ 13, /*->123550*/
/*123537*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*123539*/          OPC_EmitInteger, MVT::i32, X86::FR32XRegClassID,
/*123542*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f32, 2/*#Ops*/, 0, 1, 
                    // Src: (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src, 0:{ *:[iPTR] }) - Complexity = 8
                    // Dst: (COPY_TO_REGCLASS:{ *:[f32] } VR128X:{ *:[v4f32] }:$src, FR32X:{ *:[i32] })
/*123550*/        0, /*End of Scope*/
/*123551*/      /*Scope*/ 36, /*->123588*/
/*123552*/        OPC_CheckChild0Type, MVT::v2f64,
/*123554*/        OPC_CheckChild1Integer, 0, 
/*123556*/        OPC_CheckType, MVT::f64,
/*123558*/        OPC_Scope, 13, /*->123573*/ // 2 children in Scope
/*123560*/          OPC_CheckPatternPredicate, 122, // (!Subtarget->hasAVX512())
/*123562*/          OPC_EmitInteger, MVT::i32, X86::FR64RegClassID,
/*123565*/          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] })
/*123573*/        /*Scope*/ 13, /*->123587*/
/*123574*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*123576*/          OPC_EmitInteger, MVT::i32, X86::FR64XRegClassID,
/*123579*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::f64, 2/*#Ops*/, 0, 1, 
                    // Src: (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src, 0:{ *:[iPTR] }) - Complexity = 8
                    // Dst: (COPY_TO_REGCLASS:{ *:[f64] } VR128X:{ *:[v2f64] }:$src, FR64X:{ *:[i32] })
/*123587*/        0, /*End of Scope*/
/*123588*/      0, /*End of Scope*/
/*123589*/    0, /*End of Scope*/
/*123590*/  /*SwitchOpcode*/ 40, TARGET_VAL(ISD::CALLSEQ_END),// ->123633
/*123593*/    OPC_RecordNode, // #0 = 'X86callseq_end' chained node
/*123594*/    OPC_CaptureGlueInput,
/*123595*/    OPC_RecordChild1, // #1 = $amt1
/*123596*/    OPC_MoveChild1,
/*123597*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*123600*/    OPC_MoveParent,
/*123601*/    OPC_RecordChild2, // #2 = $amt2
/*123602*/    OPC_MoveChild2,
/*123603*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*123606*/    OPC_MoveParent,
/*123607*/    OPC_Scope, 11, /*->123620*/ // 2 children in Scope
/*123609*/      OPC_CheckPatternPredicate, 102, // (!Subtarget->isTarget64BitLP64())
/*123611*/      OPC_EmitMergeInputChains1_0,
/*123612*/      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)
/*123620*/    /*Scope*/ 11, /*->123632*/
/*123621*/      OPC_CheckPatternPredicate, 103, // (Subtarget->isTarget64BitLP64())
/*123623*/      OPC_EmitMergeInputChains1_0,
/*123624*/      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)
/*123632*/    0, /*End of Scope*/
/*123633*/  /*SwitchOpcode*/ 47, TARGET_VAL(ISD::CALLSEQ_START),// ->123683
/*123636*/    OPC_RecordNode, // #0 = 'X86callseq_start' chained node
/*123637*/    OPC_RecordChild1, // #1 = $amt1
/*123638*/    OPC_MoveChild1,
/*123639*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*123642*/    OPC_MoveParent,
/*123643*/    OPC_RecordChild2, // #2 = $amt2
/*123644*/    OPC_MoveChild2,
/*123645*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*123648*/    OPC_MoveParent,
/*123649*/    OPC_Scope, 15, /*->123666*/ // 2 children in Scope
/*123651*/      OPC_CheckPatternPredicate, 102, // (!Subtarget->isTarget64BitLP64())
/*123653*/      OPC_EmitMergeInputChains1_0,
/*123654*/      OPC_EmitInteger, MVT::i32, 0, 
/*123657*/      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] })
/*123666*/    /*Scope*/ 15, /*->123682*/
/*123667*/      OPC_CheckPatternPredicate, 103, // (Subtarget->isTarget64BitLP64())
/*123669*/      OPC_EmitMergeInputChains1_0,
/*123670*/      OPC_EmitInteger, MVT::i32, 0, 
/*123673*/      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] })
/*123682*/    0, /*End of Scope*/
/*123683*/  /*SwitchOpcode*/ 28, TARGET_VAL(X86ISD::VASTART_SAVE_XMM_REGS),// ->123714
/*123686*/    OPC_RecordNode, // #0 = 'X86vastart_save_xmm_regs' chained node
/*123687*/    OPC_RecordChild1, // #1 = $al
/*123688*/    OPC_RecordChild2, // #2 = $regsavefi
/*123689*/    OPC_MoveChild2,
/*123690*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*123693*/    OPC_MoveParent,
/*123694*/    OPC_RecordChild3, // #3 = $offset
/*123695*/    OPC_MoveChild3,
/*123696*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*123699*/    OPC_MoveParent,
/*123700*/    OPC_EmitMergeInputChains1_0,
/*123701*/    OPC_EmitConvertToTarget, 2,
/*123703*/    OPC_EmitConvertToTarget, 3,
/*123705*/    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)
/*123714*/  /*SwitchOpcode*/ 60|128,3/*444*/, TARGET_VAL(ISD::INTRINSIC_W_CHAIN),// ->124162
/*123718*/    OPC_RecordNode, // #0 = 'intrinsic_w_chain' chained node
/*123719*/    OPC_Scope, 27, /*->123748*/ // 21 children in Scope
/*123721*/      OPC_CheckChild1Integer, 59|128,56/*7227*/, 
/*123724*/      OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->123736
/*123727*/        OPC_CheckPatternPredicate, 61, // (Subtarget->hasLWP())
/*123729*/        OPC_EmitMergeInputChains1_0,
/*123730*/        OPC_MorphNodeTo1, TARGET_VAL(X86::SLWPCB), 0|OPFL_Chain,
                      MVT::i32, 0/*#Ops*/, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 7227:{ *:[iPTR] }) - Complexity = 8
                  // Dst: (SLWPCB:{ *:[i32] })
/*123736*/      /*SwitchType*/ 9, MVT::i64,// ->123747
/*123738*/        OPC_CheckPatternPredicate, 61, // (Subtarget->hasLWP())
/*123740*/        OPC_EmitMergeInputChains1_0,
/*123741*/        OPC_MorphNodeTo1, TARGET_VAL(X86::SLWPCB64), 0|OPFL_Chain,
                      MVT::i64, 0/*#Ops*/, 
                  // Src: (intrinsic_w_chain:{ *:[i64] } 7227:{ *:[iPTR] }) - Complexity = 8
                  // Dst: (SLWPCB64:{ *:[i64] })
/*123747*/      0, // EndSwitchType
/*123748*/    /*Scope*/ 12, /*->123761*/
/*123749*/      OPC_CheckChild1Integer, 42|128,56/*7210*/, 
/*123752*/      OPC_RecordChild2, // #1 = $src
/*123753*/      OPC_EmitMergeInputChains1_0,
/*123754*/      OPC_MorphNodeTo1, TARGET_VAL(X86::RDSSPD), 0|OPFL_Chain,
                    MVT::i32, 1/*#Ops*/, 1, 
                // Src: (intrinsic_w_chain:{ *:[i32] } 7210:{ *:[iPTR] }, GR32:{ *:[i32] }:$src) - Complexity = 8
                // Dst: (RDSSPD:{ *:[i32] } GR32:{ *:[i32] }:$src)
/*123761*/    /*Scope*/ 12, /*->123774*/
/*123762*/      OPC_CheckChild1Integer, 43|128,56/*7211*/, 
/*123765*/      OPC_RecordChild2, // #1 = $src
/*123766*/      OPC_EmitMergeInputChains1_0,
/*123767*/      OPC_MorphNodeTo1, TARGET_VAL(X86::RDSSPQ), 0|OPFL_Chain,
                    MVT::i64, 1/*#Ops*/, 1, 
                // Src: (intrinsic_w_chain:{ *:[i64] } 7211:{ *:[iPTR] }, GR64:{ *:[i64] }:$src) - Complexity = 8
                // Dst: (RDSSPQ:{ *:[i64] } GR64:{ *:[i64] }:$src)
/*123774*/    /*Scope*/ 12, /*->123787*/
/*123775*/      OPC_CheckChild1Integer, 29|128,56/*7197*/, 
/*123778*/      OPC_CheckPatternPredicate, 98, // (Subtarget->hasFSGSBase()) && (Subtarget->is64Bit())
/*123780*/      OPC_EmitMergeInputChains1_0,
/*123781*/      OPC_MorphNodeTo1, TARGET_VAL(X86::RDFSBASE), 0|OPFL_Chain,
                    MVT::i32, 0/*#Ops*/, 
                // Src: (intrinsic_w_chain:{ *:[i32] } 7197:{ *:[iPTR] }) - Complexity = 8
                // Dst: (RDFSBASE:{ *:[i32] })
/*123787*/    /*Scope*/ 12, /*->123800*/
/*123788*/      OPC_CheckChild1Integer, 30|128,56/*7198*/, 
/*123791*/      OPC_CheckPatternPredicate, 98, // (Subtarget->hasFSGSBase()) && (Subtarget->is64Bit())
/*123793*/      OPC_EmitMergeInputChains1_0,
/*123794*/      OPC_MorphNodeTo1, TARGET_VAL(X86::RDFSBASE64), 0|OPFL_Chain,
                    MVT::i64, 0/*#Ops*/, 
                // Src: (intrinsic_w_chain:{ *:[i64] } 7198:{ *:[iPTR] }) - Complexity = 8
                // Dst: (RDFSBASE64:{ *:[i64] })
/*123800*/    /*Scope*/ 12, /*->123813*/
/*123801*/      OPC_CheckChild1Integer, 31|128,56/*7199*/, 
/*123804*/      OPC_CheckPatternPredicate, 98, // (Subtarget->hasFSGSBase()) && (Subtarget->is64Bit())
/*123806*/      OPC_EmitMergeInputChains1_0,
/*123807*/      OPC_MorphNodeTo1, TARGET_VAL(X86::RDGSBASE), 0|OPFL_Chain,
                    MVT::i32, 0/*#Ops*/, 
                // Src: (intrinsic_w_chain:{ *:[i32] } 7199:{ *:[iPTR] }) - Complexity = 8
                // Dst: (RDGSBASE:{ *:[i32] })
/*123813*/    /*Scope*/ 12, /*->123826*/
/*123814*/      OPC_CheckChild1Integer, 32|128,56/*7200*/, 
/*123817*/      OPC_CheckPatternPredicate, 98, // (Subtarget->hasFSGSBase()) && (Subtarget->is64Bit())
/*123819*/      OPC_EmitMergeInputChains1_0,
/*123820*/      OPC_MorphNodeTo1, TARGET_VAL(X86::RDGSBASE64), 0|OPFL_Chain,
                    MVT::i64, 0/*#Ops*/, 
                // Src: (intrinsic_w_chain:{ *:[i64] } 7200:{ *:[iPTR] }) - Complexity = 8
                // Dst: (RDGSBASE64:{ *:[i64] })
/*123826*/    /*Scope*/ 36, /*->123863*/
/*123827*/      OPC_CheckChild1Integer, 33|128,56/*7201*/, 
/*123830*/      OPC_Scope, 9, /*->123841*/ // 2 children in Scope
/*123832*/        OPC_CheckPatternPredicate, 161, // (Subtarget->hasRDPID()) && (!Subtarget->is64Bit())
/*123834*/        OPC_EmitMergeInputChains1_0,
/*123835*/        OPC_MorphNodeTo1, TARGET_VAL(X86::RDPID32), 0|OPFL_Chain,
                      MVT::i32, 0/*#Ops*/, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 7201:{ *:[iPTR] }) - Complexity = 8
                  // Dst: (RDPID32:{ *:[i32] })
/*123841*/      /*Scope*/ 20, /*->123862*/
/*123842*/        OPC_CheckPatternPredicate, 162, // (Subtarget->hasRDPID()) && (Subtarget->is64Bit())
/*123844*/        OPC_EmitMergeInputChains1_0,
/*123845*/        OPC_EmitNode1, TARGET_VAL(X86::RDPID64), 0|OPFL_Chain,
                      MVT::i64, 0/*#Ops*/,  // Results = #1
/*123851*/        OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*123854*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0|OPFL_Chain,
                      MVT::i32, 2/*#Ops*/, 1, 2, 
                  // Src: (intrinsic_w_chain:{ *:[i32] } 7201:{ *:[iPTR] }) - Complexity = 8
                  // Dst: (EXTRACT_SUBREG:{ *:[i32] } (RDPID64:{ *:[i64] }), sub_32bit:{ *:[i32] })
/*123862*/      0, /*End of Scope*/
/*123863*/    /*Scope*/ 13, /*->123877*/
/*123864*/      OPC_CheckChild1Integer, 61|128,55/*7101*/, 
/*123867*/      OPC_CheckPatternPredicate, 99, // (!Subtarget->is64Bit())
/*123869*/      OPC_EmitMergeInputChains1_0,
/*123870*/      OPC_MorphNodeTo2, TARGET_VAL(X86::RDFLAGS32), 0|OPFL_Chain,
                    MVT::i32, MVT::i32, 0/*#Ops*/, 
                // Src: (intrinsic_w_chain:{ *:[i32] } 7101:{ *:[iPTR] }) - Complexity = 8
                // Dst: (RDFLAGS32:{ *:[i32] }:{ *:[i32] })
/*123877*/    /*Scope*/ 13, /*->123891*/
/*123878*/      OPC_CheckChild1Integer, 62|128,55/*7102*/, 
/*123881*/      OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*123883*/      OPC_EmitMergeInputChains1_0,
/*123884*/      OPC_MorphNodeTo2, TARGET_VAL(X86::RDFLAGS64), 0|OPFL_Chain,
                    MVT::i64, MVT::i32, 0/*#Ops*/, 
                // Src: (intrinsic_w_chain:{ *:[i64] } 7102:{ *:[iPTR] }) - Complexity = 8
                // Dst: (RDFLAGS64:{ *:[i64] }:{ *:[i32] })
/*123891*/    /*Scope*/ 12, /*->123904*/
/*123892*/      OPC_CheckChild1Integer, 7|128,58/*7431*/, 
/*123895*/      OPC_CheckPatternPredicate, 83, // (Subtarget->hasRTM())
/*123897*/      OPC_EmitMergeInputChains1_0,
/*123898*/      OPC_MorphNodeTo1, TARGET_VAL(X86::XBEGIN), 0|OPFL_Chain,
                    MVT::i32, 0/*#Ops*/, 
                // Src: (intrinsic_w_chain:{ *:[i32] } 7431:{ *:[iPTR] }) - Complexity = 8
                // Dst: (XBEGIN:{ *:[i32] })
/*123904*/    /*Scope*/ 42, /*->123947*/
/*123905*/      OPC_CheckChild1Integer, 35|128,57/*7331*/, 
/*123908*/      OPC_RecordChild2, // #1 = $src
/*123909*/      OPC_Scope, 17, /*->123928*/ // 2 children in Scope
/*123911*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*123913*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*123916*/        OPC_EmitMergeInputChains1_0,
/*123917*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VLDDQUrm), 0|OPFL_Chain,
                      MVT::v16i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_w_chain:{ *:[v16i8] } 7331:{ *:[iPTR] }, addr:{ *:[iPTR] }:$src) - Complexity = 26
                  // Dst: (VLDDQUrm:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)
/*123928*/      /*Scope*/ 17, /*->123946*/
/*123929*/        OPC_CheckPatternPredicate, 163, // (Subtarget->hasSSE3() && !Subtarget->hasAVX())
/*123931*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*123934*/        OPC_EmitMergeInputChains1_0,
/*123935*/        OPC_MorphNodeTo1, TARGET_VAL(X86::LDDQUrm), 0|OPFL_Chain,
                      MVT::v16i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (intrinsic_w_chain:{ *:[v16i8] } 7331:{ *:[iPTR] }, addr:{ *:[iPTR] }:$src) - Complexity = 26
                  // Dst: (LDDQUrm:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)
/*123946*/      0, /*End of Scope*/
/*123947*/    /*Scope*/ 21, /*->123969*/
/*123948*/      OPC_CheckChild1Integer, 106|128,49/*6378*/, 
/*123951*/      OPC_RecordChild2, // #1 = $src
/*123952*/      OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*123954*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*123957*/      OPC_EmitMergeInputChains1_0,
/*123958*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VLDDQUYrm), 0|OPFL_Chain,
                    MVT::v32i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (intrinsic_w_chain:{ *:[v32i8] } 6378:{ *:[iPTR] }, addr:{ *:[iPTR] }:$src) - Complexity = 26
                // Dst: (VLDDQUYrm:{ *:[v32i8] } addr:{ *:[iPTR] }:$src)
/*123969*/    /*Scope*/ 23, /*->123993*/
/*123970*/      OPC_CheckChild1Integer, 34|128,50/*6434*/, 
/*123973*/      OPC_RecordChild2, // #1 = $src2
/*123974*/      OPC_RecordChild3, // #2 = $src1
/*123975*/      OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/*123977*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*123980*/      OPC_EmitMergeInputChains1_0,
/*123981*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPMASKMOVDrm), 0|OPFL_Chain,
                    MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_w_chain:{ *:[v4i32] } 6434:{ *:[iPTR] }, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v4i32] }:$src1) - Complexity = 26
                // Dst: (VPMASKMOVDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*123993*/    /*Scope*/ 23, /*->124017*/
/*123994*/      OPC_CheckChild1Integer, 35|128,50/*6435*/, 
/*123997*/      OPC_RecordChild2, // #1 = $src2
/*123998*/      OPC_RecordChild3, // #2 = $src1
/*123999*/      OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/*124001*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*124004*/      OPC_EmitMergeInputChains1_0,
/*124005*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPMASKMOVDYrm), 0|OPFL_Chain,
                    MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_w_chain:{ *:[v8i32] } 6435:{ *:[iPTR] }, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v8i32] }:$src1) - Complexity = 26
                // Dst: (VPMASKMOVDYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*124017*/    /*Scope*/ 23, /*->124041*/
/*124018*/      OPC_CheckChild1Integer, 36|128,50/*6436*/, 
/*124021*/      OPC_RecordChild2, // #1 = $src2
/*124022*/      OPC_RecordChild3, // #2 = $src1
/*124023*/      OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/*124025*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*124028*/      OPC_EmitMergeInputChains1_0,
/*124029*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPMASKMOVQrm), 0|OPFL_Chain,
                    MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_w_chain:{ *:[v2i64] } 6436:{ *:[iPTR] }, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v2i64] }:$src1) - Complexity = 26
                // Dst: (VPMASKMOVQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*124041*/    /*Scope*/ 23, /*->124065*/
/*124042*/      OPC_CheckChild1Integer, 37|128,50/*6437*/, 
/*124045*/      OPC_RecordChild2, // #1 = $src2
/*124046*/      OPC_RecordChild3, // #2 = $src1
/*124047*/      OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/*124049*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*124052*/      OPC_EmitMergeInputChains1_0,
/*124053*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPMASKMOVQYrm), 0|OPFL_Chain,
                    MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_w_chain:{ *:[v4i64] } 6437:{ *:[iPTR] }, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v4i64] }:$src1) - Complexity = 26
                // Dst: (VPMASKMOVQYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*124065*/    /*Scope*/ 23, /*->124089*/
/*124066*/      OPC_CheckChild1Integer, 109|128,49/*6381*/, 
/*124069*/      OPC_RecordChild2, // #1 = $src2
/*124070*/      OPC_RecordChild3, // #2 = $src1
/*124071*/      OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*124073*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*124076*/      OPC_EmitMergeInputChains1_0,
/*124077*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VMASKMOVPSrm), 0|OPFL_Chain,
                    MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_w_chain:{ *:[v4f32] } 6381:{ *:[iPTR] }, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v4i32] }:$src1) - Complexity = 26
                // Dst: (VMASKMOVPSrm:{ *:[v4f32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*124089*/    /*Scope*/ 23, /*->124113*/
/*124090*/      OPC_CheckChild1Integer, 110|128,49/*6382*/, 
/*124093*/      OPC_RecordChild2, // #1 = $src2
/*124094*/      OPC_RecordChild3, // #2 = $src1
/*124095*/      OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*124097*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*124100*/      OPC_EmitMergeInputChains1_0,
/*124101*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VMASKMOVPSYrm), 0|OPFL_Chain,
                    MVT::v8f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_w_chain:{ *:[v8f32] } 6382:{ *:[iPTR] }, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v8i32] }:$src1) - Complexity = 26
                // Dst: (VMASKMOVPSYrm:{ *:[v8f32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*124113*/    /*Scope*/ 23, /*->124137*/
/*124114*/      OPC_CheckChild1Integer, 107|128,49/*6379*/, 
/*124117*/      OPC_RecordChild2, // #1 = $src2
/*124118*/      OPC_RecordChild3, // #2 = $src1
/*124119*/      OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*124121*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*124124*/      OPC_EmitMergeInputChains1_0,
/*124125*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VMASKMOVPDrm), 0|OPFL_Chain,
                    MVT::v2f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_w_chain:{ *:[v2f64] } 6379:{ *:[iPTR] }, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v2i64] }:$src1) - Complexity = 26
                // Dst: (VMASKMOVPDrm:{ *:[v2f64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*124137*/    /*Scope*/ 23, /*->124161*/
/*124138*/      OPC_CheckChild1Integer, 108|128,49/*6380*/, 
/*124141*/      OPC_RecordChild2, // #1 = $src2
/*124142*/      OPC_RecordChild3, // #2 = $src1
/*124143*/      OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*124145*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*124148*/      OPC_EmitMergeInputChains1_0,
/*124149*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VMASKMOVPDYrm), 0|OPFL_Chain,
                    MVT::v4f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                // Src: (intrinsic_w_chain:{ *:[v4f64] } 6380:{ *:[iPTR] }, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v4i64] }:$src1) - Complexity = 26
                // Dst: (VMASKMOVPDYrm:{ *:[v4f64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*124161*/    0, /*End of Scope*/
/*124162*/  /*SwitchOpcode*/ 53, TARGET_VAL(X86ISD::SETCC_CARRY),// ->124218
/*124165*/    OPC_CheckChild0Integer, 2, 
/*124167*/    OPC_RecordChild1, // #0 = physreg input EFLAGS
/*124168*/    OPC_SwitchType /*4 cases */, 10, MVT::i8,// ->124181
/*124171*/      OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*124174*/      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] })
/*124181*/    /*SwitchType*/ 10, MVT::i16,// ->124193
/*124183*/      OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*124186*/      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] })
/*124193*/    /*SwitchType*/ 10, MVT::i32,// ->124205
/*124195*/      OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*124198*/      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] })
/*124205*/    /*SwitchType*/ 10, MVT::i64,// ->124217
/*124207*/      OPC_EmitCopyToReg, 0, X86::EFLAGS,
/*124210*/      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] })
/*124217*/    0, // EndSwitchType
/*124218*/  /*SwitchOpcode*/ 15, TARGET_VAL(X86ISD::IRET),// ->124236
/*124221*/    OPC_RecordNode, // #0 = 'X86iret' chained node
/*124222*/    OPC_CaptureGlueInput,
/*124223*/    OPC_RecordChild1, // #1 = $adj
/*124224*/    OPC_MoveChild1,
/*124225*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*124228*/    OPC_MoveParent,
/*124229*/    OPC_EmitMergeInputChains1_0,
/*124230*/    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)
/*124236*/  /*SwitchOpcode*/ 15, TARGET_VAL(X86ISD::RET_FLAG),// ->124254
/*124239*/    OPC_RecordNode, // #0 = 'X86retflag' chained node
/*124240*/    OPC_CaptureGlueInput,
/*124241*/    OPC_RecordChild1, // #1 = $adj
/*124242*/    OPC_MoveChild1,
/*124243*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*124246*/    OPC_MoveParent,
/*124247*/    OPC_EmitMergeInputChains1_0,
/*124248*/    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)
/*124254*/  /*SwitchOpcode*/ 17, TARGET_VAL(X86ISD::SETCC),// ->124274
/*124257*/    OPC_RecordChild0, // #0 = $cond
/*124258*/    OPC_MoveChild0,
/*124259*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*124262*/    OPC_MoveParent,
/*124263*/    OPC_RecordChild1, // #1 = physreg input EFLAGS
/*124264*/    OPC_EmitCopyToReg, 1, X86::EFLAGS,
/*124267*/    OPC_MorphNodeTo1, TARGET_VAL(X86::SETCCr), 0|OPFL_GlueInput,
                  MVT::i8, 1/*#Ops*/, 0, 
              // Src: (X86setcc:{ *:[i8] } (timm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 6
              // Dst: (SETCCr:{ *:[i8] } (timm:{ *:[i8] }):$cond)
/*124274*/  /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::BRCOND),// ->124302
/*124277*/    OPC_RecordNode, // #0 = 'X86brcond' chained node
/*124278*/    OPC_RecordChild1, // #1 = $dst
/*124279*/    OPC_MoveChild1,
/*124280*/    OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
/*124283*/    OPC_MoveParent,
/*124284*/    OPC_RecordChild2, // #2 = $cond
/*124285*/    OPC_MoveChild2,
/*124286*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*124289*/    OPC_MoveParent,
/*124290*/    OPC_RecordChild3, // #3 = physreg input EFLAGS
/*124291*/    OPC_EmitMergeInputChains1_0,
/*124292*/    OPC_EmitCopyToReg, 3, X86::EFLAGS,
/*124295*/    OPC_MorphNodeTo0, TARGET_VAL(X86::JCC_1), 0|OPFL_Chain|OPFL_GlueInput,
                  2/*#Ops*/, 1, 2, 
              // Src: (X86brcond (bb:{ *:[Other] }):$dst, (timm:{ *:[i8] }):$cond, EFLAGS:{ *:[i32] }) - Complexity = 6
              // Dst: (JCC_1 (bb:{ *:[Other] }):$dst, (timm:{ *:[i8] }):$cond)
/*124302*/  /*SwitchOpcode*/ 48, TARGET_VAL(X86ISD::PEXTRW),// ->124353
/*124305*/    OPC_RecordChild0, // #0 = $src1
/*124306*/    OPC_RecordChild1, // #1 = $src2
/*124307*/    OPC_MoveChild1,
/*124308*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*124311*/    OPC_MoveParent,
/*124312*/    OPC_Scope, 12, /*->124326*/ // 3 children in Scope
/*124314*/      OPC_CheckPatternPredicate, 14, // (Subtarget->hasAVX()) && (!Subtarget->hasBWI())
/*124316*/      OPC_EmitConvertToTarget, 1,
/*124318*/      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)
/*124326*/    /*Scope*/ 12, /*->124339*/
/*124327*/      OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*124329*/      OPC_EmitConvertToTarget, 1,
/*124331*/      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)
/*124339*/    /*Scope*/ 12, /*->124352*/
/*124340*/      OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*124342*/      OPC_EmitConvertToTarget, 1,
/*124344*/      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)
/*124352*/    0, /*End of Scope*/
/*124353*/  /*SwitchOpcode*/ 48, TARGET_VAL(X86ISD::PEXTRB),// ->124404
/*124356*/    OPC_RecordChild0, // #0 = $src1
/*124357*/    OPC_RecordChild1, // #1 = $src2
/*124358*/    OPC_MoveChild1,
/*124359*/    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*124362*/    OPC_MoveParent,
/*124363*/    OPC_Scope, 12, /*->124377*/ // 3 children in Scope
/*124365*/      OPC_CheckPatternPredicate, 14, // (Subtarget->hasAVX()) && (!Subtarget->hasBWI())
/*124367*/      OPC_EmitConvertToTarget, 1,
/*124369*/      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)
/*124377*/    /*Scope*/ 12, /*->124390*/
/*124378*/      OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*124380*/      OPC_EmitConvertToTarget, 1,
/*124382*/      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)
/*124390*/    /*Scope*/ 12, /*->124403*/
/*124391*/      OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*124393*/      OPC_EmitConvertToTarget, 1,
/*124395*/      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)
/*124403*/    0, /*End of Scope*/
/*124404*/  /*SwitchOpcode*/ 73, TARGET_VAL(X86ISD::CVTS2SI_RND),// ->124480
/*124407*/    OPC_RecordChild0, // #0 = $src
/*124408*/    OPC_Scope, 34, /*->124444*/ // 2 children in Scope
/*124410*/      OPC_CheckChild0Type, MVT::v4f32,
/*124412*/      OPC_RecordChild1, // #1 = $rc
/*124413*/      OPC_MoveChild1,
/*124414*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*124417*/      OPC_MoveParent,
/*124418*/      OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->124431
/*124421*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*124423*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSS2SIZrrb_Int), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86cvts2siRnd:{ *:[i32] } VR128X:{ *:[v4f32] }:$src, (timm:{ *:[i32] }):$rc) - Complexity = 6
                  // Dst: (VCVTSS2SIZrrb_Int:{ *:[i32] } VR128X:{ *:[v4f32] }:$src, (timm:{ *:[i32] }):$rc)
/*124431*/      /*SwitchType*/ 10, MVT::i64,// ->124443
/*124433*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*124435*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSS2SI64Zrrb_Int), 0,
                      MVT::i64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86cvts2siRnd:{ *:[i64] } VR128X:{ *:[v4f32] }:$src, (timm:{ *:[i32] }):$rc) - Complexity = 6
                  // Dst: (VCVTSS2SI64Zrrb_Int:{ *:[i64] } VR128X:{ *:[v4f32] }:$src, (timm:{ *:[i32] }):$rc)
/*124443*/      0, // EndSwitchType
/*124444*/    /*Scope*/ 34, /*->124479*/
/*124445*/      OPC_CheckChild0Type, MVT::v2f64,
/*124447*/      OPC_RecordChild1, // #1 = $rc
/*124448*/      OPC_MoveChild1,
/*124449*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*124452*/      OPC_MoveParent,
/*124453*/      OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->124466
/*124456*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*124458*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSD2SIZrrb_Int), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86cvts2siRnd:{ *:[i32] } VR128X:{ *:[v2f64] }:$src, (timm:{ *:[i32] }):$rc) - Complexity = 6
                  // Dst: (VCVTSD2SIZrrb_Int:{ *:[i32] } VR128X:{ *:[v2f64] }:$src, (timm:{ *:[i32] }):$rc)
/*124466*/      /*SwitchType*/ 10, MVT::i64,// ->124478
/*124468*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*124470*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSD2SI64Zrrb_Int), 0,
                      MVT::i64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86cvts2siRnd:{ *:[i64] } VR128X:{ *:[v2f64] }:$src, (timm:{ *:[i32] }):$rc) - Complexity = 6
                  // Dst: (VCVTSD2SI64Zrrb_Int:{ *:[i64] } VR128X:{ *:[v2f64] }:$src, (timm:{ *:[i32] }):$rc)
/*124478*/      0, // EndSwitchType
/*124479*/    0, /*End of Scope*/
/*124480*/  /*SwitchOpcode*/ 73, TARGET_VAL(X86ISD::CVTS2UI_RND),// ->124556
/*124483*/    OPC_RecordChild0, // #0 = $src
/*124484*/    OPC_Scope, 34, /*->124520*/ // 2 children in Scope
/*124486*/      OPC_CheckChild0Type, MVT::v4f32,
/*124488*/      OPC_RecordChild1, // #1 = $rc
/*124489*/      OPC_MoveChild1,
/*124490*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*124493*/      OPC_MoveParent,
/*124494*/      OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->124507
/*124497*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*124499*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSS2USIZrrb_Int), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86cvts2usiRnd:{ *:[i32] } VR128X:{ *:[v4f32] }:$src, (timm:{ *:[i32] }):$rc) - Complexity = 6
                  // Dst: (VCVTSS2USIZrrb_Int:{ *:[i32] } VR128X:{ *:[v4f32] }:$src, (timm:{ *:[i32] }):$rc)
/*124507*/      /*SwitchType*/ 10, MVT::i64,// ->124519
/*124509*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*124511*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSS2USI64Zrrb_Int), 0,
                      MVT::i64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86cvts2usiRnd:{ *:[i64] } VR128X:{ *:[v4f32] }:$src, (timm:{ *:[i32] }):$rc) - Complexity = 6
                  // Dst: (VCVTSS2USI64Zrrb_Int:{ *:[i64] } VR128X:{ *:[v4f32] }:$src, (timm:{ *:[i32] }):$rc)
/*124519*/      0, // EndSwitchType
/*124520*/    /*Scope*/ 34, /*->124555*/
/*124521*/      OPC_CheckChild0Type, MVT::v2f64,
/*124523*/      OPC_RecordChild1, // #1 = $rc
/*124524*/      OPC_MoveChild1,
/*124525*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*124528*/      OPC_MoveParent,
/*124529*/      OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->124542
/*124532*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*124534*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSD2USIZrrb_Int), 0,
                      MVT::i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86cvts2usiRnd:{ *:[i32] } VR128X:{ *:[v2f64] }:$src, (timm:{ *:[i32] }):$rc) - Complexity = 6
                  // Dst: (VCVTSD2USIZrrb_Int:{ *:[i32] } VR128X:{ *:[v2f64] }:$src, (timm:{ *:[i32] }):$rc)
/*124542*/      /*SwitchType*/ 10, MVT::i64,// ->124554
/*124544*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*124546*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSD2USI64Zrrb_Int), 0,
                      MVT::i64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86cvts2usiRnd:{ *:[i64] } VR128X:{ *:[v2f64] }:$src, (timm:{ *:[i32] }):$rc) - Complexity = 6
                  // Dst: (VCVTSD2USI64Zrrb_Int:{ *:[i64] } VR128X:{ *:[v2f64] }:$src, (timm:{ *:[i32] }):$rc)
/*124554*/      0, // EndSwitchType
/*124555*/    0, /*End of Scope*/
/*124556*/  /*SwitchOpcode*/ 24|128,1/*152*/, TARGET_VAL(X86ISD::Wrapper),// ->124712
/*124560*/    OPC_Scope, 13, /*->124575*/ // 3 children in Scope
/*124562*/      OPC_RecordNode, // #0 = $src
/*124563*/      OPC_CheckType, MVT::i64,
/*124565*/      OPC_CheckComplexPat, /*CP*/11, /*#*/0, // selectMOV64Imm32:$src #1
/*124568*/      OPC_MorphNodeTo1, TARGET_VAL(X86::MOV32ri64), 0,
                    MVT::i64, 1/*#Ops*/, 1, 
                // Src: mov64imm32:{ *:[i64] }:$src - Complexity = 6
                // Dst: (MOV32ri64:{ *:[i64] } mov64imm32:{ *:[i64] }:$src)
/*124575*/    /*Scope*/ 107, /*->124683*/
/*124576*/      OPC_RecordChild0, // #0 = $dst
/*124577*/      OPC_MoveChild0,
/*124578*/      OPC_SwitchOpcode /*7 cases */, 12, TARGET_VAL(ISD::TargetConstantPool),// ->124594
/*124582*/        OPC_MoveParent,
/*124583*/        OPC_CheckType, MVT::i64,
/*124585*/        OPC_CheckPatternPredicate, 164, // (TM.getCodeModel() == CodeModel::Kernel)
/*124587*/        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)
/*124594*/      /*SwitchOpcode*/ 12, TARGET_VAL(ISD::TargetJumpTable),// ->124609
/*124597*/        OPC_MoveParent,
/*124598*/        OPC_CheckType, MVT::i64,
/*124600*/        OPC_CheckPatternPredicate, 164, // (TM.getCodeModel() == CodeModel::Kernel)
/*124602*/        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)
/*124609*/      /*SwitchOpcode*/ 12, TARGET_VAL(ISD::TargetGlobalAddress),// ->124624
/*124612*/        OPC_MoveParent,
/*124613*/        OPC_CheckType, MVT::i64,
/*124615*/        OPC_CheckPatternPredicate, 164, // (TM.getCodeModel() == CodeModel::Kernel)
/*124617*/        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)
/*124624*/      /*SwitchOpcode*/ 12, TARGET_VAL(ISD::TargetExternalSymbol),// ->124639
/*124627*/        OPC_MoveParent,
/*124628*/        OPC_CheckType, MVT::i64,
/*124630*/        OPC_CheckPatternPredicate, 164, // (TM.getCodeModel() == CodeModel::Kernel)
/*124632*/        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)
/*124639*/      /*SwitchOpcode*/ 12, TARGET_VAL(ISD::MCSymbol),// ->124654
/*124642*/        OPC_MoveParent,
/*124643*/        OPC_CheckType, MVT::i64,
/*124645*/        OPC_CheckPatternPredicate, 164, // (TM.getCodeModel() == CodeModel::Kernel)
/*124647*/        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)
/*124654*/      /*SwitchOpcode*/ 12, TARGET_VAL(ISD::TargetBlockAddress),// ->124669
/*124657*/        OPC_MoveParent,
/*124658*/        OPC_CheckType, MVT::i64,
/*124660*/        OPC_CheckPatternPredicate, 164, // (TM.getCodeModel() == CodeModel::Kernel)
/*124662*/        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)
/*124669*/      /*SwitchOpcode*/ 10, TARGET_VAL(ISD::TargetGlobalTLSAddress),// ->124682
/*124672*/        OPC_MoveParent,
/*124673*/        OPC_CheckType, MVT::i64,
/*124675*/        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)
/*124682*/      0, // EndSwitchOpcode
/*124683*/    /*Scope*/ 27, /*->124711*/
/*124684*/      OPC_RecordNode, // #0 = $src
/*124685*/      OPC_SwitchType /*2 cases */, 10, MVT::i32,// ->124698
/*124688*/        OPC_CheckComplexPat, /*CP*/1, /*#*/0, // selectRelocImm:$src #1
/*124691*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MOV32ri), 0,
                      MVT::i32, 1/*#Ops*/, 1, 
                  // Src: relocImm:{ *:[i32] }:$src - Complexity = 3
                  // Dst: (MOV32ri:{ *:[i32] } relocImm:{ *:[i32] }:$src)
/*124698*/      /*SwitchType*/ 10, MVT::i64,// ->124710
/*124700*/        OPC_CheckComplexPat, /*CP*/1, /*#*/0, // selectRelocImm:$src #1
/*124703*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MOV64ri), 0,
                      MVT::i64, 1/*#Ops*/, 1, 
                  // Src: relocImm:{ *:[i64] }:$src - Complexity = 3
                  // Dst: (MOV64ri:{ *:[i64] } relocImm:{ *:[i64] }:$src)
/*124710*/      0, // EndSwitchType
/*124711*/    0, /*End of Scope*/
/*124712*/  /*SwitchOpcode*/ 26, TARGET_VAL(ISD::LOCAL_RECOVER),// ->124741
/*124715*/    OPC_RecordChild0, // #0 = $dst
/*124716*/    OPC_MoveChild0,
/*124717*/    OPC_CheckOpcode, TARGET_VAL(ISD::MCSymbol),
/*124720*/    OPC_MoveParent,
/*124721*/    OPC_SwitchType /*2 cases */, 7, MVT::i32,// ->124731
/*124724*/      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)
/*124731*/    /*SwitchType*/ 7, MVT::i64,// ->124740
/*124733*/      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)
/*124740*/    0, // EndSwitchType
/*124741*/  /*SwitchOpcode*/ 12, TARGET_VAL(X86ISD::SAHF),// ->124756
/*124744*/    OPC_RecordChild0, // #0 = physreg input AH
/*124745*/    OPC_CheckPatternPredicate, 165, // (Subtarget->hasLAHFSAHF())
/*124747*/    OPC_EmitCopyToReg, 0, X86::AH,
/*124750*/    OPC_MorphNodeTo1, TARGET_VAL(X86::SAHF), 0|OPFL_GlueInput,
                  MVT::i32, 0/*#Ops*/, 
              // Src: (X86sahf:{ *:[i32] } AH:{ *:[i8] }) - Complexity = 3
              // Dst: (SAHF:{ *:[i32] })
/*124756*/  /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::RDRAND),// ->124798
/*124759*/    OPC_RecordNode, // #0 = 'X86rdrand' chained node
/*124760*/    OPC_SwitchType /*3 cases */, 10, MVT::i16,// ->124773
/*124763*/      OPC_CheckPatternPredicate, 166, // (Subtarget->hasRDRAND())
/*124765*/      OPC_EmitMergeInputChains1_0,
/*124766*/      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] })
/*124773*/    /*SwitchType*/ 10, MVT::i32,// ->124785
/*124775*/      OPC_CheckPatternPredicate, 166, // (Subtarget->hasRDRAND())
/*124777*/      OPC_EmitMergeInputChains1_0,
/*124778*/      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] })
/*124785*/    /*SwitchType*/ 10, MVT::i64,// ->124797
/*124787*/      OPC_CheckPatternPredicate, 166, // (Subtarget->hasRDRAND())
/*124789*/      OPC_EmitMergeInputChains1_0,
/*124790*/      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] })
/*124797*/    0, // EndSwitchType
/*124798*/  /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::RDSEED),// ->124840
/*124801*/    OPC_RecordNode, // #0 = 'X86rdseed' chained node
/*124802*/    OPC_SwitchType /*3 cases */, 10, MVT::i16,// ->124815
/*124805*/      OPC_CheckPatternPredicate, 167, // (Subtarget->hasRDSEED())
/*124807*/      OPC_EmitMergeInputChains1_0,
/*124808*/      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] })
/*124815*/    /*SwitchType*/ 10, MVT::i32,// ->124827
/*124817*/      OPC_CheckPatternPredicate, 167, // (Subtarget->hasRDSEED())
/*124819*/      OPC_EmitMergeInputChains1_0,
/*124820*/      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] })
/*124827*/    /*SwitchType*/ 10, MVT::i64,// ->124839
/*124829*/      OPC_CheckPatternPredicate, 167, // (Subtarget->hasRDSEED())
/*124831*/      OPC_EmitMergeInputChains1_0,
/*124832*/      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] })
/*124839*/    0, // EndSwitchType
/*124840*/  /*SwitchOpcode*/ 22, TARGET_VAL(X86ISD::UMWAIT),// ->124865
/*124843*/    OPC_RecordNode, // #0 = 'X86umwait' chained node
/*124844*/    OPC_RecordChild1, // #1 = $src
/*124845*/    OPC_CheckChild1Type, MVT::i32,
/*124847*/    OPC_RecordChild2, // #2 = physreg input EDX
/*124848*/    OPC_RecordChild3, // #3 = physreg input EAX
/*124849*/    OPC_CheckPatternPredicate, 86, // (Subtarget->hasWAITPKG())
/*124851*/    OPC_EmitMergeInputChains1_0,
/*124852*/    OPC_EmitCopyToReg, 2, X86::EDX,
/*124855*/    OPC_EmitCopyToReg, 3, X86::EAX,
/*124858*/    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)
/*124865*/  /*SwitchOpcode*/ 22, TARGET_VAL(X86ISD::TPAUSE),// ->124890
/*124868*/    OPC_RecordNode, // #0 = 'X86tpause' chained node
/*124869*/    OPC_RecordChild1, // #1 = $src
/*124870*/    OPC_CheckChild1Type, MVT::i32,
/*124872*/    OPC_RecordChild2, // #2 = physreg input EDX
/*124873*/    OPC_RecordChild3, // #3 = physreg input EAX
/*124874*/    OPC_CheckPatternPredicate, 86, // (Subtarget->hasWAITPKG())
/*124876*/    OPC_EmitMergeInputChains1_0,
/*124877*/    OPC_EmitCopyToReg, 2, X86::EDX,
/*124880*/    OPC_EmitCopyToReg, 3, X86::EAX,
/*124883*/    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)
/*124890*/  /*SwitchOpcode*/ 14, TARGET_VAL(ISD::BR),// ->124907
/*124893*/    OPC_RecordNode, // #0 = 'br' chained node
/*124894*/    OPC_RecordChild1, // #1 = $dst
/*124895*/    OPC_MoveChild1,
/*124896*/    OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
/*124899*/    OPC_MoveParent,
/*124900*/    OPC_EmitMergeInputChains1_0,
/*124901*/    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)
/*124907*/  /*SwitchOpcode*/ 10, TARGET_VAL(X86ISD::FNSTSW16r),// ->124920
/*124910*/    OPC_RecordChild0, // #0 = physreg input FPSW
/*124911*/    OPC_EmitCopyToReg, 0, X86::FPSW,
/*124914*/    OPC_MorphNodeTo1, TARGET_VAL(X86::FNSTSW16r), 0|OPFL_GlueInput,
                  MVT::i16, 0/*#Ops*/, 
              // Src: (X86fp_stsw:{ *:[i16] } FPSW:{ *:[i16] }) - Complexity = 3
              // Dst: (FNSTSW16r:{ *:[i16] })
/*124920*/  /*SwitchOpcode*/ 60|128,1/*188*/, TARGET_VAL(X86ISD::MOVMSK),// ->125112
/*124924*/    OPC_RecordChild0, // #0 = $src
/*124925*/    OPC_Scope, 24, /*->124951*/ // 10 children in Scope
/*124927*/      OPC_CheckChild0Type, MVT::v4f32,
/*124929*/      OPC_Scope, 9, /*->124940*/ // 2 children in Scope
/*124931*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*124933*/        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)
/*124940*/      /*Scope*/ 9, /*->124950*/
/*124941*/        OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*124943*/        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)
/*124950*/      0, /*End of Scope*/
/*124951*/    /*Scope*/ 24, /*->124976*/
/*124952*/      OPC_CheckChild0Type, MVT::v2f64,
/*124954*/      OPC_Scope, 9, /*->124965*/ // 2 children in Scope
/*124956*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*124958*/        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)
/*124965*/      /*Scope*/ 9, /*->124975*/
/*124966*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*124968*/        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)
/*124975*/      0, /*End of Scope*/
/*124976*/    /*Scope*/ 11, /*->124988*/
/*124977*/      OPC_CheckChild0Type, MVT::v8f32,
/*124979*/      OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*124981*/      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)
/*124988*/    /*Scope*/ 11, /*->125000*/
/*124989*/      OPC_CheckChild0Type, MVT::v4f64,
/*124991*/      OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*124993*/      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)
/*125000*/    /*Scope*/ 24, /*->125025*/
/*125001*/      OPC_CheckChild0Type, MVT::v4i32,
/*125003*/      OPC_Scope, 9, /*->125014*/ // 2 children in Scope
/*125005*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*125007*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVMSKPSrr), 0,
                      MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (X86movmsk:{ *:[i32] } VR128:{ *:[v4i32] }:$src) - Complexity = 3
                  // Dst: (VMOVMSKPSrr:{ *:[i32] } VR128:{ *:[v4i32] }:$src)
/*125014*/      /*Scope*/ 9, /*->125024*/
/*125015*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*125017*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MOVMSKPSrr), 0,
                      MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (X86movmsk:{ *:[i32] } VR128:{ *:[v4i32] }:$src) - Complexity = 3
                  // Dst: (MOVMSKPSrr:{ *:[i32] } VR128:{ *:[v4i32] }:$src)
/*125024*/      0, /*End of Scope*/
/*125025*/    /*Scope*/ 24, /*->125050*/
/*125026*/      OPC_CheckChild0Type, MVT::v2i64,
/*125028*/      OPC_Scope, 9, /*->125039*/ // 2 children in Scope
/*125030*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*125032*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVMSKPDrr), 0,
                      MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (X86movmsk:{ *:[i32] } VR128:{ *:[v2i64] }:$src) - Complexity = 3
                  // Dst: (VMOVMSKPDrr:{ *:[i32] } VR128:{ *:[v2i64] }:$src)
/*125039*/      /*Scope*/ 9, /*->125049*/
/*125040*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*125042*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MOVMSKPDrr), 0,
                      MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (X86movmsk:{ *:[i32] } VR128:{ *:[v2i64] }:$src) - Complexity = 3
                  // Dst: (MOVMSKPDrr:{ *:[i32] } VR128:{ *:[v2i64] }:$src)
/*125049*/      0, /*End of Scope*/
/*125050*/    /*Scope*/ 11, /*->125062*/
/*125051*/      OPC_CheckChild0Type, MVT::v8i32,
/*125053*/      OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*125055*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVMSKPSYrr), 0,
                    MVT::i32, 1/*#Ops*/, 0, 
                // Src: (X86movmsk:{ *:[i32] } VR256:{ *:[v8i32] }:$src) - Complexity = 3
                // Dst: (VMOVMSKPSYrr:{ *:[i32] } VR256:{ *:[v8i32] }:$src)
/*125062*/    /*Scope*/ 11, /*->125074*/
/*125063*/      OPC_CheckChild0Type, MVT::v4i64,
/*125065*/      OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*125067*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVMSKPDYrr), 0,
                    MVT::i32, 1/*#Ops*/, 0, 
                // Src: (X86movmsk:{ *:[i32] } VR256:{ *:[v4i64] }:$src) - Complexity = 3
                // Dst: (VMOVMSKPDYrr:{ *:[i32] } VR256:{ *:[v4i64] }:$src)
/*125074*/    /*Scope*/ 24, /*->125099*/
/*125075*/      OPC_CheckChild0Type, MVT::v16i8,
/*125077*/      OPC_Scope, 9, /*->125088*/ // 2 children in Scope
/*125079*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*125081*/        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)
/*125088*/      /*Scope*/ 9, /*->125098*/
/*125089*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*125091*/        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)
/*125098*/      0, /*End of Scope*/
/*125099*/    /*Scope*/ 11, /*->125111*/
/*125100*/      OPC_CheckChild0Type, MVT::v32i8,
/*125102*/      OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/*125104*/      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)
/*125111*/    0, /*End of Scope*/
/*125112*/  /*SwitchOpcode*/ 7, TARGET_VAL(X86ISD::MFENCE),// ->125122
/*125115*/    OPC_RecordNode, // #0 = 'X86MFence' chained node
/*125116*/    OPC_EmitMergeInputChains1_0,
/*125117*/    OPC_MorphNodeTo0, TARGET_VAL(X86::MFENCE), 0|OPFL_Chain,
                  0/*#Ops*/, 
              // Src: (X86MFence) - Complexity = 3
              // Dst: (MFENCE)
/*125122*/  /*SwitchOpcode*/ 59, TARGET_VAL(X86ISD::KORTEST),// ->125184
/*125125*/    OPC_RecordChild0, // #0 = $src1
/*125126*/    OPC_Scope, 13, /*->125141*/ // 4 children in Scope
/*125128*/      OPC_CheckChild0Type, MVT::v8i1,
/*125130*/      OPC_RecordChild1, // #1 = $src2
/*125131*/      OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*125133*/      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)
/*125141*/    /*Scope*/ 13, /*->125155*/
/*125142*/      OPC_CheckChild0Type, MVT::v16i1,
/*125144*/      OPC_RecordChild1, // #1 = $src2
/*125145*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*125147*/      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)
/*125155*/    /*Scope*/ 13, /*->125169*/
/*125156*/      OPC_CheckChild0Type, MVT::v64i1,
/*125158*/      OPC_RecordChild1, // #1 = $src2
/*125159*/      OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*125161*/      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)
/*125169*/    /*Scope*/ 13, /*->125183*/
/*125170*/      OPC_CheckChild0Type, MVT::v32i1,
/*125172*/      OPC_RecordChild1, // #1 = $src2
/*125173*/      OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*125175*/      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)
/*125183*/    0, /*End of Scope*/
/*125184*/  /*SwitchOpcode*/ 59, TARGET_VAL(X86ISD::KTEST),// ->125246
/*125187*/    OPC_RecordChild0, // #0 = $src1
/*125188*/    OPC_Scope, 13, /*->125203*/ // 4 children in Scope
/*125190*/      OPC_CheckChild0Type, MVT::v8i1,
/*125192*/      OPC_RecordChild1, // #1 = $src2
/*125193*/      OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*125195*/      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)
/*125203*/    /*Scope*/ 13, /*->125217*/
/*125204*/      OPC_CheckChild0Type, MVT::v16i1,
/*125206*/      OPC_RecordChild1, // #1 = $src2
/*125207*/      OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*125209*/      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)
/*125217*/    /*Scope*/ 13, /*->125231*/
/*125218*/      OPC_CheckChild0Type, MVT::v64i1,
/*125220*/      OPC_RecordChild1, // #1 = $src2
/*125221*/      OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*125223*/      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)
/*125231*/    /*Scope*/ 13, /*->125245*/
/*125232*/      OPC_CheckChild0Type, MVT::v32i1,
/*125234*/      OPC_RecordChild1, // #1 = $src2
/*125235*/      OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*125237*/      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)
/*125245*/    0, /*End of Scope*/
/*125246*/  /*SwitchOpcode*/ 57, TARGET_VAL(X86ISD::CVTTS2SI_SAE),// ->125306
/*125249*/    OPC_RecordChild0, // #0 = $src
/*125250*/    OPC_Scope, 26, /*->125278*/ // 2 children in Scope
/*125252*/      OPC_CheckChild0Type, MVT::v4f32,
/*125254*/      OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->125266
/*125257*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*125259*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSS2SIZrrb_Int), 0,
                      MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (X86cvtts2IntSAE:{ *:[i32] } VR128X:{ *:[v4f32] }:$src) - Complexity = 3
                  // Dst: (VCVTTSS2SIZrrb_Int:{ *:[i32] } VR128X:{ *:[v4f32] }:$src)
/*125266*/      /*SwitchType*/ 9, MVT::i64,// ->125277
/*125268*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*125270*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSS2SI64Zrrb_Int), 0,
                      MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (X86cvtts2IntSAE:{ *:[i64] } VR128X:{ *:[v4f32] }:$src) - Complexity = 3
                  // Dst: (VCVTTSS2SI64Zrrb_Int:{ *:[i64] } VR128X:{ *:[v4f32] }:$src)
/*125277*/      0, // EndSwitchType
/*125278*/    /*Scope*/ 26, /*->125305*/
/*125279*/      OPC_CheckChild0Type, MVT::v2f64,
/*125281*/      OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->125293
/*125284*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*125286*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSD2SIZrrb_Int), 0,
                      MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (X86cvtts2IntSAE:{ *:[i32] } VR128X:{ *:[v2f64] }:$src) - Complexity = 3
                  // Dst: (VCVTTSD2SIZrrb_Int:{ *:[i32] } VR128X:{ *:[v2f64] }:$src)
/*125293*/      /*SwitchType*/ 9, MVT::i64,// ->125304
/*125295*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*125297*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSD2SI64Zrrb_Int), 0,
                      MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (X86cvtts2IntSAE:{ *:[i64] } VR128X:{ *:[v2f64] }:$src) - Complexity = 3
                  // Dst: (VCVTTSD2SI64Zrrb_Int:{ *:[i64] } VR128X:{ *:[v2f64] }:$src)
/*125304*/      0, // EndSwitchType
/*125305*/    0, /*End of Scope*/
/*125306*/  /*SwitchOpcode*/ 57, TARGET_VAL(X86ISD::CVTTS2UI_SAE),// ->125366
/*125309*/    OPC_RecordChild0, // #0 = $src
/*125310*/    OPC_Scope, 26, /*->125338*/ // 2 children in Scope
/*125312*/      OPC_CheckChild0Type, MVT::v4f32,
/*125314*/      OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->125326
/*125317*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*125319*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSS2USIZrrb_Int), 0,
                      MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (X86cvtts2UIntSAE:{ *:[i32] } VR128X:{ *:[v4f32] }:$src) - Complexity = 3
                  // Dst: (VCVTTSS2USIZrrb_Int:{ *:[i32] } VR128X:{ *:[v4f32] }:$src)
/*125326*/      /*SwitchType*/ 9, MVT::i64,// ->125337
/*125328*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*125330*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSS2USI64Zrrb_Int), 0,
                      MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (X86cvtts2UIntSAE:{ *:[i64] } VR128X:{ *:[v4f32] }:$src) - Complexity = 3
                  // Dst: (VCVTTSS2USI64Zrrb_Int:{ *:[i64] } VR128X:{ *:[v4f32] }:$src)
/*125337*/      0, // EndSwitchType
/*125338*/    /*Scope*/ 26, /*->125365*/
/*125339*/      OPC_CheckChild0Type, MVT::v2f64,
/*125341*/      OPC_SwitchType /*2 cases */, 9, MVT::i32,// ->125353
/*125344*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*125346*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSD2USIZrrb_Int), 0,
                      MVT::i32, 1/*#Ops*/, 0, 
                  // Src: (X86cvtts2UIntSAE:{ *:[i32] } VR128X:{ *:[v2f64] }:$src) - Complexity = 3
                  // Dst: (VCVTTSD2USIZrrb_Int:{ *:[i32] } VR128X:{ *:[v2f64] }:$src)
/*125353*/      /*SwitchType*/ 9, MVT::i64,// ->125364
/*125355*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*125357*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTSD2USI64Zrrb_Int), 0,
                      MVT::i64, 1/*#Ops*/, 0, 
                  // Src: (X86cvtts2UIntSAE:{ *:[i64] } VR128X:{ *:[v2f64] }:$src) - Complexity = 3
                  // Dst: (VCVTTSD2USI64Zrrb_Int:{ *:[i64] } VR128X:{ *:[v2f64] }:$src)
/*125364*/      0, // EndSwitchType
/*125365*/    0, /*End of Scope*/
/*125366*/  /*SwitchOpcode*/ 10, TARGET_VAL(X86ISD::MMX_MOVD2W),// ->125379
/*125369*/    OPC_RecordChild0, // #0 = $src
/*125370*/    OPC_CheckPatternPredicate, 26, // (Subtarget->hasMMX())
/*125372*/    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)
/*125379*/  /*SwitchOpcode*/ 10, TARGET_VAL(X86ISD::XTEST),// ->125392
/*125382*/    OPC_RecordNode, // #0 = 'X86xtest' chained node
/*125383*/    OPC_CheckPatternPredicate, 83, // (Subtarget->hasRTM())
/*125385*/    OPC_EmitMergeInputChains1_0,
/*125386*/    OPC_MorphNodeTo1, TARGET_VAL(X86::XTEST), 0|OPFL_Chain,
                  MVT::i32, 0/*#Ops*/, 
              // Src: (X86xtest:{ *:[i32] }) - Complexity = 3
              // Dst: (XTEST:{ *:[i32] })
/*125392*/  /*SwitchOpcode*/ 7, TARGET_VAL(ISD::TRAP),// ->125402
/*125395*/    OPC_RecordNode, // #0 = 'trap' chained node
/*125396*/    OPC_EmitMergeInputChains1_0,
/*125397*/    OPC_MorphNodeTo0, TARGET_VAL(X86::TRAP), 0|OPFL_Chain,
                  0/*#Ops*/, 
              // Src: (trap) - Complexity = 3
              // Dst: (TRAP)
/*125402*/  /*SwitchOpcode*/ 25, TARGET_VAL(ISD::DEBUGTRAP),// ->125430
/*125405*/    OPC_RecordNode, // #0 = 'debugtrap' chained node
/*125406*/    OPC_Scope, 8, /*->125416*/ // 2 children in Scope
/*125408*/      OPC_CheckPatternPredicate, 168, // (!Subtarget->isTargetPS4())
/*125410*/      OPC_EmitMergeInputChains1_0,
/*125411*/      OPC_MorphNodeTo0, TARGET_VAL(X86::INT3), 0|OPFL_Chain,
                    0/*#Ops*/, 
                // Src: (debugtrap) - Complexity = 3
                // Dst: (INT3)
/*125416*/    /*Scope*/ 12, /*->125429*/
/*125417*/      OPC_CheckPatternPredicate, 169, // (Subtarget->isTargetPS4())
/*125419*/      OPC_EmitMergeInputChains1_0,
/*125420*/      OPC_EmitInteger, MVT::i8, 65, 
/*125423*/      OPC_MorphNodeTo0, TARGET_VAL(X86::INT), 0|OPFL_Chain,
                    1/*#Ops*/, 1, 
                // Src: (debugtrap) - Complexity = 3
                // Dst: (INT 65:{ *:[i8] })
/*125429*/    0, /*End of Scope*/
/*125430*/  /*SwitchOpcode*/ 13, TARGET_VAL(X86ISD::RDPKRU),// ->125446
/*125433*/    OPC_RecordNode, // #0 = 'X86rdpkru' chained node
/*125434*/    OPC_RecordChild1, // #1 = physreg input ECX
/*125435*/    OPC_EmitMergeInputChains1_0,
/*125436*/    OPC_EmitCopyToReg, 1, X86::ECX,
/*125439*/    OPC_MorphNodeTo2, TARGET_VAL(X86::RDPKRUr), 0|OPFL_Chain|OPFL_GlueInput,
                  MVT::i32, MVT::i32, 0/*#Ops*/, 
              // Src: (X86rdpkru:{ *:[i32] } ECX:{ *:[i32] }) - Complexity = 3
              // Dst: (RDPKRUr:{ *:[i32] })
/*125446*/  /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::WRPKRU),// ->125468
/*125449*/    OPC_RecordNode, // #0 = 'X86wrpkru' chained node
/*125450*/    OPC_RecordChild1, // #1 = physreg input EAX
/*125451*/    OPC_RecordChild2, // #2 = physreg input EDX
/*125452*/    OPC_RecordChild3, // #3 = physreg input ECX
/*125453*/    OPC_EmitMergeInputChains1_0,
/*125454*/    OPC_EmitCopyToReg, 1, X86::EAX,
/*125457*/    OPC_EmitCopyToReg, 2, X86::EDX,
/*125460*/    OPC_EmitCopyToReg, 3, X86::ECX,
/*125463*/    OPC_MorphNodeTo0, TARGET_VAL(X86::WRPKRUr), 0|OPFL_Chain|OPFL_GlueInput,
                  0/*#Ops*/, 
              // Src: (X86wrpkru EAX:{ *:[i32] }, EDX:{ *:[i32] }, ECX:{ *:[i32] }) - Complexity = 3
              // Dst: (WRPKRUr)
/*125468*/  /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::WIN_ALLOCA),// ->125501
/*125471*/    OPC_RecordNode, // #0 = 'X86WinAlloca' chained node
/*125472*/    OPC_RecordChild1, // #1 = $size
/*125473*/    OPC_Scope, 12, /*->125487*/ // 2 children in Scope
/*125475*/      OPC_CheckChild1Type, MVT::i32,
/*125477*/      OPC_CheckPatternPredicate, 102, // (!Subtarget->isTarget64BitLP64())
/*125479*/      OPC_EmitMergeInputChains1_0,
/*125480*/      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)
/*125487*/    /*Scope*/ 12, /*->125500*/
/*125488*/      OPC_CheckChild1Type, MVT::i64,
/*125490*/      OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*125492*/      OPC_EmitMergeInputChains1_0,
/*125493*/      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)
/*125500*/    0, /*End of Scope*/
/*125501*/  /*SwitchOpcode*/ 24, TARGET_VAL(X86ISD::EH_RETURN),// ->125528
/*125504*/    OPC_RecordNode, // #0 = 'X86ehret' chained node
/*125505*/    OPC_RecordChild1, // #1 = $addr
/*125506*/    OPC_Scope, 9, /*->125517*/ // 2 children in Scope
/*125508*/      OPC_CheckChild1Type, MVT::i32,
/*125510*/      OPC_EmitMergeInputChains1_0,
/*125511*/      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)
/*125517*/    /*Scope*/ 9, /*->125527*/
/*125518*/      OPC_CheckChild1Type, MVT::i64,
/*125520*/      OPC_EmitMergeInputChains1_0,
/*125521*/      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)
/*125527*/    0, /*End of Scope*/
/*125528*/  /*SwitchOpcode*/ 7, TARGET_VAL(ISD::CLEANUPRET),// ->125538
/*125531*/    OPC_RecordNode, // #0 = 'cleanupret' chained node
/*125532*/    OPC_EmitMergeInputChains1_0,
/*125533*/    OPC_MorphNodeTo0, TARGET_VAL(X86::CLEANUPRET), 0|OPFL_Chain,
                  0/*#Ops*/, 
              // Src: (cleanupret) - Complexity = 3
              // Dst: (CLEANUPRET)
/*125538*/  /*SwitchOpcode*/ 109, TARGET_VAL(X86ISD::REP_MOVS),// ->125650
/*125541*/    OPC_RecordNode, // #0 = 'X86rep_movs' chained node
/*125542*/    OPC_CaptureGlueInput,
/*125543*/    OPC_MoveChild1,
/*125544*/    OPC_Scope, 25, /*->125571*/ // 4 children in Scope
/*125546*/      OPC_CheckValueType, MVT::i8,
/*125548*/      OPC_MoveParent,
/*125549*/      OPC_Scope, 9, /*->125560*/ // 2 children in Scope
/*125551*/        OPC_CheckPatternPredicate, 102, // (!Subtarget->isTarget64BitLP64())
/*125553*/        OPC_EmitMergeInputChains1_0,
/*125554*/        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] })
/*125560*/      /*Scope*/ 9, /*->125570*/
/*125561*/        OPC_CheckPatternPredicate, 103, // (Subtarget->isTarget64BitLP64())
/*125563*/        OPC_EmitMergeInputChains1_0,
/*125564*/        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] })
/*125570*/      0, /*End of Scope*/
/*125571*/    /*Scope*/ 25, /*->125597*/
/*125572*/      OPC_CheckValueType, MVT::i16,
/*125574*/      OPC_MoveParent,
/*125575*/      OPC_Scope, 9, /*->125586*/ // 2 children in Scope
/*125577*/        OPC_CheckPatternPredicate, 102, // (!Subtarget->isTarget64BitLP64())
/*125579*/        OPC_EmitMergeInputChains1_0,
/*125580*/        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] })
/*125586*/      /*Scope*/ 9, /*->125596*/
/*125587*/        OPC_CheckPatternPredicate, 103, // (Subtarget->isTarget64BitLP64())
/*125589*/        OPC_EmitMergeInputChains1_0,
/*125590*/        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] })
/*125596*/      0, /*End of Scope*/
/*125597*/    /*Scope*/ 25, /*->125623*/
/*125598*/      OPC_CheckValueType, MVT::i32,
/*125600*/      OPC_MoveParent,
/*125601*/      OPC_Scope, 9, /*->125612*/ // 2 children in Scope
/*125603*/        OPC_CheckPatternPredicate, 102, // (!Subtarget->isTarget64BitLP64())
/*125605*/        OPC_EmitMergeInputChains1_0,
/*125606*/        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] })
/*125612*/      /*Scope*/ 9, /*->125622*/
/*125613*/        OPC_CheckPatternPredicate, 103, // (Subtarget->isTarget64BitLP64())
/*125615*/        OPC_EmitMergeInputChains1_0,
/*125616*/        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] })
/*125622*/      0, /*End of Scope*/
/*125623*/    /*Scope*/ 25, /*->125649*/
/*125624*/      OPC_CheckValueType, MVT::i64,
/*125626*/      OPC_MoveParent,
/*125627*/      OPC_Scope, 9, /*->125638*/ // 2 children in Scope
/*125629*/        OPC_CheckPatternPredicate, 170, // (Subtarget->is64Bit()) && (!Subtarget->isTarget64BitLP64())
/*125631*/        OPC_EmitMergeInputChains1_0,
/*125632*/        OPC_MorphNodeTo1, TARGET_VAL(X86::REP_MOVSQ_32), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
                      MVT::i32, 0/*#Ops*/, 
                  // Src: (X86rep_movs i64:{ *:[Other] }) - Complexity = 3
                  // Dst: (REP_MOVSQ_32:{ *:[i32] })
/*125638*/      /*Scope*/ 9, /*->125648*/
/*125639*/        OPC_CheckPatternPredicate, 103, // (Subtarget->isTarget64BitLP64())
/*125641*/        OPC_EmitMergeInputChains1_0,
/*125642*/        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] })
/*125648*/      0, /*End of Scope*/
/*125649*/    0, /*End of Scope*/
/*125650*/  /*SwitchOpcode*/ 109, TARGET_VAL(X86ISD::REP_STOS),// ->125762
/*125653*/    OPC_RecordNode, // #0 = 'X86rep_stos' chained node
/*125654*/    OPC_CaptureGlueInput,
/*125655*/    OPC_MoveChild1,
/*125656*/    OPC_Scope, 25, /*->125683*/ // 4 children in Scope
/*125658*/      OPC_CheckValueType, MVT::i8,
/*125660*/      OPC_MoveParent,
/*125661*/      OPC_Scope, 9, /*->125672*/ // 2 children in Scope
/*125663*/        OPC_CheckPatternPredicate, 102, // (!Subtarget->isTarget64BitLP64())
/*125665*/        OPC_EmitMergeInputChains1_0,
/*125666*/        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] })
/*125672*/      /*Scope*/ 9, /*->125682*/
/*125673*/        OPC_CheckPatternPredicate, 103, // (Subtarget->isTarget64BitLP64())
/*125675*/        OPC_EmitMergeInputChains1_0,
/*125676*/        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] })
/*125682*/      0, /*End of Scope*/
/*125683*/    /*Scope*/ 25, /*->125709*/
/*125684*/      OPC_CheckValueType, MVT::i16,
/*125686*/      OPC_MoveParent,
/*125687*/      OPC_Scope, 9, /*->125698*/ // 2 children in Scope
/*125689*/        OPC_CheckPatternPredicate, 102, // (!Subtarget->isTarget64BitLP64())
/*125691*/        OPC_EmitMergeInputChains1_0,
/*125692*/        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] })
/*125698*/      /*Scope*/ 9, /*->125708*/
/*125699*/        OPC_CheckPatternPredicate, 103, // (Subtarget->isTarget64BitLP64())
/*125701*/        OPC_EmitMergeInputChains1_0,
/*125702*/        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] })
/*125708*/      0, /*End of Scope*/
/*125709*/    /*Scope*/ 25, /*->125735*/
/*125710*/      OPC_CheckValueType, MVT::i32,
/*125712*/      OPC_MoveParent,
/*125713*/      OPC_Scope, 9, /*->125724*/ // 2 children in Scope
/*125715*/        OPC_CheckPatternPredicate, 102, // (!Subtarget->isTarget64BitLP64())
/*125717*/        OPC_EmitMergeInputChains1_0,
/*125718*/        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] })
/*125724*/      /*Scope*/ 9, /*->125734*/
/*125725*/        OPC_CheckPatternPredicate, 103, // (Subtarget->isTarget64BitLP64())
/*125727*/        OPC_EmitMergeInputChains1_0,
/*125728*/        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] })
/*125734*/      0, /*End of Scope*/
/*125735*/    /*Scope*/ 25, /*->125761*/
/*125736*/      OPC_CheckValueType, MVT::i64,
/*125738*/      OPC_MoveParent,
/*125739*/      OPC_Scope, 9, /*->125750*/ // 2 children in Scope
/*125741*/        OPC_CheckPatternPredicate, 170, // (Subtarget->is64Bit()) && (!Subtarget->isTarget64BitLP64())
/*125743*/        OPC_EmitMergeInputChains1_0,
/*125744*/        OPC_MorphNodeTo1, TARGET_VAL(X86::REP_STOSQ_32), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
                      MVT::i32, 0/*#Ops*/, 
                  // Src: (X86rep_stos i64:{ *:[Other] }) - Complexity = 3
                  // Dst: (REP_STOSQ_32:{ *:[i32] })
/*125750*/      /*Scope*/ 9, /*->125760*/
/*125751*/        OPC_CheckPatternPredicate, 103, // (Subtarget->isTarget64BitLP64())
/*125753*/        OPC_EmitMergeInputChains1_0,
/*125754*/        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] })
/*125760*/      0, /*End of Scope*/
/*125761*/    0, /*End of Scope*/
/*125762*/  /*SwitchOpcode*/ 7, TARGET_VAL(X86ISD::MEMBARRIER),// ->125772
/*125765*/    OPC_RecordNode, // #0 = 'X86MemBarrier' chained node
/*125766*/    OPC_EmitMergeInputChains1_0,
/*125767*/    OPC_MorphNodeTo0, TARGET_VAL(X86::Int_MemBarrier), 0|OPFL_Chain,
                  0/*#Ops*/, 
              // Src: (X86MemBarrier) - Complexity = 3
              // Dst: (Int_MemBarrier)
/*125772*/  /*SwitchOpcode*/ 21|128,1/*149*/, TARGET_VAL(ISD::SIGN_EXTEND_INREG),// ->125925
/*125776*/    OPC_RecordChild0, // #0 = $src
/*125777*/    OPC_MoveChild1,
/*125778*/    OPC_Scope, 45, /*->125825*/ // 3 children in Scope
/*125780*/      OPC_CheckValueType, MVT::i16,
/*125782*/      OPC_MoveParent,
/*125783*/      OPC_SwitchType /*2 cases */, 18, MVT::i32,// ->125804
/*125786*/        OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*125789*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i16, 2/*#Ops*/, 0, 1,  // Results = #2
/*125797*/        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] }))
/*125804*/      /*SwitchType*/ 18, MVT::i64,// ->125824
/*125806*/        OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*125809*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i16, 2/*#Ops*/, 0, 1,  // Results = #2
/*125817*/        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] }))
/*125824*/      0, // EndSwitchType
/*125825*/    /*Scope*/ 76, /*->125902*/
/*125826*/      OPC_CheckValueType, MVT::i8,
/*125828*/      OPC_MoveParent,
/*125829*/      OPC_SwitchType /*3 cases */, 18, MVT::i32,// ->125850
/*125832*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*125835*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i8, 2/*#Ops*/, 0, 1,  // Results = #2
/*125843*/        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] }))
/*125850*/      /*SwitchType*/ 18, MVT::i64,// ->125870
/*125852*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*125855*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i8, 2/*#Ops*/, 0, 1,  // Results = #2
/*125863*/        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] }))
/*125870*/      /*SwitchType*/ 29, MVT::i16,// ->125901
/*125872*/        OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*125875*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::i8, 2/*#Ops*/, 0, 1,  // Results = #2
/*125883*/        OPC_EmitNode1, TARGET_VAL(X86::MOVSX32rr8), 0,
                      MVT::i32, 1/*#Ops*/, 2,  // Results = #3
/*125890*/        OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*125893*/        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] })
/*125901*/      0, // EndSwitchType
/*125902*/    /*Scope*/ 21, /*->125924*/
/*125903*/      OPC_CheckValueType, MVT::i32,
/*125905*/      OPC_MoveParent,
/*125906*/      OPC_EmitInteger, MVT::i32, X86::sub_32bit,
/*125909*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                    MVT::i32, 2/*#Ops*/, 0, 1,  // Results = #2
/*125917*/      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] }))
/*125924*/    0, /*End of Scope*/
/*125925*/  /*SwitchOpcode*/ 93, TARGET_VAL(ISD::FP_TO_FP16),// ->126021
/*125928*/    OPC_RecordChild0, // #0 = $src
/*125929*/    OPC_CheckChild0Type, MVT::f32,
/*125931*/    OPC_CheckType, MVT::i16,
/*125933*/    OPC_Scope, 42, /*->125977*/ // 2 children in Scope
/*125935*/      OPC_CheckPatternPredicate, 11, // (Subtarget->hasF16C()) && (!Subtarget->hasVLX())
/*125937*/      OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*125940*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v4f32, 2/*#Ops*/, 0, 1,  // Results = #2
/*125948*/      OPC_EmitInteger, MVT::i32, 4, 
/*125951*/      OPC_EmitNode1, TARGET_VAL(X86::VCVTPS2PHrr), 0,
                    MVT::v8i16, 2/*#Ops*/, 2, 3,  // Results = #4
/*125959*/      OPC_EmitNode1, TARGET_VAL(X86::VMOVPDI2DIrr), 0,
                    MVT::i32, 1/*#Ops*/, 4,  // Results = #5
/*125966*/      OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*125969*/      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] })
/*125977*/    /*Scope*/ 42, /*->126020*/
/*125978*/      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*125980*/      OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*125983*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                    MVT::v4f32, 2/*#Ops*/, 0, 1,  // Results = #2
/*125991*/      OPC_EmitInteger, MVT::i32, 4, 
/*125994*/      OPC_EmitNode1, TARGET_VAL(X86::VCVTPS2PHZ128rr), 0,
                    MVT::v8i16, 2/*#Ops*/, 2, 3,  // Results = #4
/*126002*/      OPC_EmitNode1, TARGET_VAL(X86::VMOVPDI2DIZrr), 0,
                    MVT::i32, 1/*#Ops*/, 4,  // Results = #5
/*126009*/      OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*126012*/      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] })
/*126020*/    0, /*End of Scope*/
/*126021*/  /*SwitchOpcode*/ 7, TARGET_VAL(X86ISD::EH_SJLJ_SETUP_DISPATCH),// ->126031
/*126024*/    OPC_RecordNode, // #0 = 'X86eh_sjlj_setup_dispatch' chained node
/*126025*/    OPC_EmitMergeInputChains1_0,
/*126026*/    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)
/*126031*/  /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::SEG_ALLOCA),// ->126068
/*126034*/    OPC_RecordNode, // #0 = 'X86SegAlloca' chained node
/*126035*/    OPC_RecordChild1, // #1 = $size
/*126036*/    OPC_SwitchType /*2 cases */, 13, MVT::i32,// ->126052
/*126039*/      OPC_CheckChild1Type, MVT::i32,
/*126041*/      OPC_CheckPatternPredicate, 102, // (!Subtarget->isTarget64BitLP64())
/*126043*/      OPC_EmitMergeInputChains1_0,
/*126044*/      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)
/*126052*/    /*SwitchType*/ 13, MVT::i64,// ->126067
/*126054*/      OPC_CheckChild1Type, MVT::i64,
/*126056*/      OPC_CheckPatternPredicate, 8, // (Subtarget->is64Bit())
/*126058*/      OPC_EmitMergeInputChains1_0,
/*126059*/      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)
/*126067*/    0, // EndSwitchType
/*126068*/  /*SwitchOpcode*/ 21, TARGET_VAL(ISD::CATCHRET),// ->126092
/*126071*/    OPC_RecordNode, // #0 = 'catchret' chained node
/*126072*/    OPC_RecordChild1, // #1 = $dst
/*126073*/    OPC_MoveChild1,
/*126074*/    OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
/*126077*/    OPC_MoveParent,
/*126078*/    OPC_RecordChild2, // #2 = $from
/*126079*/    OPC_MoveChild2,
/*126080*/    OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
/*126083*/    OPC_MoveParent,
/*126084*/    OPC_EmitMergeInputChains1_0,
/*126085*/    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)
/*126092*/  /*SwitchOpcode*/ 7, TARGET_VAL(ISD::CATCHPAD),// ->126102
/*126095*/    OPC_RecordNode, // #0 = 'catchpad' chained node
/*126096*/    OPC_EmitMergeInputChains1_0,
/*126097*/    OPC_MorphNodeTo0, TARGET_VAL(X86::CATCHPAD), 0|OPFL_Chain,
                  0/*#Ops*/, 
              // Src: (catchpad) - Complexity = 3
              // Dst: (CATCHPAD)
/*126102*/  /*SwitchOpcode*/ 88|128,2/*344*/, TARGET_VAL(X86ISD::FSETCC),// ->126450
/*126106*/    OPC_Scope, 126, /*->126234*/ // 2 children in Scope
/*126108*/      OPC_MoveChild0,
/*126109*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*126112*/      OPC_RecordMemRef,
/*126113*/      OPC_RecordNode, // #0 = 'ld' chained node
/*126114*/      OPC_CheckFoldableChainNode,
/*126115*/      OPC_RecordChild1, // #1 = $src2
/*126116*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*126118*/      OPC_CheckPredicate, 9, // Predicate_load
/*126120*/      OPC_SwitchType /*2 cases */, 54, MVT::f64,// ->126177
/*126123*/        OPC_MoveParent,
/*126124*/        OPC_RecordChild1, // #2 = $src1
/*126125*/        OPC_RecordChild2, // #3 = $cc
/*126126*/        OPC_MoveChild2,
/*126127*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*126130*/        OPC_CheckPredicate, 92, // Predicate_CommutableCMPCC
/*126132*/        OPC_MoveParent,
/*126133*/        OPC_CheckType, MVT::f64,
/*126135*/        OPC_Scope, 19, /*->126156*/ // 2 children in Scope
/*126137*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*126139*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*126142*/          OPC_EmitMergeInputChains1_0,
/*126143*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86cmps:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64:{ *:[f64] }:$src1, (timm:{ *:[i8] })<<P:Predicate_CommutableCMPCC>>:$cc) - Complexity = 29
                    // Dst: (VCMPSDrm:{ *:[f64] } FR64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/*126156*/        /*Scope*/ 19, /*->126176*/
/*126157*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*126159*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*126162*/          OPC_EmitMergeInputChains1_0,
/*126163*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMPSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86cmps:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64:{ *:[f64] }:$src1, (timm:{ *:[i8] })<<P:Predicate_CommutableCMPCC>>:$cc) - Complexity = 29
                    // Dst: (CMPSDrm:{ *:[f64] } FR64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/*126176*/        0, /*End of Scope*/
/*126177*/      /*SwitchType*/ 54, MVT::f32,// ->126233
/*126179*/        OPC_MoveParent,
/*126180*/        OPC_RecordChild1, // #2 = $src1
/*126181*/        OPC_RecordChild2, // #3 = $cc
/*126182*/        OPC_MoveChild2,
/*126183*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*126186*/        OPC_CheckPredicate, 92, // Predicate_CommutableCMPCC
/*126188*/        OPC_MoveParent,
/*126189*/        OPC_CheckType, MVT::f32,
/*126191*/        OPC_Scope, 19, /*->126212*/ // 2 children in Scope
/*126193*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*126195*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*126198*/          OPC_EmitMergeInputChains1_0,
/*126199*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86cmps:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32:{ *:[f32] }:$src1, (timm:{ *:[i8] })<<P:Predicate_CommutableCMPCC>>:$cc) - Complexity = 29
                    // Dst: (VCMPSSrm:{ *:[f32] } FR32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/*126212*/        /*Scope*/ 19, /*->126232*/
/*126213*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*126215*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*126218*/          OPC_EmitMergeInputChains1_0,
/*126219*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMPSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86cmps:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32:{ *:[f32] }:$src1, (timm:{ *:[i8] })<<P:Predicate_CommutableCMPCC>>:$cc) - Complexity = 29
                    // Dst: (CMPSSrm:{ *:[f32] } FR32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/*126232*/        0, /*End of Scope*/
/*126233*/      0, // EndSwitchType
/*126234*/    /*Scope*/ 85|128,1/*213*/, /*->126449*/
/*126236*/      OPC_RecordChild0, // #0 = $src1
/*126237*/      OPC_Scope, 104, /*->126343*/ // 2 children in Scope
/*126239*/        OPC_CheckChild0Type, MVT::f32,
/*126241*/        OPC_Scope, 63, /*->126306*/ // 2 children in Scope
/*126243*/          OPC_MoveChild1,
/*126244*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*126247*/          OPC_RecordMemRef,
/*126248*/          OPC_RecordNode, // #1 = 'ld' chained node
/*126249*/          OPC_CheckFoldableChainNode,
/*126250*/          OPC_RecordChild1, // #2 = $src2
/*126251*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*126253*/          OPC_CheckPredicate, 9, // Predicate_load
/*126255*/          OPC_MoveParent,
/*126256*/          OPC_RecordChild2, // #3 = $cc
/*126257*/          OPC_MoveChild2,
/*126258*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*126261*/          OPC_MoveParent,
/*126262*/          OPC_CheckType, MVT::f32,
/*126264*/          OPC_Scope, 19, /*->126285*/ // 2 children in Scope
/*126266*/            OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*126268*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*126271*/            OPC_EmitMergeInputChains1_1,
/*126272*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86cmps:{ *:[f32] } FR32:{ *:[f32] }:$src1, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$cc) - Complexity = 28
                      // Dst: (VCMPSSrm:{ *:[f32] } FR32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/*126285*/          /*Scope*/ 19, /*->126305*/
/*126286*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*126288*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*126291*/            OPC_EmitMergeInputChains1_1,
/*126292*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMPSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86cmps:{ *:[f32] } FR32:{ *:[f32] }:$src1, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$cc) - Complexity = 28
                      // Dst: (CMPSSrm:{ *:[f32] } FR32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/*126305*/          0, /*End of Scope*/
/*126306*/        /*Scope*/ 35, /*->126342*/
/*126307*/          OPC_RecordChild1, // #1 = $src2
/*126308*/          OPC_RecordChild2, // #2 = $cc
/*126309*/          OPC_MoveChild2,
/*126310*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*126313*/          OPC_MoveParent,
/*126314*/          OPC_CheckType, MVT::f32,
/*126316*/          OPC_Scope, 11, /*->126329*/ // 2 children in Scope
/*126318*/            OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*126320*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPSSrr), 0,
                          MVT::f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86cmps:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2, (timm:{ *:[i8] }):$cc) - Complexity = 6
                      // Dst: (VCMPSSrr:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2, (timm:{ *:[i8] }):$cc)
/*126329*/          /*Scope*/ 11, /*->126341*/
/*126330*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*126332*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMPSSrr), 0,
                          MVT::f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86cmps:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2, (timm:{ *:[i8] }):$cc) - Complexity = 6
                      // Dst: (CMPSSrr:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2, (timm:{ *:[i8] }):$cc)
/*126341*/          0, /*End of Scope*/
/*126342*/        0, /*End of Scope*/
/*126343*/      /*Scope*/ 104, /*->126448*/
/*126344*/        OPC_CheckChild0Type, MVT::f64,
/*126346*/        OPC_Scope, 63, /*->126411*/ // 2 children in Scope
/*126348*/          OPC_MoveChild1,
/*126349*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*126352*/          OPC_RecordMemRef,
/*126353*/          OPC_RecordNode, // #1 = 'ld' chained node
/*126354*/          OPC_CheckFoldableChainNode,
/*126355*/          OPC_RecordChild1, // #2 = $src2
/*126356*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*126358*/          OPC_CheckPredicate, 9, // Predicate_load
/*126360*/          OPC_MoveParent,
/*126361*/          OPC_RecordChild2, // #3 = $cc
/*126362*/          OPC_MoveChild2,
/*126363*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*126366*/          OPC_MoveParent,
/*126367*/          OPC_CheckType, MVT::f64,
/*126369*/          OPC_Scope, 19, /*->126390*/ // 2 children in Scope
/*126371*/            OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*126373*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*126376*/            OPC_EmitMergeInputChains1_1,
/*126377*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86cmps:{ *:[f64] } FR64:{ *:[f64] }:$src1, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$cc) - Complexity = 28
                      // Dst: (VCMPSDrm:{ *:[f64] } FR64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/*126390*/          /*Scope*/ 19, /*->126410*/
/*126391*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*126393*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*126396*/            OPC_EmitMergeInputChains1_1,
/*126397*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMPSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86cmps:{ *:[f64] } FR64:{ *:[f64] }:$src1, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$cc) - Complexity = 28
                      // Dst: (CMPSDrm:{ *:[f64] } FR64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/*126410*/          0, /*End of Scope*/
/*126411*/        /*Scope*/ 35, /*->126447*/
/*126412*/          OPC_RecordChild1, // #1 = $src2
/*126413*/          OPC_RecordChild2, // #2 = $cc
/*126414*/          OPC_MoveChild2,
/*126415*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*126418*/          OPC_MoveParent,
/*126419*/          OPC_CheckType, MVT::f64,
/*126421*/          OPC_Scope, 11, /*->126434*/ // 2 children in Scope
/*126423*/            OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*126425*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPSDrr), 0,
                          MVT::f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86cmps:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2, (timm:{ *:[i8] }):$cc) - Complexity = 6
                      // Dst: (VCMPSDrr:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2, (timm:{ *:[i8] }):$cc)
/*126434*/          /*Scope*/ 11, /*->126446*/
/*126435*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*126437*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMPSDrr), 0,
                          MVT::f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86cmps:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2, (timm:{ *:[i8] }):$cc) - Complexity = 6
                      // Dst: (CMPSDrr:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2, (timm:{ *:[i8] }):$cc)
/*126446*/          0, /*End of Scope*/
/*126447*/        0, /*End of Scope*/
/*126448*/      0, /*End of Scope*/
/*126449*/    0, /*End of Scope*/
/*126450*/  /*SwitchOpcode*/ 75|128,41/*5323*/, TARGET_VAL(X86ISD::SELECTS),// ->131777
/*126454*/    OPC_RecordChild0, // #0 = $mask
/*126455*/    OPC_Scope, 46|128,1/*174*/, /*->126632*/ // 3 children in Scope
/*126458*/      OPC_MoveChild1,
/*126459*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*126462*/      OPC_RecordMemRef,
/*126463*/      OPC_RecordNode, // #1 = 'ld' chained node
/*126464*/      OPC_CheckFoldableChainNode,
/*126465*/      OPC_RecordChild1, // #2 = $src
/*126466*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*126468*/      OPC_CheckPredicate, 9, // Predicate_load
/*126470*/      OPC_MoveParent,
/*126471*/      OPC_Scope, 72, /*->126545*/ // 2 children in Scope
/*126473*/        OPC_MoveChild2,
/*126474*/        OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*126477*/        OPC_Scope, 32, /*->126511*/ // 2 children in Scope
/*126479*/          OPC_CheckPredicate, 93, // Predicate_fp32imm0
/*126481*/          OPC_MoveParent,
/*126482*/          OPC_CheckType, MVT::f32,
/*126484*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*126487*/          OPC_EmitMergeInputChains1_1,
/*126488*/          OPC_EmitNode1, TARGET_VAL(X86::VMOVSSZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7,  // Results = #8
/*126500*/          OPC_EmitInteger, MVT::i32, X86::FR32XRegClassID,
/*126503*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                        MVT::f32, 2/*#Ops*/, 8, 9, 
                    // Src: (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (fpimm:{ *:[f32] })<<P:Predicate_fp32imm0>>) - Complexity = 29
                    // Dst: (COPY_TO_REGCLASS:{ *:[f32] } (VMOVSSZrmkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, addr:{ *:[iPTR] }:$src), FR32X:{ *:[i32] })
/*126511*/        /*Scope*/ 32, /*->126544*/
/*126512*/          OPC_CheckPredicate, 93, // Predicate_fp64imm0
/*126514*/          OPC_MoveParent,
/*126515*/          OPC_CheckType, MVT::f64,
/*126517*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*126520*/          OPC_EmitMergeInputChains1_1,
/*126521*/          OPC_EmitNode1, TARGET_VAL(X86::VMOVSDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7,  // Results = #8
/*126533*/          OPC_EmitInteger, MVT::i32, X86::FR64XRegClassID,
/*126536*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                        MVT::f64, 2/*#Ops*/, 8, 9, 
                    // Src: (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (fpimm:{ *:[f64] })<<P:Predicate_fp64imm0>>) - Complexity = 29
                    // Dst: (COPY_TO_REGCLASS:{ *:[f64] } (VMOVSDZrmkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, addr:{ *:[iPTR] }:$src), FR64X:{ *:[i32] })
/*126544*/        0, /*End of Scope*/
/*126545*/      /*Scope*/ 85, /*->126631*/
/*126546*/        OPC_RecordChild2, // #3 = $src0
/*126547*/        OPC_SwitchType /*2 cases */, 39, MVT::f32,// ->126589
/*126550*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*126553*/          OPC_EmitMergeInputChains1_1,
/*126554*/          OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*126557*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4f32, 2/*#Ops*/, 3, 9,  // Results = #10
/*126565*/          OPC_EmitNode1, TARGET_VAL(X86::VMOVSSZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 10, 0, 4, 5, 6, 7, 8,  // Results = #11
/*126578*/          OPC_EmitInteger, MVT::i32, X86::FR32XRegClassID,
/*126581*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                        MVT::f32, 2/*#Ops*/, 11, 12, 
                    // Src: (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR32X:{ *:[f32] }:$src0) - Complexity = 25
                    // Dst: (COPY_TO_REGCLASS:{ *:[f32] } (VMOVSSZrmk:{ *:[v4f32] } (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src0, VR128X:{ *:[i32] }), VK1WM:{ *:[v1i1] }:$mask, addr:{ *:[iPTR] }:$src), FR32X:{ *:[i32] })
/*126589*/        /*SwitchType*/ 39, MVT::f64,// ->126630
/*126591*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*126594*/          OPC_EmitMergeInputChains1_1,
/*126595*/          OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*126598*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2f64, 2/*#Ops*/, 3, 9,  // Results = #10
/*126606*/          OPC_EmitNode1, TARGET_VAL(X86::VMOVSDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 7/*#Ops*/, 10, 0, 4, 5, 6, 7, 8,  // Results = #11
/*126619*/          OPC_EmitInteger, MVT::i32, X86::FR64XRegClassID,
/*126622*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                        MVT::f64, 2/*#Ops*/, 11, 12, 
                    // Src: (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>, FR64X:{ *:[f64] }:$src0) - Complexity = 25
                    // Dst: (COPY_TO_REGCLASS:{ *:[f64] } (VMOVSDZrmk:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src0, VR128X:{ *:[i32] }), VK1WM:{ *:[v1i1] }:$mask, addr:{ *:[iPTR] }:$src), FR64X:{ *:[i32] })
/*126630*/        0, // EndSwitchType
/*126631*/      0, /*End of Scope*/
/*126632*/    /*Scope*/ 74|128,1/*202*/, /*->126836*/
/*126634*/      OPC_RecordChild1, // #1 = $src1
/*126635*/      OPC_Scope, 92, /*->126729*/ // 2 children in Scope
/*126637*/        OPC_MoveChild2,
/*126638*/        OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*126641*/        OPC_Scope, 42, /*->126685*/ // 2 children in Scope
/*126643*/          OPC_CheckPredicate, 93, // Predicate_fp32imm0
/*126645*/          OPC_MoveParent,
/*126646*/          OPC_CheckType, MVT::f32,
/*126648*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4f32, 0/*#Ops*/,  // Results = #2
/*126654*/          OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*126657*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4f32, 2/*#Ops*/, 1, 3,  // Results = #4
/*126665*/          OPC_EmitNode1, TARGET_VAL(X86::VMOVSSZrrkz), 0,
                        MVT::v4f32, 3/*#Ops*/, 0, 2, 4,  // Results = #5
/*126674*/          OPC_EmitInteger, MVT::i32, X86::FR32XRegClassID,
/*126677*/          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] })
/*126685*/        /*Scope*/ 42, /*->126728*/
/*126686*/          OPC_CheckPredicate, 93, // Predicate_fp64imm0
/*126688*/          OPC_MoveParent,
/*126689*/          OPC_CheckType, MVT::f64,
/*126691*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v2f64, 0/*#Ops*/,  // Results = #2
/*126697*/          OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*126700*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2f64, 2/*#Ops*/, 1, 3,  // Results = #4
/*126708*/          OPC_EmitNode1, TARGET_VAL(X86::VMOVSDZrrkz), 0,
                        MVT::v2f64, 3/*#Ops*/, 0, 2, 4,  // Results = #5
/*126717*/          OPC_EmitInteger, MVT::i32, X86::FR64XRegClassID,
/*126720*/          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_fp64imm0>>) - 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] })
/*126728*/        0, /*End of Scope*/
/*126729*/      /*Scope*/ 105, /*->126835*/
/*126730*/        OPC_RecordChild2, // #2 = $src2
/*126731*/        OPC_SwitchType /*2 cases */, 49, MVT::f32,// ->126783
/*126734*/          OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*126737*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4f32, 2/*#Ops*/, 2, 3,  // Results = #4
/*126745*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4f32, 0/*#Ops*/,  // Results = #5
/*126751*/          OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*126754*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4f32, 2/*#Ops*/, 1, 6,  // Results = #7
/*126762*/          OPC_EmitNode1, TARGET_VAL(X86::VMOVSSZrrk), 0,
                        MVT::v4f32, 4/*#Ops*/, 4, 0, 5, 7,  // Results = #8
/*126772*/          OPC_EmitInteger, MVT::i32, X86::FR32XRegClassID,
/*126775*/          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] })
/*126783*/        /*SwitchType*/ 49, MVT::f64,// ->126834
/*126785*/          OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*126788*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*126796*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v2f64, 0/*#Ops*/,  // Results = #5
/*126802*/          OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*126805*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2f64, 2/*#Ops*/, 1, 6,  // Results = #7
/*126813*/          OPC_EmitNode1, TARGET_VAL(X86::VMOVSDZrrk), 0,
                        MVT::v2f64, 4/*#Ops*/, 4, 0, 5, 7,  // Results = #8
/*126823*/          OPC_EmitInteger, MVT::i32, X86::FR64XRegClassID,
/*126826*/          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] })
/*126834*/        0, // EndSwitchType
/*126835*/      0, /*End of Scope*/
/*126836*/    /*Scope*/ 74|128,38/*4938*/, /*->131776*/
/*126838*/      OPC_MoveChild1,
/*126839*/      OPC_SwitchOpcode /*40 cases */, 120|128,1/*248*/, TARGET_VAL(X86ISD::VFIXUPIMMS),// ->127092
/*126844*/        OPC_RecordChild0, // #1 = $src1
/*126845*/        OPC_RecordChild1, // #2 = $src2
/*126846*/        OPC_Scope, 32|128,1/*160*/, /*->127009*/ // 2 children in Scope
/*126849*/          OPC_MoveChild2,
/*126850*/          OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*126853*/          OPC_MoveChild0,
/*126854*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*126857*/          OPC_RecordMemRef,
/*126858*/          OPC_RecordNode, // #3 = 'ld' chained node
/*126859*/          OPC_CheckFoldableChainNode,
/*126860*/          OPC_RecordChild1, // #4 = $src3
/*126861*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*126863*/          OPC_SwitchType /*2 cases */, 70, MVT::i32,// ->126936
/*126866*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/*126868*/            OPC_MoveParent,
/*126869*/            OPC_MoveParent,
/*126870*/            OPC_RecordChild3, // #5 = $src4
/*126871*/            OPC_MoveChild3,
/*126872*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*126875*/            OPC_MoveParent,
/*126876*/            OPC_MoveParent,
/*126877*/            OPC_Scope, 28, /*->126907*/ // 2 children in Scope
/*126879*/              OPC_MoveChild2,
/*126880*/              OPC_CheckImmAllZerosV,
/*126881*/              OPC_MoveParent,
/*126882*/              OPC_CheckType, MVT::v4f32,
/*126884*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*126886*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*126889*/              OPC_EmitMergeInputChains, 1, 3, 
/*126892*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMSSZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 5, 
                        // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86VFixupimms:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (timm:{ *:[i32] }):$src4), immAllZerosV:{ *:[v4f32] }) - Complexity = 38
                        // Dst: (VFIXUPIMMSSZrmikz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i32] }):$src4)
/*126907*/            /*Scope*/ 27, /*->126935*/
/*126908*/              OPC_CheckChild2Same, 1,
/*126910*/              OPC_CheckType, MVT::v4f32,
/*126912*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*126914*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*126917*/              OPC_EmitMergeInputChains, 1, 3, 
/*126920*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMSSZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 5, 
                        // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86VFixupimms:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (timm:{ *:[i32] }):$src4), VR128X:{ *:[v4f32] }:$src1) - Complexity = 34
                        // Dst: (VFIXUPIMMSSZrmik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i32] }):$src4)
/*126935*/            0, /*End of Scope*/
/*126936*/          /*SwitchType*/ 70, MVT::i64,// ->127008
/*126938*/            OPC_CheckPredicate, 9, // Predicate_load
/*126940*/            OPC_MoveParent,
/*126941*/            OPC_MoveParent,
/*126942*/            OPC_RecordChild3, // #5 = $src4
/*126943*/            OPC_MoveChild3,
/*126944*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*126947*/            OPC_MoveParent,
/*126948*/            OPC_MoveParent,
/*126949*/            OPC_Scope, 28, /*->126979*/ // 2 children in Scope
/*126951*/              OPC_MoveChild2,
/*126952*/              OPC_CheckImmAllZerosV,
/*126953*/              OPC_MoveParent,
/*126954*/              OPC_CheckType, MVT::v2f64,
/*126956*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*126958*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*126961*/              OPC_EmitMergeInputChains, 1, 3, 
/*126964*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMSDZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 5, 
                        // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86VFixupimms:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (timm:{ *:[i32] }):$src4), immAllZerosV:{ *:[v2f64] }) - Complexity = 38
                        // Dst: (VFIXUPIMMSDZrmikz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i32] }):$src4)
/*126979*/            /*Scope*/ 27, /*->127007*/
/*126980*/              OPC_CheckChild2Same, 1,
/*126982*/              OPC_CheckType, MVT::v2f64,
/*126984*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*126986*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*126989*/              OPC_EmitMergeInputChains, 1, 3, 
/*126992*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMSDZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 5, 
                        // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86VFixupimms:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (timm:{ *:[i32] }):$src4), VR128X:{ *:[v2f64] }:$src1) - Complexity = 34
                        // Dst: (VFIXUPIMMSDZrmik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i32] }):$src4)
/*127007*/            0, /*End of Scope*/
/*127008*/          0, // EndSwitchType
/*127009*/        /*Scope*/ 81, /*->127091*/
/*127010*/          OPC_RecordChild2, // #3 = $src3
/*127011*/          OPC_RecordChild3, // #4 = $src4
/*127012*/          OPC_MoveChild3,
/*127013*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*127016*/          OPC_MoveParent,
/*127017*/          OPC_MoveParent,
/*127018*/          OPC_Scope, 35, /*->127055*/ // 2 children in Scope
/*127020*/            OPC_MoveChild2,
/*127021*/            OPC_CheckImmAllZerosV,
/*127022*/            OPC_MoveParent,
/*127023*/            OPC_SwitchType /*2 cases */, 13, MVT::v4f32,// ->127039
/*127026*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*127028*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMSSZrrikz), 0,
                            MVT::v4f32, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                        // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86VFixupimms:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4i32] }:$src3, (timm:{ *:[i32] }):$src4), immAllZerosV:{ *:[v4f32] }) - Complexity = 13
                        // Dst: (VFIXUPIMMSSZrrikz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4i32] }:$src3, (timm:{ *:[i32] }):$src4)
/*127039*/            /*SwitchType*/ 13, MVT::v2f64,// ->127054
/*127041*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*127043*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMSDZrrikz), 0,
                            MVT::v2f64, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                        // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86VFixupimms:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2i64] }:$src3, (timm:{ *:[i32] }):$src4), immAllZerosV:{ *:[v2f64] }) - Complexity = 13
                        // Dst: (VFIXUPIMMSDZrrikz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2i64] }:$src3, (timm:{ *:[i32] }):$src4)
/*127054*/            0, // EndSwitchType
/*127055*/          /*Scope*/ 34, /*->127090*/
/*127056*/            OPC_CheckChild2Same, 1,
/*127058*/            OPC_SwitchType /*2 cases */, 13, MVT::v4f32,// ->127074
/*127061*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*127063*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMSSZrrik), 0,
                            MVT::v4f32, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                        // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86VFixupimms:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4i32] }:$src3, (timm:{ *:[i32] }):$src4), VR128X:{ *:[v4f32] }:$src1) - Complexity = 9
                        // Dst: (VFIXUPIMMSSZrrik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4i32] }:$src3, (timm:{ *:[i32] }):$src4)
/*127074*/            /*SwitchType*/ 13, MVT::v2f64,// ->127089
/*127076*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*127078*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMSDZrrik), 0,
                            MVT::v2f64, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                        // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86VFixupimms:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2i64] }:$src3, (timm:{ *:[i32] }):$src4), VR128X:{ *:[v2f64] }:$src1) - Complexity = 9
                        // Dst: (VFIXUPIMMSDZrrik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2i64] }:$src3, (timm:{ *:[i32] }):$src4)
/*127089*/            0, // EndSwitchType
/*127090*/          0, /*End of Scope*/
/*127091*/        0, /*End of Scope*/
/*127092*/      /*SwitchOpcode*/ 59|128,1/*187*/, TARGET_VAL(X86ISD::VRNDSCALES),// ->127283
/*127096*/        OPC_RecordChild0, // #1 = $src1
/*127097*/        OPC_RecordChild1, // #2 = $src2
/*127098*/        OPC_RecordChild2, // #3 = $src3
/*127099*/        OPC_MoveChild2,
/*127100*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*127103*/        OPC_MoveParent,
/*127104*/        OPC_MoveParent,
/*127105*/        OPC_Scope, 53, /*->127160*/ // 4 children in Scope
/*127107*/          OPC_MoveChild2,
/*127108*/          OPC_CheckImmAllZerosV,
/*127109*/          OPC_MoveParent,
/*127110*/          OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->127135
/*127113*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*127115*/            OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/*127118*/            OPC_EmitMergeInputChains, 1, 9, 
/*127121*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESSZm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 8/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86RndScales:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3), immAllZerosV:{ *:[v4f32] }) - Complexity = 31
                      // Dst: (VRNDSCALESSZm_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3)
/*127135*/          /*SwitchType*/ 22, MVT::v2f64,// ->127159
/*127137*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*127139*/            OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/*127142*/            OPC_EmitMergeInputChains, 1, 9, 
/*127145*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESDZm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 8/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86RndScales:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3), immAllZerosV:{ *:[v2f64] }) - Complexity = 31
                      // Dst: (VRNDSCALESDZm_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3)
/*127159*/          0, // EndSwitchType
/*127160*/        /*Scope*/ 53, /*->127214*/
/*127161*/          OPC_RecordChild2, // #4 = $src0
/*127162*/          OPC_SwitchType /*2 cases */, 23, MVT::v4f32,// ->127188
/*127165*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*127167*/            OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #5 #6 #7 #8 #9 + chain result
/*127170*/            OPC_EmitMergeInputChains, 1, 10, 
/*127173*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESSZm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 9/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 3, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86RndScales:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, (timm:{ *:[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, (timm:{ *:[i32] }):$src3)
/*127188*/          /*SwitchType*/ 23, MVT::v2f64,// ->127213
/*127190*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*127192*/            OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #5 #6 #7 #8 #9 + chain result
/*127195*/            OPC_EmitMergeInputChains, 1, 10, 
/*127198*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESDZm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 9/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 3, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86RndScales:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, (timm:{ *:[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, (timm:{ *:[i32] }):$src3)
/*127213*/          0, // EndSwitchType
/*127214*/        /*Scope*/ 33, /*->127248*/
/*127215*/          OPC_MoveChild2,
/*127216*/          OPC_CheckImmAllZerosV,
/*127217*/          OPC_MoveParent,
/*127218*/          OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->127233
/*127221*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*127223*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESSZr_Intkz), 0,
                          MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86RndScales:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3), immAllZerosV:{ *:[v4f32] }) - Complexity = 13
                      // Dst: (VRNDSCALESSZr_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3)
/*127233*/          /*SwitchType*/ 12, MVT::v2f64,// ->127247
/*127235*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*127237*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESDZr_Intkz), 0,
                          MVT::v2f64, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86RndScales:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3), immAllZerosV:{ *:[v2f64] }) - Complexity = 13
                      // Dst: (VRNDSCALESDZr_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3)
/*127247*/          0, // EndSwitchType
/*127248*/        /*Scope*/ 33, /*->127282*/
/*127249*/          OPC_RecordChild2, // #4 = $src0
/*127250*/          OPC_SwitchType /*2 cases */, 13, MVT::v4f32,// ->127266
/*127253*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*127255*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESSZr_Intk), 0,
                          MVT::v4f32, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86RndScales:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3), VR128X:{ *:[v4f32] }:$src0) - Complexity = 9
                      // Dst: (VRNDSCALESSZr_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3)
/*127266*/          /*SwitchType*/ 13, MVT::v2f64,// ->127281
/*127268*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*127270*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESDZr_Intk), 0,
                          MVT::v2f64, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86RndScales:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3), VR128X:{ *:[v2f64] }:$src0) - Complexity = 9
                      // Dst: (VRNDSCALESDZr_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3)
/*127281*/          0, // EndSwitchType
/*127282*/        0, /*End of Scope*/
/*127283*/      /*SwitchOpcode*/ 59|128,1/*187*/, TARGET_VAL(X86ISD::VRANGES),// ->127474
/*127287*/        OPC_RecordChild0, // #1 = $src1
/*127288*/        OPC_RecordChild1, // #2 = $src2
/*127289*/        OPC_RecordChild2, // #3 = $src3
/*127290*/        OPC_MoveChild2,
/*127291*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*127294*/        OPC_MoveParent,
/*127295*/        OPC_MoveParent,
/*127296*/        OPC_Scope, 53, /*->127351*/ // 4 children in Scope
/*127298*/          OPC_MoveChild2,
/*127299*/          OPC_CheckImmAllZerosV,
/*127300*/          OPC_MoveParent,
/*127301*/          OPC_SwitchType /*2 cases */, 22, MVT::v2f64,// ->127326
/*127304*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*127306*/            OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/*127309*/            OPC_EmitMergeInputChains, 1, 9, 
/*127312*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGESDZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 8/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Ranges:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3), immAllZerosV:{ *:[v2f64] }) - Complexity = 31
                      // Dst: (VRANGESDZrmikz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3)
/*127326*/          /*SwitchType*/ 22, MVT::v4f32,// ->127350
/*127328*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*127330*/            OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/*127333*/            OPC_EmitMergeInputChains, 1, 9, 
/*127336*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGESSZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 8/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Ranges:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3), immAllZerosV:{ *:[v4f32] }) - Complexity = 31
                      // Dst: (VRANGESSZrmikz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3)
/*127350*/          0, // EndSwitchType
/*127351*/        /*Scope*/ 53, /*->127405*/
/*127352*/          OPC_RecordChild2, // #4 = $src0
/*127353*/          OPC_SwitchType /*2 cases */, 23, MVT::v2f64,// ->127379
/*127356*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*127358*/            OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #5 #6 #7 #8 #9 + chain result
/*127361*/            OPC_EmitMergeInputChains, 1, 10, 
/*127364*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGESDZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 9/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 3, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Ranges:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3), VR128X:{ *:[v2f64] }:$src0) - Complexity = 27
                      // Dst: (VRANGESDZrmik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3)
/*127379*/          /*SwitchType*/ 23, MVT::v4f32,// ->127404
/*127381*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*127383*/            OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #5 #6 #7 #8 #9 + chain result
/*127386*/            OPC_EmitMergeInputChains, 1, 10, 
/*127389*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGESSZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 9/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 3, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Ranges:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3), VR128X:{ *:[v4f32] }:$src0) - Complexity = 27
                      // Dst: (VRANGESSZrmik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3)
/*127404*/          0, // EndSwitchType
/*127405*/        /*Scope*/ 33, /*->127439*/
/*127406*/          OPC_MoveChild2,
/*127407*/          OPC_CheckImmAllZerosV,
/*127408*/          OPC_MoveParent,
/*127409*/          OPC_SwitchType /*2 cases */, 12, MVT::v2f64,// ->127424
/*127412*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*127414*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGESDZrrikz), 0,
                          MVT::v2f64, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Ranges:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3), immAllZerosV:{ *:[v2f64] }) - Complexity = 13
                      // Dst: (VRANGESDZrrikz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3)
/*127424*/          /*SwitchType*/ 12, MVT::v4f32,// ->127438
/*127426*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*127428*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGESSZrrikz), 0,
                          MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Ranges:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3), immAllZerosV:{ *:[v4f32] }) - Complexity = 13
                      // Dst: (VRANGESSZrrikz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3)
/*127438*/          0, // EndSwitchType
/*127439*/        /*Scope*/ 33, /*->127473*/
/*127440*/          OPC_RecordChild2, // #4 = $src0
/*127441*/          OPC_SwitchType /*2 cases */, 13, MVT::v2f64,// ->127457
/*127444*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*127446*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGESDZrrik), 0,
                          MVT::v2f64, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Ranges:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3), VR128X:{ *:[v2f64] }:$src0) - Complexity = 9
                      // Dst: (VRANGESDZrrik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3)
/*127457*/          /*SwitchType*/ 13, MVT::v4f32,// ->127472
/*127459*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*127461*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGESSZrrik), 0,
                          MVT::v4f32, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Ranges:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3), VR128X:{ *:[v4f32] }:$src0) - Complexity = 9
                      // Dst: (VRANGESSZrrik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3)
/*127472*/          0, // EndSwitchType
/*127473*/        0, /*End of Scope*/
/*127474*/      /*SwitchOpcode*/ 59|128,1/*187*/, TARGET_VAL(X86ISD::VREDUCES),// ->127665
/*127478*/        OPC_RecordChild0, // #1 = $src1
/*127479*/        OPC_RecordChild1, // #2 = $src2
/*127480*/        OPC_RecordChild2, // #3 = $src3
/*127481*/        OPC_MoveChild2,
/*127482*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*127485*/        OPC_MoveParent,
/*127486*/        OPC_MoveParent,
/*127487*/        OPC_Scope, 53, /*->127542*/ // 4 children in Scope
/*127489*/          OPC_MoveChild2,
/*127490*/          OPC_CheckImmAllZerosV,
/*127491*/          OPC_MoveParent,
/*127492*/          OPC_SwitchType /*2 cases */, 22, MVT::v2f64,// ->127517
/*127495*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*127497*/            OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/*127500*/            OPC_EmitMergeInputChains, 1, 9, 
/*127503*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCESDZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 8/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Reduces:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3), immAllZerosV:{ *:[v2f64] }) - Complexity = 31
                      // Dst: (VREDUCESDZrmikz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3)
/*127517*/          /*SwitchType*/ 22, MVT::v4f32,// ->127541
/*127519*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*127521*/            OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/*127524*/            OPC_EmitMergeInputChains, 1, 9, 
/*127527*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCESSZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 8/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Reduces:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3), immAllZerosV:{ *:[v4f32] }) - Complexity = 31
                      // Dst: (VREDUCESSZrmikz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3)
/*127541*/          0, // EndSwitchType
/*127542*/        /*Scope*/ 53, /*->127596*/
/*127543*/          OPC_RecordChild2, // #4 = $src0
/*127544*/          OPC_SwitchType /*2 cases */, 23, MVT::v2f64,// ->127570
/*127547*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*127549*/            OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #5 #6 #7 #8 #9 + chain result
/*127552*/            OPC_EmitMergeInputChains, 1, 10, 
/*127555*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCESDZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 9/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 3, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Reduces:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3), VR128X:{ *:[v2f64] }:$src0) - Complexity = 27
                      // Dst: (VREDUCESDZrmik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3)
/*127570*/          /*SwitchType*/ 23, MVT::v4f32,// ->127595
/*127572*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*127574*/            OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #5 #6 #7 #8 #9 + chain result
/*127577*/            OPC_EmitMergeInputChains, 1, 10, 
/*127580*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCESSZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 9/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 3, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Reduces:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3), VR128X:{ *:[v4f32] }:$src0) - Complexity = 27
                      // Dst: (VREDUCESSZrmik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3)
/*127595*/          0, // EndSwitchType
/*127596*/        /*Scope*/ 33, /*->127630*/
/*127597*/          OPC_MoveChild2,
/*127598*/          OPC_CheckImmAllZerosV,
/*127599*/          OPC_MoveParent,
/*127600*/          OPC_SwitchType /*2 cases */, 12, MVT::v2f64,// ->127615
/*127603*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*127605*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCESDZrrikz), 0,
                          MVT::v2f64, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Reduces:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3), immAllZerosV:{ *:[v2f64] }) - Complexity = 13
                      // Dst: (VREDUCESDZrrikz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3)
/*127615*/          /*SwitchType*/ 12, MVT::v4f32,// ->127629
/*127617*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*127619*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCESSZrrikz), 0,
                          MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Reduces:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3), immAllZerosV:{ *:[v4f32] }) - Complexity = 13
                      // Dst: (VREDUCESSZrrikz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3)
/*127629*/          0, // EndSwitchType
/*127630*/        /*Scope*/ 33, /*->127664*/
/*127631*/          OPC_RecordChild2, // #4 = $src0
/*127632*/          OPC_SwitchType /*2 cases */, 13, MVT::v2f64,// ->127648
/*127635*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*127637*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCESDZrrik), 0,
                          MVT::v2f64, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86Reduces:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3), VR128X:{ *:[v2f64] }:$src0) - Complexity = 9
                      // Dst: (VREDUCESDZrrik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3)
/*127648*/          /*SwitchType*/ 13, MVT::v4f32,// ->127663
/*127650*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*127652*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCESSZrrik), 0,
                          MVT::v4f32, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86Reduces:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3), VR128X:{ *:[v4f32] }:$src0) - Complexity = 9
                      // Dst: (VREDUCESSZrrik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3)
/*127663*/          0, // EndSwitchType
/*127664*/        0, /*End of Scope*/
/*127665*/      /*SwitchOpcode*/ 59|128,1/*187*/, TARGET_VAL(X86ISD::VGETMANTS),// ->127856
/*127669*/        OPC_RecordChild0, // #1 = $src1
/*127670*/        OPC_RecordChild1, // #2 = $src2
/*127671*/        OPC_RecordChild2, // #3 = $src3
/*127672*/        OPC_MoveChild2,
/*127673*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*127676*/        OPC_MoveParent,
/*127677*/        OPC_MoveParent,
/*127678*/        OPC_Scope, 53, /*->127733*/ // 4 children in Scope
/*127680*/          OPC_MoveChild2,
/*127681*/          OPC_CheckImmAllZerosV,
/*127682*/          OPC_MoveParent,
/*127683*/          OPC_SwitchType /*2 cases */, 22, MVT::v2f64,// ->127708
/*127686*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*127688*/            OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/*127691*/            OPC_EmitMergeInputChains, 1, 9, 
/*127694*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTSDZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 8/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86GetMants:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3), immAllZerosV:{ *:[v2f64] }) - Complexity = 31
                      // Dst: (VGETMANTSDZrmikz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3)
/*127708*/          /*SwitchType*/ 22, MVT::v4f32,// ->127732
/*127710*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*127712*/            OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/*127715*/            OPC_EmitMergeInputChains, 1, 9, 
/*127718*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTSSZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 8/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86GetMants:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3), immAllZerosV:{ *:[v4f32] }) - Complexity = 31
                      // Dst: (VGETMANTSSZrmikz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3)
/*127732*/          0, // EndSwitchType
/*127733*/        /*Scope*/ 53, /*->127787*/
/*127734*/          OPC_RecordChild2, // #4 = $src0
/*127735*/          OPC_SwitchType /*2 cases */, 23, MVT::v2f64,// ->127761
/*127738*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*127740*/            OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #5 #6 #7 #8 #9 + chain result
/*127743*/            OPC_EmitMergeInputChains, 1, 10, 
/*127746*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTSDZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 9/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 3, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86GetMants:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3), VR128X:{ *:[v2f64] }:$src0) - Complexity = 27
                      // Dst: (VGETMANTSDZrmik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3)
/*127761*/          /*SwitchType*/ 23, MVT::v4f32,// ->127786
/*127763*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*127765*/            OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #5 #6 #7 #8 #9 + chain result
/*127768*/            OPC_EmitMergeInputChains, 1, 10, 
/*127771*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTSSZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 9/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 3, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86GetMants:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3), VR128X:{ *:[v4f32] }:$src0) - Complexity = 27
                      // Dst: (VGETMANTSSZrmik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3)
/*127786*/          0, // EndSwitchType
/*127787*/        /*Scope*/ 33, /*->127821*/
/*127788*/          OPC_MoveChild2,
/*127789*/          OPC_CheckImmAllZerosV,
/*127790*/          OPC_MoveParent,
/*127791*/          OPC_SwitchType /*2 cases */, 12, MVT::v2f64,// ->127806
/*127794*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*127796*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTSDZrrikz), 0,
                          MVT::v2f64, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86GetMants:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3), immAllZerosV:{ *:[v2f64] }) - Complexity = 13
                      // Dst: (VGETMANTSDZrrikz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3)
/*127806*/          /*SwitchType*/ 12, MVT::v4f32,// ->127820
/*127808*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*127810*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTSSZrrikz), 0,
                          MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86GetMants:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3), immAllZerosV:{ *:[v4f32] }) - Complexity = 13
                      // Dst: (VGETMANTSSZrrikz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3)
/*127820*/          0, // EndSwitchType
/*127821*/        /*Scope*/ 33, /*->127855*/
/*127822*/          OPC_RecordChild2, // #4 = $src0
/*127823*/          OPC_SwitchType /*2 cases */, 13, MVT::v2f64,// ->127839
/*127826*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*127828*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTSDZrrik), 0,
                          MVT::v2f64, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86GetMants:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3), VR128X:{ *:[v2f64] }:$src0) - Complexity = 9
                      // Dst: (VGETMANTSDZrrik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3)
/*127839*/          /*SwitchType*/ 13, MVT::v4f32,// ->127854
/*127841*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*127843*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTSSZrrik), 0,
                          MVT::v4f32, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86GetMants:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3), VR128X:{ *:[v4f32] }:$src0) - Complexity = 9
                      // Dst: (VGETMANTSSZrrik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3)
/*127854*/          0, // EndSwitchType
/*127855*/        0, /*End of Scope*/
/*127856*/      /*SwitchOpcode*/ 45|128,1/*173*/, TARGET_VAL(X86ISD::FADDS),// ->128033
/*127860*/        OPC_RecordChild0, // #1 = $src1
/*127861*/        OPC_RecordChild1, // #2 = $src2
/*127862*/        OPC_MoveParent,
/*127863*/        OPC_Scope, 51, /*->127916*/ // 4 children in Scope
/*127865*/          OPC_MoveChild2,
/*127866*/          OPC_CheckImmAllZerosV,
/*127867*/          OPC_MoveParent,
/*127868*/          OPC_SwitchType /*2 cases */, 21, MVT::v4f32,// ->127892
/*127871*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*127873*/            OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*127876*/            OPC_EmitMergeInputChains, 1, 8, 
/*127879*/            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, (X86fadds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2), immAllZerosV:{ *:[v4f32] }) - Complexity = 28
                      // Dst: (VADDSSZrm_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*127892*/          /*SwitchType*/ 21, MVT::v2f64,// ->127915
/*127894*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*127896*/            OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*127899*/            OPC_EmitMergeInputChains, 1, 8, 
/*127902*/            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, (X86fadds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2), immAllZerosV:{ *:[v2f64] }) - Complexity = 28
                      // Dst: (VADDSDZrm_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*127915*/          0, // EndSwitchType
/*127916*/        /*Scope*/ 51, /*->127968*/
/*127917*/          OPC_RecordChild2, // #3 = $src0
/*127918*/          OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->127943
/*127921*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*127923*/            OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/*127926*/            OPC_EmitMergeInputChains, 1, 9, 
/*127929*/            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, (X86fadds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src0) - Complexity = 24
                      // Dst: (VADDSSZrm_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*127943*/          /*SwitchType*/ 22, MVT::v2f64,// ->127967
/*127945*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*127947*/            OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/*127950*/            OPC_EmitMergeInputChains, 1, 9, 
/*127953*/            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, (X86fadds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src0) - Complexity = 24
                      // Dst: (VADDSDZrm_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*127967*/          0, // EndSwitchType
/*127968*/        /*Scope*/ 31, /*->128000*/
/*127969*/          OPC_MoveChild2,
/*127970*/          OPC_CheckImmAllZerosV,
/*127971*/          OPC_MoveParent,
/*127972*/          OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->127986
/*127975*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*127977*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSSZrr_Intkz), 0,
                          MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fadds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), immAllZerosV:{ *:[v4f32] }) - Complexity = 10
                      // Dst: (VADDSSZrr_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*127986*/          /*SwitchType*/ 11, MVT::v2f64,// ->127999
/*127988*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*127990*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSDZrr_Intkz), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fadds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), immAllZerosV:{ *:[v2f64] }) - Complexity = 10
                      // Dst: (VADDSDZrr_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*127999*/          0, // EndSwitchType
/*128000*/        /*Scope*/ 31, /*->128032*/
/*128001*/          OPC_RecordChild2, // #3 = $src0
/*128002*/          OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->128017
/*128005*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*128007*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSSZrr_Intk), 0,
                          MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fadds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src0) - Complexity = 6
                      // Dst: (VADDSSZrr_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*128017*/          /*SwitchType*/ 12, MVT::v2f64,// ->128031
/*128019*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*128021*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSDZrr_Intk), 0,
                          MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fadds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src0) - Complexity = 6
                      // Dst: (VADDSDZrr_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*128031*/          0, // EndSwitchType
/*128032*/        0, /*End of Scope*/
/*128033*/      /*SwitchOpcode*/ 45|128,1/*173*/, TARGET_VAL(X86ISD::FMULS),// ->128210
/*128037*/        OPC_RecordChild0, // #1 = $src1
/*128038*/        OPC_RecordChild1, // #2 = $src2
/*128039*/        OPC_MoveParent,
/*128040*/        OPC_Scope, 51, /*->128093*/ // 4 children in Scope
/*128042*/          OPC_MoveChild2,
/*128043*/          OPC_CheckImmAllZerosV,
/*128044*/          OPC_MoveParent,
/*128045*/          OPC_SwitchType /*2 cases */, 21, MVT::v4f32,// ->128069
/*128048*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*128050*/            OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*128053*/            OPC_EmitMergeInputChains, 1, 8, 
/*128056*/            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, (X86fmuls:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2), immAllZerosV:{ *:[v4f32] }) - Complexity = 28
                      // Dst: (VMULSSZrm_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*128069*/          /*SwitchType*/ 21, MVT::v2f64,// ->128092
/*128071*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*128073*/            OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*128076*/            OPC_EmitMergeInputChains, 1, 8, 
/*128079*/            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, (X86fmuls:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2), immAllZerosV:{ *:[v2f64] }) - Complexity = 28
                      // Dst: (VMULSDZrm_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*128092*/          0, // EndSwitchType
/*128093*/        /*Scope*/ 51, /*->128145*/
/*128094*/          OPC_RecordChild2, // #3 = $src0
/*128095*/          OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->128120
/*128098*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*128100*/            OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/*128103*/            OPC_EmitMergeInputChains, 1, 9, 
/*128106*/            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, (X86fmuls:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src0) - Complexity = 24
                      // Dst: (VMULSSZrm_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*128120*/          /*SwitchType*/ 22, MVT::v2f64,// ->128144
/*128122*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*128124*/            OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/*128127*/            OPC_EmitMergeInputChains, 1, 9, 
/*128130*/            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, (X86fmuls:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src0) - Complexity = 24
                      // Dst: (VMULSDZrm_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*128144*/          0, // EndSwitchType
/*128145*/        /*Scope*/ 31, /*->128177*/
/*128146*/          OPC_MoveChild2,
/*128147*/          OPC_CheckImmAllZerosV,
/*128148*/          OPC_MoveParent,
/*128149*/          OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->128163
/*128152*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*128154*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSSZrr_Intkz), 0,
                          MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fmuls:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), immAllZerosV:{ *:[v4f32] }) - Complexity = 10
                      // Dst: (VMULSSZrr_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*128163*/          /*SwitchType*/ 11, MVT::v2f64,// ->128176
/*128165*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*128167*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSDZrr_Intkz), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fmuls:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), immAllZerosV:{ *:[v2f64] }) - Complexity = 10
                      // Dst: (VMULSDZrr_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*128176*/          0, // EndSwitchType
/*128177*/        /*Scope*/ 31, /*->128209*/
/*128178*/          OPC_RecordChild2, // #3 = $src0
/*128179*/          OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->128194
/*128182*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*128184*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSSZrr_Intk), 0,
                          MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fmuls:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src0) - Complexity = 6
                      // Dst: (VMULSSZrr_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*128194*/          /*SwitchType*/ 12, MVT::v2f64,// ->128208
/*128196*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*128198*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSDZrr_Intk), 0,
                          MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fmuls:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src0) - Complexity = 6
                      // Dst: (VMULSDZrr_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*128208*/          0, // EndSwitchType
/*128209*/        0, /*End of Scope*/
/*128210*/      /*SwitchOpcode*/ 45|128,1/*173*/, TARGET_VAL(X86ISD::FSUBS),// ->128387
/*128214*/        OPC_RecordChild0, // #1 = $src1
/*128215*/        OPC_RecordChild1, // #2 = $src2
/*128216*/        OPC_MoveParent,
/*128217*/        OPC_Scope, 51, /*->128270*/ // 4 children in Scope
/*128219*/          OPC_MoveChild2,
/*128220*/          OPC_CheckImmAllZerosV,
/*128221*/          OPC_MoveParent,
/*128222*/          OPC_SwitchType /*2 cases */, 21, MVT::v4f32,// ->128246
/*128225*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*128227*/            OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*128230*/            OPC_EmitMergeInputChains, 1, 8, 
/*128233*/            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, (X86fsubs:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2), immAllZerosV:{ *:[v4f32] }) - Complexity = 28
                      // Dst: (VSUBSSZrm_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*128246*/          /*SwitchType*/ 21, MVT::v2f64,// ->128269
/*128248*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*128250*/            OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*128253*/            OPC_EmitMergeInputChains, 1, 8, 
/*128256*/            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, (X86fsubs:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2), immAllZerosV:{ *:[v2f64] }) - Complexity = 28
                      // Dst: (VSUBSDZrm_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*128269*/          0, // EndSwitchType
/*128270*/        /*Scope*/ 51, /*->128322*/
/*128271*/          OPC_RecordChild2, // #3 = $src0
/*128272*/          OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->128297
/*128275*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*128277*/            OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/*128280*/            OPC_EmitMergeInputChains, 1, 9, 
/*128283*/            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, (X86fsubs:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src0) - Complexity = 24
                      // Dst: (VSUBSSZrm_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*128297*/          /*SwitchType*/ 22, MVT::v2f64,// ->128321
/*128299*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*128301*/            OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/*128304*/            OPC_EmitMergeInputChains, 1, 9, 
/*128307*/            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, (X86fsubs:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src0) - Complexity = 24
                      // Dst: (VSUBSDZrm_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*128321*/          0, // EndSwitchType
/*128322*/        /*Scope*/ 31, /*->128354*/
/*128323*/          OPC_MoveChild2,
/*128324*/          OPC_CheckImmAllZerosV,
/*128325*/          OPC_MoveParent,
/*128326*/          OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->128340
/*128329*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*128331*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSSZrr_Intkz), 0,
                          MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fsubs:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), immAllZerosV:{ *:[v4f32] }) - Complexity = 10
                      // Dst: (VSUBSSZrr_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*128340*/          /*SwitchType*/ 11, MVT::v2f64,// ->128353
/*128342*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*128344*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSDZrr_Intkz), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fsubs:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), immAllZerosV:{ *:[v2f64] }) - Complexity = 10
                      // Dst: (VSUBSDZrr_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*128353*/          0, // EndSwitchType
/*128354*/        /*Scope*/ 31, /*->128386*/
/*128355*/          OPC_RecordChild2, // #3 = $src0
/*128356*/          OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->128371
/*128359*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*128361*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSSZrr_Intk), 0,
                          MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fsubs:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src0) - Complexity = 6
                      // Dst: (VSUBSSZrr_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*128371*/          /*SwitchType*/ 12, MVT::v2f64,// ->128385
/*128373*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*128375*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSDZrr_Intk), 0,
                          MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fsubs:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src0) - Complexity = 6
                      // Dst: (VSUBSDZrr_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*128385*/          0, // EndSwitchType
/*128386*/        0, /*End of Scope*/
/*128387*/      /*SwitchOpcode*/ 45|128,1/*173*/, TARGET_VAL(X86ISD::FDIVS),// ->128564
/*128391*/        OPC_RecordChild0, // #1 = $src1
/*128392*/        OPC_RecordChild1, // #2 = $src2
/*128393*/        OPC_MoveParent,
/*128394*/        OPC_Scope, 51, /*->128447*/ // 4 children in Scope
/*128396*/          OPC_MoveChild2,
/*128397*/          OPC_CheckImmAllZerosV,
/*128398*/          OPC_MoveParent,
/*128399*/          OPC_SwitchType /*2 cases */, 21, MVT::v4f32,// ->128423
/*128402*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*128404*/            OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*128407*/            OPC_EmitMergeInputChains, 1, 8, 
/*128410*/            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, (X86fdivs:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2), immAllZerosV:{ *:[v4f32] }) - Complexity = 28
                      // Dst: (VDIVSSZrm_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*128423*/          /*SwitchType*/ 21, MVT::v2f64,// ->128446
/*128425*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*128427*/            OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*128430*/            OPC_EmitMergeInputChains, 1, 8, 
/*128433*/            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, (X86fdivs:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2), immAllZerosV:{ *:[v2f64] }) - Complexity = 28
                      // Dst: (VDIVSDZrm_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*128446*/          0, // EndSwitchType
/*128447*/        /*Scope*/ 51, /*->128499*/
/*128448*/          OPC_RecordChild2, // #3 = $src0
/*128449*/          OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->128474
/*128452*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*128454*/            OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/*128457*/            OPC_EmitMergeInputChains, 1, 9, 
/*128460*/            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, (X86fdivs:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src0) - Complexity = 24
                      // Dst: (VDIVSSZrm_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*128474*/          /*SwitchType*/ 22, MVT::v2f64,// ->128498
/*128476*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*128478*/            OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/*128481*/            OPC_EmitMergeInputChains, 1, 9, 
/*128484*/            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, (X86fdivs:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src0) - Complexity = 24
                      // Dst: (VDIVSDZrm_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*128498*/          0, // EndSwitchType
/*128499*/        /*Scope*/ 31, /*->128531*/
/*128500*/          OPC_MoveChild2,
/*128501*/          OPC_CheckImmAllZerosV,
/*128502*/          OPC_MoveParent,
/*128503*/          OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->128517
/*128506*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*128508*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSSZrr_Intkz), 0,
                          MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fdivs:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), immAllZerosV:{ *:[v4f32] }) - Complexity = 10
                      // Dst: (VDIVSSZrr_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*128517*/          /*SwitchType*/ 11, MVT::v2f64,// ->128530
/*128519*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*128521*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSDZrr_Intkz), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fdivs:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), immAllZerosV:{ *:[v2f64] }) - Complexity = 10
                      // Dst: (VDIVSDZrr_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*128530*/          0, // EndSwitchType
/*128531*/        /*Scope*/ 31, /*->128563*/
/*128532*/          OPC_RecordChild2, // #3 = $src0
/*128533*/          OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->128548
/*128536*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*128538*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSSZrr_Intk), 0,
                          MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fdivs:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src0) - Complexity = 6
                      // Dst: (VDIVSSZrr_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*128548*/          /*SwitchType*/ 12, MVT::v2f64,// ->128562
/*128550*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*128552*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSDZrr_Intk), 0,
                          MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fdivs:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src0) - Complexity = 6
                      // Dst: (VDIVSDZrr_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*128562*/          0, // EndSwitchType
/*128563*/        0, /*End of Scope*/
/*128564*/      /*SwitchOpcode*/ 45|128,1/*173*/, TARGET_VAL(X86ISD::FMINS),// ->128741
/*128568*/        OPC_RecordChild0, // #1 = $src1
/*128569*/        OPC_RecordChild1, // #2 = $src2
/*128570*/        OPC_MoveParent,
/*128571*/        OPC_Scope, 51, /*->128624*/ // 4 children in Scope
/*128573*/          OPC_MoveChild2,
/*128574*/          OPC_CheckImmAllZerosV,
/*128575*/          OPC_MoveParent,
/*128576*/          OPC_SwitchType /*2 cases */, 21, MVT::v4f32,// ->128600
/*128579*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*128581*/            OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*128584*/            OPC_EmitMergeInputChains, 1, 8, 
/*128587*/            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), immAllZerosV:{ *:[v4f32] }) - Complexity = 28
                      // Dst: (VMINSSZrm_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*128600*/          /*SwitchType*/ 21, MVT::v2f64,// ->128623
/*128602*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*128604*/            OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*128607*/            OPC_EmitMergeInputChains, 1, 8, 
/*128610*/            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), immAllZerosV:{ *:[v2f64] }) - Complexity = 28
                      // Dst: (VMINSDZrm_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*128623*/          0, // EndSwitchType
/*128624*/        /*Scope*/ 51, /*->128676*/
/*128625*/          OPC_RecordChild2, // #3 = $src0
/*128626*/          OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->128651
/*128629*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*128631*/            OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/*128634*/            OPC_EmitMergeInputChains, 1, 9, 
/*128637*/            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)
/*128651*/          /*SwitchType*/ 22, MVT::v2f64,// ->128675
/*128653*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*128655*/            OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/*128658*/            OPC_EmitMergeInputChains, 1, 9, 
/*128661*/            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)
/*128675*/          0, // EndSwitchType
/*128676*/        /*Scope*/ 31, /*->128708*/
/*128677*/          OPC_MoveChild2,
/*128678*/          OPC_CheckImmAllZerosV,
/*128679*/          OPC_MoveParent,
/*128680*/          OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->128694
/*128683*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*128685*/            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), immAllZerosV:{ *:[v4f32] }) - Complexity = 10
                      // Dst: (VMINSSZrr_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*128694*/          /*SwitchType*/ 11, MVT::v2f64,// ->128707
/*128696*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*128698*/            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), immAllZerosV:{ *:[v2f64] }) - Complexity = 10
                      // Dst: (VMINSDZrr_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*128707*/          0, // EndSwitchType
/*128708*/        /*Scope*/ 31, /*->128740*/
/*128709*/          OPC_RecordChild2, // #3 = $src0
/*128710*/          OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->128725
/*128713*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*128715*/            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)
/*128725*/          /*SwitchType*/ 12, MVT::v2f64,// ->128739
/*128727*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*128729*/            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)
/*128739*/          0, // EndSwitchType
/*128740*/        0, /*End of Scope*/
/*128741*/      /*SwitchOpcode*/ 45|128,1/*173*/, TARGET_VAL(X86ISD::FMAXS),// ->128918
/*128745*/        OPC_RecordChild0, // #1 = $src1
/*128746*/        OPC_RecordChild1, // #2 = $src2
/*128747*/        OPC_MoveParent,
/*128748*/        OPC_Scope, 51, /*->128801*/ // 4 children in Scope
/*128750*/          OPC_MoveChild2,
/*128751*/          OPC_CheckImmAllZerosV,
/*128752*/          OPC_MoveParent,
/*128753*/          OPC_SwitchType /*2 cases */, 21, MVT::v4f32,// ->128777
/*128756*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*128758*/            OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*128761*/            OPC_EmitMergeInputChains, 1, 8, 
/*128764*/            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), immAllZerosV:{ *:[v4f32] }) - Complexity = 28
                      // Dst: (VMAXSSZrm_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*128777*/          /*SwitchType*/ 21, MVT::v2f64,// ->128800
/*128779*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*128781*/            OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*128784*/            OPC_EmitMergeInputChains, 1, 8, 
/*128787*/            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), immAllZerosV:{ *:[v2f64] }) - Complexity = 28
                      // Dst: (VMAXSDZrm_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*128800*/          0, // EndSwitchType
/*128801*/        /*Scope*/ 51, /*->128853*/
/*128802*/          OPC_RecordChild2, // #3 = $src0
/*128803*/          OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->128828
/*128806*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*128808*/            OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/*128811*/            OPC_EmitMergeInputChains, 1, 9, 
/*128814*/            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)
/*128828*/          /*SwitchType*/ 22, MVT::v2f64,// ->128852
/*128830*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*128832*/            OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/*128835*/            OPC_EmitMergeInputChains, 1, 9, 
/*128838*/            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)
/*128852*/          0, // EndSwitchType
/*128853*/        /*Scope*/ 31, /*->128885*/
/*128854*/          OPC_MoveChild2,
/*128855*/          OPC_CheckImmAllZerosV,
/*128856*/          OPC_MoveParent,
/*128857*/          OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->128871
/*128860*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*128862*/            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), immAllZerosV:{ *:[v4f32] }) - Complexity = 10
                      // Dst: (VMAXSSZrr_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*128871*/          /*SwitchType*/ 11, MVT::v2f64,// ->128884
/*128873*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*128875*/            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), immAllZerosV:{ *:[v2f64] }) - Complexity = 10
                      // Dst: (VMAXSDZrr_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*128884*/          0, // EndSwitchType
/*128885*/        /*Scope*/ 31, /*->128917*/
/*128886*/          OPC_RecordChild2, // #3 = $src0
/*128887*/          OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->128902
/*128890*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*128892*/            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)
/*128902*/          /*SwitchType*/ 12, MVT::v2f64,// ->128916
/*128904*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*128906*/            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)
/*128916*/          0, // EndSwitchType
/*128917*/        0, /*End of Scope*/
/*128918*/      /*SwitchOpcode*/ 45|128,1/*173*/, TARGET_VAL(X86ISD::SCALEFS),// ->129095
/*128922*/        OPC_RecordChild0, // #1 = $src1
/*128923*/        OPC_RecordChild1, // #2 = $src2
/*128924*/        OPC_MoveParent,
/*128925*/        OPC_Scope, 51, /*->128978*/ // 4 children in Scope
/*128927*/          OPC_MoveChild2,
/*128928*/          OPC_CheckImmAllZerosV,
/*128929*/          OPC_MoveParent,
/*128930*/          OPC_SwitchType /*2 cases */, 21, MVT::v4f32,// ->128954
/*128933*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*128935*/            OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*128938*/            OPC_EmitMergeInputChains, 1, 8, 
/*128941*/            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), immAllZerosV:{ *:[v4f32] }) - Complexity = 28
                      // Dst: (VSCALEFSSZrmkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*128954*/          /*SwitchType*/ 21, MVT::v2f64,// ->128977
/*128956*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*128958*/            OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*128961*/            OPC_EmitMergeInputChains, 1, 8, 
/*128964*/            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), immAllZerosV:{ *:[v2f64] }) - Complexity = 28
                      // Dst: (VSCALEFSDZrmkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*128977*/          0, // EndSwitchType
/*128978*/        /*Scope*/ 51, /*->129030*/
/*128979*/          OPC_RecordChild2, // #3 = $src0
/*128980*/          OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->129005
/*128983*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*128985*/            OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/*128988*/            OPC_EmitMergeInputChains, 1, 9, 
/*128991*/            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), VR128X:{ *:[v4f32] }:$src0) - Complexity = 24
                      // Dst: (VSCALEFSSZrmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*129005*/          /*SwitchType*/ 22, MVT::v2f64,// ->129029
/*129007*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*129009*/            OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/*129012*/            OPC_EmitMergeInputChains, 1, 9, 
/*129015*/            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), VR128X:{ *:[v2f64] }:$src0) - Complexity = 24
                      // Dst: (VSCALEFSDZrmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*129029*/          0, // EndSwitchType
/*129030*/        /*Scope*/ 31, /*->129062*/
/*129031*/          OPC_MoveChild2,
/*129032*/          OPC_CheckImmAllZerosV,
/*129033*/          OPC_MoveParent,
/*129034*/          OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->129048
/*129037*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*129039*/            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), immAllZerosV:{ *:[v4f32] }) - Complexity = 10
                      // Dst: (VSCALEFSSZrrkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*129048*/          /*SwitchType*/ 11, MVT::v2f64,// ->129061
/*129050*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*129052*/            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), immAllZerosV:{ *:[v2f64] }) - Complexity = 10
                      // Dst: (VSCALEFSDZrrkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*129061*/          0, // EndSwitchType
/*129062*/        /*Scope*/ 31, /*->129094*/
/*129063*/          OPC_RecordChild2, // #3 = $src0
/*129064*/          OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->129079
/*129067*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*129069*/            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), VR128X:{ *:[v4f32] }:$src0) - Complexity = 6
                      // Dst: (VSCALEFSSZrrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*129079*/          /*SwitchType*/ 12, MVT::v2f64,// ->129093
/*129081*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*129083*/            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), VR128X:{ *:[v2f64] }:$src0) - Complexity = 6
                      // Dst: (VSCALEFSDZrrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*129093*/          0, // EndSwitchType
/*129094*/        0, /*End of Scope*/
/*129095*/      /*SwitchOpcode*/ 91, TARGET_VAL(X86ISD::VFPROUNDS),// ->129189
/*129098*/        OPC_RecordChild0, // #1 = $src1
/*129099*/        OPC_RecordChild1, // #2 = $src2
/*129100*/        OPC_MoveParent,
/*129101*/        OPC_Scope, 26, /*->129129*/ // 4 children in Scope
/*129103*/          OPC_MoveChild2,
/*129104*/          OPC_CheckImmAllZerosV,
/*129105*/          OPC_MoveParent,
/*129106*/          OPC_CheckType, MVT::v4f32,
/*129108*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*129110*/          OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*129113*/          OPC_EmitMergeInputChains, 1, 8, 
/*129116*/          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, (X86frounds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2), immAllZerosV:{ *:[v4f32] }) - Complexity = 28
                    // Dst: (VCVTSD2SSZrm_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*129129*/        /*Scope*/ 25, /*->129155*/
/*129130*/          OPC_RecordChild2, // #3 = $src0
/*129131*/          OPC_CheckType, MVT::v4f32,
/*129133*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*129135*/          OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/*129138*/          OPC_EmitMergeInputChains, 1, 9, 
/*129141*/          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, (X86frounds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2), VR128X:{ *:[v4f32] }:$src0) - Complexity = 24
                    // Dst: (VCVTSD2SSZrm_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*129155*/        /*Scope*/ 16, /*->129172*/
/*129156*/          OPC_MoveChild2,
/*129157*/          OPC_CheckImmAllZerosV,
/*129158*/          OPC_MoveParent,
/*129159*/          OPC_CheckType, MVT::v4f32,
/*129161*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*129163*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSD2SSZrr_Intkz), 0,
                        MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86frounds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v2f64] }:$src2), immAllZerosV:{ *:[v4f32] }) - Complexity = 10
                    // Dst: (VCVTSD2SSZrr_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*129172*/        /*Scope*/ 15, /*->129188*/
/*129173*/          OPC_RecordChild2, // #3 = $src0
/*129174*/          OPC_CheckType, MVT::v4f32,
/*129176*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*129178*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSD2SSZrr_Intk), 0,
                        MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                    // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86frounds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v4f32] }:$src0) - Complexity = 6
                    // Dst: (VCVTSD2SSZrr_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*129188*/        0, /*End of Scope*/
/*129189*/      /*SwitchOpcode*/ 91, TARGET_VAL(X86ISD::VFPEXTS),// ->129283
/*129192*/        OPC_RecordChild0, // #1 = $src1
/*129193*/        OPC_RecordChild1, // #2 = $src2
/*129194*/        OPC_MoveParent,
/*129195*/        OPC_Scope, 26, /*->129223*/ // 4 children in Scope
/*129197*/          OPC_MoveChild2,
/*129198*/          OPC_CheckImmAllZerosV,
/*129199*/          OPC_MoveParent,
/*129200*/          OPC_CheckType, MVT::v2f64,
/*129202*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*129204*/          OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*129207*/          OPC_EmitMergeInputChains, 1, 8, 
/*129210*/          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, (X86fpexts:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2), immAllZerosV:{ *:[v2f64] }) - Complexity = 28
                    // Dst: (VCVTSS2SDZrm_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*129223*/        /*Scope*/ 25, /*->129249*/
/*129224*/          OPC_RecordChild2, // #3 = $src0
/*129225*/          OPC_CheckType, MVT::v2f64,
/*129227*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*129229*/          OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/*129232*/          OPC_EmitMergeInputChains, 1, 9, 
/*129235*/          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, (X86fpexts:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2), VR128X:{ *:[v2f64] }:$src0) - Complexity = 24
                    // Dst: (VCVTSS2SDZrm_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*129249*/        /*Scope*/ 16, /*->129266*/
/*129250*/          OPC_MoveChild2,
/*129251*/          OPC_CheckImmAllZerosV,
/*129252*/          OPC_MoveParent,
/*129253*/          OPC_CheckType, MVT::v2f64,
/*129255*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*129257*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSS2SDZrr_Intkz), 0,
                        MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fpexts:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v4f32] }:$src2), immAllZerosV:{ *:[v2f64] }) - Complexity = 10
                    // Dst: (VCVTSS2SDZrr_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*129266*/        /*Scope*/ 15, /*->129282*/
/*129267*/          OPC_RecordChild2, // #3 = $src0
/*129268*/          OPC_CheckType, MVT::v2f64,
/*129270*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*129272*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSS2SDZrr_Intk), 0,
                        MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                    // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fpexts:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v2f64] }:$src0) - Complexity = 6
                    // Dst: (VCVTSS2SDZrr_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*129282*/        0, /*End of Scope*/
/*129283*/      /*SwitchOpcode*/ 45|128,1/*173*/, TARGET_VAL(X86ISD::RCP14S),// ->129460
/*129287*/        OPC_RecordChild0, // #1 = $src1
/*129288*/        OPC_RecordChild1, // #2 = $src2
/*129289*/        OPC_MoveParent,
/*129290*/        OPC_Scope, 51, /*->129343*/ // 4 children in Scope
/*129292*/          OPC_MoveChild2,
/*129293*/          OPC_CheckImmAllZerosV,
/*129294*/          OPC_MoveParent,
/*129295*/          OPC_SwitchType /*2 cases */, 21, MVT::v4f32,// ->129319
/*129298*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*129300*/            OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*129303*/            OPC_EmitMergeInputChains, 1, 8, 
/*129306*/            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), immAllZerosV:{ *:[v4f32] }) - Complexity = 28
                      // Dst: (VRCP14SSZrmkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*129319*/          /*SwitchType*/ 21, MVT::v2f64,// ->129342
/*129321*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*129323*/            OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*129326*/            OPC_EmitMergeInputChains, 1, 8, 
/*129329*/            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), immAllZerosV:{ *:[v2f64] }) - Complexity = 28
                      // Dst: (VRCP14SDZrmkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*129342*/          0, // EndSwitchType
/*129343*/        /*Scope*/ 51, /*->129395*/
/*129344*/          OPC_RecordChild2, // #3 = $src0
/*129345*/          OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->129370
/*129348*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*129350*/            OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/*129353*/            OPC_EmitMergeInputChains, 1, 9, 
/*129356*/            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)
/*129370*/          /*SwitchType*/ 22, MVT::v2f64,// ->129394
/*129372*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*129374*/            OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/*129377*/            OPC_EmitMergeInputChains, 1, 9, 
/*129380*/            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)
/*129394*/          0, // EndSwitchType
/*129395*/        /*Scope*/ 31, /*->129427*/
/*129396*/          OPC_MoveChild2,
/*129397*/          OPC_CheckImmAllZerosV,
/*129398*/          OPC_MoveParent,
/*129399*/          OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->129413
/*129402*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*129404*/            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), immAllZerosV:{ *:[v4f32] }) - Complexity = 10
                      // Dst: (VRCP14SSZrrkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*129413*/          /*SwitchType*/ 11, MVT::v2f64,// ->129426
/*129415*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*129417*/            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), immAllZerosV:{ *:[v2f64] }) - Complexity = 10
                      // Dst: (VRCP14SDZrrkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*129426*/          0, // EndSwitchType
/*129427*/        /*Scope*/ 31, /*->129459*/
/*129428*/          OPC_RecordChild2, // #3 = $src0
/*129429*/          OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->129444
/*129432*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*129434*/            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)
/*129444*/          /*SwitchType*/ 12, MVT::v2f64,// ->129458
/*129446*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*129448*/            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)
/*129458*/          0, // EndSwitchType
/*129459*/        0, /*End of Scope*/
/*129460*/      /*SwitchOpcode*/ 45|128,1/*173*/, TARGET_VAL(X86ISD::RSQRT14S),// ->129637
/*129464*/        OPC_RecordChild0, // #1 = $src1
/*129465*/        OPC_RecordChild1, // #2 = $src2
/*129466*/        OPC_MoveParent,
/*129467*/        OPC_Scope, 51, /*->129520*/ // 4 children in Scope
/*129469*/          OPC_MoveChild2,
/*129470*/          OPC_CheckImmAllZerosV,
/*129471*/          OPC_MoveParent,
/*129472*/          OPC_SwitchType /*2 cases */, 21, MVT::v4f32,// ->129496
/*129475*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*129477*/            OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*129480*/            OPC_EmitMergeInputChains, 1, 8, 
/*129483*/            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), immAllZerosV:{ *:[v4f32] }) - Complexity = 28
                      // Dst: (VRSQRT14SSZrmkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*129496*/          /*SwitchType*/ 21, MVT::v2f64,// ->129519
/*129498*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*129500*/            OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*129503*/            OPC_EmitMergeInputChains, 1, 8, 
/*129506*/            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), immAllZerosV:{ *:[v2f64] }) - Complexity = 28
                      // Dst: (VRSQRT14SDZrmkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*129519*/          0, // EndSwitchType
/*129520*/        /*Scope*/ 51, /*->129572*/
/*129521*/          OPC_RecordChild2, // #3 = $src0
/*129522*/          OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->129547
/*129525*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*129527*/            OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/*129530*/            OPC_EmitMergeInputChains, 1, 9, 
/*129533*/            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)
/*129547*/          /*SwitchType*/ 22, MVT::v2f64,// ->129571
/*129549*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*129551*/            OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/*129554*/            OPC_EmitMergeInputChains, 1, 9, 
/*129557*/            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)
/*129571*/          0, // EndSwitchType
/*129572*/        /*Scope*/ 31, /*->129604*/
/*129573*/          OPC_MoveChild2,
/*129574*/          OPC_CheckImmAllZerosV,
/*129575*/          OPC_MoveParent,
/*129576*/          OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->129590
/*129579*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*129581*/            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), immAllZerosV:{ *:[v4f32] }) - Complexity = 10
                      // Dst: (VRSQRT14SSZrrkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*129590*/          /*SwitchType*/ 11, MVT::v2f64,// ->129603
/*129592*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*129594*/            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), immAllZerosV:{ *:[v2f64] }) - Complexity = 10
                      // Dst: (VRSQRT14SDZrrkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*129603*/          0, // EndSwitchType
/*129604*/        /*Scope*/ 31, /*->129636*/
/*129605*/          OPC_RecordChild2, // #3 = $src0
/*129606*/          OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->129621
/*129609*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*129611*/            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)
/*129621*/          /*SwitchType*/ 12, MVT::v2f64,// ->129635
/*129623*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*129625*/            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)
/*129635*/          0, // EndSwitchType
/*129636*/        0, /*End of Scope*/
/*129637*/      /*SwitchOpcode*/ 45|128,1/*173*/, TARGET_VAL(X86ISD::RCP28S),// ->129814
/*129641*/        OPC_RecordChild0, // #1 = $src1
/*129642*/        OPC_RecordChild1, // #2 = $src2
/*129643*/        OPC_MoveParent,
/*129644*/        OPC_Scope, 51, /*->129697*/ // 4 children in Scope
/*129646*/          OPC_MoveChild2,
/*129647*/          OPC_CheckImmAllZerosV,
/*129648*/          OPC_MoveParent,
/*129649*/          OPC_SwitchType /*2 cases */, 21, MVT::v4f32,// ->129673
/*129652*/            OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*129654*/            OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*129657*/            OPC_EmitMergeInputChains, 1, 8, 
/*129660*/            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), immAllZerosV:{ *:[v4f32] }) - Complexity = 28
                      // Dst: (VRCP28SSZmkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*129673*/          /*SwitchType*/ 21, MVT::v2f64,// ->129696
/*129675*/            OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*129677*/            OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*129680*/            OPC_EmitMergeInputChains, 1, 8, 
/*129683*/            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), immAllZerosV:{ *:[v2f64] }) - Complexity = 28
                      // Dst: (VRCP28SDZmkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*129696*/          0, // EndSwitchType
/*129697*/        /*Scope*/ 51, /*->129749*/
/*129698*/          OPC_RecordChild2, // #3 = $src0
/*129699*/          OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->129724
/*129702*/            OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*129704*/            OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/*129707*/            OPC_EmitMergeInputChains, 1, 9, 
/*129710*/            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), VR128X:{ *:[v4f32] }:$src0) - Complexity = 24
                      // Dst: (VRCP28SSZmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*129724*/          /*SwitchType*/ 22, MVT::v2f64,// ->129748
/*129726*/            OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*129728*/            OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/*129731*/            OPC_EmitMergeInputChains, 1, 9, 
/*129734*/            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), VR128X:{ *:[v2f64] }:$src0) - Complexity = 24
                      // Dst: (VRCP28SDZmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*129748*/          0, // EndSwitchType
/*129749*/        /*Scope*/ 31, /*->129781*/
/*129750*/          OPC_MoveChild2,
/*129751*/          OPC_CheckImmAllZerosV,
/*129752*/          OPC_MoveParent,
/*129753*/          OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->129767
/*129756*/            OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*129758*/            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), immAllZerosV:{ *:[v4f32] }) - Complexity = 10
                      // Dst: (VRCP28SSZrkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*129767*/          /*SwitchType*/ 11, MVT::v2f64,// ->129780
/*129769*/            OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*129771*/            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), immAllZerosV:{ *:[v2f64] }) - Complexity = 10
                      // Dst: (VRCP28SDZrkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*129780*/          0, // EndSwitchType
/*129781*/        /*Scope*/ 31, /*->129813*/
/*129782*/          OPC_RecordChild2, // #3 = $src0
/*129783*/          OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->129798
/*129786*/            OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*129788*/            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), VR128X:{ *:[v4f32] }:$src0) - Complexity = 6
                      // Dst: (VRCP28SSZrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*129798*/          /*SwitchType*/ 12, MVT::v2f64,// ->129812
/*129800*/            OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*129802*/            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), VR128X:{ *:[v2f64] }:$src0) - Complexity = 6
                      // Dst: (VRCP28SDZrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*129812*/          0, // EndSwitchType
/*129813*/        0, /*End of Scope*/
/*129814*/      /*SwitchOpcode*/ 45|128,1/*173*/, TARGET_VAL(X86ISD::RSQRT28S),// ->129991
/*129818*/        OPC_RecordChild0, // #1 = $src1
/*129819*/        OPC_RecordChild1, // #2 = $src2
/*129820*/        OPC_MoveParent,
/*129821*/        OPC_Scope, 51, /*->129874*/ // 4 children in Scope
/*129823*/          OPC_MoveChild2,
/*129824*/          OPC_CheckImmAllZerosV,
/*129825*/          OPC_MoveParent,
/*129826*/          OPC_SwitchType /*2 cases */, 21, MVT::v4f32,// ->129850
/*129829*/            OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*129831*/            OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*129834*/            OPC_EmitMergeInputChains, 1, 8, 
/*129837*/            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), immAllZerosV:{ *:[v4f32] }) - Complexity = 28
                      // Dst: (VRSQRT28SSZmkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*129850*/          /*SwitchType*/ 21, MVT::v2f64,// ->129873
/*129852*/            OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*129854*/            OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*129857*/            OPC_EmitMergeInputChains, 1, 8, 
/*129860*/            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), immAllZerosV:{ *:[v2f64] }) - Complexity = 28
                      // Dst: (VRSQRT28SDZmkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*129873*/          0, // EndSwitchType
/*129874*/        /*Scope*/ 51, /*->129926*/
/*129875*/          OPC_RecordChild2, // #3 = $src0
/*129876*/          OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->129901
/*129879*/            OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*129881*/            OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/*129884*/            OPC_EmitMergeInputChains, 1, 9, 
/*129887*/            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), VR128X:{ *:[v4f32] }:$src0) - Complexity = 24
                      // Dst: (VRSQRT28SSZmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*129901*/          /*SwitchType*/ 22, MVT::v2f64,// ->129925
/*129903*/            OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*129905*/            OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/*129908*/            OPC_EmitMergeInputChains, 1, 9, 
/*129911*/            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), VR128X:{ *:[v2f64] }:$src0) - Complexity = 24
                      // Dst: (VRSQRT28SDZmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*129925*/          0, // EndSwitchType
/*129926*/        /*Scope*/ 31, /*->129958*/
/*129927*/          OPC_MoveChild2,
/*129928*/          OPC_CheckImmAllZerosV,
/*129929*/          OPC_MoveParent,
/*129930*/          OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->129944
/*129933*/            OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*129935*/            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), immAllZerosV:{ *:[v4f32] }) - Complexity = 10
                      // Dst: (VRSQRT28SSZrkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*129944*/          /*SwitchType*/ 11, MVT::v2f64,// ->129957
/*129946*/            OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*129948*/            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), immAllZerosV:{ *:[v2f64] }) - Complexity = 10
                      // Dst: (VRSQRT28SDZrkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*129957*/          0, // EndSwitchType
/*129958*/        /*Scope*/ 31, /*->129990*/
/*129959*/          OPC_RecordChild2, // #3 = $src0
/*129960*/          OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->129975
/*129963*/            OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*129965*/            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), VR128X:{ *:[v4f32] }:$src0) - Complexity = 6
                      // Dst: (VRSQRT28SSZrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*129975*/          /*SwitchType*/ 12, MVT::v2f64,// ->129989
/*129977*/            OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*129979*/            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), VR128X:{ *:[v2f64] }:$src0) - Complexity = 6
                      // Dst: (VRSQRT28SDZrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*129989*/          0, // EndSwitchType
/*129990*/        0, /*End of Scope*/
/*129991*/      /*SwitchOpcode*/ 45|128,1/*173*/, TARGET_VAL(X86ISD::FGETEXPS),// ->130168
/*129995*/        OPC_RecordChild0, // #1 = $src1
/*129996*/        OPC_RecordChild1, // #2 = $src2
/*129997*/        OPC_MoveParent,
/*129998*/        OPC_Scope, 51, /*->130051*/ // 4 children in Scope
/*130000*/          OPC_MoveChild2,
/*130001*/          OPC_CheckImmAllZerosV,
/*130002*/          OPC_MoveParent,
/*130003*/          OPC_SwitchType /*2 cases */, 21, MVT::v4f32,// ->130027
/*130006*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*130008*/            OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*130011*/            OPC_EmitMergeInputChains, 1, 8, 
/*130014*/            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, (X86fgetexps:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2), immAllZerosV:{ *:[v4f32] }) - Complexity = 28
                      // Dst: (VGETEXPSSZmkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*130027*/          /*SwitchType*/ 21, MVT::v2f64,// ->130050
/*130029*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*130031*/            OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*130034*/            OPC_EmitMergeInputChains, 1, 8, 
/*130037*/            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, (X86fgetexps:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2), immAllZerosV:{ *:[v2f64] }) - Complexity = 28
                      // Dst: (VGETEXPSDZmkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*130050*/          0, // EndSwitchType
/*130051*/        /*Scope*/ 51, /*->130103*/
/*130052*/          OPC_RecordChild2, // #3 = $src0
/*130053*/          OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->130078
/*130056*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*130058*/            OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/*130061*/            OPC_EmitMergeInputChains, 1, 9, 
/*130064*/            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, (X86fgetexps:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src0) - Complexity = 24
                      // Dst: (VGETEXPSSZmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*130078*/          /*SwitchType*/ 22, MVT::v2f64,// ->130102
/*130080*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*130082*/            OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/*130085*/            OPC_EmitMergeInputChains, 1, 9, 
/*130088*/            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, (X86fgetexps:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src0) - Complexity = 24
                      // Dst: (VGETEXPSDZmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*130102*/          0, // EndSwitchType
/*130103*/        /*Scope*/ 31, /*->130135*/
/*130104*/          OPC_MoveChild2,
/*130105*/          OPC_CheckImmAllZerosV,
/*130106*/          OPC_MoveParent,
/*130107*/          OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->130121
/*130110*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*130112*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPSSZrkz), 0,
                          MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fgetexps:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), immAllZerosV:{ *:[v4f32] }) - Complexity = 10
                      // Dst: (VGETEXPSSZrkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*130121*/          /*SwitchType*/ 11, MVT::v2f64,// ->130134
/*130123*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*130125*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPSDZrkz), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fgetexps:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), immAllZerosV:{ *:[v2f64] }) - Complexity = 10
                      // Dst: (VGETEXPSDZrkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*130134*/          0, // EndSwitchType
/*130135*/        /*Scope*/ 31, /*->130167*/
/*130136*/          OPC_RecordChild2, // #3 = $src0
/*130137*/          OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->130152
/*130140*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*130142*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPSSZrk), 0,
                          MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fgetexps:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src0) - Complexity = 6
                      // Dst: (VGETEXPSSZrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*130152*/          /*SwitchType*/ 12, MVT::v2f64,// ->130166
/*130154*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*130156*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPSDZrk), 0,
                          MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fgetexps:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src0) - Complexity = 6
                      // Dst: (VGETEXPSDZrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*130166*/          0, // EndSwitchType
/*130167*/        0, /*End of Scope*/
/*130168*/      /*SwitchOpcode*/ 45|128,1/*173*/, TARGET_VAL(X86ISD::FSQRTS),// ->130345
/*130172*/        OPC_RecordChild0, // #1 = $src1
/*130173*/        OPC_RecordChild1, // #2 = $src2
/*130174*/        OPC_MoveParent,
/*130175*/        OPC_Scope, 51, /*->130228*/ // 4 children in Scope
/*130177*/          OPC_MoveChild2,
/*130178*/          OPC_CheckImmAllZerosV,
/*130179*/          OPC_MoveParent,
/*130180*/          OPC_SwitchType /*2 cases */, 21, MVT::v4f32,// ->130204
/*130183*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*130185*/            OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*130188*/            OPC_EmitMergeInputChains, 1, 8, 
/*130191*/            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, (X86fsqrts:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2), immAllZerosV:{ *:[v4f32] }) - Complexity = 28
                      // Dst: (VSQRTSSZm_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*130204*/          /*SwitchType*/ 21, MVT::v2f64,// ->130227
/*130206*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*130208*/            OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*130211*/            OPC_EmitMergeInputChains, 1, 8, 
/*130214*/            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, (X86fsqrts:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2), immAllZerosV:{ *:[v2f64] }) - Complexity = 28
                      // Dst: (VSQRTSDZm_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*130227*/          0, // EndSwitchType
/*130228*/        /*Scope*/ 51, /*->130280*/
/*130229*/          OPC_RecordChild2, // #3 = $src0
/*130230*/          OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->130255
/*130233*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*130235*/            OPC_CheckComplexPat, /*CP*/2, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/*130238*/            OPC_EmitMergeInputChains, 1, 9, 
/*130241*/            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, (X86fsqrts:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src0) - Complexity = 24
                      // Dst: (VSQRTSSZm_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*130255*/          /*SwitchType*/ 22, MVT::v2f64,// ->130279
/*130257*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*130259*/            OPC_CheckComplexPat, /*CP*/3, /*#*/2, // selectScalarSSELoad:$src2 #4 #5 #6 #7 #8 + chain result
/*130262*/            OPC_EmitMergeInputChains, 1, 9, 
/*130265*/            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, (X86fsqrts:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src0) - Complexity = 24
                      // Dst: (VSQRTSDZm_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*130279*/          0, // EndSwitchType
/*130280*/        /*Scope*/ 31, /*->130312*/
/*130281*/          OPC_MoveChild2,
/*130282*/          OPC_CheckImmAllZerosV,
/*130283*/          OPC_MoveParent,
/*130284*/          OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->130298
/*130287*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*130289*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTSSZr_Intkz), 0,
                          MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fsqrts:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), immAllZerosV:{ *:[v4f32] }) - Complexity = 10
                      // Dst: (VSQRTSSZr_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*130298*/          /*SwitchType*/ 11, MVT::v2f64,// ->130311
/*130300*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*130302*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTSDZr_Intkz), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fsqrts:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), immAllZerosV:{ *:[v2f64] }) - Complexity = 10
                      // Dst: (VSQRTSDZr_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*130311*/          0, // EndSwitchType
/*130312*/        /*Scope*/ 31, /*->130344*/
/*130313*/          OPC_RecordChild2, // #3 = $src0
/*130314*/          OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->130329
/*130317*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*130319*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTSSZr_Intk), 0,
                          MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fsqrts:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src0) - Complexity = 6
                      // Dst: (VSQRTSSZr_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*130329*/          /*SwitchType*/ 12, MVT::v2f64,// ->130343
/*130331*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*130333*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTSDZr_Intk), 0,
                          MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fsqrts:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src0) - Complexity = 6
                      // Dst: (VSQRTSDZr_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*130343*/          0, // EndSwitchType
/*130344*/        0, /*End of Scope*/
/*130345*/      /*SwitchOpcode*/ 79, TARGET_VAL(X86ISD::FADDS_RND),// ->130427
/*130348*/        OPC_RecordChild0, // #1 = $src1
/*130349*/        OPC_RecordChild1, // #2 = $src2
/*130350*/        OPC_RecordChild2, // #3 = $rc
/*130351*/        OPC_MoveChild2,
/*130352*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*130355*/        OPC_MoveParent,
/*130356*/        OPC_MoveParent,
/*130357*/        OPC_Scope, 33, /*->130392*/ // 2 children in Scope
/*130359*/          OPC_MoveChild2,
/*130360*/          OPC_CheckImmAllZerosV,
/*130361*/          OPC_MoveParent,
/*130362*/          OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->130377
/*130365*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*130367*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSSZrrb_Intkz), 0,
                          MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86faddRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$rc), immAllZerosV:{ *:[v4f32] }) - Complexity = 13
                      // Dst: (VADDSSZrrb_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$rc)
/*130377*/          /*SwitchType*/ 12, MVT::v2f64,// ->130391
/*130379*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*130381*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSDZrrb_Intkz), 0,
                          MVT::v2f64, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86faddRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$rc), immAllZerosV:{ *:[v2f64] }) - Complexity = 13
                      // Dst: (VADDSDZrrb_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$rc)
/*130391*/          0, // EndSwitchType
/*130392*/        /*Scope*/ 33, /*->130426*/
/*130393*/          OPC_RecordChild2, // #4 = $src0
/*130394*/          OPC_SwitchType /*2 cases */, 13, MVT::v4f32,// ->130410
/*130397*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*130399*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSSZrrb_Intk), 0,
                          MVT::v4f32, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86faddRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$rc), VR128X:{ *:[v4f32] }:$src0) - Complexity = 9
                      // Dst: (VADDSSZrrb_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$rc)
/*130410*/          /*SwitchType*/ 13, MVT::v2f64,// ->130425
/*130412*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*130414*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSDZrrb_Intk), 0,
                          MVT::v2f64, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86faddRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$rc), VR128X:{ *:[v2f64] }:$src0) - Complexity = 9
                      // Dst: (VADDSDZrrb_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$rc)
/*130425*/          0, // EndSwitchType
/*130426*/        0, /*End of Scope*/
/*130427*/      /*SwitchOpcode*/ 79, TARGET_VAL(X86ISD::FMULS_RND),// ->130509
/*130430*/        OPC_RecordChild0, // #1 = $src1
/*130431*/        OPC_RecordChild1, // #2 = $src2
/*130432*/        OPC_RecordChild2, // #3 = $rc
/*130433*/        OPC_MoveChild2,
/*130434*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*130437*/        OPC_MoveParent,
/*130438*/        OPC_MoveParent,
/*130439*/        OPC_Scope, 33, /*->130474*/ // 2 children in Scope
/*130441*/          OPC_MoveChild2,
/*130442*/          OPC_CheckImmAllZerosV,
/*130443*/          OPC_MoveParent,
/*130444*/          OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->130459
/*130447*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*130449*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSSZrrb_Intkz), 0,
                          MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fmulRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$rc), immAllZerosV:{ *:[v4f32] }) - Complexity = 13
                      // Dst: (VMULSSZrrb_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$rc)
/*130459*/          /*SwitchType*/ 12, MVT::v2f64,// ->130473
/*130461*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*130463*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSDZrrb_Intkz), 0,
                          MVT::v2f64, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fmulRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$rc), immAllZerosV:{ *:[v2f64] }) - Complexity = 13
                      // Dst: (VMULSDZrrb_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$rc)
/*130473*/          0, // EndSwitchType
/*130474*/        /*Scope*/ 33, /*->130508*/
/*130475*/          OPC_RecordChild2, // #4 = $src0
/*130476*/          OPC_SwitchType /*2 cases */, 13, MVT::v4f32,// ->130492
/*130479*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*130481*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSSZrrb_Intk), 0,
                          MVT::v4f32, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fmulRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$rc), VR128X:{ *:[v4f32] }:$src0) - Complexity = 9
                      // Dst: (VMULSSZrrb_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$rc)
/*130492*/          /*SwitchType*/ 13, MVT::v2f64,// ->130507
/*130494*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*130496*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSDZrrb_Intk), 0,
                          MVT::v2f64, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fmulRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$rc), VR128X:{ *:[v2f64] }:$src0) - Complexity = 9
                      // Dst: (VMULSDZrrb_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$rc)
/*130507*/          0, // EndSwitchType
/*130508*/        0, /*End of Scope*/
/*130509*/      /*SwitchOpcode*/ 79, TARGET_VAL(X86ISD::FSUBS_RND),// ->130591
/*130512*/        OPC_RecordChild0, // #1 = $src1
/*130513*/        OPC_RecordChild1, // #2 = $src2
/*130514*/        OPC_RecordChild2, // #3 = $rc
/*130515*/        OPC_MoveChild2,
/*130516*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*130519*/        OPC_MoveParent,
/*130520*/        OPC_MoveParent,
/*130521*/        OPC_Scope, 33, /*->130556*/ // 2 children in Scope
/*130523*/          OPC_MoveChild2,
/*130524*/          OPC_CheckImmAllZerosV,
/*130525*/          OPC_MoveParent,
/*130526*/          OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->130541
/*130529*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*130531*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSSZrrb_Intkz), 0,
                          MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fsubRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$rc), immAllZerosV:{ *:[v4f32] }) - Complexity = 13
                      // Dst: (VSUBSSZrrb_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$rc)
/*130541*/          /*SwitchType*/ 12, MVT::v2f64,// ->130555
/*130543*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*130545*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSDZrrb_Intkz), 0,
                          MVT::v2f64, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fsubRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$rc), immAllZerosV:{ *:[v2f64] }) - Complexity = 13
                      // Dst: (VSUBSDZrrb_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$rc)
/*130555*/          0, // EndSwitchType
/*130556*/        /*Scope*/ 33, /*->130590*/
/*130557*/          OPC_RecordChild2, // #4 = $src0
/*130558*/          OPC_SwitchType /*2 cases */, 13, MVT::v4f32,// ->130574
/*130561*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*130563*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSSZrrb_Intk), 0,
                          MVT::v4f32, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fsubRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$rc), VR128X:{ *:[v4f32] }:$src0) - Complexity = 9
                      // Dst: (VSUBSSZrrb_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$rc)
/*130574*/          /*SwitchType*/ 13, MVT::v2f64,// ->130589
/*130576*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*130578*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSDZrrb_Intk), 0,
                          MVT::v2f64, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fsubRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$rc), VR128X:{ *:[v2f64] }:$src0) - Complexity = 9
                      // Dst: (VSUBSDZrrb_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$rc)
/*130589*/          0, // EndSwitchType
/*130590*/        0, /*End of Scope*/
/*130591*/      /*SwitchOpcode*/ 79, TARGET_VAL(X86ISD::FDIVS_RND),// ->130673
/*130594*/        OPC_RecordChild0, // #1 = $src1
/*130595*/        OPC_RecordChild1, // #2 = $src2
/*130596*/        OPC_RecordChild2, // #3 = $rc
/*130597*/        OPC_MoveChild2,
/*130598*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*130601*/        OPC_MoveParent,
/*130602*/        OPC_MoveParent,
/*130603*/        OPC_Scope, 33, /*->130638*/ // 2 children in Scope
/*130605*/          OPC_MoveChild2,
/*130606*/          OPC_CheckImmAllZerosV,
/*130607*/          OPC_MoveParent,
/*130608*/          OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->130623
/*130611*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*130613*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSSZrrb_Intkz), 0,
                          MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fdivRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$rc), immAllZerosV:{ *:[v4f32] }) - Complexity = 13
                      // Dst: (VDIVSSZrrb_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$rc)
/*130623*/          /*SwitchType*/ 12, MVT::v2f64,// ->130637
/*130625*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*130627*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSDZrrb_Intkz), 0,
                          MVT::v2f64, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fdivRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$rc), immAllZerosV:{ *:[v2f64] }) - Complexity = 13
                      // Dst: (VDIVSDZrrb_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$rc)
/*130637*/          0, // EndSwitchType
/*130638*/        /*Scope*/ 33, /*->130672*/
/*130639*/          OPC_RecordChild2, // #4 = $src0
/*130640*/          OPC_SwitchType /*2 cases */, 13, MVT::v4f32,// ->130656
/*130643*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*130645*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSSZrrb_Intk), 0,
                          MVT::v4f32, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fdivRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$rc), VR128X:{ *:[v4f32] }:$src0) - Complexity = 9
                      // Dst: (VDIVSSZrrb_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$rc)
/*130656*/          /*SwitchType*/ 13, MVT::v2f64,// ->130671
/*130658*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*130660*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSDZrrb_Intk), 0,
                          MVT::v2f64, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fdivRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$rc), VR128X:{ *:[v2f64] }:$src0) - Complexity = 9
                      // Dst: (VDIVSDZrrb_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$rc)
/*130671*/          0, // EndSwitchType
/*130672*/        0, /*End of Scope*/
/*130673*/      /*SwitchOpcode*/ 79, TARGET_VAL(X86ISD::SCALEFS_RND),// ->130755
/*130676*/        OPC_RecordChild0, // #1 = $src1
/*130677*/        OPC_RecordChild1, // #2 = $src2
/*130678*/        OPC_RecordChild2, // #3 = $rc
/*130679*/        OPC_MoveChild2,
/*130680*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*130683*/        OPC_MoveParent,
/*130684*/        OPC_MoveParent,
/*130685*/        OPC_Scope, 33, /*->130720*/ // 2 children in Scope
/*130687*/          OPC_MoveChild2,
/*130688*/          OPC_CheckImmAllZerosV,
/*130689*/          OPC_MoveParent,
/*130690*/          OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->130705
/*130693*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*130695*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFSSZrrb_Intkz), 0,
                          MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86scalefsRnd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$rc), immAllZerosV:{ *:[v4f32] }) - Complexity = 13
                      // Dst: (VSCALEFSSZrrb_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$rc)
/*130705*/          /*SwitchType*/ 12, MVT::v2f64,// ->130719
/*130707*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*130709*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFSDZrrb_Intkz), 0,
                          MVT::v2f64, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86scalefsRnd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$rc), immAllZerosV:{ *:[v2f64] }) - Complexity = 13
                      // Dst: (VSCALEFSDZrrb_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$rc)
/*130719*/          0, // EndSwitchType
/*130720*/        /*Scope*/ 33, /*->130754*/
/*130721*/          OPC_RecordChild2, // #4 = $src0
/*130722*/          OPC_SwitchType /*2 cases */, 13, MVT::v4f32,// ->130738
/*130725*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*130727*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFSSZrrb_Intk), 0,
                          MVT::v4f32, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86scalefsRnd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$rc), VR128X:{ *:[v4f32] }:$src0) - Complexity = 9
                      // Dst: (VSCALEFSSZrrb_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$rc)
/*130738*/          /*SwitchType*/ 13, MVT::v2f64,// ->130753
/*130740*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*130742*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFSDZrrb_Intk), 0,
                          MVT::v2f64, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86scalefsRnd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$rc), VR128X:{ *:[v2f64] }:$src0) - Complexity = 9
                      // Dst: (VSCALEFSDZrrb_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$rc)
/*130753*/          0, // EndSwitchType
/*130754*/        0, /*End of Scope*/
/*130755*/      /*SwitchOpcode*/ 46, TARGET_VAL(X86ISD::VFPROUNDS_RND),// ->130804
/*130758*/        OPC_RecordChild0, // #1 = $src1
/*130759*/        OPC_RecordChild1, // #2 = $src2
/*130760*/        OPC_RecordChild2, // #3 = $rc
/*130761*/        OPC_MoveChild2,
/*130762*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*130765*/        OPC_MoveParent,
/*130766*/        OPC_MoveParent,
/*130767*/        OPC_Scope, 17, /*->130786*/ // 2 children in Scope
/*130769*/          OPC_MoveChild2,
/*130770*/          OPC_CheckImmAllZerosV,
/*130771*/          OPC_MoveParent,
/*130772*/          OPC_CheckType, MVT::v4f32,
/*130774*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*130776*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSD2SSZrrb_Intkz), 0,
                        MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86froundsRnd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$rc), immAllZerosV:{ *:[v4f32] }) - Complexity = 13
                    // Dst: (VCVTSD2SSZrrb_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$rc)
/*130786*/        /*Scope*/ 16, /*->130803*/
/*130787*/          OPC_RecordChild2, // #4 = $src0
/*130788*/          OPC_CheckType, MVT::v4f32,
/*130790*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*130792*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSD2SSZrrb_Intk), 0,
                        MVT::v4f32, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                    // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86froundsRnd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$rc), VR128X:{ *:[v4f32] }:$src0) - Complexity = 9
                    // Dst: (VCVTSD2SSZrrb_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$rc)
/*130803*/        0, /*End of Scope*/
/*130804*/      /*SwitchOpcode*/ 79, TARGET_VAL(X86ISD::FSQRTS_RND),// ->130886
/*130807*/        OPC_RecordChild0, // #1 = $src1
/*130808*/        OPC_RecordChild1, // #2 = $src2
/*130809*/        OPC_RecordChild2, // #3 = $rc
/*130810*/        OPC_MoveChild2,
/*130811*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*130814*/        OPC_MoveParent,
/*130815*/        OPC_MoveParent,
/*130816*/        OPC_Scope, 33, /*->130851*/ // 2 children in Scope
/*130818*/          OPC_MoveChild2,
/*130819*/          OPC_CheckImmAllZerosV,
/*130820*/          OPC_MoveParent,
/*130821*/          OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->130836
/*130824*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*130826*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTSSZrb_Intkz), 0,
                          MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fsqrtRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$rc), immAllZerosV:{ *:[v4f32] }) - Complexity = 13
                      // Dst: (VSQRTSSZrb_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$rc)
/*130836*/          /*SwitchType*/ 12, MVT::v2f64,// ->130850
/*130838*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*130840*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTSDZrb_Intkz), 0,
                          MVT::v2f64, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fsqrtRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$rc), immAllZerosV:{ *:[v2f64] }) - Complexity = 13
                      // Dst: (VSQRTSDZrb_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$rc)
/*130850*/          0, // EndSwitchType
/*130851*/        /*Scope*/ 33, /*->130885*/
/*130852*/          OPC_RecordChild2, // #4 = $src0
/*130853*/          OPC_SwitchType /*2 cases */, 13, MVT::v4f32,// ->130869
/*130856*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*130858*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTSSZrb_Intk), 0,
                          MVT::v4f32, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fsqrtRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$rc), VR128X:{ *:[v4f32] }:$src0) - Complexity = 9
                      // Dst: (VSQRTSSZrb_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$rc)
/*130869*/          /*SwitchType*/ 13, MVT::v2f64,// ->130884
/*130871*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*130873*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTSDZrb_Intk), 0,
                          MVT::v2f64, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fsqrtRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$rc), VR128X:{ *:[v2f64] }:$src0) - Complexity = 9
                      // Dst: (VSQRTSDZrb_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$rc)
/*130884*/          0, // EndSwitchType
/*130885*/        0, /*End of Scope*/
/*130886*/      /*SwitchOpcode*/ 79, TARGET_VAL(X86ISD::VRNDSCALES_SAE),// ->130968
/*130889*/        OPC_RecordChild0, // #1 = $src1
/*130890*/        OPC_RecordChild1, // #2 = $src2
/*130891*/        OPC_RecordChild2, // #3 = $src3
/*130892*/        OPC_MoveChild2,
/*130893*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*130896*/        OPC_MoveParent,
/*130897*/        OPC_MoveParent,
/*130898*/        OPC_Scope, 33, /*->130933*/ // 2 children in Scope
/*130900*/          OPC_MoveChild2,
/*130901*/          OPC_CheckImmAllZerosV,
/*130902*/          OPC_MoveParent,
/*130903*/          OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->130918
/*130906*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*130908*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESSZrb_Intkz), 0,
                          MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86RndScalesSAE:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3), immAllZerosV:{ *:[v4f32] }) - Complexity = 13
                      // Dst: (VRNDSCALESSZrb_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3)
/*130918*/          /*SwitchType*/ 12, MVT::v2f64,// ->130932
/*130920*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*130922*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESDZrb_Intkz), 0,
                          MVT::v2f64, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86RndScalesSAE:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3), immAllZerosV:{ *:[v2f64] }) - Complexity = 13
                      // Dst: (VRNDSCALESDZrb_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3)
/*130932*/          0, // EndSwitchType
/*130933*/        /*Scope*/ 33, /*->130967*/
/*130934*/          OPC_RecordChild2, // #4 = $src0
/*130935*/          OPC_SwitchType /*2 cases */, 13, MVT::v4f32,// ->130951
/*130938*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*130940*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESSZrb_Intk), 0,
                          MVT::v4f32, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86RndScalesSAE:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3), VR128X:{ *:[v4f32] }:$src0) - Complexity = 9
                      // Dst: (VRNDSCALESSZrb_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3)
/*130951*/          /*SwitchType*/ 13, MVT::v2f64,// ->130966
/*130953*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*130955*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESDZrb_Intk), 0,
                          MVT::v2f64, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86RndScalesSAE:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3), VR128X:{ *:[v2f64] }:$src0) - Complexity = 9
                      // Dst: (VRNDSCALESDZrb_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3)
/*130966*/          0, // EndSwitchType
/*130967*/        0, /*End of Scope*/
/*130968*/      /*SwitchOpcode*/ 79, TARGET_VAL(X86ISD::VRANGES_SAE),// ->131050
/*130971*/        OPC_RecordChild0, // #1 = $src1
/*130972*/        OPC_RecordChild1, // #2 = $src2
/*130973*/        OPC_RecordChild2, // #3 = $src3
/*130974*/        OPC_MoveChild2,
/*130975*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*130978*/        OPC_MoveParent,
/*130979*/        OPC_MoveParent,
/*130980*/        OPC_Scope, 33, /*->131015*/ // 2 children in Scope
/*130982*/          OPC_MoveChild2,
/*130983*/          OPC_CheckImmAllZerosV,
/*130984*/          OPC_MoveParent,
/*130985*/          OPC_SwitchType /*2 cases */, 12, MVT::v2f64,// ->131000
/*130988*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*130990*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGESDZrribkz), 0,
                          MVT::v2f64, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86RangesSAE:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3), immAllZerosV:{ *:[v2f64] }) - Complexity = 13
                      // Dst: (VRANGESDZrribkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3)
/*131000*/          /*SwitchType*/ 12, MVT::v4f32,// ->131014
/*131002*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*131004*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGESSZrribkz), 0,
                          MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86RangesSAE:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3), immAllZerosV:{ *:[v4f32] }) - Complexity = 13
                      // Dst: (VRANGESSZrribkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3)
/*131014*/          0, // EndSwitchType
/*131015*/        /*Scope*/ 33, /*->131049*/
/*131016*/          OPC_RecordChild2, // #4 = $src0
/*131017*/          OPC_SwitchType /*2 cases */, 13, MVT::v2f64,// ->131033
/*131020*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*131022*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGESDZrribk), 0,
                          MVT::v2f64, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86RangesSAE:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3), VR128X:{ *:[v2f64] }:$src0) - Complexity = 9
                      // Dst: (VRANGESDZrribk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3)
/*131033*/          /*SwitchType*/ 13, MVT::v4f32,// ->131048
/*131035*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*131037*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGESSZrribk), 0,
                          MVT::v4f32, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86RangesSAE:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3), VR128X:{ *:[v4f32] }:$src0) - Complexity = 9
                      // Dst: (VRANGESSZrribk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3)
/*131048*/          0, // EndSwitchType
/*131049*/        0, /*End of Scope*/
/*131050*/      /*SwitchOpcode*/ 79, TARGET_VAL(X86ISD::VREDUCES_SAE),// ->131132
/*131053*/        OPC_RecordChild0, // #1 = $src1
/*131054*/        OPC_RecordChild1, // #2 = $src2
/*131055*/        OPC_RecordChild2, // #3 = $src3
/*131056*/        OPC_MoveChild2,
/*131057*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*131060*/        OPC_MoveParent,
/*131061*/        OPC_MoveParent,
/*131062*/        OPC_Scope, 33, /*->131097*/ // 2 children in Scope
/*131064*/          OPC_MoveChild2,
/*131065*/          OPC_CheckImmAllZerosV,
/*131066*/          OPC_MoveParent,
/*131067*/          OPC_SwitchType /*2 cases */, 12, MVT::v2f64,// ->131082
/*131070*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*131072*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCESDZrribkz), 0,
                          MVT::v2f64, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86ReducesSAE:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3), immAllZerosV:{ *:[v2f64] }) - Complexity = 13
                      // Dst: (VREDUCESDZrribkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3)
/*131082*/          /*SwitchType*/ 12, MVT::v4f32,// ->131096
/*131084*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*131086*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCESSZrribkz), 0,
                          MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86ReducesSAE:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3), immAllZerosV:{ *:[v4f32] }) - Complexity = 13
                      // Dst: (VREDUCESSZrribkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3)
/*131096*/          0, // EndSwitchType
/*131097*/        /*Scope*/ 33, /*->131131*/
/*131098*/          OPC_RecordChild2, // #4 = $src0
/*131099*/          OPC_SwitchType /*2 cases */, 13, MVT::v2f64,// ->131115
/*131102*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*131104*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCESDZrribk), 0,
                          MVT::v2f64, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86ReducesSAE:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3), VR128X:{ *:[v2f64] }:$src0) - Complexity = 9
                      // Dst: (VREDUCESDZrribk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3)
/*131115*/          /*SwitchType*/ 13, MVT::v4f32,// ->131130
/*131117*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*131119*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCESSZrribk), 0,
                          MVT::v4f32, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86ReducesSAE:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3), VR128X:{ *:[v4f32] }:$src0) - Complexity = 9
                      // Dst: (VREDUCESSZrribk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3)
/*131130*/          0, // EndSwitchType
/*131131*/        0, /*End of Scope*/
/*131132*/      /*SwitchOpcode*/ 79, TARGET_VAL(X86ISD::VGETMANTS_SAE),// ->131214
/*131135*/        OPC_RecordChild0, // #1 = $src1
/*131136*/        OPC_RecordChild1, // #2 = $src2
/*131137*/        OPC_RecordChild2, // #3 = $src3
/*131138*/        OPC_MoveChild2,
/*131139*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*131142*/        OPC_MoveParent,
/*131143*/        OPC_MoveParent,
/*131144*/        OPC_Scope, 33, /*->131179*/ // 2 children in Scope
/*131146*/          OPC_MoveChild2,
/*131147*/          OPC_CheckImmAllZerosV,
/*131148*/          OPC_MoveParent,
/*131149*/          OPC_SwitchType /*2 cases */, 12, MVT::v2f64,// ->131164
/*131152*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*131154*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTSDZrribkz), 0,
                          MVT::v2f64, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86GetMantsSAE:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3), immAllZerosV:{ *:[v2f64] }) - Complexity = 13
                      // Dst: (VGETMANTSDZrribkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3)
/*131164*/          /*SwitchType*/ 12, MVT::v4f32,// ->131178
/*131166*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*131168*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTSSZrribkz), 0,
                          MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86GetMantsSAE:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3), immAllZerosV:{ *:[v4f32] }) - Complexity = 13
                      // Dst: (VGETMANTSSZrribkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3)
/*131178*/          0, // EndSwitchType
/*131179*/        /*Scope*/ 33, /*->131213*/
/*131180*/          OPC_RecordChild2, // #4 = $src0
/*131181*/          OPC_SwitchType /*2 cases */, 13, MVT::v2f64,// ->131197
/*131184*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*131186*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTSDZrribk), 0,
                          MVT::v2f64, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86GetMantsSAE:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3), VR128X:{ *:[v2f64] }:$src0) - Complexity = 9
                      // Dst: (VGETMANTSDZrribk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3)
/*131197*/          /*SwitchType*/ 13, MVT::v4f32,// ->131212
/*131199*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*131201*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTSSZrribk), 0,
                          MVT::v4f32, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86GetMantsSAE:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3), VR128X:{ *:[v4f32] }:$src0) - Complexity = 9
                      // Dst: (VGETMANTSSZrribk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3)
/*131212*/          0, // EndSwitchType
/*131213*/        0, /*End of Scope*/
/*131214*/      /*SwitchOpcode*/ 83, TARGET_VAL(X86ISD::VFIXUPIMMS_SAE),// ->131300
/*131217*/        OPC_RecordChild0, // #1 = $src1
/*131218*/        OPC_RecordChild1, // #2 = $src2
/*131219*/        OPC_RecordChild2, // #3 = $src3
/*131220*/        OPC_RecordChild3, // #4 = $src4
/*131221*/        OPC_MoveChild3,
/*131222*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*131225*/        OPC_MoveParent,
/*131226*/        OPC_MoveParent,
/*131227*/        OPC_Scope, 35, /*->131264*/ // 2 children in Scope
/*131229*/          OPC_MoveChild2,
/*131230*/          OPC_CheckImmAllZerosV,
/*131231*/          OPC_MoveParent,
/*131232*/          OPC_SwitchType /*2 cases */, 13, MVT::v4f32,// ->131248
/*131235*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*131237*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMSSZrribkz), 0,
                          MVT::v4f32, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86VFixupimmSAEs:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4i32] }:$src3, (timm:{ *:[i32] }):$src4), immAllZerosV:{ *:[v4f32] }) - Complexity = 13
                      // Dst: (VFIXUPIMMSSZrribkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4i32] }:$src3, (timm:{ *:[i32] }):$src4)
/*131248*/          /*SwitchType*/ 13, MVT::v2f64,// ->131263
/*131250*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*131252*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMSDZrribkz), 0,
                          MVT::v2f64, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86VFixupimmSAEs:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2i64] }:$src3, (timm:{ *:[i32] }):$src4), immAllZerosV:{ *:[v2f64] }) - Complexity = 13
                      // Dst: (VFIXUPIMMSDZrribkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2i64] }:$src3, (timm:{ *:[i32] }):$src4)
/*131263*/          0, // EndSwitchType
/*131264*/        /*Scope*/ 34, /*->131299*/
/*131265*/          OPC_CheckChild2Same, 1,
/*131267*/          OPC_SwitchType /*2 cases */, 13, MVT::v4f32,// ->131283
/*131270*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*131272*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMSSZrribk), 0,
                          MVT::v4f32, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86VFixupimmSAEs:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4i32] }:$src3, (timm:{ *:[i32] }):$src4), VR128X:{ *:[v4f32] }:$src1) - Complexity = 9
                      // Dst: (VFIXUPIMMSSZrribk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4i32] }:$src3, (timm:{ *:[i32] }):$src4)
/*131283*/          /*SwitchType*/ 13, MVT::v2f64,// ->131298
/*131285*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*131287*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMSDZrribk), 0,
                          MVT::v2f64, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86VFixupimmSAEs:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2i64] }:$src3, (timm:{ *:[i32] }):$src4), VR128X:{ *:[v2f64] }:$src1) - Complexity = 9
                      // Dst: (VFIXUPIMMSDZrribk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2i64] }:$src3, (timm:{ *:[i32] }):$src4)
/*131298*/          0, // EndSwitchType
/*131299*/        0, /*End of Scope*/
/*131300*/      /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::MOVSS),// ->131337
/*131303*/        OPC_RecordChild0, // #1 = $src1
/*131304*/        OPC_RecordChild1, // #2 = $src2
/*131305*/        OPC_MoveParent,
/*131306*/        OPC_Scope, 14, /*->131322*/ // 2 children in Scope
/*131308*/          OPC_MoveChild2,
/*131309*/          OPC_CheckImmAllZerosV,
/*131310*/          OPC_MoveParent,
/*131311*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*131313*/          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), immAllZerosV:{ *:[v4f32] }) - Complexity = 10
                    // Dst: (VMOVSSZrrkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*131322*/        /*Scope*/ 13, /*->131336*/
/*131323*/          OPC_RecordChild2, // #3 = $src0
/*131324*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*131326*/          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)
/*131336*/        0, /*End of Scope*/
/*131337*/      /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::MOVSD),// ->131374
/*131340*/        OPC_RecordChild0, // #1 = $src1
/*131341*/        OPC_RecordChild1, // #2 = $src2
/*131342*/        OPC_MoveParent,
/*131343*/        OPC_Scope, 14, /*->131359*/ // 2 children in Scope
/*131345*/          OPC_MoveChild2,
/*131346*/          OPC_CheckImmAllZerosV,
/*131347*/          OPC_MoveParent,
/*131348*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*131350*/          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), immAllZerosV:{ *:[v2f64] }) - Complexity = 10
                    // Dst: (VMOVSDZrrkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*131359*/        /*Scope*/ 13, /*->131373*/
/*131360*/          OPC_RecordChild2, // #3 = $src0
/*131361*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*131363*/          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)
/*131373*/        0, /*End of Scope*/
/*131374*/      /*SwitchOpcode*/ 69, TARGET_VAL(X86ISD::FMINS_SAE),// ->131446
/*131377*/        OPC_RecordChild0, // #1 = $src1
/*131378*/        OPC_RecordChild1, // #2 = $src2
/*131379*/        OPC_MoveParent,
/*131380*/        OPC_Scope, 31, /*->131413*/ // 2 children in Scope
/*131382*/          OPC_MoveChild2,
/*131383*/          OPC_CheckImmAllZerosV,
/*131384*/          OPC_MoveParent,
/*131385*/          OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->131399
/*131388*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*131390*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMINSSZrrb_Intkz), 0,
                          MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fminSAEs:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), immAllZerosV:{ *:[v4f32] }) - Complexity = 10
                      // Dst: (VMINSSZrrb_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*131399*/          /*SwitchType*/ 11, MVT::v2f64,// ->131412
/*131401*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*131403*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMINSDZrrb_Intkz), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fminSAEs:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), immAllZerosV:{ *:[v2f64] }) - Complexity = 10
                      // Dst: (VMINSDZrrb_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*131412*/          0, // EndSwitchType
/*131413*/        /*Scope*/ 31, /*->131445*/
/*131414*/          OPC_RecordChild2, // #3 = $src0
/*131415*/          OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->131430
/*131418*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*131420*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMINSSZrrb_Intk), 0,
                          MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fminSAEs:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src0) - Complexity = 6
                      // Dst: (VMINSSZrrb_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*131430*/          /*SwitchType*/ 12, MVT::v2f64,// ->131444
/*131432*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*131434*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMINSDZrrb_Intk), 0,
                          MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fminSAEs:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src0) - Complexity = 6
                      // Dst: (VMINSDZrrb_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*131444*/          0, // EndSwitchType
/*131445*/        0, /*End of Scope*/
/*131446*/      /*SwitchOpcode*/ 69, TARGET_VAL(X86ISD::FMAXS_SAE),// ->131518
/*131449*/        OPC_RecordChild0, // #1 = $src1
/*131450*/        OPC_RecordChild1, // #2 = $src2
/*131451*/        OPC_MoveParent,
/*131452*/        OPC_Scope, 31, /*->131485*/ // 2 children in Scope
/*131454*/          OPC_MoveChild2,
/*131455*/          OPC_CheckImmAllZerosV,
/*131456*/          OPC_MoveParent,
/*131457*/          OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->131471
/*131460*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*131462*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXSSZrrb_Intkz), 0,
                          MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fmaxSAEs:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), immAllZerosV:{ *:[v4f32] }) - Complexity = 10
                      // Dst: (VMAXSSZrrb_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*131471*/          /*SwitchType*/ 11, MVT::v2f64,// ->131484
/*131473*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*131475*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXSDZrrb_Intkz), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fmaxSAEs:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), immAllZerosV:{ *:[v2f64] }) - Complexity = 10
                      // Dst: (VMAXSDZrrb_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*131484*/          0, // EndSwitchType
/*131485*/        /*Scope*/ 31, /*->131517*/
/*131486*/          OPC_RecordChild2, // #3 = $src0
/*131487*/          OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->131502
/*131490*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*131492*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXSSZrrb_Intk), 0,
                          MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fmaxSAEs:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src0) - Complexity = 6
                      // Dst: (VMAXSSZrrb_Intk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*131502*/          /*SwitchType*/ 12, MVT::v2f64,// ->131516
/*131504*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*131506*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXSDZrrb_Intk), 0,
                          MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fmaxSAEs:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src0) - Complexity = 6
                      // Dst: (VMAXSDZrrb_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*131516*/          0, // EndSwitchType
/*131517*/        0, /*End of Scope*/
/*131518*/      /*SwitchOpcode*/ 38, TARGET_VAL(X86ISD::VFPEXTS_SAE),// ->131559
/*131521*/        OPC_RecordChild0, // #1 = $src1
/*131522*/        OPC_RecordChild1, // #2 = $src2
/*131523*/        OPC_MoveParent,
/*131524*/        OPC_Scope, 16, /*->131542*/ // 2 children in Scope
/*131526*/          OPC_MoveChild2,
/*131527*/          OPC_CheckImmAllZerosV,
/*131528*/          OPC_MoveParent,
/*131529*/          OPC_CheckType, MVT::v2f64,
/*131531*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*131533*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSS2SDZrrb_Intkz), 0,
                        MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fpextsSAE:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v4f32] }:$src2), immAllZerosV:{ *:[v2f64] }) - Complexity = 10
                    // Dst: (VCVTSS2SDZrrb_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*131542*/        /*Scope*/ 15, /*->131558*/
/*131543*/          OPC_RecordChild2, // #3 = $src0
/*131544*/          OPC_CheckType, MVT::v2f64,
/*131546*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*131548*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSS2SDZrrb_Intk), 0,
                        MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                    // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fpextsSAE:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v2f64] }:$src0) - Complexity = 6
                    // Dst: (VCVTSS2SDZrrb_Intk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*131558*/        0, /*End of Scope*/
/*131559*/      /*SwitchOpcode*/ 69, TARGET_VAL(X86ISD::RCP28S_SAE),// ->131631
/*131562*/        OPC_RecordChild0, // #1 = $src1
/*131563*/        OPC_RecordChild1, // #2 = $src2
/*131564*/        OPC_MoveParent,
/*131565*/        OPC_Scope, 31, /*->131598*/ // 2 children in Scope
/*131567*/          OPC_MoveChild2,
/*131568*/          OPC_CheckImmAllZerosV,
/*131569*/          OPC_MoveParent,
/*131570*/          OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->131584
/*131573*/            OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*131575*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP28SSZrbkz), 0,
                          MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86rcp28SAEs:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), immAllZerosV:{ *:[v4f32] }) - Complexity = 10
                      // Dst: (VRCP28SSZrbkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*131584*/          /*SwitchType*/ 11, MVT::v2f64,// ->131597
/*131586*/            OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*131588*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP28SDZrbkz), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86rcp28SAEs:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), immAllZerosV:{ *:[v2f64] }) - Complexity = 10
                      // Dst: (VRCP28SDZrbkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*131597*/          0, // EndSwitchType
/*131598*/        /*Scope*/ 31, /*->131630*/
/*131599*/          OPC_RecordChild2, // #3 = $src0
/*131600*/          OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->131615
/*131603*/            OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*131605*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP28SSZrbk), 0,
                          MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86rcp28SAEs:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src0) - Complexity = 6
                      // Dst: (VRCP28SSZrbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*131615*/          /*SwitchType*/ 12, MVT::v2f64,// ->131629
/*131617*/            OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*131619*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP28SDZrbk), 0,
                          MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86rcp28SAEs:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src0) - Complexity = 6
                      // Dst: (VRCP28SDZrbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*131629*/          0, // EndSwitchType
/*131630*/        0, /*End of Scope*/
/*131631*/      /*SwitchOpcode*/ 69, TARGET_VAL(X86ISD::RSQRT28S_SAE),// ->131703
/*131634*/        OPC_RecordChild0, // #1 = $src1
/*131635*/        OPC_RecordChild1, // #2 = $src2
/*131636*/        OPC_MoveParent,
/*131637*/        OPC_Scope, 31, /*->131670*/ // 2 children in Scope
/*131639*/          OPC_MoveChild2,
/*131640*/          OPC_CheckImmAllZerosV,
/*131641*/          OPC_MoveParent,
/*131642*/          OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->131656
/*131645*/            OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*131647*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT28SSZrbkz), 0,
                          MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86rsqrt28SAEs:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), immAllZerosV:{ *:[v4f32] }) - Complexity = 10
                      // Dst: (VRSQRT28SSZrbkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*131656*/          /*SwitchType*/ 11, MVT::v2f64,// ->131669
/*131658*/            OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*131660*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT28SDZrbkz), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86rsqrt28SAEs:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), immAllZerosV:{ *:[v2f64] }) - Complexity = 10
                      // Dst: (VRSQRT28SDZrbkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*131669*/          0, // EndSwitchType
/*131670*/        /*Scope*/ 31, /*->131702*/
/*131671*/          OPC_RecordChild2, // #3 = $src0
/*131672*/          OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->131687
/*131675*/            OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*131677*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT28SSZrbk), 0,
                          MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86rsqrt28SAEs:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src0) - Complexity = 6
                      // Dst: (VRSQRT28SSZrbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*131687*/          /*SwitchType*/ 12, MVT::v2f64,// ->131701
/*131689*/            OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*131691*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT28SDZrbk), 0,
                          MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86rsqrt28SAEs:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src0) - Complexity = 6
                      // Dst: (VRSQRT28SDZrbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*131701*/          0, // EndSwitchType
/*131702*/        0, /*End of Scope*/
/*131703*/      /*SwitchOpcode*/ 69, TARGET_VAL(X86ISD::FGETEXPS_SAE),// ->131775
/*131706*/        OPC_RecordChild0, // #1 = $src1
/*131707*/        OPC_RecordChild1, // #2 = $src2
/*131708*/        OPC_MoveParent,
/*131709*/        OPC_Scope, 31, /*->131742*/ // 2 children in Scope
/*131711*/          OPC_MoveChild2,
/*131712*/          OPC_CheckImmAllZerosV,
/*131713*/          OPC_MoveParent,
/*131714*/          OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->131728
/*131717*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*131719*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPSSZrbkz), 0,
                          MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fgetexpSAEs:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), immAllZerosV:{ *:[v4f32] }) - Complexity = 10
                      // Dst: (VGETEXPSSZrbkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*131728*/          /*SwitchType*/ 11, MVT::v2f64,// ->131741
/*131730*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*131732*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPSDZrbkz), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fgetexpSAEs:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), immAllZerosV:{ *:[v2f64] }) - Complexity = 10
                      // Dst: (VGETEXPSDZrbkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*131741*/          0, // EndSwitchType
/*131742*/        /*Scope*/ 31, /*->131774*/
/*131743*/          OPC_RecordChild2, // #3 = $src0
/*131744*/          OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->131759
/*131747*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*131749*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPSSZrbk), 0,
                          MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, (X86fgetexpSAEs:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src0) - Complexity = 6
                      // Dst: (VGETEXPSSZrbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*131759*/          /*SwitchType*/ 12, MVT::v2f64,// ->131773
/*131761*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*131763*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPSDZrbk), 0,
                          MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (X86selects:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, (X86fgetexpSAEs:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src0) - Complexity = 6
                      // Dst: (VGETEXPSDZrbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK1WM:{ *:[v1i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*131773*/          0, // EndSwitchType
/*131774*/        0, /*End of Scope*/
/*131775*/      0, // EndSwitchOpcode
/*131776*/    0, /*End of Scope*/
/*131777*/  /*SwitchOpcode*/ 89|128,7/*985*/, TARGET_VAL(X86ISD::STRICT_VRNDSCALE),// ->132766
/*131781*/    OPC_RecordNode, // #0 = 'X86strict_VRndScale' chained node
/*131782*/    OPC_Scope, 61|128,1/*189*/, /*->131974*/ // 4 children in Scope
/*131785*/      OPC_MoveChild1,
/*131786*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*131789*/      OPC_RecordMemRef,
/*131790*/      OPC_RecordNode, // #1 = 'ld' chained node
/*131791*/      OPC_CheckFoldableChainNode,
/*131792*/      OPC_RecordChild1, // #2 = $src1
/*131793*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*131795*/      OPC_CheckPredicate, 9, // Predicate_load
/*131797*/      OPC_MoveParent,
/*131798*/      OPC_RecordChild2, // #3 = $src2
/*131799*/      OPC_MoveChild2,
/*131800*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*131803*/      OPC_MoveParent,
/*131804*/      OPC_SwitchType /*2 cases */, 82, MVT::f32,// ->131889
/*131807*/        OPC_Scope, 21, /*->131830*/ // 3 children in Scope
/*131809*/          OPC_CheckPatternPredicate, 172, // (shouldOptForSize(MF)) && (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*131811*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*131814*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*131818*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDSSm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86strict_VRndScale:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                    // Dst: (ROUNDSSm:{ *:[f32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*131830*/        /*Scope*/ 28, /*->131859*/
/*131831*/          OPC_CheckPatternPredicate, 125, // (shouldOptForSize(MF)) && (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*131833*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*131836*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*131840*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f32, 0/*#Ops*/,  // Results = #9
/*131846*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDSSm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 7/*#Ops*/, 9, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86strict_VRndScale:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                    // Dst: (VROUNDSSm:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*131859*/        /*Scope*/ 28, /*->131888*/
/*131860*/          OPC_CheckPatternPredicate, 129, // (Subtarget->hasAVX512()) && (shouldOptForSize(MF))
/*131862*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*131865*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*131869*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f32, 0/*#Ops*/,  // Results = #9
/*131875*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESSZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 7/*#Ops*/, 9, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86strict_VRndScale:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                    // Dst: (VRNDSCALESSZm:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*131888*/        0, /*End of Scope*/
/*131889*/      /*SwitchType*/ 82, MVT::f64,// ->131973
/*131891*/        OPC_Scope, 21, /*->131914*/ // 3 children in Scope
/*131893*/          OPC_CheckPatternPredicate, 172, // (shouldOptForSize(MF)) && (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*131895*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*131898*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*131902*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDSDm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86strict_VRndScale:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                    // Dst: (ROUNDSDm:{ *:[f64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*131914*/        /*Scope*/ 28, /*->131943*/
/*131915*/          OPC_CheckPatternPredicate, 125, // (shouldOptForSize(MF)) && (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*131917*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*131920*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*131924*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #9
/*131930*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDSDm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 7/*#Ops*/, 9, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86strict_VRndScale:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                    // Dst: (VROUNDSDm:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*131943*/        /*Scope*/ 28, /*->131972*/
/*131944*/          OPC_CheckPatternPredicate, 129, // (Subtarget->hasAVX512()) && (shouldOptForSize(MF))
/*131946*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*131949*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*131953*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #9
/*131959*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESDZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 7/*#Ops*/, 9, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86strict_VRndScale:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                    // Dst: (VRNDSCALESDZm:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*131972*/        0, /*End of Scope*/
/*131973*/      0, // EndSwitchType
/*131974*/    /*Scope*/ 117, /*->132092*/
/*131975*/      OPC_RecordChild1, // #1 = $src1
/*131976*/      OPC_RecordChild2, // #2 = $src2
/*131977*/      OPC_MoveChild2,
/*131978*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*131981*/      OPC_MoveParent,
/*131982*/      OPC_SwitchType /*2 cases */, 52, MVT::f32,// ->132037
/*131985*/        OPC_Scope, 11, /*->131998*/ // 3 children in Scope
/*131987*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*131989*/          OPC_EmitMergeInputChains1_0,
/*131990*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDSSr), 0|OPFL_Chain,
                        MVT::f32, 2/*#Ops*/, 1, 2, 
                    // Src: (X86strict_VRndScale:{ *:[f32] } FR32:{ *:[f32] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 6
                    // Dst: (ROUNDSSr:{ *:[f32] } FR32:{ *:[f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*131998*/        /*Scope*/ 18, /*->132017*/
/*131999*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*132001*/          OPC_EmitMergeInputChains1_0,
/*132002*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f32, 0/*#Ops*/,  // Results = #3
/*132008*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDSSr), 0|OPFL_Chain,
                        MVT::f32, 3/*#Ops*/, 3, 1, 2, 
                    // Src: (X86strict_VRndScale:{ *:[f32] } FR32:{ *:[f32] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 6
                    // Dst: (VROUNDSSr:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), FR32:{ *:[f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*132017*/        /*Scope*/ 18, /*->132036*/
/*132018*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*132020*/          OPC_EmitMergeInputChains1_0,
/*132021*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f32, 0/*#Ops*/,  // Results = #3
/*132027*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESSZr), 0|OPFL_Chain,
                        MVT::f32, 3/*#Ops*/, 3, 1, 2, 
                    // Src: (X86strict_VRndScale:{ *:[f32] } FR32X:{ *:[f32] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 6
                    // Dst: (VRNDSCALESSZr:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), FR32X:{ *:[f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*132036*/        0, /*End of Scope*/
/*132037*/      /*SwitchType*/ 52, MVT::f64,// ->132091
/*132039*/        OPC_Scope, 11, /*->132052*/ // 3 children in Scope
/*132041*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*132043*/          OPC_EmitMergeInputChains1_0,
/*132044*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDSDr), 0|OPFL_Chain,
                        MVT::f64, 2/*#Ops*/, 1, 2, 
                    // Src: (X86strict_VRndScale:{ *:[f64] } FR64:{ *:[f64] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 6
                    // Dst: (ROUNDSDr:{ *:[f64] } FR64:{ *:[f64] }:$src1, (timm:{ *:[i32] }):$src2)
/*132052*/        /*Scope*/ 18, /*->132071*/
/*132053*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*132055*/          OPC_EmitMergeInputChains1_0,
/*132056*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #3
/*132062*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDSDr), 0|OPFL_Chain,
                        MVT::f64, 3/*#Ops*/, 3, 1, 2, 
                    // Src: (X86strict_VRndScale:{ *:[f64] } FR64:{ *:[f64] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 6
                    // Dst: (VROUNDSDr:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), FR64:{ *:[f64] }:$src1, (timm:{ *:[i32] }):$src2)
/*132071*/        /*Scope*/ 18, /*->132090*/
/*132072*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*132074*/          OPC_EmitMergeInputChains1_0,
/*132075*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #3
/*132081*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESDZr), 0|OPFL_Chain,
                        MVT::f64, 3/*#Ops*/, 3, 1, 2, 
                    // Src: (X86strict_VRndScale:{ *:[f64] } FR64X:{ *:[f64] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 6
                    // Dst: (VRNDSCALESDZr:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), FR64X:{ *:[f64] }:$src1, (timm:{ *:[i32] }):$src2)
/*132090*/        0, /*End of Scope*/
/*132091*/      0, // EndSwitchType
/*132092*/    /*Scope*/ 114|128,3/*498*/, /*->132592*/
/*132094*/      OPC_MoveChild1,
/*132095*/      OPC_SwitchOpcode /*2 cases */, 63|128,2/*319*/, TARGET_VAL(ISD::LOAD),// ->132419
/*132100*/        OPC_RecordMemRef,
/*132101*/        OPC_RecordNode, // #1 = 'ld' chained node
/*132102*/        OPC_CheckFoldableChainNode,
/*132103*/        OPC_RecordChild1, // #2 = $src1
/*132104*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*132106*/        OPC_CheckPredicate, 9, // Predicate_load
/*132108*/        OPC_Scope, 101, /*->132211*/ // 3 children in Scope
/*132110*/          OPC_MoveParent,
/*132111*/          OPC_RecordChild2, // #3 = $src2
/*132112*/          OPC_MoveChild2,
/*132113*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*132116*/          OPC_MoveParent,
/*132117*/          OPC_SwitchType /*4 cases */, 21, MVT::v4f32,// ->132141
/*132120*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*132122*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*132125*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*132129*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDPSm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86strict_VRndScale:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                      // Dst: (VROUNDPSm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*132141*/          /*SwitchType*/ 21, MVT::v8f32,// ->132164
/*132143*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*132145*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*132148*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*132152*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDPSYm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86strict_VRndScale:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                      // Dst: (VROUNDPSYm:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*132164*/          /*SwitchType*/ 21, MVT::v2f64,// ->132187
/*132166*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*132168*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*132171*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*132175*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDPDm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86strict_VRndScale:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                      // Dst: (VROUNDPDm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*132187*/          /*SwitchType*/ 21, MVT::v4f64,// ->132210
/*132189*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*132191*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*132194*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*132198*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDPDYm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86strict_VRndScale:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                      // Dst: (VROUNDPDYm:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*132210*/          0, // EndSwitchType
/*132211*/        /*Scope*/ 57, /*->132269*/
/*132212*/          OPC_CheckPredicate, 39, // Predicate_memop
/*132214*/          OPC_MoveParent,
/*132215*/          OPC_RecordChild2, // #3 = $src2
/*132216*/          OPC_MoveChild2,
/*132217*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*132220*/          OPC_MoveParent,
/*132221*/          OPC_SwitchType /*2 cases */, 21, MVT::v4f32,// ->132245
/*132224*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*132226*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*132229*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*132233*/            OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDPSm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86strict_VRndScale:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                      // Dst: (ROUNDPSm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*132245*/          /*SwitchType*/ 21, MVT::v2f64,// ->132268
/*132247*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*132249*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*132252*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*132256*/            OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDPDm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86strict_VRndScale:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                      // Dst: (ROUNDPDm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*132268*/          0, // EndSwitchType
/*132269*/        /*Scope*/ 19|128,1/*147*/, /*->132418*/
/*132271*/          OPC_MoveParent,
/*132272*/          OPC_RecordChild2, // #3 = $src2
/*132273*/          OPC_MoveChild2,
/*132274*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*132277*/          OPC_MoveParent,
/*132278*/          OPC_SwitchType /*6 cases */, 21, MVT::v16f32,// ->132302
/*132281*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*132283*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*132286*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*132290*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86strict_VRndScale:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                      // Dst: (VRNDSCALEPSZrmi:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*132302*/          /*SwitchType*/ 21, MVT::v4f32,// ->132325
/*132304*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*132306*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*132309*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*132313*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86strict_VRndScale:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                      // Dst: (VRNDSCALEPSZ128rmi:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*132325*/          /*SwitchType*/ 21, MVT::v8f32,// ->132348
/*132327*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*132329*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*132332*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*132336*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86strict_VRndScale:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                      // Dst: (VRNDSCALEPSZ256rmi:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*132348*/          /*SwitchType*/ 21, MVT::v8f64,// ->132371
/*132350*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*132352*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*132355*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*132359*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86strict_VRndScale:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                      // Dst: (VRNDSCALEPDZrmi:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*132371*/          /*SwitchType*/ 21, MVT::v2f64,// ->132394
/*132373*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*132375*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*132378*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*132382*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86strict_VRndScale:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                      // Dst: (VRNDSCALEPDZ128rmi:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*132394*/          /*SwitchType*/ 21, MVT::v4f64,// ->132417
/*132396*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*132398*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*132401*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*132405*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86strict_VRndScale:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                      // Dst: (VRNDSCALEPDZ256rmi:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*132417*/          0, // EndSwitchType
/*132418*/        0, /*End of Scope*/
/*132419*/      /*SwitchOpcode*/ 40|128,1/*168*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->132591
/*132423*/        OPC_RecordMemRef,
/*132424*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*132425*/        OPC_CheckFoldableChainNode,
/*132426*/        OPC_RecordChild1, // #2 = $src1
/*132427*/        OPC_Scope, 80, /*->132509*/ // 2 children in Scope
/*132429*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*132431*/          OPC_MoveParent,
/*132432*/          OPC_RecordChild2, // #3 = $src2
/*132433*/          OPC_MoveChild2,
/*132434*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*132437*/          OPC_MoveParent,
/*132438*/          OPC_SwitchType /*3 cases */, 21, MVT::v16f32,// ->132462
/*132441*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*132443*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*132446*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*132450*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86strict_VRndScale:{ *:[v16f32] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                      // Dst: (VRNDSCALEPSZrmbi:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*132462*/          /*SwitchType*/ 21, MVT::v4f32,// ->132485
/*132464*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*132466*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*132469*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*132473*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86strict_VRndScale:{ *:[v4f32] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                      // Dst: (VRNDSCALEPSZ128rmbi:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*132485*/          /*SwitchType*/ 21, MVT::v8f32,// ->132508
/*132487*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*132489*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*132492*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*132496*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86strict_VRndScale:{ *:[v8f32] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                      // Dst: (VRNDSCALEPSZ256rmbi:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*132508*/          0, // EndSwitchType
/*132509*/        /*Scope*/ 80, /*->132590*/
/*132510*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*132512*/          OPC_MoveParent,
/*132513*/          OPC_RecordChild2, // #3 = $src2
/*132514*/          OPC_MoveChild2,
/*132515*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*132518*/          OPC_MoveParent,
/*132519*/          OPC_SwitchType /*3 cases */, 21, MVT::v8f64,// ->132543
/*132522*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*132524*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*132527*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*132531*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86strict_VRndScale:{ *:[v8f64] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                      // Dst: (VRNDSCALEPDZrmbi:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*132543*/          /*SwitchType*/ 21, MVT::v2f64,// ->132566
/*132545*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*132547*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*132550*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*132554*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86strict_VRndScale:{ *:[v2f64] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                      // Dst: (VRNDSCALEPDZ128rmbi:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*132566*/          /*SwitchType*/ 21, MVT::v4f64,// ->132589
/*132568*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*132570*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*132573*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*132577*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86strict_VRndScale:{ *:[v4f64] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                      // Dst: (VRNDSCALEPDZ256rmbi:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*132589*/          0, // EndSwitchType
/*132590*/        0, /*End of Scope*/
/*132591*/      0, // EndSwitchOpcode
/*132592*/    /*Scope*/ 43|128,1/*171*/, /*->132765*/
/*132594*/      OPC_RecordChild1, // #1 = $src1
/*132595*/      OPC_RecordChild2, // #2 = $src2
/*132596*/      OPC_MoveChild2,
/*132597*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*132600*/      OPC_MoveParent,
/*132601*/      OPC_SwitchType /*6 cases */, 38, MVT::v4f32,// ->132642
/*132604*/        OPC_Scope, 11, /*->132617*/ // 3 children in Scope
/*132606*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*132608*/          OPC_EmitMergeInputChains1_0,
/*132609*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDPSr), 0|OPFL_Chain,
                        MVT::v4f32, 2/*#Ops*/, 1, 2, 
                    // Src: (X86strict_VRndScale:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 6
                    // Dst: (VROUNDPSr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*132617*/        /*Scope*/ 11, /*->132629*/
/*132618*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*132620*/          OPC_EmitMergeInputChains1_0,
/*132621*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDPSr), 0|OPFL_Chain,
                        MVT::v4f32, 2/*#Ops*/, 1, 2, 
                    // Src: (X86strict_VRndScale:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 6
                    // Dst: (ROUNDPSr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*132629*/        /*Scope*/ 11, /*->132641*/
/*132630*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*132632*/          OPC_EmitMergeInputChains1_0,
/*132633*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rri), 0|OPFL_Chain,
                        MVT::v4f32, 2/*#Ops*/, 1, 2, 
                    // Src: (X86strict_VRndScale:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 6
                    // Dst: (VRNDSCALEPSZ128rri:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*132641*/        0, /*End of Scope*/
/*132642*/      /*SwitchType*/ 26, MVT::v8f32,// ->132670
/*132644*/        OPC_Scope, 11, /*->132657*/ // 2 children in Scope
/*132646*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*132648*/          OPC_EmitMergeInputChains1_0,
/*132649*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDPSYr), 0|OPFL_Chain,
                        MVT::v8f32, 2/*#Ops*/, 1, 2, 
                    // Src: (X86strict_VRndScale:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 6
                    // Dst: (VROUNDPSYr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*132657*/        /*Scope*/ 11, /*->132669*/
/*132658*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*132660*/          OPC_EmitMergeInputChains1_0,
/*132661*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rri), 0|OPFL_Chain,
                        MVT::v8f32, 2/*#Ops*/, 1, 2, 
                    // Src: (X86strict_VRndScale:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 6
                    // Dst: (VRNDSCALEPSZ256rri:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*132669*/        0, /*End of Scope*/
/*132670*/      /*SwitchType*/ 38, MVT::v2f64,// ->132710
/*132672*/        OPC_Scope, 11, /*->132685*/ // 3 children in Scope
/*132674*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*132676*/          OPC_EmitMergeInputChains1_0,
/*132677*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDPDr), 0|OPFL_Chain,
                        MVT::v2f64, 2/*#Ops*/, 1, 2, 
                    // Src: (X86strict_VRndScale:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 6
                    // Dst: (VROUNDPDr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (timm:{ *:[i32] }):$src2)
/*132685*/        /*Scope*/ 11, /*->132697*/
/*132686*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*132688*/          OPC_EmitMergeInputChains1_0,
/*132689*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDPDr), 0|OPFL_Chain,
                        MVT::v2f64, 2/*#Ops*/, 1, 2, 
                    // Src: (X86strict_VRndScale:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 6
                    // Dst: (ROUNDPDr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (timm:{ *:[i32] }):$src2)
/*132697*/        /*Scope*/ 11, /*->132709*/
/*132698*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*132700*/          OPC_EmitMergeInputChains1_0,
/*132701*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rri), 0|OPFL_Chain,
                        MVT::v2f64, 2/*#Ops*/, 1, 2, 
                    // Src: (X86strict_VRndScale:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 6
                    // Dst: (VRNDSCALEPDZ128rri:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (timm:{ *:[i32] }):$src2)
/*132709*/        0, /*End of Scope*/
/*132710*/      /*SwitchType*/ 26, MVT::v4f64,// ->132738
/*132712*/        OPC_Scope, 11, /*->132725*/ // 2 children in Scope
/*132714*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*132716*/          OPC_EmitMergeInputChains1_0,
/*132717*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDPDYr), 0|OPFL_Chain,
                        MVT::v4f64, 2/*#Ops*/, 1, 2, 
                    // Src: (X86strict_VRndScale:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 6
                    // Dst: (VROUNDPDYr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, (timm:{ *:[i32] }):$src2)
/*132725*/        /*Scope*/ 11, /*->132737*/
/*132726*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*132728*/          OPC_EmitMergeInputChains1_0,
/*132729*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rri), 0|OPFL_Chain,
                        MVT::v4f64, 2/*#Ops*/, 1, 2, 
                    // Src: (X86strict_VRndScale:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 6
                    // Dst: (VRNDSCALEPDZ256rri:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (timm:{ *:[i32] }):$src2)
/*132737*/        0, /*End of Scope*/
/*132738*/      /*SwitchType*/ 11, MVT::v16f32,// ->132751
/*132740*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*132742*/        OPC_EmitMergeInputChains1_0,
/*132743*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrri), 0|OPFL_Chain,
                      MVT::v16f32, 2/*#Ops*/, 1, 2, 
                  // Src: (X86strict_VRndScale:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 6
                  // Dst: (VRNDSCALEPSZrri:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*132751*/      /*SwitchType*/ 11, MVT::v8f64,// ->132764
/*132753*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*132755*/        OPC_EmitMergeInputChains1_0,
/*132756*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrri), 0|OPFL_Chain,
                      MVT::v8f64, 2/*#Ops*/, 1, 2, 
                  // Src: (X86strict_VRndScale:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 6
                  // Dst: (VRNDSCALEPDZrri:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i32] }):$src2)
/*132764*/      0, // EndSwitchType
/*132765*/    0, /*End of Scope*/
/*132766*/  /*SwitchOpcode*/ 126|128,6/*894*/, TARGET_VAL(X86ISD::VRNDSCALE),// ->133664
/*132770*/    OPC_Scope, 43|128,1/*171*/, /*->132944*/ // 4 children in Scope
/*132773*/      OPC_MoveChild0,
/*132774*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*132777*/      OPC_RecordMemRef,
/*132778*/      OPC_RecordNode, // #0 = 'ld' chained node
/*132779*/      OPC_CheckFoldableChainNode,
/*132780*/      OPC_RecordChild1, // #1 = $src1
/*132781*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*132783*/      OPC_CheckPredicate, 9, // Predicate_load
/*132785*/      OPC_MoveParent,
/*132786*/      OPC_RecordChild1, // #2 = $src2
/*132787*/      OPC_MoveChild1,
/*132788*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*132791*/      OPC_MoveParent,
/*132792*/      OPC_SwitchType /*2 cases */, 73, MVT::f32,// ->132868
/*132795*/        OPC_Scope, 18, /*->132815*/ // 3 children in Scope
/*132797*/          OPC_CheckPatternPredicate, 172, // (shouldOptForSize(MF)) && (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*132799*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*132802*/          OPC_EmitMergeInputChains1_0,
/*132803*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDSSm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86VRndScale:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                    // Dst: (ROUNDSSm:{ *:[f32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*132815*/        /*Scope*/ 25, /*->132841*/
/*132816*/          OPC_CheckPatternPredicate, 125, // (shouldOptForSize(MF)) && (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*132818*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*132821*/          OPC_EmitMergeInputChains1_0,
/*132822*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f32, 0/*#Ops*/,  // Results = #8
/*132828*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDSSm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 7/*#Ops*/, 8, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86VRndScale:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                    // Dst: (VROUNDSSm:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*132841*/        /*Scope*/ 25, /*->132867*/
/*132842*/          OPC_CheckPatternPredicate, 129, // (Subtarget->hasAVX512()) && (shouldOptForSize(MF))
/*132844*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*132847*/          OPC_EmitMergeInputChains1_0,
/*132848*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f32, 0/*#Ops*/,  // Results = #8
/*132854*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESSZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 7/*#Ops*/, 8, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86VRndScale:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                    // Dst: (VRNDSCALESSZm:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*132867*/        0, /*End of Scope*/
/*132868*/      /*SwitchType*/ 73, MVT::f64,// ->132943
/*132870*/        OPC_Scope, 18, /*->132890*/ // 3 children in Scope
/*132872*/          OPC_CheckPatternPredicate, 172, // (shouldOptForSize(MF)) && (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*132874*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*132877*/          OPC_EmitMergeInputChains1_0,
/*132878*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDSDm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86VRndScale:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                    // Dst: (ROUNDSDm:{ *:[f64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*132890*/        /*Scope*/ 25, /*->132916*/
/*132891*/          OPC_CheckPatternPredicate, 125, // (shouldOptForSize(MF)) && (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*132893*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*132896*/          OPC_EmitMergeInputChains1_0,
/*132897*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #8
/*132903*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDSDm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 7/*#Ops*/, 8, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86VRndScale:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                    // Dst: (VROUNDSDm:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*132916*/        /*Scope*/ 25, /*->132942*/
/*132917*/          OPC_CheckPatternPredicate, 129, // (Subtarget->hasAVX512()) && (shouldOptForSize(MF))
/*132919*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*132922*/          OPC_EmitMergeInputChains1_0,
/*132923*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #8
/*132929*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESDZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 7/*#Ops*/, 8, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86VRndScale:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                    // Dst: (VRNDSCALESDZm:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*132942*/        0, /*End of Scope*/
/*132943*/      0, // EndSwitchType
/*132944*/    /*Scope*/ 111, /*->133056*/
/*132945*/      OPC_RecordChild0, // #0 = $src1
/*132946*/      OPC_RecordChild1, // #1 = $src2
/*132947*/      OPC_MoveChild1,
/*132948*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*132951*/      OPC_MoveParent,
/*132952*/      OPC_SwitchType /*2 cases */, 49, MVT::f32,// ->133004
/*132955*/        OPC_Scope, 10, /*->132967*/ // 3 children in Scope
/*132957*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*132959*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDSSr), 0,
                        MVT::f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86VRndScale:{ *:[f32] } FR32:{ *:[f32] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 6
                    // Dst: (ROUNDSSr:{ *:[f32] } FR32:{ *:[f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*132967*/        /*Scope*/ 17, /*->132985*/
/*132968*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*132970*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f32, 0/*#Ops*/,  // Results = #2
/*132976*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDSSr), 0,
                        MVT::f32, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (X86VRndScale:{ *:[f32] } FR32:{ *:[f32] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 6
                    // Dst: (VROUNDSSr:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), FR32:{ *:[f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*132985*/        /*Scope*/ 17, /*->133003*/
/*132986*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*132988*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f32, 0/*#Ops*/,  // Results = #2
/*132994*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESSZr), 0,
                        MVT::f32, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (X86VRndScale:{ *:[f32] } FR32X:{ *:[f32] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 6
                    // Dst: (VRNDSCALESSZr:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), FR32X:{ *:[f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*133003*/        0, /*End of Scope*/
/*133004*/      /*SwitchType*/ 49, MVT::f64,// ->133055
/*133006*/        OPC_Scope, 10, /*->133018*/ // 3 children in Scope
/*133008*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*133010*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDSDr), 0,
                        MVT::f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86VRndScale:{ *:[f64] } FR64:{ *:[f64] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 6
                    // Dst: (ROUNDSDr:{ *:[f64] } FR64:{ *:[f64] }:$src1, (timm:{ *:[i32] }):$src2)
/*133018*/        /*Scope*/ 17, /*->133036*/
/*133019*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*133021*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #2
/*133027*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDSDr), 0,
                        MVT::f64, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (X86VRndScale:{ *:[f64] } FR64:{ *:[f64] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 6
                    // Dst: (VROUNDSDr:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), FR64:{ *:[f64] }:$src1, (timm:{ *:[i32] }):$src2)
/*133036*/        /*Scope*/ 17, /*->133054*/
/*133037*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*133039*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #2
/*133045*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESDZr), 0,
                        MVT::f64, 3/*#Ops*/, 2, 0, 1, 
                    // Src: (X86VRndScale:{ *:[f64] } FR64X:{ *:[f64] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 6
                    // Dst: (VRNDSCALESDZr:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), FR64X:{ *:[f64] }:$src1, (timm:{ *:[i32] }):$src2)
/*133054*/        0, /*End of Scope*/
/*133055*/      0, // EndSwitchType
/*133056*/    /*Scope*/ 60|128,3/*444*/, /*->133502*/
/*133058*/      OPC_MoveChild0,
/*133059*/      OPC_SwitchOpcode /*2 cases */, 27|128,2/*283*/, TARGET_VAL(ISD::LOAD),// ->133347
/*133064*/        OPC_RecordMemRef,
/*133065*/        OPC_RecordNode, // #0 = 'ld' chained node
/*133066*/        OPC_CheckFoldableChainNode,
/*133067*/        OPC_RecordChild1, // #1 = $src1
/*133068*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*133070*/        OPC_CheckPredicate, 9, // Predicate_load
/*133072*/        OPC_Scope, 89, /*->133163*/ // 3 children in Scope
/*133074*/          OPC_MoveParent,
/*133075*/          OPC_RecordChild1, // #2 = $src2
/*133076*/          OPC_MoveChild1,
/*133077*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*133080*/          OPC_MoveParent,
/*133081*/          OPC_SwitchType /*4 cases */, 18, MVT::v4f32,// ->133102
/*133084*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*133086*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*133089*/            OPC_EmitMergeInputChains1_0,
/*133090*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDPSm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86VRndScale:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                      // Dst: (VROUNDPSm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*133102*/          /*SwitchType*/ 18, MVT::v8f32,// ->133122
/*133104*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*133106*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*133109*/            OPC_EmitMergeInputChains1_0,
/*133110*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDPSYm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86VRndScale:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                      // Dst: (VROUNDPSYm:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*133122*/          /*SwitchType*/ 18, MVT::v2f64,// ->133142
/*133124*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*133126*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*133129*/            OPC_EmitMergeInputChains1_0,
/*133130*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDPDm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86VRndScale:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                      // Dst: (VROUNDPDm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*133142*/          /*SwitchType*/ 18, MVT::v4f64,// ->133162
/*133144*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*133146*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*133149*/            OPC_EmitMergeInputChains1_0,
/*133150*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDPDYm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86VRndScale:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                      // Dst: (VROUNDPDYm:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*133162*/          0, // EndSwitchType
/*133163*/        /*Scope*/ 51, /*->133215*/
/*133164*/          OPC_CheckPredicate, 39, // Predicate_memop
/*133166*/          OPC_MoveParent,
/*133167*/          OPC_RecordChild1, // #2 = $src2
/*133168*/          OPC_MoveChild1,
/*133169*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*133172*/          OPC_MoveParent,
/*133173*/          OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->133194
/*133176*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*133178*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*133181*/            OPC_EmitMergeInputChains1_0,
/*133182*/            OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDPSm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86VRndScale:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                      // Dst: (ROUNDPSm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*133194*/          /*SwitchType*/ 18, MVT::v2f64,// ->133214
/*133196*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*133198*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*133201*/            OPC_EmitMergeInputChains1_0,
/*133202*/            OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDPDm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86VRndScale:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                      // Dst: (ROUNDPDm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*133214*/          0, // EndSwitchType
/*133215*/        /*Scope*/ 1|128,1/*129*/, /*->133346*/
/*133217*/          OPC_MoveParent,
/*133218*/          OPC_RecordChild1, // #2 = $src2
/*133219*/          OPC_MoveChild1,
/*133220*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*133223*/          OPC_MoveParent,
/*133224*/          OPC_SwitchType /*6 cases */, 18, MVT::v16f32,// ->133245
/*133227*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*133229*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*133232*/            OPC_EmitMergeInputChains1_0,
/*133233*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86VRndScale:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                      // Dst: (VRNDSCALEPSZrmi:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*133245*/          /*SwitchType*/ 18, MVT::v4f32,// ->133265
/*133247*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*133249*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*133252*/            OPC_EmitMergeInputChains1_0,
/*133253*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86VRndScale:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                      // Dst: (VRNDSCALEPSZ128rmi:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*133265*/          /*SwitchType*/ 18, MVT::v8f32,// ->133285
/*133267*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*133269*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*133272*/            OPC_EmitMergeInputChains1_0,
/*133273*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86VRndScale:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                      // Dst: (VRNDSCALEPSZ256rmi:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*133285*/          /*SwitchType*/ 18, MVT::v8f64,// ->133305
/*133287*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*133289*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*133292*/            OPC_EmitMergeInputChains1_0,
/*133293*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86VRndScale:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                      // Dst: (VRNDSCALEPDZrmi:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*133305*/          /*SwitchType*/ 18, MVT::v2f64,// ->133325
/*133307*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*133309*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*133312*/            OPC_EmitMergeInputChains1_0,
/*133313*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86VRndScale:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                      // Dst: (VRNDSCALEPDZ128rmi:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*133325*/          /*SwitchType*/ 18, MVT::v4f64,// ->133345
/*133327*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*133329*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*133332*/            OPC_EmitMergeInputChains1_0,
/*133333*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86VRndScale:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                      // Dst: (VRNDSCALEPDZ256rmi:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*133345*/          0, // EndSwitchType
/*133346*/        0, /*End of Scope*/
/*133347*/      /*SwitchOpcode*/ 22|128,1/*150*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->133501
/*133351*/        OPC_RecordMemRef,
/*133352*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*133353*/        OPC_CheckFoldableChainNode,
/*133354*/        OPC_RecordChild1, // #1 = $src1
/*133355*/        OPC_Scope, 71, /*->133428*/ // 2 children in Scope
/*133357*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*133359*/          OPC_MoveParent,
/*133360*/          OPC_RecordChild1, // #2 = $src2
/*133361*/          OPC_MoveChild1,
/*133362*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*133365*/          OPC_MoveParent,
/*133366*/          OPC_SwitchType /*3 cases */, 18, MVT::v16f32,// ->133387
/*133369*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*133371*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*133374*/            OPC_EmitMergeInputChains1_0,
/*133375*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86VRndScale:{ *:[v16f32] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                      // Dst: (VRNDSCALEPSZrmbi:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*133387*/          /*SwitchType*/ 18, MVT::v4f32,// ->133407
/*133389*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*133391*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*133394*/            OPC_EmitMergeInputChains1_0,
/*133395*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86VRndScale:{ *:[v4f32] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                      // Dst: (VRNDSCALEPSZ128rmbi:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*133407*/          /*SwitchType*/ 18, MVT::v8f32,// ->133427
/*133409*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*133411*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*133414*/            OPC_EmitMergeInputChains1_0,
/*133415*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86VRndScale:{ *:[v8f32] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                      // Dst: (VRNDSCALEPSZ256rmbi:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*133427*/          0, // EndSwitchType
/*133428*/        /*Scope*/ 71, /*->133500*/
/*133429*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*133431*/          OPC_MoveParent,
/*133432*/          OPC_RecordChild1, // #2 = $src2
/*133433*/          OPC_MoveChild1,
/*133434*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*133437*/          OPC_MoveParent,
/*133438*/          OPC_SwitchType /*3 cases */, 18, MVT::v8f64,// ->133459
/*133441*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*133443*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*133446*/            OPC_EmitMergeInputChains1_0,
/*133447*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86VRndScale:{ *:[v8f64] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                      // Dst: (VRNDSCALEPDZrmbi:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*133459*/          /*SwitchType*/ 18, MVT::v2f64,// ->133479
/*133461*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*133463*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*133466*/            OPC_EmitMergeInputChains1_0,
/*133467*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86VRndScale:{ *:[v2f64] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                      // Dst: (VRNDSCALEPDZ128rmbi:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*133479*/          /*SwitchType*/ 18, MVT::v4f64,// ->133499
/*133481*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*133483*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*133486*/            OPC_EmitMergeInputChains1_0,
/*133487*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86VRndScale:{ *:[v4f64] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                      // Dst: (VRNDSCALEPDZ256rmbi:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*133499*/          0, // EndSwitchType
/*133500*/        0, /*End of Scope*/
/*133501*/      0, // EndSwitchOpcode
/*133502*/    /*Scope*/ 31|128,1/*159*/, /*->133663*/
/*133504*/      OPC_RecordChild0, // #0 = $src1
/*133505*/      OPC_RecordChild1, // #1 = $src2
/*133506*/      OPC_MoveChild1,
/*133507*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*133510*/      OPC_MoveParent,
/*133511*/      OPC_SwitchType /*6 cases */, 35, MVT::v4f32,// ->133549
/*133514*/        OPC_Scope, 10, /*->133526*/ // 3 children in Scope
/*133516*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*133518*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDPSr), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86VRndScale:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 6
                    // Dst: (VROUNDPSr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*133526*/        /*Scope*/ 10, /*->133537*/
/*133527*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*133529*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDPSr), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86VRndScale:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 6
                    // Dst: (ROUNDPSr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*133537*/        /*Scope*/ 10, /*->133548*/
/*133538*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*133540*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rri), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86VRndScale:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 6
                    // Dst: (VRNDSCALEPSZ128rri:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*133548*/        0, /*End of Scope*/
/*133549*/      /*SwitchType*/ 24, MVT::v8f32,// ->133575
/*133551*/        OPC_Scope, 10, /*->133563*/ // 2 children in Scope
/*133553*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*133555*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDPSYr), 0,
                        MVT::v8f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86VRndScale:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 6
                    // Dst: (VROUNDPSYr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*133563*/        /*Scope*/ 10, /*->133574*/
/*133564*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*133566*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rri), 0,
                        MVT::v8f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86VRndScale:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 6
                    // Dst: (VRNDSCALEPSZ256rri:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*133574*/        0, /*End of Scope*/
/*133575*/      /*SwitchType*/ 35, MVT::v2f64,// ->133612
/*133577*/        OPC_Scope, 10, /*->133589*/ // 3 children in Scope
/*133579*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*133581*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDPDr), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86VRndScale:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 6
                    // Dst: (VROUNDPDr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (timm:{ *:[i32] }):$src2)
/*133589*/        /*Scope*/ 10, /*->133600*/
/*133590*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*133592*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDPDr), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86VRndScale:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 6
                    // Dst: (ROUNDPDr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (timm:{ *:[i32] }):$src2)
/*133600*/        /*Scope*/ 10, /*->133611*/
/*133601*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*133603*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rri), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86VRndScale:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 6
                    // Dst: (VRNDSCALEPDZ128rri:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (timm:{ *:[i32] }):$src2)
/*133611*/        0, /*End of Scope*/
/*133612*/      /*SwitchType*/ 24, MVT::v4f64,// ->133638
/*133614*/        OPC_Scope, 10, /*->133626*/ // 2 children in Scope
/*133616*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*133618*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDPDYr), 0,
                        MVT::v4f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86VRndScale:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 6
                    // Dst: (VROUNDPDYr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, (timm:{ *:[i32] }):$src2)
/*133626*/        /*Scope*/ 10, /*->133637*/
/*133627*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*133629*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rri), 0,
                        MVT::v4f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86VRndScale:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 6
                    // Dst: (VRNDSCALEPDZ256rri:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (timm:{ *:[i32] }):$src2)
/*133637*/        0, /*End of Scope*/
/*133638*/      /*SwitchType*/ 10, MVT::v16f32,// ->133650
/*133640*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*133642*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrri), 0,
                      MVT::v16f32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86VRndScale:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 6
                  // Dst: (VRNDSCALEPSZrri:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*133650*/      /*SwitchType*/ 10, MVT::v8f64,// ->133662
/*133652*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*133654*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrri), 0,
                      MVT::v8f64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86VRndScale:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 6
                  // Dst: (VRNDSCALEPDZrri:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i32] }):$src2)
/*133662*/      0, // EndSwitchType
/*133663*/    0, /*End of Scope*/
/*133664*/  /*SwitchOpcode*/ 8|128,18/*2312*/, TARGET_VAL(ISD::FADD),// ->135980
/*133668*/    OPC_Scope, 21|128,1/*149*/, /*->133820*/ // 9 children in Scope
/*133671*/      OPC_RecordChild0, // #0 = $src1
/*133672*/      OPC_MoveChild1,
/*133673*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*133676*/      OPC_MoveChild0,
/*133677*/      OPC_CheckOpcode, TARGET_VAL(ISD::ATOMIC_LOAD),
/*133680*/      OPC_RecordMemRef,
/*133681*/      OPC_RecordNode, // #1 = 'atomic_load' chained node
/*133682*/      OPC_CheckFoldableChainNode,
/*133683*/      OPC_RecordChild1, // #2 = $src2
/*133684*/      OPC_SwitchType /*2 cases */, 65, MVT::i32,// ->133752
/*133687*/        OPC_CheckPredicate, 36, // Predicate_atomic_load_32
/*133689*/        OPC_MoveParent,
/*133690*/        OPC_MoveParent,
/*133691*/        OPC_CheckType, MVT::f32,
/*133693*/        OPC_Scope, 18, /*->133713*/ // 3 children in Scope
/*133695*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*133697*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*133700*/          OPC_EmitMergeInputChains1_1,
/*133701*/          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, (bitconvert:{ *:[f32] } (atomic_load:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_atomic_load_32>>)) - Complexity = 28
                    // Dst: (ADDSSrm:{ *:[f32] } FR32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*133713*/        /*Scope*/ 18, /*->133732*/
/*133714*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*133716*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*133719*/          OPC_EmitMergeInputChains1_1,
/*133720*/          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, (bitconvert:{ *:[f32] } (atomic_load:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_atomic_load_32>>)) - Complexity = 28
                    // Dst: (VADDSSrm:{ *:[f32] } FR32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*133732*/        /*Scope*/ 18, /*->133751*/
/*133733*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*133735*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*133738*/          OPC_EmitMergeInputChains1_1,
/*133739*/          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, (bitconvert:{ *:[f32] } (atomic_load:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_atomic_load_32>>)) - Complexity = 28
                    // Dst: (VADDSSZrm:{ *:[f32] } FR32X:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*133751*/        0, /*End of Scope*/
/*133752*/      /*SwitchType*/ 65, MVT::i64,// ->133819
/*133754*/        OPC_CheckPredicate, 37, // Predicate_atomic_load_64
/*133756*/        OPC_MoveParent,
/*133757*/        OPC_MoveParent,
/*133758*/        OPC_CheckType, MVT::f64,
/*133760*/        OPC_Scope, 18, /*->133780*/ // 3 children in Scope
/*133762*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*133764*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*133767*/          OPC_EmitMergeInputChains1_1,
/*133768*/          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, (bitconvert:{ *:[f64] } (atomic_load:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_atomic_load_64>>)) - Complexity = 28
                    // Dst: (ADDSDrm:{ *:[f64] } FR64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*133780*/        /*Scope*/ 18, /*->133799*/
/*133781*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*133783*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*133786*/          OPC_EmitMergeInputChains1_1,
/*133787*/          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, (bitconvert:{ *:[f64] } (atomic_load:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_atomic_load_64>>)) - Complexity = 28
                    // Dst: (VADDSDrm:{ *:[f64] } FR64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*133799*/        /*Scope*/ 18, /*->133818*/
/*133800*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*133802*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*133805*/          OPC_EmitMergeInputChains1_1,
/*133806*/          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, (bitconvert:{ *:[f64] } (atomic_load:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_atomic_load_64>>)) - Complexity = 28
                    // Dst: (VADDSDZrm:{ *:[f64] } FR64X:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*133818*/        0, /*End of Scope*/
/*133819*/      0, // EndSwitchType
/*133820*/    /*Scope*/ 22|128,1/*150*/, /*->133972*/
/*133822*/      OPC_MoveChild0,
/*133823*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*133826*/      OPC_MoveChild0,
/*133827*/      OPC_CheckOpcode, TARGET_VAL(ISD::ATOMIC_LOAD),
/*133830*/      OPC_RecordMemRef,
/*133831*/      OPC_RecordNode, // #0 = 'atomic_load' chained node
/*133832*/      OPC_CheckFoldableChainNode,
/*133833*/      OPC_RecordChild1, // #1 = $src2
/*133834*/      OPC_SwitchType /*2 cases */, 66, MVT::i32,// ->133903
/*133837*/        OPC_CheckPredicate, 36, // Predicate_atomic_load_32
/*133839*/        OPC_MoveParent,
/*133840*/        OPC_MoveParent,
/*133841*/        OPC_RecordChild1, // #2 = $src1
/*133842*/        OPC_CheckType, MVT::f32,
/*133844*/        OPC_Scope, 18, /*->133864*/ // 3 children in Scope
/*133846*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*133848*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*133851*/          OPC_EmitMergeInputChains1_0,
/*133852*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ADDSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (fadd:{ *:[f32] } (bitconvert:{ *:[f32] } (atomic_load:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_atomic_load_32>>), FR32:{ *:[f32] }:$src1) - Complexity = 28
                    // Dst: (ADDSSrm:{ *:[f32] } FR32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*133864*/        /*Scope*/ 18, /*->133883*/
/*133865*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*133867*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*133870*/          OPC_EmitMergeInputChains1_0,
/*133871*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (fadd:{ *:[f32] } (bitconvert:{ *:[f32] } (atomic_load:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_atomic_load_32>>), FR32:{ *:[f32] }:$src1) - Complexity = 28
                    // Dst: (VADDSSrm:{ *:[f32] } FR32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*133883*/        /*Scope*/ 18, /*->133902*/
/*133884*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*133886*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*133889*/          OPC_EmitMergeInputChains1_0,
/*133890*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (fadd:{ *:[f32] } (bitconvert:{ *:[f32] } (atomic_load:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_atomic_load_32>>), FR32X:{ *:[f32] }:$src1) - Complexity = 28
                    // Dst: (VADDSSZrm:{ *:[f32] } FR32X:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*133902*/        0, /*End of Scope*/
/*133903*/      /*SwitchType*/ 66, MVT::i64,// ->133971
/*133905*/        OPC_CheckPredicate, 37, // Predicate_atomic_load_64
/*133907*/        OPC_MoveParent,
/*133908*/        OPC_MoveParent,
/*133909*/        OPC_RecordChild1, // #2 = $src1
/*133910*/        OPC_CheckType, MVT::f64,
/*133912*/        OPC_Scope, 18, /*->133932*/ // 3 children in Scope
/*133914*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*133916*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*133919*/          OPC_EmitMergeInputChains1_0,
/*133920*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ADDSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (fadd:{ *:[f64] } (bitconvert:{ *:[f64] } (atomic_load:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_atomic_load_64>>), FR64:{ *:[f64] }:$src1) - Complexity = 28
                    // Dst: (ADDSDrm:{ *:[f64] } FR64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*133932*/        /*Scope*/ 18, /*->133951*/
/*133933*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*133935*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*133938*/          OPC_EmitMergeInputChains1_0,
/*133939*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (fadd:{ *:[f64] } (bitconvert:{ *:[f64] } (atomic_load:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_atomic_load_64>>), FR64:{ *:[f64] }:$src1) - Complexity = 28
                    // Dst: (VADDSDrm:{ *:[f64] } FR64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*133951*/        /*Scope*/ 18, /*->133970*/
/*133952*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*133954*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*133957*/          OPC_EmitMergeInputChains1_0,
/*133958*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (fadd:{ *:[f64] } (bitconvert:{ *:[f64] } (atomic_load:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_atomic_load_64>>), FR64X:{ *:[f64] }:$src1) - Complexity = 28
                    // Dst: (VADDSDZrm:{ *:[f64] } FR64X:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*133970*/        0, /*End of Scope*/
/*133971*/      0, // EndSwitchType
/*133972*/    /*Scope*/ 38|128,2/*294*/, /*->134268*/
/*133974*/      OPC_RecordChild0, // #0 = $src1
/*133975*/      OPC_MoveChild1,
/*133976*/      OPC_SwitchOpcode /*2 cases */, 2|128,1/*130*/, TARGET_VAL(ISD::LOAD),// ->134111
/*133981*/        OPC_RecordMemRef,
/*133982*/        OPC_RecordNode, // #1 = 'ld' chained node
/*133983*/        OPC_CheckFoldableChainNode,
/*133984*/        OPC_RecordChild1, // #2 = $src2
/*133985*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*133987*/        OPC_Scope, 47, /*->134036*/ // 2 children in Scope
/*133989*/          OPC_CheckPredicate, 9, // Predicate_load
/*133991*/          OPC_MoveParent,
/*133992*/          OPC_SwitchType /*2 cases */, 19, MVT::f32,// ->134014
/*133995*/            OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*133997*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*134000*/            OPC_EmitMergeInputChains1_1,
/*134001*/            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)
/*134014*/          /*SwitchType*/ 19, MVT::f64,// ->134035
/*134016*/            OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*134018*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*134021*/            OPC_EmitMergeInputChains1_1,
/*134022*/            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)
/*134035*/          0, // EndSwitchType
/*134036*/        /*Scope*/ 73, /*->134110*/
/*134037*/          OPC_CheckPredicate, 70, // Predicate_extload
/*134039*/          OPC_Scope, 45, /*->134086*/ // 2 children in Scope
/*134041*/            OPC_CheckPredicate, 21, // Predicate_extloadf32
/*134043*/            OPC_MoveParent,
/*134044*/            OPC_SwitchType /*2 cases */, 19, MVT::f64,// ->134066
/*134047*/              OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*134049*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*134052*/              OPC_EmitMergeInputChains1_1,
/*134053*/              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)
/*134066*/            /*SwitchType*/ 17, MVT::f80,// ->134085
/*134068*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*134071*/              OPC_EmitMergeInputChains1_1,
/*134072*/              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)
/*134085*/            0, // EndSwitchType
/*134086*/          /*Scope*/ 22, /*->134109*/
/*134087*/            OPC_CheckPredicate, 22, // Predicate_extloadf64
/*134089*/            OPC_MoveParent,
/*134090*/            OPC_CheckType, MVT::f80,
/*134092*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*134095*/            OPC_EmitMergeInputChains1_1,
/*134096*/            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)
/*134109*/          0, /*End of Scope*/
/*134110*/        0, /*End of Scope*/
/*134111*/      /*SwitchOpcode*/ 24|128,1/*152*/, TARGET_VAL(X86ISD::FILD),// ->134267
/*134115*/        OPC_RecordMemRef,
/*134116*/        OPC_RecordNode, // #1 = 'X86fild' chained node
/*134117*/        OPC_CheckFoldableChainNode,
/*134118*/        OPC_RecordChild1, // #2 = $src2
/*134119*/        OPC_Scope, 24, /*->134145*/ // 6 children in Scope
/*134121*/          OPC_CheckPredicate, 62, // Predicate_X86fild16
/*134123*/          OPC_MoveParent,
/*134124*/          OPC_CheckType, MVT::f32,
/*134126*/          OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*134128*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*134131*/          OPC_EmitMergeInputChains1_1,
/*134132*/          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)<<P:Predicate_X86fild16>>) - Complexity = 25
                    // Dst: (ADD_FpI16m32:{ *:[f32] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*134145*/        /*Scope*/ 24, /*->134170*/
/*134146*/          OPC_CheckPredicate, 63, // Predicate_X86fild32
/*134148*/          OPC_MoveParent,
/*134149*/          OPC_CheckType, MVT::f32,
/*134151*/          OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*134153*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*134156*/          OPC_EmitMergeInputChains1_1,
/*134157*/          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)<<P:Predicate_X86fild32>>) - Complexity = 25
                    // Dst: (ADD_FpI32m32:{ *:[f32] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*134170*/        /*Scope*/ 24, /*->134195*/
/*134171*/          OPC_CheckPredicate, 62, // Predicate_X86fild16
/*134173*/          OPC_MoveParent,
/*134174*/          OPC_CheckType, MVT::f64,
/*134176*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*134178*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*134181*/          OPC_EmitMergeInputChains1_1,
/*134182*/          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)<<P:Predicate_X86fild16>>) - Complexity = 25
                    // Dst: (ADD_FpI16m64:{ *:[f64] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*134195*/        /*Scope*/ 24, /*->134220*/
/*134196*/          OPC_CheckPredicate, 63, // Predicate_X86fild32
/*134198*/          OPC_MoveParent,
/*134199*/          OPC_CheckType, MVT::f64,
/*134201*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*134203*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*134206*/          OPC_EmitMergeInputChains1_1,
/*134207*/          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)<<P:Predicate_X86fild32>>) - Complexity = 25
                    // Dst: (ADD_FpI32m64:{ *:[f64] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*134220*/        /*Scope*/ 22, /*->134243*/
/*134221*/          OPC_CheckPredicate, 62, // Predicate_X86fild16
/*134223*/          OPC_MoveParent,
/*134224*/          OPC_CheckType, MVT::f80,
/*134226*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*134229*/          OPC_EmitMergeInputChains1_1,
/*134230*/          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)<<P:Predicate_X86fild16>>) - Complexity = 25
                    // Dst: (ADD_FpI16m80:{ *:[f80] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, addr:{ *:[iPTR] }:$src2)
/*134243*/        /*Scope*/ 22, /*->134266*/
/*134244*/          OPC_CheckPredicate, 63, // Predicate_X86fild32
/*134246*/          OPC_MoveParent,
/*134247*/          OPC_CheckType, MVT::f80,
/*134249*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*134252*/          OPC_EmitMergeInputChains1_1,
/*134253*/          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)<<P:Predicate_X86fild32>>) - Complexity = 25
                    // Dst: (ADD_FpI32m80:{ *:[f80] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, addr:{ *:[iPTR] }:$src2)
/*134266*/        0, /*End of Scope*/
/*134267*/      0, // EndSwitchOpcode
/*134268*/    /*Scope*/ 46|128,2/*302*/, /*->134572*/
/*134270*/      OPC_MoveChild0,
/*134271*/      OPC_SwitchOpcode /*2 cases */, 5|128,1/*133*/, TARGET_VAL(ISD::LOAD),// ->134409
/*134276*/        OPC_RecordMemRef,
/*134277*/        OPC_RecordNode, // #0 = 'ld' chained node
/*134278*/        OPC_CheckFoldableChainNode,
/*134279*/        OPC_RecordChild1, // #1 = $src2
/*134280*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*134282*/        OPC_Scope, 48, /*->134332*/ // 2 children in Scope
/*134284*/          OPC_CheckPredicate, 9, // Predicate_load
/*134286*/          OPC_MoveParent,
/*134287*/          OPC_RecordChild1, // #2 = $src1
/*134288*/          OPC_SwitchType /*2 cases */, 19, MVT::f32,// ->134310
/*134291*/            OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*134293*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*134296*/            OPC_EmitMergeInputChains1_0,
/*134297*/            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)
/*134310*/          /*SwitchType*/ 19, MVT::f64,// ->134331
/*134312*/            OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*134314*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*134317*/            OPC_EmitMergeInputChains1_0,
/*134318*/            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)
/*134331*/          0, // EndSwitchType
/*134332*/        /*Scope*/ 75, /*->134408*/
/*134333*/          OPC_CheckPredicate, 70, // Predicate_extload
/*134335*/          OPC_Scope, 46, /*->134383*/ // 2 children in Scope
/*134337*/            OPC_CheckPredicate, 21, // Predicate_extloadf32
/*134339*/            OPC_MoveParent,
/*134340*/            OPC_RecordChild1, // #2 = $src1
/*134341*/            OPC_SwitchType /*2 cases */, 19, MVT::f64,// ->134363
/*134344*/              OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*134346*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*134349*/              OPC_EmitMergeInputChains1_0,
/*134350*/              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)
/*134363*/            /*SwitchType*/ 17, MVT::f80,// ->134382
/*134365*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*134368*/              OPC_EmitMergeInputChains1_0,
/*134369*/              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)
/*134382*/            0, // EndSwitchType
/*134383*/          /*Scope*/ 23, /*->134407*/
/*134384*/            OPC_CheckPredicate, 22, // Predicate_extloadf64
/*134386*/            OPC_MoveParent,
/*134387*/            OPC_RecordChild1, // #2 = $src1
/*134388*/            OPC_CheckType, MVT::f80,
/*134390*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*134393*/            OPC_EmitMergeInputChains1_0,
/*134394*/            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)
/*134407*/          0, /*End of Scope*/
/*134408*/        0, /*End of Scope*/
/*134409*/      /*SwitchOpcode*/ 30|128,1/*158*/, TARGET_VAL(X86ISD::FILD),// ->134571
/*134413*/        OPC_RecordMemRef,
/*134414*/        OPC_RecordNode, // #0 = 'X86fild' chained node
/*134415*/        OPC_CheckFoldableChainNode,
/*134416*/        OPC_RecordChild1, // #1 = $src2
/*134417*/        OPC_Scope, 25, /*->134444*/ // 6 children in Scope
/*134419*/          OPC_CheckPredicate, 62, // Predicate_X86fild16
/*134421*/          OPC_MoveParent,
/*134422*/          OPC_RecordChild1, // #2 = $src1
/*134423*/          OPC_CheckType, MVT::f32,
/*134425*/          OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*134427*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*134430*/          OPC_EmitMergeInputChains1_0,
/*134431*/          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)<<P:Predicate_X86fild16>>, RFP32:{ *:[f32] }:$src1) - Complexity = 25
                    // Dst: (ADD_FpI16m32:{ *:[f32] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*134444*/        /*Scope*/ 25, /*->134470*/
/*134445*/          OPC_CheckPredicate, 63, // Predicate_X86fild32
/*134447*/          OPC_MoveParent,
/*134448*/          OPC_RecordChild1, // #2 = $src1
/*134449*/          OPC_CheckType, MVT::f32,
/*134451*/          OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*134453*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*134456*/          OPC_EmitMergeInputChains1_0,
/*134457*/          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)<<P:Predicate_X86fild32>>, RFP32:{ *:[f32] }:$src1) - Complexity = 25
                    // Dst: (ADD_FpI32m32:{ *:[f32] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*134470*/        /*Scope*/ 25, /*->134496*/
/*134471*/          OPC_CheckPredicate, 62, // Predicate_X86fild16
/*134473*/          OPC_MoveParent,
/*134474*/          OPC_RecordChild1, // #2 = $src1
/*134475*/          OPC_CheckType, MVT::f64,
/*134477*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*134479*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*134482*/          OPC_EmitMergeInputChains1_0,
/*134483*/          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)<<P:Predicate_X86fild16>>, RFP64:{ *:[f64] }:$src1) - Complexity = 25
                    // Dst: (ADD_FpI16m64:{ *:[f64] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*134496*/        /*Scope*/ 25, /*->134522*/
/*134497*/          OPC_CheckPredicate, 63, // Predicate_X86fild32
/*134499*/          OPC_MoveParent,
/*134500*/          OPC_RecordChild1, // #2 = $src1
/*134501*/          OPC_CheckType, MVT::f64,
/*134503*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*134505*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*134508*/          OPC_EmitMergeInputChains1_0,
/*134509*/          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)<<P:Predicate_X86fild32>>, RFP64:{ *:[f64] }:$src1) - Complexity = 25
                    // Dst: (ADD_FpI32m64:{ *:[f64] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*134522*/        /*Scope*/ 23, /*->134546*/
/*134523*/          OPC_CheckPredicate, 62, // Predicate_X86fild16
/*134525*/          OPC_MoveParent,
/*134526*/          OPC_RecordChild1, // #2 = $src1
/*134527*/          OPC_CheckType, MVT::f80,
/*134529*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*134532*/          OPC_EmitMergeInputChains1_0,
/*134533*/          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)<<P:Predicate_X86fild16>>, RFP80:{ *:[f80] }:$src1) - Complexity = 25
                    // Dst: (ADD_FpI16m80:{ *:[f80] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, addr:{ *:[iPTR] }:$src2)
/*134546*/        /*Scope*/ 23, /*->134570*/
/*134547*/          OPC_CheckPredicate, 63, // Predicate_X86fild32
/*134549*/          OPC_MoveParent,
/*134550*/          OPC_RecordChild1, // #2 = $src1
/*134551*/          OPC_CheckType, MVT::f80,
/*134553*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*134556*/          OPC_EmitMergeInputChains1_0,
/*134557*/          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)<<P:Predicate_X86fild32>>, RFP80:{ *:[f80] }:$src1) - Complexity = 25
                    // Dst: (ADD_FpI32m80:{ *:[f80] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, addr:{ *:[iPTR] }:$src2)
/*134570*/        0, /*End of Scope*/
/*134571*/      0, // EndSwitchOpcode
/*134572*/    /*Scope*/ 10|128,1/*138*/, /*->134712*/
/*134574*/      OPC_RecordChild0, // #0 = $src1
/*134575*/      OPC_MoveChild1,
/*134576*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*134579*/      OPC_RecordMemRef,
/*134580*/      OPC_RecordNode, // #1 = 'ld' chained node
/*134581*/      OPC_CheckFoldableChainNode,
/*134582*/      OPC_RecordChild1, // #2 = $src2
/*134583*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*134585*/      OPC_CheckPredicate, 9, // Predicate_load
/*134587*/      OPC_MoveParent,
/*134588*/      OPC_SwitchType /*2 cases */, 59, MVT::f32,// ->134650
/*134591*/        OPC_Scope, 18, /*->134611*/ // 3 children in Scope
/*134593*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*134595*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*134598*/          OPC_EmitMergeInputChains1_1,
/*134599*/          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)
/*134611*/        /*Scope*/ 18, /*->134630*/
/*134612*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*134614*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*134617*/          OPC_EmitMergeInputChains1_1,
/*134618*/          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)
/*134630*/        /*Scope*/ 18, /*->134649*/
/*134631*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*134633*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*134636*/          OPC_EmitMergeInputChains1_1,
/*134637*/          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)
/*134649*/        0, /*End of Scope*/
/*134650*/      /*SwitchType*/ 59, MVT::f64,// ->134711
/*134652*/        OPC_Scope, 18, /*->134672*/ // 3 children in Scope
/*134654*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*134656*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*134659*/          OPC_EmitMergeInputChains1_1,
/*134660*/          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)
/*134672*/        /*Scope*/ 18, /*->134691*/
/*134673*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*134675*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*134678*/          OPC_EmitMergeInputChains1_1,
/*134679*/          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)
/*134691*/        /*Scope*/ 18, /*->134710*/
/*134692*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*134694*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*134697*/          OPC_EmitMergeInputChains1_1,
/*134698*/          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)
/*134710*/        0, /*End of Scope*/
/*134711*/      0, // EndSwitchType
/*134712*/    /*Scope*/ 10|128,1/*138*/, /*->134852*/
/*134714*/      OPC_MoveChild0,
/*134715*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*134718*/      OPC_RecordMemRef,
/*134719*/      OPC_RecordNode, // #0 = 'ld' chained node
/*134720*/      OPC_CheckFoldableChainNode,
/*134721*/      OPC_RecordChild1, // #1 = $src2
/*134722*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*134724*/      OPC_CheckPredicate, 9, // Predicate_load
/*134726*/      OPC_MoveParent,
/*134727*/      OPC_RecordChild1, // #2 = $src1
/*134728*/      OPC_SwitchType /*2 cases */, 59, MVT::f32,// ->134790
/*134731*/        OPC_Scope, 18, /*->134751*/ // 3 children in Scope
/*134733*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*134735*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*134738*/          OPC_EmitMergeInputChains1_0,
/*134739*/          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)
/*134751*/        /*Scope*/ 18, /*->134770*/
/*134752*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*134754*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*134757*/          OPC_EmitMergeInputChains1_0,
/*134758*/          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)
/*134770*/        /*Scope*/ 18, /*->134789*/
/*134771*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*134773*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*134776*/          OPC_EmitMergeInputChains1_0,
/*134777*/          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)
/*134789*/        0, /*End of Scope*/
/*134790*/      /*SwitchType*/ 59, MVT::f64,// ->134851
/*134792*/        OPC_Scope, 18, /*->134812*/ // 3 children in Scope
/*134794*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*134796*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*134799*/          OPC_EmitMergeInputChains1_0,
/*134800*/          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)
/*134812*/        /*Scope*/ 18, /*->134831*/
/*134813*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*134815*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*134818*/          OPC_EmitMergeInputChains1_0,
/*134819*/          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)
/*134831*/        /*Scope*/ 18, /*->134850*/
/*134832*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*134834*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*134837*/          OPC_EmitMergeInputChains1_0,
/*134838*/          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)
/*134850*/        0, /*End of Scope*/
/*134851*/      0, // EndSwitchType
/*134852*/    /*Scope*/ 27|128,4/*539*/, /*->135393*/
/*134854*/      OPC_RecordChild0, // #0 = $src1
/*134855*/      OPC_Scope, 112, /*->134969*/ // 2 children in Scope
/*134857*/        OPC_RecordChild1, // #1 = $src2
/*134858*/        OPC_SwitchType /*3 cases */, 47, MVT::f32,// ->134908
/*134861*/          OPC_Scope, 11, /*->134874*/ // 4 children in Scope
/*134863*/            OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*134865*/            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)
/*134874*/          /*Scope*/ 10, /*->134885*/
/*134875*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*134877*/            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)
/*134885*/          /*Scope*/ 10, /*->134896*/
/*134886*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*134888*/            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)
/*134896*/          /*Scope*/ 10, /*->134907*/
/*134897*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*134899*/            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)
/*134907*/          0, /*End of Scope*/
/*134908*/        /*SwitchType*/ 47, MVT::f64,// ->134957
/*134910*/          OPC_Scope, 11, /*->134923*/ // 4 children in Scope
/*134912*/            OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*134914*/            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)
/*134923*/          /*Scope*/ 10, /*->134934*/
/*134924*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*134926*/            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)
/*134934*/          /*Scope*/ 10, /*->134945*/
/*134935*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*134937*/            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)
/*134945*/          /*Scope*/ 10, /*->134956*/
/*134946*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*134948*/            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)
/*134956*/          0, /*End of Scope*/
/*134957*/        /*SwitchType*/ 9, MVT::f80,// ->134968
/*134959*/          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)
/*134968*/        0, // EndSwitchType
/*134969*/      /*Scope*/ 37|128,3/*421*/, /*->135392*/
/*134971*/        OPC_MoveChild1,
/*134972*/        OPC_SwitchOpcode /*2 cases */, 8|128,2/*264*/, TARGET_VAL(ISD::LOAD),// ->135241
/*134977*/          OPC_RecordMemRef,
/*134978*/          OPC_RecordNode, // #1 = 'ld' chained node
/*134979*/          OPC_CheckFoldableChainNode,
/*134980*/          OPC_RecordChild1, // #2 = $src2
/*134981*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*134983*/          OPC_CheckPredicate, 9, // Predicate_load
/*134985*/          OPC_Scope, 83, /*->135070*/ // 3 children in Scope
/*134987*/            OPC_MoveParent,
/*134988*/            OPC_SwitchType /*4 cases */, 18, MVT::v4f32,// ->135009
/*134991*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*134993*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*134996*/              OPC_EmitMergeInputChains1_1,
/*134997*/              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>>) - Complexity = 25
                        // Dst: (VADDPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*135009*/            /*SwitchType*/ 18, MVT::v2f64,// ->135029
/*135011*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*135013*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*135016*/              OPC_EmitMergeInputChains1_1,
/*135017*/              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>>) - Complexity = 25
                        // Dst: (VADDPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*135029*/            /*SwitchType*/ 18, MVT::v8f32,// ->135049
/*135031*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*135033*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*135036*/              OPC_EmitMergeInputChains1_1,
/*135037*/              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>>) - Complexity = 25
                        // Dst: (VADDPSYrm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*135049*/            /*SwitchType*/ 18, MVT::v4f64,// ->135069
/*135051*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*135053*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*135056*/              OPC_EmitMergeInputChains1_1,
/*135057*/              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>>) - Complexity = 25
                        // Dst: (VADDPDYrm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*135069*/            0, // EndSwitchType
/*135070*/          /*Scope*/ 45, /*->135116*/
/*135071*/            OPC_CheckPredicate, 39, // Predicate_memop
/*135073*/            OPC_MoveParent,
/*135074*/            OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->135095
/*135077*/              OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*135079*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*135082*/              OPC_EmitMergeInputChains1_1,
/*135083*/              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_memop>>) - Complexity = 25
                        // Dst: (ADDPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*135095*/            /*SwitchType*/ 18, MVT::v2f64,// ->135115
/*135097*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*135099*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*135102*/              OPC_EmitMergeInputChains1_1,
/*135103*/              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_memop>>) - Complexity = 25
                        // Dst: (ADDPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*135115*/            0, // EndSwitchType
/*135116*/          /*Scope*/ 123, /*->135240*/
/*135117*/            OPC_MoveParent,
/*135118*/            OPC_SwitchType /*6 cases */, 18, MVT::v16f32,// ->135139
/*135121*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*135123*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*135126*/              OPC_EmitMergeInputChains1_1,
/*135127*/              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>>) - Complexity = 25
                        // Dst: (VADDPSZrm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*135139*/            /*SwitchType*/ 18, MVT::v8f64,// ->135159
/*135141*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*135143*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*135146*/              OPC_EmitMergeInputChains1_1,
/*135147*/              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>>) - Complexity = 25
                        // Dst: (VADDPDZrm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*135159*/            /*SwitchType*/ 18, MVT::v4f32,// ->135179
/*135161*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*135163*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*135166*/              OPC_EmitMergeInputChains1_1,
/*135167*/              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>>) - Complexity = 25
                        // Dst: (VADDPSZ128rm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*135179*/            /*SwitchType*/ 18, MVT::v8f32,// ->135199
/*135181*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*135183*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*135186*/              OPC_EmitMergeInputChains1_1,
/*135187*/              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>>) - Complexity = 25
                        // Dst: (VADDPSZ256rm:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*135199*/            /*SwitchType*/ 18, MVT::v2f64,// ->135219
/*135201*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*135203*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*135206*/              OPC_EmitMergeInputChains1_1,
/*135207*/              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>>) - Complexity = 25
                        // Dst: (VADDPDZ128rm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*135219*/            /*SwitchType*/ 18, MVT::v4f64,// ->135239
/*135221*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*135223*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*135226*/              OPC_EmitMergeInputChains1_1,
/*135227*/              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>>) - Complexity = 25
                        // Dst: (VADDPDZ256rm:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*135239*/            0, // EndSwitchType
/*135240*/          0, /*End of Scope*/
/*135241*/        /*SwitchOpcode*/ 18|128,1/*146*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->135391
/*135245*/          OPC_RecordMemRef,
/*135246*/          OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*135247*/          OPC_CheckFoldableChainNode,
/*135248*/          OPC_RecordChild1, // #2 = $src2
/*135249*/          OPC_Scope, 23, /*->135274*/ // 4 children in Scope
/*135251*/            OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*135253*/            OPC_MoveParent,
/*135254*/            OPC_CheckType, MVT::v16f32,
/*135256*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*135258*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*135261*/            OPC_EmitMergeInputChains1_1,
/*135262*/            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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VADDPSZrmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*135274*/          /*Scope*/ 23, /*->135298*/
/*135275*/            OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*135277*/            OPC_MoveParent,
/*135278*/            OPC_CheckType, MVT::v8f64,
/*135280*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*135282*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*135285*/            OPC_EmitMergeInputChains1_1,
/*135286*/            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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VADDPDZrmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*135298*/          /*Scope*/ 45, /*->135344*/
/*135299*/            OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*135301*/            OPC_MoveParent,
/*135302*/            OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->135323
/*135305*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*135307*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*135310*/              OPC_EmitMergeInputChains1_1,
/*135311*/              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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VADDPSZ128rmb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*135323*/            /*SwitchType*/ 18, MVT::v8f32,// ->135343
/*135325*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*135327*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*135330*/              OPC_EmitMergeInputChains1_1,
/*135331*/              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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VADDPSZ256rmb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*135343*/            0, // EndSwitchType
/*135344*/          /*Scope*/ 45, /*->135390*/
/*135345*/            OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*135347*/            OPC_MoveParent,
/*135348*/            OPC_SwitchType /*2 cases */, 18, MVT::v2f64,// ->135369
/*135351*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*135353*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*135356*/              OPC_EmitMergeInputChains1_1,
/*135357*/              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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VADDPDZ128rmb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*135369*/            /*SwitchType*/ 18, MVT::v4f64,// ->135389
/*135371*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*135373*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*135376*/              OPC_EmitMergeInputChains1_1,
/*135377*/              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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VADDPDZ256rmb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*135389*/            0, // EndSwitchType
/*135390*/          0, /*End of Scope*/
/*135391*/        0, // EndSwitchOpcode
/*135392*/      0, /*End of Scope*/
/*135393*/    /*Scope*/ 44|128,3/*428*/, /*->135823*/
/*135395*/      OPC_MoveChild0,
/*135396*/      OPC_SwitchOpcode /*2 cases */, 11|128,2/*267*/, TARGET_VAL(ISD::LOAD),// ->135668
/*135401*/        OPC_RecordMemRef,
/*135402*/        OPC_RecordNode, // #0 = 'ld' chained node
/*135403*/        OPC_CheckFoldableChainNode,
/*135404*/        OPC_RecordChild1, // #1 = $src2
/*135405*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*135407*/        OPC_CheckPredicate, 9, // Predicate_load
/*135409*/        OPC_Scope, 84, /*->135495*/ // 3 children in Scope
/*135411*/          OPC_MoveParent,
/*135412*/          OPC_RecordChild1, // #2 = $src1
/*135413*/          OPC_SwitchType /*4 cases */, 18, MVT::v4f32,// ->135434
/*135416*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*135418*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*135421*/            OPC_EmitMergeInputChains1_0,
/*135422*/            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>>, VR128:{ *:[v4f32] }:$src1) - Complexity = 25
                      // Dst: (VADDPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*135434*/          /*SwitchType*/ 18, MVT::v2f64,// ->135454
/*135436*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*135438*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*135441*/            OPC_EmitMergeInputChains1_0,
/*135442*/            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>>, VR128:{ *:[v2f64] }:$src1) - Complexity = 25
                      // Dst: (VADDPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*135454*/          /*SwitchType*/ 18, MVT::v8f32,// ->135474
/*135456*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*135458*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*135461*/            OPC_EmitMergeInputChains1_0,
/*135462*/            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>>, VR256:{ *:[v8f32] }:$src1) - Complexity = 25
                      // Dst: (VADDPSYrm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*135474*/          /*SwitchType*/ 18, MVT::v4f64,// ->135494
/*135476*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*135478*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*135481*/            OPC_EmitMergeInputChains1_0,
/*135482*/            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>>, VR256:{ *:[v4f64] }:$src1) - Complexity = 25
                      // Dst: (VADDPDYrm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*135494*/          0, // EndSwitchType
/*135495*/        /*Scope*/ 46, /*->135542*/
/*135496*/          OPC_CheckPredicate, 39, // Predicate_memop
/*135498*/          OPC_MoveParent,
/*135499*/          OPC_RecordChild1, // #2 = $src1
/*135500*/          OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->135521
/*135503*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*135505*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*135508*/            OPC_EmitMergeInputChains1_0,
/*135509*/            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_memop>>, VR128:{ *:[v4f32] }:$src1) - Complexity = 25
                      // Dst: (ADDPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*135521*/          /*SwitchType*/ 18, MVT::v2f64,// ->135541
/*135523*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*135525*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*135528*/            OPC_EmitMergeInputChains1_0,
/*135529*/            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_memop>>, VR128:{ *:[v2f64] }:$src1) - Complexity = 25
                      // Dst: (ADDPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*135541*/          0, // EndSwitchType
/*135542*/        /*Scope*/ 124, /*->135667*/
/*135543*/          OPC_MoveParent,
/*135544*/          OPC_RecordChild1, // #2 = $src1
/*135545*/          OPC_SwitchType /*6 cases */, 18, MVT::v16f32,// ->135566
/*135548*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*135550*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*135553*/            OPC_EmitMergeInputChains1_0,
/*135554*/            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>>, VR512:{ *:[v16f32] }:$src1) - Complexity = 25
                      // Dst: (VADDPSZrm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*135566*/          /*SwitchType*/ 18, MVT::v8f64,// ->135586
/*135568*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*135570*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*135573*/            OPC_EmitMergeInputChains1_0,
/*135574*/            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>>, VR512:{ *:[v8f64] }:$src1) - Complexity = 25
                      // Dst: (VADDPDZrm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*135586*/          /*SwitchType*/ 18, MVT::v4f32,// ->135606
/*135588*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*135590*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*135593*/            OPC_EmitMergeInputChains1_0,
/*135594*/            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>>, VR128X:{ *:[v4f32] }:$src1) - Complexity = 25
                      // Dst: (VADDPSZ128rm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*135606*/          /*SwitchType*/ 18, MVT::v8f32,// ->135626
/*135608*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*135610*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*135613*/            OPC_EmitMergeInputChains1_0,
/*135614*/            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>>, VR256X:{ *:[v8f32] }:$src1) - Complexity = 25
                      // Dst: (VADDPSZ256rm:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*135626*/          /*SwitchType*/ 18, MVT::v2f64,// ->135646
/*135628*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*135630*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*135633*/            OPC_EmitMergeInputChains1_0,
/*135634*/            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>>, VR128X:{ *:[v2f64] }:$src1) - Complexity = 25
                      // Dst: (VADDPDZ128rm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*135646*/          /*SwitchType*/ 18, MVT::v4f64,// ->135666
/*135648*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*135650*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*135653*/            OPC_EmitMergeInputChains1_0,
/*135654*/            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>>, VR256X:{ *:[v4f64] }:$src1) - Complexity = 25
                      // Dst: (VADDPDZ256rm:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*135666*/          0, // EndSwitchType
/*135667*/        0, /*End of Scope*/
/*135668*/      /*SwitchOpcode*/ 22|128,1/*150*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->135822
/*135672*/        OPC_RecordMemRef,
/*135673*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*135674*/        OPC_CheckFoldableChainNode,
/*135675*/        OPC_RecordChild1, // #1 = $src2
/*135676*/        OPC_Scope, 24, /*->135702*/ // 4 children in Scope
/*135678*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*135680*/          OPC_MoveParent,
/*135681*/          OPC_RecordChild1, // #2 = $src1
/*135682*/          OPC_CheckType, MVT::v16f32,
/*135684*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*135686*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*135689*/          OPC_EmitMergeInputChains1_0,
/*135690*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (fadd:{ *:[v16f32] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src1) - Complexity = 25
                    // Dst: (VADDPSZrmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*135702*/        /*Scope*/ 24, /*->135727*/
/*135703*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*135705*/          OPC_MoveParent,
/*135706*/          OPC_RecordChild1, // #2 = $src1
/*135707*/          OPC_CheckType, MVT::v8f64,
/*135709*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*135711*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*135714*/          OPC_EmitMergeInputChains1_0,
/*135715*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (fadd:{ *:[v8f64] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src1) - Complexity = 25
                    // Dst: (VADDPDZrmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*135727*/        /*Scope*/ 46, /*->135774*/
/*135728*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*135730*/          OPC_MoveParent,
/*135731*/          OPC_RecordChild1, // #2 = $src1
/*135732*/          OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->135753
/*135735*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*135737*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*135740*/            OPC_EmitMergeInputChains1_0,
/*135741*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (fadd:{ *:[v4f32] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1) - Complexity = 25
                      // Dst: (VADDPSZ128rmb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*135753*/          /*SwitchType*/ 18, MVT::v8f32,// ->135773
/*135755*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*135757*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*135760*/            OPC_EmitMergeInputChains1_0,
/*135761*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (fadd:{ *:[v8f32] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1) - Complexity = 25
                      // Dst: (VADDPSZ256rmb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*135773*/          0, // EndSwitchType
/*135774*/        /*Scope*/ 46, /*->135821*/
/*135775*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*135777*/          OPC_MoveParent,
/*135778*/          OPC_RecordChild1, // #2 = $src1
/*135779*/          OPC_SwitchType /*2 cases */, 18, MVT::v2f64,// ->135800
/*135782*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*135784*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*135787*/            OPC_EmitMergeInputChains1_0,
/*135788*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (fadd:{ *:[v2f64] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1) - Complexity = 25
                      // Dst: (VADDPDZ128rmb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*135800*/          /*SwitchType*/ 18, MVT::v4f64,// ->135820
/*135802*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*135804*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*135807*/            OPC_EmitMergeInputChains1_0,
/*135808*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (fadd:{ *:[v4f64] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1) - Complexity = 25
                      // Dst: (VADDPDZ256rmb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*135820*/          0, // EndSwitchType
/*135821*/        0, /*End of Scope*/
/*135822*/      0, // EndSwitchOpcode
/*135823*/    /*Scope*/ 26|128,1/*154*/, /*->135979*/
/*135825*/      OPC_RecordChild0, // #0 = $src1
/*135826*/      OPC_RecordChild1, // #1 = $src2
/*135827*/      OPC_SwitchType /*6 cases */, 35, MVT::v4f32,// ->135865
/*135830*/        OPC_Scope, 10, /*->135842*/ // 3 children in Scope
/*135832*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*135834*/          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)
/*135842*/        /*Scope*/ 10, /*->135853*/
/*135843*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*135845*/          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)
/*135853*/        /*Scope*/ 10, /*->135864*/
/*135854*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*135856*/          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)
/*135864*/        0, /*End of Scope*/
/*135865*/      /*SwitchType*/ 35, MVT::v2f64,// ->135902
/*135867*/        OPC_Scope, 10, /*->135879*/ // 3 children in Scope
/*135869*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*135871*/          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)
/*135879*/        /*Scope*/ 10, /*->135890*/
/*135880*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*135882*/          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)
/*135890*/        /*Scope*/ 10, /*->135901*/
/*135891*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*135893*/          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)
/*135901*/        0, /*End of Scope*/
/*135902*/      /*SwitchType*/ 24, MVT::v8f32,// ->135928
/*135904*/        OPC_Scope, 10, /*->135916*/ // 2 children in Scope
/*135906*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*135908*/          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)
/*135916*/        /*Scope*/ 10, /*->135927*/
/*135917*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*135919*/          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)
/*135927*/        0, /*End of Scope*/
/*135928*/      /*SwitchType*/ 24, MVT::v4f64,// ->135954
/*135930*/        OPC_Scope, 10, /*->135942*/ // 2 children in Scope
/*135932*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*135934*/          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)
/*135942*/        /*Scope*/ 10, /*->135953*/
/*135943*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*135945*/          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)
/*135953*/        0, /*End of Scope*/
/*135954*/      /*SwitchType*/ 10, MVT::v16f32,// ->135966
/*135956*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*135958*/        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)
/*135966*/      /*SwitchType*/ 10, MVT::v8f64,// ->135978
/*135968*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*135970*/        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)
/*135978*/      0, // EndSwitchType
/*135979*/    0, /*End of Scope*/
/*135980*/  /*SwitchOpcode*/ 67|128,17/*2243*/, TARGET_VAL(ISD::STRICT_FADD),// ->138227
/*135984*/    OPC_RecordNode, // #0 = 'strict_fadd' chained node
/*135985*/    OPC_Scope, 71|128,2/*327*/, /*->136315*/ // 7 children in Scope
/*135988*/      OPC_RecordChild1, // #1 = $src1
/*135989*/      OPC_MoveChild2,
/*135990*/      OPC_SwitchOpcode /*2 cases */, 17|128,1/*145*/, TARGET_VAL(ISD::LOAD),// ->136140
/*135995*/        OPC_RecordMemRef,
/*135996*/        OPC_RecordNode, // #2 = 'ld' chained node
/*135997*/        OPC_CheckFoldableChainNode,
/*135998*/        OPC_RecordChild1, // #3 = $src2
/*135999*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*136001*/        OPC_Scope, 53, /*->136056*/ // 2 children in Scope
/*136003*/          OPC_CheckPredicate, 9, // Predicate_load
/*136005*/          OPC_MoveParent,
/*136006*/          OPC_SwitchType /*2 cases */, 22, MVT::f32,// ->136031
/*136009*/            OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*136011*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*136014*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*136018*/            OPC_MorphNodeTo2, TARGET_VAL(X86::ADD_Fp32m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f32, MVT::i16, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                      // Src: (strict_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)
/*136031*/          /*SwitchType*/ 22, MVT::f64,// ->136055
/*136033*/            OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*136035*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*136038*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*136042*/            OPC_MorphNodeTo2, TARGET_VAL(X86::ADD_Fp64m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, MVT::i16, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                      // Src: (strict_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)
/*136055*/          0, // EndSwitchType
/*136056*/        /*Scope*/ 82, /*->136139*/
/*136057*/          OPC_CheckPredicate, 70, // Predicate_extload
/*136059*/          OPC_Scope, 51, /*->136112*/ // 2 children in Scope
/*136061*/            OPC_CheckPredicate, 21, // Predicate_extloadf32
/*136063*/            OPC_MoveParent,
/*136064*/            OPC_SwitchType /*2 cases */, 22, MVT::f64,// ->136089
/*136067*/              OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*136069*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*136072*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*136076*/              OPC_MorphNodeTo2, TARGET_VAL(X86::ADD_Fp64m32), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::f64, MVT::i16, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_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)
/*136089*/            /*SwitchType*/ 20, MVT::f80,// ->136111
/*136091*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*136094*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*136098*/              OPC_MorphNodeTo2, TARGET_VAL(X86::ADD_Fp80m32), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::f80, MVT::i16, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_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)
/*136111*/            0, // EndSwitchType
/*136112*/          /*Scope*/ 25, /*->136138*/
/*136113*/            OPC_CheckPredicate, 22, // Predicate_extloadf64
/*136115*/            OPC_MoveParent,
/*136116*/            OPC_CheckType, MVT::f80,
/*136118*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*136121*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*136125*/            OPC_MorphNodeTo2, TARGET_VAL(X86::ADD_Fp80m64), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f80, MVT::i16, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                      // Src: (strict_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)
/*136138*/          0, /*End of Scope*/
/*136139*/        0, /*End of Scope*/
/*136140*/      /*SwitchOpcode*/ 42|128,1/*170*/, TARGET_VAL(X86ISD::FILD),// ->136314
/*136144*/        OPC_RecordMemRef,
/*136145*/        OPC_RecordNode, // #2 = 'X86fild' chained node
/*136146*/        OPC_CheckFoldableChainNode,
/*136147*/        OPC_RecordChild1, // #3 = $src2
/*136148*/        OPC_Scope, 27, /*->136177*/ // 6 children in Scope
/*136150*/          OPC_CheckPredicate, 62, // Predicate_X86fild16
/*136152*/          OPC_MoveParent,
/*136153*/          OPC_CheckType, MVT::f32,
/*136155*/          OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*136157*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*136160*/          OPC_EmitMergeInputChains, 2, 0, 2, 
/*136164*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADD_FpI16m32), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, MVT::i16, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                    // Src: (strict_fadd:{ *:[f32] } RFP32:{ *:[f32] }:$src1, (X86fild:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86fild16>>) - Complexity = 25
                    // Dst: (ADD_FpI16m32:{ *:[f32] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*136177*/        /*Scope*/ 27, /*->136205*/
/*136178*/          OPC_CheckPredicate, 63, // Predicate_X86fild32
/*136180*/          OPC_MoveParent,
/*136181*/          OPC_CheckType, MVT::f32,
/*136183*/          OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*136185*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*136188*/          OPC_EmitMergeInputChains, 2, 0, 2, 
/*136192*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADD_FpI32m32), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, MVT::i16, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                    // Src: (strict_fadd:{ *:[f32] } RFP32:{ *:[f32] }:$src1, (X86fild:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86fild32>>) - Complexity = 25
                    // Dst: (ADD_FpI32m32:{ *:[f32] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*136205*/        /*Scope*/ 27, /*->136233*/
/*136206*/          OPC_CheckPredicate, 62, // Predicate_X86fild16
/*136208*/          OPC_MoveParent,
/*136209*/          OPC_CheckType, MVT::f64,
/*136211*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*136213*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*136216*/          OPC_EmitMergeInputChains, 2, 0, 2, 
/*136220*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADD_FpI16m64), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, MVT::i16, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                    // Src: (strict_fadd:{ *:[f64] } RFP64:{ *:[f64] }:$src1, (X86fild:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86fild16>>) - Complexity = 25
                    // Dst: (ADD_FpI16m64:{ *:[f64] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*136233*/        /*Scope*/ 27, /*->136261*/
/*136234*/          OPC_CheckPredicate, 63, // Predicate_X86fild32
/*136236*/          OPC_MoveParent,
/*136237*/          OPC_CheckType, MVT::f64,
/*136239*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*136241*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*136244*/          OPC_EmitMergeInputChains, 2, 0, 2, 
/*136248*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADD_FpI32m64), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, MVT::i16, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                    // Src: (strict_fadd:{ *:[f64] } RFP64:{ *:[f64] }:$src1, (X86fild:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86fild32>>) - Complexity = 25
                    // Dst: (ADD_FpI32m64:{ *:[f64] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*136261*/        /*Scope*/ 25, /*->136287*/
/*136262*/          OPC_CheckPredicate, 62, // Predicate_X86fild16
/*136264*/          OPC_MoveParent,
/*136265*/          OPC_CheckType, MVT::f80,
/*136267*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*136270*/          OPC_EmitMergeInputChains, 2, 0, 2, 
/*136274*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADD_FpI16m80), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f80, MVT::i16, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                    // Src: (strict_fadd:{ *:[f80] } RFP80:{ *:[f80] }:$src1, (X86fild:{ *:[f80] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86fild16>>) - Complexity = 25
                    // Dst: (ADD_FpI16m80:{ *:[f80] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, addr:{ *:[iPTR] }:$src2)
/*136287*/        /*Scope*/ 25, /*->136313*/
/*136288*/          OPC_CheckPredicate, 63, // Predicate_X86fild32
/*136290*/          OPC_MoveParent,
/*136291*/          OPC_CheckType, MVT::f80,
/*136293*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*136296*/          OPC_EmitMergeInputChains, 2, 0, 2, 
/*136300*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADD_FpI32m80), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f80, MVT::i16, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                    // Src: (strict_fadd:{ *:[f80] } RFP80:{ *:[f80] }:$src1, (X86fild:{ *:[f80] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86fild32>>) - Complexity = 25
                    // Dst: (ADD_FpI32m80:{ *:[f80] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, addr:{ *:[iPTR] }:$src2)
/*136313*/        0, /*End of Scope*/
/*136314*/      0, // EndSwitchOpcode
/*136315*/    /*Scope*/ 79|128,2/*335*/, /*->136652*/
/*136317*/      OPC_MoveChild1,
/*136318*/      OPC_SwitchOpcode /*2 cases */, 20|128,1/*148*/, TARGET_VAL(ISD::LOAD),// ->136471
/*136323*/        OPC_RecordMemRef,
/*136324*/        OPC_RecordNode, // #1 = 'ld' chained node
/*136325*/        OPC_CheckFoldableChainNode,
/*136326*/        OPC_RecordChild1, // #2 = $src2
/*136327*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*136329*/        OPC_Scope, 54, /*->136385*/ // 2 children in Scope
/*136331*/          OPC_CheckPredicate, 9, // Predicate_load
/*136333*/          OPC_MoveParent,
/*136334*/          OPC_RecordChild2, // #3 = $src1
/*136335*/          OPC_SwitchType /*2 cases */, 22, MVT::f32,// ->136360
/*136338*/            OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*136340*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*136343*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*136347*/            OPC_MorphNodeTo2, TARGET_VAL(X86::ADD_Fp32m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f32, MVT::i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (strict_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)
/*136360*/          /*SwitchType*/ 22, MVT::f64,// ->136384
/*136362*/            OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*136364*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*136367*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*136371*/            OPC_MorphNodeTo2, TARGET_VAL(X86::ADD_Fp64m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, MVT::i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (strict_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)
/*136384*/          0, // EndSwitchType
/*136385*/        /*Scope*/ 84, /*->136470*/
/*136386*/          OPC_CheckPredicate, 70, // Predicate_extload
/*136388*/          OPC_Scope, 52, /*->136442*/ // 2 children in Scope
/*136390*/            OPC_CheckPredicate, 21, // Predicate_extloadf32
/*136392*/            OPC_MoveParent,
/*136393*/            OPC_RecordChild2, // #3 = $src1
/*136394*/            OPC_SwitchType /*2 cases */, 22, MVT::f64,// ->136419
/*136397*/              OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*136399*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*136402*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*136406*/              OPC_MorphNodeTo2, TARGET_VAL(X86::ADD_Fp64m32), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::f64, MVT::i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                        // Src: (strict_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)
/*136419*/            /*SwitchType*/ 20, MVT::f80,// ->136441
/*136421*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*136424*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*136428*/              OPC_MorphNodeTo2, TARGET_VAL(X86::ADD_Fp80m32), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::f80, MVT::i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                        // Src: (strict_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)
/*136441*/            0, // EndSwitchType
/*136442*/          /*Scope*/ 26, /*->136469*/
/*136443*/            OPC_CheckPredicate, 22, // Predicate_extloadf64
/*136445*/            OPC_MoveParent,
/*136446*/            OPC_RecordChild2, // #3 = $src1
/*136447*/            OPC_CheckType, MVT::f80,
/*136449*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*136452*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*136456*/            OPC_MorphNodeTo2, TARGET_VAL(X86::ADD_Fp80m64), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f80, MVT::i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (strict_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)
/*136469*/          0, /*End of Scope*/
/*136470*/        0, /*End of Scope*/
/*136471*/      /*SwitchOpcode*/ 48|128,1/*176*/, TARGET_VAL(X86ISD::FILD),// ->136651
/*136475*/        OPC_RecordMemRef,
/*136476*/        OPC_RecordNode, // #1 = 'X86fild' chained node
/*136477*/        OPC_CheckFoldableChainNode,
/*136478*/        OPC_RecordChild1, // #2 = $src2
/*136479*/        OPC_Scope, 28, /*->136509*/ // 6 children in Scope
/*136481*/          OPC_CheckPredicate, 62, // Predicate_X86fild16
/*136483*/          OPC_MoveParent,
/*136484*/          OPC_RecordChild2, // #3 = $src1
/*136485*/          OPC_CheckType, MVT::f32,
/*136487*/          OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*136489*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*136492*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*136496*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADD_FpI16m32), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, MVT::i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (strict_fadd:{ *:[f32] } (X86fild:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86fild16>>, RFP32:{ *:[f32] }:$src1) - Complexity = 25
                    // Dst: (ADD_FpI16m32:{ *:[f32] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*136509*/        /*Scope*/ 28, /*->136538*/
/*136510*/          OPC_CheckPredicate, 63, // Predicate_X86fild32
/*136512*/          OPC_MoveParent,
/*136513*/          OPC_RecordChild2, // #3 = $src1
/*136514*/          OPC_CheckType, MVT::f32,
/*136516*/          OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*136518*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*136521*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*136525*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADD_FpI32m32), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, MVT::i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (strict_fadd:{ *:[f32] } (X86fild:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86fild32>>, RFP32:{ *:[f32] }:$src1) - Complexity = 25
                    // Dst: (ADD_FpI32m32:{ *:[f32] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*136538*/        /*Scope*/ 28, /*->136567*/
/*136539*/          OPC_CheckPredicate, 62, // Predicate_X86fild16
/*136541*/          OPC_MoveParent,
/*136542*/          OPC_RecordChild2, // #3 = $src1
/*136543*/          OPC_CheckType, MVT::f64,
/*136545*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*136547*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*136550*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*136554*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADD_FpI16m64), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, MVT::i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (strict_fadd:{ *:[f64] } (X86fild:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86fild16>>, RFP64:{ *:[f64] }:$src1) - Complexity = 25
                    // Dst: (ADD_FpI16m64:{ *:[f64] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*136567*/        /*Scope*/ 28, /*->136596*/
/*136568*/          OPC_CheckPredicate, 63, // Predicate_X86fild32
/*136570*/          OPC_MoveParent,
/*136571*/          OPC_RecordChild2, // #3 = $src1
/*136572*/          OPC_CheckType, MVT::f64,
/*136574*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*136576*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*136579*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*136583*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADD_FpI32m64), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, MVT::i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (strict_fadd:{ *:[f64] } (X86fild:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86fild32>>, RFP64:{ *:[f64] }:$src1) - Complexity = 25
                    // Dst: (ADD_FpI32m64:{ *:[f64] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*136596*/        /*Scope*/ 26, /*->136623*/
/*136597*/          OPC_CheckPredicate, 62, // Predicate_X86fild16
/*136599*/          OPC_MoveParent,
/*136600*/          OPC_RecordChild2, // #3 = $src1
/*136601*/          OPC_CheckType, MVT::f80,
/*136603*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*136606*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*136610*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADD_FpI16m80), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f80, MVT::i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (strict_fadd:{ *:[f80] } (X86fild:{ *:[f80] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86fild16>>, RFP80:{ *:[f80] }:$src1) - Complexity = 25
                    // Dst: (ADD_FpI16m80:{ *:[f80] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, addr:{ *:[iPTR] }:$src2)
/*136623*/        /*Scope*/ 26, /*->136650*/
/*136624*/          OPC_CheckPredicate, 63, // Predicate_X86fild32
/*136626*/          OPC_MoveParent,
/*136627*/          OPC_RecordChild2, // #3 = $src1
/*136628*/          OPC_CheckType, MVT::f80,
/*136630*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*136633*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*136637*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADD_FpI32m80), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f80, MVT::i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (strict_fadd:{ *:[f80] } (X86fild:{ *:[f80] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86fild32>>, RFP80:{ *:[f80] }:$src1) - Complexity = 25
                    // Dst: (ADD_FpI32m80:{ *:[f80] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, addr:{ *:[iPTR] }:$src2)
/*136650*/        0, /*End of Scope*/
/*136651*/      0, // EndSwitchOpcode
/*136652*/    /*Scope*/ 28|128,1/*156*/, /*->136810*/
/*136654*/      OPC_RecordChild1, // #1 = $src1
/*136655*/      OPC_MoveChild2,
/*136656*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*136659*/      OPC_RecordMemRef,
/*136660*/      OPC_RecordNode, // #2 = 'ld' chained node
/*136661*/      OPC_CheckFoldableChainNode,
/*136662*/      OPC_RecordChild1, // #3 = $src2
/*136663*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*136665*/      OPC_CheckPredicate, 9, // Predicate_load
/*136667*/      OPC_MoveParent,
/*136668*/      OPC_SwitchType /*2 cases */, 68, MVT::f32,// ->136739
/*136671*/        OPC_Scope, 21, /*->136694*/ // 3 children in Scope
/*136673*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*136675*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*136678*/          OPC_EmitMergeInputChains, 2, 0, 2, 
/*136682*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                    // Src: (strict_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)
/*136694*/        /*Scope*/ 21, /*->136716*/
/*136695*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*136697*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*136700*/          OPC_EmitMergeInputChains, 2, 0, 2, 
/*136704*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ADDSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                    // Src: (strict_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)
/*136716*/        /*Scope*/ 21, /*->136738*/
/*136717*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*136719*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*136722*/          OPC_EmitMergeInputChains, 2, 0, 2, 
/*136726*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                    // Src: (strict_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)
/*136738*/        0, /*End of Scope*/
/*136739*/      /*SwitchType*/ 68, MVT::f64,// ->136809
/*136741*/        OPC_Scope, 21, /*->136764*/ // 3 children in Scope
/*136743*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*136745*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*136748*/          OPC_EmitMergeInputChains, 2, 0, 2, 
/*136752*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                    // Src: (strict_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)
/*136764*/        /*Scope*/ 21, /*->136786*/
/*136765*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*136767*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*136770*/          OPC_EmitMergeInputChains, 2, 0, 2, 
/*136774*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ADDSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                    // Src: (strict_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)
/*136786*/        /*Scope*/ 21, /*->136808*/
/*136787*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*136789*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*136792*/          OPC_EmitMergeInputChains, 2, 0, 2, 
/*136796*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                    // Src: (strict_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)
/*136808*/        0, /*End of Scope*/
/*136809*/      0, // EndSwitchType
/*136810*/    /*Scope*/ 28|128,1/*156*/, /*->136968*/
/*136812*/      OPC_MoveChild1,
/*136813*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*136816*/      OPC_RecordMemRef,
/*136817*/      OPC_RecordNode, // #1 = 'ld' chained node
/*136818*/      OPC_CheckFoldableChainNode,
/*136819*/      OPC_RecordChild1, // #2 = $src2
/*136820*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*136822*/      OPC_CheckPredicate, 9, // Predicate_load
/*136824*/      OPC_MoveParent,
/*136825*/      OPC_RecordChild2, // #3 = $src1
/*136826*/      OPC_SwitchType /*2 cases */, 68, MVT::f32,// ->136897
/*136829*/        OPC_Scope, 21, /*->136852*/ // 3 children in Scope
/*136831*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*136833*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*136836*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*136840*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (strict_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)
/*136852*/        /*Scope*/ 21, /*->136874*/
/*136853*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*136855*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*136858*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*136862*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ADDSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (strict_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)
/*136874*/        /*Scope*/ 21, /*->136896*/
/*136875*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*136877*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*136880*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*136884*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (strict_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)
/*136896*/        0, /*End of Scope*/
/*136897*/      /*SwitchType*/ 68, MVT::f64,// ->136967
/*136899*/        OPC_Scope, 21, /*->136922*/ // 3 children in Scope
/*136901*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*136903*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*136906*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*136910*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (strict_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)
/*136922*/        /*Scope*/ 21, /*->136944*/
/*136923*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*136925*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*136928*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*136932*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ADDSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (strict_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)
/*136944*/        /*Scope*/ 21, /*->136966*/
/*136945*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*136947*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*136950*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*136954*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (strict_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)
/*136966*/        0, /*End of Scope*/
/*136967*/      0, // EndSwitchType
/*136968*/    /*Scope*/ 91|128,4/*603*/, /*->137573*/
/*136970*/      OPC_RecordChild1, // #1 = $src1
/*136971*/      OPC_Scope, 121, /*->137094*/ // 2 children in Scope
/*136973*/        OPC_RecordChild2, // #2 = $src2
/*136974*/        OPC_SwitchType /*3 cases */, 51, MVT::f32,// ->137028
/*136977*/          OPC_Scope, 12, /*->136991*/ // 4 children in Scope
/*136979*/            OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*136981*/            OPC_EmitMergeInputChains1_0,
/*136982*/            OPC_MorphNodeTo2, TARGET_VAL(X86::ADD_Fp32), 0|OPFL_Chain,
                          MVT::f32, MVT::i16, 2/*#Ops*/, 1, 2, 
                      // Src: (strict_fadd:{ *:[f32] } RFP32:{ *:[f32] }:$src1, RFP32:{ *:[f32] }:$src2) - Complexity = 3
                      // Dst: (ADD_Fp32:{ *:[f32] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, RFP32:{ *:[f32] }:$src2)
/*136991*/          /*Scope*/ 11, /*->137003*/
/*136992*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*136994*/            OPC_EmitMergeInputChains1_0,
/*136995*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSSrr), 0|OPFL_Chain,
                          MVT::f32, 2/*#Ops*/, 1, 2, 
                      // Src: (strict_fadd:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2) - Complexity = 3
                      // Dst: (VADDSSrr:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2)
/*137003*/          /*Scope*/ 11, /*->137015*/
/*137004*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*137006*/            OPC_EmitMergeInputChains1_0,
/*137007*/            OPC_MorphNodeTo1, TARGET_VAL(X86::ADDSSrr), 0|OPFL_Chain,
                          MVT::f32, 2/*#Ops*/, 1, 2, 
                      // Src: (strict_fadd:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2) - Complexity = 3
                      // Dst: (ADDSSrr:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2)
/*137015*/          /*Scope*/ 11, /*->137027*/
/*137016*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*137018*/            OPC_EmitMergeInputChains1_0,
/*137019*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSSZrr), 0|OPFL_Chain,
                          MVT::f32, 2/*#Ops*/, 1, 2, 
                      // Src: (strict_fadd:{ *:[f32] } FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2) - Complexity = 3
                      // Dst: (VADDSSZrr:{ *:[f32] } FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2)
/*137027*/          0, /*End of Scope*/
/*137028*/        /*SwitchType*/ 51, MVT::f64,// ->137081
/*137030*/          OPC_Scope, 12, /*->137044*/ // 4 children in Scope
/*137032*/            OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*137034*/            OPC_EmitMergeInputChains1_0,
/*137035*/            OPC_MorphNodeTo2, TARGET_VAL(X86::ADD_Fp64), 0|OPFL_Chain,
                          MVT::f64, MVT::i16, 2/*#Ops*/, 1, 2, 
                      // Src: (strict_fadd:{ *:[f64] } RFP64:{ *:[f64] }:$src1, RFP64:{ *:[f64] }:$src2) - Complexity = 3
                      // Dst: (ADD_Fp64:{ *:[f64] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, RFP64:{ *:[f64] }:$src2)
/*137044*/          /*Scope*/ 11, /*->137056*/
/*137045*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*137047*/            OPC_EmitMergeInputChains1_0,
/*137048*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSDrr), 0|OPFL_Chain,
                          MVT::f64, 2/*#Ops*/, 1, 2, 
                      // Src: (strict_fadd:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2) - Complexity = 3
                      // Dst: (VADDSDrr:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2)
/*137056*/          /*Scope*/ 11, /*->137068*/
/*137057*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*137059*/            OPC_EmitMergeInputChains1_0,
/*137060*/            OPC_MorphNodeTo1, TARGET_VAL(X86::ADDSDrr), 0|OPFL_Chain,
                          MVT::f64, 2/*#Ops*/, 1, 2, 
                      // Src: (strict_fadd:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2) - Complexity = 3
                      // Dst: (ADDSDrr:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2)
/*137068*/          /*Scope*/ 11, /*->137080*/
/*137069*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*137071*/            OPC_EmitMergeInputChains1_0,
/*137072*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSDZrr), 0|OPFL_Chain,
                          MVT::f64, 2/*#Ops*/, 1, 2, 
                      // Src: (strict_fadd:{ *:[f64] } FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2) - Complexity = 3
                      // Dst: (VADDSDZrr:{ *:[f64] } FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2)
/*137080*/          0, /*End of Scope*/
/*137081*/        /*SwitchType*/ 10, MVT::f80,// ->137093
/*137083*/          OPC_EmitMergeInputChains1_0,
/*137084*/          OPC_MorphNodeTo2, TARGET_VAL(X86::ADD_Fp80), 0|OPFL_Chain,
                        MVT::f80, MVT::i16, 2/*#Ops*/, 1, 2, 
                    // Src: (strict_fadd:{ *:[f80] } RFP80:{ *:[f80] }:$src1, RFP80:{ *:[f80] }:$src2) - Complexity = 3
                    // Dst: (ADD_Fp80:{ *:[f80] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, RFP80:{ *:[f80] }:$src2)
/*137093*/        0, // EndSwitchType
/*137094*/      /*Scope*/ 92|128,3/*476*/, /*->137572*/
/*137096*/        OPC_MoveChild2,
/*137097*/        OPC_SwitchOpcode /*2 cases */, 45|128,2/*301*/, TARGET_VAL(ISD::LOAD),// ->137403
/*137102*/          OPC_RecordMemRef,
/*137103*/          OPC_RecordNode, // #2 = 'ld' chained node
/*137104*/          OPC_CheckFoldableChainNode,
/*137105*/          OPC_RecordChild1, // #3 = $src2
/*137106*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*137108*/          OPC_CheckPredicate, 9, // Predicate_load
/*137110*/          OPC_Scope, 95, /*->137207*/ // 3 children in Scope
/*137112*/            OPC_MoveParent,
/*137113*/            OPC_SwitchType /*4 cases */, 21, MVT::v4f32,// ->137137
/*137116*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*137118*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*137121*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*137125*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_fadd:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VADDPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*137137*/            /*SwitchType*/ 21, MVT::v2f64,// ->137160
/*137139*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*137141*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*137144*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*137148*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_fadd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VADDPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*137160*/            /*SwitchType*/ 21, MVT::v8f32,// ->137183
/*137162*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*137164*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*137167*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*137171*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_fadd:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VADDPSYrm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*137183*/            /*SwitchType*/ 21, MVT::v4f64,// ->137206
/*137185*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*137187*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*137190*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*137194*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_fadd:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VADDPDYrm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*137206*/            0, // EndSwitchType
/*137207*/          /*Scope*/ 51, /*->137259*/
/*137208*/            OPC_CheckPredicate, 39, // Predicate_memop
/*137210*/            OPC_MoveParent,
/*137211*/            OPC_SwitchType /*2 cases */, 21, MVT::v4f32,// ->137235
/*137214*/              OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*137216*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*137219*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*137223*/              OPC_MorphNodeTo1, TARGET_VAL(X86::ADDPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_fadd:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                        // Dst: (ADDPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*137235*/            /*SwitchType*/ 21, MVT::v2f64,// ->137258
/*137237*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*137239*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*137242*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*137246*/              OPC_MorphNodeTo1, TARGET_VAL(X86::ADDPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_fadd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                        // Dst: (ADDPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*137258*/            0, // EndSwitchType
/*137259*/          /*Scope*/ 13|128,1/*141*/, /*->137402*/
/*137261*/            OPC_MoveParent,
/*137262*/            OPC_SwitchType /*6 cases */, 21, MVT::v16f32,// ->137286
/*137265*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*137267*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*137270*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*137274*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_fadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VADDPSZrm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*137286*/            /*SwitchType*/ 21, MVT::v8f64,// ->137309
/*137288*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*137290*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*137293*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*137297*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_fadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VADDPDZrm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*137309*/            /*SwitchType*/ 21, MVT::v4f32,// ->137332
/*137311*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*137313*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*137316*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*137320*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_fadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VADDPSZ128rm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*137332*/            /*SwitchType*/ 21, MVT::v8f32,// ->137355
/*137334*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*137336*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*137339*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*137343*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_fadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VADDPSZ256rm:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*137355*/            /*SwitchType*/ 21, MVT::v2f64,// ->137378
/*137357*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*137359*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*137362*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*137366*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_fadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VADDPDZ128rm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*137378*/            /*SwitchType*/ 21, MVT::v4f64,// ->137401
/*137380*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*137382*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*137385*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*137389*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_fadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VADDPDZ256rm:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*137401*/            0, // EndSwitchType
/*137402*/          0, /*End of Scope*/
/*137403*/        /*SwitchOpcode*/ 36|128,1/*164*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->137571
/*137407*/          OPC_RecordMemRef,
/*137408*/          OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*137409*/          OPC_CheckFoldableChainNode,
/*137410*/          OPC_RecordChild1, // #3 = $src2
/*137411*/          OPC_Scope, 26, /*->137439*/ // 4 children in Scope
/*137413*/            OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*137415*/            OPC_MoveParent,
/*137416*/            OPC_CheckType, MVT::v16f32,
/*137418*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*137420*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*137423*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*137427*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                      // Src: (strict_fadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VADDPSZrmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*137439*/          /*Scope*/ 26, /*->137466*/
/*137440*/            OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*137442*/            OPC_MoveParent,
/*137443*/            OPC_CheckType, MVT::v8f64,
/*137445*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*137447*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*137450*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*137454*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                      // Src: (strict_fadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VADDPDZrmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*137466*/          /*Scope*/ 51, /*->137518*/
/*137467*/            OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*137469*/            OPC_MoveParent,
/*137470*/            OPC_SwitchType /*2 cases */, 21, MVT::v4f32,// ->137494
/*137473*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*137475*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*137478*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*137482*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_fadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VADDPSZ128rmb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*137494*/            /*SwitchType*/ 21, MVT::v8f32,// ->137517
/*137496*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*137498*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*137501*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*137505*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_fadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VADDPSZ256rmb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*137517*/            0, // EndSwitchType
/*137518*/          /*Scope*/ 51, /*->137570*/
/*137519*/            OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*137521*/            OPC_MoveParent,
/*137522*/            OPC_SwitchType /*2 cases */, 21, MVT::v2f64,// ->137546
/*137525*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*137527*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*137530*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*137534*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_fadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VADDPDZ128rmb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*137546*/            /*SwitchType*/ 21, MVT::v4f64,// ->137569
/*137548*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*137550*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*137553*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*137557*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_fadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VADDPDZ256rmb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*137569*/            0, // EndSwitchType
/*137570*/          0, /*End of Scope*/
/*137571*/        0, // EndSwitchOpcode
/*137572*/      0, /*End of Scope*/
/*137573*/    /*Scope*/ 99|128,3/*483*/, /*->138058*/
/*137575*/      OPC_MoveChild1,
/*137576*/      OPC_SwitchOpcode /*2 cases */, 48|128,2/*304*/, TARGET_VAL(ISD::LOAD),// ->137885
/*137581*/        OPC_RecordMemRef,
/*137582*/        OPC_RecordNode, // #1 = 'ld' chained node
/*137583*/        OPC_CheckFoldableChainNode,
/*137584*/        OPC_RecordChild1, // #2 = $src2
/*137585*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*137587*/        OPC_CheckPredicate, 9, // Predicate_load
/*137589*/        OPC_Scope, 96, /*->137687*/ // 3 children in Scope
/*137591*/          OPC_MoveParent,
/*137592*/          OPC_RecordChild2, // #3 = $src1
/*137593*/          OPC_SwitchType /*4 cases */, 21, MVT::v4f32,// ->137617
/*137596*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*137598*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*137601*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*137605*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (strict_fadd:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v4f32] }:$src1) - Complexity = 25
                      // Dst: (VADDPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*137617*/          /*SwitchType*/ 21, MVT::v2f64,// ->137640
/*137619*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*137621*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*137624*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*137628*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (strict_fadd:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v2f64] }:$src1) - Complexity = 25
                      // Dst: (VADDPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*137640*/          /*SwitchType*/ 21, MVT::v8f32,// ->137663
/*137642*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*137644*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*137647*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*137651*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (strict_fadd:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v8f32] }:$src1) - Complexity = 25
                      // Dst: (VADDPSYrm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*137663*/          /*SwitchType*/ 21, MVT::v4f64,// ->137686
/*137665*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*137667*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*137670*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*137674*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (strict_fadd:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v4f64] }:$src1) - Complexity = 25
                      // Dst: (VADDPDYrm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*137686*/          0, // EndSwitchType
/*137687*/        /*Scope*/ 52, /*->137740*/
/*137688*/          OPC_CheckPredicate, 39, // Predicate_memop
/*137690*/          OPC_MoveParent,
/*137691*/          OPC_RecordChild2, // #3 = $src1
/*137692*/          OPC_SwitchType /*2 cases */, 21, MVT::v4f32,// ->137716
/*137695*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*137697*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*137700*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*137704*/            OPC_MorphNodeTo1, TARGET_VAL(X86::ADDPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (strict_fadd:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:{ *:[v4f32] }:$src1) - Complexity = 25
                      // Dst: (ADDPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*137716*/          /*SwitchType*/ 21, MVT::v2f64,// ->137739
/*137718*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*137720*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*137723*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*137727*/            OPC_MorphNodeTo1, TARGET_VAL(X86::ADDPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (strict_fadd:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:{ *:[v2f64] }:$src1) - Complexity = 25
                      // Dst: (ADDPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*137739*/          0, // EndSwitchType
/*137740*/        /*Scope*/ 14|128,1/*142*/, /*->137884*/
/*137742*/          OPC_MoveParent,
/*137743*/          OPC_RecordChild2, // #3 = $src1
/*137744*/          OPC_SwitchType /*6 cases */, 21, MVT::v16f32,// ->137768
/*137747*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*137749*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*137752*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*137756*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (strict_fadd:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16f32] }:$src1) - Complexity = 25
                      // Dst: (VADDPSZrm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*137768*/          /*SwitchType*/ 21, MVT::v8f64,// ->137791
/*137770*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*137772*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*137775*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*137779*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (strict_fadd:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v8f64] }:$src1) - Complexity = 25
                      // Dst: (VADDPDZrm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*137791*/          /*SwitchType*/ 21, MVT::v4f32,// ->137814
/*137793*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*137795*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*137798*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*137802*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (strict_fadd:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4f32] }:$src1) - Complexity = 25
                      // Dst: (VADDPSZ128rm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*137814*/          /*SwitchType*/ 21, MVT::v8f32,// ->137837
/*137816*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*137818*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*137821*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*137825*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (strict_fadd:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8f32] }:$src1) - Complexity = 25
                      // Dst: (VADDPSZ256rm:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*137837*/          /*SwitchType*/ 21, MVT::v2f64,// ->137860
/*137839*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*137841*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*137844*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*137848*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (strict_fadd:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v2f64] }:$src1) - Complexity = 25
                      // Dst: (VADDPDZ128rm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*137860*/          /*SwitchType*/ 21, MVT::v4f64,// ->137883
/*137862*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*137864*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*137867*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*137871*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (strict_fadd:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v4f64] }:$src1) - Complexity = 25
                      // Dst: (VADDPDZ256rm:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*137883*/          0, // EndSwitchType
/*137884*/        0, /*End of Scope*/
/*137885*/      /*SwitchOpcode*/ 40|128,1/*168*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->138057
/*137889*/        OPC_RecordMemRef,
/*137890*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*137891*/        OPC_CheckFoldableChainNode,
/*137892*/        OPC_RecordChild1, // #2 = $src2
/*137893*/        OPC_Scope, 27, /*->137922*/ // 4 children in Scope
/*137895*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*137897*/          OPC_MoveParent,
/*137898*/          OPC_RecordChild2, // #3 = $src1
/*137899*/          OPC_CheckType, MVT::v16f32,
/*137901*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*137903*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*137906*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*137910*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (strict_fadd:{ *:[v16f32] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src1) - Complexity = 25
                    // Dst: (VADDPSZrmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*137922*/        /*Scope*/ 27, /*->137950*/
/*137923*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*137925*/          OPC_MoveParent,
/*137926*/          OPC_RecordChild2, // #3 = $src1
/*137927*/          OPC_CheckType, MVT::v8f64,
/*137929*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*137931*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*137934*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*137938*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (strict_fadd:{ *:[v8f64] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src1) - Complexity = 25
                    // Dst: (VADDPDZrmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*137950*/        /*Scope*/ 52, /*->138003*/
/*137951*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*137953*/          OPC_MoveParent,
/*137954*/          OPC_RecordChild2, // #3 = $src1
/*137955*/          OPC_SwitchType /*2 cases */, 21, MVT::v4f32,// ->137979
/*137958*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*137960*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*137963*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*137967*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (strict_fadd:{ *:[v4f32] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1) - Complexity = 25
                      // Dst: (VADDPSZ128rmb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*137979*/          /*SwitchType*/ 21, MVT::v8f32,// ->138002
/*137981*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*137983*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*137986*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*137990*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (strict_fadd:{ *:[v8f32] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1) - Complexity = 25
                      // Dst: (VADDPSZ256rmb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*138002*/          0, // EndSwitchType
/*138003*/        /*Scope*/ 52, /*->138056*/
/*138004*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*138006*/          OPC_MoveParent,
/*138007*/          OPC_RecordChild2, // #3 = $src1
/*138008*/          OPC_SwitchType /*2 cases */, 21, MVT::v2f64,// ->138032
/*138011*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*138013*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*138016*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*138020*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (strict_fadd:{ *:[v2f64] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1) - Complexity = 25
                      // Dst: (VADDPDZ128rmb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*138032*/          /*SwitchType*/ 21, MVT::v4f64,// ->138055
/*138034*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*138036*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*138039*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*138043*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (strict_fadd:{ *:[v4f64] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1) - Complexity = 25
                      // Dst: (VADDPDZ256rmb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*138055*/          0, // EndSwitchType
/*138056*/        0, /*End of Scope*/
/*138057*/      0, // EndSwitchOpcode
/*138058*/    /*Scope*/ 38|128,1/*166*/, /*->138226*/
/*138060*/      OPC_RecordChild1, // #1 = $src1
/*138061*/      OPC_RecordChild2, // #2 = $src2
/*138062*/      OPC_SwitchType /*6 cases */, 38, MVT::v4f32,// ->138103
/*138065*/        OPC_Scope, 11, /*->138078*/ // 3 children in Scope
/*138067*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*138069*/          OPC_EmitMergeInputChains1_0,
/*138070*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSrr), 0|OPFL_Chain,
                        MVT::v4f32, 2/*#Ops*/, 1, 2, 
                    // Src: (strict_fadd:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2) - Complexity = 3
                    // Dst: (VADDPSrr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2)
/*138078*/        /*Scope*/ 11, /*->138090*/
/*138079*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*138081*/          OPC_EmitMergeInputChains1_0,
/*138082*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ADDPSrr), 0|OPFL_Chain,
                        MVT::v4f32, 2/*#Ops*/, 1, 2, 
                    // Src: (strict_fadd:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2) - Complexity = 3
                    // Dst: (ADDPSrr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2)
/*138090*/        /*Scope*/ 11, /*->138102*/
/*138091*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*138093*/          OPC_EmitMergeInputChains1_0,
/*138094*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZ128rr), 0|OPFL_Chain,
                        MVT::v4f32, 2/*#Ops*/, 1, 2, 
                    // Src: (strict_fadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2) - Complexity = 3
                    // Dst: (VADDPSZ128rr:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*138102*/        0, /*End of Scope*/
/*138103*/      /*SwitchType*/ 38, MVT::v2f64,// ->138143
/*138105*/        OPC_Scope, 11, /*->138118*/ // 3 children in Scope
/*138107*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*138109*/          OPC_EmitMergeInputChains1_0,
/*138110*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDrr), 0|OPFL_Chain,
                        MVT::v2f64, 2/*#Ops*/, 1, 2, 
                    // Src: (strict_fadd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2) - Complexity = 3
                    // Dst: (VADDPDrr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2)
/*138118*/        /*Scope*/ 11, /*->138130*/
/*138119*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*138121*/          OPC_EmitMergeInputChains1_0,
/*138122*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ADDPDrr), 0|OPFL_Chain,
                        MVT::v2f64, 2/*#Ops*/, 1, 2, 
                    // Src: (strict_fadd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2) - Complexity = 3
                    // Dst: (ADDPDrr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2)
/*138130*/        /*Scope*/ 11, /*->138142*/
/*138131*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*138133*/          OPC_EmitMergeInputChains1_0,
/*138134*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZ128rr), 0|OPFL_Chain,
                        MVT::v2f64, 2/*#Ops*/, 1, 2, 
                    // Src: (strict_fadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2) - Complexity = 3
                    // Dst: (VADDPDZ128rr:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*138142*/        0, /*End of Scope*/
/*138143*/      /*SwitchType*/ 26, MVT::v8f32,// ->138171
/*138145*/        OPC_Scope, 11, /*->138158*/ // 2 children in Scope
/*138147*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*138149*/          OPC_EmitMergeInputChains1_0,
/*138150*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSYrr), 0|OPFL_Chain,
                        MVT::v8f32, 2/*#Ops*/, 1, 2, 
                    // Src: (strict_fadd:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2) - Complexity = 3
                    // Dst: (VADDPSYrr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2)
/*138158*/        /*Scope*/ 11, /*->138170*/
/*138159*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*138161*/          OPC_EmitMergeInputChains1_0,
/*138162*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZ256rr), 0|OPFL_Chain,
                        MVT::v8f32, 2/*#Ops*/, 1, 2, 
                    // Src: (strict_fadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2) - Complexity = 3
                    // Dst: (VADDPSZ256rr:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2)
/*138170*/        0, /*End of Scope*/
/*138171*/      /*SwitchType*/ 26, MVT::v4f64,// ->138199
/*138173*/        OPC_Scope, 11, /*->138186*/ // 2 children in Scope
/*138175*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*138177*/          OPC_EmitMergeInputChains1_0,
/*138178*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDYrr), 0|OPFL_Chain,
                        MVT::v4f64, 2/*#Ops*/, 1, 2, 
                    // Src: (strict_fadd:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2) - Complexity = 3
                    // Dst: (VADDPDYrr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2)
/*138186*/        /*Scope*/ 11, /*->138198*/
/*138187*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*138189*/          OPC_EmitMergeInputChains1_0,
/*138190*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZ256rr), 0|OPFL_Chain,
                        MVT::v4f64, 2/*#Ops*/, 1, 2, 
                    // Src: (strict_fadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2) - Complexity = 3
                    // Dst: (VADDPDZ256rr:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2)
/*138198*/        0, /*End of Scope*/
/*138199*/      /*SwitchType*/ 11, MVT::v16f32,// ->138212
/*138201*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*138203*/        OPC_EmitMergeInputChains1_0,
/*138204*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZrr), 0|OPFL_Chain,
                      MVT::v16f32, 2/*#Ops*/, 1, 2, 
                  // Src: (strict_fadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2) - Complexity = 3
                  // Dst: (VADDPSZrr:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*138212*/      /*SwitchType*/ 11, MVT::v8f64,// ->138225
/*138214*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*138216*/        OPC_EmitMergeInputChains1_0,
/*138217*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZrr), 0|OPFL_Chain,
                      MVT::v8f64, 2/*#Ops*/, 1, 2, 
                  // Src: (strict_fadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2) - Complexity = 3
                  // Dst: (VADDPDZrr:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*138225*/      0, // EndSwitchType
/*138226*/    0, /*End of Scope*/
/*138227*/  /*SwitchOpcode*/ 62|128,12/*1598*/, TARGET_VAL(ISD::STRICT_FSUB),// ->139829
/*138231*/    OPC_RecordNode, // #0 = 'strict_fsub' chained node
/*138232*/    OPC_Scope, 71|128,2/*327*/, /*->138562*/ // 3 children in Scope
/*138235*/      OPC_RecordChild1, // #1 = $src1
/*138236*/      OPC_MoveChild2,
/*138237*/      OPC_SwitchOpcode /*2 cases */, 17|128,1/*145*/, TARGET_VAL(ISD::LOAD),// ->138387
/*138242*/        OPC_RecordMemRef,
/*138243*/        OPC_RecordNode, // #2 = 'ld' chained node
/*138244*/        OPC_CheckFoldableChainNode,
/*138245*/        OPC_RecordChild1, // #3 = $src2
/*138246*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*138248*/        OPC_Scope, 53, /*->138303*/ // 2 children in Scope
/*138250*/          OPC_CheckPredicate, 9, // Predicate_load
/*138252*/          OPC_MoveParent,
/*138253*/          OPC_SwitchType /*2 cases */, 22, MVT::f32,// ->138278
/*138256*/            OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*138258*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*138261*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*138265*/            OPC_MorphNodeTo2, TARGET_VAL(X86::SUB_Fp32m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f32, MVT::i16, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                      // Src: (strict_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)
/*138278*/          /*SwitchType*/ 22, MVT::f64,// ->138302
/*138280*/            OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*138282*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*138285*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*138289*/            OPC_MorphNodeTo2, TARGET_VAL(X86::SUB_Fp64m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, MVT::i16, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                      // Src: (strict_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)
/*138302*/          0, // EndSwitchType
/*138303*/        /*Scope*/ 82, /*->138386*/
/*138304*/          OPC_CheckPredicate, 70, // Predicate_extload
/*138306*/          OPC_Scope, 51, /*->138359*/ // 2 children in Scope
/*138308*/            OPC_CheckPredicate, 21, // Predicate_extloadf32
/*138310*/            OPC_MoveParent,
/*138311*/            OPC_SwitchType /*2 cases */, 22, MVT::f64,// ->138336
/*138314*/              OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*138316*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*138319*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*138323*/              OPC_MorphNodeTo2, TARGET_VAL(X86::SUB_Fp64m32), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::f64, MVT::i16, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_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)
/*138336*/            /*SwitchType*/ 20, MVT::f80,// ->138358
/*138338*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*138341*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*138345*/              OPC_MorphNodeTo2, TARGET_VAL(X86::SUB_Fp80m32), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::f80, MVT::i16, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_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)
/*138358*/            0, // EndSwitchType
/*138359*/          /*Scope*/ 25, /*->138385*/
/*138360*/            OPC_CheckPredicate, 22, // Predicate_extloadf64
/*138362*/            OPC_MoveParent,
/*138363*/            OPC_CheckType, MVT::f80,
/*138365*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*138368*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*138372*/            OPC_MorphNodeTo2, TARGET_VAL(X86::SUB_Fp80m64), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f80, MVT::i16, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                      // Src: (strict_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)
/*138385*/          0, /*End of Scope*/
/*138386*/        0, /*End of Scope*/
/*138387*/      /*SwitchOpcode*/ 42|128,1/*170*/, TARGET_VAL(X86ISD::FILD),// ->138561
/*138391*/        OPC_RecordMemRef,
/*138392*/        OPC_RecordNode, // #2 = 'X86fild' chained node
/*138393*/        OPC_CheckFoldableChainNode,
/*138394*/        OPC_RecordChild1, // #3 = $src2
/*138395*/        OPC_Scope, 27, /*->138424*/ // 6 children in Scope
/*138397*/          OPC_CheckPredicate, 62, // Predicate_X86fild16
/*138399*/          OPC_MoveParent,
/*138400*/          OPC_CheckType, MVT::f32,
/*138402*/          OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*138404*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*138407*/          OPC_EmitMergeInputChains, 2, 0, 2, 
/*138411*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SUB_FpI16m32), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, MVT::i16, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                    // Src: (strict_fsub:{ *:[f32] } RFP32:{ *:[f32] }:$src1, (X86fild:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86fild16>>) - Complexity = 25
                    // Dst: (SUB_FpI16m32:{ *:[f32] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*138424*/        /*Scope*/ 27, /*->138452*/
/*138425*/          OPC_CheckPredicate, 63, // Predicate_X86fild32
/*138427*/          OPC_MoveParent,
/*138428*/          OPC_CheckType, MVT::f32,
/*138430*/          OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*138432*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*138435*/          OPC_EmitMergeInputChains, 2, 0, 2, 
/*138439*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SUB_FpI32m32), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, MVT::i16, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                    // Src: (strict_fsub:{ *:[f32] } RFP32:{ *:[f32] }:$src1, (X86fild:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86fild32>>) - Complexity = 25
                    // Dst: (SUB_FpI32m32:{ *:[f32] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*138452*/        /*Scope*/ 27, /*->138480*/
/*138453*/          OPC_CheckPredicate, 62, // Predicate_X86fild16
/*138455*/          OPC_MoveParent,
/*138456*/          OPC_CheckType, MVT::f64,
/*138458*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*138460*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*138463*/          OPC_EmitMergeInputChains, 2, 0, 2, 
/*138467*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SUB_FpI16m64), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, MVT::i16, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                    // Src: (strict_fsub:{ *:[f64] } RFP64:{ *:[f64] }:$src1, (X86fild:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86fild16>>) - Complexity = 25
                    // Dst: (SUB_FpI16m64:{ *:[f64] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*138480*/        /*Scope*/ 27, /*->138508*/
/*138481*/          OPC_CheckPredicate, 63, // Predicate_X86fild32
/*138483*/          OPC_MoveParent,
/*138484*/          OPC_CheckType, MVT::f64,
/*138486*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*138488*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*138491*/          OPC_EmitMergeInputChains, 2, 0, 2, 
/*138495*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SUB_FpI32m64), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, MVT::i16, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                    // Src: (strict_fsub:{ *:[f64] } RFP64:{ *:[f64] }:$src1, (X86fild:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86fild32>>) - Complexity = 25
                    // Dst: (SUB_FpI32m64:{ *:[f64] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*138508*/        /*Scope*/ 25, /*->138534*/
/*138509*/          OPC_CheckPredicate, 62, // Predicate_X86fild16
/*138511*/          OPC_MoveParent,
/*138512*/          OPC_CheckType, MVT::f80,
/*138514*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*138517*/          OPC_EmitMergeInputChains, 2, 0, 2, 
/*138521*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SUB_FpI16m80), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f80, MVT::i16, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                    // Src: (strict_fsub:{ *:[f80] } RFP80:{ *:[f80] }:$src1, (X86fild:{ *:[f80] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86fild16>>) - Complexity = 25
                    // Dst: (SUB_FpI16m80:{ *:[f80] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, addr:{ *:[iPTR] }:$src2)
/*138534*/        /*Scope*/ 25, /*->138560*/
/*138535*/          OPC_CheckPredicate, 63, // Predicate_X86fild32
/*138537*/          OPC_MoveParent,
/*138538*/          OPC_CheckType, MVT::f80,
/*138540*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*138543*/          OPC_EmitMergeInputChains, 2, 0, 2, 
/*138547*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SUB_FpI32m80), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f80, MVT::i16, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                    // Src: (strict_fsub:{ *:[f80] } RFP80:{ *:[f80] }:$src1, (X86fild:{ *:[f80] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86fild32>>) - Complexity = 25
                    // Dst: (SUB_FpI32m80:{ *:[f80] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, addr:{ *:[iPTR] }:$src2)
/*138560*/        0, /*End of Scope*/
/*138561*/      0, // EndSwitchOpcode
/*138562*/    /*Scope*/ 79|128,2/*335*/, /*->138899*/
/*138564*/      OPC_MoveChild1,
/*138565*/      OPC_SwitchOpcode /*2 cases */, 20|128,1/*148*/, TARGET_VAL(ISD::LOAD),// ->138718
/*138570*/        OPC_RecordMemRef,
/*138571*/        OPC_RecordNode, // #1 = 'ld' chained node
/*138572*/        OPC_CheckFoldableChainNode,
/*138573*/        OPC_RecordChild1, // #2 = $src2
/*138574*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*138576*/        OPC_Scope, 54, /*->138632*/ // 2 children in Scope
/*138578*/          OPC_CheckPredicate, 9, // Predicate_load
/*138580*/          OPC_MoveParent,
/*138581*/          OPC_RecordChild2, // #3 = $src1
/*138582*/          OPC_SwitchType /*2 cases */, 22, MVT::f32,// ->138607
/*138585*/            OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*138587*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*138590*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*138594*/            OPC_MorphNodeTo2, TARGET_VAL(X86::SUBR_Fp32m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f32, MVT::i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (strict_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)
/*138607*/          /*SwitchType*/ 22, MVT::f64,// ->138631
/*138609*/            OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*138611*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*138614*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*138618*/            OPC_MorphNodeTo2, TARGET_VAL(X86::SUBR_Fp64m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, MVT::i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (strict_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)
/*138631*/          0, // EndSwitchType
/*138632*/        /*Scope*/ 84, /*->138717*/
/*138633*/          OPC_CheckPredicate, 70, // Predicate_extload
/*138635*/          OPC_Scope, 52, /*->138689*/ // 2 children in Scope
/*138637*/            OPC_CheckPredicate, 21, // Predicate_extloadf32
/*138639*/            OPC_MoveParent,
/*138640*/            OPC_RecordChild2, // #3 = $src1
/*138641*/            OPC_SwitchType /*2 cases */, 22, MVT::f64,// ->138666
/*138644*/              OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*138646*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*138649*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*138653*/              OPC_MorphNodeTo2, TARGET_VAL(X86::SUBR_Fp64m32), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::f64, MVT::i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                        // Src: (strict_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)
/*138666*/            /*SwitchType*/ 20, MVT::f80,// ->138688
/*138668*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*138671*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*138675*/              OPC_MorphNodeTo2, TARGET_VAL(X86::SUBR_Fp80m32), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::f80, MVT::i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                        // Src: (strict_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)
/*138688*/            0, // EndSwitchType
/*138689*/          /*Scope*/ 26, /*->138716*/
/*138690*/            OPC_CheckPredicate, 22, // Predicate_extloadf64
/*138692*/            OPC_MoveParent,
/*138693*/            OPC_RecordChild2, // #3 = $src1
/*138694*/            OPC_CheckType, MVT::f80,
/*138696*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*138699*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*138703*/            OPC_MorphNodeTo2, TARGET_VAL(X86::SUBR_Fp80m64), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f80, MVT::i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (strict_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)
/*138716*/          0, /*End of Scope*/
/*138717*/        0, /*End of Scope*/
/*138718*/      /*SwitchOpcode*/ 48|128,1/*176*/, TARGET_VAL(X86ISD::FILD),// ->138898
/*138722*/        OPC_RecordMemRef,
/*138723*/        OPC_RecordNode, // #1 = 'X86fild' chained node
/*138724*/        OPC_CheckFoldableChainNode,
/*138725*/        OPC_RecordChild1, // #2 = $src2
/*138726*/        OPC_Scope, 28, /*->138756*/ // 6 children in Scope
/*138728*/          OPC_CheckPredicate, 62, // Predicate_X86fild16
/*138730*/          OPC_MoveParent,
/*138731*/          OPC_RecordChild2, // #3 = $src1
/*138732*/          OPC_CheckType, MVT::f32,
/*138734*/          OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*138736*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*138739*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*138743*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SUBR_FpI16m32), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, MVT::i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (strict_fsub:{ *:[f32] } (X86fild:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86fild16>>, RFP32:{ *:[f32] }:$src1) - Complexity = 25
                    // Dst: (SUBR_FpI16m32:{ *:[f32] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*138756*/        /*Scope*/ 28, /*->138785*/
/*138757*/          OPC_CheckPredicate, 63, // Predicate_X86fild32
/*138759*/          OPC_MoveParent,
/*138760*/          OPC_RecordChild2, // #3 = $src1
/*138761*/          OPC_CheckType, MVT::f32,
/*138763*/          OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*138765*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*138768*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*138772*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SUBR_FpI32m32), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, MVT::i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (strict_fsub:{ *:[f32] } (X86fild:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86fild32>>, RFP32:{ *:[f32] }:$src1) - Complexity = 25
                    // Dst: (SUBR_FpI32m32:{ *:[f32] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*138785*/        /*Scope*/ 28, /*->138814*/
/*138786*/          OPC_CheckPredicate, 62, // Predicate_X86fild16
/*138788*/          OPC_MoveParent,
/*138789*/          OPC_RecordChild2, // #3 = $src1
/*138790*/          OPC_CheckType, MVT::f64,
/*138792*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*138794*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*138797*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*138801*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SUBR_FpI16m64), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, MVT::i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (strict_fsub:{ *:[f64] } (X86fild:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86fild16>>, RFP64:{ *:[f64] }:$src1) - Complexity = 25
                    // Dst: (SUBR_FpI16m64:{ *:[f64] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*138814*/        /*Scope*/ 28, /*->138843*/
/*138815*/          OPC_CheckPredicate, 63, // Predicate_X86fild32
/*138817*/          OPC_MoveParent,
/*138818*/          OPC_RecordChild2, // #3 = $src1
/*138819*/          OPC_CheckType, MVT::f64,
/*138821*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*138823*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*138826*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*138830*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SUBR_FpI32m64), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, MVT::i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (strict_fsub:{ *:[f64] } (X86fild:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86fild32>>, RFP64:{ *:[f64] }:$src1) - Complexity = 25
                    // Dst: (SUBR_FpI32m64:{ *:[f64] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*138843*/        /*Scope*/ 26, /*->138870*/
/*138844*/          OPC_CheckPredicate, 62, // Predicate_X86fild16
/*138846*/          OPC_MoveParent,
/*138847*/          OPC_RecordChild2, // #3 = $src1
/*138848*/          OPC_CheckType, MVT::f80,
/*138850*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*138853*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*138857*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SUBR_FpI16m80), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f80, MVT::i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (strict_fsub:{ *:[f80] } (X86fild:{ *:[f80] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86fild16>>, RFP80:{ *:[f80] }:$src1) - Complexity = 25
                    // Dst: (SUBR_FpI16m80:{ *:[f80] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, addr:{ *:[iPTR] }:$src2)
/*138870*/        /*Scope*/ 26, /*->138897*/
/*138871*/          OPC_CheckPredicate, 63, // Predicate_X86fild32
/*138873*/          OPC_MoveParent,
/*138874*/          OPC_RecordChild2, // #3 = $src1
/*138875*/          OPC_CheckType, MVT::f80,
/*138877*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*138880*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*138884*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SUBR_FpI32m80), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f80, MVT::i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (strict_fsub:{ *:[f80] } (X86fild:{ *:[f80] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86fild32>>, RFP80:{ *:[f80] }:$src1) - Complexity = 25
                    // Dst: (SUBR_FpI32m80:{ *:[f80] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, addr:{ *:[iPTR] }:$src2)
/*138897*/        0, /*End of Scope*/
/*138898*/      0, // EndSwitchOpcode
/*138899*/    /*Scope*/ 31|128,7/*927*/, /*->139828*/
/*138901*/      OPC_RecordChild1, // #1 = $src1
/*138902*/      OPC_Scope, 27|128,1/*155*/, /*->139060*/ // 4 children in Scope
/*138905*/        OPC_MoveChild2,
/*138906*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*138909*/        OPC_RecordMemRef,
/*138910*/        OPC_RecordNode, // #2 = 'ld' chained node
/*138911*/        OPC_CheckFoldableChainNode,
/*138912*/        OPC_RecordChild1, // #3 = $src2
/*138913*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*138915*/        OPC_CheckPredicate, 9, // Predicate_load
/*138917*/        OPC_MoveParent,
/*138918*/        OPC_SwitchType /*2 cases */, 68, MVT::f32,// ->138989
/*138921*/          OPC_Scope, 21, /*->138944*/ // 3 children in Scope
/*138923*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*138925*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*138928*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*138932*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f32, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                      // Src: (strict_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)
/*138944*/          /*Scope*/ 21, /*->138966*/
/*138945*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*138947*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*138950*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*138954*/            OPC_MorphNodeTo1, TARGET_VAL(X86::SUBSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f32, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                      // Src: (strict_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)
/*138966*/          /*Scope*/ 21, /*->138988*/
/*138967*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*138969*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*138972*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*138976*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f32, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                      // Src: (strict_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)
/*138988*/          0, /*End of Scope*/
/*138989*/        /*SwitchType*/ 68, MVT::f64,// ->139059
/*138991*/          OPC_Scope, 21, /*->139014*/ // 3 children in Scope
/*138993*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*138995*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*138998*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*139002*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                      // Src: (strict_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)
/*139014*/          /*Scope*/ 21, /*->139036*/
/*139015*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*139017*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*139020*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*139024*/            OPC_MorphNodeTo1, TARGET_VAL(X86::SUBSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                      // Src: (strict_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)
/*139036*/          /*Scope*/ 21, /*->139058*/
/*139037*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*139039*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*139042*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*139046*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                      // Src: (strict_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)
/*139058*/          0, /*End of Scope*/
/*139059*/        0, // EndSwitchType
/*139060*/      /*Scope*/ 121, /*->139182*/
/*139061*/        OPC_RecordChild2, // #2 = $src2
/*139062*/        OPC_SwitchType /*3 cases */, 51, MVT::f32,// ->139116
/*139065*/          OPC_Scope, 12, /*->139079*/ // 4 children in Scope
/*139067*/            OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*139069*/            OPC_EmitMergeInputChains1_0,
/*139070*/            OPC_MorphNodeTo2, TARGET_VAL(X86::SUB_Fp32), 0|OPFL_Chain,
                          MVT::f32, MVT::i16, 2/*#Ops*/, 1, 2, 
                      // Src: (strict_fsub:{ *:[f32] } RFP32:{ *:[f32] }:$src1, RFP32:{ *:[f32] }:$src2) - Complexity = 3
                      // Dst: (SUB_Fp32:{ *:[f32] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, RFP32:{ *:[f32] }:$src2)
/*139079*/          /*Scope*/ 11, /*->139091*/
/*139080*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*139082*/            OPC_EmitMergeInputChains1_0,
/*139083*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSSrr), 0|OPFL_Chain,
                          MVT::f32, 2/*#Ops*/, 1, 2, 
                      // Src: (strict_fsub:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2) - Complexity = 3
                      // Dst: (VSUBSSrr:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2)
/*139091*/          /*Scope*/ 11, /*->139103*/
/*139092*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*139094*/            OPC_EmitMergeInputChains1_0,
/*139095*/            OPC_MorphNodeTo1, TARGET_VAL(X86::SUBSSrr), 0|OPFL_Chain,
                          MVT::f32, 2/*#Ops*/, 1, 2, 
                      // Src: (strict_fsub:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2) - Complexity = 3
                      // Dst: (SUBSSrr:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2)
/*139103*/          /*Scope*/ 11, /*->139115*/
/*139104*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*139106*/            OPC_EmitMergeInputChains1_0,
/*139107*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSSZrr), 0|OPFL_Chain,
                          MVT::f32, 2/*#Ops*/, 1, 2, 
                      // Src: (strict_fsub:{ *:[f32] } FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2) - Complexity = 3
                      // Dst: (VSUBSSZrr:{ *:[f32] } FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2)
/*139115*/          0, /*End of Scope*/
/*139116*/        /*SwitchType*/ 51, MVT::f64,// ->139169
/*139118*/          OPC_Scope, 12, /*->139132*/ // 4 children in Scope
/*139120*/            OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*139122*/            OPC_EmitMergeInputChains1_0,
/*139123*/            OPC_MorphNodeTo2, TARGET_VAL(X86::SUB_Fp64), 0|OPFL_Chain,
                          MVT::f64, MVT::i16, 2/*#Ops*/, 1, 2, 
                      // Src: (strict_fsub:{ *:[f64] } RFP64:{ *:[f64] }:$src1, RFP64:{ *:[f64] }:$src2) - Complexity = 3
                      // Dst: (SUB_Fp64:{ *:[f64] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, RFP64:{ *:[f64] }:$src2)
/*139132*/          /*Scope*/ 11, /*->139144*/
/*139133*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*139135*/            OPC_EmitMergeInputChains1_0,
/*139136*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSDrr), 0|OPFL_Chain,
                          MVT::f64, 2/*#Ops*/, 1, 2, 
                      // Src: (strict_fsub:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2) - Complexity = 3
                      // Dst: (VSUBSDrr:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2)
/*139144*/          /*Scope*/ 11, /*->139156*/
/*139145*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*139147*/            OPC_EmitMergeInputChains1_0,
/*139148*/            OPC_MorphNodeTo1, TARGET_VAL(X86::SUBSDrr), 0|OPFL_Chain,
                          MVT::f64, 2/*#Ops*/, 1, 2, 
                      // Src: (strict_fsub:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2) - Complexity = 3
                      // Dst: (SUBSDrr:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2)
/*139156*/          /*Scope*/ 11, /*->139168*/
/*139157*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*139159*/            OPC_EmitMergeInputChains1_0,
/*139160*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSDZrr), 0|OPFL_Chain,
                          MVT::f64, 2/*#Ops*/, 1, 2, 
                      // Src: (strict_fsub:{ *:[f64] } FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2) - Complexity = 3
                      // Dst: (VSUBSDZrr:{ *:[f64] } FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2)
/*139168*/          0, /*End of Scope*/
/*139169*/        /*SwitchType*/ 10, MVT::f80,// ->139181
/*139171*/          OPC_EmitMergeInputChains1_0,
/*139172*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SUB_Fp80), 0|OPFL_Chain,
                        MVT::f80, MVT::i16, 2/*#Ops*/, 1, 2, 
                    // Src: (strict_fsub:{ *:[f80] } RFP80:{ *:[f80] }:$src1, RFP80:{ *:[f80] }:$src2) - Complexity = 3
                    // Dst: (SUB_Fp80:{ *:[f80] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, RFP80:{ *:[f80] }:$src2)
/*139181*/        0, // EndSwitchType
/*139182*/      /*Scope*/ 92|128,3/*476*/, /*->139660*/
/*139184*/        OPC_MoveChild2,
/*139185*/        OPC_SwitchOpcode /*2 cases */, 45|128,2/*301*/, TARGET_VAL(ISD::LOAD),// ->139491
/*139190*/          OPC_RecordMemRef,
/*139191*/          OPC_RecordNode, // #2 = 'ld' chained node
/*139192*/          OPC_CheckFoldableChainNode,
/*139193*/          OPC_RecordChild1, // #3 = $src2
/*139194*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*139196*/          OPC_CheckPredicate, 9, // Predicate_load
/*139198*/          OPC_Scope, 95, /*->139295*/ // 3 children in Scope
/*139200*/            OPC_MoveParent,
/*139201*/            OPC_SwitchType /*4 cases */, 21, MVT::v4f32,// ->139225
/*139204*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*139206*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*139209*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*139213*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_fsub:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VSUBPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*139225*/            /*SwitchType*/ 21, MVT::v2f64,// ->139248
/*139227*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*139229*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*139232*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*139236*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_fsub:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VSUBPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*139248*/            /*SwitchType*/ 21, MVT::v8f32,// ->139271
/*139250*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*139252*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*139255*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*139259*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_fsub:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VSUBPSYrm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*139271*/            /*SwitchType*/ 21, MVT::v4f64,// ->139294
/*139273*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*139275*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*139278*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*139282*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_fsub:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VSUBPDYrm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*139294*/            0, // EndSwitchType
/*139295*/          /*Scope*/ 51, /*->139347*/
/*139296*/            OPC_CheckPredicate, 39, // Predicate_memop
/*139298*/            OPC_MoveParent,
/*139299*/            OPC_SwitchType /*2 cases */, 21, MVT::v4f32,// ->139323
/*139302*/              OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*139304*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*139307*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*139311*/              OPC_MorphNodeTo1, TARGET_VAL(X86::SUBPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_fsub:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                        // Dst: (SUBPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*139323*/            /*SwitchType*/ 21, MVT::v2f64,// ->139346
/*139325*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*139327*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*139330*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*139334*/              OPC_MorphNodeTo1, TARGET_VAL(X86::SUBPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_fsub:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                        // Dst: (SUBPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*139346*/            0, // EndSwitchType
/*139347*/          /*Scope*/ 13|128,1/*141*/, /*->139490*/
/*139349*/            OPC_MoveParent,
/*139350*/            OPC_SwitchType /*6 cases */, 21, MVT::v16f32,// ->139374
/*139353*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*139355*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*139358*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*139362*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_fsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VSUBPSZrm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*139374*/            /*SwitchType*/ 21, MVT::v8f64,// ->139397
/*139376*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*139378*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*139381*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*139385*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_fsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VSUBPDZrm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*139397*/            /*SwitchType*/ 21, MVT::v4f32,// ->139420
/*139399*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*139401*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*139404*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*139408*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_fsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VSUBPSZ128rm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*139420*/            /*SwitchType*/ 21, MVT::v8f32,// ->139443
/*139422*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*139424*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*139427*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*139431*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_fsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VSUBPSZ256rm:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*139443*/            /*SwitchType*/ 21, MVT::v2f64,// ->139466
/*139445*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*139447*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*139450*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*139454*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_fsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VSUBPDZ128rm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*139466*/            /*SwitchType*/ 21, MVT::v4f64,// ->139489
/*139468*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*139470*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*139473*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*139477*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_fsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VSUBPDZ256rm:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*139489*/            0, // EndSwitchType
/*139490*/          0, /*End of Scope*/
/*139491*/        /*SwitchOpcode*/ 36|128,1/*164*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->139659
/*139495*/          OPC_RecordMemRef,
/*139496*/          OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*139497*/          OPC_CheckFoldableChainNode,
/*139498*/          OPC_RecordChild1, // #3 = $src2
/*139499*/          OPC_Scope, 26, /*->139527*/ // 4 children in Scope
/*139501*/            OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*139503*/            OPC_MoveParent,
/*139504*/            OPC_CheckType, MVT::v16f32,
/*139506*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*139508*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*139511*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*139515*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                      // Src: (strict_fsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VSUBPSZrmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*139527*/          /*Scope*/ 26, /*->139554*/
/*139528*/            OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*139530*/            OPC_MoveParent,
/*139531*/            OPC_CheckType, MVT::v8f64,
/*139533*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*139535*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*139538*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*139542*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                      // Src: (strict_fsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VSUBPDZrmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*139554*/          /*Scope*/ 51, /*->139606*/
/*139555*/            OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*139557*/            OPC_MoveParent,
/*139558*/            OPC_SwitchType /*2 cases */, 21, MVT::v4f32,// ->139582
/*139561*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*139563*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*139566*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*139570*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_fsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VSUBPSZ128rmb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*139582*/            /*SwitchType*/ 21, MVT::v8f32,// ->139605
/*139584*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*139586*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*139589*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*139593*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_fsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VSUBPSZ256rmb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*139605*/            0, // EndSwitchType
/*139606*/          /*Scope*/ 51, /*->139658*/
/*139607*/            OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*139609*/            OPC_MoveParent,
/*139610*/            OPC_SwitchType /*2 cases */, 21, MVT::v2f64,// ->139634
/*139613*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*139615*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*139618*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*139622*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_fsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VSUBPDZ128rmb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*139634*/            /*SwitchType*/ 21, MVT::v4f64,// ->139657
/*139636*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*139638*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*139641*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*139645*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_fsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VSUBPDZ256rmb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*139657*/            0, // EndSwitchType
/*139658*/          0, /*End of Scope*/
/*139659*/        0, // EndSwitchOpcode
/*139660*/      /*Scope*/ 37|128,1/*165*/, /*->139827*/
/*139662*/        OPC_RecordChild2, // #2 = $src2
/*139663*/        OPC_SwitchType /*6 cases */, 38, MVT::v4f32,// ->139704
/*139666*/          OPC_Scope, 11, /*->139679*/ // 3 children in Scope
/*139668*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*139670*/            OPC_EmitMergeInputChains1_0,
/*139671*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSrr), 0|OPFL_Chain,
                          MVT::v4f32, 2/*#Ops*/, 1, 2, 
                      // Src: (strict_fsub:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2) - Complexity = 3
                      // Dst: (VSUBPSrr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2)
/*139679*/          /*Scope*/ 11, /*->139691*/
/*139680*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*139682*/            OPC_EmitMergeInputChains1_0,
/*139683*/            OPC_MorphNodeTo1, TARGET_VAL(X86::SUBPSrr), 0|OPFL_Chain,
                          MVT::v4f32, 2/*#Ops*/, 1, 2, 
                      // Src: (strict_fsub:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2) - Complexity = 3
                      // Dst: (SUBPSrr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2)
/*139691*/          /*Scope*/ 11, /*->139703*/
/*139692*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*139694*/            OPC_EmitMergeInputChains1_0,
/*139695*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSZ128rr), 0|OPFL_Chain,
                          MVT::v4f32, 2/*#Ops*/, 1, 2, 
                      // Src: (strict_fsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2) - Complexity = 3
                      // Dst: (VSUBPSZ128rr:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*139703*/          0, /*End of Scope*/
/*139704*/        /*SwitchType*/ 38, MVT::v2f64,// ->139744
/*139706*/          OPC_Scope, 11, /*->139719*/ // 3 children in Scope
/*139708*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*139710*/            OPC_EmitMergeInputChains1_0,
/*139711*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDrr), 0|OPFL_Chain,
                          MVT::v2f64, 2/*#Ops*/, 1, 2, 
                      // Src: (strict_fsub:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2) - Complexity = 3
                      // Dst: (VSUBPDrr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2)
/*139719*/          /*Scope*/ 11, /*->139731*/
/*139720*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*139722*/            OPC_EmitMergeInputChains1_0,
/*139723*/            OPC_MorphNodeTo1, TARGET_VAL(X86::SUBPDrr), 0|OPFL_Chain,
                          MVT::v2f64, 2/*#Ops*/, 1, 2, 
                      // Src: (strict_fsub:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2) - Complexity = 3
                      // Dst: (SUBPDrr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2)
/*139731*/          /*Scope*/ 11, /*->139743*/
/*139732*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*139734*/            OPC_EmitMergeInputChains1_0,
/*139735*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDZ128rr), 0|OPFL_Chain,
                          MVT::v2f64, 2/*#Ops*/, 1, 2, 
                      // Src: (strict_fsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2) - Complexity = 3
                      // Dst: (VSUBPDZ128rr:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*139743*/          0, /*End of Scope*/
/*139744*/        /*SwitchType*/ 26, MVT::v8f32,// ->139772
/*139746*/          OPC_Scope, 11, /*->139759*/ // 2 children in Scope
/*139748*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*139750*/            OPC_EmitMergeInputChains1_0,
/*139751*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSYrr), 0|OPFL_Chain,
                          MVT::v8f32, 2/*#Ops*/, 1, 2, 
                      // Src: (strict_fsub:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2) - Complexity = 3
                      // Dst: (VSUBPSYrr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2)
/*139759*/          /*Scope*/ 11, /*->139771*/
/*139760*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*139762*/            OPC_EmitMergeInputChains1_0,
/*139763*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSZ256rr), 0|OPFL_Chain,
                          MVT::v8f32, 2/*#Ops*/, 1, 2, 
                      // Src: (strict_fsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2) - Complexity = 3
                      // Dst: (VSUBPSZ256rr:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2)
/*139771*/          0, /*End of Scope*/
/*139772*/        /*SwitchType*/ 26, MVT::v4f64,// ->139800
/*139774*/          OPC_Scope, 11, /*->139787*/ // 2 children in Scope
/*139776*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*139778*/            OPC_EmitMergeInputChains1_0,
/*139779*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDYrr), 0|OPFL_Chain,
                          MVT::v4f64, 2/*#Ops*/, 1, 2, 
                      // Src: (strict_fsub:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2) - Complexity = 3
                      // Dst: (VSUBPDYrr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2)
/*139787*/          /*Scope*/ 11, /*->139799*/
/*139788*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*139790*/            OPC_EmitMergeInputChains1_0,
/*139791*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDZ256rr), 0|OPFL_Chain,
                          MVT::v4f64, 2/*#Ops*/, 1, 2, 
                      // Src: (strict_fsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2) - Complexity = 3
                      // Dst: (VSUBPDZ256rr:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2)
/*139799*/          0, /*End of Scope*/
/*139800*/        /*SwitchType*/ 11, MVT::v16f32,// ->139813
/*139802*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*139804*/          OPC_EmitMergeInputChains1_0,
/*139805*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSZrr), 0|OPFL_Chain,
                        MVT::v16f32, 2/*#Ops*/, 1, 2, 
                    // Src: (strict_fsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2) - Complexity = 3
                    // Dst: (VSUBPSZrr:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*139813*/        /*SwitchType*/ 11, MVT::v8f64,// ->139826
/*139815*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*139817*/          OPC_EmitMergeInputChains1_0,
/*139818*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDZrr), 0|OPFL_Chain,
                        MVT::v8f64, 2/*#Ops*/, 1, 2, 
                    // Src: (strict_fsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2) - Complexity = 3
                    // Dst: (VSUBPDZrr:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*139826*/        0, // EndSwitchType
/*139827*/      0, /*End of Scope*/
/*139828*/    0, /*End of Scope*/
/*139829*/  /*SwitchOpcode*/ 29|128,11/*1437*/, TARGET_VAL(ISD::FSUB),// ->141270
/*139833*/    OPC_Scope, 38|128,2/*294*/, /*->140130*/ // 3 children in Scope
/*139836*/      OPC_RecordChild0, // #0 = $src1
/*139837*/      OPC_MoveChild1,
/*139838*/      OPC_SwitchOpcode /*2 cases */, 2|128,1/*130*/, TARGET_VAL(ISD::LOAD),// ->139973
/*139843*/        OPC_RecordMemRef,
/*139844*/        OPC_RecordNode, // #1 = 'ld' chained node
/*139845*/        OPC_CheckFoldableChainNode,
/*139846*/        OPC_RecordChild1, // #2 = $src2
/*139847*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*139849*/        OPC_Scope, 47, /*->139898*/ // 2 children in Scope
/*139851*/          OPC_CheckPredicate, 9, // Predicate_load
/*139853*/          OPC_MoveParent,
/*139854*/          OPC_SwitchType /*2 cases */, 19, MVT::f32,// ->139876
/*139857*/            OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*139859*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*139862*/            OPC_EmitMergeInputChains1_1,
/*139863*/            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)
/*139876*/          /*SwitchType*/ 19, MVT::f64,// ->139897
/*139878*/            OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*139880*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*139883*/            OPC_EmitMergeInputChains1_1,
/*139884*/            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)
/*139897*/          0, // EndSwitchType
/*139898*/        /*Scope*/ 73, /*->139972*/
/*139899*/          OPC_CheckPredicate, 70, // Predicate_extload
/*139901*/          OPC_Scope, 45, /*->139948*/ // 2 children in Scope
/*139903*/            OPC_CheckPredicate, 21, // Predicate_extloadf32
/*139905*/            OPC_MoveParent,
/*139906*/            OPC_SwitchType /*2 cases */, 19, MVT::f64,// ->139928
/*139909*/              OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*139911*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*139914*/              OPC_EmitMergeInputChains1_1,
/*139915*/              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)
/*139928*/            /*SwitchType*/ 17, MVT::f80,// ->139947
/*139930*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*139933*/              OPC_EmitMergeInputChains1_1,
/*139934*/              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)
/*139947*/            0, // EndSwitchType
/*139948*/          /*Scope*/ 22, /*->139971*/
/*139949*/            OPC_CheckPredicate, 22, // Predicate_extloadf64
/*139951*/            OPC_MoveParent,
/*139952*/            OPC_CheckType, MVT::f80,
/*139954*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*139957*/            OPC_EmitMergeInputChains1_1,
/*139958*/            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)
/*139971*/          0, /*End of Scope*/
/*139972*/        0, /*End of Scope*/
/*139973*/      /*SwitchOpcode*/ 24|128,1/*152*/, TARGET_VAL(X86ISD::FILD),// ->140129
/*139977*/        OPC_RecordMemRef,
/*139978*/        OPC_RecordNode, // #1 = 'X86fild' chained node
/*139979*/        OPC_CheckFoldableChainNode,
/*139980*/        OPC_RecordChild1, // #2 = $src2
/*139981*/        OPC_Scope, 24, /*->140007*/ // 6 children in Scope
/*139983*/          OPC_CheckPredicate, 62, // Predicate_X86fild16
/*139985*/          OPC_MoveParent,
/*139986*/          OPC_CheckType, MVT::f32,
/*139988*/          OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*139990*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*139993*/          OPC_EmitMergeInputChains1_1,
/*139994*/          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)<<P:Predicate_X86fild16>>) - Complexity = 25
                    // Dst: (SUB_FpI16m32:{ *:[f32] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*140007*/        /*Scope*/ 24, /*->140032*/
/*140008*/          OPC_CheckPredicate, 63, // Predicate_X86fild32
/*140010*/          OPC_MoveParent,
/*140011*/          OPC_CheckType, MVT::f32,
/*140013*/          OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*140015*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*140018*/          OPC_EmitMergeInputChains1_1,
/*140019*/          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)<<P:Predicate_X86fild32>>) - Complexity = 25
                    // Dst: (SUB_FpI32m32:{ *:[f32] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*140032*/        /*Scope*/ 24, /*->140057*/
/*140033*/          OPC_CheckPredicate, 62, // Predicate_X86fild16
/*140035*/          OPC_MoveParent,
/*140036*/          OPC_CheckType, MVT::f64,
/*140038*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*140040*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*140043*/          OPC_EmitMergeInputChains1_1,
/*140044*/          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)<<P:Predicate_X86fild16>>) - Complexity = 25
                    // Dst: (SUB_FpI16m64:{ *:[f64] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*140057*/        /*Scope*/ 24, /*->140082*/
/*140058*/          OPC_CheckPredicate, 63, // Predicate_X86fild32
/*140060*/          OPC_MoveParent,
/*140061*/          OPC_CheckType, MVT::f64,
/*140063*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*140065*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*140068*/          OPC_EmitMergeInputChains1_1,
/*140069*/          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)<<P:Predicate_X86fild32>>) - Complexity = 25
                    // Dst: (SUB_FpI32m64:{ *:[f64] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*140082*/        /*Scope*/ 22, /*->140105*/
/*140083*/          OPC_CheckPredicate, 62, // Predicate_X86fild16
/*140085*/          OPC_MoveParent,
/*140086*/          OPC_CheckType, MVT::f80,
/*140088*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*140091*/          OPC_EmitMergeInputChains1_1,
/*140092*/          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)<<P:Predicate_X86fild16>>) - Complexity = 25
                    // Dst: (SUB_FpI16m80:{ *:[f80] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, addr:{ *:[iPTR] }:$src2)
/*140105*/        /*Scope*/ 22, /*->140128*/
/*140106*/          OPC_CheckPredicate, 63, // Predicate_X86fild32
/*140108*/          OPC_MoveParent,
/*140109*/          OPC_CheckType, MVT::f80,
/*140111*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*140114*/          OPC_EmitMergeInputChains1_1,
/*140115*/          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)<<P:Predicate_X86fild32>>) - Complexity = 25
                    // Dst: (SUB_FpI32m80:{ *:[f80] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, addr:{ *:[iPTR] }:$src2)
/*140128*/        0, /*End of Scope*/
/*140129*/      0, // EndSwitchOpcode
/*140130*/    /*Scope*/ 46|128,2/*302*/, /*->140434*/
/*140132*/      OPC_MoveChild0,
/*140133*/      OPC_SwitchOpcode /*2 cases */, 5|128,1/*133*/, TARGET_VAL(ISD::LOAD),// ->140271
/*140138*/        OPC_RecordMemRef,
/*140139*/        OPC_RecordNode, // #0 = 'ld' chained node
/*140140*/        OPC_CheckFoldableChainNode,
/*140141*/        OPC_RecordChild1, // #1 = $src2
/*140142*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*140144*/        OPC_Scope, 48, /*->140194*/ // 2 children in Scope
/*140146*/          OPC_CheckPredicate, 9, // Predicate_load
/*140148*/          OPC_MoveParent,
/*140149*/          OPC_RecordChild1, // #2 = $src1
/*140150*/          OPC_SwitchType /*2 cases */, 19, MVT::f32,// ->140172
/*140153*/            OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*140155*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*140158*/            OPC_EmitMergeInputChains1_0,
/*140159*/            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)
/*140172*/          /*SwitchType*/ 19, MVT::f64,// ->140193
/*140174*/            OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*140176*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*140179*/            OPC_EmitMergeInputChains1_0,
/*140180*/            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)
/*140193*/          0, // EndSwitchType
/*140194*/        /*Scope*/ 75, /*->140270*/
/*140195*/          OPC_CheckPredicate, 70, // Predicate_extload
/*140197*/          OPC_Scope, 46, /*->140245*/ // 2 children in Scope
/*140199*/            OPC_CheckPredicate, 21, // Predicate_extloadf32
/*140201*/            OPC_MoveParent,
/*140202*/            OPC_RecordChild1, // #2 = $src1
/*140203*/            OPC_SwitchType /*2 cases */, 19, MVT::f64,// ->140225
/*140206*/              OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*140208*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*140211*/              OPC_EmitMergeInputChains1_0,
/*140212*/              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)
/*140225*/            /*SwitchType*/ 17, MVT::f80,// ->140244
/*140227*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*140230*/              OPC_EmitMergeInputChains1_0,
/*140231*/              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)
/*140244*/            0, // EndSwitchType
/*140245*/          /*Scope*/ 23, /*->140269*/
/*140246*/            OPC_CheckPredicate, 22, // Predicate_extloadf64
/*140248*/            OPC_MoveParent,
/*140249*/            OPC_RecordChild1, // #2 = $src1
/*140250*/            OPC_CheckType, MVT::f80,
/*140252*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*140255*/            OPC_EmitMergeInputChains1_0,
/*140256*/            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)
/*140269*/          0, /*End of Scope*/
/*140270*/        0, /*End of Scope*/
/*140271*/      /*SwitchOpcode*/ 30|128,1/*158*/, TARGET_VAL(X86ISD::FILD),// ->140433
/*140275*/        OPC_RecordMemRef,
/*140276*/        OPC_RecordNode, // #0 = 'X86fild' chained node
/*140277*/        OPC_CheckFoldableChainNode,
/*140278*/        OPC_RecordChild1, // #1 = $src2
/*140279*/        OPC_Scope, 25, /*->140306*/ // 6 children in Scope
/*140281*/          OPC_CheckPredicate, 62, // Predicate_X86fild16
/*140283*/          OPC_MoveParent,
/*140284*/          OPC_RecordChild1, // #2 = $src1
/*140285*/          OPC_CheckType, MVT::f32,
/*140287*/          OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*140289*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*140292*/          OPC_EmitMergeInputChains1_0,
/*140293*/          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)<<P:Predicate_X86fild16>>, RFP32:{ *:[f32] }:$src1) - Complexity = 25
                    // Dst: (SUBR_FpI16m32:{ *:[f32] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*140306*/        /*Scope*/ 25, /*->140332*/
/*140307*/          OPC_CheckPredicate, 63, // Predicate_X86fild32
/*140309*/          OPC_MoveParent,
/*140310*/          OPC_RecordChild1, // #2 = $src1
/*140311*/          OPC_CheckType, MVT::f32,
/*140313*/          OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*140315*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*140318*/          OPC_EmitMergeInputChains1_0,
/*140319*/          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)<<P:Predicate_X86fild32>>, RFP32:{ *:[f32] }:$src1) - Complexity = 25
                    // Dst: (SUBR_FpI32m32:{ *:[f32] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*140332*/        /*Scope*/ 25, /*->140358*/
/*140333*/          OPC_CheckPredicate, 62, // Predicate_X86fild16
/*140335*/          OPC_MoveParent,
/*140336*/          OPC_RecordChild1, // #2 = $src1
/*140337*/          OPC_CheckType, MVT::f64,
/*140339*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*140341*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*140344*/          OPC_EmitMergeInputChains1_0,
/*140345*/          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)<<P:Predicate_X86fild16>>, RFP64:{ *:[f64] }:$src1) - Complexity = 25
                    // Dst: (SUBR_FpI16m64:{ *:[f64] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*140358*/        /*Scope*/ 25, /*->140384*/
/*140359*/          OPC_CheckPredicate, 63, // Predicate_X86fild32
/*140361*/          OPC_MoveParent,
/*140362*/          OPC_RecordChild1, // #2 = $src1
/*140363*/          OPC_CheckType, MVT::f64,
/*140365*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*140367*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*140370*/          OPC_EmitMergeInputChains1_0,
/*140371*/          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)<<P:Predicate_X86fild32>>, RFP64:{ *:[f64] }:$src1) - Complexity = 25
                    // Dst: (SUBR_FpI32m64:{ *:[f64] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*140384*/        /*Scope*/ 23, /*->140408*/
/*140385*/          OPC_CheckPredicate, 62, // Predicate_X86fild16
/*140387*/          OPC_MoveParent,
/*140388*/          OPC_RecordChild1, // #2 = $src1
/*140389*/          OPC_CheckType, MVT::f80,
/*140391*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*140394*/          OPC_EmitMergeInputChains1_0,
/*140395*/          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)<<P:Predicate_X86fild16>>, RFP80:{ *:[f80] }:$src1) - Complexity = 25
                    // Dst: (SUBR_FpI16m80:{ *:[f80] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, addr:{ *:[iPTR] }:$src2)
/*140408*/        /*Scope*/ 23, /*->140432*/
/*140409*/          OPC_CheckPredicate, 63, // Predicate_X86fild32
/*140411*/          OPC_MoveParent,
/*140412*/          OPC_RecordChild1, // #2 = $src1
/*140413*/          OPC_CheckType, MVT::f80,
/*140415*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*140418*/          OPC_EmitMergeInputChains1_0,
/*140419*/          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)<<P:Predicate_X86fild32>>, RFP80:{ *:[f80] }:$src1) - Complexity = 25
                    // Dst: (SUBR_FpI32m80:{ *:[f80] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, addr:{ *:[iPTR] }:$src2)
/*140432*/        0, /*End of Scope*/
/*140433*/      0, // EndSwitchOpcode
/*140434*/    /*Scope*/ 65|128,6/*833*/, /*->141269*/
/*140436*/      OPC_RecordChild0, // #0 = $src1
/*140437*/      OPC_Scope, 9|128,1/*137*/, /*->140577*/ // 4 children in Scope
/*140440*/        OPC_MoveChild1,
/*140441*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*140444*/        OPC_RecordMemRef,
/*140445*/        OPC_RecordNode, // #1 = 'ld' chained node
/*140446*/        OPC_CheckFoldableChainNode,
/*140447*/        OPC_RecordChild1, // #2 = $src2
/*140448*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*140450*/        OPC_CheckPredicate, 9, // Predicate_load
/*140452*/        OPC_MoveParent,
/*140453*/        OPC_SwitchType /*2 cases */, 59, MVT::f32,// ->140515
/*140456*/          OPC_Scope, 18, /*->140476*/ // 3 children in Scope
/*140458*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*140460*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*140463*/            OPC_EmitMergeInputChains1_1,
/*140464*/            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)
/*140476*/          /*Scope*/ 18, /*->140495*/
/*140477*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*140479*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*140482*/            OPC_EmitMergeInputChains1_1,
/*140483*/            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)
/*140495*/          /*Scope*/ 18, /*->140514*/
/*140496*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*140498*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*140501*/            OPC_EmitMergeInputChains1_1,
/*140502*/            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)
/*140514*/          0, /*End of Scope*/
/*140515*/        /*SwitchType*/ 59, MVT::f64,// ->140576
/*140517*/          OPC_Scope, 18, /*->140537*/ // 3 children in Scope
/*140519*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*140521*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*140524*/            OPC_EmitMergeInputChains1_1,
/*140525*/            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)
/*140537*/          /*Scope*/ 18, /*->140556*/
/*140538*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*140540*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*140543*/            OPC_EmitMergeInputChains1_1,
/*140544*/            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)
/*140556*/          /*Scope*/ 18, /*->140575*/
/*140557*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*140559*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*140562*/            OPC_EmitMergeInputChains1_1,
/*140563*/            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)
/*140575*/          0, /*End of Scope*/
/*140576*/        0, // EndSwitchType
/*140577*/      /*Scope*/ 112, /*->140690*/
/*140578*/        OPC_RecordChild1, // #1 = $src2
/*140579*/        OPC_SwitchType /*3 cases */, 47, MVT::f32,// ->140629
/*140582*/          OPC_Scope, 11, /*->140595*/ // 4 children in Scope
/*140584*/            OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*140586*/            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)
/*140595*/          /*Scope*/ 10, /*->140606*/
/*140596*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*140598*/            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)
/*140606*/          /*Scope*/ 10, /*->140617*/
/*140607*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*140609*/            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)
/*140617*/          /*Scope*/ 10, /*->140628*/
/*140618*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*140620*/            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)
/*140628*/          0, /*End of Scope*/
/*140629*/        /*SwitchType*/ 47, MVT::f64,// ->140678
/*140631*/          OPC_Scope, 11, /*->140644*/ // 4 children in Scope
/*140633*/            OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*140635*/            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)
/*140644*/          /*Scope*/ 10, /*->140655*/
/*140645*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*140647*/            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)
/*140655*/          /*Scope*/ 10, /*->140666*/
/*140656*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*140658*/            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)
/*140666*/          /*Scope*/ 10, /*->140677*/
/*140667*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*140669*/            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)
/*140677*/          0, /*End of Scope*/
/*140678*/        /*SwitchType*/ 9, MVT::f80,// ->140689
/*140680*/          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)
/*140689*/        0, // EndSwitchType
/*140690*/      /*Scope*/ 37|128,3/*421*/, /*->141113*/
/*140692*/        OPC_MoveChild1,
/*140693*/        OPC_SwitchOpcode /*2 cases */, 8|128,2/*264*/, TARGET_VAL(ISD::LOAD),// ->140962
/*140698*/          OPC_RecordMemRef,
/*140699*/          OPC_RecordNode, // #1 = 'ld' chained node
/*140700*/          OPC_CheckFoldableChainNode,
/*140701*/          OPC_RecordChild1, // #2 = $src2
/*140702*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*140704*/          OPC_CheckPredicate, 9, // Predicate_load
/*140706*/          OPC_Scope, 83, /*->140791*/ // 3 children in Scope
/*140708*/            OPC_MoveParent,
/*140709*/            OPC_SwitchType /*4 cases */, 18, MVT::v4f32,// ->140730
/*140712*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*140714*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*140717*/              OPC_EmitMergeInputChains1_1,
/*140718*/              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>>) - Complexity = 25
                        // Dst: (VSUBPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*140730*/            /*SwitchType*/ 18, MVT::v2f64,// ->140750
/*140732*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*140734*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*140737*/              OPC_EmitMergeInputChains1_1,
/*140738*/              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>>) - Complexity = 25
                        // Dst: (VSUBPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*140750*/            /*SwitchType*/ 18, MVT::v8f32,// ->140770
/*140752*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*140754*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*140757*/              OPC_EmitMergeInputChains1_1,
/*140758*/              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>>) - Complexity = 25
                        // Dst: (VSUBPSYrm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*140770*/            /*SwitchType*/ 18, MVT::v4f64,// ->140790
/*140772*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*140774*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*140777*/              OPC_EmitMergeInputChains1_1,
/*140778*/              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>>) - Complexity = 25
                        // Dst: (VSUBPDYrm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*140790*/            0, // EndSwitchType
/*140791*/          /*Scope*/ 45, /*->140837*/
/*140792*/            OPC_CheckPredicate, 39, // Predicate_memop
/*140794*/            OPC_MoveParent,
/*140795*/            OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->140816
/*140798*/              OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*140800*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*140803*/              OPC_EmitMergeInputChains1_1,
/*140804*/              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_memop>>) - Complexity = 25
                        // Dst: (SUBPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*140816*/            /*SwitchType*/ 18, MVT::v2f64,// ->140836
/*140818*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*140820*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*140823*/              OPC_EmitMergeInputChains1_1,
/*140824*/              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_memop>>) - Complexity = 25
                        // Dst: (SUBPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*140836*/            0, // EndSwitchType
/*140837*/          /*Scope*/ 123, /*->140961*/
/*140838*/            OPC_MoveParent,
/*140839*/            OPC_SwitchType /*6 cases */, 18, MVT::v16f32,// ->140860
/*140842*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*140844*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*140847*/              OPC_EmitMergeInputChains1_1,
/*140848*/              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>>) - Complexity = 25
                        // Dst: (VSUBPSZrm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*140860*/            /*SwitchType*/ 18, MVT::v8f64,// ->140880
/*140862*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*140864*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*140867*/              OPC_EmitMergeInputChains1_1,
/*140868*/              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>>) - Complexity = 25
                        // Dst: (VSUBPDZrm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*140880*/            /*SwitchType*/ 18, MVT::v4f32,// ->140900
/*140882*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*140884*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*140887*/              OPC_EmitMergeInputChains1_1,
/*140888*/              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>>) - Complexity = 25
                        // Dst: (VSUBPSZ128rm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*140900*/            /*SwitchType*/ 18, MVT::v8f32,// ->140920
/*140902*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*140904*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*140907*/              OPC_EmitMergeInputChains1_1,
/*140908*/              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>>) - Complexity = 25
                        // Dst: (VSUBPSZ256rm:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*140920*/            /*SwitchType*/ 18, MVT::v2f64,// ->140940
/*140922*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*140924*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*140927*/              OPC_EmitMergeInputChains1_1,
/*140928*/              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>>) - Complexity = 25
                        // Dst: (VSUBPDZ128rm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*140940*/            /*SwitchType*/ 18, MVT::v4f64,// ->140960
/*140942*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*140944*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*140947*/              OPC_EmitMergeInputChains1_1,
/*140948*/              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>>) - Complexity = 25
                        // Dst: (VSUBPDZ256rm:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*140960*/            0, // EndSwitchType
/*140961*/          0, /*End of Scope*/
/*140962*/        /*SwitchOpcode*/ 18|128,1/*146*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->141112
/*140966*/          OPC_RecordMemRef,
/*140967*/          OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*140968*/          OPC_CheckFoldableChainNode,
/*140969*/          OPC_RecordChild1, // #2 = $src2
/*140970*/          OPC_Scope, 23, /*->140995*/ // 4 children in Scope
/*140972*/            OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*140974*/            OPC_MoveParent,
/*140975*/            OPC_CheckType, MVT::v16f32,
/*140977*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*140979*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*140982*/            OPC_EmitMergeInputChains1_1,
/*140983*/            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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VSUBPSZrmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*140995*/          /*Scope*/ 23, /*->141019*/
/*140996*/            OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*140998*/            OPC_MoveParent,
/*140999*/            OPC_CheckType, MVT::v8f64,
/*141001*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*141003*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*141006*/            OPC_EmitMergeInputChains1_1,
/*141007*/            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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VSUBPDZrmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*141019*/          /*Scope*/ 45, /*->141065*/
/*141020*/            OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*141022*/            OPC_MoveParent,
/*141023*/            OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->141044
/*141026*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*141028*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*141031*/              OPC_EmitMergeInputChains1_1,
/*141032*/              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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VSUBPSZ128rmb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*141044*/            /*SwitchType*/ 18, MVT::v8f32,// ->141064
/*141046*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*141048*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*141051*/              OPC_EmitMergeInputChains1_1,
/*141052*/              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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VSUBPSZ256rmb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*141064*/            0, // EndSwitchType
/*141065*/          /*Scope*/ 45, /*->141111*/
/*141066*/            OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*141068*/            OPC_MoveParent,
/*141069*/            OPC_SwitchType /*2 cases */, 18, MVT::v2f64,// ->141090
/*141072*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*141074*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*141077*/              OPC_EmitMergeInputChains1_1,
/*141078*/              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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VSUBPDZ128rmb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*141090*/            /*SwitchType*/ 18, MVT::v4f64,// ->141110
/*141092*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*141094*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*141097*/              OPC_EmitMergeInputChains1_1,
/*141098*/              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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VSUBPDZ256rmb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*141110*/            0, // EndSwitchType
/*141111*/          0, /*End of Scope*/
/*141112*/        0, // EndSwitchOpcode
/*141113*/      /*Scope*/ 25|128,1/*153*/, /*->141268*/
/*141115*/        OPC_RecordChild1, // #1 = $src2
/*141116*/        OPC_SwitchType /*6 cases */, 35, MVT::v4f32,// ->141154
/*141119*/          OPC_Scope, 10, /*->141131*/ // 3 children in Scope
/*141121*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*141123*/            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)
/*141131*/          /*Scope*/ 10, /*->141142*/
/*141132*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*141134*/            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)
/*141142*/          /*Scope*/ 10, /*->141153*/
/*141143*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*141145*/            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)
/*141153*/          0, /*End of Scope*/
/*141154*/        /*SwitchType*/ 35, MVT::v2f64,// ->141191
/*141156*/          OPC_Scope, 10, /*->141168*/ // 3 children in Scope
/*141158*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*141160*/            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)
/*141168*/          /*Scope*/ 10, /*->141179*/
/*141169*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*141171*/            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)
/*141179*/          /*Scope*/ 10, /*->141190*/
/*141180*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*141182*/            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)
/*141190*/          0, /*End of Scope*/
/*141191*/        /*SwitchType*/ 24, MVT::v8f32,// ->141217
/*141193*/          OPC_Scope, 10, /*->141205*/ // 2 children in Scope
/*141195*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*141197*/            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)
/*141205*/          /*Scope*/ 10, /*->141216*/
/*141206*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*141208*/            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)
/*141216*/          0, /*End of Scope*/
/*141217*/        /*SwitchType*/ 24, MVT::v4f64,// ->141243
/*141219*/          OPC_Scope, 10, /*->141231*/ // 2 children in Scope
/*141221*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*141223*/            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)
/*141231*/          /*Scope*/ 10, /*->141242*/
/*141232*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*141234*/            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)
/*141242*/          0, /*End of Scope*/
/*141243*/        /*SwitchType*/ 10, MVT::v16f32,// ->141255
/*141245*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*141247*/          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)
/*141255*/        /*SwitchType*/ 10, MVT::v8f64,// ->141267
/*141257*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*141259*/          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)
/*141267*/        0, // EndSwitchType
/*141268*/      0, /*End of Scope*/
/*141269*/    0, /*End of Scope*/
/*141270*/  /*SwitchOpcode*/ 67|128,17/*2243*/, TARGET_VAL(ISD::STRICT_FMUL),// ->143517
/*141274*/    OPC_RecordNode, // #0 = 'strict_fmul' chained node
/*141275*/    OPC_Scope, 71|128,2/*327*/, /*->141605*/ // 7 children in Scope
/*141278*/      OPC_RecordChild1, // #1 = $src1
/*141279*/      OPC_MoveChild2,
/*141280*/      OPC_SwitchOpcode /*2 cases */, 17|128,1/*145*/, TARGET_VAL(ISD::LOAD),// ->141430
/*141285*/        OPC_RecordMemRef,
/*141286*/        OPC_RecordNode, // #2 = 'ld' chained node
/*141287*/        OPC_CheckFoldableChainNode,
/*141288*/        OPC_RecordChild1, // #3 = $src2
/*141289*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*141291*/        OPC_Scope, 53, /*->141346*/ // 2 children in Scope
/*141293*/          OPC_CheckPredicate, 9, // Predicate_load
/*141295*/          OPC_MoveParent,
/*141296*/          OPC_SwitchType /*2 cases */, 22, MVT::f32,// ->141321
/*141299*/            OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*141301*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*141304*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*141308*/            OPC_MorphNodeTo2, TARGET_VAL(X86::MUL_Fp32m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f32, MVT::i16, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                      // Src: (strict_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)
/*141321*/          /*SwitchType*/ 22, MVT::f64,// ->141345
/*141323*/            OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*141325*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*141328*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*141332*/            OPC_MorphNodeTo2, TARGET_VAL(X86::MUL_Fp64m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, MVT::i16, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                      // Src: (strict_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)
/*141345*/          0, // EndSwitchType
/*141346*/        /*Scope*/ 82, /*->141429*/
/*141347*/          OPC_CheckPredicate, 70, // Predicate_extload
/*141349*/          OPC_Scope, 51, /*->141402*/ // 2 children in Scope
/*141351*/            OPC_CheckPredicate, 21, // Predicate_extloadf32
/*141353*/            OPC_MoveParent,
/*141354*/            OPC_SwitchType /*2 cases */, 22, MVT::f64,// ->141379
/*141357*/              OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*141359*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*141362*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*141366*/              OPC_MorphNodeTo2, TARGET_VAL(X86::MUL_Fp64m32), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::f64, MVT::i16, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_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)
/*141379*/            /*SwitchType*/ 20, MVT::f80,// ->141401
/*141381*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*141384*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*141388*/              OPC_MorphNodeTo2, TARGET_VAL(X86::MUL_Fp80m32), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::f80, MVT::i16, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_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)
/*141401*/            0, // EndSwitchType
/*141402*/          /*Scope*/ 25, /*->141428*/
/*141403*/            OPC_CheckPredicate, 22, // Predicate_extloadf64
/*141405*/            OPC_MoveParent,
/*141406*/            OPC_CheckType, MVT::f80,
/*141408*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*141411*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*141415*/            OPC_MorphNodeTo2, TARGET_VAL(X86::MUL_Fp80m64), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f80, MVT::i16, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                      // Src: (strict_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)
/*141428*/          0, /*End of Scope*/
/*141429*/        0, /*End of Scope*/
/*141430*/      /*SwitchOpcode*/ 42|128,1/*170*/, TARGET_VAL(X86ISD::FILD),// ->141604
/*141434*/        OPC_RecordMemRef,
/*141435*/        OPC_RecordNode, // #2 = 'X86fild' chained node
/*141436*/        OPC_CheckFoldableChainNode,
/*141437*/        OPC_RecordChild1, // #3 = $src2
/*141438*/        OPC_Scope, 27, /*->141467*/ // 6 children in Scope
/*141440*/          OPC_CheckPredicate, 62, // Predicate_X86fild16
/*141442*/          OPC_MoveParent,
/*141443*/          OPC_CheckType, MVT::f32,
/*141445*/          OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*141447*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*141450*/          OPC_EmitMergeInputChains, 2, 0, 2, 
/*141454*/          OPC_MorphNodeTo2, TARGET_VAL(X86::MUL_FpI16m32), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, MVT::i16, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                    // Src: (strict_fmul:{ *:[f32] } RFP32:{ *:[f32] }:$src1, (X86fild:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86fild16>>) - Complexity = 25
                    // Dst: (MUL_FpI16m32:{ *:[f32] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*141467*/        /*Scope*/ 27, /*->141495*/
/*141468*/          OPC_CheckPredicate, 63, // Predicate_X86fild32
/*141470*/          OPC_MoveParent,
/*141471*/          OPC_CheckType, MVT::f32,
/*141473*/          OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*141475*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*141478*/          OPC_EmitMergeInputChains, 2, 0, 2, 
/*141482*/          OPC_MorphNodeTo2, TARGET_VAL(X86::MUL_FpI32m32), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, MVT::i16, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                    // Src: (strict_fmul:{ *:[f32] } RFP32:{ *:[f32] }:$src1, (X86fild:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86fild32>>) - Complexity = 25
                    // Dst: (MUL_FpI32m32:{ *:[f32] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*141495*/        /*Scope*/ 27, /*->141523*/
/*141496*/          OPC_CheckPredicate, 62, // Predicate_X86fild16
/*141498*/          OPC_MoveParent,
/*141499*/          OPC_CheckType, MVT::f64,
/*141501*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*141503*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*141506*/          OPC_EmitMergeInputChains, 2, 0, 2, 
/*141510*/          OPC_MorphNodeTo2, TARGET_VAL(X86::MUL_FpI16m64), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, MVT::i16, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                    // Src: (strict_fmul:{ *:[f64] } RFP64:{ *:[f64] }:$src1, (X86fild:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86fild16>>) - Complexity = 25
                    // Dst: (MUL_FpI16m64:{ *:[f64] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*141523*/        /*Scope*/ 27, /*->141551*/
/*141524*/          OPC_CheckPredicate, 63, // Predicate_X86fild32
/*141526*/          OPC_MoveParent,
/*141527*/          OPC_CheckType, MVT::f64,
/*141529*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*141531*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*141534*/          OPC_EmitMergeInputChains, 2, 0, 2, 
/*141538*/          OPC_MorphNodeTo2, TARGET_VAL(X86::MUL_FpI32m64), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, MVT::i16, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                    // Src: (strict_fmul:{ *:[f64] } RFP64:{ *:[f64] }:$src1, (X86fild:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86fild32>>) - Complexity = 25
                    // Dst: (MUL_FpI32m64:{ *:[f64] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*141551*/        /*Scope*/ 25, /*->141577*/
/*141552*/          OPC_CheckPredicate, 62, // Predicate_X86fild16
/*141554*/          OPC_MoveParent,
/*141555*/          OPC_CheckType, MVT::f80,
/*141557*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*141560*/          OPC_EmitMergeInputChains, 2, 0, 2, 
/*141564*/          OPC_MorphNodeTo2, TARGET_VAL(X86::MUL_FpI16m80), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f80, MVT::i16, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                    // Src: (strict_fmul:{ *:[f80] } RFP80:{ *:[f80] }:$src1, (X86fild:{ *:[f80] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86fild16>>) - Complexity = 25
                    // Dst: (MUL_FpI16m80:{ *:[f80] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, addr:{ *:[iPTR] }:$src2)
/*141577*/        /*Scope*/ 25, /*->141603*/
/*141578*/          OPC_CheckPredicate, 63, // Predicate_X86fild32
/*141580*/          OPC_MoveParent,
/*141581*/          OPC_CheckType, MVT::f80,
/*141583*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*141586*/          OPC_EmitMergeInputChains, 2, 0, 2, 
/*141590*/          OPC_MorphNodeTo2, TARGET_VAL(X86::MUL_FpI32m80), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f80, MVT::i16, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                    // Src: (strict_fmul:{ *:[f80] } RFP80:{ *:[f80] }:$src1, (X86fild:{ *:[f80] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86fild32>>) - Complexity = 25
                    // Dst: (MUL_FpI32m80:{ *:[f80] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, addr:{ *:[iPTR] }:$src2)
/*141603*/        0, /*End of Scope*/
/*141604*/      0, // EndSwitchOpcode
/*141605*/    /*Scope*/ 79|128,2/*335*/, /*->141942*/
/*141607*/      OPC_MoveChild1,
/*141608*/      OPC_SwitchOpcode /*2 cases */, 20|128,1/*148*/, TARGET_VAL(ISD::LOAD),// ->141761
/*141613*/        OPC_RecordMemRef,
/*141614*/        OPC_RecordNode, // #1 = 'ld' chained node
/*141615*/        OPC_CheckFoldableChainNode,
/*141616*/        OPC_RecordChild1, // #2 = $src2
/*141617*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*141619*/        OPC_Scope, 54, /*->141675*/ // 2 children in Scope
/*141621*/          OPC_CheckPredicate, 9, // Predicate_load
/*141623*/          OPC_MoveParent,
/*141624*/          OPC_RecordChild2, // #3 = $src1
/*141625*/          OPC_SwitchType /*2 cases */, 22, MVT::f32,// ->141650
/*141628*/            OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*141630*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*141633*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*141637*/            OPC_MorphNodeTo2, TARGET_VAL(X86::MUL_Fp32m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f32, MVT::i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (strict_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)
/*141650*/          /*SwitchType*/ 22, MVT::f64,// ->141674
/*141652*/            OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*141654*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*141657*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*141661*/            OPC_MorphNodeTo2, TARGET_VAL(X86::MUL_Fp64m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, MVT::i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (strict_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)
/*141674*/          0, // EndSwitchType
/*141675*/        /*Scope*/ 84, /*->141760*/
/*141676*/          OPC_CheckPredicate, 70, // Predicate_extload
/*141678*/          OPC_Scope, 52, /*->141732*/ // 2 children in Scope
/*141680*/            OPC_CheckPredicate, 21, // Predicate_extloadf32
/*141682*/            OPC_MoveParent,
/*141683*/            OPC_RecordChild2, // #3 = $src1
/*141684*/            OPC_SwitchType /*2 cases */, 22, MVT::f64,// ->141709
/*141687*/              OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*141689*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*141692*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*141696*/              OPC_MorphNodeTo2, TARGET_VAL(X86::MUL_Fp64m32), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::f64, MVT::i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                        // Src: (strict_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)
/*141709*/            /*SwitchType*/ 20, MVT::f80,// ->141731
/*141711*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*141714*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*141718*/              OPC_MorphNodeTo2, TARGET_VAL(X86::MUL_Fp80m32), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::f80, MVT::i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                        // Src: (strict_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)
/*141731*/            0, // EndSwitchType
/*141732*/          /*Scope*/ 26, /*->141759*/
/*141733*/            OPC_CheckPredicate, 22, // Predicate_extloadf64
/*141735*/            OPC_MoveParent,
/*141736*/            OPC_RecordChild2, // #3 = $src1
/*141737*/            OPC_CheckType, MVT::f80,
/*141739*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*141742*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*141746*/            OPC_MorphNodeTo2, TARGET_VAL(X86::MUL_Fp80m64), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f80, MVT::i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (strict_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)
/*141759*/          0, /*End of Scope*/
/*141760*/        0, /*End of Scope*/
/*141761*/      /*SwitchOpcode*/ 48|128,1/*176*/, TARGET_VAL(X86ISD::FILD),// ->141941
/*141765*/        OPC_RecordMemRef,
/*141766*/        OPC_RecordNode, // #1 = 'X86fild' chained node
/*141767*/        OPC_CheckFoldableChainNode,
/*141768*/        OPC_RecordChild1, // #2 = $src2
/*141769*/        OPC_Scope, 28, /*->141799*/ // 6 children in Scope
/*141771*/          OPC_CheckPredicate, 62, // Predicate_X86fild16
/*141773*/          OPC_MoveParent,
/*141774*/          OPC_RecordChild2, // #3 = $src1
/*141775*/          OPC_CheckType, MVT::f32,
/*141777*/          OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*141779*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*141782*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*141786*/          OPC_MorphNodeTo2, TARGET_VAL(X86::MUL_FpI16m32), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, MVT::i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (strict_fmul:{ *:[f32] } (X86fild:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86fild16>>, RFP32:{ *:[f32] }:$src1) - Complexity = 25
                    // Dst: (MUL_FpI16m32:{ *:[f32] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*141799*/        /*Scope*/ 28, /*->141828*/
/*141800*/          OPC_CheckPredicate, 63, // Predicate_X86fild32
/*141802*/          OPC_MoveParent,
/*141803*/          OPC_RecordChild2, // #3 = $src1
/*141804*/          OPC_CheckType, MVT::f32,
/*141806*/          OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*141808*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*141811*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*141815*/          OPC_MorphNodeTo2, TARGET_VAL(X86::MUL_FpI32m32), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, MVT::i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (strict_fmul:{ *:[f32] } (X86fild:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86fild32>>, RFP32:{ *:[f32] }:$src1) - Complexity = 25
                    // Dst: (MUL_FpI32m32:{ *:[f32] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*141828*/        /*Scope*/ 28, /*->141857*/
/*141829*/          OPC_CheckPredicate, 62, // Predicate_X86fild16
/*141831*/          OPC_MoveParent,
/*141832*/          OPC_RecordChild2, // #3 = $src1
/*141833*/          OPC_CheckType, MVT::f64,
/*141835*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*141837*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*141840*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*141844*/          OPC_MorphNodeTo2, TARGET_VAL(X86::MUL_FpI16m64), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, MVT::i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (strict_fmul:{ *:[f64] } (X86fild:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86fild16>>, RFP64:{ *:[f64] }:$src1) - Complexity = 25
                    // Dst: (MUL_FpI16m64:{ *:[f64] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*141857*/        /*Scope*/ 28, /*->141886*/
/*141858*/          OPC_CheckPredicate, 63, // Predicate_X86fild32
/*141860*/          OPC_MoveParent,
/*141861*/          OPC_RecordChild2, // #3 = $src1
/*141862*/          OPC_CheckType, MVT::f64,
/*141864*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*141866*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*141869*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*141873*/          OPC_MorphNodeTo2, TARGET_VAL(X86::MUL_FpI32m64), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, MVT::i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (strict_fmul:{ *:[f64] } (X86fild:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86fild32>>, RFP64:{ *:[f64] }:$src1) - Complexity = 25
                    // Dst: (MUL_FpI32m64:{ *:[f64] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*141886*/        /*Scope*/ 26, /*->141913*/
/*141887*/          OPC_CheckPredicate, 62, // Predicate_X86fild16
/*141889*/          OPC_MoveParent,
/*141890*/          OPC_RecordChild2, // #3 = $src1
/*141891*/          OPC_CheckType, MVT::f80,
/*141893*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*141896*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*141900*/          OPC_MorphNodeTo2, TARGET_VAL(X86::MUL_FpI16m80), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f80, MVT::i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (strict_fmul:{ *:[f80] } (X86fild:{ *:[f80] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86fild16>>, RFP80:{ *:[f80] }:$src1) - Complexity = 25
                    // Dst: (MUL_FpI16m80:{ *:[f80] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, addr:{ *:[iPTR] }:$src2)
/*141913*/        /*Scope*/ 26, /*->141940*/
/*141914*/          OPC_CheckPredicate, 63, // Predicate_X86fild32
/*141916*/          OPC_MoveParent,
/*141917*/          OPC_RecordChild2, // #3 = $src1
/*141918*/          OPC_CheckType, MVT::f80,
/*141920*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*141923*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*141927*/          OPC_MorphNodeTo2, TARGET_VAL(X86::MUL_FpI32m80), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f80, MVT::i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (strict_fmul:{ *:[f80] } (X86fild:{ *:[f80] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86fild32>>, RFP80:{ *:[f80] }:$src1) - Complexity = 25
                    // Dst: (MUL_FpI32m80:{ *:[f80] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, addr:{ *:[iPTR] }:$src2)
/*141940*/        0, /*End of Scope*/
/*141941*/      0, // EndSwitchOpcode
/*141942*/    /*Scope*/ 28|128,1/*156*/, /*->142100*/
/*141944*/      OPC_RecordChild1, // #1 = $src1
/*141945*/      OPC_MoveChild2,
/*141946*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*141949*/      OPC_RecordMemRef,
/*141950*/      OPC_RecordNode, // #2 = 'ld' chained node
/*141951*/      OPC_CheckFoldableChainNode,
/*141952*/      OPC_RecordChild1, // #3 = $src2
/*141953*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*141955*/      OPC_CheckPredicate, 9, // Predicate_load
/*141957*/      OPC_MoveParent,
/*141958*/      OPC_SwitchType /*2 cases */, 68, MVT::f32,// ->142029
/*141961*/        OPC_Scope, 21, /*->141984*/ // 3 children in Scope
/*141963*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*141965*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*141968*/          OPC_EmitMergeInputChains, 2, 0, 2, 
/*141972*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                    // Src: (strict_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)
/*141984*/        /*Scope*/ 21, /*->142006*/
/*141985*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*141987*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*141990*/          OPC_EmitMergeInputChains, 2, 0, 2, 
/*141994*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MULSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                    // Src: (strict_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)
/*142006*/        /*Scope*/ 21, /*->142028*/
/*142007*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*142009*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*142012*/          OPC_EmitMergeInputChains, 2, 0, 2, 
/*142016*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                    // Src: (strict_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)
/*142028*/        0, /*End of Scope*/
/*142029*/      /*SwitchType*/ 68, MVT::f64,// ->142099
/*142031*/        OPC_Scope, 21, /*->142054*/ // 3 children in Scope
/*142033*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*142035*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*142038*/          OPC_EmitMergeInputChains, 2, 0, 2, 
/*142042*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                    // Src: (strict_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)
/*142054*/        /*Scope*/ 21, /*->142076*/
/*142055*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*142057*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*142060*/          OPC_EmitMergeInputChains, 2, 0, 2, 
/*142064*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MULSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                    // Src: (strict_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)
/*142076*/        /*Scope*/ 21, /*->142098*/
/*142077*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*142079*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*142082*/          OPC_EmitMergeInputChains, 2, 0, 2, 
/*142086*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                    // Src: (strict_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)
/*142098*/        0, /*End of Scope*/
/*142099*/      0, // EndSwitchType
/*142100*/    /*Scope*/ 28|128,1/*156*/, /*->142258*/
/*142102*/      OPC_MoveChild1,
/*142103*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*142106*/      OPC_RecordMemRef,
/*142107*/      OPC_RecordNode, // #1 = 'ld' chained node
/*142108*/      OPC_CheckFoldableChainNode,
/*142109*/      OPC_RecordChild1, // #2 = $src2
/*142110*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*142112*/      OPC_CheckPredicate, 9, // Predicate_load
/*142114*/      OPC_MoveParent,
/*142115*/      OPC_RecordChild2, // #3 = $src1
/*142116*/      OPC_SwitchType /*2 cases */, 68, MVT::f32,// ->142187
/*142119*/        OPC_Scope, 21, /*->142142*/ // 3 children in Scope
/*142121*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*142123*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*142126*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*142130*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (strict_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)
/*142142*/        /*Scope*/ 21, /*->142164*/
/*142143*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*142145*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*142148*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*142152*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MULSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (strict_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)
/*142164*/        /*Scope*/ 21, /*->142186*/
/*142165*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*142167*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*142170*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*142174*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (strict_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)
/*142186*/        0, /*End of Scope*/
/*142187*/      /*SwitchType*/ 68, MVT::f64,// ->142257
/*142189*/        OPC_Scope, 21, /*->142212*/ // 3 children in Scope
/*142191*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*142193*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*142196*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*142200*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (strict_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)
/*142212*/        /*Scope*/ 21, /*->142234*/
/*142213*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*142215*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*142218*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*142222*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MULSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (strict_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)
/*142234*/        /*Scope*/ 21, /*->142256*/
/*142235*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*142237*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*142240*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*142244*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (strict_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)
/*142256*/        0, /*End of Scope*/
/*142257*/      0, // EndSwitchType
/*142258*/    /*Scope*/ 91|128,4/*603*/, /*->142863*/
/*142260*/      OPC_RecordChild1, // #1 = $src1
/*142261*/      OPC_Scope, 121, /*->142384*/ // 2 children in Scope
/*142263*/        OPC_RecordChild2, // #2 = $src2
/*142264*/        OPC_SwitchType /*3 cases */, 51, MVT::f32,// ->142318
/*142267*/          OPC_Scope, 12, /*->142281*/ // 4 children in Scope
/*142269*/            OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*142271*/            OPC_EmitMergeInputChains1_0,
/*142272*/            OPC_MorphNodeTo2, TARGET_VAL(X86::MUL_Fp32), 0|OPFL_Chain,
                          MVT::f32, MVT::i16, 2/*#Ops*/, 1, 2, 
                      // Src: (strict_fmul:{ *:[f32] } RFP32:{ *:[f32] }:$src1, RFP32:{ *:[f32] }:$src2) - Complexity = 3
                      // Dst: (MUL_Fp32:{ *:[f32] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, RFP32:{ *:[f32] }:$src2)
/*142281*/          /*Scope*/ 11, /*->142293*/
/*142282*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*142284*/            OPC_EmitMergeInputChains1_0,
/*142285*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSSrr), 0|OPFL_Chain,
                          MVT::f32, 2/*#Ops*/, 1, 2, 
                      // Src: (strict_fmul:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2) - Complexity = 3
                      // Dst: (VMULSSrr:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2)
/*142293*/          /*Scope*/ 11, /*->142305*/
/*142294*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*142296*/            OPC_EmitMergeInputChains1_0,
/*142297*/            OPC_MorphNodeTo1, TARGET_VAL(X86::MULSSrr), 0|OPFL_Chain,
                          MVT::f32, 2/*#Ops*/, 1, 2, 
                      // Src: (strict_fmul:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2) - Complexity = 3
                      // Dst: (MULSSrr:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2)
/*142305*/          /*Scope*/ 11, /*->142317*/
/*142306*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*142308*/            OPC_EmitMergeInputChains1_0,
/*142309*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSSZrr), 0|OPFL_Chain,
                          MVT::f32, 2/*#Ops*/, 1, 2, 
                      // Src: (strict_fmul:{ *:[f32] } FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2) - Complexity = 3
                      // Dst: (VMULSSZrr:{ *:[f32] } FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2)
/*142317*/          0, /*End of Scope*/
/*142318*/        /*SwitchType*/ 51, MVT::f64,// ->142371
/*142320*/          OPC_Scope, 12, /*->142334*/ // 4 children in Scope
/*142322*/            OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*142324*/            OPC_EmitMergeInputChains1_0,
/*142325*/            OPC_MorphNodeTo2, TARGET_VAL(X86::MUL_Fp64), 0|OPFL_Chain,
                          MVT::f64, MVT::i16, 2/*#Ops*/, 1, 2, 
                      // Src: (strict_fmul:{ *:[f64] } RFP64:{ *:[f64] }:$src1, RFP64:{ *:[f64] }:$src2) - Complexity = 3
                      // Dst: (MUL_Fp64:{ *:[f64] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, RFP64:{ *:[f64] }:$src2)
/*142334*/          /*Scope*/ 11, /*->142346*/
/*142335*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*142337*/            OPC_EmitMergeInputChains1_0,
/*142338*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSDrr), 0|OPFL_Chain,
                          MVT::f64, 2/*#Ops*/, 1, 2, 
                      // Src: (strict_fmul:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2) - Complexity = 3
                      // Dst: (VMULSDrr:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2)
/*142346*/          /*Scope*/ 11, /*->142358*/
/*142347*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*142349*/            OPC_EmitMergeInputChains1_0,
/*142350*/            OPC_MorphNodeTo1, TARGET_VAL(X86::MULSDrr), 0|OPFL_Chain,
                          MVT::f64, 2/*#Ops*/, 1, 2, 
                      // Src: (strict_fmul:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2) - Complexity = 3
                      // Dst: (MULSDrr:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2)
/*142358*/          /*Scope*/ 11, /*->142370*/
/*142359*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*142361*/            OPC_EmitMergeInputChains1_0,
/*142362*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSDZrr), 0|OPFL_Chain,
                          MVT::f64, 2/*#Ops*/, 1, 2, 
                      // Src: (strict_fmul:{ *:[f64] } FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2) - Complexity = 3
                      // Dst: (VMULSDZrr:{ *:[f64] } FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2)
/*142370*/          0, /*End of Scope*/
/*142371*/        /*SwitchType*/ 10, MVT::f80,// ->142383
/*142373*/          OPC_EmitMergeInputChains1_0,
/*142374*/          OPC_MorphNodeTo2, TARGET_VAL(X86::MUL_Fp80), 0|OPFL_Chain,
                        MVT::f80, MVT::i16, 2/*#Ops*/, 1, 2, 
                    // Src: (strict_fmul:{ *:[f80] } RFP80:{ *:[f80] }:$src1, RFP80:{ *:[f80] }:$src2) - Complexity = 3
                    // Dst: (MUL_Fp80:{ *:[f80] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, RFP80:{ *:[f80] }:$src2)
/*142383*/        0, // EndSwitchType
/*142384*/      /*Scope*/ 92|128,3/*476*/, /*->142862*/
/*142386*/        OPC_MoveChild2,
/*142387*/        OPC_SwitchOpcode /*2 cases */, 45|128,2/*301*/, TARGET_VAL(ISD::LOAD),// ->142693
/*142392*/          OPC_RecordMemRef,
/*142393*/          OPC_RecordNode, // #2 = 'ld' chained node
/*142394*/          OPC_CheckFoldableChainNode,
/*142395*/          OPC_RecordChild1, // #3 = $src2
/*142396*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*142398*/          OPC_CheckPredicate, 9, // Predicate_load
/*142400*/          OPC_Scope, 95, /*->142497*/ // 3 children in Scope
/*142402*/            OPC_MoveParent,
/*142403*/            OPC_SwitchType /*4 cases */, 21, MVT::v4f32,// ->142427
/*142406*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*142408*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*142411*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*142415*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_fmul:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VMULPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*142427*/            /*SwitchType*/ 21, MVT::v2f64,// ->142450
/*142429*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*142431*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*142434*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*142438*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_fmul:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VMULPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*142450*/            /*SwitchType*/ 21, MVT::v8f32,// ->142473
/*142452*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*142454*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*142457*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*142461*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_fmul:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VMULPSYrm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*142473*/            /*SwitchType*/ 21, MVT::v4f64,// ->142496
/*142475*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*142477*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*142480*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*142484*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_fmul:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VMULPDYrm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*142496*/            0, // EndSwitchType
/*142497*/          /*Scope*/ 51, /*->142549*/
/*142498*/            OPC_CheckPredicate, 39, // Predicate_memop
/*142500*/            OPC_MoveParent,
/*142501*/            OPC_SwitchType /*2 cases */, 21, MVT::v4f32,// ->142525
/*142504*/              OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*142506*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*142509*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*142513*/              OPC_MorphNodeTo1, TARGET_VAL(X86::MULPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_fmul:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                        // Dst: (MULPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*142525*/            /*SwitchType*/ 21, MVT::v2f64,// ->142548
/*142527*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*142529*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*142532*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*142536*/              OPC_MorphNodeTo1, TARGET_VAL(X86::MULPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_fmul:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                        // Dst: (MULPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*142548*/            0, // EndSwitchType
/*142549*/          /*Scope*/ 13|128,1/*141*/, /*->142692*/
/*142551*/            OPC_MoveParent,
/*142552*/            OPC_SwitchType /*6 cases */, 21, MVT::v16f32,// ->142576
/*142555*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*142557*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*142560*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*142564*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_fmul:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VMULPSZrm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*142576*/            /*SwitchType*/ 21, MVT::v8f64,// ->142599
/*142578*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*142580*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*142583*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*142587*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_fmul:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VMULPDZrm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*142599*/            /*SwitchType*/ 21, MVT::v4f32,// ->142622
/*142601*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*142603*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*142606*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*142610*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_fmul:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VMULPSZ128rm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*142622*/            /*SwitchType*/ 21, MVT::v8f32,// ->142645
/*142624*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*142626*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*142629*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*142633*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_fmul:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VMULPSZ256rm:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*142645*/            /*SwitchType*/ 21, MVT::v2f64,// ->142668
/*142647*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*142649*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*142652*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*142656*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_fmul:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VMULPDZ128rm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*142668*/            /*SwitchType*/ 21, MVT::v4f64,// ->142691
/*142670*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*142672*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*142675*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*142679*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_fmul:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VMULPDZ256rm:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*142691*/            0, // EndSwitchType
/*142692*/          0, /*End of Scope*/
/*142693*/        /*SwitchOpcode*/ 36|128,1/*164*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->142861
/*142697*/          OPC_RecordMemRef,
/*142698*/          OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*142699*/          OPC_CheckFoldableChainNode,
/*142700*/          OPC_RecordChild1, // #3 = $src2
/*142701*/          OPC_Scope, 26, /*->142729*/ // 4 children in Scope
/*142703*/            OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*142705*/            OPC_MoveParent,
/*142706*/            OPC_CheckType, MVT::v16f32,
/*142708*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*142710*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*142713*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*142717*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                      // Src: (strict_fmul:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VMULPSZrmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*142729*/          /*Scope*/ 26, /*->142756*/
/*142730*/            OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*142732*/            OPC_MoveParent,
/*142733*/            OPC_CheckType, MVT::v8f64,
/*142735*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*142737*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*142740*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*142744*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                      // Src: (strict_fmul:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VMULPDZrmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*142756*/          /*Scope*/ 51, /*->142808*/
/*142757*/            OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*142759*/            OPC_MoveParent,
/*142760*/            OPC_SwitchType /*2 cases */, 21, MVT::v4f32,// ->142784
/*142763*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*142765*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*142768*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*142772*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_fmul:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VMULPSZ128rmb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*142784*/            /*SwitchType*/ 21, MVT::v8f32,// ->142807
/*142786*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*142788*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*142791*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*142795*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_fmul:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VMULPSZ256rmb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*142807*/            0, // EndSwitchType
/*142808*/          /*Scope*/ 51, /*->142860*/
/*142809*/            OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*142811*/            OPC_MoveParent,
/*142812*/            OPC_SwitchType /*2 cases */, 21, MVT::v2f64,// ->142836
/*142815*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*142817*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*142820*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*142824*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_fmul:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VMULPDZ128rmb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*142836*/            /*SwitchType*/ 21, MVT::v4f64,// ->142859
/*142838*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*142840*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*142843*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*142847*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_fmul:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VMULPDZ256rmb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*142859*/            0, // EndSwitchType
/*142860*/          0, /*End of Scope*/
/*142861*/        0, // EndSwitchOpcode
/*142862*/      0, /*End of Scope*/
/*142863*/    /*Scope*/ 99|128,3/*483*/, /*->143348*/
/*142865*/      OPC_MoveChild1,
/*142866*/      OPC_SwitchOpcode /*2 cases */, 48|128,2/*304*/, TARGET_VAL(ISD::LOAD),// ->143175
/*142871*/        OPC_RecordMemRef,
/*142872*/        OPC_RecordNode, // #1 = 'ld' chained node
/*142873*/        OPC_CheckFoldableChainNode,
/*142874*/        OPC_RecordChild1, // #2 = $src2
/*142875*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*142877*/        OPC_CheckPredicate, 9, // Predicate_load
/*142879*/        OPC_Scope, 96, /*->142977*/ // 3 children in Scope
/*142881*/          OPC_MoveParent,
/*142882*/          OPC_RecordChild2, // #3 = $src1
/*142883*/          OPC_SwitchType /*4 cases */, 21, MVT::v4f32,// ->142907
/*142886*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*142888*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*142891*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*142895*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (strict_fmul:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v4f32] }:$src1) - Complexity = 25
                      // Dst: (VMULPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*142907*/          /*SwitchType*/ 21, MVT::v2f64,// ->142930
/*142909*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*142911*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*142914*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*142918*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (strict_fmul:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v2f64] }:$src1) - Complexity = 25
                      // Dst: (VMULPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*142930*/          /*SwitchType*/ 21, MVT::v8f32,// ->142953
/*142932*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*142934*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*142937*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*142941*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (strict_fmul:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v8f32] }:$src1) - Complexity = 25
                      // Dst: (VMULPSYrm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*142953*/          /*SwitchType*/ 21, MVT::v4f64,// ->142976
/*142955*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*142957*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*142960*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*142964*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (strict_fmul:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v4f64] }:$src1) - Complexity = 25
                      // Dst: (VMULPDYrm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*142976*/          0, // EndSwitchType
/*142977*/        /*Scope*/ 52, /*->143030*/
/*142978*/          OPC_CheckPredicate, 39, // Predicate_memop
/*142980*/          OPC_MoveParent,
/*142981*/          OPC_RecordChild2, // #3 = $src1
/*142982*/          OPC_SwitchType /*2 cases */, 21, MVT::v4f32,// ->143006
/*142985*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*142987*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*142990*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*142994*/            OPC_MorphNodeTo1, TARGET_VAL(X86::MULPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (strict_fmul:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:{ *:[v4f32] }:$src1) - Complexity = 25
                      // Dst: (MULPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*143006*/          /*SwitchType*/ 21, MVT::v2f64,// ->143029
/*143008*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*143010*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*143013*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*143017*/            OPC_MorphNodeTo1, TARGET_VAL(X86::MULPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (strict_fmul:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:{ *:[v2f64] }:$src1) - Complexity = 25
                      // Dst: (MULPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*143029*/          0, // EndSwitchType
/*143030*/        /*Scope*/ 14|128,1/*142*/, /*->143174*/
/*143032*/          OPC_MoveParent,
/*143033*/          OPC_RecordChild2, // #3 = $src1
/*143034*/          OPC_SwitchType /*6 cases */, 21, MVT::v16f32,// ->143058
/*143037*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*143039*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*143042*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*143046*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (strict_fmul:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16f32] }:$src1) - Complexity = 25
                      // Dst: (VMULPSZrm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*143058*/          /*SwitchType*/ 21, MVT::v8f64,// ->143081
/*143060*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*143062*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*143065*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*143069*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (strict_fmul:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v8f64] }:$src1) - Complexity = 25
                      // Dst: (VMULPDZrm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*143081*/          /*SwitchType*/ 21, MVT::v4f32,// ->143104
/*143083*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*143085*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*143088*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*143092*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (strict_fmul:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4f32] }:$src1) - Complexity = 25
                      // Dst: (VMULPSZ128rm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*143104*/          /*SwitchType*/ 21, MVT::v8f32,// ->143127
/*143106*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*143108*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*143111*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*143115*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (strict_fmul:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8f32] }:$src1) - Complexity = 25
                      // Dst: (VMULPSZ256rm:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*143127*/          /*SwitchType*/ 21, MVT::v2f64,// ->143150
/*143129*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*143131*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*143134*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*143138*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (strict_fmul:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v2f64] }:$src1) - Complexity = 25
                      // Dst: (VMULPDZ128rm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*143150*/          /*SwitchType*/ 21, MVT::v4f64,// ->143173
/*143152*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*143154*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*143157*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*143161*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (strict_fmul:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v4f64] }:$src1) - Complexity = 25
                      // Dst: (VMULPDZ256rm:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*143173*/          0, // EndSwitchType
/*143174*/        0, /*End of Scope*/
/*143175*/      /*SwitchOpcode*/ 40|128,1/*168*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->143347
/*143179*/        OPC_RecordMemRef,
/*143180*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*143181*/        OPC_CheckFoldableChainNode,
/*143182*/        OPC_RecordChild1, // #2 = $src2
/*143183*/        OPC_Scope, 27, /*->143212*/ // 4 children in Scope
/*143185*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*143187*/          OPC_MoveParent,
/*143188*/          OPC_RecordChild2, // #3 = $src1
/*143189*/          OPC_CheckType, MVT::v16f32,
/*143191*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*143193*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*143196*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*143200*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (strict_fmul:{ *:[v16f32] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src1) - Complexity = 25
                    // Dst: (VMULPSZrmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*143212*/        /*Scope*/ 27, /*->143240*/
/*143213*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*143215*/          OPC_MoveParent,
/*143216*/          OPC_RecordChild2, // #3 = $src1
/*143217*/          OPC_CheckType, MVT::v8f64,
/*143219*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*143221*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*143224*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*143228*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (strict_fmul:{ *:[v8f64] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src1) - Complexity = 25
                    // Dst: (VMULPDZrmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*143240*/        /*Scope*/ 52, /*->143293*/
/*143241*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*143243*/          OPC_MoveParent,
/*143244*/          OPC_RecordChild2, // #3 = $src1
/*143245*/          OPC_SwitchType /*2 cases */, 21, MVT::v4f32,// ->143269
/*143248*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*143250*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*143253*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*143257*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (strict_fmul:{ *:[v4f32] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1) - Complexity = 25
                      // Dst: (VMULPSZ128rmb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*143269*/          /*SwitchType*/ 21, MVT::v8f32,// ->143292
/*143271*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*143273*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*143276*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*143280*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (strict_fmul:{ *:[v8f32] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1) - Complexity = 25
                      // Dst: (VMULPSZ256rmb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*143292*/          0, // EndSwitchType
/*143293*/        /*Scope*/ 52, /*->143346*/
/*143294*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*143296*/          OPC_MoveParent,
/*143297*/          OPC_RecordChild2, // #3 = $src1
/*143298*/          OPC_SwitchType /*2 cases */, 21, MVT::v2f64,// ->143322
/*143301*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*143303*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*143306*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*143310*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (strict_fmul:{ *:[v2f64] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1) - Complexity = 25
                      // Dst: (VMULPDZ128rmb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*143322*/          /*SwitchType*/ 21, MVT::v4f64,// ->143345
/*143324*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*143326*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*143329*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*143333*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (strict_fmul:{ *:[v4f64] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1) - Complexity = 25
                      // Dst: (VMULPDZ256rmb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*143345*/          0, // EndSwitchType
/*143346*/        0, /*End of Scope*/
/*143347*/      0, // EndSwitchOpcode
/*143348*/    /*Scope*/ 38|128,1/*166*/, /*->143516*/
/*143350*/      OPC_RecordChild1, // #1 = $src1
/*143351*/      OPC_RecordChild2, // #2 = $src2
/*143352*/      OPC_SwitchType /*6 cases */, 38, MVT::v4f32,// ->143393
/*143355*/        OPC_Scope, 11, /*->143368*/ // 3 children in Scope
/*143357*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*143359*/          OPC_EmitMergeInputChains1_0,
/*143360*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSrr), 0|OPFL_Chain,
                        MVT::v4f32, 2/*#Ops*/, 1, 2, 
                    // Src: (strict_fmul:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2) - Complexity = 3
                    // Dst: (VMULPSrr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2)
/*143368*/        /*Scope*/ 11, /*->143380*/
/*143369*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*143371*/          OPC_EmitMergeInputChains1_0,
/*143372*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MULPSrr), 0|OPFL_Chain,
                        MVT::v4f32, 2/*#Ops*/, 1, 2, 
                    // Src: (strict_fmul:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2) - Complexity = 3
                    // Dst: (MULPSrr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2)
/*143380*/        /*Scope*/ 11, /*->143392*/
/*143381*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*143383*/          OPC_EmitMergeInputChains1_0,
/*143384*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZ128rr), 0|OPFL_Chain,
                        MVT::v4f32, 2/*#Ops*/, 1, 2, 
                    // Src: (strict_fmul:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2) - Complexity = 3
                    // Dst: (VMULPSZ128rr:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*143392*/        0, /*End of Scope*/
/*143393*/      /*SwitchType*/ 38, MVT::v2f64,// ->143433
/*143395*/        OPC_Scope, 11, /*->143408*/ // 3 children in Scope
/*143397*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*143399*/          OPC_EmitMergeInputChains1_0,
/*143400*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDrr), 0|OPFL_Chain,
                        MVT::v2f64, 2/*#Ops*/, 1, 2, 
                    // Src: (strict_fmul:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2) - Complexity = 3
                    // Dst: (VMULPDrr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2)
/*143408*/        /*Scope*/ 11, /*->143420*/
/*143409*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*143411*/          OPC_EmitMergeInputChains1_0,
/*143412*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MULPDrr), 0|OPFL_Chain,
                        MVT::v2f64, 2/*#Ops*/, 1, 2, 
                    // Src: (strict_fmul:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2) - Complexity = 3
                    // Dst: (MULPDrr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2)
/*143420*/        /*Scope*/ 11, /*->143432*/
/*143421*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*143423*/          OPC_EmitMergeInputChains1_0,
/*143424*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZ128rr), 0|OPFL_Chain,
                        MVT::v2f64, 2/*#Ops*/, 1, 2, 
                    // Src: (strict_fmul:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2) - Complexity = 3
                    // Dst: (VMULPDZ128rr:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*143432*/        0, /*End of Scope*/
/*143433*/      /*SwitchType*/ 26, MVT::v8f32,// ->143461
/*143435*/        OPC_Scope, 11, /*->143448*/ // 2 children in Scope
/*143437*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*143439*/          OPC_EmitMergeInputChains1_0,
/*143440*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSYrr), 0|OPFL_Chain,
                        MVT::v8f32, 2/*#Ops*/, 1, 2, 
                    // Src: (strict_fmul:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2) - Complexity = 3
                    // Dst: (VMULPSYrr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2)
/*143448*/        /*Scope*/ 11, /*->143460*/
/*143449*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*143451*/          OPC_EmitMergeInputChains1_0,
/*143452*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZ256rr), 0|OPFL_Chain,
                        MVT::v8f32, 2/*#Ops*/, 1, 2, 
                    // Src: (strict_fmul:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2) - Complexity = 3
                    // Dst: (VMULPSZ256rr:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2)
/*143460*/        0, /*End of Scope*/
/*143461*/      /*SwitchType*/ 26, MVT::v4f64,// ->143489
/*143463*/        OPC_Scope, 11, /*->143476*/ // 2 children in Scope
/*143465*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*143467*/          OPC_EmitMergeInputChains1_0,
/*143468*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDYrr), 0|OPFL_Chain,
                        MVT::v4f64, 2/*#Ops*/, 1, 2, 
                    // Src: (strict_fmul:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2) - Complexity = 3
                    // Dst: (VMULPDYrr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2)
/*143476*/        /*Scope*/ 11, /*->143488*/
/*143477*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*143479*/          OPC_EmitMergeInputChains1_0,
/*143480*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZ256rr), 0|OPFL_Chain,
                        MVT::v4f64, 2/*#Ops*/, 1, 2, 
                    // Src: (strict_fmul:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2) - Complexity = 3
                    // Dst: (VMULPDZ256rr:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2)
/*143488*/        0, /*End of Scope*/
/*143489*/      /*SwitchType*/ 11, MVT::v16f32,// ->143502
/*143491*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*143493*/        OPC_EmitMergeInputChains1_0,
/*143494*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZrr), 0|OPFL_Chain,
                      MVT::v16f32, 2/*#Ops*/, 1, 2, 
                  // Src: (strict_fmul:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2) - Complexity = 3
                  // Dst: (VMULPSZrr:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*143502*/      /*SwitchType*/ 11, MVT::v8f64,// ->143515
/*143504*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*143506*/        OPC_EmitMergeInputChains1_0,
/*143507*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZrr), 0|OPFL_Chain,
                      MVT::v8f64, 2/*#Ops*/, 1, 2, 
                  // Src: (strict_fmul:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2) - Complexity = 3
                  // Dst: (VMULPDZrr:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*143515*/      0, // EndSwitchType
/*143516*/    0, /*End of Scope*/
/*143517*/  /*SwitchOpcode*/ 89|128,15/*2009*/, TARGET_VAL(ISD::FMUL),// ->145530
/*143521*/    OPC_Scope, 38|128,2/*294*/, /*->143818*/ // 7 children in Scope
/*143524*/      OPC_RecordChild0, // #0 = $src1
/*143525*/      OPC_MoveChild1,
/*143526*/      OPC_SwitchOpcode /*2 cases */, 2|128,1/*130*/, TARGET_VAL(ISD::LOAD),// ->143661
/*143531*/        OPC_RecordMemRef,
/*143532*/        OPC_RecordNode, // #1 = 'ld' chained node
/*143533*/        OPC_CheckFoldableChainNode,
/*143534*/        OPC_RecordChild1, // #2 = $src2
/*143535*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*143537*/        OPC_Scope, 47, /*->143586*/ // 2 children in Scope
/*143539*/          OPC_CheckPredicate, 9, // Predicate_load
/*143541*/          OPC_MoveParent,
/*143542*/          OPC_SwitchType /*2 cases */, 19, MVT::f32,// ->143564
/*143545*/            OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*143547*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*143550*/            OPC_EmitMergeInputChains1_1,
/*143551*/            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)
/*143564*/          /*SwitchType*/ 19, MVT::f64,// ->143585
/*143566*/            OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*143568*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*143571*/            OPC_EmitMergeInputChains1_1,
/*143572*/            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)
/*143585*/          0, // EndSwitchType
/*143586*/        /*Scope*/ 73, /*->143660*/
/*143587*/          OPC_CheckPredicate, 70, // Predicate_extload
/*143589*/          OPC_Scope, 45, /*->143636*/ // 2 children in Scope
/*143591*/            OPC_CheckPredicate, 21, // Predicate_extloadf32
/*143593*/            OPC_MoveParent,
/*143594*/            OPC_SwitchType /*2 cases */, 19, MVT::f64,// ->143616
/*143597*/              OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*143599*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*143602*/              OPC_EmitMergeInputChains1_1,
/*143603*/              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)
/*143616*/            /*SwitchType*/ 17, MVT::f80,// ->143635
/*143618*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*143621*/              OPC_EmitMergeInputChains1_1,
/*143622*/              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)
/*143635*/            0, // EndSwitchType
/*143636*/          /*Scope*/ 22, /*->143659*/
/*143637*/            OPC_CheckPredicate, 22, // Predicate_extloadf64
/*143639*/            OPC_MoveParent,
/*143640*/            OPC_CheckType, MVT::f80,
/*143642*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*143645*/            OPC_EmitMergeInputChains1_1,
/*143646*/            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)
/*143659*/          0, /*End of Scope*/
/*143660*/        0, /*End of Scope*/
/*143661*/      /*SwitchOpcode*/ 24|128,1/*152*/, TARGET_VAL(X86ISD::FILD),// ->143817
/*143665*/        OPC_RecordMemRef,
/*143666*/        OPC_RecordNode, // #1 = 'X86fild' chained node
/*143667*/        OPC_CheckFoldableChainNode,
/*143668*/        OPC_RecordChild1, // #2 = $src2
/*143669*/        OPC_Scope, 24, /*->143695*/ // 6 children in Scope
/*143671*/          OPC_CheckPredicate, 62, // Predicate_X86fild16
/*143673*/          OPC_MoveParent,
/*143674*/          OPC_CheckType, MVT::f32,
/*143676*/          OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*143678*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*143681*/          OPC_EmitMergeInputChains1_1,
/*143682*/          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)<<P:Predicate_X86fild16>>) - Complexity = 25
                    // Dst: (MUL_FpI16m32:{ *:[f32] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*143695*/        /*Scope*/ 24, /*->143720*/
/*143696*/          OPC_CheckPredicate, 63, // Predicate_X86fild32
/*143698*/          OPC_MoveParent,
/*143699*/          OPC_CheckType, MVT::f32,
/*143701*/          OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*143703*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*143706*/          OPC_EmitMergeInputChains1_1,
/*143707*/          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)<<P:Predicate_X86fild32>>) - Complexity = 25
                    // Dst: (MUL_FpI32m32:{ *:[f32] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*143720*/        /*Scope*/ 24, /*->143745*/
/*143721*/          OPC_CheckPredicate, 62, // Predicate_X86fild16
/*143723*/          OPC_MoveParent,
/*143724*/          OPC_CheckType, MVT::f64,
/*143726*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*143728*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*143731*/          OPC_EmitMergeInputChains1_1,
/*143732*/          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)<<P:Predicate_X86fild16>>) - Complexity = 25
                    // Dst: (MUL_FpI16m64:{ *:[f64] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*143745*/        /*Scope*/ 24, /*->143770*/
/*143746*/          OPC_CheckPredicate, 63, // Predicate_X86fild32
/*143748*/          OPC_MoveParent,
/*143749*/          OPC_CheckType, MVT::f64,
/*143751*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*143753*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*143756*/          OPC_EmitMergeInputChains1_1,
/*143757*/          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)<<P:Predicate_X86fild32>>) - Complexity = 25
                    // Dst: (MUL_FpI32m64:{ *:[f64] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*143770*/        /*Scope*/ 22, /*->143793*/
/*143771*/          OPC_CheckPredicate, 62, // Predicate_X86fild16
/*143773*/          OPC_MoveParent,
/*143774*/          OPC_CheckType, MVT::f80,
/*143776*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*143779*/          OPC_EmitMergeInputChains1_1,
/*143780*/          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)<<P:Predicate_X86fild16>>) - Complexity = 25
                    // Dst: (MUL_FpI16m80:{ *:[f80] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, addr:{ *:[iPTR] }:$src2)
/*143793*/        /*Scope*/ 22, /*->143816*/
/*143794*/          OPC_CheckPredicate, 63, // Predicate_X86fild32
/*143796*/          OPC_MoveParent,
/*143797*/          OPC_CheckType, MVT::f80,
/*143799*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*143802*/          OPC_EmitMergeInputChains1_1,
/*143803*/          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)<<P:Predicate_X86fild32>>) - Complexity = 25
                    // Dst: (MUL_FpI32m80:{ *:[f80] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, addr:{ *:[iPTR] }:$src2)
/*143816*/        0, /*End of Scope*/
/*143817*/      0, // EndSwitchOpcode
/*143818*/    /*Scope*/ 46|128,2/*302*/, /*->144122*/
/*143820*/      OPC_MoveChild0,
/*143821*/      OPC_SwitchOpcode /*2 cases */, 5|128,1/*133*/, TARGET_VAL(ISD::LOAD),// ->143959
/*143826*/        OPC_RecordMemRef,
/*143827*/        OPC_RecordNode, // #0 = 'ld' chained node
/*143828*/        OPC_CheckFoldableChainNode,
/*143829*/        OPC_RecordChild1, // #1 = $src2
/*143830*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*143832*/        OPC_Scope, 48, /*->143882*/ // 2 children in Scope
/*143834*/          OPC_CheckPredicate, 9, // Predicate_load
/*143836*/          OPC_MoveParent,
/*143837*/          OPC_RecordChild1, // #2 = $src1
/*143838*/          OPC_SwitchType /*2 cases */, 19, MVT::f32,// ->143860
/*143841*/            OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*143843*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*143846*/            OPC_EmitMergeInputChains1_0,
/*143847*/            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)
/*143860*/          /*SwitchType*/ 19, MVT::f64,// ->143881
/*143862*/            OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*143864*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*143867*/            OPC_EmitMergeInputChains1_0,
/*143868*/            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)
/*143881*/          0, // EndSwitchType
/*143882*/        /*Scope*/ 75, /*->143958*/
/*143883*/          OPC_CheckPredicate, 70, // Predicate_extload
/*143885*/          OPC_Scope, 46, /*->143933*/ // 2 children in Scope
/*143887*/            OPC_CheckPredicate, 21, // Predicate_extloadf32
/*143889*/            OPC_MoveParent,
/*143890*/            OPC_RecordChild1, // #2 = $src1
/*143891*/            OPC_SwitchType /*2 cases */, 19, MVT::f64,// ->143913
/*143894*/              OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*143896*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*143899*/              OPC_EmitMergeInputChains1_0,
/*143900*/              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)
/*143913*/            /*SwitchType*/ 17, MVT::f80,// ->143932
/*143915*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*143918*/              OPC_EmitMergeInputChains1_0,
/*143919*/              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)
/*143932*/            0, // EndSwitchType
/*143933*/          /*Scope*/ 23, /*->143957*/
/*143934*/            OPC_CheckPredicate, 22, // Predicate_extloadf64
/*143936*/            OPC_MoveParent,
/*143937*/            OPC_RecordChild1, // #2 = $src1
/*143938*/            OPC_CheckType, MVT::f80,
/*143940*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*143943*/            OPC_EmitMergeInputChains1_0,
/*143944*/            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)
/*143957*/          0, /*End of Scope*/
/*143958*/        0, /*End of Scope*/
/*143959*/      /*SwitchOpcode*/ 30|128,1/*158*/, TARGET_VAL(X86ISD::FILD),// ->144121
/*143963*/        OPC_RecordMemRef,
/*143964*/        OPC_RecordNode, // #0 = 'X86fild' chained node
/*143965*/        OPC_CheckFoldableChainNode,
/*143966*/        OPC_RecordChild1, // #1 = $src2
/*143967*/        OPC_Scope, 25, /*->143994*/ // 6 children in Scope
/*143969*/          OPC_CheckPredicate, 62, // Predicate_X86fild16
/*143971*/          OPC_MoveParent,
/*143972*/          OPC_RecordChild1, // #2 = $src1
/*143973*/          OPC_CheckType, MVT::f32,
/*143975*/          OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*143977*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*143980*/          OPC_EmitMergeInputChains1_0,
/*143981*/          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)<<P:Predicate_X86fild16>>, RFP32:{ *:[f32] }:$src1) - Complexity = 25
                    // Dst: (MUL_FpI16m32:{ *:[f32] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*143994*/        /*Scope*/ 25, /*->144020*/
/*143995*/          OPC_CheckPredicate, 63, // Predicate_X86fild32
/*143997*/          OPC_MoveParent,
/*143998*/          OPC_RecordChild1, // #2 = $src1
/*143999*/          OPC_CheckType, MVT::f32,
/*144001*/          OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*144003*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*144006*/          OPC_EmitMergeInputChains1_0,
/*144007*/          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)<<P:Predicate_X86fild32>>, RFP32:{ *:[f32] }:$src1) - Complexity = 25
                    // Dst: (MUL_FpI32m32:{ *:[f32] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*144020*/        /*Scope*/ 25, /*->144046*/
/*144021*/          OPC_CheckPredicate, 62, // Predicate_X86fild16
/*144023*/          OPC_MoveParent,
/*144024*/          OPC_RecordChild1, // #2 = $src1
/*144025*/          OPC_CheckType, MVT::f64,
/*144027*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*144029*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*144032*/          OPC_EmitMergeInputChains1_0,
/*144033*/          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)<<P:Predicate_X86fild16>>, RFP64:{ *:[f64] }:$src1) - Complexity = 25
                    // Dst: (MUL_FpI16m64:{ *:[f64] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*144046*/        /*Scope*/ 25, /*->144072*/
/*144047*/          OPC_CheckPredicate, 63, // Predicate_X86fild32
/*144049*/          OPC_MoveParent,
/*144050*/          OPC_RecordChild1, // #2 = $src1
/*144051*/          OPC_CheckType, MVT::f64,
/*144053*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*144055*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*144058*/          OPC_EmitMergeInputChains1_0,
/*144059*/          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)<<P:Predicate_X86fild32>>, RFP64:{ *:[f64] }:$src1) - Complexity = 25
                    // Dst: (MUL_FpI32m64:{ *:[f64] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*144072*/        /*Scope*/ 23, /*->144096*/
/*144073*/          OPC_CheckPredicate, 62, // Predicate_X86fild16
/*144075*/          OPC_MoveParent,
/*144076*/          OPC_RecordChild1, // #2 = $src1
/*144077*/          OPC_CheckType, MVT::f80,
/*144079*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*144082*/          OPC_EmitMergeInputChains1_0,
/*144083*/          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)<<P:Predicate_X86fild16>>, RFP80:{ *:[f80] }:$src1) - Complexity = 25
                    // Dst: (MUL_FpI16m80:{ *:[f80] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, addr:{ *:[iPTR] }:$src2)
/*144096*/        /*Scope*/ 23, /*->144120*/
/*144097*/          OPC_CheckPredicate, 63, // Predicate_X86fild32
/*144099*/          OPC_MoveParent,
/*144100*/          OPC_RecordChild1, // #2 = $src1
/*144101*/          OPC_CheckType, MVT::f80,
/*144103*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*144106*/          OPC_EmitMergeInputChains1_0,
/*144107*/          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)<<P:Predicate_X86fild32>>, RFP80:{ *:[f80] }:$src1) - Complexity = 25
                    // Dst: (MUL_FpI32m80:{ *:[f80] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, addr:{ *:[iPTR] }:$src2)
/*144120*/        0, /*End of Scope*/
/*144121*/      0, // EndSwitchOpcode
/*144122*/    /*Scope*/ 10|128,1/*138*/, /*->144262*/
/*144124*/      OPC_RecordChild0, // #0 = $src1
/*144125*/      OPC_MoveChild1,
/*144126*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*144129*/      OPC_RecordMemRef,
/*144130*/      OPC_RecordNode, // #1 = 'ld' chained node
/*144131*/      OPC_CheckFoldableChainNode,
/*144132*/      OPC_RecordChild1, // #2 = $src2
/*144133*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*144135*/      OPC_CheckPredicate, 9, // Predicate_load
/*144137*/      OPC_MoveParent,
/*144138*/      OPC_SwitchType /*2 cases */, 59, MVT::f32,// ->144200
/*144141*/        OPC_Scope, 18, /*->144161*/ // 3 children in Scope
/*144143*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*144145*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*144148*/          OPC_EmitMergeInputChains1_1,
/*144149*/          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)
/*144161*/        /*Scope*/ 18, /*->144180*/
/*144162*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*144164*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*144167*/          OPC_EmitMergeInputChains1_1,
/*144168*/          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)
/*144180*/        /*Scope*/ 18, /*->144199*/
/*144181*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*144183*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*144186*/          OPC_EmitMergeInputChains1_1,
/*144187*/          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)
/*144199*/        0, /*End of Scope*/
/*144200*/      /*SwitchType*/ 59, MVT::f64,// ->144261
/*144202*/        OPC_Scope, 18, /*->144222*/ // 3 children in Scope
/*144204*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*144206*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*144209*/          OPC_EmitMergeInputChains1_1,
/*144210*/          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)
/*144222*/        /*Scope*/ 18, /*->144241*/
/*144223*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*144225*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*144228*/          OPC_EmitMergeInputChains1_1,
/*144229*/          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)
/*144241*/        /*Scope*/ 18, /*->144260*/
/*144242*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*144244*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*144247*/          OPC_EmitMergeInputChains1_1,
/*144248*/          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)
/*144260*/        0, /*End of Scope*/
/*144261*/      0, // EndSwitchType
/*144262*/    /*Scope*/ 10|128,1/*138*/, /*->144402*/
/*144264*/      OPC_MoveChild0,
/*144265*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*144268*/      OPC_RecordMemRef,
/*144269*/      OPC_RecordNode, // #0 = 'ld' chained node
/*144270*/      OPC_CheckFoldableChainNode,
/*144271*/      OPC_RecordChild1, // #1 = $src2
/*144272*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*144274*/      OPC_CheckPredicate, 9, // Predicate_load
/*144276*/      OPC_MoveParent,
/*144277*/      OPC_RecordChild1, // #2 = $src1
/*144278*/      OPC_SwitchType /*2 cases */, 59, MVT::f32,// ->144340
/*144281*/        OPC_Scope, 18, /*->144301*/ // 3 children in Scope
/*144283*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*144285*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*144288*/          OPC_EmitMergeInputChains1_0,
/*144289*/          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)
/*144301*/        /*Scope*/ 18, /*->144320*/
/*144302*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*144304*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*144307*/          OPC_EmitMergeInputChains1_0,
/*144308*/          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)
/*144320*/        /*Scope*/ 18, /*->144339*/
/*144321*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*144323*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*144326*/          OPC_EmitMergeInputChains1_0,
/*144327*/          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)
/*144339*/        0, /*End of Scope*/
/*144340*/      /*SwitchType*/ 59, MVT::f64,// ->144401
/*144342*/        OPC_Scope, 18, /*->144362*/ // 3 children in Scope
/*144344*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*144346*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*144349*/          OPC_EmitMergeInputChains1_0,
/*144350*/          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)
/*144362*/        /*Scope*/ 18, /*->144381*/
/*144363*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*144365*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*144368*/          OPC_EmitMergeInputChains1_0,
/*144369*/          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)
/*144381*/        /*Scope*/ 18, /*->144400*/
/*144382*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*144384*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*144387*/          OPC_EmitMergeInputChains1_0,
/*144388*/          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)
/*144400*/        0, /*End of Scope*/
/*144401*/      0, // EndSwitchType
/*144402*/    /*Scope*/ 27|128,4/*539*/, /*->144943*/
/*144404*/      OPC_RecordChild0, // #0 = $src1
/*144405*/      OPC_Scope, 112, /*->144519*/ // 2 children in Scope
/*144407*/        OPC_RecordChild1, // #1 = $src2
/*144408*/        OPC_SwitchType /*3 cases */, 47, MVT::f32,// ->144458
/*144411*/          OPC_Scope, 11, /*->144424*/ // 4 children in Scope
/*144413*/            OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*144415*/            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)
/*144424*/          /*Scope*/ 10, /*->144435*/
/*144425*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*144427*/            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)
/*144435*/          /*Scope*/ 10, /*->144446*/
/*144436*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*144438*/            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)
/*144446*/          /*Scope*/ 10, /*->144457*/
/*144447*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*144449*/            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)
/*144457*/          0, /*End of Scope*/
/*144458*/        /*SwitchType*/ 47, MVT::f64,// ->144507
/*144460*/          OPC_Scope, 11, /*->144473*/ // 4 children in Scope
/*144462*/            OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*144464*/            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)
/*144473*/          /*Scope*/ 10, /*->144484*/
/*144474*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*144476*/            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)
/*144484*/          /*Scope*/ 10, /*->144495*/
/*144485*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*144487*/            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)
/*144495*/          /*Scope*/ 10, /*->144506*/
/*144496*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*144498*/            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)
/*144506*/          0, /*End of Scope*/
/*144507*/        /*SwitchType*/ 9, MVT::f80,// ->144518
/*144509*/          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)
/*144518*/        0, // EndSwitchType
/*144519*/      /*Scope*/ 37|128,3/*421*/, /*->144942*/
/*144521*/        OPC_MoveChild1,
/*144522*/        OPC_SwitchOpcode /*2 cases */, 8|128,2/*264*/, TARGET_VAL(ISD::LOAD),// ->144791
/*144527*/          OPC_RecordMemRef,
/*144528*/          OPC_RecordNode, // #1 = 'ld' chained node
/*144529*/          OPC_CheckFoldableChainNode,
/*144530*/          OPC_RecordChild1, // #2 = $src2
/*144531*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*144533*/          OPC_CheckPredicate, 9, // Predicate_load
/*144535*/          OPC_Scope, 83, /*->144620*/ // 3 children in Scope
/*144537*/            OPC_MoveParent,
/*144538*/            OPC_SwitchType /*4 cases */, 18, MVT::v4f32,// ->144559
/*144541*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*144543*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*144546*/              OPC_EmitMergeInputChains1_1,
/*144547*/              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>>) - Complexity = 25
                        // Dst: (VMULPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*144559*/            /*SwitchType*/ 18, MVT::v2f64,// ->144579
/*144561*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*144563*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*144566*/              OPC_EmitMergeInputChains1_1,
/*144567*/              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>>) - Complexity = 25
                        // Dst: (VMULPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*144579*/            /*SwitchType*/ 18, MVT::v8f32,// ->144599
/*144581*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*144583*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*144586*/              OPC_EmitMergeInputChains1_1,
/*144587*/              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>>) - Complexity = 25
                        // Dst: (VMULPSYrm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*144599*/            /*SwitchType*/ 18, MVT::v4f64,// ->144619
/*144601*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*144603*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*144606*/              OPC_EmitMergeInputChains1_1,
/*144607*/              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>>) - Complexity = 25
                        // Dst: (VMULPDYrm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*144619*/            0, // EndSwitchType
/*144620*/          /*Scope*/ 45, /*->144666*/
/*144621*/            OPC_CheckPredicate, 39, // Predicate_memop
/*144623*/            OPC_MoveParent,
/*144624*/            OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->144645
/*144627*/              OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*144629*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*144632*/              OPC_EmitMergeInputChains1_1,
/*144633*/              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_memop>>) - Complexity = 25
                        // Dst: (MULPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*144645*/            /*SwitchType*/ 18, MVT::v2f64,// ->144665
/*144647*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*144649*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*144652*/              OPC_EmitMergeInputChains1_1,
/*144653*/              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_memop>>) - Complexity = 25
                        // Dst: (MULPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*144665*/            0, // EndSwitchType
/*144666*/          /*Scope*/ 123, /*->144790*/
/*144667*/            OPC_MoveParent,
/*144668*/            OPC_SwitchType /*6 cases */, 18, MVT::v16f32,// ->144689
/*144671*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*144673*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*144676*/              OPC_EmitMergeInputChains1_1,
/*144677*/              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>>) - Complexity = 25
                        // Dst: (VMULPSZrm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*144689*/            /*SwitchType*/ 18, MVT::v8f64,// ->144709
/*144691*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*144693*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*144696*/              OPC_EmitMergeInputChains1_1,
/*144697*/              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>>) - Complexity = 25
                        // Dst: (VMULPDZrm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*144709*/            /*SwitchType*/ 18, MVT::v4f32,// ->144729
/*144711*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*144713*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*144716*/              OPC_EmitMergeInputChains1_1,
/*144717*/              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>>) - Complexity = 25
                        // Dst: (VMULPSZ128rm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*144729*/            /*SwitchType*/ 18, MVT::v8f32,// ->144749
/*144731*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*144733*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*144736*/              OPC_EmitMergeInputChains1_1,
/*144737*/              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>>) - Complexity = 25
                        // Dst: (VMULPSZ256rm:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*144749*/            /*SwitchType*/ 18, MVT::v2f64,// ->144769
/*144751*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*144753*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*144756*/              OPC_EmitMergeInputChains1_1,
/*144757*/              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>>) - Complexity = 25
                        // Dst: (VMULPDZ128rm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*144769*/            /*SwitchType*/ 18, MVT::v4f64,// ->144789
/*144771*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*144773*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*144776*/              OPC_EmitMergeInputChains1_1,
/*144777*/              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>>) - Complexity = 25
                        // Dst: (VMULPDZ256rm:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*144789*/            0, // EndSwitchType
/*144790*/          0, /*End of Scope*/
/*144791*/        /*SwitchOpcode*/ 18|128,1/*146*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->144941
/*144795*/          OPC_RecordMemRef,
/*144796*/          OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*144797*/          OPC_CheckFoldableChainNode,
/*144798*/          OPC_RecordChild1, // #2 = $src2
/*144799*/          OPC_Scope, 23, /*->144824*/ // 4 children in Scope
/*144801*/            OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*144803*/            OPC_MoveParent,
/*144804*/            OPC_CheckType, MVT::v16f32,
/*144806*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*144808*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*144811*/            OPC_EmitMergeInputChains1_1,
/*144812*/            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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VMULPSZrmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*144824*/          /*Scope*/ 23, /*->144848*/
/*144825*/            OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*144827*/            OPC_MoveParent,
/*144828*/            OPC_CheckType, MVT::v8f64,
/*144830*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*144832*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*144835*/            OPC_EmitMergeInputChains1_1,
/*144836*/            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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VMULPDZrmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*144848*/          /*Scope*/ 45, /*->144894*/
/*144849*/            OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*144851*/            OPC_MoveParent,
/*144852*/            OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->144873
/*144855*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*144857*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*144860*/              OPC_EmitMergeInputChains1_1,
/*144861*/              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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VMULPSZ128rmb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*144873*/            /*SwitchType*/ 18, MVT::v8f32,// ->144893
/*144875*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*144877*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*144880*/              OPC_EmitMergeInputChains1_1,
/*144881*/              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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VMULPSZ256rmb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*144893*/            0, // EndSwitchType
/*144894*/          /*Scope*/ 45, /*->144940*/
/*144895*/            OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*144897*/            OPC_MoveParent,
/*144898*/            OPC_SwitchType /*2 cases */, 18, MVT::v2f64,// ->144919
/*144901*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*144903*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*144906*/              OPC_EmitMergeInputChains1_1,
/*144907*/              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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VMULPDZ128rmb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*144919*/            /*SwitchType*/ 18, MVT::v4f64,// ->144939
/*144921*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*144923*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*144926*/              OPC_EmitMergeInputChains1_1,
/*144927*/              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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VMULPDZ256rmb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*144939*/            0, // EndSwitchType
/*144940*/          0, /*End of Scope*/
/*144941*/        0, // EndSwitchOpcode
/*144942*/      0, /*End of Scope*/
/*144943*/    /*Scope*/ 44|128,3/*428*/, /*->145373*/
/*144945*/      OPC_MoveChild0,
/*144946*/      OPC_SwitchOpcode /*2 cases */, 11|128,2/*267*/, TARGET_VAL(ISD::LOAD),// ->145218
/*144951*/        OPC_RecordMemRef,
/*144952*/        OPC_RecordNode, // #0 = 'ld' chained node
/*144953*/        OPC_CheckFoldableChainNode,
/*144954*/        OPC_RecordChild1, // #1 = $src2
/*144955*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*144957*/        OPC_CheckPredicate, 9, // Predicate_load
/*144959*/        OPC_Scope, 84, /*->145045*/ // 3 children in Scope
/*144961*/          OPC_MoveParent,
/*144962*/          OPC_RecordChild1, // #2 = $src1
/*144963*/          OPC_SwitchType /*4 cases */, 18, MVT::v4f32,// ->144984
/*144966*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*144968*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*144971*/            OPC_EmitMergeInputChains1_0,
/*144972*/            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>>, VR128:{ *:[v4f32] }:$src1) - Complexity = 25
                      // Dst: (VMULPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*144984*/          /*SwitchType*/ 18, MVT::v2f64,// ->145004
/*144986*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*144988*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*144991*/            OPC_EmitMergeInputChains1_0,
/*144992*/            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>>, VR128:{ *:[v2f64] }:$src1) - Complexity = 25
                      // Dst: (VMULPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*145004*/          /*SwitchType*/ 18, MVT::v8f32,// ->145024
/*145006*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*145008*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*145011*/            OPC_EmitMergeInputChains1_0,
/*145012*/            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>>, VR256:{ *:[v8f32] }:$src1) - Complexity = 25
                      // Dst: (VMULPSYrm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*145024*/          /*SwitchType*/ 18, MVT::v4f64,// ->145044
/*145026*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*145028*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*145031*/            OPC_EmitMergeInputChains1_0,
/*145032*/            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>>, VR256:{ *:[v4f64] }:$src1) - Complexity = 25
                      // Dst: (VMULPDYrm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*145044*/          0, // EndSwitchType
/*145045*/        /*Scope*/ 46, /*->145092*/
/*145046*/          OPC_CheckPredicate, 39, // Predicate_memop
/*145048*/          OPC_MoveParent,
/*145049*/          OPC_RecordChild1, // #2 = $src1
/*145050*/          OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->145071
/*145053*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*145055*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*145058*/            OPC_EmitMergeInputChains1_0,
/*145059*/            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_memop>>, VR128:{ *:[v4f32] }:$src1) - Complexity = 25
                      // Dst: (MULPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*145071*/          /*SwitchType*/ 18, MVT::v2f64,// ->145091
/*145073*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*145075*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*145078*/            OPC_EmitMergeInputChains1_0,
/*145079*/            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_memop>>, VR128:{ *:[v2f64] }:$src1) - Complexity = 25
                      // Dst: (MULPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*145091*/          0, // EndSwitchType
/*145092*/        /*Scope*/ 124, /*->145217*/
/*145093*/          OPC_MoveParent,
/*145094*/          OPC_RecordChild1, // #2 = $src1
/*145095*/          OPC_SwitchType /*6 cases */, 18, MVT::v16f32,// ->145116
/*145098*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*145100*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*145103*/            OPC_EmitMergeInputChains1_0,
/*145104*/            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>>, VR512:{ *:[v16f32] }:$src1) - Complexity = 25
                      // Dst: (VMULPSZrm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*145116*/          /*SwitchType*/ 18, MVT::v8f64,// ->145136
/*145118*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*145120*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*145123*/            OPC_EmitMergeInputChains1_0,
/*145124*/            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>>, VR512:{ *:[v8f64] }:$src1) - Complexity = 25
                      // Dst: (VMULPDZrm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*145136*/          /*SwitchType*/ 18, MVT::v4f32,// ->145156
/*145138*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*145140*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*145143*/            OPC_EmitMergeInputChains1_0,
/*145144*/            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>>, VR128X:{ *:[v4f32] }:$src1) - Complexity = 25
                      // Dst: (VMULPSZ128rm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*145156*/          /*SwitchType*/ 18, MVT::v8f32,// ->145176
/*145158*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*145160*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*145163*/            OPC_EmitMergeInputChains1_0,
/*145164*/            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>>, VR256X:{ *:[v8f32] }:$src1) - Complexity = 25
                      // Dst: (VMULPSZ256rm:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*145176*/          /*SwitchType*/ 18, MVT::v2f64,// ->145196
/*145178*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*145180*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*145183*/            OPC_EmitMergeInputChains1_0,
/*145184*/            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>>, VR128X:{ *:[v2f64] }:$src1) - Complexity = 25
                      // Dst: (VMULPDZ128rm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*145196*/          /*SwitchType*/ 18, MVT::v4f64,// ->145216
/*145198*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*145200*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*145203*/            OPC_EmitMergeInputChains1_0,
/*145204*/            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>>, VR256X:{ *:[v4f64] }:$src1) - Complexity = 25
                      // Dst: (VMULPDZ256rm:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*145216*/          0, // EndSwitchType
/*145217*/        0, /*End of Scope*/
/*145218*/      /*SwitchOpcode*/ 22|128,1/*150*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->145372
/*145222*/        OPC_RecordMemRef,
/*145223*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*145224*/        OPC_CheckFoldableChainNode,
/*145225*/        OPC_RecordChild1, // #1 = $src2
/*145226*/        OPC_Scope, 24, /*->145252*/ // 4 children in Scope
/*145228*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*145230*/          OPC_MoveParent,
/*145231*/          OPC_RecordChild1, // #2 = $src1
/*145232*/          OPC_CheckType, MVT::v16f32,
/*145234*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*145236*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*145239*/          OPC_EmitMergeInputChains1_0,
/*145240*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (fmul:{ *:[v16f32] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src1) - Complexity = 25
                    // Dst: (VMULPSZrmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*145252*/        /*Scope*/ 24, /*->145277*/
/*145253*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*145255*/          OPC_MoveParent,
/*145256*/          OPC_RecordChild1, // #2 = $src1
/*145257*/          OPC_CheckType, MVT::v8f64,
/*145259*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*145261*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*145264*/          OPC_EmitMergeInputChains1_0,
/*145265*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (fmul:{ *:[v8f64] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src1) - Complexity = 25
                    // Dst: (VMULPDZrmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*145277*/        /*Scope*/ 46, /*->145324*/
/*145278*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*145280*/          OPC_MoveParent,
/*145281*/          OPC_RecordChild1, // #2 = $src1
/*145282*/          OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->145303
/*145285*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*145287*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*145290*/            OPC_EmitMergeInputChains1_0,
/*145291*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (fmul:{ *:[v4f32] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1) - Complexity = 25
                      // Dst: (VMULPSZ128rmb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*145303*/          /*SwitchType*/ 18, MVT::v8f32,// ->145323
/*145305*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*145307*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*145310*/            OPC_EmitMergeInputChains1_0,
/*145311*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (fmul:{ *:[v8f32] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1) - Complexity = 25
                      // Dst: (VMULPSZ256rmb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*145323*/          0, // EndSwitchType
/*145324*/        /*Scope*/ 46, /*->145371*/
/*145325*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*145327*/          OPC_MoveParent,
/*145328*/          OPC_RecordChild1, // #2 = $src1
/*145329*/          OPC_SwitchType /*2 cases */, 18, MVT::v2f64,// ->145350
/*145332*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*145334*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*145337*/            OPC_EmitMergeInputChains1_0,
/*145338*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (fmul:{ *:[v2f64] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1) - Complexity = 25
                      // Dst: (VMULPDZ128rmb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*145350*/          /*SwitchType*/ 18, MVT::v4f64,// ->145370
/*145352*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*145354*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*145357*/            OPC_EmitMergeInputChains1_0,
/*145358*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (fmul:{ *:[v4f64] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1) - Complexity = 25
                      // Dst: (VMULPDZ256rmb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*145370*/          0, // EndSwitchType
/*145371*/        0, /*End of Scope*/
/*145372*/      0, // EndSwitchOpcode
/*145373*/    /*Scope*/ 26|128,1/*154*/, /*->145529*/
/*145375*/      OPC_RecordChild0, // #0 = $src1
/*145376*/      OPC_RecordChild1, // #1 = $src2
/*145377*/      OPC_SwitchType /*6 cases */, 35, MVT::v4f32,// ->145415
/*145380*/        OPC_Scope, 10, /*->145392*/ // 3 children in Scope
/*145382*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*145384*/          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)
/*145392*/        /*Scope*/ 10, /*->145403*/
/*145393*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*145395*/          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)
/*145403*/        /*Scope*/ 10, /*->145414*/
/*145404*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*145406*/          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)
/*145414*/        0, /*End of Scope*/
/*145415*/      /*SwitchType*/ 35, MVT::v2f64,// ->145452
/*145417*/        OPC_Scope, 10, /*->145429*/ // 3 children in Scope
/*145419*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*145421*/          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)
/*145429*/        /*Scope*/ 10, /*->145440*/
/*145430*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*145432*/          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)
/*145440*/        /*Scope*/ 10, /*->145451*/
/*145441*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*145443*/          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)
/*145451*/        0, /*End of Scope*/
/*145452*/      /*SwitchType*/ 24, MVT::v8f32,// ->145478
/*145454*/        OPC_Scope, 10, /*->145466*/ // 2 children in Scope
/*145456*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*145458*/          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)
/*145466*/        /*Scope*/ 10, /*->145477*/
/*145467*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*145469*/          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)
/*145477*/        0, /*End of Scope*/
/*145478*/      /*SwitchType*/ 24, MVT::v4f64,// ->145504
/*145480*/        OPC_Scope, 10, /*->145492*/ // 2 children in Scope
/*145482*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*145484*/          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)
/*145492*/        /*Scope*/ 10, /*->145503*/
/*145493*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*145495*/          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)
/*145503*/        0, /*End of Scope*/
/*145504*/      /*SwitchType*/ 10, MVT::v16f32,// ->145516
/*145506*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*145508*/        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)
/*145516*/      /*SwitchType*/ 10, MVT::v8f64,// ->145528
/*145518*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*145520*/        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)
/*145528*/      0, // EndSwitchType
/*145529*/    0, /*End of Scope*/
/*145530*/  /*SwitchOpcode*/ 62|128,12/*1598*/, TARGET_VAL(ISD::STRICT_FDIV),// ->147132
/*145534*/    OPC_RecordNode, // #0 = 'strict_fdiv' chained node
/*145535*/    OPC_Scope, 71|128,2/*327*/, /*->145865*/ // 3 children in Scope
/*145538*/      OPC_RecordChild1, // #1 = $src1
/*145539*/      OPC_MoveChild2,
/*145540*/      OPC_SwitchOpcode /*2 cases */, 17|128,1/*145*/, TARGET_VAL(ISD::LOAD),// ->145690
/*145545*/        OPC_RecordMemRef,
/*145546*/        OPC_RecordNode, // #2 = 'ld' chained node
/*145547*/        OPC_CheckFoldableChainNode,
/*145548*/        OPC_RecordChild1, // #3 = $src2
/*145549*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*145551*/        OPC_Scope, 53, /*->145606*/ // 2 children in Scope
/*145553*/          OPC_CheckPredicate, 9, // Predicate_load
/*145555*/          OPC_MoveParent,
/*145556*/          OPC_SwitchType /*2 cases */, 22, MVT::f32,// ->145581
/*145559*/            OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*145561*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*145564*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*145568*/            OPC_MorphNodeTo2, TARGET_VAL(X86::DIV_Fp32m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f32, MVT::i16, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                      // Src: (strict_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)
/*145581*/          /*SwitchType*/ 22, MVT::f64,// ->145605
/*145583*/            OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*145585*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*145588*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*145592*/            OPC_MorphNodeTo2, TARGET_VAL(X86::DIV_Fp64m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, MVT::i16, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                      // Src: (strict_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)
/*145605*/          0, // EndSwitchType
/*145606*/        /*Scope*/ 82, /*->145689*/
/*145607*/          OPC_CheckPredicate, 70, // Predicate_extload
/*145609*/          OPC_Scope, 51, /*->145662*/ // 2 children in Scope
/*145611*/            OPC_CheckPredicate, 21, // Predicate_extloadf32
/*145613*/            OPC_MoveParent,
/*145614*/            OPC_SwitchType /*2 cases */, 22, MVT::f64,// ->145639
/*145617*/              OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*145619*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*145622*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*145626*/              OPC_MorphNodeTo2, TARGET_VAL(X86::DIV_Fp64m32), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::f64, MVT::i16, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_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)
/*145639*/            /*SwitchType*/ 20, MVT::f80,// ->145661
/*145641*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*145644*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*145648*/              OPC_MorphNodeTo2, TARGET_VAL(X86::DIV_Fp80m32), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::f80, MVT::i16, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_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)
/*145661*/            0, // EndSwitchType
/*145662*/          /*Scope*/ 25, /*->145688*/
/*145663*/            OPC_CheckPredicate, 22, // Predicate_extloadf64
/*145665*/            OPC_MoveParent,
/*145666*/            OPC_CheckType, MVT::f80,
/*145668*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*145671*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*145675*/            OPC_MorphNodeTo2, TARGET_VAL(X86::DIV_Fp80m64), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f80, MVT::i16, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                      // Src: (strict_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)
/*145688*/          0, /*End of Scope*/
/*145689*/        0, /*End of Scope*/
/*145690*/      /*SwitchOpcode*/ 42|128,1/*170*/, TARGET_VAL(X86ISD::FILD),// ->145864
/*145694*/        OPC_RecordMemRef,
/*145695*/        OPC_RecordNode, // #2 = 'X86fild' chained node
/*145696*/        OPC_CheckFoldableChainNode,
/*145697*/        OPC_RecordChild1, // #3 = $src2
/*145698*/        OPC_Scope, 27, /*->145727*/ // 6 children in Scope
/*145700*/          OPC_CheckPredicate, 62, // Predicate_X86fild16
/*145702*/          OPC_MoveParent,
/*145703*/          OPC_CheckType, MVT::f32,
/*145705*/          OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*145707*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*145710*/          OPC_EmitMergeInputChains, 2, 0, 2, 
/*145714*/          OPC_MorphNodeTo2, TARGET_VAL(X86::DIV_FpI16m32), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, MVT::i16, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                    // Src: (strict_fdiv:{ *:[f32] } RFP32:{ *:[f32] }:$src1, (X86fild:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86fild16>>) - Complexity = 25
                    // Dst: (DIV_FpI16m32:{ *:[f32] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*145727*/        /*Scope*/ 27, /*->145755*/
/*145728*/          OPC_CheckPredicate, 63, // Predicate_X86fild32
/*145730*/          OPC_MoveParent,
/*145731*/          OPC_CheckType, MVT::f32,
/*145733*/          OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*145735*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*145738*/          OPC_EmitMergeInputChains, 2, 0, 2, 
/*145742*/          OPC_MorphNodeTo2, TARGET_VAL(X86::DIV_FpI32m32), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, MVT::i16, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                    // Src: (strict_fdiv:{ *:[f32] } RFP32:{ *:[f32] }:$src1, (X86fild:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86fild32>>) - Complexity = 25
                    // Dst: (DIV_FpI32m32:{ *:[f32] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*145755*/        /*Scope*/ 27, /*->145783*/
/*145756*/          OPC_CheckPredicate, 62, // Predicate_X86fild16
/*145758*/          OPC_MoveParent,
/*145759*/          OPC_CheckType, MVT::f64,
/*145761*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*145763*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*145766*/          OPC_EmitMergeInputChains, 2, 0, 2, 
/*145770*/          OPC_MorphNodeTo2, TARGET_VAL(X86::DIV_FpI16m64), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, MVT::i16, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                    // Src: (strict_fdiv:{ *:[f64] } RFP64:{ *:[f64] }:$src1, (X86fild:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86fild16>>) - Complexity = 25
                    // Dst: (DIV_FpI16m64:{ *:[f64] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*145783*/        /*Scope*/ 27, /*->145811*/
/*145784*/          OPC_CheckPredicate, 63, // Predicate_X86fild32
/*145786*/          OPC_MoveParent,
/*145787*/          OPC_CheckType, MVT::f64,
/*145789*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*145791*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*145794*/          OPC_EmitMergeInputChains, 2, 0, 2, 
/*145798*/          OPC_MorphNodeTo2, TARGET_VAL(X86::DIV_FpI32m64), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, MVT::i16, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                    // Src: (strict_fdiv:{ *:[f64] } RFP64:{ *:[f64] }:$src1, (X86fild:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86fild32>>) - Complexity = 25
                    // Dst: (DIV_FpI32m64:{ *:[f64] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*145811*/        /*Scope*/ 25, /*->145837*/
/*145812*/          OPC_CheckPredicate, 62, // Predicate_X86fild16
/*145814*/          OPC_MoveParent,
/*145815*/          OPC_CheckType, MVT::f80,
/*145817*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*145820*/          OPC_EmitMergeInputChains, 2, 0, 2, 
/*145824*/          OPC_MorphNodeTo2, TARGET_VAL(X86::DIV_FpI16m80), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f80, MVT::i16, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                    // Src: (strict_fdiv:{ *:[f80] } RFP80:{ *:[f80] }:$src1, (X86fild:{ *:[f80] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86fild16>>) - Complexity = 25
                    // Dst: (DIV_FpI16m80:{ *:[f80] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, addr:{ *:[iPTR] }:$src2)
/*145837*/        /*Scope*/ 25, /*->145863*/
/*145838*/          OPC_CheckPredicate, 63, // Predicate_X86fild32
/*145840*/          OPC_MoveParent,
/*145841*/          OPC_CheckType, MVT::f80,
/*145843*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*145846*/          OPC_EmitMergeInputChains, 2, 0, 2, 
/*145850*/          OPC_MorphNodeTo2, TARGET_VAL(X86::DIV_FpI32m80), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f80, MVT::i16, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                    // Src: (strict_fdiv:{ *:[f80] } RFP80:{ *:[f80] }:$src1, (X86fild:{ *:[f80] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86fild32>>) - Complexity = 25
                    // Dst: (DIV_FpI32m80:{ *:[f80] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, addr:{ *:[iPTR] }:$src2)
/*145863*/        0, /*End of Scope*/
/*145864*/      0, // EndSwitchOpcode
/*145865*/    /*Scope*/ 79|128,2/*335*/, /*->146202*/
/*145867*/      OPC_MoveChild1,
/*145868*/      OPC_SwitchOpcode /*2 cases */, 20|128,1/*148*/, TARGET_VAL(ISD::LOAD),// ->146021
/*145873*/        OPC_RecordMemRef,
/*145874*/        OPC_RecordNode, // #1 = 'ld' chained node
/*145875*/        OPC_CheckFoldableChainNode,
/*145876*/        OPC_RecordChild1, // #2 = $src2
/*145877*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*145879*/        OPC_Scope, 54, /*->145935*/ // 2 children in Scope
/*145881*/          OPC_CheckPredicate, 9, // Predicate_load
/*145883*/          OPC_MoveParent,
/*145884*/          OPC_RecordChild2, // #3 = $src1
/*145885*/          OPC_SwitchType /*2 cases */, 22, MVT::f32,// ->145910
/*145888*/            OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*145890*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*145893*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*145897*/            OPC_MorphNodeTo2, TARGET_VAL(X86::DIVR_Fp32m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f32, MVT::i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (strict_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)
/*145910*/          /*SwitchType*/ 22, MVT::f64,// ->145934
/*145912*/            OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*145914*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*145917*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*145921*/            OPC_MorphNodeTo2, TARGET_VAL(X86::DIVR_Fp64m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, MVT::i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (strict_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)
/*145934*/          0, // EndSwitchType
/*145935*/        /*Scope*/ 84, /*->146020*/
/*145936*/          OPC_CheckPredicate, 70, // Predicate_extload
/*145938*/          OPC_Scope, 52, /*->145992*/ // 2 children in Scope
/*145940*/            OPC_CheckPredicate, 21, // Predicate_extloadf32
/*145942*/            OPC_MoveParent,
/*145943*/            OPC_RecordChild2, // #3 = $src1
/*145944*/            OPC_SwitchType /*2 cases */, 22, MVT::f64,// ->145969
/*145947*/              OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*145949*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*145952*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*145956*/              OPC_MorphNodeTo2, TARGET_VAL(X86::DIVR_Fp64m32), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::f64, MVT::i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                        // Src: (strict_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)
/*145969*/            /*SwitchType*/ 20, MVT::f80,// ->145991
/*145971*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*145974*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*145978*/              OPC_MorphNodeTo2, TARGET_VAL(X86::DIVR_Fp80m32), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::f80, MVT::i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                        // Src: (strict_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)
/*145991*/            0, // EndSwitchType
/*145992*/          /*Scope*/ 26, /*->146019*/
/*145993*/            OPC_CheckPredicate, 22, // Predicate_extloadf64
/*145995*/            OPC_MoveParent,
/*145996*/            OPC_RecordChild2, // #3 = $src1
/*145997*/            OPC_CheckType, MVT::f80,
/*145999*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*146002*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*146006*/            OPC_MorphNodeTo2, TARGET_VAL(X86::DIVR_Fp80m64), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f80, MVT::i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                      // Src: (strict_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)
/*146019*/          0, /*End of Scope*/
/*146020*/        0, /*End of Scope*/
/*146021*/      /*SwitchOpcode*/ 48|128,1/*176*/, TARGET_VAL(X86ISD::FILD),// ->146201
/*146025*/        OPC_RecordMemRef,
/*146026*/        OPC_RecordNode, // #1 = 'X86fild' chained node
/*146027*/        OPC_CheckFoldableChainNode,
/*146028*/        OPC_RecordChild1, // #2 = $src2
/*146029*/        OPC_Scope, 28, /*->146059*/ // 6 children in Scope
/*146031*/          OPC_CheckPredicate, 62, // Predicate_X86fild16
/*146033*/          OPC_MoveParent,
/*146034*/          OPC_RecordChild2, // #3 = $src1
/*146035*/          OPC_CheckType, MVT::f32,
/*146037*/          OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*146039*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*146042*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*146046*/          OPC_MorphNodeTo2, TARGET_VAL(X86::DIVR_FpI16m32), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, MVT::i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (strict_fdiv:{ *:[f32] } (X86fild:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86fild16>>, RFP32:{ *:[f32] }:$src1) - Complexity = 25
                    // Dst: (DIVR_FpI16m32:{ *:[f32] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*146059*/        /*Scope*/ 28, /*->146088*/
/*146060*/          OPC_CheckPredicate, 63, // Predicate_X86fild32
/*146062*/          OPC_MoveParent,
/*146063*/          OPC_RecordChild2, // #3 = $src1
/*146064*/          OPC_CheckType, MVT::f32,
/*146066*/          OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*146068*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*146071*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*146075*/          OPC_MorphNodeTo2, TARGET_VAL(X86::DIVR_FpI32m32), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, MVT::i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (strict_fdiv:{ *:[f32] } (X86fild:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86fild32>>, RFP32:{ *:[f32] }:$src1) - Complexity = 25
                    // Dst: (DIVR_FpI32m32:{ *:[f32] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*146088*/        /*Scope*/ 28, /*->146117*/
/*146089*/          OPC_CheckPredicate, 62, // Predicate_X86fild16
/*146091*/          OPC_MoveParent,
/*146092*/          OPC_RecordChild2, // #3 = $src1
/*146093*/          OPC_CheckType, MVT::f64,
/*146095*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*146097*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*146100*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*146104*/          OPC_MorphNodeTo2, TARGET_VAL(X86::DIVR_FpI16m64), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, MVT::i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (strict_fdiv:{ *:[f64] } (X86fild:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86fild16>>, RFP64:{ *:[f64] }:$src1) - Complexity = 25
                    // Dst: (DIVR_FpI16m64:{ *:[f64] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*146117*/        /*Scope*/ 28, /*->146146*/
/*146118*/          OPC_CheckPredicate, 63, // Predicate_X86fild32
/*146120*/          OPC_MoveParent,
/*146121*/          OPC_RecordChild2, // #3 = $src1
/*146122*/          OPC_CheckType, MVT::f64,
/*146124*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*146126*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*146129*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*146133*/          OPC_MorphNodeTo2, TARGET_VAL(X86::DIVR_FpI32m64), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, MVT::i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (strict_fdiv:{ *:[f64] } (X86fild:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86fild32>>, RFP64:{ *:[f64] }:$src1) - Complexity = 25
                    // Dst: (DIVR_FpI32m64:{ *:[f64] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*146146*/        /*Scope*/ 26, /*->146173*/
/*146147*/          OPC_CheckPredicate, 62, // Predicate_X86fild16
/*146149*/          OPC_MoveParent,
/*146150*/          OPC_RecordChild2, // #3 = $src1
/*146151*/          OPC_CheckType, MVT::f80,
/*146153*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*146156*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*146160*/          OPC_MorphNodeTo2, TARGET_VAL(X86::DIVR_FpI16m80), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f80, MVT::i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (strict_fdiv:{ *:[f80] } (X86fild:{ *:[f80] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86fild16>>, RFP80:{ *:[f80] }:$src1) - Complexity = 25
                    // Dst: (DIVR_FpI16m80:{ *:[f80] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, addr:{ *:[iPTR] }:$src2)
/*146173*/        /*Scope*/ 26, /*->146200*/
/*146174*/          OPC_CheckPredicate, 63, // Predicate_X86fild32
/*146176*/          OPC_MoveParent,
/*146177*/          OPC_RecordChild2, // #3 = $src1
/*146178*/          OPC_CheckType, MVT::f80,
/*146180*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*146183*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*146187*/          OPC_MorphNodeTo2, TARGET_VAL(X86::DIVR_FpI32m80), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f80, MVT::i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (strict_fdiv:{ *:[f80] } (X86fild:{ *:[f80] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86fild32>>, RFP80:{ *:[f80] }:$src1) - Complexity = 25
                    // Dst: (DIVR_FpI32m80:{ *:[f80] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, addr:{ *:[iPTR] }:$src2)
/*146200*/        0, /*End of Scope*/
/*146201*/      0, // EndSwitchOpcode
/*146202*/    /*Scope*/ 31|128,7/*927*/, /*->147131*/
/*146204*/      OPC_RecordChild1, // #1 = $src1
/*146205*/      OPC_Scope, 27|128,1/*155*/, /*->146363*/ // 4 children in Scope
/*146208*/        OPC_MoveChild2,
/*146209*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*146212*/        OPC_RecordMemRef,
/*146213*/        OPC_RecordNode, // #2 = 'ld' chained node
/*146214*/        OPC_CheckFoldableChainNode,
/*146215*/        OPC_RecordChild1, // #3 = $src2
/*146216*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*146218*/        OPC_CheckPredicate, 9, // Predicate_load
/*146220*/        OPC_MoveParent,
/*146221*/        OPC_SwitchType /*2 cases */, 68, MVT::f32,// ->146292
/*146224*/          OPC_Scope, 21, /*->146247*/ // 3 children in Scope
/*146226*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*146228*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*146231*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*146235*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f32, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                      // Src: (strict_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)
/*146247*/          /*Scope*/ 21, /*->146269*/
/*146248*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*146250*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*146253*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*146257*/            OPC_MorphNodeTo1, TARGET_VAL(X86::DIVSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f32, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                      // Src: (strict_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)
/*146269*/          /*Scope*/ 21, /*->146291*/
/*146270*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*146272*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*146275*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*146279*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f32, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                      // Src: (strict_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)
/*146291*/          0, /*End of Scope*/
/*146292*/        /*SwitchType*/ 68, MVT::f64,// ->146362
/*146294*/          OPC_Scope, 21, /*->146317*/ // 3 children in Scope
/*146296*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*146298*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*146301*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*146305*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                      // Src: (strict_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)
/*146317*/          /*Scope*/ 21, /*->146339*/
/*146318*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*146320*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*146323*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*146327*/            OPC_MorphNodeTo1, TARGET_VAL(X86::DIVSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                      // Src: (strict_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)
/*146339*/          /*Scope*/ 21, /*->146361*/
/*146340*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*146342*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*146345*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*146349*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                      // Src: (strict_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)
/*146361*/          0, /*End of Scope*/
/*146362*/        0, // EndSwitchType
/*146363*/      /*Scope*/ 121, /*->146485*/
/*146364*/        OPC_RecordChild2, // #2 = $src2
/*146365*/        OPC_SwitchType /*3 cases */, 51, MVT::f32,// ->146419
/*146368*/          OPC_Scope, 12, /*->146382*/ // 4 children in Scope
/*146370*/            OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*146372*/            OPC_EmitMergeInputChains1_0,
/*146373*/            OPC_MorphNodeTo2, TARGET_VAL(X86::DIV_Fp32), 0|OPFL_Chain,
                          MVT::f32, MVT::i16, 2/*#Ops*/, 1, 2, 
                      // Src: (strict_fdiv:{ *:[f32] } RFP32:{ *:[f32] }:$src1, RFP32:{ *:[f32] }:$src2) - Complexity = 3
                      // Dst: (DIV_Fp32:{ *:[f32] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, RFP32:{ *:[f32] }:$src2)
/*146382*/          /*Scope*/ 11, /*->146394*/
/*146383*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*146385*/            OPC_EmitMergeInputChains1_0,
/*146386*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSSrr), 0|OPFL_Chain,
                          MVT::f32, 2/*#Ops*/, 1, 2, 
                      // Src: (strict_fdiv:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2) - Complexity = 3
                      // Dst: (VDIVSSrr:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2)
/*146394*/          /*Scope*/ 11, /*->146406*/
/*146395*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*146397*/            OPC_EmitMergeInputChains1_0,
/*146398*/            OPC_MorphNodeTo1, TARGET_VAL(X86::DIVSSrr), 0|OPFL_Chain,
                          MVT::f32, 2/*#Ops*/, 1, 2, 
                      // Src: (strict_fdiv:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2) - Complexity = 3
                      // Dst: (DIVSSrr:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2)
/*146406*/          /*Scope*/ 11, /*->146418*/
/*146407*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*146409*/            OPC_EmitMergeInputChains1_0,
/*146410*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSSZrr), 0|OPFL_Chain,
                          MVT::f32, 2/*#Ops*/, 1, 2, 
                      // Src: (strict_fdiv:{ *:[f32] } FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2) - Complexity = 3
                      // Dst: (VDIVSSZrr:{ *:[f32] } FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2)
/*146418*/          0, /*End of Scope*/
/*146419*/        /*SwitchType*/ 51, MVT::f64,// ->146472
/*146421*/          OPC_Scope, 12, /*->146435*/ // 4 children in Scope
/*146423*/            OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*146425*/            OPC_EmitMergeInputChains1_0,
/*146426*/            OPC_MorphNodeTo2, TARGET_VAL(X86::DIV_Fp64), 0|OPFL_Chain,
                          MVT::f64, MVT::i16, 2/*#Ops*/, 1, 2, 
                      // Src: (strict_fdiv:{ *:[f64] } RFP64:{ *:[f64] }:$src1, RFP64:{ *:[f64] }:$src2) - Complexity = 3
                      // Dst: (DIV_Fp64:{ *:[f64] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, RFP64:{ *:[f64] }:$src2)
/*146435*/          /*Scope*/ 11, /*->146447*/
/*146436*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*146438*/            OPC_EmitMergeInputChains1_0,
/*146439*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSDrr), 0|OPFL_Chain,
                          MVT::f64, 2/*#Ops*/, 1, 2, 
                      // Src: (strict_fdiv:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2) - Complexity = 3
                      // Dst: (VDIVSDrr:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2)
/*146447*/          /*Scope*/ 11, /*->146459*/
/*146448*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*146450*/            OPC_EmitMergeInputChains1_0,
/*146451*/            OPC_MorphNodeTo1, TARGET_VAL(X86::DIVSDrr), 0|OPFL_Chain,
                          MVT::f64, 2/*#Ops*/, 1, 2, 
                      // Src: (strict_fdiv:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2) - Complexity = 3
                      // Dst: (DIVSDrr:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2)
/*146459*/          /*Scope*/ 11, /*->146471*/
/*146460*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*146462*/            OPC_EmitMergeInputChains1_0,
/*146463*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSDZrr), 0|OPFL_Chain,
                          MVT::f64, 2/*#Ops*/, 1, 2, 
                      // Src: (strict_fdiv:{ *:[f64] } FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2) - Complexity = 3
                      // Dst: (VDIVSDZrr:{ *:[f64] } FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2)
/*146471*/          0, /*End of Scope*/
/*146472*/        /*SwitchType*/ 10, MVT::f80,// ->146484
/*146474*/          OPC_EmitMergeInputChains1_0,
/*146475*/          OPC_MorphNodeTo2, TARGET_VAL(X86::DIV_Fp80), 0|OPFL_Chain,
                        MVT::f80, MVT::i16, 2/*#Ops*/, 1, 2, 
                    // Src: (strict_fdiv:{ *:[f80] } RFP80:{ *:[f80] }:$src1, RFP80:{ *:[f80] }:$src2) - Complexity = 3
                    // Dst: (DIV_Fp80:{ *:[f80] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, RFP80:{ *:[f80] }:$src2)
/*146484*/        0, // EndSwitchType
/*146485*/      /*Scope*/ 92|128,3/*476*/, /*->146963*/
/*146487*/        OPC_MoveChild2,
/*146488*/        OPC_SwitchOpcode /*2 cases */, 45|128,2/*301*/, TARGET_VAL(ISD::LOAD),// ->146794
/*146493*/          OPC_RecordMemRef,
/*146494*/          OPC_RecordNode, // #2 = 'ld' chained node
/*146495*/          OPC_CheckFoldableChainNode,
/*146496*/          OPC_RecordChild1, // #3 = $src2
/*146497*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*146499*/          OPC_CheckPredicate, 9, // Predicate_load
/*146501*/          OPC_Scope, 95, /*->146598*/ // 3 children in Scope
/*146503*/            OPC_MoveParent,
/*146504*/            OPC_SwitchType /*4 cases */, 21, MVT::v4f32,// ->146528
/*146507*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*146509*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*146512*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*146516*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_fdiv:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VDIVPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*146528*/            /*SwitchType*/ 21, MVT::v2f64,// ->146551
/*146530*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*146532*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*146535*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*146539*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_fdiv:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VDIVPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*146551*/            /*SwitchType*/ 21, MVT::v8f32,// ->146574
/*146553*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*146555*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*146558*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*146562*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_fdiv:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VDIVPSYrm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*146574*/            /*SwitchType*/ 21, MVT::v4f64,// ->146597
/*146576*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*146578*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*146581*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*146585*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_fdiv:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VDIVPDYrm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*146597*/            0, // EndSwitchType
/*146598*/          /*Scope*/ 51, /*->146650*/
/*146599*/            OPC_CheckPredicate, 39, // Predicate_memop
/*146601*/            OPC_MoveParent,
/*146602*/            OPC_SwitchType /*2 cases */, 21, MVT::v4f32,// ->146626
/*146605*/              OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*146607*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*146610*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*146614*/              OPC_MorphNodeTo1, TARGET_VAL(X86::DIVPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_fdiv:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                        // Dst: (DIVPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*146626*/            /*SwitchType*/ 21, MVT::v2f64,// ->146649
/*146628*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*146630*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*146633*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*146637*/              OPC_MorphNodeTo1, TARGET_VAL(X86::DIVPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_fdiv:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                        // Dst: (DIVPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*146649*/            0, // EndSwitchType
/*146650*/          /*Scope*/ 13|128,1/*141*/, /*->146793*/
/*146652*/            OPC_MoveParent,
/*146653*/            OPC_SwitchType /*6 cases */, 21, MVT::v16f32,// ->146677
/*146656*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*146658*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*146661*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*146665*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_fdiv:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VDIVPSZrm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*146677*/            /*SwitchType*/ 21, MVT::v8f64,// ->146700
/*146679*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*146681*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*146684*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*146688*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_fdiv:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VDIVPDZrm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*146700*/            /*SwitchType*/ 21, MVT::v4f32,// ->146723
/*146702*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*146704*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*146707*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*146711*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_fdiv:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VDIVPSZ128rm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*146723*/            /*SwitchType*/ 21, MVT::v8f32,// ->146746
/*146725*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*146727*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*146730*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*146734*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_fdiv:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VDIVPSZ256rm:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*146746*/            /*SwitchType*/ 21, MVT::v2f64,// ->146769
/*146748*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*146750*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*146753*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*146757*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_fdiv:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VDIVPDZ128rm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*146769*/            /*SwitchType*/ 21, MVT::v4f64,// ->146792
/*146771*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*146773*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*146776*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*146780*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_fdiv:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VDIVPDZ256rm:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*146792*/            0, // EndSwitchType
/*146793*/          0, /*End of Scope*/
/*146794*/        /*SwitchOpcode*/ 36|128,1/*164*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->146962
/*146798*/          OPC_RecordMemRef,
/*146799*/          OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*146800*/          OPC_CheckFoldableChainNode,
/*146801*/          OPC_RecordChild1, // #3 = $src2
/*146802*/          OPC_Scope, 26, /*->146830*/ // 4 children in Scope
/*146804*/            OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*146806*/            OPC_MoveParent,
/*146807*/            OPC_CheckType, MVT::v16f32,
/*146809*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*146811*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*146814*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*146818*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                      // Src: (strict_fdiv:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VDIVPSZrmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*146830*/          /*Scope*/ 26, /*->146857*/
/*146831*/            OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*146833*/            OPC_MoveParent,
/*146834*/            OPC_CheckType, MVT::v8f64,
/*146836*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*146838*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*146841*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*146845*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                      // Src: (strict_fdiv:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VDIVPDZrmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*146857*/          /*Scope*/ 51, /*->146909*/
/*146858*/            OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*146860*/            OPC_MoveParent,
/*146861*/            OPC_SwitchType /*2 cases */, 21, MVT::v4f32,// ->146885
/*146864*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*146866*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*146869*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*146873*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_fdiv:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VDIVPSZ128rmb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*146885*/            /*SwitchType*/ 21, MVT::v8f32,// ->146908
/*146887*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*146889*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*146892*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*146896*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_fdiv:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VDIVPSZ256rmb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*146908*/            0, // EndSwitchType
/*146909*/          /*Scope*/ 51, /*->146961*/
/*146910*/            OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*146912*/            OPC_MoveParent,
/*146913*/            OPC_SwitchType /*2 cases */, 21, MVT::v2f64,// ->146937
/*146916*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*146918*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*146921*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*146925*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_fdiv:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VDIVPDZ128rmb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*146937*/            /*SwitchType*/ 21, MVT::v4f64,// ->146960
/*146939*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*146941*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*146944*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*146948*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 6/*#Ops*/, 1, 4, 5, 6, 7, 8, 
                        // Src: (strict_fdiv:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VDIVPDZ256rmb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*146960*/            0, // EndSwitchType
/*146961*/          0, /*End of Scope*/
/*146962*/        0, // EndSwitchOpcode
/*146963*/      /*Scope*/ 37|128,1/*165*/, /*->147130*/
/*146965*/        OPC_RecordChild2, // #2 = $src2
/*146966*/        OPC_SwitchType /*6 cases */, 38, MVT::v4f32,// ->147007
/*146969*/          OPC_Scope, 11, /*->146982*/ // 3 children in Scope
/*146971*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*146973*/            OPC_EmitMergeInputChains1_0,
/*146974*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSrr), 0|OPFL_Chain,
                          MVT::v4f32, 2/*#Ops*/, 1, 2, 
                      // Src: (strict_fdiv:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2) - Complexity = 3
                      // Dst: (VDIVPSrr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2)
/*146982*/          /*Scope*/ 11, /*->146994*/
/*146983*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*146985*/            OPC_EmitMergeInputChains1_0,
/*146986*/            OPC_MorphNodeTo1, TARGET_VAL(X86::DIVPSrr), 0|OPFL_Chain,
                          MVT::v4f32, 2/*#Ops*/, 1, 2, 
                      // Src: (strict_fdiv:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2) - Complexity = 3
                      // Dst: (DIVPSrr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2)
/*146994*/          /*Scope*/ 11, /*->147006*/
/*146995*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*146997*/            OPC_EmitMergeInputChains1_0,
/*146998*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSZ128rr), 0|OPFL_Chain,
                          MVT::v4f32, 2/*#Ops*/, 1, 2, 
                      // Src: (strict_fdiv:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2) - Complexity = 3
                      // Dst: (VDIVPSZ128rr:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*147006*/          0, /*End of Scope*/
/*147007*/        /*SwitchType*/ 38, MVT::v2f64,// ->147047
/*147009*/          OPC_Scope, 11, /*->147022*/ // 3 children in Scope
/*147011*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*147013*/            OPC_EmitMergeInputChains1_0,
/*147014*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDrr), 0|OPFL_Chain,
                          MVT::v2f64, 2/*#Ops*/, 1, 2, 
                      // Src: (strict_fdiv:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2) - Complexity = 3
                      // Dst: (VDIVPDrr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2)
/*147022*/          /*Scope*/ 11, /*->147034*/
/*147023*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*147025*/            OPC_EmitMergeInputChains1_0,
/*147026*/            OPC_MorphNodeTo1, TARGET_VAL(X86::DIVPDrr), 0|OPFL_Chain,
                          MVT::v2f64, 2/*#Ops*/, 1, 2, 
                      // Src: (strict_fdiv:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2) - Complexity = 3
                      // Dst: (DIVPDrr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2)
/*147034*/          /*Scope*/ 11, /*->147046*/
/*147035*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*147037*/            OPC_EmitMergeInputChains1_0,
/*147038*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDZ128rr), 0|OPFL_Chain,
                          MVT::v2f64, 2/*#Ops*/, 1, 2, 
                      // Src: (strict_fdiv:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2) - Complexity = 3
                      // Dst: (VDIVPDZ128rr:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*147046*/          0, /*End of Scope*/
/*147047*/        /*SwitchType*/ 26, MVT::v8f32,// ->147075
/*147049*/          OPC_Scope, 11, /*->147062*/ // 2 children in Scope
/*147051*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*147053*/            OPC_EmitMergeInputChains1_0,
/*147054*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSYrr), 0|OPFL_Chain,
                          MVT::v8f32, 2/*#Ops*/, 1, 2, 
                      // Src: (strict_fdiv:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2) - Complexity = 3
                      // Dst: (VDIVPSYrr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2)
/*147062*/          /*Scope*/ 11, /*->147074*/
/*147063*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*147065*/            OPC_EmitMergeInputChains1_0,
/*147066*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSZ256rr), 0|OPFL_Chain,
                          MVT::v8f32, 2/*#Ops*/, 1, 2, 
                      // Src: (strict_fdiv:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2) - Complexity = 3
                      // Dst: (VDIVPSZ256rr:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2)
/*147074*/          0, /*End of Scope*/
/*147075*/        /*SwitchType*/ 26, MVT::v4f64,// ->147103
/*147077*/          OPC_Scope, 11, /*->147090*/ // 2 children in Scope
/*147079*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*147081*/            OPC_EmitMergeInputChains1_0,
/*147082*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDYrr), 0|OPFL_Chain,
                          MVT::v4f64, 2/*#Ops*/, 1, 2, 
                      // Src: (strict_fdiv:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2) - Complexity = 3
                      // Dst: (VDIVPDYrr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2)
/*147090*/          /*Scope*/ 11, /*->147102*/
/*147091*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*147093*/            OPC_EmitMergeInputChains1_0,
/*147094*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDZ256rr), 0|OPFL_Chain,
                          MVT::v4f64, 2/*#Ops*/, 1, 2, 
                      // Src: (strict_fdiv:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2) - Complexity = 3
                      // Dst: (VDIVPDZ256rr:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2)
/*147102*/          0, /*End of Scope*/
/*147103*/        /*SwitchType*/ 11, MVT::v16f32,// ->147116
/*147105*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*147107*/          OPC_EmitMergeInputChains1_0,
/*147108*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSZrr), 0|OPFL_Chain,
                        MVT::v16f32, 2/*#Ops*/, 1, 2, 
                    // Src: (strict_fdiv:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2) - Complexity = 3
                    // Dst: (VDIVPSZrr:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*147116*/        /*SwitchType*/ 11, MVT::v8f64,// ->147129
/*147118*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*147120*/          OPC_EmitMergeInputChains1_0,
/*147121*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDZrr), 0|OPFL_Chain,
                        MVT::v8f64, 2/*#Ops*/, 1, 2, 
                    // Src: (strict_fdiv:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2) - Complexity = 3
                    // Dst: (VDIVPDZrr:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*147129*/        0, // EndSwitchType
/*147130*/      0, /*End of Scope*/
/*147131*/    0, /*End of Scope*/
/*147132*/  /*SwitchOpcode*/ 29|128,11/*1437*/, TARGET_VAL(ISD::FDIV),// ->148573
/*147136*/    OPC_Scope, 38|128,2/*294*/, /*->147433*/ // 3 children in Scope
/*147139*/      OPC_RecordChild0, // #0 = $src1
/*147140*/      OPC_MoveChild1,
/*147141*/      OPC_SwitchOpcode /*2 cases */, 2|128,1/*130*/, TARGET_VAL(ISD::LOAD),// ->147276
/*147146*/        OPC_RecordMemRef,
/*147147*/        OPC_RecordNode, // #1 = 'ld' chained node
/*147148*/        OPC_CheckFoldableChainNode,
/*147149*/        OPC_RecordChild1, // #2 = $src2
/*147150*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*147152*/        OPC_Scope, 47, /*->147201*/ // 2 children in Scope
/*147154*/          OPC_CheckPredicate, 9, // Predicate_load
/*147156*/          OPC_MoveParent,
/*147157*/          OPC_SwitchType /*2 cases */, 19, MVT::f32,// ->147179
/*147160*/            OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*147162*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*147165*/            OPC_EmitMergeInputChains1_1,
/*147166*/            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)
/*147179*/          /*SwitchType*/ 19, MVT::f64,// ->147200
/*147181*/            OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*147183*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*147186*/            OPC_EmitMergeInputChains1_1,
/*147187*/            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)
/*147200*/          0, // EndSwitchType
/*147201*/        /*Scope*/ 73, /*->147275*/
/*147202*/          OPC_CheckPredicate, 70, // Predicate_extload
/*147204*/          OPC_Scope, 45, /*->147251*/ // 2 children in Scope
/*147206*/            OPC_CheckPredicate, 21, // Predicate_extloadf32
/*147208*/            OPC_MoveParent,
/*147209*/            OPC_SwitchType /*2 cases */, 19, MVT::f64,// ->147231
/*147212*/              OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*147214*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*147217*/              OPC_EmitMergeInputChains1_1,
/*147218*/              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)
/*147231*/            /*SwitchType*/ 17, MVT::f80,// ->147250
/*147233*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*147236*/              OPC_EmitMergeInputChains1_1,
/*147237*/              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)
/*147250*/            0, // EndSwitchType
/*147251*/          /*Scope*/ 22, /*->147274*/
/*147252*/            OPC_CheckPredicate, 22, // Predicate_extloadf64
/*147254*/            OPC_MoveParent,
/*147255*/            OPC_CheckType, MVT::f80,
/*147257*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*147260*/            OPC_EmitMergeInputChains1_1,
/*147261*/            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)
/*147274*/          0, /*End of Scope*/
/*147275*/        0, /*End of Scope*/
/*147276*/      /*SwitchOpcode*/ 24|128,1/*152*/, TARGET_VAL(X86ISD::FILD),// ->147432
/*147280*/        OPC_RecordMemRef,
/*147281*/        OPC_RecordNode, // #1 = 'X86fild' chained node
/*147282*/        OPC_CheckFoldableChainNode,
/*147283*/        OPC_RecordChild1, // #2 = $src2
/*147284*/        OPC_Scope, 24, /*->147310*/ // 6 children in Scope
/*147286*/          OPC_CheckPredicate, 62, // Predicate_X86fild16
/*147288*/          OPC_MoveParent,
/*147289*/          OPC_CheckType, MVT::f32,
/*147291*/          OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*147293*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*147296*/          OPC_EmitMergeInputChains1_1,
/*147297*/          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)<<P:Predicate_X86fild16>>) - Complexity = 25
                    // Dst: (DIV_FpI16m32:{ *:[f32] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*147310*/        /*Scope*/ 24, /*->147335*/
/*147311*/          OPC_CheckPredicate, 63, // Predicate_X86fild32
/*147313*/          OPC_MoveParent,
/*147314*/          OPC_CheckType, MVT::f32,
/*147316*/          OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*147318*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*147321*/          OPC_EmitMergeInputChains1_1,
/*147322*/          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)<<P:Predicate_X86fild32>>) - Complexity = 25
                    // Dst: (DIV_FpI32m32:{ *:[f32] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*147335*/        /*Scope*/ 24, /*->147360*/
/*147336*/          OPC_CheckPredicate, 62, // Predicate_X86fild16
/*147338*/          OPC_MoveParent,
/*147339*/          OPC_CheckType, MVT::f64,
/*147341*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*147343*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*147346*/          OPC_EmitMergeInputChains1_1,
/*147347*/          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)<<P:Predicate_X86fild16>>) - Complexity = 25
                    // Dst: (DIV_FpI16m64:{ *:[f64] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*147360*/        /*Scope*/ 24, /*->147385*/
/*147361*/          OPC_CheckPredicate, 63, // Predicate_X86fild32
/*147363*/          OPC_MoveParent,
/*147364*/          OPC_CheckType, MVT::f64,
/*147366*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*147368*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*147371*/          OPC_EmitMergeInputChains1_1,
/*147372*/          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)<<P:Predicate_X86fild32>>) - Complexity = 25
                    // Dst: (DIV_FpI32m64:{ *:[f64] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*147385*/        /*Scope*/ 22, /*->147408*/
/*147386*/          OPC_CheckPredicate, 62, // Predicate_X86fild16
/*147388*/          OPC_MoveParent,
/*147389*/          OPC_CheckType, MVT::f80,
/*147391*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*147394*/          OPC_EmitMergeInputChains1_1,
/*147395*/          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)<<P:Predicate_X86fild16>>) - Complexity = 25
                    // Dst: (DIV_FpI16m80:{ *:[f80] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, addr:{ *:[iPTR] }:$src2)
/*147408*/        /*Scope*/ 22, /*->147431*/
/*147409*/          OPC_CheckPredicate, 63, // Predicate_X86fild32
/*147411*/          OPC_MoveParent,
/*147412*/          OPC_CheckType, MVT::f80,
/*147414*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*147417*/          OPC_EmitMergeInputChains1_1,
/*147418*/          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)<<P:Predicate_X86fild32>>) - Complexity = 25
                    // Dst: (DIV_FpI32m80:{ *:[f80] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, addr:{ *:[iPTR] }:$src2)
/*147431*/        0, /*End of Scope*/
/*147432*/      0, // EndSwitchOpcode
/*147433*/    /*Scope*/ 46|128,2/*302*/, /*->147737*/
/*147435*/      OPC_MoveChild0,
/*147436*/      OPC_SwitchOpcode /*2 cases */, 5|128,1/*133*/, TARGET_VAL(ISD::LOAD),// ->147574
/*147441*/        OPC_RecordMemRef,
/*147442*/        OPC_RecordNode, // #0 = 'ld' chained node
/*147443*/        OPC_CheckFoldableChainNode,
/*147444*/        OPC_RecordChild1, // #1 = $src2
/*147445*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*147447*/        OPC_Scope, 48, /*->147497*/ // 2 children in Scope
/*147449*/          OPC_CheckPredicate, 9, // Predicate_load
/*147451*/          OPC_MoveParent,
/*147452*/          OPC_RecordChild1, // #2 = $src1
/*147453*/          OPC_SwitchType /*2 cases */, 19, MVT::f32,// ->147475
/*147456*/            OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*147458*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*147461*/            OPC_EmitMergeInputChains1_0,
/*147462*/            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)
/*147475*/          /*SwitchType*/ 19, MVT::f64,// ->147496
/*147477*/            OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*147479*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*147482*/            OPC_EmitMergeInputChains1_0,
/*147483*/            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)
/*147496*/          0, // EndSwitchType
/*147497*/        /*Scope*/ 75, /*->147573*/
/*147498*/          OPC_CheckPredicate, 70, // Predicate_extload
/*147500*/          OPC_Scope, 46, /*->147548*/ // 2 children in Scope
/*147502*/            OPC_CheckPredicate, 21, // Predicate_extloadf32
/*147504*/            OPC_MoveParent,
/*147505*/            OPC_RecordChild1, // #2 = $src1
/*147506*/            OPC_SwitchType /*2 cases */, 19, MVT::f64,// ->147528
/*147509*/              OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*147511*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*147514*/              OPC_EmitMergeInputChains1_0,
/*147515*/              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)
/*147528*/            /*SwitchType*/ 17, MVT::f80,// ->147547
/*147530*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*147533*/              OPC_EmitMergeInputChains1_0,
/*147534*/              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)
/*147547*/            0, // EndSwitchType
/*147548*/          /*Scope*/ 23, /*->147572*/
/*147549*/            OPC_CheckPredicate, 22, // Predicate_extloadf64
/*147551*/            OPC_MoveParent,
/*147552*/            OPC_RecordChild1, // #2 = $src1
/*147553*/            OPC_CheckType, MVT::f80,
/*147555*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*147558*/            OPC_EmitMergeInputChains1_0,
/*147559*/            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)
/*147572*/          0, /*End of Scope*/
/*147573*/        0, /*End of Scope*/
/*147574*/      /*SwitchOpcode*/ 30|128,1/*158*/, TARGET_VAL(X86ISD::FILD),// ->147736
/*147578*/        OPC_RecordMemRef,
/*147579*/        OPC_RecordNode, // #0 = 'X86fild' chained node
/*147580*/        OPC_CheckFoldableChainNode,
/*147581*/        OPC_RecordChild1, // #1 = $src2
/*147582*/        OPC_Scope, 25, /*->147609*/ // 6 children in Scope
/*147584*/          OPC_CheckPredicate, 62, // Predicate_X86fild16
/*147586*/          OPC_MoveParent,
/*147587*/          OPC_RecordChild1, // #2 = $src1
/*147588*/          OPC_CheckType, MVT::f32,
/*147590*/          OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*147592*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*147595*/          OPC_EmitMergeInputChains1_0,
/*147596*/          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)<<P:Predicate_X86fild16>>, RFP32:{ *:[f32] }:$src1) - Complexity = 25
                    // Dst: (DIVR_FpI16m32:{ *:[f32] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*147609*/        /*Scope*/ 25, /*->147635*/
/*147610*/          OPC_CheckPredicate, 63, // Predicate_X86fild32
/*147612*/          OPC_MoveParent,
/*147613*/          OPC_RecordChild1, // #2 = $src1
/*147614*/          OPC_CheckType, MVT::f32,
/*147616*/          OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*147618*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*147621*/          OPC_EmitMergeInputChains1_0,
/*147622*/          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)<<P:Predicate_X86fild32>>, RFP32:{ *:[f32] }:$src1) - Complexity = 25
                    // Dst: (DIVR_FpI32m32:{ *:[f32] }:{ *:[i16] } RFP32:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*147635*/        /*Scope*/ 25, /*->147661*/
/*147636*/          OPC_CheckPredicate, 62, // Predicate_X86fild16
/*147638*/          OPC_MoveParent,
/*147639*/          OPC_RecordChild1, // #2 = $src1
/*147640*/          OPC_CheckType, MVT::f64,
/*147642*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*147644*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*147647*/          OPC_EmitMergeInputChains1_0,
/*147648*/          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)<<P:Predicate_X86fild16>>, RFP64:{ *:[f64] }:$src1) - Complexity = 25
                    // Dst: (DIVR_FpI16m64:{ *:[f64] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*147661*/        /*Scope*/ 25, /*->147687*/
/*147662*/          OPC_CheckPredicate, 63, // Predicate_X86fild32
/*147664*/          OPC_MoveParent,
/*147665*/          OPC_RecordChild1, // #2 = $src1
/*147666*/          OPC_CheckType, MVT::f64,
/*147668*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*147670*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*147673*/          OPC_EmitMergeInputChains1_0,
/*147674*/          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)<<P:Predicate_X86fild32>>, RFP64:{ *:[f64] }:$src1) - Complexity = 25
                    // Dst: (DIVR_FpI32m64:{ *:[f64] }:{ *:[i16] } RFP64:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*147687*/        /*Scope*/ 23, /*->147711*/
/*147688*/          OPC_CheckPredicate, 62, // Predicate_X86fild16
/*147690*/          OPC_MoveParent,
/*147691*/          OPC_RecordChild1, // #2 = $src1
/*147692*/          OPC_CheckType, MVT::f80,
/*147694*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*147697*/          OPC_EmitMergeInputChains1_0,
/*147698*/          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)<<P:Predicate_X86fild16>>, RFP80:{ *:[f80] }:$src1) - Complexity = 25
                    // Dst: (DIVR_FpI16m80:{ *:[f80] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, addr:{ *:[iPTR] }:$src2)
/*147711*/        /*Scope*/ 23, /*->147735*/
/*147712*/          OPC_CheckPredicate, 63, // Predicate_X86fild32
/*147714*/          OPC_MoveParent,
/*147715*/          OPC_RecordChild1, // #2 = $src1
/*147716*/          OPC_CheckType, MVT::f80,
/*147718*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*147721*/          OPC_EmitMergeInputChains1_0,
/*147722*/          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)<<P:Predicate_X86fild32>>, RFP80:{ *:[f80] }:$src1) - Complexity = 25
                    // Dst: (DIVR_FpI32m80:{ *:[f80] }:{ *:[i16] } RFP80:{ *:[f80] }:$src1, addr:{ *:[iPTR] }:$src2)
/*147735*/        0, /*End of Scope*/
/*147736*/      0, // EndSwitchOpcode
/*147737*/    /*Scope*/ 65|128,6/*833*/, /*->148572*/
/*147739*/      OPC_RecordChild0, // #0 = $src1
/*147740*/      OPC_Scope, 9|128,1/*137*/, /*->147880*/ // 4 children in Scope
/*147743*/        OPC_MoveChild1,
/*147744*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*147747*/        OPC_RecordMemRef,
/*147748*/        OPC_RecordNode, // #1 = 'ld' chained node
/*147749*/        OPC_CheckFoldableChainNode,
/*147750*/        OPC_RecordChild1, // #2 = $src2
/*147751*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*147753*/        OPC_CheckPredicate, 9, // Predicate_load
/*147755*/        OPC_MoveParent,
/*147756*/        OPC_SwitchType /*2 cases */, 59, MVT::f32,// ->147818
/*147759*/          OPC_Scope, 18, /*->147779*/ // 3 children in Scope
/*147761*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*147763*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*147766*/            OPC_EmitMergeInputChains1_1,
/*147767*/            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)
/*147779*/          /*Scope*/ 18, /*->147798*/
/*147780*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*147782*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*147785*/            OPC_EmitMergeInputChains1_1,
/*147786*/            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)
/*147798*/          /*Scope*/ 18, /*->147817*/
/*147799*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*147801*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*147804*/            OPC_EmitMergeInputChains1_1,
/*147805*/            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)
/*147817*/          0, /*End of Scope*/
/*147818*/        /*SwitchType*/ 59, MVT::f64,// ->147879
/*147820*/          OPC_Scope, 18, /*->147840*/ // 3 children in Scope
/*147822*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*147824*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*147827*/            OPC_EmitMergeInputChains1_1,
/*147828*/            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)
/*147840*/          /*Scope*/ 18, /*->147859*/
/*147841*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*147843*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*147846*/            OPC_EmitMergeInputChains1_1,
/*147847*/            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)
/*147859*/          /*Scope*/ 18, /*->147878*/
/*147860*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*147862*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*147865*/            OPC_EmitMergeInputChains1_1,
/*147866*/            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)
/*147878*/          0, /*End of Scope*/
/*147879*/        0, // EndSwitchType
/*147880*/      /*Scope*/ 112, /*->147993*/
/*147881*/        OPC_RecordChild1, // #1 = $src2
/*147882*/        OPC_SwitchType /*3 cases */, 47, MVT::f32,// ->147932
/*147885*/          OPC_Scope, 11, /*->147898*/ // 4 children in Scope
/*147887*/            OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*147889*/            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)
/*147898*/          /*Scope*/ 10, /*->147909*/
/*147899*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*147901*/            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)
/*147909*/          /*Scope*/ 10, /*->147920*/
/*147910*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*147912*/            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)
/*147920*/          /*Scope*/ 10, /*->147931*/
/*147921*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*147923*/            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)
/*147931*/          0, /*End of Scope*/
/*147932*/        /*SwitchType*/ 47, MVT::f64,// ->147981
/*147934*/          OPC_Scope, 11, /*->147947*/ // 4 children in Scope
/*147936*/            OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*147938*/            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)
/*147947*/          /*Scope*/ 10, /*->147958*/
/*147948*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*147950*/            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)
/*147958*/          /*Scope*/ 10, /*->147969*/
/*147959*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*147961*/            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)
/*147969*/          /*Scope*/ 10, /*->147980*/
/*147970*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*147972*/            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)
/*147980*/          0, /*End of Scope*/
/*147981*/        /*SwitchType*/ 9, MVT::f80,// ->147992
/*147983*/          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)
/*147992*/        0, // EndSwitchType
/*147993*/      /*Scope*/ 37|128,3/*421*/, /*->148416*/
/*147995*/        OPC_MoveChild1,
/*147996*/        OPC_SwitchOpcode /*2 cases */, 8|128,2/*264*/, TARGET_VAL(ISD::LOAD),// ->148265
/*148001*/          OPC_RecordMemRef,
/*148002*/          OPC_RecordNode, // #1 = 'ld' chained node
/*148003*/          OPC_CheckFoldableChainNode,
/*148004*/          OPC_RecordChild1, // #2 = $src2
/*148005*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*148007*/          OPC_CheckPredicate, 9, // Predicate_load
/*148009*/          OPC_Scope, 83, /*->148094*/ // 3 children in Scope
/*148011*/            OPC_MoveParent,
/*148012*/            OPC_SwitchType /*4 cases */, 18, MVT::v4f32,// ->148033
/*148015*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*148017*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*148020*/              OPC_EmitMergeInputChains1_1,
/*148021*/              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>>) - Complexity = 25
                        // Dst: (VDIVPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*148033*/            /*SwitchType*/ 18, MVT::v2f64,// ->148053
/*148035*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*148037*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*148040*/              OPC_EmitMergeInputChains1_1,
/*148041*/              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>>) - Complexity = 25
                        // Dst: (VDIVPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*148053*/            /*SwitchType*/ 18, MVT::v8f32,// ->148073
/*148055*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*148057*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*148060*/              OPC_EmitMergeInputChains1_1,
/*148061*/              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>>) - Complexity = 25
                        // Dst: (VDIVPSYrm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*148073*/            /*SwitchType*/ 18, MVT::v4f64,// ->148093
/*148075*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*148077*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*148080*/              OPC_EmitMergeInputChains1_1,
/*148081*/              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>>) - Complexity = 25
                        // Dst: (VDIVPDYrm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*148093*/            0, // EndSwitchType
/*148094*/          /*Scope*/ 45, /*->148140*/
/*148095*/            OPC_CheckPredicate, 39, // Predicate_memop
/*148097*/            OPC_MoveParent,
/*148098*/            OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->148119
/*148101*/              OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*148103*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*148106*/              OPC_EmitMergeInputChains1_1,
/*148107*/              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_memop>>) - Complexity = 25
                        // Dst: (DIVPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*148119*/            /*SwitchType*/ 18, MVT::v2f64,// ->148139
/*148121*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*148123*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*148126*/              OPC_EmitMergeInputChains1_1,
/*148127*/              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_memop>>) - Complexity = 25
                        // Dst: (DIVPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*148139*/            0, // EndSwitchType
/*148140*/          /*Scope*/ 123, /*->148264*/
/*148141*/            OPC_MoveParent,
/*148142*/            OPC_SwitchType /*6 cases */, 18, MVT::v16f32,// ->148163
/*148145*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*148147*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*148150*/              OPC_EmitMergeInputChains1_1,
/*148151*/              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>>) - Complexity = 25
                        // Dst: (VDIVPSZrm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*148163*/            /*SwitchType*/ 18, MVT::v8f64,// ->148183
/*148165*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*148167*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*148170*/              OPC_EmitMergeInputChains1_1,
/*148171*/              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>>) - Complexity = 25
                        // Dst: (VDIVPDZrm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*148183*/            /*SwitchType*/ 18, MVT::v4f32,// ->148203
/*148185*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*148187*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*148190*/              OPC_EmitMergeInputChains1_1,
/*148191*/              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>>) - Complexity = 25
                        // Dst: (VDIVPSZ128rm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*148203*/            /*SwitchType*/ 18, MVT::v8f32,// ->148223
/*148205*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*148207*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*148210*/              OPC_EmitMergeInputChains1_1,
/*148211*/              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>>) - Complexity = 25
                        // Dst: (VDIVPSZ256rm:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*148223*/            /*SwitchType*/ 18, MVT::v2f64,// ->148243
/*148225*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*148227*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*148230*/              OPC_EmitMergeInputChains1_1,
/*148231*/              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>>) - Complexity = 25
                        // Dst: (VDIVPDZ128rm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*148243*/            /*SwitchType*/ 18, MVT::v4f64,// ->148263
/*148245*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*148247*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*148250*/              OPC_EmitMergeInputChains1_1,
/*148251*/              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>>) - Complexity = 25
                        // Dst: (VDIVPDZ256rm:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*148263*/            0, // EndSwitchType
/*148264*/          0, /*End of Scope*/
/*148265*/        /*SwitchOpcode*/ 18|128,1/*146*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->148415
/*148269*/          OPC_RecordMemRef,
/*148270*/          OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*148271*/          OPC_CheckFoldableChainNode,
/*148272*/          OPC_RecordChild1, // #2 = $src2
/*148273*/          OPC_Scope, 23, /*->148298*/ // 4 children in Scope
/*148275*/            OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*148277*/            OPC_MoveParent,
/*148278*/            OPC_CheckType, MVT::v16f32,
/*148280*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*148282*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*148285*/            OPC_EmitMergeInputChains1_1,
/*148286*/            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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VDIVPSZrmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*148298*/          /*Scope*/ 23, /*->148322*/
/*148299*/            OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*148301*/            OPC_MoveParent,
/*148302*/            OPC_CheckType, MVT::v8f64,
/*148304*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*148306*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*148309*/            OPC_EmitMergeInputChains1_1,
/*148310*/            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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VDIVPDZrmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*148322*/          /*Scope*/ 45, /*->148368*/
/*148323*/            OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*148325*/            OPC_MoveParent,
/*148326*/            OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->148347
/*148329*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*148331*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*148334*/              OPC_EmitMergeInputChains1_1,
/*148335*/              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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VDIVPSZ128rmb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*148347*/            /*SwitchType*/ 18, MVT::v8f32,// ->148367
/*148349*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*148351*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*148354*/              OPC_EmitMergeInputChains1_1,
/*148355*/              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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VDIVPSZ256rmb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*148367*/            0, // EndSwitchType
/*148368*/          /*Scope*/ 45, /*->148414*/
/*148369*/            OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*148371*/            OPC_MoveParent,
/*148372*/            OPC_SwitchType /*2 cases */, 18, MVT::v2f64,// ->148393
/*148375*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*148377*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*148380*/              OPC_EmitMergeInputChains1_1,
/*148381*/              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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VDIVPDZ128rmb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*148393*/            /*SwitchType*/ 18, MVT::v4f64,// ->148413
/*148395*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*148397*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*148400*/              OPC_EmitMergeInputChains1_1,
/*148401*/              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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VDIVPDZ256rmb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*148413*/            0, // EndSwitchType
/*148414*/          0, /*End of Scope*/
/*148415*/        0, // EndSwitchOpcode
/*148416*/      /*Scope*/ 25|128,1/*153*/, /*->148571*/
/*148418*/        OPC_RecordChild1, // #1 = $src2
/*148419*/        OPC_SwitchType /*6 cases */, 35, MVT::v4f32,// ->148457
/*148422*/          OPC_Scope, 10, /*->148434*/ // 3 children in Scope
/*148424*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*148426*/            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)
/*148434*/          /*Scope*/ 10, /*->148445*/
/*148435*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*148437*/            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)
/*148445*/          /*Scope*/ 10, /*->148456*/
/*148446*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*148448*/            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)
/*148456*/          0, /*End of Scope*/
/*148457*/        /*SwitchType*/ 35, MVT::v2f64,// ->148494
/*148459*/          OPC_Scope, 10, /*->148471*/ // 3 children in Scope
/*148461*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*148463*/            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)
/*148471*/          /*Scope*/ 10, /*->148482*/
/*148472*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*148474*/            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)
/*148482*/          /*Scope*/ 10, /*->148493*/
/*148483*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*148485*/            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)
/*148493*/          0, /*End of Scope*/
/*148494*/        /*SwitchType*/ 24, MVT::v8f32,// ->148520
/*148496*/          OPC_Scope, 10, /*->148508*/ // 2 children in Scope
/*148498*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*148500*/            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)
/*148508*/          /*Scope*/ 10, /*->148519*/
/*148509*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*148511*/            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)
/*148519*/          0, /*End of Scope*/
/*148520*/        /*SwitchType*/ 24, MVT::v4f64,// ->148546
/*148522*/          OPC_Scope, 10, /*->148534*/ // 2 children in Scope
/*148524*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*148526*/            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)
/*148534*/          /*Scope*/ 10, /*->148545*/
/*148535*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*148537*/            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)
/*148545*/          0, /*End of Scope*/
/*148546*/        /*SwitchType*/ 10, MVT::v16f32,// ->148558
/*148548*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*148550*/          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)
/*148558*/        /*SwitchType*/ 10, MVT::v8f64,// ->148570
/*148560*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*148562*/          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)
/*148570*/        0, // EndSwitchType
/*148571*/      0, /*End of Scope*/
/*148572*/    0, /*End of Scope*/
/*148573*/  /*SwitchOpcode*/ 95|128,22/*2911*/, TARGET_VAL(ISD::STRICT_FMA),// ->151488
/*148577*/    OPC_RecordNode, // #0 = 'X86strict_Fmadd' chained node
/*148578*/    OPC_Scope, 81, /*->148661*/ // 19 children in Scope
/*148580*/      OPC_RecordChild1, // #1 = $src2
/*148581*/      OPC_Scope, 38, /*->148621*/ // 2 children in Scope
/*148583*/        OPC_RecordChild2, // #2 = $src1
/*148584*/        OPC_MoveChild3,
/*148585*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*148588*/        OPC_RecordMemRef,
/*148589*/        OPC_RecordNode, // #3 = 'ld' chained node
/*148590*/        OPC_CheckFoldableChainNode,
/*148591*/        OPC_RecordChild1, // #4 = $src3
/*148592*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*148594*/        OPC_CheckPredicate, 9, // Predicate_load
/*148596*/        OPC_MoveParent,
/*148597*/        OPC_CheckType, MVT::f32,
/*148599*/        OPC_CheckPatternPredicate, 173, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*148601*/        OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*148604*/        OPC_EmitMergeInputChains, 2, 0, 3, 
/*148608*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SSm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f32, 7/*#Ops*/, 2, 1, 5, 6, 7, 8, 9, 
                  // Src: (X86strict_Fmadd:{ *:[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)
/*148621*/      /*Scope*/ 38, /*->148660*/
/*148622*/        OPC_MoveChild2,
/*148623*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*148626*/        OPC_RecordMemRef,
/*148627*/        OPC_RecordNode, // #2 = 'ld' chained node
/*148628*/        OPC_CheckFoldableChainNode,
/*148629*/        OPC_RecordChild1, // #3 = $src3
/*148630*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*148632*/        OPC_CheckPredicate, 9, // Predicate_load
/*148634*/        OPC_MoveParent,
/*148635*/        OPC_RecordChild3, // #4 = $src1
/*148636*/        OPC_CheckType, MVT::f32,
/*148638*/        OPC_CheckPatternPredicate, 173, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*148640*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*148643*/        OPC_EmitMergeInputChains, 2, 0, 2, 
/*148647*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SSm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f32, 7/*#Ops*/, 4, 1, 5, 6, 7, 8, 9, 
                  // Src: (X86strict_Fmadd:{ *:[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)
/*148660*/      0, /*End of Scope*/
/*148661*/    /*Scope*/ 39, /*->148701*/
/*148662*/      OPC_MoveChild1,
/*148663*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*148666*/      OPC_RecordMemRef,
/*148667*/      OPC_RecordNode, // #1 = 'ld' chained node
/*148668*/      OPC_CheckFoldableChainNode,
/*148669*/      OPC_RecordChild1, // #2 = $src3
/*148670*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*148672*/      OPC_CheckPredicate, 9, // Predicate_load
/*148674*/      OPC_MoveParent,
/*148675*/      OPC_RecordChild2, // #3 = $src1
/*148676*/      OPC_RecordChild3, // #4 = $src2
/*148677*/      OPC_CheckType, MVT::f32,
/*148679*/      OPC_CheckPatternPredicate, 173, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*148681*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*148684*/      OPC_EmitMergeInputChains, 2, 0, 1, 
/*148688*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132SSm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::f32, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                // Src: (X86strict_Fmadd:{ *:[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)
/*148701*/    /*Scope*/ 81, /*->148783*/
/*148702*/      OPC_RecordChild1, // #1 = $src2
/*148703*/      OPC_Scope, 38, /*->148743*/ // 2 children in Scope
/*148705*/        OPC_RecordChild2, // #2 = $src1
/*148706*/        OPC_MoveChild3,
/*148707*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*148710*/        OPC_RecordMemRef,
/*148711*/        OPC_RecordNode, // #3 = 'ld' chained node
/*148712*/        OPC_CheckFoldableChainNode,
/*148713*/        OPC_RecordChild1, // #4 = $src3
/*148714*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*148716*/        OPC_CheckPredicate, 9, // Predicate_load
/*148718*/        OPC_MoveParent,
/*148719*/        OPC_CheckType, MVT::f64,
/*148721*/        OPC_CheckPatternPredicate, 173, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*148723*/        OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*148726*/        OPC_EmitMergeInputChains, 2, 0, 3, 
/*148730*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SDm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 7/*#Ops*/, 2, 1, 5, 6, 7, 8, 9, 
                  // Src: (X86strict_Fmadd:{ *:[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)
/*148743*/      /*Scope*/ 38, /*->148782*/
/*148744*/        OPC_MoveChild2,
/*148745*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*148748*/        OPC_RecordMemRef,
/*148749*/        OPC_RecordNode, // #2 = 'ld' chained node
/*148750*/        OPC_CheckFoldableChainNode,
/*148751*/        OPC_RecordChild1, // #3 = $src3
/*148752*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*148754*/        OPC_CheckPredicate, 9, // Predicate_load
/*148756*/        OPC_MoveParent,
/*148757*/        OPC_RecordChild3, // #4 = $src1
/*148758*/        OPC_CheckType, MVT::f64,
/*148760*/        OPC_CheckPatternPredicate, 173, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*148762*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*148765*/        OPC_EmitMergeInputChains, 2, 0, 2, 
/*148769*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SDm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 7/*#Ops*/, 4, 1, 5, 6, 7, 8, 9, 
                  // Src: (X86strict_Fmadd:{ *:[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)
/*148782*/      0, /*End of Scope*/
/*148783*/    /*Scope*/ 39, /*->148823*/
/*148784*/      OPC_MoveChild1,
/*148785*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*148788*/      OPC_RecordMemRef,
/*148789*/      OPC_RecordNode, // #1 = 'ld' chained node
/*148790*/      OPC_CheckFoldableChainNode,
/*148791*/      OPC_RecordChild1, // #2 = $src3
/*148792*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*148794*/      OPC_CheckPredicate, 9, // Predicate_load
/*148796*/      OPC_MoveParent,
/*148797*/      OPC_RecordChild2, // #3 = $src1
/*148798*/      OPC_RecordChild3, // #4 = $src2
/*148799*/      OPC_CheckType, MVT::f64,
/*148801*/      OPC_CheckPatternPredicate, 173, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*148803*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*148806*/      OPC_EmitMergeInputChains, 2, 0, 1, 
/*148810*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132SDm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::f64, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                // Src: (X86strict_Fmadd:{ *:[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)
/*148823*/    /*Scope*/ 109|128,1/*237*/, /*->149062*/
/*148825*/      OPC_RecordChild1, // #1 = $src1
/*148826*/      OPC_Scope, 38, /*->148866*/ // 6 children in Scope
/*148828*/        OPC_RecordChild2, // #2 = $src2
/*148829*/        OPC_MoveChild3,
/*148830*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*148833*/        OPC_RecordMemRef,
/*148834*/        OPC_RecordNode, // #3 = 'ld' chained node
/*148835*/        OPC_CheckFoldableChainNode,
/*148836*/        OPC_RecordChild1, // #4 = $src3
/*148837*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*148839*/        OPC_CheckPredicate, 9, // Predicate_load
/*148841*/        OPC_MoveParent,
/*148842*/        OPC_CheckType, MVT::f32,
/*148844*/        OPC_CheckPatternPredicate, 174, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*148846*/        OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*148849*/        OPC_EmitMergeInputChains, 2, 0, 3, 
/*148853*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSS4rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f32, 7/*#Ops*/, 1, 2, 5, 6, 7, 8, 9, 
                  // Src: (X86strict_Fmadd:{ *:[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)
/*148866*/      /*Scope*/ 38, /*->148905*/
/*148867*/        OPC_MoveChild2,
/*148868*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*148871*/        OPC_RecordMemRef,
/*148872*/        OPC_RecordNode, // #2 = 'ld' chained node
/*148873*/        OPC_CheckFoldableChainNode,
/*148874*/        OPC_RecordChild1, // #3 = $src2
/*148875*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*148877*/        OPC_CheckPredicate, 9, // Predicate_load
/*148879*/        OPC_MoveParent,
/*148880*/        OPC_RecordChild3, // #4 = $src3
/*148881*/        OPC_CheckType, MVT::f32,
/*148883*/        OPC_CheckPatternPredicate, 174, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*148885*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*148888*/        OPC_EmitMergeInputChains, 2, 0, 2, 
/*148892*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSS4mr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f32, 7/*#Ops*/, 1, 5, 6, 7, 8, 9, 4, 
                  // Src: (X86strict_Fmadd:{ *:[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)
/*148905*/      /*Scope*/ 38, /*->148944*/
/*148906*/        OPC_RecordChild2, // #2 = $src2
/*148907*/        OPC_MoveChild3,
/*148908*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*148911*/        OPC_RecordMemRef,
/*148912*/        OPC_RecordNode, // #3 = 'ld' chained node
/*148913*/        OPC_CheckFoldableChainNode,
/*148914*/        OPC_RecordChild1, // #4 = $src3
/*148915*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*148917*/        OPC_CheckPredicate, 9, // Predicate_load
/*148919*/        OPC_MoveParent,
/*148920*/        OPC_CheckType, MVT::f64,
/*148922*/        OPC_CheckPatternPredicate, 174, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*148924*/        OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*148927*/        OPC_EmitMergeInputChains, 2, 0, 3, 
/*148931*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSD4rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 7/*#Ops*/, 1, 2, 5, 6, 7, 8, 9, 
                  // Src: (X86strict_Fmadd:{ *:[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)
/*148944*/      /*Scope*/ 38, /*->148983*/
/*148945*/        OPC_MoveChild2,
/*148946*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*148949*/        OPC_RecordMemRef,
/*148950*/        OPC_RecordNode, // #2 = 'ld' chained node
/*148951*/        OPC_CheckFoldableChainNode,
/*148952*/        OPC_RecordChild1, // #3 = $src2
/*148953*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*148955*/        OPC_CheckPredicate, 9, // Predicate_load
/*148957*/        OPC_MoveParent,
/*148958*/        OPC_RecordChild3, // #4 = $src3
/*148959*/        OPC_CheckType, MVT::f64,
/*148961*/        OPC_CheckPatternPredicate, 174, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*148963*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*148966*/        OPC_EmitMergeInputChains, 2, 0, 2, 
/*148970*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSD4mr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 7/*#Ops*/, 1, 5, 6, 7, 8, 9, 4, 
                  // Src: (X86strict_Fmadd:{ *:[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)
/*148983*/      /*Scope*/ 38, /*->149022*/
/*148984*/        OPC_RecordChild2, // #2 = $src1
/*148985*/        OPC_MoveChild3,
/*148986*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*148989*/        OPC_RecordMemRef,
/*148990*/        OPC_RecordNode, // #3 = 'ld' chained node
/*148991*/        OPC_CheckFoldableChainNode,
/*148992*/        OPC_RecordChild1, // #4 = $src3
/*148993*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*148995*/        OPC_CheckPredicate, 9, // Predicate_load
/*148997*/        OPC_MoveParent,
/*148998*/        OPC_CheckType, MVT::f32,
/*149000*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*149002*/        OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*149005*/        OPC_EmitMergeInputChains, 2, 0, 3, 
/*149009*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SSZm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f32, 7/*#Ops*/, 2, 1, 5, 6, 7, 8, 9, 
                  // Src: (X86strict_Fmadd:{ *:[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)
/*149022*/      /*Scope*/ 38, /*->149061*/
/*149023*/        OPC_MoveChild2,
/*149024*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*149027*/        OPC_RecordMemRef,
/*149028*/        OPC_RecordNode, // #2 = 'ld' chained node
/*149029*/        OPC_CheckFoldableChainNode,
/*149030*/        OPC_RecordChild1, // #3 = $src3
/*149031*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*149033*/        OPC_CheckPredicate, 9, // Predicate_load
/*149035*/        OPC_MoveParent,
/*149036*/        OPC_RecordChild3, // #4 = $src1
/*149037*/        OPC_CheckType, MVT::f32,
/*149039*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*149041*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*149044*/        OPC_EmitMergeInputChains, 2, 0, 2, 
/*149048*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SSZm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f32, 7/*#Ops*/, 4, 1, 5, 6, 7, 8, 9, 
                  // Src: (X86strict_Fmadd:{ *:[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)
/*149061*/      0, /*End of Scope*/
/*149062*/    /*Scope*/ 39, /*->149102*/
/*149063*/      OPC_MoveChild1,
/*149064*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*149067*/      OPC_RecordMemRef,
/*149068*/      OPC_RecordNode, // #1 = 'ld' chained node
/*149069*/      OPC_CheckFoldableChainNode,
/*149070*/      OPC_RecordChild1, // #2 = $src3
/*149071*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*149073*/      OPC_CheckPredicate, 9, // Predicate_load
/*149075*/      OPC_MoveParent,
/*149076*/      OPC_RecordChild2, // #3 = $src1
/*149077*/      OPC_RecordChild3, // #4 = $src2
/*149078*/      OPC_CheckType, MVT::f32,
/*149080*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*149082*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*149085*/      OPC_EmitMergeInputChains, 2, 0, 1, 
/*149089*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132SSZm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::f32, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                // Src: (X86strict_Fmadd:{ *:[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)
/*149102*/    /*Scope*/ 81, /*->149184*/
/*149103*/      OPC_RecordChild1, // #1 = $src2
/*149104*/      OPC_Scope, 38, /*->149144*/ // 2 children in Scope
/*149106*/        OPC_RecordChild2, // #2 = $src1
/*149107*/        OPC_MoveChild3,
/*149108*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*149111*/        OPC_RecordMemRef,
/*149112*/        OPC_RecordNode, // #3 = 'ld' chained node
/*149113*/        OPC_CheckFoldableChainNode,
/*149114*/        OPC_RecordChild1, // #4 = $src3
/*149115*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*149117*/        OPC_CheckPredicate, 9, // Predicate_load
/*149119*/        OPC_MoveParent,
/*149120*/        OPC_CheckType, MVT::f64,
/*149122*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*149124*/        OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*149127*/        OPC_EmitMergeInputChains, 2, 0, 3, 
/*149131*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SDZm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 7/*#Ops*/, 2, 1, 5, 6, 7, 8, 9, 
                  // Src: (X86strict_Fmadd:{ *:[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)
/*149144*/      /*Scope*/ 38, /*->149183*/
/*149145*/        OPC_MoveChild2,
/*149146*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*149149*/        OPC_RecordMemRef,
/*149150*/        OPC_RecordNode, // #2 = 'ld' chained node
/*149151*/        OPC_CheckFoldableChainNode,
/*149152*/        OPC_RecordChild1, // #3 = $src3
/*149153*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*149155*/        OPC_CheckPredicate, 9, // Predicate_load
/*149157*/        OPC_MoveParent,
/*149158*/        OPC_RecordChild3, // #4 = $src1
/*149159*/        OPC_CheckType, MVT::f64,
/*149161*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*149163*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*149166*/        OPC_EmitMergeInputChains, 2, 0, 2, 
/*149170*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SDZm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 7/*#Ops*/, 4, 1, 5, 6, 7, 8, 9, 
                  // Src: (X86strict_Fmadd:{ *:[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)
/*149183*/      0, /*End of Scope*/
/*149184*/    /*Scope*/ 91, /*->149276*/
/*149185*/      OPC_MoveChild1,
/*149186*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*149189*/      OPC_RecordMemRef,
/*149190*/      OPC_RecordNode, // #1 = 'ld' chained node
/*149191*/      OPC_CheckFoldableChainNode,
/*149192*/      OPC_RecordChild1, // #2 = $src3
/*149193*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*149195*/      OPC_CheckPredicate, 9, // Predicate_load
/*149197*/      OPC_MoveParent,
/*149198*/      OPC_RecordChild2, // #3 = $src1
/*149199*/      OPC_RecordChild3, // #4 = $src2
/*149200*/      OPC_SwitchType /*2 cases */, 48, MVT::f64,// ->149251
/*149203*/        OPC_Scope, 22, /*->149227*/ // 2 children in Scope
/*149205*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*149207*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*149210*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*149214*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132SDZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86strict_Fmadd:{ *:[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)
/*149227*/        /*Scope*/ 22, /*->149250*/
/*149228*/          OPC_CheckPatternPredicate, 174, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*149230*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*149233*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*149237*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSD4mr), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 7/*#Ops*/, 3, 5, 6, 7, 8, 9, 4, 
                    // Src: (X86strict_Fmadd:{ *:[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)
/*149250*/        0, /*End of Scope*/
/*149251*/      /*SwitchType*/ 22, MVT::f32,// ->149275
/*149253*/        OPC_CheckPatternPredicate, 174, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*149255*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*149258*/        OPC_EmitMergeInputChains, 2, 0, 1, 
/*149262*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSS4mr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f32, 7/*#Ops*/, 3, 5, 6, 7, 8, 9, 4, 
                  // Src: (X86strict_Fmadd:{ *:[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)
/*149275*/      0, // EndSwitchType
/*149276*/    /*Scope*/ 47|128,1/*175*/, /*->149453*/
/*149278*/      OPC_RecordChild1, // #1 = $src2
/*149279*/      OPC_Scope, 3|128,1/*131*/, /*->149413*/ // 2 children in Scope
/*149282*/        OPC_RecordChild2, // #2 = $src1
/*149283*/        OPC_Scope, 89, /*->149374*/ // 2 children in Scope
/*149285*/          OPC_RecordChild3, // #3 = $src3
/*149286*/          OPC_SwitchType /*2 cases */, 41, MVT::f32,// ->149330
/*149289*/            OPC_Scope, 12, /*->149303*/ // 3 children in Scope
/*149291*/              OPC_CheckPatternPredicate, 173, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*149293*/              OPC_EmitMergeInputChains1_0,
/*149294*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SSr), 0|OPFL_Chain,
                            MVT::f32, 3/*#Ops*/, 2, 1, 3, 
                        // Src: (X86strict_Fmadd:{ *:[f32] } FR32:{ *:[f32] }:$src2, FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src3) - Complexity = 3
                        // Dst: (VFMADD213SSr:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2, FR32:{ *:[f32] }:$src3)
/*149303*/            /*Scope*/ 12, /*->149316*/
/*149304*/              OPC_CheckPatternPredicate, 174, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*149306*/              OPC_EmitMergeInputChains1_0,
/*149307*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSS4rr), 0|OPFL_Chain,
                            MVT::f32, 3/*#Ops*/, 1, 2, 3, 
                        // Src: (X86strict_Fmadd:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2, FR32:{ *:[f32] }:$src3) - Complexity = 3
                        // Dst: (VFMADDSS4rr:{ *:[f32] } FR32:{ *:[f32] }:$src1, FR32:{ *:[f32] }:$src2, FR32:{ *:[f32] }:$src3)
/*149316*/            /*Scope*/ 12, /*->149329*/
/*149317*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*149319*/              OPC_EmitMergeInputChains1_0,
/*149320*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SSZr), 0|OPFL_Chain,
                            MVT::f32, 3/*#Ops*/, 2, 1, 3, 
                        // Src: (X86strict_Fmadd:{ *:[f32] } FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src3) - Complexity = 3
                        // Dst: (VFMADD213SSZr:{ *:[f32] } FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src3)
/*149329*/            0, /*End of Scope*/
/*149330*/          /*SwitchType*/ 41, MVT::f64,// ->149373
/*149332*/            OPC_Scope, 12, /*->149346*/ // 3 children in Scope
/*149334*/              OPC_CheckPatternPredicate, 173, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*149336*/              OPC_EmitMergeInputChains1_0,
/*149337*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SDr), 0|OPFL_Chain,
                            MVT::f64, 3/*#Ops*/, 2, 1, 3, 
                        // Src: (X86strict_Fmadd:{ *:[f64] } FR64:{ *:[f64] }:$src2, FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src3) - Complexity = 3
                        // Dst: (VFMADD213SDr:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2, FR64:{ *:[f64] }:$src3)
/*149346*/            /*Scope*/ 12, /*->149359*/
/*149347*/              OPC_CheckPatternPredicate, 174, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*149349*/              OPC_EmitMergeInputChains1_0,
/*149350*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSD4rr), 0|OPFL_Chain,
                            MVT::f64, 3/*#Ops*/, 1, 2, 3, 
                        // Src: (X86strict_Fmadd:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2, FR64:{ *:[f64] }:$src3) - Complexity = 3
                        // Dst: (VFMADDSD4rr:{ *:[f64] } FR64:{ *:[f64] }:$src1, FR64:{ *:[f64] }:$src2, FR64:{ *:[f64] }:$src3)
/*149359*/            /*Scope*/ 12, /*->149372*/
/*149360*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*149362*/              OPC_EmitMergeInputChains1_0,
/*149363*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SDZr), 0|OPFL_Chain,
                            MVT::f64, 3/*#Ops*/, 2, 1, 3, 
                        // Src: (X86strict_Fmadd:{ *:[f64] } FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src3) - Complexity = 3
                        // Dst: (VFMADD213SDZr:{ *:[f64] } FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src3)
/*149372*/            0, /*End of Scope*/
/*149373*/          0, // EndSwitchType
/*149374*/        /*Scope*/ 37, /*->149412*/
/*149375*/          OPC_MoveChild3,
/*149376*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*149379*/          OPC_RecordMemRef,
/*149380*/          OPC_RecordNode, // #3 = 'ld' chained node
/*149381*/          OPC_CheckFoldableChainNode,
/*149382*/          OPC_RecordChild1, // #4 = $src3
/*149383*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*149385*/          OPC_CheckPredicate, 9, // Predicate_load
/*149387*/          OPC_MoveParent,
/*149388*/          OPC_CheckType, MVT::v4f32,
/*149390*/          OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*149392*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*149395*/          OPC_EmitMergeInputChains, 2, 0, 3, 
/*149399*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 2, 1, 5, 6, 7, 8, 9, 
                    // Src: (X86strict_Fmadd:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src2, VR128:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VFMADD213PSm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*149412*/        0, /*End of Scope*/
/*149413*/      /*Scope*/ 38, /*->149452*/
/*149414*/        OPC_MoveChild2,
/*149415*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*149418*/        OPC_RecordMemRef,
/*149419*/        OPC_RecordNode, // #2 = 'ld' chained node
/*149420*/        OPC_CheckFoldableChainNode,
/*149421*/        OPC_RecordChild1, // #3 = $src3
/*149422*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*149424*/        OPC_CheckPredicate, 9, // Predicate_load
/*149426*/        OPC_MoveParent,
/*149427*/        OPC_RecordChild3, // #4 = $src1
/*149428*/        OPC_CheckType, MVT::v4f32,
/*149430*/        OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*149432*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*149435*/        OPC_EmitMergeInputChains, 2, 0, 2, 
/*149439*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PSm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 7/*#Ops*/, 4, 1, 5, 6, 7, 8, 9, 
                  // Src: (X86strict_Fmadd:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src2, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v4f32] }:$src1) - Complexity = 25
                  // Dst: (VFMADD231PSm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*149452*/      0, /*End of Scope*/
/*149453*/    /*Scope*/ 39, /*->149493*/
/*149454*/      OPC_MoveChild1,
/*149455*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*149458*/      OPC_RecordMemRef,
/*149459*/      OPC_RecordNode, // #1 = 'ld' chained node
/*149460*/      OPC_CheckFoldableChainNode,
/*149461*/      OPC_RecordChild1, // #2 = $src3
/*149462*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*149464*/      OPC_CheckPredicate, 9, // Predicate_load
/*149466*/      OPC_MoveParent,
/*149467*/      OPC_RecordChild2, // #3 = $src1
/*149468*/      OPC_RecordChild3, // #4 = $src2
/*149469*/      OPC_CheckType, MVT::v4f32,
/*149471*/      OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*149473*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*149476*/      OPC_EmitMergeInputChains, 2, 0, 1, 
/*149480*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PSm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4f32, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                // Src: (X86strict_Fmadd:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2) - Complexity = 25
                // Dst: (VFMADD132PSm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*149493*/    /*Scope*/ 81, /*->149575*/
/*149494*/      OPC_RecordChild1, // #1 = $src2
/*149495*/      OPC_Scope, 38, /*->149535*/ // 2 children in Scope
/*149497*/        OPC_RecordChild2, // #2 = $src1
/*149498*/        OPC_MoveChild3,
/*149499*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*149502*/        OPC_RecordMemRef,
/*149503*/        OPC_RecordNode, // #3 = 'ld' chained node
/*149504*/        OPC_CheckFoldableChainNode,
/*149505*/        OPC_RecordChild1, // #4 = $src3
/*149506*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*149508*/        OPC_CheckPredicate, 9, // Predicate_load
/*149510*/        OPC_MoveParent,
/*149511*/        OPC_CheckType, MVT::v8f32,
/*149513*/        OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*149515*/        OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*149518*/        OPC_EmitMergeInputChains, 2, 0, 3, 
/*149522*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSYm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8f32, 7/*#Ops*/, 2, 1, 5, 6, 7, 8, 9, 
                  // Src: (X86strict_Fmadd:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src2, VR256:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VFMADD213PSYm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*149535*/      /*Scope*/ 38, /*->149574*/
/*149536*/        OPC_MoveChild2,
/*149537*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*149540*/        OPC_RecordMemRef,
/*149541*/        OPC_RecordNode, // #2 = 'ld' chained node
/*149542*/        OPC_CheckFoldableChainNode,
/*149543*/        OPC_RecordChild1, // #3 = $src3
/*149544*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*149546*/        OPC_CheckPredicate, 9, // Predicate_load
/*149548*/        OPC_MoveParent,
/*149549*/        OPC_RecordChild3, // #4 = $src1
/*149550*/        OPC_CheckType, MVT::v8f32,
/*149552*/        OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*149554*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*149557*/        OPC_EmitMergeInputChains, 2, 0, 2, 
/*149561*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PSYm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8f32, 7/*#Ops*/, 4, 1, 5, 6, 7, 8, 9, 
                  // Src: (X86strict_Fmadd:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src2, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v8f32] }:$src1) - Complexity = 25
                  // Dst: (VFMADD231PSYm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*149574*/      0, /*End of Scope*/
/*149575*/    /*Scope*/ 39, /*->149615*/
/*149576*/      OPC_MoveChild1,
/*149577*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*149580*/      OPC_RecordMemRef,
/*149581*/      OPC_RecordNode, // #1 = 'ld' chained node
/*149582*/      OPC_CheckFoldableChainNode,
/*149583*/      OPC_RecordChild1, // #2 = $src3
/*149584*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*149586*/      OPC_CheckPredicate, 9, // Predicate_load
/*149588*/      OPC_MoveParent,
/*149589*/      OPC_RecordChild2, // #3 = $src1
/*149590*/      OPC_RecordChild3, // #4 = $src2
/*149591*/      OPC_CheckType, MVT::v8f32,
/*149593*/      OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*149595*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*149598*/      OPC_EmitMergeInputChains, 2, 0, 1, 
/*149602*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PSYm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8f32, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                // Src: (X86strict_Fmadd:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2) - Complexity = 25
                // Dst: (VFMADD132PSYm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*149615*/    /*Scope*/ 81, /*->149697*/
/*149616*/      OPC_RecordChild1, // #1 = $src2
/*149617*/      OPC_Scope, 38, /*->149657*/ // 2 children in Scope
/*149619*/        OPC_RecordChild2, // #2 = $src1
/*149620*/        OPC_MoveChild3,
/*149621*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*149624*/        OPC_RecordMemRef,
/*149625*/        OPC_RecordNode, // #3 = 'ld' chained node
/*149626*/        OPC_CheckFoldableChainNode,
/*149627*/        OPC_RecordChild1, // #4 = $src3
/*149628*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*149630*/        OPC_CheckPredicate, 9, // Predicate_load
/*149632*/        OPC_MoveParent,
/*149633*/        OPC_CheckType, MVT::v2f64,
/*149635*/        OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*149637*/        OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*149640*/        OPC_EmitMergeInputChains, 2, 0, 3, 
/*149644*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 7/*#Ops*/, 2, 1, 5, 6, 7, 8, 9, 
                  // Src: (X86strict_Fmadd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src2, VR128:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VFMADD213PDm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*149657*/      /*Scope*/ 38, /*->149696*/
/*149658*/        OPC_MoveChild2,
/*149659*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*149662*/        OPC_RecordMemRef,
/*149663*/        OPC_RecordNode, // #2 = 'ld' chained node
/*149664*/        OPC_CheckFoldableChainNode,
/*149665*/        OPC_RecordChild1, // #3 = $src3
/*149666*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*149668*/        OPC_CheckPredicate, 9, // Predicate_load
/*149670*/        OPC_MoveParent,
/*149671*/        OPC_RecordChild3, // #4 = $src1
/*149672*/        OPC_CheckType, MVT::v2f64,
/*149674*/        OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*149676*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*149679*/        OPC_EmitMergeInputChains, 2, 0, 2, 
/*149683*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PDm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 7/*#Ops*/, 4, 1, 5, 6, 7, 8, 9, 
                  // Src: (X86strict_Fmadd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src2, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v2f64] }:$src1) - Complexity = 25
                  // Dst: (VFMADD231PDm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*149696*/      0, /*End of Scope*/
/*149697*/    /*Scope*/ 39, /*->149737*/
/*149698*/      OPC_MoveChild1,
/*149699*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*149702*/      OPC_RecordMemRef,
/*149703*/      OPC_RecordNode, // #1 = 'ld' chained node
/*149704*/      OPC_CheckFoldableChainNode,
/*149705*/      OPC_RecordChild1, // #2 = $src3
/*149706*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*149708*/      OPC_CheckPredicate, 9, // Predicate_load
/*149710*/      OPC_MoveParent,
/*149711*/      OPC_RecordChild2, // #3 = $src1
/*149712*/      OPC_RecordChild3, // #4 = $src2
/*149713*/      OPC_CheckType, MVT::v2f64,
/*149715*/      OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*149717*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*149720*/      OPC_EmitMergeInputChains, 2, 0, 1, 
/*149724*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PDm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2f64, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                // Src: (X86strict_Fmadd:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2) - Complexity = 25
                // Dst: (VFMADD132PDm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*149737*/    /*Scope*/ 81, /*->149819*/
/*149738*/      OPC_RecordChild1, // #1 = $src2
/*149739*/      OPC_Scope, 38, /*->149779*/ // 2 children in Scope
/*149741*/        OPC_RecordChild2, // #2 = $src1
/*149742*/        OPC_MoveChild3,
/*149743*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*149746*/        OPC_RecordMemRef,
/*149747*/        OPC_RecordNode, // #3 = 'ld' chained node
/*149748*/        OPC_CheckFoldableChainNode,
/*149749*/        OPC_RecordChild1, // #4 = $src3
/*149750*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*149752*/        OPC_CheckPredicate, 9, // Predicate_load
/*149754*/        OPC_MoveParent,
/*149755*/        OPC_CheckType, MVT::v4f64,
/*149757*/        OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*149759*/        OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*149762*/        OPC_EmitMergeInputChains, 2, 0, 3, 
/*149766*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDYm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f64, 7/*#Ops*/, 2, 1, 5, 6, 7, 8, 9, 
                  // Src: (X86strict_Fmadd:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src2, VR256:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VFMADD213PDYm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*149779*/      /*Scope*/ 38, /*->149818*/
/*149780*/        OPC_MoveChild2,
/*149781*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*149784*/        OPC_RecordMemRef,
/*149785*/        OPC_RecordNode, // #2 = 'ld' chained node
/*149786*/        OPC_CheckFoldableChainNode,
/*149787*/        OPC_RecordChild1, // #3 = $src3
/*149788*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*149790*/        OPC_CheckPredicate, 9, // Predicate_load
/*149792*/        OPC_MoveParent,
/*149793*/        OPC_RecordChild3, // #4 = $src1
/*149794*/        OPC_CheckType, MVT::v4f64,
/*149796*/        OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*149798*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*149801*/        OPC_EmitMergeInputChains, 2, 0, 2, 
/*149805*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PDYm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f64, 7/*#Ops*/, 4, 1, 5, 6, 7, 8, 9, 
                  // Src: (X86strict_Fmadd:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src2, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v4f64] }:$src1) - Complexity = 25
                  // Dst: (VFMADD231PDYm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*149818*/      0, /*End of Scope*/
/*149819*/    /*Scope*/ 39, /*->149859*/
/*149820*/      OPC_MoveChild1,
/*149821*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*149824*/      OPC_RecordMemRef,
/*149825*/      OPC_RecordNode, // #1 = 'ld' chained node
/*149826*/      OPC_CheckFoldableChainNode,
/*149827*/      OPC_RecordChild1, // #2 = $src3
/*149828*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*149830*/      OPC_CheckPredicate, 9, // Predicate_load
/*149832*/      OPC_MoveParent,
/*149833*/      OPC_RecordChild2, // #3 = $src1
/*149834*/      OPC_RecordChild3, // #4 = $src2
/*149835*/      OPC_CheckType, MVT::v4f64,
/*149837*/      OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*149839*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*149842*/      OPC_EmitMergeInputChains, 2, 0, 1, 
/*149846*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PDYm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4f64, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                // Src: (X86strict_Fmadd:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2) - Complexity = 25
                // Dst: (VFMADD132PDYm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*149859*/    /*Scope*/ 83|128,7/*979*/, /*->150840*/
/*149861*/      OPC_RecordChild1, // #1 = $src1
/*149862*/      OPC_Scope, 38, /*->149902*/ // 10 children in Scope
/*149864*/        OPC_RecordChild2, // #2 = $src2
/*149865*/        OPC_MoveChild3,
/*149866*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*149869*/        OPC_RecordMemRef,
/*149870*/        OPC_RecordNode, // #3 = 'ld' chained node
/*149871*/        OPC_CheckFoldableChainNode,
/*149872*/        OPC_RecordChild1, // #4 = $src3
/*149873*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*149875*/        OPC_CheckPredicate, 9, // Predicate_load
/*149877*/        OPC_MoveParent,
/*149878*/        OPC_CheckType, MVT::v4f32,
/*149880*/        OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*149882*/        OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*149885*/        OPC_EmitMergeInputChains, 2, 0, 3, 
/*149889*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDPS4rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 7/*#Ops*/, 1, 2, 5, 6, 7, 8, 9, 
                  // Src: (X86strict_Fmadd:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VFMADDPS4rm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*149902*/      /*Scope*/ 38, /*->149941*/
/*149903*/        OPC_MoveChild2,
/*149904*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*149907*/        OPC_RecordMemRef,
/*149908*/        OPC_RecordNode, // #2 = 'ld' chained node
/*149909*/        OPC_CheckFoldableChainNode,
/*149910*/        OPC_RecordChild1, // #3 = $src2
/*149911*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*149913*/        OPC_CheckPredicate, 9, // Predicate_load
/*149915*/        OPC_MoveParent,
/*149916*/        OPC_RecordChild3, // #4 = $src3
/*149917*/        OPC_CheckType, MVT::v4f32,
/*149919*/        OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*149921*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*149924*/        OPC_EmitMergeInputChains, 2, 0, 2, 
/*149928*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDPS4mr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 7/*#Ops*/, 1, 5, 6, 7, 8, 9, 4, 
                  // Src: (X86strict_Fmadd:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v4f32] }:$src3) - Complexity = 25
                  // Dst: (VFMADDPS4mr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v4f32] }:$src3)
/*149941*/      /*Scope*/ 38, /*->149980*/
/*149942*/        OPC_RecordChild2, // #2 = $src2
/*149943*/        OPC_MoveChild3,
/*149944*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*149947*/        OPC_RecordMemRef,
/*149948*/        OPC_RecordNode, // #3 = 'ld' chained node
/*149949*/        OPC_CheckFoldableChainNode,
/*149950*/        OPC_RecordChild1, // #4 = $src3
/*149951*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*149953*/        OPC_CheckPredicate, 9, // Predicate_load
/*149955*/        OPC_MoveParent,
/*149956*/        OPC_CheckType, MVT::v8f32,
/*149958*/        OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*149960*/        OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*149963*/        OPC_EmitMergeInputChains, 2, 0, 3, 
/*149967*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDPS4Yrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8f32, 7/*#Ops*/, 1, 2, 5, 6, 7, 8, 9, 
                  // Src: (X86strict_Fmadd:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VFMADDPS4Yrm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*149980*/      /*Scope*/ 38, /*->150019*/
/*149981*/        OPC_MoveChild2,
/*149982*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*149985*/        OPC_RecordMemRef,
/*149986*/        OPC_RecordNode, // #2 = 'ld' chained node
/*149987*/        OPC_CheckFoldableChainNode,
/*149988*/        OPC_RecordChild1, // #3 = $src2
/*149989*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*149991*/        OPC_CheckPredicate, 9, // Predicate_load
/*149993*/        OPC_MoveParent,
/*149994*/        OPC_RecordChild3, // #4 = $src3
/*149995*/        OPC_CheckType, MVT::v8f32,
/*149997*/        OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*149999*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*150002*/        OPC_EmitMergeInputChains, 2, 0, 2, 
/*150006*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDPS4Ymr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8f32, 7/*#Ops*/, 1, 5, 6, 7, 8, 9, 4, 
                  // Src: (X86strict_Fmadd:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v8f32] }:$src3) - Complexity = 25
                  // Dst: (VFMADDPS4Ymr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v8f32] }:$src3)
/*150019*/      /*Scope*/ 38, /*->150058*/
/*150020*/        OPC_RecordChild2, // #2 = $src2
/*150021*/        OPC_MoveChild3,
/*150022*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*150025*/        OPC_RecordMemRef,
/*150026*/        OPC_RecordNode, // #3 = 'ld' chained node
/*150027*/        OPC_CheckFoldableChainNode,
/*150028*/        OPC_RecordChild1, // #4 = $src3
/*150029*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*150031*/        OPC_CheckPredicate, 9, // Predicate_load
/*150033*/        OPC_MoveParent,
/*150034*/        OPC_CheckType, MVT::v2f64,
/*150036*/        OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*150038*/        OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*150041*/        OPC_EmitMergeInputChains, 2, 0, 3, 
/*150045*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDPD4rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 7/*#Ops*/, 1, 2, 5, 6, 7, 8, 9, 
                  // Src: (X86strict_Fmadd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VFMADDPD4rm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*150058*/      /*Scope*/ 38, /*->150097*/
/*150059*/        OPC_MoveChild2,
/*150060*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*150063*/        OPC_RecordMemRef,
/*150064*/        OPC_RecordNode, // #2 = 'ld' chained node
/*150065*/        OPC_CheckFoldableChainNode,
/*150066*/        OPC_RecordChild1, // #3 = $src2
/*150067*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*150069*/        OPC_CheckPredicate, 9, // Predicate_load
/*150071*/        OPC_MoveParent,
/*150072*/        OPC_RecordChild3, // #4 = $src3
/*150073*/        OPC_CheckType, MVT::v2f64,
/*150075*/        OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*150077*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*150080*/        OPC_EmitMergeInputChains, 2, 0, 2, 
/*150084*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDPD4mr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 7/*#Ops*/, 1, 5, 6, 7, 8, 9, 4, 
                  // Src: (X86strict_Fmadd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v2f64] }:$src3) - Complexity = 25
                  // Dst: (VFMADDPD4mr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v2f64] }:$src3)
/*150097*/      /*Scope*/ 38, /*->150136*/
/*150098*/        OPC_RecordChild2, // #2 = $src2
/*150099*/        OPC_MoveChild3,
/*150100*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*150103*/        OPC_RecordMemRef,
/*150104*/        OPC_RecordNode, // #3 = 'ld' chained node
/*150105*/        OPC_CheckFoldableChainNode,
/*150106*/        OPC_RecordChild1, // #4 = $src3
/*150107*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*150109*/        OPC_CheckPredicate, 9, // Predicate_load
/*150111*/        OPC_MoveParent,
/*150112*/        OPC_CheckType, MVT::v4f64,
/*150114*/        OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*150116*/        OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*150119*/        OPC_EmitMergeInputChains, 2, 0, 3, 
/*150123*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDPD4Yrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f64, 7/*#Ops*/, 1, 2, 5, 6, 7, 8, 9, 
                  // Src: (X86strict_Fmadd:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VFMADDPD4Yrm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*150136*/      /*Scope*/ 38, /*->150175*/
/*150137*/        OPC_MoveChild2,
/*150138*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*150141*/        OPC_RecordMemRef,
/*150142*/        OPC_RecordNode, // #2 = 'ld' chained node
/*150143*/        OPC_CheckFoldableChainNode,
/*150144*/        OPC_RecordChild1, // #3 = $src2
/*150145*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*150147*/        OPC_CheckPredicate, 9, // Predicate_load
/*150149*/        OPC_MoveParent,
/*150150*/        OPC_RecordChild3, // #4 = $src3
/*150151*/        OPC_CheckType, MVT::v4f64,
/*150153*/        OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*150155*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*150158*/        OPC_EmitMergeInputChains, 2, 0, 2, 
/*150162*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDPD4Ymr), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f64, 7/*#Ops*/, 1, 5, 6, 7, 8, 9, 4, 
                  // Src: (X86strict_Fmadd:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v4f64] }:$src3) - Complexity = 25
                  // Dst: (VFMADDPD4Ymr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v4f64] }:$src3)
/*150175*/      /*Scope*/ 73|128,2/*329*/, /*->150506*/
/*150177*/        OPC_RecordChild2, // #2 = $src1
/*150178*/        OPC_MoveChild3,
/*150179*/        OPC_SwitchOpcode /*2 cases */, 27|128,1/*155*/, TARGET_VAL(ISD::LOAD),// ->150339
/*150184*/          OPC_RecordMemRef,
/*150185*/          OPC_RecordNode, // #3 = 'ld' chained node
/*150186*/          OPC_CheckFoldableChainNode,
/*150187*/          OPC_RecordChild1, // #4 = $src3
/*150188*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*150190*/          OPC_CheckPredicate, 9, // Predicate_load
/*150192*/          OPC_MoveParent,
/*150193*/          OPC_SwitchType /*6 cases */, 22, MVT::v16f32,// ->150218
/*150196*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*150198*/            OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*150201*/            OPC_EmitMergeInputChains, 2, 0, 3, 
/*150205*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 7/*#Ops*/, 2, 1, 5, 6, 7, 8, 9, 
                      // Src: (X86strict_Fmadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VFMADD213PSZm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*150218*/          /*SwitchType*/ 22, MVT::v8f32,// ->150242
/*150220*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*150222*/            OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*150225*/            OPC_EmitMergeInputChains, 2, 0, 3, 
/*150229*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 7/*#Ops*/, 2, 1, 5, 6, 7, 8, 9, 
                      // Src: (X86strict_Fmadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VFMADD213PSZ256m:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*150242*/          /*SwitchType*/ 22, MVT::v4f32,// ->150266
/*150244*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*150246*/            OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*150249*/            OPC_EmitMergeInputChains, 2, 0, 3, 
/*150253*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 7/*#Ops*/, 2, 1, 5, 6, 7, 8, 9, 
                      // Src: (X86strict_Fmadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VFMADD213PSZ128m:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*150266*/          /*SwitchType*/ 22, MVT::v8f64,// ->150290
/*150268*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*150270*/            OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*150273*/            OPC_EmitMergeInputChains, 2, 0, 3, 
/*150277*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 7/*#Ops*/, 2, 1, 5, 6, 7, 8, 9, 
                      // Src: (X86strict_Fmadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VFMADD213PDZm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*150290*/          /*SwitchType*/ 22, MVT::v4f64,// ->150314
/*150292*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*150294*/            OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*150297*/            OPC_EmitMergeInputChains, 2, 0, 3, 
/*150301*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 7/*#Ops*/, 2, 1, 5, 6, 7, 8, 9, 
                      // Src: (X86strict_Fmadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VFMADD213PDZ256m:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*150314*/          /*SwitchType*/ 22, MVT::v2f64,// ->150338
/*150316*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*150318*/            OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*150321*/            OPC_EmitMergeInputChains, 2, 0, 3, 
/*150325*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 7/*#Ops*/, 2, 1, 5, 6, 7, 8, 9, 
                      // Src: (X86strict_Fmadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VFMADD213PDZ128m:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*150338*/          0, // EndSwitchType
/*150339*/        /*SwitchOpcode*/ 34|128,1/*162*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->150505
/*150343*/          OPC_RecordMemRef,
/*150344*/          OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*150345*/          OPC_CheckFoldableChainNode,
/*150346*/          OPC_RecordChild1, // #4 = $src3
/*150347*/          OPC_Scope, 77, /*->150426*/ // 2 children in Scope
/*150349*/            OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*150351*/            OPC_MoveParent,
/*150352*/            OPC_SwitchType /*3 cases */, 22, MVT::v16f32,// ->150377
/*150355*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*150357*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*150360*/              OPC_EmitMergeInputChains, 2, 0, 3, 
/*150364*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 2, 1, 5, 6, 7, 8, 9, 
                        // Src: (X86strict_Fmadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VFMADD213PSZmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*150377*/            /*SwitchType*/ 22, MVT::v8f32,// ->150401
/*150379*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*150381*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*150384*/              OPC_EmitMergeInputChains, 2, 0, 3, 
/*150388*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 7/*#Ops*/, 2, 1, 5, 6, 7, 8, 9, 
                        // Src: (X86strict_Fmadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VFMADD213PSZ256mb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*150401*/            /*SwitchType*/ 22, MVT::v4f32,// ->150425
/*150403*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*150405*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*150408*/              OPC_EmitMergeInputChains, 2, 0, 3, 
/*150412*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 7/*#Ops*/, 2, 1, 5, 6, 7, 8, 9, 
                        // Src: (X86strict_Fmadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VFMADD213PSZ128mb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*150425*/            0, // EndSwitchType
/*150426*/          /*Scope*/ 77, /*->150504*/
/*150427*/            OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*150429*/            OPC_MoveParent,
/*150430*/            OPC_SwitchType /*3 cases */, 22, MVT::v8f64,// ->150455
/*150433*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*150435*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*150438*/              OPC_EmitMergeInputChains, 2, 0, 3, 
/*150442*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 7/*#Ops*/, 2, 1, 5, 6, 7, 8, 9, 
                        // Src: (X86strict_Fmadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VFMADD213PDZmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*150455*/            /*SwitchType*/ 22, MVT::v4f64,// ->150479
/*150457*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*150459*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*150462*/              OPC_EmitMergeInputChains, 2, 0, 3, 
/*150466*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 7/*#Ops*/, 2, 1, 5, 6, 7, 8, 9, 
                        // Src: (X86strict_Fmadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VFMADD213PDZ256mb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*150479*/            /*SwitchType*/ 22, MVT::v2f64,// ->150503
/*150481*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*150483*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*150486*/              OPC_EmitMergeInputChains, 2, 0, 3, 
/*150490*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 7/*#Ops*/, 2, 1, 5, 6, 7, 8, 9, 
                        // Src: (X86strict_Fmadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VFMADD213PDZ128mb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*150503*/            0, // EndSwitchType
/*150504*/          0, /*End of Scope*/
/*150505*/        0, // EndSwitchOpcode
/*150506*/      /*Scope*/ 75|128,2/*331*/, /*->150839*/
/*150508*/        OPC_MoveChild2,
/*150509*/        OPC_SwitchOpcode /*2 cases */, 28|128,1/*156*/, TARGET_VAL(ISD::LOAD),// ->150670
/*150514*/          OPC_RecordMemRef,
/*150515*/          OPC_RecordNode, // #2 = 'ld' chained node
/*150516*/          OPC_CheckFoldableChainNode,
/*150517*/          OPC_RecordChild1, // #3 = $src3
/*150518*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*150520*/          OPC_CheckPredicate, 9, // Predicate_load
/*150522*/          OPC_MoveParent,
/*150523*/          OPC_RecordChild3, // #4 = $src1
/*150524*/          OPC_SwitchType /*6 cases */, 22, MVT::v16f32,// ->150549
/*150527*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*150529*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*150532*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*150536*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PSZm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 7/*#Ops*/, 4, 1, 5, 6, 7, 8, 9, 
                      // Src: (X86strict_Fmadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16f32] }:$src1) - Complexity = 25
                      // Dst: (VFMADD231PSZm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*150549*/          /*SwitchType*/ 22, MVT::v8f32,// ->150573
/*150551*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*150553*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*150556*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*150560*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PSZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 7/*#Ops*/, 4, 1, 5, 6, 7, 8, 9, 
                      // Src: (X86strict_Fmadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8f32] }:$src1) - Complexity = 25
                      // Dst: (VFMADD231PSZ256m:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*150573*/          /*SwitchType*/ 22, MVT::v4f32,// ->150597
/*150575*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*150577*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*150580*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*150584*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PSZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 7/*#Ops*/, 4, 1, 5, 6, 7, 8, 9, 
                      // Src: (X86strict_Fmadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4f32] }:$src1) - Complexity = 25
                      // Dst: (VFMADD231PSZ128m:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*150597*/          /*SwitchType*/ 22, MVT::v8f64,// ->150621
/*150599*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*150601*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*150604*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*150608*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PDZm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 7/*#Ops*/, 4, 1, 5, 6, 7, 8, 9, 
                      // Src: (X86strict_Fmadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v8f64] }:$src1) - Complexity = 25
                      // Dst: (VFMADD231PDZm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*150621*/          /*SwitchType*/ 22, MVT::v4f64,// ->150645
/*150623*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*150625*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*150628*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*150632*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PDZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 7/*#Ops*/, 4, 1, 5, 6, 7, 8, 9, 
                      // Src: (X86strict_Fmadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v4f64] }:$src1) - Complexity = 25
                      // Dst: (VFMADD231PDZ256m:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*150645*/          /*SwitchType*/ 22, MVT::v2f64,// ->150669
/*150647*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*150649*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*150652*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*150656*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PDZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 7/*#Ops*/, 4, 1, 5, 6, 7, 8, 9, 
                      // Src: (X86strict_Fmadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v2f64] }:$src1) - Complexity = 25
                      // Dst: (VFMADD231PDZ128m:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*150669*/          0, // EndSwitchType
/*150670*/        /*SwitchOpcode*/ 36|128,1/*164*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->150838
/*150674*/          OPC_RecordMemRef,
/*150675*/          OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*150676*/          OPC_CheckFoldableChainNode,
/*150677*/          OPC_RecordChild1, // #3 = $src3
/*150678*/          OPC_Scope, 78, /*->150758*/ // 2 children in Scope
/*150680*/            OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*150682*/            OPC_MoveParent,
/*150683*/            OPC_RecordChild3, // #4 = $src1
/*150684*/            OPC_SwitchType /*3 cases */, 22, MVT::v16f32,// ->150709
/*150687*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*150689*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*150692*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*150696*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PSZmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 4, 1, 5, 6, 7, 8, 9, 
                        // Src: (X86strict_Fmadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src1) - Complexity = 25
                        // Dst: (VFMADD231PSZmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*150709*/            /*SwitchType*/ 22, MVT::v8f32,// ->150733
/*150711*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*150713*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*150716*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*150720*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PSZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 7/*#Ops*/, 4, 1, 5, 6, 7, 8, 9, 
                        // Src: (X86strict_Fmadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1) - Complexity = 25
                        // Dst: (VFMADD231PSZ256mb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*150733*/            /*SwitchType*/ 22, MVT::v4f32,// ->150757
/*150735*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*150737*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*150740*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*150744*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PSZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 7/*#Ops*/, 4, 1, 5, 6, 7, 8, 9, 
                        // Src: (X86strict_Fmadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1) - Complexity = 25
                        // Dst: (VFMADD231PSZ128mb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*150757*/            0, // EndSwitchType
/*150758*/          /*Scope*/ 78, /*->150837*/
/*150759*/            OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*150761*/            OPC_MoveParent,
/*150762*/            OPC_RecordChild3, // #4 = $src1
/*150763*/            OPC_SwitchType /*3 cases */, 22, MVT::v8f64,// ->150788
/*150766*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*150768*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*150771*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*150775*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PDZmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 7/*#Ops*/, 4, 1, 5, 6, 7, 8, 9, 
                        // Src: (X86strict_Fmadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src1) - Complexity = 25
                        // Dst: (VFMADD231PDZmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*150788*/            /*SwitchType*/ 22, MVT::v4f64,// ->150812
/*150790*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*150792*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*150795*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*150799*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PDZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 7/*#Ops*/, 4, 1, 5, 6, 7, 8, 9, 
                        // Src: (X86strict_Fmadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1) - Complexity = 25
                        // Dst: (VFMADD231PDZ256mb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*150812*/            /*SwitchType*/ 22, MVT::v2f64,// ->150836
/*150814*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*150816*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*150819*/              OPC_EmitMergeInputChains, 2, 0, 2, 
/*150823*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PDZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 7/*#Ops*/, 4, 1, 5, 6, 7, 8, 9, 
                        // Src: (X86strict_Fmadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1) - Complexity = 25
                        // Dst: (VFMADD231PDZ128mb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*150836*/            0, // EndSwitchType
/*150837*/          0, /*End of Scope*/
/*150838*/        0, // EndSwitchOpcode
/*150839*/      0, /*End of Scope*/
/*150840*/    /*Scope*/ 54|128,3/*438*/, /*->151280*/
/*150842*/      OPC_MoveChild1,
/*150843*/      OPC_SwitchOpcode /*2 cases */, 5|128,2/*261*/, TARGET_VAL(ISD::LOAD),// ->151109
/*150848*/        OPC_RecordMemRef,
/*150849*/        OPC_RecordNode, // #1 = 'ld' chained node
/*150850*/        OPC_CheckFoldableChainNode,
/*150851*/        OPC_RecordChild1, // #2 = $src3
/*150852*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*150854*/        OPC_CheckPredicate, 9, // Predicate_load
/*150856*/        OPC_MoveParent,
/*150857*/        OPC_RecordChild2, // #3 = $src1
/*150858*/        OPC_RecordChild3, // #4 = $src2
/*150859*/        OPC_SwitchType /*6 cases */, 22, MVT::v16f32,// ->150884
/*150862*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*150864*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*150867*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*150871*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PSZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86strict_Fmadd:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2) - Complexity = 25
                    // Dst: (VFMADD132PSZm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*150884*/        /*SwitchType*/ 48, MVT::v8f32,// ->150934
/*150886*/          OPC_Scope, 22, /*->150910*/ // 2 children in Scope
/*150888*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*150890*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*150893*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*150897*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PSZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86strict_Fmadd:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2) - Complexity = 25
                      // Dst: (VFMADD132PSZ256m:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*150910*/          /*Scope*/ 22, /*->150933*/
/*150911*/            OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*150913*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*150916*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*150920*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDPS4Ymr), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 7/*#Ops*/, 3, 5, 6, 7, 8, 9, 4, 
                      // Src: (X86strict_Fmadd:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src3) - Complexity = 25
                      // Dst: (VFMADDPS4Ymr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v8f32] }:$src3)
/*150933*/          0, /*End of Scope*/
/*150934*/        /*SwitchType*/ 48, MVT::v4f32,// ->150984
/*150936*/          OPC_Scope, 22, /*->150960*/ // 2 children in Scope
/*150938*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*150940*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*150943*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*150947*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PSZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86strict_Fmadd:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2) - Complexity = 25
                      // Dst: (VFMADD132PSZ128m:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*150960*/          /*Scope*/ 22, /*->150983*/
/*150961*/            OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*150963*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*150966*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*150970*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDPS4mr), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 7/*#Ops*/, 3, 5, 6, 7, 8, 9, 4, 
                      // Src: (X86strict_Fmadd:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src3) - Complexity = 25
                      // Dst: (VFMADDPS4mr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v4f32] }:$src3)
/*150983*/          0, /*End of Scope*/
/*150984*/        /*SwitchType*/ 22, MVT::v8f64,// ->151008
/*150986*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*150988*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*150991*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*150995*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PDZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86strict_Fmadd:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2) - Complexity = 25
                    // Dst: (VFMADD132PDZm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*151008*/        /*SwitchType*/ 48, MVT::v4f64,// ->151058
/*151010*/          OPC_Scope, 22, /*->151034*/ // 2 children in Scope
/*151012*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*151014*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*151017*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*151021*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PDZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86strict_Fmadd:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2) - Complexity = 25
                      // Dst: (VFMADD132PDZ256m:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*151034*/          /*Scope*/ 22, /*->151057*/
/*151035*/            OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*151037*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*151040*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*151044*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDPD4Ymr), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 7/*#Ops*/, 3, 5, 6, 7, 8, 9, 4, 
                      // Src: (X86strict_Fmadd:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src3) - Complexity = 25
                      // Dst: (VFMADDPD4Ymr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v4f64] }:$src3)
/*151057*/          0, /*End of Scope*/
/*151058*/        /*SwitchType*/ 48, MVT::v2f64,// ->151108
/*151060*/          OPC_Scope, 22, /*->151084*/ // 2 children in Scope
/*151062*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*151064*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*151067*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*151071*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PDZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86strict_Fmadd:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2) - Complexity = 25
                      // Dst: (VFMADD132PDZ128m:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*151084*/          /*Scope*/ 22, /*->151107*/
/*151085*/            OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*151087*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*151090*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*151094*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDPD4mr), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 7/*#Ops*/, 3, 5, 6, 7, 8, 9, 4, 
                      // Src: (X86strict_Fmadd:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src3) - Complexity = 25
                      // Dst: (VFMADDPD4mr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v2f64] }:$src3)
/*151107*/          0, /*End of Scope*/
/*151108*/        0, // EndSwitchType
/*151109*/      /*SwitchOpcode*/ 38|128,1/*166*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->151279
/*151113*/        OPC_RecordMemRef,
/*151114*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*151115*/        OPC_CheckFoldableChainNode,
/*151116*/        OPC_RecordChild1, // #2 = $src3
/*151117*/        OPC_Scope, 79, /*->151198*/ // 2 children in Scope
/*151119*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*151121*/          OPC_MoveParent,
/*151122*/          OPC_RecordChild2, // #3 = $src1
/*151123*/          OPC_RecordChild3, // #4 = $src2
/*151124*/          OPC_SwitchType /*3 cases */, 22, MVT::v16f32,// ->151149
/*151127*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*151129*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*151132*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*151136*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PSZmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86strict_Fmadd:{ *:[v16f32] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2) - Complexity = 25
                      // Dst: (VFMADD132PSZmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*151149*/          /*SwitchType*/ 22, MVT::v8f32,// ->151173
/*151151*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*151153*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*151156*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*151160*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PSZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86strict_Fmadd:{ *:[v8f32] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2) - Complexity = 25
                      // Dst: (VFMADD132PSZ256mb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*151173*/          /*SwitchType*/ 22, MVT::v4f32,// ->151197
/*151175*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*151177*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*151180*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*151184*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PSZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86strict_Fmadd:{ *:[v4f32] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2) - Complexity = 25
                      // Dst: (VFMADD132PSZ128mb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*151197*/          0, // EndSwitchType
/*151198*/        /*Scope*/ 79, /*->151278*/
/*151199*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*151201*/          OPC_MoveParent,
/*151202*/          OPC_RecordChild2, // #3 = $src1
/*151203*/          OPC_RecordChild3, // #4 = $src2
/*151204*/          OPC_SwitchType /*3 cases */, 22, MVT::v8f64,// ->151229
/*151207*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*151209*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*151212*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*151216*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PDZmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86strict_Fmadd:{ *:[v8f64] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2) - Complexity = 25
                      // Dst: (VFMADD132PDZmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*151229*/          /*SwitchType*/ 22, MVT::v4f64,// ->151253
/*151231*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*151233*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*151236*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*151240*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PDZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86strict_Fmadd:{ *:[v4f64] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2) - Complexity = 25
                      // Dst: (VFMADD132PDZ256mb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*151253*/          /*SwitchType*/ 22, MVT::v2f64,// ->151277
/*151255*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*151257*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*151260*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*151264*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PDZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 9, 
                      // Src: (X86strict_Fmadd:{ *:[v2f64] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2) - Complexity = 25
                      // Dst: (VFMADD132PDZ128mb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*151277*/          0, // EndSwitchType
/*151278*/        0, /*End of Scope*/
/*151279*/      0, // EndSwitchOpcode
/*151280*/    /*Scope*/ 77|128,1/*205*/, /*->151487*/
/*151282*/      OPC_RecordChild1, // #1 = $src2
/*151283*/      OPC_RecordChild2, // #2 = $src1
/*151284*/      OPC_RecordChild3, // #3 = $src3
/*151285*/      OPC_SwitchType /*6 cases */, 41, MVT::v4f32,// ->151329
/*151288*/        OPC_Scope, 12, /*->151302*/ // 3 children in Scope
/*151290*/          OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*151292*/          OPC_EmitMergeInputChains1_0,
/*151293*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSr), 0|OPFL_Chain,
                        MVT::v4f32, 3/*#Ops*/, 2, 1, 3, 
                    // Src: (X86strict_Fmadd:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src2, VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src3) - Complexity = 3
                    // Dst: (VFMADD213PSr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, VR128:{ *:[v4f32] }:$src3)
/*151302*/        /*Scope*/ 12, /*->151315*/
/*151303*/          OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*151305*/          OPC_EmitMergeInputChains1_0,
/*151306*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDPS4rr), 0|OPFL_Chain,
                        MVT::v4f32, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (X86strict_Fmadd:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, VR128:{ *:[v4f32] }:$src3) - Complexity = 3
                    // Dst: (VFMADDPS4rr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, VR128:{ *:[v4f32] }:$src3)
/*151315*/        /*Scope*/ 12, /*->151328*/
/*151316*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*151318*/          OPC_EmitMergeInputChains1_0,
/*151319*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZ128r), 0|OPFL_Chain,
                        MVT::v4f32, 3/*#Ops*/, 2, 1, 3, 
                    // Src: (X86strict_Fmadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src3) - Complexity = 3
                    // Dst: (VFMADD213PSZ128r:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src3)
/*151328*/        0, /*End of Scope*/
/*151329*/      /*SwitchType*/ 41, MVT::v8f32,// ->151372
/*151331*/        OPC_Scope, 12, /*->151345*/ // 3 children in Scope
/*151333*/          OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*151335*/          OPC_EmitMergeInputChains1_0,
/*151336*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSYr), 0|OPFL_Chain,
                        MVT::v8f32, 3/*#Ops*/, 2, 1, 3, 
                    // Src: (X86strict_Fmadd:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src2, VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src3) - Complexity = 3
                    // Dst: (VFMADD213PSYr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, VR256:{ *:[v8f32] }:$src3)
/*151345*/        /*Scope*/ 12, /*->151358*/
/*151346*/          OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*151348*/          OPC_EmitMergeInputChains1_0,
/*151349*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDPS4Yrr), 0|OPFL_Chain,
                        MVT::v8f32, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (X86strict_Fmadd:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, VR256:{ *:[v8f32] }:$src3) - Complexity = 3
                    // Dst: (VFMADDPS4Yrr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, VR256:{ *:[v8f32] }:$src3)
/*151358*/        /*Scope*/ 12, /*->151371*/
/*151359*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*151361*/          OPC_EmitMergeInputChains1_0,
/*151362*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZ256r), 0|OPFL_Chain,
                        MVT::v8f32, 3/*#Ops*/, 2, 1, 3, 
                    // Src: (X86strict_Fmadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src3) - Complexity = 3
                    // Dst: (VFMADD213PSZ256r:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src3)
/*151371*/        0, /*End of Scope*/
/*151372*/      /*SwitchType*/ 41, MVT::v2f64,// ->151415
/*151374*/        OPC_Scope, 12, /*->151388*/ // 3 children in Scope
/*151376*/          OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*151378*/          OPC_EmitMergeInputChains1_0,
/*151379*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDr), 0|OPFL_Chain,
                        MVT::v2f64, 3/*#Ops*/, 2, 1, 3, 
                    // Src: (X86strict_Fmadd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src2, VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src3) - Complexity = 3
                    // Dst: (VFMADD213PDr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, VR128:{ *:[v2f64] }:$src3)
/*151388*/        /*Scope*/ 12, /*->151401*/
/*151389*/          OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*151391*/          OPC_EmitMergeInputChains1_0,
/*151392*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDPD4rr), 0|OPFL_Chain,
                        MVT::v2f64, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (X86strict_Fmadd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, VR128:{ *:[v2f64] }:$src3) - Complexity = 3
                    // Dst: (VFMADDPD4rr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, VR128:{ *:[v2f64] }:$src3)
/*151401*/        /*Scope*/ 12, /*->151414*/
/*151402*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*151404*/          OPC_EmitMergeInputChains1_0,
/*151405*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZ128r), 0|OPFL_Chain,
                        MVT::v2f64, 3/*#Ops*/, 2, 1, 3, 
                    // Src: (X86strict_Fmadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src3) - Complexity = 3
                    // Dst: (VFMADD213PDZ128r:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src3)
/*151414*/        0, /*End of Scope*/
/*151415*/      /*SwitchType*/ 41, MVT::v4f64,// ->151458
/*151417*/        OPC_Scope, 12, /*->151431*/ // 3 children in Scope
/*151419*/          OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*151421*/          OPC_EmitMergeInputChains1_0,
/*151422*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDYr), 0|OPFL_Chain,
                        MVT::v4f64, 3/*#Ops*/, 2, 1, 3, 
                    // Src: (X86strict_Fmadd:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src2, VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src3) - Complexity = 3
                    // Dst: (VFMADD213PDYr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, VR256:{ *:[v4f64] }:$src3)
/*151431*/        /*Scope*/ 12, /*->151444*/
/*151432*/          OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*151434*/          OPC_EmitMergeInputChains1_0,
/*151435*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDPD4Yrr), 0|OPFL_Chain,
                        MVT::v4f64, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (X86strict_Fmadd:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, VR256:{ *:[v4f64] }:$src3) - Complexity = 3
                    // Dst: (VFMADDPD4Yrr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, VR256:{ *:[v4f64] }:$src3)
/*151444*/        /*Scope*/ 12, /*->151457*/
/*151445*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*151447*/          OPC_EmitMergeInputChains1_0,
/*151448*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZ256r), 0|OPFL_Chain,
                        MVT::v4f64, 3/*#Ops*/, 2, 1, 3, 
                    // Src: (X86strict_Fmadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src3) - Complexity = 3
                    // Dst: (VFMADD213PDZ256r:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src3)
/*151457*/        0, /*End of Scope*/
/*151458*/      /*SwitchType*/ 12, MVT::v16f32,// ->151472
/*151460*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*151462*/        OPC_EmitMergeInputChains1_0,
/*151463*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZr), 0|OPFL_Chain,
                      MVT::v16f32, 3/*#Ops*/, 2, 1, 3, 
                  // Src: (X86strict_Fmadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3) - Complexity = 3
                  // Dst: (VFMADD213PSZr:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3)
/*151472*/      /*SwitchType*/ 12, MVT::v8f64,// ->151486
/*151474*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*151476*/        OPC_EmitMergeInputChains1_0,
/*151477*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZr), 0|OPFL_Chain,
                      MVT::v8f64, 3/*#Ops*/, 2, 1, 3, 
                  // Src: (X86strict_Fmadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3) - Complexity = 3
                  // Dst: (VFMADD213PDZr:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3)
/*151486*/      0, // EndSwitchType
/*151487*/    0, /*End of Scope*/
/*151488*/  /*SwitchOpcode*/ 95|128,20/*2655*/, TARGET_VAL(ISD::FMA),// ->154147
/*151492*/    OPC_Scope, 75, /*->151569*/ // 19 children in Scope
/*151494*/      OPC_RecordChild0, // #0 = $src2
/*151495*/      OPC_Scope, 35, /*->151532*/ // 2 children in Scope
/*151497*/        OPC_RecordChild1, // #1 = $src1
/*151498*/        OPC_MoveChild2,
/*151499*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*151502*/        OPC_RecordMemRef,
/*151503*/        OPC_RecordNode, // #2 = 'ld' chained node
/*151504*/        OPC_CheckFoldableChainNode,
/*151505*/        OPC_RecordChild1, // #3 = $src3
/*151506*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*151508*/        OPC_CheckPredicate, 9, // Predicate_load
/*151510*/        OPC_MoveParent,
/*151511*/        OPC_CheckType, MVT::f32,
/*151513*/        OPC_CheckPatternPredicate, 173, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*151515*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*151518*/        OPC_EmitMergeInputChains1_2,
/*151519*/        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)
/*151532*/      /*Scope*/ 35, /*->151568*/
/*151533*/        OPC_MoveChild1,
/*151534*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*151537*/        OPC_RecordMemRef,
/*151538*/        OPC_RecordNode, // #1 = 'ld' chained node
/*151539*/        OPC_CheckFoldableChainNode,
/*151540*/        OPC_RecordChild1, // #2 = $src3
/*151541*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*151543*/        OPC_CheckPredicate, 9, // Predicate_load
/*151545*/        OPC_MoveParent,
/*151546*/        OPC_RecordChild2, // #3 = $src1
/*151547*/        OPC_CheckType, MVT::f32,
/*151549*/        OPC_CheckPatternPredicate, 173, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*151551*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*151554*/        OPC_EmitMergeInputChains1_1,
/*151555*/        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)
/*151568*/      0, /*End of Scope*/
/*151569*/    /*Scope*/ 36, /*->151606*/
/*151570*/      OPC_MoveChild0,
/*151571*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*151574*/      OPC_RecordMemRef,
/*151575*/      OPC_RecordNode, // #0 = 'ld' chained node
/*151576*/      OPC_CheckFoldableChainNode,
/*151577*/      OPC_RecordChild1, // #1 = $src3
/*151578*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*151580*/      OPC_CheckPredicate, 9, // Predicate_load
/*151582*/      OPC_MoveParent,
/*151583*/      OPC_RecordChild1, // #2 = $src1
/*151584*/      OPC_RecordChild2, // #3 = $src2
/*151585*/      OPC_CheckType, MVT::f32,
/*151587*/      OPC_CheckPatternPredicate, 173, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*151589*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*151592*/      OPC_EmitMergeInputChains1_0,
/*151593*/      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)
/*151606*/    /*Scope*/ 75, /*->151682*/
/*151607*/      OPC_RecordChild0, // #0 = $src2
/*151608*/      OPC_Scope, 35, /*->151645*/ // 2 children in Scope
/*151610*/        OPC_RecordChild1, // #1 = $src1
/*151611*/        OPC_MoveChild2,
/*151612*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*151615*/        OPC_RecordMemRef,
/*151616*/        OPC_RecordNode, // #2 = 'ld' chained node
/*151617*/        OPC_CheckFoldableChainNode,
/*151618*/        OPC_RecordChild1, // #3 = $src3
/*151619*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*151621*/        OPC_CheckPredicate, 9, // Predicate_load
/*151623*/        OPC_MoveParent,
/*151624*/        OPC_CheckType, MVT::f64,
/*151626*/        OPC_CheckPatternPredicate, 173, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*151628*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*151631*/        OPC_EmitMergeInputChains1_2,
/*151632*/        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)
/*151645*/      /*Scope*/ 35, /*->151681*/
/*151646*/        OPC_MoveChild1,
/*151647*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*151650*/        OPC_RecordMemRef,
/*151651*/        OPC_RecordNode, // #1 = 'ld' chained node
/*151652*/        OPC_CheckFoldableChainNode,
/*151653*/        OPC_RecordChild1, // #2 = $src3
/*151654*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*151656*/        OPC_CheckPredicate, 9, // Predicate_load
/*151658*/        OPC_MoveParent,
/*151659*/        OPC_RecordChild2, // #3 = $src1
/*151660*/        OPC_CheckType, MVT::f64,
/*151662*/        OPC_CheckPatternPredicate, 173, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*151664*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*151667*/        OPC_EmitMergeInputChains1_1,
/*151668*/        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)
/*151681*/      0, /*End of Scope*/
/*151682*/    /*Scope*/ 36, /*->151719*/
/*151683*/      OPC_MoveChild0,
/*151684*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*151687*/      OPC_RecordMemRef,
/*151688*/      OPC_RecordNode, // #0 = 'ld' chained node
/*151689*/      OPC_CheckFoldableChainNode,
/*151690*/      OPC_RecordChild1, // #1 = $src3
/*151691*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*151693*/      OPC_CheckPredicate, 9, // Predicate_load
/*151695*/      OPC_MoveParent,
/*151696*/      OPC_RecordChild1, // #2 = $src1
/*151697*/      OPC_RecordChild2, // #3 = $src2
/*151698*/      OPC_CheckType, MVT::f64,
/*151700*/      OPC_CheckPatternPredicate, 173, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*151702*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*151705*/      OPC_EmitMergeInputChains1_0,
/*151706*/      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)
/*151719*/    /*Scope*/ 91|128,1/*219*/, /*->151940*/
/*151721*/      OPC_RecordChild0, // #0 = $src1
/*151722*/      OPC_Scope, 35, /*->151759*/ // 6 children in Scope
/*151724*/        OPC_RecordChild1, // #1 = $src2
/*151725*/        OPC_MoveChild2,
/*151726*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*151729*/        OPC_RecordMemRef,
/*151730*/        OPC_RecordNode, // #2 = 'ld' chained node
/*151731*/        OPC_CheckFoldableChainNode,
/*151732*/        OPC_RecordChild1, // #3 = $src3
/*151733*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*151735*/        OPC_CheckPredicate, 9, // Predicate_load
/*151737*/        OPC_MoveParent,
/*151738*/        OPC_CheckType, MVT::f32,
/*151740*/        OPC_CheckPatternPredicate, 174, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*151742*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*151745*/        OPC_EmitMergeInputChains1_2,
/*151746*/        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)
/*151759*/      /*Scope*/ 35, /*->151795*/
/*151760*/        OPC_MoveChild1,
/*151761*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*151764*/        OPC_RecordMemRef,
/*151765*/        OPC_RecordNode, // #1 = 'ld' chained node
/*151766*/        OPC_CheckFoldableChainNode,
/*151767*/        OPC_RecordChild1, // #2 = $src2
/*151768*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*151770*/        OPC_CheckPredicate, 9, // Predicate_load
/*151772*/        OPC_MoveParent,
/*151773*/        OPC_RecordChild2, // #3 = $src3
/*151774*/        OPC_CheckType, MVT::f32,
/*151776*/        OPC_CheckPatternPredicate, 174, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*151778*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*151781*/        OPC_EmitMergeInputChains1_1,
/*151782*/        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)
/*151795*/      /*Scope*/ 35, /*->151831*/
/*151796*/        OPC_RecordChild1, // #1 = $src2
/*151797*/        OPC_MoveChild2,
/*151798*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*151801*/        OPC_RecordMemRef,
/*151802*/        OPC_RecordNode, // #2 = 'ld' chained node
/*151803*/        OPC_CheckFoldableChainNode,
/*151804*/        OPC_RecordChild1, // #3 = $src3
/*151805*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*151807*/        OPC_CheckPredicate, 9, // Predicate_load
/*151809*/        OPC_MoveParent,
/*151810*/        OPC_CheckType, MVT::f64,
/*151812*/        OPC_CheckPatternPredicate, 174, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*151814*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*151817*/        OPC_EmitMergeInputChains1_2,
/*151818*/        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)
/*151831*/      /*Scope*/ 35, /*->151867*/
/*151832*/        OPC_MoveChild1,
/*151833*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*151836*/        OPC_RecordMemRef,
/*151837*/        OPC_RecordNode, // #1 = 'ld' chained node
/*151838*/        OPC_CheckFoldableChainNode,
/*151839*/        OPC_RecordChild1, // #2 = $src2
/*151840*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*151842*/        OPC_CheckPredicate, 9, // Predicate_load
/*151844*/        OPC_MoveParent,
/*151845*/        OPC_RecordChild2, // #3 = $src3
/*151846*/        OPC_CheckType, MVT::f64,
/*151848*/        OPC_CheckPatternPredicate, 174, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*151850*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*151853*/        OPC_EmitMergeInputChains1_1,
/*151854*/        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)
/*151867*/      /*Scope*/ 35, /*->151903*/
/*151868*/        OPC_RecordChild1, // #1 = $src1
/*151869*/        OPC_MoveChild2,
/*151870*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*151873*/        OPC_RecordMemRef,
/*151874*/        OPC_RecordNode, // #2 = 'ld' chained node
/*151875*/        OPC_CheckFoldableChainNode,
/*151876*/        OPC_RecordChild1, // #3 = $src3
/*151877*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*151879*/        OPC_CheckPredicate, 9, // Predicate_load
/*151881*/        OPC_MoveParent,
/*151882*/        OPC_CheckType, MVT::f32,
/*151884*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*151886*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*151889*/        OPC_EmitMergeInputChains1_2,
/*151890*/        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)
/*151903*/      /*Scope*/ 35, /*->151939*/
/*151904*/        OPC_MoveChild1,
/*151905*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*151908*/        OPC_RecordMemRef,
/*151909*/        OPC_RecordNode, // #1 = 'ld' chained node
/*151910*/        OPC_CheckFoldableChainNode,
/*151911*/        OPC_RecordChild1, // #2 = $src3
/*151912*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*151914*/        OPC_CheckPredicate, 9, // Predicate_load
/*151916*/        OPC_MoveParent,
/*151917*/        OPC_RecordChild2, // #3 = $src1
/*151918*/        OPC_CheckType, MVT::f32,
/*151920*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*151922*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*151925*/        OPC_EmitMergeInputChains1_1,
/*151926*/        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)
/*151939*/      0, /*End of Scope*/
/*151940*/    /*Scope*/ 36, /*->151977*/
/*151941*/      OPC_MoveChild0,
/*151942*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*151945*/      OPC_RecordMemRef,
/*151946*/      OPC_RecordNode, // #0 = 'ld' chained node
/*151947*/      OPC_CheckFoldableChainNode,
/*151948*/      OPC_RecordChild1, // #1 = $src3
/*151949*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*151951*/      OPC_CheckPredicate, 9, // Predicate_load
/*151953*/      OPC_MoveParent,
/*151954*/      OPC_RecordChild1, // #2 = $src1
/*151955*/      OPC_RecordChild2, // #3 = $src2
/*151956*/      OPC_CheckType, MVT::f32,
/*151958*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*151960*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*151963*/      OPC_EmitMergeInputChains1_0,
/*151964*/      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)
/*151977*/    /*Scope*/ 75, /*->152053*/
/*151978*/      OPC_RecordChild0, // #0 = $src2
/*151979*/      OPC_Scope, 35, /*->152016*/ // 2 children in Scope
/*151981*/        OPC_RecordChild1, // #1 = $src1
/*151982*/        OPC_MoveChild2,
/*151983*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*151986*/        OPC_RecordMemRef,
/*151987*/        OPC_RecordNode, // #2 = 'ld' chained node
/*151988*/        OPC_CheckFoldableChainNode,
/*151989*/        OPC_RecordChild1, // #3 = $src3
/*151990*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*151992*/        OPC_CheckPredicate, 9, // Predicate_load
/*151994*/        OPC_MoveParent,
/*151995*/        OPC_CheckType, MVT::f64,
/*151997*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*151999*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*152002*/        OPC_EmitMergeInputChains1_2,
/*152003*/        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)
/*152016*/      /*Scope*/ 35, /*->152052*/
/*152017*/        OPC_MoveChild1,
/*152018*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*152021*/        OPC_RecordMemRef,
/*152022*/        OPC_RecordNode, // #1 = 'ld' chained node
/*152023*/        OPC_CheckFoldableChainNode,
/*152024*/        OPC_RecordChild1, // #2 = $src3
/*152025*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*152027*/        OPC_CheckPredicate, 9, // Predicate_load
/*152029*/        OPC_MoveParent,
/*152030*/        OPC_RecordChild2, // #3 = $src1
/*152031*/        OPC_CheckType, MVT::f64,
/*152033*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*152035*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*152038*/        OPC_EmitMergeInputChains1_1,
/*152039*/        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)
/*152052*/      0, /*End of Scope*/
/*152053*/    /*Scope*/ 82, /*->152136*/
/*152054*/      OPC_MoveChild0,
/*152055*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*152058*/      OPC_RecordMemRef,
/*152059*/      OPC_RecordNode, // #0 = 'ld' chained node
/*152060*/      OPC_CheckFoldableChainNode,
/*152061*/      OPC_RecordChild1, // #1 = $src3
/*152062*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*152064*/      OPC_CheckPredicate, 9, // Predicate_load
/*152066*/      OPC_MoveParent,
/*152067*/      OPC_RecordChild1, // #2 = $src1
/*152068*/      OPC_RecordChild2, // #3 = $src2
/*152069*/      OPC_SwitchType /*2 cases */, 42, MVT::f64,// ->152114
/*152072*/        OPC_Scope, 19, /*->152093*/ // 2 children in Scope
/*152074*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*152076*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*152079*/          OPC_EmitMergeInputChains1_0,
/*152080*/          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)
/*152093*/        /*Scope*/ 19, /*->152113*/
/*152094*/          OPC_CheckPatternPredicate, 174, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*152096*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*152099*/          OPC_EmitMergeInputChains1_0,
/*152100*/          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)
/*152113*/        0, /*End of Scope*/
/*152114*/      /*SwitchType*/ 19, MVT::f32,// ->152135
/*152116*/        OPC_CheckPatternPredicate, 174, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*152118*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*152121*/        OPC_EmitMergeInputChains1_0,
/*152122*/        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)
/*152135*/      0, // EndSwitchType
/*152136*/    /*Scope*/ 34|128,1/*162*/, /*->152300*/
/*152138*/      OPC_RecordChild0, // #0 = $src2
/*152139*/      OPC_Scope, 122, /*->152263*/ // 2 children in Scope
/*152141*/        OPC_RecordChild1, // #1 = $src1
/*152142*/        OPC_Scope, 83, /*->152227*/ // 2 children in Scope
/*152144*/          OPC_RecordChild2, // #2 = $src3
/*152145*/          OPC_SwitchType /*2 cases */, 38, MVT::f32,// ->152186
/*152148*/            OPC_Scope, 11, /*->152161*/ // 3 children in Scope
/*152150*/              OPC_CheckPatternPredicate, 173, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*152152*/              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)
/*152161*/            /*Scope*/ 11, /*->152173*/
/*152162*/              OPC_CheckPatternPredicate, 174, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*152164*/              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)
/*152173*/            /*Scope*/ 11, /*->152185*/
/*152174*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*152176*/              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)
/*152185*/            0, /*End of Scope*/
/*152186*/          /*SwitchType*/ 38, MVT::f64,// ->152226
/*152188*/            OPC_Scope, 11, /*->152201*/ // 3 children in Scope
/*152190*/              OPC_CheckPatternPredicate, 173, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*152192*/              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)
/*152201*/            /*Scope*/ 11, /*->152213*/
/*152202*/              OPC_CheckPatternPredicate, 174, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*152204*/              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)
/*152213*/            /*Scope*/ 11, /*->152225*/
/*152214*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*152216*/              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)
/*152225*/            0, /*End of Scope*/
/*152226*/          0, // EndSwitchType
/*152227*/        /*Scope*/ 34, /*->152262*/
/*152228*/          OPC_MoveChild2,
/*152229*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*152232*/          OPC_RecordMemRef,
/*152233*/          OPC_RecordNode, // #2 = 'ld' chained node
/*152234*/          OPC_CheckFoldableChainNode,
/*152235*/          OPC_RecordChild1, // #3 = $src3
/*152236*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*152238*/          OPC_CheckPredicate, 9, // Predicate_load
/*152240*/          OPC_MoveParent,
/*152241*/          OPC_CheckType, MVT::v4f32,
/*152243*/          OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*152245*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*152248*/          OPC_EmitMergeInputChains1_2,
/*152249*/          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>>) - Complexity = 25
                    // Dst: (VFMADD213PSm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*152262*/        0, /*End of Scope*/
/*152263*/      /*Scope*/ 35, /*->152299*/
/*152264*/        OPC_MoveChild1,
/*152265*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*152268*/        OPC_RecordMemRef,
/*152269*/        OPC_RecordNode, // #1 = 'ld' chained node
/*152270*/        OPC_CheckFoldableChainNode,
/*152271*/        OPC_RecordChild1, // #2 = $src3
/*152272*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*152274*/        OPC_CheckPredicate, 9, // Predicate_load
/*152276*/        OPC_MoveParent,
/*152277*/        OPC_RecordChild2, // #3 = $src1
/*152278*/        OPC_CheckType, MVT::v4f32,
/*152280*/        OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*152282*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*152285*/        OPC_EmitMergeInputChains1_1,
/*152286*/        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>>, VR128:{ *:[v4f32] }:$src1) - Complexity = 25
                  // Dst: (VFMADD231PSm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*152299*/      0, /*End of Scope*/
/*152300*/    /*Scope*/ 36, /*->152337*/
/*152301*/      OPC_MoveChild0,
/*152302*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*152305*/      OPC_RecordMemRef,
/*152306*/      OPC_RecordNode, // #0 = 'ld' chained node
/*152307*/      OPC_CheckFoldableChainNode,
/*152308*/      OPC_RecordChild1, // #1 = $src3
/*152309*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*152311*/      OPC_CheckPredicate, 9, // Predicate_load
/*152313*/      OPC_MoveParent,
/*152314*/      OPC_RecordChild1, // #2 = $src1
/*152315*/      OPC_RecordChild2, // #3 = $src2
/*152316*/      OPC_CheckType, MVT::v4f32,
/*152318*/      OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*152320*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*152323*/      OPC_EmitMergeInputChains1_0,
/*152324*/      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>>, VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2) - Complexity = 25
                // Dst: (VFMADD132PSm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*152337*/    /*Scope*/ 75, /*->152413*/
/*152338*/      OPC_RecordChild0, // #0 = $src2
/*152339*/      OPC_Scope, 35, /*->152376*/ // 2 children in Scope
/*152341*/        OPC_RecordChild1, // #1 = $src1
/*152342*/        OPC_MoveChild2,
/*152343*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*152346*/        OPC_RecordMemRef,
/*152347*/        OPC_RecordNode, // #2 = 'ld' chained node
/*152348*/        OPC_CheckFoldableChainNode,
/*152349*/        OPC_RecordChild1, // #3 = $src3
/*152350*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*152352*/        OPC_CheckPredicate, 9, // Predicate_load
/*152354*/        OPC_MoveParent,
/*152355*/        OPC_CheckType, MVT::v8f32,
/*152357*/        OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*152359*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*152362*/        OPC_EmitMergeInputChains1_2,
/*152363*/        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>>) - Complexity = 25
                  // Dst: (VFMADD213PSYm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*152376*/      /*Scope*/ 35, /*->152412*/
/*152377*/        OPC_MoveChild1,
/*152378*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*152381*/        OPC_RecordMemRef,
/*152382*/        OPC_RecordNode, // #1 = 'ld' chained node
/*152383*/        OPC_CheckFoldableChainNode,
/*152384*/        OPC_RecordChild1, // #2 = $src3
/*152385*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*152387*/        OPC_CheckPredicate, 9, // Predicate_load
/*152389*/        OPC_MoveParent,
/*152390*/        OPC_RecordChild2, // #3 = $src1
/*152391*/        OPC_CheckType, MVT::v8f32,
/*152393*/        OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*152395*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*152398*/        OPC_EmitMergeInputChains1_1,
/*152399*/        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>>, VR256:{ *:[v8f32] }:$src1) - Complexity = 25
                  // Dst: (VFMADD231PSYm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*152412*/      0, /*End of Scope*/
/*152413*/    /*Scope*/ 36, /*->152450*/
/*152414*/      OPC_MoveChild0,
/*152415*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*152418*/      OPC_RecordMemRef,
/*152419*/      OPC_RecordNode, // #0 = 'ld' chained node
/*152420*/      OPC_CheckFoldableChainNode,
/*152421*/      OPC_RecordChild1, // #1 = $src3
/*152422*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*152424*/      OPC_CheckPredicate, 9, // Predicate_load
/*152426*/      OPC_MoveParent,
/*152427*/      OPC_RecordChild1, // #2 = $src1
/*152428*/      OPC_RecordChild2, // #3 = $src2
/*152429*/      OPC_CheckType, MVT::v8f32,
/*152431*/      OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*152433*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*152436*/      OPC_EmitMergeInputChains1_0,
/*152437*/      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>>, VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2) - Complexity = 25
                // Dst: (VFMADD132PSYm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*152450*/    /*Scope*/ 75, /*->152526*/
/*152451*/      OPC_RecordChild0, // #0 = $src2
/*152452*/      OPC_Scope, 35, /*->152489*/ // 2 children in Scope
/*152454*/        OPC_RecordChild1, // #1 = $src1
/*152455*/        OPC_MoveChild2,
/*152456*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*152459*/        OPC_RecordMemRef,
/*152460*/        OPC_RecordNode, // #2 = 'ld' chained node
/*152461*/        OPC_CheckFoldableChainNode,
/*152462*/        OPC_RecordChild1, // #3 = $src3
/*152463*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*152465*/        OPC_CheckPredicate, 9, // Predicate_load
/*152467*/        OPC_MoveParent,
/*152468*/        OPC_CheckType, MVT::v2f64,
/*152470*/        OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*152472*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*152475*/        OPC_EmitMergeInputChains1_2,
/*152476*/        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>>) - Complexity = 25
                  // Dst: (VFMADD213PDm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*152489*/      /*Scope*/ 35, /*->152525*/
/*152490*/        OPC_MoveChild1,
/*152491*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*152494*/        OPC_RecordMemRef,
/*152495*/        OPC_RecordNode, // #1 = 'ld' chained node
/*152496*/        OPC_CheckFoldableChainNode,
/*152497*/        OPC_RecordChild1, // #2 = $src3
/*152498*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*152500*/        OPC_CheckPredicate, 9, // Predicate_load
/*152502*/        OPC_MoveParent,
/*152503*/        OPC_RecordChild2, // #3 = $src1
/*152504*/        OPC_CheckType, MVT::v2f64,
/*152506*/        OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*152508*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*152511*/        OPC_EmitMergeInputChains1_1,
/*152512*/        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>>, VR128:{ *:[v2f64] }:$src1) - Complexity = 25
                  // Dst: (VFMADD231PDm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*152525*/      0, /*End of Scope*/
/*152526*/    /*Scope*/ 36, /*->152563*/
/*152527*/      OPC_MoveChild0,
/*152528*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*152531*/      OPC_RecordMemRef,
/*152532*/      OPC_RecordNode, // #0 = 'ld' chained node
/*152533*/      OPC_CheckFoldableChainNode,
/*152534*/      OPC_RecordChild1, // #1 = $src3
/*152535*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*152537*/      OPC_CheckPredicate, 9, // Predicate_load
/*152539*/      OPC_MoveParent,
/*152540*/      OPC_RecordChild1, // #2 = $src1
/*152541*/      OPC_RecordChild2, // #3 = $src2
/*152542*/      OPC_CheckType, MVT::v2f64,
/*152544*/      OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*152546*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*152549*/      OPC_EmitMergeInputChains1_0,
/*152550*/      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>>, VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2) - Complexity = 25
                // Dst: (VFMADD132PDm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*152563*/    /*Scope*/ 75, /*->152639*/
/*152564*/      OPC_RecordChild0, // #0 = $src2
/*152565*/      OPC_Scope, 35, /*->152602*/ // 2 children in Scope
/*152567*/        OPC_RecordChild1, // #1 = $src1
/*152568*/        OPC_MoveChild2,
/*152569*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*152572*/        OPC_RecordMemRef,
/*152573*/        OPC_RecordNode, // #2 = 'ld' chained node
/*152574*/        OPC_CheckFoldableChainNode,
/*152575*/        OPC_RecordChild1, // #3 = $src3
/*152576*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*152578*/        OPC_CheckPredicate, 9, // Predicate_load
/*152580*/        OPC_MoveParent,
/*152581*/        OPC_CheckType, MVT::v4f64,
/*152583*/        OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*152585*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*152588*/        OPC_EmitMergeInputChains1_2,
/*152589*/        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>>) - Complexity = 25
                  // Dst: (VFMADD213PDYm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*152602*/      /*Scope*/ 35, /*->152638*/
/*152603*/        OPC_MoveChild1,
/*152604*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*152607*/        OPC_RecordMemRef,
/*152608*/        OPC_RecordNode, // #1 = 'ld' chained node
/*152609*/        OPC_CheckFoldableChainNode,
/*152610*/        OPC_RecordChild1, // #2 = $src3
/*152611*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*152613*/        OPC_CheckPredicate, 9, // Predicate_load
/*152615*/        OPC_MoveParent,
/*152616*/        OPC_RecordChild2, // #3 = $src1
/*152617*/        OPC_CheckType, MVT::v4f64,
/*152619*/        OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*152621*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*152624*/        OPC_EmitMergeInputChains1_1,
/*152625*/        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>>, VR256:{ *:[v4f64] }:$src1) - Complexity = 25
                  // Dst: (VFMADD231PDYm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*152638*/      0, /*End of Scope*/
/*152639*/    /*Scope*/ 36, /*->152676*/
/*152640*/      OPC_MoveChild0,
/*152641*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*152644*/      OPC_RecordMemRef,
/*152645*/      OPC_RecordNode, // #0 = 'ld' chained node
/*152646*/      OPC_CheckFoldableChainNode,
/*152647*/      OPC_RecordChild1, // #1 = $src3
/*152648*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*152650*/      OPC_CheckPredicate, 9, // Predicate_load
/*152652*/      OPC_MoveParent,
/*152653*/      OPC_RecordChild1, // #2 = $src1
/*152654*/      OPC_RecordChild2, // #3 = $src2
/*152655*/      OPC_CheckType, MVT::v4f64,
/*152657*/      OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*152659*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*152662*/      OPC_EmitMergeInputChains1_0,
/*152663*/      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>>, VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2) - Complexity = 25
                // Dst: (VFMADD132PDYm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*152676*/    /*Scope*/ 115|128,6/*883*/, /*->153561*/
/*152678*/      OPC_RecordChild0, // #0 = $src1
/*152679*/      OPC_Scope, 35, /*->152716*/ // 10 children in Scope
/*152681*/        OPC_RecordChild1, // #1 = $src2
/*152682*/        OPC_MoveChild2,
/*152683*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*152686*/        OPC_RecordMemRef,
/*152687*/        OPC_RecordNode, // #2 = 'ld' chained node
/*152688*/        OPC_CheckFoldableChainNode,
/*152689*/        OPC_RecordChild1, // #3 = $src3
/*152690*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*152692*/        OPC_CheckPredicate, 9, // Predicate_load
/*152694*/        OPC_MoveParent,
/*152695*/        OPC_CheckType, MVT::v4f32,
/*152697*/        OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*152699*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*152702*/        OPC_EmitMergeInputChains1_2,
/*152703*/        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>>) - Complexity = 25
                  // Dst: (VFMADDPS4rm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*152716*/      /*Scope*/ 35, /*->152752*/
/*152717*/        OPC_MoveChild1,
/*152718*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*152721*/        OPC_RecordMemRef,
/*152722*/        OPC_RecordNode, // #1 = 'ld' chained node
/*152723*/        OPC_CheckFoldableChainNode,
/*152724*/        OPC_RecordChild1, // #2 = $src2
/*152725*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*152727*/        OPC_CheckPredicate, 9, // Predicate_load
/*152729*/        OPC_MoveParent,
/*152730*/        OPC_RecordChild2, // #3 = $src3
/*152731*/        OPC_CheckType, MVT::v4f32,
/*152733*/        OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*152735*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*152738*/        OPC_EmitMergeInputChains1_1,
/*152739*/        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>>, VR128:{ *:[v4f32] }:$src3) - Complexity = 25
                  // Dst: (VFMADDPS4mr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v4f32] }:$src3)
/*152752*/      /*Scope*/ 35, /*->152788*/
/*152753*/        OPC_RecordChild1, // #1 = $src2
/*152754*/        OPC_MoveChild2,
/*152755*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*152758*/        OPC_RecordMemRef,
/*152759*/        OPC_RecordNode, // #2 = 'ld' chained node
/*152760*/        OPC_CheckFoldableChainNode,
/*152761*/        OPC_RecordChild1, // #3 = $src3
/*152762*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*152764*/        OPC_CheckPredicate, 9, // Predicate_load
/*152766*/        OPC_MoveParent,
/*152767*/        OPC_CheckType, MVT::v8f32,
/*152769*/        OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*152771*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*152774*/        OPC_EmitMergeInputChains1_2,
/*152775*/        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>>) - Complexity = 25
                  // Dst: (VFMADDPS4Yrm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*152788*/      /*Scope*/ 35, /*->152824*/
/*152789*/        OPC_MoveChild1,
/*152790*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*152793*/        OPC_RecordMemRef,
/*152794*/        OPC_RecordNode, // #1 = 'ld' chained node
/*152795*/        OPC_CheckFoldableChainNode,
/*152796*/        OPC_RecordChild1, // #2 = $src2
/*152797*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*152799*/        OPC_CheckPredicate, 9, // Predicate_load
/*152801*/        OPC_MoveParent,
/*152802*/        OPC_RecordChild2, // #3 = $src3
/*152803*/        OPC_CheckType, MVT::v8f32,
/*152805*/        OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*152807*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*152810*/        OPC_EmitMergeInputChains1_1,
/*152811*/        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>>, VR256:{ *:[v8f32] }:$src3) - Complexity = 25
                  // Dst: (VFMADDPS4Ymr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v8f32] }:$src3)
/*152824*/      /*Scope*/ 35, /*->152860*/
/*152825*/        OPC_RecordChild1, // #1 = $src2
/*152826*/        OPC_MoveChild2,
/*152827*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*152830*/        OPC_RecordMemRef,
/*152831*/        OPC_RecordNode, // #2 = 'ld' chained node
/*152832*/        OPC_CheckFoldableChainNode,
/*152833*/        OPC_RecordChild1, // #3 = $src3
/*152834*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*152836*/        OPC_CheckPredicate, 9, // Predicate_load
/*152838*/        OPC_MoveParent,
/*152839*/        OPC_CheckType, MVT::v2f64,
/*152841*/        OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*152843*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*152846*/        OPC_EmitMergeInputChains1_2,
/*152847*/        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>>) - Complexity = 25
                  // Dst: (VFMADDPD4rm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*152860*/      /*Scope*/ 35, /*->152896*/
/*152861*/        OPC_MoveChild1,
/*152862*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*152865*/        OPC_RecordMemRef,
/*152866*/        OPC_RecordNode, // #1 = 'ld' chained node
/*152867*/        OPC_CheckFoldableChainNode,
/*152868*/        OPC_RecordChild1, // #2 = $src2
/*152869*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*152871*/        OPC_CheckPredicate, 9, // Predicate_load
/*152873*/        OPC_MoveParent,
/*152874*/        OPC_RecordChild2, // #3 = $src3
/*152875*/        OPC_CheckType, MVT::v2f64,
/*152877*/        OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*152879*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*152882*/        OPC_EmitMergeInputChains1_1,
/*152883*/        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>>, VR128:{ *:[v2f64] }:$src3) - Complexity = 25
                  // Dst: (VFMADDPD4mr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v2f64] }:$src3)
/*152896*/      /*Scope*/ 35, /*->152932*/
/*152897*/        OPC_RecordChild1, // #1 = $src2
/*152898*/        OPC_MoveChild2,
/*152899*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*152902*/        OPC_RecordMemRef,
/*152903*/        OPC_RecordNode, // #2 = 'ld' chained node
/*152904*/        OPC_CheckFoldableChainNode,
/*152905*/        OPC_RecordChild1, // #3 = $src3
/*152906*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*152908*/        OPC_CheckPredicate, 9, // Predicate_load
/*152910*/        OPC_MoveParent,
/*152911*/        OPC_CheckType, MVT::v4f64,
/*152913*/        OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*152915*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*152918*/        OPC_EmitMergeInputChains1_2,
/*152919*/        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>>) - Complexity = 25
                  // Dst: (VFMADDPD4Yrm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*152932*/      /*Scope*/ 35, /*->152968*/
/*152933*/        OPC_MoveChild1,
/*152934*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*152937*/        OPC_RecordMemRef,
/*152938*/        OPC_RecordNode, // #1 = 'ld' chained node
/*152939*/        OPC_CheckFoldableChainNode,
/*152940*/        OPC_RecordChild1, // #2 = $src2
/*152941*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*152943*/        OPC_CheckPredicate, 9, // Predicate_load
/*152945*/        OPC_MoveParent,
/*152946*/        OPC_RecordChild2, // #3 = $src3
/*152947*/        OPC_CheckType, MVT::v4f64,
/*152949*/        OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*152951*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*152954*/        OPC_EmitMergeInputChains1_1,
/*152955*/        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>>, VR256:{ *:[v4f64] }:$src3) - Complexity = 25
                  // Dst: (VFMADDPD4Ymr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v4f64] }:$src3)
/*152968*/      /*Scope*/ 37|128,2/*293*/, /*->153263*/
/*152970*/        OPC_RecordChild1, // #1 = $src1
/*152971*/        OPC_MoveChild2,
/*152972*/        OPC_SwitchOpcode /*2 cases */, 9|128,1/*137*/, TARGET_VAL(ISD::LOAD),// ->153114
/*152977*/          OPC_RecordMemRef,
/*152978*/          OPC_RecordNode, // #2 = 'ld' chained node
/*152979*/          OPC_CheckFoldableChainNode,
/*152980*/          OPC_RecordChild1, // #3 = $src3
/*152981*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*152983*/          OPC_CheckPredicate, 9, // Predicate_load
/*152985*/          OPC_MoveParent,
/*152986*/          OPC_SwitchType /*6 cases */, 19, MVT::v16f32,// ->153008
/*152989*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*152991*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*152994*/            OPC_EmitMergeInputChains1_2,
/*152995*/            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>>) - Complexity = 25
                      // Dst: (VFMADD213PSZm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*153008*/          /*SwitchType*/ 19, MVT::v8f32,// ->153029
/*153010*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*153012*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*153015*/            OPC_EmitMergeInputChains1_2,
/*153016*/            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>>) - Complexity = 25
                      // Dst: (VFMADD213PSZ256m:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*153029*/          /*SwitchType*/ 19, MVT::v4f32,// ->153050
/*153031*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*153033*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*153036*/            OPC_EmitMergeInputChains1_2,
/*153037*/            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>>) - Complexity = 25
                      // Dst: (VFMADD213PSZ128m:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*153050*/          /*SwitchType*/ 19, MVT::v8f64,// ->153071
/*153052*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*153054*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*153057*/            OPC_EmitMergeInputChains1_2,
/*153058*/            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>>) - Complexity = 25
                      // Dst: (VFMADD213PDZm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*153071*/          /*SwitchType*/ 19, MVT::v4f64,// ->153092
/*153073*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*153075*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*153078*/            OPC_EmitMergeInputChains1_2,
/*153079*/            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>>) - Complexity = 25
                      // Dst: (VFMADD213PDZ256m:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*153092*/          /*SwitchType*/ 19, MVT::v2f64,// ->153113
/*153094*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*153096*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*153099*/            OPC_EmitMergeInputChains1_2,
/*153100*/            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>>) - Complexity = 25
                      // Dst: (VFMADD213PDZ128m:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*153113*/          0, // EndSwitchType
/*153114*/        /*SwitchOpcode*/ 16|128,1/*144*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->153262
/*153118*/          OPC_RecordMemRef,
/*153119*/          OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*153120*/          OPC_CheckFoldableChainNode,
/*153121*/          OPC_RecordChild1, // #3 = $src3
/*153122*/          OPC_Scope, 68, /*->153192*/ // 2 children in Scope
/*153124*/            OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*153126*/            OPC_MoveParent,
/*153127*/            OPC_SwitchType /*3 cases */, 19, MVT::v16f32,// ->153149
/*153130*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*153132*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*153135*/              OPC_EmitMergeInputChains1_2,
/*153136*/              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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VFMADD213PSZmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*153149*/            /*SwitchType*/ 19, MVT::v8f32,// ->153170
/*153151*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*153153*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*153156*/              OPC_EmitMergeInputChains1_2,
/*153157*/              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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VFMADD213PSZ256mb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*153170*/            /*SwitchType*/ 19, MVT::v4f32,// ->153191
/*153172*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*153174*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*153177*/              OPC_EmitMergeInputChains1_2,
/*153178*/              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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VFMADD213PSZ128mb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*153191*/            0, // EndSwitchType
/*153192*/          /*Scope*/ 68, /*->153261*/
/*153193*/            OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*153195*/            OPC_MoveParent,
/*153196*/            OPC_SwitchType /*3 cases */, 19, MVT::v8f64,// ->153218
/*153199*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*153201*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*153204*/              OPC_EmitMergeInputChains1_2,
/*153205*/              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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VFMADD213PDZmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*153218*/            /*SwitchType*/ 19, MVT::v4f64,// ->153239
/*153220*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*153222*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*153225*/              OPC_EmitMergeInputChains1_2,
/*153226*/              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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VFMADD213PDZ256mb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*153239*/            /*SwitchType*/ 19, MVT::v2f64,// ->153260
/*153241*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*153243*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*153246*/              OPC_EmitMergeInputChains1_2,
/*153247*/              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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VFMADD213PDZ128mb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*153260*/            0, // EndSwitchType
/*153261*/          0, /*End of Scope*/
/*153262*/        0, // EndSwitchOpcode
/*153263*/      /*Scope*/ 39|128,2/*295*/, /*->153560*/
/*153265*/        OPC_MoveChild1,
/*153266*/        OPC_SwitchOpcode /*2 cases */, 10|128,1/*138*/, TARGET_VAL(ISD::LOAD),// ->153409
/*153271*/          OPC_RecordMemRef,
/*153272*/          OPC_RecordNode, // #1 = 'ld' chained node
/*153273*/          OPC_CheckFoldableChainNode,
/*153274*/          OPC_RecordChild1, // #2 = $src3
/*153275*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*153277*/          OPC_CheckPredicate, 9, // Predicate_load
/*153279*/          OPC_MoveParent,
/*153280*/          OPC_RecordChild2, // #3 = $src1
/*153281*/          OPC_SwitchType /*6 cases */, 19, MVT::v16f32,// ->153303
/*153284*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*153286*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*153289*/            OPC_EmitMergeInputChains1_1,
/*153290*/            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>>, VR512:{ *:[v16f32] }:$src1) - Complexity = 25
                      // Dst: (VFMADD231PSZm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*153303*/          /*SwitchType*/ 19, MVT::v8f32,// ->153324
/*153305*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*153307*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*153310*/            OPC_EmitMergeInputChains1_1,
/*153311*/            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>>, VR256X:{ *:[v8f32] }:$src1) - Complexity = 25
                      // Dst: (VFMADD231PSZ256m:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*153324*/          /*SwitchType*/ 19, MVT::v4f32,// ->153345
/*153326*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*153328*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*153331*/            OPC_EmitMergeInputChains1_1,
/*153332*/            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>>, VR128X:{ *:[v4f32] }:$src1) - Complexity = 25
                      // Dst: (VFMADD231PSZ128m:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*153345*/          /*SwitchType*/ 19, MVT::v8f64,// ->153366
/*153347*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*153349*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*153352*/            OPC_EmitMergeInputChains1_1,
/*153353*/            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>>, VR512:{ *:[v8f64] }:$src1) - Complexity = 25
                      // Dst: (VFMADD231PDZm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*153366*/          /*SwitchType*/ 19, MVT::v4f64,// ->153387
/*153368*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*153370*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*153373*/            OPC_EmitMergeInputChains1_1,
/*153374*/            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>>, VR256X:{ *:[v4f64] }:$src1) - Complexity = 25
                      // Dst: (VFMADD231PDZ256m:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*153387*/          /*SwitchType*/ 19, MVT::v2f64,// ->153408
/*153389*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*153391*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*153394*/            OPC_EmitMergeInputChains1_1,
/*153395*/            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>>, VR128X:{ *:[v2f64] }:$src1) - Complexity = 25
                      // Dst: (VFMADD231PDZ128m:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*153408*/          0, // EndSwitchType
/*153409*/        /*SwitchOpcode*/ 18|128,1/*146*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->153559
/*153413*/          OPC_RecordMemRef,
/*153414*/          OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*153415*/          OPC_CheckFoldableChainNode,
/*153416*/          OPC_RecordChild1, // #2 = $src3
/*153417*/          OPC_Scope, 69, /*->153488*/ // 2 children in Scope
/*153419*/            OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*153421*/            OPC_MoveParent,
/*153422*/            OPC_RecordChild2, // #3 = $src1
/*153423*/            OPC_SwitchType /*3 cases */, 19, MVT::v16f32,// ->153445
/*153426*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*153428*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*153431*/              OPC_EmitMergeInputChains1_1,
/*153432*/              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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src1) - Complexity = 25
                        // Dst: (VFMADD231PSZmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*153445*/            /*SwitchType*/ 19, MVT::v8f32,// ->153466
/*153447*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*153449*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*153452*/              OPC_EmitMergeInputChains1_1,
/*153453*/              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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1) - Complexity = 25
                        // Dst: (VFMADD231PSZ256mb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*153466*/            /*SwitchType*/ 19, MVT::v4f32,// ->153487
/*153468*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*153470*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*153473*/              OPC_EmitMergeInputChains1_1,
/*153474*/              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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1) - Complexity = 25
                        // Dst: (VFMADD231PSZ128mb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*153487*/            0, // EndSwitchType
/*153488*/          /*Scope*/ 69, /*->153558*/
/*153489*/            OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*153491*/            OPC_MoveParent,
/*153492*/            OPC_RecordChild2, // #3 = $src1
/*153493*/            OPC_SwitchType /*3 cases */, 19, MVT::v8f64,// ->153515
/*153496*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*153498*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*153501*/              OPC_EmitMergeInputChains1_1,
/*153502*/              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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src1) - Complexity = 25
                        // Dst: (VFMADD231PDZmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*153515*/            /*SwitchType*/ 19, MVT::v4f64,// ->153536
/*153517*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*153519*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*153522*/              OPC_EmitMergeInputChains1_1,
/*153523*/              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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1) - Complexity = 25
                        // Dst: (VFMADD231PDZ256mb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*153536*/            /*SwitchType*/ 19, MVT::v2f64,// ->153557
/*153538*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*153540*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*153543*/              OPC_EmitMergeInputChains1_1,
/*153544*/              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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1) - Complexity = 25
                        // Dst: (VFMADD231PDZ128mb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*153557*/            0, // EndSwitchType
/*153558*/          0, /*End of Scope*/
/*153559*/        0, // EndSwitchOpcode
/*153560*/      0, /*End of Scope*/
/*153561*/    /*Scope*/ 6|128,3/*390*/, /*->153953*/
/*153563*/      OPC_MoveChild0,
/*153564*/      OPC_SwitchOpcode /*2 cases */, 103|128,1/*231*/, TARGET_VAL(ISD::LOAD),// ->153800
/*153569*/        OPC_RecordMemRef,
/*153570*/        OPC_RecordNode, // #0 = 'ld' chained node
/*153571*/        OPC_CheckFoldableChainNode,
/*153572*/        OPC_RecordChild1, // #1 = $src3
/*153573*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*153575*/        OPC_CheckPredicate, 9, // Predicate_load
/*153577*/        OPC_MoveParent,
/*153578*/        OPC_RecordChild1, // #2 = $src1
/*153579*/        OPC_RecordChild2, // #3 = $src2
/*153580*/        OPC_SwitchType /*6 cases */, 19, MVT::v16f32,// ->153602
/*153583*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*153585*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*153588*/          OPC_EmitMergeInputChains1_0,
/*153589*/          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>>, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2) - Complexity = 25
                    // Dst: (VFMADD132PSZm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*153602*/        /*SwitchType*/ 42, MVT::v8f32,// ->153646
/*153604*/          OPC_Scope, 19, /*->153625*/ // 2 children in Scope
/*153606*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*153608*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*153611*/            OPC_EmitMergeInputChains1_0,
/*153612*/            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>>, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2) - Complexity = 25
                      // Dst: (VFMADD132PSZ256m:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*153625*/          /*Scope*/ 19, /*->153645*/
/*153626*/            OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*153628*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*153631*/            OPC_EmitMergeInputChains1_0,
/*153632*/            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>>, VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src3) - Complexity = 25
                      // Dst: (VFMADDPS4Ymr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v8f32] }:$src3)
/*153645*/          0, /*End of Scope*/
/*153646*/        /*SwitchType*/ 42, MVT::v4f32,// ->153690
/*153648*/          OPC_Scope, 19, /*->153669*/ // 2 children in Scope
/*153650*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*153652*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*153655*/            OPC_EmitMergeInputChains1_0,
/*153656*/            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>>, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2) - Complexity = 25
                      // Dst: (VFMADD132PSZ128m:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*153669*/          /*Scope*/ 19, /*->153689*/
/*153670*/            OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*153672*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*153675*/            OPC_EmitMergeInputChains1_0,
/*153676*/            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>>, VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src3) - Complexity = 25
                      // Dst: (VFMADDPS4mr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v4f32] }:$src3)
/*153689*/          0, /*End of Scope*/
/*153690*/        /*SwitchType*/ 19, MVT::v8f64,// ->153711
/*153692*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*153694*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*153697*/          OPC_EmitMergeInputChains1_0,
/*153698*/          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>>, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2) - Complexity = 25
                    // Dst: (VFMADD132PDZm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*153711*/        /*SwitchType*/ 42, MVT::v4f64,// ->153755
/*153713*/          OPC_Scope, 19, /*->153734*/ // 2 children in Scope
/*153715*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*153717*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*153720*/            OPC_EmitMergeInputChains1_0,
/*153721*/            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>>, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2) - Complexity = 25
                      // Dst: (VFMADD132PDZ256m:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*153734*/          /*Scope*/ 19, /*->153754*/
/*153735*/            OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*153737*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*153740*/            OPC_EmitMergeInputChains1_0,
/*153741*/            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>>, VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src3) - Complexity = 25
                      // Dst: (VFMADDPD4Ymr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v4f64] }:$src3)
/*153754*/          0, /*End of Scope*/
/*153755*/        /*SwitchType*/ 42, MVT::v2f64,// ->153799
/*153757*/          OPC_Scope, 19, /*->153778*/ // 2 children in Scope
/*153759*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*153761*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*153764*/            OPC_EmitMergeInputChains1_0,
/*153765*/            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>>, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2) - Complexity = 25
                      // Dst: (VFMADD132PDZ128m:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*153778*/          /*Scope*/ 19, /*->153798*/
/*153779*/            OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*153781*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*153784*/            OPC_EmitMergeInputChains1_0,
/*153785*/            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>>, VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src3) - Complexity = 25
                      // Dst: (VFMADDPD4mr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v2f64] }:$src3)
/*153798*/          0, /*End of Scope*/
/*153799*/        0, // EndSwitchType
/*153800*/      /*SwitchOpcode*/ 20|128,1/*148*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->153952
/*153804*/        OPC_RecordMemRef,
/*153805*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*153806*/        OPC_CheckFoldableChainNode,
/*153807*/        OPC_RecordChild1, // #1 = $src3
/*153808*/        OPC_Scope, 70, /*->153880*/ // 2 children in Scope
/*153810*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*153812*/          OPC_MoveParent,
/*153813*/          OPC_RecordChild1, // #2 = $src1
/*153814*/          OPC_RecordChild2, // #3 = $src2
/*153815*/          OPC_SwitchType /*3 cases */, 19, MVT::v16f32,// ->153837
/*153818*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*153820*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*153823*/            OPC_EmitMergeInputChains1_0,
/*153824*/            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] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2) - Complexity = 25
                      // Dst: (VFMADD132PSZmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*153837*/          /*SwitchType*/ 19, MVT::v8f32,// ->153858
/*153839*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*153841*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*153844*/            OPC_EmitMergeInputChains1_0,
/*153845*/            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] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2) - Complexity = 25
                      // Dst: (VFMADD132PSZ256mb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*153858*/          /*SwitchType*/ 19, MVT::v4f32,// ->153879
/*153860*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*153862*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*153865*/            OPC_EmitMergeInputChains1_0,
/*153866*/            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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2) - Complexity = 25
                      // Dst: (VFMADD132PSZ128mb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*153879*/          0, // EndSwitchType
/*153880*/        /*Scope*/ 70, /*->153951*/
/*153881*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*153883*/          OPC_MoveParent,
/*153884*/          OPC_RecordChild1, // #2 = $src1
/*153885*/          OPC_RecordChild2, // #3 = $src2
/*153886*/          OPC_SwitchType /*3 cases */, 19, MVT::v8f64,// ->153908
/*153889*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*153891*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*153894*/            OPC_EmitMergeInputChains1_0,
/*153895*/            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] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2) - Complexity = 25
                      // Dst: (VFMADD132PDZmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*153908*/          /*SwitchType*/ 19, MVT::v4f64,// ->153929
/*153910*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*153912*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*153915*/            OPC_EmitMergeInputChains1_0,
/*153916*/            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] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2) - Complexity = 25
                      // Dst: (VFMADD132PDZ256mb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*153929*/          /*SwitchType*/ 19, MVT::v2f64,// ->153950
/*153931*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*153933*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*153936*/            OPC_EmitMergeInputChains1_0,
/*153937*/            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] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2) - Complexity = 25
                      // Dst: (VFMADD132PDZ128mb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*153950*/          0, // EndSwitchType
/*153951*/        0, /*End of Scope*/
/*153952*/      0, // EndSwitchOpcode
/*153953*/    /*Scope*/ 63|128,1/*191*/, /*->154146*/
/*153955*/      OPC_RecordChild0, // #0 = $src2
/*153956*/      OPC_RecordChild1, // #1 = $src1
/*153957*/      OPC_RecordChild2, // #2 = $src3
/*153958*/      OPC_SwitchType /*6 cases */, 38, MVT::v4f32,// ->153999
/*153961*/        OPC_Scope, 11, /*->153974*/ // 3 children in Scope
/*153963*/          OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*153965*/          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)
/*153974*/        /*Scope*/ 11, /*->153986*/
/*153975*/          OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*153977*/          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)
/*153986*/        /*Scope*/ 11, /*->153998*/
/*153987*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*153989*/          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)
/*153998*/        0, /*End of Scope*/
/*153999*/      /*SwitchType*/ 38, MVT::v8f32,// ->154039
/*154001*/        OPC_Scope, 11, /*->154014*/ // 3 children in Scope
/*154003*/          OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*154005*/          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)
/*154014*/        /*Scope*/ 11, /*->154026*/
/*154015*/          OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*154017*/          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)
/*154026*/        /*Scope*/ 11, /*->154038*/
/*154027*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*154029*/          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)
/*154038*/        0, /*End of Scope*/
/*154039*/      /*SwitchType*/ 38, MVT::v2f64,// ->154079
/*154041*/        OPC_Scope, 11, /*->154054*/ // 3 children in Scope
/*154043*/          OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*154045*/          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)
/*154054*/        /*Scope*/ 11, /*->154066*/
/*154055*/          OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*154057*/          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)
/*154066*/        /*Scope*/ 11, /*->154078*/
/*154067*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*154069*/          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)
/*154078*/        0, /*End of Scope*/
/*154079*/      /*SwitchType*/ 38, MVT::v4f64,// ->154119
/*154081*/        OPC_Scope, 11, /*->154094*/ // 3 children in Scope
/*154083*/          OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*154085*/          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)
/*154094*/        /*Scope*/ 11, /*->154106*/
/*154095*/          OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*154097*/          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)
/*154106*/        /*Scope*/ 11, /*->154118*/
/*154107*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*154109*/          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)
/*154118*/        0, /*End of Scope*/
/*154119*/      /*SwitchType*/ 11, MVT::v16f32,// ->154132
/*154121*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*154123*/        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)
/*154132*/      /*SwitchType*/ 11, MVT::v8f64,// ->154145
/*154134*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*154136*/        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)
/*154145*/      0, // EndSwitchType
/*154146*/    0, /*End of Scope*/
/*154147*/  /*SwitchOpcode*/ 95|128,20/*2655*/, TARGET_VAL(X86ISD::FMSUB),// ->156806
/*154151*/    OPC_Scope, 75, /*->154228*/ // 19 children in Scope
/*154153*/      OPC_RecordChild0, // #0 = $src2
/*154154*/      OPC_Scope, 35, /*->154191*/ // 2 children in Scope
/*154156*/        OPC_RecordChild1, // #1 = $src1
/*154157*/        OPC_MoveChild2,
/*154158*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*154161*/        OPC_RecordMemRef,
/*154162*/        OPC_RecordNode, // #2 = 'ld' chained node
/*154163*/        OPC_CheckFoldableChainNode,
/*154164*/        OPC_RecordChild1, // #3 = $src3
/*154165*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*154167*/        OPC_CheckPredicate, 9, // Predicate_load
/*154169*/        OPC_MoveParent,
/*154170*/        OPC_CheckType, MVT::f32,
/*154172*/        OPC_CheckPatternPredicate, 173, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*154174*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*154177*/        OPC_EmitMergeInputChains1_2,
/*154178*/        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)
/*154191*/      /*Scope*/ 35, /*->154227*/
/*154192*/        OPC_MoveChild1,
/*154193*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*154196*/        OPC_RecordMemRef,
/*154197*/        OPC_RecordNode, // #1 = 'ld' chained node
/*154198*/        OPC_CheckFoldableChainNode,
/*154199*/        OPC_RecordChild1, // #2 = $src3
/*154200*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*154202*/        OPC_CheckPredicate, 9, // Predicate_load
/*154204*/        OPC_MoveParent,
/*154205*/        OPC_RecordChild2, // #3 = $src1
/*154206*/        OPC_CheckType, MVT::f32,
/*154208*/        OPC_CheckPatternPredicate, 173, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*154210*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*154213*/        OPC_EmitMergeInputChains1_1,
/*154214*/        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)
/*154227*/      0, /*End of Scope*/
/*154228*/    /*Scope*/ 36, /*->154265*/
/*154229*/      OPC_MoveChild0,
/*154230*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*154233*/      OPC_RecordMemRef,
/*154234*/      OPC_RecordNode, // #0 = 'ld' chained node
/*154235*/      OPC_CheckFoldableChainNode,
/*154236*/      OPC_RecordChild1, // #1 = $src3
/*154237*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*154239*/      OPC_CheckPredicate, 9, // Predicate_load
/*154241*/      OPC_MoveParent,
/*154242*/      OPC_RecordChild1, // #2 = $src1
/*154243*/      OPC_RecordChild2, // #3 = $src2
/*154244*/      OPC_CheckType, MVT::f32,
/*154246*/      OPC_CheckPatternPredicate, 173, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*154248*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*154251*/      OPC_EmitMergeInputChains1_0,
/*154252*/      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)
/*154265*/    /*Scope*/ 75, /*->154341*/
/*154266*/      OPC_RecordChild0, // #0 = $src2
/*154267*/      OPC_Scope, 35, /*->154304*/ // 2 children in Scope
/*154269*/        OPC_RecordChild1, // #1 = $src1
/*154270*/        OPC_MoveChild2,
/*154271*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*154274*/        OPC_RecordMemRef,
/*154275*/        OPC_RecordNode, // #2 = 'ld' chained node
/*154276*/        OPC_CheckFoldableChainNode,
/*154277*/        OPC_RecordChild1, // #3 = $src3
/*154278*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*154280*/        OPC_CheckPredicate, 9, // Predicate_load
/*154282*/        OPC_MoveParent,
/*154283*/        OPC_CheckType, MVT::f64,
/*154285*/        OPC_CheckPatternPredicate, 173, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*154287*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*154290*/        OPC_EmitMergeInputChains1_2,
/*154291*/        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)
/*154304*/      /*Scope*/ 35, /*->154340*/
/*154305*/        OPC_MoveChild1,
/*154306*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*154309*/        OPC_RecordMemRef,
/*154310*/        OPC_RecordNode, // #1 = 'ld' chained node
/*154311*/        OPC_CheckFoldableChainNode,
/*154312*/        OPC_RecordChild1, // #2 = $src3
/*154313*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*154315*/        OPC_CheckPredicate, 9, // Predicate_load
/*154317*/        OPC_MoveParent,
/*154318*/        OPC_RecordChild2, // #3 = $src1
/*154319*/        OPC_CheckType, MVT::f64,
/*154321*/        OPC_CheckPatternPredicate, 173, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*154323*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*154326*/        OPC_EmitMergeInputChains1_1,
/*154327*/        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)
/*154340*/      0, /*End of Scope*/
/*154341*/    /*Scope*/ 36, /*->154378*/
/*154342*/      OPC_MoveChild0,
/*154343*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*154346*/      OPC_RecordMemRef,
/*154347*/      OPC_RecordNode, // #0 = 'ld' chained node
/*154348*/      OPC_CheckFoldableChainNode,
/*154349*/      OPC_RecordChild1, // #1 = $src3
/*154350*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*154352*/      OPC_CheckPredicate, 9, // Predicate_load
/*154354*/      OPC_MoveParent,
/*154355*/      OPC_RecordChild1, // #2 = $src1
/*154356*/      OPC_RecordChild2, // #3 = $src2
/*154357*/      OPC_CheckType, MVT::f64,
/*154359*/      OPC_CheckPatternPredicate, 173, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*154361*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*154364*/      OPC_EmitMergeInputChains1_0,
/*154365*/      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)
/*154378*/    /*Scope*/ 91|128,1/*219*/, /*->154599*/
/*154380*/      OPC_RecordChild0, // #0 = $src1
/*154381*/      OPC_Scope, 35, /*->154418*/ // 6 children in Scope
/*154383*/        OPC_RecordChild1, // #1 = $src2
/*154384*/        OPC_MoveChild2,
/*154385*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*154388*/        OPC_RecordMemRef,
/*154389*/        OPC_RecordNode, // #2 = 'ld' chained node
/*154390*/        OPC_CheckFoldableChainNode,
/*154391*/        OPC_RecordChild1, // #3 = $src3
/*154392*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*154394*/        OPC_CheckPredicate, 9, // Predicate_load
/*154396*/        OPC_MoveParent,
/*154397*/        OPC_CheckType, MVT::f32,
/*154399*/        OPC_CheckPatternPredicate, 174, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*154401*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*154404*/        OPC_EmitMergeInputChains1_2,
/*154405*/        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)
/*154418*/      /*Scope*/ 35, /*->154454*/
/*154419*/        OPC_MoveChild1,
/*154420*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*154423*/        OPC_RecordMemRef,
/*154424*/        OPC_RecordNode, // #1 = 'ld' chained node
/*154425*/        OPC_CheckFoldableChainNode,
/*154426*/        OPC_RecordChild1, // #2 = $src2
/*154427*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*154429*/        OPC_CheckPredicate, 9, // Predicate_load
/*154431*/        OPC_MoveParent,
/*154432*/        OPC_RecordChild2, // #3 = $src3
/*154433*/        OPC_CheckType, MVT::f32,
/*154435*/        OPC_CheckPatternPredicate, 174, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*154437*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*154440*/        OPC_EmitMergeInputChains1_1,
/*154441*/        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)
/*154454*/      /*Scope*/ 35, /*->154490*/
/*154455*/        OPC_RecordChild1, // #1 = $src2
/*154456*/        OPC_MoveChild2,
/*154457*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*154460*/        OPC_RecordMemRef,
/*154461*/        OPC_RecordNode, // #2 = 'ld' chained node
/*154462*/        OPC_CheckFoldableChainNode,
/*154463*/        OPC_RecordChild1, // #3 = $src3
/*154464*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*154466*/        OPC_CheckPredicate, 9, // Predicate_load
/*154468*/        OPC_MoveParent,
/*154469*/        OPC_CheckType, MVT::f64,
/*154471*/        OPC_CheckPatternPredicate, 174, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*154473*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*154476*/        OPC_EmitMergeInputChains1_2,
/*154477*/        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)
/*154490*/      /*Scope*/ 35, /*->154526*/
/*154491*/        OPC_MoveChild1,
/*154492*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*154495*/        OPC_RecordMemRef,
/*154496*/        OPC_RecordNode, // #1 = 'ld' chained node
/*154497*/        OPC_CheckFoldableChainNode,
/*154498*/        OPC_RecordChild1, // #2 = $src2
/*154499*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*154501*/        OPC_CheckPredicate, 9, // Predicate_load
/*154503*/        OPC_MoveParent,
/*154504*/        OPC_RecordChild2, // #3 = $src3
/*154505*/        OPC_CheckType, MVT::f64,
/*154507*/        OPC_CheckPatternPredicate, 174, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*154509*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*154512*/        OPC_EmitMergeInputChains1_1,
/*154513*/        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)
/*154526*/      /*Scope*/ 35, /*->154562*/
/*154527*/        OPC_RecordChild1, // #1 = $src1
/*154528*/        OPC_MoveChild2,
/*154529*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*154532*/        OPC_RecordMemRef,
/*154533*/        OPC_RecordNode, // #2 = 'ld' chained node
/*154534*/        OPC_CheckFoldableChainNode,
/*154535*/        OPC_RecordChild1, // #3 = $src3
/*154536*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*154538*/        OPC_CheckPredicate, 9, // Predicate_load
/*154540*/        OPC_MoveParent,
/*154541*/        OPC_CheckType, MVT::f32,
/*154543*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*154545*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*154548*/        OPC_EmitMergeInputChains1_2,
/*154549*/        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)
/*154562*/      /*Scope*/ 35, /*->154598*/
/*154563*/        OPC_MoveChild1,
/*154564*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*154567*/        OPC_RecordMemRef,
/*154568*/        OPC_RecordNode, // #1 = 'ld' chained node
/*154569*/        OPC_CheckFoldableChainNode,
/*154570*/        OPC_RecordChild1, // #2 = $src3
/*154571*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*154573*/        OPC_CheckPredicate, 9, // Predicate_load
/*154575*/        OPC_MoveParent,
/*154576*/        OPC_RecordChild2, // #3 = $src1
/*154577*/        OPC_CheckType, MVT::f32,
/*154579*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*154581*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*154584*/        OPC_EmitMergeInputChains1_1,
/*154585*/        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)
/*154598*/      0, /*End of Scope*/
/*154599*/    /*Scope*/ 36, /*->154636*/
/*154600*/      OPC_MoveChild0,
/*154601*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*154604*/      OPC_RecordMemRef,
/*154605*/      OPC_RecordNode, // #0 = 'ld' chained node
/*154606*/      OPC_CheckFoldableChainNode,
/*154607*/      OPC_RecordChild1, // #1 = $src3
/*154608*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*154610*/      OPC_CheckPredicate, 9, // Predicate_load
/*154612*/      OPC_MoveParent,
/*154613*/      OPC_RecordChild1, // #2 = $src1
/*154614*/      OPC_RecordChild2, // #3 = $src2
/*154615*/      OPC_CheckType, MVT::f32,
/*154617*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*154619*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*154622*/      OPC_EmitMergeInputChains1_0,
/*154623*/      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)
/*154636*/    /*Scope*/ 75, /*->154712*/
/*154637*/      OPC_RecordChild0, // #0 = $src2
/*154638*/      OPC_Scope, 35, /*->154675*/ // 2 children in Scope
/*154640*/        OPC_RecordChild1, // #1 = $src1
/*154641*/        OPC_MoveChild2,
/*154642*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*154645*/        OPC_RecordMemRef,
/*154646*/        OPC_RecordNode, // #2 = 'ld' chained node
/*154647*/        OPC_CheckFoldableChainNode,
/*154648*/        OPC_RecordChild1, // #3 = $src3
/*154649*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*154651*/        OPC_CheckPredicate, 9, // Predicate_load
/*154653*/        OPC_MoveParent,
/*154654*/        OPC_CheckType, MVT::f64,
/*154656*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*154658*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*154661*/        OPC_EmitMergeInputChains1_2,
/*154662*/        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)
/*154675*/      /*Scope*/ 35, /*->154711*/
/*154676*/        OPC_MoveChild1,
/*154677*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*154680*/        OPC_RecordMemRef,
/*154681*/        OPC_RecordNode, // #1 = 'ld' chained node
/*154682*/        OPC_CheckFoldableChainNode,
/*154683*/        OPC_RecordChild1, // #2 = $src3
/*154684*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*154686*/        OPC_CheckPredicate, 9, // Predicate_load
/*154688*/        OPC_MoveParent,
/*154689*/        OPC_RecordChild2, // #3 = $src1
/*154690*/        OPC_CheckType, MVT::f64,
/*154692*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*154694*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*154697*/        OPC_EmitMergeInputChains1_1,
/*154698*/        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)
/*154711*/      0, /*End of Scope*/
/*154712*/    /*Scope*/ 82, /*->154795*/
/*154713*/      OPC_MoveChild0,
/*154714*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*154717*/      OPC_RecordMemRef,
/*154718*/      OPC_RecordNode, // #0 = 'ld' chained node
/*154719*/      OPC_CheckFoldableChainNode,
/*154720*/      OPC_RecordChild1, // #1 = $src3
/*154721*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*154723*/      OPC_CheckPredicate, 9, // Predicate_load
/*154725*/      OPC_MoveParent,
/*154726*/      OPC_RecordChild1, // #2 = $src1
/*154727*/      OPC_RecordChild2, // #3 = $src2
/*154728*/      OPC_SwitchType /*2 cases */, 42, MVT::f64,// ->154773
/*154731*/        OPC_Scope, 19, /*->154752*/ // 2 children in Scope
/*154733*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*154735*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*154738*/          OPC_EmitMergeInputChains1_0,
/*154739*/          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)
/*154752*/        /*Scope*/ 19, /*->154772*/
/*154753*/          OPC_CheckPatternPredicate, 174, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*154755*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*154758*/          OPC_EmitMergeInputChains1_0,
/*154759*/          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)
/*154772*/        0, /*End of Scope*/
/*154773*/      /*SwitchType*/ 19, MVT::f32,// ->154794
/*154775*/        OPC_CheckPatternPredicate, 174, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*154777*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*154780*/        OPC_EmitMergeInputChains1_0,
/*154781*/        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)
/*154794*/      0, // EndSwitchType
/*154795*/    /*Scope*/ 34|128,1/*162*/, /*->154959*/
/*154797*/      OPC_RecordChild0, // #0 = $src2
/*154798*/      OPC_Scope, 122, /*->154922*/ // 2 children in Scope
/*154800*/        OPC_RecordChild1, // #1 = $src1
/*154801*/        OPC_Scope, 83, /*->154886*/ // 2 children in Scope
/*154803*/          OPC_RecordChild2, // #2 = $src3
/*154804*/          OPC_SwitchType /*2 cases */, 38, MVT::f32,// ->154845
/*154807*/            OPC_Scope, 11, /*->154820*/ // 3 children in Scope
/*154809*/              OPC_CheckPatternPredicate, 173, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*154811*/              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)
/*154820*/            /*Scope*/ 11, /*->154832*/
/*154821*/              OPC_CheckPatternPredicate, 174, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*154823*/              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)
/*154832*/            /*Scope*/ 11, /*->154844*/
/*154833*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*154835*/              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)
/*154844*/            0, /*End of Scope*/
/*154845*/          /*SwitchType*/ 38, MVT::f64,// ->154885
/*154847*/            OPC_Scope, 11, /*->154860*/ // 3 children in Scope
/*154849*/              OPC_CheckPatternPredicate, 173, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*154851*/              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)
/*154860*/            /*Scope*/ 11, /*->154872*/
/*154861*/              OPC_CheckPatternPredicate, 174, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*154863*/              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)
/*154872*/            /*Scope*/ 11, /*->154884*/
/*154873*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*154875*/              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)
/*154884*/            0, /*End of Scope*/
/*154885*/          0, // EndSwitchType
/*154886*/        /*Scope*/ 34, /*->154921*/
/*154887*/          OPC_MoveChild2,
/*154888*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*154891*/          OPC_RecordMemRef,
/*154892*/          OPC_RecordNode, // #2 = 'ld' chained node
/*154893*/          OPC_CheckFoldableChainNode,
/*154894*/          OPC_RecordChild1, // #3 = $src3
/*154895*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*154897*/          OPC_CheckPredicate, 9, // Predicate_load
/*154899*/          OPC_MoveParent,
/*154900*/          OPC_CheckType, MVT::v4f32,
/*154902*/          OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*154904*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*154907*/          OPC_EmitMergeInputChains1_2,
/*154908*/          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>>) - Complexity = 25
                    // Dst: (VFMSUB213PSm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*154921*/        0, /*End of Scope*/
/*154922*/      /*Scope*/ 35, /*->154958*/
/*154923*/        OPC_MoveChild1,
/*154924*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*154927*/        OPC_RecordMemRef,
/*154928*/        OPC_RecordNode, // #1 = 'ld' chained node
/*154929*/        OPC_CheckFoldableChainNode,
/*154930*/        OPC_RecordChild1, // #2 = $src3
/*154931*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*154933*/        OPC_CheckPredicate, 9, // Predicate_load
/*154935*/        OPC_MoveParent,
/*154936*/        OPC_RecordChild2, // #3 = $src1
/*154937*/        OPC_CheckType, MVT::v4f32,
/*154939*/        OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*154941*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*154944*/        OPC_EmitMergeInputChains1_1,
/*154945*/        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>>, VR128:{ *:[v4f32] }:$src1) - Complexity = 25
                  // Dst: (VFMSUB231PSm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*154958*/      0, /*End of Scope*/
/*154959*/    /*Scope*/ 36, /*->154996*/
/*154960*/      OPC_MoveChild0,
/*154961*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*154964*/      OPC_RecordMemRef,
/*154965*/      OPC_RecordNode, // #0 = 'ld' chained node
/*154966*/      OPC_CheckFoldableChainNode,
/*154967*/      OPC_RecordChild1, // #1 = $src3
/*154968*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*154970*/      OPC_CheckPredicate, 9, // Predicate_load
/*154972*/      OPC_MoveParent,
/*154973*/      OPC_RecordChild1, // #2 = $src1
/*154974*/      OPC_RecordChild2, // #3 = $src2
/*154975*/      OPC_CheckType, MVT::v4f32,
/*154977*/      OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*154979*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*154982*/      OPC_EmitMergeInputChains1_0,
/*154983*/      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>>, VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2) - Complexity = 25
                // Dst: (VFMSUB132PSm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*154996*/    /*Scope*/ 75, /*->155072*/
/*154997*/      OPC_RecordChild0, // #0 = $src2
/*154998*/      OPC_Scope, 35, /*->155035*/ // 2 children in Scope
/*155000*/        OPC_RecordChild1, // #1 = $src1
/*155001*/        OPC_MoveChild2,
/*155002*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*155005*/        OPC_RecordMemRef,
/*155006*/        OPC_RecordNode, // #2 = 'ld' chained node
/*155007*/        OPC_CheckFoldableChainNode,
/*155008*/        OPC_RecordChild1, // #3 = $src3
/*155009*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*155011*/        OPC_CheckPredicate, 9, // Predicate_load
/*155013*/        OPC_MoveParent,
/*155014*/        OPC_CheckType, MVT::v8f32,
/*155016*/        OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*155018*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*155021*/        OPC_EmitMergeInputChains1_2,
/*155022*/        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>>) - Complexity = 25
                  // Dst: (VFMSUB213PSYm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*155035*/      /*Scope*/ 35, /*->155071*/
/*155036*/        OPC_MoveChild1,
/*155037*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*155040*/        OPC_RecordMemRef,
/*155041*/        OPC_RecordNode, // #1 = 'ld' chained node
/*155042*/        OPC_CheckFoldableChainNode,
/*155043*/        OPC_RecordChild1, // #2 = $src3
/*155044*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*155046*/        OPC_CheckPredicate, 9, // Predicate_load
/*155048*/        OPC_MoveParent,
/*155049*/        OPC_RecordChild2, // #3 = $src1
/*155050*/        OPC_CheckType, MVT::v8f32,
/*155052*/        OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*155054*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*155057*/        OPC_EmitMergeInputChains1_1,
/*155058*/        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>>, VR256:{ *:[v8f32] }:$src1) - Complexity = 25
                  // Dst: (VFMSUB231PSYm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*155071*/      0, /*End of Scope*/
/*155072*/    /*Scope*/ 36, /*->155109*/
/*155073*/      OPC_MoveChild0,
/*155074*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*155077*/      OPC_RecordMemRef,
/*155078*/      OPC_RecordNode, // #0 = 'ld' chained node
/*155079*/      OPC_CheckFoldableChainNode,
/*155080*/      OPC_RecordChild1, // #1 = $src3
/*155081*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*155083*/      OPC_CheckPredicate, 9, // Predicate_load
/*155085*/      OPC_MoveParent,
/*155086*/      OPC_RecordChild1, // #2 = $src1
/*155087*/      OPC_RecordChild2, // #3 = $src2
/*155088*/      OPC_CheckType, MVT::v8f32,
/*155090*/      OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*155092*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*155095*/      OPC_EmitMergeInputChains1_0,
/*155096*/      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>>, VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2) - Complexity = 25
                // Dst: (VFMSUB132PSYm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*155109*/    /*Scope*/ 75, /*->155185*/
/*155110*/      OPC_RecordChild0, // #0 = $src2
/*155111*/      OPC_Scope, 35, /*->155148*/ // 2 children in Scope
/*155113*/        OPC_RecordChild1, // #1 = $src1
/*155114*/        OPC_MoveChild2,
/*155115*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*155118*/        OPC_RecordMemRef,
/*155119*/        OPC_RecordNode, // #2 = 'ld' chained node
/*155120*/        OPC_CheckFoldableChainNode,
/*155121*/        OPC_RecordChild1, // #3 = $src3
/*155122*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*155124*/        OPC_CheckPredicate, 9, // Predicate_load
/*155126*/        OPC_MoveParent,
/*155127*/        OPC_CheckType, MVT::v2f64,
/*155129*/        OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*155131*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*155134*/        OPC_EmitMergeInputChains1_2,
/*155135*/        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>>) - Complexity = 25
                  // Dst: (VFMSUB213PDm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*155148*/      /*Scope*/ 35, /*->155184*/
/*155149*/        OPC_MoveChild1,
/*155150*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*155153*/        OPC_RecordMemRef,
/*155154*/        OPC_RecordNode, // #1 = 'ld' chained node
/*155155*/        OPC_CheckFoldableChainNode,
/*155156*/        OPC_RecordChild1, // #2 = $src3
/*155157*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*155159*/        OPC_CheckPredicate, 9, // Predicate_load
/*155161*/        OPC_MoveParent,
/*155162*/        OPC_RecordChild2, // #3 = $src1
/*155163*/        OPC_CheckType, MVT::v2f64,
/*155165*/        OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*155167*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*155170*/        OPC_EmitMergeInputChains1_1,
/*155171*/        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>>, VR128:{ *:[v2f64] }:$src1) - Complexity = 25
                  // Dst: (VFMSUB231PDm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*155184*/      0, /*End of Scope*/
/*155185*/    /*Scope*/ 36, /*->155222*/
/*155186*/      OPC_MoveChild0,
/*155187*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*155190*/      OPC_RecordMemRef,
/*155191*/      OPC_RecordNode, // #0 = 'ld' chained node
/*155192*/      OPC_CheckFoldableChainNode,
/*155193*/      OPC_RecordChild1, // #1 = $src3
/*155194*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*155196*/      OPC_CheckPredicate, 9, // Predicate_load
/*155198*/      OPC_MoveParent,
/*155199*/      OPC_RecordChild1, // #2 = $src1
/*155200*/      OPC_RecordChild2, // #3 = $src2
/*155201*/      OPC_CheckType, MVT::v2f64,
/*155203*/      OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*155205*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*155208*/      OPC_EmitMergeInputChains1_0,
/*155209*/      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>>, VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2) - Complexity = 25
                // Dst: (VFMSUB132PDm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*155222*/    /*Scope*/ 75, /*->155298*/
/*155223*/      OPC_RecordChild0, // #0 = $src2
/*155224*/      OPC_Scope, 35, /*->155261*/ // 2 children in Scope
/*155226*/        OPC_RecordChild1, // #1 = $src1
/*155227*/        OPC_MoveChild2,
/*155228*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*155231*/        OPC_RecordMemRef,
/*155232*/        OPC_RecordNode, // #2 = 'ld' chained node
/*155233*/        OPC_CheckFoldableChainNode,
/*155234*/        OPC_RecordChild1, // #3 = $src3
/*155235*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*155237*/        OPC_CheckPredicate, 9, // Predicate_load
/*155239*/        OPC_MoveParent,
/*155240*/        OPC_CheckType, MVT::v4f64,
/*155242*/        OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*155244*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*155247*/        OPC_EmitMergeInputChains1_2,
/*155248*/        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>>) - Complexity = 25
                  // Dst: (VFMSUB213PDYm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*155261*/      /*Scope*/ 35, /*->155297*/
/*155262*/        OPC_MoveChild1,
/*155263*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*155266*/        OPC_RecordMemRef,
/*155267*/        OPC_RecordNode, // #1 = 'ld' chained node
/*155268*/        OPC_CheckFoldableChainNode,
/*155269*/        OPC_RecordChild1, // #2 = $src3
/*155270*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*155272*/        OPC_CheckPredicate, 9, // Predicate_load
/*155274*/        OPC_MoveParent,
/*155275*/        OPC_RecordChild2, // #3 = $src1
/*155276*/        OPC_CheckType, MVT::v4f64,
/*155278*/        OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*155280*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*155283*/        OPC_EmitMergeInputChains1_1,
/*155284*/        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>>, VR256:{ *:[v4f64] }:$src1) - Complexity = 25
                  // Dst: (VFMSUB231PDYm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*155297*/      0, /*End of Scope*/
/*155298*/    /*Scope*/ 36, /*->155335*/
/*155299*/      OPC_MoveChild0,
/*155300*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*155303*/      OPC_RecordMemRef,
/*155304*/      OPC_RecordNode, // #0 = 'ld' chained node
/*155305*/      OPC_CheckFoldableChainNode,
/*155306*/      OPC_RecordChild1, // #1 = $src3
/*155307*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*155309*/      OPC_CheckPredicate, 9, // Predicate_load
/*155311*/      OPC_MoveParent,
/*155312*/      OPC_RecordChild1, // #2 = $src1
/*155313*/      OPC_RecordChild2, // #3 = $src2
/*155314*/      OPC_CheckType, MVT::v4f64,
/*155316*/      OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*155318*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*155321*/      OPC_EmitMergeInputChains1_0,
/*155322*/      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>>, VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2) - Complexity = 25
                // Dst: (VFMSUB132PDYm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*155335*/    /*Scope*/ 115|128,6/*883*/, /*->156220*/
/*155337*/      OPC_RecordChild0, // #0 = $src1
/*155338*/      OPC_Scope, 35, /*->155375*/ // 10 children in Scope
/*155340*/        OPC_RecordChild1, // #1 = $src2
/*155341*/        OPC_MoveChild2,
/*155342*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*155345*/        OPC_RecordMemRef,
/*155346*/        OPC_RecordNode, // #2 = 'ld' chained node
/*155347*/        OPC_CheckFoldableChainNode,
/*155348*/        OPC_RecordChild1, // #3 = $src3
/*155349*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*155351*/        OPC_CheckPredicate, 9, // Predicate_load
/*155353*/        OPC_MoveParent,
/*155354*/        OPC_CheckType, MVT::v4f32,
/*155356*/        OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*155358*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*155361*/        OPC_EmitMergeInputChains1_2,
/*155362*/        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>>) - Complexity = 25
                  // Dst: (VFMSUBPS4rm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*155375*/      /*Scope*/ 35, /*->155411*/
/*155376*/        OPC_MoveChild1,
/*155377*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*155380*/        OPC_RecordMemRef,
/*155381*/        OPC_RecordNode, // #1 = 'ld' chained node
/*155382*/        OPC_CheckFoldableChainNode,
/*155383*/        OPC_RecordChild1, // #2 = $src2
/*155384*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*155386*/        OPC_CheckPredicate, 9, // Predicate_load
/*155388*/        OPC_MoveParent,
/*155389*/        OPC_RecordChild2, // #3 = $src3
/*155390*/        OPC_CheckType, MVT::v4f32,
/*155392*/        OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*155394*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*155397*/        OPC_EmitMergeInputChains1_1,
/*155398*/        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>>, VR128:{ *:[v4f32] }:$src3) - Complexity = 25
                  // Dst: (VFMSUBPS4mr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v4f32] }:$src3)
/*155411*/      /*Scope*/ 35, /*->155447*/
/*155412*/        OPC_RecordChild1, // #1 = $src2
/*155413*/        OPC_MoveChild2,
/*155414*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*155417*/        OPC_RecordMemRef,
/*155418*/        OPC_RecordNode, // #2 = 'ld' chained node
/*155419*/        OPC_CheckFoldableChainNode,
/*155420*/        OPC_RecordChild1, // #3 = $src3
/*155421*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*155423*/        OPC_CheckPredicate, 9, // Predicate_load
/*155425*/        OPC_MoveParent,
/*155426*/        OPC_CheckType, MVT::v8f32,
/*155428*/        OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*155430*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*155433*/        OPC_EmitMergeInputChains1_2,
/*155434*/        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>>) - Complexity = 25
                  // Dst: (VFMSUBPS4Yrm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*155447*/      /*Scope*/ 35, /*->155483*/
/*155448*/        OPC_MoveChild1,
/*155449*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*155452*/        OPC_RecordMemRef,
/*155453*/        OPC_RecordNode, // #1 = 'ld' chained node
/*155454*/        OPC_CheckFoldableChainNode,
/*155455*/        OPC_RecordChild1, // #2 = $src2
/*155456*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*155458*/        OPC_CheckPredicate, 9, // Predicate_load
/*155460*/        OPC_MoveParent,
/*155461*/        OPC_RecordChild2, // #3 = $src3
/*155462*/        OPC_CheckType, MVT::v8f32,
/*155464*/        OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*155466*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*155469*/        OPC_EmitMergeInputChains1_1,
/*155470*/        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>>, VR256:{ *:[v8f32] }:$src3) - Complexity = 25
                  // Dst: (VFMSUBPS4Ymr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v8f32] }:$src3)
/*155483*/      /*Scope*/ 35, /*->155519*/
/*155484*/        OPC_RecordChild1, // #1 = $src2
/*155485*/        OPC_MoveChild2,
/*155486*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*155489*/        OPC_RecordMemRef,
/*155490*/        OPC_RecordNode, // #2 = 'ld' chained node
/*155491*/        OPC_CheckFoldableChainNode,
/*155492*/        OPC_RecordChild1, // #3 = $src3
/*155493*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*155495*/        OPC_CheckPredicate, 9, // Predicate_load
/*155497*/        OPC_MoveParent,
/*155498*/        OPC_CheckType, MVT::v2f64,
/*155500*/        OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*155502*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*155505*/        OPC_EmitMergeInputChains1_2,
/*155506*/        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>>) - Complexity = 25
                  // Dst: (VFMSUBPD4rm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*155519*/      /*Scope*/ 35, /*->155555*/
/*155520*/        OPC_MoveChild1,
/*155521*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*155524*/        OPC_RecordMemRef,
/*155525*/        OPC_RecordNode, // #1 = 'ld' chained node
/*155526*/        OPC_CheckFoldableChainNode,
/*155527*/        OPC_RecordChild1, // #2 = $src2
/*155528*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*155530*/        OPC_CheckPredicate, 9, // Predicate_load
/*155532*/        OPC_MoveParent,
/*155533*/        OPC_RecordChild2, // #3 = $src3
/*155534*/        OPC_CheckType, MVT::v2f64,
/*155536*/        OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*155538*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*155541*/        OPC_EmitMergeInputChains1_1,
/*155542*/        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>>, VR128:{ *:[v2f64] }:$src3) - Complexity = 25
                  // Dst: (VFMSUBPD4mr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v2f64] }:$src3)
/*155555*/      /*Scope*/ 35, /*->155591*/
/*155556*/        OPC_RecordChild1, // #1 = $src2
/*155557*/        OPC_MoveChild2,
/*155558*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*155561*/        OPC_RecordMemRef,
/*155562*/        OPC_RecordNode, // #2 = 'ld' chained node
/*155563*/        OPC_CheckFoldableChainNode,
/*155564*/        OPC_RecordChild1, // #3 = $src3
/*155565*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*155567*/        OPC_CheckPredicate, 9, // Predicate_load
/*155569*/        OPC_MoveParent,
/*155570*/        OPC_CheckType, MVT::v4f64,
/*155572*/        OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*155574*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*155577*/        OPC_EmitMergeInputChains1_2,
/*155578*/        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>>) - Complexity = 25
                  // Dst: (VFMSUBPD4Yrm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*155591*/      /*Scope*/ 35, /*->155627*/
/*155592*/        OPC_MoveChild1,
/*155593*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*155596*/        OPC_RecordMemRef,
/*155597*/        OPC_RecordNode, // #1 = 'ld' chained node
/*155598*/        OPC_CheckFoldableChainNode,
/*155599*/        OPC_RecordChild1, // #2 = $src2
/*155600*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*155602*/        OPC_CheckPredicate, 9, // Predicate_load
/*155604*/        OPC_MoveParent,
/*155605*/        OPC_RecordChild2, // #3 = $src3
/*155606*/        OPC_CheckType, MVT::v4f64,
/*155608*/        OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*155610*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*155613*/        OPC_EmitMergeInputChains1_1,
/*155614*/        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>>, VR256:{ *:[v4f64] }:$src3) - Complexity = 25
                  // Dst: (VFMSUBPD4Ymr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v4f64] }:$src3)
/*155627*/      /*Scope*/ 37|128,2/*293*/, /*->155922*/
/*155629*/        OPC_RecordChild1, // #1 = $src1
/*155630*/        OPC_MoveChild2,
/*155631*/        OPC_SwitchOpcode /*2 cases */, 9|128,1/*137*/, TARGET_VAL(ISD::LOAD),// ->155773
/*155636*/          OPC_RecordMemRef,
/*155637*/          OPC_RecordNode, // #2 = 'ld' chained node
/*155638*/          OPC_CheckFoldableChainNode,
/*155639*/          OPC_RecordChild1, // #3 = $src3
/*155640*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*155642*/          OPC_CheckPredicate, 9, // Predicate_load
/*155644*/          OPC_MoveParent,
/*155645*/          OPC_SwitchType /*6 cases */, 19, MVT::v16f32,// ->155667
/*155648*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*155650*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*155653*/            OPC_EmitMergeInputChains1_2,
/*155654*/            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>>) - Complexity = 25
                      // Dst: (VFMSUB213PSZm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*155667*/          /*SwitchType*/ 19, MVT::v8f32,// ->155688
/*155669*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*155671*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*155674*/            OPC_EmitMergeInputChains1_2,
/*155675*/            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>>) - Complexity = 25
                      // Dst: (VFMSUB213PSZ256m:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*155688*/          /*SwitchType*/ 19, MVT::v4f32,// ->155709
/*155690*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*155692*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*155695*/            OPC_EmitMergeInputChains1_2,
/*155696*/            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>>) - Complexity = 25
                      // Dst: (VFMSUB213PSZ128m:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*155709*/          /*SwitchType*/ 19, MVT::v8f64,// ->155730
/*155711*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*155713*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*155716*/            OPC_EmitMergeInputChains1_2,
/*155717*/            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>>) - Complexity = 25
                      // Dst: (VFMSUB213PDZm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*155730*/          /*SwitchType*/ 19, MVT::v4f64,// ->155751
/*155732*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*155734*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*155737*/            OPC_EmitMergeInputChains1_2,
/*155738*/            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>>) - Complexity = 25
                      // Dst: (VFMSUB213PDZ256m:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*155751*/          /*SwitchType*/ 19, MVT::v2f64,// ->155772
/*155753*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*155755*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*155758*/            OPC_EmitMergeInputChains1_2,
/*155759*/            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>>) - Complexity = 25
                      // Dst: (VFMSUB213PDZ128m:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*155772*/          0, // EndSwitchType
/*155773*/        /*SwitchOpcode*/ 16|128,1/*144*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->155921
/*155777*/          OPC_RecordMemRef,
/*155778*/          OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*155779*/          OPC_CheckFoldableChainNode,
/*155780*/          OPC_RecordChild1, // #3 = $src3
/*155781*/          OPC_Scope, 68, /*->155851*/ // 2 children in Scope
/*155783*/            OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*155785*/            OPC_MoveParent,
/*155786*/            OPC_SwitchType /*3 cases */, 19, MVT::v16f32,// ->155808
/*155789*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*155791*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*155794*/              OPC_EmitMergeInputChains1_2,
/*155795*/              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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VFMSUB213PSZmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*155808*/            /*SwitchType*/ 19, MVT::v8f32,// ->155829
/*155810*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*155812*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*155815*/              OPC_EmitMergeInputChains1_2,
/*155816*/              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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VFMSUB213PSZ256mb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*155829*/            /*SwitchType*/ 19, MVT::v4f32,// ->155850
/*155831*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*155833*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*155836*/              OPC_EmitMergeInputChains1_2,
/*155837*/              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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VFMSUB213PSZ128mb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*155850*/            0, // EndSwitchType
/*155851*/          /*Scope*/ 68, /*->155920*/
/*155852*/            OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*155854*/            OPC_MoveParent,
/*155855*/            OPC_SwitchType /*3 cases */, 19, MVT::v8f64,// ->155877
/*155858*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*155860*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*155863*/              OPC_EmitMergeInputChains1_2,
/*155864*/              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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VFMSUB213PDZmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*155877*/            /*SwitchType*/ 19, MVT::v4f64,// ->155898
/*155879*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*155881*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*155884*/              OPC_EmitMergeInputChains1_2,
/*155885*/              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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VFMSUB213PDZ256mb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*155898*/            /*SwitchType*/ 19, MVT::v2f64,// ->155919
/*155900*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*155902*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*155905*/              OPC_EmitMergeInputChains1_2,
/*155906*/              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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VFMSUB213PDZ128mb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*155919*/            0, // EndSwitchType
/*155920*/          0, /*End of Scope*/
/*155921*/        0, // EndSwitchOpcode
/*155922*/      /*Scope*/ 39|128,2/*295*/, /*->156219*/
/*155924*/        OPC_MoveChild1,
/*155925*/        OPC_SwitchOpcode /*2 cases */, 10|128,1/*138*/, TARGET_VAL(ISD::LOAD),// ->156068
/*155930*/          OPC_RecordMemRef,
/*155931*/          OPC_RecordNode, // #1 = 'ld' chained node
/*155932*/          OPC_CheckFoldableChainNode,
/*155933*/          OPC_RecordChild1, // #2 = $src3
/*155934*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*155936*/          OPC_CheckPredicate, 9, // Predicate_load
/*155938*/          OPC_MoveParent,
/*155939*/          OPC_RecordChild2, // #3 = $src1
/*155940*/          OPC_SwitchType /*6 cases */, 19, MVT::v16f32,// ->155962
/*155943*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*155945*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*155948*/            OPC_EmitMergeInputChains1_1,
/*155949*/            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>>, VR512:{ *:[v16f32] }:$src1) - Complexity = 25
                      // Dst: (VFMSUB231PSZm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*155962*/          /*SwitchType*/ 19, MVT::v8f32,// ->155983
/*155964*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*155966*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*155969*/            OPC_EmitMergeInputChains1_1,
/*155970*/            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>>, VR256X:{ *:[v8f32] }:$src1) - Complexity = 25
                      // Dst: (VFMSUB231PSZ256m:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*155983*/          /*SwitchType*/ 19, MVT::v4f32,// ->156004
/*155985*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*155987*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*155990*/            OPC_EmitMergeInputChains1_1,
/*155991*/            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>>, VR128X:{ *:[v4f32] }:$src1) - Complexity = 25
                      // Dst: (VFMSUB231PSZ128m:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*156004*/          /*SwitchType*/ 19, MVT::v8f64,// ->156025
/*156006*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*156008*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*156011*/            OPC_EmitMergeInputChains1_1,
/*156012*/            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>>, VR512:{ *:[v8f64] }:$src1) - Complexity = 25
                      // Dst: (VFMSUB231PDZm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*156025*/          /*SwitchType*/ 19, MVT::v4f64,// ->156046
/*156027*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*156029*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*156032*/            OPC_EmitMergeInputChains1_1,
/*156033*/            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>>, VR256X:{ *:[v4f64] }:$src1) - Complexity = 25
                      // Dst: (VFMSUB231PDZ256m:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*156046*/          /*SwitchType*/ 19, MVT::v2f64,// ->156067
/*156048*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*156050*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*156053*/            OPC_EmitMergeInputChains1_1,
/*156054*/            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>>, VR128X:{ *:[v2f64] }:$src1) - Complexity = 25
                      // Dst: (VFMSUB231PDZ128m:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*156067*/          0, // EndSwitchType
/*156068*/        /*SwitchOpcode*/ 18|128,1/*146*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->156218
/*156072*/          OPC_RecordMemRef,
/*156073*/          OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*156074*/          OPC_CheckFoldableChainNode,
/*156075*/          OPC_RecordChild1, // #2 = $src3
/*156076*/          OPC_Scope, 69, /*->156147*/ // 2 children in Scope
/*156078*/            OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*156080*/            OPC_MoveParent,
/*156081*/            OPC_RecordChild2, // #3 = $src1
/*156082*/            OPC_SwitchType /*3 cases */, 19, MVT::v16f32,// ->156104
/*156085*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*156087*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*156090*/              OPC_EmitMergeInputChains1_1,
/*156091*/              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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src1) - Complexity = 25
                        // Dst: (VFMSUB231PSZmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*156104*/            /*SwitchType*/ 19, MVT::v8f32,// ->156125
/*156106*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*156108*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*156111*/              OPC_EmitMergeInputChains1_1,
/*156112*/              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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1) - Complexity = 25
                        // Dst: (VFMSUB231PSZ256mb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*156125*/            /*SwitchType*/ 19, MVT::v4f32,// ->156146
/*156127*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*156129*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*156132*/              OPC_EmitMergeInputChains1_1,
/*156133*/              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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1) - Complexity = 25
                        // Dst: (VFMSUB231PSZ128mb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*156146*/            0, // EndSwitchType
/*156147*/          /*Scope*/ 69, /*->156217*/
/*156148*/            OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*156150*/            OPC_MoveParent,
/*156151*/            OPC_RecordChild2, // #3 = $src1
/*156152*/            OPC_SwitchType /*3 cases */, 19, MVT::v8f64,// ->156174
/*156155*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*156157*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*156160*/              OPC_EmitMergeInputChains1_1,
/*156161*/              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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src1) - Complexity = 25
                        // Dst: (VFMSUB231PDZmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*156174*/            /*SwitchType*/ 19, MVT::v4f64,// ->156195
/*156176*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*156178*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*156181*/              OPC_EmitMergeInputChains1_1,
/*156182*/              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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1) - Complexity = 25
                        // Dst: (VFMSUB231PDZ256mb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*156195*/            /*SwitchType*/ 19, MVT::v2f64,// ->156216
/*156197*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*156199*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*156202*/              OPC_EmitMergeInputChains1_1,
/*156203*/              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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1) - Complexity = 25
                        // Dst: (VFMSUB231PDZ128mb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*156216*/            0, // EndSwitchType
/*156217*/          0, /*End of Scope*/
/*156218*/        0, // EndSwitchOpcode
/*156219*/      0, /*End of Scope*/
/*156220*/    /*Scope*/ 6|128,3/*390*/, /*->156612*/
/*156222*/      OPC_MoveChild0,
/*156223*/      OPC_SwitchOpcode /*2 cases */, 103|128,1/*231*/, TARGET_VAL(ISD::LOAD),// ->156459
/*156228*/        OPC_RecordMemRef,
/*156229*/        OPC_RecordNode, // #0 = 'ld' chained node
/*156230*/        OPC_CheckFoldableChainNode,
/*156231*/        OPC_RecordChild1, // #1 = $src3
/*156232*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*156234*/        OPC_CheckPredicate, 9, // Predicate_load
/*156236*/        OPC_MoveParent,
/*156237*/        OPC_RecordChild1, // #2 = $src1
/*156238*/        OPC_RecordChild2, // #3 = $src2
/*156239*/        OPC_SwitchType /*6 cases */, 19, MVT::v16f32,// ->156261
/*156242*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*156244*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*156247*/          OPC_EmitMergeInputChains1_0,
/*156248*/          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>>, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2) - Complexity = 25
                    // Dst: (VFMSUB132PSZm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*156261*/        /*SwitchType*/ 42, MVT::v8f32,// ->156305
/*156263*/          OPC_Scope, 19, /*->156284*/ // 2 children in Scope
/*156265*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*156267*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*156270*/            OPC_EmitMergeInputChains1_0,
/*156271*/            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>>, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2) - Complexity = 25
                      // Dst: (VFMSUB132PSZ256m:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*156284*/          /*Scope*/ 19, /*->156304*/
/*156285*/            OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*156287*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*156290*/            OPC_EmitMergeInputChains1_0,
/*156291*/            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>>, VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src3) - Complexity = 25
                      // Dst: (VFMSUBPS4Ymr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v8f32] }:$src3)
/*156304*/          0, /*End of Scope*/
/*156305*/        /*SwitchType*/ 42, MVT::v4f32,// ->156349
/*156307*/          OPC_Scope, 19, /*->156328*/ // 2 children in Scope
/*156309*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*156311*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*156314*/            OPC_EmitMergeInputChains1_0,
/*156315*/            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>>, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2) - Complexity = 25
                      // Dst: (VFMSUB132PSZ128m:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*156328*/          /*Scope*/ 19, /*->156348*/
/*156329*/            OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*156331*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*156334*/            OPC_EmitMergeInputChains1_0,
/*156335*/            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>>, VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src3) - Complexity = 25
                      // Dst: (VFMSUBPS4mr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v4f32] }:$src3)
/*156348*/          0, /*End of Scope*/
/*156349*/        /*SwitchType*/ 19, MVT::v8f64,// ->156370
/*156351*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*156353*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*156356*/          OPC_EmitMergeInputChains1_0,
/*156357*/          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>>, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2) - Complexity = 25
                    // Dst: (VFMSUB132PDZm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*156370*/        /*SwitchType*/ 42, MVT::v4f64,// ->156414
/*156372*/          OPC_Scope, 19, /*->156393*/ // 2 children in Scope
/*156374*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*156376*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*156379*/            OPC_EmitMergeInputChains1_0,
/*156380*/            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>>, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2) - Complexity = 25
                      // Dst: (VFMSUB132PDZ256m:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*156393*/          /*Scope*/ 19, /*->156413*/
/*156394*/            OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*156396*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*156399*/            OPC_EmitMergeInputChains1_0,
/*156400*/            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>>, VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src3) - Complexity = 25
                      // Dst: (VFMSUBPD4Ymr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v4f64] }:$src3)
/*156413*/          0, /*End of Scope*/
/*156414*/        /*SwitchType*/ 42, MVT::v2f64,// ->156458
/*156416*/          OPC_Scope, 19, /*->156437*/ // 2 children in Scope
/*156418*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*156420*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*156423*/            OPC_EmitMergeInputChains1_0,
/*156424*/            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>>, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2) - Complexity = 25
                      // Dst: (VFMSUB132PDZ128m:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*156437*/          /*Scope*/ 19, /*->156457*/
/*156438*/            OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*156440*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*156443*/            OPC_EmitMergeInputChains1_0,
/*156444*/            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>>, VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src3) - Complexity = 25
                      // Dst: (VFMSUBPD4mr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v2f64] }:$src3)
/*156457*/          0, /*End of Scope*/
/*156458*/        0, // EndSwitchType
/*156459*/      /*SwitchOpcode*/ 20|128,1/*148*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->156611
/*156463*/        OPC_RecordMemRef,
/*156464*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*156465*/        OPC_CheckFoldableChainNode,
/*156466*/        OPC_RecordChild1, // #1 = $src3
/*156467*/        OPC_Scope, 70, /*->156539*/ // 2 children in Scope
/*156469*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*156471*/          OPC_MoveParent,
/*156472*/          OPC_RecordChild1, // #2 = $src1
/*156473*/          OPC_RecordChild2, // #3 = $src2
/*156474*/          OPC_SwitchType /*3 cases */, 19, MVT::v16f32,// ->156496
/*156477*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*156479*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*156482*/            OPC_EmitMergeInputChains1_0,
/*156483*/            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] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2) - Complexity = 25
                      // Dst: (VFMSUB132PSZmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*156496*/          /*SwitchType*/ 19, MVT::v8f32,// ->156517
/*156498*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*156500*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*156503*/            OPC_EmitMergeInputChains1_0,
/*156504*/            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] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2) - Complexity = 25
                      // Dst: (VFMSUB132PSZ256mb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*156517*/          /*SwitchType*/ 19, MVT::v4f32,// ->156538
/*156519*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*156521*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*156524*/            OPC_EmitMergeInputChains1_0,
/*156525*/            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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2) - Complexity = 25
                      // Dst: (VFMSUB132PSZ128mb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*156538*/          0, // EndSwitchType
/*156539*/        /*Scope*/ 70, /*->156610*/
/*156540*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*156542*/          OPC_MoveParent,
/*156543*/          OPC_RecordChild1, // #2 = $src1
/*156544*/          OPC_RecordChild2, // #3 = $src2
/*156545*/          OPC_SwitchType /*3 cases */, 19, MVT::v8f64,// ->156567
/*156548*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*156550*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*156553*/            OPC_EmitMergeInputChains1_0,
/*156554*/            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] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2) - Complexity = 25
                      // Dst: (VFMSUB132PDZmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*156567*/          /*SwitchType*/ 19, MVT::v4f64,// ->156588
/*156569*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*156571*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*156574*/            OPC_EmitMergeInputChains1_0,
/*156575*/            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] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2) - Complexity = 25
                      // Dst: (VFMSUB132PDZ256mb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*156588*/          /*SwitchType*/ 19, MVT::v2f64,// ->156609
/*156590*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*156592*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*156595*/            OPC_EmitMergeInputChains1_0,
/*156596*/            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] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2) - Complexity = 25
                      // Dst: (VFMSUB132PDZ128mb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*156609*/          0, // EndSwitchType
/*156610*/        0, /*End of Scope*/
/*156611*/      0, // EndSwitchOpcode
/*156612*/    /*Scope*/ 63|128,1/*191*/, /*->156805*/
/*156614*/      OPC_RecordChild0, // #0 = $src2
/*156615*/      OPC_RecordChild1, // #1 = $src1
/*156616*/      OPC_RecordChild2, // #2 = $src3
/*156617*/      OPC_SwitchType /*6 cases */, 38, MVT::v4f32,// ->156658
/*156620*/        OPC_Scope, 11, /*->156633*/ // 3 children in Scope
/*156622*/          OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*156624*/          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)
/*156633*/        /*Scope*/ 11, /*->156645*/
/*156634*/          OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*156636*/          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)
/*156645*/        /*Scope*/ 11, /*->156657*/
/*156646*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*156648*/          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)
/*156657*/        0, /*End of Scope*/
/*156658*/      /*SwitchType*/ 38, MVT::v8f32,// ->156698
/*156660*/        OPC_Scope, 11, /*->156673*/ // 3 children in Scope
/*156662*/          OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*156664*/          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)
/*156673*/        /*Scope*/ 11, /*->156685*/
/*156674*/          OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*156676*/          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)
/*156685*/        /*Scope*/ 11, /*->156697*/
/*156686*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*156688*/          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)
/*156697*/        0, /*End of Scope*/
/*156698*/      /*SwitchType*/ 38, MVT::v2f64,// ->156738
/*156700*/        OPC_Scope, 11, /*->156713*/ // 3 children in Scope
/*156702*/          OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*156704*/          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)
/*156713*/        /*Scope*/ 11, /*->156725*/
/*156714*/          OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*156716*/          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)
/*156725*/        /*Scope*/ 11, /*->156737*/
/*156726*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*156728*/          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)
/*156737*/        0, /*End of Scope*/
/*156738*/      /*SwitchType*/ 38, MVT::v4f64,// ->156778
/*156740*/        OPC_Scope, 11, /*->156753*/ // 3 children in Scope
/*156742*/          OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*156744*/          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)
/*156753*/        /*Scope*/ 11, /*->156765*/
/*156754*/          OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*156756*/          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)
/*156765*/        /*Scope*/ 11, /*->156777*/
/*156766*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*156768*/          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)
/*156777*/        0, /*End of Scope*/
/*156778*/      /*SwitchType*/ 11, MVT::v16f32,// ->156791
/*156780*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*156782*/        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)
/*156791*/      /*SwitchType*/ 11, MVT::v8f64,// ->156804
/*156793*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*156795*/        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)
/*156804*/      0, // EndSwitchType
/*156805*/    0, /*End of Scope*/
/*156806*/  /*SwitchOpcode*/ 95|128,20/*2655*/, TARGET_VAL(X86ISD::FNMADD),// ->159465
/*156810*/    OPC_Scope, 75, /*->156887*/ // 19 children in Scope
/*156812*/      OPC_RecordChild0, // #0 = $src2
/*156813*/      OPC_Scope, 35, /*->156850*/ // 2 children in Scope
/*156815*/        OPC_RecordChild1, // #1 = $src1
/*156816*/        OPC_MoveChild2,
/*156817*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*156820*/        OPC_RecordMemRef,
/*156821*/        OPC_RecordNode, // #2 = 'ld' chained node
/*156822*/        OPC_CheckFoldableChainNode,
/*156823*/        OPC_RecordChild1, // #3 = $src3
/*156824*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*156826*/        OPC_CheckPredicate, 9, // Predicate_load
/*156828*/        OPC_MoveParent,
/*156829*/        OPC_CheckType, MVT::f32,
/*156831*/        OPC_CheckPatternPredicate, 173, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*156833*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*156836*/        OPC_EmitMergeInputChains1_2,
/*156837*/        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)
/*156850*/      /*Scope*/ 35, /*->156886*/
/*156851*/        OPC_MoveChild1,
/*156852*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*156855*/        OPC_RecordMemRef,
/*156856*/        OPC_RecordNode, // #1 = 'ld' chained node
/*156857*/        OPC_CheckFoldableChainNode,
/*156858*/        OPC_RecordChild1, // #2 = $src3
/*156859*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*156861*/        OPC_CheckPredicate, 9, // Predicate_load
/*156863*/        OPC_MoveParent,
/*156864*/        OPC_RecordChild2, // #3 = $src1
/*156865*/        OPC_CheckType, MVT::f32,
/*156867*/        OPC_CheckPatternPredicate, 173, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*156869*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*156872*/        OPC_EmitMergeInputChains1_1,
/*156873*/        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)
/*156886*/      0, /*End of Scope*/
/*156887*/    /*Scope*/ 36, /*->156924*/
/*156888*/      OPC_MoveChild0,
/*156889*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*156892*/      OPC_RecordMemRef,
/*156893*/      OPC_RecordNode, // #0 = 'ld' chained node
/*156894*/      OPC_CheckFoldableChainNode,
/*156895*/      OPC_RecordChild1, // #1 = $src3
/*156896*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*156898*/      OPC_CheckPredicate, 9, // Predicate_load
/*156900*/      OPC_MoveParent,
/*156901*/      OPC_RecordChild1, // #2 = $src1
/*156902*/      OPC_RecordChild2, // #3 = $src2
/*156903*/      OPC_CheckType, MVT::f32,
/*156905*/      OPC_CheckPatternPredicate, 173, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*156907*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*156910*/      OPC_EmitMergeInputChains1_0,
/*156911*/      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)
/*156924*/    /*Scope*/ 75, /*->157000*/
/*156925*/      OPC_RecordChild0, // #0 = $src2
/*156926*/      OPC_Scope, 35, /*->156963*/ // 2 children in Scope
/*156928*/        OPC_RecordChild1, // #1 = $src1
/*156929*/        OPC_MoveChild2,
/*156930*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*156933*/        OPC_RecordMemRef,
/*156934*/        OPC_RecordNode, // #2 = 'ld' chained node
/*156935*/        OPC_CheckFoldableChainNode,
/*156936*/        OPC_RecordChild1, // #3 = $src3
/*156937*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*156939*/        OPC_CheckPredicate, 9, // Predicate_load
/*156941*/        OPC_MoveParent,
/*156942*/        OPC_CheckType, MVT::f64,
/*156944*/        OPC_CheckPatternPredicate, 173, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*156946*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*156949*/        OPC_EmitMergeInputChains1_2,
/*156950*/        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)
/*156963*/      /*Scope*/ 35, /*->156999*/
/*156964*/        OPC_MoveChild1,
/*156965*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*156968*/        OPC_RecordMemRef,
/*156969*/        OPC_RecordNode, // #1 = 'ld' chained node
/*156970*/        OPC_CheckFoldableChainNode,
/*156971*/        OPC_RecordChild1, // #2 = $src3
/*156972*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*156974*/        OPC_CheckPredicate, 9, // Predicate_load
/*156976*/        OPC_MoveParent,
/*156977*/        OPC_RecordChild2, // #3 = $src1
/*156978*/        OPC_CheckType, MVT::f64,
/*156980*/        OPC_CheckPatternPredicate, 173, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*156982*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*156985*/        OPC_EmitMergeInputChains1_1,
/*156986*/        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)
/*156999*/      0, /*End of Scope*/
/*157000*/    /*Scope*/ 36, /*->157037*/
/*157001*/      OPC_MoveChild0,
/*157002*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*157005*/      OPC_RecordMemRef,
/*157006*/      OPC_RecordNode, // #0 = 'ld' chained node
/*157007*/      OPC_CheckFoldableChainNode,
/*157008*/      OPC_RecordChild1, // #1 = $src3
/*157009*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*157011*/      OPC_CheckPredicate, 9, // Predicate_load
/*157013*/      OPC_MoveParent,
/*157014*/      OPC_RecordChild1, // #2 = $src1
/*157015*/      OPC_RecordChild2, // #3 = $src2
/*157016*/      OPC_CheckType, MVT::f64,
/*157018*/      OPC_CheckPatternPredicate, 173, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*157020*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*157023*/      OPC_EmitMergeInputChains1_0,
/*157024*/      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)
/*157037*/    /*Scope*/ 91|128,1/*219*/, /*->157258*/
/*157039*/      OPC_RecordChild0, // #0 = $src1
/*157040*/      OPC_Scope, 35, /*->157077*/ // 6 children in Scope
/*157042*/        OPC_RecordChild1, // #1 = $src2
/*157043*/        OPC_MoveChild2,
/*157044*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*157047*/        OPC_RecordMemRef,
/*157048*/        OPC_RecordNode, // #2 = 'ld' chained node
/*157049*/        OPC_CheckFoldableChainNode,
/*157050*/        OPC_RecordChild1, // #3 = $src3
/*157051*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*157053*/        OPC_CheckPredicate, 9, // Predicate_load
/*157055*/        OPC_MoveParent,
/*157056*/        OPC_CheckType, MVT::f32,
/*157058*/        OPC_CheckPatternPredicate, 174, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*157060*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*157063*/        OPC_EmitMergeInputChains1_2,
/*157064*/        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)
/*157077*/      /*Scope*/ 35, /*->157113*/
/*157078*/        OPC_MoveChild1,
/*157079*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*157082*/        OPC_RecordMemRef,
/*157083*/        OPC_RecordNode, // #1 = 'ld' chained node
/*157084*/        OPC_CheckFoldableChainNode,
/*157085*/        OPC_RecordChild1, // #2 = $src2
/*157086*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*157088*/        OPC_CheckPredicate, 9, // Predicate_load
/*157090*/        OPC_MoveParent,
/*157091*/        OPC_RecordChild2, // #3 = $src3
/*157092*/        OPC_CheckType, MVT::f32,
/*157094*/        OPC_CheckPatternPredicate, 174, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*157096*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*157099*/        OPC_EmitMergeInputChains1_1,
/*157100*/        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)
/*157113*/      /*Scope*/ 35, /*->157149*/
/*157114*/        OPC_RecordChild1, // #1 = $src2
/*157115*/        OPC_MoveChild2,
/*157116*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*157119*/        OPC_RecordMemRef,
/*157120*/        OPC_RecordNode, // #2 = 'ld' chained node
/*157121*/        OPC_CheckFoldableChainNode,
/*157122*/        OPC_RecordChild1, // #3 = $src3
/*157123*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*157125*/        OPC_CheckPredicate, 9, // Predicate_load
/*157127*/        OPC_MoveParent,
/*157128*/        OPC_CheckType, MVT::f64,
/*157130*/        OPC_CheckPatternPredicate, 174, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*157132*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*157135*/        OPC_EmitMergeInputChains1_2,
/*157136*/        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)
/*157149*/      /*Scope*/ 35, /*->157185*/
/*157150*/        OPC_MoveChild1,
/*157151*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*157154*/        OPC_RecordMemRef,
/*157155*/        OPC_RecordNode, // #1 = 'ld' chained node
/*157156*/        OPC_CheckFoldableChainNode,
/*157157*/        OPC_RecordChild1, // #2 = $src2
/*157158*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*157160*/        OPC_CheckPredicate, 9, // Predicate_load
/*157162*/        OPC_MoveParent,
/*157163*/        OPC_RecordChild2, // #3 = $src3
/*157164*/        OPC_CheckType, MVT::f64,
/*157166*/        OPC_CheckPatternPredicate, 174, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*157168*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*157171*/        OPC_EmitMergeInputChains1_1,
/*157172*/        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)
/*157185*/      /*Scope*/ 35, /*->157221*/
/*157186*/        OPC_RecordChild1, // #1 = $src1
/*157187*/        OPC_MoveChild2,
/*157188*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*157191*/        OPC_RecordMemRef,
/*157192*/        OPC_RecordNode, // #2 = 'ld' chained node
/*157193*/        OPC_CheckFoldableChainNode,
/*157194*/        OPC_RecordChild1, // #3 = $src3
/*157195*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*157197*/        OPC_CheckPredicate, 9, // Predicate_load
/*157199*/        OPC_MoveParent,
/*157200*/        OPC_CheckType, MVT::f32,
/*157202*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*157204*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*157207*/        OPC_EmitMergeInputChains1_2,
/*157208*/        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)
/*157221*/      /*Scope*/ 35, /*->157257*/
/*157222*/        OPC_MoveChild1,
/*157223*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*157226*/        OPC_RecordMemRef,
/*157227*/        OPC_RecordNode, // #1 = 'ld' chained node
/*157228*/        OPC_CheckFoldableChainNode,
/*157229*/        OPC_RecordChild1, // #2 = $src3
/*157230*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*157232*/        OPC_CheckPredicate, 9, // Predicate_load
/*157234*/        OPC_MoveParent,
/*157235*/        OPC_RecordChild2, // #3 = $src1
/*157236*/        OPC_CheckType, MVT::f32,
/*157238*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*157240*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*157243*/        OPC_EmitMergeInputChains1_1,
/*157244*/        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)
/*157257*/      0, /*End of Scope*/
/*157258*/    /*Scope*/ 36, /*->157295*/
/*157259*/      OPC_MoveChild0,
/*157260*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*157263*/      OPC_RecordMemRef,
/*157264*/      OPC_RecordNode, // #0 = 'ld' chained node
/*157265*/      OPC_CheckFoldableChainNode,
/*157266*/      OPC_RecordChild1, // #1 = $src3
/*157267*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*157269*/      OPC_CheckPredicate, 9, // Predicate_load
/*157271*/      OPC_MoveParent,
/*157272*/      OPC_RecordChild1, // #2 = $src1
/*157273*/      OPC_RecordChild2, // #3 = $src2
/*157274*/      OPC_CheckType, MVT::f32,
/*157276*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*157278*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*157281*/      OPC_EmitMergeInputChains1_0,
/*157282*/      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)
/*157295*/    /*Scope*/ 75, /*->157371*/
/*157296*/      OPC_RecordChild0, // #0 = $src2
/*157297*/      OPC_Scope, 35, /*->157334*/ // 2 children in Scope
/*157299*/        OPC_RecordChild1, // #1 = $src1
/*157300*/        OPC_MoveChild2,
/*157301*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*157304*/        OPC_RecordMemRef,
/*157305*/        OPC_RecordNode, // #2 = 'ld' chained node
/*157306*/        OPC_CheckFoldableChainNode,
/*157307*/        OPC_RecordChild1, // #3 = $src3
/*157308*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*157310*/        OPC_CheckPredicate, 9, // Predicate_load
/*157312*/        OPC_MoveParent,
/*157313*/        OPC_CheckType, MVT::f64,
/*157315*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*157317*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*157320*/        OPC_EmitMergeInputChains1_2,
/*157321*/        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)
/*157334*/      /*Scope*/ 35, /*->157370*/
/*157335*/        OPC_MoveChild1,
/*157336*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*157339*/        OPC_RecordMemRef,
/*157340*/        OPC_RecordNode, // #1 = 'ld' chained node
/*157341*/        OPC_CheckFoldableChainNode,
/*157342*/        OPC_RecordChild1, // #2 = $src3
/*157343*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*157345*/        OPC_CheckPredicate, 9, // Predicate_load
/*157347*/        OPC_MoveParent,
/*157348*/        OPC_RecordChild2, // #3 = $src1
/*157349*/        OPC_CheckType, MVT::f64,
/*157351*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*157353*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*157356*/        OPC_EmitMergeInputChains1_1,
/*157357*/        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)
/*157370*/      0, /*End of Scope*/
/*157371*/    /*Scope*/ 82, /*->157454*/
/*157372*/      OPC_MoveChild0,
/*157373*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*157376*/      OPC_RecordMemRef,
/*157377*/      OPC_RecordNode, // #0 = 'ld' chained node
/*157378*/      OPC_CheckFoldableChainNode,
/*157379*/      OPC_RecordChild1, // #1 = $src3
/*157380*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*157382*/      OPC_CheckPredicate, 9, // Predicate_load
/*157384*/      OPC_MoveParent,
/*157385*/      OPC_RecordChild1, // #2 = $src1
/*157386*/      OPC_RecordChild2, // #3 = $src2
/*157387*/      OPC_SwitchType /*2 cases */, 42, MVT::f64,// ->157432
/*157390*/        OPC_Scope, 19, /*->157411*/ // 2 children in Scope
/*157392*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*157394*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*157397*/          OPC_EmitMergeInputChains1_0,
/*157398*/          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)
/*157411*/        /*Scope*/ 19, /*->157431*/
/*157412*/          OPC_CheckPatternPredicate, 174, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*157414*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*157417*/          OPC_EmitMergeInputChains1_0,
/*157418*/          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)
/*157431*/        0, /*End of Scope*/
/*157432*/      /*SwitchType*/ 19, MVT::f32,// ->157453
/*157434*/        OPC_CheckPatternPredicate, 174, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*157436*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*157439*/        OPC_EmitMergeInputChains1_0,
/*157440*/        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)
/*157453*/      0, // EndSwitchType
/*157454*/    /*Scope*/ 34|128,1/*162*/, /*->157618*/
/*157456*/      OPC_RecordChild0, // #0 = $src2
/*157457*/      OPC_Scope, 122, /*->157581*/ // 2 children in Scope
/*157459*/        OPC_RecordChild1, // #1 = $src1
/*157460*/        OPC_Scope, 83, /*->157545*/ // 2 children in Scope
/*157462*/          OPC_RecordChild2, // #2 = $src3
/*157463*/          OPC_SwitchType /*2 cases */, 38, MVT::f32,// ->157504
/*157466*/            OPC_Scope, 11, /*->157479*/ // 3 children in Scope
/*157468*/              OPC_CheckPatternPredicate, 173, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*157470*/              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)
/*157479*/            /*Scope*/ 11, /*->157491*/
/*157480*/              OPC_CheckPatternPredicate, 174, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*157482*/              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)
/*157491*/            /*Scope*/ 11, /*->157503*/
/*157492*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*157494*/              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)
/*157503*/            0, /*End of Scope*/
/*157504*/          /*SwitchType*/ 38, MVT::f64,// ->157544
/*157506*/            OPC_Scope, 11, /*->157519*/ // 3 children in Scope
/*157508*/              OPC_CheckPatternPredicate, 173, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*157510*/              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)
/*157519*/            /*Scope*/ 11, /*->157531*/
/*157520*/              OPC_CheckPatternPredicate, 174, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*157522*/              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)
/*157531*/            /*Scope*/ 11, /*->157543*/
/*157532*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*157534*/              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)
/*157543*/            0, /*End of Scope*/
/*157544*/          0, // EndSwitchType
/*157545*/        /*Scope*/ 34, /*->157580*/
/*157546*/          OPC_MoveChild2,
/*157547*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*157550*/          OPC_RecordMemRef,
/*157551*/          OPC_RecordNode, // #2 = 'ld' chained node
/*157552*/          OPC_CheckFoldableChainNode,
/*157553*/          OPC_RecordChild1, // #3 = $src3
/*157554*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*157556*/          OPC_CheckPredicate, 9, // Predicate_load
/*157558*/          OPC_MoveParent,
/*157559*/          OPC_CheckType, MVT::v4f32,
/*157561*/          OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*157563*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*157566*/          OPC_EmitMergeInputChains1_2,
/*157567*/          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>>) - Complexity = 25
                    // Dst: (VFNMADD213PSm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*157580*/        0, /*End of Scope*/
/*157581*/      /*Scope*/ 35, /*->157617*/
/*157582*/        OPC_MoveChild1,
/*157583*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*157586*/        OPC_RecordMemRef,
/*157587*/        OPC_RecordNode, // #1 = 'ld' chained node
/*157588*/        OPC_CheckFoldableChainNode,
/*157589*/        OPC_RecordChild1, // #2 = $src3
/*157590*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*157592*/        OPC_CheckPredicate, 9, // Predicate_load
/*157594*/        OPC_MoveParent,
/*157595*/        OPC_RecordChild2, // #3 = $src1
/*157596*/        OPC_CheckType, MVT::v4f32,
/*157598*/        OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*157600*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*157603*/        OPC_EmitMergeInputChains1_1,
/*157604*/        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>>, VR128:{ *:[v4f32] }:$src1) - Complexity = 25
                  // Dst: (VFNMADD231PSm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*157617*/      0, /*End of Scope*/
/*157618*/    /*Scope*/ 36, /*->157655*/
/*157619*/      OPC_MoveChild0,
/*157620*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*157623*/      OPC_RecordMemRef,
/*157624*/      OPC_RecordNode, // #0 = 'ld' chained node
/*157625*/      OPC_CheckFoldableChainNode,
/*157626*/      OPC_RecordChild1, // #1 = $src3
/*157627*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*157629*/      OPC_CheckPredicate, 9, // Predicate_load
/*157631*/      OPC_MoveParent,
/*157632*/      OPC_RecordChild1, // #2 = $src1
/*157633*/      OPC_RecordChild2, // #3 = $src2
/*157634*/      OPC_CheckType, MVT::v4f32,
/*157636*/      OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*157638*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*157641*/      OPC_EmitMergeInputChains1_0,
/*157642*/      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>>, VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2) - Complexity = 25
                // Dst: (VFNMADD132PSm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*157655*/    /*Scope*/ 75, /*->157731*/
/*157656*/      OPC_RecordChild0, // #0 = $src2
/*157657*/      OPC_Scope, 35, /*->157694*/ // 2 children in Scope
/*157659*/        OPC_RecordChild1, // #1 = $src1
/*157660*/        OPC_MoveChild2,
/*157661*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*157664*/        OPC_RecordMemRef,
/*157665*/        OPC_RecordNode, // #2 = 'ld' chained node
/*157666*/        OPC_CheckFoldableChainNode,
/*157667*/        OPC_RecordChild1, // #3 = $src3
/*157668*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*157670*/        OPC_CheckPredicate, 9, // Predicate_load
/*157672*/        OPC_MoveParent,
/*157673*/        OPC_CheckType, MVT::v8f32,
/*157675*/        OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*157677*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*157680*/        OPC_EmitMergeInputChains1_2,
/*157681*/        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>>) - Complexity = 25
                  // Dst: (VFNMADD213PSYm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*157694*/      /*Scope*/ 35, /*->157730*/
/*157695*/        OPC_MoveChild1,
/*157696*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*157699*/        OPC_RecordMemRef,
/*157700*/        OPC_RecordNode, // #1 = 'ld' chained node
/*157701*/        OPC_CheckFoldableChainNode,
/*157702*/        OPC_RecordChild1, // #2 = $src3
/*157703*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*157705*/        OPC_CheckPredicate, 9, // Predicate_load
/*157707*/        OPC_MoveParent,
/*157708*/        OPC_RecordChild2, // #3 = $src1
/*157709*/        OPC_CheckType, MVT::v8f32,
/*157711*/        OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*157713*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*157716*/        OPC_EmitMergeInputChains1_1,
/*157717*/        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>>, VR256:{ *:[v8f32] }:$src1) - Complexity = 25
                  // Dst: (VFNMADD231PSYm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*157730*/      0, /*End of Scope*/
/*157731*/    /*Scope*/ 36, /*->157768*/
/*157732*/      OPC_MoveChild0,
/*157733*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*157736*/      OPC_RecordMemRef,
/*157737*/      OPC_RecordNode, // #0 = 'ld' chained node
/*157738*/      OPC_CheckFoldableChainNode,
/*157739*/      OPC_RecordChild1, // #1 = $src3
/*157740*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*157742*/      OPC_CheckPredicate, 9, // Predicate_load
/*157744*/      OPC_MoveParent,
/*157745*/      OPC_RecordChild1, // #2 = $src1
/*157746*/      OPC_RecordChild2, // #3 = $src2
/*157747*/      OPC_CheckType, MVT::v8f32,
/*157749*/      OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*157751*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*157754*/      OPC_EmitMergeInputChains1_0,
/*157755*/      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>>, VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2) - Complexity = 25
                // Dst: (VFNMADD132PSYm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*157768*/    /*Scope*/ 75, /*->157844*/
/*157769*/      OPC_RecordChild0, // #0 = $src2
/*157770*/      OPC_Scope, 35, /*->157807*/ // 2 children in Scope
/*157772*/        OPC_RecordChild1, // #1 = $src1
/*157773*/        OPC_MoveChild2,
/*157774*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*157777*/        OPC_RecordMemRef,
/*157778*/        OPC_RecordNode, // #2 = 'ld' chained node
/*157779*/        OPC_CheckFoldableChainNode,
/*157780*/        OPC_RecordChild1, // #3 = $src3
/*157781*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*157783*/        OPC_CheckPredicate, 9, // Predicate_load
/*157785*/        OPC_MoveParent,
/*157786*/        OPC_CheckType, MVT::v2f64,
/*157788*/        OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*157790*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*157793*/        OPC_EmitMergeInputChains1_2,
/*157794*/        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>>) - Complexity = 25
                  // Dst: (VFNMADD213PDm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*157807*/      /*Scope*/ 35, /*->157843*/
/*157808*/        OPC_MoveChild1,
/*157809*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*157812*/        OPC_RecordMemRef,
/*157813*/        OPC_RecordNode, // #1 = 'ld' chained node
/*157814*/        OPC_CheckFoldableChainNode,
/*157815*/        OPC_RecordChild1, // #2 = $src3
/*157816*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*157818*/        OPC_CheckPredicate, 9, // Predicate_load
/*157820*/        OPC_MoveParent,
/*157821*/        OPC_RecordChild2, // #3 = $src1
/*157822*/        OPC_CheckType, MVT::v2f64,
/*157824*/        OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*157826*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*157829*/        OPC_EmitMergeInputChains1_1,
/*157830*/        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>>, VR128:{ *:[v2f64] }:$src1) - Complexity = 25
                  // Dst: (VFNMADD231PDm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*157843*/      0, /*End of Scope*/
/*157844*/    /*Scope*/ 36, /*->157881*/
/*157845*/      OPC_MoveChild0,
/*157846*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*157849*/      OPC_RecordMemRef,
/*157850*/      OPC_RecordNode, // #0 = 'ld' chained node
/*157851*/      OPC_CheckFoldableChainNode,
/*157852*/      OPC_RecordChild1, // #1 = $src3
/*157853*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*157855*/      OPC_CheckPredicate, 9, // Predicate_load
/*157857*/      OPC_MoveParent,
/*157858*/      OPC_RecordChild1, // #2 = $src1
/*157859*/      OPC_RecordChild2, // #3 = $src2
/*157860*/      OPC_CheckType, MVT::v2f64,
/*157862*/      OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*157864*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*157867*/      OPC_EmitMergeInputChains1_0,
/*157868*/      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>>, VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2) - Complexity = 25
                // Dst: (VFNMADD132PDm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*157881*/    /*Scope*/ 75, /*->157957*/
/*157882*/      OPC_RecordChild0, // #0 = $src2
/*157883*/      OPC_Scope, 35, /*->157920*/ // 2 children in Scope
/*157885*/        OPC_RecordChild1, // #1 = $src1
/*157886*/        OPC_MoveChild2,
/*157887*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*157890*/        OPC_RecordMemRef,
/*157891*/        OPC_RecordNode, // #2 = 'ld' chained node
/*157892*/        OPC_CheckFoldableChainNode,
/*157893*/        OPC_RecordChild1, // #3 = $src3
/*157894*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*157896*/        OPC_CheckPredicate, 9, // Predicate_load
/*157898*/        OPC_MoveParent,
/*157899*/        OPC_CheckType, MVT::v4f64,
/*157901*/        OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*157903*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*157906*/        OPC_EmitMergeInputChains1_2,
/*157907*/        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>>) - Complexity = 25
                  // Dst: (VFNMADD213PDYm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*157920*/      /*Scope*/ 35, /*->157956*/
/*157921*/        OPC_MoveChild1,
/*157922*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*157925*/        OPC_RecordMemRef,
/*157926*/        OPC_RecordNode, // #1 = 'ld' chained node
/*157927*/        OPC_CheckFoldableChainNode,
/*157928*/        OPC_RecordChild1, // #2 = $src3
/*157929*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*157931*/        OPC_CheckPredicate, 9, // Predicate_load
/*157933*/        OPC_MoveParent,
/*157934*/        OPC_RecordChild2, // #3 = $src1
/*157935*/        OPC_CheckType, MVT::v4f64,
/*157937*/        OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*157939*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*157942*/        OPC_EmitMergeInputChains1_1,
/*157943*/        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>>, VR256:{ *:[v4f64] }:$src1) - Complexity = 25
                  // Dst: (VFNMADD231PDYm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*157956*/      0, /*End of Scope*/
/*157957*/    /*Scope*/ 36, /*->157994*/
/*157958*/      OPC_MoveChild0,
/*157959*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*157962*/      OPC_RecordMemRef,
/*157963*/      OPC_RecordNode, // #0 = 'ld' chained node
/*157964*/      OPC_CheckFoldableChainNode,
/*157965*/      OPC_RecordChild1, // #1 = $src3
/*157966*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*157968*/      OPC_CheckPredicate, 9, // Predicate_load
/*157970*/      OPC_MoveParent,
/*157971*/      OPC_RecordChild1, // #2 = $src1
/*157972*/      OPC_RecordChild2, // #3 = $src2
/*157973*/      OPC_CheckType, MVT::v4f64,
/*157975*/      OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*157977*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*157980*/      OPC_EmitMergeInputChains1_0,
/*157981*/      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>>, VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2) - Complexity = 25
                // Dst: (VFNMADD132PDYm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*157994*/    /*Scope*/ 115|128,6/*883*/, /*->158879*/
/*157996*/      OPC_RecordChild0, // #0 = $src1
/*157997*/      OPC_Scope, 35, /*->158034*/ // 10 children in Scope
/*157999*/        OPC_RecordChild1, // #1 = $src2
/*158000*/        OPC_MoveChild2,
/*158001*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*158004*/        OPC_RecordMemRef,
/*158005*/        OPC_RecordNode, // #2 = 'ld' chained node
/*158006*/        OPC_CheckFoldableChainNode,
/*158007*/        OPC_RecordChild1, // #3 = $src3
/*158008*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*158010*/        OPC_CheckPredicate, 9, // Predicate_load
/*158012*/        OPC_MoveParent,
/*158013*/        OPC_CheckType, MVT::v4f32,
/*158015*/        OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*158017*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*158020*/        OPC_EmitMergeInputChains1_2,
/*158021*/        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>>) - Complexity = 25
                  // Dst: (VFNMADDPS4rm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*158034*/      /*Scope*/ 35, /*->158070*/
/*158035*/        OPC_MoveChild1,
/*158036*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*158039*/        OPC_RecordMemRef,
/*158040*/        OPC_RecordNode, // #1 = 'ld' chained node
/*158041*/        OPC_CheckFoldableChainNode,
/*158042*/        OPC_RecordChild1, // #2 = $src2
/*158043*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*158045*/        OPC_CheckPredicate, 9, // Predicate_load
/*158047*/        OPC_MoveParent,
/*158048*/        OPC_RecordChild2, // #3 = $src3
/*158049*/        OPC_CheckType, MVT::v4f32,
/*158051*/        OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*158053*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*158056*/        OPC_EmitMergeInputChains1_1,
/*158057*/        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>>, VR128:{ *:[v4f32] }:$src3) - Complexity = 25
                  // Dst: (VFNMADDPS4mr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v4f32] }:$src3)
/*158070*/      /*Scope*/ 35, /*->158106*/
/*158071*/        OPC_RecordChild1, // #1 = $src2
/*158072*/        OPC_MoveChild2,
/*158073*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*158076*/        OPC_RecordMemRef,
/*158077*/        OPC_RecordNode, // #2 = 'ld' chained node
/*158078*/        OPC_CheckFoldableChainNode,
/*158079*/        OPC_RecordChild1, // #3 = $src3
/*158080*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*158082*/        OPC_CheckPredicate, 9, // Predicate_load
/*158084*/        OPC_MoveParent,
/*158085*/        OPC_CheckType, MVT::v8f32,
/*158087*/        OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*158089*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*158092*/        OPC_EmitMergeInputChains1_2,
/*158093*/        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>>) - Complexity = 25
                  // Dst: (VFNMADDPS4Yrm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*158106*/      /*Scope*/ 35, /*->158142*/
/*158107*/        OPC_MoveChild1,
/*158108*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*158111*/        OPC_RecordMemRef,
/*158112*/        OPC_RecordNode, // #1 = 'ld' chained node
/*158113*/        OPC_CheckFoldableChainNode,
/*158114*/        OPC_RecordChild1, // #2 = $src2
/*158115*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*158117*/        OPC_CheckPredicate, 9, // Predicate_load
/*158119*/        OPC_MoveParent,
/*158120*/        OPC_RecordChild2, // #3 = $src3
/*158121*/        OPC_CheckType, MVT::v8f32,
/*158123*/        OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*158125*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*158128*/        OPC_EmitMergeInputChains1_1,
/*158129*/        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>>, VR256:{ *:[v8f32] }:$src3) - Complexity = 25
                  // Dst: (VFNMADDPS4Ymr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v8f32] }:$src3)
/*158142*/      /*Scope*/ 35, /*->158178*/
/*158143*/        OPC_RecordChild1, // #1 = $src2
/*158144*/        OPC_MoveChild2,
/*158145*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*158148*/        OPC_RecordMemRef,
/*158149*/        OPC_RecordNode, // #2 = 'ld' chained node
/*158150*/        OPC_CheckFoldableChainNode,
/*158151*/        OPC_RecordChild1, // #3 = $src3
/*158152*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*158154*/        OPC_CheckPredicate, 9, // Predicate_load
/*158156*/        OPC_MoveParent,
/*158157*/        OPC_CheckType, MVT::v2f64,
/*158159*/        OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*158161*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*158164*/        OPC_EmitMergeInputChains1_2,
/*158165*/        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>>) - Complexity = 25
                  // Dst: (VFNMADDPD4rm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*158178*/      /*Scope*/ 35, /*->158214*/
/*158179*/        OPC_MoveChild1,
/*158180*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*158183*/        OPC_RecordMemRef,
/*158184*/        OPC_RecordNode, // #1 = 'ld' chained node
/*158185*/        OPC_CheckFoldableChainNode,
/*158186*/        OPC_RecordChild1, // #2 = $src2
/*158187*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*158189*/        OPC_CheckPredicate, 9, // Predicate_load
/*158191*/        OPC_MoveParent,
/*158192*/        OPC_RecordChild2, // #3 = $src3
/*158193*/        OPC_CheckType, MVT::v2f64,
/*158195*/        OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*158197*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*158200*/        OPC_EmitMergeInputChains1_1,
/*158201*/        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>>, VR128:{ *:[v2f64] }:$src3) - Complexity = 25
                  // Dst: (VFNMADDPD4mr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v2f64] }:$src3)
/*158214*/      /*Scope*/ 35, /*->158250*/
/*158215*/        OPC_RecordChild1, // #1 = $src2
/*158216*/        OPC_MoveChild2,
/*158217*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*158220*/        OPC_RecordMemRef,
/*158221*/        OPC_RecordNode, // #2 = 'ld' chained node
/*158222*/        OPC_CheckFoldableChainNode,
/*158223*/        OPC_RecordChild1, // #3 = $src3
/*158224*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*158226*/        OPC_CheckPredicate, 9, // Predicate_load
/*158228*/        OPC_MoveParent,
/*158229*/        OPC_CheckType, MVT::v4f64,
/*158231*/        OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*158233*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*158236*/        OPC_EmitMergeInputChains1_2,
/*158237*/        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>>) - Complexity = 25
                  // Dst: (VFNMADDPD4Yrm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*158250*/      /*Scope*/ 35, /*->158286*/
/*158251*/        OPC_MoveChild1,
/*158252*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*158255*/        OPC_RecordMemRef,
/*158256*/        OPC_RecordNode, // #1 = 'ld' chained node
/*158257*/        OPC_CheckFoldableChainNode,
/*158258*/        OPC_RecordChild1, // #2 = $src2
/*158259*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*158261*/        OPC_CheckPredicate, 9, // Predicate_load
/*158263*/        OPC_MoveParent,
/*158264*/        OPC_RecordChild2, // #3 = $src3
/*158265*/        OPC_CheckType, MVT::v4f64,
/*158267*/        OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*158269*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*158272*/        OPC_EmitMergeInputChains1_1,
/*158273*/        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>>, VR256:{ *:[v4f64] }:$src3) - Complexity = 25
                  // Dst: (VFNMADDPD4Ymr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v4f64] }:$src3)
/*158286*/      /*Scope*/ 37|128,2/*293*/, /*->158581*/
/*158288*/        OPC_RecordChild1, // #1 = $src1
/*158289*/        OPC_MoveChild2,
/*158290*/        OPC_SwitchOpcode /*2 cases */, 9|128,1/*137*/, TARGET_VAL(ISD::LOAD),// ->158432
/*158295*/          OPC_RecordMemRef,
/*158296*/          OPC_RecordNode, // #2 = 'ld' chained node
/*158297*/          OPC_CheckFoldableChainNode,
/*158298*/          OPC_RecordChild1, // #3 = $src3
/*158299*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*158301*/          OPC_CheckPredicate, 9, // Predicate_load
/*158303*/          OPC_MoveParent,
/*158304*/          OPC_SwitchType /*6 cases */, 19, MVT::v16f32,// ->158326
/*158307*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*158309*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*158312*/            OPC_EmitMergeInputChains1_2,
/*158313*/            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>>) - Complexity = 25
                      // Dst: (VFNMADD213PSZm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*158326*/          /*SwitchType*/ 19, MVT::v8f32,// ->158347
/*158328*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*158330*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*158333*/            OPC_EmitMergeInputChains1_2,
/*158334*/            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>>) - Complexity = 25
                      // Dst: (VFNMADD213PSZ256m:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*158347*/          /*SwitchType*/ 19, MVT::v4f32,// ->158368
/*158349*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*158351*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*158354*/            OPC_EmitMergeInputChains1_2,
/*158355*/            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>>) - Complexity = 25
                      // Dst: (VFNMADD213PSZ128m:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*158368*/          /*SwitchType*/ 19, MVT::v8f64,// ->158389
/*158370*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*158372*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*158375*/            OPC_EmitMergeInputChains1_2,
/*158376*/            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>>) - Complexity = 25
                      // Dst: (VFNMADD213PDZm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*158389*/          /*SwitchType*/ 19, MVT::v4f64,// ->158410
/*158391*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*158393*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*158396*/            OPC_EmitMergeInputChains1_2,
/*158397*/            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>>) - Complexity = 25
                      // Dst: (VFNMADD213PDZ256m:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*158410*/          /*SwitchType*/ 19, MVT::v2f64,// ->158431
/*158412*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*158414*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*158417*/            OPC_EmitMergeInputChains1_2,
/*158418*/            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>>) - Complexity = 25
                      // Dst: (VFNMADD213PDZ128m:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*158431*/          0, // EndSwitchType
/*158432*/        /*SwitchOpcode*/ 16|128,1/*144*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->158580
/*158436*/          OPC_RecordMemRef,
/*158437*/          OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*158438*/          OPC_CheckFoldableChainNode,
/*158439*/          OPC_RecordChild1, // #3 = $src3
/*158440*/          OPC_Scope, 68, /*->158510*/ // 2 children in Scope
/*158442*/            OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*158444*/            OPC_MoveParent,
/*158445*/            OPC_SwitchType /*3 cases */, 19, MVT::v16f32,// ->158467
/*158448*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*158450*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*158453*/              OPC_EmitMergeInputChains1_2,
/*158454*/              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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VFNMADD213PSZmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*158467*/            /*SwitchType*/ 19, MVT::v8f32,// ->158488
/*158469*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*158471*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*158474*/              OPC_EmitMergeInputChains1_2,
/*158475*/              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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VFNMADD213PSZ256mb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*158488*/            /*SwitchType*/ 19, MVT::v4f32,// ->158509
/*158490*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*158492*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*158495*/              OPC_EmitMergeInputChains1_2,
/*158496*/              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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VFNMADD213PSZ128mb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*158509*/            0, // EndSwitchType
/*158510*/          /*Scope*/ 68, /*->158579*/
/*158511*/            OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*158513*/            OPC_MoveParent,
/*158514*/            OPC_SwitchType /*3 cases */, 19, MVT::v8f64,// ->158536
/*158517*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*158519*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*158522*/              OPC_EmitMergeInputChains1_2,
/*158523*/              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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VFNMADD213PDZmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*158536*/            /*SwitchType*/ 19, MVT::v4f64,// ->158557
/*158538*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*158540*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*158543*/              OPC_EmitMergeInputChains1_2,
/*158544*/              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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VFNMADD213PDZ256mb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*158557*/            /*SwitchType*/ 19, MVT::v2f64,// ->158578
/*158559*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*158561*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*158564*/              OPC_EmitMergeInputChains1_2,
/*158565*/              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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VFNMADD213PDZ128mb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*158578*/            0, // EndSwitchType
/*158579*/          0, /*End of Scope*/
/*158580*/        0, // EndSwitchOpcode
/*158581*/      /*Scope*/ 39|128,2/*295*/, /*->158878*/
/*158583*/        OPC_MoveChild1,
/*158584*/        OPC_SwitchOpcode /*2 cases */, 10|128,1/*138*/, TARGET_VAL(ISD::LOAD),// ->158727
/*158589*/          OPC_RecordMemRef,
/*158590*/          OPC_RecordNode, // #1 = 'ld' chained node
/*158591*/          OPC_CheckFoldableChainNode,
/*158592*/          OPC_RecordChild1, // #2 = $src3
/*158593*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*158595*/          OPC_CheckPredicate, 9, // Predicate_load
/*158597*/          OPC_MoveParent,
/*158598*/          OPC_RecordChild2, // #3 = $src1
/*158599*/          OPC_SwitchType /*6 cases */, 19, MVT::v16f32,// ->158621
/*158602*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*158604*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*158607*/            OPC_EmitMergeInputChains1_1,
/*158608*/            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>>, VR512:{ *:[v16f32] }:$src1) - Complexity = 25
                      // Dst: (VFNMADD231PSZm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*158621*/          /*SwitchType*/ 19, MVT::v8f32,// ->158642
/*158623*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*158625*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*158628*/            OPC_EmitMergeInputChains1_1,
/*158629*/            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>>, VR256X:{ *:[v8f32] }:$src1) - Complexity = 25
                      // Dst: (VFNMADD231PSZ256m:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*158642*/          /*SwitchType*/ 19, MVT::v4f32,// ->158663
/*158644*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*158646*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*158649*/            OPC_EmitMergeInputChains1_1,
/*158650*/            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>>, VR128X:{ *:[v4f32] }:$src1) - Complexity = 25
                      // Dst: (VFNMADD231PSZ128m:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*158663*/          /*SwitchType*/ 19, MVT::v8f64,// ->158684
/*158665*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*158667*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*158670*/            OPC_EmitMergeInputChains1_1,
/*158671*/            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>>, VR512:{ *:[v8f64] }:$src1) - Complexity = 25
                      // Dst: (VFNMADD231PDZm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*158684*/          /*SwitchType*/ 19, MVT::v4f64,// ->158705
/*158686*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*158688*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*158691*/            OPC_EmitMergeInputChains1_1,
/*158692*/            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>>, VR256X:{ *:[v4f64] }:$src1) - Complexity = 25
                      // Dst: (VFNMADD231PDZ256m:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*158705*/          /*SwitchType*/ 19, MVT::v2f64,// ->158726
/*158707*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*158709*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*158712*/            OPC_EmitMergeInputChains1_1,
/*158713*/            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>>, VR128X:{ *:[v2f64] }:$src1) - Complexity = 25
                      // Dst: (VFNMADD231PDZ128m:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*158726*/          0, // EndSwitchType
/*158727*/        /*SwitchOpcode*/ 18|128,1/*146*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->158877
/*158731*/          OPC_RecordMemRef,
/*158732*/          OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*158733*/          OPC_CheckFoldableChainNode,
/*158734*/          OPC_RecordChild1, // #2 = $src3
/*158735*/          OPC_Scope, 69, /*->158806*/ // 2 children in Scope
/*158737*/            OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*158739*/            OPC_MoveParent,
/*158740*/            OPC_RecordChild2, // #3 = $src1
/*158741*/            OPC_SwitchType /*3 cases */, 19, MVT::v16f32,// ->158763
/*158744*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*158746*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*158749*/              OPC_EmitMergeInputChains1_1,
/*158750*/              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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src1) - Complexity = 25
                        // Dst: (VFNMADD231PSZmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*158763*/            /*SwitchType*/ 19, MVT::v8f32,// ->158784
/*158765*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*158767*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*158770*/              OPC_EmitMergeInputChains1_1,
/*158771*/              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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1) - Complexity = 25
                        // Dst: (VFNMADD231PSZ256mb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*158784*/            /*SwitchType*/ 19, MVT::v4f32,// ->158805
/*158786*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*158788*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*158791*/              OPC_EmitMergeInputChains1_1,
/*158792*/              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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1) - Complexity = 25
                        // Dst: (VFNMADD231PSZ128mb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*158805*/            0, // EndSwitchType
/*158806*/          /*Scope*/ 69, /*->158876*/
/*158807*/            OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*158809*/            OPC_MoveParent,
/*158810*/            OPC_RecordChild2, // #3 = $src1
/*158811*/            OPC_SwitchType /*3 cases */, 19, MVT::v8f64,// ->158833
/*158814*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*158816*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*158819*/              OPC_EmitMergeInputChains1_1,
/*158820*/              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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src1) - Complexity = 25
                        // Dst: (VFNMADD231PDZmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*158833*/            /*SwitchType*/ 19, MVT::v4f64,// ->158854
/*158835*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*158837*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*158840*/              OPC_EmitMergeInputChains1_1,
/*158841*/              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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1) - Complexity = 25
                        // Dst: (VFNMADD231PDZ256mb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*158854*/            /*SwitchType*/ 19, MVT::v2f64,// ->158875
/*158856*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*158858*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*158861*/              OPC_EmitMergeInputChains1_1,
/*158862*/              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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1) - Complexity = 25
                        // Dst: (VFNMADD231PDZ128mb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*158875*/            0, // EndSwitchType
/*158876*/          0, /*End of Scope*/
/*158877*/        0, // EndSwitchOpcode
/*158878*/      0, /*End of Scope*/
/*158879*/    /*Scope*/ 6|128,3/*390*/, /*->159271*/
/*158881*/      OPC_MoveChild0,
/*158882*/      OPC_SwitchOpcode /*2 cases */, 103|128,1/*231*/, TARGET_VAL(ISD::LOAD),// ->159118
/*158887*/        OPC_RecordMemRef,
/*158888*/        OPC_RecordNode, // #0 = 'ld' chained node
/*158889*/        OPC_CheckFoldableChainNode,
/*158890*/        OPC_RecordChild1, // #1 = $src3
/*158891*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*158893*/        OPC_CheckPredicate, 9, // Predicate_load
/*158895*/        OPC_MoveParent,
/*158896*/        OPC_RecordChild1, // #2 = $src1
/*158897*/        OPC_RecordChild2, // #3 = $src2
/*158898*/        OPC_SwitchType /*6 cases */, 19, MVT::v16f32,// ->158920
/*158901*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*158903*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*158906*/          OPC_EmitMergeInputChains1_0,
/*158907*/          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>>, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2) - Complexity = 25
                    // Dst: (VFNMADD132PSZm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*158920*/        /*SwitchType*/ 42, MVT::v8f32,// ->158964
/*158922*/          OPC_Scope, 19, /*->158943*/ // 2 children in Scope
/*158924*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*158926*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*158929*/            OPC_EmitMergeInputChains1_0,
/*158930*/            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>>, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2) - Complexity = 25
                      // Dst: (VFNMADD132PSZ256m:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*158943*/          /*Scope*/ 19, /*->158963*/
/*158944*/            OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*158946*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*158949*/            OPC_EmitMergeInputChains1_0,
/*158950*/            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>>, VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src3) - Complexity = 25
                      // Dst: (VFNMADDPS4Ymr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v8f32] }:$src3)
/*158963*/          0, /*End of Scope*/
/*158964*/        /*SwitchType*/ 42, MVT::v4f32,// ->159008
/*158966*/          OPC_Scope, 19, /*->158987*/ // 2 children in Scope
/*158968*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*158970*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*158973*/            OPC_EmitMergeInputChains1_0,
/*158974*/            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>>, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2) - Complexity = 25
                      // Dst: (VFNMADD132PSZ128m:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*158987*/          /*Scope*/ 19, /*->159007*/
/*158988*/            OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*158990*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*158993*/            OPC_EmitMergeInputChains1_0,
/*158994*/            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>>, VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src3) - Complexity = 25
                      // Dst: (VFNMADDPS4mr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v4f32] }:$src3)
/*159007*/          0, /*End of Scope*/
/*159008*/        /*SwitchType*/ 19, MVT::v8f64,// ->159029
/*159010*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*159012*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*159015*/          OPC_EmitMergeInputChains1_0,
/*159016*/          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>>, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2) - Complexity = 25
                    // Dst: (VFNMADD132PDZm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*159029*/        /*SwitchType*/ 42, MVT::v4f64,// ->159073
/*159031*/          OPC_Scope, 19, /*->159052*/ // 2 children in Scope
/*159033*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*159035*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*159038*/            OPC_EmitMergeInputChains1_0,
/*159039*/            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>>, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2) - Complexity = 25
                      // Dst: (VFNMADD132PDZ256m:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*159052*/          /*Scope*/ 19, /*->159072*/
/*159053*/            OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*159055*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*159058*/            OPC_EmitMergeInputChains1_0,
/*159059*/            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>>, VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src3) - Complexity = 25
                      // Dst: (VFNMADDPD4Ymr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v4f64] }:$src3)
/*159072*/          0, /*End of Scope*/
/*159073*/        /*SwitchType*/ 42, MVT::v2f64,// ->159117
/*159075*/          OPC_Scope, 19, /*->159096*/ // 2 children in Scope
/*159077*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*159079*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*159082*/            OPC_EmitMergeInputChains1_0,
/*159083*/            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>>, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2) - Complexity = 25
                      // Dst: (VFNMADD132PDZ128m:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*159096*/          /*Scope*/ 19, /*->159116*/
/*159097*/            OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*159099*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*159102*/            OPC_EmitMergeInputChains1_0,
/*159103*/            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>>, VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src3) - Complexity = 25
                      // Dst: (VFNMADDPD4mr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v2f64] }:$src3)
/*159116*/          0, /*End of Scope*/
/*159117*/        0, // EndSwitchType
/*159118*/      /*SwitchOpcode*/ 20|128,1/*148*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->159270
/*159122*/        OPC_RecordMemRef,
/*159123*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*159124*/        OPC_CheckFoldableChainNode,
/*159125*/        OPC_RecordChild1, // #1 = $src3
/*159126*/        OPC_Scope, 70, /*->159198*/ // 2 children in Scope
/*159128*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*159130*/          OPC_MoveParent,
/*159131*/          OPC_RecordChild1, // #2 = $src1
/*159132*/          OPC_RecordChild2, // #3 = $src2
/*159133*/          OPC_SwitchType /*3 cases */, 19, MVT::v16f32,// ->159155
/*159136*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*159138*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*159141*/            OPC_EmitMergeInputChains1_0,
/*159142*/            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] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2) - Complexity = 25
                      // Dst: (VFNMADD132PSZmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*159155*/          /*SwitchType*/ 19, MVT::v8f32,// ->159176
/*159157*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*159159*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*159162*/            OPC_EmitMergeInputChains1_0,
/*159163*/            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] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2) - Complexity = 25
                      // Dst: (VFNMADD132PSZ256mb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*159176*/          /*SwitchType*/ 19, MVT::v4f32,// ->159197
/*159178*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*159180*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*159183*/            OPC_EmitMergeInputChains1_0,
/*159184*/            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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2) - Complexity = 25
                      // Dst: (VFNMADD132PSZ128mb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*159197*/          0, // EndSwitchType
/*159198*/        /*Scope*/ 70, /*->159269*/
/*159199*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*159201*/          OPC_MoveParent,
/*159202*/          OPC_RecordChild1, // #2 = $src1
/*159203*/          OPC_RecordChild2, // #3 = $src2
/*159204*/          OPC_SwitchType /*3 cases */, 19, MVT::v8f64,// ->159226
/*159207*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*159209*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*159212*/            OPC_EmitMergeInputChains1_0,
/*159213*/            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] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2) - Complexity = 25
                      // Dst: (VFNMADD132PDZmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*159226*/          /*SwitchType*/ 19, MVT::v4f64,// ->159247
/*159228*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*159230*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*159233*/            OPC_EmitMergeInputChains1_0,
/*159234*/            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] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2) - Complexity = 25
                      // Dst: (VFNMADD132PDZ256mb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*159247*/          /*SwitchType*/ 19, MVT::v2f64,// ->159268
/*159249*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*159251*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*159254*/            OPC_EmitMergeInputChains1_0,
/*159255*/            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] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2) - Complexity = 25
                      // Dst: (VFNMADD132PDZ128mb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*159268*/          0, // EndSwitchType
/*159269*/        0, /*End of Scope*/
/*159270*/      0, // EndSwitchOpcode
/*159271*/    /*Scope*/ 63|128,1/*191*/, /*->159464*/
/*159273*/      OPC_RecordChild0, // #0 = $src2
/*159274*/      OPC_RecordChild1, // #1 = $src1
/*159275*/      OPC_RecordChild2, // #2 = $src3
/*159276*/      OPC_SwitchType /*6 cases */, 38, MVT::v4f32,// ->159317
/*159279*/        OPC_Scope, 11, /*->159292*/ // 3 children in Scope
/*159281*/          OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*159283*/          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)
/*159292*/        /*Scope*/ 11, /*->159304*/
/*159293*/          OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*159295*/          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)
/*159304*/        /*Scope*/ 11, /*->159316*/
/*159305*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*159307*/          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)
/*159316*/        0, /*End of Scope*/
/*159317*/      /*SwitchType*/ 38, MVT::v8f32,// ->159357
/*159319*/        OPC_Scope, 11, /*->159332*/ // 3 children in Scope
/*159321*/          OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*159323*/          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)
/*159332*/        /*Scope*/ 11, /*->159344*/
/*159333*/          OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*159335*/          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)
/*159344*/        /*Scope*/ 11, /*->159356*/
/*159345*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*159347*/          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)
/*159356*/        0, /*End of Scope*/
/*159357*/      /*SwitchType*/ 38, MVT::v2f64,// ->159397
/*159359*/        OPC_Scope, 11, /*->159372*/ // 3 children in Scope
/*159361*/          OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*159363*/          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)
/*159372*/        /*Scope*/ 11, /*->159384*/
/*159373*/          OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*159375*/          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)
/*159384*/        /*Scope*/ 11, /*->159396*/
/*159385*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*159387*/          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)
/*159396*/        0, /*End of Scope*/
/*159397*/      /*SwitchType*/ 38, MVT::v4f64,// ->159437
/*159399*/        OPC_Scope, 11, /*->159412*/ // 3 children in Scope
/*159401*/          OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*159403*/          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)
/*159412*/        /*Scope*/ 11, /*->159424*/
/*159413*/          OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*159415*/          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)
/*159424*/        /*Scope*/ 11, /*->159436*/
/*159425*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*159427*/          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)
/*159436*/        0, /*End of Scope*/
/*159437*/      /*SwitchType*/ 11, MVT::v16f32,// ->159450
/*159439*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*159441*/        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)
/*159450*/      /*SwitchType*/ 11, MVT::v8f64,// ->159463
/*159452*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*159454*/        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)
/*159463*/      0, // EndSwitchType
/*159464*/    0, /*End of Scope*/
/*159465*/  /*SwitchOpcode*/ 95|128,20/*2655*/, TARGET_VAL(X86ISD::FNMSUB),// ->162124
/*159469*/    OPC_Scope, 75, /*->159546*/ // 19 children in Scope
/*159471*/      OPC_RecordChild0, // #0 = $src2
/*159472*/      OPC_Scope, 35, /*->159509*/ // 2 children in Scope
/*159474*/        OPC_RecordChild1, // #1 = $src1
/*159475*/        OPC_MoveChild2,
/*159476*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*159479*/        OPC_RecordMemRef,
/*159480*/        OPC_RecordNode, // #2 = 'ld' chained node
/*159481*/        OPC_CheckFoldableChainNode,
/*159482*/        OPC_RecordChild1, // #3 = $src3
/*159483*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*159485*/        OPC_CheckPredicate, 9, // Predicate_load
/*159487*/        OPC_MoveParent,
/*159488*/        OPC_CheckType, MVT::f32,
/*159490*/        OPC_CheckPatternPredicate, 173, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*159492*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*159495*/        OPC_EmitMergeInputChains1_2,
/*159496*/        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)
/*159509*/      /*Scope*/ 35, /*->159545*/
/*159510*/        OPC_MoveChild1,
/*159511*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*159514*/        OPC_RecordMemRef,
/*159515*/        OPC_RecordNode, // #1 = 'ld' chained node
/*159516*/        OPC_CheckFoldableChainNode,
/*159517*/        OPC_RecordChild1, // #2 = $src3
/*159518*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*159520*/        OPC_CheckPredicate, 9, // Predicate_load
/*159522*/        OPC_MoveParent,
/*159523*/        OPC_RecordChild2, // #3 = $src1
/*159524*/        OPC_CheckType, MVT::f32,
/*159526*/        OPC_CheckPatternPredicate, 173, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*159528*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*159531*/        OPC_EmitMergeInputChains1_1,
/*159532*/        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)
/*159545*/      0, /*End of Scope*/
/*159546*/    /*Scope*/ 36, /*->159583*/
/*159547*/      OPC_MoveChild0,
/*159548*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*159551*/      OPC_RecordMemRef,
/*159552*/      OPC_RecordNode, // #0 = 'ld' chained node
/*159553*/      OPC_CheckFoldableChainNode,
/*159554*/      OPC_RecordChild1, // #1 = $src3
/*159555*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*159557*/      OPC_CheckPredicate, 9, // Predicate_load
/*159559*/      OPC_MoveParent,
/*159560*/      OPC_RecordChild1, // #2 = $src1
/*159561*/      OPC_RecordChild2, // #3 = $src2
/*159562*/      OPC_CheckType, MVT::f32,
/*159564*/      OPC_CheckPatternPredicate, 173, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*159566*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*159569*/      OPC_EmitMergeInputChains1_0,
/*159570*/      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)
/*159583*/    /*Scope*/ 75, /*->159659*/
/*159584*/      OPC_RecordChild0, // #0 = $src2
/*159585*/      OPC_Scope, 35, /*->159622*/ // 2 children in Scope
/*159587*/        OPC_RecordChild1, // #1 = $src1
/*159588*/        OPC_MoveChild2,
/*159589*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*159592*/        OPC_RecordMemRef,
/*159593*/        OPC_RecordNode, // #2 = 'ld' chained node
/*159594*/        OPC_CheckFoldableChainNode,
/*159595*/        OPC_RecordChild1, // #3 = $src3
/*159596*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*159598*/        OPC_CheckPredicate, 9, // Predicate_load
/*159600*/        OPC_MoveParent,
/*159601*/        OPC_CheckType, MVT::f64,
/*159603*/        OPC_CheckPatternPredicate, 173, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*159605*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*159608*/        OPC_EmitMergeInputChains1_2,
/*159609*/        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)
/*159622*/      /*Scope*/ 35, /*->159658*/
/*159623*/        OPC_MoveChild1,
/*159624*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*159627*/        OPC_RecordMemRef,
/*159628*/        OPC_RecordNode, // #1 = 'ld' chained node
/*159629*/        OPC_CheckFoldableChainNode,
/*159630*/        OPC_RecordChild1, // #2 = $src3
/*159631*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*159633*/        OPC_CheckPredicate, 9, // Predicate_load
/*159635*/        OPC_MoveParent,
/*159636*/        OPC_RecordChild2, // #3 = $src1
/*159637*/        OPC_CheckType, MVT::f64,
/*159639*/        OPC_CheckPatternPredicate, 173, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*159641*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*159644*/        OPC_EmitMergeInputChains1_1,
/*159645*/        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)
/*159658*/      0, /*End of Scope*/
/*159659*/    /*Scope*/ 36, /*->159696*/
/*159660*/      OPC_MoveChild0,
/*159661*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*159664*/      OPC_RecordMemRef,
/*159665*/      OPC_RecordNode, // #0 = 'ld' chained node
/*159666*/      OPC_CheckFoldableChainNode,
/*159667*/      OPC_RecordChild1, // #1 = $src3
/*159668*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*159670*/      OPC_CheckPredicate, 9, // Predicate_load
/*159672*/      OPC_MoveParent,
/*159673*/      OPC_RecordChild1, // #2 = $src1
/*159674*/      OPC_RecordChild2, // #3 = $src2
/*159675*/      OPC_CheckType, MVT::f64,
/*159677*/      OPC_CheckPatternPredicate, 173, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*159679*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*159682*/      OPC_EmitMergeInputChains1_0,
/*159683*/      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)
/*159696*/    /*Scope*/ 91|128,1/*219*/, /*->159917*/
/*159698*/      OPC_RecordChild0, // #0 = $src1
/*159699*/      OPC_Scope, 35, /*->159736*/ // 6 children in Scope
/*159701*/        OPC_RecordChild1, // #1 = $src2
/*159702*/        OPC_MoveChild2,
/*159703*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*159706*/        OPC_RecordMemRef,
/*159707*/        OPC_RecordNode, // #2 = 'ld' chained node
/*159708*/        OPC_CheckFoldableChainNode,
/*159709*/        OPC_RecordChild1, // #3 = $src3
/*159710*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*159712*/        OPC_CheckPredicate, 9, // Predicate_load
/*159714*/        OPC_MoveParent,
/*159715*/        OPC_CheckType, MVT::f32,
/*159717*/        OPC_CheckPatternPredicate, 174, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*159719*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*159722*/        OPC_EmitMergeInputChains1_2,
/*159723*/        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)
/*159736*/      /*Scope*/ 35, /*->159772*/
/*159737*/        OPC_MoveChild1,
/*159738*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*159741*/        OPC_RecordMemRef,
/*159742*/        OPC_RecordNode, // #1 = 'ld' chained node
/*159743*/        OPC_CheckFoldableChainNode,
/*159744*/        OPC_RecordChild1, // #2 = $src2
/*159745*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*159747*/        OPC_CheckPredicate, 9, // Predicate_load
/*159749*/        OPC_MoveParent,
/*159750*/        OPC_RecordChild2, // #3 = $src3
/*159751*/        OPC_CheckType, MVT::f32,
/*159753*/        OPC_CheckPatternPredicate, 174, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*159755*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*159758*/        OPC_EmitMergeInputChains1_1,
/*159759*/        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)
/*159772*/      /*Scope*/ 35, /*->159808*/
/*159773*/        OPC_RecordChild1, // #1 = $src2
/*159774*/        OPC_MoveChild2,
/*159775*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*159778*/        OPC_RecordMemRef,
/*159779*/        OPC_RecordNode, // #2 = 'ld' chained node
/*159780*/        OPC_CheckFoldableChainNode,
/*159781*/        OPC_RecordChild1, // #3 = $src3
/*159782*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*159784*/        OPC_CheckPredicate, 9, // Predicate_load
/*159786*/        OPC_MoveParent,
/*159787*/        OPC_CheckType, MVT::f64,
/*159789*/        OPC_CheckPatternPredicate, 174, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*159791*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*159794*/        OPC_EmitMergeInputChains1_2,
/*159795*/        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)
/*159808*/      /*Scope*/ 35, /*->159844*/
/*159809*/        OPC_MoveChild1,
/*159810*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*159813*/        OPC_RecordMemRef,
/*159814*/        OPC_RecordNode, // #1 = 'ld' chained node
/*159815*/        OPC_CheckFoldableChainNode,
/*159816*/        OPC_RecordChild1, // #2 = $src2
/*159817*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*159819*/        OPC_CheckPredicate, 9, // Predicate_load
/*159821*/        OPC_MoveParent,
/*159822*/        OPC_RecordChild2, // #3 = $src3
/*159823*/        OPC_CheckType, MVT::f64,
/*159825*/        OPC_CheckPatternPredicate, 174, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*159827*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*159830*/        OPC_EmitMergeInputChains1_1,
/*159831*/        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)
/*159844*/      /*Scope*/ 35, /*->159880*/
/*159845*/        OPC_RecordChild1, // #1 = $src1
/*159846*/        OPC_MoveChild2,
/*159847*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*159850*/        OPC_RecordMemRef,
/*159851*/        OPC_RecordNode, // #2 = 'ld' chained node
/*159852*/        OPC_CheckFoldableChainNode,
/*159853*/        OPC_RecordChild1, // #3 = $src3
/*159854*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*159856*/        OPC_CheckPredicate, 9, // Predicate_load
/*159858*/        OPC_MoveParent,
/*159859*/        OPC_CheckType, MVT::f32,
/*159861*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*159863*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*159866*/        OPC_EmitMergeInputChains1_2,
/*159867*/        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)
/*159880*/      /*Scope*/ 35, /*->159916*/
/*159881*/        OPC_MoveChild1,
/*159882*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*159885*/        OPC_RecordMemRef,
/*159886*/        OPC_RecordNode, // #1 = 'ld' chained node
/*159887*/        OPC_CheckFoldableChainNode,
/*159888*/        OPC_RecordChild1, // #2 = $src3
/*159889*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*159891*/        OPC_CheckPredicate, 9, // Predicate_load
/*159893*/        OPC_MoveParent,
/*159894*/        OPC_RecordChild2, // #3 = $src1
/*159895*/        OPC_CheckType, MVT::f32,
/*159897*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*159899*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*159902*/        OPC_EmitMergeInputChains1_1,
/*159903*/        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)
/*159916*/      0, /*End of Scope*/
/*159917*/    /*Scope*/ 36, /*->159954*/
/*159918*/      OPC_MoveChild0,
/*159919*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*159922*/      OPC_RecordMemRef,
/*159923*/      OPC_RecordNode, // #0 = 'ld' chained node
/*159924*/      OPC_CheckFoldableChainNode,
/*159925*/      OPC_RecordChild1, // #1 = $src3
/*159926*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*159928*/      OPC_CheckPredicate, 9, // Predicate_load
/*159930*/      OPC_MoveParent,
/*159931*/      OPC_RecordChild1, // #2 = $src1
/*159932*/      OPC_RecordChild2, // #3 = $src2
/*159933*/      OPC_CheckType, MVT::f32,
/*159935*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*159937*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*159940*/      OPC_EmitMergeInputChains1_0,
/*159941*/      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)
/*159954*/    /*Scope*/ 75, /*->160030*/
/*159955*/      OPC_RecordChild0, // #0 = $src2
/*159956*/      OPC_Scope, 35, /*->159993*/ // 2 children in Scope
/*159958*/        OPC_RecordChild1, // #1 = $src1
/*159959*/        OPC_MoveChild2,
/*159960*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*159963*/        OPC_RecordMemRef,
/*159964*/        OPC_RecordNode, // #2 = 'ld' chained node
/*159965*/        OPC_CheckFoldableChainNode,
/*159966*/        OPC_RecordChild1, // #3 = $src3
/*159967*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*159969*/        OPC_CheckPredicate, 9, // Predicate_load
/*159971*/        OPC_MoveParent,
/*159972*/        OPC_CheckType, MVT::f64,
/*159974*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*159976*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*159979*/        OPC_EmitMergeInputChains1_2,
/*159980*/        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)
/*159993*/      /*Scope*/ 35, /*->160029*/
/*159994*/        OPC_MoveChild1,
/*159995*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*159998*/        OPC_RecordMemRef,
/*159999*/        OPC_RecordNode, // #1 = 'ld' chained node
/*160000*/        OPC_CheckFoldableChainNode,
/*160001*/        OPC_RecordChild1, // #2 = $src3
/*160002*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*160004*/        OPC_CheckPredicate, 9, // Predicate_load
/*160006*/        OPC_MoveParent,
/*160007*/        OPC_RecordChild2, // #3 = $src1
/*160008*/        OPC_CheckType, MVT::f64,
/*160010*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*160012*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*160015*/        OPC_EmitMergeInputChains1_1,
/*160016*/        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)
/*160029*/      0, /*End of Scope*/
/*160030*/    /*Scope*/ 82, /*->160113*/
/*160031*/      OPC_MoveChild0,
/*160032*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*160035*/      OPC_RecordMemRef,
/*160036*/      OPC_RecordNode, // #0 = 'ld' chained node
/*160037*/      OPC_CheckFoldableChainNode,
/*160038*/      OPC_RecordChild1, // #1 = $src3
/*160039*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*160041*/      OPC_CheckPredicate, 9, // Predicate_load
/*160043*/      OPC_MoveParent,
/*160044*/      OPC_RecordChild1, // #2 = $src1
/*160045*/      OPC_RecordChild2, // #3 = $src2
/*160046*/      OPC_SwitchType /*2 cases */, 42, MVT::f64,// ->160091
/*160049*/        OPC_Scope, 19, /*->160070*/ // 2 children in Scope
/*160051*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*160053*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*160056*/          OPC_EmitMergeInputChains1_0,
/*160057*/          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)
/*160070*/        /*Scope*/ 19, /*->160090*/
/*160071*/          OPC_CheckPatternPredicate, 174, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*160073*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*160076*/          OPC_EmitMergeInputChains1_0,
/*160077*/          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)
/*160090*/        0, /*End of Scope*/
/*160091*/      /*SwitchType*/ 19, MVT::f32,// ->160112
/*160093*/        OPC_CheckPatternPredicate, 174, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*160095*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*160098*/        OPC_EmitMergeInputChains1_0,
/*160099*/        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)
/*160112*/      0, // EndSwitchType
/*160113*/    /*Scope*/ 34|128,1/*162*/, /*->160277*/
/*160115*/      OPC_RecordChild0, // #0 = $src2
/*160116*/      OPC_Scope, 122, /*->160240*/ // 2 children in Scope
/*160118*/        OPC_RecordChild1, // #1 = $src1
/*160119*/        OPC_Scope, 83, /*->160204*/ // 2 children in Scope
/*160121*/          OPC_RecordChild2, // #2 = $src3
/*160122*/          OPC_SwitchType /*2 cases */, 38, MVT::f32,// ->160163
/*160125*/            OPC_Scope, 11, /*->160138*/ // 3 children in Scope
/*160127*/              OPC_CheckPatternPredicate, 173, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*160129*/              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)
/*160138*/            /*Scope*/ 11, /*->160150*/
/*160139*/              OPC_CheckPatternPredicate, 174, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*160141*/              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)
/*160150*/            /*Scope*/ 11, /*->160162*/
/*160151*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*160153*/              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)
/*160162*/            0, /*End of Scope*/
/*160163*/          /*SwitchType*/ 38, MVT::f64,// ->160203
/*160165*/            OPC_Scope, 11, /*->160178*/ // 3 children in Scope
/*160167*/              OPC_CheckPatternPredicate, 173, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4())
/*160169*/              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)
/*160178*/            /*Scope*/ 11, /*->160190*/
/*160179*/              OPC_CheckPatternPredicate, 174, // (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512())
/*160181*/              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)
/*160190*/            /*Scope*/ 11, /*->160202*/
/*160191*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*160193*/              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)
/*160202*/            0, /*End of Scope*/
/*160203*/          0, // EndSwitchType
/*160204*/        /*Scope*/ 34, /*->160239*/
/*160205*/          OPC_MoveChild2,
/*160206*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*160209*/          OPC_RecordMemRef,
/*160210*/          OPC_RecordNode, // #2 = 'ld' chained node
/*160211*/          OPC_CheckFoldableChainNode,
/*160212*/          OPC_RecordChild1, // #3 = $src3
/*160213*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*160215*/          OPC_CheckPredicate, 9, // Predicate_load
/*160217*/          OPC_MoveParent,
/*160218*/          OPC_CheckType, MVT::v4f32,
/*160220*/          OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*160222*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*160225*/          OPC_EmitMergeInputChains1_2,
/*160226*/          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>>) - Complexity = 25
                    // Dst: (VFNMSUB213PSm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*160239*/        0, /*End of Scope*/
/*160240*/      /*Scope*/ 35, /*->160276*/
/*160241*/        OPC_MoveChild1,
/*160242*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*160245*/        OPC_RecordMemRef,
/*160246*/        OPC_RecordNode, // #1 = 'ld' chained node
/*160247*/        OPC_CheckFoldableChainNode,
/*160248*/        OPC_RecordChild1, // #2 = $src3
/*160249*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*160251*/        OPC_CheckPredicate, 9, // Predicate_load
/*160253*/        OPC_MoveParent,
/*160254*/        OPC_RecordChild2, // #3 = $src1
/*160255*/        OPC_CheckType, MVT::v4f32,
/*160257*/        OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*160259*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*160262*/        OPC_EmitMergeInputChains1_1,
/*160263*/        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>>, VR128:{ *:[v4f32] }:$src1) - Complexity = 25
                  // Dst: (VFNMSUB231PSm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*160276*/      0, /*End of Scope*/
/*160277*/    /*Scope*/ 36, /*->160314*/
/*160278*/      OPC_MoveChild0,
/*160279*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*160282*/      OPC_RecordMemRef,
/*160283*/      OPC_RecordNode, // #0 = 'ld' chained node
/*160284*/      OPC_CheckFoldableChainNode,
/*160285*/      OPC_RecordChild1, // #1 = $src3
/*160286*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*160288*/      OPC_CheckPredicate, 9, // Predicate_load
/*160290*/      OPC_MoveParent,
/*160291*/      OPC_RecordChild1, // #2 = $src1
/*160292*/      OPC_RecordChild2, // #3 = $src2
/*160293*/      OPC_CheckType, MVT::v4f32,
/*160295*/      OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*160297*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*160300*/      OPC_EmitMergeInputChains1_0,
/*160301*/      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>>, VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2) - Complexity = 25
                // Dst: (VFNMSUB132PSm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*160314*/    /*Scope*/ 75, /*->160390*/
/*160315*/      OPC_RecordChild0, // #0 = $src2
/*160316*/      OPC_Scope, 35, /*->160353*/ // 2 children in Scope
/*160318*/        OPC_RecordChild1, // #1 = $src1
/*160319*/        OPC_MoveChild2,
/*160320*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*160323*/        OPC_RecordMemRef,
/*160324*/        OPC_RecordNode, // #2 = 'ld' chained node
/*160325*/        OPC_CheckFoldableChainNode,
/*160326*/        OPC_RecordChild1, // #3 = $src3
/*160327*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*160329*/        OPC_CheckPredicate, 9, // Predicate_load
/*160331*/        OPC_MoveParent,
/*160332*/        OPC_CheckType, MVT::v8f32,
/*160334*/        OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*160336*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*160339*/        OPC_EmitMergeInputChains1_2,
/*160340*/        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>>) - Complexity = 25
                  // Dst: (VFNMSUB213PSYm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*160353*/      /*Scope*/ 35, /*->160389*/
/*160354*/        OPC_MoveChild1,
/*160355*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*160358*/        OPC_RecordMemRef,
/*160359*/        OPC_RecordNode, // #1 = 'ld' chained node
/*160360*/        OPC_CheckFoldableChainNode,
/*160361*/        OPC_RecordChild1, // #2 = $src3
/*160362*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*160364*/        OPC_CheckPredicate, 9, // Predicate_load
/*160366*/        OPC_MoveParent,
/*160367*/        OPC_RecordChild2, // #3 = $src1
/*160368*/        OPC_CheckType, MVT::v8f32,
/*160370*/        OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*160372*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*160375*/        OPC_EmitMergeInputChains1_1,
/*160376*/        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>>, VR256:{ *:[v8f32] }:$src1) - Complexity = 25
                  // Dst: (VFNMSUB231PSYm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*160389*/      0, /*End of Scope*/
/*160390*/    /*Scope*/ 36, /*->160427*/
/*160391*/      OPC_MoveChild0,
/*160392*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*160395*/      OPC_RecordMemRef,
/*160396*/      OPC_RecordNode, // #0 = 'ld' chained node
/*160397*/      OPC_CheckFoldableChainNode,
/*160398*/      OPC_RecordChild1, // #1 = $src3
/*160399*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*160401*/      OPC_CheckPredicate, 9, // Predicate_load
/*160403*/      OPC_MoveParent,
/*160404*/      OPC_RecordChild1, // #2 = $src1
/*160405*/      OPC_RecordChild2, // #3 = $src2
/*160406*/      OPC_CheckType, MVT::v8f32,
/*160408*/      OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*160410*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*160413*/      OPC_EmitMergeInputChains1_0,
/*160414*/      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>>, VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2) - Complexity = 25
                // Dst: (VFNMSUB132PSYm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*160427*/    /*Scope*/ 75, /*->160503*/
/*160428*/      OPC_RecordChild0, // #0 = $src2
/*160429*/      OPC_Scope, 35, /*->160466*/ // 2 children in Scope
/*160431*/        OPC_RecordChild1, // #1 = $src1
/*160432*/        OPC_MoveChild2,
/*160433*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*160436*/        OPC_RecordMemRef,
/*160437*/        OPC_RecordNode, // #2 = 'ld' chained node
/*160438*/        OPC_CheckFoldableChainNode,
/*160439*/        OPC_RecordChild1, // #3 = $src3
/*160440*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*160442*/        OPC_CheckPredicate, 9, // Predicate_load
/*160444*/        OPC_MoveParent,
/*160445*/        OPC_CheckType, MVT::v2f64,
/*160447*/        OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*160449*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*160452*/        OPC_EmitMergeInputChains1_2,
/*160453*/        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>>) - Complexity = 25
                  // Dst: (VFNMSUB213PDm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*160466*/      /*Scope*/ 35, /*->160502*/
/*160467*/        OPC_MoveChild1,
/*160468*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*160471*/        OPC_RecordMemRef,
/*160472*/        OPC_RecordNode, // #1 = 'ld' chained node
/*160473*/        OPC_CheckFoldableChainNode,
/*160474*/        OPC_RecordChild1, // #2 = $src3
/*160475*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*160477*/        OPC_CheckPredicate, 9, // Predicate_load
/*160479*/        OPC_MoveParent,
/*160480*/        OPC_RecordChild2, // #3 = $src1
/*160481*/        OPC_CheckType, MVT::v2f64,
/*160483*/        OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*160485*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*160488*/        OPC_EmitMergeInputChains1_1,
/*160489*/        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>>, VR128:{ *:[v2f64] }:$src1) - Complexity = 25
                  // Dst: (VFNMSUB231PDm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*160502*/      0, /*End of Scope*/
/*160503*/    /*Scope*/ 36, /*->160540*/
/*160504*/      OPC_MoveChild0,
/*160505*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*160508*/      OPC_RecordMemRef,
/*160509*/      OPC_RecordNode, // #0 = 'ld' chained node
/*160510*/      OPC_CheckFoldableChainNode,
/*160511*/      OPC_RecordChild1, // #1 = $src3
/*160512*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*160514*/      OPC_CheckPredicate, 9, // Predicate_load
/*160516*/      OPC_MoveParent,
/*160517*/      OPC_RecordChild1, // #2 = $src1
/*160518*/      OPC_RecordChild2, // #3 = $src2
/*160519*/      OPC_CheckType, MVT::v2f64,
/*160521*/      OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*160523*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*160526*/      OPC_EmitMergeInputChains1_0,
/*160527*/      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>>, VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2) - Complexity = 25
                // Dst: (VFNMSUB132PDm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*160540*/    /*Scope*/ 75, /*->160616*/
/*160541*/      OPC_RecordChild0, // #0 = $src2
/*160542*/      OPC_Scope, 35, /*->160579*/ // 2 children in Scope
/*160544*/        OPC_RecordChild1, // #1 = $src1
/*160545*/        OPC_MoveChild2,
/*160546*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*160549*/        OPC_RecordMemRef,
/*160550*/        OPC_RecordNode, // #2 = 'ld' chained node
/*160551*/        OPC_CheckFoldableChainNode,
/*160552*/        OPC_RecordChild1, // #3 = $src3
/*160553*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*160555*/        OPC_CheckPredicate, 9, // Predicate_load
/*160557*/        OPC_MoveParent,
/*160558*/        OPC_CheckType, MVT::v4f64,
/*160560*/        OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*160562*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*160565*/        OPC_EmitMergeInputChains1_2,
/*160566*/        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>>) - Complexity = 25
                  // Dst: (VFNMSUB213PDYm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*160579*/      /*Scope*/ 35, /*->160615*/
/*160580*/        OPC_MoveChild1,
/*160581*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*160584*/        OPC_RecordMemRef,
/*160585*/        OPC_RecordNode, // #1 = 'ld' chained node
/*160586*/        OPC_CheckFoldableChainNode,
/*160587*/        OPC_RecordChild1, // #2 = $src3
/*160588*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*160590*/        OPC_CheckPredicate, 9, // Predicate_load
/*160592*/        OPC_MoveParent,
/*160593*/        OPC_RecordChild2, // #3 = $src1
/*160594*/        OPC_CheckType, MVT::v4f64,
/*160596*/        OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*160598*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*160601*/        OPC_EmitMergeInputChains1_1,
/*160602*/        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>>, VR256:{ *:[v4f64] }:$src1) - Complexity = 25
                  // Dst: (VFNMSUB231PDYm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*160615*/      0, /*End of Scope*/
/*160616*/    /*Scope*/ 36, /*->160653*/
/*160617*/      OPC_MoveChild0,
/*160618*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*160621*/      OPC_RecordMemRef,
/*160622*/      OPC_RecordNode, // #0 = 'ld' chained node
/*160623*/      OPC_CheckFoldableChainNode,
/*160624*/      OPC_RecordChild1, // #1 = $src3
/*160625*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*160627*/      OPC_CheckPredicate, 9, // Predicate_load
/*160629*/      OPC_MoveParent,
/*160630*/      OPC_RecordChild1, // #2 = $src1
/*160631*/      OPC_RecordChild2, // #3 = $src2
/*160632*/      OPC_CheckType, MVT::v4f64,
/*160634*/      OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*160636*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*160639*/      OPC_EmitMergeInputChains1_0,
/*160640*/      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>>, VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2) - Complexity = 25
                // Dst: (VFNMSUB132PDYm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*160653*/    /*Scope*/ 115|128,6/*883*/, /*->161538*/
/*160655*/      OPC_RecordChild0, // #0 = $src1
/*160656*/      OPC_Scope, 35, /*->160693*/ // 10 children in Scope
/*160658*/        OPC_RecordChild1, // #1 = $src2
/*160659*/        OPC_MoveChild2,
/*160660*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*160663*/        OPC_RecordMemRef,
/*160664*/        OPC_RecordNode, // #2 = 'ld' chained node
/*160665*/        OPC_CheckFoldableChainNode,
/*160666*/        OPC_RecordChild1, // #3 = $src3
/*160667*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*160669*/        OPC_CheckPredicate, 9, // Predicate_load
/*160671*/        OPC_MoveParent,
/*160672*/        OPC_CheckType, MVT::v4f32,
/*160674*/        OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*160676*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*160679*/        OPC_EmitMergeInputChains1_2,
/*160680*/        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>>) - Complexity = 25
                  // Dst: (VFNMSUBPS4rm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*160693*/      /*Scope*/ 35, /*->160729*/
/*160694*/        OPC_MoveChild1,
/*160695*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*160698*/        OPC_RecordMemRef,
/*160699*/        OPC_RecordNode, // #1 = 'ld' chained node
/*160700*/        OPC_CheckFoldableChainNode,
/*160701*/        OPC_RecordChild1, // #2 = $src2
/*160702*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*160704*/        OPC_CheckPredicate, 9, // Predicate_load
/*160706*/        OPC_MoveParent,
/*160707*/        OPC_RecordChild2, // #3 = $src3
/*160708*/        OPC_CheckType, MVT::v4f32,
/*160710*/        OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*160712*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*160715*/        OPC_EmitMergeInputChains1_1,
/*160716*/        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>>, VR128:{ *:[v4f32] }:$src3) - Complexity = 25
                  // Dst: (VFNMSUBPS4mr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v4f32] }:$src3)
/*160729*/      /*Scope*/ 35, /*->160765*/
/*160730*/        OPC_RecordChild1, // #1 = $src2
/*160731*/        OPC_MoveChild2,
/*160732*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*160735*/        OPC_RecordMemRef,
/*160736*/        OPC_RecordNode, // #2 = 'ld' chained node
/*160737*/        OPC_CheckFoldableChainNode,
/*160738*/        OPC_RecordChild1, // #3 = $src3
/*160739*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*160741*/        OPC_CheckPredicate, 9, // Predicate_load
/*160743*/        OPC_MoveParent,
/*160744*/        OPC_CheckType, MVT::v8f32,
/*160746*/        OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*160748*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*160751*/        OPC_EmitMergeInputChains1_2,
/*160752*/        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>>) - Complexity = 25
                  // Dst: (VFNMSUBPS4Yrm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*160765*/      /*Scope*/ 35, /*->160801*/
/*160766*/        OPC_MoveChild1,
/*160767*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*160770*/        OPC_RecordMemRef,
/*160771*/        OPC_RecordNode, // #1 = 'ld' chained node
/*160772*/        OPC_CheckFoldableChainNode,
/*160773*/        OPC_RecordChild1, // #2 = $src2
/*160774*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*160776*/        OPC_CheckPredicate, 9, // Predicate_load
/*160778*/        OPC_MoveParent,
/*160779*/        OPC_RecordChild2, // #3 = $src3
/*160780*/        OPC_CheckType, MVT::v8f32,
/*160782*/        OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*160784*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*160787*/        OPC_EmitMergeInputChains1_1,
/*160788*/        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>>, VR256:{ *:[v8f32] }:$src3) - Complexity = 25
                  // Dst: (VFNMSUBPS4Ymr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v8f32] }:$src3)
/*160801*/      /*Scope*/ 35, /*->160837*/
/*160802*/        OPC_RecordChild1, // #1 = $src2
/*160803*/        OPC_MoveChild2,
/*160804*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*160807*/        OPC_RecordMemRef,
/*160808*/        OPC_RecordNode, // #2 = 'ld' chained node
/*160809*/        OPC_CheckFoldableChainNode,
/*160810*/        OPC_RecordChild1, // #3 = $src3
/*160811*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*160813*/        OPC_CheckPredicate, 9, // Predicate_load
/*160815*/        OPC_MoveParent,
/*160816*/        OPC_CheckType, MVT::v2f64,
/*160818*/        OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*160820*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*160823*/        OPC_EmitMergeInputChains1_2,
/*160824*/        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>>) - Complexity = 25
                  // Dst: (VFNMSUBPD4rm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*160837*/      /*Scope*/ 35, /*->160873*/
/*160838*/        OPC_MoveChild1,
/*160839*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*160842*/        OPC_RecordMemRef,
/*160843*/        OPC_RecordNode, // #1 = 'ld' chained node
/*160844*/        OPC_CheckFoldableChainNode,
/*160845*/        OPC_RecordChild1, // #2 = $src2
/*160846*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*160848*/        OPC_CheckPredicate, 9, // Predicate_load
/*160850*/        OPC_MoveParent,
/*160851*/        OPC_RecordChild2, // #3 = $src3
/*160852*/        OPC_CheckType, MVT::v2f64,
/*160854*/        OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*160856*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*160859*/        OPC_EmitMergeInputChains1_1,
/*160860*/        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>>, VR128:{ *:[v2f64] }:$src3) - Complexity = 25
                  // Dst: (VFNMSUBPD4mr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v2f64] }:$src3)
/*160873*/      /*Scope*/ 35, /*->160909*/
/*160874*/        OPC_RecordChild1, // #1 = $src2
/*160875*/        OPC_MoveChild2,
/*160876*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*160879*/        OPC_RecordMemRef,
/*160880*/        OPC_RecordNode, // #2 = 'ld' chained node
/*160881*/        OPC_CheckFoldableChainNode,
/*160882*/        OPC_RecordChild1, // #3 = $src3
/*160883*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*160885*/        OPC_CheckPredicate, 9, // Predicate_load
/*160887*/        OPC_MoveParent,
/*160888*/        OPC_CheckType, MVT::v4f64,
/*160890*/        OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*160892*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*160895*/        OPC_EmitMergeInputChains1_2,
/*160896*/        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>>) - Complexity = 25
                  // Dst: (VFNMSUBPD4Yrm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*160909*/      /*Scope*/ 35, /*->160945*/
/*160910*/        OPC_MoveChild1,
/*160911*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*160914*/        OPC_RecordMemRef,
/*160915*/        OPC_RecordNode, // #1 = 'ld' chained node
/*160916*/        OPC_CheckFoldableChainNode,
/*160917*/        OPC_RecordChild1, // #2 = $src2
/*160918*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*160920*/        OPC_CheckPredicate, 9, // Predicate_load
/*160922*/        OPC_MoveParent,
/*160923*/        OPC_RecordChild2, // #3 = $src3
/*160924*/        OPC_CheckType, MVT::v4f64,
/*160926*/        OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*160928*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*160931*/        OPC_EmitMergeInputChains1_1,
/*160932*/        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>>, VR256:{ *:[v4f64] }:$src3) - Complexity = 25
                  // Dst: (VFNMSUBPD4Ymr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v4f64] }:$src3)
/*160945*/      /*Scope*/ 37|128,2/*293*/, /*->161240*/
/*160947*/        OPC_RecordChild1, // #1 = $src1
/*160948*/        OPC_MoveChild2,
/*160949*/        OPC_SwitchOpcode /*2 cases */, 9|128,1/*137*/, TARGET_VAL(ISD::LOAD),// ->161091
/*160954*/          OPC_RecordMemRef,
/*160955*/          OPC_RecordNode, // #2 = 'ld' chained node
/*160956*/          OPC_CheckFoldableChainNode,
/*160957*/          OPC_RecordChild1, // #3 = $src3
/*160958*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*160960*/          OPC_CheckPredicate, 9, // Predicate_load
/*160962*/          OPC_MoveParent,
/*160963*/          OPC_SwitchType /*6 cases */, 19, MVT::v16f32,// ->160985
/*160966*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*160968*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*160971*/            OPC_EmitMergeInputChains1_2,
/*160972*/            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>>) - Complexity = 25
                      // Dst: (VFNMSUB213PSZm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*160985*/          /*SwitchType*/ 19, MVT::v8f32,// ->161006
/*160987*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*160989*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*160992*/            OPC_EmitMergeInputChains1_2,
/*160993*/            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>>) - Complexity = 25
                      // Dst: (VFNMSUB213PSZ256m:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*161006*/          /*SwitchType*/ 19, MVT::v4f32,// ->161027
/*161008*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*161010*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*161013*/            OPC_EmitMergeInputChains1_2,
/*161014*/            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>>) - Complexity = 25
                      // Dst: (VFNMSUB213PSZ128m:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*161027*/          /*SwitchType*/ 19, MVT::v8f64,// ->161048
/*161029*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*161031*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*161034*/            OPC_EmitMergeInputChains1_2,
/*161035*/            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>>) - Complexity = 25
                      // Dst: (VFNMSUB213PDZm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*161048*/          /*SwitchType*/ 19, MVT::v4f64,// ->161069
/*161050*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*161052*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*161055*/            OPC_EmitMergeInputChains1_2,
/*161056*/            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>>) - Complexity = 25
                      // Dst: (VFNMSUB213PDZ256m:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*161069*/          /*SwitchType*/ 19, MVT::v2f64,// ->161090
/*161071*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*161073*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*161076*/            OPC_EmitMergeInputChains1_2,
/*161077*/            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>>) - Complexity = 25
                      // Dst: (VFNMSUB213PDZ128m:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*161090*/          0, // EndSwitchType
/*161091*/        /*SwitchOpcode*/ 16|128,1/*144*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->161239
/*161095*/          OPC_RecordMemRef,
/*161096*/          OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*161097*/          OPC_CheckFoldableChainNode,
/*161098*/          OPC_RecordChild1, // #3 = $src3
/*161099*/          OPC_Scope, 68, /*->161169*/ // 2 children in Scope
/*161101*/            OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*161103*/            OPC_MoveParent,
/*161104*/            OPC_SwitchType /*3 cases */, 19, MVT::v16f32,// ->161126
/*161107*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*161109*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*161112*/              OPC_EmitMergeInputChains1_2,
/*161113*/              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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VFNMSUB213PSZmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*161126*/            /*SwitchType*/ 19, MVT::v8f32,// ->161147
/*161128*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*161130*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*161133*/              OPC_EmitMergeInputChains1_2,
/*161134*/              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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VFNMSUB213PSZ256mb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*161147*/            /*SwitchType*/ 19, MVT::v4f32,// ->161168
/*161149*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*161151*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*161154*/              OPC_EmitMergeInputChains1_2,
/*161155*/              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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VFNMSUB213PSZ128mb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*161168*/            0, // EndSwitchType
/*161169*/          /*Scope*/ 68, /*->161238*/
/*161170*/            OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*161172*/            OPC_MoveParent,
/*161173*/            OPC_SwitchType /*3 cases */, 19, MVT::v8f64,// ->161195
/*161176*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*161178*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*161181*/              OPC_EmitMergeInputChains1_2,
/*161182*/              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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VFNMSUB213PDZmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*161195*/            /*SwitchType*/ 19, MVT::v4f64,// ->161216
/*161197*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*161199*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*161202*/              OPC_EmitMergeInputChains1_2,
/*161203*/              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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VFNMSUB213PDZ256mb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*161216*/            /*SwitchType*/ 19, MVT::v2f64,// ->161237
/*161218*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*161220*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*161223*/              OPC_EmitMergeInputChains1_2,
/*161224*/              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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VFNMSUB213PDZ128mb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*161237*/            0, // EndSwitchType
/*161238*/          0, /*End of Scope*/
/*161239*/        0, // EndSwitchOpcode
/*161240*/      /*Scope*/ 39|128,2/*295*/, /*->161537*/
/*161242*/        OPC_MoveChild1,
/*161243*/        OPC_SwitchOpcode /*2 cases */, 10|128,1/*138*/, TARGET_VAL(ISD::LOAD),// ->161386
/*161248*/          OPC_RecordMemRef,
/*161249*/          OPC_RecordNode, // #1 = 'ld' chained node
/*161250*/          OPC_CheckFoldableChainNode,
/*161251*/          OPC_RecordChild1, // #2 = $src3
/*161252*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*161254*/          OPC_CheckPredicate, 9, // Predicate_load
/*161256*/          OPC_MoveParent,
/*161257*/          OPC_RecordChild2, // #3 = $src1
/*161258*/          OPC_SwitchType /*6 cases */, 19, MVT::v16f32,// ->161280
/*161261*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*161263*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*161266*/            OPC_EmitMergeInputChains1_1,
/*161267*/            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>>, VR512:{ *:[v16f32] }:$src1) - Complexity = 25
                      // Dst: (VFNMSUB231PSZm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*161280*/          /*SwitchType*/ 19, MVT::v8f32,// ->161301
/*161282*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*161284*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*161287*/            OPC_EmitMergeInputChains1_1,
/*161288*/            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>>, VR256X:{ *:[v8f32] }:$src1) - Complexity = 25
                      // Dst: (VFNMSUB231PSZ256m:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*161301*/          /*SwitchType*/ 19, MVT::v4f32,// ->161322
/*161303*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*161305*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*161308*/            OPC_EmitMergeInputChains1_1,
/*161309*/            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>>, VR128X:{ *:[v4f32] }:$src1) - Complexity = 25
                      // Dst: (VFNMSUB231PSZ128m:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*161322*/          /*SwitchType*/ 19, MVT::v8f64,// ->161343
/*161324*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*161326*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*161329*/            OPC_EmitMergeInputChains1_1,
/*161330*/            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>>, VR512:{ *:[v8f64] }:$src1) - Complexity = 25
                      // Dst: (VFNMSUB231PDZm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*161343*/          /*SwitchType*/ 19, MVT::v4f64,// ->161364
/*161345*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*161347*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*161350*/            OPC_EmitMergeInputChains1_1,
/*161351*/            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>>, VR256X:{ *:[v4f64] }:$src1) - Complexity = 25
                      // Dst: (VFNMSUB231PDZ256m:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*161364*/          /*SwitchType*/ 19, MVT::v2f64,// ->161385
/*161366*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*161368*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*161371*/            OPC_EmitMergeInputChains1_1,
/*161372*/            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>>, VR128X:{ *:[v2f64] }:$src1) - Complexity = 25
                      // Dst: (VFNMSUB231PDZ128m:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*161385*/          0, // EndSwitchType
/*161386*/        /*SwitchOpcode*/ 18|128,1/*146*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->161536
/*161390*/          OPC_RecordMemRef,
/*161391*/          OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*161392*/          OPC_CheckFoldableChainNode,
/*161393*/          OPC_RecordChild1, // #2 = $src3
/*161394*/          OPC_Scope, 69, /*->161465*/ // 2 children in Scope
/*161396*/            OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*161398*/            OPC_MoveParent,
/*161399*/            OPC_RecordChild2, // #3 = $src1
/*161400*/            OPC_SwitchType /*3 cases */, 19, MVT::v16f32,// ->161422
/*161403*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*161405*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*161408*/              OPC_EmitMergeInputChains1_1,
/*161409*/              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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src1) - Complexity = 25
                        // Dst: (VFNMSUB231PSZmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*161422*/            /*SwitchType*/ 19, MVT::v8f32,// ->161443
/*161424*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*161426*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*161429*/              OPC_EmitMergeInputChains1_1,
/*161430*/              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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1) - Complexity = 25
                        // Dst: (VFNMSUB231PSZ256mb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*161443*/            /*SwitchType*/ 19, MVT::v4f32,// ->161464
/*161445*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*161447*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*161450*/              OPC_EmitMergeInputChains1_1,
/*161451*/              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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1) - Complexity = 25
                        // Dst: (VFNMSUB231PSZ128mb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*161464*/            0, // EndSwitchType
/*161465*/          /*Scope*/ 69, /*->161535*/
/*161466*/            OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*161468*/            OPC_MoveParent,
/*161469*/            OPC_RecordChild2, // #3 = $src1
/*161470*/            OPC_SwitchType /*3 cases */, 19, MVT::v8f64,// ->161492
/*161473*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*161475*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*161478*/              OPC_EmitMergeInputChains1_1,
/*161479*/              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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src1) - Complexity = 25
                        // Dst: (VFNMSUB231PDZmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*161492*/            /*SwitchType*/ 19, MVT::v4f64,// ->161513
/*161494*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*161496*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*161499*/              OPC_EmitMergeInputChains1_1,
/*161500*/              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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1) - Complexity = 25
                        // Dst: (VFNMSUB231PDZ256mb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*161513*/            /*SwitchType*/ 19, MVT::v2f64,// ->161534
/*161515*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*161517*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*161520*/              OPC_EmitMergeInputChains1_1,
/*161521*/              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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1) - Complexity = 25
                        // Dst: (VFNMSUB231PDZ128mb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*161534*/            0, // EndSwitchType
/*161535*/          0, /*End of Scope*/
/*161536*/        0, // EndSwitchOpcode
/*161537*/      0, /*End of Scope*/
/*161538*/    /*Scope*/ 6|128,3/*390*/, /*->161930*/
/*161540*/      OPC_MoveChild0,
/*161541*/      OPC_SwitchOpcode /*2 cases */, 103|128,1/*231*/, TARGET_VAL(ISD::LOAD),// ->161777
/*161546*/        OPC_RecordMemRef,
/*161547*/        OPC_RecordNode, // #0 = 'ld' chained node
/*161548*/        OPC_CheckFoldableChainNode,
/*161549*/        OPC_RecordChild1, // #1 = $src3
/*161550*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*161552*/        OPC_CheckPredicate, 9, // Predicate_load
/*161554*/        OPC_MoveParent,
/*161555*/        OPC_RecordChild1, // #2 = $src1
/*161556*/        OPC_RecordChild2, // #3 = $src2
/*161557*/        OPC_SwitchType /*6 cases */, 19, MVT::v16f32,// ->161579
/*161560*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*161562*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*161565*/          OPC_EmitMergeInputChains1_0,
/*161566*/          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>>, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2) - Complexity = 25
                    // Dst: (VFNMSUB132PSZm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*161579*/        /*SwitchType*/ 42, MVT::v8f32,// ->161623
/*161581*/          OPC_Scope, 19, /*->161602*/ // 2 children in Scope
/*161583*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*161585*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*161588*/            OPC_EmitMergeInputChains1_0,
/*161589*/            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>>, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2) - Complexity = 25
                      // Dst: (VFNMSUB132PSZ256m:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*161602*/          /*Scope*/ 19, /*->161622*/
/*161603*/            OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*161605*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*161608*/            OPC_EmitMergeInputChains1_0,
/*161609*/            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>>, VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src3) - Complexity = 25
                      // Dst: (VFNMSUBPS4Ymr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v8f32] }:$src3)
/*161622*/          0, /*End of Scope*/
/*161623*/        /*SwitchType*/ 42, MVT::v4f32,// ->161667
/*161625*/          OPC_Scope, 19, /*->161646*/ // 2 children in Scope
/*161627*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*161629*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*161632*/            OPC_EmitMergeInputChains1_0,
/*161633*/            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>>, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2) - Complexity = 25
                      // Dst: (VFNMSUB132PSZ128m:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*161646*/          /*Scope*/ 19, /*->161666*/
/*161647*/            OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*161649*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*161652*/            OPC_EmitMergeInputChains1_0,
/*161653*/            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>>, VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src3) - Complexity = 25
                      // Dst: (VFNMSUBPS4mr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v4f32] }:$src3)
/*161666*/          0, /*End of Scope*/
/*161667*/        /*SwitchType*/ 19, MVT::v8f64,// ->161688
/*161669*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*161671*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*161674*/          OPC_EmitMergeInputChains1_0,
/*161675*/          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>>, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2) - Complexity = 25
                    // Dst: (VFNMSUB132PDZm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*161688*/        /*SwitchType*/ 42, MVT::v4f64,// ->161732
/*161690*/          OPC_Scope, 19, /*->161711*/ // 2 children in Scope
/*161692*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*161694*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*161697*/            OPC_EmitMergeInputChains1_0,
/*161698*/            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>>, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2) - Complexity = 25
                      // Dst: (VFNMSUB132PDZ256m:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*161711*/          /*Scope*/ 19, /*->161731*/
/*161712*/            OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*161714*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*161717*/            OPC_EmitMergeInputChains1_0,
/*161718*/            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>>, VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src3) - Complexity = 25
                      // Dst: (VFNMSUBPD4Ymr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v4f64] }:$src3)
/*161731*/          0, /*End of Scope*/
/*161732*/        /*SwitchType*/ 42, MVT::v2f64,// ->161776
/*161734*/          OPC_Scope, 19, /*->161755*/ // 2 children in Scope
/*161736*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*161738*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*161741*/            OPC_EmitMergeInputChains1_0,
/*161742*/            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>>, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2) - Complexity = 25
                      // Dst: (VFNMSUB132PDZ128m:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*161755*/          /*Scope*/ 19, /*->161775*/
/*161756*/            OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*161758*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*161761*/            OPC_EmitMergeInputChains1_0,
/*161762*/            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>>, VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src3) - Complexity = 25
                      // Dst: (VFNMSUBPD4mr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v2f64] }:$src3)
/*161775*/          0, /*End of Scope*/
/*161776*/        0, // EndSwitchType
/*161777*/      /*SwitchOpcode*/ 20|128,1/*148*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->161929
/*161781*/        OPC_RecordMemRef,
/*161782*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*161783*/        OPC_CheckFoldableChainNode,
/*161784*/        OPC_RecordChild1, // #1 = $src3
/*161785*/        OPC_Scope, 70, /*->161857*/ // 2 children in Scope
/*161787*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*161789*/          OPC_MoveParent,
/*161790*/          OPC_RecordChild1, // #2 = $src1
/*161791*/          OPC_RecordChild2, // #3 = $src2
/*161792*/          OPC_SwitchType /*3 cases */, 19, MVT::v16f32,// ->161814
/*161795*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*161797*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*161800*/            OPC_EmitMergeInputChains1_0,
/*161801*/            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] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2) - Complexity = 25
                      // Dst: (VFNMSUB132PSZmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*161814*/          /*SwitchType*/ 19, MVT::v8f32,// ->161835
/*161816*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*161818*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*161821*/            OPC_EmitMergeInputChains1_0,
/*161822*/            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] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2) - Complexity = 25
                      // Dst: (VFNMSUB132PSZ256mb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*161835*/          /*SwitchType*/ 19, MVT::v4f32,// ->161856
/*161837*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*161839*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*161842*/            OPC_EmitMergeInputChains1_0,
/*161843*/            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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2) - Complexity = 25
                      // Dst: (VFNMSUB132PSZ128mb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*161856*/          0, // EndSwitchType
/*161857*/        /*Scope*/ 70, /*->161928*/
/*161858*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*161860*/          OPC_MoveParent,
/*161861*/          OPC_RecordChild1, // #2 = $src1
/*161862*/          OPC_RecordChild2, // #3 = $src2
/*161863*/          OPC_SwitchType /*3 cases */, 19, MVT::v8f64,// ->161885
/*161866*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*161868*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*161871*/            OPC_EmitMergeInputChains1_0,
/*161872*/            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] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2) - Complexity = 25
                      // Dst: (VFNMSUB132PDZmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*161885*/          /*SwitchType*/ 19, MVT::v4f64,// ->161906
/*161887*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*161889*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*161892*/            OPC_EmitMergeInputChains1_0,
/*161893*/            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] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2) - Complexity = 25
                      // Dst: (VFNMSUB132PDZ256mb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*161906*/          /*SwitchType*/ 19, MVT::v2f64,// ->161927
/*161908*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*161910*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*161913*/            OPC_EmitMergeInputChains1_0,
/*161914*/            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] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2) - Complexity = 25
                      // Dst: (VFNMSUB132PDZ128mb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*161927*/          0, // EndSwitchType
/*161928*/        0, /*End of Scope*/
/*161929*/      0, // EndSwitchOpcode
/*161930*/    /*Scope*/ 63|128,1/*191*/, /*->162123*/
/*161932*/      OPC_RecordChild0, // #0 = $src2
/*161933*/      OPC_RecordChild1, // #1 = $src1
/*161934*/      OPC_RecordChild2, // #2 = $src3
/*161935*/      OPC_SwitchType /*6 cases */, 38, MVT::v4f32,// ->161976
/*161938*/        OPC_Scope, 11, /*->161951*/ // 3 children in Scope
/*161940*/          OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*161942*/          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)
/*161951*/        /*Scope*/ 11, /*->161963*/
/*161952*/          OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*161954*/          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)
/*161963*/        /*Scope*/ 11, /*->161975*/
/*161964*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*161966*/          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)
/*161975*/        0, /*End of Scope*/
/*161976*/      /*SwitchType*/ 38, MVT::v8f32,// ->162016
/*161978*/        OPC_Scope, 11, /*->161991*/ // 3 children in Scope
/*161980*/          OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*161982*/          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)
/*161991*/        /*Scope*/ 11, /*->162003*/
/*161992*/          OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*161994*/          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)
/*162003*/        /*Scope*/ 11, /*->162015*/
/*162004*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*162006*/          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)
/*162015*/        0, /*End of Scope*/
/*162016*/      /*SwitchType*/ 38, MVT::v2f64,// ->162056
/*162018*/        OPC_Scope, 11, /*->162031*/ // 3 children in Scope
/*162020*/          OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*162022*/          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)
/*162031*/        /*Scope*/ 11, /*->162043*/
/*162032*/          OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*162034*/          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)
/*162043*/        /*Scope*/ 11, /*->162055*/
/*162044*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*162046*/          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)
/*162055*/        0, /*End of Scope*/
/*162056*/      /*SwitchType*/ 38, MVT::v4f64,// ->162096
/*162058*/        OPC_Scope, 11, /*->162071*/ // 3 children in Scope
/*162060*/          OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*162062*/          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)
/*162071*/        /*Scope*/ 11, /*->162083*/
/*162072*/          OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*162074*/          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)
/*162083*/        /*Scope*/ 11, /*->162095*/
/*162084*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*162086*/          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)
/*162095*/        0, /*End of Scope*/
/*162096*/      /*SwitchType*/ 11, MVT::v16f32,// ->162109
/*162098*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*162100*/        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)
/*162109*/      /*SwitchType*/ 11, MVT::v8f64,// ->162122
/*162111*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*162113*/        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)
/*162122*/      0, // EndSwitchType
/*162123*/    0, /*End of Scope*/
/*162124*/  /*SwitchOpcode*/ 4|128,11/*1412*/, TARGET_VAL(ISD::STRICT_SINT_TO_FP),// ->163540
/*162128*/    OPC_RecordNode, // #0 = 'strict_sint_to_fp' chained node
/*162129*/    OPC_Scope, 96|128,2/*352*/, /*->162484*/ // 4 children in Scope
/*162132*/      OPC_MoveChild1,
/*162133*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*162136*/      OPC_RecordMemRef,
/*162137*/      OPC_RecordNode, // #1 = 'ld' chained node
/*162138*/      OPC_CheckFoldableChainNode,
/*162139*/      OPC_RecordChild1, // #2 = $src
/*162140*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*162142*/      OPC_SwitchType /*2 cases */, 39|128,1/*167*/, MVT::i32,// ->162313
/*162146*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*162148*/        OPC_MoveParent,
/*162149*/        OPC_SwitchType /*2 cases */, 79, MVT::f32,// ->162231
/*162152*/          OPC_Scope, 20, /*->162174*/ // 3 children in Scope
/*162154*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*162156*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*162159*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*162163*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CVTSI2SSrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (strict_sint_to_fp:{ *:[f32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>) - Complexity = 25
                      // Dst: (CVTSI2SSrm:{ *:[f32] } addr:{ *:[iPTR] }:$src)
/*162174*/          /*Scope*/ 27, /*->162202*/
/*162175*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*162177*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*162180*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*162184*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f32, 0/*#Ops*/,  // Results = #8
/*162190*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI2SSrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f32, 6/*#Ops*/, 8, 3, 4, 5, 6, 7, 
                      // Src: (strict_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)
/*162202*/          /*Scope*/ 27, /*->162230*/
/*162203*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*162205*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*162208*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*162212*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f32, 0/*#Ops*/,  // Results = #8
/*162218*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI2SSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f32, 6/*#Ops*/, 8, 3, 4, 5, 6, 7, 
                      // Src: (strict_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)
/*162230*/          0, /*End of Scope*/
/*162231*/        /*SwitchType*/ 79, MVT::f64,// ->162312
/*162233*/          OPC_Scope, 20, /*->162255*/ // 3 children in Scope
/*162235*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*162237*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*162240*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*162244*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CVTSI2SDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (strict_sint_to_fp:{ *:[f64] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>) - Complexity = 25
                      // Dst: (CVTSI2SDrm:{ *:[f64] } addr:{ *:[iPTR] }:$src)
/*162255*/          /*Scope*/ 27, /*->162283*/
/*162256*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*162258*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*162261*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*162265*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f64, 0/*#Ops*/,  // Results = #8
/*162271*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI2SDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 6/*#Ops*/, 8, 3, 4, 5, 6, 7, 
                      // Src: (strict_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)
/*162283*/          /*Scope*/ 27, /*->162311*/
/*162284*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*162286*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*162289*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*162293*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f64, 0/*#Ops*/,  // Results = #8
/*162299*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI2SDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 6/*#Ops*/, 8, 3, 4, 5, 6, 7, 
                      // Src: (strict_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)
/*162311*/          0, /*End of Scope*/
/*162312*/        0, // EndSwitchType
/*162313*/      /*SwitchType*/ 39|128,1/*167*/, MVT::i64,// ->162483
/*162316*/        OPC_CheckPredicate, 9, // Predicate_load
/*162318*/        OPC_MoveParent,
/*162319*/        OPC_SwitchType /*2 cases */, 79, MVT::f32,// ->162401
/*162322*/          OPC_Scope, 20, /*->162344*/ // 3 children in Scope
/*162324*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*162326*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*162329*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*162333*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CVTSI642SSrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (strict_sint_to_fp:{ *:[f32] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (CVTSI642SSrm:{ *:[f32] } addr:{ *:[iPTR] }:$src)
/*162344*/          /*Scope*/ 27, /*->162372*/
/*162345*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*162347*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*162350*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*162354*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f32, 0/*#Ops*/,  // Results = #8
/*162360*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI642SSrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f32, 6/*#Ops*/, 8, 3, 4, 5, 6, 7, 
                      // Src: (strict_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)
/*162372*/          /*Scope*/ 27, /*->162400*/
/*162373*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*162375*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*162378*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*162382*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f32, 0/*#Ops*/,  // Results = #8
/*162388*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI642SSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f32, 6/*#Ops*/, 8, 3, 4, 5, 6, 7, 
                      // Src: (strict_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)
/*162400*/          0, /*End of Scope*/
/*162401*/        /*SwitchType*/ 79, MVT::f64,// ->162482
/*162403*/          OPC_Scope, 20, /*->162425*/ // 3 children in Scope
/*162405*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*162407*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*162410*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*162414*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CVTSI642SDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (strict_sint_to_fp:{ *:[f64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (CVTSI642SDrm:{ *:[f64] } addr:{ *:[iPTR] }:$src)
/*162425*/          /*Scope*/ 27, /*->162453*/
/*162426*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*162428*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*162431*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*162435*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f64, 0/*#Ops*/,  // Results = #8
/*162441*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI642SDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 6/*#Ops*/, 8, 3, 4, 5, 6, 7, 
                      // Src: (strict_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)
/*162453*/          /*Scope*/ 27, /*->162481*/
/*162454*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*162456*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*162459*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*162463*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f64, 0/*#Ops*/,  // Results = #8
/*162469*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI642SDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::f64, 6/*#Ops*/, 8, 3, 4, 5, 6, 7, 
                      // Src: (strict_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)
/*162481*/          0, /*End of Scope*/
/*162482*/        0, // EndSwitchType
/*162483*/      0, // EndSwitchType
/*162484*/    /*Scope*/ 89|128,1/*217*/, /*->162703*/
/*162486*/      OPC_RecordChild1, // #1 = $src
/*162487*/      OPC_Scope, 106, /*->162595*/ // 2 children in Scope
/*162489*/        OPC_CheckChild1Type, MVT::i32,
/*162491*/        OPC_SwitchType /*2 cases */, 49, MVT::f32,// ->162543
/*162494*/          OPC_Scope, 10, /*->162506*/ // 3 children in Scope
/*162496*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*162498*/            OPC_EmitMergeInputChains1_0,
/*162499*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CVTSI2SSrr), 0|OPFL_Chain,
                          MVT::f32, 1/*#Ops*/, 1, 
                      // Src: (strict_sint_to_fp:{ *:[f32] } GR32:{ *:[i32] }:$src) - Complexity = 3
                      // Dst: (CVTSI2SSrr:{ *:[f32] } GR32:{ *:[i32] }:$src)
/*162506*/          /*Scope*/ 17, /*->162524*/
/*162507*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*162509*/            OPC_EmitMergeInputChains1_0,
/*162510*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f32, 0/*#Ops*/,  // Results = #2
/*162516*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI2SSrr), 0|OPFL_Chain,
                          MVT::f32, 2/*#Ops*/, 2, 1, 
                      // Src: (strict_sint_to_fp:{ *:[f32] } GR32:{ *:[i32] }:$src) - Complexity = 3
                      // Dst: (VCVTSI2SSrr:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), GR32:{ *:[i32] }:$src)
/*162524*/          /*Scope*/ 17, /*->162542*/
/*162525*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*162527*/            OPC_EmitMergeInputChains1_0,
/*162528*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f32, 0/*#Ops*/,  // Results = #2
/*162534*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI2SSZrr), 0|OPFL_Chain,
                          MVT::f32, 2/*#Ops*/, 2, 1, 
                      // Src: (strict_sint_to_fp:{ *:[f32] } GR32:{ *:[i32] }:$src) - Complexity = 3
                      // Dst: (VCVTSI2SSZrr:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), GR32:{ *:[i32] }:$src)
/*162542*/          0, /*End of Scope*/
/*162543*/        /*SwitchType*/ 49, MVT::f64,// ->162594
/*162545*/          OPC_Scope, 10, /*->162557*/ // 3 children in Scope
/*162547*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*162549*/            OPC_EmitMergeInputChains1_0,
/*162550*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CVTSI2SDrr), 0|OPFL_Chain,
                          MVT::f64, 1/*#Ops*/, 1, 
                      // Src: (strict_sint_to_fp:{ *:[f64] } GR32:{ *:[i32] }:$src) - Complexity = 3
                      // Dst: (CVTSI2SDrr:{ *:[f64] } GR32:{ *:[i32] }:$src)
/*162557*/          /*Scope*/ 17, /*->162575*/
/*162558*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*162560*/            OPC_EmitMergeInputChains1_0,
/*162561*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f64, 0/*#Ops*/,  // Results = #2
/*162567*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI2SDrr), 0|OPFL_Chain,
                          MVT::f64, 2/*#Ops*/, 2, 1, 
                      // Src: (strict_sint_to_fp:{ *:[f64] } GR32:{ *:[i32] }:$src) - Complexity = 3
                      // Dst: (VCVTSI2SDrr:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), GR32:{ *:[i32] }:$src)
/*162575*/          /*Scope*/ 17, /*->162593*/
/*162576*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*162578*/            OPC_EmitMergeInputChains1_0,
/*162579*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f64, 0/*#Ops*/,  // Results = #2
/*162585*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI2SDZrr), 0|OPFL_Chain,
                          MVT::f64, 2/*#Ops*/, 2, 1, 
                      // Src: (strict_sint_to_fp:{ *:[f64] } GR32:{ *:[i32] }:$src) - Complexity = 3
                      // Dst: (VCVTSI2SDZrr:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), GR32:{ *:[i32] }:$src)
/*162593*/          0, /*End of Scope*/
/*162594*/        0, // EndSwitchType
/*162595*/      /*Scope*/ 106, /*->162702*/
/*162596*/        OPC_CheckChild1Type, MVT::i64,
/*162598*/        OPC_SwitchType /*2 cases */, 49, MVT::f32,// ->162650
/*162601*/          OPC_Scope, 10, /*->162613*/ // 3 children in Scope
/*162603*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*162605*/            OPC_EmitMergeInputChains1_0,
/*162606*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CVTSI642SSrr), 0|OPFL_Chain,
                          MVT::f32, 1/*#Ops*/, 1, 
                      // Src: (strict_sint_to_fp:{ *:[f32] } GR64:{ *:[i64] }:$src) - Complexity = 3
                      // Dst: (CVTSI642SSrr:{ *:[f32] } GR64:{ *:[i64] }:$src)
/*162613*/          /*Scope*/ 17, /*->162631*/
/*162614*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*162616*/            OPC_EmitMergeInputChains1_0,
/*162617*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f32, 0/*#Ops*/,  // Results = #2
/*162623*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI642SSrr), 0|OPFL_Chain,
                          MVT::f32, 2/*#Ops*/, 2, 1, 
                      // Src: (strict_sint_to_fp:{ *:[f32] } GR64:{ *:[i64] }:$src) - Complexity = 3
                      // Dst: (VCVTSI642SSrr:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), GR64:{ *:[i64] }:$src)
/*162631*/          /*Scope*/ 17, /*->162649*/
/*162632*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*162634*/            OPC_EmitMergeInputChains1_0,
/*162635*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f32, 0/*#Ops*/,  // Results = #2
/*162641*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI642SSZrr), 0|OPFL_Chain,
                          MVT::f32, 2/*#Ops*/, 2, 1, 
                      // Src: (strict_sint_to_fp:{ *:[f32] } GR64:{ *:[i64] }:$src) - Complexity = 3
                      // Dst: (VCVTSI642SSZrr:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), GR64:{ *:[i64] }:$src)
/*162649*/          0, /*End of Scope*/
/*162650*/        /*SwitchType*/ 49, MVT::f64,// ->162701
/*162652*/          OPC_Scope, 10, /*->162664*/ // 3 children in Scope
/*162654*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*162656*/            OPC_EmitMergeInputChains1_0,
/*162657*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CVTSI642SDrr), 0|OPFL_Chain,
                          MVT::f64, 1/*#Ops*/, 1, 
                      // Src: (strict_sint_to_fp:{ *:[f64] } GR64:{ *:[i64] }:$src) - Complexity = 3
                      // Dst: (CVTSI642SDrr:{ *:[f64] } GR64:{ *:[i64] }:$src)
/*162664*/          /*Scope*/ 17, /*->162682*/
/*162665*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*162667*/            OPC_EmitMergeInputChains1_0,
/*162668*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f64, 0/*#Ops*/,  // Results = #2
/*162674*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI642SDrr), 0|OPFL_Chain,
                          MVT::f64, 2/*#Ops*/, 2, 1, 
                      // Src: (strict_sint_to_fp:{ *:[f64] } GR64:{ *:[i64] }:$src) - Complexity = 3
                      // Dst: (VCVTSI642SDrr:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), GR64:{ *:[i64] }:$src)
/*162682*/          /*Scope*/ 17, /*->162700*/
/*162683*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*162685*/            OPC_EmitMergeInputChains1_0,
/*162686*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f64, 0/*#Ops*/,  // Results = #2
/*162692*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI642SDZrr), 0|OPFL_Chain,
                          MVT::f64, 2/*#Ops*/, 2, 1, 
                      // Src: (strict_sint_to_fp:{ *:[f64] } GR64:{ *:[i64] }:$src) - Complexity = 3
                      // Dst: (VCVTSI642SDZrr:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), GR64:{ *:[i64] }:$src)
/*162700*/          0, /*End of Scope*/
/*162701*/        0, // EndSwitchType
/*162702*/      0, /*End of Scope*/
/*162703*/    /*Scope*/ 118|128,4/*630*/, /*->163335*/
/*162705*/      OPC_MoveChild1,
/*162706*/      OPC_SwitchOpcode /*2 cases */, 101|128,2/*357*/, TARGET_VAL(ISD::LOAD),// ->163068
/*162711*/        OPC_RecordMemRef,
/*162712*/        OPC_RecordNode, // #1 = 'ld' chained node
/*162713*/        OPC_CheckFoldableChainNode,
/*162714*/        OPC_RecordChild1, // #2 = $src
/*162715*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*162717*/        OPC_CheckPredicate, 9, // Predicate_load
/*162719*/        OPC_SwitchType /*6 cases */, 124, MVT::v4i32,// ->162846
/*162722*/          OPC_Scope, 23, /*->162747*/ // 3 children in Scope
/*162724*/            OPC_MoveParent,
/*162725*/            OPC_CheckType, MVT::v4f32,
/*162727*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*162729*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*162732*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*162736*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (strict_sint_to_fp:{ *:[v4f32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VCVTDQ2PSrm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*162747*/          /*Scope*/ 25, /*->162773*/
/*162748*/            OPC_CheckPredicate, 39, // Predicate_memop
/*162750*/            OPC_MoveParent,
/*162751*/            OPC_CheckType, MVT::v4f32,
/*162753*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*162755*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*162758*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*162762*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CVTDQ2PSrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (strict_sint_to_fp:{ *:[v4f32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                      // Dst: (CVTDQ2PSrm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*162773*/          /*Scope*/ 71, /*->162845*/
/*162774*/            OPC_MoveParent,
/*162775*/            OPC_SwitchType /*2 cases */, 44, MVT::v4f64,// ->162822
/*162778*/              OPC_Scope, 20, /*->162800*/ // 2 children in Scope
/*162780*/                OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*162782*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*162785*/                OPC_EmitMergeInputChains, 2, 0, 1, 
/*162789*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                          // Src: (strict_sint_to_fp:{ *:[v4f64] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                          // Dst: (VCVTDQ2PDYrm:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*162800*/              /*Scope*/ 20, /*->162821*/
/*162801*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*162803*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*162806*/                OPC_EmitMergeInputChains, 2, 0, 1, 
/*162810*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                          // Src: (strict_sint_to_fp:{ *:[v4f64] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                          // Dst: (VCVTDQ2PDZ256rm:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*162821*/              0, /*End of Scope*/
/*162822*/            /*SwitchType*/ 20, MVT::v4f32,// ->162844
/*162824*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*162826*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*162829*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*162833*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                        // Src: (strict_sint_to_fp:{ *:[v4f32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VCVTDQ2PSZ128rm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*162844*/            0, // EndSwitchType
/*162845*/          0, /*End of Scope*/
/*162846*/        /*SwitchType*/ 71, MVT::v8i32,// ->162919
/*162848*/          OPC_MoveParent,
/*162849*/          OPC_SwitchType /*2 cases */, 44, MVT::v8f32,// ->162896
/*162852*/            OPC_Scope, 20, /*->162874*/ // 2 children in Scope
/*162854*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*162856*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*162859*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*162863*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                        // Src: (strict_sint_to_fp:{ *:[v8f32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VCVTDQ2PSYrm:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*162874*/            /*Scope*/ 20, /*->162895*/
/*162875*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*162877*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*162880*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*162884*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                        // Src: (strict_sint_to_fp:{ *:[v8f32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VCVTDQ2PSZ256rm:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*162895*/            0, /*End of Scope*/
/*162896*/          /*SwitchType*/ 20, MVT::v8f64,// ->162918
/*162898*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*162900*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*162903*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*162907*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (strict_sint_to_fp:{ *:[v8f64] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VCVTDQ2PDZrm:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*162918*/          0, // EndSwitchType
/*162919*/        /*SwitchType*/ 23, MVT::v16i32,// ->162944
/*162921*/          OPC_MoveParent,
/*162922*/          OPC_CheckType, MVT::v16f32,
/*162924*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*162926*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*162929*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*162933*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (strict_sint_to_fp:{ *:[v16f32] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VCVTDQ2PSZrm:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)
/*162944*/        /*SwitchType*/ 47, MVT::v8i64,// ->162993
/*162946*/          OPC_MoveParent,
/*162947*/          OPC_SwitchType /*2 cases */, 20, MVT::v8f64,// ->162970
/*162950*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*162952*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*162955*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*162959*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (strict_sint_to_fp:{ *:[v8f64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VCVTQQ2PDZrm:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*162970*/          /*SwitchType*/ 20, MVT::v8f32,// ->162992
/*162972*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*162974*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*162977*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*162981*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (strict_sint_to_fp:{ *:[v8f32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VCVTQQ2PSZrm:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*162992*/          0, // EndSwitchType
/*162993*/        /*SwitchType*/ 23, MVT::v2i64,// ->163018
/*162995*/          OPC_MoveParent,
/*162996*/          OPC_CheckType, MVT::v2f64,
/*162998*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*163000*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*163003*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*163007*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (strict_sint_to_fp:{ *:[v2f64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VCVTQQ2PDZ128rm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*163018*/        /*SwitchType*/ 47, MVT::v4i64,// ->163067
/*163020*/          OPC_MoveParent,
/*163021*/          OPC_SwitchType /*2 cases */, 20, MVT::v4f64,// ->163044
/*163024*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*163026*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*163029*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*163033*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (strict_sint_to_fp:{ *:[v4f64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VCVTQQ2PDZ256rm:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*163044*/          /*SwitchType*/ 20, MVT::v4f32,// ->163066
/*163046*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*163048*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*163051*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*163055*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PSZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (strict_sint_to_fp:{ *:[v4f32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VCVTQQ2PSZ256rm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*163066*/          0, // EndSwitchType
/*163067*/        0, // EndSwitchType
/*163068*/      /*SwitchOpcode*/ 6|128,2/*262*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->163334
/*163072*/        OPC_RecordMemRef,
/*163073*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*163074*/        OPC_CheckFoldableChainNode,
/*163075*/        OPC_RecordChild1, // #2 = $src
/*163076*/        OPC_Scope, 127, /*->163205*/ // 2 children in Scope
/*163078*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*163080*/          OPC_SwitchType /*3 cases */, 47, MVT::v8i32,// ->163130
/*163083*/            OPC_MoveParent,
/*163084*/            OPC_SwitchType /*2 cases */, 20, MVT::v8f64,// ->163107
/*163087*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*163089*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*163092*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*163096*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                        // Src: (strict_sint_to_fp:{ *:[v8f64] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VCVTDQ2PDZrmb:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*163107*/            /*SwitchType*/ 20, MVT::v8f32,// ->163129
/*163109*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*163111*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*163114*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*163118*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                        // Src: (strict_sint_to_fp:{ *:[v8f32] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VCVTDQ2PSZ256rmb:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*163129*/            0, // EndSwitchType
/*163130*/          /*SwitchType*/ 47, MVT::v4i32,// ->163179
/*163132*/            OPC_MoveParent,
/*163133*/            OPC_SwitchType /*2 cases */, 20, MVT::v4f64,// ->163156
/*163136*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*163138*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*163141*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*163145*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                        // Src: (strict_sint_to_fp:{ *:[v4f64] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VCVTDQ2PDZ256rmb:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*163156*/            /*SwitchType*/ 20, MVT::v4f32,// ->163178
/*163158*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*163160*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*163163*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*163167*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                        // Src: (strict_sint_to_fp:{ *:[v4f32] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VCVTDQ2PSZ128rmb:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*163178*/            0, // EndSwitchType
/*163179*/          /*SwitchType*/ 23, MVT::v16i32,// ->163204
/*163181*/            OPC_MoveParent,
/*163182*/            OPC_CheckType, MVT::v16f32,
/*163184*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*163186*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*163189*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*163193*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (strict_sint_to_fp:{ *:[v16f32] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VCVTDQ2PSZrmb:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)
/*163204*/          0, // EndSwitchType
/*163205*/        /*Scope*/ 127, /*->163333*/
/*163206*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*163208*/          OPC_SwitchType /*3 cases */, 47, MVT::v8i64,// ->163258
/*163211*/            OPC_MoveParent,
/*163212*/            OPC_SwitchType /*2 cases */, 20, MVT::v8f64,// ->163235
/*163215*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*163217*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*163220*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*163224*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                        // Src: (strict_sint_to_fp:{ *:[v8f64] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VCVTQQ2PDZrmb:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*163235*/            /*SwitchType*/ 20, MVT::v8f32,// ->163257
/*163237*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*163239*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*163242*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*163246*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PSZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                        // Src: (strict_sint_to_fp:{ *:[v8f32] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VCVTQQ2PSZrmb:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*163257*/            0, // EndSwitchType
/*163258*/          /*SwitchType*/ 23, MVT::v2i64,// ->163283
/*163260*/            OPC_MoveParent,
/*163261*/            OPC_CheckType, MVT::v2f64,
/*163263*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*163265*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*163268*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*163272*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (strict_sint_to_fp:{ *:[v2f64] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VCVTQQ2PDZ128rmb:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*163283*/          /*SwitchType*/ 47, MVT::v4i64,// ->163332
/*163285*/            OPC_MoveParent,
/*163286*/            OPC_SwitchType /*2 cases */, 20, MVT::v4f64,// ->163309
/*163289*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*163291*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*163294*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*163298*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                        // Src: (strict_sint_to_fp:{ *:[v4f64] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VCVTQQ2PDZ256rmb:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*163309*/            /*SwitchType*/ 20, MVT::v4f32,// ->163331
/*163311*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*163313*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*163316*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*163320*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PSZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                        // Src: (strict_sint_to_fp:{ *:[v4f32] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VCVTQQ2PSZ256rmb:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*163331*/            0, // EndSwitchType
/*163332*/          0, // EndSwitchType
/*163333*/        0, /*End of Scope*/
/*163334*/      0, // EndSwitchOpcode
/*163335*/    /*Scope*/ 74|128,1/*202*/, /*->163539*/
/*163337*/      OPC_RecordChild1, // #1 = $src
/*163338*/      OPC_Scope, 67, /*->163407*/ // 6 children in Scope
/*163340*/        OPC_CheckChild1Type, MVT::v4i32,
/*163342*/        OPC_SwitchType /*2 cases */, 35, MVT::v4f32,// ->163380
/*163345*/          OPC_Scope, 10, /*->163357*/ // 3 children in Scope
/*163347*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*163349*/            OPC_EmitMergeInputChains1_0,
/*163350*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSrr), 0|OPFL_Chain,
                          MVT::v4f32, 1/*#Ops*/, 1, 
                      // Src: (strict_sint_to_fp:{ *:[v4f32] } VR128:{ *:[v4i32] }:$src) - Complexity = 3
                      // Dst: (VCVTDQ2PSrr:{ *:[v4f32] } VR128:{ *:[v4i32] }:$src)
/*163357*/          /*Scope*/ 10, /*->163368*/
/*163358*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*163360*/            OPC_EmitMergeInputChains1_0,
/*163361*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CVTDQ2PSrr), 0|OPFL_Chain,
                          MVT::v4f32, 1/*#Ops*/, 1, 
                      // Src: (strict_sint_to_fp:{ *:[v4f32] } VR128:{ *:[v4i32] }:$src) - Complexity = 3
                      // Dst: (CVTDQ2PSrr:{ *:[v4f32] } VR128:{ *:[v4i32] }:$src)
/*163368*/          /*Scope*/ 10, /*->163379*/
/*163369*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*163371*/            OPC_EmitMergeInputChains1_0,
/*163372*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSZ128rr), 0|OPFL_Chain,
                          MVT::v4f32, 1/*#Ops*/, 1, 
                      // Src: (strict_sint_to_fp:{ *:[v4f32] } VR128X:{ *:[v4i32] }:$src) - Complexity = 3
                      // Dst: (VCVTDQ2PSZ128rr:{ *:[v4f32] } VR128X:{ *:[v4i32] }:$src)
/*163379*/          0, /*End of Scope*/
/*163380*/        /*SwitchType*/ 24, MVT::v4f64,// ->163406
/*163382*/          OPC_Scope, 10, /*->163394*/ // 2 children in Scope
/*163384*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*163386*/            OPC_EmitMergeInputChains1_0,
/*163387*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDYrr), 0|OPFL_Chain,
                          MVT::v4f64, 1/*#Ops*/, 1, 
                      // Src: (strict_sint_to_fp:{ *:[v4f64] } VR128:{ *:[v4i32] }:$src) - Complexity = 3
                      // Dst: (VCVTDQ2PDYrr:{ *:[v4f64] } VR128:{ *:[v4i32] }:$src)
/*163394*/          /*Scope*/ 10, /*->163405*/
/*163395*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*163397*/            OPC_EmitMergeInputChains1_0,
/*163398*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDZ256rr), 0|OPFL_Chain,
                          MVT::v4f64, 1/*#Ops*/, 1, 
                      // Src: (strict_sint_to_fp:{ *:[v4f64] } VR128X:{ *:[v4i32] }:$src) - Complexity = 3
                      // Dst: (VCVTDQ2PDZ256rr:{ *:[v4f64] } VR128X:{ *:[v4i32] }:$src)
/*163405*/          0, /*End of Scope*/
/*163406*/        0, // EndSwitchType
/*163407*/      /*Scope*/ 42, /*->163450*/
/*163408*/        OPC_CheckChild1Type, MVT::v8i32,
/*163410*/        OPC_SwitchType /*2 cases */, 24, MVT::v8f32,// ->163437
/*163413*/          OPC_Scope, 10, /*->163425*/ // 2 children in Scope
/*163415*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*163417*/            OPC_EmitMergeInputChains1_0,
/*163418*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSYrr), 0|OPFL_Chain,
                          MVT::v8f32, 1/*#Ops*/, 1, 
                      // Src: (strict_sint_to_fp:{ *:[v8f32] } VR256:{ *:[v8i32] }:$src) - Complexity = 3
                      // Dst: (VCVTDQ2PSYrr:{ *:[v8f32] } VR256:{ *:[v8i32] }:$src)
/*163425*/          /*Scope*/ 10, /*->163436*/
/*163426*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*163428*/            OPC_EmitMergeInputChains1_0,
/*163429*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSZ256rr), 0|OPFL_Chain,
                          MVT::v8f32, 1/*#Ops*/, 1, 
                      // Src: (strict_sint_to_fp:{ *:[v8f32] } VR256X:{ *:[v8i32] }:$src) - Complexity = 3
                      // Dst: (VCVTDQ2PSZ256rr:{ *:[v8f32] } VR256X:{ *:[v8i32] }:$src)
/*163436*/          0, /*End of Scope*/
/*163437*/        /*SwitchType*/ 10, MVT::v8f64,// ->163449
/*163439*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*163441*/          OPC_EmitMergeInputChains1_0,
/*163442*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDZrr), 0|OPFL_Chain,
                        MVT::v8f64, 1/*#Ops*/, 1, 
                    // Src: (strict_sint_to_fp:{ *:[v8f64] } VR256X:{ *:[v8i32] }:$src) - Complexity = 3
                    // Dst: (VCVTDQ2PDZrr:{ *:[v8f64] } VR256X:{ *:[v8i32] }:$src)
/*163449*/        0, // EndSwitchType
/*163450*/      /*Scope*/ 14, /*->163465*/
/*163451*/        OPC_CheckChild1Type, MVT::v16i32,
/*163453*/        OPC_CheckType, MVT::v16f32,
/*163455*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*163457*/        OPC_EmitMergeInputChains1_0,
/*163458*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSZrr), 0|OPFL_Chain,
                      MVT::v16f32, 1/*#Ops*/, 1, 
                  // Src: (strict_sint_to_fp:{ *:[v16f32] } VR512:{ *:[v16i32] }:$src) - Complexity = 3
                  // Dst: (VCVTDQ2PSZrr:{ *:[v16f32] } VR512:{ *:[v16i32] }:$src)
/*163465*/      /*Scope*/ 28, /*->163494*/
/*163466*/        OPC_CheckChild1Type, MVT::v8i64,
/*163468*/        OPC_SwitchType /*2 cases */, 10, MVT::v8f64,// ->163481
/*163471*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*163473*/          OPC_EmitMergeInputChains1_0,
/*163474*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PDZrr), 0|OPFL_Chain,
                        MVT::v8f64, 1/*#Ops*/, 1, 
                    // Src: (strict_sint_to_fp:{ *:[v8f64] } VR512:{ *:[v8i64] }:$src) - Complexity = 3
                    // Dst: (VCVTQQ2PDZrr:{ *:[v8f64] } VR512:{ *:[v8i64] }:$src)
/*163481*/        /*SwitchType*/ 10, MVT::v8f32,// ->163493
/*163483*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*163485*/          OPC_EmitMergeInputChains1_0,
/*163486*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PSZrr), 0|OPFL_Chain,
                        MVT::v8f32, 1/*#Ops*/, 1, 
                    // Src: (strict_sint_to_fp:{ *:[v8f32] } VR512:{ *:[v8i64] }:$src) - Complexity = 3
                    // Dst: (VCVTQQ2PSZrr:{ *:[v8f32] } VR512:{ *:[v8i64] }:$src)
/*163493*/        0, // EndSwitchType
/*163494*/      /*Scope*/ 14, /*->163509*/
/*163495*/        OPC_CheckChild1Type, MVT::v2i64,
/*163497*/        OPC_CheckType, MVT::v2f64,
/*163499*/        OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*163501*/        OPC_EmitMergeInputChains1_0,
/*163502*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PDZ128rr), 0|OPFL_Chain,
                      MVT::v2f64, 1/*#Ops*/, 1, 
                  // Src: (strict_sint_to_fp:{ *:[v2f64] } VR128X:{ *:[v2i64] }:$src) - Complexity = 3
                  // Dst: (VCVTQQ2PDZ128rr:{ *:[v2f64] } VR128X:{ *:[v2i64] }:$src)
/*163509*/      /*Scope*/ 28, /*->163538*/
/*163510*/        OPC_CheckChild1Type, MVT::v4i64,
/*163512*/        OPC_SwitchType /*2 cases */, 10, MVT::v4f64,// ->163525
/*163515*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*163517*/          OPC_EmitMergeInputChains1_0,
/*163518*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PDZ256rr), 0|OPFL_Chain,
                        MVT::v4f64, 1/*#Ops*/, 1, 
                    // Src: (strict_sint_to_fp:{ *:[v4f64] } VR256X:{ *:[v4i64] }:$src) - Complexity = 3
                    // Dst: (VCVTQQ2PDZ256rr:{ *:[v4f64] } VR256X:{ *:[v4i64] }:$src)
/*163525*/        /*SwitchType*/ 10, MVT::v4f32,// ->163537
/*163527*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*163529*/          OPC_EmitMergeInputChains1_0,
/*163530*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PSZ256rr), 0|OPFL_Chain,
                        MVT::v4f32, 1/*#Ops*/, 1, 
                    // Src: (strict_sint_to_fp:{ *:[v4f32] } VR256X:{ *:[v4i64] }:$src) - Complexity = 3
                    // Dst: (VCVTQQ2PSZ256rr:{ *:[v4f32] } VR256X:{ *:[v4i64] }:$src)
/*163537*/        0, // EndSwitchType
/*163538*/      0, /*End of Scope*/
/*163539*/    0, /*End of Scope*/
/*163540*/  /*SwitchOpcode*/ 122|128,9/*1274*/, TARGET_VAL(ISD::SINT_TO_FP),// ->164818
/*163544*/    OPC_Scope, 59|128,2/*315*/, /*->163862*/ // 4 children in Scope
/*163547*/      OPC_MoveChild0,
/*163548*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*163551*/      OPC_RecordMemRef,
/*163552*/      OPC_RecordNode, // #0 = 'ld' chained node
/*163553*/      OPC_RecordChild1, // #1 = $src
/*163554*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*163556*/      OPC_SwitchType /*2 cases */, 21|128,1/*149*/, MVT::i32,// ->163709
/*163560*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*163562*/        OPC_MoveParent,
/*163563*/        OPC_SwitchType /*2 cases */, 70, MVT::f32,// ->163636
/*163566*/          OPC_Scope, 17, /*->163585*/ // 3 children in Scope
/*163568*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*163570*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*163573*/            OPC_EmitMergeInputChains1_0,
/*163574*/            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)
/*163585*/          /*Scope*/ 24, /*->163610*/
/*163586*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*163588*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*163591*/            OPC_EmitMergeInputChains1_0,
/*163592*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f32, 0/*#Ops*/,  // Results = #7
/*163598*/            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)
/*163610*/          /*Scope*/ 24, /*->163635*/
/*163611*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*163613*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*163616*/            OPC_EmitMergeInputChains1_0,
/*163617*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f32, 0/*#Ops*/,  // Results = #7
/*163623*/            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)
/*163635*/          0, /*End of Scope*/
/*163636*/        /*SwitchType*/ 70, MVT::f64,// ->163708
/*163638*/          OPC_Scope, 17, /*->163657*/ // 3 children in Scope
/*163640*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*163642*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*163645*/            OPC_EmitMergeInputChains1_0,
/*163646*/            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)
/*163657*/          /*Scope*/ 24, /*->163682*/
/*163658*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*163660*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*163663*/            OPC_EmitMergeInputChains1_0,
/*163664*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f64, 0/*#Ops*/,  // Results = #7
/*163670*/            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)
/*163682*/          /*Scope*/ 24, /*->163707*/
/*163683*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*163685*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*163688*/            OPC_EmitMergeInputChains1_0,
/*163689*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f64, 0/*#Ops*/,  // Results = #7
/*163695*/            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)
/*163707*/          0, /*End of Scope*/
/*163708*/        0, // EndSwitchType
/*163709*/      /*SwitchType*/ 21|128,1/*149*/, MVT::i64,// ->163861
/*163712*/        OPC_CheckPredicate, 9, // Predicate_load
/*163714*/        OPC_MoveParent,
/*163715*/        OPC_SwitchType /*2 cases */, 70, MVT::f32,// ->163788
/*163718*/          OPC_Scope, 17, /*->163737*/ // 3 children in Scope
/*163720*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*163722*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*163725*/            OPC_EmitMergeInputChains1_0,
/*163726*/            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)
/*163737*/          /*Scope*/ 24, /*->163762*/
/*163738*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*163740*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*163743*/            OPC_EmitMergeInputChains1_0,
/*163744*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f32, 0/*#Ops*/,  // Results = #7
/*163750*/            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)
/*163762*/          /*Scope*/ 24, /*->163787*/
/*163763*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*163765*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*163768*/            OPC_EmitMergeInputChains1_0,
/*163769*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f32, 0/*#Ops*/,  // Results = #7
/*163775*/            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)
/*163787*/          0, /*End of Scope*/
/*163788*/        /*SwitchType*/ 70, MVT::f64,// ->163860
/*163790*/          OPC_Scope, 17, /*->163809*/ // 3 children in Scope
/*163792*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*163794*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*163797*/            OPC_EmitMergeInputChains1_0,
/*163798*/            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)
/*163809*/          /*Scope*/ 24, /*->163834*/
/*163810*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*163812*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*163815*/            OPC_EmitMergeInputChains1_0,
/*163816*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f64, 0/*#Ops*/,  // Results = #7
/*163822*/            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)
/*163834*/          /*Scope*/ 24, /*->163859*/
/*163835*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*163837*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*163840*/            OPC_EmitMergeInputChains1_0,
/*163841*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f64, 0/*#Ops*/,  // Results = #7
/*163847*/            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)
/*163859*/          0, /*End of Scope*/
/*163860*/        0, // EndSwitchType
/*163861*/      0, // EndSwitchType
/*163862*/    /*Scope*/ 77|128,1/*205*/, /*->164069*/
/*163864*/      OPC_RecordChild0, // #0 = $src
/*163865*/      OPC_Scope, 100, /*->163967*/ // 2 children in Scope
/*163867*/        OPC_CheckChild0Type, MVT::i32,
/*163869*/        OPC_SwitchType /*2 cases */, 46, MVT::f32,// ->163918
/*163872*/          OPC_Scope, 9, /*->163883*/ // 3 children in Scope
/*163874*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*163876*/            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)
/*163883*/          /*Scope*/ 16, /*->163900*/
/*163884*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*163886*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f32, 0/*#Ops*/,  // Results = #1
/*163892*/            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)
/*163900*/          /*Scope*/ 16, /*->163917*/
/*163901*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*163903*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f32, 0/*#Ops*/,  // Results = #1
/*163909*/            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)
/*163917*/          0, /*End of Scope*/
/*163918*/        /*SwitchType*/ 46, MVT::f64,// ->163966
/*163920*/          OPC_Scope, 9, /*->163931*/ // 3 children in Scope
/*163922*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*163924*/            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)
/*163931*/          /*Scope*/ 16, /*->163948*/
/*163932*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*163934*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f64, 0/*#Ops*/,  // Results = #1
/*163940*/            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)
/*163948*/          /*Scope*/ 16, /*->163965*/
/*163949*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*163951*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f64, 0/*#Ops*/,  // Results = #1
/*163957*/            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)
/*163965*/          0, /*End of Scope*/
/*163966*/        0, // EndSwitchType
/*163967*/      /*Scope*/ 100, /*->164068*/
/*163968*/        OPC_CheckChild0Type, MVT::i64,
/*163970*/        OPC_SwitchType /*2 cases */, 46, MVT::f32,// ->164019
/*163973*/          OPC_Scope, 9, /*->163984*/ // 3 children in Scope
/*163975*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*163977*/            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)
/*163984*/          /*Scope*/ 16, /*->164001*/
/*163985*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*163987*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f32, 0/*#Ops*/,  // Results = #1
/*163993*/            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)
/*164001*/          /*Scope*/ 16, /*->164018*/
/*164002*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*164004*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f32, 0/*#Ops*/,  // Results = #1
/*164010*/            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)
/*164018*/          0, /*End of Scope*/
/*164019*/        /*SwitchType*/ 46, MVT::f64,// ->164067
/*164021*/          OPC_Scope, 9, /*->164032*/ // 3 children in Scope
/*164023*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*164025*/            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)
/*164032*/          /*Scope*/ 16, /*->164049*/
/*164033*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*164035*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f64, 0/*#Ops*/,  // Results = #1
/*164041*/            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)
/*164049*/          /*Scope*/ 16, /*->164066*/
/*164050*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*164052*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::f64, 0/*#Ops*/,  // Results = #1
/*164058*/            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)
/*164066*/          0, /*End of Scope*/
/*164067*/        0, // EndSwitchType
/*164068*/      0, /*End of Scope*/
/*164069*/    /*Scope*/ 44|128,4/*556*/, /*->164627*/
/*164071*/      OPC_MoveChild0,
/*164072*/      OPC_SwitchOpcode /*2 cases */, 58|128,2/*314*/, TARGET_VAL(ISD::LOAD),// ->164391
/*164077*/        OPC_RecordMemRef,
/*164078*/        OPC_RecordNode, // #0 = 'ld' chained node
/*164079*/        OPC_RecordChild1, // #1 = $src
/*164080*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*164082*/        OPC_CheckPredicate, 9, // Predicate_load
/*164084*/        OPC_SwitchType /*6 cases */, 109, MVT::v4i32,// ->164196
/*164087*/          OPC_Scope, 20, /*->164109*/ // 3 children in Scope
/*164089*/            OPC_MoveParent,
/*164090*/            OPC_CheckType, MVT::v4f32,
/*164092*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*164094*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*164097*/            OPC_EmitMergeInputChains1_0,
/*164098*/            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] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VCVTDQ2PSrm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*164109*/          /*Scope*/ 22, /*->164132*/
/*164110*/            OPC_CheckPredicate, 39, // Predicate_memop
/*164112*/            OPC_MoveParent,
/*164113*/            OPC_CheckType, MVT::v4f32,
/*164115*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*164117*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*164120*/            OPC_EmitMergeInputChains1_0,
/*164121*/            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] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                      // Dst: (CVTDQ2PSrm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*164132*/          /*Scope*/ 62, /*->164195*/
/*164133*/            OPC_MoveParent,
/*164134*/            OPC_SwitchType /*2 cases */, 38, MVT::v4f64,// ->164175
/*164137*/              OPC_Scope, 17, /*->164156*/ // 2 children in Scope
/*164139*/                OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*164141*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*164144*/                OPC_EmitMergeInputChains1_0,
/*164145*/                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] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                          // Dst: (VCVTDQ2PDYrm:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*164156*/              /*Scope*/ 17, /*->164174*/
/*164157*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*164159*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*164162*/                OPC_EmitMergeInputChains1_0,
/*164163*/                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] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                          // Dst: (VCVTDQ2PDZ256rm:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*164174*/              0, /*End of Scope*/
/*164175*/            /*SwitchType*/ 17, MVT::v4f32,// ->164194
/*164177*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*164179*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*164182*/              OPC_EmitMergeInputChains1_0,
/*164183*/              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] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VCVTDQ2PSZ128rm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*164194*/            0, // EndSwitchType
/*164195*/          0, /*End of Scope*/
/*164196*/        /*SwitchType*/ 62, MVT::v8i32,// ->164260
/*164198*/          OPC_MoveParent,
/*164199*/          OPC_SwitchType /*2 cases */, 38, MVT::v8f32,// ->164240
/*164202*/            OPC_Scope, 17, /*->164221*/ // 2 children in Scope
/*164204*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*164206*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*164209*/              OPC_EmitMergeInputChains1_0,
/*164210*/              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] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VCVTDQ2PSYrm:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*164221*/            /*Scope*/ 17, /*->164239*/
/*164222*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*164224*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*164227*/              OPC_EmitMergeInputChains1_0,
/*164228*/              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] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VCVTDQ2PSZ256rm:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*164239*/            0, /*End of Scope*/
/*164240*/          /*SwitchType*/ 17, MVT::v8f64,// ->164259
/*164242*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*164244*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*164247*/            OPC_EmitMergeInputChains1_0,
/*164248*/            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] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VCVTDQ2PDZrm:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*164259*/          0, // EndSwitchType
/*164260*/        /*SwitchType*/ 20, MVT::v16i32,// ->164282
/*164262*/          OPC_MoveParent,
/*164263*/          OPC_CheckType, MVT::v16f32,
/*164265*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*164267*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*164270*/          OPC_EmitMergeInputChains1_0,
/*164271*/          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] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VCVTDQ2PSZrm:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)
/*164282*/        /*SwitchType*/ 41, MVT::v8i64,// ->164325
/*164284*/          OPC_MoveParent,
/*164285*/          OPC_SwitchType /*2 cases */, 17, MVT::v8f64,// ->164305
/*164288*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*164290*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*164293*/            OPC_EmitMergeInputChains1_0,
/*164294*/            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>>) - Complexity = 25
                      // Dst: (VCVTQQ2PDZrm:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*164305*/          /*SwitchType*/ 17, MVT::v8f32,// ->164324
/*164307*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*164309*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*164312*/            OPC_EmitMergeInputChains1_0,
/*164313*/            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>>) - Complexity = 25
                      // Dst: (VCVTQQ2PSZrm:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*164324*/          0, // EndSwitchType
/*164325*/        /*SwitchType*/ 20, MVT::v2i64,// ->164347
/*164327*/          OPC_MoveParent,
/*164328*/          OPC_CheckType, MVT::v2f64,
/*164330*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*164332*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*164335*/          OPC_EmitMergeInputChains1_0,
/*164336*/          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>>) - Complexity = 25
                    // Dst: (VCVTQQ2PDZ128rm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*164347*/        /*SwitchType*/ 41, MVT::v4i64,// ->164390
/*164349*/          OPC_MoveParent,
/*164350*/          OPC_SwitchType /*2 cases */, 17, MVT::v4f64,// ->164370
/*164353*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*164355*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*164358*/            OPC_EmitMergeInputChains1_0,
/*164359*/            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>>) - Complexity = 25
                      // Dst: (VCVTQQ2PDZ256rm:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*164370*/          /*SwitchType*/ 17, MVT::v4f32,// ->164389
/*164372*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*164374*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*164377*/            OPC_EmitMergeInputChains1_0,
/*164378*/            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>>) - Complexity = 25
                      // Dst: (VCVTQQ2PSZ256rm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*164389*/          0, // EndSwitchType
/*164390*/        0, // EndSwitchType
/*164391*/      /*SwitchOpcode*/ 103|128,1/*231*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->164626
/*164395*/        OPC_RecordMemRef,
/*164396*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*164397*/        OPC_RecordChild1, // #1 = $src
/*164398*/        OPC_Scope, 112, /*->164512*/ // 2 children in Scope
/*164400*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*164402*/          OPC_SwitchType /*3 cases */, 41, MVT::v8i32,// ->164446
/*164405*/            OPC_MoveParent,
/*164406*/            OPC_SwitchType /*2 cases */, 17, MVT::v8f64,// ->164426
/*164409*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*164411*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*164414*/              OPC_EmitMergeInputChains1_0,
/*164415*/              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] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VCVTDQ2PDZrmb:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*164426*/            /*SwitchType*/ 17, MVT::v8f32,// ->164445
/*164428*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*164430*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*164433*/              OPC_EmitMergeInputChains1_0,
/*164434*/              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] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VCVTDQ2PSZ256rmb:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*164445*/            0, // EndSwitchType
/*164446*/          /*SwitchType*/ 41, MVT::v4i32,// ->164489
/*164448*/            OPC_MoveParent,
/*164449*/            OPC_SwitchType /*2 cases */, 17, MVT::v4f64,// ->164469
/*164452*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*164454*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*164457*/              OPC_EmitMergeInputChains1_0,
/*164458*/              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] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VCVTDQ2PDZ256rmb:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*164469*/            /*SwitchType*/ 17, MVT::v4f32,// ->164488
/*164471*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*164473*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*164476*/              OPC_EmitMergeInputChains1_0,
/*164477*/              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] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VCVTDQ2PSZ128rmb:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*164488*/            0, // EndSwitchType
/*164489*/          /*SwitchType*/ 20, MVT::v16i32,// ->164511
/*164491*/            OPC_MoveParent,
/*164492*/            OPC_CheckType, MVT::v16f32,
/*164494*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*164496*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*164499*/            OPC_EmitMergeInputChains1_0,
/*164500*/            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] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VCVTDQ2PSZrmb:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)
/*164511*/          0, // EndSwitchType
/*164512*/        /*Scope*/ 112, /*->164625*/
/*164513*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*164515*/          OPC_SwitchType /*3 cases */, 41, MVT::v8i64,// ->164559
/*164518*/            OPC_MoveParent,
/*164519*/            OPC_SwitchType /*2 cases */, 17, MVT::v8f64,// ->164539
/*164522*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*164524*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*164527*/              OPC_EmitMergeInputChains1_0,
/*164528*/              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] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VCVTQQ2PDZrmb:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*164539*/            /*SwitchType*/ 17, MVT::v8f32,// ->164558
/*164541*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*164543*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*164546*/              OPC_EmitMergeInputChains1_0,
/*164547*/              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] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VCVTQQ2PSZrmb:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*164558*/            0, // EndSwitchType
/*164559*/          /*SwitchType*/ 20, MVT::v2i64,// ->164581
/*164561*/            OPC_MoveParent,
/*164562*/            OPC_CheckType, MVT::v2f64,
/*164564*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*164566*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*164569*/            OPC_EmitMergeInputChains1_0,
/*164570*/            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] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VCVTQQ2PDZ128rmb:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*164581*/          /*SwitchType*/ 41, MVT::v4i64,// ->164624
/*164583*/            OPC_MoveParent,
/*164584*/            OPC_SwitchType /*2 cases */, 17, MVT::v4f64,// ->164604
/*164587*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*164589*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*164592*/              OPC_EmitMergeInputChains1_0,
/*164593*/              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] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VCVTQQ2PDZ256rmb:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*164604*/            /*SwitchType*/ 17, MVT::v4f32,// ->164623
/*164606*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*164608*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*164611*/              OPC_EmitMergeInputChains1_0,
/*164612*/              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] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VCVTQQ2PSZ256rmb:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*164623*/            0, // EndSwitchType
/*164624*/          0, // EndSwitchType
/*164625*/        0, /*End of Scope*/
/*164626*/      0, // EndSwitchOpcode
/*164627*/    /*Scope*/ 60|128,1/*188*/, /*->164817*/
/*164629*/      OPC_RecordChild0, // #0 = $src
/*164630*/      OPC_Scope, 62, /*->164694*/ // 6 children in Scope
/*164632*/        OPC_CheckChild0Type, MVT::v4i32,
/*164634*/        OPC_SwitchType /*2 cases */, 32, MVT::v4f32,// ->164669
/*164637*/          OPC_Scope, 9, /*->164648*/ // 3 children in Scope
/*164639*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*164641*/            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)
/*164648*/          /*Scope*/ 9, /*->164658*/
/*164649*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*164651*/            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)
/*164658*/          /*Scope*/ 9, /*->164668*/
/*164659*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*164661*/            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)
/*164668*/          0, /*End of Scope*/
/*164669*/        /*SwitchType*/ 22, MVT::v4f64,// ->164693
/*164671*/          OPC_Scope, 9, /*->164682*/ // 2 children in Scope
/*164673*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*164675*/            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)
/*164682*/          /*Scope*/ 9, /*->164692*/
/*164683*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*164685*/            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)
/*164692*/          0, /*End of Scope*/
/*164693*/        0, // EndSwitchType
/*164694*/      /*Scope*/ 39, /*->164734*/
/*164695*/        OPC_CheckChild0Type, MVT::v8i32,
/*164697*/        OPC_SwitchType /*2 cases */, 22, MVT::v8f32,// ->164722
/*164700*/          OPC_Scope, 9, /*->164711*/ // 2 children in Scope
/*164702*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*164704*/            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)
/*164711*/          /*Scope*/ 9, /*->164721*/
/*164712*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*164714*/            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)
/*164721*/          0, /*End of Scope*/
/*164722*/        /*SwitchType*/ 9, MVT::v8f64,// ->164733
/*164724*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*164726*/          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)
/*164733*/        0, // EndSwitchType
/*164734*/      /*Scope*/ 13, /*->164748*/
/*164735*/        OPC_CheckChild0Type, MVT::v16i32,
/*164737*/        OPC_CheckType, MVT::v16f32,
/*164739*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*164741*/        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)
/*164748*/      /*Scope*/ 26, /*->164775*/
/*164749*/        OPC_CheckChild0Type, MVT::v8i64,
/*164751*/        OPC_SwitchType /*2 cases */, 9, MVT::v8f64,// ->164763
/*164754*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*164756*/          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)
/*164763*/        /*SwitchType*/ 9, MVT::v8f32,// ->164774
/*164765*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*164767*/          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)
/*164774*/        0, // EndSwitchType
/*164775*/      /*Scope*/ 13, /*->164789*/
/*164776*/        OPC_CheckChild0Type, MVT::v2i64,
/*164778*/        OPC_CheckType, MVT::v2f64,
/*164780*/        OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*164782*/        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)
/*164789*/      /*Scope*/ 26, /*->164816*/
/*164790*/        OPC_CheckChild0Type, MVT::v4i64,
/*164792*/        OPC_SwitchType /*2 cases */, 9, MVT::v4f64,// ->164804
/*164795*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*164797*/          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)
/*164804*/        /*SwitchType*/ 9, MVT::v4f32,// ->164815
/*164806*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*164808*/          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)
/*164815*/        0, // EndSwitchType
/*164816*/      0, /*End of Scope*/
/*164817*/    0, /*End of Scope*/
/*164818*/  /*SwitchOpcode*/ 23|128,1/*151*/, TARGET_VAL(ISD::STRICT_FP_ROUND),// ->164973
/*164822*/    OPC_RecordNode, // #0 = 'strict_fpround' chained node
/*164823*/    OPC_Scope, 37, /*->164862*/ // 2 children in Scope
/*164825*/      OPC_MoveChild1,
/*164826*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*164829*/      OPC_RecordMemRef,
/*164830*/      OPC_RecordNode, // #1 = 'ld' chained node
/*164831*/      OPC_CheckFoldableChainNode,
/*164832*/      OPC_RecordChild1, // #2 = $src
/*164833*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*164835*/      OPC_CheckPredicate, 9, // Predicate_load
/*164837*/      OPC_CheckType, MVT::f64,
/*164839*/      OPC_MoveParent,
/*164840*/      OPC_CheckType, MVT::f32,
/*164842*/      OPC_CheckPatternPredicate, 177, // (shouldOptForSize(MF)) && (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*164844*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*164847*/      OPC_EmitMergeInputChains, 2, 0, 1, 
/*164851*/      OPC_MorphNodeTo1, TARGET_VAL(X86::CVTSD2SSrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::f32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                // Src: (strict_fpround:{ *:[f32] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                // Dst: (CVTSD2SSrm:{ *:[f32] } addr:{ *:[iPTR] }:$src)
/*164862*/    /*Scope*/ 109, /*->164972*/
/*164863*/      OPC_RecordChild1, // #1 = $src
/*164864*/      OPC_Scope, 68, /*->164934*/ // 2 children in Scope
/*164866*/        OPC_CheckChild1Type, MVT::f64,
/*164868*/        OPC_CheckType, MVT::f32,
/*164870*/        OPC_Scope, 14, /*->164886*/ // 4 children in Scope
/*164872*/          OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*164874*/          OPC_EmitMergeInputChains1_0,
/*164875*/          OPC_EmitInteger, MVT::i32, X86::RFP32RegClassID,
/*164878*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                        MVT::f32, 2/*#Ops*/, 1, 2, 
                    // Src: (strict_fpround:{ *:[f32] } RFP64:{ *:[f64] }:$src) - Complexity = 3
                    // Dst: (COPY_TO_REGCLASS:{ *:[f32] } RFP64:{ *:[f64] }:$src, RFP32:{ *:[i32] })
/*164886*/        /*Scope*/ 10, /*->164897*/
/*164887*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*164889*/          OPC_EmitMergeInputChains1_0,
/*164890*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CVTSD2SSrr), 0|OPFL_Chain,
                        MVT::f32, 1/*#Ops*/, 1, 
                    // Src: (strict_fpround:{ *:[f32] } FR64:{ *:[f64] }:$src) - Complexity = 3
                    // Dst: (CVTSD2SSrr:{ *:[f32] } FR64:{ *:[f64] }:$src)
/*164897*/        /*Scope*/ 17, /*->164915*/
/*164898*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*164900*/          OPC_EmitMergeInputChains1_0,
/*164901*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f32, 0/*#Ops*/,  // Results = #2
/*164907*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSD2SSrr), 0|OPFL_Chain,
                        MVT::f32, 2/*#Ops*/, 2, 1, 
                    // Src: (strict_fpround:{ *:[f32] } FR64:{ *:[f64] }:$src) - Complexity = 3
                    // Dst: (VCVTSD2SSrr:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), FR64:{ *:[f64] }:$src)
/*164915*/        /*Scope*/ 17, /*->164933*/
/*164916*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*164918*/          OPC_EmitMergeInputChains1_0,
/*164919*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f32, 0/*#Ops*/,  // Results = #2
/*164925*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSD2SSZrr), 0|OPFL_Chain,
                        MVT::f32, 2/*#Ops*/, 2, 1, 
                    // Src: (strict_fpround:{ *:[f32] } FR64X:{ *:[f64] }:$src) - Complexity = 3
                    // Dst: (VCVTSD2SSZrr:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), FR64X:{ *:[f64] }:$src)
/*164933*/        0, /*End of Scope*/
/*164934*/      /*Scope*/ 36, /*->164971*/
/*164935*/        OPC_CheckChild1Type, MVT::f80,
/*164937*/        OPC_SwitchType /*2 cases */, 14, MVT::f32,// ->164954
/*164940*/          OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*164942*/          OPC_EmitMergeInputChains1_0,
/*164943*/          OPC_EmitInteger, MVT::i32, X86::RFP32RegClassID,
/*164946*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                        MVT::f32, 2/*#Ops*/, 1, 2, 
                    // Src: (strict_fpround:{ *:[f32] } RFP80:{ *:[f80] }:$src) - Complexity = 3
                    // Dst: (COPY_TO_REGCLASS:{ *:[f32] } RFP80:{ *:[f80] }:$src, RFP32:{ *:[i32] })
/*164954*/        /*SwitchType*/ 14, MVT::f64,// ->164970
/*164956*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*164958*/          OPC_EmitMergeInputChains1_0,
/*164959*/          OPC_EmitInteger, MVT::i32, X86::RFP64RegClassID,
/*164962*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                        MVT::f64, 2/*#Ops*/, 1, 2, 
                    // Src: (strict_fpround:{ *:[f64] } RFP80:{ *:[f80] }:$src) - Complexity = 3
                    // Dst: (COPY_TO_REGCLASS:{ *:[f64] } RFP80:{ *:[f80] }:$src, RFP64:{ *:[i32] })
/*164970*/        0, // EndSwitchType
/*164971*/      0, /*End of Scope*/
/*164972*/    0, /*End of Scope*/
/*164973*/  /*SwitchOpcode*/ 12|128,1/*140*/, TARGET_VAL(ISD::FP_ROUND),// ->165117
/*164977*/    OPC_Scope, 33, /*->165012*/ // 2 children in Scope
/*164979*/      OPC_MoveChild0,
/*164980*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*164983*/      OPC_RecordMemRef,
/*164984*/      OPC_RecordNode, // #0 = 'ld' chained node
/*164985*/      OPC_RecordChild1, // #1 = $src
/*164986*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*164988*/      OPC_CheckPredicate, 9, // Predicate_load
/*164990*/      OPC_CheckType, MVT::f64,
/*164992*/      OPC_MoveParent,
/*164993*/      OPC_CheckType, MVT::f32,
/*164995*/      OPC_CheckPatternPredicate, 177, // (shouldOptForSize(MF)) && (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*164997*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*165000*/      OPC_EmitMergeInputChains1_0,
/*165001*/      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)
/*165012*/    /*Scope*/ 103, /*->165116*/
/*165013*/      OPC_RecordChild0, // #0 = $src
/*165014*/      OPC_Scope, 64, /*->165080*/ // 2 children in Scope
/*165016*/        OPC_CheckChild0Type, MVT::f64,
/*165018*/        OPC_CheckType, MVT::f32,
/*165020*/        OPC_Scope, 13, /*->165035*/ // 4 children in Scope
/*165022*/          OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*165024*/          OPC_EmitInteger, MVT::i32, X86::RFP32RegClassID,
/*165027*/          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] })
/*165035*/        /*Scope*/ 9, /*->165045*/
/*165036*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*165038*/          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)
/*165045*/        /*Scope*/ 16, /*->165062*/
/*165046*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*165048*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f32, 0/*#Ops*/,  // Results = #1
/*165054*/          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)
/*165062*/        /*Scope*/ 16, /*->165079*/
/*165063*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*165065*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f32, 0/*#Ops*/,  // Results = #1
/*165071*/          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)
/*165079*/        0, /*End of Scope*/
/*165080*/      /*Scope*/ 34, /*->165115*/
/*165081*/        OPC_CheckChild0Type, MVT::f80,
/*165083*/        OPC_SwitchType /*2 cases */, 13, MVT::f32,// ->165099
/*165086*/          OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*165088*/          OPC_EmitInteger, MVT::i32, X86::RFP32RegClassID,
/*165091*/          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] })
/*165099*/        /*SwitchType*/ 13, MVT::f64,// ->165114
/*165101*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*165103*/          OPC_EmitInteger, MVT::i32, X86::RFP64RegClassID,
/*165106*/          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] })
/*165114*/        0, // EndSwitchType
/*165115*/      0, /*End of Scope*/
/*165116*/    0, /*End of Scope*/
/*165117*/  /*SwitchOpcode*/ 50|128,2/*306*/, TARGET_VAL(ISD::STRICT_FP_EXTEND),// ->165427
/*165121*/    OPC_RecordNode, // #0 = 'strict_fpextend' chained node
/*165122*/    OPC_Scope, 94, /*->165218*/ // 4 children in Scope
/*165124*/      OPC_MoveChild1,
/*165125*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*165128*/      OPC_RecordMemRef,
/*165129*/      OPC_RecordNode, // #1 = 'ld' chained node
/*165130*/      OPC_CheckFoldableChainNode,
/*165131*/      OPC_RecordChild1, // #2 = $src
/*165132*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*165134*/      OPC_CheckPredicate, 9, // Predicate_load
/*165136*/      OPC_MoveParent,
/*165137*/      OPC_CheckType, MVT::f64,
/*165139*/      OPC_Scope, 20, /*->165161*/ // 3 children in Scope
/*165141*/        OPC_CheckPatternPredicate, 177, // (shouldOptForSize(MF)) && (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*165143*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*165146*/        OPC_EmitMergeInputChains, 2, 0, 1, 
/*165150*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CVTSS2SDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                  // Src: (strict_fpextend:{ *:[f64] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (CVTSS2SDrm:{ *:[f64] } addr:{ *:[iPTR] }:$src)
/*165161*/      /*Scope*/ 27, /*->165189*/
/*165162*/        OPC_CheckPatternPredicate, 125, // (shouldOptForSize(MF)) && (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*165164*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*165167*/        OPC_EmitMergeInputChains, 2, 0, 1, 
/*165171*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #8
/*165177*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSS2SDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 8, 3, 4, 5, 6, 7, 
                  // Src: (strict_fpextend:{ *:[f64] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VCVTSS2SDrm:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), addr:{ *:[iPTR] }:$src)
/*165189*/      /*Scope*/ 27, /*->165217*/
/*165190*/        OPC_CheckPatternPredicate, 129, // (Subtarget->hasAVX512()) && (shouldOptForSize(MF))
/*165192*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*165195*/        OPC_EmitMergeInputChains, 2, 0, 1, 
/*165199*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #8
/*165205*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSS2SDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, 6/*#Ops*/, 8, 3, 4, 5, 6, 7, 
                  // Src: (strict_fpextend:{ *:[f64] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VCVTSS2SDZrm:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), addr:{ *:[iPTR] }:$src)
/*165217*/      0, /*End of Scope*/
/*165218*/    /*Scope*/ 107, /*->165326*/
/*165219*/      OPC_RecordChild1, // #1 = $src
/*165220*/      OPC_SwitchType /*2 cases */, 64, MVT::f64,// ->165287
/*165223*/        OPC_Scope, 14, /*->165239*/ // 4 children in Scope
/*165225*/          OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*165227*/          OPC_EmitMergeInputChains1_0,
/*165228*/          OPC_EmitInteger, MVT::i32, X86::RFP64RegClassID,
/*165231*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                        MVT::f64, 2/*#Ops*/, 1, 2, 
                    // Src: (strict_fpextend:{ *:[f64] } RFP32:{ *:[f32] }:$src) - Complexity = 3
                    // Dst: (COPY_TO_REGCLASS:{ *:[f64] } RFP32:{ *:[f32] }:$src, RFP64:{ *:[i32] })
/*165239*/        /*Scope*/ 10, /*->165250*/
/*165240*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*165242*/          OPC_EmitMergeInputChains1_0,
/*165243*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CVTSS2SDrr), 0|OPFL_Chain,
                        MVT::f64, 1/*#Ops*/, 1, 
                    // Src: (strict_fpextend:{ *:[f64] } FR32:{ *:[f32] }:$src) - Complexity = 3
                    // Dst: (CVTSS2SDrr:{ *:[f64] } FR32:{ *:[f32] }:$src)
/*165250*/        /*Scope*/ 17, /*->165268*/
/*165251*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*165253*/          OPC_EmitMergeInputChains1_0,
/*165254*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #2
/*165260*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSS2SDrr), 0|OPFL_Chain,
                        MVT::f64, 2/*#Ops*/, 2, 1, 
                    // Src: (strict_fpextend:{ *:[f64] } FR32:{ *:[f32] }:$src) - Complexity = 3
                    // Dst: (VCVTSS2SDrr:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), FR32:{ *:[f32] }:$src)
/*165268*/        /*Scope*/ 17, /*->165286*/
/*165269*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*165271*/          OPC_EmitMergeInputChains1_0,
/*165272*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #2
/*165278*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSS2SDZrr), 0|OPFL_Chain,
                        MVT::f64, 2/*#Ops*/, 2, 1, 
                    // Src: (strict_fpextend:{ *:[f64] } FR32X:{ *:[f32] }:$src) - Complexity = 3
                    // Dst: (VCVTSS2SDZrr:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), FR32X:{ *:[f32] }:$src)
/*165286*/        0, /*End of Scope*/
/*165287*/      /*SwitchType*/ 36, MVT::f80,// ->165325
/*165289*/        OPC_Scope, 16, /*->165307*/ // 2 children in Scope
/*165291*/          OPC_CheckChild1Type, MVT::f32,
/*165293*/          OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*165295*/          OPC_EmitMergeInputChains1_0,
/*165296*/          OPC_EmitInteger, MVT::i32, X86::RFP80RegClassID,
/*165299*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                        MVT::f80, 2/*#Ops*/, 1, 2, 
                    // Src: (strict_fpextend:{ *:[f80] } RFP32:{ *:[f32] }:$src) - Complexity = 3
                    // Dst: (COPY_TO_REGCLASS:{ *:[f80] } RFP32:{ *:[f32] }:$src, RFP80:{ *:[i32] })
/*165307*/        /*Scope*/ 16, /*->165324*/
/*165308*/          OPC_CheckChild1Type, MVT::f64,
/*165310*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*165312*/          OPC_EmitMergeInputChains1_0,
/*165313*/          OPC_EmitInteger, MVT::i32, X86::RFP80RegClassID,
/*165316*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                        MVT::f80, 2/*#Ops*/, 1, 2, 
                    // Src: (strict_fpextend:{ *:[f80] } RFP64:{ *:[f64] }:$src) - Complexity = 3
                    // Dst: (COPY_TO_REGCLASS:{ *:[f80] } RFP64:{ *:[f64] }:$src, RFP80:{ *:[i32] })
/*165324*/        0, /*End of Scope*/
/*165325*/      0, // EndSwitchType
/*165326*/    /*Scope*/ 57, /*->165384*/
/*165327*/      OPC_MoveChild1,
/*165328*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*165331*/      OPC_RecordMemRef,
/*165332*/      OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*165333*/      OPC_CheckFoldableChainNode,
/*165334*/      OPC_RecordChild1, // #2 = $src
/*165335*/      OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*165337*/      OPC_MoveParent,
/*165338*/      OPC_SwitchType /*2 cases */, 20, MVT::v8f64,// ->165361
/*165341*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*165343*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*165346*/        OPC_EmitMergeInputChains, 2, 0, 1, 
/*165350*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8f64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                  // Src: (strict_fpextend:{ *:[v8f64] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                  // Dst: (VCVTPS2PDZrmb:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*165361*/      /*SwitchType*/ 20, MVT::v4f64,// ->165383
/*165363*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*165365*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*165368*/        OPC_EmitMergeInputChains, 2, 0, 1, 
/*165372*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                  // Src: (strict_fpextend:{ *:[v4f64] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                  // Dst: (VCVTPS2PDZ256rmb:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*165383*/      0, // EndSwitchType
/*165384*/    /*Scope*/ 41, /*->165426*/
/*165385*/      OPC_RecordChild1, // #1 = $src
/*165386*/      OPC_SwitchType /*2 cases */, 24, MVT::v4f64,// ->165413
/*165389*/        OPC_Scope, 10, /*->165401*/ // 2 children in Scope
/*165391*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*165393*/          OPC_EmitMergeInputChains1_0,
/*165394*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PDYrr), 0|OPFL_Chain,
                        MVT::v4f64, 1/*#Ops*/, 1, 
                    // Src: (strict_fpextend:{ *:[v4f64] } VR128:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (VCVTPS2PDYrr:{ *:[v4f64] } VR128:{ *:[v4f32] }:$src)
/*165401*/        /*Scope*/ 10, /*->165412*/
/*165402*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*165404*/          OPC_EmitMergeInputChains1_0,
/*165405*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PDZ256rr), 0|OPFL_Chain,
                        MVT::v4f64, 1/*#Ops*/, 1, 
                    // Src: (strict_fpextend:{ *:[v4f64] } VR128X:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (VCVTPS2PDZ256rr:{ *:[v4f64] } VR128X:{ *:[v4f32] }:$src)
/*165412*/        0, /*End of Scope*/
/*165413*/      /*SwitchType*/ 10, MVT::v8f64,// ->165425
/*165415*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*165417*/        OPC_EmitMergeInputChains1_0,
/*165418*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PDZrr), 0|OPFL_Chain,
                      MVT::v8f64, 1/*#Ops*/, 1, 
                  // Src: (strict_fpextend:{ *:[v8f64] } VR256X:{ *:[v8f32] }:$src) - Complexity = 3
                  // Dst: (VCVTPS2PDZrr:{ *:[v8f64] } VR256X:{ *:[v8f32] }:$src)
/*165425*/      0, // EndSwitchType
/*165426*/    0, /*End of Scope*/
/*165427*/  /*SwitchOpcode*/ 23|128,2/*279*/, TARGET_VAL(ISD::FP_EXTEND),// ->165710
/*165431*/    OPC_Scope, 84, /*->165517*/ // 4 children in Scope
/*165433*/      OPC_MoveChild0,
/*165434*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*165437*/      OPC_RecordMemRef,
/*165438*/      OPC_RecordNode, // #0 = 'ld' chained node
/*165439*/      OPC_RecordChild1, // #1 = $src
/*165440*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*165442*/      OPC_CheckPredicate, 9, // Predicate_load
/*165444*/      OPC_MoveParent,
/*165445*/      OPC_CheckType, MVT::f64,
/*165447*/      OPC_Scope, 17, /*->165466*/ // 3 children in Scope
/*165449*/        OPC_CheckPatternPredicate, 177, // (shouldOptForSize(MF)) && (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*165451*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*165454*/        OPC_EmitMergeInputChains1_0,
/*165455*/        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)
/*165466*/      /*Scope*/ 24, /*->165491*/
/*165467*/        OPC_CheckPatternPredicate, 125, // (shouldOptForSize(MF)) && (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*165469*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*165472*/        OPC_EmitMergeInputChains1_0,
/*165473*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #7
/*165479*/        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)
/*165491*/      /*Scope*/ 24, /*->165516*/
/*165492*/        OPC_CheckPatternPredicate, 129, // (Subtarget->hasAVX512()) && (shouldOptForSize(MF))
/*165494*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*165497*/        OPC_EmitMergeInputChains1_0,
/*165498*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f64, 0/*#Ops*/,  // Results = #7
/*165504*/        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)
/*165516*/      0, /*End of Scope*/
/*165517*/    /*Scope*/ 101, /*->165619*/
/*165518*/      OPC_RecordChild0, // #0 = $src
/*165519*/      OPC_SwitchType /*2 cases */, 60, MVT::f64,// ->165582
/*165522*/        OPC_Scope, 13, /*->165537*/ // 4 children in Scope
/*165524*/          OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*165526*/          OPC_EmitInteger, MVT::i32, X86::RFP64RegClassID,
/*165529*/          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] })
/*165537*/        /*Scope*/ 9, /*->165547*/
/*165538*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*165540*/          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)
/*165547*/        /*Scope*/ 16, /*->165564*/
/*165548*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*165550*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #1
/*165556*/          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)
/*165564*/        /*Scope*/ 16, /*->165581*/
/*165565*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*165567*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #1
/*165573*/          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)
/*165581*/        0, /*End of Scope*/
/*165582*/      /*SwitchType*/ 34, MVT::f80,// ->165618
/*165584*/        OPC_Scope, 15, /*->165601*/ // 2 children in Scope
/*165586*/          OPC_CheckChild0Type, MVT::f32,
/*165588*/          OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*165590*/          OPC_EmitInteger, MVT::i32, X86::RFP80RegClassID,
/*165593*/          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] })
/*165601*/        /*Scope*/ 15, /*->165617*/
/*165602*/          OPC_CheckChild0Type, MVT::f64,
/*165604*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*165606*/          OPC_EmitInteger, MVT::i32, X86::RFP80RegClassID,
/*165609*/          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] })
/*165617*/        0, /*End of Scope*/
/*165618*/      0, // EndSwitchType
/*165619*/    /*Scope*/ 50, /*->165670*/
/*165620*/      OPC_MoveChild0,
/*165621*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*165624*/      OPC_RecordMemRef,
/*165625*/      OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*165626*/      OPC_RecordChild1, // #1 = $src
/*165627*/      OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*165629*/      OPC_MoveParent,
/*165630*/      OPC_SwitchType /*2 cases */, 17, MVT::v8f64,// ->165650
/*165633*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*165635*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*165638*/        OPC_EmitMergeInputChains1_0,
/*165639*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (fpextend:{ *:[v8f64] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                  // Dst: (VCVTPS2PDZrmb:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*165650*/      /*SwitchType*/ 17, MVT::v4f64,// ->165669
/*165652*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*165654*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*165657*/        OPC_EmitMergeInputChains1_0,
/*165658*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (fpextend:{ *:[v4f64] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                  // Dst: (VCVTPS2PDZ256rmb:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*165669*/      0, // EndSwitchType
/*165670*/    /*Scope*/ 38, /*->165709*/
/*165671*/      OPC_RecordChild0, // #0 = $src
/*165672*/      OPC_SwitchType /*2 cases */, 22, MVT::v4f64,// ->165697
/*165675*/        OPC_Scope, 9, /*->165686*/ // 2 children in Scope
/*165677*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*165679*/          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)
/*165686*/        /*Scope*/ 9, /*->165696*/
/*165687*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*165689*/          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)
/*165696*/        0, /*End of Scope*/
/*165697*/      /*SwitchType*/ 9, MVT::v8f64,// ->165708
/*165699*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*165701*/        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)
/*165708*/      0, // EndSwitchType
/*165709*/    0, /*End of Scope*/
/*165710*/  /*SwitchOpcode*/ 30|128,6/*798*/, TARGET_VAL(X86ISD::FMAX),// ->166512
/*165714*/    OPC_RecordChild0, // #0 = $src1
/*165715*/    OPC_Scope, 9|128,1/*137*/, /*->165855*/ // 4 children in Scope
/*165718*/      OPC_MoveChild1,
/*165719*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*165722*/      OPC_RecordMemRef,
/*165723*/      OPC_RecordNode, // #1 = 'ld' chained node
/*165724*/      OPC_CheckFoldableChainNode,
/*165725*/      OPC_RecordChild1, // #2 = $src2
/*165726*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*165728*/      OPC_CheckPredicate, 9, // Predicate_load
/*165730*/      OPC_MoveParent,
/*165731*/      OPC_SwitchType /*2 cases */, 59, MVT::f32,// ->165793
/*165734*/        OPC_Scope, 18, /*->165754*/ // 3 children in Scope
/*165736*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*165738*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*165741*/          OPC_EmitMergeInputChains1_1,
/*165742*/          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)
/*165754*/        /*Scope*/ 18, /*->165773*/
/*165755*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*165757*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*165760*/          OPC_EmitMergeInputChains1_1,
/*165761*/          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)
/*165773*/        /*Scope*/ 18, /*->165792*/
/*165774*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*165776*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*165779*/          OPC_EmitMergeInputChains1_1,
/*165780*/          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)
/*165792*/        0, /*End of Scope*/
/*165793*/      /*SwitchType*/ 59, MVT::f64,// ->165854
/*165795*/        OPC_Scope, 18, /*->165815*/ // 3 children in Scope
/*165797*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*165799*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*165802*/          OPC_EmitMergeInputChains1_1,
/*165803*/          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)
/*165815*/        /*Scope*/ 18, /*->165834*/
/*165816*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*165818*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*165821*/          OPC_EmitMergeInputChains1_1,
/*165822*/          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)
/*165834*/        /*Scope*/ 18, /*->165853*/
/*165835*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*165837*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*165840*/          OPC_EmitMergeInputChains1_1,
/*165841*/          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)
/*165853*/        0, /*End of Scope*/
/*165854*/      0, // EndSwitchType
/*165855*/    /*Scope*/ 77, /*->165933*/
/*165856*/      OPC_RecordChild1, // #1 = $src2
/*165857*/      OPC_SwitchType /*2 cases */, 35, MVT::f32,// ->165895
/*165860*/        OPC_Scope, 10, /*->165872*/ // 3 children in Scope
/*165862*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*165864*/          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)
/*165872*/        /*Scope*/ 10, /*->165883*/
/*165873*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*165875*/          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)
/*165883*/        /*Scope*/ 10, /*->165894*/
/*165884*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*165886*/          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)
/*165894*/        0, /*End of Scope*/
/*165895*/      /*SwitchType*/ 35, MVT::f64,// ->165932
/*165897*/        OPC_Scope, 10, /*->165909*/ // 3 children in Scope
/*165899*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*165901*/          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)
/*165909*/        /*Scope*/ 10, /*->165920*/
/*165910*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*165912*/          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)
/*165920*/        /*Scope*/ 10, /*->165931*/
/*165921*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*165923*/          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)
/*165931*/        0, /*End of Scope*/
/*165932*/      0, // EndSwitchType
/*165933*/    /*Scope*/ 37|128,3/*421*/, /*->166356*/
/*165935*/      OPC_MoveChild1,
/*165936*/      OPC_SwitchOpcode /*2 cases */, 8|128,2/*264*/, TARGET_VAL(ISD::LOAD),// ->166205
/*165941*/        OPC_RecordMemRef,
/*165942*/        OPC_RecordNode, // #1 = 'ld' chained node
/*165943*/        OPC_CheckFoldableChainNode,
/*165944*/        OPC_RecordChild1, // #2 = $src2
/*165945*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*165947*/        OPC_CheckPredicate, 9, // Predicate_load
/*165949*/        OPC_Scope, 83, /*->166034*/ // 3 children in Scope
/*165951*/          OPC_MoveParent,
/*165952*/          OPC_SwitchType /*4 cases */, 18, MVT::v4f32,// ->165973
/*165955*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*165957*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*165960*/            OPC_EmitMergeInputChains1_1,
/*165961*/            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>>) - Complexity = 25
                      // Dst: (VMAXPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*165973*/          /*SwitchType*/ 18, MVT::v2f64,// ->165993
/*165975*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*165977*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*165980*/            OPC_EmitMergeInputChains1_1,
/*165981*/            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>>) - Complexity = 25
                      // Dst: (VMAXPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*165993*/          /*SwitchType*/ 18, MVT::v8f32,// ->166013
/*165995*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*165997*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*166000*/            OPC_EmitMergeInputChains1_1,
/*166001*/            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>>) - Complexity = 25
                      // Dst: (VMAXPSYrm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*166013*/          /*SwitchType*/ 18, MVT::v4f64,// ->166033
/*166015*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*166017*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*166020*/            OPC_EmitMergeInputChains1_1,
/*166021*/            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>>) - Complexity = 25
                      // Dst: (VMAXPDYrm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*166033*/          0, // EndSwitchType
/*166034*/        /*Scope*/ 45, /*->166080*/
/*166035*/          OPC_CheckPredicate, 39, // Predicate_memop
/*166037*/          OPC_MoveParent,
/*166038*/          OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->166059
/*166041*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*166043*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*166046*/            OPC_EmitMergeInputChains1_1,
/*166047*/            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_memop>>) - Complexity = 25
                      // Dst: (MAXPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*166059*/          /*SwitchType*/ 18, MVT::v2f64,// ->166079
/*166061*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*166063*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*166066*/            OPC_EmitMergeInputChains1_1,
/*166067*/            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_memop>>) - Complexity = 25
                      // Dst: (MAXPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*166079*/          0, // EndSwitchType
/*166080*/        /*Scope*/ 123, /*->166204*/
/*166081*/          OPC_MoveParent,
/*166082*/          OPC_SwitchType /*6 cases */, 18, MVT::v16f32,// ->166103
/*166085*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*166087*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*166090*/            OPC_EmitMergeInputChains1_1,
/*166091*/            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>>) - Complexity = 25
                      // Dst: (VMAXPSZrm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*166103*/          /*SwitchType*/ 18, MVT::v8f64,// ->166123
/*166105*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*166107*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*166110*/            OPC_EmitMergeInputChains1_1,
/*166111*/            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>>) - Complexity = 25
                      // Dst: (VMAXPDZrm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*166123*/          /*SwitchType*/ 18, MVT::v4f32,// ->166143
/*166125*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*166127*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*166130*/            OPC_EmitMergeInputChains1_1,
/*166131*/            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>>) - Complexity = 25
                      // Dst: (VMAXPSZ128rm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*166143*/          /*SwitchType*/ 18, MVT::v8f32,// ->166163
/*166145*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*166147*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*166150*/            OPC_EmitMergeInputChains1_1,
/*166151*/            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>>) - Complexity = 25
                      // Dst: (VMAXPSZ256rm:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*166163*/          /*SwitchType*/ 18, MVT::v2f64,// ->166183
/*166165*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*166167*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*166170*/            OPC_EmitMergeInputChains1_1,
/*166171*/            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>>) - Complexity = 25
                      // Dst: (VMAXPDZ128rm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*166183*/          /*SwitchType*/ 18, MVT::v4f64,// ->166203
/*166185*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*166187*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*166190*/            OPC_EmitMergeInputChains1_1,
/*166191*/            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>>) - Complexity = 25
                      // Dst: (VMAXPDZ256rm:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*166203*/          0, // EndSwitchType
/*166204*/        0, /*End of Scope*/
/*166205*/      /*SwitchOpcode*/ 18|128,1/*146*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->166355
/*166209*/        OPC_RecordMemRef,
/*166210*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*166211*/        OPC_CheckFoldableChainNode,
/*166212*/        OPC_RecordChild1, // #2 = $src2
/*166213*/        OPC_Scope, 23, /*->166238*/ // 4 children in Scope
/*166215*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*166217*/          OPC_MoveParent,
/*166218*/          OPC_CheckType, MVT::v16f32,
/*166220*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*166222*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*166225*/          OPC_EmitMergeInputChains1_1,
/*166226*/          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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                    // Dst: (VMAXPSZrmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*166238*/        /*Scope*/ 23, /*->166262*/
/*166239*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*166241*/          OPC_MoveParent,
/*166242*/          OPC_CheckType, MVT::v8f64,
/*166244*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*166246*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*166249*/          OPC_EmitMergeInputChains1_1,
/*166250*/          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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                    // Dst: (VMAXPDZrmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*166262*/        /*Scope*/ 45, /*->166308*/
/*166263*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*166265*/          OPC_MoveParent,
/*166266*/          OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->166287
/*166269*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*166271*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*166274*/            OPC_EmitMergeInputChains1_1,
/*166275*/            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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VMAXPSZ128rmb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*166287*/          /*SwitchType*/ 18, MVT::v8f32,// ->166307
/*166289*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*166291*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*166294*/            OPC_EmitMergeInputChains1_1,
/*166295*/            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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VMAXPSZ256rmb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*166307*/          0, // EndSwitchType
/*166308*/        /*Scope*/ 45, /*->166354*/
/*166309*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*166311*/          OPC_MoveParent,
/*166312*/          OPC_SwitchType /*2 cases */, 18, MVT::v2f64,// ->166333
/*166315*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*166317*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*166320*/            OPC_EmitMergeInputChains1_1,
/*166321*/            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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VMAXPDZ128rmb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*166333*/          /*SwitchType*/ 18, MVT::v4f64,// ->166353
/*166335*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*166337*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*166340*/            OPC_EmitMergeInputChains1_1,
/*166341*/            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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VMAXPDZ256rmb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*166353*/          0, // EndSwitchType
/*166354*/        0, /*End of Scope*/
/*166355*/      0, // EndSwitchOpcode
/*166356*/    /*Scope*/ 25|128,1/*153*/, /*->166511*/
/*166358*/      OPC_RecordChild1, // #1 = $src2
/*166359*/      OPC_SwitchType /*6 cases */, 35, MVT::v4f32,// ->166397
/*166362*/        OPC_Scope, 10, /*->166374*/ // 3 children in Scope
/*166364*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*166366*/          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)
/*166374*/        /*Scope*/ 10, /*->166385*/
/*166375*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*166377*/          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)
/*166385*/        /*Scope*/ 10, /*->166396*/
/*166386*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*166388*/          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)
/*166396*/        0, /*End of Scope*/
/*166397*/      /*SwitchType*/ 35, MVT::v2f64,// ->166434
/*166399*/        OPC_Scope, 10, /*->166411*/ // 3 children in Scope
/*166401*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*166403*/          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)
/*166411*/        /*Scope*/ 10, /*->166422*/
/*166412*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*166414*/          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)
/*166422*/        /*Scope*/ 10, /*->166433*/
/*166423*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*166425*/          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)
/*166433*/        0, /*End of Scope*/
/*166434*/      /*SwitchType*/ 24, MVT::v8f32,// ->166460
/*166436*/        OPC_Scope, 10, /*->166448*/ // 2 children in Scope
/*166438*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*166440*/          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)
/*166448*/        /*Scope*/ 10, /*->166459*/
/*166449*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*166451*/          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)
/*166459*/        0, /*End of Scope*/
/*166460*/      /*SwitchType*/ 24, MVT::v4f64,// ->166486
/*166462*/        OPC_Scope, 10, /*->166474*/ // 2 children in Scope
/*166464*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*166466*/          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)
/*166474*/        /*Scope*/ 10, /*->166485*/
/*166475*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*166477*/          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)
/*166485*/        0, /*End of Scope*/
/*166486*/      /*SwitchType*/ 10, MVT::v16f32,// ->166498
/*166488*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*166490*/        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)
/*166498*/      /*SwitchType*/ 10, MVT::v8f64,// ->166510
/*166500*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*166502*/        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)
/*166510*/      0, // EndSwitchType
/*166511*/    0, /*End of Scope*/
/*166512*/  /*SwitchOpcode*/ 30|128,6/*798*/, TARGET_VAL(X86ISD::FMIN),// ->167314
/*166516*/    OPC_RecordChild0, // #0 = $src1
/*166517*/    OPC_Scope, 9|128,1/*137*/, /*->166657*/ // 4 children in Scope
/*166520*/      OPC_MoveChild1,
/*166521*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*166524*/      OPC_RecordMemRef,
/*166525*/      OPC_RecordNode, // #1 = 'ld' chained node
/*166526*/      OPC_CheckFoldableChainNode,
/*166527*/      OPC_RecordChild1, // #2 = $src2
/*166528*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*166530*/      OPC_CheckPredicate, 9, // Predicate_load
/*166532*/      OPC_MoveParent,
/*166533*/      OPC_SwitchType /*2 cases */, 59, MVT::f32,// ->166595
/*166536*/        OPC_Scope, 18, /*->166556*/ // 3 children in Scope
/*166538*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*166540*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*166543*/          OPC_EmitMergeInputChains1_1,
/*166544*/          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)
/*166556*/        /*Scope*/ 18, /*->166575*/
/*166557*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*166559*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*166562*/          OPC_EmitMergeInputChains1_1,
/*166563*/          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)
/*166575*/        /*Scope*/ 18, /*->166594*/
/*166576*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*166578*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*166581*/          OPC_EmitMergeInputChains1_1,
/*166582*/          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)
/*166594*/        0, /*End of Scope*/
/*166595*/      /*SwitchType*/ 59, MVT::f64,// ->166656
/*166597*/        OPC_Scope, 18, /*->166617*/ // 3 children in Scope
/*166599*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*166601*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*166604*/          OPC_EmitMergeInputChains1_1,
/*166605*/          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)
/*166617*/        /*Scope*/ 18, /*->166636*/
/*166618*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*166620*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*166623*/          OPC_EmitMergeInputChains1_1,
/*166624*/          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)
/*166636*/        /*Scope*/ 18, /*->166655*/
/*166637*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*166639*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*166642*/          OPC_EmitMergeInputChains1_1,
/*166643*/          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)
/*166655*/        0, /*End of Scope*/
/*166656*/      0, // EndSwitchType
/*166657*/    /*Scope*/ 77, /*->166735*/
/*166658*/      OPC_RecordChild1, // #1 = $src2
/*166659*/      OPC_SwitchType /*2 cases */, 35, MVT::f32,// ->166697
/*166662*/        OPC_Scope, 10, /*->166674*/ // 3 children in Scope
/*166664*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*166666*/          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)
/*166674*/        /*Scope*/ 10, /*->166685*/
/*166675*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*166677*/          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)
/*166685*/        /*Scope*/ 10, /*->166696*/
/*166686*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*166688*/          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)
/*166696*/        0, /*End of Scope*/
/*166697*/      /*SwitchType*/ 35, MVT::f64,// ->166734
/*166699*/        OPC_Scope, 10, /*->166711*/ // 3 children in Scope
/*166701*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*166703*/          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)
/*166711*/        /*Scope*/ 10, /*->166722*/
/*166712*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*166714*/          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)
/*166722*/        /*Scope*/ 10, /*->166733*/
/*166723*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*166725*/          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)
/*166733*/        0, /*End of Scope*/
/*166734*/      0, // EndSwitchType
/*166735*/    /*Scope*/ 37|128,3/*421*/, /*->167158*/
/*166737*/      OPC_MoveChild1,
/*166738*/      OPC_SwitchOpcode /*2 cases */, 8|128,2/*264*/, TARGET_VAL(ISD::LOAD),// ->167007
/*166743*/        OPC_RecordMemRef,
/*166744*/        OPC_RecordNode, // #1 = 'ld' chained node
/*166745*/        OPC_CheckFoldableChainNode,
/*166746*/        OPC_RecordChild1, // #2 = $src2
/*166747*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*166749*/        OPC_CheckPredicate, 9, // Predicate_load
/*166751*/        OPC_Scope, 83, /*->166836*/ // 3 children in Scope
/*166753*/          OPC_MoveParent,
/*166754*/          OPC_SwitchType /*4 cases */, 18, MVT::v4f32,// ->166775
/*166757*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*166759*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*166762*/            OPC_EmitMergeInputChains1_1,
/*166763*/            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>>) - Complexity = 25
                      // Dst: (VMINPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*166775*/          /*SwitchType*/ 18, MVT::v2f64,// ->166795
/*166777*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*166779*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*166782*/            OPC_EmitMergeInputChains1_1,
/*166783*/            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>>) - Complexity = 25
                      // Dst: (VMINPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*166795*/          /*SwitchType*/ 18, MVT::v8f32,// ->166815
/*166797*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*166799*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*166802*/            OPC_EmitMergeInputChains1_1,
/*166803*/            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>>) - Complexity = 25
                      // Dst: (VMINPSYrm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*166815*/          /*SwitchType*/ 18, MVT::v4f64,// ->166835
/*166817*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*166819*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*166822*/            OPC_EmitMergeInputChains1_1,
/*166823*/            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>>) - Complexity = 25
                      // Dst: (VMINPDYrm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*166835*/          0, // EndSwitchType
/*166836*/        /*Scope*/ 45, /*->166882*/
/*166837*/          OPC_CheckPredicate, 39, // Predicate_memop
/*166839*/          OPC_MoveParent,
/*166840*/          OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->166861
/*166843*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*166845*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*166848*/            OPC_EmitMergeInputChains1_1,
/*166849*/            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_memop>>) - Complexity = 25
                      // Dst: (MINPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*166861*/          /*SwitchType*/ 18, MVT::v2f64,// ->166881
/*166863*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*166865*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*166868*/            OPC_EmitMergeInputChains1_1,
/*166869*/            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_memop>>) - Complexity = 25
                      // Dst: (MINPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*166881*/          0, // EndSwitchType
/*166882*/        /*Scope*/ 123, /*->167006*/
/*166883*/          OPC_MoveParent,
/*166884*/          OPC_SwitchType /*6 cases */, 18, MVT::v16f32,// ->166905
/*166887*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*166889*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*166892*/            OPC_EmitMergeInputChains1_1,
/*166893*/            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>>) - Complexity = 25
                      // Dst: (VMINPSZrm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*166905*/          /*SwitchType*/ 18, MVT::v8f64,// ->166925
/*166907*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*166909*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*166912*/            OPC_EmitMergeInputChains1_1,
/*166913*/            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>>) - Complexity = 25
                      // Dst: (VMINPDZrm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*166925*/          /*SwitchType*/ 18, MVT::v4f32,// ->166945
/*166927*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*166929*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*166932*/            OPC_EmitMergeInputChains1_1,
/*166933*/            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>>) - Complexity = 25
                      // Dst: (VMINPSZ128rm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*166945*/          /*SwitchType*/ 18, MVT::v8f32,// ->166965
/*166947*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*166949*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*166952*/            OPC_EmitMergeInputChains1_1,
/*166953*/            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>>) - Complexity = 25
                      // Dst: (VMINPSZ256rm:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*166965*/          /*SwitchType*/ 18, MVT::v2f64,// ->166985
/*166967*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*166969*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*166972*/            OPC_EmitMergeInputChains1_1,
/*166973*/            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>>) - Complexity = 25
                      // Dst: (VMINPDZ128rm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*166985*/          /*SwitchType*/ 18, MVT::v4f64,// ->167005
/*166987*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*166989*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*166992*/            OPC_EmitMergeInputChains1_1,
/*166993*/            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>>) - Complexity = 25
                      // Dst: (VMINPDZ256rm:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*167005*/          0, // EndSwitchType
/*167006*/        0, /*End of Scope*/
/*167007*/      /*SwitchOpcode*/ 18|128,1/*146*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->167157
/*167011*/        OPC_RecordMemRef,
/*167012*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*167013*/        OPC_CheckFoldableChainNode,
/*167014*/        OPC_RecordChild1, // #2 = $src2
/*167015*/        OPC_Scope, 23, /*->167040*/ // 4 children in Scope
/*167017*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*167019*/          OPC_MoveParent,
/*167020*/          OPC_CheckType, MVT::v16f32,
/*167022*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*167024*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*167027*/          OPC_EmitMergeInputChains1_1,
/*167028*/          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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                    // Dst: (VMINPSZrmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*167040*/        /*Scope*/ 23, /*->167064*/
/*167041*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*167043*/          OPC_MoveParent,
/*167044*/          OPC_CheckType, MVT::v8f64,
/*167046*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*167048*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*167051*/          OPC_EmitMergeInputChains1_1,
/*167052*/          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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                    // Dst: (VMINPDZrmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*167064*/        /*Scope*/ 45, /*->167110*/
/*167065*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*167067*/          OPC_MoveParent,
/*167068*/          OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->167089
/*167071*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*167073*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*167076*/            OPC_EmitMergeInputChains1_1,
/*167077*/            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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VMINPSZ128rmb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*167089*/          /*SwitchType*/ 18, MVT::v8f32,// ->167109
/*167091*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*167093*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*167096*/            OPC_EmitMergeInputChains1_1,
/*167097*/            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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VMINPSZ256rmb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*167109*/          0, // EndSwitchType
/*167110*/        /*Scope*/ 45, /*->167156*/
/*167111*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*167113*/          OPC_MoveParent,
/*167114*/          OPC_SwitchType /*2 cases */, 18, MVT::v2f64,// ->167135
/*167117*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*167119*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*167122*/            OPC_EmitMergeInputChains1_1,
/*167123*/            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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VMINPDZ128rmb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*167135*/          /*SwitchType*/ 18, MVT::v4f64,// ->167155
/*167137*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*167139*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*167142*/            OPC_EmitMergeInputChains1_1,
/*167143*/            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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VMINPDZ256rmb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*167155*/          0, // EndSwitchType
/*167156*/        0, /*End of Scope*/
/*167157*/      0, // EndSwitchOpcode
/*167158*/    /*Scope*/ 25|128,1/*153*/, /*->167313*/
/*167160*/      OPC_RecordChild1, // #1 = $src2
/*167161*/      OPC_SwitchType /*6 cases */, 35, MVT::v4f32,// ->167199
/*167164*/        OPC_Scope, 10, /*->167176*/ // 3 children in Scope
/*167166*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*167168*/          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)
/*167176*/        /*Scope*/ 10, /*->167187*/
/*167177*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*167179*/          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)
/*167187*/        /*Scope*/ 10, /*->167198*/
/*167188*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*167190*/          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)
/*167198*/        0, /*End of Scope*/
/*167199*/      /*SwitchType*/ 35, MVT::v2f64,// ->167236
/*167201*/        OPC_Scope, 10, /*->167213*/ // 3 children in Scope
/*167203*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*167205*/          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)
/*167213*/        /*Scope*/ 10, /*->167224*/
/*167214*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*167216*/          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)
/*167224*/        /*Scope*/ 10, /*->167235*/
/*167225*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*167227*/          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)
/*167235*/        0, /*End of Scope*/
/*167236*/      /*SwitchType*/ 24, MVT::v8f32,// ->167262
/*167238*/        OPC_Scope, 10, /*->167250*/ // 2 children in Scope
/*167240*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*167242*/          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)
/*167250*/        /*Scope*/ 10, /*->167261*/
/*167251*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*167253*/          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)
/*167261*/        0, /*End of Scope*/
/*167262*/      /*SwitchType*/ 24, MVT::v4f64,// ->167288
/*167264*/        OPC_Scope, 10, /*->167276*/ // 2 children in Scope
/*167266*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*167268*/          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)
/*167276*/        /*Scope*/ 10, /*->167287*/
/*167277*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*167279*/          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)
/*167287*/        0, /*End of Scope*/
/*167288*/      /*SwitchType*/ 10, MVT::v16f32,// ->167300
/*167290*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*167292*/        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)
/*167300*/      /*SwitchType*/ 10, MVT::v8f64,// ->167312
/*167302*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*167304*/        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)
/*167312*/      0, // EndSwitchType
/*167313*/    0, /*End of Scope*/
/*167314*/  /*SwitchOpcode*/ 94|128,10/*1374*/, TARGET_VAL(X86ISD::FMAXC),// ->168692
/*167318*/    OPC_Scope, 10|128,1/*138*/, /*->167459*/ // 5 children in Scope
/*167321*/      OPC_RecordChild0, // #0 = $src1
/*167322*/      OPC_MoveChild1,
/*167323*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*167326*/      OPC_RecordMemRef,
/*167327*/      OPC_RecordNode, // #1 = 'ld' chained node
/*167328*/      OPC_CheckFoldableChainNode,
/*167329*/      OPC_RecordChild1, // #2 = $src2
/*167330*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*167332*/      OPC_CheckPredicate, 9, // Predicate_load
/*167334*/      OPC_MoveParent,
/*167335*/      OPC_SwitchType /*2 cases */, 59, MVT::f32,// ->167397
/*167338*/        OPC_Scope, 18, /*->167358*/ // 3 children in Scope
/*167340*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*167342*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*167345*/          OPC_EmitMergeInputChains1_1,
/*167346*/          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)
/*167358*/        /*Scope*/ 18, /*->167377*/
/*167359*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*167361*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*167364*/          OPC_EmitMergeInputChains1_1,
/*167365*/          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)
/*167377*/        /*Scope*/ 18, /*->167396*/
/*167378*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*167380*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*167383*/          OPC_EmitMergeInputChains1_1,
/*167384*/          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)
/*167396*/        0, /*End of Scope*/
/*167397*/      /*SwitchType*/ 59, MVT::f64,// ->167458
/*167399*/        OPC_Scope, 18, /*->167419*/ // 3 children in Scope
/*167401*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*167403*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*167406*/          OPC_EmitMergeInputChains1_1,
/*167407*/          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)
/*167419*/        /*Scope*/ 18, /*->167438*/
/*167420*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*167422*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*167425*/          OPC_EmitMergeInputChains1_1,
/*167426*/          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)
/*167438*/        /*Scope*/ 18, /*->167457*/
/*167439*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*167441*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*167444*/          OPC_EmitMergeInputChains1_1,
/*167445*/          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)
/*167457*/        0, /*End of Scope*/
/*167458*/      0, // EndSwitchType
/*167459*/    /*Scope*/ 10|128,1/*138*/, /*->167599*/
/*167461*/      OPC_MoveChild0,
/*167462*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*167465*/      OPC_RecordMemRef,
/*167466*/      OPC_RecordNode, // #0 = 'ld' chained node
/*167467*/      OPC_CheckFoldableChainNode,
/*167468*/      OPC_RecordChild1, // #1 = $src2
/*167469*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*167471*/      OPC_CheckPredicate, 9, // Predicate_load
/*167473*/      OPC_MoveParent,
/*167474*/      OPC_RecordChild1, // #2 = $src1
/*167475*/      OPC_SwitchType /*2 cases */, 59, MVT::f32,// ->167537
/*167478*/        OPC_Scope, 18, /*->167498*/ // 3 children in Scope
/*167480*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*167482*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*167485*/          OPC_EmitMergeInputChains1_0,
/*167486*/          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)
/*167498*/        /*Scope*/ 18, /*->167517*/
/*167499*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*167501*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*167504*/          OPC_EmitMergeInputChains1_0,
/*167505*/          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)
/*167517*/        /*Scope*/ 18, /*->167536*/
/*167518*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*167520*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*167523*/          OPC_EmitMergeInputChains1_0,
/*167524*/          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)
/*167536*/        0, /*End of Scope*/
/*167537*/      /*SwitchType*/ 59, MVT::f64,// ->167598
/*167539*/        OPC_Scope, 18, /*->167559*/ // 3 children in Scope
/*167541*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*167543*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*167546*/          OPC_EmitMergeInputChains1_0,
/*167547*/          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)
/*167559*/        /*Scope*/ 18, /*->167578*/
/*167560*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*167562*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*167565*/          OPC_EmitMergeInputChains1_0,
/*167566*/          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)
/*167578*/        /*Scope*/ 18, /*->167597*/
/*167579*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*167581*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*167584*/          OPC_EmitMergeInputChains1_0,
/*167585*/          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)
/*167597*/        0, /*End of Scope*/
/*167598*/      0, // EndSwitchType
/*167599*/    /*Scope*/ 120|128,3/*504*/, /*->168105*/
/*167601*/      OPC_RecordChild0, // #0 = $src1
/*167602*/      OPC_Scope, 77, /*->167681*/ // 2 children in Scope
/*167604*/        OPC_RecordChild1, // #1 = $src2
/*167605*/        OPC_SwitchType /*2 cases */, 35, MVT::f32,// ->167643
/*167608*/          OPC_Scope, 10, /*->167620*/ // 3 children in Scope
/*167610*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*167612*/            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)
/*167620*/          /*Scope*/ 10, /*->167631*/
/*167621*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*167623*/            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)
/*167631*/          /*Scope*/ 10, /*->167642*/
/*167632*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*167634*/            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)
/*167642*/          0, /*End of Scope*/
/*167643*/        /*SwitchType*/ 35, MVT::f64,// ->167680
/*167645*/          OPC_Scope, 10, /*->167657*/ // 3 children in Scope
/*167647*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*167649*/            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)
/*167657*/          /*Scope*/ 10, /*->167668*/
/*167658*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*167660*/            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)
/*167668*/          /*Scope*/ 10, /*->167679*/
/*167669*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*167671*/            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)
/*167679*/          0, /*End of Scope*/
/*167680*/        0, // EndSwitchType
/*167681*/      /*Scope*/ 37|128,3/*421*/, /*->168104*/
/*167683*/        OPC_MoveChild1,
/*167684*/        OPC_SwitchOpcode /*2 cases */, 8|128,2/*264*/, TARGET_VAL(ISD::LOAD),// ->167953
/*167689*/          OPC_RecordMemRef,
/*167690*/          OPC_RecordNode, // #1 = 'ld' chained node
/*167691*/          OPC_CheckFoldableChainNode,
/*167692*/          OPC_RecordChild1, // #2 = $src2
/*167693*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*167695*/          OPC_CheckPredicate, 9, // Predicate_load
/*167697*/          OPC_Scope, 83, /*->167782*/ // 3 children in Scope
/*167699*/            OPC_MoveParent,
/*167700*/            OPC_SwitchType /*4 cases */, 18, MVT::v4f32,// ->167721
/*167703*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*167705*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*167708*/              OPC_EmitMergeInputChains1_1,
/*167709*/              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>>) - Complexity = 25
                        // Dst: (VMAXCPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*167721*/            /*SwitchType*/ 18, MVT::v2f64,// ->167741
/*167723*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*167725*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*167728*/              OPC_EmitMergeInputChains1_1,
/*167729*/              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>>) - Complexity = 25
                        // Dst: (VMAXCPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*167741*/            /*SwitchType*/ 18, MVT::v8f32,// ->167761
/*167743*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*167745*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*167748*/              OPC_EmitMergeInputChains1_1,
/*167749*/              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>>) - Complexity = 25
                        // Dst: (VMAXCPSYrm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*167761*/            /*SwitchType*/ 18, MVT::v4f64,// ->167781
/*167763*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*167765*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*167768*/              OPC_EmitMergeInputChains1_1,
/*167769*/              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>>) - Complexity = 25
                        // Dst: (VMAXCPDYrm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*167781*/            0, // EndSwitchType
/*167782*/          /*Scope*/ 45, /*->167828*/
/*167783*/            OPC_CheckPredicate, 39, // Predicate_memop
/*167785*/            OPC_MoveParent,
/*167786*/            OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->167807
/*167789*/              OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*167791*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*167794*/              OPC_EmitMergeInputChains1_1,
/*167795*/              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_memop>>) - Complexity = 25
                        // Dst: (MAXCPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*167807*/            /*SwitchType*/ 18, MVT::v2f64,// ->167827
/*167809*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*167811*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*167814*/              OPC_EmitMergeInputChains1_1,
/*167815*/              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_memop>>) - Complexity = 25
                        // Dst: (MAXCPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*167827*/            0, // EndSwitchType
/*167828*/          /*Scope*/ 123, /*->167952*/
/*167829*/            OPC_MoveParent,
/*167830*/            OPC_SwitchType /*6 cases */, 18, MVT::v16f32,// ->167851
/*167833*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*167835*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*167838*/              OPC_EmitMergeInputChains1_1,
/*167839*/              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>>) - Complexity = 25
                        // Dst: (VMAXCPSZrm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*167851*/            /*SwitchType*/ 18, MVT::v8f64,// ->167871
/*167853*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*167855*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*167858*/              OPC_EmitMergeInputChains1_1,
/*167859*/              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>>) - Complexity = 25
                        // Dst: (VMAXCPDZrm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*167871*/            /*SwitchType*/ 18, MVT::v4f32,// ->167891
/*167873*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*167875*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*167878*/              OPC_EmitMergeInputChains1_1,
/*167879*/              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>>) - Complexity = 25
                        // Dst: (VMAXCPSZ128rm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*167891*/            /*SwitchType*/ 18, MVT::v8f32,// ->167911
/*167893*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*167895*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*167898*/              OPC_EmitMergeInputChains1_1,
/*167899*/              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>>) - Complexity = 25
                        // Dst: (VMAXCPSZ256rm:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*167911*/            /*SwitchType*/ 18, MVT::v2f64,// ->167931
/*167913*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*167915*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*167918*/              OPC_EmitMergeInputChains1_1,
/*167919*/              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>>) - Complexity = 25
                        // Dst: (VMAXCPDZ128rm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*167931*/            /*SwitchType*/ 18, MVT::v4f64,// ->167951
/*167933*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*167935*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*167938*/              OPC_EmitMergeInputChains1_1,
/*167939*/              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>>) - Complexity = 25
                        // Dst: (VMAXCPDZ256rm:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*167951*/            0, // EndSwitchType
/*167952*/          0, /*End of Scope*/
/*167953*/        /*SwitchOpcode*/ 18|128,1/*146*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->168103
/*167957*/          OPC_RecordMemRef,
/*167958*/          OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*167959*/          OPC_CheckFoldableChainNode,
/*167960*/          OPC_RecordChild1, // #2 = $src2
/*167961*/          OPC_Scope, 23, /*->167986*/ // 4 children in Scope
/*167963*/            OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*167965*/            OPC_MoveParent,
/*167966*/            OPC_CheckType, MVT::v16f32,
/*167968*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*167970*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*167973*/            OPC_EmitMergeInputChains1_1,
/*167974*/            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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VMAXCPSZrmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*167986*/          /*Scope*/ 23, /*->168010*/
/*167987*/            OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*167989*/            OPC_MoveParent,
/*167990*/            OPC_CheckType, MVT::v8f64,
/*167992*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*167994*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*167997*/            OPC_EmitMergeInputChains1_1,
/*167998*/            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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VMAXCPDZrmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*168010*/          /*Scope*/ 45, /*->168056*/
/*168011*/            OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*168013*/            OPC_MoveParent,
/*168014*/            OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->168035
/*168017*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*168019*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*168022*/              OPC_EmitMergeInputChains1_1,
/*168023*/              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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VMAXCPSZ128rmb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*168035*/            /*SwitchType*/ 18, MVT::v8f32,// ->168055
/*168037*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*168039*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*168042*/              OPC_EmitMergeInputChains1_1,
/*168043*/              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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VMAXCPSZ256rmb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*168055*/            0, // EndSwitchType
/*168056*/          /*Scope*/ 45, /*->168102*/
/*168057*/            OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*168059*/            OPC_MoveParent,
/*168060*/            OPC_SwitchType /*2 cases */, 18, MVT::v2f64,// ->168081
/*168063*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*168065*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*168068*/              OPC_EmitMergeInputChains1_1,
/*168069*/              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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VMAXCPDZ128rmb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*168081*/            /*SwitchType*/ 18, MVT::v4f64,// ->168101
/*168083*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*168085*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*168088*/              OPC_EmitMergeInputChains1_1,
/*168089*/              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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VMAXCPDZ256rmb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*168101*/            0, // EndSwitchType
/*168102*/          0, /*End of Scope*/
/*168103*/        0, // EndSwitchOpcode
/*168104*/      0, /*End of Scope*/
/*168105*/    /*Scope*/ 44|128,3/*428*/, /*->168535*/
/*168107*/      OPC_MoveChild0,
/*168108*/      OPC_SwitchOpcode /*2 cases */, 11|128,2/*267*/, TARGET_VAL(ISD::LOAD),// ->168380
/*168113*/        OPC_RecordMemRef,
/*168114*/        OPC_RecordNode, // #0 = 'ld' chained node
/*168115*/        OPC_CheckFoldableChainNode,
/*168116*/        OPC_RecordChild1, // #1 = $src2
/*168117*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*168119*/        OPC_CheckPredicate, 9, // Predicate_load
/*168121*/        OPC_Scope, 84, /*->168207*/ // 3 children in Scope
/*168123*/          OPC_MoveParent,
/*168124*/          OPC_RecordChild1, // #2 = $src1
/*168125*/          OPC_SwitchType /*4 cases */, 18, MVT::v4f32,// ->168146
/*168128*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*168130*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*168133*/            OPC_EmitMergeInputChains1_0,
/*168134*/            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>>, VR128:{ *:[v4f32] }:$src1) - Complexity = 25
                      // Dst: (VMAXCPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*168146*/          /*SwitchType*/ 18, MVT::v2f64,// ->168166
/*168148*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*168150*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*168153*/            OPC_EmitMergeInputChains1_0,
/*168154*/            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>>, VR128:{ *:[v2f64] }:$src1) - Complexity = 25
                      // Dst: (VMAXCPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*168166*/          /*SwitchType*/ 18, MVT::v8f32,// ->168186
/*168168*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*168170*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*168173*/            OPC_EmitMergeInputChains1_0,
/*168174*/            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>>, VR256:{ *:[v8f32] }:$src1) - Complexity = 25
                      // Dst: (VMAXCPSYrm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*168186*/          /*SwitchType*/ 18, MVT::v4f64,// ->168206
/*168188*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*168190*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*168193*/            OPC_EmitMergeInputChains1_0,
/*168194*/            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>>, VR256:{ *:[v4f64] }:$src1) - Complexity = 25
                      // Dst: (VMAXCPDYrm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*168206*/          0, // EndSwitchType
/*168207*/        /*Scope*/ 46, /*->168254*/
/*168208*/          OPC_CheckPredicate, 39, // Predicate_memop
/*168210*/          OPC_MoveParent,
/*168211*/          OPC_RecordChild1, // #2 = $src1
/*168212*/          OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->168233
/*168215*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*168217*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*168220*/            OPC_EmitMergeInputChains1_0,
/*168221*/            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_memop>>, VR128:{ *:[v4f32] }:$src1) - Complexity = 25
                      // Dst: (MAXCPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*168233*/          /*SwitchType*/ 18, MVT::v2f64,// ->168253
/*168235*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*168237*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*168240*/            OPC_EmitMergeInputChains1_0,
/*168241*/            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_memop>>, VR128:{ *:[v2f64] }:$src1) - Complexity = 25
                      // Dst: (MAXCPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*168253*/          0, // EndSwitchType
/*168254*/        /*Scope*/ 124, /*->168379*/
/*168255*/          OPC_MoveParent,
/*168256*/          OPC_RecordChild1, // #2 = $src1
/*168257*/          OPC_SwitchType /*6 cases */, 18, MVT::v16f32,// ->168278
/*168260*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*168262*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*168265*/            OPC_EmitMergeInputChains1_0,
/*168266*/            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>>, VR512:{ *:[v16f32] }:$src1) - Complexity = 25
                      // Dst: (VMAXCPSZrm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*168278*/          /*SwitchType*/ 18, MVT::v8f64,// ->168298
/*168280*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*168282*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*168285*/            OPC_EmitMergeInputChains1_0,
/*168286*/            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>>, VR512:{ *:[v8f64] }:$src1) - Complexity = 25
                      // Dst: (VMAXCPDZrm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*168298*/          /*SwitchType*/ 18, MVT::v4f32,// ->168318
/*168300*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*168302*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*168305*/            OPC_EmitMergeInputChains1_0,
/*168306*/            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>>, VR128X:{ *:[v4f32] }:$src1) - Complexity = 25
                      // Dst: (VMAXCPSZ128rm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*168318*/          /*SwitchType*/ 18, MVT::v8f32,// ->168338
/*168320*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*168322*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*168325*/            OPC_EmitMergeInputChains1_0,
/*168326*/            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>>, VR256X:{ *:[v8f32] }:$src1) - Complexity = 25
                      // Dst: (VMAXCPSZ256rm:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*168338*/          /*SwitchType*/ 18, MVT::v2f64,// ->168358
/*168340*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*168342*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*168345*/            OPC_EmitMergeInputChains1_0,
/*168346*/            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>>, VR128X:{ *:[v2f64] }:$src1) - Complexity = 25
                      // Dst: (VMAXCPDZ128rm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*168358*/          /*SwitchType*/ 18, MVT::v4f64,// ->168378
/*168360*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*168362*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*168365*/            OPC_EmitMergeInputChains1_0,
/*168366*/            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>>, VR256X:{ *:[v4f64] }:$src1) - Complexity = 25
                      // Dst: (VMAXCPDZ256rm:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*168378*/          0, // EndSwitchType
/*168379*/        0, /*End of Scope*/
/*168380*/      /*SwitchOpcode*/ 22|128,1/*150*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->168534
/*168384*/        OPC_RecordMemRef,
/*168385*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*168386*/        OPC_CheckFoldableChainNode,
/*168387*/        OPC_RecordChild1, // #1 = $src2
/*168388*/        OPC_Scope, 24, /*->168414*/ // 4 children in Scope
/*168390*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*168392*/          OPC_MoveParent,
/*168393*/          OPC_RecordChild1, // #2 = $src1
/*168394*/          OPC_CheckType, MVT::v16f32,
/*168396*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*168398*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*168401*/          OPC_EmitMergeInputChains1_0,
/*168402*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPSZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86fmaxc:{ *:[v16f32] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src1) - Complexity = 25
                    // Dst: (VMAXCPSZrmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*168414*/        /*Scope*/ 24, /*->168439*/
/*168415*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*168417*/          OPC_MoveParent,
/*168418*/          OPC_RecordChild1, // #2 = $src1
/*168419*/          OPC_CheckType, MVT::v8f64,
/*168421*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*168423*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*168426*/          OPC_EmitMergeInputChains1_0,
/*168427*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86fmaxc:{ *:[v8f64] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src1) - Complexity = 25
                    // Dst: (VMAXCPDZrmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*168439*/        /*Scope*/ 46, /*->168486*/
/*168440*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*168442*/          OPC_MoveParent,
/*168443*/          OPC_RecordChild1, // #2 = $src1
/*168444*/          OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->168465
/*168447*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*168449*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*168452*/            OPC_EmitMergeInputChains1_0,
/*168453*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPSZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (X86fmaxc:{ *:[v4f32] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1) - Complexity = 25
                      // Dst: (VMAXCPSZ128rmb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*168465*/          /*SwitchType*/ 18, MVT::v8f32,// ->168485
/*168467*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*168469*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*168472*/            OPC_EmitMergeInputChains1_0,
/*168473*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPSZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (X86fmaxc:{ *:[v8f32] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1) - Complexity = 25
                      // Dst: (VMAXCPSZ256rmb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*168485*/          0, // EndSwitchType
/*168486*/        /*Scope*/ 46, /*->168533*/
/*168487*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*168489*/          OPC_MoveParent,
/*168490*/          OPC_RecordChild1, // #2 = $src1
/*168491*/          OPC_SwitchType /*2 cases */, 18, MVT::v2f64,// ->168512
/*168494*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*168496*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*168499*/            OPC_EmitMergeInputChains1_0,
/*168500*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (X86fmaxc:{ *:[v2f64] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1) - Complexity = 25
                      // Dst: (VMAXCPDZ128rmb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*168512*/          /*SwitchType*/ 18, MVT::v4f64,// ->168532
/*168514*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*168516*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*168519*/            OPC_EmitMergeInputChains1_0,
/*168520*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXCPDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (X86fmaxc:{ *:[v4f64] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1) - Complexity = 25
                      // Dst: (VMAXCPDZ256rmb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*168532*/          0, // EndSwitchType
/*168533*/        0, /*End of Scope*/
/*168534*/      0, // EndSwitchOpcode
/*168535*/    /*Scope*/ 26|128,1/*154*/, /*->168691*/
/*168537*/      OPC_RecordChild0, // #0 = $src1
/*168538*/      OPC_RecordChild1, // #1 = $src2
/*168539*/      OPC_SwitchType /*6 cases */, 35, MVT::v4f32,// ->168577
/*168542*/        OPC_Scope, 10, /*->168554*/ // 3 children in Scope
/*168544*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*168546*/          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)
/*168554*/        /*Scope*/ 10, /*->168565*/
/*168555*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*168557*/          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)
/*168565*/        /*Scope*/ 10, /*->168576*/
/*168566*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*168568*/          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)
/*168576*/        0, /*End of Scope*/
/*168577*/      /*SwitchType*/ 35, MVT::v2f64,// ->168614
/*168579*/        OPC_Scope, 10, /*->168591*/ // 3 children in Scope
/*168581*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*168583*/          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)
/*168591*/        /*Scope*/ 10, /*->168602*/
/*168592*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*168594*/          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)
/*168602*/        /*Scope*/ 10, /*->168613*/
/*168603*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*168605*/          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)
/*168613*/        0, /*End of Scope*/
/*168614*/      /*SwitchType*/ 24, MVT::v8f32,// ->168640
/*168616*/        OPC_Scope, 10, /*->168628*/ // 2 children in Scope
/*168618*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*168620*/          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)
/*168628*/        /*Scope*/ 10, /*->168639*/
/*168629*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*168631*/          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)
/*168639*/        0, /*End of Scope*/
/*168640*/      /*SwitchType*/ 24, MVT::v4f64,// ->168666
/*168642*/        OPC_Scope, 10, /*->168654*/ // 2 children in Scope
/*168644*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*168646*/          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)
/*168654*/        /*Scope*/ 10, /*->168665*/
/*168655*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*168657*/          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)
/*168665*/        0, /*End of Scope*/
/*168666*/      /*SwitchType*/ 10, MVT::v16f32,// ->168678
/*168668*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*168670*/        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)
/*168678*/      /*SwitchType*/ 10, MVT::v8f64,// ->168690
/*168680*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*168682*/        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)
/*168690*/      0, // EndSwitchType
/*168691*/    0, /*End of Scope*/
/*168692*/  /*SwitchOpcode*/ 94|128,10/*1374*/, TARGET_VAL(X86ISD::FMINC),// ->170070
/*168696*/    OPC_Scope, 10|128,1/*138*/, /*->168837*/ // 5 children in Scope
/*168699*/      OPC_RecordChild0, // #0 = $src1
/*168700*/      OPC_MoveChild1,
/*168701*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*168704*/      OPC_RecordMemRef,
/*168705*/      OPC_RecordNode, // #1 = 'ld' chained node
/*168706*/      OPC_CheckFoldableChainNode,
/*168707*/      OPC_RecordChild1, // #2 = $src2
/*168708*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*168710*/      OPC_CheckPredicate, 9, // Predicate_load
/*168712*/      OPC_MoveParent,
/*168713*/      OPC_SwitchType /*2 cases */, 59, MVT::f32,// ->168775
/*168716*/        OPC_Scope, 18, /*->168736*/ // 3 children in Scope
/*168718*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*168720*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*168723*/          OPC_EmitMergeInputChains1_1,
/*168724*/          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)
/*168736*/        /*Scope*/ 18, /*->168755*/
/*168737*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*168739*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*168742*/          OPC_EmitMergeInputChains1_1,
/*168743*/          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)
/*168755*/        /*Scope*/ 18, /*->168774*/
/*168756*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*168758*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*168761*/          OPC_EmitMergeInputChains1_1,
/*168762*/          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)
/*168774*/        0, /*End of Scope*/
/*168775*/      /*SwitchType*/ 59, MVT::f64,// ->168836
/*168777*/        OPC_Scope, 18, /*->168797*/ // 3 children in Scope
/*168779*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*168781*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*168784*/          OPC_EmitMergeInputChains1_1,
/*168785*/          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)
/*168797*/        /*Scope*/ 18, /*->168816*/
/*168798*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*168800*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*168803*/          OPC_EmitMergeInputChains1_1,
/*168804*/          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)
/*168816*/        /*Scope*/ 18, /*->168835*/
/*168817*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*168819*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*168822*/          OPC_EmitMergeInputChains1_1,
/*168823*/          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)
/*168835*/        0, /*End of Scope*/
/*168836*/      0, // EndSwitchType
/*168837*/    /*Scope*/ 10|128,1/*138*/, /*->168977*/
/*168839*/      OPC_MoveChild0,
/*168840*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*168843*/      OPC_RecordMemRef,
/*168844*/      OPC_RecordNode, // #0 = 'ld' chained node
/*168845*/      OPC_CheckFoldableChainNode,
/*168846*/      OPC_RecordChild1, // #1 = $src2
/*168847*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*168849*/      OPC_CheckPredicate, 9, // Predicate_load
/*168851*/      OPC_MoveParent,
/*168852*/      OPC_RecordChild1, // #2 = $src1
/*168853*/      OPC_SwitchType /*2 cases */, 59, MVT::f32,// ->168915
/*168856*/        OPC_Scope, 18, /*->168876*/ // 3 children in Scope
/*168858*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*168860*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*168863*/          OPC_EmitMergeInputChains1_0,
/*168864*/          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)
/*168876*/        /*Scope*/ 18, /*->168895*/
/*168877*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*168879*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*168882*/          OPC_EmitMergeInputChains1_0,
/*168883*/          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)
/*168895*/        /*Scope*/ 18, /*->168914*/
/*168896*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*168898*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*168901*/          OPC_EmitMergeInputChains1_0,
/*168902*/          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)
/*168914*/        0, /*End of Scope*/
/*168915*/      /*SwitchType*/ 59, MVT::f64,// ->168976
/*168917*/        OPC_Scope, 18, /*->168937*/ // 3 children in Scope
/*168919*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*168921*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*168924*/          OPC_EmitMergeInputChains1_0,
/*168925*/          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)
/*168937*/        /*Scope*/ 18, /*->168956*/
/*168938*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*168940*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*168943*/          OPC_EmitMergeInputChains1_0,
/*168944*/          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)
/*168956*/        /*Scope*/ 18, /*->168975*/
/*168957*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*168959*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*168962*/          OPC_EmitMergeInputChains1_0,
/*168963*/          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)
/*168975*/        0, /*End of Scope*/
/*168976*/      0, // EndSwitchType
/*168977*/    /*Scope*/ 120|128,3/*504*/, /*->169483*/
/*168979*/      OPC_RecordChild0, // #0 = $src1
/*168980*/      OPC_Scope, 77, /*->169059*/ // 2 children in Scope
/*168982*/        OPC_RecordChild1, // #1 = $src2
/*168983*/        OPC_SwitchType /*2 cases */, 35, MVT::f32,// ->169021
/*168986*/          OPC_Scope, 10, /*->168998*/ // 3 children in Scope
/*168988*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*168990*/            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)
/*168998*/          /*Scope*/ 10, /*->169009*/
/*168999*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*169001*/            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)
/*169009*/          /*Scope*/ 10, /*->169020*/
/*169010*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*169012*/            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)
/*169020*/          0, /*End of Scope*/
/*169021*/        /*SwitchType*/ 35, MVT::f64,// ->169058
/*169023*/          OPC_Scope, 10, /*->169035*/ // 3 children in Scope
/*169025*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*169027*/            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)
/*169035*/          /*Scope*/ 10, /*->169046*/
/*169036*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*169038*/            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)
/*169046*/          /*Scope*/ 10, /*->169057*/
/*169047*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*169049*/            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)
/*169057*/          0, /*End of Scope*/
/*169058*/        0, // EndSwitchType
/*169059*/      /*Scope*/ 37|128,3/*421*/, /*->169482*/
/*169061*/        OPC_MoveChild1,
/*169062*/        OPC_SwitchOpcode /*2 cases */, 8|128,2/*264*/, TARGET_VAL(ISD::LOAD),// ->169331
/*169067*/          OPC_RecordMemRef,
/*169068*/          OPC_RecordNode, // #1 = 'ld' chained node
/*169069*/          OPC_CheckFoldableChainNode,
/*169070*/          OPC_RecordChild1, // #2 = $src2
/*169071*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*169073*/          OPC_CheckPredicate, 9, // Predicate_load
/*169075*/          OPC_Scope, 83, /*->169160*/ // 3 children in Scope
/*169077*/            OPC_MoveParent,
/*169078*/            OPC_SwitchType /*4 cases */, 18, MVT::v4f32,// ->169099
/*169081*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*169083*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*169086*/              OPC_EmitMergeInputChains1_1,
/*169087*/              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>>) - Complexity = 25
                        // Dst: (VMINCPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*169099*/            /*SwitchType*/ 18, MVT::v2f64,// ->169119
/*169101*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*169103*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*169106*/              OPC_EmitMergeInputChains1_1,
/*169107*/              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>>) - Complexity = 25
                        // Dst: (VMINCPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*169119*/            /*SwitchType*/ 18, MVT::v8f32,// ->169139
/*169121*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*169123*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*169126*/              OPC_EmitMergeInputChains1_1,
/*169127*/              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>>) - Complexity = 25
                        // Dst: (VMINCPSYrm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*169139*/            /*SwitchType*/ 18, MVT::v4f64,// ->169159
/*169141*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*169143*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*169146*/              OPC_EmitMergeInputChains1_1,
/*169147*/              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>>) - Complexity = 25
                        // Dst: (VMINCPDYrm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*169159*/            0, // EndSwitchType
/*169160*/          /*Scope*/ 45, /*->169206*/
/*169161*/            OPC_CheckPredicate, 39, // Predicate_memop
/*169163*/            OPC_MoveParent,
/*169164*/            OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->169185
/*169167*/              OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*169169*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*169172*/              OPC_EmitMergeInputChains1_1,
/*169173*/              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_memop>>) - Complexity = 25
                        // Dst: (MINCPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*169185*/            /*SwitchType*/ 18, MVT::v2f64,// ->169205
/*169187*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*169189*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*169192*/              OPC_EmitMergeInputChains1_1,
/*169193*/              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_memop>>) - Complexity = 25
                        // Dst: (MINCPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*169205*/            0, // EndSwitchType
/*169206*/          /*Scope*/ 123, /*->169330*/
/*169207*/            OPC_MoveParent,
/*169208*/            OPC_SwitchType /*6 cases */, 18, MVT::v16f32,// ->169229
/*169211*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*169213*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*169216*/              OPC_EmitMergeInputChains1_1,
/*169217*/              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>>) - Complexity = 25
                        // Dst: (VMINCPSZrm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*169229*/            /*SwitchType*/ 18, MVT::v8f64,// ->169249
/*169231*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*169233*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*169236*/              OPC_EmitMergeInputChains1_1,
/*169237*/              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>>) - Complexity = 25
                        // Dst: (VMINCPDZrm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*169249*/            /*SwitchType*/ 18, MVT::v4f32,// ->169269
/*169251*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*169253*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*169256*/              OPC_EmitMergeInputChains1_1,
/*169257*/              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>>) - Complexity = 25
                        // Dst: (VMINCPSZ128rm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*169269*/            /*SwitchType*/ 18, MVT::v8f32,// ->169289
/*169271*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*169273*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*169276*/              OPC_EmitMergeInputChains1_1,
/*169277*/              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>>) - Complexity = 25
                        // Dst: (VMINCPSZ256rm:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*169289*/            /*SwitchType*/ 18, MVT::v2f64,// ->169309
/*169291*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*169293*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*169296*/              OPC_EmitMergeInputChains1_1,
/*169297*/              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>>) - Complexity = 25
                        // Dst: (VMINCPDZ128rm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*169309*/            /*SwitchType*/ 18, MVT::v4f64,// ->169329
/*169311*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*169313*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*169316*/              OPC_EmitMergeInputChains1_1,
/*169317*/              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>>) - Complexity = 25
                        // Dst: (VMINCPDZ256rm:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*169329*/            0, // EndSwitchType
/*169330*/          0, /*End of Scope*/
/*169331*/        /*SwitchOpcode*/ 18|128,1/*146*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->169481
/*169335*/          OPC_RecordMemRef,
/*169336*/          OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*169337*/          OPC_CheckFoldableChainNode,
/*169338*/          OPC_RecordChild1, // #2 = $src2
/*169339*/          OPC_Scope, 23, /*->169364*/ // 4 children in Scope
/*169341*/            OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*169343*/            OPC_MoveParent,
/*169344*/            OPC_CheckType, MVT::v16f32,
/*169346*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*169348*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*169351*/            OPC_EmitMergeInputChains1_1,
/*169352*/            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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VMINCPSZrmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*169364*/          /*Scope*/ 23, /*->169388*/
/*169365*/            OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*169367*/            OPC_MoveParent,
/*169368*/            OPC_CheckType, MVT::v8f64,
/*169370*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*169372*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*169375*/            OPC_EmitMergeInputChains1_1,
/*169376*/            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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VMINCPDZrmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*169388*/          /*Scope*/ 45, /*->169434*/
/*169389*/            OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*169391*/            OPC_MoveParent,
/*169392*/            OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->169413
/*169395*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*169397*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*169400*/              OPC_EmitMergeInputChains1_1,
/*169401*/              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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VMINCPSZ128rmb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*169413*/            /*SwitchType*/ 18, MVT::v8f32,// ->169433
/*169415*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*169417*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*169420*/              OPC_EmitMergeInputChains1_1,
/*169421*/              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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VMINCPSZ256rmb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*169433*/            0, // EndSwitchType
/*169434*/          /*Scope*/ 45, /*->169480*/
/*169435*/            OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*169437*/            OPC_MoveParent,
/*169438*/            OPC_SwitchType /*2 cases */, 18, MVT::v2f64,// ->169459
/*169441*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*169443*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*169446*/              OPC_EmitMergeInputChains1_1,
/*169447*/              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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VMINCPDZ128rmb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*169459*/            /*SwitchType*/ 18, MVT::v4f64,// ->169479
/*169461*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*169463*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*169466*/              OPC_EmitMergeInputChains1_1,
/*169467*/              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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VMINCPDZ256rmb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*169479*/            0, // EndSwitchType
/*169480*/          0, /*End of Scope*/
/*169481*/        0, // EndSwitchOpcode
/*169482*/      0, /*End of Scope*/
/*169483*/    /*Scope*/ 44|128,3/*428*/, /*->169913*/
/*169485*/      OPC_MoveChild0,
/*169486*/      OPC_SwitchOpcode /*2 cases */, 11|128,2/*267*/, TARGET_VAL(ISD::LOAD),// ->169758
/*169491*/        OPC_RecordMemRef,
/*169492*/        OPC_RecordNode, // #0 = 'ld' chained node
/*169493*/        OPC_CheckFoldableChainNode,
/*169494*/        OPC_RecordChild1, // #1 = $src2
/*169495*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*169497*/        OPC_CheckPredicate, 9, // Predicate_load
/*169499*/        OPC_Scope, 84, /*->169585*/ // 3 children in Scope
/*169501*/          OPC_MoveParent,
/*169502*/          OPC_RecordChild1, // #2 = $src1
/*169503*/          OPC_SwitchType /*4 cases */, 18, MVT::v4f32,// ->169524
/*169506*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*169508*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*169511*/            OPC_EmitMergeInputChains1_0,
/*169512*/            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>>, VR128:{ *:[v4f32] }:$src1) - Complexity = 25
                      // Dst: (VMINCPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*169524*/          /*SwitchType*/ 18, MVT::v2f64,// ->169544
/*169526*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*169528*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*169531*/            OPC_EmitMergeInputChains1_0,
/*169532*/            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>>, VR128:{ *:[v2f64] }:$src1) - Complexity = 25
                      // Dst: (VMINCPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*169544*/          /*SwitchType*/ 18, MVT::v8f32,// ->169564
/*169546*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*169548*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*169551*/            OPC_EmitMergeInputChains1_0,
/*169552*/            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>>, VR256:{ *:[v8f32] }:$src1) - Complexity = 25
                      // Dst: (VMINCPSYrm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*169564*/          /*SwitchType*/ 18, MVT::v4f64,// ->169584
/*169566*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*169568*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*169571*/            OPC_EmitMergeInputChains1_0,
/*169572*/            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>>, VR256:{ *:[v4f64] }:$src1) - Complexity = 25
                      // Dst: (VMINCPDYrm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*169584*/          0, // EndSwitchType
/*169585*/        /*Scope*/ 46, /*->169632*/
/*169586*/          OPC_CheckPredicate, 39, // Predicate_memop
/*169588*/          OPC_MoveParent,
/*169589*/          OPC_RecordChild1, // #2 = $src1
/*169590*/          OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->169611
/*169593*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*169595*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*169598*/            OPC_EmitMergeInputChains1_0,
/*169599*/            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_memop>>, VR128:{ *:[v4f32] }:$src1) - Complexity = 25
                      // Dst: (MINCPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*169611*/          /*SwitchType*/ 18, MVT::v2f64,// ->169631
/*169613*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*169615*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*169618*/            OPC_EmitMergeInputChains1_0,
/*169619*/            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_memop>>, VR128:{ *:[v2f64] }:$src1) - Complexity = 25
                      // Dst: (MINCPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*169631*/          0, // EndSwitchType
/*169632*/        /*Scope*/ 124, /*->169757*/
/*169633*/          OPC_MoveParent,
/*169634*/          OPC_RecordChild1, // #2 = $src1
/*169635*/          OPC_SwitchType /*6 cases */, 18, MVT::v16f32,// ->169656
/*169638*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*169640*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*169643*/            OPC_EmitMergeInputChains1_0,
/*169644*/            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>>, VR512:{ *:[v16f32] }:$src1) - Complexity = 25
                      // Dst: (VMINCPSZrm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*169656*/          /*SwitchType*/ 18, MVT::v8f64,// ->169676
/*169658*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*169660*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*169663*/            OPC_EmitMergeInputChains1_0,
/*169664*/            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>>, VR512:{ *:[v8f64] }:$src1) - Complexity = 25
                      // Dst: (VMINCPDZrm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*169676*/          /*SwitchType*/ 18, MVT::v4f32,// ->169696
/*169678*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*169680*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*169683*/            OPC_EmitMergeInputChains1_0,
/*169684*/            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>>, VR128X:{ *:[v4f32] }:$src1) - Complexity = 25
                      // Dst: (VMINCPSZ128rm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*169696*/          /*SwitchType*/ 18, MVT::v8f32,// ->169716
/*169698*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*169700*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*169703*/            OPC_EmitMergeInputChains1_0,
/*169704*/            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>>, VR256X:{ *:[v8f32] }:$src1) - Complexity = 25
                      // Dst: (VMINCPSZ256rm:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*169716*/          /*SwitchType*/ 18, MVT::v2f64,// ->169736
/*169718*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*169720*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*169723*/            OPC_EmitMergeInputChains1_0,
/*169724*/            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>>, VR128X:{ *:[v2f64] }:$src1) - Complexity = 25
                      // Dst: (VMINCPDZ128rm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*169736*/          /*SwitchType*/ 18, MVT::v4f64,// ->169756
/*169738*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*169740*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*169743*/            OPC_EmitMergeInputChains1_0,
/*169744*/            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>>, VR256X:{ *:[v4f64] }:$src1) - Complexity = 25
                      // Dst: (VMINCPDZ256rm:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*169756*/          0, // EndSwitchType
/*169757*/        0, /*End of Scope*/
/*169758*/      /*SwitchOpcode*/ 22|128,1/*150*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->169912
/*169762*/        OPC_RecordMemRef,
/*169763*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*169764*/        OPC_CheckFoldableChainNode,
/*169765*/        OPC_RecordChild1, // #1 = $src2
/*169766*/        OPC_Scope, 24, /*->169792*/ // 4 children in Scope
/*169768*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*169770*/          OPC_MoveParent,
/*169771*/          OPC_RecordChild1, // #2 = $src1
/*169772*/          OPC_CheckType, MVT::v16f32,
/*169774*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*169776*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*169779*/          OPC_EmitMergeInputChains1_0,
/*169780*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPSZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86fminc:{ *:[v16f32] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src1) - Complexity = 25
                    // Dst: (VMINCPSZrmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*169792*/        /*Scope*/ 24, /*->169817*/
/*169793*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*169795*/          OPC_MoveParent,
/*169796*/          OPC_RecordChild1, // #2 = $src1
/*169797*/          OPC_CheckType, MVT::v8f64,
/*169799*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*169801*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*169804*/          OPC_EmitMergeInputChains1_0,
/*169805*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86fminc:{ *:[v8f64] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src1) - Complexity = 25
                    // Dst: (VMINCPDZrmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*169817*/        /*Scope*/ 46, /*->169864*/
/*169818*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*169820*/          OPC_MoveParent,
/*169821*/          OPC_RecordChild1, // #2 = $src1
/*169822*/          OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->169843
/*169825*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*169827*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*169830*/            OPC_EmitMergeInputChains1_0,
/*169831*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPSZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (X86fminc:{ *:[v4f32] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1) - Complexity = 25
                      // Dst: (VMINCPSZ128rmb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*169843*/          /*SwitchType*/ 18, MVT::v8f32,// ->169863
/*169845*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*169847*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*169850*/            OPC_EmitMergeInputChains1_0,
/*169851*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPSZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (X86fminc:{ *:[v8f32] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1) - Complexity = 25
                      // Dst: (VMINCPSZ256rmb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*169863*/          0, // EndSwitchType
/*169864*/        /*Scope*/ 46, /*->169911*/
/*169865*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*169867*/          OPC_MoveParent,
/*169868*/          OPC_RecordChild1, // #2 = $src1
/*169869*/          OPC_SwitchType /*2 cases */, 18, MVT::v2f64,// ->169890
/*169872*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*169874*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*169877*/            OPC_EmitMergeInputChains1_0,
/*169878*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (X86fminc:{ *:[v2f64] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1) - Complexity = 25
                      // Dst: (VMINCPDZ128rmb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*169890*/          /*SwitchType*/ 18, MVT::v4f64,// ->169910
/*169892*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*169894*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*169897*/            OPC_EmitMergeInputChains1_0,
/*169898*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMINCPDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (X86fminc:{ *:[v4f64] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1) - Complexity = 25
                      // Dst: (VMINCPDZ256rmb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*169910*/          0, // EndSwitchType
/*169911*/        0, /*End of Scope*/
/*169912*/      0, // EndSwitchOpcode
/*169913*/    /*Scope*/ 26|128,1/*154*/, /*->170069*/
/*169915*/      OPC_RecordChild0, // #0 = $src1
/*169916*/      OPC_RecordChild1, // #1 = $src2
/*169917*/      OPC_SwitchType /*6 cases */, 35, MVT::v4f32,// ->169955
/*169920*/        OPC_Scope, 10, /*->169932*/ // 3 children in Scope
/*169922*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*169924*/          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)
/*169932*/        /*Scope*/ 10, /*->169943*/
/*169933*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*169935*/          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)
/*169943*/        /*Scope*/ 10, /*->169954*/
/*169944*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*169946*/          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)
/*169954*/        0, /*End of Scope*/
/*169955*/      /*SwitchType*/ 35, MVT::v2f64,// ->169992
/*169957*/        OPC_Scope, 10, /*->169969*/ // 3 children in Scope
/*169959*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*169961*/          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)
/*169969*/        /*Scope*/ 10, /*->169980*/
/*169970*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*169972*/          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)
/*169980*/        /*Scope*/ 10, /*->169991*/
/*169981*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*169983*/          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)
/*169991*/        0, /*End of Scope*/
/*169992*/      /*SwitchType*/ 24, MVT::v8f32,// ->170018
/*169994*/        OPC_Scope, 10, /*->170006*/ // 2 children in Scope
/*169996*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*169998*/          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)
/*170006*/        /*Scope*/ 10, /*->170017*/
/*170007*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*170009*/          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)
/*170017*/        0, /*End of Scope*/
/*170018*/      /*SwitchType*/ 24, MVT::v4f64,// ->170044
/*170020*/        OPC_Scope, 10, /*->170032*/ // 2 children in Scope
/*170022*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*170024*/          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)
/*170032*/        /*Scope*/ 10, /*->170043*/
/*170033*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*170035*/          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)
/*170043*/        0, /*End of Scope*/
/*170044*/      /*SwitchType*/ 10, MVT::v16f32,// ->170056
/*170046*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*170048*/        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)
/*170056*/      /*SwitchType*/ 10, MVT::v8f64,// ->170068
/*170058*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*170060*/        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)
/*170068*/      0, // EndSwitchType
/*170069*/    0, /*End of Scope*/
/*170070*/  /*SwitchOpcode*/ 49|128,7/*945*/, TARGET_VAL(ISD::STRICT_FSQRT),// ->171019
/*170074*/    OPC_RecordNode, // #0 = 'strict_fsqrt' chained node
/*170075*/    OPC_Scope, 49|128,1/*177*/, /*->170255*/ // 4 children in Scope
/*170078*/      OPC_MoveChild1,
/*170079*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*170082*/      OPC_RecordMemRef,
/*170083*/      OPC_RecordNode, // #1 = 'ld' chained node
/*170084*/      OPC_CheckFoldableChainNode,
/*170085*/      OPC_RecordChild1, // #2 = $src1
/*170086*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*170088*/      OPC_CheckPredicate, 9, // Predicate_load
/*170090*/      OPC_MoveParent,
/*170091*/      OPC_SwitchType /*2 cases */, 79, MVT::f32,// ->170173
/*170094*/        OPC_Scope, 20, /*->170116*/ // 3 children in Scope
/*170096*/          OPC_CheckPatternPredicate, 55, // (shouldOptForSize(MF)) && (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*170098*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*170101*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*170105*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SQRTSSm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (strict_fsqrt:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (SQRTSSm:{ *:[f32] } addr:{ *:[iPTR] }:$src1)
/*170116*/        /*Scope*/ 27, /*->170144*/
/*170117*/          OPC_CheckPatternPredicate, 125, // (shouldOptForSize(MF)) && (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*170119*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*170122*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*170126*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f32, 0/*#Ops*/,  // Results = #8
/*170132*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTSSm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 6/*#Ops*/, 8, 3, 4, 5, 6, 7, 
                    // Src: (strict_fsqrt:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VSQRTSSm:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), addr:{ *:[iPTR] }:$src)
/*170144*/        /*Scope*/ 27, /*->170172*/
/*170145*/          OPC_CheckPatternPredicate, 129, // (Subtarget->hasAVX512()) && (shouldOptForSize(MF))
/*170147*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*170150*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*170154*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f32, 0/*#Ops*/,  // Results = #8
/*170160*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTSSZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 6/*#Ops*/, 8, 3, 4, 5, 6, 7, 
                    // Src: (strict_fsqrt:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VSQRTSSZm:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), addr:{ *:[iPTR] }:$src)
/*170172*/        0, /*End of Scope*/
/*170173*/      /*SwitchType*/ 79, MVT::f64,// ->170254
/*170175*/        OPC_Scope, 20, /*->170197*/ // 3 children in Scope
/*170177*/          OPC_CheckPatternPredicate, 177, // (shouldOptForSize(MF)) && (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*170179*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*170182*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*170186*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SQRTSDm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (strict_fsqrt:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (SQRTSDm:{ *:[f64] } addr:{ *:[iPTR] }:$src1)
/*170197*/        /*Scope*/ 27, /*->170225*/
/*170198*/          OPC_CheckPatternPredicate, 125, // (shouldOptForSize(MF)) && (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*170200*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*170203*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*170207*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #8
/*170213*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTSDm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 6/*#Ops*/, 8, 3, 4, 5, 6, 7, 
                    // Src: (strict_fsqrt:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VSQRTSDm:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), addr:{ *:[iPTR] }:$src)
/*170225*/        /*Scope*/ 27, /*->170253*/
/*170226*/          OPC_CheckPatternPredicate, 129, // (Subtarget->hasAVX512()) && (shouldOptForSize(MF))
/*170228*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*170231*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*170235*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #8
/*170241*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTSDZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 6/*#Ops*/, 8, 3, 4, 5, 6, 7, 
                    // Src: (strict_fsqrt:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VSQRTSDZm:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), addr:{ *:[iPTR] }:$src)
/*170253*/        0, /*End of Scope*/
/*170254*/      0, // EndSwitchType
/*170255*/    /*Scope*/ 12|128,1/*140*/, /*->170397*/
/*170257*/      OPC_RecordChild1, // #1 = $src
/*170258*/      OPC_SwitchType /*3 cases */, 61, MVT::f32,// ->170322
/*170261*/        OPC_Scope, 11, /*->170274*/ // 4 children in Scope
/*170263*/          OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*170265*/          OPC_EmitMergeInputChains1_0,
/*170266*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SQRT_Fp32), 0|OPFL_Chain,
                        MVT::f32, MVT::i16, 1/*#Ops*/, 1, 
                    // Src: (strict_fsqrt:{ *:[f32] } RFP32:{ *:[f32] }:$src) - Complexity = 3
                    // Dst: (SQRT_Fp32:{ *:[f32] }:{ *:[i16] } RFP32:{ *:[f32] }:$src)
/*170274*/        /*Scope*/ 10, /*->170285*/
/*170275*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*170277*/          OPC_EmitMergeInputChains1_0,
/*170278*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SQRTSSr), 0|OPFL_Chain,
                        MVT::f32, 1/*#Ops*/, 1, 
                    // Src: (strict_fsqrt:{ *:[f32] } FR32:{ *:[f32] }:$src1) - Complexity = 3
                    // Dst: (SQRTSSr:{ *:[f32] } FR32:{ *:[f32] }:$src1)
/*170285*/        /*Scope*/ 17, /*->170303*/
/*170286*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*170288*/          OPC_EmitMergeInputChains1_0,
/*170289*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f32, 0/*#Ops*/,  // Results = #2
/*170295*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTSSr), 0|OPFL_Chain,
                        MVT::f32, 2/*#Ops*/, 2, 1, 
                    // Src: (strict_fsqrt:{ *:[f32] } FR32:{ *:[f32] }:$src) - Complexity = 3
                    // Dst: (VSQRTSSr:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), FR32:{ *:[f32] }:$src)
/*170303*/        /*Scope*/ 17, /*->170321*/
/*170304*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*170306*/          OPC_EmitMergeInputChains1_0,
/*170307*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f32, 0/*#Ops*/,  // Results = #2
/*170313*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTSSZr), 0|OPFL_Chain,
                        MVT::f32, 2/*#Ops*/, 2, 1, 
                    // Src: (strict_fsqrt:{ *:[f32] } FR32X:{ *:[f32] }:$src) - Complexity = 3
                    // Dst: (VSQRTSSZr:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), FR32X:{ *:[f32] }:$src)
/*170321*/        0, /*End of Scope*/
/*170322*/      /*SwitchType*/ 61, MVT::f64,// ->170385
/*170324*/        OPC_Scope, 11, /*->170337*/ // 4 children in Scope
/*170326*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*170328*/          OPC_EmitMergeInputChains1_0,
/*170329*/          OPC_MorphNodeTo2, TARGET_VAL(X86::SQRT_Fp64), 0|OPFL_Chain,
                        MVT::f64, MVT::i16, 1/*#Ops*/, 1, 
                    // Src: (strict_fsqrt:{ *:[f64] } RFP64:{ *:[f64] }:$src) - Complexity = 3
                    // Dst: (SQRT_Fp64:{ *:[f64] }:{ *:[i16] } RFP64:{ *:[f64] }:$src)
/*170337*/        /*Scope*/ 10, /*->170348*/
/*170338*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*170340*/          OPC_EmitMergeInputChains1_0,
/*170341*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SQRTSDr), 0|OPFL_Chain,
                        MVT::f64, 1/*#Ops*/, 1, 
                    // Src: (strict_fsqrt:{ *:[f64] } FR64:{ *:[f64] }:$src1) - Complexity = 3
                    // Dst: (SQRTSDr:{ *:[f64] } FR64:{ *:[f64] }:$src1)
/*170348*/        /*Scope*/ 17, /*->170366*/
/*170349*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*170351*/          OPC_EmitMergeInputChains1_0,
/*170352*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #2
/*170358*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTSDr), 0|OPFL_Chain,
                        MVT::f64, 2/*#Ops*/, 2, 1, 
                    // Src: (strict_fsqrt:{ *:[f64] } FR64:{ *:[f64] }:$src) - Complexity = 3
                    // Dst: (VSQRTSDr:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), FR64:{ *:[f64] }:$src)
/*170366*/        /*Scope*/ 17, /*->170384*/
/*170367*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*170369*/          OPC_EmitMergeInputChains1_0,
/*170370*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #2
/*170376*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTSDZr), 0|OPFL_Chain,
                        MVT::f64, 2/*#Ops*/, 2, 1, 
                    // Src: (strict_fsqrt:{ *:[f64] } FR64X:{ *:[f64] }:$src) - Complexity = 3
                    // Dst: (VSQRTSDZr:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), FR64X:{ *:[f64] }:$src)
/*170384*/        0, /*End of Scope*/
/*170385*/      /*SwitchType*/ 9, MVT::f80,// ->170396
/*170387*/        OPC_EmitMergeInputChains1_0,
/*170388*/        OPC_MorphNodeTo2, TARGET_VAL(X86::SQRT_Fp80), 0|OPFL_Chain,
                      MVT::f80, MVT::i16, 1/*#Ops*/, 1, 
                  // Src: (strict_fsqrt:{ *:[f80] } RFP80:{ *:[f80] }:$src) - Complexity = 3
                  // Dst: (SQRT_Fp80:{ *:[f80] }:{ *:[i16] } RFP80:{ *:[f80] }:$src)
/*170396*/      0, // EndSwitchType
/*170397*/    /*Scope*/ 80|128,3/*464*/, /*->170863*/
/*170399*/      OPC_MoveChild1,
/*170400*/      OPC_SwitchOpcode /*2 cases */, 39|128,2/*295*/, TARGET_VAL(ISD::LOAD),// ->170700
/*170405*/        OPC_RecordMemRef,
/*170406*/        OPC_RecordNode, // #1 = 'ld' chained node
/*170407*/        OPC_CheckFoldableChainNode,
/*170408*/        OPC_RecordChild1, // #2 = $src
/*170409*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*170411*/        OPC_CheckPredicate, 9, // Predicate_load
/*170413*/        OPC_Scope, 47, /*->170462*/ // 5 children in Scope
/*170415*/          OPC_MoveParent,
/*170416*/          OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->170439
/*170419*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*170421*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*170424*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*170428*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (strict_fsqrt:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VSQRTPSm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*170439*/          /*SwitchType*/ 20, MVT::v8f32,// ->170461
/*170441*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*170443*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*170446*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*170450*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSYm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (strict_fsqrt:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VSQRTPSYm:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*170461*/          0, // EndSwitchType
/*170462*/        /*Scope*/ 25, /*->170488*/
/*170463*/          OPC_CheckPredicate, 39, // Predicate_memop
/*170465*/          OPC_MoveParent,
/*170466*/          OPC_CheckType, MVT::v4f32,
/*170468*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*170470*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*170473*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*170477*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SQRTPSm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (strict_fsqrt:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                    // Dst: (SQRTPSm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*170488*/        /*Scope*/ 47, /*->170536*/
/*170489*/          OPC_MoveParent,
/*170490*/          OPC_SwitchType /*2 cases */, 20, MVT::v2f64,// ->170513
/*170493*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*170495*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*170498*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*170502*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (strict_fsqrt:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VSQRTPDm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*170513*/          /*SwitchType*/ 20, MVT::v4f64,// ->170535
/*170515*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*170517*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*170520*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*170524*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDYm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (strict_fsqrt:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VSQRTPDYm:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*170535*/          0, // EndSwitchType
/*170536*/        /*Scope*/ 25, /*->170562*/
/*170537*/          OPC_CheckPredicate, 39, // Predicate_memop
/*170539*/          OPC_MoveParent,
/*170540*/          OPC_CheckType, MVT::v2f64,
/*170542*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*170544*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*170547*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*170551*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SQRTPDm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (strict_fsqrt:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                    // Dst: (SQRTPDm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*170562*/        /*Scope*/ 7|128,1/*135*/, /*->170699*/
/*170564*/          OPC_MoveParent,
/*170565*/          OPC_SwitchType /*6 cases */, 20, MVT::v16f32,// ->170588
/*170568*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*170570*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*170573*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*170577*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSZm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (strict_fsqrt:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VSQRTPSZm:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)
/*170588*/          /*SwitchType*/ 20, MVT::v8f64,// ->170610
/*170590*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*170592*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*170595*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*170599*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDZm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (strict_fsqrt:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VSQRTPDZm:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*170610*/          /*SwitchType*/ 20, MVT::v4f32,// ->170632
/*170612*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*170614*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*170617*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*170621*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (strict_fsqrt:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VSQRTPSZ128m:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*170632*/          /*SwitchType*/ 20, MVT::v8f32,// ->170654
/*170634*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*170636*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*170639*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*170643*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (strict_fsqrt:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VSQRTPSZ256m:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*170654*/          /*SwitchType*/ 20, MVT::v2f64,// ->170676
/*170656*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*170658*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*170661*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*170665*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (strict_fsqrt:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VSQRTPDZ128m:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*170676*/          /*SwitchType*/ 20, MVT::v4f64,// ->170698
/*170678*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*170680*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*170683*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*170687*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (strict_fsqrt:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VSQRTPDZ256m:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*170698*/          0, // EndSwitchType
/*170699*/        0, /*End of Scope*/
/*170700*/      /*SwitchOpcode*/ 30|128,1/*158*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->170862
/*170704*/        OPC_RecordMemRef,
/*170705*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*170706*/        OPC_CheckFoldableChainNode,
/*170707*/        OPC_RecordChild1, // #2 = $src
/*170708*/        OPC_Scope, 25, /*->170735*/ // 4 children in Scope
/*170710*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*170712*/          OPC_MoveParent,
/*170713*/          OPC_CheckType, MVT::v16f32,
/*170715*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*170717*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*170720*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*170724*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSZmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (strict_fsqrt:{ *:[v16f32] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                    // Dst: (VSQRTPSZmb:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)
/*170735*/        /*Scope*/ 25, /*->170761*/
/*170736*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*170738*/          OPC_MoveParent,
/*170739*/          OPC_CheckType, MVT::v8f64,
/*170741*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*170743*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*170746*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*170750*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDZmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (strict_fsqrt:{ *:[v8f64] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                    // Dst: (VSQRTPDZmb:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*170761*/        /*Scope*/ 49, /*->170811*/
/*170762*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*170764*/          OPC_MoveParent,
/*170765*/          OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->170788
/*170768*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*170770*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*170773*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*170777*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (strict_fsqrt:{ *:[v4f32] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VSQRTPSZ128mb:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*170788*/          /*SwitchType*/ 20, MVT::v8f32,// ->170810
/*170790*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*170792*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*170795*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*170799*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (strict_fsqrt:{ *:[v8f32] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VSQRTPSZ256mb:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*170810*/          0, // EndSwitchType
/*170811*/        /*Scope*/ 49, /*->170861*/
/*170812*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*170814*/          OPC_MoveParent,
/*170815*/          OPC_SwitchType /*2 cases */, 20, MVT::v2f64,// ->170838
/*170818*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*170820*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*170823*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*170827*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (strict_fsqrt:{ *:[v2f64] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VSQRTPDZ128mb:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*170838*/          /*SwitchType*/ 20, MVT::v4f64,// ->170860
/*170840*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*170842*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*170845*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*170849*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (strict_fsqrt:{ *:[v4f64] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VSQRTPDZ256mb:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*170860*/          0, // EndSwitchType
/*170861*/        0, /*End of Scope*/
/*170862*/      0, // EndSwitchOpcode
/*170863*/    /*Scope*/ 25|128,1/*153*/, /*->171018*/
/*170865*/      OPC_RecordChild1, // #1 = $src
/*170866*/      OPC_SwitchType /*6 cases */, 35, MVT::v4f32,// ->170904
/*170869*/        OPC_Scope, 10, /*->170881*/ // 3 children in Scope
/*170871*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*170873*/          OPC_EmitMergeInputChains1_0,
/*170874*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSr), 0|OPFL_Chain,
                        MVT::v4f32, 1/*#Ops*/, 1, 
                    // Src: (strict_fsqrt:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (VSQRTPSr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src)
/*170881*/        /*Scope*/ 10, /*->170892*/
/*170882*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*170884*/          OPC_EmitMergeInputChains1_0,
/*170885*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SQRTPSr), 0|OPFL_Chain,
                        MVT::v4f32, 1/*#Ops*/, 1, 
                    // Src: (strict_fsqrt:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (SQRTPSr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src)
/*170892*/        /*Scope*/ 10, /*->170903*/
/*170893*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*170895*/          OPC_EmitMergeInputChains1_0,
/*170896*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSZ128r), 0|OPFL_Chain,
                        MVT::v4f32, 1/*#Ops*/, 1, 
                    // Src: (strict_fsqrt:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (VSQRTPSZ128r:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src)
/*170903*/        0, /*End of Scope*/
/*170904*/      /*SwitchType*/ 24, MVT::v8f32,// ->170930
/*170906*/        OPC_Scope, 10, /*->170918*/ // 2 children in Scope
/*170908*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*170910*/          OPC_EmitMergeInputChains1_0,
/*170911*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSYr), 0|OPFL_Chain,
                        MVT::v8f32, 1/*#Ops*/, 1, 
                    // Src: (strict_fsqrt:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src) - Complexity = 3
                    // Dst: (VSQRTPSYr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src)
/*170918*/        /*Scope*/ 10, /*->170929*/
/*170919*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*170921*/          OPC_EmitMergeInputChains1_0,
/*170922*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSZ256r), 0|OPFL_Chain,
                        MVT::v8f32, 1/*#Ops*/, 1, 
                    // Src: (strict_fsqrt:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src) - Complexity = 3
                    // Dst: (VSQRTPSZ256r:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src)
/*170929*/        0, /*End of Scope*/
/*170930*/      /*SwitchType*/ 35, MVT::v2f64,// ->170967
/*170932*/        OPC_Scope, 10, /*->170944*/ // 3 children in Scope
/*170934*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*170936*/          OPC_EmitMergeInputChains1_0,
/*170937*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDr), 0|OPFL_Chain,
                        MVT::v2f64, 1/*#Ops*/, 1, 
                    // Src: (strict_fsqrt:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src) - Complexity = 3
                    // Dst: (VSQRTPDr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src)
/*170944*/        /*Scope*/ 10, /*->170955*/
/*170945*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*170947*/          OPC_EmitMergeInputChains1_0,
/*170948*/          OPC_MorphNodeTo1, TARGET_VAL(X86::SQRTPDr), 0|OPFL_Chain,
                        MVT::v2f64, 1/*#Ops*/, 1, 
                    // Src: (strict_fsqrt:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src) - Complexity = 3
                    // Dst: (SQRTPDr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src)
/*170955*/        /*Scope*/ 10, /*->170966*/
/*170956*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*170958*/          OPC_EmitMergeInputChains1_0,
/*170959*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDZ128r), 0|OPFL_Chain,
                        MVT::v2f64, 1/*#Ops*/, 1, 
                    // Src: (strict_fsqrt:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src) - Complexity = 3
                    // Dst: (VSQRTPDZ128r:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src)
/*170966*/        0, /*End of Scope*/
/*170967*/      /*SwitchType*/ 24, MVT::v4f64,// ->170993
/*170969*/        OPC_Scope, 10, /*->170981*/ // 2 children in Scope
/*170971*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*170973*/          OPC_EmitMergeInputChains1_0,
/*170974*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDYr), 0|OPFL_Chain,
                        MVT::v4f64, 1/*#Ops*/, 1, 
                    // Src: (strict_fsqrt:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src) - Complexity = 3
                    // Dst: (VSQRTPDYr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src)
/*170981*/        /*Scope*/ 10, /*->170992*/
/*170982*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*170984*/          OPC_EmitMergeInputChains1_0,
/*170985*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDZ256r), 0|OPFL_Chain,
                        MVT::v4f64, 1/*#Ops*/, 1, 
                    // Src: (strict_fsqrt:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src) - Complexity = 3
                    // Dst: (VSQRTPDZ256r:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src)
/*170992*/        0, /*End of Scope*/
/*170993*/      /*SwitchType*/ 10, MVT::v16f32,// ->171005
/*170995*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*170997*/        OPC_EmitMergeInputChains1_0,
/*170998*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSZr), 0|OPFL_Chain,
                      MVT::v16f32, 1/*#Ops*/, 1, 
                  // Src: (strict_fsqrt:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src) - Complexity = 3
                  // Dst: (VSQRTPSZr:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src)
/*171005*/      /*SwitchType*/ 10, MVT::v8f64,// ->171017
/*171007*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*171009*/        OPC_EmitMergeInputChains1_0,
/*171010*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDZr), 0|OPFL_Chain,
                      MVT::v8f64, 1/*#Ops*/, 1, 
                  // Src: (strict_fsqrt:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src) - Complexity = 3
                  // Dst: (VSQRTPDZr:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src)
/*171017*/      0, // EndSwitchType
/*171018*/    0, /*End of Scope*/
/*171019*/  /*SwitchOpcode*/ 79|128,6/*847*/, TARGET_VAL(ISD::FSQRT),// ->171870
/*171023*/    OPC_Scope, 30|128,1/*158*/, /*->171184*/ // 4 children in Scope
/*171026*/      OPC_MoveChild0,
/*171027*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*171030*/      OPC_RecordMemRef,
/*171031*/      OPC_RecordNode, // #0 = 'ld' chained node
/*171032*/      OPC_RecordChild1, // #1 = $src1
/*171033*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*171035*/      OPC_CheckPredicate, 9, // Predicate_load
/*171037*/      OPC_MoveParent,
/*171038*/      OPC_SwitchType /*2 cases */, 70, MVT::f32,// ->171111
/*171041*/        OPC_Scope, 17, /*->171060*/ // 3 children in Scope
/*171043*/          OPC_CheckPatternPredicate, 55, // (shouldOptForSize(MF)) && (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*171045*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*171048*/          OPC_EmitMergeInputChains1_0,
/*171049*/          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)
/*171060*/        /*Scope*/ 24, /*->171085*/
/*171061*/          OPC_CheckPatternPredicate, 125, // (shouldOptForSize(MF)) && (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*171063*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*171066*/          OPC_EmitMergeInputChains1_0,
/*171067*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f32, 0/*#Ops*/,  // Results = #7
/*171073*/          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)
/*171085*/        /*Scope*/ 24, /*->171110*/
/*171086*/          OPC_CheckPatternPredicate, 129, // (Subtarget->hasAVX512()) && (shouldOptForSize(MF))
/*171088*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*171091*/          OPC_EmitMergeInputChains1_0,
/*171092*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f32, 0/*#Ops*/,  // Results = #7
/*171098*/          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)
/*171110*/        0, /*End of Scope*/
/*171111*/      /*SwitchType*/ 70, MVT::f64,// ->171183
/*171113*/        OPC_Scope, 17, /*->171132*/ // 3 children in Scope
/*171115*/          OPC_CheckPatternPredicate, 177, // (shouldOptForSize(MF)) && (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*171117*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*171120*/          OPC_EmitMergeInputChains1_0,
/*171121*/          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)
/*171132*/        /*Scope*/ 24, /*->171157*/
/*171133*/          OPC_CheckPatternPredicate, 125, // (shouldOptForSize(MF)) && (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*171135*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*171138*/          OPC_EmitMergeInputChains1_0,
/*171139*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #7
/*171145*/          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)
/*171157*/        /*Scope*/ 24, /*->171182*/
/*171158*/          OPC_CheckPatternPredicate, 129, // (Subtarget->hasAVX512()) && (shouldOptForSize(MF))
/*171160*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*171163*/          OPC_EmitMergeInputChains1_0,
/*171164*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #7
/*171170*/          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)
/*171182*/        0, /*End of Scope*/
/*171183*/      0, // EndSwitchType
/*171184*/    /*Scope*/ 3|128,1/*131*/, /*->171317*/
/*171186*/      OPC_RecordChild0, // #0 = $src
/*171187*/      OPC_SwitchType /*3 cases */, 57, MVT::f32,// ->171247
/*171190*/        OPC_Scope, 10, /*->171202*/ // 4 children in Scope
/*171192*/          OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*171194*/          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)
/*171202*/        /*Scope*/ 9, /*->171212*/
/*171203*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*171205*/          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)
/*171212*/        /*Scope*/ 16, /*->171229*/
/*171213*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*171215*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f32, 0/*#Ops*/,  // Results = #1
/*171221*/          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)
/*171229*/        /*Scope*/ 16, /*->171246*/
/*171230*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*171232*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f32, 0/*#Ops*/,  // Results = #1
/*171238*/          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)
/*171246*/        0, /*End of Scope*/
/*171247*/      /*SwitchType*/ 57, MVT::f64,// ->171306
/*171249*/        OPC_Scope, 10, /*->171261*/ // 4 children in Scope
/*171251*/          OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*171253*/          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)
/*171261*/        /*Scope*/ 9, /*->171271*/
/*171262*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*171264*/          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)
/*171271*/        /*Scope*/ 16, /*->171288*/
/*171272*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*171274*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #1
/*171280*/          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)
/*171288*/        /*Scope*/ 16, /*->171305*/
/*171289*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*171291*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #1
/*171297*/          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)
/*171305*/        0, /*End of Scope*/
/*171306*/      /*SwitchType*/ 8, MVT::f80,// ->171316
/*171308*/        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)
/*171316*/      0, // EndSwitchType
/*171317*/    /*Scope*/ 23|128,3/*407*/, /*->171726*/
/*171319*/      OPC_MoveChild0,
/*171320*/      OPC_SwitchOpcode /*2 cases */, 1|128,2/*257*/, TARGET_VAL(ISD::LOAD),// ->171582
/*171325*/        OPC_RecordMemRef,
/*171326*/        OPC_RecordNode, // #0 = 'ld' chained node
/*171327*/        OPC_RecordChild1, // #1 = $src
/*171328*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*171330*/        OPC_CheckPredicate, 9, // Predicate_load
/*171332*/        OPC_Scope, 41, /*->171375*/ // 5 children in Scope
/*171334*/          OPC_MoveParent,
/*171335*/          OPC_SwitchType /*2 cases */, 17, MVT::v4f32,// ->171355
/*171338*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*171340*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*171343*/            OPC_EmitMergeInputChains1_0,
/*171344*/            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>>) - Complexity = 25
                      // Dst: (VSQRTPSm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*171355*/          /*SwitchType*/ 17, MVT::v8f32,// ->171374
/*171357*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*171359*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*171362*/            OPC_EmitMergeInputChains1_0,
/*171363*/            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>>) - Complexity = 25
                      // Dst: (VSQRTPSYm:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*171374*/          0, // EndSwitchType
/*171375*/        /*Scope*/ 22, /*->171398*/
/*171376*/          OPC_CheckPredicate, 39, // Predicate_memop
/*171378*/          OPC_MoveParent,
/*171379*/          OPC_CheckType, MVT::v4f32,
/*171381*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*171383*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*171386*/          OPC_EmitMergeInputChains1_0,
/*171387*/          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_memop>>) - Complexity = 25
                    // Dst: (SQRTPSm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*171398*/        /*Scope*/ 41, /*->171440*/
/*171399*/          OPC_MoveParent,
/*171400*/          OPC_SwitchType /*2 cases */, 17, MVT::v2f64,// ->171420
/*171403*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*171405*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*171408*/            OPC_EmitMergeInputChains1_0,
/*171409*/            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>>) - Complexity = 25
                      // Dst: (VSQRTPDm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*171420*/          /*SwitchType*/ 17, MVT::v4f64,// ->171439
/*171422*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*171424*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*171427*/            OPC_EmitMergeInputChains1_0,
/*171428*/            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>>) - Complexity = 25
                      // Dst: (VSQRTPDYm:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*171439*/          0, // EndSwitchType
/*171440*/        /*Scope*/ 22, /*->171463*/
/*171441*/          OPC_CheckPredicate, 39, // Predicate_memop
/*171443*/          OPC_MoveParent,
/*171444*/          OPC_CheckType, MVT::v2f64,
/*171446*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*171448*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*171451*/          OPC_EmitMergeInputChains1_0,
/*171452*/          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_memop>>) - Complexity = 25
                    // Dst: (SQRTPDm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*171463*/        /*Scope*/ 117, /*->171581*/
/*171464*/          OPC_MoveParent,
/*171465*/          OPC_SwitchType /*6 cases */, 17, MVT::v16f32,// ->171485
/*171468*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*171470*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*171473*/            OPC_EmitMergeInputChains1_0,
/*171474*/            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>>) - Complexity = 25
                      // Dst: (VSQRTPSZm:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)
/*171485*/          /*SwitchType*/ 17, MVT::v8f64,// ->171504
/*171487*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*171489*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*171492*/            OPC_EmitMergeInputChains1_0,
/*171493*/            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>>) - Complexity = 25
                      // Dst: (VSQRTPDZm:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*171504*/          /*SwitchType*/ 17, MVT::v4f32,// ->171523
/*171506*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*171508*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*171511*/            OPC_EmitMergeInputChains1_0,
/*171512*/            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>>) - Complexity = 25
                      // Dst: (VSQRTPSZ128m:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*171523*/          /*SwitchType*/ 17, MVT::v8f32,// ->171542
/*171525*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*171527*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*171530*/            OPC_EmitMergeInputChains1_0,
/*171531*/            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>>) - Complexity = 25
                      // Dst: (VSQRTPSZ256m:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*171542*/          /*SwitchType*/ 17, MVT::v2f64,// ->171561
/*171544*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*171546*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*171549*/            OPC_EmitMergeInputChains1_0,
/*171550*/            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>>) - Complexity = 25
                      // Dst: (VSQRTPDZ128m:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*171561*/          /*SwitchType*/ 17, MVT::v4f64,// ->171580
/*171563*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*171565*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*171568*/            OPC_EmitMergeInputChains1_0,
/*171569*/            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>>) - Complexity = 25
                      // Dst: (VSQRTPDZ256m:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*171580*/          0, // EndSwitchType
/*171581*/        0, /*End of Scope*/
/*171582*/      /*SwitchOpcode*/ 11|128,1/*139*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->171725
/*171586*/        OPC_RecordMemRef,
/*171587*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*171588*/        OPC_RecordChild1, // #1 = $src
/*171589*/        OPC_Scope, 22, /*->171613*/ // 4 children in Scope
/*171591*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*171593*/          OPC_MoveParent,
/*171594*/          OPC_CheckType, MVT::v16f32,
/*171596*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*171598*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*171601*/          OPC_EmitMergeInputChains1_0,
/*171602*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSZmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (fsqrt:{ *:[v16f32] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                    // Dst: (VSQRTPSZmb:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)
/*171613*/        /*Scope*/ 22, /*->171636*/
/*171614*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*171616*/          OPC_MoveParent,
/*171617*/          OPC_CheckType, MVT::v8f64,
/*171619*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*171621*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*171624*/          OPC_EmitMergeInputChains1_0,
/*171625*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDZmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (fsqrt:{ *:[v8f64] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                    // Dst: (VSQRTPDZmb:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*171636*/        /*Scope*/ 43, /*->171680*/
/*171637*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*171639*/          OPC_MoveParent,
/*171640*/          OPC_SwitchType /*2 cases */, 17, MVT::v4f32,// ->171660
/*171643*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*171645*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*171648*/            OPC_EmitMergeInputChains1_0,
/*171649*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (fsqrt:{ *:[v4f32] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VSQRTPSZ128mb:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*171660*/          /*SwitchType*/ 17, MVT::v8f32,// ->171679
/*171662*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*171664*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*171667*/            OPC_EmitMergeInputChains1_0,
/*171668*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (fsqrt:{ *:[v8f32] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VSQRTPSZ256mb:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*171679*/          0, // EndSwitchType
/*171680*/        /*Scope*/ 43, /*->171724*/
/*171681*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*171683*/          OPC_MoveParent,
/*171684*/          OPC_SwitchType /*2 cases */, 17, MVT::v2f64,// ->171704
/*171687*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*171689*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*171692*/            OPC_EmitMergeInputChains1_0,
/*171693*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (fsqrt:{ *:[v2f64] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VSQRTPDZ128mb:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*171704*/          /*SwitchType*/ 17, MVT::v4f64,// ->171723
/*171706*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*171708*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*171711*/            OPC_EmitMergeInputChains1_0,
/*171712*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (fsqrt:{ *:[v4f64] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VSQRTPDZ256mb:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*171723*/          0, // EndSwitchType
/*171724*/        0, /*End of Scope*/
/*171725*/      0, // EndSwitchOpcode
/*171726*/    /*Scope*/ 13|128,1/*141*/, /*->171869*/
/*171728*/      OPC_RecordChild0, // #0 = $src
/*171729*/      OPC_SwitchType /*6 cases */, 32, MVT::v4f32,// ->171764
/*171732*/        OPC_Scope, 9, /*->171743*/ // 3 children in Scope
/*171734*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*171736*/          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)
/*171743*/        /*Scope*/ 9, /*->171753*/
/*171744*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*171746*/          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)
/*171753*/        /*Scope*/ 9, /*->171763*/
/*171754*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*171756*/          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)
/*171763*/        0, /*End of Scope*/
/*171764*/      /*SwitchType*/ 22, MVT::v8f32,// ->171788
/*171766*/        OPC_Scope, 9, /*->171777*/ // 2 children in Scope
/*171768*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*171770*/          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)
/*171777*/        /*Scope*/ 9, /*->171787*/
/*171778*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*171780*/          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)
/*171787*/        0, /*End of Scope*/
/*171788*/      /*SwitchType*/ 32, MVT::v2f64,// ->171822
/*171790*/        OPC_Scope, 9, /*->171801*/ // 3 children in Scope
/*171792*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*171794*/          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)
/*171801*/        /*Scope*/ 9, /*->171811*/
/*171802*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*171804*/          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)
/*171811*/        /*Scope*/ 9, /*->171821*/
/*171812*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*171814*/          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)
/*171821*/        0, /*End of Scope*/
/*171822*/      /*SwitchType*/ 22, MVT::v4f64,// ->171846
/*171824*/        OPC_Scope, 9, /*->171835*/ // 2 children in Scope
/*171826*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*171828*/          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)
/*171835*/        /*Scope*/ 9, /*->171845*/
/*171836*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*171838*/          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)
/*171845*/        0, /*End of Scope*/
/*171846*/      /*SwitchType*/ 9, MVT::v16f32,// ->171857
/*171848*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*171850*/        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)
/*171857*/      /*SwitchType*/ 9, MVT::v8f64,// ->171868
/*171859*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*171861*/        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)
/*171868*/      0, // EndSwitchType
/*171869*/    0, /*End of Scope*/
/*171870*/  /*SwitchOpcode*/ 85|128,1/*213*/, TARGET_VAL(X86ISD::FRSQRT),// ->172087
/*171874*/    OPC_Scope, 59, /*->171935*/ // 4 children in Scope
/*171876*/      OPC_MoveChild0,
/*171877*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*171880*/      OPC_RecordMemRef,
/*171881*/      OPC_RecordNode, // #0 = 'ld' chained node
/*171882*/      OPC_RecordChild1, // #1 = $src1
/*171883*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*171885*/      OPC_CheckPredicate, 9, // Predicate_load
/*171887*/      OPC_MoveParent,
/*171888*/      OPC_CheckType, MVT::f32,
/*171890*/      OPC_Scope, 17, /*->171909*/ // 2 children in Scope
/*171892*/        OPC_CheckPatternPredicate, 55, // (shouldOptForSize(MF)) && (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*171894*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*171897*/        OPC_EmitMergeInputChains1_0,
/*171898*/        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)
/*171909*/      /*Scope*/ 24, /*->171934*/
/*171910*/        OPC_CheckPatternPredicate, 56, // (Subtarget->hasAVX()) && (shouldOptForSize(MF))
/*171912*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*171915*/        OPC_EmitMergeInputChains1_0,
/*171916*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f32, 0/*#Ops*/,  // Results = #7
/*171922*/        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)
/*171934*/      0, /*End of Scope*/
/*171935*/    /*Scope*/ 32, /*->171968*/
/*171936*/      OPC_RecordChild0, // #0 = $src1
/*171937*/      OPC_CheckType, MVT::f32,
/*171939*/      OPC_Scope, 9, /*->171950*/ // 2 children in Scope
/*171941*/        OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*171943*/        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)
/*171950*/      /*Scope*/ 16, /*->171967*/
/*171951*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*171953*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f32, 0/*#Ops*/,  // Results = #1
/*171959*/        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)
/*171967*/      0, /*End of Scope*/
/*171968*/    /*Scope*/ 78, /*->172047*/
/*171969*/      OPC_MoveChild0,
/*171970*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*171973*/      OPC_RecordMemRef,
/*171974*/      OPC_RecordNode, // #0 = 'ld' chained node
/*171975*/      OPC_RecordChild1, // #1 = $src
/*171976*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*171978*/      OPC_CheckPredicate, 9, // Predicate_load
/*171980*/      OPC_Scope, 41, /*->172023*/ // 2 children in Scope
/*171982*/        OPC_MoveParent,
/*171983*/        OPC_SwitchType /*2 cases */, 17, MVT::v4f32,// ->172003
/*171986*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*171988*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*171991*/          OPC_EmitMergeInputChains1_0,
/*171992*/          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>>) - Complexity = 25
                    // Dst: (VRSQRTPSm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*172003*/        /*SwitchType*/ 17, MVT::v8f32,// ->172022
/*172005*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*172007*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*172010*/          OPC_EmitMergeInputChains1_0,
/*172011*/          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>>) - Complexity = 25
                    // Dst: (VRSQRTPSYm:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*172022*/        0, // EndSwitchType
/*172023*/      /*Scope*/ 22, /*->172046*/
/*172024*/        OPC_CheckPredicate, 39, // Predicate_memop
/*172026*/        OPC_MoveParent,
/*172027*/        OPC_CheckType, MVT::v4f32,
/*172029*/        OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*172031*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*172034*/        OPC_EmitMergeInputChains1_0,
/*172035*/        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_memop>>) - Complexity = 25
                  // Dst: (RSQRTPSm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*172046*/      0, /*End of Scope*/
/*172047*/    /*Scope*/ 38, /*->172086*/
/*172048*/      OPC_RecordChild0, // #0 = $src
/*172049*/      OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->172074
/*172052*/        OPC_Scope, 9, /*->172063*/ // 2 children in Scope
/*172054*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*172056*/          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)
/*172063*/        /*Scope*/ 9, /*->172073*/
/*172064*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*172066*/          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)
/*172073*/        0, /*End of Scope*/
/*172074*/      /*SwitchType*/ 9, MVT::v8f32,// ->172085
/*172076*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*172078*/        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)
/*172085*/      0, // EndSwitchType
/*172086*/    0, /*End of Scope*/
/*172087*/  /*SwitchOpcode*/ 85|128,1/*213*/, TARGET_VAL(X86ISD::FRCP),// ->172304
/*172091*/    OPC_Scope, 59, /*->172152*/ // 4 children in Scope
/*172093*/      OPC_MoveChild0,
/*172094*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*172097*/      OPC_RecordMemRef,
/*172098*/      OPC_RecordNode, // #0 = 'ld' chained node
/*172099*/      OPC_RecordChild1, // #1 = $src1
/*172100*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*172102*/      OPC_CheckPredicate, 9, // Predicate_load
/*172104*/      OPC_MoveParent,
/*172105*/      OPC_CheckType, MVT::f32,
/*172107*/      OPC_Scope, 17, /*->172126*/ // 2 children in Scope
/*172109*/        OPC_CheckPatternPredicate, 55, // (shouldOptForSize(MF)) && (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*172111*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*172114*/        OPC_EmitMergeInputChains1_0,
/*172115*/        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)
/*172126*/      /*Scope*/ 24, /*->172151*/
/*172127*/        OPC_CheckPatternPredicate, 56, // (Subtarget->hasAVX()) && (shouldOptForSize(MF))
/*172129*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*172132*/        OPC_EmitMergeInputChains1_0,
/*172133*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f32, 0/*#Ops*/,  // Results = #7
/*172139*/        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)
/*172151*/      0, /*End of Scope*/
/*172152*/    /*Scope*/ 32, /*->172185*/
/*172153*/      OPC_RecordChild0, // #0 = $src1
/*172154*/      OPC_CheckType, MVT::f32,
/*172156*/      OPC_Scope, 9, /*->172167*/ // 2 children in Scope
/*172158*/        OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*172160*/        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)
/*172167*/      /*Scope*/ 16, /*->172184*/
/*172168*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*172170*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::f32, 0/*#Ops*/,  // Results = #1
/*172176*/        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)
/*172184*/      0, /*End of Scope*/
/*172185*/    /*Scope*/ 78, /*->172264*/
/*172186*/      OPC_MoveChild0,
/*172187*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*172190*/      OPC_RecordMemRef,
/*172191*/      OPC_RecordNode, // #0 = 'ld' chained node
/*172192*/      OPC_RecordChild1, // #1 = $src
/*172193*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*172195*/      OPC_CheckPredicate, 9, // Predicate_load
/*172197*/      OPC_Scope, 41, /*->172240*/ // 2 children in Scope
/*172199*/        OPC_MoveParent,
/*172200*/        OPC_SwitchType /*2 cases */, 17, MVT::v4f32,// ->172220
/*172203*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*172205*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*172208*/          OPC_EmitMergeInputChains1_0,
/*172209*/          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>>) - Complexity = 25
                    // Dst: (VRCPPSm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*172220*/        /*SwitchType*/ 17, MVT::v8f32,// ->172239
/*172222*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*172224*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*172227*/          OPC_EmitMergeInputChains1_0,
/*172228*/          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>>) - Complexity = 25
                    // Dst: (VRCPPSYm:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*172239*/        0, // EndSwitchType
/*172240*/      /*Scope*/ 22, /*->172263*/
/*172241*/        OPC_CheckPredicate, 39, // Predicate_memop
/*172243*/        OPC_MoveParent,
/*172244*/        OPC_CheckType, MVT::v4f32,
/*172246*/        OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*172248*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*172251*/        OPC_EmitMergeInputChains1_0,
/*172252*/        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_memop>>) - Complexity = 25
                  // Dst: (RCPPSm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*172263*/      0, /*End of Scope*/
/*172264*/    /*Scope*/ 38, /*->172303*/
/*172265*/      OPC_RecordChild0, // #0 = $src
/*172266*/      OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->172291
/*172269*/        OPC_Scope, 9, /*->172280*/ // 2 children in Scope
/*172271*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*172273*/          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)
/*172280*/        /*Scope*/ 9, /*->172290*/
/*172281*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*172283*/          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)
/*172290*/        0, /*End of Scope*/
/*172291*/      /*SwitchType*/ 9, MVT::v8f32,// ->172302
/*172293*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*172295*/        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)
/*172302*/      0, // EndSwitchType
/*172303*/    0, /*End of Scope*/
/*172304*/  /*SwitchOpcode*/ 40|128,2/*296*/, TARGET_VAL(X86ISD::FAND),// ->172604
/*172308*/    OPC_Scope, 83, /*->172393*/ // 5 children in Scope
/*172310*/      OPC_RecordChild0, // #0 = $src1
/*172311*/      OPC_MoveChild1,
/*172312*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*172315*/      OPC_RecordMemRef,
/*172316*/      OPC_RecordNode, // #1 = 'ld' chained node
/*172317*/      OPC_CheckFoldableChainNode,
/*172318*/      OPC_RecordChild1, // #2 = $src2
/*172319*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*172321*/      OPC_CheckPredicate, 9, // Predicate_load
/*172323*/      OPC_Scope, 23, /*->172348*/ // 2 children in Scope
/*172325*/        OPC_CheckPredicate, 94, // Predicate_memopf128
/*172327*/        OPC_MoveParent,
/*172328*/        OPC_CheckType, MVT::f128,
/*172330*/        OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*172332*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*172335*/        OPC_EmitMergeInputChains1_1,
/*172336*/        OPC_MorphNodeTo1, TARGET_VAL(X86::ANDPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f128, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86fand:{ *:[f128] } VR128:{ *:[f128] }:$src1, (ld:{ *:[f128] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memopf128>>) - Complexity = 25
                  // Dst: (ANDPSrm:{ *:[f128] } VR128:{ *:[f128] }:$src1, f128mem:{ *:[iPTR] }:$src2)
/*172348*/      /*Scope*/ 43, /*->172392*/
/*172349*/        OPC_MoveParent,
/*172350*/        OPC_CheckType, MVT::f128,
/*172352*/        OPC_Scope, 18, /*->172372*/ // 2 children in Scope
/*172354*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*172356*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*172359*/          OPC_EmitMergeInputChains1_1,
/*172360*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VANDPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f128, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86fand:{ *:[f128] } VR128:{ *:[f128] }:$src1, (ld:{ *:[f128] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VANDPSrm:{ *:[f128] } VR128:{ *:[f128] }:$src1, f128mem:{ *:[iPTR] }:$src2)
/*172372*/        /*Scope*/ 18, /*->172391*/
/*172373*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*172375*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*172378*/          OPC_EmitMergeInputChains1_1,
/*172379*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VANDPSZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f128, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86fand:{ *:[f128] } VR128X:{ *:[f128] }:$src1, (ld:{ *:[f128] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VANDPSZ128rm:{ *:[f128] } VR128X:{ *:[f128] }:$src1, f128mem:{ *:[iPTR] }:$src2)
/*172391*/        0, /*End of Scope*/
/*172392*/      0, /*End of Scope*/
/*172393*/    /*Scope*/ 84, /*->172478*/
/*172394*/      OPC_MoveChild0,
/*172395*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*172398*/      OPC_RecordMemRef,
/*172399*/      OPC_RecordNode, // #0 = 'ld' chained node
/*172400*/      OPC_CheckFoldableChainNode,
/*172401*/      OPC_RecordChild1, // #1 = $src2
/*172402*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*172404*/      OPC_CheckPredicate, 9, // Predicate_load
/*172406*/      OPC_Scope, 24, /*->172432*/ // 2 children in Scope
/*172408*/        OPC_CheckPredicate, 94, // Predicate_memopf128
/*172410*/        OPC_MoveParent,
/*172411*/        OPC_RecordChild1, // #2 = $src1
/*172412*/        OPC_CheckType, MVT::f128,
/*172414*/        OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*172416*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*172419*/        OPC_EmitMergeInputChains1_0,
/*172420*/        OPC_MorphNodeTo1, TARGET_VAL(X86::ANDPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f128, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (X86fand:{ *:[f128] } (ld:{ *:[f128] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memopf128>>, VR128:{ *:[f128] }:$src1) - Complexity = 25
                  // Dst: (ANDPSrm:{ *:[f128] } VR128:{ *:[f128] }:$src1, f128mem:{ *:[iPTR] }:$src2)
/*172432*/      /*Scope*/ 44, /*->172477*/
/*172433*/        OPC_MoveParent,
/*172434*/        OPC_RecordChild1, // #2 = $src1
/*172435*/        OPC_CheckType, MVT::f128,
/*172437*/        OPC_Scope, 18, /*->172457*/ // 2 children in Scope
/*172439*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*172441*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*172444*/          OPC_EmitMergeInputChains1_0,
/*172445*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VANDPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f128, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86fand:{ *:[f128] } (ld:{ *:[f128] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[f128] }:$src1) - Complexity = 25
                    // Dst: (VANDPSrm:{ *:[f128] } VR128:{ *:[f128] }:$src1, f128mem:{ *:[iPTR] }:$src2)
/*172457*/        /*Scope*/ 18, /*->172476*/
/*172458*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*172460*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*172463*/          OPC_EmitMergeInputChains1_0,
/*172464*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VANDPSZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f128, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86fand:{ *:[f128] } (ld:{ *:[f128] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[f128] }:$src1) - Complexity = 25
                    // Dst: (VANDPSZ128rm:{ *:[f128] } VR128X:{ *:[f128] }:$src1, f128mem:{ *:[iPTR] }:$src2)
/*172476*/        0, /*End of Scope*/
/*172477*/      0, /*End of Scope*/
/*172478*/    /*Scope*/ 76, /*->172555*/
/*172479*/      OPC_RecordChild0, // #0 = $src1
/*172480*/      OPC_Scope, 38, /*->172520*/ // 2 children in Scope
/*172482*/        OPC_RecordChild1, // #1 = $src2
/*172483*/        OPC_CheckType, MVT::f128,
/*172485*/        OPC_Scope, 10, /*->172497*/ // 3 children in Scope
/*172487*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*172489*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ANDPSrr), 0,
                        MVT::f128, 2/*#Ops*/, 0, 1, 
                    // Src: (X86fand:{ *:[f128] } VR128:{ *:[f128] }:$src1, VR128:{ *:[f128] }:$src2) - Complexity = 3
                    // Dst: (ANDPSrr:{ *:[f128] } VR128:{ *:[f128] }:$src1, VR128:{ *:[f128] }:$src2)
/*172497*/        /*Scope*/ 10, /*->172508*/
/*172498*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*172500*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VANDPSrr), 0,
                        MVT::f128, 2/*#Ops*/, 0, 1, 
                    // Src: (X86fand:{ *:[f128] } VR128:{ *:[f128] }:$src1, VR128:{ *:[f128] }:$src2) - Complexity = 3
                    // Dst: (VANDPSrr:{ *:[f128] } VR128:{ *:[f128] }:$src1, VR128:{ *:[f128] }:$src2)
/*172508*/        /*Scope*/ 10, /*->172519*/
/*172509*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*172511*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VANDPSZ128rr), 0,
                        MVT::f128, 2/*#Ops*/, 0, 1, 
                    // Src: (X86fand:{ *:[f128] } VR128X:{ *:[f128] }:$src1, VR128X:{ *:[f128] }:$src2) - Complexity = 3
                    // Dst: (VANDPSZ128rr:{ *:[f128] } VR128X:{ *:[f128] }:$src1, VR128X:{ *:[f128] }:$src2)
/*172519*/        0, /*End of Scope*/
/*172520*/      /*Scope*/ 33, /*->172554*/
/*172521*/        OPC_MoveChild1,
/*172522*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*172525*/        OPC_RecordMemRef,
/*172526*/        OPC_RecordNode, // #1 = 'ld' chained node
/*172527*/        OPC_CheckFoldableChainNode,
/*172528*/        OPC_RecordChild1, // #2 = $src2
/*172529*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*172531*/        OPC_CheckPredicate, 9, // Predicate_load
/*172533*/        OPC_CheckPredicate, 39, // Predicate_memop
/*172535*/        OPC_MoveParent,
/*172536*/        OPC_CheckType, MVT::v4f32,
/*172538*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*172541*/        OPC_EmitMergeInputChains1_1,
/*172542*/        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_memop>>) - Complexity = 25
                  // Dst: (ANDPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*172554*/      0, /*End of Scope*/
/*172555*/    /*Scope*/ 34, /*->172590*/
/*172556*/      OPC_MoveChild0,
/*172557*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*172560*/      OPC_RecordMemRef,
/*172561*/      OPC_RecordNode, // #0 = 'ld' chained node
/*172562*/      OPC_CheckFoldableChainNode,
/*172563*/      OPC_RecordChild1, // #1 = $src2
/*172564*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*172566*/      OPC_CheckPredicate, 9, // Predicate_load
/*172568*/      OPC_CheckPredicate, 39, // Predicate_memop
/*172570*/      OPC_MoveParent,
/*172571*/      OPC_RecordChild1, // #2 = $src1
/*172572*/      OPC_CheckType, MVT::v4f32,
/*172574*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*172577*/      OPC_EmitMergeInputChains1_0,
/*172578*/      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_memop>>, VR128:{ *:[v4f32] }:$src1) - Complexity = 25
                // Dst: (ANDPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*172590*/    /*Scope*/ 12, /*->172603*/
/*172591*/      OPC_RecordChild0, // #0 = $src1
/*172592*/      OPC_RecordChild1, // #1 = $src2
/*172593*/      OPC_CheckType, MVT::v4f32,
/*172595*/      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)
/*172603*/    0, /*End of Scope*/
/*172604*/  /*SwitchOpcode*/ 40|128,2/*296*/, TARGET_VAL(X86ISD::FOR),// ->172904
/*172608*/    OPC_Scope, 83, /*->172693*/ // 5 children in Scope
/*172610*/      OPC_RecordChild0, // #0 = $src1
/*172611*/      OPC_MoveChild1,
/*172612*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*172615*/      OPC_RecordMemRef,
/*172616*/      OPC_RecordNode, // #1 = 'ld' chained node
/*172617*/      OPC_CheckFoldableChainNode,
/*172618*/      OPC_RecordChild1, // #2 = $src2
/*172619*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*172621*/      OPC_CheckPredicate, 9, // Predicate_load
/*172623*/      OPC_Scope, 23, /*->172648*/ // 2 children in Scope
/*172625*/        OPC_CheckPredicate, 94, // Predicate_memopf128
/*172627*/        OPC_MoveParent,
/*172628*/        OPC_CheckType, MVT::f128,
/*172630*/        OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*172632*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*172635*/        OPC_EmitMergeInputChains1_1,
/*172636*/        OPC_MorphNodeTo1, TARGET_VAL(X86::ORPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f128, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86for:{ *:[f128] } VR128:{ *:[f128] }:$src1, (ld:{ *:[f128] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memopf128>>) - Complexity = 25
                  // Dst: (ORPSrm:{ *:[f128] } VR128:{ *:[f128] }:$src1, f128mem:{ *:[iPTR] }:$src2)
/*172648*/      /*Scope*/ 43, /*->172692*/
/*172649*/        OPC_MoveParent,
/*172650*/        OPC_CheckType, MVT::f128,
/*172652*/        OPC_Scope, 18, /*->172672*/ // 2 children in Scope
/*172654*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*172656*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*172659*/          OPC_EmitMergeInputChains1_1,
/*172660*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VORPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f128, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86for:{ *:[f128] } VR128:{ *:[f128] }:$src1, (ld:{ *:[f128] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VORPSrm:{ *:[f128] } VR128:{ *:[f128] }:$src1, f128mem:{ *:[iPTR] }:$src2)
/*172672*/        /*Scope*/ 18, /*->172691*/
/*172673*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*172675*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*172678*/          OPC_EmitMergeInputChains1_1,
/*172679*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VORPSZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f128, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86for:{ *:[f128] } VR128X:{ *:[f128] }:$src1, (ld:{ *:[f128] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VORPSZ128rm:{ *:[f128] } VR128X:{ *:[f128] }:$src1, f128mem:{ *:[iPTR] }:$src2)
/*172691*/        0, /*End of Scope*/
/*172692*/      0, /*End of Scope*/
/*172693*/    /*Scope*/ 84, /*->172778*/
/*172694*/      OPC_MoveChild0,
/*172695*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*172698*/      OPC_RecordMemRef,
/*172699*/      OPC_RecordNode, // #0 = 'ld' chained node
/*172700*/      OPC_CheckFoldableChainNode,
/*172701*/      OPC_RecordChild1, // #1 = $src2
/*172702*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*172704*/      OPC_CheckPredicate, 9, // Predicate_load
/*172706*/      OPC_Scope, 24, /*->172732*/ // 2 children in Scope
/*172708*/        OPC_CheckPredicate, 94, // Predicate_memopf128
/*172710*/        OPC_MoveParent,
/*172711*/        OPC_RecordChild1, // #2 = $src1
/*172712*/        OPC_CheckType, MVT::f128,
/*172714*/        OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*172716*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*172719*/        OPC_EmitMergeInputChains1_0,
/*172720*/        OPC_MorphNodeTo1, TARGET_VAL(X86::ORPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f128, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (X86for:{ *:[f128] } (ld:{ *:[f128] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memopf128>>, VR128:{ *:[f128] }:$src1) - Complexity = 25
                  // Dst: (ORPSrm:{ *:[f128] } VR128:{ *:[f128] }:$src1, f128mem:{ *:[iPTR] }:$src2)
/*172732*/      /*Scope*/ 44, /*->172777*/
/*172733*/        OPC_MoveParent,
/*172734*/        OPC_RecordChild1, // #2 = $src1
/*172735*/        OPC_CheckType, MVT::f128,
/*172737*/        OPC_Scope, 18, /*->172757*/ // 2 children in Scope
/*172739*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*172741*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*172744*/          OPC_EmitMergeInputChains1_0,
/*172745*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VORPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f128, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86for:{ *:[f128] } (ld:{ *:[f128] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[f128] }:$src1) - Complexity = 25
                    // Dst: (VORPSrm:{ *:[f128] } VR128:{ *:[f128] }:$src1, f128mem:{ *:[iPTR] }:$src2)
/*172757*/        /*Scope*/ 18, /*->172776*/
/*172758*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*172760*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*172763*/          OPC_EmitMergeInputChains1_0,
/*172764*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VORPSZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f128, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86for:{ *:[f128] } (ld:{ *:[f128] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[f128] }:$src1) - Complexity = 25
                    // Dst: (VORPSZ128rm:{ *:[f128] } VR128X:{ *:[f128] }:$src1, f128mem:{ *:[iPTR] }:$src2)
/*172776*/        0, /*End of Scope*/
/*172777*/      0, /*End of Scope*/
/*172778*/    /*Scope*/ 76, /*->172855*/
/*172779*/      OPC_RecordChild0, // #0 = $src1
/*172780*/      OPC_Scope, 38, /*->172820*/ // 2 children in Scope
/*172782*/        OPC_RecordChild1, // #1 = $src2
/*172783*/        OPC_CheckType, MVT::f128,
/*172785*/        OPC_Scope, 10, /*->172797*/ // 3 children in Scope
/*172787*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*172789*/          OPC_MorphNodeTo1, TARGET_VAL(X86::ORPSrr), 0,
                        MVT::f128, 2/*#Ops*/, 0, 1, 
                    // Src: (X86for:{ *:[f128] } VR128:{ *:[f128] }:$src1, VR128:{ *:[f128] }:$src2) - Complexity = 3
                    // Dst: (ORPSrr:{ *:[f128] } VR128:{ *:[f128] }:$src1, VR128:{ *:[f128] }:$src2)
/*172797*/        /*Scope*/ 10, /*->172808*/
/*172798*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*172800*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VORPSrr), 0,
                        MVT::f128, 2/*#Ops*/, 0, 1, 
                    // Src: (X86for:{ *:[f128] } VR128:{ *:[f128] }:$src1, VR128:{ *:[f128] }:$src2) - Complexity = 3
                    // Dst: (VORPSrr:{ *:[f128] } VR128:{ *:[f128] }:$src1, VR128:{ *:[f128] }:$src2)
/*172808*/        /*Scope*/ 10, /*->172819*/
/*172809*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*172811*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VORPSZ128rr), 0,
                        MVT::f128, 2/*#Ops*/, 0, 1, 
                    // Src: (X86for:{ *:[f128] } VR128X:{ *:[f128] }:$src1, VR128X:{ *:[f128] }:$src2) - Complexity = 3
                    // Dst: (VORPSZ128rr:{ *:[f128] } VR128X:{ *:[f128] }:$src1, VR128X:{ *:[f128] }:$src2)
/*172819*/        0, /*End of Scope*/
/*172820*/      /*Scope*/ 33, /*->172854*/
/*172821*/        OPC_MoveChild1,
/*172822*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*172825*/        OPC_RecordMemRef,
/*172826*/        OPC_RecordNode, // #1 = 'ld' chained node
/*172827*/        OPC_CheckFoldableChainNode,
/*172828*/        OPC_RecordChild1, // #2 = $src2
/*172829*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*172831*/        OPC_CheckPredicate, 9, // Predicate_load
/*172833*/        OPC_CheckPredicate, 39, // Predicate_memop
/*172835*/        OPC_MoveParent,
/*172836*/        OPC_CheckType, MVT::v4f32,
/*172838*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*172841*/        OPC_EmitMergeInputChains1_1,
/*172842*/        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_memop>>) - Complexity = 25
                  // Dst: (ORPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*172854*/      0, /*End of Scope*/
/*172855*/    /*Scope*/ 34, /*->172890*/
/*172856*/      OPC_MoveChild0,
/*172857*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*172860*/      OPC_RecordMemRef,
/*172861*/      OPC_RecordNode, // #0 = 'ld' chained node
/*172862*/      OPC_CheckFoldableChainNode,
/*172863*/      OPC_RecordChild1, // #1 = $src2
/*172864*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*172866*/      OPC_CheckPredicate, 9, // Predicate_load
/*172868*/      OPC_CheckPredicate, 39, // Predicate_memop
/*172870*/      OPC_MoveParent,
/*172871*/      OPC_RecordChild1, // #2 = $src1
/*172872*/      OPC_CheckType, MVT::v4f32,
/*172874*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*172877*/      OPC_EmitMergeInputChains1_0,
/*172878*/      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_memop>>, VR128:{ *:[v4f32] }:$src1) - Complexity = 25
                // Dst: (ORPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*172890*/    /*Scope*/ 12, /*->172903*/
/*172891*/      OPC_RecordChild0, // #0 = $src1
/*172892*/      OPC_RecordChild1, // #1 = $src2
/*172893*/      OPC_CheckType, MVT::v4f32,
/*172895*/      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)
/*172903*/    0, /*End of Scope*/
/*172904*/  /*SwitchOpcode*/ 40|128,2/*296*/, TARGET_VAL(X86ISD::FXOR),// ->173204
/*172908*/    OPC_Scope, 83, /*->172993*/ // 5 children in Scope
/*172910*/      OPC_RecordChild0, // #0 = $src1
/*172911*/      OPC_MoveChild1,
/*172912*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*172915*/      OPC_RecordMemRef,
/*172916*/      OPC_RecordNode, // #1 = 'ld' chained node
/*172917*/      OPC_CheckFoldableChainNode,
/*172918*/      OPC_RecordChild1, // #2 = $src2
/*172919*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*172921*/      OPC_CheckPredicate, 9, // Predicate_load
/*172923*/      OPC_Scope, 23, /*->172948*/ // 2 children in Scope
/*172925*/        OPC_CheckPredicate, 94, // Predicate_memopf128
/*172927*/        OPC_MoveParent,
/*172928*/        OPC_CheckType, MVT::f128,
/*172930*/        OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*172932*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*172935*/        OPC_EmitMergeInputChains1_1,
/*172936*/        OPC_MorphNodeTo1, TARGET_VAL(X86::XORPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f128, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86fxor:{ *:[f128] } VR128:{ *:[f128] }:$src1, (ld:{ *:[f128] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memopf128>>) - Complexity = 25
                  // Dst: (XORPSrm:{ *:[f128] } VR128:{ *:[f128] }:$src1, f128mem:{ *:[iPTR] }:$src2)
/*172948*/      /*Scope*/ 43, /*->172992*/
/*172949*/        OPC_MoveParent,
/*172950*/        OPC_CheckType, MVT::f128,
/*172952*/        OPC_Scope, 18, /*->172972*/ // 2 children in Scope
/*172954*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*172956*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*172959*/          OPC_EmitMergeInputChains1_1,
/*172960*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VXORPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f128, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86fxor:{ *:[f128] } VR128:{ *:[f128] }:$src1, (ld:{ *:[f128] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VXORPSrm:{ *:[f128] } VR128:{ *:[f128] }:$src1, f128mem:{ *:[iPTR] }:$src2)
/*172972*/        /*Scope*/ 18, /*->172991*/
/*172973*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*172975*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*172978*/          OPC_EmitMergeInputChains1_1,
/*172979*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VXORPSZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f128, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86fxor:{ *:[f128] } VR128X:{ *:[f128] }:$src1, (ld:{ *:[f128] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VXORPSZ128rm:{ *:[f128] } VR128X:{ *:[f128] }:$src1, f128mem:{ *:[iPTR] }:$src2)
/*172991*/        0, /*End of Scope*/
/*172992*/      0, /*End of Scope*/
/*172993*/    /*Scope*/ 84, /*->173078*/
/*172994*/      OPC_MoveChild0,
/*172995*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*172998*/      OPC_RecordMemRef,
/*172999*/      OPC_RecordNode, // #0 = 'ld' chained node
/*173000*/      OPC_CheckFoldableChainNode,
/*173001*/      OPC_RecordChild1, // #1 = $src2
/*173002*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*173004*/      OPC_CheckPredicate, 9, // Predicate_load
/*173006*/      OPC_Scope, 24, /*->173032*/ // 2 children in Scope
/*173008*/        OPC_CheckPredicate, 94, // Predicate_memopf128
/*173010*/        OPC_MoveParent,
/*173011*/        OPC_RecordChild1, // #2 = $src1
/*173012*/        OPC_CheckType, MVT::f128,
/*173014*/        OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*173016*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*173019*/        OPC_EmitMergeInputChains1_0,
/*173020*/        OPC_MorphNodeTo1, TARGET_VAL(X86::XORPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f128, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (X86fxor:{ *:[f128] } (ld:{ *:[f128] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memopf128>>, VR128:{ *:[f128] }:$src1) - Complexity = 25
                  // Dst: (XORPSrm:{ *:[f128] } VR128:{ *:[f128] }:$src1, f128mem:{ *:[iPTR] }:$src2)
/*173032*/      /*Scope*/ 44, /*->173077*/
/*173033*/        OPC_MoveParent,
/*173034*/        OPC_RecordChild1, // #2 = $src1
/*173035*/        OPC_CheckType, MVT::f128,
/*173037*/        OPC_Scope, 18, /*->173057*/ // 2 children in Scope
/*173039*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*173041*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*173044*/          OPC_EmitMergeInputChains1_0,
/*173045*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VXORPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f128, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86fxor:{ *:[f128] } (ld:{ *:[f128] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[f128] }:$src1) - Complexity = 25
                    // Dst: (VXORPSrm:{ *:[f128] } VR128:{ *:[f128] }:$src1, f128mem:{ *:[iPTR] }:$src2)
/*173057*/        /*Scope*/ 18, /*->173076*/
/*173058*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*173060*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*173063*/          OPC_EmitMergeInputChains1_0,
/*173064*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VXORPSZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f128, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86fxor:{ *:[f128] } (ld:{ *:[f128] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[f128] }:$src1) - Complexity = 25
                    // Dst: (VXORPSZ128rm:{ *:[f128] } VR128X:{ *:[f128] }:$src1, f128mem:{ *:[iPTR] }:$src2)
/*173076*/        0, /*End of Scope*/
/*173077*/      0, /*End of Scope*/
/*173078*/    /*Scope*/ 76, /*->173155*/
/*173079*/      OPC_RecordChild0, // #0 = $src1
/*173080*/      OPC_Scope, 38, /*->173120*/ // 2 children in Scope
/*173082*/        OPC_RecordChild1, // #1 = $src2
/*173083*/        OPC_CheckType, MVT::f128,
/*173085*/        OPC_Scope, 10, /*->173097*/ // 3 children in Scope
/*173087*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*173089*/          OPC_MorphNodeTo1, TARGET_VAL(X86::XORPSrr), 0,
                        MVT::f128, 2/*#Ops*/, 0, 1, 
                    // Src: (X86fxor:{ *:[f128] } VR128:{ *:[f128] }:$src1, VR128:{ *:[f128] }:$src2) - Complexity = 3
                    // Dst: (XORPSrr:{ *:[f128] } VR128:{ *:[f128] }:$src1, VR128:{ *:[f128] }:$src2)
/*173097*/        /*Scope*/ 10, /*->173108*/
/*173098*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*173100*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VXORPSrr), 0,
                        MVT::f128, 2/*#Ops*/, 0, 1, 
                    // Src: (X86fxor:{ *:[f128] } VR128:{ *:[f128] }:$src1, VR128:{ *:[f128] }:$src2) - Complexity = 3
                    // Dst: (VXORPSrr:{ *:[f128] } VR128:{ *:[f128] }:$src1, VR128:{ *:[f128] }:$src2)
/*173108*/        /*Scope*/ 10, /*->173119*/
/*173109*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*173111*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VXORPSZ128rr), 0,
                        MVT::f128, 2/*#Ops*/, 0, 1, 
                    // Src: (X86fxor:{ *:[f128] } VR128X:{ *:[f128] }:$src1, VR128X:{ *:[f128] }:$src2) - Complexity = 3
                    // Dst: (VXORPSZ128rr:{ *:[f128] } VR128X:{ *:[f128] }:$src1, VR128X:{ *:[f128] }:$src2)
/*173119*/        0, /*End of Scope*/
/*173120*/      /*Scope*/ 33, /*->173154*/
/*173121*/        OPC_MoveChild1,
/*173122*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*173125*/        OPC_RecordMemRef,
/*173126*/        OPC_RecordNode, // #1 = 'ld' chained node
/*173127*/        OPC_CheckFoldableChainNode,
/*173128*/        OPC_RecordChild1, // #2 = $src2
/*173129*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*173131*/        OPC_CheckPredicate, 9, // Predicate_load
/*173133*/        OPC_CheckPredicate, 39, // Predicate_memop
/*173135*/        OPC_MoveParent,
/*173136*/        OPC_CheckType, MVT::v4f32,
/*173138*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*173141*/        OPC_EmitMergeInputChains1_1,
/*173142*/        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_memop>>) - Complexity = 25
                  // Dst: (XORPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*173154*/      0, /*End of Scope*/
/*173155*/    /*Scope*/ 34, /*->173190*/
/*173156*/      OPC_MoveChild0,
/*173157*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*173160*/      OPC_RecordMemRef,
/*173161*/      OPC_RecordNode, // #0 = 'ld' chained node
/*173162*/      OPC_CheckFoldableChainNode,
/*173163*/      OPC_RecordChild1, // #1 = $src2
/*173164*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*173166*/      OPC_CheckPredicate, 9, // Predicate_load
/*173168*/      OPC_CheckPredicate, 39, // Predicate_memop
/*173170*/      OPC_MoveParent,
/*173171*/      OPC_RecordChild1, // #2 = $src1
/*173172*/      OPC_CheckType, MVT::v4f32,
/*173174*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*173177*/      OPC_EmitMergeInputChains1_0,
/*173178*/      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_memop>>, VR128:{ *:[v4f32] }:$src1) - Complexity = 25
                // Dst: (XORPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*173190*/    /*Scope*/ 12, /*->173203*/
/*173191*/      OPC_RecordChild0, // #0 = $src1
/*173192*/      OPC_RecordChild1, // #1 = $src2
/*173193*/      OPC_CheckType, MVT::v4f32,
/*173195*/      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)
/*173203*/    0, /*End of Scope*/
/*173204*/  /*SwitchOpcode*/ 23|128,7/*919*/, TARGET_VAL(ISD::STRICT_UINT_TO_FP),// ->174127
/*173208*/    OPC_RecordNode, // #0 = 'strict_uint_to_fp' chained node
/*173209*/    OPC_Scope, 14|128,1/*142*/, /*->173354*/ // 4 children in Scope
/*173212*/      OPC_MoveChild1,
/*173213*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*173216*/      OPC_RecordMemRef,
/*173217*/      OPC_RecordNode, // #1 = 'ld' chained node
/*173218*/      OPC_CheckFoldableChainNode,
/*173219*/      OPC_RecordChild1, // #2 = $src
/*173220*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*173222*/      OPC_SwitchType /*2 cases */, 63, MVT::i32,// ->173288
/*173225*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*173227*/        OPC_MoveParent,
/*173228*/        OPC_SwitchType /*2 cases */, 27, MVT::f32,// ->173258
/*173231*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*173233*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*173236*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*173240*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f32, 0/*#Ops*/,  // Results = #8
/*173246*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUSI2SSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 6/*#Ops*/, 8, 3, 4, 5, 6, 7, 
                    // Src: (strict_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)
/*173258*/        /*SwitchType*/ 27, MVT::f64,// ->173287
/*173260*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*173262*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*173265*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*173269*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #8
/*173275*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUSI2SDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 6/*#Ops*/, 8, 3, 4, 5, 6, 7, 
                    // Src: (strict_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)
/*173287*/        0, // EndSwitchType
/*173288*/      /*SwitchType*/ 63, MVT::i64,// ->173353
/*173290*/        OPC_CheckPredicate, 9, // Predicate_load
/*173292*/        OPC_MoveParent,
/*173293*/        OPC_SwitchType /*2 cases */, 27, MVT::f32,// ->173323
/*173296*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*173298*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*173301*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*173305*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f32, 0/*#Ops*/,  // Results = #8
/*173311*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUSI642SSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f32, 6/*#Ops*/, 8, 3, 4, 5, 6, 7, 
                    // Src: (strict_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)
/*173323*/        /*SwitchType*/ 27, MVT::f64,// ->173352
/*173325*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*173327*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*173330*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*173334*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #8
/*173340*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUSI642SDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::f64, 6/*#Ops*/, 8, 3, 4, 5, 6, 7, 
                    // Src: (strict_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)
/*173352*/        0, // EndSwitchType
/*173353*/      0, // EndSwitchType
/*173354*/    /*Scope*/ 89, /*->173444*/
/*173355*/      OPC_RecordChild1, // #1 = $src
/*173356*/      OPC_Scope, 42, /*->173400*/ // 2 children in Scope
/*173358*/        OPC_CheckChild1Type, MVT::i32,
/*173360*/        OPC_SwitchType /*2 cases */, 17, MVT::f32,// ->173380
/*173363*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*173365*/          OPC_EmitMergeInputChains1_0,
/*173366*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f32, 0/*#Ops*/,  // Results = #2
/*173372*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUSI2SSZrr), 0|OPFL_Chain,
                        MVT::f32, 2/*#Ops*/, 2, 1, 
                    // Src: (strict_uint_to_fp:{ *:[f32] } GR32:{ *:[i32] }:$src) - Complexity = 3
                    // Dst: (VCVTUSI2SSZrr:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), GR32:{ *:[i32] }:$src)
/*173380*/        /*SwitchType*/ 17, MVT::f64,// ->173399
/*173382*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*173384*/          OPC_EmitMergeInputChains1_0,
/*173385*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #2
/*173391*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUSI2SDZrr), 0|OPFL_Chain,
                        MVT::f64, 2/*#Ops*/, 2, 1, 
                    // Src: (strict_uint_to_fp:{ *:[f64] } GR32:{ *:[i32] }:$src) - Complexity = 3
                    // Dst: (VCVTUSI2SDZrr:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), GR32:{ *:[i32] }:$src)
/*173399*/        0, // EndSwitchType
/*173400*/      /*Scope*/ 42, /*->173443*/
/*173401*/        OPC_CheckChild1Type, MVT::i64,
/*173403*/        OPC_SwitchType /*2 cases */, 17, MVT::f32,// ->173423
/*173406*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*173408*/          OPC_EmitMergeInputChains1_0,
/*173409*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f32, 0/*#Ops*/,  // Results = #2
/*173415*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUSI642SSZrr), 0|OPFL_Chain,
                        MVT::f32, 2/*#Ops*/, 2, 1, 
                    // Src: (strict_uint_to_fp:{ *:[f32] } GR64:{ *:[i64] }:$src) - Complexity = 3
                    // Dst: (VCVTUSI642SSZrr:{ *:[f32] } (IMPLICIT_DEF:{ *:[f32] }), GR64:{ *:[i64] }:$src)
/*173423*/        /*SwitchType*/ 17, MVT::f64,// ->173442
/*173425*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*173427*/          OPC_EmitMergeInputChains1_0,
/*173428*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #2
/*173434*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUSI642SDZrr), 0|OPFL_Chain,
                        MVT::f64, 2/*#Ops*/, 2, 1, 
                    // Src: (strict_uint_to_fp:{ *:[f64] } GR64:{ *:[i64] }:$src) - Complexity = 3
                    // Dst: (VCVTUSI642SDZrr:{ *:[f64] } (IMPLICIT_DEF:{ *:[f64] }), GR64:{ *:[i64] }:$src)
/*173442*/        0, // EndSwitchType
/*173443*/      0, /*End of Scope*/
/*173444*/    /*Scope*/ 17|128,4/*529*/, /*->173975*/
/*173446*/      OPC_MoveChild1,
/*173447*/      OPC_SwitchOpcode /*2 cases */, 0|128,2/*256*/, TARGET_VAL(ISD::LOAD),// ->173708
/*173452*/        OPC_RecordMemRef,
/*173453*/        OPC_RecordNode, // #1 = 'ld' chained node
/*173454*/        OPC_CheckFoldableChainNode,
/*173455*/        OPC_RecordChild1, // #2 = $src
/*173456*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*173458*/        OPC_CheckPredicate, 9, // Predicate_load
/*173460*/        OPC_SwitchType /*6 cases */, 47, MVT::v8i32,// ->173510
/*173463*/          OPC_MoveParent,
/*173464*/          OPC_SwitchType /*2 cases */, 20, MVT::v8f64,// ->173487
/*173467*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*173469*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*173472*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*173476*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (strict_uint_to_fp:{ *:[v8f64] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VCVTUDQ2PDZrm:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*173487*/          /*SwitchType*/ 20, MVT::v8f32,// ->173509
/*173489*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*173491*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*173494*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*173498*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PSZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (strict_uint_to_fp:{ *:[v8f32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VCVTUDQ2PSZ256rm:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*173509*/          0, // EndSwitchType
/*173510*/        /*SwitchType*/ 47, MVT::v4i32,// ->173559
/*173512*/          OPC_MoveParent,
/*173513*/          OPC_SwitchType /*2 cases */, 20, MVT::v4f64,// ->173536
/*173516*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*173518*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*173521*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*173525*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (strict_uint_to_fp:{ *:[v4f64] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VCVTUDQ2PDZ256rm:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*173536*/          /*SwitchType*/ 20, MVT::v4f32,// ->173558
/*173538*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*173540*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*173543*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*173547*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PSZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (strict_uint_to_fp:{ *:[v4f32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VCVTUDQ2PSZ128rm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*173558*/          0, // EndSwitchType
/*173559*/        /*SwitchType*/ 23, MVT::v16i32,// ->173584
/*173561*/          OPC_MoveParent,
/*173562*/          OPC_CheckType, MVT::v16f32,
/*173564*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*173566*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*173569*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*173573*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (strict_uint_to_fp:{ *:[v16f32] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VCVTUDQ2PSZrm:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)
/*173584*/        /*SwitchType*/ 47, MVT::v8i64,// ->173633
/*173586*/          OPC_MoveParent,
/*173587*/          OPC_SwitchType /*2 cases */, 20, MVT::v8f64,// ->173610
/*173590*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*173592*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*173595*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*173599*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (strict_uint_to_fp:{ *:[v8f64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VCVTUQQ2PDZrm:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*173610*/          /*SwitchType*/ 20, MVT::v8f32,// ->173632
/*173612*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*173614*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*173617*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*173621*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (strict_uint_to_fp:{ *:[v8f32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VCVTUQQ2PSZrm:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*173632*/          0, // EndSwitchType
/*173633*/        /*SwitchType*/ 23, MVT::v2i64,// ->173658
/*173635*/          OPC_MoveParent,
/*173636*/          OPC_CheckType, MVT::v2f64,
/*173638*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*173640*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*173643*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*173647*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (strict_uint_to_fp:{ *:[v2f64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VCVTUQQ2PDZ128rm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*173658*/        /*SwitchType*/ 47, MVT::v4i64,// ->173707
/*173660*/          OPC_MoveParent,
/*173661*/          OPC_SwitchType /*2 cases */, 20, MVT::v4f64,// ->173684
/*173664*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*173666*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*173669*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*173673*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (strict_uint_to_fp:{ *:[v4f64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VCVTUQQ2PDZ256rm:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*173684*/          /*SwitchType*/ 20, MVT::v4f32,// ->173706
/*173686*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*173688*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*173691*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*173695*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PSZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (strict_uint_to_fp:{ *:[v4f32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VCVTUQQ2PSZ256rm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*173706*/          0, // EndSwitchType
/*173707*/        0, // EndSwitchType
/*173708*/      /*SwitchOpcode*/ 6|128,2/*262*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->173974
/*173712*/        OPC_RecordMemRef,
/*173713*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*173714*/        OPC_CheckFoldableChainNode,
/*173715*/        OPC_RecordChild1, // #2 = $src
/*173716*/        OPC_Scope, 127, /*->173845*/ // 2 children in Scope
/*173718*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*173720*/          OPC_SwitchType /*3 cases */, 47, MVT::v8i32,// ->173770
/*173723*/            OPC_MoveParent,
/*173724*/            OPC_SwitchType /*2 cases */, 20, MVT::v8f64,// ->173747
/*173727*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*173729*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*173732*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*173736*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                        // Src: (strict_uint_to_fp:{ *:[v8f64] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VCVTUDQ2PDZrmb:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*173747*/            /*SwitchType*/ 20, MVT::v8f32,// ->173769
/*173749*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*173751*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*173754*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*173758*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PSZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                        // Src: (strict_uint_to_fp:{ *:[v8f32] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VCVTUDQ2PSZ256rmb:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*173769*/            0, // EndSwitchType
/*173770*/          /*SwitchType*/ 47, MVT::v4i32,// ->173819
/*173772*/            OPC_MoveParent,
/*173773*/            OPC_SwitchType /*2 cases */, 20, MVT::v4f64,// ->173796
/*173776*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*173778*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*173781*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*173785*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                        // Src: (strict_uint_to_fp:{ *:[v4f64] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VCVTUDQ2PDZ256rmb:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*173796*/            /*SwitchType*/ 20, MVT::v4f32,// ->173818
/*173798*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*173800*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*173803*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*173807*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PSZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                        // Src: (strict_uint_to_fp:{ *:[v4f32] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VCVTUDQ2PSZ128rmb:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*173818*/            0, // EndSwitchType
/*173819*/          /*SwitchType*/ 23, MVT::v16i32,// ->173844
/*173821*/            OPC_MoveParent,
/*173822*/            OPC_CheckType, MVT::v16f32,
/*173824*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*173826*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*173829*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*173833*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PSZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (strict_uint_to_fp:{ *:[v16f32] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VCVTUDQ2PSZrmb:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)
/*173844*/          0, // EndSwitchType
/*173845*/        /*Scope*/ 127, /*->173973*/
/*173846*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*173848*/          OPC_SwitchType /*3 cases */, 47, MVT::v8i64,// ->173898
/*173851*/            OPC_MoveParent,
/*173852*/            OPC_SwitchType /*2 cases */, 20, MVT::v8f64,// ->173875
/*173855*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*173857*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*173860*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*173864*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                        // Src: (strict_uint_to_fp:{ *:[v8f64] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VCVTUQQ2PDZrmb:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*173875*/            /*SwitchType*/ 20, MVT::v8f32,// ->173897
/*173877*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*173879*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*173882*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*173886*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PSZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                        // Src: (strict_uint_to_fp:{ *:[v8f32] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VCVTUQQ2PSZrmb:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*173897*/            0, // EndSwitchType
/*173898*/          /*SwitchType*/ 23, MVT::v2i64,// ->173923
/*173900*/            OPC_MoveParent,
/*173901*/            OPC_CheckType, MVT::v2f64,
/*173903*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*173905*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*173908*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*173912*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (strict_uint_to_fp:{ *:[v2f64] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VCVTUQQ2PDZ128rmb:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*173923*/          /*SwitchType*/ 47, MVT::v4i64,// ->173972
/*173925*/            OPC_MoveParent,
/*173926*/            OPC_SwitchType /*2 cases */, 20, MVT::v4f64,// ->173949
/*173929*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*173931*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*173934*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*173938*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                        // Src: (strict_uint_to_fp:{ *:[v4f64] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VCVTUQQ2PDZ256rmb:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*173949*/            /*SwitchType*/ 20, MVT::v4f32,// ->173971
/*173951*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*173953*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*173956*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*173960*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PSZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                        // Src: (strict_uint_to_fp:{ *:[v4f32] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VCVTUQQ2PSZ256rmb:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*173971*/            0, // EndSwitchType
/*173972*/          0, // EndSwitchType
/*173973*/        0, /*End of Scope*/
/*173974*/      0, // EndSwitchOpcode
/*173975*/    /*Scope*/ 21|128,1/*149*/, /*->174126*/
/*173977*/      OPC_RecordChild1, // #1 = $src
/*173978*/      OPC_Scope, 28, /*->174008*/ // 6 children in Scope
/*173980*/        OPC_CheckChild1Type, MVT::v8i32,
/*173982*/        OPC_SwitchType /*2 cases */, 10, MVT::v8f64,// ->173995
/*173985*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*173987*/          OPC_EmitMergeInputChains1_0,
/*173988*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PDZrr), 0|OPFL_Chain,
                        MVT::v8f64, 1/*#Ops*/, 1, 
                    // Src: (strict_uint_to_fp:{ *:[v8f64] } VR256X:{ *:[v8i32] }:$src) - Complexity = 3
                    // Dst: (VCVTUDQ2PDZrr:{ *:[v8f64] } VR256X:{ *:[v8i32] }:$src)
/*173995*/        /*SwitchType*/ 10, MVT::v8f32,// ->174007
/*173997*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*173999*/          OPC_EmitMergeInputChains1_0,
/*174000*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PSZ256rr), 0|OPFL_Chain,
                        MVT::v8f32, 1/*#Ops*/, 1, 
                    // Src: (strict_uint_to_fp:{ *:[v8f32] } VR256X:{ *:[v8i32] }:$src) - Complexity = 3
                    // Dst: (VCVTUDQ2PSZ256rr:{ *:[v8f32] } VR256X:{ *:[v8i32] }:$src)
/*174007*/        0, // EndSwitchType
/*174008*/      /*Scope*/ 28, /*->174037*/
/*174009*/        OPC_CheckChild1Type, MVT::v4i32,
/*174011*/        OPC_SwitchType /*2 cases */, 10, MVT::v4f64,// ->174024
/*174014*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*174016*/          OPC_EmitMergeInputChains1_0,
/*174017*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PDZ256rr), 0|OPFL_Chain,
                        MVT::v4f64, 1/*#Ops*/, 1, 
                    // Src: (strict_uint_to_fp:{ *:[v4f64] } VR128X:{ *:[v4i32] }:$src) - Complexity = 3
                    // Dst: (VCVTUDQ2PDZ256rr:{ *:[v4f64] } VR128X:{ *:[v4i32] }:$src)
/*174024*/        /*SwitchType*/ 10, MVT::v4f32,// ->174036
/*174026*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*174028*/          OPC_EmitMergeInputChains1_0,
/*174029*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PSZ128rr), 0|OPFL_Chain,
                        MVT::v4f32, 1/*#Ops*/, 1, 
                    // Src: (strict_uint_to_fp:{ *:[v4f32] } VR128X:{ *:[v4i32] }:$src) - Complexity = 3
                    // Dst: (VCVTUDQ2PSZ128rr:{ *:[v4f32] } VR128X:{ *:[v4i32] }:$src)
/*174036*/        0, // EndSwitchType
/*174037*/      /*Scope*/ 14, /*->174052*/
/*174038*/        OPC_CheckChild1Type, MVT::v16i32,
/*174040*/        OPC_CheckType, MVT::v16f32,
/*174042*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*174044*/        OPC_EmitMergeInputChains1_0,
/*174045*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PSZrr), 0|OPFL_Chain,
                      MVT::v16f32, 1/*#Ops*/, 1, 
                  // Src: (strict_uint_to_fp:{ *:[v16f32] } VR512:{ *:[v16i32] }:$src) - Complexity = 3
                  // Dst: (VCVTUDQ2PSZrr:{ *:[v16f32] } VR512:{ *:[v16i32] }:$src)
/*174052*/      /*Scope*/ 28, /*->174081*/
/*174053*/        OPC_CheckChild1Type, MVT::v8i64,
/*174055*/        OPC_SwitchType /*2 cases */, 10, MVT::v8f64,// ->174068
/*174058*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*174060*/          OPC_EmitMergeInputChains1_0,
/*174061*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PDZrr), 0|OPFL_Chain,
                        MVT::v8f64, 1/*#Ops*/, 1, 
                    // Src: (strict_uint_to_fp:{ *:[v8f64] } VR512:{ *:[v8i64] }:$src) - Complexity = 3
                    // Dst: (VCVTUQQ2PDZrr:{ *:[v8f64] } VR512:{ *:[v8i64] }:$src)
/*174068*/        /*SwitchType*/ 10, MVT::v8f32,// ->174080
/*174070*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*174072*/          OPC_EmitMergeInputChains1_0,
/*174073*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PSZrr), 0|OPFL_Chain,
                        MVT::v8f32, 1/*#Ops*/, 1, 
                    // Src: (strict_uint_to_fp:{ *:[v8f32] } VR512:{ *:[v8i64] }:$src) - Complexity = 3
                    // Dst: (VCVTUQQ2PSZrr:{ *:[v8f32] } VR512:{ *:[v8i64] }:$src)
/*174080*/        0, // EndSwitchType
/*174081*/      /*Scope*/ 14, /*->174096*/
/*174082*/        OPC_CheckChild1Type, MVT::v2i64,
/*174084*/        OPC_CheckType, MVT::v2f64,
/*174086*/        OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*174088*/        OPC_EmitMergeInputChains1_0,
/*174089*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PDZ128rr), 0|OPFL_Chain,
                      MVT::v2f64, 1/*#Ops*/, 1, 
                  // Src: (strict_uint_to_fp:{ *:[v2f64] } VR128X:{ *:[v2i64] }:$src) - Complexity = 3
                  // Dst: (VCVTUQQ2PDZ128rr:{ *:[v2f64] } VR128X:{ *:[v2i64] }:$src)
/*174096*/      /*Scope*/ 28, /*->174125*/
/*174097*/        OPC_CheckChild1Type, MVT::v4i64,
/*174099*/        OPC_SwitchType /*2 cases */, 10, MVT::v4f64,// ->174112
/*174102*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*174104*/          OPC_EmitMergeInputChains1_0,
/*174105*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PDZ256rr), 0|OPFL_Chain,
                        MVT::v4f64, 1/*#Ops*/, 1, 
                    // Src: (strict_uint_to_fp:{ *:[v4f64] } VR256X:{ *:[v4i64] }:$src) - Complexity = 3
                    // Dst: (VCVTUQQ2PDZ256rr:{ *:[v4f64] } VR256X:{ *:[v4i64] }:$src)
/*174112*/        /*SwitchType*/ 10, MVT::v4f32,// ->174124
/*174114*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*174116*/          OPC_EmitMergeInputChains1_0,
/*174117*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PSZ256rr), 0|OPFL_Chain,
                        MVT::v4f32, 1/*#Ops*/, 1, 
                    // Src: (strict_uint_to_fp:{ *:[v4f32] } VR256X:{ *:[v4i64] }:$src) - Complexity = 3
                    // Dst: (VCVTUQQ2PSZ256rr:{ *:[v4f32] } VR256X:{ *:[v4i64] }:$src)
/*174124*/        0, // EndSwitchType
/*174125*/      0, /*End of Scope*/
/*174126*/    0, /*End of Scope*/
/*174127*/  /*SwitchOpcode*/ 61|128,6/*829*/, TARGET_VAL(ISD::UINT_TO_FP),// ->174960
/*174131*/    OPC_Scope, 1|128,1/*129*/, /*->174263*/ // 4 children in Scope
/*174134*/      OPC_MoveChild0,
/*174135*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*174138*/      OPC_RecordMemRef,
/*174139*/      OPC_RecordNode, // #0 = 'ld' chained node
/*174140*/      OPC_RecordChild1, // #1 = $src
/*174141*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*174143*/      OPC_SwitchType /*2 cases */, 57, MVT::i32,// ->174203
/*174146*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*174148*/        OPC_MoveParent,
/*174149*/        OPC_SwitchType /*2 cases */, 24, MVT::f32,// ->174176
/*174152*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*174154*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*174157*/          OPC_EmitMergeInputChains1_0,
/*174158*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f32, 0/*#Ops*/,  // Results = #7
/*174164*/          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)
/*174176*/        /*SwitchType*/ 24, MVT::f64,// ->174202
/*174178*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*174180*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*174183*/          OPC_EmitMergeInputChains1_0,
/*174184*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #7
/*174190*/          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)
/*174202*/        0, // EndSwitchType
/*174203*/      /*SwitchType*/ 57, MVT::i64,// ->174262
/*174205*/        OPC_CheckPredicate, 9, // Predicate_load
/*174207*/        OPC_MoveParent,
/*174208*/        OPC_SwitchType /*2 cases */, 24, MVT::f32,// ->174235
/*174211*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*174213*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*174216*/          OPC_EmitMergeInputChains1_0,
/*174217*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f32, 0/*#Ops*/,  // Results = #7
/*174223*/          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)
/*174235*/        /*SwitchType*/ 24, MVT::f64,// ->174261
/*174237*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*174239*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*174242*/          OPC_EmitMergeInputChains1_0,
/*174243*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #7
/*174249*/          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)
/*174261*/        0, // EndSwitchType
/*174262*/      0, // EndSwitchType
/*174263*/    /*Scope*/ 85, /*->174349*/
/*174264*/      OPC_RecordChild0, // #0 = $src
/*174265*/      OPC_Scope, 40, /*->174307*/ // 2 children in Scope
/*174267*/        OPC_CheckChild0Type, MVT::i32,
/*174269*/        OPC_SwitchType /*2 cases */, 16, MVT::f32,// ->174288
/*174272*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*174274*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f32, 0/*#Ops*/,  // Results = #1
/*174280*/          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)
/*174288*/        /*SwitchType*/ 16, MVT::f64,// ->174306
/*174290*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*174292*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #1
/*174298*/          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)
/*174306*/        0, // EndSwitchType
/*174307*/      /*Scope*/ 40, /*->174348*/
/*174308*/        OPC_CheckChild0Type, MVT::i64,
/*174310*/        OPC_SwitchType /*2 cases */, 16, MVT::f32,// ->174329
/*174313*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*174315*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f32, 0/*#Ops*/,  // Results = #1
/*174321*/          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)
/*174329*/        /*SwitchType*/ 16, MVT::f64,// ->174347
/*174331*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*174333*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::f64, 0/*#Ops*/,  // Results = #1
/*174339*/          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)
/*174347*/        0, // EndSwitchType
/*174348*/      0, /*End of Scope*/
/*174349*/    /*Scope*/ 83|128,3/*467*/, /*->174818*/
/*174351*/      OPC_MoveChild0,
/*174352*/      OPC_SwitchOpcode /*2 cases */, 97|128,1/*225*/, TARGET_VAL(ISD::LOAD),// ->174582
/*174357*/        OPC_RecordMemRef,
/*174358*/        OPC_RecordNode, // #0 = 'ld' chained node
/*174359*/        OPC_RecordChild1, // #1 = $src
/*174360*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*174362*/        OPC_CheckPredicate, 9, // Predicate_load
/*174364*/        OPC_SwitchType /*6 cases */, 41, MVT::v8i32,// ->174408
/*174367*/          OPC_MoveParent,
/*174368*/          OPC_SwitchType /*2 cases */, 17, MVT::v8f64,// ->174388
/*174371*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*174373*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*174376*/            OPC_EmitMergeInputChains1_0,
/*174377*/            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] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VCVTUDQ2PDZrm:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*174388*/          /*SwitchType*/ 17, MVT::v8f32,// ->174407
/*174390*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*174392*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*174395*/            OPC_EmitMergeInputChains1_0,
/*174396*/            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] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VCVTUDQ2PSZ256rm:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*174407*/          0, // EndSwitchType
/*174408*/        /*SwitchType*/ 41, MVT::v4i32,// ->174451
/*174410*/          OPC_MoveParent,
/*174411*/          OPC_SwitchType /*2 cases */, 17, MVT::v4f64,// ->174431
/*174414*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*174416*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*174419*/            OPC_EmitMergeInputChains1_0,
/*174420*/            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] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VCVTUDQ2PDZ256rm:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*174431*/          /*SwitchType*/ 17, MVT::v4f32,// ->174450
/*174433*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*174435*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*174438*/            OPC_EmitMergeInputChains1_0,
/*174439*/            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] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VCVTUDQ2PSZ128rm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*174450*/          0, // EndSwitchType
/*174451*/        /*SwitchType*/ 20, MVT::v16i32,// ->174473
/*174453*/          OPC_MoveParent,
/*174454*/          OPC_CheckType, MVT::v16f32,
/*174456*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*174458*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*174461*/          OPC_EmitMergeInputChains1_0,
/*174462*/          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] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VCVTUDQ2PSZrm:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)
/*174473*/        /*SwitchType*/ 41, MVT::v8i64,// ->174516
/*174475*/          OPC_MoveParent,
/*174476*/          OPC_SwitchType /*2 cases */, 17, MVT::v8f64,// ->174496
/*174479*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*174481*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*174484*/            OPC_EmitMergeInputChains1_0,
/*174485*/            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>>) - Complexity = 25
                      // Dst: (VCVTUQQ2PDZrm:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*174496*/          /*SwitchType*/ 17, MVT::v8f32,// ->174515
/*174498*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*174500*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*174503*/            OPC_EmitMergeInputChains1_0,
/*174504*/            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>>) - Complexity = 25
                      // Dst: (VCVTUQQ2PSZrm:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*174515*/          0, // EndSwitchType
/*174516*/        /*SwitchType*/ 20, MVT::v2i64,// ->174538
/*174518*/          OPC_MoveParent,
/*174519*/          OPC_CheckType, MVT::v2f64,
/*174521*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*174523*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*174526*/          OPC_EmitMergeInputChains1_0,
/*174527*/          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>>) - Complexity = 25
                    // Dst: (VCVTUQQ2PDZ128rm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*174538*/        /*SwitchType*/ 41, MVT::v4i64,// ->174581
/*174540*/          OPC_MoveParent,
/*174541*/          OPC_SwitchType /*2 cases */, 17, MVT::v4f64,// ->174561
/*174544*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*174546*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*174549*/            OPC_EmitMergeInputChains1_0,
/*174550*/            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>>) - Complexity = 25
                      // Dst: (VCVTUQQ2PDZ256rm:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*174561*/          /*SwitchType*/ 17, MVT::v4f32,// ->174580
/*174563*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*174565*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*174568*/            OPC_EmitMergeInputChains1_0,
/*174569*/            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>>) - Complexity = 25
                      // Dst: (VCVTUQQ2PSZ256rm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*174580*/          0, // EndSwitchType
/*174581*/        0, // EndSwitchType
/*174582*/      /*SwitchOpcode*/ 103|128,1/*231*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->174817
/*174586*/        OPC_RecordMemRef,
/*174587*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*174588*/        OPC_RecordChild1, // #1 = $src
/*174589*/        OPC_Scope, 112, /*->174703*/ // 2 children in Scope
/*174591*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*174593*/          OPC_SwitchType /*3 cases */, 41, MVT::v8i32,// ->174637
/*174596*/            OPC_MoveParent,
/*174597*/            OPC_SwitchType /*2 cases */, 17, MVT::v8f64,// ->174617
/*174600*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*174602*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*174605*/              OPC_EmitMergeInputChains1_0,
/*174606*/              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] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VCVTUDQ2PDZrmb:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*174617*/            /*SwitchType*/ 17, MVT::v8f32,// ->174636
/*174619*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*174621*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*174624*/              OPC_EmitMergeInputChains1_0,
/*174625*/              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] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VCVTUDQ2PSZ256rmb:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*174636*/            0, // EndSwitchType
/*174637*/          /*SwitchType*/ 41, MVT::v4i32,// ->174680
/*174639*/            OPC_MoveParent,
/*174640*/            OPC_SwitchType /*2 cases */, 17, MVT::v4f64,// ->174660
/*174643*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*174645*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*174648*/              OPC_EmitMergeInputChains1_0,
/*174649*/              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] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VCVTUDQ2PDZ256rmb:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*174660*/            /*SwitchType*/ 17, MVT::v4f32,// ->174679
/*174662*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*174664*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*174667*/              OPC_EmitMergeInputChains1_0,
/*174668*/              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] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VCVTUDQ2PSZ128rmb:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*174679*/            0, // EndSwitchType
/*174680*/          /*SwitchType*/ 20, MVT::v16i32,// ->174702
/*174682*/            OPC_MoveParent,
/*174683*/            OPC_CheckType, MVT::v16f32,
/*174685*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*174687*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*174690*/            OPC_EmitMergeInputChains1_0,
/*174691*/            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] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VCVTUDQ2PSZrmb:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)
/*174702*/          0, // EndSwitchType
/*174703*/        /*Scope*/ 112, /*->174816*/
/*174704*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*174706*/          OPC_SwitchType /*3 cases */, 41, MVT::v8i64,// ->174750
/*174709*/            OPC_MoveParent,
/*174710*/            OPC_SwitchType /*2 cases */, 17, MVT::v8f64,// ->174730
/*174713*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*174715*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*174718*/              OPC_EmitMergeInputChains1_0,
/*174719*/              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] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VCVTUQQ2PDZrmb:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*174730*/            /*SwitchType*/ 17, MVT::v8f32,// ->174749
/*174732*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*174734*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*174737*/              OPC_EmitMergeInputChains1_0,
/*174738*/              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] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VCVTUQQ2PSZrmb:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*174749*/            0, // EndSwitchType
/*174750*/          /*SwitchType*/ 20, MVT::v2i64,// ->174772
/*174752*/            OPC_MoveParent,
/*174753*/            OPC_CheckType, MVT::v2f64,
/*174755*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*174757*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*174760*/            OPC_EmitMergeInputChains1_0,
/*174761*/            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] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VCVTUQQ2PDZ128rmb:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*174772*/          /*SwitchType*/ 41, MVT::v4i64,// ->174815
/*174774*/            OPC_MoveParent,
/*174775*/            OPC_SwitchType /*2 cases */, 17, MVT::v4f64,// ->174795
/*174778*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*174780*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*174783*/              OPC_EmitMergeInputChains1_0,
/*174784*/              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] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VCVTUQQ2PDZ256rmb:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*174795*/            /*SwitchType*/ 17, MVT::v4f32,// ->174814
/*174797*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*174799*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*174802*/              OPC_EmitMergeInputChains1_0,
/*174803*/              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] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VCVTUQQ2PSZ256rmb:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*174814*/            0, // EndSwitchType
/*174815*/          0, // EndSwitchType
/*174816*/        0, /*End of Scope*/
/*174817*/      0, // EndSwitchOpcode
/*174818*/    /*Scope*/ 11|128,1/*139*/, /*->174959*/
/*174820*/      OPC_RecordChild0, // #0 = $src
/*174821*/      OPC_Scope, 26, /*->174849*/ // 6 children in Scope
/*174823*/        OPC_CheckChild0Type, MVT::v8i32,
/*174825*/        OPC_SwitchType /*2 cases */, 9, MVT::v8f64,// ->174837
/*174828*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*174830*/          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)
/*174837*/        /*SwitchType*/ 9, MVT::v8f32,// ->174848
/*174839*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*174841*/          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)
/*174848*/        0, // EndSwitchType
/*174849*/      /*Scope*/ 26, /*->174876*/
/*174850*/        OPC_CheckChild0Type, MVT::v4i32,
/*174852*/        OPC_SwitchType /*2 cases */, 9, MVT::v4f64,// ->174864
/*174855*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*174857*/          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)
/*174864*/        /*SwitchType*/ 9, MVT::v4f32,// ->174875
/*174866*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*174868*/          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)
/*174875*/        0, // EndSwitchType
/*174876*/      /*Scope*/ 13, /*->174890*/
/*174877*/        OPC_CheckChild0Type, MVT::v16i32,
/*174879*/        OPC_CheckType, MVT::v16f32,
/*174881*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*174883*/        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)
/*174890*/      /*Scope*/ 26, /*->174917*/
/*174891*/        OPC_CheckChild0Type, MVT::v8i64,
/*174893*/        OPC_SwitchType /*2 cases */, 9, MVT::v8f64,// ->174905
/*174896*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*174898*/          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)
/*174905*/        /*SwitchType*/ 9, MVT::v8f32,// ->174916
/*174907*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*174909*/          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)
/*174916*/        0, // EndSwitchType
/*174917*/      /*Scope*/ 13, /*->174931*/
/*174918*/        OPC_CheckChild0Type, MVT::v2i64,
/*174920*/        OPC_CheckType, MVT::v2f64,
/*174922*/        OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*174924*/        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)
/*174931*/      /*Scope*/ 26, /*->174958*/
/*174932*/        OPC_CheckChild0Type, MVT::v4i64,
/*174934*/        OPC_SwitchType /*2 cases */, 9, MVT::v4f64,// ->174946
/*174937*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*174939*/          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)
/*174946*/        /*SwitchType*/ 9, MVT::v4f32,// ->174957
/*174948*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*174950*/          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)
/*174957*/        0, // EndSwitchType
/*174958*/      0, /*End of Scope*/
/*174959*/    0, /*End of Scope*/
/*174960*/  /*SwitchOpcode*/ 72|128,1/*200*/, TARGET_VAL(X86ISD::FILD),// ->175164
/*174964*/    OPC_RecordMemRef,
/*174965*/    OPC_RecordNode, // #0 = 'X86fild' chained node
/*174966*/    OPC_RecordChild1, // #1 = $src
/*174967*/    OPC_SwitchType /*3 cases */, 65, MVT::f32,// ->175035
/*174970*/      OPC_Scope, 20, /*->174992*/ // 3 children in Scope
/*174972*/        OPC_CheckPredicate, 62, // Predicate_X86fild16
/*174974*/        OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*174976*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*174979*/        OPC_EmitMergeInputChains1_0,
/*174980*/        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)<<P:Predicate_X86fild16>> - Complexity = 22
                  // Dst: (ILD_Fp16m32:{ *:[f32] }:{ *:[i16] } addr:{ *:[iPTR] }:$src)
/*174992*/      /*Scope*/ 20, /*->175013*/
/*174993*/        OPC_CheckPredicate, 63, // Predicate_X86fild32
/*174995*/        OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*174997*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*175000*/        OPC_EmitMergeInputChains1_0,
/*175001*/        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)<<P:Predicate_X86fild32>> - Complexity = 22
                  // Dst: (ILD_Fp32m32:{ *:[f32] }:{ *:[i16] } addr:{ *:[iPTR] }:$src)
/*175013*/      /*Scope*/ 20, /*->175034*/
/*175014*/        OPC_CheckPredicate, 64, // Predicate_X86fild64
/*175016*/        OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*175018*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*175021*/        OPC_EmitMergeInputChains1_0,
/*175022*/        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)<<P:Predicate_X86fild64>> - Complexity = 22
                  // Dst: (ILD_Fp64m32:{ *:[f32] }:{ *:[i16] } addr:{ *:[iPTR] }:$src)
/*175034*/      0, /*End of Scope*/
/*175035*/    /*SwitchType*/ 65, MVT::f64,// ->175102
/*175037*/      OPC_Scope, 20, /*->175059*/ // 3 children in Scope
/*175039*/        OPC_CheckPredicate, 62, // Predicate_X86fild16
/*175041*/        OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*175043*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*175046*/        OPC_EmitMergeInputChains1_0,
/*175047*/        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)<<P:Predicate_X86fild16>> - Complexity = 22
                  // Dst: (ILD_Fp16m64:{ *:[f64] }:{ *:[i16] } addr:{ *:[iPTR] }:$src)
/*175059*/      /*Scope*/ 20, /*->175080*/
/*175060*/        OPC_CheckPredicate, 63, // Predicate_X86fild32
/*175062*/        OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*175064*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*175067*/        OPC_EmitMergeInputChains1_0,
/*175068*/        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)<<P:Predicate_X86fild32>> - Complexity = 22
                  // Dst: (ILD_Fp32m64:{ *:[f64] }:{ *:[i16] } addr:{ *:[iPTR] }:$src)
/*175080*/      /*Scope*/ 20, /*->175101*/
/*175081*/        OPC_CheckPredicate, 64, // Predicate_X86fild64
/*175083*/        OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*175085*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*175088*/        OPC_EmitMergeInputChains1_0,
/*175089*/        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)<<P:Predicate_X86fild64>> - Complexity = 22
                  // Dst: (ILD_Fp64m64:{ *:[f64] }:{ *:[i16] } addr:{ *:[iPTR] }:$src)
/*175101*/      0, /*End of Scope*/
/*175102*/    /*SwitchType*/ 59, MVT::f80,// ->175163
/*175104*/      OPC_Scope, 18, /*->175124*/ // 3 children in Scope
/*175106*/        OPC_CheckPredicate, 62, // Predicate_X86fild16
/*175108*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*175111*/        OPC_EmitMergeInputChains1_0,
/*175112*/        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)<<P:Predicate_X86fild16>> - Complexity = 22
                  // Dst: (ILD_Fp16m80:{ *:[f80] }:{ *:[i16] } addr:{ *:[iPTR] }:$src)
/*175124*/      /*Scope*/ 18, /*->175143*/
/*175125*/        OPC_CheckPredicate, 63, // Predicate_X86fild32
/*175127*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*175130*/        OPC_EmitMergeInputChains1_0,
/*175131*/        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)<<P:Predicate_X86fild32>> - Complexity = 22
                  // Dst: (ILD_Fp32m80:{ *:[f80] }:{ *:[i16] } addr:{ *:[iPTR] }:$src)
/*175143*/      /*Scope*/ 18, /*->175162*/
/*175144*/        OPC_CheckPredicate, 64, // Predicate_X86fild64
/*175146*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*175149*/        OPC_EmitMergeInputChains1_0,
/*175150*/        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)<<P:Predicate_X86fild64>> - Complexity = 22
                  // Dst: (ILD_Fp64m80:{ *:[f80] }:{ *:[i16] } addr:{ *:[iPTR] }:$src)
/*175162*/      0, /*End of Scope*/
/*175163*/    0, // EndSwitchType
/*175164*/  /*SwitchOpcode*/ 2|128,1/*130*/, TARGET_VAL(X86ISD::FLD),// ->175298
/*175168*/    OPC_RecordMemRef,
/*175169*/    OPC_RecordNode, // #0 = 'X86fld' chained node
/*175170*/    OPC_RecordChild1, // #1 = $src
/*175171*/    OPC_Scope, 40, /*->175213*/ // 5 children in Scope
/*175173*/      OPC_CheckPredicate, 65, // Predicate_X86fldf32
/*175175*/      OPC_SwitchType /*2 cases */, 16, MVT::f32,// ->175194
/*175178*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*175181*/        OPC_EmitMergeInputChains1_0,
/*175182*/        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)<<P:Predicate_X86fldf32>> - Complexity = 22
                  // Dst: (LD_Fp32m:{ *:[f32] }:{ *:[i16] } addr:{ *:[iPTR] }:$src)
/*175194*/      /*SwitchType*/ 16, MVT::f64,// ->175212
/*175196*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*175199*/        OPC_EmitMergeInputChains1_0,
/*175200*/        OPC_MorphNodeTo2, TARGET_VAL(X86::LD_Fp32m64), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f64, MVT::i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86fld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86fldf32>> - Complexity = 22
                  // Dst: (LD_Fp32m64:{ *:[f64] }:{ *:[i16] } addr:{ *:[iPTR] }:$src)
/*175212*/      0, // EndSwitchType
/*175213*/    /*Scope*/ 20, /*->175234*/
/*175214*/      OPC_CheckPredicate, 66, // Predicate_X86fldf64
/*175216*/      OPC_CheckType, MVT::f64,
/*175218*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*175221*/      OPC_EmitMergeInputChains1_0,
/*175222*/      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)<<P:Predicate_X86fldf64>> - Complexity = 22
                // Dst: (LD_Fp64m:{ *:[f64] }:{ *:[i16] } addr:{ *:[iPTR] }:$src)
/*175234*/    /*Scope*/ 20, /*->175255*/
/*175235*/      OPC_CheckPredicate, 65, // Predicate_X86fldf32
/*175237*/      OPC_CheckType, MVT::f80,
/*175239*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*175242*/      OPC_EmitMergeInputChains1_0,
/*175243*/      OPC_MorphNodeTo2, TARGET_VAL(X86::LD_Fp32m80), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::f80, MVT::i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (X86fld:{ *:[f80] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86fldf32>> - Complexity = 22
                // Dst: (LD_Fp32m80:{ *:[f80] }:{ *:[i16] } addr:{ *:[iPTR] }:$src)
/*175255*/    /*Scope*/ 20, /*->175276*/
/*175256*/      OPC_CheckPredicate, 66, // Predicate_X86fldf64
/*175258*/      OPC_CheckType, MVT::f80,
/*175260*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*175263*/      OPC_EmitMergeInputChains1_0,
/*175264*/      OPC_MorphNodeTo2, TARGET_VAL(X86::LD_Fp64m80), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::f80, MVT::i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (X86fld:{ *:[f80] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86fldf64>> - Complexity = 22
                // Dst: (LD_Fp64m80:{ *:[f80] }:{ *:[i16] } addr:{ *:[iPTR] }:$src)
/*175276*/    /*Scope*/ 20, /*->175297*/
/*175277*/      OPC_CheckPredicate, 67, // Predicate_X86fldf80
/*175279*/      OPC_CheckType, MVT::f80,
/*175281*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*175284*/      OPC_EmitMergeInputChains1_0,
/*175285*/      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)<<P:Predicate_X86fldf80>> - Complexity = 22
                // Dst: (LD_Fp80m:{ *:[f80] }:{ *:[i16] } addr:{ *:[iPTR] }:$src)
/*175297*/    0, /*End of Scope*/
/*175298*/  /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::FILD_FLAG),// ->175344
/*175301*/    OPC_RecordMemRef,
/*175302*/    OPC_RecordNode, // #0 = 'X86fildflag' chained node
/*175303*/    OPC_RecordChild1, // #1 = $src
/*175304*/    OPC_CheckPredicate, 64, // Predicate_X86fildflag64
/*175306*/    OPC_SwitchType /*2 cases */, 16, MVT::f64,// ->175325
/*175309*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*175312*/      OPC_EmitMergeInputChains1_0,
/*175313*/      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)<<P:Predicate_X86fildflag64>> - Complexity = 22
                // Dst: (ILD_Fp64m64:{ *:[f64] }:{ *:[i16] } addr:{ *:[iPTR] }:$src)
/*175325*/    /*SwitchType*/ 16, MVT::f80,// ->175343
/*175327*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*175330*/      OPC_EmitMergeInputChains1_0,
/*175331*/      OPC_MorphNodeTo2, TARGET_VAL(X86::ILD_Fp64m80), 0|OPFL_Chain|OPFL_GlueOutput|OPFL_MemRefs,
                    MVT::f80, MVT::i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (X86fildflag:{ *:[f80] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86fildflag64>> - Complexity = 22
                // Dst: (ILD_Fp64m80:{ *:[f80] }:{ *:[i16] } addr:{ *:[iPTR] }:$src)
/*175343*/    0, // EndSwitchType
/*175344*/  /*SwitchOpcode*/ 67, TARGET_VAL(X86ISD::FMADD_RND),// ->175414
/*175347*/    OPC_RecordChild0, // #0 = $src2
/*175348*/    OPC_RecordChild1, // #1 = $src1
/*175349*/    OPC_RecordChild2, // #2 = $src3
/*175350*/    OPC_RecordChild3, // #3 = $rc
/*175351*/    OPC_MoveChild3,
/*175352*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*175355*/    OPC_MoveParent,
/*175356*/    OPC_SwitchType /*4 cases */, 12, MVT::f32,// ->175371
/*175359*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*175361*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SSZrb), 0,
                    MVT::f32, 4/*#Ops*/, 1, 0, 2, 3, 
                // Src: (X86FmaddRnd:{ *:[f32] } FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src3, (timm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VFMADD213SSZrb:{ *:[f32] } FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src3, (timm:{ *:[i32] }):$rc)
/*175371*/    /*SwitchType*/ 12, MVT::f64,// ->175385
/*175373*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*175375*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SDZrb), 0,
                    MVT::f64, 4/*#Ops*/, 1, 0, 2, 3, 
                // Src: (X86FmaddRnd:{ *:[f64] } FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src3, (timm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VFMADD213SDZrb:{ *:[f64] } FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src3, (timm:{ *:[i32] }):$rc)
/*175385*/    /*SwitchType*/ 12, MVT::v16f32,// ->175399
/*175387*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*175389*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZrb), 0,
                    MVT::v16f32, 4/*#Ops*/, 1, 0, 2, 3, 
                // Src: (X86FmaddRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3, (timm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VFMADD213PSZrb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, (timm:{ *:[i32] }):$rc)
/*175399*/    /*SwitchType*/ 12, MVT::v8f64,// ->175413
/*175401*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*175403*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZrb), 0,
                    MVT::v8f64, 4/*#Ops*/, 1, 0, 2, 3, 
                // Src: (X86FmaddRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3, (timm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VFMADD213PDZrb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, (timm:{ *:[i32] }):$rc)
/*175413*/    0, // EndSwitchType
/*175414*/  /*SwitchOpcode*/ 67, TARGET_VAL(X86ISD::FMSUB_RND),// ->175484
/*175417*/    OPC_RecordChild0, // #0 = $src2
/*175418*/    OPC_RecordChild1, // #1 = $src1
/*175419*/    OPC_RecordChild2, // #2 = $src3
/*175420*/    OPC_RecordChild3, // #3 = $rc
/*175421*/    OPC_MoveChild3,
/*175422*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*175425*/    OPC_MoveParent,
/*175426*/    OPC_SwitchType /*4 cases */, 12, MVT::f32,// ->175441
/*175429*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*175431*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213SSZrb), 0,
                    MVT::f32, 4/*#Ops*/, 1, 0, 2, 3, 
                // Src: (X86FmsubRnd:{ *:[f32] } FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src3, (timm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VFMSUB213SSZrb:{ *:[f32] } FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src3, (timm:{ *:[i32] }):$rc)
/*175441*/    /*SwitchType*/ 12, MVT::f64,// ->175455
/*175443*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*175445*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213SDZrb), 0,
                    MVT::f64, 4/*#Ops*/, 1, 0, 2, 3, 
                // Src: (X86FmsubRnd:{ *:[f64] } FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src3, (timm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VFMSUB213SDZrb:{ *:[f64] } FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src3, (timm:{ *:[i32] }):$rc)
/*175455*/    /*SwitchType*/ 12, MVT::v16f32,// ->175469
/*175457*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*175459*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PSZrb), 0,
                    MVT::v16f32, 4/*#Ops*/, 1, 0, 2, 3, 
                // Src: (X86FmsubRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3, (timm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VFMSUB213PSZrb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, (timm:{ *:[i32] }):$rc)
/*175469*/    /*SwitchType*/ 12, MVT::v8f64,// ->175483
/*175471*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*175473*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PDZrb), 0,
                    MVT::v8f64, 4/*#Ops*/, 1, 0, 2, 3, 
                // Src: (X86FmsubRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3, (timm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VFMSUB213PDZrb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, (timm:{ *:[i32] }):$rc)
/*175483*/    0, // EndSwitchType
/*175484*/  /*SwitchOpcode*/ 67, TARGET_VAL(X86ISD::FNMADD_RND),// ->175554
/*175487*/    OPC_RecordChild0, // #0 = $src2
/*175488*/    OPC_RecordChild1, // #1 = $src1
/*175489*/    OPC_RecordChild2, // #2 = $src3
/*175490*/    OPC_RecordChild3, // #3 = $rc
/*175491*/    OPC_MoveChild3,
/*175492*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*175495*/    OPC_MoveParent,
/*175496*/    OPC_SwitchType /*4 cases */, 12, MVT::f32,// ->175511
/*175499*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*175501*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213SSZrb), 0,
                    MVT::f32, 4/*#Ops*/, 1, 0, 2, 3, 
                // Src: (X86FnmaddRnd:{ *:[f32] } FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src3, (timm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VFNMADD213SSZrb:{ *:[f32] } FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src3, (timm:{ *:[i32] }):$rc)
/*175511*/    /*SwitchType*/ 12, MVT::f64,// ->175525
/*175513*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*175515*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213SDZrb), 0,
                    MVT::f64, 4/*#Ops*/, 1, 0, 2, 3, 
                // Src: (X86FnmaddRnd:{ *:[f64] } FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src3, (timm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VFNMADD213SDZrb:{ *:[f64] } FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src3, (timm:{ *:[i32] }):$rc)
/*175525*/    /*SwitchType*/ 12, MVT::v16f32,// ->175539
/*175527*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*175529*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PSZrb), 0,
                    MVT::v16f32, 4/*#Ops*/, 1, 0, 2, 3, 
                // Src: (X86FnmaddRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3, (timm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VFNMADD213PSZrb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, (timm:{ *:[i32] }):$rc)
/*175539*/    /*SwitchType*/ 12, MVT::v8f64,// ->175553
/*175541*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*175543*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PDZrb), 0,
                    MVT::v8f64, 4/*#Ops*/, 1, 0, 2, 3, 
                // Src: (X86FnmaddRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3, (timm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VFNMADD213PDZrb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, (timm:{ *:[i32] }):$rc)
/*175553*/    0, // EndSwitchType
/*175554*/  /*SwitchOpcode*/ 67, TARGET_VAL(X86ISD::FNMSUB_RND),// ->175624
/*175557*/    OPC_RecordChild0, // #0 = $src2
/*175558*/    OPC_RecordChild1, // #1 = $src1
/*175559*/    OPC_RecordChild2, // #2 = $src3
/*175560*/    OPC_RecordChild3, // #3 = $rc
/*175561*/    OPC_MoveChild3,
/*175562*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*175565*/    OPC_MoveParent,
/*175566*/    OPC_SwitchType /*4 cases */, 12, MVT::f32,// ->175581
/*175569*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*175571*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213SSZrb), 0,
                    MVT::f32, 4/*#Ops*/, 1, 0, 2, 3, 
                // Src: (X86FnmsubRnd:{ *:[f32] } FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src3, (timm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VFNMSUB213SSZrb:{ *:[f32] } FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2, FR32X:{ *:[f32] }:$src3, (timm:{ *:[i32] }):$rc)
/*175581*/    /*SwitchType*/ 12, MVT::f64,// ->175595
/*175583*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*175585*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213SDZrb), 0,
                    MVT::f64, 4/*#Ops*/, 1, 0, 2, 3, 
                // Src: (X86FnmsubRnd:{ *:[f64] } FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src3, (timm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VFNMSUB213SDZrb:{ *:[f64] } FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2, FR64X:{ *:[f64] }:$src3, (timm:{ *:[i32] }):$rc)
/*175595*/    /*SwitchType*/ 12, MVT::v16f32,// ->175609
/*175597*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*175599*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PSZrb), 0,
                    MVT::v16f32, 4/*#Ops*/, 1, 0, 2, 3, 
                // Src: (X86FnmsubRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3, (timm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VFNMSUB213PSZrb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, (timm:{ *:[i32] }):$rc)
/*175609*/    /*SwitchType*/ 12, MVT::v8f64,// ->175623
/*175611*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*175613*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PDZrb), 0,
                    MVT::v8f64, 4/*#Ops*/, 1, 0, 2, 3, 
                // Src: (X86FnmsubRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3, (timm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VFNMSUB213PDZrb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, (timm:{ *:[i32] }):$rc)
/*175623*/    0, // EndSwitchType
/*175624*/  /*SwitchOpcode*/ 61|128,1/*189*/, TARGET_VAL(ISD::FP16_TO_FP),// ->175817
/*175628*/    OPC_Scope, 100, /*->175730*/ // 2 children in Scope
/*175630*/      OPC_MoveChild0,
/*175631*/      OPC_CheckOpcode, TARGET_VAL(ISD::FP_TO_FP16),
/*175634*/      OPC_RecordChild0, // #0 = $src
/*175635*/      OPC_CheckChild0Type, MVT::f32,
/*175637*/      OPC_CheckType, MVT::i16,
/*175639*/      OPC_MoveParent,
/*175640*/      OPC_CheckType, MVT::f32,
/*175642*/      OPC_Scope, 42, /*->175686*/ // 2 children in Scope
/*175644*/        OPC_CheckPatternPredicate, 11, // (Subtarget->hasF16C()) && (!Subtarget->hasVLX())
/*175646*/        OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*175649*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1,  // Results = #2
/*175657*/        OPC_EmitInteger, MVT::i32, 4, 
/*175660*/        OPC_EmitNode1, TARGET_VAL(X86::VCVTPS2PHrr), 0,
                      MVT::v8i16, 2/*#Ops*/, 2, 3,  // Results = #4
/*175668*/        OPC_EmitNode1, TARGET_VAL(X86::VCVTPH2PSrr), 0,
                      MVT::v4f32, 1/*#Ops*/, 4,  // Results = #5
/*175675*/        OPC_EmitInteger, MVT::i32, X86::FR32RegClassID,
/*175678*/        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] })
/*175686*/      /*Scope*/ 42, /*->175729*/
/*175687*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*175689*/        OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*175692*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1,  // Results = #2
/*175700*/        OPC_EmitInteger, MVT::i32, 4, 
/*175703*/        OPC_EmitNode1, TARGET_VAL(X86::VCVTPS2PHZ128rr), 0,
                      MVT::v8i16, 2/*#Ops*/, 2, 3,  // Results = #4
/*175711*/        OPC_EmitNode1, TARGET_VAL(X86::VCVTPH2PSZ128rr), 0,
                      MVT::v4f32, 1/*#Ops*/, 4,  // Results = #5
/*175718*/        OPC_EmitInteger, MVT::i32, X86::FR32XRegClassID,
/*175721*/        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] })
/*175729*/      0, /*End of Scope*/
/*175730*/    /*Scope*/ 85, /*->175816*/
/*175731*/      OPC_RecordChild0, // #0 = $src
/*175732*/      OPC_CheckChild0Type, MVT::i16,
/*175734*/      OPC_CheckType, MVT::f32,
/*175736*/      OPC_Scope, 38, /*->175776*/ // 2 children in Scope
/*175738*/        OPC_CheckPatternPredicate, 11, // (Subtarget->hasF16C()) && (!Subtarget->hasVLX())
/*175740*/        OPC_EmitNode1, TARGET_VAL(X86::MOVSX32rr16), 0,
                      MVT::i32, 1/*#Ops*/, 0,  // Results = #1
/*175747*/        OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*175750*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i32, 2/*#Ops*/, 1, 2,  // Results = #3
/*175758*/        OPC_EmitNode1, TARGET_VAL(X86::VCVTPH2PSrr), 0,
                      MVT::v4f32, 1/*#Ops*/, 3,  // Results = #4
/*175765*/        OPC_EmitInteger, MVT::i32, X86::FR32RegClassID,
/*175768*/        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] })
/*175776*/      /*Scope*/ 38, /*->175815*/
/*175777*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*175779*/        OPC_EmitNode1, TARGET_VAL(X86::MOVSX32rr16), 0,
                      MVT::i32, 1/*#Ops*/, 0,  // Results = #1
/*175786*/        OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*175789*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v8i16, 2/*#Ops*/, 1, 2,  // Results = #3
/*175797*/        OPC_EmitNode1, TARGET_VAL(X86::VCVTPH2PSZ128rr), 0,
                      MVT::v4f32, 1/*#Ops*/, 3,  // Results = #4
/*175804*/        OPC_EmitInteger, MVT::i32, X86::FR32XRegClassID,
/*175807*/        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] })
/*175815*/      0, /*End of Scope*/
/*175816*/    0, /*End of Scope*/
/*175817*/  /*SwitchOpcode*/ 12|128,2/*268*/, TARGET_VAL(ISD::ConstantFP),// ->176089
/*175821*/    OPC_SwitchType /*4 cases */, 89, MVT::f32,// ->175913
/*175824*/      OPC_Scope, 11, /*->175837*/ // 5 children in Scope
/*175826*/        OPC_CheckPredicate, 95, // Predicate_fpimm0
/*175828*/        OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*175830*/        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] })
/*175837*/      /*Scope*/ 11, /*->175849*/
/*175838*/        OPC_CheckPredicate, 96, // Predicate_fpimm1
/*175840*/        OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*175842*/        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] })
/*175849*/      /*Scope*/ 22, /*->175872*/
/*175850*/        OPC_CheckPredicate, 93, // Predicate_fp32imm0
/*175852*/        OPC_Scope, 8, /*->175862*/ // 2 children in Scope
/*175854*/          OPC_CheckPatternPredicate, 178, // (Subtarget->hasSSE1()) && (!Subtarget->hasAVX512())
/*175856*/          OPC_MorphNodeTo1, TARGET_VAL(X86::FsFLD0SS), 0,
                        MVT::f32, 0/*#Ops*/, 
                    // Src: (fpimm:{ *:[f32] })<<P:Predicate_fp32imm0>> - Complexity = 4
                    // Dst: (FsFLD0SS:{ *:[f32] })
/*175862*/        /*Scope*/ 8, /*->175871*/
/*175863*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*175865*/          OPC_MorphNodeTo1, TARGET_VAL(X86::AVX512_FsFLD0SS), 0,
                        MVT::f32, 0/*#Ops*/, 
                    // Src: (fpimm:{ *:[f32] })<<P:Predicate_fp32imm0>> - Complexity = 4
                    // Dst: (AVX512_FsFLD0SS:{ *:[f32] })
/*175871*/        0, /*End of Scope*/
/*175872*/      /*Scope*/ 19, /*->175892*/
/*175873*/        OPC_CheckPredicate, 97, // Predicate_fpimmneg0
/*175875*/        OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*175877*/        OPC_EmitNode2, TARGET_VAL(X86::LD_Fp032), 0,
                      MVT::f32, MVT::i16, 0/*#Ops*/,  // Results = #0 #1
/*175884*/        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] }))
/*175892*/      /*Scope*/ 19, /*->175912*/
/*175893*/        OPC_CheckPredicate, 98, // Predicate_fpimmneg1
/*175895*/        OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*175897*/        OPC_EmitNode2, TARGET_VAL(X86::LD_Fp132), 0,
                      MVT::f32, MVT::i16, 0/*#Ops*/,  // Results = #0 #1
/*175904*/        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] }))
/*175912*/      0, /*End of Scope*/
/*175913*/    /*SwitchType*/ 89, MVT::f64,// ->176004
/*175915*/      OPC_Scope, 11, /*->175928*/ // 5 children in Scope
/*175917*/        OPC_CheckPredicate, 95, // Predicate_fpimm0
/*175919*/        OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*175921*/        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] })
/*175928*/      /*Scope*/ 11, /*->175940*/
/*175929*/        OPC_CheckPredicate, 96, // Predicate_fpimm1
/*175931*/        OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*175933*/        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] })
/*175940*/      /*Scope*/ 22, /*->175963*/
/*175941*/        OPC_CheckPredicate, 93, // Predicate_fp64imm0
/*175943*/        OPC_Scope, 8, /*->175953*/ // 2 children in Scope
/*175945*/          OPC_CheckPatternPredicate, 179, // (Subtarget->hasSSE2()) && (!Subtarget->hasAVX512())
/*175947*/          OPC_MorphNodeTo1, TARGET_VAL(X86::FsFLD0SD), 0,
                        MVT::f64, 0/*#Ops*/, 
                    // Src: (fpimm:{ *:[f64] })<<P:Predicate_fp64imm0>> - Complexity = 4
                    // Dst: (FsFLD0SD:{ *:[f64] })
/*175953*/        /*Scope*/ 8, /*->175962*/
/*175954*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*175956*/          OPC_MorphNodeTo1, TARGET_VAL(X86::AVX512_FsFLD0SD), 0,
                        MVT::f64, 0/*#Ops*/, 
                    // Src: (fpimm:{ *:[f64] })<<P:Predicate_fp64imm0>> - Complexity = 4
                    // Dst: (AVX512_FsFLD0SD:{ *:[f64] })
/*175962*/        0, /*End of Scope*/
/*175963*/      /*Scope*/ 19, /*->175983*/
/*175964*/        OPC_CheckPredicate, 97, // Predicate_fpimmneg0
/*175966*/        OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*175968*/        OPC_EmitNode2, TARGET_VAL(X86::LD_Fp064), 0,
                      MVT::f64, MVT::i16, 0/*#Ops*/,  // Results = #0 #1
/*175975*/        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] }))
/*175983*/      /*Scope*/ 19, /*->176003*/
/*175984*/        OPC_CheckPredicate, 98, // Predicate_fpimmneg1
/*175986*/        OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*175988*/        OPC_EmitNode2, TARGET_VAL(X86::LD_Fp164), 0,
                      MVT::f64, MVT::i16, 0/*#Ops*/,  // Results = #0 #1
/*175995*/        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] }))
/*176003*/      0, /*End of Scope*/
/*176004*/    /*SwitchType*/ 58, MVT::f80,// ->176064
/*176006*/      OPC_Scope, 9, /*->176017*/ // 4 children in Scope
/*176008*/        OPC_CheckPredicate, 95, // Predicate_fpimm0
/*176010*/        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] })
/*176017*/      /*Scope*/ 9, /*->176027*/
/*176018*/        OPC_CheckPredicate, 96, // Predicate_fpimm1
/*176020*/        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] })
/*176027*/      /*Scope*/ 17, /*->176045*/
/*176028*/        OPC_CheckPredicate, 97, // Predicate_fpimmneg0
/*176030*/        OPC_EmitNode2, TARGET_VAL(X86::LD_Fp080), 0,
                      MVT::f80, MVT::i16, 0/*#Ops*/,  // Results = #0 #1
/*176037*/        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] }))
/*176045*/      /*Scope*/ 17, /*->176063*/
/*176046*/        OPC_CheckPredicate, 98, // Predicate_fpimmneg1
/*176048*/        OPC_EmitNode2, TARGET_VAL(X86::LD_Fp180), 0,
                      MVT::f80, MVT::i16, 0/*#Ops*/,  // Results = #0 #1
/*176055*/        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] }))
/*176063*/      0, /*End of Scope*/
/*176064*/    /*SwitchType*/ 22, MVT::f128,// ->176088
/*176066*/      OPC_CheckPredicate, 93, // Predicate_fp128imm0
/*176068*/      OPC_Scope, 8, /*->176078*/ // 2 children in Scope
/*176070*/        OPC_CheckPatternPredicate, 178, // (Subtarget->hasSSE1()) && (!Subtarget->hasAVX512())
/*176072*/        OPC_MorphNodeTo1, TARGET_VAL(X86::FsFLD0F128), 0,
                      MVT::f128, 0/*#Ops*/, 
                  // Src: (fpimm:{ *:[f128] })<<P:Predicate_fp128imm0>> - Complexity = 4
                  // Dst: (FsFLD0F128:{ *:[f128] })
/*176078*/      /*Scope*/ 8, /*->176087*/
/*176079*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*176081*/        OPC_MorphNodeTo1, TARGET_VAL(X86::AVX512_FsFLD0F128), 0,
                      MVT::f128, 0/*#Ops*/, 
                  // Src: (fpimm:{ *:[f128] })<<P:Predicate_fp128imm0>> - Complexity = 4
                  // Dst: (AVX512_FsFLD0F128:{ *:[f128] })
/*176087*/      0, /*End of Scope*/
/*176088*/    0, // EndSwitchType
/*176089*/  /*SwitchOpcode*/ 37, TARGET_VAL(ISD::FNEG),// ->176129
/*176092*/    OPC_RecordChild0, // #0 = $src
/*176093*/    OPC_SwitchType /*3 cases */, 10, MVT::f32,// ->176106
/*176096*/      OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*176098*/      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)
/*176106*/    /*SwitchType*/ 10, MVT::f64,// ->176118
/*176108*/      OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*176110*/      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)
/*176118*/    /*SwitchType*/ 8, MVT::f80,// ->176128
/*176120*/      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)
/*176128*/    0, // EndSwitchType
/*176129*/  /*SwitchOpcode*/ 37, TARGET_VAL(ISD::FABS),// ->176169
/*176132*/    OPC_RecordChild0, // #0 = $src
/*176133*/    OPC_SwitchType /*3 cases */, 10, MVT::f32,// ->176146
/*176136*/      OPC_CheckPatternPredicate, 23, // (!Subtarget->hasSSE1())
/*176138*/      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)
/*176146*/    /*SwitchType*/ 10, MVT::f64,// ->176158
/*176148*/      OPC_CheckPatternPredicate, 24, // (!Subtarget->hasSSE2())
/*176150*/      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)
/*176158*/    /*SwitchType*/ 8, MVT::f80,// ->176168
/*176160*/      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)
/*176168*/    0, // EndSwitchType
/*176169*/  /*SwitchOpcode*/ 70|128,122|128,14/*245062*/, TARGET_VAL(ISD::VSELECT),// ->421236
/*176174*/    OPC_Scope, 56|128,119|128,5/*97208*/, /*->273386*/ // 3 children in Scope
/*176178*/      OPC_RecordChild0, // #0 = $mask
/*176179*/      OPC_Scope, 53|128,31|128,1/*20405*/, /*->196588*/ // 6 children in Scope
/*176183*/        OPC_CheckChild0Type, MVT::v16i1,
/*176185*/        OPC_Scope, 107|128,5/*747*/, /*->176935*/ // 5 children in Scope
/*176188*/          OPC_MoveChild1,
/*176189*/          OPC_SwitchOpcode /*3 cases */, 120|128,4/*632*/, TARGET_VAL(ISD::BITCAST),// ->176826
/*176194*/            OPC_Scope, 61, /*->176257*/ // 3 children in Scope
/*176196*/              OPC_MoveChild0,
/*176197*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VALIGN),
/*176200*/              OPC_RecordChild0, // #1 = $src1
/*176201*/              OPC_MoveChild1,
/*176202*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*176205*/              OPC_MoveChild0,
/*176206*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*176209*/              OPC_RecordMemRef,
/*176210*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*176211*/              OPC_CheckFoldableChainNode,
/*176212*/              OPC_RecordChild1, // #3 = $src2
/*176213*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*176215*/              OPC_CheckType, MVT::v16i32,
/*176217*/              OPC_MoveParent,
/*176218*/              OPC_MoveParent,
/*176219*/              OPC_RecordChild2, // #4 = $src3
/*176220*/              OPC_MoveChild2,
/*176221*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*176224*/              OPC_MoveParent,
/*176225*/              OPC_CheckType, MVT::v8i64,
/*176227*/              OPC_MoveParent,
/*176228*/              OPC_MoveParent,
/*176229*/              OPC_MoveChild2,
/*176230*/              OPC_CheckImmAllZerosV,
/*176231*/              OPC_MoveParent,
/*176232*/              OPC_CheckType, MVT::v16i32,
/*176234*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*176236*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*176239*/              OPC_EmitMergeInputChains1_2,
/*176240*/              OPC_EmitNodeXForm, 14, 4, // ValignqImm32XForm
/*176243*/              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, (bitconvert:{ *:[v16i32] } (X86VAlign:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (bitconvert:{ *:[v8i64] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), (timm:{ *:[i8] }):$src3)), immAllZerosV:{ *:[v16i32] }) - Complexity = 41
                        // Dst: (VALIGNDZrmbikz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (ValignqImm32XForm:{ *:[i8] } (timm:{ *:[i8] }):$src3))
/*176257*/            /*Scope*/ 28|128,2/*284*/, /*->176543*/
/*176259*/              OPC_RecordChild0, // #1 = $ins
/*176260*/              OPC_MoveChild0,
/*176261*/              OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*176264*/              OPC_RecordChild0, // #2 = $src1
/*176265*/              OPC_MoveChild1,
/*176266*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*176269*/              OPC_RecordMemRef,
/*176270*/              OPC_RecordNode, // #3 = 'ld' chained node
/*176271*/              OPC_CheckFoldableChainNode,
/*176272*/              OPC_RecordChild1, // #4 = $src2
/*176273*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*176275*/              OPC_CheckPredicate, 9, // Predicate_load
/*176277*/              OPC_SwitchType /*6 cases */, 42, MVT::v2i64,// ->176322
/*176280*/                OPC_MoveParent,
/*176281*/                OPC_MoveChild2,
/*176282*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*176285*/                OPC_CheckType, MVT::iPTR,
/*176287*/                OPC_MoveParent,
/*176288*/                OPC_CheckType, MVT::v8i64,
/*176290*/                OPC_MoveParent,
/*176291*/                OPC_MoveParent,
/*176292*/                OPC_MoveChild2,
/*176293*/                OPC_CheckImmAllZerosV,
/*176294*/                OPC_MoveParent,
/*176295*/                OPC_CheckType, MVT::v16i32,
/*176297*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*176299*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*176302*/                OPC_EmitMergeInputChains, 1, 3, 
/*176305*/                OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*176308*/                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>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), immAllZerosV:{ *:[v16i32] }) - Complexity = 38
                          // Dst: (VINSERTI32x4Zrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR512:{ *:[v8i64] }:$ins))
/*176322*/              /*SwitchType*/ 42, MVT::v8i16,// ->176366
/*176324*/                OPC_MoveParent,
/*176325*/                OPC_MoveChild2,
/*176326*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*176329*/                OPC_CheckType, MVT::iPTR,
/*176331*/                OPC_MoveParent,
/*176332*/                OPC_CheckType, MVT::v32i16,
/*176334*/                OPC_MoveParent,
/*176335*/                OPC_MoveParent,
/*176336*/                OPC_MoveChild2,
/*176337*/                OPC_CheckImmAllZerosV,
/*176338*/                OPC_MoveParent,
/*176339*/                OPC_CheckType, MVT::v16i32,
/*176341*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*176343*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*176346*/                OPC_EmitMergeInputChains, 1, 3, 
/*176349*/                OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*176352*/                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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), immAllZerosV:{ *:[v16i32] }) - Complexity = 38
                          // Dst: (VINSERTI32x4Zrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR512:{ *:[v32i16] }:$ins))
/*176366*/              /*SwitchType*/ 42, MVT::v16i8,// ->176410
/*176368*/                OPC_MoveParent,
/*176369*/                OPC_MoveChild2,
/*176370*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*176373*/                OPC_CheckType, MVT::iPTR,
/*176375*/                OPC_MoveParent,
/*176376*/                OPC_CheckType, MVT::v64i8,
/*176378*/                OPC_MoveParent,
/*176379*/                OPC_MoveParent,
/*176380*/                OPC_MoveChild2,
/*176381*/                OPC_CheckImmAllZerosV,
/*176382*/                OPC_MoveParent,
/*176383*/                OPC_CheckType, MVT::v16i32,
/*176385*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*176387*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*176390*/                OPC_EmitMergeInputChains, 1, 3, 
/*176393*/                OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*176396*/                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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), immAllZerosV:{ *:[v16i32] }) - Complexity = 38
                          // Dst: (VINSERTI32x4Zrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR512:{ *:[v64i8] }:$ins))
/*176410*/              /*SwitchType*/ 42, MVT::v4i64,// ->176454
/*176412*/                OPC_MoveParent,
/*176413*/                OPC_MoveChild2,
/*176414*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*176417*/                OPC_CheckType, MVT::iPTR,
/*176419*/                OPC_MoveParent,
/*176420*/                OPC_CheckType, MVT::v8i64,
/*176422*/                OPC_MoveParent,
/*176423*/                OPC_MoveParent,
/*176424*/                OPC_MoveChild2,
/*176425*/                OPC_CheckImmAllZerosV,
/*176426*/                OPC_MoveParent,
/*176427*/                OPC_CheckType, MVT::v16i32,
/*176429*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*176431*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*176434*/                OPC_EmitMergeInputChains, 1, 3, 
/*176437*/                OPC_EmitNodeXForm, 16, 1, // INSERT_get_vinsert256_imm
/*176440*/                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>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$ins), immAllZerosV:{ *:[v16i32] }) - Complexity = 38
                          // Dst: (VINSERTI32x8Zrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } VR512:{ *:[v8i64] }:$ins))
/*176454*/              /*SwitchType*/ 42, MVT::v16i16,// ->176498
/*176456*/                OPC_MoveParent,
/*176457*/                OPC_MoveChild2,
/*176458*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*176461*/                OPC_CheckType, MVT::iPTR,
/*176463*/                OPC_MoveParent,
/*176464*/                OPC_CheckType, MVT::v32i16,
/*176466*/                OPC_MoveParent,
/*176467*/                OPC_MoveParent,
/*176468*/                OPC_MoveChild2,
/*176469*/                OPC_CheckImmAllZerosV,
/*176470*/                OPC_MoveParent,
/*176471*/                OPC_CheckType, MVT::v16i32,
/*176473*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*176475*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*176478*/                OPC_EmitMergeInputChains, 1, 3, 
/*176481*/                OPC_EmitNodeXForm, 16, 1, // INSERT_get_vinsert256_imm
/*176484*/                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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$ins), immAllZerosV:{ *:[v16i32] }) - Complexity = 38
                          // Dst: (VINSERTI32x8Zrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } VR512:{ *:[v32i16] }:$ins))
/*176498*/              /*SwitchType*/ 42, MVT::v32i8,// ->176542
/*176500*/                OPC_MoveParent,
/*176501*/                OPC_MoveChild2,
/*176502*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*176505*/                OPC_CheckType, MVT::iPTR,
/*176507*/                OPC_MoveParent,
/*176508*/                OPC_CheckType, MVT::v64i8,
/*176510*/                OPC_MoveParent,
/*176511*/                OPC_MoveParent,
/*176512*/                OPC_MoveChild2,
/*176513*/                OPC_CheckImmAllZerosV,
/*176514*/                OPC_MoveParent,
/*176515*/                OPC_CheckType, MVT::v16i32,
/*176517*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*176519*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*176522*/                OPC_EmitMergeInputChains, 1, 3, 
/*176525*/                OPC_EmitNodeXForm, 16, 1, // INSERT_get_vinsert256_imm
/*176528*/                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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$ins), immAllZerosV:{ *:[v16i32] }) - Complexity = 38
                          // Dst: (VINSERTI32x8Zrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } VR512:{ *:[v64i8] }:$ins))
/*176542*/              0, // EndSwitchType
/*176543*/            /*Scope*/ 24|128,2/*280*/, /*->176825*/
/*176545*/              OPC_MoveChild0,
/*176546*/              OPC_SwitchOpcode /*2 cases */, 96, TARGET_VAL(X86ISD::SHUF128),// ->176646
/*176550*/                OPC_RecordChild0, // #1 = $src1
/*176551*/                OPC_MoveChild1,
/*176552*/                OPC_SwitchOpcode /*2 cases */, 44, TARGET_VAL(ISD::LOAD),// ->176600
/*176556*/                  OPC_RecordMemRef,
/*176557*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*176558*/                  OPC_CheckFoldableChainNode,
/*176559*/                  OPC_RecordChild1, // #3 = $src2
/*176560*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*176562*/                  OPC_CheckPredicate, 9, // Predicate_load
/*176564*/                  OPC_MoveParent,
/*176565*/                  OPC_RecordChild2, // #4 = $src3
/*176566*/                  OPC_MoveChild2,
/*176567*/                  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*176570*/                  OPC_MoveParent,
/*176571*/                  OPC_CheckType, MVT::v8i64,
/*176573*/                  OPC_MoveParent,
/*176574*/                  OPC_MoveParent,
/*176575*/                  OPC_MoveChild2,
/*176576*/                  OPC_CheckImmAllZerosV,
/*176577*/                  OPC_MoveParent,
/*176578*/                  OPC_CheckType, MVT::v16i32,
/*176580*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*176582*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*176585*/                  OPC_EmitMergeInputChains1_2,
/*176586*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI32X4Zrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (X86Shuf128:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3)), immAllZerosV:{ *:[v16i32] }) - Complexity = 38
                            // Dst: (VSHUFI32X4Zrmikz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*176600*/                /*SwitchOpcode*/ 42, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->176645
/*176603*/                  OPC_RecordMemRef,
/*176604*/                  OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*176605*/                  OPC_CheckFoldableChainNode,
/*176606*/                  OPC_RecordChild1, // #3 = $src2
/*176607*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*176609*/                  OPC_MoveParent,
/*176610*/                  OPC_RecordChild2, // #4 = $src3
/*176611*/                  OPC_MoveChild2,
/*176612*/                  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*176615*/                  OPC_MoveParent,
/*176616*/                  OPC_CheckType, MVT::v8i64,
/*176618*/                  OPC_MoveParent,
/*176619*/                  OPC_MoveParent,
/*176620*/                  OPC_MoveChild2,
/*176621*/                  OPC_CheckImmAllZerosV,
/*176622*/                  OPC_MoveParent,
/*176623*/                  OPC_CheckType, MVT::v16i32,
/*176625*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*176627*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*176630*/                  OPC_EmitMergeInputChains1_2,
/*176631*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI32X4Zrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (X86Shuf128:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src3)), immAllZerosV:{ *:[v16i32] }) - Complexity = 38
                            // Dst: (VSHUFI32X4Zrmbikz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*176645*/                0, // EndSwitchOpcode
/*176646*/              /*SwitchOpcode*/ 46|128,1/*174*/, TARGET_VAL(X86ISD::VALIGN),// ->176824
/*176650*/                OPC_RecordChild0, // #1 = $src1
/*176651*/                OPC_MoveChild1,
/*176652*/                OPC_SwitchOpcode /*2 cases */, 113, TARGET_VAL(ISD::LOAD),// ->176769
/*176656*/                  OPC_RecordMemRef,
/*176657*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*176658*/                  OPC_CheckFoldableChainNode,
/*176659*/                  OPC_RecordChild1, // #3 = $src2
/*176660*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*176662*/                  OPC_CheckPredicate, 9, // Predicate_load
/*176664*/                  OPC_MoveParent,
/*176665*/                  OPC_RecordChild2, // #4 = $src3
/*176666*/                  OPC_MoveChild2,
/*176667*/                  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*176670*/                  OPC_MoveParent,
/*176671*/                  OPC_SwitchType /*3 cases */, 30, MVT::v8i64,// ->176704
/*176674*/                    OPC_MoveParent,
/*176675*/                    OPC_MoveParent,
/*176676*/                    OPC_MoveChild2,
/*176677*/                    OPC_CheckImmAllZerosV,
/*176678*/                    OPC_MoveParent,
/*176679*/                    OPC_CheckType, MVT::v16i32,
/*176681*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*176683*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*176686*/                    OPC_EmitMergeInputChains1_2,
/*176687*/                    OPC_EmitNodeXForm, 14, 4, // ValignqImm32XForm
/*176690*/                    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, (bitconvert:{ *:[v16i32] } (X86VAlign:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3)), immAllZerosV:{ *:[v16i32] }) - Complexity = 38
                              // Dst: (VALIGNDZrmikz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (ValignqImm32XForm:{ *:[i8] } (timm:{ *:[i8] }):$src3))
/*176704*/                  /*SwitchType*/ 30, MVT::v2i64,// ->176736
/*176706*/                    OPC_MoveParent,
/*176707*/                    OPC_MoveParent,
/*176708*/                    OPC_MoveChild2,
/*176709*/                    OPC_CheckImmAllZerosV,
/*176710*/                    OPC_MoveParent,
/*176711*/                    OPC_CheckType, MVT::v16i8,
/*176713*/                    OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*176715*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*176718*/                    OPC_EmitMergeInputChains1_2,
/*176719*/                    OPC_EmitNodeXForm, 17, 4, // ValignqImm8XForm
/*176722*/                    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, (bitconvert:{ *:[v16i8] } (X86VAlign:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3)), immAllZerosV:{ *:[v16i8] }) - Complexity = 38
                              // Dst: (VPALIGNRZ128rmikz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (ValignqImm8XForm:{ *:[i8] } (timm:{ *:[i8] }):$src3))
/*176736*/                  /*SwitchType*/ 30, MVT::v4i32,// ->176768
/*176738*/                    OPC_MoveParent,
/*176739*/                    OPC_MoveParent,
/*176740*/                    OPC_MoveChild2,
/*176741*/                    OPC_CheckImmAllZerosV,
/*176742*/                    OPC_MoveParent,
/*176743*/                    OPC_CheckType, MVT::v16i8,
/*176745*/                    OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*176747*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*176750*/                    OPC_EmitMergeInputChains1_2,
/*176751*/                    OPC_EmitNodeXForm, 18, 4, // ValigndImm8XForm
/*176754*/                    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, (bitconvert:{ *:[v16i8] } (X86VAlign:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3)), immAllZerosV:{ *:[v16i8] }) - Complexity = 38
                              // Dst: (VPALIGNRZ128rmikz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (ValigndImm8XForm:{ *:[i8] } (timm:{ *:[i8] }):$src3))
/*176768*/                  0, // EndSwitchType
/*176769*/                /*SwitchOpcode*/ 51, TARGET_VAL(ISD::BITCAST),// ->176823
/*176772*/                  OPC_MoveChild0,
/*176773*/                  OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*176776*/                  OPC_RecordMemRef,
/*176777*/                  OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*176778*/                  OPC_CheckFoldableChainNode,
/*176779*/                  OPC_RecordChild1, // #3 = $src2
/*176780*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*176782*/                  OPC_CheckType, MVT::v16i32,
/*176784*/                  OPC_MoveParent,
/*176785*/                  OPC_MoveParent,
/*176786*/                  OPC_RecordChild2, // #4 = $src3
/*176787*/                  OPC_MoveChild2,
/*176788*/                  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*176791*/                  OPC_MoveParent,
/*176792*/                  OPC_CheckType, MVT::v8i64,
/*176794*/                  OPC_MoveParent,
/*176795*/                  OPC_MoveParent,
/*176796*/                  OPC_RecordChild2, // #5 = $src0
/*176797*/                  OPC_CheckType, MVT::v16i32,
/*176799*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*176801*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*176804*/                  OPC_EmitMergeInputChains1_2,
/*176805*/                  OPC_EmitNodeXForm, 14, 4, // ValignqImm32XForm
/*176808*/                  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, (bitconvert:{ *:[v16i32] } (X86VAlign:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (bitconvert:{ *:[v8i64] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), (timm:{ *:[i8] }):$src3)), VR512:{ *:[v16i32] }:$src0) - Complexity = 37
                            // Dst: (VALIGNDZrmbik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (ValignqImm32XForm:{ *:[i8] } (timm:{ *:[i8] }):$src3))
/*176823*/                0, // EndSwitchOpcode
/*176824*/              0, // EndSwitchOpcode
/*176825*/            0, /*End of Scope*/
/*176826*/          /*SwitchOpcode*/ 51, TARGET_VAL(X86ISD::GF2P8AFFINEINVQB),// ->176880
/*176829*/            OPC_RecordChild0, // #1 = $src1
/*176830*/            OPC_MoveChild1,
/*176831*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*176834*/            OPC_MoveChild0,
/*176835*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*176838*/            OPC_RecordMemRef,
/*176839*/            OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*176840*/            OPC_CheckFoldableChainNode,
/*176841*/            OPC_RecordChild1, // #3 = $src2
/*176842*/            OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*176844*/            OPC_CheckType, MVT::v2i64,
/*176846*/            OPC_MoveParent,
/*176847*/            OPC_MoveParent,
/*176848*/            OPC_RecordChild2, // #4 = $src3
/*176849*/            OPC_MoveChild2,
/*176850*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*176853*/            OPC_MoveParent,
/*176854*/            OPC_MoveParent,
/*176855*/            OPC_MoveChild2,
/*176856*/            OPC_CheckImmAllZerosV,
/*176857*/            OPC_MoveParent,
/*176858*/            OPC_CheckType, MVT::v16i8,
/*176860*/            OPC_CheckPatternPredicate, 180, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*176862*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*176865*/            OPC_EmitMergeInputChains1_2,
/*176866*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEINVQBZ128rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                      // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86GF2P8affineinvqb:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v16i8] }) - Complexity = 38
                      // Dst: (VGF2P8AFFINEINVQBZ128rmbikz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*176880*/          /*SwitchOpcode*/ 51, TARGET_VAL(X86ISD::GF2P8AFFINEQB),// ->176934
/*176883*/            OPC_RecordChild0, // #1 = $src1
/*176884*/            OPC_MoveChild1,
/*176885*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*176888*/            OPC_MoveChild0,
/*176889*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*176892*/            OPC_RecordMemRef,
/*176893*/            OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*176894*/            OPC_CheckFoldableChainNode,
/*176895*/            OPC_RecordChild1, // #3 = $src2
/*176896*/            OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*176898*/            OPC_CheckType, MVT::v2i64,
/*176900*/            OPC_MoveParent,
/*176901*/            OPC_MoveParent,
/*176902*/            OPC_RecordChild2, // #4 = $src3
/*176903*/            OPC_MoveChild2,
/*176904*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*176907*/            OPC_MoveParent,
/*176908*/            OPC_MoveParent,
/*176909*/            OPC_MoveChild2,
/*176910*/            OPC_CheckImmAllZerosV,
/*176911*/            OPC_MoveParent,
/*176912*/            OPC_CheckType, MVT::v16i8,
/*176914*/            OPC_CheckPatternPredicate, 180, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*176916*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*176919*/            OPC_EmitMergeInputChains1_2,
/*176920*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEQBZ128rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                      // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86GF2P8affineqb:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v16i8] }) - Complexity = 38
                      // Dst: (VGF2P8AFFINEQBZ128rmbikz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*176934*/          0, // EndSwitchOpcode
/*176935*/        /*Scope*/ 102, /*->177038*/
/*176936*/          OPC_RecordChild1, // #1 = $src3
/*176937*/          OPC_MoveChild1,
/*176938*/          OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*176941*/          OPC_RecordChild0, // #2 = $src1
/*176942*/          OPC_MoveChild1,
/*176943*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*176946*/          OPC_RecordMemRef,
/*176947*/          OPC_RecordNode, // #3 = 'ld' chained node
/*176948*/          OPC_CheckFoldableChainNode,
/*176949*/          OPC_RecordChild1, // #4 = $src2
/*176950*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*176952*/          OPC_CheckPredicate, 9, // Predicate_load
/*176954*/          OPC_SwitchType /*2 cases */, 39, MVT::v4i32,// ->176996
/*176957*/            OPC_MoveParent,
/*176958*/            OPC_MoveChild2,
/*176959*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*176962*/            OPC_CheckType, MVT::iPTR,
/*176964*/            OPC_MoveParent,
/*176965*/            OPC_MoveParent,
/*176966*/            OPC_MoveChild2,
/*176967*/            OPC_CheckImmAllZerosV,
/*176968*/            OPC_MoveParent,
/*176969*/            OPC_CheckType, MVT::v16i32,
/*176971*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*176973*/            OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*176976*/            OPC_EmitMergeInputChains, 1, 3, 
/*176979*/            OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*176982*/            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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$src3, immAllZerosV:{ *:[v16i32] }) - Complexity = 35
                      // Dst: (VINSERTI32x4Zrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } (insert_subvector:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[iPTR] })):$src3))
/*176996*/          /*SwitchType*/ 39, MVT::v8i32,// ->177037
/*176998*/            OPC_MoveParent,
/*176999*/            OPC_MoveChild2,
/*177000*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*177003*/            OPC_CheckType, MVT::iPTR,
/*177005*/            OPC_MoveParent,
/*177006*/            OPC_MoveParent,
/*177007*/            OPC_MoveChild2,
/*177008*/            OPC_CheckImmAllZerosV,
/*177009*/            OPC_MoveParent,
/*177010*/            OPC_CheckType, MVT::v16i32,
/*177012*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*177014*/            OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*177017*/            OPC_EmitMergeInputChains, 1, 3, 
/*177020*/            OPC_EmitNodeXForm, 16, 1, // INSERT_get_vinsert256_imm
/*177023*/            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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$src3, immAllZerosV:{ *:[v16i32] }) - Complexity = 35
                      // Dst: (VINSERTI32x8Zrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } (insert_subvector:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[iPTR] })):$src3))
/*177037*/          0, // EndSwitchType
/*177038*/        /*Scope*/ 18|128,73/*9362*/, /*->186402*/
/*177040*/          OPC_MoveChild1,
/*177041*/          OPC_SwitchOpcode /*74 cases */, 67|128,10/*1347*/, TARGET_VAL(ISD::BITCAST),// ->178393
/*177046*/            OPC_Scope, 39|128,6/*807*/, /*->177856*/ // 3 children in Scope
/*177049*/              OPC_MoveChild0,
/*177050*/              OPC_SwitchOpcode /*5 cases */, 74, TARGET_VAL(X86ISD::SUBV_BROADCAST),// ->177128
/*177054*/                OPC_MoveChild0,
/*177055*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*177058*/                OPC_RecordMemRef,
/*177059*/                OPC_RecordNode, // #1 = 'ld' chained node
/*177060*/                OPC_CheckFoldableChainNode,
/*177061*/                OPC_RecordChild1, // #2 = $src
/*177062*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*177064*/                OPC_CheckPredicate, 9, // Predicate_load
/*177066*/                OPC_SwitchType /*2 cases */, 28, MVT::v2i64,// ->177097
/*177069*/                  OPC_MoveParent,
/*177070*/                  OPC_CheckType, MVT::v8i64,
/*177072*/                  OPC_MoveParent,
/*177073*/                  OPC_MoveParent,
/*177074*/                  OPC_MoveChild2,
/*177075*/                  OPC_CheckImmAllZerosV,
/*177076*/                  OPC_MoveParent,
/*177077*/                  OPC_CheckType, MVT::v16i32,
/*177079*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*177081*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*177084*/                  OPC_EmitMergeInputChains1_1,
/*177085*/                  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>>)), immAllZerosV:{ *:[v16i32] }) - Complexity = 35
                            // Dst: (VBROADCASTI32X4rmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*177097*/                /*SwitchType*/ 28, MVT::v4i64,// ->177127
/*177099*/                  OPC_MoveParent,
/*177100*/                  OPC_CheckType, MVT::v8i64,
/*177102*/                  OPC_MoveParent,
/*177103*/                  OPC_MoveParent,
/*177104*/                  OPC_MoveChild2,
/*177105*/                  OPC_CheckImmAllZerosV,
/*177106*/                  OPC_MoveParent,
/*177107*/                  OPC_CheckType, MVT::v16i32,
/*177109*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*177111*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*177114*/                  OPC_EmitMergeInputChains1_1,
/*177115*/                  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>>)), immAllZerosV:{ *:[v16i32] }) - Complexity = 35
                            // Dst: (VBROADCASTI32X8rmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*177127*/                0, // EndSwitchType
/*177128*/              /*SwitchOpcode*/ 76|128,1/*204*/, TARGET_VAL(ISD::AND),// ->177336
/*177132*/                OPC_Scope, 100, /*->177234*/ // 2 children in Scope
/*177134*/                  OPC_RecordChild0, // #1 = $src1
/*177135*/                  OPC_MoveChild1,
/*177136*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*177139*/                  OPC_RecordMemRef,
/*177140*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*177141*/                  OPC_CheckFoldableChainNode,
/*177142*/                  OPC_RecordChild1, // #3 = $src2
/*177143*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*177145*/                  OPC_CheckPredicate, 9, // Predicate_load
/*177147*/                  OPC_MoveParent,
/*177148*/                  OPC_SwitchType /*3 cases */, 26, MVT::v8i64,// ->177177
/*177151*/                    OPC_MoveParent,
/*177152*/                    OPC_MoveParent,
/*177153*/                    OPC_MoveChild2,
/*177154*/                    OPC_CheckImmAllZerosV,
/*177155*/                    OPC_MoveParent,
/*177156*/                    OPC_CheckType, MVT::v16i32,
/*177158*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*177160*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*177163*/                    OPC_EmitMergeInputChains1_2,
/*177164*/                    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>>)), immAllZerosV:{ *:[v16i32] }) - Complexity = 35
                              // Dst: (VPANDDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*177177*/                  /*SwitchType*/ 26, MVT::v32i16,// ->177205
/*177179*/                    OPC_MoveParent,
/*177180*/                    OPC_MoveParent,
/*177181*/                    OPC_MoveChild2,
/*177182*/                    OPC_CheckImmAllZerosV,
/*177183*/                    OPC_MoveParent,
/*177184*/                    OPC_CheckType, MVT::v16i32,
/*177186*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*177188*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*177191*/                    OPC_EmitMergeInputChains1_2,
/*177192*/                    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:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v16i32] }) - Complexity = 35
                              // Dst: (VPANDDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*177205*/                  /*SwitchType*/ 26, MVT::v64i8,// ->177233
/*177207*/                    OPC_MoveParent,
/*177208*/                    OPC_MoveParent,
/*177209*/                    OPC_MoveChild2,
/*177210*/                    OPC_CheckImmAllZerosV,
/*177211*/                    OPC_MoveParent,
/*177212*/                    OPC_CheckType, MVT::v16i32,
/*177214*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*177216*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*177219*/                    OPC_EmitMergeInputChains1_2,
/*177220*/                    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:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v16i32] }) - Complexity = 35
                              // Dst: (VPANDDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*177233*/                  0, // EndSwitchType
/*177234*/                /*Scope*/ 100, /*->177335*/
/*177235*/                  OPC_MoveChild0,
/*177236*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*177239*/                  OPC_RecordMemRef,
/*177240*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*177241*/                  OPC_CheckFoldableChainNode,
/*177242*/                  OPC_RecordChild1, // #2 = $src2
/*177243*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*177245*/                  OPC_CheckPredicate, 9, // Predicate_load
/*177247*/                  OPC_MoveParent,
/*177248*/                  OPC_RecordChild1, // #3 = $src1
/*177249*/                  OPC_SwitchType /*3 cases */, 26, MVT::v8i64,// ->177278
/*177252*/                    OPC_MoveParent,
/*177253*/                    OPC_MoveParent,
/*177254*/                    OPC_MoveChild2,
/*177255*/                    OPC_CheckImmAllZerosV,
/*177256*/                    OPC_MoveParent,
/*177257*/                    OPC_CheckType, MVT::v16i32,
/*177259*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*177261*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*177264*/                    OPC_EmitMergeInputChains1_1,
/*177265*/                    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>>, VR512:{ *:[v8i64] }:$src1)), immAllZerosV:{ *:[v16i32] }) - Complexity = 35
                              // Dst: (VPANDDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*177278*/                  /*SwitchType*/ 26, MVT::v32i16,// ->177306
/*177280*/                    OPC_MoveParent,
/*177281*/                    OPC_MoveParent,
/*177282*/                    OPC_MoveChild2,
/*177283*/                    OPC_CheckImmAllZerosV,
/*177284*/                    OPC_MoveParent,
/*177285*/                    OPC_CheckType, MVT::v16i32,
/*177287*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*177289*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*177292*/                    OPC_EmitMergeInputChains1_1,
/*177293*/                    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:{ *:[v32i16] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1)), immAllZerosV:{ *:[v16i32] }) - Complexity = 35
                              // Dst: (VPANDDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*177306*/                  /*SwitchType*/ 26, MVT::v64i8,// ->177334
/*177308*/                    OPC_MoveParent,
/*177309*/                    OPC_MoveParent,
/*177310*/                    OPC_MoveChild2,
/*177311*/                    OPC_CheckImmAllZerosV,
/*177312*/                    OPC_MoveParent,
/*177313*/                    OPC_CheckType, MVT::v16i32,
/*177315*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*177317*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*177320*/                    OPC_EmitMergeInputChains1_1,
/*177321*/                    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:{ *:[v64i8] } (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v64i8] }:$src1)), immAllZerosV:{ *:[v16i32] }) - Complexity = 35
                              // Dst: (VPANDDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*177334*/                  0, // EndSwitchType
/*177335*/                0, /*End of Scope*/
/*177336*/              /*SwitchOpcode*/ 76|128,1/*204*/, TARGET_VAL(ISD::OR),// ->177544
/*177340*/                OPC_Scope, 100, /*->177442*/ // 2 children in Scope
/*177342*/                  OPC_RecordChild0, // #1 = $src1
/*177343*/                  OPC_MoveChild1,
/*177344*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*177347*/                  OPC_RecordMemRef,
/*177348*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*177349*/                  OPC_CheckFoldableChainNode,
/*177350*/                  OPC_RecordChild1, // #3 = $src2
/*177351*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*177353*/                  OPC_CheckPredicate, 9, // Predicate_load
/*177355*/                  OPC_MoveParent,
/*177356*/                  OPC_SwitchType /*3 cases */, 26, MVT::v8i64,// ->177385
/*177359*/                    OPC_MoveParent,
/*177360*/                    OPC_MoveParent,
/*177361*/                    OPC_MoveChild2,
/*177362*/                    OPC_CheckImmAllZerosV,
/*177363*/                    OPC_MoveParent,
/*177364*/                    OPC_CheckType, MVT::v16i32,
/*177366*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*177368*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*177371*/                    OPC_EmitMergeInputChains1_2,
/*177372*/                    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>>)), immAllZerosV:{ *:[v16i32] }) - Complexity = 35
                              // Dst: (VPORDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*177385*/                  /*SwitchType*/ 26, MVT::v32i16,// ->177413
/*177387*/                    OPC_MoveParent,
/*177388*/                    OPC_MoveParent,
/*177389*/                    OPC_MoveChild2,
/*177390*/                    OPC_CheckImmAllZerosV,
/*177391*/                    OPC_MoveParent,
/*177392*/                    OPC_CheckType, MVT::v16i32,
/*177394*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*177396*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*177399*/                    OPC_EmitMergeInputChains1_2,
/*177400*/                    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:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v16i32] }) - Complexity = 35
                              // Dst: (VPORDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*177413*/                  /*SwitchType*/ 26, MVT::v64i8,// ->177441
/*177415*/                    OPC_MoveParent,
/*177416*/                    OPC_MoveParent,
/*177417*/                    OPC_MoveChild2,
/*177418*/                    OPC_CheckImmAllZerosV,
/*177419*/                    OPC_MoveParent,
/*177420*/                    OPC_CheckType, MVT::v16i32,
/*177422*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*177424*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*177427*/                    OPC_EmitMergeInputChains1_2,
/*177428*/                    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:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v16i32] }) - Complexity = 35
                              // Dst: (VPORDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*177441*/                  0, // EndSwitchType
/*177442*/                /*Scope*/ 100, /*->177543*/
/*177443*/                  OPC_MoveChild0,
/*177444*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*177447*/                  OPC_RecordMemRef,
/*177448*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*177449*/                  OPC_CheckFoldableChainNode,
/*177450*/                  OPC_RecordChild1, // #2 = $src2
/*177451*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*177453*/                  OPC_CheckPredicate, 9, // Predicate_load
/*177455*/                  OPC_MoveParent,
/*177456*/                  OPC_RecordChild1, // #3 = $src1
/*177457*/                  OPC_SwitchType /*3 cases */, 26, MVT::v8i64,// ->177486
/*177460*/                    OPC_MoveParent,
/*177461*/                    OPC_MoveParent,
/*177462*/                    OPC_MoveChild2,
/*177463*/                    OPC_CheckImmAllZerosV,
/*177464*/                    OPC_MoveParent,
/*177465*/                    OPC_CheckType, MVT::v16i32,
/*177467*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*177469*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*177472*/                    OPC_EmitMergeInputChains1_1,
/*177473*/                    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>>, VR512:{ *:[v8i64] }:$src1)), immAllZerosV:{ *:[v16i32] }) - Complexity = 35
                              // Dst: (VPORDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*177486*/                  /*SwitchType*/ 26, MVT::v32i16,// ->177514
/*177488*/                    OPC_MoveParent,
/*177489*/                    OPC_MoveParent,
/*177490*/                    OPC_MoveChild2,
/*177491*/                    OPC_CheckImmAllZerosV,
/*177492*/                    OPC_MoveParent,
/*177493*/                    OPC_CheckType, MVT::v16i32,
/*177495*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*177497*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*177500*/                    OPC_EmitMergeInputChains1_1,
/*177501*/                    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:{ *:[v32i16] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1)), immAllZerosV:{ *:[v16i32] }) - Complexity = 35
                              // Dst: (VPORDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*177514*/                  /*SwitchType*/ 26, MVT::v64i8,// ->177542
/*177516*/                    OPC_MoveParent,
/*177517*/                    OPC_MoveParent,
/*177518*/                    OPC_MoveChild2,
/*177519*/                    OPC_CheckImmAllZerosV,
/*177520*/                    OPC_MoveParent,
/*177521*/                    OPC_CheckType, MVT::v16i32,
/*177523*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*177525*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*177528*/                    OPC_EmitMergeInputChains1_1,
/*177529*/                    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:{ *:[v64i8] } (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v64i8] }:$src1)), immAllZerosV:{ *:[v16i32] }) - Complexity = 35
                              // Dst: (VPORDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*177542*/                  0, // EndSwitchType
/*177543*/                0, /*End of Scope*/
/*177544*/              /*SwitchOpcode*/ 76|128,1/*204*/, TARGET_VAL(ISD::XOR),// ->177752
/*177548*/                OPC_Scope, 100, /*->177650*/ // 2 children in Scope
/*177550*/                  OPC_RecordChild0, // #1 = $src1
/*177551*/                  OPC_MoveChild1,
/*177552*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*177555*/                  OPC_RecordMemRef,
/*177556*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*177557*/                  OPC_CheckFoldableChainNode,
/*177558*/                  OPC_RecordChild1, // #3 = $src2
/*177559*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*177561*/                  OPC_CheckPredicate, 9, // Predicate_load
/*177563*/                  OPC_MoveParent,
/*177564*/                  OPC_SwitchType /*3 cases */, 26, MVT::v8i64,// ->177593
/*177567*/                    OPC_MoveParent,
/*177568*/                    OPC_MoveParent,
/*177569*/                    OPC_MoveChild2,
/*177570*/                    OPC_CheckImmAllZerosV,
/*177571*/                    OPC_MoveParent,
/*177572*/                    OPC_CheckType, MVT::v16i32,
/*177574*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*177576*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*177579*/                    OPC_EmitMergeInputChains1_2,
/*177580*/                    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>>)), immAllZerosV:{ *:[v16i32] }) - Complexity = 35
                              // Dst: (VPXORDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*177593*/                  /*SwitchType*/ 26, MVT::v32i16,// ->177621
/*177595*/                    OPC_MoveParent,
/*177596*/                    OPC_MoveParent,
/*177597*/                    OPC_MoveChild2,
/*177598*/                    OPC_CheckImmAllZerosV,
/*177599*/                    OPC_MoveParent,
/*177600*/                    OPC_CheckType, MVT::v16i32,
/*177602*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*177604*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*177607*/                    OPC_EmitMergeInputChains1_2,
/*177608*/                    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:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v16i32] }) - Complexity = 35
                              // Dst: (VPXORDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*177621*/                  /*SwitchType*/ 26, MVT::v64i8,// ->177649
/*177623*/                    OPC_MoveParent,
/*177624*/                    OPC_MoveParent,
/*177625*/                    OPC_MoveChild2,
/*177626*/                    OPC_CheckImmAllZerosV,
/*177627*/                    OPC_MoveParent,
/*177628*/                    OPC_CheckType, MVT::v16i32,
/*177630*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*177632*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*177635*/                    OPC_EmitMergeInputChains1_2,
/*177636*/                    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:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v16i32] }) - Complexity = 35
                              // Dst: (VPXORDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*177649*/                  0, // EndSwitchType
/*177650*/                /*Scope*/ 100, /*->177751*/
/*177651*/                  OPC_MoveChild0,
/*177652*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*177655*/                  OPC_RecordMemRef,
/*177656*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*177657*/                  OPC_CheckFoldableChainNode,
/*177658*/                  OPC_RecordChild1, // #2 = $src2
/*177659*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*177661*/                  OPC_CheckPredicate, 9, // Predicate_load
/*177663*/                  OPC_MoveParent,
/*177664*/                  OPC_RecordChild1, // #3 = $src1
/*177665*/                  OPC_SwitchType /*3 cases */, 26, MVT::v8i64,// ->177694
/*177668*/                    OPC_MoveParent,
/*177669*/                    OPC_MoveParent,
/*177670*/                    OPC_MoveChild2,
/*177671*/                    OPC_CheckImmAllZerosV,
/*177672*/                    OPC_MoveParent,
/*177673*/                    OPC_CheckType, MVT::v16i32,
/*177675*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*177677*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*177680*/                    OPC_EmitMergeInputChains1_1,
/*177681*/                    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>>, VR512:{ *:[v8i64] }:$src1)), immAllZerosV:{ *:[v16i32] }) - Complexity = 35
                              // Dst: (VPXORDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*177694*/                  /*SwitchType*/ 26, MVT::v32i16,// ->177722
/*177696*/                    OPC_MoveParent,
/*177697*/                    OPC_MoveParent,
/*177698*/                    OPC_MoveChild2,
/*177699*/                    OPC_CheckImmAllZerosV,
/*177700*/                    OPC_MoveParent,
/*177701*/                    OPC_CheckType, MVT::v16i32,
/*177703*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*177705*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*177708*/                    OPC_EmitMergeInputChains1_1,
/*177709*/                    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:{ *:[v32i16] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1)), immAllZerosV:{ *:[v16i32] }) - Complexity = 35
                              // Dst: (VPXORDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*177722*/                  /*SwitchType*/ 26, MVT::v64i8,// ->177750
/*177724*/                    OPC_MoveParent,
/*177725*/                    OPC_MoveParent,
/*177726*/                    OPC_MoveChild2,
/*177727*/                    OPC_CheckImmAllZerosV,
/*177728*/                    OPC_MoveParent,
/*177729*/                    OPC_CheckType, MVT::v16i32,
/*177731*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*177733*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*177736*/                    OPC_EmitMergeInputChains1_1,
/*177737*/                    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:{ *:[v64i8] } (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v64i8] }:$src1)), immAllZerosV:{ *:[v16i32] }) - Complexity = 35
                              // Dst: (VPXORDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*177750*/                  0, // EndSwitchType
/*177751*/                0, /*End of Scope*/
/*177752*/              /*SwitchOpcode*/ 100, TARGET_VAL(X86ISD::ANDNP),// ->177855
/*177755*/                OPC_RecordChild0, // #1 = $src1
/*177756*/                OPC_MoveChild1,
/*177757*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*177760*/                OPC_RecordMemRef,
/*177761*/                OPC_RecordNode, // #2 = 'ld' chained node
/*177762*/                OPC_CheckFoldableChainNode,
/*177763*/                OPC_RecordChild1, // #3 = $src2
/*177764*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*177766*/                OPC_CheckPredicate, 9, // Predicate_load
/*177768*/                OPC_MoveParent,
/*177769*/                OPC_SwitchType /*3 cases */, 26, MVT::v8i64,// ->177798
/*177772*/                  OPC_MoveParent,
/*177773*/                  OPC_MoveParent,
/*177774*/                  OPC_MoveChild2,
/*177775*/                  OPC_CheckImmAllZerosV,
/*177776*/                  OPC_MoveParent,
/*177777*/                  OPC_CheckType, MVT::v16i32,
/*177779*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*177781*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*177784*/                  OPC_EmitMergeInputChains1_2,
/*177785*/                  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>>)), immAllZerosV:{ *:[v16i32] }) - Complexity = 35
                            // Dst: (VPANDNDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*177798*/                /*SwitchType*/ 26, MVT::v32i16,// ->177826
/*177800*/                  OPC_MoveParent,
/*177801*/                  OPC_MoveParent,
/*177802*/                  OPC_MoveChild2,
/*177803*/                  OPC_CheckImmAllZerosV,
/*177804*/                  OPC_MoveParent,
/*177805*/                  OPC_CheckType, MVT::v16i32,
/*177807*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*177809*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*177812*/                  OPC_EmitMergeInputChains1_2,
/*177813*/                  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:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v16i32] }) - Complexity = 35
                            // Dst: (VPANDNDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*177826*/                /*SwitchType*/ 26, MVT::v64i8,// ->177854
/*177828*/                  OPC_MoveParent,
/*177829*/                  OPC_MoveParent,
/*177830*/                  OPC_MoveChild2,
/*177831*/                  OPC_CheckImmAllZerosV,
/*177832*/                  OPC_MoveParent,
/*177833*/                  OPC_CheckType, MVT::v16i32,
/*177835*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*177837*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*177840*/                  OPC_EmitMergeInputChains1_2,
/*177841*/                  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:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v16i32] }) - Complexity = 35
                            // Dst: (VPANDNDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*177854*/                0, // EndSwitchType
/*177855*/              0, // EndSwitchOpcode
/*177856*/            /*Scope*/ 22|128,2/*278*/, /*->178136*/
/*177858*/              OPC_RecordChild0, // #1 = $ins
/*177859*/              OPC_MoveChild0,
/*177860*/              OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*177863*/              OPC_RecordChild0, // #2 = $src1
/*177864*/              OPC_MoveChild1,
/*177865*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*177868*/              OPC_RecordMemRef,
/*177869*/              OPC_RecordNode, // #3 = 'ld' chained node
/*177870*/              OPC_CheckFoldableChainNode,
/*177871*/              OPC_RecordChild1, // #4 = $src2
/*177872*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*177874*/              OPC_CheckPredicate, 9, // Predicate_load
/*177876*/              OPC_SwitchType /*6 cases */, 41, MVT::v2i64,// ->177920
/*177879*/                OPC_MoveParent,
/*177880*/                OPC_MoveChild2,
/*177881*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*177884*/                OPC_CheckType, MVT::iPTR,
/*177886*/                OPC_MoveParent,
/*177887*/                OPC_CheckType, MVT::v8i64,
/*177889*/                OPC_MoveParent,
/*177890*/                OPC_MoveParent,
/*177891*/                OPC_RecordChild2, // #5 = $src0
/*177892*/                OPC_CheckType, MVT::v16i32,
/*177894*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*177896*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*177899*/                OPC_EmitMergeInputChains, 1, 3, 
/*177902*/                OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*177905*/                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>>, (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))
/*177920*/              /*SwitchType*/ 41, MVT::v8i16,// ->177963
/*177922*/                OPC_MoveParent,
/*177923*/                OPC_MoveChild2,
/*177924*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*177927*/                OPC_CheckType, MVT::iPTR,
/*177929*/                OPC_MoveParent,
/*177930*/                OPC_CheckType, MVT::v32i16,
/*177932*/                OPC_MoveParent,
/*177933*/                OPC_MoveParent,
/*177934*/                OPC_RecordChild2, // #5 = $src0
/*177935*/                OPC_CheckType, MVT::v16i32,
/*177937*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*177939*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*177942*/                OPC_EmitMergeInputChains, 1, 3, 
/*177945*/                OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*177948*/                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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), VR512:{ *:[v16i32] }:$src0) - Complexity = 34
                          // Dst: (VINSERTI32x4Zrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR512:{ *:[v32i16] }:$ins))
/*177963*/              /*SwitchType*/ 41, MVT::v16i8,// ->178006
/*177965*/                OPC_MoveParent,
/*177966*/                OPC_MoveChild2,
/*177967*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*177970*/                OPC_CheckType, MVT::iPTR,
/*177972*/                OPC_MoveParent,
/*177973*/                OPC_CheckType, MVT::v64i8,
/*177975*/                OPC_MoveParent,
/*177976*/                OPC_MoveParent,
/*177977*/                OPC_RecordChild2, // #5 = $src0
/*177978*/                OPC_CheckType, MVT::v16i32,
/*177980*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*177982*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*177985*/                OPC_EmitMergeInputChains, 1, 3, 
/*177988*/                OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*177991*/                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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), VR512:{ *:[v16i32] }:$src0) - Complexity = 34
                          // Dst: (VINSERTI32x4Zrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR512:{ *:[v64i8] }:$ins))
/*178006*/              /*SwitchType*/ 41, MVT::v4i64,// ->178049
/*178008*/                OPC_MoveParent,
/*178009*/                OPC_MoveChild2,
/*178010*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*178013*/                OPC_CheckType, MVT::iPTR,
/*178015*/                OPC_MoveParent,
/*178016*/                OPC_CheckType, MVT::v8i64,
/*178018*/                OPC_MoveParent,
/*178019*/                OPC_MoveParent,
/*178020*/                OPC_RecordChild2, // #5 = $src0
/*178021*/                OPC_CheckType, MVT::v16i32,
/*178023*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*178025*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*178028*/                OPC_EmitMergeInputChains, 1, 3, 
/*178031*/                OPC_EmitNodeXForm, 16, 1, // INSERT_get_vinsert256_imm
/*178034*/                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>>, (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))
/*178049*/              /*SwitchType*/ 41, MVT::v16i16,// ->178092
/*178051*/                OPC_MoveParent,
/*178052*/                OPC_MoveChild2,
/*178053*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*178056*/                OPC_CheckType, MVT::iPTR,
/*178058*/                OPC_MoveParent,
/*178059*/                OPC_CheckType, MVT::v32i16,
/*178061*/                OPC_MoveParent,
/*178062*/                OPC_MoveParent,
/*178063*/                OPC_RecordChild2, // #5 = $src0
/*178064*/                OPC_CheckType, MVT::v16i32,
/*178066*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*178068*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*178071*/                OPC_EmitMergeInputChains, 1, 3, 
/*178074*/                OPC_EmitNodeXForm, 16, 1, // INSERT_get_vinsert256_imm
/*178077*/                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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$ins), VR512:{ *:[v16i32] }:$src0) - Complexity = 34
                          // Dst: (VINSERTI32x8Zrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } VR512:{ *:[v32i16] }:$ins))
/*178092*/              /*SwitchType*/ 41, MVT::v32i8,// ->178135
/*178094*/                OPC_MoveParent,
/*178095*/                OPC_MoveChild2,
/*178096*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*178099*/                OPC_CheckType, MVT::iPTR,
/*178101*/                OPC_MoveParent,
/*178102*/                OPC_CheckType, MVT::v64i8,
/*178104*/                OPC_MoveParent,
/*178105*/                OPC_MoveParent,
/*178106*/                OPC_RecordChild2, // #5 = $src0
/*178107*/                OPC_CheckType, MVT::v16i32,
/*178109*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*178111*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*178114*/                OPC_EmitMergeInputChains, 1, 3, 
/*178117*/                OPC_EmitNodeXForm, 16, 1, // INSERT_get_vinsert256_imm
/*178120*/                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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$ins), VR512:{ *:[v16i32] }:$src0) - Complexity = 34
                          // Dst: (VINSERTI32x8Zrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } VR512:{ *:[v64i8] }:$ins))
/*178135*/              0, // EndSwitchType
/*178136*/            /*Scope*/ 126|128,1/*254*/, /*->178392*/
/*178138*/              OPC_MoveChild0,
/*178139*/              OPC_SwitchOpcode /*3 cases */, 94, TARGET_VAL(X86ISD::SHUF128),// ->178237
/*178143*/                OPC_RecordChild0, // #1 = $src1
/*178144*/                OPC_MoveChild1,
/*178145*/                OPC_SwitchOpcode /*2 cases */, 43, TARGET_VAL(ISD::LOAD),// ->178192
/*178149*/                  OPC_RecordMemRef,
/*178150*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*178151*/                  OPC_CheckFoldableChainNode,
/*178152*/                  OPC_RecordChild1, // #3 = $src2
/*178153*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*178155*/                  OPC_CheckPredicate, 9, // Predicate_load
/*178157*/                  OPC_MoveParent,
/*178158*/                  OPC_RecordChild2, // #4 = $src3
/*178159*/                  OPC_MoveChild2,
/*178160*/                  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*178163*/                  OPC_MoveParent,
/*178164*/                  OPC_CheckType, MVT::v8i64,
/*178166*/                  OPC_MoveParent,
/*178167*/                  OPC_MoveParent,
/*178168*/                  OPC_RecordChild2, // #5 = $src0
/*178169*/                  OPC_CheckType, MVT::v16i32,
/*178171*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*178173*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*178176*/                  OPC_EmitMergeInputChains1_2,
/*178177*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI32X4Zrmik), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (X86Shuf128:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3)), VR512:{ *:[v16i32] }:$src0) - Complexity = 34
                            // Dst: (VSHUFI32X4Zrmik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*178192*/                /*SwitchOpcode*/ 41, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->178236
/*178195*/                  OPC_RecordMemRef,
/*178196*/                  OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*178197*/                  OPC_CheckFoldableChainNode,
/*178198*/                  OPC_RecordChild1, // #3 = $src2
/*178199*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*178201*/                  OPC_MoveParent,
/*178202*/                  OPC_RecordChild2, // #4 = $src3
/*178203*/                  OPC_MoveChild2,
/*178204*/                  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*178207*/                  OPC_MoveParent,
/*178208*/                  OPC_CheckType, MVT::v8i64,
/*178210*/                  OPC_MoveParent,
/*178211*/                  OPC_MoveParent,
/*178212*/                  OPC_RecordChild2, // #5 = $src0
/*178213*/                  OPC_CheckType, MVT::v16i32,
/*178215*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*178217*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*178220*/                  OPC_EmitMergeInputChains1_2,
/*178221*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI32X4Zrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (X86Shuf128:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src3)), VR512:{ *:[v16i32] }:$src0) - Complexity = 34
                            // Dst: (VSHUFI32X4Zrmbik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*178236*/                0, // EndSwitchOpcode
/*178237*/              /*SwitchOpcode*/ 115, TARGET_VAL(X86ISD::VALIGN),// ->178355
/*178240*/                OPC_RecordChild0, // #1 = $src1
/*178241*/                OPC_MoveChild1,
/*178242*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*178245*/                OPC_RecordMemRef,
/*178246*/                OPC_RecordNode, // #2 = 'ld' chained node
/*178247*/                OPC_CheckFoldableChainNode,
/*178248*/                OPC_RecordChild1, // #3 = $src2
/*178249*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*178251*/                OPC_CheckPredicate, 9, // Predicate_load
/*178253*/                OPC_MoveParent,
/*178254*/                OPC_RecordChild2, // #4 = $src3
/*178255*/                OPC_MoveChild2,
/*178256*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*178259*/                OPC_MoveParent,
/*178260*/                OPC_SwitchType /*3 cases */, 29, MVT::v8i64,// ->178292
/*178263*/                  OPC_MoveParent,
/*178264*/                  OPC_MoveParent,
/*178265*/                  OPC_RecordChild2, // #5 = $src0
/*178266*/                  OPC_CheckType, MVT::v16i32,
/*178268*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*178270*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*178273*/                  OPC_EmitMergeInputChains1_2,
/*178274*/                  OPC_EmitNodeXForm, 14, 4, // ValignqImm32XForm
/*178277*/                  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, (bitconvert:{ *:[v16i32] } (X86VAlign:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3)), VR512:{ *:[v16i32] }:$src0) - Complexity = 34
                            // Dst: (VALIGNDZrmik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (ValignqImm32XForm:{ *:[i8] } (timm:{ *:[i8] }):$src3))
/*178292*/                /*SwitchType*/ 29, MVT::v2i64,// ->178323
/*178294*/                  OPC_MoveParent,
/*178295*/                  OPC_MoveParent,
/*178296*/                  OPC_RecordChild2, // #5 = $src0
/*178297*/                  OPC_CheckType, MVT::v16i8,
/*178299*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*178301*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*178304*/                  OPC_EmitMergeInputChains1_2,
/*178305*/                  OPC_EmitNodeXForm, 17, 4, // ValignqImm8XForm
/*178308*/                  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, (bitconvert:{ *:[v16i8] } (X86VAlign:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3)), VR128X:{ *:[v16i8] }:$src0) - Complexity = 34
                            // Dst: (VPALIGNRZ128rmik:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (ValignqImm8XForm:{ *:[i8] } (timm:{ *:[i8] }):$src3))
/*178323*/                /*SwitchType*/ 29, MVT::v4i32,// ->178354
/*178325*/                  OPC_MoveParent,
/*178326*/                  OPC_MoveParent,
/*178327*/                  OPC_RecordChild2, // #5 = $src0
/*178328*/                  OPC_CheckType, MVT::v16i8,
/*178330*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*178332*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*178335*/                  OPC_EmitMergeInputChains1_2,
/*178336*/                  OPC_EmitNodeXForm, 18, 4, // ValigndImm8XForm
/*178339*/                  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, (bitconvert:{ *:[v16i8] } (X86VAlign:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3)), VR128X:{ *:[v16i8] }:$src0) - Complexity = 34
                            // Dst: (VPALIGNRZ128rmik:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (ValigndImm8XForm:{ *:[i8] } (timm:{ *:[i8] }):$src3))
/*178354*/                0, // EndSwitchType
/*178355*/              /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->178391
/*178358*/                OPC_RecordMemRef,
/*178359*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*178360*/                OPC_CheckFoldableChainNode,
/*178361*/                OPC_RecordChild1, // #2 = $src
/*178362*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*178364*/                OPC_CheckType, MVT::v8i64,
/*178366*/                OPC_MoveParent,
/*178367*/                OPC_MoveParent,
/*178368*/                OPC_MoveChild2,
/*178369*/                OPC_CheckImmAllZerosV,
/*178370*/                OPC_MoveParent,
/*178371*/                OPC_CheckType, MVT::v16i32,
/*178373*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*178375*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*178378*/                OPC_EmitMergeInputChains1_1,
/*178379*/                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] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                          // Dst: (VBROADCASTI32X2Zmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*178391*/              0, // EndSwitchOpcode
/*178392*/            0, /*End of Scope*/
/*178393*/          /*SwitchOpcode*/ 85, TARGET_VAL(X86ISD::MULTISHIFT),// ->178481
/*178396*/            OPC_RecordChild0, // #1 = $src1
/*178397*/            OPC_CheckChild0Type, MVT::v16i8,
/*178399*/            OPC_MoveChild1,
/*178400*/            OPC_SwitchOpcode /*2 cases */, 39, TARGET_VAL(ISD::BITCAST),// ->178443
/*178404*/              OPC_MoveChild0,
/*178405*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*178408*/              OPC_RecordMemRef,
/*178409*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*178410*/              OPC_CheckFoldableChainNode,
/*178411*/              OPC_RecordChild1, // #3 = $src2
/*178412*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*178414*/              OPC_CheckType, MVT::v2i64,
/*178416*/              OPC_MoveParent,
/*178417*/              OPC_MoveParent,
/*178418*/              OPC_MoveParent,
/*178419*/              OPC_MoveChild2,
/*178420*/              OPC_CheckImmAllZerosV,
/*178421*/              OPC_MoveParent,
/*178422*/              OPC_CheckType, MVT::v16i8,
/*178424*/              OPC_CheckPatternPredicate, 181, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*178426*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*178429*/              OPC_EmitMergeInputChains1_2,
/*178430*/              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] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>)), immAllZerosV:{ *:[v16i8] }) - Complexity = 35
                        // Dst: (VPMULTISHIFTQBZ128rmbkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*178443*/            /*SwitchOpcode*/ 34, TARGET_VAL(ISD::LOAD),// ->178480
/*178446*/              OPC_RecordMemRef,
/*178447*/              OPC_RecordNode, // #2 = 'ld' chained node
/*178448*/              OPC_CheckFoldableChainNode,
/*178449*/              OPC_RecordChild1, // #3 = $src2
/*178450*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*178452*/              OPC_CheckPredicate, 9, // Predicate_load
/*178454*/              OPC_MoveParent,
/*178455*/              OPC_MoveParent,
/*178456*/              OPC_MoveChild2,
/*178457*/              OPC_CheckImmAllZerosV,
/*178458*/              OPC_MoveParent,
/*178459*/              OPC_CheckType, MVT::v16i8,
/*178461*/              OPC_CheckPatternPredicate, 181, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*178463*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*178466*/              OPC_EmitMergeInputChains1_2,
/*178467*/              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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i8] }) - Complexity = 32
                        // Dst: (VPMULTISHIFTQBZ128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*178480*/            0, // EndSwitchOpcode
/*178481*/          /*SwitchOpcode*/ 110, TARGET_VAL(X86ISD::VSRLI),// ->178594
/*178484*/            OPC_MoveChild0,
/*178485*/            OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->178552
/*178489*/              OPC_RecordMemRef,
/*178490*/              OPC_RecordNode, // #1 = 'ld' chained node
/*178491*/              OPC_CheckFoldableChainNode,
/*178492*/              OPC_RecordChild1, // #2 = $src1
/*178493*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*178495*/              OPC_CheckPredicate, 9, // Predicate_load
/*178497*/              OPC_MoveParent,
/*178498*/              OPC_RecordChild1, // #3 = $src2
/*178499*/              OPC_MoveChild1,
/*178500*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*178503*/              OPC_MoveParent,
/*178504*/              OPC_MoveParent,
/*178505*/              OPC_MoveChild2,
/*178506*/              OPC_CheckImmAllZerosV,
/*178507*/              OPC_MoveParent,
/*178508*/              OPC_SwitchType /*2 cases */, 19, MVT::v16i32,// ->178530
/*178511*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*178513*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*178516*/                OPC_EmitMergeInputChains1_1,
/*178517*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vsrli:{ *:[v16i32] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v16i32] }) - Complexity = 35
                          // Dst: (VPSRLDZmikz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*178530*/              /*SwitchType*/ 19, MVT::v16i16,// ->178551
/*178532*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*178534*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*178537*/                OPC_EmitMergeInputChains1_1,
/*178538*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLWZ256mikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86vsrli:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v16i16] }) - Complexity = 35
                          // Dst: (VPSRLWZ256mikz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*178551*/              0, // EndSwitchType
/*178552*/            /*SwitchOpcode*/ 38, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->178593
/*178555*/              OPC_RecordMemRef,
/*178556*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*178557*/              OPC_CheckFoldableChainNode,
/*178558*/              OPC_RecordChild1, // #2 = $src1
/*178559*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*178561*/              OPC_MoveParent,
/*178562*/              OPC_RecordChild1, // #3 = $src2
/*178563*/              OPC_MoveChild1,
/*178564*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*178567*/              OPC_MoveParent,
/*178568*/              OPC_MoveParent,
/*178569*/              OPC_MoveChild2,
/*178570*/              OPC_CheckImmAllZerosV,
/*178571*/              OPC_MoveParent,
/*178572*/              OPC_CheckType, MVT::v16i32,
/*178574*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*178576*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*178579*/              OPC_EmitMergeInputChains1_1,
/*178580*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vsrli:{ *:[v16i32] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v16i32] }) - Complexity = 35
                        // Dst: (VPSRLDZmbikz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*178593*/            0, // EndSwitchOpcode
/*178594*/          /*SwitchOpcode*/ 110, TARGET_VAL(X86ISD::VSHLI),// ->178707
/*178597*/            OPC_MoveChild0,
/*178598*/            OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->178665
/*178602*/              OPC_RecordMemRef,
/*178603*/              OPC_RecordNode, // #1 = 'ld' chained node
/*178604*/              OPC_CheckFoldableChainNode,
/*178605*/              OPC_RecordChild1, // #2 = $src1
/*178606*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*178608*/              OPC_CheckPredicate, 9, // Predicate_load
/*178610*/              OPC_MoveParent,
/*178611*/              OPC_RecordChild1, // #3 = $src2
/*178612*/              OPC_MoveChild1,
/*178613*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*178616*/              OPC_MoveParent,
/*178617*/              OPC_MoveParent,
/*178618*/              OPC_MoveChild2,
/*178619*/              OPC_CheckImmAllZerosV,
/*178620*/              OPC_MoveParent,
/*178621*/              OPC_SwitchType /*2 cases */, 19, MVT::v16i32,// ->178643
/*178624*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*178626*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*178629*/                OPC_EmitMergeInputChains1_1,
/*178630*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vshli:{ *:[v16i32] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v16i32] }) - Complexity = 35
                          // Dst: (VPSLLDZmikz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*178643*/              /*SwitchType*/ 19, MVT::v16i16,// ->178664
/*178645*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*178647*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*178650*/                OPC_EmitMergeInputChains1_1,
/*178651*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLWZ256mikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86vshli:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v16i16] }) - Complexity = 35
                          // Dst: (VPSLLWZ256mikz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*178664*/              0, // EndSwitchType
/*178665*/            /*SwitchOpcode*/ 38, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->178706
/*178668*/              OPC_RecordMemRef,
/*178669*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*178670*/              OPC_CheckFoldableChainNode,
/*178671*/              OPC_RecordChild1, // #2 = $src1
/*178672*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*178674*/              OPC_MoveParent,
/*178675*/              OPC_RecordChild1, // #3 = $src2
/*178676*/              OPC_MoveChild1,
/*178677*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*178680*/              OPC_MoveParent,
/*178681*/              OPC_MoveParent,
/*178682*/              OPC_MoveChild2,
/*178683*/              OPC_CheckImmAllZerosV,
/*178684*/              OPC_MoveParent,
/*178685*/              OPC_CheckType, MVT::v16i32,
/*178687*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*178689*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*178692*/              OPC_EmitMergeInputChains1_1,
/*178693*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vshli:{ *:[v16i32] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v16i32] }) - Complexity = 35
                        // Dst: (VPSLLDZmbikz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*178706*/            0, // EndSwitchOpcode
/*178707*/          /*SwitchOpcode*/ 110, TARGET_VAL(X86ISD::VSRAI),// ->178820
/*178710*/            OPC_MoveChild0,
/*178711*/            OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->178778
/*178715*/              OPC_RecordMemRef,
/*178716*/              OPC_RecordNode, // #1 = 'ld' chained node
/*178717*/              OPC_CheckFoldableChainNode,
/*178718*/              OPC_RecordChild1, // #2 = $src1
/*178719*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*178721*/              OPC_CheckPredicate, 9, // Predicate_load
/*178723*/              OPC_MoveParent,
/*178724*/              OPC_RecordChild1, // #3 = $src2
/*178725*/              OPC_MoveChild1,
/*178726*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*178729*/              OPC_MoveParent,
/*178730*/              OPC_MoveParent,
/*178731*/              OPC_MoveChild2,
/*178732*/              OPC_CheckImmAllZerosV,
/*178733*/              OPC_MoveParent,
/*178734*/              OPC_SwitchType /*2 cases */, 19, MVT::v16i32,// ->178756
/*178737*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*178739*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*178742*/                OPC_EmitMergeInputChains1_1,
/*178743*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vsrai:{ *:[v16i32] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v16i32] }) - Complexity = 35
                          // Dst: (VPSRADZmikz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*178756*/              /*SwitchType*/ 19, MVT::v16i16,// ->178777
/*178758*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*178760*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*178763*/                OPC_EmitMergeInputChains1_1,
/*178764*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAWZ256mikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86vsrai:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v16i16] }) - Complexity = 35
                          // Dst: (VPSRAWZ256mikz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*178777*/              0, // EndSwitchType
/*178778*/            /*SwitchOpcode*/ 38, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->178819
/*178781*/              OPC_RecordMemRef,
/*178782*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*178783*/              OPC_CheckFoldableChainNode,
/*178784*/              OPC_RecordChild1, // #2 = $src1
/*178785*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*178787*/              OPC_MoveParent,
/*178788*/              OPC_RecordChild1, // #3 = $src2
/*178789*/              OPC_MoveChild1,
/*178790*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*178793*/              OPC_MoveParent,
/*178794*/              OPC_MoveParent,
/*178795*/              OPC_MoveChild2,
/*178796*/              OPC_CheckImmAllZerosV,
/*178797*/              OPC_MoveParent,
/*178798*/              OPC_CheckType, MVT::v16i32,
/*178800*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*178802*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*178805*/              OPC_EmitMergeInputChains1_1,
/*178806*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vsrai:{ *:[v16i32] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v16i32] }) - Complexity = 35
                        // Dst: (VPSRADZmbikz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*178819*/            0, // EndSwitchOpcode
/*178820*/          /*SwitchOpcode*/ 87, TARGET_VAL(X86ISD::VROTRI),// ->178910
/*178823*/            OPC_MoveChild0,
/*178824*/            OPC_SwitchOpcode /*2 cases */, 40, TARGET_VAL(ISD::LOAD),// ->178868
/*178828*/              OPC_RecordMemRef,
/*178829*/              OPC_RecordNode, // #1 = 'ld' chained node
/*178830*/              OPC_CheckFoldableChainNode,
/*178831*/              OPC_RecordChild1, // #2 = $src1
/*178832*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*178834*/              OPC_CheckPredicate, 9, // Predicate_load
/*178836*/              OPC_MoveParent,
/*178837*/              OPC_RecordChild1, // #3 = $src2
/*178838*/              OPC_MoveChild1,
/*178839*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*178842*/              OPC_MoveParent,
/*178843*/              OPC_MoveParent,
/*178844*/              OPC_MoveChild2,
/*178845*/              OPC_CheckImmAllZerosV,
/*178846*/              OPC_MoveParent,
/*178847*/              OPC_CheckType, MVT::v16i32,
/*178849*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*178851*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*178854*/              OPC_EmitMergeInputChains1_1,
/*178855*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORDZmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vrotri:{ *:[v16i32] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v16i32] }) - Complexity = 35
                        // Dst: (VPRORDZmikz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*178868*/            /*SwitchOpcode*/ 38, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->178909
/*178871*/              OPC_RecordMemRef,
/*178872*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*178873*/              OPC_CheckFoldableChainNode,
/*178874*/              OPC_RecordChild1, // #2 = $src1
/*178875*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*178877*/              OPC_MoveParent,
/*178878*/              OPC_RecordChild1, // #3 = $src2
/*178879*/              OPC_MoveChild1,
/*178880*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*178883*/              OPC_MoveParent,
/*178884*/              OPC_MoveParent,
/*178885*/              OPC_MoveChild2,
/*178886*/              OPC_CheckImmAllZerosV,
/*178887*/              OPC_MoveParent,
/*178888*/              OPC_CheckType, MVT::v16i32,
/*178890*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*178892*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*178895*/              OPC_EmitMergeInputChains1_1,
/*178896*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORDZmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vrotri:{ *:[v16i32] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v16i32] }) - Complexity = 35
                        // Dst: (VPRORDZmbikz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*178909*/            0, // EndSwitchOpcode
/*178910*/          /*SwitchOpcode*/ 87, TARGET_VAL(X86ISD::VROTLI),// ->179000
/*178913*/            OPC_MoveChild0,
/*178914*/            OPC_SwitchOpcode /*2 cases */, 40, TARGET_VAL(ISD::LOAD),// ->178958
/*178918*/              OPC_RecordMemRef,
/*178919*/              OPC_RecordNode, // #1 = 'ld' chained node
/*178920*/              OPC_CheckFoldableChainNode,
/*178921*/              OPC_RecordChild1, // #2 = $src1
/*178922*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*178924*/              OPC_CheckPredicate, 9, // Predicate_load
/*178926*/              OPC_MoveParent,
/*178927*/              OPC_RecordChild1, // #3 = $src2
/*178928*/              OPC_MoveChild1,
/*178929*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*178932*/              OPC_MoveParent,
/*178933*/              OPC_MoveParent,
/*178934*/              OPC_MoveChild2,
/*178935*/              OPC_CheckImmAllZerosV,
/*178936*/              OPC_MoveParent,
/*178937*/              OPC_CheckType, MVT::v16i32,
/*178939*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*178941*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*178944*/              OPC_EmitMergeInputChains1_1,
/*178945*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLDZmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vrotli:{ *:[v16i32] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v16i32] }) - Complexity = 35
                        // Dst: (VPROLDZmikz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*178958*/            /*SwitchOpcode*/ 38, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->178999
/*178961*/              OPC_RecordMemRef,
/*178962*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*178963*/              OPC_CheckFoldableChainNode,
/*178964*/              OPC_RecordChild1, // #2 = $src1
/*178965*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*178967*/              OPC_MoveParent,
/*178968*/              OPC_RecordChild1, // #3 = $src2
/*178969*/              OPC_MoveChild1,
/*178970*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*178973*/              OPC_MoveParent,
/*178974*/              OPC_MoveParent,
/*178975*/              OPC_MoveChild2,
/*178976*/              OPC_CheckImmAllZerosV,
/*178977*/              OPC_MoveParent,
/*178978*/              OPC_CheckType, MVT::v16i32,
/*178980*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*178982*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*178985*/              OPC_EmitMergeInputChains1_1,
/*178986*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLDZmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vrotli:{ *:[v16i32] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v16i32] }) - Complexity = 35
                        // Dst: (VPROLDZmbikz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*178999*/            0, // EndSwitchOpcode
/*179000*/          /*SwitchOpcode*/ 87, TARGET_VAL(X86ISD::PSHUFD),// ->179090
/*179003*/            OPC_MoveChild0,
/*179004*/            OPC_SwitchOpcode /*2 cases */, 40, TARGET_VAL(ISD::LOAD),// ->179048
/*179008*/              OPC_RecordMemRef,
/*179009*/              OPC_RecordNode, // #1 = 'ld' chained node
/*179010*/              OPC_CheckFoldableChainNode,
/*179011*/              OPC_RecordChild1, // #2 = $src1
/*179012*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*179014*/              OPC_CheckPredicate, 9, // Predicate_load
/*179016*/              OPC_MoveParent,
/*179017*/              OPC_RecordChild1, // #3 = $src2
/*179018*/              OPC_MoveChild1,
/*179019*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*179022*/              OPC_MoveParent,
/*179023*/              OPC_MoveParent,
/*179024*/              OPC_MoveChild2,
/*179025*/              OPC_CheckImmAllZerosV,
/*179026*/              OPC_MoveParent,
/*179027*/              OPC_CheckType, MVT::v16i32,
/*179029*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*179031*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*179034*/              OPC_EmitMergeInputChains1_1,
/*179035*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFDZmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86PShufd:{ *:[v16i32] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v16i32] }) - Complexity = 35
                        // Dst: (VPSHUFDZmikz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*179048*/            /*SwitchOpcode*/ 38, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->179089
/*179051*/              OPC_RecordMemRef,
/*179052*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*179053*/              OPC_CheckFoldableChainNode,
/*179054*/              OPC_RecordChild1, // #2 = $src1
/*179055*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*179057*/              OPC_MoveParent,
/*179058*/              OPC_RecordChild1, // #3 = $src2
/*179059*/              OPC_MoveChild1,
/*179060*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*179063*/              OPC_MoveParent,
/*179064*/              OPC_MoveParent,
/*179065*/              OPC_MoveChild2,
/*179066*/              OPC_CheckImmAllZerosV,
/*179067*/              OPC_MoveParent,
/*179068*/              OPC_CheckType, MVT::v16i32,
/*179070*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*179072*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*179075*/              OPC_EmitMergeInputChains1_1,
/*179076*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFDZmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86PShufd:{ *:[v16i32] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v16i32] }) - Complexity = 35
                        // Dst: (VPSHUFDZmbikz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*179089*/            0, // EndSwitchOpcode
/*179090*/          /*SwitchOpcode*/ 44, TARGET_VAL(X86ISD::PSHUFHW),// ->179137
/*179093*/            OPC_MoveChild0,
/*179094*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*179097*/            OPC_RecordMemRef,
/*179098*/            OPC_RecordNode, // #1 = 'ld' chained node
/*179099*/            OPC_CheckFoldableChainNode,
/*179100*/            OPC_RecordChild1, // #2 = $src1
/*179101*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*179103*/            OPC_CheckPredicate, 9, // Predicate_load
/*179105*/            OPC_MoveParent,
/*179106*/            OPC_RecordChild1, // #3 = $src2
/*179107*/            OPC_MoveChild1,
/*179108*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*179111*/            OPC_MoveParent,
/*179112*/            OPC_MoveParent,
/*179113*/            OPC_MoveChild2,
/*179114*/            OPC_CheckImmAllZerosV,
/*179115*/            OPC_MoveParent,
/*179116*/            OPC_CheckType, MVT::v16i16,
/*179118*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*179120*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*179123*/            OPC_EmitMergeInputChains1_1,
/*179124*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFHWZ256mikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                      // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86PShufhw:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v16i16] }) - Complexity = 35
                      // Dst: (VPSHUFHWZ256mikz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*179137*/          /*SwitchOpcode*/ 44, TARGET_VAL(X86ISD::PSHUFLW),// ->179184
/*179140*/            OPC_MoveChild0,
/*179141*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*179144*/            OPC_RecordMemRef,
/*179145*/            OPC_RecordNode, // #1 = 'ld' chained node
/*179146*/            OPC_CheckFoldableChainNode,
/*179147*/            OPC_RecordChild1, // #2 = $src1
/*179148*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*179150*/            OPC_CheckPredicate, 9, // Predicate_load
/*179152*/            OPC_MoveParent,
/*179153*/            OPC_RecordChild1, // #3 = $src2
/*179154*/            OPC_MoveChild1,
/*179155*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*179158*/            OPC_MoveParent,
/*179159*/            OPC_MoveParent,
/*179160*/            OPC_MoveChild2,
/*179161*/            OPC_CheckImmAllZerosV,
/*179162*/            OPC_MoveParent,
/*179163*/            OPC_CheckType, MVT::v16i16,
/*179165*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*179167*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*179170*/            OPC_EmitMergeInputChains1_1,
/*179171*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFLWZ256mikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                      // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86PShuflw:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v16i16] }) - Complexity = 35
                      // Dst: (VPSHUFLWZ256mikz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*179184*/          /*SwitchOpcode*/ 90, TARGET_VAL(X86ISD::VALIGN),// ->179277
/*179187*/            OPC_RecordChild0, // #1 = $src1
/*179188*/            OPC_MoveChild1,
/*179189*/            OPC_SwitchOpcode /*2 cases */, 41, TARGET_VAL(ISD::LOAD),// ->179234
/*179193*/              OPC_RecordMemRef,
/*179194*/              OPC_RecordNode, // #2 = 'ld' chained node
/*179195*/              OPC_CheckFoldableChainNode,
/*179196*/              OPC_RecordChild1, // #3 = $src2
/*179197*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*179199*/              OPC_CheckPredicate, 9, // Predicate_load
/*179201*/              OPC_MoveParent,
/*179202*/              OPC_RecordChild2, // #4 = $src3
/*179203*/              OPC_MoveChild2,
/*179204*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*179207*/              OPC_MoveParent,
/*179208*/              OPC_MoveParent,
/*179209*/              OPC_MoveChild2,
/*179210*/              OPC_CheckImmAllZerosV,
/*179211*/              OPC_MoveParent,
/*179212*/              OPC_CheckType, MVT::v16i32,
/*179214*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*179216*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*179219*/              OPC_EmitMergeInputChains1_2,
/*179220*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VAlign:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v16i32] }) - Complexity = 35
                        // Dst: (VALIGNDZrmikz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*179234*/            /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->179276
/*179237*/              OPC_RecordMemRef,
/*179238*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*179239*/              OPC_CheckFoldableChainNode,
/*179240*/              OPC_RecordChild1, // #3 = $src2
/*179241*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*179243*/              OPC_MoveParent,
/*179244*/              OPC_RecordChild2, // #4 = $src3
/*179245*/              OPC_MoveChild2,
/*179246*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*179249*/              OPC_MoveParent,
/*179250*/              OPC_MoveParent,
/*179251*/              OPC_MoveChild2,
/*179252*/              OPC_CheckImmAllZerosV,
/*179253*/              OPC_MoveParent,
/*179254*/              OPC_CheckType, MVT::v16i32,
/*179256*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*179258*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*179261*/              OPC_EmitMergeInputChains1_2,
/*179262*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VAlign:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v16i32] }) - Complexity = 35
                        // Dst: (VALIGNDZrmbikz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*179276*/            0, // EndSwitchOpcode
/*179277*/          /*SwitchOpcode*/ 46, TARGET_VAL(X86ISD::PALIGNR),// ->179326
/*179280*/            OPC_RecordChild0, // #1 = $src1
/*179281*/            OPC_MoveChild1,
/*179282*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*179285*/            OPC_RecordMemRef,
/*179286*/            OPC_RecordNode, // #2 = 'ld' chained node
/*179287*/            OPC_CheckFoldableChainNode,
/*179288*/            OPC_RecordChild1, // #3 = $src2
/*179289*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*179291*/            OPC_CheckPredicate, 9, // Predicate_load
/*179293*/            OPC_MoveParent,
/*179294*/            OPC_RecordChild2, // #4 = $src3
/*179295*/            OPC_MoveChild2,
/*179296*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*179299*/            OPC_MoveParent,
/*179300*/            OPC_MoveParent,
/*179301*/            OPC_MoveChild2,
/*179302*/            OPC_CheckImmAllZerosV,
/*179303*/            OPC_MoveParent,
/*179304*/            OPC_CheckType, MVT::v16i8,
/*179306*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*179308*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*179311*/            OPC_EmitMergeInputChains1_2,
/*179312*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPALIGNRZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                      // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86PAlignr:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v16i8] }) - Complexity = 35
                      // Dst: (VPALIGNRZ128rmikz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*179326*/          /*SwitchOpcode*/ 46, TARGET_VAL(X86ISD::DBPSADBW),// ->179375
/*179329*/            OPC_RecordChild0, // #1 = $src1
/*179330*/            OPC_MoveChild1,
/*179331*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*179334*/            OPC_RecordMemRef,
/*179335*/            OPC_RecordNode, // #2 = 'ld' chained node
/*179336*/            OPC_CheckFoldableChainNode,
/*179337*/            OPC_RecordChild1, // #3 = $src2
/*179338*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*179340*/            OPC_CheckPredicate, 9, // Predicate_load
/*179342*/            OPC_MoveParent,
/*179343*/            OPC_RecordChild2, // #4 = $src3
/*179344*/            OPC_MoveChild2,
/*179345*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*179348*/            OPC_MoveParent,
/*179349*/            OPC_MoveParent,
/*179350*/            OPC_MoveChild2,
/*179351*/            OPC_CheckImmAllZerosV,
/*179352*/            OPC_MoveParent,
/*179353*/            OPC_CheckType, MVT::v16i16,
/*179355*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*179357*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*179360*/            OPC_EmitMergeInputChains1_2,
/*179361*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDBPSADBWZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                      // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86dbpsadbw:{ *:[v16i16] } VR256X:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v16i16] }) - Complexity = 35
                      // Dst: (VDBPSADBWZ256rmikz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*179375*/          /*SwitchOpcode*/ 48|128,2/*304*/, TARGET_VAL(X86ISD::VPTERNLOG),// ->179683
/*179379*/            OPC_Scope, 97, /*->179478*/ // 5 children in Scope
/*179381*/              OPC_RecordChild0, // #1 = $src1
/*179382*/              OPC_RecordChild1, // #2 = $src2
/*179383*/              OPC_MoveChild2,
/*179384*/              OPC_SwitchOpcode /*2 cases */, 44, TARGET_VAL(ISD::LOAD),// ->179432
/*179388*/                OPC_RecordMemRef,
/*179389*/                OPC_RecordNode, // #3 = 'ld' chained node
/*179390*/                OPC_CheckFoldableChainNode,
/*179391*/                OPC_RecordChild1, // #4 = $src3
/*179392*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*179394*/                OPC_CheckPredicate, 9, // Predicate_load
/*179396*/                OPC_MoveParent,
/*179397*/                OPC_RecordChild3, // #5 = $src4
/*179398*/                OPC_MoveChild3,
/*179399*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*179402*/                OPC_MoveParent,
/*179403*/                OPC_MoveParent,
/*179404*/                OPC_MoveChild2,
/*179405*/                OPC_CheckImmAllZerosV,
/*179406*/                OPC_MoveParent,
/*179407*/                OPC_CheckType, MVT::v16i32,
/*179409*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*179411*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*179414*/                OPC_EmitMergeInputChains, 1, 3, 
/*179417*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 5, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vpternlog:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src4), immAllZerosV:{ *:[v16i32] }) - Complexity = 35
                          // Dst: (VPTERNLOGDZrmikz:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i8] }):$src4)
/*179432*/              /*SwitchOpcode*/ 42, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->179477
/*179435*/                OPC_RecordMemRef,
/*179436*/                OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*179437*/                OPC_CheckFoldableChainNode,
/*179438*/                OPC_RecordChild1, // #4 = $src3
/*179439*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*179441*/                OPC_MoveParent,
/*179442*/                OPC_RecordChild3, // #5 = $src4
/*179443*/                OPC_MoveChild3,
/*179444*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*179447*/                OPC_MoveParent,
/*179448*/                OPC_MoveParent,
/*179449*/                OPC_MoveChild2,
/*179450*/                OPC_CheckImmAllZerosV,
/*179451*/                OPC_MoveParent,
/*179452*/                OPC_CheckType, MVT::v16i32,
/*179454*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*179456*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*179459*/                OPC_EmitMergeInputChains, 1, 3, 
/*179462*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 5, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vpternlog:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src4), immAllZerosV:{ *:[v16i32] }) - Complexity = 35
                          // Dst: (VPTERNLOGDZrmbikz:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i8] }):$src4)
/*179477*/              0, // EndSwitchOpcode
/*179478*/            /*Scope*/ 51, /*->179530*/
/*179479*/              OPC_MoveChild0,
/*179480*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*179483*/              OPC_RecordMemRef,
/*179484*/              OPC_RecordNode, // #1 = 'ld' chained node
/*179485*/              OPC_CheckFoldableChainNode,
/*179486*/              OPC_RecordChild1, // #2 = $src3
/*179487*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*179489*/              OPC_CheckPredicate, 9, // Predicate_load
/*179491*/              OPC_MoveParent,
/*179492*/              OPC_RecordChild1, // #3 = $src2
/*179493*/              OPC_RecordChild2, // #4 = $src1
/*179494*/              OPC_RecordChild3, // #5 = $src4
/*179495*/              OPC_MoveChild3,
/*179496*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*179499*/              OPC_MoveParent,
/*179500*/              OPC_MoveParent,
/*179501*/              OPC_MoveChild2,
/*179502*/              OPC_CheckImmAllZerosV,
/*179503*/              OPC_MoveParent,
/*179504*/              OPC_CheckType, MVT::v16i32,
/*179506*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*179508*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*179511*/              OPC_EmitMergeInputChains1_1,
/*179512*/              OPC_EmitNodeXForm, 19, 5, // VPTERNLOG321_imm8
/*179515*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 9/*#Ops*/, 4, 0, 3, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vpternlog:{ *:[v16i32] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src1, (timm:{ *:[i8] }):$src4), immAllZerosV:{ *:[v16i32] }) - Complexity = 35
                        // Dst: (VPTERNLOGDZrmikz:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*179530*/            /*Scope*/ 51, /*->179582*/
/*179531*/              OPC_RecordChild0, // #1 = $src1
/*179532*/              OPC_MoveChild1,
/*179533*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*179536*/              OPC_RecordMemRef,
/*179537*/              OPC_RecordNode, // #2 = 'ld' chained node
/*179538*/              OPC_CheckFoldableChainNode,
/*179539*/              OPC_RecordChild1, // #3 = $src3
/*179540*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*179542*/              OPC_CheckPredicate, 9, // Predicate_load
/*179544*/              OPC_MoveParent,
/*179545*/              OPC_RecordChild2, // #4 = $src2
/*179546*/              OPC_RecordChild3, // #5 = $src4
/*179547*/              OPC_MoveChild3,
/*179548*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*179551*/              OPC_MoveParent,
/*179552*/              OPC_MoveParent,
/*179553*/              OPC_MoveChild2,
/*179554*/              OPC_CheckImmAllZerosV,
/*179555*/              OPC_MoveParent,
/*179556*/              OPC_CheckType, MVT::v16i32,
/*179558*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*179560*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*179563*/              OPC_EmitMergeInputChains1_2,
/*179564*/              OPC_EmitNodeXForm, 20, 5, // VPTERNLOG132_imm8
/*179567*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 9/*#Ops*/, 1, 0, 4, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vpternlog:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16i32] }:$src2, (timm:{ *:[i8] }):$src4), immAllZerosV:{ *:[v16i32] }) - Complexity = 35
                        // Dst: (VPTERNLOGDZrmikz:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*179582*/            /*Scope*/ 49, /*->179632*/
/*179583*/              OPC_MoveChild0,
/*179584*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*179587*/              OPC_RecordMemRef,
/*179588*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*179589*/              OPC_CheckFoldableChainNode,
/*179590*/              OPC_RecordChild1, // #2 = $src3
/*179591*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*179593*/              OPC_MoveParent,
/*179594*/              OPC_RecordChild1, // #3 = $src2
/*179595*/              OPC_RecordChild2, // #4 = $src1
/*179596*/              OPC_RecordChild3, // #5 = $src4
/*179597*/              OPC_MoveChild3,
/*179598*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*179601*/              OPC_MoveParent,
/*179602*/              OPC_MoveParent,
/*179603*/              OPC_MoveChild2,
/*179604*/              OPC_CheckImmAllZerosV,
/*179605*/              OPC_MoveParent,
/*179606*/              OPC_CheckType, MVT::v16i32,
/*179608*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*179610*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*179613*/              OPC_EmitMergeInputChains1_1,
/*179614*/              OPC_EmitNodeXForm, 19, 5, // VPTERNLOG321_imm8
/*179617*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 9/*#Ops*/, 4, 0, 3, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vpternlog:{ *:[v16i32] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src1, (timm:{ *:[i8] }):$src4), immAllZerosV:{ *:[v16i32] }) - Complexity = 35
                        // Dst: (VPTERNLOGDZrmbikz:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*179632*/            /*Scope*/ 49, /*->179682*/
/*179633*/              OPC_RecordChild0, // #1 = $src1
/*179634*/              OPC_MoveChild1,
/*179635*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*179638*/              OPC_RecordMemRef,
/*179639*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*179640*/              OPC_CheckFoldableChainNode,
/*179641*/              OPC_RecordChild1, // #3 = $src3
/*179642*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*179644*/              OPC_MoveParent,
/*179645*/              OPC_RecordChild2, // #4 = $src2
/*179646*/              OPC_RecordChild3, // #5 = $src4
/*179647*/              OPC_MoveChild3,
/*179648*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*179651*/              OPC_MoveParent,
/*179652*/              OPC_MoveParent,
/*179653*/              OPC_MoveChild2,
/*179654*/              OPC_CheckImmAllZerosV,
/*179655*/              OPC_MoveParent,
/*179656*/              OPC_CheckType, MVT::v16i32,
/*179658*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*179660*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*179663*/              OPC_EmitMergeInputChains1_2,
/*179664*/              OPC_EmitNodeXForm, 20, 5, // VPTERNLOG132_imm8
/*179667*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 9/*#Ops*/, 1, 0, 4, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vpternlog:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16i32] }:$src2, (timm:{ *:[i8] }):$src4), immAllZerosV:{ *:[v16i32] }) - Complexity = 35
                        // Dst: (VPTERNLOGDZrmbikz:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*179682*/            0, /*End of Scope*/
/*179683*/          /*SwitchOpcode*/ 114, TARGET_VAL(X86ISD::VSHLD),// ->179800
/*179686*/            OPC_RecordChild0, // #1 = $src1
/*179687*/            OPC_MoveChild1,
/*179688*/            OPC_SwitchOpcode /*2 cases */, 65, TARGET_VAL(ISD::LOAD),// ->179757
/*179692*/              OPC_RecordMemRef,
/*179693*/              OPC_RecordNode, // #2 = 'ld' chained node
/*179694*/              OPC_CheckFoldableChainNode,
/*179695*/              OPC_RecordChild1, // #3 = $src2
/*179696*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*179698*/              OPC_CheckPredicate, 9, // Predicate_load
/*179700*/              OPC_MoveParent,
/*179701*/              OPC_RecordChild2, // #4 = $src3
/*179702*/              OPC_MoveChild2,
/*179703*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*179706*/              OPC_MoveParent,
/*179707*/              OPC_MoveParent,
/*179708*/              OPC_MoveChild2,
/*179709*/              OPC_CheckImmAllZerosV,
/*179710*/              OPC_MoveParent,
/*179711*/              OPC_SwitchType /*2 cases */, 20, MVT::v16i16,// ->179734
/*179714*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*179716*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*179719*/                OPC_EmitMergeInputChains1_2,
/*179720*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDWZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86VShld:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v16i16] }) - Complexity = 35
                          // Dst: (VPSHLDWZ256rmikz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*179734*/              /*SwitchType*/ 20, MVT::v16i32,// ->179756
/*179736*/                OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*179738*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*179741*/                OPC_EmitMergeInputChains1_2,
/*179742*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDDZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VShld:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v16i32] }) - Complexity = 35
                          // Dst: (VPSHLDDZrmikz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*179756*/              0, // EndSwitchType
/*179757*/            /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->179799
/*179760*/              OPC_RecordMemRef,
/*179761*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*179762*/              OPC_CheckFoldableChainNode,
/*179763*/              OPC_RecordChild1, // #3 = $src2
/*179764*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*179766*/              OPC_MoveParent,
/*179767*/              OPC_RecordChild2, // #4 = $src3
/*179768*/              OPC_MoveChild2,
/*179769*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*179772*/              OPC_MoveParent,
/*179773*/              OPC_MoveParent,
/*179774*/              OPC_MoveChild2,
/*179775*/              OPC_CheckImmAllZerosV,
/*179776*/              OPC_MoveParent,
/*179777*/              OPC_CheckType, MVT::v16i32,
/*179779*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*179781*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*179784*/              OPC_EmitMergeInputChains1_2,
/*179785*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDDZrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VShld:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v16i32] }) - Complexity = 35
                        // Dst: (VPSHLDDZrmbikz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*179799*/            0, // EndSwitchOpcode
/*179800*/          /*SwitchOpcode*/ 114, TARGET_VAL(X86ISD::VSHRD),// ->179917
/*179803*/            OPC_RecordChild0, // #1 = $src1
/*179804*/            OPC_MoveChild1,
/*179805*/            OPC_SwitchOpcode /*2 cases */, 65, TARGET_VAL(ISD::LOAD),// ->179874
/*179809*/              OPC_RecordMemRef,
/*179810*/              OPC_RecordNode, // #2 = 'ld' chained node
/*179811*/              OPC_CheckFoldableChainNode,
/*179812*/              OPC_RecordChild1, // #3 = $src2
/*179813*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*179815*/              OPC_CheckPredicate, 9, // Predicate_load
/*179817*/              OPC_MoveParent,
/*179818*/              OPC_RecordChild2, // #4 = $src3
/*179819*/              OPC_MoveChild2,
/*179820*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*179823*/              OPC_MoveParent,
/*179824*/              OPC_MoveParent,
/*179825*/              OPC_MoveChild2,
/*179826*/              OPC_CheckImmAllZerosV,
/*179827*/              OPC_MoveParent,
/*179828*/              OPC_SwitchType /*2 cases */, 20, MVT::v16i16,// ->179851
/*179831*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*179833*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*179836*/                OPC_EmitMergeInputChains1_2,
/*179837*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDWZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86VShrd:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v16i16] }) - Complexity = 35
                          // Dst: (VPSHRDWZ256rmikz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*179851*/              /*SwitchType*/ 20, MVT::v16i32,// ->179873
/*179853*/                OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*179855*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*179858*/                OPC_EmitMergeInputChains1_2,
/*179859*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDDZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VShrd:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v16i32] }) - Complexity = 35
                          // Dst: (VPSHRDDZrmikz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*179873*/              0, // EndSwitchType
/*179874*/            /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->179916
/*179877*/              OPC_RecordMemRef,
/*179878*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*179879*/              OPC_CheckFoldableChainNode,
/*179880*/              OPC_RecordChild1, // #3 = $src2
/*179881*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*179883*/              OPC_MoveParent,
/*179884*/              OPC_RecordChild2, // #4 = $src3
/*179885*/              OPC_MoveChild2,
/*179886*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*179889*/              OPC_MoveParent,
/*179890*/              OPC_MoveParent,
/*179891*/              OPC_MoveChild2,
/*179892*/              OPC_CheckImmAllZerosV,
/*179893*/              OPC_MoveParent,
/*179894*/              OPC_CheckType, MVT::v16i32,
/*179896*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*179898*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*179901*/              OPC_EmitMergeInputChains1_2,
/*179902*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDDZrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VShrd:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v16i32] }) - Complexity = 35
                        // Dst: (VPSHRDDZrmbikz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*179916*/            0, // EndSwitchOpcode
/*179917*/          /*SwitchOpcode*/ 96, TARGET_VAL(X86ISD::GF2P8AFFINEINVQB),// ->180016
/*179920*/            OPC_RecordChild0, // #1 = $src1
/*179921*/            OPC_MoveChild1,
/*179922*/            OPC_SwitchOpcode /*2 cases */, 41, TARGET_VAL(ISD::LOAD),// ->179967
/*179926*/              OPC_RecordMemRef,
/*179927*/              OPC_RecordNode, // #2 = 'ld' chained node
/*179928*/              OPC_CheckFoldableChainNode,
/*179929*/              OPC_RecordChild1, // #3 = $src2
/*179930*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*179932*/              OPC_CheckPredicate, 9, // Predicate_load
/*179934*/              OPC_MoveParent,
/*179935*/              OPC_RecordChild2, // #4 = $src3
/*179936*/              OPC_MoveChild2,
/*179937*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*179940*/              OPC_MoveParent,
/*179941*/              OPC_MoveParent,
/*179942*/              OPC_MoveChild2,
/*179943*/              OPC_CheckImmAllZerosV,
/*179944*/              OPC_MoveParent,
/*179945*/              OPC_CheckType, MVT::v16i8,
/*179947*/              OPC_CheckPatternPredicate, 180, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*179949*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*179952*/              OPC_EmitMergeInputChains1_2,
/*179953*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEINVQBZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i8, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86GF2P8affineinvqb:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v16i8] }) - Complexity = 35
                        // Dst: (VGF2P8AFFINEINVQBZ128rmikz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*179967*/            /*SwitchOpcode*/ 45, TARGET_VAL(ISD::BITCAST),// ->180015
/*179970*/              OPC_MoveChild0,
/*179971*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*179974*/              OPC_RecordMemRef,
/*179975*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*179976*/              OPC_CheckFoldableChainNode,
/*179977*/              OPC_RecordChild1, // #3 = $src2
/*179978*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*179980*/              OPC_CheckType, MVT::v2i64,
/*179982*/              OPC_MoveParent,
/*179983*/              OPC_MoveParent,
/*179984*/              OPC_RecordChild2, // #4 = $src3
/*179985*/              OPC_MoveChild2,
/*179986*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*179989*/              OPC_MoveParent,
/*179990*/              OPC_MoveParent,
/*179991*/              OPC_RecordChild2, // #5 = $src0
/*179992*/              OPC_CheckType, MVT::v16i8,
/*179994*/              OPC_CheckPatternPredicate, 180, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*179996*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*179999*/              OPC_EmitMergeInputChains1_2,
/*180000*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEINVQBZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i8, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86GF2P8affineinvqb:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), (timm:{ *:[i8] }):$src3), VR128X:{ *:[v16i8] }:$src0) - Complexity = 34
                        // Dst: (VGF2P8AFFINEINVQBZ128rmbik:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*180015*/            0, // EndSwitchOpcode
/*180016*/          /*SwitchOpcode*/ 96, TARGET_VAL(X86ISD::GF2P8AFFINEQB),// ->180115
/*180019*/            OPC_RecordChild0, // #1 = $src1
/*180020*/            OPC_MoveChild1,
/*180021*/            OPC_SwitchOpcode /*2 cases */, 41, TARGET_VAL(ISD::LOAD),// ->180066
/*180025*/              OPC_RecordMemRef,
/*180026*/              OPC_RecordNode, // #2 = 'ld' chained node
/*180027*/              OPC_CheckFoldableChainNode,
/*180028*/              OPC_RecordChild1, // #3 = $src2
/*180029*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*180031*/              OPC_CheckPredicate, 9, // Predicate_load
/*180033*/              OPC_MoveParent,
/*180034*/              OPC_RecordChild2, // #4 = $src3
/*180035*/              OPC_MoveChild2,
/*180036*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*180039*/              OPC_MoveParent,
/*180040*/              OPC_MoveParent,
/*180041*/              OPC_MoveChild2,
/*180042*/              OPC_CheckImmAllZerosV,
/*180043*/              OPC_MoveParent,
/*180044*/              OPC_CheckType, MVT::v16i8,
/*180046*/              OPC_CheckPatternPredicate, 180, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*180048*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*180051*/              OPC_EmitMergeInputChains1_2,
/*180052*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEQBZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i8, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86GF2P8affineqb:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v16i8] }) - Complexity = 35
                        // Dst: (VGF2P8AFFINEQBZ128rmikz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*180066*/            /*SwitchOpcode*/ 45, TARGET_VAL(ISD::BITCAST),// ->180114
/*180069*/              OPC_MoveChild0,
/*180070*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*180073*/              OPC_RecordMemRef,
/*180074*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*180075*/              OPC_CheckFoldableChainNode,
/*180076*/              OPC_RecordChild1, // #3 = $src2
/*180077*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*180079*/              OPC_CheckType, MVT::v2i64,
/*180081*/              OPC_MoveParent,
/*180082*/              OPC_MoveParent,
/*180083*/              OPC_RecordChild2, // #4 = $src3
/*180084*/              OPC_MoveChild2,
/*180085*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*180088*/              OPC_MoveParent,
/*180089*/              OPC_MoveParent,
/*180090*/              OPC_RecordChild2, // #5 = $src0
/*180091*/              OPC_CheckType, MVT::v16i8,
/*180093*/              OPC_CheckPatternPredicate, 180, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*180095*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*180098*/              OPC_EmitMergeInputChains1_2,
/*180099*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEQBZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i8, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86GF2P8affineqb:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), (timm:{ *:[i8] }):$src3), VR128X:{ *:[v16i8] }:$src0) - Complexity = 34
                        // Dst: (VGF2P8AFFINEQBZ128rmbik:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*180114*/            0, // EndSwitchOpcode
/*180115*/          /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::SUBV_BROADCAST),// ->180186
/*180118*/            OPC_MoveChild0,
/*180119*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*180122*/            OPC_RecordMemRef,
/*180123*/            OPC_RecordNode, // #1 = 'ld' chained node
/*180124*/            OPC_CheckFoldableChainNode,
/*180125*/            OPC_RecordChild1, // #2 = $src
/*180126*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*180128*/            OPC_CheckPredicate, 9, // Predicate_load
/*180130*/            OPC_SwitchType /*2 cases */, 25, MVT::v4i32,// ->180158
/*180133*/              OPC_MoveParent,
/*180134*/              OPC_MoveParent,
/*180135*/              OPC_MoveChild2,
/*180136*/              OPC_CheckImmAllZerosV,
/*180137*/              OPC_MoveParent,
/*180138*/              OPC_CheckType, MVT::v16i32,
/*180140*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*180142*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*180145*/              OPC_EmitMergeInputChains1_1,
/*180146*/              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] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                        // Dst: (VBROADCASTI32X4rmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*180158*/            /*SwitchType*/ 25, MVT::v8i32,// ->180185
/*180160*/              OPC_MoveParent,
/*180161*/              OPC_MoveParent,
/*180162*/              OPC_MoveChild2,
/*180163*/              OPC_CheckImmAllZerosV,
/*180164*/              OPC_MoveParent,
/*180165*/              OPC_CheckType, MVT::v16i32,
/*180167*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*180169*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*180172*/              OPC_EmitMergeInputChains1_1,
/*180173*/              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] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                        // Dst: (VBROADCASTI32X8rmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*180185*/            0, // EndSwitchType
/*180186*/          /*SwitchOpcode*/ 5|128,1/*133*/, TARGET_VAL(X86ISD::VPERMV3),// ->180323
/*180190*/            OPC_RecordChild0, // #1 = $src1
/*180191*/            OPC_RecordChild1, // #2 = $src2
/*180192*/            OPC_MoveChild2,
/*180193*/            OPC_SwitchOpcode /*2 cases */, 87, TARGET_VAL(ISD::LOAD),// ->180284
/*180197*/              OPC_RecordMemRef,
/*180198*/              OPC_RecordNode, // #3 = 'ld' chained node
/*180199*/              OPC_CheckFoldableChainNode,
/*180200*/              OPC_RecordChild1, // #4 = $src3
/*180201*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*180203*/              OPC_CheckPredicate, 9, // Predicate_load
/*180205*/              OPC_MoveParent,
/*180206*/              OPC_MoveParent,
/*180207*/              OPC_MoveChild2,
/*180208*/              OPC_CheckImmAllZerosV,
/*180209*/              OPC_MoveParent,
/*180210*/              OPC_SwitchType /*3 cases */, 22, MVT::v16i32,// ->180235
/*180213*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*180215*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*180218*/                OPC_EmitMergeInputChains, 1, 3, 
/*180221*/                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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                          // Dst: (VPERMT2Drmkz:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*180235*/              /*SwitchType*/ 22, MVT::v16i16,// ->180259
/*180237*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*180239*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*180242*/                OPC_EmitMergeInputChains, 1, 3, 
/*180245*/                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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i16] }) - Complexity = 32
                          // Dst: (VPERMT2W256rmkz:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/*180259*/              /*SwitchType*/ 22, MVT::v16i8,// ->180283
/*180261*/                OPC_CheckPatternPredicate, 181, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*180263*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*180266*/                OPC_EmitMergeInputChains, 1, 3, 
/*180269*/                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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i8] }) - Complexity = 32
                          // Dst: (VPERMT2B128rmkz:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src2, addr:{ *:[iPTR] }:$src3)
/*180283*/              0, // EndSwitchType
/*180284*/            /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->180322
/*180287*/              OPC_RecordMemRef,
/*180288*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*180289*/              OPC_CheckFoldableChainNode,
/*180290*/              OPC_RecordChild1, // #4 = $src3
/*180291*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*180293*/              OPC_MoveParent,
/*180294*/              OPC_MoveParent,
/*180295*/              OPC_MoveChild2,
/*180296*/              OPC_CheckImmAllZerosV,
/*180297*/              OPC_MoveParent,
/*180298*/              OPC_CheckType, MVT::v16i32,
/*180300*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*180302*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*180305*/              OPC_EmitMergeInputChains, 1, 3, 
/*180308*/              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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                        // Dst: (VPERMT2Drmbkz:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*180322*/            0, // EndSwitchOpcode
/*180323*/          /*SwitchOpcode*/ 117|128,1/*245*/, TARGET_VAL(ISD::ADD),// ->180572
/*180327*/            OPC_Scope, 120, /*->180449*/ // 2 children in Scope
/*180329*/              OPC_RecordChild0, // #1 = $src1
/*180330*/              OPC_MoveChild1,
/*180331*/              OPC_SwitchOpcode /*2 cases */, 78, TARGET_VAL(ISD::LOAD),// ->180413
/*180335*/                OPC_RecordMemRef,
/*180336*/                OPC_RecordNode, // #2 = 'ld' chained node
/*180337*/                OPC_CheckFoldableChainNode,
/*180338*/                OPC_RecordChild1, // #3 = $src2
/*180339*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*180341*/                OPC_CheckPredicate, 9, // Predicate_load
/*180343*/                OPC_MoveParent,
/*180344*/                OPC_MoveParent,
/*180345*/                OPC_MoveChild2,
/*180346*/                OPC_CheckImmAllZerosV,
/*180347*/                OPC_MoveParent,
/*180348*/                OPC_SwitchType /*3 cases */, 19, MVT::v16i32,// ->180370
/*180351*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*180353*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*180356*/                  OPC_EmitMergeInputChains1_2,
/*180357*/                  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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                            // Dst: (VPADDDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*180370*/                /*SwitchType*/ 19, MVT::v16i16,// ->180391
/*180372*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*180374*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*180377*/                  OPC_EmitMergeInputChains1_2,
/*180378*/                  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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i16] }) - Complexity = 32
                            // Dst: (VPADDWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*180391*/                /*SwitchType*/ 19, MVT::v16i8,// ->180412
/*180393*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*180395*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*180398*/                  OPC_EmitMergeInputChains1_2,
/*180399*/                  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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i8] }) - Complexity = 32
                            // Dst: (VPADDBZ128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*180412*/                0, // EndSwitchType
/*180413*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->180448
/*180416*/                OPC_RecordMemRef,
/*180417*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*180418*/                OPC_CheckFoldableChainNode,
/*180419*/                OPC_RecordChild1, // #3 = $src2
/*180420*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*180422*/                OPC_MoveParent,
/*180423*/                OPC_MoveParent,
/*180424*/                OPC_MoveChild2,
/*180425*/                OPC_CheckImmAllZerosV,
/*180426*/                OPC_MoveParent,
/*180427*/                OPC_CheckType, MVT::v16i32,
/*180429*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*180431*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*180434*/                OPC_EmitMergeInputChains1_2,
/*180435*/                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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                          // Dst: (VPADDDZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*180448*/              0, // EndSwitchOpcode
/*180449*/            /*Scope*/ 121, /*->180571*/
/*180450*/              OPC_MoveChild0,
/*180451*/              OPC_SwitchOpcode /*2 cases */, 79, TARGET_VAL(ISD::LOAD),// ->180534
/*180455*/                OPC_RecordMemRef,
/*180456*/                OPC_RecordNode, // #1 = 'ld' chained node
/*180457*/                OPC_CheckFoldableChainNode,
/*180458*/                OPC_RecordChild1, // #2 = $src2
/*180459*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*180461*/                OPC_CheckPredicate, 9, // Predicate_load
/*180463*/                OPC_MoveParent,
/*180464*/                OPC_RecordChild1, // #3 = $src1
/*180465*/                OPC_MoveParent,
/*180466*/                OPC_MoveChild2,
/*180467*/                OPC_CheckImmAllZerosV,
/*180468*/                OPC_MoveParent,
/*180469*/                OPC_SwitchType /*3 cases */, 19, MVT::v16i32,// ->180491
/*180472*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*180474*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*180477*/                  OPC_EmitMergeInputChains1_1,
/*180478*/                  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] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16i32] }:$src1), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                            // Dst: (VPADDDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*180491*/                /*SwitchType*/ 19, MVT::v16i16,// ->180512
/*180493*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*180495*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*180498*/                  OPC_EmitMergeInputChains1_1,
/*180499*/                  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] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1), immAllZerosV:{ *:[v16i16] }) - Complexity = 32
                            // Dst: (VPADDWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*180512*/                /*SwitchType*/ 19, MVT::v16i8,// ->180533
/*180514*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*180516*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*180519*/                  OPC_EmitMergeInputChains1_1,
/*180520*/                  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] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v16i8] }:$src1), immAllZerosV:{ *:[v16i8] }) - Complexity = 32
                            // Dst: (VPADDBZ128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*180533*/                0, // EndSwitchType
/*180534*/              /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->180570
/*180537*/                OPC_RecordMemRef,
/*180538*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*180539*/                OPC_CheckFoldableChainNode,
/*180540*/                OPC_RecordChild1, // #2 = $src2
/*180541*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*180543*/                OPC_MoveParent,
/*180544*/                OPC_RecordChild1, // #3 = $src1
/*180545*/                OPC_MoveParent,
/*180546*/                OPC_MoveChild2,
/*180547*/                OPC_CheckImmAllZerosV,
/*180548*/                OPC_MoveParent,
/*180549*/                OPC_CheckType, MVT::v16i32,
/*180551*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*180553*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*180556*/                OPC_EmitMergeInputChains1_1,
/*180557*/                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] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16i32] }:$src1), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                          // Dst: (VPADDDZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*180570*/              0, // EndSwitchOpcode
/*180571*/            0, /*End of Scope*/
/*180572*/          /*SwitchOpcode*/ 120, TARGET_VAL(ISD::SUB),// ->180695
/*180575*/            OPC_RecordChild0, // #1 = $src1
/*180576*/            OPC_MoveChild1,
/*180577*/            OPC_SwitchOpcode /*2 cases */, 78, TARGET_VAL(ISD::LOAD),// ->180659
/*180581*/              OPC_RecordMemRef,
/*180582*/              OPC_RecordNode, // #2 = 'ld' chained node
/*180583*/              OPC_CheckFoldableChainNode,
/*180584*/              OPC_RecordChild1, // #3 = $src2
/*180585*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*180587*/              OPC_CheckPredicate, 9, // Predicate_load
/*180589*/              OPC_MoveParent,
/*180590*/              OPC_MoveParent,
/*180591*/              OPC_MoveChild2,
/*180592*/              OPC_CheckImmAllZerosV,
/*180593*/              OPC_MoveParent,
/*180594*/              OPC_SwitchType /*3 cases */, 19, MVT::v16i32,// ->180616
/*180597*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*180599*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*180602*/                OPC_EmitMergeInputChains1_2,
/*180603*/                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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                          // Dst: (VPSUBDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*180616*/              /*SwitchType*/ 19, MVT::v16i16,// ->180637
/*180618*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*180620*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*180623*/                OPC_EmitMergeInputChains1_2,
/*180624*/                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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i16] }) - Complexity = 32
                          // Dst: (VPSUBWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*180637*/              /*SwitchType*/ 19, MVT::v16i8,// ->180658
/*180639*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*180641*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*180644*/                OPC_EmitMergeInputChains1_2,
/*180645*/                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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i8] }) - Complexity = 32
                          // Dst: (VPSUBBZ128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*180658*/              0, // EndSwitchType
/*180659*/            /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->180694
/*180662*/              OPC_RecordMemRef,
/*180663*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*180664*/              OPC_CheckFoldableChainNode,
/*180665*/              OPC_RecordChild1, // #3 = $src2
/*180666*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*180668*/              OPC_MoveParent,
/*180669*/              OPC_MoveParent,
/*180670*/              OPC_MoveChild2,
/*180671*/              OPC_CheckImmAllZerosV,
/*180672*/              OPC_MoveParent,
/*180673*/              OPC_CheckType, MVT::v16i32,
/*180675*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*180677*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*180680*/              OPC_EmitMergeInputChains1_2,
/*180681*/              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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                        // Dst: (VPSUBDZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*180694*/            0, // EndSwitchOpcode
/*180695*/          /*SwitchOpcode*/ 0|128,1/*128*/, TARGET_VAL(ISD::SADDSAT),// ->180827
/*180699*/            OPC_Scope, 62, /*->180763*/ // 2 children in Scope
/*180701*/              OPC_RecordChild0, // #1 = $src1
/*180702*/              OPC_MoveChild1,
/*180703*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*180706*/              OPC_RecordMemRef,
/*180707*/              OPC_RecordNode, // #2 = 'ld' chained node
/*180708*/              OPC_CheckFoldableChainNode,
/*180709*/              OPC_RecordChild1, // #3 = $src2
/*180710*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*180712*/              OPC_CheckPredicate, 9, // Predicate_load
/*180714*/              OPC_MoveParent,
/*180715*/              OPC_MoveParent,
/*180716*/              OPC_MoveChild2,
/*180717*/              OPC_CheckImmAllZerosV,
/*180718*/              OPC_MoveParent,
/*180719*/              OPC_SwitchType /*2 cases */, 19, MVT::v16i16,// ->180741
/*180722*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*180724*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*180727*/                OPC_EmitMergeInputChains1_2,
/*180728*/                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, (saddsat:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i16] }) - Complexity = 32
                          // Dst: (VPADDSWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*180741*/              /*SwitchType*/ 19, MVT::v16i8,// ->180762
/*180743*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*180745*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*180748*/                OPC_EmitMergeInputChains1_2,
/*180749*/                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, (saddsat:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i8] }) - Complexity = 32
                          // Dst: (VPADDSBZ128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*180762*/              0, // EndSwitchType
/*180763*/            /*Scope*/ 62, /*->180826*/
/*180764*/              OPC_MoveChild0,
/*180765*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*180768*/              OPC_RecordMemRef,
/*180769*/              OPC_RecordNode, // #1 = 'ld' chained node
/*180770*/              OPC_CheckFoldableChainNode,
/*180771*/              OPC_RecordChild1, // #2 = $src2
/*180772*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*180774*/              OPC_CheckPredicate, 9, // Predicate_load
/*180776*/              OPC_MoveParent,
/*180777*/              OPC_RecordChild1, // #3 = $src1
/*180778*/              OPC_MoveParent,
/*180779*/              OPC_MoveChild2,
/*180780*/              OPC_CheckImmAllZerosV,
/*180781*/              OPC_MoveParent,
/*180782*/              OPC_SwitchType /*2 cases */, 19, MVT::v16i16,// ->180804
/*180785*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*180787*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*180790*/                OPC_EmitMergeInputChains1_1,
/*180791*/                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, (saddsat:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1), immAllZerosV:{ *:[v16i16] }) - Complexity = 32
                          // Dst: (VPADDSWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*180804*/              /*SwitchType*/ 19, MVT::v16i8,// ->180825
/*180806*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*180808*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*180811*/                OPC_EmitMergeInputChains1_1,
/*180812*/                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, (saddsat:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v16i8] }:$src1), immAllZerosV:{ *:[v16i8] }) - Complexity = 32
                          // Dst: (VPADDSBZ128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*180825*/              0, // EndSwitchType
/*180826*/            0, /*End of Scope*/
/*180827*/          /*SwitchOpcode*/ 62, TARGET_VAL(ISD::SSUBSAT),// ->180892
/*180830*/            OPC_RecordChild0, // #1 = $src1
/*180831*/            OPC_MoveChild1,
/*180832*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*180835*/            OPC_RecordMemRef,
/*180836*/            OPC_RecordNode, // #2 = 'ld' chained node
/*180837*/            OPC_CheckFoldableChainNode,
/*180838*/            OPC_RecordChild1, // #3 = $src2
/*180839*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*180841*/            OPC_CheckPredicate, 9, // Predicate_load
/*180843*/            OPC_MoveParent,
/*180844*/            OPC_MoveParent,
/*180845*/            OPC_MoveChild2,
/*180846*/            OPC_CheckImmAllZerosV,
/*180847*/            OPC_MoveParent,
/*180848*/            OPC_SwitchType /*2 cases */, 19, MVT::v16i16,// ->180870
/*180851*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*180853*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*180856*/              OPC_EmitMergeInputChains1_2,
/*180857*/              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, (ssubsat:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i16] }) - Complexity = 32
                        // Dst: (VPSUBSWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*180870*/            /*SwitchType*/ 19, MVT::v16i8,// ->180891
/*180872*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*180874*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*180877*/              OPC_EmitMergeInputChains1_2,
/*180878*/              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, (ssubsat:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i8] }) - Complexity = 32
                        // Dst: (VPSUBSBZ128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*180891*/            0, // EndSwitchType
/*180892*/          /*SwitchOpcode*/ 0|128,1/*128*/, TARGET_VAL(ISD::UADDSAT),// ->181024
/*180896*/            OPC_Scope, 62, /*->180960*/ // 2 children in Scope
/*180898*/              OPC_RecordChild0, // #1 = $src1
/*180899*/              OPC_MoveChild1,
/*180900*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*180903*/              OPC_RecordMemRef,
/*180904*/              OPC_RecordNode, // #2 = 'ld' chained node
/*180905*/              OPC_CheckFoldableChainNode,
/*180906*/              OPC_RecordChild1, // #3 = $src2
/*180907*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*180909*/              OPC_CheckPredicate, 9, // Predicate_load
/*180911*/              OPC_MoveParent,
/*180912*/              OPC_MoveParent,
/*180913*/              OPC_MoveChild2,
/*180914*/              OPC_CheckImmAllZerosV,
/*180915*/              OPC_MoveParent,
/*180916*/              OPC_SwitchType /*2 cases */, 19, MVT::v16i16,// ->180938
/*180919*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*180921*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*180924*/                OPC_EmitMergeInputChains1_2,
/*180925*/                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, (uaddsat:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i16] }) - Complexity = 32
                          // Dst: (VPADDUSWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*180938*/              /*SwitchType*/ 19, MVT::v16i8,// ->180959
/*180940*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*180942*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*180945*/                OPC_EmitMergeInputChains1_2,
/*180946*/                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, (uaddsat:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i8] }) - Complexity = 32
                          // Dst: (VPADDUSBZ128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*180959*/              0, // EndSwitchType
/*180960*/            /*Scope*/ 62, /*->181023*/
/*180961*/              OPC_MoveChild0,
/*180962*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*180965*/              OPC_RecordMemRef,
/*180966*/              OPC_RecordNode, // #1 = 'ld' chained node
/*180967*/              OPC_CheckFoldableChainNode,
/*180968*/              OPC_RecordChild1, // #2 = $src2
/*180969*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*180971*/              OPC_CheckPredicate, 9, // Predicate_load
/*180973*/              OPC_MoveParent,
/*180974*/              OPC_RecordChild1, // #3 = $src1
/*180975*/              OPC_MoveParent,
/*180976*/              OPC_MoveChild2,
/*180977*/              OPC_CheckImmAllZerosV,
/*180978*/              OPC_MoveParent,
/*180979*/              OPC_SwitchType /*2 cases */, 19, MVT::v16i16,// ->181001
/*180982*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*180984*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*180987*/                OPC_EmitMergeInputChains1_1,
/*180988*/                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, (uaddsat:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1), immAllZerosV:{ *:[v16i16] }) - Complexity = 32
                          // Dst: (VPADDUSWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*181001*/              /*SwitchType*/ 19, MVT::v16i8,// ->181022
/*181003*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*181005*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*181008*/                OPC_EmitMergeInputChains1_1,
/*181009*/                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, (uaddsat:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v16i8] }:$src1), immAllZerosV:{ *:[v16i8] }) - Complexity = 32
                          // Dst: (VPADDUSBZ128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*181022*/              0, // EndSwitchType
/*181023*/            0, /*End of Scope*/
/*181024*/          /*SwitchOpcode*/ 62, TARGET_VAL(ISD::USUBSAT),// ->181089
/*181027*/            OPC_RecordChild0, // #1 = $src1
/*181028*/            OPC_MoveChild1,
/*181029*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*181032*/            OPC_RecordMemRef,
/*181033*/            OPC_RecordNode, // #2 = 'ld' chained node
/*181034*/            OPC_CheckFoldableChainNode,
/*181035*/            OPC_RecordChild1, // #3 = $src2
/*181036*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*181038*/            OPC_CheckPredicate, 9, // Predicate_load
/*181040*/            OPC_MoveParent,
/*181041*/            OPC_MoveParent,
/*181042*/            OPC_MoveChild2,
/*181043*/            OPC_CheckImmAllZerosV,
/*181044*/            OPC_MoveParent,
/*181045*/            OPC_SwitchType /*2 cases */, 19, MVT::v16i16,// ->181067
/*181048*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*181050*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*181053*/              OPC_EmitMergeInputChains1_2,
/*181054*/              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, (usubsat:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i16] }) - Complexity = 32
                        // Dst: (VPSUBUSWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*181067*/            /*SwitchType*/ 19, MVT::v16i8,// ->181088
/*181069*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*181071*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*181074*/              OPC_EmitMergeInputChains1_2,
/*181075*/              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, (usubsat:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i8] }) - Complexity = 32
                        // Dst: (VPSUBUSBZ128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*181088*/            0, // EndSwitchType
/*181089*/          /*SwitchOpcode*/ 75|128,1/*203*/, TARGET_VAL(ISD::MUL),// ->181296
/*181093*/            OPC_Scope, 99, /*->181194*/ // 2 children in Scope
/*181095*/              OPC_RecordChild0, // #1 = $src1
/*181096*/              OPC_MoveChild1,
/*181097*/              OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->181158
/*181101*/                OPC_RecordMemRef,
/*181102*/                OPC_RecordNode, // #2 = 'ld' chained node
/*181103*/                OPC_CheckFoldableChainNode,
/*181104*/                OPC_RecordChild1, // #3 = $src2
/*181105*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*181107*/                OPC_CheckPredicate, 9, // Predicate_load
/*181109*/                OPC_MoveParent,
/*181110*/                OPC_MoveParent,
/*181111*/                OPC_MoveChild2,
/*181112*/                OPC_CheckImmAllZerosV,
/*181113*/                OPC_MoveParent,
/*181114*/                OPC_SwitchType /*2 cases */, 19, MVT::v16i32,// ->181136
/*181117*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*181119*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*181122*/                  OPC_EmitMergeInputChains1_2,
/*181123*/                  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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                            // Dst: (VPMULLDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*181136*/                /*SwitchType*/ 19, MVT::v16i16,// ->181157
/*181138*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*181140*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*181143*/                  OPC_EmitMergeInputChains1_2,
/*181144*/                  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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i16] }) - Complexity = 32
                            // Dst: (VPMULLWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*181157*/                0, // EndSwitchType
/*181158*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->181193
/*181161*/                OPC_RecordMemRef,
/*181162*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*181163*/                OPC_CheckFoldableChainNode,
/*181164*/                OPC_RecordChild1, // #3 = $src2
/*181165*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*181167*/                OPC_MoveParent,
/*181168*/                OPC_MoveParent,
/*181169*/                OPC_MoveChild2,
/*181170*/                OPC_CheckImmAllZerosV,
/*181171*/                OPC_MoveParent,
/*181172*/                OPC_CheckType, MVT::v16i32,
/*181174*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*181176*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*181179*/                OPC_EmitMergeInputChains1_2,
/*181180*/                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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                          // Dst: (VPMULLDZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*181193*/              0, // EndSwitchOpcode
/*181194*/            /*Scope*/ 100, /*->181295*/
/*181195*/              OPC_MoveChild0,
/*181196*/              OPC_SwitchOpcode /*2 cases */, 58, TARGET_VAL(ISD::LOAD),// ->181258
/*181200*/                OPC_RecordMemRef,
/*181201*/                OPC_RecordNode, // #1 = 'ld' chained node
/*181202*/                OPC_CheckFoldableChainNode,
/*181203*/                OPC_RecordChild1, // #2 = $src2
/*181204*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*181206*/                OPC_CheckPredicate, 9, // Predicate_load
/*181208*/                OPC_MoveParent,
/*181209*/                OPC_RecordChild1, // #3 = $src1
/*181210*/                OPC_MoveParent,
/*181211*/                OPC_MoveChild2,
/*181212*/                OPC_CheckImmAllZerosV,
/*181213*/                OPC_MoveParent,
/*181214*/                OPC_SwitchType /*2 cases */, 19, MVT::v16i32,// ->181236
/*181217*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*181219*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*181222*/                  OPC_EmitMergeInputChains1_1,
/*181223*/                  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] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16i32] }:$src1), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                            // Dst: (VPMULLDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*181236*/                /*SwitchType*/ 19, MVT::v16i16,// ->181257
/*181238*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*181240*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*181243*/                  OPC_EmitMergeInputChains1_1,
/*181244*/                  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] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1), immAllZerosV:{ *:[v16i16] }) - Complexity = 32
                            // Dst: (VPMULLWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*181257*/                0, // EndSwitchType
/*181258*/              /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->181294
/*181261*/                OPC_RecordMemRef,
/*181262*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*181263*/                OPC_CheckFoldableChainNode,
/*181264*/                OPC_RecordChild1, // #2 = $src2
/*181265*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*181267*/                OPC_MoveParent,
/*181268*/                OPC_RecordChild1, // #3 = $src1
/*181269*/                OPC_MoveParent,
/*181270*/                OPC_MoveChild2,
/*181271*/                OPC_CheckImmAllZerosV,
/*181272*/                OPC_MoveParent,
/*181273*/                OPC_CheckType, MVT::v16i32,
/*181275*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*181277*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*181280*/                OPC_EmitMergeInputChains1_1,
/*181281*/                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] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16i32] }:$src1), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                          // Dst: (VPMULLDZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*181294*/              0, // EndSwitchOpcode
/*181295*/            0, /*End of Scope*/
/*181296*/          /*SwitchOpcode*/ 82, TARGET_VAL(ISD::MULHS),// ->181381
/*181299*/            OPC_Scope, 39, /*->181340*/ // 2 children in Scope
/*181301*/              OPC_RecordChild0, // #1 = $src1
/*181302*/              OPC_MoveChild1,
/*181303*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*181306*/              OPC_RecordMemRef,
/*181307*/              OPC_RecordNode, // #2 = 'ld' chained node
/*181308*/              OPC_CheckFoldableChainNode,
/*181309*/              OPC_RecordChild1, // #3 = $src2
/*181310*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*181312*/              OPC_CheckPredicate, 9, // Predicate_load
/*181314*/              OPC_MoveParent,
/*181315*/              OPC_MoveParent,
/*181316*/              OPC_MoveChild2,
/*181317*/              OPC_CheckImmAllZerosV,
/*181318*/              OPC_MoveParent,
/*181319*/              OPC_CheckType, MVT::v16i16,
/*181321*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*181323*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*181326*/              OPC_EmitMergeInputChains1_2,
/*181327*/              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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i16] }) - Complexity = 32
                        // Dst: (VPMULHWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*181340*/            /*Scope*/ 39, /*->181380*/
/*181341*/              OPC_MoveChild0,
/*181342*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*181345*/              OPC_RecordMemRef,
/*181346*/              OPC_RecordNode, // #1 = 'ld' chained node
/*181347*/              OPC_CheckFoldableChainNode,
/*181348*/              OPC_RecordChild1, // #2 = $src2
/*181349*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*181351*/              OPC_CheckPredicate, 9, // Predicate_load
/*181353*/              OPC_MoveParent,
/*181354*/              OPC_RecordChild1, // #3 = $src1
/*181355*/              OPC_MoveParent,
/*181356*/              OPC_MoveChild2,
/*181357*/              OPC_CheckImmAllZerosV,
/*181358*/              OPC_MoveParent,
/*181359*/              OPC_CheckType, MVT::v16i16,
/*181361*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*181363*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*181366*/              OPC_EmitMergeInputChains1_1,
/*181367*/              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] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1), immAllZerosV:{ *:[v16i16] }) - Complexity = 32
                        // Dst: (VPMULHWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*181380*/            0, /*End of Scope*/
/*181381*/          /*SwitchOpcode*/ 82, TARGET_VAL(ISD::MULHU),// ->181466
/*181384*/            OPC_Scope, 39, /*->181425*/ // 2 children in Scope
/*181386*/              OPC_RecordChild0, // #1 = $src1
/*181387*/              OPC_MoveChild1,
/*181388*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*181391*/              OPC_RecordMemRef,
/*181392*/              OPC_RecordNode, // #2 = 'ld' chained node
/*181393*/              OPC_CheckFoldableChainNode,
/*181394*/              OPC_RecordChild1, // #3 = $src2
/*181395*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*181397*/              OPC_CheckPredicate, 9, // Predicate_load
/*181399*/              OPC_MoveParent,
/*181400*/              OPC_MoveParent,
/*181401*/              OPC_MoveChild2,
/*181402*/              OPC_CheckImmAllZerosV,
/*181403*/              OPC_MoveParent,
/*181404*/              OPC_CheckType, MVT::v16i16,
/*181406*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*181408*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*181411*/              OPC_EmitMergeInputChains1_2,
/*181412*/              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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i16] }) - Complexity = 32
                        // Dst: (VPMULHUWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*181425*/            /*Scope*/ 39, /*->181465*/
/*181426*/              OPC_MoveChild0,
/*181427*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*181430*/              OPC_RecordMemRef,
/*181431*/              OPC_RecordNode, // #1 = 'ld' chained node
/*181432*/              OPC_CheckFoldableChainNode,
/*181433*/              OPC_RecordChild1, // #2 = $src2
/*181434*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*181436*/              OPC_CheckPredicate, 9, // Predicate_load
/*181438*/              OPC_MoveParent,
/*181439*/              OPC_RecordChild1, // #3 = $src1
/*181440*/              OPC_MoveParent,
/*181441*/              OPC_MoveChild2,
/*181442*/              OPC_CheckImmAllZerosV,
/*181443*/              OPC_MoveParent,
/*181444*/              OPC_CheckType, MVT::v16i16,
/*181446*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*181448*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*181451*/              OPC_EmitMergeInputChains1_1,
/*181452*/              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] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1), immAllZerosV:{ *:[v16i16] }) - Complexity = 32
                        // Dst: (VPMULHUWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*181465*/            0, /*End of Scope*/
/*181466*/          /*SwitchOpcode*/ 82, TARGET_VAL(X86ISD::MULHRS),// ->181551
/*181469*/            OPC_Scope, 39, /*->181510*/ // 2 children in Scope
/*181471*/              OPC_RecordChild0, // #1 = $src1
/*181472*/              OPC_MoveChild1,
/*181473*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*181476*/              OPC_RecordMemRef,
/*181477*/              OPC_RecordNode, // #2 = 'ld' chained node
/*181478*/              OPC_CheckFoldableChainNode,
/*181479*/              OPC_RecordChild1, // #3 = $src2
/*181480*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*181482*/              OPC_CheckPredicate, 9, // Predicate_load
/*181484*/              OPC_MoveParent,
/*181485*/              OPC_MoveParent,
/*181486*/              OPC_MoveChild2,
/*181487*/              OPC_CheckImmAllZerosV,
/*181488*/              OPC_MoveParent,
/*181489*/              OPC_CheckType, MVT::v16i16,
/*181491*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*181493*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*181496*/              OPC_EmitMergeInputChains1_2,
/*181497*/              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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i16] }) - Complexity = 32
                        // Dst: (VPMULHRSWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*181510*/            /*Scope*/ 39, /*->181550*/
/*181511*/              OPC_MoveChild0,
/*181512*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*181515*/              OPC_RecordMemRef,
/*181516*/              OPC_RecordNode, // #1 = 'ld' chained node
/*181517*/              OPC_CheckFoldableChainNode,
/*181518*/              OPC_RecordChild1, // #2 = $src2
/*181519*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*181521*/              OPC_CheckPredicate, 9, // Predicate_load
/*181523*/              OPC_MoveParent,
/*181524*/              OPC_RecordChild1, // #3 = $src1
/*181525*/              OPC_MoveParent,
/*181526*/              OPC_MoveChild2,
/*181527*/              OPC_CheckImmAllZerosV,
/*181528*/              OPC_MoveParent,
/*181529*/              OPC_CheckType, MVT::v16i16,
/*181531*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*181533*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*181536*/              OPC_EmitMergeInputChains1_1,
/*181537*/              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] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1), immAllZerosV:{ *:[v16i16] }) - Complexity = 32
                        // Dst: (VPMULHRSWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*181550*/            0, /*End of Scope*/
/*181551*/          /*SwitchOpcode*/ 0|128,1/*128*/, TARGET_VAL(X86ISD::AVG),// ->181683
/*181555*/            OPC_Scope, 62, /*->181619*/ // 2 children in Scope
/*181557*/              OPC_RecordChild0, // #1 = $src1
/*181558*/              OPC_MoveChild1,
/*181559*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*181562*/              OPC_RecordMemRef,
/*181563*/              OPC_RecordNode, // #2 = 'ld' chained node
/*181564*/              OPC_CheckFoldableChainNode,
/*181565*/              OPC_RecordChild1, // #3 = $src2
/*181566*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*181568*/              OPC_CheckPredicate, 9, // Predicate_load
/*181570*/              OPC_MoveParent,
/*181571*/              OPC_MoveParent,
/*181572*/              OPC_MoveChild2,
/*181573*/              OPC_CheckImmAllZerosV,
/*181574*/              OPC_MoveParent,
/*181575*/              OPC_SwitchType /*2 cases */, 19, MVT::v16i16,// ->181597
/*181578*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*181580*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*181583*/                OPC_EmitMergeInputChains1_2,
/*181584*/                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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i16] }) - Complexity = 32
                          // Dst: (VPAVGWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*181597*/              /*SwitchType*/ 19, MVT::v16i8,// ->181618
/*181599*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*181601*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*181604*/                OPC_EmitMergeInputChains1_2,
/*181605*/                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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i8] }) - Complexity = 32
                          // Dst: (VPAVGBZ128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*181618*/              0, // EndSwitchType
/*181619*/            /*Scope*/ 62, /*->181682*/
/*181620*/              OPC_MoveChild0,
/*181621*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*181624*/              OPC_RecordMemRef,
/*181625*/              OPC_RecordNode, // #1 = 'ld' chained node
/*181626*/              OPC_CheckFoldableChainNode,
/*181627*/              OPC_RecordChild1, // #2 = $src2
/*181628*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*181630*/              OPC_CheckPredicate, 9, // Predicate_load
/*181632*/              OPC_MoveParent,
/*181633*/              OPC_RecordChild1, // #3 = $src1
/*181634*/              OPC_MoveParent,
/*181635*/              OPC_MoveChild2,
/*181636*/              OPC_CheckImmAllZerosV,
/*181637*/              OPC_MoveParent,
/*181638*/              OPC_SwitchType /*2 cases */, 19, MVT::v16i16,// ->181660
/*181641*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*181643*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*181646*/                OPC_EmitMergeInputChains1_1,
/*181647*/                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] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1), immAllZerosV:{ *:[v16i16] }) - Complexity = 32
                          // Dst: (VPAVGWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*181660*/              /*SwitchType*/ 19, MVT::v16i8,// ->181681
/*181662*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*181664*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*181667*/                OPC_EmitMergeInputChains1_1,
/*181668*/                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] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v16i8] }:$src1), immAllZerosV:{ *:[v16i8] }) - Complexity = 32
                          // Dst: (VPAVGBZ128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*181681*/              0, // EndSwitchType
/*181682*/            0, /*End of Scope*/
/*181683*/          /*SwitchOpcode*/ 122, TARGET_VAL(X86ISD::PACKSS),// ->181808
/*181686*/            OPC_RecordChild0, // #1 = $src1
/*181687*/            OPC_Scope, 77, /*->181766*/ // 2 children in Scope
/*181689*/              OPC_CheckChild0Type, MVT::v8i32,
/*181691*/              OPC_MoveChild1,
/*181692*/              OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->181730
/*181696*/                OPC_RecordMemRef,
/*181697*/                OPC_RecordNode, // #2 = 'ld' chained node
/*181698*/                OPC_CheckFoldableChainNode,
/*181699*/                OPC_RecordChild1, // #3 = $src2
/*181700*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*181702*/                OPC_CheckPredicate, 9, // Predicate_load
/*181704*/                OPC_MoveParent,
/*181705*/                OPC_MoveParent,
/*181706*/                OPC_MoveChild2,
/*181707*/                OPC_CheckImmAllZerosV,
/*181708*/                OPC_MoveParent,
/*181709*/                OPC_CheckType, MVT::v16i16,
/*181711*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*181713*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*181716*/                OPC_EmitMergeInputChains1_2,
/*181717*/                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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i16] }) - Complexity = 32
                          // Dst: (VPACKSSDWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*181730*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->181765
/*181733*/                OPC_RecordMemRef,
/*181734*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*181735*/                OPC_CheckFoldableChainNode,
/*181736*/                OPC_RecordChild1, // #3 = $src2
/*181737*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*181739*/                OPC_MoveParent,
/*181740*/                OPC_MoveParent,
/*181741*/                OPC_MoveChild2,
/*181742*/                OPC_CheckImmAllZerosV,
/*181743*/                OPC_MoveParent,
/*181744*/                OPC_CheckType, MVT::v16i16,
/*181746*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*181748*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*181751*/                OPC_EmitMergeInputChains1_2,
/*181752*/                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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16i16] }) - Complexity = 32
                          // Dst: (VPACKSSDWZ256rmbkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*181765*/              0, // EndSwitchOpcode
/*181766*/            /*Scope*/ 40, /*->181807*/
/*181767*/              OPC_CheckChild0Type, MVT::v8i16,
/*181769*/              OPC_MoveChild1,
/*181770*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*181773*/              OPC_RecordMemRef,
/*181774*/              OPC_RecordNode, // #2 = 'ld' chained node
/*181775*/              OPC_CheckFoldableChainNode,
/*181776*/              OPC_RecordChild1, // #3 = $src2
/*181777*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*181779*/              OPC_CheckPredicate, 9, // Predicate_load
/*181781*/              OPC_MoveParent,
/*181782*/              OPC_MoveParent,
/*181783*/              OPC_MoveChild2,
/*181784*/              OPC_CheckImmAllZerosV,
/*181785*/              OPC_MoveParent,
/*181786*/              OPC_CheckType, MVT::v16i8,
/*181788*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*181790*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*181793*/              OPC_EmitMergeInputChains1_2,
/*181794*/              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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i8] }) - Complexity = 32
                        // Dst: (VPACKSSWBZ128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*181807*/            0, /*End of Scope*/
/*181808*/          /*SwitchOpcode*/ 122, TARGET_VAL(X86ISD::PACKUS),// ->181933
/*181811*/            OPC_RecordChild0, // #1 = $src1
/*181812*/            OPC_Scope, 77, /*->181891*/ // 2 children in Scope
/*181814*/              OPC_CheckChild0Type, MVT::v8i32,
/*181816*/              OPC_MoveChild1,
/*181817*/              OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->181855
/*181821*/                OPC_RecordMemRef,
/*181822*/                OPC_RecordNode, // #2 = 'ld' chained node
/*181823*/                OPC_CheckFoldableChainNode,
/*181824*/                OPC_RecordChild1, // #3 = $src2
/*181825*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*181827*/                OPC_CheckPredicate, 9, // Predicate_load
/*181829*/                OPC_MoveParent,
/*181830*/                OPC_MoveParent,
/*181831*/                OPC_MoveChild2,
/*181832*/                OPC_CheckImmAllZerosV,
/*181833*/                OPC_MoveParent,
/*181834*/                OPC_CheckType, MVT::v16i16,
/*181836*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*181838*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*181841*/                OPC_EmitMergeInputChains1_2,
/*181842*/                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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i16] }) - Complexity = 32
                          // Dst: (VPACKUSDWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*181855*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->181890
/*181858*/                OPC_RecordMemRef,
/*181859*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*181860*/                OPC_CheckFoldableChainNode,
/*181861*/                OPC_RecordChild1, // #3 = $src2
/*181862*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*181864*/                OPC_MoveParent,
/*181865*/                OPC_MoveParent,
/*181866*/                OPC_MoveChild2,
/*181867*/                OPC_CheckImmAllZerosV,
/*181868*/                OPC_MoveParent,
/*181869*/                OPC_CheckType, MVT::v16i16,
/*181871*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*181873*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*181876*/                OPC_EmitMergeInputChains1_2,
/*181877*/                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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16i16] }) - Complexity = 32
                          // Dst: (VPACKUSDWZ256rmbkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*181890*/              0, // EndSwitchOpcode
/*181891*/            /*Scope*/ 40, /*->181932*/
/*181892*/              OPC_CheckChild0Type, MVT::v8i16,
/*181894*/              OPC_MoveChild1,
/*181895*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*181898*/              OPC_RecordMemRef,
/*181899*/              OPC_RecordNode, // #2 = 'ld' chained node
/*181900*/              OPC_CheckFoldableChainNode,
/*181901*/              OPC_RecordChild1, // #3 = $src2
/*181902*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*181904*/              OPC_CheckPredicate, 9, // Predicate_load
/*181906*/              OPC_MoveParent,
/*181907*/              OPC_MoveParent,
/*181908*/              OPC_MoveChild2,
/*181909*/              OPC_CheckImmAllZerosV,
/*181910*/              OPC_MoveParent,
/*181911*/              OPC_CheckType, MVT::v16i8,
/*181913*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*181915*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*181918*/              OPC_EmitMergeInputChains1_2,
/*181919*/              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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i8] }) - Complexity = 32
                        // Dst: (VPACKUSWBZ128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*181932*/            0, /*End of Scope*/
/*181933*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VPMADDUBSW),// ->181975
/*181936*/            OPC_RecordChild0, // #1 = $src1
/*181937*/            OPC_MoveChild1,
/*181938*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*181941*/            OPC_RecordMemRef,
/*181942*/            OPC_RecordNode, // #2 = 'ld' chained node
/*181943*/            OPC_CheckFoldableChainNode,
/*181944*/            OPC_RecordChild1, // #3 = $src2
/*181945*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*181947*/            OPC_CheckPredicate, 9, // Predicate_load
/*181949*/            OPC_MoveParent,
/*181950*/            OPC_MoveParent,
/*181951*/            OPC_MoveChild2,
/*181952*/            OPC_CheckImmAllZerosV,
/*181953*/            OPC_MoveParent,
/*181954*/            OPC_CheckType, MVT::v16i16,
/*181956*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*181958*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*181961*/            OPC_EmitMergeInputChains1_2,
/*181962*/            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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i16] }) - Complexity = 32
                      // Dst: (VPMADDUBSWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*181975*/          /*SwitchOpcode*/ 82, TARGET_VAL(X86ISD::VPMADDWD),// ->182060
/*181978*/            OPC_Scope, 39, /*->182019*/ // 2 children in Scope
/*181980*/              OPC_RecordChild0, // #1 = $src1
/*181981*/              OPC_MoveChild1,
/*181982*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*181985*/              OPC_RecordMemRef,
/*181986*/              OPC_RecordNode, // #2 = 'ld' chained node
/*181987*/              OPC_CheckFoldableChainNode,
/*181988*/              OPC_RecordChild1, // #3 = $src2
/*181989*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*181991*/              OPC_CheckPredicate, 9, // Predicate_load
/*181993*/              OPC_MoveParent,
/*181994*/              OPC_MoveParent,
/*181995*/              OPC_MoveChild2,
/*181996*/              OPC_CheckImmAllZerosV,
/*181997*/              OPC_MoveParent,
/*181998*/              OPC_CheckType, MVT::v16i32,
/*182000*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*182002*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*182005*/              OPC_EmitMergeInputChains1_2,
/*182006*/              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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                        // Dst: (VPMADDWDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*182019*/            /*Scope*/ 39, /*->182059*/
/*182020*/              OPC_MoveChild0,
/*182021*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*182024*/              OPC_RecordMemRef,
/*182025*/              OPC_RecordNode, // #1 = 'ld' chained node
/*182026*/              OPC_CheckFoldableChainNode,
/*182027*/              OPC_RecordChild1, // #2 = $src2
/*182028*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*182030*/              OPC_CheckPredicate, 9, // Predicate_load
/*182032*/              OPC_MoveParent,
/*182033*/              OPC_RecordChild1, // #3 = $src1
/*182034*/              OPC_MoveParent,
/*182035*/              OPC_MoveChild2,
/*182036*/              OPC_CheckImmAllZerosV,
/*182037*/              OPC_MoveParent,
/*182038*/              OPC_CheckType, MVT::v16i32,
/*182040*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*182042*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*182045*/              OPC_EmitMergeInputChains1_1,
/*182046*/              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] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                        // Dst: (VPMADDWDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*182059*/            0, /*End of Scope*/
/*182060*/          /*SwitchOpcode*/ 117|128,1/*245*/, TARGET_VAL(ISD::SMAX),// ->182309
/*182064*/            OPC_Scope, 120, /*->182186*/ // 2 children in Scope
/*182066*/              OPC_RecordChild0, // #1 = $src1
/*182067*/              OPC_MoveChild1,
/*182068*/              OPC_SwitchOpcode /*2 cases */, 78, TARGET_VAL(ISD::LOAD),// ->182150
/*182072*/                OPC_RecordMemRef,
/*182073*/                OPC_RecordNode, // #2 = 'ld' chained node
/*182074*/                OPC_CheckFoldableChainNode,
/*182075*/                OPC_RecordChild1, // #3 = $src2
/*182076*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*182078*/                OPC_CheckPredicate, 9, // Predicate_load
/*182080*/                OPC_MoveParent,
/*182081*/                OPC_MoveParent,
/*182082*/                OPC_MoveChild2,
/*182083*/                OPC_CheckImmAllZerosV,
/*182084*/                OPC_MoveParent,
/*182085*/                OPC_SwitchType /*3 cases */, 19, MVT::v16i8,// ->182107
/*182088*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*182090*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*182093*/                  OPC_EmitMergeInputChains1_2,
/*182094*/                  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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i8] }) - Complexity = 32
                            // Dst: (VPMAXSBZ128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*182107*/                /*SwitchType*/ 19, MVT::v16i16,// ->182128
/*182109*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*182111*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*182114*/                  OPC_EmitMergeInputChains1_2,
/*182115*/                  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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i16] }) - Complexity = 32
                            // Dst: (VPMAXSWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*182128*/                /*SwitchType*/ 19, MVT::v16i32,// ->182149
/*182130*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*182132*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*182135*/                  OPC_EmitMergeInputChains1_2,
/*182136*/                  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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                            // Dst: (VPMAXSDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*182149*/                0, // EndSwitchType
/*182150*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->182185
/*182153*/                OPC_RecordMemRef,
/*182154*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*182155*/                OPC_CheckFoldableChainNode,
/*182156*/                OPC_RecordChild1, // #3 = $src2
/*182157*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*182159*/                OPC_MoveParent,
/*182160*/                OPC_MoveParent,
/*182161*/                OPC_MoveChild2,
/*182162*/                OPC_CheckImmAllZerosV,
/*182163*/                OPC_MoveParent,
/*182164*/                OPC_CheckType, MVT::v16i32,
/*182166*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*182168*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*182171*/                OPC_EmitMergeInputChains1_2,
/*182172*/                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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                          // Dst: (VPMAXSDZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*182185*/              0, // EndSwitchOpcode
/*182186*/            /*Scope*/ 121, /*->182308*/
/*182187*/              OPC_MoveChild0,
/*182188*/              OPC_SwitchOpcode /*2 cases */, 79, TARGET_VAL(ISD::LOAD),// ->182271
/*182192*/                OPC_RecordMemRef,
/*182193*/                OPC_RecordNode, // #1 = 'ld' chained node
/*182194*/                OPC_CheckFoldableChainNode,
/*182195*/                OPC_RecordChild1, // #2 = $src2
/*182196*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*182198*/                OPC_CheckPredicate, 9, // Predicate_load
/*182200*/                OPC_MoveParent,
/*182201*/                OPC_RecordChild1, // #3 = $src1
/*182202*/                OPC_MoveParent,
/*182203*/                OPC_MoveChild2,
/*182204*/                OPC_CheckImmAllZerosV,
/*182205*/                OPC_MoveParent,
/*182206*/                OPC_SwitchType /*3 cases */, 19, MVT::v16i8,// ->182228
/*182209*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*182211*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*182214*/                  OPC_EmitMergeInputChains1_1,
/*182215*/                  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] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v16i8] }:$src1), immAllZerosV:{ *:[v16i8] }) - Complexity = 32
                            // Dst: (VPMAXSBZ128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*182228*/                /*SwitchType*/ 19, MVT::v16i16,// ->182249
/*182230*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*182232*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*182235*/                  OPC_EmitMergeInputChains1_1,
/*182236*/                  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] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1), immAllZerosV:{ *:[v16i16] }) - Complexity = 32
                            // Dst: (VPMAXSWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*182249*/                /*SwitchType*/ 19, MVT::v16i32,// ->182270
/*182251*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*182253*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*182256*/                  OPC_EmitMergeInputChains1_1,
/*182257*/                  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] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16i32] }:$src1), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                            // Dst: (VPMAXSDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*182270*/                0, // EndSwitchType
/*182271*/              /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->182307
/*182274*/                OPC_RecordMemRef,
/*182275*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*182276*/                OPC_CheckFoldableChainNode,
/*182277*/                OPC_RecordChild1, // #2 = $src2
/*182278*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*182280*/                OPC_MoveParent,
/*182281*/                OPC_RecordChild1, // #3 = $src1
/*182282*/                OPC_MoveParent,
/*182283*/                OPC_MoveChild2,
/*182284*/                OPC_CheckImmAllZerosV,
/*182285*/                OPC_MoveParent,
/*182286*/                OPC_CheckType, MVT::v16i32,
/*182288*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*182290*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*182293*/                OPC_EmitMergeInputChains1_1,
/*182294*/                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] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16i32] }:$src1), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                          // Dst: (VPMAXSDZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*182307*/              0, // EndSwitchOpcode
/*182308*/            0, /*End of Scope*/
/*182309*/          /*SwitchOpcode*/ 117|128,1/*245*/, TARGET_VAL(ISD::UMAX),// ->182558
/*182313*/            OPC_Scope, 120, /*->182435*/ // 2 children in Scope
/*182315*/              OPC_RecordChild0, // #1 = $src1
/*182316*/              OPC_MoveChild1,
/*182317*/              OPC_SwitchOpcode /*2 cases */, 78, TARGET_VAL(ISD::LOAD),// ->182399
/*182321*/                OPC_RecordMemRef,
/*182322*/                OPC_RecordNode, // #2 = 'ld' chained node
/*182323*/                OPC_CheckFoldableChainNode,
/*182324*/                OPC_RecordChild1, // #3 = $src2
/*182325*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*182327*/                OPC_CheckPredicate, 9, // Predicate_load
/*182329*/                OPC_MoveParent,
/*182330*/                OPC_MoveParent,
/*182331*/                OPC_MoveChild2,
/*182332*/                OPC_CheckImmAllZerosV,
/*182333*/                OPC_MoveParent,
/*182334*/                OPC_SwitchType /*3 cases */, 19, MVT::v16i8,// ->182356
/*182337*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*182339*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*182342*/                  OPC_EmitMergeInputChains1_2,
/*182343*/                  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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i8] }) - Complexity = 32
                            // Dst: (VPMAXUBZ128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*182356*/                /*SwitchType*/ 19, MVT::v16i16,// ->182377
/*182358*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*182360*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*182363*/                  OPC_EmitMergeInputChains1_2,
/*182364*/                  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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i16] }) - Complexity = 32
                            // Dst: (VPMAXUWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*182377*/                /*SwitchType*/ 19, MVT::v16i32,// ->182398
/*182379*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*182381*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*182384*/                  OPC_EmitMergeInputChains1_2,
/*182385*/                  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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                            // Dst: (VPMAXUDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*182398*/                0, // EndSwitchType
/*182399*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->182434
/*182402*/                OPC_RecordMemRef,
/*182403*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*182404*/                OPC_CheckFoldableChainNode,
/*182405*/                OPC_RecordChild1, // #3 = $src2
/*182406*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*182408*/                OPC_MoveParent,
/*182409*/                OPC_MoveParent,
/*182410*/                OPC_MoveChild2,
/*182411*/                OPC_CheckImmAllZerosV,
/*182412*/                OPC_MoveParent,
/*182413*/                OPC_CheckType, MVT::v16i32,
/*182415*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*182417*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*182420*/                OPC_EmitMergeInputChains1_2,
/*182421*/                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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                          // Dst: (VPMAXUDZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*182434*/              0, // EndSwitchOpcode
/*182435*/            /*Scope*/ 121, /*->182557*/
/*182436*/              OPC_MoveChild0,
/*182437*/              OPC_SwitchOpcode /*2 cases */, 79, TARGET_VAL(ISD::LOAD),// ->182520
/*182441*/                OPC_RecordMemRef,
/*182442*/                OPC_RecordNode, // #1 = 'ld' chained node
/*182443*/                OPC_CheckFoldableChainNode,
/*182444*/                OPC_RecordChild1, // #2 = $src2
/*182445*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*182447*/                OPC_CheckPredicate, 9, // Predicate_load
/*182449*/                OPC_MoveParent,
/*182450*/                OPC_RecordChild1, // #3 = $src1
/*182451*/                OPC_MoveParent,
/*182452*/                OPC_MoveChild2,
/*182453*/                OPC_CheckImmAllZerosV,
/*182454*/                OPC_MoveParent,
/*182455*/                OPC_SwitchType /*3 cases */, 19, MVT::v16i8,// ->182477
/*182458*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*182460*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*182463*/                  OPC_EmitMergeInputChains1_1,
/*182464*/                  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] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v16i8] }:$src1), immAllZerosV:{ *:[v16i8] }) - Complexity = 32
                            // Dst: (VPMAXUBZ128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*182477*/                /*SwitchType*/ 19, MVT::v16i16,// ->182498
/*182479*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*182481*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*182484*/                  OPC_EmitMergeInputChains1_1,
/*182485*/                  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] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1), immAllZerosV:{ *:[v16i16] }) - Complexity = 32
                            // Dst: (VPMAXUWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*182498*/                /*SwitchType*/ 19, MVT::v16i32,// ->182519
/*182500*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*182502*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*182505*/                  OPC_EmitMergeInputChains1_1,
/*182506*/                  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] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16i32] }:$src1), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                            // Dst: (VPMAXUDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*182519*/                0, // EndSwitchType
/*182520*/              /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->182556
/*182523*/                OPC_RecordMemRef,
/*182524*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*182525*/                OPC_CheckFoldableChainNode,
/*182526*/                OPC_RecordChild1, // #2 = $src2
/*182527*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*182529*/                OPC_MoveParent,
/*182530*/                OPC_RecordChild1, // #3 = $src1
/*182531*/                OPC_MoveParent,
/*182532*/                OPC_MoveChild2,
/*182533*/                OPC_CheckImmAllZerosV,
/*182534*/                OPC_MoveParent,
/*182535*/                OPC_CheckType, MVT::v16i32,
/*182537*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*182539*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*182542*/                OPC_EmitMergeInputChains1_1,
/*182543*/                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] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16i32] }:$src1), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                          // Dst: (VPMAXUDZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*182556*/              0, // EndSwitchOpcode
/*182557*/            0, /*End of Scope*/
/*182558*/          /*SwitchOpcode*/ 117|128,1/*245*/, TARGET_VAL(ISD::SMIN),// ->182807
/*182562*/            OPC_Scope, 120, /*->182684*/ // 2 children in Scope
/*182564*/              OPC_RecordChild0, // #1 = $src1
/*182565*/              OPC_MoveChild1,
/*182566*/              OPC_SwitchOpcode /*2 cases */, 78, TARGET_VAL(ISD::LOAD),// ->182648
/*182570*/                OPC_RecordMemRef,
/*182571*/                OPC_RecordNode, // #2 = 'ld' chained node
/*182572*/                OPC_CheckFoldableChainNode,
/*182573*/                OPC_RecordChild1, // #3 = $src2
/*182574*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*182576*/                OPC_CheckPredicate, 9, // Predicate_load
/*182578*/                OPC_MoveParent,
/*182579*/                OPC_MoveParent,
/*182580*/                OPC_MoveChild2,
/*182581*/                OPC_CheckImmAllZerosV,
/*182582*/                OPC_MoveParent,
/*182583*/                OPC_SwitchType /*3 cases */, 19, MVT::v16i8,// ->182605
/*182586*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*182588*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*182591*/                  OPC_EmitMergeInputChains1_2,
/*182592*/                  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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i8] }) - Complexity = 32
                            // Dst: (VPMINSBZ128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*182605*/                /*SwitchType*/ 19, MVT::v16i16,// ->182626
/*182607*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*182609*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*182612*/                  OPC_EmitMergeInputChains1_2,
/*182613*/                  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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i16] }) - Complexity = 32
                            // Dst: (VPMINSWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*182626*/                /*SwitchType*/ 19, MVT::v16i32,// ->182647
/*182628*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*182630*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*182633*/                  OPC_EmitMergeInputChains1_2,
/*182634*/                  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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                            // Dst: (VPMINSDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*182647*/                0, // EndSwitchType
/*182648*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->182683
/*182651*/                OPC_RecordMemRef,
/*182652*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*182653*/                OPC_CheckFoldableChainNode,
/*182654*/                OPC_RecordChild1, // #3 = $src2
/*182655*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*182657*/                OPC_MoveParent,
/*182658*/                OPC_MoveParent,
/*182659*/                OPC_MoveChild2,
/*182660*/                OPC_CheckImmAllZerosV,
/*182661*/                OPC_MoveParent,
/*182662*/                OPC_CheckType, MVT::v16i32,
/*182664*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*182666*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*182669*/                OPC_EmitMergeInputChains1_2,
/*182670*/                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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                          // Dst: (VPMINSDZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*182683*/              0, // EndSwitchOpcode
/*182684*/            /*Scope*/ 121, /*->182806*/
/*182685*/              OPC_MoveChild0,
/*182686*/              OPC_SwitchOpcode /*2 cases */, 79, TARGET_VAL(ISD::LOAD),// ->182769
/*182690*/                OPC_RecordMemRef,
/*182691*/                OPC_RecordNode, // #1 = 'ld' chained node
/*182692*/                OPC_CheckFoldableChainNode,
/*182693*/                OPC_RecordChild1, // #2 = $src2
/*182694*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*182696*/                OPC_CheckPredicate, 9, // Predicate_load
/*182698*/                OPC_MoveParent,
/*182699*/                OPC_RecordChild1, // #3 = $src1
/*182700*/                OPC_MoveParent,
/*182701*/                OPC_MoveChild2,
/*182702*/                OPC_CheckImmAllZerosV,
/*182703*/                OPC_MoveParent,
/*182704*/                OPC_SwitchType /*3 cases */, 19, MVT::v16i8,// ->182726
/*182707*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*182709*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*182712*/                  OPC_EmitMergeInputChains1_1,
/*182713*/                  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] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v16i8] }:$src1), immAllZerosV:{ *:[v16i8] }) - Complexity = 32
                            // Dst: (VPMINSBZ128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*182726*/                /*SwitchType*/ 19, MVT::v16i16,// ->182747
/*182728*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*182730*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*182733*/                  OPC_EmitMergeInputChains1_1,
/*182734*/                  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] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1), immAllZerosV:{ *:[v16i16] }) - Complexity = 32
                            // Dst: (VPMINSWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*182747*/                /*SwitchType*/ 19, MVT::v16i32,// ->182768
/*182749*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*182751*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*182754*/                  OPC_EmitMergeInputChains1_1,
/*182755*/                  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] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16i32] }:$src1), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                            // Dst: (VPMINSDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*182768*/                0, // EndSwitchType
/*182769*/              /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->182805
/*182772*/                OPC_RecordMemRef,
/*182773*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*182774*/                OPC_CheckFoldableChainNode,
/*182775*/                OPC_RecordChild1, // #2 = $src2
/*182776*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*182778*/                OPC_MoveParent,
/*182779*/                OPC_RecordChild1, // #3 = $src1
/*182780*/                OPC_MoveParent,
/*182781*/                OPC_MoveChild2,
/*182782*/                OPC_CheckImmAllZerosV,
/*182783*/                OPC_MoveParent,
/*182784*/                OPC_CheckType, MVT::v16i32,
/*182786*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*182788*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*182791*/                OPC_EmitMergeInputChains1_1,
/*182792*/                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] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16i32] }:$src1), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                          // Dst: (VPMINSDZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*182805*/              0, // EndSwitchOpcode
/*182806*/            0, /*End of Scope*/
/*182807*/          /*SwitchOpcode*/ 117|128,1/*245*/, TARGET_VAL(ISD::UMIN),// ->183056
/*182811*/            OPC_Scope, 120, /*->182933*/ // 2 children in Scope
/*182813*/              OPC_RecordChild0, // #1 = $src1
/*182814*/              OPC_MoveChild1,
/*182815*/              OPC_SwitchOpcode /*2 cases */, 78, TARGET_VAL(ISD::LOAD),// ->182897
/*182819*/                OPC_RecordMemRef,
/*182820*/                OPC_RecordNode, // #2 = 'ld' chained node
/*182821*/                OPC_CheckFoldableChainNode,
/*182822*/                OPC_RecordChild1, // #3 = $src2
/*182823*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*182825*/                OPC_CheckPredicate, 9, // Predicate_load
/*182827*/                OPC_MoveParent,
/*182828*/                OPC_MoveParent,
/*182829*/                OPC_MoveChild2,
/*182830*/                OPC_CheckImmAllZerosV,
/*182831*/                OPC_MoveParent,
/*182832*/                OPC_SwitchType /*3 cases */, 19, MVT::v16i8,// ->182854
/*182835*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*182837*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*182840*/                  OPC_EmitMergeInputChains1_2,
/*182841*/                  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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i8] }) - Complexity = 32
                            // Dst: (VPMINUBZ128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*182854*/                /*SwitchType*/ 19, MVT::v16i16,// ->182875
/*182856*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*182858*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*182861*/                  OPC_EmitMergeInputChains1_2,
/*182862*/                  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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i16] }) - Complexity = 32
                            // Dst: (VPMINUWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*182875*/                /*SwitchType*/ 19, MVT::v16i32,// ->182896
/*182877*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*182879*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*182882*/                  OPC_EmitMergeInputChains1_2,
/*182883*/                  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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                            // Dst: (VPMINUDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*182896*/                0, // EndSwitchType
/*182897*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->182932
/*182900*/                OPC_RecordMemRef,
/*182901*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*182902*/                OPC_CheckFoldableChainNode,
/*182903*/                OPC_RecordChild1, // #3 = $src2
/*182904*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*182906*/                OPC_MoveParent,
/*182907*/                OPC_MoveParent,
/*182908*/                OPC_MoveChild2,
/*182909*/                OPC_CheckImmAllZerosV,
/*182910*/                OPC_MoveParent,
/*182911*/                OPC_CheckType, MVT::v16i32,
/*182913*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*182915*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*182918*/                OPC_EmitMergeInputChains1_2,
/*182919*/                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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                          // Dst: (VPMINUDZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*182932*/              0, // EndSwitchOpcode
/*182933*/            /*Scope*/ 121, /*->183055*/
/*182934*/              OPC_MoveChild0,
/*182935*/              OPC_SwitchOpcode /*2 cases */, 79, TARGET_VAL(ISD::LOAD),// ->183018
/*182939*/                OPC_RecordMemRef,
/*182940*/                OPC_RecordNode, // #1 = 'ld' chained node
/*182941*/                OPC_CheckFoldableChainNode,
/*182942*/                OPC_RecordChild1, // #2 = $src2
/*182943*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*182945*/                OPC_CheckPredicate, 9, // Predicate_load
/*182947*/                OPC_MoveParent,
/*182948*/                OPC_RecordChild1, // #3 = $src1
/*182949*/                OPC_MoveParent,
/*182950*/                OPC_MoveChild2,
/*182951*/                OPC_CheckImmAllZerosV,
/*182952*/                OPC_MoveParent,
/*182953*/                OPC_SwitchType /*3 cases */, 19, MVT::v16i8,// ->182975
/*182956*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*182958*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*182961*/                  OPC_EmitMergeInputChains1_1,
/*182962*/                  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] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v16i8] }:$src1), immAllZerosV:{ *:[v16i8] }) - Complexity = 32
                            // Dst: (VPMINUBZ128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*182975*/                /*SwitchType*/ 19, MVT::v16i16,// ->182996
/*182977*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*182979*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*182982*/                  OPC_EmitMergeInputChains1_1,
/*182983*/                  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] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1), immAllZerosV:{ *:[v16i16] }) - Complexity = 32
                            // Dst: (VPMINUWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*182996*/                /*SwitchType*/ 19, MVT::v16i32,// ->183017
/*182998*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*183000*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*183003*/                  OPC_EmitMergeInputChains1_1,
/*183004*/                  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] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16i32] }:$src1), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                            // Dst: (VPMINUDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*183017*/                0, // EndSwitchType
/*183018*/              /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->183054
/*183021*/                OPC_RecordMemRef,
/*183022*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*183023*/                OPC_CheckFoldableChainNode,
/*183024*/                OPC_RecordChild1, // #2 = $src2
/*183025*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*183027*/                OPC_MoveParent,
/*183028*/                OPC_RecordChild1, // #3 = $src1
/*183029*/                OPC_MoveParent,
/*183030*/                OPC_MoveChild2,
/*183031*/                OPC_CheckImmAllZerosV,
/*183032*/                OPC_MoveParent,
/*183033*/                OPC_CheckType, MVT::v16i32,
/*183035*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*183037*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*183040*/                OPC_EmitMergeInputChains1_1,
/*183041*/                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] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16i32] }:$src1), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                          // Dst: (VPMINUDZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*183054*/              0, // EndSwitchOpcode
/*183055*/            0, /*End of Scope*/
/*183056*/          /*SwitchOpcode*/ 29|128,1/*157*/, TARGET_VAL(ISD::AND),// ->183217
/*183060*/            OPC_Scope, 76, /*->183138*/ // 2 children in Scope
/*183062*/              OPC_RecordChild0, // #1 = $src1
/*183063*/              OPC_MoveChild1,
/*183064*/              OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->183102
/*183068*/                OPC_RecordMemRef,
/*183069*/                OPC_RecordNode, // #2 = 'ld' chained node
/*183070*/                OPC_CheckFoldableChainNode,
/*183071*/                OPC_RecordChild1, // #3 = $src2
/*183072*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*183074*/                OPC_CheckPredicate, 9, // Predicate_load
/*183076*/                OPC_MoveParent,
/*183077*/                OPC_MoveParent,
/*183078*/                OPC_MoveChild2,
/*183079*/                OPC_CheckImmAllZerosV,
/*183080*/                OPC_MoveParent,
/*183081*/                OPC_CheckType, MVT::v16i32,
/*183083*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*183085*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*183088*/                OPC_EmitMergeInputChains1_2,
/*183089*/                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, (and:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                          // Dst: (VPANDDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*183102*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->183137
/*183105*/                OPC_RecordMemRef,
/*183106*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*183107*/                OPC_CheckFoldableChainNode,
/*183108*/                OPC_RecordChild1, // #3 = $src2
/*183109*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*183111*/                OPC_MoveParent,
/*183112*/                OPC_MoveParent,
/*183113*/                OPC_MoveChild2,
/*183114*/                OPC_CheckImmAllZerosV,
/*183115*/                OPC_MoveParent,
/*183116*/                OPC_CheckType, MVT::v16i32,
/*183118*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*183120*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*183123*/                OPC_EmitMergeInputChains1_2,
/*183124*/                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, (and:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                          // Dst: (VPANDDZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*183137*/              0, // EndSwitchOpcode
/*183138*/            /*Scope*/ 77, /*->183216*/
/*183139*/              OPC_MoveChild0,
/*183140*/              OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->183179
/*183144*/                OPC_RecordMemRef,
/*183145*/                OPC_RecordNode, // #1 = 'ld' chained node
/*183146*/                OPC_CheckFoldableChainNode,
/*183147*/                OPC_RecordChild1, // #2 = $src2
/*183148*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*183150*/                OPC_CheckPredicate, 9, // Predicate_load
/*183152*/                OPC_MoveParent,
/*183153*/                OPC_RecordChild1, // #3 = $src1
/*183154*/                OPC_MoveParent,
/*183155*/                OPC_MoveChild2,
/*183156*/                OPC_CheckImmAllZerosV,
/*183157*/                OPC_MoveParent,
/*183158*/                OPC_CheckType, MVT::v16i32,
/*183160*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*183162*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*183165*/                OPC_EmitMergeInputChains1_1,
/*183166*/                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, (and:{ *:[v16i32] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16i32] }:$src1), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                          // Dst: (VPANDDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*183179*/              /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->183215
/*183182*/                OPC_RecordMemRef,
/*183183*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*183184*/                OPC_CheckFoldableChainNode,
/*183185*/                OPC_RecordChild1, // #2 = $src2
/*183186*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*183188*/                OPC_MoveParent,
/*183189*/                OPC_RecordChild1, // #3 = $src1
/*183190*/                OPC_MoveParent,
/*183191*/                OPC_MoveChild2,
/*183192*/                OPC_CheckImmAllZerosV,
/*183193*/                OPC_MoveParent,
/*183194*/                OPC_CheckType, MVT::v16i32,
/*183196*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*183198*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*183201*/                OPC_EmitMergeInputChains1_1,
/*183202*/                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, (and:{ *:[v16i32] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16i32] }:$src1), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                          // Dst: (VPANDDZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*183215*/              0, // EndSwitchOpcode
/*183216*/            0, /*End of Scope*/
/*183217*/          /*SwitchOpcode*/ 29|128,1/*157*/, TARGET_VAL(ISD::OR),// ->183378
/*183221*/            OPC_Scope, 76, /*->183299*/ // 2 children in Scope
/*183223*/              OPC_RecordChild0, // #1 = $src1
/*183224*/              OPC_MoveChild1,
/*183225*/              OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->183263
/*183229*/                OPC_RecordMemRef,
/*183230*/                OPC_RecordNode, // #2 = 'ld' chained node
/*183231*/                OPC_CheckFoldableChainNode,
/*183232*/                OPC_RecordChild1, // #3 = $src2
/*183233*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*183235*/                OPC_CheckPredicate, 9, // Predicate_load
/*183237*/                OPC_MoveParent,
/*183238*/                OPC_MoveParent,
/*183239*/                OPC_MoveChild2,
/*183240*/                OPC_CheckImmAllZerosV,
/*183241*/                OPC_MoveParent,
/*183242*/                OPC_CheckType, MVT::v16i32,
/*183244*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*183246*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*183249*/                OPC_EmitMergeInputChains1_2,
/*183250*/                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, (or:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                          // Dst: (VPORDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*183263*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->183298
/*183266*/                OPC_RecordMemRef,
/*183267*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*183268*/                OPC_CheckFoldableChainNode,
/*183269*/                OPC_RecordChild1, // #3 = $src2
/*183270*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*183272*/                OPC_MoveParent,
/*183273*/                OPC_MoveParent,
/*183274*/                OPC_MoveChild2,
/*183275*/                OPC_CheckImmAllZerosV,
/*183276*/                OPC_MoveParent,
/*183277*/                OPC_CheckType, MVT::v16i32,
/*183279*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*183281*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*183284*/                OPC_EmitMergeInputChains1_2,
/*183285*/                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, (or:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                          // Dst: (VPORDZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*183298*/              0, // EndSwitchOpcode
/*183299*/            /*Scope*/ 77, /*->183377*/
/*183300*/              OPC_MoveChild0,
/*183301*/              OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->183340
/*183305*/                OPC_RecordMemRef,
/*183306*/                OPC_RecordNode, // #1 = 'ld' chained node
/*183307*/                OPC_CheckFoldableChainNode,
/*183308*/                OPC_RecordChild1, // #2 = $src2
/*183309*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*183311*/                OPC_CheckPredicate, 9, // Predicate_load
/*183313*/                OPC_MoveParent,
/*183314*/                OPC_RecordChild1, // #3 = $src1
/*183315*/                OPC_MoveParent,
/*183316*/                OPC_MoveChild2,
/*183317*/                OPC_CheckImmAllZerosV,
/*183318*/                OPC_MoveParent,
/*183319*/                OPC_CheckType, MVT::v16i32,
/*183321*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*183323*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*183326*/                OPC_EmitMergeInputChains1_1,
/*183327*/                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, (or:{ *:[v16i32] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16i32] }:$src1), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                          // Dst: (VPORDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*183340*/              /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->183376
/*183343*/                OPC_RecordMemRef,
/*183344*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*183345*/                OPC_CheckFoldableChainNode,
/*183346*/                OPC_RecordChild1, // #2 = $src2
/*183347*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*183349*/                OPC_MoveParent,
/*183350*/                OPC_RecordChild1, // #3 = $src1
/*183351*/                OPC_MoveParent,
/*183352*/                OPC_MoveChild2,
/*183353*/                OPC_CheckImmAllZerosV,
/*183354*/                OPC_MoveParent,
/*183355*/                OPC_CheckType, MVT::v16i32,
/*183357*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*183359*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*183362*/                OPC_EmitMergeInputChains1_1,
/*183363*/                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, (or:{ *:[v16i32] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16i32] }:$src1), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                          // Dst: (VPORDZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*183376*/              0, // EndSwitchOpcode
/*183377*/            0, /*End of Scope*/
/*183378*/          /*SwitchOpcode*/ 29|128,1/*157*/, TARGET_VAL(ISD::XOR),// ->183539
/*183382*/            OPC_Scope, 76, /*->183460*/ // 2 children in Scope
/*183384*/              OPC_RecordChild0, // #1 = $src1
/*183385*/              OPC_MoveChild1,
/*183386*/              OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->183424
/*183390*/                OPC_RecordMemRef,
/*183391*/                OPC_RecordNode, // #2 = 'ld' chained node
/*183392*/                OPC_CheckFoldableChainNode,
/*183393*/                OPC_RecordChild1, // #3 = $src2
/*183394*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*183396*/                OPC_CheckPredicate, 9, // Predicate_load
/*183398*/                OPC_MoveParent,
/*183399*/                OPC_MoveParent,
/*183400*/                OPC_MoveChild2,
/*183401*/                OPC_CheckImmAllZerosV,
/*183402*/                OPC_MoveParent,
/*183403*/                OPC_CheckType, MVT::v16i32,
/*183405*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*183407*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*183410*/                OPC_EmitMergeInputChains1_2,
/*183411*/                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, (xor:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                          // Dst: (VPXORDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*183424*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->183459
/*183427*/                OPC_RecordMemRef,
/*183428*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*183429*/                OPC_CheckFoldableChainNode,
/*183430*/                OPC_RecordChild1, // #3 = $src2
/*183431*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*183433*/                OPC_MoveParent,
/*183434*/                OPC_MoveParent,
/*183435*/                OPC_MoveChild2,
/*183436*/                OPC_CheckImmAllZerosV,
/*183437*/                OPC_MoveParent,
/*183438*/                OPC_CheckType, MVT::v16i32,
/*183440*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*183442*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*183445*/                OPC_EmitMergeInputChains1_2,
/*183446*/                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, (xor:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                          // Dst: (VPXORDZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*183459*/              0, // EndSwitchOpcode
/*183460*/            /*Scope*/ 77, /*->183538*/
/*183461*/              OPC_MoveChild0,
/*183462*/              OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->183501
/*183466*/                OPC_RecordMemRef,
/*183467*/                OPC_RecordNode, // #1 = 'ld' chained node
/*183468*/                OPC_CheckFoldableChainNode,
/*183469*/                OPC_RecordChild1, // #2 = $src2
/*183470*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*183472*/                OPC_CheckPredicate, 9, // Predicate_load
/*183474*/                OPC_MoveParent,
/*183475*/                OPC_RecordChild1, // #3 = $src1
/*183476*/                OPC_MoveParent,
/*183477*/                OPC_MoveChild2,
/*183478*/                OPC_CheckImmAllZerosV,
/*183479*/                OPC_MoveParent,
/*183480*/                OPC_CheckType, MVT::v16i32,
/*183482*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*183484*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*183487*/                OPC_EmitMergeInputChains1_1,
/*183488*/                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, (xor:{ *:[v16i32] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16i32] }:$src1), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                          // Dst: (VPXORDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*183501*/              /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->183537
/*183504*/                OPC_RecordMemRef,
/*183505*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*183506*/                OPC_CheckFoldableChainNode,
/*183507*/                OPC_RecordChild1, // #2 = $src2
/*183508*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*183510*/                OPC_MoveParent,
/*183511*/                OPC_RecordChild1, // #3 = $src1
/*183512*/                OPC_MoveParent,
/*183513*/                OPC_MoveChild2,
/*183514*/                OPC_CheckImmAllZerosV,
/*183515*/                OPC_MoveParent,
/*183516*/                OPC_CheckType, MVT::v16i32,
/*183518*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*183520*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*183523*/                OPC_EmitMergeInputChains1_1,
/*183524*/                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, (xor:{ *:[v16i32] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16i32] }:$src1), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                          // Dst: (VPXORDZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*183537*/              0, // EndSwitchOpcode
/*183538*/            0, /*End of Scope*/
/*183539*/          /*SwitchOpcode*/ 76, TARGET_VAL(X86ISD::ANDNP),// ->183618
/*183542*/            OPC_RecordChild0, // #1 = $src1
/*183543*/            OPC_MoveChild1,
/*183544*/            OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->183582
/*183548*/              OPC_RecordMemRef,
/*183549*/              OPC_RecordNode, // #2 = 'ld' chained node
/*183550*/              OPC_CheckFoldableChainNode,
/*183551*/              OPC_RecordChild1, // #3 = $src2
/*183552*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*183554*/              OPC_CheckPredicate, 9, // Predicate_load
/*183556*/              OPC_MoveParent,
/*183557*/              OPC_MoveParent,
/*183558*/              OPC_MoveChild2,
/*183559*/              OPC_CheckImmAllZerosV,
/*183560*/              OPC_MoveParent,
/*183561*/              OPC_CheckType, MVT::v16i32,
/*183563*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*183565*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*183568*/              OPC_EmitMergeInputChains1_2,
/*183569*/              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, (X86andnp:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                        // Dst: (VPANDNDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*183582*/            /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->183617
/*183585*/              OPC_RecordMemRef,
/*183586*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*183587*/              OPC_CheckFoldableChainNode,
/*183588*/              OPC_RecordChild1, // #3 = $src2
/*183589*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*183591*/              OPC_MoveParent,
/*183592*/              OPC_MoveParent,
/*183593*/              OPC_MoveChild2,
/*183594*/              OPC_CheckImmAllZerosV,
/*183595*/              OPC_MoveParent,
/*183596*/              OPC_CheckType, MVT::v16i32,
/*183598*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*183600*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*183603*/              OPC_EmitMergeInputChains1_2,
/*183604*/              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, (X86andnp:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                        // Dst: (VPANDNDZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*183617*/            0, // EndSwitchOpcode
/*183618*/          /*SwitchOpcode*/ 71, TARGET_VAL(X86ISD::VSHL),// ->183692
/*183621*/            OPC_RecordChild0, // #1 = $src1
/*183622*/            OPC_MoveChild1,
/*183623*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*183626*/            OPC_RecordMemRef,
/*183627*/            OPC_RecordNode, // #2 = 'ld' chained node
/*183628*/            OPC_CheckFoldableChainNode,
/*183629*/            OPC_RecordChild1, // #3 = $src2
/*183630*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*183632*/            OPC_CheckPredicate, 9, // Predicate_load
/*183634*/            OPC_SwitchType /*2 cases */, 26, MVT::v4i32,// ->183663
/*183637*/              OPC_MoveParent,
/*183638*/              OPC_MoveParent,
/*183639*/              OPC_MoveChild2,
/*183640*/              OPC_CheckImmAllZerosV,
/*183641*/              OPC_MoveParent,
/*183642*/              OPC_CheckType, MVT::v16i32,
/*183644*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*183646*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*183649*/              OPC_EmitMergeInputChains1_2,
/*183650*/              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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                        // Dst: (VPSLLDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*183663*/            /*SwitchType*/ 26, MVT::v8i16,// ->183691
/*183665*/              OPC_MoveParent,
/*183666*/              OPC_MoveParent,
/*183667*/              OPC_MoveChild2,
/*183668*/              OPC_CheckImmAllZerosV,
/*183669*/              OPC_MoveParent,
/*183670*/              OPC_CheckType, MVT::v16i16,
/*183672*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*183674*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*183677*/              OPC_EmitMergeInputChains1_2,
/*183678*/              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:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i16] }) - Complexity = 32
                        // Dst: (VPSLLWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*183691*/            0, // EndSwitchType
/*183692*/          /*SwitchOpcode*/ 71, TARGET_VAL(X86ISD::VSRA),// ->183766
/*183695*/            OPC_RecordChild0, // #1 = $src1
/*183696*/            OPC_MoveChild1,
/*183697*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*183700*/            OPC_RecordMemRef,
/*183701*/            OPC_RecordNode, // #2 = 'ld' chained node
/*183702*/            OPC_CheckFoldableChainNode,
/*183703*/            OPC_RecordChild1, // #3 = $src2
/*183704*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*183706*/            OPC_CheckPredicate, 9, // Predicate_load
/*183708*/            OPC_SwitchType /*2 cases */, 26, MVT::v4i32,// ->183737
/*183711*/              OPC_MoveParent,
/*183712*/              OPC_MoveParent,
/*183713*/              OPC_MoveChild2,
/*183714*/              OPC_CheckImmAllZerosV,
/*183715*/              OPC_MoveParent,
/*183716*/              OPC_CheckType, MVT::v16i32,
/*183718*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*183720*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*183723*/              OPC_EmitMergeInputChains1_2,
/*183724*/              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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                        // Dst: (VPSRADZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*183737*/            /*SwitchType*/ 26, MVT::v8i16,// ->183765
/*183739*/              OPC_MoveParent,
/*183740*/              OPC_MoveParent,
/*183741*/              OPC_MoveChild2,
/*183742*/              OPC_CheckImmAllZerosV,
/*183743*/              OPC_MoveParent,
/*183744*/              OPC_CheckType, MVT::v16i16,
/*183746*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*183748*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*183751*/              OPC_EmitMergeInputChains1_2,
/*183752*/              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:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i16] }) - Complexity = 32
                        // Dst: (VPSRAWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*183765*/            0, // EndSwitchType
/*183766*/          /*SwitchOpcode*/ 71, TARGET_VAL(X86ISD::VSRL),// ->183840
/*183769*/            OPC_RecordChild0, // #1 = $src1
/*183770*/            OPC_MoveChild1,
/*183771*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*183774*/            OPC_RecordMemRef,
/*183775*/            OPC_RecordNode, // #2 = 'ld' chained node
/*183776*/            OPC_CheckFoldableChainNode,
/*183777*/            OPC_RecordChild1, // #3 = $src2
/*183778*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*183780*/            OPC_CheckPredicate, 9, // Predicate_load
/*183782*/            OPC_SwitchType /*2 cases */, 26, MVT::v4i32,// ->183811
/*183785*/              OPC_MoveParent,
/*183786*/              OPC_MoveParent,
/*183787*/              OPC_MoveChild2,
/*183788*/              OPC_CheckImmAllZerosV,
/*183789*/              OPC_MoveParent,
/*183790*/              OPC_CheckType, MVT::v16i32,
/*183792*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*183794*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*183797*/              OPC_EmitMergeInputChains1_2,
/*183798*/              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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                        // Dst: (VPSRLDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*183811*/            /*SwitchType*/ 26, MVT::v8i16,// ->183839
/*183813*/              OPC_MoveParent,
/*183814*/              OPC_MoveParent,
/*183815*/              OPC_MoveChild2,
/*183816*/              OPC_CheckImmAllZerosV,
/*183817*/              OPC_MoveParent,
/*183818*/              OPC_CheckType, MVT::v16i16,
/*183820*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*183822*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*183825*/              OPC_EmitMergeInputChains1_2,
/*183826*/              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:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i16] }) - Complexity = 32
                        // Dst: (VPSRLWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*183839*/            0, // EndSwitchType
/*183840*/          /*SwitchOpcode*/ 99, TARGET_VAL(X86ISD::VSHLV),// ->183942
/*183843*/            OPC_RecordChild0, // #1 = $src1
/*183844*/            OPC_MoveChild1,
/*183845*/            OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->183906
/*183849*/              OPC_RecordMemRef,
/*183850*/              OPC_RecordNode, // #2 = 'ld' chained node
/*183851*/              OPC_CheckFoldableChainNode,
/*183852*/              OPC_RecordChild1, // #3 = $src2
/*183853*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*183855*/              OPC_CheckPredicate, 9, // Predicate_load
/*183857*/              OPC_MoveParent,
/*183858*/              OPC_MoveParent,
/*183859*/              OPC_MoveChild2,
/*183860*/              OPC_CheckImmAllZerosV,
/*183861*/              OPC_MoveParent,
/*183862*/              OPC_SwitchType /*2 cases */, 19, MVT::v16i32,// ->183884
/*183865*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*183867*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*183870*/                OPC_EmitMergeInputChains1_2,
/*183871*/                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, (X86vshlv:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                          // Dst: (VPSLLVDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*183884*/              /*SwitchType*/ 19, MVT::v16i16,// ->183905
/*183886*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*183888*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*183891*/                OPC_EmitMergeInputChains1_2,
/*183892*/                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, (X86vshlv:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i16] }) - Complexity = 32
                          // Dst: (VPSLLVWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*183905*/              0, // EndSwitchType
/*183906*/            /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->183941
/*183909*/              OPC_RecordMemRef,
/*183910*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*183911*/              OPC_CheckFoldableChainNode,
/*183912*/              OPC_RecordChild1, // #3 = $src2
/*183913*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*183915*/              OPC_MoveParent,
/*183916*/              OPC_MoveParent,
/*183917*/              OPC_MoveChild2,
/*183918*/              OPC_CheckImmAllZerosV,
/*183919*/              OPC_MoveParent,
/*183920*/              OPC_CheckType, MVT::v16i32,
/*183922*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*183924*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*183927*/              OPC_EmitMergeInputChains1_2,
/*183928*/              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, (X86vshlv:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                        // Dst: (VPSLLVDZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*183941*/            0, // EndSwitchOpcode
/*183942*/          /*SwitchOpcode*/ 99, TARGET_VAL(X86ISD::VSRAV),// ->184044
/*183945*/            OPC_RecordChild0, // #1 = $src1
/*183946*/            OPC_MoveChild1,
/*183947*/            OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->184008
/*183951*/              OPC_RecordMemRef,
/*183952*/              OPC_RecordNode, // #2 = 'ld' chained node
/*183953*/              OPC_CheckFoldableChainNode,
/*183954*/              OPC_RecordChild1, // #3 = $src2
/*183955*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*183957*/              OPC_CheckPredicate, 9, // Predicate_load
/*183959*/              OPC_MoveParent,
/*183960*/              OPC_MoveParent,
/*183961*/              OPC_MoveChild2,
/*183962*/              OPC_CheckImmAllZerosV,
/*183963*/              OPC_MoveParent,
/*183964*/              OPC_SwitchType /*2 cases */, 19, MVT::v16i32,// ->183986
/*183967*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*183969*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*183972*/                OPC_EmitMergeInputChains1_2,
/*183973*/                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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                          // Dst: (VPSRAVDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*183986*/              /*SwitchType*/ 19, MVT::v16i16,// ->184007
/*183988*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*183990*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*183993*/                OPC_EmitMergeInputChains1_2,
/*183994*/                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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i16] }) - Complexity = 32
                          // Dst: (VPSRAVWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*184007*/              0, // EndSwitchType
/*184008*/            /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->184043
/*184011*/              OPC_RecordMemRef,
/*184012*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*184013*/              OPC_CheckFoldableChainNode,
/*184014*/              OPC_RecordChild1, // #3 = $src2
/*184015*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*184017*/              OPC_MoveParent,
/*184018*/              OPC_MoveParent,
/*184019*/              OPC_MoveChild2,
/*184020*/              OPC_CheckImmAllZerosV,
/*184021*/              OPC_MoveParent,
/*184022*/              OPC_CheckType, MVT::v16i32,
/*184024*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*184026*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*184029*/              OPC_EmitMergeInputChains1_2,
/*184030*/              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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                        // Dst: (VPSRAVDZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*184043*/            0, // EndSwitchOpcode
/*184044*/          /*SwitchOpcode*/ 99, TARGET_VAL(X86ISD::VSRLV),// ->184146
/*184047*/            OPC_RecordChild0, // #1 = $src1
/*184048*/            OPC_MoveChild1,
/*184049*/            OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->184110
/*184053*/              OPC_RecordMemRef,
/*184054*/              OPC_RecordNode, // #2 = 'ld' chained node
/*184055*/              OPC_CheckFoldableChainNode,
/*184056*/              OPC_RecordChild1, // #3 = $src2
/*184057*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*184059*/              OPC_CheckPredicate, 9, // Predicate_load
/*184061*/              OPC_MoveParent,
/*184062*/              OPC_MoveParent,
/*184063*/              OPC_MoveChild2,
/*184064*/              OPC_CheckImmAllZerosV,
/*184065*/              OPC_MoveParent,
/*184066*/              OPC_SwitchType /*2 cases */, 19, MVT::v16i32,// ->184088
/*184069*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*184071*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*184074*/                OPC_EmitMergeInputChains1_2,
/*184075*/                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, (X86vsrlv:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                          // Dst: (VPSRLVDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*184088*/              /*SwitchType*/ 19, MVT::v16i16,// ->184109
/*184090*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*184092*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*184095*/                OPC_EmitMergeInputChains1_2,
/*184096*/                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, (X86vsrlv:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i16] }) - Complexity = 32
                          // Dst: (VPSRLVWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*184109*/              0, // EndSwitchType
/*184110*/            /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->184145
/*184113*/              OPC_RecordMemRef,
/*184114*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*184115*/              OPC_CheckFoldableChainNode,
/*184116*/              OPC_RecordChild1, // #3 = $src2
/*184117*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*184119*/              OPC_MoveParent,
/*184120*/              OPC_MoveParent,
/*184121*/              OPC_MoveChild2,
/*184122*/              OPC_CheckImmAllZerosV,
/*184123*/              OPC_MoveParent,
/*184124*/              OPC_CheckType, MVT::v16i32,
/*184126*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*184128*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*184131*/              OPC_EmitMergeInputChains1_2,
/*184132*/              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, (X86vsrlv:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                        // Dst: (VPSRLVDZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*184145*/            0, // EndSwitchOpcode
/*184146*/          /*SwitchOpcode*/ 80, TARGET_VAL(ISD::ROTR),// ->184229
/*184149*/            OPC_RecordChild0, // #1 = $src1
/*184150*/            OPC_MoveChild1,
/*184151*/            OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->184191
/*184155*/              OPC_RecordMemRef,
/*184156*/              OPC_RecordNode, // #2 = 'ld' chained node
/*184157*/              OPC_CheckFoldableChainNode,
/*184158*/              OPC_RecordChild1, // #3 = $src2
/*184159*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*184161*/              OPC_CheckPredicate, 9, // Predicate_load
/*184163*/              OPC_CheckType, MVT::v16i32,
/*184165*/              OPC_MoveParent,
/*184166*/              OPC_MoveParent,
/*184167*/              OPC_MoveChild2,
/*184168*/              OPC_CheckImmAllZerosV,
/*184169*/              OPC_MoveParent,
/*184170*/              OPC_CheckType, MVT::v16i32,
/*184172*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*184174*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*184177*/              OPC_EmitMergeInputChains1_2,
/*184178*/              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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                        // Dst: (VPRORVDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*184191*/            /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->184228
/*184194*/              OPC_RecordMemRef,
/*184195*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*184196*/              OPC_CheckFoldableChainNode,
/*184197*/              OPC_RecordChild1, // #3 = $src2
/*184198*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*184200*/              OPC_CheckType, MVT::v16i32,
/*184202*/              OPC_MoveParent,
/*184203*/              OPC_MoveParent,
/*184204*/              OPC_MoveChild2,
/*184205*/              OPC_CheckImmAllZerosV,
/*184206*/              OPC_MoveParent,
/*184207*/              OPC_CheckType, MVT::v16i32,
/*184209*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*184211*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*184214*/              OPC_EmitMergeInputChains1_2,
/*184215*/              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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                        // Dst: (VPRORVDZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*184228*/            0, // EndSwitchOpcode
/*184229*/          /*SwitchOpcode*/ 80, TARGET_VAL(ISD::ROTL),// ->184312
/*184232*/            OPC_RecordChild0, // #1 = $src1
/*184233*/            OPC_MoveChild1,
/*184234*/            OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->184274
/*184238*/              OPC_RecordMemRef,
/*184239*/              OPC_RecordNode, // #2 = 'ld' chained node
/*184240*/              OPC_CheckFoldableChainNode,
/*184241*/              OPC_RecordChild1, // #3 = $src2
/*184242*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*184244*/              OPC_CheckPredicate, 9, // Predicate_load
/*184246*/              OPC_CheckType, MVT::v16i32,
/*184248*/              OPC_MoveParent,
/*184249*/              OPC_MoveParent,
/*184250*/              OPC_MoveChild2,
/*184251*/              OPC_CheckImmAllZerosV,
/*184252*/              OPC_MoveParent,
/*184253*/              OPC_CheckType, MVT::v16i32,
/*184255*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*184257*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*184260*/              OPC_EmitMergeInputChains1_2,
/*184261*/              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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                        // Dst: (VPROLVDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*184274*/            /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->184311
/*184277*/              OPC_RecordMemRef,
/*184278*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*184279*/              OPC_CheckFoldableChainNode,
/*184280*/              OPC_RecordChild1, // #3 = $src2
/*184281*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*184283*/              OPC_CheckType, MVT::v16i32,
/*184285*/              OPC_MoveParent,
/*184286*/              OPC_MoveParent,
/*184287*/              OPC_MoveChild2,
/*184288*/              OPC_CheckImmAllZerosV,
/*184289*/              OPC_MoveParent,
/*184290*/              OPC_CheckType, MVT::v16i32,
/*184292*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*184294*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*184297*/              OPC_EmitMergeInputChains1_2,
/*184298*/              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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                        // Dst: (VPROLVDZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*184311*/            0, // EndSwitchOpcode
/*184312*/          /*SwitchOpcode*/ 120, TARGET_VAL(X86ISD::VPERMV),// ->184435
/*184315*/            OPC_RecordChild0, // #1 = $src1
/*184316*/            OPC_MoveChild1,
/*184317*/            OPC_SwitchOpcode /*2 cases */, 78, TARGET_VAL(ISD::LOAD),// ->184399
/*184321*/              OPC_RecordMemRef,
/*184322*/              OPC_RecordNode, // #2 = 'ld' chained node
/*184323*/              OPC_CheckFoldableChainNode,
/*184324*/              OPC_RecordChild1, // #3 = $src2
/*184325*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*184327*/              OPC_CheckPredicate, 9, // Predicate_load
/*184329*/              OPC_MoveParent,
/*184330*/              OPC_MoveParent,
/*184331*/              OPC_MoveChild2,
/*184332*/              OPC_CheckImmAllZerosV,
/*184333*/              OPC_MoveParent,
/*184334*/              OPC_SwitchType /*3 cases */, 19, MVT::v16i16,// ->184356
/*184337*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*184339*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*184342*/                OPC_EmitMergeInputChains1_2,
/*184343*/                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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i16] }) - Complexity = 32
                          // Dst: (VPERMWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*184356*/              /*SwitchType*/ 19, MVT::v16i8,// ->184377
/*184358*/                OPC_CheckPatternPredicate, 181, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*184360*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*184363*/                OPC_EmitMergeInputChains1_2,
/*184364*/                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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i8] }) - Complexity = 32
                          // Dst: (VPERMBZ128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*184377*/              /*SwitchType*/ 19, MVT::v16i32,// ->184398
/*184379*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*184381*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*184384*/                OPC_EmitMergeInputChains1_2,
/*184385*/                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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                          // Dst: (VPERMDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*184398*/              0, // EndSwitchType
/*184399*/            /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->184434
/*184402*/              OPC_RecordMemRef,
/*184403*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*184404*/              OPC_CheckFoldableChainNode,
/*184405*/              OPC_RecordChild1, // #3 = $src2
/*184406*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*184408*/              OPC_MoveParent,
/*184409*/              OPC_MoveParent,
/*184410*/              OPC_MoveChild2,
/*184411*/              OPC_CheckImmAllZerosV,
/*184412*/              OPC_MoveParent,
/*184413*/              OPC_CheckType, MVT::v16i32,
/*184415*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*184417*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*184420*/              OPC_EmitMergeInputChains1_2,
/*184421*/              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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                        // Dst: (VPERMDZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*184434*/            0, // EndSwitchOpcode
/*184435*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::PSHUFB),// ->184477
/*184438*/            OPC_RecordChild0, // #1 = $src1
/*184439*/            OPC_MoveChild1,
/*184440*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*184443*/            OPC_RecordMemRef,
/*184444*/            OPC_RecordNode, // #2 = 'ld' chained node
/*184445*/            OPC_CheckFoldableChainNode,
/*184446*/            OPC_RecordChild1, // #3 = $src2
/*184447*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*184449*/            OPC_CheckPredicate, 9, // Predicate_load
/*184451*/            OPC_MoveParent,
/*184452*/            OPC_MoveParent,
/*184453*/            OPC_MoveChild2,
/*184454*/            OPC_CheckImmAllZerosV,
/*184455*/            OPC_MoveParent,
/*184456*/            OPC_CheckType, MVT::v16i8,
/*184458*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*184460*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*184463*/            OPC_EmitMergeInputChains1_2,
/*184464*/            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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i8] }) - Complexity = 32
                      // Dst: (VPSHUFBZ128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*184477*/          /*SwitchOpcode*/ 85, TARGET_VAL(X86ISD::STRICT_CVTTP2SI),// ->184565
/*184480*/            OPC_RecordNode, // #1 = 'X86strict_cvttp2si' chained node
/*184481*/            OPC_CheckFoldableChainNode,
/*184482*/            OPC_MoveChild1,
/*184483*/            OPC_SwitchOpcode /*2 cases */, 38, TARGET_VAL(ISD::LOAD),// ->184525
/*184487*/              OPC_RecordMemRef,
/*184488*/              OPC_RecordNode, // #2 = 'ld' chained node
/*184489*/              OPC_CheckFoldableChainNode,
/*184490*/              OPC_RecordChild1, // #3 = $src
/*184491*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*184493*/              OPC_CheckPredicate, 9, // Predicate_load
/*184495*/              OPC_CheckType, MVT::v16f32,
/*184497*/              OPC_MoveParent,
/*184498*/              OPC_MoveParent,
/*184499*/              OPC_MoveChild2,
/*184500*/              OPC_CheckImmAllZerosV,
/*184501*/              OPC_MoveParent,
/*184502*/              OPC_CheckType, MVT::v16i32,
/*184504*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*184506*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*184509*/              OPC_EmitMergeInputChains, 2, 1, 2, 
/*184513*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86strict_cvttp2si:{ *:[v16i32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                        // Dst: (VCVTTPS2DQZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*184525*/            /*SwitchOpcode*/ 36, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->184564
/*184528*/              OPC_RecordMemRef,
/*184529*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*184530*/              OPC_CheckFoldableChainNode,
/*184531*/              OPC_RecordChild1, // #3 = $src
/*184532*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*184534*/              OPC_CheckType, MVT::v16f32,
/*184536*/              OPC_MoveParent,
/*184537*/              OPC_MoveParent,
/*184538*/              OPC_MoveChild2,
/*184539*/              OPC_CheckImmAllZerosV,
/*184540*/              OPC_MoveParent,
/*184541*/              OPC_CheckType, MVT::v16i32,
/*184543*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*184545*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*184548*/              OPC_EmitMergeInputChains, 2, 1, 2, 
/*184552*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86strict_cvttp2si:{ *:[v16i32] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                        // Dst: (VCVTTPS2DQZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*184564*/            0, // EndSwitchOpcode
/*184565*/          /*SwitchOpcode*/ 77, TARGET_VAL(X86ISD::CVTTP2SI),// ->184645
/*184568*/            OPC_MoveChild0,
/*184569*/            OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->184608
/*184573*/              OPC_RecordMemRef,
/*184574*/              OPC_RecordNode, // #1 = 'ld' chained node
/*184575*/              OPC_CheckFoldableChainNode,
/*184576*/              OPC_RecordChild1, // #2 = $src
/*184577*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*184579*/              OPC_CheckPredicate, 9, // Predicate_load
/*184581*/              OPC_CheckType, MVT::v16f32,
/*184583*/              OPC_MoveParent,
/*184584*/              OPC_MoveParent,
/*184585*/              OPC_MoveChild2,
/*184586*/              OPC_CheckImmAllZerosV,
/*184587*/              OPC_MoveParent,
/*184588*/              OPC_CheckType, MVT::v16i32,
/*184590*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*184592*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*184595*/              OPC_EmitMergeInputChains1_1,
/*184596*/              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>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                        // Dst: (VCVTTPS2DQZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*184608*/            /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->184644
/*184611*/              OPC_RecordMemRef,
/*184612*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*184613*/              OPC_CheckFoldableChainNode,
/*184614*/              OPC_RecordChild1, // #2 = $src
/*184615*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*184617*/              OPC_CheckType, MVT::v16f32,
/*184619*/              OPC_MoveParent,
/*184620*/              OPC_MoveParent,
/*184621*/              OPC_MoveChild2,
/*184622*/              OPC_CheckImmAllZerosV,
/*184623*/              OPC_MoveParent,
/*184624*/              OPC_CheckType, MVT::v16i32,
/*184626*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*184628*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*184631*/              OPC_EmitMergeInputChains1_1,
/*184632*/              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] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                        // Dst: (VCVTTPS2DQZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*184644*/            0, // EndSwitchOpcode
/*184645*/          /*SwitchOpcode*/ 85, TARGET_VAL(X86ISD::STRICT_CVTTP2UI),// ->184733
/*184648*/            OPC_RecordNode, // #1 = 'X86strict_cvttp2ui' chained node
/*184649*/            OPC_CheckFoldableChainNode,
/*184650*/            OPC_MoveChild1,
/*184651*/            OPC_SwitchOpcode /*2 cases */, 38, TARGET_VAL(ISD::LOAD),// ->184693
/*184655*/              OPC_RecordMemRef,
/*184656*/              OPC_RecordNode, // #2 = 'ld' chained node
/*184657*/              OPC_CheckFoldableChainNode,
/*184658*/              OPC_RecordChild1, // #3 = $src
/*184659*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*184661*/              OPC_CheckPredicate, 9, // Predicate_load
/*184663*/              OPC_CheckType, MVT::v16f32,
/*184665*/              OPC_MoveParent,
/*184666*/              OPC_MoveParent,
/*184667*/              OPC_MoveChild2,
/*184668*/              OPC_CheckImmAllZerosV,
/*184669*/              OPC_MoveParent,
/*184670*/              OPC_CheckType, MVT::v16i32,
/*184672*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*184674*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*184677*/              OPC_EmitMergeInputChains, 2, 1, 2, 
/*184681*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86strict_cvttp2ui:{ *:[v16i32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                        // Dst: (VCVTTPS2UDQZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*184693*/            /*SwitchOpcode*/ 36, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->184732
/*184696*/              OPC_RecordMemRef,
/*184697*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*184698*/              OPC_CheckFoldableChainNode,
/*184699*/              OPC_RecordChild1, // #3 = $src
/*184700*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*184702*/              OPC_CheckType, MVT::v16f32,
/*184704*/              OPC_MoveParent,
/*184705*/              OPC_MoveParent,
/*184706*/              OPC_MoveChild2,
/*184707*/              OPC_CheckImmAllZerosV,
/*184708*/              OPC_MoveParent,
/*184709*/              OPC_CheckType, MVT::v16i32,
/*184711*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*184713*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*184716*/              OPC_EmitMergeInputChains, 2, 1, 2, 
/*184720*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86strict_cvttp2ui:{ *:[v16i32] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                        // Dst: (VCVTTPS2UDQZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*184732*/            0, // EndSwitchOpcode
/*184733*/          /*SwitchOpcode*/ 77, TARGET_VAL(X86ISD::CVTTP2UI),// ->184813
/*184736*/            OPC_MoveChild0,
/*184737*/            OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->184776
/*184741*/              OPC_RecordMemRef,
/*184742*/              OPC_RecordNode, // #1 = 'ld' chained node
/*184743*/              OPC_CheckFoldableChainNode,
/*184744*/              OPC_RecordChild1, // #2 = $src
/*184745*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*184747*/              OPC_CheckPredicate, 9, // Predicate_load
/*184749*/              OPC_CheckType, MVT::v16f32,
/*184751*/              OPC_MoveParent,
/*184752*/              OPC_MoveParent,
/*184753*/              OPC_MoveChild2,
/*184754*/              OPC_CheckImmAllZerosV,
/*184755*/              OPC_MoveParent,
/*184756*/              OPC_CheckType, MVT::v16i32,
/*184758*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*184760*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*184763*/              OPC_EmitMergeInputChains1_1,
/*184764*/              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>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                        // Dst: (VCVTTPS2UDQZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*184776*/            /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->184812
/*184779*/              OPC_RecordMemRef,
/*184780*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*184781*/              OPC_CheckFoldableChainNode,
/*184782*/              OPC_RecordChild1, // #2 = $src
/*184783*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*184785*/              OPC_CheckType, MVT::v16f32,
/*184787*/              OPC_MoveParent,
/*184788*/              OPC_MoveParent,
/*184789*/              OPC_MoveChild2,
/*184790*/              OPC_CheckImmAllZerosV,
/*184791*/              OPC_MoveParent,
/*184792*/              OPC_CheckType, MVT::v16i32,
/*184794*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*184796*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*184799*/              OPC_EmitMergeInputChains1_1,
/*184800*/              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] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                        // Dst: (VCVTTPS2UDQZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*184812*/            0, // EndSwitchOpcode
/*184813*/          /*SwitchOpcode*/ 77, TARGET_VAL(X86ISD::CVTP2SI),// ->184893
/*184816*/            OPC_MoveChild0,
/*184817*/            OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->184856
/*184821*/              OPC_RecordMemRef,
/*184822*/              OPC_RecordNode, // #1 = 'ld' chained node
/*184823*/              OPC_CheckFoldableChainNode,
/*184824*/              OPC_RecordChild1, // #2 = $src
/*184825*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*184827*/              OPC_CheckPredicate, 9, // Predicate_load
/*184829*/              OPC_CheckType, MVT::v16f32,
/*184831*/              OPC_MoveParent,
/*184832*/              OPC_MoveParent,
/*184833*/              OPC_MoveChild2,
/*184834*/              OPC_CheckImmAllZerosV,
/*184835*/              OPC_MoveParent,
/*184836*/              OPC_CheckType, MVT::v16i32,
/*184838*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*184840*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*184843*/              OPC_EmitMergeInputChains1_1,
/*184844*/              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>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                        // Dst: (VCVTPS2DQZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*184856*/            /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->184892
/*184859*/              OPC_RecordMemRef,
/*184860*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*184861*/              OPC_CheckFoldableChainNode,
/*184862*/              OPC_RecordChild1, // #2 = $src
/*184863*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*184865*/              OPC_CheckType, MVT::v16f32,
/*184867*/              OPC_MoveParent,
/*184868*/              OPC_MoveParent,
/*184869*/              OPC_MoveChild2,
/*184870*/              OPC_CheckImmAllZerosV,
/*184871*/              OPC_MoveParent,
/*184872*/              OPC_CheckType, MVT::v16i32,
/*184874*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*184876*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*184879*/              OPC_EmitMergeInputChains1_1,
/*184880*/              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] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                        // Dst: (VCVTPS2DQZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*184892*/            0, // EndSwitchOpcode
/*184893*/          /*SwitchOpcode*/ 77, TARGET_VAL(X86ISD::CVTP2UI),// ->184973
/*184896*/            OPC_MoveChild0,
/*184897*/            OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->184936
/*184901*/              OPC_RecordMemRef,
/*184902*/              OPC_RecordNode, // #1 = 'ld' chained node
/*184903*/              OPC_CheckFoldableChainNode,
/*184904*/              OPC_RecordChild1, // #2 = $src
/*184905*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*184907*/              OPC_CheckPredicate, 9, // Predicate_load
/*184909*/              OPC_CheckType, MVT::v16f32,
/*184911*/              OPC_MoveParent,
/*184912*/              OPC_MoveParent,
/*184913*/              OPC_MoveChild2,
/*184914*/              OPC_CheckImmAllZerosV,
/*184915*/              OPC_MoveParent,
/*184916*/              OPC_CheckType, MVT::v16i32,
/*184918*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*184920*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*184923*/              OPC_EmitMergeInputChains1_1,
/*184924*/              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>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                        // Dst: (VCVTPS2UDQZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*184936*/            /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->184972
/*184939*/              OPC_RecordMemRef,
/*184940*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*184941*/              OPC_CheckFoldableChainNode,
/*184942*/              OPC_RecordChild1, // #2 = $src
/*184943*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*184945*/              OPC_CheckType, MVT::v16f32,
/*184947*/              OPC_MoveParent,
/*184948*/              OPC_MoveParent,
/*184949*/              OPC_MoveChild2,
/*184950*/              OPC_CheckImmAllZerosV,
/*184951*/              OPC_MoveParent,
/*184952*/              OPC_CheckType, MVT::v16i32,
/*184954*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*184956*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*184959*/              OPC_EmitMergeInputChains1_1,
/*184960*/              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] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                        // Dst: (VCVTPS2UDQZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*184972*/            0, // EndSwitchOpcode
/*184973*/          /*SwitchOpcode*/ 115, TARGET_VAL(ISD::ABS),// ->185091
/*184976*/            OPC_MoveChild0,
/*184977*/            OPC_SwitchOpcode /*2 cases */, 75, TARGET_VAL(ISD::LOAD),// ->185056
/*184981*/              OPC_RecordMemRef,
/*184982*/              OPC_RecordNode, // #1 = 'ld' chained node
/*184983*/              OPC_CheckFoldableChainNode,
/*184984*/              OPC_RecordChild1, // #2 = $src1
/*184985*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*184987*/              OPC_CheckPredicate, 9, // Predicate_load
/*184989*/              OPC_MoveParent,
/*184990*/              OPC_MoveParent,
/*184991*/              OPC_MoveChild2,
/*184992*/              OPC_CheckImmAllZerosV,
/*184993*/              OPC_MoveParent,
/*184994*/              OPC_SwitchType /*3 cases */, 18, MVT::v16i32,// ->185015
/*184997*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*184999*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*185002*/                OPC_EmitMergeInputChains1_1,
/*185003*/                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] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                          // Dst: (VPABSDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*185015*/              /*SwitchType*/ 18, MVT::v16i16,// ->185035
/*185017*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*185019*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*185022*/                OPC_EmitMergeInputChains1_1,
/*185023*/                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] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i16] }) - Complexity = 32
                          // Dst: (VPABSWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*185035*/              /*SwitchType*/ 18, MVT::v16i8,// ->185055
/*185037*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*185039*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*185042*/                OPC_EmitMergeInputChains1_1,
/*185043*/                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] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i8] }) - Complexity = 32
                          // Dst: (VPABSBZ128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*185055*/              0, // EndSwitchType
/*185056*/            /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->185090
/*185059*/              OPC_RecordMemRef,
/*185060*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*185061*/              OPC_CheckFoldableChainNode,
/*185062*/              OPC_RecordChild1, // #2 = $src1
/*185063*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*185065*/              OPC_MoveParent,
/*185066*/              OPC_MoveParent,
/*185067*/              OPC_MoveChild2,
/*185068*/              OPC_CheckImmAllZerosV,
/*185069*/              OPC_MoveParent,
/*185070*/              OPC_CheckType, MVT::v16i32,
/*185072*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*185074*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*185077*/              OPC_EmitMergeInputChains1_1,
/*185078*/              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] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                        // Dst: (VPABSDZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*185090*/            0, // EndSwitchOpcode
/*185091*/          /*SwitchOpcode*/ 77, TARGET_VAL(ISD::CTLZ),// ->185171
/*185094*/            OPC_MoveChild0,
/*185095*/            OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->185134
/*185099*/              OPC_RecordMemRef,
/*185100*/              OPC_RecordNode, // #1 = 'ld' chained node
/*185101*/              OPC_CheckFoldableChainNode,
/*185102*/              OPC_RecordChild1, // #2 = $src1
/*185103*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*185105*/              OPC_CheckPredicate, 9, // Predicate_load
/*185107*/              OPC_CheckType, MVT::v16i32,
/*185109*/              OPC_MoveParent,
/*185110*/              OPC_MoveParent,
/*185111*/              OPC_MoveChild2,
/*185112*/              OPC_CheckImmAllZerosV,
/*185113*/              OPC_MoveParent,
/*185114*/              OPC_CheckType, MVT::v16i32,
/*185116*/              OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*185118*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*185121*/              OPC_EmitMergeInputChains1_1,
/*185122*/              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] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                        // Dst: (VPLZCNTDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*185134*/            /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->185170
/*185137*/              OPC_RecordMemRef,
/*185138*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*185139*/              OPC_CheckFoldableChainNode,
/*185140*/              OPC_RecordChild1, // #2 = $src1
/*185141*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*185143*/              OPC_CheckType, MVT::v16i32,
/*185145*/              OPC_MoveParent,
/*185146*/              OPC_MoveParent,
/*185147*/              OPC_MoveChild2,
/*185148*/              OPC_CheckImmAllZerosV,
/*185149*/              OPC_MoveParent,
/*185150*/              OPC_CheckType, MVT::v16i32,
/*185152*/              OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*185154*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*185157*/              OPC_EmitMergeInputChains1_1,
/*185158*/              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] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                        // Dst: (VPLZCNTDZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*185170*/            0, // EndSwitchOpcode
/*185171*/          /*SwitchOpcode*/ 73, TARGET_VAL(X86ISD::CONFLICT),// ->185247
/*185174*/            OPC_MoveChild0,
/*185175*/            OPC_SwitchOpcode /*2 cases */, 33, TARGET_VAL(ISD::LOAD),// ->185212
/*185179*/              OPC_RecordMemRef,
/*185180*/              OPC_RecordNode, // #1 = 'ld' chained node
/*185181*/              OPC_CheckFoldableChainNode,
/*185182*/              OPC_RecordChild1, // #2 = $src1
/*185183*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*185185*/              OPC_CheckPredicate, 9, // Predicate_load
/*185187*/              OPC_MoveParent,
/*185188*/              OPC_MoveParent,
/*185189*/              OPC_MoveChild2,
/*185190*/              OPC_CheckImmAllZerosV,
/*185191*/              OPC_MoveParent,
/*185192*/              OPC_CheckType, MVT::v16i32,
/*185194*/              OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*185196*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*185199*/              OPC_EmitMergeInputChains1_1,
/*185200*/              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] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                        // Dst: (VPCONFLICTDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*185212*/            /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->185246
/*185215*/              OPC_RecordMemRef,
/*185216*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*185217*/              OPC_CheckFoldableChainNode,
/*185218*/              OPC_RecordChild1, // #2 = $src1
/*185219*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*185221*/              OPC_MoveParent,
/*185222*/              OPC_MoveParent,
/*185223*/              OPC_MoveChild2,
/*185224*/              OPC_CheckImmAllZerosV,
/*185225*/              OPC_MoveParent,
/*185226*/              OPC_CheckType, MVT::v16i32,
/*185228*/              OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*185230*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*185233*/              OPC_EmitMergeInputChains1_1,
/*185234*/              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] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                        // Dst: (VPCONFLICTDZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*185246*/            0, // EndSwitchOpcode
/*185247*/          /*SwitchOpcode*/ 5|128,1/*133*/, TARGET_VAL(ISD::CTPOP),// ->185384
/*185251*/            OPC_MoveChild0,
/*185252*/            OPC_SwitchOpcode /*2 cases */, 91, TARGET_VAL(ISD::LOAD),// ->185347
/*185256*/              OPC_RecordMemRef,
/*185257*/              OPC_RecordNode, // #1 = 'ld' chained node
/*185258*/              OPC_CheckFoldableChainNode,
/*185259*/              OPC_RecordChild1, // #2 = $src1
/*185260*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*185262*/              OPC_CheckPredicate, 9, // Predicate_load
/*185264*/              OPC_SwitchType /*3 cases */, 25, MVT::v16i32,// ->185292
/*185267*/                OPC_MoveParent,
/*185268*/                OPC_MoveParent,
/*185269*/                OPC_MoveChild2,
/*185270*/                OPC_CheckImmAllZerosV,
/*185271*/                OPC_MoveParent,
/*185272*/                OPC_CheckType, MVT::v16i32,
/*185274*/                OPC_CheckPatternPredicate, 142, // (Subtarget->hasVPOPCNTDQ())
/*185276*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*185279*/                OPC_EmitMergeInputChains1_1,
/*185280*/                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] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                          // Dst: (VPOPCNTDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*185292*/              /*SwitchType*/ 25, MVT::v16i8,// ->185319
/*185294*/                OPC_MoveParent,
/*185295*/                OPC_MoveParent,
/*185296*/                OPC_MoveChild2,
/*185297*/                OPC_CheckImmAllZerosV,
/*185298*/                OPC_MoveParent,
/*185299*/                OPC_CheckType, MVT::v16i8,
/*185301*/                OPC_CheckPatternPredicate, 115, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/*185303*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*185306*/                OPC_EmitMergeInputChains1_1,
/*185307*/                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] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i8] }) - Complexity = 32
                          // Dst: (VPOPCNTBZ128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*185319*/              /*SwitchType*/ 25, MVT::v16i16,// ->185346
/*185321*/                OPC_MoveParent,
/*185322*/                OPC_MoveParent,
/*185323*/                OPC_MoveChild2,
/*185324*/                OPC_CheckImmAllZerosV,
/*185325*/                OPC_MoveParent,
/*185326*/                OPC_CheckType, MVT::v16i16,
/*185328*/                OPC_CheckPatternPredicate, 115, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/*185330*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*185333*/                OPC_EmitMergeInputChains1_1,
/*185334*/                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] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i16] }) - Complexity = 32
                          // Dst: (VPOPCNTWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*185346*/              0, // EndSwitchType
/*185347*/            /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->185383
/*185350*/              OPC_RecordMemRef,
/*185351*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*185352*/              OPC_CheckFoldableChainNode,
/*185353*/              OPC_RecordChild1, // #2 = $src1
/*185354*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*185356*/              OPC_CheckType, MVT::v16i32,
/*185358*/              OPC_MoveParent,
/*185359*/              OPC_MoveParent,
/*185360*/              OPC_MoveChild2,
/*185361*/              OPC_CheckImmAllZerosV,
/*185362*/              OPC_MoveParent,
/*185363*/              OPC_CheckType, MVT::v16i32,
/*185365*/              OPC_CheckPatternPredicate, 142, // (Subtarget->hasVPOPCNTDQ())
/*185367*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*185370*/              OPC_EmitMergeInputChains1_1,
/*185371*/              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] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                        // Dst: (VPOPCNTDZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*185383*/            0, // EndSwitchOpcode
/*185384*/          /*SwitchOpcode*/ 120, TARGET_VAL(X86ISD::UNPCKL),// ->185507
/*185387*/            OPC_RecordChild0, // #1 = $src1
/*185388*/            OPC_MoveChild1,
/*185389*/            OPC_SwitchOpcode /*2 cases */, 78, TARGET_VAL(ISD::LOAD),// ->185471
/*185393*/              OPC_RecordMemRef,
/*185394*/              OPC_RecordNode, // #2 = 'ld' chained node
/*185395*/              OPC_CheckFoldableChainNode,
/*185396*/              OPC_RecordChild1, // #3 = $src2
/*185397*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*185399*/              OPC_CheckPredicate, 9, // Predicate_load
/*185401*/              OPC_MoveParent,
/*185402*/              OPC_MoveParent,
/*185403*/              OPC_MoveChild2,
/*185404*/              OPC_CheckImmAllZerosV,
/*185405*/              OPC_MoveParent,
/*185406*/              OPC_SwitchType /*3 cases */, 19, MVT::v16i8,// ->185428
/*185409*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*185411*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*185414*/                OPC_EmitMergeInputChains1_2,
/*185415*/                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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i8] }) - Complexity = 32
                          // Dst: (VPUNPCKLBWZ128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*185428*/              /*SwitchType*/ 19, MVT::v16i16,// ->185449
/*185430*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*185432*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*185435*/                OPC_EmitMergeInputChains1_2,
/*185436*/                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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i16] }) - Complexity = 32
                          // Dst: (VPUNPCKLWDZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*185449*/              /*SwitchType*/ 19, MVT::v16i32,// ->185470
/*185451*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*185453*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*185456*/                OPC_EmitMergeInputChains1_2,
/*185457*/                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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                          // Dst: (VPUNPCKLDQZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*185470*/              0, // EndSwitchType
/*185471*/            /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->185506
/*185474*/              OPC_RecordMemRef,
/*185475*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*185476*/              OPC_CheckFoldableChainNode,
/*185477*/              OPC_RecordChild1, // #3 = $src2
/*185478*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*185480*/              OPC_MoveParent,
/*185481*/              OPC_MoveParent,
/*185482*/              OPC_MoveChild2,
/*185483*/              OPC_CheckImmAllZerosV,
/*185484*/              OPC_MoveParent,
/*185485*/              OPC_CheckType, MVT::v16i32,
/*185487*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*185489*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*185492*/              OPC_EmitMergeInputChains1_2,
/*185493*/              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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                        // Dst: (VPUNPCKLDQZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*185506*/            0, // EndSwitchOpcode
/*185507*/          /*SwitchOpcode*/ 120, TARGET_VAL(X86ISD::UNPCKH),// ->185630
/*185510*/            OPC_RecordChild0, // #1 = $src1
/*185511*/            OPC_MoveChild1,
/*185512*/            OPC_SwitchOpcode /*2 cases */, 78, TARGET_VAL(ISD::LOAD),// ->185594
/*185516*/              OPC_RecordMemRef,
/*185517*/              OPC_RecordNode, // #2 = 'ld' chained node
/*185518*/              OPC_CheckFoldableChainNode,
/*185519*/              OPC_RecordChild1, // #3 = $src2
/*185520*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*185522*/              OPC_CheckPredicate, 9, // Predicate_load
/*185524*/              OPC_MoveParent,
/*185525*/              OPC_MoveParent,
/*185526*/              OPC_MoveChild2,
/*185527*/              OPC_CheckImmAllZerosV,
/*185528*/              OPC_MoveParent,
/*185529*/              OPC_SwitchType /*3 cases */, 19, MVT::v16i8,// ->185551
/*185532*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*185534*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*185537*/                OPC_EmitMergeInputChains1_2,
/*185538*/                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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i8] }) - Complexity = 32
                          // Dst: (VPUNPCKHBWZ128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*185551*/              /*SwitchType*/ 19, MVT::v16i16,// ->185572
/*185553*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*185555*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*185558*/                OPC_EmitMergeInputChains1_2,
/*185559*/                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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i16] }) - Complexity = 32
                          // Dst: (VPUNPCKHWDZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*185572*/              /*SwitchType*/ 19, MVT::v16i32,// ->185593
/*185574*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*185576*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*185579*/                OPC_EmitMergeInputChains1_2,
/*185580*/                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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                          // Dst: (VPUNPCKHDQZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*185593*/              0, // EndSwitchType
/*185594*/            /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->185629
/*185597*/              OPC_RecordMemRef,
/*185598*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*185599*/              OPC_CheckFoldableChainNode,
/*185600*/              OPC_RecordChild1, // #3 = $src2
/*185601*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*185603*/              OPC_MoveParent,
/*185604*/              OPC_MoveParent,
/*185605*/              OPC_MoveChild2,
/*185606*/              OPC_CheckImmAllZerosV,
/*185607*/              OPC_MoveParent,
/*185608*/              OPC_CheckType, MVT::v16i32,
/*185610*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*185612*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*185615*/              OPC_EmitMergeInputChains1_2,
/*185616*/              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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                        // Dst: (VPUNPCKHDQZrmbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*185629*/            0, // EndSwitchOpcode
/*185630*/          /*SwitchOpcode*/ 109, TARGET_VAL(X86ISD::VSHLDV),// ->185742
/*185633*/            OPC_RecordChild0, // #1 = $src1
/*185634*/            OPC_RecordChild1, // #2 = $src2
/*185635*/            OPC_MoveChild2,
/*185636*/            OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->185703
/*185640*/              OPC_RecordMemRef,
/*185641*/              OPC_RecordNode, // #3 = 'ld' chained node
/*185642*/              OPC_CheckFoldableChainNode,
/*185643*/              OPC_RecordChild1, // #4 = $src3
/*185644*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*185646*/              OPC_CheckPredicate, 9, // Predicate_load
/*185648*/              OPC_MoveParent,
/*185649*/              OPC_MoveParent,
/*185650*/              OPC_MoveChild2,
/*185651*/              OPC_CheckImmAllZerosV,
/*185652*/              OPC_MoveParent,
/*185653*/              OPC_SwitchType /*2 cases */, 22, MVT::v16i16,// ->185678
/*185656*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*185658*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*185661*/                OPC_EmitMergeInputChains, 1, 3, 
/*185664*/                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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i16] }) - Complexity = 32
                          // Dst: (VPSHLDVWZ256mkz:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/*185678*/              /*SwitchType*/ 22, MVT::v16i32,// ->185702
/*185680*/                OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*185682*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*185685*/                OPC_EmitMergeInputChains, 1, 3, 
/*185688*/                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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                          // Dst: (VPSHLDVDZmkz:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*185702*/              0, // EndSwitchType
/*185703*/            /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->185741
/*185706*/              OPC_RecordMemRef,
/*185707*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*185708*/              OPC_CheckFoldableChainNode,
/*185709*/              OPC_RecordChild1, // #4 = $src3
/*185710*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*185712*/              OPC_MoveParent,
/*185713*/              OPC_MoveParent,
/*185714*/              OPC_MoveChild2,
/*185715*/              OPC_CheckImmAllZerosV,
/*185716*/              OPC_MoveParent,
/*185717*/              OPC_CheckType, MVT::v16i32,
/*185719*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*185721*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*185724*/              OPC_EmitMergeInputChains, 1, 3, 
/*185727*/              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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                        // Dst: (VPSHLDVDZmbkz:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*185741*/            0, // EndSwitchOpcode
/*185742*/          /*SwitchOpcode*/ 109, TARGET_VAL(X86ISD::VSHRDV),// ->185854
/*185745*/            OPC_RecordChild0, // #1 = $src1
/*185746*/            OPC_RecordChild1, // #2 = $src2
/*185747*/            OPC_MoveChild2,
/*185748*/            OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->185815
/*185752*/              OPC_RecordMemRef,
/*185753*/              OPC_RecordNode, // #3 = 'ld' chained node
/*185754*/              OPC_CheckFoldableChainNode,
/*185755*/              OPC_RecordChild1, // #4 = $src3
/*185756*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*185758*/              OPC_CheckPredicate, 9, // Predicate_load
/*185760*/              OPC_MoveParent,
/*185761*/              OPC_MoveParent,
/*185762*/              OPC_MoveChild2,
/*185763*/              OPC_CheckImmAllZerosV,
/*185764*/              OPC_MoveParent,
/*185765*/              OPC_SwitchType /*2 cases */, 22, MVT::v16i16,// ->185790
/*185768*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*185770*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*185773*/                OPC_EmitMergeInputChains, 1, 3, 
/*185776*/                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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i16] }) - Complexity = 32
                          // Dst: (VPSHRDVWZ256mkz:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/*185790*/              /*SwitchType*/ 22, MVT::v16i32,// ->185814
/*185792*/                OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*185794*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*185797*/                OPC_EmitMergeInputChains, 1, 3, 
/*185800*/                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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                          // Dst: (VPSHRDVDZmkz:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*185814*/              0, // EndSwitchType
/*185815*/            /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->185853
/*185818*/              OPC_RecordMemRef,
/*185819*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*185820*/              OPC_CheckFoldableChainNode,
/*185821*/              OPC_RecordChild1, // #4 = $src3
/*185822*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*185824*/              OPC_MoveParent,
/*185825*/              OPC_MoveParent,
/*185826*/              OPC_MoveChild2,
/*185827*/              OPC_CheckImmAllZerosV,
/*185828*/              OPC_MoveParent,
/*185829*/              OPC_CheckType, MVT::v16i32,
/*185831*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*185833*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*185836*/              OPC_EmitMergeInputChains, 1, 3, 
/*185839*/              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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                        // Dst: (VPSHRDVDZmbkz:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*185853*/            0, // EndSwitchOpcode
/*185854*/          /*SwitchOpcode*/ 83, TARGET_VAL(X86ISD::VPDPBUSD),// ->185940
/*185857*/            OPC_RecordChild0, // #1 = $src1
/*185858*/            OPC_RecordChild1, // #2 = $src2
/*185859*/            OPC_MoveChild2,
/*185860*/            OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->185901
/*185864*/              OPC_RecordMemRef,
/*185865*/              OPC_RecordNode, // #3 = 'ld' chained node
/*185866*/              OPC_CheckFoldableChainNode,
/*185867*/              OPC_RecordChild1, // #4 = $src3
/*185868*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*185870*/              OPC_CheckPredicate, 9, // Predicate_load
/*185872*/              OPC_MoveParent,
/*185873*/              OPC_MoveParent,
/*185874*/              OPC_MoveChild2,
/*185875*/              OPC_CheckImmAllZerosV,
/*185876*/              OPC_MoveParent,
/*185877*/              OPC_CheckType, MVT::v16i32,
/*185879*/              OPC_CheckPatternPredicate, 148, // (Subtarget->hasVNNI())
/*185881*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*185884*/              OPC_EmitMergeInputChains, 1, 3, 
/*185887*/              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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                        // Dst: (VPDPBUSDZmkz:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*185901*/            /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->185939
/*185904*/              OPC_RecordMemRef,
/*185905*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*185906*/              OPC_CheckFoldableChainNode,
/*185907*/              OPC_RecordChild1, // #4 = $src3
/*185908*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*185910*/              OPC_MoveParent,
/*185911*/              OPC_MoveParent,
/*185912*/              OPC_MoveChild2,
/*185913*/              OPC_CheckImmAllZerosV,
/*185914*/              OPC_MoveParent,
/*185915*/              OPC_CheckType, MVT::v16i32,
/*185917*/              OPC_CheckPatternPredicate, 148, // (Subtarget->hasVNNI())
/*185919*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*185922*/              OPC_EmitMergeInputChains, 1, 3, 
/*185925*/              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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                        // Dst: (VPDPBUSDZmbkz:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*185939*/            0, // EndSwitchOpcode
/*185940*/          /*SwitchOpcode*/ 83, TARGET_VAL(X86ISD::VPDPBUSDS),// ->186026
/*185943*/            OPC_RecordChild0, // #1 = $src1
/*185944*/            OPC_RecordChild1, // #2 = $src2
/*185945*/            OPC_MoveChild2,
/*185946*/            OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->185987
/*185950*/              OPC_RecordMemRef,
/*185951*/              OPC_RecordNode, // #3 = 'ld' chained node
/*185952*/              OPC_CheckFoldableChainNode,
/*185953*/              OPC_RecordChild1, // #4 = $src3
/*185954*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*185956*/              OPC_CheckPredicate, 9, // Predicate_load
/*185958*/              OPC_MoveParent,
/*185959*/              OPC_MoveParent,
/*185960*/              OPC_MoveChild2,
/*185961*/              OPC_CheckImmAllZerosV,
/*185962*/              OPC_MoveParent,
/*185963*/              OPC_CheckType, MVT::v16i32,
/*185965*/              OPC_CheckPatternPredicate, 148, // (Subtarget->hasVNNI())
/*185967*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*185970*/              OPC_EmitMergeInputChains, 1, 3, 
/*185973*/              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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                        // Dst: (VPDPBUSDSZmkz:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*185987*/            /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->186025
/*185990*/              OPC_RecordMemRef,
/*185991*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*185992*/              OPC_CheckFoldableChainNode,
/*185993*/              OPC_RecordChild1, // #4 = $src3
/*185994*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*185996*/              OPC_MoveParent,
/*185997*/              OPC_MoveParent,
/*185998*/              OPC_MoveChild2,
/*185999*/              OPC_CheckImmAllZerosV,
/*186000*/              OPC_MoveParent,
/*186001*/              OPC_CheckType, MVT::v16i32,
/*186003*/              OPC_CheckPatternPredicate, 148, // (Subtarget->hasVNNI())
/*186005*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*186008*/              OPC_EmitMergeInputChains, 1, 3, 
/*186011*/              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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                        // Dst: (VPDPBUSDSZmbkz:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*186025*/            0, // EndSwitchOpcode
/*186026*/          /*SwitchOpcode*/ 83, TARGET_VAL(X86ISD::VPDPWSSD),// ->186112
/*186029*/            OPC_RecordChild0, // #1 = $src1
/*186030*/            OPC_RecordChild1, // #2 = $src2
/*186031*/            OPC_MoveChild2,
/*186032*/            OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->186073
/*186036*/              OPC_RecordMemRef,
/*186037*/              OPC_RecordNode, // #3 = 'ld' chained node
/*186038*/              OPC_CheckFoldableChainNode,
/*186039*/              OPC_RecordChild1, // #4 = $src3
/*186040*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*186042*/              OPC_CheckPredicate, 9, // Predicate_load
/*186044*/              OPC_MoveParent,
/*186045*/              OPC_MoveParent,
/*186046*/              OPC_MoveChild2,
/*186047*/              OPC_CheckImmAllZerosV,
/*186048*/              OPC_MoveParent,
/*186049*/              OPC_CheckType, MVT::v16i32,
/*186051*/              OPC_CheckPatternPredicate, 148, // (Subtarget->hasVNNI())
/*186053*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*186056*/              OPC_EmitMergeInputChains, 1, 3, 
/*186059*/              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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                        // Dst: (VPDPWSSDZmkz:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*186073*/            /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->186111
/*186076*/              OPC_RecordMemRef,
/*186077*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*186078*/              OPC_CheckFoldableChainNode,
/*186079*/              OPC_RecordChild1, // #4 = $src3
/*186080*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*186082*/              OPC_MoveParent,
/*186083*/              OPC_MoveParent,
/*186084*/              OPC_MoveChild2,
/*186085*/              OPC_CheckImmAllZerosV,
/*186086*/              OPC_MoveParent,
/*186087*/              OPC_CheckType, MVT::v16i32,
/*186089*/              OPC_CheckPatternPredicate, 148, // (Subtarget->hasVNNI())
/*186091*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*186094*/              OPC_EmitMergeInputChains, 1, 3, 
/*186097*/              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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                        // Dst: (VPDPWSSDZmbkz:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*186111*/            0, // EndSwitchOpcode
/*186112*/          /*SwitchOpcode*/ 83, TARGET_VAL(X86ISD::VPDPWSSDS),// ->186198
/*186115*/            OPC_RecordChild0, // #1 = $src1
/*186116*/            OPC_RecordChild1, // #2 = $src2
/*186117*/            OPC_MoveChild2,
/*186118*/            OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->186159
/*186122*/              OPC_RecordMemRef,
/*186123*/              OPC_RecordNode, // #3 = 'ld' chained node
/*186124*/              OPC_CheckFoldableChainNode,
/*186125*/              OPC_RecordChild1, // #4 = $src3
/*186126*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*186128*/              OPC_CheckPredicate, 9, // Predicate_load
/*186130*/              OPC_MoveParent,
/*186131*/              OPC_MoveParent,
/*186132*/              OPC_MoveChild2,
/*186133*/              OPC_CheckImmAllZerosV,
/*186134*/              OPC_MoveParent,
/*186135*/              OPC_CheckType, MVT::v16i32,
/*186137*/              OPC_CheckPatternPredicate, 148, // (Subtarget->hasVNNI())
/*186139*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*186142*/              OPC_EmitMergeInputChains, 1, 3, 
/*186145*/              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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                        // Dst: (VPDPWSSDSZmkz:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*186159*/            /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->186197
/*186162*/              OPC_RecordMemRef,
/*186163*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*186164*/              OPC_CheckFoldableChainNode,
/*186165*/              OPC_RecordChild1, // #4 = $src3
/*186166*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*186168*/              OPC_MoveParent,
/*186169*/              OPC_MoveParent,
/*186170*/              OPC_MoveChild2,
/*186171*/              OPC_CheckImmAllZerosV,
/*186172*/              OPC_MoveParent,
/*186173*/              OPC_CheckType, MVT::v16i32,
/*186175*/              OPC_CheckPatternPredicate, 148, // (Subtarget->hasVNNI())
/*186177*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*186180*/              OPC_EmitMergeInputChains, 1, 3, 
/*186183*/              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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16i32] }) - Complexity = 32
                        // Dst: (VPDPWSSDSZmbkz:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*186197*/            0, // EndSwitchOpcode
/*186198*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::GF2P8MULB),// ->186240
/*186201*/            OPC_RecordChild0, // #1 = $src1
/*186202*/            OPC_MoveChild1,
/*186203*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*186206*/            OPC_RecordMemRef,
/*186207*/            OPC_RecordNode, // #2 = 'ld' chained node
/*186208*/            OPC_CheckFoldableChainNode,
/*186209*/            OPC_RecordChild1, // #3 = $src2
/*186210*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*186212*/            OPC_CheckPredicate, 9, // Predicate_load
/*186214*/            OPC_MoveParent,
/*186215*/            OPC_MoveParent,
/*186216*/            OPC_MoveChild2,
/*186217*/            OPC_CheckImmAllZerosV,
/*186218*/            OPC_MoveParent,
/*186219*/            OPC_CheckType, MVT::v16i8,
/*186221*/            OPC_CheckPatternPredicate, 180, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*186223*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*186226*/            OPC_EmitMergeInputChains1_2,
/*186227*/            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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i8] }) - Complexity = 32
                      // Dst: (VGF2P8MULBZ128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*186240*/          /*SwitchOpcode*/ 78, TARGET_VAL(X86ISD::CVTNE2PS2BF16),// ->186321
/*186243*/            OPC_RecordChild0, // #1 = $src1
/*186244*/            OPC_CheckChild0Type, MVT::v8f32,
/*186246*/            OPC_MoveChild1,
/*186247*/            OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->186285
/*186251*/              OPC_RecordMemRef,
/*186252*/              OPC_RecordNode, // #2 = 'ld' chained node
/*186253*/              OPC_CheckFoldableChainNode,
/*186254*/              OPC_RecordChild1, // #3 = $src2
/*186255*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*186257*/              OPC_CheckPredicate, 9, // Predicate_load
/*186259*/              OPC_MoveParent,
/*186260*/              OPC_MoveParent,
/*186261*/              OPC_MoveChild2,
/*186262*/              OPC_CheckImmAllZerosV,
/*186263*/              OPC_MoveParent,
/*186264*/              OPC_CheckType, MVT::v16i16,
/*186266*/              OPC_CheckPatternPredicate, 182, // (Subtarget->hasBF16()) && (Subtarget->hasVLX())
/*186268*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*186271*/              OPC_EmitMergeInputChains1_2,
/*186272*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTNE2PS2BF16Z256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86cvtne2ps2bf16:{ *:[v16i16] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i16] }) - Complexity = 32
                        // Dst: (VCVTNE2PS2BF16Z256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*186285*/            /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->186320
/*186288*/              OPC_RecordMemRef,
/*186289*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*186290*/              OPC_CheckFoldableChainNode,
/*186291*/              OPC_RecordChild1, // #3 = $src2
/*186292*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*186294*/              OPC_MoveParent,
/*186295*/              OPC_MoveParent,
/*186296*/              OPC_MoveChild2,
/*186297*/              OPC_CheckImmAllZerosV,
/*186298*/              OPC_MoveParent,
/*186299*/              OPC_CheckType, MVT::v16i16,
/*186301*/              OPC_CheckPatternPredicate, 182, // (Subtarget->hasBF16()) && (Subtarget->hasVLX())
/*186303*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*186306*/              OPC_EmitMergeInputChains1_2,
/*186307*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTNE2PS2BF16Z256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86cvtne2ps2bf16:{ *:[v16i16] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16i16] }) - Complexity = 32
                        // Dst: (VCVTNE2PS2BF16Z256rmbkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*186320*/            0, // EndSwitchOpcode
/*186321*/          /*SwitchOpcode*/ 77, TARGET_VAL(X86ISD::CVTNEPS2BF16),// ->186401
/*186324*/            OPC_MoveChild0,
/*186325*/            OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->186364
/*186329*/              OPC_RecordMemRef,
/*186330*/              OPC_RecordNode, // #1 = 'ld' chained node
/*186331*/              OPC_CheckFoldableChainNode,
/*186332*/              OPC_RecordChild1, // #2 = $src
/*186333*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*186335*/              OPC_CheckPredicate, 9, // Predicate_load
/*186337*/              OPC_CheckType, MVT::v16f32,
/*186339*/              OPC_MoveParent,
/*186340*/              OPC_MoveParent,
/*186341*/              OPC_MoveChild2,
/*186342*/              OPC_CheckImmAllZerosV,
/*186343*/              OPC_MoveParent,
/*186344*/              OPC_CheckType, MVT::v16i16,
/*186346*/              OPC_CheckPatternPredicate, 183, // (Subtarget->hasBF16())
/*186348*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*186351*/              OPC_EmitMergeInputChains1_1,
/*186352*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTNEPS2BF16Zrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86cvtneps2bf16:{ *:[v16i16] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16i16] }) - Complexity = 32
                        // Dst: (VCVTNEPS2BF16Zrmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*186364*/            /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->186400
/*186367*/              OPC_RecordMemRef,
/*186368*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*186369*/              OPC_CheckFoldableChainNode,
/*186370*/              OPC_RecordChild1, // #2 = $src
/*186371*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*186373*/              OPC_CheckType, MVT::v16f32,
/*186375*/              OPC_MoveParent,
/*186376*/              OPC_MoveParent,
/*186377*/              OPC_MoveChild2,
/*186378*/              OPC_CheckImmAllZerosV,
/*186379*/              OPC_MoveParent,
/*186380*/              OPC_CheckType, MVT::v16i16,
/*186382*/              OPC_CheckPatternPredicate, 183, // (Subtarget->hasBF16())
/*186384*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*186387*/              OPC_EmitMergeInputChains1_1,
/*186388*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTNEPS2BF16Zrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86cvtneps2bf16:{ *:[v16i16] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16i16] }) - Complexity = 32
                        // Dst: (VCVTNEPS2BF16Zrmbkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*186400*/            0, // EndSwitchOpcode
/*186401*/          0, // EndSwitchOpcode
/*186402*/        /*Scope*/ 100, /*->186503*/
/*186403*/          OPC_RecordChild1, // #1 = $src3
/*186404*/          OPC_MoveChild1,
/*186405*/          OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*186408*/          OPC_RecordChild0, // #2 = $src1
/*186409*/          OPC_MoveChild1,
/*186410*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*186413*/          OPC_RecordMemRef,
/*186414*/          OPC_RecordNode, // #3 = 'ld' chained node
/*186415*/          OPC_CheckFoldableChainNode,
/*186416*/          OPC_RecordChild1, // #4 = $src2
/*186417*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*186419*/          OPC_CheckPredicate, 9, // Predicate_load
/*186421*/          OPC_SwitchType /*2 cases */, 38, MVT::v4i32,// ->186462
/*186424*/            OPC_MoveParent,
/*186425*/            OPC_MoveChild2,
/*186426*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*186429*/            OPC_CheckType, MVT::iPTR,
/*186431*/            OPC_MoveParent,
/*186432*/            OPC_MoveParent,
/*186433*/            OPC_RecordChild2, // #5 = $src0
/*186434*/            OPC_CheckType, MVT::v16i32,
/*186436*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*186438*/            OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*186441*/            OPC_EmitMergeInputChains, 1, 3, 
/*186444*/            OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*186447*/            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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$src3, VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                      // 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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[iPTR] })):$src3))
/*186462*/          /*SwitchType*/ 38, MVT::v8i32,// ->186502
/*186464*/            OPC_MoveParent,
/*186465*/            OPC_MoveChild2,
/*186466*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*186469*/            OPC_CheckType, MVT::iPTR,
/*186471*/            OPC_MoveParent,
/*186472*/            OPC_MoveParent,
/*186473*/            OPC_RecordChild2, // #5 = $src0
/*186474*/            OPC_CheckType, MVT::v16i32,
/*186476*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*186478*/            OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*186481*/            OPC_EmitMergeInputChains, 1, 3, 
/*186484*/            OPC_EmitNodeXForm, 16, 1, // INSERT_get_vinsert256_imm
/*186487*/            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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$src3, VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                      // 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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[iPTR] })):$src3))
/*186502*/          0, // EndSwitchType
/*186503*/        /*Scope*/ 98|128,78/*10082*/, /*->196587*/
/*186505*/          OPC_MoveChild1,
/*186506*/          OPC_SwitchOpcode /*76 cases */, 7|128,9/*1159*/, TARGET_VAL(ISD::BITCAST),// ->187670
/*186511*/            OPC_Scope, 51|128,6/*819*/, /*->187333*/ // 3 children in Scope
/*186514*/              OPC_MoveChild0,
/*186515*/              OPC_SwitchOpcode /*6 cases */, 72, TARGET_VAL(X86ISD::SUBV_BROADCAST),// ->186591
/*186519*/                OPC_MoveChild0,
/*186520*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*186523*/                OPC_RecordMemRef,
/*186524*/                OPC_RecordNode, // #1 = 'ld' chained node
/*186525*/                OPC_CheckFoldableChainNode,
/*186526*/                OPC_RecordChild1, // #2 = $src
/*186527*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*186529*/                OPC_CheckPredicate, 9, // Predicate_load
/*186531*/                OPC_SwitchType /*2 cases */, 27, MVT::v2i64,// ->186561
/*186534*/                  OPC_MoveParent,
/*186535*/                  OPC_CheckType, MVT::v8i64,
/*186537*/                  OPC_MoveParent,
/*186538*/                  OPC_MoveParent,
/*186539*/                  OPC_RecordChild2, // #3 = $src0
/*186540*/                  OPC_CheckType, MVT::v16i32,
/*186542*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*186544*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*186547*/                  OPC_EmitMergeInputChains1_1,
/*186548*/                  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>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                            // Dst: (VBROADCASTI32X4rmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*186561*/                /*SwitchType*/ 27, MVT::v4i64,// ->186590
/*186563*/                  OPC_MoveParent,
/*186564*/                  OPC_CheckType, MVT::v8i64,
/*186566*/                  OPC_MoveParent,
/*186567*/                  OPC_MoveParent,
/*186568*/                  OPC_RecordChild2, // #3 = $src0
/*186569*/                  OPC_CheckType, MVT::v16i32,
/*186571*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*186573*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*186576*/                  OPC_EmitMergeInputChains1_1,
/*186577*/                  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>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                            // Dst: (VBROADCASTI32X8rmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*186590*/                0, // EndSwitchType
/*186591*/              /*SwitchOpcode*/ 70|128,1/*198*/, TARGET_VAL(ISD::AND),// ->186793
/*186595*/                OPC_Scope, 97, /*->186694*/ // 2 children in Scope
/*186597*/                  OPC_RecordChild0, // #1 = $src1
/*186598*/                  OPC_MoveChild1,
/*186599*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*186602*/                  OPC_RecordMemRef,
/*186603*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*186604*/                  OPC_CheckFoldableChainNode,
/*186605*/                  OPC_RecordChild1, // #3 = $src2
/*186606*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*186608*/                  OPC_CheckPredicate, 9, // Predicate_load
/*186610*/                  OPC_MoveParent,
/*186611*/                  OPC_SwitchType /*3 cases */, 25, MVT::v8i64,// ->186639
/*186614*/                    OPC_MoveParent,
/*186615*/                    OPC_MoveParent,
/*186616*/                    OPC_RecordChild2, // #4 = $src0
/*186617*/                    OPC_CheckType, MVT::v16i32,
/*186619*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*186621*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*186624*/                    OPC_EmitMergeInputChains1_2,
/*186625*/                    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>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                              // Dst: (VPANDDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*186639*/                  /*SwitchType*/ 25, MVT::v32i16,// ->186666
/*186641*/                    OPC_MoveParent,
/*186642*/                    OPC_MoveParent,
/*186643*/                    OPC_RecordChild2, // #4 = $src0
/*186644*/                    OPC_CheckType, MVT::v16i32,
/*186646*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*186648*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*186651*/                    OPC_EmitMergeInputChains1_2,
/*186652*/                    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:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                              // Dst: (VPANDDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*186666*/                  /*SwitchType*/ 25, MVT::v64i8,// ->186693
/*186668*/                    OPC_MoveParent,
/*186669*/                    OPC_MoveParent,
/*186670*/                    OPC_RecordChild2, // #4 = $src0
/*186671*/                    OPC_CheckType, MVT::v16i32,
/*186673*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*186675*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*186678*/                    OPC_EmitMergeInputChains1_2,
/*186679*/                    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:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                              // Dst: (VPANDDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*186693*/                  0, // EndSwitchType
/*186694*/                /*Scope*/ 97, /*->186792*/
/*186695*/                  OPC_MoveChild0,
/*186696*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*186699*/                  OPC_RecordMemRef,
/*186700*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*186701*/                  OPC_CheckFoldableChainNode,
/*186702*/                  OPC_RecordChild1, // #2 = $src2
/*186703*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*186705*/                  OPC_CheckPredicate, 9, // Predicate_load
/*186707*/                  OPC_MoveParent,
/*186708*/                  OPC_RecordChild1, // #3 = $src1
/*186709*/                  OPC_SwitchType /*3 cases */, 25, MVT::v8i64,// ->186737
/*186712*/                    OPC_MoveParent,
/*186713*/                    OPC_MoveParent,
/*186714*/                    OPC_RecordChild2, // #4 = $src0
/*186715*/                    OPC_CheckType, MVT::v16i32,
/*186717*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*186719*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*186722*/                    OPC_EmitMergeInputChains1_1,
/*186723*/                    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>>, VR512:{ *:[v8i64] }:$src1)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                              // Dst: (VPANDDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*186737*/                  /*SwitchType*/ 25, MVT::v32i16,// ->186764
/*186739*/                    OPC_MoveParent,
/*186740*/                    OPC_MoveParent,
/*186741*/                    OPC_RecordChild2, // #4 = $src0
/*186742*/                    OPC_CheckType, MVT::v16i32,
/*186744*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*186746*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*186749*/                    OPC_EmitMergeInputChains1_1,
/*186750*/                    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:{ *:[v32i16] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                              // Dst: (VPANDDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*186764*/                  /*SwitchType*/ 25, MVT::v64i8,// ->186791
/*186766*/                    OPC_MoveParent,
/*186767*/                    OPC_MoveParent,
/*186768*/                    OPC_RecordChild2, // #4 = $src0
/*186769*/                    OPC_CheckType, MVT::v16i32,
/*186771*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*186773*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*186776*/                    OPC_EmitMergeInputChains1_1,
/*186777*/                    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:{ *:[v64i8] } (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v64i8] }:$src1)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                              // Dst: (VPANDDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*186791*/                  0, // EndSwitchType
/*186792*/                0, /*End of Scope*/
/*186793*/              /*SwitchOpcode*/ 70|128,1/*198*/, TARGET_VAL(ISD::OR),// ->186995
/*186797*/                OPC_Scope, 97, /*->186896*/ // 2 children in Scope
/*186799*/                  OPC_RecordChild0, // #1 = $src1
/*186800*/                  OPC_MoveChild1,
/*186801*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*186804*/                  OPC_RecordMemRef,
/*186805*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*186806*/                  OPC_CheckFoldableChainNode,
/*186807*/                  OPC_RecordChild1, // #3 = $src2
/*186808*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*186810*/                  OPC_CheckPredicate, 9, // Predicate_load
/*186812*/                  OPC_MoveParent,
/*186813*/                  OPC_SwitchType /*3 cases */, 25, MVT::v8i64,// ->186841
/*186816*/                    OPC_MoveParent,
/*186817*/                    OPC_MoveParent,
/*186818*/                    OPC_RecordChild2, // #4 = $src0
/*186819*/                    OPC_CheckType, MVT::v16i32,
/*186821*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*186823*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*186826*/                    OPC_EmitMergeInputChains1_2,
/*186827*/                    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>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                              // Dst: (VPORDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*186841*/                  /*SwitchType*/ 25, MVT::v32i16,// ->186868
/*186843*/                    OPC_MoveParent,
/*186844*/                    OPC_MoveParent,
/*186845*/                    OPC_RecordChild2, // #4 = $src0
/*186846*/                    OPC_CheckType, MVT::v16i32,
/*186848*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*186850*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*186853*/                    OPC_EmitMergeInputChains1_2,
/*186854*/                    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:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                              // Dst: (VPORDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*186868*/                  /*SwitchType*/ 25, MVT::v64i8,// ->186895
/*186870*/                    OPC_MoveParent,
/*186871*/                    OPC_MoveParent,
/*186872*/                    OPC_RecordChild2, // #4 = $src0
/*186873*/                    OPC_CheckType, MVT::v16i32,
/*186875*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*186877*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*186880*/                    OPC_EmitMergeInputChains1_2,
/*186881*/                    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:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                              // Dst: (VPORDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*186895*/                  0, // EndSwitchType
/*186896*/                /*Scope*/ 97, /*->186994*/
/*186897*/                  OPC_MoveChild0,
/*186898*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*186901*/                  OPC_RecordMemRef,
/*186902*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*186903*/                  OPC_CheckFoldableChainNode,
/*186904*/                  OPC_RecordChild1, // #2 = $src2
/*186905*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*186907*/                  OPC_CheckPredicate, 9, // Predicate_load
/*186909*/                  OPC_MoveParent,
/*186910*/                  OPC_RecordChild1, // #3 = $src1
/*186911*/                  OPC_SwitchType /*3 cases */, 25, MVT::v8i64,// ->186939
/*186914*/                    OPC_MoveParent,
/*186915*/                    OPC_MoveParent,
/*186916*/                    OPC_RecordChild2, // #4 = $src0
/*186917*/                    OPC_CheckType, MVT::v16i32,
/*186919*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*186921*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*186924*/                    OPC_EmitMergeInputChains1_1,
/*186925*/                    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>>, VR512:{ *:[v8i64] }:$src1)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                              // Dst: (VPORDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*186939*/                  /*SwitchType*/ 25, MVT::v32i16,// ->186966
/*186941*/                    OPC_MoveParent,
/*186942*/                    OPC_MoveParent,
/*186943*/                    OPC_RecordChild2, // #4 = $src0
/*186944*/                    OPC_CheckType, MVT::v16i32,
/*186946*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*186948*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*186951*/                    OPC_EmitMergeInputChains1_1,
/*186952*/                    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:{ *:[v32i16] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                              // Dst: (VPORDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*186966*/                  /*SwitchType*/ 25, MVT::v64i8,// ->186993
/*186968*/                    OPC_MoveParent,
/*186969*/                    OPC_MoveParent,
/*186970*/                    OPC_RecordChild2, // #4 = $src0
/*186971*/                    OPC_CheckType, MVT::v16i32,
/*186973*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*186975*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*186978*/                    OPC_EmitMergeInputChains1_1,
/*186979*/                    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:{ *:[v64i8] } (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v64i8] }:$src1)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                              // Dst: (VPORDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*186993*/                  0, // EndSwitchType
/*186994*/                0, /*End of Scope*/
/*186995*/              /*SwitchOpcode*/ 70|128,1/*198*/, TARGET_VAL(ISD::XOR),// ->187197
/*186999*/                OPC_Scope, 97, /*->187098*/ // 2 children in Scope
/*187001*/                  OPC_RecordChild0, // #1 = $src1
/*187002*/                  OPC_MoveChild1,
/*187003*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*187006*/                  OPC_RecordMemRef,
/*187007*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*187008*/                  OPC_CheckFoldableChainNode,
/*187009*/                  OPC_RecordChild1, // #3 = $src2
/*187010*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*187012*/                  OPC_CheckPredicate, 9, // Predicate_load
/*187014*/                  OPC_MoveParent,
/*187015*/                  OPC_SwitchType /*3 cases */, 25, MVT::v8i64,// ->187043
/*187018*/                    OPC_MoveParent,
/*187019*/                    OPC_MoveParent,
/*187020*/                    OPC_RecordChild2, // #4 = $src0
/*187021*/                    OPC_CheckType, MVT::v16i32,
/*187023*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*187025*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*187028*/                    OPC_EmitMergeInputChains1_2,
/*187029*/                    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>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                              // Dst: (VPXORDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*187043*/                  /*SwitchType*/ 25, MVT::v32i16,// ->187070
/*187045*/                    OPC_MoveParent,
/*187046*/                    OPC_MoveParent,
/*187047*/                    OPC_RecordChild2, // #4 = $src0
/*187048*/                    OPC_CheckType, MVT::v16i32,
/*187050*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*187052*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*187055*/                    OPC_EmitMergeInputChains1_2,
/*187056*/                    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:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                              // Dst: (VPXORDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*187070*/                  /*SwitchType*/ 25, MVT::v64i8,// ->187097
/*187072*/                    OPC_MoveParent,
/*187073*/                    OPC_MoveParent,
/*187074*/                    OPC_RecordChild2, // #4 = $src0
/*187075*/                    OPC_CheckType, MVT::v16i32,
/*187077*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*187079*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*187082*/                    OPC_EmitMergeInputChains1_2,
/*187083*/                    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:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                              // Dst: (VPXORDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*187097*/                  0, // EndSwitchType
/*187098*/                /*Scope*/ 97, /*->187196*/
/*187099*/                  OPC_MoveChild0,
/*187100*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*187103*/                  OPC_RecordMemRef,
/*187104*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*187105*/                  OPC_CheckFoldableChainNode,
/*187106*/                  OPC_RecordChild1, // #2 = $src2
/*187107*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*187109*/                  OPC_CheckPredicate, 9, // Predicate_load
/*187111*/                  OPC_MoveParent,
/*187112*/                  OPC_RecordChild1, // #3 = $src1
/*187113*/                  OPC_SwitchType /*3 cases */, 25, MVT::v8i64,// ->187141
/*187116*/                    OPC_MoveParent,
/*187117*/                    OPC_MoveParent,
/*187118*/                    OPC_RecordChild2, // #4 = $src0
/*187119*/                    OPC_CheckType, MVT::v16i32,
/*187121*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*187123*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*187126*/                    OPC_EmitMergeInputChains1_1,
/*187127*/                    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>>, VR512:{ *:[v8i64] }:$src1)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                              // Dst: (VPXORDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*187141*/                  /*SwitchType*/ 25, MVT::v32i16,// ->187168
/*187143*/                    OPC_MoveParent,
/*187144*/                    OPC_MoveParent,
/*187145*/                    OPC_RecordChild2, // #4 = $src0
/*187146*/                    OPC_CheckType, MVT::v16i32,
/*187148*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*187150*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*187153*/                    OPC_EmitMergeInputChains1_1,
/*187154*/                    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:{ *:[v32i16] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                              // Dst: (VPXORDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*187168*/                  /*SwitchType*/ 25, MVT::v64i8,// ->187195
/*187170*/                    OPC_MoveParent,
/*187171*/                    OPC_MoveParent,
/*187172*/                    OPC_RecordChild2, // #4 = $src0
/*187173*/                    OPC_CheckType, MVT::v16i32,
/*187175*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*187177*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*187180*/                    OPC_EmitMergeInputChains1_1,
/*187181*/                    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:{ *:[v64i8] } (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v64i8] }:$src1)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                              // Dst: (VPXORDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*187195*/                  0, // EndSwitchType
/*187196*/                0, /*End of Scope*/
/*187197*/              /*SwitchOpcode*/ 97, TARGET_VAL(X86ISD::ANDNP),// ->187297
/*187200*/                OPC_RecordChild0, // #1 = $src1
/*187201*/                OPC_MoveChild1,
/*187202*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*187205*/                OPC_RecordMemRef,
/*187206*/                OPC_RecordNode, // #2 = 'ld' chained node
/*187207*/                OPC_CheckFoldableChainNode,
/*187208*/                OPC_RecordChild1, // #3 = $src2
/*187209*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*187211*/                OPC_CheckPredicate, 9, // Predicate_load
/*187213*/                OPC_MoveParent,
/*187214*/                OPC_SwitchType /*3 cases */, 25, MVT::v8i64,// ->187242
/*187217*/                  OPC_MoveParent,
/*187218*/                  OPC_MoveParent,
/*187219*/                  OPC_RecordChild2, // #4 = $src0
/*187220*/                  OPC_CheckType, MVT::v16i32,
/*187222*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*187224*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*187227*/                  OPC_EmitMergeInputChains1_2,
/*187228*/                  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>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                            // Dst: (VPANDNDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*187242*/                /*SwitchType*/ 25, MVT::v32i16,// ->187269
/*187244*/                  OPC_MoveParent,
/*187245*/                  OPC_MoveParent,
/*187246*/                  OPC_RecordChild2, // #4 = $src0
/*187247*/                  OPC_CheckType, MVT::v16i32,
/*187249*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*187251*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*187254*/                  OPC_EmitMergeInputChains1_2,
/*187255*/                  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:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                            // Dst: (VPANDNDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*187269*/                /*SwitchType*/ 25, MVT::v64i8,// ->187296
/*187271*/                  OPC_MoveParent,
/*187272*/                  OPC_MoveParent,
/*187273*/                  OPC_RecordChild2, // #4 = $src0
/*187274*/                  OPC_CheckType, MVT::v16i32,
/*187276*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*187278*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*187281*/                  OPC_EmitMergeInputChains1_2,
/*187282*/                  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:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                            // Dst: (VPANDNDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*187296*/                0, // EndSwitchType
/*187297*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->187332
/*187300*/                OPC_RecordMemRef,
/*187301*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*187302*/                OPC_CheckFoldableChainNode,
/*187303*/                OPC_RecordChild1, // #2 = $src
/*187304*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*187306*/                OPC_CheckType, MVT::v8i64,
/*187308*/                OPC_MoveParent,
/*187309*/                OPC_MoveParent,
/*187310*/                OPC_RecordChild2, // #3 = $src0
/*187311*/                OPC_CheckType, MVT::v16i32,
/*187313*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*187315*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*187318*/                OPC_EmitMergeInputChains1_1,
/*187319*/                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] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                          // Dst: (VBROADCASTI32X2Zmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*187332*/              0, // EndSwitchOpcode
/*187333*/            /*Scope*/ 85|128,1/*213*/, /*->187548*/
/*187335*/              OPC_RecordChild0, // #1 = $ins
/*187336*/              OPC_MoveChild0,
/*187337*/              OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*187340*/              OPC_RecordChild0, // #2 = $src1
/*187341*/              OPC_RecordChild1, // #3 = $src2
/*187342*/              OPC_Scope, 33, /*->187377*/ // 6 children in Scope
/*187344*/                OPC_CheckChild1Type, MVT::v2i64,
/*187346*/                OPC_MoveChild2,
/*187347*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*187350*/                OPC_CheckType, MVT::iPTR,
/*187352*/                OPC_MoveParent,
/*187353*/                OPC_CheckType, MVT::v8i64,
/*187355*/                OPC_MoveParent,
/*187356*/                OPC_MoveParent,
/*187357*/                OPC_MoveChild2,
/*187358*/                OPC_CheckImmAllZerosV,
/*187359*/                OPC_MoveParent,
/*187360*/                OPC_CheckType, MVT::v16i32,
/*187362*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*187364*/                OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*187367*/                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), immAllZerosV:{ *:[v16i32] }) - Complexity = 16
                          // Dst: (VINSERTI32x4Zrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR512:{ *:[v8i64] }:$ins))
/*187377*/              /*Scope*/ 33, /*->187411*/
/*187378*/                OPC_CheckChild1Type, MVT::v8i16,
/*187380*/                OPC_MoveChild2,
/*187381*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*187384*/                OPC_CheckType, MVT::iPTR,
/*187386*/                OPC_MoveParent,
/*187387*/                OPC_CheckType, MVT::v32i16,
/*187389*/                OPC_MoveParent,
/*187390*/                OPC_MoveParent,
/*187391*/                OPC_MoveChild2,
/*187392*/                OPC_CheckImmAllZerosV,
/*187393*/                OPC_MoveParent,
/*187394*/                OPC_CheckType, MVT::v16i32,
/*187396*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*187398*/                OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*187401*/                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), immAllZerosV:{ *:[v16i32] }) - Complexity = 16
                          // Dst: (VINSERTI32x4Zrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR512:{ *:[v32i16] }:$ins))
/*187411*/              /*Scope*/ 33, /*->187445*/
/*187412*/                OPC_CheckChild1Type, MVT::v16i8,
/*187414*/                OPC_MoveChild2,
/*187415*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*187418*/                OPC_CheckType, MVT::iPTR,
/*187420*/                OPC_MoveParent,
/*187421*/                OPC_CheckType, MVT::v64i8,
/*187423*/                OPC_MoveParent,
/*187424*/                OPC_MoveParent,
/*187425*/                OPC_MoveChild2,
/*187426*/                OPC_CheckImmAllZerosV,
/*187427*/                OPC_MoveParent,
/*187428*/                OPC_CheckType, MVT::v16i32,
/*187430*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*187432*/                OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*187435*/                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), immAllZerosV:{ *:[v16i32] }) - Complexity = 16
                          // Dst: (VINSERTI32x4Zrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR512:{ *:[v64i8] }:$ins))
/*187445*/              /*Scope*/ 33, /*->187479*/
/*187446*/                OPC_CheckChild1Type, MVT::v4i64,
/*187448*/                OPC_MoveChild2,
/*187449*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*187452*/                OPC_CheckType, MVT::iPTR,
/*187454*/                OPC_MoveParent,
/*187455*/                OPC_CheckType, MVT::v8i64,
/*187457*/                OPC_MoveParent,
/*187458*/                OPC_MoveParent,
/*187459*/                OPC_MoveChild2,
/*187460*/                OPC_CheckImmAllZerosV,
/*187461*/                OPC_MoveParent,
/*187462*/                OPC_CheckType, MVT::v16i32,
/*187464*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*187466*/                OPC_EmitNodeXForm, 16, 1, // INSERT_get_vinsert256_imm
/*187469*/                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), immAllZerosV:{ *:[v16i32] }) - Complexity = 16
                          // Dst: (VINSERTI32x8Zrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } VR512:{ *:[v8i64] }:$ins))
/*187479*/              /*Scope*/ 33, /*->187513*/
/*187480*/                OPC_CheckChild1Type, MVT::v16i16,
/*187482*/                OPC_MoveChild2,
/*187483*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*187486*/                OPC_CheckType, MVT::iPTR,
/*187488*/                OPC_MoveParent,
/*187489*/                OPC_CheckType, MVT::v32i16,
/*187491*/                OPC_MoveParent,
/*187492*/                OPC_MoveParent,
/*187493*/                OPC_MoveChild2,
/*187494*/                OPC_CheckImmAllZerosV,
/*187495*/                OPC_MoveParent,
/*187496*/                OPC_CheckType, MVT::v16i32,
/*187498*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*187500*/                OPC_EmitNodeXForm, 16, 1, // INSERT_get_vinsert256_imm
/*187503*/                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), immAllZerosV:{ *:[v16i32] }) - Complexity = 16
                          // Dst: (VINSERTI32x8Zrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } VR512:{ *:[v32i16] }:$ins))
/*187513*/              /*Scope*/ 33, /*->187547*/
/*187514*/                OPC_CheckChild1Type, MVT::v32i8,
/*187516*/                OPC_MoveChild2,
/*187517*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*187520*/                OPC_CheckType, MVT::iPTR,
/*187522*/                OPC_MoveParent,
/*187523*/                OPC_CheckType, MVT::v64i8,
/*187525*/                OPC_MoveParent,
/*187526*/                OPC_MoveParent,
/*187527*/                OPC_MoveChild2,
/*187528*/                OPC_CheckImmAllZerosV,
/*187529*/                OPC_MoveParent,
/*187530*/                OPC_CheckType, MVT::v16i32,
/*187532*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*187534*/                OPC_EmitNodeXForm, 16, 1, // INSERT_get_vinsert256_imm
/*187537*/                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), immAllZerosV:{ *:[v16i32] }) - Complexity = 16
                          // Dst: (VINSERTI32x8Zrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } VR512:{ *:[v64i8] }:$ins))
/*187547*/              0, /*End of Scope*/
/*187548*/            /*Scope*/ 120, /*->187669*/
/*187549*/              OPC_MoveChild0,
/*187550*/              OPC_SwitchOpcode /*2 cases */, 29, TARGET_VAL(X86ISD::SHUF128),// ->187583
/*187554*/                OPC_RecordChild0, // #1 = $src1
/*187555*/                OPC_RecordChild1, // #2 = $src2
/*187556*/                OPC_RecordChild2, // #3 = $src3
/*187557*/                OPC_MoveChild2,
/*187558*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*187561*/                OPC_MoveParent,
/*187562*/                OPC_CheckType, MVT::v8i64,
/*187564*/                OPC_MoveParent,
/*187565*/                OPC_MoveParent,
/*187566*/                OPC_MoveChild2,
/*187567*/                OPC_CheckImmAllZerosV,
/*187568*/                OPC_MoveParent,
/*187569*/                OPC_CheckType, MVT::v16i32,
/*187571*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*187573*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI32X4Zrrikz), 0,
                              MVT::v16i32, 4/*#Ops*/, 0, 1, 2, 3, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (X86Shuf128:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (timm:{ *:[i8] }):$src3)), immAllZerosV:{ *:[v16i32] }) - Complexity = 16
                          // Dst: (VSHUFI32X4Zrrikz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (timm:{ *:[i8] }):$src3)
/*187583*/              /*SwitchOpcode*/ 82, TARGET_VAL(X86ISD::VALIGN),// ->187668
/*187586*/                OPC_RecordChild0, // #1 = $src1
/*187587*/                OPC_RecordChild1, // #2 = $src2
/*187588*/                OPC_RecordChild2, // #3 = $src3
/*187589*/                OPC_MoveChild2,
/*187590*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*187593*/                OPC_MoveParent,
/*187594*/                OPC_SwitchType /*3 cases */, 22, MVT::v8i64,// ->187619
/*187597*/                  OPC_MoveParent,
/*187598*/                  OPC_MoveParent,
/*187599*/                  OPC_MoveChild2,
/*187600*/                  OPC_CheckImmAllZerosV,
/*187601*/                  OPC_MoveParent,
/*187602*/                  OPC_CheckType, MVT::v16i32,
/*187604*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*187606*/                  OPC_EmitNodeXForm, 14, 3, // ValignqImm32XForm
/*187609*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZrrikz), 0,
                                MVT::v16i32, 4/*#Ops*/, 0, 1, 2, 4, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (X86VAlign:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (timm:{ *:[i8] }):$src3)), immAllZerosV:{ *:[v16i32] }) - Complexity = 16
                            // Dst: (VALIGNDZrrikz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (ValignqImm32XForm:{ *:[i8] } (timm:{ *:[i8] }):$src3))
/*187619*/                /*SwitchType*/ 22, MVT::v2i64,// ->187643
/*187621*/                  OPC_MoveParent,
/*187622*/                  OPC_MoveParent,
/*187623*/                  OPC_MoveChild2,
/*187624*/                  OPC_CheckImmAllZerosV,
/*187625*/                  OPC_MoveParent,
/*187626*/                  OPC_CheckType, MVT::v16i8,
/*187628*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*187630*/                  OPC_EmitNodeXForm, 17, 3, // ValignqImm8XForm
/*187633*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPALIGNRZ128rrikz), 0,
                                MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 4, 
                            // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i8] } (X86VAlign:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (timm:{ *:[i8] }):$src3)), immAllZerosV:{ *:[v16i8] }) - Complexity = 16
                            // Dst: (VPALIGNRZ128rrikz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (ValignqImm8XForm:{ *:[i8] } (timm:{ *:[i8] }):$src3))
/*187643*/                /*SwitchType*/ 22, MVT::v4i32,// ->187667
/*187645*/                  OPC_MoveParent,
/*187646*/                  OPC_MoveParent,
/*187647*/                  OPC_MoveChild2,
/*187648*/                  OPC_CheckImmAllZerosV,
/*187649*/                  OPC_MoveParent,
/*187650*/                  OPC_CheckType, MVT::v16i8,
/*187652*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*187654*/                  OPC_EmitNodeXForm, 18, 3, // ValigndImm8XForm
/*187657*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPALIGNRZ128rrikz), 0,
                                MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 4, 
                            // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i8] } (X86VAlign:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (timm:{ *:[i8] }):$src3)), immAllZerosV:{ *:[v16i8] }) - Complexity = 16
                            // Dst: (VPALIGNRZ128rrikz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (ValigndImm8XForm:{ *:[i8] } (timm:{ *:[i8] }):$src3))
/*187667*/                0, // EndSwitchType
/*187668*/              0, // EndSwitchOpcode
/*187669*/            0, /*End of Scope*/
/*187670*/          /*SwitchOpcode*/ 83, TARGET_VAL(X86ISD::MULTISHIFT),// ->187756
/*187673*/            OPC_RecordChild0, // #1 = $src1
/*187674*/            OPC_CheckChild0Type, MVT::v16i8,
/*187676*/            OPC_MoveChild1,
/*187677*/            OPC_SwitchOpcode /*2 cases */, 38, TARGET_VAL(ISD::BITCAST),// ->187719
/*187681*/              OPC_MoveChild0,
/*187682*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*187685*/              OPC_RecordMemRef,
/*187686*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*187687*/              OPC_CheckFoldableChainNode,
/*187688*/              OPC_RecordChild1, // #3 = $src2
/*187689*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*187691*/              OPC_CheckType, MVT::v2i64,
/*187693*/              OPC_MoveParent,
/*187694*/              OPC_MoveParent,
/*187695*/              OPC_MoveParent,
/*187696*/              OPC_RecordChild2, // #4 = $src0
/*187697*/              OPC_CheckType, MVT::v16i8,
/*187699*/              OPC_CheckPatternPredicate, 181, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*187701*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*187704*/              OPC_EmitMergeInputChains1_2,
/*187705*/              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] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>)), VR128X:{ *:[v16i8] }:$src0) - Complexity = 31
                        // Dst: (VPMULTISHIFTQBZ128rmbk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*187719*/            /*SwitchOpcode*/ 33, TARGET_VAL(ISD::LOAD),// ->187755
/*187722*/              OPC_RecordMemRef,
/*187723*/              OPC_RecordNode, // #2 = 'ld' chained node
/*187724*/              OPC_CheckFoldableChainNode,
/*187725*/              OPC_RecordChild1, // #3 = $src2
/*187726*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*187728*/              OPC_CheckPredicate, 9, // Predicate_load
/*187730*/              OPC_MoveParent,
/*187731*/              OPC_MoveParent,
/*187732*/              OPC_RecordChild2, // #4 = $src0
/*187733*/              OPC_CheckType, MVT::v16i8,
/*187735*/              OPC_CheckPatternPredicate, 181, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*187737*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*187740*/              OPC_EmitMergeInputChains1_2,
/*187741*/              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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v16i8] }:$src0) - Complexity = 28
                        // Dst: (VPMULTISHIFTQBZ128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*187755*/            0, // EndSwitchOpcode
/*187756*/          /*SwitchOpcode*/ 109, TARGET_VAL(X86ISD::VSRLI),// ->187868
/*187759*/            OPC_MoveChild0,
/*187760*/            OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->187827
/*187764*/              OPC_RecordMemRef,
/*187765*/              OPC_RecordNode, // #1 = 'ld' chained node
/*187766*/              OPC_CheckFoldableChainNode,
/*187767*/              OPC_RecordChild1, // #2 = $src1
/*187768*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*187770*/              OPC_CheckPredicate, 9, // Predicate_load
/*187772*/              OPC_MoveParent,
/*187773*/              OPC_RecordChild1, // #3 = $src2
/*187774*/              OPC_MoveChild1,
/*187775*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*187778*/              OPC_MoveParent,
/*187779*/              OPC_MoveParent,
/*187780*/              OPC_RecordChild2, // #4 = $src0
/*187781*/              OPC_SwitchType /*2 cases */, 20, MVT::v16i32,// ->187804
/*187784*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*187786*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*187789*/                OPC_EmitMergeInputChains1_1,
/*187790*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vsrli:{ *:[v16i32] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                          // Dst: (VPSRLDZmik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*187804*/              /*SwitchType*/ 20, MVT::v16i16,// ->187826
/*187806*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*187808*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*187811*/                OPC_EmitMergeInputChains1_1,
/*187812*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLWZ256mik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86vsrli:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), VR256X:{ *:[v16i16] }:$src0) - Complexity = 31
                          // Dst: (VPSRLWZ256mik:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*187826*/              0, // EndSwitchType
/*187827*/            /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->187867
/*187830*/              OPC_RecordMemRef,
/*187831*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*187832*/              OPC_CheckFoldableChainNode,
/*187833*/              OPC_RecordChild1, // #2 = $src1
/*187834*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*187836*/              OPC_MoveParent,
/*187837*/              OPC_RecordChild1, // #3 = $src2
/*187838*/              OPC_MoveChild1,
/*187839*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*187842*/              OPC_MoveParent,
/*187843*/              OPC_MoveParent,
/*187844*/              OPC_RecordChild2, // #4 = $src0
/*187845*/              OPC_CheckType, MVT::v16i32,
/*187847*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*187849*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*187852*/              OPC_EmitMergeInputChains1_1,
/*187853*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vsrli:{ *:[v16i32] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src2), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                        // Dst: (VPSRLDZmbik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*187867*/            0, // EndSwitchOpcode
/*187868*/          /*SwitchOpcode*/ 109, TARGET_VAL(X86ISD::VSHLI),// ->187980
/*187871*/            OPC_MoveChild0,
/*187872*/            OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->187939
/*187876*/              OPC_RecordMemRef,
/*187877*/              OPC_RecordNode, // #1 = 'ld' chained node
/*187878*/              OPC_CheckFoldableChainNode,
/*187879*/              OPC_RecordChild1, // #2 = $src1
/*187880*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*187882*/              OPC_CheckPredicate, 9, // Predicate_load
/*187884*/              OPC_MoveParent,
/*187885*/              OPC_RecordChild1, // #3 = $src2
/*187886*/              OPC_MoveChild1,
/*187887*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*187890*/              OPC_MoveParent,
/*187891*/              OPC_MoveParent,
/*187892*/              OPC_RecordChild2, // #4 = $src0
/*187893*/              OPC_SwitchType /*2 cases */, 20, MVT::v16i32,// ->187916
/*187896*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*187898*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*187901*/                OPC_EmitMergeInputChains1_1,
/*187902*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vshli:{ *:[v16i32] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                          // Dst: (VPSLLDZmik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*187916*/              /*SwitchType*/ 20, MVT::v16i16,// ->187938
/*187918*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*187920*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*187923*/                OPC_EmitMergeInputChains1_1,
/*187924*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLWZ256mik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86vshli:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), VR256X:{ *:[v16i16] }:$src0) - Complexity = 31
                          // Dst: (VPSLLWZ256mik:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*187938*/              0, // EndSwitchType
/*187939*/            /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->187979
/*187942*/              OPC_RecordMemRef,
/*187943*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*187944*/              OPC_CheckFoldableChainNode,
/*187945*/              OPC_RecordChild1, // #2 = $src1
/*187946*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*187948*/              OPC_MoveParent,
/*187949*/              OPC_RecordChild1, // #3 = $src2
/*187950*/              OPC_MoveChild1,
/*187951*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*187954*/              OPC_MoveParent,
/*187955*/              OPC_MoveParent,
/*187956*/              OPC_RecordChild2, // #4 = $src0
/*187957*/              OPC_CheckType, MVT::v16i32,
/*187959*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*187961*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*187964*/              OPC_EmitMergeInputChains1_1,
/*187965*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vshli:{ *:[v16i32] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src2), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                        // Dst: (VPSLLDZmbik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*187979*/            0, // EndSwitchOpcode
/*187980*/          /*SwitchOpcode*/ 109, TARGET_VAL(X86ISD::VSRAI),// ->188092
/*187983*/            OPC_MoveChild0,
/*187984*/            OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->188051
/*187988*/              OPC_RecordMemRef,
/*187989*/              OPC_RecordNode, // #1 = 'ld' chained node
/*187990*/              OPC_CheckFoldableChainNode,
/*187991*/              OPC_RecordChild1, // #2 = $src1
/*187992*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*187994*/              OPC_CheckPredicate, 9, // Predicate_load
/*187996*/              OPC_MoveParent,
/*187997*/              OPC_RecordChild1, // #3 = $src2
/*187998*/              OPC_MoveChild1,
/*187999*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*188002*/              OPC_MoveParent,
/*188003*/              OPC_MoveParent,
/*188004*/              OPC_RecordChild2, // #4 = $src0
/*188005*/              OPC_SwitchType /*2 cases */, 20, MVT::v16i32,// ->188028
/*188008*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*188010*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*188013*/                OPC_EmitMergeInputChains1_1,
/*188014*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vsrai:{ *:[v16i32] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                          // Dst: (VPSRADZmik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*188028*/              /*SwitchType*/ 20, MVT::v16i16,// ->188050
/*188030*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*188032*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*188035*/                OPC_EmitMergeInputChains1_1,
/*188036*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAWZ256mik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86vsrai:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), VR256X:{ *:[v16i16] }:$src0) - Complexity = 31
                          // Dst: (VPSRAWZ256mik:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*188050*/              0, // EndSwitchType
/*188051*/            /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->188091
/*188054*/              OPC_RecordMemRef,
/*188055*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*188056*/              OPC_CheckFoldableChainNode,
/*188057*/              OPC_RecordChild1, // #2 = $src1
/*188058*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*188060*/              OPC_MoveParent,
/*188061*/              OPC_RecordChild1, // #3 = $src2
/*188062*/              OPC_MoveChild1,
/*188063*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*188066*/              OPC_MoveParent,
/*188067*/              OPC_MoveParent,
/*188068*/              OPC_RecordChild2, // #4 = $src0
/*188069*/              OPC_CheckType, MVT::v16i32,
/*188071*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*188073*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*188076*/              OPC_EmitMergeInputChains1_1,
/*188077*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vsrai:{ *:[v16i32] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src2), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                        // Dst: (VPSRADZmbik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*188091*/            0, // EndSwitchOpcode
/*188092*/          /*SwitchOpcode*/ 85, TARGET_VAL(X86ISD::VROTRI),// ->188180
/*188095*/            OPC_MoveChild0,
/*188096*/            OPC_SwitchOpcode /*2 cases */, 39, TARGET_VAL(ISD::LOAD),// ->188139
/*188100*/              OPC_RecordMemRef,
/*188101*/              OPC_RecordNode, // #1 = 'ld' chained node
/*188102*/              OPC_CheckFoldableChainNode,
/*188103*/              OPC_RecordChild1, // #2 = $src1
/*188104*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*188106*/              OPC_CheckPredicate, 9, // Predicate_load
/*188108*/              OPC_MoveParent,
/*188109*/              OPC_RecordChild1, // #3 = $src2
/*188110*/              OPC_MoveChild1,
/*188111*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*188114*/              OPC_MoveParent,
/*188115*/              OPC_MoveParent,
/*188116*/              OPC_RecordChild2, // #4 = $src0
/*188117*/              OPC_CheckType, MVT::v16i32,
/*188119*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*188121*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*188124*/              OPC_EmitMergeInputChains1_1,
/*188125*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORDZmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vrotri:{ *:[v16i32] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                        // Dst: (VPRORDZmik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*188139*/            /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->188179
/*188142*/              OPC_RecordMemRef,
/*188143*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*188144*/              OPC_CheckFoldableChainNode,
/*188145*/              OPC_RecordChild1, // #2 = $src1
/*188146*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*188148*/              OPC_MoveParent,
/*188149*/              OPC_RecordChild1, // #3 = $src2
/*188150*/              OPC_MoveChild1,
/*188151*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*188154*/              OPC_MoveParent,
/*188155*/              OPC_MoveParent,
/*188156*/              OPC_RecordChild2, // #4 = $src0
/*188157*/              OPC_CheckType, MVT::v16i32,
/*188159*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*188161*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*188164*/              OPC_EmitMergeInputChains1_1,
/*188165*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORDZmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vrotri:{ *:[v16i32] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src2), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                        // Dst: (VPRORDZmbik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*188179*/            0, // EndSwitchOpcode
/*188180*/          /*SwitchOpcode*/ 85, TARGET_VAL(X86ISD::VROTLI),// ->188268
/*188183*/            OPC_MoveChild0,
/*188184*/            OPC_SwitchOpcode /*2 cases */, 39, TARGET_VAL(ISD::LOAD),// ->188227
/*188188*/              OPC_RecordMemRef,
/*188189*/              OPC_RecordNode, // #1 = 'ld' chained node
/*188190*/              OPC_CheckFoldableChainNode,
/*188191*/              OPC_RecordChild1, // #2 = $src1
/*188192*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*188194*/              OPC_CheckPredicate, 9, // Predicate_load
/*188196*/              OPC_MoveParent,
/*188197*/              OPC_RecordChild1, // #3 = $src2
/*188198*/              OPC_MoveChild1,
/*188199*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*188202*/              OPC_MoveParent,
/*188203*/              OPC_MoveParent,
/*188204*/              OPC_RecordChild2, // #4 = $src0
/*188205*/              OPC_CheckType, MVT::v16i32,
/*188207*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*188209*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*188212*/              OPC_EmitMergeInputChains1_1,
/*188213*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLDZmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vrotli:{ *:[v16i32] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                        // Dst: (VPROLDZmik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*188227*/            /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->188267
/*188230*/              OPC_RecordMemRef,
/*188231*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*188232*/              OPC_CheckFoldableChainNode,
/*188233*/              OPC_RecordChild1, // #2 = $src1
/*188234*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*188236*/              OPC_MoveParent,
/*188237*/              OPC_RecordChild1, // #3 = $src2
/*188238*/              OPC_MoveChild1,
/*188239*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*188242*/              OPC_MoveParent,
/*188243*/              OPC_MoveParent,
/*188244*/              OPC_RecordChild2, // #4 = $src0
/*188245*/              OPC_CheckType, MVT::v16i32,
/*188247*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*188249*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*188252*/              OPC_EmitMergeInputChains1_1,
/*188253*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLDZmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vrotli:{ *:[v16i32] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src2), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                        // Dst: (VPROLDZmbik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*188267*/            0, // EndSwitchOpcode
/*188268*/          /*SwitchOpcode*/ 85, TARGET_VAL(X86ISD::PSHUFD),// ->188356
/*188271*/            OPC_MoveChild0,
/*188272*/            OPC_SwitchOpcode /*2 cases */, 39, TARGET_VAL(ISD::LOAD),// ->188315
/*188276*/              OPC_RecordMemRef,
/*188277*/              OPC_RecordNode, // #1 = 'ld' chained node
/*188278*/              OPC_CheckFoldableChainNode,
/*188279*/              OPC_RecordChild1, // #2 = $src1
/*188280*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*188282*/              OPC_CheckPredicate, 9, // Predicate_load
/*188284*/              OPC_MoveParent,
/*188285*/              OPC_RecordChild1, // #3 = $src2
/*188286*/              OPC_MoveChild1,
/*188287*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*188290*/              OPC_MoveParent,
/*188291*/              OPC_MoveParent,
/*188292*/              OPC_RecordChild2, // #4 = $src0
/*188293*/              OPC_CheckType, MVT::v16i32,
/*188295*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*188297*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*188300*/              OPC_EmitMergeInputChains1_1,
/*188301*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFDZmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86PShufd:{ *:[v16i32] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                        // Dst: (VPSHUFDZmik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*188315*/            /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->188355
/*188318*/              OPC_RecordMemRef,
/*188319*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*188320*/              OPC_CheckFoldableChainNode,
/*188321*/              OPC_RecordChild1, // #2 = $src1
/*188322*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*188324*/              OPC_MoveParent,
/*188325*/              OPC_RecordChild1, // #3 = $src2
/*188326*/              OPC_MoveChild1,
/*188327*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*188330*/              OPC_MoveParent,
/*188331*/              OPC_MoveParent,
/*188332*/              OPC_RecordChild2, // #4 = $src0
/*188333*/              OPC_CheckType, MVT::v16i32,
/*188335*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*188337*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*188340*/              OPC_EmitMergeInputChains1_1,
/*188341*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFDZmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86PShufd:{ *:[v16i32] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src2), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                        // Dst: (VPSHUFDZmbik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*188355*/            0, // EndSwitchOpcode
/*188356*/          /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::PSHUFHW),// ->188402
/*188359*/            OPC_MoveChild0,
/*188360*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*188363*/            OPC_RecordMemRef,
/*188364*/            OPC_RecordNode, // #1 = 'ld' chained node
/*188365*/            OPC_CheckFoldableChainNode,
/*188366*/            OPC_RecordChild1, // #2 = $src1
/*188367*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*188369*/            OPC_CheckPredicate, 9, // Predicate_load
/*188371*/            OPC_MoveParent,
/*188372*/            OPC_RecordChild1, // #3 = $src2
/*188373*/            OPC_MoveChild1,
/*188374*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*188377*/            OPC_MoveParent,
/*188378*/            OPC_MoveParent,
/*188379*/            OPC_RecordChild2, // #4 = $src0
/*188380*/            OPC_CheckType, MVT::v16i16,
/*188382*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*188384*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*188387*/            OPC_EmitMergeInputChains1_1,
/*188388*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFHWZ256mik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                      // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86PShufhw:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), VR256X:{ *:[v16i16] }:$src0) - Complexity = 31
                      // Dst: (VPSHUFHWZ256mik:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*188402*/          /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::PSHUFLW),// ->188448
/*188405*/            OPC_MoveChild0,
/*188406*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*188409*/            OPC_RecordMemRef,
/*188410*/            OPC_RecordNode, // #1 = 'ld' chained node
/*188411*/            OPC_CheckFoldableChainNode,
/*188412*/            OPC_RecordChild1, // #2 = $src1
/*188413*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*188415*/            OPC_CheckPredicate, 9, // Predicate_load
/*188417*/            OPC_MoveParent,
/*188418*/            OPC_RecordChild1, // #3 = $src2
/*188419*/            OPC_MoveChild1,
/*188420*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*188423*/            OPC_MoveParent,
/*188424*/            OPC_MoveParent,
/*188425*/            OPC_RecordChild2, // #4 = $src0
/*188426*/            OPC_CheckType, MVT::v16i16,
/*188428*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*188430*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*188433*/            OPC_EmitMergeInputChains1_1,
/*188434*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFLWZ256mik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                      // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86PShuflw:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), VR256X:{ *:[v16i16] }:$src0) - Complexity = 31
                      // Dst: (VPSHUFLWZ256mik:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*188448*/          /*SwitchOpcode*/ 88, TARGET_VAL(X86ISD::VALIGN),// ->188539
/*188451*/            OPC_RecordChild0, // #1 = $src1
/*188452*/            OPC_MoveChild1,
/*188453*/            OPC_SwitchOpcode /*2 cases */, 40, TARGET_VAL(ISD::LOAD),// ->188497
/*188457*/              OPC_RecordMemRef,
/*188458*/              OPC_RecordNode, // #2 = 'ld' chained node
/*188459*/              OPC_CheckFoldableChainNode,
/*188460*/              OPC_RecordChild1, // #3 = $src2
/*188461*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*188463*/              OPC_CheckPredicate, 9, // Predicate_load
/*188465*/              OPC_MoveParent,
/*188466*/              OPC_RecordChild2, // #4 = $src3
/*188467*/              OPC_MoveChild2,
/*188468*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*188471*/              OPC_MoveParent,
/*188472*/              OPC_MoveParent,
/*188473*/              OPC_RecordChild2, // #5 = $src0
/*188474*/              OPC_CheckType, MVT::v16i32,
/*188476*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*188478*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*188481*/              OPC_EmitMergeInputChains1_2,
/*188482*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VAlign:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                        // Dst: (VALIGNDZrmik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*188497*/            /*SwitchOpcode*/ 38, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->188538
/*188500*/              OPC_RecordMemRef,
/*188501*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*188502*/              OPC_CheckFoldableChainNode,
/*188503*/              OPC_RecordChild1, // #3 = $src2
/*188504*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*188506*/              OPC_MoveParent,
/*188507*/              OPC_RecordChild2, // #4 = $src3
/*188508*/              OPC_MoveChild2,
/*188509*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*188512*/              OPC_MoveParent,
/*188513*/              OPC_MoveParent,
/*188514*/              OPC_RecordChild2, // #5 = $src0
/*188515*/              OPC_CheckType, MVT::v16i32,
/*188517*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*188519*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*188522*/              OPC_EmitMergeInputChains1_2,
/*188523*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VAlign:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src3), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                        // Dst: (VALIGNDZrmbik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*188538*/            0, // EndSwitchOpcode
/*188539*/          /*SwitchOpcode*/ 45, TARGET_VAL(X86ISD::PALIGNR),// ->188587
/*188542*/            OPC_RecordChild0, // #1 = $src1
/*188543*/            OPC_MoveChild1,
/*188544*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*188547*/            OPC_RecordMemRef,
/*188548*/            OPC_RecordNode, // #2 = 'ld' chained node
/*188549*/            OPC_CheckFoldableChainNode,
/*188550*/            OPC_RecordChild1, // #3 = $src2
/*188551*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*188553*/            OPC_CheckPredicate, 9, // Predicate_load
/*188555*/            OPC_MoveParent,
/*188556*/            OPC_RecordChild2, // #4 = $src3
/*188557*/            OPC_MoveChild2,
/*188558*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*188561*/            OPC_MoveParent,
/*188562*/            OPC_MoveParent,
/*188563*/            OPC_RecordChild2, // #5 = $src0
/*188564*/            OPC_CheckType, MVT::v16i8,
/*188566*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*188568*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*188571*/            OPC_EmitMergeInputChains1_2,
/*188572*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPALIGNRZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                      // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86PAlignr:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), VR128X:{ *:[v16i8] }:$src0) - Complexity = 31
                      // Dst: (VPALIGNRZ128rmik:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*188587*/          /*SwitchOpcode*/ 45, TARGET_VAL(X86ISD::DBPSADBW),// ->188635
/*188590*/            OPC_RecordChild0, // #1 = $src1
/*188591*/            OPC_MoveChild1,
/*188592*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*188595*/            OPC_RecordMemRef,
/*188596*/            OPC_RecordNode, // #2 = 'ld' chained node
/*188597*/            OPC_CheckFoldableChainNode,
/*188598*/            OPC_RecordChild1, // #3 = $src2
/*188599*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*188601*/            OPC_CheckPredicate, 9, // Predicate_load
/*188603*/            OPC_MoveParent,
/*188604*/            OPC_RecordChild2, // #4 = $src3
/*188605*/            OPC_MoveChild2,
/*188606*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*188609*/            OPC_MoveParent,
/*188610*/            OPC_MoveParent,
/*188611*/            OPC_RecordChild2, // #5 = $src0
/*188612*/            OPC_CheckType, MVT::v16i16,
/*188614*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*188616*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*188619*/            OPC_EmitMergeInputChains1_2,
/*188620*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDBPSADBWZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                      // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86dbpsadbw:{ *:[v16i16] } VR256X:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), VR256X:{ *:[v16i16] }:$src0) - Complexity = 31
                      // Dst: (VDBPSADBWZ256rmik:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*188635*/          /*SwitchOpcode*/ 97|128,4/*609*/, TARGET_VAL(X86ISD::VPTERNLOG),// ->189248
/*188639*/            OPC_Scope, 20|128,1/*148*/, /*->188790*/ // 8 children in Scope
/*188642*/              OPC_RecordChild0, // #1 = $src1
/*188643*/              OPC_Scope, 94, /*->188739*/ // 2 children in Scope
/*188645*/                OPC_RecordChild1, // #2 = $src2
/*188646*/                OPC_MoveChild2,
/*188647*/                OPC_SwitchOpcode /*2 cases */, 43, TARGET_VAL(ISD::LOAD),// ->188694
/*188651*/                  OPC_RecordMemRef,
/*188652*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*188653*/                  OPC_CheckFoldableChainNode,
/*188654*/                  OPC_RecordChild1, // #4 = $src3
/*188655*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*188657*/                  OPC_CheckPredicate, 9, // Predicate_load
/*188659*/                  OPC_MoveParent,
/*188660*/                  OPC_RecordChild3, // #5 = $src4
/*188661*/                  OPC_MoveChild3,
/*188662*/                  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*188665*/                  OPC_MoveParent,
/*188666*/                  OPC_MoveParent,
/*188667*/                  OPC_CheckChild2Same, 1,
/*188669*/                  OPC_CheckType, MVT::v16i32,
/*188671*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*188673*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*188676*/                  OPC_EmitMergeInputChains, 1, 3, 
/*188679*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 5, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vpternlog:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src4), VR512:{ *:[v16i32] }:$src1) - Complexity = 31
                            // Dst: (VPTERNLOGDZrmik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i8] }):$src4)
/*188694*/                /*SwitchOpcode*/ 41, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->188738
/*188697*/                  OPC_RecordMemRef,
/*188698*/                  OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*188699*/                  OPC_CheckFoldableChainNode,
/*188700*/                  OPC_RecordChild1, // #4 = $src3
/*188701*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*188703*/                  OPC_MoveParent,
/*188704*/                  OPC_RecordChild3, // #5 = $src4
/*188705*/                  OPC_MoveChild3,
/*188706*/                  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*188709*/                  OPC_MoveParent,
/*188710*/                  OPC_MoveParent,
/*188711*/                  OPC_CheckChild2Same, 1,
/*188713*/                  OPC_CheckType, MVT::v16i32,
/*188715*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*188717*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*188720*/                  OPC_EmitMergeInputChains, 1, 3, 
/*188723*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 5, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vpternlog:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src4), VR512:{ *:[v16i32] }:$src1) - Complexity = 31
                            // Dst: (VPTERNLOGDZrmbik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i8] }):$src4)
/*188738*/                0, // EndSwitchOpcode
/*188739*/              /*Scope*/ 49, /*->188789*/
/*188740*/                OPC_MoveChild1,
/*188741*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*188744*/                OPC_RecordMemRef,
/*188745*/                OPC_RecordNode, // #2 = 'ld' chained node
/*188746*/                OPC_CheckFoldableChainNode,
/*188747*/                OPC_RecordChild1, // #3 = $src3
/*188748*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*188750*/                OPC_CheckPredicate, 9, // Predicate_load
/*188752*/                OPC_MoveParent,
/*188753*/                OPC_RecordChild2, // #4 = $src2
/*188754*/                OPC_RecordChild3, // #5 = $src4
/*188755*/                OPC_MoveChild3,
/*188756*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*188759*/                OPC_MoveParent,
/*188760*/                OPC_MoveParent,
/*188761*/                OPC_CheckChild2Same, 1,
/*188763*/                OPC_CheckType, MVT::v16i32,
/*188765*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*188767*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*188770*/                OPC_EmitMergeInputChains1_2,
/*188771*/                OPC_EmitNodeXForm, 20, 5, // VPTERNLOG132_imm8
/*188774*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 9/*#Ops*/, 1, 0, 4, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vpternlog:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16i32] }:$src2, (timm:{ *:[i8] }):$src4), VR512:{ *:[v16i32] }:$src1) - Complexity = 31
                          // Dst: (VPTERNLOGDZrmik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*188789*/              0, /*End of Scope*/
/*188790*/            /*Scope*/ 50, /*->188841*/
/*188791*/              OPC_MoveChild0,
/*188792*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*188795*/              OPC_RecordMemRef,
/*188796*/              OPC_RecordNode, // #1 = 'ld' chained node
/*188797*/              OPC_CheckFoldableChainNode,
/*188798*/              OPC_RecordChild1, // #2 = $src3
/*188799*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*188801*/              OPC_CheckPredicate, 9, // Predicate_load
/*188803*/              OPC_MoveParent,
/*188804*/              OPC_RecordChild1, // #3 = $src2
/*188805*/              OPC_RecordChild2, // #4 = $src1
/*188806*/              OPC_RecordChild3, // #5 = $src4
/*188807*/              OPC_MoveChild3,
/*188808*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*188811*/              OPC_MoveParent,
/*188812*/              OPC_MoveParent,
/*188813*/              OPC_CheckChild2Same, 4,
/*188815*/              OPC_CheckType, MVT::v16i32,
/*188817*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*188819*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*188822*/              OPC_EmitMergeInputChains1_1,
/*188823*/              OPC_EmitNodeXForm, 19, 5, // VPTERNLOG321_imm8
/*188826*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 9/*#Ops*/, 4, 0, 3, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vpternlog:{ *:[v16i32] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src1, (timm:{ *:[i8] }):$src4), VR512:{ *:[v16i32] }:$src1) - Complexity = 31
                        // Dst: (VPTERNLOGDZrmik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*188841*/            /*Scope*/ 105, /*->188947*/
/*188842*/              OPC_RecordChild0, // #1 = $src2
/*188843*/              OPC_Scope, 51, /*->188896*/ // 2 children in Scope
/*188845*/                OPC_RecordChild1, // #2 = $src1
/*188846*/                OPC_MoveChild2,
/*188847*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*188850*/                OPC_RecordMemRef,
/*188851*/                OPC_RecordNode, // #3 = 'ld' chained node
/*188852*/                OPC_CheckFoldableChainNode,
/*188853*/                OPC_RecordChild1, // #4 = $src3
/*188854*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*188856*/                OPC_CheckPredicate, 9, // Predicate_load
/*188858*/                OPC_MoveParent,
/*188859*/                OPC_RecordChild3, // #5 = $src4
/*188860*/                OPC_MoveChild3,
/*188861*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*188864*/                OPC_MoveParent,
/*188865*/                OPC_MoveParent,
/*188866*/                OPC_CheckChild2Same, 2,
/*188868*/                OPC_CheckType, MVT::v16i32,
/*188870*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*188872*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*188875*/                OPC_EmitMergeInputChains, 1, 3, 
/*188878*/                OPC_EmitNodeXForm, 21, 5, // VPTERNLOG213_imm8
/*188881*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 9/*#Ops*/, 2, 0, 1, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vpternlog:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src4), VR512:{ *:[v16i32] }:$src1) - Complexity = 31
                          // Dst: (VPTERNLOGDZrmik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG213_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*188896*/              /*Scope*/ 49, /*->188946*/
/*188897*/                OPC_MoveChild1,
/*188898*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*188901*/                OPC_RecordMemRef,
/*188902*/                OPC_RecordNode, // #2 = 'ld' chained node
/*188903*/                OPC_CheckFoldableChainNode,
/*188904*/                OPC_RecordChild1, // #3 = $src3
/*188905*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*188907*/                OPC_CheckPredicate, 9, // Predicate_load
/*188909*/                OPC_MoveParent,
/*188910*/                OPC_RecordChild2, // #4 = $src1
/*188911*/                OPC_RecordChild3, // #5 = $src4
/*188912*/                OPC_MoveChild3,
/*188913*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*188916*/                OPC_MoveParent,
/*188917*/                OPC_MoveParent,
/*188918*/                OPC_CheckChild2Same, 4,
/*188920*/                OPC_CheckType, MVT::v16i32,
/*188922*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*188924*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*188927*/                OPC_EmitMergeInputChains1_2,
/*188928*/                OPC_EmitNodeXForm, 22, 5, // VPTERNLOG231_imm8
/*188931*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 9/*#Ops*/, 4, 0, 1, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vpternlog:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src2, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16i32] }:$src1, (timm:{ *:[i8] }):$src4), VR512:{ *:[v16i32] }:$src1) - Complexity = 31
                          // Dst: (VPTERNLOGDZrmik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG231_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*188946*/              0, /*End of Scope*/
/*188947*/            /*Scope*/ 50, /*->188998*/
/*188948*/              OPC_MoveChild0,
/*188949*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*188952*/              OPC_RecordMemRef,
/*188953*/              OPC_RecordNode, // #1 = 'ld' chained node
/*188954*/              OPC_CheckFoldableChainNode,
/*188955*/              OPC_RecordChild1, // #2 = $src3
/*188956*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*188958*/              OPC_CheckPredicate, 9, // Predicate_load
/*188960*/              OPC_MoveParent,
/*188961*/              OPC_RecordChild1, // #3 = $src1
/*188962*/              OPC_RecordChild2, // #4 = $src2
/*188963*/              OPC_RecordChild3, // #5 = $src4
/*188964*/              OPC_MoveChild3,
/*188965*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*188968*/              OPC_MoveParent,
/*188969*/              OPC_MoveParent,
/*188970*/              OPC_CheckChild2Same, 3,
/*188972*/              OPC_CheckType, MVT::v16i32,
/*188974*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*188976*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*188979*/              OPC_EmitMergeInputChains1_1,
/*188980*/              OPC_EmitNodeXForm, 23, 5, // VPTERNLOG312_imm8
/*188983*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 9/*#Ops*/, 3, 0, 4, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vpternlog:{ *:[v16i32] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (timm:{ *:[i8] }):$src4), VR512:{ *:[v16i32] }:$src1) - Complexity = 31
                        // Dst: (VPTERNLOGDZrmik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG312_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*188998*/            /*Scope*/ 48, /*->189047*/
/*188999*/              OPC_RecordChild0, // #1 = $src1
/*189000*/              OPC_MoveChild1,
/*189001*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*189004*/              OPC_RecordMemRef,
/*189005*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*189006*/              OPC_CheckFoldableChainNode,
/*189007*/              OPC_RecordChild1, // #3 = $src3
/*189008*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*189010*/              OPC_MoveParent,
/*189011*/              OPC_RecordChild2, // #4 = $src2
/*189012*/              OPC_RecordChild3, // #5 = $src4
/*189013*/              OPC_MoveChild3,
/*189014*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*189017*/              OPC_MoveParent,
/*189018*/              OPC_MoveParent,
/*189019*/              OPC_CheckChild2Same, 1,
/*189021*/              OPC_CheckType, MVT::v16i32,
/*189023*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*189025*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*189028*/              OPC_EmitMergeInputChains1_2,
/*189029*/              OPC_EmitNodeXForm, 20, 5, // VPTERNLOG132_imm8
/*189032*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 9/*#Ops*/, 1, 0, 4, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vpternlog:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16i32] }:$src2, (timm:{ *:[i8] }):$src4), VR512:{ *:[v16i32] }:$src1) - Complexity = 31
                        // Dst: (VPTERNLOGDZrmbik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*189047*/            /*Scope*/ 48, /*->189096*/
/*189048*/              OPC_MoveChild0,
/*189049*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*189052*/              OPC_RecordMemRef,
/*189053*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*189054*/              OPC_CheckFoldableChainNode,
/*189055*/              OPC_RecordChild1, // #2 = $src3
/*189056*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*189058*/              OPC_MoveParent,
/*189059*/              OPC_RecordChild1, // #3 = $src2
/*189060*/              OPC_RecordChild2, // #4 = $src1
/*189061*/              OPC_RecordChild3, // #5 = $src4
/*189062*/              OPC_MoveChild3,
/*189063*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*189066*/              OPC_MoveParent,
/*189067*/              OPC_MoveParent,
/*189068*/              OPC_CheckChild2Same, 4,
/*189070*/              OPC_CheckType, MVT::v16i32,
/*189072*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*189074*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*189077*/              OPC_EmitMergeInputChains1_1,
/*189078*/              OPC_EmitNodeXForm, 19, 5, // VPTERNLOG321_imm8
/*189081*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 9/*#Ops*/, 4, 0, 3, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vpternlog:{ *:[v16i32] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src1, (timm:{ *:[i8] }):$src4), VR512:{ *:[v16i32] }:$src1) - Complexity = 31
                        // Dst: (VPTERNLOGDZrmbik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*189096*/            /*Scope*/ 101, /*->189198*/
/*189097*/              OPC_RecordChild0, // #1 = $src2
/*189098*/              OPC_Scope, 49, /*->189149*/ // 2 children in Scope
/*189100*/                OPC_RecordChild1, // #2 = $src1
/*189101*/                OPC_MoveChild2,
/*189102*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*189105*/                OPC_RecordMemRef,
/*189106*/                OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*189107*/                OPC_CheckFoldableChainNode,
/*189108*/                OPC_RecordChild1, // #4 = $src3
/*189109*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*189111*/                OPC_MoveParent,
/*189112*/                OPC_RecordChild3, // #5 = $src4
/*189113*/                OPC_MoveChild3,
/*189114*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*189117*/                OPC_MoveParent,
/*189118*/                OPC_MoveParent,
/*189119*/                OPC_CheckChild2Same, 2,
/*189121*/                OPC_CheckType, MVT::v16i32,
/*189123*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*189125*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*189128*/                OPC_EmitMergeInputChains, 1, 3, 
/*189131*/                OPC_EmitNodeXForm, 21, 5, // VPTERNLOG213_imm8
/*189134*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 9/*#Ops*/, 2, 0, 1, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vpternlog:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src1, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src4), VR512:{ *:[v16i32] }:$src1) - Complexity = 31
                          // Dst: (VPTERNLOGDZrmbik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG213_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*189149*/              /*Scope*/ 47, /*->189197*/
/*189150*/                OPC_MoveChild1,
/*189151*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*189154*/                OPC_RecordMemRef,
/*189155*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*189156*/                OPC_CheckFoldableChainNode,
/*189157*/                OPC_RecordChild1, // #3 = $src3
/*189158*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*189160*/                OPC_MoveParent,
/*189161*/                OPC_RecordChild2, // #4 = $src1
/*189162*/                OPC_RecordChild3, // #5 = $src4
/*189163*/                OPC_MoveChild3,
/*189164*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*189167*/                OPC_MoveParent,
/*189168*/                OPC_MoveParent,
/*189169*/                OPC_CheckChild2Same, 4,
/*189171*/                OPC_CheckType, MVT::v16i32,
/*189173*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*189175*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*189178*/                OPC_EmitMergeInputChains1_2,
/*189179*/                OPC_EmitNodeXForm, 22, 5, // VPTERNLOG231_imm8
/*189182*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 9/*#Ops*/, 4, 0, 1, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vpternlog:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src2, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16i32] }:$src1, (timm:{ *:[i8] }):$src4), VR512:{ *:[v16i32] }:$src1) - Complexity = 31
                          // Dst: (VPTERNLOGDZrmbik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG231_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*189197*/              0, /*End of Scope*/
/*189198*/            /*Scope*/ 48, /*->189247*/
/*189199*/              OPC_MoveChild0,
/*189200*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*189203*/              OPC_RecordMemRef,
/*189204*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*189205*/              OPC_CheckFoldableChainNode,
/*189206*/              OPC_RecordChild1, // #2 = $src3
/*189207*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*189209*/              OPC_MoveParent,
/*189210*/              OPC_RecordChild1, // #3 = $src1
/*189211*/              OPC_RecordChild2, // #4 = $src2
/*189212*/              OPC_RecordChild3, // #5 = $src4
/*189213*/              OPC_MoveChild3,
/*189214*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*189217*/              OPC_MoveParent,
/*189218*/              OPC_MoveParent,
/*189219*/              OPC_CheckChild2Same, 3,
/*189221*/              OPC_CheckType, MVT::v16i32,
/*189223*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*189225*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*189228*/              OPC_EmitMergeInputChains1_1,
/*189229*/              OPC_EmitNodeXForm, 23, 5, // VPTERNLOG312_imm8
/*189232*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 9/*#Ops*/, 3, 0, 4, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vpternlog:{ *:[v16i32] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (timm:{ *:[i8] }):$src4), VR512:{ *:[v16i32] }:$src1) - Complexity = 31
                        // Dst: (VPTERNLOGDZrmbik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG312_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*189247*/            0, /*End of Scope*/
/*189248*/          /*SwitchOpcode*/ 113, TARGET_VAL(X86ISD::VSHLD),// ->189364
/*189251*/            OPC_RecordChild0, // #1 = $src1
/*189252*/            OPC_MoveChild1,
/*189253*/            OPC_SwitchOpcode /*2 cases */, 65, TARGET_VAL(ISD::LOAD),// ->189322
/*189257*/              OPC_RecordMemRef,
/*189258*/              OPC_RecordNode, // #2 = 'ld' chained node
/*189259*/              OPC_CheckFoldableChainNode,
/*189260*/              OPC_RecordChild1, // #3 = $src2
/*189261*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*189263*/              OPC_CheckPredicate, 9, // Predicate_load
/*189265*/              OPC_MoveParent,
/*189266*/              OPC_RecordChild2, // #4 = $src3
/*189267*/              OPC_MoveChild2,
/*189268*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*189271*/              OPC_MoveParent,
/*189272*/              OPC_MoveParent,
/*189273*/              OPC_RecordChild2, // #5 = $src0
/*189274*/              OPC_SwitchType /*2 cases */, 21, MVT::v16i16,// ->189298
/*189277*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*189279*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*189282*/                OPC_EmitMergeInputChains1_2,
/*189283*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDWZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86VShld:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), VR256X:{ *:[v16i16] }:$src0) - Complexity = 31
                          // Dst: (VPSHLDWZ256rmik:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*189298*/              /*SwitchType*/ 21, MVT::v16i32,// ->189321
/*189300*/                OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*189302*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*189305*/                OPC_EmitMergeInputChains1_2,
/*189306*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDDZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VShld:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                          // Dst: (VPSHLDDZrmik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*189321*/              0, // EndSwitchType
/*189322*/            /*SwitchOpcode*/ 38, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->189363
/*189325*/              OPC_RecordMemRef,
/*189326*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*189327*/              OPC_CheckFoldableChainNode,
/*189328*/              OPC_RecordChild1, // #3 = $src2
/*189329*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*189331*/              OPC_MoveParent,
/*189332*/              OPC_RecordChild2, // #4 = $src3
/*189333*/              OPC_MoveChild2,
/*189334*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*189337*/              OPC_MoveParent,
/*189338*/              OPC_MoveParent,
/*189339*/              OPC_RecordChild2, // #5 = $src0
/*189340*/              OPC_CheckType, MVT::v16i32,
/*189342*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*189344*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*189347*/              OPC_EmitMergeInputChains1_2,
/*189348*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDDZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VShld:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src3), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                        // Dst: (VPSHLDDZrmbik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*189363*/            0, // EndSwitchOpcode
/*189364*/          /*SwitchOpcode*/ 113, TARGET_VAL(X86ISD::VSHRD),// ->189480
/*189367*/            OPC_RecordChild0, // #1 = $src1
/*189368*/            OPC_MoveChild1,
/*189369*/            OPC_SwitchOpcode /*2 cases */, 65, TARGET_VAL(ISD::LOAD),// ->189438
/*189373*/              OPC_RecordMemRef,
/*189374*/              OPC_RecordNode, // #2 = 'ld' chained node
/*189375*/              OPC_CheckFoldableChainNode,
/*189376*/              OPC_RecordChild1, // #3 = $src2
/*189377*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*189379*/              OPC_CheckPredicate, 9, // Predicate_load
/*189381*/              OPC_MoveParent,
/*189382*/              OPC_RecordChild2, // #4 = $src3
/*189383*/              OPC_MoveChild2,
/*189384*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*189387*/              OPC_MoveParent,
/*189388*/              OPC_MoveParent,
/*189389*/              OPC_RecordChild2, // #5 = $src0
/*189390*/              OPC_SwitchType /*2 cases */, 21, MVT::v16i16,// ->189414
/*189393*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*189395*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*189398*/                OPC_EmitMergeInputChains1_2,
/*189399*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDWZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86VShrd:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), VR256X:{ *:[v16i16] }:$src0) - Complexity = 31
                          // Dst: (VPSHRDWZ256rmik:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*189414*/              /*SwitchType*/ 21, MVT::v16i32,// ->189437
/*189416*/                OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*189418*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*189421*/                OPC_EmitMergeInputChains1_2,
/*189422*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDDZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VShrd:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                          // Dst: (VPSHRDDZrmik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*189437*/              0, // EndSwitchType
/*189438*/            /*SwitchOpcode*/ 38, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->189479
/*189441*/              OPC_RecordMemRef,
/*189442*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*189443*/              OPC_CheckFoldableChainNode,
/*189444*/              OPC_RecordChild1, // #3 = $src2
/*189445*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*189447*/              OPC_MoveParent,
/*189448*/              OPC_RecordChild2, // #4 = $src3
/*189449*/              OPC_MoveChild2,
/*189450*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*189453*/              OPC_MoveParent,
/*189454*/              OPC_MoveParent,
/*189455*/              OPC_RecordChild2, // #5 = $src0
/*189456*/              OPC_CheckType, MVT::v16i32,
/*189458*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*189460*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*189463*/              OPC_EmitMergeInputChains1_2,
/*189464*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDDZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VShrd:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src3), VR512:{ *:[v16i32] }:$src0) - Complexity = 31
                        // Dst: (VPSHRDDZrmbik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*189479*/            0, // EndSwitchOpcode
/*189480*/          /*SwitchOpcode*/ 45, TARGET_VAL(X86ISD::GF2P8AFFINEINVQB),// ->189528
/*189483*/            OPC_RecordChild0, // #1 = $src1
/*189484*/            OPC_MoveChild1,
/*189485*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*189488*/            OPC_RecordMemRef,
/*189489*/            OPC_RecordNode, // #2 = 'ld' chained node
/*189490*/            OPC_CheckFoldableChainNode,
/*189491*/            OPC_RecordChild1, // #3 = $src2
/*189492*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*189494*/            OPC_CheckPredicate, 9, // Predicate_load
/*189496*/            OPC_MoveParent,
/*189497*/            OPC_RecordChild2, // #4 = $src3
/*189498*/            OPC_MoveChild2,
/*189499*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*189502*/            OPC_MoveParent,
/*189503*/            OPC_MoveParent,
/*189504*/            OPC_RecordChild2, // #5 = $src0
/*189505*/            OPC_CheckType, MVT::v16i8,
/*189507*/            OPC_CheckPatternPredicate, 180, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*189509*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*189512*/            OPC_EmitMergeInputChains1_2,
/*189513*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEINVQBZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                      // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86GF2P8affineinvqb:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), VR128X:{ *:[v16i8] }:$src0) - Complexity = 31
                      // Dst: (VGF2P8AFFINEINVQBZ128rmik:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*189528*/          /*SwitchOpcode*/ 45, TARGET_VAL(X86ISD::GF2P8AFFINEQB),// ->189576
/*189531*/            OPC_RecordChild0, // #1 = $src1
/*189532*/            OPC_MoveChild1,
/*189533*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*189536*/            OPC_RecordMemRef,
/*189537*/            OPC_RecordNode, // #2 = 'ld' chained node
/*189538*/            OPC_CheckFoldableChainNode,
/*189539*/            OPC_RecordChild1, // #3 = $src2
/*189540*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*189542*/            OPC_CheckPredicate, 9, // Predicate_load
/*189544*/            OPC_MoveParent,
/*189545*/            OPC_RecordChild2, // #4 = $src3
/*189546*/            OPC_MoveChild2,
/*189547*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*189550*/            OPC_MoveParent,
/*189551*/            OPC_MoveParent,
/*189552*/            OPC_RecordChild2, // #5 = $src0
/*189553*/            OPC_CheckType, MVT::v16i8,
/*189555*/            OPC_CheckPatternPredicate, 180, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*189557*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*189560*/            OPC_EmitMergeInputChains1_2,
/*189561*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEQBZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                      // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86GF2P8affineqb:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), VR128X:{ *:[v16i8] }:$src0) - Complexity = 31
                      // Dst: (VGF2P8AFFINEQBZ128rmik:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*189576*/          /*SwitchOpcode*/ 37|128,1/*165*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->189745
/*189580*/            OPC_RecordMemRef,
/*189581*/            OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*189582*/            OPC_CheckFoldableChainNode,
/*189583*/            OPC_RecordChild1, // #2 = $src
/*189584*/            OPC_Scope, 26, /*->189612*/ // 6 children in Scope
/*189586*/              OPC_CheckPredicate, 99, // Predicate_X86VBroadcastld8
/*189588*/              OPC_MoveParent,
/*189589*/              OPC_MoveChild2,
/*189590*/              OPC_CheckImmAllZerosV,
/*189591*/              OPC_MoveParent,
/*189592*/              OPC_CheckType, MVT::v16i8,
/*189594*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*189596*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*189599*/              OPC_EmitMergeInputChains1_1,
/*189600*/              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, (X86VBroadcastld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld8>>, immAllZerosV:{ *:[v16i8] }) - Complexity = 29
                        // Dst: (VPBROADCASTBZ128mkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*189612*/            /*Scope*/ 26, /*->189639*/
/*189613*/              OPC_CheckPredicate, 100, // Predicate_X86VBroadcastld16
/*189615*/              OPC_MoveParent,
/*189616*/              OPC_MoveChild2,
/*189617*/              OPC_CheckImmAllZerosV,
/*189618*/              OPC_MoveParent,
/*189619*/              OPC_CheckType, MVT::v16i16,
/*189621*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*189623*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*189626*/              OPC_EmitMergeInputChains1_1,
/*189627*/              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, (X86VBroadcastld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld16>>, immAllZerosV:{ *:[v16i16] }) - Complexity = 29
                        // Dst: (VPBROADCASTWZ256mkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*189639*/            /*Scope*/ 26, /*->189666*/
/*189640*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*189642*/              OPC_MoveParent,
/*189643*/              OPC_MoveChild2,
/*189644*/              OPC_CheckImmAllZerosV,
/*189645*/              OPC_MoveParent,
/*189646*/              OPC_CheckType, MVT::v16i32,
/*189648*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*189650*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*189653*/              OPC_EmitMergeInputChains1_1,
/*189654*/              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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>, immAllZerosV:{ *:[v16i32] }) - Complexity = 29
                        // Dst: (VPBROADCASTDZmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*189666*/            /*Scope*/ 25, /*->189692*/
/*189667*/              OPC_CheckPredicate, 99, // Predicate_X86VBroadcastld8
/*189669*/              OPC_MoveParent,
/*189670*/              OPC_RecordChild2, // #3 = $src0
/*189671*/              OPC_CheckType, MVT::v16i8,
/*189673*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*189675*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*189678*/              OPC_EmitMergeInputChains1_1,
/*189679*/              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, (X86VBroadcastld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld8>>, VR128X:{ *:[v16i8] }:$src0) - Complexity = 25
                        // Dst: (VPBROADCASTBZ128mk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*189692*/            /*Scope*/ 25, /*->189718*/
/*189693*/              OPC_CheckPredicate, 100, // Predicate_X86VBroadcastld16
/*189695*/              OPC_MoveParent,
/*189696*/              OPC_RecordChild2, // #3 = $src0
/*189697*/              OPC_CheckType, MVT::v16i16,
/*189699*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*189701*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*189704*/              OPC_EmitMergeInputChains1_1,
/*189705*/              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, (X86VBroadcastld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld16>>, VR256X:{ *:[v16i16] }:$src0) - Complexity = 25
                        // Dst: (VPBROADCASTWZ256mk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*189718*/            /*Scope*/ 25, /*->189744*/
/*189719*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*189721*/              OPC_MoveParent,
/*189722*/              OPC_RecordChild2, // #3 = $src0
/*189723*/              OPC_CheckType, MVT::v16i32,
/*189725*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*189727*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*189730*/              OPC_EmitMergeInputChains1_1,
/*189731*/              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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16i32] }:$src0) - Complexity = 25
                        // Dst: (VPBROADCASTDZmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*189744*/            0, /*End of Scope*/
/*189745*/          /*SwitchOpcode*/ 16|128,4/*528*/, TARGET_VAL(ISD::LOAD),// ->190277
/*189749*/            OPC_RecordMemRef,
/*189750*/            OPC_RecordNode, // #1 = 'ld' chained node
/*189751*/            OPC_CheckFoldableChainNode,
/*189752*/            OPC_RecordChild1, // #2 = $src
/*189753*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*189755*/            OPC_Scope, 98, /*->189855*/ // 6 children in Scope
/*189757*/              OPC_CheckPredicate, 9, // Predicate_load
/*189759*/              OPC_Scope, 26, /*->189787*/ // 2 children in Scope
/*189761*/                OPC_CheckPredicate, 74, // Predicate_alignedload
/*189763*/                OPC_MoveParent,
/*189764*/                OPC_MoveChild2,
/*189765*/                OPC_CheckImmAllZerosV,
/*189766*/                OPC_MoveParent,
/*189767*/                OPC_CheckType, MVT::v16i32,
/*189769*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*189771*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*189774*/                OPC_EmitMergeInputChains1_1,
/*189775*/                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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedload>>, immAllZerosV:{ *:[v16i32] }) - Complexity = 29
                          // Dst: (VMOVDQA32Zrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*189787*/              /*Scope*/ 66, /*->189854*/
/*189788*/                OPC_MoveParent,
/*189789*/                OPC_MoveChild2,
/*189790*/                OPC_CheckImmAllZerosV,
/*189791*/                OPC_MoveParent,
/*189792*/                OPC_SwitchType /*3 cases */, 18, MVT::v16i8,// ->189813
/*189795*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*189797*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*189800*/                  OPC_EmitMergeInputChains1_1,
/*189801*/                  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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>, immAllZerosV:{ *:[v16i8] }) - Complexity = 29
                            // Dst: (VMOVDQU8Z128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*189813*/                /*SwitchType*/ 18, MVT::v16i16,// ->189833
/*189815*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*189817*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*189820*/                  OPC_EmitMergeInputChains1_1,
/*189821*/                  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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>, immAllZerosV:{ *:[v16i16] }) - Complexity = 29
                            // Dst: (VMOVDQU16Z256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*189833*/                /*SwitchType*/ 18, MVT::v16i32,// ->189853
/*189835*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*189837*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*189840*/                  OPC_EmitMergeInputChains1_1,
/*189841*/                  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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>, immAllZerosV:{ *:[v16i32] }) - Complexity = 29
                            // Dst: (VMOVDQU32Zrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*189853*/                0, // EndSwitchType
/*189854*/              0, /*End of Scope*/
/*189855*/            /*Scope*/ 80, /*->189936*/
/*189856*/              OPC_CheckPredicate, 53, // Predicate_zextload
/*189858*/              OPC_Scope, 48, /*->189908*/ // 2 children in Scope
/*189860*/                OPC_CheckPredicate, 75, // Predicate_zextloadvi8
/*189862*/                OPC_MoveParent,
/*189863*/                OPC_MoveChild2,
/*189864*/                OPC_CheckImmAllZerosV,
/*189865*/                OPC_MoveParent,
/*189866*/                OPC_SwitchType /*2 cases */, 18, MVT::v16i16,// ->189887
/*189869*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*189871*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*189874*/                  OPC_EmitMergeInputChains1_1,
/*189875*/                  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>>, immAllZerosV:{ *:[v16i16] }) - Complexity = 29
                            // Dst: (VPMOVZXBWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*189887*/                /*SwitchType*/ 18, MVT::v16i32,// ->189907
/*189889*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*189891*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*189894*/                  OPC_EmitMergeInputChains1_1,
/*189895*/                  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>>, immAllZerosV:{ *:[v16i32] }) - Complexity = 29
                            // Dst: (VPMOVZXBDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*189907*/                0, // EndSwitchType
/*189908*/              /*Scope*/ 26, /*->189935*/
/*189909*/                OPC_CheckPredicate, 76, // Predicate_zextloadvi16
/*189911*/                OPC_MoveParent,
/*189912*/                OPC_MoveChild2,
/*189913*/                OPC_CheckImmAllZerosV,
/*189914*/                OPC_MoveParent,
/*189915*/                OPC_CheckType, MVT::v16i32,
/*189917*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*189919*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*189922*/                OPC_EmitMergeInputChains1_1,
/*189923*/                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>>, immAllZerosV:{ *:[v16i32] }) - Complexity = 29
                          // Dst: (VPMOVZXWDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*189935*/              0, /*End of Scope*/
/*189936*/            /*Scope*/ 80, /*->190017*/
/*189937*/              OPC_CheckPredicate, 68, // Predicate_sextload
/*189939*/              OPC_Scope, 48, /*->189989*/ // 2 children in Scope
/*189941*/                OPC_CheckPredicate, 75, // Predicate_sextloadvi8
/*189943*/                OPC_MoveParent,
/*189944*/                OPC_MoveChild2,
/*189945*/                OPC_CheckImmAllZerosV,
/*189946*/                OPC_MoveParent,
/*189947*/                OPC_SwitchType /*2 cases */, 18, MVT::v16i16,// ->189968
/*189950*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*189952*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*189955*/                  OPC_EmitMergeInputChains1_1,
/*189956*/                  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>>, immAllZerosV:{ *:[v16i16] }) - Complexity = 29
                            // Dst: (VPMOVSXBWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*189968*/                /*SwitchType*/ 18, MVT::v16i32,// ->189988
/*189970*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*189972*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*189975*/                  OPC_EmitMergeInputChains1_1,
/*189976*/                  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>>, immAllZerosV:{ *:[v16i32] }) - Complexity = 29
                            // Dst: (VPMOVSXBDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*189988*/                0, // EndSwitchType
/*189989*/              /*Scope*/ 26, /*->190016*/
/*189990*/                OPC_CheckPredicate, 76, // Predicate_sextloadvi16
/*189992*/                OPC_MoveParent,
/*189993*/                OPC_MoveChild2,
/*189994*/                OPC_CheckImmAllZerosV,
/*189995*/                OPC_MoveParent,
/*189996*/                OPC_CheckType, MVT::v16i32,
/*189998*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*190000*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*190003*/                OPC_EmitMergeInputChains1_1,
/*190004*/                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>>, immAllZerosV:{ *:[v16i32] }) - Complexity = 29
                          // Dst: (VPMOVSXWDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*190016*/              0, /*End of Scope*/
/*190017*/            /*Scope*/ 98, /*->190116*/
/*190018*/              OPC_CheckPredicate, 9, // Predicate_load
/*190020*/              OPC_Scope, 25, /*->190047*/ // 2 children in Scope
/*190022*/                OPC_CheckPredicate, 74, // Predicate_alignedload
/*190024*/                OPC_MoveParent,
/*190025*/                OPC_RecordChild2, // #3 = $src0
/*190026*/                OPC_CheckType, MVT::v16i32,
/*190028*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*190030*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*190033*/                OPC_EmitMergeInputChains1_1,
/*190034*/                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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedload>>, VR512:{ *:[v16i32] }:$src0) - Complexity = 25
                          // Dst: (VMOVDQA32Zrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*190047*/              /*Scope*/ 67, /*->190115*/
/*190048*/                OPC_MoveParent,
/*190049*/                OPC_RecordChild2, // #3 = $src0
/*190050*/                OPC_SwitchType /*3 cases */, 19, MVT::v16i8,// ->190072
/*190053*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*190055*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*190058*/                  OPC_EmitMergeInputChains1_1,
/*190059*/                  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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v16i8] }:$src0) - Complexity = 25
                            // Dst: (VMOVDQU8Z128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*190072*/                /*SwitchType*/ 19, MVT::v16i16,// ->190093
/*190074*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*190076*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*190079*/                  OPC_EmitMergeInputChains1_1,
/*190080*/                  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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src0) - Complexity = 25
                            // Dst: (VMOVDQU16Z256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*190093*/                /*SwitchType*/ 19, MVT::v16i32,// ->190114
/*190095*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*190097*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*190100*/                  OPC_EmitMergeInputChains1_1,
/*190101*/                  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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16i32] }:$src0) - Complexity = 25
                            // Dst: (VMOVDQU32Zrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*190114*/                0, // EndSwitchType
/*190115*/              0, /*End of Scope*/
/*190116*/            /*Scope*/ 79, /*->190196*/
/*190117*/              OPC_CheckPredicate, 53, // Predicate_zextload
/*190119*/              OPC_Scope, 48, /*->190169*/ // 2 children in Scope
/*190121*/                OPC_CheckPredicate, 75, // Predicate_zextloadvi8
/*190123*/                OPC_MoveParent,
/*190124*/                OPC_RecordChild2, // #3 = $src0
/*190125*/                OPC_SwitchType /*2 cases */, 19, MVT::v16i16,// ->190147
/*190128*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*190130*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*190133*/                  OPC_EmitMergeInputChains1_1,
/*190134*/                  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)
/*190147*/                /*SwitchType*/ 19, MVT::v16i32,// ->190168
/*190149*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*190151*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*190154*/                  OPC_EmitMergeInputChains1_1,
/*190155*/                  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)
/*190168*/                0, // EndSwitchType
/*190169*/              /*Scope*/ 25, /*->190195*/
/*190170*/                OPC_CheckPredicate, 76, // Predicate_zextloadvi16
/*190172*/                OPC_MoveParent,
/*190173*/                OPC_RecordChild2, // #3 = $src0
/*190174*/                OPC_CheckType, MVT::v16i32,
/*190176*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*190178*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*190181*/                OPC_EmitMergeInputChains1_1,
/*190182*/                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)
/*190195*/              0, /*End of Scope*/
/*190196*/            /*Scope*/ 79, /*->190276*/
/*190197*/              OPC_CheckPredicate, 68, // Predicate_sextload
/*190199*/              OPC_Scope, 48, /*->190249*/ // 2 children in Scope
/*190201*/                OPC_CheckPredicate, 75, // Predicate_sextloadvi8
/*190203*/                OPC_MoveParent,
/*190204*/                OPC_RecordChild2, // #3 = $src0
/*190205*/                OPC_SwitchType /*2 cases */, 19, MVT::v16i16,// ->190227
/*190208*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*190210*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*190213*/                  OPC_EmitMergeInputChains1_1,
/*190214*/                  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)
/*190227*/                /*SwitchType*/ 19, MVT::v16i32,// ->190248
/*190229*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*190231*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*190234*/                  OPC_EmitMergeInputChains1_1,
/*190235*/                  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)
/*190248*/                0, // EndSwitchType
/*190249*/              /*Scope*/ 25, /*->190275*/
/*190250*/                OPC_CheckPredicate, 76, // Predicate_sextloadvi16
/*190252*/                OPC_MoveParent,
/*190253*/                OPC_RecordChild2, // #3 = $src0
/*190254*/                OPC_CheckType, MVT::v16i32,
/*190256*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*190258*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*190261*/                OPC_EmitMergeInputChains1_1,
/*190262*/                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)
/*190275*/              0, /*End of Scope*/
/*190276*/            0, /*End of Scope*/
/*190277*/          /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::SUBV_BROADCAST),// ->190346
/*190280*/            OPC_MoveChild0,
/*190281*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*190284*/            OPC_RecordMemRef,
/*190285*/            OPC_RecordNode, // #1 = 'ld' chained node
/*190286*/            OPC_CheckFoldableChainNode,
/*190287*/            OPC_RecordChild1, // #2 = $src
/*190288*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*190290*/            OPC_CheckPredicate, 9, // Predicate_load
/*190292*/            OPC_SwitchType /*2 cases */, 24, MVT::v4i32,// ->190319
/*190295*/              OPC_MoveParent,
/*190296*/              OPC_MoveParent,
/*190297*/              OPC_RecordChild2, // #3 = $src0
/*190298*/              OPC_CheckType, MVT::v16i32,
/*190300*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*190302*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*190305*/              OPC_EmitMergeInputChains1_1,
/*190306*/              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] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                        // Dst: (VBROADCASTI32X4rmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*190319*/            /*SwitchType*/ 24, MVT::v8i32,// ->190345
/*190321*/              OPC_MoveParent,
/*190322*/              OPC_MoveParent,
/*190323*/              OPC_RecordChild2, // #3 = $src0
/*190324*/              OPC_CheckType, MVT::v16i32,
/*190326*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*190328*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*190331*/              OPC_EmitMergeInputChains1_1,
/*190332*/              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] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                        // Dst: (VBROADCASTI32X8rmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*190345*/            0, // EndSwitchType
/*190346*/          /*SwitchOpcode*/ 112|128,1/*240*/, TARGET_VAL(X86ISD::VPERMV3),// ->190590
/*190350*/            OPC_RecordChild0, // #1 = $src2
/*190351*/            OPC_RecordChild1, // #2 = $src1
/*190352*/            OPC_MoveChild2,
/*190353*/            OPC_SwitchOpcode /*2 cases */, 38|128,1/*166*/, TARGET_VAL(ISD::LOAD),// ->190524
/*190358*/              OPC_RecordMemRef,
/*190359*/              OPC_RecordNode, // #3 = 'ld' chained node
/*190360*/              OPC_CheckFoldableChainNode,
/*190361*/              OPC_RecordChild1, // #4 = $src3
/*190362*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*190364*/              OPC_CheckPredicate, 9, // Predicate_load
/*190366*/              OPC_MoveParent,
/*190367*/              OPC_MoveParent,
/*190368*/              OPC_Scope, 76, /*->190446*/ // 2 children in Scope
/*190370*/                OPC_CheckChild2Same, 2,
/*190372*/                OPC_SwitchType /*3 cases */, 22, MVT::v16i32,// ->190397
/*190375*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*190377*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*190380*/                  OPC_EmitMergeInputChains, 1, 3, 
/*190383*/                  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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16i32] }:$src1) - Complexity = 28
                            // Dst: (VPERMI2Drmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*190397*/                /*SwitchType*/ 22, MVT::v16i16,// ->190421
/*190399*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*190401*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*190404*/                  OPC_EmitMergeInputChains, 1, 3, 
/*190407*/                  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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v16i16] }:$src1) - Complexity = 28
                            // Dst: (VPERMI2W256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/*190421*/                /*SwitchType*/ 22, MVT::v16i8,// ->190445
/*190423*/                  OPC_CheckPatternPredicate, 181, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*190425*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*190428*/                  OPC_EmitMergeInputChains, 1, 3, 
/*190431*/                  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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v16i8] }:$src1) - Complexity = 28
                            // Dst: (VPERMI2B128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src2, addr:{ *:[iPTR] }:$src3)
/*190445*/                0, // EndSwitchType
/*190446*/              /*Scope*/ 76, /*->190523*/
/*190447*/                OPC_CheckChild2Same, 1,
/*190449*/                OPC_SwitchType /*3 cases */, 22, MVT::v16i32,// ->190474
/*190452*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*190454*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*190457*/                  OPC_EmitMergeInputChains, 1, 3, 
/*190460*/                  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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16i32] }:$src1) - Complexity = 28
                            // Dst: (VPERMT2Drmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*190474*/                /*SwitchType*/ 22, MVT::v16i16,// ->190498
/*190476*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*190478*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*190481*/                  OPC_EmitMergeInputChains, 1, 3, 
/*190484*/                  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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v16i16] }:$src1) - Complexity = 28
                            // Dst: (VPERMT2W256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/*190498*/                /*SwitchType*/ 22, MVT::v16i8,// ->190522
/*190500*/                  OPC_CheckPatternPredicate, 181, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*190502*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*190505*/                  OPC_EmitMergeInputChains, 1, 3, 
/*190508*/                  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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v16i8] }:$src1) - Complexity = 28
                            // Dst: (VPERMT2B128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src2, addr:{ *:[iPTR] }:$src3)
/*190522*/                0, // EndSwitchType
/*190523*/              0, /*End of Scope*/
/*190524*/            /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->190589
/*190527*/              OPC_RecordMemRef,
/*190528*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*190529*/              OPC_CheckFoldableChainNode,
/*190530*/              OPC_RecordChild1, // #4 = $src3
/*190531*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*190533*/              OPC_MoveParent,
/*190534*/              OPC_MoveParent,
/*190535*/              OPC_CheckType, MVT::v16i32,
/*190537*/              OPC_Scope, 24, /*->190563*/ // 2 children in Scope
/*190539*/                OPC_CheckChild2Same, 2,
/*190541*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*190543*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*190546*/                OPC_EmitMergeInputChains, 1, 3, 
/*190549*/                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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16i32] }:$src1) - Complexity = 28
                          // Dst: (VPERMI2Drmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*190563*/              /*Scope*/ 24, /*->190588*/
/*190564*/                OPC_CheckChild2Same, 1,
/*190566*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*190568*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*190571*/                OPC_EmitMergeInputChains, 1, 3, 
/*190574*/                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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16i32] }:$src1) - Complexity = 28
                          // Dst: (VPERMT2Drmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*190588*/              0, /*End of Scope*/
/*190589*/            0, // EndSwitchOpcode
/*190590*/          /*SwitchOpcode*/ 117|128,1/*245*/, TARGET_VAL(ISD::ADD),// ->190839
/*190594*/            OPC_Scope, 120, /*->190716*/ // 2 children in Scope
/*190596*/              OPC_RecordChild0, // #1 = $src1
/*190597*/              OPC_MoveChild1,
/*190598*/              OPC_SwitchOpcode /*2 cases */, 79, TARGET_VAL(ISD::LOAD),// ->190681
/*190602*/                OPC_RecordMemRef,
/*190603*/                OPC_RecordNode, // #2 = 'ld' chained node
/*190604*/                OPC_CheckFoldableChainNode,
/*190605*/                OPC_RecordChild1, // #3 = $src2
/*190606*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*190608*/                OPC_CheckPredicate, 9, // Predicate_load
/*190610*/                OPC_MoveParent,
/*190611*/                OPC_MoveParent,
/*190612*/                OPC_RecordChild2, // #4 = $src0
/*190613*/                OPC_SwitchType /*3 cases */, 20, MVT::v16i32,// ->190636
/*190616*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*190618*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*190621*/                  OPC_EmitMergeInputChains1_2,
/*190622*/                  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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                            // Dst: (VPADDDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*190636*/                /*SwitchType*/ 20, MVT::v16i16,// ->190658
/*190638*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*190640*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*190643*/                  OPC_EmitMergeInputChains1_2,
/*190644*/                  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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v16i16] }:$src0) - Complexity = 28
                            // Dst: (VPADDWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*190658*/                /*SwitchType*/ 20, MVT::v16i8,// ->190680
/*190660*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*190662*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*190665*/                  OPC_EmitMergeInputChains1_2,
/*190666*/                  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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v16i8] }:$src0) - Complexity = 28
                            // Dst: (VPADDBZ128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*190680*/                0, // EndSwitchType
/*190681*/              /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->190715
/*190684*/                OPC_RecordMemRef,
/*190685*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*190686*/                OPC_CheckFoldableChainNode,
/*190687*/                OPC_RecordChild1, // #3 = $src2
/*190688*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*190690*/                OPC_MoveParent,
/*190691*/                OPC_MoveParent,
/*190692*/                OPC_RecordChild2, // #4 = $src0
/*190693*/                OPC_CheckType, MVT::v16i32,
/*190695*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*190697*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*190700*/                OPC_EmitMergeInputChains1_2,
/*190701*/                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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                          // Dst: (VPADDDZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*190715*/              0, // EndSwitchOpcode
/*190716*/            /*Scope*/ 121, /*->190838*/
/*190717*/              OPC_MoveChild0,
/*190718*/              OPC_SwitchOpcode /*2 cases */, 80, TARGET_VAL(ISD::LOAD),// ->190802
/*190722*/                OPC_RecordMemRef,
/*190723*/                OPC_RecordNode, // #1 = 'ld' chained node
/*190724*/                OPC_CheckFoldableChainNode,
/*190725*/                OPC_RecordChild1, // #2 = $src2
/*190726*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*190728*/                OPC_CheckPredicate, 9, // Predicate_load
/*190730*/                OPC_MoveParent,
/*190731*/                OPC_RecordChild1, // #3 = $src1
/*190732*/                OPC_MoveParent,
/*190733*/                OPC_RecordChild2, // #4 = $src0
/*190734*/                OPC_SwitchType /*3 cases */, 20, MVT::v16i32,// ->190757
/*190737*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*190739*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*190742*/                  OPC_EmitMergeInputChains1_1,
/*190743*/                  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] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16i32] }:$src1), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                            // Dst: (VPADDDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*190757*/                /*SwitchType*/ 20, MVT::v16i16,// ->190779
/*190759*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*190761*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*190764*/                  OPC_EmitMergeInputChains1_1,
/*190765*/                  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] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1), VR256X:{ *:[v16i16] }:$src0) - Complexity = 28
                            // Dst: (VPADDWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*190779*/                /*SwitchType*/ 20, MVT::v16i8,// ->190801
/*190781*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*190783*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*190786*/                  OPC_EmitMergeInputChains1_1,
/*190787*/                  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] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v16i8] }:$src1), VR128X:{ *:[v16i8] }:$src0) - Complexity = 28
                            // Dst: (VPADDBZ128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*190801*/                0, // EndSwitchType
/*190802*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->190837
/*190805*/                OPC_RecordMemRef,
/*190806*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*190807*/                OPC_CheckFoldableChainNode,
/*190808*/                OPC_RecordChild1, // #2 = $src2
/*190809*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*190811*/                OPC_MoveParent,
/*190812*/                OPC_RecordChild1, // #3 = $src1
/*190813*/                OPC_MoveParent,
/*190814*/                OPC_RecordChild2, // #4 = $src0
/*190815*/                OPC_CheckType, MVT::v16i32,
/*190817*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*190819*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*190822*/                OPC_EmitMergeInputChains1_1,
/*190823*/                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] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16i32] }:$src1), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                          // Dst: (VPADDDZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*190837*/              0, // EndSwitchOpcode
/*190838*/            0, /*End of Scope*/
/*190839*/          /*SwitchOpcode*/ 120, TARGET_VAL(ISD::SUB),// ->190962
/*190842*/            OPC_RecordChild0, // #1 = $src1
/*190843*/            OPC_MoveChild1,
/*190844*/            OPC_SwitchOpcode /*2 cases */, 79, TARGET_VAL(ISD::LOAD),// ->190927
/*190848*/              OPC_RecordMemRef,
/*190849*/              OPC_RecordNode, // #2 = 'ld' chained node
/*190850*/              OPC_CheckFoldableChainNode,
/*190851*/              OPC_RecordChild1, // #3 = $src2
/*190852*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*190854*/              OPC_CheckPredicate, 9, // Predicate_load
/*190856*/              OPC_MoveParent,
/*190857*/              OPC_MoveParent,
/*190858*/              OPC_RecordChild2, // #4 = $src0
/*190859*/              OPC_SwitchType /*3 cases */, 20, MVT::v16i32,// ->190882
/*190862*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*190864*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*190867*/                OPC_EmitMergeInputChains1_2,
/*190868*/                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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                          // Dst: (VPSUBDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*190882*/              /*SwitchType*/ 20, MVT::v16i16,// ->190904
/*190884*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*190886*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*190889*/                OPC_EmitMergeInputChains1_2,
/*190890*/                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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v16i16] }:$src0) - Complexity = 28
                          // Dst: (VPSUBWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*190904*/              /*SwitchType*/ 20, MVT::v16i8,// ->190926
/*190906*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*190908*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*190911*/                OPC_EmitMergeInputChains1_2,
/*190912*/                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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v16i8] }:$src0) - Complexity = 28
                          // Dst: (VPSUBBZ128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*190926*/              0, // EndSwitchType
/*190927*/            /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->190961
/*190930*/              OPC_RecordMemRef,
/*190931*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*190932*/              OPC_CheckFoldableChainNode,
/*190933*/              OPC_RecordChild1, // #3 = $src2
/*190934*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*190936*/              OPC_MoveParent,
/*190937*/              OPC_MoveParent,
/*190938*/              OPC_RecordChild2, // #4 = $src0
/*190939*/              OPC_CheckType, MVT::v16i32,
/*190941*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*190943*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*190946*/              OPC_EmitMergeInputChains1_2,
/*190947*/              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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                        // Dst: (VPSUBDZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*190961*/            0, // EndSwitchOpcode
/*190962*/          /*SwitchOpcode*/ 0|128,1/*128*/, TARGET_VAL(ISD::SADDSAT),// ->191094
/*190966*/            OPC_Scope, 62, /*->191030*/ // 2 children in Scope
/*190968*/              OPC_RecordChild0, // #1 = $src1
/*190969*/              OPC_MoveChild1,
/*190970*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*190973*/              OPC_RecordMemRef,
/*190974*/              OPC_RecordNode, // #2 = 'ld' chained node
/*190975*/              OPC_CheckFoldableChainNode,
/*190976*/              OPC_RecordChild1, // #3 = $src2
/*190977*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*190979*/              OPC_CheckPredicate, 9, // Predicate_load
/*190981*/              OPC_MoveParent,
/*190982*/              OPC_MoveParent,
/*190983*/              OPC_RecordChild2, // #4 = $src0
/*190984*/              OPC_SwitchType /*2 cases */, 20, MVT::v16i16,// ->191007
/*190987*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*190989*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*190992*/                OPC_EmitMergeInputChains1_2,
/*190993*/                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, (saddsat:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v16i16] }:$src0) - Complexity = 28
                          // Dst: (VPADDSWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*191007*/              /*SwitchType*/ 20, MVT::v16i8,// ->191029
/*191009*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*191011*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*191014*/                OPC_EmitMergeInputChains1_2,
/*191015*/                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, (saddsat:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v16i8] }:$src0) - Complexity = 28
                          // Dst: (VPADDSBZ128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*191029*/              0, // EndSwitchType
/*191030*/            /*Scope*/ 62, /*->191093*/
/*191031*/              OPC_MoveChild0,
/*191032*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*191035*/              OPC_RecordMemRef,
/*191036*/              OPC_RecordNode, // #1 = 'ld' chained node
/*191037*/              OPC_CheckFoldableChainNode,
/*191038*/              OPC_RecordChild1, // #2 = $src2
/*191039*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*191041*/              OPC_CheckPredicate, 9, // Predicate_load
/*191043*/              OPC_MoveParent,
/*191044*/              OPC_RecordChild1, // #3 = $src1
/*191045*/              OPC_MoveParent,
/*191046*/              OPC_RecordChild2, // #4 = $src0
/*191047*/              OPC_SwitchType /*2 cases */, 20, MVT::v16i16,// ->191070
/*191050*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*191052*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*191055*/                OPC_EmitMergeInputChains1_1,
/*191056*/                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, (saddsat:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1), VR256X:{ *:[v16i16] }:$src0) - Complexity = 28
                          // Dst: (VPADDSWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*191070*/              /*SwitchType*/ 20, MVT::v16i8,// ->191092
/*191072*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*191074*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*191077*/                OPC_EmitMergeInputChains1_1,
/*191078*/                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, (saddsat:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v16i8] }:$src1), VR128X:{ *:[v16i8] }:$src0) - Complexity = 28
                          // Dst: (VPADDSBZ128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*191092*/              0, // EndSwitchType
/*191093*/            0, /*End of Scope*/
/*191094*/          /*SwitchOpcode*/ 62, TARGET_VAL(ISD::SSUBSAT),// ->191159
/*191097*/            OPC_RecordChild0, // #1 = $src1
/*191098*/            OPC_MoveChild1,
/*191099*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*191102*/            OPC_RecordMemRef,
/*191103*/            OPC_RecordNode, // #2 = 'ld' chained node
/*191104*/            OPC_CheckFoldableChainNode,
/*191105*/            OPC_RecordChild1, // #3 = $src2
/*191106*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*191108*/            OPC_CheckPredicate, 9, // Predicate_load
/*191110*/            OPC_MoveParent,
/*191111*/            OPC_MoveParent,
/*191112*/            OPC_RecordChild2, // #4 = $src0
/*191113*/            OPC_SwitchType /*2 cases */, 20, MVT::v16i16,// ->191136
/*191116*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*191118*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*191121*/              OPC_EmitMergeInputChains1_2,
/*191122*/              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, (ssubsat:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v16i16] }:$src0) - Complexity = 28
                        // Dst: (VPSUBSWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*191136*/            /*SwitchType*/ 20, MVT::v16i8,// ->191158
/*191138*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*191140*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*191143*/              OPC_EmitMergeInputChains1_2,
/*191144*/              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, (ssubsat:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v16i8] }:$src0) - Complexity = 28
                        // Dst: (VPSUBSBZ128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*191158*/            0, // EndSwitchType
/*191159*/          /*SwitchOpcode*/ 0|128,1/*128*/, TARGET_VAL(ISD::UADDSAT),// ->191291
/*191163*/            OPC_Scope, 62, /*->191227*/ // 2 children in Scope
/*191165*/              OPC_RecordChild0, // #1 = $src1
/*191166*/              OPC_MoveChild1,
/*191167*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*191170*/              OPC_RecordMemRef,
/*191171*/              OPC_RecordNode, // #2 = 'ld' chained node
/*191172*/              OPC_CheckFoldableChainNode,
/*191173*/              OPC_RecordChild1, // #3 = $src2
/*191174*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*191176*/              OPC_CheckPredicate, 9, // Predicate_load
/*191178*/              OPC_MoveParent,
/*191179*/              OPC_MoveParent,
/*191180*/              OPC_RecordChild2, // #4 = $src0
/*191181*/              OPC_SwitchType /*2 cases */, 20, MVT::v16i16,// ->191204
/*191184*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*191186*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*191189*/                OPC_EmitMergeInputChains1_2,
/*191190*/                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, (uaddsat:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v16i16] }:$src0) - Complexity = 28
                          // Dst: (VPADDUSWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*191204*/              /*SwitchType*/ 20, MVT::v16i8,// ->191226
/*191206*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*191208*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*191211*/                OPC_EmitMergeInputChains1_2,
/*191212*/                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, (uaddsat:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v16i8] }:$src0) - Complexity = 28
                          // Dst: (VPADDUSBZ128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*191226*/              0, // EndSwitchType
/*191227*/            /*Scope*/ 62, /*->191290*/
/*191228*/              OPC_MoveChild0,
/*191229*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*191232*/              OPC_RecordMemRef,
/*191233*/              OPC_RecordNode, // #1 = 'ld' chained node
/*191234*/              OPC_CheckFoldableChainNode,
/*191235*/              OPC_RecordChild1, // #2 = $src2
/*191236*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*191238*/              OPC_CheckPredicate, 9, // Predicate_load
/*191240*/              OPC_MoveParent,
/*191241*/              OPC_RecordChild1, // #3 = $src1
/*191242*/              OPC_MoveParent,
/*191243*/              OPC_RecordChild2, // #4 = $src0
/*191244*/              OPC_SwitchType /*2 cases */, 20, MVT::v16i16,// ->191267
/*191247*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*191249*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*191252*/                OPC_EmitMergeInputChains1_1,
/*191253*/                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, (uaddsat:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1), VR256X:{ *:[v16i16] }:$src0) - Complexity = 28
                          // Dst: (VPADDUSWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*191267*/              /*SwitchType*/ 20, MVT::v16i8,// ->191289
/*191269*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*191271*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*191274*/                OPC_EmitMergeInputChains1_1,
/*191275*/                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, (uaddsat:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v16i8] }:$src1), VR128X:{ *:[v16i8] }:$src0) - Complexity = 28
                          // Dst: (VPADDUSBZ128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*191289*/              0, // EndSwitchType
/*191290*/            0, /*End of Scope*/
/*191291*/          /*SwitchOpcode*/ 62, TARGET_VAL(ISD::USUBSAT),// ->191356
/*191294*/            OPC_RecordChild0, // #1 = $src1
/*191295*/            OPC_MoveChild1,
/*191296*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*191299*/            OPC_RecordMemRef,
/*191300*/            OPC_RecordNode, // #2 = 'ld' chained node
/*191301*/            OPC_CheckFoldableChainNode,
/*191302*/            OPC_RecordChild1, // #3 = $src2
/*191303*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*191305*/            OPC_CheckPredicate, 9, // Predicate_load
/*191307*/            OPC_MoveParent,
/*191308*/            OPC_MoveParent,
/*191309*/            OPC_RecordChild2, // #4 = $src0
/*191310*/            OPC_SwitchType /*2 cases */, 20, MVT::v16i16,// ->191333
/*191313*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*191315*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*191318*/              OPC_EmitMergeInputChains1_2,
/*191319*/              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, (usubsat:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v16i16] }:$src0) - Complexity = 28
                        // Dst: (VPSUBUSWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*191333*/            /*SwitchType*/ 20, MVT::v16i8,// ->191355
/*191335*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*191337*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*191340*/              OPC_EmitMergeInputChains1_2,
/*191341*/              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, (usubsat:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v16i8] }:$src0) - Complexity = 28
                        // Dst: (VPSUBUSBZ128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*191355*/            0, // EndSwitchType
/*191356*/          /*SwitchOpcode*/ 73|128,1/*201*/, TARGET_VAL(ISD::MUL),// ->191561
/*191360*/            OPC_Scope, 98, /*->191460*/ // 2 children in Scope
/*191362*/              OPC_RecordChild0, // #1 = $src1
/*191363*/              OPC_MoveChild1,
/*191364*/              OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->191425
/*191368*/                OPC_RecordMemRef,
/*191369*/                OPC_RecordNode, // #2 = 'ld' chained node
/*191370*/                OPC_CheckFoldableChainNode,
/*191371*/                OPC_RecordChild1, // #3 = $src2
/*191372*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*191374*/                OPC_CheckPredicate, 9, // Predicate_load
/*191376*/                OPC_MoveParent,
/*191377*/                OPC_MoveParent,
/*191378*/                OPC_RecordChild2, // #4 = $src0
/*191379*/                OPC_SwitchType /*2 cases */, 20, MVT::v16i32,// ->191402
/*191382*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*191384*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*191387*/                  OPC_EmitMergeInputChains1_2,
/*191388*/                  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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                            // Dst: (VPMULLDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*191402*/                /*SwitchType*/ 20, MVT::v16i16,// ->191424
/*191404*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*191406*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*191409*/                  OPC_EmitMergeInputChains1_2,
/*191410*/                  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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v16i16] }:$src0) - Complexity = 28
                            // Dst: (VPMULLWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*191424*/                0, // EndSwitchType
/*191425*/              /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->191459
/*191428*/                OPC_RecordMemRef,
/*191429*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*191430*/                OPC_CheckFoldableChainNode,
/*191431*/                OPC_RecordChild1, // #3 = $src2
/*191432*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*191434*/                OPC_MoveParent,
/*191435*/                OPC_MoveParent,
/*191436*/                OPC_RecordChild2, // #4 = $src0
/*191437*/                OPC_CheckType, MVT::v16i32,
/*191439*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*191441*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*191444*/                OPC_EmitMergeInputChains1_2,
/*191445*/                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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                          // Dst: (VPMULLDZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*191459*/              0, // EndSwitchOpcode
/*191460*/            /*Scope*/ 99, /*->191560*/
/*191461*/              OPC_MoveChild0,
/*191462*/              OPC_SwitchOpcode /*2 cases */, 58, TARGET_VAL(ISD::LOAD),// ->191524
/*191466*/                OPC_RecordMemRef,
/*191467*/                OPC_RecordNode, // #1 = 'ld' chained node
/*191468*/                OPC_CheckFoldableChainNode,
/*191469*/                OPC_RecordChild1, // #2 = $src2
/*191470*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*191472*/                OPC_CheckPredicate, 9, // Predicate_load
/*191474*/                OPC_MoveParent,
/*191475*/                OPC_RecordChild1, // #3 = $src1
/*191476*/                OPC_MoveParent,
/*191477*/                OPC_RecordChild2, // #4 = $src0
/*191478*/                OPC_SwitchType /*2 cases */, 20, MVT::v16i32,// ->191501
/*191481*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*191483*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*191486*/                  OPC_EmitMergeInputChains1_1,
/*191487*/                  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] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16i32] }:$src1), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                            // Dst: (VPMULLDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*191501*/                /*SwitchType*/ 20, MVT::v16i16,// ->191523
/*191503*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*191505*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*191508*/                  OPC_EmitMergeInputChains1_1,
/*191509*/                  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] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1), VR256X:{ *:[v16i16] }:$src0) - Complexity = 28
                            // Dst: (VPMULLWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*191523*/                0, // EndSwitchType
/*191524*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->191559
/*191527*/                OPC_RecordMemRef,
/*191528*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*191529*/                OPC_CheckFoldableChainNode,
/*191530*/                OPC_RecordChild1, // #2 = $src2
/*191531*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*191533*/                OPC_MoveParent,
/*191534*/                OPC_RecordChild1, // #3 = $src1
/*191535*/                OPC_MoveParent,
/*191536*/                OPC_RecordChild2, // #4 = $src0
/*191537*/                OPC_CheckType, MVT::v16i32,
/*191539*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*191541*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*191544*/                OPC_EmitMergeInputChains1_1,
/*191545*/                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] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16i32] }:$src1), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                          // Dst: (VPMULLDZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*191559*/              0, // EndSwitchOpcode
/*191560*/            0, /*End of Scope*/
/*191561*/          /*SwitchOpcode*/ 80, TARGET_VAL(ISD::MULHS),// ->191644
/*191564*/            OPC_Scope, 38, /*->191604*/ // 2 children in Scope
/*191566*/              OPC_RecordChild0, // #1 = $src1
/*191567*/              OPC_MoveChild1,
/*191568*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*191571*/              OPC_RecordMemRef,
/*191572*/              OPC_RecordNode, // #2 = 'ld' chained node
/*191573*/              OPC_CheckFoldableChainNode,
/*191574*/              OPC_RecordChild1, // #3 = $src2
/*191575*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*191577*/              OPC_CheckPredicate, 9, // Predicate_load
/*191579*/              OPC_MoveParent,
/*191580*/              OPC_MoveParent,
/*191581*/              OPC_RecordChild2, // #4 = $src0
/*191582*/              OPC_CheckType, MVT::v16i16,
/*191584*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*191586*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*191589*/              OPC_EmitMergeInputChains1_2,
/*191590*/              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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v16i16] }:$src0) - Complexity = 28
                        // Dst: (VPMULHWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*191604*/            /*Scope*/ 38, /*->191643*/
/*191605*/              OPC_MoveChild0,
/*191606*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*191609*/              OPC_RecordMemRef,
/*191610*/              OPC_RecordNode, // #1 = 'ld' chained node
/*191611*/              OPC_CheckFoldableChainNode,
/*191612*/              OPC_RecordChild1, // #2 = $src2
/*191613*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*191615*/              OPC_CheckPredicate, 9, // Predicate_load
/*191617*/              OPC_MoveParent,
/*191618*/              OPC_RecordChild1, // #3 = $src1
/*191619*/              OPC_MoveParent,
/*191620*/              OPC_RecordChild2, // #4 = $src0
/*191621*/              OPC_CheckType, MVT::v16i16,
/*191623*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*191625*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*191628*/              OPC_EmitMergeInputChains1_1,
/*191629*/              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] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1), VR256X:{ *:[v16i16] }:$src0) - Complexity = 28
                        // Dst: (VPMULHWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*191643*/            0, /*End of Scope*/
/*191644*/          /*SwitchOpcode*/ 80, TARGET_VAL(ISD::MULHU),// ->191727
/*191647*/            OPC_Scope, 38, /*->191687*/ // 2 children in Scope
/*191649*/              OPC_RecordChild0, // #1 = $src1
/*191650*/              OPC_MoveChild1,
/*191651*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*191654*/              OPC_RecordMemRef,
/*191655*/              OPC_RecordNode, // #2 = 'ld' chained node
/*191656*/              OPC_CheckFoldableChainNode,
/*191657*/              OPC_RecordChild1, // #3 = $src2
/*191658*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*191660*/              OPC_CheckPredicate, 9, // Predicate_load
/*191662*/              OPC_MoveParent,
/*191663*/              OPC_MoveParent,
/*191664*/              OPC_RecordChild2, // #4 = $src0
/*191665*/              OPC_CheckType, MVT::v16i16,
/*191667*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*191669*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*191672*/              OPC_EmitMergeInputChains1_2,
/*191673*/              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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v16i16] }:$src0) - Complexity = 28
                        // Dst: (VPMULHUWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*191687*/            /*Scope*/ 38, /*->191726*/
/*191688*/              OPC_MoveChild0,
/*191689*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*191692*/              OPC_RecordMemRef,
/*191693*/              OPC_RecordNode, // #1 = 'ld' chained node
/*191694*/              OPC_CheckFoldableChainNode,
/*191695*/              OPC_RecordChild1, // #2 = $src2
/*191696*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*191698*/              OPC_CheckPredicate, 9, // Predicate_load
/*191700*/              OPC_MoveParent,
/*191701*/              OPC_RecordChild1, // #3 = $src1
/*191702*/              OPC_MoveParent,
/*191703*/              OPC_RecordChild2, // #4 = $src0
/*191704*/              OPC_CheckType, MVT::v16i16,
/*191706*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*191708*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*191711*/              OPC_EmitMergeInputChains1_1,
/*191712*/              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] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1), VR256X:{ *:[v16i16] }:$src0) - Complexity = 28
                        // Dst: (VPMULHUWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*191726*/            0, /*End of Scope*/
/*191727*/          /*SwitchOpcode*/ 80, TARGET_VAL(X86ISD::MULHRS),// ->191810
/*191730*/            OPC_Scope, 38, /*->191770*/ // 2 children in Scope
/*191732*/              OPC_RecordChild0, // #1 = $src1
/*191733*/              OPC_MoveChild1,
/*191734*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*191737*/              OPC_RecordMemRef,
/*191738*/              OPC_RecordNode, // #2 = 'ld' chained node
/*191739*/              OPC_CheckFoldableChainNode,
/*191740*/              OPC_RecordChild1, // #3 = $src2
/*191741*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*191743*/              OPC_CheckPredicate, 9, // Predicate_load
/*191745*/              OPC_MoveParent,
/*191746*/              OPC_MoveParent,
/*191747*/              OPC_RecordChild2, // #4 = $src0
/*191748*/              OPC_CheckType, MVT::v16i16,
/*191750*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*191752*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*191755*/              OPC_EmitMergeInputChains1_2,
/*191756*/              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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v16i16] }:$src0) - Complexity = 28
                        // Dst: (VPMULHRSWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*191770*/            /*Scope*/ 38, /*->191809*/
/*191771*/              OPC_MoveChild0,
/*191772*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*191775*/              OPC_RecordMemRef,
/*191776*/              OPC_RecordNode, // #1 = 'ld' chained node
/*191777*/              OPC_CheckFoldableChainNode,
/*191778*/              OPC_RecordChild1, // #2 = $src2
/*191779*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*191781*/              OPC_CheckPredicate, 9, // Predicate_load
/*191783*/              OPC_MoveParent,
/*191784*/              OPC_RecordChild1, // #3 = $src1
/*191785*/              OPC_MoveParent,
/*191786*/              OPC_RecordChild2, // #4 = $src0
/*191787*/              OPC_CheckType, MVT::v16i16,
/*191789*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*191791*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*191794*/              OPC_EmitMergeInputChains1_1,
/*191795*/              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] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1), VR256X:{ *:[v16i16] }:$src0) - Complexity = 28
                        // Dst: (VPMULHRSWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*191809*/            0, /*End of Scope*/
/*191810*/          /*SwitchOpcode*/ 0|128,1/*128*/, TARGET_VAL(X86ISD::AVG),// ->191942
/*191814*/            OPC_Scope, 62, /*->191878*/ // 2 children in Scope
/*191816*/              OPC_RecordChild0, // #1 = $src1
/*191817*/              OPC_MoveChild1,
/*191818*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*191821*/              OPC_RecordMemRef,
/*191822*/              OPC_RecordNode, // #2 = 'ld' chained node
/*191823*/              OPC_CheckFoldableChainNode,
/*191824*/              OPC_RecordChild1, // #3 = $src2
/*191825*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*191827*/              OPC_CheckPredicate, 9, // Predicate_load
/*191829*/              OPC_MoveParent,
/*191830*/              OPC_MoveParent,
/*191831*/              OPC_RecordChild2, // #4 = $src0
/*191832*/              OPC_SwitchType /*2 cases */, 20, MVT::v16i16,// ->191855
/*191835*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*191837*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*191840*/                OPC_EmitMergeInputChains1_2,
/*191841*/                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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v16i16] }:$src0) - Complexity = 28
                          // Dst: (VPAVGWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*191855*/              /*SwitchType*/ 20, MVT::v16i8,// ->191877
/*191857*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*191859*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*191862*/                OPC_EmitMergeInputChains1_2,
/*191863*/                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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v16i8] }:$src0) - Complexity = 28
                          // Dst: (VPAVGBZ128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*191877*/              0, // EndSwitchType
/*191878*/            /*Scope*/ 62, /*->191941*/
/*191879*/              OPC_MoveChild0,
/*191880*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*191883*/              OPC_RecordMemRef,
/*191884*/              OPC_RecordNode, // #1 = 'ld' chained node
/*191885*/              OPC_CheckFoldableChainNode,
/*191886*/              OPC_RecordChild1, // #2 = $src2
/*191887*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*191889*/              OPC_CheckPredicate, 9, // Predicate_load
/*191891*/              OPC_MoveParent,
/*191892*/              OPC_RecordChild1, // #3 = $src1
/*191893*/              OPC_MoveParent,
/*191894*/              OPC_RecordChild2, // #4 = $src0
/*191895*/              OPC_SwitchType /*2 cases */, 20, MVT::v16i16,// ->191918
/*191898*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*191900*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*191903*/                OPC_EmitMergeInputChains1_1,
/*191904*/                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] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1), VR256X:{ *:[v16i16] }:$src0) - Complexity = 28
                          // Dst: (VPAVGWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*191918*/              /*SwitchType*/ 20, MVT::v16i8,// ->191940
/*191920*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*191922*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*191925*/                OPC_EmitMergeInputChains1_1,
/*191926*/                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] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v16i8] }:$src1), VR128X:{ *:[v16i8] }:$src0) - Complexity = 28
                          // Dst: (VPAVGBZ128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*191940*/              0, // EndSwitchType
/*191941*/            0, /*End of Scope*/
/*191942*/          /*SwitchOpcode*/ 119, TARGET_VAL(X86ISD::PACKSS),// ->192064
/*191945*/            OPC_RecordChild0, // #1 = $src1
/*191946*/            OPC_Scope, 75, /*->192023*/ // 2 children in Scope
/*191948*/              OPC_CheckChild0Type, MVT::v8i32,
/*191950*/              OPC_MoveChild1,
/*191951*/              OPC_SwitchOpcode /*2 cases */, 33, TARGET_VAL(ISD::LOAD),// ->191988
/*191955*/                OPC_RecordMemRef,
/*191956*/                OPC_RecordNode, // #2 = 'ld' chained node
/*191957*/                OPC_CheckFoldableChainNode,
/*191958*/                OPC_RecordChild1, // #3 = $src2
/*191959*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*191961*/                OPC_CheckPredicate, 9, // Predicate_load
/*191963*/                OPC_MoveParent,
/*191964*/                OPC_MoveParent,
/*191965*/                OPC_RecordChild2, // #4 = $src0
/*191966*/                OPC_CheckType, MVT::v16i16,
/*191968*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*191970*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*191973*/                OPC_EmitMergeInputChains1_2,
/*191974*/                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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v16i16] }:$src0) - Complexity = 28
                          // Dst: (VPACKSSDWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*191988*/              /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->192022
/*191991*/                OPC_RecordMemRef,
/*191992*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*191993*/                OPC_CheckFoldableChainNode,
/*191994*/                OPC_RecordChild1, // #3 = $src2
/*191995*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*191997*/                OPC_MoveParent,
/*191998*/                OPC_MoveParent,
/*191999*/                OPC_RecordChild2, // #4 = $src0
/*192000*/                OPC_CheckType, MVT::v16i16,
/*192002*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*192004*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*192007*/                OPC_EmitMergeInputChains1_2,
/*192008*/                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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v16i16] }:$src0) - Complexity = 28
                          // Dst: (VPACKSSDWZ256rmbk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*192022*/              0, // EndSwitchOpcode
/*192023*/            /*Scope*/ 39, /*->192063*/
/*192024*/              OPC_CheckChild0Type, MVT::v8i16,
/*192026*/              OPC_MoveChild1,
/*192027*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*192030*/              OPC_RecordMemRef,
/*192031*/              OPC_RecordNode, // #2 = 'ld' chained node
/*192032*/              OPC_CheckFoldableChainNode,
/*192033*/              OPC_RecordChild1, // #3 = $src2
/*192034*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*192036*/              OPC_CheckPredicate, 9, // Predicate_load
/*192038*/              OPC_MoveParent,
/*192039*/              OPC_MoveParent,
/*192040*/              OPC_RecordChild2, // #4 = $src0
/*192041*/              OPC_CheckType, MVT::v16i8,
/*192043*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*192045*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*192048*/              OPC_EmitMergeInputChains1_2,
/*192049*/              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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v16i8] }:$src0) - Complexity = 28
                        // Dst: (VPACKSSWBZ128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*192063*/            0, /*End of Scope*/
/*192064*/          /*SwitchOpcode*/ 119, TARGET_VAL(X86ISD::PACKUS),// ->192186
/*192067*/            OPC_RecordChild0, // #1 = $src1
/*192068*/            OPC_Scope, 75, /*->192145*/ // 2 children in Scope
/*192070*/              OPC_CheckChild0Type, MVT::v8i32,
/*192072*/              OPC_MoveChild1,
/*192073*/              OPC_SwitchOpcode /*2 cases */, 33, TARGET_VAL(ISD::LOAD),// ->192110
/*192077*/                OPC_RecordMemRef,
/*192078*/                OPC_RecordNode, // #2 = 'ld' chained node
/*192079*/                OPC_CheckFoldableChainNode,
/*192080*/                OPC_RecordChild1, // #3 = $src2
/*192081*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*192083*/                OPC_CheckPredicate, 9, // Predicate_load
/*192085*/                OPC_MoveParent,
/*192086*/                OPC_MoveParent,
/*192087*/                OPC_RecordChild2, // #4 = $src0
/*192088*/                OPC_CheckType, MVT::v16i16,
/*192090*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*192092*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*192095*/                OPC_EmitMergeInputChains1_2,
/*192096*/                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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v16i16] }:$src0) - Complexity = 28
                          // Dst: (VPACKUSDWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*192110*/              /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->192144
/*192113*/                OPC_RecordMemRef,
/*192114*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*192115*/                OPC_CheckFoldableChainNode,
/*192116*/                OPC_RecordChild1, // #3 = $src2
/*192117*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*192119*/                OPC_MoveParent,
/*192120*/                OPC_MoveParent,
/*192121*/                OPC_RecordChild2, // #4 = $src0
/*192122*/                OPC_CheckType, MVT::v16i16,
/*192124*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*192126*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*192129*/                OPC_EmitMergeInputChains1_2,
/*192130*/                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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v16i16] }:$src0) - Complexity = 28
                          // Dst: (VPACKUSDWZ256rmbk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*192144*/              0, // EndSwitchOpcode
/*192145*/            /*Scope*/ 39, /*->192185*/
/*192146*/              OPC_CheckChild0Type, MVT::v8i16,
/*192148*/              OPC_MoveChild1,
/*192149*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*192152*/              OPC_RecordMemRef,
/*192153*/              OPC_RecordNode, // #2 = 'ld' chained node
/*192154*/              OPC_CheckFoldableChainNode,
/*192155*/              OPC_RecordChild1, // #3 = $src2
/*192156*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*192158*/              OPC_CheckPredicate, 9, // Predicate_load
/*192160*/              OPC_MoveParent,
/*192161*/              OPC_MoveParent,
/*192162*/              OPC_RecordChild2, // #4 = $src0
/*192163*/              OPC_CheckType, MVT::v16i8,
/*192165*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*192167*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*192170*/              OPC_EmitMergeInputChains1_2,
/*192171*/              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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v16i8] }:$src0) - Complexity = 28
                        // Dst: (VPACKUSWBZ128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*192185*/            0, /*End of Scope*/
/*192186*/          /*SwitchOpcode*/ 38, TARGET_VAL(X86ISD::VPMADDUBSW),// ->192227
/*192189*/            OPC_RecordChild0, // #1 = $src1
/*192190*/            OPC_MoveChild1,
/*192191*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*192194*/            OPC_RecordMemRef,
/*192195*/            OPC_RecordNode, // #2 = 'ld' chained node
/*192196*/            OPC_CheckFoldableChainNode,
/*192197*/            OPC_RecordChild1, // #3 = $src2
/*192198*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*192200*/            OPC_CheckPredicate, 9, // Predicate_load
/*192202*/            OPC_MoveParent,
/*192203*/            OPC_MoveParent,
/*192204*/            OPC_RecordChild2, // #4 = $src0
/*192205*/            OPC_CheckType, MVT::v16i16,
/*192207*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*192209*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*192212*/            OPC_EmitMergeInputChains1_2,
/*192213*/            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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v16i16] }:$src0) - Complexity = 28
                      // Dst: (VPMADDUBSWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*192227*/          /*SwitchOpcode*/ 80, TARGET_VAL(X86ISD::VPMADDWD),// ->192310
/*192230*/            OPC_Scope, 38, /*->192270*/ // 2 children in Scope
/*192232*/              OPC_RecordChild0, // #1 = $src1
/*192233*/              OPC_MoveChild1,
/*192234*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*192237*/              OPC_RecordMemRef,
/*192238*/              OPC_RecordNode, // #2 = 'ld' chained node
/*192239*/              OPC_CheckFoldableChainNode,
/*192240*/              OPC_RecordChild1, // #3 = $src2
/*192241*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*192243*/              OPC_CheckPredicate, 9, // Predicate_load
/*192245*/              OPC_MoveParent,
/*192246*/              OPC_MoveParent,
/*192247*/              OPC_RecordChild2, // #4 = $src0
/*192248*/              OPC_CheckType, MVT::v16i32,
/*192250*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*192252*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*192255*/              OPC_EmitMergeInputChains1_2,
/*192256*/              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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                        // Dst: (VPMADDWDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*192270*/            /*Scope*/ 38, /*->192309*/
/*192271*/              OPC_MoveChild0,
/*192272*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*192275*/              OPC_RecordMemRef,
/*192276*/              OPC_RecordNode, // #1 = 'ld' chained node
/*192277*/              OPC_CheckFoldableChainNode,
/*192278*/              OPC_RecordChild1, // #2 = $src2
/*192279*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*192281*/              OPC_CheckPredicate, 9, // Predicate_load
/*192283*/              OPC_MoveParent,
/*192284*/              OPC_RecordChild1, // #3 = $src1
/*192285*/              OPC_MoveParent,
/*192286*/              OPC_RecordChild2, // #4 = $src0
/*192287*/              OPC_CheckType, MVT::v16i32,
/*192289*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*192291*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*192294*/              OPC_EmitMergeInputChains1_1,
/*192295*/              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] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                        // Dst: (VPMADDWDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*192309*/            0, /*End of Scope*/
/*192310*/          /*SwitchOpcode*/ 117|128,1/*245*/, TARGET_VAL(ISD::SMAX),// ->192559
/*192314*/            OPC_Scope, 120, /*->192436*/ // 2 children in Scope
/*192316*/              OPC_RecordChild0, // #1 = $src1
/*192317*/              OPC_MoveChild1,
/*192318*/              OPC_SwitchOpcode /*2 cases */, 79, TARGET_VAL(ISD::LOAD),// ->192401
/*192322*/                OPC_RecordMemRef,
/*192323*/                OPC_RecordNode, // #2 = 'ld' chained node
/*192324*/                OPC_CheckFoldableChainNode,
/*192325*/                OPC_RecordChild1, // #3 = $src2
/*192326*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*192328*/                OPC_CheckPredicate, 9, // Predicate_load
/*192330*/                OPC_MoveParent,
/*192331*/                OPC_MoveParent,
/*192332*/                OPC_RecordChild2, // #4 = $src0
/*192333*/                OPC_SwitchType /*3 cases */, 20, MVT::v16i8,// ->192356
/*192336*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*192338*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*192341*/                  OPC_EmitMergeInputChains1_2,
/*192342*/                  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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v16i8] }:$src0) - Complexity = 28
                            // Dst: (VPMAXSBZ128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*192356*/                /*SwitchType*/ 20, MVT::v16i16,// ->192378
/*192358*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*192360*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*192363*/                  OPC_EmitMergeInputChains1_2,
/*192364*/                  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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v16i16] }:$src0) - Complexity = 28
                            // Dst: (VPMAXSWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*192378*/                /*SwitchType*/ 20, MVT::v16i32,// ->192400
/*192380*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*192382*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*192385*/                  OPC_EmitMergeInputChains1_2,
/*192386*/                  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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                            // Dst: (VPMAXSDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*192400*/                0, // EndSwitchType
/*192401*/              /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->192435
/*192404*/                OPC_RecordMemRef,
/*192405*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*192406*/                OPC_CheckFoldableChainNode,
/*192407*/                OPC_RecordChild1, // #3 = $src2
/*192408*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*192410*/                OPC_MoveParent,
/*192411*/                OPC_MoveParent,
/*192412*/                OPC_RecordChild2, // #4 = $src0
/*192413*/                OPC_CheckType, MVT::v16i32,
/*192415*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*192417*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*192420*/                OPC_EmitMergeInputChains1_2,
/*192421*/                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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                          // Dst: (VPMAXSDZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*192435*/              0, // EndSwitchOpcode
/*192436*/            /*Scope*/ 121, /*->192558*/
/*192437*/              OPC_MoveChild0,
/*192438*/              OPC_SwitchOpcode /*2 cases */, 80, TARGET_VAL(ISD::LOAD),// ->192522
/*192442*/                OPC_RecordMemRef,
/*192443*/                OPC_RecordNode, // #1 = 'ld' chained node
/*192444*/                OPC_CheckFoldableChainNode,
/*192445*/                OPC_RecordChild1, // #2 = $src2
/*192446*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*192448*/                OPC_CheckPredicate, 9, // Predicate_load
/*192450*/                OPC_MoveParent,
/*192451*/                OPC_RecordChild1, // #3 = $src1
/*192452*/                OPC_MoveParent,
/*192453*/                OPC_RecordChild2, // #4 = $src0
/*192454*/                OPC_SwitchType /*3 cases */, 20, MVT::v16i8,// ->192477
/*192457*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*192459*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*192462*/                  OPC_EmitMergeInputChains1_1,
/*192463*/                  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] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v16i8] }:$src1), VR128X:{ *:[v16i8] }:$src0) - Complexity = 28
                            // Dst: (VPMAXSBZ128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*192477*/                /*SwitchType*/ 20, MVT::v16i16,// ->192499
/*192479*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*192481*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*192484*/                  OPC_EmitMergeInputChains1_1,
/*192485*/                  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] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1), VR256X:{ *:[v16i16] }:$src0) - Complexity = 28
                            // Dst: (VPMAXSWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*192499*/                /*SwitchType*/ 20, MVT::v16i32,// ->192521
/*192501*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*192503*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*192506*/                  OPC_EmitMergeInputChains1_1,
/*192507*/                  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] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16i32] }:$src1), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                            // Dst: (VPMAXSDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*192521*/                0, // EndSwitchType
/*192522*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->192557
/*192525*/                OPC_RecordMemRef,
/*192526*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*192527*/                OPC_CheckFoldableChainNode,
/*192528*/                OPC_RecordChild1, // #2 = $src2
/*192529*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*192531*/                OPC_MoveParent,
/*192532*/                OPC_RecordChild1, // #3 = $src1
/*192533*/                OPC_MoveParent,
/*192534*/                OPC_RecordChild2, // #4 = $src0
/*192535*/                OPC_CheckType, MVT::v16i32,
/*192537*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*192539*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*192542*/                OPC_EmitMergeInputChains1_1,
/*192543*/                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] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16i32] }:$src1), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                          // Dst: (VPMAXSDZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*192557*/              0, // EndSwitchOpcode
/*192558*/            0, /*End of Scope*/
/*192559*/          /*SwitchOpcode*/ 117|128,1/*245*/, TARGET_VAL(ISD::UMAX),// ->192808
/*192563*/            OPC_Scope, 120, /*->192685*/ // 2 children in Scope
/*192565*/              OPC_RecordChild0, // #1 = $src1
/*192566*/              OPC_MoveChild1,
/*192567*/              OPC_SwitchOpcode /*2 cases */, 79, TARGET_VAL(ISD::LOAD),// ->192650
/*192571*/                OPC_RecordMemRef,
/*192572*/                OPC_RecordNode, // #2 = 'ld' chained node
/*192573*/                OPC_CheckFoldableChainNode,
/*192574*/                OPC_RecordChild1, // #3 = $src2
/*192575*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*192577*/                OPC_CheckPredicate, 9, // Predicate_load
/*192579*/                OPC_MoveParent,
/*192580*/                OPC_MoveParent,
/*192581*/                OPC_RecordChild2, // #4 = $src0
/*192582*/                OPC_SwitchType /*3 cases */, 20, MVT::v16i8,// ->192605
/*192585*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*192587*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*192590*/                  OPC_EmitMergeInputChains1_2,
/*192591*/                  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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v16i8] }:$src0) - Complexity = 28
                            // Dst: (VPMAXUBZ128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*192605*/                /*SwitchType*/ 20, MVT::v16i16,// ->192627
/*192607*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*192609*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*192612*/                  OPC_EmitMergeInputChains1_2,
/*192613*/                  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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v16i16] }:$src0) - Complexity = 28
                            // Dst: (VPMAXUWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*192627*/                /*SwitchType*/ 20, MVT::v16i32,// ->192649
/*192629*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*192631*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*192634*/                  OPC_EmitMergeInputChains1_2,
/*192635*/                  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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                            // Dst: (VPMAXUDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*192649*/                0, // EndSwitchType
/*192650*/              /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->192684
/*192653*/                OPC_RecordMemRef,
/*192654*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*192655*/                OPC_CheckFoldableChainNode,
/*192656*/                OPC_RecordChild1, // #3 = $src2
/*192657*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*192659*/                OPC_MoveParent,
/*192660*/                OPC_MoveParent,
/*192661*/                OPC_RecordChild2, // #4 = $src0
/*192662*/                OPC_CheckType, MVT::v16i32,
/*192664*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*192666*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*192669*/                OPC_EmitMergeInputChains1_2,
/*192670*/                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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                          // Dst: (VPMAXUDZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*192684*/              0, // EndSwitchOpcode
/*192685*/            /*Scope*/ 121, /*->192807*/
/*192686*/              OPC_MoveChild0,
/*192687*/              OPC_SwitchOpcode /*2 cases */, 80, TARGET_VAL(ISD::LOAD),// ->192771
/*192691*/                OPC_RecordMemRef,
/*192692*/                OPC_RecordNode, // #1 = 'ld' chained node
/*192693*/                OPC_CheckFoldableChainNode,
/*192694*/                OPC_RecordChild1, // #2 = $src2
/*192695*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*192697*/                OPC_CheckPredicate, 9, // Predicate_load
/*192699*/                OPC_MoveParent,
/*192700*/                OPC_RecordChild1, // #3 = $src1
/*192701*/                OPC_MoveParent,
/*192702*/                OPC_RecordChild2, // #4 = $src0
/*192703*/                OPC_SwitchType /*3 cases */, 20, MVT::v16i8,// ->192726
/*192706*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*192708*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*192711*/                  OPC_EmitMergeInputChains1_1,
/*192712*/                  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] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v16i8] }:$src1), VR128X:{ *:[v16i8] }:$src0) - Complexity = 28
                            // Dst: (VPMAXUBZ128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*192726*/                /*SwitchType*/ 20, MVT::v16i16,// ->192748
/*192728*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*192730*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*192733*/                  OPC_EmitMergeInputChains1_1,
/*192734*/                  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] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1), VR256X:{ *:[v16i16] }:$src0) - Complexity = 28
                            // Dst: (VPMAXUWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*192748*/                /*SwitchType*/ 20, MVT::v16i32,// ->192770
/*192750*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*192752*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*192755*/                  OPC_EmitMergeInputChains1_1,
/*192756*/                  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] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16i32] }:$src1), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                            // Dst: (VPMAXUDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*192770*/                0, // EndSwitchType
/*192771*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->192806
/*192774*/                OPC_RecordMemRef,
/*192775*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*192776*/                OPC_CheckFoldableChainNode,
/*192777*/                OPC_RecordChild1, // #2 = $src2
/*192778*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*192780*/                OPC_MoveParent,
/*192781*/                OPC_RecordChild1, // #3 = $src1
/*192782*/                OPC_MoveParent,
/*192783*/                OPC_RecordChild2, // #4 = $src0
/*192784*/                OPC_CheckType, MVT::v16i32,
/*192786*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*192788*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*192791*/                OPC_EmitMergeInputChains1_1,
/*192792*/                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] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16i32] }:$src1), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                          // Dst: (VPMAXUDZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*192806*/              0, // EndSwitchOpcode
/*192807*/            0, /*End of Scope*/
/*192808*/          /*SwitchOpcode*/ 117|128,1/*245*/, TARGET_VAL(ISD::SMIN),// ->193057
/*192812*/            OPC_Scope, 120, /*->192934*/ // 2 children in Scope
/*192814*/              OPC_RecordChild0, // #1 = $src1
/*192815*/              OPC_MoveChild1,
/*192816*/              OPC_SwitchOpcode /*2 cases */, 79, TARGET_VAL(ISD::LOAD),// ->192899
/*192820*/                OPC_RecordMemRef,
/*192821*/                OPC_RecordNode, // #2 = 'ld' chained node
/*192822*/                OPC_CheckFoldableChainNode,
/*192823*/                OPC_RecordChild1, // #3 = $src2
/*192824*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*192826*/                OPC_CheckPredicate, 9, // Predicate_load
/*192828*/                OPC_MoveParent,
/*192829*/                OPC_MoveParent,
/*192830*/                OPC_RecordChild2, // #4 = $src0
/*192831*/                OPC_SwitchType /*3 cases */, 20, MVT::v16i8,// ->192854
/*192834*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*192836*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*192839*/                  OPC_EmitMergeInputChains1_2,
/*192840*/                  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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v16i8] }:$src0) - Complexity = 28
                            // Dst: (VPMINSBZ128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*192854*/                /*SwitchType*/ 20, MVT::v16i16,// ->192876
/*192856*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*192858*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*192861*/                  OPC_EmitMergeInputChains1_2,
/*192862*/                  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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v16i16] }:$src0) - Complexity = 28
                            // Dst: (VPMINSWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*192876*/                /*SwitchType*/ 20, MVT::v16i32,// ->192898
/*192878*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*192880*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*192883*/                  OPC_EmitMergeInputChains1_2,
/*192884*/                  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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                            // Dst: (VPMINSDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*192898*/                0, // EndSwitchType
/*192899*/              /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->192933
/*192902*/                OPC_RecordMemRef,
/*192903*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*192904*/                OPC_CheckFoldableChainNode,
/*192905*/                OPC_RecordChild1, // #3 = $src2
/*192906*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*192908*/                OPC_MoveParent,
/*192909*/                OPC_MoveParent,
/*192910*/                OPC_RecordChild2, // #4 = $src0
/*192911*/                OPC_CheckType, MVT::v16i32,
/*192913*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*192915*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*192918*/                OPC_EmitMergeInputChains1_2,
/*192919*/                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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                          // Dst: (VPMINSDZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*192933*/              0, // EndSwitchOpcode
/*192934*/            /*Scope*/ 121, /*->193056*/
/*192935*/              OPC_MoveChild0,
/*192936*/              OPC_SwitchOpcode /*2 cases */, 80, TARGET_VAL(ISD::LOAD),// ->193020
/*192940*/                OPC_RecordMemRef,
/*192941*/                OPC_RecordNode, // #1 = 'ld' chained node
/*192942*/                OPC_CheckFoldableChainNode,
/*192943*/                OPC_RecordChild1, // #2 = $src2
/*192944*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*192946*/                OPC_CheckPredicate, 9, // Predicate_load
/*192948*/                OPC_MoveParent,
/*192949*/                OPC_RecordChild1, // #3 = $src1
/*192950*/                OPC_MoveParent,
/*192951*/                OPC_RecordChild2, // #4 = $src0
/*192952*/                OPC_SwitchType /*3 cases */, 20, MVT::v16i8,// ->192975
/*192955*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*192957*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*192960*/                  OPC_EmitMergeInputChains1_1,
/*192961*/                  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] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v16i8] }:$src1), VR128X:{ *:[v16i8] }:$src0) - Complexity = 28
                            // Dst: (VPMINSBZ128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*192975*/                /*SwitchType*/ 20, MVT::v16i16,// ->192997
/*192977*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*192979*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*192982*/                  OPC_EmitMergeInputChains1_1,
/*192983*/                  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] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1), VR256X:{ *:[v16i16] }:$src0) - Complexity = 28
                            // Dst: (VPMINSWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*192997*/                /*SwitchType*/ 20, MVT::v16i32,// ->193019
/*192999*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*193001*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*193004*/                  OPC_EmitMergeInputChains1_1,
/*193005*/                  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] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16i32] }:$src1), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                            // Dst: (VPMINSDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*193019*/                0, // EndSwitchType
/*193020*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->193055
/*193023*/                OPC_RecordMemRef,
/*193024*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*193025*/                OPC_CheckFoldableChainNode,
/*193026*/                OPC_RecordChild1, // #2 = $src2
/*193027*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*193029*/                OPC_MoveParent,
/*193030*/                OPC_RecordChild1, // #3 = $src1
/*193031*/                OPC_MoveParent,
/*193032*/                OPC_RecordChild2, // #4 = $src0
/*193033*/                OPC_CheckType, MVT::v16i32,
/*193035*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*193037*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*193040*/                OPC_EmitMergeInputChains1_1,
/*193041*/                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] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16i32] }:$src1), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                          // Dst: (VPMINSDZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*193055*/              0, // EndSwitchOpcode
/*193056*/            0, /*End of Scope*/
/*193057*/          /*SwitchOpcode*/ 117|128,1/*245*/, TARGET_VAL(ISD::UMIN),// ->193306
/*193061*/            OPC_Scope, 120, /*->193183*/ // 2 children in Scope
/*193063*/              OPC_RecordChild0, // #1 = $src1
/*193064*/              OPC_MoveChild1,
/*193065*/              OPC_SwitchOpcode /*2 cases */, 79, TARGET_VAL(ISD::LOAD),// ->193148
/*193069*/                OPC_RecordMemRef,
/*193070*/                OPC_RecordNode, // #2 = 'ld' chained node
/*193071*/                OPC_CheckFoldableChainNode,
/*193072*/                OPC_RecordChild1, // #3 = $src2
/*193073*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*193075*/                OPC_CheckPredicate, 9, // Predicate_load
/*193077*/                OPC_MoveParent,
/*193078*/                OPC_MoveParent,
/*193079*/                OPC_RecordChild2, // #4 = $src0
/*193080*/                OPC_SwitchType /*3 cases */, 20, MVT::v16i8,// ->193103
/*193083*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*193085*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*193088*/                  OPC_EmitMergeInputChains1_2,
/*193089*/                  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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v16i8] }:$src0) - Complexity = 28
                            // Dst: (VPMINUBZ128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*193103*/                /*SwitchType*/ 20, MVT::v16i16,// ->193125
/*193105*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*193107*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*193110*/                  OPC_EmitMergeInputChains1_2,
/*193111*/                  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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v16i16] }:$src0) - Complexity = 28
                            // Dst: (VPMINUWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*193125*/                /*SwitchType*/ 20, MVT::v16i32,// ->193147
/*193127*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*193129*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*193132*/                  OPC_EmitMergeInputChains1_2,
/*193133*/                  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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                            // Dst: (VPMINUDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*193147*/                0, // EndSwitchType
/*193148*/              /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->193182
/*193151*/                OPC_RecordMemRef,
/*193152*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*193153*/                OPC_CheckFoldableChainNode,
/*193154*/                OPC_RecordChild1, // #3 = $src2
/*193155*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*193157*/                OPC_MoveParent,
/*193158*/                OPC_MoveParent,
/*193159*/                OPC_RecordChild2, // #4 = $src0
/*193160*/                OPC_CheckType, MVT::v16i32,
/*193162*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*193164*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*193167*/                OPC_EmitMergeInputChains1_2,
/*193168*/                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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                          // Dst: (VPMINUDZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*193182*/              0, // EndSwitchOpcode
/*193183*/            /*Scope*/ 121, /*->193305*/
/*193184*/              OPC_MoveChild0,
/*193185*/              OPC_SwitchOpcode /*2 cases */, 80, TARGET_VAL(ISD::LOAD),// ->193269
/*193189*/                OPC_RecordMemRef,
/*193190*/                OPC_RecordNode, // #1 = 'ld' chained node
/*193191*/                OPC_CheckFoldableChainNode,
/*193192*/                OPC_RecordChild1, // #2 = $src2
/*193193*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*193195*/                OPC_CheckPredicate, 9, // Predicate_load
/*193197*/                OPC_MoveParent,
/*193198*/                OPC_RecordChild1, // #3 = $src1
/*193199*/                OPC_MoveParent,
/*193200*/                OPC_RecordChild2, // #4 = $src0
/*193201*/                OPC_SwitchType /*3 cases */, 20, MVT::v16i8,// ->193224
/*193204*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*193206*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*193209*/                  OPC_EmitMergeInputChains1_1,
/*193210*/                  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] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v16i8] }:$src1), VR128X:{ *:[v16i8] }:$src0) - Complexity = 28
                            // Dst: (VPMINUBZ128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*193224*/                /*SwitchType*/ 20, MVT::v16i16,// ->193246
/*193226*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*193228*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*193231*/                  OPC_EmitMergeInputChains1_1,
/*193232*/                  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] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1), VR256X:{ *:[v16i16] }:$src0) - Complexity = 28
                            // Dst: (VPMINUWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*193246*/                /*SwitchType*/ 20, MVT::v16i32,// ->193268
/*193248*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*193250*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*193253*/                  OPC_EmitMergeInputChains1_1,
/*193254*/                  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] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16i32] }:$src1), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                            // Dst: (VPMINUDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*193268*/                0, // EndSwitchType
/*193269*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->193304
/*193272*/                OPC_RecordMemRef,
/*193273*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*193274*/                OPC_CheckFoldableChainNode,
/*193275*/                OPC_RecordChild1, // #2 = $src2
/*193276*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*193278*/                OPC_MoveParent,
/*193279*/                OPC_RecordChild1, // #3 = $src1
/*193280*/                OPC_MoveParent,
/*193281*/                OPC_RecordChild2, // #4 = $src0
/*193282*/                OPC_CheckType, MVT::v16i32,
/*193284*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*193286*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*193289*/                OPC_EmitMergeInputChains1_1,
/*193290*/                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] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16i32] }:$src1), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                          // Dst: (VPMINUDZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*193304*/              0, // EndSwitchOpcode
/*193305*/            0, /*End of Scope*/
/*193306*/          /*SwitchOpcode*/ 25|128,1/*153*/, TARGET_VAL(ISD::AND),// ->193463
/*193310*/            OPC_Scope, 74, /*->193386*/ // 2 children in Scope
/*193312*/              OPC_RecordChild0, // #1 = $src1
/*193313*/              OPC_MoveChild1,
/*193314*/              OPC_SwitchOpcode /*2 cases */, 33, TARGET_VAL(ISD::LOAD),// ->193351
/*193318*/                OPC_RecordMemRef,
/*193319*/                OPC_RecordNode, // #2 = 'ld' chained node
/*193320*/                OPC_CheckFoldableChainNode,
/*193321*/                OPC_RecordChild1, // #3 = $src2
/*193322*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*193324*/                OPC_CheckPredicate, 9, // Predicate_load
/*193326*/                OPC_MoveParent,
/*193327*/                OPC_MoveParent,
/*193328*/                OPC_RecordChild2, // #4 = $src0
/*193329*/                OPC_CheckType, MVT::v16i32,
/*193331*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*193333*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*193336*/                OPC_EmitMergeInputChains1_2,
/*193337*/                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, (and:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                          // Dst: (VPANDDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*193351*/              /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->193385
/*193354*/                OPC_RecordMemRef,
/*193355*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*193356*/                OPC_CheckFoldableChainNode,
/*193357*/                OPC_RecordChild1, // #3 = $src2
/*193358*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*193360*/                OPC_MoveParent,
/*193361*/                OPC_MoveParent,
/*193362*/                OPC_RecordChild2, // #4 = $src0
/*193363*/                OPC_CheckType, MVT::v16i32,
/*193365*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*193367*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*193370*/                OPC_EmitMergeInputChains1_2,
/*193371*/                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, (and:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                          // Dst: (VPANDDZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*193385*/              0, // EndSwitchOpcode
/*193386*/            /*Scope*/ 75, /*->193462*/
/*193387*/              OPC_MoveChild0,
/*193388*/              OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->193426
/*193392*/                OPC_RecordMemRef,
/*193393*/                OPC_RecordNode, // #1 = 'ld' chained node
/*193394*/                OPC_CheckFoldableChainNode,
/*193395*/                OPC_RecordChild1, // #2 = $src2
/*193396*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*193398*/                OPC_CheckPredicate, 9, // Predicate_load
/*193400*/                OPC_MoveParent,
/*193401*/                OPC_RecordChild1, // #3 = $src1
/*193402*/                OPC_MoveParent,
/*193403*/                OPC_RecordChild2, // #4 = $src0
/*193404*/                OPC_CheckType, MVT::v16i32,
/*193406*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*193408*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*193411*/                OPC_EmitMergeInputChains1_1,
/*193412*/                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, (and:{ *:[v16i32] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16i32] }:$src1), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                          // Dst: (VPANDDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*193426*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->193461
/*193429*/                OPC_RecordMemRef,
/*193430*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*193431*/                OPC_CheckFoldableChainNode,
/*193432*/                OPC_RecordChild1, // #2 = $src2
/*193433*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*193435*/                OPC_MoveParent,
/*193436*/                OPC_RecordChild1, // #3 = $src1
/*193437*/                OPC_MoveParent,
/*193438*/                OPC_RecordChild2, // #4 = $src0
/*193439*/                OPC_CheckType, MVT::v16i32,
/*193441*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*193443*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*193446*/                OPC_EmitMergeInputChains1_1,
/*193447*/                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, (and:{ *:[v16i32] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16i32] }:$src1), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                          // Dst: (VPANDDZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*193461*/              0, // EndSwitchOpcode
/*193462*/            0, /*End of Scope*/
/*193463*/          /*SwitchOpcode*/ 25|128,1/*153*/, TARGET_VAL(ISD::OR),// ->193620
/*193467*/            OPC_Scope, 74, /*->193543*/ // 2 children in Scope
/*193469*/              OPC_RecordChild0, // #1 = $src1
/*193470*/              OPC_MoveChild1,
/*193471*/              OPC_SwitchOpcode /*2 cases */, 33, TARGET_VAL(ISD::LOAD),// ->193508
/*193475*/                OPC_RecordMemRef,
/*193476*/                OPC_RecordNode, // #2 = 'ld' chained node
/*193477*/                OPC_CheckFoldableChainNode,
/*193478*/                OPC_RecordChild1, // #3 = $src2
/*193479*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*193481*/                OPC_CheckPredicate, 9, // Predicate_load
/*193483*/                OPC_MoveParent,
/*193484*/                OPC_MoveParent,
/*193485*/                OPC_RecordChild2, // #4 = $src0
/*193486*/                OPC_CheckType, MVT::v16i32,
/*193488*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*193490*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*193493*/                OPC_EmitMergeInputChains1_2,
/*193494*/                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, (or:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                          // Dst: (VPORDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*193508*/              /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->193542
/*193511*/                OPC_RecordMemRef,
/*193512*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*193513*/                OPC_CheckFoldableChainNode,
/*193514*/                OPC_RecordChild1, // #3 = $src2
/*193515*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*193517*/                OPC_MoveParent,
/*193518*/                OPC_MoveParent,
/*193519*/                OPC_RecordChild2, // #4 = $src0
/*193520*/                OPC_CheckType, MVT::v16i32,
/*193522*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*193524*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*193527*/                OPC_EmitMergeInputChains1_2,
/*193528*/                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, (or:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                          // Dst: (VPORDZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*193542*/              0, // EndSwitchOpcode
/*193543*/            /*Scope*/ 75, /*->193619*/
/*193544*/              OPC_MoveChild0,
/*193545*/              OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->193583
/*193549*/                OPC_RecordMemRef,
/*193550*/                OPC_RecordNode, // #1 = 'ld' chained node
/*193551*/                OPC_CheckFoldableChainNode,
/*193552*/                OPC_RecordChild1, // #2 = $src2
/*193553*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*193555*/                OPC_CheckPredicate, 9, // Predicate_load
/*193557*/                OPC_MoveParent,
/*193558*/                OPC_RecordChild1, // #3 = $src1
/*193559*/                OPC_MoveParent,
/*193560*/                OPC_RecordChild2, // #4 = $src0
/*193561*/                OPC_CheckType, MVT::v16i32,
/*193563*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*193565*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*193568*/                OPC_EmitMergeInputChains1_1,
/*193569*/                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, (or:{ *:[v16i32] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16i32] }:$src1), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                          // Dst: (VPORDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*193583*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->193618
/*193586*/                OPC_RecordMemRef,
/*193587*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*193588*/                OPC_CheckFoldableChainNode,
/*193589*/                OPC_RecordChild1, // #2 = $src2
/*193590*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*193592*/                OPC_MoveParent,
/*193593*/                OPC_RecordChild1, // #3 = $src1
/*193594*/                OPC_MoveParent,
/*193595*/                OPC_RecordChild2, // #4 = $src0
/*193596*/                OPC_CheckType, MVT::v16i32,
/*193598*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*193600*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*193603*/                OPC_EmitMergeInputChains1_1,
/*193604*/                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, (or:{ *:[v16i32] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16i32] }:$src1), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                          // Dst: (VPORDZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*193618*/              0, // EndSwitchOpcode
/*193619*/            0, /*End of Scope*/
/*193620*/          /*SwitchOpcode*/ 25|128,1/*153*/, TARGET_VAL(ISD::XOR),// ->193777
/*193624*/            OPC_Scope, 74, /*->193700*/ // 2 children in Scope
/*193626*/              OPC_RecordChild0, // #1 = $src1
/*193627*/              OPC_MoveChild1,
/*193628*/              OPC_SwitchOpcode /*2 cases */, 33, TARGET_VAL(ISD::LOAD),// ->193665
/*193632*/                OPC_RecordMemRef,
/*193633*/                OPC_RecordNode, // #2 = 'ld' chained node
/*193634*/                OPC_CheckFoldableChainNode,
/*193635*/                OPC_RecordChild1, // #3 = $src2
/*193636*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*193638*/                OPC_CheckPredicate, 9, // Predicate_load
/*193640*/                OPC_MoveParent,
/*193641*/                OPC_MoveParent,
/*193642*/                OPC_RecordChild2, // #4 = $src0
/*193643*/                OPC_CheckType, MVT::v16i32,
/*193645*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*193647*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*193650*/                OPC_EmitMergeInputChains1_2,
/*193651*/                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, (xor:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                          // Dst: (VPXORDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*193665*/              /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->193699
/*193668*/                OPC_RecordMemRef,
/*193669*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*193670*/                OPC_CheckFoldableChainNode,
/*193671*/                OPC_RecordChild1, // #3 = $src2
/*193672*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*193674*/                OPC_MoveParent,
/*193675*/                OPC_MoveParent,
/*193676*/                OPC_RecordChild2, // #4 = $src0
/*193677*/                OPC_CheckType, MVT::v16i32,
/*193679*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*193681*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*193684*/                OPC_EmitMergeInputChains1_2,
/*193685*/                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, (xor:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                          // Dst: (VPXORDZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*193699*/              0, // EndSwitchOpcode
/*193700*/            /*Scope*/ 75, /*->193776*/
/*193701*/              OPC_MoveChild0,
/*193702*/              OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->193740
/*193706*/                OPC_RecordMemRef,
/*193707*/                OPC_RecordNode, // #1 = 'ld' chained node
/*193708*/                OPC_CheckFoldableChainNode,
/*193709*/                OPC_RecordChild1, // #2 = $src2
/*193710*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*193712*/                OPC_CheckPredicate, 9, // Predicate_load
/*193714*/                OPC_MoveParent,
/*193715*/                OPC_RecordChild1, // #3 = $src1
/*193716*/                OPC_MoveParent,
/*193717*/                OPC_RecordChild2, // #4 = $src0
/*193718*/                OPC_CheckType, MVT::v16i32,
/*193720*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*193722*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*193725*/                OPC_EmitMergeInputChains1_1,
/*193726*/                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, (xor:{ *:[v16i32] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16i32] }:$src1), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                          // Dst: (VPXORDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*193740*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->193775
/*193743*/                OPC_RecordMemRef,
/*193744*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*193745*/                OPC_CheckFoldableChainNode,
/*193746*/                OPC_RecordChild1, // #2 = $src2
/*193747*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*193749*/                OPC_MoveParent,
/*193750*/                OPC_RecordChild1, // #3 = $src1
/*193751*/                OPC_MoveParent,
/*193752*/                OPC_RecordChild2, // #4 = $src0
/*193753*/                OPC_CheckType, MVT::v16i32,
/*193755*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*193757*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*193760*/                OPC_EmitMergeInputChains1_1,
/*193761*/                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, (xor:{ *:[v16i32] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16i32] }:$src1), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                          // Dst: (VPXORDZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*193775*/              0, // EndSwitchOpcode
/*193776*/            0, /*End of Scope*/
/*193777*/          /*SwitchOpcode*/ 74, TARGET_VAL(X86ISD::ANDNP),// ->193854
/*193780*/            OPC_RecordChild0, // #1 = $src1
/*193781*/            OPC_MoveChild1,
/*193782*/            OPC_SwitchOpcode /*2 cases */, 33, TARGET_VAL(ISD::LOAD),// ->193819
/*193786*/              OPC_RecordMemRef,
/*193787*/              OPC_RecordNode, // #2 = 'ld' chained node
/*193788*/              OPC_CheckFoldableChainNode,
/*193789*/              OPC_RecordChild1, // #3 = $src2
/*193790*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*193792*/              OPC_CheckPredicate, 9, // Predicate_load
/*193794*/              OPC_MoveParent,
/*193795*/              OPC_MoveParent,
/*193796*/              OPC_RecordChild2, // #4 = $src0
/*193797*/              OPC_CheckType, MVT::v16i32,
/*193799*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*193801*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*193804*/              OPC_EmitMergeInputChains1_2,
/*193805*/              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, (X86andnp:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                        // Dst: (VPANDNDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*193819*/            /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->193853
/*193822*/              OPC_RecordMemRef,
/*193823*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*193824*/              OPC_CheckFoldableChainNode,
/*193825*/              OPC_RecordChild1, // #3 = $src2
/*193826*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*193828*/              OPC_MoveParent,
/*193829*/              OPC_MoveParent,
/*193830*/              OPC_RecordChild2, // #4 = $src0
/*193831*/              OPC_CheckType, MVT::v16i32,
/*193833*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*193835*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*193838*/              OPC_EmitMergeInputChains1_2,
/*193839*/              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, (X86andnp:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                        // Dst: (VPANDNDZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*193853*/            0, // EndSwitchOpcode
/*193854*/          /*SwitchOpcode*/ 69, TARGET_VAL(X86ISD::VSHL),// ->193926
/*193857*/            OPC_RecordChild0, // #1 = $src1
/*193858*/            OPC_MoveChild1,
/*193859*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*193862*/            OPC_RecordMemRef,
/*193863*/            OPC_RecordNode, // #2 = 'ld' chained node
/*193864*/            OPC_CheckFoldableChainNode,
/*193865*/            OPC_RecordChild1, // #3 = $src2
/*193866*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*193868*/            OPC_CheckPredicate, 9, // Predicate_load
/*193870*/            OPC_SwitchType /*2 cases */, 25, MVT::v4i32,// ->193898
/*193873*/              OPC_MoveParent,
/*193874*/              OPC_MoveParent,
/*193875*/              OPC_RecordChild2, // #4 = $src0
/*193876*/              OPC_CheckType, MVT::v16i32,
/*193878*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*193880*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*193883*/              OPC_EmitMergeInputChains1_2,
/*193884*/              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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                        // Dst: (VPSLLDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*193898*/            /*SwitchType*/ 25, MVT::v8i16,// ->193925
/*193900*/              OPC_MoveParent,
/*193901*/              OPC_MoveParent,
/*193902*/              OPC_RecordChild2, // #4 = $src0
/*193903*/              OPC_CheckType, MVT::v16i16,
/*193905*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*193907*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*193910*/              OPC_EmitMergeInputChains1_2,
/*193911*/              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:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v16i16] }:$src0) - Complexity = 28
                        // Dst: (VPSLLWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*193925*/            0, // EndSwitchType
/*193926*/          /*SwitchOpcode*/ 69, TARGET_VAL(X86ISD::VSRA),// ->193998
/*193929*/            OPC_RecordChild0, // #1 = $src1
/*193930*/            OPC_MoveChild1,
/*193931*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*193934*/            OPC_RecordMemRef,
/*193935*/            OPC_RecordNode, // #2 = 'ld' chained node
/*193936*/            OPC_CheckFoldableChainNode,
/*193937*/            OPC_RecordChild1, // #3 = $src2
/*193938*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*193940*/            OPC_CheckPredicate, 9, // Predicate_load
/*193942*/            OPC_SwitchType /*2 cases */, 25, MVT::v4i32,// ->193970
/*193945*/              OPC_MoveParent,
/*193946*/              OPC_MoveParent,
/*193947*/              OPC_RecordChild2, // #4 = $src0
/*193948*/              OPC_CheckType, MVT::v16i32,
/*193950*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*193952*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*193955*/              OPC_EmitMergeInputChains1_2,
/*193956*/              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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                        // Dst: (VPSRADZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*193970*/            /*SwitchType*/ 25, MVT::v8i16,// ->193997
/*193972*/              OPC_MoveParent,
/*193973*/              OPC_MoveParent,
/*193974*/              OPC_RecordChild2, // #4 = $src0
/*193975*/              OPC_CheckType, MVT::v16i16,
/*193977*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*193979*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*193982*/              OPC_EmitMergeInputChains1_2,
/*193983*/              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:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v16i16] }:$src0) - Complexity = 28
                        // Dst: (VPSRAWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*193997*/            0, // EndSwitchType
/*193998*/          /*SwitchOpcode*/ 69, TARGET_VAL(X86ISD::VSRL),// ->194070
/*194001*/            OPC_RecordChild0, // #1 = $src1
/*194002*/            OPC_MoveChild1,
/*194003*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*194006*/            OPC_RecordMemRef,
/*194007*/            OPC_RecordNode, // #2 = 'ld' chained node
/*194008*/            OPC_CheckFoldableChainNode,
/*194009*/            OPC_RecordChild1, // #3 = $src2
/*194010*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*194012*/            OPC_CheckPredicate, 9, // Predicate_load
/*194014*/            OPC_SwitchType /*2 cases */, 25, MVT::v4i32,// ->194042
/*194017*/              OPC_MoveParent,
/*194018*/              OPC_MoveParent,
/*194019*/              OPC_RecordChild2, // #4 = $src0
/*194020*/              OPC_CheckType, MVT::v16i32,
/*194022*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*194024*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*194027*/              OPC_EmitMergeInputChains1_2,
/*194028*/              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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                        // Dst: (VPSRLDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*194042*/            /*SwitchType*/ 25, MVT::v8i16,// ->194069
/*194044*/              OPC_MoveParent,
/*194045*/              OPC_MoveParent,
/*194046*/              OPC_RecordChild2, // #4 = $src0
/*194047*/              OPC_CheckType, MVT::v16i16,
/*194049*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*194051*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*194054*/              OPC_EmitMergeInputChains1_2,
/*194055*/              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:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v16i16] }:$src0) - Complexity = 28
                        // Dst: (VPSRLWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*194069*/            0, // EndSwitchType
/*194070*/          /*SwitchOpcode*/ 98, TARGET_VAL(X86ISD::VSHLV),// ->194171
/*194073*/            OPC_RecordChild0, // #1 = $src1
/*194074*/            OPC_MoveChild1,
/*194075*/            OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->194136
/*194079*/              OPC_RecordMemRef,
/*194080*/              OPC_RecordNode, // #2 = 'ld' chained node
/*194081*/              OPC_CheckFoldableChainNode,
/*194082*/              OPC_RecordChild1, // #3 = $src2
/*194083*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*194085*/              OPC_CheckPredicate, 9, // Predicate_load
/*194087*/              OPC_MoveParent,
/*194088*/              OPC_MoveParent,
/*194089*/              OPC_RecordChild2, // #4 = $src0
/*194090*/              OPC_SwitchType /*2 cases */, 20, MVT::v16i32,// ->194113
/*194093*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*194095*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*194098*/                OPC_EmitMergeInputChains1_2,
/*194099*/                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, (X86vshlv:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                          // Dst: (VPSLLVDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*194113*/              /*SwitchType*/ 20, MVT::v16i16,// ->194135
/*194115*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*194117*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*194120*/                OPC_EmitMergeInputChains1_2,
/*194121*/                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, (X86vshlv:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v16i16] }:$src0) - Complexity = 28
                          // Dst: (VPSLLVWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*194135*/              0, // EndSwitchType
/*194136*/            /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->194170
/*194139*/              OPC_RecordMemRef,
/*194140*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*194141*/              OPC_CheckFoldableChainNode,
/*194142*/              OPC_RecordChild1, // #3 = $src2
/*194143*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*194145*/              OPC_MoveParent,
/*194146*/              OPC_MoveParent,
/*194147*/              OPC_RecordChild2, // #4 = $src0
/*194148*/              OPC_CheckType, MVT::v16i32,
/*194150*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*194152*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*194155*/              OPC_EmitMergeInputChains1_2,
/*194156*/              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, (X86vshlv:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                        // Dst: (VPSLLVDZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*194170*/            0, // EndSwitchOpcode
/*194171*/          /*SwitchOpcode*/ 98, TARGET_VAL(X86ISD::VSRAV),// ->194272
/*194174*/            OPC_RecordChild0, // #1 = $src1
/*194175*/            OPC_MoveChild1,
/*194176*/            OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->194237
/*194180*/              OPC_RecordMemRef,
/*194181*/              OPC_RecordNode, // #2 = 'ld' chained node
/*194182*/              OPC_CheckFoldableChainNode,
/*194183*/              OPC_RecordChild1, // #3 = $src2
/*194184*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*194186*/              OPC_CheckPredicate, 9, // Predicate_load
/*194188*/              OPC_MoveParent,
/*194189*/              OPC_MoveParent,
/*194190*/              OPC_RecordChild2, // #4 = $src0
/*194191*/              OPC_SwitchType /*2 cases */, 20, MVT::v16i32,// ->194214
/*194194*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*194196*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*194199*/                OPC_EmitMergeInputChains1_2,
/*194200*/                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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                          // Dst: (VPSRAVDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*194214*/              /*SwitchType*/ 20, MVT::v16i16,// ->194236
/*194216*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*194218*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*194221*/                OPC_EmitMergeInputChains1_2,
/*194222*/                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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v16i16] }:$src0) - Complexity = 28
                          // Dst: (VPSRAVWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*194236*/              0, // EndSwitchType
/*194237*/            /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->194271
/*194240*/              OPC_RecordMemRef,
/*194241*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*194242*/              OPC_CheckFoldableChainNode,
/*194243*/              OPC_RecordChild1, // #3 = $src2
/*194244*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*194246*/              OPC_MoveParent,
/*194247*/              OPC_MoveParent,
/*194248*/              OPC_RecordChild2, // #4 = $src0
/*194249*/              OPC_CheckType, MVT::v16i32,
/*194251*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*194253*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*194256*/              OPC_EmitMergeInputChains1_2,
/*194257*/              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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                        // Dst: (VPSRAVDZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*194271*/            0, // EndSwitchOpcode
/*194272*/          /*SwitchOpcode*/ 98, TARGET_VAL(X86ISD::VSRLV),// ->194373
/*194275*/            OPC_RecordChild0, // #1 = $src1
/*194276*/            OPC_MoveChild1,
/*194277*/            OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->194338
/*194281*/              OPC_RecordMemRef,
/*194282*/              OPC_RecordNode, // #2 = 'ld' chained node
/*194283*/              OPC_CheckFoldableChainNode,
/*194284*/              OPC_RecordChild1, // #3 = $src2
/*194285*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*194287*/              OPC_CheckPredicate, 9, // Predicate_load
/*194289*/              OPC_MoveParent,
/*194290*/              OPC_MoveParent,
/*194291*/              OPC_RecordChild2, // #4 = $src0
/*194292*/              OPC_SwitchType /*2 cases */, 20, MVT::v16i32,// ->194315
/*194295*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*194297*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*194300*/                OPC_EmitMergeInputChains1_2,
/*194301*/                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, (X86vsrlv:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                          // Dst: (VPSRLVDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*194315*/              /*SwitchType*/ 20, MVT::v16i16,// ->194337
/*194317*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*194319*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*194322*/                OPC_EmitMergeInputChains1_2,
/*194323*/                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, (X86vsrlv:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v16i16] }:$src0) - Complexity = 28
                          // Dst: (VPSRLVWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*194337*/              0, // EndSwitchType
/*194338*/            /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->194372
/*194341*/              OPC_RecordMemRef,
/*194342*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*194343*/              OPC_CheckFoldableChainNode,
/*194344*/              OPC_RecordChild1, // #3 = $src2
/*194345*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*194347*/              OPC_MoveParent,
/*194348*/              OPC_MoveParent,
/*194349*/              OPC_RecordChild2, // #4 = $src0
/*194350*/              OPC_CheckType, MVT::v16i32,
/*194352*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*194354*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*194357*/              OPC_EmitMergeInputChains1_2,
/*194358*/              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, (X86vsrlv:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                        // Dst: (VPSRLVDZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*194372*/            0, // EndSwitchOpcode
/*194373*/          /*SwitchOpcode*/ 78, TARGET_VAL(ISD::ROTR),// ->194454
/*194376*/            OPC_RecordChild0, // #1 = $src1
/*194377*/            OPC_MoveChild1,
/*194378*/            OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->194417
/*194382*/              OPC_RecordMemRef,
/*194383*/              OPC_RecordNode, // #2 = 'ld' chained node
/*194384*/              OPC_CheckFoldableChainNode,
/*194385*/              OPC_RecordChild1, // #3 = $src2
/*194386*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*194388*/              OPC_CheckPredicate, 9, // Predicate_load
/*194390*/              OPC_CheckType, MVT::v16i32,
/*194392*/              OPC_MoveParent,
/*194393*/              OPC_MoveParent,
/*194394*/              OPC_RecordChild2, // #4 = $src0
/*194395*/              OPC_CheckType, MVT::v16i32,
/*194397*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*194399*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*194402*/              OPC_EmitMergeInputChains1_2,
/*194403*/              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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                        // Dst: (VPRORVDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*194417*/            /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->194453
/*194420*/              OPC_RecordMemRef,
/*194421*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*194422*/              OPC_CheckFoldableChainNode,
/*194423*/              OPC_RecordChild1, // #3 = $src2
/*194424*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*194426*/              OPC_CheckType, MVT::v16i32,
/*194428*/              OPC_MoveParent,
/*194429*/              OPC_MoveParent,
/*194430*/              OPC_RecordChild2, // #4 = $src0
/*194431*/              OPC_CheckType, MVT::v16i32,
/*194433*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*194435*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*194438*/              OPC_EmitMergeInputChains1_2,
/*194439*/              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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                        // Dst: (VPRORVDZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*194453*/            0, // EndSwitchOpcode
/*194454*/          /*SwitchOpcode*/ 78, TARGET_VAL(ISD::ROTL),// ->194535
/*194457*/            OPC_RecordChild0, // #1 = $src1
/*194458*/            OPC_MoveChild1,
/*194459*/            OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->194498
/*194463*/              OPC_RecordMemRef,
/*194464*/              OPC_RecordNode, // #2 = 'ld' chained node
/*194465*/              OPC_CheckFoldableChainNode,
/*194466*/              OPC_RecordChild1, // #3 = $src2
/*194467*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*194469*/              OPC_CheckPredicate, 9, // Predicate_load
/*194471*/              OPC_CheckType, MVT::v16i32,
/*194473*/              OPC_MoveParent,
/*194474*/              OPC_MoveParent,
/*194475*/              OPC_RecordChild2, // #4 = $src0
/*194476*/              OPC_CheckType, MVT::v16i32,
/*194478*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*194480*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*194483*/              OPC_EmitMergeInputChains1_2,
/*194484*/              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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                        // Dst: (VPROLVDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*194498*/            /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->194534
/*194501*/              OPC_RecordMemRef,
/*194502*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*194503*/              OPC_CheckFoldableChainNode,
/*194504*/              OPC_RecordChild1, // #3 = $src2
/*194505*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*194507*/              OPC_CheckType, MVT::v16i32,
/*194509*/              OPC_MoveParent,
/*194510*/              OPC_MoveParent,
/*194511*/              OPC_RecordChild2, // #4 = $src0
/*194512*/              OPC_CheckType, MVT::v16i32,
/*194514*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*194516*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*194519*/              OPC_EmitMergeInputChains1_2,
/*194520*/              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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                        // Dst: (VPROLVDZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*194534*/            0, // EndSwitchOpcode
/*194535*/          /*SwitchOpcode*/ 120, TARGET_VAL(X86ISD::VPERMV),// ->194658
/*194538*/            OPC_RecordChild0, // #1 = $src1
/*194539*/            OPC_MoveChild1,
/*194540*/            OPC_SwitchOpcode /*2 cases */, 79, TARGET_VAL(ISD::LOAD),// ->194623
/*194544*/              OPC_RecordMemRef,
/*194545*/              OPC_RecordNode, // #2 = 'ld' chained node
/*194546*/              OPC_CheckFoldableChainNode,
/*194547*/              OPC_RecordChild1, // #3 = $src2
/*194548*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*194550*/              OPC_CheckPredicate, 9, // Predicate_load
/*194552*/              OPC_MoveParent,
/*194553*/              OPC_MoveParent,
/*194554*/              OPC_RecordChild2, // #4 = $src0
/*194555*/              OPC_SwitchType /*3 cases */, 20, MVT::v16i16,// ->194578
/*194558*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*194560*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*194563*/                OPC_EmitMergeInputChains1_2,
/*194564*/                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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v16i16] }:$src0) - Complexity = 28
                          // Dst: (VPERMWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*194578*/              /*SwitchType*/ 20, MVT::v16i8,// ->194600
/*194580*/                OPC_CheckPatternPredicate, 181, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*194582*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*194585*/                OPC_EmitMergeInputChains1_2,
/*194586*/                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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v16i8] }:$src0) - Complexity = 28
                          // Dst: (VPERMBZ128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*194600*/              /*SwitchType*/ 20, MVT::v16i32,// ->194622
/*194602*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*194604*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*194607*/                OPC_EmitMergeInputChains1_2,
/*194608*/                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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                          // Dst: (VPERMDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*194622*/              0, // EndSwitchType
/*194623*/            /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->194657
/*194626*/              OPC_RecordMemRef,
/*194627*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*194628*/              OPC_CheckFoldableChainNode,
/*194629*/              OPC_RecordChild1, // #3 = $src2
/*194630*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*194632*/              OPC_MoveParent,
/*194633*/              OPC_MoveParent,
/*194634*/              OPC_RecordChild2, // #4 = $src0
/*194635*/              OPC_CheckType, MVT::v16i32,
/*194637*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*194639*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*194642*/              OPC_EmitMergeInputChains1_2,
/*194643*/              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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                        // Dst: (VPERMDZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*194657*/            0, // EndSwitchOpcode
/*194658*/          /*SwitchOpcode*/ 38, TARGET_VAL(X86ISD::PSHUFB),// ->194699
/*194661*/            OPC_RecordChild0, // #1 = $src1
/*194662*/            OPC_MoveChild1,
/*194663*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*194666*/            OPC_RecordMemRef,
/*194667*/            OPC_RecordNode, // #2 = 'ld' chained node
/*194668*/            OPC_CheckFoldableChainNode,
/*194669*/            OPC_RecordChild1, // #3 = $src2
/*194670*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*194672*/            OPC_CheckPredicate, 9, // Predicate_load
/*194674*/            OPC_MoveParent,
/*194675*/            OPC_MoveParent,
/*194676*/            OPC_RecordChild2, // #4 = $src0
/*194677*/            OPC_CheckType, MVT::v16i8,
/*194679*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*194681*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*194684*/            OPC_EmitMergeInputChains1_2,
/*194685*/            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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v16i8] }:$src0) - Complexity = 28
                      // Dst: (VPSHUFBZ128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*194699*/          /*SwitchOpcode*/ 83, TARGET_VAL(X86ISD::STRICT_CVTTP2SI),// ->194785
/*194702*/            OPC_RecordNode, // #1 = 'X86strict_cvttp2si' chained node
/*194703*/            OPC_CheckFoldableChainNode,
/*194704*/            OPC_MoveChild1,
/*194705*/            OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->194746
/*194709*/              OPC_RecordMemRef,
/*194710*/              OPC_RecordNode, // #2 = 'ld' chained node
/*194711*/              OPC_CheckFoldableChainNode,
/*194712*/              OPC_RecordChild1, // #3 = $src
/*194713*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*194715*/              OPC_CheckPredicate, 9, // Predicate_load
/*194717*/              OPC_CheckType, MVT::v16f32,
/*194719*/              OPC_MoveParent,
/*194720*/              OPC_MoveParent,
/*194721*/              OPC_RecordChild2, // #4 = $src0
/*194722*/              OPC_CheckType, MVT::v16i32,
/*194724*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*194726*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*194729*/              OPC_EmitMergeInputChains, 2, 1, 2, 
/*194733*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86strict_cvttp2si:{ *:[v16i32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                        // Dst: (VCVTTPS2DQZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*194746*/            /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->194784
/*194749*/              OPC_RecordMemRef,
/*194750*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*194751*/              OPC_CheckFoldableChainNode,
/*194752*/              OPC_RecordChild1, // #3 = $src
/*194753*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*194755*/              OPC_CheckType, MVT::v16f32,
/*194757*/              OPC_MoveParent,
/*194758*/              OPC_MoveParent,
/*194759*/              OPC_RecordChild2, // #4 = $src0
/*194760*/              OPC_CheckType, MVT::v16i32,
/*194762*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*194764*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*194767*/              OPC_EmitMergeInputChains, 2, 1, 2, 
/*194771*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86strict_cvttp2si:{ *:[v16i32] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                        // Dst: (VCVTTPS2DQZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*194784*/            0, // EndSwitchOpcode
/*194785*/          /*SwitchOpcode*/ 75, TARGET_VAL(X86ISD::CVTTP2SI),// ->194863
/*194788*/            OPC_MoveChild0,
/*194789*/            OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->194827
/*194793*/              OPC_RecordMemRef,
/*194794*/              OPC_RecordNode, // #1 = 'ld' chained node
/*194795*/              OPC_CheckFoldableChainNode,
/*194796*/              OPC_RecordChild1, // #2 = $src
/*194797*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*194799*/              OPC_CheckPredicate, 9, // Predicate_load
/*194801*/              OPC_CheckType, MVT::v16f32,
/*194803*/              OPC_MoveParent,
/*194804*/              OPC_MoveParent,
/*194805*/              OPC_RecordChild2, // #3 = $src0
/*194806*/              OPC_CheckType, MVT::v16i32,
/*194808*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*194810*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*194813*/              OPC_EmitMergeInputChains1_1,
/*194814*/              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>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                        // Dst: (VCVTTPS2DQZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*194827*/            /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->194862
/*194830*/              OPC_RecordMemRef,
/*194831*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*194832*/              OPC_CheckFoldableChainNode,
/*194833*/              OPC_RecordChild1, // #2 = $src
/*194834*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*194836*/              OPC_CheckType, MVT::v16f32,
/*194838*/              OPC_MoveParent,
/*194839*/              OPC_MoveParent,
/*194840*/              OPC_RecordChild2, // #3 = $src0
/*194841*/              OPC_CheckType, MVT::v16i32,
/*194843*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*194845*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*194848*/              OPC_EmitMergeInputChains1_1,
/*194849*/              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] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                        // Dst: (VCVTTPS2DQZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*194862*/            0, // EndSwitchOpcode
/*194863*/          /*SwitchOpcode*/ 83, TARGET_VAL(X86ISD::STRICT_CVTTP2UI),// ->194949
/*194866*/            OPC_RecordNode, // #1 = 'X86strict_cvttp2ui' chained node
/*194867*/            OPC_CheckFoldableChainNode,
/*194868*/            OPC_MoveChild1,
/*194869*/            OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->194910
/*194873*/              OPC_RecordMemRef,
/*194874*/              OPC_RecordNode, // #2 = 'ld' chained node
/*194875*/              OPC_CheckFoldableChainNode,
/*194876*/              OPC_RecordChild1, // #3 = $src
/*194877*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*194879*/              OPC_CheckPredicate, 9, // Predicate_load
/*194881*/              OPC_CheckType, MVT::v16f32,
/*194883*/              OPC_MoveParent,
/*194884*/              OPC_MoveParent,
/*194885*/              OPC_RecordChild2, // #4 = $src0
/*194886*/              OPC_CheckType, MVT::v16i32,
/*194888*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*194890*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*194893*/              OPC_EmitMergeInputChains, 2, 1, 2, 
/*194897*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86strict_cvttp2ui:{ *:[v16i32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                        // Dst: (VCVTTPS2UDQZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*194910*/            /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->194948
/*194913*/              OPC_RecordMemRef,
/*194914*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*194915*/              OPC_CheckFoldableChainNode,
/*194916*/              OPC_RecordChild1, // #3 = $src
/*194917*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*194919*/              OPC_CheckType, MVT::v16f32,
/*194921*/              OPC_MoveParent,
/*194922*/              OPC_MoveParent,
/*194923*/              OPC_RecordChild2, // #4 = $src0
/*194924*/              OPC_CheckType, MVT::v16i32,
/*194926*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*194928*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*194931*/              OPC_EmitMergeInputChains, 2, 1, 2, 
/*194935*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86strict_cvttp2ui:{ *:[v16i32] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                        // Dst: (VCVTTPS2UDQZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*194948*/            0, // EndSwitchOpcode
/*194949*/          /*SwitchOpcode*/ 75, TARGET_VAL(X86ISD::CVTTP2UI),// ->195027
/*194952*/            OPC_MoveChild0,
/*194953*/            OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->194991
/*194957*/              OPC_RecordMemRef,
/*194958*/              OPC_RecordNode, // #1 = 'ld' chained node
/*194959*/              OPC_CheckFoldableChainNode,
/*194960*/              OPC_RecordChild1, // #2 = $src
/*194961*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*194963*/              OPC_CheckPredicate, 9, // Predicate_load
/*194965*/              OPC_CheckType, MVT::v16f32,
/*194967*/              OPC_MoveParent,
/*194968*/              OPC_MoveParent,
/*194969*/              OPC_RecordChild2, // #3 = $src0
/*194970*/              OPC_CheckType, MVT::v16i32,
/*194972*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*194974*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*194977*/              OPC_EmitMergeInputChains1_1,
/*194978*/              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>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                        // Dst: (VCVTTPS2UDQZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*194991*/            /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->195026
/*194994*/              OPC_RecordMemRef,
/*194995*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*194996*/              OPC_CheckFoldableChainNode,
/*194997*/              OPC_RecordChild1, // #2 = $src
/*194998*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*195000*/              OPC_CheckType, MVT::v16f32,
/*195002*/              OPC_MoveParent,
/*195003*/              OPC_MoveParent,
/*195004*/              OPC_RecordChild2, // #3 = $src0
/*195005*/              OPC_CheckType, MVT::v16i32,
/*195007*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*195009*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*195012*/              OPC_EmitMergeInputChains1_1,
/*195013*/              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] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                        // Dst: (VCVTTPS2UDQZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*195026*/            0, // EndSwitchOpcode
/*195027*/          /*SwitchOpcode*/ 75, TARGET_VAL(X86ISD::CVTP2SI),// ->195105
/*195030*/            OPC_MoveChild0,
/*195031*/            OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->195069
/*195035*/              OPC_RecordMemRef,
/*195036*/              OPC_RecordNode, // #1 = 'ld' chained node
/*195037*/              OPC_CheckFoldableChainNode,
/*195038*/              OPC_RecordChild1, // #2 = $src
/*195039*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*195041*/              OPC_CheckPredicate, 9, // Predicate_load
/*195043*/              OPC_CheckType, MVT::v16f32,
/*195045*/              OPC_MoveParent,
/*195046*/              OPC_MoveParent,
/*195047*/              OPC_RecordChild2, // #3 = $src0
/*195048*/              OPC_CheckType, MVT::v16i32,
/*195050*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*195052*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*195055*/              OPC_EmitMergeInputChains1_1,
/*195056*/              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>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                        // Dst: (VCVTPS2DQZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*195069*/            /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->195104
/*195072*/              OPC_RecordMemRef,
/*195073*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*195074*/              OPC_CheckFoldableChainNode,
/*195075*/              OPC_RecordChild1, // #2 = $src
/*195076*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*195078*/              OPC_CheckType, MVT::v16f32,
/*195080*/              OPC_MoveParent,
/*195081*/              OPC_MoveParent,
/*195082*/              OPC_RecordChild2, // #3 = $src0
/*195083*/              OPC_CheckType, MVT::v16i32,
/*195085*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*195087*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*195090*/              OPC_EmitMergeInputChains1_1,
/*195091*/              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] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                        // Dst: (VCVTPS2DQZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*195104*/            0, // EndSwitchOpcode
/*195105*/          /*SwitchOpcode*/ 75, TARGET_VAL(X86ISD::CVTP2UI),// ->195183
/*195108*/            OPC_MoveChild0,
/*195109*/            OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->195147
/*195113*/              OPC_RecordMemRef,
/*195114*/              OPC_RecordNode, // #1 = 'ld' chained node
/*195115*/              OPC_CheckFoldableChainNode,
/*195116*/              OPC_RecordChild1, // #2 = $src
/*195117*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*195119*/              OPC_CheckPredicate, 9, // Predicate_load
/*195121*/              OPC_CheckType, MVT::v16f32,
/*195123*/              OPC_MoveParent,
/*195124*/              OPC_MoveParent,
/*195125*/              OPC_RecordChild2, // #3 = $src0
/*195126*/              OPC_CheckType, MVT::v16i32,
/*195128*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*195130*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*195133*/              OPC_EmitMergeInputChains1_1,
/*195134*/              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>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                        // Dst: (VCVTPS2UDQZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*195147*/            /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->195182
/*195150*/              OPC_RecordMemRef,
/*195151*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*195152*/              OPC_CheckFoldableChainNode,
/*195153*/              OPC_RecordChild1, // #2 = $src
/*195154*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*195156*/              OPC_CheckType, MVT::v16f32,
/*195158*/              OPC_MoveParent,
/*195159*/              OPC_MoveParent,
/*195160*/              OPC_RecordChild2, // #3 = $src0
/*195161*/              OPC_CheckType, MVT::v16i32,
/*195163*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*195165*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*195168*/              OPC_EmitMergeInputChains1_1,
/*195169*/              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] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                        // Dst: (VCVTPS2UDQZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*195182*/            0, // EndSwitchOpcode
/*195183*/          /*SwitchOpcode*/ 115, TARGET_VAL(ISD::ABS),// ->195301
/*195186*/            OPC_MoveChild0,
/*195187*/            OPC_SwitchOpcode /*2 cases */, 76, TARGET_VAL(ISD::LOAD),// ->195267
/*195191*/              OPC_RecordMemRef,
/*195192*/              OPC_RecordNode, // #1 = 'ld' chained node
/*195193*/              OPC_CheckFoldableChainNode,
/*195194*/              OPC_RecordChild1, // #2 = $src1
/*195195*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*195197*/              OPC_CheckPredicate, 9, // Predicate_load
/*195199*/              OPC_MoveParent,
/*195200*/              OPC_MoveParent,
/*195201*/              OPC_RecordChild2, // #3 = $src0
/*195202*/              OPC_SwitchType /*3 cases */, 19, MVT::v16i32,// ->195224
/*195205*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*195207*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*195210*/                OPC_EmitMergeInputChains1_1,
/*195211*/                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] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                          // Dst: (VPABSDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*195224*/              /*SwitchType*/ 19, MVT::v16i16,// ->195245
/*195226*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*195228*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*195231*/                OPC_EmitMergeInputChains1_1,
/*195232*/                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] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v16i16] }:$src0) - Complexity = 28
                          // Dst: (VPABSWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*195245*/              /*SwitchType*/ 19, MVT::v16i8,// ->195266
/*195247*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*195249*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*195252*/                OPC_EmitMergeInputChains1_1,
/*195253*/                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] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v16i8] }:$src0) - Complexity = 28
                          // Dst: (VPABSBZ128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*195266*/              0, // EndSwitchType
/*195267*/            /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->195300
/*195270*/              OPC_RecordMemRef,
/*195271*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*195272*/              OPC_CheckFoldableChainNode,
/*195273*/              OPC_RecordChild1, // #2 = $src1
/*195274*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*195276*/              OPC_MoveParent,
/*195277*/              OPC_MoveParent,
/*195278*/              OPC_RecordChild2, // #3 = $src0
/*195279*/              OPC_CheckType, MVT::v16i32,
/*195281*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*195283*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*195286*/              OPC_EmitMergeInputChains1_1,
/*195287*/              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] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                        // Dst: (VPABSDZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*195300*/            0, // EndSwitchOpcode
/*195301*/          /*SwitchOpcode*/ 75, TARGET_VAL(ISD::CTLZ),// ->195379
/*195304*/            OPC_MoveChild0,
/*195305*/            OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->195343
/*195309*/              OPC_RecordMemRef,
/*195310*/              OPC_RecordNode, // #1 = 'ld' chained node
/*195311*/              OPC_CheckFoldableChainNode,
/*195312*/              OPC_RecordChild1, // #2 = $src1
/*195313*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*195315*/              OPC_CheckPredicate, 9, // Predicate_load
/*195317*/              OPC_CheckType, MVT::v16i32,
/*195319*/              OPC_MoveParent,
/*195320*/              OPC_MoveParent,
/*195321*/              OPC_RecordChild2, // #3 = $src0
/*195322*/              OPC_CheckType, MVT::v16i32,
/*195324*/              OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*195326*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*195329*/              OPC_EmitMergeInputChains1_1,
/*195330*/              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] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                        // Dst: (VPLZCNTDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*195343*/            /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->195378
/*195346*/              OPC_RecordMemRef,
/*195347*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*195348*/              OPC_CheckFoldableChainNode,
/*195349*/              OPC_RecordChild1, // #2 = $src1
/*195350*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*195352*/              OPC_CheckType, MVT::v16i32,
/*195354*/              OPC_MoveParent,
/*195355*/              OPC_MoveParent,
/*195356*/              OPC_RecordChild2, // #3 = $src0
/*195357*/              OPC_CheckType, MVT::v16i32,
/*195359*/              OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*195361*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*195364*/              OPC_EmitMergeInputChains1_1,
/*195365*/              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] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                        // Dst: (VPLZCNTDZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*195378*/            0, // EndSwitchOpcode
/*195379*/          /*SwitchOpcode*/ 71, TARGET_VAL(X86ISD::CONFLICT),// ->195453
/*195382*/            OPC_MoveChild0,
/*195383*/            OPC_SwitchOpcode /*2 cases */, 32, TARGET_VAL(ISD::LOAD),// ->195419
/*195387*/              OPC_RecordMemRef,
/*195388*/              OPC_RecordNode, // #1 = 'ld' chained node
/*195389*/              OPC_CheckFoldableChainNode,
/*195390*/              OPC_RecordChild1, // #2 = $src1
/*195391*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*195393*/              OPC_CheckPredicate, 9, // Predicate_load
/*195395*/              OPC_MoveParent,
/*195396*/              OPC_MoveParent,
/*195397*/              OPC_RecordChild2, // #3 = $src0
/*195398*/              OPC_CheckType, MVT::v16i32,
/*195400*/              OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*195402*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*195405*/              OPC_EmitMergeInputChains1_1,
/*195406*/              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] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                        // Dst: (VPCONFLICTDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*195419*/            /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->195452
/*195422*/              OPC_RecordMemRef,
/*195423*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*195424*/              OPC_CheckFoldableChainNode,
/*195425*/              OPC_RecordChild1, // #2 = $src1
/*195426*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*195428*/              OPC_MoveParent,
/*195429*/              OPC_MoveParent,
/*195430*/              OPC_RecordChild2, // #3 = $src0
/*195431*/              OPC_CheckType, MVT::v16i32,
/*195433*/              OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*195435*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*195438*/              OPC_EmitMergeInputChains1_1,
/*195439*/              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] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                        // Dst: (VPCONFLICTDZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*195452*/            0, // EndSwitchOpcode
/*195453*/          /*SwitchOpcode*/ 1|128,1/*129*/, TARGET_VAL(ISD::CTPOP),// ->195586
/*195457*/            OPC_MoveChild0,
/*195458*/            OPC_SwitchOpcode /*2 cases */, 88, TARGET_VAL(ISD::LOAD),// ->195550
/*195462*/              OPC_RecordMemRef,
/*195463*/              OPC_RecordNode, // #1 = 'ld' chained node
/*195464*/              OPC_CheckFoldableChainNode,
/*195465*/              OPC_RecordChild1, // #2 = $src1
/*195466*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*195468*/              OPC_CheckPredicate, 9, // Predicate_load
/*195470*/              OPC_SwitchType /*3 cases */, 24, MVT::v16i32,// ->195497
/*195473*/                OPC_MoveParent,
/*195474*/                OPC_MoveParent,
/*195475*/                OPC_RecordChild2, // #3 = $src0
/*195476*/                OPC_CheckType, MVT::v16i32,
/*195478*/                OPC_CheckPatternPredicate, 142, // (Subtarget->hasVPOPCNTDQ())
/*195480*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*195483*/                OPC_EmitMergeInputChains1_1,
/*195484*/                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] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                          // Dst: (VPOPCNTDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*195497*/              /*SwitchType*/ 24, MVT::v16i8,// ->195523
/*195499*/                OPC_MoveParent,
/*195500*/                OPC_MoveParent,
/*195501*/                OPC_RecordChild2, // #3 = $src0
/*195502*/                OPC_CheckType, MVT::v16i8,
/*195504*/                OPC_CheckPatternPredicate, 115, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/*195506*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*195509*/                OPC_EmitMergeInputChains1_1,
/*195510*/                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] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v16i8] }:$src0) - Complexity = 28
                          // Dst: (VPOPCNTBZ128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*195523*/              /*SwitchType*/ 24, MVT::v16i16,// ->195549
/*195525*/                OPC_MoveParent,
/*195526*/                OPC_MoveParent,
/*195527*/                OPC_RecordChild2, // #3 = $src0
/*195528*/                OPC_CheckType, MVT::v16i16,
/*195530*/                OPC_CheckPatternPredicate, 115, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/*195532*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*195535*/                OPC_EmitMergeInputChains1_1,
/*195536*/                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] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v16i16] }:$src0) - Complexity = 28
                          // Dst: (VPOPCNTWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*195549*/              0, // EndSwitchType
/*195550*/            /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->195585
/*195553*/              OPC_RecordMemRef,
/*195554*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*195555*/              OPC_CheckFoldableChainNode,
/*195556*/              OPC_RecordChild1, // #2 = $src1
/*195557*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*195559*/              OPC_CheckType, MVT::v16i32,
/*195561*/              OPC_MoveParent,
/*195562*/              OPC_MoveParent,
/*195563*/              OPC_RecordChild2, // #3 = $src0
/*195564*/              OPC_CheckType, MVT::v16i32,
/*195566*/              OPC_CheckPatternPredicate, 142, // (Subtarget->hasVPOPCNTDQ())
/*195568*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*195571*/              OPC_EmitMergeInputChains1_1,
/*195572*/              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] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                        // Dst: (VPOPCNTDZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*195585*/            0, // EndSwitchOpcode
/*195586*/          /*SwitchOpcode*/ 120, TARGET_VAL(X86ISD::UNPCKL),// ->195709
/*195589*/            OPC_RecordChild0, // #1 = $src1
/*195590*/            OPC_MoveChild1,
/*195591*/            OPC_SwitchOpcode /*2 cases */, 79, TARGET_VAL(ISD::LOAD),// ->195674
/*195595*/              OPC_RecordMemRef,
/*195596*/              OPC_RecordNode, // #2 = 'ld' chained node
/*195597*/              OPC_CheckFoldableChainNode,
/*195598*/              OPC_RecordChild1, // #3 = $src2
/*195599*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*195601*/              OPC_CheckPredicate, 9, // Predicate_load
/*195603*/              OPC_MoveParent,
/*195604*/              OPC_MoveParent,
/*195605*/              OPC_RecordChild2, // #4 = $src0
/*195606*/              OPC_SwitchType /*3 cases */, 20, MVT::v16i8,// ->195629
/*195609*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*195611*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*195614*/                OPC_EmitMergeInputChains1_2,
/*195615*/                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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v16i8] }:$src0) - Complexity = 28
                          // Dst: (VPUNPCKLBWZ128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*195629*/              /*SwitchType*/ 20, MVT::v16i16,// ->195651
/*195631*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*195633*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*195636*/                OPC_EmitMergeInputChains1_2,
/*195637*/                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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v16i16] }:$src0) - Complexity = 28
                          // Dst: (VPUNPCKLWDZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*195651*/              /*SwitchType*/ 20, MVT::v16i32,// ->195673
/*195653*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*195655*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*195658*/                OPC_EmitMergeInputChains1_2,
/*195659*/                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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                          // Dst: (VPUNPCKLDQZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*195673*/              0, // EndSwitchType
/*195674*/            /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->195708
/*195677*/              OPC_RecordMemRef,
/*195678*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*195679*/              OPC_CheckFoldableChainNode,
/*195680*/              OPC_RecordChild1, // #3 = $src2
/*195681*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*195683*/              OPC_MoveParent,
/*195684*/              OPC_MoveParent,
/*195685*/              OPC_RecordChild2, // #4 = $src0
/*195686*/              OPC_CheckType, MVT::v16i32,
/*195688*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*195690*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*195693*/              OPC_EmitMergeInputChains1_2,
/*195694*/              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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                        // Dst: (VPUNPCKLDQZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*195708*/            0, // EndSwitchOpcode
/*195709*/          /*SwitchOpcode*/ 120, TARGET_VAL(X86ISD::UNPCKH),// ->195832
/*195712*/            OPC_RecordChild0, // #1 = $src1
/*195713*/            OPC_MoveChild1,
/*195714*/            OPC_SwitchOpcode /*2 cases */, 79, TARGET_VAL(ISD::LOAD),// ->195797
/*195718*/              OPC_RecordMemRef,
/*195719*/              OPC_RecordNode, // #2 = 'ld' chained node
/*195720*/              OPC_CheckFoldableChainNode,
/*195721*/              OPC_RecordChild1, // #3 = $src2
/*195722*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*195724*/              OPC_CheckPredicate, 9, // Predicate_load
/*195726*/              OPC_MoveParent,
/*195727*/              OPC_MoveParent,
/*195728*/              OPC_RecordChild2, // #4 = $src0
/*195729*/              OPC_SwitchType /*3 cases */, 20, MVT::v16i8,// ->195752
/*195732*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*195734*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*195737*/                OPC_EmitMergeInputChains1_2,
/*195738*/                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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v16i8] }:$src0) - Complexity = 28
                          // Dst: (VPUNPCKHBWZ128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*195752*/              /*SwitchType*/ 20, MVT::v16i16,// ->195774
/*195754*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*195756*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*195759*/                OPC_EmitMergeInputChains1_2,
/*195760*/                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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v16i16] }:$src0) - Complexity = 28
                          // Dst: (VPUNPCKHWDZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*195774*/              /*SwitchType*/ 20, MVT::v16i32,// ->195796
/*195776*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*195778*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*195781*/                OPC_EmitMergeInputChains1_2,
/*195782*/                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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                          // Dst: (VPUNPCKHDQZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*195796*/              0, // EndSwitchType
/*195797*/            /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->195831
/*195800*/              OPC_RecordMemRef,
/*195801*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*195802*/              OPC_CheckFoldableChainNode,
/*195803*/              OPC_RecordChild1, // #3 = $src2
/*195804*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*195806*/              OPC_MoveParent,
/*195807*/              OPC_MoveParent,
/*195808*/              OPC_RecordChild2, // #4 = $src0
/*195809*/              OPC_CheckType, MVT::v16i32,
/*195811*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*195813*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*195816*/              OPC_EmitMergeInputChains1_2,
/*195817*/              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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16i32] }:$src0) - Complexity = 28
                        // Dst: (VPUNPCKHDQZrmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*195831*/            0, // EndSwitchOpcode
/*195832*/          /*SwitchOpcode*/ 107, TARGET_VAL(X86ISD::VSHLDV),// ->195942
/*195835*/            OPC_RecordChild0, // #1 = $src1
/*195836*/            OPC_RecordChild1, // #2 = $src2
/*195837*/            OPC_MoveChild2,
/*195838*/            OPC_SwitchOpcode /*2 cases */, 62, TARGET_VAL(ISD::LOAD),// ->195904
/*195842*/              OPC_RecordMemRef,
/*195843*/              OPC_RecordNode, // #3 = 'ld' chained node
/*195844*/              OPC_CheckFoldableChainNode,
/*195845*/              OPC_RecordChild1, // #4 = $src3
/*195846*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*195848*/              OPC_CheckPredicate, 9, // Predicate_load
/*195850*/              OPC_MoveParent,
/*195851*/              OPC_MoveParent,
/*195852*/              OPC_CheckChild2Same, 1,
/*195854*/              OPC_SwitchType /*2 cases */, 22, MVT::v16i16,// ->195879
/*195857*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*195859*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*195862*/                OPC_EmitMergeInputChains, 1, 3, 
/*195865*/                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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v16i16] }:$src1) - Complexity = 28
                          // Dst: (VPSHLDVWZ256mk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/*195879*/              /*SwitchType*/ 22, MVT::v16i32,// ->195903
/*195881*/                OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*195883*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*195886*/                OPC_EmitMergeInputChains, 1, 3, 
/*195889*/                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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16i32] }:$src1) - Complexity = 28
                          // Dst: (VPSHLDVDZmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*195903*/              0, // EndSwitchType
/*195904*/            /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->195941
/*195907*/              OPC_RecordMemRef,
/*195908*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*195909*/              OPC_CheckFoldableChainNode,
/*195910*/              OPC_RecordChild1, // #4 = $src3
/*195911*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*195913*/              OPC_MoveParent,
/*195914*/              OPC_MoveParent,
/*195915*/              OPC_CheckChild2Same, 1,
/*195917*/              OPC_CheckType, MVT::v16i32,
/*195919*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*195921*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*195924*/              OPC_EmitMergeInputChains, 1, 3, 
/*195927*/              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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16i32] }:$src1) - Complexity = 28
                        // Dst: (VPSHLDVDZmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*195941*/            0, // EndSwitchOpcode
/*195942*/          /*SwitchOpcode*/ 107, TARGET_VAL(X86ISD::VSHRDV),// ->196052
/*195945*/            OPC_RecordChild0, // #1 = $src1
/*195946*/            OPC_RecordChild1, // #2 = $src2
/*195947*/            OPC_MoveChild2,
/*195948*/            OPC_SwitchOpcode /*2 cases */, 62, TARGET_VAL(ISD::LOAD),// ->196014
/*195952*/              OPC_RecordMemRef,
/*195953*/              OPC_RecordNode, // #3 = 'ld' chained node
/*195954*/              OPC_CheckFoldableChainNode,
/*195955*/              OPC_RecordChild1, // #4 = $src3
/*195956*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*195958*/              OPC_CheckPredicate, 9, // Predicate_load
/*195960*/              OPC_MoveParent,
/*195961*/              OPC_MoveParent,
/*195962*/              OPC_CheckChild2Same, 1,
/*195964*/              OPC_SwitchType /*2 cases */, 22, MVT::v16i16,// ->195989
/*195967*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*195969*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*195972*/                OPC_EmitMergeInputChains, 1, 3, 
/*195975*/                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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v16i16] }:$src1) - Complexity = 28
                          // Dst: (VPSHRDVWZ256mk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/*195989*/              /*SwitchType*/ 22, MVT::v16i32,// ->196013
/*195991*/                OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*195993*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*195996*/                OPC_EmitMergeInputChains, 1, 3, 
/*195999*/                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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16i32] }:$src1) - Complexity = 28
                          // Dst: (VPSHRDVDZmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*196013*/              0, // EndSwitchType
/*196014*/            /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->196051
/*196017*/              OPC_RecordMemRef,
/*196018*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*196019*/              OPC_CheckFoldableChainNode,
/*196020*/              OPC_RecordChild1, // #4 = $src3
/*196021*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*196023*/              OPC_MoveParent,
/*196024*/              OPC_MoveParent,
/*196025*/              OPC_CheckChild2Same, 1,
/*196027*/              OPC_CheckType, MVT::v16i32,
/*196029*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*196031*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*196034*/              OPC_EmitMergeInputChains, 1, 3, 
/*196037*/              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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16i32] }:$src1) - Complexity = 28
                        // Dst: (VPSHRDVDZmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*196051*/            0, // EndSwitchOpcode
/*196052*/          /*SwitchOpcode*/ 81, TARGET_VAL(X86ISD::VPDPBUSD),// ->196136
/*196055*/            OPC_RecordChild0, // #1 = $src1
/*196056*/            OPC_RecordChild1, // #2 = $src2
/*196057*/            OPC_MoveChild2,
/*196058*/            OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->196098
/*196062*/              OPC_RecordMemRef,
/*196063*/              OPC_RecordNode, // #3 = 'ld' chained node
/*196064*/              OPC_CheckFoldableChainNode,
/*196065*/              OPC_RecordChild1, // #4 = $src3
/*196066*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*196068*/              OPC_CheckPredicate, 9, // Predicate_load
/*196070*/              OPC_MoveParent,
/*196071*/              OPC_MoveParent,
/*196072*/              OPC_CheckChild2Same, 1,
/*196074*/              OPC_CheckType, MVT::v16i32,
/*196076*/              OPC_CheckPatternPredicate, 148, // (Subtarget->hasVNNI())
/*196078*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*196081*/              OPC_EmitMergeInputChains, 1, 3, 
/*196084*/              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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16i32] }:$src1) - Complexity = 28
                        // Dst: (VPDPBUSDZmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*196098*/            /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->196135
/*196101*/              OPC_RecordMemRef,
/*196102*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*196103*/              OPC_CheckFoldableChainNode,
/*196104*/              OPC_RecordChild1, // #4 = $src3
/*196105*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*196107*/              OPC_MoveParent,
/*196108*/              OPC_MoveParent,
/*196109*/              OPC_CheckChild2Same, 1,
/*196111*/              OPC_CheckType, MVT::v16i32,
/*196113*/              OPC_CheckPatternPredicate, 148, // (Subtarget->hasVNNI())
/*196115*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*196118*/              OPC_EmitMergeInputChains, 1, 3, 
/*196121*/              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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16i32] }:$src1) - Complexity = 28
                        // Dst: (VPDPBUSDZmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*196135*/            0, // EndSwitchOpcode
/*196136*/          /*SwitchOpcode*/ 81, TARGET_VAL(X86ISD::VPDPBUSDS),// ->196220
/*196139*/            OPC_RecordChild0, // #1 = $src1
/*196140*/            OPC_RecordChild1, // #2 = $src2
/*196141*/            OPC_MoveChild2,
/*196142*/            OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->196182
/*196146*/              OPC_RecordMemRef,
/*196147*/              OPC_RecordNode, // #3 = 'ld' chained node
/*196148*/              OPC_CheckFoldableChainNode,
/*196149*/              OPC_RecordChild1, // #4 = $src3
/*196150*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*196152*/              OPC_CheckPredicate, 9, // Predicate_load
/*196154*/              OPC_MoveParent,
/*196155*/              OPC_MoveParent,
/*196156*/              OPC_CheckChild2Same, 1,
/*196158*/              OPC_CheckType, MVT::v16i32,
/*196160*/              OPC_CheckPatternPredicate, 148, // (Subtarget->hasVNNI())
/*196162*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*196165*/              OPC_EmitMergeInputChains, 1, 3, 
/*196168*/              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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16i32] }:$src1) - Complexity = 28
                        // Dst: (VPDPBUSDSZmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*196182*/            /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->196219
/*196185*/              OPC_RecordMemRef,
/*196186*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*196187*/              OPC_CheckFoldableChainNode,
/*196188*/              OPC_RecordChild1, // #4 = $src3
/*196189*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*196191*/              OPC_MoveParent,
/*196192*/              OPC_MoveParent,
/*196193*/              OPC_CheckChild2Same, 1,
/*196195*/              OPC_CheckType, MVT::v16i32,
/*196197*/              OPC_CheckPatternPredicate, 148, // (Subtarget->hasVNNI())
/*196199*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*196202*/              OPC_EmitMergeInputChains, 1, 3, 
/*196205*/              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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16i32] }:$src1) - Complexity = 28
                        // Dst: (VPDPBUSDSZmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*196219*/            0, // EndSwitchOpcode
/*196220*/          /*SwitchOpcode*/ 81, TARGET_VAL(X86ISD::VPDPWSSD),// ->196304
/*196223*/            OPC_RecordChild0, // #1 = $src1
/*196224*/            OPC_RecordChild1, // #2 = $src2
/*196225*/            OPC_MoveChild2,
/*196226*/            OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->196266
/*196230*/              OPC_RecordMemRef,
/*196231*/              OPC_RecordNode, // #3 = 'ld' chained node
/*196232*/              OPC_CheckFoldableChainNode,
/*196233*/              OPC_RecordChild1, // #4 = $src3
/*196234*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*196236*/              OPC_CheckPredicate, 9, // Predicate_load
/*196238*/              OPC_MoveParent,
/*196239*/              OPC_MoveParent,
/*196240*/              OPC_CheckChild2Same, 1,
/*196242*/              OPC_CheckType, MVT::v16i32,
/*196244*/              OPC_CheckPatternPredicate, 148, // (Subtarget->hasVNNI())
/*196246*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*196249*/              OPC_EmitMergeInputChains, 1, 3, 
/*196252*/              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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16i32] }:$src1) - Complexity = 28
                        // Dst: (VPDPWSSDZmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*196266*/            /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->196303
/*196269*/              OPC_RecordMemRef,
/*196270*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*196271*/              OPC_CheckFoldableChainNode,
/*196272*/              OPC_RecordChild1, // #4 = $src3
/*196273*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*196275*/              OPC_MoveParent,
/*196276*/              OPC_MoveParent,
/*196277*/              OPC_CheckChild2Same, 1,
/*196279*/              OPC_CheckType, MVT::v16i32,
/*196281*/              OPC_CheckPatternPredicate, 148, // (Subtarget->hasVNNI())
/*196283*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*196286*/              OPC_EmitMergeInputChains, 1, 3, 
/*196289*/              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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16i32] }:$src1) - Complexity = 28
                        // Dst: (VPDPWSSDZmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*196303*/            0, // EndSwitchOpcode
/*196304*/          /*SwitchOpcode*/ 81, TARGET_VAL(X86ISD::VPDPWSSDS),// ->196388
/*196307*/            OPC_RecordChild0, // #1 = $src1
/*196308*/            OPC_RecordChild1, // #2 = $src2
/*196309*/            OPC_MoveChild2,
/*196310*/            OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->196350
/*196314*/              OPC_RecordMemRef,
/*196315*/              OPC_RecordNode, // #3 = 'ld' chained node
/*196316*/              OPC_CheckFoldableChainNode,
/*196317*/              OPC_RecordChild1, // #4 = $src3
/*196318*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*196320*/              OPC_CheckPredicate, 9, // Predicate_load
/*196322*/              OPC_MoveParent,
/*196323*/              OPC_MoveParent,
/*196324*/              OPC_CheckChild2Same, 1,
/*196326*/              OPC_CheckType, MVT::v16i32,
/*196328*/              OPC_CheckPatternPredicate, 148, // (Subtarget->hasVNNI())
/*196330*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*196333*/              OPC_EmitMergeInputChains, 1, 3, 
/*196336*/              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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16i32] }:$src1) - Complexity = 28
                        // Dst: (VPDPWSSDSZmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*196350*/            /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->196387
/*196353*/              OPC_RecordMemRef,
/*196354*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*196355*/              OPC_CheckFoldableChainNode,
/*196356*/              OPC_RecordChild1, // #4 = $src3
/*196357*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*196359*/              OPC_MoveParent,
/*196360*/              OPC_MoveParent,
/*196361*/              OPC_CheckChild2Same, 1,
/*196363*/              OPC_CheckType, MVT::v16i32,
/*196365*/              OPC_CheckPatternPredicate, 148, // (Subtarget->hasVNNI())
/*196367*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*196370*/              OPC_EmitMergeInputChains, 1, 3, 
/*196373*/              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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16i32] }:$src1) - Complexity = 28
                        // Dst: (VPDPWSSDSZmbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*196387*/            0, // EndSwitchOpcode
/*196388*/          /*SwitchOpcode*/ 38, TARGET_VAL(X86ISD::GF2P8MULB),// ->196429
/*196391*/            OPC_RecordChild0, // #1 = $src1
/*196392*/            OPC_MoveChild1,
/*196393*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*196396*/            OPC_RecordMemRef,
/*196397*/            OPC_RecordNode, // #2 = 'ld' chained node
/*196398*/            OPC_CheckFoldableChainNode,
/*196399*/            OPC_RecordChild1, // #3 = $src2
/*196400*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*196402*/            OPC_CheckPredicate, 9, // Predicate_load
/*196404*/            OPC_MoveParent,
/*196405*/            OPC_MoveParent,
/*196406*/            OPC_RecordChild2, // #4 = $src0
/*196407*/            OPC_CheckType, MVT::v16i8,
/*196409*/            OPC_CheckPatternPredicate, 180, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*196411*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*196414*/            OPC_EmitMergeInputChains1_2,
/*196415*/            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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v16i8] }:$src0) - Complexity = 28
                      // Dst: (VGF2P8MULBZ128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*196429*/          /*SwitchOpcode*/ 76, TARGET_VAL(X86ISD::CVTNE2PS2BF16),// ->196508
/*196432*/            OPC_RecordChild0, // #1 = $src1
/*196433*/            OPC_CheckChild0Type, MVT::v8f32,
/*196435*/            OPC_MoveChild1,
/*196436*/            OPC_SwitchOpcode /*2 cases */, 33, TARGET_VAL(ISD::LOAD),// ->196473
/*196440*/              OPC_RecordMemRef,
/*196441*/              OPC_RecordNode, // #2 = 'ld' chained node
/*196442*/              OPC_CheckFoldableChainNode,
/*196443*/              OPC_RecordChild1, // #3 = $src2
/*196444*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*196446*/              OPC_CheckPredicate, 9, // Predicate_load
/*196448*/              OPC_MoveParent,
/*196449*/              OPC_MoveParent,
/*196450*/              OPC_RecordChild2, // #4 = $src0
/*196451*/              OPC_CheckType, MVT::v16i16,
/*196453*/              OPC_CheckPatternPredicate, 182, // (Subtarget->hasBF16()) && (Subtarget->hasVLX())
/*196455*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*196458*/              OPC_EmitMergeInputChains1_2,
/*196459*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTNE2PS2BF16Z256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86cvtne2ps2bf16:{ *:[v16i16] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v16i16] }:$src0) - Complexity = 28
                        // Dst: (VCVTNE2PS2BF16Z256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*196473*/            /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->196507
/*196476*/              OPC_RecordMemRef,
/*196477*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*196478*/              OPC_CheckFoldableChainNode,
/*196479*/              OPC_RecordChild1, // #3 = $src2
/*196480*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*196482*/              OPC_MoveParent,
/*196483*/              OPC_MoveParent,
/*196484*/              OPC_RecordChild2, // #4 = $src0
/*196485*/              OPC_CheckType, MVT::v16i16,
/*196487*/              OPC_CheckPatternPredicate, 182, // (Subtarget->hasBF16()) && (Subtarget->hasVLX())
/*196489*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*196492*/              OPC_EmitMergeInputChains1_2,
/*196493*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTNE2PS2BF16Z256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86cvtne2ps2bf16:{ *:[v16i16] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v16i16] }:$src0) - Complexity = 28
                        // Dst: (VCVTNE2PS2BF16Z256rmbk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*196507*/            0, // EndSwitchOpcode
/*196508*/          /*SwitchOpcode*/ 75, TARGET_VAL(X86ISD::CVTNEPS2BF16),// ->196586
/*196511*/            OPC_MoveChild0,
/*196512*/            OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->196550
/*196516*/              OPC_RecordMemRef,
/*196517*/              OPC_RecordNode, // #1 = 'ld' chained node
/*196518*/              OPC_CheckFoldableChainNode,
/*196519*/              OPC_RecordChild1, // #2 = $src
/*196520*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*196522*/              OPC_CheckPredicate, 9, // Predicate_load
/*196524*/              OPC_CheckType, MVT::v16f32,
/*196526*/              OPC_MoveParent,
/*196527*/              OPC_MoveParent,
/*196528*/              OPC_RecordChild2, // #3 = $src0
/*196529*/              OPC_CheckType, MVT::v16i16,
/*196531*/              OPC_CheckPatternPredicate, 183, // (Subtarget->hasBF16())
/*196533*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*196536*/              OPC_EmitMergeInputChains1_1,
/*196537*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTNEPS2BF16Zrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86cvtneps2bf16:{ *:[v16i16] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v16i16] }:$src0) - Complexity = 28
                        // Dst: (VCVTNEPS2BF16Zrmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*196550*/            /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->196585
/*196553*/              OPC_RecordMemRef,
/*196554*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*196555*/              OPC_CheckFoldableChainNode,
/*196556*/              OPC_RecordChild1, // #2 = $src
/*196557*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*196559*/              OPC_CheckType, MVT::v16f32,
/*196561*/              OPC_MoveParent,
/*196562*/              OPC_MoveParent,
/*196563*/              OPC_RecordChild2, // #3 = $src0
/*196564*/              OPC_CheckType, MVT::v16i16,
/*196566*/              OPC_CheckPatternPredicate, 183, // (Subtarget->hasBF16())
/*196568*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*196571*/              OPC_EmitMergeInputChains1_1,
/*196572*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTNEPS2BF16Zrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86cvtneps2bf16:{ *:[v16i16] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v16i16] }:$src0) - Complexity = 28
                        // Dst: (VCVTNEPS2BF16Zrmbk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*196585*/            0, // EndSwitchOpcode
/*196586*/          0, // EndSwitchOpcode
/*196587*/        0, /*End of Scope*/
/*196588*/      /*Scope*/ 125|128,64|128,1/*24701*/, /*->221292*/
/*196591*/        OPC_CheckChild0Type, MVT::v4i1,
/*196593*/        OPC_Scope, 57|128,2/*313*/, /*->196909*/ // 6 children in Scope
/*196596*/          OPC_MoveChild1,
/*196597*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*196600*/          OPC_Scope, 61, /*->196663*/ // 3 children in Scope
/*196602*/            OPC_MoveChild0,
/*196603*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VALIGN),
/*196606*/            OPC_RecordChild0, // #1 = $src1
/*196607*/            OPC_MoveChild1,
/*196608*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*196611*/            OPC_MoveChild0,
/*196612*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*196615*/            OPC_RecordMemRef,
/*196616*/            OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*196617*/            OPC_CheckFoldableChainNode,
/*196618*/            OPC_RecordChild1, // #3 = $src2
/*196619*/            OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*196621*/            OPC_CheckType, MVT::v4i32,
/*196623*/            OPC_MoveParent,
/*196624*/            OPC_MoveParent,
/*196625*/            OPC_RecordChild2, // #4 = $src3
/*196626*/            OPC_MoveChild2,
/*196627*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*196630*/            OPC_MoveParent,
/*196631*/            OPC_CheckType, MVT::v2i64,
/*196633*/            OPC_MoveParent,
/*196634*/            OPC_MoveParent,
/*196635*/            OPC_MoveChild2,
/*196636*/            OPC_CheckImmAllZerosV,
/*196637*/            OPC_MoveParent,
/*196638*/            OPC_CheckType, MVT::v4i32,
/*196640*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*196642*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*196645*/            OPC_EmitMergeInputChains1_2,
/*196646*/            OPC_EmitNodeXForm, 14, 4, // ValignqImm32XForm
/*196649*/            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, (bitconvert:{ *:[v4i32] } (X86VAlign:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (bitconvert:{ *:[v2i64] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), (timm:{ *:[i8] }):$src3)), immAllZerosV:{ *:[v4i32] }) - Complexity = 41
                      // Dst: (VALIGNDZ128rmbikz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (ValignqImm32XForm:{ *:[i8] } (timm:{ *:[i8] }):$src3))
/*196663*/          /*Scope*/ 2|128,1/*130*/, /*->196795*/
/*196665*/            OPC_RecordChild0, // #1 = $ins
/*196666*/            OPC_MoveChild0,
/*196667*/            OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*196670*/            OPC_RecordChild0, // #2 = $src1
/*196671*/            OPC_MoveChild1,
/*196672*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*196675*/            OPC_RecordMemRef,
/*196676*/            OPC_RecordNode, // #3 = 'ld' chained node
/*196677*/            OPC_CheckFoldableChainNode,
/*196678*/            OPC_RecordChild1, // #4 = $src2
/*196679*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*196681*/            OPC_CheckPredicate, 9, // Predicate_load
/*196683*/            OPC_MoveParent,
/*196684*/            OPC_MoveChild2,
/*196685*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*196688*/            OPC_CheckType, MVT::iPTR,
/*196690*/            OPC_MoveParent,
/*196691*/            OPC_SwitchType /*3 cases */, 32, MVT::v8i32,// ->196726
/*196694*/              OPC_MoveParent,
/*196695*/              OPC_MoveParent,
/*196696*/              OPC_MoveChild2,
/*196697*/              OPC_CheckImmAllZerosV,
/*196698*/              OPC_MoveParent,
/*196699*/              OPC_CheckType, MVT::v4i64,
/*196701*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*196703*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*196706*/              OPC_EmitMergeInputChains, 1, 3, 
/*196709*/              OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*196712*/              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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), immAllZerosV:{ *:[v4i64] }) - Complexity = 38
                        // Dst: (VINSERTF64x2Z256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256X:{ *:[v8i32] }:$ins))
/*196726*/            /*SwitchType*/ 32, MVT::v16i16,// ->196760
/*196728*/              OPC_MoveParent,
/*196729*/              OPC_MoveParent,
/*196730*/              OPC_MoveChild2,
/*196731*/              OPC_CheckImmAllZerosV,
/*196732*/              OPC_MoveParent,
/*196733*/              OPC_CheckType, MVT::v4i64,
/*196735*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*196737*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*196740*/              OPC_EmitMergeInputChains, 1, 3, 
/*196743*/              OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*196746*/              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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), immAllZerosV:{ *:[v4i64] }) - Complexity = 38
                        // Dst: (VINSERTF64x2Z256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256X:{ *:[v16i16] }:$ins))
/*196760*/            /*SwitchType*/ 32, MVT::v32i8,// ->196794
/*196762*/              OPC_MoveParent,
/*196763*/              OPC_MoveParent,
/*196764*/              OPC_MoveChild2,
/*196765*/              OPC_CheckImmAllZerosV,
/*196766*/              OPC_MoveParent,
/*196767*/              OPC_CheckType, MVT::v4i64,
/*196769*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*196771*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*196774*/              OPC_EmitMergeInputChains, 1, 3, 
/*196777*/              OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*196780*/              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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), immAllZerosV:{ *:[v4i64] }) - Complexity = 38
                        // Dst: (VINSERTF64x2Z256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256X:{ *:[v32i8] }:$ins))
/*196794*/            0, // EndSwitchType
/*196795*/          /*Scope*/ 112, /*->196908*/
/*196796*/            OPC_MoveChild0,
/*196797*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VALIGN),
/*196800*/            OPC_RecordChild0, // #1 = $src1
/*196801*/            OPC_MoveChild1,
/*196802*/            OPC_SwitchOpcode /*2 cases */, 47, TARGET_VAL(ISD::LOAD),// ->196853
/*196806*/              OPC_RecordMemRef,
/*196807*/              OPC_RecordNode, // #2 = 'ld' chained node
/*196808*/              OPC_CheckFoldableChainNode,
/*196809*/              OPC_RecordChild1, // #3 = $src2
/*196810*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*196812*/              OPC_CheckPredicate, 9, // Predicate_load
/*196814*/              OPC_MoveParent,
/*196815*/              OPC_RecordChild2, // #4 = $src3
/*196816*/              OPC_MoveChild2,
/*196817*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*196820*/              OPC_MoveParent,
/*196821*/              OPC_CheckType, MVT::v2i64,
/*196823*/              OPC_MoveParent,
/*196824*/              OPC_MoveParent,
/*196825*/              OPC_MoveChild2,
/*196826*/              OPC_CheckImmAllZerosV,
/*196827*/              OPC_MoveParent,
/*196828*/              OPC_CheckType, MVT::v4i32,
/*196830*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*196832*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*196835*/              OPC_EmitMergeInputChains1_2,
/*196836*/              OPC_EmitNodeXForm, 14, 4, // ValignqImm32XForm
/*196839*/              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, (bitconvert:{ *:[v4i32] } (X86VAlign:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3)), immAllZerosV:{ *:[v4i32] }) - Complexity = 38
                        // Dst: (VALIGNDZ128rmikz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (ValignqImm32XForm:{ *:[i8] } (timm:{ *:[i8] }):$src3))
/*196853*/            /*SwitchOpcode*/ 51, TARGET_VAL(ISD::BITCAST),// ->196907
/*196856*/              OPC_MoveChild0,
/*196857*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*196860*/              OPC_RecordMemRef,
/*196861*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*196862*/              OPC_CheckFoldableChainNode,
/*196863*/              OPC_RecordChild1, // #3 = $src2
/*196864*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*196866*/              OPC_CheckType, MVT::v4i32,
/*196868*/              OPC_MoveParent,
/*196869*/              OPC_MoveParent,
/*196870*/              OPC_RecordChild2, // #4 = $src3
/*196871*/              OPC_MoveChild2,
/*196872*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*196875*/              OPC_MoveParent,
/*196876*/              OPC_CheckType, MVT::v2i64,
/*196878*/              OPC_MoveParent,
/*196879*/              OPC_MoveParent,
/*196880*/              OPC_RecordChild2, // #5 = $src0
/*196881*/              OPC_CheckType, MVT::v4i32,
/*196883*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*196885*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*196888*/              OPC_EmitMergeInputChains1_2,
/*196889*/              OPC_EmitNodeXForm, 14, 4, // ValignqImm32XForm
/*196892*/              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, (bitconvert:{ *:[v4i32] } (X86VAlign:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (bitconvert:{ *:[v2i64] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), (timm:{ *:[i8] }):$src3)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 37
                        // Dst: (VALIGNDZ128rmbik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (ValignqImm32XForm:{ *:[i8] } (timm:{ *:[i8] }):$src3))
/*196907*/            0, // EndSwitchOpcode
/*196908*/          0, /*End of Scope*/
/*196909*/        /*Scope*/ 57, /*->196967*/
/*196910*/          OPC_RecordChild1, // #1 = $src3
/*196911*/          OPC_MoveChild1,
/*196912*/          OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*196915*/          OPC_RecordChild0, // #2 = $src1
/*196916*/          OPC_MoveChild1,
/*196917*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*196920*/          OPC_RecordMemRef,
/*196921*/          OPC_RecordNode, // #3 = 'ld' chained node
/*196922*/          OPC_CheckFoldableChainNode,
/*196923*/          OPC_RecordChild1, // #4 = $src2
/*196924*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*196926*/          OPC_CheckPredicate, 9, // Predicate_load
/*196928*/          OPC_MoveParent,
/*196929*/          OPC_MoveChild2,
/*196930*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*196933*/          OPC_CheckType, MVT::iPTR,
/*196935*/          OPC_MoveParent,
/*196936*/          OPC_MoveParent,
/*196937*/          OPC_MoveChild2,
/*196938*/          OPC_CheckImmAllZerosV,
/*196939*/          OPC_MoveParent,
/*196940*/          OPC_CheckType, MVT::v4i64,
/*196942*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*196944*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*196947*/          OPC_EmitMergeInputChains, 1, 3, 
/*196950*/          OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*196953*/          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>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$src3, immAllZerosV:{ *:[v4i64] }) - Complexity = 35
                    // 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>>, (imm:{ *:[iPTR] })):$src3))
/*196967*/        /*Scope*/ 125|128,87/*11261*/, /*->208230*/
/*196969*/          OPC_MoveChild1,
/*196970*/          OPC_SwitchOpcode /*58 cases */, 58|128,12/*1594*/, TARGET_VAL(ISD::BITCAST),// ->198569
/*196975*/            OPC_Scope, 88|128,10/*1368*/, /*->198346*/ // 3 children in Scope
/*196978*/              OPC_MoveChild0,
/*196979*/              OPC_SwitchOpcode /*5 cases */, 40, TARGET_VAL(X86ISD::SUBV_BROADCAST),// ->197023
/*196983*/                OPC_MoveChild0,
/*196984*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*196987*/                OPC_RecordMemRef,
/*196988*/                OPC_RecordNode, // #1 = 'ld' chained node
/*196989*/                OPC_CheckFoldableChainNode,
/*196990*/                OPC_RecordChild1, // #2 = $src
/*196991*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*196993*/                OPC_CheckPredicate, 9, // Predicate_load
/*196995*/                OPC_MoveParent,
/*196996*/                OPC_CheckType, MVT::v8i32,
/*196998*/                OPC_MoveParent,
/*196999*/                OPC_MoveParent,
/*197000*/                OPC_MoveChild2,
/*197001*/                OPC_CheckImmAllZerosV,
/*197002*/                OPC_MoveParent,
/*197003*/                OPC_CheckType, MVT::v4i64,
/*197005*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*197007*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*197010*/                OPC_EmitMergeInputChains1_1,
/*197011*/                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] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v4i64] }) - Complexity = 35
                          // Dst: (VBROADCASTI64X2Z128rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*197023*/              /*SwitchOpcode*/ 118|128,2/*374*/, TARGET_VAL(ISD::AND),// ->197401
/*197027*/                OPC_Scope, 56|128,1/*184*/, /*->197214*/ // 2 children in Scope
/*197030*/                  OPC_RecordChild0, // #1 = $src1
/*197031*/                  OPC_MoveChild1,
/*197032*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*197035*/                  OPC_RecordMemRef,
/*197036*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*197037*/                  OPC_CheckFoldableChainNode,
/*197038*/                  OPC_RecordChild1, // #3 = $src2
/*197039*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*197041*/                  OPC_CheckPredicate, 9, // Predicate_load
/*197043*/                  OPC_MoveParent,
/*197044*/                  OPC_SwitchType /*6 cases */, 26, MVT::v8i32,// ->197073
/*197047*/                    OPC_MoveParent,
/*197048*/                    OPC_MoveParent,
/*197049*/                    OPC_MoveChild2,
/*197050*/                    OPC_CheckImmAllZerosV,
/*197051*/                    OPC_MoveParent,
/*197052*/                    OPC_CheckType, MVT::v4i64,
/*197054*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*197056*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*197059*/                    OPC_EmitMergeInputChains1_2,
/*197060*/                    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, (bitconvert:{ *:[v4i64] } (and:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v4i64] }) - Complexity = 35
                              // Dst: (VPANDQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*197073*/                  /*SwitchType*/ 26, MVT::v16i16,// ->197101
/*197075*/                    OPC_MoveParent,
/*197076*/                    OPC_MoveParent,
/*197077*/                    OPC_MoveChild2,
/*197078*/                    OPC_CheckImmAllZerosV,
/*197079*/                    OPC_MoveParent,
/*197080*/                    OPC_CheckType, MVT::v4i64,
/*197082*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*197084*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*197087*/                    OPC_EmitMergeInputChains1_2,
/*197088*/                    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, (bitconvert:{ *:[v4i64] } (and:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v4i64] }) - Complexity = 35
                              // Dst: (VPANDQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*197101*/                  /*SwitchType*/ 26, MVT::v32i8,// ->197129
/*197103*/                    OPC_MoveParent,
/*197104*/                    OPC_MoveParent,
/*197105*/                    OPC_MoveChild2,
/*197106*/                    OPC_CheckImmAllZerosV,
/*197107*/                    OPC_MoveParent,
/*197108*/                    OPC_CheckType, MVT::v4i64,
/*197110*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*197112*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*197115*/                    OPC_EmitMergeInputChains1_2,
/*197116*/                    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, (bitconvert:{ *:[v4i64] } (and:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v4i64] }) - Complexity = 35
                              // Dst: (VPANDQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*197129*/                  /*SwitchType*/ 26, MVT::v2i64,// ->197157
/*197131*/                    OPC_MoveParent,
/*197132*/                    OPC_MoveParent,
/*197133*/                    OPC_MoveChild2,
/*197134*/                    OPC_CheckImmAllZerosV,
/*197135*/                    OPC_MoveParent,
/*197136*/                    OPC_CheckType, MVT::v4i32,
/*197138*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*197140*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*197143*/                    OPC_EmitMergeInputChains1_2,
/*197144*/                    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>>)), immAllZerosV:{ *:[v4i32] }) - Complexity = 35
                              // Dst: (VPANDDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*197157*/                  /*SwitchType*/ 26, MVT::v8i16,// ->197185
/*197159*/                    OPC_MoveParent,
/*197160*/                    OPC_MoveParent,
/*197161*/                    OPC_MoveChild2,
/*197162*/                    OPC_CheckImmAllZerosV,
/*197163*/                    OPC_MoveParent,
/*197164*/                    OPC_CheckType, MVT::v4i32,
/*197166*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*197168*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*197171*/                    OPC_EmitMergeInputChains1_2,
/*197172*/                    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:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v4i32] }) - Complexity = 35
                              // Dst: (VPANDDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*197185*/                  /*SwitchType*/ 26, MVT::v16i8,// ->197213
/*197187*/                    OPC_MoveParent,
/*197188*/                    OPC_MoveParent,
/*197189*/                    OPC_MoveChild2,
/*197190*/                    OPC_CheckImmAllZerosV,
/*197191*/                    OPC_MoveParent,
/*197192*/                    OPC_CheckType, MVT::v4i32,
/*197194*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*197196*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*197199*/                    OPC_EmitMergeInputChains1_2,
/*197200*/                    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:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v4i32] }) - Complexity = 35
                              // Dst: (VPANDDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*197213*/                  0, // EndSwitchType
/*197214*/                /*Scope*/ 56|128,1/*184*/, /*->197400*/
/*197216*/                  OPC_MoveChild0,
/*197217*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*197220*/                  OPC_RecordMemRef,
/*197221*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*197222*/                  OPC_CheckFoldableChainNode,
/*197223*/                  OPC_RecordChild1, // #2 = $src2
/*197224*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*197226*/                  OPC_CheckPredicate, 9, // Predicate_load
/*197228*/                  OPC_MoveParent,
/*197229*/                  OPC_RecordChild1, // #3 = $src1
/*197230*/                  OPC_SwitchType /*6 cases */, 26, MVT::v8i32,// ->197259
/*197233*/                    OPC_MoveParent,
/*197234*/                    OPC_MoveParent,
/*197235*/                    OPC_MoveChild2,
/*197236*/                    OPC_CheckImmAllZerosV,
/*197237*/                    OPC_MoveParent,
/*197238*/                    OPC_CheckType, MVT::v4i64,
/*197240*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*197242*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*197245*/                    OPC_EmitMergeInputChains1_1,
/*197246*/                    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, (bitconvert:{ *:[v4i64] } (and:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8i32] }:$src1)), immAllZerosV:{ *:[v4i64] }) - Complexity = 35
                              // Dst: (VPANDQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*197259*/                  /*SwitchType*/ 26, MVT::v16i16,// ->197287
/*197261*/                    OPC_MoveParent,
/*197262*/                    OPC_MoveParent,
/*197263*/                    OPC_MoveChild2,
/*197264*/                    OPC_CheckImmAllZerosV,
/*197265*/                    OPC_MoveParent,
/*197266*/                    OPC_CheckType, MVT::v4i64,
/*197268*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*197270*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*197273*/                    OPC_EmitMergeInputChains1_1,
/*197274*/                    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, (bitconvert:{ *:[v4i64] } (and:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1)), immAllZerosV:{ *:[v4i64] }) - Complexity = 35
                              // Dst: (VPANDQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*197287*/                  /*SwitchType*/ 26, MVT::v32i8,// ->197315
/*197289*/                    OPC_MoveParent,
/*197290*/                    OPC_MoveParent,
/*197291*/                    OPC_MoveChild2,
/*197292*/                    OPC_CheckImmAllZerosV,
/*197293*/                    OPC_MoveParent,
/*197294*/                    OPC_CheckType, MVT::v4i64,
/*197296*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*197298*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*197301*/                    OPC_EmitMergeInputChains1_1,
/*197302*/                    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, (bitconvert:{ *:[v4i64] } (and:{ *:[v32i8] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v32i8] }:$src1)), immAllZerosV:{ *:[v4i64] }) - Complexity = 35
                              // Dst: (VPANDQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*197315*/                  /*SwitchType*/ 26, MVT::v2i64,// ->197343
/*197317*/                    OPC_MoveParent,
/*197318*/                    OPC_MoveParent,
/*197319*/                    OPC_MoveChild2,
/*197320*/                    OPC_CheckImmAllZerosV,
/*197321*/                    OPC_MoveParent,
/*197322*/                    OPC_CheckType, MVT::v4i32,
/*197324*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*197326*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*197329*/                    OPC_EmitMergeInputChains1_1,
/*197330*/                    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>>, VR128X:{ *:[v2i64] }:$src1)), immAllZerosV:{ *:[v4i32] }) - Complexity = 35
                              // Dst: (VPANDDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*197343*/                  /*SwitchType*/ 26, MVT::v8i16,// ->197371
/*197345*/                    OPC_MoveParent,
/*197346*/                    OPC_MoveParent,
/*197347*/                    OPC_MoveChild2,
/*197348*/                    OPC_CheckImmAllZerosV,
/*197349*/                    OPC_MoveParent,
/*197350*/                    OPC_CheckType, MVT::v4i32,
/*197352*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*197354*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*197357*/                    OPC_EmitMergeInputChains1_1,
/*197358*/                    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:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1)), immAllZerosV:{ *:[v4i32] }) - Complexity = 35
                              // Dst: (VPANDDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*197371*/                  /*SwitchType*/ 26, MVT::v16i8,// ->197399
/*197373*/                    OPC_MoveParent,
/*197374*/                    OPC_MoveParent,
/*197375*/                    OPC_MoveChild2,
/*197376*/                    OPC_CheckImmAllZerosV,
/*197377*/                    OPC_MoveParent,
/*197378*/                    OPC_CheckType, MVT::v4i32,
/*197380*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*197382*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*197385*/                    OPC_EmitMergeInputChains1_1,
/*197386*/                    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:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v16i8] }:$src1)), immAllZerosV:{ *:[v4i32] }) - Complexity = 35
                              // Dst: (VPANDDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*197399*/                  0, // EndSwitchType
/*197400*/                0, /*End of Scope*/
/*197401*/              /*SwitchOpcode*/ 118|128,2/*374*/, TARGET_VAL(ISD::OR),// ->197779
/*197405*/                OPC_Scope, 56|128,1/*184*/, /*->197592*/ // 2 children in Scope
/*197408*/                  OPC_RecordChild0, // #1 = $src1
/*197409*/                  OPC_MoveChild1,
/*197410*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*197413*/                  OPC_RecordMemRef,
/*197414*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*197415*/                  OPC_CheckFoldableChainNode,
/*197416*/                  OPC_RecordChild1, // #3 = $src2
/*197417*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*197419*/                  OPC_CheckPredicate, 9, // Predicate_load
/*197421*/                  OPC_MoveParent,
/*197422*/                  OPC_SwitchType /*6 cases */, 26, MVT::v8i32,// ->197451
/*197425*/                    OPC_MoveParent,
/*197426*/                    OPC_MoveParent,
/*197427*/                    OPC_MoveChild2,
/*197428*/                    OPC_CheckImmAllZerosV,
/*197429*/                    OPC_MoveParent,
/*197430*/                    OPC_CheckType, MVT::v4i64,
/*197432*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*197434*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*197437*/                    OPC_EmitMergeInputChains1_2,
/*197438*/                    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, (bitconvert:{ *:[v4i64] } (or:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v4i64] }) - Complexity = 35
                              // Dst: (VPORQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*197451*/                  /*SwitchType*/ 26, MVT::v16i16,// ->197479
/*197453*/                    OPC_MoveParent,
/*197454*/                    OPC_MoveParent,
/*197455*/                    OPC_MoveChild2,
/*197456*/                    OPC_CheckImmAllZerosV,
/*197457*/                    OPC_MoveParent,
/*197458*/                    OPC_CheckType, MVT::v4i64,
/*197460*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*197462*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*197465*/                    OPC_EmitMergeInputChains1_2,
/*197466*/                    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, (bitconvert:{ *:[v4i64] } (or:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v4i64] }) - Complexity = 35
                              // Dst: (VPORQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*197479*/                  /*SwitchType*/ 26, MVT::v32i8,// ->197507
/*197481*/                    OPC_MoveParent,
/*197482*/                    OPC_MoveParent,
/*197483*/                    OPC_MoveChild2,
/*197484*/                    OPC_CheckImmAllZerosV,
/*197485*/                    OPC_MoveParent,
/*197486*/                    OPC_CheckType, MVT::v4i64,
/*197488*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*197490*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*197493*/                    OPC_EmitMergeInputChains1_2,
/*197494*/                    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, (bitconvert:{ *:[v4i64] } (or:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v4i64] }) - Complexity = 35
                              // Dst: (VPORQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*197507*/                  /*SwitchType*/ 26, MVT::v2i64,// ->197535
/*197509*/                    OPC_MoveParent,
/*197510*/                    OPC_MoveParent,
/*197511*/                    OPC_MoveChild2,
/*197512*/                    OPC_CheckImmAllZerosV,
/*197513*/                    OPC_MoveParent,
/*197514*/                    OPC_CheckType, MVT::v4i32,
/*197516*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*197518*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*197521*/                    OPC_EmitMergeInputChains1_2,
/*197522*/                    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>>)), immAllZerosV:{ *:[v4i32] }) - Complexity = 35
                              // Dst: (VPORDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*197535*/                  /*SwitchType*/ 26, MVT::v8i16,// ->197563
/*197537*/                    OPC_MoveParent,
/*197538*/                    OPC_MoveParent,
/*197539*/                    OPC_MoveChild2,
/*197540*/                    OPC_CheckImmAllZerosV,
/*197541*/                    OPC_MoveParent,
/*197542*/                    OPC_CheckType, MVT::v4i32,
/*197544*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*197546*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*197549*/                    OPC_EmitMergeInputChains1_2,
/*197550*/                    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:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v4i32] }) - Complexity = 35
                              // Dst: (VPORDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*197563*/                  /*SwitchType*/ 26, MVT::v16i8,// ->197591
/*197565*/                    OPC_MoveParent,
/*197566*/                    OPC_MoveParent,
/*197567*/                    OPC_MoveChild2,
/*197568*/                    OPC_CheckImmAllZerosV,
/*197569*/                    OPC_MoveParent,
/*197570*/                    OPC_CheckType, MVT::v4i32,
/*197572*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*197574*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*197577*/                    OPC_EmitMergeInputChains1_2,
/*197578*/                    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:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v4i32] }) - Complexity = 35
                              // Dst: (VPORDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*197591*/                  0, // EndSwitchType
/*197592*/                /*Scope*/ 56|128,1/*184*/, /*->197778*/
/*197594*/                  OPC_MoveChild0,
/*197595*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*197598*/                  OPC_RecordMemRef,
/*197599*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*197600*/                  OPC_CheckFoldableChainNode,
/*197601*/                  OPC_RecordChild1, // #2 = $src2
/*197602*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*197604*/                  OPC_CheckPredicate, 9, // Predicate_load
/*197606*/                  OPC_MoveParent,
/*197607*/                  OPC_RecordChild1, // #3 = $src1
/*197608*/                  OPC_SwitchType /*6 cases */, 26, MVT::v8i32,// ->197637
/*197611*/                    OPC_MoveParent,
/*197612*/                    OPC_MoveParent,
/*197613*/                    OPC_MoveChild2,
/*197614*/                    OPC_CheckImmAllZerosV,
/*197615*/                    OPC_MoveParent,
/*197616*/                    OPC_CheckType, MVT::v4i64,
/*197618*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*197620*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*197623*/                    OPC_EmitMergeInputChains1_1,
/*197624*/                    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, (bitconvert:{ *:[v4i64] } (or:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8i32] }:$src1)), immAllZerosV:{ *:[v4i64] }) - Complexity = 35
                              // Dst: (VPORQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*197637*/                  /*SwitchType*/ 26, MVT::v16i16,// ->197665
/*197639*/                    OPC_MoveParent,
/*197640*/                    OPC_MoveParent,
/*197641*/                    OPC_MoveChild2,
/*197642*/                    OPC_CheckImmAllZerosV,
/*197643*/                    OPC_MoveParent,
/*197644*/                    OPC_CheckType, MVT::v4i64,
/*197646*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*197648*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*197651*/                    OPC_EmitMergeInputChains1_1,
/*197652*/                    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, (bitconvert:{ *:[v4i64] } (or:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1)), immAllZerosV:{ *:[v4i64] }) - Complexity = 35
                              // Dst: (VPORQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*197665*/                  /*SwitchType*/ 26, MVT::v32i8,// ->197693
/*197667*/                    OPC_MoveParent,
/*197668*/                    OPC_MoveParent,
/*197669*/                    OPC_MoveChild2,
/*197670*/                    OPC_CheckImmAllZerosV,
/*197671*/                    OPC_MoveParent,
/*197672*/                    OPC_CheckType, MVT::v4i64,
/*197674*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*197676*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*197679*/                    OPC_EmitMergeInputChains1_1,
/*197680*/                    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, (bitconvert:{ *:[v4i64] } (or:{ *:[v32i8] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v32i8] }:$src1)), immAllZerosV:{ *:[v4i64] }) - Complexity = 35
                              // Dst: (VPORQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*197693*/                  /*SwitchType*/ 26, MVT::v2i64,// ->197721
/*197695*/                    OPC_MoveParent,
/*197696*/                    OPC_MoveParent,
/*197697*/                    OPC_MoveChild2,
/*197698*/                    OPC_CheckImmAllZerosV,
/*197699*/                    OPC_MoveParent,
/*197700*/                    OPC_CheckType, MVT::v4i32,
/*197702*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*197704*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*197707*/                    OPC_EmitMergeInputChains1_1,
/*197708*/                    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>>, VR128X:{ *:[v2i64] }:$src1)), immAllZerosV:{ *:[v4i32] }) - Complexity = 35
                              // Dst: (VPORDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*197721*/                  /*SwitchType*/ 26, MVT::v8i16,// ->197749
/*197723*/                    OPC_MoveParent,
/*197724*/                    OPC_MoveParent,
/*197725*/                    OPC_MoveChild2,
/*197726*/                    OPC_CheckImmAllZerosV,
/*197727*/                    OPC_MoveParent,
/*197728*/                    OPC_CheckType, MVT::v4i32,
/*197730*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*197732*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*197735*/                    OPC_EmitMergeInputChains1_1,
/*197736*/                    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:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1)), immAllZerosV:{ *:[v4i32] }) - Complexity = 35
                              // Dst: (VPORDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*197749*/                  /*SwitchType*/ 26, MVT::v16i8,// ->197777
/*197751*/                    OPC_MoveParent,
/*197752*/                    OPC_MoveParent,
/*197753*/                    OPC_MoveChild2,
/*197754*/                    OPC_CheckImmAllZerosV,
/*197755*/                    OPC_MoveParent,
/*197756*/                    OPC_CheckType, MVT::v4i32,
/*197758*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*197760*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*197763*/                    OPC_EmitMergeInputChains1_1,
/*197764*/                    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:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v16i8] }:$src1)), immAllZerosV:{ *:[v4i32] }) - Complexity = 35
                              // Dst: (VPORDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*197777*/                  0, // EndSwitchType
/*197778*/                0, /*End of Scope*/
/*197779*/              /*SwitchOpcode*/ 118|128,2/*374*/, TARGET_VAL(ISD::XOR),// ->198157
/*197783*/                OPC_Scope, 56|128,1/*184*/, /*->197970*/ // 2 children in Scope
/*197786*/                  OPC_RecordChild0, // #1 = $src1
/*197787*/                  OPC_MoveChild1,
/*197788*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*197791*/                  OPC_RecordMemRef,
/*197792*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*197793*/                  OPC_CheckFoldableChainNode,
/*197794*/                  OPC_RecordChild1, // #3 = $src2
/*197795*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*197797*/                  OPC_CheckPredicate, 9, // Predicate_load
/*197799*/                  OPC_MoveParent,
/*197800*/                  OPC_SwitchType /*6 cases */, 26, MVT::v8i32,// ->197829
/*197803*/                    OPC_MoveParent,
/*197804*/                    OPC_MoveParent,
/*197805*/                    OPC_MoveChild2,
/*197806*/                    OPC_CheckImmAllZerosV,
/*197807*/                    OPC_MoveParent,
/*197808*/                    OPC_CheckType, MVT::v4i64,
/*197810*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*197812*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*197815*/                    OPC_EmitMergeInputChains1_2,
/*197816*/                    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, (bitconvert:{ *:[v4i64] } (xor:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v4i64] }) - Complexity = 35
                              // Dst: (VPXORQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*197829*/                  /*SwitchType*/ 26, MVT::v16i16,// ->197857
/*197831*/                    OPC_MoveParent,
/*197832*/                    OPC_MoveParent,
/*197833*/                    OPC_MoveChild2,
/*197834*/                    OPC_CheckImmAllZerosV,
/*197835*/                    OPC_MoveParent,
/*197836*/                    OPC_CheckType, MVT::v4i64,
/*197838*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*197840*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*197843*/                    OPC_EmitMergeInputChains1_2,
/*197844*/                    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, (bitconvert:{ *:[v4i64] } (xor:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v4i64] }) - Complexity = 35
                              // Dst: (VPXORQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*197857*/                  /*SwitchType*/ 26, MVT::v32i8,// ->197885
/*197859*/                    OPC_MoveParent,
/*197860*/                    OPC_MoveParent,
/*197861*/                    OPC_MoveChild2,
/*197862*/                    OPC_CheckImmAllZerosV,
/*197863*/                    OPC_MoveParent,
/*197864*/                    OPC_CheckType, MVT::v4i64,
/*197866*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*197868*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*197871*/                    OPC_EmitMergeInputChains1_2,
/*197872*/                    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, (bitconvert:{ *:[v4i64] } (xor:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v4i64] }) - Complexity = 35
                              // Dst: (VPXORQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*197885*/                  /*SwitchType*/ 26, MVT::v2i64,// ->197913
/*197887*/                    OPC_MoveParent,
/*197888*/                    OPC_MoveParent,
/*197889*/                    OPC_MoveChild2,
/*197890*/                    OPC_CheckImmAllZerosV,
/*197891*/                    OPC_MoveParent,
/*197892*/                    OPC_CheckType, MVT::v4i32,
/*197894*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*197896*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*197899*/                    OPC_EmitMergeInputChains1_2,
/*197900*/                    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>>)), immAllZerosV:{ *:[v4i32] }) - Complexity = 35
                              // Dst: (VPXORDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*197913*/                  /*SwitchType*/ 26, MVT::v8i16,// ->197941
/*197915*/                    OPC_MoveParent,
/*197916*/                    OPC_MoveParent,
/*197917*/                    OPC_MoveChild2,
/*197918*/                    OPC_CheckImmAllZerosV,
/*197919*/                    OPC_MoveParent,
/*197920*/                    OPC_CheckType, MVT::v4i32,
/*197922*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*197924*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*197927*/                    OPC_EmitMergeInputChains1_2,
/*197928*/                    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:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v4i32] }) - Complexity = 35
                              // Dst: (VPXORDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*197941*/                  /*SwitchType*/ 26, MVT::v16i8,// ->197969
/*197943*/                    OPC_MoveParent,
/*197944*/                    OPC_MoveParent,
/*197945*/                    OPC_MoveChild2,
/*197946*/                    OPC_CheckImmAllZerosV,
/*197947*/                    OPC_MoveParent,
/*197948*/                    OPC_CheckType, MVT::v4i32,
/*197950*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*197952*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*197955*/                    OPC_EmitMergeInputChains1_2,
/*197956*/                    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:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v4i32] }) - Complexity = 35
                              // Dst: (VPXORDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*197969*/                  0, // EndSwitchType
/*197970*/                /*Scope*/ 56|128,1/*184*/, /*->198156*/
/*197972*/                  OPC_MoveChild0,
/*197973*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*197976*/                  OPC_RecordMemRef,
/*197977*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*197978*/                  OPC_CheckFoldableChainNode,
/*197979*/                  OPC_RecordChild1, // #2 = $src2
/*197980*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*197982*/                  OPC_CheckPredicate, 9, // Predicate_load
/*197984*/                  OPC_MoveParent,
/*197985*/                  OPC_RecordChild1, // #3 = $src1
/*197986*/                  OPC_SwitchType /*6 cases */, 26, MVT::v8i32,// ->198015
/*197989*/                    OPC_MoveParent,
/*197990*/                    OPC_MoveParent,
/*197991*/                    OPC_MoveChild2,
/*197992*/                    OPC_CheckImmAllZerosV,
/*197993*/                    OPC_MoveParent,
/*197994*/                    OPC_CheckType, MVT::v4i64,
/*197996*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*197998*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*198001*/                    OPC_EmitMergeInputChains1_1,
/*198002*/                    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, (bitconvert:{ *:[v4i64] } (xor:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8i32] }:$src1)), immAllZerosV:{ *:[v4i64] }) - Complexity = 35
                              // Dst: (VPXORQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*198015*/                  /*SwitchType*/ 26, MVT::v16i16,// ->198043
/*198017*/                    OPC_MoveParent,
/*198018*/                    OPC_MoveParent,
/*198019*/                    OPC_MoveChild2,
/*198020*/                    OPC_CheckImmAllZerosV,
/*198021*/                    OPC_MoveParent,
/*198022*/                    OPC_CheckType, MVT::v4i64,
/*198024*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*198026*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*198029*/                    OPC_EmitMergeInputChains1_1,
/*198030*/                    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, (bitconvert:{ *:[v4i64] } (xor:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1)), immAllZerosV:{ *:[v4i64] }) - Complexity = 35
                              // Dst: (VPXORQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*198043*/                  /*SwitchType*/ 26, MVT::v32i8,// ->198071
/*198045*/                    OPC_MoveParent,
/*198046*/                    OPC_MoveParent,
/*198047*/                    OPC_MoveChild2,
/*198048*/                    OPC_CheckImmAllZerosV,
/*198049*/                    OPC_MoveParent,
/*198050*/                    OPC_CheckType, MVT::v4i64,
/*198052*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*198054*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*198057*/                    OPC_EmitMergeInputChains1_1,
/*198058*/                    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, (bitconvert:{ *:[v4i64] } (xor:{ *:[v32i8] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v32i8] }:$src1)), immAllZerosV:{ *:[v4i64] }) - Complexity = 35
                              // Dst: (VPXORQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*198071*/                  /*SwitchType*/ 26, MVT::v2i64,// ->198099
/*198073*/                    OPC_MoveParent,
/*198074*/                    OPC_MoveParent,
/*198075*/                    OPC_MoveChild2,
/*198076*/                    OPC_CheckImmAllZerosV,
/*198077*/                    OPC_MoveParent,
/*198078*/                    OPC_CheckType, MVT::v4i32,
/*198080*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*198082*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*198085*/                    OPC_EmitMergeInputChains1_1,
/*198086*/                    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>>, VR128X:{ *:[v2i64] }:$src1)), immAllZerosV:{ *:[v4i32] }) - Complexity = 35
                              // Dst: (VPXORDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*198099*/                  /*SwitchType*/ 26, MVT::v8i16,// ->198127
/*198101*/                    OPC_MoveParent,
/*198102*/                    OPC_MoveParent,
/*198103*/                    OPC_MoveChild2,
/*198104*/                    OPC_CheckImmAllZerosV,
/*198105*/                    OPC_MoveParent,
/*198106*/                    OPC_CheckType, MVT::v4i32,
/*198108*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*198110*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*198113*/                    OPC_EmitMergeInputChains1_1,
/*198114*/                    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:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1)), immAllZerosV:{ *:[v4i32] }) - Complexity = 35
                              // Dst: (VPXORDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*198127*/                  /*SwitchType*/ 26, MVT::v16i8,// ->198155
/*198129*/                    OPC_MoveParent,
/*198130*/                    OPC_MoveParent,
/*198131*/                    OPC_MoveChild2,
/*198132*/                    OPC_CheckImmAllZerosV,
/*198133*/                    OPC_MoveParent,
/*198134*/                    OPC_CheckType, MVT::v4i32,
/*198136*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*198138*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*198141*/                    OPC_EmitMergeInputChains1_1,
/*198142*/                    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:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v16i8] }:$src1)), immAllZerosV:{ *:[v4i32] }) - Complexity = 35
                              // Dst: (VPXORDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*198155*/                  0, // EndSwitchType
/*198156*/                0, /*End of Scope*/
/*198157*/              /*SwitchOpcode*/ 56|128,1/*184*/, TARGET_VAL(X86ISD::ANDNP),// ->198345
/*198161*/                OPC_RecordChild0, // #1 = $src1
/*198162*/                OPC_MoveChild1,
/*198163*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*198166*/                OPC_RecordMemRef,
/*198167*/                OPC_RecordNode, // #2 = 'ld' chained node
/*198168*/                OPC_CheckFoldableChainNode,
/*198169*/                OPC_RecordChild1, // #3 = $src2
/*198170*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*198172*/                OPC_CheckPredicate, 9, // Predicate_load
/*198174*/                OPC_MoveParent,
/*198175*/                OPC_SwitchType /*6 cases */, 26, MVT::v8i32,// ->198204
/*198178*/                  OPC_MoveParent,
/*198179*/                  OPC_MoveParent,
/*198180*/                  OPC_MoveChild2,
/*198181*/                  OPC_CheckImmAllZerosV,
/*198182*/                  OPC_MoveParent,
/*198183*/                  OPC_CheckType, MVT::v4i64,
/*198185*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*198187*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*198190*/                  OPC_EmitMergeInputChains1_2,
/*198191*/                  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, (bitconvert:{ *:[v4i64] } (X86andnp:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v4i64] }) - Complexity = 35
                            // Dst: (VPANDNQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*198204*/                /*SwitchType*/ 26, MVT::v16i16,// ->198232
/*198206*/                  OPC_MoveParent,
/*198207*/                  OPC_MoveParent,
/*198208*/                  OPC_MoveChild2,
/*198209*/                  OPC_CheckImmAllZerosV,
/*198210*/                  OPC_MoveParent,
/*198211*/                  OPC_CheckType, MVT::v4i64,
/*198213*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*198215*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*198218*/                  OPC_EmitMergeInputChains1_2,
/*198219*/                  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, (bitconvert:{ *:[v4i64] } (X86andnp:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v4i64] }) - Complexity = 35
                            // Dst: (VPANDNQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*198232*/                /*SwitchType*/ 26, MVT::v32i8,// ->198260
/*198234*/                  OPC_MoveParent,
/*198235*/                  OPC_MoveParent,
/*198236*/                  OPC_MoveChild2,
/*198237*/                  OPC_CheckImmAllZerosV,
/*198238*/                  OPC_MoveParent,
/*198239*/                  OPC_CheckType, MVT::v4i64,
/*198241*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*198243*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*198246*/                  OPC_EmitMergeInputChains1_2,
/*198247*/                  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, (bitconvert:{ *:[v4i64] } (X86andnp:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v4i64] }) - Complexity = 35
                            // Dst: (VPANDNQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*198260*/                /*SwitchType*/ 26, MVT::v2i64,// ->198288
/*198262*/                  OPC_MoveParent,
/*198263*/                  OPC_MoveParent,
/*198264*/                  OPC_MoveChild2,
/*198265*/                  OPC_CheckImmAllZerosV,
/*198266*/                  OPC_MoveParent,
/*198267*/                  OPC_CheckType, MVT::v4i32,
/*198269*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*198271*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*198274*/                  OPC_EmitMergeInputChains1_2,
/*198275*/                  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>>)), immAllZerosV:{ *:[v4i32] }) - Complexity = 35
                            // Dst: (VPANDNDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*198288*/                /*SwitchType*/ 26, MVT::v8i16,// ->198316
/*198290*/                  OPC_MoveParent,
/*198291*/                  OPC_MoveParent,
/*198292*/                  OPC_MoveChild2,
/*198293*/                  OPC_CheckImmAllZerosV,
/*198294*/                  OPC_MoveParent,
/*198295*/                  OPC_CheckType, MVT::v4i32,
/*198297*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*198299*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*198302*/                  OPC_EmitMergeInputChains1_2,
/*198303*/                  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:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v4i32] }) - Complexity = 35
                            // Dst: (VPANDNDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*198316*/                /*SwitchType*/ 26, MVT::v16i8,// ->198344
/*198318*/                  OPC_MoveParent,
/*198319*/                  OPC_MoveParent,
/*198320*/                  OPC_MoveChild2,
/*198321*/                  OPC_CheckImmAllZerosV,
/*198322*/                  OPC_MoveParent,
/*198323*/                  OPC_CheckType, MVT::v4i32,
/*198325*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*198327*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*198330*/                  OPC_EmitMergeInputChains1_2,
/*198331*/                  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:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v4i32] }) - Complexity = 35
                            // Dst: (VPANDNDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*198344*/                0, // EndSwitchType
/*198345*/              0, // EndSwitchOpcode
/*198346*/            /*Scope*/ 127, /*->198474*/
/*198347*/              OPC_RecordChild0, // #1 = $ins
/*198348*/              OPC_MoveChild0,
/*198349*/              OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*198352*/              OPC_RecordChild0, // #2 = $src1
/*198353*/              OPC_MoveChild1,
/*198354*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*198357*/              OPC_RecordMemRef,
/*198358*/              OPC_RecordNode, // #3 = 'ld' chained node
/*198359*/              OPC_CheckFoldableChainNode,
/*198360*/              OPC_RecordChild1, // #4 = $src2
/*198361*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*198363*/              OPC_CheckPredicate, 9, // Predicate_load
/*198365*/              OPC_MoveParent,
/*198366*/              OPC_MoveChild2,
/*198367*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*198370*/              OPC_CheckType, MVT::iPTR,
/*198372*/              OPC_MoveParent,
/*198373*/              OPC_SwitchType /*3 cases */, 31, MVT::v8i32,// ->198407
/*198376*/                OPC_MoveParent,
/*198377*/                OPC_MoveParent,
/*198378*/                OPC_RecordChild2, // #5 = $src0
/*198379*/                OPC_CheckType, MVT::v4i64,
/*198381*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*198383*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*198386*/                OPC_EmitMergeInputChains, 1, 3, 
/*198389*/                OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*198392*/                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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), VR256X:{ *:[v4i64] }:$src0) - Complexity = 34
                          // Dst: (VINSERTF64x2Z256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256X:{ *:[v8i32] }:$ins))
/*198407*/              /*SwitchType*/ 31, MVT::v16i16,// ->198440
/*198409*/                OPC_MoveParent,
/*198410*/                OPC_MoveParent,
/*198411*/                OPC_RecordChild2, // #5 = $src0
/*198412*/                OPC_CheckType, MVT::v4i64,
/*198414*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*198416*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*198419*/                OPC_EmitMergeInputChains, 1, 3, 
/*198422*/                OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*198425*/                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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), VR256X:{ *:[v4i64] }:$src0) - Complexity = 34
                          // Dst: (VINSERTF64x2Z256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256X:{ *:[v16i16] }:$ins))
/*198440*/              /*SwitchType*/ 31, MVT::v32i8,// ->198473
/*198442*/                OPC_MoveParent,
/*198443*/                OPC_MoveParent,
/*198444*/                OPC_RecordChild2, // #5 = $src0
/*198445*/                OPC_CheckType, MVT::v4i64,
/*198447*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*198449*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*198452*/                OPC_EmitMergeInputChains, 1, 3, 
/*198455*/                OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*198458*/                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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), VR256X:{ *:[v4i64] }:$src0) - Complexity = 34
                          // Dst: (VINSERTF64x2Z256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256X:{ *:[v32i8] }:$ins))
/*198473*/              0, // EndSwitchType
/*198474*/            /*Scope*/ 93, /*->198568*/
/*198475*/              OPC_MoveChild0,
/*198476*/              OPC_SwitchOpcode /*2 cases */, 51, TARGET_VAL(X86ISD::VALIGN),// ->198531
/*198480*/                OPC_RecordChild0, // #1 = $src1
/*198481*/                OPC_MoveChild1,
/*198482*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*198485*/                OPC_RecordMemRef,
/*198486*/                OPC_RecordNode, // #2 = 'ld' chained node
/*198487*/                OPC_CheckFoldableChainNode,
/*198488*/                OPC_RecordChild1, // #3 = $src2
/*198489*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*198491*/                OPC_CheckPredicate, 9, // Predicate_load
/*198493*/                OPC_MoveParent,
/*198494*/                OPC_RecordChild2, // #4 = $src3
/*198495*/                OPC_MoveChild2,
/*198496*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*198499*/                OPC_MoveParent,
/*198500*/                OPC_CheckType, MVT::v2i64,
/*198502*/                OPC_MoveParent,
/*198503*/                OPC_MoveParent,
/*198504*/                OPC_RecordChild2, // #5 = $src0
/*198505*/                OPC_CheckType, MVT::v4i32,
/*198507*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*198509*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*198512*/                OPC_EmitMergeInputChains1_2,
/*198513*/                OPC_EmitNodeXForm, 14, 4, // ValignqImm32XForm
/*198516*/                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, (bitconvert:{ *:[v4i32] } (X86VAlign:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 34
                          // Dst: (VALIGNDZ128rmik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (ValignqImm32XForm:{ *:[i8] } (timm:{ *:[i8] }):$src3))
/*198531*/              /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->198567
/*198534*/                OPC_RecordMemRef,
/*198535*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*198536*/                OPC_CheckFoldableChainNode,
/*198537*/                OPC_RecordChild1, // #2 = $src
/*198538*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*198540*/                OPC_CheckType, MVT::v2i64,
/*198542*/                OPC_MoveParent,
/*198543*/                OPC_MoveParent,
/*198544*/                OPC_MoveChild2,
/*198545*/                OPC_CheckImmAllZerosV,
/*198546*/                OPC_MoveParent,
/*198547*/                OPC_CheckType, MVT::v4i32,
/*198549*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*198551*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*198554*/                OPC_EmitMergeInputChains1_1,
/*198555*/                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] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                          // Dst: (VBROADCASTI32X2Z128mkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*198567*/              0, // EndSwitchOpcode
/*198568*/            0, /*End of Scope*/
/*198569*/          /*SwitchOpcode*/ 20|128,1/*148*/, TARGET_VAL(X86ISD::VSRLI),// ->198721
/*198573*/            OPC_MoveChild0,
/*198574*/            OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->198641
/*198578*/              OPC_RecordMemRef,
/*198579*/              OPC_RecordNode, // #1 = 'ld' chained node
/*198580*/              OPC_CheckFoldableChainNode,
/*198581*/              OPC_RecordChild1, // #2 = $src1
/*198582*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*198584*/              OPC_CheckPredicate, 9, // Predicate_load
/*198586*/              OPC_MoveParent,
/*198587*/              OPC_RecordChild1, // #3 = $src2
/*198588*/              OPC_MoveChild1,
/*198589*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*198592*/              OPC_MoveParent,
/*198593*/              OPC_MoveParent,
/*198594*/              OPC_MoveChild2,
/*198595*/              OPC_CheckImmAllZerosV,
/*198596*/              OPC_MoveParent,
/*198597*/              OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->198619
/*198600*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*198602*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*198605*/                OPC_EmitMergeInputChains1_1,
/*198606*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZ128mikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrli:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v4i32] }) - Complexity = 35
                          // Dst: (VPSRLDZ128mikz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*198619*/              /*SwitchType*/ 19, MVT::v4i64,// ->198640
/*198621*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*198623*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*198626*/                OPC_EmitMergeInputChains1_1,
/*198627*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZ256mikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrli:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v4i64] }) - Complexity = 35
                          // Dst: (VPSRLQZ256mikz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*198640*/              0, // EndSwitchType
/*198641*/            /*SwitchOpcode*/ 76, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->198720
/*198644*/              OPC_RecordMemRef,
/*198645*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*198646*/              OPC_CheckFoldableChainNode,
/*198647*/              OPC_RecordChild1, // #2 = $src1
/*198648*/              OPC_Scope, 34, /*->198684*/ // 2 children in Scope
/*198650*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*198652*/                OPC_MoveParent,
/*198653*/                OPC_RecordChild1, // #3 = $src2
/*198654*/                OPC_MoveChild1,
/*198655*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*198658*/                OPC_MoveParent,
/*198659*/                OPC_MoveParent,
/*198660*/                OPC_MoveChild2,
/*198661*/                OPC_CheckImmAllZerosV,
/*198662*/                OPC_MoveParent,
/*198663*/                OPC_CheckType, MVT::v4i32,
/*198665*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*198667*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*198670*/                OPC_EmitMergeInputChains1_1,
/*198671*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZ128mbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrli:{ *:[v4i32] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v4i32] }) - Complexity = 35
                          // Dst: (VPSRLDZ128mbikz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*198684*/              /*Scope*/ 34, /*->198719*/
/*198685*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*198687*/                OPC_MoveParent,
/*198688*/                OPC_RecordChild1, // #3 = $src2
/*198689*/                OPC_MoveChild1,
/*198690*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*198693*/                OPC_MoveParent,
/*198694*/                OPC_MoveParent,
/*198695*/                OPC_MoveChild2,
/*198696*/                OPC_CheckImmAllZerosV,
/*198697*/                OPC_MoveParent,
/*198698*/                OPC_CheckType, MVT::v4i64,
/*198700*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*198702*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*198705*/                OPC_EmitMergeInputChains1_1,
/*198706*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZ256mbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrli:{ *:[v4i64] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v4i64] }) - Complexity = 35
                          // Dst: (VPSRLQZ256mbikz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*198719*/              0, /*End of Scope*/
/*198720*/            0, // EndSwitchOpcode
/*198721*/          /*SwitchOpcode*/ 20|128,1/*148*/, TARGET_VAL(X86ISD::VSHLI),// ->198873
/*198725*/            OPC_MoveChild0,
/*198726*/            OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->198793
/*198730*/              OPC_RecordMemRef,
/*198731*/              OPC_RecordNode, // #1 = 'ld' chained node
/*198732*/              OPC_CheckFoldableChainNode,
/*198733*/              OPC_RecordChild1, // #2 = $src1
/*198734*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*198736*/              OPC_CheckPredicate, 9, // Predicate_load
/*198738*/              OPC_MoveParent,
/*198739*/              OPC_RecordChild1, // #3 = $src2
/*198740*/              OPC_MoveChild1,
/*198741*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*198744*/              OPC_MoveParent,
/*198745*/              OPC_MoveParent,
/*198746*/              OPC_MoveChild2,
/*198747*/              OPC_CheckImmAllZerosV,
/*198748*/              OPC_MoveParent,
/*198749*/              OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->198771
/*198752*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*198754*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*198757*/                OPC_EmitMergeInputChains1_1,
/*198758*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZ128mikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vshli:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v4i32] }) - Complexity = 35
                          // Dst: (VPSLLDZ128mikz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*198771*/              /*SwitchType*/ 19, MVT::v4i64,// ->198792
/*198773*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*198775*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*198778*/                OPC_EmitMergeInputChains1_1,
/*198779*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZ256mikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vshli:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v4i64] }) - Complexity = 35
                          // Dst: (VPSLLQZ256mikz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*198792*/              0, // EndSwitchType
/*198793*/            /*SwitchOpcode*/ 76, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->198872
/*198796*/              OPC_RecordMemRef,
/*198797*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*198798*/              OPC_CheckFoldableChainNode,
/*198799*/              OPC_RecordChild1, // #2 = $src1
/*198800*/              OPC_Scope, 34, /*->198836*/ // 2 children in Scope
/*198802*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*198804*/                OPC_MoveParent,
/*198805*/                OPC_RecordChild1, // #3 = $src2
/*198806*/                OPC_MoveChild1,
/*198807*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*198810*/                OPC_MoveParent,
/*198811*/                OPC_MoveParent,
/*198812*/                OPC_MoveChild2,
/*198813*/                OPC_CheckImmAllZerosV,
/*198814*/                OPC_MoveParent,
/*198815*/                OPC_CheckType, MVT::v4i32,
/*198817*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*198819*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*198822*/                OPC_EmitMergeInputChains1_1,
/*198823*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZ128mbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vshli:{ *:[v4i32] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v4i32] }) - Complexity = 35
                          // Dst: (VPSLLDZ128mbikz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*198836*/              /*Scope*/ 34, /*->198871*/
/*198837*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*198839*/                OPC_MoveParent,
/*198840*/                OPC_RecordChild1, // #3 = $src2
/*198841*/                OPC_MoveChild1,
/*198842*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*198845*/                OPC_MoveParent,
/*198846*/                OPC_MoveParent,
/*198847*/                OPC_MoveChild2,
/*198848*/                OPC_CheckImmAllZerosV,
/*198849*/                OPC_MoveParent,
/*198850*/                OPC_CheckType, MVT::v4i64,
/*198852*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*198854*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*198857*/                OPC_EmitMergeInputChains1_1,
/*198858*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZ256mbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vshli:{ *:[v4i64] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v4i64] }) - Complexity = 35
                          // Dst: (VPSLLQZ256mbikz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*198871*/              0, /*End of Scope*/
/*198872*/            0, // EndSwitchOpcode
/*198873*/          /*SwitchOpcode*/ 20|128,1/*148*/, TARGET_VAL(X86ISD::VSRAI),// ->199025
/*198877*/            OPC_MoveChild0,
/*198878*/            OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->198945
/*198882*/              OPC_RecordMemRef,
/*198883*/              OPC_RecordNode, // #1 = 'ld' chained node
/*198884*/              OPC_CheckFoldableChainNode,
/*198885*/              OPC_RecordChild1, // #2 = $src1
/*198886*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*198888*/              OPC_CheckPredicate, 9, // Predicate_load
/*198890*/              OPC_MoveParent,
/*198891*/              OPC_RecordChild1, // #3 = $src2
/*198892*/              OPC_MoveChild1,
/*198893*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*198896*/              OPC_MoveParent,
/*198897*/              OPC_MoveParent,
/*198898*/              OPC_MoveChild2,
/*198899*/              OPC_CheckImmAllZerosV,
/*198900*/              OPC_MoveParent,
/*198901*/              OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->198923
/*198904*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*198906*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*198909*/                OPC_EmitMergeInputChains1_1,
/*198910*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZ128mikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrai:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v4i32] }) - Complexity = 35
                          // Dst: (VPSRADZ128mikz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*198923*/              /*SwitchType*/ 19, MVT::v4i64,// ->198944
/*198925*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*198927*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*198930*/                OPC_EmitMergeInputChains1_1,
/*198931*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZ256mikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrai:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v4i64] }) - Complexity = 35
                          // Dst: (VPSRAQZ256mikz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*198944*/              0, // EndSwitchType
/*198945*/            /*SwitchOpcode*/ 76, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->199024
/*198948*/              OPC_RecordMemRef,
/*198949*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*198950*/              OPC_CheckFoldableChainNode,
/*198951*/              OPC_RecordChild1, // #2 = $src1
/*198952*/              OPC_Scope, 34, /*->198988*/ // 2 children in Scope
/*198954*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*198956*/                OPC_MoveParent,
/*198957*/                OPC_RecordChild1, // #3 = $src2
/*198958*/                OPC_MoveChild1,
/*198959*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*198962*/                OPC_MoveParent,
/*198963*/                OPC_MoveParent,
/*198964*/                OPC_MoveChild2,
/*198965*/                OPC_CheckImmAllZerosV,
/*198966*/                OPC_MoveParent,
/*198967*/                OPC_CheckType, MVT::v4i32,
/*198969*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*198971*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*198974*/                OPC_EmitMergeInputChains1_1,
/*198975*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZ128mbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrai:{ *:[v4i32] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v4i32] }) - Complexity = 35
                          // Dst: (VPSRADZ128mbikz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*198988*/              /*Scope*/ 34, /*->199023*/
/*198989*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*198991*/                OPC_MoveParent,
/*198992*/                OPC_RecordChild1, // #3 = $src2
/*198993*/                OPC_MoveChild1,
/*198994*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*198997*/                OPC_MoveParent,
/*198998*/                OPC_MoveParent,
/*198999*/                OPC_MoveChild2,
/*199000*/                OPC_CheckImmAllZerosV,
/*199001*/                OPC_MoveParent,
/*199002*/                OPC_CheckType, MVT::v4i64,
/*199004*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*199006*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*199009*/                OPC_EmitMergeInputChains1_1,
/*199010*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZ256mbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrai:{ *:[v4i64] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v4i64] }) - Complexity = 35
                          // Dst: (VPSRAQZ256mbikz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*199023*/              0, /*End of Scope*/
/*199024*/            0, // EndSwitchOpcode
/*199025*/          /*SwitchOpcode*/ 20|128,1/*148*/, TARGET_VAL(X86ISD::VROTRI),// ->199177
/*199029*/            OPC_MoveChild0,
/*199030*/            OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->199097
/*199034*/              OPC_RecordMemRef,
/*199035*/              OPC_RecordNode, // #1 = 'ld' chained node
/*199036*/              OPC_CheckFoldableChainNode,
/*199037*/              OPC_RecordChild1, // #2 = $src1
/*199038*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*199040*/              OPC_CheckPredicate, 9, // Predicate_load
/*199042*/              OPC_MoveParent,
/*199043*/              OPC_RecordChild1, // #3 = $src2
/*199044*/              OPC_MoveChild1,
/*199045*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*199048*/              OPC_MoveParent,
/*199049*/              OPC_MoveParent,
/*199050*/              OPC_MoveChild2,
/*199051*/              OPC_CheckImmAllZerosV,
/*199052*/              OPC_MoveParent,
/*199053*/              OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->199075
/*199056*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*199058*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*199061*/                OPC_EmitMergeInputChains1_1,
/*199062*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORDZ128mikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vrotri:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v4i32] }) - Complexity = 35
                          // Dst: (VPRORDZ128mikz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*199075*/              /*SwitchType*/ 19, MVT::v4i64,// ->199096
/*199077*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*199079*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*199082*/                OPC_EmitMergeInputChains1_1,
/*199083*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORQZ256mikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vrotri:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v4i64] }) - Complexity = 35
                          // Dst: (VPRORQZ256mikz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*199096*/              0, // EndSwitchType
/*199097*/            /*SwitchOpcode*/ 76, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->199176
/*199100*/              OPC_RecordMemRef,
/*199101*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*199102*/              OPC_CheckFoldableChainNode,
/*199103*/              OPC_RecordChild1, // #2 = $src1
/*199104*/              OPC_Scope, 34, /*->199140*/ // 2 children in Scope
/*199106*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*199108*/                OPC_MoveParent,
/*199109*/                OPC_RecordChild1, // #3 = $src2
/*199110*/                OPC_MoveChild1,
/*199111*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*199114*/                OPC_MoveParent,
/*199115*/                OPC_MoveParent,
/*199116*/                OPC_MoveChild2,
/*199117*/                OPC_CheckImmAllZerosV,
/*199118*/                OPC_MoveParent,
/*199119*/                OPC_CheckType, MVT::v4i32,
/*199121*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*199123*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*199126*/                OPC_EmitMergeInputChains1_1,
/*199127*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORDZ128mbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vrotri:{ *:[v4i32] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v4i32] }) - Complexity = 35
                          // Dst: (VPRORDZ128mbikz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*199140*/              /*Scope*/ 34, /*->199175*/
/*199141*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*199143*/                OPC_MoveParent,
/*199144*/                OPC_RecordChild1, // #3 = $src2
/*199145*/                OPC_MoveChild1,
/*199146*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*199149*/                OPC_MoveParent,
/*199150*/                OPC_MoveParent,
/*199151*/                OPC_MoveChild2,
/*199152*/                OPC_CheckImmAllZerosV,
/*199153*/                OPC_MoveParent,
/*199154*/                OPC_CheckType, MVT::v4i64,
/*199156*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*199158*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*199161*/                OPC_EmitMergeInputChains1_1,
/*199162*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORQZ256mbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vrotri:{ *:[v4i64] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v4i64] }) - Complexity = 35
                          // Dst: (VPRORQZ256mbikz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*199175*/              0, /*End of Scope*/
/*199176*/            0, // EndSwitchOpcode
/*199177*/          /*SwitchOpcode*/ 20|128,1/*148*/, TARGET_VAL(X86ISD::VROTLI),// ->199329
/*199181*/            OPC_MoveChild0,
/*199182*/            OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->199249
/*199186*/              OPC_RecordMemRef,
/*199187*/              OPC_RecordNode, // #1 = 'ld' chained node
/*199188*/              OPC_CheckFoldableChainNode,
/*199189*/              OPC_RecordChild1, // #2 = $src1
/*199190*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*199192*/              OPC_CheckPredicate, 9, // Predicate_load
/*199194*/              OPC_MoveParent,
/*199195*/              OPC_RecordChild1, // #3 = $src2
/*199196*/              OPC_MoveChild1,
/*199197*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*199200*/              OPC_MoveParent,
/*199201*/              OPC_MoveParent,
/*199202*/              OPC_MoveChild2,
/*199203*/              OPC_CheckImmAllZerosV,
/*199204*/              OPC_MoveParent,
/*199205*/              OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->199227
/*199208*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*199210*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*199213*/                OPC_EmitMergeInputChains1_1,
/*199214*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLDZ128mikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vrotli:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v4i32] }) - Complexity = 35
                          // Dst: (VPROLDZ128mikz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*199227*/              /*SwitchType*/ 19, MVT::v4i64,// ->199248
/*199229*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*199231*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*199234*/                OPC_EmitMergeInputChains1_1,
/*199235*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLQZ256mikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vrotli:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v4i64] }) - Complexity = 35
                          // Dst: (VPROLQZ256mikz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*199248*/              0, // EndSwitchType
/*199249*/            /*SwitchOpcode*/ 76, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->199328
/*199252*/              OPC_RecordMemRef,
/*199253*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*199254*/              OPC_CheckFoldableChainNode,
/*199255*/              OPC_RecordChild1, // #2 = $src1
/*199256*/              OPC_Scope, 34, /*->199292*/ // 2 children in Scope
/*199258*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*199260*/                OPC_MoveParent,
/*199261*/                OPC_RecordChild1, // #3 = $src2
/*199262*/                OPC_MoveChild1,
/*199263*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*199266*/                OPC_MoveParent,
/*199267*/                OPC_MoveParent,
/*199268*/                OPC_MoveChild2,
/*199269*/                OPC_CheckImmAllZerosV,
/*199270*/                OPC_MoveParent,
/*199271*/                OPC_CheckType, MVT::v4i32,
/*199273*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*199275*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*199278*/                OPC_EmitMergeInputChains1_1,
/*199279*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLDZ128mbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vrotli:{ *:[v4i32] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v4i32] }) - Complexity = 35
                          // Dst: (VPROLDZ128mbikz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*199292*/              /*Scope*/ 34, /*->199327*/
/*199293*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*199295*/                OPC_MoveParent,
/*199296*/                OPC_RecordChild1, // #3 = $src2
/*199297*/                OPC_MoveChild1,
/*199298*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*199301*/                OPC_MoveParent,
/*199302*/                OPC_MoveParent,
/*199303*/                OPC_MoveChild2,
/*199304*/                OPC_CheckImmAllZerosV,
/*199305*/                OPC_MoveParent,
/*199306*/                OPC_CheckType, MVT::v4i64,
/*199308*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*199310*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*199313*/                OPC_EmitMergeInputChains1_1,
/*199314*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLQZ256mbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vrotli:{ *:[v4i64] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v4i64] }) - Complexity = 35
                          // Dst: (VPROLQZ256mbikz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*199327*/              0, /*End of Scope*/
/*199328*/            0, // EndSwitchOpcode
/*199329*/          /*SwitchOpcode*/ 87, TARGET_VAL(X86ISD::VPERMI),// ->199419
/*199332*/            OPC_MoveChild0,
/*199333*/            OPC_SwitchOpcode /*2 cases */, 40, TARGET_VAL(ISD::LOAD),// ->199377
/*199337*/              OPC_RecordMemRef,
/*199338*/              OPC_RecordNode, // #1 = 'ld' chained node
/*199339*/              OPC_CheckFoldableChainNode,
/*199340*/              OPC_RecordChild1, // #2 = $src1
/*199341*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*199343*/              OPC_CheckPredicate, 9, // Predicate_load
/*199345*/              OPC_MoveParent,
/*199346*/              OPC_RecordChild1, // #3 = $src2
/*199347*/              OPC_MoveChild1,
/*199348*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*199351*/              OPC_MoveParent,
/*199352*/              OPC_MoveParent,
/*199353*/              OPC_MoveChild2,
/*199354*/              OPC_CheckImmAllZerosV,
/*199355*/              OPC_MoveParent,
/*199356*/              OPC_CheckType, MVT::v4i64,
/*199358*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*199360*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*199363*/              OPC_EmitMergeInputChains1_1,
/*199364*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMQZ256mikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermi:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v4i64] }) - Complexity = 35
                        // Dst: (VPERMQZ256mikz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*199377*/            /*SwitchOpcode*/ 38, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->199418
/*199380*/              OPC_RecordMemRef,
/*199381*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*199382*/              OPC_CheckFoldableChainNode,
/*199383*/              OPC_RecordChild1, // #2 = $src1
/*199384*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*199386*/              OPC_MoveParent,
/*199387*/              OPC_RecordChild1, // #3 = $src2
/*199388*/              OPC_MoveChild1,
/*199389*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*199392*/              OPC_MoveParent,
/*199393*/              OPC_MoveParent,
/*199394*/              OPC_MoveChild2,
/*199395*/              OPC_CheckImmAllZerosV,
/*199396*/              OPC_MoveParent,
/*199397*/              OPC_CheckType, MVT::v4i64,
/*199399*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*199401*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*199404*/              OPC_EmitMergeInputChains1_1,
/*199405*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMQZ256mbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermi:{ *:[v4i64] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v4i64] }) - Complexity = 35
                        // Dst: (VPERMQZ256mbikz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*199418*/            0, // EndSwitchOpcode
/*199419*/          /*SwitchOpcode*/ 87, TARGET_VAL(X86ISD::PSHUFD),// ->199509
/*199422*/            OPC_MoveChild0,
/*199423*/            OPC_SwitchOpcode /*2 cases */, 40, TARGET_VAL(ISD::LOAD),// ->199467
/*199427*/              OPC_RecordMemRef,
/*199428*/              OPC_RecordNode, // #1 = 'ld' chained node
/*199429*/              OPC_CheckFoldableChainNode,
/*199430*/              OPC_RecordChild1, // #2 = $src1
/*199431*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*199433*/              OPC_CheckPredicate, 9, // Predicate_load
/*199435*/              OPC_MoveParent,
/*199436*/              OPC_RecordChild1, // #3 = $src2
/*199437*/              OPC_MoveChild1,
/*199438*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*199441*/              OPC_MoveParent,
/*199442*/              OPC_MoveParent,
/*199443*/              OPC_MoveChild2,
/*199444*/              OPC_CheckImmAllZerosV,
/*199445*/              OPC_MoveParent,
/*199446*/              OPC_CheckType, MVT::v4i32,
/*199448*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*199450*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*199453*/              OPC_EmitMergeInputChains1_1,
/*199454*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFDZ128mikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86PShufd:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v4i32] }) - Complexity = 35
                        // Dst: (VPSHUFDZ128mikz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*199467*/            /*SwitchOpcode*/ 38, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->199508
/*199470*/              OPC_RecordMemRef,
/*199471*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*199472*/              OPC_CheckFoldableChainNode,
/*199473*/              OPC_RecordChild1, // #2 = $src1
/*199474*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*199476*/              OPC_MoveParent,
/*199477*/              OPC_RecordChild1, // #3 = $src2
/*199478*/              OPC_MoveChild1,
/*199479*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*199482*/              OPC_MoveParent,
/*199483*/              OPC_MoveParent,
/*199484*/              OPC_MoveChild2,
/*199485*/              OPC_CheckImmAllZerosV,
/*199486*/              OPC_MoveParent,
/*199487*/              OPC_CheckType, MVT::v4i32,
/*199489*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*199491*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*199494*/              OPC_EmitMergeInputChains1_1,
/*199495*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFDZ128mbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86PShufd:{ *:[v4i32] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v4i32] }) - Complexity = 35
                        // Dst: (VPSHUFDZ128mbikz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*199508*/            0, // EndSwitchOpcode
/*199509*/          /*SwitchOpcode*/ 90, TARGET_VAL(X86ISD::SHUF128),// ->199602
/*199512*/            OPC_RecordChild0, // #1 = $src1
/*199513*/            OPC_MoveChild1,
/*199514*/            OPC_SwitchOpcode /*2 cases */, 41, TARGET_VAL(ISD::LOAD),// ->199559
/*199518*/              OPC_RecordMemRef,
/*199519*/              OPC_RecordNode, // #2 = 'ld' chained node
/*199520*/              OPC_CheckFoldableChainNode,
/*199521*/              OPC_RecordChild1, // #3 = $src2
/*199522*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*199524*/              OPC_CheckPredicate, 9, // Predicate_load
/*199526*/              OPC_MoveParent,
/*199527*/              OPC_RecordChild2, // #4 = $src3
/*199528*/              OPC_MoveChild2,
/*199529*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*199532*/              OPC_MoveParent,
/*199533*/              OPC_MoveParent,
/*199534*/              OPC_MoveChild2,
/*199535*/              OPC_CheckImmAllZerosV,
/*199536*/              OPC_MoveParent,
/*199537*/              OPC_CheckType, MVT::v4i64,
/*199539*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*199541*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*199544*/              OPC_EmitMergeInputChains1_2,
/*199545*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI64X2Z256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86Shuf128:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v4i64] }) - Complexity = 35
                        // Dst: (VSHUFI64X2Z256rmikz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*199559*/            /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->199601
/*199562*/              OPC_RecordMemRef,
/*199563*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*199564*/              OPC_CheckFoldableChainNode,
/*199565*/              OPC_RecordChild1, // #3 = $src2
/*199566*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*199568*/              OPC_MoveParent,
/*199569*/              OPC_RecordChild2, // #4 = $src3
/*199570*/              OPC_MoveChild2,
/*199571*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*199574*/              OPC_MoveParent,
/*199575*/              OPC_MoveParent,
/*199576*/              OPC_MoveChild2,
/*199577*/              OPC_CheckImmAllZerosV,
/*199578*/              OPC_MoveParent,
/*199579*/              OPC_CheckType, MVT::v4i64,
/*199581*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*199583*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*199586*/              OPC_EmitMergeInputChains1_2,
/*199587*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI64X2Z256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86Shuf128:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v4i64] }) - Complexity = 35
                        // Dst: (VSHUFI64X2Z256rmbikz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*199601*/            0, // EndSwitchOpcode
/*199602*/          /*SwitchOpcode*/ 25|128,1/*153*/, TARGET_VAL(X86ISD::VALIGN),// ->199759
/*199606*/            OPC_RecordChild0, // #1 = $src1
/*199607*/            OPC_MoveChild1,
/*199608*/            OPC_SwitchOpcode /*2 cases */, 65, TARGET_VAL(ISD::LOAD),// ->199677
/*199612*/              OPC_RecordMemRef,
/*199613*/              OPC_RecordNode, // #2 = 'ld' chained node
/*199614*/              OPC_CheckFoldableChainNode,
/*199615*/              OPC_RecordChild1, // #3 = $src2
/*199616*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*199618*/              OPC_CheckPredicate, 9, // Predicate_load
/*199620*/              OPC_MoveParent,
/*199621*/              OPC_RecordChild2, // #4 = $src3
/*199622*/              OPC_MoveChild2,
/*199623*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*199626*/              OPC_MoveParent,
/*199627*/              OPC_MoveParent,
/*199628*/              OPC_MoveChild2,
/*199629*/              OPC_CheckImmAllZerosV,
/*199630*/              OPC_MoveParent,
/*199631*/              OPC_SwitchType /*2 cases */, 20, MVT::v4i32,// ->199654
/*199634*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*199636*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*199639*/                OPC_EmitMergeInputChains1_2,
/*199640*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86VAlign:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v4i32] }) - Complexity = 35
                          // Dst: (VALIGNDZ128rmikz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*199654*/              /*SwitchType*/ 20, MVT::v4i64,// ->199676
/*199656*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*199658*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*199661*/                OPC_EmitMergeInputChains1_2,
/*199662*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNQZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VAlign:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v4i64] }) - Complexity = 35
                          // Dst: (VALIGNQZ256rmikz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*199676*/              0, // EndSwitchType
/*199677*/            /*SwitchOpcode*/ 78, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->199758
/*199680*/              OPC_RecordMemRef,
/*199681*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*199682*/              OPC_CheckFoldableChainNode,
/*199683*/              OPC_RecordChild1, // #3 = $src2
/*199684*/              OPC_Scope, 35, /*->199721*/ // 2 children in Scope
/*199686*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*199688*/                OPC_MoveParent,
/*199689*/                OPC_RecordChild2, // #4 = $src3
/*199690*/                OPC_MoveChild2,
/*199691*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*199694*/                OPC_MoveParent,
/*199695*/                OPC_MoveParent,
/*199696*/                OPC_MoveChild2,
/*199697*/                OPC_CheckImmAllZerosV,
/*199698*/                OPC_MoveParent,
/*199699*/                OPC_CheckType, MVT::v4i32,
/*199701*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*199703*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*199706*/                OPC_EmitMergeInputChains1_2,
/*199707*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZ128rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86VAlign:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v4i32] }) - Complexity = 35
                          // Dst: (VALIGNDZ128rmbikz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*199721*/              /*Scope*/ 35, /*->199757*/
/*199722*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*199724*/                OPC_MoveParent,
/*199725*/                OPC_RecordChild2, // #4 = $src3
/*199726*/                OPC_MoveChild2,
/*199727*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*199730*/                OPC_MoveParent,
/*199731*/                OPC_MoveParent,
/*199732*/                OPC_MoveChild2,
/*199733*/                OPC_CheckImmAllZerosV,
/*199734*/                OPC_MoveParent,
/*199735*/                OPC_CheckType, MVT::v4i64,
/*199737*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*199739*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*199742*/                OPC_EmitMergeInputChains1_2,
/*199743*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNQZ256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VAlign:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v4i64] }) - Complexity = 35
                          // Dst: (VALIGNQZ256rmbikz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*199757*/              0, /*End of Scope*/
/*199758*/            0, // EndSwitchOpcode
/*199759*/          /*SwitchOpcode*/ 97|128,4/*609*/, TARGET_VAL(X86ISD::VPTERNLOG),// ->200372
/*199763*/            OPC_Scope, 97, /*->199862*/ // 9 children in Scope
/*199765*/              OPC_RecordChild0, // #1 = $src1
/*199766*/              OPC_RecordChild1, // #2 = $src2
/*199767*/              OPC_MoveChild2,
/*199768*/              OPC_SwitchOpcode /*2 cases */, 44, TARGET_VAL(ISD::LOAD),// ->199816
/*199772*/                OPC_RecordMemRef,
/*199773*/                OPC_RecordNode, // #3 = 'ld' chained node
/*199774*/                OPC_CheckFoldableChainNode,
/*199775*/                OPC_RecordChild1, // #4 = $src3
/*199776*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*199778*/                OPC_CheckPredicate, 9, // Predicate_load
/*199780*/                OPC_MoveParent,
/*199781*/                OPC_RecordChild3, // #5 = $src4
/*199782*/                OPC_MoveChild3,
/*199783*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*199786*/                OPC_MoveParent,
/*199787*/                OPC_MoveParent,
/*199788*/                OPC_MoveChild2,
/*199789*/                OPC_CheckImmAllZerosV,
/*199790*/                OPC_MoveParent,
/*199791*/                OPC_CheckType, MVT::v4i32,
/*199793*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*199795*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*199798*/                OPC_EmitMergeInputChains, 1, 3, 
/*199801*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 5, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src4), immAllZerosV:{ *:[v4i32] }) - Complexity = 35
                          // Dst: (VPTERNLOGDZ128rmikz:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i8] }):$src4)
/*199816*/              /*SwitchOpcode*/ 42, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->199861
/*199819*/                OPC_RecordMemRef,
/*199820*/                OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*199821*/                OPC_CheckFoldableChainNode,
/*199822*/                OPC_RecordChild1, // #4 = $src3
/*199823*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*199825*/                OPC_MoveParent,
/*199826*/                OPC_RecordChild3, // #5 = $src4
/*199827*/                OPC_MoveChild3,
/*199828*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*199831*/                OPC_MoveParent,
/*199832*/                OPC_MoveParent,
/*199833*/                OPC_MoveChild2,
/*199834*/                OPC_CheckImmAllZerosV,
/*199835*/                OPC_MoveParent,
/*199836*/                OPC_CheckType, MVT::v4i32,
/*199838*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*199840*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*199843*/                OPC_EmitMergeInputChains, 1, 3, 
/*199846*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ128rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 5, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src4), immAllZerosV:{ *:[v4i32] }) - Complexity = 35
                          // Dst: (VPTERNLOGDZ128rmbikz:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i8] }):$src4)
/*199861*/              0, // EndSwitchOpcode
/*199862*/            /*Scope*/ 51, /*->199914*/
/*199863*/              OPC_MoveChild0,
/*199864*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*199867*/              OPC_RecordMemRef,
/*199868*/              OPC_RecordNode, // #1 = 'ld' chained node
/*199869*/              OPC_CheckFoldableChainNode,
/*199870*/              OPC_RecordChild1, // #2 = $src3
/*199871*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*199873*/              OPC_CheckPredicate, 9, // Predicate_load
/*199875*/              OPC_MoveParent,
/*199876*/              OPC_RecordChild1, // #3 = $src2
/*199877*/              OPC_RecordChild2, // #4 = $src1
/*199878*/              OPC_RecordChild3, // #5 = $src4
/*199879*/              OPC_MoveChild3,
/*199880*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*199883*/              OPC_MoveParent,
/*199884*/              OPC_MoveParent,
/*199885*/              OPC_MoveChild2,
/*199886*/              OPC_CheckImmAllZerosV,
/*199887*/              OPC_MoveParent,
/*199888*/              OPC_CheckType, MVT::v4i32,
/*199890*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*199892*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*199895*/              OPC_EmitMergeInputChains1_1,
/*199896*/              OPC_EmitNodeXForm, 19, 5, // VPTERNLOG321_imm8
/*199899*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 9/*#Ops*/, 4, 0, 3, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$src4), immAllZerosV:{ *:[v4i32] }) - Complexity = 35
                        // Dst: (VPTERNLOGDZ128rmikz:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*199914*/            /*Scope*/ 51, /*->199966*/
/*199915*/              OPC_RecordChild0, // #1 = $src1
/*199916*/              OPC_MoveChild1,
/*199917*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*199920*/              OPC_RecordMemRef,
/*199921*/              OPC_RecordNode, // #2 = 'ld' chained node
/*199922*/              OPC_CheckFoldableChainNode,
/*199923*/              OPC_RecordChild1, // #3 = $src3
/*199924*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*199926*/              OPC_CheckPredicate, 9, // Predicate_load
/*199928*/              OPC_MoveParent,
/*199929*/              OPC_RecordChild2, // #4 = $src2
/*199930*/              OPC_RecordChild3, // #5 = $src4
/*199931*/              OPC_MoveChild3,
/*199932*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*199935*/              OPC_MoveParent,
/*199936*/              OPC_MoveParent,
/*199937*/              OPC_MoveChild2,
/*199938*/              OPC_CheckImmAllZerosV,
/*199939*/              OPC_MoveParent,
/*199940*/              OPC_CheckType, MVT::v4i32,
/*199942*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*199944*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*199947*/              OPC_EmitMergeInputChains1_2,
/*199948*/              OPC_EmitNodeXForm, 20, 5, // VPTERNLOG132_imm8
/*199951*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 9/*#Ops*/, 1, 0, 4, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4i32] }:$src2, (timm:{ *:[i8] }):$src4), immAllZerosV:{ *:[v4i32] }) - Complexity = 35
                        // Dst: (VPTERNLOGDZ128rmikz:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*199966*/            /*Scope*/ 49, /*->200016*/
/*199967*/              OPC_MoveChild0,
/*199968*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*199971*/              OPC_RecordMemRef,
/*199972*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*199973*/              OPC_CheckFoldableChainNode,
/*199974*/              OPC_RecordChild1, // #2 = $src3
/*199975*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*199977*/              OPC_MoveParent,
/*199978*/              OPC_RecordChild1, // #3 = $src2
/*199979*/              OPC_RecordChild2, // #4 = $src1
/*199980*/              OPC_RecordChild3, // #5 = $src4
/*199981*/              OPC_MoveChild3,
/*199982*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*199985*/              OPC_MoveParent,
/*199986*/              OPC_MoveParent,
/*199987*/              OPC_MoveChild2,
/*199988*/              OPC_CheckImmAllZerosV,
/*199989*/              OPC_MoveParent,
/*199990*/              OPC_CheckType, MVT::v4i32,
/*199992*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*199994*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*199997*/              OPC_EmitMergeInputChains1_1,
/*199998*/              OPC_EmitNodeXForm, 19, 5, // VPTERNLOG321_imm8
/*200001*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ128rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 9/*#Ops*/, 4, 0, 3, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i32] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$src4), immAllZerosV:{ *:[v4i32] }) - Complexity = 35
                        // Dst: (VPTERNLOGDZ128rmbikz:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*200016*/            /*Scope*/ 21|128,1/*149*/, /*->200167*/
/*200018*/              OPC_RecordChild0, // #1 = $src1
/*200019*/              OPC_Scope, 48, /*->200069*/ // 2 children in Scope
/*200021*/                OPC_MoveChild1,
/*200022*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*200025*/                OPC_RecordMemRef,
/*200026*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*200027*/                OPC_CheckFoldableChainNode,
/*200028*/                OPC_RecordChild1, // #3 = $src3
/*200029*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*200031*/                OPC_MoveParent,
/*200032*/                OPC_RecordChild2, // #4 = $src2
/*200033*/                OPC_RecordChild3, // #5 = $src4
/*200034*/                OPC_MoveChild3,
/*200035*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*200038*/                OPC_MoveParent,
/*200039*/                OPC_MoveParent,
/*200040*/                OPC_MoveChild2,
/*200041*/                OPC_CheckImmAllZerosV,
/*200042*/                OPC_MoveParent,
/*200043*/                OPC_CheckType, MVT::v4i32,
/*200045*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*200047*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*200050*/                OPC_EmitMergeInputChains1_2,
/*200051*/                OPC_EmitNodeXForm, 20, 5, // VPTERNLOG132_imm8
/*200054*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ128rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 9/*#Ops*/, 1, 0, 4, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4i32] }:$src2, (timm:{ *:[i8] }):$src4), immAllZerosV:{ *:[v4i32] }) - Complexity = 35
                          // Dst: (VPTERNLOGDZ128rmbikz:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*200069*/              /*Scope*/ 96, /*->200166*/
/*200070*/                OPC_RecordChild1, // #2 = $src2
/*200071*/                OPC_MoveChild2,
/*200072*/                OPC_SwitchOpcode /*2 cases */, 44, TARGET_VAL(ISD::LOAD),// ->200120
/*200076*/                  OPC_RecordMemRef,
/*200077*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*200078*/                  OPC_CheckFoldableChainNode,
/*200079*/                  OPC_RecordChild1, // #4 = $src3
/*200080*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*200082*/                  OPC_CheckPredicate, 9, // Predicate_load
/*200084*/                  OPC_MoveParent,
/*200085*/                  OPC_RecordChild3, // #5 = $src4
/*200086*/                  OPC_MoveChild3,
/*200087*/                  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*200090*/                  OPC_MoveParent,
/*200091*/                  OPC_MoveParent,
/*200092*/                  OPC_MoveChild2,
/*200093*/                  OPC_CheckImmAllZerosV,
/*200094*/                  OPC_MoveParent,
/*200095*/                  OPC_CheckType, MVT::v4i64,
/*200097*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*200099*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*200102*/                  OPC_EmitMergeInputChains, 1, 3, 
/*200105*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i64, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 5, 
                            // 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>>, (timm:{ *:[i8] }):$src4), immAllZerosV:{ *:[v4i64] }) - Complexity = 35
                            // Dst: (VPTERNLOGQZ256rmikz:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i8] }):$src4)
/*200120*/                /*SwitchOpcode*/ 42, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->200165
/*200123*/                  OPC_RecordMemRef,
/*200124*/                  OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*200125*/                  OPC_CheckFoldableChainNode,
/*200126*/                  OPC_RecordChild1, // #4 = $src3
/*200127*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*200129*/                  OPC_MoveParent,
/*200130*/                  OPC_RecordChild3, // #5 = $src4
/*200131*/                  OPC_MoveChild3,
/*200132*/                  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*200135*/                  OPC_MoveParent,
/*200136*/                  OPC_MoveParent,
/*200137*/                  OPC_MoveChild2,
/*200138*/                  OPC_CheckImmAllZerosV,
/*200139*/                  OPC_MoveParent,
/*200140*/                  OPC_CheckType, MVT::v4i64,
/*200142*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*200144*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*200147*/                  OPC_EmitMergeInputChains, 1, 3, 
/*200150*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i64, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 5, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src4), immAllZerosV:{ *:[v4i64] }) - Complexity = 35
                            // Dst: (VPTERNLOGQZ256rmbikz:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i8] }):$src4)
/*200165*/                0, // EndSwitchOpcode
/*200166*/              0, /*End of Scope*/
/*200167*/            /*Scope*/ 51, /*->200219*/
/*200168*/              OPC_MoveChild0,
/*200169*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*200172*/              OPC_RecordMemRef,
/*200173*/              OPC_RecordNode, // #1 = 'ld' chained node
/*200174*/              OPC_CheckFoldableChainNode,
/*200175*/              OPC_RecordChild1, // #2 = $src3
/*200176*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*200178*/              OPC_CheckPredicate, 9, // Predicate_load
/*200180*/              OPC_MoveParent,
/*200181*/              OPC_RecordChild1, // #3 = $src2
/*200182*/              OPC_RecordChild2, // #4 = $src1
/*200183*/              OPC_RecordChild3, // #5 = $src4
/*200184*/              OPC_MoveChild3,
/*200185*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*200188*/              OPC_MoveParent,
/*200189*/              OPC_MoveParent,
/*200190*/              OPC_MoveChild2,
/*200191*/              OPC_CheckImmAllZerosV,
/*200192*/              OPC_MoveParent,
/*200193*/              OPC_CheckType, MVT::v4i64,
/*200195*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*200197*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*200200*/              OPC_EmitMergeInputChains1_1,
/*200201*/              OPC_EmitNodeXForm, 19, 5, // VPTERNLOG321_imm8
/*200204*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 9/*#Ops*/, 4, 0, 3, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src1, (timm:{ *:[i8] }):$src4), immAllZerosV:{ *:[v4i64] }) - Complexity = 35
                        // Dst: (VPTERNLOGQZ256rmikz:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*200219*/            /*Scope*/ 51, /*->200271*/
/*200220*/              OPC_RecordChild0, // #1 = $src1
/*200221*/              OPC_MoveChild1,
/*200222*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*200225*/              OPC_RecordMemRef,
/*200226*/              OPC_RecordNode, // #2 = 'ld' chained node
/*200227*/              OPC_CheckFoldableChainNode,
/*200228*/              OPC_RecordChild1, // #3 = $src3
/*200229*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*200231*/              OPC_CheckPredicate, 9, // Predicate_load
/*200233*/              OPC_MoveParent,
/*200234*/              OPC_RecordChild2, // #4 = $src2
/*200235*/              OPC_RecordChild3, // #5 = $src4
/*200236*/              OPC_MoveChild3,
/*200237*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*200240*/              OPC_MoveParent,
/*200241*/              OPC_MoveParent,
/*200242*/              OPC_MoveChild2,
/*200243*/              OPC_CheckImmAllZerosV,
/*200244*/              OPC_MoveParent,
/*200245*/              OPC_CheckType, MVT::v4i64,
/*200247*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*200249*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*200252*/              OPC_EmitMergeInputChains1_2,
/*200253*/              OPC_EmitNodeXForm, 20, 5, // VPTERNLOG132_imm8
/*200256*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 9/*#Ops*/, 1, 0, 4, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v4i64] }:$src2, (timm:{ *:[i8] }):$src4), immAllZerosV:{ *:[v4i64] }) - Complexity = 35
                        // Dst: (VPTERNLOGQZ256rmikz:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*200271*/            /*Scope*/ 49, /*->200321*/
/*200272*/              OPC_MoveChild0,
/*200273*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*200276*/              OPC_RecordMemRef,
/*200277*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*200278*/              OPC_CheckFoldableChainNode,
/*200279*/              OPC_RecordChild1, // #2 = $src3
/*200280*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*200282*/              OPC_MoveParent,
/*200283*/              OPC_RecordChild1, // #3 = $src2
/*200284*/              OPC_RecordChild2, // #4 = $src1
/*200285*/              OPC_RecordChild3, // #5 = $src4
/*200286*/              OPC_MoveChild3,
/*200287*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*200290*/              OPC_MoveParent,
/*200291*/              OPC_MoveParent,
/*200292*/              OPC_MoveChild2,
/*200293*/              OPC_CheckImmAllZerosV,
/*200294*/              OPC_MoveParent,
/*200295*/              OPC_CheckType, MVT::v4i64,
/*200297*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*200299*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*200302*/              OPC_EmitMergeInputChains1_1,
/*200303*/              OPC_EmitNodeXForm, 19, 5, // VPTERNLOG321_imm8
/*200306*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 9/*#Ops*/, 4, 0, 3, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i64] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src1, (timm:{ *:[i8] }):$src4), immAllZerosV:{ *:[v4i64] }) - Complexity = 35
                        // Dst: (VPTERNLOGQZ256rmbikz:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*200321*/            /*Scope*/ 49, /*->200371*/
/*200322*/              OPC_RecordChild0, // #1 = $src1
/*200323*/              OPC_MoveChild1,
/*200324*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*200327*/              OPC_RecordMemRef,
/*200328*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*200329*/              OPC_CheckFoldableChainNode,
/*200330*/              OPC_RecordChild1, // #3 = $src3
/*200331*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*200333*/              OPC_MoveParent,
/*200334*/              OPC_RecordChild2, // #4 = $src2
/*200335*/              OPC_RecordChild3, // #5 = $src4
/*200336*/              OPC_MoveChild3,
/*200337*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*200340*/              OPC_MoveParent,
/*200341*/              OPC_MoveParent,
/*200342*/              OPC_MoveChild2,
/*200343*/              OPC_CheckImmAllZerosV,
/*200344*/              OPC_MoveParent,
/*200345*/              OPC_CheckType, MVT::v4i64,
/*200347*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*200349*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*200352*/              OPC_EmitMergeInputChains1_2,
/*200353*/              OPC_EmitNodeXForm, 20, 5, // VPTERNLOG132_imm8
/*200356*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 9/*#Ops*/, 1, 0, 4, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src2, (timm:{ *:[i8] }):$src4), immAllZerosV:{ *:[v4i64] }) - Complexity = 35
                        // Dst: (VPTERNLOGQZ256rmbikz:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*200371*/            0, /*End of Scope*/
/*200372*/          /*SwitchOpcode*/ 25|128,1/*153*/, TARGET_VAL(X86ISD::VSHLD),// ->200529
/*200376*/            OPC_RecordChild0, // #1 = $src1
/*200377*/            OPC_MoveChild1,
/*200378*/            OPC_SwitchOpcode /*2 cases */, 65, TARGET_VAL(ISD::LOAD),// ->200447
/*200382*/              OPC_RecordMemRef,
/*200383*/              OPC_RecordNode, // #2 = 'ld' chained node
/*200384*/              OPC_CheckFoldableChainNode,
/*200385*/              OPC_RecordChild1, // #3 = $src2
/*200386*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*200388*/              OPC_CheckPredicate, 9, // Predicate_load
/*200390*/              OPC_MoveParent,
/*200391*/              OPC_RecordChild2, // #4 = $src3
/*200392*/              OPC_MoveChild2,
/*200393*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*200396*/              OPC_MoveParent,
/*200397*/              OPC_MoveParent,
/*200398*/              OPC_MoveChild2,
/*200399*/              OPC_CheckImmAllZerosV,
/*200400*/              OPC_MoveParent,
/*200401*/              OPC_SwitchType /*2 cases */, 20, MVT::v4i32,// ->200424
/*200404*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*200406*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*200409*/                OPC_EmitMergeInputChains1_2,
/*200410*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDDZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86VShld:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v4i32] }) - Complexity = 35
                          // Dst: (VPSHLDDZ128rmikz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*200424*/              /*SwitchType*/ 20, MVT::v4i64,// ->200446
/*200426*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*200428*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*200431*/                OPC_EmitMergeInputChains1_2,
/*200432*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDQZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VShld:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v4i64] }) - Complexity = 35
                          // Dst: (VPSHLDQZ256rmikz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*200446*/              0, // EndSwitchType
/*200447*/            /*SwitchOpcode*/ 78, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->200528
/*200450*/              OPC_RecordMemRef,
/*200451*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*200452*/              OPC_CheckFoldableChainNode,
/*200453*/              OPC_RecordChild1, // #3 = $src2
/*200454*/              OPC_Scope, 35, /*->200491*/ // 2 children in Scope
/*200456*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*200458*/                OPC_MoveParent,
/*200459*/                OPC_RecordChild2, // #4 = $src3
/*200460*/                OPC_MoveChild2,
/*200461*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*200464*/                OPC_MoveParent,
/*200465*/                OPC_MoveParent,
/*200466*/                OPC_MoveChild2,
/*200467*/                OPC_CheckImmAllZerosV,
/*200468*/                OPC_MoveParent,
/*200469*/                OPC_CheckType, MVT::v4i32,
/*200471*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*200473*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*200476*/                OPC_EmitMergeInputChains1_2,
/*200477*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDDZ128rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86VShld:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v4i32] }) - Complexity = 35
                          // Dst: (VPSHLDDZ128rmbikz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*200491*/              /*Scope*/ 35, /*->200527*/
/*200492*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*200494*/                OPC_MoveParent,
/*200495*/                OPC_RecordChild2, // #4 = $src3
/*200496*/                OPC_MoveChild2,
/*200497*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*200500*/                OPC_MoveParent,
/*200501*/                OPC_MoveParent,
/*200502*/                OPC_MoveChild2,
/*200503*/                OPC_CheckImmAllZerosV,
/*200504*/                OPC_MoveParent,
/*200505*/                OPC_CheckType, MVT::v4i64,
/*200507*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*200509*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*200512*/                OPC_EmitMergeInputChains1_2,
/*200513*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDQZ256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VShld:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v4i64] }) - Complexity = 35
                          // Dst: (VPSHLDQZ256rmbikz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*200527*/              0, /*End of Scope*/
/*200528*/            0, // EndSwitchOpcode
/*200529*/          /*SwitchOpcode*/ 25|128,1/*153*/, TARGET_VAL(X86ISD::VSHRD),// ->200686
/*200533*/            OPC_RecordChild0, // #1 = $src1
/*200534*/            OPC_MoveChild1,
/*200535*/            OPC_SwitchOpcode /*2 cases */, 65, TARGET_VAL(ISD::LOAD),// ->200604
/*200539*/              OPC_RecordMemRef,
/*200540*/              OPC_RecordNode, // #2 = 'ld' chained node
/*200541*/              OPC_CheckFoldableChainNode,
/*200542*/              OPC_RecordChild1, // #3 = $src2
/*200543*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*200545*/              OPC_CheckPredicate, 9, // Predicate_load
/*200547*/              OPC_MoveParent,
/*200548*/              OPC_RecordChild2, // #4 = $src3
/*200549*/              OPC_MoveChild2,
/*200550*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*200553*/              OPC_MoveParent,
/*200554*/              OPC_MoveParent,
/*200555*/              OPC_MoveChild2,
/*200556*/              OPC_CheckImmAllZerosV,
/*200557*/              OPC_MoveParent,
/*200558*/              OPC_SwitchType /*2 cases */, 20, MVT::v4i32,// ->200581
/*200561*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*200563*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*200566*/                OPC_EmitMergeInputChains1_2,
/*200567*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDDZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86VShrd:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v4i32] }) - Complexity = 35
                          // Dst: (VPSHRDDZ128rmikz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*200581*/              /*SwitchType*/ 20, MVT::v4i64,// ->200603
/*200583*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*200585*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*200588*/                OPC_EmitMergeInputChains1_2,
/*200589*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDQZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VShrd:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v4i64] }) - Complexity = 35
                          // Dst: (VPSHRDQZ256rmikz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*200603*/              0, // EndSwitchType
/*200604*/            /*SwitchOpcode*/ 78, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->200685
/*200607*/              OPC_RecordMemRef,
/*200608*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*200609*/              OPC_CheckFoldableChainNode,
/*200610*/              OPC_RecordChild1, // #3 = $src2
/*200611*/              OPC_Scope, 35, /*->200648*/ // 2 children in Scope
/*200613*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*200615*/                OPC_MoveParent,
/*200616*/                OPC_RecordChild2, // #4 = $src3
/*200617*/                OPC_MoveChild2,
/*200618*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*200621*/                OPC_MoveParent,
/*200622*/                OPC_MoveParent,
/*200623*/                OPC_MoveChild2,
/*200624*/                OPC_CheckImmAllZerosV,
/*200625*/                OPC_MoveParent,
/*200626*/                OPC_CheckType, MVT::v4i32,
/*200628*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*200630*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*200633*/                OPC_EmitMergeInputChains1_2,
/*200634*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDDZ128rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86VShrd:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v4i32] }) - Complexity = 35
                          // Dst: (VPSHRDDZ128rmbikz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*200648*/              /*Scope*/ 35, /*->200684*/
/*200649*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*200651*/                OPC_MoveParent,
/*200652*/                OPC_RecordChild2, // #4 = $src3
/*200653*/                OPC_MoveChild2,
/*200654*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*200657*/                OPC_MoveParent,
/*200658*/                OPC_MoveParent,
/*200659*/                OPC_MoveChild2,
/*200660*/                OPC_CheckImmAllZerosV,
/*200661*/                OPC_MoveParent,
/*200662*/                OPC_CheckType, MVT::v4i64,
/*200664*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*200666*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*200669*/                OPC_EmitMergeInputChains1_2,
/*200670*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDQZ256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VShrd:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v4i64] }) - Complexity = 35
                          // Dst: (VPSHRDQZ256rmbikz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*200684*/              0, /*End of Scope*/
/*200685*/            0, // EndSwitchOpcode
/*200686*/          /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::SUBV_BROADCAST),// ->200726
/*200689*/            OPC_MoveChild0,
/*200690*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*200693*/            OPC_RecordMemRef,
/*200694*/            OPC_RecordNode, // #1 = 'ld' chained node
/*200695*/            OPC_CheckFoldableChainNode,
/*200696*/            OPC_RecordChild1, // #2 = $src
/*200697*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*200699*/            OPC_CheckPredicate, 9, // Predicate_load
/*200701*/            OPC_MoveParent,
/*200702*/            OPC_MoveParent,
/*200703*/            OPC_MoveChild2,
/*200704*/            OPC_CheckImmAllZerosV,
/*200705*/            OPC_MoveParent,
/*200706*/            OPC_CheckType, MVT::v4i64,
/*200708*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*200710*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*200713*/            OPC_EmitMergeInputChains1_1,
/*200714*/            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>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                      // Dst: (VBROADCASTI64X2Z128rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*200726*/          /*SwitchOpcode*/ 16|128,1/*144*/, TARGET_VAL(X86ISD::VPERMV3),// ->200874
/*200730*/            OPC_RecordChild0, // #1 = $src1
/*200731*/            OPC_RecordChild1, // #2 = $src2
/*200732*/            OPC_MoveChild2,
/*200733*/            OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->200800
/*200737*/              OPC_RecordMemRef,
/*200738*/              OPC_RecordNode, // #3 = 'ld' chained node
/*200739*/              OPC_CheckFoldableChainNode,
/*200740*/              OPC_RecordChild1, // #4 = $src3
/*200741*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*200743*/              OPC_CheckPredicate, 9, // Predicate_load
/*200745*/              OPC_MoveParent,
/*200746*/              OPC_MoveParent,
/*200747*/              OPC_MoveChild2,
/*200748*/              OPC_CheckImmAllZerosV,
/*200749*/              OPC_MoveParent,
/*200750*/              OPC_SwitchType /*2 cases */, 22, MVT::v4i32,// ->200775
/*200753*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*200755*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*200758*/                OPC_EmitMergeInputChains, 1, 3, 
/*200761*/                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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                          // Dst: (VPERMT2D128rmkz:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*200775*/              /*SwitchType*/ 22, MVT::v4i64,// ->200799
/*200777*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*200779*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*200782*/                OPC_EmitMergeInputChains, 1, 3, 
/*200785*/                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>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                          // Dst: (VPERMT2Q256rmkz:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*200799*/              0, // EndSwitchType
/*200800*/            /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->200873
/*200803*/              OPC_RecordMemRef,
/*200804*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*200805*/              OPC_CheckFoldableChainNode,
/*200806*/              OPC_RecordChild1, // #4 = $src3
/*200807*/              OPC_Scope, 31, /*->200840*/ // 2 children in Scope
/*200809*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*200811*/                OPC_MoveParent,
/*200812*/                OPC_MoveParent,
/*200813*/                OPC_MoveChild2,
/*200814*/                OPC_CheckImmAllZerosV,
/*200815*/                OPC_MoveParent,
/*200816*/                OPC_CheckType, MVT::v4i32,
/*200818*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*200820*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*200823*/                OPC_EmitMergeInputChains, 1, 3, 
/*200826*/                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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                          // Dst: (VPERMT2D128rmbkz:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*200840*/              /*Scope*/ 31, /*->200872*/
/*200841*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*200843*/                OPC_MoveParent,
/*200844*/                OPC_MoveParent,
/*200845*/                OPC_MoveChild2,
/*200846*/                OPC_CheckImmAllZerosV,
/*200847*/                OPC_MoveParent,
/*200848*/                OPC_CheckType, MVT::v4i64,
/*200850*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*200852*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*200855*/                OPC_EmitMergeInputChains, 1, 3, 
/*200858*/                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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                          // Dst: (VPERMT2Q256rmbkz:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*200872*/              0, /*End of Scope*/
/*200873*/            0, // EndSwitchOpcode
/*200874*/          /*SwitchOpcode*/ 14|128,2/*270*/, TARGET_VAL(ISD::ADD),// ->201148
/*200878*/            OPC_Scope, 3|128,1/*131*/, /*->201012*/ // 2 children in Scope
/*200881*/              OPC_RecordChild0, // #1 = $src1
/*200882*/              OPC_MoveChild1,
/*200883*/              OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->200944
/*200887*/                OPC_RecordMemRef,
/*200888*/                OPC_RecordNode, // #2 = 'ld' chained node
/*200889*/                OPC_CheckFoldableChainNode,
/*200890*/                OPC_RecordChild1, // #3 = $src2
/*200891*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*200893*/                OPC_CheckPredicate, 9, // Predicate_load
/*200895*/                OPC_MoveParent,
/*200896*/                OPC_MoveParent,
/*200897*/                OPC_MoveChild2,
/*200898*/                OPC_CheckImmAllZerosV,
/*200899*/                OPC_MoveParent,
/*200900*/                OPC_SwitchType /*2 cases */, 19, MVT::v4i64,// ->200922
/*200903*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*200905*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*200908*/                  OPC_EmitMergeInputChains1_2,
/*200909*/                  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>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                            // Dst: (VPADDQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*200922*/                /*SwitchType*/ 19, MVT::v4i32,// ->200943
/*200924*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*200926*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*200929*/                  OPC_EmitMergeInputChains1_2,
/*200930*/                  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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                            // Dst: (VPADDDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*200943*/                0, // EndSwitchType
/*200944*/              /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->201011
/*200947*/                OPC_RecordMemRef,
/*200948*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*200949*/                OPC_CheckFoldableChainNode,
/*200950*/                OPC_RecordChild1, // #3 = $src2
/*200951*/                OPC_Scope, 28, /*->200981*/ // 2 children in Scope
/*200953*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*200955*/                  OPC_MoveParent,
/*200956*/                  OPC_MoveParent,
/*200957*/                  OPC_MoveChild2,
/*200958*/                  OPC_CheckImmAllZerosV,
/*200959*/                  OPC_MoveParent,
/*200960*/                  OPC_CheckType, MVT::v4i64,
/*200962*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*200964*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*200967*/                  OPC_EmitMergeInputChains1_2,
/*200968*/                  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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                            // Dst: (VPADDQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*200981*/                /*Scope*/ 28, /*->201010*/
/*200982*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*200984*/                  OPC_MoveParent,
/*200985*/                  OPC_MoveParent,
/*200986*/                  OPC_MoveChild2,
/*200987*/                  OPC_CheckImmAllZerosV,
/*200988*/                  OPC_MoveParent,
/*200989*/                  OPC_CheckType, MVT::v4i32,
/*200991*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*200993*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*200996*/                  OPC_EmitMergeInputChains1_2,
/*200997*/                  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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                            // Dst: (VPADDDZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*201010*/                0, /*End of Scope*/
/*201011*/              0, // EndSwitchOpcode
/*201012*/            /*Scope*/ 5|128,1/*133*/, /*->201147*/
/*201014*/              OPC_MoveChild0,
/*201015*/              OPC_SwitchOpcode /*2 cases */, 58, TARGET_VAL(ISD::LOAD),// ->201077
/*201019*/                OPC_RecordMemRef,
/*201020*/                OPC_RecordNode, // #1 = 'ld' chained node
/*201021*/                OPC_CheckFoldableChainNode,
/*201022*/                OPC_RecordChild1, // #2 = $src2
/*201023*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*201025*/                OPC_CheckPredicate, 9, // Predicate_load
/*201027*/                OPC_MoveParent,
/*201028*/                OPC_RecordChild1, // #3 = $src1
/*201029*/                OPC_MoveParent,
/*201030*/                OPC_MoveChild2,
/*201031*/                OPC_CheckImmAllZerosV,
/*201032*/                OPC_MoveParent,
/*201033*/                OPC_SwitchType /*2 cases */, 19, MVT::v4i64,// ->201055
/*201036*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*201038*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*201041*/                  OPC_EmitMergeInputChains1_1,
/*201042*/                  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>>, VR256X:{ *:[v4i64] }:$src1), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                            // Dst: (VPADDQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*201055*/                /*SwitchType*/ 19, MVT::v4i32,// ->201076
/*201057*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*201059*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*201062*/                  OPC_EmitMergeInputChains1_1,
/*201063*/                  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] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4i32] }:$src1), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                            // Dst: (VPADDDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*201076*/                0, // EndSwitchType
/*201077*/              /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->201146
/*201080*/                OPC_RecordMemRef,
/*201081*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*201082*/                OPC_CheckFoldableChainNode,
/*201083*/                OPC_RecordChild1, // #2 = $src2
/*201084*/                OPC_Scope, 29, /*->201115*/ // 2 children in Scope
/*201086*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*201088*/                  OPC_MoveParent,
/*201089*/                  OPC_RecordChild1, // #3 = $src1
/*201090*/                  OPC_MoveParent,
/*201091*/                  OPC_MoveChild2,
/*201092*/                  OPC_CheckImmAllZerosV,
/*201093*/                  OPC_MoveParent,
/*201094*/                  OPC_CheckType, MVT::v4i64,
/*201096*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*201098*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*201101*/                  OPC_EmitMergeInputChains1_1,
/*201102*/                  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] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src1), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                            // Dst: (VPADDQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*201115*/                /*Scope*/ 29, /*->201145*/
/*201116*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*201118*/                  OPC_MoveParent,
/*201119*/                  OPC_RecordChild1, // #3 = $src1
/*201120*/                  OPC_MoveParent,
/*201121*/                  OPC_MoveChild2,
/*201122*/                  OPC_CheckImmAllZerosV,
/*201123*/                  OPC_MoveParent,
/*201124*/                  OPC_CheckType, MVT::v4i32,
/*201126*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*201128*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*201131*/                  OPC_EmitMergeInputChains1_1,
/*201132*/                  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] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4i32] }:$src1), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                            // Dst: (VPADDDZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*201145*/                0, /*End of Scope*/
/*201146*/              0, // EndSwitchOpcode
/*201147*/            0, /*End of Scope*/
/*201148*/          /*SwitchOpcode*/ 3|128,1/*131*/, TARGET_VAL(ISD::SUB),// ->201283
/*201152*/            OPC_RecordChild0, // #1 = $src1
/*201153*/            OPC_MoveChild1,
/*201154*/            OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->201215
/*201158*/              OPC_RecordMemRef,
/*201159*/              OPC_RecordNode, // #2 = 'ld' chained node
/*201160*/              OPC_CheckFoldableChainNode,
/*201161*/              OPC_RecordChild1, // #3 = $src2
/*201162*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*201164*/              OPC_CheckPredicate, 9, // Predicate_load
/*201166*/              OPC_MoveParent,
/*201167*/              OPC_MoveParent,
/*201168*/              OPC_MoveChild2,
/*201169*/              OPC_CheckImmAllZerosV,
/*201170*/              OPC_MoveParent,
/*201171*/              OPC_SwitchType /*2 cases */, 19, MVT::v4i64,// ->201193
/*201174*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*201176*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*201179*/                OPC_EmitMergeInputChains1_2,
/*201180*/                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>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                          // Dst: (VPSUBQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*201193*/              /*SwitchType*/ 19, MVT::v4i32,// ->201214
/*201195*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*201197*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*201200*/                OPC_EmitMergeInputChains1_2,
/*201201*/                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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                          // Dst: (VPSUBDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*201214*/              0, // EndSwitchType
/*201215*/            /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->201282
/*201218*/              OPC_RecordMemRef,
/*201219*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*201220*/              OPC_CheckFoldableChainNode,
/*201221*/              OPC_RecordChild1, // #3 = $src2
/*201222*/              OPC_Scope, 28, /*->201252*/ // 2 children in Scope
/*201224*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*201226*/                OPC_MoveParent,
/*201227*/                OPC_MoveParent,
/*201228*/                OPC_MoveChild2,
/*201229*/                OPC_CheckImmAllZerosV,
/*201230*/                OPC_MoveParent,
/*201231*/                OPC_CheckType, MVT::v4i64,
/*201233*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*201235*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*201238*/                OPC_EmitMergeInputChains1_2,
/*201239*/                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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                          // Dst: (VPSUBQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*201252*/              /*Scope*/ 28, /*->201281*/
/*201253*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*201255*/                OPC_MoveParent,
/*201256*/                OPC_MoveParent,
/*201257*/                OPC_MoveChild2,
/*201258*/                OPC_CheckImmAllZerosV,
/*201259*/                OPC_MoveParent,
/*201260*/                OPC_CheckType, MVT::v4i32,
/*201262*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*201264*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*201267*/                OPC_EmitMergeInputChains1_2,
/*201268*/                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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                          // Dst: (VPSUBDZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*201281*/              0, /*End of Scope*/
/*201282*/            0, // EndSwitchOpcode
/*201283*/          /*SwitchOpcode*/ 14|128,2/*270*/, TARGET_VAL(ISD::MUL),// ->201557
/*201287*/            OPC_Scope, 3|128,1/*131*/, /*->201421*/ // 2 children in Scope
/*201290*/              OPC_RecordChild0, // #1 = $src1
/*201291*/              OPC_MoveChild1,
/*201292*/              OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->201353
/*201296*/                OPC_RecordMemRef,
/*201297*/                OPC_RecordNode, // #2 = 'ld' chained node
/*201298*/                OPC_CheckFoldableChainNode,
/*201299*/                OPC_RecordChild1, // #3 = $src2
/*201300*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*201302*/                OPC_CheckPredicate, 9, // Predicate_load
/*201304*/                OPC_MoveParent,
/*201305*/                OPC_MoveParent,
/*201306*/                OPC_MoveChild2,
/*201307*/                OPC_CheckImmAllZerosV,
/*201308*/                OPC_MoveParent,
/*201309*/                OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->201331
/*201312*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*201314*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*201317*/                  OPC_EmitMergeInputChains1_2,
/*201318*/                  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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                            // Dst: (VPMULLDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*201331*/                /*SwitchType*/ 19, MVT::v4i64,// ->201352
/*201333*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*201335*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*201338*/                  OPC_EmitMergeInputChains1_2,
/*201339*/                  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>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                            // Dst: (VPMULLQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*201352*/                0, // EndSwitchType
/*201353*/              /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->201420
/*201356*/                OPC_RecordMemRef,
/*201357*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*201358*/                OPC_CheckFoldableChainNode,
/*201359*/                OPC_RecordChild1, // #3 = $src2
/*201360*/                OPC_Scope, 28, /*->201390*/ // 2 children in Scope
/*201362*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*201364*/                  OPC_MoveParent,
/*201365*/                  OPC_MoveParent,
/*201366*/                  OPC_MoveChild2,
/*201367*/                  OPC_CheckImmAllZerosV,
/*201368*/                  OPC_MoveParent,
/*201369*/                  OPC_CheckType, MVT::v4i32,
/*201371*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*201373*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*201376*/                  OPC_EmitMergeInputChains1_2,
/*201377*/                  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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                            // Dst: (VPMULLDZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*201390*/                /*Scope*/ 28, /*->201419*/
/*201391*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*201393*/                  OPC_MoveParent,
/*201394*/                  OPC_MoveParent,
/*201395*/                  OPC_MoveChild2,
/*201396*/                  OPC_CheckImmAllZerosV,
/*201397*/                  OPC_MoveParent,
/*201398*/                  OPC_CheckType, MVT::v4i64,
/*201400*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*201402*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*201405*/                  OPC_EmitMergeInputChains1_2,
/*201406*/                  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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                            // Dst: (VPMULLQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*201419*/                0, /*End of Scope*/
/*201420*/              0, // EndSwitchOpcode
/*201421*/            /*Scope*/ 5|128,1/*133*/, /*->201556*/
/*201423*/              OPC_MoveChild0,
/*201424*/              OPC_SwitchOpcode /*2 cases */, 58, TARGET_VAL(ISD::LOAD),// ->201486
/*201428*/                OPC_RecordMemRef,
/*201429*/                OPC_RecordNode, // #1 = 'ld' chained node
/*201430*/                OPC_CheckFoldableChainNode,
/*201431*/                OPC_RecordChild1, // #2 = $src2
/*201432*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*201434*/                OPC_CheckPredicate, 9, // Predicate_load
/*201436*/                OPC_MoveParent,
/*201437*/                OPC_RecordChild1, // #3 = $src1
/*201438*/                OPC_MoveParent,
/*201439*/                OPC_MoveChild2,
/*201440*/                OPC_CheckImmAllZerosV,
/*201441*/                OPC_MoveParent,
/*201442*/                OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->201464
/*201445*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*201447*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*201450*/                  OPC_EmitMergeInputChains1_1,
/*201451*/                  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] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4i32] }:$src1), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                            // Dst: (VPMULLDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*201464*/                /*SwitchType*/ 19, MVT::v4i64,// ->201485
/*201466*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*201468*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*201471*/                  OPC_EmitMergeInputChains1_1,
/*201472*/                  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>>, VR256X:{ *:[v4i64] }:$src1), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                            // Dst: (VPMULLQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*201485*/                0, // EndSwitchType
/*201486*/              /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->201555
/*201489*/                OPC_RecordMemRef,
/*201490*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*201491*/                OPC_CheckFoldableChainNode,
/*201492*/                OPC_RecordChild1, // #2 = $src2
/*201493*/                OPC_Scope, 29, /*->201524*/ // 2 children in Scope
/*201495*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*201497*/                  OPC_MoveParent,
/*201498*/                  OPC_RecordChild1, // #3 = $src1
/*201499*/                  OPC_MoveParent,
/*201500*/                  OPC_MoveChild2,
/*201501*/                  OPC_CheckImmAllZerosV,
/*201502*/                  OPC_MoveParent,
/*201503*/                  OPC_CheckType, MVT::v4i32,
/*201505*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*201507*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*201510*/                  OPC_EmitMergeInputChains1_1,
/*201511*/                  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] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4i32] }:$src1), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                            // Dst: (VPMULLDZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*201524*/                /*Scope*/ 29, /*->201554*/
/*201525*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*201527*/                  OPC_MoveParent,
/*201528*/                  OPC_RecordChild1, // #3 = $src1
/*201529*/                  OPC_MoveParent,
/*201530*/                  OPC_MoveChild2,
/*201531*/                  OPC_CheckImmAllZerosV,
/*201532*/                  OPC_MoveParent,
/*201533*/                  OPC_CheckType, MVT::v4i64,
/*201535*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*201537*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*201540*/                  OPC_EmitMergeInputChains1_1,
/*201541*/                  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] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src1), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                            // Dst: (VPMULLQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*201554*/                0, /*End of Scope*/
/*201555*/              0, // EndSwitchOpcode
/*201556*/            0, /*End of Scope*/
/*201557*/          /*SwitchOpcode*/ 29|128,1/*157*/, TARGET_VAL(X86ISD::PMULDQ),// ->201718
/*201561*/            OPC_Scope, 76, /*->201639*/ // 2 children in Scope
/*201563*/              OPC_RecordChild0, // #1 = $src1
/*201564*/              OPC_MoveChild1,
/*201565*/              OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->201603
/*201569*/                OPC_RecordMemRef,
/*201570*/                OPC_RecordNode, // #2 = 'ld' chained node
/*201571*/                OPC_CheckFoldableChainNode,
/*201572*/                OPC_RecordChild1, // #3 = $src2
/*201573*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*201575*/                OPC_CheckPredicate, 9, // Predicate_load
/*201577*/                OPC_MoveParent,
/*201578*/                OPC_MoveParent,
/*201579*/                OPC_MoveChild2,
/*201580*/                OPC_CheckImmAllZerosV,
/*201581*/                OPC_MoveParent,
/*201582*/                OPC_CheckType, MVT::v4i64,
/*201584*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*201586*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*201589*/                OPC_EmitMergeInputChains1_2,
/*201590*/                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>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                          // Dst: (VPMULDQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*201603*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->201638
/*201606*/                OPC_RecordMemRef,
/*201607*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*201608*/                OPC_CheckFoldableChainNode,
/*201609*/                OPC_RecordChild1, // #3 = $src2
/*201610*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*201612*/                OPC_MoveParent,
/*201613*/                OPC_MoveParent,
/*201614*/                OPC_MoveChild2,
/*201615*/                OPC_CheckImmAllZerosV,
/*201616*/                OPC_MoveParent,
/*201617*/                OPC_CheckType, MVT::v4i64,
/*201619*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*201621*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*201624*/                OPC_EmitMergeInputChains1_2,
/*201625*/                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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                          // Dst: (VPMULDQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*201638*/              0, // EndSwitchOpcode
/*201639*/            /*Scope*/ 77, /*->201717*/
/*201640*/              OPC_MoveChild0,
/*201641*/              OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->201680
/*201645*/                OPC_RecordMemRef,
/*201646*/                OPC_RecordNode, // #1 = 'ld' chained node
/*201647*/                OPC_CheckFoldableChainNode,
/*201648*/                OPC_RecordChild1, // #2 = $src2
/*201649*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*201651*/                OPC_CheckPredicate, 9, // Predicate_load
/*201653*/                OPC_MoveParent,
/*201654*/                OPC_RecordChild1, // #3 = $src1
/*201655*/                OPC_MoveParent,
/*201656*/                OPC_MoveChild2,
/*201657*/                OPC_CheckImmAllZerosV,
/*201658*/                OPC_MoveParent,
/*201659*/                OPC_CheckType, MVT::v4i64,
/*201661*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*201663*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*201666*/                OPC_EmitMergeInputChains1_1,
/*201667*/                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>>, VR256X:{ *:[v4i64] }:$src1), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                          // Dst: (VPMULDQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*201680*/              /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->201716
/*201683*/                OPC_RecordMemRef,
/*201684*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*201685*/                OPC_CheckFoldableChainNode,
/*201686*/                OPC_RecordChild1, // #2 = $src2
/*201687*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*201689*/                OPC_MoveParent,
/*201690*/                OPC_RecordChild1, // #3 = $src1
/*201691*/                OPC_MoveParent,
/*201692*/                OPC_MoveChild2,
/*201693*/                OPC_CheckImmAllZerosV,
/*201694*/                OPC_MoveParent,
/*201695*/                OPC_CheckType, MVT::v4i64,
/*201697*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*201699*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*201702*/                OPC_EmitMergeInputChains1_1,
/*201703*/                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] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src1), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                          // Dst: (VPMULDQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*201716*/              0, // EndSwitchOpcode
/*201717*/            0, /*End of Scope*/
/*201718*/          /*SwitchOpcode*/ 29|128,1/*157*/, TARGET_VAL(X86ISD::PMULUDQ),// ->201879
/*201722*/            OPC_Scope, 76, /*->201800*/ // 2 children in Scope
/*201724*/              OPC_RecordChild0, // #1 = $src1
/*201725*/              OPC_MoveChild1,
/*201726*/              OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->201764
/*201730*/                OPC_RecordMemRef,
/*201731*/                OPC_RecordNode, // #2 = 'ld' chained node
/*201732*/                OPC_CheckFoldableChainNode,
/*201733*/                OPC_RecordChild1, // #3 = $src2
/*201734*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*201736*/                OPC_CheckPredicate, 9, // Predicate_load
/*201738*/                OPC_MoveParent,
/*201739*/                OPC_MoveParent,
/*201740*/                OPC_MoveChild2,
/*201741*/                OPC_CheckImmAllZerosV,
/*201742*/                OPC_MoveParent,
/*201743*/                OPC_CheckType, MVT::v4i64,
/*201745*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*201747*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*201750*/                OPC_EmitMergeInputChains1_2,
/*201751*/                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>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                          // Dst: (VPMULUDQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*201764*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->201799
/*201767*/                OPC_RecordMemRef,
/*201768*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*201769*/                OPC_CheckFoldableChainNode,
/*201770*/                OPC_RecordChild1, // #3 = $src2
/*201771*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*201773*/                OPC_MoveParent,
/*201774*/                OPC_MoveParent,
/*201775*/                OPC_MoveChild2,
/*201776*/                OPC_CheckImmAllZerosV,
/*201777*/                OPC_MoveParent,
/*201778*/                OPC_CheckType, MVT::v4i64,
/*201780*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*201782*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*201785*/                OPC_EmitMergeInputChains1_2,
/*201786*/                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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                          // Dst: (VPMULUDQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*201799*/              0, // EndSwitchOpcode
/*201800*/            /*Scope*/ 77, /*->201878*/
/*201801*/              OPC_MoveChild0,
/*201802*/              OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->201841
/*201806*/                OPC_RecordMemRef,
/*201807*/                OPC_RecordNode, // #1 = 'ld' chained node
/*201808*/                OPC_CheckFoldableChainNode,
/*201809*/                OPC_RecordChild1, // #2 = $src2
/*201810*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*201812*/                OPC_CheckPredicate, 9, // Predicate_load
/*201814*/                OPC_MoveParent,
/*201815*/                OPC_RecordChild1, // #3 = $src1
/*201816*/                OPC_MoveParent,
/*201817*/                OPC_MoveChild2,
/*201818*/                OPC_CheckImmAllZerosV,
/*201819*/                OPC_MoveParent,
/*201820*/                OPC_CheckType, MVT::v4i64,
/*201822*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*201824*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*201827*/                OPC_EmitMergeInputChains1_1,
/*201828*/                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>>, VR256X:{ *:[v4i64] }:$src1), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                          // Dst: (VPMULUDQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*201841*/              /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->201877
/*201844*/                OPC_RecordMemRef,
/*201845*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*201846*/                OPC_CheckFoldableChainNode,
/*201847*/                OPC_RecordChild1, // #2 = $src2
/*201848*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*201850*/                OPC_MoveParent,
/*201851*/                OPC_RecordChild1, // #3 = $src1
/*201852*/                OPC_MoveParent,
/*201853*/                OPC_MoveChild2,
/*201854*/                OPC_CheckImmAllZerosV,
/*201855*/                OPC_MoveParent,
/*201856*/                OPC_CheckType, MVT::v4i64,
/*201858*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*201860*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*201863*/                OPC_EmitMergeInputChains1_1,
/*201864*/                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] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src1), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                          // Dst: (VPMULUDQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*201877*/              0, // EndSwitchOpcode
/*201878*/            0, /*End of Scope*/
/*201879*/          /*SwitchOpcode*/ 82, TARGET_VAL(X86ISD::VPMADDWD),// ->201964
/*201882*/            OPC_Scope, 39, /*->201923*/ // 2 children in Scope
/*201884*/              OPC_RecordChild0, // #1 = $src1
/*201885*/              OPC_MoveChild1,
/*201886*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*201889*/              OPC_RecordMemRef,
/*201890*/              OPC_RecordNode, // #2 = 'ld' chained node
/*201891*/              OPC_CheckFoldableChainNode,
/*201892*/              OPC_RecordChild1, // #3 = $src2
/*201893*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*201895*/              OPC_CheckPredicate, 9, // Predicate_load
/*201897*/              OPC_MoveParent,
/*201898*/              OPC_MoveParent,
/*201899*/              OPC_MoveChild2,
/*201900*/              OPC_CheckImmAllZerosV,
/*201901*/              OPC_MoveParent,
/*201902*/              OPC_CheckType, MVT::v4i32,
/*201904*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*201906*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*201909*/              OPC_EmitMergeInputChains1_2,
/*201910*/              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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                        // Dst: (VPMADDWDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*201923*/            /*Scope*/ 39, /*->201963*/
/*201924*/              OPC_MoveChild0,
/*201925*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*201928*/              OPC_RecordMemRef,
/*201929*/              OPC_RecordNode, // #1 = 'ld' chained node
/*201930*/              OPC_CheckFoldableChainNode,
/*201931*/              OPC_RecordChild1, // #2 = $src2
/*201932*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*201934*/              OPC_CheckPredicate, 9, // Predicate_load
/*201936*/              OPC_MoveParent,
/*201937*/              OPC_RecordChild1, // #3 = $src1
/*201938*/              OPC_MoveParent,
/*201939*/              OPC_MoveChild2,
/*201940*/              OPC_CheckImmAllZerosV,
/*201941*/              OPC_MoveParent,
/*201942*/              OPC_CheckType, MVT::v4i32,
/*201944*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*201946*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*201949*/              OPC_EmitMergeInputChains1_1,
/*201950*/              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] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                        // Dst: (VPMADDWDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*201963*/            0, /*End of Scope*/
/*201964*/          /*SwitchOpcode*/ 14|128,2/*270*/, TARGET_VAL(ISD::SMAX),// ->202238
/*201968*/            OPC_Scope, 3|128,1/*131*/, /*->202102*/ // 2 children in Scope
/*201971*/              OPC_RecordChild0, // #1 = $src1
/*201972*/              OPC_MoveChild1,
/*201973*/              OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->202034
/*201977*/                OPC_RecordMemRef,
/*201978*/                OPC_RecordNode, // #2 = 'ld' chained node
/*201979*/                OPC_CheckFoldableChainNode,
/*201980*/                OPC_RecordChild1, // #3 = $src2
/*201981*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*201983*/                OPC_CheckPredicate, 9, // Predicate_load
/*201985*/                OPC_MoveParent,
/*201986*/                OPC_MoveParent,
/*201987*/                OPC_MoveChild2,
/*201988*/                OPC_CheckImmAllZerosV,
/*201989*/                OPC_MoveParent,
/*201990*/                OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->202012
/*201993*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*201995*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*201998*/                  OPC_EmitMergeInputChains1_2,
/*201999*/                  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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                            // Dst: (VPMAXSDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*202012*/                /*SwitchType*/ 19, MVT::v4i64,// ->202033
/*202014*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*202016*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*202019*/                  OPC_EmitMergeInputChains1_2,
/*202020*/                  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>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                            // Dst: (VPMAXSQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*202033*/                0, // EndSwitchType
/*202034*/              /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->202101
/*202037*/                OPC_RecordMemRef,
/*202038*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*202039*/                OPC_CheckFoldableChainNode,
/*202040*/                OPC_RecordChild1, // #3 = $src2
/*202041*/                OPC_Scope, 28, /*->202071*/ // 2 children in Scope
/*202043*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*202045*/                  OPC_MoveParent,
/*202046*/                  OPC_MoveParent,
/*202047*/                  OPC_MoveChild2,
/*202048*/                  OPC_CheckImmAllZerosV,
/*202049*/                  OPC_MoveParent,
/*202050*/                  OPC_CheckType, MVT::v4i32,
/*202052*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*202054*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*202057*/                  OPC_EmitMergeInputChains1_2,
/*202058*/                  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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                            // Dst: (VPMAXSDZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*202071*/                /*Scope*/ 28, /*->202100*/
/*202072*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*202074*/                  OPC_MoveParent,
/*202075*/                  OPC_MoveParent,
/*202076*/                  OPC_MoveChild2,
/*202077*/                  OPC_CheckImmAllZerosV,
/*202078*/                  OPC_MoveParent,
/*202079*/                  OPC_CheckType, MVT::v4i64,
/*202081*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*202083*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*202086*/                  OPC_EmitMergeInputChains1_2,
/*202087*/                  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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                            // Dst: (VPMAXSQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*202100*/                0, /*End of Scope*/
/*202101*/              0, // EndSwitchOpcode
/*202102*/            /*Scope*/ 5|128,1/*133*/, /*->202237*/
/*202104*/              OPC_MoveChild0,
/*202105*/              OPC_SwitchOpcode /*2 cases */, 58, TARGET_VAL(ISD::LOAD),// ->202167
/*202109*/                OPC_RecordMemRef,
/*202110*/                OPC_RecordNode, // #1 = 'ld' chained node
/*202111*/                OPC_CheckFoldableChainNode,
/*202112*/                OPC_RecordChild1, // #2 = $src2
/*202113*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*202115*/                OPC_CheckPredicate, 9, // Predicate_load
/*202117*/                OPC_MoveParent,
/*202118*/                OPC_RecordChild1, // #3 = $src1
/*202119*/                OPC_MoveParent,
/*202120*/                OPC_MoveChild2,
/*202121*/                OPC_CheckImmAllZerosV,
/*202122*/                OPC_MoveParent,
/*202123*/                OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->202145
/*202126*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*202128*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*202131*/                  OPC_EmitMergeInputChains1_1,
/*202132*/                  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] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4i32] }:$src1), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                            // Dst: (VPMAXSDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*202145*/                /*SwitchType*/ 19, MVT::v4i64,// ->202166
/*202147*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*202149*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*202152*/                  OPC_EmitMergeInputChains1_1,
/*202153*/                  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>>, VR256X:{ *:[v4i64] }:$src1), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                            // Dst: (VPMAXSQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*202166*/                0, // EndSwitchType
/*202167*/              /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->202236
/*202170*/                OPC_RecordMemRef,
/*202171*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*202172*/                OPC_CheckFoldableChainNode,
/*202173*/                OPC_RecordChild1, // #2 = $src2
/*202174*/                OPC_Scope, 29, /*->202205*/ // 2 children in Scope
/*202176*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*202178*/                  OPC_MoveParent,
/*202179*/                  OPC_RecordChild1, // #3 = $src1
/*202180*/                  OPC_MoveParent,
/*202181*/                  OPC_MoveChild2,
/*202182*/                  OPC_CheckImmAllZerosV,
/*202183*/                  OPC_MoveParent,
/*202184*/                  OPC_CheckType, MVT::v4i32,
/*202186*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*202188*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*202191*/                  OPC_EmitMergeInputChains1_1,
/*202192*/                  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] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4i32] }:$src1), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                            // Dst: (VPMAXSDZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*202205*/                /*Scope*/ 29, /*->202235*/
/*202206*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*202208*/                  OPC_MoveParent,
/*202209*/                  OPC_RecordChild1, // #3 = $src1
/*202210*/                  OPC_MoveParent,
/*202211*/                  OPC_MoveChild2,
/*202212*/                  OPC_CheckImmAllZerosV,
/*202213*/                  OPC_MoveParent,
/*202214*/                  OPC_CheckType, MVT::v4i64,
/*202216*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*202218*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*202221*/                  OPC_EmitMergeInputChains1_1,
/*202222*/                  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] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src1), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                            // Dst: (VPMAXSQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*202235*/                0, /*End of Scope*/
/*202236*/              0, // EndSwitchOpcode
/*202237*/            0, /*End of Scope*/
/*202238*/          /*SwitchOpcode*/ 14|128,2/*270*/, TARGET_VAL(ISD::UMAX),// ->202512
/*202242*/            OPC_Scope, 3|128,1/*131*/, /*->202376*/ // 2 children in Scope
/*202245*/              OPC_RecordChild0, // #1 = $src1
/*202246*/              OPC_MoveChild1,
/*202247*/              OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->202308
/*202251*/                OPC_RecordMemRef,
/*202252*/                OPC_RecordNode, // #2 = 'ld' chained node
/*202253*/                OPC_CheckFoldableChainNode,
/*202254*/                OPC_RecordChild1, // #3 = $src2
/*202255*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*202257*/                OPC_CheckPredicate, 9, // Predicate_load
/*202259*/                OPC_MoveParent,
/*202260*/                OPC_MoveParent,
/*202261*/                OPC_MoveChild2,
/*202262*/                OPC_CheckImmAllZerosV,
/*202263*/                OPC_MoveParent,
/*202264*/                OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->202286
/*202267*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*202269*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*202272*/                  OPC_EmitMergeInputChains1_2,
/*202273*/                  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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                            // Dst: (VPMAXUDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*202286*/                /*SwitchType*/ 19, MVT::v4i64,// ->202307
/*202288*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*202290*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*202293*/                  OPC_EmitMergeInputChains1_2,
/*202294*/                  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>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                            // Dst: (VPMAXUQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*202307*/                0, // EndSwitchType
/*202308*/              /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->202375
/*202311*/                OPC_RecordMemRef,
/*202312*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*202313*/                OPC_CheckFoldableChainNode,
/*202314*/                OPC_RecordChild1, // #3 = $src2
/*202315*/                OPC_Scope, 28, /*->202345*/ // 2 children in Scope
/*202317*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*202319*/                  OPC_MoveParent,
/*202320*/                  OPC_MoveParent,
/*202321*/                  OPC_MoveChild2,
/*202322*/                  OPC_CheckImmAllZerosV,
/*202323*/                  OPC_MoveParent,
/*202324*/                  OPC_CheckType, MVT::v4i32,
/*202326*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*202328*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*202331*/                  OPC_EmitMergeInputChains1_2,
/*202332*/                  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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                            // Dst: (VPMAXUDZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*202345*/                /*Scope*/ 28, /*->202374*/
/*202346*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*202348*/                  OPC_MoveParent,
/*202349*/                  OPC_MoveParent,
/*202350*/                  OPC_MoveChild2,
/*202351*/                  OPC_CheckImmAllZerosV,
/*202352*/                  OPC_MoveParent,
/*202353*/                  OPC_CheckType, MVT::v4i64,
/*202355*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*202357*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*202360*/                  OPC_EmitMergeInputChains1_2,
/*202361*/                  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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                            // Dst: (VPMAXUQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*202374*/                0, /*End of Scope*/
/*202375*/              0, // EndSwitchOpcode
/*202376*/            /*Scope*/ 5|128,1/*133*/, /*->202511*/
/*202378*/              OPC_MoveChild0,
/*202379*/              OPC_SwitchOpcode /*2 cases */, 58, TARGET_VAL(ISD::LOAD),// ->202441
/*202383*/                OPC_RecordMemRef,
/*202384*/                OPC_RecordNode, // #1 = 'ld' chained node
/*202385*/                OPC_CheckFoldableChainNode,
/*202386*/                OPC_RecordChild1, // #2 = $src2
/*202387*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*202389*/                OPC_CheckPredicate, 9, // Predicate_load
/*202391*/                OPC_MoveParent,
/*202392*/                OPC_RecordChild1, // #3 = $src1
/*202393*/                OPC_MoveParent,
/*202394*/                OPC_MoveChild2,
/*202395*/                OPC_CheckImmAllZerosV,
/*202396*/                OPC_MoveParent,
/*202397*/                OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->202419
/*202400*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*202402*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*202405*/                  OPC_EmitMergeInputChains1_1,
/*202406*/                  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] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4i32] }:$src1), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                            // Dst: (VPMAXUDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*202419*/                /*SwitchType*/ 19, MVT::v4i64,// ->202440
/*202421*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*202423*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*202426*/                  OPC_EmitMergeInputChains1_1,
/*202427*/                  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>>, VR256X:{ *:[v4i64] }:$src1), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                            // Dst: (VPMAXUQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*202440*/                0, // EndSwitchType
/*202441*/              /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->202510
/*202444*/                OPC_RecordMemRef,
/*202445*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*202446*/                OPC_CheckFoldableChainNode,
/*202447*/                OPC_RecordChild1, // #2 = $src2
/*202448*/                OPC_Scope, 29, /*->202479*/ // 2 children in Scope
/*202450*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*202452*/                  OPC_MoveParent,
/*202453*/                  OPC_RecordChild1, // #3 = $src1
/*202454*/                  OPC_MoveParent,
/*202455*/                  OPC_MoveChild2,
/*202456*/                  OPC_CheckImmAllZerosV,
/*202457*/                  OPC_MoveParent,
/*202458*/                  OPC_CheckType, MVT::v4i32,
/*202460*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*202462*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*202465*/                  OPC_EmitMergeInputChains1_1,
/*202466*/                  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] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4i32] }:$src1), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                            // Dst: (VPMAXUDZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*202479*/                /*Scope*/ 29, /*->202509*/
/*202480*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*202482*/                  OPC_MoveParent,
/*202483*/                  OPC_RecordChild1, // #3 = $src1
/*202484*/                  OPC_MoveParent,
/*202485*/                  OPC_MoveChild2,
/*202486*/                  OPC_CheckImmAllZerosV,
/*202487*/                  OPC_MoveParent,
/*202488*/                  OPC_CheckType, MVT::v4i64,
/*202490*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*202492*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*202495*/                  OPC_EmitMergeInputChains1_1,
/*202496*/                  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] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src1), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                            // Dst: (VPMAXUQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*202509*/                0, /*End of Scope*/
/*202510*/              0, // EndSwitchOpcode
/*202511*/            0, /*End of Scope*/
/*202512*/          /*SwitchOpcode*/ 14|128,2/*270*/, TARGET_VAL(ISD::SMIN),// ->202786
/*202516*/            OPC_Scope, 3|128,1/*131*/, /*->202650*/ // 2 children in Scope
/*202519*/              OPC_RecordChild0, // #1 = $src1
/*202520*/              OPC_MoveChild1,
/*202521*/              OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->202582
/*202525*/                OPC_RecordMemRef,
/*202526*/                OPC_RecordNode, // #2 = 'ld' chained node
/*202527*/                OPC_CheckFoldableChainNode,
/*202528*/                OPC_RecordChild1, // #3 = $src2
/*202529*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*202531*/                OPC_CheckPredicate, 9, // Predicate_load
/*202533*/                OPC_MoveParent,
/*202534*/                OPC_MoveParent,
/*202535*/                OPC_MoveChild2,
/*202536*/                OPC_CheckImmAllZerosV,
/*202537*/                OPC_MoveParent,
/*202538*/                OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->202560
/*202541*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*202543*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*202546*/                  OPC_EmitMergeInputChains1_2,
/*202547*/                  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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                            // Dst: (VPMINSDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*202560*/                /*SwitchType*/ 19, MVT::v4i64,// ->202581
/*202562*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*202564*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*202567*/                  OPC_EmitMergeInputChains1_2,
/*202568*/                  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>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                            // Dst: (VPMINSQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*202581*/                0, // EndSwitchType
/*202582*/              /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->202649
/*202585*/                OPC_RecordMemRef,
/*202586*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*202587*/                OPC_CheckFoldableChainNode,
/*202588*/                OPC_RecordChild1, // #3 = $src2
/*202589*/                OPC_Scope, 28, /*->202619*/ // 2 children in Scope
/*202591*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*202593*/                  OPC_MoveParent,
/*202594*/                  OPC_MoveParent,
/*202595*/                  OPC_MoveChild2,
/*202596*/                  OPC_CheckImmAllZerosV,
/*202597*/                  OPC_MoveParent,
/*202598*/                  OPC_CheckType, MVT::v4i32,
/*202600*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*202602*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*202605*/                  OPC_EmitMergeInputChains1_2,
/*202606*/                  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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                            // Dst: (VPMINSDZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*202619*/                /*Scope*/ 28, /*->202648*/
/*202620*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*202622*/                  OPC_MoveParent,
/*202623*/                  OPC_MoveParent,
/*202624*/                  OPC_MoveChild2,
/*202625*/                  OPC_CheckImmAllZerosV,
/*202626*/                  OPC_MoveParent,
/*202627*/                  OPC_CheckType, MVT::v4i64,
/*202629*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*202631*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*202634*/                  OPC_EmitMergeInputChains1_2,
/*202635*/                  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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                            // Dst: (VPMINSQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*202648*/                0, /*End of Scope*/
/*202649*/              0, // EndSwitchOpcode
/*202650*/            /*Scope*/ 5|128,1/*133*/, /*->202785*/
/*202652*/              OPC_MoveChild0,
/*202653*/              OPC_SwitchOpcode /*2 cases */, 58, TARGET_VAL(ISD::LOAD),// ->202715
/*202657*/                OPC_RecordMemRef,
/*202658*/                OPC_RecordNode, // #1 = 'ld' chained node
/*202659*/                OPC_CheckFoldableChainNode,
/*202660*/                OPC_RecordChild1, // #2 = $src2
/*202661*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*202663*/                OPC_CheckPredicate, 9, // Predicate_load
/*202665*/                OPC_MoveParent,
/*202666*/                OPC_RecordChild1, // #3 = $src1
/*202667*/                OPC_MoveParent,
/*202668*/                OPC_MoveChild2,
/*202669*/                OPC_CheckImmAllZerosV,
/*202670*/                OPC_MoveParent,
/*202671*/                OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->202693
/*202674*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*202676*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*202679*/                  OPC_EmitMergeInputChains1_1,
/*202680*/                  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] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4i32] }:$src1), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                            // Dst: (VPMINSDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*202693*/                /*SwitchType*/ 19, MVT::v4i64,// ->202714
/*202695*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*202697*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*202700*/                  OPC_EmitMergeInputChains1_1,
/*202701*/                  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>>, VR256X:{ *:[v4i64] }:$src1), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                            // Dst: (VPMINSQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*202714*/                0, // EndSwitchType
/*202715*/              /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->202784
/*202718*/                OPC_RecordMemRef,
/*202719*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*202720*/                OPC_CheckFoldableChainNode,
/*202721*/                OPC_RecordChild1, // #2 = $src2
/*202722*/                OPC_Scope, 29, /*->202753*/ // 2 children in Scope
/*202724*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*202726*/                  OPC_MoveParent,
/*202727*/                  OPC_RecordChild1, // #3 = $src1
/*202728*/                  OPC_MoveParent,
/*202729*/                  OPC_MoveChild2,
/*202730*/                  OPC_CheckImmAllZerosV,
/*202731*/                  OPC_MoveParent,
/*202732*/                  OPC_CheckType, MVT::v4i32,
/*202734*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*202736*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*202739*/                  OPC_EmitMergeInputChains1_1,
/*202740*/                  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] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4i32] }:$src1), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                            // Dst: (VPMINSDZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*202753*/                /*Scope*/ 29, /*->202783*/
/*202754*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*202756*/                  OPC_MoveParent,
/*202757*/                  OPC_RecordChild1, // #3 = $src1
/*202758*/                  OPC_MoveParent,
/*202759*/                  OPC_MoveChild2,
/*202760*/                  OPC_CheckImmAllZerosV,
/*202761*/                  OPC_MoveParent,
/*202762*/                  OPC_CheckType, MVT::v4i64,
/*202764*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*202766*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*202769*/                  OPC_EmitMergeInputChains1_1,
/*202770*/                  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] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src1), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                            // Dst: (VPMINSQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*202783*/                0, /*End of Scope*/
/*202784*/              0, // EndSwitchOpcode
/*202785*/            0, /*End of Scope*/
/*202786*/          /*SwitchOpcode*/ 14|128,2/*270*/, TARGET_VAL(ISD::UMIN),// ->203060
/*202790*/            OPC_Scope, 3|128,1/*131*/, /*->202924*/ // 2 children in Scope
/*202793*/              OPC_RecordChild0, // #1 = $src1
/*202794*/              OPC_MoveChild1,
/*202795*/              OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->202856
/*202799*/                OPC_RecordMemRef,
/*202800*/                OPC_RecordNode, // #2 = 'ld' chained node
/*202801*/                OPC_CheckFoldableChainNode,
/*202802*/                OPC_RecordChild1, // #3 = $src2
/*202803*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*202805*/                OPC_CheckPredicate, 9, // Predicate_load
/*202807*/                OPC_MoveParent,
/*202808*/                OPC_MoveParent,
/*202809*/                OPC_MoveChild2,
/*202810*/                OPC_CheckImmAllZerosV,
/*202811*/                OPC_MoveParent,
/*202812*/                OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->202834
/*202815*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*202817*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*202820*/                  OPC_EmitMergeInputChains1_2,
/*202821*/                  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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                            // Dst: (VPMINUDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*202834*/                /*SwitchType*/ 19, MVT::v4i64,// ->202855
/*202836*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*202838*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*202841*/                  OPC_EmitMergeInputChains1_2,
/*202842*/                  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>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                            // Dst: (VPMINUQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*202855*/                0, // EndSwitchType
/*202856*/              /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->202923
/*202859*/                OPC_RecordMemRef,
/*202860*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*202861*/                OPC_CheckFoldableChainNode,
/*202862*/                OPC_RecordChild1, // #3 = $src2
/*202863*/                OPC_Scope, 28, /*->202893*/ // 2 children in Scope
/*202865*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*202867*/                  OPC_MoveParent,
/*202868*/                  OPC_MoveParent,
/*202869*/                  OPC_MoveChild2,
/*202870*/                  OPC_CheckImmAllZerosV,
/*202871*/                  OPC_MoveParent,
/*202872*/                  OPC_CheckType, MVT::v4i32,
/*202874*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*202876*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*202879*/                  OPC_EmitMergeInputChains1_2,
/*202880*/                  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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                            // Dst: (VPMINUDZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*202893*/                /*Scope*/ 28, /*->202922*/
/*202894*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*202896*/                  OPC_MoveParent,
/*202897*/                  OPC_MoveParent,
/*202898*/                  OPC_MoveChild2,
/*202899*/                  OPC_CheckImmAllZerosV,
/*202900*/                  OPC_MoveParent,
/*202901*/                  OPC_CheckType, MVT::v4i64,
/*202903*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*202905*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*202908*/                  OPC_EmitMergeInputChains1_2,
/*202909*/                  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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                            // Dst: (VPMINUQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*202922*/                0, /*End of Scope*/
/*202923*/              0, // EndSwitchOpcode
/*202924*/            /*Scope*/ 5|128,1/*133*/, /*->203059*/
/*202926*/              OPC_MoveChild0,
/*202927*/              OPC_SwitchOpcode /*2 cases */, 58, TARGET_VAL(ISD::LOAD),// ->202989
/*202931*/                OPC_RecordMemRef,
/*202932*/                OPC_RecordNode, // #1 = 'ld' chained node
/*202933*/                OPC_CheckFoldableChainNode,
/*202934*/                OPC_RecordChild1, // #2 = $src2
/*202935*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*202937*/                OPC_CheckPredicate, 9, // Predicate_load
/*202939*/                OPC_MoveParent,
/*202940*/                OPC_RecordChild1, // #3 = $src1
/*202941*/                OPC_MoveParent,
/*202942*/                OPC_MoveChild2,
/*202943*/                OPC_CheckImmAllZerosV,
/*202944*/                OPC_MoveParent,
/*202945*/                OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->202967
/*202948*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*202950*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*202953*/                  OPC_EmitMergeInputChains1_1,
/*202954*/                  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] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4i32] }:$src1), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                            // Dst: (VPMINUDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*202967*/                /*SwitchType*/ 19, MVT::v4i64,// ->202988
/*202969*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*202971*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*202974*/                  OPC_EmitMergeInputChains1_1,
/*202975*/                  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>>, VR256X:{ *:[v4i64] }:$src1), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                            // Dst: (VPMINUQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*202988*/                0, // EndSwitchType
/*202989*/              /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->203058
/*202992*/                OPC_RecordMemRef,
/*202993*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*202994*/                OPC_CheckFoldableChainNode,
/*202995*/                OPC_RecordChild1, // #2 = $src2
/*202996*/                OPC_Scope, 29, /*->203027*/ // 2 children in Scope
/*202998*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*203000*/                  OPC_MoveParent,
/*203001*/                  OPC_RecordChild1, // #3 = $src1
/*203002*/                  OPC_MoveParent,
/*203003*/                  OPC_MoveChild2,
/*203004*/                  OPC_CheckImmAllZerosV,
/*203005*/                  OPC_MoveParent,
/*203006*/                  OPC_CheckType, MVT::v4i32,
/*203008*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*203010*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*203013*/                  OPC_EmitMergeInputChains1_1,
/*203014*/                  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] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4i32] }:$src1), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                            // Dst: (VPMINUDZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*203027*/                /*Scope*/ 29, /*->203057*/
/*203028*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*203030*/                  OPC_MoveParent,
/*203031*/                  OPC_RecordChild1, // #3 = $src1
/*203032*/                  OPC_MoveParent,
/*203033*/                  OPC_MoveChild2,
/*203034*/                  OPC_CheckImmAllZerosV,
/*203035*/                  OPC_MoveParent,
/*203036*/                  OPC_CheckType, MVT::v4i64,
/*203038*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*203040*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*203043*/                  OPC_EmitMergeInputChains1_1,
/*203044*/                  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] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src1), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                            // Dst: (VPMINUQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*203057*/                0, /*End of Scope*/
/*203058*/              0, // EndSwitchOpcode
/*203059*/            0, /*End of Scope*/
/*203060*/          /*SwitchOpcode*/ 14|128,2/*270*/, TARGET_VAL(ISD::AND),// ->203334
/*203064*/            OPC_Scope, 3|128,1/*131*/, /*->203198*/ // 2 children in Scope
/*203067*/              OPC_RecordChild0, // #1 = $src1
/*203068*/              OPC_MoveChild1,
/*203069*/              OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->203130
/*203073*/                OPC_RecordMemRef,
/*203074*/                OPC_RecordNode, // #2 = 'ld' chained node
/*203075*/                OPC_CheckFoldableChainNode,
/*203076*/                OPC_RecordChild1, // #3 = $src2
/*203077*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*203079*/                OPC_CheckPredicate, 9, // Predicate_load
/*203081*/                OPC_MoveParent,
/*203082*/                OPC_MoveParent,
/*203083*/                OPC_MoveChild2,
/*203084*/                OPC_CheckImmAllZerosV,
/*203085*/                OPC_MoveParent,
/*203086*/                OPC_SwitchType /*2 cases */, 19, MVT::v4i64,// ->203108
/*203089*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*203091*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*203094*/                  OPC_EmitMergeInputChains1_2,
/*203095*/                  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>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                            // Dst: (VPANDQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*203108*/                /*SwitchType*/ 19, MVT::v4i32,// ->203129
/*203110*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*203112*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*203115*/                  OPC_EmitMergeInputChains1_2,
/*203116*/                  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, (and:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                            // Dst: (VPANDDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*203129*/                0, // EndSwitchType
/*203130*/              /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->203197
/*203133*/                OPC_RecordMemRef,
/*203134*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*203135*/                OPC_CheckFoldableChainNode,
/*203136*/                OPC_RecordChild1, // #3 = $src2
/*203137*/                OPC_Scope, 28, /*->203167*/ // 2 children in Scope
/*203139*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*203141*/                  OPC_MoveParent,
/*203142*/                  OPC_MoveParent,
/*203143*/                  OPC_MoveChild2,
/*203144*/                  OPC_CheckImmAllZerosV,
/*203145*/                  OPC_MoveParent,
/*203146*/                  OPC_CheckType, MVT::v4i64,
/*203148*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*203150*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*203153*/                  OPC_EmitMergeInputChains1_2,
/*203154*/                  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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                            // Dst: (VPANDQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*203167*/                /*Scope*/ 28, /*->203196*/
/*203168*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*203170*/                  OPC_MoveParent,
/*203171*/                  OPC_MoveParent,
/*203172*/                  OPC_MoveChild2,
/*203173*/                  OPC_CheckImmAllZerosV,
/*203174*/                  OPC_MoveParent,
/*203175*/                  OPC_CheckType, MVT::v4i32,
/*203177*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*203179*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*203182*/                  OPC_EmitMergeInputChains1_2,
/*203183*/                  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, (and:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                            // Dst: (VPANDDZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*203196*/                0, /*End of Scope*/
/*203197*/              0, // EndSwitchOpcode
/*203198*/            /*Scope*/ 5|128,1/*133*/, /*->203333*/
/*203200*/              OPC_MoveChild0,
/*203201*/              OPC_SwitchOpcode /*2 cases */, 58, TARGET_VAL(ISD::LOAD),// ->203263
/*203205*/                OPC_RecordMemRef,
/*203206*/                OPC_RecordNode, // #1 = 'ld' chained node
/*203207*/                OPC_CheckFoldableChainNode,
/*203208*/                OPC_RecordChild1, // #2 = $src2
/*203209*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*203211*/                OPC_CheckPredicate, 9, // Predicate_load
/*203213*/                OPC_MoveParent,
/*203214*/                OPC_RecordChild1, // #3 = $src1
/*203215*/                OPC_MoveParent,
/*203216*/                OPC_MoveChild2,
/*203217*/                OPC_CheckImmAllZerosV,
/*203218*/                OPC_MoveParent,
/*203219*/                OPC_SwitchType /*2 cases */, 19, MVT::v4i64,// ->203241
/*203222*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*203224*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*203227*/                  OPC_EmitMergeInputChains1_1,
/*203228*/                  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>>, VR256X:{ *:[v4i64] }:$src1), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                            // Dst: (VPANDQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*203241*/                /*SwitchType*/ 19, MVT::v4i32,// ->203262
/*203243*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*203245*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*203248*/                  OPC_EmitMergeInputChains1_1,
/*203249*/                  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, (and:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4i32] }:$src1), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                            // Dst: (VPANDDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*203262*/                0, // EndSwitchType
/*203263*/              /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->203332
/*203266*/                OPC_RecordMemRef,
/*203267*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*203268*/                OPC_CheckFoldableChainNode,
/*203269*/                OPC_RecordChild1, // #2 = $src2
/*203270*/                OPC_Scope, 29, /*->203301*/ // 2 children in Scope
/*203272*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*203274*/                  OPC_MoveParent,
/*203275*/                  OPC_RecordChild1, // #3 = $src1
/*203276*/                  OPC_MoveParent,
/*203277*/                  OPC_MoveChild2,
/*203278*/                  OPC_CheckImmAllZerosV,
/*203279*/                  OPC_MoveParent,
/*203280*/                  OPC_CheckType, MVT::v4i64,
/*203282*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*203284*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*203287*/                  OPC_EmitMergeInputChains1_1,
/*203288*/                  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] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src1), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                            // Dst: (VPANDQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*203301*/                /*Scope*/ 29, /*->203331*/
/*203302*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*203304*/                  OPC_MoveParent,
/*203305*/                  OPC_RecordChild1, // #3 = $src1
/*203306*/                  OPC_MoveParent,
/*203307*/                  OPC_MoveChild2,
/*203308*/                  OPC_CheckImmAllZerosV,
/*203309*/                  OPC_MoveParent,
/*203310*/                  OPC_CheckType, MVT::v4i32,
/*203312*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*203314*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*203317*/                  OPC_EmitMergeInputChains1_1,
/*203318*/                  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, (and:{ *:[v4i32] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4i32] }:$src1), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                            // Dst: (VPANDDZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*203331*/                0, /*End of Scope*/
/*203332*/              0, // EndSwitchOpcode
/*203333*/            0, /*End of Scope*/
/*203334*/          /*SwitchOpcode*/ 14|128,2/*270*/, TARGET_VAL(ISD::OR),// ->203608
/*203338*/            OPC_Scope, 3|128,1/*131*/, /*->203472*/ // 2 children in Scope
/*203341*/              OPC_RecordChild0, // #1 = $src1
/*203342*/              OPC_MoveChild1,
/*203343*/              OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->203404
/*203347*/                OPC_RecordMemRef,
/*203348*/                OPC_RecordNode, // #2 = 'ld' chained node
/*203349*/                OPC_CheckFoldableChainNode,
/*203350*/                OPC_RecordChild1, // #3 = $src2
/*203351*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*203353*/                OPC_CheckPredicate, 9, // Predicate_load
/*203355*/                OPC_MoveParent,
/*203356*/                OPC_MoveParent,
/*203357*/                OPC_MoveChild2,
/*203358*/                OPC_CheckImmAllZerosV,
/*203359*/                OPC_MoveParent,
/*203360*/                OPC_SwitchType /*2 cases */, 19, MVT::v4i64,// ->203382
/*203363*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*203365*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*203368*/                  OPC_EmitMergeInputChains1_2,
/*203369*/                  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>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                            // Dst: (VPORQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*203382*/                /*SwitchType*/ 19, MVT::v4i32,// ->203403
/*203384*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*203386*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*203389*/                  OPC_EmitMergeInputChains1_2,
/*203390*/                  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, (or:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                            // Dst: (VPORDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*203403*/                0, // EndSwitchType
/*203404*/              /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->203471
/*203407*/                OPC_RecordMemRef,
/*203408*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*203409*/                OPC_CheckFoldableChainNode,
/*203410*/                OPC_RecordChild1, // #3 = $src2
/*203411*/                OPC_Scope, 28, /*->203441*/ // 2 children in Scope
/*203413*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*203415*/                  OPC_MoveParent,
/*203416*/                  OPC_MoveParent,
/*203417*/                  OPC_MoveChild2,
/*203418*/                  OPC_CheckImmAllZerosV,
/*203419*/                  OPC_MoveParent,
/*203420*/                  OPC_CheckType, MVT::v4i64,
/*203422*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*203424*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*203427*/                  OPC_EmitMergeInputChains1_2,
/*203428*/                  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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                            // Dst: (VPORQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*203441*/                /*Scope*/ 28, /*->203470*/
/*203442*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*203444*/                  OPC_MoveParent,
/*203445*/                  OPC_MoveParent,
/*203446*/                  OPC_MoveChild2,
/*203447*/                  OPC_CheckImmAllZerosV,
/*203448*/                  OPC_MoveParent,
/*203449*/                  OPC_CheckType, MVT::v4i32,
/*203451*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*203453*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*203456*/                  OPC_EmitMergeInputChains1_2,
/*203457*/                  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, (or:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                            // Dst: (VPORDZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*203470*/                0, /*End of Scope*/
/*203471*/              0, // EndSwitchOpcode
/*203472*/            /*Scope*/ 5|128,1/*133*/, /*->203607*/
/*203474*/              OPC_MoveChild0,
/*203475*/              OPC_SwitchOpcode /*2 cases */, 58, TARGET_VAL(ISD::LOAD),// ->203537
/*203479*/                OPC_RecordMemRef,
/*203480*/                OPC_RecordNode, // #1 = 'ld' chained node
/*203481*/                OPC_CheckFoldableChainNode,
/*203482*/                OPC_RecordChild1, // #2 = $src2
/*203483*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*203485*/                OPC_CheckPredicate, 9, // Predicate_load
/*203487*/                OPC_MoveParent,
/*203488*/                OPC_RecordChild1, // #3 = $src1
/*203489*/                OPC_MoveParent,
/*203490*/                OPC_MoveChild2,
/*203491*/                OPC_CheckImmAllZerosV,
/*203492*/                OPC_MoveParent,
/*203493*/                OPC_SwitchType /*2 cases */, 19, MVT::v4i64,// ->203515
/*203496*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*203498*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*203501*/                  OPC_EmitMergeInputChains1_1,
/*203502*/                  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>>, VR256X:{ *:[v4i64] }:$src1), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                            // Dst: (VPORQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*203515*/                /*SwitchType*/ 19, MVT::v4i32,// ->203536
/*203517*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*203519*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*203522*/                  OPC_EmitMergeInputChains1_1,
/*203523*/                  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, (or:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4i32] }:$src1), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                            // Dst: (VPORDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*203536*/                0, // EndSwitchType
/*203537*/              /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->203606
/*203540*/                OPC_RecordMemRef,
/*203541*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*203542*/                OPC_CheckFoldableChainNode,
/*203543*/                OPC_RecordChild1, // #2 = $src2
/*203544*/                OPC_Scope, 29, /*->203575*/ // 2 children in Scope
/*203546*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*203548*/                  OPC_MoveParent,
/*203549*/                  OPC_RecordChild1, // #3 = $src1
/*203550*/                  OPC_MoveParent,
/*203551*/                  OPC_MoveChild2,
/*203552*/                  OPC_CheckImmAllZerosV,
/*203553*/                  OPC_MoveParent,
/*203554*/                  OPC_CheckType, MVT::v4i64,
/*203556*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*203558*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*203561*/                  OPC_EmitMergeInputChains1_1,
/*203562*/                  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] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src1), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                            // Dst: (VPORQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*203575*/                /*Scope*/ 29, /*->203605*/
/*203576*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*203578*/                  OPC_MoveParent,
/*203579*/                  OPC_RecordChild1, // #3 = $src1
/*203580*/                  OPC_MoveParent,
/*203581*/                  OPC_MoveChild2,
/*203582*/                  OPC_CheckImmAllZerosV,
/*203583*/                  OPC_MoveParent,
/*203584*/                  OPC_CheckType, MVT::v4i32,
/*203586*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*203588*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*203591*/                  OPC_EmitMergeInputChains1_1,
/*203592*/                  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, (or:{ *:[v4i32] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4i32] }:$src1), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                            // Dst: (VPORDZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*203605*/                0, /*End of Scope*/
/*203606*/              0, // EndSwitchOpcode
/*203607*/            0, /*End of Scope*/
/*203608*/          /*SwitchOpcode*/ 14|128,2/*270*/, TARGET_VAL(ISD::XOR),// ->203882
/*203612*/            OPC_Scope, 3|128,1/*131*/, /*->203746*/ // 2 children in Scope
/*203615*/              OPC_RecordChild0, // #1 = $src1
/*203616*/              OPC_MoveChild1,
/*203617*/              OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->203678
/*203621*/                OPC_RecordMemRef,
/*203622*/                OPC_RecordNode, // #2 = 'ld' chained node
/*203623*/                OPC_CheckFoldableChainNode,
/*203624*/                OPC_RecordChild1, // #3 = $src2
/*203625*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*203627*/                OPC_CheckPredicate, 9, // Predicate_load
/*203629*/                OPC_MoveParent,
/*203630*/                OPC_MoveParent,
/*203631*/                OPC_MoveChild2,
/*203632*/                OPC_CheckImmAllZerosV,
/*203633*/                OPC_MoveParent,
/*203634*/                OPC_SwitchType /*2 cases */, 19, MVT::v4i64,// ->203656
/*203637*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*203639*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*203642*/                  OPC_EmitMergeInputChains1_2,
/*203643*/                  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>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                            // Dst: (VPXORQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*203656*/                /*SwitchType*/ 19, MVT::v4i32,// ->203677
/*203658*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*203660*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*203663*/                  OPC_EmitMergeInputChains1_2,
/*203664*/                  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, (xor:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                            // Dst: (VPXORDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*203677*/                0, // EndSwitchType
/*203678*/              /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->203745
/*203681*/                OPC_RecordMemRef,
/*203682*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*203683*/                OPC_CheckFoldableChainNode,
/*203684*/                OPC_RecordChild1, // #3 = $src2
/*203685*/                OPC_Scope, 28, /*->203715*/ // 2 children in Scope
/*203687*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*203689*/                  OPC_MoveParent,
/*203690*/                  OPC_MoveParent,
/*203691*/                  OPC_MoveChild2,
/*203692*/                  OPC_CheckImmAllZerosV,
/*203693*/                  OPC_MoveParent,
/*203694*/                  OPC_CheckType, MVT::v4i64,
/*203696*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*203698*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*203701*/                  OPC_EmitMergeInputChains1_2,
/*203702*/                  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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                            // Dst: (VPXORQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*203715*/                /*Scope*/ 28, /*->203744*/
/*203716*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*203718*/                  OPC_MoveParent,
/*203719*/                  OPC_MoveParent,
/*203720*/                  OPC_MoveChild2,
/*203721*/                  OPC_CheckImmAllZerosV,
/*203722*/                  OPC_MoveParent,
/*203723*/                  OPC_CheckType, MVT::v4i32,
/*203725*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*203727*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*203730*/                  OPC_EmitMergeInputChains1_2,
/*203731*/                  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, (xor:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                            // Dst: (VPXORDZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*203744*/                0, /*End of Scope*/
/*203745*/              0, // EndSwitchOpcode
/*203746*/            /*Scope*/ 5|128,1/*133*/, /*->203881*/
/*203748*/              OPC_MoveChild0,
/*203749*/              OPC_SwitchOpcode /*2 cases */, 58, TARGET_VAL(ISD::LOAD),// ->203811
/*203753*/                OPC_RecordMemRef,
/*203754*/                OPC_RecordNode, // #1 = 'ld' chained node
/*203755*/                OPC_CheckFoldableChainNode,
/*203756*/                OPC_RecordChild1, // #2 = $src2
/*203757*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*203759*/                OPC_CheckPredicate, 9, // Predicate_load
/*203761*/                OPC_MoveParent,
/*203762*/                OPC_RecordChild1, // #3 = $src1
/*203763*/                OPC_MoveParent,
/*203764*/                OPC_MoveChild2,
/*203765*/                OPC_CheckImmAllZerosV,
/*203766*/                OPC_MoveParent,
/*203767*/                OPC_SwitchType /*2 cases */, 19, MVT::v4i64,// ->203789
/*203770*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*203772*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*203775*/                  OPC_EmitMergeInputChains1_1,
/*203776*/                  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>>, VR256X:{ *:[v4i64] }:$src1), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                            // Dst: (VPXORQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*203789*/                /*SwitchType*/ 19, MVT::v4i32,// ->203810
/*203791*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*203793*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*203796*/                  OPC_EmitMergeInputChains1_1,
/*203797*/                  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, (xor:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4i32] }:$src1), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                            // Dst: (VPXORDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*203810*/                0, // EndSwitchType
/*203811*/              /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->203880
/*203814*/                OPC_RecordMemRef,
/*203815*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*203816*/                OPC_CheckFoldableChainNode,
/*203817*/                OPC_RecordChild1, // #2 = $src2
/*203818*/                OPC_Scope, 29, /*->203849*/ // 2 children in Scope
/*203820*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*203822*/                  OPC_MoveParent,
/*203823*/                  OPC_RecordChild1, // #3 = $src1
/*203824*/                  OPC_MoveParent,
/*203825*/                  OPC_MoveChild2,
/*203826*/                  OPC_CheckImmAllZerosV,
/*203827*/                  OPC_MoveParent,
/*203828*/                  OPC_CheckType, MVT::v4i64,
/*203830*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*203832*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*203835*/                  OPC_EmitMergeInputChains1_1,
/*203836*/                  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] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src1), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                            // Dst: (VPXORQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*203849*/                /*Scope*/ 29, /*->203879*/
/*203850*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*203852*/                  OPC_MoveParent,
/*203853*/                  OPC_RecordChild1, // #3 = $src1
/*203854*/                  OPC_MoveParent,
/*203855*/                  OPC_MoveChild2,
/*203856*/                  OPC_CheckImmAllZerosV,
/*203857*/                  OPC_MoveParent,
/*203858*/                  OPC_CheckType, MVT::v4i32,
/*203860*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*203862*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*203865*/                  OPC_EmitMergeInputChains1_1,
/*203866*/                  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, (xor:{ *:[v4i32] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4i32] }:$src1), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                            // Dst: (VPXORDZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*203879*/                0, /*End of Scope*/
/*203880*/              0, // EndSwitchOpcode
/*203881*/            0, /*End of Scope*/
/*203882*/          /*SwitchOpcode*/ 3|128,1/*131*/, TARGET_VAL(X86ISD::ANDNP),// ->204017
/*203886*/            OPC_RecordChild0, // #1 = $src1
/*203887*/            OPC_MoveChild1,
/*203888*/            OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->203949
/*203892*/              OPC_RecordMemRef,
/*203893*/              OPC_RecordNode, // #2 = 'ld' chained node
/*203894*/              OPC_CheckFoldableChainNode,
/*203895*/              OPC_RecordChild1, // #3 = $src2
/*203896*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*203898*/              OPC_CheckPredicate, 9, // Predicate_load
/*203900*/              OPC_MoveParent,
/*203901*/              OPC_MoveParent,
/*203902*/              OPC_MoveChild2,
/*203903*/              OPC_CheckImmAllZerosV,
/*203904*/              OPC_MoveParent,
/*203905*/              OPC_SwitchType /*2 cases */, 19, MVT::v4i64,// ->203927
/*203908*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*203910*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*203913*/                OPC_EmitMergeInputChains1_2,
/*203914*/                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>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                          // Dst: (VPANDNQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*203927*/              /*SwitchType*/ 19, MVT::v4i32,// ->203948
/*203929*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*203931*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*203934*/                OPC_EmitMergeInputChains1_2,
/*203935*/                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, (X86andnp:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                          // Dst: (VPANDNDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*203948*/              0, // EndSwitchType
/*203949*/            /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->204016
/*203952*/              OPC_RecordMemRef,
/*203953*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*203954*/              OPC_CheckFoldableChainNode,
/*203955*/              OPC_RecordChild1, // #3 = $src2
/*203956*/              OPC_Scope, 28, /*->203986*/ // 2 children in Scope
/*203958*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*203960*/                OPC_MoveParent,
/*203961*/                OPC_MoveParent,
/*203962*/                OPC_MoveChild2,
/*203963*/                OPC_CheckImmAllZerosV,
/*203964*/                OPC_MoveParent,
/*203965*/                OPC_CheckType, MVT::v4i64,
/*203967*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*203969*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*203972*/                OPC_EmitMergeInputChains1_2,
/*203973*/                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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                          // Dst: (VPANDNQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*203986*/              /*Scope*/ 28, /*->204015*/
/*203987*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*203989*/                OPC_MoveParent,
/*203990*/                OPC_MoveParent,
/*203991*/                OPC_MoveChild2,
/*203992*/                OPC_CheckImmAllZerosV,
/*203993*/                OPC_MoveParent,
/*203994*/                OPC_CheckType, MVT::v4i32,
/*203996*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*203998*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*204001*/                OPC_EmitMergeInputChains1_2,
/*204002*/                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, (X86andnp:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                          // Dst: (VPANDNDZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*204015*/              0, /*End of Scope*/
/*204016*/            0, // EndSwitchOpcode
/*204017*/          /*SwitchOpcode*/ 71, TARGET_VAL(X86ISD::VSHL),// ->204091
/*204020*/            OPC_RecordChild0, // #1 = $src1
/*204021*/            OPC_MoveChild1,
/*204022*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*204025*/            OPC_RecordMemRef,
/*204026*/            OPC_RecordNode, // #2 = 'ld' chained node
/*204027*/            OPC_CheckFoldableChainNode,
/*204028*/            OPC_RecordChild1, // #3 = $src2
/*204029*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*204031*/            OPC_CheckPredicate, 9, // Predicate_load
/*204033*/            OPC_SwitchType /*2 cases */, 26, MVT::v4i32,// ->204062
/*204036*/              OPC_MoveParent,
/*204037*/              OPC_MoveParent,
/*204038*/              OPC_MoveChild2,
/*204039*/              OPC_CheckImmAllZerosV,
/*204040*/              OPC_MoveParent,
/*204041*/              OPC_CheckType, MVT::v4i32,
/*204043*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*204045*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*204048*/              OPC_EmitMergeInputChains1_2,
/*204049*/              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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                        // Dst: (VPSLLDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*204062*/            /*SwitchType*/ 26, MVT::v2i64,// ->204090
/*204064*/              OPC_MoveParent,
/*204065*/              OPC_MoveParent,
/*204066*/              OPC_MoveChild2,
/*204067*/              OPC_CheckImmAllZerosV,
/*204068*/              OPC_MoveParent,
/*204069*/              OPC_CheckType, MVT::v4i64,
/*204071*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*204073*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*204076*/              OPC_EmitMergeInputChains1_2,
/*204077*/              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>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                        // Dst: (VPSLLQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*204090*/            0, // EndSwitchType
/*204091*/          /*SwitchOpcode*/ 71, TARGET_VAL(X86ISD::VSRA),// ->204165
/*204094*/            OPC_RecordChild0, // #1 = $src1
/*204095*/            OPC_MoveChild1,
/*204096*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*204099*/            OPC_RecordMemRef,
/*204100*/            OPC_RecordNode, // #2 = 'ld' chained node
/*204101*/            OPC_CheckFoldableChainNode,
/*204102*/            OPC_RecordChild1, // #3 = $src2
/*204103*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*204105*/            OPC_CheckPredicate, 9, // Predicate_load
/*204107*/            OPC_SwitchType /*2 cases */, 26, MVT::v4i32,// ->204136
/*204110*/              OPC_MoveParent,
/*204111*/              OPC_MoveParent,
/*204112*/              OPC_MoveChild2,
/*204113*/              OPC_CheckImmAllZerosV,
/*204114*/              OPC_MoveParent,
/*204115*/              OPC_CheckType, MVT::v4i32,
/*204117*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*204119*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*204122*/              OPC_EmitMergeInputChains1_2,
/*204123*/              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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                        // Dst: (VPSRADZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*204136*/            /*SwitchType*/ 26, MVT::v2i64,// ->204164
/*204138*/              OPC_MoveParent,
/*204139*/              OPC_MoveParent,
/*204140*/              OPC_MoveChild2,
/*204141*/              OPC_CheckImmAllZerosV,
/*204142*/              OPC_MoveParent,
/*204143*/              OPC_CheckType, MVT::v4i64,
/*204145*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*204147*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*204150*/              OPC_EmitMergeInputChains1_2,
/*204151*/              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>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                        // Dst: (VPSRAQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*204164*/            0, // EndSwitchType
/*204165*/          /*SwitchOpcode*/ 71, TARGET_VAL(X86ISD::VSRL),// ->204239
/*204168*/            OPC_RecordChild0, // #1 = $src1
/*204169*/            OPC_MoveChild1,
/*204170*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*204173*/            OPC_RecordMemRef,
/*204174*/            OPC_RecordNode, // #2 = 'ld' chained node
/*204175*/            OPC_CheckFoldableChainNode,
/*204176*/            OPC_RecordChild1, // #3 = $src2
/*204177*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*204179*/            OPC_CheckPredicate, 9, // Predicate_load
/*204181*/            OPC_SwitchType /*2 cases */, 26, MVT::v4i32,// ->204210
/*204184*/              OPC_MoveParent,
/*204185*/              OPC_MoveParent,
/*204186*/              OPC_MoveChild2,
/*204187*/              OPC_CheckImmAllZerosV,
/*204188*/              OPC_MoveParent,
/*204189*/              OPC_CheckType, MVT::v4i32,
/*204191*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*204193*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*204196*/              OPC_EmitMergeInputChains1_2,
/*204197*/              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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                        // Dst: (VPSRLDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*204210*/            /*SwitchType*/ 26, MVT::v2i64,// ->204238
/*204212*/              OPC_MoveParent,
/*204213*/              OPC_MoveParent,
/*204214*/              OPC_MoveChild2,
/*204215*/              OPC_CheckImmAllZerosV,
/*204216*/              OPC_MoveParent,
/*204217*/              OPC_CheckType, MVT::v4i64,
/*204219*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*204221*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*204224*/              OPC_EmitMergeInputChains1_2,
/*204225*/              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>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                        // Dst: (VPSRLQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*204238*/            0, // EndSwitchType
/*204239*/          /*SwitchOpcode*/ 3|128,1/*131*/, TARGET_VAL(X86ISD::VSHLV),// ->204374
/*204243*/            OPC_RecordChild0, // #1 = $src1
/*204244*/            OPC_MoveChild1,
/*204245*/            OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->204306
/*204249*/              OPC_RecordMemRef,
/*204250*/              OPC_RecordNode, // #2 = 'ld' chained node
/*204251*/              OPC_CheckFoldableChainNode,
/*204252*/              OPC_RecordChild1, // #3 = $src2
/*204253*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*204255*/              OPC_CheckPredicate, 9, // Predicate_load
/*204257*/              OPC_MoveParent,
/*204258*/              OPC_MoveParent,
/*204259*/              OPC_MoveChild2,
/*204260*/              OPC_CheckImmAllZerosV,
/*204261*/              OPC_MoveParent,
/*204262*/              OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->204284
/*204265*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*204267*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*204270*/                OPC_EmitMergeInputChains1_2,
/*204271*/                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, (X86vshlv:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                          // Dst: (VPSLLVDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*204284*/              /*SwitchType*/ 19, MVT::v4i64,// ->204305
/*204286*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*204288*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*204291*/                OPC_EmitMergeInputChains1_2,
/*204292*/                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, (X86vshlv:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                          // Dst: (VPSLLVQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*204305*/              0, // EndSwitchType
/*204306*/            /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->204373
/*204309*/              OPC_RecordMemRef,
/*204310*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*204311*/              OPC_CheckFoldableChainNode,
/*204312*/              OPC_RecordChild1, // #3 = $src2
/*204313*/              OPC_Scope, 28, /*->204343*/ // 2 children in Scope
/*204315*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*204317*/                OPC_MoveParent,
/*204318*/                OPC_MoveParent,
/*204319*/                OPC_MoveChild2,
/*204320*/                OPC_CheckImmAllZerosV,
/*204321*/                OPC_MoveParent,
/*204322*/                OPC_CheckType, MVT::v4i32,
/*204324*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*204326*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*204329*/                OPC_EmitMergeInputChains1_2,
/*204330*/                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, (X86vshlv:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                          // Dst: (VPSLLVDZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*204343*/              /*Scope*/ 28, /*->204372*/
/*204344*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*204346*/                OPC_MoveParent,
/*204347*/                OPC_MoveParent,
/*204348*/                OPC_MoveChild2,
/*204349*/                OPC_CheckImmAllZerosV,
/*204350*/                OPC_MoveParent,
/*204351*/                OPC_CheckType, MVT::v4i64,
/*204353*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*204355*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*204358*/                OPC_EmitMergeInputChains1_2,
/*204359*/                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, (X86vshlv:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                          // Dst: (VPSLLVQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*204372*/              0, /*End of Scope*/
/*204373*/            0, // EndSwitchOpcode
/*204374*/          /*SwitchOpcode*/ 3|128,1/*131*/, TARGET_VAL(X86ISD::VSRAV),// ->204509
/*204378*/            OPC_RecordChild0, // #1 = $src1
/*204379*/            OPC_MoveChild1,
/*204380*/            OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->204441
/*204384*/              OPC_RecordMemRef,
/*204385*/              OPC_RecordNode, // #2 = 'ld' chained node
/*204386*/              OPC_CheckFoldableChainNode,
/*204387*/              OPC_RecordChild1, // #3 = $src2
/*204388*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*204390*/              OPC_CheckPredicate, 9, // Predicate_load
/*204392*/              OPC_MoveParent,
/*204393*/              OPC_MoveParent,
/*204394*/              OPC_MoveChild2,
/*204395*/              OPC_CheckImmAllZerosV,
/*204396*/              OPC_MoveParent,
/*204397*/              OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->204419
/*204400*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*204402*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*204405*/                OPC_EmitMergeInputChains1_2,
/*204406*/                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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                          // Dst: (VPSRAVDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*204419*/              /*SwitchType*/ 19, MVT::v4i64,// ->204440
/*204421*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*204423*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*204426*/                OPC_EmitMergeInputChains1_2,
/*204427*/                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>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                          // Dst: (VPSRAVQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*204440*/              0, // EndSwitchType
/*204441*/            /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->204508
/*204444*/              OPC_RecordMemRef,
/*204445*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*204446*/              OPC_CheckFoldableChainNode,
/*204447*/              OPC_RecordChild1, // #3 = $src2
/*204448*/              OPC_Scope, 28, /*->204478*/ // 2 children in Scope
/*204450*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*204452*/                OPC_MoveParent,
/*204453*/                OPC_MoveParent,
/*204454*/                OPC_MoveChild2,
/*204455*/                OPC_CheckImmAllZerosV,
/*204456*/                OPC_MoveParent,
/*204457*/                OPC_CheckType, MVT::v4i32,
/*204459*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*204461*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*204464*/                OPC_EmitMergeInputChains1_2,
/*204465*/                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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                          // Dst: (VPSRAVDZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*204478*/              /*Scope*/ 28, /*->204507*/
/*204479*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*204481*/                OPC_MoveParent,
/*204482*/                OPC_MoveParent,
/*204483*/                OPC_MoveChild2,
/*204484*/                OPC_CheckImmAllZerosV,
/*204485*/                OPC_MoveParent,
/*204486*/                OPC_CheckType, MVT::v4i64,
/*204488*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*204490*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*204493*/                OPC_EmitMergeInputChains1_2,
/*204494*/                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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                          // Dst: (VPSRAVQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*204507*/              0, /*End of Scope*/
/*204508*/            0, // EndSwitchOpcode
/*204509*/          /*SwitchOpcode*/ 3|128,1/*131*/, TARGET_VAL(X86ISD::VSRLV),// ->204644
/*204513*/            OPC_RecordChild0, // #1 = $src1
/*204514*/            OPC_MoveChild1,
/*204515*/            OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->204576
/*204519*/              OPC_RecordMemRef,
/*204520*/              OPC_RecordNode, // #2 = 'ld' chained node
/*204521*/              OPC_CheckFoldableChainNode,
/*204522*/              OPC_RecordChild1, // #3 = $src2
/*204523*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*204525*/              OPC_CheckPredicate, 9, // Predicate_load
/*204527*/              OPC_MoveParent,
/*204528*/              OPC_MoveParent,
/*204529*/              OPC_MoveChild2,
/*204530*/              OPC_CheckImmAllZerosV,
/*204531*/              OPC_MoveParent,
/*204532*/              OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->204554
/*204535*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*204537*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*204540*/                OPC_EmitMergeInputChains1_2,
/*204541*/                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, (X86vsrlv:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                          // Dst: (VPSRLVDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*204554*/              /*SwitchType*/ 19, MVT::v4i64,// ->204575
/*204556*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*204558*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*204561*/                OPC_EmitMergeInputChains1_2,
/*204562*/                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, (X86vsrlv:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                          // Dst: (VPSRLVQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*204575*/              0, // EndSwitchType
/*204576*/            /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->204643
/*204579*/              OPC_RecordMemRef,
/*204580*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*204581*/              OPC_CheckFoldableChainNode,
/*204582*/              OPC_RecordChild1, // #3 = $src2
/*204583*/              OPC_Scope, 28, /*->204613*/ // 2 children in Scope
/*204585*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*204587*/                OPC_MoveParent,
/*204588*/                OPC_MoveParent,
/*204589*/                OPC_MoveChild2,
/*204590*/                OPC_CheckImmAllZerosV,
/*204591*/                OPC_MoveParent,
/*204592*/                OPC_CheckType, MVT::v4i32,
/*204594*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*204596*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*204599*/                OPC_EmitMergeInputChains1_2,
/*204600*/                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, (X86vsrlv:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                          // Dst: (VPSRLVDZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*204613*/              /*Scope*/ 28, /*->204642*/
/*204614*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*204616*/                OPC_MoveParent,
/*204617*/                OPC_MoveParent,
/*204618*/                OPC_MoveChild2,
/*204619*/                OPC_CheckImmAllZerosV,
/*204620*/                OPC_MoveParent,
/*204621*/                OPC_CheckType, MVT::v4i64,
/*204623*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*204625*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*204628*/                OPC_EmitMergeInputChains1_2,
/*204629*/                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, (X86vsrlv:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                          // Dst: (VPSRLVQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*204642*/              0, /*End of Scope*/
/*204643*/            0, // EndSwitchOpcode
/*204644*/          /*SwitchOpcode*/ 14|128,1/*142*/, TARGET_VAL(ISD::ROTR),// ->204790
/*204648*/            OPC_RecordChild0, // #1 = $src1
/*204649*/            OPC_MoveChild1,
/*204650*/            OPC_SwitchOpcode /*2 cases */, 66, TARGET_VAL(ISD::LOAD),// ->204720
/*204654*/              OPC_RecordMemRef,
/*204655*/              OPC_RecordNode, // #2 = 'ld' chained node
/*204656*/              OPC_CheckFoldableChainNode,
/*204657*/              OPC_RecordChild1, // #3 = $src2
/*204658*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*204660*/              OPC_CheckPredicate, 9, // Predicate_load
/*204662*/              OPC_SwitchType /*2 cases */, 26, MVT::v4i32,// ->204691
/*204665*/                OPC_MoveParent,
/*204666*/                OPC_MoveParent,
/*204667*/                OPC_MoveChild2,
/*204668*/                OPC_CheckImmAllZerosV,
/*204669*/                OPC_MoveParent,
/*204670*/                OPC_CheckType, MVT::v4i32,
/*204672*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*204674*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*204677*/                OPC_EmitMergeInputChains1_2,
/*204678*/                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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                          // Dst: (VPRORVDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*204691*/              /*SwitchType*/ 26, MVT::v4i64,// ->204719
/*204693*/                OPC_MoveParent,
/*204694*/                OPC_MoveParent,
/*204695*/                OPC_MoveChild2,
/*204696*/                OPC_CheckImmAllZerosV,
/*204697*/                OPC_MoveParent,
/*204698*/                OPC_CheckType, MVT::v4i64,
/*204700*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*204702*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*204705*/                OPC_EmitMergeInputChains1_2,
/*204706*/                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>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                          // Dst: (VPRORVQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*204719*/              0, // EndSwitchType
/*204720*/            /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->204789
/*204723*/              OPC_RecordMemRef,
/*204724*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*204725*/              OPC_CheckFoldableChainNode,
/*204726*/              OPC_RecordChild1, // #3 = $src2
/*204727*/              OPC_SwitchType /*2 cases */, 28, MVT::v4i32,// ->204758
/*204730*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*204732*/                OPC_MoveParent,
/*204733*/                OPC_MoveParent,
/*204734*/                OPC_MoveChild2,
/*204735*/                OPC_CheckImmAllZerosV,
/*204736*/                OPC_MoveParent,
/*204737*/                OPC_CheckType, MVT::v4i32,
/*204739*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*204741*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*204744*/                OPC_EmitMergeInputChains1_2,
/*204745*/                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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                          // Dst: (VPRORVDZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*204758*/              /*SwitchType*/ 28, MVT::v4i64,// ->204788
/*204760*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*204762*/                OPC_MoveParent,
/*204763*/                OPC_MoveParent,
/*204764*/                OPC_MoveChild2,
/*204765*/                OPC_CheckImmAllZerosV,
/*204766*/                OPC_MoveParent,
/*204767*/                OPC_CheckType, MVT::v4i64,
/*204769*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*204771*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*204774*/                OPC_EmitMergeInputChains1_2,
/*204775*/                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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                          // Dst: (VPRORVQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*204788*/              0, // EndSwitchType
/*204789*/            0, // EndSwitchOpcode
/*204790*/          /*SwitchOpcode*/ 14|128,1/*142*/, TARGET_VAL(ISD::ROTL),// ->204936
/*204794*/            OPC_RecordChild0, // #1 = $src1
/*204795*/            OPC_MoveChild1,
/*204796*/            OPC_SwitchOpcode /*2 cases */, 66, TARGET_VAL(ISD::LOAD),// ->204866
/*204800*/              OPC_RecordMemRef,
/*204801*/              OPC_RecordNode, // #2 = 'ld' chained node
/*204802*/              OPC_CheckFoldableChainNode,
/*204803*/              OPC_RecordChild1, // #3 = $src2
/*204804*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*204806*/              OPC_CheckPredicate, 9, // Predicate_load
/*204808*/              OPC_SwitchType /*2 cases */, 26, MVT::v4i32,// ->204837
/*204811*/                OPC_MoveParent,
/*204812*/                OPC_MoveParent,
/*204813*/                OPC_MoveChild2,
/*204814*/                OPC_CheckImmAllZerosV,
/*204815*/                OPC_MoveParent,
/*204816*/                OPC_CheckType, MVT::v4i32,
/*204818*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*204820*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*204823*/                OPC_EmitMergeInputChains1_2,
/*204824*/                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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                          // Dst: (VPROLVDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*204837*/              /*SwitchType*/ 26, MVT::v4i64,// ->204865
/*204839*/                OPC_MoveParent,
/*204840*/                OPC_MoveParent,
/*204841*/                OPC_MoveChild2,
/*204842*/                OPC_CheckImmAllZerosV,
/*204843*/                OPC_MoveParent,
/*204844*/                OPC_CheckType, MVT::v4i64,
/*204846*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*204848*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*204851*/                OPC_EmitMergeInputChains1_2,
/*204852*/                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>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                          // Dst: (VPROLVQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*204865*/              0, // EndSwitchType
/*204866*/            /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->204935
/*204869*/              OPC_RecordMemRef,
/*204870*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*204871*/              OPC_CheckFoldableChainNode,
/*204872*/              OPC_RecordChild1, // #3 = $src2
/*204873*/              OPC_SwitchType /*2 cases */, 28, MVT::v4i32,// ->204904
/*204876*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*204878*/                OPC_MoveParent,
/*204879*/                OPC_MoveParent,
/*204880*/                OPC_MoveChild2,
/*204881*/                OPC_CheckImmAllZerosV,
/*204882*/                OPC_MoveParent,
/*204883*/                OPC_CheckType, MVT::v4i32,
/*204885*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*204887*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*204890*/                OPC_EmitMergeInputChains1_2,
/*204891*/                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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                          // Dst: (VPROLVDZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*204904*/              /*SwitchType*/ 28, MVT::v4i64,// ->204934
/*204906*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*204908*/                OPC_MoveParent,
/*204909*/                OPC_MoveParent,
/*204910*/                OPC_MoveChild2,
/*204911*/                OPC_CheckImmAllZerosV,
/*204912*/                OPC_MoveParent,
/*204913*/                OPC_CheckType, MVT::v4i64,
/*204915*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*204917*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*204920*/                OPC_EmitMergeInputChains1_2,
/*204921*/                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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                          // Dst: (VPROLVQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*204934*/              0, // EndSwitchType
/*204935*/            0, // EndSwitchOpcode
/*204936*/          /*SwitchOpcode*/ 76, TARGET_VAL(X86ISD::VPERMV),// ->205015
/*204939*/            OPC_RecordChild0, // #1 = $src1
/*204940*/            OPC_MoveChild1,
/*204941*/            OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->204979
/*204945*/              OPC_RecordMemRef,
/*204946*/              OPC_RecordNode, // #2 = 'ld' chained node
/*204947*/              OPC_CheckFoldableChainNode,
/*204948*/              OPC_RecordChild1, // #3 = $src2
/*204949*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*204951*/              OPC_CheckPredicate, 9, // Predicate_load
/*204953*/              OPC_MoveParent,
/*204954*/              OPC_MoveParent,
/*204955*/              OPC_MoveChild2,
/*204956*/              OPC_CheckImmAllZerosV,
/*204957*/              OPC_MoveParent,
/*204958*/              OPC_CheckType, MVT::v4i64,
/*204960*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*204962*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*204965*/              OPC_EmitMergeInputChains1_2,
/*204966*/              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>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                        // Dst: (VPERMQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*204979*/            /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->205014
/*204982*/              OPC_RecordMemRef,
/*204983*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*204984*/              OPC_CheckFoldableChainNode,
/*204985*/              OPC_RecordChild1, // #3 = $src2
/*204986*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*204988*/              OPC_MoveParent,
/*204989*/              OPC_MoveParent,
/*204990*/              OPC_MoveChild2,
/*204991*/              OPC_CheckImmAllZerosV,
/*204992*/              OPC_MoveParent,
/*204993*/              OPC_CheckType, MVT::v4i64,
/*204995*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*204997*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*205000*/              OPC_EmitMergeInputChains1_2,
/*205001*/              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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                        // Dst: (VPERMQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*205014*/            0, // EndSwitchOpcode
/*205015*/          /*SwitchOpcode*/ 37|128,1/*165*/, TARGET_VAL(X86ISD::VPMADD52L),// ->205184
/*205019*/            OPC_Scope, 80, /*->205101*/ // 2 children in Scope
/*205021*/              OPC_RecordChild0, // #1 = $src2
/*205022*/              OPC_MoveChild1,
/*205023*/              OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->205063
/*205027*/                OPC_RecordMemRef,
/*205028*/                OPC_RecordNode, // #2 = 'ld' chained node
/*205029*/                OPC_CheckFoldableChainNode,
/*205030*/                OPC_RecordChild1, // #3 = $src3
/*205031*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*205033*/                OPC_CheckPredicate, 9, // Predicate_load
/*205035*/                OPC_MoveParent,
/*205036*/                OPC_RecordChild2, // #4 = $src1
/*205037*/                OPC_MoveParent,
/*205038*/                OPC_MoveChild2,
/*205039*/                OPC_CheckImmAllZerosV,
/*205040*/                OPC_MoveParent,
/*205041*/                OPC_CheckType, MVT::v4i64,
/*205043*/                OPC_CheckPatternPredicate, 184, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*205045*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*205048*/                OPC_EmitMergeInputChains1_2,
/*205049*/                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>>, VR256X:{ *:[v4i64] }:$src1), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                          // Dst: (VPMADD52LUQZ256mkz:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*205063*/              /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->205100
/*205066*/                OPC_RecordMemRef,
/*205067*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*205068*/                OPC_CheckFoldableChainNode,
/*205069*/                OPC_RecordChild1, // #3 = $src3
/*205070*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*205072*/                OPC_MoveParent,
/*205073*/                OPC_RecordChild2, // #4 = $src1
/*205074*/                OPC_MoveParent,
/*205075*/                OPC_MoveChild2,
/*205076*/                OPC_CheckImmAllZerosV,
/*205077*/                OPC_MoveParent,
/*205078*/                OPC_CheckType, MVT::v4i64,
/*205080*/                OPC_CheckPatternPredicate, 184, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*205082*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*205085*/                OPC_EmitMergeInputChains1_2,
/*205086*/                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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src1), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                          // Dst: (VPMADD52LUQZ256mbkz:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*205100*/              0, // EndSwitchOpcode
/*205101*/            /*Scope*/ 81, /*->205183*/
/*205102*/              OPC_MoveChild0,
/*205103*/              OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->205144
/*205107*/                OPC_RecordMemRef,
/*205108*/                OPC_RecordNode, // #1 = 'ld' chained node
/*205109*/                OPC_CheckFoldableChainNode,
/*205110*/                OPC_RecordChild1, // #2 = $src3
/*205111*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*205113*/                OPC_CheckPredicate, 9, // Predicate_load
/*205115*/                OPC_MoveParent,
/*205116*/                OPC_RecordChild1, // #3 = $src2
/*205117*/                OPC_RecordChild2, // #4 = $src1
/*205118*/                OPC_MoveParent,
/*205119*/                OPC_MoveChild2,
/*205120*/                OPC_CheckImmAllZerosV,
/*205121*/                OPC_MoveParent,
/*205122*/                OPC_CheckType, MVT::v4i64,
/*205124*/                OPC_CheckPatternPredicate, 184, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*205126*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*205129*/                OPC_EmitMergeInputChains1_1,
/*205130*/                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>>, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src1), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                          // Dst: (VPMADD52LUQZ256mkz:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*205144*/              /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->205182
/*205147*/                OPC_RecordMemRef,
/*205148*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*205149*/                OPC_CheckFoldableChainNode,
/*205150*/                OPC_RecordChild1, // #2 = $src3
/*205151*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*205153*/                OPC_MoveParent,
/*205154*/                OPC_RecordChild1, // #3 = $src2
/*205155*/                OPC_RecordChild2, // #4 = $src1
/*205156*/                OPC_MoveParent,
/*205157*/                OPC_MoveChild2,
/*205158*/                OPC_CheckImmAllZerosV,
/*205159*/                OPC_MoveParent,
/*205160*/                OPC_CheckType, MVT::v4i64,
/*205162*/                OPC_CheckPatternPredicate, 184, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*205164*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*205167*/                OPC_EmitMergeInputChains1_1,
/*205168*/                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] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src1), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                          // Dst: (VPMADD52LUQZ256mbkz:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*205182*/              0, // EndSwitchOpcode
/*205183*/            0, /*End of Scope*/
/*205184*/          /*SwitchOpcode*/ 37|128,1/*165*/, TARGET_VAL(X86ISD::VPMADD52H),// ->205353
/*205188*/            OPC_Scope, 80, /*->205270*/ // 2 children in Scope
/*205190*/              OPC_RecordChild0, // #1 = $src2
/*205191*/              OPC_MoveChild1,
/*205192*/              OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->205232
/*205196*/                OPC_RecordMemRef,
/*205197*/                OPC_RecordNode, // #2 = 'ld' chained node
/*205198*/                OPC_CheckFoldableChainNode,
/*205199*/                OPC_RecordChild1, // #3 = $src3
/*205200*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*205202*/                OPC_CheckPredicate, 9, // Predicate_load
/*205204*/                OPC_MoveParent,
/*205205*/                OPC_RecordChild2, // #4 = $src1
/*205206*/                OPC_MoveParent,
/*205207*/                OPC_MoveChild2,
/*205208*/                OPC_CheckImmAllZerosV,
/*205209*/                OPC_MoveParent,
/*205210*/                OPC_CheckType, MVT::v4i64,
/*205212*/                OPC_CheckPatternPredicate, 184, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*205214*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*205217*/                OPC_EmitMergeInputChains1_2,
/*205218*/                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>>, VR256X:{ *:[v4i64] }:$src1), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                          // Dst: (VPMADD52HUQZ256mkz:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*205232*/              /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->205269
/*205235*/                OPC_RecordMemRef,
/*205236*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*205237*/                OPC_CheckFoldableChainNode,
/*205238*/                OPC_RecordChild1, // #3 = $src3
/*205239*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*205241*/                OPC_MoveParent,
/*205242*/                OPC_RecordChild2, // #4 = $src1
/*205243*/                OPC_MoveParent,
/*205244*/                OPC_MoveChild2,
/*205245*/                OPC_CheckImmAllZerosV,
/*205246*/                OPC_MoveParent,
/*205247*/                OPC_CheckType, MVT::v4i64,
/*205249*/                OPC_CheckPatternPredicate, 184, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*205251*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*205254*/                OPC_EmitMergeInputChains1_2,
/*205255*/                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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src1), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                          // Dst: (VPMADD52HUQZ256mbkz:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*205269*/              0, // EndSwitchOpcode
/*205270*/            /*Scope*/ 81, /*->205352*/
/*205271*/              OPC_MoveChild0,
/*205272*/              OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->205313
/*205276*/                OPC_RecordMemRef,
/*205277*/                OPC_RecordNode, // #1 = 'ld' chained node
/*205278*/                OPC_CheckFoldableChainNode,
/*205279*/                OPC_RecordChild1, // #2 = $src3
/*205280*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*205282*/                OPC_CheckPredicate, 9, // Predicate_load
/*205284*/                OPC_MoveParent,
/*205285*/                OPC_RecordChild1, // #3 = $src2
/*205286*/                OPC_RecordChild2, // #4 = $src1
/*205287*/                OPC_MoveParent,
/*205288*/                OPC_MoveChild2,
/*205289*/                OPC_CheckImmAllZerosV,
/*205290*/                OPC_MoveParent,
/*205291*/                OPC_CheckType, MVT::v4i64,
/*205293*/                OPC_CheckPatternPredicate, 184, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*205295*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*205298*/                OPC_EmitMergeInputChains1_1,
/*205299*/                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>>, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src1), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                          // Dst: (VPMADD52HUQZ256mkz:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*205313*/              /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->205351
/*205316*/                OPC_RecordMemRef,
/*205317*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*205318*/                OPC_CheckFoldableChainNode,
/*205319*/                OPC_RecordChild1, // #2 = $src3
/*205320*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*205322*/                OPC_MoveParent,
/*205323*/                OPC_RecordChild1, // #3 = $src2
/*205324*/                OPC_RecordChild2, // #4 = $src1
/*205325*/                OPC_MoveParent,
/*205326*/                OPC_MoveChild2,
/*205327*/                OPC_CheckImmAllZerosV,
/*205328*/                OPC_MoveParent,
/*205329*/                OPC_CheckType, MVT::v4i64,
/*205331*/                OPC_CheckPatternPredicate, 184, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*205333*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*205336*/                OPC_EmitMergeInputChains1_1,
/*205337*/                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] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src1), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                          // Dst: (VPMADD52HUQZ256mbkz:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*205351*/              0, // EndSwitchOpcode
/*205352*/            0, /*End of Scope*/
/*205353*/          /*SwitchOpcode*/ 123|128,1/*251*/, TARGET_VAL(X86ISD::STRICT_CVTTP2SI),// ->205608
/*205357*/            OPC_RecordNode, // #1 = 'X86strict_cvttp2si' chained node
/*205358*/            OPC_CheckFoldableChainNode,
/*205359*/            OPC_MoveChild1,
/*205360*/            OPC_SwitchOpcode /*2 cases */, 120, TARGET_VAL(ISD::LOAD),// ->205484
/*205364*/              OPC_RecordMemRef,
/*205365*/              OPC_RecordNode, // #2 = 'ld' chained node
/*205366*/              OPC_CheckFoldableChainNode,
/*205367*/              OPC_RecordChild1, // #3 = $src
/*205368*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*205370*/              OPC_CheckPredicate, 9, // Predicate_load
/*205372*/              OPC_SwitchType /*2 cases */, 53, MVT::v4f32,// ->205428
/*205375*/                OPC_MoveParent,
/*205376*/                OPC_MoveParent,
/*205377*/                OPC_MoveChild2,
/*205378*/                OPC_CheckImmAllZerosV,
/*205379*/                OPC_MoveParent,
/*205380*/                OPC_SwitchType /*2 cases */, 21, MVT::v4i32,// ->205404
/*205383*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*205385*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*205388*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*205392*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_cvttp2si:{ *:[v4i32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                            // Dst: (VCVTTPS2DQZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*205404*/                /*SwitchType*/ 21, MVT::v4i64,// ->205427
/*205406*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*205408*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*205411*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*205415*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_cvttp2si:{ *:[v4i64] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                            // Dst: (VCVTTPS2QQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*205427*/                0, // EndSwitchType
/*205428*/              /*SwitchType*/ 53, MVT::v4f64,// ->205483
/*205430*/                OPC_MoveParent,
/*205431*/                OPC_MoveParent,
/*205432*/                OPC_MoveChild2,
/*205433*/                OPC_CheckImmAllZerosV,
/*205434*/                OPC_MoveParent,
/*205435*/                OPC_SwitchType /*2 cases */, 21, MVT::v4i32,// ->205459
/*205438*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*205440*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*205443*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*205447*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_cvttp2si:{ *:[v4i32] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                            // Dst: (VCVTTPD2DQZ256rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*205459*/                /*SwitchType*/ 21, MVT::v4i64,// ->205482
/*205461*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*205463*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*205466*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*205470*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_cvttp2si:{ *:[v4i64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                            // Dst: (VCVTTPD2QQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*205482*/                0, // EndSwitchType
/*205483*/              0, // EndSwitchType
/*205484*/            /*SwitchOpcode*/ 120, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->205607
/*205487*/              OPC_RecordMemRef,
/*205488*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*205489*/              OPC_CheckFoldableChainNode,
/*205490*/              OPC_RecordChild1, // #3 = $src
/*205491*/              OPC_SwitchType /*2 cases */, 55, MVT::v4f32,// ->205549
/*205494*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*205496*/                OPC_MoveParent,
/*205497*/                OPC_MoveParent,
/*205498*/                OPC_MoveChild2,
/*205499*/                OPC_CheckImmAllZerosV,
/*205500*/                OPC_MoveParent,
/*205501*/                OPC_SwitchType /*2 cases */, 21, MVT::v4i32,// ->205525
/*205504*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*205506*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*205509*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*205513*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_cvttp2si:{ *:[v4i32] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                            // Dst: (VCVTTPS2DQZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*205525*/                /*SwitchType*/ 21, MVT::v4i64,// ->205548
/*205527*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*205529*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*205532*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*205536*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_cvttp2si:{ *:[v4i64] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                            // Dst: (VCVTTPS2QQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*205548*/                0, // EndSwitchType
/*205549*/              /*SwitchType*/ 55, MVT::v4f64,// ->205606
/*205551*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*205553*/                OPC_MoveParent,
/*205554*/                OPC_MoveParent,
/*205555*/                OPC_MoveChild2,
/*205556*/                OPC_CheckImmAllZerosV,
/*205557*/                OPC_MoveParent,
/*205558*/                OPC_SwitchType /*2 cases */, 21, MVT::v4i32,// ->205582
/*205561*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*205563*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*205566*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*205570*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_cvttp2si:{ *:[v4i32] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                            // Dst: (VCVTTPD2DQZ256rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*205582*/                /*SwitchType*/ 21, MVT::v4i64,// ->205605
/*205584*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*205586*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*205589*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*205593*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_cvttp2si:{ *:[v4i64] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                            // Dst: (VCVTTPD2QQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*205605*/                0, // EndSwitchType
/*205606*/              0, // EndSwitchType
/*205607*/            0, // EndSwitchOpcode
/*205608*/          /*SwitchOpcode*/ 97|128,1/*225*/, TARGET_VAL(X86ISD::CVTTP2SI),// ->205837
/*205612*/            OPC_MoveChild0,
/*205613*/            OPC_SwitchOpcode /*2 cases */, 108, TARGET_VAL(ISD::LOAD),// ->205725
/*205617*/              OPC_RecordMemRef,
/*205618*/              OPC_RecordNode, // #1 = 'ld' chained node
/*205619*/              OPC_CheckFoldableChainNode,
/*205620*/              OPC_RecordChild1, // #2 = $src
/*205621*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*205623*/              OPC_CheckPredicate, 9, // Predicate_load
/*205625*/              OPC_SwitchType /*2 cases */, 47, MVT::v4f32,// ->205675
/*205628*/                OPC_MoveParent,
/*205629*/                OPC_MoveParent,
/*205630*/                OPC_MoveChild2,
/*205631*/                OPC_CheckImmAllZerosV,
/*205632*/                OPC_MoveParent,
/*205633*/                OPC_SwitchType /*2 cases */, 18, MVT::v4i32,// ->205654
/*205636*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*205638*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*205641*/                  OPC_EmitMergeInputChains1_1,
/*205642*/                  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>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                            // Dst: (VCVTTPS2DQZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*205654*/                /*SwitchType*/ 18, MVT::v4i64,// ->205674
/*205656*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*205658*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*205661*/                  OPC_EmitMergeInputChains1_1,
/*205662*/                  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>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                            // Dst: (VCVTTPS2QQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*205674*/                0, // EndSwitchType
/*205675*/              /*SwitchType*/ 47, MVT::v4f64,// ->205724
/*205677*/                OPC_MoveParent,
/*205678*/                OPC_MoveParent,
/*205679*/                OPC_MoveChild2,
/*205680*/                OPC_CheckImmAllZerosV,
/*205681*/                OPC_MoveParent,
/*205682*/                OPC_SwitchType /*2 cases */, 18, MVT::v4i32,// ->205703
/*205685*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*205687*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*205690*/                  OPC_EmitMergeInputChains1_1,
/*205691*/                  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>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                            // Dst: (VCVTTPD2DQZ256rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*205703*/                /*SwitchType*/ 18, MVT::v4i64,// ->205723
/*205705*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*205707*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*205710*/                  OPC_EmitMergeInputChains1_1,
/*205711*/                  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>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                            // Dst: (VCVTTPD2QQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*205723*/                0, // EndSwitchType
/*205724*/              0, // EndSwitchType
/*205725*/            /*SwitchOpcode*/ 108, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->205836
/*205728*/              OPC_RecordMemRef,
/*205729*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*205730*/              OPC_CheckFoldableChainNode,
/*205731*/              OPC_RecordChild1, // #2 = $src
/*205732*/              OPC_SwitchType /*2 cases */, 49, MVT::v4f32,// ->205784
/*205735*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*205737*/                OPC_MoveParent,
/*205738*/                OPC_MoveParent,
/*205739*/                OPC_MoveChild2,
/*205740*/                OPC_CheckImmAllZerosV,
/*205741*/                OPC_MoveParent,
/*205742*/                OPC_SwitchType /*2 cases */, 18, MVT::v4i32,// ->205763
/*205745*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*205747*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*205750*/                  OPC_EmitMergeInputChains1_1,
/*205751*/                  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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                            // Dst: (VCVTTPS2DQZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*205763*/                /*SwitchType*/ 18, MVT::v4i64,// ->205783
/*205765*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*205767*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*205770*/                  OPC_EmitMergeInputChains1_1,
/*205771*/                  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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                            // Dst: (VCVTTPS2QQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*205783*/                0, // EndSwitchType
/*205784*/              /*SwitchType*/ 49, MVT::v4f64,// ->205835
/*205786*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*205788*/                OPC_MoveParent,
/*205789*/                OPC_MoveParent,
/*205790*/                OPC_MoveChild2,
/*205791*/                OPC_CheckImmAllZerosV,
/*205792*/                OPC_MoveParent,
/*205793*/                OPC_SwitchType /*2 cases */, 18, MVT::v4i32,// ->205814
/*205796*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*205798*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*205801*/                  OPC_EmitMergeInputChains1_1,
/*205802*/                  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] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                            // Dst: (VCVTTPD2DQZ256rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*205814*/                /*SwitchType*/ 18, MVT::v4i64,// ->205834
/*205816*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*205818*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*205821*/                  OPC_EmitMergeInputChains1_1,
/*205822*/                  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] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                            // Dst: (VCVTTPD2QQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*205834*/                0, // EndSwitchType
/*205835*/              0, // EndSwitchType
/*205836*/            0, // EndSwitchOpcode
/*205837*/          /*SwitchOpcode*/ 123|128,1/*251*/, TARGET_VAL(X86ISD::STRICT_CVTTP2UI),// ->206092
/*205841*/            OPC_RecordNode, // #1 = 'X86strict_cvttp2ui' chained node
/*205842*/            OPC_CheckFoldableChainNode,
/*205843*/            OPC_MoveChild1,
/*205844*/            OPC_SwitchOpcode /*2 cases */, 120, TARGET_VAL(ISD::LOAD),// ->205968
/*205848*/              OPC_RecordMemRef,
/*205849*/              OPC_RecordNode, // #2 = 'ld' chained node
/*205850*/              OPC_CheckFoldableChainNode,
/*205851*/              OPC_RecordChild1, // #3 = $src
/*205852*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*205854*/              OPC_CheckPredicate, 9, // Predicate_load
/*205856*/              OPC_SwitchType /*2 cases */, 53, MVT::v4f32,// ->205912
/*205859*/                OPC_MoveParent,
/*205860*/                OPC_MoveParent,
/*205861*/                OPC_MoveChild2,
/*205862*/                OPC_CheckImmAllZerosV,
/*205863*/                OPC_MoveParent,
/*205864*/                OPC_SwitchType /*2 cases */, 21, MVT::v4i32,// ->205888
/*205867*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*205869*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*205872*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*205876*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_cvttp2ui:{ *:[v4i32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                            // Dst: (VCVTTPS2UDQZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*205888*/                /*SwitchType*/ 21, MVT::v4i64,// ->205911
/*205890*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*205892*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*205895*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*205899*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_cvttp2ui:{ *:[v4i64] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                            // Dst: (VCVTTPS2UQQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*205911*/                0, // EndSwitchType
/*205912*/              /*SwitchType*/ 53, MVT::v4f64,// ->205967
/*205914*/                OPC_MoveParent,
/*205915*/                OPC_MoveParent,
/*205916*/                OPC_MoveChild2,
/*205917*/                OPC_CheckImmAllZerosV,
/*205918*/                OPC_MoveParent,
/*205919*/                OPC_SwitchType /*2 cases */, 21, MVT::v4i32,// ->205943
/*205922*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*205924*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*205927*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*205931*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_cvttp2ui:{ *:[v4i32] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                            // Dst: (VCVTTPD2UDQZ256rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*205943*/                /*SwitchType*/ 21, MVT::v4i64,// ->205966
/*205945*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*205947*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*205950*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*205954*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_cvttp2ui:{ *:[v4i64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                            // Dst: (VCVTTPD2UQQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*205966*/                0, // EndSwitchType
/*205967*/              0, // EndSwitchType
/*205968*/            /*SwitchOpcode*/ 120, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->206091
/*205971*/              OPC_RecordMemRef,
/*205972*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*205973*/              OPC_CheckFoldableChainNode,
/*205974*/              OPC_RecordChild1, // #3 = $src
/*205975*/              OPC_SwitchType /*2 cases */, 55, MVT::v4f32,// ->206033
/*205978*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*205980*/                OPC_MoveParent,
/*205981*/                OPC_MoveParent,
/*205982*/                OPC_MoveChild2,
/*205983*/                OPC_CheckImmAllZerosV,
/*205984*/                OPC_MoveParent,
/*205985*/                OPC_SwitchType /*2 cases */, 21, MVT::v4i32,// ->206009
/*205988*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*205990*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*205993*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*205997*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_cvttp2ui:{ *:[v4i32] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                            // Dst: (VCVTTPS2UDQZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*206009*/                /*SwitchType*/ 21, MVT::v4i64,// ->206032
/*206011*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*206013*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*206016*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*206020*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_cvttp2ui:{ *:[v4i64] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                            // Dst: (VCVTTPS2UQQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*206032*/                0, // EndSwitchType
/*206033*/              /*SwitchType*/ 55, MVT::v4f64,// ->206090
/*206035*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*206037*/                OPC_MoveParent,
/*206038*/                OPC_MoveParent,
/*206039*/                OPC_MoveChild2,
/*206040*/                OPC_CheckImmAllZerosV,
/*206041*/                OPC_MoveParent,
/*206042*/                OPC_SwitchType /*2 cases */, 21, MVT::v4i32,// ->206066
/*206045*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*206047*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*206050*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*206054*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_cvttp2ui:{ *:[v4i32] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                            // Dst: (VCVTTPD2UDQZ256rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*206066*/                /*SwitchType*/ 21, MVT::v4i64,// ->206089
/*206068*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*206070*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*206073*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*206077*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_cvttp2ui:{ *:[v4i64] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                            // Dst: (VCVTTPD2UQQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*206089*/                0, // EndSwitchType
/*206090*/              0, // EndSwitchType
/*206091*/            0, // EndSwitchOpcode
/*206092*/          /*SwitchOpcode*/ 97|128,1/*225*/, TARGET_VAL(X86ISD::CVTTP2UI),// ->206321
/*206096*/            OPC_MoveChild0,
/*206097*/            OPC_SwitchOpcode /*2 cases */, 108, TARGET_VAL(ISD::LOAD),// ->206209
/*206101*/              OPC_RecordMemRef,
/*206102*/              OPC_RecordNode, // #1 = 'ld' chained node
/*206103*/              OPC_CheckFoldableChainNode,
/*206104*/              OPC_RecordChild1, // #2 = $src
/*206105*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*206107*/              OPC_CheckPredicate, 9, // Predicate_load
/*206109*/              OPC_SwitchType /*2 cases */, 47, MVT::v4f32,// ->206159
/*206112*/                OPC_MoveParent,
/*206113*/                OPC_MoveParent,
/*206114*/                OPC_MoveChild2,
/*206115*/                OPC_CheckImmAllZerosV,
/*206116*/                OPC_MoveParent,
/*206117*/                OPC_SwitchType /*2 cases */, 18, MVT::v4i32,// ->206138
/*206120*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*206122*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*206125*/                  OPC_EmitMergeInputChains1_1,
/*206126*/                  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>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                            // Dst: (VCVTTPS2UDQZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*206138*/                /*SwitchType*/ 18, MVT::v4i64,// ->206158
/*206140*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*206142*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*206145*/                  OPC_EmitMergeInputChains1_1,
/*206146*/                  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>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                            // Dst: (VCVTTPS2UQQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*206158*/                0, // EndSwitchType
/*206159*/              /*SwitchType*/ 47, MVT::v4f64,// ->206208
/*206161*/                OPC_MoveParent,
/*206162*/                OPC_MoveParent,
/*206163*/                OPC_MoveChild2,
/*206164*/                OPC_CheckImmAllZerosV,
/*206165*/                OPC_MoveParent,
/*206166*/                OPC_SwitchType /*2 cases */, 18, MVT::v4i32,// ->206187
/*206169*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*206171*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*206174*/                  OPC_EmitMergeInputChains1_1,
/*206175*/                  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>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                            // Dst: (VCVTTPD2UDQZ256rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*206187*/                /*SwitchType*/ 18, MVT::v4i64,// ->206207
/*206189*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*206191*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*206194*/                  OPC_EmitMergeInputChains1_1,
/*206195*/                  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>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                            // Dst: (VCVTTPD2UQQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*206207*/                0, // EndSwitchType
/*206208*/              0, // EndSwitchType
/*206209*/            /*SwitchOpcode*/ 108, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->206320
/*206212*/              OPC_RecordMemRef,
/*206213*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*206214*/              OPC_CheckFoldableChainNode,
/*206215*/              OPC_RecordChild1, // #2 = $src
/*206216*/              OPC_SwitchType /*2 cases */, 49, MVT::v4f32,// ->206268
/*206219*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*206221*/                OPC_MoveParent,
/*206222*/                OPC_MoveParent,
/*206223*/                OPC_MoveChild2,
/*206224*/                OPC_CheckImmAllZerosV,
/*206225*/                OPC_MoveParent,
/*206226*/                OPC_SwitchType /*2 cases */, 18, MVT::v4i32,// ->206247
/*206229*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*206231*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*206234*/                  OPC_EmitMergeInputChains1_1,
/*206235*/                  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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                            // Dst: (VCVTTPS2UDQZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*206247*/                /*SwitchType*/ 18, MVT::v4i64,// ->206267
/*206249*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*206251*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*206254*/                  OPC_EmitMergeInputChains1_1,
/*206255*/                  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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                            // Dst: (VCVTTPS2UQQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*206267*/                0, // EndSwitchType
/*206268*/              /*SwitchType*/ 49, MVT::v4f64,// ->206319
/*206270*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*206272*/                OPC_MoveParent,
/*206273*/                OPC_MoveParent,
/*206274*/                OPC_MoveChild2,
/*206275*/                OPC_CheckImmAllZerosV,
/*206276*/                OPC_MoveParent,
/*206277*/                OPC_SwitchType /*2 cases */, 18, MVT::v4i32,// ->206298
/*206280*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*206282*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*206285*/                  OPC_EmitMergeInputChains1_1,
/*206286*/                  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] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                            // Dst: (VCVTTPD2UDQZ256rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*206298*/                /*SwitchType*/ 18, MVT::v4i64,// ->206318
/*206300*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*206302*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*206305*/                  OPC_EmitMergeInputChains1_1,
/*206306*/                  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] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                            // Dst: (VCVTTPD2UQQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*206318*/                0, // EndSwitchType
/*206319*/              0, // EndSwitchType
/*206320*/            0, // EndSwitchOpcode
/*206321*/          /*SwitchOpcode*/ 97|128,1/*225*/, TARGET_VAL(X86ISD::CVTP2SI),// ->206550
/*206325*/            OPC_MoveChild0,
/*206326*/            OPC_SwitchOpcode /*2 cases */, 108, TARGET_VAL(ISD::LOAD),// ->206438
/*206330*/              OPC_RecordMemRef,
/*206331*/              OPC_RecordNode, // #1 = 'ld' chained node
/*206332*/              OPC_CheckFoldableChainNode,
/*206333*/              OPC_RecordChild1, // #2 = $src
/*206334*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*206336*/              OPC_CheckPredicate, 9, // Predicate_load
/*206338*/              OPC_SwitchType /*2 cases */, 47, MVT::v4f32,// ->206388
/*206341*/                OPC_MoveParent,
/*206342*/                OPC_MoveParent,
/*206343*/                OPC_MoveChild2,
/*206344*/                OPC_CheckImmAllZerosV,
/*206345*/                OPC_MoveParent,
/*206346*/                OPC_SwitchType /*2 cases */, 18, MVT::v4i32,// ->206367
/*206349*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*206351*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*206354*/                  OPC_EmitMergeInputChains1_1,
/*206355*/                  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>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                            // Dst: (VCVTPS2DQZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*206367*/                /*SwitchType*/ 18, MVT::v4i64,// ->206387
/*206369*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*206371*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*206374*/                  OPC_EmitMergeInputChains1_1,
/*206375*/                  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>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                            // Dst: (VCVTPS2QQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*206387*/                0, // EndSwitchType
/*206388*/              /*SwitchType*/ 47, MVT::v4f64,// ->206437
/*206390*/                OPC_MoveParent,
/*206391*/                OPC_MoveParent,
/*206392*/                OPC_MoveChild2,
/*206393*/                OPC_CheckImmAllZerosV,
/*206394*/                OPC_MoveParent,
/*206395*/                OPC_SwitchType /*2 cases */, 18, MVT::v4i32,// ->206416
/*206398*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*206400*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*206403*/                  OPC_EmitMergeInputChains1_1,
/*206404*/                  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>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                            // Dst: (VCVTPD2DQZ256rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*206416*/                /*SwitchType*/ 18, MVT::v4i64,// ->206436
/*206418*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*206420*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*206423*/                  OPC_EmitMergeInputChains1_1,
/*206424*/                  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>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                            // Dst: (VCVTPD2QQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*206436*/                0, // EndSwitchType
/*206437*/              0, // EndSwitchType
/*206438*/            /*SwitchOpcode*/ 108, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->206549
/*206441*/              OPC_RecordMemRef,
/*206442*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*206443*/              OPC_CheckFoldableChainNode,
/*206444*/              OPC_RecordChild1, // #2 = $src
/*206445*/              OPC_SwitchType /*2 cases */, 49, MVT::v4f32,// ->206497
/*206448*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*206450*/                OPC_MoveParent,
/*206451*/                OPC_MoveParent,
/*206452*/                OPC_MoveChild2,
/*206453*/                OPC_CheckImmAllZerosV,
/*206454*/                OPC_MoveParent,
/*206455*/                OPC_SwitchType /*2 cases */, 18, MVT::v4i32,// ->206476
/*206458*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*206460*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*206463*/                  OPC_EmitMergeInputChains1_1,
/*206464*/                  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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                            // Dst: (VCVTPS2DQZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*206476*/                /*SwitchType*/ 18, MVT::v4i64,// ->206496
/*206478*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*206480*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*206483*/                  OPC_EmitMergeInputChains1_1,
/*206484*/                  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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                            // Dst: (VCVTPS2QQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*206496*/                0, // EndSwitchType
/*206497*/              /*SwitchType*/ 49, MVT::v4f64,// ->206548
/*206499*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*206501*/                OPC_MoveParent,
/*206502*/                OPC_MoveParent,
/*206503*/                OPC_MoveChild2,
/*206504*/                OPC_CheckImmAllZerosV,
/*206505*/                OPC_MoveParent,
/*206506*/                OPC_SwitchType /*2 cases */, 18, MVT::v4i32,// ->206527
/*206509*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*206511*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*206514*/                  OPC_EmitMergeInputChains1_1,
/*206515*/                  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] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                            // Dst: (VCVTPD2DQZ256rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*206527*/                /*SwitchType*/ 18, MVT::v4i64,// ->206547
/*206529*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*206531*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*206534*/                  OPC_EmitMergeInputChains1_1,
/*206535*/                  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] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                            // Dst: (VCVTPD2QQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*206547*/                0, // EndSwitchType
/*206548*/              0, // EndSwitchType
/*206549*/            0, // EndSwitchOpcode
/*206550*/          /*SwitchOpcode*/ 97|128,1/*225*/, TARGET_VAL(X86ISD::CVTP2UI),// ->206779
/*206554*/            OPC_MoveChild0,
/*206555*/            OPC_SwitchOpcode /*2 cases */, 108, TARGET_VAL(ISD::LOAD),// ->206667
/*206559*/              OPC_RecordMemRef,
/*206560*/              OPC_RecordNode, // #1 = 'ld' chained node
/*206561*/              OPC_CheckFoldableChainNode,
/*206562*/              OPC_RecordChild1, // #2 = $src
/*206563*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*206565*/              OPC_CheckPredicate, 9, // Predicate_load
/*206567*/              OPC_SwitchType /*2 cases */, 47, MVT::v4f32,// ->206617
/*206570*/                OPC_MoveParent,
/*206571*/                OPC_MoveParent,
/*206572*/                OPC_MoveChild2,
/*206573*/                OPC_CheckImmAllZerosV,
/*206574*/                OPC_MoveParent,
/*206575*/                OPC_SwitchType /*2 cases */, 18, MVT::v4i32,// ->206596
/*206578*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*206580*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*206583*/                  OPC_EmitMergeInputChains1_1,
/*206584*/                  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>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                            // Dst: (VCVTPS2UDQZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*206596*/                /*SwitchType*/ 18, MVT::v4i64,// ->206616
/*206598*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*206600*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*206603*/                  OPC_EmitMergeInputChains1_1,
/*206604*/                  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>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                            // Dst: (VCVTPS2UQQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*206616*/                0, // EndSwitchType
/*206617*/              /*SwitchType*/ 47, MVT::v4f64,// ->206666
/*206619*/                OPC_MoveParent,
/*206620*/                OPC_MoveParent,
/*206621*/                OPC_MoveChild2,
/*206622*/                OPC_CheckImmAllZerosV,
/*206623*/                OPC_MoveParent,
/*206624*/                OPC_SwitchType /*2 cases */, 18, MVT::v4i32,// ->206645
/*206627*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*206629*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*206632*/                  OPC_EmitMergeInputChains1_1,
/*206633*/                  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>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                            // Dst: (VCVTPD2UDQZ256rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*206645*/                /*SwitchType*/ 18, MVT::v4i64,// ->206665
/*206647*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*206649*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*206652*/                  OPC_EmitMergeInputChains1_1,
/*206653*/                  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>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                            // Dst: (VCVTPD2UQQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*206665*/                0, // EndSwitchType
/*206666*/              0, // EndSwitchType
/*206667*/            /*SwitchOpcode*/ 108, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->206778
/*206670*/              OPC_RecordMemRef,
/*206671*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*206672*/              OPC_CheckFoldableChainNode,
/*206673*/              OPC_RecordChild1, // #2 = $src
/*206674*/              OPC_SwitchType /*2 cases */, 49, MVT::v4f32,// ->206726
/*206677*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*206679*/                OPC_MoveParent,
/*206680*/                OPC_MoveParent,
/*206681*/                OPC_MoveChild2,
/*206682*/                OPC_CheckImmAllZerosV,
/*206683*/                OPC_MoveParent,
/*206684*/                OPC_SwitchType /*2 cases */, 18, MVT::v4i32,// ->206705
/*206687*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*206689*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*206692*/                  OPC_EmitMergeInputChains1_1,
/*206693*/                  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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                            // Dst: (VCVTPS2UDQZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*206705*/                /*SwitchType*/ 18, MVT::v4i64,// ->206725
/*206707*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*206709*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*206712*/                  OPC_EmitMergeInputChains1_1,
/*206713*/                  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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                            // Dst: (VCVTPS2UQQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*206725*/                0, // EndSwitchType
/*206726*/              /*SwitchType*/ 49, MVT::v4f64,// ->206777
/*206728*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*206730*/                OPC_MoveParent,
/*206731*/                OPC_MoveParent,
/*206732*/                OPC_MoveChild2,
/*206733*/                OPC_CheckImmAllZerosV,
/*206734*/                OPC_MoveParent,
/*206735*/                OPC_SwitchType /*2 cases */, 18, MVT::v4i32,// ->206756
/*206738*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*206740*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*206743*/                  OPC_EmitMergeInputChains1_1,
/*206744*/                  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] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                            // Dst: (VCVTPD2UDQZ256rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*206756*/                /*SwitchType*/ 18, MVT::v4i64,// ->206776
/*206758*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*206760*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*206763*/                  OPC_EmitMergeInputChains1_1,
/*206764*/                  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] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                            // Dst: (VCVTPD2UQQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*206776*/                0, // EndSwitchType
/*206777*/              0, // EndSwitchType
/*206778*/            0, // EndSwitchOpcode
/*206779*/          /*SwitchOpcode*/ 126, TARGET_VAL(ISD::ABS),// ->206908
/*206782*/            OPC_MoveChild0,
/*206783*/            OPC_SwitchOpcode /*2 cases */, 55, TARGET_VAL(ISD::LOAD),// ->206842
/*206787*/              OPC_RecordMemRef,
/*206788*/              OPC_RecordNode, // #1 = 'ld' chained node
/*206789*/              OPC_CheckFoldableChainNode,
/*206790*/              OPC_RecordChild1, // #2 = $src1
/*206791*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*206793*/              OPC_CheckPredicate, 9, // Predicate_load
/*206795*/              OPC_MoveParent,
/*206796*/              OPC_MoveParent,
/*206797*/              OPC_MoveChild2,
/*206798*/              OPC_CheckImmAllZerosV,
/*206799*/              OPC_MoveParent,
/*206800*/              OPC_SwitchType /*2 cases */, 18, MVT::v4i64,// ->206821
/*206803*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*206805*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*206808*/                OPC_EmitMergeInputChains1_1,
/*206809*/                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>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                          // Dst: (VPABSQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*206821*/              /*SwitchType*/ 18, MVT::v4i32,// ->206841
/*206823*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*206825*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*206828*/                OPC_EmitMergeInputChains1_1,
/*206829*/                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] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                          // Dst: (VPABSDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*206841*/              0, // EndSwitchType
/*206842*/            /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->206907
/*206845*/              OPC_RecordMemRef,
/*206846*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*206847*/              OPC_CheckFoldableChainNode,
/*206848*/              OPC_RecordChild1, // #2 = $src1
/*206849*/              OPC_Scope, 27, /*->206878*/ // 2 children in Scope
/*206851*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*206853*/                OPC_MoveParent,
/*206854*/                OPC_MoveParent,
/*206855*/                OPC_MoveChild2,
/*206856*/                OPC_CheckImmAllZerosV,
/*206857*/                OPC_MoveParent,
/*206858*/                OPC_CheckType, MVT::v4i64,
/*206860*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*206862*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*206865*/                OPC_EmitMergeInputChains1_1,
/*206866*/                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] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                          // Dst: (VPABSQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*206878*/              /*Scope*/ 27, /*->206906*/
/*206879*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*206881*/                OPC_MoveParent,
/*206882*/                OPC_MoveParent,
/*206883*/                OPC_MoveChild2,
/*206884*/                OPC_CheckImmAllZerosV,
/*206885*/                OPC_MoveParent,
/*206886*/                OPC_CheckType, MVT::v4i32,
/*206888*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*206890*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*206893*/                OPC_EmitMergeInputChains1_1,
/*206894*/                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] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                          // Dst: (VPABSDZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*206906*/              0, /*End of Scope*/
/*206907*/            0, // EndSwitchOpcode
/*206908*/          /*SwitchOpcode*/ 9|128,1/*137*/, TARGET_VAL(ISD::CTLZ),// ->207049
/*206912*/            OPC_MoveChild0,
/*206913*/            OPC_SwitchOpcode /*2 cases */, 64, TARGET_VAL(ISD::LOAD),// ->206981
/*206917*/              OPC_RecordMemRef,
/*206918*/              OPC_RecordNode, // #1 = 'ld' chained node
/*206919*/              OPC_CheckFoldableChainNode,
/*206920*/              OPC_RecordChild1, // #2 = $src1
/*206921*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*206923*/              OPC_CheckPredicate, 9, // Predicate_load
/*206925*/              OPC_SwitchType /*2 cases */, 25, MVT::v4i64,// ->206953
/*206928*/                OPC_MoveParent,
/*206929*/                OPC_MoveParent,
/*206930*/                OPC_MoveChild2,
/*206931*/                OPC_CheckImmAllZerosV,
/*206932*/                OPC_MoveParent,
/*206933*/                OPC_CheckType, MVT::v4i64,
/*206935*/                OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*206937*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*206940*/                OPC_EmitMergeInputChains1_1,
/*206941*/                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>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                          // Dst: (VPLZCNTQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*206953*/              /*SwitchType*/ 25, MVT::v4i32,// ->206980
/*206955*/                OPC_MoveParent,
/*206956*/                OPC_MoveParent,
/*206957*/                OPC_MoveChild2,
/*206958*/                OPC_CheckImmAllZerosV,
/*206959*/                OPC_MoveParent,
/*206960*/                OPC_CheckType, MVT::v4i32,
/*206962*/                OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*206964*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*206967*/                OPC_EmitMergeInputChains1_1,
/*206968*/                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] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                          // Dst: (VPLZCNTDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*206980*/              0, // EndSwitchType
/*206981*/            /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->207048
/*206984*/              OPC_RecordMemRef,
/*206985*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*206986*/              OPC_CheckFoldableChainNode,
/*206987*/              OPC_RecordChild1, // #2 = $src1
/*206988*/              OPC_SwitchType /*2 cases */, 27, MVT::v4i64,// ->207018
/*206991*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*206993*/                OPC_MoveParent,
/*206994*/                OPC_MoveParent,
/*206995*/                OPC_MoveChild2,
/*206996*/                OPC_CheckImmAllZerosV,
/*206997*/                OPC_MoveParent,
/*206998*/                OPC_CheckType, MVT::v4i64,
/*207000*/                OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*207002*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*207005*/                OPC_EmitMergeInputChains1_1,
/*207006*/                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] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                          // Dst: (VPLZCNTQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*207018*/              /*SwitchType*/ 27, MVT::v4i32,// ->207047
/*207020*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*207022*/                OPC_MoveParent,
/*207023*/                OPC_MoveParent,
/*207024*/                OPC_MoveChild2,
/*207025*/                OPC_CheckImmAllZerosV,
/*207026*/                OPC_MoveParent,
/*207027*/                OPC_CheckType, MVT::v4i32,
/*207029*/                OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*207031*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*207034*/                OPC_EmitMergeInputChains1_1,
/*207035*/                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] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                          // Dst: (VPLZCNTDZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*207047*/              0, // EndSwitchType
/*207048*/            0, // EndSwitchOpcode
/*207049*/          /*SwitchOpcode*/ 126, TARGET_VAL(X86ISD::CONFLICT),// ->207178
/*207052*/            OPC_MoveChild0,
/*207053*/            OPC_SwitchOpcode /*2 cases */, 55, TARGET_VAL(ISD::LOAD),// ->207112
/*207057*/              OPC_RecordMemRef,
/*207058*/              OPC_RecordNode, // #1 = 'ld' chained node
/*207059*/              OPC_CheckFoldableChainNode,
/*207060*/              OPC_RecordChild1, // #2 = $src1
/*207061*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*207063*/              OPC_CheckPredicate, 9, // Predicate_load
/*207065*/              OPC_MoveParent,
/*207066*/              OPC_MoveParent,
/*207067*/              OPC_MoveChild2,
/*207068*/              OPC_CheckImmAllZerosV,
/*207069*/              OPC_MoveParent,
/*207070*/              OPC_SwitchType /*2 cases */, 18, MVT::v4i64,// ->207091
/*207073*/                OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*207075*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*207078*/                OPC_EmitMergeInputChains1_1,
/*207079*/                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>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                          // Dst: (VPCONFLICTQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*207091*/              /*SwitchType*/ 18, MVT::v4i32,// ->207111
/*207093*/                OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*207095*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*207098*/                OPC_EmitMergeInputChains1_1,
/*207099*/                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] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                          // Dst: (VPCONFLICTDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*207111*/              0, // EndSwitchType
/*207112*/            /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->207177
/*207115*/              OPC_RecordMemRef,
/*207116*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*207117*/              OPC_CheckFoldableChainNode,
/*207118*/              OPC_RecordChild1, // #2 = $src1
/*207119*/              OPC_Scope, 27, /*->207148*/ // 2 children in Scope
/*207121*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*207123*/                OPC_MoveParent,
/*207124*/                OPC_MoveParent,
/*207125*/                OPC_MoveChild2,
/*207126*/                OPC_CheckImmAllZerosV,
/*207127*/                OPC_MoveParent,
/*207128*/                OPC_CheckType, MVT::v4i64,
/*207130*/                OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*207132*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*207135*/                OPC_EmitMergeInputChains1_1,
/*207136*/                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] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                          // Dst: (VPCONFLICTQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*207148*/              /*Scope*/ 27, /*->207176*/
/*207149*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*207151*/                OPC_MoveParent,
/*207152*/                OPC_MoveParent,
/*207153*/                OPC_MoveChild2,
/*207154*/                OPC_CheckImmAllZerosV,
/*207155*/                OPC_MoveParent,
/*207156*/                OPC_CheckType, MVT::v4i32,
/*207158*/                OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*207160*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*207163*/                OPC_EmitMergeInputChains1_1,
/*207164*/                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] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                          // Dst: (VPCONFLICTDZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*207176*/              0, /*End of Scope*/
/*207177*/            0, // EndSwitchOpcode
/*207178*/          /*SwitchOpcode*/ 9|128,1/*137*/, TARGET_VAL(ISD::CTPOP),// ->207319
/*207182*/            OPC_MoveChild0,
/*207183*/            OPC_SwitchOpcode /*2 cases */, 64, TARGET_VAL(ISD::LOAD),// ->207251
/*207187*/              OPC_RecordMemRef,
/*207188*/              OPC_RecordNode, // #1 = 'ld' chained node
/*207189*/              OPC_CheckFoldableChainNode,
/*207190*/              OPC_RecordChild1, // #2 = $src1
/*207191*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*207193*/              OPC_CheckPredicate, 9, // Predicate_load
/*207195*/              OPC_SwitchType /*2 cases */, 25, MVT::v4i64,// ->207223
/*207198*/                OPC_MoveParent,
/*207199*/                OPC_MoveParent,
/*207200*/                OPC_MoveChild2,
/*207201*/                OPC_CheckImmAllZerosV,
/*207202*/                OPC_MoveParent,
/*207203*/                OPC_CheckType, MVT::v4i64,
/*207205*/                OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/*207207*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*207210*/                OPC_EmitMergeInputChains1_1,
/*207211*/                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>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                          // Dst: (VPOPCNTQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*207223*/              /*SwitchType*/ 25, MVT::v4i32,// ->207250
/*207225*/                OPC_MoveParent,
/*207226*/                OPC_MoveParent,
/*207227*/                OPC_MoveChild2,
/*207228*/                OPC_CheckImmAllZerosV,
/*207229*/                OPC_MoveParent,
/*207230*/                OPC_CheckType, MVT::v4i32,
/*207232*/                OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/*207234*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*207237*/                OPC_EmitMergeInputChains1_1,
/*207238*/                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] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                          // Dst: (VPOPCNTDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*207250*/              0, // EndSwitchType
/*207251*/            /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->207318
/*207254*/              OPC_RecordMemRef,
/*207255*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*207256*/              OPC_CheckFoldableChainNode,
/*207257*/              OPC_RecordChild1, // #2 = $src1
/*207258*/              OPC_SwitchType /*2 cases */, 27, MVT::v4i64,// ->207288
/*207261*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*207263*/                OPC_MoveParent,
/*207264*/                OPC_MoveParent,
/*207265*/                OPC_MoveChild2,
/*207266*/                OPC_CheckImmAllZerosV,
/*207267*/                OPC_MoveParent,
/*207268*/                OPC_CheckType, MVT::v4i64,
/*207270*/                OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/*207272*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*207275*/                OPC_EmitMergeInputChains1_1,
/*207276*/                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] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                          // Dst: (VPOPCNTQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*207288*/              /*SwitchType*/ 27, MVT::v4i32,// ->207317
/*207290*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*207292*/                OPC_MoveParent,
/*207293*/                OPC_MoveParent,
/*207294*/                OPC_MoveChild2,
/*207295*/                OPC_CheckImmAllZerosV,
/*207296*/                OPC_MoveParent,
/*207297*/                OPC_CheckType, MVT::v4i32,
/*207299*/                OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/*207301*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*207304*/                OPC_EmitMergeInputChains1_1,
/*207305*/                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] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                          // Dst: (VPOPCNTDZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*207317*/              0, // EndSwitchType
/*207318*/            0, // EndSwitchOpcode
/*207319*/          /*SwitchOpcode*/ 3|128,1/*131*/, TARGET_VAL(X86ISD::UNPCKL),// ->207454
/*207323*/            OPC_RecordChild0, // #1 = $src1
/*207324*/            OPC_MoveChild1,
/*207325*/            OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->207386
/*207329*/              OPC_RecordMemRef,
/*207330*/              OPC_RecordNode, // #2 = 'ld' chained node
/*207331*/              OPC_CheckFoldableChainNode,
/*207332*/              OPC_RecordChild1, // #3 = $src2
/*207333*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*207335*/              OPC_CheckPredicate, 9, // Predicate_load
/*207337*/              OPC_MoveParent,
/*207338*/              OPC_MoveParent,
/*207339*/              OPC_MoveChild2,
/*207340*/              OPC_CheckImmAllZerosV,
/*207341*/              OPC_MoveParent,
/*207342*/              OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->207364
/*207345*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*207347*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*207350*/                OPC_EmitMergeInputChains1_2,
/*207351*/                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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                          // Dst: (VPUNPCKLDQZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*207364*/              /*SwitchType*/ 19, MVT::v4i64,// ->207385
/*207366*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*207368*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*207371*/                OPC_EmitMergeInputChains1_2,
/*207372*/                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>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                          // Dst: (VPUNPCKLQDQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*207385*/              0, // EndSwitchType
/*207386*/            /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->207453
/*207389*/              OPC_RecordMemRef,
/*207390*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*207391*/              OPC_CheckFoldableChainNode,
/*207392*/              OPC_RecordChild1, // #3 = $src2
/*207393*/              OPC_Scope, 28, /*->207423*/ // 2 children in Scope
/*207395*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*207397*/                OPC_MoveParent,
/*207398*/                OPC_MoveParent,
/*207399*/                OPC_MoveChild2,
/*207400*/                OPC_CheckImmAllZerosV,
/*207401*/                OPC_MoveParent,
/*207402*/                OPC_CheckType, MVT::v4i32,
/*207404*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*207406*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*207409*/                OPC_EmitMergeInputChains1_2,
/*207410*/                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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                          // Dst: (VPUNPCKLDQZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*207423*/              /*Scope*/ 28, /*->207452*/
/*207424*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*207426*/                OPC_MoveParent,
/*207427*/                OPC_MoveParent,
/*207428*/                OPC_MoveChild2,
/*207429*/                OPC_CheckImmAllZerosV,
/*207430*/                OPC_MoveParent,
/*207431*/                OPC_CheckType, MVT::v4i64,
/*207433*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*207435*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*207438*/                OPC_EmitMergeInputChains1_2,
/*207439*/                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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                          // Dst: (VPUNPCKLQDQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*207452*/              0, /*End of Scope*/
/*207453*/            0, // EndSwitchOpcode
/*207454*/          /*SwitchOpcode*/ 3|128,1/*131*/, TARGET_VAL(X86ISD::UNPCKH),// ->207589
/*207458*/            OPC_RecordChild0, // #1 = $src1
/*207459*/            OPC_MoveChild1,
/*207460*/            OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->207521
/*207464*/              OPC_RecordMemRef,
/*207465*/              OPC_RecordNode, // #2 = 'ld' chained node
/*207466*/              OPC_CheckFoldableChainNode,
/*207467*/              OPC_RecordChild1, // #3 = $src2
/*207468*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*207470*/              OPC_CheckPredicate, 9, // Predicate_load
/*207472*/              OPC_MoveParent,
/*207473*/              OPC_MoveParent,
/*207474*/              OPC_MoveChild2,
/*207475*/              OPC_CheckImmAllZerosV,
/*207476*/              OPC_MoveParent,
/*207477*/              OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->207499
/*207480*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*207482*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*207485*/                OPC_EmitMergeInputChains1_2,
/*207486*/                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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                          // Dst: (VPUNPCKHDQZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*207499*/              /*SwitchType*/ 19, MVT::v4i64,// ->207520
/*207501*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*207503*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*207506*/                OPC_EmitMergeInputChains1_2,
/*207507*/                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>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                          // Dst: (VPUNPCKHQDQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*207520*/              0, // EndSwitchType
/*207521*/            /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->207588
/*207524*/              OPC_RecordMemRef,
/*207525*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*207526*/              OPC_CheckFoldableChainNode,
/*207527*/              OPC_RecordChild1, // #3 = $src2
/*207528*/              OPC_Scope, 28, /*->207558*/ // 2 children in Scope
/*207530*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*207532*/                OPC_MoveParent,
/*207533*/                OPC_MoveParent,
/*207534*/                OPC_MoveChild2,
/*207535*/                OPC_CheckImmAllZerosV,
/*207536*/                OPC_MoveParent,
/*207537*/                OPC_CheckType, MVT::v4i32,
/*207539*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*207541*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*207544*/                OPC_EmitMergeInputChains1_2,
/*207545*/                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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                          // Dst: (VPUNPCKHDQZ128rmbkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*207558*/              /*Scope*/ 28, /*->207587*/
/*207559*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*207561*/                OPC_MoveParent,
/*207562*/                OPC_MoveParent,
/*207563*/                OPC_MoveChild2,
/*207564*/                OPC_CheckImmAllZerosV,
/*207565*/                OPC_MoveParent,
/*207566*/                OPC_CheckType, MVT::v4i64,
/*207568*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*207570*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*207573*/                OPC_EmitMergeInputChains1_2,
/*207574*/                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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                          // Dst: (VPUNPCKHQDQZ256rmbkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*207587*/              0, /*End of Scope*/
/*207588*/            0, // EndSwitchOpcode
/*207589*/          /*SwitchOpcode*/ 16|128,1/*144*/, TARGET_VAL(X86ISD::VSHLDV),// ->207737
/*207593*/            OPC_RecordChild0, // #1 = $src1
/*207594*/            OPC_RecordChild1, // #2 = $src2
/*207595*/            OPC_MoveChild2,
/*207596*/            OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->207663
/*207600*/              OPC_RecordMemRef,
/*207601*/              OPC_RecordNode, // #3 = 'ld' chained node
/*207602*/              OPC_CheckFoldableChainNode,
/*207603*/              OPC_RecordChild1, // #4 = $src3
/*207604*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*207606*/              OPC_CheckPredicate, 9, // Predicate_load
/*207608*/              OPC_MoveParent,
/*207609*/              OPC_MoveParent,
/*207610*/              OPC_MoveChild2,
/*207611*/              OPC_CheckImmAllZerosV,
/*207612*/              OPC_MoveParent,
/*207613*/              OPC_SwitchType /*2 cases */, 22, MVT::v4i32,// ->207638
/*207616*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*207618*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*207621*/                OPC_EmitMergeInputChains, 1, 3, 
/*207624*/                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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                          // Dst: (VPSHLDVDZ128mkz:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*207638*/              /*SwitchType*/ 22, MVT::v4i64,// ->207662
/*207640*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*207642*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*207645*/                OPC_EmitMergeInputChains, 1, 3, 
/*207648*/                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>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                          // Dst: (VPSHLDVQZ256mkz:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*207662*/              0, // EndSwitchType
/*207663*/            /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->207736
/*207666*/              OPC_RecordMemRef,
/*207667*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*207668*/              OPC_CheckFoldableChainNode,
/*207669*/              OPC_RecordChild1, // #4 = $src3
/*207670*/              OPC_Scope, 31, /*->207703*/ // 2 children in Scope
/*207672*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*207674*/                OPC_MoveParent,
/*207675*/                OPC_MoveParent,
/*207676*/                OPC_MoveChild2,
/*207677*/                OPC_CheckImmAllZerosV,
/*207678*/                OPC_MoveParent,
/*207679*/                OPC_CheckType, MVT::v4i32,
/*207681*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*207683*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*207686*/                OPC_EmitMergeInputChains, 1, 3, 
/*207689*/                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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                          // Dst: (VPSHLDVDZ128mbkz:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*207703*/              /*Scope*/ 31, /*->207735*/
/*207704*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*207706*/                OPC_MoveParent,
/*207707*/                OPC_MoveParent,
/*207708*/                OPC_MoveChild2,
/*207709*/                OPC_CheckImmAllZerosV,
/*207710*/                OPC_MoveParent,
/*207711*/                OPC_CheckType, MVT::v4i64,
/*207713*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*207715*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*207718*/                OPC_EmitMergeInputChains, 1, 3, 
/*207721*/                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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                          // Dst: (VPSHLDVQZ256mbkz:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*207735*/              0, /*End of Scope*/
/*207736*/            0, // EndSwitchOpcode
/*207737*/          /*SwitchOpcode*/ 16|128,1/*144*/, TARGET_VAL(X86ISD::VSHRDV),// ->207885
/*207741*/            OPC_RecordChild0, // #1 = $src1
/*207742*/            OPC_RecordChild1, // #2 = $src2
/*207743*/            OPC_MoveChild2,
/*207744*/            OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->207811
/*207748*/              OPC_RecordMemRef,
/*207749*/              OPC_RecordNode, // #3 = 'ld' chained node
/*207750*/              OPC_CheckFoldableChainNode,
/*207751*/              OPC_RecordChild1, // #4 = $src3
/*207752*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*207754*/              OPC_CheckPredicate, 9, // Predicate_load
/*207756*/              OPC_MoveParent,
/*207757*/              OPC_MoveParent,
/*207758*/              OPC_MoveChild2,
/*207759*/              OPC_CheckImmAllZerosV,
/*207760*/              OPC_MoveParent,
/*207761*/              OPC_SwitchType /*2 cases */, 22, MVT::v4i32,// ->207786
/*207764*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*207766*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*207769*/                OPC_EmitMergeInputChains, 1, 3, 
/*207772*/                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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                          // Dst: (VPSHRDVDZ128mkz:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*207786*/              /*SwitchType*/ 22, MVT::v4i64,// ->207810
/*207788*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*207790*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*207793*/                OPC_EmitMergeInputChains, 1, 3, 
/*207796*/                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>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                          // Dst: (VPSHRDVQZ256mkz:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*207810*/              0, // EndSwitchType
/*207811*/            /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->207884
/*207814*/              OPC_RecordMemRef,
/*207815*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*207816*/              OPC_CheckFoldableChainNode,
/*207817*/              OPC_RecordChild1, // #4 = $src3
/*207818*/              OPC_Scope, 31, /*->207851*/ // 2 children in Scope
/*207820*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*207822*/                OPC_MoveParent,
/*207823*/                OPC_MoveParent,
/*207824*/                OPC_MoveChild2,
/*207825*/                OPC_CheckImmAllZerosV,
/*207826*/                OPC_MoveParent,
/*207827*/                OPC_CheckType, MVT::v4i32,
/*207829*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*207831*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*207834*/                OPC_EmitMergeInputChains, 1, 3, 
/*207837*/                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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                          // Dst: (VPSHRDVDZ128mbkz:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*207851*/              /*Scope*/ 31, /*->207883*/
/*207852*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*207854*/                OPC_MoveParent,
/*207855*/                OPC_MoveParent,
/*207856*/                OPC_MoveChild2,
/*207857*/                OPC_CheckImmAllZerosV,
/*207858*/                OPC_MoveParent,
/*207859*/                OPC_CheckType, MVT::v4i64,
/*207861*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*207863*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*207866*/                OPC_EmitMergeInputChains, 1, 3, 
/*207869*/                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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4i64] }) - Complexity = 32
                          // Dst: (VPSHRDVQZ256mbkz:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*207883*/              0, /*End of Scope*/
/*207884*/            0, // EndSwitchOpcode
/*207885*/          /*SwitchOpcode*/ 83, TARGET_VAL(X86ISD::VPDPBUSD),// ->207971
/*207888*/            OPC_RecordChild0, // #1 = $src1
/*207889*/            OPC_RecordChild1, // #2 = $src2
/*207890*/            OPC_MoveChild2,
/*207891*/            OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->207932
/*207895*/              OPC_RecordMemRef,
/*207896*/              OPC_RecordNode, // #3 = 'ld' chained node
/*207897*/              OPC_CheckFoldableChainNode,
/*207898*/              OPC_RecordChild1, // #4 = $src3
/*207899*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*207901*/              OPC_CheckPredicate, 9, // Predicate_load
/*207903*/              OPC_MoveParent,
/*207904*/              OPC_MoveParent,
/*207905*/              OPC_MoveChild2,
/*207906*/              OPC_CheckImmAllZerosV,
/*207907*/              OPC_MoveParent,
/*207908*/              OPC_CheckType, MVT::v4i32,
/*207910*/              OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*207912*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*207915*/              OPC_EmitMergeInputChains, 1, 3, 
/*207918*/              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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                        // Dst: (VPDPBUSDZ128mkz:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*207932*/            /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->207970
/*207935*/              OPC_RecordMemRef,
/*207936*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*207937*/              OPC_CheckFoldableChainNode,
/*207938*/              OPC_RecordChild1, // #4 = $src3
/*207939*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*207941*/              OPC_MoveParent,
/*207942*/              OPC_MoveParent,
/*207943*/              OPC_MoveChild2,
/*207944*/              OPC_CheckImmAllZerosV,
/*207945*/              OPC_MoveParent,
/*207946*/              OPC_CheckType, MVT::v4i32,
/*207948*/              OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*207950*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*207953*/              OPC_EmitMergeInputChains, 1, 3, 
/*207956*/              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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                        // Dst: (VPDPBUSDZ128mbkz:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*207970*/            0, // EndSwitchOpcode
/*207971*/          /*SwitchOpcode*/ 83, TARGET_VAL(X86ISD::VPDPBUSDS),// ->208057
/*207974*/            OPC_RecordChild0, // #1 = $src1
/*207975*/            OPC_RecordChild1, // #2 = $src2
/*207976*/            OPC_MoveChild2,
/*207977*/            OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->208018
/*207981*/              OPC_RecordMemRef,
/*207982*/              OPC_RecordNode, // #3 = 'ld' chained node
/*207983*/              OPC_CheckFoldableChainNode,
/*207984*/              OPC_RecordChild1, // #4 = $src3
/*207985*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*207987*/              OPC_CheckPredicate, 9, // Predicate_load
/*207989*/              OPC_MoveParent,
/*207990*/              OPC_MoveParent,
/*207991*/              OPC_MoveChild2,
/*207992*/              OPC_CheckImmAllZerosV,
/*207993*/              OPC_MoveParent,
/*207994*/              OPC_CheckType, MVT::v4i32,
/*207996*/              OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*207998*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*208001*/              OPC_EmitMergeInputChains, 1, 3, 
/*208004*/              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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                        // Dst: (VPDPBUSDSZ128mkz:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*208018*/            /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->208056
/*208021*/              OPC_RecordMemRef,
/*208022*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*208023*/              OPC_CheckFoldableChainNode,
/*208024*/              OPC_RecordChild1, // #4 = $src3
/*208025*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*208027*/              OPC_MoveParent,
/*208028*/              OPC_MoveParent,
/*208029*/              OPC_MoveChild2,
/*208030*/              OPC_CheckImmAllZerosV,
/*208031*/              OPC_MoveParent,
/*208032*/              OPC_CheckType, MVT::v4i32,
/*208034*/              OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*208036*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*208039*/              OPC_EmitMergeInputChains, 1, 3, 
/*208042*/              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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                        // Dst: (VPDPBUSDSZ128mbkz:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*208056*/            0, // EndSwitchOpcode
/*208057*/          /*SwitchOpcode*/ 83, TARGET_VAL(X86ISD::VPDPWSSD),// ->208143
/*208060*/            OPC_RecordChild0, // #1 = $src1
/*208061*/            OPC_RecordChild1, // #2 = $src2
/*208062*/            OPC_MoveChild2,
/*208063*/            OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->208104
/*208067*/              OPC_RecordMemRef,
/*208068*/              OPC_RecordNode, // #3 = 'ld' chained node
/*208069*/              OPC_CheckFoldableChainNode,
/*208070*/              OPC_RecordChild1, // #4 = $src3
/*208071*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*208073*/              OPC_CheckPredicate, 9, // Predicate_load
/*208075*/              OPC_MoveParent,
/*208076*/              OPC_MoveParent,
/*208077*/              OPC_MoveChild2,
/*208078*/              OPC_CheckImmAllZerosV,
/*208079*/              OPC_MoveParent,
/*208080*/              OPC_CheckType, MVT::v4i32,
/*208082*/              OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*208084*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*208087*/              OPC_EmitMergeInputChains, 1, 3, 
/*208090*/              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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                        // Dst: (VPDPWSSDZ128mkz:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*208104*/            /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->208142
/*208107*/              OPC_RecordMemRef,
/*208108*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*208109*/              OPC_CheckFoldableChainNode,
/*208110*/              OPC_RecordChild1, // #4 = $src3
/*208111*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*208113*/              OPC_MoveParent,
/*208114*/              OPC_MoveParent,
/*208115*/              OPC_MoveChild2,
/*208116*/              OPC_CheckImmAllZerosV,
/*208117*/              OPC_MoveParent,
/*208118*/              OPC_CheckType, MVT::v4i32,
/*208120*/              OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*208122*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*208125*/              OPC_EmitMergeInputChains, 1, 3, 
/*208128*/              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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                        // Dst: (VPDPWSSDZ128mbkz:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*208142*/            0, // EndSwitchOpcode
/*208143*/          /*SwitchOpcode*/ 83, TARGET_VAL(X86ISD::VPDPWSSDS),// ->208229
/*208146*/            OPC_RecordChild0, // #1 = $src1
/*208147*/            OPC_RecordChild1, // #2 = $src2
/*208148*/            OPC_MoveChild2,
/*208149*/            OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->208190
/*208153*/              OPC_RecordMemRef,
/*208154*/              OPC_RecordNode, // #3 = 'ld' chained node
/*208155*/              OPC_CheckFoldableChainNode,
/*208156*/              OPC_RecordChild1, // #4 = $src3
/*208157*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*208159*/              OPC_CheckPredicate, 9, // Predicate_load
/*208161*/              OPC_MoveParent,
/*208162*/              OPC_MoveParent,
/*208163*/              OPC_MoveChild2,
/*208164*/              OPC_CheckImmAllZerosV,
/*208165*/              OPC_MoveParent,
/*208166*/              OPC_CheckType, MVT::v4i32,
/*208168*/              OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*208170*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*208173*/              OPC_EmitMergeInputChains, 1, 3, 
/*208176*/              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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                        // Dst: (VPDPWSSDSZ128mkz:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*208190*/            /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->208228
/*208193*/              OPC_RecordMemRef,
/*208194*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*208195*/              OPC_CheckFoldableChainNode,
/*208196*/              OPC_RecordChild1, // #4 = $src3
/*208197*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*208199*/              OPC_MoveParent,
/*208200*/              OPC_MoveParent,
/*208201*/              OPC_MoveChild2,
/*208202*/              OPC_CheckImmAllZerosV,
/*208203*/              OPC_MoveParent,
/*208204*/              OPC_CheckType, MVT::v4i32,
/*208206*/              OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*208208*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*208211*/              OPC_EmitMergeInputChains, 1, 3, 
/*208214*/              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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4i32] }) - Complexity = 32
                        // Dst: (VPDPWSSDSZ128mbkz:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*208228*/            0, // EndSwitchOpcode
/*208229*/          0, // EndSwitchOpcode
/*208230*/        /*Scope*/ 56, /*->208287*/
/*208231*/          OPC_RecordChild1, // #1 = $src3
/*208232*/          OPC_MoveChild1,
/*208233*/          OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*208236*/          OPC_RecordChild0, // #2 = $src1
/*208237*/          OPC_MoveChild1,
/*208238*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*208241*/          OPC_RecordMemRef,
/*208242*/          OPC_RecordNode, // #3 = 'ld' chained node
/*208243*/          OPC_CheckFoldableChainNode,
/*208244*/          OPC_RecordChild1, // #4 = $src2
/*208245*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*208247*/          OPC_CheckPredicate, 9, // Predicate_load
/*208249*/          OPC_MoveParent,
/*208250*/          OPC_MoveChild2,
/*208251*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*208254*/          OPC_CheckType, MVT::iPTR,
/*208256*/          OPC_MoveParent,
/*208257*/          OPC_MoveParent,
/*208258*/          OPC_RecordChild2, // #5 = $src0
/*208259*/          OPC_CheckType, MVT::v4i64,
/*208261*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*208263*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*208266*/          OPC_EmitMergeInputChains, 1, 3, 
/*208269*/          OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*208272*/          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>>, (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>>, (imm:{ *:[iPTR] })):$src3))
/*208287*/        /*Scope*/ 99|128,100/*12899*/, /*->221188*/
/*208289*/          OPC_MoveChild1,
/*208290*/          OPC_SwitchOpcode /*60 cases */, 127|128,13/*1791*/, TARGET_VAL(ISD::BITCAST),// ->210086
/*208295*/            OPC_Scope, 80|128,10/*1360*/, /*->209658*/ // 3 children in Scope
/*208298*/              OPC_MoveChild0,
/*208299*/              OPC_SwitchOpcode /*6 cases */, 39, TARGET_VAL(X86ISD::SUBV_BROADCAST),// ->208342
/*208303*/                OPC_MoveChild0,
/*208304*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*208307*/                OPC_RecordMemRef,
/*208308*/                OPC_RecordNode, // #1 = 'ld' chained node
/*208309*/                OPC_CheckFoldableChainNode,
/*208310*/                OPC_RecordChild1, // #2 = $src
/*208311*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*208313*/                OPC_CheckPredicate, 9, // Predicate_load
/*208315*/                OPC_MoveParent,
/*208316*/                OPC_CheckType, MVT::v8i32,
/*208318*/                OPC_MoveParent,
/*208319*/                OPC_MoveParent,
/*208320*/                OPC_RecordChild2, // #3 = $src0
/*208321*/                OPC_CheckType, MVT::v4i64,
/*208323*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*208325*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*208328*/                OPC_EmitMergeInputChains1_1,
/*208329*/                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] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                          // Dst: (VBROADCASTI64X2Z128rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*208342*/              /*SwitchOpcode*/ 106|128,2/*362*/, TARGET_VAL(ISD::AND),// ->208708
/*208346*/                OPC_Scope, 50|128,1/*178*/, /*->208527*/ // 2 children in Scope
/*208349*/                  OPC_RecordChild0, // #1 = $src1
/*208350*/                  OPC_MoveChild1,
/*208351*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*208354*/                  OPC_RecordMemRef,
/*208355*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*208356*/                  OPC_CheckFoldableChainNode,
/*208357*/                  OPC_RecordChild1, // #3 = $src2
/*208358*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*208360*/                  OPC_CheckPredicate, 9, // Predicate_load
/*208362*/                  OPC_MoveParent,
/*208363*/                  OPC_SwitchType /*6 cases */, 25, MVT::v8i32,// ->208391
/*208366*/                    OPC_MoveParent,
/*208367*/                    OPC_MoveParent,
/*208368*/                    OPC_RecordChild2, // #4 = $src0
/*208369*/                    OPC_CheckType, MVT::v4i64,
/*208371*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*208373*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*208376*/                    OPC_EmitMergeInputChains1_2,
/*208377*/                    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, (bitconvert:{ *:[v4i64] } (and:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                              // Dst: (VPANDQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*208391*/                  /*SwitchType*/ 25, MVT::v16i16,// ->208418
/*208393*/                    OPC_MoveParent,
/*208394*/                    OPC_MoveParent,
/*208395*/                    OPC_RecordChild2, // #4 = $src0
/*208396*/                    OPC_CheckType, MVT::v4i64,
/*208398*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*208400*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*208403*/                    OPC_EmitMergeInputChains1_2,
/*208404*/                    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, (bitconvert:{ *:[v4i64] } (and:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                              // Dst: (VPANDQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*208418*/                  /*SwitchType*/ 25, MVT::v32i8,// ->208445
/*208420*/                    OPC_MoveParent,
/*208421*/                    OPC_MoveParent,
/*208422*/                    OPC_RecordChild2, // #4 = $src0
/*208423*/                    OPC_CheckType, MVT::v4i64,
/*208425*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*208427*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*208430*/                    OPC_EmitMergeInputChains1_2,
/*208431*/                    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, (bitconvert:{ *:[v4i64] } (and:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                              // Dst: (VPANDQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*208445*/                  /*SwitchType*/ 25, MVT::v2i64,// ->208472
/*208447*/                    OPC_MoveParent,
/*208448*/                    OPC_MoveParent,
/*208449*/                    OPC_RecordChild2, // #4 = $src0
/*208450*/                    OPC_CheckType, MVT::v4i32,
/*208452*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*208454*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*208457*/                    OPC_EmitMergeInputChains1_2,
/*208458*/                    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>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                              // Dst: (VPANDDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*208472*/                  /*SwitchType*/ 25, MVT::v8i16,// ->208499
/*208474*/                    OPC_MoveParent,
/*208475*/                    OPC_MoveParent,
/*208476*/                    OPC_RecordChild2, // #4 = $src0
/*208477*/                    OPC_CheckType, MVT::v4i32,
/*208479*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*208481*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*208484*/                    OPC_EmitMergeInputChains1_2,
/*208485*/                    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:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                              // Dst: (VPANDDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*208499*/                  /*SwitchType*/ 25, MVT::v16i8,// ->208526
/*208501*/                    OPC_MoveParent,
/*208502*/                    OPC_MoveParent,
/*208503*/                    OPC_RecordChild2, // #4 = $src0
/*208504*/                    OPC_CheckType, MVT::v4i32,
/*208506*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*208508*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*208511*/                    OPC_EmitMergeInputChains1_2,
/*208512*/                    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:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                              // Dst: (VPANDDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*208526*/                  0, // EndSwitchType
/*208527*/                /*Scope*/ 50|128,1/*178*/, /*->208707*/
/*208529*/                  OPC_MoveChild0,
/*208530*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*208533*/                  OPC_RecordMemRef,
/*208534*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*208535*/                  OPC_CheckFoldableChainNode,
/*208536*/                  OPC_RecordChild1, // #2 = $src2
/*208537*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*208539*/                  OPC_CheckPredicate, 9, // Predicate_load
/*208541*/                  OPC_MoveParent,
/*208542*/                  OPC_RecordChild1, // #3 = $src1
/*208543*/                  OPC_SwitchType /*6 cases */, 25, MVT::v8i32,// ->208571
/*208546*/                    OPC_MoveParent,
/*208547*/                    OPC_MoveParent,
/*208548*/                    OPC_RecordChild2, // #4 = $src0
/*208549*/                    OPC_CheckType, MVT::v4i64,
/*208551*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*208553*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*208556*/                    OPC_EmitMergeInputChains1_1,
/*208557*/                    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, (bitconvert:{ *:[v4i64] } (and:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8i32] }:$src1)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                              // Dst: (VPANDQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*208571*/                  /*SwitchType*/ 25, MVT::v16i16,// ->208598
/*208573*/                    OPC_MoveParent,
/*208574*/                    OPC_MoveParent,
/*208575*/                    OPC_RecordChild2, // #4 = $src0
/*208576*/                    OPC_CheckType, MVT::v4i64,
/*208578*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*208580*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*208583*/                    OPC_EmitMergeInputChains1_1,
/*208584*/                    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, (bitconvert:{ *:[v4i64] } (and:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                              // Dst: (VPANDQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*208598*/                  /*SwitchType*/ 25, MVT::v32i8,// ->208625
/*208600*/                    OPC_MoveParent,
/*208601*/                    OPC_MoveParent,
/*208602*/                    OPC_RecordChild2, // #4 = $src0
/*208603*/                    OPC_CheckType, MVT::v4i64,
/*208605*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*208607*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*208610*/                    OPC_EmitMergeInputChains1_1,
/*208611*/                    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, (bitconvert:{ *:[v4i64] } (and:{ *:[v32i8] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v32i8] }:$src1)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                              // Dst: (VPANDQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*208625*/                  /*SwitchType*/ 25, MVT::v2i64,// ->208652
/*208627*/                    OPC_MoveParent,
/*208628*/                    OPC_MoveParent,
/*208629*/                    OPC_RecordChild2, // #4 = $src0
/*208630*/                    OPC_CheckType, MVT::v4i32,
/*208632*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*208634*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*208637*/                    OPC_EmitMergeInputChains1_1,
/*208638*/                    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>>, VR128X:{ *:[v2i64] }:$src1)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                              // Dst: (VPANDDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*208652*/                  /*SwitchType*/ 25, MVT::v8i16,// ->208679
/*208654*/                    OPC_MoveParent,
/*208655*/                    OPC_MoveParent,
/*208656*/                    OPC_RecordChild2, // #4 = $src0
/*208657*/                    OPC_CheckType, MVT::v4i32,
/*208659*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*208661*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*208664*/                    OPC_EmitMergeInputChains1_1,
/*208665*/                    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:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                              // Dst: (VPANDDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*208679*/                  /*SwitchType*/ 25, MVT::v16i8,// ->208706
/*208681*/                    OPC_MoveParent,
/*208682*/                    OPC_MoveParent,
/*208683*/                    OPC_RecordChild2, // #4 = $src0
/*208684*/                    OPC_CheckType, MVT::v4i32,
/*208686*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*208688*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*208691*/                    OPC_EmitMergeInputChains1_1,
/*208692*/                    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:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v16i8] }:$src1)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                              // Dst: (VPANDDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*208706*/                  0, // EndSwitchType
/*208707*/                0, /*End of Scope*/
/*208708*/              /*SwitchOpcode*/ 106|128,2/*362*/, TARGET_VAL(ISD::OR),// ->209074
/*208712*/                OPC_Scope, 50|128,1/*178*/, /*->208893*/ // 2 children in Scope
/*208715*/                  OPC_RecordChild0, // #1 = $src1
/*208716*/                  OPC_MoveChild1,
/*208717*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*208720*/                  OPC_RecordMemRef,
/*208721*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*208722*/                  OPC_CheckFoldableChainNode,
/*208723*/                  OPC_RecordChild1, // #3 = $src2
/*208724*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*208726*/                  OPC_CheckPredicate, 9, // Predicate_load
/*208728*/                  OPC_MoveParent,
/*208729*/                  OPC_SwitchType /*6 cases */, 25, MVT::v8i32,// ->208757
/*208732*/                    OPC_MoveParent,
/*208733*/                    OPC_MoveParent,
/*208734*/                    OPC_RecordChild2, // #4 = $src0
/*208735*/                    OPC_CheckType, MVT::v4i64,
/*208737*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*208739*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*208742*/                    OPC_EmitMergeInputChains1_2,
/*208743*/                    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, (bitconvert:{ *:[v4i64] } (or:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                              // Dst: (VPORQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*208757*/                  /*SwitchType*/ 25, MVT::v16i16,// ->208784
/*208759*/                    OPC_MoveParent,
/*208760*/                    OPC_MoveParent,
/*208761*/                    OPC_RecordChild2, // #4 = $src0
/*208762*/                    OPC_CheckType, MVT::v4i64,
/*208764*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*208766*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*208769*/                    OPC_EmitMergeInputChains1_2,
/*208770*/                    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, (bitconvert:{ *:[v4i64] } (or:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                              // Dst: (VPORQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*208784*/                  /*SwitchType*/ 25, MVT::v32i8,// ->208811
/*208786*/                    OPC_MoveParent,
/*208787*/                    OPC_MoveParent,
/*208788*/                    OPC_RecordChild2, // #4 = $src0
/*208789*/                    OPC_CheckType, MVT::v4i64,
/*208791*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*208793*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*208796*/                    OPC_EmitMergeInputChains1_2,
/*208797*/                    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, (bitconvert:{ *:[v4i64] } (or:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                              // Dst: (VPORQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*208811*/                  /*SwitchType*/ 25, MVT::v2i64,// ->208838
/*208813*/                    OPC_MoveParent,
/*208814*/                    OPC_MoveParent,
/*208815*/                    OPC_RecordChild2, // #4 = $src0
/*208816*/                    OPC_CheckType, MVT::v4i32,
/*208818*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*208820*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*208823*/                    OPC_EmitMergeInputChains1_2,
/*208824*/                    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>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                              // Dst: (VPORDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*208838*/                  /*SwitchType*/ 25, MVT::v8i16,// ->208865
/*208840*/                    OPC_MoveParent,
/*208841*/                    OPC_MoveParent,
/*208842*/                    OPC_RecordChild2, // #4 = $src0
/*208843*/                    OPC_CheckType, MVT::v4i32,
/*208845*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*208847*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*208850*/                    OPC_EmitMergeInputChains1_2,
/*208851*/                    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:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                              // Dst: (VPORDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*208865*/                  /*SwitchType*/ 25, MVT::v16i8,// ->208892
/*208867*/                    OPC_MoveParent,
/*208868*/                    OPC_MoveParent,
/*208869*/                    OPC_RecordChild2, // #4 = $src0
/*208870*/                    OPC_CheckType, MVT::v4i32,
/*208872*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*208874*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*208877*/                    OPC_EmitMergeInputChains1_2,
/*208878*/                    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:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                              // Dst: (VPORDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*208892*/                  0, // EndSwitchType
/*208893*/                /*Scope*/ 50|128,1/*178*/, /*->209073*/
/*208895*/                  OPC_MoveChild0,
/*208896*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*208899*/                  OPC_RecordMemRef,
/*208900*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*208901*/                  OPC_CheckFoldableChainNode,
/*208902*/                  OPC_RecordChild1, // #2 = $src2
/*208903*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*208905*/                  OPC_CheckPredicate, 9, // Predicate_load
/*208907*/                  OPC_MoveParent,
/*208908*/                  OPC_RecordChild1, // #3 = $src1
/*208909*/                  OPC_SwitchType /*6 cases */, 25, MVT::v8i32,// ->208937
/*208912*/                    OPC_MoveParent,
/*208913*/                    OPC_MoveParent,
/*208914*/                    OPC_RecordChild2, // #4 = $src0
/*208915*/                    OPC_CheckType, MVT::v4i64,
/*208917*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*208919*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*208922*/                    OPC_EmitMergeInputChains1_1,
/*208923*/                    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, (bitconvert:{ *:[v4i64] } (or:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8i32] }:$src1)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                              // Dst: (VPORQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*208937*/                  /*SwitchType*/ 25, MVT::v16i16,// ->208964
/*208939*/                    OPC_MoveParent,
/*208940*/                    OPC_MoveParent,
/*208941*/                    OPC_RecordChild2, // #4 = $src0
/*208942*/                    OPC_CheckType, MVT::v4i64,
/*208944*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*208946*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*208949*/                    OPC_EmitMergeInputChains1_1,
/*208950*/                    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, (bitconvert:{ *:[v4i64] } (or:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                              // Dst: (VPORQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*208964*/                  /*SwitchType*/ 25, MVT::v32i8,// ->208991
/*208966*/                    OPC_MoveParent,
/*208967*/                    OPC_MoveParent,
/*208968*/                    OPC_RecordChild2, // #4 = $src0
/*208969*/                    OPC_CheckType, MVT::v4i64,
/*208971*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*208973*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*208976*/                    OPC_EmitMergeInputChains1_1,
/*208977*/                    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, (bitconvert:{ *:[v4i64] } (or:{ *:[v32i8] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v32i8] }:$src1)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                              // Dst: (VPORQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*208991*/                  /*SwitchType*/ 25, MVT::v2i64,// ->209018
/*208993*/                    OPC_MoveParent,
/*208994*/                    OPC_MoveParent,
/*208995*/                    OPC_RecordChild2, // #4 = $src0
/*208996*/                    OPC_CheckType, MVT::v4i32,
/*208998*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*209000*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*209003*/                    OPC_EmitMergeInputChains1_1,
/*209004*/                    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>>, VR128X:{ *:[v2i64] }:$src1)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                              // Dst: (VPORDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*209018*/                  /*SwitchType*/ 25, MVT::v8i16,// ->209045
/*209020*/                    OPC_MoveParent,
/*209021*/                    OPC_MoveParent,
/*209022*/                    OPC_RecordChild2, // #4 = $src0
/*209023*/                    OPC_CheckType, MVT::v4i32,
/*209025*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*209027*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*209030*/                    OPC_EmitMergeInputChains1_1,
/*209031*/                    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:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                              // Dst: (VPORDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*209045*/                  /*SwitchType*/ 25, MVT::v16i8,// ->209072
/*209047*/                    OPC_MoveParent,
/*209048*/                    OPC_MoveParent,
/*209049*/                    OPC_RecordChild2, // #4 = $src0
/*209050*/                    OPC_CheckType, MVT::v4i32,
/*209052*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*209054*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*209057*/                    OPC_EmitMergeInputChains1_1,
/*209058*/                    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:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v16i8] }:$src1)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                              // Dst: (VPORDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*209072*/                  0, // EndSwitchType
/*209073*/                0, /*End of Scope*/
/*209074*/              /*SwitchOpcode*/ 106|128,2/*362*/, TARGET_VAL(ISD::XOR),// ->209440
/*209078*/                OPC_Scope, 50|128,1/*178*/, /*->209259*/ // 2 children in Scope
/*209081*/                  OPC_RecordChild0, // #1 = $src1
/*209082*/                  OPC_MoveChild1,
/*209083*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*209086*/                  OPC_RecordMemRef,
/*209087*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*209088*/                  OPC_CheckFoldableChainNode,
/*209089*/                  OPC_RecordChild1, // #3 = $src2
/*209090*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*209092*/                  OPC_CheckPredicate, 9, // Predicate_load
/*209094*/                  OPC_MoveParent,
/*209095*/                  OPC_SwitchType /*6 cases */, 25, MVT::v8i32,// ->209123
/*209098*/                    OPC_MoveParent,
/*209099*/                    OPC_MoveParent,
/*209100*/                    OPC_RecordChild2, // #4 = $src0
/*209101*/                    OPC_CheckType, MVT::v4i64,
/*209103*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*209105*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*209108*/                    OPC_EmitMergeInputChains1_2,
/*209109*/                    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, (bitconvert:{ *:[v4i64] } (xor:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                              // Dst: (VPXORQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*209123*/                  /*SwitchType*/ 25, MVT::v16i16,// ->209150
/*209125*/                    OPC_MoveParent,
/*209126*/                    OPC_MoveParent,
/*209127*/                    OPC_RecordChild2, // #4 = $src0
/*209128*/                    OPC_CheckType, MVT::v4i64,
/*209130*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*209132*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*209135*/                    OPC_EmitMergeInputChains1_2,
/*209136*/                    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, (bitconvert:{ *:[v4i64] } (xor:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                              // Dst: (VPXORQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*209150*/                  /*SwitchType*/ 25, MVT::v32i8,// ->209177
/*209152*/                    OPC_MoveParent,
/*209153*/                    OPC_MoveParent,
/*209154*/                    OPC_RecordChild2, // #4 = $src0
/*209155*/                    OPC_CheckType, MVT::v4i64,
/*209157*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*209159*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*209162*/                    OPC_EmitMergeInputChains1_2,
/*209163*/                    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, (bitconvert:{ *:[v4i64] } (xor:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                              // Dst: (VPXORQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*209177*/                  /*SwitchType*/ 25, MVT::v2i64,// ->209204
/*209179*/                    OPC_MoveParent,
/*209180*/                    OPC_MoveParent,
/*209181*/                    OPC_RecordChild2, // #4 = $src0
/*209182*/                    OPC_CheckType, MVT::v4i32,
/*209184*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*209186*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*209189*/                    OPC_EmitMergeInputChains1_2,
/*209190*/                    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>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                              // Dst: (VPXORDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*209204*/                  /*SwitchType*/ 25, MVT::v8i16,// ->209231
/*209206*/                    OPC_MoveParent,
/*209207*/                    OPC_MoveParent,
/*209208*/                    OPC_RecordChild2, // #4 = $src0
/*209209*/                    OPC_CheckType, MVT::v4i32,
/*209211*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*209213*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*209216*/                    OPC_EmitMergeInputChains1_2,
/*209217*/                    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:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                              // Dst: (VPXORDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*209231*/                  /*SwitchType*/ 25, MVT::v16i8,// ->209258
/*209233*/                    OPC_MoveParent,
/*209234*/                    OPC_MoveParent,
/*209235*/                    OPC_RecordChild2, // #4 = $src0
/*209236*/                    OPC_CheckType, MVT::v4i32,
/*209238*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*209240*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*209243*/                    OPC_EmitMergeInputChains1_2,
/*209244*/                    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:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                              // Dst: (VPXORDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*209258*/                  0, // EndSwitchType
/*209259*/                /*Scope*/ 50|128,1/*178*/, /*->209439*/
/*209261*/                  OPC_MoveChild0,
/*209262*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*209265*/                  OPC_RecordMemRef,
/*209266*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*209267*/                  OPC_CheckFoldableChainNode,
/*209268*/                  OPC_RecordChild1, // #2 = $src2
/*209269*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*209271*/                  OPC_CheckPredicate, 9, // Predicate_load
/*209273*/                  OPC_MoveParent,
/*209274*/                  OPC_RecordChild1, // #3 = $src1
/*209275*/                  OPC_SwitchType /*6 cases */, 25, MVT::v8i32,// ->209303
/*209278*/                    OPC_MoveParent,
/*209279*/                    OPC_MoveParent,
/*209280*/                    OPC_RecordChild2, // #4 = $src0
/*209281*/                    OPC_CheckType, MVT::v4i64,
/*209283*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*209285*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*209288*/                    OPC_EmitMergeInputChains1_1,
/*209289*/                    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, (bitconvert:{ *:[v4i64] } (xor:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8i32] }:$src1)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                              // Dst: (VPXORQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*209303*/                  /*SwitchType*/ 25, MVT::v16i16,// ->209330
/*209305*/                    OPC_MoveParent,
/*209306*/                    OPC_MoveParent,
/*209307*/                    OPC_RecordChild2, // #4 = $src0
/*209308*/                    OPC_CheckType, MVT::v4i64,
/*209310*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*209312*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*209315*/                    OPC_EmitMergeInputChains1_1,
/*209316*/                    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, (bitconvert:{ *:[v4i64] } (xor:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                              // Dst: (VPXORQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*209330*/                  /*SwitchType*/ 25, MVT::v32i8,// ->209357
/*209332*/                    OPC_MoveParent,
/*209333*/                    OPC_MoveParent,
/*209334*/                    OPC_RecordChild2, // #4 = $src0
/*209335*/                    OPC_CheckType, MVT::v4i64,
/*209337*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*209339*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*209342*/                    OPC_EmitMergeInputChains1_1,
/*209343*/                    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, (bitconvert:{ *:[v4i64] } (xor:{ *:[v32i8] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v32i8] }:$src1)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                              // Dst: (VPXORQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*209357*/                  /*SwitchType*/ 25, MVT::v2i64,// ->209384
/*209359*/                    OPC_MoveParent,
/*209360*/                    OPC_MoveParent,
/*209361*/                    OPC_RecordChild2, // #4 = $src0
/*209362*/                    OPC_CheckType, MVT::v4i32,
/*209364*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*209366*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*209369*/                    OPC_EmitMergeInputChains1_1,
/*209370*/                    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>>, VR128X:{ *:[v2i64] }:$src1)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                              // Dst: (VPXORDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*209384*/                  /*SwitchType*/ 25, MVT::v8i16,// ->209411
/*209386*/                    OPC_MoveParent,
/*209387*/                    OPC_MoveParent,
/*209388*/                    OPC_RecordChild2, // #4 = $src0
/*209389*/                    OPC_CheckType, MVT::v4i32,
/*209391*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*209393*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*209396*/                    OPC_EmitMergeInputChains1_1,
/*209397*/                    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:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                              // Dst: (VPXORDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*209411*/                  /*SwitchType*/ 25, MVT::v16i8,// ->209438
/*209413*/                    OPC_MoveParent,
/*209414*/                    OPC_MoveParent,
/*209415*/                    OPC_RecordChild2, // #4 = $src0
/*209416*/                    OPC_CheckType, MVT::v4i32,
/*209418*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*209420*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*209423*/                    OPC_EmitMergeInputChains1_1,
/*209424*/                    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:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v16i8] }:$src1)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                              // Dst: (VPXORDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*209438*/                  0, // EndSwitchType
/*209439*/                0, /*End of Scope*/
/*209440*/              /*SwitchOpcode*/ 50|128,1/*178*/, TARGET_VAL(X86ISD::ANDNP),// ->209622
/*209444*/                OPC_RecordChild0, // #1 = $src1
/*209445*/                OPC_MoveChild1,
/*209446*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*209449*/                OPC_RecordMemRef,
/*209450*/                OPC_RecordNode, // #2 = 'ld' chained node
/*209451*/                OPC_CheckFoldableChainNode,
/*209452*/                OPC_RecordChild1, // #3 = $src2
/*209453*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*209455*/                OPC_CheckPredicate, 9, // Predicate_load
/*209457*/                OPC_MoveParent,
/*209458*/                OPC_SwitchType /*6 cases */, 25, MVT::v8i32,// ->209486
/*209461*/                  OPC_MoveParent,
/*209462*/                  OPC_MoveParent,
/*209463*/                  OPC_RecordChild2, // #4 = $src0
/*209464*/                  OPC_CheckType, MVT::v4i64,
/*209466*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*209468*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*209471*/                  OPC_EmitMergeInputChains1_2,
/*209472*/                  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, (bitconvert:{ *:[v4i64] } (X86andnp:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                            // Dst: (VPANDNQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*209486*/                /*SwitchType*/ 25, MVT::v16i16,// ->209513
/*209488*/                  OPC_MoveParent,
/*209489*/                  OPC_MoveParent,
/*209490*/                  OPC_RecordChild2, // #4 = $src0
/*209491*/                  OPC_CheckType, MVT::v4i64,
/*209493*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*209495*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*209498*/                  OPC_EmitMergeInputChains1_2,
/*209499*/                  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, (bitconvert:{ *:[v4i64] } (X86andnp:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                            // Dst: (VPANDNQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*209513*/                /*SwitchType*/ 25, MVT::v32i8,// ->209540
/*209515*/                  OPC_MoveParent,
/*209516*/                  OPC_MoveParent,
/*209517*/                  OPC_RecordChild2, // #4 = $src0
/*209518*/                  OPC_CheckType, MVT::v4i64,
/*209520*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*209522*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*209525*/                  OPC_EmitMergeInputChains1_2,
/*209526*/                  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, (bitconvert:{ *:[v4i64] } (X86andnp:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                            // Dst: (VPANDNQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*209540*/                /*SwitchType*/ 25, MVT::v2i64,// ->209567
/*209542*/                  OPC_MoveParent,
/*209543*/                  OPC_MoveParent,
/*209544*/                  OPC_RecordChild2, // #4 = $src0
/*209545*/                  OPC_CheckType, MVT::v4i32,
/*209547*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*209549*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*209552*/                  OPC_EmitMergeInputChains1_2,
/*209553*/                  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>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                            // Dst: (VPANDNDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*209567*/                /*SwitchType*/ 25, MVT::v8i16,// ->209594
/*209569*/                  OPC_MoveParent,
/*209570*/                  OPC_MoveParent,
/*209571*/                  OPC_RecordChild2, // #4 = $src0
/*209572*/                  OPC_CheckType, MVT::v4i32,
/*209574*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*209576*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*209579*/                  OPC_EmitMergeInputChains1_2,
/*209580*/                  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:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                            // Dst: (VPANDNDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*209594*/                /*SwitchType*/ 25, MVT::v16i8,// ->209621
/*209596*/                  OPC_MoveParent,
/*209597*/                  OPC_MoveParent,
/*209598*/                  OPC_RecordChild2, // #4 = $src0
/*209599*/                  OPC_CheckType, MVT::v4i32,
/*209601*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*209603*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*209606*/                  OPC_EmitMergeInputChains1_2,
/*209607*/                  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:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                            // Dst: (VPANDNDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*209621*/                0, // EndSwitchType
/*209622*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->209657
/*209625*/                OPC_RecordMemRef,
/*209626*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*209627*/                OPC_CheckFoldableChainNode,
/*209628*/                OPC_RecordChild1, // #2 = $src
/*209629*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*209631*/                OPC_CheckType, MVT::v2i64,
/*209633*/                OPC_MoveParent,
/*209634*/                OPC_MoveParent,
/*209635*/                OPC_RecordChild2, // #3 = $src0
/*209636*/                OPC_CheckType, MVT::v4i32,
/*209638*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*209640*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*209643*/                OPC_EmitMergeInputChains1_1,
/*209644*/                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] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                          // Dst: (VBROADCASTI32X2Z128mk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*209657*/              0, // EndSwitchOpcode
/*209658*/            /*Scope*/ 4|128,3/*388*/, /*->210048*/
/*209660*/              OPC_RecordChild0, // #1 = $ext
/*209661*/              OPC_MoveChild0,
/*209662*/              OPC_SwitchOpcode /*2 cases */, 38|128,2/*294*/, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),// ->209961
/*209667*/                OPC_RecordChild0, // #2 = $src
/*209668*/                OPC_Scope, 34, /*->209704*/ // 7 children in Scope
/*209670*/                  OPC_CheckChild0Type, MVT::v4i64,
/*209672*/                  OPC_MoveChild1,
/*209673*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*209676*/                  OPC_CheckType, MVT::iPTR,
/*209678*/                  OPC_MoveParent,
/*209679*/                  OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/*209681*/                  OPC_CheckType, MVT::v2i64,
/*209683*/                  OPC_MoveParent,
/*209684*/                  OPC_MoveParent,
/*209685*/                  OPC_MoveChild2,
/*209686*/                  OPC_CheckImmAllZerosV,
/*209687*/                  OPC_MoveParent,
/*209688*/                  OPC_CheckType, MVT::v4i32,
/*209690*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*209692*/                  OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*209695*/                  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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext), immAllZerosV:{ *:[v4i32] }) - Complexity = 17
                            // Dst: (VEXTRACTI32x4Z256rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v2i64] }:$ext))
/*209704*/                /*Scope*/ 34, /*->209739*/
/*209705*/                  OPC_CheckChild0Type, MVT::v16i16,
/*209707*/                  OPC_MoveChild1,
/*209708*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*209711*/                  OPC_CheckType, MVT::iPTR,
/*209713*/                  OPC_MoveParent,
/*209714*/                  OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/*209716*/                  OPC_CheckType, MVT::v8i16,
/*209718*/                  OPC_MoveParent,
/*209719*/                  OPC_MoveParent,
/*209720*/                  OPC_MoveChild2,
/*209721*/                  OPC_CheckImmAllZerosV,
/*209722*/                  OPC_MoveParent,
/*209723*/                  OPC_CheckType, MVT::v4i32,
/*209725*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*209727*/                  OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*209730*/                  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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext), immAllZerosV:{ *:[v4i32] }) - Complexity = 17
                            // Dst: (VEXTRACTI32x4Z256rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v16i16] }:$src, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v8i16] }:$ext))
/*209739*/                /*Scope*/ 34, /*->209774*/
/*209740*/                  OPC_CheckChild0Type, MVT::v32i8,
/*209742*/                  OPC_MoveChild1,
/*209743*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*209746*/                  OPC_CheckType, MVT::iPTR,
/*209748*/                  OPC_MoveParent,
/*209749*/                  OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/*209751*/                  OPC_CheckType, MVT::v16i8,
/*209753*/                  OPC_MoveParent,
/*209754*/                  OPC_MoveParent,
/*209755*/                  OPC_MoveChild2,
/*209756*/                  OPC_CheckImmAllZerosV,
/*209757*/                  OPC_MoveParent,
/*209758*/                  OPC_CheckType, MVT::v4i32,
/*209760*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*209762*/                  OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*209765*/                  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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext), immAllZerosV:{ *:[v4i32] }) - Complexity = 17
                            // Dst: (VEXTRACTI32x4Z256rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v32i8] }:$src, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v16i8] }:$ext))
/*209774*/                /*Scope*/ 34, /*->209809*/
/*209775*/                  OPC_CheckChild0Type, MVT::v8i64,
/*209777*/                  OPC_MoveChild1,
/*209778*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*209781*/                  OPC_CheckType, MVT::iPTR,
/*209783*/                  OPC_MoveParent,
/*209784*/                  OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/*209786*/                  OPC_CheckType, MVT::v2i64,
/*209788*/                  OPC_MoveParent,
/*209789*/                  OPC_MoveParent,
/*209790*/                  OPC_MoveChild2,
/*209791*/                  OPC_CheckImmAllZerosV,
/*209792*/                  OPC_MoveParent,
/*209793*/                  OPC_CheckType, MVT::v4i32,
/*209795*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*209797*/                  OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*209800*/                  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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext), immAllZerosV:{ *:[v4i32] }) - Complexity = 17
                            // Dst: (VEXTRACTI32x4Zrrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR512:{ *:[v8i64] }:$src, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v2i64] }:$ext))
/*209809*/                /*Scope*/ 34, /*->209844*/
/*209810*/                  OPC_CheckChild0Type, MVT::v32i16,
/*209812*/                  OPC_MoveChild1,
/*209813*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*209816*/                  OPC_CheckType, MVT::iPTR,
/*209818*/                  OPC_MoveParent,
/*209819*/                  OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/*209821*/                  OPC_CheckType, MVT::v8i16,
/*209823*/                  OPC_MoveParent,
/*209824*/                  OPC_MoveParent,
/*209825*/                  OPC_MoveChild2,
/*209826*/                  OPC_CheckImmAllZerosV,
/*209827*/                  OPC_MoveParent,
/*209828*/                  OPC_CheckType, MVT::v4i32,
/*209830*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*209832*/                  OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*209835*/                  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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext), immAllZerosV:{ *:[v4i32] }) - Complexity = 17
                            // Dst: (VEXTRACTI32x4Zrrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR512:{ *:[v32i16] }:$src, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v8i16] }:$ext))
/*209844*/                /*Scope*/ 34, /*->209879*/
/*209845*/                  OPC_CheckChild0Type, MVT::v64i8,
/*209847*/                  OPC_MoveChild1,
/*209848*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*209851*/                  OPC_CheckType, MVT::iPTR,
/*209853*/                  OPC_MoveParent,
/*209854*/                  OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/*209856*/                  OPC_CheckType, MVT::v16i8,
/*209858*/                  OPC_MoveParent,
/*209859*/                  OPC_MoveParent,
/*209860*/                  OPC_MoveChild2,
/*209861*/                  OPC_CheckImmAllZerosV,
/*209862*/                  OPC_MoveParent,
/*209863*/                  OPC_CheckType, MVT::v4i32,
/*209865*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*209867*/                  OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*209870*/                  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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext), immAllZerosV:{ *:[v4i32] }) - Complexity = 17
                            // Dst: (VEXTRACTI32x4Zrrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR512:{ *:[v64i8] }:$src, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v16i8] }:$ext))
/*209879*/                /*Scope*/ 80, /*->209960*/
/*209880*/                  OPC_MoveChild1,
/*209881*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*209884*/                  OPC_CheckType, MVT::iPTR,
/*209886*/                  OPC_MoveParent,
/*209887*/                  OPC_CheckPredicate, 18, // Predicate_vextract256_extract
/*209889*/                  OPC_SwitchType /*3 cases */, 21, MVT::v8i32,// ->209913
/*209892*/                    OPC_MoveParent,
/*209893*/                    OPC_MoveParent,
/*209894*/                    OPC_MoveChild2,
/*209895*/                    OPC_CheckImmAllZerosV,
/*209896*/                    OPC_MoveParent,
/*209897*/                    OPC_CheckType, MVT::v4i64,
/*209899*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*209901*/                    OPC_EmitNodeXForm, 1, 1, // EXTRACT_get_vextract256_imm
/*209904*/                    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] }))<<P:Predicate_vextract256_extract>><<X:EXTRACT_get_vextract256_imm>>:$ext), immAllZerosV:{ *:[v4i64] }) - Complexity = 17
                              // Dst: (VEXTRACTI64x4Zrrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR512:{ *:[v16i32] }:$src, (EXTRACT_get_vextract256_imm:{ *:[i8] } VR256X:{ *:[v8i32] }:$ext))
/*209913*/                  /*SwitchType*/ 21, MVT::v16i16,// ->209936
/*209915*/                    OPC_MoveParent,
/*209916*/                    OPC_MoveParent,
/*209917*/                    OPC_MoveChild2,
/*209918*/                    OPC_CheckImmAllZerosV,
/*209919*/                    OPC_MoveParent,
/*209920*/                    OPC_CheckType, MVT::v4i64,
/*209922*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*209924*/                    OPC_EmitNodeXForm, 1, 1, // EXTRACT_get_vextract256_imm
/*209927*/                    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] }))<<P:Predicate_vextract256_extract>><<X:EXTRACT_get_vextract256_imm>>:$ext), immAllZerosV:{ *:[v4i64] }) - Complexity = 17
                              // Dst: (VEXTRACTI64x4Zrrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR512:{ *:[v32i16] }:$src, (EXTRACT_get_vextract256_imm:{ *:[i8] } VR256X:{ *:[v16i16] }:$ext))
/*209936*/                  /*SwitchType*/ 21, MVT::v32i8,// ->209959
/*209938*/                    OPC_MoveParent,
/*209939*/                    OPC_MoveParent,
/*209940*/                    OPC_MoveChild2,
/*209941*/                    OPC_CheckImmAllZerosV,
/*209942*/                    OPC_MoveParent,
/*209943*/                    OPC_CheckType, MVT::v4i64,
/*209945*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*209947*/                    OPC_EmitNodeXForm, 1, 1, // EXTRACT_get_vextract256_imm
/*209950*/                    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] }))<<P:Predicate_vextract256_extract>><<X:EXTRACT_get_vextract256_imm>>:$ext), immAllZerosV:{ *:[v4i64] }) - Complexity = 17
                              // Dst: (VEXTRACTI64x4Zrrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR512:{ *:[v64i8] }:$src, (EXTRACT_get_vextract256_imm:{ *:[i8] } VR256X:{ *:[v32i8] }:$ext))
/*209959*/                  0, // EndSwitchType
/*209960*/                0, /*End of Scope*/
/*209961*/              /*SwitchOpcode*/ 83, TARGET_VAL(ISD::INSERT_SUBVECTOR),// ->210047
/*209964*/                OPC_RecordChild0, // #2 = $src1
/*209965*/                OPC_RecordChild1, // #3 = $src2
/*209966*/                OPC_MoveChild2,
/*209967*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*209970*/                OPC_CheckType, MVT::iPTR,
/*209972*/                OPC_MoveParent,
/*209973*/                OPC_SwitchType /*3 cases */, 22, MVT::v8i32,// ->209998
/*209976*/                  OPC_MoveParent,
/*209977*/                  OPC_MoveParent,
/*209978*/                  OPC_MoveChild2,
/*209979*/                  OPC_CheckImmAllZerosV,
/*209980*/                  OPC_MoveParent,
/*209981*/                  OPC_CheckType, MVT::v4i64,
/*209983*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*209985*/                  OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*209988*/                  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), immAllZerosV:{ *:[v4i64] }) - Complexity = 16
                            // Dst: (VINSERTF64x2Z256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256X:{ *:[v8i32] }:$ins))
/*209998*/                /*SwitchType*/ 22, MVT::v16i16,// ->210022
/*210000*/                  OPC_MoveParent,
/*210001*/                  OPC_MoveParent,
/*210002*/                  OPC_MoveChild2,
/*210003*/                  OPC_CheckImmAllZerosV,
/*210004*/                  OPC_MoveParent,
/*210005*/                  OPC_CheckType, MVT::v4i64,
/*210007*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*210009*/                  OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*210012*/                  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), immAllZerosV:{ *:[v4i64] }) - Complexity = 16
                            // Dst: (VINSERTF64x2Z256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256X:{ *:[v16i16] }:$ins))
/*210022*/                /*SwitchType*/ 22, MVT::v32i8,// ->210046
/*210024*/                  OPC_MoveParent,
/*210025*/                  OPC_MoveParent,
/*210026*/                  OPC_MoveChild2,
/*210027*/                  OPC_CheckImmAllZerosV,
/*210028*/                  OPC_MoveParent,
/*210029*/                  OPC_CheckType, MVT::v4i64,
/*210031*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*210033*/                  OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*210036*/                  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), immAllZerosV:{ *:[v4i64] }) - Complexity = 16
                            // Dst: (VINSERTF64x2Z256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256X:{ *:[v32i8] }:$ins))
/*210046*/                0, // EndSwitchType
/*210047*/              0, // EndSwitchOpcode
/*210048*/            /*Scope*/ 36, /*->210085*/
/*210049*/              OPC_MoveChild0,
/*210050*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VALIGN),
/*210053*/              OPC_RecordChild0, // #1 = $src1
/*210054*/              OPC_RecordChild1, // #2 = $src2
/*210055*/              OPC_RecordChild2, // #3 = $src3
/*210056*/              OPC_MoveChild2,
/*210057*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*210060*/              OPC_MoveParent,
/*210061*/              OPC_CheckType, MVT::v2i64,
/*210063*/              OPC_MoveParent,
/*210064*/              OPC_MoveParent,
/*210065*/              OPC_MoveChild2,
/*210066*/              OPC_CheckImmAllZerosV,
/*210067*/              OPC_MoveParent,
/*210068*/              OPC_CheckType, MVT::v4i32,
/*210070*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*210072*/              OPC_EmitNodeXForm, 14, 3, // ValignqImm32XForm
/*210075*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZ128rrikz), 0,
                            MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 4, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (X86VAlign:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (timm:{ *:[i8] }):$src3)), immAllZerosV:{ *:[v4i32] }) - Complexity = 16
                        // Dst: (VALIGNDZ128rrikz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (ValignqImm32XForm:{ *:[i8] } (timm:{ *:[i8] }):$src3))
/*210085*/            0, /*End of Scope*/
/*210086*/          /*SwitchOpcode*/ 18|128,1/*146*/, TARGET_VAL(X86ISD::VSRLI),// ->210236
/*210090*/            OPC_MoveChild0,
/*210091*/            OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->210158
/*210095*/              OPC_RecordMemRef,
/*210096*/              OPC_RecordNode, // #1 = 'ld' chained node
/*210097*/              OPC_CheckFoldableChainNode,
/*210098*/              OPC_RecordChild1, // #2 = $src1
/*210099*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*210101*/              OPC_CheckPredicate, 9, // Predicate_load
/*210103*/              OPC_MoveParent,
/*210104*/              OPC_RecordChild1, // #3 = $src2
/*210105*/              OPC_MoveChild1,
/*210106*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*210109*/              OPC_MoveParent,
/*210110*/              OPC_MoveParent,
/*210111*/              OPC_RecordChild2, // #4 = $src0
/*210112*/              OPC_SwitchType /*2 cases */, 20, MVT::v4i32,// ->210135
/*210115*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*210117*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*210120*/                OPC_EmitMergeInputChains1_1,
/*210121*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZ128mik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrli:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                          // Dst: (VPSRLDZ128mik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*210135*/              /*SwitchType*/ 20, MVT::v4i64,// ->210157
/*210137*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*210139*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*210142*/                OPC_EmitMergeInputChains1_1,
/*210143*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZ256mik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrli:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                          // Dst: (VPSRLQZ256mik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*210157*/              0, // EndSwitchType
/*210158*/            /*SwitchOpcode*/ 74, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->210235
/*210161*/              OPC_RecordMemRef,
/*210162*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*210163*/              OPC_CheckFoldableChainNode,
/*210164*/              OPC_RecordChild1, // #2 = $src1
/*210165*/              OPC_Scope, 33, /*->210200*/ // 2 children in Scope
/*210167*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*210169*/                OPC_MoveParent,
/*210170*/                OPC_RecordChild1, // #3 = $src2
/*210171*/                OPC_MoveChild1,
/*210172*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*210175*/                OPC_MoveParent,
/*210176*/                OPC_MoveParent,
/*210177*/                OPC_RecordChild2, // #4 = $src0
/*210178*/                OPC_CheckType, MVT::v4i32,
/*210180*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*210182*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*210185*/                OPC_EmitMergeInputChains1_1,
/*210186*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZ128mbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrli:{ *:[v4i32] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src2), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                          // Dst: (VPSRLDZ128mbik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*210200*/              /*Scope*/ 33, /*->210234*/
/*210201*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*210203*/                OPC_MoveParent,
/*210204*/                OPC_RecordChild1, // #3 = $src2
/*210205*/                OPC_MoveChild1,
/*210206*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*210209*/                OPC_MoveParent,
/*210210*/                OPC_MoveParent,
/*210211*/                OPC_RecordChild2, // #4 = $src0
/*210212*/                OPC_CheckType, MVT::v4i64,
/*210214*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*210216*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*210219*/                OPC_EmitMergeInputChains1_1,
/*210220*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZ256mbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrli:{ *:[v4i64] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src2), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                          // Dst: (VPSRLQZ256mbik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*210234*/              0, /*End of Scope*/
/*210235*/            0, // EndSwitchOpcode
/*210236*/          /*SwitchOpcode*/ 18|128,1/*146*/, TARGET_VAL(X86ISD::VSHLI),// ->210386
/*210240*/            OPC_MoveChild0,
/*210241*/            OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->210308
/*210245*/              OPC_RecordMemRef,
/*210246*/              OPC_RecordNode, // #1 = 'ld' chained node
/*210247*/              OPC_CheckFoldableChainNode,
/*210248*/              OPC_RecordChild1, // #2 = $src1
/*210249*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*210251*/              OPC_CheckPredicate, 9, // Predicate_load
/*210253*/              OPC_MoveParent,
/*210254*/              OPC_RecordChild1, // #3 = $src2
/*210255*/              OPC_MoveChild1,
/*210256*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*210259*/              OPC_MoveParent,
/*210260*/              OPC_MoveParent,
/*210261*/              OPC_RecordChild2, // #4 = $src0
/*210262*/              OPC_SwitchType /*2 cases */, 20, MVT::v4i32,// ->210285
/*210265*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*210267*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*210270*/                OPC_EmitMergeInputChains1_1,
/*210271*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZ128mik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vshli:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                          // Dst: (VPSLLDZ128mik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*210285*/              /*SwitchType*/ 20, MVT::v4i64,// ->210307
/*210287*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*210289*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*210292*/                OPC_EmitMergeInputChains1_1,
/*210293*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZ256mik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vshli:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                          // Dst: (VPSLLQZ256mik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*210307*/              0, // EndSwitchType
/*210308*/            /*SwitchOpcode*/ 74, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->210385
/*210311*/              OPC_RecordMemRef,
/*210312*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*210313*/              OPC_CheckFoldableChainNode,
/*210314*/              OPC_RecordChild1, // #2 = $src1
/*210315*/              OPC_Scope, 33, /*->210350*/ // 2 children in Scope
/*210317*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*210319*/                OPC_MoveParent,
/*210320*/                OPC_RecordChild1, // #3 = $src2
/*210321*/                OPC_MoveChild1,
/*210322*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*210325*/                OPC_MoveParent,
/*210326*/                OPC_MoveParent,
/*210327*/                OPC_RecordChild2, // #4 = $src0
/*210328*/                OPC_CheckType, MVT::v4i32,
/*210330*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*210332*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*210335*/                OPC_EmitMergeInputChains1_1,
/*210336*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZ128mbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vshli:{ *:[v4i32] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src2), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                          // Dst: (VPSLLDZ128mbik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*210350*/              /*Scope*/ 33, /*->210384*/
/*210351*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*210353*/                OPC_MoveParent,
/*210354*/                OPC_RecordChild1, // #3 = $src2
/*210355*/                OPC_MoveChild1,
/*210356*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*210359*/                OPC_MoveParent,
/*210360*/                OPC_MoveParent,
/*210361*/                OPC_RecordChild2, // #4 = $src0
/*210362*/                OPC_CheckType, MVT::v4i64,
/*210364*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*210366*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*210369*/                OPC_EmitMergeInputChains1_1,
/*210370*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZ256mbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vshli:{ *:[v4i64] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src2), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                          // Dst: (VPSLLQZ256mbik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*210384*/              0, /*End of Scope*/
/*210385*/            0, // EndSwitchOpcode
/*210386*/          /*SwitchOpcode*/ 18|128,1/*146*/, TARGET_VAL(X86ISD::VSRAI),// ->210536
/*210390*/            OPC_MoveChild0,
/*210391*/            OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->210458
/*210395*/              OPC_RecordMemRef,
/*210396*/              OPC_RecordNode, // #1 = 'ld' chained node
/*210397*/              OPC_CheckFoldableChainNode,
/*210398*/              OPC_RecordChild1, // #2 = $src1
/*210399*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*210401*/              OPC_CheckPredicate, 9, // Predicate_load
/*210403*/              OPC_MoveParent,
/*210404*/              OPC_RecordChild1, // #3 = $src2
/*210405*/              OPC_MoveChild1,
/*210406*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*210409*/              OPC_MoveParent,
/*210410*/              OPC_MoveParent,
/*210411*/              OPC_RecordChild2, // #4 = $src0
/*210412*/              OPC_SwitchType /*2 cases */, 20, MVT::v4i32,// ->210435
/*210415*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*210417*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*210420*/                OPC_EmitMergeInputChains1_1,
/*210421*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZ128mik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrai:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                          // Dst: (VPSRADZ128mik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*210435*/              /*SwitchType*/ 20, MVT::v4i64,// ->210457
/*210437*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*210439*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*210442*/                OPC_EmitMergeInputChains1_1,
/*210443*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZ256mik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrai:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                          // Dst: (VPSRAQZ256mik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*210457*/              0, // EndSwitchType
/*210458*/            /*SwitchOpcode*/ 74, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->210535
/*210461*/              OPC_RecordMemRef,
/*210462*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*210463*/              OPC_CheckFoldableChainNode,
/*210464*/              OPC_RecordChild1, // #2 = $src1
/*210465*/              OPC_Scope, 33, /*->210500*/ // 2 children in Scope
/*210467*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*210469*/                OPC_MoveParent,
/*210470*/                OPC_RecordChild1, // #3 = $src2
/*210471*/                OPC_MoveChild1,
/*210472*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*210475*/                OPC_MoveParent,
/*210476*/                OPC_MoveParent,
/*210477*/                OPC_RecordChild2, // #4 = $src0
/*210478*/                OPC_CheckType, MVT::v4i32,
/*210480*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*210482*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*210485*/                OPC_EmitMergeInputChains1_1,
/*210486*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZ128mbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrai:{ *:[v4i32] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src2), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                          // Dst: (VPSRADZ128mbik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*210500*/              /*Scope*/ 33, /*->210534*/
/*210501*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*210503*/                OPC_MoveParent,
/*210504*/                OPC_RecordChild1, // #3 = $src2
/*210505*/                OPC_MoveChild1,
/*210506*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*210509*/                OPC_MoveParent,
/*210510*/                OPC_MoveParent,
/*210511*/                OPC_RecordChild2, // #4 = $src0
/*210512*/                OPC_CheckType, MVT::v4i64,
/*210514*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*210516*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*210519*/                OPC_EmitMergeInputChains1_1,
/*210520*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZ256mbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrai:{ *:[v4i64] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src2), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                          // Dst: (VPSRAQZ256mbik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*210534*/              0, /*End of Scope*/
/*210535*/            0, // EndSwitchOpcode
/*210536*/          /*SwitchOpcode*/ 18|128,1/*146*/, TARGET_VAL(X86ISD::VROTRI),// ->210686
/*210540*/            OPC_MoveChild0,
/*210541*/            OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->210608
/*210545*/              OPC_RecordMemRef,
/*210546*/              OPC_RecordNode, // #1 = 'ld' chained node
/*210547*/              OPC_CheckFoldableChainNode,
/*210548*/              OPC_RecordChild1, // #2 = $src1
/*210549*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*210551*/              OPC_CheckPredicate, 9, // Predicate_load
/*210553*/              OPC_MoveParent,
/*210554*/              OPC_RecordChild1, // #3 = $src2
/*210555*/              OPC_MoveChild1,
/*210556*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*210559*/              OPC_MoveParent,
/*210560*/              OPC_MoveParent,
/*210561*/              OPC_RecordChild2, // #4 = $src0
/*210562*/              OPC_SwitchType /*2 cases */, 20, MVT::v4i32,// ->210585
/*210565*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*210567*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*210570*/                OPC_EmitMergeInputChains1_1,
/*210571*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORDZ128mik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vrotri:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                          // Dst: (VPRORDZ128mik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*210585*/              /*SwitchType*/ 20, MVT::v4i64,// ->210607
/*210587*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*210589*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*210592*/                OPC_EmitMergeInputChains1_1,
/*210593*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORQZ256mik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vrotri:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                          // Dst: (VPRORQZ256mik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*210607*/              0, // EndSwitchType
/*210608*/            /*SwitchOpcode*/ 74, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->210685
/*210611*/              OPC_RecordMemRef,
/*210612*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*210613*/              OPC_CheckFoldableChainNode,
/*210614*/              OPC_RecordChild1, // #2 = $src1
/*210615*/              OPC_Scope, 33, /*->210650*/ // 2 children in Scope
/*210617*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*210619*/                OPC_MoveParent,
/*210620*/                OPC_RecordChild1, // #3 = $src2
/*210621*/                OPC_MoveChild1,
/*210622*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*210625*/                OPC_MoveParent,
/*210626*/                OPC_MoveParent,
/*210627*/                OPC_RecordChild2, // #4 = $src0
/*210628*/                OPC_CheckType, MVT::v4i32,
/*210630*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*210632*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*210635*/                OPC_EmitMergeInputChains1_1,
/*210636*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORDZ128mbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vrotri:{ *:[v4i32] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src2), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                          // Dst: (VPRORDZ128mbik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*210650*/              /*Scope*/ 33, /*->210684*/
/*210651*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*210653*/                OPC_MoveParent,
/*210654*/                OPC_RecordChild1, // #3 = $src2
/*210655*/                OPC_MoveChild1,
/*210656*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*210659*/                OPC_MoveParent,
/*210660*/                OPC_MoveParent,
/*210661*/                OPC_RecordChild2, // #4 = $src0
/*210662*/                OPC_CheckType, MVT::v4i64,
/*210664*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*210666*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*210669*/                OPC_EmitMergeInputChains1_1,
/*210670*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORQZ256mbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vrotri:{ *:[v4i64] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src2), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                          // Dst: (VPRORQZ256mbik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*210684*/              0, /*End of Scope*/
/*210685*/            0, // EndSwitchOpcode
/*210686*/          /*SwitchOpcode*/ 18|128,1/*146*/, TARGET_VAL(X86ISD::VROTLI),// ->210836
/*210690*/            OPC_MoveChild0,
/*210691*/            OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->210758
/*210695*/              OPC_RecordMemRef,
/*210696*/              OPC_RecordNode, // #1 = 'ld' chained node
/*210697*/              OPC_CheckFoldableChainNode,
/*210698*/              OPC_RecordChild1, // #2 = $src1
/*210699*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*210701*/              OPC_CheckPredicate, 9, // Predicate_load
/*210703*/              OPC_MoveParent,
/*210704*/              OPC_RecordChild1, // #3 = $src2
/*210705*/              OPC_MoveChild1,
/*210706*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*210709*/              OPC_MoveParent,
/*210710*/              OPC_MoveParent,
/*210711*/              OPC_RecordChild2, // #4 = $src0
/*210712*/              OPC_SwitchType /*2 cases */, 20, MVT::v4i32,// ->210735
/*210715*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*210717*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*210720*/                OPC_EmitMergeInputChains1_1,
/*210721*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLDZ128mik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vrotli:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                          // Dst: (VPROLDZ128mik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*210735*/              /*SwitchType*/ 20, MVT::v4i64,// ->210757
/*210737*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*210739*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*210742*/                OPC_EmitMergeInputChains1_1,
/*210743*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLQZ256mik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vrotli:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                          // Dst: (VPROLQZ256mik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*210757*/              0, // EndSwitchType
/*210758*/            /*SwitchOpcode*/ 74, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->210835
/*210761*/              OPC_RecordMemRef,
/*210762*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*210763*/              OPC_CheckFoldableChainNode,
/*210764*/              OPC_RecordChild1, // #2 = $src1
/*210765*/              OPC_Scope, 33, /*->210800*/ // 2 children in Scope
/*210767*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*210769*/                OPC_MoveParent,
/*210770*/                OPC_RecordChild1, // #3 = $src2
/*210771*/                OPC_MoveChild1,
/*210772*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*210775*/                OPC_MoveParent,
/*210776*/                OPC_MoveParent,
/*210777*/                OPC_RecordChild2, // #4 = $src0
/*210778*/                OPC_CheckType, MVT::v4i32,
/*210780*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*210782*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*210785*/                OPC_EmitMergeInputChains1_1,
/*210786*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLDZ128mbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vrotli:{ *:[v4i32] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src2), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                          // Dst: (VPROLDZ128mbik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*210800*/              /*Scope*/ 33, /*->210834*/
/*210801*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*210803*/                OPC_MoveParent,
/*210804*/                OPC_RecordChild1, // #3 = $src2
/*210805*/                OPC_MoveChild1,
/*210806*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*210809*/                OPC_MoveParent,
/*210810*/                OPC_MoveParent,
/*210811*/                OPC_RecordChild2, // #4 = $src0
/*210812*/                OPC_CheckType, MVT::v4i64,
/*210814*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*210816*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*210819*/                OPC_EmitMergeInputChains1_1,
/*210820*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLQZ256mbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vrotli:{ *:[v4i64] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src2), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                          // Dst: (VPROLQZ256mbik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*210834*/              0, /*End of Scope*/
/*210835*/            0, // EndSwitchOpcode
/*210836*/          /*SwitchOpcode*/ 85, TARGET_VAL(X86ISD::VPERMI),// ->210924
/*210839*/            OPC_MoveChild0,
/*210840*/            OPC_SwitchOpcode /*2 cases */, 39, TARGET_VAL(ISD::LOAD),// ->210883
/*210844*/              OPC_RecordMemRef,
/*210845*/              OPC_RecordNode, // #1 = 'ld' chained node
/*210846*/              OPC_CheckFoldableChainNode,
/*210847*/              OPC_RecordChild1, // #2 = $src1
/*210848*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*210850*/              OPC_CheckPredicate, 9, // Predicate_load
/*210852*/              OPC_MoveParent,
/*210853*/              OPC_RecordChild1, // #3 = $src2
/*210854*/              OPC_MoveChild1,
/*210855*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*210858*/              OPC_MoveParent,
/*210859*/              OPC_MoveParent,
/*210860*/              OPC_RecordChild2, // #4 = $src0
/*210861*/              OPC_CheckType, MVT::v4i64,
/*210863*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*210865*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*210868*/              OPC_EmitMergeInputChains1_1,
/*210869*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMQZ256mik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermi:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                        // Dst: (VPERMQZ256mik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*210883*/            /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->210923
/*210886*/              OPC_RecordMemRef,
/*210887*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*210888*/              OPC_CheckFoldableChainNode,
/*210889*/              OPC_RecordChild1, // #2 = $src1
/*210890*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*210892*/              OPC_MoveParent,
/*210893*/              OPC_RecordChild1, // #3 = $src2
/*210894*/              OPC_MoveChild1,
/*210895*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*210898*/              OPC_MoveParent,
/*210899*/              OPC_MoveParent,
/*210900*/              OPC_RecordChild2, // #4 = $src0
/*210901*/              OPC_CheckType, MVT::v4i64,
/*210903*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*210905*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*210908*/              OPC_EmitMergeInputChains1_1,
/*210909*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMQZ256mbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermi:{ *:[v4i64] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src2), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                        // Dst: (VPERMQZ256mbik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*210923*/            0, // EndSwitchOpcode
/*210924*/          /*SwitchOpcode*/ 85, TARGET_VAL(X86ISD::PSHUFD),// ->211012
/*210927*/            OPC_MoveChild0,
/*210928*/            OPC_SwitchOpcode /*2 cases */, 39, TARGET_VAL(ISD::LOAD),// ->210971
/*210932*/              OPC_RecordMemRef,
/*210933*/              OPC_RecordNode, // #1 = 'ld' chained node
/*210934*/              OPC_CheckFoldableChainNode,
/*210935*/              OPC_RecordChild1, // #2 = $src1
/*210936*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*210938*/              OPC_CheckPredicate, 9, // Predicate_load
/*210940*/              OPC_MoveParent,
/*210941*/              OPC_RecordChild1, // #3 = $src2
/*210942*/              OPC_MoveChild1,
/*210943*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*210946*/              OPC_MoveParent,
/*210947*/              OPC_MoveParent,
/*210948*/              OPC_RecordChild2, // #4 = $src0
/*210949*/              OPC_CheckType, MVT::v4i32,
/*210951*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*210953*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*210956*/              OPC_EmitMergeInputChains1_1,
/*210957*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFDZ128mik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86PShufd:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                        // Dst: (VPSHUFDZ128mik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*210971*/            /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->211011
/*210974*/              OPC_RecordMemRef,
/*210975*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*210976*/              OPC_CheckFoldableChainNode,
/*210977*/              OPC_RecordChild1, // #2 = $src1
/*210978*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*210980*/              OPC_MoveParent,
/*210981*/              OPC_RecordChild1, // #3 = $src2
/*210982*/              OPC_MoveChild1,
/*210983*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*210986*/              OPC_MoveParent,
/*210987*/              OPC_MoveParent,
/*210988*/              OPC_RecordChild2, // #4 = $src0
/*210989*/              OPC_CheckType, MVT::v4i32,
/*210991*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*210993*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*210996*/              OPC_EmitMergeInputChains1_1,
/*210997*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFDZ128mbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86PShufd:{ *:[v4i32] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src2), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                        // Dst: (VPSHUFDZ128mbik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*211011*/            0, // EndSwitchOpcode
/*211012*/          /*SwitchOpcode*/ 88, TARGET_VAL(X86ISD::SHUF128),// ->211103
/*211015*/            OPC_RecordChild0, // #1 = $src1
/*211016*/            OPC_MoveChild1,
/*211017*/            OPC_SwitchOpcode /*2 cases */, 40, TARGET_VAL(ISD::LOAD),// ->211061
/*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_MoveParent,
/*211030*/              OPC_RecordChild2, // #4 = $src3
/*211031*/              OPC_MoveChild2,
/*211032*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*211035*/              OPC_MoveParent,
/*211036*/              OPC_MoveParent,
/*211037*/              OPC_RecordChild2, // #5 = $src0
/*211038*/              OPC_CheckType, MVT::v4i64,
/*211040*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*211042*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*211045*/              OPC_EmitMergeInputChains1_2,
/*211046*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI64X2Z256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86Shuf128:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                        // Dst: (VSHUFI64X2Z256rmik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*211061*/            /*SwitchOpcode*/ 38, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->211102
/*211064*/              OPC_RecordMemRef,
/*211065*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*211066*/              OPC_CheckFoldableChainNode,
/*211067*/              OPC_RecordChild1, // #3 = $src2
/*211068*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*211070*/              OPC_MoveParent,
/*211071*/              OPC_RecordChild2, // #4 = $src3
/*211072*/              OPC_MoveChild2,
/*211073*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*211076*/              OPC_MoveParent,
/*211077*/              OPC_MoveParent,
/*211078*/              OPC_RecordChild2, // #5 = $src0
/*211079*/              OPC_CheckType, MVT::v4i64,
/*211081*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*211083*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*211086*/              OPC_EmitMergeInputChains1_2,
/*211087*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI64X2Z256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86Shuf128:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src3), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                        // Dst: (VSHUFI64X2Z256rmbik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*211102*/            0, // EndSwitchOpcode
/*211103*/          /*SwitchOpcode*/ 23|128,1/*151*/, TARGET_VAL(X86ISD::VALIGN),// ->211258
/*211107*/            OPC_RecordChild0, // #1 = $src1
/*211108*/            OPC_MoveChild1,
/*211109*/            OPC_SwitchOpcode /*2 cases */, 65, TARGET_VAL(ISD::LOAD),// ->211178
/*211113*/              OPC_RecordMemRef,
/*211114*/              OPC_RecordNode, // #2 = 'ld' chained node
/*211115*/              OPC_CheckFoldableChainNode,
/*211116*/              OPC_RecordChild1, // #3 = $src2
/*211117*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*211119*/              OPC_CheckPredicate, 9, // Predicate_load
/*211121*/              OPC_MoveParent,
/*211122*/              OPC_RecordChild2, // #4 = $src3
/*211123*/              OPC_MoveChild2,
/*211124*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*211127*/              OPC_MoveParent,
/*211128*/              OPC_MoveParent,
/*211129*/              OPC_RecordChild2, // #5 = $src0
/*211130*/              OPC_SwitchType /*2 cases */, 21, MVT::v4i32,// ->211154
/*211133*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*211135*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*211138*/                OPC_EmitMergeInputChains1_2,
/*211139*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86VAlign:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                          // Dst: (VALIGNDZ128rmik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*211154*/              /*SwitchType*/ 21, MVT::v4i64,// ->211177
/*211156*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*211158*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*211161*/                OPC_EmitMergeInputChains1_2,
/*211162*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNQZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VAlign:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                          // Dst: (VALIGNQZ256rmik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*211177*/              0, // EndSwitchType
/*211178*/            /*SwitchOpcode*/ 76, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->211257
/*211181*/              OPC_RecordMemRef,
/*211182*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*211183*/              OPC_CheckFoldableChainNode,
/*211184*/              OPC_RecordChild1, // #3 = $src2
/*211185*/              OPC_Scope, 34, /*->211221*/ // 2 children in Scope
/*211187*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*211189*/                OPC_MoveParent,
/*211190*/                OPC_RecordChild2, // #4 = $src3
/*211191*/                OPC_MoveChild2,
/*211192*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*211195*/                OPC_MoveParent,
/*211196*/                OPC_MoveParent,
/*211197*/                OPC_RecordChild2, // #5 = $src0
/*211198*/                OPC_CheckType, MVT::v4i32,
/*211200*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*211202*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*211205*/                OPC_EmitMergeInputChains1_2,
/*211206*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86VAlign:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src3), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                          // Dst: (VALIGNDZ128rmbik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*211221*/              /*Scope*/ 34, /*->211256*/
/*211222*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*211224*/                OPC_MoveParent,
/*211225*/                OPC_RecordChild2, // #4 = $src3
/*211226*/                OPC_MoveChild2,
/*211227*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*211230*/                OPC_MoveParent,
/*211231*/                OPC_MoveParent,
/*211232*/                OPC_RecordChild2, // #5 = $src0
/*211233*/                OPC_CheckType, MVT::v4i64,
/*211235*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*211237*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*211240*/                OPC_EmitMergeInputChains1_2,
/*211241*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNQZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VAlign:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src3), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                          // Dst: (VALIGNQZ256rmbik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*211256*/              0, /*End of Scope*/
/*211257*/            0, // EndSwitchOpcode
/*211258*/          /*SwitchOpcode*/ 64|128,9/*1216*/, TARGET_VAL(X86ISD::VPTERNLOG),// ->212478
/*211262*/            OPC_Scope, 20|128,1/*148*/, /*->211413*/ // 16 children in Scope
/*211265*/              OPC_RecordChild0, // #1 = $src1
/*211266*/              OPC_Scope, 94, /*->211362*/ // 2 children in Scope
/*211268*/                OPC_RecordChild1, // #2 = $src2
/*211269*/                OPC_MoveChild2,
/*211270*/                OPC_SwitchOpcode /*2 cases */, 43, TARGET_VAL(ISD::LOAD),// ->211317
/*211274*/                  OPC_RecordMemRef,
/*211275*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*211276*/                  OPC_CheckFoldableChainNode,
/*211277*/                  OPC_RecordChild1, // #4 = $src3
/*211278*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*211280*/                  OPC_CheckPredicate, 9, // Predicate_load
/*211282*/                  OPC_MoveParent,
/*211283*/                  OPC_RecordChild3, // #5 = $src4
/*211284*/                  OPC_MoveChild3,
/*211285*/                  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*211288*/                  OPC_MoveParent,
/*211289*/                  OPC_MoveParent,
/*211290*/                  OPC_CheckChild2Same, 1,
/*211292*/                  OPC_CheckType, MVT::v4i32,
/*211294*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*211296*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*211299*/                  OPC_EmitMergeInputChains, 1, 3, 
/*211302*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 5, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src4), VR128X:{ *:[v4i32] }:$src1) - Complexity = 31
                            // Dst: (VPTERNLOGDZ128rmik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i8] }):$src4)
/*211317*/                /*SwitchOpcode*/ 41, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->211361
/*211320*/                  OPC_RecordMemRef,
/*211321*/                  OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*211322*/                  OPC_CheckFoldableChainNode,
/*211323*/                  OPC_RecordChild1, // #4 = $src3
/*211324*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*211326*/                  OPC_MoveParent,
/*211327*/                  OPC_RecordChild3, // #5 = $src4
/*211328*/                  OPC_MoveChild3,
/*211329*/                  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*211332*/                  OPC_MoveParent,
/*211333*/                  OPC_MoveParent,
/*211334*/                  OPC_CheckChild2Same, 1,
/*211336*/                  OPC_CheckType, MVT::v4i32,
/*211338*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*211340*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*211343*/                  OPC_EmitMergeInputChains, 1, 3, 
/*211346*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 5, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src4), VR128X:{ *:[v4i32] }:$src1) - Complexity = 31
                            // Dst: (VPTERNLOGDZ128rmbik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i8] }):$src4)
/*211361*/                0, // EndSwitchOpcode
/*211362*/              /*Scope*/ 49, /*->211412*/
/*211363*/                OPC_MoveChild1,
/*211364*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*211367*/                OPC_RecordMemRef,
/*211368*/                OPC_RecordNode, // #2 = 'ld' chained node
/*211369*/                OPC_CheckFoldableChainNode,
/*211370*/                OPC_RecordChild1, // #3 = $src3
/*211371*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*211373*/                OPC_CheckPredicate, 9, // Predicate_load
/*211375*/                OPC_MoveParent,
/*211376*/                OPC_RecordChild2, // #4 = $src2
/*211377*/                OPC_RecordChild3, // #5 = $src4
/*211378*/                OPC_MoveChild3,
/*211379*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*211382*/                OPC_MoveParent,
/*211383*/                OPC_MoveParent,
/*211384*/                OPC_CheckChild2Same, 1,
/*211386*/                OPC_CheckType, MVT::v4i32,
/*211388*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*211390*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*211393*/                OPC_EmitMergeInputChains1_2,
/*211394*/                OPC_EmitNodeXForm, 20, 5, // VPTERNLOG132_imm8
/*211397*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 9/*#Ops*/, 1, 0, 4, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4i32] }:$src2, (timm:{ *:[i8] }):$src4), VR128X:{ *:[v4i32] }:$src1) - Complexity = 31
                          // Dst: (VPTERNLOGDZ128rmik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*211412*/              0, /*End of Scope*/
/*211413*/            /*Scope*/ 50, /*->211464*/
/*211414*/              OPC_MoveChild0,
/*211415*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*211418*/              OPC_RecordMemRef,
/*211419*/              OPC_RecordNode, // #1 = 'ld' chained node
/*211420*/              OPC_CheckFoldableChainNode,
/*211421*/              OPC_RecordChild1, // #2 = $src3
/*211422*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*211424*/              OPC_CheckPredicate, 9, // Predicate_load
/*211426*/              OPC_MoveParent,
/*211427*/              OPC_RecordChild1, // #3 = $src2
/*211428*/              OPC_RecordChild2, // #4 = $src1
/*211429*/              OPC_RecordChild3, // #5 = $src4
/*211430*/              OPC_MoveChild3,
/*211431*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*211434*/              OPC_MoveParent,
/*211435*/              OPC_MoveParent,
/*211436*/              OPC_CheckChild2Same, 4,
/*211438*/              OPC_CheckType, MVT::v4i32,
/*211440*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*211442*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*211445*/              OPC_EmitMergeInputChains1_1,
/*211446*/              OPC_EmitNodeXForm, 19, 5, // VPTERNLOG321_imm8
/*211449*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 9/*#Ops*/, 4, 0, 3, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$src4), VR128X:{ *:[v4i32] }:$src1) - Complexity = 31
                        // Dst: (VPTERNLOGDZ128rmik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*211464*/            /*Scope*/ 105, /*->211570*/
/*211465*/              OPC_RecordChild0, // #1 = $src2
/*211466*/              OPC_Scope, 51, /*->211519*/ // 2 children in Scope
/*211468*/                OPC_RecordChild1, // #2 = $src1
/*211469*/                OPC_MoveChild2,
/*211470*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*211473*/                OPC_RecordMemRef,
/*211474*/                OPC_RecordNode, // #3 = 'ld' chained node
/*211475*/                OPC_CheckFoldableChainNode,
/*211476*/                OPC_RecordChild1, // #4 = $src3
/*211477*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*211479*/                OPC_CheckPredicate, 9, // Predicate_load
/*211481*/                OPC_MoveParent,
/*211482*/                OPC_RecordChild3, // #5 = $src4
/*211483*/                OPC_MoveChild3,
/*211484*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*211487*/                OPC_MoveParent,
/*211488*/                OPC_MoveParent,
/*211489*/                OPC_CheckChild2Same, 2,
/*211491*/                OPC_CheckType, MVT::v4i32,
/*211493*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*211495*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*211498*/                OPC_EmitMergeInputChains, 1, 3, 
/*211501*/                OPC_EmitNodeXForm, 21, 5, // VPTERNLOG213_imm8
/*211504*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 9/*#Ops*/, 2, 0, 1, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src4), VR128X:{ *:[v4i32] }:$src1) - Complexity = 31
                          // Dst: (VPTERNLOGDZ128rmik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG213_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*211519*/              /*Scope*/ 49, /*->211569*/
/*211520*/                OPC_MoveChild1,
/*211521*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*211524*/                OPC_RecordMemRef,
/*211525*/                OPC_RecordNode, // #2 = 'ld' chained node
/*211526*/                OPC_CheckFoldableChainNode,
/*211527*/                OPC_RecordChild1, // #3 = $src3
/*211528*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*211530*/                OPC_CheckPredicate, 9, // Predicate_load
/*211532*/                OPC_MoveParent,
/*211533*/                OPC_RecordChild2, // #4 = $src1
/*211534*/                OPC_RecordChild3, // #5 = $src4
/*211535*/                OPC_MoveChild3,
/*211536*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*211539*/                OPC_MoveParent,
/*211540*/                OPC_MoveParent,
/*211541*/                OPC_CheckChild2Same, 4,
/*211543*/                OPC_CheckType, MVT::v4i32,
/*211545*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*211547*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*211550*/                OPC_EmitMergeInputChains1_2,
/*211551*/                OPC_EmitNodeXForm, 22, 5, // VPTERNLOG231_imm8
/*211554*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 9/*#Ops*/, 4, 0, 1, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src2, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$src4), VR128X:{ *:[v4i32] }:$src1) - Complexity = 31
                          // Dst: (VPTERNLOGDZ128rmik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG231_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*211569*/              0, /*End of Scope*/
/*211570*/            /*Scope*/ 50, /*->211621*/
/*211571*/              OPC_MoveChild0,
/*211572*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*211575*/              OPC_RecordMemRef,
/*211576*/              OPC_RecordNode, // #1 = 'ld' chained node
/*211577*/              OPC_CheckFoldableChainNode,
/*211578*/              OPC_RecordChild1, // #2 = $src3
/*211579*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*211581*/              OPC_CheckPredicate, 9, // Predicate_load
/*211583*/              OPC_MoveParent,
/*211584*/              OPC_RecordChild1, // #3 = $src1
/*211585*/              OPC_RecordChild2, // #4 = $src2
/*211586*/              OPC_RecordChild3, // #5 = $src4
/*211587*/              OPC_MoveChild3,
/*211588*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*211591*/              OPC_MoveParent,
/*211592*/              OPC_MoveParent,
/*211593*/              OPC_CheckChild2Same, 3,
/*211595*/              OPC_CheckType, MVT::v4i32,
/*211597*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*211599*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*211602*/              OPC_EmitMergeInputChains1_1,
/*211603*/              OPC_EmitNodeXForm, 23, 5, // VPTERNLOG312_imm8
/*211606*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 9/*#Ops*/, 3, 0, 4, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (timm:{ *:[i8] }):$src4), VR128X:{ *:[v4i32] }:$src1) - Complexity = 31
                        // Dst: (VPTERNLOGDZ128rmik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG312_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*211621*/            /*Scope*/ 48, /*->211670*/
/*211622*/              OPC_RecordChild0, // #1 = $src1
/*211623*/              OPC_MoveChild1,
/*211624*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*211627*/              OPC_RecordMemRef,
/*211628*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*211629*/              OPC_CheckFoldableChainNode,
/*211630*/              OPC_RecordChild1, // #3 = $src3
/*211631*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*211633*/              OPC_MoveParent,
/*211634*/              OPC_RecordChild2, // #4 = $src2
/*211635*/              OPC_RecordChild3, // #5 = $src4
/*211636*/              OPC_MoveChild3,
/*211637*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*211640*/              OPC_MoveParent,
/*211641*/              OPC_MoveParent,
/*211642*/              OPC_CheckChild2Same, 1,
/*211644*/              OPC_CheckType, MVT::v4i32,
/*211646*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*211648*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*211651*/              OPC_EmitMergeInputChains1_2,
/*211652*/              OPC_EmitNodeXForm, 20, 5, // VPTERNLOG132_imm8
/*211655*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 9/*#Ops*/, 1, 0, 4, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4i32] }:$src2, (timm:{ *:[i8] }):$src4), VR128X:{ *:[v4i32] }:$src1) - Complexity = 31
                        // Dst: (VPTERNLOGDZ128rmbik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*211670*/            /*Scope*/ 48, /*->211719*/
/*211671*/              OPC_MoveChild0,
/*211672*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*211675*/              OPC_RecordMemRef,
/*211676*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*211677*/              OPC_CheckFoldableChainNode,
/*211678*/              OPC_RecordChild1, // #2 = $src3
/*211679*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*211681*/              OPC_MoveParent,
/*211682*/              OPC_RecordChild1, // #3 = $src2
/*211683*/              OPC_RecordChild2, // #4 = $src1
/*211684*/              OPC_RecordChild3, // #5 = $src4
/*211685*/              OPC_MoveChild3,
/*211686*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*211689*/              OPC_MoveParent,
/*211690*/              OPC_MoveParent,
/*211691*/              OPC_CheckChild2Same, 4,
/*211693*/              OPC_CheckType, MVT::v4i32,
/*211695*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*211697*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*211700*/              OPC_EmitMergeInputChains1_1,
/*211701*/              OPC_EmitNodeXForm, 19, 5, // VPTERNLOG321_imm8
/*211704*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 9/*#Ops*/, 4, 0, 3, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i32] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$src4), VR128X:{ *:[v4i32] }:$src1) - Complexity = 31
                        // Dst: (VPTERNLOGDZ128rmbik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*211719*/            /*Scope*/ 101, /*->211821*/
/*211720*/              OPC_RecordChild0, // #1 = $src2
/*211721*/              OPC_Scope, 49, /*->211772*/ // 2 children in Scope
/*211723*/                OPC_RecordChild1, // #2 = $src1
/*211724*/                OPC_MoveChild2,
/*211725*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*211728*/                OPC_RecordMemRef,
/*211729*/                OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*211730*/                OPC_CheckFoldableChainNode,
/*211731*/                OPC_RecordChild1, // #4 = $src3
/*211732*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*211734*/                OPC_MoveParent,
/*211735*/                OPC_RecordChild3, // #5 = $src4
/*211736*/                OPC_MoveChild3,
/*211737*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*211740*/                OPC_MoveParent,
/*211741*/                OPC_MoveParent,
/*211742*/                OPC_CheckChild2Same, 2,
/*211744*/                OPC_CheckType, MVT::v4i32,
/*211746*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*211748*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*211751*/                OPC_EmitMergeInputChains, 1, 3, 
/*211754*/                OPC_EmitNodeXForm, 21, 5, // VPTERNLOG213_imm8
/*211757*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 9/*#Ops*/, 2, 0, 1, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src1, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src4), VR128X:{ *:[v4i32] }:$src1) - Complexity = 31
                          // Dst: (VPTERNLOGDZ128rmbik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG213_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*211772*/              /*Scope*/ 47, /*->211820*/
/*211773*/                OPC_MoveChild1,
/*211774*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*211777*/                OPC_RecordMemRef,
/*211778*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*211779*/                OPC_CheckFoldableChainNode,
/*211780*/                OPC_RecordChild1, // #3 = $src3
/*211781*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*211783*/                OPC_MoveParent,
/*211784*/                OPC_RecordChild2, // #4 = $src1
/*211785*/                OPC_RecordChild3, // #5 = $src4
/*211786*/                OPC_MoveChild3,
/*211787*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*211790*/                OPC_MoveParent,
/*211791*/                OPC_MoveParent,
/*211792*/                OPC_CheckChild2Same, 4,
/*211794*/                OPC_CheckType, MVT::v4i32,
/*211796*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*211798*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*211801*/                OPC_EmitMergeInputChains1_2,
/*211802*/                OPC_EmitNodeXForm, 22, 5, // VPTERNLOG231_imm8
/*211805*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 9/*#Ops*/, 4, 0, 1, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src2, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$src4), VR128X:{ *:[v4i32] }:$src1) - Complexity = 31
                          // Dst: (VPTERNLOGDZ128rmbik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG231_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*211820*/              0, /*End of Scope*/
/*211821*/            /*Scope*/ 48, /*->211870*/
/*211822*/              OPC_MoveChild0,
/*211823*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*211826*/              OPC_RecordMemRef,
/*211827*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*211828*/              OPC_CheckFoldableChainNode,
/*211829*/              OPC_RecordChild1, // #2 = $src3
/*211830*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*211832*/              OPC_MoveParent,
/*211833*/              OPC_RecordChild1, // #3 = $src1
/*211834*/              OPC_RecordChild2, // #4 = $src2
/*211835*/              OPC_RecordChild3, // #5 = $src4
/*211836*/              OPC_MoveChild3,
/*211837*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*211840*/              OPC_MoveParent,
/*211841*/              OPC_MoveParent,
/*211842*/              OPC_CheckChild2Same, 3,
/*211844*/              OPC_CheckType, MVT::v4i32,
/*211846*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*211848*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*211851*/              OPC_EmitMergeInputChains1_1,
/*211852*/              OPC_EmitNodeXForm, 23, 5, // VPTERNLOG312_imm8
/*211855*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 9/*#Ops*/, 3, 0, 4, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i32] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (timm:{ *:[i8] }):$src4), VR128X:{ *:[v4i32] }:$src1) - Complexity = 31
                        // Dst: (VPTERNLOGDZ128rmbik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG312_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*211870*/            /*Scope*/ 20|128,1/*148*/, /*->212020*/
/*211872*/              OPC_RecordChild0, // #1 = $src1
/*211873*/              OPC_Scope, 94, /*->211969*/ // 2 children in Scope
/*211875*/                OPC_RecordChild1, // #2 = $src2
/*211876*/                OPC_MoveChild2,
/*211877*/                OPC_SwitchOpcode /*2 cases */, 43, TARGET_VAL(ISD::LOAD),// ->211924
/*211881*/                  OPC_RecordMemRef,
/*211882*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*211883*/                  OPC_CheckFoldableChainNode,
/*211884*/                  OPC_RecordChild1, // #4 = $src3
/*211885*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*211887*/                  OPC_CheckPredicate, 9, // Predicate_load
/*211889*/                  OPC_MoveParent,
/*211890*/                  OPC_RecordChild3, // #5 = $src4
/*211891*/                  OPC_MoveChild3,
/*211892*/                  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*211895*/                  OPC_MoveParent,
/*211896*/                  OPC_MoveParent,
/*211897*/                  OPC_CheckChild2Same, 1,
/*211899*/                  OPC_CheckType, MVT::v4i64,
/*211901*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*211903*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*211906*/                  OPC_EmitMergeInputChains, 1, 3, 
/*211909*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i64, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 5, 
                            // 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>>, (timm:{ *:[i8] }):$src4), VR256X:{ *:[v4i64] }:$src1) - Complexity = 31
                            // Dst: (VPTERNLOGQZ256rmik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i8] }):$src4)
/*211924*/                /*SwitchOpcode*/ 41, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->211968
/*211927*/                  OPC_RecordMemRef,
/*211928*/                  OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*211929*/                  OPC_CheckFoldableChainNode,
/*211930*/                  OPC_RecordChild1, // #4 = $src3
/*211931*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*211933*/                  OPC_MoveParent,
/*211934*/                  OPC_RecordChild3, // #5 = $src4
/*211935*/                  OPC_MoveChild3,
/*211936*/                  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*211939*/                  OPC_MoveParent,
/*211940*/                  OPC_MoveParent,
/*211941*/                  OPC_CheckChild2Same, 1,
/*211943*/                  OPC_CheckType, MVT::v4i64,
/*211945*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*211947*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*211950*/                  OPC_EmitMergeInputChains, 1, 3, 
/*211953*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i64, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 5, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src4), VR256X:{ *:[v4i64] }:$src1) - Complexity = 31
                            // Dst: (VPTERNLOGQZ256rmbik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i8] }):$src4)
/*211968*/                0, // EndSwitchOpcode
/*211969*/              /*Scope*/ 49, /*->212019*/
/*211970*/                OPC_MoveChild1,
/*211971*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*211974*/                OPC_RecordMemRef,
/*211975*/                OPC_RecordNode, // #2 = 'ld' chained node
/*211976*/                OPC_CheckFoldableChainNode,
/*211977*/                OPC_RecordChild1, // #3 = $src3
/*211978*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*211980*/                OPC_CheckPredicate, 9, // Predicate_load
/*211982*/                OPC_MoveParent,
/*211983*/                OPC_RecordChild2, // #4 = $src2
/*211984*/                OPC_RecordChild3, // #5 = $src4
/*211985*/                OPC_MoveChild3,
/*211986*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*211989*/                OPC_MoveParent,
/*211990*/                OPC_MoveParent,
/*211991*/                OPC_CheckChild2Same, 1,
/*211993*/                OPC_CheckType, MVT::v4i64,
/*211995*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*211997*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*212000*/                OPC_EmitMergeInputChains1_2,
/*212001*/                OPC_EmitNodeXForm, 20, 5, // VPTERNLOG132_imm8
/*212004*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 9/*#Ops*/, 1, 0, 4, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v4i64] }:$src2, (timm:{ *:[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] } (timm:{ *:[i8] }):$src4))
/*212019*/              0, /*End of Scope*/
/*212020*/            /*Scope*/ 50, /*->212071*/
/*212021*/              OPC_MoveChild0,
/*212022*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*212025*/              OPC_RecordMemRef,
/*212026*/              OPC_RecordNode, // #1 = 'ld' chained node
/*212027*/              OPC_CheckFoldableChainNode,
/*212028*/              OPC_RecordChild1, // #2 = $src3
/*212029*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*212031*/              OPC_CheckPredicate, 9, // Predicate_load
/*212033*/              OPC_MoveParent,
/*212034*/              OPC_RecordChild1, // #3 = $src2
/*212035*/              OPC_RecordChild2, // #4 = $src1
/*212036*/              OPC_RecordChild3, // #5 = $src4
/*212037*/              OPC_MoveChild3,
/*212038*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*212041*/              OPC_MoveParent,
/*212042*/              OPC_MoveParent,
/*212043*/              OPC_CheckChild2Same, 4,
/*212045*/              OPC_CheckType, MVT::v4i64,
/*212047*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*212049*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*212052*/              OPC_EmitMergeInputChains1_1,
/*212053*/              OPC_EmitNodeXForm, 19, 5, // VPTERNLOG321_imm8
/*212056*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 9/*#Ops*/, 4, 0, 3, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src1, (timm:{ *:[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] } (timm:{ *:[i8] }):$src4))
/*212071*/            /*Scope*/ 105, /*->212177*/
/*212072*/              OPC_RecordChild0, // #1 = $src2
/*212073*/              OPC_Scope, 51, /*->212126*/ // 2 children in Scope
/*212075*/                OPC_RecordChild1, // #2 = $src1
/*212076*/                OPC_MoveChild2,
/*212077*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*212080*/                OPC_RecordMemRef,
/*212081*/                OPC_RecordNode, // #3 = 'ld' chained node
/*212082*/                OPC_CheckFoldableChainNode,
/*212083*/                OPC_RecordChild1, // #4 = $src3
/*212084*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*212086*/                OPC_CheckPredicate, 9, // Predicate_load
/*212088*/                OPC_MoveParent,
/*212089*/                OPC_RecordChild3, // #5 = $src4
/*212090*/                OPC_MoveChild3,
/*212091*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*212094*/                OPC_MoveParent,
/*212095*/                OPC_MoveParent,
/*212096*/                OPC_CheckChild2Same, 2,
/*212098*/                OPC_CheckType, MVT::v4i64,
/*212100*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*212102*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*212105*/                OPC_EmitMergeInputChains, 1, 3, 
/*212108*/                OPC_EmitNodeXForm, 21, 5, // VPTERNLOG213_imm8
/*212111*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 9/*#Ops*/, 2, 0, 1, 6, 7, 8, 9, 10, 11, 
                          // 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>>, (timm:{ *:[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] } (timm:{ *:[i8] }):$src4))
/*212126*/              /*Scope*/ 49, /*->212176*/
/*212127*/                OPC_MoveChild1,
/*212128*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*212131*/                OPC_RecordMemRef,
/*212132*/                OPC_RecordNode, // #2 = 'ld' chained node
/*212133*/                OPC_CheckFoldableChainNode,
/*212134*/                OPC_RecordChild1, // #3 = $src3
/*212135*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*212137*/                OPC_CheckPredicate, 9, // Predicate_load
/*212139*/                OPC_MoveParent,
/*212140*/                OPC_RecordChild2, // #4 = $src1
/*212141*/                OPC_RecordChild3, // #5 = $src4
/*212142*/                OPC_MoveChild3,
/*212143*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*212146*/                OPC_MoveParent,
/*212147*/                OPC_MoveParent,
/*212148*/                OPC_CheckChild2Same, 4,
/*212150*/                OPC_CheckType, MVT::v4i64,
/*212152*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*212154*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*212157*/                OPC_EmitMergeInputChains1_2,
/*212158*/                OPC_EmitNodeXForm, 22, 5, // VPTERNLOG231_imm8
/*212161*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 9/*#Ops*/, 4, 0, 1, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src2, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v4i64] }:$src1, (timm:{ *:[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] } (timm:{ *:[i8] }):$src4))
/*212176*/              0, /*End of Scope*/
/*212177*/            /*Scope*/ 50, /*->212228*/
/*212178*/              OPC_MoveChild0,
/*212179*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*212182*/              OPC_RecordMemRef,
/*212183*/              OPC_RecordNode, // #1 = 'ld' chained node
/*212184*/              OPC_CheckFoldableChainNode,
/*212185*/              OPC_RecordChild1, // #2 = $src3
/*212186*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*212188*/              OPC_CheckPredicate, 9, // Predicate_load
/*212190*/              OPC_MoveParent,
/*212191*/              OPC_RecordChild1, // #3 = $src1
/*212192*/              OPC_RecordChild2, // #4 = $src2
/*212193*/              OPC_RecordChild3, // #5 = $src4
/*212194*/              OPC_MoveChild3,
/*212195*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*212198*/              OPC_MoveParent,
/*212199*/              OPC_MoveParent,
/*212200*/              OPC_CheckChild2Same, 3,
/*212202*/              OPC_CheckType, MVT::v4i64,
/*212204*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*212206*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*212209*/              OPC_EmitMergeInputChains1_1,
/*212210*/              OPC_EmitNodeXForm, 23, 5, // VPTERNLOG312_imm8
/*212213*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 9/*#Ops*/, 3, 0, 4, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (timm:{ *:[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] } (timm:{ *:[i8] }):$src4))
/*212228*/            /*Scope*/ 48, /*->212277*/
/*212229*/              OPC_RecordChild0, // #1 = $src1
/*212230*/              OPC_MoveChild1,
/*212231*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*212234*/              OPC_RecordMemRef,
/*212235*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*212236*/              OPC_CheckFoldableChainNode,
/*212237*/              OPC_RecordChild1, // #3 = $src3
/*212238*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*212240*/              OPC_MoveParent,
/*212241*/              OPC_RecordChild2, // #4 = $src2
/*212242*/              OPC_RecordChild3, // #5 = $src4
/*212243*/              OPC_MoveChild3,
/*212244*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*212247*/              OPC_MoveParent,
/*212248*/              OPC_MoveParent,
/*212249*/              OPC_CheckChild2Same, 1,
/*212251*/              OPC_CheckType, MVT::v4i64,
/*212253*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*212255*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*212258*/              OPC_EmitMergeInputChains1_2,
/*212259*/              OPC_EmitNodeXForm, 20, 5, // VPTERNLOG132_imm8
/*212262*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 9/*#Ops*/, 1, 0, 4, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src2, (timm:{ *:[i8] }):$src4), VR256X:{ *:[v4i64] }:$src1) - Complexity = 31
                        // Dst: (VPTERNLOGQZ256rmbik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*212277*/            /*Scope*/ 48, /*->212326*/
/*212278*/              OPC_MoveChild0,
/*212279*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*212282*/              OPC_RecordMemRef,
/*212283*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*212284*/              OPC_CheckFoldableChainNode,
/*212285*/              OPC_RecordChild1, // #2 = $src3
/*212286*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*212288*/              OPC_MoveParent,
/*212289*/              OPC_RecordChild1, // #3 = $src2
/*212290*/              OPC_RecordChild2, // #4 = $src1
/*212291*/              OPC_RecordChild3, // #5 = $src4
/*212292*/              OPC_MoveChild3,
/*212293*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*212296*/              OPC_MoveParent,
/*212297*/              OPC_MoveParent,
/*212298*/              OPC_CheckChild2Same, 4,
/*212300*/              OPC_CheckType, MVT::v4i64,
/*212302*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*212304*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*212307*/              OPC_EmitMergeInputChains1_1,
/*212308*/              OPC_EmitNodeXForm, 19, 5, // VPTERNLOG321_imm8
/*212311*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 9/*#Ops*/, 4, 0, 3, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i64] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src1, (timm:{ *:[i8] }):$src4), VR256X:{ *:[v4i64] }:$src1) - Complexity = 31
                        // Dst: (VPTERNLOGQZ256rmbik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*212326*/            /*Scope*/ 101, /*->212428*/
/*212327*/              OPC_RecordChild0, // #1 = $src2
/*212328*/              OPC_Scope, 49, /*->212379*/ // 2 children in Scope
/*212330*/                OPC_RecordChild1, // #2 = $src1
/*212331*/                OPC_MoveChild2,
/*212332*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*212335*/                OPC_RecordMemRef,
/*212336*/                OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*212337*/                OPC_CheckFoldableChainNode,
/*212338*/                OPC_RecordChild1, // #4 = $src3
/*212339*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*212341*/                OPC_MoveParent,
/*212342*/                OPC_RecordChild3, // #5 = $src4
/*212343*/                OPC_MoveChild3,
/*212344*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*212347*/                OPC_MoveParent,
/*212348*/                OPC_MoveParent,
/*212349*/                OPC_CheckChild2Same, 2,
/*212351*/                OPC_CheckType, MVT::v4i64,
/*212353*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*212355*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*212358*/                OPC_EmitMergeInputChains, 1, 3, 
/*212361*/                OPC_EmitNodeXForm, 21, 5, // VPTERNLOG213_imm8
/*212364*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 9/*#Ops*/, 2, 0, 1, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src1, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src4), VR256X:{ *:[v4i64] }:$src1) - Complexity = 31
                          // Dst: (VPTERNLOGQZ256rmbik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG213_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*212379*/              /*Scope*/ 47, /*->212427*/
/*212380*/                OPC_MoveChild1,
/*212381*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*212384*/                OPC_RecordMemRef,
/*212385*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*212386*/                OPC_CheckFoldableChainNode,
/*212387*/                OPC_RecordChild1, // #3 = $src3
/*212388*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*212390*/                OPC_MoveParent,
/*212391*/                OPC_RecordChild2, // #4 = $src1
/*212392*/                OPC_RecordChild3, // #5 = $src4
/*212393*/                OPC_MoveChild3,
/*212394*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*212397*/                OPC_MoveParent,
/*212398*/                OPC_MoveParent,
/*212399*/                OPC_CheckChild2Same, 4,
/*212401*/                OPC_CheckType, MVT::v4i64,
/*212403*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*212405*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*212408*/                OPC_EmitMergeInputChains1_2,
/*212409*/                OPC_EmitNodeXForm, 22, 5, // VPTERNLOG231_imm8
/*212412*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 9/*#Ops*/, 4, 0, 1, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src2, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src1, (timm:{ *:[i8] }):$src4), VR256X:{ *:[v4i64] }:$src1) - Complexity = 31
                          // Dst: (VPTERNLOGQZ256rmbik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG231_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*212427*/              0, /*End of Scope*/
/*212428*/            /*Scope*/ 48, /*->212477*/
/*212429*/              OPC_MoveChild0,
/*212430*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*212433*/              OPC_RecordMemRef,
/*212434*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*212435*/              OPC_CheckFoldableChainNode,
/*212436*/              OPC_RecordChild1, // #2 = $src3
/*212437*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*212439*/              OPC_MoveParent,
/*212440*/              OPC_RecordChild1, // #3 = $src1
/*212441*/              OPC_RecordChild2, // #4 = $src2
/*212442*/              OPC_RecordChild3, // #5 = $src4
/*212443*/              OPC_MoveChild3,
/*212444*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*212447*/              OPC_MoveParent,
/*212448*/              OPC_MoveParent,
/*212449*/              OPC_CheckChild2Same, 3,
/*212451*/              OPC_CheckType, MVT::v4i64,
/*212453*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*212455*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*212458*/              OPC_EmitMergeInputChains1_1,
/*212459*/              OPC_EmitNodeXForm, 23, 5, // VPTERNLOG312_imm8
/*212462*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 9/*#Ops*/, 3, 0, 4, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i64] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (timm:{ *:[i8] }):$src4), VR256X:{ *:[v4i64] }:$src1) - Complexity = 31
                        // Dst: (VPTERNLOGQZ256rmbik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG312_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*212477*/            0, /*End of Scope*/
/*212478*/          /*SwitchOpcode*/ 23|128,1/*151*/, TARGET_VAL(X86ISD::VSHLD),// ->212633
/*212482*/            OPC_RecordChild0, // #1 = $src1
/*212483*/            OPC_MoveChild1,
/*212484*/            OPC_SwitchOpcode /*2 cases */, 65, TARGET_VAL(ISD::LOAD),// ->212553
/*212488*/              OPC_RecordMemRef,
/*212489*/              OPC_RecordNode, // #2 = 'ld' chained node
/*212490*/              OPC_CheckFoldableChainNode,
/*212491*/              OPC_RecordChild1, // #3 = $src2
/*212492*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*212494*/              OPC_CheckPredicate, 9, // Predicate_load
/*212496*/              OPC_MoveParent,
/*212497*/              OPC_RecordChild2, // #4 = $src3
/*212498*/              OPC_MoveChild2,
/*212499*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*212502*/              OPC_MoveParent,
/*212503*/              OPC_MoveParent,
/*212504*/              OPC_RecordChild2, // #5 = $src0
/*212505*/              OPC_SwitchType /*2 cases */, 21, MVT::v4i32,// ->212529
/*212508*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*212510*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*212513*/                OPC_EmitMergeInputChains1_2,
/*212514*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDDZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86VShld:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                          // Dst: (VPSHLDDZ128rmik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*212529*/              /*SwitchType*/ 21, MVT::v4i64,// ->212552
/*212531*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*212533*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*212536*/                OPC_EmitMergeInputChains1_2,
/*212537*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDQZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VShld:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                          // Dst: (VPSHLDQZ256rmik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*212552*/              0, // EndSwitchType
/*212553*/            /*SwitchOpcode*/ 76, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->212632
/*212556*/              OPC_RecordMemRef,
/*212557*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*212558*/              OPC_CheckFoldableChainNode,
/*212559*/              OPC_RecordChild1, // #3 = $src2
/*212560*/              OPC_Scope, 34, /*->212596*/ // 2 children in Scope
/*212562*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*212564*/                OPC_MoveParent,
/*212565*/                OPC_RecordChild2, // #4 = $src3
/*212566*/                OPC_MoveChild2,
/*212567*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*212570*/                OPC_MoveParent,
/*212571*/                OPC_MoveParent,
/*212572*/                OPC_RecordChild2, // #5 = $src0
/*212573*/                OPC_CheckType, MVT::v4i32,
/*212575*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*212577*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*212580*/                OPC_EmitMergeInputChains1_2,
/*212581*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDDZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86VShld:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src3), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                          // Dst: (VPSHLDDZ128rmbik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*212596*/              /*Scope*/ 34, /*->212631*/
/*212597*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*212599*/                OPC_MoveParent,
/*212600*/                OPC_RecordChild2, // #4 = $src3
/*212601*/                OPC_MoveChild2,
/*212602*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*212605*/                OPC_MoveParent,
/*212606*/                OPC_MoveParent,
/*212607*/                OPC_RecordChild2, // #5 = $src0
/*212608*/                OPC_CheckType, MVT::v4i64,
/*212610*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*212612*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*212615*/                OPC_EmitMergeInputChains1_2,
/*212616*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDQZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VShld:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src3), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                          // Dst: (VPSHLDQZ256rmbik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*212631*/              0, /*End of Scope*/
/*212632*/            0, // EndSwitchOpcode
/*212633*/          /*SwitchOpcode*/ 23|128,1/*151*/, TARGET_VAL(X86ISD::VSHRD),// ->212788
/*212637*/            OPC_RecordChild0, // #1 = $src1
/*212638*/            OPC_MoveChild1,
/*212639*/            OPC_SwitchOpcode /*2 cases */, 65, TARGET_VAL(ISD::LOAD),// ->212708
/*212643*/              OPC_RecordMemRef,
/*212644*/              OPC_RecordNode, // #2 = 'ld' chained node
/*212645*/              OPC_CheckFoldableChainNode,
/*212646*/              OPC_RecordChild1, // #3 = $src2
/*212647*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*212649*/              OPC_CheckPredicate, 9, // Predicate_load
/*212651*/              OPC_MoveParent,
/*212652*/              OPC_RecordChild2, // #4 = $src3
/*212653*/              OPC_MoveChild2,
/*212654*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*212657*/              OPC_MoveParent,
/*212658*/              OPC_MoveParent,
/*212659*/              OPC_RecordChild2, // #5 = $src0
/*212660*/              OPC_SwitchType /*2 cases */, 21, MVT::v4i32,// ->212684
/*212663*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*212665*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*212668*/                OPC_EmitMergeInputChains1_2,
/*212669*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDDZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86VShrd:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                          // Dst: (VPSHRDDZ128rmik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*212684*/              /*SwitchType*/ 21, MVT::v4i64,// ->212707
/*212686*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*212688*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*212691*/                OPC_EmitMergeInputChains1_2,
/*212692*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDQZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VShrd:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                          // Dst: (VPSHRDQZ256rmik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*212707*/              0, // EndSwitchType
/*212708*/            /*SwitchOpcode*/ 76, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->212787
/*212711*/              OPC_RecordMemRef,
/*212712*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*212713*/              OPC_CheckFoldableChainNode,
/*212714*/              OPC_RecordChild1, // #3 = $src2
/*212715*/              OPC_Scope, 34, /*->212751*/ // 2 children in Scope
/*212717*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*212719*/                OPC_MoveParent,
/*212720*/                OPC_RecordChild2, // #4 = $src3
/*212721*/                OPC_MoveChild2,
/*212722*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*212725*/                OPC_MoveParent,
/*212726*/                OPC_MoveParent,
/*212727*/                OPC_RecordChild2, // #5 = $src0
/*212728*/                OPC_CheckType, MVT::v4i32,
/*212730*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*212732*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*212735*/                OPC_EmitMergeInputChains1_2,
/*212736*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDDZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86VShrd:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src3), VR128X:{ *:[v4i32] }:$src0) - Complexity = 31
                          // Dst: (VPSHRDDZ128rmbik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*212751*/              /*Scope*/ 34, /*->212786*/
/*212752*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*212754*/                OPC_MoveParent,
/*212755*/                OPC_RecordChild2, // #4 = $src3
/*212756*/                OPC_MoveChild2,
/*212757*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*212760*/                OPC_MoveParent,
/*212761*/                OPC_MoveParent,
/*212762*/                OPC_RecordChild2, // #5 = $src0
/*212763*/                OPC_CheckType, MVT::v4i64,
/*212765*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*212767*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*212770*/                OPC_EmitMergeInputChains1_2,
/*212771*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDQZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VShrd:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src3), VR256X:{ *:[v4i64] }:$src0) - Complexity = 31
                          // Dst: (VPSHRDQZ256rmbik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*212786*/              0, /*End of Scope*/
/*212787*/            0, // EndSwitchOpcode
/*212788*/          /*SwitchOpcode*/ 112, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->212903
/*212791*/            OPC_RecordMemRef,
/*212792*/            OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*212793*/            OPC_CheckFoldableChainNode,
/*212794*/            OPC_RecordChild1, // #2 = $src
/*212795*/            OPC_Scope, 26, /*->212823*/ // 4 children in Scope
/*212797*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*212799*/              OPC_MoveParent,
/*212800*/              OPC_MoveChild2,
/*212801*/              OPC_CheckImmAllZerosV,
/*212802*/              OPC_MoveParent,
/*212803*/              OPC_CheckType, MVT::v4i32,
/*212805*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*212807*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*212810*/              OPC_EmitMergeInputChains1_1,
/*212811*/              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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>, immAllZerosV:{ *:[v4i32] }) - Complexity = 29
                        // Dst: (VPBROADCASTDZ128mkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*212823*/            /*Scope*/ 26, /*->212850*/
/*212824*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*212826*/              OPC_MoveParent,
/*212827*/              OPC_MoveChild2,
/*212828*/              OPC_CheckImmAllZerosV,
/*212829*/              OPC_MoveParent,
/*212830*/              OPC_CheckType, MVT::v4i64,
/*212832*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*212834*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*212837*/              OPC_EmitMergeInputChains1_1,
/*212838*/              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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>, immAllZerosV:{ *:[v4i64] }) - Complexity = 29
                        // Dst: (VPBROADCASTQZ256mkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*212850*/            /*Scope*/ 25, /*->212876*/
/*212851*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*212853*/              OPC_MoveParent,
/*212854*/              OPC_RecordChild2, // #3 = $src0
/*212855*/              OPC_CheckType, MVT::v4i32,
/*212857*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*212859*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*212862*/              OPC_EmitMergeInputChains1_1,
/*212863*/              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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4i32] }:$src0) - Complexity = 25
                        // Dst: (VPBROADCASTDZ128mk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*212876*/            /*Scope*/ 25, /*->212902*/
/*212877*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*212879*/              OPC_MoveParent,
/*212880*/              OPC_RecordChild2, // #3 = $src0
/*212881*/              OPC_CheckType, MVT::v4i64,
/*212883*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*212885*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*212888*/              OPC_EmitMergeInputChains1_1,
/*212889*/              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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src0) - Complexity = 25
                        // Dst: (VPBROADCASTQZ256mk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*212902*/            0, /*End of Scope*/
/*212903*/          /*SwitchOpcode*/ 92|128,5/*732*/, TARGET_VAL(ISD::LOAD),// ->213639
/*212907*/            OPC_RecordMemRef,
/*212908*/            OPC_RecordNode, // #1 = 'ld' chained node
/*212909*/            OPC_CheckFoldableChainNode,
/*212910*/            OPC_RecordChild1, // #2 = $src
/*212911*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*212913*/            OPC_Scope, 100, /*->213015*/ // 6 children in Scope
/*212915*/              OPC_CheckPredicate, 9, // Predicate_load
/*212917*/              OPC_Scope, 48, /*->212967*/ // 2 children in Scope
/*212919*/                OPC_CheckPredicate, 74, // Predicate_alignedload
/*212921*/                OPC_MoveParent,
/*212922*/                OPC_MoveChild2,
/*212923*/                OPC_CheckImmAllZerosV,
/*212924*/                OPC_MoveParent,
/*212925*/                OPC_SwitchType /*2 cases */, 18, MVT::v4i32,// ->212946
/*212928*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*212930*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*212933*/                  OPC_EmitMergeInputChains1_1,
/*212934*/                  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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedload>>, immAllZerosV:{ *:[v4i32] }) - Complexity = 29
                            // Dst: (VMOVDQA32Z128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*212946*/                /*SwitchType*/ 18, MVT::v4i64,// ->212966
/*212948*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*212950*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*212953*/                  OPC_EmitMergeInputChains1_1,
/*212954*/                  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_alignedload>>, immAllZerosV:{ *:[v4i64] }) - Complexity = 29
                            // Dst: (VMOVDQA64Z256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*212966*/                0, // EndSwitchType
/*212967*/              /*Scope*/ 46, /*->213014*/
/*212968*/                OPC_MoveParent,
/*212969*/                OPC_MoveChild2,
/*212970*/                OPC_CheckImmAllZerosV,
/*212971*/                OPC_MoveParent,
/*212972*/                OPC_SwitchType /*2 cases */, 18, MVT::v4i32,// ->212993
/*212975*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*212977*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*212980*/                  OPC_EmitMergeInputChains1_1,
/*212981*/                  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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>, immAllZerosV:{ *:[v4i32] }) - Complexity = 29
                            // Dst: (VMOVDQU32Z128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*212993*/                /*SwitchType*/ 18, MVT::v4i64,// ->213013
/*212995*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*212997*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*213000*/                  OPC_EmitMergeInputChains1_1,
/*213001*/                  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>>, immAllZerosV:{ *:[v4i64] }) - Complexity = 29
                            // Dst: (VMOVDQU64Z256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*213013*/                0, // EndSwitchType
/*213014*/              0, /*End of Scope*/
/*213015*/            /*Scope*/ 1|128,1/*129*/, /*->213146*/
/*213017*/              OPC_CheckPredicate, 53, // Predicate_zextload
/*213019*/              OPC_Scope, 48, /*->213069*/ // 3 children in Scope
/*213021*/                OPC_CheckPredicate, 75, // Predicate_zextloadvi8
/*213023*/                OPC_MoveParent,
/*213024*/                OPC_MoveChild2,
/*213025*/                OPC_CheckImmAllZerosV,
/*213026*/                OPC_MoveParent,
/*213027*/                OPC_SwitchType /*2 cases */, 18, MVT::v4i32,// ->213048
/*213030*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*213032*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*213035*/                  OPC_EmitMergeInputChains1_1,
/*213036*/                  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>>, immAllZerosV:{ *:[v4i32] }) - Complexity = 29
                            // Dst: (VPMOVZXBDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*213048*/                /*SwitchType*/ 18, MVT::v4i64,// ->213068
/*213050*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*213052*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*213055*/                  OPC_EmitMergeInputChains1_1,
/*213056*/                  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>>, immAllZerosV:{ *:[v4i64] }) - Complexity = 29
                            // Dst: (VPMOVZXBQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*213068*/                0, // EndSwitchType
/*213069*/              /*Scope*/ 48, /*->213118*/
/*213070*/                OPC_CheckPredicate, 76, // Predicate_zextloadvi16
/*213072*/                OPC_MoveParent,
/*213073*/                OPC_MoveChild2,
/*213074*/                OPC_CheckImmAllZerosV,
/*213075*/                OPC_MoveParent,
/*213076*/                OPC_SwitchType /*2 cases */, 18, MVT::v4i32,// ->213097
/*213079*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*213081*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*213084*/                  OPC_EmitMergeInputChains1_1,
/*213085*/                  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>>, immAllZerosV:{ *:[v4i32] }) - Complexity = 29
                            // Dst: (VPMOVZXWDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*213097*/                /*SwitchType*/ 18, MVT::v4i64,// ->213117
/*213099*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*213101*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*213104*/                  OPC_EmitMergeInputChains1_1,
/*213105*/                  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>>, immAllZerosV:{ *:[v4i64] }) - Complexity = 29
                            // Dst: (VPMOVZXWQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*213117*/                0, // EndSwitchType
/*213118*/              /*Scope*/ 26, /*->213145*/
/*213119*/                OPC_CheckPredicate, 77, // Predicate_zextloadvi32
/*213121*/                OPC_MoveParent,
/*213122*/                OPC_MoveChild2,
/*213123*/                OPC_CheckImmAllZerosV,
/*213124*/                OPC_MoveParent,
/*213125*/                OPC_CheckType, MVT::v4i64,
/*213127*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*213129*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*213132*/                OPC_EmitMergeInputChains1_1,
/*213133*/                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>>, immAllZerosV:{ *:[v4i64] }) - Complexity = 29
                          // Dst: (VPMOVZXDQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*213145*/              0, /*End of Scope*/
/*213146*/            /*Scope*/ 1|128,1/*129*/, /*->213277*/
/*213148*/              OPC_CheckPredicate, 68, // Predicate_sextload
/*213150*/              OPC_Scope, 48, /*->213200*/ // 3 children in Scope
/*213152*/                OPC_CheckPredicate, 75, // Predicate_sextloadvi8
/*213154*/                OPC_MoveParent,
/*213155*/                OPC_MoveChild2,
/*213156*/                OPC_CheckImmAllZerosV,
/*213157*/                OPC_MoveParent,
/*213158*/                OPC_SwitchType /*2 cases */, 18, MVT::v4i32,// ->213179
/*213161*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*213163*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*213166*/                  OPC_EmitMergeInputChains1_1,
/*213167*/                  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>>, immAllZerosV:{ *:[v4i32] }) - Complexity = 29
                            // Dst: (VPMOVSXBDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*213179*/                /*SwitchType*/ 18, MVT::v4i64,// ->213199
/*213181*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*213183*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*213186*/                  OPC_EmitMergeInputChains1_1,
/*213187*/                  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>>, immAllZerosV:{ *:[v4i64] }) - Complexity = 29
                            // Dst: (VPMOVSXBQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*213199*/                0, // EndSwitchType
/*213200*/              /*Scope*/ 48, /*->213249*/
/*213201*/                OPC_CheckPredicate, 76, // Predicate_sextloadvi16
/*213203*/                OPC_MoveParent,
/*213204*/                OPC_MoveChild2,
/*213205*/                OPC_CheckImmAllZerosV,
/*213206*/                OPC_MoveParent,
/*213207*/                OPC_SwitchType /*2 cases */, 18, MVT::v4i32,// ->213228
/*213210*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*213212*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*213215*/                  OPC_EmitMergeInputChains1_1,
/*213216*/                  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>>, immAllZerosV:{ *:[v4i32] }) - Complexity = 29
                            // Dst: (VPMOVSXWDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*213228*/                /*SwitchType*/ 18, MVT::v4i64,// ->213248
/*213230*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*213232*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*213235*/                  OPC_EmitMergeInputChains1_1,
/*213236*/                  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>>, immAllZerosV:{ *:[v4i64] }) - Complexity = 29
                            // Dst: (VPMOVSXWQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*213248*/                0, // EndSwitchType
/*213249*/              /*Scope*/ 26, /*->213276*/
/*213250*/                OPC_CheckPredicate, 77, // Predicate_sextloadvi32
/*213252*/                OPC_MoveParent,
/*213253*/                OPC_MoveChild2,
/*213254*/                OPC_CheckImmAllZerosV,
/*213255*/                OPC_MoveParent,
/*213256*/                OPC_CheckType, MVT::v4i64,
/*213258*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*213260*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*213263*/                OPC_EmitMergeInputChains1_1,
/*213264*/                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>>, immAllZerosV:{ *:[v4i64] }) - Complexity = 29
                          // Dst: (VPMOVSXDQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*213276*/              0, /*End of Scope*/
/*213277*/            /*Scope*/ 100, /*->213378*/
/*213278*/              OPC_CheckPredicate, 9, // Predicate_load
/*213280*/              OPC_Scope, 48, /*->213330*/ // 2 children in Scope
/*213282*/                OPC_CheckPredicate, 74, // Predicate_alignedload
/*213284*/                OPC_MoveParent,
/*213285*/                OPC_RecordChild2, // #3 = $src0
/*213286*/                OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->213308
/*213289*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*213291*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*213294*/                  OPC_EmitMergeInputChains1_1,
/*213295*/                  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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedload>>, VR128X:{ *:[v4i32] }:$src0) - Complexity = 25
                            // Dst: (VMOVDQA32Z128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*213308*/                /*SwitchType*/ 19, MVT::v4i64,// ->213329
/*213310*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*213312*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*213315*/                  OPC_EmitMergeInputChains1_1,
/*213316*/                  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_alignedload>>, VR256X:{ *:[v4i64] }:$src0) - Complexity = 25
                            // Dst: (VMOVDQA64Z256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*213329*/                0, // EndSwitchType
/*213330*/              /*Scope*/ 46, /*->213377*/
/*213331*/                OPC_MoveParent,
/*213332*/                OPC_RecordChild2, // #3 = $src0
/*213333*/                OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->213355
/*213336*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*213338*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*213341*/                  OPC_EmitMergeInputChains1_1,
/*213342*/                  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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4i32] }:$src0) - Complexity = 25
                            // Dst: (VMOVDQU32Z128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*213355*/                /*SwitchType*/ 19, MVT::v4i64,// ->213376
/*213357*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*213359*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*213362*/                  OPC_EmitMergeInputChains1_1,
/*213363*/                  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>>, VR256X:{ *:[v4i64] }:$src0) - Complexity = 25
                            // Dst: (VMOVDQU64Z256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*213376*/                0, // EndSwitchType
/*213377*/              0, /*End of Scope*/
/*213378*/            /*Scope*/ 0|128,1/*128*/, /*->213508*/
/*213380*/              OPC_CheckPredicate, 53, // Predicate_zextload
/*213382*/              OPC_Scope, 48, /*->213432*/ // 3 children in Scope
/*213384*/                OPC_CheckPredicate, 75, // Predicate_zextloadvi8
/*213386*/                OPC_MoveParent,
/*213387*/                OPC_RecordChild2, // #3 = $src0
/*213388*/                OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->213410
/*213391*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*213393*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*213396*/                  OPC_EmitMergeInputChains1_1,
/*213397*/                  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)
/*213410*/                /*SwitchType*/ 19, MVT::v4i64,// ->213431
/*213412*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*213414*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*213417*/                  OPC_EmitMergeInputChains1_1,
/*213418*/                  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)
/*213431*/                0, // EndSwitchType
/*213432*/              /*Scope*/ 48, /*->213481*/
/*213433*/                OPC_CheckPredicate, 76, // Predicate_zextloadvi16
/*213435*/                OPC_MoveParent,
/*213436*/                OPC_RecordChild2, // #3 = $src0
/*213437*/                OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->213459
/*213440*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*213442*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*213445*/                  OPC_EmitMergeInputChains1_1,
/*213446*/                  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)
/*213459*/                /*SwitchType*/ 19, MVT::v4i64,// ->213480
/*213461*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*213463*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*213466*/                  OPC_EmitMergeInputChains1_1,
/*213467*/                  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)
/*213480*/                0, // EndSwitchType
/*213481*/              /*Scope*/ 25, /*->213507*/
/*213482*/                OPC_CheckPredicate, 77, // Predicate_zextloadvi32
/*213484*/                OPC_MoveParent,
/*213485*/                OPC_RecordChild2, // #3 = $src0
/*213486*/                OPC_CheckType, MVT::v4i64,
/*213488*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*213490*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*213493*/                OPC_EmitMergeInputChains1_1,
/*213494*/                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)
/*213507*/              0, /*End of Scope*/
/*213508*/            /*Scope*/ 0|128,1/*128*/, /*->213638*/
/*213510*/              OPC_CheckPredicate, 68, // Predicate_sextload
/*213512*/              OPC_Scope, 48, /*->213562*/ // 3 children in Scope
/*213514*/                OPC_CheckPredicate, 75, // Predicate_sextloadvi8
/*213516*/                OPC_MoveParent,
/*213517*/                OPC_RecordChild2, // #3 = $src0
/*213518*/                OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->213540
/*213521*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*213523*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*213526*/                  OPC_EmitMergeInputChains1_1,
/*213527*/                  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)
/*213540*/                /*SwitchType*/ 19, MVT::v4i64,// ->213561
/*213542*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*213544*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*213547*/                  OPC_EmitMergeInputChains1_1,
/*213548*/                  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)
/*213561*/                0, // EndSwitchType
/*213562*/              /*Scope*/ 48, /*->213611*/
/*213563*/                OPC_CheckPredicate, 76, // Predicate_sextloadvi16
/*213565*/                OPC_MoveParent,
/*213566*/                OPC_RecordChild2, // #3 = $src0
/*213567*/                OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->213589
/*213570*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*213572*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*213575*/                  OPC_EmitMergeInputChains1_1,
/*213576*/                  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)
/*213589*/                /*SwitchType*/ 19, MVT::v4i64,// ->213610
/*213591*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*213593*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*213596*/                  OPC_EmitMergeInputChains1_1,
/*213597*/                  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)
/*213610*/                0, // EndSwitchType
/*213611*/              /*Scope*/ 25, /*->213637*/
/*213612*/                OPC_CheckPredicate, 77, // Predicate_sextloadvi32
/*213614*/                OPC_MoveParent,
/*213615*/                OPC_RecordChild2, // #3 = $src0
/*213616*/                OPC_CheckType, MVT::v4i64,
/*213618*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*213620*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*213623*/                OPC_EmitMergeInputChains1_1,
/*213624*/                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)
/*213637*/              0, /*End of Scope*/
/*213638*/            0, /*End of Scope*/
/*213639*/          /*SwitchOpcode*/ 36, TARGET_VAL(X86ISD::SUBV_BROADCAST),// ->213678
/*213642*/            OPC_MoveChild0,
/*213643*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*213646*/            OPC_RecordMemRef,
/*213647*/            OPC_RecordNode, // #1 = 'ld' chained node
/*213648*/            OPC_CheckFoldableChainNode,
/*213649*/            OPC_RecordChild1, // #2 = $src
/*213650*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*213652*/            OPC_CheckPredicate, 9, // Predicate_load
/*213654*/            OPC_MoveParent,
/*213655*/            OPC_MoveParent,
/*213656*/            OPC_RecordChild2, // #3 = $src0
/*213657*/            OPC_CheckType, MVT::v4i64,
/*213659*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*213661*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*213664*/            OPC_EmitMergeInputChains1_1,
/*213665*/            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>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                      // Dst: (VBROADCASTI64X2Z128rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*213678*/          /*SwitchOpcode*/ 4|128,2/*260*/, TARGET_VAL(X86ISD::VPERMV3),// ->213942
/*213682*/            OPC_RecordChild0, // #1 = $src2
/*213683*/            OPC_RecordChild1, // #2 = $src1
/*213684*/            OPC_MoveChild2,
/*213685*/            OPC_SwitchOpcode /*2 cases */, 118, TARGET_VAL(ISD::LOAD),// ->213807
/*213689*/              OPC_RecordMemRef,
/*213690*/              OPC_RecordNode, // #3 = 'ld' chained node
/*213691*/              OPC_CheckFoldableChainNode,
/*213692*/              OPC_RecordChild1, // #4 = $src3
/*213693*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*213695*/              OPC_CheckPredicate, 9, // Predicate_load
/*213697*/              OPC_MoveParent,
/*213698*/              OPC_MoveParent,
/*213699*/              OPC_Scope, 52, /*->213753*/ // 2 children in Scope
/*213701*/                OPC_CheckChild2Same, 2,
/*213703*/                OPC_SwitchType /*2 cases */, 22, MVT::v4i32,// ->213728
/*213706*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*213708*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*213711*/                  OPC_EmitMergeInputChains, 1, 3, 
/*213714*/                  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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4i32] }:$src1) - Complexity = 28
                            // Dst: (VPERMI2D128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*213728*/                /*SwitchType*/ 22, MVT::v4i64,// ->213752
/*213730*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*213732*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*213735*/                  OPC_EmitMergeInputChains, 1, 3, 
/*213738*/                  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>>), VR256X:{ *:[v4i64] }:$src1) - Complexity = 28
                            // Dst: (VPERMI2Q256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*213752*/                0, // EndSwitchType
/*213753*/              /*Scope*/ 52, /*->213806*/
/*213754*/                OPC_CheckChild2Same, 1,
/*213756*/                OPC_SwitchType /*2 cases */, 22, MVT::v4i32,// ->213781
/*213759*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*213761*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*213764*/                  OPC_EmitMergeInputChains, 1, 3, 
/*213767*/                  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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4i32] }:$src1) - Complexity = 28
                            // Dst: (VPERMT2D128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*213781*/                /*SwitchType*/ 22, MVT::v4i64,// ->213805
/*213783*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*213785*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*213788*/                  OPC_EmitMergeInputChains, 1, 3, 
/*213791*/                  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>>), VR256X:{ *:[v4i64] }:$src1) - Complexity = 28
                            // Dst: (VPERMT2Q256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*213805*/                0, // EndSwitchType
/*213806*/              0, /*End of Scope*/
/*213807*/            /*SwitchOpcode*/ 2|128,1/*130*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->213941
/*213811*/              OPC_RecordMemRef,
/*213812*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*213813*/              OPC_CheckFoldableChainNode,
/*213814*/              OPC_RecordChild1, // #4 = $src3
/*213815*/              OPC_Scope, 30, /*->213847*/ // 4 children in Scope
/*213817*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*213819*/                OPC_MoveParent,
/*213820*/                OPC_MoveParent,
/*213821*/                OPC_CheckChild2Same, 2,
/*213823*/                OPC_CheckType, MVT::v4i32,
/*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::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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4i32] }:$src1) - Complexity = 28
                          // Dst: (VPERMI2D128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*213847*/              /*Scope*/ 30, /*->213878*/
/*213848*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*213850*/                OPC_MoveParent,
/*213851*/                OPC_MoveParent,
/*213852*/                OPC_CheckChild2Same, 2,
/*213854*/                OPC_CheckType, MVT::v4i64,
/*213856*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*213858*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*213861*/                OPC_EmitMergeInputChains, 1, 3, 
/*213864*/                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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4i64] }:$src1) - Complexity = 28
                          // Dst: (VPERMI2Q256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*213878*/              /*Scope*/ 30, /*->213909*/
/*213879*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*213881*/                OPC_MoveParent,
/*213882*/                OPC_MoveParent,
/*213883*/                OPC_CheckChild2Same, 1,
/*213885*/                OPC_CheckType, MVT::v4i32,
/*213887*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*213889*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*213892*/                OPC_EmitMergeInputChains, 1, 3, 
/*213895*/                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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4i32] }:$src1) - Complexity = 28
                          // Dst: (VPERMT2D128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*213909*/              /*Scope*/ 30, /*->213940*/
/*213910*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*213912*/                OPC_MoveParent,
/*213913*/                OPC_MoveParent,
/*213914*/                OPC_CheckChild2Same, 1,
/*213916*/                OPC_CheckType, MVT::v4i64,
/*213918*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*213920*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*213923*/                OPC_EmitMergeInputChains, 1, 3, 
/*213926*/                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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4i64] }:$src1) - Complexity = 28
                          // Dst: (VPERMT2Q256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*213940*/              0, /*End of Scope*/
/*213941*/            0, // EndSwitchOpcode
/*213942*/          /*SwitchOpcode*/ 10|128,2/*266*/, TARGET_VAL(ISD::ADD),// ->214212
/*213946*/            OPC_Scope, 1|128,1/*129*/, /*->214078*/ // 2 children in Scope
/*213949*/              OPC_RecordChild0, // #1 = $src1
/*213950*/              OPC_MoveChild1,
/*213951*/              OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->214012
/*213955*/                OPC_RecordMemRef,
/*213956*/                OPC_RecordNode, // #2 = 'ld' chained node
/*213957*/                OPC_CheckFoldableChainNode,
/*213958*/                OPC_RecordChild1, // #3 = $src2
/*213959*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*213961*/                OPC_CheckPredicate, 9, // Predicate_load
/*213963*/                OPC_MoveParent,
/*213964*/                OPC_MoveParent,
/*213965*/                OPC_RecordChild2, // #4 = $src0
/*213966*/                OPC_SwitchType /*2 cases */, 20, MVT::v4i64,// ->213989
/*213969*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*213971*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*213974*/                  OPC_EmitMergeInputChains1_2,
/*213975*/                  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>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VPADDQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*213989*/                /*SwitchType*/ 20, MVT::v4i32,// ->214011
/*213991*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*213993*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*213996*/                  OPC_EmitMergeInputChains1_2,
/*213997*/                  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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VPADDDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*214011*/                0, // EndSwitchType
/*214012*/              /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->214077
/*214015*/                OPC_RecordMemRef,
/*214016*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*214017*/                OPC_CheckFoldableChainNode,
/*214018*/                OPC_RecordChild1, // #3 = $src2
/*214019*/                OPC_Scope, 27, /*->214048*/ // 2 children in Scope
/*214021*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*214023*/                  OPC_MoveParent,
/*214024*/                  OPC_MoveParent,
/*214025*/                  OPC_RecordChild2, // #4 = $src0
/*214026*/                  OPC_CheckType, MVT::v4i64,
/*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::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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VPADDQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*214048*/                /*Scope*/ 27, /*->214076*/
/*214049*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*214051*/                  OPC_MoveParent,
/*214052*/                  OPC_MoveParent,
/*214053*/                  OPC_RecordChild2, // #4 = $src0
/*214054*/                  OPC_CheckType, MVT::v4i32,
/*214056*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*214058*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*214061*/                  OPC_EmitMergeInputChains1_2,
/*214062*/                  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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VPADDDZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*214076*/                0, /*End of Scope*/
/*214077*/              0, // EndSwitchOpcode
/*214078*/            /*Scope*/ 3|128,1/*131*/, /*->214211*/
/*214080*/              OPC_MoveChild0,
/*214081*/              OPC_SwitchOpcode /*2 cases */, 58, TARGET_VAL(ISD::LOAD),// ->214143
/*214085*/                OPC_RecordMemRef,
/*214086*/                OPC_RecordNode, // #1 = 'ld' chained node
/*214087*/                OPC_CheckFoldableChainNode,
/*214088*/                OPC_RecordChild1, // #2 = $src2
/*214089*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*214091*/                OPC_CheckPredicate, 9, // Predicate_load
/*214093*/                OPC_MoveParent,
/*214094*/                OPC_RecordChild1, // #3 = $src1
/*214095*/                OPC_MoveParent,
/*214096*/                OPC_RecordChild2, // #4 = $src0
/*214097*/                OPC_SwitchType /*2 cases */, 20, MVT::v4i64,// ->214120
/*214100*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*214102*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*214105*/                  OPC_EmitMergeInputChains1_1,
/*214106*/                  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>>, VR256X:{ *:[v4i64] }:$src1), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VPADDQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*214120*/                /*SwitchType*/ 20, MVT::v4i32,// ->214142
/*214122*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*214124*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*214127*/                  OPC_EmitMergeInputChains1_1,
/*214128*/                  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] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4i32] }:$src1), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VPADDDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*214142*/                0, // EndSwitchType
/*214143*/              /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->214210
/*214146*/                OPC_RecordMemRef,
/*214147*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*214148*/                OPC_CheckFoldableChainNode,
/*214149*/                OPC_RecordChild1, // #2 = $src2
/*214150*/                OPC_Scope, 28, /*->214180*/ // 2 children in Scope
/*214152*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*214154*/                  OPC_MoveParent,
/*214155*/                  OPC_RecordChild1, // #3 = $src1
/*214156*/                  OPC_MoveParent,
/*214157*/                  OPC_RecordChild2, // #4 = $src0
/*214158*/                  OPC_CheckType, MVT::v4i64,
/*214160*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*214162*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*214165*/                  OPC_EmitMergeInputChains1_1,
/*214166*/                  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] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src1), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VPADDQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*214180*/                /*Scope*/ 28, /*->214209*/
/*214181*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*214183*/                  OPC_MoveParent,
/*214184*/                  OPC_RecordChild1, // #3 = $src1
/*214185*/                  OPC_MoveParent,
/*214186*/                  OPC_RecordChild2, // #4 = $src0
/*214187*/                  OPC_CheckType, MVT::v4i32,
/*214189*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*214191*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*214194*/                  OPC_EmitMergeInputChains1_1,
/*214195*/                  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] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4i32] }:$src1), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VPADDDZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*214209*/                0, /*End of Scope*/
/*214210*/              0, // EndSwitchOpcode
/*214211*/            0, /*End of Scope*/
/*214212*/          /*SwitchOpcode*/ 1|128,1/*129*/, TARGET_VAL(ISD::SUB),// ->214345
/*214216*/            OPC_RecordChild0, // #1 = $src1
/*214217*/            OPC_MoveChild1,
/*214218*/            OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->214279
/*214222*/              OPC_RecordMemRef,
/*214223*/              OPC_RecordNode, // #2 = 'ld' chained node
/*214224*/              OPC_CheckFoldableChainNode,
/*214225*/              OPC_RecordChild1, // #3 = $src2
/*214226*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*214228*/              OPC_CheckPredicate, 9, // Predicate_load
/*214230*/              OPC_MoveParent,
/*214231*/              OPC_MoveParent,
/*214232*/              OPC_RecordChild2, // #4 = $src0
/*214233*/              OPC_SwitchType /*2 cases */, 20, MVT::v4i64,// ->214256
/*214236*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*214238*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*214241*/                OPC_EmitMergeInputChains1_2,
/*214242*/                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>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                          // Dst: (VPSUBQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*214256*/              /*SwitchType*/ 20, MVT::v4i32,// ->214278
/*214258*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*214260*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*214263*/                OPC_EmitMergeInputChains1_2,
/*214264*/                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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                          // Dst: (VPSUBDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*214278*/              0, // EndSwitchType
/*214279*/            /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->214344
/*214282*/              OPC_RecordMemRef,
/*214283*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*214284*/              OPC_CheckFoldableChainNode,
/*214285*/              OPC_RecordChild1, // #3 = $src2
/*214286*/              OPC_Scope, 27, /*->214315*/ // 2 children in Scope
/*214288*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*214290*/                OPC_MoveParent,
/*214291*/                OPC_MoveParent,
/*214292*/                OPC_RecordChild2, // #4 = $src0
/*214293*/                OPC_CheckType, MVT::v4i64,
/*214295*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*214297*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*214300*/                OPC_EmitMergeInputChains1_2,
/*214301*/                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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                          // Dst: (VPSUBQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*214315*/              /*Scope*/ 27, /*->214343*/
/*214316*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*214318*/                OPC_MoveParent,
/*214319*/                OPC_MoveParent,
/*214320*/                OPC_RecordChild2, // #4 = $src0
/*214321*/                OPC_CheckType, MVT::v4i32,
/*214323*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*214325*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*214328*/                OPC_EmitMergeInputChains1_2,
/*214329*/                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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                          // Dst: (VPSUBDZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*214343*/              0, /*End of Scope*/
/*214344*/            0, // EndSwitchOpcode
/*214345*/          /*SwitchOpcode*/ 10|128,2/*266*/, TARGET_VAL(ISD::MUL),// ->214615
/*214349*/            OPC_Scope, 1|128,1/*129*/, /*->214481*/ // 2 children in Scope
/*214352*/              OPC_RecordChild0, // #1 = $src1
/*214353*/              OPC_MoveChild1,
/*214354*/              OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->214415
/*214358*/                OPC_RecordMemRef,
/*214359*/                OPC_RecordNode, // #2 = 'ld' chained node
/*214360*/                OPC_CheckFoldableChainNode,
/*214361*/                OPC_RecordChild1, // #3 = $src2
/*214362*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*214364*/                OPC_CheckPredicate, 9, // Predicate_load
/*214366*/                OPC_MoveParent,
/*214367*/                OPC_MoveParent,
/*214368*/                OPC_RecordChild2, // #4 = $src0
/*214369*/                OPC_SwitchType /*2 cases */, 20, MVT::v4i32,// ->214392
/*214372*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*214374*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*214377*/                  OPC_EmitMergeInputChains1_2,
/*214378*/                  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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VPMULLDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*214392*/                /*SwitchType*/ 20, MVT::v4i64,// ->214414
/*214394*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*214396*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*214399*/                  OPC_EmitMergeInputChains1_2,
/*214400*/                  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>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VPMULLQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*214414*/                0, // EndSwitchType
/*214415*/              /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->214480
/*214418*/                OPC_RecordMemRef,
/*214419*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*214420*/                OPC_CheckFoldableChainNode,
/*214421*/                OPC_RecordChild1, // #3 = $src2
/*214422*/                OPC_Scope, 27, /*->214451*/ // 2 children in Scope
/*214424*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*214426*/                  OPC_MoveParent,
/*214427*/                  OPC_MoveParent,
/*214428*/                  OPC_RecordChild2, // #4 = $src0
/*214429*/                  OPC_CheckType, MVT::v4i32,
/*214431*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*214433*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*214436*/                  OPC_EmitMergeInputChains1_2,
/*214437*/                  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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VPMULLDZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*214451*/                /*Scope*/ 27, /*->214479*/
/*214452*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*214454*/                  OPC_MoveParent,
/*214455*/                  OPC_MoveParent,
/*214456*/                  OPC_RecordChild2, // #4 = $src0
/*214457*/                  OPC_CheckType, MVT::v4i64,
/*214459*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (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::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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VPMULLQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*214479*/                0, /*End of Scope*/
/*214480*/              0, // EndSwitchOpcode
/*214481*/            /*Scope*/ 3|128,1/*131*/, /*->214614*/
/*214483*/              OPC_MoveChild0,
/*214484*/              OPC_SwitchOpcode /*2 cases */, 58, TARGET_VAL(ISD::LOAD),// ->214546
/*214488*/                OPC_RecordMemRef,
/*214489*/                OPC_RecordNode, // #1 = 'ld' chained node
/*214490*/                OPC_CheckFoldableChainNode,
/*214491*/                OPC_RecordChild1, // #2 = $src2
/*214492*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*214494*/                OPC_CheckPredicate, 9, // Predicate_load
/*214496*/                OPC_MoveParent,
/*214497*/                OPC_RecordChild1, // #3 = $src1
/*214498*/                OPC_MoveParent,
/*214499*/                OPC_RecordChild2, // #4 = $src0
/*214500*/                OPC_SwitchType /*2 cases */, 20, MVT::v4i32,// ->214523
/*214503*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*214505*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*214508*/                  OPC_EmitMergeInputChains1_1,
/*214509*/                  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] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4i32] }:$src1), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VPMULLDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*214523*/                /*SwitchType*/ 20, MVT::v4i64,// ->214545
/*214525*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*214527*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*214530*/                  OPC_EmitMergeInputChains1_1,
/*214531*/                  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>>, VR256X:{ *:[v4i64] }:$src1), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VPMULLQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*214545*/                0, // EndSwitchType
/*214546*/              /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->214613
/*214549*/                OPC_RecordMemRef,
/*214550*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*214551*/                OPC_CheckFoldableChainNode,
/*214552*/                OPC_RecordChild1, // #2 = $src2
/*214553*/                OPC_Scope, 28, /*->214583*/ // 2 children in Scope
/*214555*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*214557*/                  OPC_MoveParent,
/*214558*/                  OPC_RecordChild1, // #3 = $src1
/*214559*/                  OPC_MoveParent,
/*214560*/                  OPC_RecordChild2, // #4 = $src0
/*214561*/                  OPC_CheckType, MVT::v4i32,
/*214563*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*214565*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*214568*/                  OPC_EmitMergeInputChains1_1,
/*214569*/                  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] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4i32] }:$src1), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VPMULLDZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*214583*/                /*Scope*/ 28, /*->214612*/
/*214584*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*214586*/                  OPC_MoveParent,
/*214587*/                  OPC_RecordChild1, // #3 = $src1
/*214588*/                  OPC_MoveParent,
/*214589*/                  OPC_RecordChild2, // #4 = $src0
/*214590*/                  OPC_CheckType, MVT::v4i64,
/*214592*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*214594*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*214597*/                  OPC_EmitMergeInputChains1_1,
/*214598*/                  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] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src1), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VPMULLQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*214612*/                0, /*End of Scope*/
/*214613*/              0, // EndSwitchOpcode
/*214614*/            0, /*End of Scope*/
/*214615*/          /*SwitchOpcode*/ 25|128,1/*153*/, TARGET_VAL(X86ISD::PMULDQ),// ->214772
/*214619*/            OPC_Scope, 74, /*->214695*/ // 2 children in Scope
/*214621*/              OPC_RecordChild0, // #1 = $src1
/*214622*/              OPC_MoveChild1,
/*214623*/              OPC_SwitchOpcode /*2 cases */, 33, TARGET_VAL(ISD::LOAD),// ->214660
/*214627*/                OPC_RecordMemRef,
/*214628*/                OPC_RecordNode, // #2 = 'ld' chained node
/*214629*/                OPC_CheckFoldableChainNode,
/*214630*/                OPC_RecordChild1, // #3 = $src2
/*214631*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*214633*/                OPC_CheckPredicate, 9, // Predicate_load
/*214635*/                OPC_MoveParent,
/*214636*/                OPC_MoveParent,
/*214637*/                OPC_RecordChild2, // #4 = $src0
/*214638*/                OPC_CheckType, MVT::v4i64,
/*214640*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*214642*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*214645*/                OPC_EmitMergeInputChains1_2,
/*214646*/                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>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                          // Dst: (VPMULDQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*214660*/              /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->214694
/*214663*/                OPC_RecordMemRef,
/*214664*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*214665*/                OPC_CheckFoldableChainNode,
/*214666*/                OPC_RecordChild1, // #3 = $src2
/*214667*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*214669*/                OPC_MoveParent,
/*214670*/                OPC_MoveParent,
/*214671*/                OPC_RecordChild2, // #4 = $src0
/*214672*/                OPC_CheckType, MVT::v4i64,
/*214674*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*214676*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*214679*/                OPC_EmitMergeInputChains1_2,
/*214680*/                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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                          // Dst: (VPMULDQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*214694*/              0, // EndSwitchOpcode
/*214695*/            /*Scope*/ 75, /*->214771*/
/*214696*/              OPC_MoveChild0,
/*214697*/              OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->214735
/*214701*/                OPC_RecordMemRef,
/*214702*/                OPC_RecordNode, // #1 = 'ld' chained node
/*214703*/                OPC_CheckFoldableChainNode,
/*214704*/                OPC_RecordChild1, // #2 = $src2
/*214705*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*214707*/                OPC_CheckPredicate, 9, // Predicate_load
/*214709*/                OPC_MoveParent,
/*214710*/                OPC_RecordChild1, // #3 = $src1
/*214711*/                OPC_MoveParent,
/*214712*/                OPC_RecordChild2, // #4 = $src0
/*214713*/                OPC_CheckType, MVT::v4i64,
/*214715*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*214717*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*214720*/                OPC_EmitMergeInputChains1_1,
/*214721*/                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>>, VR256X:{ *:[v4i64] }:$src1), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                          // Dst: (VPMULDQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*214735*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->214770
/*214738*/                OPC_RecordMemRef,
/*214739*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*214740*/                OPC_CheckFoldableChainNode,
/*214741*/                OPC_RecordChild1, // #2 = $src2
/*214742*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*214744*/                OPC_MoveParent,
/*214745*/                OPC_RecordChild1, // #3 = $src1
/*214746*/                OPC_MoveParent,
/*214747*/                OPC_RecordChild2, // #4 = $src0
/*214748*/                OPC_CheckType, MVT::v4i64,
/*214750*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*214752*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*214755*/                OPC_EmitMergeInputChains1_1,
/*214756*/                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] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src1), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                          // Dst: (VPMULDQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*214770*/              0, // EndSwitchOpcode
/*214771*/            0, /*End of Scope*/
/*214772*/          /*SwitchOpcode*/ 25|128,1/*153*/, TARGET_VAL(X86ISD::PMULUDQ),// ->214929
/*214776*/            OPC_Scope, 74, /*->214852*/ // 2 children in Scope
/*214778*/              OPC_RecordChild0, // #1 = $src1
/*214779*/              OPC_MoveChild1,
/*214780*/              OPC_SwitchOpcode /*2 cases */, 33, TARGET_VAL(ISD::LOAD),// ->214817
/*214784*/                OPC_RecordMemRef,
/*214785*/                OPC_RecordNode, // #2 = 'ld' chained node
/*214786*/                OPC_CheckFoldableChainNode,
/*214787*/                OPC_RecordChild1, // #3 = $src2
/*214788*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*214790*/                OPC_CheckPredicate, 9, // Predicate_load
/*214792*/                OPC_MoveParent,
/*214793*/                OPC_MoveParent,
/*214794*/                OPC_RecordChild2, // #4 = $src0
/*214795*/                OPC_CheckType, MVT::v4i64,
/*214797*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*214799*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*214802*/                OPC_EmitMergeInputChains1_2,
/*214803*/                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>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                          // Dst: (VPMULUDQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*214817*/              /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->214851
/*214820*/                OPC_RecordMemRef,
/*214821*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*214822*/                OPC_CheckFoldableChainNode,
/*214823*/                OPC_RecordChild1, // #3 = $src2
/*214824*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*214826*/                OPC_MoveParent,
/*214827*/                OPC_MoveParent,
/*214828*/                OPC_RecordChild2, // #4 = $src0
/*214829*/                OPC_CheckType, MVT::v4i64,
/*214831*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*214833*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*214836*/                OPC_EmitMergeInputChains1_2,
/*214837*/                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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                          // Dst: (VPMULUDQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*214851*/              0, // EndSwitchOpcode
/*214852*/            /*Scope*/ 75, /*->214928*/
/*214853*/              OPC_MoveChild0,
/*214854*/              OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->214892
/*214858*/                OPC_RecordMemRef,
/*214859*/                OPC_RecordNode, // #1 = 'ld' chained node
/*214860*/                OPC_CheckFoldableChainNode,
/*214861*/                OPC_RecordChild1, // #2 = $src2
/*214862*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*214864*/                OPC_CheckPredicate, 9, // Predicate_load
/*214866*/                OPC_MoveParent,
/*214867*/                OPC_RecordChild1, // #3 = $src1
/*214868*/                OPC_MoveParent,
/*214869*/                OPC_RecordChild2, // #4 = $src0
/*214870*/                OPC_CheckType, MVT::v4i64,
/*214872*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*214874*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*214877*/                OPC_EmitMergeInputChains1_1,
/*214878*/                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>>, VR256X:{ *:[v4i64] }:$src1), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                          // Dst: (VPMULUDQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*214892*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->214927
/*214895*/                OPC_RecordMemRef,
/*214896*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*214897*/                OPC_CheckFoldableChainNode,
/*214898*/                OPC_RecordChild1, // #2 = $src2
/*214899*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*214901*/                OPC_MoveParent,
/*214902*/                OPC_RecordChild1, // #3 = $src1
/*214903*/                OPC_MoveParent,
/*214904*/                OPC_RecordChild2, // #4 = $src0
/*214905*/                OPC_CheckType, MVT::v4i64,
/*214907*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*214909*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*214912*/                OPC_EmitMergeInputChains1_1,
/*214913*/                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] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src1), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                          // Dst: (VPMULUDQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*214927*/              0, // EndSwitchOpcode
/*214928*/            0, /*End of Scope*/
/*214929*/          /*SwitchOpcode*/ 80, TARGET_VAL(X86ISD::VPMADDWD),// ->215012
/*214932*/            OPC_Scope, 38, /*->214972*/ // 2 children in Scope
/*214934*/              OPC_RecordChild0, // #1 = $src1
/*214935*/              OPC_MoveChild1,
/*214936*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*214939*/              OPC_RecordMemRef,
/*214940*/              OPC_RecordNode, // #2 = 'ld' chained node
/*214941*/              OPC_CheckFoldableChainNode,
/*214942*/              OPC_RecordChild1, // #3 = $src2
/*214943*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*214945*/              OPC_CheckPredicate, 9, // Predicate_load
/*214947*/              OPC_MoveParent,
/*214948*/              OPC_MoveParent,
/*214949*/              OPC_RecordChild2, // #4 = $src0
/*214950*/              OPC_CheckType, MVT::v4i32,
/*214952*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*214954*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*214957*/              OPC_EmitMergeInputChains1_2,
/*214958*/              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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                        // Dst: (VPMADDWDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*214972*/            /*Scope*/ 38, /*->215011*/
/*214973*/              OPC_MoveChild0,
/*214974*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*214977*/              OPC_RecordMemRef,
/*214978*/              OPC_RecordNode, // #1 = 'ld' chained node
/*214979*/              OPC_CheckFoldableChainNode,
/*214980*/              OPC_RecordChild1, // #2 = $src2
/*214981*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*214983*/              OPC_CheckPredicate, 9, // Predicate_load
/*214985*/              OPC_MoveParent,
/*214986*/              OPC_RecordChild1, // #3 = $src1
/*214987*/              OPC_MoveParent,
/*214988*/              OPC_RecordChild2, // #4 = $src0
/*214989*/              OPC_CheckType, MVT::v4i32,
/*214991*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*214993*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*214996*/              OPC_EmitMergeInputChains1_1,
/*214997*/              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] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                        // Dst: (VPMADDWDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*215011*/            0, /*End of Scope*/
/*215012*/          /*SwitchOpcode*/ 10|128,2/*266*/, TARGET_VAL(ISD::SMAX),// ->215282
/*215016*/            OPC_Scope, 1|128,1/*129*/, /*->215148*/ // 2 children in Scope
/*215019*/              OPC_RecordChild0, // #1 = $src1
/*215020*/              OPC_MoveChild1,
/*215021*/              OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->215082
/*215025*/                OPC_RecordMemRef,
/*215026*/                OPC_RecordNode, // #2 = 'ld' chained node
/*215027*/                OPC_CheckFoldableChainNode,
/*215028*/                OPC_RecordChild1, // #3 = $src2
/*215029*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*215031*/                OPC_CheckPredicate, 9, // Predicate_load
/*215033*/                OPC_MoveParent,
/*215034*/                OPC_MoveParent,
/*215035*/                OPC_RecordChild2, // #4 = $src0
/*215036*/                OPC_SwitchType /*2 cases */, 20, MVT::v4i32,// ->215059
/*215039*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*215041*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*215044*/                  OPC_EmitMergeInputChains1_2,
/*215045*/                  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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VPMAXSDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*215059*/                /*SwitchType*/ 20, MVT::v4i64,// ->215081
/*215061*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*215063*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*215066*/                  OPC_EmitMergeInputChains1_2,
/*215067*/                  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>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VPMAXSQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*215081*/                0, // EndSwitchType
/*215082*/              /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->215147
/*215085*/                OPC_RecordMemRef,
/*215086*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*215087*/                OPC_CheckFoldableChainNode,
/*215088*/                OPC_RecordChild1, // #3 = $src2
/*215089*/                OPC_Scope, 27, /*->215118*/ // 2 children in Scope
/*215091*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*215093*/                  OPC_MoveParent,
/*215094*/                  OPC_MoveParent,
/*215095*/                  OPC_RecordChild2, // #4 = $src0
/*215096*/                  OPC_CheckType, MVT::v4i32,
/*215098*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*215100*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*215103*/                  OPC_EmitMergeInputChains1_2,
/*215104*/                  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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VPMAXSDZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*215118*/                /*Scope*/ 27, /*->215146*/
/*215119*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*215121*/                  OPC_MoveParent,
/*215122*/                  OPC_MoveParent,
/*215123*/                  OPC_RecordChild2, // #4 = $src0
/*215124*/                  OPC_CheckType, MVT::v4i64,
/*215126*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*215128*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*215131*/                  OPC_EmitMergeInputChains1_2,
/*215132*/                  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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VPMAXSQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*215146*/                0, /*End of Scope*/
/*215147*/              0, // EndSwitchOpcode
/*215148*/            /*Scope*/ 3|128,1/*131*/, /*->215281*/
/*215150*/              OPC_MoveChild0,
/*215151*/              OPC_SwitchOpcode /*2 cases */, 58, TARGET_VAL(ISD::LOAD),// ->215213
/*215155*/                OPC_RecordMemRef,
/*215156*/                OPC_RecordNode, // #1 = 'ld' chained node
/*215157*/                OPC_CheckFoldableChainNode,
/*215158*/                OPC_RecordChild1, // #2 = $src2
/*215159*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*215161*/                OPC_CheckPredicate, 9, // Predicate_load
/*215163*/                OPC_MoveParent,
/*215164*/                OPC_RecordChild1, // #3 = $src1
/*215165*/                OPC_MoveParent,
/*215166*/                OPC_RecordChild2, // #4 = $src0
/*215167*/                OPC_SwitchType /*2 cases */, 20, MVT::v4i32,// ->215190
/*215170*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*215172*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*215175*/                  OPC_EmitMergeInputChains1_1,
/*215176*/                  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] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4i32] }:$src1), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VPMAXSDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*215190*/                /*SwitchType*/ 20, MVT::v4i64,// ->215212
/*215192*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*215194*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*215197*/                  OPC_EmitMergeInputChains1_1,
/*215198*/                  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>>, VR256X:{ *:[v4i64] }:$src1), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VPMAXSQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*215212*/                0, // EndSwitchType
/*215213*/              /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->215280
/*215216*/                OPC_RecordMemRef,
/*215217*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*215218*/                OPC_CheckFoldableChainNode,
/*215219*/                OPC_RecordChild1, // #2 = $src2
/*215220*/                OPC_Scope, 28, /*->215250*/ // 2 children in Scope
/*215222*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*215224*/                  OPC_MoveParent,
/*215225*/                  OPC_RecordChild1, // #3 = $src1
/*215226*/                  OPC_MoveParent,
/*215227*/                  OPC_RecordChild2, // #4 = $src0
/*215228*/                  OPC_CheckType, MVT::v4i32,
/*215230*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*215232*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*215235*/                  OPC_EmitMergeInputChains1_1,
/*215236*/                  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] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4i32] }:$src1), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VPMAXSDZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*215250*/                /*Scope*/ 28, /*->215279*/
/*215251*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*215253*/                  OPC_MoveParent,
/*215254*/                  OPC_RecordChild1, // #3 = $src1
/*215255*/                  OPC_MoveParent,
/*215256*/                  OPC_RecordChild2, // #4 = $src0
/*215257*/                  OPC_CheckType, MVT::v4i64,
/*215259*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*215261*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*215264*/                  OPC_EmitMergeInputChains1_1,
/*215265*/                  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] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src1), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VPMAXSQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*215279*/                0, /*End of Scope*/
/*215280*/              0, // EndSwitchOpcode
/*215281*/            0, /*End of Scope*/
/*215282*/          /*SwitchOpcode*/ 10|128,2/*266*/, TARGET_VAL(ISD::UMAX),// ->215552
/*215286*/            OPC_Scope, 1|128,1/*129*/, /*->215418*/ // 2 children in Scope
/*215289*/              OPC_RecordChild0, // #1 = $src1
/*215290*/              OPC_MoveChild1,
/*215291*/              OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->215352
/*215295*/                OPC_RecordMemRef,
/*215296*/                OPC_RecordNode, // #2 = 'ld' chained node
/*215297*/                OPC_CheckFoldableChainNode,
/*215298*/                OPC_RecordChild1, // #3 = $src2
/*215299*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*215301*/                OPC_CheckPredicate, 9, // Predicate_load
/*215303*/                OPC_MoveParent,
/*215304*/                OPC_MoveParent,
/*215305*/                OPC_RecordChild2, // #4 = $src0
/*215306*/                OPC_SwitchType /*2 cases */, 20, MVT::v4i32,// ->215329
/*215309*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*215311*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*215314*/                  OPC_EmitMergeInputChains1_2,
/*215315*/                  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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VPMAXUDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*215329*/                /*SwitchType*/ 20, MVT::v4i64,// ->215351
/*215331*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*215333*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*215336*/                  OPC_EmitMergeInputChains1_2,
/*215337*/                  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>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VPMAXUQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*215351*/                0, // EndSwitchType
/*215352*/              /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->215417
/*215355*/                OPC_RecordMemRef,
/*215356*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*215357*/                OPC_CheckFoldableChainNode,
/*215358*/                OPC_RecordChild1, // #3 = $src2
/*215359*/                OPC_Scope, 27, /*->215388*/ // 2 children in Scope
/*215361*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*215363*/                  OPC_MoveParent,
/*215364*/                  OPC_MoveParent,
/*215365*/                  OPC_RecordChild2, // #4 = $src0
/*215366*/                  OPC_CheckType, MVT::v4i32,
/*215368*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*215370*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*215373*/                  OPC_EmitMergeInputChains1_2,
/*215374*/                  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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VPMAXUDZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*215388*/                /*Scope*/ 27, /*->215416*/
/*215389*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*215391*/                  OPC_MoveParent,
/*215392*/                  OPC_MoveParent,
/*215393*/                  OPC_RecordChild2, // #4 = $src0
/*215394*/                  OPC_CheckType, MVT::v4i64,
/*215396*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*215398*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*215401*/                  OPC_EmitMergeInputChains1_2,
/*215402*/                  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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VPMAXUQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*215416*/                0, /*End of Scope*/
/*215417*/              0, // EndSwitchOpcode
/*215418*/            /*Scope*/ 3|128,1/*131*/, /*->215551*/
/*215420*/              OPC_MoveChild0,
/*215421*/              OPC_SwitchOpcode /*2 cases */, 58, TARGET_VAL(ISD::LOAD),// ->215483
/*215425*/                OPC_RecordMemRef,
/*215426*/                OPC_RecordNode, // #1 = 'ld' chained node
/*215427*/                OPC_CheckFoldableChainNode,
/*215428*/                OPC_RecordChild1, // #2 = $src2
/*215429*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*215431*/                OPC_CheckPredicate, 9, // Predicate_load
/*215433*/                OPC_MoveParent,
/*215434*/                OPC_RecordChild1, // #3 = $src1
/*215435*/                OPC_MoveParent,
/*215436*/                OPC_RecordChild2, // #4 = $src0
/*215437*/                OPC_SwitchType /*2 cases */, 20, MVT::v4i32,// ->215460
/*215440*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*215442*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*215445*/                  OPC_EmitMergeInputChains1_1,
/*215446*/                  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] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4i32] }:$src1), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VPMAXUDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*215460*/                /*SwitchType*/ 20, MVT::v4i64,// ->215482
/*215462*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*215464*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*215467*/                  OPC_EmitMergeInputChains1_1,
/*215468*/                  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>>, VR256X:{ *:[v4i64] }:$src1), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VPMAXUQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*215482*/                0, // EndSwitchType
/*215483*/              /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->215550
/*215486*/                OPC_RecordMemRef,
/*215487*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*215488*/                OPC_CheckFoldableChainNode,
/*215489*/                OPC_RecordChild1, // #2 = $src2
/*215490*/                OPC_Scope, 28, /*->215520*/ // 2 children in Scope
/*215492*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*215494*/                  OPC_MoveParent,
/*215495*/                  OPC_RecordChild1, // #3 = $src1
/*215496*/                  OPC_MoveParent,
/*215497*/                  OPC_RecordChild2, // #4 = $src0
/*215498*/                  OPC_CheckType, MVT::v4i32,
/*215500*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*215502*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*215505*/                  OPC_EmitMergeInputChains1_1,
/*215506*/                  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] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4i32] }:$src1), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VPMAXUDZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*215520*/                /*Scope*/ 28, /*->215549*/
/*215521*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*215523*/                  OPC_MoveParent,
/*215524*/                  OPC_RecordChild1, // #3 = $src1
/*215525*/                  OPC_MoveParent,
/*215526*/                  OPC_RecordChild2, // #4 = $src0
/*215527*/                  OPC_CheckType, MVT::v4i64,
/*215529*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*215531*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*215534*/                  OPC_EmitMergeInputChains1_1,
/*215535*/                  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] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src1), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VPMAXUQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*215549*/                0, /*End of Scope*/
/*215550*/              0, // EndSwitchOpcode
/*215551*/            0, /*End of Scope*/
/*215552*/          /*SwitchOpcode*/ 10|128,2/*266*/, TARGET_VAL(ISD::SMIN),// ->215822
/*215556*/            OPC_Scope, 1|128,1/*129*/, /*->215688*/ // 2 children in Scope
/*215559*/              OPC_RecordChild0, // #1 = $src1
/*215560*/              OPC_MoveChild1,
/*215561*/              OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->215622
/*215565*/                OPC_RecordMemRef,
/*215566*/                OPC_RecordNode, // #2 = 'ld' chained node
/*215567*/                OPC_CheckFoldableChainNode,
/*215568*/                OPC_RecordChild1, // #3 = $src2
/*215569*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*215571*/                OPC_CheckPredicate, 9, // Predicate_load
/*215573*/                OPC_MoveParent,
/*215574*/                OPC_MoveParent,
/*215575*/                OPC_RecordChild2, // #4 = $src0
/*215576*/                OPC_SwitchType /*2 cases */, 20, MVT::v4i32,// ->215599
/*215579*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*215581*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*215584*/                  OPC_EmitMergeInputChains1_2,
/*215585*/                  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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VPMINSDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*215599*/                /*SwitchType*/ 20, MVT::v4i64,// ->215621
/*215601*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*215603*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*215606*/                  OPC_EmitMergeInputChains1_2,
/*215607*/                  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>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VPMINSQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*215621*/                0, // EndSwitchType
/*215622*/              /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->215687
/*215625*/                OPC_RecordMemRef,
/*215626*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*215627*/                OPC_CheckFoldableChainNode,
/*215628*/                OPC_RecordChild1, // #3 = $src2
/*215629*/                OPC_Scope, 27, /*->215658*/ // 2 children in Scope
/*215631*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*215633*/                  OPC_MoveParent,
/*215634*/                  OPC_MoveParent,
/*215635*/                  OPC_RecordChild2, // #4 = $src0
/*215636*/                  OPC_CheckType, MVT::v4i32,
/*215638*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*215640*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*215643*/                  OPC_EmitMergeInputChains1_2,
/*215644*/                  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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VPMINSDZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*215658*/                /*Scope*/ 27, /*->215686*/
/*215659*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*215661*/                  OPC_MoveParent,
/*215662*/                  OPC_MoveParent,
/*215663*/                  OPC_RecordChild2, // #4 = $src0
/*215664*/                  OPC_CheckType, MVT::v4i64,
/*215666*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*215668*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*215671*/                  OPC_EmitMergeInputChains1_2,
/*215672*/                  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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VPMINSQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*215686*/                0, /*End of Scope*/
/*215687*/              0, // EndSwitchOpcode
/*215688*/            /*Scope*/ 3|128,1/*131*/, /*->215821*/
/*215690*/              OPC_MoveChild0,
/*215691*/              OPC_SwitchOpcode /*2 cases */, 58, TARGET_VAL(ISD::LOAD),// ->215753
/*215695*/                OPC_RecordMemRef,
/*215696*/                OPC_RecordNode, // #1 = 'ld' chained node
/*215697*/                OPC_CheckFoldableChainNode,
/*215698*/                OPC_RecordChild1, // #2 = $src2
/*215699*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*215701*/                OPC_CheckPredicate, 9, // Predicate_load
/*215703*/                OPC_MoveParent,
/*215704*/                OPC_RecordChild1, // #3 = $src1
/*215705*/                OPC_MoveParent,
/*215706*/                OPC_RecordChild2, // #4 = $src0
/*215707*/                OPC_SwitchType /*2 cases */, 20, MVT::v4i32,// ->215730
/*215710*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*215712*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*215715*/                  OPC_EmitMergeInputChains1_1,
/*215716*/                  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] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4i32] }:$src1), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VPMINSDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*215730*/                /*SwitchType*/ 20, MVT::v4i64,// ->215752
/*215732*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*215734*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*215737*/                  OPC_EmitMergeInputChains1_1,
/*215738*/                  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>>, VR256X:{ *:[v4i64] }:$src1), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VPMINSQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*215752*/                0, // EndSwitchType
/*215753*/              /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->215820
/*215756*/                OPC_RecordMemRef,
/*215757*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*215758*/                OPC_CheckFoldableChainNode,
/*215759*/                OPC_RecordChild1, // #2 = $src2
/*215760*/                OPC_Scope, 28, /*->215790*/ // 2 children in Scope
/*215762*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*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::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] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4i32] }:$src1), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VPMINSDZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*215790*/                /*Scope*/ 28, /*->215819*/
/*215791*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*215793*/                  OPC_MoveParent,
/*215794*/                  OPC_RecordChild1, // #3 = $src1
/*215795*/                  OPC_MoveParent,
/*215796*/                  OPC_RecordChild2, // #4 = $src0
/*215797*/                  OPC_CheckType, MVT::v4i64,
/*215799*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*215801*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*215804*/                  OPC_EmitMergeInputChains1_1,
/*215805*/                  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] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src1), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VPMINSQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*215819*/                0, /*End of Scope*/
/*215820*/              0, // EndSwitchOpcode
/*215821*/            0, /*End of Scope*/
/*215822*/          /*SwitchOpcode*/ 10|128,2/*266*/, TARGET_VAL(ISD::UMIN),// ->216092
/*215826*/            OPC_Scope, 1|128,1/*129*/, /*->215958*/ // 2 children in Scope
/*215829*/              OPC_RecordChild0, // #1 = $src1
/*215830*/              OPC_MoveChild1,
/*215831*/              OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->215892
/*215835*/                OPC_RecordMemRef,
/*215836*/                OPC_RecordNode, // #2 = 'ld' chained node
/*215837*/                OPC_CheckFoldableChainNode,
/*215838*/                OPC_RecordChild1, // #3 = $src2
/*215839*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*215841*/                OPC_CheckPredicate, 9, // Predicate_load
/*215843*/                OPC_MoveParent,
/*215844*/                OPC_MoveParent,
/*215845*/                OPC_RecordChild2, // #4 = $src0
/*215846*/                OPC_SwitchType /*2 cases */, 20, MVT::v4i32,// ->215869
/*215849*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*215851*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*215854*/                  OPC_EmitMergeInputChains1_2,
/*215855*/                  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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VPMINUDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*215869*/                /*SwitchType*/ 20, MVT::v4i64,// ->215891
/*215871*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*215873*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*215876*/                  OPC_EmitMergeInputChains1_2,
/*215877*/                  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>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VPMINUQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*215891*/                0, // EndSwitchType
/*215892*/              /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->215957
/*215895*/                OPC_RecordMemRef,
/*215896*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*215897*/                OPC_CheckFoldableChainNode,
/*215898*/                OPC_RecordChild1, // #3 = $src2
/*215899*/                OPC_Scope, 27, /*->215928*/ // 2 children in Scope
/*215901*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*215903*/                  OPC_MoveParent,
/*215904*/                  OPC_MoveParent,
/*215905*/                  OPC_RecordChild2, // #4 = $src0
/*215906*/                  OPC_CheckType, MVT::v4i32,
/*215908*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*215910*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*215913*/                  OPC_EmitMergeInputChains1_2,
/*215914*/                  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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VPMINUDZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*215928*/                /*Scope*/ 27, /*->215956*/
/*215929*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*215931*/                  OPC_MoveParent,
/*215932*/                  OPC_MoveParent,
/*215933*/                  OPC_RecordChild2, // #4 = $src0
/*215934*/                  OPC_CheckType, MVT::v4i64,
/*215936*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*215938*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*215941*/                  OPC_EmitMergeInputChains1_2,
/*215942*/                  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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VPMINUQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*215956*/                0, /*End of Scope*/
/*215957*/              0, // EndSwitchOpcode
/*215958*/            /*Scope*/ 3|128,1/*131*/, /*->216091*/
/*215960*/              OPC_MoveChild0,
/*215961*/              OPC_SwitchOpcode /*2 cases */, 58, TARGET_VAL(ISD::LOAD),// ->216023
/*215965*/                OPC_RecordMemRef,
/*215966*/                OPC_RecordNode, // #1 = 'ld' chained node
/*215967*/                OPC_CheckFoldableChainNode,
/*215968*/                OPC_RecordChild1, // #2 = $src2
/*215969*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*215971*/                OPC_CheckPredicate, 9, // Predicate_load
/*215973*/                OPC_MoveParent,
/*215974*/                OPC_RecordChild1, // #3 = $src1
/*215975*/                OPC_MoveParent,
/*215976*/                OPC_RecordChild2, // #4 = $src0
/*215977*/                OPC_SwitchType /*2 cases */, 20, MVT::v4i32,// ->216000
/*215980*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*215982*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*215985*/                  OPC_EmitMergeInputChains1_1,
/*215986*/                  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] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4i32] }:$src1), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VPMINUDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*216000*/                /*SwitchType*/ 20, MVT::v4i64,// ->216022
/*216002*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*216004*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*216007*/                  OPC_EmitMergeInputChains1_1,
/*216008*/                  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>>, VR256X:{ *:[v4i64] }:$src1), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VPMINUQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*216022*/                0, // EndSwitchType
/*216023*/              /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->216090
/*216026*/                OPC_RecordMemRef,
/*216027*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*216028*/                OPC_CheckFoldableChainNode,
/*216029*/                OPC_RecordChild1, // #2 = $src2
/*216030*/                OPC_Scope, 28, /*->216060*/ // 2 children in Scope
/*216032*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*216034*/                  OPC_MoveParent,
/*216035*/                  OPC_RecordChild1, // #3 = $src1
/*216036*/                  OPC_MoveParent,
/*216037*/                  OPC_RecordChild2, // #4 = $src0
/*216038*/                  OPC_CheckType, MVT::v4i32,
/*216040*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*216042*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*216045*/                  OPC_EmitMergeInputChains1_1,
/*216046*/                  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] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4i32] }:$src1), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VPMINUDZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*216060*/                /*Scope*/ 28, /*->216089*/
/*216061*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*216063*/                  OPC_MoveParent,
/*216064*/                  OPC_RecordChild1, // #3 = $src1
/*216065*/                  OPC_MoveParent,
/*216066*/                  OPC_RecordChild2, // #4 = $src0
/*216067*/                  OPC_CheckType, MVT::v4i64,
/*216069*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*216071*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*216074*/                  OPC_EmitMergeInputChains1_1,
/*216075*/                  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] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src1), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VPMINUQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*216089*/                0, /*End of Scope*/
/*216090*/              0, // EndSwitchOpcode
/*216091*/            0, /*End of Scope*/
/*216092*/          /*SwitchOpcode*/ 10|128,2/*266*/, TARGET_VAL(ISD::AND),// ->216362
/*216096*/            OPC_Scope, 1|128,1/*129*/, /*->216228*/ // 2 children in Scope
/*216099*/              OPC_RecordChild0, // #1 = $src1
/*216100*/              OPC_MoveChild1,
/*216101*/              OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->216162
/*216105*/                OPC_RecordMemRef,
/*216106*/                OPC_RecordNode, // #2 = 'ld' chained node
/*216107*/                OPC_CheckFoldableChainNode,
/*216108*/                OPC_RecordChild1, // #3 = $src2
/*216109*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*216111*/                OPC_CheckPredicate, 9, // Predicate_load
/*216113*/                OPC_MoveParent,
/*216114*/                OPC_MoveParent,
/*216115*/                OPC_RecordChild2, // #4 = $src0
/*216116*/                OPC_SwitchType /*2 cases */, 20, MVT::v4i64,// ->216139
/*216119*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*216121*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*216124*/                  OPC_EmitMergeInputChains1_2,
/*216125*/                  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>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VPANDQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*216139*/                /*SwitchType*/ 20, MVT::v4i32,// ->216161
/*216141*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*216143*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*216146*/                  OPC_EmitMergeInputChains1_2,
/*216147*/                  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, (and:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VPANDDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*216161*/                0, // EndSwitchType
/*216162*/              /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->216227
/*216165*/                OPC_RecordMemRef,
/*216166*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*216167*/                OPC_CheckFoldableChainNode,
/*216168*/                OPC_RecordChild1, // #3 = $src2
/*216169*/                OPC_Scope, 27, /*->216198*/ // 2 children in Scope
/*216171*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*216173*/                  OPC_MoveParent,
/*216174*/                  OPC_MoveParent,
/*216175*/                  OPC_RecordChild2, // #4 = $src0
/*216176*/                  OPC_CheckType, MVT::v4i64,
/*216178*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*216180*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*216183*/                  OPC_EmitMergeInputChains1_2,
/*216184*/                  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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VPANDQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*216198*/                /*Scope*/ 27, /*->216226*/
/*216199*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*216201*/                  OPC_MoveParent,
/*216202*/                  OPC_MoveParent,
/*216203*/                  OPC_RecordChild2, // #4 = $src0
/*216204*/                  OPC_CheckType, MVT::v4i32,
/*216206*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*216208*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*216211*/                  OPC_EmitMergeInputChains1_2,
/*216212*/                  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, (and:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VPANDDZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*216226*/                0, /*End of Scope*/
/*216227*/              0, // EndSwitchOpcode
/*216228*/            /*Scope*/ 3|128,1/*131*/, /*->216361*/
/*216230*/              OPC_MoveChild0,
/*216231*/              OPC_SwitchOpcode /*2 cases */, 58, TARGET_VAL(ISD::LOAD),// ->216293
/*216235*/                OPC_RecordMemRef,
/*216236*/                OPC_RecordNode, // #1 = 'ld' chained node
/*216237*/                OPC_CheckFoldableChainNode,
/*216238*/                OPC_RecordChild1, // #2 = $src2
/*216239*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*216241*/                OPC_CheckPredicate, 9, // Predicate_load
/*216243*/                OPC_MoveParent,
/*216244*/                OPC_RecordChild1, // #3 = $src1
/*216245*/                OPC_MoveParent,
/*216246*/                OPC_RecordChild2, // #4 = $src0
/*216247*/                OPC_SwitchType /*2 cases */, 20, MVT::v4i64,// ->216270
/*216250*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*216252*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*216255*/                  OPC_EmitMergeInputChains1_1,
/*216256*/                  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>>, VR256X:{ *:[v4i64] }:$src1), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VPANDQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*216270*/                /*SwitchType*/ 20, MVT::v4i32,// ->216292
/*216272*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*216274*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*216277*/                  OPC_EmitMergeInputChains1_1,
/*216278*/                  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, (and:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4i32] }:$src1), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VPANDDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*216292*/                0, // EndSwitchType
/*216293*/              /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->216360
/*216296*/                OPC_RecordMemRef,
/*216297*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*216298*/                OPC_CheckFoldableChainNode,
/*216299*/                OPC_RecordChild1, // #2 = $src2
/*216300*/                OPC_Scope, 28, /*->216330*/ // 2 children in Scope
/*216302*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*216304*/                  OPC_MoveParent,
/*216305*/                  OPC_RecordChild1, // #3 = $src1
/*216306*/                  OPC_MoveParent,
/*216307*/                  OPC_RecordChild2, // #4 = $src0
/*216308*/                  OPC_CheckType, MVT::v4i64,
/*216310*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*216312*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*216315*/                  OPC_EmitMergeInputChains1_1,
/*216316*/                  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] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src1), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VPANDQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*216330*/                /*Scope*/ 28, /*->216359*/
/*216331*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*216333*/                  OPC_MoveParent,
/*216334*/                  OPC_RecordChild1, // #3 = $src1
/*216335*/                  OPC_MoveParent,
/*216336*/                  OPC_RecordChild2, // #4 = $src0
/*216337*/                  OPC_CheckType, MVT::v4i32,
/*216339*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*216341*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*216344*/                  OPC_EmitMergeInputChains1_1,
/*216345*/                  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, (and:{ *:[v4i32] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4i32] }:$src1), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VPANDDZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*216359*/                0, /*End of Scope*/
/*216360*/              0, // EndSwitchOpcode
/*216361*/            0, /*End of Scope*/
/*216362*/          /*SwitchOpcode*/ 10|128,2/*266*/, TARGET_VAL(ISD::OR),// ->216632
/*216366*/            OPC_Scope, 1|128,1/*129*/, /*->216498*/ // 2 children in Scope
/*216369*/              OPC_RecordChild0, // #1 = $src1
/*216370*/              OPC_MoveChild1,
/*216371*/              OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->216432
/*216375*/                OPC_RecordMemRef,
/*216376*/                OPC_RecordNode, // #2 = 'ld' chained node
/*216377*/                OPC_CheckFoldableChainNode,
/*216378*/                OPC_RecordChild1, // #3 = $src2
/*216379*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*216381*/                OPC_CheckPredicate, 9, // Predicate_load
/*216383*/                OPC_MoveParent,
/*216384*/                OPC_MoveParent,
/*216385*/                OPC_RecordChild2, // #4 = $src0
/*216386*/                OPC_SwitchType /*2 cases */, 20, MVT::v4i64,// ->216409
/*216389*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*216391*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*216394*/                  OPC_EmitMergeInputChains1_2,
/*216395*/                  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>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VPORQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*216409*/                /*SwitchType*/ 20, MVT::v4i32,// ->216431
/*216411*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*216413*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*216416*/                  OPC_EmitMergeInputChains1_2,
/*216417*/                  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, (or:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VPORDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*216431*/                0, // EndSwitchType
/*216432*/              /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->216497
/*216435*/                OPC_RecordMemRef,
/*216436*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*216437*/                OPC_CheckFoldableChainNode,
/*216438*/                OPC_RecordChild1, // #3 = $src2
/*216439*/                OPC_Scope, 27, /*->216468*/ // 2 children in Scope
/*216441*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*216443*/                  OPC_MoveParent,
/*216444*/                  OPC_MoveParent,
/*216445*/                  OPC_RecordChild2, // #4 = $src0
/*216446*/                  OPC_CheckType, MVT::v4i64,
/*216448*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*216450*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*216453*/                  OPC_EmitMergeInputChains1_2,
/*216454*/                  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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VPORQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*216468*/                /*Scope*/ 27, /*->216496*/
/*216469*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*216471*/                  OPC_MoveParent,
/*216472*/                  OPC_MoveParent,
/*216473*/                  OPC_RecordChild2, // #4 = $src0
/*216474*/                  OPC_CheckType, MVT::v4i32,
/*216476*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*216478*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*216481*/                  OPC_EmitMergeInputChains1_2,
/*216482*/                  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, (or:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VPORDZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*216496*/                0, /*End of Scope*/
/*216497*/              0, // EndSwitchOpcode
/*216498*/            /*Scope*/ 3|128,1/*131*/, /*->216631*/
/*216500*/              OPC_MoveChild0,
/*216501*/              OPC_SwitchOpcode /*2 cases */, 58, TARGET_VAL(ISD::LOAD),// ->216563
/*216505*/                OPC_RecordMemRef,
/*216506*/                OPC_RecordNode, // #1 = 'ld' chained node
/*216507*/                OPC_CheckFoldableChainNode,
/*216508*/                OPC_RecordChild1, // #2 = $src2
/*216509*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*216511*/                OPC_CheckPredicate, 9, // Predicate_load
/*216513*/                OPC_MoveParent,
/*216514*/                OPC_RecordChild1, // #3 = $src1
/*216515*/                OPC_MoveParent,
/*216516*/                OPC_RecordChild2, // #4 = $src0
/*216517*/                OPC_SwitchType /*2 cases */, 20, MVT::v4i64,// ->216540
/*216520*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*216522*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*216525*/                  OPC_EmitMergeInputChains1_1,
/*216526*/                  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>>, VR256X:{ *:[v4i64] }:$src1), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VPORQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*216540*/                /*SwitchType*/ 20, MVT::v4i32,// ->216562
/*216542*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*216544*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*216547*/                  OPC_EmitMergeInputChains1_1,
/*216548*/                  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, (or:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4i32] }:$src1), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VPORDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*216562*/                0, // EndSwitchType
/*216563*/              /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->216630
/*216566*/                OPC_RecordMemRef,
/*216567*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*216568*/                OPC_CheckFoldableChainNode,
/*216569*/                OPC_RecordChild1, // #2 = $src2
/*216570*/                OPC_Scope, 28, /*->216600*/ // 2 children in Scope
/*216572*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*216574*/                  OPC_MoveParent,
/*216575*/                  OPC_RecordChild1, // #3 = $src1
/*216576*/                  OPC_MoveParent,
/*216577*/                  OPC_RecordChild2, // #4 = $src0
/*216578*/                  OPC_CheckType, MVT::v4i64,
/*216580*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*216582*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*216585*/                  OPC_EmitMergeInputChains1_1,
/*216586*/                  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] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src1), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VPORQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*216600*/                /*Scope*/ 28, /*->216629*/
/*216601*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*216603*/                  OPC_MoveParent,
/*216604*/                  OPC_RecordChild1, // #3 = $src1
/*216605*/                  OPC_MoveParent,
/*216606*/                  OPC_RecordChild2, // #4 = $src0
/*216607*/                  OPC_CheckType, MVT::v4i32,
/*216609*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*216611*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*216614*/                  OPC_EmitMergeInputChains1_1,
/*216615*/                  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, (or:{ *:[v4i32] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4i32] }:$src1), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VPORDZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*216629*/                0, /*End of Scope*/
/*216630*/              0, // EndSwitchOpcode
/*216631*/            0, /*End of Scope*/
/*216632*/          /*SwitchOpcode*/ 10|128,2/*266*/, TARGET_VAL(ISD::XOR),// ->216902
/*216636*/            OPC_Scope, 1|128,1/*129*/, /*->216768*/ // 2 children in Scope
/*216639*/              OPC_RecordChild0, // #1 = $src1
/*216640*/              OPC_MoveChild1,
/*216641*/              OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->216702
/*216645*/                OPC_RecordMemRef,
/*216646*/                OPC_RecordNode, // #2 = 'ld' chained node
/*216647*/                OPC_CheckFoldableChainNode,
/*216648*/                OPC_RecordChild1, // #3 = $src2
/*216649*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*216651*/                OPC_CheckPredicate, 9, // Predicate_load
/*216653*/                OPC_MoveParent,
/*216654*/                OPC_MoveParent,
/*216655*/                OPC_RecordChild2, // #4 = $src0
/*216656*/                OPC_SwitchType /*2 cases */, 20, MVT::v4i64,// ->216679
/*216659*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*216661*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*216664*/                  OPC_EmitMergeInputChains1_2,
/*216665*/                  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>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VPXORQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*216679*/                /*SwitchType*/ 20, MVT::v4i32,// ->216701
/*216681*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*216683*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*216686*/                  OPC_EmitMergeInputChains1_2,
/*216687*/                  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, (xor:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VPXORDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*216701*/                0, // EndSwitchType
/*216702*/              /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->216767
/*216705*/                OPC_RecordMemRef,
/*216706*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*216707*/                OPC_CheckFoldableChainNode,
/*216708*/                OPC_RecordChild1, // #3 = $src2
/*216709*/                OPC_Scope, 27, /*->216738*/ // 2 children in Scope
/*216711*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*216713*/                  OPC_MoveParent,
/*216714*/                  OPC_MoveParent,
/*216715*/                  OPC_RecordChild2, // #4 = $src0
/*216716*/                  OPC_CheckType, MVT::v4i64,
/*216718*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*216720*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*216723*/                  OPC_EmitMergeInputChains1_2,
/*216724*/                  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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VPXORQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*216738*/                /*Scope*/ 27, /*->216766*/
/*216739*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*216741*/                  OPC_MoveParent,
/*216742*/                  OPC_MoveParent,
/*216743*/                  OPC_RecordChild2, // #4 = $src0
/*216744*/                  OPC_CheckType, MVT::v4i32,
/*216746*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*216748*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*216751*/                  OPC_EmitMergeInputChains1_2,
/*216752*/                  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, (xor:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VPXORDZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*216766*/                0, /*End of Scope*/
/*216767*/              0, // EndSwitchOpcode
/*216768*/            /*Scope*/ 3|128,1/*131*/, /*->216901*/
/*216770*/              OPC_MoveChild0,
/*216771*/              OPC_SwitchOpcode /*2 cases */, 58, TARGET_VAL(ISD::LOAD),// ->216833
/*216775*/                OPC_RecordMemRef,
/*216776*/                OPC_RecordNode, // #1 = 'ld' chained node
/*216777*/                OPC_CheckFoldableChainNode,
/*216778*/                OPC_RecordChild1, // #2 = $src2
/*216779*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*216781*/                OPC_CheckPredicate, 9, // Predicate_load
/*216783*/                OPC_MoveParent,
/*216784*/                OPC_RecordChild1, // #3 = $src1
/*216785*/                OPC_MoveParent,
/*216786*/                OPC_RecordChild2, // #4 = $src0
/*216787*/                OPC_SwitchType /*2 cases */, 20, MVT::v4i64,// ->216810
/*216790*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*216792*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*216795*/                  OPC_EmitMergeInputChains1_1,
/*216796*/                  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>>, VR256X:{ *:[v4i64] }:$src1), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VPXORQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*216810*/                /*SwitchType*/ 20, MVT::v4i32,// ->216832
/*216812*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*216814*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*216817*/                  OPC_EmitMergeInputChains1_1,
/*216818*/                  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, (xor:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4i32] }:$src1), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VPXORDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*216832*/                0, // EndSwitchType
/*216833*/              /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->216900
/*216836*/                OPC_RecordMemRef,
/*216837*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*216838*/                OPC_CheckFoldableChainNode,
/*216839*/                OPC_RecordChild1, // #2 = $src2
/*216840*/                OPC_Scope, 28, /*->216870*/ // 2 children in Scope
/*216842*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*216844*/                  OPC_MoveParent,
/*216845*/                  OPC_RecordChild1, // #3 = $src1
/*216846*/                  OPC_MoveParent,
/*216847*/                  OPC_RecordChild2, // #4 = $src0
/*216848*/                  OPC_CheckType, MVT::v4i64,
/*216850*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*216852*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*216855*/                  OPC_EmitMergeInputChains1_1,
/*216856*/                  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] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src1), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VPXORQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*216870*/                /*Scope*/ 28, /*->216899*/
/*216871*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*216873*/                  OPC_MoveParent,
/*216874*/                  OPC_RecordChild1, // #3 = $src1
/*216875*/                  OPC_MoveParent,
/*216876*/                  OPC_RecordChild2, // #4 = $src0
/*216877*/                  OPC_CheckType, MVT::v4i32,
/*216879*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*216881*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*216884*/                  OPC_EmitMergeInputChains1_1,
/*216885*/                  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, (xor:{ *:[v4i32] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4i32] }:$src1), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VPXORDZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*216899*/                0, /*End of Scope*/
/*216900*/              0, // EndSwitchOpcode
/*216901*/            0, /*End of Scope*/
/*216902*/          /*SwitchOpcode*/ 1|128,1/*129*/, TARGET_VAL(X86ISD::ANDNP),// ->217035
/*216906*/            OPC_RecordChild0, // #1 = $src1
/*216907*/            OPC_MoveChild1,
/*216908*/            OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->216969
/*216912*/              OPC_RecordMemRef,
/*216913*/              OPC_RecordNode, // #2 = 'ld' chained node
/*216914*/              OPC_CheckFoldableChainNode,
/*216915*/              OPC_RecordChild1, // #3 = $src2
/*216916*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*216918*/              OPC_CheckPredicate, 9, // Predicate_load
/*216920*/              OPC_MoveParent,
/*216921*/              OPC_MoveParent,
/*216922*/              OPC_RecordChild2, // #4 = $src0
/*216923*/              OPC_SwitchType /*2 cases */, 20, MVT::v4i64,// ->216946
/*216926*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*216928*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*216931*/                OPC_EmitMergeInputChains1_2,
/*216932*/                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>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                          // Dst: (VPANDNQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*216946*/              /*SwitchType*/ 20, MVT::v4i32,// ->216968
/*216948*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*216950*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*216953*/                OPC_EmitMergeInputChains1_2,
/*216954*/                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, (X86andnp:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                          // Dst: (VPANDNDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*216968*/              0, // EndSwitchType
/*216969*/            /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->217034
/*216972*/              OPC_RecordMemRef,
/*216973*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*216974*/              OPC_CheckFoldableChainNode,
/*216975*/              OPC_RecordChild1, // #3 = $src2
/*216976*/              OPC_Scope, 27, /*->217005*/ // 2 children in Scope
/*216978*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*216980*/                OPC_MoveParent,
/*216981*/                OPC_MoveParent,
/*216982*/                OPC_RecordChild2, // #4 = $src0
/*216983*/                OPC_CheckType, MVT::v4i64,
/*216985*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*216987*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*216990*/                OPC_EmitMergeInputChains1_2,
/*216991*/                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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                          // Dst: (VPANDNQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*217005*/              /*Scope*/ 27, /*->217033*/
/*217006*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*217008*/                OPC_MoveParent,
/*217009*/                OPC_MoveParent,
/*217010*/                OPC_RecordChild2, // #4 = $src0
/*217011*/                OPC_CheckType, MVT::v4i32,
/*217013*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*217015*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*217018*/                OPC_EmitMergeInputChains1_2,
/*217019*/                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, (X86andnp:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                          // Dst: (VPANDNDZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*217033*/              0, /*End of Scope*/
/*217034*/            0, // EndSwitchOpcode
/*217035*/          /*SwitchOpcode*/ 69, TARGET_VAL(X86ISD::VSHL),// ->217107
/*217038*/            OPC_RecordChild0, // #1 = $src1
/*217039*/            OPC_MoveChild1,
/*217040*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*217043*/            OPC_RecordMemRef,
/*217044*/            OPC_RecordNode, // #2 = 'ld' chained node
/*217045*/            OPC_CheckFoldableChainNode,
/*217046*/            OPC_RecordChild1, // #3 = $src2
/*217047*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*217049*/            OPC_CheckPredicate, 9, // Predicate_load
/*217051*/            OPC_SwitchType /*2 cases */, 25, MVT::v4i32,// ->217079
/*217054*/              OPC_MoveParent,
/*217055*/              OPC_MoveParent,
/*217056*/              OPC_RecordChild2, // #4 = $src0
/*217057*/              OPC_CheckType, MVT::v4i32,
/*217059*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*217061*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*217064*/              OPC_EmitMergeInputChains1_2,
/*217065*/              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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                        // Dst: (VPSLLDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*217079*/            /*SwitchType*/ 25, MVT::v2i64,// ->217106
/*217081*/              OPC_MoveParent,
/*217082*/              OPC_MoveParent,
/*217083*/              OPC_RecordChild2, // #4 = $src0
/*217084*/              OPC_CheckType, MVT::v4i64,
/*217086*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*217088*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*217091*/              OPC_EmitMergeInputChains1_2,
/*217092*/              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>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                        // Dst: (VPSLLQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*217106*/            0, // EndSwitchType
/*217107*/          /*SwitchOpcode*/ 69, TARGET_VAL(X86ISD::VSRA),// ->217179
/*217110*/            OPC_RecordChild0, // #1 = $src1
/*217111*/            OPC_MoveChild1,
/*217112*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*217115*/            OPC_RecordMemRef,
/*217116*/            OPC_RecordNode, // #2 = 'ld' chained node
/*217117*/            OPC_CheckFoldableChainNode,
/*217118*/            OPC_RecordChild1, // #3 = $src2
/*217119*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*217121*/            OPC_CheckPredicate, 9, // Predicate_load
/*217123*/            OPC_SwitchType /*2 cases */, 25, MVT::v4i32,// ->217151
/*217126*/              OPC_MoveParent,
/*217127*/              OPC_MoveParent,
/*217128*/              OPC_RecordChild2, // #4 = $src0
/*217129*/              OPC_CheckType, MVT::v4i32,
/*217131*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*217133*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*217136*/              OPC_EmitMergeInputChains1_2,
/*217137*/              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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                        // Dst: (VPSRADZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*217151*/            /*SwitchType*/ 25, MVT::v2i64,// ->217178
/*217153*/              OPC_MoveParent,
/*217154*/              OPC_MoveParent,
/*217155*/              OPC_RecordChild2, // #4 = $src0
/*217156*/              OPC_CheckType, MVT::v4i64,
/*217158*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*217160*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*217163*/              OPC_EmitMergeInputChains1_2,
/*217164*/              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>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                        // Dst: (VPSRAQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*217178*/            0, // EndSwitchType
/*217179*/          /*SwitchOpcode*/ 69, TARGET_VAL(X86ISD::VSRL),// ->217251
/*217182*/            OPC_RecordChild0, // #1 = $src1
/*217183*/            OPC_MoveChild1,
/*217184*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*217187*/            OPC_RecordMemRef,
/*217188*/            OPC_RecordNode, // #2 = 'ld' chained node
/*217189*/            OPC_CheckFoldableChainNode,
/*217190*/            OPC_RecordChild1, // #3 = $src2
/*217191*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*217193*/            OPC_CheckPredicate, 9, // Predicate_load
/*217195*/            OPC_SwitchType /*2 cases */, 25, MVT::v4i32,// ->217223
/*217198*/              OPC_MoveParent,
/*217199*/              OPC_MoveParent,
/*217200*/              OPC_RecordChild2, // #4 = $src0
/*217201*/              OPC_CheckType, MVT::v4i32,
/*217203*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*217205*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*217208*/              OPC_EmitMergeInputChains1_2,
/*217209*/              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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                        // Dst: (VPSRLDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*217223*/            /*SwitchType*/ 25, MVT::v2i64,// ->217250
/*217225*/              OPC_MoveParent,
/*217226*/              OPC_MoveParent,
/*217227*/              OPC_RecordChild2, // #4 = $src0
/*217228*/              OPC_CheckType, MVT::v4i64,
/*217230*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*217232*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*217235*/              OPC_EmitMergeInputChains1_2,
/*217236*/              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>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                        // Dst: (VPSRLQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*217250*/            0, // EndSwitchType
/*217251*/          /*SwitchOpcode*/ 1|128,1/*129*/, TARGET_VAL(X86ISD::VSHLV),// ->217384
/*217255*/            OPC_RecordChild0, // #1 = $src1
/*217256*/            OPC_MoveChild1,
/*217257*/            OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->217318
/*217261*/              OPC_RecordMemRef,
/*217262*/              OPC_RecordNode, // #2 = 'ld' chained node
/*217263*/              OPC_CheckFoldableChainNode,
/*217264*/              OPC_RecordChild1, // #3 = $src2
/*217265*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*217267*/              OPC_CheckPredicate, 9, // Predicate_load
/*217269*/              OPC_MoveParent,
/*217270*/              OPC_MoveParent,
/*217271*/              OPC_RecordChild2, // #4 = $src0
/*217272*/              OPC_SwitchType /*2 cases */, 20, MVT::v4i32,// ->217295
/*217275*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*217277*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*217280*/                OPC_EmitMergeInputChains1_2,
/*217281*/                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, (X86vshlv:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                          // Dst: (VPSLLVDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*217295*/              /*SwitchType*/ 20, MVT::v4i64,// ->217317
/*217297*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*217299*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*217302*/                OPC_EmitMergeInputChains1_2,
/*217303*/                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, (X86vshlv:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                          // Dst: (VPSLLVQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*217317*/              0, // EndSwitchType
/*217318*/            /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->217383
/*217321*/              OPC_RecordMemRef,
/*217322*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*217323*/              OPC_CheckFoldableChainNode,
/*217324*/              OPC_RecordChild1, // #3 = $src2
/*217325*/              OPC_Scope, 27, /*->217354*/ // 2 children in Scope
/*217327*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*217329*/                OPC_MoveParent,
/*217330*/                OPC_MoveParent,
/*217331*/                OPC_RecordChild2, // #4 = $src0
/*217332*/                OPC_CheckType, MVT::v4i32,
/*217334*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*217336*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*217339*/                OPC_EmitMergeInputChains1_2,
/*217340*/                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, (X86vshlv:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                          // Dst: (VPSLLVDZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*217354*/              /*Scope*/ 27, /*->217382*/
/*217355*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*217357*/                OPC_MoveParent,
/*217358*/                OPC_MoveParent,
/*217359*/                OPC_RecordChild2, // #4 = $src0
/*217360*/                OPC_CheckType, MVT::v4i64,
/*217362*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*217364*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*217367*/                OPC_EmitMergeInputChains1_2,
/*217368*/                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, (X86vshlv:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                          // Dst: (VPSLLVQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*217382*/              0, /*End of Scope*/
/*217383*/            0, // EndSwitchOpcode
/*217384*/          /*SwitchOpcode*/ 1|128,1/*129*/, TARGET_VAL(X86ISD::VSRAV),// ->217517
/*217388*/            OPC_RecordChild0, // #1 = $src1
/*217389*/            OPC_MoveChild1,
/*217390*/            OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->217451
/*217394*/              OPC_RecordMemRef,
/*217395*/              OPC_RecordNode, // #2 = 'ld' chained node
/*217396*/              OPC_CheckFoldableChainNode,
/*217397*/              OPC_RecordChild1, // #3 = $src2
/*217398*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*217400*/              OPC_CheckPredicate, 9, // Predicate_load
/*217402*/              OPC_MoveParent,
/*217403*/              OPC_MoveParent,
/*217404*/              OPC_RecordChild2, // #4 = $src0
/*217405*/              OPC_SwitchType /*2 cases */, 20, MVT::v4i32,// ->217428
/*217408*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*217410*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*217413*/                OPC_EmitMergeInputChains1_2,
/*217414*/                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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                          // Dst: (VPSRAVDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*217428*/              /*SwitchType*/ 20, MVT::v4i64,// ->217450
/*217430*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*217432*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*217435*/                OPC_EmitMergeInputChains1_2,
/*217436*/                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>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                          // Dst: (VPSRAVQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*217450*/              0, // EndSwitchType
/*217451*/            /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->217516
/*217454*/              OPC_RecordMemRef,
/*217455*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*217456*/              OPC_CheckFoldableChainNode,
/*217457*/              OPC_RecordChild1, // #3 = $src2
/*217458*/              OPC_Scope, 27, /*->217487*/ // 2 children in Scope
/*217460*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*217462*/                OPC_MoveParent,
/*217463*/                OPC_MoveParent,
/*217464*/                OPC_RecordChild2, // #4 = $src0
/*217465*/                OPC_CheckType, MVT::v4i32,
/*217467*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*217469*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*217472*/                OPC_EmitMergeInputChains1_2,
/*217473*/                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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                          // Dst: (VPSRAVDZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*217487*/              /*Scope*/ 27, /*->217515*/
/*217488*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*217490*/                OPC_MoveParent,
/*217491*/                OPC_MoveParent,
/*217492*/                OPC_RecordChild2, // #4 = $src0
/*217493*/                OPC_CheckType, MVT::v4i64,
/*217495*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*217497*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*217500*/                OPC_EmitMergeInputChains1_2,
/*217501*/                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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                          // Dst: (VPSRAVQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*217515*/              0, /*End of Scope*/
/*217516*/            0, // EndSwitchOpcode
/*217517*/          /*SwitchOpcode*/ 1|128,1/*129*/, TARGET_VAL(X86ISD::VSRLV),// ->217650
/*217521*/            OPC_RecordChild0, // #1 = $src1
/*217522*/            OPC_MoveChild1,
/*217523*/            OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->217584
/*217527*/              OPC_RecordMemRef,
/*217528*/              OPC_RecordNode, // #2 = 'ld' chained node
/*217529*/              OPC_CheckFoldableChainNode,
/*217530*/              OPC_RecordChild1, // #3 = $src2
/*217531*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*217533*/              OPC_CheckPredicate, 9, // Predicate_load
/*217535*/              OPC_MoveParent,
/*217536*/              OPC_MoveParent,
/*217537*/              OPC_RecordChild2, // #4 = $src0
/*217538*/              OPC_SwitchType /*2 cases */, 20, MVT::v4i32,// ->217561
/*217541*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*217543*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*217546*/                OPC_EmitMergeInputChains1_2,
/*217547*/                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, (X86vsrlv:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                          // Dst: (VPSRLVDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*217561*/              /*SwitchType*/ 20, MVT::v4i64,// ->217583
/*217563*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*217565*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*217568*/                OPC_EmitMergeInputChains1_2,
/*217569*/                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, (X86vsrlv:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                          // Dst: (VPSRLVQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*217583*/              0, // EndSwitchType
/*217584*/            /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->217649
/*217587*/              OPC_RecordMemRef,
/*217588*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*217589*/              OPC_CheckFoldableChainNode,
/*217590*/              OPC_RecordChild1, // #3 = $src2
/*217591*/              OPC_Scope, 27, /*->217620*/ // 2 children in Scope
/*217593*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*217595*/                OPC_MoveParent,
/*217596*/                OPC_MoveParent,
/*217597*/                OPC_RecordChild2, // #4 = $src0
/*217598*/                OPC_CheckType, MVT::v4i32,
/*217600*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*217602*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*217605*/                OPC_EmitMergeInputChains1_2,
/*217606*/                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, (X86vsrlv:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                          // Dst: (VPSRLVDZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*217620*/              /*Scope*/ 27, /*->217648*/
/*217621*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*217623*/                OPC_MoveParent,
/*217624*/                OPC_MoveParent,
/*217625*/                OPC_RecordChild2, // #4 = $src0
/*217626*/                OPC_CheckType, MVT::v4i64,
/*217628*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*217630*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*217633*/                OPC_EmitMergeInputChains1_2,
/*217634*/                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, (X86vsrlv:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                          // Dst: (VPSRLVQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*217648*/              0, /*End of Scope*/
/*217649*/            0, // EndSwitchOpcode
/*217650*/          /*SwitchOpcode*/ 10|128,1/*138*/, TARGET_VAL(ISD::ROTR),// ->217792
/*217654*/            OPC_RecordChild0, // #1 = $src1
/*217655*/            OPC_MoveChild1,
/*217656*/            OPC_SwitchOpcode /*2 cases */, 64, TARGET_VAL(ISD::LOAD),// ->217724
/*217660*/              OPC_RecordMemRef,
/*217661*/              OPC_RecordNode, // #2 = 'ld' chained node
/*217662*/              OPC_CheckFoldableChainNode,
/*217663*/              OPC_RecordChild1, // #3 = $src2
/*217664*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*217666*/              OPC_CheckPredicate, 9, // Predicate_load
/*217668*/              OPC_SwitchType /*2 cases */, 25, MVT::v4i32,// ->217696
/*217671*/                OPC_MoveParent,
/*217672*/                OPC_MoveParent,
/*217673*/                OPC_RecordChild2, // #4 = $src0
/*217674*/                OPC_CheckType, MVT::v4i32,
/*217676*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*217678*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*217681*/                OPC_EmitMergeInputChains1_2,
/*217682*/                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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                          // Dst: (VPRORVDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*217696*/              /*SwitchType*/ 25, MVT::v4i64,// ->217723
/*217698*/                OPC_MoveParent,
/*217699*/                OPC_MoveParent,
/*217700*/                OPC_RecordChild2, // #4 = $src0
/*217701*/                OPC_CheckType, MVT::v4i64,
/*217703*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*217705*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*217708*/                OPC_EmitMergeInputChains1_2,
/*217709*/                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>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                          // Dst: (VPRORVQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*217723*/              0, // EndSwitchType
/*217724*/            /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->217791
/*217727*/              OPC_RecordMemRef,
/*217728*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*217729*/              OPC_CheckFoldableChainNode,
/*217730*/              OPC_RecordChild1, // #3 = $src2
/*217731*/              OPC_SwitchType /*2 cases */, 27, MVT::v4i32,// ->217761
/*217734*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*217736*/                OPC_MoveParent,
/*217737*/                OPC_MoveParent,
/*217738*/                OPC_RecordChild2, // #4 = $src0
/*217739*/                OPC_CheckType, MVT::v4i32,
/*217741*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*217743*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*217746*/                OPC_EmitMergeInputChains1_2,
/*217747*/                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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                          // Dst: (VPRORVDZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*217761*/              /*SwitchType*/ 27, MVT::v4i64,// ->217790
/*217763*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*217765*/                OPC_MoveParent,
/*217766*/                OPC_MoveParent,
/*217767*/                OPC_RecordChild2, // #4 = $src0
/*217768*/                OPC_CheckType, MVT::v4i64,
/*217770*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*217772*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*217775*/                OPC_EmitMergeInputChains1_2,
/*217776*/                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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                          // Dst: (VPRORVQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*217790*/              0, // EndSwitchType
/*217791*/            0, // EndSwitchOpcode
/*217792*/          /*SwitchOpcode*/ 10|128,1/*138*/, TARGET_VAL(ISD::ROTL),// ->217934
/*217796*/            OPC_RecordChild0, // #1 = $src1
/*217797*/            OPC_MoveChild1,
/*217798*/            OPC_SwitchOpcode /*2 cases */, 64, TARGET_VAL(ISD::LOAD),// ->217866
/*217802*/              OPC_RecordMemRef,
/*217803*/              OPC_RecordNode, // #2 = 'ld' chained node
/*217804*/              OPC_CheckFoldableChainNode,
/*217805*/              OPC_RecordChild1, // #3 = $src2
/*217806*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*217808*/              OPC_CheckPredicate, 9, // Predicate_load
/*217810*/              OPC_SwitchType /*2 cases */, 25, MVT::v4i32,// ->217838
/*217813*/                OPC_MoveParent,
/*217814*/                OPC_MoveParent,
/*217815*/                OPC_RecordChild2, // #4 = $src0
/*217816*/                OPC_CheckType, MVT::v4i32,
/*217818*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*217820*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*217823*/                OPC_EmitMergeInputChains1_2,
/*217824*/                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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                          // Dst: (VPROLVDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*217838*/              /*SwitchType*/ 25, MVT::v4i64,// ->217865
/*217840*/                OPC_MoveParent,
/*217841*/                OPC_MoveParent,
/*217842*/                OPC_RecordChild2, // #4 = $src0
/*217843*/                OPC_CheckType, MVT::v4i64,
/*217845*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*217847*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*217850*/                OPC_EmitMergeInputChains1_2,
/*217851*/                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>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                          // Dst: (VPROLVQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*217865*/              0, // EndSwitchType
/*217866*/            /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->217933
/*217869*/              OPC_RecordMemRef,
/*217870*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*217871*/              OPC_CheckFoldableChainNode,
/*217872*/              OPC_RecordChild1, // #3 = $src2
/*217873*/              OPC_SwitchType /*2 cases */, 27, MVT::v4i32,// ->217903
/*217876*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*217878*/                OPC_MoveParent,
/*217879*/                OPC_MoveParent,
/*217880*/                OPC_RecordChild2, // #4 = $src0
/*217881*/                OPC_CheckType, MVT::v4i32,
/*217883*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*217885*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*217888*/                OPC_EmitMergeInputChains1_2,
/*217889*/                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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                          // Dst: (VPROLVDZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*217903*/              /*SwitchType*/ 27, MVT::v4i64,// ->217932
/*217905*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*217907*/                OPC_MoveParent,
/*217908*/                OPC_MoveParent,
/*217909*/                OPC_RecordChild2, // #4 = $src0
/*217910*/                OPC_CheckType, MVT::v4i64,
/*217912*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*217914*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*217917*/                OPC_EmitMergeInputChains1_2,
/*217918*/                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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                          // Dst: (VPROLVQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*217932*/              0, // EndSwitchType
/*217933*/            0, // EndSwitchOpcode
/*217934*/          /*SwitchOpcode*/ 74, TARGET_VAL(X86ISD::VPERMV),// ->218011
/*217937*/            OPC_RecordChild0, // #1 = $src1
/*217938*/            OPC_MoveChild1,
/*217939*/            OPC_SwitchOpcode /*2 cases */, 33, TARGET_VAL(ISD::LOAD),// ->217976
/*217943*/              OPC_RecordMemRef,
/*217944*/              OPC_RecordNode, // #2 = 'ld' chained node
/*217945*/              OPC_CheckFoldableChainNode,
/*217946*/              OPC_RecordChild1, // #3 = $src2
/*217947*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*217949*/              OPC_CheckPredicate, 9, // Predicate_load
/*217951*/              OPC_MoveParent,
/*217952*/              OPC_MoveParent,
/*217953*/              OPC_RecordChild2, // #4 = $src0
/*217954*/              OPC_CheckType, MVT::v4i64,
/*217956*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*217958*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*217961*/              OPC_EmitMergeInputChains1_2,
/*217962*/              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>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                        // Dst: (VPERMQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*217976*/            /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->218010
/*217979*/              OPC_RecordMemRef,
/*217980*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*217981*/              OPC_CheckFoldableChainNode,
/*217982*/              OPC_RecordChild1, // #3 = $src2
/*217983*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*217985*/              OPC_MoveParent,
/*217986*/              OPC_MoveParent,
/*217987*/              OPC_RecordChild2, // #4 = $src0
/*217988*/              OPC_CheckType, MVT::v4i64,
/*217990*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*217992*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*217995*/              OPC_EmitMergeInputChains1_2,
/*217996*/              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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                        // Dst: (VPERMQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*218010*/            0, // EndSwitchOpcode
/*218011*/          /*SwitchOpcode*/ 33|128,1/*161*/, TARGET_VAL(X86ISD::VPMADD52L),// ->218176
/*218015*/            OPC_Scope, 78, /*->218095*/ // 2 children in Scope
/*218017*/              OPC_RecordChild0, // #1 = $src2
/*218018*/              OPC_MoveChild1,
/*218019*/              OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->218058
/*218023*/                OPC_RecordMemRef,
/*218024*/                OPC_RecordNode, // #2 = 'ld' chained node
/*218025*/                OPC_CheckFoldableChainNode,
/*218026*/                OPC_RecordChild1, // #3 = $src3
/*218027*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*218029*/                OPC_CheckPredicate, 9, // Predicate_load
/*218031*/                OPC_MoveParent,
/*218032*/                OPC_RecordChild2, // #4 = $src1
/*218033*/                OPC_MoveParent,
/*218034*/                OPC_CheckChild2Same, 4,
/*218036*/                OPC_CheckType, MVT::v4i64,
/*218038*/                OPC_CheckPatternPredicate, 184, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*218040*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*218043*/                OPC_EmitMergeInputChains1_2,
/*218044*/                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>>, VR256X:{ *:[v4i64] }:$src1), VR256X:{ *:[v4i64] }:$src1) - Complexity = 28
                          // Dst: (VPMADD52LUQZ256mk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*218058*/              /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->218094
/*218061*/                OPC_RecordMemRef,
/*218062*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*218063*/                OPC_CheckFoldableChainNode,
/*218064*/                OPC_RecordChild1, // #3 = $src3
/*218065*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*218067*/                OPC_MoveParent,
/*218068*/                OPC_RecordChild2, // #4 = $src1
/*218069*/                OPC_MoveParent,
/*218070*/                OPC_CheckChild2Same, 4,
/*218072*/                OPC_CheckType, MVT::v4i64,
/*218074*/                OPC_CheckPatternPredicate, 184, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*218076*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*218079*/                OPC_EmitMergeInputChains1_2,
/*218080*/                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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src1), VR256X:{ *:[v4i64] }:$src1) - Complexity = 28
                          // Dst: (VPMADD52LUQZ256mbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*218094*/              0, // EndSwitchOpcode
/*218095*/            /*Scope*/ 79, /*->218175*/
/*218096*/              OPC_MoveChild0,
/*218097*/              OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->218137
/*218101*/                OPC_RecordMemRef,
/*218102*/                OPC_RecordNode, // #1 = 'ld' chained node
/*218103*/                OPC_CheckFoldableChainNode,
/*218104*/                OPC_RecordChild1, // #2 = $src3
/*218105*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*218107*/                OPC_CheckPredicate, 9, // Predicate_load
/*218109*/                OPC_MoveParent,
/*218110*/                OPC_RecordChild1, // #3 = $src2
/*218111*/                OPC_RecordChild2, // #4 = $src1
/*218112*/                OPC_MoveParent,
/*218113*/                OPC_CheckChild2Same, 4,
/*218115*/                OPC_CheckType, MVT::v4i64,
/*218117*/                OPC_CheckPatternPredicate, 184, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*218119*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*218122*/                OPC_EmitMergeInputChains1_1,
/*218123*/                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>>, 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)
/*218137*/              /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->218174
/*218140*/                OPC_RecordMemRef,
/*218141*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*218142*/                OPC_CheckFoldableChainNode,
/*218143*/                OPC_RecordChild1, // #2 = $src3
/*218144*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*218146*/                OPC_MoveParent,
/*218147*/                OPC_RecordChild1, // #3 = $src2
/*218148*/                OPC_RecordChild2, // #4 = $src1
/*218149*/                OPC_MoveParent,
/*218150*/                OPC_CheckChild2Same, 4,
/*218152*/                OPC_CheckType, MVT::v4i64,
/*218154*/                OPC_CheckPatternPredicate, 184, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*218156*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*218159*/                OPC_EmitMergeInputChains1_1,
/*218160*/                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] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src1), VR256X:{ *:[v4i64] }:$src1) - Complexity = 28
                          // Dst: (VPMADD52LUQZ256mbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*218174*/              0, // EndSwitchOpcode
/*218175*/            0, /*End of Scope*/
/*218176*/          /*SwitchOpcode*/ 33|128,1/*161*/, TARGET_VAL(X86ISD::VPMADD52H),// ->218341
/*218180*/            OPC_Scope, 78, /*->218260*/ // 2 children in Scope
/*218182*/              OPC_RecordChild0, // #1 = $src2
/*218183*/              OPC_MoveChild1,
/*218184*/              OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->218223
/*218188*/                OPC_RecordMemRef,
/*218189*/                OPC_RecordNode, // #2 = 'ld' chained node
/*218190*/                OPC_CheckFoldableChainNode,
/*218191*/                OPC_RecordChild1, // #3 = $src3
/*218192*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*218194*/                OPC_CheckPredicate, 9, // Predicate_load
/*218196*/                OPC_MoveParent,
/*218197*/                OPC_RecordChild2, // #4 = $src1
/*218198*/                OPC_MoveParent,
/*218199*/                OPC_CheckChild2Same, 4,
/*218201*/                OPC_CheckType, MVT::v4i64,
/*218203*/                OPC_CheckPatternPredicate, 184, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*218205*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*218208*/                OPC_EmitMergeInputChains1_2,
/*218209*/                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>>, VR256X:{ *:[v4i64] }:$src1), VR256X:{ *:[v4i64] }:$src1) - Complexity = 28
                          // Dst: (VPMADD52HUQZ256mk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*218223*/              /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->218259
/*218226*/                OPC_RecordMemRef,
/*218227*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*218228*/                OPC_CheckFoldableChainNode,
/*218229*/                OPC_RecordChild1, // #3 = $src3
/*218230*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*218232*/                OPC_MoveParent,
/*218233*/                OPC_RecordChild2, // #4 = $src1
/*218234*/                OPC_MoveParent,
/*218235*/                OPC_CheckChild2Same, 4,
/*218237*/                OPC_CheckType, MVT::v4i64,
/*218239*/                OPC_CheckPatternPredicate, 184, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*218241*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*218244*/                OPC_EmitMergeInputChains1_2,
/*218245*/                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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src1), VR256X:{ *:[v4i64] }:$src1) - Complexity = 28
                          // Dst: (VPMADD52HUQZ256mbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*218259*/              0, // EndSwitchOpcode
/*218260*/            /*Scope*/ 79, /*->218340*/
/*218261*/              OPC_MoveChild0,
/*218262*/              OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->218302
/*218266*/                OPC_RecordMemRef,
/*218267*/                OPC_RecordNode, // #1 = 'ld' chained node
/*218268*/                OPC_CheckFoldableChainNode,
/*218269*/                OPC_RecordChild1, // #2 = $src3
/*218270*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*218272*/                OPC_CheckPredicate, 9, // Predicate_load
/*218274*/                OPC_MoveParent,
/*218275*/                OPC_RecordChild1, // #3 = $src2
/*218276*/                OPC_RecordChild2, // #4 = $src1
/*218277*/                OPC_MoveParent,
/*218278*/                OPC_CheckChild2Same, 4,
/*218280*/                OPC_CheckType, MVT::v4i64,
/*218282*/                OPC_CheckPatternPredicate, 184, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*218284*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*218287*/                OPC_EmitMergeInputChains1_1,
/*218288*/                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>>, 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)
/*218302*/              /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->218339
/*218305*/                OPC_RecordMemRef,
/*218306*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*218307*/                OPC_CheckFoldableChainNode,
/*218308*/                OPC_RecordChild1, // #2 = $src3
/*218309*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*218311*/                OPC_MoveParent,
/*218312*/                OPC_RecordChild1, // #3 = $src2
/*218313*/                OPC_RecordChild2, // #4 = $src1
/*218314*/                OPC_MoveParent,
/*218315*/                OPC_CheckChild2Same, 4,
/*218317*/                OPC_CheckType, MVT::v4i64,
/*218319*/                OPC_CheckPatternPredicate, 184, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*218321*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*218324*/                OPC_EmitMergeInputChains1_1,
/*218325*/                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] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src1), VR256X:{ *:[v4i64] }:$src1) - Complexity = 28
                          // Dst: (VPMADD52HUQZ256mbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*218339*/              0, // EndSwitchOpcode
/*218340*/            0, /*End of Scope*/
/*218341*/          /*SwitchOpcode*/ 123|128,1/*251*/, TARGET_VAL(X86ISD::STRICT_CVTTP2SI),// ->218596
/*218345*/            OPC_RecordNode, // #1 = 'X86strict_cvttp2si' chained node
/*218346*/            OPC_CheckFoldableChainNode,
/*218347*/            OPC_MoveChild1,
/*218348*/            OPC_SwitchOpcode /*2 cases */, 120, TARGET_VAL(ISD::LOAD),// ->218472
/*218352*/              OPC_RecordMemRef,
/*218353*/              OPC_RecordNode, // #2 = 'ld' chained node
/*218354*/              OPC_CheckFoldableChainNode,
/*218355*/              OPC_RecordChild1, // #3 = $src
/*218356*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*218358*/              OPC_CheckPredicate, 9, // Predicate_load
/*218360*/              OPC_SwitchType /*2 cases */, 53, MVT::v4f32,// ->218416
/*218363*/                OPC_MoveParent,
/*218364*/                OPC_MoveParent,
/*218365*/                OPC_RecordChild2, // #4 = $src0
/*218366*/                OPC_SwitchType /*2 cases */, 22, MVT::v4i32,// ->218391
/*218369*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*218371*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*218374*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*218378*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_cvttp2si:{ *:[v4i32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPS2DQZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*218391*/                /*SwitchType*/ 22, MVT::v4i64,// ->218415
/*218393*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*218395*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*218398*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*218402*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i64, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_cvttp2si:{ *:[v4i64] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPS2QQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*218415*/                0, // EndSwitchType
/*218416*/              /*SwitchType*/ 53, MVT::v4f64,// ->218471
/*218418*/                OPC_MoveParent,
/*218419*/                OPC_MoveParent,
/*218420*/                OPC_RecordChild2, // #4 = $src0
/*218421*/                OPC_SwitchType /*2 cases */, 22, MVT::v4i32,// ->218446
/*218424*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*218426*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*218429*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*218433*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_cvttp2si:{ *:[v4i32] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPD2DQZ256rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*218446*/                /*SwitchType*/ 22, MVT::v4i64,// ->218470
/*218448*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*218450*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*218453*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*218457*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i64, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_cvttp2si:{ *:[v4i64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPD2QQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*218470*/                0, // EndSwitchType
/*218471*/              0, // EndSwitchType
/*218472*/            /*SwitchOpcode*/ 120, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->218595
/*218475*/              OPC_RecordMemRef,
/*218476*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*218477*/              OPC_CheckFoldableChainNode,
/*218478*/              OPC_RecordChild1, // #3 = $src
/*218479*/              OPC_SwitchType /*2 cases */, 55, MVT::v4f32,// ->218537
/*218482*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*218484*/                OPC_MoveParent,
/*218485*/                OPC_MoveParent,
/*218486*/                OPC_RecordChild2, // #4 = $src0
/*218487*/                OPC_SwitchType /*2 cases */, 22, MVT::v4i32,// ->218512
/*218490*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*218492*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*218495*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*218499*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_cvttp2si:{ *:[v4i32] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPS2DQZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*218512*/                /*SwitchType*/ 22, MVT::v4i64,// ->218536
/*218514*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*218516*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*218519*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*218523*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i64, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_cvttp2si:{ *:[v4i64] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPS2QQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*218536*/                0, // EndSwitchType
/*218537*/              /*SwitchType*/ 55, MVT::v4f64,// ->218594
/*218539*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*218541*/                OPC_MoveParent,
/*218542*/                OPC_MoveParent,
/*218543*/                OPC_RecordChild2, // #4 = $src0
/*218544*/                OPC_SwitchType /*2 cases */, 22, MVT::v4i32,// ->218569
/*218547*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*218549*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*218552*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*218556*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_cvttp2si:{ *:[v4i32] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPD2DQZ256rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*218569*/                /*SwitchType*/ 22, MVT::v4i64,// ->218593
/*218571*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*218573*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*218576*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*218580*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i64, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_cvttp2si:{ *:[v4i64] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPD2QQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*218593*/                0, // EndSwitchType
/*218594*/              0, // EndSwitchType
/*218595*/            0, // EndSwitchOpcode
/*218596*/          /*SwitchOpcode*/ 97|128,1/*225*/, TARGET_VAL(X86ISD::CVTTP2SI),// ->218825
/*218600*/            OPC_MoveChild0,
/*218601*/            OPC_SwitchOpcode /*2 cases */, 108, TARGET_VAL(ISD::LOAD),// ->218713
/*218605*/              OPC_RecordMemRef,
/*218606*/              OPC_RecordNode, // #1 = 'ld' chained node
/*218607*/              OPC_CheckFoldableChainNode,
/*218608*/              OPC_RecordChild1, // #2 = $src
/*218609*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*218611*/              OPC_CheckPredicate, 9, // Predicate_load
/*218613*/              OPC_SwitchType /*2 cases */, 47, MVT::v4f32,// ->218663
/*218616*/                OPC_MoveParent,
/*218617*/                OPC_MoveParent,
/*218618*/                OPC_RecordChild2, // #3 = $src0
/*218619*/                OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->218641
/*218622*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*218624*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*218627*/                  OPC_EmitMergeInputChains1_1,
/*218628*/                  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>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPS2DQZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*218641*/                /*SwitchType*/ 19, MVT::v4i64,// ->218662
/*218643*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*218645*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*218648*/                  OPC_EmitMergeInputChains1_1,
/*218649*/                  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>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPS2QQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*218662*/                0, // EndSwitchType
/*218663*/              /*SwitchType*/ 47, MVT::v4f64,// ->218712
/*218665*/                OPC_MoveParent,
/*218666*/                OPC_MoveParent,
/*218667*/                OPC_RecordChild2, // #3 = $src0
/*218668*/                OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->218690
/*218671*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*218673*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*218676*/                  OPC_EmitMergeInputChains1_1,
/*218677*/                  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>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPD2DQZ256rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*218690*/                /*SwitchType*/ 19, MVT::v4i64,// ->218711
/*218692*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*218694*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*218697*/                  OPC_EmitMergeInputChains1_1,
/*218698*/                  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>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPD2QQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*218711*/                0, // EndSwitchType
/*218712*/              0, // EndSwitchType
/*218713*/            /*SwitchOpcode*/ 108, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->218824
/*218716*/              OPC_RecordMemRef,
/*218717*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*218718*/              OPC_CheckFoldableChainNode,
/*218719*/              OPC_RecordChild1, // #2 = $src
/*218720*/              OPC_SwitchType /*2 cases */, 49, MVT::v4f32,// ->218772
/*218723*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*218725*/                OPC_MoveParent,
/*218726*/                OPC_MoveParent,
/*218727*/                OPC_RecordChild2, // #3 = $src0
/*218728*/                OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->218750
/*218731*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*218733*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*218736*/                  OPC_EmitMergeInputChains1_1,
/*218737*/                  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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPS2DQZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*218750*/                /*SwitchType*/ 19, MVT::v4i64,// ->218771
/*218752*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*218754*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*218757*/                  OPC_EmitMergeInputChains1_1,
/*218758*/                  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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPS2QQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*218771*/                0, // EndSwitchType
/*218772*/              /*SwitchType*/ 49, MVT::v4f64,// ->218823
/*218774*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*218776*/                OPC_MoveParent,
/*218777*/                OPC_MoveParent,
/*218778*/                OPC_RecordChild2, // #3 = $src0
/*218779*/                OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->218801
/*218782*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*218784*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*218787*/                  OPC_EmitMergeInputChains1_1,
/*218788*/                  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] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPD2DQZ256rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*218801*/                /*SwitchType*/ 19, MVT::v4i64,// ->218822
/*218803*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*218805*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*218808*/                  OPC_EmitMergeInputChains1_1,
/*218809*/                  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] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPD2QQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*218822*/                0, // EndSwitchType
/*218823*/              0, // EndSwitchType
/*218824*/            0, // EndSwitchOpcode
/*218825*/          /*SwitchOpcode*/ 123|128,1/*251*/, TARGET_VAL(X86ISD::STRICT_CVTTP2UI),// ->219080
/*218829*/            OPC_RecordNode, // #1 = 'X86strict_cvttp2ui' chained node
/*218830*/            OPC_CheckFoldableChainNode,
/*218831*/            OPC_MoveChild1,
/*218832*/            OPC_SwitchOpcode /*2 cases */, 120, TARGET_VAL(ISD::LOAD),// ->218956
/*218836*/              OPC_RecordMemRef,
/*218837*/              OPC_RecordNode, // #2 = 'ld' chained node
/*218838*/              OPC_CheckFoldableChainNode,
/*218839*/              OPC_RecordChild1, // #3 = $src
/*218840*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*218842*/              OPC_CheckPredicate, 9, // Predicate_load
/*218844*/              OPC_SwitchType /*2 cases */, 53, MVT::v4f32,// ->218900
/*218847*/                OPC_MoveParent,
/*218848*/                OPC_MoveParent,
/*218849*/                OPC_RecordChild2, // #4 = $src0
/*218850*/                OPC_SwitchType /*2 cases */, 22, MVT::v4i32,// ->218875
/*218853*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*218855*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*218858*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*218862*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_cvttp2ui:{ *:[v4i32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPS2UDQZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*218875*/                /*SwitchType*/ 22, MVT::v4i64,// ->218899
/*218877*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*218879*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*218882*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*218886*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i64, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_cvttp2ui:{ *:[v4i64] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPS2UQQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*218899*/                0, // EndSwitchType
/*218900*/              /*SwitchType*/ 53, MVT::v4f64,// ->218955
/*218902*/                OPC_MoveParent,
/*218903*/                OPC_MoveParent,
/*218904*/                OPC_RecordChild2, // #4 = $src0
/*218905*/                OPC_SwitchType /*2 cases */, 22, MVT::v4i32,// ->218930
/*218908*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*218910*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*218913*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*218917*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_cvttp2ui:{ *:[v4i32] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPD2UDQZ256rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*218930*/                /*SwitchType*/ 22, MVT::v4i64,// ->218954
/*218932*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*218934*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*218937*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*218941*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i64, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_cvttp2ui:{ *:[v4i64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPD2UQQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*218954*/                0, // EndSwitchType
/*218955*/              0, // EndSwitchType
/*218956*/            /*SwitchOpcode*/ 120, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->219079
/*218959*/              OPC_RecordMemRef,
/*218960*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*218961*/              OPC_CheckFoldableChainNode,
/*218962*/              OPC_RecordChild1, // #3 = $src
/*218963*/              OPC_SwitchType /*2 cases */, 55, MVT::v4f32,// ->219021
/*218966*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*218968*/                OPC_MoveParent,
/*218969*/                OPC_MoveParent,
/*218970*/                OPC_RecordChild2, // #4 = $src0
/*218971*/                OPC_SwitchType /*2 cases */, 22, MVT::v4i32,// ->218996
/*218974*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*218976*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*218979*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*218983*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_cvttp2ui:{ *:[v4i32] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPS2UDQZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*218996*/                /*SwitchType*/ 22, MVT::v4i64,// ->219020
/*218998*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*219000*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*219003*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*219007*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i64, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_cvttp2ui:{ *:[v4i64] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPS2UQQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*219020*/                0, // EndSwitchType
/*219021*/              /*SwitchType*/ 55, MVT::v4f64,// ->219078
/*219023*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*219025*/                OPC_MoveParent,
/*219026*/                OPC_MoveParent,
/*219027*/                OPC_RecordChild2, // #4 = $src0
/*219028*/                OPC_SwitchType /*2 cases */, 22, MVT::v4i32,// ->219053
/*219031*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*219033*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*219036*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*219040*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_cvttp2ui:{ *:[v4i32] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPD2UDQZ256rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*219053*/                /*SwitchType*/ 22, MVT::v4i64,// ->219077
/*219055*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*219057*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*219060*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*219064*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i64, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_cvttp2ui:{ *:[v4i64] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPD2UQQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*219077*/                0, // EndSwitchType
/*219078*/              0, // EndSwitchType
/*219079*/            0, // EndSwitchOpcode
/*219080*/          /*SwitchOpcode*/ 97|128,1/*225*/, TARGET_VAL(X86ISD::CVTTP2UI),// ->219309
/*219084*/            OPC_MoveChild0,
/*219085*/            OPC_SwitchOpcode /*2 cases */, 108, TARGET_VAL(ISD::LOAD),// ->219197
/*219089*/              OPC_RecordMemRef,
/*219090*/              OPC_RecordNode, // #1 = 'ld' chained node
/*219091*/              OPC_CheckFoldableChainNode,
/*219092*/              OPC_RecordChild1, // #2 = $src
/*219093*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*219095*/              OPC_CheckPredicate, 9, // Predicate_load
/*219097*/              OPC_SwitchType /*2 cases */, 47, MVT::v4f32,// ->219147
/*219100*/                OPC_MoveParent,
/*219101*/                OPC_MoveParent,
/*219102*/                OPC_RecordChild2, // #3 = $src0
/*219103*/                OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->219125
/*219106*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*219108*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*219111*/                  OPC_EmitMergeInputChains1_1,
/*219112*/                  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>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPS2UDQZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*219125*/                /*SwitchType*/ 19, MVT::v4i64,// ->219146
/*219127*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*219129*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*219132*/                  OPC_EmitMergeInputChains1_1,
/*219133*/                  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>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPS2UQQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*219146*/                0, // EndSwitchType
/*219147*/              /*SwitchType*/ 47, MVT::v4f64,// ->219196
/*219149*/                OPC_MoveParent,
/*219150*/                OPC_MoveParent,
/*219151*/                OPC_RecordChild2, // #3 = $src0
/*219152*/                OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->219174
/*219155*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*219157*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*219160*/                  OPC_EmitMergeInputChains1_1,
/*219161*/                  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>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPD2UDQZ256rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*219174*/                /*SwitchType*/ 19, MVT::v4i64,// ->219195
/*219176*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*219178*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*219181*/                  OPC_EmitMergeInputChains1_1,
/*219182*/                  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>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPD2UQQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*219195*/                0, // EndSwitchType
/*219196*/              0, // EndSwitchType
/*219197*/            /*SwitchOpcode*/ 108, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->219308
/*219200*/              OPC_RecordMemRef,
/*219201*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*219202*/              OPC_CheckFoldableChainNode,
/*219203*/              OPC_RecordChild1, // #2 = $src
/*219204*/              OPC_SwitchType /*2 cases */, 49, MVT::v4f32,// ->219256
/*219207*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*219209*/                OPC_MoveParent,
/*219210*/                OPC_MoveParent,
/*219211*/                OPC_RecordChild2, // #3 = $src0
/*219212*/                OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->219234
/*219215*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*219217*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*219220*/                  OPC_EmitMergeInputChains1_1,
/*219221*/                  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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPS2UDQZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*219234*/                /*SwitchType*/ 19, MVT::v4i64,// ->219255
/*219236*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*219238*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*219241*/                  OPC_EmitMergeInputChains1_1,
/*219242*/                  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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPS2UQQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*219255*/                0, // EndSwitchType
/*219256*/              /*SwitchType*/ 49, MVT::v4f64,// ->219307
/*219258*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*219260*/                OPC_MoveParent,
/*219261*/                OPC_MoveParent,
/*219262*/                OPC_RecordChild2, // #3 = $src0
/*219263*/                OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->219285
/*219266*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*219268*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*219271*/                  OPC_EmitMergeInputChains1_1,
/*219272*/                  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] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPD2UDQZ256rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*219285*/                /*SwitchType*/ 19, MVT::v4i64,// ->219306
/*219287*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*219289*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*219292*/                  OPC_EmitMergeInputChains1_1,
/*219293*/                  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] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPD2UQQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*219306*/                0, // EndSwitchType
/*219307*/              0, // EndSwitchType
/*219308*/            0, // EndSwitchOpcode
/*219309*/          /*SwitchOpcode*/ 97|128,1/*225*/, TARGET_VAL(X86ISD::CVTP2SI),// ->219538
/*219313*/            OPC_MoveChild0,
/*219314*/            OPC_SwitchOpcode /*2 cases */, 108, TARGET_VAL(ISD::LOAD),// ->219426
/*219318*/              OPC_RecordMemRef,
/*219319*/              OPC_RecordNode, // #1 = 'ld' chained node
/*219320*/              OPC_CheckFoldableChainNode,
/*219321*/              OPC_RecordChild1, // #2 = $src
/*219322*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*219324*/              OPC_CheckPredicate, 9, // Predicate_load
/*219326*/              OPC_SwitchType /*2 cases */, 47, MVT::v4f32,// ->219376
/*219329*/                OPC_MoveParent,
/*219330*/                OPC_MoveParent,
/*219331*/                OPC_RecordChild2, // #3 = $src0
/*219332*/                OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->219354
/*219335*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*219337*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*219340*/                  OPC_EmitMergeInputChains1_1,
/*219341*/                  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>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VCVTPS2DQZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*219354*/                /*SwitchType*/ 19, MVT::v4i64,// ->219375
/*219356*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*219358*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*219361*/                  OPC_EmitMergeInputChains1_1,
/*219362*/                  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>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTPS2QQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*219375*/                0, // EndSwitchType
/*219376*/              /*SwitchType*/ 47, MVT::v4f64,// ->219425
/*219378*/                OPC_MoveParent,
/*219379*/                OPC_MoveParent,
/*219380*/                OPC_RecordChild2, // #3 = $src0
/*219381*/                OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->219403
/*219384*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*219386*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*219389*/                  OPC_EmitMergeInputChains1_1,
/*219390*/                  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>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VCVTPD2DQZ256rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*219403*/                /*SwitchType*/ 19, MVT::v4i64,// ->219424
/*219405*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*219407*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*219410*/                  OPC_EmitMergeInputChains1_1,
/*219411*/                  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>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTPD2QQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*219424*/                0, // EndSwitchType
/*219425*/              0, // EndSwitchType
/*219426*/            /*SwitchOpcode*/ 108, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->219537
/*219429*/              OPC_RecordMemRef,
/*219430*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*219431*/              OPC_CheckFoldableChainNode,
/*219432*/              OPC_RecordChild1, // #2 = $src
/*219433*/              OPC_SwitchType /*2 cases */, 49, MVT::v4f32,// ->219485
/*219436*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*219438*/                OPC_MoveParent,
/*219439*/                OPC_MoveParent,
/*219440*/                OPC_RecordChild2, // #3 = $src0
/*219441*/                OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->219463
/*219444*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*219446*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*219449*/                  OPC_EmitMergeInputChains1_1,
/*219450*/                  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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VCVTPS2DQZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*219463*/                /*SwitchType*/ 19, MVT::v4i64,// ->219484
/*219465*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*219467*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*219470*/                  OPC_EmitMergeInputChains1_1,
/*219471*/                  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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTPS2QQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*219484*/                0, // EndSwitchType
/*219485*/              /*SwitchType*/ 49, MVT::v4f64,// ->219536
/*219487*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*219489*/                OPC_MoveParent,
/*219490*/                OPC_MoveParent,
/*219491*/                OPC_RecordChild2, // #3 = $src0
/*219492*/                OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->219514
/*219495*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*219497*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*219500*/                  OPC_EmitMergeInputChains1_1,
/*219501*/                  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] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VCVTPD2DQZ256rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*219514*/                /*SwitchType*/ 19, MVT::v4i64,// ->219535
/*219516*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*219518*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*219521*/                  OPC_EmitMergeInputChains1_1,
/*219522*/                  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] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTPD2QQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*219535*/                0, // EndSwitchType
/*219536*/              0, // EndSwitchType
/*219537*/            0, // EndSwitchOpcode
/*219538*/          /*SwitchOpcode*/ 97|128,1/*225*/, TARGET_VAL(X86ISD::CVTP2UI),// ->219767
/*219542*/            OPC_MoveChild0,
/*219543*/            OPC_SwitchOpcode /*2 cases */, 108, TARGET_VAL(ISD::LOAD),// ->219655
/*219547*/              OPC_RecordMemRef,
/*219548*/              OPC_RecordNode, // #1 = 'ld' chained node
/*219549*/              OPC_CheckFoldableChainNode,
/*219550*/              OPC_RecordChild1, // #2 = $src
/*219551*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*219553*/              OPC_CheckPredicate, 9, // Predicate_load
/*219555*/              OPC_SwitchType /*2 cases */, 47, MVT::v4f32,// ->219605
/*219558*/                OPC_MoveParent,
/*219559*/                OPC_MoveParent,
/*219560*/                OPC_RecordChild2, // #3 = $src0
/*219561*/                OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->219583
/*219564*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*219566*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*219569*/                  OPC_EmitMergeInputChains1_1,
/*219570*/                  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>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VCVTPS2UDQZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*219583*/                /*SwitchType*/ 19, MVT::v4i64,// ->219604
/*219585*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*219587*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*219590*/                  OPC_EmitMergeInputChains1_1,
/*219591*/                  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>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTPS2UQQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*219604*/                0, // EndSwitchType
/*219605*/              /*SwitchType*/ 47, MVT::v4f64,// ->219654
/*219607*/                OPC_MoveParent,
/*219608*/                OPC_MoveParent,
/*219609*/                OPC_RecordChild2, // #3 = $src0
/*219610*/                OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->219632
/*219613*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*219615*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*219618*/                  OPC_EmitMergeInputChains1_1,
/*219619*/                  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>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VCVTPD2UDQZ256rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*219632*/                /*SwitchType*/ 19, MVT::v4i64,// ->219653
/*219634*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*219636*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*219639*/                  OPC_EmitMergeInputChains1_1,
/*219640*/                  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>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTPD2UQQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*219653*/                0, // EndSwitchType
/*219654*/              0, // EndSwitchType
/*219655*/            /*SwitchOpcode*/ 108, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->219766
/*219658*/              OPC_RecordMemRef,
/*219659*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*219660*/              OPC_CheckFoldableChainNode,
/*219661*/              OPC_RecordChild1, // #2 = $src
/*219662*/              OPC_SwitchType /*2 cases */, 49, MVT::v4f32,// ->219714
/*219665*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*219667*/                OPC_MoveParent,
/*219668*/                OPC_MoveParent,
/*219669*/                OPC_RecordChild2, // #3 = $src0
/*219670*/                OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->219692
/*219673*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*219675*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*219678*/                  OPC_EmitMergeInputChains1_1,
/*219679*/                  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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VCVTPS2UDQZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*219692*/                /*SwitchType*/ 19, MVT::v4i64,// ->219713
/*219694*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*219696*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*219699*/                  OPC_EmitMergeInputChains1_1,
/*219700*/                  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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTPS2UQQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*219713*/                0, // EndSwitchType
/*219714*/              /*SwitchType*/ 49, MVT::v4f64,// ->219765
/*219716*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*219718*/                OPC_MoveParent,
/*219719*/                OPC_MoveParent,
/*219720*/                OPC_RecordChild2, // #3 = $src0
/*219721*/                OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->219743
/*219724*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*219726*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*219729*/                  OPC_EmitMergeInputChains1_1,
/*219730*/                  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] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                            // Dst: (VCVTPD2UDQZ256rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*219743*/                /*SwitchType*/ 19, MVT::v4i64,// ->219764
/*219745*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*219747*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*219750*/                  OPC_EmitMergeInputChains1_1,
/*219751*/                  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] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTPD2UQQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*219764*/                0, // EndSwitchType
/*219765*/              0, // EndSwitchType
/*219766*/            0, // EndSwitchOpcode
/*219767*/          /*SwitchOpcode*/ 124, TARGET_VAL(ISD::ABS),// ->219894
/*219770*/            OPC_MoveChild0,
/*219771*/            OPC_SwitchOpcode /*2 cases */, 55, TARGET_VAL(ISD::LOAD),// ->219830
/*219775*/              OPC_RecordMemRef,
/*219776*/              OPC_RecordNode, // #1 = 'ld' chained node
/*219777*/              OPC_CheckFoldableChainNode,
/*219778*/              OPC_RecordChild1, // #2 = $src1
/*219779*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*219781*/              OPC_CheckPredicate, 9, // Predicate_load
/*219783*/              OPC_MoveParent,
/*219784*/              OPC_MoveParent,
/*219785*/              OPC_RecordChild2, // #3 = $src0
/*219786*/              OPC_SwitchType /*2 cases */, 19, MVT::v4i64,// ->219808
/*219789*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*219791*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*219794*/                OPC_EmitMergeInputChains1_1,
/*219795*/                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>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                          // Dst: (VPABSQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*219808*/              /*SwitchType*/ 19, MVT::v4i32,// ->219829
/*219810*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*219812*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*219815*/                OPC_EmitMergeInputChains1_1,
/*219816*/                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] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                          // Dst: (VPABSDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*219829*/              0, // EndSwitchType
/*219830*/            /*SwitchOpcode*/ 60, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->219893
/*219833*/              OPC_RecordMemRef,
/*219834*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*219835*/              OPC_CheckFoldableChainNode,
/*219836*/              OPC_RecordChild1, // #2 = $src1
/*219837*/              OPC_Scope, 26, /*->219865*/ // 2 children in Scope
/*219839*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*219841*/                OPC_MoveParent,
/*219842*/                OPC_MoveParent,
/*219843*/                OPC_RecordChild2, // #3 = $src0
/*219844*/                OPC_CheckType, MVT::v4i64,
/*219846*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*219848*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*219851*/                OPC_EmitMergeInputChains1_1,
/*219852*/                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] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                          // Dst: (VPABSQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*219865*/              /*Scope*/ 26, /*->219892*/
/*219866*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*219868*/                OPC_MoveParent,
/*219869*/                OPC_MoveParent,
/*219870*/                OPC_RecordChild2, // #3 = $src0
/*219871*/                OPC_CheckType, MVT::v4i32,
/*219873*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*219875*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*219878*/                OPC_EmitMergeInputChains1_1,
/*219879*/                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] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                          // Dst: (VPABSDZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*219892*/              0, /*End of Scope*/
/*219893*/            0, // EndSwitchOpcode
/*219894*/          /*SwitchOpcode*/ 5|128,1/*133*/, TARGET_VAL(ISD::CTLZ),// ->220031
/*219898*/            OPC_MoveChild0,
/*219899*/            OPC_SwitchOpcode /*2 cases */, 62, TARGET_VAL(ISD::LOAD),// ->219965
/*219903*/              OPC_RecordMemRef,
/*219904*/              OPC_RecordNode, // #1 = 'ld' chained node
/*219905*/              OPC_CheckFoldableChainNode,
/*219906*/              OPC_RecordChild1, // #2 = $src1
/*219907*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*219909*/              OPC_CheckPredicate, 9, // Predicate_load
/*219911*/              OPC_SwitchType /*2 cases */, 24, MVT::v4i64,// ->219938
/*219914*/                OPC_MoveParent,
/*219915*/                OPC_MoveParent,
/*219916*/                OPC_RecordChild2, // #3 = $src0
/*219917*/                OPC_CheckType, MVT::v4i64,
/*219919*/                OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*219921*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*219924*/                OPC_EmitMergeInputChains1_1,
/*219925*/                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>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                          // Dst: (VPLZCNTQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*219938*/              /*SwitchType*/ 24, MVT::v4i32,// ->219964
/*219940*/                OPC_MoveParent,
/*219941*/                OPC_MoveParent,
/*219942*/                OPC_RecordChild2, // #3 = $src0
/*219943*/                OPC_CheckType, MVT::v4i32,
/*219945*/                OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*219947*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*219950*/                OPC_EmitMergeInputChains1_1,
/*219951*/                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] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                          // Dst: (VPLZCNTDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*219964*/              0, // EndSwitchType
/*219965*/            /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->220030
/*219968*/              OPC_RecordMemRef,
/*219969*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*219970*/              OPC_CheckFoldableChainNode,
/*219971*/              OPC_RecordChild1, // #2 = $src1
/*219972*/              OPC_SwitchType /*2 cases */, 26, MVT::v4i64,// ->220001
/*219975*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*219977*/                OPC_MoveParent,
/*219978*/                OPC_MoveParent,
/*219979*/                OPC_RecordChild2, // #3 = $src0
/*219980*/                OPC_CheckType, MVT::v4i64,
/*219982*/                OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*219984*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*219987*/                OPC_EmitMergeInputChains1_1,
/*219988*/                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] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                          // Dst: (VPLZCNTQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*220001*/              /*SwitchType*/ 26, MVT::v4i32,// ->220029
/*220003*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*220005*/                OPC_MoveParent,
/*220006*/                OPC_MoveParent,
/*220007*/                OPC_RecordChild2, // #3 = $src0
/*220008*/                OPC_CheckType, MVT::v4i32,
/*220010*/                OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*220012*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*220015*/                OPC_EmitMergeInputChains1_1,
/*220016*/                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] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                          // Dst: (VPLZCNTDZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*220029*/              0, // EndSwitchType
/*220030*/            0, // EndSwitchOpcode
/*220031*/          /*SwitchOpcode*/ 124, TARGET_VAL(X86ISD::CONFLICT),// ->220158
/*220034*/            OPC_MoveChild0,
/*220035*/            OPC_SwitchOpcode /*2 cases */, 55, TARGET_VAL(ISD::LOAD),// ->220094
/*220039*/              OPC_RecordMemRef,
/*220040*/              OPC_RecordNode, // #1 = 'ld' chained node
/*220041*/              OPC_CheckFoldableChainNode,
/*220042*/              OPC_RecordChild1, // #2 = $src1
/*220043*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*220045*/              OPC_CheckPredicate, 9, // Predicate_load
/*220047*/              OPC_MoveParent,
/*220048*/              OPC_MoveParent,
/*220049*/              OPC_RecordChild2, // #3 = $src0
/*220050*/              OPC_SwitchType /*2 cases */, 19, MVT::v4i64,// ->220072
/*220053*/                OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*220055*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*220058*/                OPC_EmitMergeInputChains1_1,
/*220059*/                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>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                          // Dst: (VPCONFLICTQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*220072*/              /*SwitchType*/ 19, MVT::v4i32,// ->220093
/*220074*/                OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*220076*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*220079*/                OPC_EmitMergeInputChains1_1,
/*220080*/                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] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                          // Dst: (VPCONFLICTDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*220093*/              0, // EndSwitchType
/*220094*/            /*SwitchOpcode*/ 60, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->220157
/*220097*/              OPC_RecordMemRef,
/*220098*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*220099*/              OPC_CheckFoldableChainNode,
/*220100*/              OPC_RecordChild1, // #2 = $src1
/*220101*/              OPC_Scope, 26, /*->220129*/ // 2 children in Scope
/*220103*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*220105*/                OPC_MoveParent,
/*220106*/                OPC_MoveParent,
/*220107*/                OPC_RecordChild2, // #3 = $src0
/*220108*/                OPC_CheckType, MVT::v4i64,
/*220110*/                OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*220112*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*220115*/                OPC_EmitMergeInputChains1_1,
/*220116*/                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] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                          // Dst: (VPCONFLICTQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*220129*/              /*Scope*/ 26, /*->220156*/
/*220130*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*220132*/                OPC_MoveParent,
/*220133*/                OPC_MoveParent,
/*220134*/                OPC_RecordChild2, // #3 = $src0
/*220135*/                OPC_CheckType, MVT::v4i32,
/*220137*/                OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*220139*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*220142*/                OPC_EmitMergeInputChains1_1,
/*220143*/                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] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                          // Dst: (VPCONFLICTDZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*220156*/              0, /*End of Scope*/
/*220157*/            0, // EndSwitchOpcode
/*220158*/          /*SwitchOpcode*/ 5|128,1/*133*/, TARGET_VAL(ISD::CTPOP),// ->220295
/*220162*/            OPC_MoveChild0,
/*220163*/            OPC_SwitchOpcode /*2 cases */, 62, TARGET_VAL(ISD::LOAD),// ->220229
/*220167*/              OPC_RecordMemRef,
/*220168*/              OPC_RecordNode, // #1 = 'ld' chained node
/*220169*/              OPC_CheckFoldableChainNode,
/*220170*/              OPC_RecordChild1, // #2 = $src1
/*220171*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*220173*/              OPC_CheckPredicate, 9, // Predicate_load
/*220175*/              OPC_SwitchType /*2 cases */, 24, MVT::v4i64,// ->220202
/*220178*/                OPC_MoveParent,
/*220179*/                OPC_MoveParent,
/*220180*/                OPC_RecordChild2, // #3 = $src0
/*220181*/                OPC_CheckType, MVT::v4i64,
/*220183*/                OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/*220185*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*220188*/                OPC_EmitMergeInputChains1_1,
/*220189*/                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>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                          // Dst: (VPOPCNTQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*220202*/              /*SwitchType*/ 24, MVT::v4i32,// ->220228
/*220204*/                OPC_MoveParent,
/*220205*/                OPC_MoveParent,
/*220206*/                OPC_RecordChild2, // #3 = $src0
/*220207*/                OPC_CheckType, MVT::v4i32,
/*220209*/                OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/*220211*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*220214*/                OPC_EmitMergeInputChains1_1,
/*220215*/                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] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                          // Dst: (VPOPCNTDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*220228*/              0, // EndSwitchType
/*220229*/            /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->220294
/*220232*/              OPC_RecordMemRef,
/*220233*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*220234*/              OPC_CheckFoldableChainNode,
/*220235*/              OPC_RecordChild1, // #2 = $src1
/*220236*/              OPC_SwitchType /*2 cases */, 26, MVT::v4i64,// ->220265
/*220239*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*220241*/                OPC_MoveParent,
/*220242*/                OPC_MoveParent,
/*220243*/                OPC_RecordChild2, // #3 = $src0
/*220244*/                OPC_CheckType, MVT::v4i64,
/*220246*/                OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/*220248*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*220251*/                OPC_EmitMergeInputChains1_1,
/*220252*/                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] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                          // Dst: (VPOPCNTQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*220265*/              /*SwitchType*/ 26, MVT::v4i32,// ->220293
/*220267*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*220269*/                OPC_MoveParent,
/*220270*/                OPC_MoveParent,
/*220271*/                OPC_RecordChild2, // #3 = $src0
/*220272*/                OPC_CheckType, MVT::v4i32,
/*220274*/                OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/*220276*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*220279*/                OPC_EmitMergeInputChains1_1,
/*220280*/                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] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                          // Dst: (VPOPCNTDZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*220293*/              0, // EndSwitchType
/*220294*/            0, // EndSwitchOpcode
/*220295*/          /*SwitchOpcode*/ 1|128,1/*129*/, TARGET_VAL(X86ISD::UNPCKL),// ->220428
/*220299*/            OPC_RecordChild0, // #1 = $src1
/*220300*/            OPC_MoveChild1,
/*220301*/            OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->220362
/*220305*/              OPC_RecordMemRef,
/*220306*/              OPC_RecordNode, // #2 = 'ld' chained node
/*220307*/              OPC_CheckFoldableChainNode,
/*220308*/              OPC_RecordChild1, // #3 = $src2
/*220309*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*220311*/              OPC_CheckPredicate, 9, // Predicate_load
/*220313*/              OPC_MoveParent,
/*220314*/              OPC_MoveParent,
/*220315*/              OPC_RecordChild2, // #4 = $src0
/*220316*/              OPC_SwitchType /*2 cases */, 20, MVT::v4i32,// ->220339
/*220319*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*220321*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*220324*/                OPC_EmitMergeInputChains1_2,
/*220325*/                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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                          // Dst: (VPUNPCKLDQZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*220339*/              /*SwitchType*/ 20, MVT::v4i64,// ->220361
/*220341*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*220343*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*220346*/                OPC_EmitMergeInputChains1_2,
/*220347*/                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>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                          // Dst: (VPUNPCKLQDQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*220361*/              0, // EndSwitchType
/*220362*/            /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->220427
/*220365*/              OPC_RecordMemRef,
/*220366*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*220367*/              OPC_CheckFoldableChainNode,
/*220368*/              OPC_RecordChild1, // #3 = $src2
/*220369*/              OPC_Scope, 27, /*->220398*/ // 2 children in Scope
/*220371*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*220373*/                OPC_MoveParent,
/*220374*/                OPC_MoveParent,
/*220375*/                OPC_RecordChild2, // #4 = $src0
/*220376*/                OPC_CheckType, MVT::v4i32,
/*220378*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*220380*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*220383*/                OPC_EmitMergeInputChains1_2,
/*220384*/                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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                          // Dst: (VPUNPCKLDQZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*220398*/              /*Scope*/ 27, /*->220426*/
/*220399*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*220401*/                OPC_MoveParent,
/*220402*/                OPC_MoveParent,
/*220403*/                OPC_RecordChild2, // #4 = $src0
/*220404*/                OPC_CheckType, MVT::v4i64,
/*220406*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*220408*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*220411*/                OPC_EmitMergeInputChains1_2,
/*220412*/                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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                          // Dst: (VPUNPCKLQDQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*220426*/              0, /*End of Scope*/
/*220427*/            0, // EndSwitchOpcode
/*220428*/          /*SwitchOpcode*/ 1|128,1/*129*/, TARGET_VAL(X86ISD::UNPCKH),// ->220561
/*220432*/            OPC_RecordChild0, // #1 = $src1
/*220433*/            OPC_MoveChild1,
/*220434*/            OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->220495
/*220438*/              OPC_RecordMemRef,
/*220439*/              OPC_RecordNode, // #2 = 'ld' chained node
/*220440*/              OPC_CheckFoldableChainNode,
/*220441*/              OPC_RecordChild1, // #3 = $src2
/*220442*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*220444*/              OPC_CheckPredicate, 9, // Predicate_load
/*220446*/              OPC_MoveParent,
/*220447*/              OPC_MoveParent,
/*220448*/              OPC_RecordChild2, // #4 = $src0
/*220449*/              OPC_SwitchType /*2 cases */, 20, MVT::v4i32,// ->220472
/*220452*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*220454*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*220457*/                OPC_EmitMergeInputChains1_2,
/*220458*/                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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                          // Dst: (VPUNPCKHDQZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*220472*/              /*SwitchType*/ 20, MVT::v4i64,// ->220494
/*220474*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*220476*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*220479*/                OPC_EmitMergeInputChains1_2,
/*220480*/                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>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                          // Dst: (VPUNPCKHQDQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*220494*/              0, // EndSwitchType
/*220495*/            /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->220560
/*220498*/              OPC_RecordMemRef,
/*220499*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*220500*/              OPC_CheckFoldableChainNode,
/*220501*/              OPC_RecordChild1, // #3 = $src2
/*220502*/              OPC_Scope, 27, /*->220531*/ // 2 children in Scope
/*220504*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*220506*/                OPC_MoveParent,
/*220507*/                OPC_MoveParent,
/*220508*/                OPC_RecordChild2, // #4 = $src0
/*220509*/                OPC_CheckType, MVT::v4i32,
/*220511*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*220513*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*220516*/                OPC_EmitMergeInputChains1_2,
/*220517*/                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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4i32] }:$src0) - Complexity = 28
                          // Dst: (VPUNPCKHDQZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*220531*/              /*Scope*/ 27, /*->220559*/
/*220532*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*220534*/                OPC_MoveParent,
/*220535*/                OPC_MoveParent,
/*220536*/                OPC_RecordChild2, // #4 = $src0
/*220537*/                OPC_CheckType, MVT::v4i64,
/*220539*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*220541*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*220544*/                OPC_EmitMergeInputChains1_2,
/*220545*/                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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4i64] }:$src0) - Complexity = 28
                          // Dst: (VPUNPCKHQDQZ256rmbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*220559*/              0, /*End of Scope*/
/*220560*/            0, // EndSwitchOpcode
/*220561*/          /*SwitchOpcode*/ 13|128,1/*141*/, TARGET_VAL(X86ISD::VSHLDV),// ->220706
/*220565*/            OPC_RecordChild0, // #1 = $src1
/*220566*/            OPC_RecordChild1, // #2 = $src2
/*220567*/            OPC_MoveChild2,
/*220568*/            OPC_SwitchOpcode /*2 cases */, 62, TARGET_VAL(ISD::LOAD),// ->220634
/*220572*/              OPC_RecordMemRef,
/*220573*/              OPC_RecordNode, // #3 = 'ld' chained node
/*220574*/              OPC_CheckFoldableChainNode,
/*220575*/              OPC_RecordChild1, // #4 = $src3
/*220576*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*220578*/              OPC_CheckPredicate, 9, // Predicate_load
/*220580*/              OPC_MoveParent,
/*220581*/              OPC_MoveParent,
/*220582*/              OPC_CheckChild2Same, 1,
/*220584*/              OPC_SwitchType /*2 cases */, 22, MVT::v4i32,// ->220609
/*220587*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*220589*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*220592*/                OPC_EmitMergeInputChains, 1, 3, 
/*220595*/                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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4i32] }:$src1) - Complexity = 28
                          // Dst: (VPSHLDVDZ128mk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*220609*/              /*SwitchType*/ 22, MVT::v4i64,// ->220633
/*220611*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*220613*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*220616*/                OPC_EmitMergeInputChains, 1, 3, 
/*220619*/                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>>), VR256X:{ *:[v4i64] }:$src1) - Complexity = 28
                          // Dst: (VPSHLDVQZ256mk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*220633*/              0, // EndSwitchType
/*220634*/            /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->220705
/*220637*/              OPC_RecordMemRef,
/*220638*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*220639*/              OPC_CheckFoldableChainNode,
/*220640*/              OPC_RecordChild1, // #4 = $src3
/*220641*/              OPC_Scope, 30, /*->220673*/ // 2 children in Scope
/*220643*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*220645*/                OPC_MoveParent,
/*220646*/                OPC_MoveParent,
/*220647*/                OPC_CheckChild2Same, 1,
/*220649*/                OPC_CheckType, MVT::v4i32,
/*220651*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*220653*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*220656*/                OPC_EmitMergeInputChains, 1, 3, 
/*220659*/                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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4i32] }:$src1) - Complexity = 28
                          // Dst: (VPSHLDVDZ128mbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*220673*/              /*Scope*/ 30, /*->220704*/
/*220674*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*220676*/                OPC_MoveParent,
/*220677*/                OPC_MoveParent,
/*220678*/                OPC_CheckChild2Same, 1,
/*220680*/                OPC_CheckType, MVT::v4i64,
/*220682*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*220684*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*220687*/                OPC_EmitMergeInputChains, 1, 3, 
/*220690*/                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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4i64] }:$src1) - Complexity = 28
                          // Dst: (VPSHLDVQZ256mbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*220704*/              0, /*End of Scope*/
/*220705*/            0, // EndSwitchOpcode
/*220706*/          /*SwitchOpcode*/ 13|128,1/*141*/, TARGET_VAL(X86ISD::VSHRDV),// ->220851
/*220710*/            OPC_RecordChild0, // #1 = $src1
/*220711*/            OPC_RecordChild1, // #2 = $src2
/*220712*/            OPC_MoveChild2,
/*220713*/            OPC_SwitchOpcode /*2 cases */, 62, TARGET_VAL(ISD::LOAD),// ->220779
/*220717*/              OPC_RecordMemRef,
/*220718*/              OPC_RecordNode, // #3 = 'ld' chained node
/*220719*/              OPC_CheckFoldableChainNode,
/*220720*/              OPC_RecordChild1, // #4 = $src3
/*220721*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*220723*/              OPC_CheckPredicate, 9, // Predicate_load
/*220725*/              OPC_MoveParent,
/*220726*/              OPC_MoveParent,
/*220727*/              OPC_CheckChild2Same, 1,
/*220729*/              OPC_SwitchType /*2 cases */, 22, MVT::v4i32,// ->220754
/*220732*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*220734*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*220737*/                OPC_EmitMergeInputChains, 1, 3, 
/*220740*/                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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4i32] }:$src1) - Complexity = 28
                          // Dst: (VPSHRDVDZ128mk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*220754*/              /*SwitchType*/ 22, MVT::v4i64,// ->220778
/*220756*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*220758*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*220761*/                OPC_EmitMergeInputChains, 1, 3, 
/*220764*/                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>>), VR256X:{ *:[v4i64] }:$src1) - Complexity = 28
                          // Dst: (VPSHRDVQZ256mk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*220778*/              0, // EndSwitchType
/*220779*/            /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->220850
/*220782*/              OPC_RecordMemRef,
/*220783*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*220784*/              OPC_CheckFoldableChainNode,
/*220785*/              OPC_RecordChild1, // #4 = $src3
/*220786*/              OPC_Scope, 30, /*->220818*/ // 2 children in Scope
/*220788*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*220790*/                OPC_MoveParent,
/*220791*/                OPC_MoveParent,
/*220792*/                OPC_CheckChild2Same, 1,
/*220794*/                OPC_CheckType, MVT::v4i32,
/*220796*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*220798*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*220801*/                OPC_EmitMergeInputChains, 1, 3, 
/*220804*/                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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4i32] }:$src1) - Complexity = 28
                          // Dst: (VPSHRDVDZ128mbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*220818*/              /*Scope*/ 30, /*->220849*/
/*220819*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*220821*/                OPC_MoveParent,
/*220822*/                OPC_MoveParent,
/*220823*/                OPC_CheckChild2Same, 1,
/*220825*/                OPC_CheckType, MVT::v4i64,
/*220827*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*220829*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*220832*/                OPC_EmitMergeInputChains, 1, 3, 
/*220835*/                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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4i64] }:$src1) - Complexity = 28
                          // Dst: (VPSHRDVQZ256mbk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*220849*/              0, /*End of Scope*/
/*220850*/            0, // EndSwitchOpcode
/*220851*/          /*SwitchOpcode*/ 81, TARGET_VAL(X86ISD::VPDPBUSD),// ->220935
/*220854*/            OPC_RecordChild0, // #1 = $src1
/*220855*/            OPC_RecordChild1, // #2 = $src2
/*220856*/            OPC_MoveChild2,
/*220857*/            OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->220897
/*220861*/              OPC_RecordMemRef,
/*220862*/              OPC_RecordNode, // #3 = 'ld' chained node
/*220863*/              OPC_CheckFoldableChainNode,
/*220864*/              OPC_RecordChild1, // #4 = $src3
/*220865*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*220867*/              OPC_CheckPredicate, 9, // Predicate_load
/*220869*/              OPC_MoveParent,
/*220870*/              OPC_MoveParent,
/*220871*/              OPC_CheckChild2Same, 1,
/*220873*/              OPC_CheckType, MVT::v4i32,
/*220875*/              OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*220877*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*220880*/              OPC_EmitMergeInputChains, 1, 3, 
/*220883*/              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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4i32] }:$src1) - Complexity = 28
                        // Dst: (VPDPBUSDZ128mk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*220897*/            /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->220934
/*220900*/              OPC_RecordMemRef,
/*220901*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*220902*/              OPC_CheckFoldableChainNode,
/*220903*/              OPC_RecordChild1, // #4 = $src3
/*220904*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*220906*/              OPC_MoveParent,
/*220907*/              OPC_MoveParent,
/*220908*/              OPC_CheckChild2Same, 1,
/*220910*/              OPC_CheckType, MVT::v4i32,
/*220912*/              OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*220914*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*220917*/              OPC_EmitMergeInputChains, 1, 3, 
/*220920*/              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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4i32] }:$src1) - Complexity = 28
                        // Dst: (VPDPBUSDZ128mbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*220934*/            0, // EndSwitchOpcode
/*220935*/          /*SwitchOpcode*/ 81, TARGET_VAL(X86ISD::VPDPBUSDS),// ->221019
/*220938*/            OPC_RecordChild0, // #1 = $src1
/*220939*/            OPC_RecordChild1, // #2 = $src2
/*220940*/            OPC_MoveChild2,
/*220941*/            OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->220981
/*220945*/              OPC_RecordMemRef,
/*220946*/              OPC_RecordNode, // #3 = 'ld' chained node
/*220947*/              OPC_CheckFoldableChainNode,
/*220948*/              OPC_RecordChild1, // #4 = $src3
/*220949*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*220951*/              OPC_CheckPredicate, 9, // Predicate_load
/*220953*/              OPC_MoveParent,
/*220954*/              OPC_MoveParent,
/*220955*/              OPC_CheckChild2Same, 1,
/*220957*/              OPC_CheckType, MVT::v4i32,
/*220959*/              OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*220961*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*220964*/              OPC_EmitMergeInputChains, 1, 3, 
/*220967*/              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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4i32] }:$src1) - Complexity = 28
                        // Dst: (VPDPBUSDSZ128mk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*220981*/            /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->221018
/*220984*/              OPC_RecordMemRef,
/*220985*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*220986*/              OPC_CheckFoldableChainNode,
/*220987*/              OPC_RecordChild1, // #4 = $src3
/*220988*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*220990*/              OPC_MoveParent,
/*220991*/              OPC_MoveParent,
/*220992*/              OPC_CheckChild2Same, 1,
/*220994*/              OPC_CheckType, MVT::v4i32,
/*220996*/              OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*220998*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*221001*/              OPC_EmitMergeInputChains, 1, 3, 
/*221004*/              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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4i32] }:$src1) - Complexity = 28
                        // Dst: (VPDPBUSDSZ128mbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*221018*/            0, // EndSwitchOpcode
/*221019*/          /*SwitchOpcode*/ 81, TARGET_VAL(X86ISD::VPDPWSSD),// ->221103
/*221022*/            OPC_RecordChild0, // #1 = $src1
/*221023*/            OPC_RecordChild1, // #2 = $src2
/*221024*/            OPC_MoveChild2,
/*221025*/            OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->221065
/*221029*/              OPC_RecordMemRef,
/*221030*/              OPC_RecordNode, // #3 = 'ld' chained node
/*221031*/              OPC_CheckFoldableChainNode,
/*221032*/              OPC_RecordChild1, // #4 = $src3
/*221033*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*221035*/              OPC_CheckPredicate, 9, // Predicate_load
/*221037*/              OPC_MoveParent,
/*221038*/              OPC_MoveParent,
/*221039*/              OPC_CheckChild2Same, 1,
/*221041*/              OPC_CheckType, MVT::v4i32,
/*221043*/              OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*221045*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*221048*/              OPC_EmitMergeInputChains, 1, 3, 
/*221051*/              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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4i32] }:$src1) - Complexity = 28
                        // Dst: (VPDPWSSDZ128mk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*221065*/            /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->221102
/*221068*/              OPC_RecordMemRef,
/*221069*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*221070*/              OPC_CheckFoldableChainNode,
/*221071*/              OPC_RecordChild1, // #4 = $src3
/*221072*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*221074*/              OPC_MoveParent,
/*221075*/              OPC_MoveParent,
/*221076*/              OPC_CheckChild2Same, 1,
/*221078*/              OPC_CheckType, MVT::v4i32,
/*221080*/              OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*221082*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*221085*/              OPC_EmitMergeInputChains, 1, 3, 
/*221088*/              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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4i32] }:$src1) - Complexity = 28
                        // Dst: (VPDPWSSDZ128mbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*221102*/            0, // EndSwitchOpcode
/*221103*/          /*SwitchOpcode*/ 81, TARGET_VAL(X86ISD::VPDPWSSDS),// ->221187
/*221106*/            OPC_RecordChild0, // #1 = $src1
/*221107*/            OPC_RecordChild1, // #2 = $src2
/*221108*/            OPC_MoveChild2,
/*221109*/            OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->221149
/*221113*/              OPC_RecordMemRef,
/*221114*/              OPC_RecordNode, // #3 = 'ld' chained node
/*221115*/              OPC_CheckFoldableChainNode,
/*221116*/              OPC_RecordChild1, // #4 = $src3
/*221117*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*221119*/              OPC_CheckPredicate, 9, // Predicate_load
/*221121*/              OPC_MoveParent,
/*221122*/              OPC_MoveParent,
/*221123*/              OPC_CheckChild2Same, 1,
/*221125*/              OPC_CheckType, MVT::v4i32,
/*221127*/              OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*221129*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*221132*/              OPC_EmitMergeInputChains, 1, 3, 
/*221135*/              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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4i32] }:$src1) - Complexity = 28
                        // Dst: (VPDPWSSDSZ128mk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*221149*/            /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->221186
/*221152*/              OPC_RecordMemRef,
/*221153*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*221154*/              OPC_CheckFoldableChainNode,
/*221155*/              OPC_RecordChild1, // #4 = $src3
/*221156*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*221158*/              OPC_MoveParent,
/*221159*/              OPC_MoveParent,
/*221160*/              OPC_CheckChild2Same, 1,
/*221162*/              OPC_CheckType, MVT::v4i32,
/*221164*/              OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*221166*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*221169*/              OPC_EmitMergeInputChains, 1, 3, 
/*221172*/              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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4i32] }:$src1) - Complexity = 28
                        // Dst: (VPDPWSSDSZ128mbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*221186*/            0, // EndSwitchOpcode
/*221187*/          0, // EndSwitchOpcode
/*221188*/        /*Scope*/ 102, /*->221291*/
/*221189*/          OPC_RecordChild1, // #1 = $idx
/*221190*/          OPC_MoveChild1,
/*221191*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/*221194*/          OPC_RecordChild0, // #2 = $src1
/*221195*/          OPC_Scope, 31, /*->221228*/ // 3 children in Scope
/*221197*/            OPC_CheckChild0Type, MVT::v16i32,
/*221199*/            OPC_MoveChild1,
/*221200*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*221203*/            OPC_CheckType, MVT::iPTR,
/*221205*/            OPC_MoveParent,
/*221206*/            OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/*221208*/            OPC_MoveParent,
/*221209*/            OPC_MoveChild2,
/*221210*/            OPC_CheckImmAllZerosV,
/*221211*/            OPC_MoveParent,
/*221212*/            OPC_CheckType, MVT::v4i32,
/*221214*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*221216*/            OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*221219*/            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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$idx, immAllZerosV:{ *:[v4i32] }) - Complexity = 14
                      // Dst: (VEXTRACTI32x4Zrrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR512:{ *:[v16i32] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } (extract_subvector:{ *:[v4i32] } VR512:{ *:[v16i32] }:$src1, (imm:{ *:[iPTR] })):$idx))
/*221228*/          /*Scope*/ 29, /*->221258*/
/*221229*/            OPC_MoveChild1,
/*221230*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*221233*/            OPC_CheckType, MVT::iPTR,
/*221235*/            OPC_MoveParent,
/*221236*/            OPC_CheckPredicate, 18, // Predicate_vextract256_extract
/*221238*/            OPC_MoveParent,
/*221239*/            OPC_MoveChild2,
/*221240*/            OPC_CheckImmAllZerosV,
/*221241*/            OPC_MoveParent,
/*221242*/            OPC_CheckType, MVT::v4i64,
/*221244*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*221246*/            OPC_EmitNodeXForm, 1, 1, // EXTRACT_get_vextract256_imm
/*221249*/            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] }))<<P:Predicate_vextract256_extract>><<X:EXTRACT_get_vextract256_imm>>:$idx, immAllZerosV:{ *:[v4i64] }) - Complexity = 14
                      // Dst: (VEXTRACTI64x4Zrrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR512:{ *:[v8i64] }:$src1, (EXTRACT_get_vextract256_imm:{ *:[i8] } (extract_subvector:{ *:[v4i64] } VR512:{ *:[v8i64] }:$src1, (imm:{ *:[iPTR] })):$idx))
/*221258*/          /*Scope*/ 31, /*->221290*/
/*221259*/            OPC_CheckChild0Type, MVT::v8i32,
/*221261*/            OPC_MoveChild1,
/*221262*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*221265*/            OPC_CheckType, MVT::iPTR,
/*221267*/            OPC_MoveParent,
/*221268*/            OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/*221270*/            OPC_MoveParent,
/*221271*/            OPC_MoveChild2,
/*221272*/            OPC_CheckImmAllZerosV,
/*221273*/            OPC_MoveParent,
/*221274*/            OPC_CheckType, MVT::v4i32,
/*221276*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*221278*/            OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*221281*/            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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$idx, immAllZerosV:{ *:[v4i32] }) - Complexity = 14
                      // Dst: (VEXTRACTI32x4Z256rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } (extract_subvector:{ *:[v4i32] } VR256X:{ *:[v8i32] }:$src1, (imm:{ *:[iPTR] })):$idx))
/*221290*/          0, /*End of Scope*/
/*221291*/        0, /*End of Scope*/
/*221292*/      /*Scope*/ 58|128,104|128,1/*29754*/, /*->251049*/
/*221295*/        OPC_CheckChild0Type, MVT::v8i1,
/*221297*/        OPC_Scope, 48|128,5/*688*/, /*->221988*/ // 6 children in Scope
/*221300*/          OPC_MoveChild1,
/*221301*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*221304*/          OPC_Scope, 61, /*->221367*/ // 3 children in Scope
/*221306*/            OPC_MoveChild0,
/*221307*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VALIGN),
/*221310*/            OPC_RecordChild0, // #1 = $src1
/*221311*/            OPC_MoveChild1,
/*221312*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*221315*/            OPC_MoveChild0,
/*221316*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*221319*/            OPC_RecordMemRef,
/*221320*/            OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*221321*/            OPC_CheckFoldableChainNode,
/*221322*/            OPC_RecordChild1, // #3 = $src2
/*221323*/            OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*221325*/            OPC_CheckType, MVT::v8i32,
/*221327*/            OPC_MoveParent,
/*221328*/            OPC_MoveParent,
/*221329*/            OPC_RecordChild2, // #4 = $src3
/*221330*/            OPC_MoveChild2,
/*221331*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*221334*/            OPC_MoveParent,
/*221335*/            OPC_CheckType, MVT::v4i64,
/*221337*/            OPC_MoveParent,
/*221338*/            OPC_MoveParent,
/*221339*/            OPC_MoveChild2,
/*221340*/            OPC_CheckImmAllZerosV,
/*221341*/            OPC_MoveParent,
/*221342*/            OPC_CheckType, MVT::v8i32,
/*221344*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*221346*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*221349*/            OPC_EmitMergeInputChains1_2,
/*221350*/            OPC_EmitNodeXForm, 14, 4, // ValignqImm32XForm
/*221353*/            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, (bitconvert:{ *:[v8i32] } (X86VAlign:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (bitconvert:{ *:[v4i64] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), (timm:{ *:[i8] }):$src3)), immAllZerosV:{ *:[v8i32] }) - Complexity = 41
                      // Dst: (VALIGNDZ256rmbikz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (ValignqImm32XForm:{ *:[i8] } (timm:{ *:[i8] }):$src3))
/*221367*/          /*Scope*/ 19|128,3/*403*/, /*->221772*/
/*221369*/            OPC_RecordChild0, // #1 = $ins
/*221370*/            OPC_MoveChild0,
/*221371*/            OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*221374*/            OPC_RecordChild0, // #2 = $src1
/*221375*/            OPC_MoveChild1,
/*221376*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*221379*/            OPC_RecordMemRef,
/*221380*/            OPC_RecordNode, // #3 = 'ld' chained node
/*221381*/            OPC_CheckFoldableChainNode,
/*221382*/            OPC_RecordChild1, // #4 = $src2
/*221383*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*221385*/            OPC_CheckPredicate, 9, // Predicate_load
/*221387*/            OPC_Scope, 112, /*->221501*/ // 7 children in Scope
/*221389*/              OPC_MoveParent,
/*221390*/              OPC_MoveChild2,
/*221391*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*221394*/              OPC_CheckType, MVT::iPTR,
/*221396*/              OPC_MoveParent,
/*221397*/              OPC_SwitchType /*3 cases */, 32, MVT::v4i64,// ->221432
/*221400*/                OPC_MoveParent,
/*221401*/                OPC_MoveParent,
/*221402*/                OPC_MoveChild2,
/*221403*/                OPC_CheckImmAllZerosV,
/*221404*/                OPC_MoveParent,
/*221405*/                OPC_CheckType, MVT::v8i32,
/*221407*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*221409*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*221412*/                OPC_EmitMergeInputChains, 1, 3, 
/*221415*/                OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*221418*/                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>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), immAllZerosV:{ *:[v8i32] }) - Complexity = 38
                          // Dst: (VINSERTI32x4Z256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256X:{ *:[v4i64] }:$ins))
/*221432*/              /*SwitchType*/ 32, MVT::v16i16,// ->221466
/*221434*/                OPC_MoveParent,
/*221435*/                OPC_MoveParent,
/*221436*/                OPC_MoveChild2,
/*221437*/                OPC_CheckImmAllZerosV,
/*221438*/                OPC_MoveParent,
/*221439*/                OPC_CheckType, MVT::v8i32,
/*221441*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*221443*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*221446*/                OPC_EmitMergeInputChains, 1, 3, 
/*221449*/                OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*221452*/                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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), immAllZerosV:{ *:[v8i32] }) - Complexity = 38
                          // Dst: (VINSERTI32x4Z256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256X:{ *:[v16i16] }:$ins))
/*221466*/              /*SwitchType*/ 32, MVT::v32i8,// ->221500
/*221468*/                OPC_MoveParent,
/*221469*/                OPC_MoveParent,
/*221470*/                OPC_MoveChild2,
/*221471*/                OPC_CheckImmAllZerosV,
/*221472*/                OPC_MoveParent,
/*221473*/                OPC_CheckType, MVT::v8i32,
/*221475*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*221477*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*221480*/                OPC_EmitMergeInputChains, 1, 3, 
/*221483*/                OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*221486*/                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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), immAllZerosV:{ *:[v8i32] }) - Complexity = 38
                          // Dst: (VINSERTI32x4Z256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256X:{ *:[v32i8] }:$ins))
/*221500*/              0, // EndSwitchType
/*221501*/            /*Scope*/ 44, /*->221546*/
/*221502*/              OPC_CheckType, MVT::v4i32,
/*221504*/              OPC_MoveParent,
/*221505*/              OPC_MoveChild2,
/*221506*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*221509*/              OPC_CheckType, MVT::iPTR,
/*221511*/              OPC_MoveParent,
/*221512*/              OPC_CheckType, MVT::v16i32,
/*221514*/              OPC_MoveParent,
/*221515*/              OPC_MoveParent,
/*221516*/              OPC_MoveChild2,
/*221517*/              OPC_CheckImmAllZerosV,
/*221518*/              OPC_MoveParent,
/*221519*/              OPC_CheckType, MVT::v8i64,
/*221521*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*221523*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*221526*/              OPC_EmitMergeInputChains, 1, 3, 
/*221529*/              OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*221532*/              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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), immAllZerosV:{ *:[v8i64] }) - Complexity = 38
                        // Dst: (VINSERTI64x2Zrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR512:{ *:[v16i32] }:$ins))
/*221546*/            /*Scope*/ 44, /*->221591*/
/*221547*/              OPC_CheckType, MVT::v8i16,
/*221549*/              OPC_MoveParent,
/*221550*/              OPC_MoveChild2,
/*221551*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*221554*/              OPC_CheckType, MVT::iPTR,
/*221556*/              OPC_MoveParent,
/*221557*/              OPC_CheckType, MVT::v32i16,
/*221559*/              OPC_MoveParent,
/*221560*/              OPC_MoveParent,
/*221561*/              OPC_MoveChild2,
/*221562*/              OPC_CheckImmAllZerosV,
/*221563*/              OPC_MoveParent,
/*221564*/              OPC_CheckType, MVT::v8i64,
/*221566*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*221568*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*221571*/              OPC_EmitMergeInputChains, 1, 3, 
/*221574*/              OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*221577*/              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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), immAllZerosV:{ *:[v8i64] }) - Complexity = 38
                        // Dst: (VINSERTI64x2Zrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR512:{ *:[v32i16] }:$ins))
/*221591*/            /*Scope*/ 44, /*->221636*/
/*221592*/              OPC_CheckType, MVT::v16i8,
/*221594*/              OPC_MoveParent,
/*221595*/              OPC_MoveChild2,
/*221596*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*221599*/              OPC_CheckType, MVT::iPTR,
/*221601*/              OPC_MoveParent,
/*221602*/              OPC_CheckType, MVT::v64i8,
/*221604*/              OPC_MoveParent,
/*221605*/              OPC_MoveParent,
/*221606*/              OPC_MoveChild2,
/*221607*/              OPC_CheckImmAllZerosV,
/*221608*/              OPC_MoveParent,
/*221609*/              OPC_CheckType, MVT::v8i64,
/*221611*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*221613*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*221616*/              OPC_EmitMergeInputChains, 1, 3, 
/*221619*/              OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*221622*/              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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), immAllZerosV:{ *:[v8i64] }) - Complexity = 38
                        // Dst: (VINSERTI64x2Zrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR512:{ *:[v64i8] }:$ins))
/*221636*/            /*Scope*/ 44, /*->221681*/
/*221637*/              OPC_CheckType, MVT::v8i32,
/*221639*/              OPC_MoveParent,
/*221640*/              OPC_MoveChild2,
/*221641*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*221644*/              OPC_CheckType, MVT::iPTR,
/*221646*/              OPC_MoveParent,
/*221647*/              OPC_CheckType, MVT::v16i32,
/*221649*/              OPC_MoveParent,
/*221650*/              OPC_MoveParent,
/*221651*/              OPC_MoveChild2,
/*221652*/              OPC_CheckImmAllZerosV,
/*221653*/              OPC_MoveParent,
/*221654*/              OPC_CheckType, MVT::v8i64,
/*221656*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*221658*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*221661*/              OPC_EmitMergeInputChains, 1, 3, 
/*221664*/              OPC_EmitNodeXForm, 16, 1, // INSERT_get_vinsert256_imm
/*221667*/              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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$ins), immAllZerosV:{ *:[v8i64] }) - Complexity = 38
                        // Dst: (VINSERTI64x4Zrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } VR512:{ *:[v16i32] }:$ins))
/*221681*/            /*Scope*/ 44, /*->221726*/
/*221682*/              OPC_CheckType, MVT::v16i16,
/*221684*/              OPC_MoveParent,
/*221685*/              OPC_MoveChild2,
/*221686*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*221689*/              OPC_CheckType, MVT::iPTR,
/*221691*/              OPC_MoveParent,
/*221692*/              OPC_CheckType, MVT::v32i16,
/*221694*/              OPC_MoveParent,
/*221695*/              OPC_MoveParent,
/*221696*/              OPC_MoveChild2,
/*221697*/              OPC_CheckImmAllZerosV,
/*221698*/              OPC_MoveParent,
/*221699*/              OPC_CheckType, MVT::v8i64,
/*221701*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*221703*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*221706*/              OPC_EmitMergeInputChains, 1, 3, 
/*221709*/              OPC_EmitNodeXForm, 16, 1, // INSERT_get_vinsert256_imm
/*221712*/              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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$ins), immAllZerosV:{ *:[v8i64] }) - Complexity = 38
                        // Dst: (VINSERTI64x4Zrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } VR512:{ *:[v32i16] }:$ins))
/*221726*/            /*Scope*/ 44, /*->221771*/
/*221727*/              OPC_CheckType, MVT::v32i8,
/*221729*/              OPC_MoveParent,
/*221730*/              OPC_MoveChild2,
/*221731*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*221734*/              OPC_CheckType, MVT::iPTR,
/*221736*/              OPC_MoveParent,
/*221737*/              OPC_CheckType, MVT::v64i8,
/*221739*/              OPC_MoveParent,
/*221740*/              OPC_MoveParent,
/*221741*/              OPC_MoveChild2,
/*221742*/              OPC_CheckImmAllZerosV,
/*221743*/              OPC_MoveParent,
/*221744*/              OPC_CheckType, MVT::v8i64,
/*221746*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*221748*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*221751*/              OPC_EmitMergeInputChains, 1, 3, 
/*221754*/              OPC_EmitNodeXForm, 16, 1, // INSERT_get_vinsert256_imm
/*221757*/              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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$ins), immAllZerosV:{ *:[v8i64] }) - Complexity = 38
                        // Dst: (VINSERTI64x4Zrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } VR512:{ *:[v64i8] }:$ins))
/*221771*/            0, /*End of Scope*/
/*221772*/          /*Scope*/ 85|128,1/*213*/, /*->221987*/
/*221774*/            OPC_MoveChild0,
/*221775*/            OPC_SwitchOpcode /*2 cases */, 96, TARGET_VAL(X86ISD::SHUF128),// ->221875
/*221779*/              OPC_RecordChild0, // #1 = $src1
/*221780*/              OPC_MoveChild1,
/*221781*/              OPC_SwitchOpcode /*2 cases */, 44, TARGET_VAL(ISD::LOAD),// ->221829
/*221785*/                OPC_RecordMemRef,
/*221786*/                OPC_RecordNode, // #2 = 'ld' chained node
/*221787*/                OPC_CheckFoldableChainNode,
/*221788*/                OPC_RecordChild1, // #3 = $src2
/*221789*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*221791*/                OPC_CheckPredicate, 9, // Predicate_load
/*221793*/                OPC_MoveParent,
/*221794*/                OPC_RecordChild2, // #4 = $src3
/*221795*/                OPC_MoveChild2,
/*221796*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*221799*/                OPC_MoveParent,
/*221800*/                OPC_CheckType, MVT::v4i64,
/*221802*/                OPC_MoveParent,
/*221803*/                OPC_MoveParent,
/*221804*/                OPC_MoveChild2,
/*221805*/                OPC_CheckImmAllZerosV,
/*221806*/                OPC_MoveParent,
/*221807*/                OPC_CheckType, MVT::v8i32,
/*221809*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*221811*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*221814*/                OPC_EmitMergeInputChains1_2,
/*221815*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI32X4Z256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (X86Shuf128:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3)), immAllZerosV:{ *:[v8i32] }) - Complexity = 38
                          // Dst: (VSHUFI32X4Z256rmikz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*221829*/              /*SwitchOpcode*/ 42, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->221874
/*221832*/                OPC_RecordMemRef,
/*221833*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*221834*/                OPC_CheckFoldableChainNode,
/*221835*/                OPC_RecordChild1, // #3 = $src2
/*221836*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*221838*/                OPC_MoveParent,
/*221839*/                OPC_RecordChild2, // #4 = $src3
/*221840*/                OPC_MoveChild2,
/*221841*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*221844*/                OPC_MoveParent,
/*221845*/                OPC_CheckType, MVT::v4i64,
/*221847*/                OPC_MoveParent,
/*221848*/                OPC_MoveParent,
/*221849*/                OPC_MoveChild2,
/*221850*/                OPC_CheckImmAllZerosV,
/*221851*/                OPC_MoveParent,
/*221852*/                OPC_CheckType, MVT::v8i32,
/*221854*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*221856*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*221859*/                OPC_EmitMergeInputChains1_2,
/*221860*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI32X4Z256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (X86Shuf128:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src3)), immAllZerosV:{ *:[v8i32] }) - Complexity = 38
                          // Dst: (VSHUFI32X4Z256rmbikz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*221874*/              0, // EndSwitchOpcode
/*221875*/            /*SwitchOpcode*/ 108, TARGET_VAL(X86ISD::VALIGN),// ->221986
/*221878*/              OPC_RecordChild0, // #1 = $src1
/*221879*/              OPC_MoveChild1,
/*221880*/              OPC_SwitchOpcode /*2 cases */, 47, TARGET_VAL(ISD::LOAD),// ->221931
/*221884*/                OPC_RecordMemRef,
/*221885*/                OPC_RecordNode, // #2 = 'ld' chained node
/*221886*/                OPC_CheckFoldableChainNode,
/*221887*/                OPC_RecordChild1, // #3 = $src2
/*221888*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*221890*/                OPC_CheckPredicate, 9, // Predicate_load
/*221892*/                OPC_MoveParent,
/*221893*/                OPC_RecordChild2, // #4 = $src3
/*221894*/                OPC_MoveChild2,
/*221895*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*221898*/                OPC_MoveParent,
/*221899*/                OPC_CheckType, MVT::v4i64,
/*221901*/                OPC_MoveParent,
/*221902*/                OPC_MoveParent,
/*221903*/                OPC_MoveChild2,
/*221904*/                OPC_CheckImmAllZerosV,
/*221905*/                OPC_MoveParent,
/*221906*/                OPC_CheckType, MVT::v8i32,
/*221908*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*221910*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*221913*/                OPC_EmitMergeInputChains1_2,
/*221914*/                OPC_EmitNodeXForm, 14, 4, // ValignqImm32XForm
/*221917*/                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, (bitconvert:{ *:[v8i32] } (X86VAlign:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3)), immAllZerosV:{ *:[v8i32] }) - Complexity = 38
                          // Dst: (VALIGNDZ256rmikz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (ValignqImm32XForm:{ *:[i8] } (timm:{ *:[i8] }):$src3))
/*221931*/              /*SwitchOpcode*/ 51, TARGET_VAL(ISD::BITCAST),// ->221985
/*221934*/                OPC_MoveChild0,
/*221935*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*221938*/                OPC_RecordMemRef,
/*221939*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*221940*/                OPC_CheckFoldableChainNode,
/*221941*/                OPC_RecordChild1, // #3 = $src2
/*221942*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*221944*/                OPC_CheckType, MVT::v8i32,
/*221946*/                OPC_MoveParent,
/*221947*/                OPC_MoveParent,
/*221948*/                OPC_RecordChild2, // #4 = $src3
/*221949*/                OPC_MoveChild2,
/*221950*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*221953*/                OPC_MoveParent,
/*221954*/                OPC_CheckType, MVT::v4i64,
/*221956*/                OPC_MoveParent,
/*221957*/                OPC_MoveParent,
/*221958*/                OPC_RecordChild2, // #5 = $src0
/*221959*/                OPC_CheckType, MVT::v8i32,
/*221961*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*221963*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*221966*/                OPC_EmitMergeInputChains1_2,
/*221967*/                OPC_EmitNodeXForm, 14, 4, // ValignqImm32XForm
/*221970*/                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, (bitconvert:{ *:[v8i32] } (X86VAlign:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (bitconvert:{ *:[v4i64] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), (timm:{ *:[i8] }):$src3)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 37
                          // Dst: (VALIGNDZ256rmbik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (ValignqImm32XForm:{ *:[i8] } (timm:{ *:[i8] }):$src3))
/*221985*/              0, // EndSwitchOpcode
/*221986*/            0, // EndSwitchOpcode
/*221987*/          0, /*End of Scope*/
/*221988*/        /*Scope*/ 16|128,1/*144*/, /*->222134*/
/*221990*/          OPC_RecordChild1, // #1 = $src3
/*221991*/          OPC_MoveChild1,
/*221992*/          OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*221995*/          OPC_RecordChild0, // #2 = $src1
/*221996*/          OPC_MoveChild1,
/*221997*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*222000*/          OPC_RecordMemRef,
/*222001*/          OPC_RecordNode, // #3 = 'ld' chained node
/*222002*/          OPC_CheckFoldableChainNode,
/*222003*/          OPC_RecordChild1, // #4 = $src2
/*222004*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*222006*/          OPC_CheckPredicate, 9, // Predicate_load
/*222008*/          OPC_Scope, 39, /*->222049*/ // 3 children in Scope
/*222010*/            OPC_MoveParent,
/*222011*/            OPC_MoveChild2,
/*222012*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*222015*/            OPC_CheckType, MVT::iPTR,
/*222017*/            OPC_MoveParent,
/*222018*/            OPC_MoveParent,
/*222019*/            OPC_MoveChild2,
/*222020*/            OPC_CheckImmAllZerosV,
/*222021*/            OPC_MoveParent,
/*222022*/            OPC_CheckType, MVT::v8i32,
/*222024*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*222026*/            OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*222029*/            OPC_EmitMergeInputChains, 1, 3, 
/*222032*/            OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*222035*/            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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$src3, immAllZerosV:{ *:[v8i32] }) - Complexity = 35
                      // Dst: (VINSERTI32x4Z256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } (insert_subvector:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[iPTR] })):$src3))
/*222049*/          /*Scope*/ 41, /*->222091*/
/*222050*/            OPC_CheckType, MVT::v4i64,
/*222052*/            OPC_MoveParent,
/*222053*/            OPC_MoveChild2,
/*222054*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*222057*/            OPC_CheckType, MVT::iPTR,
/*222059*/            OPC_MoveParent,
/*222060*/            OPC_MoveParent,
/*222061*/            OPC_MoveChild2,
/*222062*/            OPC_CheckImmAllZerosV,
/*222063*/            OPC_MoveParent,
/*222064*/            OPC_CheckType, MVT::v8i64,
/*222066*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*222068*/            OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*222071*/            OPC_EmitMergeInputChains, 1, 3, 
/*222074*/            OPC_EmitNodeXForm, 16, 1, // INSERT_get_vinsert256_imm
/*222077*/            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>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$src3, immAllZerosV:{ *:[v8i64] }) - Complexity = 35
                      // 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>>, (imm:{ *:[iPTR] })):$src3))
/*222091*/          /*Scope*/ 41, /*->222133*/
/*222092*/            OPC_CheckType, MVT::v2i64,
/*222094*/            OPC_MoveParent,
/*222095*/            OPC_MoveChild2,
/*222096*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*222099*/            OPC_CheckType, MVT::iPTR,
/*222101*/            OPC_MoveParent,
/*222102*/            OPC_MoveParent,
/*222103*/            OPC_MoveChild2,
/*222104*/            OPC_CheckImmAllZerosV,
/*222105*/            OPC_MoveParent,
/*222106*/            OPC_CheckType, MVT::v8i64,
/*222108*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*222110*/            OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*222113*/            OPC_EmitMergeInputChains, 1, 3, 
/*222116*/            OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*222119*/            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>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$src3, immAllZerosV:{ *:[v8i64] }) - Complexity = 35
                      // 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>>, (imm:{ *:[iPTR] })):$src3))
/*222133*/          0, /*End of Scope*/
/*222134*/        /*Scope*/ 51|128,106/*13619*/, /*->235755*/
/*222136*/          OPC_MoveChild1,
/*222137*/          OPC_SwitchOpcode /*74 cases */, 105|128,15/*2025*/, TARGET_VAL(ISD::BITCAST),// ->224167
/*222142*/            OPC_Scope, 25|128,11/*1433*/, /*->223578*/ // 3 children in Scope
/*222145*/              OPC_MoveChild0,
/*222146*/              OPC_SwitchOpcode /*5 cases */, 105, TARGET_VAL(X86ISD::SUBV_BROADCAST),// ->222255
/*222150*/                OPC_MoveChild0,
/*222151*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*222154*/                OPC_RecordMemRef,
/*222155*/                OPC_RecordNode, // #1 = 'ld' chained node
/*222156*/                OPC_CheckFoldableChainNode,
/*222157*/                OPC_RecordChild1, // #2 = $src
/*222158*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*222160*/                OPC_CheckPredicate, 9, // Predicate_load
/*222162*/                OPC_Scope, 30, /*->222194*/ // 3 children in Scope
/*222164*/                  OPC_CheckType, MVT::v8i32,
/*222166*/                  OPC_MoveParent,
/*222167*/                  OPC_CheckType, MVT::v16i32,
/*222169*/                  OPC_MoveParent,
/*222170*/                  OPC_MoveParent,
/*222171*/                  OPC_MoveChild2,
/*222172*/                  OPC_CheckImmAllZerosV,
/*222173*/                  OPC_MoveParent,
/*222174*/                  OPC_CheckType, MVT::v8i64,
/*222176*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*222178*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*222181*/                  OPC_EmitMergeInputChains1_1,
/*222182*/                  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] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v8i64] }) - Complexity = 35
                            // Dst: (VBROADCASTI64X4rmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*222194*/                /*Scope*/ 28, /*->222223*/
/*222195*/                  OPC_MoveParent,
/*222196*/                  OPC_CheckType, MVT::v4i64,
/*222198*/                  OPC_MoveParent,
/*222199*/                  OPC_MoveParent,
/*222200*/                  OPC_MoveChild2,
/*222201*/                  OPC_CheckImmAllZerosV,
/*222202*/                  OPC_MoveParent,
/*222203*/                  OPC_CheckType, MVT::v8i32,
/*222205*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*222207*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*222210*/                  OPC_EmitMergeInputChains1_1,
/*222211*/                  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>>)), immAllZerosV:{ *:[v8i32] }) - Complexity = 35
                            // Dst: (VBROADCASTI32X4Z256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*222223*/                /*Scope*/ 30, /*->222254*/
/*222224*/                  OPC_CheckType, MVT::v4i32,
/*222226*/                  OPC_MoveParent,
/*222227*/                  OPC_CheckType, MVT::v16i32,
/*222229*/                  OPC_MoveParent,
/*222230*/                  OPC_MoveParent,
/*222231*/                  OPC_MoveChild2,
/*222232*/                  OPC_CheckImmAllZerosV,
/*222233*/                  OPC_MoveParent,
/*222234*/                  OPC_CheckType, MVT::v8i64,
/*222236*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*222238*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*222241*/                  OPC_EmitMergeInputChains1_1,
/*222242*/                  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] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v8i64] }) - Complexity = 35
                            // Dst: (VBROADCASTI64X2rmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*222254*/                0, /*End of Scope*/
/*222255*/              /*SwitchOpcode*/ 118|128,2/*374*/, TARGET_VAL(ISD::AND),// ->222633
/*222259*/                OPC_Scope, 56|128,1/*184*/, /*->222446*/ // 2 children in Scope
/*222262*/                  OPC_RecordChild0, // #1 = $src1
/*222263*/                  OPC_MoveChild1,
/*222264*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*222267*/                  OPC_RecordMemRef,
/*222268*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*222269*/                  OPC_CheckFoldableChainNode,
/*222270*/                  OPC_RecordChild1, // #3 = $src2
/*222271*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*222273*/                  OPC_CheckPredicate, 9, // Predicate_load
/*222275*/                  OPC_MoveParent,
/*222276*/                  OPC_SwitchType /*6 cases */, 26, MVT::v16i32,// ->222305
/*222279*/                    OPC_MoveParent,
/*222280*/                    OPC_MoveParent,
/*222281*/                    OPC_MoveChild2,
/*222282*/                    OPC_CheckImmAllZerosV,
/*222283*/                    OPC_MoveParent,
/*222284*/                    OPC_CheckType, MVT::v8i64,
/*222286*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*222288*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*222291*/                    OPC_EmitMergeInputChains1_2,
/*222292*/                    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, (bitconvert:{ *:[v8i64] } (and:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v8i64] }) - Complexity = 35
                              // Dst: (VPANDQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*222305*/                  /*SwitchType*/ 26, MVT::v32i16,// ->222333
/*222307*/                    OPC_MoveParent,
/*222308*/                    OPC_MoveParent,
/*222309*/                    OPC_MoveChild2,
/*222310*/                    OPC_CheckImmAllZerosV,
/*222311*/                    OPC_MoveParent,
/*222312*/                    OPC_CheckType, MVT::v8i64,
/*222314*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*222316*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*222319*/                    OPC_EmitMergeInputChains1_2,
/*222320*/                    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, (bitconvert:{ *:[v8i64] } (and:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v8i64] }) - Complexity = 35
                              // Dst: (VPANDQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*222333*/                  /*SwitchType*/ 26, MVT::v64i8,// ->222361
/*222335*/                    OPC_MoveParent,
/*222336*/                    OPC_MoveParent,
/*222337*/                    OPC_MoveChild2,
/*222338*/                    OPC_CheckImmAllZerosV,
/*222339*/                    OPC_MoveParent,
/*222340*/                    OPC_CheckType, MVT::v8i64,
/*222342*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*222344*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*222347*/                    OPC_EmitMergeInputChains1_2,
/*222348*/                    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, (bitconvert:{ *:[v8i64] } (and:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v8i64] }) - Complexity = 35
                              // Dst: (VPANDQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*222361*/                  /*SwitchType*/ 26, MVT::v4i64,// ->222389
/*222363*/                    OPC_MoveParent,
/*222364*/                    OPC_MoveParent,
/*222365*/                    OPC_MoveChild2,
/*222366*/                    OPC_CheckImmAllZerosV,
/*222367*/                    OPC_MoveParent,
/*222368*/                    OPC_CheckType, MVT::v8i32,
/*222370*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*222372*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*222375*/                    OPC_EmitMergeInputChains1_2,
/*222376*/                    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>>)), immAllZerosV:{ *:[v8i32] }) - Complexity = 35
                              // Dst: (VPANDDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*222389*/                  /*SwitchType*/ 26, MVT::v16i16,// ->222417
/*222391*/                    OPC_MoveParent,
/*222392*/                    OPC_MoveParent,
/*222393*/                    OPC_MoveChild2,
/*222394*/                    OPC_CheckImmAllZerosV,
/*222395*/                    OPC_MoveParent,
/*222396*/                    OPC_CheckType, MVT::v8i32,
/*222398*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*222400*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*222403*/                    OPC_EmitMergeInputChains1_2,
/*222404*/                    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:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v8i32] }) - Complexity = 35
                              // Dst: (VPANDDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*222417*/                  /*SwitchType*/ 26, MVT::v32i8,// ->222445
/*222419*/                    OPC_MoveParent,
/*222420*/                    OPC_MoveParent,
/*222421*/                    OPC_MoveChild2,
/*222422*/                    OPC_CheckImmAllZerosV,
/*222423*/                    OPC_MoveParent,
/*222424*/                    OPC_CheckType, MVT::v8i32,
/*222426*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*222428*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*222431*/                    OPC_EmitMergeInputChains1_2,
/*222432*/                    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:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v8i32] }) - Complexity = 35
                              // Dst: (VPANDDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*222445*/                  0, // EndSwitchType
/*222446*/                /*Scope*/ 56|128,1/*184*/, /*->222632*/
/*222448*/                  OPC_MoveChild0,
/*222449*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*222452*/                  OPC_RecordMemRef,
/*222453*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*222454*/                  OPC_CheckFoldableChainNode,
/*222455*/                  OPC_RecordChild1, // #2 = $src2
/*222456*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*222458*/                  OPC_CheckPredicate, 9, // Predicate_load
/*222460*/                  OPC_MoveParent,
/*222461*/                  OPC_RecordChild1, // #3 = $src1
/*222462*/                  OPC_SwitchType /*6 cases */, 26, MVT::v16i32,// ->222491
/*222465*/                    OPC_MoveParent,
/*222466*/                    OPC_MoveParent,
/*222467*/                    OPC_MoveChild2,
/*222468*/                    OPC_CheckImmAllZerosV,
/*222469*/                    OPC_MoveParent,
/*222470*/                    OPC_CheckType, MVT::v8i64,
/*222472*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*222474*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*222477*/                    OPC_EmitMergeInputChains1_1,
/*222478*/                    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, (bitconvert:{ *:[v8i64] } (and:{ *:[v16i32] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16i32] }:$src1)), immAllZerosV:{ *:[v8i64] }) - Complexity = 35
                              // Dst: (VPANDQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*222491*/                  /*SwitchType*/ 26, MVT::v32i16,// ->222519
/*222493*/                    OPC_MoveParent,
/*222494*/                    OPC_MoveParent,
/*222495*/                    OPC_MoveChild2,
/*222496*/                    OPC_CheckImmAllZerosV,
/*222497*/                    OPC_MoveParent,
/*222498*/                    OPC_CheckType, MVT::v8i64,
/*222500*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*222502*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*222505*/                    OPC_EmitMergeInputChains1_1,
/*222506*/                    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, (bitconvert:{ *:[v8i64] } (and:{ *:[v32i16] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1)), immAllZerosV:{ *:[v8i64] }) - Complexity = 35
                              // Dst: (VPANDQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*222519*/                  /*SwitchType*/ 26, MVT::v64i8,// ->222547
/*222521*/                    OPC_MoveParent,
/*222522*/                    OPC_MoveParent,
/*222523*/                    OPC_MoveChild2,
/*222524*/                    OPC_CheckImmAllZerosV,
/*222525*/                    OPC_MoveParent,
/*222526*/                    OPC_CheckType, MVT::v8i64,
/*222528*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*222530*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*222533*/                    OPC_EmitMergeInputChains1_1,
/*222534*/                    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, (bitconvert:{ *:[v8i64] } (and:{ *:[v64i8] } (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v64i8] }:$src1)), immAllZerosV:{ *:[v8i64] }) - Complexity = 35
                              // Dst: (VPANDQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*222547*/                  /*SwitchType*/ 26, MVT::v4i64,// ->222575
/*222549*/                    OPC_MoveParent,
/*222550*/                    OPC_MoveParent,
/*222551*/                    OPC_MoveChild2,
/*222552*/                    OPC_CheckImmAllZerosV,
/*222553*/                    OPC_MoveParent,
/*222554*/                    OPC_CheckType, MVT::v8i32,
/*222556*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*222558*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*222561*/                    OPC_EmitMergeInputChains1_1,
/*222562*/                    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>>, VR256X:{ *:[v4i64] }:$src1)), immAllZerosV:{ *:[v8i32] }) - Complexity = 35
                              // Dst: (VPANDDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*222575*/                  /*SwitchType*/ 26, MVT::v16i16,// ->222603
/*222577*/                    OPC_MoveParent,
/*222578*/                    OPC_MoveParent,
/*222579*/                    OPC_MoveChild2,
/*222580*/                    OPC_CheckImmAllZerosV,
/*222581*/                    OPC_MoveParent,
/*222582*/                    OPC_CheckType, MVT::v8i32,
/*222584*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*222586*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*222589*/                    OPC_EmitMergeInputChains1_1,
/*222590*/                    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:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1)), immAllZerosV:{ *:[v8i32] }) - Complexity = 35
                              // Dst: (VPANDDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*222603*/                  /*SwitchType*/ 26, MVT::v32i8,// ->222631
/*222605*/                    OPC_MoveParent,
/*222606*/                    OPC_MoveParent,
/*222607*/                    OPC_MoveChild2,
/*222608*/                    OPC_CheckImmAllZerosV,
/*222609*/                    OPC_MoveParent,
/*222610*/                    OPC_CheckType, MVT::v8i32,
/*222612*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*222614*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*222617*/                    OPC_EmitMergeInputChains1_1,
/*222618*/                    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:{ *:[v32i8] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v32i8] }:$src1)), immAllZerosV:{ *:[v8i32] }) - Complexity = 35
                              // Dst: (VPANDDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*222631*/                  0, // EndSwitchType
/*222632*/                0, /*End of Scope*/
/*222633*/              /*SwitchOpcode*/ 118|128,2/*374*/, TARGET_VAL(ISD::OR),// ->223011
/*222637*/                OPC_Scope, 56|128,1/*184*/, /*->222824*/ // 2 children in Scope
/*222640*/                  OPC_RecordChild0, // #1 = $src1
/*222641*/                  OPC_MoveChild1,
/*222642*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*222645*/                  OPC_RecordMemRef,
/*222646*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*222647*/                  OPC_CheckFoldableChainNode,
/*222648*/                  OPC_RecordChild1, // #3 = $src2
/*222649*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*222651*/                  OPC_CheckPredicate, 9, // Predicate_load
/*222653*/                  OPC_MoveParent,
/*222654*/                  OPC_SwitchType /*6 cases */, 26, MVT::v16i32,// ->222683
/*222657*/                    OPC_MoveParent,
/*222658*/                    OPC_MoveParent,
/*222659*/                    OPC_MoveChild2,
/*222660*/                    OPC_CheckImmAllZerosV,
/*222661*/                    OPC_MoveParent,
/*222662*/                    OPC_CheckType, MVT::v8i64,
/*222664*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*222666*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*222669*/                    OPC_EmitMergeInputChains1_2,
/*222670*/                    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, (bitconvert:{ *:[v8i64] } (or:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v8i64] }) - Complexity = 35
                              // Dst: (VPORQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*222683*/                  /*SwitchType*/ 26, MVT::v32i16,// ->222711
/*222685*/                    OPC_MoveParent,
/*222686*/                    OPC_MoveParent,
/*222687*/                    OPC_MoveChild2,
/*222688*/                    OPC_CheckImmAllZerosV,
/*222689*/                    OPC_MoveParent,
/*222690*/                    OPC_CheckType, MVT::v8i64,
/*222692*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*222694*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*222697*/                    OPC_EmitMergeInputChains1_2,
/*222698*/                    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, (bitconvert:{ *:[v8i64] } (or:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v8i64] }) - Complexity = 35
                              // Dst: (VPORQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*222711*/                  /*SwitchType*/ 26, MVT::v64i8,// ->222739
/*222713*/                    OPC_MoveParent,
/*222714*/                    OPC_MoveParent,
/*222715*/                    OPC_MoveChild2,
/*222716*/                    OPC_CheckImmAllZerosV,
/*222717*/                    OPC_MoveParent,
/*222718*/                    OPC_CheckType, MVT::v8i64,
/*222720*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*222722*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*222725*/                    OPC_EmitMergeInputChains1_2,
/*222726*/                    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, (bitconvert:{ *:[v8i64] } (or:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v8i64] }) - Complexity = 35
                              // Dst: (VPORQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*222739*/                  /*SwitchType*/ 26, MVT::v4i64,// ->222767
/*222741*/                    OPC_MoveParent,
/*222742*/                    OPC_MoveParent,
/*222743*/                    OPC_MoveChild2,
/*222744*/                    OPC_CheckImmAllZerosV,
/*222745*/                    OPC_MoveParent,
/*222746*/                    OPC_CheckType, MVT::v8i32,
/*222748*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*222750*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*222753*/                    OPC_EmitMergeInputChains1_2,
/*222754*/                    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>>)), immAllZerosV:{ *:[v8i32] }) - Complexity = 35
                              // Dst: (VPORDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*222767*/                  /*SwitchType*/ 26, MVT::v16i16,// ->222795
/*222769*/                    OPC_MoveParent,
/*222770*/                    OPC_MoveParent,
/*222771*/                    OPC_MoveChild2,
/*222772*/                    OPC_CheckImmAllZerosV,
/*222773*/                    OPC_MoveParent,
/*222774*/                    OPC_CheckType, MVT::v8i32,
/*222776*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*222778*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*222781*/                    OPC_EmitMergeInputChains1_2,
/*222782*/                    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:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v8i32] }) - Complexity = 35
                              // Dst: (VPORDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*222795*/                  /*SwitchType*/ 26, MVT::v32i8,// ->222823
/*222797*/                    OPC_MoveParent,
/*222798*/                    OPC_MoveParent,
/*222799*/                    OPC_MoveChild2,
/*222800*/                    OPC_CheckImmAllZerosV,
/*222801*/                    OPC_MoveParent,
/*222802*/                    OPC_CheckType, MVT::v8i32,
/*222804*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*222806*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*222809*/                    OPC_EmitMergeInputChains1_2,
/*222810*/                    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:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v8i32] }) - Complexity = 35
                              // Dst: (VPORDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*222823*/                  0, // EndSwitchType
/*222824*/                /*Scope*/ 56|128,1/*184*/, /*->223010*/
/*222826*/                  OPC_MoveChild0,
/*222827*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*222830*/                  OPC_RecordMemRef,
/*222831*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*222832*/                  OPC_CheckFoldableChainNode,
/*222833*/                  OPC_RecordChild1, // #2 = $src2
/*222834*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*222836*/                  OPC_CheckPredicate, 9, // Predicate_load
/*222838*/                  OPC_MoveParent,
/*222839*/                  OPC_RecordChild1, // #3 = $src1
/*222840*/                  OPC_SwitchType /*6 cases */, 26, MVT::v16i32,// ->222869
/*222843*/                    OPC_MoveParent,
/*222844*/                    OPC_MoveParent,
/*222845*/                    OPC_MoveChild2,
/*222846*/                    OPC_CheckImmAllZerosV,
/*222847*/                    OPC_MoveParent,
/*222848*/                    OPC_CheckType, MVT::v8i64,
/*222850*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*222852*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*222855*/                    OPC_EmitMergeInputChains1_1,
/*222856*/                    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, (bitconvert:{ *:[v8i64] } (or:{ *:[v16i32] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16i32] }:$src1)), immAllZerosV:{ *:[v8i64] }) - Complexity = 35
                              // Dst: (VPORQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*222869*/                  /*SwitchType*/ 26, MVT::v32i16,// ->222897
/*222871*/                    OPC_MoveParent,
/*222872*/                    OPC_MoveParent,
/*222873*/                    OPC_MoveChild2,
/*222874*/                    OPC_CheckImmAllZerosV,
/*222875*/                    OPC_MoveParent,
/*222876*/                    OPC_CheckType, MVT::v8i64,
/*222878*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*222880*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*222883*/                    OPC_EmitMergeInputChains1_1,
/*222884*/                    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, (bitconvert:{ *:[v8i64] } (or:{ *:[v32i16] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1)), immAllZerosV:{ *:[v8i64] }) - Complexity = 35
                              // Dst: (VPORQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*222897*/                  /*SwitchType*/ 26, MVT::v64i8,// ->222925
/*222899*/                    OPC_MoveParent,
/*222900*/                    OPC_MoveParent,
/*222901*/                    OPC_MoveChild2,
/*222902*/                    OPC_CheckImmAllZerosV,
/*222903*/                    OPC_MoveParent,
/*222904*/                    OPC_CheckType, MVT::v8i64,
/*222906*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*222908*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*222911*/                    OPC_EmitMergeInputChains1_1,
/*222912*/                    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, (bitconvert:{ *:[v8i64] } (or:{ *:[v64i8] } (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v64i8] }:$src1)), immAllZerosV:{ *:[v8i64] }) - Complexity = 35
                              // Dst: (VPORQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*222925*/                  /*SwitchType*/ 26, MVT::v4i64,// ->222953
/*222927*/                    OPC_MoveParent,
/*222928*/                    OPC_MoveParent,
/*222929*/                    OPC_MoveChild2,
/*222930*/                    OPC_CheckImmAllZerosV,
/*222931*/                    OPC_MoveParent,
/*222932*/                    OPC_CheckType, MVT::v8i32,
/*222934*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*222936*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*222939*/                    OPC_EmitMergeInputChains1_1,
/*222940*/                    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>>, VR256X:{ *:[v4i64] }:$src1)), immAllZerosV:{ *:[v8i32] }) - Complexity = 35
                              // Dst: (VPORDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*222953*/                  /*SwitchType*/ 26, MVT::v16i16,// ->222981
/*222955*/                    OPC_MoveParent,
/*222956*/                    OPC_MoveParent,
/*222957*/                    OPC_MoveChild2,
/*222958*/                    OPC_CheckImmAllZerosV,
/*222959*/                    OPC_MoveParent,
/*222960*/                    OPC_CheckType, MVT::v8i32,
/*222962*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*222964*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*222967*/                    OPC_EmitMergeInputChains1_1,
/*222968*/                    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:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1)), immAllZerosV:{ *:[v8i32] }) - Complexity = 35
                              // Dst: (VPORDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*222981*/                  /*SwitchType*/ 26, MVT::v32i8,// ->223009
/*222983*/                    OPC_MoveParent,
/*222984*/                    OPC_MoveParent,
/*222985*/                    OPC_MoveChild2,
/*222986*/                    OPC_CheckImmAllZerosV,
/*222987*/                    OPC_MoveParent,
/*222988*/                    OPC_CheckType, MVT::v8i32,
/*222990*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*222992*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*222995*/                    OPC_EmitMergeInputChains1_1,
/*222996*/                    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:{ *:[v32i8] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v32i8] }:$src1)), immAllZerosV:{ *:[v8i32] }) - Complexity = 35
                              // Dst: (VPORDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*223009*/                  0, // EndSwitchType
/*223010*/                0, /*End of Scope*/
/*223011*/              /*SwitchOpcode*/ 118|128,2/*374*/, TARGET_VAL(ISD::XOR),// ->223389
/*223015*/                OPC_Scope, 56|128,1/*184*/, /*->223202*/ // 2 children in Scope
/*223018*/                  OPC_RecordChild0, // #1 = $src1
/*223019*/                  OPC_MoveChild1,
/*223020*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*223023*/                  OPC_RecordMemRef,
/*223024*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*223025*/                  OPC_CheckFoldableChainNode,
/*223026*/                  OPC_RecordChild1, // #3 = $src2
/*223027*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*223029*/                  OPC_CheckPredicate, 9, // Predicate_load
/*223031*/                  OPC_MoveParent,
/*223032*/                  OPC_SwitchType /*6 cases */, 26, MVT::v16i32,// ->223061
/*223035*/                    OPC_MoveParent,
/*223036*/                    OPC_MoveParent,
/*223037*/                    OPC_MoveChild2,
/*223038*/                    OPC_CheckImmAllZerosV,
/*223039*/                    OPC_MoveParent,
/*223040*/                    OPC_CheckType, MVT::v8i64,
/*223042*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*223044*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*223047*/                    OPC_EmitMergeInputChains1_2,
/*223048*/                    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, (bitconvert:{ *:[v8i64] } (xor:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v8i64] }) - Complexity = 35
                              // Dst: (VPXORQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*223061*/                  /*SwitchType*/ 26, MVT::v32i16,// ->223089
/*223063*/                    OPC_MoveParent,
/*223064*/                    OPC_MoveParent,
/*223065*/                    OPC_MoveChild2,
/*223066*/                    OPC_CheckImmAllZerosV,
/*223067*/                    OPC_MoveParent,
/*223068*/                    OPC_CheckType, MVT::v8i64,
/*223070*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*223072*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*223075*/                    OPC_EmitMergeInputChains1_2,
/*223076*/                    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, (bitconvert:{ *:[v8i64] } (xor:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v8i64] }) - Complexity = 35
                              // Dst: (VPXORQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*223089*/                  /*SwitchType*/ 26, MVT::v64i8,// ->223117
/*223091*/                    OPC_MoveParent,
/*223092*/                    OPC_MoveParent,
/*223093*/                    OPC_MoveChild2,
/*223094*/                    OPC_CheckImmAllZerosV,
/*223095*/                    OPC_MoveParent,
/*223096*/                    OPC_CheckType, MVT::v8i64,
/*223098*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*223100*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*223103*/                    OPC_EmitMergeInputChains1_2,
/*223104*/                    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, (bitconvert:{ *:[v8i64] } (xor:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v8i64] }) - Complexity = 35
                              // Dst: (VPXORQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*223117*/                  /*SwitchType*/ 26, MVT::v4i64,// ->223145
/*223119*/                    OPC_MoveParent,
/*223120*/                    OPC_MoveParent,
/*223121*/                    OPC_MoveChild2,
/*223122*/                    OPC_CheckImmAllZerosV,
/*223123*/                    OPC_MoveParent,
/*223124*/                    OPC_CheckType, MVT::v8i32,
/*223126*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*223128*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*223131*/                    OPC_EmitMergeInputChains1_2,
/*223132*/                    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>>)), immAllZerosV:{ *:[v8i32] }) - Complexity = 35
                              // Dst: (VPXORDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*223145*/                  /*SwitchType*/ 26, MVT::v16i16,// ->223173
/*223147*/                    OPC_MoveParent,
/*223148*/                    OPC_MoveParent,
/*223149*/                    OPC_MoveChild2,
/*223150*/                    OPC_CheckImmAllZerosV,
/*223151*/                    OPC_MoveParent,
/*223152*/                    OPC_CheckType, MVT::v8i32,
/*223154*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*223156*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*223159*/                    OPC_EmitMergeInputChains1_2,
/*223160*/                    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:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v8i32] }) - Complexity = 35
                              // Dst: (VPXORDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*223173*/                  /*SwitchType*/ 26, MVT::v32i8,// ->223201
/*223175*/                    OPC_MoveParent,
/*223176*/                    OPC_MoveParent,
/*223177*/                    OPC_MoveChild2,
/*223178*/                    OPC_CheckImmAllZerosV,
/*223179*/                    OPC_MoveParent,
/*223180*/                    OPC_CheckType, MVT::v8i32,
/*223182*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*223184*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*223187*/                    OPC_EmitMergeInputChains1_2,
/*223188*/                    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:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v8i32] }) - Complexity = 35
                              // Dst: (VPXORDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*223201*/                  0, // EndSwitchType
/*223202*/                /*Scope*/ 56|128,1/*184*/, /*->223388*/
/*223204*/                  OPC_MoveChild0,
/*223205*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*223208*/                  OPC_RecordMemRef,
/*223209*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*223210*/                  OPC_CheckFoldableChainNode,
/*223211*/                  OPC_RecordChild1, // #2 = $src2
/*223212*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*223214*/                  OPC_CheckPredicate, 9, // Predicate_load
/*223216*/                  OPC_MoveParent,
/*223217*/                  OPC_RecordChild1, // #3 = $src1
/*223218*/                  OPC_SwitchType /*6 cases */, 26, MVT::v16i32,// ->223247
/*223221*/                    OPC_MoveParent,
/*223222*/                    OPC_MoveParent,
/*223223*/                    OPC_MoveChild2,
/*223224*/                    OPC_CheckImmAllZerosV,
/*223225*/                    OPC_MoveParent,
/*223226*/                    OPC_CheckType, MVT::v8i64,
/*223228*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*223230*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*223233*/                    OPC_EmitMergeInputChains1_1,
/*223234*/                    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, (bitconvert:{ *:[v8i64] } (xor:{ *:[v16i32] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16i32] }:$src1)), immAllZerosV:{ *:[v8i64] }) - Complexity = 35
                              // Dst: (VPXORQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*223247*/                  /*SwitchType*/ 26, MVT::v32i16,// ->223275
/*223249*/                    OPC_MoveParent,
/*223250*/                    OPC_MoveParent,
/*223251*/                    OPC_MoveChild2,
/*223252*/                    OPC_CheckImmAllZerosV,
/*223253*/                    OPC_MoveParent,
/*223254*/                    OPC_CheckType, MVT::v8i64,
/*223256*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*223258*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*223261*/                    OPC_EmitMergeInputChains1_1,
/*223262*/                    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, (bitconvert:{ *:[v8i64] } (xor:{ *:[v32i16] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1)), immAllZerosV:{ *:[v8i64] }) - Complexity = 35
                              // Dst: (VPXORQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*223275*/                  /*SwitchType*/ 26, MVT::v64i8,// ->223303
/*223277*/                    OPC_MoveParent,
/*223278*/                    OPC_MoveParent,
/*223279*/                    OPC_MoveChild2,
/*223280*/                    OPC_CheckImmAllZerosV,
/*223281*/                    OPC_MoveParent,
/*223282*/                    OPC_CheckType, MVT::v8i64,
/*223284*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*223286*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*223289*/                    OPC_EmitMergeInputChains1_1,
/*223290*/                    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, (bitconvert:{ *:[v8i64] } (xor:{ *:[v64i8] } (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v64i8] }:$src1)), immAllZerosV:{ *:[v8i64] }) - Complexity = 35
                              // Dst: (VPXORQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*223303*/                  /*SwitchType*/ 26, MVT::v4i64,// ->223331
/*223305*/                    OPC_MoveParent,
/*223306*/                    OPC_MoveParent,
/*223307*/                    OPC_MoveChild2,
/*223308*/                    OPC_CheckImmAllZerosV,
/*223309*/                    OPC_MoveParent,
/*223310*/                    OPC_CheckType, MVT::v8i32,
/*223312*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*223314*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*223317*/                    OPC_EmitMergeInputChains1_1,
/*223318*/                    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>>, VR256X:{ *:[v4i64] }:$src1)), immAllZerosV:{ *:[v8i32] }) - Complexity = 35
                              // Dst: (VPXORDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*223331*/                  /*SwitchType*/ 26, MVT::v16i16,// ->223359
/*223333*/                    OPC_MoveParent,
/*223334*/                    OPC_MoveParent,
/*223335*/                    OPC_MoveChild2,
/*223336*/                    OPC_CheckImmAllZerosV,
/*223337*/                    OPC_MoveParent,
/*223338*/                    OPC_CheckType, MVT::v8i32,
/*223340*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*223342*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*223345*/                    OPC_EmitMergeInputChains1_1,
/*223346*/                    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:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1)), immAllZerosV:{ *:[v8i32] }) - Complexity = 35
                              // Dst: (VPXORDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*223359*/                  /*SwitchType*/ 26, MVT::v32i8,// ->223387
/*223361*/                    OPC_MoveParent,
/*223362*/                    OPC_MoveParent,
/*223363*/                    OPC_MoveChild2,
/*223364*/                    OPC_CheckImmAllZerosV,
/*223365*/                    OPC_MoveParent,
/*223366*/                    OPC_CheckType, MVT::v8i32,
/*223368*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*223370*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*223373*/                    OPC_EmitMergeInputChains1_1,
/*223374*/                    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:{ *:[v32i8] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v32i8] }:$src1)), immAllZerosV:{ *:[v8i32] }) - Complexity = 35
                              // Dst: (VPXORDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*223387*/                  0, // EndSwitchType
/*223388*/                0, /*End of Scope*/
/*223389*/              /*SwitchOpcode*/ 56|128,1/*184*/, TARGET_VAL(X86ISD::ANDNP),// ->223577
/*223393*/                OPC_RecordChild0, // #1 = $src1
/*223394*/                OPC_MoveChild1,
/*223395*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*223398*/                OPC_RecordMemRef,
/*223399*/                OPC_RecordNode, // #2 = 'ld' chained node
/*223400*/                OPC_CheckFoldableChainNode,
/*223401*/                OPC_RecordChild1, // #3 = $src2
/*223402*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*223404*/                OPC_CheckPredicate, 9, // Predicate_load
/*223406*/                OPC_MoveParent,
/*223407*/                OPC_SwitchType /*6 cases */, 26, MVT::v16i32,// ->223436
/*223410*/                  OPC_MoveParent,
/*223411*/                  OPC_MoveParent,
/*223412*/                  OPC_MoveChild2,
/*223413*/                  OPC_CheckImmAllZerosV,
/*223414*/                  OPC_MoveParent,
/*223415*/                  OPC_CheckType, MVT::v8i64,
/*223417*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*223419*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*223422*/                  OPC_EmitMergeInputChains1_2,
/*223423*/                  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, (bitconvert:{ *:[v8i64] } (X86andnp:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v8i64] }) - Complexity = 35
                            // Dst: (VPANDNQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*223436*/                /*SwitchType*/ 26, MVT::v32i16,// ->223464
/*223438*/                  OPC_MoveParent,
/*223439*/                  OPC_MoveParent,
/*223440*/                  OPC_MoveChild2,
/*223441*/                  OPC_CheckImmAllZerosV,
/*223442*/                  OPC_MoveParent,
/*223443*/                  OPC_CheckType, MVT::v8i64,
/*223445*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*223447*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*223450*/                  OPC_EmitMergeInputChains1_2,
/*223451*/                  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, (bitconvert:{ *:[v8i64] } (X86andnp:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v8i64] }) - Complexity = 35
                            // Dst: (VPANDNQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*223464*/                /*SwitchType*/ 26, MVT::v64i8,// ->223492
/*223466*/                  OPC_MoveParent,
/*223467*/                  OPC_MoveParent,
/*223468*/                  OPC_MoveChild2,
/*223469*/                  OPC_CheckImmAllZerosV,
/*223470*/                  OPC_MoveParent,
/*223471*/                  OPC_CheckType, MVT::v8i64,
/*223473*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*223475*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*223478*/                  OPC_EmitMergeInputChains1_2,
/*223479*/                  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, (bitconvert:{ *:[v8i64] } (X86andnp:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v8i64] }) - Complexity = 35
                            // Dst: (VPANDNQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*223492*/                /*SwitchType*/ 26, MVT::v4i64,// ->223520
/*223494*/                  OPC_MoveParent,
/*223495*/                  OPC_MoveParent,
/*223496*/                  OPC_MoveChild2,
/*223497*/                  OPC_CheckImmAllZerosV,
/*223498*/                  OPC_MoveParent,
/*223499*/                  OPC_CheckType, MVT::v8i32,
/*223501*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*223503*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*223506*/                  OPC_EmitMergeInputChains1_2,
/*223507*/                  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>>)), immAllZerosV:{ *:[v8i32] }) - Complexity = 35
                            // Dst: (VPANDNDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*223520*/                /*SwitchType*/ 26, MVT::v16i16,// ->223548
/*223522*/                  OPC_MoveParent,
/*223523*/                  OPC_MoveParent,
/*223524*/                  OPC_MoveChild2,
/*223525*/                  OPC_CheckImmAllZerosV,
/*223526*/                  OPC_MoveParent,
/*223527*/                  OPC_CheckType, MVT::v8i32,
/*223529*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*223531*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*223534*/                  OPC_EmitMergeInputChains1_2,
/*223535*/                  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:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v8i32] }) - Complexity = 35
                            // Dst: (VPANDNDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*223548*/                /*SwitchType*/ 26, MVT::v32i8,// ->223576
/*223550*/                  OPC_MoveParent,
/*223551*/                  OPC_MoveParent,
/*223552*/                  OPC_MoveChild2,
/*223553*/                  OPC_CheckImmAllZerosV,
/*223554*/                  OPC_MoveParent,
/*223555*/                  OPC_CheckType, MVT::v8i32,
/*223557*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*223559*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*223562*/                  OPC_EmitMergeInputChains1_2,
/*223563*/                  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:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v8i32] }) - Complexity = 35
                            // Dst: (VPANDNDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*223576*/                0, // EndSwitchType
/*223577*/              0, // EndSwitchOpcode
/*223578*/            /*Scope*/ 10|128,3/*394*/, /*->223974*/
/*223580*/              OPC_RecordChild0, // #1 = $ins
/*223581*/              OPC_MoveChild0,
/*223582*/              OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*223585*/              OPC_RecordChild0, // #2 = $src1
/*223586*/              OPC_MoveChild1,
/*223587*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*223590*/              OPC_RecordMemRef,
/*223591*/              OPC_RecordNode, // #3 = 'ld' chained node
/*223592*/              OPC_CheckFoldableChainNode,
/*223593*/              OPC_RecordChild1, // #4 = $src2
/*223594*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*223596*/              OPC_CheckPredicate, 9, // Predicate_load
/*223598*/              OPC_Scope, 109, /*->223709*/ // 7 children in Scope
/*223600*/                OPC_MoveParent,
/*223601*/                OPC_MoveChild2,
/*223602*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*223605*/                OPC_CheckType, MVT::iPTR,
/*223607*/                OPC_MoveParent,
/*223608*/                OPC_SwitchType /*3 cases */, 31, MVT::v4i64,// ->223642
/*223611*/                  OPC_MoveParent,
/*223612*/                  OPC_MoveParent,
/*223613*/                  OPC_RecordChild2, // #5 = $src0
/*223614*/                  OPC_CheckType, MVT::v8i32,
/*223616*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*223618*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*223621*/                  OPC_EmitMergeInputChains, 1, 3, 
/*223624*/                  OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*223627*/                  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>>, (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))
/*223642*/                /*SwitchType*/ 31, MVT::v16i16,// ->223675
/*223644*/                  OPC_MoveParent,
/*223645*/                  OPC_MoveParent,
/*223646*/                  OPC_RecordChild2, // #5 = $src0
/*223647*/                  OPC_CheckType, MVT::v8i32,
/*223649*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*223651*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*223654*/                  OPC_EmitMergeInputChains, 1, 3, 
/*223657*/                  OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*223660*/                  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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), VR256X:{ *:[v8i32] }:$src0) - Complexity = 34
                            // Dst: (VINSERTI32x4Z256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256X:{ *:[v16i16] }:$ins))
/*223675*/                /*SwitchType*/ 31, MVT::v32i8,// ->223708
/*223677*/                  OPC_MoveParent,
/*223678*/                  OPC_MoveParent,
/*223679*/                  OPC_RecordChild2, // #5 = $src0
/*223680*/                  OPC_CheckType, MVT::v8i32,
/*223682*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*223684*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*223687*/                  OPC_EmitMergeInputChains, 1, 3, 
/*223690*/                  OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*223693*/                  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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), VR256X:{ *:[v8i32] }:$src0) - Complexity = 34
                            // Dst: (VINSERTI32x4Z256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256X:{ *:[v32i8] }:$ins))
/*223708*/                0, // EndSwitchType
/*223709*/              /*Scope*/ 43, /*->223753*/
/*223710*/                OPC_CheckType, MVT::v4i32,
/*223712*/                OPC_MoveParent,
/*223713*/                OPC_MoveChild2,
/*223714*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*223717*/                OPC_CheckType, MVT::iPTR,
/*223719*/                OPC_MoveParent,
/*223720*/                OPC_CheckType, MVT::v16i32,
/*223722*/                OPC_MoveParent,
/*223723*/                OPC_MoveParent,
/*223724*/                OPC_RecordChild2, // #5 = $src0
/*223725*/                OPC_CheckType, MVT::v8i64,
/*223727*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*223729*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*223732*/                OPC_EmitMergeInputChains, 1, 3, 
/*223735*/                OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*223738*/                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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), VR512:{ *:[v8i64] }:$src0) - Complexity = 34
                          // Dst: (VINSERTI64x2Zrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR512:{ *:[v16i32] }:$ins))
/*223753*/              /*Scope*/ 43, /*->223797*/
/*223754*/                OPC_CheckType, MVT::v8i16,
/*223756*/                OPC_MoveParent,
/*223757*/                OPC_MoveChild2,
/*223758*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*223761*/                OPC_CheckType, MVT::iPTR,
/*223763*/                OPC_MoveParent,
/*223764*/                OPC_CheckType, MVT::v32i16,
/*223766*/                OPC_MoveParent,
/*223767*/                OPC_MoveParent,
/*223768*/                OPC_RecordChild2, // #5 = $src0
/*223769*/                OPC_CheckType, MVT::v8i64,
/*223771*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*223773*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*223776*/                OPC_EmitMergeInputChains, 1, 3, 
/*223779*/                OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*223782*/                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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), VR512:{ *:[v8i64] }:$src0) - Complexity = 34
                          // Dst: (VINSERTI64x2Zrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR512:{ *:[v32i16] }:$ins))
/*223797*/              /*Scope*/ 43, /*->223841*/
/*223798*/                OPC_CheckType, MVT::v16i8,
/*223800*/                OPC_MoveParent,
/*223801*/                OPC_MoveChild2,
/*223802*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*223805*/                OPC_CheckType, MVT::iPTR,
/*223807*/                OPC_MoveParent,
/*223808*/                OPC_CheckType, MVT::v64i8,
/*223810*/                OPC_MoveParent,
/*223811*/                OPC_MoveParent,
/*223812*/                OPC_RecordChild2, // #5 = $src0
/*223813*/                OPC_CheckType, MVT::v8i64,
/*223815*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*223817*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*223820*/                OPC_EmitMergeInputChains, 1, 3, 
/*223823*/                OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*223826*/                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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), VR512:{ *:[v8i64] }:$src0) - Complexity = 34
                          // Dst: (VINSERTI64x2Zrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR512:{ *:[v64i8] }:$ins))
/*223841*/              /*Scope*/ 43, /*->223885*/
/*223842*/                OPC_CheckType, MVT::v8i32,
/*223844*/                OPC_MoveParent,
/*223845*/                OPC_MoveChild2,
/*223846*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*223849*/                OPC_CheckType, MVT::iPTR,
/*223851*/                OPC_MoveParent,
/*223852*/                OPC_CheckType, MVT::v16i32,
/*223854*/                OPC_MoveParent,
/*223855*/                OPC_MoveParent,
/*223856*/                OPC_RecordChild2, // #5 = $src0
/*223857*/                OPC_CheckType, MVT::v8i64,
/*223859*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*223861*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*223864*/                OPC_EmitMergeInputChains, 1, 3, 
/*223867*/                OPC_EmitNodeXForm, 16, 1, // INSERT_get_vinsert256_imm
/*223870*/                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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$ins), VR512:{ *:[v8i64] }:$src0) - Complexity = 34
                          // Dst: (VINSERTI64x4Zrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } VR512:{ *:[v16i32] }:$ins))
/*223885*/              /*Scope*/ 43, /*->223929*/
/*223886*/                OPC_CheckType, MVT::v16i16,
/*223888*/                OPC_MoveParent,
/*223889*/                OPC_MoveChild2,
/*223890*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*223893*/                OPC_CheckType, MVT::iPTR,
/*223895*/                OPC_MoveParent,
/*223896*/                OPC_CheckType, MVT::v32i16,
/*223898*/                OPC_MoveParent,
/*223899*/                OPC_MoveParent,
/*223900*/                OPC_RecordChild2, // #5 = $src0
/*223901*/                OPC_CheckType, MVT::v8i64,
/*223903*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*223905*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*223908*/                OPC_EmitMergeInputChains, 1, 3, 
/*223911*/                OPC_EmitNodeXForm, 16, 1, // INSERT_get_vinsert256_imm
/*223914*/                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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$ins), VR512:{ *:[v8i64] }:$src0) - Complexity = 34
                          // Dst: (VINSERTI64x4Zrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } VR512:{ *:[v32i16] }:$ins))
/*223929*/              /*Scope*/ 43, /*->223973*/
/*223930*/                OPC_CheckType, MVT::v32i8,
/*223932*/                OPC_MoveParent,
/*223933*/                OPC_MoveChild2,
/*223934*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*223937*/                OPC_CheckType, MVT::iPTR,
/*223939*/                OPC_MoveParent,
/*223940*/                OPC_CheckType, MVT::v64i8,
/*223942*/                OPC_MoveParent,
/*223943*/                OPC_MoveParent,
/*223944*/                OPC_RecordChild2, // #5 = $src0
/*223945*/                OPC_CheckType, MVT::v8i64,
/*223947*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*223949*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*223952*/                OPC_EmitMergeInputChains, 1, 3, 
/*223955*/                OPC_EmitNodeXForm, 16, 1, // INSERT_get_vinsert256_imm
/*223958*/                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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$ins), VR512:{ *:[v8i64] }:$src0) - Complexity = 34
                          // Dst: (VINSERTI64x4Zrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } VR512:{ *:[v64i8] }:$ins))
/*223973*/              0, /*End of Scope*/
/*223974*/            /*Scope*/ 62|128,1/*190*/, /*->224166*/
/*223976*/              OPC_MoveChild0,
/*223977*/              OPC_SwitchOpcode /*3 cases */, 94, TARGET_VAL(X86ISD::SHUF128),// ->224075
/*223981*/                OPC_RecordChild0, // #1 = $src1
/*223982*/                OPC_MoveChild1,
/*223983*/                OPC_SwitchOpcode /*2 cases */, 43, TARGET_VAL(ISD::LOAD),// ->224030
/*223987*/                  OPC_RecordMemRef,
/*223988*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*223989*/                  OPC_CheckFoldableChainNode,
/*223990*/                  OPC_RecordChild1, // #3 = $src2
/*223991*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*223993*/                  OPC_CheckPredicate, 9, // Predicate_load
/*223995*/                  OPC_MoveParent,
/*223996*/                  OPC_RecordChild2, // #4 = $src3
/*223997*/                  OPC_MoveChild2,
/*223998*/                  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*224001*/                  OPC_MoveParent,
/*224002*/                  OPC_CheckType, MVT::v4i64,
/*224004*/                  OPC_MoveParent,
/*224005*/                  OPC_MoveParent,
/*224006*/                  OPC_RecordChild2, // #5 = $src0
/*224007*/                  OPC_CheckType, MVT::v8i32,
/*224009*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*224011*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*224014*/                  OPC_EmitMergeInputChains1_2,
/*224015*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI32X4Z256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (X86Shuf128:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 34
                            // Dst: (VSHUFI32X4Z256rmik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*224030*/                /*SwitchOpcode*/ 41, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->224074
/*224033*/                  OPC_RecordMemRef,
/*224034*/                  OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*224035*/                  OPC_CheckFoldableChainNode,
/*224036*/                  OPC_RecordChild1, // #3 = $src2
/*224037*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*224039*/                  OPC_MoveParent,
/*224040*/                  OPC_RecordChild2, // #4 = $src3
/*224041*/                  OPC_MoveChild2,
/*224042*/                  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*224045*/                  OPC_MoveParent,
/*224046*/                  OPC_CheckType, MVT::v4i64,
/*224048*/                  OPC_MoveParent,
/*224049*/                  OPC_MoveParent,
/*224050*/                  OPC_RecordChild2, // #5 = $src0
/*224051*/                  OPC_CheckType, MVT::v8i32,
/*224053*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*224055*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*224058*/                  OPC_EmitMergeInputChains1_2,
/*224059*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI32X4Z256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (X86Shuf128:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src3)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 34
                            // Dst: (VSHUFI32X4Z256rmbik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*224074*/                0, // EndSwitchOpcode
/*224075*/              /*SwitchOpcode*/ 51, TARGET_VAL(X86ISD::VALIGN),// ->224129
/*224078*/                OPC_RecordChild0, // #1 = $src1
/*224079*/                OPC_MoveChild1,
/*224080*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*224083*/                OPC_RecordMemRef,
/*224084*/                OPC_RecordNode, // #2 = 'ld' chained node
/*224085*/                OPC_CheckFoldableChainNode,
/*224086*/                OPC_RecordChild1, // #3 = $src2
/*224087*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*224089*/                OPC_CheckPredicate, 9, // Predicate_load
/*224091*/                OPC_MoveParent,
/*224092*/                OPC_RecordChild2, // #4 = $src3
/*224093*/                OPC_MoveChild2,
/*224094*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*224097*/                OPC_MoveParent,
/*224098*/                OPC_CheckType, MVT::v4i64,
/*224100*/                OPC_MoveParent,
/*224101*/                OPC_MoveParent,
/*224102*/                OPC_RecordChild2, // #5 = $src0
/*224103*/                OPC_CheckType, MVT::v8i32,
/*224105*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*224107*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*224110*/                OPC_EmitMergeInputChains1_2,
/*224111*/                OPC_EmitNodeXForm, 14, 4, // ValignqImm32XForm
/*224114*/                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, (bitconvert:{ *:[v8i32] } (X86VAlign:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 34
                          // Dst: (VALIGNDZ256rmik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (ValignqImm32XForm:{ *:[i8] } (timm:{ *:[i8] }):$src3))
/*224129*/              /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->224165
/*224132*/                OPC_RecordMemRef,
/*224133*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*224134*/                OPC_CheckFoldableChainNode,
/*224135*/                OPC_RecordChild1, // #2 = $src
/*224136*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*224138*/                OPC_CheckType, MVT::v4i64,
/*224140*/                OPC_MoveParent,
/*224141*/                OPC_MoveParent,
/*224142*/                OPC_MoveChild2,
/*224143*/                OPC_CheckImmAllZerosV,
/*224144*/                OPC_MoveParent,
/*224145*/                OPC_CheckType, MVT::v8i32,
/*224147*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*224149*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*224152*/                OPC_EmitMergeInputChains1_1,
/*224153*/                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] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                          // Dst: (VBROADCASTI32X2Z256mkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*224165*/              0, // EndSwitchOpcode
/*224166*/            0, /*End of Scope*/
/*224167*/          /*SwitchOpcode*/ 41|128,1/*169*/, TARGET_VAL(X86ISD::VSRLI),// ->224340
/*224171*/            OPC_MoveChild0,
/*224172*/            OPC_SwitchOpcode /*2 cases */, 84, TARGET_VAL(ISD::LOAD),// ->224260
/*224176*/              OPC_RecordMemRef,
/*224177*/              OPC_RecordNode, // #1 = 'ld' chained node
/*224178*/              OPC_CheckFoldableChainNode,
/*224179*/              OPC_RecordChild1, // #2 = $src1
/*224180*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*224182*/              OPC_CheckPredicate, 9, // Predicate_load
/*224184*/              OPC_MoveParent,
/*224185*/              OPC_RecordChild1, // #3 = $src2
/*224186*/              OPC_MoveChild1,
/*224187*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*224190*/              OPC_MoveParent,
/*224191*/              OPC_MoveParent,
/*224192*/              OPC_MoveChild2,
/*224193*/              OPC_CheckImmAllZerosV,
/*224194*/              OPC_MoveParent,
/*224195*/              OPC_SwitchType /*3 cases */, 19, MVT::v8i32,// ->224217
/*224198*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*224200*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*224203*/                OPC_EmitMergeInputChains1_1,
/*224204*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZ256mikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrli:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v8i32] }) - Complexity = 35
                          // Dst: (VPSRLDZ256mikz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*224217*/              /*SwitchType*/ 19, MVT::v8i64,// ->224238
/*224219*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*224221*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*224224*/                OPC_EmitMergeInputChains1_1,
/*224225*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrli:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v8i64] }) - Complexity = 35
                          // Dst: (VPSRLQZmikz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*224238*/              /*SwitchType*/ 19, MVT::v8i16,// ->224259
/*224240*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*224242*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*224245*/                OPC_EmitMergeInputChains1_1,
/*224246*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLWZ128mikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrli:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v8i16] }) - Complexity = 35
                          // Dst: (VPSRLWZ128mikz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*224259*/              0, // EndSwitchType
/*224260*/            /*SwitchOpcode*/ 76, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->224339
/*224263*/              OPC_RecordMemRef,
/*224264*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*224265*/              OPC_CheckFoldableChainNode,
/*224266*/              OPC_RecordChild1, // #2 = $src1
/*224267*/              OPC_Scope, 34, /*->224303*/ // 2 children in Scope
/*224269*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*224271*/                OPC_MoveParent,
/*224272*/                OPC_RecordChild1, // #3 = $src2
/*224273*/                OPC_MoveChild1,
/*224274*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*224277*/                OPC_MoveParent,
/*224278*/                OPC_MoveParent,
/*224279*/                OPC_MoveChild2,
/*224280*/                OPC_CheckImmAllZerosV,
/*224281*/                OPC_MoveParent,
/*224282*/                OPC_CheckType, MVT::v8i32,
/*224284*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*224286*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*224289*/                OPC_EmitMergeInputChains1_1,
/*224290*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZ256mbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrli:{ *:[v8i32] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v8i32] }) - Complexity = 35
                          // Dst: (VPSRLDZ256mbikz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*224303*/              /*Scope*/ 34, /*->224338*/
/*224304*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*224306*/                OPC_MoveParent,
/*224307*/                OPC_RecordChild1, // #3 = $src2
/*224308*/                OPC_MoveChild1,
/*224309*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*224312*/                OPC_MoveParent,
/*224313*/                OPC_MoveParent,
/*224314*/                OPC_MoveChild2,
/*224315*/                OPC_CheckImmAllZerosV,
/*224316*/                OPC_MoveParent,
/*224317*/                OPC_CheckType, MVT::v8i64,
/*224319*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*224321*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*224324*/                OPC_EmitMergeInputChains1_1,
/*224325*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrli:{ *:[v8i64] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v8i64] }) - Complexity = 35
                          // Dst: (VPSRLQZmbikz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*224338*/              0, /*End of Scope*/
/*224339*/            0, // EndSwitchOpcode
/*224340*/          /*SwitchOpcode*/ 41|128,1/*169*/, TARGET_VAL(X86ISD::VSHLI),// ->224513
/*224344*/            OPC_MoveChild0,
/*224345*/            OPC_SwitchOpcode /*2 cases */, 84, TARGET_VAL(ISD::LOAD),// ->224433
/*224349*/              OPC_RecordMemRef,
/*224350*/              OPC_RecordNode, // #1 = 'ld' chained node
/*224351*/              OPC_CheckFoldableChainNode,
/*224352*/              OPC_RecordChild1, // #2 = $src1
/*224353*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*224355*/              OPC_CheckPredicate, 9, // Predicate_load
/*224357*/              OPC_MoveParent,
/*224358*/              OPC_RecordChild1, // #3 = $src2
/*224359*/              OPC_MoveChild1,
/*224360*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*224363*/              OPC_MoveParent,
/*224364*/              OPC_MoveParent,
/*224365*/              OPC_MoveChild2,
/*224366*/              OPC_CheckImmAllZerosV,
/*224367*/              OPC_MoveParent,
/*224368*/              OPC_SwitchType /*3 cases */, 19, MVT::v8i32,// ->224390
/*224371*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*224373*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*224376*/                OPC_EmitMergeInputChains1_1,
/*224377*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZ256mikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vshli:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v8i32] }) - Complexity = 35
                          // Dst: (VPSLLDZ256mikz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*224390*/              /*SwitchType*/ 19, MVT::v8i64,// ->224411
/*224392*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*224394*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*224397*/                OPC_EmitMergeInputChains1_1,
/*224398*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vshli:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v8i64] }) - Complexity = 35
                          // Dst: (VPSLLQZmikz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*224411*/              /*SwitchType*/ 19, MVT::v8i16,// ->224432
/*224413*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*224415*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*224418*/                OPC_EmitMergeInputChains1_1,
/*224419*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLWZ128mikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vshli:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v8i16] }) - Complexity = 35
                          // Dst: (VPSLLWZ128mikz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*224432*/              0, // EndSwitchType
/*224433*/            /*SwitchOpcode*/ 76, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->224512
/*224436*/              OPC_RecordMemRef,
/*224437*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*224438*/              OPC_CheckFoldableChainNode,
/*224439*/              OPC_RecordChild1, // #2 = $src1
/*224440*/              OPC_Scope, 34, /*->224476*/ // 2 children in Scope
/*224442*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*224444*/                OPC_MoveParent,
/*224445*/                OPC_RecordChild1, // #3 = $src2
/*224446*/                OPC_MoveChild1,
/*224447*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*224450*/                OPC_MoveParent,
/*224451*/                OPC_MoveParent,
/*224452*/                OPC_MoveChild2,
/*224453*/                OPC_CheckImmAllZerosV,
/*224454*/                OPC_MoveParent,
/*224455*/                OPC_CheckType, MVT::v8i32,
/*224457*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*224459*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*224462*/                OPC_EmitMergeInputChains1_1,
/*224463*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZ256mbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vshli:{ *:[v8i32] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v8i32] }) - Complexity = 35
                          // Dst: (VPSLLDZ256mbikz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*224476*/              /*Scope*/ 34, /*->224511*/
/*224477*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*224479*/                OPC_MoveParent,
/*224480*/                OPC_RecordChild1, // #3 = $src2
/*224481*/                OPC_MoveChild1,
/*224482*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*224485*/                OPC_MoveParent,
/*224486*/                OPC_MoveParent,
/*224487*/                OPC_MoveChild2,
/*224488*/                OPC_CheckImmAllZerosV,
/*224489*/                OPC_MoveParent,
/*224490*/                OPC_CheckType, MVT::v8i64,
/*224492*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*224494*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*224497*/                OPC_EmitMergeInputChains1_1,
/*224498*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vshli:{ *:[v8i64] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v8i64] }) - Complexity = 35
                          // Dst: (VPSLLQZmbikz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*224511*/              0, /*End of Scope*/
/*224512*/            0, // EndSwitchOpcode
/*224513*/          /*SwitchOpcode*/ 41|128,1/*169*/, TARGET_VAL(X86ISD::VSRAI),// ->224686
/*224517*/            OPC_MoveChild0,
/*224518*/            OPC_SwitchOpcode /*2 cases */, 84, TARGET_VAL(ISD::LOAD),// ->224606
/*224522*/              OPC_RecordMemRef,
/*224523*/              OPC_RecordNode, // #1 = 'ld' chained node
/*224524*/              OPC_CheckFoldableChainNode,
/*224525*/              OPC_RecordChild1, // #2 = $src1
/*224526*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*224528*/              OPC_CheckPredicate, 9, // Predicate_load
/*224530*/              OPC_MoveParent,
/*224531*/              OPC_RecordChild1, // #3 = $src2
/*224532*/              OPC_MoveChild1,
/*224533*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*224536*/              OPC_MoveParent,
/*224537*/              OPC_MoveParent,
/*224538*/              OPC_MoveChild2,
/*224539*/              OPC_CheckImmAllZerosV,
/*224540*/              OPC_MoveParent,
/*224541*/              OPC_SwitchType /*3 cases */, 19, MVT::v8i32,// ->224563
/*224544*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*224546*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*224549*/                OPC_EmitMergeInputChains1_1,
/*224550*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZ256mikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrai:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v8i32] }) - Complexity = 35
                          // Dst: (VPSRADZ256mikz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*224563*/              /*SwitchType*/ 19, MVT::v8i64,// ->224584
/*224565*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*224567*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*224570*/                OPC_EmitMergeInputChains1_1,
/*224571*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrai:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v8i64] }) - Complexity = 35
                          // Dst: (VPSRAQZmikz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*224584*/              /*SwitchType*/ 19, MVT::v8i16,// ->224605
/*224586*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*224588*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*224591*/                OPC_EmitMergeInputChains1_1,
/*224592*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAWZ128mikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrai:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v8i16] }) - Complexity = 35
                          // Dst: (VPSRAWZ128mikz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*224605*/              0, // EndSwitchType
/*224606*/            /*SwitchOpcode*/ 76, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->224685
/*224609*/              OPC_RecordMemRef,
/*224610*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*224611*/              OPC_CheckFoldableChainNode,
/*224612*/              OPC_RecordChild1, // #2 = $src1
/*224613*/              OPC_Scope, 34, /*->224649*/ // 2 children in Scope
/*224615*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*224617*/                OPC_MoveParent,
/*224618*/                OPC_RecordChild1, // #3 = $src2
/*224619*/                OPC_MoveChild1,
/*224620*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*224623*/                OPC_MoveParent,
/*224624*/                OPC_MoveParent,
/*224625*/                OPC_MoveChild2,
/*224626*/                OPC_CheckImmAllZerosV,
/*224627*/                OPC_MoveParent,
/*224628*/                OPC_CheckType, MVT::v8i32,
/*224630*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*224632*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*224635*/                OPC_EmitMergeInputChains1_1,
/*224636*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZ256mbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrai:{ *:[v8i32] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v8i32] }) - Complexity = 35
                          // Dst: (VPSRADZ256mbikz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*224649*/              /*Scope*/ 34, /*->224684*/
/*224650*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*224652*/                OPC_MoveParent,
/*224653*/                OPC_RecordChild1, // #3 = $src2
/*224654*/                OPC_MoveChild1,
/*224655*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*224658*/                OPC_MoveParent,
/*224659*/                OPC_MoveParent,
/*224660*/                OPC_MoveChild2,
/*224661*/                OPC_CheckImmAllZerosV,
/*224662*/                OPC_MoveParent,
/*224663*/                OPC_CheckType, MVT::v8i64,
/*224665*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*224667*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*224670*/                OPC_EmitMergeInputChains1_1,
/*224671*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrai:{ *:[v8i64] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v8i64] }) - Complexity = 35
                          // Dst: (VPSRAQZmbikz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*224684*/              0, /*End of Scope*/
/*224685*/            0, // EndSwitchOpcode
/*224686*/          /*SwitchOpcode*/ 20|128,1/*148*/, TARGET_VAL(X86ISD::VROTRI),// ->224838
/*224690*/            OPC_MoveChild0,
/*224691*/            OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->224758
/*224695*/              OPC_RecordMemRef,
/*224696*/              OPC_RecordNode, // #1 = 'ld' chained node
/*224697*/              OPC_CheckFoldableChainNode,
/*224698*/              OPC_RecordChild1, // #2 = $src1
/*224699*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*224701*/              OPC_CheckPredicate, 9, // Predicate_load
/*224703*/              OPC_MoveParent,
/*224704*/              OPC_RecordChild1, // #3 = $src2
/*224705*/              OPC_MoveChild1,
/*224706*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*224709*/              OPC_MoveParent,
/*224710*/              OPC_MoveParent,
/*224711*/              OPC_MoveChild2,
/*224712*/              OPC_CheckImmAllZerosV,
/*224713*/              OPC_MoveParent,
/*224714*/              OPC_SwitchType /*2 cases */, 19, MVT::v8i32,// ->224736
/*224717*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*224719*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*224722*/                OPC_EmitMergeInputChains1_1,
/*224723*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORDZ256mikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vrotri:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v8i32] }) - Complexity = 35
                          // Dst: (VPRORDZ256mikz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*224736*/              /*SwitchType*/ 19, MVT::v8i64,// ->224757
/*224738*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*224740*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*224743*/                OPC_EmitMergeInputChains1_1,
/*224744*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORQZmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vrotri:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v8i64] }) - Complexity = 35
                          // Dst: (VPRORQZmikz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*224757*/              0, // EndSwitchType
/*224758*/            /*SwitchOpcode*/ 76, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->224837
/*224761*/              OPC_RecordMemRef,
/*224762*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*224763*/              OPC_CheckFoldableChainNode,
/*224764*/              OPC_RecordChild1, // #2 = $src1
/*224765*/              OPC_Scope, 34, /*->224801*/ // 2 children in Scope
/*224767*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*224769*/                OPC_MoveParent,
/*224770*/                OPC_RecordChild1, // #3 = $src2
/*224771*/                OPC_MoveChild1,
/*224772*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*224775*/                OPC_MoveParent,
/*224776*/                OPC_MoveParent,
/*224777*/                OPC_MoveChild2,
/*224778*/                OPC_CheckImmAllZerosV,
/*224779*/                OPC_MoveParent,
/*224780*/                OPC_CheckType, MVT::v8i32,
/*224782*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*224784*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*224787*/                OPC_EmitMergeInputChains1_1,
/*224788*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORDZ256mbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vrotri:{ *:[v8i32] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v8i32] }) - Complexity = 35
                          // Dst: (VPRORDZ256mbikz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*224801*/              /*Scope*/ 34, /*->224836*/
/*224802*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*224804*/                OPC_MoveParent,
/*224805*/                OPC_RecordChild1, // #3 = $src2
/*224806*/                OPC_MoveChild1,
/*224807*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*224810*/                OPC_MoveParent,
/*224811*/                OPC_MoveParent,
/*224812*/                OPC_MoveChild2,
/*224813*/                OPC_CheckImmAllZerosV,
/*224814*/                OPC_MoveParent,
/*224815*/                OPC_CheckType, MVT::v8i64,
/*224817*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*224819*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*224822*/                OPC_EmitMergeInputChains1_1,
/*224823*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORQZmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vrotri:{ *:[v8i64] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v8i64] }) - Complexity = 35
                          // Dst: (VPRORQZmbikz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*224836*/              0, /*End of Scope*/
/*224837*/            0, // EndSwitchOpcode
/*224838*/          /*SwitchOpcode*/ 20|128,1/*148*/, TARGET_VAL(X86ISD::VROTLI),// ->224990
/*224842*/            OPC_MoveChild0,
/*224843*/            OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->224910
/*224847*/              OPC_RecordMemRef,
/*224848*/              OPC_RecordNode, // #1 = 'ld' chained node
/*224849*/              OPC_CheckFoldableChainNode,
/*224850*/              OPC_RecordChild1, // #2 = $src1
/*224851*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*224853*/              OPC_CheckPredicate, 9, // Predicate_load
/*224855*/              OPC_MoveParent,
/*224856*/              OPC_RecordChild1, // #3 = $src2
/*224857*/              OPC_MoveChild1,
/*224858*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*224861*/              OPC_MoveParent,
/*224862*/              OPC_MoveParent,
/*224863*/              OPC_MoveChild2,
/*224864*/              OPC_CheckImmAllZerosV,
/*224865*/              OPC_MoveParent,
/*224866*/              OPC_SwitchType /*2 cases */, 19, MVT::v8i32,// ->224888
/*224869*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*224871*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*224874*/                OPC_EmitMergeInputChains1_1,
/*224875*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLDZ256mikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vrotli:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v8i32] }) - Complexity = 35
                          // Dst: (VPROLDZ256mikz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*224888*/              /*SwitchType*/ 19, MVT::v8i64,// ->224909
/*224890*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*224892*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*224895*/                OPC_EmitMergeInputChains1_1,
/*224896*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLQZmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vrotli:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v8i64] }) - Complexity = 35
                          // Dst: (VPROLQZmikz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*224909*/              0, // EndSwitchType
/*224910*/            /*SwitchOpcode*/ 76, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->224989
/*224913*/              OPC_RecordMemRef,
/*224914*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*224915*/              OPC_CheckFoldableChainNode,
/*224916*/              OPC_RecordChild1, // #2 = $src1
/*224917*/              OPC_Scope, 34, /*->224953*/ // 2 children in Scope
/*224919*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*224921*/                OPC_MoveParent,
/*224922*/                OPC_RecordChild1, // #3 = $src2
/*224923*/                OPC_MoveChild1,
/*224924*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*224927*/                OPC_MoveParent,
/*224928*/                OPC_MoveParent,
/*224929*/                OPC_MoveChild2,
/*224930*/                OPC_CheckImmAllZerosV,
/*224931*/                OPC_MoveParent,
/*224932*/                OPC_CheckType, MVT::v8i32,
/*224934*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*224936*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*224939*/                OPC_EmitMergeInputChains1_1,
/*224940*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLDZ256mbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vrotli:{ *:[v8i32] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v8i32] }) - Complexity = 35
                          // Dst: (VPROLDZ256mbikz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*224953*/              /*Scope*/ 34, /*->224988*/
/*224954*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*224956*/                OPC_MoveParent,
/*224957*/                OPC_RecordChild1, // #3 = $src2
/*224958*/                OPC_MoveChild1,
/*224959*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*224962*/                OPC_MoveParent,
/*224963*/                OPC_MoveParent,
/*224964*/                OPC_MoveChild2,
/*224965*/                OPC_CheckImmAllZerosV,
/*224966*/                OPC_MoveParent,
/*224967*/                OPC_CheckType, MVT::v8i64,
/*224969*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*224971*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*224974*/                OPC_EmitMergeInputChains1_1,
/*224975*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLQZmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vrotli:{ *:[v8i64] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v8i64] }) - Complexity = 35
                          // Dst: (VPROLQZmbikz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*224988*/              0, /*End of Scope*/
/*224989*/            0, // EndSwitchOpcode
/*224990*/          /*SwitchOpcode*/ 87, TARGET_VAL(X86ISD::VPERMI),// ->225080
/*224993*/            OPC_MoveChild0,
/*224994*/            OPC_SwitchOpcode /*2 cases */, 40, TARGET_VAL(ISD::LOAD),// ->225038
/*224998*/              OPC_RecordMemRef,
/*224999*/              OPC_RecordNode, // #1 = 'ld' chained node
/*225000*/              OPC_CheckFoldableChainNode,
/*225001*/              OPC_RecordChild1, // #2 = $src1
/*225002*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*225004*/              OPC_CheckPredicate, 9, // Predicate_load
/*225006*/              OPC_MoveParent,
/*225007*/              OPC_RecordChild1, // #3 = $src2
/*225008*/              OPC_MoveChild1,
/*225009*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*225012*/              OPC_MoveParent,
/*225013*/              OPC_MoveParent,
/*225014*/              OPC_MoveChild2,
/*225015*/              OPC_CheckImmAllZerosV,
/*225016*/              OPC_MoveParent,
/*225017*/              OPC_CheckType, MVT::v8i64,
/*225019*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*225021*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*225024*/              OPC_EmitMergeInputChains1_1,
/*225025*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMQZmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermi:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v8i64] }) - Complexity = 35
                        // Dst: (VPERMQZmikz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*225038*/            /*SwitchOpcode*/ 38, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->225079
/*225041*/              OPC_RecordMemRef,
/*225042*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*225043*/              OPC_CheckFoldableChainNode,
/*225044*/              OPC_RecordChild1, // #2 = $src1
/*225045*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*225047*/              OPC_MoveParent,
/*225048*/              OPC_RecordChild1, // #3 = $src2
/*225049*/              OPC_MoveChild1,
/*225050*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*225053*/              OPC_MoveParent,
/*225054*/              OPC_MoveParent,
/*225055*/              OPC_MoveChild2,
/*225056*/              OPC_CheckImmAllZerosV,
/*225057*/              OPC_MoveParent,
/*225058*/              OPC_CheckType, MVT::v8i64,
/*225060*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*225062*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*225065*/              OPC_EmitMergeInputChains1_1,
/*225066*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMQZmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermi:{ *:[v8i64] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v8i64] }) - Complexity = 35
                        // Dst: (VPERMQZmbikz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*225079*/            0, // EndSwitchOpcode
/*225080*/          /*SwitchOpcode*/ 87, TARGET_VAL(X86ISD::PSHUFD),// ->225170
/*225083*/            OPC_MoveChild0,
/*225084*/            OPC_SwitchOpcode /*2 cases */, 40, TARGET_VAL(ISD::LOAD),// ->225128
/*225088*/              OPC_RecordMemRef,
/*225089*/              OPC_RecordNode, // #1 = 'ld' chained node
/*225090*/              OPC_CheckFoldableChainNode,
/*225091*/              OPC_RecordChild1, // #2 = $src1
/*225092*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*225094*/              OPC_CheckPredicate, 9, // Predicate_load
/*225096*/              OPC_MoveParent,
/*225097*/              OPC_RecordChild1, // #3 = $src2
/*225098*/              OPC_MoveChild1,
/*225099*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*225102*/              OPC_MoveParent,
/*225103*/              OPC_MoveParent,
/*225104*/              OPC_MoveChild2,
/*225105*/              OPC_CheckImmAllZerosV,
/*225106*/              OPC_MoveParent,
/*225107*/              OPC_CheckType, MVT::v8i32,
/*225109*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*225111*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*225114*/              OPC_EmitMergeInputChains1_1,
/*225115*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFDZ256mikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86PShufd:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v8i32] }) - Complexity = 35
                        // Dst: (VPSHUFDZ256mikz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*225128*/            /*SwitchOpcode*/ 38, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->225169
/*225131*/              OPC_RecordMemRef,
/*225132*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*225133*/              OPC_CheckFoldableChainNode,
/*225134*/              OPC_RecordChild1, // #2 = $src1
/*225135*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*225137*/              OPC_MoveParent,
/*225138*/              OPC_RecordChild1, // #3 = $src2
/*225139*/              OPC_MoveChild1,
/*225140*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*225143*/              OPC_MoveParent,
/*225144*/              OPC_MoveParent,
/*225145*/              OPC_MoveChild2,
/*225146*/              OPC_CheckImmAllZerosV,
/*225147*/              OPC_MoveParent,
/*225148*/              OPC_CheckType, MVT::v8i32,
/*225150*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*225152*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*225155*/              OPC_EmitMergeInputChains1_1,
/*225156*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFDZ256mbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86PShufd:{ *:[v8i32] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v8i32] }) - Complexity = 35
                        // Dst: (VPSHUFDZ256mbikz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*225169*/            0, // EndSwitchOpcode
/*225170*/          /*SwitchOpcode*/ 44, TARGET_VAL(X86ISD::PSHUFHW),// ->225217
/*225173*/            OPC_MoveChild0,
/*225174*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*225177*/            OPC_RecordMemRef,
/*225178*/            OPC_RecordNode, // #1 = 'ld' chained node
/*225179*/            OPC_CheckFoldableChainNode,
/*225180*/            OPC_RecordChild1, // #2 = $src1
/*225181*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*225183*/            OPC_CheckPredicate, 9, // Predicate_load
/*225185*/            OPC_MoveParent,
/*225186*/            OPC_RecordChild1, // #3 = $src2
/*225187*/            OPC_MoveChild1,
/*225188*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*225191*/            OPC_MoveParent,
/*225192*/            OPC_MoveParent,
/*225193*/            OPC_MoveChild2,
/*225194*/            OPC_CheckImmAllZerosV,
/*225195*/            OPC_MoveParent,
/*225196*/            OPC_CheckType, MVT::v8i16,
/*225198*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*225200*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*225203*/            OPC_EmitMergeInputChains1_1,
/*225204*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFHWZ128mikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86PShufhw:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v8i16] }) - Complexity = 35
                      // Dst: (VPSHUFHWZ128mikz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*225217*/          /*SwitchOpcode*/ 44, TARGET_VAL(X86ISD::PSHUFLW),// ->225264
/*225220*/            OPC_MoveChild0,
/*225221*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*225224*/            OPC_RecordMemRef,
/*225225*/            OPC_RecordNode, // #1 = 'ld' chained node
/*225226*/            OPC_CheckFoldableChainNode,
/*225227*/            OPC_RecordChild1, // #2 = $src1
/*225228*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*225230*/            OPC_CheckPredicate, 9, // Predicate_load
/*225232*/            OPC_MoveParent,
/*225233*/            OPC_RecordChild1, // #3 = $src2
/*225234*/            OPC_MoveChild1,
/*225235*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*225238*/            OPC_MoveParent,
/*225239*/            OPC_MoveParent,
/*225240*/            OPC_MoveChild2,
/*225241*/            OPC_CheckImmAllZerosV,
/*225242*/            OPC_MoveParent,
/*225243*/            OPC_CheckType, MVT::v8i16,
/*225245*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*225247*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*225250*/            OPC_EmitMergeInputChains1_1,
/*225251*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFLWZ128mikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86PShuflw:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v8i16] }) - Complexity = 35
                      // Dst: (VPSHUFLWZ128mikz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*225264*/          /*SwitchOpcode*/ 90, TARGET_VAL(X86ISD::SHUF128),// ->225357
/*225267*/            OPC_RecordChild0, // #1 = $src1
/*225268*/            OPC_MoveChild1,
/*225269*/            OPC_SwitchOpcode /*2 cases */, 41, TARGET_VAL(ISD::LOAD),// ->225314
/*225273*/              OPC_RecordMemRef,
/*225274*/              OPC_RecordNode, // #2 = 'ld' chained node
/*225275*/              OPC_CheckFoldableChainNode,
/*225276*/              OPC_RecordChild1, // #3 = $src2
/*225277*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*225279*/              OPC_CheckPredicate, 9, // Predicate_load
/*225281*/              OPC_MoveParent,
/*225282*/              OPC_RecordChild2, // #4 = $src3
/*225283*/              OPC_MoveChild2,
/*225284*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*225287*/              OPC_MoveParent,
/*225288*/              OPC_MoveParent,
/*225289*/              OPC_MoveChild2,
/*225290*/              OPC_CheckImmAllZerosV,
/*225291*/              OPC_MoveParent,
/*225292*/              OPC_CheckType, MVT::v8i64,
/*225294*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*225296*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*225299*/              OPC_EmitMergeInputChains1_2,
/*225300*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI64X2Zrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86Shuf128:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v8i64] }) - Complexity = 35
                        // Dst: (VSHUFI64X2Zrmikz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*225314*/            /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->225356
/*225317*/              OPC_RecordMemRef,
/*225318*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*225319*/              OPC_CheckFoldableChainNode,
/*225320*/              OPC_RecordChild1, // #3 = $src2
/*225321*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*225323*/              OPC_MoveParent,
/*225324*/              OPC_RecordChild2, // #4 = $src3
/*225325*/              OPC_MoveChild2,
/*225326*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*225329*/              OPC_MoveParent,
/*225330*/              OPC_MoveParent,
/*225331*/              OPC_MoveChild2,
/*225332*/              OPC_CheckImmAllZerosV,
/*225333*/              OPC_MoveParent,
/*225334*/              OPC_CheckType, MVT::v8i64,
/*225336*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*225338*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*225341*/              OPC_EmitMergeInputChains1_2,
/*225342*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI64X2Zrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86Shuf128:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v8i64] }) - Complexity = 35
                        // Dst: (VSHUFI64X2Zrmbikz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*225356*/            0, // EndSwitchOpcode
/*225357*/          /*SwitchOpcode*/ 25|128,1/*153*/, TARGET_VAL(X86ISD::VALIGN),// ->225514
/*225361*/            OPC_RecordChild0, // #1 = $src1
/*225362*/            OPC_MoveChild1,
/*225363*/            OPC_SwitchOpcode /*2 cases */, 65, TARGET_VAL(ISD::LOAD),// ->225432
/*225367*/              OPC_RecordMemRef,
/*225368*/              OPC_RecordNode, // #2 = 'ld' chained node
/*225369*/              OPC_CheckFoldableChainNode,
/*225370*/              OPC_RecordChild1, // #3 = $src2
/*225371*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*225373*/              OPC_CheckPredicate, 9, // Predicate_load
/*225375*/              OPC_MoveParent,
/*225376*/              OPC_RecordChild2, // #4 = $src3
/*225377*/              OPC_MoveChild2,
/*225378*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*225381*/              OPC_MoveParent,
/*225382*/              OPC_MoveParent,
/*225383*/              OPC_MoveChild2,
/*225384*/              OPC_CheckImmAllZerosV,
/*225385*/              OPC_MoveParent,
/*225386*/              OPC_SwitchType /*2 cases */, 20, MVT::v8i32,// ->225409
/*225389*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*225391*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*225394*/                OPC_EmitMergeInputChains1_2,
/*225395*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VAlign:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v8i32] }) - Complexity = 35
                          // Dst: (VALIGNDZ256rmikz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*225409*/              /*SwitchType*/ 20, MVT::v8i64,// ->225431
/*225411*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*225413*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*225416*/                OPC_EmitMergeInputChains1_2,
/*225417*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNQZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VAlign:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v8i64] }) - Complexity = 35
                          // Dst: (VALIGNQZrmikz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*225431*/              0, // EndSwitchType
/*225432*/            /*SwitchOpcode*/ 78, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->225513
/*225435*/              OPC_RecordMemRef,
/*225436*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*225437*/              OPC_CheckFoldableChainNode,
/*225438*/              OPC_RecordChild1, // #3 = $src2
/*225439*/              OPC_Scope, 35, /*->225476*/ // 2 children in Scope
/*225441*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*225443*/                OPC_MoveParent,
/*225444*/                OPC_RecordChild2, // #4 = $src3
/*225445*/                OPC_MoveChild2,
/*225446*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*225449*/                OPC_MoveParent,
/*225450*/                OPC_MoveParent,
/*225451*/                OPC_MoveChild2,
/*225452*/                OPC_CheckImmAllZerosV,
/*225453*/                OPC_MoveParent,
/*225454*/                OPC_CheckType, MVT::v8i32,
/*225456*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*225458*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*225461*/                OPC_EmitMergeInputChains1_2,
/*225462*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZ256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VAlign:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v8i32] }) - Complexity = 35
                          // Dst: (VALIGNDZ256rmbikz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*225476*/              /*Scope*/ 35, /*->225512*/
/*225477*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*225479*/                OPC_MoveParent,
/*225480*/                OPC_RecordChild2, // #4 = $src3
/*225481*/                OPC_MoveChild2,
/*225482*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*225485*/                OPC_MoveParent,
/*225486*/                OPC_MoveParent,
/*225487*/                OPC_MoveChild2,
/*225488*/                OPC_CheckImmAllZerosV,
/*225489*/                OPC_MoveParent,
/*225490*/                OPC_CheckType, MVT::v8i64,
/*225492*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*225494*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*225497*/                OPC_EmitMergeInputChains1_2,
/*225498*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNQZrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VAlign:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v8i64] }) - Complexity = 35
                          // Dst: (VALIGNQZrmbikz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*225512*/              0, /*End of Scope*/
/*225513*/            0, // EndSwitchOpcode
/*225514*/          /*SwitchOpcode*/ 46, TARGET_VAL(X86ISD::DBPSADBW),// ->225563
/*225517*/            OPC_RecordChild0, // #1 = $src1
/*225518*/            OPC_MoveChild1,
/*225519*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*225522*/            OPC_RecordMemRef,
/*225523*/            OPC_RecordNode, // #2 = 'ld' chained node
/*225524*/            OPC_CheckFoldableChainNode,
/*225525*/            OPC_RecordChild1, // #3 = $src2
/*225526*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*225528*/            OPC_CheckPredicate, 9, // Predicate_load
/*225530*/            OPC_MoveParent,
/*225531*/            OPC_RecordChild2, // #4 = $src3
/*225532*/            OPC_MoveChild2,
/*225533*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*225536*/            OPC_MoveParent,
/*225537*/            OPC_MoveParent,
/*225538*/            OPC_MoveChild2,
/*225539*/            OPC_CheckImmAllZerosV,
/*225540*/            OPC_MoveParent,
/*225541*/            OPC_CheckType, MVT::v8i16,
/*225543*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*225545*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*225548*/            OPC_EmitMergeInputChains1_2,
/*225549*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDBPSADBWZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86dbpsadbw:{ *:[v8i16] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v8i16] }) - Complexity = 35
                      // Dst: (VDBPSADBWZ128rmikz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*225563*/          /*SwitchOpcode*/ 97|128,4/*609*/, TARGET_VAL(X86ISD::VPTERNLOG),// ->226176
/*225567*/            OPC_Scope, 97, /*->225666*/ // 9 children in Scope
/*225569*/              OPC_RecordChild0, // #1 = $src1
/*225570*/              OPC_RecordChild1, // #2 = $src2
/*225571*/              OPC_MoveChild2,
/*225572*/              OPC_SwitchOpcode /*2 cases */, 44, TARGET_VAL(ISD::LOAD),// ->225620
/*225576*/                OPC_RecordMemRef,
/*225577*/                OPC_RecordNode, // #3 = 'ld' chained node
/*225578*/                OPC_CheckFoldableChainNode,
/*225579*/                OPC_RecordChild1, // #4 = $src3
/*225580*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*225582*/                OPC_CheckPredicate, 9, // Predicate_load
/*225584*/                OPC_MoveParent,
/*225585*/                OPC_RecordChild3, // #5 = $src4
/*225586*/                OPC_MoveChild3,
/*225587*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*225590*/                OPC_MoveParent,
/*225591*/                OPC_MoveParent,
/*225592*/                OPC_MoveChild2,
/*225593*/                OPC_CheckImmAllZerosV,
/*225594*/                OPC_MoveParent,
/*225595*/                OPC_CheckType, MVT::v8i32,
/*225597*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*225599*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*225602*/                OPC_EmitMergeInputChains, 1, 3, 
/*225605*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 5, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src4), immAllZerosV:{ *:[v8i32] }) - Complexity = 35
                          // Dst: (VPTERNLOGDZ256rmikz:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i8] }):$src4)
/*225620*/              /*SwitchOpcode*/ 42, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->225665
/*225623*/                OPC_RecordMemRef,
/*225624*/                OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*225625*/                OPC_CheckFoldableChainNode,
/*225626*/                OPC_RecordChild1, // #4 = $src3
/*225627*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*225629*/                OPC_MoveParent,
/*225630*/                OPC_RecordChild3, // #5 = $src4
/*225631*/                OPC_MoveChild3,
/*225632*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*225635*/                OPC_MoveParent,
/*225636*/                OPC_MoveParent,
/*225637*/                OPC_MoveChild2,
/*225638*/                OPC_CheckImmAllZerosV,
/*225639*/                OPC_MoveParent,
/*225640*/                OPC_CheckType, MVT::v8i32,
/*225642*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*225644*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*225647*/                OPC_EmitMergeInputChains, 1, 3, 
/*225650*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 5, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src4), immAllZerosV:{ *:[v8i32] }) - Complexity = 35
                          // Dst: (VPTERNLOGDZ256rmbikz:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i8] }):$src4)
/*225665*/              0, // EndSwitchOpcode
/*225666*/            /*Scope*/ 51, /*->225718*/
/*225667*/              OPC_MoveChild0,
/*225668*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*225671*/              OPC_RecordMemRef,
/*225672*/              OPC_RecordNode, // #1 = 'ld' chained node
/*225673*/              OPC_CheckFoldableChainNode,
/*225674*/              OPC_RecordChild1, // #2 = $src3
/*225675*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*225677*/              OPC_CheckPredicate, 9, // Predicate_load
/*225679*/              OPC_MoveParent,
/*225680*/              OPC_RecordChild1, // #3 = $src2
/*225681*/              OPC_RecordChild2, // #4 = $src1
/*225682*/              OPC_RecordChild3, // #5 = $src4
/*225683*/              OPC_MoveChild3,
/*225684*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*225687*/              OPC_MoveParent,
/*225688*/              OPC_MoveParent,
/*225689*/              OPC_MoveChild2,
/*225690*/              OPC_CheckImmAllZerosV,
/*225691*/              OPC_MoveParent,
/*225692*/              OPC_CheckType, MVT::v8i32,
/*225694*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*225696*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*225699*/              OPC_EmitMergeInputChains1_1,
/*225700*/              OPC_EmitNodeXForm, 19, 5, // VPTERNLOG321_imm8
/*225703*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 9/*#Ops*/, 4, 0, 3, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src1, (timm:{ *:[i8] }):$src4), immAllZerosV:{ *:[v8i32] }) - Complexity = 35
                        // Dst: (VPTERNLOGDZ256rmikz:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*225718*/            /*Scope*/ 51, /*->225770*/
/*225719*/              OPC_RecordChild0, // #1 = $src1
/*225720*/              OPC_MoveChild1,
/*225721*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*225724*/              OPC_RecordMemRef,
/*225725*/              OPC_RecordNode, // #2 = 'ld' chained node
/*225726*/              OPC_CheckFoldableChainNode,
/*225727*/              OPC_RecordChild1, // #3 = $src3
/*225728*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*225730*/              OPC_CheckPredicate, 9, // Predicate_load
/*225732*/              OPC_MoveParent,
/*225733*/              OPC_RecordChild2, // #4 = $src2
/*225734*/              OPC_RecordChild3, // #5 = $src4
/*225735*/              OPC_MoveChild3,
/*225736*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*225739*/              OPC_MoveParent,
/*225740*/              OPC_MoveParent,
/*225741*/              OPC_MoveChild2,
/*225742*/              OPC_CheckImmAllZerosV,
/*225743*/              OPC_MoveParent,
/*225744*/              OPC_CheckType, MVT::v8i32,
/*225746*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*225748*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*225751*/              OPC_EmitMergeInputChains1_2,
/*225752*/              OPC_EmitNodeXForm, 20, 5, // VPTERNLOG132_imm8
/*225755*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 9/*#Ops*/, 1, 0, 4, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8i32] }:$src2, (timm:{ *:[i8] }):$src4), immAllZerosV:{ *:[v8i32] }) - Complexity = 35
                        // Dst: (VPTERNLOGDZ256rmikz:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*225770*/            /*Scope*/ 49, /*->225820*/
/*225771*/              OPC_MoveChild0,
/*225772*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*225775*/              OPC_RecordMemRef,
/*225776*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*225777*/              OPC_CheckFoldableChainNode,
/*225778*/              OPC_RecordChild1, // #2 = $src3
/*225779*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*225781*/              OPC_MoveParent,
/*225782*/              OPC_RecordChild1, // #3 = $src2
/*225783*/              OPC_RecordChild2, // #4 = $src1
/*225784*/              OPC_RecordChild3, // #5 = $src4
/*225785*/              OPC_MoveChild3,
/*225786*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*225789*/              OPC_MoveParent,
/*225790*/              OPC_MoveParent,
/*225791*/              OPC_MoveChild2,
/*225792*/              OPC_CheckImmAllZerosV,
/*225793*/              OPC_MoveParent,
/*225794*/              OPC_CheckType, MVT::v8i32,
/*225796*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*225798*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*225801*/              OPC_EmitMergeInputChains1_1,
/*225802*/              OPC_EmitNodeXForm, 19, 5, // VPTERNLOG321_imm8
/*225805*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 9/*#Ops*/, 4, 0, 3, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i32] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src1, (timm:{ *:[i8] }):$src4), immAllZerosV:{ *:[v8i32] }) - Complexity = 35
                        // Dst: (VPTERNLOGDZ256rmbikz:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*225820*/            /*Scope*/ 21|128,1/*149*/, /*->225971*/
/*225822*/              OPC_RecordChild0, // #1 = $src1
/*225823*/              OPC_Scope, 48, /*->225873*/ // 2 children in Scope
/*225825*/                OPC_MoveChild1,
/*225826*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*225829*/                OPC_RecordMemRef,
/*225830*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*225831*/                OPC_CheckFoldableChainNode,
/*225832*/                OPC_RecordChild1, // #3 = $src3
/*225833*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*225835*/                OPC_MoveParent,
/*225836*/                OPC_RecordChild2, // #4 = $src2
/*225837*/                OPC_RecordChild3, // #5 = $src4
/*225838*/                OPC_MoveChild3,
/*225839*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*225842*/                OPC_MoveParent,
/*225843*/                OPC_MoveParent,
/*225844*/                OPC_MoveChild2,
/*225845*/                OPC_CheckImmAllZerosV,
/*225846*/                OPC_MoveParent,
/*225847*/                OPC_CheckType, MVT::v8i32,
/*225849*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*225851*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*225854*/                OPC_EmitMergeInputChains1_2,
/*225855*/                OPC_EmitNodeXForm, 20, 5, // VPTERNLOG132_imm8
/*225858*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 9/*#Ops*/, 1, 0, 4, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8i32] }:$src2, (timm:{ *:[i8] }):$src4), immAllZerosV:{ *:[v8i32] }) - Complexity = 35
                          // Dst: (VPTERNLOGDZ256rmbikz:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*225873*/              /*Scope*/ 96, /*->225970*/
/*225874*/                OPC_RecordChild1, // #2 = $src2
/*225875*/                OPC_MoveChild2,
/*225876*/                OPC_SwitchOpcode /*2 cases */, 44, TARGET_VAL(ISD::LOAD),// ->225924
/*225880*/                  OPC_RecordMemRef,
/*225881*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*225882*/                  OPC_CheckFoldableChainNode,
/*225883*/                  OPC_RecordChild1, // #4 = $src3
/*225884*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*225886*/                  OPC_CheckPredicate, 9, // Predicate_load
/*225888*/                  OPC_MoveParent,
/*225889*/                  OPC_RecordChild3, // #5 = $src4
/*225890*/                  OPC_MoveChild3,
/*225891*/                  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*225894*/                  OPC_MoveParent,
/*225895*/                  OPC_MoveParent,
/*225896*/                  OPC_MoveChild2,
/*225897*/                  OPC_CheckImmAllZerosV,
/*225898*/                  OPC_MoveParent,
/*225899*/                  OPC_CheckType, MVT::v8i64,
/*225901*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*225903*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*225906*/                  OPC_EmitMergeInputChains, 1, 3, 
/*225909*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 5, 
                            // 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>>, (timm:{ *:[i8] }):$src4), immAllZerosV:{ *:[v8i64] }) - Complexity = 35
                            // Dst: (VPTERNLOGQZrmikz:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i8] }):$src4)
/*225924*/                /*SwitchOpcode*/ 42, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->225969
/*225927*/                  OPC_RecordMemRef,
/*225928*/                  OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*225929*/                  OPC_CheckFoldableChainNode,
/*225930*/                  OPC_RecordChild1, // #4 = $src3
/*225931*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*225933*/                  OPC_MoveParent,
/*225934*/                  OPC_RecordChild3, // #5 = $src4
/*225935*/                  OPC_MoveChild3,
/*225936*/                  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*225939*/                  OPC_MoveParent,
/*225940*/                  OPC_MoveParent,
/*225941*/                  OPC_MoveChild2,
/*225942*/                  OPC_CheckImmAllZerosV,
/*225943*/                  OPC_MoveParent,
/*225944*/                  OPC_CheckType, MVT::v8i64,
/*225946*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*225948*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*225951*/                  OPC_EmitMergeInputChains, 1, 3, 
/*225954*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 5, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src4), immAllZerosV:{ *:[v8i64] }) - Complexity = 35
                            // Dst: (VPTERNLOGQZrmbikz:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i8] }):$src4)
/*225969*/                0, // EndSwitchOpcode
/*225970*/              0, /*End of Scope*/
/*225971*/            /*Scope*/ 51, /*->226023*/
/*225972*/              OPC_MoveChild0,
/*225973*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*225976*/              OPC_RecordMemRef,
/*225977*/              OPC_RecordNode, // #1 = 'ld' chained node
/*225978*/              OPC_CheckFoldableChainNode,
/*225979*/              OPC_RecordChild1, // #2 = $src3
/*225980*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*225982*/              OPC_CheckPredicate, 9, // Predicate_load
/*225984*/              OPC_MoveParent,
/*225985*/              OPC_RecordChild1, // #3 = $src2
/*225986*/              OPC_RecordChild2, // #4 = $src1
/*225987*/              OPC_RecordChild3, // #5 = $src4
/*225988*/              OPC_MoveChild3,
/*225989*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*225992*/              OPC_MoveParent,
/*225993*/              OPC_MoveParent,
/*225994*/              OPC_MoveChild2,
/*225995*/              OPC_CheckImmAllZerosV,
/*225996*/              OPC_MoveParent,
/*225997*/              OPC_CheckType, MVT::v8i64,
/*225999*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*226001*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*226004*/              OPC_EmitMergeInputChains1_1,
/*226005*/              OPC_EmitNodeXForm, 19, 5, // VPTERNLOG321_imm8
/*226008*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 9/*#Ops*/, 4, 0, 3, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src1, (timm:{ *:[i8] }):$src4), immAllZerosV:{ *:[v8i64] }) - Complexity = 35
                        // Dst: (VPTERNLOGQZrmikz:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*226023*/            /*Scope*/ 51, /*->226075*/
/*226024*/              OPC_RecordChild0, // #1 = $src1
/*226025*/              OPC_MoveChild1,
/*226026*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*226029*/              OPC_RecordMemRef,
/*226030*/              OPC_RecordNode, // #2 = 'ld' chained node
/*226031*/              OPC_CheckFoldableChainNode,
/*226032*/              OPC_RecordChild1, // #3 = $src3
/*226033*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*226035*/              OPC_CheckPredicate, 9, // Predicate_load
/*226037*/              OPC_MoveParent,
/*226038*/              OPC_RecordChild2, // #4 = $src2
/*226039*/              OPC_RecordChild3, // #5 = $src4
/*226040*/              OPC_MoveChild3,
/*226041*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*226044*/              OPC_MoveParent,
/*226045*/              OPC_MoveParent,
/*226046*/              OPC_MoveChild2,
/*226047*/              OPC_CheckImmAllZerosV,
/*226048*/              OPC_MoveParent,
/*226049*/              OPC_CheckType, MVT::v8i64,
/*226051*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*226053*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*226056*/              OPC_EmitMergeInputChains1_2,
/*226057*/              OPC_EmitNodeXForm, 20, 5, // VPTERNLOG132_imm8
/*226060*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 9/*#Ops*/, 1, 0, 4, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v8i64] }:$src2, (timm:{ *:[i8] }):$src4), immAllZerosV:{ *:[v8i64] }) - Complexity = 35
                        // Dst: (VPTERNLOGQZrmikz:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*226075*/            /*Scope*/ 49, /*->226125*/
/*226076*/              OPC_MoveChild0,
/*226077*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*226080*/              OPC_RecordMemRef,
/*226081*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*226082*/              OPC_CheckFoldableChainNode,
/*226083*/              OPC_RecordChild1, // #2 = $src3
/*226084*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*226086*/              OPC_MoveParent,
/*226087*/              OPC_RecordChild1, // #3 = $src2
/*226088*/              OPC_RecordChild2, // #4 = $src1
/*226089*/              OPC_RecordChild3, // #5 = $src4
/*226090*/              OPC_MoveChild3,
/*226091*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*226094*/              OPC_MoveParent,
/*226095*/              OPC_MoveParent,
/*226096*/              OPC_MoveChild2,
/*226097*/              OPC_CheckImmAllZerosV,
/*226098*/              OPC_MoveParent,
/*226099*/              OPC_CheckType, MVT::v8i64,
/*226101*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*226103*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*226106*/              OPC_EmitMergeInputChains1_1,
/*226107*/              OPC_EmitNodeXForm, 19, 5, // VPTERNLOG321_imm8
/*226110*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 9/*#Ops*/, 4, 0, 3, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i64] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src1, (timm:{ *:[i8] }):$src4), immAllZerosV:{ *:[v8i64] }) - Complexity = 35
                        // Dst: (VPTERNLOGQZrmbikz:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*226125*/            /*Scope*/ 49, /*->226175*/
/*226126*/              OPC_RecordChild0, // #1 = $src1
/*226127*/              OPC_MoveChild1,
/*226128*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*226131*/              OPC_RecordMemRef,
/*226132*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*226133*/              OPC_CheckFoldableChainNode,
/*226134*/              OPC_RecordChild1, // #3 = $src3
/*226135*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*226137*/              OPC_MoveParent,
/*226138*/              OPC_RecordChild2, // #4 = $src2
/*226139*/              OPC_RecordChild3, // #5 = $src4
/*226140*/              OPC_MoveChild3,
/*226141*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*226144*/              OPC_MoveParent,
/*226145*/              OPC_MoveParent,
/*226146*/              OPC_MoveChild2,
/*226147*/              OPC_CheckImmAllZerosV,
/*226148*/              OPC_MoveParent,
/*226149*/              OPC_CheckType, MVT::v8i64,
/*226151*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*226153*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*226156*/              OPC_EmitMergeInputChains1_2,
/*226157*/              OPC_EmitNodeXForm, 20, 5, // VPTERNLOG132_imm8
/*226160*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 9/*#Ops*/, 1, 0, 4, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8i64] }:$src2, (timm:{ *:[i8] }):$src4), immAllZerosV:{ *:[v8i64] }) - Complexity = 35
                        // Dst: (VPTERNLOGQZrmbikz:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*226175*/            0, /*End of Scope*/
/*226176*/          /*SwitchOpcode*/ 47|128,1/*175*/, TARGET_VAL(X86ISD::VSHLD),// ->226355
/*226180*/            OPC_RecordChild0, // #1 = $src1
/*226181*/            OPC_MoveChild1,
/*226182*/            OPC_SwitchOpcode /*2 cases */, 87, TARGET_VAL(ISD::LOAD),// ->226273
/*226186*/              OPC_RecordMemRef,
/*226187*/              OPC_RecordNode, // #2 = 'ld' chained node
/*226188*/              OPC_CheckFoldableChainNode,
/*226189*/              OPC_RecordChild1, // #3 = $src2
/*226190*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*226192*/              OPC_CheckPredicate, 9, // Predicate_load
/*226194*/              OPC_MoveParent,
/*226195*/              OPC_RecordChild2, // #4 = $src3
/*226196*/              OPC_MoveChild2,
/*226197*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*226200*/              OPC_MoveParent,
/*226201*/              OPC_MoveParent,
/*226202*/              OPC_MoveChild2,
/*226203*/              OPC_CheckImmAllZerosV,
/*226204*/              OPC_MoveParent,
/*226205*/              OPC_SwitchType /*3 cases */, 20, MVT::v8i16,// ->226228
/*226208*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*226210*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*226213*/                OPC_EmitMergeInputChains1_2,
/*226214*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDWZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86VShld:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v8i16] }) - Complexity = 35
                          // Dst: (VPSHLDWZ128rmikz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*226228*/              /*SwitchType*/ 20, MVT::v8i32,// ->226250
/*226230*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*226232*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*226235*/                OPC_EmitMergeInputChains1_2,
/*226236*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDDZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VShld:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v8i32] }) - Complexity = 35
                          // Dst: (VPSHLDDZ256rmikz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*226250*/              /*SwitchType*/ 20, MVT::v8i64,// ->226272
/*226252*/                OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*226254*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*226257*/                OPC_EmitMergeInputChains1_2,
/*226258*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDQZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VShld:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v8i64] }) - Complexity = 35
                          // Dst: (VPSHLDQZrmikz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*226272*/              0, // EndSwitchType
/*226273*/            /*SwitchOpcode*/ 78, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->226354
/*226276*/              OPC_RecordMemRef,
/*226277*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*226278*/              OPC_CheckFoldableChainNode,
/*226279*/              OPC_RecordChild1, // #3 = $src2
/*226280*/              OPC_Scope, 35, /*->226317*/ // 2 children in Scope
/*226282*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*226284*/                OPC_MoveParent,
/*226285*/                OPC_RecordChild2, // #4 = $src3
/*226286*/                OPC_MoveChild2,
/*226287*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*226290*/                OPC_MoveParent,
/*226291*/                OPC_MoveParent,
/*226292*/                OPC_MoveChild2,
/*226293*/                OPC_CheckImmAllZerosV,
/*226294*/                OPC_MoveParent,
/*226295*/                OPC_CheckType, MVT::v8i32,
/*226297*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*226299*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*226302*/                OPC_EmitMergeInputChains1_2,
/*226303*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDDZ256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VShld:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v8i32] }) - Complexity = 35
                          // Dst: (VPSHLDDZ256rmbikz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*226317*/              /*Scope*/ 35, /*->226353*/
/*226318*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*226320*/                OPC_MoveParent,
/*226321*/                OPC_RecordChild2, // #4 = $src3
/*226322*/                OPC_MoveChild2,
/*226323*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*226326*/                OPC_MoveParent,
/*226327*/                OPC_MoveParent,
/*226328*/                OPC_MoveChild2,
/*226329*/                OPC_CheckImmAllZerosV,
/*226330*/                OPC_MoveParent,
/*226331*/                OPC_CheckType, MVT::v8i64,
/*226333*/                OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*226335*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*226338*/                OPC_EmitMergeInputChains1_2,
/*226339*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDQZrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VShld:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v8i64] }) - Complexity = 35
                          // Dst: (VPSHLDQZrmbikz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*226353*/              0, /*End of Scope*/
/*226354*/            0, // EndSwitchOpcode
/*226355*/          /*SwitchOpcode*/ 47|128,1/*175*/, TARGET_VAL(X86ISD::VSHRD),// ->226534
/*226359*/            OPC_RecordChild0, // #1 = $src1
/*226360*/            OPC_MoveChild1,
/*226361*/            OPC_SwitchOpcode /*2 cases */, 87, TARGET_VAL(ISD::LOAD),// ->226452
/*226365*/              OPC_RecordMemRef,
/*226366*/              OPC_RecordNode, // #2 = 'ld' chained node
/*226367*/              OPC_CheckFoldableChainNode,
/*226368*/              OPC_RecordChild1, // #3 = $src2
/*226369*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*226371*/              OPC_CheckPredicate, 9, // Predicate_load
/*226373*/              OPC_MoveParent,
/*226374*/              OPC_RecordChild2, // #4 = $src3
/*226375*/              OPC_MoveChild2,
/*226376*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*226379*/              OPC_MoveParent,
/*226380*/              OPC_MoveParent,
/*226381*/              OPC_MoveChild2,
/*226382*/              OPC_CheckImmAllZerosV,
/*226383*/              OPC_MoveParent,
/*226384*/              OPC_SwitchType /*3 cases */, 20, MVT::v8i16,// ->226407
/*226387*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*226389*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*226392*/                OPC_EmitMergeInputChains1_2,
/*226393*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDWZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86VShrd:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v8i16] }) - Complexity = 35
                          // Dst: (VPSHRDWZ128rmikz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*226407*/              /*SwitchType*/ 20, MVT::v8i32,// ->226429
/*226409*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*226411*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*226414*/                OPC_EmitMergeInputChains1_2,
/*226415*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDDZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VShrd:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v8i32] }) - Complexity = 35
                          // Dst: (VPSHRDDZ256rmikz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*226429*/              /*SwitchType*/ 20, MVT::v8i64,// ->226451
/*226431*/                OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*226433*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*226436*/                OPC_EmitMergeInputChains1_2,
/*226437*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDQZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VShrd:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v8i64] }) - Complexity = 35
                          // Dst: (VPSHRDQZrmikz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*226451*/              0, // EndSwitchType
/*226452*/            /*SwitchOpcode*/ 78, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->226533
/*226455*/              OPC_RecordMemRef,
/*226456*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*226457*/              OPC_CheckFoldableChainNode,
/*226458*/              OPC_RecordChild1, // #3 = $src2
/*226459*/              OPC_Scope, 35, /*->226496*/ // 2 children in Scope
/*226461*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*226463*/                OPC_MoveParent,
/*226464*/                OPC_RecordChild2, // #4 = $src3
/*226465*/                OPC_MoveChild2,
/*226466*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*226469*/                OPC_MoveParent,
/*226470*/                OPC_MoveParent,
/*226471*/                OPC_MoveChild2,
/*226472*/                OPC_CheckImmAllZerosV,
/*226473*/                OPC_MoveParent,
/*226474*/                OPC_CheckType, MVT::v8i32,
/*226476*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*226478*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*226481*/                OPC_EmitMergeInputChains1_2,
/*226482*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDDZ256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VShrd:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v8i32] }) - Complexity = 35
                          // Dst: (VPSHRDDZ256rmbikz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*226496*/              /*Scope*/ 35, /*->226532*/
/*226497*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*226499*/                OPC_MoveParent,
/*226500*/                OPC_RecordChild2, // #4 = $src3
/*226501*/                OPC_MoveChild2,
/*226502*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*226505*/                OPC_MoveParent,
/*226506*/                OPC_MoveParent,
/*226507*/                OPC_MoveChild2,
/*226508*/                OPC_CheckImmAllZerosV,
/*226509*/                OPC_MoveParent,
/*226510*/                OPC_CheckType, MVT::v8i64,
/*226512*/                OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*226514*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*226517*/                OPC_EmitMergeInputChains1_2,
/*226518*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDQZrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VShrd:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v8i64] }) - Complexity = 35
                          // Dst: (VPSHRDQZrmbikz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*226532*/              0, /*End of Scope*/
/*226533*/            0, // EndSwitchOpcode
/*226534*/          /*SwitchOpcode*/ 96, TARGET_VAL(X86ISD::SUBV_BROADCAST),// ->226633
/*226537*/            OPC_MoveChild0,
/*226538*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*226541*/            OPC_RecordMemRef,
/*226542*/            OPC_RecordNode, // #1 = 'ld' chained node
/*226543*/            OPC_CheckFoldableChainNode,
/*226544*/            OPC_RecordChild1, // #2 = $src
/*226545*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*226547*/            OPC_CheckPredicate, 9, // Predicate_load
/*226549*/            OPC_Scope, 27, /*->226578*/ // 3 children in Scope
/*226551*/              OPC_CheckType, MVT::v4i64,
/*226553*/              OPC_MoveParent,
/*226554*/              OPC_MoveParent,
/*226555*/              OPC_MoveChild2,
/*226556*/              OPC_CheckImmAllZerosV,
/*226557*/              OPC_MoveParent,
/*226558*/              OPC_CheckType, MVT::v8i64,
/*226560*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*226562*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*226565*/              OPC_EmitMergeInputChains1_1,
/*226566*/              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>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                        // Dst: (VBROADCASTI64X4rmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*226578*/            /*Scope*/ 25, /*->226604*/
/*226579*/              OPC_MoveParent,
/*226580*/              OPC_MoveParent,
/*226581*/              OPC_MoveChild2,
/*226582*/              OPC_CheckImmAllZerosV,
/*226583*/              OPC_MoveParent,
/*226584*/              OPC_CheckType, MVT::v8i32,
/*226586*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*226588*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*226591*/              OPC_EmitMergeInputChains1_1,
/*226592*/              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] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                        // Dst: (VBROADCASTI32X4Z256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*226604*/            /*Scope*/ 27, /*->226632*/
/*226605*/              OPC_CheckType, MVT::v2i64,
/*226607*/              OPC_MoveParent,
/*226608*/              OPC_MoveParent,
/*226609*/              OPC_MoveChild2,
/*226610*/              OPC_CheckImmAllZerosV,
/*226611*/              OPC_MoveParent,
/*226612*/              OPC_CheckType, MVT::v8i64,
/*226614*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*226616*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*226619*/              OPC_EmitMergeInputChains1_1,
/*226620*/              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>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                        // Dst: (VBROADCASTI64X2rmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*226632*/            0, /*End of Scope*/
/*226633*/          /*SwitchOpcode*/ 40|128,1/*168*/, TARGET_VAL(X86ISD::VPERMV3),// ->226805
/*226637*/            OPC_RecordChild0, // #1 = $src1
/*226638*/            OPC_RecordChild1, // #2 = $src2
/*226639*/            OPC_MoveChild2,
/*226640*/            OPC_SwitchOpcode /*2 cases */, 87, TARGET_VAL(ISD::LOAD),// ->226731
/*226644*/              OPC_RecordMemRef,
/*226645*/              OPC_RecordNode, // #3 = 'ld' chained node
/*226646*/              OPC_CheckFoldableChainNode,
/*226647*/              OPC_RecordChild1, // #4 = $src3
/*226648*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*226650*/              OPC_CheckPredicate, 9, // Predicate_load
/*226652*/              OPC_MoveParent,
/*226653*/              OPC_MoveParent,
/*226654*/              OPC_MoveChild2,
/*226655*/              OPC_CheckImmAllZerosV,
/*226656*/              OPC_MoveParent,
/*226657*/              OPC_SwitchType /*3 cases */, 22, MVT::v8i32,// ->226682
/*226660*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*226662*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*226665*/                OPC_EmitMergeInputChains, 1, 3, 
/*226668*/                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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                          // Dst: (VPERMT2D256rmkz:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*226682*/              /*SwitchType*/ 22, MVT::v8i64,// ->226706
/*226684*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*226686*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*226689*/                OPC_EmitMergeInputChains, 1, 3, 
/*226692*/                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>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                          // Dst: (VPERMT2Qrmkz:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*226706*/              /*SwitchType*/ 22, MVT::v8i16,// ->226730
/*226708*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*226710*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*226713*/                OPC_EmitMergeInputChains, 1, 3, 
/*226716*/                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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i16] }) - Complexity = 32
                          // Dst: (VPERMT2W128rmkz:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/*226730*/              0, // EndSwitchType
/*226731*/            /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->226804
/*226734*/              OPC_RecordMemRef,
/*226735*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*226736*/              OPC_CheckFoldableChainNode,
/*226737*/              OPC_RecordChild1, // #4 = $src3
/*226738*/              OPC_Scope, 31, /*->226771*/ // 2 children in Scope
/*226740*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*226742*/                OPC_MoveParent,
/*226743*/                OPC_MoveParent,
/*226744*/                OPC_MoveChild2,
/*226745*/                OPC_CheckImmAllZerosV,
/*226746*/                OPC_MoveParent,
/*226747*/                OPC_CheckType, MVT::v8i32,
/*226749*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*226751*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*226754*/                OPC_EmitMergeInputChains, 1, 3, 
/*226757*/                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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                          // Dst: (VPERMT2D256rmbkz:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*226771*/              /*Scope*/ 31, /*->226803*/
/*226772*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*226774*/                OPC_MoveParent,
/*226775*/                OPC_MoveParent,
/*226776*/                OPC_MoveChild2,
/*226777*/                OPC_CheckImmAllZerosV,
/*226778*/                OPC_MoveParent,
/*226779*/                OPC_CheckType, MVT::v8i64,
/*226781*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*226783*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*226786*/                OPC_EmitMergeInputChains, 1, 3, 
/*226789*/                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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                          // Dst: (VPERMT2Qrmbkz:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*226803*/              0, /*End of Scope*/
/*226804*/            0, // EndSwitchOpcode
/*226805*/          /*SwitchOpcode*/ 56|128,2/*312*/, TARGET_VAL(ISD::ADD),// ->227121
/*226809*/            OPC_Scope, 24|128,1/*152*/, /*->226964*/ // 2 children in Scope
/*226812*/              OPC_RecordChild0, // #1 = $src1
/*226813*/              OPC_MoveChild1,
/*226814*/              OPC_SwitchOpcode /*2 cases */, 78, TARGET_VAL(ISD::LOAD),// ->226896
/*226818*/                OPC_RecordMemRef,
/*226819*/                OPC_RecordNode, // #2 = 'ld' chained node
/*226820*/                OPC_CheckFoldableChainNode,
/*226821*/                OPC_RecordChild1, // #3 = $src2
/*226822*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*226824*/                OPC_CheckPredicate, 9, // Predicate_load
/*226826*/                OPC_MoveParent,
/*226827*/                OPC_MoveParent,
/*226828*/                OPC_MoveChild2,
/*226829*/                OPC_CheckImmAllZerosV,
/*226830*/                OPC_MoveParent,
/*226831*/                OPC_SwitchType /*3 cases */, 19, MVT::v8i64,// ->226853
/*226834*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*226836*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*226839*/                  OPC_EmitMergeInputChains1_2,
/*226840*/                  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>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                            // Dst: (VPADDQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*226853*/                /*SwitchType*/ 19, MVT::v8i32,// ->226874
/*226855*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*226857*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*226860*/                  OPC_EmitMergeInputChains1_2,
/*226861*/                  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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                            // Dst: (VPADDDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*226874*/                /*SwitchType*/ 19, MVT::v8i16,// ->226895
/*226876*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*226878*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*226881*/                  OPC_EmitMergeInputChains1_2,
/*226882*/                  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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i16] }) - Complexity = 32
                            // Dst: (VPADDWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*226895*/                0, // EndSwitchType
/*226896*/              /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->226963
/*226899*/                OPC_RecordMemRef,
/*226900*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*226901*/                OPC_CheckFoldableChainNode,
/*226902*/                OPC_RecordChild1, // #3 = $src2
/*226903*/                OPC_Scope, 28, /*->226933*/ // 2 children in Scope
/*226905*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*226907*/                  OPC_MoveParent,
/*226908*/                  OPC_MoveParent,
/*226909*/                  OPC_MoveChild2,
/*226910*/                  OPC_CheckImmAllZerosV,
/*226911*/                  OPC_MoveParent,
/*226912*/                  OPC_CheckType, MVT::v8i64,
/*226914*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*226916*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*226919*/                  OPC_EmitMergeInputChains1_2,
/*226920*/                  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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                            // Dst: (VPADDQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*226933*/                /*Scope*/ 28, /*->226962*/
/*226934*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*226936*/                  OPC_MoveParent,
/*226937*/                  OPC_MoveParent,
/*226938*/                  OPC_MoveChild2,
/*226939*/                  OPC_CheckImmAllZerosV,
/*226940*/                  OPC_MoveParent,
/*226941*/                  OPC_CheckType, MVT::v8i32,
/*226943*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*226945*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*226948*/                  OPC_EmitMergeInputChains1_2,
/*226949*/                  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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                            // Dst: (VPADDDZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*226962*/                0, /*End of Scope*/
/*226963*/              0, // EndSwitchOpcode
/*226964*/            /*Scope*/ 26|128,1/*154*/, /*->227120*/
/*226966*/              OPC_MoveChild0,
/*226967*/              OPC_SwitchOpcode /*2 cases */, 79, TARGET_VAL(ISD::LOAD),// ->227050
/*226971*/                OPC_RecordMemRef,
/*226972*/                OPC_RecordNode, // #1 = 'ld' chained node
/*226973*/                OPC_CheckFoldableChainNode,
/*226974*/                OPC_RecordChild1, // #2 = $src2
/*226975*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*226977*/                OPC_CheckPredicate, 9, // Predicate_load
/*226979*/                OPC_MoveParent,
/*226980*/                OPC_RecordChild1, // #3 = $src1
/*226981*/                OPC_MoveParent,
/*226982*/                OPC_MoveChild2,
/*226983*/                OPC_CheckImmAllZerosV,
/*226984*/                OPC_MoveParent,
/*226985*/                OPC_SwitchType /*3 cases */, 19, MVT::v8i64,// ->227007
/*226988*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*226990*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*226993*/                  OPC_EmitMergeInputChains1_1,
/*226994*/                  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>>, VR512:{ *:[v8i64] }:$src1), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                            // Dst: (VPADDQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*227007*/                /*SwitchType*/ 19, MVT::v8i32,// ->227028
/*227009*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*227011*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*227014*/                  OPC_EmitMergeInputChains1_1,
/*227015*/                  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] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8i32] }:$src1), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                            // Dst: (VPADDDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*227028*/                /*SwitchType*/ 19, MVT::v8i16,// ->227049
/*227030*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*227032*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*227035*/                  OPC_EmitMergeInputChains1_1,
/*227036*/                  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] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1), immAllZerosV:{ *:[v8i16] }) - Complexity = 32
                            // Dst: (VPADDWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*227049*/                0, // EndSwitchType
/*227050*/              /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->227119
/*227053*/                OPC_RecordMemRef,
/*227054*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*227055*/                OPC_CheckFoldableChainNode,
/*227056*/                OPC_RecordChild1, // #2 = $src2
/*227057*/                OPC_Scope, 29, /*->227088*/ // 2 children in Scope
/*227059*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*227061*/                  OPC_MoveParent,
/*227062*/                  OPC_RecordChild1, // #3 = $src1
/*227063*/                  OPC_MoveParent,
/*227064*/                  OPC_MoveChild2,
/*227065*/                  OPC_CheckImmAllZerosV,
/*227066*/                  OPC_MoveParent,
/*227067*/                  OPC_CheckType, MVT::v8i64,
/*227069*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*227071*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*227074*/                  OPC_EmitMergeInputChains1_1,
/*227075*/                  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] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8i64] }:$src1), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                            // Dst: (VPADDQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*227088*/                /*Scope*/ 29, /*->227118*/
/*227089*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*227091*/                  OPC_MoveParent,
/*227092*/                  OPC_RecordChild1, // #3 = $src1
/*227093*/                  OPC_MoveParent,
/*227094*/                  OPC_MoveChild2,
/*227095*/                  OPC_CheckImmAllZerosV,
/*227096*/                  OPC_MoveParent,
/*227097*/                  OPC_CheckType, MVT::v8i32,
/*227099*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*227101*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*227104*/                  OPC_EmitMergeInputChains1_1,
/*227105*/                  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] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8i32] }:$src1), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                            // Dst: (VPADDDZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*227118*/                0, /*End of Scope*/
/*227119*/              0, // EndSwitchOpcode
/*227120*/            0, /*End of Scope*/
/*227121*/          /*SwitchOpcode*/ 24|128,1/*152*/, TARGET_VAL(ISD::SUB),// ->227277
/*227125*/            OPC_RecordChild0, // #1 = $src1
/*227126*/            OPC_MoveChild1,
/*227127*/            OPC_SwitchOpcode /*2 cases */, 78, TARGET_VAL(ISD::LOAD),// ->227209
/*227131*/              OPC_RecordMemRef,
/*227132*/              OPC_RecordNode, // #2 = 'ld' chained node
/*227133*/              OPC_CheckFoldableChainNode,
/*227134*/              OPC_RecordChild1, // #3 = $src2
/*227135*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*227137*/              OPC_CheckPredicate, 9, // Predicate_load
/*227139*/              OPC_MoveParent,
/*227140*/              OPC_MoveParent,
/*227141*/              OPC_MoveChild2,
/*227142*/              OPC_CheckImmAllZerosV,
/*227143*/              OPC_MoveParent,
/*227144*/              OPC_SwitchType /*3 cases */, 19, MVT::v8i64,// ->227166
/*227147*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*227149*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*227152*/                OPC_EmitMergeInputChains1_2,
/*227153*/                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>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                          // Dst: (VPSUBQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*227166*/              /*SwitchType*/ 19, MVT::v8i32,// ->227187
/*227168*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*227170*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*227173*/                OPC_EmitMergeInputChains1_2,
/*227174*/                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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                          // Dst: (VPSUBDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*227187*/              /*SwitchType*/ 19, MVT::v8i16,// ->227208
/*227189*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*227191*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*227194*/                OPC_EmitMergeInputChains1_2,
/*227195*/                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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i16] }) - Complexity = 32
                          // Dst: (VPSUBWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*227208*/              0, // EndSwitchType
/*227209*/            /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->227276
/*227212*/              OPC_RecordMemRef,
/*227213*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*227214*/              OPC_CheckFoldableChainNode,
/*227215*/              OPC_RecordChild1, // #3 = $src2
/*227216*/              OPC_Scope, 28, /*->227246*/ // 2 children in Scope
/*227218*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*227220*/                OPC_MoveParent,
/*227221*/                OPC_MoveParent,
/*227222*/                OPC_MoveChild2,
/*227223*/                OPC_CheckImmAllZerosV,
/*227224*/                OPC_MoveParent,
/*227225*/                OPC_CheckType, MVT::v8i64,
/*227227*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*227229*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*227232*/                OPC_EmitMergeInputChains1_2,
/*227233*/                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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                          // Dst: (VPSUBQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*227246*/              /*Scope*/ 28, /*->227275*/
/*227247*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*227249*/                OPC_MoveParent,
/*227250*/                OPC_MoveParent,
/*227251*/                OPC_MoveChild2,
/*227252*/                OPC_CheckImmAllZerosV,
/*227253*/                OPC_MoveParent,
/*227254*/                OPC_CheckType, MVT::v8i32,
/*227256*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*227258*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*227261*/                OPC_EmitMergeInputChains1_2,
/*227262*/                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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                          // Dst: (VPSUBDZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*227275*/              0, /*End of Scope*/
/*227276*/            0, // EndSwitchOpcode
/*227277*/          /*SwitchOpcode*/ 82, TARGET_VAL(ISD::SADDSAT),// ->227362
/*227280*/            OPC_Scope, 39, /*->227321*/ // 2 children in Scope
/*227282*/              OPC_RecordChild0, // #1 = $src1
/*227283*/              OPC_MoveChild1,
/*227284*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*227287*/              OPC_RecordMemRef,
/*227288*/              OPC_RecordNode, // #2 = 'ld' chained node
/*227289*/              OPC_CheckFoldableChainNode,
/*227290*/              OPC_RecordChild1, // #3 = $src2
/*227291*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*227293*/              OPC_CheckPredicate, 9, // Predicate_load
/*227295*/              OPC_MoveParent,
/*227296*/              OPC_MoveParent,
/*227297*/              OPC_MoveChild2,
/*227298*/              OPC_CheckImmAllZerosV,
/*227299*/              OPC_MoveParent,
/*227300*/              OPC_CheckType, MVT::v8i16,
/*227302*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*227304*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*227307*/              OPC_EmitMergeInputChains1_2,
/*227308*/              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, (saddsat:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i16] }) - Complexity = 32
                        // Dst: (VPADDSWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*227321*/            /*Scope*/ 39, /*->227361*/
/*227322*/              OPC_MoveChild0,
/*227323*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*227326*/              OPC_RecordMemRef,
/*227327*/              OPC_RecordNode, // #1 = 'ld' chained node
/*227328*/              OPC_CheckFoldableChainNode,
/*227329*/              OPC_RecordChild1, // #2 = $src2
/*227330*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*227332*/              OPC_CheckPredicate, 9, // Predicate_load
/*227334*/              OPC_MoveParent,
/*227335*/              OPC_RecordChild1, // #3 = $src1
/*227336*/              OPC_MoveParent,
/*227337*/              OPC_MoveChild2,
/*227338*/              OPC_CheckImmAllZerosV,
/*227339*/              OPC_MoveParent,
/*227340*/              OPC_CheckType, MVT::v8i16,
/*227342*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*227344*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*227347*/              OPC_EmitMergeInputChains1_1,
/*227348*/              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, (saddsat:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1), immAllZerosV:{ *:[v8i16] }) - Complexity = 32
                        // Dst: (VPADDSWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*227361*/            0, /*End of Scope*/
/*227362*/          /*SwitchOpcode*/ 39, TARGET_VAL(ISD::SSUBSAT),// ->227404
/*227365*/            OPC_RecordChild0, // #1 = $src1
/*227366*/            OPC_MoveChild1,
/*227367*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*227370*/            OPC_RecordMemRef,
/*227371*/            OPC_RecordNode, // #2 = 'ld' chained node
/*227372*/            OPC_CheckFoldableChainNode,
/*227373*/            OPC_RecordChild1, // #3 = $src2
/*227374*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*227376*/            OPC_CheckPredicate, 9, // Predicate_load
/*227378*/            OPC_MoveParent,
/*227379*/            OPC_MoveParent,
/*227380*/            OPC_MoveChild2,
/*227381*/            OPC_CheckImmAllZerosV,
/*227382*/            OPC_MoveParent,
/*227383*/            OPC_CheckType, MVT::v8i16,
/*227385*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*227387*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*227390*/            OPC_EmitMergeInputChains1_2,
/*227391*/            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, (ssubsat:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i16] }) - Complexity = 32
                      // Dst: (VPSUBSWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*227404*/          /*SwitchOpcode*/ 82, TARGET_VAL(ISD::UADDSAT),// ->227489
/*227407*/            OPC_Scope, 39, /*->227448*/ // 2 children in Scope
/*227409*/              OPC_RecordChild0, // #1 = $src1
/*227410*/              OPC_MoveChild1,
/*227411*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*227414*/              OPC_RecordMemRef,
/*227415*/              OPC_RecordNode, // #2 = 'ld' chained node
/*227416*/              OPC_CheckFoldableChainNode,
/*227417*/              OPC_RecordChild1, // #3 = $src2
/*227418*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*227420*/              OPC_CheckPredicate, 9, // Predicate_load
/*227422*/              OPC_MoveParent,
/*227423*/              OPC_MoveParent,
/*227424*/              OPC_MoveChild2,
/*227425*/              OPC_CheckImmAllZerosV,
/*227426*/              OPC_MoveParent,
/*227427*/              OPC_CheckType, MVT::v8i16,
/*227429*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*227431*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*227434*/              OPC_EmitMergeInputChains1_2,
/*227435*/              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, (uaddsat:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i16] }) - Complexity = 32
                        // Dst: (VPADDUSWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*227448*/            /*Scope*/ 39, /*->227488*/
/*227449*/              OPC_MoveChild0,
/*227450*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*227453*/              OPC_RecordMemRef,
/*227454*/              OPC_RecordNode, // #1 = 'ld' chained node
/*227455*/              OPC_CheckFoldableChainNode,
/*227456*/              OPC_RecordChild1, // #2 = $src2
/*227457*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*227459*/              OPC_CheckPredicate, 9, // Predicate_load
/*227461*/              OPC_MoveParent,
/*227462*/              OPC_RecordChild1, // #3 = $src1
/*227463*/              OPC_MoveParent,
/*227464*/              OPC_MoveChild2,
/*227465*/              OPC_CheckImmAllZerosV,
/*227466*/              OPC_MoveParent,
/*227467*/              OPC_CheckType, MVT::v8i16,
/*227469*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*227471*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*227474*/              OPC_EmitMergeInputChains1_1,
/*227475*/              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, (uaddsat:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1), immAllZerosV:{ *:[v8i16] }) - Complexity = 32
                        // Dst: (VPADDUSWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*227488*/            0, /*End of Scope*/
/*227489*/          /*SwitchOpcode*/ 39, TARGET_VAL(ISD::USUBSAT),// ->227531
/*227492*/            OPC_RecordChild0, // #1 = $src1
/*227493*/            OPC_MoveChild1,
/*227494*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*227497*/            OPC_RecordMemRef,
/*227498*/            OPC_RecordNode, // #2 = 'ld' chained node
/*227499*/            OPC_CheckFoldableChainNode,
/*227500*/            OPC_RecordChild1, // #3 = $src2
/*227501*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*227503*/            OPC_CheckPredicate, 9, // Predicate_load
/*227505*/            OPC_MoveParent,
/*227506*/            OPC_MoveParent,
/*227507*/            OPC_MoveChild2,
/*227508*/            OPC_CheckImmAllZerosV,
/*227509*/            OPC_MoveParent,
/*227510*/            OPC_CheckType, MVT::v8i16,
/*227512*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*227514*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*227517*/            OPC_EmitMergeInputChains1_2,
/*227518*/            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, (usubsat:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i16] }) - Complexity = 32
                      // Dst: (VPSUBUSWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*227531*/          /*SwitchOpcode*/ 56|128,2/*312*/, TARGET_VAL(ISD::MUL),// ->227847
/*227535*/            OPC_Scope, 24|128,1/*152*/, /*->227690*/ // 2 children in Scope
/*227538*/              OPC_RecordChild0, // #1 = $src1
/*227539*/              OPC_MoveChild1,
/*227540*/              OPC_SwitchOpcode /*2 cases */, 78, TARGET_VAL(ISD::LOAD),// ->227622
/*227544*/                OPC_RecordMemRef,
/*227545*/                OPC_RecordNode, // #2 = 'ld' chained node
/*227546*/                OPC_CheckFoldableChainNode,
/*227547*/                OPC_RecordChild1, // #3 = $src2
/*227548*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*227550*/                OPC_CheckPredicate, 9, // Predicate_load
/*227552*/                OPC_MoveParent,
/*227553*/                OPC_MoveParent,
/*227554*/                OPC_MoveChild2,
/*227555*/                OPC_CheckImmAllZerosV,
/*227556*/                OPC_MoveParent,
/*227557*/                OPC_SwitchType /*3 cases */, 19, MVT::v8i32,// ->227579
/*227560*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*227562*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*227565*/                  OPC_EmitMergeInputChains1_2,
/*227566*/                  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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                            // Dst: (VPMULLDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*227579*/                /*SwitchType*/ 19, MVT::v8i16,// ->227600
/*227581*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*227583*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*227586*/                  OPC_EmitMergeInputChains1_2,
/*227587*/                  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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i16] }) - Complexity = 32
                            // Dst: (VPMULLWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*227600*/                /*SwitchType*/ 19, MVT::v8i64,// ->227621
/*227602*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*227604*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*227607*/                  OPC_EmitMergeInputChains1_2,
/*227608*/                  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>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                            // Dst: (VPMULLQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*227621*/                0, // EndSwitchType
/*227622*/              /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->227689
/*227625*/                OPC_RecordMemRef,
/*227626*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*227627*/                OPC_CheckFoldableChainNode,
/*227628*/                OPC_RecordChild1, // #3 = $src2
/*227629*/                OPC_Scope, 28, /*->227659*/ // 2 children in Scope
/*227631*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*227633*/                  OPC_MoveParent,
/*227634*/                  OPC_MoveParent,
/*227635*/                  OPC_MoveChild2,
/*227636*/                  OPC_CheckImmAllZerosV,
/*227637*/                  OPC_MoveParent,
/*227638*/                  OPC_CheckType, MVT::v8i32,
/*227640*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*227642*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*227645*/                  OPC_EmitMergeInputChains1_2,
/*227646*/                  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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                            // Dst: (VPMULLDZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*227659*/                /*Scope*/ 28, /*->227688*/
/*227660*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*227662*/                  OPC_MoveParent,
/*227663*/                  OPC_MoveParent,
/*227664*/                  OPC_MoveChild2,
/*227665*/                  OPC_CheckImmAllZerosV,
/*227666*/                  OPC_MoveParent,
/*227667*/                  OPC_CheckType, MVT::v8i64,
/*227669*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*227671*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*227674*/                  OPC_EmitMergeInputChains1_2,
/*227675*/                  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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                            // Dst: (VPMULLQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*227688*/                0, /*End of Scope*/
/*227689*/              0, // EndSwitchOpcode
/*227690*/            /*Scope*/ 26|128,1/*154*/, /*->227846*/
/*227692*/              OPC_MoveChild0,
/*227693*/              OPC_SwitchOpcode /*2 cases */, 79, TARGET_VAL(ISD::LOAD),// ->227776
/*227697*/                OPC_RecordMemRef,
/*227698*/                OPC_RecordNode, // #1 = 'ld' chained node
/*227699*/                OPC_CheckFoldableChainNode,
/*227700*/                OPC_RecordChild1, // #2 = $src2
/*227701*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*227703*/                OPC_CheckPredicate, 9, // Predicate_load
/*227705*/                OPC_MoveParent,
/*227706*/                OPC_RecordChild1, // #3 = $src1
/*227707*/                OPC_MoveParent,
/*227708*/                OPC_MoveChild2,
/*227709*/                OPC_CheckImmAllZerosV,
/*227710*/                OPC_MoveParent,
/*227711*/                OPC_SwitchType /*3 cases */, 19, MVT::v8i32,// ->227733
/*227714*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*227716*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*227719*/                  OPC_EmitMergeInputChains1_1,
/*227720*/                  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] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8i32] }:$src1), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                            // Dst: (VPMULLDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*227733*/                /*SwitchType*/ 19, MVT::v8i16,// ->227754
/*227735*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*227737*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*227740*/                  OPC_EmitMergeInputChains1_1,
/*227741*/                  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] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1), immAllZerosV:{ *:[v8i16] }) - Complexity = 32
                            // Dst: (VPMULLWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*227754*/                /*SwitchType*/ 19, MVT::v8i64,// ->227775
/*227756*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*227758*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*227761*/                  OPC_EmitMergeInputChains1_1,
/*227762*/                  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>>, VR512:{ *:[v8i64] }:$src1), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                            // Dst: (VPMULLQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*227775*/                0, // EndSwitchType
/*227776*/              /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->227845
/*227779*/                OPC_RecordMemRef,
/*227780*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*227781*/                OPC_CheckFoldableChainNode,
/*227782*/                OPC_RecordChild1, // #2 = $src2
/*227783*/                OPC_Scope, 29, /*->227814*/ // 2 children in Scope
/*227785*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*227787*/                  OPC_MoveParent,
/*227788*/                  OPC_RecordChild1, // #3 = $src1
/*227789*/                  OPC_MoveParent,
/*227790*/                  OPC_MoveChild2,
/*227791*/                  OPC_CheckImmAllZerosV,
/*227792*/                  OPC_MoveParent,
/*227793*/                  OPC_CheckType, MVT::v8i32,
/*227795*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*227797*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*227800*/                  OPC_EmitMergeInputChains1_1,
/*227801*/                  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] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8i32] }:$src1), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                            // Dst: (VPMULLDZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*227814*/                /*Scope*/ 29, /*->227844*/
/*227815*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*227817*/                  OPC_MoveParent,
/*227818*/                  OPC_RecordChild1, // #3 = $src1
/*227819*/                  OPC_MoveParent,
/*227820*/                  OPC_MoveChild2,
/*227821*/                  OPC_CheckImmAllZerosV,
/*227822*/                  OPC_MoveParent,
/*227823*/                  OPC_CheckType, MVT::v8i64,
/*227825*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*227827*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*227830*/                  OPC_EmitMergeInputChains1_1,
/*227831*/                  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] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8i64] }:$src1), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                            // Dst: (VPMULLQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*227844*/                0, /*End of Scope*/
/*227845*/              0, // EndSwitchOpcode
/*227846*/            0, /*End of Scope*/
/*227847*/          /*SwitchOpcode*/ 82, TARGET_VAL(ISD::MULHS),// ->227932
/*227850*/            OPC_Scope, 39, /*->227891*/ // 2 children in Scope
/*227852*/              OPC_RecordChild0, // #1 = $src1
/*227853*/              OPC_MoveChild1,
/*227854*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*227857*/              OPC_RecordMemRef,
/*227858*/              OPC_RecordNode, // #2 = 'ld' chained node
/*227859*/              OPC_CheckFoldableChainNode,
/*227860*/              OPC_RecordChild1, // #3 = $src2
/*227861*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*227863*/              OPC_CheckPredicate, 9, // Predicate_load
/*227865*/              OPC_MoveParent,
/*227866*/              OPC_MoveParent,
/*227867*/              OPC_MoveChild2,
/*227868*/              OPC_CheckImmAllZerosV,
/*227869*/              OPC_MoveParent,
/*227870*/              OPC_CheckType, MVT::v8i16,
/*227872*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*227874*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*227877*/              OPC_EmitMergeInputChains1_2,
/*227878*/              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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i16] }) - Complexity = 32
                        // Dst: (VPMULHWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*227891*/            /*Scope*/ 39, /*->227931*/
/*227892*/              OPC_MoveChild0,
/*227893*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*227896*/              OPC_RecordMemRef,
/*227897*/              OPC_RecordNode, // #1 = 'ld' chained node
/*227898*/              OPC_CheckFoldableChainNode,
/*227899*/              OPC_RecordChild1, // #2 = $src2
/*227900*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*227902*/              OPC_CheckPredicate, 9, // Predicate_load
/*227904*/              OPC_MoveParent,
/*227905*/              OPC_RecordChild1, // #3 = $src1
/*227906*/              OPC_MoveParent,
/*227907*/              OPC_MoveChild2,
/*227908*/              OPC_CheckImmAllZerosV,
/*227909*/              OPC_MoveParent,
/*227910*/              OPC_CheckType, MVT::v8i16,
/*227912*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*227914*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*227917*/              OPC_EmitMergeInputChains1_1,
/*227918*/              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] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1), immAllZerosV:{ *:[v8i16] }) - Complexity = 32
                        // Dst: (VPMULHWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*227931*/            0, /*End of Scope*/
/*227932*/          /*SwitchOpcode*/ 82, TARGET_VAL(ISD::MULHU),// ->228017
/*227935*/            OPC_Scope, 39, /*->227976*/ // 2 children in Scope
/*227937*/              OPC_RecordChild0, // #1 = $src1
/*227938*/              OPC_MoveChild1,
/*227939*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*227942*/              OPC_RecordMemRef,
/*227943*/              OPC_RecordNode, // #2 = 'ld' chained node
/*227944*/              OPC_CheckFoldableChainNode,
/*227945*/              OPC_RecordChild1, // #3 = $src2
/*227946*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*227948*/              OPC_CheckPredicate, 9, // Predicate_load
/*227950*/              OPC_MoveParent,
/*227951*/              OPC_MoveParent,
/*227952*/              OPC_MoveChild2,
/*227953*/              OPC_CheckImmAllZerosV,
/*227954*/              OPC_MoveParent,
/*227955*/              OPC_CheckType, MVT::v8i16,
/*227957*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*227959*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*227962*/              OPC_EmitMergeInputChains1_2,
/*227963*/              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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i16] }) - Complexity = 32
                        // Dst: (VPMULHUWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*227976*/            /*Scope*/ 39, /*->228016*/
/*227977*/              OPC_MoveChild0,
/*227978*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*227981*/              OPC_RecordMemRef,
/*227982*/              OPC_RecordNode, // #1 = 'ld' chained node
/*227983*/              OPC_CheckFoldableChainNode,
/*227984*/              OPC_RecordChild1, // #2 = $src2
/*227985*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*227987*/              OPC_CheckPredicate, 9, // Predicate_load
/*227989*/              OPC_MoveParent,
/*227990*/              OPC_RecordChild1, // #3 = $src1
/*227991*/              OPC_MoveParent,
/*227992*/              OPC_MoveChild2,
/*227993*/              OPC_CheckImmAllZerosV,
/*227994*/              OPC_MoveParent,
/*227995*/              OPC_CheckType, MVT::v8i16,
/*227997*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*227999*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*228002*/              OPC_EmitMergeInputChains1_1,
/*228003*/              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] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1), immAllZerosV:{ *:[v8i16] }) - Complexity = 32
                        // Dst: (VPMULHUWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*228016*/            0, /*End of Scope*/
/*228017*/          /*SwitchOpcode*/ 82, TARGET_VAL(X86ISD::MULHRS),// ->228102
/*228020*/            OPC_Scope, 39, /*->228061*/ // 2 children in Scope
/*228022*/              OPC_RecordChild0, // #1 = $src1
/*228023*/              OPC_MoveChild1,
/*228024*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*228027*/              OPC_RecordMemRef,
/*228028*/              OPC_RecordNode, // #2 = 'ld' chained node
/*228029*/              OPC_CheckFoldableChainNode,
/*228030*/              OPC_RecordChild1, // #3 = $src2
/*228031*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*228033*/              OPC_CheckPredicate, 9, // Predicate_load
/*228035*/              OPC_MoveParent,
/*228036*/              OPC_MoveParent,
/*228037*/              OPC_MoveChild2,
/*228038*/              OPC_CheckImmAllZerosV,
/*228039*/              OPC_MoveParent,
/*228040*/              OPC_CheckType, MVT::v8i16,
/*228042*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*228044*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*228047*/              OPC_EmitMergeInputChains1_2,
/*228048*/              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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i16] }) - Complexity = 32
                        // Dst: (VPMULHRSWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*228061*/            /*Scope*/ 39, /*->228101*/
/*228062*/              OPC_MoveChild0,
/*228063*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*228066*/              OPC_RecordMemRef,
/*228067*/              OPC_RecordNode, // #1 = 'ld' chained node
/*228068*/              OPC_CheckFoldableChainNode,
/*228069*/              OPC_RecordChild1, // #2 = $src2
/*228070*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*228072*/              OPC_CheckPredicate, 9, // Predicate_load
/*228074*/              OPC_MoveParent,
/*228075*/              OPC_RecordChild1, // #3 = $src1
/*228076*/              OPC_MoveParent,
/*228077*/              OPC_MoveChild2,
/*228078*/              OPC_CheckImmAllZerosV,
/*228079*/              OPC_MoveParent,
/*228080*/              OPC_CheckType, MVT::v8i16,
/*228082*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*228084*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*228087*/              OPC_EmitMergeInputChains1_1,
/*228088*/              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] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1), immAllZerosV:{ *:[v8i16] }) - Complexity = 32
                        // Dst: (VPMULHRSWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*228101*/            0, /*End of Scope*/
/*228102*/          /*SwitchOpcode*/ 82, TARGET_VAL(X86ISD::AVG),// ->228187
/*228105*/            OPC_Scope, 39, /*->228146*/ // 2 children in Scope
/*228107*/              OPC_RecordChild0, // #1 = $src1
/*228108*/              OPC_MoveChild1,
/*228109*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*228112*/              OPC_RecordMemRef,
/*228113*/              OPC_RecordNode, // #2 = 'ld' chained node
/*228114*/              OPC_CheckFoldableChainNode,
/*228115*/              OPC_RecordChild1, // #3 = $src2
/*228116*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*228118*/              OPC_CheckPredicate, 9, // Predicate_load
/*228120*/              OPC_MoveParent,
/*228121*/              OPC_MoveParent,
/*228122*/              OPC_MoveChild2,
/*228123*/              OPC_CheckImmAllZerosV,
/*228124*/              OPC_MoveParent,
/*228125*/              OPC_CheckType, MVT::v8i16,
/*228127*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*228129*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*228132*/              OPC_EmitMergeInputChains1_2,
/*228133*/              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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i16] }) - Complexity = 32
                        // Dst: (VPAVGWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*228146*/            /*Scope*/ 39, /*->228186*/
/*228147*/              OPC_MoveChild0,
/*228148*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*228151*/              OPC_RecordMemRef,
/*228152*/              OPC_RecordNode, // #1 = 'ld' chained node
/*228153*/              OPC_CheckFoldableChainNode,
/*228154*/              OPC_RecordChild1, // #2 = $src2
/*228155*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*228157*/              OPC_CheckPredicate, 9, // Predicate_load
/*228159*/              OPC_MoveParent,
/*228160*/              OPC_RecordChild1, // #3 = $src1
/*228161*/              OPC_MoveParent,
/*228162*/              OPC_MoveChild2,
/*228163*/              OPC_CheckImmAllZerosV,
/*228164*/              OPC_MoveParent,
/*228165*/              OPC_CheckType, MVT::v8i16,
/*228167*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*228169*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*228172*/              OPC_EmitMergeInputChains1_1,
/*228173*/              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] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1), immAllZerosV:{ *:[v8i16] }) - Complexity = 32
                        // Dst: (VPAVGWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*228186*/            0, /*End of Scope*/
/*228187*/          /*SwitchOpcode*/ 29|128,1/*157*/, TARGET_VAL(X86ISD::PMULDQ),// ->228348
/*228191*/            OPC_Scope, 76, /*->228269*/ // 2 children in Scope
/*228193*/              OPC_RecordChild0, // #1 = $src1
/*228194*/              OPC_MoveChild1,
/*228195*/              OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->228233
/*228199*/                OPC_RecordMemRef,
/*228200*/                OPC_RecordNode, // #2 = 'ld' chained node
/*228201*/                OPC_CheckFoldableChainNode,
/*228202*/                OPC_RecordChild1, // #3 = $src2
/*228203*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*228205*/                OPC_CheckPredicate, 9, // Predicate_load
/*228207*/                OPC_MoveParent,
/*228208*/                OPC_MoveParent,
/*228209*/                OPC_MoveChild2,
/*228210*/                OPC_CheckImmAllZerosV,
/*228211*/                OPC_MoveParent,
/*228212*/                OPC_CheckType, MVT::v8i64,
/*228214*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*228216*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*228219*/                OPC_EmitMergeInputChains1_2,
/*228220*/                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>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                          // Dst: (VPMULDQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*228233*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->228268
/*228236*/                OPC_RecordMemRef,
/*228237*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*228238*/                OPC_CheckFoldableChainNode,
/*228239*/                OPC_RecordChild1, // #3 = $src2
/*228240*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*228242*/                OPC_MoveParent,
/*228243*/                OPC_MoveParent,
/*228244*/                OPC_MoveChild2,
/*228245*/                OPC_CheckImmAllZerosV,
/*228246*/                OPC_MoveParent,
/*228247*/                OPC_CheckType, MVT::v8i64,
/*228249*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*228251*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*228254*/                OPC_EmitMergeInputChains1_2,
/*228255*/                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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                          // Dst: (VPMULDQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*228268*/              0, // EndSwitchOpcode
/*228269*/            /*Scope*/ 77, /*->228347*/
/*228270*/              OPC_MoveChild0,
/*228271*/              OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->228310
/*228275*/                OPC_RecordMemRef,
/*228276*/                OPC_RecordNode, // #1 = 'ld' chained node
/*228277*/                OPC_CheckFoldableChainNode,
/*228278*/                OPC_RecordChild1, // #2 = $src2
/*228279*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*228281*/                OPC_CheckPredicate, 9, // Predicate_load
/*228283*/                OPC_MoveParent,
/*228284*/                OPC_RecordChild1, // #3 = $src1
/*228285*/                OPC_MoveParent,
/*228286*/                OPC_MoveChild2,
/*228287*/                OPC_CheckImmAllZerosV,
/*228288*/                OPC_MoveParent,
/*228289*/                OPC_CheckType, MVT::v8i64,
/*228291*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*228293*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*228296*/                OPC_EmitMergeInputChains1_1,
/*228297*/                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>>, VR512:{ *:[v8i64] }:$src1), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                          // Dst: (VPMULDQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*228310*/              /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->228346
/*228313*/                OPC_RecordMemRef,
/*228314*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*228315*/                OPC_CheckFoldableChainNode,
/*228316*/                OPC_RecordChild1, // #2 = $src2
/*228317*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*228319*/                OPC_MoveParent,
/*228320*/                OPC_RecordChild1, // #3 = $src1
/*228321*/                OPC_MoveParent,
/*228322*/                OPC_MoveChild2,
/*228323*/                OPC_CheckImmAllZerosV,
/*228324*/                OPC_MoveParent,
/*228325*/                OPC_CheckType, MVT::v8i64,
/*228327*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*228329*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*228332*/                OPC_EmitMergeInputChains1_1,
/*228333*/                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] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8i64] }:$src1), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                          // Dst: (VPMULDQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*228346*/              0, // EndSwitchOpcode
/*228347*/            0, /*End of Scope*/
/*228348*/          /*SwitchOpcode*/ 29|128,1/*157*/, TARGET_VAL(X86ISD::PMULUDQ),// ->228509
/*228352*/            OPC_Scope, 76, /*->228430*/ // 2 children in Scope
/*228354*/              OPC_RecordChild0, // #1 = $src1
/*228355*/              OPC_MoveChild1,
/*228356*/              OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->228394
/*228360*/                OPC_RecordMemRef,
/*228361*/                OPC_RecordNode, // #2 = 'ld' chained node
/*228362*/                OPC_CheckFoldableChainNode,
/*228363*/                OPC_RecordChild1, // #3 = $src2
/*228364*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*228366*/                OPC_CheckPredicate, 9, // Predicate_load
/*228368*/                OPC_MoveParent,
/*228369*/                OPC_MoveParent,
/*228370*/                OPC_MoveChild2,
/*228371*/                OPC_CheckImmAllZerosV,
/*228372*/                OPC_MoveParent,
/*228373*/                OPC_CheckType, MVT::v8i64,
/*228375*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*228377*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*228380*/                OPC_EmitMergeInputChains1_2,
/*228381*/                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>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                          // Dst: (VPMULUDQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*228394*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->228429
/*228397*/                OPC_RecordMemRef,
/*228398*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*228399*/                OPC_CheckFoldableChainNode,
/*228400*/                OPC_RecordChild1, // #3 = $src2
/*228401*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*228403*/                OPC_MoveParent,
/*228404*/                OPC_MoveParent,
/*228405*/                OPC_MoveChild2,
/*228406*/                OPC_CheckImmAllZerosV,
/*228407*/                OPC_MoveParent,
/*228408*/                OPC_CheckType, MVT::v8i64,
/*228410*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*228412*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*228415*/                OPC_EmitMergeInputChains1_2,
/*228416*/                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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                          // Dst: (VPMULUDQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*228429*/              0, // EndSwitchOpcode
/*228430*/            /*Scope*/ 77, /*->228508*/
/*228431*/              OPC_MoveChild0,
/*228432*/              OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->228471
/*228436*/                OPC_RecordMemRef,
/*228437*/                OPC_RecordNode, // #1 = 'ld' chained node
/*228438*/                OPC_CheckFoldableChainNode,
/*228439*/                OPC_RecordChild1, // #2 = $src2
/*228440*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*228442*/                OPC_CheckPredicate, 9, // Predicate_load
/*228444*/                OPC_MoveParent,
/*228445*/                OPC_RecordChild1, // #3 = $src1
/*228446*/                OPC_MoveParent,
/*228447*/                OPC_MoveChild2,
/*228448*/                OPC_CheckImmAllZerosV,
/*228449*/                OPC_MoveParent,
/*228450*/                OPC_CheckType, MVT::v8i64,
/*228452*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*228454*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*228457*/                OPC_EmitMergeInputChains1_1,
/*228458*/                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>>, VR512:{ *:[v8i64] }:$src1), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                          // Dst: (VPMULUDQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*228471*/              /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->228507
/*228474*/                OPC_RecordMemRef,
/*228475*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*228476*/                OPC_CheckFoldableChainNode,
/*228477*/                OPC_RecordChild1, // #2 = $src2
/*228478*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*228480*/                OPC_MoveParent,
/*228481*/                OPC_RecordChild1, // #3 = $src1
/*228482*/                OPC_MoveParent,
/*228483*/                OPC_MoveChild2,
/*228484*/                OPC_CheckImmAllZerosV,
/*228485*/                OPC_MoveParent,
/*228486*/                OPC_CheckType, MVT::v8i64,
/*228488*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*228490*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*228493*/                OPC_EmitMergeInputChains1_1,
/*228494*/                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] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8i64] }:$src1), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                          // Dst: (VPMULUDQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*228507*/              0, // EndSwitchOpcode
/*228508*/            0, /*End of Scope*/
/*228509*/          /*SwitchOpcode*/ 78, TARGET_VAL(X86ISD::PACKSS),// ->228590
/*228512*/            OPC_RecordChild0, // #1 = $src1
/*228513*/            OPC_CheckChild0Type, MVT::v4i32,
/*228515*/            OPC_MoveChild1,
/*228516*/            OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->228554
/*228520*/              OPC_RecordMemRef,
/*228521*/              OPC_RecordNode, // #2 = 'ld' chained node
/*228522*/              OPC_CheckFoldableChainNode,
/*228523*/              OPC_RecordChild1, // #3 = $src2
/*228524*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*228526*/              OPC_CheckPredicate, 9, // Predicate_load
/*228528*/              OPC_MoveParent,
/*228529*/              OPC_MoveParent,
/*228530*/              OPC_MoveChild2,
/*228531*/              OPC_CheckImmAllZerosV,
/*228532*/              OPC_MoveParent,
/*228533*/              OPC_CheckType, MVT::v8i16,
/*228535*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*228537*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*228540*/              OPC_EmitMergeInputChains1_2,
/*228541*/              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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i16] }) - Complexity = 32
                        // Dst: (VPACKSSDWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*228554*/            /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->228589
/*228557*/              OPC_RecordMemRef,
/*228558*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*228559*/              OPC_CheckFoldableChainNode,
/*228560*/              OPC_RecordChild1, // #3 = $src2
/*228561*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*228563*/              OPC_MoveParent,
/*228564*/              OPC_MoveParent,
/*228565*/              OPC_MoveChild2,
/*228566*/              OPC_CheckImmAllZerosV,
/*228567*/              OPC_MoveParent,
/*228568*/              OPC_CheckType, MVT::v8i16,
/*228570*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*228572*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*228575*/              OPC_EmitMergeInputChains1_2,
/*228576*/              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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8i16] }) - Complexity = 32
                        // Dst: (VPACKSSDWZ128rmbkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*228589*/            0, // EndSwitchOpcode
/*228590*/          /*SwitchOpcode*/ 78, TARGET_VAL(X86ISD::PACKUS),// ->228671
/*228593*/            OPC_RecordChild0, // #1 = $src1
/*228594*/            OPC_CheckChild0Type, MVT::v4i32,
/*228596*/            OPC_MoveChild1,
/*228597*/            OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->228635
/*228601*/              OPC_RecordMemRef,
/*228602*/              OPC_RecordNode, // #2 = 'ld' chained node
/*228603*/              OPC_CheckFoldableChainNode,
/*228604*/              OPC_RecordChild1, // #3 = $src2
/*228605*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*228607*/              OPC_CheckPredicate, 9, // Predicate_load
/*228609*/              OPC_MoveParent,
/*228610*/              OPC_MoveParent,
/*228611*/              OPC_MoveChild2,
/*228612*/              OPC_CheckImmAllZerosV,
/*228613*/              OPC_MoveParent,
/*228614*/              OPC_CheckType, MVT::v8i16,
/*228616*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*228618*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*228621*/              OPC_EmitMergeInputChains1_2,
/*228622*/              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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i16] }) - Complexity = 32
                        // Dst: (VPACKUSDWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*228635*/            /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->228670
/*228638*/              OPC_RecordMemRef,
/*228639*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*228640*/              OPC_CheckFoldableChainNode,
/*228641*/              OPC_RecordChild1, // #3 = $src2
/*228642*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*228644*/              OPC_MoveParent,
/*228645*/              OPC_MoveParent,
/*228646*/              OPC_MoveChild2,
/*228647*/              OPC_CheckImmAllZerosV,
/*228648*/              OPC_MoveParent,
/*228649*/              OPC_CheckType, MVT::v8i16,
/*228651*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*228653*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*228656*/              OPC_EmitMergeInputChains1_2,
/*228657*/              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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8i16] }) - Complexity = 32
                        // Dst: (VPACKUSDWZ128rmbkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*228670*/            0, // EndSwitchOpcode
/*228671*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VPMADDUBSW),// ->228713
/*228674*/            OPC_RecordChild0, // #1 = $src1
/*228675*/            OPC_MoveChild1,
/*228676*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*228679*/            OPC_RecordMemRef,
/*228680*/            OPC_RecordNode, // #2 = 'ld' chained node
/*228681*/            OPC_CheckFoldableChainNode,
/*228682*/            OPC_RecordChild1, // #3 = $src2
/*228683*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*228685*/            OPC_CheckPredicate, 9, // Predicate_load
/*228687*/            OPC_MoveParent,
/*228688*/            OPC_MoveParent,
/*228689*/            OPC_MoveChild2,
/*228690*/            OPC_CheckImmAllZerosV,
/*228691*/            OPC_MoveParent,
/*228692*/            OPC_CheckType, MVT::v8i16,
/*228694*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*228696*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*228699*/            OPC_EmitMergeInputChains1_2,
/*228700*/            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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i16] }) - Complexity = 32
                      // Dst: (VPMADDUBSWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*228713*/          /*SwitchOpcode*/ 82, TARGET_VAL(X86ISD::VPMADDWD),// ->228798
/*228716*/            OPC_Scope, 39, /*->228757*/ // 2 children in Scope
/*228718*/              OPC_RecordChild0, // #1 = $src1
/*228719*/              OPC_MoveChild1,
/*228720*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*228723*/              OPC_RecordMemRef,
/*228724*/              OPC_RecordNode, // #2 = 'ld' chained node
/*228725*/              OPC_CheckFoldableChainNode,
/*228726*/              OPC_RecordChild1, // #3 = $src2
/*228727*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*228729*/              OPC_CheckPredicate, 9, // Predicate_load
/*228731*/              OPC_MoveParent,
/*228732*/              OPC_MoveParent,
/*228733*/              OPC_MoveChild2,
/*228734*/              OPC_CheckImmAllZerosV,
/*228735*/              OPC_MoveParent,
/*228736*/              OPC_CheckType, MVT::v8i32,
/*228738*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*228740*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*228743*/              OPC_EmitMergeInputChains1_2,
/*228744*/              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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                        // Dst: (VPMADDWDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*228757*/            /*Scope*/ 39, /*->228797*/
/*228758*/              OPC_MoveChild0,
/*228759*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*228762*/              OPC_RecordMemRef,
/*228763*/              OPC_RecordNode, // #1 = 'ld' chained node
/*228764*/              OPC_CheckFoldableChainNode,
/*228765*/              OPC_RecordChild1, // #2 = $src2
/*228766*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*228768*/              OPC_CheckPredicate, 9, // Predicate_load
/*228770*/              OPC_MoveParent,
/*228771*/              OPC_RecordChild1, // #3 = $src1
/*228772*/              OPC_MoveParent,
/*228773*/              OPC_MoveChild2,
/*228774*/              OPC_CheckImmAllZerosV,
/*228775*/              OPC_MoveParent,
/*228776*/              OPC_CheckType, MVT::v8i32,
/*228778*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*228780*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*228783*/              OPC_EmitMergeInputChains1_1,
/*228784*/              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] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                        // Dst: (VPMADDWDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*228797*/            0, /*End of Scope*/
/*228798*/          /*SwitchOpcode*/ 56|128,2/*312*/, TARGET_VAL(ISD::SMAX),// ->229114
/*228802*/            OPC_Scope, 24|128,1/*152*/, /*->228957*/ // 2 children in Scope
/*228805*/              OPC_RecordChild0, // #1 = $src1
/*228806*/              OPC_MoveChild1,
/*228807*/              OPC_SwitchOpcode /*2 cases */, 78, TARGET_VAL(ISD::LOAD),// ->228889
/*228811*/                OPC_RecordMemRef,
/*228812*/                OPC_RecordNode, // #2 = 'ld' chained node
/*228813*/                OPC_CheckFoldableChainNode,
/*228814*/                OPC_RecordChild1, // #3 = $src2
/*228815*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*228817*/                OPC_CheckPredicate, 9, // Predicate_load
/*228819*/                OPC_MoveParent,
/*228820*/                OPC_MoveParent,
/*228821*/                OPC_MoveChild2,
/*228822*/                OPC_CheckImmAllZerosV,
/*228823*/                OPC_MoveParent,
/*228824*/                OPC_SwitchType /*3 cases */, 19, MVT::v8i16,// ->228846
/*228827*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*228829*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*228832*/                  OPC_EmitMergeInputChains1_2,
/*228833*/                  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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i16] }) - Complexity = 32
                            // Dst: (VPMAXSWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*228846*/                /*SwitchType*/ 19, MVT::v8i32,// ->228867
/*228848*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*228850*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*228853*/                  OPC_EmitMergeInputChains1_2,
/*228854*/                  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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                            // Dst: (VPMAXSDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*228867*/                /*SwitchType*/ 19, MVT::v8i64,// ->228888
/*228869*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*228871*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*228874*/                  OPC_EmitMergeInputChains1_2,
/*228875*/                  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>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                            // Dst: (VPMAXSQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*228888*/                0, // EndSwitchType
/*228889*/              /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->228956
/*228892*/                OPC_RecordMemRef,
/*228893*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*228894*/                OPC_CheckFoldableChainNode,
/*228895*/                OPC_RecordChild1, // #3 = $src2
/*228896*/                OPC_Scope, 28, /*->228926*/ // 2 children in Scope
/*228898*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*228900*/                  OPC_MoveParent,
/*228901*/                  OPC_MoveParent,
/*228902*/                  OPC_MoveChild2,
/*228903*/                  OPC_CheckImmAllZerosV,
/*228904*/                  OPC_MoveParent,
/*228905*/                  OPC_CheckType, MVT::v8i32,
/*228907*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*228909*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*228912*/                  OPC_EmitMergeInputChains1_2,
/*228913*/                  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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                            // Dst: (VPMAXSDZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*228926*/                /*Scope*/ 28, /*->228955*/
/*228927*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*228929*/                  OPC_MoveParent,
/*228930*/                  OPC_MoveParent,
/*228931*/                  OPC_MoveChild2,
/*228932*/                  OPC_CheckImmAllZerosV,
/*228933*/                  OPC_MoveParent,
/*228934*/                  OPC_CheckType, MVT::v8i64,
/*228936*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*228938*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*228941*/                  OPC_EmitMergeInputChains1_2,
/*228942*/                  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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                            // Dst: (VPMAXSQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*228955*/                0, /*End of Scope*/
/*228956*/              0, // EndSwitchOpcode
/*228957*/            /*Scope*/ 26|128,1/*154*/, /*->229113*/
/*228959*/              OPC_MoveChild0,
/*228960*/              OPC_SwitchOpcode /*2 cases */, 79, TARGET_VAL(ISD::LOAD),// ->229043
/*228964*/                OPC_RecordMemRef,
/*228965*/                OPC_RecordNode, // #1 = 'ld' chained node
/*228966*/                OPC_CheckFoldableChainNode,
/*228967*/                OPC_RecordChild1, // #2 = $src2
/*228968*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*228970*/                OPC_CheckPredicate, 9, // Predicate_load
/*228972*/                OPC_MoveParent,
/*228973*/                OPC_RecordChild1, // #3 = $src1
/*228974*/                OPC_MoveParent,
/*228975*/                OPC_MoveChild2,
/*228976*/                OPC_CheckImmAllZerosV,
/*228977*/                OPC_MoveParent,
/*228978*/                OPC_SwitchType /*3 cases */, 19, MVT::v8i16,// ->229000
/*228981*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*228983*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*228986*/                  OPC_EmitMergeInputChains1_1,
/*228987*/                  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] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1), immAllZerosV:{ *:[v8i16] }) - Complexity = 32
                            // Dst: (VPMAXSWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*229000*/                /*SwitchType*/ 19, MVT::v8i32,// ->229021
/*229002*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*229004*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*229007*/                  OPC_EmitMergeInputChains1_1,
/*229008*/                  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] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8i32] }:$src1), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                            // Dst: (VPMAXSDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*229021*/                /*SwitchType*/ 19, MVT::v8i64,// ->229042
/*229023*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*229025*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*229028*/                  OPC_EmitMergeInputChains1_1,
/*229029*/                  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>>, VR512:{ *:[v8i64] }:$src1), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                            // Dst: (VPMAXSQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*229042*/                0, // EndSwitchType
/*229043*/              /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->229112
/*229046*/                OPC_RecordMemRef,
/*229047*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*229048*/                OPC_CheckFoldableChainNode,
/*229049*/                OPC_RecordChild1, // #2 = $src2
/*229050*/                OPC_Scope, 29, /*->229081*/ // 2 children in Scope
/*229052*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*229054*/                  OPC_MoveParent,
/*229055*/                  OPC_RecordChild1, // #3 = $src1
/*229056*/                  OPC_MoveParent,
/*229057*/                  OPC_MoveChild2,
/*229058*/                  OPC_CheckImmAllZerosV,
/*229059*/                  OPC_MoveParent,
/*229060*/                  OPC_CheckType, MVT::v8i32,
/*229062*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*229064*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*229067*/                  OPC_EmitMergeInputChains1_1,
/*229068*/                  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] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8i32] }:$src1), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                            // Dst: (VPMAXSDZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*229081*/                /*Scope*/ 29, /*->229111*/
/*229082*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*229084*/                  OPC_MoveParent,
/*229085*/                  OPC_RecordChild1, // #3 = $src1
/*229086*/                  OPC_MoveParent,
/*229087*/                  OPC_MoveChild2,
/*229088*/                  OPC_CheckImmAllZerosV,
/*229089*/                  OPC_MoveParent,
/*229090*/                  OPC_CheckType, MVT::v8i64,
/*229092*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*229094*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*229097*/                  OPC_EmitMergeInputChains1_1,
/*229098*/                  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] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8i64] }:$src1), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                            // Dst: (VPMAXSQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*229111*/                0, /*End of Scope*/
/*229112*/              0, // EndSwitchOpcode
/*229113*/            0, /*End of Scope*/
/*229114*/          /*SwitchOpcode*/ 56|128,2/*312*/, TARGET_VAL(ISD::UMAX),// ->229430
/*229118*/            OPC_Scope, 24|128,1/*152*/, /*->229273*/ // 2 children in Scope
/*229121*/              OPC_RecordChild0, // #1 = $src1
/*229122*/              OPC_MoveChild1,
/*229123*/              OPC_SwitchOpcode /*2 cases */, 78, TARGET_VAL(ISD::LOAD),// ->229205
/*229127*/                OPC_RecordMemRef,
/*229128*/                OPC_RecordNode, // #2 = 'ld' chained node
/*229129*/                OPC_CheckFoldableChainNode,
/*229130*/                OPC_RecordChild1, // #3 = $src2
/*229131*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*229133*/                OPC_CheckPredicate, 9, // Predicate_load
/*229135*/                OPC_MoveParent,
/*229136*/                OPC_MoveParent,
/*229137*/                OPC_MoveChild2,
/*229138*/                OPC_CheckImmAllZerosV,
/*229139*/                OPC_MoveParent,
/*229140*/                OPC_SwitchType /*3 cases */, 19, MVT::v8i16,// ->229162
/*229143*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*229145*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*229148*/                  OPC_EmitMergeInputChains1_2,
/*229149*/                  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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i16] }) - Complexity = 32
                            // Dst: (VPMAXUWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*229162*/                /*SwitchType*/ 19, MVT::v8i32,// ->229183
/*229164*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*229166*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*229169*/                  OPC_EmitMergeInputChains1_2,
/*229170*/                  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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                            // Dst: (VPMAXUDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*229183*/                /*SwitchType*/ 19, MVT::v8i64,// ->229204
/*229185*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*229187*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*229190*/                  OPC_EmitMergeInputChains1_2,
/*229191*/                  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>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                            // Dst: (VPMAXUQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*229204*/                0, // EndSwitchType
/*229205*/              /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->229272
/*229208*/                OPC_RecordMemRef,
/*229209*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*229210*/                OPC_CheckFoldableChainNode,
/*229211*/                OPC_RecordChild1, // #3 = $src2
/*229212*/                OPC_Scope, 28, /*->229242*/ // 2 children in Scope
/*229214*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*229216*/                  OPC_MoveParent,
/*229217*/                  OPC_MoveParent,
/*229218*/                  OPC_MoveChild2,
/*229219*/                  OPC_CheckImmAllZerosV,
/*229220*/                  OPC_MoveParent,
/*229221*/                  OPC_CheckType, MVT::v8i32,
/*229223*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*229225*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*229228*/                  OPC_EmitMergeInputChains1_2,
/*229229*/                  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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                            // Dst: (VPMAXUDZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*229242*/                /*Scope*/ 28, /*->229271*/
/*229243*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*229245*/                  OPC_MoveParent,
/*229246*/                  OPC_MoveParent,
/*229247*/                  OPC_MoveChild2,
/*229248*/                  OPC_CheckImmAllZerosV,
/*229249*/                  OPC_MoveParent,
/*229250*/                  OPC_CheckType, MVT::v8i64,
/*229252*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*229254*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*229257*/                  OPC_EmitMergeInputChains1_2,
/*229258*/                  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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                            // Dst: (VPMAXUQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*229271*/                0, /*End of Scope*/
/*229272*/              0, // EndSwitchOpcode
/*229273*/            /*Scope*/ 26|128,1/*154*/, /*->229429*/
/*229275*/              OPC_MoveChild0,
/*229276*/              OPC_SwitchOpcode /*2 cases */, 79, TARGET_VAL(ISD::LOAD),// ->229359
/*229280*/                OPC_RecordMemRef,
/*229281*/                OPC_RecordNode, // #1 = 'ld' chained node
/*229282*/                OPC_CheckFoldableChainNode,
/*229283*/                OPC_RecordChild1, // #2 = $src2
/*229284*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*229286*/                OPC_CheckPredicate, 9, // Predicate_load
/*229288*/                OPC_MoveParent,
/*229289*/                OPC_RecordChild1, // #3 = $src1
/*229290*/                OPC_MoveParent,
/*229291*/                OPC_MoveChild2,
/*229292*/                OPC_CheckImmAllZerosV,
/*229293*/                OPC_MoveParent,
/*229294*/                OPC_SwitchType /*3 cases */, 19, MVT::v8i16,// ->229316
/*229297*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*229299*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*229302*/                  OPC_EmitMergeInputChains1_1,
/*229303*/                  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] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1), immAllZerosV:{ *:[v8i16] }) - Complexity = 32
                            // Dst: (VPMAXUWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*229316*/                /*SwitchType*/ 19, MVT::v8i32,// ->229337
/*229318*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*229320*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*229323*/                  OPC_EmitMergeInputChains1_1,
/*229324*/                  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] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8i32] }:$src1), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                            // Dst: (VPMAXUDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*229337*/                /*SwitchType*/ 19, MVT::v8i64,// ->229358
/*229339*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*229341*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*229344*/                  OPC_EmitMergeInputChains1_1,
/*229345*/                  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>>, VR512:{ *:[v8i64] }:$src1), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                            // Dst: (VPMAXUQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*229358*/                0, // EndSwitchType
/*229359*/              /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->229428
/*229362*/                OPC_RecordMemRef,
/*229363*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*229364*/                OPC_CheckFoldableChainNode,
/*229365*/                OPC_RecordChild1, // #2 = $src2
/*229366*/                OPC_Scope, 29, /*->229397*/ // 2 children in Scope
/*229368*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*229370*/                  OPC_MoveParent,
/*229371*/                  OPC_RecordChild1, // #3 = $src1
/*229372*/                  OPC_MoveParent,
/*229373*/                  OPC_MoveChild2,
/*229374*/                  OPC_CheckImmAllZerosV,
/*229375*/                  OPC_MoveParent,
/*229376*/                  OPC_CheckType, MVT::v8i32,
/*229378*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*229380*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*229383*/                  OPC_EmitMergeInputChains1_1,
/*229384*/                  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] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8i32] }:$src1), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                            // Dst: (VPMAXUDZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*229397*/                /*Scope*/ 29, /*->229427*/
/*229398*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*229400*/                  OPC_MoveParent,
/*229401*/                  OPC_RecordChild1, // #3 = $src1
/*229402*/                  OPC_MoveParent,
/*229403*/                  OPC_MoveChild2,
/*229404*/                  OPC_CheckImmAllZerosV,
/*229405*/                  OPC_MoveParent,
/*229406*/                  OPC_CheckType, MVT::v8i64,
/*229408*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*229410*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*229413*/                  OPC_EmitMergeInputChains1_1,
/*229414*/                  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] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8i64] }:$src1), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                            // Dst: (VPMAXUQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*229427*/                0, /*End of Scope*/
/*229428*/              0, // EndSwitchOpcode
/*229429*/            0, /*End of Scope*/
/*229430*/          /*SwitchOpcode*/ 56|128,2/*312*/, TARGET_VAL(ISD::SMIN),// ->229746
/*229434*/            OPC_Scope, 24|128,1/*152*/, /*->229589*/ // 2 children in Scope
/*229437*/              OPC_RecordChild0, // #1 = $src1
/*229438*/              OPC_MoveChild1,
/*229439*/              OPC_SwitchOpcode /*2 cases */, 78, TARGET_VAL(ISD::LOAD),// ->229521
/*229443*/                OPC_RecordMemRef,
/*229444*/                OPC_RecordNode, // #2 = 'ld' chained node
/*229445*/                OPC_CheckFoldableChainNode,
/*229446*/                OPC_RecordChild1, // #3 = $src2
/*229447*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*229449*/                OPC_CheckPredicate, 9, // Predicate_load
/*229451*/                OPC_MoveParent,
/*229452*/                OPC_MoveParent,
/*229453*/                OPC_MoveChild2,
/*229454*/                OPC_CheckImmAllZerosV,
/*229455*/                OPC_MoveParent,
/*229456*/                OPC_SwitchType /*3 cases */, 19, MVT::v8i16,// ->229478
/*229459*/                  OPC_CheckPatternPredicate, 25, // (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::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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i16] }) - Complexity = 32
                            // Dst: (VPMINSWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*229478*/                /*SwitchType*/ 19, MVT::v8i32,// ->229499
/*229480*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*229482*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*229485*/                  OPC_EmitMergeInputChains1_2,
/*229486*/                  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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                            // Dst: (VPMINSDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*229499*/                /*SwitchType*/ 19, MVT::v8i64,// ->229520
/*229501*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*229503*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*229506*/                  OPC_EmitMergeInputChains1_2,
/*229507*/                  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>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                            // Dst: (VPMINSQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*229520*/                0, // EndSwitchType
/*229521*/              /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->229588
/*229524*/                OPC_RecordMemRef,
/*229525*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*229526*/                OPC_CheckFoldableChainNode,
/*229527*/                OPC_RecordChild1, // #3 = $src2
/*229528*/                OPC_Scope, 28, /*->229558*/ // 2 children in Scope
/*229530*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*229532*/                  OPC_MoveParent,
/*229533*/                  OPC_MoveParent,
/*229534*/                  OPC_MoveChild2,
/*229535*/                  OPC_CheckImmAllZerosV,
/*229536*/                  OPC_MoveParent,
/*229537*/                  OPC_CheckType, MVT::v8i32,
/*229539*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*229541*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*229544*/                  OPC_EmitMergeInputChains1_2,
/*229545*/                  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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                            // Dst: (VPMINSDZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*229558*/                /*Scope*/ 28, /*->229587*/
/*229559*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*229561*/                  OPC_MoveParent,
/*229562*/                  OPC_MoveParent,
/*229563*/                  OPC_MoveChild2,
/*229564*/                  OPC_CheckImmAllZerosV,
/*229565*/                  OPC_MoveParent,
/*229566*/                  OPC_CheckType, MVT::v8i64,
/*229568*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*229570*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*229573*/                  OPC_EmitMergeInputChains1_2,
/*229574*/                  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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                            // Dst: (VPMINSQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*229587*/                0, /*End of Scope*/
/*229588*/              0, // EndSwitchOpcode
/*229589*/            /*Scope*/ 26|128,1/*154*/, /*->229745*/
/*229591*/              OPC_MoveChild0,
/*229592*/              OPC_SwitchOpcode /*2 cases */, 79, TARGET_VAL(ISD::LOAD),// ->229675
/*229596*/                OPC_RecordMemRef,
/*229597*/                OPC_RecordNode, // #1 = 'ld' chained node
/*229598*/                OPC_CheckFoldableChainNode,
/*229599*/                OPC_RecordChild1, // #2 = $src2
/*229600*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*229602*/                OPC_CheckPredicate, 9, // Predicate_load
/*229604*/                OPC_MoveParent,
/*229605*/                OPC_RecordChild1, // #3 = $src1
/*229606*/                OPC_MoveParent,
/*229607*/                OPC_MoveChild2,
/*229608*/                OPC_CheckImmAllZerosV,
/*229609*/                OPC_MoveParent,
/*229610*/                OPC_SwitchType /*3 cases */, 19, MVT::v8i16,// ->229632
/*229613*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*229615*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*229618*/                  OPC_EmitMergeInputChains1_1,
/*229619*/                  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] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1), immAllZerosV:{ *:[v8i16] }) - Complexity = 32
                            // Dst: (VPMINSWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*229632*/                /*SwitchType*/ 19, MVT::v8i32,// ->229653
/*229634*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*229636*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*229639*/                  OPC_EmitMergeInputChains1_1,
/*229640*/                  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] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8i32] }:$src1), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                            // Dst: (VPMINSDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*229653*/                /*SwitchType*/ 19, MVT::v8i64,// ->229674
/*229655*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*229657*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*229660*/                  OPC_EmitMergeInputChains1_1,
/*229661*/                  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>>, VR512:{ *:[v8i64] }:$src1), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                            // Dst: (VPMINSQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*229674*/                0, // EndSwitchType
/*229675*/              /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->229744
/*229678*/                OPC_RecordMemRef,
/*229679*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*229680*/                OPC_CheckFoldableChainNode,
/*229681*/                OPC_RecordChild1, // #2 = $src2
/*229682*/                OPC_Scope, 29, /*->229713*/ // 2 children in Scope
/*229684*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*229686*/                  OPC_MoveParent,
/*229687*/                  OPC_RecordChild1, // #3 = $src1
/*229688*/                  OPC_MoveParent,
/*229689*/                  OPC_MoveChild2,
/*229690*/                  OPC_CheckImmAllZerosV,
/*229691*/                  OPC_MoveParent,
/*229692*/                  OPC_CheckType, MVT::v8i32,
/*229694*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*229696*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*229699*/                  OPC_EmitMergeInputChains1_1,
/*229700*/                  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] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8i32] }:$src1), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                            // Dst: (VPMINSDZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*229713*/                /*Scope*/ 29, /*->229743*/
/*229714*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*229716*/                  OPC_MoveParent,
/*229717*/                  OPC_RecordChild1, // #3 = $src1
/*229718*/                  OPC_MoveParent,
/*229719*/                  OPC_MoveChild2,
/*229720*/                  OPC_CheckImmAllZerosV,
/*229721*/                  OPC_MoveParent,
/*229722*/                  OPC_CheckType, MVT::v8i64,
/*229724*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*229726*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*229729*/                  OPC_EmitMergeInputChains1_1,
/*229730*/                  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] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8i64] }:$src1), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                            // Dst: (VPMINSQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*229743*/                0, /*End of Scope*/
/*229744*/              0, // EndSwitchOpcode
/*229745*/            0, /*End of Scope*/
/*229746*/          /*SwitchOpcode*/ 56|128,2/*312*/, TARGET_VAL(ISD::UMIN),// ->230062
/*229750*/            OPC_Scope, 24|128,1/*152*/, /*->229905*/ // 2 children in Scope
/*229753*/              OPC_RecordChild0, // #1 = $src1
/*229754*/              OPC_MoveChild1,
/*229755*/              OPC_SwitchOpcode /*2 cases */, 78, TARGET_VAL(ISD::LOAD),// ->229837
/*229759*/                OPC_RecordMemRef,
/*229760*/                OPC_RecordNode, // #2 = 'ld' chained node
/*229761*/                OPC_CheckFoldableChainNode,
/*229762*/                OPC_RecordChild1, // #3 = $src2
/*229763*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*229765*/                OPC_CheckPredicate, 9, // Predicate_load
/*229767*/                OPC_MoveParent,
/*229768*/                OPC_MoveParent,
/*229769*/                OPC_MoveChild2,
/*229770*/                OPC_CheckImmAllZerosV,
/*229771*/                OPC_MoveParent,
/*229772*/                OPC_SwitchType /*3 cases */, 19, MVT::v8i16,// ->229794
/*229775*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*229777*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*229780*/                  OPC_EmitMergeInputChains1_2,
/*229781*/                  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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i16] }) - Complexity = 32
                            // Dst: (VPMINUWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*229794*/                /*SwitchType*/ 19, MVT::v8i32,// ->229815
/*229796*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*229798*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*229801*/                  OPC_EmitMergeInputChains1_2,
/*229802*/                  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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                            // Dst: (VPMINUDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*229815*/                /*SwitchType*/ 19, MVT::v8i64,// ->229836
/*229817*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*229819*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*229822*/                  OPC_EmitMergeInputChains1_2,
/*229823*/                  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>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                            // Dst: (VPMINUQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*229836*/                0, // EndSwitchType
/*229837*/              /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->229904
/*229840*/                OPC_RecordMemRef,
/*229841*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*229842*/                OPC_CheckFoldableChainNode,
/*229843*/                OPC_RecordChild1, // #3 = $src2
/*229844*/                OPC_Scope, 28, /*->229874*/ // 2 children in Scope
/*229846*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*229848*/                  OPC_MoveParent,
/*229849*/                  OPC_MoveParent,
/*229850*/                  OPC_MoveChild2,
/*229851*/                  OPC_CheckImmAllZerosV,
/*229852*/                  OPC_MoveParent,
/*229853*/                  OPC_CheckType, MVT::v8i32,
/*229855*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*229857*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*229860*/                  OPC_EmitMergeInputChains1_2,
/*229861*/                  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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                            // Dst: (VPMINUDZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*229874*/                /*Scope*/ 28, /*->229903*/
/*229875*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*229877*/                  OPC_MoveParent,
/*229878*/                  OPC_MoveParent,
/*229879*/                  OPC_MoveChild2,
/*229880*/                  OPC_CheckImmAllZerosV,
/*229881*/                  OPC_MoveParent,
/*229882*/                  OPC_CheckType, MVT::v8i64,
/*229884*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*229886*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*229889*/                  OPC_EmitMergeInputChains1_2,
/*229890*/                  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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                            // Dst: (VPMINUQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*229903*/                0, /*End of Scope*/
/*229904*/              0, // EndSwitchOpcode
/*229905*/            /*Scope*/ 26|128,1/*154*/, /*->230061*/
/*229907*/              OPC_MoveChild0,
/*229908*/              OPC_SwitchOpcode /*2 cases */, 79, TARGET_VAL(ISD::LOAD),// ->229991
/*229912*/                OPC_RecordMemRef,
/*229913*/                OPC_RecordNode, // #1 = 'ld' chained node
/*229914*/                OPC_CheckFoldableChainNode,
/*229915*/                OPC_RecordChild1, // #2 = $src2
/*229916*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*229918*/                OPC_CheckPredicate, 9, // Predicate_load
/*229920*/                OPC_MoveParent,
/*229921*/                OPC_RecordChild1, // #3 = $src1
/*229922*/                OPC_MoveParent,
/*229923*/                OPC_MoveChild2,
/*229924*/                OPC_CheckImmAllZerosV,
/*229925*/                OPC_MoveParent,
/*229926*/                OPC_SwitchType /*3 cases */, 19, MVT::v8i16,// ->229948
/*229929*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*229931*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*229934*/                  OPC_EmitMergeInputChains1_1,
/*229935*/                  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] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1), immAllZerosV:{ *:[v8i16] }) - Complexity = 32
                            // Dst: (VPMINUWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*229948*/                /*SwitchType*/ 19, MVT::v8i32,// ->229969
/*229950*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*229952*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*229955*/                  OPC_EmitMergeInputChains1_1,
/*229956*/                  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] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8i32] }:$src1), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                            // Dst: (VPMINUDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*229969*/                /*SwitchType*/ 19, MVT::v8i64,// ->229990
/*229971*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*229973*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*229976*/                  OPC_EmitMergeInputChains1_1,
/*229977*/                  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>>, VR512:{ *:[v8i64] }:$src1), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                            // Dst: (VPMINUQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*229990*/                0, // EndSwitchType
/*229991*/              /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->230060
/*229994*/                OPC_RecordMemRef,
/*229995*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*229996*/                OPC_CheckFoldableChainNode,
/*229997*/                OPC_RecordChild1, // #2 = $src2
/*229998*/                OPC_Scope, 29, /*->230029*/ // 2 children in Scope
/*230000*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*230002*/                  OPC_MoveParent,
/*230003*/                  OPC_RecordChild1, // #3 = $src1
/*230004*/                  OPC_MoveParent,
/*230005*/                  OPC_MoveChild2,
/*230006*/                  OPC_CheckImmAllZerosV,
/*230007*/                  OPC_MoveParent,
/*230008*/                  OPC_CheckType, MVT::v8i32,
/*230010*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*230012*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*230015*/                  OPC_EmitMergeInputChains1_1,
/*230016*/                  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] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8i32] }:$src1), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                            // Dst: (VPMINUDZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*230029*/                /*Scope*/ 29, /*->230059*/
/*230030*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*230032*/                  OPC_MoveParent,
/*230033*/                  OPC_RecordChild1, // #3 = $src1
/*230034*/                  OPC_MoveParent,
/*230035*/                  OPC_MoveChild2,
/*230036*/                  OPC_CheckImmAllZerosV,
/*230037*/                  OPC_MoveParent,
/*230038*/                  OPC_CheckType, MVT::v8i64,
/*230040*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*230042*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*230045*/                  OPC_EmitMergeInputChains1_1,
/*230046*/                  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] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8i64] }:$src1), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                            // Dst: (VPMINUQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*230059*/                0, /*End of Scope*/
/*230060*/              0, // EndSwitchOpcode
/*230061*/            0, /*End of Scope*/
/*230062*/          /*SwitchOpcode*/ 14|128,2/*270*/, TARGET_VAL(ISD::AND),// ->230336
/*230066*/            OPC_Scope, 3|128,1/*131*/, /*->230200*/ // 2 children in Scope
/*230069*/              OPC_RecordChild0, // #1 = $src1
/*230070*/              OPC_MoveChild1,
/*230071*/              OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->230132
/*230075*/                OPC_RecordMemRef,
/*230076*/                OPC_RecordNode, // #2 = 'ld' chained node
/*230077*/                OPC_CheckFoldableChainNode,
/*230078*/                OPC_RecordChild1, // #3 = $src2
/*230079*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*230081*/                OPC_CheckPredicate, 9, // Predicate_load
/*230083*/                OPC_MoveParent,
/*230084*/                OPC_MoveParent,
/*230085*/                OPC_MoveChild2,
/*230086*/                OPC_CheckImmAllZerosV,
/*230087*/                OPC_MoveParent,
/*230088*/                OPC_SwitchType /*2 cases */, 19, MVT::v8i64,// ->230110
/*230091*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*230093*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*230096*/                  OPC_EmitMergeInputChains1_2,
/*230097*/                  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>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                            // Dst: (VPANDQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*230110*/                /*SwitchType*/ 19, MVT::v8i32,// ->230131
/*230112*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*230114*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*230117*/                  OPC_EmitMergeInputChains1_2,
/*230118*/                  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, (and:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                            // Dst: (VPANDDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*230131*/                0, // EndSwitchType
/*230132*/              /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->230199
/*230135*/                OPC_RecordMemRef,
/*230136*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*230137*/                OPC_CheckFoldableChainNode,
/*230138*/                OPC_RecordChild1, // #3 = $src2
/*230139*/                OPC_Scope, 28, /*->230169*/ // 2 children in Scope
/*230141*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*230143*/                  OPC_MoveParent,
/*230144*/                  OPC_MoveParent,
/*230145*/                  OPC_MoveChild2,
/*230146*/                  OPC_CheckImmAllZerosV,
/*230147*/                  OPC_MoveParent,
/*230148*/                  OPC_CheckType, MVT::v8i64,
/*230150*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*230152*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*230155*/                  OPC_EmitMergeInputChains1_2,
/*230156*/                  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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                            // Dst: (VPANDQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*230169*/                /*Scope*/ 28, /*->230198*/
/*230170*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*230172*/                  OPC_MoveParent,
/*230173*/                  OPC_MoveParent,
/*230174*/                  OPC_MoveChild2,
/*230175*/                  OPC_CheckImmAllZerosV,
/*230176*/                  OPC_MoveParent,
/*230177*/                  OPC_CheckType, MVT::v8i32,
/*230179*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*230181*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*230184*/                  OPC_EmitMergeInputChains1_2,
/*230185*/                  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, (and:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                            // Dst: (VPANDDZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*230198*/                0, /*End of Scope*/
/*230199*/              0, // EndSwitchOpcode
/*230200*/            /*Scope*/ 5|128,1/*133*/, /*->230335*/
/*230202*/              OPC_MoveChild0,
/*230203*/              OPC_SwitchOpcode /*2 cases */, 58, TARGET_VAL(ISD::LOAD),// ->230265
/*230207*/                OPC_RecordMemRef,
/*230208*/                OPC_RecordNode, // #1 = 'ld' chained node
/*230209*/                OPC_CheckFoldableChainNode,
/*230210*/                OPC_RecordChild1, // #2 = $src2
/*230211*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*230213*/                OPC_CheckPredicate, 9, // Predicate_load
/*230215*/                OPC_MoveParent,
/*230216*/                OPC_RecordChild1, // #3 = $src1
/*230217*/                OPC_MoveParent,
/*230218*/                OPC_MoveChild2,
/*230219*/                OPC_CheckImmAllZerosV,
/*230220*/                OPC_MoveParent,
/*230221*/                OPC_SwitchType /*2 cases */, 19, MVT::v8i64,// ->230243
/*230224*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*230226*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*230229*/                  OPC_EmitMergeInputChains1_1,
/*230230*/                  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>>, VR512:{ *:[v8i64] }:$src1), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                            // Dst: (VPANDQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*230243*/                /*SwitchType*/ 19, MVT::v8i32,// ->230264
/*230245*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*230247*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*230250*/                  OPC_EmitMergeInputChains1_1,
/*230251*/                  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, (and:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8i32] }:$src1), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                            // Dst: (VPANDDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*230264*/                0, // EndSwitchType
/*230265*/              /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->230334
/*230268*/                OPC_RecordMemRef,
/*230269*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*230270*/                OPC_CheckFoldableChainNode,
/*230271*/                OPC_RecordChild1, // #2 = $src2
/*230272*/                OPC_Scope, 29, /*->230303*/ // 2 children in Scope
/*230274*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*230276*/                  OPC_MoveParent,
/*230277*/                  OPC_RecordChild1, // #3 = $src1
/*230278*/                  OPC_MoveParent,
/*230279*/                  OPC_MoveChild2,
/*230280*/                  OPC_CheckImmAllZerosV,
/*230281*/                  OPC_MoveParent,
/*230282*/                  OPC_CheckType, MVT::v8i64,
/*230284*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*230286*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*230289*/                  OPC_EmitMergeInputChains1_1,
/*230290*/                  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] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8i64] }:$src1), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                            // Dst: (VPANDQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*230303*/                /*Scope*/ 29, /*->230333*/
/*230304*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*230306*/                  OPC_MoveParent,
/*230307*/                  OPC_RecordChild1, // #3 = $src1
/*230308*/                  OPC_MoveParent,
/*230309*/                  OPC_MoveChild2,
/*230310*/                  OPC_CheckImmAllZerosV,
/*230311*/                  OPC_MoveParent,
/*230312*/                  OPC_CheckType, MVT::v8i32,
/*230314*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*230316*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*230319*/                  OPC_EmitMergeInputChains1_1,
/*230320*/                  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, (and:{ *:[v8i32] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8i32] }:$src1), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                            // Dst: (VPANDDZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*230333*/                0, /*End of Scope*/
/*230334*/              0, // EndSwitchOpcode
/*230335*/            0, /*End of Scope*/
/*230336*/          /*SwitchOpcode*/ 14|128,2/*270*/, TARGET_VAL(ISD::OR),// ->230610
/*230340*/            OPC_Scope, 3|128,1/*131*/, /*->230474*/ // 2 children in Scope
/*230343*/              OPC_RecordChild0, // #1 = $src1
/*230344*/              OPC_MoveChild1,
/*230345*/              OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->230406
/*230349*/                OPC_RecordMemRef,
/*230350*/                OPC_RecordNode, // #2 = 'ld' chained node
/*230351*/                OPC_CheckFoldableChainNode,
/*230352*/                OPC_RecordChild1, // #3 = $src2
/*230353*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*230355*/                OPC_CheckPredicate, 9, // Predicate_load
/*230357*/                OPC_MoveParent,
/*230358*/                OPC_MoveParent,
/*230359*/                OPC_MoveChild2,
/*230360*/                OPC_CheckImmAllZerosV,
/*230361*/                OPC_MoveParent,
/*230362*/                OPC_SwitchType /*2 cases */, 19, MVT::v8i64,// ->230384
/*230365*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*230367*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*230370*/                  OPC_EmitMergeInputChains1_2,
/*230371*/                  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>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                            // Dst: (VPORQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*230384*/                /*SwitchType*/ 19, MVT::v8i32,// ->230405
/*230386*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*230388*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*230391*/                  OPC_EmitMergeInputChains1_2,
/*230392*/                  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, (or:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                            // Dst: (VPORDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*230405*/                0, // EndSwitchType
/*230406*/              /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->230473
/*230409*/                OPC_RecordMemRef,
/*230410*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*230411*/                OPC_CheckFoldableChainNode,
/*230412*/                OPC_RecordChild1, // #3 = $src2
/*230413*/                OPC_Scope, 28, /*->230443*/ // 2 children in Scope
/*230415*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*230417*/                  OPC_MoveParent,
/*230418*/                  OPC_MoveParent,
/*230419*/                  OPC_MoveChild2,
/*230420*/                  OPC_CheckImmAllZerosV,
/*230421*/                  OPC_MoveParent,
/*230422*/                  OPC_CheckType, MVT::v8i64,
/*230424*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*230426*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*230429*/                  OPC_EmitMergeInputChains1_2,
/*230430*/                  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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                            // Dst: (VPORQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*230443*/                /*Scope*/ 28, /*->230472*/
/*230444*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*230446*/                  OPC_MoveParent,
/*230447*/                  OPC_MoveParent,
/*230448*/                  OPC_MoveChild2,
/*230449*/                  OPC_CheckImmAllZerosV,
/*230450*/                  OPC_MoveParent,
/*230451*/                  OPC_CheckType, MVT::v8i32,
/*230453*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*230455*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*230458*/                  OPC_EmitMergeInputChains1_2,
/*230459*/                  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, (or:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                            // Dst: (VPORDZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*230472*/                0, /*End of Scope*/
/*230473*/              0, // EndSwitchOpcode
/*230474*/            /*Scope*/ 5|128,1/*133*/, /*->230609*/
/*230476*/              OPC_MoveChild0,
/*230477*/              OPC_SwitchOpcode /*2 cases */, 58, TARGET_VAL(ISD::LOAD),// ->230539
/*230481*/                OPC_RecordMemRef,
/*230482*/                OPC_RecordNode, // #1 = 'ld' chained node
/*230483*/                OPC_CheckFoldableChainNode,
/*230484*/                OPC_RecordChild1, // #2 = $src2
/*230485*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*230487*/                OPC_CheckPredicate, 9, // Predicate_load
/*230489*/                OPC_MoveParent,
/*230490*/                OPC_RecordChild1, // #3 = $src1
/*230491*/                OPC_MoveParent,
/*230492*/                OPC_MoveChild2,
/*230493*/                OPC_CheckImmAllZerosV,
/*230494*/                OPC_MoveParent,
/*230495*/                OPC_SwitchType /*2 cases */, 19, MVT::v8i64,// ->230517
/*230498*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*230500*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*230503*/                  OPC_EmitMergeInputChains1_1,
/*230504*/                  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>>, VR512:{ *:[v8i64] }:$src1), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                            // Dst: (VPORQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*230517*/                /*SwitchType*/ 19, MVT::v8i32,// ->230538
/*230519*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*230521*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*230524*/                  OPC_EmitMergeInputChains1_1,
/*230525*/                  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, (or:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8i32] }:$src1), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                            // Dst: (VPORDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*230538*/                0, // EndSwitchType
/*230539*/              /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->230608
/*230542*/                OPC_RecordMemRef,
/*230543*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*230544*/                OPC_CheckFoldableChainNode,
/*230545*/                OPC_RecordChild1, // #2 = $src2
/*230546*/                OPC_Scope, 29, /*->230577*/ // 2 children in Scope
/*230548*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*230550*/                  OPC_MoveParent,
/*230551*/                  OPC_RecordChild1, // #3 = $src1
/*230552*/                  OPC_MoveParent,
/*230553*/                  OPC_MoveChild2,
/*230554*/                  OPC_CheckImmAllZerosV,
/*230555*/                  OPC_MoveParent,
/*230556*/                  OPC_CheckType, MVT::v8i64,
/*230558*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*230560*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*230563*/                  OPC_EmitMergeInputChains1_1,
/*230564*/                  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] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8i64] }:$src1), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                            // Dst: (VPORQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*230577*/                /*Scope*/ 29, /*->230607*/
/*230578*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*230580*/                  OPC_MoveParent,
/*230581*/                  OPC_RecordChild1, // #3 = $src1
/*230582*/                  OPC_MoveParent,
/*230583*/                  OPC_MoveChild2,
/*230584*/                  OPC_CheckImmAllZerosV,
/*230585*/                  OPC_MoveParent,
/*230586*/                  OPC_CheckType, MVT::v8i32,
/*230588*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*230590*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*230593*/                  OPC_EmitMergeInputChains1_1,
/*230594*/                  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, (or:{ *:[v8i32] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8i32] }:$src1), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                            // Dst: (VPORDZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*230607*/                0, /*End of Scope*/
/*230608*/              0, // EndSwitchOpcode
/*230609*/            0, /*End of Scope*/
/*230610*/          /*SwitchOpcode*/ 14|128,2/*270*/, TARGET_VAL(ISD::XOR),// ->230884
/*230614*/            OPC_Scope, 3|128,1/*131*/, /*->230748*/ // 2 children in Scope
/*230617*/              OPC_RecordChild0, // #1 = $src1
/*230618*/              OPC_MoveChild1,
/*230619*/              OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->230680
/*230623*/                OPC_RecordMemRef,
/*230624*/                OPC_RecordNode, // #2 = 'ld' chained node
/*230625*/                OPC_CheckFoldableChainNode,
/*230626*/                OPC_RecordChild1, // #3 = $src2
/*230627*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*230629*/                OPC_CheckPredicate, 9, // Predicate_load
/*230631*/                OPC_MoveParent,
/*230632*/                OPC_MoveParent,
/*230633*/                OPC_MoveChild2,
/*230634*/                OPC_CheckImmAllZerosV,
/*230635*/                OPC_MoveParent,
/*230636*/                OPC_SwitchType /*2 cases */, 19, MVT::v8i64,// ->230658
/*230639*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*230641*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*230644*/                  OPC_EmitMergeInputChains1_2,
/*230645*/                  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>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                            // Dst: (VPXORQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*230658*/                /*SwitchType*/ 19, MVT::v8i32,// ->230679
/*230660*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*230662*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*230665*/                  OPC_EmitMergeInputChains1_2,
/*230666*/                  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, (xor:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                            // Dst: (VPXORDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*230679*/                0, // EndSwitchType
/*230680*/              /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->230747
/*230683*/                OPC_RecordMemRef,
/*230684*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*230685*/                OPC_CheckFoldableChainNode,
/*230686*/                OPC_RecordChild1, // #3 = $src2
/*230687*/                OPC_Scope, 28, /*->230717*/ // 2 children in Scope
/*230689*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*230691*/                  OPC_MoveParent,
/*230692*/                  OPC_MoveParent,
/*230693*/                  OPC_MoveChild2,
/*230694*/                  OPC_CheckImmAllZerosV,
/*230695*/                  OPC_MoveParent,
/*230696*/                  OPC_CheckType, MVT::v8i64,
/*230698*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*230700*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*230703*/                  OPC_EmitMergeInputChains1_2,
/*230704*/                  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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                            // Dst: (VPXORQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*230717*/                /*Scope*/ 28, /*->230746*/
/*230718*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*230720*/                  OPC_MoveParent,
/*230721*/                  OPC_MoveParent,
/*230722*/                  OPC_MoveChild2,
/*230723*/                  OPC_CheckImmAllZerosV,
/*230724*/                  OPC_MoveParent,
/*230725*/                  OPC_CheckType, MVT::v8i32,
/*230727*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*230729*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*230732*/                  OPC_EmitMergeInputChains1_2,
/*230733*/                  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, (xor:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                            // Dst: (VPXORDZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*230746*/                0, /*End of Scope*/
/*230747*/              0, // EndSwitchOpcode
/*230748*/            /*Scope*/ 5|128,1/*133*/, /*->230883*/
/*230750*/              OPC_MoveChild0,
/*230751*/              OPC_SwitchOpcode /*2 cases */, 58, TARGET_VAL(ISD::LOAD),// ->230813
/*230755*/                OPC_RecordMemRef,
/*230756*/                OPC_RecordNode, // #1 = 'ld' chained node
/*230757*/                OPC_CheckFoldableChainNode,
/*230758*/                OPC_RecordChild1, // #2 = $src2
/*230759*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*230761*/                OPC_CheckPredicate, 9, // Predicate_load
/*230763*/                OPC_MoveParent,
/*230764*/                OPC_RecordChild1, // #3 = $src1
/*230765*/                OPC_MoveParent,
/*230766*/                OPC_MoveChild2,
/*230767*/                OPC_CheckImmAllZerosV,
/*230768*/                OPC_MoveParent,
/*230769*/                OPC_SwitchType /*2 cases */, 19, MVT::v8i64,// ->230791
/*230772*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*230774*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*230777*/                  OPC_EmitMergeInputChains1_1,
/*230778*/                  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>>, VR512:{ *:[v8i64] }:$src1), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                            // Dst: (VPXORQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*230791*/                /*SwitchType*/ 19, MVT::v8i32,// ->230812
/*230793*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*230795*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*230798*/                  OPC_EmitMergeInputChains1_1,
/*230799*/                  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, (xor:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8i32] }:$src1), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                            // Dst: (VPXORDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*230812*/                0, // EndSwitchType
/*230813*/              /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->230882
/*230816*/                OPC_RecordMemRef,
/*230817*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*230818*/                OPC_CheckFoldableChainNode,
/*230819*/                OPC_RecordChild1, // #2 = $src2
/*230820*/                OPC_Scope, 29, /*->230851*/ // 2 children in Scope
/*230822*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*230824*/                  OPC_MoveParent,
/*230825*/                  OPC_RecordChild1, // #3 = $src1
/*230826*/                  OPC_MoveParent,
/*230827*/                  OPC_MoveChild2,
/*230828*/                  OPC_CheckImmAllZerosV,
/*230829*/                  OPC_MoveParent,
/*230830*/                  OPC_CheckType, MVT::v8i64,
/*230832*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*230834*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*230837*/                  OPC_EmitMergeInputChains1_1,
/*230838*/                  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] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8i64] }:$src1), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                            // Dst: (VPXORQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*230851*/                /*Scope*/ 29, /*->230881*/
/*230852*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*230854*/                  OPC_MoveParent,
/*230855*/                  OPC_RecordChild1, // #3 = $src1
/*230856*/                  OPC_MoveParent,
/*230857*/                  OPC_MoveChild2,
/*230858*/                  OPC_CheckImmAllZerosV,
/*230859*/                  OPC_MoveParent,
/*230860*/                  OPC_CheckType, MVT::v8i32,
/*230862*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*230864*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*230867*/                  OPC_EmitMergeInputChains1_1,
/*230868*/                  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, (xor:{ *:[v8i32] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8i32] }:$src1), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                            // Dst: (VPXORDZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*230881*/                0, /*End of Scope*/
/*230882*/              0, // EndSwitchOpcode
/*230883*/            0, /*End of Scope*/
/*230884*/          /*SwitchOpcode*/ 3|128,1/*131*/, TARGET_VAL(X86ISD::ANDNP),// ->231019
/*230888*/            OPC_RecordChild0, // #1 = $src1
/*230889*/            OPC_MoveChild1,
/*230890*/            OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->230951
/*230894*/              OPC_RecordMemRef,
/*230895*/              OPC_RecordNode, // #2 = 'ld' chained node
/*230896*/              OPC_CheckFoldableChainNode,
/*230897*/              OPC_RecordChild1, // #3 = $src2
/*230898*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*230900*/              OPC_CheckPredicate, 9, // Predicate_load
/*230902*/              OPC_MoveParent,
/*230903*/              OPC_MoveParent,
/*230904*/              OPC_MoveChild2,
/*230905*/              OPC_CheckImmAllZerosV,
/*230906*/              OPC_MoveParent,
/*230907*/              OPC_SwitchType /*2 cases */, 19, MVT::v8i64,// ->230929
/*230910*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*230912*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*230915*/                OPC_EmitMergeInputChains1_2,
/*230916*/                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>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                          // Dst: (VPANDNQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*230929*/              /*SwitchType*/ 19, MVT::v8i32,// ->230950
/*230931*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*230933*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*230936*/                OPC_EmitMergeInputChains1_2,
/*230937*/                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, (X86andnp:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                          // Dst: (VPANDNDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*230950*/              0, // EndSwitchType
/*230951*/            /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->231018
/*230954*/              OPC_RecordMemRef,
/*230955*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*230956*/              OPC_CheckFoldableChainNode,
/*230957*/              OPC_RecordChild1, // #3 = $src2
/*230958*/              OPC_Scope, 28, /*->230988*/ // 2 children in Scope
/*230960*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*230962*/                OPC_MoveParent,
/*230963*/                OPC_MoveParent,
/*230964*/                OPC_MoveChild2,
/*230965*/                OPC_CheckImmAllZerosV,
/*230966*/                OPC_MoveParent,
/*230967*/                OPC_CheckType, MVT::v8i64,
/*230969*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*230971*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*230974*/                OPC_EmitMergeInputChains1_2,
/*230975*/                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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                          // Dst: (VPANDNQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*230988*/              /*Scope*/ 28, /*->231017*/
/*230989*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*230991*/                OPC_MoveParent,
/*230992*/                OPC_MoveParent,
/*230993*/                OPC_MoveChild2,
/*230994*/                OPC_CheckImmAllZerosV,
/*230995*/                OPC_MoveParent,
/*230996*/                OPC_CheckType, MVT::v8i32,
/*230998*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*231000*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*231003*/                OPC_EmitMergeInputChains1_2,
/*231004*/                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, (X86andnp:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                          // Dst: (VPANDNDZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*231017*/              0, /*End of Scope*/
/*231018*/            0, // EndSwitchOpcode
/*231019*/          /*SwitchOpcode*/ 99, TARGET_VAL(X86ISD::VSHL),// ->231121
/*231022*/            OPC_RecordChild0, // #1 = $src1
/*231023*/            OPC_MoveChild1,
/*231024*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*231027*/            OPC_RecordMemRef,
/*231028*/            OPC_RecordNode, // #2 = 'ld' chained node
/*231029*/            OPC_CheckFoldableChainNode,
/*231030*/            OPC_RecordChild1, // #3 = $src2
/*231031*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*231033*/            OPC_CheckPredicate, 9, // Predicate_load
/*231035*/            OPC_SwitchType /*3 cases */, 26, MVT::v4i32,// ->231064
/*231038*/              OPC_MoveParent,
/*231039*/              OPC_MoveParent,
/*231040*/              OPC_MoveChild2,
/*231041*/              OPC_CheckImmAllZerosV,
/*231042*/              OPC_MoveParent,
/*231043*/              OPC_CheckType, MVT::v8i32,
/*231045*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*231047*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*231050*/              OPC_EmitMergeInputChains1_2,
/*231051*/              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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                        // Dst: (VPSLLDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*231064*/            /*SwitchType*/ 26, MVT::v2i64,// ->231092
/*231066*/              OPC_MoveParent,
/*231067*/              OPC_MoveParent,
/*231068*/              OPC_MoveChild2,
/*231069*/              OPC_CheckImmAllZerosV,
/*231070*/              OPC_MoveParent,
/*231071*/              OPC_CheckType, MVT::v8i64,
/*231073*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*231075*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*231078*/              OPC_EmitMergeInputChains1_2,
/*231079*/              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>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                        // Dst: (VPSLLQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*231092*/            /*SwitchType*/ 26, MVT::v8i16,// ->231120
/*231094*/              OPC_MoveParent,
/*231095*/              OPC_MoveParent,
/*231096*/              OPC_MoveChild2,
/*231097*/              OPC_CheckImmAllZerosV,
/*231098*/              OPC_MoveParent,
/*231099*/              OPC_CheckType, MVT::v8i16,
/*231101*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*231103*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*231106*/              OPC_EmitMergeInputChains1_2,
/*231107*/              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:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i16] }) - Complexity = 32
                        // Dst: (VPSLLWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*231120*/            0, // EndSwitchType
/*231121*/          /*SwitchOpcode*/ 99, TARGET_VAL(X86ISD::VSRA),// ->231223
/*231124*/            OPC_RecordChild0, // #1 = $src1
/*231125*/            OPC_MoveChild1,
/*231126*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*231129*/            OPC_RecordMemRef,
/*231130*/            OPC_RecordNode, // #2 = 'ld' chained node
/*231131*/            OPC_CheckFoldableChainNode,
/*231132*/            OPC_RecordChild1, // #3 = $src2
/*231133*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*231135*/            OPC_CheckPredicate, 9, // Predicate_load
/*231137*/            OPC_SwitchType /*3 cases */, 26, MVT::v4i32,// ->231166
/*231140*/              OPC_MoveParent,
/*231141*/              OPC_MoveParent,
/*231142*/              OPC_MoveChild2,
/*231143*/              OPC_CheckImmAllZerosV,
/*231144*/              OPC_MoveParent,
/*231145*/              OPC_CheckType, MVT::v8i32,
/*231147*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*231149*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*231152*/              OPC_EmitMergeInputChains1_2,
/*231153*/              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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                        // Dst: (VPSRADZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*231166*/            /*SwitchType*/ 26, MVT::v2i64,// ->231194
/*231168*/              OPC_MoveParent,
/*231169*/              OPC_MoveParent,
/*231170*/              OPC_MoveChild2,
/*231171*/              OPC_CheckImmAllZerosV,
/*231172*/              OPC_MoveParent,
/*231173*/              OPC_CheckType, MVT::v8i64,
/*231175*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*231177*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*231180*/              OPC_EmitMergeInputChains1_2,
/*231181*/              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>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                        // Dst: (VPSRAQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*231194*/            /*SwitchType*/ 26, MVT::v8i16,// ->231222
/*231196*/              OPC_MoveParent,
/*231197*/              OPC_MoveParent,
/*231198*/              OPC_MoveChild2,
/*231199*/              OPC_CheckImmAllZerosV,
/*231200*/              OPC_MoveParent,
/*231201*/              OPC_CheckType, MVT::v8i16,
/*231203*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*231205*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*231208*/              OPC_EmitMergeInputChains1_2,
/*231209*/              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:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i16] }) - Complexity = 32
                        // Dst: (VPSRAWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*231222*/            0, // EndSwitchType
/*231223*/          /*SwitchOpcode*/ 99, TARGET_VAL(X86ISD::VSRL),// ->231325
/*231226*/            OPC_RecordChild0, // #1 = $src1
/*231227*/            OPC_MoveChild1,
/*231228*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*231231*/            OPC_RecordMemRef,
/*231232*/            OPC_RecordNode, // #2 = 'ld' chained node
/*231233*/            OPC_CheckFoldableChainNode,
/*231234*/            OPC_RecordChild1, // #3 = $src2
/*231235*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*231237*/            OPC_CheckPredicate, 9, // Predicate_load
/*231239*/            OPC_SwitchType /*3 cases */, 26, MVT::v4i32,// ->231268
/*231242*/              OPC_MoveParent,
/*231243*/              OPC_MoveParent,
/*231244*/              OPC_MoveChild2,
/*231245*/              OPC_CheckImmAllZerosV,
/*231246*/              OPC_MoveParent,
/*231247*/              OPC_CheckType, MVT::v8i32,
/*231249*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*231251*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*231254*/              OPC_EmitMergeInputChains1_2,
/*231255*/              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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                        // Dst: (VPSRLDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*231268*/            /*SwitchType*/ 26, MVT::v2i64,// ->231296
/*231270*/              OPC_MoveParent,
/*231271*/              OPC_MoveParent,
/*231272*/              OPC_MoveChild2,
/*231273*/              OPC_CheckImmAllZerosV,
/*231274*/              OPC_MoveParent,
/*231275*/              OPC_CheckType, MVT::v8i64,
/*231277*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*231279*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*231282*/              OPC_EmitMergeInputChains1_2,
/*231283*/              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>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                        // Dst: (VPSRLQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*231296*/            /*SwitchType*/ 26, MVT::v8i16,// ->231324
/*231298*/              OPC_MoveParent,
/*231299*/              OPC_MoveParent,
/*231300*/              OPC_MoveChild2,
/*231301*/              OPC_CheckImmAllZerosV,
/*231302*/              OPC_MoveParent,
/*231303*/              OPC_CheckType, MVT::v8i16,
/*231305*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*231307*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*231310*/              OPC_EmitMergeInputChains1_2,
/*231311*/              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:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i16] }) - Complexity = 32
                        // Dst: (VPSRLWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*231324*/            0, // EndSwitchType
/*231325*/          /*SwitchOpcode*/ 24|128,1/*152*/, TARGET_VAL(X86ISD::VSHLV),// ->231481
/*231329*/            OPC_RecordChild0, // #1 = $src1
/*231330*/            OPC_MoveChild1,
/*231331*/            OPC_SwitchOpcode /*2 cases */, 78, TARGET_VAL(ISD::LOAD),// ->231413
/*231335*/              OPC_RecordMemRef,
/*231336*/              OPC_RecordNode, // #2 = 'ld' chained node
/*231337*/              OPC_CheckFoldableChainNode,
/*231338*/              OPC_RecordChild1, // #3 = $src2
/*231339*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*231341*/              OPC_CheckPredicate, 9, // Predicate_load
/*231343*/              OPC_MoveParent,
/*231344*/              OPC_MoveParent,
/*231345*/              OPC_MoveChild2,
/*231346*/              OPC_CheckImmAllZerosV,
/*231347*/              OPC_MoveParent,
/*231348*/              OPC_SwitchType /*3 cases */, 19, MVT::v8i32,// ->231370
/*231351*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*231353*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*231356*/                OPC_EmitMergeInputChains1_2,
/*231357*/                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, (X86vshlv:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                          // Dst: (VPSLLVDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*231370*/              /*SwitchType*/ 19, MVT::v8i64,// ->231391
/*231372*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*231374*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*231377*/                OPC_EmitMergeInputChains1_2,
/*231378*/                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, (X86vshlv:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                          // Dst: (VPSLLVQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*231391*/              /*SwitchType*/ 19, MVT::v8i16,// ->231412
/*231393*/                OPC_CheckPatternPredicate, 25, // (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::VPSLLVWZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vshlv:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i16] }) - Complexity = 32
                          // Dst: (VPSLLVWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*231412*/              0, // EndSwitchType
/*231413*/            /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->231480
/*231416*/              OPC_RecordMemRef,
/*231417*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*231418*/              OPC_CheckFoldableChainNode,
/*231419*/              OPC_RecordChild1, // #3 = $src2
/*231420*/              OPC_Scope, 28, /*->231450*/ // 2 children in Scope
/*231422*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*231424*/                OPC_MoveParent,
/*231425*/                OPC_MoveParent,
/*231426*/                OPC_MoveChild2,
/*231427*/                OPC_CheckImmAllZerosV,
/*231428*/                OPC_MoveParent,
/*231429*/                OPC_CheckType, MVT::v8i32,
/*231431*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*231433*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*231436*/                OPC_EmitMergeInputChains1_2,
/*231437*/                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, (X86vshlv:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                          // Dst: (VPSLLVDZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*231450*/              /*Scope*/ 28, /*->231479*/
/*231451*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*231453*/                OPC_MoveParent,
/*231454*/                OPC_MoveParent,
/*231455*/                OPC_MoveChild2,
/*231456*/                OPC_CheckImmAllZerosV,
/*231457*/                OPC_MoveParent,
/*231458*/                OPC_CheckType, MVT::v8i64,
/*231460*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*231462*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*231465*/                OPC_EmitMergeInputChains1_2,
/*231466*/                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, (X86vshlv:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                          // Dst: (VPSLLVQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*231479*/              0, /*End of Scope*/
/*231480*/            0, // EndSwitchOpcode
/*231481*/          /*SwitchOpcode*/ 24|128,1/*152*/, TARGET_VAL(X86ISD::VSRAV),// ->231637
/*231485*/            OPC_RecordChild0, // #1 = $src1
/*231486*/            OPC_MoveChild1,
/*231487*/            OPC_SwitchOpcode /*2 cases */, 78, TARGET_VAL(ISD::LOAD),// ->231569
/*231491*/              OPC_RecordMemRef,
/*231492*/              OPC_RecordNode, // #2 = 'ld' chained node
/*231493*/              OPC_CheckFoldableChainNode,
/*231494*/              OPC_RecordChild1, // #3 = $src2
/*231495*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*231497*/              OPC_CheckPredicate, 9, // Predicate_load
/*231499*/              OPC_MoveParent,
/*231500*/              OPC_MoveParent,
/*231501*/              OPC_MoveChild2,
/*231502*/              OPC_CheckImmAllZerosV,
/*231503*/              OPC_MoveParent,
/*231504*/              OPC_SwitchType /*3 cases */, 19, MVT::v8i32,// ->231526
/*231507*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*231509*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*231512*/                OPC_EmitMergeInputChains1_2,
/*231513*/                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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                          // Dst: (VPSRAVDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*231526*/              /*SwitchType*/ 19, MVT::v8i64,// ->231547
/*231528*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*231530*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*231533*/                OPC_EmitMergeInputChains1_2,
/*231534*/                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>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                          // Dst: (VPSRAVQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*231547*/              /*SwitchType*/ 19, MVT::v8i16,// ->231568
/*231549*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*231551*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*231554*/                OPC_EmitMergeInputChains1_2,
/*231555*/                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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i16] }) - Complexity = 32
                          // Dst: (VPSRAVWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*231568*/              0, // EndSwitchType
/*231569*/            /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->231636
/*231572*/              OPC_RecordMemRef,
/*231573*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*231574*/              OPC_CheckFoldableChainNode,
/*231575*/              OPC_RecordChild1, // #3 = $src2
/*231576*/              OPC_Scope, 28, /*->231606*/ // 2 children in Scope
/*231578*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*231580*/                OPC_MoveParent,
/*231581*/                OPC_MoveParent,
/*231582*/                OPC_MoveChild2,
/*231583*/                OPC_CheckImmAllZerosV,
/*231584*/                OPC_MoveParent,
/*231585*/                OPC_CheckType, MVT::v8i32,
/*231587*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*231589*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*231592*/                OPC_EmitMergeInputChains1_2,
/*231593*/                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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                          // Dst: (VPSRAVDZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*231606*/              /*Scope*/ 28, /*->231635*/
/*231607*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*231609*/                OPC_MoveParent,
/*231610*/                OPC_MoveParent,
/*231611*/                OPC_MoveChild2,
/*231612*/                OPC_CheckImmAllZerosV,
/*231613*/                OPC_MoveParent,
/*231614*/                OPC_CheckType, MVT::v8i64,
/*231616*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*231618*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*231621*/                OPC_EmitMergeInputChains1_2,
/*231622*/                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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                          // Dst: (VPSRAVQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*231635*/              0, /*End of Scope*/
/*231636*/            0, // EndSwitchOpcode
/*231637*/          /*SwitchOpcode*/ 24|128,1/*152*/, TARGET_VAL(X86ISD::VSRLV),// ->231793
/*231641*/            OPC_RecordChild0, // #1 = $src1
/*231642*/            OPC_MoveChild1,
/*231643*/            OPC_SwitchOpcode /*2 cases */, 78, TARGET_VAL(ISD::LOAD),// ->231725
/*231647*/              OPC_RecordMemRef,
/*231648*/              OPC_RecordNode, // #2 = 'ld' chained node
/*231649*/              OPC_CheckFoldableChainNode,
/*231650*/              OPC_RecordChild1, // #3 = $src2
/*231651*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*231653*/              OPC_CheckPredicate, 9, // Predicate_load
/*231655*/              OPC_MoveParent,
/*231656*/              OPC_MoveParent,
/*231657*/              OPC_MoveChild2,
/*231658*/              OPC_CheckImmAllZerosV,
/*231659*/              OPC_MoveParent,
/*231660*/              OPC_SwitchType /*3 cases */, 19, MVT::v8i32,// ->231682
/*231663*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*231665*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*231668*/                OPC_EmitMergeInputChains1_2,
/*231669*/                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, (X86vsrlv:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                          // Dst: (VPSRLVDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*231682*/              /*SwitchType*/ 19, MVT::v8i64,// ->231703
/*231684*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*231686*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*231689*/                OPC_EmitMergeInputChains1_2,
/*231690*/                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, (X86vsrlv:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                          // Dst: (VPSRLVQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*231703*/              /*SwitchType*/ 19, MVT::v8i16,// ->231724
/*231705*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*231707*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*231710*/                OPC_EmitMergeInputChains1_2,
/*231711*/                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, (X86vsrlv:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i16] }) - Complexity = 32
                          // Dst: (VPSRLVWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*231724*/              0, // EndSwitchType
/*231725*/            /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->231792
/*231728*/              OPC_RecordMemRef,
/*231729*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*231730*/              OPC_CheckFoldableChainNode,
/*231731*/              OPC_RecordChild1, // #3 = $src2
/*231732*/              OPC_Scope, 28, /*->231762*/ // 2 children in Scope
/*231734*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*231736*/                OPC_MoveParent,
/*231737*/                OPC_MoveParent,
/*231738*/                OPC_MoveChild2,
/*231739*/                OPC_CheckImmAllZerosV,
/*231740*/                OPC_MoveParent,
/*231741*/                OPC_CheckType, MVT::v8i32,
/*231743*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*231745*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*231748*/                OPC_EmitMergeInputChains1_2,
/*231749*/                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, (X86vsrlv:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                          // Dst: (VPSRLVDZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*231762*/              /*Scope*/ 28, /*->231791*/
/*231763*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*231765*/                OPC_MoveParent,
/*231766*/                OPC_MoveParent,
/*231767*/                OPC_MoveChild2,
/*231768*/                OPC_CheckImmAllZerosV,
/*231769*/                OPC_MoveParent,
/*231770*/                OPC_CheckType, MVT::v8i64,
/*231772*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*231774*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*231777*/                OPC_EmitMergeInputChains1_2,
/*231778*/                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, (X86vsrlv:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                          // Dst: (VPSRLVQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*231791*/              0, /*End of Scope*/
/*231792*/            0, // EndSwitchOpcode
/*231793*/          /*SwitchOpcode*/ 14|128,1/*142*/, TARGET_VAL(ISD::ROTR),// ->231939
/*231797*/            OPC_RecordChild0, // #1 = $src1
/*231798*/            OPC_MoveChild1,
/*231799*/            OPC_SwitchOpcode /*2 cases */, 66, TARGET_VAL(ISD::LOAD),// ->231869
/*231803*/              OPC_RecordMemRef,
/*231804*/              OPC_RecordNode, // #2 = 'ld' chained node
/*231805*/              OPC_CheckFoldableChainNode,
/*231806*/              OPC_RecordChild1, // #3 = $src2
/*231807*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*231809*/              OPC_CheckPredicate, 9, // Predicate_load
/*231811*/              OPC_SwitchType /*2 cases */, 26, MVT::v8i32,// ->231840
/*231814*/                OPC_MoveParent,
/*231815*/                OPC_MoveParent,
/*231816*/                OPC_MoveChild2,
/*231817*/                OPC_CheckImmAllZerosV,
/*231818*/                OPC_MoveParent,
/*231819*/                OPC_CheckType, MVT::v8i32,
/*231821*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*231823*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*231826*/                OPC_EmitMergeInputChains1_2,
/*231827*/                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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                          // Dst: (VPRORVDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*231840*/              /*SwitchType*/ 26, MVT::v8i64,// ->231868
/*231842*/                OPC_MoveParent,
/*231843*/                OPC_MoveParent,
/*231844*/                OPC_MoveChild2,
/*231845*/                OPC_CheckImmAllZerosV,
/*231846*/                OPC_MoveParent,
/*231847*/                OPC_CheckType, MVT::v8i64,
/*231849*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*231851*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*231854*/                OPC_EmitMergeInputChains1_2,
/*231855*/                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>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                          // Dst: (VPRORVQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*231868*/              0, // EndSwitchType
/*231869*/            /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->231938
/*231872*/              OPC_RecordMemRef,
/*231873*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*231874*/              OPC_CheckFoldableChainNode,
/*231875*/              OPC_RecordChild1, // #3 = $src2
/*231876*/              OPC_SwitchType /*2 cases */, 28, MVT::v8i32,// ->231907
/*231879*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*231881*/                OPC_MoveParent,
/*231882*/                OPC_MoveParent,
/*231883*/                OPC_MoveChild2,
/*231884*/                OPC_CheckImmAllZerosV,
/*231885*/                OPC_MoveParent,
/*231886*/                OPC_CheckType, MVT::v8i32,
/*231888*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*231890*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*231893*/                OPC_EmitMergeInputChains1_2,
/*231894*/                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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                          // Dst: (VPRORVDZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*231907*/              /*SwitchType*/ 28, MVT::v8i64,// ->231937
/*231909*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*231911*/                OPC_MoveParent,
/*231912*/                OPC_MoveParent,
/*231913*/                OPC_MoveChild2,
/*231914*/                OPC_CheckImmAllZerosV,
/*231915*/                OPC_MoveParent,
/*231916*/                OPC_CheckType, MVT::v8i64,
/*231918*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*231920*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*231923*/                OPC_EmitMergeInputChains1_2,
/*231924*/                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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                          // Dst: (VPRORVQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*231937*/              0, // EndSwitchType
/*231938*/            0, // EndSwitchOpcode
/*231939*/          /*SwitchOpcode*/ 14|128,1/*142*/, TARGET_VAL(ISD::ROTL),// ->232085
/*231943*/            OPC_RecordChild0, // #1 = $src1
/*231944*/            OPC_MoveChild1,
/*231945*/            OPC_SwitchOpcode /*2 cases */, 66, TARGET_VAL(ISD::LOAD),// ->232015
/*231949*/              OPC_RecordMemRef,
/*231950*/              OPC_RecordNode, // #2 = 'ld' chained node
/*231951*/              OPC_CheckFoldableChainNode,
/*231952*/              OPC_RecordChild1, // #3 = $src2
/*231953*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*231955*/              OPC_CheckPredicate, 9, // Predicate_load
/*231957*/              OPC_SwitchType /*2 cases */, 26, MVT::v8i32,// ->231986
/*231960*/                OPC_MoveParent,
/*231961*/                OPC_MoveParent,
/*231962*/                OPC_MoveChild2,
/*231963*/                OPC_CheckImmAllZerosV,
/*231964*/                OPC_MoveParent,
/*231965*/                OPC_CheckType, MVT::v8i32,
/*231967*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*231969*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*231972*/                OPC_EmitMergeInputChains1_2,
/*231973*/                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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                          // Dst: (VPROLVDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*231986*/              /*SwitchType*/ 26, MVT::v8i64,// ->232014
/*231988*/                OPC_MoveParent,
/*231989*/                OPC_MoveParent,
/*231990*/                OPC_MoveChild2,
/*231991*/                OPC_CheckImmAllZerosV,
/*231992*/                OPC_MoveParent,
/*231993*/                OPC_CheckType, MVT::v8i64,
/*231995*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*231997*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*232000*/                OPC_EmitMergeInputChains1_2,
/*232001*/                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>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                          // Dst: (VPROLVQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*232014*/              0, // EndSwitchType
/*232015*/            /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->232084
/*232018*/              OPC_RecordMemRef,
/*232019*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*232020*/              OPC_CheckFoldableChainNode,
/*232021*/              OPC_RecordChild1, // #3 = $src2
/*232022*/              OPC_SwitchType /*2 cases */, 28, MVT::v8i32,// ->232053
/*232025*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*232027*/                OPC_MoveParent,
/*232028*/                OPC_MoveParent,
/*232029*/                OPC_MoveChild2,
/*232030*/                OPC_CheckImmAllZerosV,
/*232031*/                OPC_MoveParent,
/*232032*/                OPC_CheckType, MVT::v8i32,
/*232034*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*232036*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*232039*/                OPC_EmitMergeInputChains1_2,
/*232040*/                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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                          // Dst: (VPROLVDZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*232053*/              /*SwitchType*/ 28, MVT::v8i64,// ->232083
/*232055*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*232057*/                OPC_MoveParent,
/*232058*/                OPC_MoveParent,
/*232059*/                OPC_MoveChild2,
/*232060*/                OPC_CheckImmAllZerosV,
/*232061*/                OPC_MoveParent,
/*232062*/                OPC_CheckType, MVT::v8i64,
/*232064*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*232066*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*232069*/                OPC_EmitMergeInputChains1_2,
/*232070*/                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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                          // Dst: (VPROLVQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*232083*/              0, // EndSwitchType
/*232084*/            0, // EndSwitchOpcode
/*232085*/          /*SwitchOpcode*/ 24|128,1/*152*/, TARGET_VAL(X86ISD::VPERMV),// ->232241
/*232089*/            OPC_RecordChild0, // #1 = $src1
/*232090*/            OPC_MoveChild1,
/*232091*/            OPC_SwitchOpcode /*2 cases */, 78, TARGET_VAL(ISD::LOAD),// ->232173
/*232095*/              OPC_RecordMemRef,
/*232096*/              OPC_RecordNode, // #2 = 'ld' chained node
/*232097*/              OPC_CheckFoldableChainNode,
/*232098*/              OPC_RecordChild1, // #3 = $src2
/*232099*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*232101*/              OPC_CheckPredicate, 9, // Predicate_load
/*232103*/              OPC_MoveParent,
/*232104*/              OPC_MoveParent,
/*232105*/              OPC_MoveChild2,
/*232106*/              OPC_CheckImmAllZerosV,
/*232107*/              OPC_MoveParent,
/*232108*/              OPC_SwitchType /*3 cases */, 19, MVT::v8i16,// ->232130
/*232111*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*232113*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*232116*/                OPC_EmitMergeInputChains1_2,
/*232117*/                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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i16] }) - Complexity = 32
                          // Dst: (VPERMWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*232130*/              /*SwitchType*/ 19, MVT::v8i32,// ->232151
/*232132*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*232134*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*232137*/                OPC_EmitMergeInputChains1_2,
/*232138*/                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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                          // Dst: (VPERMDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*232151*/              /*SwitchType*/ 19, MVT::v8i64,// ->232172
/*232153*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*232155*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*232158*/                OPC_EmitMergeInputChains1_2,
/*232159*/                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>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                          // Dst: (VPERMQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*232172*/              0, // EndSwitchType
/*232173*/            /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->232240
/*232176*/              OPC_RecordMemRef,
/*232177*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*232178*/              OPC_CheckFoldableChainNode,
/*232179*/              OPC_RecordChild1, // #3 = $src2
/*232180*/              OPC_Scope, 28, /*->232210*/ // 2 children in Scope
/*232182*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*232184*/                OPC_MoveParent,
/*232185*/                OPC_MoveParent,
/*232186*/                OPC_MoveChild2,
/*232187*/                OPC_CheckImmAllZerosV,
/*232188*/                OPC_MoveParent,
/*232189*/                OPC_CheckType, MVT::v8i32,
/*232191*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*232193*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*232196*/                OPC_EmitMergeInputChains1_2,
/*232197*/                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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                          // Dst: (VPERMDZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*232210*/              /*Scope*/ 28, /*->232239*/
/*232211*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*232213*/                OPC_MoveParent,
/*232214*/                OPC_MoveParent,
/*232215*/                OPC_MoveChild2,
/*232216*/                OPC_CheckImmAllZerosV,
/*232217*/                OPC_MoveParent,
/*232218*/                OPC_CheckType, MVT::v8i64,
/*232220*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*232222*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*232225*/                OPC_EmitMergeInputChains1_2,
/*232226*/                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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                          // Dst: (VPERMQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*232239*/              0, /*End of Scope*/
/*232240*/            0, // EndSwitchOpcode
/*232241*/          /*SwitchOpcode*/ 37|128,1/*165*/, TARGET_VAL(X86ISD::VPMADD52L),// ->232410
/*232245*/            OPC_Scope, 80, /*->232327*/ // 2 children in Scope
/*232247*/              OPC_RecordChild0, // #1 = $src2
/*232248*/              OPC_MoveChild1,
/*232249*/              OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->232289
/*232253*/                OPC_RecordMemRef,
/*232254*/                OPC_RecordNode, // #2 = 'ld' chained node
/*232255*/                OPC_CheckFoldableChainNode,
/*232256*/                OPC_RecordChild1, // #3 = $src3
/*232257*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*232259*/                OPC_CheckPredicate, 9, // Predicate_load
/*232261*/                OPC_MoveParent,
/*232262*/                OPC_RecordChild2, // #4 = $src1
/*232263*/                OPC_MoveParent,
/*232264*/                OPC_MoveChild2,
/*232265*/                OPC_CheckImmAllZerosV,
/*232266*/                OPC_MoveParent,
/*232267*/                OPC_CheckType, MVT::v8i64,
/*232269*/                OPC_CheckPatternPredicate, 185, // (Subtarget->hasIFMA())
/*232271*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*232274*/                OPC_EmitMergeInputChains1_2,
/*232275*/                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>>, VR512:{ *:[v8i64] }:$src1), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                          // Dst: (VPMADD52LUQZmkz:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*232289*/              /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->232326
/*232292*/                OPC_RecordMemRef,
/*232293*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*232294*/                OPC_CheckFoldableChainNode,
/*232295*/                OPC_RecordChild1, // #3 = $src3
/*232296*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*232298*/                OPC_MoveParent,
/*232299*/                OPC_RecordChild2, // #4 = $src1
/*232300*/                OPC_MoveParent,
/*232301*/                OPC_MoveChild2,
/*232302*/                OPC_CheckImmAllZerosV,
/*232303*/                OPC_MoveParent,
/*232304*/                OPC_CheckType, MVT::v8i64,
/*232306*/                OPC_CheckPatternPredicate, 185, // (Subtarget->hasIFMA())
/*232308*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*232311*/                OPC_EmitMergeInputChains1_2,
/*232312*/                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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8i64] }:$src1), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                          // Dst: (VPMADD52LUQZmbkz:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*232326*/              0, // EndSwitchOpcode
/*232327*/            /*Scope*/ 81, /*->232409*/
/*232328*/              OPC_MoveChild0,
/*232329*/              OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->232370
/*232333*/                OPC_RecordMemRef,
/*232334*/                OPC_RecordNode, // #1 = 'ld' chained node
/*232335*/                OPC_CheckFoldableChainNode,
/*232336*/                OPC_RecordChild1, // #2 = $src3
/*232337*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*232339*/                OPC_CheckPredicate, 9, // Predicate_load
/*232341*/                OPC_MoveParent,
/*232342*/                OPC_RecordChild1, // #3 = $src2
/*232343*/                OPC_RecordChild2, // #4 = $src1
/*232344*/                OPC_MoveParent,
/*232345*/                OPC_MoveChild2,
/*232346*/                OPC_CheckImmAllZerosV,
/*232347*/                OPC_MoveParent,
/*232348*/                OPC_CheckType, MVT::v8i64,
/*232350*/                OPC_CheckPatternPredicate, 185, // (Subtarget->hasIFMA())
/*232352*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*232355*/                OPC_EmitMergeInputChains1_1,
/*232356*/                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>>, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src1), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                          // Dst: (VPMADD52LUQZmkz:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*232370*/              /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->232408
/*232373*/                OPC_RecordMemRef,
/*232374*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*232375*/                OPC_CheckFoldableChainNode,
/*232376*/                OPC_RecordChild1, // #2 = $src3
/*232377*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*232379*/                OPC_MoveParent,
/*232380*/                OPC_RecordChild1, // #3 = $src2
/*232381*/                OPC_RecordChild2, // #4 = $src1
/*232382*/                OPC_MoveParent,
/*232383*/                OPC_MoveChild2,
/*232384*/                OPC_CheckImmAllZerosV,
/*232385*/                OPC_MoveParent,
/*232386*/                OPC_CheckType, MVT::v8i64,
/*232388*/                OPC_CheckPatternPredicate, 185, // (Subtarget->hasIFMA())
/*232390*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*232393*/                OPC_EmitMergeInputChains1_1,
/*232394*/                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] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src1), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                          // Dst: (VPMADD52LUQZmbkz:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*232408*/              0, // EndSwitchOpcode
/*232409*/            0, /*End of Scope*/
/*232410*/          /*SwitchOpcode*/ 37|128,1/*165*/, TARGET_VAL(X86ISD::VPMADD52H),// ->232579
/*232414*/            OPC_Scope, 80, /*->232496*/ // 2 children in Scope
/*232416*/              OPC_RecordChild0, // #1 = $src2
/*232417*/              OPC_MoveChild1,
/*232418*/              OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->232458
/*232422*/                OPC_RecordMemRef,
/*232423*/                OPC_RecordNode, // #2 = 'ld' chained node
/*232424*/                OPC_CheckFoldableChainNode,
/*232425*/                OPC_RecordChild1, // #3 = $src3
/*232426*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*232428*/                OPC_CheckPredicate, 9, // Predicate_load
/*232430*/                OPC_MoveParent,
/*232431*/                OPC_RecordChild2, // #4 = $src1
/*232432*/                OPC_MoveParent,
/*232433*/                OPC_MoveChild2,
/*232434*/                OPC_CheckImmAllZerosV,
/*232435*/                OPC_MoveParent,
/*232436*/                OPC_CheckType, MVT::v8i64,
/*232438*/                OPC_CheckPatternPredicate, 185, // (Subtarget->hasIFMA())
/*232440*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*232443*/                OPC_EmitMergeInputChains1_2,
/*232444*/                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>>, VR512:{ *:[v8i64] }:$src1), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                          // Dst: (VPMADD52HUQZmkz:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*232458*/              /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->232495
/*232461*/                OPC_RecordMemRef,
/*232462*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*232463*/                OPC_CheckFoldableChainNode,
/*232464*/                OPC_RecordChild1, // #3 = $src3
/*232465*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*232467*/                OPC_MoveParent,
/*232468*/                OPC_RecordChild2, // #4 = $src1
/*232469*/                OPC_MoveParent,
/*232470*/                OPC_MoveChild2,
/*232471*/                OPC_CheckImmAllZerosV,
/*232472*/                OPC_MoveParent,
/*232473*/                OPC_CheckType, MVT::v8i64,
/*232475*/                OPC_CheckPatternPredicate, 185, // (Subtarget->hasIFMA())
/*232477*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*232480*/                OPC_EmitMergeInputChains1_2,
/*232481*/                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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8i64] }:$src1), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                          // Dst: (VPMADD52HUQZmbkz:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*232495*/              0, // EndSwitchOpcode
/*232496*/            /*Scope*/ 81, /*->232578*/
/*232497*/              OPC_MoveChild0,
/*232498*/              OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->232539
/*232502*/                OPC_RecordMemRef,
/*232503*/                OPC_RecordNode, // #1 = 'ld' chained node
/*232504*/                OPC_CheckFoldableChainNode,
/*232505*/                OPC_RecordChild1, // #2 = $src3
/*232506*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*232508*/                OPC_CheckPredicate, 9, // Predicate_load
/*232510*/                OPC_MoveParent,
/*232511*/                OPC_RecordChild1, // #3 = $src2
/*232512*/                OPC_RecordChild2, // #4 = $src1
/*232513*/                OPC_MoveParent,
/*232514*/                OPC_MoveChild2,
/*232515*/                OPC_CheckImmAllZerosV,
/*232516*/                OPC_MoveParent,
/*232517*/                OPC_CheckType, MVT::v8i64,
/*232519*/                OPC_CheckPatternPredicate, 185, // (Subtarget->hasIFMA())
/*232521*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*232524*/                OPC_EmitMergeInputChains1_1,
/*232525*/                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>>, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src1), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                          // Dst: (VPMADD52HUQZmkz:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*232539*/              /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->232577
/*232542*/                OPC_RecordMemRef,
/*232543*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*232544*/                OPC_CheckFoldableChainNode,
/*232545*/                OPC_RecordChild1, // #2 = $src3
/*232546*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*232548*/                OPC_MoveParent,
/*232549*/                OPC_RecordChild1, // #3 = $src2
/*232550*/                OPC_RecordChild2, // #4 = $src1
/*232551*/                OPC_MoveParent,
/*232552*/                OPC_MoveChild2,
/*232553*/                OPC_CheckImmAllZerosV,
/*232554*/                OPC_MoveParent,
/*232555*/                OPC_CheckType, MVT::v8i64,
/*232557*/                OPC_CheckPatternPredicate, 185, // (Subtarget->hasIFMA())
/*232559*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*232562*/                OPC_EmitMergeInputChains1_1,
/*232563*/                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] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src1), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                          // Dst: (VPMADD52HUQZmbkz:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*232577*/              0, // EndSwitchOpcode
/*232578*/            0, /*End of Scope*/
/*232579*/          /*SwitchOpcode*/ 123|128,1/*251*/, TARGET_VAL(X86ISD::STRICT_CVTTP2SI),// ->232834
/*232583*/            OPC_RecordNode, // #1 = 'X86strict_cvttp2si' chained node
/*232584*/            OPC_CheckFoldableChainNode,
/*232585*/            OPC_MoveChild1,
/*232586*/            OPC_SwitchOpcode /*2 cases */, 120, TARGET_VAL(ISD::LOAD),// ->232710
/*232590*/              OPC_RecordMemRef,
/*232591*/              OPC_RecordNode, // #2 = 'ld' chained node
/*232592*/              OPC_CheckFoldableChainNode,
/*232593*/              OPC_RecordChild1, // #3 = $src
/*232594*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*232596*/              OPC_CheckPredicate, 9, // Predicate_load
/*232598*/              OPC_SwitchType /*2 cases */, 53, MVT::v8f32,// ->232654
/*232601*/                OPC_MoveParent,
/*232602*/                OPC_MoveParent,
/*232603*/                OPC_MoveChild2,
/*232604*/                OPC_CheckImmAllZerosV,
/*232605*/                OPC_MoveParent,
/*232606*/                OPC_SwitchType /*2 cases */, 21, MVT::v8i32,// ->232630
/*232609*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*232611*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*232614*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*232618*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_cvttp2si:{ *:[v8i32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                            // Dst: (VCVTTPS2DQZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*232630*/                /*SwitchType*/ 21, MVT::v8i64,// ->232653
/*232632*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*232634*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*232637*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*232641*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_cvttp2si:{ *:[v8i64] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                            // Dst: (VCVTTPS2QQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*232653*/                0, // EndSwitchType
/*232654*/              /*SwitchType*/ 53, MVT::v8f64,// ->232709
/*232656*/                OPC_MoveParent,
/*232657*/                OPC_MoveParent,
/*232658*/                OPC_MoveChild2,
/*232659*/                OPC_CheckImmAllZerosV,
/*232660*/                OPC_MoveParent,
/*232661*/                OPC_SwitchType /*2 cases */, 21, MVT::v8i32,// ->232685
/*232664*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*232666*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*232669*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*232673*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_cvttp2si:{ *:[v8i32] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                            // Dst: (VCVTTPD2DQZrmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*232685*/                /*SwitchType*/ 21, MVT::v8i64,// ->232708
/*232687*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*232689*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*232692*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*232696*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_cvttp2si:{ *:[v8i64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                            // Dst: (VCVTTPD2QQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*232708*/                0, // EndSwitchType
/*232709*/              0, // EndSwitchType
/*232710*/            /*SwitchOpcode*/ 120, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->232833
/*232713*/              OPC_RecordMemRef,
/*232714*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*232715*/              OPC_CheckFoldableChainNode,
/*232716*/              OPC_RecordChild1, // #3 = $src
/*232717*/              OPC_SwitchType /*2 cases */, 55, MVT::v8f32,// ->232775
/*232720*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*232722*/                OPC_MoveParent,
/*232723*/                OPC_MoveParent,
/*232724*/                OPC_MoveChild2,
/*232725*/                OPC_CheckImmAllZerosV,
/*232726*/                OPC_MoveParent,
/*232727*/                OPC_SwitchType /*2 cases */, 21, MVT::v8i32,// ->232751
/*232730*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*232732*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*232735*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*232739*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_cvttp2si:{ *:[v8i32] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                            // Dst: (VCVTTPS2DQZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*232751*/                /*SwitchType*/ 21, MVT::v8i64,// ->232774
/*232753*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*232755*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*232758*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*232762*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_cvttp2si:{ *:[v8i64] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                            // Dst: (VCVTTPS2QQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*232774*/                0, // EndSwitchType
/*232775*/              /*SwitchType*/ 55, MVT::v8f64,// ->232832
/*232777*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*232779*/                OPC_MoveParent,
/*232780*/                OPC_MoveParent,
/*232781*/                OPC_MoveChild2,
/*232782*/                OPC_CheckImmAllZerosV,
/*232783*/                OPC_MoveParent,
/*232784*/                OPC_SwitchType /*2 cases */, 21, MVT::v8i32,// ->232808
/*232787*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*232789*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*232792*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*232796*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_cvttp2si:{ *:[v8i32] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                            // Dst: (VCVTTPD2DQZrmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*232808*/                /*SwitchType*/ 21, MVT::v8i64,// ->232831
/*232810*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*232812*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*232815*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*232819*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_cvttp2si:{ *:[v8i64] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                            // Dst: (VCVTTPD2QQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*232831*/                0, // EndSwitchType
/*232832*/              0, // EndSwitchType
/*232833*/            0, // EndSwitchOpcode
/*232834*/          /*SwitchOpcode*/ 97|128,1/*225*/, TARGET_VAL(X86ISD::CVTTP2SI),// ->233063
/*232838*/            OPC_MoveChild0,
/*232839*/            OPC_SwitchOpcode /*2 cases */, 108, TARGET_VAL(ISD::LOAD),// ->232951
/*232843*/              OPC_RecordMemRef,
/*232844*/              OPC_RecordNode, // #1 = 'ld' chained node
/*232845*/              OPC_CheckFoldableChainNode,
/*232846*/              OPC_RecordChild1, // #2 = $src
/*232847*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*232849*/              OPC_CheckPredicate, 9, // Predicate_load
/*232851*/              OPC_SwitchType /*2 cases */, 47, MVT::v8f32,// ->232901
/*232854*/                OPC_MoveParent,
/*232855*/                OPC_MoveParent,
/*232856*/                OPC_MoveChild2,
/*232857*/                OPC_CheckImmAllZerosV,
/*232858*/                OPC_MoveParent,
/*232859*/                OPC_SwitchType /*2 cases */, 18, MVT::v8i32,// ->232880
/*232862*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*232864*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*232867*/                  OPC_EmitMergeInputChains1_1,
/*232868*/                  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>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                            // Dst: (VCVTTPS2DQZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*232880*/                /*SwitchType*/ 18, MVT::v8i64,// ->232900
/*232882*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*232884*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*232887*/                  OPC_EmitMergeInputChains1_1,
/*232888*/                  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>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                            // Dst: (VCVTTPS2QQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*232900*/                0, // EndSwitchType
/*232901*/              /*SwitchType*/ 47, MVT::v8f64,// ->232950
/*232903*/                OPC_MoveParent,
/*232904*/                OPC_MoveParent,
/*232905*/                OPC_MoveChild2,
/*232906*/                OPC_CheckImmAllZerosV,
/*232907*/                OPC_MoveParent,
/*232908*/                OPC_SwitchType /*2 cases */, 18, MVT::v8i32,// ->232929
/*232911*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*232913*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*232916*/                  OPC_EmitMergeInputChains1_1,
/*232917*/                  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>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                            // Dst: (VCVTTPD2DQZrmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*232929*/                /*SwitchType*/ 18, MVT::v8i64,// ->232949
/*232931*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*232933*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*232936*/                  OPC_EmitMergeInputChains1_1,
/*232937*/                  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>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                            // Dst: (VCVTTPD2QQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*232949*/                0, // EndSwitchType
/*232950*/              0, // EndSwitchType
/*232951*/            /*SwitchOpcode*/ 108, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->233062
/*232954*/              OPC_RecordMemRef,
/*232955*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*232956*/              OPC_CheckFoldableChainNode,
/*232957*/              OPC_RecordChild1, // #2 = $src
/*232958*/              OPC_SwitchType /*2 cases */, 49, MVT::v8f32,// ->233010
/*232961*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*232963*/                OPC_MoveParent,
/*232964*/                OPC_MoveParent,
/*232965*/                OPC_MoveChild2,
/*232966*/                OPC_CheckImmAllZerosV,
/*232967*/                OPC_MoveParent,
/*232968*/                OPC_SwitchType /*2 cases */, 18, MVT::v8i32,// ->232989
/*232971*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*232973*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*232976*/                  OPC_EmitMergeInputChains1_1,
/*232977*/                  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] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                            // Dst: (VCVTTPS2DQZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*232989*/                /*SwitchType*/ 18, MVT::v8i64,// ->233009
/*232991*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*232993*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*232996*/                  OPC_EmitMergeInputChains1_1,
/*232997*/                  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] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                            // Dst: (VCVTTPS2QQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*233009*/                0, // EndSwitchType
/*233010*/              /*SwitchType*/ 49, MVT::v8f64,// ->233061
/*233012*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*233014*/                OPC_MoveParent,
/*233015*/                OPC_MoveParent,
/*233016*/                OPC_MoveChild2,
/*233017*/                OPC_CheckImmAllZerosV,
/*233018*/                OPC_MoveParent,
/*233019*/                OPC_SwitchType /*2 cases */, 18, MVT::v8i32,// ->233040
/*233022*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*233024*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*233027*/                  OPC_EmitMergeInputChains1_1,
/*233028*/                  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] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                            // Dst: (VCVTTPD2DQZrmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*233040*/                /*SwitchType*/ 18, MVT::v8i64,// ->233060
/*233042*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*233044*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*233047*/                  OPC_EmitMergeInputChains1_1,
/*233048*/                  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] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                            // Dst: (VCVTTPD2QQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*233060*/                0, // EndSwitchType
/*233061*/              0, // EndSwitchType
/*233062*/            0, // EndSwitchOpcode
/*233063*/          /*SwitchOpcode*/ 123|128,1/*251*/, TARGET_VAL(X86ISD::STRICT_CVTTP2UI),// ->233318
/*233067*/            OPC_RecordNode, // #1 = 'X86strict_cvttp2ui' chained node
/*233068*/            OPC_CheckFoldableChainNode,
/*233069*/            OPC_MoveChild1,
/*233070*/            OPC_SwitchOpcode /*2 cases */, 120, TARGET_VAL(ISD::LOAD),// ->233194
/*233074*/              OPC_RecordMemRef,
/*233075*/              OPC_RecordNode, // #2 = 'ld' chained node
/*233076*/              OPC_CheckFoldableChainNode,
/*233077*/              OPC_RecordChild1, // #3 = $src
/*233078*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*233080*/              OPC_CheckPredicate, 9, // Predicate_load
/*233082*/              OPC_SwitchType /*2 cases */, 53, MVT::v8f32,// ->233138
/*233085*/                OPC_MoveParent,
/*233086*/                OPC_MoveParent,
/*233087*/                OPC_MoveChild2,
/*233088*/                OPC_CheckImmAllZerosV,
/*233089*/                OPC_MoveParent,
/*233090*/                OPC_SwitchType /*2 cases */, 21, MVT::v8i32,// ->233114
/*233093*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*233095*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*233098*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*233102*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_cvttp2ui:{ *:[v8i32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                            // Dst: (VCVTTPS2UDQZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*233114*/                /*SwitchType*/ 21, MVT::v8i64,// ->233137
/*233116*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*233118*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*233121*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*233125*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_cvttp2ui:{ *:[v8i64] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                            // Dst: (VCVTTPS2UQQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*233137*/                0, // EndSwitchType
/*233138*/              /*SwitchType*/ 53, MVT::v8f64,// ->233193
/*233140*/                OPC_MoveParent,
/*233141*/                OPC_MoveParent,
/*233142*/                OPC_MoveChild2,
/*233143*/                OPC_CheckImmAllZerosV,
/*233144*/                OPC_MoveParent,
/*233145*/                OPC_SwitchType /*2 cases */, 21, MVT::v8i32,// ->233169
/*233148*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*233150*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*233153*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*233157*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_cvttp2ui:{ *:[v8i32] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                            // Dst: (VCVTTPD2UDQZrmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*233169*/                /*SwitchType*/ 21, MVT::v8i64,// ->233192
/*233171*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*233173*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*233176*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*233180*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_cvttp2ui:{ *:[v8i64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                            // Dst: (VCVTTPD2UQQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*233192*/                0, // EndSwitchType
/*233193*/              0, // EndSwitchType
/*233194*/            /*SwitchOpcode*/ 120, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->233317
/*233197*/              OPC_RecordMemRef,
/*233198*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*233199*/              OPC_CheckFoldableChainNode,
/*233200*/              OPC_RecordChild1, // #3 = $src
/*233201*/              OPC_SwitchType /*2 cases */, 55, MVT::v8f32,// ->233259
/*233204*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*233206*/                OPC_MoveParent,
/*233207*/                OPC_MoveParent,
/*233208*/                OPC_MoveChild2,
/*233209*/                OPC_CheckImmAllZerosV,
/*233210*/                OPC_MoveParent,
/*233211*/                OPC_SwitchType /*2 cases */, 21, MVT::v8i32,// ->233235
/*233214*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*233216*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*233219*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*233223*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_cvttp2ui:{ *:[v8i32] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                            // Dst: (VCVTTPS2UDQZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*233235*/                /*SwitchType*/ 21, MVT::v8i64,// ->233258
/*233237*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*233239*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*233242*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*233246*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_cvttp2ui:{ *:[v8i64] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                            // Dst: (VCVTTPS2UQQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*233258*/                0, // EndSwitchType
/*233259*/              /*SwitchType*/ 55, MVT::v8f64,// ->233316
/*233261*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*233263*/                OPC_MoveParent,
/*233264*/                OPC_MoveParent,
/*233265*/                OPC_MoveChild2,
/*233266*/                OPC_CheckImmAllZerosV,
/*233267*/                OPC_MoveParent,
/*233268*/                OPC_SwitchType /*2 cases */, 21, MVT::v8i32,// ->233292
/*233271*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*233273*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*233276*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*233280*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_cvttp2ui:{ *:[v8i32] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                            // Dst: (VCVTTPD2UDQZrmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*233292*/                /*SwitchType*/ 21, MVT::v8i64,// ->233315
/*233294*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*233296*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*233299*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*233303*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_cvttp2ui:{ *:[v8i64] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                            // Dst: (VCVTTPD2UQQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*233315*/                0, // EndSwitchType
/*233316*/              0, // EndSwitchType
/*233317*/            0, // EndSwitchOpcode
/*233318*/          /*SwitchOpcode*/ 97|128,1/*225*/, TARGET_VAL(X86ISD::CVTTP2UI),// ->233547
/*233322*/            OPC_MoveChild0,
/*233323*/            OPC_SwitchOpcode /*2 cases */, 108, TARGET_VAL(ISD::LOAD),// ->233435
/*233327*/              OPC_RecordMemRef,
/*233328*/              OPC_RecordNode, // #1 = 'ld' chained node
/*233329*/              OPC_CheckFoldableChainNode,
/*233330*/              OPC_RecordChild1, // #2 = $src
/*233331*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*233333*/              OPC_CheckPredicate, 9, // Predicate_load
/*233335*/              OPC_SwitchType /*2 cases */, 47, MVT::v8f32,// ->233385
/*233338*/                OPC_MoveParent,
/*233339*/                OPC_MoveParent,
/*233340*/                OPC_MoveChild2,
/*233341*/                OPC_CheckImmAllZerosV,
/*233342*/                OPC_MoveParent,
/*233343*/                OPC_SwitchType /*2 cases */, 18, MVT::v8i32,// ->233364
/*233346*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*233348*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*233351*/                  OPC_EmitMergeInputChains1_1,
/*233352*/                  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>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                            // Dst: (VCVTTPS2UDQZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*233364*/                /*SwitchType*/ 18, MVT::v8i64,// ->233384
/*233366*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*233368*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*233371*/                  OPC_EmitMergeInputChains1_1,
/*233372*/                  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>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                            // Dst: (VCVTTPS2UQQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*233384*/                0, // EndSwitchType
/*233385*/              /*SwitchType*/ 47, MVT::v8f64,// ->233434
/*233387*/                OPC_MoveParent,
/*233388*/                OPC_MoveParent,
/*233389*/                OPC_MoveChild2,
/*233390*/                OPC_CheckImmAllZerosV,
/*233391*/                OPC_MoveParent,
/*233392*/                OPC_SwitchType /*2 cases */, 18, MVT::v8i32,// ->233413
/*233395*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*233397*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*233400*/                  OPC_EmitMergeInputChains1_1,
/*233401*/                  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>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                            // Dst: (VCVTTPD2UDQZrmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*233413*/                /*SwitchType*/ 18, MVT::v8i64,// ->233433
/*233415*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*233417*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*233420*/                  OPC_EmitMergeInputChains1_1,
/*233421*/                  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>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                            // Dst: (VCVTTPD2UQQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*233433*/                0, // EndSwitchType
/*233434*/              0, // EndSwitchType
/*233435*/            /*SwitchOpcode*/ 108, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->233546
/*233438*/              OPC_RecordMemRef,
/*233439*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*233440*/              OPC_CheckFoldableChainNode,
/*233441*/              OPC_RecordChild1, // #2 = $src
/*233442*/              OPC_SwitchType /*2 cases */, 49, MVT::v8f32,// ->233494
/*233445*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*233447*/                OPC_MoveParent,
/*233448*/                OPC_MoveParent,
/*233449*/                OPC_MoveChild2,
/*233450*/                OPC_CheckImmAllZerosV,
/*233451*/                OPC_MoveParent,
/*233452*/                OPC_SwitchType /*2 cases */, 18, MVT::v8i32,// ->233473
/*233455*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*233457*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*233460*/                  OPC_EmitMergeInputChains1_1,
/*233461*/                  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] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                            // Dst: (VCVTTPS2UDQZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*233473*/                /*SwitchType*/ 18, MVT::v8i64,// ->233493
/*233475*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*233477*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*233480*/                  OPC_EmitMergeInputChains1_1,
/*233481*/                  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] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                            // Dst: (VCVTTPS2UQQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*233493*/                0, // EndSwitchType
/*233494*/              /*SwitchType*/ 49, MVT::v8f64,// ->233545
/*233496*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*233498*/                OPC_MoveParent,
/*233499*/                OPC_MoveParent,
/*233500*/                OPC_MoveChild2,
/*233501*/                OPC_CheckImmAllZerosV,
/*233502*/                OPC_MoveParent,
/*233503*/                OPC_SwitchType /*2 cases */, 18, MVT::v8i32,// ->233524
/*233506*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*233508*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*233511*/                  OPC_EmitMergeInputChains1_1,
/*233512*/                  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] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                            // Dst: (VCVTTPD2UDQZrmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*233524*/                /*SwitchType*/ 18, MVT::v8i64,// ->233544
/*233526*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*233528*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*233531*/                  OPC_EmitMergeInputChains1_1,
/*233532*/                  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] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                            // Dst: (VCVTTPD2UQQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*233544*/                0, // EndSwitchType
/*233545*/              0, // EndSwitchType
/*233546*/            0, // EndSwitchOpcode
/*233547*/          /*SwitchOpcode*/ 97|128,1/*225*/, TARGET_VAL(X86ISD::CVTP2SI),// ->233776
/*233551*/            OPC_MoveChild0,
/*233552*/            OPC_SwitchOpcode /*2 cases */, 108, TARGET_VAL(ISD::LOAD),// ->233664
/*233556*/              OPC_RecordMemRef,
/*233557*/              OPC_RecordNode, // #1 = 'ld' chained node
/*233558*/              OPC_CheckFoldableChainNode,
/*233559*/              OPC_RecordChild1, // #2 = $src
/*233560*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*233562*/              OPC_CheckPredicate, 9, // Predicate_load
/*233564*/              OPC_SwitchType /*2 cases */, 47, MVT::v8f32,// ->233614
/*233567*/                OPC_MoveParent,
/*233568*/                OPC_MoveParent,
/*233569*/                OPC_MoveChild2,
/*233570*/                OPC_CheckImmAllZerosV,
/*233571*/                OPC_MoveParent,
/*233572*/                OPC_SwitchType /*2 cases */, 18, MVT::v8i32,// ->233593
/*233575*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*233577*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*233580*/                  OPC_EmitMergeInputChains1_1,
/*233581*/                  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>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                            // Dst: (VCVTPS2DQZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*233593*/                /*SwitchType*/ 18, MVT::v8i64,// ->233613
/*233595*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*233597*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*233600*/                  OPC_EmitMergeInputChains1_1,
/*233601*/                  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>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                            // Dst: (VCVTPS2QQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*233613*/                0, // EndSwitchType
/*233614*/              /*SwitchType*/ 47, MVT::v8f64,// ->233663
/*233616*/                OPC_MoveParent,
/*233617*/                OPC_MoveParent,
/*233618*/                OPC_MoveChild2,
/*233619*/                OPC_CheckImmAllZerosV,
/*233620*/                OPC_MoveParent,
/*233621*/                OPC_SwitchType /*2 cases */, 18, MVT::v8i32,// ->233642
/*233624*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*233626*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*233629*/                  OPC_EmitMergeInputChains1_1,
/*233630*/                  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>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                            // Dst: (VCVTPD2DQZrmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*233642*/                /*SwitchType*/ 18, MVT::v8i64,// ->233662
/*233644*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*233646*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*233649*/                  OPC_EmitMergeInputChains1_1,
/*233650*/                  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>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                            // Dst: (VCVTPD2QQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*233662*/                0, // EndSwitchType
/*233663*/              0, // EndSwitchType
/*233664*/            /*SwitchOpcode*/ 108, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->233775
/*233667*/              OPC_RecordMemRef,
/*233668*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*233669*/              OPC_CheckFoldableChainNode,
/*233670*/              OPC_RecordChild1, // #2 = $src
/*233671*/              OPC_SwitchType /*2 cases */, 49, MVT::v8f32,// ->233723
/*233674*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*233676*/                OPC_MoveParent,
/*233677*/                OPC_MoveParent,
/*233678*/                OPC_MoveChild2,
/*233679*/                OPC_CheckImmAllZerosV,
/*233680*/                OPC_MoveParent,
/*233681*/                OPC_SwitchType /*2 cases */, 18, MVT::v8i32,// ->233702
/*233684*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*233686*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*233689*/                  OPC_EmitMergeInputChains1_1,
/*233690*/                  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] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                            // Dst: (VCVTPS2DQZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*233702*/                /*SwitchType*/ 18, MVT::v8i64,// ->233722
/*233704*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*233706*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*233709*/                  OPC_EmitMergeInputChains1_1,
/*233710*/                  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] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                            // Dst: (VCVTPS2QQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*233722*/                0, // EndSwitchType
/*233723*/              /*SwitchType*/ 49, MVT::v8f64,// ->233774
/*233725*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*233727*/                OPC_MoveParent,
/*233728*/                OPC_MoveParent,
/*233729*/                OPC_MoveChild2,
/*233730*/                OPC_CheckImmAllZerosV,
/*233731*/                OPC_MoveParent,
/*233732*/                OPC_SwitchType /*2 cases */, 18, MVT::v8i32,// ->233753
/*233735*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*233737*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*233740*/                  OPC_EmitMergeInputChains1_1,
/*233741*/                  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] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                            // Dst: (VCVTPD2DQZrmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*233753*/                /*SwitchType*/ 18, MVT::v8i64,// ->233773
/*233755*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*233757*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*233760*/                  OPC_EmitMergeInputChains1_1,
/*233761*/                  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] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                            // Dst: (VCVTPD2QQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*233773*/                0, // EndSwitchType
/*233774*/              0, // EndSwitchType
/*233775*/            0, // EndSwitchOpcode
/*233776*/          /*SwitchOpcode*/ 97|128,1/*225*/, TARGET_VAL(X86ISD::CVTP2UI),// ->234005
/*233780*/            OPC_MoveChild0,
/*233781*/            OPC_SwitchOpcode /*2 cases */, 108, TARGET_VAL(ISD::LOAD),// ->233893
/*233785*/              OPC_RecordMemRef,
/*233786*/              OPC_RecordNode, // #1 = 'ld' chained node
/*233787*/              OPC_CheckFoldableChainNode,
/*233788*/              OPC_RecordChild1, // #2 = $src
/*233789*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*233791*/              OPC_CheckPredicate, 9, // Predicate_load
/*233793*/              OPC_SwitchType /*2 cases */, 47, MVT::v8f32,// ->233843
/*233796*/                OPC_MoveParent,
/*233797*/                OPC_MoveParent,
/*233798*/                OPC_MoveChild2,
/*233799*/                OPC_CheckImmAllZerosV,
/*233800*/                OPC_MoveParent,
/*233801*/                OPC_SwitchType /*2 cases */, 18, MVT::v8i32,// ->233822
/*233804*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*233806*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*233809*/                  OPC_EmitMergeInputChains1_1,
/*233810*/                  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>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                            // Dst: (VCVTPS2UDQZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*233822*/                /*SwitchType*/ 18, MVT::v8i64,// ->233842
/*233824*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*233826*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*233829*/                  OPC_EmitMergeInputChains1_1,
/*233830*/                  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>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                            // Dst: (VCVTPS2UQQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*233842*/                0, // EndSwitchType
/*233843*/              /*SwitchType*/ 47, MVT::v8f64,// ->233892
/*233845*/                OPC_MoveParent,
/*233846*/                OPC_MoveParent,
/*233847*/                OPC_MoveChild2,
/*233848*/                OPC_CheckImmAllZerosV,
/*233849*/                OPC_MoveParent,
/*233850*/                OPC_SwitchType /*2 cases */, 18, MVT::v8i32,// ->233871
/*233853*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*233855*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*233858*/                  OPC_EmitMergeInputChains1_1,
/*233859*/                  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>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                            // Dst: (VCVTPD2UDQZrmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*233871*/                /*SwitchType*/ 18, MVT::v8i64,// ->233891
/*233873*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*233875*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*233878*/                  OPC_EmitMergeInputChains1_1,
/*233879*/                  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>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                            // Dst: (VCVTPD2UQQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*233891*/                0, // EndSwitchType
/*233892*/              0, // EndSwitchType
/*233893*/            /*SwitchOpcode*/ 108, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->234004
/*233896*/              OPC_RecordMemRef,
/*233897*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*233898*/              OPC_CheckFoldableChainNode,
/*233899*/              OPC_RecordChild1, // #2 = $src
/*233900*/              OPC_SwitchType /*2 cases */, 49, MVT::v8f32,// ->233952
/*233903*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*233905*/                OPC_MoveParent,
/*233906*/                OPC_MoveParent,
/*233907*/                OPC_MoveChild2,
/*233908*/                OPC_CheckImmAllZerosV,
/*233909*/                OPC_MoveParent,
/*233910*/                OPC_SwitchType /*2 cases */, 18, MVT::v8i32,// ->233931
/*233913*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*233915*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*233918*/                  OPC_EmitMergeInputChains1_1,
/*233919*/                  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] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                            // Dst: (VCVTPS2UDQZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*233931*/                /*SwitchType*/ 18, MVT::v8i64,// ->233951
/*233933*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*233935*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*233938*/                  OPC_EmitMergeInputChains1_1,
/*233939*/                  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] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                            // Dst: (VCVTPS2UQQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*233951*/                0, // EndSwitchType
/*233952*/              /*SwitchType*/ 49, MVT::v8f64,// ->234003
/*233954*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*233956*/                OPC_MoveParent,
/*233957*/                OPC_MoveParent,
/*233958*/                OPC_MoveChild2,
/*233959*/                OPC_CheckImmAllZerosV,
/*233960*/                OPC_MoveParent,
/*233961*/                OPC_SwitchType /*2 cases */, 18, MVT::v8i32,// ->233982
/*233964*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*233966*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*233969*/                  OPC_EmitMergeInputChains1_1,
/*233970*/                  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] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                            // Dst: (VCVTPD2UDQZrmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*233982*/                /*SwitchType*/ 18, MVT::v8i64,// ->234002
/*233984*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*233986*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*233989*/                  OPC_EmitMergeInputChains1_1,
/*233990*/                  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] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                            // Dst: (VCVTPD2UQQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*234002*/                0, // EndSwitchType
/*234003*/              0, // EndSwitchType
/*234004*/            0, // EndSwitchOpcode
/*234005*/          /*SwitchOpcode*/ 18|128,1/*146*/, TARGET_VAL(ISD::ABS),// ->234155
/*234009*/            OPC_MoveChild0,
/*234010*/            OPC_SwitchOpcode /*2 cases */, 75, TARGET_VAL(ISD::LOAD),// ->234089
/*234014*/              OPC_RecordMemRef,
/*234015*/              OPC_RecordNode, // #1 = 'ld' chained node
/*234016*/              OPC_CheckFoldableChainNode,
/*234017*/              OPC_RecordChild1, // #2 = $src1
/*234018*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*234020*/              OPC_CheckPredicate, 9, // Predicate_load
/*234022*/              OPC_MoveParent,
/*234023*/              OPC_MoveParent,
/*234024*/              OPC_MoveChild2,
/*234025*/              OPC_CheckImmAllZerosV,
/*234026*/              OPC_MoveParent,
/*234027*/              OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->234048
/*234030*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*234032*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*234035*/                OPC_EmitMergeInputChains1_1,
/*234036*/                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>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                          // Dst: (VPABSQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*234048*/              /*SwitchType*/ 18, MVT::v8i32,// ->234068
/*234050*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*234052*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*234055*/                OPC_EmitMergeInputChains1_1,
/*234056*/                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] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                          // Dst: (VPABSDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*234068*/              /*SwitchType*/ 18, MVT::v8i16,// ->234088
/*234070*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*234072*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*234075*/                OPC_EmitMergeInputChains1_1,
/*234076*/                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] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i16] }) - Complexity = 32
                          // Dst: (VPABSWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*234088*/              0, // EndSwitchType
/*234089*/            /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->234154
/*234092*/              OPC_RecordMemRef,
/*234093*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*234094*/              OPC_CheckFoldableChainNode,
/*234095*/              OPC_RecordChild1, // #2 = $src1
/*234096*/              OPC_Scope, 27, /*->234125*/ // 2 children in Scope
/*234098*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*234100*/                OPC_MoveParent,
/*234101*/                OPC_MoveParent,
/*234102*/                OPC_MoveChild2,
/*234103*/                OPC_CheckImmAllZerosV,
/*234104*/                OPC_MoveParent,
/*234105*/                OPC_CheckType, MVT::v8i64,
/*234107*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*234109*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*234112*/                OPC_EmitMergeInputChains1_1,
/*234113*/                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] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                          // Dst: (VPABSQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*234125*/              /*Scope*/ 27, /*->234153*/
/*234126*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*234128*/                OPC_MoveParent,
/*234129*/                OPC_MoveParent,
/*234130*/                OPC_MoveChild2,
/*234131*/                OPC_CheckImmAllZerosV,
/*234132*/                OPC_MoveParent,
/*234133*/                OPC_CheckType, MVT::v8i32,
/*234135*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*234137*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*234140*/                OPC_EmitMergeInputChains1_1,
/*234141*/                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] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                          // Dst: (VPABSDZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*234153*/              0, /*End of Scope*/
/*234154*/            0, // EndSwitchOpcode
/*234155*/          /*SwitchOpcode*/ 9|128,1/*137*/, TARGET_VAL(ISD::CTLZ),// ->234296
/*234159*/            OPC_MoveChild0,
/*234160*/            OPC_SwitchOpcode /*2 cases */, 64, TARGET_VAL(ISD::LOAD),// ->234228
/*234164*/              OPC_RecordMemRef,
/*234165*/              OPC_RecordNode, // #1 = 'ld' chained node
/*234166*/              OPC_CheckFoldableChainNode,
/*234167*/              OPC_RecordChild1, // #2 = $src1
/*234168*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*234170*/              OPC_CheckPredicate, 9, // Predicate_load
/*234172*/              OPC_SwitchType /*2 cases */, 25, MVT::v8i64,// ->234200
/*234175*/                OPC_MoveParent,
/*234176*/                OPC_MoveParent,
/*234177*/                OPC_MoveChild2,
/*234178*/                OPC_CheckImmAllZerosV,
/*234179*/                OPC_MoveParent,
/*234180*/                OPC_CheckType, MVT::v8i64,
/*234182*/                OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*234184*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*234187*/                OPC_EmitMergeInputChains1_1,
/*234188*/                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>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                          // Dst: (VPLZCNTQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*234200*/              /*SwitchType*/ 25, MVT::v8i32,// ->234227
/*234202*/                OPC_MoveParent,
/*234203*/                OPC_MoveParent,
/*234204*/                OPC_MoveChild2,
/*234205*/                OPC_CheckImmAllZerosV,
/*234206*/                OPC_MoveParent,
/*234207*/                OPC_CheckType, MVT::v8i32,
/*234209*/                OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*234211*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*234214*/                OPC_EmitMergeInputChains1_1,
/*234215*/                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] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                          // Dst: (VPLZCNTDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*234227*/              0, // EndSwitchType
/*234228*/            /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->234295
/*234231*/              OPC_RecordMemRef,
/*234232*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*234233*/              OPC_CheckFoldableChainNode,
/*234234*/              OPC_RecordChild1, // #2 = $src1
/*234235*/              OPC_SwitchType /*2 cases */, 27, MVT::v8i64,// ->234265
/*234238*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*234240*/                OPC_MoveParent,
/*234241*/                OPC_MoveParent,
/*234242*/                OPC_MoveChild2,
/*234243*/                OPC_CheckImmAllZerosV,
/*234244*/                OPC_MoveParent,
/*234245*/                OPC_CheckType, MVT::v8i64,
/*234247*/                OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*234249*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*234252*/                OPC_EmitMergeInputChains1_1,
/*234253*/                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] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                          // Dst: (VPLZCNTQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*234265*/              /*SwitchType*/ 27, MVT::v8i32,// ->234294
/*234267*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*234269*/                OPC_MoveParent,
/*234270*/                OPC_MoveParent,
/*234271*/                OPC_MoveChild2,
/*234272*/                OPC_CheckImmAllZerosV,
/*234273*/                OPC_MoveParent,
/*234274*/                OPC_CheckType, MVT::v8i32,
/*234276*/                OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*234278*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*234281*/                OPC_EmitMergeInputChains1_1,
/*234282*/                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] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                          // Dst: (VPLZCNTDZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*234294*/              0, // EndSwitchType
/*234295*/            0, // EndSwitchOpcode
/*234296*/          /*SwitchOpcode*/ 126, TARGET_VAL(X86ISD::CONFLICT),// ->234425
/*234299*/            OPC_MoveChild0,
/*234300*/            OPC_SwitchOpcode /*2 cases */, 55, TARGET_VAL(ISD::LOAD),// ->234359
/*234304*/              OPC_RecordMemRef,
/*234305*/              OPC_RecordNode, // #1 = 'ld' chained node
/*234306*/              OPC_CheckFoldableChainNode,
/*234307*/              OPC_RecordChild1, // #2 = $src1
/*234308*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*234310*/              OPC_CheckPredicate, 9, // Predicate_load
/*234312*/              OPC_MoveParent,
/*234313*/              OPC_MoveParent,
/*234314*/              OPC_MoveChild2,
/*234315*/              OPC_CheckImmAllZerosV,
/*234316*/              OPC_MoveParent,
/*234317*/              OPC_SwitchType /*2 cases */, 18, MVT::v8i64,// ->234338
/*234320*/                OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*234322*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*234325*/                OPC_EmitMergeInputChains1_1,
/*234326*/                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>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                          // Dst: (VPCONFLICTQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*234338*/              /*SwitchType*/ 18, MVT::v8i32,// ->234358
/*234340*/                OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*234342*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*234345*/                OPC_EmitMergeInputChains1_1,
/*234346*/                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] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                          // Dst: (VPCONFLICTDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*234358*/              0, // EndSwitchType
/*234359*/            /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->234424
/*234362*/              OPC_RecordMemRef,
/*234363*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*234364*/              OPC_CheckFoldableChainNode,
/*234365*/              OPC_RecordChild1, // #2 = $src1
/*234366*/              OPC_Scope, 27, /*->234395*/ // 2 children in Scope
/*234368*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*234370*/                OPC_MoveParent,
/*234371*/                OPC_MoveParent,
/*234372*/                OPC_MoveChild2,
/*234373*/                OPC_CheckImmAllZerosV,
/*234374*/                OPC_MoveParent,
/*234375*/                OPC_CheckType, MVT::v8i64,
/*234377*/                OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*234379*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*234382*/                OPC_EmitMergeInputChains1_1,
/*234383*/                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] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                          // Dst: (VPCONFLICTQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*234395*/              /*Scope*/ 27, /*->234423*/
/*234396*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*234398*/                OPC_MoveParent,
/*234399*/                OPC_MoveParent,
/*234400*/                OPC_MoveChild2,
/*234401*/                OPC_CheckImmAllZerosV,
/*234402*/                OPC_MoveParent,
/*234403*/                OPC_CheckType, MVT::v8i32,
/*234405*/                OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*234407*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*234410*/                OPC_EmitMergeInputChains1_1,
/*234411*/                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] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                          // Dst: (VPCONFLICTDZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*234423*/              0, /*End of Scope*/
/*234424*/            0, // EndSwitchOpcode
/*234425*/          /*SwitchOpcode*/ 36|128,1/*164*/, TARGET_VAL(ISD::CTPOP),// ->234593
/*234429*/            OPC_MoveChild0,
/*234430*/            OPC_SwitchOpcode /*2 cases */, 91, TARGET_VAL(ISD::LOAD),// ->234525
/*234434*/              OPC_RecordMemRef,
/*234435*/              OPC_RecordNode, // #1 = 'ld' chained node
/*234436*/              OPC_CheckFoldableChainNode,
/*234437*/              OPC_RecordChild1, // #2 = $src1
/*234438*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*234440*/              OPC_CheckPredicate, 9, // Predicate_load
/*234442*/              OPC_SwitchType /*3 cases */, 25, MVT::v8i64,// ->234470
/*234445*/                OPC_MoveParent,
/*234446*/                OPC_MoveParent,
/*234447*/                OPC_MoveChild2,
/*234448*/                OPC_CheckImmAllZerosV,
/*234449*/                OPC_MoveParent,
/*234450*/                OPC_CheckType, MVT::v8i64,
/*234452*/                OPC_CheckPatternPredicate, 142, // (Subtarget->hasVPOPCNTDQ())
/*234454*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*234457*/                OPC_EmitMergeInputChains1_1,
/*234458*/                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>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                          // Dst: (VPOPCNTQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*234470*/              /*SwitchType*/ 25, MVT::v8i32,// ->234497
/*234472*/                OPC_MoveParent,
/*234473*/                OPC_MoveParent,
/*234474*/                OPC_MoveChild2,
/*234475*/                OPC_CheckImmAllZerosV,
/*234476*/                OPC_MoveParent,
/*234477*/                OPC_CheckType, MVT::v8i32,
/*234479*/                OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/*234481*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*234484*/                OPC_EmitMergeInputChains1_1,
/*234485*/                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] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                          // Dst: (VPOPCNTDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*234497*/              /*SwitchType*/ 25, MVT::v8i16,// ->234524
/*234499*/                OPC_MoveParent,
/*234500*/                OPC_MoveParent,
/*234501*/                OPC_MoveChild2,
/*234502*/                OPC_CheckImmAllZerosV,
/*234503*/                OPC_MoveParent,
/*234504*/                OPC_CheckType, MVT::v8i16,
/*234506*/                OPC_CheckPatternPredicate, 115, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/*234508*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*234511*/                OPC_EmitMergeInputChains1_1,
/*234512*/                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] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i16] }) - Complexity = 32
                          // Dst: (VPOPCNTWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*234524*/              0, // EndSwitchType
/*234525*/            /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->234592
/*234528*/              OPC_RecordMemRef,
/*234529*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*234530*/              OPC_CheckFoldableChainNode,
/*234531*/              OPC_RecordChild1, // #2 = $src1
/*234532*/              OPC_SwitchType /*2 cases */, 27, MVT::v8i64,// ->234562
/*234535*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*234537*/                OPC_MoveParent,
/*234538*/                OPC_MoveParent,
/*234539*/                OPC_MoveChild2,
/*234540*/                OPC_CheckImmAllZerosV,
/*234541*/                OPC_MoveParent,
/*234542*/                OPC_CheckType, MVT::v8i64,
/*234544*/                OPC_CheckPatternPredicate, 142, // (Subtarget->hasVPOPCNTDQ())
/*234546*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*234549*/                OPC_EmitMergeInputChains1_1,
/*234550*/                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] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                          // Dst: (VPOPCNTQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*234562*/              /*SwitchType*/ 27, MVT::v8i32,// ->234591
/*234564*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*234566*/                OPC_MoveParent,
/*234567*/                OPC_MoveParent,
/*234568*/                OPC_MoveChild2,
/*234569*/                OPC_CheckImmAllZerosV,
/*234570*/                OPC_MoveParent,
/*234571*/                OPC_CheckType, MVT::v8i32,
/*234573*/                OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/*234575*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*234578*/                OPC_EmitMergeInputChains1_1,
/*234579*/                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] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                          // Dst: (VPOPCNTDZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*234591*/              0, // EndSwitchType
/*234592*/            0, // EndSwitchOpcode
/*234593*/          /*SwitchOpcode*/ 24|128,1/*152*/, TARGET_VAL(X86ISD::UNPCKL),// ->234749
/*234597*/            OPC_RecordChild0, // #1 = $src1
/*234598*/            OPC_MoveChild1,
/*234599*/            OPC_SwitchOpcode /*2 cases */, 78, TARGET_VAL(ISD::LOAD),// ->234681
/*234603*/              OPC_RecordMemRef,
/*234604*/              OPC_RecordNode, // #2 = 'ld' chained node
/*234605*/              OPC_CheckFoldableChainNode,
/*234606*/              OPC_RecordChild1, // #3 = $src2
/*234607*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*234609*/              OPC_CheckPredicate, 9, // Predicate_load
/*234611*/              OPC_MoveParent,
/*234612*/              OPC_MoveParent,
/*234613*/              OPC_MoveChild2,
/*234614*/              OPC_CheckImmAllZerosV,
/*234615*/              OPC_MoveParent,
/*234616*/              OPC_SwitchType /*3 cases */, 19, MVT::v8i16,// ->234638
/*234619*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*234621*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*234624*/                OPC_EmitMergeInputChains1_2,
/*234625*/                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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i16] }) - Complexity = 32
                          // Dst: (VPUNPCKLWDZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*234638*/              /*SwitchType*/ 19, MVT::v8i32,// ->234659
/*234640*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*234642*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*234645*/                OPC_EmitMergeInputChains1_2,
/*234646*/                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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                          // Dst: (VPUNPCKLDQZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*234659*/              /*SwitchType*/ 19, MVT::v8i64,// ->234680
/*234661*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*234663*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*234666*/                OPC_EmitMergeInputChains1_2,
/*234667*/                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>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                          // Dst: (VPUNPCKLQDQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*234680*/              0, // EndSwitchType
/*234681*/            /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->234748
/*234684*/              OPC_RecordMemRef,
/*234685*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*234686*/              OPC_CheckFoldableChainNode,
/*234687*/              OPC_RecordChild1, // #3 = $src2
/*234688*/              OPC_Scope, 28, /*->234718*/ // 2 children in Scope
/*234690*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*234692*/                OPC_MoveParent,
/*234693*/                OPC_MoveParent,
/*234694*/                OPC_MoveChild2,
/*234695*/                OPC_CheckImmAllZerosV,
/*234696*/                OPC_MoveParent,
/*234697*/                OPC_CheckType, MVT::v8i32,
/*234699*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*234701*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*234704*/                OPC_EmitMergeInputChains1_2,
/*234705*/                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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                          // Dst: (VPUNPCKLDQZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*234718*/              /*Scope*/ 28, /*->234747*/
/*234719*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*234721*/                OPC_MoveParent,
/*234722*/                OPC_MoveParent,
/*234723*/                OPC_MoveChild2,
/*234724*/                OPC_CheckImmAllZerosV,
/*234725*/                OPC_MoveParent,
/*234726*/                OPC_CheckType, MVT::v8i64,
/*234728*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*234730*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*234733*/                OPC_EmitMergeInputChains1_2,
/*234734*/                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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                          // Dst: (VPUNPCKLQDQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*234747*/              0, /*End of Scope*/
/*234748*/            0, // EndSwitchOpcode
/*234749*/          /*SwitchOpcode*/ 24|128,1/*152*/, TARGET_VAL(X86ISD::UNPCKH),// ->234905
/*234753*/            OPC_RecordChild0, // #1 = $src1
/*234754*/            OPC_MoveChild1,
/*234755*/            OPC_SwitchOpcode /*2 cases */, 78, TARGET_VAL(ISD::LOAD),// ->234837
/*234759*/              OPC_RecordMemRef,
/*234760*/              OPC_RecordNode, // #2 = 'ld' chained node
/*234761*/              OPC_CheckFoldableChainNode,
/*234762*/              OPC_RecordChild1, // #3 = $src2
/*234763*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*234765*/              OPC_CheckPredicate, 9, // Predicate_load
/*234767*/              OPC_MoveParent,
/*234768*/              OPC_MoveParent,
/*234769*/              OPC_MoveChild2,
/*234770*/              OPC_CheckImmAllZerosV,
/*234771*/              OPC_MoveParent,
/*234772*/              OPC_SwitchType /*3 cases */, 19, MVT::v8i16,// ->234794
/*234775*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*234777*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*234780*/                OPC_EmitMergeInputChains1_2,
/*234781*/                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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i16] }) - Complexity = 32
                          // Dst: (VPUNPCKHWDZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*234794*/              /*SwitchType*/ 19, MVT::v8i32,// ->234815
/*234796*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*234798*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*234801*/                OPC_EmitMergeInputChains1_2,
/*234802*/                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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                          // Dst: (VPUNPCKHDQZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*234815*/              /*SwitchType*/ 19, MVT::v8i64,// ->234836
/*234817*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*234819*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*234822*/                OPC_EmitMergeInputChains1_2,
/*234823*/                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>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                          // Dst: (VPUNPCKHQDQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*234836*/              0, // EndSwitchType
/*234837*/            /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->234904
/*234840*/              OPC_RecordMemRef,
/*234841*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*234842*/              OPC_CheckFoldableChainNode,
/*234843*/              OPC_RecordChild1, // #3 = $src2
/*234844*/              OPC_Scope, 28, /*->234874*/ // 2 children in Scope
/*234846*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*234848*/                OPC_MoveParent,
/*234849*/                OPC_MoveParent,
/*234850*/                OPC_MoveChild2,
/*234851*/                OPC_CheckImmAllZerosV,
/*234852*/                OPC_MoveParent,
/*234853*/                OPC_CheckType, MVT::v8i32,
/*234855*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*234857*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*234860*/                OPC_EmitMergeInputChains1_2,
/*234861*/                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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                          // Dst: (VPUNPCKHDQZ256rmbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*234874*/              /*Scope*/ 28, /*->234903*/
/*234875*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*234877*/                OPC_MoveParent,
/*234878*/                OPC_MoveParent,
/*234879*/                OPC_MoveChild2,
/*234880*/                OPC_CheckImmAllZerosV,
/*234881*/                OPC_MoveParent,
/*234882*/                OPC_CheckType, MVT::v8i64,
/*234884*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*234886*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*234889*/                OPC_EmitMergeInputChains1_2,
/*234890*/                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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                          // Dst: (VPUNPCKHQDQZrmbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*234903*/              0, /*End of Scope*/
/*234904*/            0, // EndSwitchOpcode
/*234905*/          /*SwitchOpcode*/ 40|128,1/*168*/, TARGET_VAL(X86ISD::VSHLDV),// ->235077
/*234909*/            OPC_RecordChild0, // #1 = $src1
/*234910*/            OPC_RecordChild1, // #2 = $src2
/*234911*/            OPC_MoveChild2,
/*234912*/            OPC_SwitchOpcode /*2 cases */, 87, TARGET_VAL(ISD::LOAD),// ->235003
/*234916*/              OPC_RecordMemRef,
/*234917*/              OPC_RecordNode, // #3 = 'ld' chained node
/*234918*/              OPC_CheckFoldableChainNode,
/*234919*/              OPC_RecordChild1, // #4 = $src3
/*234920*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*234922*/              OPC_CheckPredicate, 9, // Predicate_load
/*234924*/              OPC_MoveParent,
/*234925*/              OPC_MoveParent,
/*234926*/              OPC_MoveChild2,
/*234927*/              OPC_CheckImmAllZerosV,
/*234928*/              OPC_MoveParent,
/*234929*/              OPC_SwitchType /*3 cases */, 22, MVT::v8i16,// ->234954
/*234932*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*234934*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*234937*/                OPC_EmitMergeInputChains, 1, 3, 
/*234940*/                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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i16] }) - Complexity = 32
                          // Dst: (VPSHLDVWZ128mkz:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/*234954*/              /*SwitchType*/ 22, MVT::v8i32,// ->234978
/*234956*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*234958*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*234961*/                OPC_EmitMergeInputChains, 1, 3, 
/*234964*/                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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                          // Dst: (VPSHLDVDZ256mkz:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*234978*/              /*SwitchType*/ 22, MVT::v8i64,// ->235002
/*234980*/                OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*234982*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*234985*/                OPC_EmitMergeInputChains, 1, 3, 
/*234988*/                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>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                          // Dst: (VPSHLDVQZmkz:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*235002*/              0, // EndSwitchType
/*235003*/            /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->235076
/*235006*/              OPC_RecordMemRef,
/*235007*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*235008*/              OPC_CheckFoldableChainNode,
/*235009*/              OPC_RecordChild1, // #4 = $src3
/*235010*/              OPC_Scope, 31, /*->235043*/ // 2 children in Scope
/*235012*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*235014*/                OPC_MoveParent,
/*235015*/                OPC_MoveParent,
/*235016*/                OPC_MoveChild2,
/*235017*/                OPC_CheckImmAllZerosV,
/*235018*/                OPC_MoveParent,
/*235019*/                OPC_CheckType, MVT::v8i32,
/*235021*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*235023*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*235026*/                OPC_EmitMergeInputChains, 1, 3, 
/*235029*/                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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                          // Dst: (VPSHLDVDZ256mbkz:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*235043*/              /*Scope*/ 31, /*->235075*/
/*235044*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*235046*/                OPC_MoveParent,
/*235047*/                OPC_MoveParent,
/*235048*/                OPC_MoveChild2,
/*235049*/                OPC_CheckImmAllZerosV,
/*235050*/                OPC_MoveParent,
/*235051*/                OPC_CheckType, MVT::v8i64,
/*235053*/                OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*235055*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*235058*/                OPC_EmitMergeInputChains, 1, 3, 
/*235061*/                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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                          // Dst: (VPSHLDVQZmbkz:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*235075*/              0, /*End of Scope*/
/*235076*/            0, // EndSwitchOpcode
/*235077*/          /*SwitchOpcode*/ 40|128,1/*168*/, TARGET_VAL(X86ISD::VSHRDV),// ->235249
/*235081*/            OPC_RecordChild0, // #1 = $src1
/*235082*/            OPC_RecordChild1, // #2 = $src2
/*235083*/            OPC_MoveChild2,
/*235084*/            OPC_SwitchOpcode /*2 cases */, 87, TARGET_VAL(ISD::LOAD),// ->235175
/*235088*/              OPC_RecordMemRef,
/*235089*/              OPC_RecordNode, // #3 = 'ld' chained node
/*235090*/              OPC_CheckFoldableChainNode,
/*235091*/              OPC_RecordChild1, // #4 = $src3
/*235092*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*235094*/              OPC_CheckPredicate, 9, // Predicate_load
/*235096*/              OPC_MoveParent,
/*235097*/              OPC_MoveParent,
/*235098*/              OPC_MoveChild2,
/*235099*/              OPC_CheckImmAllZerosV,
/*235100*/              OPC_MoveParent,
/*235101*/              OPC_SwitchType /*3 cases */, 22, MVT::v8i16,// ->235126
/*235104*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*235106*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*235109*/                OPC_EmitMergeInputChains, 1, 3, 
/*235112*/                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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i16] }) - Complexity = 32
                          // Dst: (VPSHRDVWZ128mkz:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/*235126*/              /*SwitchType*/ 22, MVT::v8i32,// ->235150
/*235128*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*235130*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*235133*/                OPC_EmitMergeInputChains, 1, 3, 
/*235136*/                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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                          // Dst: (VPSHRDVDZ256mkz:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*235150*/              /*SwitchType*/ 22, MVT::v8i64,// ->235174
/*235152*/                OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*235154*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*235157*/                OPC_EmitMergeInputChains, 1, 3, 
/*235160*/                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>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                          // Dst: (VPSHRDVQZmkz:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*235174*/              0, // EndSwitchType
/*235175*/            /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->235248
/*235178*/              OPC_RecordMemRef,
/*235179*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*235180*/              OPC_CheckFoldableChainNode,
/*235181*/              OPC_RecordChild1, // #4 = $src3
/*235182*/              OPC_Scope, 31, /*->235215*/ // 2 children in Scope
/*235184*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*235186*/                OPC_MoveParent,
/*235187*/                OPC_MoveParent,
/*235188*/                OPC_MoveChild2,
/*235189*/                OPC_CheckImmAllZerosV,
/*235190*/                OPC_MoveParent,
/*235191*/                OPC_CheckType, MVT::v8i32,
/*235193*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*235195*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*235198*/                OPC_EmitMergeInputChains, 1, 3, 
/*235201*/                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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                          // Dst: (VPSHRDVDZ256mbkz:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*235215*/              /*Scope*/ 31, /*->235247*/
/*235216*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*235218*/                OPC_MoveParent,
/*235219*/                OPC_MoveParent,
/*235220*/                OPC_MoveChild2,
/*235221*/                OPC_CheckImmAllZerosV,
/*235222*/                OPC_MoveParent,
/*235223*/                OPC_CheckType, MVT::v8i64,
/*235225*/                OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*235227*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*235230*/                OPC_EmitMergeInputChains, 1, 3, 
/*235233*/                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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8i64] }) - Complexity = 32
                          // Dst: (VPSHRDVQZmbkz:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*235247*/              0, /*End of Scope*/
/*235248*/            0, // EndSwitchOpcode
/*235249*/          /*SwitchOpcode*/ 83, TARGET_VAL(X86ISD::VPDPBUSD),// ->235335
/*235252*/            OPC_RecordChild0, // #1 = $src1
/*235253*/            OPC_RecordChild1, // #2 = $src2
/*235254*/            OPC_MoveChild2,
/*235255*/            OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->235296
/*235259*/              OPC_RecordMemRef,
/*235260*/              OPC_RecordNode, // #3 = 'ld' chained node
/*235261*/              OPC_CheckFoldableChainNode,
/*235262*/              OPC_RecordChild1, // #4 = $src3
/*235263*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*235265*/              OPC_CheckPredicate, 9, // Predicate_load
/*235267*/              OPC_MoveParent,
/*235268*/              OPC_MoveParent,
/*235269*/              OPC_MoveChild2,
/*235270*/              OPC_CheckImmAllZerosV,
/*235271*/              OPC_MoveParent,
/*235272*/              OPC_CheckType, MVT::v8i32,
/*235274*/              OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*235276*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*235279*/              OPC_EmitMergeInputChains, 1, 3, 
/*235282*/              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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                        // Dst: (VPDPBUSDZ256mkz:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*235296*/            /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->235334
/*235299*/              OPC_RecordMemRef,
/*235300*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*235301*/              OPC_CheckFoldableChainNode,
/*235302*/              OPC_RecordChild1, // #4 = $src3
/*235303*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*235305*/              OPC_MoveParent,
/*235306*/              OPC_MoveParent,
/*235307*/              OPC_MoveChild2,
/*235308*/              OPC_CheckImmAllZerosV,
/*235309*/              OPC_MoveParent,
/*235310*/              OPC_CheckType, MVT::v8i32,
/*235312*/              OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*235314*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*235317*/              OPC_EmitMergeInputChains, 1, 3, 
/*235320*/              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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                        // Dst: (VPDPBUSDZ256mbkz:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*235334*/            0, // EndSwitchOpcode
/*235335*/          /*SwitchOpcode*/ 83, TARGET_VAL(X86ISD::VPDPBUSDS),// ->235421
/*235338*/            OPC_RecordChild0, // #1 = $src1
/*235339*/            OPC_RecordChild1, // #2 = $src2
/*235340*/            OPC_MoveChild2,
/*235341*/            OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->235382
/*235345*/              OPC_RecordMemRef,
/*235346*/              OPC_RecordNode, // #3 = 'ld' chained node
/*235347*/              OPC_CheckFoldableChainNode,
/*235348*/              OPC_RecordChild1, // #4 = $src3
/*235349*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*235351*/              OPC_CheckPredicate, 9, // Predicate_load
/*235353*/              OPC_MoveParent,
/*235354*/              OPC_MoveParent,
/*235355*/              OPC_MoveChild2,
/*235356*/              OPC_CheckImmAllZerosV,
/*235357*/              OPC_MoveParent,
/*235358*/              OPC_CheckType, MVT::v8i32,
/*235360*/              OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*235362*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*235365*/              OPC_EmitMergeInputChains, 1, 3, 
/*235368*/              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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                        // Dst: (VPDPBUSDSZ256mkz:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*235382*/            /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->235420
/*235385*/              OPC_RecordMemRef,
/*235386*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*235387*/              OPC_CheckFoldableChainNode,
/*235388*/              OPC_RecordChild1, // #4 = $src3
/*235389*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*235391*/              OPC_MoveParent,
/*235392*/              OPC_MoveParent,
/*235393*/              OPC_MoveChild2,
/*235394*/              OPC_CheckImmAllZerosV,
/*235395*/              OPC_MoveParent,
/*235396*/              OPC_CheckType, MVT::v8i32,
/*235398*/              OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*235400*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*235403*/              OPC_EmitMergeInputChains, 1, 3, 
/*235406*/              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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                        // Dst: (VPDPBUSDSZ256mbkz:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*235420*/            0, // EndSwitchOpcode
/*235421*/          /*SwitchOpcode*/ 83, TARGET_VAL(X86ISD::VPDPWSSD),// ->235507
/*235424*/            OPC_RecordChild0, // #1 = $src1
/*235425*/            OPC_RecordChild1, // #2 = $src2
/*235426*/            OPC_MoveChild2,
/*235427*/            OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->235468
/*235431*/              OPC_RecordMemRef,
/*235432*/              OPC_RecordNode, // #3 = 'ld' chained node
/*235433*/              OPC_CheckFoldableChainNode,
/*235434*/              OPC_RecordChild1, // #4 = $src3
/*235435*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*235437*/              OPC_CheckPredicate, 9, // Predicate_load
/*235439*/              OPC_MoveParent,
/*235440*/              OPC_MoveParent,
/*235441*/              OPC_MoveChild2,
/*235442*/              OPC_CheckImmAllZerosV,
/*235443*/              OPC_MoveParent,
/*235444*/              OPC_CheckType, MVT::v8i32,
/*235446*/              OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*235448*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*235451*/              OPC_EmitMergeInputChains, 1, 3, 
/*235454*/              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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                        // Dst: (VPDPWSSDZ256mkz:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*235468*/            /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->235506
/*235471*/              OPC_RecordMemRef,
/*235472*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*235473*/              OPC_CheckFoldableChainNode,
/*235474*/              OPC_RecordChild1, // #4 = $src3
/*235475*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*235477*/              OPC_MoveParent,
/*235478*/              OPC_MoveParent,
/*235479*/              OPC_MoveChild2,
/*235480*/              OPC_CheckImmAllZerosV,
/*235481*/              OPC_MoveParent,
/*235482*/              OPC_CheckType, MVT::v8i32,
/*235484*/              OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*235486*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*235489*/              OPC_EmitMergeInputChains, 1, 3, 
/*235492*/              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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                        // Dst: (VPDPWSSDZ256mbkz:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*235506*/            0, // EndSwitchOpcode
/*235507*/          /*SwitchOpcode*/ 83, TARGET_VAL(X86ISD::VPDPWSSDS),// ->235593
/*235510*/            OPC_RecordChild0, // #1 = $src1
/*235511*/            OPC_RecordChild1, // #2 = $src2
/*235512*/            OPC_MoveChild2,
/*235513*/            OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->235554
/*235517*/              OPC_RecordMemRef,
/*235518*/              OPC_RecordNode, // #3 = 'ld' chained node
/*235519*/              OPC_CheckFoldableChainNode,
/*235520*/              OPC_RecordChild1, // #4 = $src3
/*235521*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*235523*/              OPC_CheckPredicate, 9, // Predicate_load
/*235525*/              OPC_MoveParent,
/*235526*/              OPC_MoveParent,
/*235527*/              OPC_MoveChild2,
/*235528*/              OPC_CheckImmAllZerosV,
/*235529*/              OPC_MoveParent,
/*235530*/              OPC_CheckType, MVT::v8i32,
/*235532*/              OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*235534*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*235537*/              OPC_EmitMergeInputChains, 1, 3, 
/*235540*/              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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                        // Dst: (VPDPWSSDSZ256mkz:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*235554*/            /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->235592
/*235557*/              OPC_RecordMemRef,
/*235558*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*235559*/              OPC_CheckFoldableChainNode,
/*235560*/              OPC_RecordChild1, // #4 = $src3
/*235561*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*235563*/              OPC_MoveParent,
/*235564*/              OPC_MoveParent,
/*235565*/              OPC_MoveChild2,
/*235566*/              OPC_CheckImmAllZerosV,
/*235567*/              OPC_MoveParent,
/*235568*/              OPC_CheckType, MVT::v8i32,
/*235570*/              OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*235572*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*235575*/              OPC_EmitMergeInputChains, 1, 3, 
/*235578*/              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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8i32] }) - Complexity = 32
                        // Dst: (VPDPWSSDSZ256mbkz:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*235592*/            0, // EndSwitchOpcode
/*235593*/          /*SwitchOpcode*/ 78, TARGET_VAL(X86ISD::CVTNE2PS2BF16),// ->235674
/*235596*/            OPC_RecordChild0, // #1 = $src1
/*235597*/            OPC_CheckChild0Type, MVT::v4f32,
/*235599*/            OPC_MoveChild1,
/*235600*/            OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->235638
/*235604*/              OPC_RecordMemRef,
/*235605*/              OPC_RecordNode, // #2 = 'ld' chained node
/*235606*/              OPC_CheckFoldableChainNode,
/*235607*/              OPC_RecordChild1, // #3 = $src2
/*235608*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*235610*/              OPC_CheckPredicate, 9, // Predicate_load
/*235612*/              OPC_MoveParent,
/*235613*/              OPC_MoveParent,
/*235614*/              OPC_MoveChild2,
/*235615*/              OPC_CheckImmAllZerosV,
/*235616*/              OPC_MoveParent,
/*235617*/              OPC_CheckType, MVT::v8i16,
/*235619*/              OPC_CheckPatternPredicate, 182, // (Subtarget->hasBF16()) && (Subtarget->hasVLX())
/*235621*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*235624*/              OPC_EmitMergeInputChains1_2,
/*235625*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTNE2PS2BF16Z128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtne2ps2bf16:{ *:[v8i16] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i16] }) - Complexity = 32
                        // Dst: (VCVTNE2PS2BF16Z128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*235638*/            /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->235673
/*235641*/              OPC_RecordMemRef,
/*235642*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*235643*/              OPC_CheckFoldableChainNode,
/*235644*/              OPC_RecordChild1, // #3 = $src2
/*235645*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*235647*/              OPC_MoveParent,
/*235648*/              OPC_MoveParent,
/*235649*/              OPC_MoveChild2,
/*235650*/              OPC_CheckImmAllZerosV,
/*235651*/              OPC_MoveParent,
/*235652*/              OPC_CheckType, MVT::v8i16,
/*235654*/              OPC_CheckPatternPredicate, 182, // (Subtarget->hasBF16()) && (Subtarget->hasVLX())
/*235656*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*235659*/              OPC_EmitMergeInputChains1_2,
/*235660*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTNE2PS2BF16Z128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtne2ps2bf16:{ *:[v8i16] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8i16] }) - Complexity = 32
                        // Dst: (VCVTNE2PS2BF16Z128rmbkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*235673*/            0, // EndSwitchOpcode
/*235674*/          /*SwitchOpcode*/ 77, TARGET_VAL(X86ISD::CVTNEPS2BF16),// ->235754
/*235677*/            OPC_MoveChild0,
/*235678*/            OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->235717
/*235682*/              OPC_RecordMemRef,
/*235683*/              OPC_RecordNode, // #1 = 'ld' chained node
/*235684*/              OPC_CheckFoldableChainNode,
/*235685*/              OPC_RecordChild1, // #2 = $src
/*235686*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*235688*/              OPC_CheckPredicate, 9, // Predicate_load
/*235690*/              OPC_CheckType, MVT::v8f32,
/*235692*/              OPC_MoveParent,
/*235693*/              OPC_MoveParent,
/*235694*/              OPC_MoveChild2,
/*235695*/              OPC_CheckImmAllZerosV,
/*235696*/              OPC_MoveParent,
/*235697*/              OPC_CheckType, MVT::v8i16,
/*235699*/              OPC_CheckPatternPredicate, 182, // (Subtarget->hasBF16()) && (Subtarget->hasVLX())
/*235701*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*235704*/              OPC_EmitMergeInputChains1_1,
/*235705*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTNEPS2BF16Z256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtneps2bf16:{ *:[v8i16] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8i16] }) - Complexity = 32
                        // Dst: (VCVTNEPS2BF16Z256rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*235717*/            /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->235753
/*235720*/              OPC_RecordMemRef,
/*235721*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*235722*/              OPC_CheckFoldableChainNode,
/*235723*/              OPC_RecordChild1, // #2 = $src
/*235724*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*235726*/              OPC_CheckType, MVT::v8f32,
/*235728*/              OPC_MoveParent,
/*235729*/              OPC_MoveParent,
/*235730*/              OPC_MoveChild2,
/*235731*/              OPC_CheckImmAllZerosV,
/*235732*/              OPC_MoveParent,
/*235733*/              OPC_CheckType, MVT::v8i16,
/*235735*/              OPC_CheckPatternPredicate, 182, // (Subtarget->hasBF16()) && (Subtarget->hasVLX())
/*235737*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*235740*/              OPC_EmitMergeInputChains1_1,
/*235741*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTNEPS2BF16Z256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtneps2bf16:{ *:[v8i16] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8i16] }) - Complexity = 32
                        // Dst: (VCVTNEPS2BF16Z256rmbkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*235753*/            0, // EndSwitchOpcode
/*235754*/          0, // EndSwitchOpcode
/*235755*/        /*Scope*/ 13|128,1/*141*/, /*->235898*/
/*235757*/          OPC_RecordChild1, // #1 = $src3
/*235758*/          OPC_MoveChild1,
/*235759*/          OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*235762*/          OPC_RecordChild0, // #2 = $src1
/*235763*/          OPC_MoveChild1,
/*235764*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*235767*/          OPC_RecordMemRef,
/*235768*/          OPC_RecordNode, // #3 = 'ld' chained node
/*235769*/          OPC_CheckFoldableChainNode,
/*235770*/          OPC_RecordChild1, // #4 = $src2
/*235771*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*235773*/          OPC_CheckPredicate, 9, // Predicate_load
/*235775*/          OPC_Scope, 38, /*->235815*/ // 3 children in Scope
/*235777*/            OPC_MoveParent,
/*235778*/            OPC_MoveChild2,
/*235779*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*235782*/            OPC_CheckType, MVT::iPTR,
/*235784*/            OPC_MoveParent,
/*235785*/            OPC_MoveParent,
/*235786*/            OPC_RecordChild2, // #5 = $src0
/*235787*/            OPC_CheckType, MVT::v8i32,
/*235789*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*235791*/            OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*235794*/            OPC_EmitMergeInputChains, 1, 3, 
/*235797*/            OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*235800*/            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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$src3, VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                      // 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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[iPTR] })):$src3))
/*235815*/          /*Scope*/ 40, /*->235856*/
/*235816*/            OPC_CheckType, MVT::v4i64,
/*235818*/            OPC_MoveParent,
/*235819*/            OPC_MoveChild2,
/*235820*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*235823*/            OPC_CheckType, MVT::iPTR,
/*235825*/            OPC_MoveParent,
/*235826*/            OPC_MoveParent,
/*235827*/            OPC_RecordChild2, // #5 = $src0
/*235828*/            OPC_CheckType, MVT::v8i64,
/*235830*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*235832*/            OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*235835*/            OPC_EmitMergeInputChains, 1, 3, 
/*235838*/            OPC_EmitNodeXForm, 16, 1, // INSERT_get_vinsert256_imm
/*235841*/            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>>, (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>>, (imm:{ *:[iPTR] })):$src3))
/*235856*/          /*Scope*/ 40, /*->235897*/
/*235857*/            OPC_CheckType, MVT::v2i64,
/*235859*/            OPC_MoveParent,
/*235860*/            OPC_MoveChild2,
/*235861*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*235864*/            OPC_CheckType, MVT::iPTR,
/*235866*/            OPC_MoveParent,
/*235867*/            OPC_MoveParent,
/*235868*/            OPC_RecordChild2, // #5 = $src0
/*235869*/            OPC_CheckType, MVT::v8i64,
/*235871*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*235873*/            OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*235876*/            OPC_EmitMergeInputChains, 1, 3, 
/*235879*/            OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*235882*/            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>>, (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>>, (imm:{ *:[iPTR] })):$src3))
/*235897*/          0, /*End of Scope*/
/*235898*/        /*Scope*/ 8|128,118/*15112*/, /*->251012*/
/*235900*/          OPC_MoveChild1,
/*235901*/          OPC_SwitchOpcode /*76 cases */, 90|128,14/*1882*/, TARGET_VAL(ISD::BITCAST),// ->237788
/*235906*/            OPC_Scope, 15|128,11/*1423*/, /*->237332*/ // 3 children in Scope
/*235909*/              OPC_MoveChild0,
/*235910*/              OPC_SwitchOpcode /*6 cases */, 102, TARGET_VAL(X86ISD::SUBV_BROADCAST),// ->236016
/*235914*/                OPC_MoveChild0,
/*235915*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*235918*/                OPC_RecordMemRef,
/*235919*/                OPC_RecordNode, // #1 = 'ld' chained node
/*235920*/                OPC_CheckFoldableChainNode,
/*235921*/                OPC_RecordChild1, // #2 = $src
/*235922*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*235924*/                OPC_CheckPredicate, 9, // Predicate_load
/*235926*/                OPC_Scope, 29, /*->235957*/ // 3 children in Scope
/*235928*/                  OPC_CheckType, MVT::v8i32,
/*235930*/                  OPC_MoveParent,
/*235931*/                  OPC_CheckType, MVT::v16i32,
/*235933*/                  OPC_MoveParent,
/*235934*/                  OPC_MoveParent,
/*235935*/                  OPC_RecordChild2, // #3 = $src0
/*235936*/                  OPC_CheckType, MVT::v8i64,
/*235938*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*235940*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*235943*/                  OPC_EmitMergeInputChains1_1,
/*235944*/                  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] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                            // Dst: (VBROADCASTI64X4rmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*235957*/                /*Scope*/ 27, /*->235985*/
/*235958*/                  OPC_MoveParent,
/*235959*/                  OPC_CheckType, MVT::v4i64,
/*235961*/                  OPC_MoveParent,
/*235962*/                  OPC_MoveParent,
/*235963*/                  OPC_RecordChild2, // #3 = $src0
/*235964*/                  OPC_CheckType, MVT::v8i32,
/*235966*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*235968*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*235971*/                  OPC_EmitMergeInputChains1_1,
/*235972*/                  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>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                            // Dst: (VBROADCASTI32X4Z256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*235985*/                /*Scope*/ 29, /*->236015*/
/*235986*/                  OPC_CheckType, MVT::v4i32,
/*235988*/                  OPC_MoveParent,
/*235989*/                  OPC_CheckType, MVT::v16i32,
/*235991*/                  OPC_MoveParent,
/*235992*/                  OPC_MoveParent,
/*235993*/                  OPC_RecordChild2, // #3 = $src0
/*235994*/                  OPC_CheckType, MVT::v8i64,
/*235996*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*235998*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*236001*/                  OPC_EmitMergeInputChains1_1,
/*236002*/                  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] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                            // Dst: (VBROADCASTI64X2rmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*236015*/                0, /*End of Scope*/
/*236016*/              /*SwitchOpcode*/ 106|128,2/*362*/, TARGET_VAL(ISD::AND),// ->236382
/*236020*/                OPC_Scope, 50|128,1/*178*/, /*->236201*/ // 2 children in Scope
/*236023*/                  OPC_RecordChild0, // #1 = $src1
/*236024*/                  OPC_MoveChild1,
/*236025*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*236028*/                  OPC_RecordMemRef,
/*236029*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*236030*/                  OPC_CheckFoldableChainNode,
/*236031*/                  OPC_RecordChild1, // #3 = $src2
/*236032*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*236034*/                  OPC_CheckPredicate, 9, // Predicate_load
/*236036*/                  OPC_MoveParent,
/*236037*/                  OPC_SwitchType /*6 cases */, 25, MVT::v16i32,// ->236065
/*236040*/                    OPC_MoveParent,
/*236041*/                    OPC_MoveParent,
/*236042*/                    OPC_RecordChild2, // #4 = $src0
/*236043*/                    OPC_CheckType, MVT::v8i64,
/*236045*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*236047*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*236050*/                    OPC_EmitMergeInputChains1_2,
/*236051*/                    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, (bitconvert:{ *:[v8i64] } (and:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                              // Dst: (VPANDQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*236065*/                  /*SwitchType*/ 25, MVT::v32i16,// ->236092
/*236067*/                    OPC_MoveParent,
/*236068*/                    OPC_MoveParent,
/*236069*/                    OPC_RecordChild2, // #4 = $src0
/*236070*/                    OPC_CheckType, MVT::v8i64,
/*236072*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*236074*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*236077*/                    OPC_EmitMergeInputChains1_2,
/*236078*/                    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, (bitconvert:{ *:[v8i64] } (and:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                              // Dst: (VPANDQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*236092*/                  /*SwitchType*/ 25, MVT::v64i8,// ->236119
/*236094*/                    OPC_MoveParent,
/*236095*/                    OPC_MoveParent,
/*236096*/                    OPC_RecordChild2, // #4 = $src0
/*236097*/                    OPC_CheckType, MVT::v8i64,
/*236099*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*236101*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*236104*/                    OPC_EmitMergeInputChains1_2,
/*236105*/                    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, (bitconvert:{ *:[v8i64] } (and:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                              // Dst: (VPANDQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*236119*/                  /*SwitchType*/ 25, MVT::v4i64,// ->236146
/*236121*/                    OPC_MoveParent,
/*236122*/                    OPC_MoveParent,
/*236123*/                    OPC_RecordChild2, // #4 = $src0
/*236124*/                    OPC_CheckType, MVT::v8i32,
/*236126*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*236128*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*236131*/                    OPC_EmitMergeInputChains1_2,
/*236132*/                    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>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                              // Dst: (VPANDDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*236146*/                  /*SwitchType*/ 25, MVT::v16i16,// ->236173
/*236148*/                    OPC_MoveParent,
/*236149*/                    OPC_MoveParent,
/*236150*/                    OPC_RecordChild2, // #4 = $src0
/*236151*/                    OPC_CheckType, MVT::v8i32,
/*236153*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*236155*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*236158*/                    OPC_EmitMergeInputChains1_2,
/*236159*/                    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:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                              // Dst: (VPANDDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*236173*/                  /*SwitchType*/ 25, MVT::v32i8,// ->236200
/*236175*/                    OPC_MoveParent,
/*236176*/                    OPC_MoveParent,
/*236177*/                    OPC_RecordChild2, // #4 = $src0
/*236178*/                    OPC_CheckType, MVT::v8i32,
/*236180*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*236182*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*236185*/                    OPC_EmitMergeInputChains1_2,
/*236186*/                    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:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                              // Dst: (VPANDDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*236200*/                  0, // EndSwitchType
/*236201*/                /*Scope*/ 50|128,1/*178*/, /*->236381*/
/*236203*/                  OPC_MoveChild0,
/*236204*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*236207*/                  OPC_RecordMemRef,
/*236208*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*236209*/                  OPC_CheckFoldableChainNode,
/*236210*/                  OPC_RecordChild1, // #2 = $src2
/*236211*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*236213*/                  OPC_CheckPredicate, 9, // Predicate_load
/*236215*/                  OPC_MoveParent,
/*236216*/                  OPC_RecordChild1, // #3 = $src1
/*236217*/                  OPC_SwitchType /*6 cases */, 25, MVT::v16i32,// ->236245
/*236220*/                    OPC_MoveParent,
/*236221*/                    OPC_MoveParent,
/*236222*/                    OPC_RecordChild2, // #4 = $src0
/*236223*/                    OPC_CheckType, MVT::v8i64,
/*236225*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*236227*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*236230*/                    OPC_EmitMergeInputChains1_1,
/*236231*/                    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, (bitconvert:{ *:[v8i64] } (and:{ *:[v16i32] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16i32] }:$src1)), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                              // Dst: (VPANDQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*236245*/                  /*SwitchType*/ 25, MVT::v32i16,// ->236272
/*236247*/                    OPC_MoveParent,
/*236248*/                    OPC_MoveParent,
/*236249*/                    OPC_RecordChild2, // #4 = $src0
/*236250*/                    OPC_CheckType, MVT::v8i64,
/*236252*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*236254*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*236257*/                    OPC_EmitMergeInputChains1_1,
/*236258*/                    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, (bitconvert:{ *:[v8i64] } (and:{ *:[v32i16] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1)), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                              // Dst: (VPANDQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*236272*/                  /*SwitchType*/ 25, MVT::v64i8,// ->236299
/*236274*/                    OPC_MoveParent,
/*236275*/                    OPC_MoveParent,
/*236276*/                    OPC_RecordChild2, // #4 = $src0
/*236277*/                    OPC_CheckType, MVT::v8i64,
/*236279*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*236281*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*236284*/                    OPC_EmitMergeInputChains1_1,
/*236285*/                    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, (bitconvert:{ *:[v8i64] } (and:{ *:[v64i8] } (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v64i8] }:$src1)), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                              // Dst: (VPANDQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*236299*/                  /*SwitchType*/ 25, MVT::v4i64,// ->236326
/*236301*/                    OPC_MoveParent,
/*236302*/                    OPC_MoveParent,
/*236303*/                    OPC_RecordChild2, // #4 = $src0
/*236304*/                    OPC_CheckType, MVT::v8i32,
/*236306*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*236308*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*236311*/                    OPC_EmitMergeInputChains1_1,
/*236312*/                    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>>, VR256X:{ *:[v4i64] }:$src1)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                              // Dst: (VPANDDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*236326*/                  /*SwitchType*/ 25, MVT::v16i16,// ->236353
/*236328*/                    OPC_MoveParent,
/*236329*/                    OPC_MoveParent,
/*236330*/                    OPC_RecordChild2, // #4 = $src0
/*236331*/                    OPC_CheckType, MVT::v8i32,
/*236333*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*236335*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*236338*/                    OPC_EmitMergeInputChains1_1,
/*236339*/                    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:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                              // Dst: (VPANDDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*236353*/                  /*SwitchType*/ 25, MVT::v32i8,// ->236380
/*236355*/                    OPC_MoveParent,
/*236356*/                    OPC_MoveParent,
/*236357*/                    OPC_RecordChild2, // #4 = $src0
/*236358*/                    OPC_CheckType, MVT::v8i32,
/*236360*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*236362*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*236365*/                    OPC_EmitMergeInputChains1_1,
/*236366*/                    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:{ *:[v32i8] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v32i8] }:$src1)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                              // Dst: (VPANDDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*236380*/                  0, // EndSwitchType
/*236381*/                0, /*End of Scope*/
/*236382*/              /*SwitchOpcode*/ 106|128,2/*362*/, TARGET_VAL(ISD::OR),// ->236748
/*236386*/                OPC_Scope, 50|128,1/*178*/, /*->236567*/ // 2 children in Scope
/*236389*/                  OPC_RecordChild0, // #1 = $src1
/*236390*/                  OPC_MoveChild1,
/*236391*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*236394*/                  OPC_RecordMemRef,
/*236395*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*236396*/                  OPC_CheckFoldableChainNode,
/*236397*/                  OPC_RecordChild1, // #3 = $src2
/*236398*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*236400*/                  OPC_CheckPredicate, 9, // Predicate_load
/*236402*/                  OPC_MoveParent,
/*236403*/                  OPC_SwitchType /*6 cases */, 25, MVT::v16i32,// ->236431
/*236406*/                    OPC_MoveParent,
/*236407*/                    OPC_MoveParent,
/*236408*/                    OPC_RecordChild2, // #4 = $src0
/*236409*/                    OPC_CheckType, MVT::v8i64,
/*236411*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*236413*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*236416*/                    OPC_EmitMergeInputChains1_2,
/*236417*/                    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, (bitconvert:{ *:[v8i64] } (or:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                              // Dst: (VPORQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*236431*/                  /*SwitchType*/ 25, MVT::v32i16,// ->236458
/*236433*/                    OPC_MoveParent,
/*236434*/                    OPC_MoveParent,
/*236435*/                    OPC_RecordChild2, // #4 = $src0
/*236436*/                    OPC_CheckType, MVT::v8i64,
/*236438*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*236440*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*236443*/                    OPC_EmitMergeInputChains1_2,
/*236444*/                    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, (bitconvert:{ *:[v8i64] } (or:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                              // Dst: (VPORQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*236458*/                  /*SwitchType*/ 25, MVT::v64i8,// ->236485
/*236460*/                    OPC_MoveParent,
/*236461*/                    OPC_MoveParent,
/*236462*/                    OPC_RecordChild2, // #4 = $src0
/*236463*/                    OPC_CheckType, MVT::v8i64,
/*236465*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*236467*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*236470*/                    OPC_EmitMergeInputChains1_2,
/*236471*/                    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, (bitconvert:{ *:[v8i64] } (or:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                              // Dst: (VPORQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*236485*/                  /*SwitchType*/ 25, MVT::v4i64,// ->236512
/*236487*/                    OPC_MoveParent,
/*236488*/                    OPC_MoveParent,
/*236489*/                    OPC_RecordChild2, // #4 = $src0
/*236490*/                    OPC_CheckType, MVT::v8i32,
/*236492*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*236494*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*236497*/                    OPC_EmitMergeInputChains1_2,
/*236498*/                    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>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                              // Dst: (VPORDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*236512*/                  /*SwitchType*/ 25, MVT::v16i16,// ->236539
/*236514*/                    OPC_MoveParent,
/*236515*/                    OPC_MoveParent,
/*236516*/                    OPC_RecordChild2, // #4 = $src0
/*236517*/                    OPC_CheckType, MVT::v8i32,
/*236519*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*236521*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*236524*/                    OPC_EmitMergeInputChains1_2,
/*236525*/                    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:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                              // Dst: (VPORDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*236539*/                  /*SwitchType*/ 25, MVT::v32i8,// ->236566
/*236541*/                    OPC_MoveParent,
/*236542*/                    OPC_MoveParent,
/*236543*/                    OPC_RecordChild2, // #4 = $src0
/*236544*/                    OPC_CheckType, MVT::v8i32,
/*236546*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*236548*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*236551*/                    OPC_EmitMergeInputChains1_2,
/*236552*/                    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:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                              // Dst: (VPORDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*236566*/                  0, // EndSwitchType
/*236567*/                /*Scope*/ 50|128,1/*178*/, /*->236747*/
/*236569*/                  OPC_MoveChild0,
/*236570*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*236573*/                  OPC_RecordMemRef,
/*236574*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*236575*/                  OPC_CheckFoldableChainNode,
/*236576*/                  OPC_RecordChild1, // #2 = $src2
/*236577*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*236579*/                  OPC_CheckPredicate, 9, // Predicate_load
/*236581*/                  OPC_MoveParent,
/*236582*/                  OPC_RecordChild1, // #3 = $src1
/*236583*/                  OPC_SwitchType /*6 cases */, 25, MVT::v16i32,// ->236611
/*236586*/                    OPC_MoveParent,
/*236587*/                    OPC_MoveParent,
/*236588*/                    OPC_RecordChild2, // #4 = $src0
/*236589*/                    OPC_CheckType, MVT::v8i64,
/*236591*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*236593*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*236596*/                    OPC_EmitMergeInputChains1_1,
/*236597*/                    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, (bitconvert:{ *:[v8i64] } (or:{ *:[v16i32] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16i32] }:$src1)), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                              // Dst: (VPORQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*236611*/                  /*SwitchType*/ 25, MVT::v32i16,// ->236638
/*236613*/                    OPC_MoveParent,
/*236614*/                    OPC_MoveParent,
/*236615*/                    OPC_RecordChild2, // #4 = $src0
/*236616*/                    OPC_CheckType, MVT::v8i64,
/*236618*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*236620*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*236623*/                    OPC_EmitMergeInputChains1_1,
/*236624*/                    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, (bitconvert:{ *:[v8i64] } (or:{ *:[v32i16] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1)), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                              // Dst: (VPORQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*236638*/                  /*SwitchType*/ 25, MVT::v64i8,// ->236665
/*236640*/                    OPC_MoveParent,
/*236641*/                    OPC_MoveParent,
/*236642*/                    OPC_RecordChild2, // #4 = $src0
/*236643*/                    OPC_CheckType, MVT::v8i64,
/*236645*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*236647*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*236650*/                    OPC_EmitMergeInputChains1_1,
/*236651*/                    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, (bitconvert:{ *:[v8i64] } (or:{ *:[v64i8] } (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v64i8] }:$src1)), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                              // Dst: (VPORQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*236665*/                  /*SwitchType*/ 25, MVT::v4i64,// ->236692
/*236667*/                    OPC_MoveParent,
/*236668*/                    OPC_MoveParent,
/*236669*/                    OPC_RecordChild2, // #4 = $src0
/*236670*/                    OPC_CheckType, MVT::v8i32,
/*236672*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*236674*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*236677*/                    OPC_EmitMergeInputChains1_1,
/*236678*/                    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>>, VR256X:{ *:[v4i64] }:$src1)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                              // Dst: (VPORDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*236692*/                  /*SwitchType*/ 25, MVT::v16i16,// ->236719
/*236694*/                    OPC_MoveParent,
/*236695*/                    OPC_MoveParent,
/*236696*/                    OPC_RecordChild2, // #4 = $src0
/*236697*/                    OPC_CheckType, MVT::v8i32,
/*236699*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*236701*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*236704*/                    OPC_EmitMergeInputChains1_1,
/*236705*/                    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:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                              // Dst: (VPORDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*236719*/                  /*SwitchType*/ 25, MVT::v32i8,// ->236746
/*236721*/                    OPC_MoveParent,
/*236722*/                    OPC_MoveParent,
/*236723*/                    OPC_RecordChild2, // #4 = $src0
/*236724*/                    OPC_CheckType, MVT::v8i32,
/*236726*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*236728*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*236731*/                    OPC_EmitMergeInputChains1_1,
/*236732*/                    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:{ *:[v32i8] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v32i8] }:$src1)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                              // Dst: (VPORDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*236746*/                  0, // EndSwitchType
/*236747*/                0, /*End of Scope*/
/*236748*/              /*SwitchOpcode*/ 106|128,2/*362*/, TARGET_VAL(ISD::XOR),// ->237114
/*236752*/                OPC_Scope, 50|128,1/*178*/, /*->236933*/ // 2 children in Scope
/*236755*/                  OPC_RecordChild0, // #1 = $src1
/*236756*/                  OPC_MoveChild1,
/*236757*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*236760*/                  OPC_RecordMemRef,
/*236761*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*236762*/                  OPC_CheckFoldableChainNode,
/*236763*/                  OPC_RecordChild1, // #3 = $src2
/*236764*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*236766*/                  OPC_CheckPredicate, 9, // Predicate_load
/*236768*/                  OPC_MoveParent,
/*236769*/                  OPC_SwitchType /*6 cases */, 25, MVT::v16i32,// ->236797
/*236772*/                    OPC_MoveParent,
/*236773*/                    OPC_MoveParent,
/*236774*/                    OPC_RecordChild2, // #4 = $src0
/*236775*/                    OPC_CheckType, MVT::v8i64,
/*236777*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*236779*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*236782*/                    OPC_EmitMergeInputChains1_2,
/*236783*/                    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, (bitconvert:{ *:[v8i64] } (xor:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                              // Dst: (VPXORQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*236797*/                  /*SwitchType*/ 25, MVT::v32i16,// ->236824
/*236799*/                    OPC_MoveParent,
/*236800*/                    OPC_MoveParent,
/*236801*/                    OPC_RecordChild2, // #4 = $src0
/*236802*/                    OPC_CheckType, MVT::v8i64,
/*236804*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*236806*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*236809*/                    OPC_EmitMergeInputChains1_2,
/*236810*/                    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, (bitconvert:{ *:[v8i64] } (xor:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                              // Dst: (VPXORQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*236824*/                  /*SwitchType*/ 25, MVT::v64i8,// ->236851
/*236826*/                    OPC_MoveParent,
/*236827*/                    OPC_MoveParent,
/*236828*/                    OPC_RecordChild2, // #4 = $src0
/*236829*/                    OPC_CheckType, MVT::v8i64,
/*236831*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*236833*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*236836*/                    OPC_EmitMergeInputChains1_2,
/*236837*/                    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, (bitconvert:{ *:[v8i64] } (xor:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                              // Dst: (VPXORQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*236851*/                  /*SwitchType*/ 25, MVT::v4i64,// ->236878
/*236853*/                    OPC_MoveParent,
/*236854*/                    OPC_MoveParent,
/*236855*/                    OPC_RecordChild2, // #4 = $src0
/*236856*/                    OPC_CheckType, MVT::v8i32,
/*236858*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*236860*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*236863*/                    OPC_EmitMergeInputChains1_2,
/*236864*/                    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>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                              // Dst: (VPXORDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*236878*/                  /*SwitchType*/ 25, MVT::v16i16,// ->236905
/*236880*/                    OPC_MoveParent,
/*236881*/                    OPC_MoveParent,
/*236882*/                    OPC_RecordChild2, // #4 = $src0
/*236883*/                    OPC_CheckType, MVT::v8i32,
/*236885*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*236887*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*236890*/                    OPC_EmitMergeInputChains1_2,
/*236891*/                    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:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                              // Dst: (VPXORDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*236905*/                  /*SwitchType*/ 25, MVT::v32i8,// ->236932
/*236907*/                    OPC_MoveParent,
/*236908*/                    OPC_MoveParent,
/*236909*/                    OPC_RecordChild2, // #4 = $src0
/*236910*/                    OPC_CheckType, MVT::v8i32,
/*236912*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*236914*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*236917*/                    OPC_EmitMergeInputChains1_2,
/*236918*/                    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:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                              // Dst: (VPXORDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*236932*/                  0, // EndSwitchType
/*236933*/                /*Scope*/ 50|128,1/*178*/, /*->237113*/
/*236935*/                  OPC_MoveChild0,
/*236936*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*236939*/                  OPC_RecordMemRef,
/*236940*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*236941*/                  OPC_CheckFoldableChainNode,
/*236942*/                  OPC_RecordChild1, // #2 = $src2
/*236943*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*236945*/                  OPC_CheckPredicate, 9, // Predicate_load
/*236947*/                  OPC_MoveParent,
/*236948*/                  OPC_RecordChild1, // #3 = $src1
/*236949*/                  OPC_SwitchType /*6 cases */, 25, MVT::v16i32,// ->236977
/*236952*/                    OPC_MoveParent,
/*236953*/                    OPC_MoveParent,
/*236954*/                    OPC_RecordChild2, // #4 = $src0
/*236955*/                    OPC_CheckType, MVT::v8i64,
/*236957*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*236959*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*236962*/                    OPC_EmitMergeInputChains1_1,
/*236963*/                    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, (bitconvert:{ *:[v8i64] } (xor:{ *:[v16i32] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16i32] }:$src1)), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                              // Dst: (VPXORQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*236977*/                  /*SwitchType*/ 25, MVT::v32i16,// ->237004
/*236979*/                    OPC_MoveParent,
/*236980*/                    OPC_MoveParent,
/*236981*/                    OPC_RecordChild2, // #4 = $src0
/*236982*/                    OPC_CheckType, MVT::v8i64,
/*236984*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*236986*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*236989*/                    OPC_EmitMergeInputChains1_1,
/*236990*/                    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, (bitconvert:{ *:[v8i64] } (xor:{ *:[v32i16] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1)), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                              // Dst: (VPXORQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*237004*/                  /*SwitchType*/ 25, MVT::v64i8,// ->237031
/*237006*/                    OPC_MoveParent,
/*237007*/                    OPC_MoveParent,
/*237008*/                    OPC_RecordChild2, // #4 = $src0
/*237009*/                    OPC_CheckType, MVT::v8i64,
/*237011*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*237013*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*237016*/                    OPC_EmitMergeInputChains1_1,
/*237017*/                    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, (bitconvert:{ *:[v8i64] } (xor:{ *:[v64i8] } (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v64i8] }:$src1)), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                              // Dst: (VPXORQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*237031*/                  /*SwitchType*/ 25, MVT::v4i64,// ->237058
/*237033*/                    OPC_MoveParent,
/*237034*/                    OPC_MoveParent,
/*237035*/                    OPC_RecordChild2, // #4 = $src0
/*237036*/                    OPC_CheckType, MVT::v8i32,
/*237038*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*237040*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*237043*/                    OPC_EmitMergeInputChains1_1,
/*237044*/                    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>>, VR256X:{ *:[v4i64] }:$src1)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                              // Dst: (VPXORDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*237058*/                  /*SwitchType*/ 25, MVT::v16i16,// ->237085
/*237060*/                    OPC_MoveParent,
/*237061*/                    OPC_MoveParent,
/*237062*/                    OPC_RecordChild2, // #4 = $src0
/*237063*/                    OPC_CheckType, MVT::v8i32,
/*237065*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*237067*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*237070*/                    OPC_EmitMergeInputChains1_1,
/*237071*/                    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:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                              // Dst: (VPXORDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*237085*/                  /*SwitchType*/ 25, MVT::v32i8,// ->237112
/*237087*/                    OPC_MoveParent,
/*237088*/                    OPC_MoveParent,
/*237089*/                    OPC_RecordChild2, // #4 = $src0
/*237090*/                    OPC_CheckType, MVT::v8i32,
/*237092*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*237094*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*237097*/                    OPC_EmitMergeInputChains1_1,
/*237098*/                    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:{ *:[v32i8] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v32i8] }:$src1)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                              // Dst: (VPXORDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*237112*/                  0, // EndSwitchType
/*237113*/                0, /*End of Scope*/
/*237114*/              /*SwitchOpcode*/ 50|128,1/*178*/, TARGET_VAL(X86ISD::ANDNP),// ->237296
/*237118*/                OPC_RecordChild0, // #1 = $src1
/*237119*/                OPC_MoveChild1,
/*237120*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*237123*/                OPC_RecordMemRef,
/*237124*/                OPC_RecordNode, // #2 = 'ld' chained node
/*237125*/                OPC_CheckFoldableChainNode,
/*237126*/                OPC_RecordChild1, // #3 = $src2
/*237127*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*237129*/                OPC_CheckPredicate, 9, // Predicate_load
/*237131*/                OPC_MoveParent,
/*237132*/                OPC_SwitchType /*6 cases */, 25, MVT::v16i32,// ->237160
/*237135*/                  OPC_MoveParent,
/*237136*/                  OPC_MoveParent,
/*237137*/                  OPC_RecordChild2, // #4 = $src0
/*237138*/                  OPC_CheckType, MVT::v8i64,
/*237140*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*237142*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*237145*/                  OPC_EmitMergeInputChains1_2,
/*237146*/                  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, (bitconvert:{ *:[v8i64] } (X86andnp:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                            // Dst: (VPANDNQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*237160*/                /*SwitchType*/ 25, MVT::v32i16,// ->237187
/*237162*/                  OPC_MoveParent,
/*237163*/                  OPC_MoveParent,
/*237164*/                  OPC_RecordChild2, // #4 = $src0
/*237165*/                  OPC_CheckType, MVT::v8i64,
/*237167*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*237169*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*237172*/                  OPC_EmitMergeInputChains1_2,
/*237173*/                  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, (bitconvert:{ *:[v8i64] } (X86andnp:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                            // Dst: (VPANDNQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*237187*/                /*SwitchType*/ 25, MVT::v64i8,// ->237214
/*237189*/                  OPC_MoveParent,
/*237190*/                  OPC_MoveParent,
/*237191*/                  OPC_RecordChild2, // #4 = $src0
/*237192*/                  OPC_CheckType, MVT::v8i64,
/*237194*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*237196*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*237199*/                  OPC_EmitMergeInputChains1_2,
/*237200*/                  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, (bitconvert:{ *:[v8i64] } (X86andnp:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                            // Dst: (VPANDNQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*237214*/                /*SwitchType*/ 25, MVT::v4i64,// ->237241
/*237216*/                  OPC_MoveParent,
/*237217*/                  OPC_MoveParent,
/*237218*/                  OPC_RecordChild2, // #4 = $src0
/*237219*/                  OPC_CheckType, MVT::v8i32,
/*237221*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*237223*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*237226*/                  OPC_EmitMergeInputChains1_2,
/*237227*/                  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>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                            // Dst: (VPANDNDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*237241*/                /*SwitchType*/ 25, MVT::v16i16,// ->237268
/*237243*/                  OPC_MoveParent,
/*237244*/                  OPC_MoveParent,
/*237245*/                  OPC_RecordChild2, // #4 = $src0
/*237246*/                  OPC_CheckType, MVT::v8i32,
/*237248*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*237250*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*237253*/                  OPC_EmitMergeInputChains1_2,
/*237254*/                  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:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                            // Dst: (VPANDNDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*237268*/                /*SwitchType*/ 25, MVT::v32i8,// ->237295
/*237270*/                  OPC_MoveParent,
/*237271*/                  OPC_MoveParent,
/*237272*/                  OPC_RecordChild2, // #4 = $src0
/*237273*/                  OPC_CheckType, MVT::v8i32,
/*237275*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*237277*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*237280*/                  OPC_EmitMergeInputChains1_2,
/*237281*/                  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:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                            // Dst: (VPANDNDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*237295*/                0, // EndSwitchType
/*237296*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->237331
/*237299*/                OPC_RecordMemRef,
/*237300*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*237301*/                OPC_CheckFoldableChainNode,
/*237302*/                OPC_RecordChild1, // #2 = $src
/*237303*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*237305*/                OPC_CheckType, MVT::v4i64,
/*237307*/                OPC_MoveParent,
/*237308*/                OPC_MoveParent,
/*237309*/                OPC_RecordChild2, // #3 = $src0
/*237310*/                OPC_CheckType, MVT::v8i32,
/*237312*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*237314*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*237317*/                OPC_EmitMergeInputChains1_1,
/*237318*/                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] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                          // Dst: (VBROADCASTI32X2Z256mk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*237331*/              0, // EndSwitchOpcode
/*237332*/            /*Scope*/ 126|128,2/*382*/, /*->237716*/
/*237334*/              OPC_RecordChild0, // #1 = $ext
/*237335*/              OPC_MoveChild0,
/*237336*/              OPC_SwitchOpcode /*2 cases */, 81, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),// ->237421
/*237340*/                OPC_RecordChild0, // #2 = $src
/*237341*/                OPC_MoveChild1,
/*237342*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*237345*/                OPC_CheckType, MVT::iPTR,
/*237347*/                OPC_MoveParent,
/*237348*/                OPC_CheckPredicate, 18, // Predicate_vextract256_extract
/*237350*/                OPC_SwitchType /*3 cases */, 21, MVT::v4i64,// ->237374
/*237353*/                  OPC_MoveParent,
/*237354*/                  OPC_MoveParent,
/*237355*/                  OPC_MoveChild2,
/*237356*/                  OPC_CheckImmAllZerosV,
/*237357*/                  OPC_MoveParent,
/*237358*/                  OPC_CheckType, MVT::v8i32,
/*237360*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*237362*/                  OPC_EmitNodeXForm, 1, 1, // EXTRACT_get_vextract256_imm
/*237365*/                  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] }))<<P:Predicate_vextract256_extract>><<X:EXTRACT_get_vextract256_imm>>:$ext), immAllZerosV:{ *:[v8i32] }) - Complexity = 17
                            // Dst: (VEXTRACTI32x8Zrrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src, (EXTRACT_get_vextract256_imm:{ *:[i8] } VR256X:{ *:[v4i64] }:$ext))
/*237374*/                /*SwitchType*/ 21, MVT::v16i16,// ->237397
/*237376*/                  OPC_MoveParent,
/*237377*/                  OPC_MoveParent,
/*237378*/                  OPC_MoveChild2,
/*237379*/                  OPC_CheckImmAllZerosV,
/*237380*/                  OPC_MoveParent,
/*237381*/                  OPC_CheckType, MVT::v8i32,
/*237383*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*237385*/                  OPC_EmitNodeXForm, 1, 1, // EXTRACT_get_vextract256_imm
/*237388*/                  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] }))<<P:Predicate_vextract256_extract>><<X:EXTRACT_get_vextract256_imm>>:$ext), immAllZerosV:{ *:[v8i32] }) - Complexity = 17
                            // Dst: (VEXTRACTI32x8Zrrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v32i16] }:$src, (EXTRACT_get_vextract256_imm:{ *:[i8] } VR256X:{ *:[v16i16] }:$ext))
/*237397*/                /*SwitchType*/ 21, MVT::v32i8,// ->237420
/*237399*/                  OPC_MoveParent,
/*237400*/                  OPC_MoveParent,
/*237401*/                  OPC_MoveChild2,
/*237402*/                  OPC_CheckImmAllZerosV,
/*237403*/                  OPC_MoveParent,
/*237404*/                  OPC_CheckType, MVT::v8i32,
/*237406*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*237408*/                  OPC_EmitNodeXForm, 1, 1, // EXTRACT_get_vextract256_imm
/*237411*/                  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] }))<<P:Predicate_vextract256_extract>><<X:EXTRACT_get_vextract256_imm>>:$ext), immAllZerosV:{ *:[v8i32] }) - Complexity = 17
                            // Dst: (VEXTRACTI32x8Zrrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v64i8] }:$src, (EXTRACT_get_vextract256_imm:{ *:[i8] } VR256X:{ *:[v32i8] }:$ext))
/*237420*/                0, // EndSwitchType
/*237421*/              /*SwitchOpcode*/ 34|128,2/*290*/, TARGET_VAL(ISD::INSERT_SUBVECTOR),// ->237715
/*237425*/                OPC_RecordChild0, // #2 = $src1
/*237426*/                OPC_RecordChild1, // #3 = $src2
/*237427*/                OPC_Scope, 81, /*->237510*/ // 7 children in Scope
/*237429*/                  OPC_MoveChild2,
/*237430*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*237433*/                  OPC_CheckType, MVT::iPTR,
/*237435*/                  OPC_MoveParent,
/*237436*/                  OPC_SwitchType /*3 cases */, 22, MVT::v4i64,// ->237461
/*237439*/                    OPC_MoveParent,
/*237440*/                    OPC_MoveParent,
/*237441*/                    OPC_MoveChild2,
/*237442*/                    OPC_CheckImmAllZerosV,
/*237443*/                    OPC_MoveParent,
/*237444*/                    OPC_CheckType, MVT::v8i32,
/*237446*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*237448*/                    OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*237451*/                    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), immAllZerosV:{ *:[v8i32] }) - Complexity = 16
                              // Dst: (VINSERTI32x4Z256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256X:{ *:[v4i64] }:$ins))
/*237461*/                  /*SwitchType*/ 22, MVT::v16i16,// ->237485
/*237463*/                    OPC_MoveParent,
/*237464*/                    OPC_MoveParent,
/*237465*/                    OPC_MoveChild2,
/*237466*/                    OPC_CheckImmAllZerosV,
/*237467*/                    OPC_MoveParent,
/*237468*/                    OPC_CheckType, MVT::v8i32,
/*237470*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*237472*/                    OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*237475*/                    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), immAllZerosV:{ *:[v8i32] }) - Complexity = 16
                              // Dst: (VINSERTI32x4Z256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256X:{ *:[v16i16] }:$ins))
/*237485*/                  /*SwitchType*/ 22, MVT::v32i8,// ->237509
/*237487*/                    OPC_MoveParent,
/*237488*/                    OPC_MoveParent,
/*237489*/                    OPC_MoveChild2,
/*237490*/                    OPC_CheckImmAllZerosV,
/*237491*/                    OPC_MoveParent,
/*237492*/                    OPC_CheckType, MVT::v8i32,
/*237494*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*237496*/                    OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*237499*/                    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), immAllZerosV:{ *:[v8i32] }) - Complexity = 16
                              // Dst: (VINSERTI32x4Z256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256X:{ *:[v32i8] }:$ins))
/*237509*/                  0, // EndSwitchType
/*237510*/                /*Scope*/ 33, /*->237544*/
/*237511*/                  OPC_CheckChild1Type, MVT::v4i32,
/*237513*/                  OPC_MoveChild2,
/*237514*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*237517*/                  OPC_CheckType, MVT::iPTR,
/*237519*/                  OPC_MoveParent,
/*237520*/                  OPC_CheckType, MVT::v16i32,
/*237522*/                  OPC_MoveParent,
/*237523*/                  OPC_MoveParent,
/*237524*/                  OPC_MoveChild2,
/*237525*/                  OPC_CheckImmAllZerosV,
/*237526*/                  OPC_MoveParent,
/*237527*/                  OPC_CheckType, MVT::v8i64,
/*237529*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*237531*/                  OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*237534*/                  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), immAllZerosV:{ *:[v8i64] }) - Complexity = 16
                            // Dst: (VINSERTI64x2Zrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR512:{ *:[v16i32] }:$ins))
/*237544*/                /*Scope*/ 33, /*->237578*/
/*237545*/                  OPC_CheckChild1Type, MVT::v8i16,
/*237547*/                  OPC_MoveChild2,
/*237548*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*237551*/                  OPC_CheckType, MVT::iPTR,
/*237553*/                  OPC_MoveParent,
/*237554*/                  OPC_CheckType, MVT::v32i16,
/*237556*/                  OPC_MoveParent,
/*237557*/                  OPC_MoveParent,
/*237558*/                  OPC_MoveChild2,
/*237559*/                  OPC_CheckImmAllZerosV,
/*237560*/                  OPC_MoveParent,
/*237561*/                  OPC_CheckType, MVT::v8i64,
/*237563*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*237565*/                  OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*237568*/                  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), immAllZerosV:{ *:[v8i64] }) - Complexity = 16
                            // Dst: (VINSERTI64x2Zrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR512:{ *:[v32i16] }:$ins))
/*237578*/                /*Scope*/ 33, /*->237612*/
/*237579*/                  OPC_CheckChild1Type, MVT::v16i8,
/*237581*/                  OPC_MoveChild2,
/*237582*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*237585*/                  OPC_CheckType, MVT::iPTR,
/*237587*/                  OPC_MoveParent,
/*237588*/                  OPC_CheckType, MVT::v64i8,
/*237590*/                  OPC_MoveParent,
/*237591*/                  OPC_MoveParent,
/*237592*/                  OPC_MoveChild2,
/*237593*/                  OPC_CheckImmAllZerosV,
/*237594*/                  OPC_MoveParent,
/*237595*/                  OPC_CheckType, MVT::v8i64,
/*237597*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*237599*/                  OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*237602*/                  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), immAllZerosV:{ *:[v8i64] }) - Complexity = 16
                            // Dst: (VINSERTI64x2Zrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR512:{ *:[v64i8] }:$ins))
/*237612*/                /*Scope*/ 33, /*->237646*/
/*237613*/                  OPC_CheckChild1Type, MVT::v8i32,
/*237615*/                  OPC_MoveChild2,
/*237616*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*237619*/                  OPC_CheckType, MVT::iPTR,
/*237621*/                  OPC_MoveParent,
/*237622*/                  OPC_CheckType, MVT::v16i32,
/*237624*/                  OPC_MoveParent,
/*237625*/                  OPC_MoveParent,
/*237626*/                  OPC_MoveChild2,
/*237627*/                  OPC_CheckImmAllZerosV,
/*237628*/                  OPC_MoveParent,
/*237629*/                  OPC_CheckType, MVT::v8i64,
/*237631*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*237633*/                  OPC_EmitNodeXForm, 16, 1, // INSERT_get_vinsert256_imm
/*237636*/                  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), immAllZerosV:{ *:[v8i64] }) - Complexity = 16
                            // Dst: (VINSERTI64x4Zrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } VR512:{ *:[v16i32] }:$ins))
/*237646*/                /*Scope*/ 33, /*->237680*/
/*237647*/                  OPC_CheckChild1Type, MVT::v16i16,
/*237649*/                  OPC_MoveChild2,
/*237650*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*237653*/                  OPC_CheckType, MVT::iPTR,
/*237655*/                  OPC_MoveParent,
/*237656*/                  OPC_CheckType, MVT::v32i16,
/*237658*/                  OPC_MoveParent,
/*237659*/                  OPC_MoveParent,
/*237660*/                  OPC_MoveChild2,
/*237661*/                  OPC_CheckImmAllZerosV,
/*237662*/                  OPC_MoveParent,
/*237663*/                  OPC_CheckType, MVT::v8i64,
/*237665*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*237667*/                  OPC_EmitNodeXForm, 16, 1, // INSERT_get_vinsert256_imm
/*237670*/                  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), immAllZerosV:{ *:[v8i64] }) - Complexity = 16
                            // Dst: (VINSERTI64x4Zrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } VR512:{ *:[v32i16] }:$ins))
/*237680*/                /*Scope*/ 33, /*->237714*/
/*237681*/                  OPC_CheckChild1Type, MVT::v32i8,
/*237683*/                  OPC_MoveChild2,
/*237684*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*237687*/                  OPC_CheckType, MVT::iPTR,
/*237689*/                  OPC_MoveParent,
/*237690*/                  OPC_CheckType, MVT::v64i8,
/*237692*/                  OPC_MoveParent,
/*237693*/                  OPC_MoveParent,
/*237694*/                  OPC_MoveChild2,
/*237695*/                  OPC_CheckImmAllZerosV,
/*237696*/                  OPC_MoveParent,
/*237697*/                  OPC_CheckType, MVT::v8i64,
/*237699*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*237701*/                  OPC_EmitNodeXForm, 16, 1, // INSERT_get_vinsert256_imm
/*237704*/                  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), immAllZerosV:{ *:[v8i64] }) - Complexity = 16
                            // Dst: (VINSERTI64x4Zrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } VR512:{ *:[v64i8] }:$ins))
/*237714*/                0, /*End of Scope*/
/*237715*/              0, // EndSwitchOpcode
/*237716*/            /*Scope*/ 70, /*->237787*/
/*237717*/              OPC_MoveChild0,
/*237718*/              OPC_SwitchOpcode /*2 cases */, 29, TARGET_VAL(X86ISD::SHUF128),// ->237751
/*237722*/                OPC_RecordChild0, // #1 = $src1
/*237723*/                OPC_RecordChild1, // #2 = $src2
/*237724*/                OPC_RecordChild2, // #3 = $src3
/*237725*/                OPC_MoveChild2,
/*237726*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*237729*/                OPC_MoveParent,
/*237730*/                OPC_CheckType, MVT::v4i64,
/*237732*/                OPC_MoveParent,
/*237733*/                OPC_MoveParent,
/*237734*/                OPC_MoveChild2,
/*237735*/                OPC_CheckImmAllZerosV,
/*237736*/                OPC_MoveParent,
/*237737*/                OPC_CheckType, MVT::v8i32,
/*237739*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*237741*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI32X4Z256rrikz), 0,
                              MVT::v8i32, 4/*#Ops*/, 0, 1, 2, 3, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (X86Shuf128:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (timm:{ *:[i8] }):$src3)), immAllZerosV:{ *:[v8i32] }) - Complexity = 16
                          // Dst: (VSHUFI32X4Z256rrikz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (timm:{ *:[i8] }):$src3)
/*237751*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VALIGN),// ->237786
/*237754*/                OPC_RecordChild0, // #1 = $src1
/*237755*/                OPC_RecordChild1, // #2 = $src2
/*237756*/                OPC_RecordChild2, // #3 = $src3
/*237757*/                OPC_MoveChild2,
/*237758*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*237761*/                OPC_MoveParent,
/*237762*/                OPC_CheckType, MVT::v4i64,
/*237764*/                OPC_MoveParent,
/*237765*/                OPC_MoveParent,
/*237766*/                OPC_MoveChild2,
/*237767*/                OPC_CheckImmAllZerosV,
/*237768*/                OPC_MoveParent,
/*237769*/                OPC_CheckType, MVT::v8i32,
/*237771*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*237773*/                OPC_EmitNodeXForm, 14, 3, // ValignqImm32XForm
/*237776*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZ256rrikz), 0,
                              MVT::v8i32, 4/*#Ops*/, 0, 1, 2, 4, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (X86VAlign:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (timm:{ *:[i8] }):$src3)), immAllZerosV:{ *:[v8i32] }) - Complexity = 16
                          // Dst: (VALIGNDZ256rrikz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (ValignqImm32XForm:{ *:[i8] } (timm:{ *:[i8] }):$src3))
/*237786*/              0, // EndSwitchOpcode
/*237787*/            0, /*End of Scope*/
/*237788*/          /*SwitchOpcode*/ 40|128,1/*168*/, TARGET_VAL(X86ISD::VSRLI),// ->237960
/*237792*/            OPC_MoveChild0,
/*237793*/            OPC_SwitchOpcode /*2 cases */, 85, TARGET_VAL(ISD::LOAD),// ->237882
/*237797*/              OPC_RecordMemRef,
/*237798*/              OPC_RecordNode, // #1 = 'ld' chained node
/*237799*/              OPC_CheckFoldableChainNode,
/*237800*/              OPC_RecordChild1, // #2 = $src1
/*237801*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*237803*/              OPC_CheckPredicate, 9, // Predicate_load
/*237805*/              OPC_MoveParent,
/*237806*/              OPC_RecordChild1, // #3 = $src2
/*237807*/              OPC_MoveChild1,
/*237808*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*237811*/              OPC_MoveParent,
/*237812*/              OPC_MoveParent,
/*237813*/              OPC_RecordChild2, // #4 = $src0
/*237814*/              OPC_SwitchType /*3 cases */, 20, MVT::v8i32,// ->237837
/*237817*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*237819*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*237822*/                OPC_EmitMergeInputChains1_1,
/*237823*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZ256mik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrli:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                          // Dst: (VPSRLDZ256mik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*237837*/              /*SwitchType*/ 20, MVT::v8i64,// ->237859
/*237839*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*237841*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*237844*/                OPC_EmitMergeInputChains1_1,
/*237845*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrli:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                          // Dst: (VPSRLQZmik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*237859*/              /*SwitchType*/ 20, MVT::v8i16,// ->237881
/*237861*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*237863*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*237866*/                OPC_EmitMergeInputChains1_1,
/*237867*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLWZ128mik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrli:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), VR128X:{ *:[v8i16] }:$src0) - Complexity = 31
                          // Dst: (VPSRLWZ128mik:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*237881*/              0, // EndSwitchType
/*237882*/            /*SwitchOpcode*/ 74, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->237959
/*237885*/              OPC_RecordMemRef,
/*237886*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*237887*/              OPC_CheckFoldableChainNode,
/*237888*/              OPC_RecordChild1, // #2 = $src1
/*237889*/              OPC_Scope, 33, /*->237924*/ // 2 children in Scope
/*237891*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*237893*/                OPC_MoveParent,
/*237894*/                OPC_RecordChild1, // #3 = $src2
/*237895*/                OPC_MoveChild1,
/*237896*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*237899*/                OPC_MoveParent,
/*237900*/                OPC_MoveParent,
/*237901*/                OPC_RecordChild2, // #4 = $src0
/*237902*/                OPC_CheckType, MVT::v8i32,
/*237904*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*237906*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*237909*/                OPC_EmitMergeInputChains1_1,
/*237910*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZ256mbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrli:{ *:[v8i32] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src2), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                          // Dst: (VPSRLDZ256mbik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*237924*/              /*Scope*/ 33, /*->237958*/
/*237925*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*237927*/                OPC_MoveParent,
/*237928*/                OPC_RecordChild1, // #3 = $src2
/*237929*/                OPC_MoveChild1,
/*237930*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*237933*/                OPC_MoveParent,
/*237934*/                OPC_MoveParent,
/*237935*/                OPC_RecordChild2, // #4 = $src0
/*237936*/                OPC_CheckType, MVT::v8i64,
/*237938*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*237940*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*237943*/                OPC_EmitMergeInputChains1_1,
/*237944*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrli:{ *:[v8i64] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src2), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                          // Dst: (VPSRLQZmbik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*237958*/              0, /*End of Scope*/
/*237959*/            0, // EndSwitchOpcode
/*237960*/          /*SwitchOpcode*/ 40|128,1/*168*/, TARGET_VAL(X86ISD::VSHLI),// ->238132
/*237964*/            OPC_MoveChild0,
/*237965*/            OPC_SwitchOpcode /*2 cases */, 85, TARGET_VAL(ISD::LOAD),// ->238054
/*237969*/              OPC_RecordMemRef,
/*237970*/              OPC_RecordNode, // #1 = 'ld' chained node
/*237971*/              OPC_CheckFoldableChainNode,
/*237972*/              OPC_RecordChild1, // #2 = $src1
/*237973*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*237975*/              OPC_CheckPredicate, 9, // Predicate_load
/*237977*/              OPC_MoveParent,
/*237978*/              OPC_RecordChild1, // #3 = $src2
/*237979*/              OPC_MoveChild1,
/*237980*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*237983*/              OPC_MoveParent,
/*237984*/              OPC_MoveParent,
/*237985*/              OPC_RecordChild2, // #4 = $src0
/*237986*/              OPC_SwitchType /*3 cases */, 20, MVT::v8i32,// ->238009
/*237989*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*237991*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*237994*/                OPC_EmitMergeInputChains1_1,
/*237995*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZ256mik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vshli:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                          // Dst: (VPSLLDZ256mik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*238009*/              /*SwitchType*/ 20, MVT::v8i64,// ->238031
/*238011*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*238013*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*238016*/                OPC_EmitMergeInputChains1_1,
/*238017*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vshli:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                          // Dst: (VPSLLQZmik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*238031*/              /*SwitchType*/ 20, MVT::v8i16,// ->238053
/*238033*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*238035*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*238038*/                OPC_EmitMergeInputChains1_1,
/*238039*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLWZ128mik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vshli:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), VR128X:{ *:[v8i16] }:$src0) - Complexity = 31
                          // Dst: (VPSLLWZ128mik:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*238053*/              0, // EndSwitchType
/*238054*/            /*SwitchOpcode*/ 74, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->238131
/*238057*/              OPC_RecordMemRef,
/*238058*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*238059*/              OPC_CheckFoldableChainNode,
/*238060*/              OPC_RecordChild1, // #2 = $src1
/*238061*/              OPC_Scope, 33, /*->238096*/ // 2 children in Scope
/*238063*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*238065*/                OPC_MoveParent,
/*238066*/                OPC_RecordChild1, // #3 = $src2
/*238067*/                OPC_MoveChild1,
/*238068*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*238071*/                OPC_MoveParent,
/*238072*/                OPC_MoveParent,
/*238073*/                OPC_RecordChild2, // #4 = $src0
/*238074*/                OPC_CheckType, MVT::v8i32,
/*238076*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*238078*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*238081*/                OPC_EmitMergeInputChains1_1,
/*238082*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZ256mbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vshli:{ *:[v8i32] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src2), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                          // Dst: (VPSLLDZ256mbik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*238096*/              /*Scope*/ 33, /*->238130*/
/*238097*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*238099*/                OPC_MoveParent,
/*238100*/                OPC_RecordChild1, // #3 = $src2
/*238101*/                OPC_MoveChild1,
/*238102*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*238105*/                OPC_MoveParent,
/*238106*/                OPC_MoveParent,
/*238107*/                OPC_RecordChild2, // #4 = $src0
/*238108*/                OPC_CheckType, MVT::v8i64,
/*238110*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*238112*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*238115*/                OPC_EmitMergeInputChains1_1,
/*238116*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vshli:{ *:[v8i64] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src2), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                          // Dst: (VPSLLQZmbik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*238130*/              0, /*End of Scope*/
/*238131*/            0, // EndSwitchOpcode
/*238132*/          /*SwitchOpcode*/ 40|128,1/*168*/, TARGET_VAL(X86ISD::VSRAI),// ->238304
/*238136*/            OPC_MoveChild0,
/*238137*/            OPC_SwitchOpcode /*2 cases */, 85, TARGET_VAL(ISD::LOAD),// ->238226
/*238141*/              OPC_RecordMemRef,
/*238142*/              OPC_RecordNode, // #1 = 'ld' chained node
/*238143*/              OPC_CheckFoldableChainNode,
/*238144*/              OPC_RecordChild1, // #2 = $src1
/*238145*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*238147*/              OPC_CheckPredicate, 9, // Predicate_load
/*238149*/              OPC_MoveParent,
/*238150*/              OPC_RecordChild1, // #3 = $src2
/*238151*/              OPC_MoveChild1,
/*238152*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*238155*/              OPC_MoveParent,
/*238156*/              OPC_MoveParent,
/*238157*/              OPC_RecordChild2, // #4 = $src0
/*238158*/              OPC_SwitchType /*3 cases */, 20, MVT::v8i32,// ->238181
/*238161*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*238163*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*238166*/                OPC_EmitMergeInputChains1_1,
/*238167*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZ256mik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrai:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                          // Dst: (VPSRADZ256mik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*238181*/              /*SwitchType*/ 20, MVT::v8i64,// ->238203
/*238183*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*238185*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*238188*/                OPC_EmitMergeInputChains1_1,
/*238189*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrai:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                          // Dst: (VPSRAQZmik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*238203*/              /*SwitchType*/ 20, MVT::v8i16,// ->238225
/*238205*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*238207*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*238210*/                OPC_EmitMergeInputChains1_1,
/*238211*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAWZ128mik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrai:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), VR128X:{ *:[v8i16] }:$src0) - Complexity = 31
                          // Dst: (VPSRAWZ128mik:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*238225*/              0, // EndSwitchType
/*238226*/            /*SwitchOpcode*/ 74, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->238303
/*238229*/              OPC_RecordMemRef,
/*238230*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*238231*/              OPC_CheckFoldableChainNode,
/*238232*/              OPC_RecordChild1, // #2 = $src1
/*238233*/              OPC_Scope, 33, /*->238268*/ // 2 children in Scope
/*238235*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*238237*/                OPC_MoveParent,
/*238238*/                OPC_RecordChild1, // #3 = $src2
/*238239*/                OPC_MoveChild1,
/*238240*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*238243*/                OPC_MoveParent,
/*238244*/                OPC_MoveParent,
/*238245*/                OPC_RecordChild2, // #4 = $src0
/*238246*/                OPC_CheckType, MVT::v8i32,
/*238248*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*238250*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*238253*/                OPC_EmitMergeInputChains1_1,
/*238254*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZ256mbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrai:{ *:[v8i32] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src2), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                          // Dst: (VPSRADZ256mbik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*238268*/              /*Scope*/ 33, /*->238302*/
/*238269*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*238271*/                OPC_MoveParent,
/*238272*/                OPC_RecordChild1, // #3 = $src2
/*238273*/                OPC_MoveChild1,
/*238274*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*238277*/                OPC_MoveParent,
/*238278*/                OPC_MoveParent,
/*238279*/                OPC_RecordChild2, // #4 = $src0
/*238280*/                OPC_CheckType, MVT::v8i64,
/*238282*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*238284*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*238287*/                OPC_EmitMergeInputChains1_1,
/*238288*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrai:{ *:[v8i64] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src2), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                          // Dst: (VPSRAQZmbik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*238302*/              0, /*End of Scope*/
/*238303*/            0, // EndSwitchOpcode
/*238304*/          /*SwitchOpcode*/ 18|128,1/*146*/, TARGET_VAL(X86ISD::VROTRI),// ->238454
/*238308*/            OPC_MoveChild0,
/*238309*/            OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->238376
/*238313*/              OPC_RecordMemRef,
/*238314*/              OPC_RecordNode, // #1 = 'ld' chained node
/*238315*/              OPC_CheckFoldableChainNode,
/*238316*/              OPC_RecordChild1, // #2 = $src1
/*238317*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*238319*/              OPC_CheckPredicate, 9, // Predicate_load
/*238321*/              OPC_MoveParent,
/*238322*/              OPC_RecordChild1, // #3 = $src2
/*238323*/              OPC_MoveChild1,
/*238324*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*238327*/              OPC_MoveParent,
/*238328*/              OPC_MoveParent,
/*238329*/              OPC_RecordChild2, // #4 = $src0
/*238330*/              OPC_SwitchType /*2 cases */, 20, MVT::v8i32,// ->238353
/*238333*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*238335*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*238338*/                OPC_EmitMergeInputChains1_1,
/*238339*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORDZ256mik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vrotri:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                          // Dst: (VPRORDZ256mik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*238353*/              /*SwitchType*/ 20, MVT::v8i64,// ->238375
/*238355*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*238357*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*238360*/                OPC_EmitMergeInputChains1_1,
/*238361*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORQZmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vrotri:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                          // Dst: (VPRORQZmik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*238375*/              0, // EndSwitchType
/*238376*/            /*SwitchOpcode*/ 74, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->238453
/*238379*/              OPC_RecordMemRef,
/*238380*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*238381*/              OPC_CheckFoldableChainNode,
/*238382*/              OPC_RecordChild1, // #2 = $src1
/*238383*/              OPC_Scope, 33, /*->238418*/ // 2 children in Scope
/*238385*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*238387*/                OPC_MoveParent,
/*238388*/                OPC_RecordChild1, // #3 = $src2
/*238389*/                OPC_MoveChild1,
/*238390*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*238393*/                OPC_MoveParent,
/*238394*/                OPC_MoveParent,
/*238395*/                OPC_RecordChild2, // #4 = $src0
/*238396*/                OPC_CheckType, MVT::v8i32,
/*238398*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*238400*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*238403*/                OPC_EmitMergeInputChains1_1,
/*238404*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORDZ256mbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vrotri:{ *:[v8i32] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src2), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                          // Dst: (VPRORDZ256mbik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*238418*/              /*Scope*/ 33, /*->238452*/
/*238419*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*238421*/                OPC_MoveParent,
/*238422*/                OPC_RecordChild1, // #3 = $src2
/*238423*/                OPC_MoveChild1,
/*238424*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*238427*/                OPC_MoveParent,
/*238428*/                OPC_MoveParent,
/*238429*/                OPC_RecordChild2, // #4 = $src0
/*238430*/                OPC_CheckType, MVT::v8i64,
/*238432*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*238434*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*238437*/                OPC_EmitMergeInputChains1_1,
/*238438*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORQZmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vrotri:{ *:[v8i64] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src2), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                          // Dst: (VPRORQZmbik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*238452*/              0, /*End of Scope*/
/*238453*/            0, // EndSwitchOpcode
/*238454*/          /*SwitchOpcode*/ 18|128,1/*146*/, TARGET_VAL(X86ISD::VROTLI),// ->238604
/*238458*/            OPC_MoveChild0,
/*238459*/            OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->238526
/*238463*/              OPC_RecordMemRef,
/*238464*/              OPC_RecordNode, // #1 = 'ld' chained node
/*238465*/              OPC_CheckFoldableChainNode,
/*238466*/              OPC_RecordChild1, // #2 = $src1
/*238467*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*238469*/              OPC_CheckPredicate, 9, // Predicate_load
/*238471*/              OPC_MoveParent,
/*238472*/              OPC_RecordChild1, // #3 = $src2
/*238473*/              OPC_MoveChild1,
/*238474*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*238477*/              OPC_MoveParent,
/*238478*/              OPC_MoveParent,
/*238479*/              OPC_RecordChild2, // #4 = $src0
/*238480*/              OPC_SwitchType /*2 cases */, 20, MVT::v8i32,// ->238503
/*238483*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*238485*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*238488*/                OPC_EmitMergeInputChains1_1,
/*238489*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLDZ256mik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vrotli:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                          // Dst: (VPROLDZ256mik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*238503*/              /*SwitchType*/ 20, MVT::v8i64,// ->238525
/*238505*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*238507*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*238510*/                OPC_EmitMergeInputChains1_1,
/*238511*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLQZmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vrotli:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                          // Dst: (VPROLQZmik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*238525*/              0, // EndSwitchType
/*238526*/            /*SwitchOpcode*/ 74, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->238603
/*238529*/              OPC_RecordMemRef,
/*238530*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*238531*/              OPC_CheckFoldableChainNode,
/*238532*/              OPC_RecordChild1, // #2 = $src1
/*238533*/              OPC_Scope, 33, /*->238568*/ // 2 children in Scope
/*238535*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*238537*/                OPC_MoveParent,
/*238538*/                OPC_RecordChild1, // #3 = $src2
/*238539*/                OPC_MoveChild1,
/*238540*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*238543*/                OPC_MoveParent,
/*238544*/                OPC_MoveParent,
/*238545*/                OPC_RecordChild2, // #4 = $src0
/*238546*/                OPC_CheckType, MVT::v8i32,
/*238548*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*238550*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*238553*/                OPC_EmitMergeInputChains1_1,
/*238554*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLDZ256mbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vrotli:{ *:[v8i32] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src2), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                          // Dst: (VPROLDZ256mbik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*238568*/              /*Scope*/ 33, /*->238602*/
/*238569*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*238571*/                OPC_MoveParent,
/*238572*/                OPC_RecordChild1, // #3 = $src2
/*238573*/                OPC_MoveChild1,
/*238574*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*238577*/                OPC_MoveParent,
/*238578*/                OPC_MoveParent,
/*238579*/                OPC_RecordChild2, // #4 = $src0
/*238580*/                OPC_CheckType, MVT::v8i64,
/*238582*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*238584*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*238587*/                OPC_EmitMergeInputChains1_1,
/*238588*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLQZmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vrotli:{ *:[v8i64] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src2), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                          // Dst: (VPROLQZmbik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*238602*/              0, /*End of Scope*/
/*238603*/            0, // EndSwitchOpcode
/*238604*/          /*SwitchOpcode*/ 85, TARGET_VAL(X86ISD::VPERMI),// ->238692
/*238607*/            OPC_MoveChild0,
/*238608*/            OPC_SwitchOpcode /*2 cases */, 39, TARGET_VAL(ISD::LOAD),// ->238651
/*238612*/              OPC_RecordMemRef,
/*238613*/              OPC_RecordNode, // #1 = 'ld' chained node
/*238614*/              OPC_CheckFoldableChainNode,
/*238615*/              OPC_RecordChild1, // #2 = $src1
/*238616*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*238618*/              OPC_CheckPredicate, 9, // Predicate_load
/*238620*/              OPC_MoveParent,
/*238621*/              OPC_RecordChild1, // #3 = $src2
/*238622*/              OPC_MoveChild1,
/*238623*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*238626*/              OPC_MoveParent,
/*238627*/              OPC_MoveParent,
/*238628*/              OPC_RecordChild2, // #4 = $src0
/*238629*/              OPC_CheckType, MVT::v8i64,
/*238631*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*238633*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*238636*/              OPC_EmitMergeInputChains1_1,
/*238637*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMQZmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermi:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                        // Dst: (VPERMQZmik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*238651*/            /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->238691
/*238654*/              OPC_RecordMemRef,
/*238655*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*238656*/              OPC_CheckFoldableChainNode,
/*238657*/              OPC_RecordChild1, // #2 = $src1
/*238658*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*238660*/              OPC_MoveParent,
/*238661*/              OPC_RecordChild1, // #3 = $src2
/*238662*/              OPC_MoveChild1,
/*238663*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*238666*/              OPC_MoveParent,
/*238667*/              OPC_MoveParent,
/*238668*/              OPC_RecordChild2, // #4 = $src0
/*238669*/              OPC_CheckType, MVT::v8i64,
/*238671*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*238673*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*238676*/              OPC_EmitMergeInputChains1_1,
/*238677*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMQZmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermi:{ *:[v8i64] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src2), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                        // Dst: (VPERMQZmbik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*238691*/            0, // EndSwitchOpcode
/*238692*/          /*SwitchOpcode*/ 85, TARGET_VAL(X86ISD::PSHUFD),// ->238780
/*238695*/            OPC_MoveChild0,
/*238696*/            OPC_SwitchOpcode /*2 cases */, 39, TARGET_VAL(ISD::LOAD),// ->238739
/*238700*/              OPC_RecordMemRef,
/*238701*/              OPC_RecordNode, // #1 = 'ld' chained node
/*238702*/              OPC_CheckFoldableChainNode,
/*238703*/              OPC_RecordChild1, // #2 = $src1
/*238704*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*238706*/              OPC_CheckPredicate, 9, // Predicate_load
/*238708*/              OPC_MoveParent,
/*238709*/              OPC_RecordChild1, // #3 = $src2
/*238710*/              OPC_MoveChild1,
/*238711*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*238714*/              OPC_MoveParent,
/*238715*/              OPC_MoveParent,
/*238716*/              OPC_RecordChild2, // #4 = $src0
/*238717*/              OPC_CheckType, MVT::v8i32,
/*238719*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*238721*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*238724*/              OPC_EmitMergeInputChains1_1,
/*238725*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFDZ256mik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86PShufd:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                        // Dst: (VPSHUFDZ256mik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*238739*/            /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->238779
/*238742*/              OPC_RecordMemRef,
/*238743*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*238744*/              OPC_CheckFoldableChainNode,
/*238745*/              OPC_RecordChild1, // #2 = $src1
/*238746*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*238748*/              OPC_MoveParent,
/*238749*/              OPC_RecordChild1, // #3 = $src2
/*238750*/              OPC_MoveChild1,
/*238751*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*238754*/              OPC_MoveParent,
/*238755*/              OPC_MoveParent,
/*238756*/              OPC_RecordChild2, // #4 = $src0
/*238757*/              OPC_CheckType, MVT::v8i32,
/*238759*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*238761*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*238764*/              OPC_EmitMergeInputChains1_1,
/*238765*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFDZ256mbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86PShufd:{ *:[v8i32] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src2), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                        // Dst: (VPSHUFDZ256mbik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*238779*/            0, // EndSwitchOpcode
/*238780*/          /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::PSHUFHW),// ->238826
/*238783*/            OPC_MoveChild0,
/*238784*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*238787*/            OPC_RecordMemRef,
/*238788*/            OPC_RecordNode, // #1 = 'ld' chained node
/*238789*/            OPC_CheckFoldableChainNode,
/*238790*/            OPC_RecordChild1, // #2 = $src1
/*238791*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*238793*/            OPC_CheckPredicate, 9, // Predicate_load
/*238795*/            OPC_MoveParent,
/*238796*/            OPC_RecordChild1, // #3 = $src2
/*238797*/            OPC_MoveChild1,
/*238798*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*238801*/            OPC_MoveParent,
/*238802*/            OPC_MoveParent,
/*238803*/            OPC_RecordChild2, // #4 = $src0
/*238804*/            OPC_CheckType, MVT::v8i16,
/*238806*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*238808*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*238811*/            OPC_EmitMergeInputChains1_1,
/*238812*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFHWZ128mik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86PShufhw:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), VR128X:{ *:[v8i16] }:$src0) - Complexity = 31
                      // Dst: (VPSHUFHWZ128mik:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*238826*/          /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::PSHUFLW),// ->238872
/*238829*/            OPC_MoveChild0,
/*238830*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*238833*/            OPC_RecordMemRef,
/*238834*/            OPC_RecordNode, // #1 = 'ld' chained node
/*238835*/            OPC_CheckFoldableChainNode,
/*238836*/            OPC_RecordChild1, // #2 = $src1
/*238837*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*238839*/            OPC_CheckPredicate, 9, // Predicate_load
/*238841*/            OPC_MoveParent,
/*238842*/            OPC_RecordChild1, // #3 = $src2
/*238843*/            OPC_MoveChild1,
/*238844*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*238847*/            OPC_MoveParent,
/*238848*/            OPC_MoveParent,
/*238849*/            OPC_RecordChild2, // #4 = $src0
/*238850*/            OPC_CheckType, MVT::v8i16,
/*238852*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*238854*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*238857*/            OPC_EmitMergeInputChains1_1,
/*238858*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFLWZ128mik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86PShuflw:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), VR128X:{ *:[v8i16] }:$src0) - Complexity = 31
                      // Dst: (VPSHUFLWZ128mik:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*238872*/          /*SwitchOpcode*/ 88, TARGET_VAL(X86ISD::SHUF128),// ->238963
/*238875*/            OPC_RecordChild0, // #1 = $src1
/*238876*/            OPC_MoveChild1,
/*238877*/            OPC_SwitchOpcode /*2 cases */, 40, TARGET_VAL(ISD::LOAD),// ->238921
/*238881*/              OPC_RecordMemRef,
/*238882*/              OPC_RecordNode, // #2 = 'ld' chained node
/*238883*/              OPC_CheckFoldableChainNode,
/*238884*/              OPC_RecordChild1, // #3 = $src2
/*238885*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*238887*/              OPC_CheckPredicate, 9, // Predicate_load
/*238889*/              OPC_MoveParent,
/*238890*/              OPC_RecordChild2, // #4 = $src3
/*238891*/              OPC_MoveChild2,
/*238892*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*238895*/              OPC_MoveParent,
/*238896*/              OPC_MoveParent,
/*238897*/              OPC_RecordChild2, // #5 = $src0
/*238898*/              OPC_CheckType, MVT::v8i64,
/*238900*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*238902*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*238905*/              OPC_EmitMergeInputChains1_2,
/*238906*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI64X2Zrmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86Shuf128:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                        // Dst: (VSHUFI64X2Zrmik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*238921*/            /*SwitchOpcode*/ 38, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->238962
/*238924*/              OPC_RecordMemRef,
/*238925*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*238926*/              OPC_CheckFoldableChainNode,
/*238927*/              OPC_RecordChild1, // #3 = $src2
/*238928*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*238930*/              OPC_MoveParent,
/*238931*/              OPC_RecordChild2, // #4 = $src3
/*238932*/              OPC_MoveChild2,
/*238933*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*238936*/              OPC_MoveParent,
/*238937*/              OPC_MoveParent,
/*238938*/              OPC_RecordChild2, // #5 = $src0
/*238939*/              OPC_CheckType, MVT::v8i64,
/*238941*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*238943*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*238946*/              OPC_EmitMergeInputChains1_2,
/*238947*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI64X2Zrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86Shuf128:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src3), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                        // Dst: (VSHUFI64X2Zrmbik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*238962*/            0, // EndSwitchOpcode
/*238963*/          /*SwitchOpcode*/ 23|128,1/*151*/, TARGET_VAL(X86ISD::VALIGN),// ->239118
/*238967*/            OPC_RecordChild0, // #1 = $src1
/*238968*/            OPC_MoveChild1,
/*238969*/            OPC_SwitchOpcode /*2 cases */, 65, TARGET_VAL(ISD::LOAD),// ->239038
/*238973*/              OPC_RecordMemRef,
/*238974*/              OPC_RecordNode, // #2 = 'ld' chained node
/*238975*/              OPC_CheckFoldableChainNode,
/*238976*/              OPC_RecordChild1, // #3 = $src2
/*238977*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*238979*/              OPC_CheckPredicate, 9, // Predicate_load
/*238981*/              OPC_MoveParent,
/*238982*/              OPC_RecordChild2, // #4 = $src3
/*238983*/              OPC_MoveChild2,
/*238984*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*238987*/              OPC_MoveParent,
/*238988*/              OPC_MoveParent,
/*238989*/              OPC_RecordChild2, // #5 = $src0
/*238990*/              OPC_SwitchType /*2 cases */, 21, MVT::v8i32,// ->239014
/*238993*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*238995*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*238998*/                OPC_EmitMergeInputChains1_2,
/*238999*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VAlign:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                          // Dst: (VALIGNDZ256rmik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*239014*/              /*SwitchType*/ 21, MVT::v8i64,// ->239037
/*239016*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*239018*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*239021*/                OPC_EmitMergeInputChains1_2,
/*239022*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNQZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VAlign:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                          // Dst: (VALIGNQZrmik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*239037*/              0, // EndSwitchType
/*239038*/            /*SwitchOpcode*/ 76, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->239117
/*239041*/              OPC_RecordMemRef,
/*239042*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*239043*/              OPC_CheckFoldableChainNode,
/*239044*/              OPC_RecordChild1, // #3 = $src2
/*239045*/              OPC_Scope, 34, /*->239081*/ // 2 children in Scope
/*239047*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*239049*/                OPC_MoveParent,
/*239050*/                OPC_RecordChild2, // #4 = $src3
/*239051*/                OPC_MoveChild2,
/*239052*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*239055*/                OPC_MoveParent,
/*239056*/                OPC_MoveParent,
/*239057*/                OPC_RecordChild2, // #5 = $src0
/*239058*/                OPC_CheckType, MVT::v8i32,
/*239060*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*239062*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*239065*/                OPC_EmitMergeInputChains1_2,
/*239066*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VAlign:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src3), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                          // Dst: (VALIGNDZ256rmbik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*239081*/              /*Scope*/ 34, /*->239116*/
/*239082*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*239084*/                OPC_MoveParent,
/*239085*/                OPC_RecordChild2, // #4 = $src3
/*239086*/                OPC_MoveChild2,
/*239087*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*239090*/                OPC_MoveParent,
/*239091*/                OPC_MoveParent,
/*239092*/                OPC_RecordChild2, // #5 = $src0
/*239093*/                OPC_CheckType, MVT::v8i64,
/*239095*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*239097*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*239100*/                OPC_EmitMergeInputChains1_2,
/*239101*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNQZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VAlign:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src3), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                          // Dst: (VALIGNQZrmbik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*239116*/              0, /*End of Scope*/
/*239117*/            0, // EndSwitchOpcode
/*239118*/          /*SwitchOpcode*/ 45, TARGET_VAL(X86ISD::DBPSADBW),// ->239166
/*239121*/            OPC_RecordChild0, // #1 = $src1
/*239122*/            OPC_MoveChild1,
/*239123*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*239126*/            OPC_RecordMemRef,
/*239127*/            OPC_RecordNode, // #2 = 'ld' chained node
/*239128*/            OPC_CheckFoldableChainNode,
/*239129*/            OPC_RecordChild1, // #3 = $src2
/*239130*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*239132*/            OPC_CheckPredicate, 9, // Predicate_load
/*239134*/            OPC_MoveParent,
/*239135*/            OPC_RecordChild2, // #4 = $src3
/*239136*/            OPC_MoveChild2,
/*239137*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*239140*/            OPC_MoveParent,
/*239141*/            OPC_MoveParent,
/*239142*/            OPC_RecordChild2, // #5 = $src0
/*239143*/            OPC_CheckType, MVT::v8i16,
/*239145*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*239147*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*239150*/            OPC_EmitMergeInputChains1_2,
/*239151*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDBPSADBWZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86dbpsadbw:{ *:[v8i16] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), VR128X:{ *:[v8i16] }:$src0) - Complexity = 31
                      // Dst: (VDBPSADBWZ128rmik:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*239166*/          /*SwitchOpcode*/ 64|128,9/*1216*/, TARGET_VAL(X86ISD::VPTERNLOG),// ->240386
/*239170*/            OPC_Scope, 20|128,1/*148*/, /*->239321*/ // 16 children in Scope
/*239173*/              OPC_RecordChild0, // #1 = $src1
/*239174*/              OPC_Scope, 94, /*->239270*/ // 2 children in Scope
/*239176*/                OPC_RecordChild1, // #2 = $src2
/*239177*/                OPC_MoveChild2,
/*239178*/                OPC_SwitchOpcode /*2 cases */, 43, TARGET_VAL(ISD::LOAD),// ->239225
/*239182*/                  OPC_RecordMemRef,
/*239183*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*239184*/                  OPC_CheckFoldableChainNode,
/*239185*/                  OPC_RecordChild1, // #4 = $src3
/*239186*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*239188*/                  OPC_CheckPredicate, 9, // Predicate_load
/*239190*/                  OPC_MoveParent,
/*239191*/                  OPC_RecordChild3, // #5 = $src4
/*239192*/                  OPC_MoveChild3,
/*239193*/                  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*239196*/                  OPC_MoveParent,
/*239197*/                  OPC_MoveParent,
/*239198*/                  OPC_CheckChild2Same, 1,
/*239200*/                  OPC_CheckType, MVT::v8i32,
/*239202*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*239204*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*239207*/                  OPC_EmitMergeInputChains, 1, 3, 
/*239210*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 5, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src4), VR256X:{ *:[v8i32] }:$src1) - Complexity = 31
                            // Dst: (VPTERNLOGDZ256rmik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i8] }):$src4)
/*239225*/                /*SwitchOpcode*/ 41, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->239269
/*239228*/                  OPC_RecordMemRef,
/*239229*/                  OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*239230*/                  OPC_CheckFoldableChainNode,
/*239231*/                  OPC_RecordChild1, // #4 = $src3
/*239232*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*239234*/                  OPC_MoveParent,
/*239235*/                  OPC_RecordChild3, // #5 = $src4
/*239236*/                  OPC_MoveChild3,
/*239237*/                  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*239240*/                  OPC_MoveParent,
/*239241*/                  OPC_MoveParent,
/*239242*/                  OPC_CheckChild2Same, 1,
/*239244*/                  OPC_CheckType, MVT::v8i32,
/*239246*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*239248*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*239251*/                  OPC_EmitMergeInputChains, 1, 3, 
/*239254*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 5, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src4), VR256X:{ *:[v8i32] }:$src1) - Complexity = 31
                            // Dst: (VPTERNLOGDZ256rmbik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i8] }):$src4)
/*239269*/                0, // EndSwitchOpcode
/*239270*/              /*Scope*/ 49, /*->239320*/
/*239271*/                OPC_MoveChild1,
/*239272*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*239275*/                OPC_RecordMemRef,
/*239276*/                OPC_RecordNode, // #2 = 'ld' chained node
/*239277*/                OPC_CheckFoldableChainNode,
/*239278*/                OPC_RecordChild1, // #3 = $src3
/*239279*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*239281*/                OPC_CheckPredicate, 9, // Predicate_load
/*239283*/                OPC_MoveParent,
/*239284*/                OPC_RecordChild2, // #4 = $src2
/*239285*/                OPC_RecordChild3, // #5 = $src4
/*239286*/                OPC_MoveChild3,
/*239287*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*239290*/                OPC_MoveParent,
/*239291*/                OPC_MoveParent,
/*239292*/                OPC_CheckChild2Same, 1,
/*239294*/                OPC_CheckType, MVT::v8i32,
/*239296*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*239298*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*239301*/                OPC_EmitMergeInputChains1_2,
/*239302*/                OPC_EmitNodeXForm, 20, 5, // VPTERNLOG132_imm8
/*239305*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 9/*#Ops*/, 1, 0, 4, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8i32] }:$src2, (timm:{ *:[i8] }):$src4), VR256X:{ *:[v8i32] }:$src1) - Complexity = 31
                          // Dst: (VPTERNLOGDZ256rmik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*239320*/              0, /*End of Scope*/
/*239321*/            /*Scope*/ 50, /*->239372*/
/*239322*/              OPC_MoveChild0,
/*239323*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*239326*/              OPC_RecordMemRef,
/*239327*/              OPC_RecordNode, // #1 = 'ld' chained node
/*239328*/              OPC_CheckFoldableChainNode,
/*239329*/              OPC_RecordChild1, // #2 = $src3
/*239330*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*239332*/              OPC_CheckPredicate, 9, // Predicate_load
/*239334*/              OPC_MoveParent,
/*239335*/              OPC_RecordChild1, // #3 = $src2
/*239336*/              OPC_RecordChild2, // #4 = $src1
/*239337*/              OPC_RecordChild3, // #5 = $src4
/*239338*/              OPC_MoveChild3,
/*239339*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*239342*/              OPC_MoveParent,
/*239343*/              OPC_MoveParent,
/*239344*/              OPC_CheckChild2Same, 4,
/*239346*/              OPC_CheckType, MVT::v8i32,
/*239348*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*239350*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*239353*/              OPC_EmitMergeInputChains1_1,
/*239354*/              OPC_EmitNodeXForm, 19, 5, // VPTERNLOG321_imm8
/*239357*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 9/*#Ops*/, 4, 0, 3, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src1, (timm:{ *:[i8] }):$src4), VR256X:{ *:[v8i32] }:$src1) - Complexity = 31
                        // Dst: (VPTERNLOGDZ256rmik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*239372*/            /*Scope*/ 105, /*->239478*/
/*239373*/              OPC_RecordChild0, // #1 = $src2
/*239374*/              OPC_Scope, 51, /*->239427*/ // 2 children in Scope
/*239376*/                OPC_RecordChild1, // #2 = $src1
/*239377*/                OPC_MoveChild2,
/*239378*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*239381*/                OPC_RecordMemRef,
/*239382*/                OPC_RecordNode, // #3 = 'ld' chained node
/*239383*/                OPC_CheckFoldableChainNode,
/*239384*/                OPC_RecordChild1, // #4 = $src3
/*239385*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*239387*/                OPC_CheckPredicate, 9, // Predicate_load
/*239389*/                OPC_MoveParent,
/*239390*/                OPC_RecordChild3, // #5 = $src4
/*239391*/                OPC_MoveChild3,
/*239392*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*239395*/                OPC_MoveParent,
/*239396*/                OPC_MoveParent,
/*239397*/                OPC_CheckChild2Same, 2,
/*239399*/                OPC_CheckType, MVT::v8i32,
/*239401*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*239403*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*239406*/                OPC_EmitMergeInputChains, 1, 3, 
/*239409*/                OPC_EmitNodeXForm, 21, 5, // VPTERNLOG213_imm8
/*239412*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 9/*#Ops*/, 2, 0, 1, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src4), VR256X:{ *:[v8i32] }:$src1) - Complexity = 31
                          // Dst: (VPTERNLOGDZ256rmik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG213_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*239427*/              /*Scope*/ 49, /*->239477*/
/*239428*/                OPC_MoveChild1,
/*239429*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*239432*/                OPC_RecordMemRef,
/*239433*/                OPC_RecordNode, // #2 = 'ld' chained node
/*239434*/                OPC_CheckFoldableChainNode,
/*239435*/                OPC_RecordChild1, // #3 = $src3
/*239436*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*239438*/                OPC_CheckPredicate, 9, // Predicate_load
/*239440*/                OPC_MoveParent,
/*239441*/                OPC_RecordChild2, // #4 = $src1
/*239442*/                OPC_RecordChild3, // #5 = $src4
/*239443*/                OPC_MoveChild3,
/*239444*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*239447*/                OPC_MoveParent,
/*239448*/                OPC_MoveParent,
/*239449*/                OPC_CheckChild2Same, 4,
/*239451*/                OPC_CheckType, MVT::v8i32,
/*239453*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*239455*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*239458*/                OPC_EmitMergeInputChains1_2,
/*239459*/                OPC_EmitNodeXForm, 22, 5, // VPTERNLOG231_imm8
/*239462*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 9/*#Ops*/, 4, 0, 1, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src2, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8i32] }:$src1, (timm:{ *:[i8] }):$src4), VR256X:{ *:[v8i32] }:$src1) - Complexity = 31
                          // Dst: (VPTERNLOGDZ256rmik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG231_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*239477*/              0, /*End of Scope*/
/*239478*/            /*Scope*/ 50, /*->239529*/
/*239479*/              OPC_MoveChild0,
/*239480*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*239483*/              OPC_RecordMemRef,
/*239484*/              OPC_RecordNode, // #1 = 'ld' chained node
/*239485*/              OPC_CheckFoldableChainNode,
/*239486*/              OPC_RecordChild1, // #2 = $src3
/*239487*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*239489*/              OPC_CheckPredicate, 9, // Predicate_load
/*239491*/              OPC_MoveParent,
/*239492*/              OPC_RecordChild1, // #3 = $src1
/*239493*/              OPC_RecordChild2, // #4 = $src2
/*239494*/              OPC_RecordChild3, // #5 = $src4
/*239495*/              OPC_MoveChild3,
/*239496*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*239499*/              OPC_MoveParent,
/*239500*/              OPC_MoveParent,
/*239501*/              OPC_CheckChild2Same, 3,
/*239503*/              OPC_CheckType, MVT::v8i32,
/*239505*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*239507*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*239510*/              OPC_EmitMergeInputChains1_1,
/*239511*/              OPC_EmitNodeXForm, 23, 5, // VPTERNLOG312_imm8
/*239514*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 9/*#Ops*/, 3, 0, 4, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (timm:{ *:[i8] }):$src4), VR256X:{ *:[v8i32] }:$src1) - Complexity = 31
                        // Dst: (VPTERNLOGDZ256rmik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG312_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*239529*/            /*Scope*/ 48, /*->239578*/
/*239530*/              OPC_RecordChild0, // #1 = $src1
/*239531*/              OPC_MoveChild1,
/*239532*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*239535*/              OPC_RecordMemRef,
/*239536*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*239537*/              OPC_CheckFoldableChainNode,
/*239538*/              OPC_RecordChild1, // #3 = $src3
/*239539*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*239541*/              OPC_MoveParent,
/*239542*/              OPC_RecordChild2, // #4 = $src2
/*239543*/              OPC_RecordChild3, // #5 = $src4
/*239544*/              OPC_MoveChild3,
/*239545*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*239548*/              OPC_MoveParent,
/*239549*/              OPC_MoveParent,
/*239550*/              OPC_CheckChild2Same, 1,
/*239552*/              OPC_CheckType, MVT::v8i32,
/*239554*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*239556*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*239559*/              OPC_EmitMergeInputChains1_2,
/*239560*/              OPC_EmitNodeXForm, 20, 5, // VPTERNLOG132_imm8
/*239563*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 9/*#Ops*/, 1, 0, 4, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8i32] }:$src2, (timm:{ *:[i8] }):$src4), VR256X:{ *:[v8i32] }:$src1) - Complexity = 31
                        // Dst: (VPTERNLOGDZ256rmbik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*239578*/            /*Scope*/ 48, /*->239627*/
/*239579*/              OPC_MoveChild0,
/*239580*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*239583*/              OPC_RecordMemRef,
/*239584*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*239585*/              OPC_CheckFoldableChainNode,
/*239586*/              OPC_RecordChild1, // #2 = $src3
/*239587*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*239589*/              OPC_MoveParent,
/*239590*/              OPC_RecordChild1, // #3 = $src2
/*239591*/              OPC_RecordChild2, // #4 = $src1
/*239592*/              OPC_RecordChild3, // #5 = $src4
/*239593*/              OPC_MoveChild3,
/*239594*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*239597*/              OPC_MoveParent,
/*239598*/              OPC_MoveParent,
/*239599*/              OPC_CheckChild2Same, 4,
/*239601*/              OPC_CheckType, MVT::v8i32,
/*239603*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*239605*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*239608*/              OPC_EmitMergeInputChains1_1,
/*239609*/              OPC_EmitNodeXForm, 19, 5, // VPTERNLOG321_imm8
/*239612*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 9/*#Ops*/, 4, 0, 3, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i32] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src1, (timm:{ *:[i8] }):$src4), VR256X:{ *:[v8i32] }:$src1) - Complexity = 31
                        // Dst: (VPTERNLOGDZ256rmbik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*239627*/            /*Scope*/ 101, /*->239729*/
/*239628*/              OPC_RecordChild0, // #1 = $src2
/*239629*/              OPC_Scope, 49, /*->239680*/ // 2 children in Scope
/*239631*/                OPC_RecordChild1, // #2 = $src1
/*239632*/                OPC_MoveChild2,
/*239633*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*239636*/                OPC_RecordMemRef,
/*239637*/                OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*239638*/                OPC_CheckFoldableChainNode,
/*239639*/                OPC_RecordChild1, // #4 = $src3
/*239640*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*239642*/                OPC_MoveParent,
/*239643*/                OPC_RecordChild3, // #5 = $src4
/*239644*/                OPC_MoveChild3,
/*239645*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*239648*/                OPC_MoveParent,
/*239649*/                OPC_MoveParent,
/*239650*/                OPC_CheckChild2Same, 2,
/*239652*/                OPC_CheckType, MVT::v8i32,
/*239654*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*239656*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*239659*/                OPC_EmitMergeInputChains, 1, 3, 
/*239662*/                OPC_EmitNodeXForm, 21, 5, // VPTERNLOG213_imm8
/*239665*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 9/*#Ops*/, 2, 0, 1, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src1, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src4), VR256X:{ *:[v8i32] }:$src1) - Complexity = 31
                          // Dst: (VPTERNLOGDZ256rmbik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG213_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*239680*/              /*Scope*/ 47, /*->239728*/
/*239681*/                OPC_MoveChild1,
/*239682*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*239685*/                OPC_RecordMemRef,
/*239686*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*239687*/                OPC_CheckFoldableChainNode,
/*239688*/                OPC_RecordChild1, // #3 = $src3
/*239689*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*239691*/                OPC_MoveParent,
/*239692*/                OPC_RecordChild2, // #4 = $src1
/*239693*/                OPC_RecordChild3, // #5 = $src4
/*239694*/                OPC_MoveChild3,
/*239695*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*239698*/                OPC_MoveParent,
/*239699*/                OPC_MoveParent,
/*239700*/                OPC_CheckChild2Same, 4,
/*239702*/                OPC_CheckType, MVT::v8i32,
/*239704*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*239706*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*239709*/                OPC_EmitMergeInputChains1_2,
/*239710*/                OPC_EmitNodeXForm, 22, 5, // VPTERNLOG231_imm8
/*239713*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 9/*#Ops*/, 4, 0, 1, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src2, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8i32] }:$src1, (timm:{ *:[i8] }):$src4), VR256X:{ *:[v8i32] }:$src1) - Complexity = 31
                          // Dst: (VPTERNLOGDZ256rmbik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG231_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*239728*/              0, /*End of Scope*/
/*239729*/            /*Scope*/ 48, /*->239778*/
/*239730*/              OPC_MoveChild0,
/*239731*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*239734*/              OPC_RecordMemRef,
/*239735*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*239736*/              OPC_CheckFoldableChainNode,
/*239737*/              OPC_RecordChild1, // #2 = $src3
/*239738*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*239740*/              OPC_MoveParent,
/*239741*/              OPC_RecordChild1, // #3 = $src1
/*239742*/              OPC_RecordChild2, // #4 = $src2
/*239743*/              OPC_RecordChild3, // #5 = $src4
/*239744*/              OPC_MoveChild3,
/*239745*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*239748*/              OPC_MoveParent,
/*239749*/              OPC_MoveParent,
/*239750*/              OPC_CheckChild2Same, 3,
/*239752*/              OPC_CheckType, MVT::v8i32,
/*239754*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*239756*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*239759*/              OPC_EmitMergeInputChains1_1,
/*239760*/              OPC_EmitNodeXForm, 23, 5, // VPTERNLOG312_imm8
/*239763*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 9/*#Ops*/, 3, 0, 4, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i32] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (timm:{ *:[i8] }):$src4), VR256X:{ *:[v8i32] }:$src1) - Complexity = 31
                        // Dst: (VPTERNLOGDZ256rmbik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG312_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*239778*/            /*Scope*/ 20|128,1/*148*/, /*->239928*/
/*239780*/              OPC_RecordChild0, // #1 = $src1
/*239781*/              OPC_Scope, 94, /*->239877*/ // 2 children in Scope
/*239783*/                OPC_RecordChild1, // #2 = $src2
/*239784*/                OPC_MoveChild2,
/*239785*/                OPC_SwitchOpcode /*2 cases */, 43, TARGET_VAL(ISD::LOAD),// ->239832
/*239789*/                  OPC_RecordMemRef,
/*239790*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*239791*/                  OPC_CheckFoldableChainNode,
/*239792*/                  OPC_RecordChild1, // #4 = $src3
/*239793*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*239795*/                  OPC_CheckPredicate, 9, // Predicate_load
/*239797*/                  OPC_MoveParent,
/*239798*/                  OPC_RecordChild3, // #5 = $src4
/*239799*/                  OPC_MoveChild3,
/*239800*/                  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*239803*/                  OPC_MoveParent,
/*239804*/                  OPC_MoveParent,
/*239805*/                  OPC_CheckChild2Same, 1,
/*239807*/                  OPC_CheckType, MVT::v8i64,
/*239809*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*239811*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*239814*/                  OPC_EmitMergeInputChains, 1, 3, 
/*239817*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 5, 
                            // 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>>, (timm:{ *:[i8] }):$src4), VR512:{ *:[v8i64] }:$src1) - Complexity = 31
                            // Dst: (VPTERNLOGQZrmik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i8] }):$src4)
/*239832*/                /*SwitchOpcode*/ 41, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->239876
/*239835*/                  OPC_RecordMemRef,
/*239836*/                  OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*239837*/                  OPC_CheckFoldableChainNode,
/*239838*/                  OPC_RecordChild1, // #4 = $src3
/*239839*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*239841*/                  OPC_MoveParent,
/*239842*/                  OPC_RecordChild3, // #5 = $src4
/*239843*/                  OPC_MoveChild3,
/*239844*/                  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*239847*/                  OPC_MoveParent,
/*239848*/                  OPC_MoveParent,
/*239849*/                  OPC_CheckChild2Same, 1,
/*239851*/                  OPC_CheckType, MVT::v8i64,
/*239853*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*239855*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*239858*/                  OPC_EmitMergeInputChains, 1, 3, 
/*239861*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 5, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src4), VR512:{ *:[v8i64] }:$src1) - Complexity = 31
                            // Dst: (VPTERNLOGQZrmbik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i8] }):$src4)
/*239876*/                0, // EndSwitchOpcode
/*239877*/              /*Scope*/ 49, /*->239927*/
/*239878*/                OPC_MoveChild1,
/*239879*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*239882*/                OPC_RecordMemRef,
/*239883*/                OPC_RecordNode, // #2 = 'ld' chained node
/*239884*/                OPC_CheckFoldableChainNode,
/*239885*/                OPC_RecordChild1, // #3 = $src3
/*239886*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*239888*/                OPC_CheckPredicate, 9, // Predicate_load
/*239890*/                OPC_MoveParent,
/*239891*/                OPC_RecordChild2, // #4 = $src2
/*239892*/                OPC_RecordChild3, // #5 = $src4
/*239893*/                OPC_MoveChild3,
/*239894*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*239897*/                OPC_MoveParent,
/*239898*/                OPC_MoveParent,
/*239899*/                OPC_CheckChild2Same, 1,
/*239901*/                OPC_CheckType, MVT::v8i64,
/*239903*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*239905*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*239908*/                OPC_EmitMergeInputChains1_2,
/*239909*/                OPC_EmitNodeXForm, 20, 5, // VPTERNLOG132_imm8
/*239912*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 9/*#Ops*/, 1, 0, 4, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v8i64] }:$src2, (timm:{ *:[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] } (timm:{ *:[i8] }):$src4))
/*239927*/              0, /*End of Scope*/
/*239928*/            /*Scope*/ 50, /*->239979*/
/*239929*/              OPC_MoveChild0,
/*239930*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*239933*/              OPC_RecordMemRef,
/*239934*/              OPC_RecordNode, // #1 = 'ld' chained node
/*239935*/              OPC_CheckFoldableChainNode,
/*239936*/              OPC_RecordChild1, // #2 = $src3
/*239937*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*239939*/              OPC_CheckPredicate, 9, // Predicate_load
/*239941*/              OPC_MoveParent,
/*239942*/              OPC_RecordChild1, // #3 = $src2
/*239943*/              OPC_RecordChild2, // #4 = $src1
/*239944*/              OPC_RecordChild3, // #5 = $src4
/*239945*/              OPC_MoveChild3,
/*239946*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*239949*/              OPC_MoveParent,
/*239950*/              OPC_MoveParent,
/*239951*/              OPC_CheckChild2Same, 4,
/*239953*/              OPC_CheckType, MVT::v8i64,
/*239955*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*239957*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*239960*/              OPC_EmitMergeInputChains1_1,
/*239961*/              OPC_EmitNodeXForm, 19, 5, // VPTERNLOG321_imm8
/*239964*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 9/*#Ops*/, 4, 0, 3, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src1, (timm:{ *:[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] } (timm:{ *:[i8] }):$src4))
/*239979*/            /*Scope*/ 105, /*->240085*/
/*239980*/              OPC_RecordChild0, // #1 = $src2
/*239981*/              OPC_Scope, 51, /*->240034*/ // 2 children in Scope
/*239983*/                OPC_RecordChild1, // #2 = $src1
/*239984*/                OPC_MoveChild2,
/*239985*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*239988*/                OPC_RecordMemRef,
/*239989*/                OPC_RecordNode, // #3 = 'ld' chained node
/*239990*/                OPC_CheckFoldableChainNode,
/*239991*/                OPC_RecordChild1, // #4 = $src3
/*239992*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*239994*/                OPC_CheckPredicate, 9, // Predicate_load
/*239996*/                OPC_MoveParent,
/*239997*/                OPC_RecordChild3, // #5 = $src4
/*239998*/                OPC_MoveChild3,
/*239999*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*240002*/                OPC_MoveParent,
/*240003*/                OPC_MoveParent,
/*240004*/                OPC_CheckChild2Same, 2,
/*240006*/                OPC_CheckType, MVT::v8i64,
/*240008*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*240010*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*240013*/                OPC_EmitMergeInputChains, 1, 3, 
/*240016*/                OPC_EmitNodeXForm, 21, 5, // VPTERNLOG213_imm8
/*240019*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 9/*#Ops*/, 2, 0, 1, 6, 7, 8, 9, 10, 11, 
                          // 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>>, (timm:{ *:[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] } (timm:{ *:[i8] }):$src4))
/*240034*/              /*Scope*/ 49, /*->240084*/
/*240035*/                OPC_MoveChild1,
/*240036*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*240039*/                OPC_RecordMemRef,
/*240040*/                OPC_RecordNode, // #2 = 'ld' chained node
/*240041*/                OPC_CheckFoldableChainNode,
/*240042*/                OPC_RecordChild1, // #3 = $src3
/*240043*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*240045*/                OPC_CheckPredicate, 9, // Predicate_load
/*240047*/                OPC_MoveParent,
/*240048*/                OPC_RecordChild2, // #4 = $src1
/*240049*/                OPC_RecordChild3, // #5 = $src4
/*240050*/                OPC_MoveChild3,
/*240051*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*240054*/                OPC_MoveParent,
/*240055*/                OPC_MoveParent,
/*240056*/                OPC_CheckChild2Same, 4,
/*240058*/                OPC_CheckType, MVT::v8i64,
/*240060*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*240062*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*240065*/                OPC_EmitMergeInputChains1_2,
/*240066*/                OPC_EmitNodeXForm, 22, 5, // VPTERNLOG231_imm8
/*240069*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 9/*#Ops*/, 4, 0, 1, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src2, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v8i64] }:$src1, (timm:{ *:[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] } (timm:{ *:[i8] }):$src4))
/*240084*/              0, /*End of Scope*/
/*240085*/            /*Scope*/ 50, /*->240136*/
/*240086*/              OPC_MoveChild0,
/*240087*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*240090*/              OPC_RecordMemRef,
/*240091*/              OPC_RecordNode, // #1 = 'ld' chained node
/*240092*/              OPC_CheckFoldableChainNode,
/*240093*/              OPC_RecordChild1, // #2 = $src3
/*240094*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*240096*/              OPC_CheckPredicate, 9, // Predicate_load
/*240098*/              OPC_MoveParent,
/*240099*/              OPC_RecordChild1, // #3 = $src1
/*240100*/              OPC_RecordChild2, // #4 = $src2
/*240101*/              OPC_RecordChild3, // #5 = $src4
/*240102*/              OPC_MoveChild3,
/*240103*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*240106*/              OPC_MoveParent,
/*240107*/              OPC_MoveParent,
/*240108*/              OPC_CheckChild2Same, 3,
/*240110*/              OPC_CheckType, MVT::v8i64,
/*240112*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*240114*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*240117*/              OPC_EmitMergeInputChains1_1,
/*240118*/              OPC_EmitNodeXForm, 23, 5, // VPTERNLOG312_imm8
/*240121*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 9/*#Ops*/, 3, 0, 4, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (timm:{ *:[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] } (timm:{ *:[i8] }):$src4))
/*240136*/            /*Scope*/ 48, /*->240185*/
/*240137*/              OPC_RecordChild0, // #1 = $src1
/*240138*/              OPC_MoveChild1,
/*240139*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*240142*/              OPC_RecordMemRef,
/*240143*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*240144*/              OPC_CheckFoldableChainNode,
/*240145*/              OPC_RecordChild1, // #3 = $src3
/*240146*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*240148*/              OPC_MoveParent,
/*240149*/              OPC_RecordChild2, // #4 = $src2
/*240150*/              OPC_RecordChild3, // #5 = $src4
/*240151*/              OPC_MoveChild3,
/*240152*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*240155*/              OPC_MoveParent,
/*240156*/              OPC_MoveParent,
/*240157*/              OPC_CheckChild2Same, 1,
/*240159*/              OPC_CheckType, MVT::v8i64,
/*240161*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*240163*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*240166*/              OPC_EmitMergeInputChains1_2,
/*240167*/              OPC_EmitNodeXForm, 20, 5, // VPTERNLOG132_imm8
/*240170*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 9/*#Ops*/, 1, 0, 4, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8i64] }:$src2, (timm:{ *:[i8] }):$src4), VR512:{ *:[v8i64] }:$src1) - Complexity = 31
                        // Dst: (VPTERNLOGQZrmbik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*240185*/            /*Scope*/ 48, /*->240234*/
/*240186*/              OPC_MoveChild0,
/*240187*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*240190*/              OPC_RecordMemRef,
/*240191*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*240192*/              OPC_CheckFoldableChainNode,
/*240193*/              OPC_RecordChild1, // #2 = $src3
/*240194*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*240196*/              OPC_MoveParent,
/*240197*/              OPC_RecordChild1, // #3 = $src2
/*240198*/              OPC_RecordChild2, // #4 = $src1
/*240199*/              OPC_RecordChild3, // #5 = $src4
/*240200*/              OPC_MoveChild3,
/*240201*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*240204*/              OPC_MoveParent,
/*240205*/              OPC_MoveParent,
/*240206*/              OPC_CheckChild2Same, 4,
/*240208*/              OPC_CheckType, MVT::v8i64,
/*240210*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*240212*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*240215*/              OPC_EmitMergeInputChains1_1,
/*240216*/              OPC_EmitNodeXForm, 19, 5, // VPTERNLOG321_imm8
/*240219*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 9/*#Ops*/, 4, 0, 3, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i64] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src1, (timm:{ *:[i8] }):$src4), VR512:{ *:[v8i64] }:$src1) - Complexity = 31
                        // Dst: (VPTERNLOGQZrmbik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*240234*/            /*Scope*/ 101, /*->240336*/
/*240235*/              OPC_RecordChild0, // #1 = $src2
/*240236*/              OPC_Scope, 49, /*->240287*/ // 2 children in Scope
/*240238*/                OPC_RecordChild1, // #2 = $src1
/*240239*/                OPC_MoveChild2,
/*240240*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*240243*/                OPC_RecordMemRef,
/*240244*/                OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*240245*/                OPC_CheckFoldableChainNode,
/*240246*/                OPC_RecordChild1, // #4 = $src3
/*240247*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*240249*/                OPC_MoveParent,
/*240250*/                OPC_RecordChild3, // #5 = $src4
/*240251*/                OPC_MoveChild3,
/*240252*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*240255*/                OPC_MoveParent,
/*240256*/                OPC_MoveParent,
/*240257*/                OPC_CheckChild2Same, 2,
/*240259*/                OPC_CheckType, MVT::v8i64,
/*240261*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*240263*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*240266*/                OPC_EmitMergeInputChains, 1, 3, 
/*240269*/                OPC_EmitNodeXForm, 21, 5, // VPTERNLOG213_imm8
/*240272*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 9/*#Ops*/, 2, 0, 1, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src1, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src4), VR512:{ *:[v8i64] }:$src1) - Complexity = 31
                          // Dst: (VPTERNLOGQZrmbik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG213_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*240287*/              /*Scope*/ 47, /*->240335*/
/*240288*/                OPC_MoveChild1,
/*240289*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*240292*/                OPC_RecordMemRef,
/*240293*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*240294*/                OPC_CheckFoldableChainNode,
/*240295*/                OPC_RecordChild1, // #3 = $src3
/*240296*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*240298*/                OPC_MoveParent,
/*240299*/                OPC_RecordChild2, // #4 = $src1
/*240300*/                OPC_RecordChild3, // #5 = $src4
/*240301*/                OPC_MoveChild3,
/*240302*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*240305*/                OPC_MoveParent,
/*240306*/                OPC_MoveParent,
/*240307*/                OPC_CheckChild2Same, 4,
/*240309*/                OPC_CheckType, MVT::v8i64,
/*240311*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*240313*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*240316*/                OPC_EmitMergeInputChains1_2,
/*240317*/                OPC_EmitNodeXForm, 22, 5, // VPTERNLOG231_imm8
/*240320*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 9/*#Ops*/, 4, 0, 1, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src2, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8i64] }:$src1, (timm:{ *:[i8] }):$src4), VR512:{ *:[v8i64] }:$src1) - Complexity = 31
                          // Dst: (VPTERNLOGQZrmbik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG231_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*240335*/              0, /*End of Scope*/
/*240336*/            /*Scope*/ 48, /*->240385*/
/*240337*/              OPC_MoveChild0,
/*240338*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*240341*/              OPC_RecordMemRef,
/*240342*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*240343*/              OPC_CheckFoldableChainNode,
/*240344*/              OPC_RecordChild1, // #2 = $src3
/*240345*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*240347*/              OPC_MoveParent,
/*240348*/              OPC_RecordChild1, // #3 = $src1
/*240349*/              OPC_RecordChild2, // #4 = $src2
/*240350*/              OPC_RecordChild3, // #5 = $src4
/*240351*/              OPC_MoveChild3,
/*240352*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*240355*/              OPC_MoveParent,
/*240356*/              OPC_MoveParent,
/*240357*/              OPC_CheckChild2Same, 3,
/*240359*/              OPC_CheckType, MVT::v8i64,
/*240361*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*240363*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*240366*/              OPC_EmitMergeInputChains1_1,
/*240367*/              OPC_EmitNodeXForm, 23, 5, // VPTERNLOG312_imm8
/*240370*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 9/*#Ops*/, 3, 0, 4, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i64] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (timm:{ *:[i8] }):$src4), VR512:{ *:[v8i64] }:$src1) - Complexity = 31
                        // Dst: (VPTERNLOGQZrmbik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG312_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*240385*/            0, /*End of Scope*/
/*240386*/          /*SwitchOpcode*/ 46|128,1/*174*/, TARGET_VAL(X86ISD::VSHLD),// ->240564
/*240390*/            OPC_RecordChild0, // #1 = $src1
/*240391*/            OPC_MoveChild1,
/*240392*/            OPC_SwitchOpcode /*2 cases */, 88, TARGET_VAL(ISD::LOAD),// ->240484
/*240396*/              OPC_RecordMemRef,
/*240397*/              OPC_RecordNode, // #2 = 'ld' chained node
/*240398*/              OPC_CheckFoldableChainNode,
/*240399*/              OPC_RecordChild1, // #3 = $src2
/*240400*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*240402*/              OPC_CheckPredicate, 9, // Predicate_load
/*240404*/              OPC_MoveParent,
/*240405*/              OPC_RecordChild2, // #4 = $src3
/*240406*/              OPC_MoveChild2,
/*240407*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*240410*/              OPC_MoveParent,
/*240411*/              OPC_MoveParent,
/*240412*/              OPC_RecordChild2, // #5 = $src0
/*240413*/              OPC_SwitchType /*3 cases */, 21, MVT::v8i16,// ->240437
/*240416*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*240418*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*240421*/                OPC_EmitMergeInputChains1_2,
/*240422*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDWZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86VShld:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), VR128X:{ *:[v8i16] }:$src0) - Complexity = 31
                          // Dst: (VPSHLDWZ128rmik:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*240437*/              /*SwitchType*/ 21, MVT::v8i32,// ->240460
/*240439*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*240441*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*240444*/                OPC_EmitMergeInputChains1_2,
/*240445*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDDZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VShld:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                          // Dst: (VPSHLDDZ256rmik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*240460*/              /*SwitchType*/ 21, MVT::v8i64,// ->240483
/*240462*/                OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*240464*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*240467*/                OPC_EmitMergeInputChains1_2,
/*240468*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDQZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VShld:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                          // Dst: (VPSHLDQZrmik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*240483*/              0, // EndSwitchType
/*240484*/            /*SwitchOpcode*/ 76, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->240563
/*240487*/              OPC_RecordMemRef,
/*240488*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*240489*/              OPC_CheckFoldableChainNode,
/*240490*/              OPC_RecordChild1, // #3 = $src2
/*240491*/              OPC_Scope, 34, /*->240527*/ // 2 children in Scope
/*240493*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*240495*/                OPC_MoveParent,
/*240496*/                OPC_RecordChild2, // #4 = $src3
/*240497*/                OPC_MoveChild2,
/*240498*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*240501*/                OPC_MoveParent,
/*240502*/                OPC_MoveParent,
/*240503*/                OPC_RecordChild2, // #5 = $src0
/*240504*/                OPC_CheckType, MVT::v8i32,
/*240506*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*240508*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*240511*/                OPC_EmitMergeInputChains1_2,
/*240512*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDDZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VShld:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src3), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                          // Dst: (VPSHLDDZ256rmbik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*240527*/              /*Scope*/ 34, /*->240562*/
/*240528*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*240530*/                OPC_MoveParent,
/*240531*/                OPC_RecordChild2, // #4 = $src3
/*240532*/                OPC_MoveChild2,
/*240533*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*240536*/                OPC_MoveParent,
/*240537*/                OPC_MoveParent,
/*240538*/                OPC_RecordChild2, // #5 = $src0
/*240539*/                OPC_CheckType, MVT::v8i64,
/*240541*/                OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*240543*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*240546*/                OPC_EmitMergeInputChains1_2,
/*240547*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDQZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VShld:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src3), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                          // Dst: (VPSHLDQZrmbik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*240562*/              0, /*End of Scope*/
/*240563*/            0, // EndSwitchOpcode
/*240564*/          /*SwitchOpcode*/ 46|128,1/*174*/, TARGET_VAL(X86ISD::VSHRD),// ->240742
/*240568*/            OPC_RecordChild0, // #1 = $src1
/*240569*/            OPC_MoveChild1,
/*240570*/            OPC_SwitchOpcode /*2 cases */, 88, TARGET_VAL(ISD::LOAD),// ->240662
/*240574*/              OPC_RecordMemRef,
/*240575*/              OPC_RecordNode, // #2 = 'ld' chained node
/*240576*/              OPC_CheckFoldableChainNode,
/*240577*/              OPC_RecordChild1, // #3 = $src2
/*240578*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*240580*/              OPC_CheckPredicate, 9, // Predicate_load
/*240582*/              OPC_MoveParent,
/*240583*/              OPC_RecordChild2, // #4 = $src3
/*240584*/              OPC_MoveChild2,
/*240585*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*240588*/              OPC_MoveParent,
/*240589*/              OPC_MoveParent,
/*240590*/              OPC_RecordChild2, // #5 = $src0
/*240591*/              OPC_SwitchType /*3 cases */, 21, MVT::v8i16,// ->240615
/*240594*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*240596*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*240599*/                OPC_EmitMergeInputChains1_2,
/*240600*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDWZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86VShrd:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), VR128X:{ *:[v8i16] }:$src0) - Complexity = 31
                          // Dst: (VPSHRDWZ128rmik:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*240615*/              /*SwitchType*/ 21, MVT::v8i32,// ->240638
/*240617*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*240619*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*240622*/                OPC_EmitMergeInputChains1_2,
/*240623*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDDZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VShrd:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                          // Dst: (VPSHRDDZ256rmik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*240638*/              /*SwitchType*/ 21, MVT::v8i64,// ->240661
/*240640*/                OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*240642*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*240645*/                OPC_EmitMergeInputChains1_2,
/*240646*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDQZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VShrd:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                          // Dst: (VPSHRDQZrmik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*240661*/              0, // EndSwitchType
/*240662*/            /*SwitchOpcode*/ 76, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->240741
/*240665*/              OPC_RecordMemRef,
/*240666*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*240667*/              OPC_CheckFoldableChainNode,
/*240668*/              OPC_RecordChild1, // #3 = $src2
/*240669*/              OPC_Scope, 34, /*->240705*/ // 2 children in Scope
/*240671*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*240673*/                OPC_MoveParent,
/*240674*/                OPC_RecordChild2, // #4 = $src3
/*240675*/                OPC_MoveChild2,
/*240676*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*240679*/                OPC_MoveParent,
/*240680*/                OPC_MoveParent,
/*240681*/                OPC_RecordChild2, // #5 = $src0
/*240682*/                OPC_CheckType, MVT::v8i32,
/*240684*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*240686*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*240689*/                OPC_EmitMergeInputChains1_2,
/*240690*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDDZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VShrd:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src3), VR256X:{ *:[v8i32] }:$src0) - Complexity = 31
                          // Dst: (VPSHRDDZ256rmbik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*240705*/              /*Scope*/ 34, /*->240740*/
/*240706*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*240708*/                OPC_MoveParent,
/*240709*/                OPC_RecordChild2, // #4 = $src3
/*240710*/                OPC_MoveChild2,
/*240711*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*240714*/                OPC_MoveParent,
/*240715*/                OPC_MoveParent,
/*240716*/                OPC_RecordChild2, // #5 = $src0
/*240717*/                OPC_CheckType, MVT::v8i64,
/*240719*/                OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*240721*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*240724*/                OPC_EmitMergeInputChains1_2,
/*240725*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDQZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VShrd:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src3), VR512:{ *:[v8i64] }:$src0) - Complexity = 31
                          // Dst: (VPSHRDQZrmbik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*240740*/              0, /*End of Scope*/
/*240741*/            0, // EndSwitchOpcode
/*240742*/          /*SwitchOpcode*/ 37|128,1/*165*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->240911
/*240746*/            OPC_RecordMemRef,
/*240747*/            OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*240748*/            OPC_CheckFoldableChainNode,
/*240749*/            OPC_RecordChild1, // #2 = $src
/*240750*/            OPC_Scope, 26, /*->240778*/ // 6 children in Scope
/*240752*/              OPC_CheckPredicate, 100, // Predicate_X86VBroadcastld16
/*240754*/              OPC_MoveParent,
/*240755*/              OPC_MoveChild2,
/*240756*/              OPC_CheckImmAllZerosV,
/*240757*/              OPC_MoveParent,
/*240758*/              OPC_CheckType, MVT::v8i16,
/*240760*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*240762*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*240765*/              OPC_EmitMergeInputChains1_1,
/*240766*/              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, (X86VBroadcastld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld16>>, immAllZerosV:{ *:[v8i16] }) - Complexity = 29
                        // Dst: (VPBROADCASTWZ128mkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*240778*/            /*Scope*/ 26, /*->240805*/
/*240779*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*240781*/              OPC_MoveParent,
/*240782*/              OPC_MoveChild2,
/*240783*/              OPC_CheckImmAllZerosV,
/*240784*/              OPC_MoveParent,
/*240785*/              OPC_CheckType, MVT::v8i32,
/*240787*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*240789*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*240792*/              OPC_EmitMergeInputChains1_1,
/*240793*/              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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>, immAllZerosV:{ *:[v8i32] }) - Complexity = 29
                        // Dst: (VPBROADCASTDZ256mkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*240805*/            /*Scope*/ 26, /*->240832*/
/*240806*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*240808*/              OPC_MoveParent,
/*240809*/              OPC_MoveChild2,
/*240810*/              OPC_CheckImmAllZerosV,
/*240811*/              OPC_MoveParent,
/*240812*/              OPC_CheckType, MVT::v8i64,
/*240814*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*240816*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*240819*/              OPC_EmitMergeInputChains1_1,
/*240820*/              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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>, immAllZerosV:{ *:[v8i64] }) - Complexity = 29
                        // Dst: (VPBROADCASTQZmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*240832*/            /*Scope*/ 25, /*->240858*/
/*240833*/              OPC_CheckPredicate, 100, // Predicate_X86VBroadcastld16
/*240835*/              OPC_MoveParent,
/*240836*/              OPC_RecordChild2, // #3 = $src0
/*240837*/              OPC_CheckType, MVT::v8i16,
/*240839*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*240841*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*240844*/              OPC_EmitMergeInputChains1_1,
/*240845*/              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, (X86VBroadcastld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld16>>, VR128X:{ *:[v8i16] }:$src0) - Complexity = 25
                        // Dst: (VPBROADCASTWZ128mk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*240858*/            /*Scope*/ 25, /*->240884*/
/*240859*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*240861*/              OPC_MoveParent,
/*240862*/              OPC_RecordChild2, // #3 = $src0
/*240863*/              OPC_CheckType, MVT::v8i32,
/*240865*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*240867*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*240870*/              OPC_EmitMergeInputChains1_1,
/*240871*/              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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8i32] }:$src0) - Complexity = 25
                        // Dst: (VPBROADCASTDZ256mk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*240884*/            /*Scope*/ 25, /*->240910*/
/*240885*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*240887*/              OPC_MoveParent,
/*240888*/              OPC_RecordChild2, // #3 = $src0
/*240889*/              OPC_CheckType, MVT::v8i64,
/*240891*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*240893*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*240896*/              OPC_EmitMergeInputChains1_1,
/*240897*/              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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8i64] }:$src0) - Complexity = 25
                        // Dst: (VPBROADCASTQZmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*240910*/            0, /*End of Scope*/
/*240911*/          /*SwitchOpcode*/ 87|128,6/*855*/, TARGET_VAL(ISD::LOAD),// ->241770
/*240915*/            OPC_RecordMemRef,
/*240916*/            OPC_RecordNode, // #1 = 'ld' chained node
/*240917*/            OPC_CheckFoldableChainNode,
/*240918*/            OPC_RecordChild1, // #2 = $src
/*240919*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*240921*/            OPC_Scope, 120, /*->241043*/ // 6 children in Scope
/*240923*/              OPC_CheckPredicate, 9, // Predicate_load
/*240925*/              OPC_Scope, 48, /*->240975*/ // 2 children in Scope
/*240927*/                OPC_CheckPredicate, 74, // Predicate_alignedload
/*240929*/                OPC_MoveParent,
/*240930*/                OPC_MoveChild2,
/*240931*/                OPC_CheckImmAllZerosV,
/*240932*/                OPC_MoveParent,
/*240933*/                OPC_SwitchType /*2 cases */, 18, MVT::v8i32,// ->240954
/*240936*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*240938*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*240941*/                  OPC_EmitMergeInputChains1_1,
/*240942*/                  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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedload>>, immAllZerosV:{ *:[v8i32] }) - Complexity = 29
                            // Dst: (VMOVDQA32Z256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*240954*/                /*SwitchType*/ 18, MVT::v8i64,// ->240974
/*240956*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*240958*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*240961*/                  OPC_EmitMergeInputChains1_1,
/*240962*/                  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_alignedload>>, immAllZerosV:{ *:[v8i64] }) - Complexity = 29
                            // Dst: (VMOVDQA64Zrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*240974*/                0, // EndSwitchType
/*240975*/              /*Scope*/ 66, /*->241042*/
/*240976*/                OPC_MoveParent,
/*240977*/                OPC_MoveChild2,
/*240978*/                OPC_CheckImmAllZerosV,
/*240979*/                OPC_MoveParent,
/*240980*/                OPC_SwitchType /*3 cases */, 18, MVT::v8i16,// ->241001
/*240983*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*240985*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*240988*/                  OPC_EmitMergeInputChains1_1,
/*240989*/                  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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>, immAllZerosV:{ *:[v8i16] }) - Complexity = 29
                            // Dst: (VMOVDQU16Z128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*241001*/                /*SwitchType*/ 18, MVT::v8i32,// ->241021
/*241003*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*241005*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*241008*/                  OPC_EmitMergeInputChains1_1,
/*241009*/                  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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>, immAllZerosV:{ *:[v8i32] }) - Complexity = 29
                            // Dst: (VMOVDQU32Z256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*241021*/                /*SwitchType*/ 18, MVT::v8i64,// ->241041
/*241023*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*241025*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*241028*/                  OPC_EmitMergeInputChains1_1,
/*241029*/                  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>>, immAllZerosV:{ *:[v8i64] }) - Complexity = 29
                            // Dst: (VMOVDQU64Zrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*241041*/                0, // EndSwitchType
/*241042*/              0, /*End of Scope*/
/*241043*/            /*Scope*/ 21|128,1/*149*/, /*->241194*/
/*241045*/              OPC_CheckPredicate, 53, // Predicate_zextload
/*241047*/              OPC_Scope, 68, /*->241117*/ // 3 children in Scope
/*241049*/                OPC_CheckPredicate, 75, // Predicate_zextloadvi8
/*241051*/                OPC_MoveParent,
/*241052*/                OPC_MoveChild2,
/*241053*/                OPC_CheckImmAllZerosV,
/*241054*/                OPC_MoveParent,
/*241055*/                OPC_SwitchType /*3 cases */, 18, MVT::v8i16,// ->241076
/*241058*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*241060*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*241063*/                  OPC_EmitMergeInputChains1_1,
/*241064*/                  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>>, immAllZerosV:{ *:[v8i16] }) - Complexity = 29
                            // Dst: (VPMOVZXBWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*241076*/                /*SwitchType*/ 18, MVT::v8i32,// ->241096
/*241078*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*241080*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*241083*/                  OPC_EmitMergeInputChains1_1,
/*241084*/                  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>>, immAllZerosV:{ *:[v8i32] }) - Complexity = 29
                            // Dst: (VPMOVZXBDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*241096*/                /*SwitchType*/ 18, MVT::v8i64,// ->241116
/*241098*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*241100*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*241103*/                  OPC_EmitMergeInputChains1_1,
/*241104*/                  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>>, immAllZerosV:{ *:[v8i64] }) - Complexity = 29
                            // Dst: (VPMOVZXBQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*241116*/                0, // EndSwitchType
/*241117*/              /*Scope*/ 48, /*->241166*/
/*241118*/                OPC_CheckPredicate, 76, // Predicate_zextloadvi16
/*241120*/                OPC_MoveParent,
/*241121*/                OPC_MoveChild2,
/*241122*/                OPC_CheckImmAllZerosV,
/*241123*/                OPC_MoveParent,
/*241124*/                OPC_SwitchType /*2 cases */, 18, MVT::v8i32,// ->241145
/*241127*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*241129*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*241132*/                  OPC_EmitMergeInputChains1_1,
/*241133*/                  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>>, immAllZerosV:{ *:[v8i32] }) - Complexity = 29
                            // Dst: (VPMOVZXWDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*241145*/                /*SwitchType*/ 18, MVT::v8i64,// ->241165
/*241147*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*241149*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*241152*/                  OPC_EmitMergeInputChains1_1,
/*241153*/                  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>>, immAllZerosV:{ *:[v8i64] }) - Complexity = 29
                            // Dst: (VPMOVZXWQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*241165*/                0, // EndSwitchType
/*241166*/              /*Scope*/ 26, /*->241193*/
/*241167*/                OPC_CheckPredicate, 77, // Predicate_zextloadvi32
/*241169*/                OPC_MoveParent,
/*241170*/                OPC_MoveChild2,
/*241171*/                OPC_CheckImmAllZerosV,
/*241172*/                OPC_MoveParent,
/*241173*/                OPC_CheckType, MVT::v8i64,
/*241175*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*241177*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*241180*/                OPC_EmitMergeInputChains1_1,
/*241181*/                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>>, immAllZerosV:{ *:[v8i64] }) - Complexity = 29
                          // Dst: (VPMOVZXDQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*241193*/              0, /*End of Scope*/
/*241194*/            /*Scope*/ 21|128,1/*149*/, /*->241345*/
/*241196*/              OPC_CheckPredicate, 68, // Predicate_sextload
/*241198*/              OPC_Scope, 68, /*->241268*/ // 3 children in Scope
/*241200*/                OPC_CheckPredicate, 75, // Predicate_sextloadvi8
/*241202*/                OPC_MoveParent,
/*241203*/                OPC_MoveChild2,
/*241204*/                OPC_CheckImmAllZerosV,
/*241205*/                OPC_MoveParent,
/*241206*/                OPC_SwitchType /*3 cases */, 18, MVT::v8i16,// ->241227
/*241209*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*241211*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*241214*/                  OPC_EmitMergeInputChains1_1,
/*241215*/                  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>>, immAllZerosV:{ *:[v8i16] }) - Complexity = 29
                            // Dst: (VPMOVSXBWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*241227*/                /*SwitchType*/ 18, MVT::v8i32,// ->241247
/*241229*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*241231*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*241234*/                  OPC_EmitMergeInputChains1_1,
/*241235*/                  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>>, immAllZerosV:{ *:[v8i32] }) - Complexity = 29
                            // Dst: (VPMOVSXBDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*241247*/                /*SwitchType*/ 18, MVT::v8i64,// ->241267
/*241249*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*241251*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*241254*/                  OPC_EmitMergeInputChains1_1,
/*241255*/                  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>>, immAllZerosV:{ *:[v8i64] }) - Complexity = 29
                            // Dst: (VPMOVSXBQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*241267*/                0, // EndSwitchType
/*241268*/              /*Scope*/ 48, /*->241317*/
/*241269*/                OPC_CheckPredicate, 76, // Predicate_sextloadvi16
/*241271*/                OPC_MoveParent,
/*241272*/                OPC_MoveChild2,
/*241273*/                OPC_CheckImmAllZerosV,
/*241274*/                OPC_MoveParent,
/*241275*/                OPC_SwitchType /*2 cases */, 18, MVT::v8i32,// ->241296
/*241278*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*241280*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*241283*/                  OPC_EmitMergeInputChains1_1,
/*241284*/                  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>>, immAllZerosV:{ *:[v8i32] }) - Complexity = 29
                            // Dst: (VPMOVSXWDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*241296*/                /*SwitchType*/ 18, MVT::v8i64,// ->241316
/*241298*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*241300*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*241303*/                  OPC_EmitMergeInputChains1_1,
/*241304*/                  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>>, immAllZerosV:{ *:[v8i64] }) - Complexity = 29
                            // Dst: (VPMOVSXWQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*241316*/                0, // EndSwitchType
/*241317*/              /*Scope*/ 26, /*->241344*/
/*241318*/                OPC_CheckPredicate, 77, // Predicate_sextloadvi32
/*241320*/                OPC_MoveParent,
/*241321*/                OPC_MoveChild2,
/*241322*/                OPC_CheckImmAllZerosV,
/*241323*/                OPC_MoveParent,
/*241324*/                OPC_CheckType, MVT::v8i64,
/*241326*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*241328*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*241331*/                OPC_EmitMergeInputChains1_1,
/*241332*/                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>>, immAllZerosV:{ *:[v8i64] }) - Complexity = 29
                          // Dst: (VPMOVSXDQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*241344*/              0, /*End of Scope*/
/*241345*/            /*Scope*/ 121, /*->241467*/
/*241346*/              OPC_CheckPredicate, 9, // Predicate_load
/*241348*/              OPC_Scope, 48, /*->241398*/ // 2 children in Scope
/*241350*/                OPC_CheckPredicate, 74, // Predicate_alignedload
/*241352*/                OPC_MoveParent,
/*241353*/                OPC_RecordChild2, // #3 = $src0
/*241354*/                OPC_SwitchType /*2 cases */, 19, MVT::v8i32,// ->241376
/*241357*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*241359*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*241362*/                  OPC_EmitMergeInputChains1_1,
/*241363*/                  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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_alignedload>>, VR256X:{ *:[v8i32] }:$src0) - Complexity = 25
                            // Dst: (VMOVDQA32Z256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*241376*/                /*SwitchType*/ 19, MVT::v8i64,// ->241397
/*241378*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*241380*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*241383*/                  OPC_EmitMergeInputChains1_1,
/*241384*/                  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_alignedload>>, VR512:{ *:[v8i64] }:$src0) - Complexity = 25
                            // Dst: (VMOVDQA64Zrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*241397*/                0, // EndSwitchType
/*241398*/              /*Scope*/ 67, /*->241466*/
/*241399*/                OPC_MoveParent,
/*241400*/                OPC_RecordChild2, // #3 = $src0
/*241401*/                OPC_SwitchType /*3 cases */, 19, MVT::v8i16,// ->241423
/*241404*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*241406*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*241409*/                  OPC_EmitMergeInputChains1_1,
/*241410*/                  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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src0) - Complexity = 25
                            // Dst: (VMOVDQU16Z128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*241423*/                /*SwitchType*/ 19, MVT::v8i32,// ->241444
/*241425*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*241427*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*241430*/                  OPC_EmitMergeInputChains1_1,
/*241431*/                  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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8i32] }:$src0) - Complexity = 25
                            // Dst: (VMOVDQU32Z256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*241444*/                /*SwitchType*/ 19, MVT::v8i64,// ->241465
/*241446*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*241448*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*241451*/                  OPC_EmitMergeInputChains1_1,
/*241452*/                  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>>, VR512:{ *:[v8i64] }:$src0) - Complexity = 25
                            // Dst: (VMOVDQU64Zrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*241465*/                0, // EndSwitchType
/*241466*/              0, /*End of Scope*/
/*241467*/            /*Scope*/ 21|128,1/*149*/, /*->241618*/
/*241469*/              OPC_CheckPredicate, 53, // Predicate_zextload
/*241471*/              OPC_Scope, 69, /*->241542*/ // 3 children in Scope
/*241473*/                OPC_CheckPredicate, 75, // Predicate_zextloadvi8
/*241475*/                OPC_MoveParent,
/*241476*/                OPC_RecordChild2, // #3 = $src0
/*241477*/                OPC_SwitchType /*3 cases */, 19, MVT::v8i16,// ->241499
/*241480*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*241482*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*241485*/                  OPC_EmitMergeInputChains1_1,
/*241486*/                  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)
/*241499*/                /*SwitchType*/ 19, MVT::v8i32,// ->241520
/*241501*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*241503*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*241506*/                  OPC_EmitMergeInputChains1_1,
/*241507*/                  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)
/*241520*/                /*SwitchType*/ 19, MVT::v8i64,// ->241541
/*241522*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*241524*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*241527*/                  OPC_EmitMergeInputChains1_1,
/*241528*/                  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)
/*241541*/                0, // EndSwitchType
/*241542*/              /*Scope*/ 48, /*->241591*/
/*241543*/                OPC_CheckPredicate, 76, // Predicate_zextloadvi16
/*241545*/                OPC_MoveParent,
/*241546*/                OPC_RecordChild2, // #3 = $src0
/*241547*/                OPC_SwitchType /*2 cases */, 19, MVT::v8i32,// ->241569
/*241550*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*241552*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*241555*/                  OPC_EmitMergeInputChains1_1,
/*241556*/                  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)
/*241569*/                /*SwitchType*/ 19, MVT::v8i64,// ->241590
/*241571*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*241573*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*241576*/                  OPC_EmitMergeInputChains1_1,
/*241577*/                  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)
/*241590*/                0, // EndSwitchType
/*241591*/              /*Scope*/ 25, /*->241617*/
/*241592*/                OPC_CheckPredicate, 77, // Predicate_zextloadvi32
/*241594*/                OPC_MoveParent,
/*241595*/                OPC_RecordChild2, // #3 = $src0
/*241596*/                OPC_CheckType, MVT::v8i64,
/*241598*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*241600*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*241603*/                OPC_EmitMergeInputChains1_1,
/*241604*/                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)
/*241617*/              0, /*End of Scope*/
/*241618*/            /*Scope*/ 21|128,1/*149*/, /*->241769*/
/*241620*/              OPC_CheckPredicate, 68, // Predicate_sextload
/*241622*/              OPC_Scope, 69, /*->241693*/ // 3 children in Scope
/*241624*/                OPC_CheckPredicate, 75, // Predicate_sextloadvi8
/*241626*/                OPC_MoveParent,
/*241627*/                OPC_RecordChild2, // #3 = $src0
/*241628*/                OPC_SwitchType /*3 cases */, 19, MVT::v8i16,// ->241650
/*241631*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*241633*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*241636*/                  OPC_EmitMergeInputChains1_1,
/*241637*/                  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)
/*241650*/                /*SwitchType*/ 19, MVT::v8i32,// ->241671
/*241652*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*241654*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*241657*/                  OPC_EmitMergeInputChains1_1,
/*241658*/                  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)
/*241671*/                /*SwitchType*/ 19, MVT::v8i64,// ->241692
/*241673*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*241675*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*241678*/                  OPC_EmitMergeInputChains1_1,
/*241679*/                  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)
/*241692*/                0, // EndSwitchType
/*241693*/              /*Scope*/ 48, /*->241742*/
/*241694*/                OPC_CheckPredicate, 76, // Predicate_sextloadvi16
/*241696*/                OPC_MoveParent,
/*241697*/                OPC_RecordChild2, // #3 = $src0
/*241698*/                OPC_SwitchType /*2 cases */, 19, MVT::v8i32,// ->241720
/*241701*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*241703*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*241706*/                  OPC_EmitMergeInputChains1_1,
/*241707*/                  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)
/*241720*/                /*SwitchType*/ 19, MVT::v8i64,// ->241741
/*241722*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*241724*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*241727*/                  OPC_EmitMergeInputChains1_1,
/*241728*/                  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)
/*241741*/                0, // EndSwitchType
/*241742*/              /*Scope*/ 25, /*->241768*/
/*241743*/                OPC_CheckPredicate, 77, // Predicate_sextloadvi32
/*241745*/                OPC_MoveParent,
/*241746*/                OPC_RecordChild2, // #3 = $src0
/*241747*/                OPC_CheckType, MVT::v8i64,
/*241749*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*241751*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*241754*/                OPC_EmitMergeInputChains1_1,
/*241755*/                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)
/*241768*/              0, /*End of Scope*/
/*241769*/            0, /*End of Scope*/
/*241770*/          /*SwitchOpcode*/ 93, TARGET_VAL(X86ISD::SUBV_BROADCAST),// ->241866
/*241773*/            OPC_MoveChild0,
/*241774*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*241777*/            OPC_RecordMemRef,
/*241778*/            OPC_RecordNode, // #1 = 'ld' chained node
/*241779*/            OPC_CheckFoldableChainNode,
/*241780*/            OPC_RecordChild1, // #2 = $src
/*241781*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*241783*/            OPC_CheckPredicate, 9, // Predicate_load
/*241785*/            OPC_Scope, 26, /*->241813*/ // 3 children in Scope
/*241787*/              OPC_CheckType, MVT::v4i64,
/*241789*/              OPC_MoveParent,
/*241790*/              OPC_MoveParent,
/*241791*/              OPC_RecordChild2, // #3 = $src0
/*241792*/              OPC_CheckType, MVT::v8i64,
/*241794*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*241796*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*241799*/              OPC_EmitMergeInputChains1_1,
/*241800*/              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>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                        // Dst: (VBROADCASTI64X4rmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*241813*/            /*Scope*/ 24, /*->241838*/
/*241814*/              OPC_MoveParent,
/*241815*/              OPC_MoveParent,
/*241816*/              OPC_RecordChild2, // #3 = $src0
/*241817*/              OPC_CheckType, MVT::v8i32,
/*241819*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*241821*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*241824*/              OPC_EmitMergeInputChains1_1,
/*241825*/              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] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                        // Dst: (VBROADCASTI32X4Z256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*241838*/            /*Scope*/ 26, /*->241865*/
/*241839*/              OPC_CheckType, MVT::v2i64,
/*241841*/              OPC_MoveParent,
/*241842*/              OPC_MoveParent,
/*241843*/              OPC_RecordChild2, // #3 = $src0
/*241844*/              OPC_CheckType, MVT::v8i64,
/*241846*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*241848*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*241851*/              OPC_EmitMergeInputChains1_1,
/*241852*/              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>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                        // Dst: (VBROADCASTI64X2rmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*241865*/            0, /*End of Scope*/
/*241866*/          /*SwitchOpcode*/ 53|128,2/*309*/, TARGET_VAL(X86ISD::VPERMV3),// ->242179
/*241870*/            OPC_RecordChild0, // #1 = $src2
/*241871*/            OPC_RecordChild1, // #2 = $src1
/*241872*/            OPC_MoveChild2,
/*241873*/            OPC_SwitchOpcode /*2 cases */, 38|128,1/*166*/, TARGET_VAL(ISD::LOAD),// ->242044
/*241878*/              OPC_RecordMemRef,
/*241879*/              OPC_RecordNode, // #3 = 'ld' chained node
/*241880*/              OPC_CheckFoldableChainNode,
/*241881*/              OPC_RecordChild1, // #4 = $src3
/*241882*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*241884*/              OPC_CheckPredicate, 9, // Predicate_load
/*241886*/              OPC_MoveParent,
/*241887*/              OPC_MoveParent,
/*241888*/              OPC_Scope, 76, /*->241966*/ // 2 children in Scope
/*241890*/                OPC_CheckChild2Same, 2,
/*241892*/                OPC_SwitchType /*3 cases */, 22, MVT::v8i32,// ->241917
/*241895*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*241897*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*241900*/                  OPC_EmitMergeInputChains, 1, 3, 
/*241903*/                  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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8i32] }:$src1) - Complexity = 28
                            // Dst: (VPERMI2D256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*241917*/                /*SwitchType*/ 22, MVT::v8i64,// ->241941
/*241919*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*241921*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*241924*/                  OPC_EmitMergeInputChains, 1, 3, 
/*241927*/                  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>>), VR512:{ *:[v8i64] }:$src1) - Complexity = 28
                            // Dst: (VPERMI2Qrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*241941*/                /*SwitchType*/ 22, MVT::v8i16,// ->241965
/*241943*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*241945*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*241948*/                  OPC_EmitMergeInputChains, 1, 3, 
/*241951*/                  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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v8i16] }:$src1) - Complexity = 28
                            // Dst: (VPERMI2W128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/*241965*/                0, // EndSwitchType
/*241966*/              /*Scope*/ 76, /*->242043*/
/*241967*/                OPC_CheckChild2Same, 1,
/*241969*/                OPC_SwitchType /*3 cases */, 22, MVT::v8i32,// ->241994
/*241972*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*241974*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*241977*/                  OPC_EmitMergeInputChains, 1, 3, 
/*241980*/                  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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8i32] }:$src1) - Complexity = 28
                            // Dst: (VPERMT2D256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*241994*/                /*SwitchType*/ 22, MVT::v8i64,// ->242018
/*241996*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*241998*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*242001*/                  OPC_EmitMergeInputChains, 1, 3, 
/*242004*/                  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>>), VR512:{ *:[v8i64] }:$src1) - Complexity = 28
                            // Dst: (VPERMT2Qrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*242018*/                /*SwitchType*/ 22, MVT::v8i16,// ->242042
/*242020*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*242022*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*242025*/                  OPC_EmitMergeInputChains, 1, 3, 
/*242028*/                  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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v8i16] }:$src1) - Complexity = 28
                            // Dst: (VPERMT2W128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/*242042*/                0, // EndSwitchType
/*242043*/              0, /*End of Scope*/
/*242044*/            /*SwitchOpcode*/ 2|128,1/*130*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->242178
/*242048*/              OPC_RecordMemRef,
/*242049*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*242050*/              OPC_CheckFoldableChainNode,
/*242051*/              OPC_RecordChild1, // #4 = $src3
/*242052*/              OPC_Scope, 30, /*->242084*/ // 4 children in Scope
/*242054*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*242056*/                OPC_MoveParent,
/*242057*/                OPC_MoveParent,
/*242058*/                OPC_CheckChild2Same, 2,
/*242060*/                OPC_CheckType, MVT::v8i32,
/*242062*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*242064*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*242067*/                OPC_EmitMergeInputChains, 1, 3, 
/*242070*/                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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8i32] }:$src1) - Complexity = 28
                          // Dst: (VPERMI2D256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*242084*/              /*Scope*/ 30, /*->242115*/
/*242085*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*242087*/                OPC_MoveParent,
/*242088*/                OPC_MoveParent,
/*242089*/                OPC_CheckChild2Same, 2,
/*242091*/                OPC_CheckType, MVT::v8i64,
/*242093*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*242095*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*242098*/                OPC_EmitMergeInputChains, 1, 3, 
/*242101*/                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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8i64] }:$src1) - Complexity = 28
                          // Dst: (VPERMI2Qrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*242115*/              /*Scope*/ 30, /*->242146*/
/*242116*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*242118*/                OPC_MoveParent,
/*242119*/                OPC_MoveParent,
/*242120*/                OPC_CheckChild2Same, 1,
/*242122*/                OPC_CheckType, MVT::v8i32,
/*242124*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*242126*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*242129*/                OPC_EmitMergeInputChains, 1, 3, 
/*242132*/                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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8i32] }:$src1) - Complexity = 28
                          // Dst: (VPERMT2D256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*242146*/              /*Scope*/ 30, /*->242177*/
/*242147*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*242149*/                OPC_MoveParent,
/*242150*/                OPC_MoveParent,
/*242151*/                OPC_CheckChild2Same, 1,
/*242153*/                OPC_CheckType, MVT::v8i64,
/*242155*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*242157*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*242160*/                OPC_EmitMergeInputChains, 1, 3, 
/*242163*/                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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8i64] }:$src1) - Complexity = 28
                          // Dst: (VPERMT2Qrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*242177*/              0, /*End of Scope*/
/*242178*/            0, // EndSwitchOpcode
/*242179*/          /*SwitchOpcode*/ 54|128,2/*310*/, TARGET_VAL(ISD::ADD),// ->242493
/*242183*/            OPC_Scope, 23|128,1/*151*/, /*->242337*/ // 2 children in Scope
/*242186*/              OPC_RecordChild0, // #1 = $src1
/*242187*/              OPC_MoveChild1,
/*242188*/              OPC_SwitchOpcode /*2 cases */, 79, TARGET_VAL(ISD::LOAD),// ->242271
/*242192*/                OPC_RecordMemRef,
/*242193*/                OPC_RecordNode, // #2 = 'ld' chained node
/*242194*/                OPC_CheckFoldableChainNode,
/*242195*/                OPC_RecordChild1, // #3 = $src2
/*242196*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*242198*/                OPC_CheckPredicate, 9, // Predicate_load
/*242200*/                OPC_MoveParent,
/*242201*/                OPC_MoveParent,
/*242202*/                OPC_RecordChild2, // #4 = $src0
/*242203*/                OPC_SwitchType /*3 cases */, 20, MVT::v8i64,// ->242226
/*242206*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*242208*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*242211*/                  OPC_EmitMergeInputChains1_2,
/*242212*/                  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>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VPADDQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*242226*/                /*SwitchType*/ 20, MVT::v8i32,// ->242248
/*242228*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*242230*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*242233*/                  OPC_EmitMergeInputChains1_2,
/*242234*/                  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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VPADDDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*242248*/                /*SwitchType*/ 20, MVT::v8i16,// ->242270
/*242250*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*242252*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*242255*/                  OPC_EmitMergeInputChains1_2,
/*242256*/                  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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v8i16] }:$src0) - Complexity = 28
                            // Dst: (VPADDWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*242270*/                0, // EndSwitchType
/*242271*/              /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->242336
/*242274*/                OPC_RecordMemRef,
/*242275*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*242276*/                OPC_CheckFoldableChainNode,
/*242277*/                OPC_RecordChild1, // #3 = $src2
/*242278*/                OPC_Scope, 27, /*->242307*/ // 2 children in Scope
/*242280*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*242282*/                  OPC_MoveParent,
/*242283*/                  OPC_MoveParent,
/*242284*/                  OPC_RecordChild2, // #4 = $src0
/*242285*/                  OPC_CheckType, MVT::v8i64,
/*242287*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*242289*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*242292*/                  OPC_EmitMergeInputChains1_2,
/*242293*/                  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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VPADDQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*242307*/                /*Scope*/ 27, /*->242335*/
/*242308*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*242310*/                  OPC_MoveParent,
/*242311*/                  OPC_MoveParent,
/*242312*/                  OPC_RecordChild2, // #4 = $src0
/*242313*/                  OPC_CheckType, MVT::v8i32,
/*242315*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*242317*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*242320*/                  OPC_EmitMergeInputChains1_2,
/*242321*/                  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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VPADDDZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*242335*/                0, /*End of Scope*/
/*242336*/              0, // EndSwitchOpcode
/*242337*/            /*Scope*/ 25|128,1/*153*/, /*->242492*/
/*242339*/              OPC_MoveChild0,
/*242340*/              OPC_SwitchOpcode /*2 cases */, 80, TARGET_VAL(ISD::LOAD),// ->242424
/*242344*/                OPC_RecordMemRef,
/*242345*/                OPC_RecordNode, // #1 = 'ld' chained node
/*242346*/                OPC_CheckFoldableChainNode,
/*242347*/                OPC_RecordChild1, // #2 = $src2
/*242348*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*242350*/                OPC_CheckPredicate, 9, // Predicate_load
/*242352*/                OPC_MoveParent,
/*242353*/                OPC_RecordChild1, // #3 = $src1
/*242354*/                OPC_MoveParent,
/*242355*/                OPC_RecordChild2, // #4 = $src0
/*242356*/                OPC_SwitchType /*3 cases */, 20, MVT::v8i64,// ->242379
/*242359*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*242361*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*242364*/                  OPC_EmitMergeInputChains1_1,
/*242365*/                  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>>, VR512:{ *:[v8i64] }:$src1), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VPADDQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*242379*/                /*SwitchType*/ 20, MVT::v8i32,// ->242401
/*242381*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*242383*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*242386*/                  OPC_EmitMergeInputChains1_1,
/*242387*/                  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] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8i32] }:$src1), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VPADDDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*242401*/                /*SwitchType*/ 20, MVT::v8i16,// ->242423
/*242403*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*242405*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*242408*/                  OPC_EmitMergeInputChains1_1,
/*242409*/                  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] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1), VR128X:{ *:[v8i16] }:$src0) - Complexity = 28
                            // Dst: (VPADDWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*242423*/                0, // EndSwitchType
/*242424*/              /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->242491
/*242427*/                OPC_RecordMemRef,
/*242428*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*242429*/                OPC_CheckFoldableChainNode,
/*242430*/                OPC_RecordChild1, // #2 = $src2
/*242431*/                OPC_Scope, 28, /*->242461*/ // 2 children in Scope
/*242433*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*242435*/                  OPC_MoveParent,
/*242436*/                  OPC_RecordChild1, // #3 = $src1
/*242437*/                  OPC_MoveParent,
/*242438*/                  OPC_RecordChild2, // #4 = $src0
/*242439*/                  OPC_CheckType, MVT::v8i64,
/*242441*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*242443*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*242446*/                  OPC_EmitMergeInputChains1_1,
/*242447*/                  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] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8i64] }:$src1), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VPADDQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*242461*/                /*Scope*/ 28, /*->242490*/
/*242462*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*242464*/                  OPC_MoveParent,
/*242465*/                  OPC_RecordChild1, // #3 = $src1
/*242466*/                  OPC_MoveParent,
/*242467*/                  OPC_RecordChild2, // #4 = $src0
/*242468*/                  OPC_CheckType, MVT::v8i32,
/*242470*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*242472*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*242475*/                  OPC_EmitMergeInputChains1_1,
/*242476*/                  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] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8i32] }:$src1), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VPADDDZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*242490*/                0, /*End of Scope*/
/*242491*/              0, // EndSwitchOpcode
/*242492*/            0, /*End of Scope*/
/*242493*/          /*SwitchOpcode*/ 23|128,1/*151*/, TARGET_VAL(ISD::SUB),// ->242648
/*242497*/            OPC_RecordChild0, // #1 = $src1
/*242498*/            OPC_MoveChild1,
/*242499*/            OPC_SwitchOpcode /*2 cases */, 79, TARGET_VAL(ISD::LOAD),// ->242582
/*242503*/              OPC_RecordMemRef,
/*242504*/              OPC_RecordNode, // #2 = 'ld' chained node
/*242505*/              OPC_CheckFoldableChainNode,
/*242506*/              OPC_RecordChild1, // #3 = $src2
/*242507*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*242509*/              OPC_CheckPredicate, 9, // Predicate_load
/*242511*/              OPC_MoveParent,
/*242512*/              OPC_MoveParent,
/*242513*/              OPC_RecordChild2, // #4 = $src0
/*242514*/              OPC_SwitchType /*3 cases */, 20, MVT::v8i64,// ->242537
/*242517*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*242519*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*242522*/                OPC_EmitMergeInputChains1_2,
/*242523*/                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>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                          // Dst: (VPSUBQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*242537*/              /*SwitchType*/ 20, MVT::v8i32,// ->242559
/*242539*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*242541*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*242544*/                OPC_EmitMergeInputChains1_2,
/*242545*/                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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                          // Dst: (VPSUBDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*242559*/              /*SwitchType*/ 20, MVT::v8i16,// ->242581
/*242561*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*242563*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*242566*/                OPC_EmitMergeInputChains1_2,
/*242567*/                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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v8i16] }:$src0) - Complexity = 28
                          // Dst: (VPSUBWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*242581*/              0, // EndSwitchType
/*242582*/            /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->242647
/*242585*/              OPC_RecordMemRef,
/*242586*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*242587*/              OPC_CheckFoldableChainNode,
/*242588*/              OPC_RecordChild1, // #3 = $src2
/*242589*/              OPC_Scope, 27, /*->242618*/ // 2 children in Scope
/*242591*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*242593*/                OPC_MoveParent,
/*242594*/                OPC_MoveParent,
/*242595*/                OPC_RecordChild2, // #4 = $src0
/*242596*/                OPC_CheckType, MVT::v8i64,
/*242598*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*242600*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*242603*/                OPC_EmitMergeInputChains1_2,
/*242604*/                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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                          // Dst: (VPSUBQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*242618*/              /*Scope*/ 27, /*->242646*/
/*242619*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*242621*/                OPC_MoveParent,
/*242622*/                OPC_MoveParent,
/*242623*/                OPC_RecordChild2, // #4 = $src0
/*242624*/                OPC_CheckType, MVT::v8i32,
/*242626*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*242628*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*242631*/                OPC_EmitMergeInputChains1_2,
/*242632*/                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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                          // Dst: (VPSUBDZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*242646*/              0, /*End of Scope*/
/*242647*/            0, // EndSwitchOpcode
/*242648*/          /*SwitchOpcode*/ 80, TARGET_VAL(ISD::SADDSAT),// ->242731
/*242651*/            OPC_Scope, 38, /*->242691*/ // 2 children in Scope
/*242653*/              OPC_RecordChild0, // #1 = $src1
/*242654*/              OPC_MoveChild1,
/*242655*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*242658*/              OPC_RecordMemRef,
/*242659*/              OPC_RecordNode, // #2 = 'ld' chained node
/*242660*/              OPC_CheckFoldableChainNode,
/*242661*/              OPC_RecordChild1, // #3 = $src2
/*242662*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*242664*/              OPC_CheckPredicate, 9, // Predicate_load
/*242666*/              OPC_MoveParent,
/*242667*/              OPC_MoveParent,
/*242668*/              OPC_RecordChild2, // #4 = $src0
/*242669*/              OPC_CheckType, MVT::v8i16,
/*242671*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*242673*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*242676*/              OPC_EmitMergeInputChains1_2,
/*242677*/              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, (saddsat:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v8i16] }:$src0) - Complexity = 28
                        // Dst: (VPADDSWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*242691*/            /*Scope*/ 38, /*->242730*/
/*242692*/              OPC_MoveChild0,
/*242693*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*242696*/              OPC_RecordMemRef,
/*242697*/              OPC_RecordNode, // #1 = 'ld' chained node
/*242698*/              OPC_CheckFoldableChainNode,
/*242699*/              OPC_RecordChild1, // #2 = $src2
/*242700*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*242702*/              OPC_CheckPredicate, 9, // Predicate_load
/*242704*/              OPC_MoveParent,
/*242705*/              OPC_RecordChild1, // #3 = $src1
/*242706*/              OPC_MoveParent,
/*242707*/              OPC_RecordChild2, // #4 = $src0
/*242708*/              OPC_CheckType, MVT::v8i16,
/*242710*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*242712*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*242715*/              OPC_EmitMergeInputChains1_1,
/*242716*/              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, (saddsat:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1), VR128X:{ *:[v8i16] }:$src0) - Complexity = 28
                        // Dst: (VPADDSWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*242730*/            0, /*End of Scope*/
/*242731*/          /*SwitchOpcode*/ 38, TARGET_VAL(ISD::SSUBSAT),// ->242772
/*242734*/            OPC_RecordChild0, // #1 = $src1
/*242735*/            OPC_MoveChild1,
/*242736*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*242739*/            OPC_RecordMemRef,
/*242740*/            OPC_RecordNode, // #2 = 'ld' chained node
/*242741*/            OPC_CheckFoldableChainNode,
/*242742*/            OPC_RecordChild1, // #3 = $src2
/*242743*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*242745*/            OPC_CheckPredicate, 9, // Predicate_load
/*242747*/            OPC_MoveParent,
/*242748*/            OPC_MoveParent,
/*242749*/            OPC_RecordChild2, // #4 = $src0
/*242750*/            OPC_CheckType, MVT::v8i16,
/*242752*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*242754*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*242757*/            OPC_EmitMergeInputChains1_2,
/*242758*/            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, (ssubsat:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v8i16] }:$src0) - Complexity = 28
                      // Dst: (VPSUBSWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*242772*/          /*SwitchOpcode*/ 80, TARGET_VAL(ISD::UADDSAT),// ->242855
/*242775*/            OPC_Scope, 38, /*->242815*/ // 2 children in Scope
/*242777*/              OPC_RecordChild0, // #1 = $src1
/*242778*/              OPC_MoveChild1,
/*242779*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*242782*/              OPC_RecordMemRef,
/*242783*/              OPC_RecordNode, // #2 = 'ld' chained node
/*242784*/              OPC_CheckFoldableChainNode,
/*242785*/              OPC_RecordChild1, // #3 = $src2
/*242786*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*242788*/              OPC_CheckPredicate, 9, // Predicate_load
/*242790*/              OPC_MoveParent,
/*242791*/              OPC_MoveParent,
/*242792*/              OPC_RecordChild2, // #4 = $src0
/*242793*/              OPC_CheckType, MVT::v8i16,
/*242795*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*242797*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*242800*/              OPC_EmitMergeInputChains1_2,
/*242801*/              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, (uaddsat:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v8i16] }:$src0) - Complexity = 28
                        // Dst: (VPADDUSWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*242815*/            /*Scope*/ 38, /*->242854*/
/*242816*/              OPC_MoveChild0,
/*242817*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*242820*/              OPC_RecordMemRef,
/*242821*/              OPC_RecordNode, // #1 = 'ld' chained node
/*242822*/              OPC_CheckFoldableChainNode,
/*242823*/              OPC_RecordChild1, // #2 = $src2
/*242824*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*242826*/              OPC_CheckPredicate, 9, // Predicate_load
/*242828*/              OPC_MoveParent,
/*242829*/              OPC_RecordChild1, // #3 = $src1
/*242830*/              OPC_MoveParent,
/*242831*/              OPC_RecordChild2, // #4 = $src0
/*242832*/              OPC_CheckType, MVT::v8i16,
/*242834*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*242836*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*242839*/              OPC_EmitMergeInputChains1_1,
/*242840*/              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, (uaddsat:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1), VR128X:{ *:[v8i16] }:$src0) - Complexity = 28
                        // Dst: (VPADDUSWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*242854*/            0, /*End of Scope*/
/*242855*/          /*SwitchOpcode*/ 38, TARGET_VAL(ISD::USUBSAT),// ->242896
/*242858*/            OPC_RecordChild0, // #1 = $src1
/*242859*/            OPC_MoveChild1,
/*242860*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*242863*/            OPC_RecordMemRef,
/*242864*/            OPC_RecordNode, // #2 = 'ld' chained node
/*242865*/            OPC_CheckFoldableChainNode,
/*242866*/            OPC_RecordChild1, // #3 = $src2
/*242867*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*242869*/            OPC_CheckPredicate, 9, // Predicate_load
/*242871*/            OPC_MoveParent,
/*242872*/            OPC_MoveParent,
/*242873*/            OPC_RecordChild2, // #4 = $src0
/*242874*/            OPC_CheckType, MVT::v8i16,
/*242876*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*242878*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*242881*/            OPC_EmitMergeInputChains1_2,
/*242882*/            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, (usubsat:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v8i16] }:$src0) - Complexity = 28
                      // Dst: (VPSUBUSWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*242896*/          /*SwitchOpcode*/ 54|128,2/*310*/, TARGET_VAL(ISD::MUL),// ->243210
/*242900*/            OPC_Scope, 23|128,1/*151*/, /*->243054*/ // 2 children in Scope
/*242903*/              OPC_RecordChild0, // #1 = $src1
/*242904*/              OPC_MoveChild1,
/*242905*/              OPC_SwitchOpcode /*2 cases */, 79, TARGET_VAL(ISD::LOAD),// ->242988
/*242909*/                OPC_RecordMemRef,
/*242910*/                OPC_RecordNode, // #2 = 'ld' chained node
/*242911*/                OPC_CheckFoldableChainNode,
/*242912*/                OPC_RecordChild1, // #3 = $src2
/*242913*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*242915*/                OPC_CheckPredicate, 9, // Predicate_load
/*242917*/                OPC_MoveParent,
/*242918*/                OPC_MoveParent,
/*242919*/                OPC_RecordChild2, // #4 = $src0
/*242920*/                OPC_SwitchType /*3 cases */, 20, MVT::v8i32,// ->242943
/*242923*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*242925*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*242928*/                  OPC_EmitMergeInputChains1_2,
/*242929*/                  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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VPMULLDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*242943*/                /*SwitchType*/ 20, MVT::v8i16,// ->242965
/*242945*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*242947*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*242950*/                  OPC_EmitMergeInputChains1_2,
/*242951*/                  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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v8i16] }:$src0) - Complexity = 28
                            // Dst: (VPMULLWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*242965*/                /*SwitchType*/ 20, MVT::v8i64,// ->242987
/*242967*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*242969*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*242972*/                  OPC_EmitMergeInputChains1_2,
/*242973*/                  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>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VPMULLQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*242987*/                0, // EndSwitchType
/*242988*/              /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->243053
/*242991*/                OPC_RecordMemRef,
/*242992*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*242993*/                OPC_CheckFoldableChainNode,
/*242994*/                OPC_RecordChild1, // #3 = $src2
/*242995*/                OPC_Scope, 27, /*->243024*/ // 2 children in Scope
/*242997*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*242999*/                  OPC_MoveParent,
/*243000*/                  OPC_MoveParent,
/*243001*/                  OPC_RecordChild2, // #4 = $src0
/*243002*/                  OPC_CheckType, MVT::v8i32,
/*243004*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*243006*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*243009*/                  OPC_EmitMergeInputChains1_2,
/*243010*/                  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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VPMULLDZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*243024*/                /*Scope*/ 27, /*->243052*/
/*243025*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*243027*/                  OPC_MoveParent,
/*243028*/                  OPC_MoveParent,
/*243029*/                  OPC_RecordChild2, // #4 = $src0
/*243030*/                  OPC_CheckType, MVT::v8i64,
/*243032*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*243034*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*243037*/                  OPC_EmitMergeInputChains1_2,
/*243038*/                  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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VPMULLQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*243052*/                0, /*End of Scope*/
/*243053*/              0, // EndSwitchOpcode
/*243054*/            /*Scope*/ 25|128,1/*153*/, /*->243209*/
/*243056*/              OPC_MoveChild0,
/*243057*/              OPC_SwitchOpcode /*2 cases */, 80, TARGET_VAL(ISD::LOAD),// ->243141
/*243061*/                OPC_RecordMemRef,
/*243062*/                OPC_RecordNode, // #1 = 'ld' chained node
/*243063*/                OPC_CheckFoldableChainNode,
/*243064*/                OPC_RecordChild1, // #2 = $src2
/*243065*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*243067*/                OPC_CheckPredicate, 9, // Predicate_load
/*243069*/                OPC_MoveParent,
/*243070*/                OPC_RecordChild1, // #3 = $src1
/*243071*/                OPC_MoveParent,
/*243072*/                OPC_RecordChild2, // #4 = $src0
/*243073*/                OPC_SwitchType /*3 cases */, 20, MVT::v8i32,// ->243096
/*243076*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*243078*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*243081*/                  OPC_EmitMergeInputChains1_1,
/*243082*/                  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] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8i32] }:$src1), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VPMULLDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*243096*/                /*SwitchType*/ 20, MVT::v8i16,// ->243118
/*243098*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*243100*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*243103*/                  OPC_EmitMergeInputChains1_1,
/*243104*/                  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] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1), VR128X:{ *:[v8i16] }:$src0) - Complexity = 28
                            // Dst: (VPMULLWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*243118*/                /*SwitchType*/ 20, MVT::v8i64,// ->243140
/*243120*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*243122*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*243125*/                  OPC_EmitMergeInputChains1_1,
/*243126*/                  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>>, VR512:{ *:[v8i64] }:$src1), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VPMULLQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*243140*/                0, // EndSwitchType
/*243141*/              /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->243208
/*243144*/                OPC_RecordMemRef,
/*243145*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*243146*/                OPC_CheckFoldableChainNode,
/*243147*/                OPC_RecordChild1, // #2 = $src2
/*243148*/                OPC_Scope, 28, /*->243178*/ // 2 children in Scope
/*243150*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*243152*/                  OPC_MoveParent,
/*243153*/                  OPC_RecordChild1, // #3 = $src1
/*243154*/                  OPC_MoveParent,
/*243155*/                  OPC_RecordChild2, // #4 = $src0
/*243156*/                  OPC_CheckType, MVT::v8i32,
/*243158*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*243160*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*243163*/                  OPC_EmitMergeInputChains1_1,
/*243164*/                  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] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8i32] }:$src1), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VPMULLDZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*243178*/                /*Scope*/ 28, /*->243207*/
/*243179*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*243181*/                  OPC_MoveParent,
/*243182*/                  OPC_RecordChild1, // #3 = $src1
/*243183*/                  OPC_MoveParent,
/*243184*/                  OPC_RecordChild2, // #4 = $src0
/*243185*/                  OPC_CheckType, MVT::v8i64,
/*243187*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*243189*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*243192*/                  OPC_EmitMergeInputChains1_1,
/*243193*/                  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] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8i64] }:$src1), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VPMULLQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*243207*/                0, /*End of Scope*/
/*243208*/              0, // EndSwitchOpcode
/*243209*/            0, /*End of Scope*/
/*243210*/          /*SwitchOpcode*/ 80, TARGET_VAL(ISD::MULHS),// ->243293
/*243213*/            OPC_Scope, 38, /*->243253*/ // 2 children in Scope
/*243215*/              OPC_RecordChild0, // #1 = $src1
/*243216*/              OPC_MoveChild1,
/*243217*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*243220*/              OPC_RecordMemRef,
/*243221*/              OPC_RecordNode, // #2 = 'ld' chained node
/*243222*/              OPC_CheckFoldableChainNode,
/*243223*/              OPC_RecordChild1, // #3 = $src2
/*243224*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*243226*/              OPC_CheckPredicate, 9, // Predicate_load
/*243228*/              OPC_MoveParent,
/*243229*/              OPC_MoveParent,
/*243230*/              OPC_RecordChild2, // #4 = $src0
/*243231*/              OPC_CheckType, MVT::v8i16,
/*243233*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*243235*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*243238*/              OPC_EmitMergeInputChains1_2,
/*243239*/              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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v8i16] }:$src0) - Complexity = 28
                        // Dst: (VPMULHWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*243253*/            /*Scope*/ 38, /*->243292*/
/*243254*/              OPC_MoveChild0,
/*243255*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*243258*/              OPC_RecordMemRef,
/*243259*/              OPC_RecordNode, // #1 = 'ld' chained node
/*243260*/              OPC_CheckFoldableChainNode,
/*243261*/              OPC_RecordChild1, // #2 = $src2
/*243262*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*243264*/              OPC_CheckPredicate, 9, // Predicate_load
/*243266*/              OPC_MoveParent,
/*243267*/              OPC_RecordChild1, // #3 = $src1
/*243268*/              OPC_MoveParent,
/*243269*/              OPC_RecordChild2, // #4 = $src0
/*243270*/              OPC_CheckType, MVT::v8i16,
/*243272*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*243274*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*243277*/              OPC_EmitMergeInputChains1_1,
/*243278*/              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] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1), VR128X:{ *:[v8i16] }:$src0) - Complexity = 28
                        // Dst: (VPMULHWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*243292*/            0, /*End of Scope*/
/*243293*/          /*SwitchOpcode*/ 80, TARGET_VAL(ISD::MULHU),// ->243376
/*243296*/            OPC_Scope, 38, /*->243336*/ // 2 children in Scope
/*243298*/              OPC_RecordChild0, // #1 = $src1
/*243299*/              OPC_MoveChild1,
/*243300*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*243303*/              OPC_RecordMemRef,
/*243304*/              OPC_RecordNode, // #2 = 'ld' chained node
/*243305*/              OPC_CheckFoldableChainNode,
/*243306*/              OPC_RecordChild1, // #3 = $src2
/*243307*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*243309*/              OPC_CheckPredicate, 9, // Predicate_load
/*243311*/              OPC_MoveParent,
/*243312*/              OPC_MoveParent,
/*243313*/              OPC_RecordChild2, // #4 = $src0
/*243314*/              OPC_CheckType, MVT::v8i16,
/*243316*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*243318*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*243321*/              OPC_EmitMergeInputChains1_2,
/*243322*/              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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v8i16] }:$src0) - Complexity = 28
                        // Dst: (VPMULHUWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*243336*/            /*Scope*/ 38, /*->243375*/
/*243337*/              OPC_MoveChild0,
/*243338*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*243341*/              OPC_RecordMemRef,
/*243342*/              OPC_RecordNode, // #1 = 'ld' chained node
/*243343*/              OPC_CheckFoldableChainNode,
/*243344*/              OPC_RecordChild1, // #2 = $src2
/*243345*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*243347*/              OPC_CheckPredicate, 9, // Predicate_load
/*243349*/              OPC_MoveParent,
/*243350*/              OPC_RecordChild1, // #3 = $src1
/*243351*/              OPC_MoveParent,
/*243352*/              OPC_RecordChild2, // #4 = $src0
/*243353*/              OPC_CheckType, MVT::v8i16,
/*243355*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*243357*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*243360*/              OPC_EmitMergeInputChains1_1,
/*243361*/              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] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1), VR128X:{ *:[v8i16] }:$src0) - Complexity = 28
                        // Dst: (VPMULHUWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*243375*/            0, /*End of Scope*/
/*243376*/          /*SwitchOpcode*/ 80, TARGET_VAL(X86ISD::MULHRS),// ->243459
/*243379*/            OPC_Scope, 38, /*->243419*/ // 2 children in Scope
/*243381*/              OPC_RecordChild0, // #1 = $src1
/*243382*/              OPC_MoveChild1,
/*243383*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*243386*/              OPC_RecordMemRef,
/*243387*/              OPC_RecordNode, // #2 = 'ld' chained node
/*243388*/              OPC_CheckFoldableChainNode,
/*243389*/              OPC_RecordChild1, // #3 = $src2
/*243390*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*243392*/              OPC_CheckPredicate, 9, // Predicate_load
/*243394*/              OPC_MoveParent,
/*243395*/              OPC_MoveParent,
/*243396*/              OPC_RecordChild2, // #4 = $src0
/*243397*/              OPC_CheckType, MVT::v8i16,
/*243399*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*243401*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*243404*/              OPC_EmitMergeInputChains1_2,
/*243405*/              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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v8i16] }:$src0) - Complexity = 28
                        // Dst: (VPMULHRSWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*243419*/            /*Scope*/ 38, /*->243458*/
/*243420*/              OPC_MoveChild0,
/*243421*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*243424*/              OPC_RecordMemRef,
/*243425*/              OPC_RecordNode, // #1 = 'ld' chained node
/*243426*/              OPC_CheckFoldableChainNode,
/*243427*/              OPC_RecordChild1, // #2 = $src2
/*243428*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*243430*/              OPC_CheckPredicate, 9, // Predicate_load
/*243432*/              OPC_MoveParent,
/*243433*/              OPC_RecordChild1, // #3 = $src1
/*243434*/              OPC_MoveParent,
/*243435*/              OPC_RecordChild2, // #4 = $src0
/*243436*/              OPC_CheckType, MVT::v8i16,
/*243438*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*243440*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*243443*/              OPC_EmitMergeInputChains1_1,
/*243444*/              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] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1), VR128X:{ *:[v8i16] }:$src0) - Complexity = 28
                        // Dst: (VPMULHRSWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*243458*/            0, /*End of Scope*/
/*243459*/          /*SwitchOpcode*/ 80, TARGET_VAL(X86ISD::AVG),// ->243542
/*243462*/            OPC_Scope, 38, /*->243502*/ // 2 children in Scope
/*243464*/              OPC_RecordChild0, // #1 = $src1
/*243465*/              OPC_MoveChild1,
/*243466*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*243469*/              OPC_RecordMemRef,
/*243470*/              OPC_RecordNode, // #2 = 'ld' chained node
/*243471*/              OPC_CheckFoldableChainNode,
/*243472*/              OPC_RecordChild1, // #3 = $src2
/*243473*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*243475*/              OPC_CheckPredicate, 9, // Predicate_load
/*243477*/              OPC_MoveParent,
/*243478*/              OPC_MoveParent,
/*243479*/              OPC_RecordChild2, // #4 = $src0
/*243480*/              OPC_CheckType, MVT::v8i16,
/*243482*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*243484*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*243487*/              OPC_EmitMergeInputChains1_2,
/*243488*/              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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v8i16] }:$src0) - Complexity = 28
                        // Dst: (VPAVGWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*243502*/            /*Scope*/ 38, /*->243541*/
/*243503*/              OPC_MoveChild0,
/*243504*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*243507*/              OPC_RecordMemRef,
/*243508*/              OPC_RecordNode, // #1 = 'ld' chained node
/*243509*/              OPC_CheckFoldableChainNode,
/*243510*/              OPC_RecordChild1, // #2 = $src2
/*243511*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*243513*/              OPC_CheckPredicate, 9, // Predicate_load
/*243515*/              OPC_MoveParent,
/*243516*/              OPC_RecordChild1, // #3 = $src1
/*243517*/              OPC_MoveParent,
/*243518*/              OPC_RecordChild2, // #4 = $src0
/*243519*/              OPC_CheckType, MVT::v8i16,
/*243521*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*243523*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*243526*/              OPC_EmitMergeInputChains1_1,
/*243527*/              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] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1), VR128X:{ *:[v8i16] }:$src0) - Complexity = 28
                        // Dst: (VPAVGWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*243541*/            0, /*End of Scope*/
/*243542*/          /*SwitchOpcode*/ 25|128,1/*153*/, TARGET_VAL(X86ISD::PMULDQ),// ->243699
/*243546*/            OPC_Scope, 74, /*->243622*/ // 2 children in Scope
/*243548*/              OPC_RecordChild0, // #1 = $src1
/*243549*/              OPC_MoveChild1,
/*243550*/              OPC_SwitchOpcode /*2 cases */, 33, TARGET_VAL(ISD::LOAD),// ->243587
/*243554*/                OPC_RecordMemRef,
/*243555*/                OPC_RecordNode, // #2 = 'ld' chained node
/*243556*/                OPC_CheckFoldableChainNode,
/*243557*/                OPC_RecordChild1, // #3 = $src2
/*243558*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*243560*/                OPC_CheckPredicate, 9, // Predicate_load
/*243562*/                OPC_MoveParent,
/*243563*/                OPC_MoveParent,
/*243564*/                OPC_RecordChild2, // #4 = $src0
/*243565*/                OPC_CheckType, MVT::v8i64,
/*243567*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*243569*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*243572*/                OPC_EmitMergeInputChains1_2,
/*243573*/                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>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                          // Dst: (VPMULDQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*243587*/              /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->243621
/*243590*/                OPC_RecordMemRef,
/*243591*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*243592*/                OPC_CheckFoldableChainNode,
/*243593*/                OPC_RecordChild1, // #3 = $src2
/*243594*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*243596*/                OPC_MoveParent,
/*243597*/                OPC_MoveParent,
/*243598*/                OPC_RecordChild2, // #4 = $src0
/*243599*/                OPC_CheckType, MVT::v8i64,
/*243601*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*243603*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*243606*/                OPC_EmitMergeInputChains1_2,
/*243607*/                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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                          // Dst: (VPMULDQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*243621*/              0, // EndSwitchOpcode
/*243622*/            /*Scope*/ 75, /*->243698*/
/*243623*/              OPC_MoveChild0,
/*243624*/              OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->243662
/*243628*/                OPC_RecordMemRef,
/*243629*/                OPC_RecordNode, // #1 = 'ld' chained node
/*243630*/                OPC_CheckFoldableChainNode,
/*243631*/                OPC_RecordChild1, // #2 = $src2
/*243632*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*243634*/                OPC_CheckPredicate, 9, // Predicate_load
/*243636*/                OPC_MoveParent,
/*243637*/                OPC_RecordChild1, // #3 = $src1
/*243638*/                OPC_MoveParent,
/*243639*/                OPC_RecordChild2, // #4 = $src0
/*243640*/                OPC_CheckType, MVT::v8i64,
/*243642*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*243644*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*243647*/                OPC_EmitMergeInputChains1_1,
/*243648*/                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>>, VR512:{ *:[v8i64] }:$src1), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                          // Dst: (VPMULDQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*243662*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->243697
/*243665*/                OPC_RecordMemRef,
/*243666*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*243667*/                OPC_CheckFoldableChainNode,
/*243668*/                OPC_RecordChild1, // #2 = $src2
/*243669*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*243671*/                OPC_MoveParent,
/*243672*/                OPC_RecordChild1, // #3 = $src1
/*243673*/                OPC_MoveParent,
/*243674*/                OPC_RecordChild2, // #4 = $src0
/*243675*/                OPC_CheckType, MVT::v8i64,
/*243677*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*243679*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*243682*/                OPC_EmitMergeInputChains1_1,
/*243683*/                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] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8i64] }:$src1), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                          // Dst: (VPMULDQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*243697*/              0, // EndSwitchOpcode
/*243698*/            0, /*End of Scope*/
/*243699*/          /*SwitchOpcode*/ 25|128,1/*153*/, TARGET_VAL(X86ISD::PMULUDQ),// ->243856
/*243703*/            OPC_Scope, 74, /*->243779*/ // 2 children in Scope
/*243705*/              OPC_RecordChild0, // #1 = $src1
/*243706*/              OPC_MoveChild1,
/*243707*/              OPC_SwitchOpcode /*2 cases */, 33, TARGET_VAL(ISD::LOAD),// ->243744
/*243711*/                OPC_RecordMemRef,
/*243712*/                OPC_RecordNode, // #2 = 'ld' chained node
/*243713*/                OPC_CheckFoldableChainNode,
/*243714*/                OPC_RecordChild1, // #3 = $src2
/*243715*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*243717*/                OPC_CheckPredicate, 9, // Predicate_load
/*243719*/                OPC_MoveParent,
/*243720*/                OPC_MoveParent,
/*243721*/                OPC_RecordChild2, // #4 = $src0
/*243722*/                OPC_CheckType, MVT::v8i64,
/*243724*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*243726*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*243729*/                OPC_EmitMergeInputChains1_2,
/*243730*/                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>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                          // Dst: (VPMULUDQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*243744*/              /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->243778
/*243747*/                OPC_RecordMemRef,
/*243748*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*243749*/                OPC_CheckFoldableChainNode,
/*243750*/                OPC_RecordChild1, // #3 = $src2
/*243751*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*243753*/                OPC_MoveParent,
/*243754*/                OPC_MoveParent,
/*243755*/                OPC_RecordChild2, // #4 = $src0
/*243756*/                OPC_CheckType, MVT::v8i64,
/*243758*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*243760*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*243763*/                OPC_EmitMergeInputChains1_2,
/*243764*/                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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                          // Dst: (VPMULUDQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*243778*/              0, // EndSwitchOpcode
/*243779*/            /*Scope*/ 75, /*->243855*/
/*243780*/              OPC_MoveChild0,
/*243781*/              OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->243819
/*243785*/                OPC_RecordMemRef,
/*243786*/                OPC_RecordNode, // #1 = 'ld' chained node
/*243787*/                OPC_CheckFoldableChainNode,
/*243788*/                OPC_RecordChild1, // #2 = $src2
/*243789*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*243791*/                OPC_CheckPredicate, 9, // Predicate_load
/*243793*/                OPC_MoveParent,
/*243794*/                OPC_RecordChild1, // #3 = $src1
/*243795*/                OPC_MoveParent,
/*243796*/                OPC_RecordChild2, // #4 = $src0
/*243797*/                OPC_CheckType, MVT::v8i64,
/*243799*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*243801*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*243804*/                OPC_EmitMergeInputChains1_1,
/*243805*/                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>>, VR512:{ *:[v8i64] }:$src1), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                          // Dst: (VPMULUDQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*243819*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->243854
/*243822*/                OPC_RecordMemRef,
/*243823*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*243824*/                OPC_CheckFoldableChainNode,
/*243825*/                OPC_RecordChild1, // #2 = $src2
/*243826*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*243828*/                OPC_MoveParent,
/*243829*/                OPC_RecordChild1, // #3 = $src1
/*243830*/                OPC_MoveParent,
/*243831*/                OPC_RecordChild2, // #4 = $src0
/*243832*/                OPC_CheckType, MVT::v8i64,
/*243834*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*243836*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*243839*/                OPC_EmitMergeInputChains1_1,
/*243840*/                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] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8i64] }:$src1), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                          // Dst: (VPMULUDQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*243854*/              0, // EndSwitchOpcode
/*243855*/            0, /*End of Scope*/
/*243856*/          /*SwitchOpcode*/ 76, TARGET_VAL(X86ISD::PACKSS),// ->243935
/*243859*/            OPC_RecordChild0, // #1 = $src1
/*243860*/            OPC_CheckChild0Type, MVT::v4i32,
/*243862*/            OPC_MoveChild1,
/*243863*/            OPC_SwitchOpcode /*2 cases */, 33, TARGET_VAL(ISD::LOAD),// ->243900
/*243867*/              OPC_RecordMemRef,
/*243868*/              OPC_RecordNode, // #2 = 'ld' chained node
/*243869*/              OPC_CheckFoldableChainNode,
/*243870*/              OPC_RecordChild1, // #3 = $src2
/*243871*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*243873*/              OPC_CheckPredicate, 9, // Predicate_load
/*243875*/              OPC_MoveParent,
/*243876*/              OPC_MoveParent,
/*243877*/              OPC_RecordChild2, // #4 = $src0
/*243878*/              OPC_CheckType, MVT::v8i16,
/*243880*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*243882*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*243885*/              OPC_EmitMergeInputChains1_2,
/*243886*/              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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v8i16] }:$src0) - Complexity = 28
                        // Dst: (VPACKSSDWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*243900*/            /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->243934
/*243903*/              OPC_RecordMemRef,
/*243904*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*243905*/              OPC_CheckFoldableChainNode,
/*243906*/              OPC_RecordChild1, // #3 = $src2
/*243907*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*243909*/              OPC_MoveParent,
/*243910*/              OPC_MoveParent,
/*243911*/              OPC_RecordChild2, // #4 = $src0
/*243912*/              OPC_CheckType, MVT::v8i16,
/*243914*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*243916*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*243919*/              OPC_EmitMergeInputChains1_2,
/*243920*/              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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v8i16] }:$src0) - Complexity = 28
                        // Dst: (VPACKSSDWZ128rmbk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*243934*/            0, // EndSwitchOpcode
/*243935*/          /*SwitchOpcode*/ 76, TARGET_VAL(X86ISD::PACKUS),// ->244014
/*243938*/            OPC_RecordChild0, // #1 = $src1
/*243939*/            OPC_CheckChild0Type, MVT::v4i32,
/*243941*/            OPC_MoveChild1,
/*243942*/            OPC_SwitchOpcode /*2 cases */, 33, TARGET_VAL(ISD::LOAD),// ->243979
/*243946*/              OPC_RecordMemRef,
/*243947*/              OPC_RecordNode, // #2 = 'ld' chained node
/*243948*/              OPC_CheckFoldableChainNode,
/*243949*/              OPC_RecordChild1, // #3 = $src2
/*243950*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*243952*/              OPC_CheckPredicate, 9, // Predicate_load
/*243954*/              OPC_MoveParent,
/*243955*/              OPC_MoveParent,
/*243956*/              OPC_RecordChild2, // #4 = $src0
/*243957*/              OPC_CheckType, MVT::v8i16,
/*243959*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*243961*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*243964*/              OPC_EmitMergeInputChains1_2,
/*243965*/              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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v8i16] }:$src0) - Complexity = 28
                        // Dst: (VPACKUSDWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*243979*/            /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->244013
/*243982*/              OPC_RecordMemRef,
/*243983*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*243984*/              OPC_CheckFoldableChainNode,
/*243985*/              OPC_RecordChild1, // #3 = $src2
/*243986*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*243988*/              OPC_MoveParent,
/*243989*/              OPC_MoveParent,
/*243990*/              OPC_RecordChild2, // #4 = $src0
/*243991*/              OPC_CheckType, MVT::v8i16,
/*243993*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*243995*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*243998*/              OPC_EmitMergeInputChains1_2,
/*243999*/              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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v8i16] }:$src0) - Complexity = 28
                        // Dst: (VPACKUSDWZ128rmbk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*244013*/            0, // EndSwitchOpcode
/*244014*/          /*SwitchOpcode*/ 38, TARGET_VAL(X86ISD::VPMADDUBSW),// ->244055
/*244017*/            OPC_RecordChild0, // #1 = $src1
/*244018*/            OPC_MoveChild1,
/*244019*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*244022*/            OPC_RecordMemRef,
/*244023*/            OPC_RecordNode, // #2 = 'ld' chained node
/*244024*/            OPC_CheckFoldableChainNode,
/*244025*/            OPC_RecordChild1, // #3 = $src2
/*244026*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*244028*/            OPC_CheckPredicate, 9, // Predicate_load
/*244030*/            OPC_MoveParent,
/*244031*/            OPC_MoveParent,
/*244032*/            OPC_RecordChild2, // #4 = $src0
/*244033*/            OPC_CheckType, MVT::v8i16,
/*244035*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*244037*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*244040*/            OPC_EmitMergeInputChains1_2,
/*244041*/            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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v8i16] }:$src0) - Complexity = 28
                      // Dst: (VPMADDUBSWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*244055*/          /*SwitchOpcode*/ 80, TARGET_VAL(X86ISD::VPMADDWD),// ->244138
/*244058*/            OPC_Scope, 38, /*->244098*/ // 2 children in Scope
/*244060*/              OPC_RecordChild0, // #1 = $src1
/*244061*/              OPC_MoveChild1,
/*244062*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*244065*/              OPC_RecordMemRef,
/*244066*/              OPC_RecordNode, // #2 = 'ld' chained node
/*244067*/              OPC_CheckFoldableChainNode,
/*244068*/              OPC_RecordChild1, // #3 = $src2
/*244069*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*244071*/              OPC_CheckPredicate, 9, // Predicate_load
/*244073*/              OPC_MoveParent,
/*244074*/              OPC_MoveParent,
/*244075*/              OPC_RecordChild2, // #4 = $src0
/*244076*/              OPC_CheckType, MVT::v8i32,
/*244078*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*244080*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*244083*/              OPC_EmitMergeInputChains1_2,
/*244084*/              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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                        // Dst: (VPMADDWDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*244098*/            /*Scope*/ 38, /*->244137*/
/*244099*/              OPC_MoveChild0,
/*244100*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*244103*/              OPC_RecordMemRef,
/*244104*/              OPC_RecordNode, // #1 = 'ld' chained node
/*244105*/              OPC_CheckFoldableChainNode,
/*244106*/              OPC_RecordChild1, // #2 = $src2
/*244107*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*244109*/              OPC_CheckPredicate, 9, // Predicate_load
/*244111*/              OPC_MoveParent,
/*244112*/              OPC_RecordChild1, // #3 = $src1
/*244113*/              OPC_MoveParent,
/*244114*/              OPC_RecordChild2, // #4 = $src0
/*244115*/              OPC_CheckType, MVT::v8i32,
/*244117*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*244119*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*244122*/              OPC_EmitMergeInputChains1_1,
/*244123*/              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] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                        // Dst: (VPMADDWDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*244137*/            0, /*End of Scope*/
/*244138*/          /*SwitchOpcode*/ 54|128,2/*310*/, TARGET_VAL(ISD::SMAX),// ->244452
/*244142*/            OPC_Scope, 23|128,1/*151*/, /*->244296*/ // 2 children in Scope
/*244145*/              OPC_RecordChild0, // #1 = $src1
/*244146*/              OPC_MoveChild1,
/*244147*/              OPC_SwitchOpcode /*2 cases */, 79, TARGET_VAL(ISD::LOAD),// ->244230
/*244151*/                OPC_RecordMemRef,
/*244152*/                OPC_RecordNode, // #2 = 'ld' chained node
/*244153*/                OPC_CheckFoldableChainNode,
/*244154*/                OPC_RecordChild1, // #3 = $src2
/*244155*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*244157*/                OPC_CheckPredicate, 9, // Predicate_load
/*244159*/                OPC_MoveParent,
/*244160*/                OPC_MoveParent,
/*244161*/                OPC_RecordChild2, // #4 = $src0
/*244162*/                OPC_SwitchType /*3 cases */, 20, MVT::v8i16,// ->244185
/*244165*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*244167*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*244170*/                  OPC_EmitMergeInputChains1_2,
/*244171*/                  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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v8i16] }:$src0) - Complexity = 28
                            // Dst: (VPMAXSWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*244185*/                /*SwitchType*/ 20, MVT::v8i32,// ->244207
/*244187*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*244189*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*244192*/                  OPC_EmitMergeInputChains1_2,
/*244193*/                  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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VPMAXSDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*244207*/                /*SwitchType*/ 20, MVT::v8i64,// ->244229
/*244209*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*244211*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*244214*/                  OPC_EmitMergeInputChains1_2,
/*244215*/                  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>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VPMAXSQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*244229*/                0, // EndSwitchType
/*244230*/              /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->244295
/*244233*/                OPC_RecordMemRef,
/*244234*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*244235*/                OPC_CheckFoldableChainNode,
/*244236*/                OPC_RecordChild1, // #3 = $src2
/*244237*/                OPC_Scope, 27, /*->244266*/ // 2 children in Scope
/*244239*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*244241*/                  OPC_MoveParent,
/*244242*/                  OPC_MoveParent,
/*244243*/                  OPC_RecordChild2, // #4 = $src0
/*244244*/                  OPC_CheckType, MVT::v8i32,
/*244246*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*244248*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*244251*/                  OPC_EmitMergeInputChains1_2,
/*244252*/                  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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VPMAXSDZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*244266*/                /*Scope*/ 27, /*->244294*/
/*244267*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*244269*/                  OPC_MoveParent,
/*244270*/                  OPC_MoveParent,
/*244271*/                  OPC_RecordChild2, // #4 = $src0
/*244272*/                  OPC_CheckType, MVT::v8i64,
/*244274*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*244276*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*244279*/                  OPC_EmitMergeInputChains1_2,
/*244280*/                  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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VPMAXSQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*244294*/                0, /*End of Scope*/
/*244295*/              0, // EndSwitchOpcode
/*244296*/            /*Scope*/ 25|128,1/*153*/, /*->244451*/
/*244298*/              OPC_MoveChild0,
/*244299*/              OPC_SwitchOpcode /*2 cases */, 80, TARGET_VAL(ISD::LOAD),// ->244383
/*244303*/                OPC_RecordMemRef,
/*244304*/                OPC_RecordNode, // #1 = 'ld' chained node
/*244305*/                OPC_CheckFoldableChainNode,
/*244306*/                OPC_RecordChild1, // #2 = $src2
/*244307*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*244309*/                OPC_CheckPredicate, 9, // Predicate_load
/*244311*/                OPC_MoveParent,
/*244312*/                OPC_RecordChild1, // #3 = $src1
/*244313*/                OPC_MoveParent,
/*244314*/                OPC_RecordChild2, // #4 = $src0
/*244315*/                OPC_SwitchType /*3 cases */, 20, MVT::v8i16,// ->244338
/*244318*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*244320*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*244323*/                  OPC_EmitMergeInputChains1_1,
/*244324*/                  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] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1), VR128X:{ *:[v8i16] }:$src0) - Complexity = 28
                            // Dst: (VPMAXSWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*244338*/                /*SwitchType*/ 20, MVT::v8i32,// ->244360
/*244340*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*244342*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*244345*/                  OPC_EmitMergeInputChains1_1,
/*244346*/                  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] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8i32] }:$src1), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VPMAXSDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*244360*/                /*SwitchType*/ 20, MVT::v8i64,// ->244382
/*244362*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*244364*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*244367*/                  OPC_EmitMergeInputChains1_1,
/*244368*/                  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>>, VR512:{ *:[v8i64] }:$src1), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VPMAXSQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*244382*/                0, // EndSwitchType
/*244383*/              /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->244450
/*244386*/                OPC_RecordMemRef,
/*244387*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*244388*/                OPC_CheckFoldableChainNode,
/*244389*/                OPC_RecordChild1, // #2 = $src2
/*244390*/                OPC_Scope, 28, /*->244420*/ // 2 children in Scope
/*244392*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*244394*/                  OPC_MoveParent,
/*244395*/                  OPC_RecordChild1, // #3 = $src1
/*244396*/                  OPC_MoveParent,
/*244397*/                  OPC_RecordChild2, // #4 = $src0
/*244398*/                  OPC_CheckType, MVT::v8i32,
/*244400*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*244402*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*244405*/                  OPC_EmitMergeInputChains1_1,
/*244406*/                  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] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8i32] }:$src1), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VPMAXSDZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*244420*/                /*Scope*/ 28, /*->244449*/
/*244421*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*244423*/                  OPC_MoveParent,
/*244424*/                  OPC_RecordChild1, // #3 = $src1
/*244425*/                  OPC_MoveParent,
/*244426*/                  OPC_RecordChild2, // #4 = $src0
/*244427*/                  OPC_CheckType, MVT::v8i64,
/*244429*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*244431*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*244434*/                  OPC_EmitMergeInputChains1_1,
/*244435*/                  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] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8i64] }:$src1), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VPMAXSQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*244449*/                0, /*End of Scope*/
/*244450*/              0, // EndSwitchOpcode
/*244451*/            0, /*End of Scope*/
/*244452*/          /*SwitchOpcode*/ 54|128,2/*310*/, TARGET_VAL(ISD::UMAX),// ->244766
/*244456*/            OPC_Scope, 23|128,1/*151*/, /*->244610*/ // 2 children in Scope
/*244459*/              OPC_RecordChild0, // #1 = $src1
/*244460*/              OPC_MoveChild1,
/*244461*/              OPC_SwitchOpcode /*2 cases */, 79, TARGET_VAL(ISD::LOAD),// ->244544
/*244465*/                OPC_RecordMemRef,
/*244466*/                OPC_RecordNode, // #2 = 'ld' chained node
/*244467*/                OPC_CheckFoldableChainNode,
/*244468*/                OPC_RecordChild1, // #3 = $src2
/*244469*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*244471*/                OPC_CheckPredicate, 9, // Predicate_load
/*244473*/                OPC_MoveParent,
/*244474*/                OPC_MoveParent,
/*244475*/                OPC_RecordChild2, // #4 = $src0
/*244476*/                OPC_SwitchType /*3 cases */, 20, MVT::v8i16,// ->244499
/*244479*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*244481*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*244484*/                  OPC_EmitMergeInputChains1_2,
/*244485*/                  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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v8i16] }:$src0) - Complexity = 28
                            // Dst: (VPMAXUWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*244499*/                /*SwitchType*/ 20, MVT::v8i32,// ->244521
/*244501*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*244503*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*244506*/                  OPC_EmitMergeInputChains1_2,
/*244507*/                  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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VPMAXUDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*244521*/                /*SwitchType*/ 20, MVT::v8i64,// ->244543
/*244523*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*244525*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*244528*/                  OPC_EmitMergeInputChains1_2,
/*244529*/                  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>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VPMAXUQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*244543*/                0, // EndSwitchType
/*244544*/              /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->244609
/*244547*/                OPC_RecordMemRef,
/*244548*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*244549*/                OPC_CheckFoldableChainNode,
/*244550*/                OPC_RecordChild1, // #3 = $src2
/*244551*/                OPC_Scope, 27, /*->244580*/ // 2 children in Scope
/*244553*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*244555*/                  OPC_MoveParent,
/*244556*/                  OPC_MoveParent,
/*244557*/                  OPC_RecordChild2, // #4 = $src0
/*244558*/                  OPC_CheckType, MVT::v8i32,
/*244560*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*244562*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*244565*/                  OPC_EmitMergeInputChains1_2,
/*244566*/                  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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VPMAXUDZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*244580*/                /*Scope*/ 27, /*->244608*/
/*244581*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*244583*/                  OPC_MoveParent,
/*244584*/                  OPC_MoveParent,
/*244585*/                  OPC_RecordChild2, // #4 = $src0
/*244586*/                  OPC_CheckType, MVT::v8i64,
/*244588*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*244590*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*244593*/                  OPC_EmitMergeInputChains1_2,
/*244594*/                  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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VPMAXUQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*244608*/                0, /*End of Scope*/
/*244609*/              0, // EndSwitchOpcode
/*244610*/            /*Scope*/ 25|128,1/*153*/, /*->244765*/
/*244612*/              OPC_MoveChild0,
/*244613*/              OPC_SwitchOpcode /*2 cases */, 80, TARGET_VAL(ISD::LOAD),// ->244697
/*244617*/                OPC_RecordMemRef,
/*244618*/                OPC_RecordNode, // #1 = 'ld' chained node
/*244619*/                OPC_CheckFoldableChainNode,
/*244620*/                OPC_RecordChild1, // #2 = $src2
/*244621*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*244623*/                OPC_CheckPredicate, 9, // Predicate_load
/*244625*/                OPC_MoveParent,
/*244626*/                OPC_RecordChild1, // #3 = $src1
/*244627*/                OPC_MoveParent,
/*244628*/                OPC_RecordChild2, // #4 = $src0
/*244629*/                OPC_SwitchType /*3 cases */, 20, MVT::v8i16,// ->244652
/*244632*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*244634*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*244637*/                  OPC_EmitMergeInputChains1_1,
/*244638*/                  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] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1), VR128X:{ *:[v8i16] }:$src0) - Complexity = 28
                            // Dst: (VPMAXUWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*244652*/                /*SwitchType*/ 20, MVT::v8i32,// ->244674
/*244654*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*244656*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*244659*/                  OPC_EmitMergeInputChains1_1,
/*244660*/                  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] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8i32] }:$src1), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VPMAXUDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*244674*/                /*SwitchType*/ 20, MVT::v8i64,// ->244696
/*244676*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*244678*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*244681*/                  OPC_EmitMergeInputChains1_1,
/*244682*/                  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>>, VR512:{ *:[v8i64] }:$src1), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VPMAXUQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*244696*/                0, // EndSwitchType
/*244697*/              /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->244764
/*244700*/                OPC_RecordMemRef,
/*244701*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*244702*/                OPC_CheckFoldableChainNode,
/*244703*/                OPC_RecordChild1, // #2 = $src2
/*244704*/                OPC_Scope, 28, /*->244734*/ // 2 children in Scope
/*244706*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*244708*/                  OPC_MoveParent,
/*244709*/                  OPC_RecordChild1, // #3 = $src1
/*244710*/                  OPC_MoveParent,
/*244711*/                  OPC_RecordChild2, // #4 = $src0
/*244712*/                  OPC_CheckType, MVT::v8i32,
/*244714*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*244716*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*244719*/                  OPC_EmitMergeInputChains1_1,
/*244720*/                  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] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8i32] }:$src1), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VPMAXUDZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*244734*/                /*Scope*/ 28, /*->244763*/
/*244735*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*244737*/                  OPC_MoveParent,
/*244738*/                  OPC_RecordChild1, // #3 = $src1
/*244739*/                  OPC_MoveParent,
/*244740*/                  OPC_RecordChild2, // #4 = $src0
/*244741*/                  OPC_CheckType, MVT::v8i64,
/*244743*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*244745*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*244748*/                  OPC_EmitMergeInputChains1_1,
/*244749*/                  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] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8i64] }:$src1), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VPMAXUQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*244763*/                0, /*End of Scope*/
/*244764*/              0, // EndSwitchOpcode
/*244765*/            0, /*End of Scope*/
/*244766*/          /*SwitchOpcode*/ 54|128,2/*310*/, TARGET_VAL(ISD::SMIN),// ->245080
/*244770*/            OPC_Scope, 23|128,1/*151*/, /*->244924*/ // 2 children in Scope
/*244773*/              OPC_RecordChild0, // #1 = $src1
/*244774*/              OPC_MoveChild1,
/*244775*/              OPC_SwitchOpcode /*2 cases */, 79, TARGET_VAL(ISD::LOAD),// ->244858
/*244779*/                OPC_RecordMemRef,
/*244780*/                OPC_RecordNode, // #2 = 'ld' chained node
/*244781*/                OPC_CheckFoldableChainNode,
/*244782*/                OPC_RecordChild1, // #3 = $src2
/*244783*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*244785*/                OPC_CheckPredicate, 9, // Predicate_load
/*244787*/                OPC_MoveParent,
/*244788*/                OPC_MoveParent,
/*244789*/                OPC_RecordChild2, // #4 = $src0
/*244790*/                OPC_SwitchType /*3 cases */, 20, MVT::v8i16,// ->244813
/*244793*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*244795*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*244798*/                  OPC_EmitMergeInputChains1_2,
/*244799*/                  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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v8i16] }:$src0) - Complexity = 28
                            // Dst: (VPMINSWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*244813*/                /*SwitchType*/ 20, MVT::v8i32,// ->244835
/*244815*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*244817*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*244820*/                  OPC_EmitMergeInputChains1_2,
/*244821*/                  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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VPMINSDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*244835*/                /*SwitchType*/ 20, MVT::v8i64,// ->244857
/*244837*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*244839*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*244842*/                  OPC_EmitMergeInputChains1_2,
/*244843*/                  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>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VPMINSQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*244857*/                0, // EndSwitchType
/*244858*/              /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->244923
/*244861*/                OPC_RecordMemRef,
/*244862*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*244863*/                OPC_CheckFoldableChainNode,
/*244864*/                OPC_RecordChild1, // #3 = $src2
/*244865*/                OPC_Scope, 27, /*->244894*/ // 2 children in Scope
/*244867*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*244869*/                  OPC_MoveParent,
/*244870*/                  OPC_MoveParent,
/*244871*/                  OPC_RecordChild2, // #4 = $src0
/*244872*/                  OPC_CheckType, MVT::v8i32,
/*244874*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*244876*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*244879*/                  OPC_EmitMergeInputChains1_2,
/*244880*/                  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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VPMINSDZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*244894*/                /*Scope*/ 27, /*->244922*/
/*244895*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*244897*/                  OPC_MoveParent,
/*244898*/                  OPC_MoveParent,
/*244899*/                  OPC_RecordChild2, // #4 = $src0
/*244900*/                  OPC_CheckType, MVT::v8i64,
/*244902*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*244904*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*244907*/                  OPC_EmitMergeInputChains1_2,
/*244908*/                  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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VPMINSQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*244922*/                0, /*End of Scope*/
/*244923*/              0, // EndSwitchOpcode
/*244924*/            /*Scope*/ 25|128,1/*153*/, /*->245079*/
/*244926*/              OPC_MoveChild0,
/*244927*/              OPC_SwitchOpcode /*2 cases */, 80, TARGET_VAL(ISD::LOAD),// ->245011
/*244931*/                OPC_RecordMemRef,
/*244932*/                OPC_RecordNode, // #1 = 'ld' chained node
/*244933*/                OPC_CheckFoldableChainNode,
/*244934*/                OPC_RecordChild1, // #2 = $src2
/*244935*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*244937*/                OPC_CheckPredicate, 9, // Predicate_load
/*244939*/                OPC_MoveParent,
/*244940*/                OPC_RecordChild1, // #3 = $src1
/*244941*/                OPC_MoveParent,
/*244942*/                OPC_RecordChild2, // #4 = $src0
/*244943*/                OPC_SwitchType /*3 cases */, 20, MVT::v8i16,// ->244966
/*244946*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*244948*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*244951*/                  OPC_EmitMergeInputChains1_1,
/*244952*/                  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] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1), VR128X:{ *:[v8i16] }:$src0) - Complexity = 28
                            // Dst: (VPMINSWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*244966*/                /*SwitchType*/ 20, MVT::v8i32,// ->244988
/*244968*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*244970*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*244973*/                  OPC_EmitMergeInputChains1_1,
/*244974*/                  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] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8i32] }:$src1), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VPMINSDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*244988*/                /*SwitchType*/ 20, MVT::v8i64,// ->245010
/*244990*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*244992*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*244995*/                  OPC_EmitMergeInputChains1_1,
/*244996*/                  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>>, VR512:{ *:[v8i64] }:$src1), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VPMINSQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*245010*/                0, // EndSwitchType
/*245011*/              /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->245078
/*245014*/                OPC_RecordMemRef,
/*245015*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*245016*/                OPC_CheckFoldableChainNode,
/*245017*/                OPC_RecordChild1, // #2 = $src2
/*245018*/                OPC_Scope, 28, /*->245048*/ // 2 children in Scope
/*245020*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*245022*/                  OPC_MoveParent,
/*245023*/                  OPC_RecordChild1, // #3 = $src1
/*245024*/                  OPC_MoveParent,
/*245025*/                  OPC_RecordChild2, // #4 = $src0
/*245026*/                  OPC_CheckType, MVT::v8i32,
/*245028*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*245030*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*245033*/                  OPC_EmitMergeInputChains1_1,
/*245034*/                  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] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8i32] }:$src1), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VPMINSDZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*245048*/                /*Scope*/ 28, /*->245077*/
/*245049*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*245051*/                  OPC_MoveParent,
/*245052*/                  OPC_RecordChild1, // #3 = $src1
/*245053*/                  OPC_MoveParent,
/*245054*/                  OPC_RecordChild2, // #4 = $src0
/*245055*/                  OPC_CheckType, MVT::v8i64,
/*245057*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*245059*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*245062*/                  OPC_EmitMergeInputChains1_1,
/*245063*/                  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] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8i64] }:$src1), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VPMINSQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*245077*/                0, /*End of Scope*/
/*245078*/              0, // EndSwitchOpcode
/*245079*/            0, /*End of Scope*/
/*245080*/          /*SwitchOpcode*/ 54|128,2/*310*/, TARGET_VAL(ISD::UMIN),// ->245394
/*245084*/            OPC_Scope, 23|128,1/*151*/, /*->245238*/ // 2 children in Scope
/*245087*/              OPC_RecordChild0, // #1 = $src1
/*245088*/              OPC_MoveChild1,
/*245089*/              OPC_SwitchOpcode /*2 cases */, 79, TARGET_VAL(ISD::LOAD),// ->245172
/*245093*/                OPC_RecordMemRef,
/*245094*/                OPC_RecordNode, // #2 = 'ld' chained node
/*245095*/                OPC_CheckFoldableChainNode,
/*245096*/                OPC_RecordChild1, // #3 = $src2
/*245097*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*245099*/                OPC_CheckPredicate, 9, // Predicate_load
/*245101*/                OPC_MoveParent,
/*245102*/                OPC_MoveParent,
/*245103*/                OPC_RecordChild2, // #4 = $src0
/*245104*/                OPC_SwitchType /*3 cases */, 20, MVT::v8i16,// ->245127
/*245107*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*245109*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*245112*/                  OPC_EmitMergeInputChains1_2,
/*245113*/                  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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v8i16] }:$src0) - Complexity = 28
                            // Dst: (VPMINUWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*245127*/                /*SwitchType*/ 20, MVT::v8i32,// ->245149
/*245129*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*245131*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*245134*/                  OPC_EmitMergeInputChains1_2,
/*245135*/                  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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VPMINUDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*245149*/                /*SwitchType*/ 20, MVT::v8i64,// ->245171
/*245151*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*245153*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*245156*/                  OPC_EmitMergeInputChains1_2,
/*245157*/                  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>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VPMINUQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*245171*/                0, // EndSwitchType
/*245172*/              /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->245237
/*245175*/                OPC_RecordMemRef,
/*245176*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*245177*/                OPC_CheckFoldableChainNode,
/*245178*/                OPC_RecordChild1, // #3 = $src2
/*245179*/                OPC_Scope, 27, /*->245208*/ // 2 children in Scope
/*245181*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*245183*/                  OPC_MoveParent,
/*245184*/                  OPC_MoveParent,
/*245185*/                  OPC_RecordChild2, // #4 = $src0
/*245186*/                  OPC_CheckType, MVT::v8i32,
/*245188*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*245190*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*245193*/                  OPC_EmitMergeInputChains1_2,
/*245194*/                  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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VPMINUDZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*245208*/                /*Scope*/ 27, /*->245236*/
/*245209*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*245211*/                  OPC_MoveParent,
/*245212*/                  OPC_MoveParent,
/*245213*/                  OPC_RecordChild2, // #4 = $src0
/*245214*/                  OPC_CheckType, MVT::v8i64,
/*245216*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*245218*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*245221*/                  OPC_EmitMergeInputChains1_2,
/*245222*/                  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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VPMINUQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*245236*/                0, /*End of Scope*/
/*245237*/              0, // EndSwitchOpcode
/*245238*/            /*Scope*/ 25|128,1/*153*/, /*->245393*/
/*245240*/              OPC_MoveChild0,
/*245241*/              OPC_SwitchOpcode /*2 cases */, 80, TARGET_VAL(ISD::LOAD),// ->245325
/*245245*/                OPC_RecordMemRef,
/*245246*/                OPC_RecordNode, // #1 = 'ld' chained node
/*245247*/                OPC_CheckFoldableChainNode,
/*245248*/                OPC_RecordChild1, // #2 = $src2
/*245249*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*245251*/                OPC_CheckPredicate, 9, // Predicate_load
/*245253*/                OPC_MoveParent,
/*245254*/                OPC_RecordChild1, // #3 = $src1
/*245255*/                OPC_MoveParent,
/*245256*/                OPC_RecordChild2, // #4 = $src0
/*245257*/                OPC_SwitchType /*3 cases */, 20, MVT::v8i16,// ->245280
/*245260*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*245262*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*245265*/                  OPC_EmitMergeInputChains1_1,
/*245266*/                  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] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1), VR128X:{ *:[v8i16] }:$src0) - Complexity = 28
                            // Dst: (VPMINUWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*245280*/                /*SwitchType*/ 20, MVT::v8i32,// ->245302
/*245282*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*245284*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*245287*/                  OPC_EmitMergeInputChains1_1,
/*245288*/                  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] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8i32] }:$src1), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VPMINUDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*245302*/                /*SwitchType*/ 20, MVT::v8i64,// ->245324
/*245304*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*245306*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*245309*/                  OPC_EmitMergeInputChains1_1,
/*245310*/                  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>>, VR512:{ *:[v8i64] }:$src1), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VPMINUQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*245324*/                0, // EndSwitchType
/*245325*/              /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->245392
/*245328*/                OPC_RecordMemRef,
/*245329*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*245330*/                OPC_CheckFoldableChainNode,
/*245331*/                OPC_RecordChild1, // #2 = $src2
/*245332*/                OPC_Scope, 28, /*->245362*/ // 2 children in Scope
/*245334*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*245336*/                  OPC_MoveParent,
/*245337*/                  OPC_RecordChild1, // #3 = $src1
/*245338*/                  OPC_MoveParent,
/*245339*/                  OPC_RecordChild2, // #4 = $src0
/*245340*/                  OPC_CheckType, MVT::v8i32,
/*245342*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*245344*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*245347*/                  OPC_EmitMergeInputChains1_1,
/*245348*/                  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] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8i32] }:$src1), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VPMINUDZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*245362*/                /*Scope*/ 28, /*->245391*/
/*245363*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*245365*/                  OPC_MoveParent,
/*245366*/                  OPC_RecordChild1, // #3 = $src1
/*245367*/                  OPC_MoveParent,
/*245368*/                  OPC_RecordChild2, // #4 = $src0
/*245369*/                  OPC_CheckType, MVT::v8i64,
/*245371*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*245373*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*245376*/                  OPC_EmitMergeInputChains1_1,
/*245377*/                  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] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8i64] }:$src1), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VPMINUQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*245391*/                0, /*End of Scope*/
/*245392*/              0, // EndSwitchOpcode
/*245393*/            0, /*End of Scope*/
/*245394*/          /*SwitchOpcode*/ 10|128,2/*266*/, TARGET_VAL(ISD::AND),// ->245664
/*245398*/            OPC_Scope, 1|128,1/*129*/, /*->245530*/ // 2 children in Scope
/*245401*/              OPC_RecordChild0, // #1 = $src1
/*245402*/              OPC_MoveChild1,
/*245403*/              OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->245464
/*245407*/                OPC_RecordMemRef,
/*245408*/                OPC_RecordNode, // #2 = 'ld' chained node
/*245409*/                OPC_CheckFoldableChainNode,
/*245410*/                OPC_RecordChild1, // #3 = $src2
/*245411*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*245413*/                OPC_CheckPredicate, 9, // Predicate_load
/*245415*/                OPC_MoveParent,
/*245416*/                OPC_MoveParent,
/*245417*/                OPC_RecordChild2, // #4 = $src0
/*245418*/                OPC_SwitchType /*2 cases */, 20, MVT::v8i64,// ->245441
/*245421*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*245423*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*245426*/                  OPC_EmitMergeInputChains1_2,
/*245427*/                  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>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VPANDQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*245441*/                /*SwitchType*/ 20, MVT::v8i32,// ->245463
/*245443*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*245445*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*245448*/                  OPC_EmitMergeInputChains1_2,
/*245449*/                  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, (and:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VPANDDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*245463*/                0, // EndSwitchType
/*245464*/              /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->245529
/*245467*/                OPC_RecordMemRef,
/*245468*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*245469*/                OPC_CheckFoldableChainNode,
/*245470*/                OPC_RecordChild1, // #3 = $src2
/*245471*/                OPC_Scope, 27, /*->245500*/ // 2 children in Scope
/*245473*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*245475*/                  OPC_MoveParent,
/*245476*/                  OPC_MoveParent,
/*245477*/                  OPC_RecordChild2, // #4 = $src0
/*245478*/                  OPC_CheckType, MVT::v8i64,
/*245480*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*245482*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*245485*/                  OPC_EmitMergeInputChains1_2,
/*245486*/                  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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VPANDQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*245500*/                /*Scope*/ 27, /*->245528*/
/*245501*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*245503*/                  OPC_MoveParent,
/*245504*/                  OPC_MoveParent,
/*245505*/                  OPC_RecordChild2, // #4 = $src0
/*245506*/                  OPC_CheckType, MVT::v8i32,
/*245508*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*245510*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*245513*/                  OPC_EmitMergeInputChains1_2,
/*245514*/                  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, (and:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VPANDDZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*245528*/                0, /*End of Scope*/
/*245529*/              0, // EndSwitchOpcode
/*245530*/            /*Scope*/ 3|128,1/*131*/, /*->245663*/
/*245532*/              OPC_MoveChild0,
/*245533*/              OPC_SwitchOpcode /*2 cases */, 58, TARGET_VAL(ISD::LOAD),// ->245595
/*245537*/                OPC_RecordMemRef,
/*245538*/                OPC_RecordNode, // #1 = 'ld' chained node
/*245539*/                OPC_CheckFoldableChainNode,
/*245540*/                OPC_RecordChild1, // #2 = $src2
/*245541*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*245543*/                OPC_CheckPredicate, 9, // Predicate_load
/*245545*/                OPC_MoveParent,
/*245546*/                OPC_RecordChild1, // #3 = $src1
/*245547*/                OPC_MoveParent,
/*245548*/                OPC_RecordChild2, // #4 = $src0
/*245549*/                OPC_SwitchType /*2 cases */, 20, MVT::v8i64,// ->245572
/*245552*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*245554*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*245557*/                  OPC_EmitMergeInputChains1_1,
/*245558*/                  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>>, VR512:{ *:[v8i64] }:$src1), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VPANDQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*245572*/                /*SwitchType*/ 20, MVT::v8i32,// ->245594
/*245574*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*245576*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*245579*/                  OPC_EmitMergeInputChains1_1,
/*245580*/                  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, (and:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8i32] }:$src1), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VPANDDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*245594*/                0, // EndSwitchType
/*245595*/              /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->245662
/*245598*/                OPC_RecordMemRef,
/*245599*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*245600*/                OPC_CheckFoldableChainNode,
/*245601*/                OPC_RecordChild1, // #2 = $src2
/*245602*/                OPC_Scope, 28, /*->245632*/ // 2 children in Scope
/*245604*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*245606*/                  OPC_MoveParent,
/*245607*/                  OPC_RecordChild1, // #3 = $src1
/*245608*/                  OPC_MoveParent,
/*245609*/                  OPC_RecordChild2, // #4 = $src0
/*245610*/                  OPC_CheckType, MVT::v8i64,
/*245612*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*245614*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*245617*/                  OPC_EmitMergeInputChains1_1,
/*245618*/                  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] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8i64] }:$src1), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VPANDQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*245632*/                /*Scope*/ 28, /*->245661*/
/*245633*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*245635*/                  OPC_MoveParent,
/*245636*/                  OPC_RecordChild1, // #3 = $src1
/*245637*/                  OPC_MoveParent,
/*245638*/                  OPC_RecordChild2, // #4 = $src0
/*245639*/                  OPC_CheckType, MVT::v8i32,
/*245641*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*245643*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*245646*/                  OPC_EmitMergeInputChains1_1,
/*245647*/                  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, (and:{ *:[v8i32] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8i32] }:$src1), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VPANDDZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*245661*/                0, /*End of Scope*/
/*245662*/              0, // EndSwitchOpcode
/*245663*/            0, /*End of Scope*/
/*245664*/          /*SwitchOpcode*/ 10|128,2/*266*/, TARGET_VAL(ISD::OR),// ->245934
/*245668*/            OPC_Scope, 1|128,1/*129*/, /*->245800*/ // 2 children in Scope
/*245671*/              OPC_RecordChild0, // #1 = $src1
/*245672*/              OPC_MoveChild1,
/*245673*/              OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->245734
/*245677*/                OPC_RecordMemRef,
/*245678*/                OPC_RecordNode, // #2 = 'ld' chained node
/*245679*/                OPC_CheckFoldableChainNode,
/*245680*/                OPC_RecordChild1, // #3 = $src2
/*245681*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*245683*/                OPC_CheckPredicate, 9, // Predicate_load
/*245685*/                OPC_MoveParent,
/*245686*/                OPC_MoveParent,
/*245687*/                OPC_RecordChild2, // #4 = $src0
/*245688*/                OPC_SwitchType /*2 cases */, 20, MVT::v8i64,// ->245711
/*245691*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*245693*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*245696*/                  OPC_EmitMergeInputChains1_2,
/*245697*/                  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>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VPORQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*245711*/                /*SwitchType*/ 20, MVT::v8i32,// ->245733
/*245713*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*245715*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*245718*/                  OPC_EmitMergeInputChains1_2,
/*245719*/                  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, (or:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VPORDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*245733*/                0, // EndSwitchType
/*245734*/              /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->245799
/*245737*/                OPC_RecordMemRef,
/*245738*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*245739*/                OPC_CheckFoldableChainNode,
/*245740*/                OPC_RecordChild1, // #3 = $src2
/*245741*/                OPC_Scope, 27, /*->245770*/ // 2 children in Scope
/*245743*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*245745*/                  OPC_MoveParent,
/*245746*/                  OPC_MoveParent,
/*245747*/                  OPC_RecordChild2, // #4 = $src0
/*245748*/                  OPC_CheckType, MVT::v8i64,
/*245750*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*245752*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*245755*/                  OPC_EmitMergeInputChains1_2,
/*245756*/                  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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VPORQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*245770*/                /*Scope*/ 27, /*->245798*/
/*245771*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*245773*/                  OPC_MoveParent,
/*245774*/                  OPC_MoveParent,
/*245775*/                  OPC_RecordChild2, // #4 = $src0
/*245776*/                  OPC_CheckType, MVT::v8i32,
/*245778*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*245780*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*245783*/                  OPC_EmitMergeInputChains1_2,
/*245784*/                  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, (or:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VPORDZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*245798*/                0, /*End of Scope*/
/*245799*/              0, // EndSwitchOpcode
/*245800*/            /*Scope*/ 3|128,1/*131*/, /*->245933*/
/*245802*/              OPC_MoveChild0,
/*245803*/              OPC_SwitchOpcode /*2 cases */, 58, TARGET_VAL(ISD::LOAD),// ->245865
/*245807*/                OPC_RecordMemRef,
/*245808*/                OPC_RecordNode, // #1 = 'ld' chained node
/*245809*/                OPC_CheckFoldableChainNode,
/*245810*/                OPC_RecordChild1, // #2 = $src2
/*245811*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*245813*/                OPC_CheckPredicate, 9, // Predicate_load
/*245815*/                OPC_MoveParent,
/*245816*/                OPC_RecordChild1, // #3 = $src1
/*245817*/                OPC_MoveParent,
/*245818*/                OPC_RecordChild2, // #4 = $src0
/*245819*/                OPC_SwitchType /*2 cases */, 20, MVT::v8i64,// ->245842
/*245822*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*245824*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*245827*/                  OPC_EmitMergeInputChains1_1,
/*245828*/                  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>>, VR512:{ *:[v8i64] }:$src1), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VPORQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*245842*/                /*SwitchType*/ 20, MVT::v8i32,// ->245864
/*245844*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*245846*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*245849*/                  OPC_EmitMergeInputChains1_1,
/*245850*/                  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, (or:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8i32] }:$src1), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VPORDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*245864*/                0, // EndSwitchType
/*245865*/              /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->245932
/*245868*/                OPC_RecordMemRef,
/*245869*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*245870*/                OPC_CheckFoldableChainNode,
/*245871*/                OPC_RecordChild1, // #2 = $src2
/*245872*/                OPC_Scope, 28, /*->245902*/ // 2 children in Scope
/*245874*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*245876*/                  OPC_MoveParent,
/*245877*/                  OPC_RecordChild1, // #3 = $src1
/*245878*/                  OPC_MoveParent,
/*245879*/                  OPC_RecordChild2, // #4 = $src0
/*245880*/                  OPC_CheckType, MVT::v8i64,
/*245882*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*245884*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*245887*/                  OPC_EmitMergeInputChains1_1,
/*245888*/                  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] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8i64] }:$src1), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VPORQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*245902*/                /*Scope*/ 28, /*->245931*/
/*245903*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*245905*/                  OPC_MoveParent,
/*245906*/                  OPC_RecordChild1, // #3 = $src1
/*245907*/                  OPC_MoveParent,
/*245908*/                  OPC_RecordChild2, // #4 = $src0
/*245909*/                  OPC_CheckType, MVT::v8i32,
/*245911*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*245913*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*245916*/                  OPC_EmitMergeInputChains1_1,
/*245917*/                  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, (or:{ *:[v8i32] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8i32] }:$src1), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VPORDZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*245931*/                0, /*End of Scope*/
/*245932*/              0, // EndSwitchOpcode
/*245933*/            0, /*End of Scope*/
/*245934*/          /*SwitchOpcode*/ 10|128,2/*266*/, TARGET_VAL(ISD::XOR),// ->246204
/*245938*/            OPC_Scope, 1|128,1/*129*/, /*->246070*/ // 2 children in Scope
/*245941*/              OPC_RecordChild0, // #1 = $src1
/*245942*/              OPC_MoveChild1,
/*245943*/              OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->246004
/*245947*/                OPC_RecordMemRef,
/*245948*/                OPC_RecordNode, // #2 = 'ld' chained node
/*245949*/                OPC_CheckFoldableChainNode,
/*245950*/                OPC_RecordChild1, // #3 = $src2
/*245951*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*245953*/                OPC_CheckPredicate, 9, // Predicate_load
/*245955*/                OPC_MoveParent,
/*245956*/                OPC_MoveParent,
/*245957*/                OPC_RecordChild2, // #4 = $src0
/*245958*/                OPC_SwitchType /*2 cases */, 20, MVT::v8i64,// ->245981
/*245961*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*245963*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*245966*/                  OPC_EmitMergeInputChains1_2,
/*245967*/                  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>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VPXORQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*245981*/                /*SwitchType*/ 20, MVT::v8i32,// ->246003
/*245983*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*245985*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*245988*/                  OPC_EmitMergeInputChains1_2,
/*245989*/                  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, (xor:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VPXORDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*246003*/                0, // EndSwitchType
/*246004*/              /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->246069
/*246007*/                OPC_RecordMemRef,
/*246008*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*246009*/                OPC_CheckFoldableChainNode,
/*246010*/                OPC_RecordChild1, // #3 = $src2
/*246011*/                OPC_Scope, 27, /*->246040*/ // 2 children in Scope
/*246013*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*246015*/                  OPC_MoveParent,
/*246016*/                  OPC_MoveParent,
/*246017*/                  OPC_RecordChild2, // #4 = $src0
/*246018*/                  OPC_CheckType, MVT::v8i64,
/*246020*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*246022*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*246025*/                  OPC_EmitMergeInputChains1_2,
/*246026*/                  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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VPXORQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*246040*/                /*Scope*/ 27, /*->246068*/
/*246041*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*246043*/                  OPC_MoveParent,
/*246044*/                  OPC_MoveParent,
/*246045*/                  OPC_RecordChild2, // #4 = $src0
/*246046*/                  OPC_CheckType, MVT::v8i32,
/*246048*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*246050*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*246053*/                  OPC_EmitMergeInputChains1_2,
/*246054*/                  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, (xor:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VPXORDZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*246068*/                0, /*End of Scope*/
/*246069*/              0, // EndSwitchOpcode
/*246070*/            /*Scope*/ 3|128,1/*131*/, /*->246203*/
/*246072*/              OPC_MoveChild0,
/*246073*/              OPC_SwitchOpcode /*2 cases */, 58, TARGET_VAL(ISD::LOAD),// ->246135
/*246077*/                OPC_RecordMemRef,
/*246078*/                OPC_RecordNode, // #1 = 'ld' chained node
/*246079*/                OPC_CheckFoldableChainNode,
/*246080*/                OPC_RecordChild1, // #2 = $src2
/*246081*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*246083*/                OPC_CheckPredicate, 9, // Predicate_load
/*246085*/                OPC_MoveParent,
/*246086*/                OPC_RecordChild1, // #3 = $src1
/*246087*/                OPC_MoveParent,
/*246088*/                OPC_RecordChild2, // #4 = $src0
/*246089*/                OPC_SwitchType /*2 cases */, 20, MVT::v8i64,// ->246112
/*246092*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*246094*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*246097*/                  OPC_EmitMergeInputChains1_1,
/*246098*/                  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>>, VR512:{ *:[v8i64] }:$src1), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VPXORQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*246112*/                /*SwitchType*/ 20, MVT::v8i32,// ->246134
/*246114*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*246116*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*246119*/                  OPC_EmitMergeInputChains1_1,
/*246120*/                  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, (xor:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8i32] }:$src1), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VPXORDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*246134*/                0, // EndSwitchType
/*246135*/              /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->246202
/*246138*/                OPC_RecordMemRef,
/*246139*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*246140*/                OPC_CheckFoldableChainNode,
/*246141*/                OPC_RecordChild1, // #2 = $src2
/*246142*/                OPC_Scope, 28, /*->246172*/ // 2 children in Scope
/*246144*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*246146*/                  OPC_MoveParent,
/*246147*/                  OPC_RecordChild1, // #3 = $src1
/*246148*/                  OPC_MoveParent,
/*246149*/                  OPC_RecordChild2, // #4 = $src0
/*246150*/                  OPC_CheckType, MVT::v8i64,
/*246152*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*246154*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*246157*/                  OPC_EmitMergeInputChains1_1,
/*246158*/                  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] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8i64] }:$src1), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VPXORQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*246172*/                /*Scope*/ 28, /*->246201*/
/*246173*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*246175*/                  OPC_MoveParent,
/*246176*/                  OPC_RecordChild1, // #3 = $src1
/*246177*/                  OPC_MoveParent,
/*246178*/                  OPC_RecordChild2, // #4 = $src0
/*246179*/                  OPC_CheckType, MVT::v8i32,
/*246181*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*246183*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*246186*/                  OPC_EmitMergeInputChains1_1,
/*246187*/                  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, (xor:{ *:[v8i32] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8i32] }:$src1), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VPXORDZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*246201*/                0, /*End of Scope*/
/*246202*/              0, // EndSwitchOpcode
/*246203*/            0, /*End of Scope*/
/*246204*/          /*SwitchOpcode*/ 1|128,1/*129*/, TARGET_VAL(X86ISD::ANDNP),// ->246337
/*246208*/            OPC_RecordChild0, // #1 = $src1
/*246209*/            OPC_MoveChild1,
/*246210*/            OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->246271
/*246214*/              OPC_RecordMemRef,
/*246215*/              OPC_RecordNode, // #2 = 'ld' chained node
/*246216*/              OPC_CheckFoldableChainNode,
/*246217*/              OPC_RecordChild1, // #3 = $src2
/*246218*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*246220*/              OPC_CheckPredicate, 9, // Predicate_load
/*246222*/              OPC_MoveParent,
/*246223*/              OPC_MoveParent,
/*246224*/              OPC_RecordChild2, // #4 = $src0
/*246225*/              OPC_SwitchType /*2 cases */, 20, MVT::v8i64,// ->246248
/*246228*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*246230*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*246233*/                OPC_EmitMergeInputChains1_2,
/*246234*/                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>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                          // Dst: (VPANDNQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*246248*/              /*SwitchType*/ 20, MVT::v8i32,// ->246270
/*246250*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*246252*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*246255*/                OPC_EmitMergeInputChains1_2,
/*246256*/                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, (X86andnp:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                          // Dst: (VPANDNDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*246270*/              0, // EndSwitchType
/*246271*/            /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->246336
/*246274*/              OPC_RecordMemRef,
/*246275*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*246276*/              OPC_CheckFoldableChainNode,
/*246277*/              OPC_RecordChild1, // #3 = $src2
/*246278*/              OPC_Scope, 27, /*->246307*/ // 2 children in Scope
/*246280*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*246282*/                OPC_MoveParent,
/*246283*/                OPC_MoveParent,
/*246284*/                OPC_RecordChild2, // #4 = $src0
/*246285*/                OPC_CheckType, MVT::v8i64,
/*246287*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*246289*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*246292*/                OPC_EmitMergeInputChains1_2,
/*246293*/                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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                          // Dst: (VPANDNQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*246307*/              /*Scope*/ 27, /*->246335*/
/*246308*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*246310*/                OPC_MoveParent,
/*246311*/                OPC_MoveParent,
/*246312*/                OPC_RecordChild2, // #4 = $src0
/*246313*/                OPC_CheckType, MVT::v8i32,
/*246315*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*246317*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*246320*/                OPC_EmitMergeInputChains1_2,
/*246321*/                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, (X86andnp:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                          // Dst: (VPANDNDZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*246335*/              0, /*End of Scope*/
/*246336*/            0, // EndSwitchOpcode
/*246337*/          /*SwitchOpcode*/ 96, TARGET_VAL(X86ISD::VSHL),// ->246436
/*246340*/            OPC_RecordChild0, // #1 = $src1
/*246341*/            OPC_MoveChild1,
/*246342*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*246345*/            OPC_RecordMemRef,
/*246346*/            OPC_RecordNode, // #2 = 'ld' chained node
/*246347*/            OPC_CheckFoldableChainNode,
/*246348*/            OPC_RecordChild1, // #3 = $src2
/*246349*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*246351*/            OPC_CheckPredicate, 9, // Predicate_load
/*246353*/            OPC_SwitchType /*3 cases */, 25, MVT::v4i32,// ->246381
/*246356*/              OPC_MoveParent,
/*246357*/              OPC_MoveParent,
/*246358*/              OPC_RecordChild2, // #4 = $src0
/*246359*/              OPC_CheckType, MVT::v8i32,
/*246361*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*246363*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*246366*/              OPC_EmitMergeInputChains1_2,
/*246367*/              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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                        // Dst: (VPSLLDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*246381*/            /*SwitchType*/ 25, MVT::v2i64,// ->246408
/*246383*/              OPC_MoveParent,
/*246384*/              OPC_MoveParent,
/*246385*/              OPC_RecordChild2, // #4 = $src0
/*246386*/              OPC_CheckType, MVT::v8i64,
/*246388*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*246390*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*246393*/              OPC_EmitMergeInputChains1_2,
/*246394*/              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>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                        // Dst: (VPSLLQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*246408*/            /*SwitchType*/ 25, MVT::v8i16,// ->246435
/*246410*/              OPC_MoveParent,
/*246411*/              OPC_MoveParent,
/*246412*/              OPC_RecordChild2, // #4 = $src0
/*246413*/              OPC_CheckType, MVT::v8i16,
/*246415*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*246417*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*246420*/              OPC_EmitMergeInputChains1_2,
/*246421*/              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:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v8i16] }:$src0) - Complexity = 28
                        // Dst: (VPSLLWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*246435*/            0, // EndSwitchType
/*246436*/          /*SwitchOpcode*/ 96, TARGET_VAL(X86ISD::VSRA),// ->246535
/*246439*/            OPC_RecordChild0, // #1 = $src1
/*246440*/            OPC_MoveChild1,
/*246441*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*246444*/            OPC_RecordMemRef,
/*246445*/            OPC_RecordNode, // #2 = 'ld' chained node
/*246446*/            OPC_CheckFoldableChainNode,
/*246447*/            OPC_RecordChild1, // #3 = $src2
/*246448*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*246450*/            OPC_CheckPredicate, 9, // Predicate_load
/*246452*/            OPC_SwitchType /*3 cases */, 25, MVT::v4i32,// ->246480
/*246455*/              OPC_MoveParent,
/*246456*/              OPC_MoveParent,
/*246457*/              OPC_RecordChild2, // #4 = $src0
/*246458*/              OPC_CheckType, MVT::v8i32,
/*246460*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*246462*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*246465*/              OPC_EmitMergeInputChains1_2,
/*246466*/              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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                        // Dst: (VPSRADZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*246480*/            /*SwitchType*/ 25, MVT::v2i64,// ->246507
/*246482*/              OPC_MoveParent,
/*246483*/              OPC_MoveParent,
/*246484*/              OPC_RecordChild2, // #4 = $src0
/*246485*/              OPC_CheckType, MVT::v8i64,
/*246487*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*246489*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*246492*/              OPC_EmitMergeInputChains1_2,
/*246493*/              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>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                        // Dst: (VPSRAQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*246507*/            /*SwitchType*/ 25, MVT::v8i16,// ->246534
/*246509*/              OPC_MoveParent,
/*246510*/              OPC_MoveParent,
/*246511*/              OPC_RecordChild2, // #4 = $src0
/*246512*/              OPC_CheckType, MVT::v8i16,
/*246514*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*246516*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*246519*/              OPC_EmitMergeInputChains1_2,
/*246520*/              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:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v8i16] }:$src0) - Complexity = 28
                        // Dst: (VPSRAWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*246534*/            0, // EndSwitchType
/*246535*/          /*SwitchOpcode*/ 96, TARGET_VAL(X86ISD::VSRL),// ->246634
/*246538*/            OPC_RecordChild0, // #1 = $src1
/*246539*/            OPC_MoveChild1,
/*246540*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*246543*/            OPC_RecordMemRef,
/*246544*/            OPC_RecordNode, // #2 = 'ld' chained node
/*246545*/            OPC_CheckFoldableChainNode,
/*246546*/            OPC_RecordChild1, // #3 = $src2
/*246547*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*246549*/            OPC_CheckPredicate, 9, // Predicate_load
/*246551*/            OPC_SwitchType /*3 cases */, 25, MVT::v4i32,// ->246579
/*246554*/              OPC_MoveParent,
/*246555*/              OPC_MoveParent,
/*246556*/              OPC_RecordChild2, // #4 = $src0
/*246557*/              OPC_CheckType, MVT::v8i32,
/*246559*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*246561*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*246564*/              OPC_EmitMergeInputChains1_2,
/*246565*/              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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                        // Dst: (VPSRLDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*246579*/            /*SwitchType*/ 25, MVT::v2i64,// ->246606
/*246581*/              OPC_MoveParent,
/*246582*/              OPC_MoveParent,
/*246583*/              OPC_RecordChild2, // #4 = $src0
/*246584*/              OPC_CheckType, MVT::v8i64,
/*246586*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*246588*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*246591*/              OPC_EmitMergeInputChains1_2,
/*246592*/              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>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                        // Dst: (VPSRLQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*246606*/            /*SwitchType*/ 25, MVT::v8i16,// ->246633
/*246608*/              OPC_MoveParent,
/*246609*/              OPC_MoveParent,
/*246610*/              OPC_RecordChild2, // #4 = $src0
/*246611*/              OPC_CheckType, MVT::v8i16,
/*246613*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*246615*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*246618*/              OPC_EmitMergeInputChains1_2,
/*246619*/              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:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v8i16] }:$src0) - Complexity = 28
                        // Dst: (VPSRLWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*246633*/            0, // EndSwitchType
/*246634*/          /*SwitchOpcode*/ 23|128,1/*151*/, TARGET_VAL(X86ISD::VSHLV),// ->246789
/*246638*/            OPC_RecordChild0, // #1 = $src1
/*246639*/            OPC_MoveChild1,
/*246640*/            OPC_SwitchOpcode /*2 cases */, 79, TARGET_VAL(ISD::LOAD),// ->246723
/*246644*/              OPC_RecordMemRef,
/*246645*/              OPC_RecordNode, // #2 = 'ld' chained node
/*246646*/              OPC_CheckFoldableChainNode,
/*246647*/              OPC_RecordChild1, // #3 = $src2
/*246648*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*246650*/              OPC_CheckPredicate, 9, // Predicate_load
/*246652*/              OPC_MoveParent,
/*246653*/              OPC_MoveParent,
/*246654*/              OPC_RecordChild2, // #4 = $src0
/*246655*/              OPC_SwitchType /*3 cases */, 20, MVT::v8i32,// ->246678
/*246658*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*246660*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*246663*/                OPC_EmitMergeInputChains1_2,
/*246664*/                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, (X86vshlv:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                          // Dst: (VPSLLVDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*246678*/              /*SwitchType*/ 20, MVT::v8i64,// ->246700
/*246680*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*246682*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*246685*/                OPC_EmitMergeInputChains1_2,
/*246686*/                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, (X86vshlv:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                          // Dst: (VPSLLVQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*246700*/              /*SwitchType*/ 20, MVT::v8i16,// ->246722
/*246702*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*246704*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*246707*/                OPC_EmitMergeInputChains1_2,
/*246708*/                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, (X86vshlv:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v8i16] }:$src0) - Complexity = 28
                          // Dst: (VPSLLVWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*246722*/              0, // EndSwitchType
/*246723*/            /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->246788
/*246726*/              OPC_RecordMemRef,
/*246727*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*246728*/              OPC_CheckFoldableChainNode,
/*246729*/              OPC_RecordChild1, // #3 = $src2
/*246730*/              OPC_Scope, 27, /*->246759*/ // 2 children in Scope
/*246732*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*246734*/                OPC_MoveParent,
/*246735*/                OPC_MoveParent,
/*246736*/                OPC_RecordChild2, // #4 = $src0
/*246737*/                OPC_CheckType, MVT::v8i32,
/*246739*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*246741*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*246744*/                OPC_EmitMergeInputChains1_2,
/*246745*/                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, (X86vshlv:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                          // Dst: (VPSLLVDZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*246759*/              /*Scope*/ 27, /*->246787*/
/*246760*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*246762*/                OPC_MoveParent,
/*246763*/                OPC_MoveParent,
/*246764*/                OPC_RecordChild2, // #4 = $src0
/*246765*/                OPC_CheckType, MVT::v8i64,
/*246767*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*246769*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*246772*/                OPC_EmitMergeInputChains1_2,
/*246773*/                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, (X86vshlv:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                          // Dst: (VPSLLVQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*246787*/              0, /*End of Scope*/
/*246788*/            0, // EndSwitchOpcode
/*246789*/          /*SwitchOpcode*/ 23|128,1/*151*/, TARGET_VAL(X86ISD::VSRAV),// ->246944
/*246793*/            OPC_RecordChild0, // #1 = $src1
/*246794*/            OPC_MoveChild1,
/*246795*/            OPC_SwitchOpcode /*2 cases */, 79, TARGET_VAL(ISD::LOAD),// ->246878
/*246799*/              OPC_RecordMemRef,
/*246800*/              OPC_RecordNode, // #2 = 'ld' chained node
/*246801*/              OPC_CheckFoldableChainNode,
/*246802*/              OPC_RecordChild1, // #3 = $src2
/*246803*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*246805*/              OPC_CheckPredicate, 9, // Predicate_load
/*246807*/              OPC_MoveParent,
/*246808*/              OPC_MoveParent,
/*246809*/              OPC_RecordChild2, // #4 = $src0
/*246810*/              OPC_SwitchType /*3 cases */, 20, MVT::v8i32,// ->246833
/*246813*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*246815*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*246818*/                OPC_EmitMergeInputChains1_2,
/*246819*/                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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                          // Dst: (VPSRAVDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*246833*/              /*SwitchType*/ 20, MVT::v8i64,// ->246855
/*246835*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*246837*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*246840*/                OPC_EmitMergeInputChains1_2,
/*246841*/                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>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                          // Dst: (VPSRAVQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*246855*/              /*SwitchType*/ 20, MVT::v8i16,// ->246877
/*246857*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*246859*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*246862*/                OPC_EmitMergeInputChains1_2,
/*246863*/                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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v8i16] }:$src0) - Complexity = 28
                          // Dst: (VPSRAVWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*246877*/              0, // EndSwitchType
/*246878*/            /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->246943
/*246881*/              OPC_RecordMemRef,
/*246882*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*246883*/              OPC_CheckFoldableChainNode,
/*246884*/              OPC_RecordChild1, // #3 = $src2
/*246885*/              OPC_Scope, 27, /*->246914*/ // 2 children in Scope
/*246887*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*246889*/                OPC_MoveParent,
/*246890*/                OPC_MoveParent,
/*246891*/                OPC_RecordChild2, // #4 = $src0
/*246892*/                OPC_CheckType, MVT::v8i32,
/*246894*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*246896*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*246899*/                OPC_EmitMergeInputChains1_2,
/*246900*/                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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                          // Dst: (VPSRAVDZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*246914*/              /*Scope*/ 27, /*->246942*/
/*246915*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*246917*/                OPC_MoveParent,
/*246918*/                OPC_MoveParent,
/*246919*/                OPC_RecordChild2, // #4 = $src0
/*246920*/                OPC_CheckType, MVT::v8i64,
/*246922*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*246924*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*246927*/                OPC_EmitMergeInputChains1_2,
/*246928*/                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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                          // Dst: (VPSRAVQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*246942*/              0, /*End of Scope*/
/*246943*/            0, // EndSwitchOpcode
/*246944*/          /*SwitchOpcode*/ 23|128,1/*151*/, TARGET_VAL(X86ISD::VSRLV),// ->247099
/*246948*/            OPC_RecordChild0, // #1 = $src1
/*246949*/            OPC_MoveChild1,
/*246950*/            OPC_SwitchOpcode /*2 cases */, 79, TARGET_VAL(ISD::LOAD),// ->247033
/*246954*/              OPC_RecordMemRef,
/*246955*/              OPC_RecordNode, // #2 = 'ld' chained node
/*246956*/              OPC_CheckFoldableChainNode,
/*246957*/              OPC_RecordChild1, // #3 = $src2
/*246958*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*246960*/              OPC_CheckPredicate, 9, // Predicate_load
/*246962*/              OPC_MoveParent,
/*246963*/              OPC_MoveParent,
/*246964*/              OPC_RecordChild2, // #4 = $src0
/*246965*/              OPC_SwitchType /*3 cases */, 20, MVT::v8i32,// ->246988
/*246968*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*246970*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*246973*/                OPC_EmitMergeInputChains1_2,
/*246974*/                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, (X86vsrlv:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                          // Dst: (VPSRLVDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*246988*/              /*SwitchType*/ 20, MVT::v8i64,// ->247010
/*246990*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*246992*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*246995*/                OPC_EmitMergeInputChains1_2,
/*246996*/                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, (X86vsrlv:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                          // Dst: (VPSRLVQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*247010*/              /*SwitchType*/ 20, MVT::v8i16,// ->247032
/*247012*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*247014*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*247017*/                OPC_EmitMergeInputChains1_2,
/*247018*/                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, (X86vsrlv:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v8i16] }:$src0) - Complexity = 28
                          // Dst: (VPSRLVWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*247032*/              0, // EndSwitchType
/*247033*/            /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->247098
/*247036*/              OPC_RecordMemRef,
/*247037*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*247038*/              OPC_CheckFoldableChainNode,
/*247039*/              OPC_RecordChild1, // #3 = $src2
/*247040*/              OPC_Scope, 27, /*->247069*/ // 2 children in Scope
/*247042*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*247044*/                OPC_MoveParent,
/*247045*/                OPC_MoveParent,
/*247046*/                OPC_RecordChild2, // #4 = $src0
/*247047*/                OPC_CheckType, MVT::v8i32,
/*247049*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*247051*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*247054*/                OPC_EmitMergeInputChains1_2,
/*247055*/                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, (X86vsrlv:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                          // Dst: (VPSRLVDZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*247069*/              /*Scope*/ 27, /*->247097*/
/*247070*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*247072*/                OPC_MoveParent,
/*247073*/                OPC_MoveParent,
/*247074*/                OPC_RecordChild2, // #4 = $src0
/*247075*/                OPC_CheckType, MVT::v8i64,
/*247077*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*247079*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*247082*/                OPC_EmitMergeInputChains1_2,
/*247083*/                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, (X86vsrlv:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                          // Dst: (VPSRLVQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*247097*/              0, /*End of Scope*/
/*247098*/            0, // EndSwitchOpcode
/*247099*/          /*SwitchOpcode*/ 10|128,1/*138*/, TARGET_VAL(ISD::ROTR),// ->247241
/*247103*/            OPC_RecordChild0, // #1 = $src1
/*247104*/            OPC_MoveChild1,
/*247105*/            OPC_SwitchOpcode /*2 cases */, 64, TARGET_VAL(ISD::LOAD),// ->247173
/*247109*/              OPC_RecordMemRef,
/*247110*/              OPC_RecordNode, // #2 = 'ld' chained node
/*247111*/              OPC_CheckFoldableChainNode,
/*247112*/              OPC_RecordChild1, // #3 = $src2
/*247113*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*247115*/              OPC_CheckPredicate, 9, // Predicate_load
/*247117*/              OPC_SwitchType /*2 cases */, 25, MVT::v8i32,// ->247145
/*247120*/                OPC_MoveParent,
/*247121*/                OPC_MoveParent,
/*247122*/                OPC_RecordChild2, // #4 = $src0
/*247123*/                OPC_CheckType, MVT::v8i32,
/*247125*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*247127*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*247130*/                OPC_EmitMergeInputChains1_2,
/*247131*/                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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                          // Dst: (VPRORVDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*247145*/              /*SwitchType*/ 25, MVT::v8i64,// ->247172
/*247147*/                OPC_MoveParent,
/*247148*/                OPC_MoveParent,
/*247149*/                OPC_RecordChild2, // #4 = $src0
/*247150*/                OPC_CheckType, MVT::v8i64,
/*247152*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*247154*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*247157*/                OPC_EmitMergeInputChains1_2,
/*247158*/                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>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                          // Dst: (VPRORVQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*247172*/              0, // EndSwitchType
/*247173*/            /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->247240
/*247176*/              OPC_RecordMemRef,
/*247177*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*247178*/              OPC_CheckFoldableChainNode,
/*247179*/              OPC_RecordChild1, // #3 = $src2
/*247180*/              OPC_SwitchType /*2 cases */, 27, MVT::v8i32,// ->247210
/*247183*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*247185*/                OPC_MoveParent,
/*247186*/                OPC_MoveParent,
/*247187*/                OPC_RecordChild2, // #4 = $src0
/*247188*/                OPC_CheckType, MVT::v8i32,
/*247190*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*247192*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*247195*/                OPC_EmitMergeInputChains1_2,
/*247196*/                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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                          // Dst: (VPRORVDZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*247210*/              /*SwitchType*/ 27, MVT::v8i64,// ->247239
/*247212*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*247214*/                OPC_MoveParent,
/*247215*/                OPC_MoveParent,
/*247216*/                OPC_RecordChild2, // #4 = $src0
/*247217*/                OPC_CheckType, MVT::v8i64,
/*247219*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*247221*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*247224*/                OPC_EmitMergeInputChains1_2,
/*247225*/                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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                          // Dst: (VPRORVQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*247239*/              0, // EndSwitchType
/*247240*/            0, // EndSwitchOpcode
/*247241*/          /*SwitchOpcode*/ 10|128,1/*138*/, TARGET_VAL(ISD::ROTL),// ->247383
/*247245*/            OPC_RecordChild0, // #1 = $src1
/*247246*/            OPC_MoveChild1,
/*247247*/            OPC_SwitchOpcode /*2 cases */, 64, TARGET_VAL(ISD::LOAD),// ->247315
/*247251*/              OPC_RecordMemRef,
/*247252*/              OPC_RecordNode, // #2 = 'ld' chained node
/*247253*/              OPC_CheckFoldableChainNode,
/*247254*/              OPC_RecordChild1, // #3 = $src2
/*247255*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*247257*/              OPC_CheckPredicate, 9, // Predicate_load
/*247259*/              OPC_SwitchType /*2 cases */, 25, MVT::v8i32,// ->247287
/*247262*/                OPC_MoveParent,
/*247263*/                OPC_MoveParent,
/*247264*/                OPC_RecordChild2, // #4 = $src0
/*247265*/                OPC_CheckType, MVT::v8i32,
/*247267*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*247269*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*247272*/                OPC_EmitMergeInputChains1_2,
/*247273*/                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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                          // Dst: (VPROLVDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*247287*/              /*SwitchType*/ 25, MVT::v8i64,// ->247314
/*247289*/                OPC_MoveParent,
/*247290*/                OPC_MoveParent,
/*247291*/                OPC_RecordChild2, // #4 = $src0
/*247292*/                OPC_CheckType, MVT::v8i64,
/*247294*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*247296*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*247299*/                OPC_EmitMergeInputChains1_2,
/*247300*/                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>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                          // Dst: (VPROLVQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*247314*/              0, // EndSwitchType
/*247315*/            /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->247382
/*247318*/              OPC_RecordMemRef,
/*247319*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*247320*/              OPC_CheckFoldableChainNode,
/*247321*/              OPC_RecordChild1, // #3 = $src2
/*247322*/              OPC_SwitchType /*2 cases */, 27, MVT::v8i32,// ->247352
/*247325*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*247327*/                OPC_MoveParent,
/*247328*/                OPC_MoveParent,
/*247329*/                OPC_RecordChild2, // #4 = $src0
/*247330*/                OPC_CheckType, MVT::v8i32,
/*247332*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*247334*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*247337*/                OPC_EmitMergeInputChains1_2,
/*247338*/                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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                          // Dst: (VPROLVDZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*247352*/              /*SwitchType*/ 27, MVT::v8i64,// ->247381
/*247354*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*247356*/                OPC_MoveParent,
/*247357*/                OPC_MoveParent,
/*247358*/                OPC_RecordChild2, // #4 = $src0
/*247359*/                OPC_CheckType, MVT::v8i64,
/*247361*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*247363*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*247366*/                OPC_EmitMergeInputChains1_2,
/*247367*/                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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                          // Dst: (VPROLVQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*247381*/              0, // EndSwitchType
/*247382*/            0, // EndSwitchOpcode
/*247383*/          /*SwitchOpcode*/ 23|128,1/*151*/, TARGET_VAL(X86ISD::VPERMV),// ->247538
/*247387*/            OPC_RecordChild0, // #1 = $src1
/*247388*/            OPC_MoveChild1,
/*247389*/            OPC_SwitchOpcode /*2 cases */, 79, TARGET_VAL(ISD::LOAD),// ->247472
/*247393*/              OPC_RecordMemRef,
/*247394*/              OPC_RecordNode, // #2 = 'ld' chained node
/*247395*/              OPC_CheckFoldableChainNode,
/*247396*/              OPC_RecordChild1, // #3 = $src2
/*247397*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*247399*/              OPC_CheckPredicate, 9, // Predicate_load
/*247401*/              OPC_MoveParent,
/*247402*/              OPC_MoveParent,
/*247403*/              OPC_RecordChild2, // #4 = $src0
/*247404*/              OPC_SwitchType /*3 cases */, 20, MVT::v8i16,// ->247427
/*247407*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*247409*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*247412*/                OPC_EmitMergeInputChains1_2,
/*247413*/                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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v8i16] }:$src0) - Complexity = 28
                          // Dst: (VPERMWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*247427*/              /*SwitchType*/ 20, MVT::v8i32,// ->247449
/*247429*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*247431*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*247434*/                OPC_EmitMergeInputChains1_2,
/*247435*/                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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                          // Dst: (VPERMDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*247449*/              /*SwitchType*/ 20, MVT::v8i64,// ->247471
/*247451*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*247453*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*247456*/                OPC_EmitMergeInputChains1_2,
/*247457*/                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>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                          // Dst: (VPERMQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*247471*/              0, // EndSwitchType
/*247472*/            /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->247537
/*247475*/              OPC_RecordMemRef,
/*247476*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*247477*/              OPC_CheckFoldableChainNode,
/*247478*/              OPC_RecordChild1, // #3 = $src2
/*247479*/              OPC_Scope, 27, /*->247508*/ // 2 children in Scope
/*247481*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*247483*/                OPC_MoveParent,
/*247484*/                OPC_MoveParent,
/*247485*/                OPC_RecordChild2, // #4 = $src0
/*247486*/                OPC_CheckType, MVT::v8i32,
/*247488*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*247490*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*247493*/                OPC_EmitMergeInputChains1_2,
/*247494*/                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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                          // Dst: (VPERMDZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*247508*/              /*Scope*/ 27, /*->247536*/
/*247509*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*247511*/                OPC_MoveParent,
/*247512*/                OPC_MoveParent,
/*247513*/                OPC_RecordChild2, // #4 = $src0
/*247514*/                OPC_CheckType, MVT::v8i64,
/*247516*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*247518*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*247521*/                OPC_EmitMergeInputChains1_2,
/*247522*/                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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                          // Dst: (VPERMQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*247536*/              0, /*End of Scope*/
/*247537*/            0, // EndSwitchOpcode
/*247538*/          /*SwitchOpcode*/ 33|128,1/*161*/, TARGET_VAL(X86ISD::VPMADD52L),// ->247703
/*247542*/            OPC_Scope, 78, /*->247622*/ // 2 children in Scope
/*247544*/              OPC_RecordChild0, // #1 = $src2
/*247545*/              OPC_MoveChild1,
/*247546*/              OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->247585
/*247550*/                OPC_RecordMemRef,
/*247551*/                OPC_RecordNode, // #2 = 'ld' chained node
/*247552*/                OPC_CheckFoldableChainNode,
/*247553*/                OPC_RecordChild1, // #3 = $src3
/*247554*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*247556*/                OPC_CheckPredicate, 9, // Predicate_load
/*247558*/                OPC_MoveParent,
/*247559*/                OPC_RecordChild2, // #4 = $src1
/*247560*/                OPC_MoveParent,
/*247561*/                OPC_CheckChild2Same, 4,
/*247563*/                OPC_CheckType, MVT::v8i64,
/*247565*/                OPC_CheckPatternPredicate, 185, // (Subtarget->hasIFMA())
/*247567*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*247570*/                OPC_EmitMergeInputChains1_2,
/*247571*/                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>>, VR512:{ *:[v8i64] }:$src1), VR512:{ *:[v8i64] }:$src1) - Complexity = 28
                          // Dst: (VPMADD52LUQZmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*247585*/              /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->247621
/*247588*/                OPC_RecordMemRef,
/*247589*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*247590*/                OPC_CheckFoldableChainNode,
/*247591*/                OPC_RecordChild1, // #3 = $src3
/*247592*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*247594*/                OPC_MoveParent,
/*247595*/                OPC_RecordChild2, // #4 = $src1
/*247596*/                OPC_MoveParent,
/*247597*/                OPC_CheckChild2Same, 4,
/*247599*/                OPC_CheckType, MVT::v8i64,
/*247601*/                OPC_CheckPatternPredicate, 185, // (Subtarget->hasIFMA())
/*247603*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*247606*/                OPC_EmitMergeInputChains1_2,
/*247607*/                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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8i64] }:$src1), VR512:{ *:[v8i64] }:$src1) - Complexity = 28
                          // Dst: (VPMADD52LUQZmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*247621*/              0, // EndSwitchOpcode
/*247622*/            /*Scope*/ 79, /*->247702*/
/*247623*/              OPC_MoveChild0,
/*247624*/              OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->247664
/*247628*/                OPC_RecordMemRef,
/*247629*/                OPC_RecordNode, // #1 = 'ld' chained node
/*247630*/                OPC_CheckFoldableChainNode,
/*247631*/                OPC_RecordChild1, // #2 = $src3
/*247632*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*247634*/                OPC_CheckPredicate, 9, // Predicate_load
/*247636*/                OPC_MoveParent,
/*247637*/                OPC_RecordChild1, // #3 = $src2
/*247638*/                OPC_RecordChild2, // #4 = $src1
/*247639*/                OPC_MoveParent,
/*247640*/                OPC_CheckChild2Same, 4,
/*247642*/                OPC_CheckType, MVT::v8i64,
/*247644*/                OPC_CheckPatternPredicate, 185, // (Subtarget->hasIFMA())
/*247646*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*247649*/                OPC_EmitMergeInputChains1_1,
/*247650*/                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>>, 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)
/*247664*/              /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->247701
/*247667*/                OPC_RecordMemRef,
/*247668*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*247669*/                OPC_CheckFoldableChainNode,
/*247670*/                OPC_RecordChild1, // #2 = $src3
/*247671*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*247673*/                OPC_MoveParent,
/*247674*/                OPC_RecordChild1, // #3 = $src2
/*247675*/                OPC_RecordChild2, // #4 = $src1
/*247676*/                OPC_MoveParent,
/*247677*/                OPC_CheckChild2Same, 4,
/*247679*/                OPC_CheckType, MVT::v8i64,
/*247681*/                OPC_CheckPatternPredicate, 185, // (Subtarget->hasIFMA())
/*247683*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*247686*/                OPC_EmitMergeInputChains1_1,
/*247687*/                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] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src1), VR512:{ *:[v8i64] }:$src1) - Complexity = 28
                          // Dst: (VPMADD52LUQZmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*247701*/              0, // EndSwitchOpcode
/*247702*/            0, /*End of Scope*/
/*247703*/          /*SwitchOpcode*/ 33|128,1/*161*/, TARGET_VAL(X86ISD::VPMADD52H),// ->247868
/*247707*/            OPC_Scope, 78, /*->247787*/ // 2 children in Scope
/*247709*/              OPC_RecordChild0, // #1 = $src2
/*247710*/              OPC_MoveChild1,
/*247711*/              OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->247750
/*247715*/                OPC_RecordMemRef,
/*247716*/                OPC_RecordNode, // #2 = 'ld' chained node
/*247717*/                OPC_CheckFoldableChainNode,
/*247718*/                OPC_RecordChild1, // #3 = $src3
/*247719*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*247721*/                OPC_CheckPredicate, 9, // Predicate_load
/*247723*/                OPC_MoveParent,
/*247724*/                OPC_RecordChild2, // #4 = $src1
/*247725*/                OPC_MoveParent,
/*247726*/                OPC_CheckChild2Same, 4,
/*247728*/                OPC_CheckType, MVT::v8i64,
/*247730*/                OPC_CheckPatternPredicate, 185, // (Subtarget->hasIFMA())
/*247732*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*247735*/                OPC_EmitMergeInputChains1_2,
/*247736*/                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>>, VR512:{ *:[v8i64] }:$src1), VR512:{ *:[v8i64] }:$src1) - Complexity = 28
                          // Dst: (VPMADD52HUQZmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*247750*/              /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->247786
/*247753*/                OPC_RecordMemRef,
/*247754*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*247755*/                OPC_CheckFoldableChainNode,
/*247756*/                OPC_RecordChild1, // #3 = $src3
/*247757*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*247759*/                OPC_MoveParent,
/*247760*/                OPC_RecordChild2, // #4 = $src1
/*247761*/                OPC_MoveParent,
/*247762*/                OPC_CheckChild2Same, 4,
/*247764*/                OPC_CheckType, MVT::v8i64,
/*247766*/                OPC_CheckPatternPredicate, 185, // (Subtarget->hasIFMA())
/*247768*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*247771*/                OPC_EmitMergeInputChains1_2,
/*247772*/                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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8i64] }:$src1), VR512:{ *:[v8i64] }:$src1) - Complexity = 28
                          // Dst: (VPMADD52HUQZmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*247786*/              0, // EndSwitchOpcode
/*247787*/            /*Scope*/ 79, /*->247867*/
/*247788*/              OPC_MoveChild0,
/*247789*/              OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->247829
/*247793*/                OPC_RecordMemRef,
/*247794*/                OPC_RecordNode, // #1 = 'ld' chained node
/*247795*/                OPC_CheckFoldableChainNode,
/*247796*/                OPC_RecordChild1, // #2 = $src3
/*247797*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*247799*/                OPC_CheckPredicate, 9, // Predicate_load
/*247801*/                OPC_MoveParent,
/*247802*/                OPC_RecordChild1, // #3 = $src2
/*247803*/                OPC_RecordChild2, // #4 = $src1
/*247804*/                OPC_MoveParent,
/*247805*/                OPC_CheckChild2Same, 4,
/*247807*/                OPC_CheckType, MVT::v8i64,
/*247809*/                OPC_CheckPatternPredicate, 185, // (Subtarget->hasIFMA())
/*247811*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*247814*/                OPC_EmitMergeInputChains1_1,
/*247815*/                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>>, 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)
/*247829*/              /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->247866
/*247832*/                OPC_RecordMemRef,
/*247833*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*247834*/                OPC_CheckFoldableChainNode,
/*247835*/                OPC_RecordChild1, // #2 = $src3
/*247836*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*247838*/                OPC_MoveParent,
/*247839*/                OPC_RecordChild1, // #3 = $src2
/*247840*/                OPC_RecordChild2, // #4 = $src1
/*247841*/                OPC_MoveParent,
/*247842*/                OPC_CheckChild2Same, 4,
/*247844*/                OPC_CheckType, MVT::v8i64,
/*247846*/                OPC_CheckPatternPredicate, 185, // (Subtarget->hasIFMA())
/*247848*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*247851*/                OPC_EmitMergeInputChains1_1,
/*247852*/                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] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src1), VR512:{ *:[v8i64] }:$src1) - Complexity = 28
                          // Dst: (VPMADD52HUQZmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*247866*/              0, // EndSwitchOpcode
/*247867*/            0, /*End of Scope*/
/*247868*/          /*SwitchOpcode*/ 123|128,1/*251*/, TARGET_VAL(X86ISD::STRICT_CVTTP2SI),// ->248123
/*247872*/            OPC_RecordNode, // #1 = 'X86strict_cvttp2si' chained node
/*247873*/            OPC_CheckFoldableChainNode,
/*247874*/            OPC_MoveChild1,
/*247875*/            OPC_SwitchOpcode /*2 cases */, 120, TARGET_VAL(ISD::LOAD),// ->247999
/*247879*/              OPC_RecordMemRef,
/*247880*/              OPC_RecordNode, // #2 = 'ld' chained node
/*247881*/              OPC_CheckFoldableChainNode,
/*247882*/              OPC_RecordChild1, // #3 = $src
/*247883*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*247885*/              OPC_CheckPredicate, 9, // Predicate_load
/*247887*/              OPC_SwitchType /*2 cases */, 53, MVT::v8f32,// ->247943
/*247890*/                OPC_MoveParent,
/*247891*/                OPC_MoveParent,
/*247892*/                OPC_RecordChild2, // #4 = $src0
/*247893*/                OPC_SwitchType /*2 cases */, 22, MVT::v8i32,// ->247918
/*247896*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*247898*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*247901*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*247905*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_cvttp2si:{ *:[v8i32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPS2DQZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*247918*/                /*SwitchType*/ 22, MVT::v8i64,// ->247942
/*247920*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*247922*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*247925*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*247929*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_cvttp2si:{ *:[v8i64] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPS2QQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*247942*/                0, // EndSwitchType
/*247943*/              /*SwitchType*/ 53, MVT::v8f64,// ->247998
/*247945*/                OPC_MoveParent,
/*247946*/                OPC_MoveParent,
/*247947*/                OPC_RecordChild2, // #4 = $src0
/*247948*/                OPC_SwitchType /*2 cases */, 22, MVT::v8i32,// ->247973
/*247951*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*247953*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*247956*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*247960*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_cvttp2si:{ *:[v8i32] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPD2DQZrmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*247973*/                /*SwitchType*/ 22, MVT::v8i64,// ->247997
/*247975*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*247977*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*247980*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*247984*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_cvttp2si:{ *:[v8i64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPD2QQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*247997*/                0, // EndSwitchType
/*247998*/              0, // EndSwitchType
/*247999*/            /*SwitchOpcode*/ 120, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->248122
/*248002*/              OPC_RecordMemRef,
/*248003*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*248004*/              OPC_CheckFoldableChainNode,
/*248005*/              OPC_RecordChild1, // #3 = $src
/*248006*/              OPC_SwitchType /*2 cases */, 55, MVT::v8f32,// ->248064
/*248009*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*248011*/                OPC_MoveParent,
/*248012*/                OPC_MoveParent,
/*248013*/                OPC_RecordChild2, // #4 = $src0
/*248014*/                OPC_SwitchType /*2 cases */, 22, MVT::v8i32,// ->248039
/*248017*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*248019*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*248022*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*248026*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_cvttp2si:{ *:[v8i32] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPS2DQZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*248039*/                /*SwitchType*/ 22, MVT::v8i64,// ->248063
/*248041*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*248043*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*248046*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*248050*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_cvttp2si:{ *:[v8i64] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPS2QQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*248063*/                0, // EndSwitchType
/*248064*/              /*SwitchType*/ 55, MVT::v8f64,// ->248121
/*248066*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*248068*/                OPC_MoveParent,
/*248069*/                OPC_MoveParent,
/*248070*/                OPC_RecordChild2, // #4 = $src0
/*248071*/                OPC_SwitchType /*2 cases */, 22, MVT::v8i32,// ->248096
/*248074*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*248076*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*248079*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*248083*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_cvttp2si:{ *:[v8i32] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPD2DQZrmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*248096*/                /*SwitchType*/ 22, MVT::v8i64,// ->248120
/*248098*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*248100*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*248103*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*248107*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_cvttp2si:{ *:[v8i64] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPD2QQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*248120*/                0, // EndSwitchType
/*248121*/              0, // EndSwitchType
/*248122*/            0, // EndSwitchOpcode
/*248123*/          /*SwitchOpcode*/ 97|128,1/*225*/, TARGET_VAL(X86ISD::CVTTP2SI),// ->248352
/*248127*/            OPC_MoveChild0,
/*248128*/            OPC_SwitchOpcode /*2 cases */, 108, TARGET_VAL(ISD::LOAD),// ->248240
/*248132*/              OPC_RecordMemRef,
/*248133*/              OPC_RecordNode, // #1 = 'ld' chained node
/*248134*/              OPC_CheckFoldableChainNode,
/*248135*/              OPC_RecordChild1, // #2 = $src
/*248136*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*248138*/              OPC_CheckPredicate, 9, // Predicate_load
/*248140*/              OPC_SwitchType /*2 cases */, 47, MVT::v8f32,// ->248190
/*248143*/                OPC_MoveParent,
/*248144*/                OPC_MoveParent,
/*248145*/                OPC_RecordChild2, // #3 = $src0
/*248146*/                OPC_SwitchType /*2 cases */, 19, MVT::v8i32,// ->248168
/*248149*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*248151*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*248154*/                  OPC_EmitMergeInputChains1_1,
/*248155*/                  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>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPS2DQZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*248168*/                /*SwitchType*/ 19, MVT::v8i64,// ->248189
/*248170*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*248172*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*248175*/                  OPC_EmitMergeInputChains1_1,
/*248176*/                  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>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPS2QQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*248189*/                0, // EndSwitchType
/*248190*/              /*SwitchType*/ 47, MVT::v8f64,// ->248239
/*248192*/                OPC_MoveParent,
/*248193*/                OPC_MoveParent,
/*248194*/                OPC_RecordChild2, // #3 = $src0
/*248195*/                OPC_SwitchType /*2 cases */, 19, MVT::v8i32,// ->248217
/*248198*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*248200*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*248203*/                  OPC_EmitMergeInputChains1_1,
/*248204*/                  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>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPD2DQZrmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*248217*/                /*SwitchType*/ 19, MVT::v8i64,// ->248238
/*248219*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*248221*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*248224*/                  OPC_EmitMergeInputChains1_1,
/*248225*/                  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>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPD2QQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*248238*/                0, // EndSwitchType
/*248239*/              0, // EndSwitchType
/*248240*/            /*SwitchOpcode*/ 108, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->248351
/*248243*/              OPC_RecordMemRef,
/*248244*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*248245*/              OPC_CheckFoldableChainNode,
/*248246*/              OPC_RecordChild1, // #2 = $src
/*248247*/              OPC_SwitchType /*2 cases */, 49, MVT::v8f32,// ->248299
/*248250*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*248252*/                OPC_MoveParent,
/*248253*/                OPC_MoveParent,
/*248254*/                OPC_RecordChild2, // #3 = $src0
/*248255*/                OPC_SwitchType /*2 cases */, 19, MVT::v8i32,// ->248277
/*248258*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*248260*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*248263*/                  OPC_EmitMergeInputChains1_1,
/*248264*/                  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] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPS2DQZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*248277*/                /*SwitchType*/ 19, MVT::v8i64,// ->248298
/*248279*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*248281*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*248284*/                  OPC_EmitMergeInputChains1_1,
/*248285*/                  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] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPS2QQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*248298*/                0, // EndSwitchType
/*248299*/              /*SwitchType*/ 49, MVT::v8f64,// ->248350
/*248301*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*248303*/                OPC_MoveParent,
/*248304*/                OPC_MoveParent,
/*248305*/                OPC_RecordChild2, // #3 = $src0
/*248306*/                OPC_SwitchType /*2 cases */, 19, MVT::v8i32,// ->248328
/*248309*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*248311*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*248314*/                  OPC_EmitMergeInputChains1_1,
/*248315*/                  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] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPD2DQZrmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*248328*/                /*SwitchType*/ 19, MVT::v8i64,// ->248349
/*248330*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*248332*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*248335*/                  OPC_EmitMergeInputChains1_1,
/*248336*/                  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] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPD2QQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*248349*/                0, // EndSwitchType
/*248350*/              0, // EndSwitchType
/*248351*/            0, // EndSwitchOpcode
/*248352*/          /*SwitchOpcode*/ 123|128,1/*251*/, TARGET_VAL(X86ISD::STRICT_CVTTP2UI),// ->248607
/*248356*/            OPC_RecordNode, // #1 = 'X86strict_cvttp2ui' chained node
/*248357*/            OPC_CheckFoldableChainNode,
/*248358*/            OPC_MoveChild1,
/*248359*/            OPC_SwitchOpcode /*2 cases */, 120, TARGET_VAL(ISD::LOAD),// ->248483
/*248363*/              OPC_RecordMemRef,
/*248364*/              OPC_RecordNode, // #2 = 'ld' chained node
/*248365*/              OPC_CheckFoldableChainNode,
/*248366*/              OPC_RecordChild1, // #3 = $src
/*248367*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*248369*/              OPC_CheckPredicate, 9, // Predicate_load
/*248371*/              OPC_SwitchType /*2 cases */, 53, MVT::v8f32,// ->248427
/*248374*/                OPC_MoveParent,
/*248375*/                OPC_MoveParent,
/*248376*/                OPC_RecordChild2, // #4 = $src0
/*248377*/                OPC_SwitchType /*2 cases */, 22, MVT::v8i32,// ->248402
/*248380*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*248382*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*248385*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*248389*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_cvttp2ui:{ *:[v8i32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPS2UDQZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*248402*/                /*SwitchType*/ 22, MVT::v8i64,// ->248426
/*248404*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*248406*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*248409*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*248413*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_cvttp2ui:{ *:[v8i64] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPS2UQQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*248426*/                0, // EndSwitchType
/*248427*/              /*SwitchType*/ 53, MVT::v8f64,// ->248482
/*248429*/                OPC_MoveParent,
/*248430*/                OPC_MoveParent,
/*248431*/                OPC_RecordChild2, // #4 = $src0
/*248432*/                OPC_SwitchType /*2 cases */, 22, MVT::v8i32,// ->248457
/*248435*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*248437*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*248440*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*248444*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_cvttp2ui:{ *:[v8i32] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPD2UDQZrmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*248457*/                /*SwitchType*/ 22, MVT::v8i64,// ->248481
/*248459*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*248461*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*248464*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*248468*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_cvttp2ui:{ *:[v8i64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPD2UQQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*248481*/                0, // EndSwitchType
/*248482*/              0, // EndSwitchType
/*248483*/            /*SwitchOpcode*/ 120, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->248606
/*248486*/              OPC_RecordMemRef,
/*248487*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*248488*/              OPC_CheckFoldableChainNode,
/*248489*/              OPC_RecordChild1, // #3 = $src
/*248490*/              OPC_SwitchType /*2 cases */, 55, MVT::v8f32,// ->248548
/*248493*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*248495*/                OPC_MoveParent,
/*248496*/                OPC_MoveParent,
/*248497*/                OPC_RecordChild2, // #4 = $src0
/*248498*/                OPC_SwitchType /*2 cases */, 22, MVT::v8i32,// ->248523
/*248501*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*248503*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*248506*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*248510*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_cvttp2ui:{ *:[v8i32] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPS2UDQZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*248523*/                /*SwitchType*/ 22, MVT::v8i64,// ->248547
/*248525*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*248527*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*248530*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*248534*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_cvttp2ui:{ *:[v8i64] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPS2UQQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*248547*/                0, // EndSwitchType
/*248548*/              /*SwitchType*/ 55, MVT::v8f64,// ->248605
/*248550*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*248552*/                OPC_MoveParent,
/*248553*/                OPC_MoveParent,
/*248554*/                OPC_RecordChild2, // #4 = $src0
/*248555*/                OPC_SwitchType /*2 cases */, 22, MVT::v8i32,// ->248580
/*248558*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*248560*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*248563*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*248567*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_cvttp2ui:{ *:[v8i32] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPD2UDQZrmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*248580*/                /*SwitchType*/ 22, MVT::v8i64,// ->248604
/*248582*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*248584*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*248587*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*248591*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_cvttp2ui:{ *:[v8i64] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPD2UQQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*248604*/                0, // EndSwitchType
/*248605*/              0, // EndSwitchType
/*248606*/            0, // EndSwitchOpcode
/*248607*/          /*SwitchOpcode*/ 97|128,1/*225*/, TARGET_VAL(X86ISD::CVTTP2UI),// ->248836
/*248611*/            OPC_MoveChild0,
/*248612*/            OPC_SwitchOpcode /*2 cases */, 108, TARGET_VAL(ISD::LOAD),// ->248724
/*248616*/              OPC_RecordMemRef,
/*248617*/              OPC_RecordNode, // #1 = 'ld' chained node
/*248618*/              OPC_CheckFoldableChainNode,
/*248619*/              OPC_RecordChild1, // #2 = $src
/*248620*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*248622*/              OPC_CheckPredicate, 9, // Predicate_load
/*248624*/              OPC_SwitchType /*2 cases */, 47, MVT::v8f32,// ->248674
/*248627*/                OPC_MoveParent,
/*248628*/                OPC_MoveParent,
/*248629*/                OPC_RecordChild2, // #3 = $src0
/*248630*/                OPC_SwitchType /*2 cases */, 19, MVT::v8i32,// ->248652
/*248633*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*248635*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*248638*/                  OPC_EmitMergeInputChains1_1,
/*248639*/                  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>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPS2UDQZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*248652*/                /*SwitchType*/ 19, MVT::v8i64,// ->248673
/*248654*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*248656*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*248659*/                  OPC_EmitMergeInputChains1_1,
/*248660*/                  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>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPS2UQQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*248673*/                0, // EndSwitchType
/*248674*/              /*SwitchType*/ 47, MVT::v8f64,// ->248723
/*248676*/                OPC_MoveParent,
/*248677*/                OPC_MoveParent,
/*248678*/                OPC_RecordChild2, // #3 = $src0
/*248679*/                OPC_SwitchType /*2 cases */, 19, MVT::v8i32,// ->248701
/*248682*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*248684*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*248687*/                  OPC_EmitMergeInputChains1_1,
/*248688*/                  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>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPD2UDQZrmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*248701*/                /*SwitchType*/ 19, MVT::v8i64,// ->248722
/*248703*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*248705*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*248708*/                  OPC_EmitMergeInputChains1_1,
/*248709*/                  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>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPD2UQQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*248722*/                0, // EndSwitchType
/*248723*/              0, // EndSwitchType
/*248724*/            /*SwitchOpcode*/ 108, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->248835
/*248727*/              OPC_RecordMemRef,
/*248728*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*248729*/              OPC_CheckFoldableChainNode,
/*248730*/              OPC_RecordChild1, // #2 = $src
/*248731*/              OPC_SwitchType /*2 cases */, 49, MVT::v8f32,// ->248783
/*248734*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*248736*/                OPC_MoveParent,
/*248737*/                OPC_MoveParent,
/*248738*/                OPC_RecordChild2, // #3 = $src0
/*248739*/                OPC_SwitchType /*2 cases */, 19, MVT::v8i32,// ->248761
/*248742*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*248744*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*248747*/                  OPC_EmitMergeInputChains1_1,
/*248748*/                  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] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPS2UDQZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*248761*/                /*SwitchType*/ 19, MVT::v8i64,// ->248782
/*248763*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*248765*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*248768*/                  OPC_EmitMergeInputChains1_1,
/*248769*/                  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] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPS2UQQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*248782*/                0, // EndSwitchType
/*248783*/              /*SwitchType*/ 49, MVT::v8f64,// ->248834
/*248785*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*248787*/                OPC_MoveParent,
/*248788*/                OPC_MoveParent,
/*248789*/                OPC_RecordChild2, // #3 = $src0
/*248790*/                OPC_SwitchType /*2 cases */, 19, MVT::v8i32,// ->248812
/*248793*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*248795*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*248798*/                  OPC_EmitMergeInputChains1_1,
/*248799*/                  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] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPD2UDQZrmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*248812*/                /*SwitchType*/ 19, MVT::v8i64,// ->248833
/*248814*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*248816*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*248819*/                  OPC_EmitMergeInputChains1_1,
/*248820*/                  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] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPD2UQQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*248833*/                0, // EndSwitchType
/*248834*/              0, // EndSwitchType
/*248835*/            0, // EndSwitchOpcode
/*248836*/          /*SwitchOpcode*/ 97|128,1/*225*/, TARGET_VAL(X86ISD::CVTP2SI),// ->249065
/*248840*/            OPC_MoveChild0,
/*248841*/            OPC_SwitchOpcode /*2 cases */, 108, TARGET_VAL(ISD::LOAD),// ->248953
/*248845*/              OPC_RecordMemRef,
/*248846*/              OPC_RecordNode, // #1 = 'ld' chained node
/*248847*/              OPC_CheckFoldableChainNode,
/*248848*/              OPC_RecordChild1, // #2 = $src
/*248849*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*248851*/              OPC_CheckPredicate, 9, // Predicate_load
/*248853*/              OPC_SwitchType /*2 cases */, 47, MVT::v8f32,// ->248903
/*248856*/                OPC_MoveParent,
/*248857*/                OPC_MoveParent,
/*248858*/                OPC_RecordChild2, // #3 = $src0
/*248859*/                OPC_SwitchType /*2 cases */, 19, MVT::v8i32,// ->248881
/*248862*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*248864*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*248867*/                  OPC_EmitMergeInputChains1_1,
/*248868*/                  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>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VCVTPS2DQZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*248881*/                /*SwitchType*/ 19, MVT::v8i64,// ->248902
/*248883*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*248885*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*248888*/                  OPC_EmitMergeInputChains1_1,
/*248889*/                  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>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTPS2QQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*248902*/                0, // EndSwitchType
/*248903*/              /*SwitchType*/ 47, MVT::v8f64,// ->248952
/*248905*/                OPC_MoveParent,
/*248906*/                OPC_MoveParent,
/*248907*/                OPC_RecordChild2, // #3 = $src0
/*248908*/                OPC_SwitchType /*2 cases */, 19, MVT::v8i32,// ->248930
/*248911*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*248913*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*248916*/                  OPC_EmitMergeInputChains1_1,
/*248917*/                  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>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VCVTPD2DQZrmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*248930*/                /*SwitchType*/ 19, MVT::v8i64,// ->248951
/*248932*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*248934*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*248937*/                  OPC_EmitMergeInputChains1_1,
/*248938*/                  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>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTPD2QQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*248951*/                0, // EndSwitchType
/*248952*/              0, // EndSwitchType
/*248953*/            /*SwitchOpcode*/ 108, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->249064
/*248956*/              OPC_RecordMemRef,
/*248957*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*248958*/              OPC_CheckFoldableChainNode,
/*248959*/              OPC_RecordChild1, // #2 = $src
/*248960*/              OPC_SwitchType /*2 cases */, 49, MVT::v8f32,// ->249012
/*248963*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*248965*/                OPC_MoveParent,
/*248966*/                OPC_MoveParent,
/*248967*/                OPC_RecordChild2, // #3 = $src0
/*248968*/                OPC_SwitchType /*2 cases */, 19, MVT::v8i32,// ->248990
/*248971*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*248973*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*248976*/                  OPC_EmitMergeInputChains1_1,
/*248977*/                  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] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VCVTPS2DQZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*248990*/                /*SwitchType*/ 19, MVT::v8i64,// ->249011
/*248992*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*248994*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*248997*/                  OPC_EmitMergeInputChains1_1,
/*248998*/                  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] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTPS2QQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*249011*/                0, // EndSwitchType
/*249012*/              /*SwitchType*/ 49, MVT::v8f64,// ->249063
/*249014*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*249016*/                OPC_MoveParent,
/*249017*/                OPC_MoveParent,
/*249018*/                OPC_RecordChild2, // #3 = $src0
/*249019*/                OPC_SwitchType /*2 cases */, 19, MVT::v8i32,// ->249041
/*249022*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*249024*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*249027*/                  OPC_EmitMergeInputChains1_1,
/*249028*/                  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] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VCVTPD2DQZrmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*249041*/                /*SwitchType*/ 19, MVT::v8i64,// ->249062
/*249043*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*249045*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*249048*/                  OPC_EmitMergeInputChains1_1,
/*249049*/                  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] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTPD2QQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*249062*/                0, // EndSwitchType
/*249063*/              0, // EndSwitchType
/*249064*/            0, // EndSwitchOpcode
/*249065*/          /*SwitchOpcode*/ 97|128,1/*225*/, TARGET_VAL(X86ISD::CVTP2UI),// ->249294
/*249069*/            OPC_MoveChild0,
/*249070*/            OPC_SwitchOpcode /*2 cases */, 108, TARGET_VAL(ISD::LOAD),// ->249182
/*249074*/              OPC_RecordMemRef,
/*249075*/              OPC_RecordNode, // #1 = 'ld' chained node
/*249076*/              OPC_CheckFoldableChainNode,
/*249077*/              OPC_RecordChild1, // #2 = $src
/*249078*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*249080*/              OPC_CheckPredicate, 9, // Predicate_load
/*249082*/              OPC_SwitchType /*2 cases */, 47, MVT::v8f32,// ->249132
/*249085*/                OPC_MoveParent,
/*249086*/                OPC_MoveParent,
/*249087*/                OPC_RecordChild2, // #3 = $src0
/*249088*/                OPC_SwitchType /*2 cases */, 19, MVT::v8i32,// ->249110
/*249091*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*249093*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*249096*/                  OPC_EmitMergeInputChains1_1,
/*249097*/                  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>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VCVTPS2UDQZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*249110*/                /*SwitchType*/ 19, MVT::v8i64,// ->249131
/*249112*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*249114*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*249117*/                  OPC_EmitMergeInputChains1_1,
/*249118*/                  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>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTPS2UQQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*249131*/                0, // EndSwitchType
/*249132*/              /*SwitchType*/ 47, MVT::v8f64,// ->249181
/*249134*/                OPC_MoveParent,
/*249135*/                OPC_MoveParent,
/*249136*/                OPC_RecordChild2, // #3 = $src0
/*249137*/                OPC_SwitchType /*2 cases */, 19, MVT::v8i32,// ->249159
/*249140*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*249142*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*249145*/                  OPC_EmitMergeInputChains1_1,
/*249146*/                  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>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VCVTPD2UDQZrmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*249159*/                /*SwitchType*/ 19, MVT::v8i64,// ->249180
/*249161*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*249163*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*249166*/                  OPC_EmitMergeInputChains1_1,
/*249167*/                  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>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTPD2UQQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*249180*/                0, // EndSwitchType
/*249181*/              0, // EndSwitchType
/*249182*/            /*SwitchOpcode*/ 108, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->249293
/*249185*/              OPC_RecordMemRef,
/*249186*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*249187*/              OPC_CheckFoldableChainNode,
/*249188*/              OPC_RecordChild1, // #2 = $src
/*249189*/              OPC_SwitchType /*2 cases */, 49, MVT::v8f32,// ->249241
/*249192*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*249194*/                OPC_MoveParent,
/*249195*/                OPC_MoveParent,
/*249196*/                OPC_RecordChild2, // #3 = $src0
/*249197*/                OPC_SwitchType /*2 cases */, 19, MVT::v8i32,// ->249219
/*249200*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*249202*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*249205*/                  OPC_EmitMergeInputChains1_1,
/*249206*/                  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] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VCVTPS2UDQZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*249219*/                /*SwitchType*/ 19, MVT::v8i64,// ->249240
/*249221*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*249223*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*249226*/                  OPC_EmitMergeInputChains1_1,
/*249227*/                  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] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTPS2UQQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*249240*/                0, // EndSwitchType
/*249241*/              /*SwitchType*/ 49, MVT::v8f64,// ->249292
/*249243*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*249245*/                OPC_MoveParent,
/*249246*/                OPC_MoveParent,
/*249247*/                OPC_RecordChild2, // #3 = $src0
/*249248*/                OPC_SwitchType /*2 cases */, 19, MVT::v8i32,// ->249270
/*249251*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*249253*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*249256*/                  OPC_EmitMergeInputChains1_1,
/*249257*/                  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] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                            // Dst: (VCVTPD2UDQZrmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*249270*/                /*SwitchType*/ 19, MVT::v8i64,// ->249291
/*249272*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*249274*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*249277*/                  OPC_EmitMergeInputChains1_1,
/*249278*/                  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] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTPD2UQQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*249291*/                0, // EndSwitchType
/*249292*/              0, // EndSwitchType
/*249293*/            0, // EndSwitchOpcode
/*249294*/          /*SwitchOpcode*/ 17|128,1/*145*/, TARGET_VAL(ISD::ABS),// ->249443
/*249298*/            OPC_MoveChild0,
/*249299*/            OPC_SwitchOpcode /*2 cases */, 76, TARGET_VAL(ISD::LOAD),// ->249379
/*249303*/              OPC_RecordMemRef,
/*249304*/              OPC_RecordNode, // #1 = 'ld' chained node
/*249305*/              OPC_CheckFoldableChainNode,
/*249306*/              OPC_RecordChild1, // #2 = $src1
/*249307*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*249309*/              OPC_CheckPredicate, 9, // Predicate_load
/*249311*/              OPC_MoveParent,
/*249312*/              OPC_MoveParent,
/*249313*/              OPC_RecordChild2, // #3 = $src0
/*249314*/              OPC_SwitchType /*3 cases */, 19, MVT::v8i64,// ->249336
/*249317*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*249319*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*249322*/                OPC_EmitMergeInputChains1_1,
/*249323*/                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>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                          // Dst: (VPABSQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*249336*/              /*SwitchType*/ 19, MVT::v8i32,// ->249357
/*249338*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*249340*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*249343*/                OPC_EmitMergeInputChains1_1,
/*249344*/                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] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                          // Dst: (VPABSDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*249357*/              /*SwitchType*/ 19, MVT::v8i16,// ->249378
/*249359*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*249361*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*249364*/                OPC_EmitMergeInputChains1_1,
/*249365*/                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] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v8i16] }:$src0) - Complexity = 28
                          // Dst: (VPABSWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*249378*/              0, // EndSwitchType
/*249379*/            /*SwitchOpcode*/ 60, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->249442
/*249382*/              OPC_RecordMemRef,
/*249383*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*249384*/              OPC_CheckFoldableChainNode,
/*249385*/              OPC_RecordChild1, // #2 = $src1
/*249386*/              OPC_Scope, 26, /*->249414*/ // 2 children in Scope
/*249388*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*249390*/                OPC_MoveParent,
/*249391*/                OPC_MoveParent,
/*249392*/                OPC_RecordChild2, // #3 = $src0
/*249393*/                OPC_CheckType, MVT::v8i64,
/*249395*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*249397*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*249400*/                OPC_EmitMergeInputChains1_1,
/*249401*/                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] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                          // Dst: (VPABSQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*249414*/              /*Scope*/ 26, /*->249441*/
/*249415*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*249417*/                OPC_MoveParent,
/*249418*/                OPC_MoveParent,
/*249419*/                OPC_RecordChild2, // #3 = $src0
/*249420*/                OPC_CheckType, MVT::v8i32,
/*249422*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*249424*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*249427*/                OPC_EmitMergeInputChains1_1,
/*249428*/                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] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                          // Dst: (VPABSDZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*249441*/              0, /*End of Scope*/
/*249442*/            0, // EndSwitchOpcode
/*249443*/          /*SwitchOpcode*/ 5|128,1/*133*/, TARGET_VAL(ISD::CTLZ),// ->249580
/*249447*/            OPC_MoveChild0,
/*249448*/            OPC_SwitchOpcode /*2 cases */, 62, TARGET_VAL(ISD::LOAD),// ->249514
/*249452*/              OPC_RecordMemRef,
/*249453*/              OPC_RecordNode, // #1 = 'ld' chained node
/*249454*/              OPC_CheckFoldableChainNode,
/*249455*/              OPC_RecordChild1, // #2 = $src1
/*249456*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*249458*/              OPC_CheckPredicate, 9, // Predicate_load
/*249460*/              OPC_SwitchType /*2 cases */, 24, MVT::v8i64,// ->249487
/*249463*/                OPC_MoveParent,
/*249464*/                OPC_MoveParent,
/*249465*/                OPC_RecordChild2, // #3 = $src0
/*249466*/                OPC_CheckType, MVT::v8i64,
/*249468*/                OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*249470*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*249473*/                OPC_EmitMergeInputChains1_1,
/*249474*/                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>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                          // Dst: (VPLZCNTQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*249487*/              /*SwitchType*/ 24, MVT::v8i32,// ->249513
/*249489*/                OPC_MoveParent,
/*249490*/                OPC_MoveParent,
/*249491*/                OPC_RecordChild2, // #3 = $src0
/*249492*/                OPC_CheckType, MVT::v8i32,
/*249494*/                OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*249496*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*249499*/                OPC_EmitMergeInputChains1_1,
/*249500*/                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] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                          // Dst: (VPLZCNTDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*249513*/              0, // EndSwitchType
/*249514*/            /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->249579
/*249517*/              OPC_RecordMemRef,
/*249518*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*249519*/              OPC_CheckFoldableChainNode,
/*249520*/              OPC_RecordChild1, // #2 = $src1
/*249521*/              OPC_SwitchType /*2 cases */, 26, MVT::v8i64,// ->249550
/*249524*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*249526*/                OPC_MoveParent,
/*249527*/                OPC_MoveParent,
/*249528*/                OPC_RecordChild2, // #3 = $src0
/*249529*/                OPC_CheckType, MVT::v8i64,
/*249531*/                OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*249533*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*249536*/                OPC_EmitMergeInputChains1_1,
/*249537*/                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] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                          // Dst: (VPLZCNTQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*249550*/              /*SwitchType*/ 26, MVT::v8i32,// ->249578
/*249552*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*249554*/                OPC_MoveParent,
/*249555*/                OPC_MoveParent,
/*249556*/                OPC_RecordChild2, // #3 = $src0
/*249557*/                OPC_CheckType, MVT::v8i32,
/*249559*/                OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*249561*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*249564*/                OPC_EmitMergeInputChains1_1,
/*249565*/                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] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                          // Dst: (VPLZCNTDZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*249578*/              0, // EndSwitchType
/*249579*/            0, // EndSwitchOpcode
/*249580*/          /*SwitchOpcode*/ 124, TARGET_VAL(X86ISD::CONFLICT),// ->249707
/*249583*/            OPC_MoveChild0,
/*249584*/            OPC_SwitchOpcode /*2 cases */, 55, TARGET_VAL(ISD::LOAD),// ->249643
/*249588*/              OPC_RecordMemRef,
/*249589*/              OPC_RecordNode, // #1 = 'ld' chained node
/*249590*/              OPC_CheckFoldableChainNode,
/*249591*/              OPC_RecordChild1, // #2 = $src1
/*249592*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*249594*/              OPC_CheckPredicate, 9, // Predicate_load
/*249596*/              OPC_MoveParent,
/*249597*/              OPC_MoveParent,
/*249598*/              OPC_RecordChild2, // #3 = $src0
/*249599*/              OPC_SwitchType /*2 cases */, 19, MVT::v8i64,// ->249621
/*249602*/                OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*249604*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*249607*/                OPC_EmitMergeInputChains1_1,
/*249608*/                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>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                          // Dst: (VPCONFLICTQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*249621*/              /*SwitchType*/ 19, MVT::v8i32,// ->249642
/*249623*/                OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*249625*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*249628*/                OPC_EmitMergeInputChains1_1,
/*249629*/                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] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                          // Dst: (VPCONFLICTDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*249642*/              0, // EndSwitchType
/*249643*/            /*SwitchOpcode*/ 60, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->249706
/*249646*/              OPC_RecordMemRef,
/*249647*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*249648*/              OPC_CheckFoldableChainNode,
/*249649*/              OPC_RecordChild1, // #2 = $src1
/*249650*/              OPC_Scope, 26, /*->249678*/ // 2 children in Scope
/*249652*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*249654*/                OPC_MoveParent,
/*249655*/                OPC_MoveParent,
/*249656*/                OPC_RecordChild2, // #3 = $src0
/*249657*/                OPC_CheckType, MVT::v8i64,
/*249659*/                OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*249661*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*249664*/                OPC_EmitMergeInputChains1_1,
/*249665*/                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] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                          // Dst: (VPCONFLICTQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*249678*/              /*Scope*/ 26, /*->249705*/
/*249679*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*249681*/                OPC_MoveParent,
/*249682*/                OPC_MoveParent,
/*249683*/                OPC_RecordChild2, // #3 = $src0
/*249684*/                OPC_CheckType, MVT::v8i32,
/*249686*/                OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*249688*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*249691*/                OPC_EmitMergeInputChains1_1,
/*249692*/                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] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                          // Dst: (VPCONFLICTDZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*249705*/              0, /*End of Scope*/
/*249706*/            0, // EndSwitchOpcode
/*249707*/          /*SwitchOpcode*/ 31|128,1/*159*/, TARGET_VAL(ISD::CTPOP),// ->249870
/*249711*/            OPC_MoveChild0,
/*249712*/            OPC_SwitchOpcode /*2 cases */, 88, TARGET_VAL(ISD::LOAD),// ->249804
/*249716*/              OPC_RecordMemRef,
/*249717*/              OPC_RecordNode, // #1 = 'ld' chained node
/*249718*/              OPC_CheckFoldableChainNode,
/*249719*/              OPC_RecordChild1, // #2 = $src1
/*249720*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*249722*/              OPC_CheckPredicate, 9, // Predicate_load
/*249724*/              OPC_SwitchType /*3 cases */, 24, MVT::v8i64,// ->249751
/*249727*/                OPC_MoveParent,
/*249728*/                OPC_MoveParent,
/*249729*/                OPC_RecordChild2, // #3 = $src0
/*249730*/                OPC_CheckType, MVT::v8i64,
/*249732*/                OPC_CheckPatternPredicate, 142, // (Subtarget->hasVPOPCNTDQ())
/*249734*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*249737*/                OPC_EmitMergeInputChains1_1,
/*249738*/                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>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                          // Dst: (VPOPCNTQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*249751*/              /*SwitchType*/ 24, MVT::v8i32,// ->249777
/*249753*/                OPC_MoveParent,
/*249754*/                OPC_MoveParent,
/*249755*/                OPC_RecordChild2, // #3 = $src0
/*249756*/                OPC_CheckType, MVT::v8i32,
/*249758*/                OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/*249760*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*249763*/                OPC_EmitMergeInputChains1_1,
/*249764*/                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] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                          // Dst: (VPOPCNTDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*249777*/              /*SwitchType*/ 24, MVT::v8i16,// ->249803
/*249779*/                OPC_MoveParent,
/*249780*/                OPC_MoveParent,
/*249781*/                OPC_RecordChild2, // #3 = $src0
/*249782*/                OPC_CheckType, MVT::v8i16,
/*249784*/                OPC_CheckPatternPredicate, 115, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/*249786*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*249789*/                OPC_EmitMergeInputChains1_1,
/*249790*/                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] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v8i16] }:$src0) - Complexity = 28
                          // Dst: (VPOPCNTWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*249803*/              0, // EndSwitchType
/*249804*/            /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->249869
/*249807*/              OPC_RecordMemRef,
/*249808*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*249809*/              OPC_CheckFoldableChainNode,
/*249810*/              OPC_RecordChild1, // #2 = $src1
/*249811*/              OPC_SwitchType /*2 cases */, 26, MVT::v8i64,// ->249840
/*249814*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*249816*/                OPC_MoveParent,
/*249817*/                OPC_MoveParent,
/*249818*/                OPC_RecordChild2, // #3 = $src0
/*249819*/                OPC_CheckType, MVT::v8i64,
/*249821*/                OPC_CheckPatternPredicate, 142, // (Subtarget->hasVPOPCNTDQ())
/*249823*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*249826*/                OPC_EmitMergeInputChains1_1,
/*249827*/                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] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                          // Dst: (VPOPCNTQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*249840*/              /*SwitchType*/ 26, MVT::v8i32,// ->249868
/*249842*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*249844*/                OPC_MoveParent,
/*249845*/                OPC_MoveParent,
/*249846*/                OPC_RecordChild2, // #3 = $src0
/*249847*/                OPC_CheckType, MVT::v8i32,
/*249849*/                OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/*249851*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*249854*/                OPC_EmitMergeInputChains1_1,
/*249855*/                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] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                          // Dst: (VPOPCNTDZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*249868*/              0, // EndSwitchType
/*249869*/            0, // EndSwitchOpcode
/*249870*/          /*SwitchOpcode*/ 23|128,1/*151*/, TARGET_VAL(X86ISD::UNPCKL),// ->250025
/*249874*/            OPC_RecordChild0, // #1 = $src1
/*249875*/            OPC_MoveChild1,
/*249876*/            OPC_SwitchOpcode /*2 cases */, 79, TARGET_VAL(ISD::LOAD),// ->249959
/*249880*/              OPC_RecordMemRef,
/*249881*/              OPC_RecordNode, // #2 = 'ld' chained node
/*249882*/              OPC_CheckFoldableChainNode,
/*249883*/              OPC_RecordChild1, // #3 = $src2
/*249884*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*249886*/              OPC_CheckPredicate, 9, // Predicate_load
/*249888*/              OPC_MoveParent,
/*249889*/              OPC_MoveParent,
/*249890*/              OPC_RecordChild2, // #4 = $src0
/*249891*/              OPC_SwitchType /*3 cases */, 20, MVT::v8i16,// ->249914
/*249894*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*249896*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*249899*/                OPC_EmitMergeInputChains1_2,
/*249900*/                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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v8i16] }:$src0) - Complexity = 28
                          // Dst: (VPUNPCKLWDZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*249914*/              /*SwitchType*/ 20, MVT::v8i32,// ->249936
/*249916*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*249918*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*249921*/                OPC_EmitMergeInputChains1_2,
/*249922*/                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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                          // Dst: (VPUNPCKLDQZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*249936*/              /*SwitchType*/ 20, MVT::v8i64,// ->249958
/*249938*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*249940*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*249943*/                OPC_EmitMergeInputChains1_2,
/*249944*/                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>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                          // Dst: (VPUNPCKLQDQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*249958*/              0, // EndSwitchType
/*249959*/            /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->250024
/*249962*/              OPC_RecordMemRef,
/*249963*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*249964*/              OPC_CheckFoldableChainNode,
/*249965*/              OPC_RecordChild1, // #3 = $src2
/*249966*/              OPC_Scope, 27, /*->249995*/ // 2 children in Scope
/*249968*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*249970*/                OPC_MoveParent,
/*249971*/                OPC_MoveParent,
/*249972*/                OPC_RecordChild2, // #4 = $src0
/*249973*/                OPC_CheckType, MVT::v8i32,
/*249975*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*249977*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*249980*/                OPC_EmitMergeInputChains1_2,
/*249981*/                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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                          // Dst: (VPUNPCKLDQZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*249995*/              /*Scope*/ 27, /*->250023*/
/*249996*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*249998*/                OPC_MoveParent,
/*249999*/                OPC_MoveParent,
/*250000*/                OPC_RecordChild2, // #4 = $src0
/*250001*/                OPC_CheckType, MVT::v8i64,
/*250003*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*250005*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*250008*/                OPC_EmitMergeInputChains1_2,
/*250009*/                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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                          // Dst: (VPUNPCKLQDQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*250023*/              0, /*End of Scope*/
/*250024*/            0, // EndSwitchOpcode
/*250025*/          /*SwitchOpcode*/ 23|128,1/*151*/, TARGET_VAL(X86ISD::UNPCKH),// ->250180
/*250029*/            OPC_RecordChild0, // #1 = $src1
/*250030*/            OPC_MoveChild1,
/*250031*/            OPC_SwitchOpcode /*2 cases */, 79, TARGET_VAL(ISD::LOAD),// ->250114
/*250035*/              OPC_RecordMemRef,
/*250036*/              OPC_RecordNode, // #2 = 'ld' chained node
/*250037*/              OPC_CheckFoldableChainNode,
/*250038*/              OPC_RecordChild1, // #3 = $src2
/*250039*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*250041*/              OPC_CheckPredicate, 9, // Predicate_load
/*250043*/              OPC_MoveParent,
/*250044*/              OPC_MoveParent,
/*250045*/              OPC_RecordChild2, // #4 = $src0
/*250046*/              OPC_SwitchType /*3 cases */, 20, MVT::v8i16,// ->250069
/*250049*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*250051*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*250054*/                OPC_EmitMergeInputChains1_2,
/*250055*/                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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v8i16] }:$src0) - Complexity = 28
                          // Dst: (VPUNPCKHWDZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*250069*/              /*SwitchType*/ 20, MVT::v8i32,// ->250091
/*250071*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*250073*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*250076*/                OPC_EmitMergeInputChains1_2,
/*250077*/                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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                          // Dst: (VPUNPCKHDQZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*250091*/              /*SwitchType*/ 20, MVT::v8i64,// ->250113
/*250093*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*250095*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*250098*/                OPC_EmitMergeInputChains1_2,
/*250099*/                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>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                          // Dst: (VPUNPCKHQDQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*250113*/              0, // EndSwitchType
/*250114*/            /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->250179
/*250117*/              OPC_RecordMemRef,
/*250118*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*250119*/              OPC_CheckFoldableChainNode,
/*250120*/              OPC_RecordChild1, // #3 = $src2
/*250121*/              OPC_Scope, 27, /*->250150*/ // 2 children in Scope
/*250123*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*250125*/                OPC_MoveParent,
/*250126*/                OPC_MoveParent,
/*250127*/                OPC_RecordChild2, // #4 = $src0
/*250128*/                OPC_CheckType, MVT::v8i32,
/*250130*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*250132*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*250135*/                OPC_EmitMergeInputChains1_2,
/*250136*/                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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8i32] }:$src0) - Complexity = 28
                          // Dst: (VPUNPCKHDQZ256rmbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*250150*/              /*Scope*/ 27, /*->250178*/
/*250151*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*250153*/                OPC_MoveParent,
/*250154*/                OPC_MoveParent,
/*250155*/                OPC_RecordChild2, // #4 = $src0
/*250156*/                OPC_CheckType, MVT::v8i64,
/*250158*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*250160*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*250163*/                OPC_EmitMergeInputChains1_2,
/*250164*/                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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8i64] }:$src0) - Complexity = 28
                          // Dst: (VPUNPCKHQDQZrmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*250178*/              0, /*End of Scope*/
/*250179*/            0, // EndSwitchOpcode
/*250180*/          /*SwitchOpcode*/ 37|128,1/*165*/, TARGET_VAL(X86ISD::VSHLDV),// ->250349
/*250184*/            OPC_RecordChild0, // #1 = $src1
/*250185*/            OPC_RecordChild1, // #2 = $src2
/*250186*/            OPC_MoveChild2,
/*250187*/            OPC_SwitchOpcode /*2 cases */, 86, TARGET_VAL(ISD::LOAD),// ->250277
/*250191*/              OPC_RecordMemRef,
/*250192*/              OPC_RecordNode, // #3 = 'ld' chained node
/*250193*/              OPC_CheckFoldableChainNode,
/*250194*/              OPC_RecordChild1, // #4 = $src3
/*250195*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*250197*/              OPC_CheckPredicate, 9, // Predicate_load
/*250199*/              OPC_MoveParent,
/*250200*/              OPC_MoveParent,
/*250201*/              OPC_CheckChild2Same, 1,
/*250203*/              OPC_SwitchType /*3 cases */, 22, MVT::v8i16,// ->250228
/*250206*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*250208*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*250211*/                OPC_EmitMergeInputChains, 1, 3, 
/*250214*/                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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v8i16] }:$src1) - Complexity = 28
                          // Dst: (VPSHLDVWZ128mk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/*250228*/              /*SwitchType*/ 22, MVT::v8i32,// ->250252
/*250230*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*250232*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*250235*/                OPC_EmitMergeInputChains, 1, 3, 
/*250238*/                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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8i32] }:$src1) - Complexity = 28
                          // Dst: (VPSHLDVDZ256mk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*250252*/              /*SwitchType*/ 22, MVT::v8i64,// ->250276
/*250254*/                OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*250256*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*250259*/                OPC_EmitMergeInputChains, 1, 3, 
/*250262*/                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>>), VR512:{ *:[v8i64] }:$src1) - Complexity = 28
                          // Dst: (VPSHLDVQZmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*250276*/              0, // EndSwitchType
/*250277*/            /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->250348
/*250280*/              OPC_RecordMemRef,
/*250281*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*250282*/              OPC_CheckFoldableChainNode,
/*250283*/              OPC_RecordChild1, // #4 = $src3
/*250284*/              OPC_Scope, 30, /*->250316*/ // 2 children in Scope
/*250286*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*250288*/                OPC_MoveParent,
/*250289*/                OPC_MoveParent,
/*250290*/                OPC_CheckChild2Same, 1,
/*250292*/                OPC_CheckType, MVT::v8i32,
/*250294*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*250296*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*250299*/                OPC_EmitMergeInputChains, 1, 3, 
/*250302*/                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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8i32] }:$src1) - Complexity = 28
                          // Dst: (VPSHLDVDZ256mbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*250316*/              /*Scope*/ 30, /*->250347*/
/*250317*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*250319*/                OPC_MoveParent,
/*250320*/                OPC_MoveParent,
/*250321*/                OPC_CheckChild2Same, 1,
/*250323*/                OPC_CheckType, MVT::v8i64,
/*250325*/                OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*250327*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*250330*/                OPC_EmitMergeInputChains, 1, 3, 
/*250333*/                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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8i64] }:$src1) - Complexity = 28
                          // Dst: (VPSHLDVQZmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*250347*/              0, /*End of Scope*/
/*250348*/            0, // EndSwitchOpcode
/*250349*/          /*SwitchOpcode*/ 37|128,1/*165*/, TARGET_VAL(X86ISD::VSHRDV),// ->250518
/*250353*/            OPC_RecordChild0, // #1 = $src1
/*250354*/            OPC_RecordChild1, // #2 = $src2
/*250355*/            OPC_MoveChild2,
/*250356*/            OPC_SwitchOpcode /*2 cases */, 86, TARGET_VAL(ISD::LOAD),// ->250446
/*250360*/              OPC_RecordMemRef,
/*250361*/              OPC_RecordNode, // #3 = 'ld' chained node
/*250362*/              OPC_CheckFoldableChainNode,
/*250363*/              OPC_RecordChild1, // #4 = $src3
/*250364*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*250366*/              OPC_CheckPredicate, 9, // Predicate_load
/*250368*/              OPC_MoveParent,
/*250369*/              OPC_MoveParent,
/*250370*/              OPC_CheckChild2Same, 1,
/*250372*/              OPC_SwitchType /*3 cases */, 22, MVT::v8i16,// ->250397
/*250375*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*250377*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*250380*/                OPC_EmitMergeInputChains, 1, 3, 
/*250383*/                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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v8i16] }:$src1) - Complexity = 28
                          // Dst: (VPSHRDVWZ128mk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/*250397*/              /*SwitchType*/ 22, MVT::v8i32,// ->250421
/*250399*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*250401*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*250404*/                OPC_EmitMergeInputChains, 1, 3, 
/*250407*/                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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8i32] }:$src1) - Complexity = 28
                          // Dst: (VPSHRDVDZ256mk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*250421*/              /*SwitchType*/ 22, MVT::v8i64,// ->250445
/*250423*/                OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*250425*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*250428*/                OPC_EmitMergeInputChains, 1, 3, 
/*250431*/                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>>), VR512:{ *:[v8i64] }:$src1) - Complexity = 28
                          // Dst: (VPSHRDVQZmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*250445*/              0, // EndSwitchType
/*250446*/            /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->250517
/*250449*/              OPC_RecordMemRef,
/*250450*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*250451*/              OPC_CheckFoldableChainNode,
/*250452*/              OPC_RecordChild1, // #4 = $src3
/*250453*/              OPC_Scope, 30, /*->250485*/ // 2 children in Scope
/*250455*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*250457*/                OPC_MoveParent,
/*250458*/                OPC_MoveParent,
/*250459*/                OPC_CheckChild2Same, 1,
/*250461*/                OPC_CheckType, MVT::v8i32,
/*250463*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*250465*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*250468*/                OPC_EmitMergeInputChains, 1, 3, 
/*250471*/                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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8i32] }:$src1) - Complexity = 28
                          // Dst: (VPSHRDVDZ256mbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*250485*/              /*Scope*/ 30, /*->250516*/
/*250486*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*250488*/                OPC_MoveParent,
/*250489*/                OPC_MoveParent,
/*250490*/                OPC_CheckChild2Same, 1,
/*250492*/                OPC_CheckType, MVT::v8i64,
/*250494*/                OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*250496*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*250499*/                OPC_EmitMergeInputChains, 1, 3, 
/*250502*/                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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8i64] }:$src1) - Complexity = 28
                          // Dst: (VPSHRDVQZmbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*250516*/              0, /*End of Scope*/
/*250517*/            0, // EndSwitchOpcode
/*250518*/          /*SwitchOpcode*/ 81, TARGET_VAL(X86ISD::VPDPBUSD),// ->250602
/*250521*/            OPC_RecordChild0, // #1 = $src1
/*250522*/            OPC_RecordChild1, // #2 = $src2
/*250523*/            OPC_MoveChild2,
/*250524*/            OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->250564
/*250528*/              OPC_RecordMemRef,
/*250529*/              OPC_RecordNode, // #3 = 'ld' chained node
/*250530*/              OPC_CheckFoldableChainNode,
/*250531*/              OPC_RecordChild1, // #4 = $src3
/*250532*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*250534*/              OPC_CheckPredicate, 9, // Predicate_load
/*250536*/              OPC_MoveParent,
/*250537*/              OPC_MoveParent,
/*250538*/              OPC_CheckChild2Same, 1,
/*250540*/              OPC_CheckType, MVT::v8i32,
/*250542*/              OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*250544*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*250547*/              OPC_EmitMergeInputChains, 1, 3, 
/*250550*/              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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8i32] }:$src1) - Complexity = 28
                        // Dst: (VPDPBUSDZ256mk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*250564*/            /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->250601
/*250567*/              OPC_RecordMemRef,
/*250568*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*250569*/              OPC_CheckFoldableChainNode,
/*250570*/              OPC_RecordChild1, // #4 = $src3
/*250571*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*250573*/              OPC_MoveParent,
/*250574*/              OPC_MoveParent,
/*250575*/              OPC_CheckChild2Same, 1,
/*250577*/              OPC_CheckType, MVT::v8i32,
/*250579*/              OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*250581*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*250584*/              OPC_EmitMergeInputChains, 1, 3, 
/*250587*/              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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8i32] }:$src1) - Complexity = 28
                        // Dst: (VPDPBUSDZ256mbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*250601*/            0, // EndSwitchOpcode
/*250602*/          /*SwitchOpcode*/ 81, TARGET_VAL(X86ISD::VPDPBUSDS),// ->250686
/*250605*/            OPC_RecordChild0, // #1 = $src1
/*250606*/            OPC_RecordChild1, // #2 = $src2
/*250607*/            OPC_MoveChild2,
/*250608*/            OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->250648
/*250612*/              OPC_RecordMemRef,
/*250613*/              OPC_RecordNode, // #3 = 'ld' chained node
/*250614*/              OPC_CheckFoldableChainNode,
/*250615*/              OPC_RecordChild1, // #4 = $src3
/*250616*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*250618*/              OPC_CheckPredicate, 9, // Predicate_load
/*250620*/              OPC_MoveParent,
/*250621*/              OPC_MoveParent,
/*250622*/              OPC_CheckChild2Same, 1,
/*250624*/              OPC_CheckType, MVT::v8i32,
/*250626*/              OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*250628*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*250631*/              OPC_EmitMergeInputChains, 1, 3, 
/*250634*/              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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8i32] }:$src1) - Complexity = 28
                        // Dst: (VPDPBUSDSZ256mk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*250648*/            /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->250685
/*250651*/              OPC_RecordMemRef,
/*250652*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*250653*/              OPC_CheckFoldableChainNode,
/*250654*/              OPC_RecordChild1, // #4 = $src3
/*250655*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*250657*/              OPC_MoveParent,
/*250658*/              OPC_MoveParent,
/*250659*/              OPC_CheckChild2Same, 1,
/*250661*/              OPC_CheckType, MVT::v8i32,
/*250663*/              OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*250665*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*250668*/              OPC_EmitMergeInputChains, 1, 3, 
/*250671*/              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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8i32] }:$src1) - Complexity = 28
                        // Dst: (VPDPBUSDSZ256mbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*250685*/            0, // EndSwitchOpcode
/*250686*/          /*SwitchOpcode*/ 81, TARGET_VAL(X86ISD::VPDPWSSD),// ->250770
/*250689*/            OPC_RecordChild0, // #1 = $src1
/*250690*/            OPC_RecordChild1, // #2 = $src2
/*250691*/            OPC_MoveChild2,
/*250692*/            OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->250732
/*250696*/              OPC_RecordMemRef,
/*250697*/              OPC_RecordNode, // #3 = 'ld' chained node
/*250698*/              OPC_CheckFoldableChainNode,
/*250699*/              OPC_RecordChild1, // #4 = $src3
/*250700*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*250702*/              OPC_CheckPredicate, 9, // Predicate_load
/*250704*/              OPC_MoveParent,
/*250705*/              OPC_MoveParent,
/*250706*/              OPC_CheckChild2Same, 1,
/*250708*/              OPC_CheckType, MVT::v8i32,
/*250710*/              OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*250712*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*250715*/              OPC_EmitMergeInputChains, 1, 3, 
/*250718*/              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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8i32] }:$src1) - Complexity = 28
                        // Dst: (VPDPWSSDZ256mk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*250732*/            /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->250769
/*250735*/              OPC_RecordMemRef,
/*250736*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*250737*/              OPC_CheckFoldableChainNode,
/*250738*/              OPC_RecordChild1, // #4 = $src3
/*250739*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*250741*/              OPC_MoveParent,
/*250742*/              OPC_MoveParent,
/*250743*/              OPC_CheckChild2Same, 1,
/*250745*/              OPC_CheckType, MVT::v8i32,
/*250747*/              OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*250749*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*250752*/              OPC_EmitMergeInputChains, 1, 3, 
/*250755*/              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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8i32] }:$src1) - Complexity = 28
                        // Dst: (VPDPWSSDZ256mbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*250769*/            0, // EndSwitchOpcode
/*250770*/          /*SwitchOpcode*/ 81, TARGET_VAL(X86ISD::VPDPWSSDS),// ->250854
/*250773*/            OPC_RecordChild0, // #1 = $src1
/*250774*/            OPC_RecordChild1, // #2 = $src2
/*250775*/            OPC_MoveChild2,
/*250776*/            OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->250816
/*250780*/              OPC_RecordMemRef,
/*250781*/              OPC_RecordNode, // #3 = 'ld' chained node
/*250782*/              OPC_CheckFoldableChainNode,
/*250783*/              OPC_RecordChild1, // #4 = $src3
/*250784*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*250786*/              OPC_CheckPredicate, 9, // Predicate_load
/*250788*/              OPC_MoveParent,
/*250789*/              OPC_MoveParent,
/*250790*/              OPC_CheckChild2Same, 1,
/*250792*/              OPC_CheckType, MVT::v8i32,
/*250794*/              OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*250796*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*250799*/              OPC_EmitMergeInputChains, 1, 3, 
/*250802*/              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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8i32] }:$src1) - Complexity = 28
                        // Dst: (VPDPWSSDSZ256mk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*250816*/            /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->250853
/*250819*/              OPC_RecordMemRef,
/*250820*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*250821*/              OPC_CheckFoldableChainNode,
/*250822*/              OPC_RecordChild1, // #4 = $src3
/*250823*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*250825*/              OPC_MoveParent,
/*250826*/              OPC_MoveParent,
/*250827*/              OPC_CheckChild2Same, 1,
/*250829*/              OPC_CheckType, MVT::v8i32,
/*250831*/              OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*250833*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*250836*/              OPC_EmitMergeInputChains, 1, 3, 
/*250839*/              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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8i32] }:$src1) - Complexity = 28
                        // Dst: (VPDPWSSDSZ256mbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*250853*/            0, // EndSwitchOpcode
/*250854*/          /*SwitchOpcode*/ 76, TARGET_VAL(X86ISD::CVTNE2PS2BF16),// ->250933
/*250857*/            OPC_RecordChild0, // #1 = $src1
/*250858*/            OPC_CheckChild0Type, MVT::v4f32,
/*250860*/            OPC_MoveChild1,
/*250861*/            OPC_SwitchOpcode /*2 cases */, 33, TARGET_VAL(ISD::LOAD),// ->250898
/*250865*/              OPC_RecordMemRef,
/*250866*/              OPC_RecordNode, // #2 = 'ld' chained node
/*250867*/              OPC_CheckFoldableChainNode,
/*250868*/              OPC_RecordChild1, // #3 = $src2
/*250869*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*250871*/              OPC_CheckPredicate, 9, // Predicate_load
/*250873*/              OPC_MoveParent,
/*250874*/              OPC_MoveParent,
/*250875*/              OPC_RecordChild2, // #4 = $src0
/*250876*/              OPC_CheckType, MVT::v8i16,
/*250878*/              OPC_CheckPatternPredicate, 182, // (Subtarget->hasBF16()) && (Subtarget->hasVLX())
/*250880*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*250883*/              OPC_EmitMergeInputChains1_2,
/*250884*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTNE2PS2BF16Z128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtne2ps2bf16:{ *:[v8i16] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v8i16] }:$src0) - Complexity = 28
                        // Dst: (VCVTNE2PS2BF16Z128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*250898*/            /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->250932
/*250901*/              OPC_RecordMemRef,
/*250902*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*250903*/              OPC_CheckFoldableChainNode,
/*250904*/              OPC_RecordChild1, // #3 = $src2
/*250905*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*250907*/              OPC_MoveParent,
/*250908*/              OPC_MoveParent,
/*250909*/              OPC_RecordChild2, // #4 = $src0
/*250910*/              OPC_CheckType, MVT::v8i16,
/*250912*/              OPC_CheckPatternPredicate, 182, // (Subtarget->hasBF16()) && (Subtarget->hasVLX())
/*250914*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*250917*/              OPC_EmitMergeInputChains1_2,
/*250918*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTNE2PS2BF16Z128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtne2ps2bf16:{ *:[v8i16] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v8i16] }:$src0) - Complexity = 28
                        // Dst: (VCVTNE2PS2BF16Z128rmbk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*250932*/            0, // EndSwitchOpcode
/*250933*/          /*SwitchOpcode*/ 75, TARGET_VAL(X86ISD::CVTNEPS2BF16),// ->251011
/*250936*/            OPC_MoveChild0,
/*250937*/            OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->250975
/*250941*/              OPC_RecordMemRef,
/*250942*/              OPC_RecordNode, // #1 = 'ld' chained node
/*250943*/              OPC_CheckFoldableChainNode,
/*250944*/              OPC_RecordChild1, // #2 = $src
/*250945*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*250947*/              OPC_CheckPredicate, 9, // Predicate_load
/*250949*/              OPC_CheckType, MVT::v8f32,
/*250951*/              OPC_MoveParent,
/*250952*/              OPC_MoveParent,
/*250953*/              OPC_RecordChild2, // #3 = $src0
/*250954*/              OPC_CheckType, MVT::v8i16,
/*250956*/              OPC_CheckPatternPredicate, 182, // (Subtarget->hasBF16()) && (Subtarget->hasVLX())
/*250958*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*250961*/              OPC_EmitMergeInputChains1_1,
/*250962*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTNEPS2BF16Z256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtneps2bf16:{ *:[v8i16] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v8i16] }:$src0) - Complexity = 28
                        // Dst: (VCVTNEPS2BF16Z256rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*250975*/            /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->251010
/*250978*/              OPC_RecordMemRef,
/*250979*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*250980*/              OPC_CheckFoldableChainNode,
/*250981*/              OPC_RecordChild1, // #2 = $src
/*250982*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*250984*/              OPC_CheckType, MVT::v8f32,
/*250986*/              OPC_MoveParent,
/*250987*/              OPC_MoveParent,
/*250988*/              OPC_RecordChild2, // #3 = $src0
/*250989*/              OPC_CheckType, MVT::v8i16,
/*250991*/              OPC_CheckPatternPredicate, 182, // (Subtarget->hasBF16()) && (Subtarget->hasVLX())
/*250993*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*250996*/              OPC_EmitMergeInputChains1_1,
/*250997*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTNEPS2BF16Z256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 7/*#Ops*/, 3, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtneps2bf16:{ *:[v8i16] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v8i16] }:$src0) - Complexity = 28
                        // Dst: (VCVTNEPS2BF16Z256rmbk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*251010*/            0, // EndSwitchOpcode
/*251011*/          0, // EndSwitchOpcode
/*251012*/        /*Scope*/ 35, /*->251048*/
/*251013*/          OPC_RecordChild1, // #1 = $idx
/*251014*/          OPC_MoveChild1,
/*251015*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/*251018*/          OPC_RecordChild0, // #2 = $src1
/*251019*/          OPC_MoveChild1,
/*251020*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*251023*/          OPC_CheckType, MVT::iPTR,
/*251025*/          OPC_MoveParent,
/*251026*/          OPC_CheckPredicate, 18, // Predicate_vextract256_extract
/*251028*/          OPC_MoveParent,
/*251029*/          OPC_MoveChild2,
/*251030*/          OPC_CheckImmAllZerosV,
/*251031*/          OPC_MoveParent,
/*251032*/          OPC_CheckType, MVT::v8i32,
/*251034*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*251036*/          OPC_EmitNodeXForm, 1, 1, // EXTRACT_get_vextract256_imm
/*251039*/          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] }))<<P:Predicate_vextract256_extract>><<X:EXTRACT_get_vextract256_imm>>:$idx, immAllZerosV:{ *:[v8i32] }) - Complexity = 14
                    // Dst: (VEXTRACTI32x8Zrrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16i32] }:$src1, (EXTRACT_get_vextract256_imm:{ *:[i8] } (extract_subvector:{ *:[v8i32] } VR512:{ *:[v16i32] }:$src1, (imm:{ *:[iPTR] })):$idx))
/*251048*/        0, /*End of Scope*/
/*251049*/      /*Scope*/ 114|128,99/*12786*/, /*->263837*/
/*251051*/        OPC_CheckChild0Type, MVT::v2i1,
/*251053*/        OPC_Scope, 35|128,99/*12707*/, /*->263763*/ // 2 children in Scope
/*251056*/          OPC_MoveChild1,
/*251057*/          OPC_SwitchOpcode /*50 cases */, 76|128,2/*332*/, TARGET_VAL(X86ISD::CVTP2SI),// ->251394
/*251062*/            OPC_MoveChild0,
/*251063*/            OPC_SwitchOpcode /*3 cases */, 14|128,1/*142*/, TARGET_VAL(ISD::BITCAST),// ->251210
/*251068*/              OPC_MoveChild0,
/*251069*/              OPC_SwitchOpcode /*2 cases */, 71, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->251144
/*251073*/                OPC_MoveChild0,
/*251074*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*251077*/                OPC_RecordMemRef,
/*251078*/                OPC_RecordNode, // #1 = 'ld' chained node
/*251079*/                OPC_CheckFoldableChainNode,
/*251080*/                OPC_RecordChild1, // #2 = $src
/*251081*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*251083*/                OPC_CheckPredicate, 9, // Predicate_load
/*251085*/                OPC_CheckType, MVT::f64,
/*251087*/                OPC_MoveParent,
/*251088*/                OPC_CheckType, MVT::v2f64,
/*251090*/                OPC_MoveParent,
/*251091*/                OPC_CheckType, MVT::v4f32,
/*251093*/                OPC_MoveParent,
/*251094*/                OPC_MoveParent,
/*251095*/                OPC_Scope, 23, /*->251120*/ // 2 children in Scope
/*251097*/                  OPC_MoveChild2,
/*251098*/                  OPC_CheckImmAllZerosV,
/*251099*/                  OPC_MoveParent,
/*251100*/                  OPC_CheckType, MVT::v2i64,
/*251102*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*251104*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*251107*/                  OPC_EmitMergeInputChains1_1,
/*251108*/                  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] } (bitconvert:{ *:[v4f32] } (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))), immAllZerosV:{ *:[v2i64] }) - Complexity = 38
                            // Dst: (VCVTPS2QQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*251120*/                /*Scope*/ 22, /*->251143*/
/*251121*/                  OPC_RecordChild2, // #3 = $src0
/*251122*/                  OPC_CheckType, MVT::v2i64,
/*251124*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*251126*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*251129*/                  OPC_EmitMergeInputChains1_1,
/*251130*/                  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] } (bitconvert:{ *:[v4f32] } (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))), VR128X:{ *:[v2i64] }:$src0) - Complexity = 34
                            // Dst: (VCVTPS2QQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*251143*/                0, /*End of Scope*/
/*251144*/              /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VZEXT_LOAD),// ->251209
/*251147*/                OPC_RecordMemRef,
/*251148*/                OPC_RecordNode, // #1 = 'X86vzld' chained node
/*251149*/                OPC_CheckFoldableChainNode,
/*251150*/                OPC_RecordChild1, // #2 = $src
/*251151*/                OPC_CheckPredicate, 49, // Predicate_X86vzload64
/*251153*/                OPC_CheckType, MVT::v2f64,
/*251155*/                OPC_MoveParent,
/*251156*/                OPC_CheckType, MVT::v4f32,
/*251158*/                OPC_MoveParent,
/*251159*/                OPC_MoveParent,
/*251160*/                OPC_Scope, 23, /*->251185*/ // 2 children in Scope
/*251162*/                  OPC_MoveChild2,
/*251163*/                  OPC_CheckImmAllZerosV,
/*251164*/                  OPC_MoveParent,
/*251165*/                  OPC_CheckType, MVT::v2i64,
/*251167*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*251169*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*251172*/                  OPC_EmitMergeInputChains1_1,
/*251173*/                  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] } (bitconvert:{ *:[v4f32] } (X86vzld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>)), immAllZerosV:{ *:[v2i64] }) - Complexity = 35
                            // Dst: (VCVTPS2QQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*251185*/                /*Scope*/ 22, /*->251208*/
/*251186*/                  OPC_RecordChild2, // #3 = $src0
/*251187*/                  OPC_CheckType, MVT::v2i64,
/*251189*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*251191*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*251194*/                  OPC_EmitMergeInputChains1_1,
/*251195*/                  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] } (bitconvert:{ *:[v4f32] } (X86vzld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                            // Dst: (VCVTPS2QQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*251208*/                0, /*End of Scope*/
/*251209*/              0, // EndSwitchOpcode
/*251210*/            /*SwitchOpcode*/ 61, TARGET_VAL(ISD::LOAD),// ->251274
/*251213*/              OPC_RecordMemRef,
/*251214*/              OPC_RecordNode, // #1 = 'ld' chained node
/*251215*/              OPC_CheckFoldableChainNode,
/*251216*/              OPC_RecordChild1, // #2 = $src
/*251217*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*251219*/              OPC_CheckPredicate, 9, // Predicate_load
/*251221*/              OPC_CheckType, MVT::v2f64,
/*251223*/              OPC_MoveParent,
/*251224*/              OPC_MoveParent,
/*251225*/              OPC_Scope, 23, /*->251250*/ // 2 children in Scope
/*251227*/                OPC_MoveChild2,
/*251228*/                OPC_CheckImmAllZerosV,
/*251229*/                OPC_MoveParent,
/*251230*/                OPC_CheckType, MVT::v2i64,
/*251232*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*251234*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*251237*/                OPC_EmitMergeInputChains1_1,
/*251238*/                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>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VCVTPD2QQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*251250*/              /*Scope*/ 22, /*->251273*/
/*251251*/                OPC_RecordChild2, // #3 = $src0
/*251252*/                OPC_CheckType, MVT::v2i64,
/*251254*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*251256*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*251259*/                OPC_EmitMergeInputChains1_1,
/*251260*/                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>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VCVTPD2QQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*251273*/              0, /*End of Scope*/
/*251274*/            /*SwitchOpcode*/ 116, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->251393
/*251277*/              OPC_RecordMemRef,
/*251278*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*251279*/              OPC_CheckFoldableChainNode,
/*251280*/              OPC_RecordChild1, // #2 = $src
/*251281*/              OPC_SwitchType /*2 cases */, 53, MVT::v2f64,// ->251337
/*251284*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*251286*/                OPC_MoveParent,
/*251287*/                OPC_MoveParent,
/*251288*/                OPC_Scope, 23, /*->251313*/ // 2 children in Scope
/*251290*/                  OPC_MoveChild2,
/*251291*/                  OPC_CheckImmAllZerosV,
/*251292*/                  OPC_MoveParent,
/*251293*/                  OPC_CheckType, MVT::v2i64,
/*251295*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*251297*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*251300*/                  OPC_EmitMergeInputChains1_1,
/*251301*/                  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] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                            // Dst: (VCVTPD2QQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*251313*/                /*Scope*/ 22, /*->251336*/
/*251314*/                  OPC_RecordChild2, // #3 = $src0
/*251315*/                  OPC_CheckType, MVT::v2i64,
/*251317*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*251319*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*251322*/                  OPC_EmitMergeInputChains1_1,
/*251323*/                  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] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTPD2QQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*251336*/                0, /*End of Scope*/
/*251337*/              /*SwitchType*/ 53, MVT::v4f32,// ->251392
/*251339*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*251341*/                OPC_MoveParent,
/*251342*/                OPC_MoveParent,
/*251343*/                OPC_Scope, 23, /*->251368*/ // 2 children in Scope
/*251345*/                  OPC_MoveChild2,
/*251346*/                  OPC_CheckImmAllZerosV,
/*251347*/                  OPC_MoveParent,
/*251348*/                  OPC_CheckType, MVT::v2i64,
/*251350*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*251352*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*251355*/                  OPC_EmitMergeInputChains1_1,
/*251356*/                  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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                            // Dst: (VCVTPS2QQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*251368*/                /*Scope*/ 22, /*->251391*/
/*251369*/                  OPC_RecordChild2, // #3 = $src0
/*251370*/                  OPC_CheckType, MVT::v2i64,
/*251372*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*251374*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*251377*/                  OPC_EmitMergeInputChains1_1,
/*251378*/                  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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTPS2QQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*251391*/                0, /*End of Scope*/
/*251392*/              0, // EndSwitchType
/*251393*/            0, // EndSwitchOpcode
/*251394*/          /*SwitchOpcode*/ 76|128,2/*332*/, TARGET_VAL(X86ISD::CVTP2UI),// ->251730
/*251398*/            OPC_MoveChild0,
/*251399*/            OPC_SwitchOpcode /*3 cases */, 14|128,1/*142*/, TARGET_VAL(ISD::BITCAST),// ->251546
/*251404*/              OPC_MoveChild0,
/*251405*/              OPC_SwitchOpcode /*2 cases */, 71, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->251480
/*251409*/                OPC_MoveChild0,
/*251410*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*251413*/                OPC_RecordMemRef,
/*251414*/                OPC_RecordNode, // #1 = 'ld' chained node
/*251415*/                OPC_CheckFoldableChainNode,
/*251416*/                OPC_RecordChild1, // #2 = $src
/*251417*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*251419*/                OPC_CheckPredicate, 9, // Predicate_load
/*251421*/                OPC_CheckType, MVT::f64,
/*251423*/                OPC_MoveParent,
/*251424*/                OPC_CheckType, MVT::v2f64,
/*251426*/                OPC_MoveParent,
/*251427*/                OPC_CheckType, MVT::v4f32,
/*251429*/                OPC_MoveParent,
/*251430*/                OPC_MoveParent,
/*251431*/                OPC_Scope, 23, /*->251456*/ // 2 children in Scope
/*251433*/                  OPC_MoveChild2,
/*251434*/                  OPC_CheckImmAllZerosV,
/*251435*/                  OPC_MoveParent,
/*251436*/                  OPC_CheckType, MVT::v2i64,
/*251438*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*251440*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*251443*/                  OPC_EmitMergeInputChains1_1,
/*251444*/                  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] } (bitconvert:{ *:[v4f32] } (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))), immAllZerosV:{ *:[v2i64] }) - Complexity = 38
                            // Dst: (VCVTPS2UQQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*251456*/                /*Scope*/ 22, /*->251479*/
/*251457*/                  OPC_RecordChild2, // #3 = $src0
/*251458*/                  OPC_CheckType, MVT::v2i64,
/*251460*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*251462*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*251465*/                  OPC_EmitMergeInputChains1_1,
/*251466*/                  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] } (bitconvert:{ *:[v4f32] } (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))), VR128X:{ *:[v2i64] }:$src0) - Complexity = 34
                            // Dst: (VCVTPS2UQQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*251479*/                0, /*End of Scope*/
/*251480*/              /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VZEXT_LOAD),// ->251545
/*251483*/                OPC_RecordMemRef,
/*251484*/                OPC_RecordNode, // #1 = 'X86vzld' chained node
/*251485*/                OPC_CheckFoldableChainNode,
/*251486*/                OPC_RecordChild1, // #2 = $src
/*251487*/                OPC_CheckPredicate, 49, // Predicate_X86vzload64
/*251489*/                OPC_CheckType, MVT::v2f64,
/*251491*/                OPC_MoveParent,
/*251492*/                OPC_CheckType, MVT::v4f32,
/*251494*/                OPC_MoveParent,
/*251495*/                OPC_MoveParent,
/*251496*/                OPC_Scope, 23, /*->251521*/ // 2 children in Scope
/*251498*/                  OPC_MoveChild2,
/*251499*/                  OPC_CheckImmAllZerosV,
/*251500*/                  OPC_MoveParent,
/*251501*/                  OPC_CheckType, MVT::v2i64,
/*251503*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*251505*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*251508*/                  OPC_EmitMergeInputChains1_1,
/*251509*/                  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] } (bitconvert:{ *:[v4f32] } (X86vzld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>)), immAllZerosV:{ *:[v2i64] }) - Complexity = 35
                            // Dst: (VCVTPS2UQQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*251521*/                /*Scope*/ 22, /*->251544*/
/*251522*/                  OPC_RecordChild2, // #3 = $src0
/*251523*/                  OPC_CheckType, MVT::v2i64,
/*251525*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*251527*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*251530*/                  OPC_EmitMergeInputChains1_1,
/*251531*/                  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] } (bitconvert:{ *:[v4f32] } (X86vzld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                            // Dst: (VCVTPS2UQQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*251544*/                0, /*End of Scope*/
/*251545*/              0, // EndSwitchOpcode
/*251546*/            /*SwitchOpcode*/ 61, TARGET_VAL(ISD::LOAD),// ->251610
/*251549*/              OPC_RecordMemRef,
/*251550*/              OPC_RecordNode, // #1 = 'ld' chained node
/*251551*/              OPC_CheckFoldableChainNode,
/*251552*/              OPC_RecordChild1, // #2 = $src
/*251553*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*251555*/              OPC_CheckPredicate, 9, // Predicate_load
/*251557*/              OPC_CheckType, MVT::v2f64,
/*251559*/              OPC_MoveParent,
/*251560*/              OPC_MoveParent,
/*251561*/              OPC_Scope, 23, /*->251586*/ // 2 children in Scope
/*251563*/                OPC_MoveChild2,
/*251564*/                OPC_CheckImmAllZerosV,
/*251565*/                OPC_MoveParent,
/*251566*/                OPC_CheckType, MVT::v2i64,
/*251568*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*251570*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*251573*/                OPC_EmitMergeInputChains1_1,
/*251574*/                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>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VCVTPD2UQQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*251586*/              /*Scope*/ 22, /*->251609*/
/*251587*/                OPC_RecordChild2, // #3 = $src0
/*251588*/                OPC_CheckType, MVT::v2i64,
/*251590*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*251592*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*251595*/                OPC_EmitMergeInputChains1_1,
/*251596*/                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>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VCVTPD2UQQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*251609*/              0, /*End of Scope*/
/*251610*/            /*SwitchOpcode*/ 116, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->251729
/*251613*/              OPC_RecordMemRef,
/*251614*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*251615*/              OPC_CheckFoldableChainNode,
/*251616*/              OPC_RecordChild1, // #2 = $src
/*251617*/              OPC_SwitchType /*2 cases */, 53, MVT::v2f64,// ->251673
/*251620*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*251622*/                OPC_MoveParent,
/*251623*/                OPC_MoveParent,
/*251624*/                OPC_Scope, 23, /*->251649*/ // 2 children in Scope
/*251626*/                  OPC_MoveChild2,
/*251627*/                  OPC_CheckImmAllZerosV,
/*251628*/                  OPC_MoveParent,
/*251629*/                  OPC_CheckType, MVT::v2i64,
/*251631*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*251633*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*251636*/                  OPC_EmitMergeInputChains1_1,
/*251637*/                  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] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                            // Dst: (VCVTPD2UQQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*251649*/                /*Scope*/ 22, /*->251672*/
/*251650*/                  OPC_RecordChild2, // #3 = $src0
/*251651*/                  OPC_CheckType, MVT::v2i64,
/*251653*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*251655*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*251658*/                  OPC_EmitMergeInputChains1_1,
/*251659*/                  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] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTPD2UQQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*251672*/                0, /*End of Scope*/
/*251673*/              /*SwitchType*/ 53, MVT::v4f32,// ->251728
/*251675*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*251677*/                OPC_MoveParent,
/*251678*/                OPC_MoveParent,
/*251679*/                OPC_Scope, 23, /*->251704*/ // 2 children in Scope
/*251681*/                  OPC_MoveChild2,
/*251682*/                  OPC_CheckImmAllZerosV,
/*251683*/                  OPC_MoveParent,
/*251684*/                  OPC_CheckType, MVT::v2i64,
/*251686*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*251688*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*251691*/                  OPC_EmitMergeInputChains1_1,
/*251692*/                  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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                            // Dst: (VCVTPS2UQQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*251704*/                /*Scope*/ 22, /*->251727*/
/*251705*/                  OPC_RecordChild2, // #3 = $src0
/*251706*/                  OPC_CheckType, MVT::v2i64,
/*251708*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*251710*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*251713*/                  OPC_EmitMergeInputChains1_1,
/*251714*/                  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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTPS2UQQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*251727*/                0, /*End of Scope*/
/*251728*/              0, // EndSwitchType
/*251729*/            0, // EndSwitchOpcode
/*251730*/          /*SwitchOpcode*/ 35|128,2/*291*/, TARGET_VAL(X86ISD::STRICT_CVTTP2SI),// ->252025
/*251734*/            OPC_RecordNode, // #1 = 'X86strict_cvttp2si' chained node
/*251735*/            OPC_CheckFoldableChainNode,
/*251736*/            OPC_MoveChild1,
/*251737*/            OPC_SwitchOpcode /*3 cases */, 81, TARGET_VAL(ISD::BITCAST),// ->251822
/*251741*/              OPC_MoveChild0,
/*251742*/              OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*251745*/              OPC_MoveChild0,
/*251746*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*251749*/              OPC_RecordMemRef,
/*251750*/              OPC_RecordNode, // #2 = 'ld' chained node
/*251751*/              OPC_CheckFoldableChainNode,
/*251752*/              OPC_RecordChild1, // #3 = $src
/*251753*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*251755*/              OPC_CheckPredicate, 9, // Predicate_load
/*251757*/              OPC_CheckType, MVT::f64,
/*251759*/              OPC_MoveParent,
/*251760*/              OPC_CheckType, MVT::v2f64,
/*251762*/              OPC_MoveParent,
/*251763*/              OPC_CheckType, MVT::v4f32,
/*251765*/              OPC_MoveParent,
/*251766*/              OPC_MoveParent,
/*251767*/              OPC_Scope, 26, /*->251795*/ // 2 children in Scope
/*251769*/                OPC_MoveChild2,
/*251770*/                OPC_CheckImmAllZerosV,
/*251771*/                OPC_MoveParent,
/*251772*/                OPC_CheckType, MVT::v2i64,
/*251774*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*251776*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*251779*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*251783*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_cvttp2si:{ *:[v2i64] } (bitconvert:{ *:[v4f32] } (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))), immAllZerosV:{ *:[v2i64] }) - Complexity = 38
                          // Dst: (VCVTTPS2QQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*251795*/              /*Scope*/ 25, /*->251821*/
/*251796*/                OPC_RecordChild2, // #4 = $src0
/*251797*/                OPC_CheckType, MVT::v2i64,
/*251799*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*251801*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*251804*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*251808*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_cvttp2si:{ *:[v2i64] } (bitconvert:{ *:[v4f32] } (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))), VR128X:{ *:[v2i64] }:$src0) - Complexity = 34
                          // Dst: (VCVTTPS2QQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*251821*/              0, /*End of Scope*/
/*251822*/            /*SwitchOpcode*/ 67, TARGET_VAL(ISD::LOAD),// ->251892
/*251825*/              OPC_RecordMemRef,
/*251826*/              OPC_RecordNode, // #2 = 'ld' chained node
/*251827*/              OPC_CheckFoldableChainNode,
/*251828*/              OPC_RecordChild1, // #3 = $src
/*251829*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*251831*/              OPC_CheckPredicate, 9, // Predicate_load
/*251833*/              OPC_CheckType, MVT::v2f64,
/*251835*/              OPC_MoveParent,
/*251836*/              OPC_MoveParent,
/*251837*/              OPC_Scope, 26, /*->251865*/ // 2 children in Scope
/*251839*/                OPC_MoveChild2,
/*251840*/                OPC_CheckImmAllZerosV,
/*251841*/                OPC_MoveParent,
/*251842*/                OPC_CheckType, MVT::v2i64,
/*251844*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*251846*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*251849*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*251853*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_cvttp2si:{ *:[v2i64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VCVTTPD2QQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*251865*/              /*Scope*/ 25, /*->251891*/
/*251866*/                OPC_RecordChild2, // #4 = $src0
/*251867*/                OPC_CheckType, MVT::v2i64,
/*251869*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*251871*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*251874*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*251878*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_cvttp2si:{ *:[v2i64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VCVTTPD2QQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*251891*/              0, /*End of Scope*/
/*251892*/            /*SwitchOpcode*/ 0|128,1/*128*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->252024
/*251896*/              OPC_RecordMemRef,
/*251897*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*251898*/              OPC_CheckFoldableChainNode,
/*251899*/              OPC_RecordChild1, // #3 = $src
/*251900*/              OPC_SwitchType /*2 cases */, 59, MVT::v2f64,// ->251962
/*251903*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*251905*/                OPC_MoveParent,
/*251906*/                OPC_MoveParent,
/*251907*/                OPC_Scope, 26, /*->251935*/ // 2 children in Scope
/*251909*/                  OPC_MoveChild2,
/*251910*/                  OPC_CheckImmAllZerosV,
/*251911*/                  OPC_MoveParent,
/*251912*/                  OPC_CheckType, MVT::v2i64,
/*251914*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*251916*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*251919*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*251923*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2i64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_cvttp2si:{ *:[v2i64] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                            // Dst: (VCVTTPD2QQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*251935*/                /*Scope*/ 25, /*->251961*/
/*251936*/                  OPC_RecordChild2, // #4 = $src0
/*251937*/                  OPC_CheckType, MVT::v2i64,
/*251939*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*251941*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*251944*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*251948*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2i64, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_cvttp2si:{ *:[v2i64] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPD2QQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*251961*/                0, /*End of Scope*/
/*251962*/              /*SwitchType*/ 59, MVT::v4f32,// ->252023
/*251964*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*251966*/                OPC_MoveParent,
/*251967*/                OPC_MoveParent,
/*251968*/                OPC_Scope, 26, /*->251996*/ // 2 children in Scope
/*251970*/                  OPC_MoveChild2,
/*251971*/                  OPC_CheckImmAllZerosV,
/*251972*/                  OPC_MoveParent,
/*251973*/                  OPC_CheckType, MVT::v2i64,
/*251975*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*251977*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*251980*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*251984*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2i64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_cvttp2si:{ *:[v2i64] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                            // Dst: (VCVTTPS2QQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*251996*/                /*Scope*/ 25, /*->252022*/
/*251997*/                  OPC_RecordChild2, // #4 = $src0
/*251998*/                  OPC_CheckType, MVT::v2i64,
/*252000*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*252002*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*252005*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*252009*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2i64, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_cvttp2si:{ *:[v2i64] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPS2QQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*252022*/                0, /*End of Scope*/
/*252023*/              0, // EndSwitchType
/*252024*/            0, // EndSwitchOpcode
/*252025*/          /*SwitchOpcode*/ 76|128,2/*332*/, TARGET_VAL(X86ISD::CVTTP2SI),// ->252361
/*252029*/            OPC_MoveChild0,
/*252030*/            OPC_SwitchOpcode /*3 cases */, 14|128,1/*142*/, TARGET_VAL(ISD::BITCAST),// ->252177
/*252035*/              OPC_MoveChild0,
/*252036*/              OPC_SwitchOpcode /*2 cases */, 71, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->252111
/*252040*/                OPC_MoveChild0,
/*252041*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*252044*/                OPC_RecordMemRef,
/*252045*/                OPC_RecordNode, // #1 = 'ld' chained node
/*252046*/                OPC_CheckFoldableChainNode,
/*252047*/                OPC_RecordChild1, // #2 = $src
/*252048*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*252050*/                OPC_CheckPredicate, 9, // Predicate_load
/*252052*/                OPC_CheckType, MVT::f64,
/*252054*/                OPC_MoveParent,
/*252055*/                OPC_CheckType, MVT::v2f64,
/*252057*/                OPC_MoveParent,
/*252058*/                OPC_CheckType, MVT::v4f32,
/*252060*/                OPC_MoveParent,
/*252061*/                OPC_MoveParent,
/*252062*/                OPC_Scope, 23, /*->252087*/ // 2 children in Scope
/*252064*/                  OPC_MoveChild2,
/*252065*/                  OPC_CheckImmAllZerosV,
/*252066*/                  OPC_MoveParent,
/*252067*/                  OPC_CheckType, MVT::v2i64,
/*252069*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*252071*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*252074*/                  OPC_EmitMergeInputChains1_1,
/*252075*/                  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] } (bitconvert:{ *:[v4f32] } (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))), immAllZerosV:{ *:[v2i64] }) - Complexity = 38
                            // Dst: (VCVTTPS2QQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*252087*/                /*Scope*/ 22, /*->252110*/
/*252088*/                  OPC_RecordChild2, // #3 = $src0
/*252089*/                  OPC_CheckType, MVT::v2i64,
/*252091*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*252093*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*252096*/                  OPC_EmitMergeInputChains1_1,
/*252097*/                  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] } (bitconvert:{ *:[v4f32] } (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))), VR128X:{ *:[v2i64] }:$src0) - Complexity = 34
                            // Dst: (VCVTTPS2QQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*252110*/                0, /*End of Scope*/
/*252111*/              /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VZEXT_LOAD),// ->252176
/*252114*/                OPC_RecordMemRef,
/*252115*/                OPC_RecordNode, // #1 = 'X86vzld' chained node
/*252116*/                OPC_CheckFoldableChainNode,
/*252117*/                OPC_RecordChild1, // #2 = $src
/*252118*/                OPC_CheckPredicate, 49, // Predicate_X86vzload64
/*252120*/                OPC_CheckType, MVT::v2f64,
/*252122*/                OPC_MoveParent,
/*252123*/                OPC_CheckType, MVT::v4f32,
/*252125*/                OPC_MoveParent,
/*252126*/                OPC_MoveParent,
/*252127*/                OPC_Scope, 23, /*->252152*/ // 2 children in Scope
/*252129*/                  OPC_MoveChild2,
/*252130*/                  OPC_CheckImmAllZerosV,
/*252131*/                  OPC_MoveParent,
/*252132*/                  OPC_CheckType, MVT::v2i64,
/*252134*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*252136*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*252139*/                  OPC_EmitMergeInputChains1_1,
/*252140*/                  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] } (bitconvert:{ *:[v4f32] } (X86vzld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>)), immAllZerosV:{ *:[v2i64] }) - Complexity = 35
                            // Dst: (VCVTTPS2QQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*252152*/                /*Scope*/ 22, /*->252175*/
/*252153*/                  OPC_RecordChild2, // #3 = $src0
/*252154*/                  OPC_CheckType, MVT::v2i64,
/*252156*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*252158*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*252161*/                  OPC_EmitMergeInputChains1_1,
/*252162*/                  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] } (bitconvert:{ *:[v4f32] } (X86vzld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                            // Dst: (VCVTTPS2QQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*252175*/                0, /*End of Scope*/
/*252176*/              0, // EndSwitchOpcode
/*252177*/            /*SwitchOpcode*/ 61, TARGET_VAL(ISD::LOAD),// ->252241
/*252180*/              OPC_RecordMemRef,
/*252181*/              OPC_RecordNode, // #1 = 'ld' chained node
/*252182*/              OPC_CheckFoldableChainNode,
/*252183*/              OPC_RecordChild1, // #2 = $src
/*252184*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*252186*/              OPC_CheckPredicate, 9, // Predicate_load
/*252188*/              OPC_CheckType, MVT::v2f64,
/*252190*/              OPC_MoveParent,
/*252191*/              OPC_MoveParent,
/*252192*/              OPC_Scope, 23, /*->252217*/ // 2 children in Scope
/*252194*/                OPC_MoveChild2,
/*252195*/                OPC_CheckImmAllZerosV,
/*252196*/                OPC_MoveParent,
/*252197*/                OPC_CheckType, MVT::v2i64,
/*252199*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*252201*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*252204*/                OPC_EmitMergeInputChains1_1,
/*252205*/                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>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VCVTTPD2QQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*252217*/              /*Scope*/ 22, /*->252240*/
/*252218*/                OPC_RecordChild2, // #3 = $src0
/*252219*/                OPC_CheckType, MVT::v2i64,
/*252221*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*252223*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*252226*/                OPC_EmitMergeInputChains1_1,
/*252227*/                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>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VCVTTPD2QQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*252240*/              0, /*End of Scope*/
/*252241*/            /*SwitchOpcode*/ 116, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->252360
/*252244*/              OPC_RecordMemRef,
/*252245*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*252246*/              OPC_CheckFoldableChainNode,
/*252247*/              OPC_RecordChild1, // #2 = $src
/*252248*/              OPC_SwitchType /*2 cases */, 53, MVT::v2f64,// ->252304
/*252251*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*252253*/                OPC_MoveParent,
/*252254*/                OPC_MoveParent,
/*252255*/                OPC_Scope, 23, /*->252280*/ // 2 children in Scope
/*252257*/                  OPC_MoveChild2,
/*252258*/                  OPC_CheckImmAllZerosV,
/*252259*/                  OPC_MoveParent,
/*252260*/                  OPC_CheckType, MVT::v2i64,
/*252262*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*252264*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*252267*/                  OPC_EmitMergeInputChains1_1,
/*252268*/                  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] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                            // Dst: (VCVTTPD2QQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*252280*/                /*Scope*/ 22, /*->252303*/
/*252281*/                  OPC_RecordChild2, // #3 = $src0
/*252282*/                  OPC_CheckType, MVT::v2i64,
/*252284*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*252286*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*252289*/                  OPC_EmitMergeInputChains1_1,
/*252290*/                  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] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPD2QQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*252303*/                0, /*End of Scope*/
/*252304*/              /*SwitchType*/ 53, MVT::v4f32,// ->252359
/*252306*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*252308*/                OPC_MoveParent,
/*252309*/                OPC_MoveParent,
/*252310*/                OPC_Scope, 23, /*->252335*/ // 2 children in Scope
/*252312*/                  OPC_MoveChild2,
/*252313*/                  OPC_CheckImmAllZerosV,
/*252314*/                  OPC_MoveParent,
/*252315*/                  OPC_CheckType, MVT::v2i64,
/*252317*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*252319*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*252322*/                  OPC_EmitMergeInputChains1_1,
/*252323*/                  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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                            // Dst: (VCVTTPS2QQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*252335*/                /*Scope*/ 22, /*->252358*/
/*252336*/                  OPC_RecordChild2, // #3 = $src0
/*252337*/                  OPC_CheckType, MVT::v2i64,
/*252339*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*252341*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*252344*/                  OPC_EmitMergeInputChains1_1,
/*252345*/                  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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPS2QQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*252358*/                0, /*End of Scope*/
/*252359*/              0, // EndSwitchType
/*252360*/            0, // EndSwitchOpcode
/*252361*/          /*SwitchOpcode*/ 35|128,2/*291*/, TARGET_VAL(X86ISD::STRICT_CVTTP2UI),// ->252656
/*252365*/            OPC_RecordNode, // #1 = 'X86strict_cvttp2ui' chained node
/*252366*/            OPC_CheckFoldableChainNode,
/*252367*/            OPC_MoveChild1,
/*252368*/            OPC_SwitchOpcode /*3 cases */, 81, TARGET_VAL(ISD::BITCAST),// ->252453
/*252372*/              OPC_MoveChild0,
/*252373*/              OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*252376*/              OPC_MoveChild0,
/*252377*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*252380*/              OPC_RecordMemRef,
/*252381*/              OPC_RecordNode, // #2 = 'ld' chained node
/*252382*/              OPC_CheckFoldableChainNode,
/*252383*/              OPC_RecordChild1, // #3 = $src
/*252384*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*252386*/              OPC_CheckPredicate, 9, // Predicate_load
/*252388*/              OPC_CheckType, MVT::f64,
/*252390*/              OPC_MoveParent,
/*252391*/              OPC_CheckType, MVT::v2f64,
/*252393*/              OPC_MoveParent,
/*252394*/              OPC_CheckType, MVT::v4f32,
/*252396*/              OPC_MoveParent,
/*252397*/              OPC_MoveParent,
/*252398*/              OPC_Scope, 26, /*->252426*/ // 2 children in Scope
/*252400*/                OPC_MoveChild2,
/*252401*/                OPC_CheckImmAllZerosV,
/*252402*/                OPC_MoveParent,
/*252403*/                OPC_CheckType, MVT::v2i64,
/*252405*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*252407*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*252410*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*252414*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_cvttp2ui:{ *:[v2i64] } (bitconvert:{ *:[v4f32] } (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))), immAllZerosV:{ *:[v2i64] }) - Complexity = 38
                          // Dst: (VCVTTPS2UQQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*252426*/              /*Scope*/ 25, /*->252452*/
/*252427*/                OPC_RecordChild2, // #4 = $src0
/*252428*/                OPC_CheckType, MVT::v2i64,
/*252430*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*252432*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*252435*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*252439*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_cvttp2ui:{ *:[v2i64] } (bitconvert:{ *:[v4f32] } (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))), VR128X:{ *:[v2i64] }:$src0) - Complexity = 34
                          // Dst: (VCVTTPS2UQQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*252452*/              0, /*End of Scope*/
/*252453*/            /*SwitchOpcode*/ 67, TARGET_VAL(ISD::LOAD),// ->252523
/*252456*/              OPC_RecordMemRef,
/*252457*/              OPC_RecordNode, // #2 = 'ld' chained node
/*252458*/              OPC_CheckFoldableChainNode,
/*252459*/              OPC_RecordChild1, // #3 = $src
/*252460*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*252462*/              OPC_CheckPredicate, 9, // Predicate_load
/*252464*/              OPC_CheckType, MVT::v2f64,
/*252466*/              OPC_MoveParent,
/*252467*/              OPC_MoveParent,
/*252468*/              OPC_Scope, 26, /*->252496*/ // 2 children in Scope
/*252470*/                OPC_MoveChild2,
/*252471*/                OPC_CheckImmAllZerosV,
/*252472*/                OPC_MoveParent,
/*252473*/                OPC_CheckType, MVT::v2i64,
/*252475*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*252477*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*252480*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*252484*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_cvttp2ui:{ *:[v2i64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VCVTTPD2UQQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*252496*/              /*Scope*/ 25, /*->252522*/
/*252497*/                OPC_RecordChild2, // #4 = $src0
/*252498*/                OPC_CheckType, MVT::v2i64,
/*252500*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*252502*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*252505*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*252509*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_cvttp2ui:{ *:[v2i64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VCVTTPD2UQQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*252522*/              0, /*End of Scope*/
/*252523*/            /*SwitchOpcode*/ 0|128,1/*128*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->252655
/*252527*/              OPC_RecordMemRef,
/*252528*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*252529*/              OPC_CheckFoldableChainNode,
/*252530*/              OPC_RecordChild1, // #3 = $src
/*252531*/              OPC_SwitchType /*2 cases */, 59, MVT::v2f64,// ->252593
/*252534*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*252536*/                OPC_MoveParent,
/*252537*/                OPC_MoveParent,
/*252538*/                OPC_Scope, 26, /*->252566*/ // 2 children in Scope
/*252540*/                  OPC_MoveChild2,
/*252541*/                  OPC_CheckImmAllZerosV,
/*252542*/                  OPC_MoveParent,
/*252543*/                  OPC_CheckType, MVT::v2i64,
/*252545*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*252547*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*252550*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*252554*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2i64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_cvttp2ui:{ *:[v2i64] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                            // Dst: (VCVTTPD2UQQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*252566*/                /*Scope*/ 25, /*->252592*/
/*252567*/                  OPC_RecordChild2, // #4 = $src0
/*252568*/                  OPC_CheckType, MVT::v2i64,
/*252570*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*252572*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*252575*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*252579*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2i64, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_cvttp2ui:{ *:[v2i64] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPD2UQQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*252592*/                0, /*End of Scope*/
/*252593*/              /*SwitchType*/ 59, MVT::v4f32,// ->252654
/*252595*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*252597*/                OPC_MoveParent,
/*252598*/                OPC_MoveParent,
/*252599*/                OPC_Scope, 26, /*->252627*/ // 2 children in Scope
/*252601*/                  OPC_MoveChild2,
/*252602*/                  OPC_CheckImmAllZerosV,
/*252603*/                  OPC_MoveParent,
/*252604*/                  OPC_CheckType, MVT::v2i64,
/*252606*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*252608*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*252611*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*252615*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2i64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_cvttp2ui:{ *:[v2i64] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                            // Dst: (VCVTTPS2UQQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*252627*/                /*Scope*/ 25, /*->252653*/
/*252628*/                  OPC_RecordChild2, // #4 = $src0
/*252629*/                  OPC_CheckType, MVT::v2i64,
/*252631*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*252633*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*252636*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*252640*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2i64, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_cvttp2ui:{ *:[v2i64] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPS2UQQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*252653*/                0, /*End of Scope*/
/*252654*/              0, // EndSwitchType
/*252655*/            0, // EndSwitchOpcode
/*252656*/          /*SwitchOpcode*/ 76|128,2/*332*/, TARGET_VAL(X86ISD::CVTTP2UI),// ->252992
/*252660*/            OPC_MoveChild0,
/*252661*/            OPC_SwitchOpcode /*3 cases */, 14|128,1/*142*/, TARGET_VAL(ISD::BITCAST),// ->252808
/*252666*/              OPC_MoveChild0,
/*252667*/              OPC_SwitchOpcode /*2 cases */, 71, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->252742
/*252671*/                OPC_MoveChild0,
/*252672*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*252675*/                OPC_RecordMemRef,
/*252676*/                OPC_RecordNode, // #1 = 'ld' chained node
/*252677*/                OPC_CheckFoldableChainNode,
/*252678*/                OPC_RecordChild1, // #2 = $src
/*252679*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*252681*/                OPC_CheckPredicate, 9, // Predicate_load
/*252683*/                OPC_CheckType, MVT::f64,
/*252685*/                OPC_MoveParent,
/*252686*/                OPC_CheckType, MVT::v2f64,
/*252688*/                OPC_MoveParent,
/*252689*/                OPC_CheckType, MVT::v4f32,
/*252691*/                OPC_MoveParent,
/*252692*/                OPC_MoveParent,
/*252693*/                OPC_Scope, 23, /*->252718*/ // 2 children in Scope
/*252695*/                  OPC_MoveChild2,
/*252696*/                  OPC_CheckImmAllZerosV,
/*252697*/                  OPC_MoveParent,
/*252698*/                  OPC_CheckType, MVT::v2i64,
/*252700*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*252702*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*252705*/                  OPC_EmitMergeInputChains1_1,
/*252706*/                  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] } (bitconvert:{ *:[v4f32] } (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))), immAllZerosV:{ *:[v2i64] }) - Complexity = 38
                            // Dst: (VCVTTPS2UQQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*252718*/                /*Scope*/ 22, /*->252741*/
/*252719*/                  OPC_RecordChild2, // #3 = $src0
/*252720*/                  OPC_CheckType, MVT::v2i64,
/*252722*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*252724*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*252727*/                  OPC_EmitMergeInputChains1_1,
/*252728*/                  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] } (bitconvert:{ *:[v4f32] } (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))), VR128X:{ *:[v2i64] }:$src0) - Complexity = 34
                            // Dst: (VCVTTPS2UQQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*252741*/                0, /*End of Scope*/
/*252742*/              /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VZEXT_LOAD),// ->252807
/*252745*/                OPC_RecordMemRef,
/*252746*/                OPC_RecordNode, // #1 = 'X86vzld' chained node
/*252747*/                OPC_CheckFoldableChainNode,
/*252748*/                OPC_RecordChild1, // #2 = $src
/*252749*/                OPC_CheckPredicate, 49, // Predicate_X86vzload64
/*252751*/                OPC_CheckType, MVT::v2f64,
/*252753*/                OPC_MoveParent,
/*252754*/                OPC_CheckType, MVT::v4f32,
/*252756*/                OPC_MoveParent,
/*252757*/                OPC_MoveParent,
/*252758*/                OPC_Scope, 23, /*->252783*/ // 2 children in Scope
/*252760*/                  OPC_MoveChild2,
/*252761*/                  OPC_CheckImmAllZerosV,
/*252762*/                  OPC_MoveParent,
/*252763*/                  OPC_CheckType, MVT::v2i64,
/*252765*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*252767*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*252770*/                  OPC_EmitMergeInputChains1_1,
/*252771*/                  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] } (bitconvert:{ *:[v4f32] } (X86vzld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>)), immAllZerosV:{ *:[v2i64] }) - Complexity = 35
                            // Dst: (VCVTTPS2UQQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*252783*/                /*Scope*/ 22, /*->252806*/
/*252784*/                  OPC_RecordChild2, // #3 = $src0
/*252785*/                  OPC_CheckType, MVT::v2i64,
/*252787*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*252789*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*252792*/                  OPC_EmitMergeInputChains1_1,
/*252793*/                  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] } (bitconvert:{ *:[v4f32] } (X86vzld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                            // Dst: (VCVTTPS2UQQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*252806*/                0, /*End of Scope*/
/*252807*/              0, // EndSwitchOpcode
/*252808*/            /*SwitchOpcode*/ 61, TARGET_VAL(ISD::LOAD),// ->252872
/*252811*/              OPC_RecordMemRef,
/*252812*/              OPC_RecordNode, // #1 = 'ld' chained node
/*252813*/              OPC_CheckFoldableChainNode,
/*252814*/              OPC_RecordChild1, // #2 = $src
/*252815*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*252817*/              OPC_CheckPredicate, 9, // Predicate_load
/*252819*/              OPC_CheckType, MVT::v2f64,
/*252821*/              OPC_MoveParent,
/*252822*/              OPC_MoveParent,
/*252823*/              OPC_Scope, 23, /*->252848*/ // 2 children in Scope
/*252825*/                OPC_MoveChild2,
/*252826*/                OPC_CheckImmAllZerosV,
/*252827*/                OPC_MoveParent,
/*252828*/                OPC_CheckType, MVT::v2i64,
/*252830*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*252832*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*252835*/                OPC_EmitMergeInputChains1_1,
/*252836*/                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>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VCVTTPD2UQQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*252848*/              /*Scope*/ 22, /*->252871*/
/*252849*/                OPC_RecordChild2, // #3 = $src0
/*252850*/                OPC_CheckType, MVT::v2i64,
/*252852*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*252854*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*252857*/                OPC_EmitMergeInputChains1_1,
/*252858*/                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>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VCVTTPD2UQQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*252871*/              0, /*End of Scope*/
/*252872*/            /*SwitchOpcode*/ 116, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->252991
/*252875*/              OPC_RecordMemRef,
/*252876*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*252877*/              OPC_CheckFoldableChainNode,
/*252878*/              OPC_RecordChild1, // #2 = $src
/*252879*/              OPC_SwitchType /*2 cases */, 53, MVT::v2f64,// ->252935
/*252882*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*252884*/                OPC_MoveParent,
/*252885*/                OPC_MoveParent,
/*252886*/                OPC_Scope, 23, /*->252911*/ // 2 children in Scope
/*252888*/                  OPC_MoveChild2,
/*252889*/                  OPC_CheckImmAllZerosV,
/*252890*/                  OPC_MoveParent,
/*252891*/                  OPC_CheckType, MVT::v2i64,
/*252893*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*252895*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*252898*/                  OPC_EmitMergeInputChains1_1,
/*252899*/                  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] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                            // Dst: (VCVTTPD2UQQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*252911*/                /*Scope*/ 22, /*->252934*/
/*252912*/                  OPC_RecordChild2, // #3 = $src0
/*252913*/                  OPC_CheckType, MVT::v2i64,
/*252915*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*252917*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*252920*/                  OPC_EmitMergeInputChains1_1,
/*252921*/                  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] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPD2UQQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*252934*/                0, /*End of Scope*/
/*252935*/              /*SwitchType*/ 53, MVT::v4f32,// ->252990
/*252937*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*252939*/                OPC_MoveParent,
/*252940*/                OPC_MoveParent,
/*252941*/                OPC_Scope, 23, /*->252966*/ // 2 children in Scope
/*252943*/                  OPC_MoveChild2,
/*252944*/                  OPC_CheckImmAllZerosV,
/*252945*/                  OPC_MoveParent,
/*252946*/                  OPC_CheckType, MVT::v2i64,
/*252948*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*252950*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*252953*/                  OPC_EmitMergeInputChains1_1,
/*252954*/                  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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                            // Dst: (VCVTTPS2UQQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*252966*/                /*Scope*/ 22, /*->252989*/
/*252967*/                  OPC_RecordChild2, // #3 = $src0
/*252968*/                  OPC_CheckType, MVT::v2i64,
/*252970*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*252972*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*252975*/                  OPC_EmitMergeInputChains1_1,
/*252976*/                  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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                            // Dst: (VCVTTPS2UQQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*252989*/                0, /*End of Scope*/
/*252990*/              0, // EndSwitchType
/*252991*/            0, // EndSwitchOpcode
/*252992*/          /*SwitchOpcode*/ 88|128,12/*1624*/, TARGET_VAL(ISD::BITCAST),// ->254620
/*252996*/            OPC_Scope, 120|128,10/*1400*/, /*->254399*/ // 2 children in Scope
/*252999*/              OPC_MoveChild0,
/*253000*/              OPC_SwitchOpcode /*4 cases */, 16|128,3/*400*/, TARGET_VAL(ISD::AND),// ->253405
/*253005*/                OPC_Scope, 100, /*->253107*/ // 4 children in Scope
/*253007*/                  OPC_RecordChild0, // #1 = $src1
/*253008*/                  OPC_MoveChild1,
/*253009*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*253012*/                  OPC_RecordMemRef,
/*253013*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*253014*/                  OPC_CheckFoldableChainNode,
/*253015*/                  OPC_RecordChild1, // #3 = $src2
/*253016*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*253018*/                  OPC_CheckPredicate, 9, // Predicate_load
/*253020*/                  OPC_MoveParent,
/*253021*/                  OPC_SwitchType /*3 cases */, 26, MVT::v4i32,// ->253050
/*253024*/                    OPC_MoveParent,
/*253025*/                    OPC_MoveParent,
/*253026*/                    OPC_MoveChild2,
/*253027*/                    OPC_CheckImmAllZerosV,
/*253028*/                    OPC_MoveParent,
/*253029*/                    OPC_CheckType, MVT::v2i64,
/*253031*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*253033*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*253036*/                    OPC_EmitMergeInputChains1_2,
/*253037*/                    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, (bitconvert:{ *:[v2i64] } (and:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v2i64] }) - Complexity = 35
                              // Dst: (VPANDQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*253050*/                  /*SwitchType*/ 26, MVT::v8i16,// ->253078
/*253052*/                    OPC_MoveParent,
/*253053*/                    OPC_MoveParent,
/*253054*/                    OPC_MoveChild2,
/*253055*/                    OPC_CheckImmAllZerosV,
/*253056*/                    OPC_MoveParent,
/*253057*/                    OPC_CheckType, MVT::v2i64,
/*253059*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*253061*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*253064*/                    OPC_EmitMergeInputChains1_2,
/*253065*/                    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, (bitconvert:{ *:[v2i64] } (and:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v2i64] }) - Complexity = 35
                              // Dst: (VPANDQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*253078*/                  /*SwitchType*/ 26, MVT::v16i8,// ->253106
/*253080*/                    OPC_MoveParent,
/*253081*/                    OPC_MoveParent,
/*253082*/                    OPC_MoveChild2,
/*253083*/                    OPC_CheckImmAllZerosV,
/*253084*/                    OPC_MoveParent,
/*253085*/                    OPC_CheckType, MVT::v2i64,
/*253087*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*253089*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*253092*/                    OPC_EmitMergeInputChains1_2,
/*253093*/                    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, (bitconvert:{ *:[v2i64] } (and:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v2i64] }) - Complexity = 35
                              // Dst: (VPANDQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*253106*/                  0, // EndSwitchType
/*253107*/                /*Scope*/ 100, /*->253208*/
/*253108*/                  OPC_MoveChild0,
/*253109*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*253112*/                  OPC_RecordMemRef,
/*253113*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*253114*/                  OPC_CheckFoldableChainNode,
/*253115*/                  OPC_RecordChild1, // #2 = $src2
/*253116*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*253118*/                  OPC_CheckPredicate, 9, // Predicate_load
/*253120*/                  OPC_MoveParent,
/*253121*/                  OPC_RecordChild1, // #3 = $src1
/*253122*/                  OPC_SwitchType /*3 cases */, 26, MVT::v4i32,// ->253151
/*253125*/                    OPC_MoveParent,
/*253126*/                    OPC_MoveParent,
/*253127*/                    OPC_MoveChild2,
/*253128*/                    OPC_CheckImmAllZerosV,
/*253129*/                    OPC_MoveParent,
/*253130*/                    OPC_CheckType, MVT::v2i64,
/*253132*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*253134*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*253137*/                    OPC_EmitMergeInputChains1_1,
/*253138*/                    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, (bitconvert:{ *:[v2i64] } (and:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4i32] }:$src1)), immAllZerosV:{ *:[v2i64] }) - Complexity = 35
                              // Dst: (VPANDQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*253151*/                  /*SwitchType*/ 26, MVT::v8i16,// ->253179
/*253153*/                    OPC_MoveParent,
/*253154*/                    OPC_MoveParent,
/*253155*/                    OPC_MoveChild2,
/*253156*/                    OPC_CheckImmAllZerosV,
/*253157*/                    OPC_MoveParent,
/*253158*/                    OPC_CheckType, MVT::v2i64,
/*253160*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*253162*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*253165*/                    OPC_EmitMergeInputChains1_1,
/*253166*/                    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, (bitconvert:{ *:[v2i64] } (and:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1)), immAllZerosV:{ *:[v2i64] }) - Complexity = 35
                              // Dst: (VPANDQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*253179*/                  /*SwitchType*/ 26, MVT::v16i8,// ->253207
/*253181*/                    OPC_MoveParent,
/*253182*/                    OPC_MoveParent,
/*253183*/                    OPC_MoveChild2,
/*253184*/                    OPC_CheckImmAllZerosV,
/*253185*/                    OPC_MoveParent,
/*253186*/                    OPC_CheckType, MVT::v2i64,
/*253188*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*253190*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*253193*/                    OPC_EmitMergeInputChains1_1,
/*253194*/                    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, (bitconvert:{ *:[v2i64] } (and:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v16i8] }:$src1)), immAllZerosV:{ *:[v2i64] }) - Complexity = 35
                              // Dst: (VPANDQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*253207*/                  0, // EndSwitchType
/*253208*/                /*Scope*/ 97, /*->253306*/
/*253209*/                  OPC_RecordChild0, // #1 = $src1
/*253210*/                  OPC_MoveChild1,
/*253211*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*253214*/                  OPC_RecordMemRef,
/*253215*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*253216*/                  OPC_CheckFoldableChainNode,
/*253217*/                  OPC_RecordChild1, // #3 = $src2
/*253218*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*253220*/                  OPC_CheckPredicate, 9, // Predicate_load
/*253222*/                  OPC_MoveParent,
/*253223*/                  OPC_SwitchType /*3 cases */, 25, MVT::v4i32,// ->253251
/*253226*/                    OPC_MoveParent,
/*253227*/                    OPC_MoveParent,
/*253228*/                    OPC_RecordChild2, // #4 = $src0
/*253229*/                    OPC_CheckType, MVT::v2i64,
/*253231*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*253233*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*253236*/                    OPC_EmitMergeInputChains1_2,
/*253237*/                    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, (bitconvert:{ *:[v2i64] } (and:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                              // Dst: (VPANDQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*253251*/                  /*SwitchType*/ 25, MVT::v8i16,// ->253278
/*253253*/                    OPC_MoveParent,
/*253254*/                    OPC_MoveParent,
/*253255*/                    OPC_RecordChild2, // #4 = $src0
/*253256*/                    OPC_CheckType, MVT::v2i64,
/*253258*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*253260*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*253263*/                    OPC_EmitMergeInputChains1_2,
/*253264*/                    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, (bitconvert:{ *:[v2i64] } (and:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                              // Dst: (VPANDQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*253278*/                  /*SwitchType*/ 25, MVT::v16i8,// ->253305
/*253280*/                    OPC_MoveParent,
/*253281*/                    OPC_MoveParent,
/*253282*/                    OPC_RecordChild2, // #4 = $src0
/*253283*/                    OPC_CheckType, MVT::v2i64,
/*253285*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*253287*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*253290*/                    OPC_EmitMergeInputChains1_2,
/*253291*/                    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, (bitconvert:{ *:[v2i64] } (and:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                              // Dst: (VPANDQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*253305*/                  0, // EndSwitchType
/*253306*/                /*Scope*/ 97, /*->253404*/
/*253307*/                  OPC_MoveChild0,
/*253308*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*253311*/                  OPC_RecordMemRef,
/*253312*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*253313*/                  OPC_CheckFoldableChainNode,
/*253314*/                  OPC_RecordChild1, // #2 = $src2
/*253315*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*253317*/                  OPC_CheckPredicate, 9, // Predicate_load
/*253319*/                  OPC_MoveParent,
/*253320*/                  OPC_RecordChild1, // #3 = $src1
/*253321*/                  OPC_SwitchType /*3 cases */, 25, MVT::v4i32,// ->253349
/*253324*/                    OPC_MoveParent,
/*253325*/                    OPC_MoveParent,
/*253326*/                    OPC_RecordChild2, // #4 = $src0
/*253327*/                    OPC_CheckType, MVT::v2i64,
/*253329*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*253331*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*253334*/                    OPC_EmitMergeInputChains1_1,
/*253335*/                    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, (bitconvert:{ *:[v2i64] } (and:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4i32] }:$src1)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                              // Dst: (VPANDQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*253349*/                  /*SwitchType*/ 25, MVT::v8i16,// ->253376
/*253351*/                    OPC_MoveParent,
/*253352*/                    OPC_MoveParent,
/*253353*/                    OPC_RecordChild2, // #4 = $src0
/*253354*/                    OPC_CheckType, MVT::v2i64,
/*253356*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*253358*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*253361*/                    OPC_EmitMergeInputChains1_1,
/*253362*/                    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, (bitconvert:{ *:[v2i64] } (and:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                              // Dst: (VPANDQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*253376*/                  /*SwitchType*/ 25, MVT::v16i8,// ->253403
/*253378*/                    OPC_MoveParent,
/*253379*/                    OPC_MoveParent,
/*253380*/                    OPC_RecordChild2, // #4 = $src0
/*253381*/                    OPC_CheckType, MVT::v2i64,
/*253383*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*253385*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*253388*/                    OPC_EmitMergeInputChains1_1,
/*253389*/                    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, (bitconvert:{ *:[v2i64] } (and:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v16i8] }:$src1)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                              // Dst: (VPANDQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*253403*/                  0, // EndSwitchType
/*253404*/                0, /*End of Scope*/
/*253405*/              /*SwitchOpcode*/ 16|128,3/*400*/, TARGET_VAL(ISD::OR),// ->253809
/*253409*/                OPC_Scope, 100, /*->253511*/ // 4 children in Scope
/*253411*/                  OPC_RecordChild0, // #1 = $src1
/*253412*/                  OPC_MoveChild1,
/*253413*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*253416*/                  OPC_RecordMemRef,
/*253417*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*253418*/                  OPC_CheckFoldableChainNode,
/*253419*/                  OPC_RecordChild1, // #3 = $src2
/*253420*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*253422*/                  OPC_CheckPredicate, 9, // Predicate_load
/*253424*/                  OPC_MoveParent,
/*253425*/                  OPC_SwitchType /*3 cases */, 26, MVT::v4i32,// ->253454
/*253428*/                    OPC_MoveParent,
/*253429*/                    OPC_MoveParent,
/*253430*/                    OPC_MoveChild2,
/*253431*/                    OPC_CheckImmAllZerosV,
/*253432*/                    OPC_MoveParent,
/*253433*/                    OPC_CheckType, MVT::v2i64,
/*253435*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*253437*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*253440*/                    OPC_EmitMergeInputChains1_2,
/*253441*/                    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, (bitconvert:{ *:[v2i64] } (or:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v2i64] }) - Complexity = 35
                              // Dst: (VPORQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*253454*/                  /*SwitchType*/ 26, MVT::v8i16,// ->253482
/*253456*/                    OPC_MoveParent,
/*253457*/                    OPC_MoveParent,
/*253458*/                    OPC_MoveChild2,
/*253459*/                    OPC_CheckImmAllZerosV,
/*253460*/                    OPC_MoveParent,
/*253461*/                    OPC_CheckType, MVT::v2i64,
/*253463*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*253465*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*253468*/                    OPC_EmitMergeInputChains1_2,
/*253469*/                    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, (bitconvert:{ *:[v2i64] } (or:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v2i64] }) - Complexity = 35
                              // Dst: (VPORQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*253482*/                  /*SwitchType*/ 26, MVT::v16i8,// ->253510
/*253484*/                    OPC_MoveParent,
/*253485*/                    OPC_MoveParent,
/*253486*/                    OPC_MoveChild2,
/*253487*/                    OPC_CheckImmAllZerosV,
/*253488*/                    OPC_MoveParent,
/*253489*/                    OPC_CheckType, MVT::v2i64,
/*253491*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*253493*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*253496*/                    OPC_EmitMergeInputChains1_2,
/*253497*/                    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, (bitconvert:{ *:[v2i64] } (or:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v2i64] }) - Complexity = 35
                              // Dst: (VPORQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*253510*/                  0, // EndSwitchType
/*253511*/                /*Scope*/ 100, /*->253612*/
/*253512*/                  OPC_MoveChild0,
/*253513*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*253516*/                  OPC_RecordMemRef,
/*253517*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*253518*/                  OPC_CheckFoldableChainNode,
/*253519*/                  OPC_RecordChild1, // #2 = $src2
/*253520*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*253522*/                  OPC_CheckPredicate, 9, // Predicate_load
/*253524*/                  OPC_MoveParent,
/*253525*/                  OPC_RecordChild1, // #3 = $src1
/*253526*/                  OPC_SwitchType /*3 cases */, 26, MVT::v4i32,// ->253555
/*253529*/                    OPC_MoveParent,
/*253530*/                    OPC_MoveParent,
/*253531*/                    OPC_MoveChild2,
/*253532*/                    OPC_CheckImmAllZerosV,
/*253533*/                    OPC_MoveParent,
/*253534*/                    OPC_CheckType, MVT::v2i64,
/*253536*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*253538*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*253541*/                    OPC_EmitMergeInputChains1_1,
/*253542*/                    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, (bitconvert:{ *:[v2i64] } (or:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4i32] }:$src1)), immAllZerosV:{ *:[v2i64] }) - Complexity = 35
                              // Dst: (VPORQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*253555*/                  /*SwitchType*/ 26, MVT::v8i16,// ->253583
/*253557*/                    OPC_MoveParent,
/*253558*/                    OPC_MoveParent,
/*253559*/                    OPC_MoveChild2,
/*253560*/                    OPC_CheckImmAllZerosV,
/*253561*/                    OPC_MoveParent,
/*253562*/                    OPC_CheckType, MVT::v2i64,
/*253564*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*253566*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*253569*/                    OPC_EmitMergeInputChains1_1,
/*253570*/                    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, (bitconvert:{ *:[v2i64] } (or:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1)), immAllZerosV:{ *:[v2i64] }) - Complexity = 35
                              // Dst: (VPORQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*253583*/                  /*SwitchType*/ 26, MVT::v16i8,// ->253611
/*253585*/                    OPC_MoveParent,
/*253586*/                    OPC_MoveParent,
/*253587*/                    OPC_MoveChild2,
/*253588*/                    OPC_CheckImmAllZerosV,
/*253589*/                    OPC_MoveParent,
/*253590*/                    OPC_CheckType, MVT::v2i64,
/*253592*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*253594*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*253597*/                    OPC_EmitMergeInputChains1_1,
/*253598*/                    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, (bitconvert:{ *:[v2i64] } (or:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v16i8] }:$src1)), immAllZerosV:{ *:[v2i64] }) - Complexity = 35
                              // Dst: (VPORQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*253611*/                  0, // EndSwitchType
/*253612*/                /*Scope*/ 97, /*->253710*/
/*253613*/                  OPC_RecordChild0, // #1 = $src1
/*253614*/                  OPC_MoveChild1,
/*253615*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*253618*/                  OPC_RecordMemRef,
/*253619*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*253620*/                  OPC_CheckFoldableChainNode,
/*253621*/                  OPC_RecordChild1, // #3 = $src2
/*253622*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*253624*/                  OPC_CheckPredicate, 9, // Predicate_load
/*253626*/                  OPC_MoveParent,
/*253627*/                  OPC_SwitchType /*3 cases */, 25, MVT::v4i32,// ->253655
/*253630*/                    OPC_MoveParent,
/*253631*/                    OPC_MoveParent,
/*253632*/                    OPC_RecordChild2, // #4 = $src0
/*253633*/                    OPC_CheckType, MVT::v2i64,
/*253635*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*253637*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*253640*/                    OPC_EmitMergeInputChains1_2,
/*253641*/                    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, (bitconvert:{ *:[v2i64] } (or:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                              // Dst: (VPORQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*253655*/                  /*SwitchType*/ 25, MVT::v8i16,// ->253682
/*253657*/                    OPC_MoveParent,
/*253658*/                    OPC_MoveParent,
/*253659*/                    OPC_RecordChild2, // #4 = $src0
/*253660*/                    OPC_CheckType, MVT::v2i64,
/*253662*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*253664*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*253667*/                    OPC_EmitMergeInputChains1_2,
/*253668*/                    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, (bitconvert:{ *:[v2i64] } (or:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                              // Dst: (VPORQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*253682*/                  /*SwitchType*/ 25, MVT::v16i8,// ->253709
/*253684*/                    OPC_MoveParent,
/*253685*/                    OPC_MoveParent,
/*253686*/                    OPC_RecordChild2, // #4 = $src0
/*253687*/                    OPC_CheckType, MVT::v2i64,
/*253689*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*253691*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*253694*/                    OPC_EmitMergeInputChains1_2,
/*253695*/                    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, (bitconvert:{ *:[v2i64] } (or:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                              // Dst: (VPORQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*253709*/                  0, // EndSwitchType
/*253710*/                /*Scope*/ 97, /*->253808*/
/*253711*/                  OPC_MoveChild0,
/*253712*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*253715*/                  OPC_RecordMemRef,
/*253716*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*253717*/                  OPC_CheckFoldableChainNode,
/*253718*/                  OPC_RecordChild1, // #2 = $src2
/*253719*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*253721*/                  OPC_CheckPredicate, 9, // Predicate_load
/*253723*/                  OPC_MoveParent,
/*253724*/                  OPC_RecordChild1, // #3 = $src1
/*253725*/                  OPC_SwitchType /*3 cases */, 25, MVT::v4i32,// ->253753
/*253728*/                    OPC_MoveParent,
/*253729*/                    OPC_MoveParent,
/*253730*/                    OPC_RecordChild2, // #4 = $src0
/*253731*/                    OPC_CheckType, MVT::v2i64,
/*253733*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*253735*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*253738*/                    OPC_EmitMergeInputChains1_1,
/*253739*/                    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, (bitconvert:{ *:[v2i64] } (or:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4i32] }:$src1)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                              // Dst: (VPORQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*253753*/                  /*SwitchType*/ 25, MVT::v8i16,// ->253780
/*253755*/                    OPC_MoveParent,
/*253756*/                    OPC_MoveParent,
/*253757*/                    OPC_RecordChild2, // #4 = $src0
/*253758*/                    OPC_CheckType, MVT::v2i64,
/*253760*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*253762*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*253765*/                    OPC_EmitMergeInputChains1_1,
/*253766*/                    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, (bitconvert:{ *:[v2i64] } (or:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                              // Dst: (VPORQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*253780*/                  /*SwitchType*/ 25, MVT::v16i8,// ->253807
/*253782*/                    OPC_MoveParent,
/*253783*/                    OPC_MoveParent,
/*253784*/                    OPC_RecordChild2, // #4 = $src0
/*253785*/                    OPC_CheckType, MVT::v2i64,
/*253787*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*253789*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*253792*/                    OPC_EmitMergeInputChains1_1,
/*253793*/                    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, (bitconvert:{ *:[v2i64] } (or:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v16i8] }:$src1)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                              // Dst: (VPORQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*253807*/                  0, // EndSwitchType
/*253808*/                0, /*End of Scope*/
/*253809*/              /*SwitchOpcode*/ 16|128,3/*400*/, TARGET_VAL(ISD::XOR),// ->254213
/*253813*/                OPC_Scope, 100, /*->253915*/ // 4 children in Scope
/*253815*/                  OPC_RecordChild0, // #1 = $src1
/*253816*/                  OPC_MoveChild1,
/*253817*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*253820*/                  OPC_RecordMemRef,
/*253821*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*253822*/                  OPC_CheckFoldableChainNode,
/*253823*/                  OPC_RecordChild1, // #3 = $src2
/*253824*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*253826*/                  OPC_CheckPredicate, 9, // Predicate_load
/*253828*/                  OPC_MoveParent,
/*253829*/                  OPC_SwitchType /*3 cases */, 26, MVT::v4i32,// ->253858
/*253832*/                    OPC_MoveParent,
/*253833*/                    OPC_MoveParent,
/*253834*/                    OPC_MoveChild2,
/*253835*/                    OPC_CheckImmAllZerosV,
/*253836*/                    OPC_MoveParent,
/*253837*/                    OPC_CheckType, MVT::v2i64,
/*253839*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*253841*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*253844*/                    OPC_EmitMergeInputChains1_2,
/*253845*/                    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, (bitconvert:{ *:[v2i64] } (xor:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v2i64] }) - Complexity = 35
                              // Dst: (VPXORQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*253858*/                  /*SwitchType*/ 26, MVT::v8i16,// ->253886
/*253860*/                    OPC_MoveParent,
/*253861*/                    OPC_MoveParent,
/*253862*/                    OPC_MoveChild2,
/*253863*/                    OPC_CheckImmAllZerosV,
/*253864*/                    OPC_MoveParent,
/*253865*/                    OPC_CheckType, MVT::v2i64,
/*253867*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*253869*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*253872*/                    OPC_EmitMergeInputChains1_2,
/*253873*/                    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, (bitconvert:{ *:[v2i64] } (xor:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v2i64] }) - Complexity = 35
                              // Dst: (VPXORQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*253886*/                  /*SwitchType*/ 26, MVT::v16i8,// ->253914
/*253888*/                    OPC_MoveParent,
/*253889*/                    OPC_MoveParent,
/*253890*/                    OPC_MoveChild2,
/*253891*/                    OPC_CheckImmAllZerosV,
/*253892*/                    OPC_MoveParent,
/*253893*/                    OPC_CheckType, MVT::v2i64,
/*253895*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*253897*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*253900*/                    OPC_EmitMergeInputChains1_2,
/*253901*/                    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, (bitconvert:{ *:[v2i64] } (xor:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v2i64] }) - Complexity = 35
                              // Dst: (VPXORQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*253914*/                  0, // EndSwitchType
/*253915*/                /*Scope*/ 100, /*->254016*/
/*253916*/                  OPC_MoveChild0,
/*253917*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*253920*/                  OPC_RecordMemRef,
/*253921*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*253922*/                  OPC_CheckFoldableChainNode,
/*253923*/                  OPC_RecordChild1, // #2 = $src2
/*253924*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*253926*/                  OPC_CheckPredicate, 9, // Predicate_load
/*253928*/                  OPC_MoveParent,
/*253929*/                  OPC_RecordChild1, // #3 = $src1
/*253930*/                  OPC_SwitchType /*3 cases */, 26, MVT::v4i32,// ->253959
/*253933*/                    OPC_MoveParent,
/*253934*/                    OPC_MoveParent,
/*253935*/                    OPC_MoveChild2,
/*253936*/                    OPC_CheckImmAllZerosV,
/*253937*/                    OPC_MoveParent,
/*253938*/                    OPC_CheckType, MVT::v2i64,
/*253940*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*253942*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*253945*/                    OPC_EmitMergeInputChains1_1,
/*253946*/                    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, (bitconvert:{ *:[v2i64] } (xor:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4i32] }:$src1)), immAllZerosV:{ *:[v2i64] }) - Complexity = 35
                              // Dst: (VPXORQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*253959*/                  /*SwitchType*/ 26, MVT::v8i16,// ->253987
/*253961*/                    OPC_MoveParent,
/*253962*/                    OPC_MoveParent,
/*253963*/                    OPC_MoveChild2,
/*253964*/                    OPC_CheckImmAllZerosV,
/*253965*/                    OPC_MoveParent,
/*253966*/                    OPC_CheckType, MVT::v2i64,
/*253968*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*253970*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*253973*/                    OPC_EmitMergeInputChains1_1,
/*253974*/                    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, (bitconvert:{ *:[v2i64] } (xor:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1)), immAllZerosV:{ *:[v2i64] }) - Complexity = 35
                              // Dst: (VPXORQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*253987*/                  /*SwitchType*/ 26, MVT::v16i8,// ->254015
/*253989*/                    OPC_MoveParent,
/*253990*/                    OPC_MoveParent,
/*253991*/                    OPC_MoveChild2,
/*253992*/                    OPC_CheckImmAllZerosV,
/*253993*/                    OPC_MoveParent,
/*253994*/                    OPC_CheckType, MVT::v2i64,
/*253996*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*253998*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*254001*/                    OPC_EmitMergeInputChains1_1,
/*254002*/                    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, (bitconvert:{ *:[v2i64] } (xor:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v16i8] }:$src1)), immAllZerosV:{ *:[v2i64] }) - Complexity = 35
                              // Dst: (VPXORQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*254015*/                  0, // EndSwitchType
/*254016*/                /*Scope*/ 97, /*->254114*/
/*254017*/                  OPC_RecordChild0, // #1 = $src1
/*254018*/                  OPC_MoveChild1,
/*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_MoveParent,
/*254031*/                  OPC_SwitchType /*3 cases */, 25, MVT::v4i32,// ->254059
/*254034*/                    OPC_MoveParent,
/*254035*/                    OPC_MoveParent,
/*254036*/                    OPC_RecordChild2, // #4 = $src0
/*254037*/                    OPC_CheckType, MVT::v2i64,
/*254039*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*254041*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*254044*/                    OPC_EmitMergeInputChains1_2,
/*254045*/                    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, (bitconvert:{ *:[v2i64] } (xor:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                              // Dst: (VPXORQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*254059*/                  /*SwitchType*/ 25, MVT::v8i16,// ->254086
/*254061*/                    OPC_MoveParent,
/*254062*/                    OPC_MoveParent,
/*254063*/                    OPC_RecordChild2, // #4 = $src0
/*254064*/                    OPC_CheckType, MVT::v2i64,
/*254066*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*254068*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*254071*/                    OPC_EmitMergeInputChains1_2,
/*254072*/                    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, (bitconvert:{ *:[v2i64] } (xor:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                              // Dst: (VPXORQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*254086*/                  /*SwitchType*/ 25, MVT::v16i8,// ->254113
/*254088*/                    OPC_MoveParent,
/*254089*/                    OPC_MoveParent,
/*254090*/                    OPC_RecordChild2, // #4 = $src0
/*254091*/                    OPC_CheckType, MVT::v2i64,
/*254093*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*254095*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*254098*/                    OPC_EmitMergeInputChains1_2,
/*254099*/                    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, (bitconvert:{ *:[v2i64] } (xor:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                              // Dst: (VPXORQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*254113*/                  0, // EndSwitchType
/*254114*/                /*Scope*/ 97, /*->254212*/
/*254115*/                  OPC_MoveChild0,
/*254116*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*254119*/                  OPC_RecordMemRef,
/*254120*/                  OPC_RecordNode, // #1 = 'ld' chained node
/*254121*/                  OPC_CheckFoldableChainNode,
/*254122*/                  OPC_RecordChild1, // #2 = $src2
/*254123*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*254125*/                  OPC_CheckPredicate, 9, // Predicate_load
/*254127*/                  OPC_MoveParent,
/*254128*/                  OPC_RecordChild1, // #3 = $src1
/*254129*/                  OPC_SwitchType /*3 cases */, 25, MVT::v4i32,// ->254157
/*254132*/                    OPC_MoveParent,
/*254133*/                    OPC_MoveParent,
/*254134*/                    OPC_RecordChild2, // #4 = $src0
/*254135*/                    OPC_CheckType, MVT::v2i64,
/*254137*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*254139*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*254142*/                    OPC_EmitMergeInputChains1_1,
/*254143*/                    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, (bitconvert:{ *:[v2i64] } (xor:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4i32] }:$src1)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                              // Dst: (VPXORQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*254157*/                  /*SwitchType*/ 25, MVT::v8i16,// ->254184
/*254159*/                    OPC_MoveParent,
/*254160*/                    OPC_MoveParent,
/*254161*/                    OPC_RecordChild2, // #4 = $src0
/*254162*/                    OPC_CheckType, MVT::v2i64,
/*254164*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*254166*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*254169*/                    OPC_EmitMergeInputChains1_1,
/*254170*/                    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, (bitconvert:{ *:[v2i64] } (xor:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                              // Dst: (VPXORQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*254184*/                  /*SwitchType*/ 25, MVT::v16i8,// ->254211
/*254186*/                    OPC_MoveParent,
/*254187*/                    OPC_MoveParent,
/*254188*/                    OPC_RecordChild2, // #4 = $src0
/*254189*/                    OPC_CheckType, MVT::v2i64,
/*254191*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*254193*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*254196*/                    OPC_EmitMergeInputChains1_1,
/*254197*/                    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, (bitconvert:{ *:[v2i64] } (xor:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v16i8] }:$src1)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                              // Dst: (VPXORQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*254211*/                  0, // EndSwitchType
/*254212*/                0, /*End of Scope*/
/*254213*/              /*SwitchOpcode*/ 53|128,1/*181*/, TARGET_VAL(X86ISD::ANDNP),// ->254398
/*254217*/                OPC_RecordChild0, // #1 = $src1
/*254218*/                OPC_MoveChild1,
/*254219*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*254222*/                OPC_RecordMemRef,
/*254223*/                OPC_RecordNode, // #2 = 'ld' chained node
/*254224*/                OPC_CheckFoldableChainNode,
/*254225*/                OPC_RecordChild1, // #3 = $src2
/*254226*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*254228*/                OPC_CheckPredicate, 9, // Predicate_load
/*254230*/                OPC_MoveParent,
/*254231*/                OPC_SwitchType /*3 cases */, 53, MVT::v4i32,// ->254287
/*254234*/                  OPC_MoveParent,
/*254235*/                  OPC_MoveParent,
/*254236*/                  OPC_Scope, 24, /*->254262*/ // 2 children in Scope
/*254238*/                    OPC_MoveChild2,
/*254239*/                    OPC_CheckImmAllZerosV,
/*254240*/                    OPC_MoveParent,
/*254241*/                    OPC_CheckType, MVT::v2i64,
/*254243*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*254245*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*254248*/                    OPC_EmitMergeInputChains1_2,
/*254249*/                    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, (bitconvert:{ *:[v2i64] } (X86andnp:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v2i64] }) - Complexity = 35
                              // Dst: (VPANDNQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*254262*/                  /*Scope*/ 23, /*->254286*/
/*254263*/                    OPC_RecordChild2, // #4 = $src0
/*254264*/                    OPC_CheckType, MVT::v2i64,
/*254266*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*254268*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*254271*/                    OPC_EmitMergeInputChains1_2,
/*254272*/                    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, (bitconvert:{ *:[v2i64] } (X86andnp:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                              // Dst: (VPANDNQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*254286*/                  0, /*End of Scope*/
/*254287*/                /*SwitchType*/ 53, MVT::v8i16,// ->254342
/*254289*/                  OPC_MoveParent,
/*254290*/                  OPC_MoveParent,
/*254291*/                  OPC_Scope, 24, /*->254317*/ // 2 children in Scope
/*254293*/                    OPC_MoveChild2,
/*254294*/                    OPC_CheckImmAllZerosV,
/*254295*/                    OPC_MoveParent,
/*254296*/                    OPC_CheckType, MVT::v2i64,
/*254298*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*254300*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*254303*/                    OPC_EmitMergeInputChains1_2,
/*254304*/                    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, (bitconvert:{ *:[v2i64] } (X86andnp:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v2i64] }) - Complexity = 35
                              // Dst: (VPANDNQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*254317*/                  /*Scope*/ 23, /*->254341*/
/*254318*/                    OPC_RecordChild2, // #4 = $src0
/*254319*/                    OPC_CheckType, MVT::v2i64,
/*254321*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*254323*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*254326*/                    OPC_EmitMergeInputChains1_2,
/*254327*/                    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, (bitconvert:{ *:[v2i64] } (X86andnp:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                              // Dst: (VPANDNQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*254341*/                  0, /*End of Scope*/
/*254342*/                /*SwitchType*/ 53, MVT::v16i8,// ->254397
/*254344*/                  OPC_MoveParent,
/*254345*/                  OPC_MoveParent,
/*254346*/                  OPC_Scope, 24, /*->254372*/ // 2 children in Scope
/*254348*/                    OPC_MoveChild2,
/*254349*/                    OPC_CheckImmAllZerosV,
/*254350*/                    OPC_MoveParent,
/*254351*/                    OPC_CheckType, MVT::v2i64,
/*254353*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*254355*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*254358*/                    OPC_EmitMergeInputChains1_2,
/*254359*/                    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, (bitconvert:{ *:[v2i64] } (X86andnp:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v2i64] }) - Complexity = 35
                              // Dst: (VPANDNQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*254372*/                  /*Scope*/ 23, /*->254396*/
/*254373*/                    OPC_RecordChild2, // #4 = $src0
/*254374*/                    OPC_CheckType, MVT::v2i64,
/*254376*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*254378*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*254381*/                    OPC_EmitMergeInputChains1_2,
/*254382*/                    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, (bitconvert:{ *:[v2i64] } (X86andnp:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                              // Dst: (VPANDNQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*254396*/                  0, /*End of Scope*/
/*254397*/                0, // EndSwitchType
/*254398*/              0, // EndSwitchOpcode
/*254399*/            /*Scope*/ 90|128,1/*218*/, /*->254619*/
/*254401*/              OPC_RecordChild0, // #1 = $ext
/*254402*/              OPC_MoveChild0,
/*254403*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/*254406*/              OPC_RecordChild0, // #2 = $src
/*254407*/              OPC_Scope, 34, /*->254443*/ // 6 children in Scope
/*254409*/                OPC_CheckChild0Type, MVT::v8i32,
/*254411*/                OPC_MoveChild1,
/*254412*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*254415*/                OPC_CheckType, MVT::iPTR,
/*254417*/                OPC_MoveParent,
/*254418*/                OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/*254420*/                OPC_CheckType, MVT::v4i32,
/*254422*/                OPC_MoveParent,
/*254423*/                OPC_MoveParent,
/*254424*/                OPC_MoveChild2,
/*254425*/                OPC_CheckImmAllZerosV,
/*254426*/                OPC_MoveParent,
/*254427*/                OPC_CheckType, MVT::v2i64,
/*254429*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*254431*/                OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*254434*/                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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext), immAllZerosV:{ *:[v2i64] }) - Complexity = 17
                          // Dst: (VEXTRACTI64x2Z256rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR256X:{ *:[v8i32] }:$src, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v4i32] }:$ext))
/*254443*/              /*Scope*/ 34, /*->254478*/
/*254444*/                OPC_CheckChild0Type, MVT::v16i16,
/*254446*/                OPC_MoveChild1,
/*254447*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*254450*/                OPC_CheckType, MVT::iPTR,
/*254452*/                OPC_MoveParent,
/*254453*/                OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/*254455*/                OPC_CheckType, MVT::v8i16,
/*254457*/                OPC_MoveParent,
/*254458*/                OPC_MoveParent,
/*254459*/                OPC_MoveChild2,
/*254460*/                OPC_CheckImmAllZerosV,
/*254461*/                OPC_MoveParent,
/*254462*/                OPC_CheckType, MVT::v2i64,
/*254464*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*254466*/                OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*254469*/                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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext), immAllZerosV:{ *:[v2i64] }) - Complexity = 17
                          // Dst: (VEXTRACTI64x2Z256rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR256X:{ *:[v16i16] }:$src, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v8i16] }:$ext))
/*254478*/              /*Scope*/ 34, /*->254513*/
/*254479*/                OPC_CheckChild0Type, MVT::v32i8,
/*254481*/                OPC_MoveChild1,
/*254482*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*254485*/                OPC_CheckType, MVT::iPTR,
/*254487*/                OPC_MoveParent,
/*254488*/                OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/*254490*/                OPC_CheckType, MVT::v16i8,
/*254492*/                OPC_MoveParent,
/*254493*/                OPC_MoveParent,
/*254494*/                OPC_MoveChild2,
/*254495*/                OPC_CheckImmAllZerosV,
/*254496*/                OPC_MoveParent,
/*254497*/                OPC_CheckType, MVT::v2i64,
/*254499*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*254501*/                OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*254504*/                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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext), immAllZerosV:{ *:[v2i64] }) - Complexity = 17
                          // Dst: (VEXTRACTI64x2Z256rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR256X:{ *:[v32i8] }:$src, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v16i8] }:$ext))
/*254513*/              /*Scope*/ 34, /*->254548*/
/*254514*/                OPC_CheckChild0Type, MVT::v16i32,
/*254516*/                OPC_MoveChild1,
/*254517*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*254520*/                OPC_CheckType, MVT::iPTR,
/*254522*/                OPC_MoveParent,
/*254523*/                OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/*254525*/                OPC_CheckType, MVT::v4i32,
/*254527*/                OPC_MoveParent,
/*254528*/                OPC_MoveParent,
/*254529*/                OPC_MoveChild2,
/*254530*/                OPC_CheckImmAllZerosV,
/*254531*/                OPC_MoveParent,
/*254532*/                OPC_CheckType, MVT::v2i64,
/*254534*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*254536*/                OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*254539*/                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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext), immAllZerosV:{ *:[v2i64] }) - Complexity = 17
                          // Dst: (VEXTRACTI64x2Zrrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR512:{ *:[v16i32] }:$src, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v4i32] }:$ext))
/*254548*/              /*Scope*/ 34, /*->254583*/
/*254549*/                OPC_CheckChild0Type, MVT::v32i16,
/*254551*/                OPC_MoveChild1,
/*254552*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*254555*/                OPC_CheckType, MVT::iPTR,
/*254557*/                OPC_MoveParent,
/*254558*/                OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/*254560*/                OPC_CheckType, MVT::v8i16,
/*254562*/                OPC_MoveParent,
/*254563*/                OPC_MoveParent,
/*254564*/                OPC_MoveChild2,
/*254565*/                OPC_CheckImmAllZerosV,
/*254566*/                OPC_MoveParent,
/*254567*/                OPC_CheckType, MVT::v2i64,
/*254569*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*254571*/                OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*254574*/                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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext), immAllZerosV:{ *:[v2i64] }) - Complexity = 17
                          // Dst: (VEXTRACTI64x2Zrrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR512:{ *:[v32i16] }:$src, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v8i16] }:$ext))
/*254583*/              /*Scope*/ 34, /*->254618*/
/*254584*/                OPC_CheckChild0Type, MVT::v64i8,
/*254586*/                OPC_MoveChild1,
/*254587*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*254590*/                OPC_CheckType, MVT::iPTR,
/*254592*/                OPC_MoveParent,
/*254593*/                OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/*254595*/                OPC_CheckType, MVT::v16i8,
/*254597*/                OPC_MoveParent,
/*254598*/                OPC_MoveParent,
/*254599*/                OPC_MoveChild2,
/*254600*/                OPC_CheckImmAllZerosV,
/*254601*/                OPC_MoveParent,
/*254602*/                OPC_CheckType, MVT::v2i64,
/*254604*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*254606*/                OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*254609*/                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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext), immAllZerosV:{ *:[v2i64] }) - Complexity = 17
                          // Dst: (VEXTRACTI64x2Zrrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR512:{ *:[v64i8] }:$src, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v16i8] }:$ext))
/*254618*/              0, /*End of Scope*/
/*254619*/            0, /*End of Scope*/
/*254620*/          /*SwitchOpcode*/ 13|128,1/*141*/, TARGET_VAL(X86ISD::VSRLI),// ->254765
/*254624*/            OPC_MoveChild0,
/*254625*/            OPC_SwitchOpcode /*2 cases */, 67, TARGET_VAL(ISD::LOAD),// ->254696
/*254629*/              OPC_RecordMemRef,
/*254630*/              OPC_RecordNode, // #1 = 'ld' chained node
/*254631*/              OPC_CheckFoldableChainNode,
/*254632*/              OPC_RecordChild1, // #2 = $src1
/*254633*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*254635*/              OPC_CheckPredicate, 9, // Predicate_load
/*254637*/              OPC_MoveParent,
/*254638*/              OPC_RecordChild1, // #3 = $src2
/*254639*/              OPC_MoveChild1,
/*254640*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*254643*/              OPC_MoveParent,
/*254644*/              OPC_MoveParent,
/*254645*/              OPC_Scope, 24, /*->254671*/ // 2 children in Scope
/*254647*/                OPC_MoveChild2,
/*254648*/                OPC_CheckImmAllZerosV,
/*254649*/                OPC_MoveParent,
/*254650*/                OPC_CheckType, MVT::v2i64,
/*254652*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*254654*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*254657*/                OPC_EmitMergeInputChains1_1,
/*254658*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZ128mikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vsrli:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v2i64] }) - Complexity = 35
                          // Dst: (VPSRLQZ128mikz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*254671*/              /*Scope*/ 23, /*->254695*/
/*254672*/                OPC_RecordChild2, // #4 = $src0
/*254673*/                OPC_CheckType, MVT::v2i64,
/*254675*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*254677*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*254680*/                OPC_EmitMergeInputChains1_1,
/*254681*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZ128mik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vsrli:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                          // Dst: (VPSRLQZ128mik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*254695*/              0, /*End of Scope*/
/*254696*/            /*SwitchOpcode*/ 65, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->254764
/*254699*/              OPC_RecordMemRef,
/*254700*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*254701*/              OPC_CheckFoldableChainNode,
/*254702*/              OPC_RecordChild1, // #2 = $src1
/*254703*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*254705*/              OPC_MoveParent,
/*254706*/              OPC_RecordChild1, // #3 = $src2
/*254707*/              OPC_MoveChild1,
/*254708*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*254711*/              OPC_MoveParent,
/*254712*/              OPC_MoveParent,
/*254713*/              OPC_Scope, 24, /*->254739*/ // 2 children in Scope
/*254715*/                OPC_MoveChild2,
/*254716*/                OPC_CheckImmAllZerosV,
/*254717*/                OPC_MoveParent,
/*254718*/                OPC_CheckType, MVT::v2i64,
/*254720*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*254722*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*254725*/                OPC_EmitMergeInputChains1_1,
/*254726*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZ128mbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vsrli:{ *:[v2i64] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v2i64] }) - Complexity = 35
                          // Dst: (VPSRLQZ128mbikz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*254739*/              /*Scope*/ 23, /*->254763*/
/*254740*/                OPC_RecordChild2, // #4 = $src0
/*254741*/                OPC_CheckType, MVT::v2i64,
/*254743*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*254745*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*254748*/                OPC_EmitMergeInputChains1_1,
/*254749*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZ128mbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vsrli:{ *:[v2i64] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src2), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                          // Dst: (VPSRLQZ128mbik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*254763*/              0, /*End of Scope*/
/*254764*/            0, // EndSwitchOpcode
/*254765*/          /*SwitchOpcode*/ 13|128,1/*141*/, TARGET_VAL(X86ISD::VSHLI),// ->254910
/*254769*/            OPC_MoveChild0,
/*254770*/            OPC_SwitchOpcode /*2 cases */, 67, TARGET_VAL(ISD::LOAD),// ->254841
/*254774*/              OPC_RecordMemRef,
/*254775*/              OPC_RecordNode, // #1 = 'ld' chained node
/*254776*/              OPC_CheckFoldableChainNode,
/*254777*/              OPC_RecordChild1, // #2 = $src1
/*254778*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*254780*/              OPC_CheckPredicate, 9, // Predicate_load
/*254782*/              OPC_MoveParent,
/*254783*/              OPC_RecordChild1, // #3 = $src2
/*254784*/              OPC_MoveChild1,
/*254785*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*254788*/              OPC_MoveParent,
/*254789*/              OPC_MoveParent,
/*254790*/              OPC_Scope, 24, /*->254816*/ // 2 children in Scope
/*254792*/                OPC_MoveChild2,
/*254793*/                OPC_CheckImmAllZerosV,
/*254794*/                OPC_MoveParent,
/*254795*/                OPC_CheckType, MVT::v2i64,
/*254797*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*254799*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*254802*/                OPC_EmitMergeInputChains1_1,
/*254803*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZ128mikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vshli:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v2i64] }) - Complexity = 35
                          // Dst: (VPSLLQZ128mikz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*254816*/              /*Scope*/ 23, /*->254840*/
/*254817*/                OPC_RecordChild2, // #4 = $src0
/*254818*/                OPC_CheckType, MVT::v2i64,
/*254820*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*254822*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*254825*/                OPC_EmitMergeInputChains1_1,
/*254826*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZ128mik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vshli:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                          // Dst: (VPSLLQZ128mik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*254840*/              0, /*End of Scope*/
/*254841*/            /*SwitchOpcode*/ 65, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->254909
/*254844*/              OPC_RecordMemRef,
/*254845*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*254846*/              OPC_CheckFoldableChainNode,
/*254847*/              OPC_RecordChild1, // #2 = $src1
/*254848*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*254850*/              OPC_MoveParent,
/*254851*/              OPC_RecordChild1, // #3 = $src2
/*254852*/              OPC_MoveChild1,
/*254853*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*254856*/              OPC_MoveParent,
/*254857*/              OPC_MoveParent,
/*254858*/              OPC_Scope, 24, /*->254884*/ // 2 children in Scope
/*254860*/                OPC_MoveChild2,
/*254861*/                OPC_CheckImmAllZerosV,
/*254862*/                OPC_MoveParent,
/*254863*/                OPC_CheckType, MVT::v2i64,
/*254865*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*254867*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*254870*/                OPC_EmitMergeInputChains1_1,
/*254871*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZ128mbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vshli:{ *:[v2i64] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v2i64] }) - Complexity = 35
                          // Dst: (VPSLLQZ128mbikz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*254884*/              /*Scope*/ 23, /*->254908*/
/*254885*/                OPC_RecordChild2, // #4 = $src0
/*254886*/                OPC_CheckType, MVT::v2i64,
/*254888*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*254890*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*254893*/                OPC_EmitMergeInputChains1_1,
/*254894*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZ128mbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vshli:{ *:[v2i64] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src2), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                          // Dst: (VPSLLQZ128mbik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*254908*/              0, /*End of Scope*/
/*254909*/            0, // EndSwitchOpcode
/*254910*/          /*SwitchOpcode*/ 13|128,1/*141*/, TARGET_VAL(X86ISD::VSRAI),// ->255055
/*254914*/            OPC_MoveChild0,
/*254915*/            OPC_SwitchOpcode /*2 cases */, 67, TARGET_VAL(ISD::LOAD),// ->254986
/*254919*/              OPC_RecordMemRef,
/*254920*/              OPC_RecordNode, // #1 = 'ld' chained node
/*254921*/              OPC_CheckFoldableChainNode,
/*254922*/              OPC_RecordChild1, // #2 = $src1
/*254923*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*254925*/              OPC_CheckPredicate, 9, // Predicate_load
/*254927*/              OPC_MoveParent,
/*254928*/              OPC_RecordChild1, // #3 = $src2
/*254929*/              OPC_MoveChild1,
/*254930*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*254933*/              OPC_MoveParent,
/*254934*/              OPC_MoveParent,
/*254935*/              OPC_Scope, 24, /*->254961*/ // 2 children in Scope
/*254937*/                OPC_MoveChild2,
/*254938*/                OPC_CheckImmAllZerosV,
/*254939*/                OPC_MoveParent,
/*254940*/                OPC_CheckType, MVT::v2i64,
/*254942*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*254944*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*254947*/                OPC_EmitMergeInputChains1_1,
/*254948*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZ128mikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vsrai:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v2i64] }) - Complexity = 35
                          // Dst: (VPSRAQZ128mikz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*254961*/              /*Scope*/ 23, /*->254985*/
/*254962*/                OPC_RecordChild2, // #4 = $src0
/*254963*/                OPC_CheckType, MVT::v2i64,
/*254965*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*254967*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*254970*/                OPC_EmitMergeInputChains1_1,
/*254971*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZ128mik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vsrai:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                          // Dst: (VPSRAQZ128mik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*254985*/              0, /*End of Scope*/
/*254986*/            /*SwitchOpcode*/ 65, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->255054
/*254989*/              OPC_RecordMemRef,
/*254990*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*254991*/              OPC_CheckFoldableChainNode,
/*254992*/              OPC_RecordChild1, // #2 = $src1
/*254993*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*254995*/              OPC_MoveParent,
/*254996*/              OPC_RecordChild1, // #3 = $src2
/*254997*/              OPC_MoveChild1,
/*254998*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*255001*/              OPC_MoveParent,
/*255002*/              OPC_MoveParent,
/*255003*/              OPC_Scope, 24, /*->255029*/ // 2 children in Scope
/*255005*/                OPC_MoveChild2,
/*255006*/                OPC_CheckImmAllZerosV,
/*255007*/                OPC_MoveParent,
/*255008*/                OPC_CheckType, MVT::v2i64,
/*255010*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*255012*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*255015*/                OPC_EmitMergeInputChains1_1,
/*255016*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZ128mbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vsrai:{ *:[v2i64] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v2i64] }) - Complexity = 35
                          // Dst: (VPSRAQZ128mbikz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*255029*/              /*Scope*/ 23, /*->255053*/
/*255030*/                OPC_RecordChild2, // #4 = $src0
/*255031*/                OPC_CheckType, MVT::v2i64,
/*255033*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*255035*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*255038*/                OPC_EmitMergeInputChains1_1,
/*255039*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZ128mbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vsrai:{ *:[v2i64] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src2), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                          // Dst: (VPSRAQZ128mbik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*255053*/              0, /*End of Scope*/
/*255054*/            0, // EndSwitchOpcode
/*255055*/          /*SwitchOpcode*/ 13|128,1/*141*/, TARGET_VAL(X86ISD::VROTRI),// ->255200
/*255059*/            OPC_MoveChild0,
/*255060*/            OPC_SwitchOpcode /*2 cases */, 67, TARGET_VAL(ISD::LOAD),// ->255131
/*255064*/              OPC_RecordMemRef,
/*255065*/              OPC_RecordNode, // #1 = 'ld' chained node
/*255066*/              OPC_CheckFoldableChainNode,
/*255067*/              OPC_RecordChild1, // #2 = $src1
/*255068*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*255070*/              OPC_CheckPredicate, 9, // Predicate_load
/*255072*/              OPC_MoveParent,
/*255073*/              OPC_RecordChild1, // #3 = $src2
/*255074*/              OPC_MoveChild1,
/*255075*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*255078*/              OPC_MoveParent,
/*255079*/              OPC_MoveParent,
/*255080*/              OPC_Scope, 24, /*->255106*/ // 2 children in Scope
/*255082*/                OPC_MoveChild2,
/*255083*/                OPC_CheckImmAllZerosV,
/*255084*/                OPC_MoveParent,
/*255085*/                OPC_CheckType, MVT::v2i64,
/*255087*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*255089*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*255092*/                OPC_EmitMergeInputChains1_1,
/*255093*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORQZ128mikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vrotri:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v2i64] }) - Complexity = 35
                          // Dst: (VPRORQZ128mikz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*255106*/              /*Scope*/ 23, /*->255130*/
/*255107*/                OPC_RecordChild2, // #4 = $src0
/*255108*/                OPC_CheckType, MVT::v2i64,
/*255110*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*255112*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*255115*/                OPC_EmitMergeInputChains1_1,
/*255116*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORQZ128mik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vrotri:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                          // Dst: (VPRORQZ128mik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*255130*/              0, /*End of Scope*/
/*255131*/            /*SwitchOpcode*/ 65, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->255199
/*255134*/              OPC_RecordMemRef,
/*255135*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*255136*/              OPC_CheckFoldableChainNode,
/*255137*/              OPC_RecordChild1, // #2 = $src1
/*255138*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*255140*/              OPC_MoveParent,
/*255141*/              OPC_RecordChild1, // #3 = $src2
/*255142*/              OPC_MoveChild1,
/*255143*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*255146*/              OPC_MoveParent,
/*255147*/              OPC_MoveParent,
/*255148*/              OPC_Scope, 24, /*->255174*/ // 2 children in Scope
/*255150*/                OPC_MoveChild2,
/*255151*/                OPC_CheckImmAllZerosV,
/*255152*/                OPC_MoveParent,
/*255153*/                OPC_CheckType, MVT::v2i64,
/*255155*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*255157*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*255160*/                OPC_EmitMergeInputChains1_1,
/*255161*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORQZ128mbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vrotri:{ *:[v2i64] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v2i64] }) - Complexity = 35
                          // Dst: (VPRORQZ128mbikz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*255174*/              /*Scope*/ 23, /*->255198*/
/*255175*/                OPC_RecordChild2, // #4 = $src0
/*255176*/                OPC_CheckType, MVT::v2i64,
/*255178*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*255180*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*255183*/                OPC_EmitMergeInputChains1_1,
/*255184*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORQZ128mbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vrotri:{ *:[v2i64] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src2), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                          // Dst: (VPRORQZ128mbik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*255198*/              0, /*End of Scope*/
/*255199*/            0, // EndSwitchOpcode
/*255200*/          /*SwitchOpcode*/ 13|128,1/*141*/, TARGET_VAL(X86ISD::VROTLI),// ->255345
/*255204*/            OPC_MoveChild0,
/*255205*/            OPC_SwitchOpcode /*2 cases */, 67, TARGET_VAL(ISD::LOAD),// ->255276
/*255209*/              OPC_RecordMemRef,
/*255210*/              OPC_RecordNode, // #1 = 'ld' chained node
/*255211*/              OPC_CheckFoldableChainNode,
/*255212*/              OPC_RecordChild1, // #2 = $src1
/*255213*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*255215*/              OPC_CheckPredicate, 9, // Predicate_load
/*255217*/              OPC_MoveParent,
/*255218*/              OPC_RecordChild1, // #3 = $src2
/*255219*/              OPC_MoveChild1,
/*255220*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*255223*/              OPC_MoveParent,
/*255224*/              OPC_MoveParent,
/*255225*/              OPC_Scope, 24, /*->255251*/ // 2 children in Scope
/*255227*/                OPC_MoveChild2,
/*255228*/                OPC_CheckImmAllZerosV,
/*255229*/                OPC_MoveParent,
/*255230*/                OPC_CheckType, MVT::v2i64,
/*255232*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*255234*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*255237*/                OPC_EmitMergeInputChains1_1,
/*255238*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLQZ128mikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vrotli:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v2i64] }) - Complexity = 35
                          // Dst: (VPROLQZ128mikz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*255251*/              /*Scope*/ 23, /*->255275*/
/*255252*/                OPC_RecordChild2, // #4 = $src0
/*255253*/                OPC_CheckType, MVT::v2i64,
/*255255*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*255257*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*255260*/                OPC_EmitMergeInputChains1_1,
/*255261*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLQZ128mik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vrotli:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                          // Dst: (VPROLQZ128mik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*255275*/              0, /*End of Scope*/
/*255276*/            /*SwitchOpcode*/ 65, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->255344
/*255279*/              OPC_RecordMemRef,
/*255280*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*255281*/              OPC_CheckFoldableChainNode,
/*255282*/              OPC_RecordChild1, // #2 = $src1
/*255283*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*255285*/              OPC_MoveParent,
/*255286*/              OPC_RecordChild1, // #3 = $src2
/*255287*/              OPC_MoveChild1,
/*255288*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*255291*/              OPC_MoveParent,
/*255292*/              OPC_MoveParent,
/*255293*/              OPC_Scope, 24, /*->255319*/ // 2 children in Scope
/*255295*/                OPC_MoveChild2,
/*255296*/                OPC_CheckImmAllZerosV,
/*255297*/                OPC_MoveParent,
/*255298*/                OPC_CheckType, MVT::v2i64,
/*255300*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*255302*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*255305*/                OPC_EmitMergeInputChains1_1,
/*255306*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLQZ128mbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vrotli:{ *:[v2i64] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v2i64] }) - Complexity = 35
                          // Dst: (VPROLQZ128mbikz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*255319*/              /*Scope*/ 23, /*->255343*/
/*255320*/                OPC_RecordChild2, // #4 = $src0
/*255321*/                OPC_CheckType, MVT::v2i64,
/*255323*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*255325*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*255328*/                OPC_EmitMergeInputChains1_1,
/*255329*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLQZ128mbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vrotli:{ *:[v2i64] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src2), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                          // Dst: (VPROLQZ128mbik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*255343*/              0, /*End of Scope*/
/*255344*/            0, // EndSwitchOpcode
/*255345*/          /*SwitchOpcode*/ 18|128,1/*146*/, TARGET_VAL(X86ISD::VALIGN),// ->255495
/*255349*/            OPC_RecordChild0, // #1 = $src1
/*255350*/            OPC_MoveChild1,
/*255351*/            OPC_SwitchOpcode /*2 cases */, 69, TARGET_VAL(ISD::LOAD),// ->255424
/*255355*/              OPC_RecordMemRef,
/*255356*/              OPC_RecordNode, // #2 = 'ld' chained node
/*255357*/              OPC_CheckFoldableChainNode,
/*255358*/              OPC_RecordChild1, // #3 = $src2
/*255359*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*255361*/              OPC_CheckPredicate, 9, // Predicate_load
/*255363*/              OPC_MoveParent,
/*255364*/              OPC_RecordChild2, // #4 = $src3
/*255365*/              OPC_MoveChild2,
/*255366*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*255369*/              OPC_MoveParent,
/*255370*/              OPC_MoveParent,
/*255371*/              OPC_Scope, 25, /*->255398*/ // 2 children in Scope
/*255373*/                OPC_MoveChild2,
/*255374*/                OPC_CheckImmAllZerosV,
/*255375*/                OPC_MoveParent,
/*255376*/                OPC_CheckType, MVT::v2i64,
/*255378*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*255380*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*255383*/                OPC_EmitMergeInputChains1_2,
/*255384*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNQZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86VAlign:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v2i64] }) - Complexity = 35
                          // Dst: (VALIGNQZ128rmikz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*255398*/              /*Scope*/ 24, /*->255423*/
/*255399*/                OPC_RecordChild2, // #5 = $src0
/*255400*/                OPC_CheckType, MVT::v2i64,
/*255402*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*255404*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*255407*/                OPC_EmitMergeInputChains1_2,
/*255408*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNQZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86VAlign:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                          // Dst: (VALIGNQZ128rmik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*255423*/              0, /*End of Scope*/
/*255424*/            /*SwitchOpcode*/ 67, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->255494
/*255427*/              OPC_RecordMemRef,
/*255428*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*255429*/              OPC_CheckFoldableChainNode,
/*255430*/              OPC_RecordChild1, // #3 = $src2
/*255431*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*255433*/              OPC_MoveParent,
/*255434*/              OPC_RecordChild2, // #4 = $src3
/*255435*/              OPC_MoveChild2,
/*255436*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*255439*/              OPC_MoveParent,
/*255440*/              OPC_MoveParent,
/*255441*/              OPC_Scope, 25, /*->255468*/ // 2 children in Scope
/*255443*/                OPC_MoveChild2,
/*255444*/                OPC_CheckImmAllZerosV,
/*255445*/                OPC_MoveParent,
/*255446*/                OPC_CheckType, MVT::v2i64,
/*255448*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*255450*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*255453*/                OPC_EmitMergeInputChains1_2,
/*255454*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNQZ128rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86VAlign:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v2i64] }) - Complexity = 35
                          // Dst: (VALIGNQZ128rmbikz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*255468*/              /*Scope*/ 24, /*->255493*/
/*255469*/                OPC_RecordChild2, // #5 = $src0
/*255470*/                OPC_CheckType, MVT::v2i64,
/*255472*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*255474*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*255477*/                OPC_EmitMergeInputChains1_2,
/*255478*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNQZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86VAlign:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src3), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                          // Dst: (VALIGNQZ128rmbik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*255493*/              0, /*End of Scope*/
/*255494*/            0, // EndSwitchOpcode
/*255495*/          /*SwitchOpcode*/ 14|128,7/*910*/, TARGET_VAL(X86ISD::VPTERNLOG),// ->256409
/*255499*/            OPC_Scope, 97, /*->255598*/ // 12 children in Scope
/*255501*/              OPC_RecordChild0, // #1 = $src1
/*255502*/              OPC_RecordChild1, // #2 = $src2
/*255503*/              OPC_MoveChild2,
/*255504*/              OPC_SwitchOpcode /*2 cases */, 44, TARGET_VAL(ISD::LOAD),// ->255552
/*255508*/                OPC_RecordMemRef,
/*255509*/                OPC_RecordNode, // #3 = 'ld' chained node
/*255510*/                OPC_CheckFoldableChainNode,
/*255511*/                OPC_RecordChild1, // #4 = $src3
/*255512*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*255514*/                OPC_CheckPredicate, 9, // Predicate_load
/*255516*/                OPC_MoveParent,
/*255517*/                OPC_RecordChild3, // #5 = $src4
/*255518*/                OPC_MoveChild3,
/*255519*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*255522*/                OPC_MoveParent,
/*255523*/                OPC_MoveParent,
/*255524*/                OPC_MoveChild2,
/*255525*/                OPC_CheckImmAllZerosV,
/*255526*/                OPC_MoveParent,
/*255527*/                OPC_CheckType, MVT::v2i64,
/*255529*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*255531*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*255534*/                OPC_EmitMergeInputChains, 1, 3, 
/*255537*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 5, 
                          // 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>>, (timm:{ *:[i8] }):$src4), immAllZerosV:{ *:[v2i64] }) - Complexity = 35
                          // Dst: (VPTERNLOGQZ128rmikz:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i8] }):$src4)
/*255552*/              /*SwitchOpcode*/ 42, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->255597
/*255555*/                OPC_RecordMemRef,
/*255556*/                OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*255557*/                OPC_CheckFoldableChainNode,
/*255558*/                OPC_RecordChild1, // #4 = $src3
/*255559*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*255561*/                OPC_MoveParent,
/*255562*/                OPC_RecordChild3, // #5 = $src4
/*255563*/                OPC_MoveChild3,
/*255564*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*255567*/                OPC_MoveParent,
/*255568*/                OPC_MoveParent,
/*255569*/                OPC_MoveChild2,
/*255570*/                OPC_CheckImmAllZerosV,
/*255571*/                OPC_MoveParent,
/*255572*/                OPC_CheckType, MVT::v2i64,
/*255574*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*255576*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*255579*/                OPC_EmitMergeInputChains, 1, 3, 
/*255582*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 5, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vpternlog:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src4), immAllZerosV:{ *:[v2i64] }) - Complexity = 35
                          // Dst: (VPTERNLOGQZ128rmbikz:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i8] }):$src4)
/*255597*/              0, // EndSwitchOpcode
/*255598*/            /*Scope*/ 51, /*->255650*/
/*255599*/              OPC_MoveChild0,
/*255600*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*255603*/              OPC_RecordMemRef,
/*255604*/              OPC_RecordNode, // #1 = 'ld' chained node
/*255605*/              OPC_CheckFoldableChainNode,
/*255606*/              OPC_RecordChild1, // #2 = $src3
/*255607*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*255609*/              OPC_CheckPredicate, 9, // Predicate_load
/*255611*/              OPC_MoveParent,
/*255612*/              OPC_RecordChild1, // #3 = $src2
/*255613*/              OPC_RecordChild2, // #4 = $src1
/*255614*/              OPC_RecordChild3, // #5 = $src4
/*255615*/              OPC_MoveChild3,
/*255616*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*255619*/              OPC_MoveParent,
/*255620*/              OPC_MoveParent,
/*255621*/              OPC_MoveChild2,
/*255622*/              OPC_CheckImmAllZerosV,
/*255623*/              OPC_MoveParent,
/*255624*/              OPC_CheckType, MVT::v2i64,
/*255626*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*255628*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*255631*/              OPC_EmitMergeInputChains1_1,
/*255632*/              OPC_EmitNodeXForm, 19, 5, // VPTERNLOG321_imm8
/*255635*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 9/*#Ops*/, 4, 0, 3, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vpternlog:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src1, (timm:{ *:[i8] }):$src4), immAllZerosV:{ *:[v2i64] }) - Complexity = 35
                        // Dst: (VPTERNLOGQZ128rmikz:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*255650*/            /*Scope*/ 51, /*->255702*/
/*255651*/              OPC_RecordChild0, // #1 = $src1
/*255652*/              OPC_MoveChild1,
/*255653*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*255656*/              OPC_RecordMemRef,
/*255657*/              OPC_RecordNode, // #2 = 'ld' chained node
/*255658*/              OPC_CheckFoldableChainNode,
/*255659*/              OPC_RecordChild1, // #3 = $src3
/*255660*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*255662*/              OPC_CheckPredicate, 9, // Predicate_load
/*255664*/              OPC_MoveParent,
/*255665*/              OPC_RecordChild2, // #4 = $src2
/*255666*/              OPC_RecordChild3, // #5 = $src4
/*255667*/              OPC_MoveChild3,
/*255668*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*255671*/              OPC_MoveParent,
/*255672*/              OPC_MoveParent,
/*255673*/              OPC_MoveChild2,
/*255674*/              OPC_CheckImmAllZerosV,
/*255675*/              OPC_MoveParent,
/*255676*/              OPC_CheckType, MVT::v2i64,
/*255678*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*255680*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*255683*/              OPC_EmitMergeInputChains1_2,
/*255684*/              OPC_EmitNodeXForm, 20, 5, // VPTERNLOG132_imm8
/*255687*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 9/*#Ops*/, 1, 0, 4, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vpternlog:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v2i64] }:$src2, (timm:{ *:[i8] }):$src4), immAllZerosV:{ *:[v2i64] }) - Complexity = 35
                        // Dst: (VPTERNLOGQZ128rmikz:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*255702*/            /*Scope*/ 49, /*->255752*/
/*255703*/              OPC_MoveChild0,
/*255704*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*255707*/              OPC_RecordMemRef,
/*255708*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*255709*/              OPC_CheckFoldableChainNode,
/*255710*/              OPC_RecordChild1, // #2 = $src3
/*255711*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*255713*/              OPC_MoveParent,
/*255714*/              OPC_RecordChild1, // #3 = $src2
/*255715*/              OPC_RecordChild2, // #4 = $src1
/*255716*/              OPC_RecordChild3, // #5 = $src4
/*255717*/              OPC_MoveChild3,
/*255718*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*255721*/              OPC_MoveParent,
/*255722*/              OPC_MoveParent,
/*255723*/              OPC_MoveChild2,
/*255724*/              OPC_CheckImmAllZerosV,
/*255725*/              OPC_MoveParent,
/*255726*/              OPC_CheckType, MVT::v2i64,
/*255728*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*255730*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*255733*/              OPC_EmitMergeInputChains1_1,
/*255734*/              OPC_EmitNodeXForm, 19, 5, // VPTERNLOG321_imm8
/*255737*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 9/*#Ops*/, 4, 0, 3, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vpternlog:{ *:[v2i64] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src1, (timm:{ *:[i8] }):$src4), immAllZerosV:{ *:[v2i64] }) - Complexity = 35
                        // Dst: (VPTERNLOGQZ128rmbikz:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*255752*/            /*Scope*/ 69|128,1/*197*/, /*->255951*/
/*255754*/              OPC_RecordChild0, // #1 = $src1
/*255755*/              OPC_Scope, 48, /*->255805*/ // 3 children in Scope
/*255757*/                OPC_MoveChild1,
/*255758*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*255761*/                OPC_RecordMemRef,
/*255762*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*255763*/                OPC_CheckFoldableChainNode,
/*255764*/                OPC_RecordChild1, // #3 = $src3
/*255765*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*255767*/                OPC_MoveParent,
/*255768*/                OPC_RecordChild2, // #4 = $src2
/*255769*/                OPC_RecordChild3, // #5 = $src4
/*255770*/                OPC_MoveChild3,
/*255771*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*255774*/                OPC_MoveParent,
/*255775*/                OPC_MoveParent,
/*255776*/                OPC_MoveChild2,
/*255777*/                OPC_CheckImmAllZerosV,
/*255778*/                OPC_MoveParent,
/*255779*/                OPC_CheckType, MVT::v2i64,
/*255781*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*255783*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*255786*/                OPC_EmitMergeInputChains1_2,
/*255787*/                OPC_EmitNodeXForm, 20, 5, // VPTERNLOG132_imm8
/*255790*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 9/*#Ops*/, 1, 0, 4, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vpternlog:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src2, (timm:{ *:[i8] }):$src4), immAllZerosV:{ *:[v2i64] }) - Complexity = 35
                          // Dst: (VPTERNLOGQZ128rmbikz:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*255805*/              /*Scope*/ 94, /*->255900*/
/*255806*/                OPC_RecordChild1, // #2 = $src2
/*255807*/                OPC_MoveChild2,
/*255808*/                OPC_SwitchOpcode /*2 cases */, 43, TARGET_VAL(ISD::LOAD),// ->255855
/*255812*/                  OPC_RecordMemRef,
/*255813*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*255814*/                  OPC_CheckFoldableChainNode,
/*255815*/                  OPC_RecordChild1, // #4 = $src3
/*255816*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*255818*/                  OPC_CheckPredicate, 9, // Predicate_load
/*255820*/                  OPC_MoveParent,
/*255821*/                  OPC_RecordChild3, // #5 = $src4
/*255822*/                  OPC_MoveChild3,
/*255823*/                  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*255826*/                  OPC_MoveParent,
/*255827*/                  OPC_MoveParent,
/*255828*/                  OPC_CheckChild2Same, 1,
/*255830*/                  OPC_CheckType, MVT::v2i64,
/*255832*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*255834*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*255837*/                  OPC_EmitMergeInputChains, 1, 3, 
/*255840*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2i64, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 5, 
                            // 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>>, (timm:{ *:[i8] }):$src4), VR128X:{ *:[v2i64] }:$src1) - Complexity = 31
                            // Dst: (VPTERNLOGQZ128rmik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i8] }):$src4)
/*255855*/                /*SwitchOpcode*/ 41, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->255899
/*255858*/                  OPC_RecordMemRef,
/*255859*/                  OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*255860*/                  OPC_CheckFoldableChainNode,
/*255861*/                  OPC_RecordChild1, // #4 = $src3
/*255862*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*255864*/                  OPC_MoveParent,
/*255865*/                  OPC_RecordChild3, // #5 = $src4
/*255866*/                  OPC_MoveChild3,
/*255867*/                  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*255870*/                  OPC_MoveParent,
/*255871*/                  OPC_MoveParent,
/*255872*/                  OPC_CheckChild2Same, 1,
/*255874*/                  OPC_CheckType, MVT::v2i64,
/*255876*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*255878*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*255881*/                  OPC_EmitMergeInputChains, 1, 3, 
/*255884*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2i64, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 5, 
                            // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vpternlog:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src4), VR128X:{ *:[v2i64] }:$src1) - Complexity = 31
                            // Dst: (VPTERNLOGQZ128rmbik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i8] }):$src4)
/*255899*/                0, // EndSwitchOpcode
/*255900*/              /*Scope*/ 49, /*->255950*/
/*255901*/                OPC_MoveChild1,
/*255902*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*255905*/                OPC_RecordMemRef,
/*255906*/                OPC_RecordNode, // #2 = 'ld' chained node
/*255907*/                OPC_CheckFoldableChainNode,
/*255908*/                OPC_RecordChild1, // #3 = $src3
/*255909*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*255911*/                OPC_CheckPredicate, 9, // Predicate_load
/*255913*/                OPC_MoveParent,
/*255914*/                OPC_RecordChild2, // #4 = $src2
/*255915*/                OPC_RecordChild3, // #5 = $src4
/*255916*/                OPC_MoveChild3,
/*255917*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*255920*/                OPC_MoveParent,
/*255921*/                OPC_MoveParent,
/*255922*/                OPC_CheckChild2Same, 1,
/*255924*/                OPC_CheckType, MVT::v2i64,
/*255926*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*255928*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*255931*/                OPC_EmitMergeInputChains1_2,
/*255932*/                OPC_EmitNodeXForm, 20, 5, // VPTERNLOG132_imm8
/*255935*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 9/*#Ops*/, 1, 0, 4, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vpternlog:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v2i64] }:$src2, (timm:{ *:[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] } (timm:{ *:[i8] }):$src4))
/*255950*/              0, /*End of Scope*/
/*255951*/            /*Scope*/ 50, /*->256002*/
/*255952*/              OPC_MoveChild0,
/*255953*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*255956*/              OPC_RecordMemRef,
/*255957*/              OPC_RecordNode, // #1 = 'ld' chained node
/*255958*/              OPC_CheckFoldableChainNode,
/*255959*/              OPC_RecordChild1, // #2 = $src3
/*255960*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*255962*/              OPC_CheckPredicate, 9, // Predicate_load
/*255964*/              OPC_MoveParent,
/*255965*/              OPC_RecordChild1, // #3 = $src2
/*255966*/              OPC_RecordChild2, // #4 = $src1
/*255967*/              OPC_RecordChild3, // #5 = $src4
/*255968*/              OPC_MoveChild3,
/*255969*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*255972*/              OPC_MoveParent,
/*255973*/              OPC_MoveParent,
/*255974*/              OPC_CheckChild2Same, 4,
/*255976*/              OPC_CheckType, MVT::v2i64,
/*255978*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*255980*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*255983*/              OPC_EmitMergeInputChains1_1,
/*255984*/              OPC_EmitNodeXForm, 19, 5, // VPTERNLOG321_imm8
/*255987*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 9/*#Ops*/, 4, 0, 3, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vpternlog:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src1, (timm:{ *:[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] } (timm:{ *:[i8] }):$src4))
/*256002*/            /*Scope*/ 105, /*->256108*/
/*256003*/              OPC_RecordChild0, // #1 = $src2
/*256004*/              OPC_Scope, 51, /*->256057*/ // 2 children in Scope
/*256006*/                OPC_RecordChild1, // #2 = $src1
/*256007*/                OPC_MoveChild2,
/*256008*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*256011*/                OPC_RecordMemRef,
/*256012*/                OPC_RecordNode, // #3 = 'ld' chained node
/*256013*/                OPC_CheckFoldableChainNode,
/*256014*/                OPC_RecordChild1, // #4 = $src3
/*256015*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*256017*/                OPC_CheckPredicate, 9, // Predicate_load
/*256019*/                OPC_MoveParent,
/*256020*/                OPC_RecordChild3, // #5 = $src4
/*256021*/                OPC_MoveChild3,
/*256022*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*256025*/                OPC_MoveParent,
/*256026*/                OPC_MoveParent,
/*256027*/                OPC_CheckChild2Same, 2,
/*256029*/                OPC_CheckType, MVT::v2i64,
/*256031*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*256033*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*256036*/                OPC_EmitMergeInputChains, 1, 3, 
/*256039*/                OPC_EmitNodeXForm, 21, 5, // VPTERNLOG213_imm8
/*256042*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 9/*#Ops*/, 2, 0, 1, 6, 7, 8, 9, 10, 11, 
                          // 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>>, (timm:{ *:[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] } (timm:{ *:[i8] }):$src4))
/*256057*/              /*Scope*/ 49, /*->256107*/
/*256058*/                OPC_MoveChild1,
/*256059*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*256062*/                OPC_RecordMemRef,
/*256063*/                OPC_RecordNode, // #2 = 'ld' chained node
/*256064*/                OPC_CheckFoldableChainNode,
/*256065*/                OPC_RecordChild1, // #3 = $src3
/*256066*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*256068*/                OPC_CheckPredicate, 9, // Predicate_load
/*256070*/                OPC_MoveParent,
/*256071*/                OPC_RecordChild2, // #4 = $src1
/*256072*/                OPC_RecordChild3, // #5 = $src4
/*256073*/                OPC_MoveChild3,
/*256074*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*256077*/                OPC_MoveParent,
/*256078*/                OPC_MoveParent,
/*256079*/                OPC_CheckChild2Same, 4,
/*256081*/                OPC_CheckType, MVT::v2i64,
/*256083*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*256085*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*256088*/                OPC_EmitMergeInputChains1_2,
/*256089*/                OPC_EmitNodeXForm, 22, 5, // VPTERNLOG231_imm8
/*256092*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 9/*#Ops*/, 4, 0, 1, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vpternlog:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src2, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v2i64] }:$src1, (timm:{ *:[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] } (timm:{ *:[i8] }):$src4))
/*256107*/              0, /*End of Scope*/
/*256108*/            /*Scope*/ 50, /*->256159*/
/*256109*/              OPC_MoveChild0,
/*256110*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*256113*/              OPC_RecordMemRef,
/*256114*/              OPC_RecordNode, // #1 = 'ld' chained node
/*256115*/              OPC_CheckFoldableChainNode,
/*256116*/              OPC_RecordChild1, // #2 = $src3
/*256117*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*256119*/              OPC_CheckPredicate, 9, // Predicate_load
/*256121*/              OPC_MoveParent,
/*256122*/              OPC_RecordChild1, // #3 = $src1
/*256123*/              OPC_RecordChild2, // #4 = $src2
/*256124*/              OPC_RecordChild3, // #5 = $src4
/*256125*/              OPC_MoveChild3,
/*256126*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*256129*/              OPC_MoveParent,
/*256130*/              OPC_MoveParent,
/*256131*/              OPC_CheckChild2Same, 3,
/*256133*/              OPC_CheckType, MVT::v2i64,
/*256135*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*256137*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*256140*/              OPC_EmitMergeInputChains1_1,
/*256141*/              OPC_EmitNodeXForm, 23, 5, // VPTERNLOG312_imm8
/*256144*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 9/*#Ops*/, 3, 0, 4, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vpternlog:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (timm:{ *:[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] } (timm:{ *:[i8] }):$src4))
/*256159*/            /*Scope*/ 48, /*->256208*/
/*256160*/              OPC_RecordChild0, // #1 = $src1
/*256161*/              OPC_MoveChild1,
/*256162*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*256165*/              OPC_RecordMemRef,
/*256166*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*256167*/              OPC_CheckFoldableChainNode,
/*256168*/              OPC_RecordChild1, // #3 = $src3
/*256169*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*256171*/              OPC_MoveParent,
/*256172*/              OPC_RecordChild2, // #4 = $src2
/*256173*/              OPC_RecordChild3, // #5 = $src4
/*256174*/              OPC_MoveChild3,
/*256175*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*256178*/              OPC_MoveParent,
/*256179*/              OPC_MoveParent,
/*256180*/              OPC_CheckChild2Same, 1,
/*256182*/              OPC_CheckType, MVT::v2i64,
/*256184*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*256186*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*256189*/              OPC_EmitMergeInputChains1_2,
/*256190*/              OPC_EmitNodeXForm, 20, 5, // VPTERNLOG132_imm8
/*256193*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 9/*#Ops*/, 1, 0, 4, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vpternlog:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src2, (timm:{ *:[i8] }):$src4), VR128X:{ *:[v2i64] }:$src1) - Complexity = 31
                        // Dst: (VPTERNLOGQZ128rmbik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*256208*/            /*Scope*/ 48, /*->256257*/
/*256209*/              OPC_MoveChild0,
/*256210*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*256213*/              OPC_RecordMemRef,
/*256214*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*256215*/              OPC_CheckFoldableChainNode,
/*256216*/              OPC_RecordChild1, // #2 = $src3
/*256217*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*256219*/              OPC_MoveParent,
/*256220*/              OPC_RecordChild1, // #3 = $src2
/*256221*/              OPC_RecordChild2, // #4 = $src1
/*256222*/              OPC_RecordChild3, // #5 = $src4
/*256223*/              OPC_MoveChild3,
/*256224*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*256227*/              OPC_MoveParent,
/*256228*/              OPC_MoveParent,
/*256229*/              OPC_CheckChild2Same, 4,
/*256231*/              OPC_CheckType, MVT::v2i64,
/*256233*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*256235*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*256238*/              OPC_EmitMergeInputChains1_1,
/*256239*/              OPC_EmitNodeXForm, 19, 5, // VPTERNLOG321_imm8
/*256242*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 9/*#Ops*/, 4, 0, 3, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vpternlog:{ *:[v2i64] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src1, (timm:{ *:[i8] }):$src4), VR128X:{ *:[v2i64] }:$src1) - Complexity = 31
                        // Dst: (VPTERNLOGQZ128rmbik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*256257*/            /*Scope*/ 101, /*->256359*/
/*256258*/              OPC_RecordChild0, // #1 = $src2
/*256259*/              OPC_Scope, 49, /*->256310*/ // 2 children in Scope
/*256261*/                OPC_RecordChild1, // #2 = $src1
/*256262*/                OPC_MoveChild2,
/*256263*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*256266*/                OPC_RecordMemRef,
/*256267*/                OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*256268*/                OPC_CheckFoldableChainNode,
/*256269*/                OPC_RecordChild1, // #4 = $src3
/*256270*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*256272*/                OPC_MoveParent,
/*256273*/                OPC_RecordChild3, // #5 = $src4
/*256274*/                OPC_MoveChild3,
/*256275*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*256278*/                OPC_MoveParent,
/*256279*/                OPC_MoveParent,
/*256280*/                OPC_CheckChild2Same, 2,
/*256282*/                OPC_CheckType, MVT::v2i64,
/*256284*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*256286*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*256289*/                OPC_EmitMergeInputChains, 1, 3, 
/*256292*/                OPC_EmitNodeXForm, 21, 5, // VPTERNLOG213_imm8
/*256295*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 9/*#Ops*/, 2, 0, 1, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vpternlog:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src1, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src4), VR128X:{ *:[v2i64] }:$src1) - Complexity = 31
                          // Dst: (VPTERNLOGQZ128rmbik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG213_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*256310*/              /*Scope*/ 47, /*->256358*/
/*256311*/                OPC_MoveChild1,
/*256312*/                OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*256315*/                OPC_RecordMemRef,
/*256316*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*256317*/                OPC_CheckFoldableChainNode,
/*256318*/                OPC_RecordChild1, // #3 = $src3
/*256319*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*256321*/                OPC_MoveParent,
/*256322*/                OPC_RecordChild2, // #4 = $src1
/*256323*/                OPC_RecordChild3, // #5 = $src4
/*256324*/                OPC_MoveChild3,
/*256325*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*256328*/                OPC_MoveParent,
/*256329*/                OPC_MoveParent,
/*256330*/                OPC_CheckChild2Same, 4,
/*256332*/                OPC_CheckType, MVT::v2i64,
/*256334*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*256336*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*256339*/                OPC_EmitMergeInputChains1_2,
/*256340*/                OPC_EmitNodeXForm, 22, 5, // VPTERNLOG231_imm8
/*256343*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 9/*#Ops*/, 4, 0, 1, 6, 7, 8, 9, 10, 11, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vpternlog:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src2, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src1, (timm:{ *:[i8] }):$src4), VR128X:{ *:[v2i64] }:$src1) - Complexity = 31
                          // Dst: (VPTERNLOGQZ128rmbik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG231_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*256358*/              0, /*End of Scope*/
/*256359*/            /*Scope*/ 48, /*->256408*/
/*256360*/              OPC_MoveChild0,
/*256361*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*256364*/              OPC_RecordMemRef,
/*256365*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*256366*/              OPC_CheckFoldableChainNode,
/*256367*/              OPC_RecordChild1, // #2 = $src3
/*256368*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*256370*/              OPC_MoveParent,
/*256371*/              OPC_RecordChild1, // #3 = $src1
/*256372*/              OPC_RecordChild2, // #4 = $src2
/*256373*/              OPC_RecordChild3, // #5 = $src4
/*256374*/              OPC_MoveChild3,
/*256375*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*256378*/              OPC_MoveParent,
/*256379*/              OPC_MoveParent,
/*256380*/              OPC_CheckChild2Same, 3,
/*256382*/              OPC_CheckType, MVT::v2i64,
/*256384*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*256386*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #6 #7 #8 #9 #10
/*256389*/              OPC_EmitMergeInputChains1_1,
/*256390*/              OPC_EmitNodeXForm, 23, 5, // VPTERNLOG312_imm8
/*256393*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 9/*#Ops*/, 3, 0, 4, 6, 7, 8, 9, 10, 11, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vpternlog:{ *:[v2i64] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (timm:{ *:[i8] }):$src4), VR128X:{ *:[v2i64] }:$src1) - Complexity = 31
                        // Dst: (VPTERNLOGQZ128rmbik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG312_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*256408*/            0, /*End of Scope*/
/*256409*/          /*SwitchOpcode*/ 18|128,1/*146*/, TARGET_VAL(X86ISD::VSHLD),// ->256559
/*256413*/            OPC_RecordChild0, // #1 = $src1
/*256414*/            OPC_MoveChild1,
/*256415*/            OPC_SwitchOpcode /*2 cases */, 69, TARGET_VAL(ISD::LOAD),// ->256488
/*256419*/              OPC_RecordMemRef,
/*256420*/              OPC_RecordNode, // #2 = 'ld' chained node
/*256421*/              OPC_CheckFoldableChainNode,
/*256422*/              OPC_RecordChild1, // #3 = $src2
/*256423*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*256425*/              OPC_CheckPredicate, 9, // Predicate_load
/*256427*/              OPC_MoveParent,
/*256428*/              OPC_RecordChild2, // #4 = $src3
/*256429*/              OPC_MoveChild2,
/*256430*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*256433*/              OPC_MoveParent,
/*256434*/              OPC_MoveParent,
/*256435*/              OPC_Scope, 25, /*->256462*/ // 2 children in Scope
/*256437*/                OPC_MoveChild2,
/*256438*/                OPC_CheckImmAllZerosV,
/*256439*/                OPC_MoveParent,
/*256440*/                OPC_CheckType, MVT::v2i64,
/*256442*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*256444*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*256447*/                OPC_EmitMergeInputChains1_2,
/*256448*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDQZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86VShld:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v2i64] }) - Complexity = 35
                          // Dst: (VPSHLDQZ128rmikz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*256462*/              /*Scope*/ 24, /*->256487*/
/*256463*/                OPC_RecordChild2, // #5 = $src0
/*256464*/                OPC_CheckType, MVT::v2i64,
/*256466*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*256468*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*256471*/                OPC_EmitMergeInputChains1_2,
/*256472*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDQZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86VShld:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                          // Dst: (VPSHLDQZ128rmik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*256487*/              0, /*End of Scope*/
/*256488*/            /*SwitchOpcode*/ 67, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->256558
/*256491*/              OPC_RecordMemRef,
/*256492*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*256493*/              OPC_CheckFoldableChainNode,
/*256494*/              OPC_RecordChild1, // #3 = $src2
/*256495*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*256497*/              OPC_MoveParent,
/*256498*/              OPC_RecordChild2, // #4 = $src3
/*256499*/              OPC_MoveChild2,
/*256500*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*256503*/              OPC_MoveParent,
/*256504*/              OPC_MoveParent,
/*256505*/              OPC_Scope, 25, /*->256532*/ // 2 children in Scope
/*256507*/                OPC_MoveChild2,
/*256508*/                OPC_CheckImmAllZerosV,
/*256509*/                OPC_MoveParent,
/*256510*/                OPC_CheckType, MVT::v2i64,
/*256512*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*256514*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*256517*/                OPC_EmitMergeInputChains1_2,
/*256518*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDQZ128rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86VShld:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v2i64] }) - Complexity = 35
                          // Dst: (VPSHLDQZ128rmbikz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*256532*/              /*Scope*/ 24, /*->256557*/
/*256533*/                OPC_RecordChild2, // #5 = $src0
/*256534*/                OPC_CheckType, MVT::v2i64,
/*256536*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*256538*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*256541*/                OPC_EmitMergeInputChains1_2,
/*256542*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDQZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86VShld:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src3), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                          // Dst: (VPSHLDQZ128rmbik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*256557*/              0, /*End of Scope*/
/*256558*/            0, // EndSwitchOpcode
/*256559*/          /*SwitchOpcode*/ 18|128,1/*146*/, TARGET_VAL(X86ISD::VSHRD),// ->256709
/*256563*/            OPC_RecordChild0, // #1 = $src1
/*256564*/            OPC_MoveChild1,
/*256565*/            OPC_SwitchOpcode /*2 cases */, 69, TARGET_VAL(ISD::LOAD),// ->256638
/*256569*/              OPC_RecordMemRef,
/*256570*/              OPC_RecordNode, // #2 = 'ld' chained node
/*256571*/              OPC_CheckFoldableChainNode,
/*256572*/              OPC_RecordChild1, // #3 = $src2
/*256573*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*256575*/              OPC_CheckPredicate, 9, // Predicate_load
/*256577*/              OPC_MoveParent,
/*256578*/              OPC_RecordChild2, // #4 = $src3
/*256579*/              OPC_MoveChild2,
/*256580*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*256583*/              OPC_MoveParent,
/*256584*/              OPC_MoveParent,
/*256585*/              OPC_Scope, 25, /*->256612*/ // 2 children in Scope
/*256587*/                OPC_MoveChild2,
/*256588*/                OPC_CheckImmAllZerosV,
/*256589*/                OPC_MoveParent,
/*256590*/                OPC_CheckType, MVT::v2i64,
/*256592*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*256594*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*256597*/                OPC_EmitMergeInputChains1_2,
/*256598*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDQZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86VShrd:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v2i64] }) - Complexity = 35
                          // Dst: (VPSHRDQZ128rmikz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*256612*/              /*Scope*/ 24, /*->256637*/
/*256613*/                OPC_RecordChild2, // #5 = $src0
/*256614*/                OPC_CheckType, MVT::v2i64,
/*256616*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*256618*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*256621*/                OPC_EmitMergeInputChains1_2,
/*256622*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDQZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86VShrd:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                          // Dst: (VPSHRDQZ128rmik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*256637*/              0, /*End of Scope*/
/*256638*/            /*SwitchOpcode*/ 67, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->256708
/*256641*/              OPC_RecordMemRef,
/*256642*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*256643*/              OPC_CheckFoldableChainNode,
/*256644*/              OPC_RecordChild1, // #3 = $src2
/*256645*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*256647*/              OPC_MoveParent,
/*256648*/              OPC_RecordChild2, // #4 = $src3
/*256649*/              OPC_MoveChild2,
/*256650*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*256653*/              OPC_MoveParent,
/*256654*/              OPC_MoveParent,
/*256655*/              OPC_Scope, 25, /*->256682*/ // 2 children in Scope
/*256657*/                OPC_MoveChild2,
/*256658*/                OPC_CheckImmAllZerosV,
/*256659*/                OPC_MoveParent,
/*256660*/                OPC_CheckType, MVT::v2i64,
/*256662*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*256664*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*256667*/                OPC_EmitMergeInputChains1_2,
/*256668*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDQZ128rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86VShrd:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v2i64] }) - Complexity = 35
                          // Dst: (VPSHRDQZ128rmbikz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*256682*/              /*Scope*/ 24, /*->256707*/
/*256683*/                OPC_RecordChild2, // #5 = $src0
/*256684*/                OPC_CheckType, MVT::v2i64,
/*256686*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*256688*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*256691*/                OPC_EmitMergeInputChains1_2,
/*256692*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDQZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86VShrd:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src3), VR128X:{ *:[v2i64] }:$src0) - Complexity = 31
                          // Dst: (VPSHRDQZ128rmbik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*256707*/              0, /*End of Scope*/
/*256708*/            0, // EndSwitchOpcode
/*256709*/          /*SwitchOpcode*/ 69|128,1/*197*/, TARGET_VAL(X86ISD::VPERMV3),// ->256910
/*256713*/            OPC_RecordChild0, // #1 = $src1
/*256714*/            OPC_RecordChild1, // #2 = $src2
/*256715*/            OPC_MoveChild2,
/*256716*/            OPC_SwitchOpcode /*2 cases */, 94, TARGET_VAL(ISD::LOAD),// ->256814
/*256720*/              OPC_RecordMemRef,
/*256721*/              OPC_RecordNode, // #3 = 'ld' chained node
/*256722*/              OPC_CheckFoldableChainNode,
/*256723*/              OPC_RecordChild1, // #4 = $src3
/*256724*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*256726*/              OPC_CheckPredicate, 9, // Predicate_load
/*256728*/              OPC_MoveParent,
/*256729*/              OPC_MoveParent,
/*256730*/              OPC_Scope, 27, /*->256759*/ // 3 children in Scope
/*256732*/                OPC_MoveChild2,
/*256733*/                OPC_CheckImmAllZerosV,
/*256734*/                OPC_MoveParent,
/*256735*/                OPC_CheckType, MVT::v2i64,
/*256737*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*256739*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*256742*/                OPC_EmitMergeInputChains, 1, 3, 
/*256745*/                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>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPERMT2Q128rmkz:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*256759*/              /*Scope*/ 26, /*->256786*/
/*256760*/                OPC_CheckChild2Same, 2,
/*256762*/                OPC_CheckType, MVT::v2i64,
/*256764*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*256766*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*256769*/                OPC_EmitMergeInputChains, 1, 3, 
/*256772*/                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>>), VR128X:{ *:[v2i64] }:$src1) - Complexity = 28
                          // Dst: (VPERMI2Q128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*256786*/              /*Scope*/ 26, /*->256813*/
/*256787*/                OPC_CheckChild2Same, 1,
/*256789*/                OPC_CheckType, MVT::v2i64,
/*256791*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*256793*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*256796*/                OPC_EmitMergeInputChains, 1, 3, 
/*256799*/                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>>), VR128X:{ *:[v2i64] }:$src1) - Complexity = 28
                          // Dst: (VPERMT2Q128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*256813*/              0, /*End of Scope*/
/*256814*/            /*SwitchOpcode*/ 92, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->256909
/*256817*/              OPC_RecordMemRef,
/*256818*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*256819*/              OPC_CheckFoldableChainNode,
/*256820*/              OPC_RecordChild1, // #4 = $src3
/*256821*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*256823*/              OPC_MoveParent,
/*256824*/              OPC_MoveParent,
/*256825*/              OPC_Scope, 27, /*->256854*/ // 3 children in Scope
/*256827*/                OPC_MoveChild2,
/*256828*/                OPC_CheckImmAllZerosV,
/*256829*/                OPC_MoveParent,
/*256830*/                OPC_CheckType, MVT::v2i64,
/*256832*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*256834*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*256837*/                OPC_EmitMergeInputChains, 1, 3, 
/*256840*/                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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPERMT2Q128rmbkz:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*256854*/              /*Scope*/ 26, /*->256881*/
/*256855*/                OPC_CheckChild2Same, 2,
/*256857*/                OPC_CheckType, MVT::v2i64,
/*256859*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*256861*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*256864*/                OPC_EmitMergeInputChains, 1, 3, 
/*256867*/                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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2i64] }:$src1) - Complexity = 28
                          // Dst: (VPERMI2Q128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*256881*/              /*Scope*/ 26, /*->256908*/
/*256882*/                OPC_CheckChild2Same, 1,
/*256884*/                OPC_CheckType, MVT::v2i64,
/*256886*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*256888*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*256891*/                OPC_EmitMergeInputChains, 1, 3, 
/*256894*/                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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2i64] }:$src1) - Complexity = 28
                          // Dst: (VPERMT2Q128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*256908*/              0, /*End of Scope*/
/*256909*/            0, // EndSwitchOpcode
/*256910*/          /*SwitchOpcode*/ 52|128,2/*308*/, TARGET_VAL(ISD::ADD),// ->257222
/*256914*/            OPC_Scope, 76, /*->256992*/ // 4 children in Scope
/*256916*/              OPC_RecordChild0, // #1 = $src1
/*256917*/              OPC_MoveChild1,
/*256918*/              OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->256956
/*256922*/                OPC_RecordMemRef,
/*256923*/                OPC_RecordNode, // #2 = 'ld' chained node
/*256924*/                OPC_CheckFoldableChainNode,
/*256925*/                OPC_RecordChild1, // #3 = $src2
/*256926*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*256928*/                OPC_CheckPredicate, 9, // Predicate_load
/*256930*/                OPC_MoveParent,
/*256931*/                OPC_MoveParent,
/*256932*/                OPC_MoveChild2,
/*256933*/                OPC_CheckImmAllZerosV,
/*256934*/                OPC_MoveParent,
/*256935*/                OPC_CheckType, MVT::v2i64,
/*256937*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*256939*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*256942*/                OPC_EmitMergeInputChains1_2,
/*256943*/                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>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPADDQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*256956*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->256991
/*256959*/                OPC_RecordMemRef,
/*256960*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*256961*/                OPC_CheckFoldableChainNode,
/*256962*/                OPC_RecordChild1, // #3 = $src2
/*256963*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*256965*/                OPC_MoveParent,
/*256966*/                OPC_MoveParent,
/*256967*/                OPC_MoveChild2,
/*256968*/                OPC_CheckImmAllZerosV,
/*256969*/                OPC_MoveParent,
/*256970*/                OPC_CheckType, MVT::v2i64,
/*256972*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*256974*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*256977*/                OPC_EmitMergeInputChains1_2,
/*256978*/                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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPADDQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*256991*/              0, // EndSwitchOpcode
/*256992*/            /*Scope*/ 77, /*->257070*/
/*256993*/              OPC_MoveChild0,
/*256994*/              OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->257033
/*256998*/                OPC_RecordMemRef,
/*256999*/                OPC_RecordNode, // #1 = 'ld' chained node
/*257000*/                OPC_CheckFoldableChainNode,
/*257001*/                OPC_RecordChild1, // #2 = $src2
/*257002*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*257004*/                OPC_CheckPredicate, 9, // Predicate_load
/*257006*/                OPC_MoveParent,
/*257007*/                OPC_RecordChild1, // #3 = $src1
/*257008*/                OPC_MoveParent,
/*257009*/                OPC_MoveChild2,
/*257010*/                OPC_CheckImmAllZerosV,
/*257011*/                OPC_MoveParent,
/*257012*/                OPC_CheckType, MVT::v2i64,
/*257014*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*257016*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*257019*/                OPC_EmitMergeInputChains1_1,
/*257020*/                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>>, VR128X:{ *:[v2i64] }:$src1), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPADDQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*257033*/              /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->257069
/*257036*/                OPC_RecordMemRef,
/*257037*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*257038*/                OPC_CheckFoldableChainNode,
/*257039*/                OPC_RecordChild1, // #2 = $src2
/*257040*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*257042*/                OPC_MoveParent,
/*257043*/                OPC_RecordChild1, // #3 = $src1
/*257044*/                OPC_MoveParent,
/*257045*/                OPC_MoveChild2,
/*257046*/                OPC_CheckImmAllZerosV,
/*257047*/                OPC_MoveParent,
/*257048*/                OPC_CheckType, MVT::v2i64,
/*257050*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*257052*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*257055*/                OPC_EmitMergeInputChains1_1,
/*257056*/                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] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src1), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPADDQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*257069*/              0, // EndSwitchOpcode
/*257070*/            /*Scope*/ 74, /*->257145*/
/*257071*/              OPC_RecordChild0, // #1 = $src1
/*257072*/              OPC_MoveChild1,
/*257073*/              OPC_SwitchOpcode /*2 cases */, 33, TARGET_VAL(ISD::LOAD),// ->257110
/*257077*/                OPC_RecordMemRef,
/*257078*/                OPC_RecordNode, // #2 = 'ld' chained node
/*257079*/                OPC_CheckFoldableChainNode,
/*257080*/                OPC_RecordChild1, // #3 = $src2
/*257081*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*257083*/                OPC_CheckPredicate, 9, // Predicate_load
/*257085*/                OPC_MoveParent,
/*257086*/                OPC_MoveParent,
/*257087*/                OPC_RecordChild2, // #4 = $src0
/*257088*/                OPC_CheckType, MVT::v2i64,
/*257090*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*257092*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*257095*/                OPC_EmitMergeInputChains1_2,
/*257096*/                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>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPADDQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*257110*/              /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->257144
/*257113*/                OPC_RecordMemRef,
/*257114*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*257115*/                OPC_CheckFoldableChainNode,
/*257116*/                OPC_RecordChild1, // #3 = $src2
/*257117*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*257119*/                OPC_MoveParent,
/*257120*/                OPC_MoveParent,
/*257121*/                OPC_RecordChild2, // #4 = $src0
/*257122*/                OPC_CheckType, MVT::v2i64,
/*257124*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*257126*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*257129*/                OPC_EmitMergeInputChains1_2,
/*257130*/                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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPADDQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*257144*/              0, // EndSwitchOpcode
/*257145*/            /*Scope*/ 75, /*->257221*/
/*257146*/              OPC_MoveChild0,
/*257147*/              OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->257185
/*257151*/                OPC_RecordMemRef,
/*257152*/                OPC_RecordNode, // #1 = 'ld' chained node
/*257153*/                OPC_CheckFoldableChainNode,
/*257154*/                OPC_RecordChild1, // #2 = $src2
/*257155*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*257157*/                OPC_CheckPredicate, 9, // Predicate_load
/*257159*/                OPC_MoveParent,
/*257160*/                OPC_RecordChild1, // #3 = $src1
/*257161*/                OPC_MoveParent,
/*257162*/                OPC_RecordChild2, // #4 = $src0
/*257163*/                OPC_CheckType, MVT::v2i64,
/*257165*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*257167*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*257170*/                OPC_EmitMergeInputChains1_1,
/*257171*/                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>>, VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPADDQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*257185*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->257220
/*257188*/                OPC_RecordMemRef,
/*257189*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*257190*/                OPC_CheckFoldableChainNode,
/*257191*/                OPC_RecordChild1, // #2 = $src2
/*257192*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*257194*/                OPC_MoveParent,
/*257195*/                OPC_RecordChild1, // #3 = $src1
/*257196*/                OPC_MoveParent,
/*257197*/                OPC_RecordChild2, // #4 = $src0
/*257198*/                OPC_CheckType, MVT::v2i64,
/*257200*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*257202*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*257205*/                OPC_EmitMergeInputChains1_1,
/*257206*/                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] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPADDQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*257220*/              0, // EndSwitchOpcode
/*257221*/            0, /*End of Scope*/
/*257222*/          /*SwitchOpcode*/ 2|128,1/*130*/, TARGET_VAL(ISD::SUB),// ->257356
/*257226*/            OPC_RecordChild0, // #1 = $src1
/*257227*/            OPC_MoveChild1,
/*257228*/            OPC_SwitchOpcode /*2 cases */, 61, TARGET_VAL(ISD::LOAD),// ->257293
/*257232*/              OPC_RecordMemRef,
/*257233*/              OPC_RecordNode, // #2 = 'ld' chained node
/*257234*/              OPC_CheckFoldableChainNode,
/*257235*/              OPC_RecordChild1, // #3 = $src2
/*257236*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*257238*/              OPC_CheckPredicate, 9, // Predicate_load
/*257240*/              OPC_MoveParent,
/*257241*/              OPC_MoveParent,
/*257242*/              OPC_Scope, 24, /*->257268*/ // 2 children in Scope
/*257244*/                OPC_MoveChild2,
/*257245*/                OPC_CheckImmAllZerosV,
/*257246*/                OPC_MoveParent,
/*257247*/                OPC_CheckType, MVT::v2i64,
/*257249*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*257251*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*257254*/                OPC_EmitMergeInputChains1_2,
/*257255*/                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>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPSUBQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*257268*/              /*Scope*/ 23, /*->257292*/
/*257269*/                OPC_RecordChild2, // #4 = $src0
/*257270*/                OPC_CheckType, MVT::v2i64,
/*257272*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*257274*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*257277*/                OPC_EmitMergeInputChains1_2,
/*257278*/                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>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPSUBQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*257292*/              0, /*End of Scope*/
/*257293*/            /*SwitchOpcode*/ 59, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->257355
/*257296*/              OPC_RecordMemRef,
/*257297*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*257298*/              OPC_CheckFoldableChainNode,
/*257299*/              OPC_RecordChild1, // #3 = $src2
/*257300*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*257302*/              OPC_MoveParent,
/*257303*/              OPC_MoveParent,
/*257304*/              OPC_Scope, 24, /*->257330*/ // 2 children in Scope
/*257306*/                OPC_MoveChild2,
/*257307*/                OPC_CheckImmAllZerosV,
/*257308*/                OPC_MoveParent,
/*257309*/                OPC_CheckType, MVT::v2i64,
/*257311*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*257313*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*257316*/                OPC_EmitMergeInputChains1_2,
/*257317*/                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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPSUBQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*257330*/              /*Scope*/ 23, /*->257354*/
/*257331*/                OPC_RecordChild2, // #4 = $src0
/*257332*/                OPC_CheckType, MVT::v2i64,
/*257334*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*257336*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*257339*/                OPC_EmitMergeInputChains1_2,
/*257340*/                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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPSUBQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*257354*/              0, /*End of Scope*/
/*257355*/            0, // EndSwitchOpcode
/*257356*/          /*SwitchOpcode*/ 52|128,2/*308*/, TARGET_VAL(ISD::MUL),// ->257668
/*257360*/            OPC_Scope, 76, /*->257438*/ // 4 children in Scope
/*257362*/              OPC_RecordChild0, // #1 = $src1
/*257363*/              OPC_MoveChild1,
/*257364*/              OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->257402
/*257368*/                OPC_RecordMemRef,
/*257369*/                OPC_RecordNode, // #2 = 'ld' chained node
/*257370*/                OPC_CheckFoldableChainNode,
/*257371*/                OPC_RecordChild1, // #3 = $src2
/*257372*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*257374*/                OPC_CheckPredicate, 9, // Predicate_load
/*257376*/                OPC_MoveParent,
/*257377*/                OPC_MoveParent,
/*257378*/                OPC_MoveChild2,
/*257379*/                OPC_CheckImmAllZerosV,
/*257380*/                OPC_MoveParent,
/*257381*/                OPC_CheckType, MVT::v2i64,
/*257383*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*257385*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*257388*/                OPC_EmitMergeInputChains1_2,
/*257389*/                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>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPMULLQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*257402*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->257437
/*257405*/                OPC_RecordMemRef,
/*257406*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*257407*/                OPC_CheckFoldableChainNode,
/*257408*/                OPC_RecordChild1, // #3 = $src2
/*257409*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*257411*/                OPC_MoveParent,
/*257412*/                OPC_MoveParent,
/*257413*/                OPC_MoveChild2,
/*257414*/                OPC_CheckImmAllZerosV,
/*257415*/                OPC_MoveParent,
/*257416*/                OPC_CheckType, MVT::v2i64,
/*257418*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*257420*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*257423*/                OPC_EmitMergeInputChains1_2,
/*257424*/                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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPMULLQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*257437*/              0, // EndSwitchOpcode
/*257438*/            /*Scope*/ 77, /*->257516*/
/*257439*/              OPC_MoveChild0,
/*257440*/              OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->257479
/*257444*/                OPC_RecordMemRef,
/*257445*/                OPC_RecordNode, // #1 = 'ld' chained node
/*257446*/                OPC_CheckFoldableChainNode,
/*257447*/                OPC_RecordChild1, // #2 = $src2
/*257448*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*257450*/                OPC_CheckPredicate, 9, // Predicate_load
/*257452*/                OPC_MoveParent,
/*257453*/                OPC_RecordChild1, // #3 = $src1
/*257454*/                OPC_MoveParent,
/*257455*/                OPC_MoveChild2,
/*257456*/                OPC_CheckImmAllZerosV,
/*257457*/                OPC_MoveParent,
/*257458*/                OPC_CheckType, MVT::v2i64,
/*257460*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*257462*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*257465*/                OPC_EmitMergeInputChains1_1,
/*257466*/                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>>, VR128X:{ *:[v2i64] }:$src1), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPMULLQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*257479*/              /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->257515
/*257482*/                OPC_RecordMemRef,
/*257483*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*257484*/                OPC_CheckFoldableChainNode,
/*257485*/                OPC_RecordChild1, // #2 = $src2
/*257486*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*257488*/                OPC_MoveParent,
/*257489*/                OPC_RecordChild1, // #3 = $src1
/*257490*/                OPC_MoveParent,
/*257491*/                OPC_MoveChild2,
/*257492*/                OPC_CheckImmAllZerosV,
/*257493*/                OPC_MoveParent,
/*257494*/                OPC_CheckType, MVT::v2i64,
/*257496*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*257498*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*257501*/                OPC_EmitMergeInputChains1_1,
/*257502*/                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] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src1), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPMULLQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*257515*/              0, // EndSwitchOpcode
/*257516*/            /*Scope*/ 74, /*->257591*/
/*257517*/              OPC_RecordChild0, // #1 = $src1
/*257518*/              OPC_MoveChild1,
/*257519*/              OPC_SwitchOpcode /*2 cases */, 33, TARGET_VAL(ISD::LOAD),// ->257556
/*257523*/                OPC_RecordMemRef,
/*257524*/                OPC_RecordNode, // #2 = 'ld' chained node
/*257525*/                OPC_CheckFoldableChainNode,
/*257526*/                OPC_RecordChild1, // #3 = $src2
/*257527*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*257529*/                OPC_CheckPredicate, 9, // Predicate_load
/*257531*/                OPC_MoveParent,
/*257532*/                OPC_MoveParent,
/*257533*/                OPC_RecordChild2, // #4 = $src0
/*257534*/                OPC_CheckType, MVT::v2i64,
/*257536*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*257538*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*257541*/                OPC_EmitMergeInputChains1_2,
/*257542*/                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>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPMULLQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*257556*/              /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->257590
/*257559*/                OPC_RecordMemRef,
/*257560*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*257561*/                OPC_CheckFoldableChainNode,
/*257562*/                OPC_RecordChild1, // #3 = $src2
/*257563*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*257565*/                OPC_MoveParent,
/*257566*/                OPC_MoveParent,
/*257567*/                OPC_RecordChild2, // #4 = $src0
/*257568*/                OPC_CheckType, MVT::v2i64,
/*257570*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*257572*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*257575*/                OPC_EmitMergeInputChains1_2,
/*257576*/                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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPMULLQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*257590*/              0, // EndSwitchOpcode
/*257591*/            /*Scope*/ 75, /*->257667*/
/*257592*/              OPC_MoveChild0,
/*257593*/              OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->257631
/*257597*/                OPC_RecordMemRef,
/*257598*/                OPC_RecordNode, // #1 = 'ld' chained node
/*257599*/                OPC_CheckFoldableChainNode,
/*257600*/                OPC_RecordChild1, // #2 = $src2
/*257601*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*257603*/                OPC_CheckPredicate, 9, // Predicate_load
/*257605*/                OPC_MoveParent,
/*257606*/                OPC_RecordChild1, // #3 = $src1
/*257607*/                OPC_MoveParent,
/*257608*/                OPC_RecordChild2, // #4 = $src0
/*257609*/                OPC_CheckType, MVT::v2i64,
/*257611*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*257613*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*257616*/                OPC_EmitMergeInputChains1_1,
/*257617*/                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>>, VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPMULLQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*257631*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->257666
/*257634*/                OPC_RecordMemRef,
/*257635*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*257636*/                OPC_CheckFoldableChainNode,
/*257637*/                OPC_RecordChild1, // #2 = $src2
/*257638*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*257640*/                OPC_MoveParent,
/*257641*/                OPC_RecordChild1, // #3 = $src1
/*257642*/                OPC_MoveParent,
/*257643*/                OPC_RecordChild2, // #4 = $src0
/*257644*/                OPC_CheckType, MVT::v2i64,
/*257646*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*257648*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*257651*/                OPC_EmitMergeInputChains1_1,
/*257652*/                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] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPMULLQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*257666*/              0, // EndSwitchOpcode
/*257667*/            0, /*End of Scope*/
/*257668*/          /*SwitchOpcode*/ 52|128,2/*308*/, TARGET_VAL(X86ISD::PMULDQ),// ->257980
/*257672*/            OPC_Scope, 76, /*->257750*/ // 4 children in Scope
/*257674*/              OPC_RecordChild0, // #1 = $src1
/*257675*/              OPC_MoveChild1,
/*257676*/              OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->257714
/*257680*/                OPC_RecordMemRef,
/*257681*/                OPC_RecordNode, // #2 = 'ld' chained node
/*257682*/                OPC_CheckFoldableChainNode,
/*257683*/                OPC_RecordChild1, // #3 = $src2
/*257684*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*257686*/                OPC_CheckPredicate, 9, // Predicate_load
/*257688*/                OPC_MoveParent,
/*257689*/                OPC_MoveParent,
/*257690*/                OPC_MoveChild2,
/*257691*/                OPC_CheckImmAllZerosV,
/*257692*/                OPC_MoveParent,
/*257693*/                OPC_CheckType, MVT::v2i64,
/*257695*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*257697*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*257700*/                OPC_EmitMergeInputChains1_2,
/*257701*/                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>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPMULDQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*257714*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->257749
/*257717*/                OPC_RecordMemRef,
/*257718*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*257719*/                OPC_CheckFoldableChainNode,
/*257720*/                OPC_RecordChild1, // #3 = $src2
/*257721*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*257723*/                OPC_MoveParent,
/*257724*/                OPC_MoveParent,
/*257725*/                OPC_MoveChild2,
/*257726*/                OPC_CheckImmAllZerosV,
/*257727*/                OPC_MoveParent,
/*257728*/                OPC_CheckType, MVT::v2i64,
/*257730*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*257732*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*257735*/                OPC_EmitMergeInputChains1_2,
/*257736*/                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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPMULDQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*257749*/              0, // EndSwitchOpcode
/*257750*/            /*Scope*/ 77, /*->257828*/
/*257751*/              OPC_MoveChild0,
/*257752*/              OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->257791
/*257756*/                OPC_RecordMemRef,
/*257757*/                OPC_RecordNode, // #1 = 'ld' chained node
/*257758*/                OPC_CheckFoldableChainNode,
/*257759*/                OPC_RecordChild1, // #2 = $src2
/*257760*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*257762*/                OPC_CheckPredicate, 9, // Predicate_load
/*257764*/                OPC_MoveParent,
/*257765*/                OPC_RecordChild1, // #3 = $src1
/*257766*/                OPC_MoveParent,
/*257767*/                OPC_MoveChild2,
/*257768*/                OPC_CheckImmAllZerosV,
/*257769*/                OPC_MoveParent,
/*257770*/                OPC_CheckType, MVT::v2i64,
/*257772*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*257774*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*257777*/                OPC_EmitMergeInputChains1_1,
/*257778*/                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>>, VR128X:{ *:[v2i64] }:$src1), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPMULDQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*257791*/              /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->257827
/*257794*/                OPC_RecordMemRef,
/*257795*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*257796*/                OPC_CheckFoldableChainNode,
/*257797*/                OPC_RecordChild1, // #2 = $src2
/*257798*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*257800*/                OPC_MoveParent,
/*257801*/                OPC_RecordChild1, // #3 = $src1
/*257802*/                OPC_MoveParent,
/*257803*/                OPC_MoveChild2,
/*257804*/                OPC_CheckImmAllZerosV,
/*257805*/                OPC_MoveParent,
/*257806*/                OPC_CheckType, MVT::v2i64,
/*257808*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*257810*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*257813*/                OPC_EmitMergeInputChains1_1,
/*257814*/                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] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src1), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPMULDQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*257827*/              0, // EndSwitchOpcode
/*257828*/            /*Scope*/ 74, /*->257903*/
/*257829*/              OPC_RecordChild0, // #1 = $src1
/*257830*/              OPC_MoveChild1,
/*257831*/              OPC_SwitchOpcode /*2 cases */, 33, TARGET_VAL(ISD::LOAD),// ->257868
/*257835*/                OPC_RecordMemRef,
/*257836*/                OPC_RecordNode, // #2 = 'ld' chained node
/*257837*/                OPC_CheckFoldableChainNode,
/*257838*/                OPC_RecordChild1, // #3 = $src2
/*257839*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*257841*/                OPC_CheckPredicate, 9, // Predicate_load
/*257843*/                OPC_MoveParent,
/*257844*/                OPC_MoveParent,
/*257845*/                OPC_RecordChild2, // #4 = $src0
/*257846*/                OPC_CheckType, MVT::v2i64,
/*257848*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*257850*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*257853*/                OPC_EmitMergeInputChains1_2,
/*257854*/                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>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPMULDQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*257868*/              /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->257902
/*257871*/                OPC_RecordMemRef,
/*257872*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*257873*/                OPC_CheckFoldableChainNode,
/*257874*/                OPC_RecordChild1, // #3 = $src2
/*257875*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*257877*/                OPC_MoveParent,
/*257878*/                OPC_MoveParent,
/*257879*/                OPC_RecordChild2, // #4 = $src0
/*257880*/                OPC_CheckType, MVT::v2i64,
/*257882*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*257884*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*257887*/                OPC_EmitMergeInputChains1_2,
/*257888*/                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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPMULDQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*257902*/              0, // EndSwitchOpcode
/*257903*/            /*Scope*/ 75, /*->257979*/
/*257904*/              OPC_MoveChild0,
/*257905*/              OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->257943
/*257909*/                OPC_RecordMemRef,
/*257910*/                OPC_RecordNode, // #1 = 'ld' chained node
/*257911*/                OPC_CheckFoldableChainNode,
/*257912*/                OPC_RecordChild1, // #2 = $src2
/*257913*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*257915*/                OPC_CheckPredicate, 9, // Predicate_load
/*257917*/                OPC_MoveParent,
/*257918*/                OPC_RecordChild1, // #3 = $src1
/*257919*/                OPC_MoveParent,
/*257920*/                OPC_RecordChild2, // #4 = $src0
/*257921*/                OPC_CheckType, MVT::v2i64,
/*257923*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*257925*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*257928*/                OPC_EmitMergeInputChains1_1,
/*257929*/                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>>, VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPMULDQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*257943*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->257978
/*257946*/                OPC_RecordMemRef,
/*257947*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*257948*/                OPC_CheckFoldableChainNode,
/*257949*/                OPC_RecordChild1, // #2 = $src2
/*257950*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*257952*/                OPC_MoveParent,
/*257953*/                OPC_RecordChild1, // #3 = $src1
/*257954*/                OPC_MoveParent,
/*257955*/                OPC_RecordChild2, // #4 = $src0
/*257956*/                OPC_CheckType, MVT::v2i64,
/*257958*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*257960*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*257963*/                OPC_EmitMergeInputChains1_1,
/*257964*/                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] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPMULDQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*257978*/              0, // EndSwitchOpcode
/*257979*/            0, /*End of Scope*/
/*257980*/          /*SwitchOpcode*/ 52|128,2/*308*/, TARGET_VAL(X86ISD::PMULUDQ),// ->258292
/*257984*/            OPC_Scope, 76, /*->258062*/ // 4 children in Scope
/*257986*/              OPC_RecordChild0, // #1 = $src1
/*257987*/              OPC_MoveChild1,
/*257988*/              OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->258026
/*257992*/                OPC_RecordMemRef,
/*257993*/                OPC_RecordNode, // #2 = 'ld' chained node
/*257994*/                OPC_CheckFoldableChainNode,
/*257995*/                OPC_RecordChild1, // #3 = $src2
/*257996*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*257998*/                OPC_CheckPredicate, 9, // Predicate_load
/*258000*/                OPC_MoveParent,
/*258001*/                OPC_MoveParent,
/*258002*/                OPC_MoveChild2,
/*258003*/                OPC_CheckImmAllZerosV,
/*258004*/                OPC_MoveParent,
/*258005*/                OPC_CheckType, MVT::v2i64,
/*258007*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*258009*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*258012*/                OPC_EmitMergeInputChains1_2,
/*258013*/                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>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPMULUDQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*258026*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->258061
/*258029*/                OPC_RecordMemRef,
/*258030*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*258031*/                OPC_CheckFoldableChainNode,
/*258032*/                OPC_RecordChild1, // #3 = $src2
/*258033*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*258035*/                OPC_MoveParent,
/*258036*/                OPC_MoveParent,
/*258037*/                OPC_MoveChild2,
/*258038*/                OPC_CheckImmAllZerosV,
/*258039*/                OPC_MoveParent,
/*258040*/                OPC_CheckType, MVT::v2i64,
/*258042*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*258044*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*258047*/                OPC_EmitMergeInputChains1_2,
/*258048*/                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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPMULUDQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*258061*/              0, // EndSwitchOpcode
/*258062*/            /*Scope*/ 77, /*->258140*/
/*258063*/              OPC_MoveChild0,
/*258064*/              OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->258103
/*258068*/                OPC_RecordMemRef,
/*258069*/                OPC_RecordNode, // #1 = 'ld' chained node
/*258070*/                OPC_CheckFoldableChainNode,
/*258071*/                OPC_RecordChild1, // #2 = $src2
/*258072*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*258074*/                OPC_CheckPredicate, 9, // Predicate_load
/*258076*/                OPC_MoveParent,
/*258077*/                OPC_RecordChild1, // #3 = $src1
/*258078*/                OPC_MoveParent,
/*258079*/                OPC_MoveChild2,
/*258080*/                OPC_CheckImmAllZerosV,
/*258081*/                OPC_MoveParent,
/*258082*/                OPC_CheckType, MVT::v2i64,
/*258084*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*258086*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*258089*/                OPC_EmitMergeInputChains1_1,
/*258090*/                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>>, VR128X:{ *:[v2i64] }:$src1), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPMULUDQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*258103*/              /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->258139
/*258106*/                OPC_RecordMemRef,
/*258107*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*258108*/                OPC_CheckFoldableChainNode,
/*258109*/                OPC_RecordChild1, // #2 = $src2
/*258110*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*258112*/                OPC_MoveParent,
/*258113*/                OPC_RecordChild1, // #3 = $src1
/*258114*/                OPC_MoveParent,
/*258115*/                OPC_MoveChild2,
/*258116*/                OPC_CheckImmAllZerosV,
/*258117*/                OPC_MoveParent,
/*258118*/                OPC_CheckType, MVT::v2i64,
/*258120*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*258122*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*258125*/                OPC_EmitMergeInputChains1_1,
/*258126*/                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] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src1), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPMULUDQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*258139*/              0, // EndSwitchOpcode
/*258140*/            /*Scope*/ 74, /*->258215*/
/*258141*/              OPC_RecordChild0, // #1 = $src1
/*258142*/              OPC_MoveChild1,
/*258143*/              OPC_SwitchOpcode /*2 cases */, 33, TARGET_VAL(ISD::LOAD),// ->258180
/*258147*/                OPC_RecordMemRef,
/*258148*/                OPC_RecordNode, // #2 = 'ld' chained node
/*258149*/                OPC_CheckFoldableChainNode,
/*258150*/                OPC_RecordChild1, // #3 = $src2
/*258151*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*258153*/                OPC_CheckPredicate, 9, // Predicate_load
/*258155*/                OPC_MoveParent,
/*258156*/                OPC_MoveParent,
/*258157*/                OPC_RecordChild2, // #4 = $src0
/*258158*/                OPC_CheckType, MVT::v2i64,
/*258160*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*258162*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*258165*/                OPC_EmitMergeInputChains1_2,
/*258166*/                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>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPMULUDQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*258180*/              /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->258214
/*258183*/                OPC_RecordMemRef,
/*258184*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*258185*/                OPC_CheckFoldableChainNode,
/*258186*/                OPC_RecordChild1, // #3 = $src2
/*258187*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*258189*/                OPC_MoveParent,
/*258190*/                OPC_MoveParent,
/*258191*/                OPC_RecordChild2, // #4 = $src0
/*258192*/                OPC_CheckType, MVT::v2i64,
/*258194*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*258196*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*258199*/                OPC_EmitMergeInputChains1_2,
/*258200*/                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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPMULUDQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*258214*/              0, // EndSwitchOpcode
/*258215*/            /*Scope*/ 75, /*->258291*/
/*258216*/              OPC_MoveChild0,
/*258217*/              OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->258255
/*258221*/                OPC_RecordMemRef,
/*258222*/                OPC_RecordNode, // #1 = 'ld' chained node
/*258223*/                OPC_CheckFoldableChainNode,
/*258224*/                OPC_RecordChild1, // #2 = $src2
/*258225*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*258227*/                OPC_CheckPredicate, 9, // Predicate_load
/*258229*/                OPC_MoveParent,
/*258230*/                OPC_RecordChild1, // #3 = $src1
/*258231*/                OPC_MoveParent,
/*258232*/                OPC_RecordChild2, // #4 = $src0
/*258233*/                OPC_CheckType, MVT::v2i64,
/*258235*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*258237*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*258240*/                OPC_EmitMergeInputChains1_1,
/*258241*/                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>>, VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPMULUDQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*258255*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->258290
/*258258*/                OPC_RecordMemRef,
/*258259*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*258260*/                OPC_CheckFoldableChainNode,
/*258261*/                OPC_RecordChild1, // #2 = $src2
/*258262*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*258264*/                OPC_MoveParent,
/*258265*/                OPC_RecordChild1, // #3 = $src1
/*258266*/                OPC_MoveParent,
/*258267*/                OPC_RecordChild2, // #4 = $src0
/*258268*/                OPC_CheckType, MVT::v2i64,
/*258270*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*258272*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*258275*/                OPC_EmitMergeInputChains1_1,
/*258276*/                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] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPMULUDQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*258290*/              0, // EndSwitchOpcode
/*258291*/            0, /*End of Scope*/
/*258292*/          /*SwitchOpcode*/ 52|128,2/*308*/, TARGET_VAL(ISD::SMAX),// ->258604
/*258296*/            OPC_Scope, 76, /*->258374*/ // 4 children in Scope
/*258298*/              OPC_RecordChild0, // #1 = $src1
/*258299*/              OPC_MoveChild1,
/*258300*/              OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->258338
/*258304*/                OPC_RecordMemRef,
/*258305*/                OPC_RecordNode, // #2 = 'ld' chained node
/*258306*/                OPC_CheckFoldableChainNode,
/*258307*/                OPC_RecordChild1, // #3 = $src2
/*258308*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*258310*/                OPC_CheckPredicate, 9, // Predicate_load
/*258312*/                OPC_MoveParent,
/*258313*/                OPC_MoveParent,
/*258314*/                OPC_MoveChild2,
/*258315*/                OPC_CheckImmAllZerosV,
/*258316*/                OPC_MoveParent,
/*258317*/                OPC_CheckType, MVT::v2i64,
/*258319*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*258321*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*258324*/                OPC_EmitMergeInputChains1_2,
/*258325*/                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>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPMAXSQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*258338*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->258373
/*258341*/                OPC_RecordMemRef,
/*258342*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*258343*/                OPC_CheckFoldableChainNode,
/*258344*/                OPC_RecordChild1, // #3 = $src2
/*258345*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*258347*/                OPC_MoveParent,
/*258348*/                OPC_MoveParent,
/*258349*/                OPC_MoveChild2,
/*258350*/                OPC_CheckImmAllZerosV,
/*258351*/                OPC_MoveParent,
/*258352*/                OPC_CheckType, MVT::v2i64,
/*258354*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*258356*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*258359*/                OPC_EmitMergeInputChains1_2,
/*258360*/                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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPMAXSQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*258373*/              0, // EndSwitchOpcode
/*258374*/            /*Scope*/ 77, /*->258452*/
/*258375*/              OPC_MoveChild0,
/*258376*/              OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->258415
/*258380*/                OPC_RecordMemRef,
/*258381*/                OPC_RecordNode, // #1 = 'ld' chained node
/*258382*/                OPC_CheckFoldableChainNode,
/*258383*/                OPC_RecordChild1, // #2 = $src2
/*258384*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*258386*/                OPC_CheckPredicate, 9, // Predicate_load
/*258388*/                OPC_MoveParent,
/*258389*/                OPC_RecordChild1, // #3 = $src1
/*258390*/                OPC_MoveParent,
/*258391*/                OPC_MoveChild2,
/*258392*/                OPC_CheckImmAllZerosV,
/*258393*/                OPC_MoveParent,
/*258394*/                OPC_CheckType, MVT::v2i64,
/*258396*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*258398*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*258401*/                OPC_EmitMergeInputChains1_1,
/*258402*/                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>>, VR128X:{ *:[v2i64] }:$src1), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPMAXSQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*258415*/              /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->258451
/*258418*/                OPC_RecordMemRef,
/*258419*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*258420*/                OPC_CheckFoldableChainNode,
/*258421*/                OPC_RecordChild1, // #2 = $src2
/*258422*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*258424*/                OPC_MoveParent,
/*258425*/                OPC_RecordChild1, // #3 = $src1
/*258426*/                OPC_MoveParent,
/*258427*/                OPC_MoveChild2,
/*258428*/                OPC_CheckImmAllZerosV,
/*258429*/                OPC_MoveParent,
/*258430*/                OPC_CheckType, MVT::v2i64,
/*258432*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*258434*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*258437*/                OPC_EmitMergeInputChains1_1,
/*258438*/                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] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src1), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPMAXSQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*258451*/              0, // EndSwitchOpcode
/*258452*/            /*Scope*/ 74, /*->258527*/
/*258453*/              OPC_RecordChild0, // #1 = $src1
/*258454*/              OPC_MoveChild1,
/*258455*/              OPC_SwitchOpcode /*2 cases */, 33, TARGET_VAL(ISD::LOAD),// ->258492
/*258459*/                OPC_RecordMemRef,
/*258460*/                OPC_RecordNode, // #2 = 'ld' chained node
/*258461*/                OPC_CheckFoldableChainNode,
/*258462*/                OPC_RecordChild1, // #3 = $src2
/*258463*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*258465*/                OPC_CheckPredicate, 9, // Predicate_load
/*258467*/                OPC_MoveParent,
/*258468*/                OPC_MoveParent,
/*258469*/                OPC_RecordChild2, // #4 = $src0
/*258470*/                OPC_CheckType, MVT::v2i64,
/*258472*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*258474*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*258477*/                OPC_EmitMergeInputChains1_2,
/*258478*/                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>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPMAXSQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*258492*/              /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->258526
/*258495*/                OPC_RecordMemRef,
/*258496*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*258497*/                OPC_CheckFoldableChainNode,
/*258498*/                OPC_RecordChild1, // #3 = $src2
/*258499*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*258501*/                OPC_MoveParent,
/*258502*/                OPC_MoveParent,
/*258503*/                OPC_RecordChild2, // #4 = $src0
/*258504*/                OPC_CheckType, MVT::v2i64,
/*258506*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*258508*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*258511*/                OPC_EmitMergeInputChains1_2,
/*258512*/                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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPMAXSQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*258526*/              0, // EndSwitchOpcode
/*258527*/            /*Scope*/ 75, /*->258603*/
/*258528*/              OPC_MoveChild0,
/*258529*/              OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->258567
/*258533*/                OPC_RecordMemRef,
/*258534*/                OPC_RecordNode, // #1 = 'ld' chained node
/*258535*/                OPC_CheckFoldableChainNode,
/*258536*/                OPC_RecordChild1, // #2 = $src2
/*258537*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*258539*/                OPC_CheckPredicate, 9, // Predicate_load
/*258541*/                OPC_MoveParent,
/*258542*/                OPC_RecordChild1, // #3 = $src1
/*258543*/                OPC_MoveParent,
/*258544*/                OPC_RecordChild2, // #4 = $src0
/*258545*/                OPC_CheckType, MVT::v2i64,
/*258547*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*258549*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*258552*/                OPC_EmitMergeInputChains1_1,
/*258553*/                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>>, VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPMAXSQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*258567*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->258602
/*258570*/                OPC_RecordMemRef,
/*258571*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*258572*/                OPC_CheckFoldableChainNode,
/*258573*/                OPC_RecordChild1, // #2 = $src2
/*258574*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*258576*/                OPC_MoveParent,
/*258577*/                OPC_RecordChild1, // #3 = $src1
/*258578*/                OPC_MoveParent,
/*258579*/                OPC_RecordChild2, // #4 = $src0
/*258580*/                OPC_CheckType, MVT::v2i64,
/*258582*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*258584*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*258587*/                OPC_EmitMergeInputChains1_1,
/*258588*/                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] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPMAXSQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*258602*/              0, // EndSwitchOpcode
/*258603*/            0, /*End of Scope*/
/*258604*/          /*SwitchOpcode*/ 52|128,2/*308*/, TARGET_VAL(ISD::UMAX),// ->258916
/*258608*/            OPC_Scope, 76, /*->258686*/ // 4 children in Scope
/*258610*/              OPC_RecordChild0, // #1 = $src1
/*258611*/              OPC_MoveChild1,
/*258612*/              OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->258650
/*258616*/                OPC_RecordMemRef,
/*258617*/                OPC_RecordNode, // #2 = 'ld' chained node
/*258618*/                OPC_CheckFoldableChainNode,
/*258619*/                OPC_RecordChild1, // #3 = $src2
/*258620*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*258622*/                OPC_CheckPredicate, 9, // Predicate_load
/*258624*/                OPC_MoveParent,
/*258625*/                OPC_MoveParent,
/*258626*/                OPC_MoveChild2,
/*258627*/                OPC_CheckImmAllZerosV,
/*258628*/                OPC_MoveParent,
/*258629*/                OPC_CheckType, MVT::v2i64,
/*258631*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*258633*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*258636*/                OPC_EmitMergeInputChains1_2,
/*258637*/                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>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPMAXUQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*258650*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->258685
/*258653*/                OPC_RecordMemRef,
/*258654*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*258655*/                OPC_CheckFoldableChainNode,
/*258656*/                OPC_RecordChild1, // #3 = $src2
/*258657*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*258659*/                OPC_MoveParent,
/*258660*/                OPC_MoveParent,
/*258661*/                OPC_MoveChild2,
/*258662*/                OPC_CheckImmAllZerosV,
/*258663*/                OPC_MoveParent,
/*258664*/                OPC_CheckType, MVT::v2i64,
/*258666*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*258668*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*258671*/                OPC_EmitMergeInputChains1_2,
/*258672*/                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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPMAXUQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*258685*/              0, // EndSwitchOpcode
/*258686*/            /*Scope*/ 77, /*->258764*/
/*258687*/              OPC_MoveChild0,
/*258688*/              OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->258727
/*258692*/                OPC_RecordMemRef,
/*258693*/                OPC_RecordNode, // #1 = 'ld' chained node
/*258694*/                OPC_CheckFoldableChainNode,
/*258695*/                OPC_RecordChild1, // #2 = $src2
/*258696*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*258698*/                OPC_CheckPredicate, 9, // Predicate_load
/*258700*/                OPC_MoveParent,
/*258701*/                OPC_RecordChild1, // #3 = $src1
/*258702*/                OPC_MoveParent,
/*258703*/                OPC_MoveChild2,
/*258704*/                OPC_CheckImmAllZerosV,
/*258705*/                OPC_MoveParent,
/*258706*/                OPC_CheckType, MVT::v2i64,
/*258708*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*258710*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*258713*/                OPC_EmitMergeInputChains1_1,
/*258714*/                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>>, VR128X:{ *:[v2i64] }:$src1), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPMAXUQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*258727*/              /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->258763
/*258730*/                OPC_RecordMemRef,
/*258731*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*258732*/                OPC_CheckFoldableChainNode,
/*258733*/                OPC_RecordChild1, // #2 = $src2
/*258734*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*258736*/                OPC_MoveParent,
/*258737*/                OPC_RecordChild1, // #3 = $src1
/*258738*/                OPC_MoveParent,
/*258739*/                OPC_MoveChild2,
/*258740*/                OPC_CheckImmAllZerosV,
/*258741*/                OPC_MoveParent,
/*258742*/                OPC_CheckType, MVT::v2i64,
/*258744*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*258746*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*258749*/                OPC_EmitMergeInputChains1_1,
/*258750*/                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] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src1), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPMAXUQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*258763*/              0, // EndSwitchOpcode
/*258764*/            /*Scope*/ 74, /*->258839*/
/*258765*/              OPC_RecordChild0, // #1 = $src1
/*258766*/              OPC_MoveChild1,
/*258767*/              OPC_SwitchOpcode /*2 cases */, 33, TARGET_VAL(ISD::LOAD),// ->258804
/*258771*/                OPC_RecordMemRef,
/*258772*/                OPC_RecordNode, // #2 = 'ld' chained node
/*258773*/                OPC_CheckFoldableChainNode,
/*258774*/                OPC_RecordChild1, // #3 = $src2
/*258775*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*258777*/                OPC_CheckPredicate, 9, // Predicate_load
/*258779*/                OPC_MoveParent,
/*258780*/                OPC_MoveParent,
/*258781*/                OPC_RecordChild2, // #4 = $src0
/*258782*/                OPC_CheckType, MVT::v2i64,
/*258784*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*258786*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*258789*/                OPC_EmitMergeInputChains1_2,
/*258790*/                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>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPMAXUQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*258804*/              /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->258838
/*258807*/                OPC_RecordMemRef,
/*258808*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*258809*/                OPC_CheckFoldableChainNode,
/*258810*/                OPC_RecordChild1, // #3 = $src2
/*258811*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*258813*/                OPC_MoveParent,
/*258814*/                OPC_MoveParent,
/*258815*/                OPC_RecordChild2, // #4 = $src0
/*258816*/                OPC_CheckType, MVT::v2i64,
/*258818*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*258820*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*258823*/                OPC_EmitMergeInputChains1_2,
/*258824*/                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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPMAXUQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*258838*/              0, // EndSwitchOpcode
/*258839*/            /*Scope*/ 75, /*->258915*/
/*258840*/              OPC_MoveChild0,
/*258841*/              OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->258879
/*258845*/                OPC_RecordMemRef,
/*258846*/                OPC_RecordNode, // #1 = 'ld' chained node
/*258847*/                OPC_CheckFoldableChainNode,
/*258848*/                OPC_RecordChild1, // #2 = $src2
/*258849*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*258851*/                OPC_CheckPredicate, 9, // Predicate_load
/*258853*/                OPC_MoveParent,
/*258854*/                OPC_RecordChild1, // #3 = $src1
/*258855*/                OPC_MoveParent,
/*258856*/                OPC_RecordChild2, // #4 = $src0
/*258857*/                OPC_CheckType, MVT::v2i64,
/*258859*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*258861*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*258864*/                OPC_EmitMergeInputChains1_1,
/*258865*/                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>>, VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPMAXUQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*258879*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->258914
/*258882*/                OPC_RecordMemRef,
/*258883*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*258884*/                OPC_CheckFoldableChainNode,
/*258885*/                OPC_RecordChild1, // #2 = $src2
/*258886*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*258888*/                OPC_MoveParent,
/*258889*/                OPC_RecordChild1, // #3 = $src1
/*258890*/                OPC_MoveParent,
/*258891*/                OPC_RecordChild2, // #4 = $src0
/*258892*/                OPC_CheckType, MVT::v2i64,
/*258894*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*258896*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*258899*/                OPC_EmitMergeInputChains1_1,
/*258900*/                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] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPMAXUQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*258914*/              0, // EndSwitchOpcode
/*258915*/            0, /*End of Scope*/
/*258916*/          /*SwitchOpcode*/ 52|128,2/*308*/, TARGET_VAL(ISD::SMIN),// ->259228
/*258920*/            OPC_Scope, 76, /*->258998*/ // 4 children in Scope
/*258922*/              OPC_RecordChild0, // #1 = $src1
/*258923*/              OPC_MoveChild1,
/*258924*/              OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->258962
/*258928*/                OPC_RecordMemRef,
/*258929*/                OPC_RecordNode, // #2 = 'ld' chained node
/*258930*/                OPC_CheckFoldableChainNode,
/*258931*/                OPC_RecordChild1, // #3 = $src2
/*258932*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*258934*/                OPC_CheckPredicate, 9, // Predicate_load
/*258936*/                OPC_MoveParent,
/*258937*/                OPC_MoveParent,
/*258938*/                OPC_MoveChild2,
/*258939*/                OPC_CheckImmAllZerosV,
/*258940*/                OPC_MoveParent,
/*258941*/                OPC_CheckType, MVT::v2i64,
/*258943*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*258945*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*258948*/                OPC_EmitMergeInputChains1_2,
/*258949*/                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>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPMINSQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*258962*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->258997
/*258965*/                OPC_RecordMemRef,
/*258966*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*258967*/                OPC_CheckFoldableChainNode,
/*258968*/                OPC_RecordChild1, // #3 = $src2
/*258969*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*258971*/                OPC_MoveParent,
/*258972*/                OPC_MoveParent,
/*258973*/                OPC_MoveChild2,
/*258974*/                OPC_CheckImmAllZerosV,
/*258975*/                OPC_MoveParent,
/*258976*/                OPC_CheckType, MVT::v2i64,
/*258978*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*258980*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*258983*/                OPC_EmitMergeInputChains1_2,
/*258984*/                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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPMINSQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*258997*/              0, // EndSwitchOpcode
/*258998*/            /*Scope*/ 77, /*->259076*/
/*258999*/              OPC_MoveChild0,
/*259000*/              OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->259039
/*259004*/                OPC_RecordMemRef,
/*259005*/                OPC_RecordNode, // #1 = 'ld' chained node
/*259006*/                OPC_CheckFoldableChainNode,
/*259007*/                OPC_RecordChild1, // #2 = $src2
/*259008*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*259010*/                OPC_CheckPredicate, 9, // Predicate_load
/*259012*/                OPC_MoveParent,
/*259013*/                OPC_RecordChild1, // #3 = $src1
/*259014*/                OPC_MoveParent,
/*259015*/                OPC_MoveChild2,
/*259016*/                OPC_CheckImmAllZerosV,
/*259017*/                OPC_MoveParent,
/*259018*/                OPC_CheckType, MVT::v2i64,
/*259020*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*259022*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*259025*/                OPC_EmitMergeInputChains1_1,
/*259026*/                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>>, VR128X:{ *:[v2i64] }:$src1), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPMINSQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*259039*/              /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->259075
/*259042*/                OPC_RecordMemRef,
/*259043*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*259044*/                OPC_CheckFoldableChainNode,
/*259045*/                OPC_RecordChild1, // #2 = $src2
/*259046*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*259048*/                OPC_MoveParent,
/*259049*/                OPC_RecordChild1, // #3 = $src1
/*259050*/                OPC_MoveParent,
/*259051*/                OPC_MoveChild2,
/*259052*/                OPC_CheckImmAllZerosV,
/*259053*/                OPC_MoveParent,
/*259054*/                OPC_CheckType, MVT::v2i64,
/*259056*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*259058*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*259061*/                OPC_EmitMergeInputChains1_1,
/*259062*/                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] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src1), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPMINSQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*259075*/              0, // EndSwitchOpcode
/*259076*/            /*Scope*/ 74, /*->259151*/
/*259077*/              OPC_RecordChild0, // #1 = $src1
/*259078*/              OPC_MoveChild1,
/*259079*/              OPC_SwitchOpcode /*2 cases */, 33, TARGET_VAL(ISD::LOAD),// ->259116
/*259083*/                OPC_RecordMemRef,
/*259084*/                OPC_RecordNode, // #2 = 'ld' chained node
/*259085*/                OPC_CheckFoldableChainNode,
/*259086*/                OPC_RecordChild1, // #3 = $src2
/*259087*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*259089*/                OPC_CheckPredicate, 9, // Predicate_load
/*259091*/                OPC_MoveParent,
/*259092*/                OPC_MoveParent,
/*259093*/                OPC_RecordChild2, // #4 = $src0
/*259094*/                OPC_CheckType, MVT::v2i64,
/*259096*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*259098*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*259101*/                OPC_EmitMergeInputChains1_2,
/*259102*/                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>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPMINSQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*259116*/              /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->259150
/*259119*/                OPC_RecordMemRef,
/*259120*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*259121*/                OPC_CheckFoldableChainNode,
/*259122*/                OPC_RecordChild1, // #3 = $src2
/*259123*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*259125*/                OPC_MoveParent,
/*259126*/                OPC_MoveParent,
/*259127*/                OPC_RecordChild2, // #4 = $src0
/*259128*/                OPC_CheckType, MVT::v2i64,
/*259130*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*259132*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*259135*/                OPC_EmitMergeInputChains1_2,
/*259136*/                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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPMINSQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*259150*/              0, // EndSwitchOpcode
/*259151*/            /*Scope*/ 75, /*->259227*/
/*259152*/              OPC_MoveChild0,
/*259153*/              OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->259191
/*259157*/                OPC_RecordMemRef,
/*259158*/                OPC_RecordNode, // #1 = 'ld' chained node
/*259159*/                OPC_CheckFoldableChainNode,
/*259160*/                OPC_RecordChild1, // #2 = $src2
/*259161*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*259163*/                OPC_CheckPredicate, 9, // Predicate_load
/*259165*/                OPC_MoveParent,
/*259166*/                OPC_RecordChild1, // #3 = $src1
/*259167*/                OPC_MoveParent,
/*259168*/                OPC_RecordChild2, // #4 = $src0
/*259169*/                OPC_CheckType, MVT::v2i64,
/*259171*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*259173*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*259176*/                OPC_EmitMergeInputChains1_1,
/*259177*/                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>>, VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPMINSQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*259191*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->259226
/*259194*/                OPC_RecordMemRef,
/*259195*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*259196*/                OPC_CheckFoldableChainNode,
/*259197*/                OPC_RecordChild1, // #2 = $src2
/*259198*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*259200*/                OPC_MoveParent,
/*259201*/                OPC_RecordChild1, // #3 = $src1
/*259202*/                OPC_MoveParent,
/*259203*/                OPC_RecordChild2, // #4 = $src0
/*259204*/                OPC_CheckType, MVT::v2i64,
/*259206*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*259208*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*259211*/                OPC_EmitMergeInputChains1_1,
/*259212*/                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] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPMINSQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*259226*/              0, // EndSwitchOpcode
/*259227*/            0, /*End of Scope*/
/*259228*/          /*SwitchOpcode*/ 52|128,2/*308*/, TARGET_VAL(ISD::UMIN),// ->259540
/*259232*/            OPC_Scope, 76, /*->259310*/ // 4 children in Scope
/*259234*/              OPC_RecordChild0, // #1 = $src1
/*259235*/              OPC_MoveChild1,
/*259236*/              OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->259274
/*259240*/                OPC_RecordMemRef,
/*259241*/                OPC_RecordNode, // #2 = 'ld' chained node
/*259242*/                OPC_CheckFoldableChainNode,
/*259243*/                OPC_RecordChild1, // #3 = $src2
/*259244*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*259246*/                OPC_CheckPredicate, 9, // Predicate_load
/*259248*/                OPC_MoveParent,
/*259249*/                OPC_MoveParent,
/*259250*/                OPC_MoveChild2,
/*259251*/                OPC_CheckImmAllZerosV,
/*259252*/                OPC_MoveParent,
/*259253*/                OPC_CheckType, MVT::v2i64,
/*259255*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*259257*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*259260*/                OPC_EmitMergeInputChains1_2,
/*259261*/                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>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPMINUQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*259274*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->259309
/*259277*/                OPC_RecordMemRef,
/*259278*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*259279*/                OPC_CheckFoldableChainNode,
/*259280*/                OPC_RecordChild1, // #3 = $src2
/*259281*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*259283*/                OPC_MoveParent,
/*259284*/                OPC_MoveParent,
/*259285*/                OPC_MoveChild2,
/*259286*/                OPC_CheckImmAllZerosV,
/*259287*/                OPC_MoveParent,
/*259288*/                OPC_CheckType, MVT::v2i64,
/*259290*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*259292*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*259295*/                OPC_EmitMergeInputChains1_2,
/*259296*/                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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPMINUQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*259309*/              0, // EndSwitchOpcode
/*259310*/            /*Scope*/ 77, /*->259388*/
/*259311*/              OPC_MoveChild0,
/*259312*/              OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->259351
/*259316*/                OPC_RecordMemRef,
/*259317*/                OPC_RecordNode, // #1 = 'ld' chained node
/*259318*/                OPC_CheckFoldableChainNode,
/*259319*/                OPC_RecordChild1, // #2 = $src2
/*259320*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*259322*/                OPC_CheckPredicate, 9, // Predicate_load
/*259324*/                OPC_MoveParent,
/*259325*/                OPC_RecordChild1, // #3 = $src1
/*259326*/                OPC_MoveParent,
/*259327*/                OPC_MoveChild2,
/*259328*/                OPC_CheckImmAllZerosV,
/*259329*/                OPC_MoveParent,
/*259330*/                OPC_CheckType, MVT::v2i64,
/*259332*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*259334*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*259337*/                OPC_EmitMergeInputChains1_1,
/*259338*/                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>>, VR128X:{ *:[v2i64] }:$src1), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPMINUQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*259351*/              /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->259387
/*259354*/                OPC_RecordMemRef,
/*259355*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*259356*/                OPC_CheckFoldableChainNode,
/*259357*/                OPC_RecordChild1, // #2 = $src2
/*259358*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*259360*/                OPC_MoveParent,
/*259361*/                OPC_RecordChild1, // #3 = $src1
/*259362*/                OPC_MoveParent,
/*259363*/                OPC_MoveChild2,
/*259364*/                OPC_CheckImmAllZerosV,
/*259365*/                OPC_MoveParent,
/*259366*/                OPC_CheckType, MVT::v2i64,
/*259368*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*259370*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*259373*/                OPC_EmitMergeInputChains1_1,
/*259374*/                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] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src1), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPMINUQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*259387*/              0, // EndSwitchOpcode
/*259388*/            /*Scope*/ 74, /*->259463*/
/*259389*/              OPC_RecordChild0, // #1 = $src1
/*259390*/              OPC_MoveChild1,
/*259391*/              OPC_SwitchOpcode /*2 cases */, 33, TARGET_VAL(ISD::LOAD),// ->259428
/*259395*/                OPC_RecordMemRef,
/*259396*/                OPC_RecordNode, // #2 = 'ld' chained node
/*259397*/                OPC_CheckFoldableChainNode,
/*259398*/                OPC_RecordChild1, // #3 = $src2
/*259399*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*259401*/                OPC_CheckPredicate, 9, // Predicate_load
/*259403*/                OPC_MoveParent,
/*259404*/                OPC_MoveParent,
/*259405*/                OPC_RecordChild2, // #4 = $src0
/*259406*/                OPC_CheckType, MVT::v2i64,
/*259408*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*259410*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*259413*/                OPC_EmitMergeInputChains1_2,
/*259414*/                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>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPMINUQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*259428*/              /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->259462
/*259431*/                OPC_RecordMemRef,
/*259432*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*259433*/                OPC_CheckFoldableChainNode,
/*259434*/                OPC_RecordChild1, // #3 = $src2
/*259435*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*259437*/                OPC_MoveParent,
/*259438*/                OPC_MoveParent,
/*259439*/                OPC_RecordChild2, // #4 = $src0
/*259440*/                OPC_CheckType, MVT::v2i64,
/*259442*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*259444*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*259447*/                OPC_EmitMergeInputChains1_2,
/*259448*/                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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPMINUQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*259462*/              0, // EndSwitchOpcode
/*259463*/            /*Scope*/ 75, /*->259539*/
/*259464*/              OPC_MoveChild0,
/*259465*/              OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->259503
/*259469*/                OPC_RecordMemRef,
/*259470*/                OPC_RecordNode, // #1 = 'ld' chained node
/*259471*/                OPC_CheckFoldableChainNode,
/*259472*/                OPC_RecordChild1, // #2 = $src2
/*259473*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*259475*/                OPC_CheckPredicate, 9, // Predicate_load
/*259477*/                OPC_MoveParent,
/*259478*/                OPC_RecordChild1, // #3 = $src1
/*259479*/                OPC_MoveParent,
/*259480*/                OPC_RecordChild2, // #4 = $src0
/*259481*/                OPC_CheckType, MVT::v2i64,
/*259483*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*259485*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*259488*/                OPC_EmitMergeInputChains1_1,
/*259489*/                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>>, VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPMINUQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*259503*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->259538
/*259506*/                OPC_RecordMemRef,
/*259507*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*259508*/                OPC_CheckFoldableChainNode,
/*259509*/                OPC_RecordChild1, // #2 = $src2
/*259510*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*259512*/                OPC_MoveParent,
/*259513*/                OPC_RecordChild1, // #3 = $src1
/*259514*/                OPC_MoveParent,
/*259515*/                OPC_RecordChild2, // #4 = $src0
/*259516*/                OPC_CheckType, MVT::v2i64,
/*259518*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*259520*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*259523*/                OPC_EmitMergeInputChains1_1,
/*259524*/                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] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPMINUQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*259538*/              0, // EndSwitchOpcode
/*259539*/            0, /*End of Scope*/
/*259540*/          /*SwitchOpcode*/ 52|128,2/*308*/, TARGET_VAL(ISD::AND),// ->259852
/*259544*/            OPC_Scope, 76, /*->259622*/ // 4 children in Scope
/*259546*/              OPC_RecordChild0, // #1 = $src1
/*259547*/              OPC_MoveChild1,
/*259548*/              OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->259586
/*259552*/                OPC_RecordMemRef,
/*259553*/                OPC_RecordNode, // #2 = 'ld' chained node
/*259554*/                OPC_CheckFoldableChainNode,
/*259555*/                OPC_RecordChild1, // #3 = $src2
/*259556*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*259558*/                OPC_CheckPredicate, 9, // Predicate_load
/*259560*/                OPC_MoveParent,
/*259561*/                OPC_MoveParent,
/*259562*/                OPC_MoveChild2,
/*259563*/                OPC_CheckImmAllZerosV,
/*259564*/                OPC_MoveParent,
/*259565*/                OPC_CheckType, MVT::v2i64,
/*259567*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*259569*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*259572*/                OPC_EmitMergeInputChains1_2,
/*259573*/                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>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPANDQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*259586*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->259621
/*259589*/                OPC_RecordMemRef,
/*259590*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*259591*/                OPC_CheckFoldableChainNode,
/*259592*/                OPC_RecordChild1, // #3 = $src2
/*259593*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*259595*/                OPC_MoveParent,
/*259596*/                OPC_MoveParent,
/*259597*/                OPC_MoveChild2,
/*259598*/                OPC_CheckImmAllZerosV,
/*259599*/                OPC_MoveParent,
/*259600*/                OPC_CheckType, MVT::v2i64,
/*259602*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*259604*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*259607*/                OPC_EmitMergeInputChains1_2,
/*259608*/                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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPANDQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*259621*/              0, // EndSwitchOpcode
/*259622*/            /*Scope*/ 77, /*->259700*/
/*259623*/              OPC_MoveChild0,
/*259624*/              OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->259663
/*259628*/                OPC_RecordMemRef,
/*259629*/                OPC_RecordNode, // #1 = 'ld' chained node
/*259630*/                OPC_CheckFoldableChainNode,
/*259631*/                OPC_RecordChild1, // #2 = $src2
/*259632*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*259634*/                OPC_CheckPredicate, 9, // Predicate_load
/*259636*/                OPC_MoveParent,
/*259637*/                OPC_RecordChild1, // #3 = $src1
/*259638*/                OPC_MoveParent,
/*259639*/                OPC_MoveChild2,
/*259640*/                OPC_CheckImmAllZerosV,
/*259641*/                OPC_MoveParent,
/*259642*/                OPC_CheckType, MVT::v2i64,
/*259644*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*259646*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*259649*/                OPC_EmitMergeInputChains1_1,
/*259650*/                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>>, VR128X:{ *:[v2i64] }:$src1), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPANDQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*259663*/              /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->259699
/*259666*/                OPC_RecordMemRef,
/*259667*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*259668*/                OPC_CheckFoldableChainNode,
/*259669*/                OPC_RecordChild1, // #2 = $src2
/*259670*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*259672*/                OPC_MoveParent,
/*259673*/                OPC_RecordChild1, // #3 = $src1
/*259674*/                OPC_MoveParent,
/*259675*/                OPC_MoveChild2,
/*259676*/                OPC_CheckImmAllZerosV,
/*259677*/                OPC_MoveParent,
/*259678*/                OPC_CheckType, MVT::v2i64,
/*259680*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*259682*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*259685*/                OPC_EmitMergeInputChains1_1,
/*259686*/                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] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src1), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPANDQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*259699*/              0, // EndSwitchOpcode
/*259700*/            /*Scope*/ 74, /*->259775*/
/*259701*/              OPC_RecordChild0, // #1 = $src1
/*259702*/              OPC_MoveChild1,
/*259703*/              OPC_SwitchOpcode /*2 cases */, 33, TARGET_VAL(ISD::LOAD),// ->259740
/*259707*/                OPC_RecordMemRef,
/*259708*/                OPC_RecordNode, // #2 = 'ld' chained node
/*259709*/                OPC_CheckFoldableChainNode,
/*259710*/                OPC_RecordChild1, // #3 = $src2
/*259711*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*259713*/                OPC_CheckPredicate, 9, // Predicate_load
/*259715*/                OPC_MoveParent,
/*259716*/                OPC_MoveParent,
/*259717*/                OPC_RecordChild2, // #4 = $src0
/*259718*/                OPC_CheckType, MVT::v2i64,
/*259720*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*259722*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*259725*/                OPC_EmitMergeInputChains1_2,
/*259726*/                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>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPANDQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*259740*/              /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->259774
/*259743*/                OPC_RecordMemRef,
/*259744*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*259745*/                OPC_CheckFoldableChainNode,
/*259746*/                OPC_RecordChild1, // #3 = $src2
/*259747*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*259749*/                OPC_MoveParent,
/*259750*/                OPC_MoveParent,
/*259751*/                OPC_RecordChild2, // #4 = $src0
/*259752*/                OPC_CheckType, MVT::v2i64,
/*259754*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*259756*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*259759*/                OPC_EmitMergeInputChains1_2,
/*259760*/                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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPANDQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*259774*/              0, // EndSwitchOpcode
/*259775*/            /*Scope*/ 75, /*->259851*/
/*259776*/              OPC_MoveChild0,
/*259777*/              OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->259815
/*259781*/                OPC_RecordMemRef,
/*259782*/                OPC_RecordNode, // #1 = 'ld' chained node
/*259783*/                OPC_CheckFoldableChainNode,
/*259784*/                OPC_RecordChild1, // #2 = $src2
/*259785*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*259787*/                OPC_CheckPredicate, 9, // Predicate_load
/*259789*/                OPC_MoveParent,
/*259790*/                OPC_RecordChild1, // #3 = $src1
/*259791*/                OPC_MoveParent,
/*259792*/                OPC_RecordChild2, // #4 = $src0
/*259793*/                OPC_CheckType, MVT::v2i64,
/*259795*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*259797*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*259800*/                OPC_EmitMergeInputChains1_1,
/*259801*/                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>>, VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPANDQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*259815*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->259850
/*259818*/                OPC_RecordMemRef,
/*259819*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*259820*/                OPC_CheckFoldableChainNode,
/*259821*/                OPC_RecordChild1, // #2 = $src2
/*259822*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*259824*/                OPC_MoveParent,
/*259825*/                OPC_RecordChild1, // #3 = $src1
/*259826*/                OPC_MoveParent,
/*259827*/                OPC_RecordChild2, // #4 = $src0
/*259828*/                OPC_CheckType, MVT::v2i64,
/*259830*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*259832*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*259835*/                OPC_EmitMergeInputChains1_1,
/*259836*/                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] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPANDQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*259850*/              0, // EndSwitchOpcode
/*259851*/            0, /*End of Scope*/
/*259852*/          /*SwitchOpcode*/ 52|128,2/*308*/, TARGET_VAL(ISD::OR),// ->260164
/*259856*/            OPC_Scope, 76, /*->259934*/ // 4 children in Scope
/*259858*/              OPC_RecordChild0, // #1 = $src1
/*259859*/              OPC_MoveChild1,
/*259860*/              OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->259898
/*259864*/                OPC_RecordMemRef,
/*259865*/                OPC_RecordNode, // #2 = 'ld' chained node
/*259866*/                OPC_CheckFoldableChainNode,
/*259867*/                OPC_RecordChild1, // #3 = $src2
/*259868*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*259870*/                OPC_CheckPredicate, 9, // Predicate_load
/*259872*/                OPC_MoveParent,
/*259873*/                OPC_MoveParent,
/*259874*/                OPC_MoveChild2,
/*259875*/                OPC_CheckImmAllZerosV,
/*259876*/                OPC_MoveParent,
/*259877*/                OPC_CheckType, MVT::v2i64,
/*259879*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*259881*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*259884*/                OPC_EmitMergeInputChains1_2,
/*259885*/                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>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPORQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*259898*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->259933
/*259901*/                OPC_RecordMemRef,
/*259902*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*259903*/                OPC_CheckFoldableChainNode,
/*259904*/                OPC_RecordChild1, // #3 = $src2
/*259905*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*259907*/                OPC_MoveParent,
/*259908*/                OPC_MoveParent,
/*259909*/                OPC_MoveChild2,
/*259910*/                OPC_CheckImmAllZerosV,
/*259911*/                OPC_MoveParent,
/*259912*/                OPC_CheckType, MVT::v2i64,
/*259914*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*259916*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*259919*/                OPC_EmitMergeInputChains1_2,
/*259920*/                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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPORQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*259933*/              0, // EndSwitchOpcode
/*259934*/            /*Scope*/ 77, /*->260012*/
/*259935*/              OPC_MoveChild0,
/*259936*/              OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->259975
/*259940*/                OPC_RecordMemRef,
/*259941*/                OPC_RecordNode, // #1 = 'ld' chained node
/*259942*/                OPC_CheckFoldableChainNode,
/*259943*/                OPC_RecordChild1, // #2 = $src2
/*259944*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*259946*/                OPC_CheckPredicate, 9, // Predicate_load
/*259948*/                OPC_MoveParent,
/*259949*/                OPC_RecordChild1, // #3 = $src1
/*259950*/                OPC_MoveParent,
/*259951*/                OPC_MoveChild2,
/*259952*/                OPC_CheckImmAllZerosV,
/*259953*/                OPC_MoveParent,
/*259954*/                OPC_CheckType, MVT::v2i64,
/*259956*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*259958*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*259961*/                OPC_EmitMergeInputChains1_1,
/*259962*/                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>>, VR128X:{ *:[v2i64] }:$src1), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPORQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*259975*/              /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->260011
/*259978*/                OPC_RecordMemRef,
/*259979*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*259980*/                OPC_CheckFoldableChainNode,
/*259981*/                OPC_RecordChild1, // #2 = $src2
/*259982*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*259984*/                OPC_MoveParent,
/*259985*/                OPC_RecordChild1, // #3 = $src1
/*259986*/                OPC_MoveParent,
/*259987*/                OPC_MoveChild2,
/*259988*/                OPC_CheckImmAllZerosV,
/*259989*/                OPC_MoveParent,
/*259990*/                OPC_CheckType, MVT::v2i64,
/*259992*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*259994*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*259997*/                OPC_EmitMergeInputChains1_1,
/*259998*/                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] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src1), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPORQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*260011*/              0, // EndSwitchOpcode
/*260012*/            /*Scope*/ 74, /*->260087*/
/*260013*/              OPC_RecordChild0, // #1 = $src1
/*260014*/              OPC_MoveChild1,
/*260015*/              OPC_SwitchOpcode /*2 cases */, 33, TARGET_VAL(ISD::LOAD),// ->260052
/*260019*/                OPC_RecordMemRef,
/*260020*/                OPC_RecordNode, // #2 = 'ld' chained node
/*260021*/                OPC_CheckFoldableChainNode,
/*260022*/                OPC_RecordChild1, // #3 = $src2
/*260023*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*260025*/                OPC_CheckPredicate, 9, // Predicate_load
/*260027*/                OPC_MoveParent,
/*260028*/                OPC_MoveParent,
/*260029*/                OPC_RecordChild2, // #4 = $src0
/*260030*/                OPC_CheckType, MVT::v2i64,
/*260032*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*260034*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*260037*/                OPC_EmitMergeInputChains1_2,
/*260038*/                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>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPORQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*260052*/              /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->260086
/*260055*/                OPC_RecordMemRef,
/*260056*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*260057*/                OPC_CheckFoldableChainNode,
/*260058*/                OPC_RecordChild1, // #3 = $src2
/*260059*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*260061*/                OPC_MoveParent,
/*260062*/                OPC_MoveParent,
/*260063*/                OPC_RecordChild2, // #4 = $src0
/*260064*/                OPC_CheckType, MVT::v2i64,
/*260066*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*260068*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*260071*/                OPC_EmitMergeInputChains1_2,
/*260072*/                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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPORQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*260086*/              0, // EndSwitchOpcode
/*260087*/            /*Scope*/ 75, /*->260163*/
/*260088*/              OPC_MoveChild0,
/*260089*/              OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->260127
/*260093*/                OPC_RecordMemRef,
/*260094*/                OPC_RecordNode, // #1 = 'ld' chained node
/*260095*/                OPC_CheckFoldableChainNode,
/*260096*/                OPC_RecordChild1, // #2 = $src2
/*260097*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*260099*/                OPC_CheckPredicate, 9, // Predicate_load
/*260101*/                OPC_MoveParent,
/*260102*/                OPC_RecordChild1, // #3 = $src1
/*260103*/                OPC_MoveParent,
/*260104*/                OPC_RecordChild2, // #4 = $src0
/*260105*/                OPC_CheckType, MVT::v2i64,
/*260107*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*260109*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*260112*/                OPC_EmitMergeInputChains1_1,
/*260113*/                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>>, VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPORQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*260127*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->260162
/*260130*/                OPC_RecordMemRef,
/*260131*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*260132*/                OPC_CheckFoldableChainNode,
/*260133*/                OPC_RecordChild1, // #2 = $src2
/*260134*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*260136*/                OPC_MoveParent,
/*260137*/                OPC_RecordChild1, // #3 = $src1
/*260138*/                OPC_MoveParent,
/*260139*/                OPC_RecordChild2, // #4 = $src0
/*260140*/                OPC_CheckType, MVT::v2i64,
/*260142*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*260144*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*260147*/                OPC_EmitMergeInputChains1_1,
/*260148*/                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] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPORQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*260162*/              0, // EndSwitchOpcode
/*260163*/            0, /*End of Scope*/
/*260164*/          /*SwitchOpcode*/ 52|128,2/*308*/, TARGET_VAL(ISD::XOR),// ->260476
/*260168*/            OPC_Scope, 76, /*->260246*/ // 4 children in Scope
/*260170*/              OPC_RecordChild0, // #1 = $src1
/*260171*/              OPC_MoveChild1,
/*260172*/              OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->260210
/*260176*/                OPC_RecordMemRef,
/*260177*/                OPC_RecordNode, // #2 = 'ld' chained node
/*260178*/                OPC_CheckFoldableChainNode,
/*260179*/                OPC_RecordChild1, // #3 = $src2
/*260180*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*260182*/                OPC_CheckPredicate, 9, // Predicate_load
/*260184*/                OPC_MoveParent,
/*260185*/                OPC_MoveParent,
/*260186*/                OPC_MoveChild2,
/*260187*/                OPC_CheckImmAllZerosV,
/*260188*/                OPC_MoveParent,
/*260189*/                OPC_CheckType, MVT::v2i64,
/*260191*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*260193*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*260196*/                OPC_EmitMergeInputChains1_2,
/*260197*/                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>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPXORQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*260210*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->260245
/*260213*/                OPC_RecordMemRef,
/*260214*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*260215*/                OPC_CheckFoldableChainNode,
/*260216*/                OPC_RecordChild1, // #3 = $src2
/*260217*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*260219*/                OPC_MoveParent,
/*260220*/                OPC_MoveParent,
/*260221*/                OPC_MoveChild2,
/*260222*/                OPC_CheckImmAllZerosV,
/*260223*/                OPC_MoveParent,
/*260224*/                OPC_CheckType, MVT::v2i64,
/*260226*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*260228*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*260231*/                OPC_EmitMergeInputChains1_2,
/*260232*/                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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPXORQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*260245*/              0, // EndSwitchOpcode
/*260246*/            /*Scope*/ 77, /*->260324*/
/*260247*/              OPC_MoveChild0,
/*260248*/              OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->260287
/*260252*/                OPC_RecordMemRef,
/*260253*/                OPC_RecordNode, // #1 = 'ld' chained node
/*260254*/                OPC_CheckFoldableChainNode,
/*260255*/                OPC_RecordChild1, // #2 = $src2
/*260256*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*260258*/                OPC_CheckPredicate, 9, // Predicate_load
/*260260*/                OPC_MoveParent,
/*260261*/                OPC_RecordChild1, // #3 = $src1
/*260262*/                OPC_MoveParent,
/*260263*/                OPC_MoveChild2,
/*260264*/                OPC_CheckImmAllZerosV,
/*260265*/                OPC_MoveParent,
/*260266*/                OPC_CheckType, MVT::v2i64,
/*260268*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*260270*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*260273*/                OPC_EmitMergeInputChains1_1,
/*260274*/                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>>, VR128X:{ *:[v2i64] }:$src1), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPXORQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*260287*/              /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->260323
/*260290*/                OPC_RecordMemRef,
/*260291*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*260292*/                OPC_CheckFoldableChainNode,
/*260293*/                OPC_RecordChild1, // #2 = $src2
/*260294*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*260296*/                OPC_MoveParent,
/*260297*/                OPC_RecordChild1, // #3 = $src1
/*260298*/                OPC_MoveParent,
/*260299*/                OPC_MoveChild2,
/*260300*/                OPC_CheckImmAllZerosV,
/*260301*/                OPC_MoveParent,
/*260302*/                OPC_CheckType, MVT::v2i64,
/*260304*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*260306*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*260309*/                OPC_EmitMergeInputChains1_1,
/*260310*/                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] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src1), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPXORQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*260323*/              0, // EndSwitchOpcode
/*260324*/            /*Scope*/ 74, /*->260399*/
/*260325*/              OPC_RecordChild0, // #1 = $src1
/*260326*/              OPC_MoveChild1,
/*260327*/              OPC_SwitchOpcode /*2 cases */, 33, TARGET_VAL(ISD::LOAD),// ->260364
/*260331*/                OPC_RecordMemRef,
/*260332*/                OPC_RecordNode, // #2 = 'ld' chained node
/*260333*/                OPC_CheckFoldableChainNode,
/*260334*/                OPC_RecordChild1, // #3 = $src2
/*260335*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*260337*/                OPC_CheckPredicate, 9, // Predicate_load
/*260339*/                OPC_MoveParent,
/*260340*/                OPC_MoveParent,
/*260341*/                OPC_RecordChild2, // #4 = $src0
/*260342*/                OPC_CheckType, MVT::v2i64,
/*260344*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*260346*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*260349*/                OPC_EmitMergeInputChains1_2,
/*260350*/                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>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPXORQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*260364*/              /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->260398
/*260367*/                OPC_RecordMemRef,
/*260368*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*260369*/                OPC_CheckFoldableChainNode,
/*260370*/                OPC_RecordChild1, // #3 = $src2
/*260371*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*260373*/                OPC_MoveParent,
/*260374*/                OPC_MoveParent,
/*260375*/                OPC_RecordChild2, // #4 = $src0
/*260376*/                OPC_CheckType, MVT::v2i64,
/*260378*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*260380*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*260383*/                OPC_EmitMergeInputChains1_2,
/*260384*/                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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPXORQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*260398*/              0, // EndSwitchOpcode
/*260399*/            /*Scope*/ 75, /*->260475*/
/*260400*/              OPC_MoveChild0,
/*260401*/              OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->260439
/*260405*/                OPC_RecordMemRef,
/*260406*/                OPC_RecordNode, // #1 = 'ld' chained node
/*260407*/                OPC_CheckFoldableChainNode,
/*260408*/                OPC_RecordChild1, // #2 = $src2
/*260409*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*260411*/                OPC_CheckPredicate, 9, // Predicate_load
/*260413*/                OPC_MoveParent,
/*260414*/                OPC_RecordChild1, // #3 = $src1
/*260415*/                OPC_MoveParent,
/*260416*/                OPC_RecordChild2, // #4 = $src0
/*260417*/                OPC_CheckType, MVT::v2i64,
/*260419*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*260421*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*260424*/                OPC_EmitMergeInputChains1_1,
/*260425*/                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>>, VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPXORQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*260439*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->260474
/*260442*/                OPC_RecordMemRef,
/*260443*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*260444*/                OPC_CheckFoldableChainNode,
/*260445*/                OPC_RecordChild1, // #2 = $src2
/*260446*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*260448*/                OPC_MoveParent,
/*260449*/                OPC_RecordChild1, // #3 = $src1
/*260450*/                OPC_MoveParent,
/*260451*/                OPC_RecordChild2, // #4 = $src0
/*260452*/                OPC_CheckType, MVT::v2i64,
/*260454*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*260456*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*260459*/                OPC_EmitMergeInputChains1_1,
/*260460*/                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] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPXORQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*260474*/              0, // EndSwitchOpcode
/*260475*/            0, /*End of Scope*/
/*260476*/          /*SwitchOpcode*/ 2|128,1/*130*/, TARGET_VAL(X86ISD::ANDNP),// ->260610
/*260480*/            OPC_RecordChild0, // #1 = $src1
/*260481*/            OPC_MoveChild1,
/*260482*/            OPC_SwitchOpcode /*2 cases */, 61, TARGET_VAL(ISD::LOAD),// ->260547
/*260486*/              OPC_RecordMemRef,
/*260487*/              OPC_RecordNode, // #2 = 'ld' chained node
/*260488*/              OPC_CheckFoldableChainNode,
/*260489*/              OPC_RecordChild1, // #3 = $src2
/*260490*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*260492*/              OPC_CheckPredicate, 9, // Predicate_load
/*260494*/              OPC_MoveParent,
/*260495*/              OPC_MoveParent,
/*260496*/              OPC_Scope, 24, /*->260522*/ // 2 children in Scope
/*260498*/                OPC_MoveChild2,
/*260499*/                OPC_CheckImmAllZerosV,
/*260500*/                OPC_MoveParent,
/*260501*/                OPC_CheckType, MVT::v2i64,
/*260503*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*260505*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*260508*/                OPC_EmitMergeInputChains1_2,
/*260509*/                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>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPANDNQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*260522*/              /*Scope*/ 23, /*->260546*/
/*260523*/                OPC_RecordChild2, // #4 = $src0
/*260524*/                OPC_CheckType, MVT::v2i64,
/*260526*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*260528*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*260531*/                OPC_EmitMergeInputChains1_2,
/*260532*/                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>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPANDNQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*260546*/              0, /*End of Scope*/
/*260547*/            /*SwitchOpcode*/ 59, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->260609
/*260550*/              OPC_RecordMemRef,
/*260551*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*260552*/              OPC_CheckFoldableChainNode,
/*260553*/              OPC_RecordChild1, // #3 = $src2
/*260554*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*260556*/              OPC_MoveParent,
/*260557*/              OPC_MoveParent,
/*260558*/              OPC_Scope, 24, /*->260584*/ // 2 children in Scope
/*260560*/                OPC_MoveChild2,
/*260561*/                OPC_CheckImmAllZerosV,
/*260562*/                OPC_MoveParent,
/*260563*/                OPC_CheckType, MVT::v2i64,
/*260565*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*260567*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*260570*/                OPC_EmitMergeInputChains1_2,
/*260571*/                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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPANDNQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*260584*/              /*Scope*/ 23, /*->260608*/
/*260585*/                OPC_RecordChild2, // #4 = $src0
/*260586*/                OPC_CheckType, MVT::v2i64,
/*260588*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*260590*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*260593*/                OPC_EmitMergeInputChains1_2,
/*260594*/                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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPANDNQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*260608*/              0, /*End of Scope*/
/*260609*/            0, // EndSwitchOpcode
/*260610*/          /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VSHL),// ->260681
/*260613*/            OPC_RecordChild0, // #1 = $src1
/*260614*/            OPC_MoveChild1,
/*260615*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*260618*/            OPC_RecordMemRef,
/*260619*/            OPC_RecordNode, // #2 = 'ld' chained node
/*260620*/            OPC_CheckFoldableChainNode,
/*260621*/            OPC_RecordChild1, // #3 = $src2
/*260622*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*260624*/            OPC_CheckPredicate, 9, // Predicate_load
/*260626*/            OPC_CheckType, MVT::v2i64,
/*260628*/            OPC_MoveParent,
/*260629*/            OPC_MoveParent,
/*260630*/            OPC_Scope, 24, /*->260656*/ // 2 children in Scope
/*260632*/              OPC_MoveChild2,
/*260633*/              OPC_CheckImmAllZerosV,
/*260634*/              OPC_MoveParent,
/*260635*/              OPC_CheckType, MVT::v2i64,
/*260637*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*260639*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*260642*/              OPC_EmitMergeInputChains1_2,
/*260643*/              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>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                        // Dst: (VPSLLQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*260656*/            /*Scope*/ 23, /*->260680*/
/*260657*/              OPC_RecordChild2, // #4 = $src0
/*260658*/              OPC_CheckType, MVT::v2i64,
/*260660*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*260662*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*260665*/              OPC_EmitMergeInputChains1_2,
/*260666*/              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>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                        // Dst: (VPSLLQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*260680*/            0, /*End of Scope*/
/*260681*/          /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VSRA),// ->260752
/*260684*/            OPC_RecordChild0, // #1 = $src1
/*260685*/            OPC_MoveChild1,
/*260686*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*260689*/            OPC_RecordMemRef,
/*260690*/            OPC_RecordNode, // #2 = 'ld' chained node
/*260691*/            OPC_CheckFoldableChainNode,
/*260692*/            OPC_RecordChild1, // #3 = $src2
/*260693*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*260695*/            OPC_CheckPredicate, 9, // Predicate_load
/*260697*/            OPC_CheckType, MVT::v2i64,
/*260699*/            OPC_MoveParent,
/*260700*/            OPC_MoveParent,
/*260701*/            OPC_Scope, 24, /*->260727*/ // 2 children in Scope
/*260703*/              OPC_MoveChild2,
/*260704*/              OPC_CheckImmAllZerosV,
/*260705*/              OPC_MoveParent,
/*260706*/              OPC_CheckType, MVT::v2i64,
/*260708*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*260710*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*260713*/              OPC_EmitMergeInputChains1_2,
/*260714*/              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>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                        // Dst: (VPSRAQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*260727*/            /*Scope*/ 23, /*->260751*/
/*260728*/              OPC_RecordChild2, // #4 = $src0
/*260729*/              OPC_CheckType, MVT::v2i64,
/*260731*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*260733*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*260736*/              OPC_EmitMergeInputChains1_2,
/*260737*/              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>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                        // Dst: (VPSRAQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*260751*/            0, /*End of Scope*/
/*260752*/          /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VSRL),// ->260823
/*260755*/            OPC_RecordChild0, // #1 = $src1
/*260756*/            OPC_MoveChild1,
/*260757*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*260760*/            OPC_RecordMemRef,
/*260761*/            OPC_RecordNode, // #2 = 'ld' chained node
/*260762*/            OPC_CheckFoldableChainNode,
/*260763*/            OPC_RecordChild1, // #3 = $src2
/*260764*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*260766*/            OPC_CheckPredicate, 9, // Predicate_load
/*260768*/            OPC_CheckType, MVT::v2i64,
/*260770*/            OPC_MoveParent,
/*260771*/            OPC_MoveParent,
/*260772*/            OPC_Scope, 24, /*->260798*/ // 2 children in Scope
/*260774*/              OPC_MoveChild2,
/*260775*/              OPC_CheckImmAllZerosV,
/*260776*/              OPC_MoveParent,
/*260777*/              OPC_CheckType, MVT::v2i64,
/*260779*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*260781*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*260784*/              OPC_EmitMergeInputChains1_2,
/*260785*/              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>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                        // Dst: (VPSRLQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*260798*/            /*Scope*/ 23, /*->260822*/
/*260799*/              OPC_RecordChild2, // #4 = $src0
/*260800*/              OPC_CheckType, MVT::v2i64,
/*260802*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*260804*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*260807*/              OPC_EmitMergeInputChains1_2,
/*260808*/              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>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                        // Dst: (VPSRLQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*260822*/            0, /*End of Scope*/
/*260823*/          /*SwitchOpcode*/ 2|128,1/*130*/, TARGET_VAL(X86ISD::VSHLV),// ->260957
/*260827*/            OPC_RecordChild0, // #1 = $src1
/*260828*/            OPC_MoveChild1,
/*260829*/            OPC_SwitchOpcode /*2 cases */, 61, TARGET_VAL(ISD::LOAD),// ->260894
/*260833*/              OPC_RecordMemRef,
/*260834*/              OPC_RecordNode, // #2 = 'ld' chained node
/*260835*/              OPC_CheckFoldableChainNode,
/*260836*/              OPC_RecordChild1, // #3 = $src2
/*260837*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*260839*/              OPC_CheckPredicate, 9, // Predicate_load
/*260841*/              OPC_MoveParent,
/*260842*/              OPC_MoveParent,
/*260843*/              OPC_Scope, 24, /*->260869*/ // 2 children in Scope
/*260845*/                OPC_MoveChild2,
/*260846*/                OPC_CheckImmAllZerosV,
/*260847*/                OPC_MoveParent,
/*260848*/                OPC_CheckType, MVT::v2i64,
/*260850*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*260852*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*260855*/                OPC_EmitMergeInputChains1_2,
/*260856*/                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, (X86vshlv:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPSLLVQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*260869*/              /*Scope*/ 23, /*->260893*/
/*260870*/                OPC_RecordChild2, // #4 = $src0
/*260871*/                OPC_CheckType, MVT::v2i64,
/*260873*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*260875*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*260878*/                OPC_EmitMergeInputChains1_2,
/*260879*/                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, (X86vshlv:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPSLLVQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*260893*/              0, /*End of Scope*/
/*260894*/            /*SwitchOpcode*/ 59, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->260956
/*260897*/              OPC_RecordMemRef,
/*260898*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*260899*/              OPC_CheckFoldableChainNode,
/*260900*/              OPC_RecordChild1, // #3 = $src2
/*260901*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*260903*/              OPC_MoveParent,
/*260904*/              OPC_MoveParent,
/*260905*/              OPC_Scope, 24, /*->260931*/ // 2 children in Scope
/*260907*/                OPC_MoveChild2,
/*260908*/                OPC_CheckImmAllZerosV,
/*260909*/                OPC_MoveParent,
/*260910*/                OPC_CheckType, MVT::v2i64,
/*260912*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*260914*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*260917*/                OPC_EmitMergeInputChains1_2,
/*260918*/                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, (X86vshlv:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPSLLVQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*260931*/              /*Scope*/ 23, /*->260955*/
/*260932*/                OPC_RecordChild2, // #4 = $src0
/*260933*/                OPC_CheckType, MVT::v2i64,
/*260935*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*260937*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*260940*/                OPC_EmitMergeInputChains1_2,
/*260941*/                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, (X86vshlv:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPSLLVQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*260955*/              0, /*End of Scope*/
/*260956*/            0, // EndSwitchOpcode
/*260957*/          /*SwitchOpcode*/ 2|128,1/*130*/, TARGET_VAL(X86ISD::VSRAV),// ->261091
/*260961*/            OPC_RecordChild0, // #1 = $src1
/*260962*/            OPC_MoveChild1,
/*260963*/            OPC_SwitchOpcode /*2 cases */, 61, TARGET_VAL(ISD::LOAD),// ->261028
/*260967*/              OPC_RecordMemRef,
/*260968*/              OPC_RecordNode, // #2 = 'ld' chained node
/*260969*/              OPC_CheckFoldableChainNode,
/*260970*/              OPC_RecordChild1, // #3 = $src2
/*260971*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*260973*/              OPC_CheckPredicate, 9, // Predicate_load
/*260975*/              OPC_MoveParent,
/*260976*/              OPC_MoveParent,
/*260977*/              OPC_Scope, 24, /*->261003*/ // 2 children in Scope
/*260979*/                OPC_MoveChild2,
/*260980*/                OPC_CheckImmAllZerosV,
/*260981*/                OPC_MoveParent,
/*260982*/                OPC_CheckType, MVT::v2i64,
/*260984*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*260986*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*260989*/                OPC_EmitMergeInputChains1_2,
/*260990*/                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>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPSRAVQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*261003*/              /*Scope*/ 23, /*->261027*/
/*261004*/                OPC_RecordChild2, // #4 = $src0
/*261005*/                OPC_CheckType, MVT::v2i64,
/*261007*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*261009*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*261012*/                OPC_EmitMergeInputChains1_2,
/*261013*/                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>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPSRAVQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*261027*/              0, /*End of Scope*/
/*261028*/            /*SwitchOpcode*/ 59, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->261090
/*261031*/              OPC_RecordMemRef,
/*261032*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*261033*/              OPC_CheckFoldableChainNode,
/*261034*/              OPC_RecordChild1, // #3 = $src2
/*261035*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*261037*/              OPC_MoveParent,
/*261038*/              OPC_MoveParent,
/*261039*/              OPC_Scope, 24, /*->261065*/ // 2 children in Scope
/*261041*/                OPC_MoveChild2,
/*261042*/                OPC_CheckImmAllZerosV,
/*261043*/                OPC_MoveParent,
/*261044*/                OPC_CheckType, MVT::v2i64,
/*261046*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*261048*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*261051*/                OPC_EmitMergeInputChains1_2,
/*261052*/                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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPSRAVQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*261065*/              /*Scope*/ 23, /*->261089*/
/*261066*/                OPC_RecordChild2, // #4 = $src0
/*261067*/                OPC_CheckType, MVT::v2i64,
/*261069*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*261071*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*261074*/                OPC_EmitMergeInputChains1_2,
/*261075*/                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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPSRAVQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*261089*/              0, /*End of Scope*/
/*261090*/            0, // EndSwitchOpcode
/*261091*/          /*SwitchOpcode*/ 2|128,1/*130*/, TARGET_VAL(X86ISD::VSRLV),// ->261225
/*261095*/            OPC_RecordChild0, // #1 = $src1
/*261096*/            OPC_MoveChild1,
/*261097*/            OPC_SwitchOpcode /*2 cases */, 61, TARGET_VAL(ISD::LOAD),// ->261162
/*261101*/              OPC_RecordMemRef,
/*261102*/              OPC_RecordNode, // #2 = 'ld' chained node
/*261103*/              OPC_CheckFoldableChainNode,
/*261104*/              OPC_RecordChild1, // #3 = $src2
/*261105*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*261107*/              OPC_CheckPredicate, 9, // Predicate_load
/*261109*/              OPC_MoveParent,
/*261110*/              OPC_MoveParent,
/*261111*/              OPC_Scope, 24, /*->261137*/ // 2 children in Scope
/*261113*/                OPC_MoveChild2,
/*261114*/                OPC_CheckImmAllZerosV,
/*261115*/                OPC_MoveParent,
/*261116*/                OPC_CheckType, MVT::v2i64,
/*261118*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*261120*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*261123*/                OPC_EmitMergeInputChains1_2,
/*261124*/                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, (X86vsrlv:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPSRLVQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*261137*/              /*Scope*/ 23, /*->261161*/
/*261138*/                OPC_RecordChild2, // #4 = $src0
/*261139*/                OPC_CheckType, MVT::v2i64,
/*261141*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*261143*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*261146*/                OPC_EmitMergeInputChains1_2,
/*261147*/                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, (X86vsrlv:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPSRLVQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*261161*/              0, /*End of Scope*/
/*261162*/            /*SwitchOpcode*/ 59, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->261224
/*261165*/              OPC_RecordMemRef,
/*261166*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*261167*/              OPC_CheckFoldableChainNode,
/*261168*/              OPC_RecordChild1, // #3 = $src2
/*261169*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*261171*/              OPC_MoveParent,
/*261172*/              OPC_MoveParent,
/*261173*/              OPC_Scope, 24, /*->261199*/ // 2 children in Scope
/*261175*/                OPC_MoveChild2,
/*261176*/                OPC_CheckImmAllZerosV,
/*261177*/                OPC_MoveParent,
/*261178*/                OPC_CheckType, MVT::v2i64,
/*261180*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*261182*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*261185*/                OPC_EmitMergeInputChains1_2,
/*261186*/                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, (X86vsrlv:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPSRLVQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*261199*/              /*Scope*/ 23, /*->261223*/
/*261200*/                OPC_RecordChild2, // #4 = $src0
/*261201*/                OPC_CheckType, MVT::v2i64,
/*261203*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*261205*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*261208*/                OPC_EmitMergeInputChains1_2,
/*261209*/                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, (X86vsrlv:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPSRLVQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*261223*/              0, /*End of Scope*/
/*261224*/            0, // EndSwitchOpcode
/*261225*/          /*SwitchOpcode*/ 6|128,1/*134*/, TARGET_VAL(ISD::ROTR),// ->261363
/*261229*/            OPC_RecordChild0, // #1 = $src1
/*261230*/            OPC_MoveChild1,
/*261231*/            OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->261298
/*261235*/              OPC_RecordMemRef,
/*261236*/              OPC_RecordNode, // #2 = 'ld' chained node
/*261237*/              OPC_CheckFoldableChainNode,
/*261238*/              OPC_RecordChild1, // #3 = $src2
/*261239*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*261241*/              OPC_CheckPredicate, 9, // Predicate_load
/*261243*/              OPC_CheckType, MVT::v2i64,
/*261245*/              OPC_MoveParent,
/*261246*/              OPC_MoveParent,
/*261247*/              OPC_Scope, 24, /*->261273*/ // 2 children in Scope
/*261249*/                OPC_MoveChild2,
/*261250*/                OPC_CheckImmAllZerosV,
/*261251*/                OPC_MoveParent,
/*261252*/                OPC_CheckType, MVT::v2i64,
/*261254*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*261256*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*261259*/                OPC_EmitMergeInputChains1_2,
/*261260*/                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>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPRORVQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*261273*/              /*Scope*/ 23, /*->261297*/
/*261274*/                OPC_RecordChild2, // #4 = $src0
/*261275*/                OPC_CheckType, MVT::v2i64,
/*261277*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*261279*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*261282*/                OPC_EmitMergeInputChains1_2,
/*261283*/                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>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPRORVQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*261297*/              0, /*End of Scope*/
/*261298*/            /*SwitchOpcode*/ 61, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->261362
/*261301*/              OPC_RecordMemRef,
/*261302*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*261303*/              OPC_CheckFoldableChainNode,
/*261304*/              OPC_RecordChild1, // #3 = $src2
/*261305*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*261307*/              OPC_CheckType, MVT::v2i64,
/*261309*/              OPC_MoveParent,
/*261310*/              OPC_MoveParent,
/*261311*/              OPC_Scope, 24, /*->261337*/ // 2 children in Scope
/*261313*/                OPC_MoveChild2,
/*261314*/                OPC_CheckImmAllZerosV,
/*261315*/                OPC_MoveParent,
/*261316*/                OPC_CheckType, MVT::v2i64,
/*261318*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*261320*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*261323*/                OPC_EmitMergeInputChains1_2,
/*261324*/                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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPRORVQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*261337*/              /*Scope*/ 23, /*->261361*/
/*261338*/                OPC_RecordChild2, // #4 = $src0
/*261339*/                OPC_CheckType, MVT::v2i64,
/*261341*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*261343*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*261346*/                OPC_EmitMergeInputChains1_2,
/*261347*/                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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPRORVQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*261361*/              0, /*End of Scope*/
/*261362*/            0, // EndSwitchOpcode
/*261363*/          /*SwitchOpcode*/ 6|128,1/*134*/, TARGET_VAL(ISD::ROTL),// ->261501
/*261367*/            OPC_RecordChild0, // #1 = $src1
/*261368*/            OPC_MoveChild1,
/*261369*/            OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->261436
/*261373*/              OPC_RecordMemRef,
/*261374*/              OPC_RecordNode, // #2 = 'ld' chained node
/*261375*/              OPC_CheckFoldableChainNode,
/*261376*/              OPC_RecordChild1, // #3 = $src2
/*261377*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*261379*/              OPC_CheckPredicate, 9, // Predicate_load
/*261381*/              OPC_CheckType, MVT::v2i64,
/*261383*/              OPC_MoveParent,
/*261384*/              OPC_MoveParent,
/*261385*/              OPC_Scope, 24, /*->261411*/ // 2 children in Scope
/*261387*/                OPC_MoveChild2,
/*261388*/                OPC_CheckImmAllZerosV,
/*261389*/                OPC_MoveParent,
/*261390*/                OPC_CheckType, MVT::v2i64,
/*261392*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*261394*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*261397*/                OPC_EmitMergeInputChains1_2,
/*261398*/                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>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPROLVQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*261411*/              /*Scope*/ 23, /*->261435*/
/*261412*/                OPC_RecordChild2, // #4 = $src0
/*261413*/                OPC_CheckType, MVT::v2i64,
/*261415*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*261417*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*261420*/                OPC_EmitMergeInputChains1_2,
/*261421*/                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>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPROLVQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*261435*/              0, /*End of Scope*/
/*261436*/            /*SwitchOpcode*/ 61, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->261500
/*261439*/              OPC_RecordMemRef,
/*261440*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*261441*/              OPC_CheckFoldableChainNode,
/*261442*/              OPC_RecordChild1, // #3 = $src2
/*261443*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*261445*/              OPC_CheckType, MVT::v2i64,
/*261447*/              OPC_MoveParent,
/*261448*/              OPC_MoveParent,
/*261449*/              OPC_Scope, 24, /*->261475*/ // 2 children in Scope
/*261451*/                OPC_MoveChild2,
/*261452*/                OPC_CheckImmAllZerosV,
/*261453*/                OPC_MoveParent,
/*261454*/                OPC_CheckType, MVT::v2i64,
/*261456*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*261458*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*261461*/                OPC_EmitMergeInputChains1_2,
/*261462*/                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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPROLVQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*261475*/              /*Scope*/ 23, /*->261499*/
/*261476*/                OPC_RecordChild2, // #4 = $src0
/*261477*/                OPC_CheckType, MVT::v2i64,
/*261479*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*261481*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*261484*/                OPC_EmitMergeInputChains1_2,
/*261485*/                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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPROLVQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*261499*/              0, /*End of Scope*/
/*261500*/            0, // EndSwitchOpcode
/*261501*/          /*SwitchOpcode*/ 68|128,2/*324*/, TARGET_VAL(X86ISD::VPMADD52L),// ->261829
/*261505*/            OPC_Scope, 80, /*->261587*/ // 4 children in Scope
/*261507*/              OPC_RecordChild0, // #1 = $src2
/*261508*/              OPC_MoveChild1,
/*261509*/              OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->261549
/*261513*/                OPC_RecordMemRef,
/*261514*/                OPC_RecordNode, // #2 = 'ld' chained node
/*261515*/                OPC_CheckFoldableChainNode,
/*261516*/                OPC_RecordChild1, // #3 = $src3
/*261517*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*261519*/                OPC_CheckPredicate, 9, // Predicate_load
/*261521*/                OPC_MoveParent,
/*261522*/                OPC_RecordChild2, // #4 = $src1
/*261523*/                OPC_MoveParent,
/*261524*/                OPC_MoveChild2,
/*261525*/                OPC_CheckImmAllZerosV,
/*261526*/                OPC_MoveParent,
/*261527*/                OPC_CheckType, MVT::v2i64,
/*261529*/                OPC_CheckPatternPredicate, 184, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*261531*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*261534*/                OPC_EmitMergeInputChains1_2,
/*261535*/                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>>, VR128X:{ *:[v2i64] }:$src1), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPMADD52LUQZ128mkz:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*261549*/              /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->261586
/*261552*/                OPC_RecordMemRef,
/*261553*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*261554*/                OPC_CheckFoldableChainNode,
/*261555*/                OPC_RecordChild1, // #3 = $src3
/*261556*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*261558*/                OPC_MoveParent,
/*261559*/                OPC_RecordChild2, // #4 = $src1
/*261560*/                OPC_MoveParent,
/*261561*/                OPC_MoveChild2,
/*261562*/                OPC_CheckImmAllZerosV,
/*261563*/                OPC_MoveParent,
/*261564*/                OPC_CheckType, MVT::v2i64,
/*261566*/                OPC_CheckPatternPredicate, 184, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*261568*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*261571*/                OPC_EmitMergeInputChains1_2,
/*261572*/                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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src1), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPMADD52LUQZ128mbkz:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*261586*/              0, // EndSwitchOpcode
/*261587*/            /*Scope*/ 81, /*->261669*/
/*261588*/              OPC_MoveChild0,
/*261589*/              OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->261630
/*261593*/                OPC_RecordMemRef,
/*261594*/                OPC_RecordNode, // #1 = 'ld' chained node
/*261595*/                OPC_CheckFoldableChainNode,
/*261596*/                OPC_RecordChild1, // #2 = $src3
/*261597*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*261599*/                OPC_CheckPredicate, 9, // Predicate_load
/*261601*/                OPC_MoveParent,
/*261602*/                OPC_RecordChild1, // #3 = $src2
/*261603*/                OPC_RecordChild2, // #4 = $src1
/*261604*/                OPC_MoveParent,
/*261605*/                OPC_MoveChild2,
/*261606*/                OPC_CheckImmAllZerosV,
/*261607*/                OPC_MoveParent,
/*261608*/                OPC_CheckType, MVT::v2i64,
/*261610*/                OPC_CheckPatternPredicate, 184, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*261612*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*261615*/                OPC_EmitMergeInputChains1_1,
/*261616*/                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>>, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src1), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPMADD52LUQZ128mkz:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*261630*/              /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->261668
/*261633*/                OPC_RecordMemRef,
/*261634*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*261635*/                OPC_CheckFoldableChainNode,
/*261636*/                OPC_RecordChild1, // #2 = $src3
/*261637*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*261639*/                OPC_MoveParent,
/*261640*/                OPC_RecordChild1, // #3 = $src2
/*261641*/                OPC_RecordChild2, // #4 = $src1
/*261642*/                OPC_MoveParent,
/*261643*/                OPC_MoveChild2,
/*261644*/                OPC_CheckImmAllZerosV,
/*261645*/                OPC_MoveParent,
/*261646*/                OPC_CheckType, MVT::v2i64,
/*261648*/                OPC_CheckPatternPredicate, 184, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*261650*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*261653*/                OPC_EmitMergeInputChains1_1,
/*261654*/                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] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src1), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPMADD52LUQZ128mbkz:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*261668*/              0, // EndSwitchOpcode
/*261669*/            /*Scope*/ 78, /*->261748*/
/*261670*/              OPC_RecordChild0, // #1 = $src2
/*261671*/              OPC_MoveChild1,
/*261672*/              OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->261711
/*261676*/                OPC_RecordMemRef,
/*261677*/                OPC_RecordNode, // #2 = 'ld' chained node
/*261678*/                OPC_CheckFoldableChainNode,
/*261679*/                OPC_RecordChild1, // #3 = $src3
/*261680*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*261682*/                OPC_CheckPredicate, 9, // Predicate_load
/*261684*/                OPC_MoveParent,
/*261685*/                OPC_RecordChild2, // #4 = $src1
/*261686*/                OPC_MoveParent,
/*261687*/                OPC_CheckChild2Same, 4,
/*261689*/                OPC_CheckType, MVT::v2i64,
/*261691*/                OPC_CheckPatternPredicate, 184, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*261693*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*261696*/                OPC_EmitMergeInputChains1_2,
/*261697*/                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>>, VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v2i64] }:$src1) - Complexity = 28
                          // Dst: (VPMADD52LUQZ128mk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*261711*/              /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->261747
/*261714*/                OPC_RecordMemRef,
/*261715*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*261716*/                OPC_CheckFoldableChainNode,
/*261717*/                OPC_RecordChild1, // #3 = $src3
/*261718*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*261720*/                OPC_MoveParent,
/*261721*/                OPC_RecordChild2, // #4 = $src1
/*261722*/                OPC_MoveParent,
/*261723*/                OPC_CheckChild2Same, 4,
/*261725*/                OPC_CheckType, MVT::v2i64,
/*261727*/                OPC_CheckPatternPredicate, 184, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*261729*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*261732*/                OPC_EmitMergeInputChains1_2,
/*261733*/                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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v2i64] }:$src1) - Complexity = 28
                          // Dst: (VPMADD52LUQZ128mbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*261747*/              0, // EndSwitchOpcode
/*261748*/            /*Scope*/ 79, /*->261828*/
/*261749*/              OPC_MoveChild0,
/*261750*/              OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->261790
/*261754*/                OPC_RecordMemRef,
/*261755*/                OPC_RecordNode, // #1 = 'ld' chained node
/*261756*/                OPC_CheckFoldableChainNode,
/*261757*/                OPC_RecordChild1, // #2 = $src3
/*261758*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*261760*/                OPC_CheckPredicate, 9, // Predicate_load
/*261762*/                OPC_MoveParent,
/*261763*/                OPC_RecordChild1, // #3 = $src2
/*261764*/                OPC_RecordChild2, // #4 = $src1
/*261765*/                OPC_MoveParent,
/*261766*/                OPC_CheckChild2Same, 4,
/*261768*/                OPC_CheckType, MVT::v2i64,
/*261770*/                OPC_CheckPatternPredicate, 184, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*261772*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*261775*/                OPC_EmitMergeInputChains1_1,
/*261776*/                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>>, 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)
/*261790*/              /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->261827
/*261793*/                OPC_RecordMemRef,
/*261794*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*261795*/                OPC_CheckFoldableChainNode,
/*261796*/                OPC_RecordChild1, // #2 = $src3
/*261797*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*261799*/                OPC_MoveParent,
/*261800*/                OPC_RecordChild1, // #3 = $src2
/*261801*/                OPC_RecordChild2, // #4 = $src1
/*261802*/                OPC_MoveParent,
/*261803*/                OPC_CheckChild2Same, 4,
/*261805*/                OPC_CheckType, MVT::v2i64,
/*261807*/                OPC_CheckPatternPredicate, 184, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*261809*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*261812*/                OPC_EmitMergeInputChains1_1,
/*261813*/                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] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v2i64] }:$src1) - Complexity = 28
                          // Dst: (VPMADD52LUQZ128mbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*261827*/              0, // EndSwitchOpcode
/*261828*/            0, /*End of Scope*/
/*261829*/          /*SwitchOpcode*/ 68|128,2/*324*/, TARGET_VAL(X86ISD::VPMADD52H),// ->262157
/*261833*/            OPC_Scope, 80, /*->261915*/ // 4 children in Scope
/*261835*/              OPC_RecordChild0, // #1 = $src2
/*261836*/              OPC_MoveChild1,
/*261837*/              OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->261877
/*261841*/                OPC_RecordMemRef,
/*261842*/                OPC_RecordNode, // #2 = 'ld' chained node
/*261843*/                OPC_CheckFoldableChainNode,
/*261844*/                OPC_RecordChild1, // #3 = $src3
/*261845*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*261847*/                OPC_CheckPredicate, 9, // Predicate_load
/*261849*/                OPC_MoveParent,
/*261850*/                OPC_RecordChild2, // #4 = $src1
/*261851*/                OPC_MoveParent,
/*261852*/                OPC_MoveChild2,
/*261853*/                OPC_CheckImmAllZerosV,
/*261854*/                OPC_MoveParent,
/*261855*/                OPC_CheckType, MVT::v2i64,
/*261857*/                OPC_CheckPatternPredicate, 184, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*261859*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*261862*/                OPC_EmitMergeInputChains1_2,
/*261863*/                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>>, VR128X:{ *:[v2i64] }:$src1), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPMADD52HUQZ128mkz:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*261877*/              /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->261914
/*261880*/                OPC_RecordMemRef,
/*261881*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*261882*/                OPC_CheckFoldableChainNode,
/*261883*/                OPC_RecordChild1, // #3 = $src3
/*261884*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*261886*/                OPC_MoveParent,
/*261887*/                OPC_RecordChild2, // #4 = $src1
/*261888*/                OPC_MoveParent,
/*261889*/                OPC_MoveChild2,
/*261890*/                OPC_CheckImmAllZerosV,
/*261891*/                OPC_MoveParent,
/*261892*/                OPC_CheckType, MVT::v2i64,
/*261894*/                OPC_CheckPatternPredicate, 184, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*261896*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*261899*/                OPC_EmitMergeInputChains1_2,
/*261900*/                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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src1), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPMADD52HUQZ128mbkz:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*261914*/              0, // EndSwitchOpcode
/*261915*/            /*Scope*/ 81, /*->261997*/
/*261916*/              OPC_MoveChild0,
/*261917*/              OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->261958
/*261921*/                OPC_RecordMemRef,
/*261922*/                OPC_RecordNode, // #1 = 'ld' chained node
/*261923*/                OPC_CheckFoldableChainNode,
/*261924*/                OPC_RecordChild1, // #2 = $src3
/*261925*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*261927*/                OPC_CheckPredicate, 9, // Predicate_load
/*261929*/                OPC_MoveParent,
/*261930*/                OPC_RecordChild1, // #3 = $src2
/*261931*/                OPC_RecordChild2, // #4 = $src1
/*261932*/                OPC_MoveParent,
/*261933*/                OPC_MoveChild2,
/*261934*/                OPC_CheckImmAllZerosV,
/*261935*/                OPC_MoveParent,
/*261936*/                OPC_CheckType, MVT::v2i64,
/*261938*/                OPC_CheckPatternPredicate, 184, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*261940*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*261943*/                OPC_EmitMergeInputChains1_1,
/*261944*/                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>>, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src1), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPMADD52HUQZ128mkz:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*261958*/              /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->261996
/*261961*/                OPC_RecordMemRef,
/*261962*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*261963*/                OPC_CheckFoldableChainNode,
/*261964*/                OPC_RecordChild1, // #2 = $src3
/*261965*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*261967*/                OPC_MoveParent,
/*261968*/                OPC_RecordChild1, // #3 = $src2
/*261969*/                OPC_RecordChild2, // #4 = $src1
/*261970*/                OPC_MoveParent,
/*261971*/                OPC_MoveChild2,
/*261972*/                OPC_CheckImmAllZerosV,
/*261973*/                OPC_MoveParent,
/*261974*/                OPC_CheckType, MVT::v2i64,
/*261976*/                OPC_CheckPatternPredicate, 184, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*261978*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*261981*/                OPC_EmitMergeInputChains1_1,
/*261982*/                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] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src1), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPMADD52HUQZ128mbkz:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*261996*/              0, // EndSwitchOpcode
/*261997*/            /*Scope*/ 78, /*->262076*/
/*261998*/              OPC_RecordChild0, // #1 = $src2
/*261999*/              OPC_MoveChild1,
/*262000*/              OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->262039
/*262004*/                OPC_RecordMemRef,
/*262005*/                OPC_RecordNode, // #2 = 'ld' chained node
/*262006*/                OPC_CheckFoldableChainNode,
/*262007*/                OPC_RecordChild1, // #3 = $src3
/*262008*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*262010*/                OPC_CheckPredicate, 9, // Predicate_load
/*262012*/                OPC_MoveParent,
/*262013*/                OPC_RecordChild2, // #4 = $src1
/*262014*/                OPC_MoveParent,
/*262015*/                OPC_CheckChild2Same, 4,
/*262017*/                OPC_CheckType, MVT::v2i64,
/*262019*/                OPC_CheckPatternPredicate, 184, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*262021*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*262024*/                OPC_EmitMergeInputChains1_2,
/*262025*/                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>>, VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v2i64] }:$src1) - Complexity = 28
                          // Dst: (VPMADD52HUQZ128mk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*262039*/              /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->262075
/*262042*/                OPC_RecordMemRef,
/*262043*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*262044*/                OPC_CheckFoldableChainNode,
/*262045*/                OPC_RecordChild1, // #3 = $src3
/*262046*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*262048*/                OPC_MoveParent,
/*262049*/                OPC_RecordChild2, // #4 = $src1
/*262050*/                OPC_MoveParent,
/*262051*/                OPC_CheckChild2Same, 4,
/*262053*/                OPC_CheckType, MVT::v2i64,
/*262055*/                OPC_CheckPatternPredicate, 184, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*262057*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*262060*/                OPC_EmitMergeInputChains1_2,
/*262061*/                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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v2i64] }:$src1) - Complexity = 28
                          // Dst: (VPMADD52HUQZ128mbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*262075*/              0, // EndSwitchOpcode
/*262076*/            /*Scope*/ 79, /*->262156*/
/*262077*/              OPC_MoveChild0,
/*262078*/              OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->262118
/*262082*/                OPC_RecordMemRef,
/*262083*/                OPC_RecordNode, // #1 = 'ld' chained node
/*262084*/                OPC_CheckFoldableChainNode,
/*262085*/                OPC_RecordChild1, // #2 = $src3
/*262086*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*262088*/                OPC_CheckPredicate, 9, // Predicate_load
/*262090*/                OPC_MoveParent,
/*262091*/                OPC_RecordChild1, // #3 = $src2
/*262092*/                OPC_RecordChild2, // #4 = $src1
/*262093*/                OPC_MoveParent,
/*262094*/                OPC_CheckChild2Same, 4,
/*262096*/                OPC_CheckType, MVT::v2i64,
/*262098*/                OPC_CheckPatternPredicate, 184, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*262100*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*262103*/                OPC_EmitMergeInputChains1_1,
/*262104*/                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>>, 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)
/*262118*/              /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->262155
/*262121*/                OPC_RecordMemRef,
/*262122*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*262123*/                OPC_CheckFoldableChainNode,
/*262124*/                OPC_RecordChild1, // #2 = $src3
/*262125*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*262127*/                OPC_MoveParent,
/*262128*/                OPC_RecordChild1, // #3 = $src2
/*262129*/                OPC_RecordChild2, // #4 = $src1
/*262130*/                OPC_MoveParent,
/*262131*/                OPC_CheckChild2Same, 4,
/*262133*/                OPC_CheckType, MVT::v2i64,
/*262135*/                OPC_CheckPatternPredicate, 184, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*262137*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*262140*/                OPC_EmitMergeInputChains1_1,
/*262141*/                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] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src1), VR128X:{ *:[v2i64] }:$src1) - Complexity = 28
                          // Dst: (VPMADD52HUQZ128mbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*262155*/              0, // EndSwitchOpcode
/*262156*/            0, /*End of Scope*/
/*262157*/          /*SwitchOpcode*/ 125, TARGET_VAL(ISD::ABS),// ->262285
/*262160*/            OPC_MoveChild0,
/*262161*/            OPC_SwitchOpcode /*2 cases */, 59, TARGET_VAL(ISD::LOAD),// ->262224
/*262165*/              OPC_RecordMemRef,
/*262166*/              OPC_RecordNode, // #1 = 'ld' chained node
/*262167*/              OPC_CheckFoldableChainNode,
/*262168*/              OPC_RecordChild1, // #2 = $src1
/*262169*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*262171*/              OPC_CheckPredicate, 9, // Predicate_load
/*262173*/              OPC_MoveParent,
/*262174*/              OPC_MoveParent,
/*262175*/              OPC_Scope, 23, /*->262200*/ // 2 children in Scope
/*262177*/                OPC_MoveChild2,
/*262178*/                OPC_CheckImmAllZerosV,
/*262179*/                OPC_MoveParent,
/*262180*/                OPC_CheckType, MVT::v2i64,
/*262182*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*262184*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*262187*/                OPC_EmitMergeInputChains1_1,
/*262188*/                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>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPABSQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*262200*/              /*Scope*/ 22, /*->262223*/
/*262201*/                OPC_RecordChild2, // #3 = $src0
/*262202*/                OPC_CheckType, MVT::v2i64,
/*262204*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*262206*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*262209*/                OPC_EmitMergeInputChains1_1,
/*262210*/                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>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPABSQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*262223*/              0, /*End of Scope*/
/*262224*/            /*SwitchOpcode*/ 57, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->262284
/*262227*/              OPC_RecordMemRef,
/*262228*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*262229*/              OPC_CheckFoldableChainNode,
/*262230*/              OPC_RecordChild1, // #2 = $src1
/*262231*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*262233*/              OPC_MoveParent,
/*262234*/              OPC_MoveParent,
/*262235*/              OPC_Scope, 23, /*->262260*/ // 2 children in Scope
/*262237*/                OPC_MoveChild2,
/*262238*/                OPC_CheckImmAllZerosV,
/*262239*/                OPC_MoveParent,
/*262240*/                OPC_CheckType, MVT::v2i64,
/*262242*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*262244*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*262247*/                OPC_EmitMergeInputChains1_1,
/*262248*/                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] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPABSQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*262260*/              /*Scope*/ 22, /*->262283*/
/*262261*/                OPC_RecordChild2, // #3 = $src0
/*262262*/                OPC_CheckType, MVT::v2i64,
/*262264*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*262266*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*262269*/                OPC_EmitMergeInputChains1_1,
/*262270*/                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] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPABSQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*262283*/              0, /*End of Scope*/
/*262284*/            0, // EndSwitchOpcode
/*262285*/          /*SwitchOpcode*/ 1|128,1/*129*/, TARGET_VAL(ISD::CTLZ),// ->262418
/*262289*/            OPC_MoveChild0,
/*262290*/            OPC_SwitchOpcode /*2 cases */, 61, TARGET_VAL(ISD::LOAD),// ->262355
/*262294*/              OPC_RecordMemRef,
/*262295*/              OPC_RecordNode, // #1 = 'ld' chained node
/*262296*/              OPC_CheckFoldableChainNode,
/*262297*/              OPC_RecordChild1, // #2 = $src1
/*262298*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*262300*/              OPC_CheckPredicate, 9, // Predicate_load
/*262302*/              OPC_CheckType, MVT::v2i64,
/*262304*/              OPC_MoveParent,
/*262305*/              OPC_MoveParent,
/*262306*/              OPC_Scope, 23, /*->262331*/ // 2 children in Scope
/*262308*/                OPC_MoveChild2,
/*262309*/                OPC_CheckImmAllZerosV,
/*262310*/                OPC_MoveParent,
/*262311*/                OPC_CheckType, MVT::v2i64,
/*262313*/                OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*262315*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*262318*/                OPC_EmitMergeInputChains1_1,
/*262319*/                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>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPLZCNTQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*262331*/              /*Scope*/ 22, /*->262354*/
/*262332*/                OPC_RecordChild2, // #3 = $src0
/*262333*/                OPC_CheckType, MVT::v2i64,
/*262335*/                OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*262337*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*262340*/                OPC_EmitMergeInputChains1_1,
/*262341*/                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>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPLZCNTQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*262354*/              0, /*End of Scope*/
/*262355*/            /*SwitchOpcode*/ 59, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->262417
/*262358*/              OPC_RecordMemRef,
/*262359*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*262360*/              OPC_CheckFoldableChainNode,
/*262361*/              OPC_RecordChild1, // #2 = $src1
/*262362*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*262364*/              OPC_CheckType, MVT::v2i64,
/*262366*/              OPC_MoveParent,
/*262367*/              OPC_MoveParent,
/*262368*/              OPC_Scope, 23, /*->262393*/ // 2 children in Scope
/*262370*/                OPC_MoveChild2,
/*262371*/                OPC_CheckImmAllZerosV,
/*262372*/                OPC_MoveParent,
/*262373*/                OPC_CheckType, MVT::v2i64,
/*262375*/                OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*262377*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*262380*/                OPC_EmitMergeInputChains1_1,
/*262381*/                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] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPLZCNTQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*262393*/              /*Scope*/ 22, /*->262416*/
/*262394*/                OPC_RecordChild2, // #3 = $src0
/*262395*/                OPC_CheckType, MVT::v2i64,
/*262397*/                OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*262399*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*262402*/                OPC_EmitMergeInputChains1_1,
/*262403*/                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] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPLZCNTQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*262416*/              0, /*End of Scope*/
/*262417*/            0, // EndSwitchOpcode
/*262418*/          /*SwitchOpcode*/ 125, TARGET_VAL(X86ISD::CONFLICT),// ->262546
/*262421*/            OPC_MoveChild0,
/*262422*/            OPC_SwitchOpcode /*2 cases */, 59, TARGET_VAL(ISD::LOAD),// ->262485
/*262426*/              OPC_RecordMemRef,
/*262427*/              OPC_RecordNode, // #1 = 'ld' chained node
/*262428*/              OPC_CheckFoldableChainNode,
/*262429*/              OPC_RecordChild1, // #2 = $src1
/*262430*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*262432*/              OPC_CheckPredicate, 9, // Predicate_load
/*262434*/              OPC_MoveParent,
/*262435*/              OPC_MoveParent,
/*262436*/              OPC_Scope, 23, /*->262461*/ // 2 children in Scope
/*262438*/                OPC_MoveChild2,
/*262439*/                OPC_CheckImmAllZerosV,
/*262440*/                OPC_MoveParent,
/*262441*/                OPC_CheckType, MVT::v2i64,
/*262443*/                OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*262445*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*262448*/                OPC_EmitMergeInputChains1_1,
/*262449*/                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>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPCONFLICTQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*262461*/              /*Scope*/ 22, /*->262484*/
/*262462*/                OPC_RecordChild2, // #3 = $src0
/*262463*/                OPC_CheckType, MVT::v2i64,
/*262465*/                OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*262467*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*262470*/                OPC_EmitMergeInputChains1_1,
/*262471*/                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>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPCONFLICTQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*262484*/              0, /*End of Scope*/
/*262485*/            /*SwitchOpcode*/ 57, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->262545
/*262488*/              OPC_RecordMemRef,
/*262489*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*262490*/              OPC_CheckFoldableChainNode,
/*262491*/              OPC_RecordChild1, // #2 = $src1
/*262492*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*262494*/              OPC_MoveParent,
/*262495*/              OPC_MoveParent,
/*262496*/              OPC_Scope, 23, /*->262521*/ // 2 children in Scope
/*262498*/                OPC_MoveChild2,
/*262499*/                OPC_CheckImmAllZerosV,
/*262500*/                OPC_MoveParent,
/*262501*/                OPC_CheckType, MVT::v2i64,
/*262503*/                OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*262505*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*262508*/                OPC_EmitMergeInputChains1_1,
/*262509*/                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] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPCONFLICTQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*262521*/              /*Scope*/ 22, /*->262544*/
/*262522*/                OPC_RecordChild2, // #3 = $src0
/*262523*/                OPC_CheckType, MVT::v2i64,
/*262525*/                OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*262527*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*262530*/                OPC_EmitMergeInputChains1_1,
/*262531*/                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] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPCONFLICTQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*262544*/              0, /*End of Scope*/
/*262545*/            0, // EndSwitchOpcode
/*262546*/          /*SwitchOpcode*/ 1|128,1/*129*/, TARGET_VAL(ISD::CTPOP),// ->262679
/*262550*/            OPC_MoveChild0,
/*262551*/            OPC_SwitchOpcode /*2 cases */, 61, TARGET_VAL(ISD::LOAD),// ->262616
/*262555*/              OPC_RecordMemRef,
/*262556*/              OPC_RecordNode, // #1 = 'ld' chained node
/*262557*/              OPC_CheckFoldableChainNode,
/*262558*/              OPC_RecordChild1, // #2 = $src1
/*262559*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*262561*/              OPC_CheckPredicate, 9, // Predicate_load
/*262563*/              OPC_CheckType, MVT::v2i64,
/*262565*/              OPC_MoveParent,
/*262566*/              OPC_MoveParent,
/*262567*/              OPC_Scope, 23, /*->262592*/ // 2 children in Scope
/*262569*/                OPC_MoveChild2,
/*262570*/                OPC_CheckImmAllZerosV,
/*262571*/                OPC_MoveParent,
/*262572*/                OPC_CheckType, MVT::v2i64,
/*262574*/                OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/*262576*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*262579*/                OPC_EmitMergeInputChains1_1,
/*262580*/                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>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPOPCNTQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*262592*/              /*Scope*/ 22, /*->262615*/
/*262593*/                OPC_RecordChild2, // #3 = $src0
/*262594*/                OPC_CheckType, MVT::v2i64,
/*262596*/                OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/*262598*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*262601*/                OPC_EmitMergeInputChains1_1,
/*262602*/                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>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPOPCNTQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*262615*/              0, /*End of Scope*/
/*262616*/            /*SwitchOpcode*/ 59, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->262678
/*262619*/              OPC_RecordMemRef,
/*262620*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*262621*/              OPC_CheckFoldableChainNode,
/*262622*/              OPC_RecordChild1, // #2 = $src1
/*262623*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*262625*/              OPC_CheckType, MVT::v2i64,
/*262627*/              OPC_MoveParent,
/*262628*/              OPC_MoveParent,
/*262629*/              OPC_Scope, 23, /*->262654*/ // 2 children in Scope
/*262631*/                OPC_MoveChild2,
/*262632*/                OPC_CheckImmAllZerosV,
/*262633*/                OPC_MoveParent,
/*262634*/                OPC_CheckType, MVT::v2i64,
/*262636*/                OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/*262638*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*262641*/                OPC_EmitMergeInputChains1_1,
/*262642*/                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] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPOPCNTQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*262654*/              /*Scope*/ 22, /*->262677*/
/*262655*/                OPC_RecordChild2, // #3 = $src0
/*262656*/                OPC_CheckType, MVT::v2i64,
/*262658*/                OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/*262660*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*262663*/                OPC_EmitMergeInputChains1_1,
/*262664*/                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] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPOPCNTQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*262677*/              0, /*End of Scope*/
/*262678*/            0, // EndSwitchOpcode
/*262679*/          /*SwitchOpcode*/ 2|128,1/*130*/, TARGET_VAL(X86ISD::UNPCKL),// ->262813
/*262683*/            OPC_RecordChild0, // #1 = $src1
/*262684*/            OPC_MoveChild1,
/*262685*/            OPC_SwitchOpcode /*2 cases */, 61, TARGET_VAL(ISD::LOAD),// ->262750
/*262689*/              OPC_RecordMemRef,
/*262690*/              OPC_RecordNode, // #2 = 'ld' chained node
/*262691*/              OPC_CheckFoldableChainNode,
/*262692*/              OPC_RecordChild1, // #3 = $src2
/*262693*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*262695*/              OPC_CheckPredicate, 9, // Predicate_load
/*262697*/              OPC_MoveParent,
/*262698*/              OPC_MoveParent,
/*262699*/              OPC_Scope, 24, /*->262725*/ // 2 children in Scope
/*262701*/                OPC_MoveChild2,
/*262702*/                OPC_CheckImmAllZerosV,
/*262703*/                OPC_MoveParent,
/*262704*/                OPC_CheckType, MVT::v2i64,
/*262706*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*262708*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*262711*/                OPC_EmitMergeInputChains1_2,
/*262712*/                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>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPUNPCKLQDQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*262725*/              /*Scope*/ 23, /*->262749*/
/*262726*/                OPC_RecordChild2, // #4 = $src0
/*262727*/                OPC_CheckType, MVT::v2i64,
/*262729*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*262731*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*262734*/                OPC_EmitMergeInputChains1_2,
/*262735*/                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>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPUNPCKLQDQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*262749*/              0, /*End of Scope*/
/*262750*/            /*SwitchOpcode*/ 59, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->262812
/*262753*/              OPC_RecordMemRef,
/*262754*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*262755*/              OPC_CheckFoldableChainNode,
/*262756*/              OPC_RecordChild1, // #3 = $src2
/*262757*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*262759*/              OPC_MoveParent,
/*262760*/              OPC_MoveParent,
/*262761*/              OPC_Scope, 24, /*->262787*/ // 2 children in Scope
/*262763*/                OPC_MoveChild2,
/*262764*/                OPC_CheckImmAllZerosV,
/*262765*/                OPC_MoveParent,
/*262766*/                OPC_CheckType, MVT::v2i64,
/*262768*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*262770*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*262773*/                OPC_EmitMergeInputChains1_2,
/*262774*/                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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPUNPCKLQDQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*262787*/              /*Scope*/ 23, /*->262811*/
/*262788*/                OPC_RecordChild2, // #4 = $src0
/*262789*/                OPC_CheckType, MVT::v2i64,
/*262791*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*262793*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*262796*/                OPC_EmitMergeInputChains1_2,
/*262797*/                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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPUNPCKLQDQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*262811*/              0, /*End of Scope*/
/*262812*/            0, // EndSwitchOpcode
/*262813*/          /*SwitchOpcode*/ 2|128,1/*130*/, TARGET_VAL(X86ISD::UNPCKH),// ->262947
/*262817*/            OPC_RecordChild0, // #1 = $src1
/*262818*/            OPC_MoveChild1,
/*262819*/            OPC_SwitchOpcode /*2 cases */, 61, TARGET_VAL(ISD::LOAD),// ->262884
/*262823*/              OPC_RecordMemRef,
/*262824*/              OPC_RecordNode, // #2 = 'ld' chained node
/*262825*/              OPC_CheckFoldableChainNode,
/*262826*/              OPC_RecordChild1, // #3 = $src2
/*262827*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*262829*/              OPC_CheckPredicate, 9, // Predicate_load
/*262831*/              OPC_MoveParent,
/*262832*/              OPC_MoveParent,
/*262833*/              OPC_Scope, 24, /*->262859*/ // 2 children in Scope
/*262835*/                OPC_MoveChild2,
/*262836*/                OPC_CheckImmAllZerosV,
/*262837*/                OPC_MoveParent,
/*262838*/                OPC_CheckType, MVT::v2i64,
/*262840*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*262842*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*262845*/                OPC_EmitMergeInputChains1_2,
/*262846*/                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>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPUNPCKHQDQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*262859*/              /*Scope*/ 23, /*->262883*/
/*262860*/                OPC_RecordChild2, // #4 = $src0
/*262861*/                OPC_CheckType, MVT::v2i64,
/*262863*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*262865*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*262868*/                OPC_EmitMergeInputChains1_2,
/*262869*/                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>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPUNPCKHQDQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*262883*/              0, /*End of Scope*/
/*262884*/            /*SwitchOpcode*/ 59, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->262946
/*262887*/              OPC_RecordMemRef,
/*262888*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*262889*/              OPC_CheckFoldableChainNode,
/*262890*/              OPC_RecordChild1, // #3 = $src2
/*262891*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*262893*/              OPC_MoveParent,
/*262894*/              OPC_MoveParent,
/*262895*/              OPC_Scope, 24, /*->262921*/ // 2 children in Scope
/*262897*/                OPC_MoveChild2,
/*262898*/                OPC_CheckImmAllZerosV,
/*262899*/                OPC_MoveParent,
/*262900*/                OPC_CheckType, MVT::v2i64,
/*262902*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*262904*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*262907*/                OPC_EmitMergeInputChains1_2,
/*262908*/                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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPUNPCKHQDQZ128rmbkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*262921*/              /*Scope*/ 23, /*->262945*/
/*262922*/                OPC_RecordChild2, // #4 = $src0
/*262923*/                OPC_CheckType, MVT::v2i64,
/*262925*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*262927*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*262930*/                OPC_EmitMergeInputChains1_2,
/*262931*/                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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2i64] }:$src0) - Complexity = 28
                          // Dst: (VPUNPCKHQDQZ128rmbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*262945*/              0, /*End of Scope*/
/*262946*/            0, // EndSwitchOpcode
/*262947*/          /*SwitchOpcode*/ 15|128,1/*143*/, TARGET_VAL(X86ISD::VSHLDV),// ->263094
/*262951*/            OPC_RecordChild0, // #1 = $src1
/*262952*/            OPC_RecordChild1, // #2 = $src2
/*262953*/            OPC_MoveChild2,
/*262954*/            OPC_SwitchOpcode /*2 cases */, 67, TARGET_VAL(ISD::LOAD),// ->263025
/*262958*/              OPC_RecordMemRef,
/*262959*/              OPC_RecordNode, // #3 = 'ld' chained node
/*262960*/              OPC_CheckFoldableChainNode,
/*262961*/              OPC_RecordChild1, // #4 = $src3
/*262962*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*262964*/              OPC_CheckPredicate, 9, // Predicate_load
/*262966*/              OPC_MoveParent,
/*262967*/              OPC_MoveParent,
/*262968*/              OPC_Scope, 27, /*->262997*/ // 2 children in Scope
/*262970*/                OPC_MoveChild2,
/*262971*/                OPC_CheckImmAllZerosV,
/*262972*/                OPC_MoveParent,
/*262973*/                OPC_CheckType, MVT::v2i64,
/*262975*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*262977*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*262980*/                OPC_EmitMergeInputChains, 1, 3, 
/*262983*/                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>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPSHLDVQZ128mkz:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*262997*/              /*Scope*/ 26, /*->263024*/
/*262998*/                OPC_CheckChild2Same, 1,
/*263000*/                OPC_CheckType, MVT::v2i64,
/*263002*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*263004*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*263007*/                OPC_EmitMergeInputChains, 1, 3, 
/*263010*/                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>>), VR128X:{ *:[v2i64] }:$src1) - Complexity = 28
                          // Dst: (VPSHLDVQZ128mk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*263024*/              0, /*End of Scope*/
/*263025*/            /*SwitchOpcode*/ 65, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->263093
/*263028*/              OPC_RecordMemRef,
/*263029*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*263030*/              OPC_CheckFoldableChainNode,
/*263031*/              OPC_RecordChild1, // #4 = $src3
/*263032*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*263034*/              OPC_MoveParent,
/*263035*/              OPC_MoveParent,
/*263036*/              OPC_Scope, 27, /*->263065*/ // 2 children in Scope
/*263038*/                OPC_MoveChild2,
/*263039*/                OPC_CheckImmAllZerosV,
/*263040*/                OPC_MoveParent,
/*263041*/                OPC_CheckType, MVT::v2i64,
/*263043*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*263045*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*263048*/                OPC_EmitMergeInputChains, 1, 3, 
/*263051*/                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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPSHLDVQZ128mbkz:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*263065*/              /*Scope*/ 26, /*->263092*/
/*263066*/                OPC_CheckChild2Same, 1,
/*263068*/                OPC_CheckType, MVT::v2i64,
/*263070*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*263072*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*263075*/                OPC_EmitMergeInputChains, 1, 3, 
/*263078*/                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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2i64] }:$src1) - Complexity = 28
                          // Dst: (VPSHLDVQZ128mbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*263092*/              0, /*End of Scope*/
/*263093*/            0, // EndSwitchOpcode
/*263094*/          /*SwitchOpcode*/ 15|128,1/*143*/, TARGET_VAL(X86ISD::VSHRDV),// ->263241
/*263098*/            OPC_RecordChild0, // #1 = $src1
/*263099*/            OPC_RecordChild1, // #2 = $src2
/*263100*/            OPC_MoveChild2,
/*263101*/            OPC_SwitchOpcode /*2 cases */, 67, TARGET_VAL(ISD::LOAD),// ->263172
/*263105*/              OPC_RecordMemRef,
/*263106*/              OPC_RecordNode, // #3 = 'ld' chained node
/*263107*/              OPC_CheckFoldableChainNode,
/*263108*/              OPC_RecordChild1, // #4 = $src3
/*263109*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*263111*/              OPC_CheckPredicate, 9, // Predicate_load
/*263113*/              OPC_MoveParent,
/*263114*/              OPC_MoveParent,
/*263115*/              OPC_Scope, 27, /*->263144*/ // 2 children in Scope
/*263117*/                OPC_MoveChild2,
/*263118*/                OPC_CheckImmAllZerosV,
/*263119*/                OPC_MoveParent,
/*263120*/                OPC_CheckType, MVT::v2i64,
/*263122*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*263124*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*263127*/                OPC_EmitMergeInputChains, 1, 3, 
/*263130*/                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>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPSHRDVQZ128mkz:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*263144*/              /*Scope*/ 26, /*->263171*/
/*263145*/                OPC_CheckChild2Same, 1,
/*263147*/                OPC_CheckType, MVT::v2i64,
/*263149*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*263151*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*263154*/                OPC_EmitMergeInputChains, 1, 3, 
/*263157*/                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>>), VR128X:{ *:[v2i64] }:$src1) - Complexity = 28
                          // Dst: (VPSHRDVQZ128mk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*263171*/              0, /*End of Scope*/
/*263172*/            /*SwitchOpcode*/ 65, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->263240
/*263175*/              OPC_RecordMemRef,
/*263176*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*263177*/              OPC_CheckFoldableChainNode,
/*263178*/              OPC_RecordChild1, // #4 = $src3
/*263179*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*263181*/              OPC_MoveParent,
/*263182*/              OPC_MoveParent,
/*263183*/              OPC_Scope, 27, /*->263212*/ // 2 children in Scope
/*263185*/                OPC_MoveChild2,
/*263186*/                OPC_CheckImmAllZerosV,
/*263187*/                OPC_MoveParent,
/*263188*/                OPC_CheckType, MVT::v2i64,
/*263190*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*263192*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*263195*/                OPC_EmitMergeInputChains, 1, 3, 
/*263198*/                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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v2i64] }) - Complexity = 32
                          // Dst: (VPSHRDVQZ128mbkz:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*263212*/              /*Scope*/ 26, /*->263239*/
/*263213*/                OPC_CheckChild2Same, 1,
/*263215*/                OPC_CheckType, MVT::v2i64,
/*263217*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*263219*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*263222*/                OPC_EmitMergeInputChains, 1, 3, 
/*263225*/                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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2i64] }:$src1) - Complexity = 28
                          // Dst: (VPSHRDVQZ128mbk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*263239*/              0, /*End of Scope*/
/*263240*/            0, // EndSwitchOpcode
/*263241*/          /*SwitchOpcode*/ 56, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->263300
/*263244*/            OPC_RecordMemRef,
/*263245*/            OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*263246*/            OPC_CheckFoldableChainNode,
/*263247*/            OPC_RecordChild1, // #2 = $src
/*263248*/            OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*263250*/            OPC_MoveParent,
/*263251*/            OPC_Scope, 23, /*->263276*/ // 2 children in Scope
/*263253*/              OPC_MoveChild2,
/*263254*/              OPC_CheckImmAllZerosV,
/*263255*/              OPC_MoveParent,
/*263256*/              OPC_CheckType, MVT::v2i64,
/*263258*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*263260*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*263263*/              OPC_EmitMergeInputChains1_1,
/*263264*/              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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>, immAllZerosV:{ *:[v2i64] }) - Complexity = 29
                        // Dst: (VPBROADCASTQZ128mkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*263276*/            /*Scope*/ 22, /*->263299*/
/*263277*/              OPC_RecordChild2, // #3 = $src0
/*263278*/              OPC_CheckType, MVT::v2i64,
/*263280*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*263282*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*263285*/              OPC_EmitMergeInputChains1_1,
/*263286*/              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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src0) - Complexity = 25
                        // Dst: (VPBROADCASTQZ128mk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*263299*/            0, /*End of Scope*/
/*263300*/          /*SwitchOpcode*/ 74|128,3/*458*/, TARGET_VAL(ISD::LOAD),// ->263762
/*263304*/            OPC_RecordMemRef,
/*263305*/            OPC_RecordNode, // #1 = 'ld' chained node
/*263306*/            OPC_CheckFoldableChainNode,
/*263307*/            OPC_RecordChild1, // #2 = $src
/*263308*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*263310*/            OPC_Scope, 56, /*->263368*/ // 6 children in Scope
/*263312*/              OPC_CheckPredicate, 9, // Predicate_load
/*263314*/              OPC_Scope, 26, /*->263342*/ // 2 children in Scope
/*263316*/                OPC_CheckPredicate, 74, // Predicate_alignedload
/*263318*/                OPC_MoveParent,
/*263319*/                OPC_MoveChild2,
/*263320*/                OPC_CheckImmAllZerosV,
/*263321*/                OPC_MoveParent,
/*263322*/                OPC_CheckType, MVT::v2i64,
/*263324*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*263326*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*263329*/                OPC_EmitMergeInputChains1_1,
/*263330*/                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_alignedload>>, immAllZerosV:{ *:[v2i64] }) - Complexity = 29
                          // Dst: (VMOVDQA64Z128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*263342*/              /*Scope*/ 24, /*->263367*/
/*263343*/                OPC_MoveParent,
/*263344*/                OPC_MoveChild2,
/*263345*/                OPC_CheckImmAllZerosV,
/*263346*/                OPC_MoveParent,
/*263347*/                OPC_CheckType, MVT::v2i64,
/*263349*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*263351*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*263354*/                OPC_EmitMergeInputChains1_1,
/*263355*/                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>>, immAllZerosV:{ *:[v2i64] }) - Complexity = 29
                          // Dst: (VMOVDQU64Z128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*263367*/              0, /*End of Scope*/
/*263368*/            /*Scope*/ 85, /*->263454*/
/*263369*/              OPC_CheckPredicate, 53, // Predicate_zextload
/*263371*/              OPC_Scope, 26, /*->263399*/ // 3 children in Scope
/*263373*/                OPC_CheckPredicate, 75, // Predicate_zextloadvi8
/*263375*/                OPC_MoveParent,
/*263376*/                OPC_MoveChild2,
/*263377*/                OPC_CheckImmAllZerosV,
/*263378*/                OPC_MoveParent,
/*263379*/                OPC_CheckType, MVT::v2i64,
/*263381*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*263383*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*263386*/                OPC_EmitMergeInputChains1_1,
/*263387*/                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>>, immAllZerosV:{ *:[v2i64] }) - Complexity = 29
                          // Dst: (VPMOVZXBQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*263399*/              /*Scope*/ 26, /*->263426*/
/*263400*/                OPC_CheckPredicate, 76, // Predicate_zextloadvi16
/*263402*/                OPC_MoveParent,
/*263403*/                OPC_MoveChild2,
/*263404*/                OPC_CheckImmAllZerosV,
/*263405*/                OPC_MoveParent,
/*263406*/                OPC_CheckType, MVT::v2i64,
/*263408*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*263410*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*263413*/                OPC_EmitMergeInputChains1_1,
/*263414*/                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>>, immAllZerosV:{ *:[v2i64] }) - Complexity = 29
                          // Dst: (VPMOVZXWQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*263426*/              /*Scope*/ 26, /*->263453*/
/*263427*/                OPC_CheckPredicate, 77, // Predicate_zextloadvi32
/*263429*/                OPC_MoveParent,
/*263430*/                OPC_MoveChild2,
/*263431*/                OPC_CheckImmAllZerosV,
/*263432*/                OPC_MoveParent,
/*263433*/                OPC_CheckType, MVT::v2i64,
/*263435*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*263437*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*263440*/                OPC_EmitMergeInputChains1_1,
/*263441*/                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>>, immAllZerosV:{ *:[v2i64] }) - Complexity = 29
                          // Dst: (VPMOVZXDQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*263453*/              0, /*End of Scope*/
/*263454*/            /*Scope*/ 85, /*->263540*/
/*263455*/              OPC_CheckPredicate, 68, // Predicate_sextload
/*263457*/              OPC_Scope, 26, /*->263485*/ // 3 children in Scope
/*263459*/                OPC_CheckPredicate, 75, // Predicate_sextloadvi8
/*263461*/                OPC_MoveParent,
/*263462*/                OPC_MoveChild2,
/*263463*/                OPC_CheckImmAllZerosV,
/*263464*/                OPC_MoveParent,
/*263465*/                OPC_CheckType, MVT::v2i64,
/*263467*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*263469*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*263472*/                OPC_EmitMergeInputChains1_1,
/*263473*/                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>>, immAllZerosV:{ *:[v2i64] }) - Complexity = 29
                          // Dst: (VPMOVSXBQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*263485*/              /*Scope*/ 26, /*->263512*/
/*263486*/                OPC_CheckPredicate, 76, // Predicate_sextloadvi16
/*263488*/                OPC_MoveParent,
/*263489*/                OPC_MoveChild2,
/*263490*/                OPC_CheckImmAllZerosV,
/*263491*/                OPC_MoveParent,
/*263492*/                OPC_CheckType, MVT::v2i64,
/*263494*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*263496*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*263499*/                OPC_EmitMergeInputChains1_1,
/*263500*/                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>>, immAllZerosV:{ *:[v2i64] }) - Complexity = 29
                          // Dst: (VPMOVSXWQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*263512*/              /*Scope*/ 26, /*->263539*/
/*263513*/                OPC_CheckPredicate, 77, // Predicate_sextloadvi32
/*263515*/                OPC_MoveParent,
/*263516*/                OPC_MoveChild2,
/*263517*/                OPC_CheckImmAllZerosV,
/*263518*/                OPC_MoveParent,
/*263519*/                OPC_CheckType, MVT::v2i64,
/*263521*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*263523*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*263526*/                OPC_EmitMergeInputChains1_1,
/*263527*/                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>>, immAllZerosV:{ *:[v2i64] }) - Complexity = 29
                          // Dst: (VPMOVSXDQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*263539*/              0, /*End of Scope*/
/*263540*/            /*Scope*/ 54, /*->263595*/
/*263541*/              OPC_CheckPredicate, 9, // Predicate_load
/*263543*/              OPC_Scope, 25, /*->263570*/ // 2 children in Scope
/*263545*/                OPC_CheckPredicate, 74, // Predicate_alignedload
/*263547*/                OPC_MoveParent,
/*263548*/                OPC_RecordChild2, // #3 = $src0
/*263549*/                OPC_CheckType, MVT::v2i64,
/*263551*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*263553*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*263556*/                OPC_EmitMergeInputChains1_1,
/*263557*/                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_alignedload>>, VR128X:{ *:[v2i64] }:$src0) - Complexity = 25
                          // Dst: (VMOVDQA64Z128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*263570*/              /*Scope*/ 23, /*->263594*/
/*263571*/                OPC_MoveParent,
/*263572*/                OPC_RecordChild2, // #3 = $src0
/*263573*/                OPC_CheckType, MVT::v2i64,
/*263575*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*263577*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*263580*/                OPC_EmitMergeInputChains1_1,
/*263581*/                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>>, VR128X:{ *:[v2i64] }:$src0) - Complexity = 25
                          // Dst: (VMOVDQU64Z128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*263594*/              0, /*End of Scope*/
/*263595*/            /*Scope*/ 82, /*->263678*/
/*263596*/              OPC_CheckPredicate, 53, // Predicate_zextload
/*263598*/              OPC_Scope, 25, /*->263625*/ // 3 children in Scope
/*263600*/                OPC_CheckPredicate, 75, // Predicate_zextloadvi8
/*263602*/                OPC_MoveParent,
/*263603*/                OPC_RecordChild2, // #3 = $src0
/*263604*/                OPC_CheckType, MVT::v2i64,
/*263606*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*263608*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*263611*/                OPC_EmitMergeInputChains1_1,
/*263612*/                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)
/*263625*/              /*Scope*/ 25, /*->263651*/
/*263626*/                OPC_CheckPredicate, 76, // Predicate_zextloadvi16
/*263628*/                OPC_MoveParent,
/*263629*/                OPC_RecordChild2, // #3 = $src0
/*263630*/                OPC_CheckType, MVT::v2i64,
/*263632*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*263634*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*263637*/                OPC_EmitMergeInputChains1_1,
/*263638*/                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)
/*263651*/              /*Scope*/ 25, /*->263677*/
/*263652*/                OPC_CheckPredicate, 77, // Predicate_zextloadvi32
/*263654*/                OPC_MoveParent,
/*263655*/                OPC_RecordChild2, // #3 = $src0
/*263656*/                OPC_CheckType, MVT::v2i64,
/*263658*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*263660*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*263663*/                OPC_EmitMergeInputChains1_1,
/*263664*/                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)
/*263677*/              0, /*End of Scope*/
/*263678*/            /*Scope*/ 82, /*->263761*/
/*263679*/              OPC_CheckPredicate, 68, // Predicate_sextload
/*263681*/              OPC_Scope, 25, /*->263708*/ // 3 children in Scope
/*263683*/                OPC_CheckPredicate, 75, // Predicate_sextloadvi8
/*263685*/                OPC_MoveParent,
/*263686*/                OPC_RecordChild2, // #3 = $src0
/*263687*/                OPC_CheckType, MVT::v2i64,
/*263689*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*263691*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*263694*/                OPC_EmitMergeInputChains1_1,
/*263695*/                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)
/*263708*/              /*Scope*/ 25, /*->263734*/
/*263709*/                OPC_CheckPredicate, 76, // Predicate_sextloadvi16
/*263711*/                OPC_MoveParent,
/*263712*/                OPC_RecordChild2, // #3 = $src0
/*263713*/                OPC_CheckType, MVT::v2i64,
/*263715*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*263717*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*263720*/                OPC_EmitMergeInputChains1_1,
/*263721*/                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)
/*263734*/              /*Scope*/ 25, /*->263760*/
/*263735*/                OPC_CheckPredicate, 77, // Predicate_sextloadvi32
/*263737*/                OPC_MoveParent,
/*263738*/                OPC_RecordChild2, // #3 = $src0
/*263739*/                OPC_CheckType, MVT::v2i64,
/*263741*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*263743*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*263746*/                OPC_EmitMergeInputChains1_1,
/*263747*/                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)
/*263760*/              0, /*End of Scope*/
/*263761*/            0, /*End of Scope*/
/*263762*/          0, // EndSwitchOpcode
/*263763*/        /*Scope*/ 72, /*->263836*/
/*263764*/          OPC_RecordChild1, // #1 = $idx
/*263765*/          OPC_MoveChild1,
/*263766*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/*263769*/          OPC_RecordChild0, // #2 = $src1
/*263770*/          OPC_Scope, 31, /*->263803*/ // 2 children in Scope
/*263772*/            OPC_CheckChild0Type, MVT::v4i64,
/*263774*/            OPC_MoveChild1,
/*263775*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*263778*/            OPC_CheckType, MVT::iPTR,
/*263780*/            OPC_MoveParent,
/*263781*/            OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/*263783*/            OPC_MoveParent,
/*263784*/            OPC_MoveChild2,
/*263785*/            OPC_CheckImmAllZerosV,
/*263786*/            OPC_MoveParent,
/*263787*/            OPC_CheckType, MVT::v2i64,
/*263789*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*263791*/            OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*263794*/            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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$idx, immAllZerosV:{ *:[v2i64] }) - Complexity = 14
                      // Dst: (VEXTRACTI64x2Z256rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } (extract_subvector:{ *:[v2i64] } VR256X:{ *:[v4i64] }:$src1, (imm:{ *:[iPTR] })):$idx))
/*263803*/          /*Scope*/ 31, /*->263835*/
/*263804*/            OPC_CheckChild0Type, MVT::v8i64,
/*263806*/            OPC_MoveChild1,
/*263807*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*263810*/            OPC_CheckType, MVT::iPTR,
/*263812*/            OPC_MoveParent,
/*263813*/            OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/*263815*/            OPC_MoveParent,
/*263816*/            OPC_MoveChild2,
/*263817*/            OPC_CheckImmAllZerosV,
/*263818*/            OPC_MoveParent,
/*263819*/            OPC_CheckType, MVT::v2i64,
/*263821*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*263823*/            OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*263826*/            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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$idx, immAllZerosV:{ *:[v2i64] }) - Complexity = 14
                      // Dst: (VEXTRACTI64x2Zrrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR512:{ *:[v8i64] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } (extract_subvector:{ *:[v2i64] } VR512:{ *:[v8i64] }:$src1, (imm:{ *:[iPTR] })):$idx))
/*263835*/          0, /*End of Scope*/
/*263836*/        0, /*End of Scope*/
/*263837*/      /*Scope*/ 86|128,22/*2902*/, /*->266741*/
/*263839*/        OPC_CheckChild0Type, MVT::v64i1,
/*263841*/        OPC_MoveChild1,
/*263842*/        OPC_SwitchOpcode /*27 cases */, 25|128,1/*153*/, TARGET_VAL(X86ISD::GF2P8AFFINEINVQB),// ->264000
/*263847*/          OPC_RecordChild0, // #1 = $src1
/*263848*/          OPC_MoveChild1,
/*263849*/          OPC_SwitchOpcode /*2 cases */, 74, TARGET_VAL(ISD::BITCAST),// ->263927
/*263853*/            OPC_MoveChild0,
/*263854*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*263857*/            OPC_RecordMemRef,
/*263858*/            OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*263859*/            OPC_CheckFoldableChainNode,
/*263860*/            OPC_RecordChild1, // #3 = $src2
/*263861*/            OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*263863*/            OPC_CheckType, MVT::v8i64,
/*263865*/            OPC_MoveParent,
/*263866*/            OPC_MoveParent,
/*263867*/            OPC_RecordChild2, // #4 = $src3
/*263868*/            OPC_MoveChild2,
/*263869*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*263872*/            OPC_MoveParent,
/*263873*/            OPC_MoveParent,
/*263874*/            OPC_Scope, 25, /*->263901*/ // 2 children in Scope
/*263876*/              OPC_MoveChild2,
/*263877*/              OPC_CheckImmAllZerosV,
/*263878*/              OPC_MoveParent,
/*263879*/              OPC_CheckType, MVT::v64i8,
/*263881*/              OPC_CheckPatternPredicate, 186, // (Subtarget->hasAVX512()) && (Subtarget->hasBWI()) && (Subtarget->hasGFNI())
/*263883*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*263886*/              OPC_EmitMergeInputChains1_2,
/*263887*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEINVQBZrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v64i8, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                        // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86GF2P8affineinvqb:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v64i8] }) - Complexity = 38
                        // Dst: (VGF2P8AFFINEINVQBZrmbikz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*263901*/            /*Scope*/ 24, /*->263926*/
/*263902*/              OPC_RecordChild2, // #5 = $src0
/*263903*/              OPC_CheckType, MVT::v64i8,
/*263905*/              OPC_CheckPatternPredicate, 186, // (Subtarget->hasAVX512()) && (Subtarget->hasBWI()) && (Subtarget->hasGFNI())
/*263907*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*263910*/              OPC_EmitMergeInputChains1_2,
/*263911*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEINVQBZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v64i8, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                        // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86GF2P8affineinvqb:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), (timm:{ *:[i8] }):$src3), VR512:{ *:[v64i8] }:$src0) - Complexity = 34
                        // Dst: (VGF2P8AFFINEINVQBZrmbik:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*263926*/            0, /*End of Scope*/
/*263927*/          /*SwitchOpcode*/ 69, TARGET_VAL(ISD::LOAD),// ->263999
/*263930*/            OPC_RecordMemRef,
/*263931*/            OPC_RecordNode, // #2 = 'ld' chained node
/*263932*/            OPC_CheckFoldableChainNode,
/*263933*/            OPC_RecordChild1, // #3 = $src2
/*263934*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*263936*/            OPC_CheckPredicate, 9, // Predicate_load
/*263938*/            OPC_MoveParent,
/*263939*/            OPC_RecordChild2, // #4 = $src3
/*263940*/            OPC_MoveChild2,
/*263941*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*263944*/            OPC_MoveParent,
/*263945*/            OPC_MoveParent,
/*263946*/            OPC_Scope, 25, /*->263973*/ // 2 children in Scope
/*263948*/              OPC_MoveChild2,
/*263949*/              OPC_CheckImmAllZerosV,
/*263950*/              OPC_MoveParent,
/*263951*/              OPC_CheckType, MVT::v64i8,
/*263953*/              OPC_CheckPatternPredicate, 186, // (Subtarget->hasAVX512()) && (Subtarget->hasBWI()) && (Subtarget->hasGFNI())
/*263955*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*263958*/              OPC_EmitMergeInputChains1_2,
/*263959*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEINVQBZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v64i8, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                        // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86GF2P8affineinvqb:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v64i8] }) - Complexity = 35
                        // Dst: (VGF2P8AFFINEINVQBZrmikz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*263973*/            /*Scope*/ 24, /*->263998*/
/*263974*/              OPC_RecordChild2, // #5 = $src0
/*263975*/              OPC_CheckType, MVT::v64i8,
/*263977*/              OPC_CheckPatternPredicate, 186, // (Subtarget->hasAVX512()) && (Subtarget->hasBWI()) && (Subtarget->hasGFNI())
/*263979*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*263982*/              OPC_EmitMergeInputChains1_2,
/*263983*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEINVQBZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v64i8, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                        // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86GF2P8affineinvqb:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), VR512:{ *:[v64i8] }:$src0) - Complexity = 31
                        // Dst: (VGF2P8AFFINEINVQBZrmik:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*263998*/            0, /*End of Scope*/
/*263999*/          0, // EndSwitchOpcode
/*264000*/        /*SwitchOpcode*/ 25|128,1/*153*/, TARGET_VAL(X86ISD::GF2P8AFFINEQB),// ->264157
/*264004*/          OPC_RecordChild0, // #1 = $src1
/*264005*/          OPC_MoveChild1,
/*264006*/          OPC_SwitchOpcode /*2 cases */, 74, TARGET_VAL(ISD::BITCAST),// ->264084
/*264010*/            OPC_MoveChild0,
/*264011*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*264014*/            OPC_RecordMemRef,
/*264015*/            OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*264016*/            OPC_CheckFoldableChainNode,
/*264017*/            OPC_RecordChild1, // #3 = $src2
/*264018*/            OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*264020*/            OPC_CheckType, MVT::v8i64,
/*264022*/            OPC_MoveParent,
/*264023*/            OPC_MoveParent,
/*264024*/            OPC_RecordChild2, // #4 = $src3
/*264025*/            OPC_MoveChild2,
/*264026*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*264029*/            OPC_MoveParent,
/*264030*/            OPC_MoveParent,
/*264031*/            OPC_Scope, 25, /*->264058*/ // 2 children in Scope
/*264033*/              OPC_MoveChild2,
/*264034*/              OPC_CheckImmAllZerosV,
/*264035*/              OPC_MoveParent,
/*264036*/              OPC_CheckType, MVT::v64i8,
/*264038*/              OPC_CheckPatternPredicate, 186, // (Subtarget->hasAVX512()) && (Subtarget->hasBWI()) && (Subtarget->hasGFNI())
/*264040*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*264043*/              OPC_EmitMergeInputChains1_2,
/*264044*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEQBZrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v64i8, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                        // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86GF2P8affineqb:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v64i8] }) - Complexity = 38
                        // Dst: (VGF2P8AFFINEQBZrmbikz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*264058*/            /*Scope*/ 24, /*->264083*/
/*264059*/              OPC_RecordChild2, // #5 = $src0
/*264060*/              OPC_CheckType, MVT::v64i8,
/*264062*/              OPC_CheckPatternPredicate, 186, // (Subtarget->hasAVX512()) && (Subtarget->hasBWI()) && (Subtarget->hasGFNI())
/*264064*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*264067*/              OPC_EmitMergeInputChains1_2,
/*264068*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEQBZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v64i8, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                        // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86GF2P8affineqb:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), (timm:{ *:[i8] }):$src3), VR512:{ *:[v64i8] }:$src0) - Complexity = 34
                        // Dst: (VGF2P8AFFINEQBZrmbik:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*264083*/            0, /*End of Scope*/
/*264084*/          /*SwitchOpcode*/ 69, TARGET_VAL(ISD::LOAD),// ->264156
/*264087*/            OPC_RecordMemRef,
/*264088*/            OPC_RecordNode, // #2 = 'ld' chained node
/*264089*/            OPC_CheckFoldableChainNode,
/*264090*/            OPC_RecordChild1, // #3 = $src2
/*264091*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*264093*/            OPC_CheckPredicate, 9, // Predicate_load
/*264095*/            OPC_MoveParent,
/*264096*/            OPC_RecordChild2, // #4 = $src3
/*264097*/            OPC_MoveChild2,
/*264098*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*264101*/            OPC_MoveParent,
/*264102*/            OPC_MoveParent,
/*264103*/            OPC_Scope, 25, /*->264130*/ // 2 children in Scope
/*264105*/              OPC_MoveChild2,
/*264106*/              OPC_CheckImmAllZerosV,
/*264107*/              OPC_MoveParent,
/*264108*/              OPC_CheckType, MVT::v64i8,
/*264110*/              OPC_CheckPatternPredicate, 186, // (Subtarget->hasAVX512()) && (Subtarget->hasBWI()) && (Subtarget->hasGFNI())
/*264112*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*264115*/              OPC_EmitMergeInputChains1_2,
/*264116*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEQBZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v64i8, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                        // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86GF2P8affineqb:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v64i8] }) - Complexity = 35
                        // Dst: (VGF2P8AFFINEQBZrmikz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*264130*/            /*Scope*/ 24, /*->264155*/
/*264131*/              OPC_RecordChild2, // #5 = $src0
/*264132*/              OPC_CheckType, MVT::v64i8,
/*264134*/              OPC_CheckPatternPredicate, 186, // (Subtarget->hasAVX512()) && (Subtarget->hasBWI()) && (Subtarget->hasGFNI())
/*264136*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*264139*/              OPC_EmitMergeInputChains1_2,
/*264140*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEQBZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v64i8, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                        // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86GF2P8affineqb:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), VR512:{ *:[v64i8] }:$src0) - Complexity = 31
                        // Dst: (VGF2P8AFFINEQBZrmik:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*264155*/            0, /*End of Scope*/
/*264156*/          0, // EndSwitchOpcode
/*264157*/        /*SwitchOpcode*/ 11|128,1/*139*/, TARGET_VAL(X86ISD::MULTISHIFT),// ->264300
/*264161*/          OPC_RecordChild0, // #1 = $src1
/*264162*/          OPC_CheckChild0Type, MVT::v64i8,
/*264164*/          OPC_MoveChild1,
/*264165*/          OPC_SwitchOpcode /*2 cases */, 66, TARGET_VAL(ISD::BITCAST),// ->264235
/*264169*/            OPC_MoveChild0,
/*264170*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*264173*/            OPC_RecordMemRef,
/*264174*/            OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*264175*/            OPC_CheckFoldableChainNode,
/*264176*/            OPC_RecordChild1, // #3 = $src2
/*264177*/            OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*264179*/            OPC_CheckType, MVT::v8i64,
/*264181*/            OPC_MoveParent,
/*264182*/            OPC_MoveParent,
/*264183*/            OPC_MoveParent,
/*264184*/            OPC_Scope, 24, /*->264210*/ // 2 children in Scope
/*264186*/              OPC_MoveChild2,
/*264187*/              OPC_CheckImmAllZerosV,
/*264188*/              OPC_MoveParent,
/*264189*/              OPC_CheckType, MVT::v64i8,
/*264191*/              OPC_CheckPatternPredicate, 187, // (Subtarget->hasVBMI())
/*264193*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*264196*/              OPC_EmitMergeInputChains1_2,
/*264197*/              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] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>)), immAllZerosV:{ *:[v64i8] }) - Complexity = 35
                        // Dst: (VPMULTISHIFTQBZrmbkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*264210*/            /*Scope*/ 23, /*->264234*/
/*264211*/              OPC_RecordChild2, // #4 = $src0
/*264212*/              OPC_CheckType, MVT::v64i8,
/*264214*/              OPC_CheckPatternPredicate, 187, // (Subtarget->hasVBMI())
/*264216*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*264219*/              OPC_EmitMergeInputChains1_2,
/*264220*/              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] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>)), VR512:{ *:[v64i8] }:$src0) - Complexity = 31
                        // Dst: (VPMULTISHIFTQBZrmbk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*264234*/            0, /*End of Scope*/
/*264235*/          /*SwitchOpcode*/ 61, TARGET_VAL(ISD::LOAD),// ->264299
/*264238*/            OPC_RecordMemRef,
/*264239*/            OPC_RecordNode, // #2 = 'ld' chained node
/*264240*/            OPC_CheckFoldableChainNode,
/*264241*/            OPC_RecordChild1, // #3 = $src2
/*264242*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*264244*/            OPC_CheckPredicate, 9, // Predicate_load
/*264246*/            OPC_MoveParent,
/*264247*/            OPC_MoveParent,
/*264248*/            OPC_Scope, 24, /*->264274*/ // 2 children in Scope
/*264250*/              OPC_MoveChild2,
/*264251*/              OPC_CheckImmAllZerosV,
/*264252*/              OPC_MoveParent,
/*264253*/              OPC_CheckType, MVT::v64i8,
/*264255*/              OPC_CheckPatternPredicate, 187, // (Subtarget->hasVBMI())
/*264257*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*264260*/              OPC_EmitMergeInputChains1_2,
/*264261*/              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, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v64i8] }) - Complexity = 32
                        // Dst: (VPMULTISHIFTQBZrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*264274*/            /*Scope*/ 23, /*->264298*/
/*264275*/              OPC_RecordChild2, // #4 = $src0
/*264276*/              OPC_CheckType, MVT::v64i8,
/*264278*/              OPC_CheckPatternPredicate, 187, // (Subtarget->hasVBMI())
/*264280*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*264283*/              OPC_EmitMergeInputChains1_2,
/*264284*/              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, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v64i8] }:$src0) - Complexity = 28
                        // Dst: (VPMULTISHIFTQBZrmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*264298*/            0, /*End of Scope*/
/*264299*/          0, // EndSwitchOpcode
/*264300*/        /*SwitchOpcode*/ 74, TARGET_VAL(X86ISD::PALIGNR),// ->264377
/*264303*/          OPC_RecordChild0, // #1 = $src1
/*264304*/          OPC_MoveChild1,
/*264305*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*264308*/          OPC_RecordMemRef,
/*264309*/          OPC_RecordNode, // #2 = 'ld' chained node
/*264310*/          OPC_CheckFoldableChainNode,
/*264311*/          OPC_RecordChild1, // #3 = $src2
/*264312*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*264314*/          OPC_CheckPredicate, 9, // Predicate_load
/*264316*/          OPC_MoveParent,
/*264317*/          OPC_RecordChild2, // #4 = $src3
/*264318*/          OPC_MoveChild2,
/*264319*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*264322*/          OPC_MoveParent,
/*264323*/          OPC_MoveParent,
/*264324*/          OPC_Scope, 25, /*->264351*/ // 2 children in Scope
/*264326*/            OPC_MoveChild2,
/*264327*/            OPC_CheckImmAllZerosV,
/*264328*/            OPC_MoveParent,
/*264329*/            OPC_CheckType, MVT::v64i8,
/*264331*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*264333*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*264336*/            OPC_EmitMergeInputChains1_2,
/*264337*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPALIGNRZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86PAlignr:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v64i8] }) - Complexity = 35
                      // Dst: (VPALIGNRZrmikz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*264351*/          /*Scope*/ 24, /*->264376*/
/*264352*/            OPC_RecordChild2, // #5 = $src0
/*264353*/            OPC_CheckType, MVT::v64i8,
/*264355*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*264357*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*264360*/            OPC_EmitMergeInputChains1_2,
/*264361*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPALIGNRZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86PAlignr:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), VR512:{ *:[v64i8] }:$src0) - Complexity = 31
                      // Dst: (VPALIGNRZrmik:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*264376*/          0, /*End of Scope*/
/*264377*/        /*SwitchOpcode*/ 100, TARGET_VAL(X86ISD::VPERMV3),// ->264480
/*264380*/          OPC_RecordChild0, // #1 = $src1
/*264381*/          OPC_RecordChild1, // #2 = $src2
/*264382*/          OPC_MoveChild2,
/*264383*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*264386*/          OPC_RecordMemRef,
/*264387*/          OPC_RecordNode, // #3 = 'ld' chained node
/*264388*/          OPC_CheckFoldableChainNode,
/*264389*/          OPC_RecordChild1, // #4 = $src3
/*264390*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*264392*/          OPC_CheckPredicate, 9, // Predicate_load
/*264394*/          OPC_MoveParent,
/*264395*/          OPC_MoveParent,
/*264396*/          OPC_Scope, 27, /*->264425*/ // 3 children in Scope
/*264398*/            OPC_MoveChild2,
/*264399*/            OPC_CheckImmAllZerosV,
/*264400*/            OPC_MoveParent,
/*264401*/            OPC_CheckType, MVT::v64i8,
/*264403*/            OPC_CheckPatternPredicate, 187, // (Subtarget->hasVBMI())
/*264405*/            OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*264408*/            OPC_EmitMergeInputChains, 1, 3, 
/*264411*/            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, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v64i8] }) - Complexity = 32
                      // Dst: (VPERMT2Brmkz:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src2, addr:{ *:[iPTR] }:$src3)
/*264425*/          /*Scope*/ 26, /*->264452*/
/*264426*/            OPC_CheckChild2Same, 2,
/*264428*/            OPC_CheckType, MVT::v64i8,
/*264430*/            OPC_CheckPatternPredicate, 187, // (Subtarget->hasVBMI())
/*264432*/            OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*264435*/            OPC_EmitMergeInputChains, 1, 3, 
/*264438*/            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, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v64i8] }:$src1) - Complexity = 28
                      // Dst: (VPERMI2Brmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src2, addr:{ *:[iPTR] }:$src3)
/*264452*/          /*Scope*/ 26, /*->264479*/
/*264453*/            OPC_CheckChild2Same, 1,
/*264455*/            OPC_CheckType, MVT::v64i8,
/*264457*/            OPC_CheckPatternPredicate, 187, // (Subtarget->hasVBMI())
/*264459*/            OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*264462*/            OPC_EmitMergeInputChains, 1, 3, 
/*264465*/            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, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v64i8] }:$src1) - Complexity = 28
                      // Dst: (VPERMT2Brmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src2, addr:{ *:[iPTR] }:$src3)
/*264479*/          0, /*End of Scope*/
/*264480*/        /*SwitchOpcode*/ 32|128,1/*160*/, TARGET_VAL(ISD::ADD),// ->264644
/*264484*/          OPC_Scope, 39, /*->264525*/ // 4 children in Scope
/*264486*/            OPC_RecordChild0, // #1 = $src1
/*264487*/            OPC_MoveChild1,
/*264488*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*264491*/            OPC_RecordMemRef,
/*264492*/            OPC_RecordNode, // #2 = 'ld' chained node
/*264493*/            OPC_CheckFoldableChainNode,
/*264494*/            OPC_RecordChild1, // #3 = $src2
/*264495*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*264497*/            OPC_CheckPredicate, 9, // Predicate_load
/*264499*/            OPC_MoveParent,
/*264500*/            OPC_MoveParent,
/*264501*/            OPC_MoveChild2,
/*264502*/            OPC_CheckImmAllZerosV,
/*264503*/            OPC_MoveParent,
/*264504*/            OPC_CheckType, MVT::v64i8,
/*264506*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*264508*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*264511*/            OPC_EmitMergeInputChains1_2,
/*264512*/            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, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v64i8] }) - Complexity = 32
                      // Dst: (VPADDBZrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*264525*/          /*Scope*/ 39, /*->264565*/
/*264526*/            OPC_MoveChild0,
/*264527*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*264530*/            OPC_RecordMemRef,
/*264531*/            OPC_RecordNode, // #1 = 'ld' chained node
/*264532*/            OPC_CheckFoldableChainNode,
/*264533*/            OPC_RecordChild1, // #2 = $src2
/*264534*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*264536*/            OPC_CheckPredicate, 9, // Predicate_load
/*264538*/            OPC_MoveParent,
/*264539*/            OPC_RecordChild1, // #3 = $src1
/*264540*/            OPC_MoveParent,
/*264541*/            OPC_MoveChild2,
/*264542*/            OPC_CheckImmAllZerosV,
/*264543*/            OPC_MoveParent,
/*264544*/            OPC_CheckType, MVT::v64i8,
/*264546*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*264548*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*264551*/            OPC_EmitMergeInputChains1_1,
/*264552*/            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] } (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v64i8] }:$src1), immAllZerosV:{ *:[v64i8] }) - Complexity = 32
                      // Dst: (VPADDBZrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*264565*/          /*Scope*/ 38, /*->264604*/
/*264566*/            OPC_RecordChild0, // #1 = $src1
/*264567*/            OPC_MoveChild1,
/*264568*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*264571*/            OPC_RecordMemRef,
/*264572*/            OPC_RecordNode, // #2 = 'ld' chained node
/*264573*/            OPC_CheckFoldableChainNode,
/*264574*/            OPC_RecordChild1, // #3 = $src2
/*264575*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*264577*/            OPC_CheckPredicate, 9, // Predicate_load
/*264579*/            OPC_MoveParent,
/*264580*/            OPC_MoveParent,
/*264581*/            OPC_RecordChild2, // #4 = $src0
/*264582*/            OPC_CheckType, MVT::v64i8,
/*264584*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*264586*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*264589*/            OPC_EmitMergeInputChains1_2,
/*264590*/            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, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v64i8] }:$src0) - Complexity = 28
                      // Dst: (VPADDBZrmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*264604*/          /*Scope*/ 38, /*->264643*/
/*264605*/            OPC_MoveChild0,
/*264606*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*264609*/            OPC_RecordMemRef,
/*264610*/            OPC_RecordNode, // #1 = 'ld' chained node
/*264611*/            OPC_CheckFoldableChainNode,
/*264612*/            OPC_RecordChild1, // #2 = $src2
/*264613*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*264615*/            OPC_CheckPredicate, 9, // Predicate_load
/*264617*/            OPC_MoveParent,
/*264618*/            OPC_RecordChild1, // #3 = $src1
/*264619*/            OPC_MoveParent,
/*264620*/            OPC_RecordChild2, // #4 = $src0
/*264621*/            OPC_CheckType, MVT::v64i8,
/*264623*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*264625*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*264628*/            OPC_EmitMergeInputChains1_1,
/*264629*/            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] } (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v64i8] }:$src1), VR512:{ *:[v64i8] }:$src0) - Complexity = 28
                      // Dst: (VPADDBZrmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*264643*/          0, /*End of Scope*/
/*264644*/        /*SwitchOpcode*/ 66, TARGET_VAL(ISD::SUB),// ->264713
/*264647*/          OPC_RecordChild0, // #1 = $src1
/*264648*/          OPC_MoveChild1,
/*264649*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*264652*/          OPC_RecordMemRef,
/*264653*/          OPC_RecordNode, // #2 = 'ld' chained node
/*264654*/          OPC_CheckFoldableChainNode,
/*264655*/          OPC_RecordChild1, // #3 = $src2
/*264656*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*264658*/          OPC_CheckPredicate, 9, // Predicate_load
/*264660*/          OPC_MoveParent,
/*264661*/          OPC_MoveParent,
/*264662*/          OPC_Scope, 24, /*->264688*/ // 2 children in Scope
/*264664*/            OPC_MoveChild2,
/*264665*/            OPC_CheckImmAllZerosV,
/*264666*/            OPC_MoveParent,
/*264667*/            OPC_CheckType, MVT::v64i8,
/*264669*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*264671*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*264674*/            OPC_EmitMergeInputChains1_2,
/*264675*/            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, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v64i8] }) - Complexity = 32
                      // Dst: (VPSUBBZrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*264688*/          /*Scope*/ 23, /*->264712*/
/*264689*/            OPC_RecordChild2, // #4 = $src0
/*264690*/            OPC_CheckType, MVT::v64i8,
/*264692*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*264694*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*264697*/            OPC_EmitMergeInputChains1_2,
/*264698*/            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, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v64i8] }:$src0) - Complexity = 28
                      // Dst: (VPSUBBZrmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*264712*/          0, /*End of Scope*/
/*264713*/        /*SwitchOpcode*/ 32|128,1/*160*/, TARGET_VAL(ISD::SADDSAT),// ->264877
/*264717*/          OPC_Scope, 39, /*->264758*/ // 4 children in Scope
/*264719*/            OPC_RecordChild0, // #1 = $src1
/*264720*/            OPC_MoveChild1,
/*264721*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*264724*/            OPC_RecordMemRef,
/*264725*/            OPC_RecordNode, // #2 = 'ld' chained node
/*264726*/            OPC_CheckFoldableChainNode,
/*264727*/            OPC_RecordChild1, // #3 = $src2
/*264728*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*264730*/            OPC_CheckPredicate, 9, // Predicate_load
/*264732*/            OPC_MoveParent,
/*264733*/            OPC_MoveParent,
/*264734*/            OPC_MoveChild2,
/*264735*/            OPC_CheckImmAllZerosV,
/*264736*/            OPC_MoveParent,
/*264737*/            OPC_CheckType, MVT::v64i8,
/*264739*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*264741*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*264744*/            OPC_EmitMergeInputChains1_2,
/*264745*/            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, (saddsat:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v64i8] }) - Complexity = 32
                      // Dst: (VPADDSBZrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*264758*/          /*Scope*/ 39, /*->264798*/
/*264759*/            OPC_MoveChild0,
/*264760*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*264763*/            OPC_RecordMemRef,
/*264764*/            OPC_RecordNode, // #1 = 'ld' chained node
/*264765*/            OPC_CheckFoldableChainNode,
/*264766*/            OPC_RecordChild1, // #2 = $src2
/*264767*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*264769*/            OPC_CheckPredicate, 9, // Predicate_load
/*264771*/            OPC_MoveParent,
/*264772*/            OPC_RecordChild1, // #3 = $src1
/*264773*/            OPC_MoveParent,
/*264774*/            OPC_MoveChild2,
/*264775*/            OPC_CheckImmAllZerosV,
/*264776*/            OPC_MoveParent,
/*264777*/            OPC_CheckType, MVT::v64i8,
/*264779*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*264781*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*264784*/            OPC_EmitMergeInputChains1_1,
/*264785*/            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, (saddsat:{ *:[v64i8] } (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v64i8] }:$src1), immAllZerosV:{ *:[v64i8] }) - Complexity = 32
                      // Dst: (VPADDSBZrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*264798*/          /*Scope*/ 38, /*->264837*/
/*264799*/            OPC_RecordChild0, // #1 = $src1
/*264800*/            OPC_MoveChild1,
/*264801*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*264804*/            OPC_RecordMemRef,
/*264805*/            OPC_RecordNode, // #2 = 'ld' chained node
/*264806*/            OPC_CheckFoldableChainNode,
/*264807*/            OPC_RecordChild1, // #3 = $src2
/*264808*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*264810*/            OPC_CheckPredicate, 9, // Predicate_load
/*264812*/            OPC_MoveParent,
/*264813*/            OPC_MoveParent,
/*264814*/            OPC_RecordChild2, // #4 = $src0
/*264815*/            OPC_CheckType, MVT::v64i8,
/*264817*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*264819*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*264822*/            OPC_EmitMergeInputChains1_2,
/*264823*/            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, (saddsat:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v64i8] }:$src0) - Complexity = 28
                      // Dst: (VPADDSBZrmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*264837*/          /*Scope*/ 38, /*->264876*/
/*264838*/            OPC_MoveChild0,
/*264839*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*264842*/            OPC_RecordMemRef,
/*264843*/            OPC_RecordNode, // #1 = 'ld' chained node
/*264844*/            OPC_CheckFoldableChainNode,
/*264845*/            OPC_RecordChild1, // #2 = $src2
/*264846*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*264848*/            OPC_CheckPredicate, 9, // Predicate_load
/*264850*/            OPC_MoveParent,
/*264851*/            OPC_RecordChild1, // #3 = $src1
/*264852*/            OPC_MoveParent,
/*264853*/            OPC_RecordChild2, // #4 = $src0
/*264854*/            OPC_CheckType, MVT::v64i8,
/*264856*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*264858*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*264861*/            OPC_EmitMergeInputChains1_1,
/*264862*/            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, (saddsat:{ *:[v64i8] } (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v64i8] }:$src1), VR512:{ *:[v64i8] }:$src0) - Complexity = 28
                      // Dst: (VPADDSBZrmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*264876*/          0, /*End of Scope*/
/*264877*/        /*SwitchOpcode*/ 66, TARGET_VAL(ISD::SSUBSAT),// ->264946
/*264880*/          OPC_RecordChild0, // #1 = $src1
/*264881*/          OPC_MoveChild1,
/*264882*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*264885*/          OPC_RecordMemRef,
/*264886*/          OPC_RecordNode, // #2 = 'ld' chained node
/*264887*/          OPC_CheckFoldableChainNode,
/*264888*/          OPC_RecordChild1, // #3 = $src2
/*264889*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*264891*/          OPC_CheckPredicate, 9, // Predicate_load
/*264893*/          OPC_MoveParent,
/*264894*/          OPC_MoveParent,
/*264895*/          OPC_Scope, 24, /*->264921*/ // 2 children in Scope
/*264897*/            OPC_MoveChild2,
/*264898*/            OPC_CheckImmAllZerosV,
/*264899*/            OPC_MoveParent,
/*264900*/            OPC_CheckType, MVT::v64i8,
/*264902*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*264904*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*264907*/            OPC_EmitMergeInputChains1_2,
/*264908*/            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, (ssubsat:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v64i8] }) - Complexity = 32
                      // Dst: (VPSUBSBZrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*264921*/          /*Scope*/ 23, /*->264945*/
/*264922*/            OPC_RecordChild2, // #4 = $src0
/*264923*/            OPC_CheckType, MVT::v64i8,
/*264925*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*264927*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*264930*/            OPC_EmitMergeInputChains1_2,
/*264931*/            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, (ssubsat:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v64i8] }:$src0) - Complexity = 28
                      // Dst: (VPSUBSBZrmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*264945*/          0, /*End of Scope*/
/*264946*/        /*SwitchOpcode*/ 32|128,1/*160*/, TARGET_VAL(ISD::UADDSAT),// ->265110
/*264950*/          OPC_Scope, 39, /*->264991*/ // 4 children in Scope
/*264952*/            OPC_RecordChild0, // #1 = $src1
/*264953*/            OPC_MoveChild1,
/*264954*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*264957*/            OPC_RecordMemRef,
/*264958*/            OPC_RecordNode, // #2 = 'ld' chained node
/*264959*/            OPC_CheckFoldableChainNode,
/*264960*/            OPC_RecordChild1, // #3 = $src2
/*264961*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*264963*/            OPC_CheckPredicate, 9, // Predicate_load
/*264965*/            OPC_MoveParent,
/*264966*/            OPC_MoveParent,
/*264967*/            OPC_MoveChild2,
/*264968*/            OPC_CheckImmAllZerosV,
/*264969*/            OPC_MoveParent,
/*264970*/            OPC_CheckType, MVT::v64i8,
/*264972*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*264974*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*264977*/            OPC_EmitMergeInputChains1_2,
/*264978*/            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, (uaddsat:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v64i8] }) - Complexity = 32
                      // Dst: (VPADDUSBZrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*264991*/          /*Scope*/ 39, /*->265031*/
/*264992*/            OPC_MoveChild0,
/*264993*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*264996*/            OPC_RecordMemRef,
/*264997*/            OPC_RecordNode, // #1 = 'ld' chained node
/*264998*/            OPC_CheckFoldableChainNode,
/*264999*/            OPC_RecordChild1, // #2 = $src2
/*265000*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*265002*/            OPC_CheckPredicate, 9, // Predicate_load
/*265004*/            OPC_MoveParent,
/*265005*/            OPC_RecordChild1, // #3 = $src1
/*265006*/            OPC_MoveParent,
/*265007*/            OPC_MoveChild2,
/*265008*/            OPC_CheckImmAllZerosV,
/*265009*/            OPC_MoveParent,
/*265010*/            OPC_CheckType, MVT::v64i8,
/*265012*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*265014*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*265017*/            OPC_EmitMergeInputChains1_1,
/*265018*/            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, (uaddsat:{ *:[v64i8] } (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v64i8] }:$src1), immAllZerosV:{ *:[v64i8] }) - Complexity = 32
                      // Dst: (VPADDUSBZrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*265031*/          /*Scope*/ 38, /*->265070*/
/*265032*/            OPC_RecordChild0, // #1 = $src1
/*265033*/            OPC_MoveChild1,
/*265034*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*265037*/            OPC_RecordMemRef,
/*265038*/            OPC_RecordNode, // #2 = 'ld' chained node
/*265039*/            OPC_CheckFoldableChainNode,
/*265040*/            OPC_RecordChild1, // #3 = $src2
/*265041*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*265043*/            OPC_CheckPredicate, 9, // Predicate_load
/*265045*/            OPC_MoveParent,
/*265046*/            OPC_MoveParent,
/*265047*/            OPC_RecordChild2, // #4 = $src0
/*265048*/            OPC_CheckType, MVT::v64i8,
/*265050*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*265052*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*265055*/            OPC_EmitMergeInputChains1_2,
/*265056*/            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, (uaddsat:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v64i8] }:$src0) - Complexity = 28
                      // Dst: (VPADDUSBZrmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*265070*/          /*Scope*/ 38, /*->265109*/
/*265071*/            OPC_MoveChild0,
/*265072*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*265075*/            OPC_RecordMemRef,
/*265076*/            OPC_RecordNode, // #1 = 'ld' chained node
/*265077*/            OPC_CheckFoldableChainNode,
/*265078*/            OPC_RecordChild1, // #2 = $src2
/*265079*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*265081*/            OPC_CheckPredicate, 9, // Predicate_load
/*265083*/            OPC_MoveParent,
/*265084*/            OPC_RecordChild1, // #3 = $src1
/*265085*/            OPC_MoveParent,
/*265086*/            OPC_RecordChild2, // #4 = $src0
/*265087*/            OPC_CheckType, MVT::v64i8,
/*265089*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*265091*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*265094*/            OPC_EmitMergeInputChains1_1,
/*265095*/            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, (uaddsat:{ *:[v64i8] } (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v64i8] }:$src1), VR512:{ *:[v64i8] }:$src0) - Complexity = 28
                      // Dst: (VPADDUSBZrmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*265109*/          0, /*End of Scope*/
/*265110*/        /*SwitchOpcode*/ 66, TARGET_VAL(ISD::USUBSAT),// ->265179
/*265113*/          OPC_RecordChild0, // #1 = $src1
/*265114*/          OPC_MoveChild1,
/*265115*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*265118*/          OPC_RecordMemRef,
/*265119*/          OPC_RecordNode, // #2 = 'ld' chained node
/*265120*/          OPC_CheckFoldableChainNode,
/*265121*/          OPC_RecordChild1, // #3 = $src2
/*265122*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*265124*/          OPC_CheckPredicate, 9, // Predicate_load
/*265126*/          OPC_MoveParent,
/*265127*/          OPC_MoveParent,
/*265128*/          OPC_Scope, 24, /*->265154*/ // 2 children in Scope
/*265130*/            OPC_MoveChild2,
/*265131*/            OPC_CheckImmAllZerosV,
/*265132*/            OPC_MoveParent,
/*265133*/            OPC_CheckType, MVT::v64i8,
/*265135*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*265137*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*265140*/            OPC_EmitMergeInputChains1_2,
/*265141*/            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, (usubsat:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v64i8] }) - Complexity = 32
                      // Dst: (VPSUBUSBZrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*265154*/          /*Scope*/ 23, /*->265178*/
/*265155*/            OPC_RecordChild2, // #4 = $src0
/*265156*/            OPC_CheckType, MVT::v64i8,
/*265158*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*265160*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*265163*/            OPC_EmitMergeInputChains1_2,
/*265164*/            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, (usubsat:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v64i8] }:$src0) - Complexity = 28
                      // Dst: (VPSUBUSBZrmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*265178*/          0, /*End of Scope*/
/*265179*/        /*SwitchOpcode*/ 32|128,1/*160*/, TARGET_VAL(X86ISD::AVG),// ->265343
/*265183*/          OPC_Scope, 39, /*->265224*/ // 4 children in Scope
/*265185*/            OPC_RecordChild0, // #1 = $src1
/*265186*/            OPC_MoveChild1,
/*265187*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*265190*/            OPC_RecordMemRef,
/*265191*/            OPC_RecordNode, // #2 = 'ld' chained node
/*265192*/            OPC_CheckFoldableChainNode,
/*265193*/            OPC_RecordChild1, // #3 = $src2
/*265194*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*265196*/            OPC_CheckPredicate, 9, // Predicate_load
/*265198*/            OPC_MoveParent,
/*265199*/            OPC_MoveParent,
/*265200*/            OPC_MoveChild2,
/*265201*/            OPC_CheckImmAllZerosV,
/*265202*/            OPC_MoveParent,
/*265203*/            OPC_CheckType, MVT::v64i8,
/*265205*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*265207*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*265210*/            OPC_EmitMergeInputChains1_2,
/*265211*/            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, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v64i8] }) - Complexity = 32
                      // Dst: (VPAVGBZrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*265224*/          /*Scope*/ 39, /*->265264*/
/*265225*/            OPC_MoveChild0,
/*265226*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*265229*/            OPC_RecordMemRef,
/*265230*/            OPC_RecordNode, // #1 = 'ld' chained node
/*265231*/            OPC_CheckFoldableChainNode,
/*265232*/            OPC_RecordChild1, // #2 = $src2
/*265233*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*265235*/            OPC_CheckPredicate, 9, // Predicate_load
/*265237*/            OPC_MoveParent,
/*265238*/            OPC_RecordChild1, // #3 = $src1
/*265239*/            OPC_MoveParent,
/*265240*/            OPC_MoveChild2,
/*265241*/            OPC_CheckImmAllZerosV,
/*265242*/            OPC_MoveParent,
/*265243*/            OPC_CheckType, MVT::v64i8,
/*265245*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*265247*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*265250*/            OPC_EmitMergeInputChains1_1,
/*265251*/            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] } (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v64i8] }:$src1), immAllZerosV:{ *:[v64i8] }) - Complexity = 32
                      // Dst: (VPAVGBZrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*265264*/          /*Scope*/ 38, /*->265303*/
/*265265*/            OPC_RecordChild0, // #1 = $src1
/*265266*/            OPC_MoveChild1,
/*265267*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*265270*/            OPC_RecordMemRef,
/*265271*/            OPC_RecordNode, // #2 = 'ld' chained node
/*265272*/            OPC_CheckFoldableChainNode,
/*265273*/            OPC_RecordChild1, // #3 = $src2
/*265274*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*265276*/            OPC_CheckPredicate, 9, // Predicate_load
/*265278*/            OPC_MoveParent,
/*265279*/            OPC_MoveParent,
/*265280*/            OPC_RecordChild2, // #4 = $src0
/*265281*/            OPC_CheckType, MVT::v64i8,
/*265283*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*265285*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*265288*/            OPC_EmitMergeInputChains1_2,
/*265289*/            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, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v64i8] }:$src0) - Complexity = 28
                      // Dst: (VPAVGBZrmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*265303*/          /*Scope*/ 38, /*->265342*/
/*265304*/            OPC_MoveChild0,
/*265305*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*265308*/            OPC_RecordMemRef,
/*265309*/            OPC_RecordNode, // #1 = 'ld' chained node
/*265310*/            OPC_CheckFoldableChainNode,
/*265311*/            OPC_RecordChild1, // #2 = $src2
/*265312*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*265314*/            OPC_CheckPredicate, 9, // Predicate_load
/*265316*/            OPC_MoveParent,
/*265317*/            OPC_RecordChild1, // #3 = $src1
/*265318*/            OPC_MoveParent,
/*265319*/            OPC_RecordChild2, // #4 = $src0
/*265320*/            OPC_CheckType, MVT::v64i8,
/*265322*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*265324*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*265327*/            OPC_EmitMergeInputChains1_1,
/*265328*/            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] } (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v64i8] }:$src1), VR512:{ *:[v64i8] }:$src0) - Complexity = 28
                      // Dst: (VPAVGBZrmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*265342*/          0, /*End of Scope*/
/*265343*/        /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::PACKSS),// ->265414
/*265346*/          OPC_RecordChild0, // #1 = $src1
/*265347*/          OPC_CheckChild0Type, MVT::v32i16,
/*265349*/          OPC_MoveChild1,
/*265350*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*265353*/          OPC_RecordMemRef,
/*265354*/          OPC_RecordNode, // #2 = 'ld' chained node
/*265355*/          OPC_CheckFoldableChainNode,
/*265356*/          OPC_RecordChild1, // #3 = $src2
/*265357*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*265359*/          OPC_CheckPredicate, 9, // Predicate_load
/*265361*/          OPC_MoveParent,
/*265362*/          OPC_MoveParent,
/*265363*/          OPC_Scope, 24, /*->265389*/ // 2 children in Scope
/*265365*/            OPC_MoveChild2,
/*265366*/            OPC_CheckImmAllZerosV,
/*265367*/            OPC_MoveParent,
/*265368*/            OPC_CheckType, MVT::v64i8,
/*265370*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*265372*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*265375*/            OPC_EmitMergeInputChains1_2,
/*265376*/            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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v64i8] }) - Complexity = 32
                      // Dst: (VPACKSSWBZrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*265389*/          /*Scope*/ 23, /*->265413*/
/*265390*/            OPC_RecordChild2, // #4 = $src0
/*265391*/            OPC_CheckType, MVT::v64i8,
/*265393*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*265395*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*265398*/            OPC_EmitMergeInputChains1_2,
/*265399*/            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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v64i8] }:$src0) - Complexity = 28
                      // Dst: (VPACKSSWBZrmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*265413*/          0, /*End of Scope*/
/*265414*/        /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::PACKUS),// ->265485
/*265417*/          OPC_RecordChild0, // #1 = $src1
/*265418*/          OPC_CheckChild0Type, MVT::v32i16,
/*265420*/          OPC_MoveChild1,
/*265421*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*265424*/          OPC_RecordMemRef,
/*265425*/          OPC_RecordNode, // #2 = 'ld' chained node
/*265426*/          OPC_CheckFoldableChainNode,
/*265427*/          OPC_RecordChild1, // #3 = $src2
/*265428*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*265430*/          OPC_CheckPredicate, 9, // Predicate_load
/*265432*/          OPC_MoveParent,
/*265433*/          OPC_MoveParent,
/*265434*/          OPC_Scope, 24, /*->265460*/ // 2 children in Scope
/*265436*/            OPC_MoveChild2,
/*265437*/            OPC_CheckImmAllZerosV,
/*265438*/            OPC_MoveParent,
/*265439*/            OPC_CheckType, MVT::v64i8,
/*265441*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*265443*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*265446*/            OPC_EmitMergeInputChains1_2,
/*265447*/            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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v64i8] }) - Complexity = 32
                      // Dst: (VPACKUSWBZrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*265460*/          /*Scope*/ 23, /*->265484*/
/*265461*/            OPC_RecordChild2, // #4 = $src0
/*265462*/            OPC_CheckType, MVT::v64i8,
/*265464*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*265466*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*265469*/            OPC_EmitMergeInputChains1_2,
/*265470*/            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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v64i8] }:$src0) - Complexity = 28
                      // Dst: (VPACKUSWBZrmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*265484*/          0, /*End of Scope*/
/*265485*/        /*SwitchOpcode*/ 32|128,1/*160*/, TARGET_VAL(ISD::SMAX),// ->265649
/*265489*/          OPC_Scope, 39, /*->265530*/ // 4 children in Scope
/*265491*/            OPC_RecordChild0, // #1 = $src1
/*265492*/            OPC_MoveChild1,
/*265493*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*265496*/            OPC_RecordMemRef,
/*265497*/            OPC_RecordNode, // #2 = 'ld' chained node
/*265498*/            OPC_CheckFoldableChainNode,
/*265499*/            OPC_RecordChild1, // #3 = $src2
/*265500*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*265502*/            OPC_CheckPredicate, 9, // Predicate_load
/*265504*/            OPC_MoveParent,
/*265505*/            OPC_MoveParent,
/*265506*/            OPC_MoveChild2,
/*265507*/            OPC_CheckImmAllZerosV,
/*265508*/            OPC_MoveParent,
/*265509*/            OPC_CheckType, MVT::v64i8,
/*265511*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*265513*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*265516*/            OPC_EmitMergeInputChains1_2,
/*265517*/            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, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v64i8] }) - Complexity = 32
                      // Dst: (VPMAXSBZrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*265530*/          /*Scope*/ 39, /*->265570*/
/*265531*/            OPC_MoveChild0,
/*265532*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*265535*/            OPC_RecordMemRef,
/*265536*/            OPC_RecordNode, // #1 = 'ld' chained node
/*265537*/            OPC_CheckFoldableChainNode,
/*265538*/            OPC_RecordChild1, // #2 = $src2
/*265539*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*265541*/            OPC_CheckPredicate, 9, // Predicate_load
/*265543*/            OPC_MoveParent,
/*265544*/            OPC_RecordChild1, // #3 = $src1
/*265545*/            OPC_MoveParent,
/*265546*/            OPC_MoveChild2,
/*265547*/            OPC_CheckImmAllZerosV,
/*265548*/            OPC_MoveParent,
/*265549*/            OPC_CheckType, MVT::v64i8,
/*265551*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*265553*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*265556*/            OPC_EmitMergeInputChains1_1,
/*265557*/            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] } (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v64i8] }:$src1), immAllZerosV:{ *:[v64i8] }) - Complexity = 32
                      // Dst: (VPMAXSBZrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*265570*/          /*Scope*/ 38, /*->265609*/
/*265571*/            OPC_RecordChild0, // #1 = $src1
/*265572*/            OPC_MoveChild1,
/*265573*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*265576*/            OPC_RecordMemRef,
/*265577*/            OPC_RecordNode, // #2 = 'ld' chained node
/*265578*/            OPC_CheckFoldableChainNode,
/*265579*/            OPC_RecordChild1, // #3 = $src2
/*265580*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*265582*/            OPC_CheckPredicate, 9, // Predicate_load
/*265584*/            OPC_MoveParent,
/*265585*/            OPC_MoveParent,
/*265586*/            OPC_RecordChild2, // #4 = $src0
/*265587*/            OPC_CheckType, MVT::v64i8,
/*265589*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*265591*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*265594*/            OPC_EmitMergeInputChains1_2,
/*265595*/            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, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v64i8] }:$src0) - Complexity = 28
                      // Dst: (VPMAXSBZrmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*265609*/          /*Scope*/ 38, /*->265648*/
/*265610*/            OPC_MoveChild0,
/*265611*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*265614*/            OPC_RecordMemRef,
/*265615*/            OPC_RecordNode, // #1 = 'ld' chained node
/*265616*/            OPC_CheckFoldableChainNode,
/*265617*/            OPC_RecordChild1, // #2 = $src2
/*265618*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*265620*/            OPC_CheckPredicate, 9, // Predicate_load
/*265622*/            OPC_MoveParent,
/*265623*/            OPC_RecordChild1, // #3 = $src1
/*265624*/            OPC_MoveParent,
/*265625*/            OPC_RecordChild2, // #4 = $src0
/*265626*/            OPC_CheckType, MVT::v64i8,
/*265628*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*265630*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*265633*/            OPC_EmitMergeInputChains1_1,
/*265634*/            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] } (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v64i8] }:$src1), VR512:{ *:[v64i8] }:$src0) - Complexity = 28
                      // Dst: (VPMAXSBZrmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*265648*/          0, /*End of Scope*/
/*265649*/        /*SwitchOpcode*/ 32|128,1/*160*/, TARGET_VAL(ISD::UMAX),// ->265813
/*265653*/          OPC_Scope, 39, /*->265694*/ // 4 children in Scope
/*265655*/            OPC_RecordChild0, // #1 = $src1
/*265656*/            OPC_MoveChild1,
/*265657*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*265660*/            OPC_RecordMemRef,
/*265661*/            OPC_RecordNode, // #2 = 'ld' chained node
/*265662*/            OPC_CheckFoldableChainNode,
/*265663*/            OPC_RecordChild1, // #3 = $src2
/*265664*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*265666*/            OPC_CheckPredicate, 9, // Predicate_load
/*265668*/            OPC_MoveParent,
/*265669*/            OPC_MoveParent,
/*265670*/            OPC_MoveChild2,
/*265671*/            OPC_CheckImmAllZerosV,
/*265672*/            OPC_MoveParent,
/*265673*/            OPC_CheckType, MVT::v64i8,
/*265675*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*265677*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*265680*/            OPC_EmitMergeInputChains1_2,
/*265681*/            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, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v64i8] }) - Complexity = 32
                      // Dst: (VPMAXUBZrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*265694*/          /*Scope*/ 39, /*->265734*/
/*265695*/            OPC_MoveChild0,
/*265696*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*265699*/            OPC_RecordMemRef,
/*265700*/            OPC_RecordNode, // #1 = 'ld' chained node
/*265701*/            OPC_CheckFoldableChainNode,
/*265702*/            OPC_RecordChild1, // #2 = $src2
/*265703*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*265705*/            OPC_CheckPredicate, 9, // Predicate_load
/*265707*/            OPC_MoveParent,
/*265708*/            OPC_RecordChild1, // #3 = $src1
/*265709*/            OPC_MoveParent,
/*265710*/            OPC_MoveChild2,
/*265711*/            OPC_CheckImmAllZerosV,
/*265712*/            OPC_MoveParent,
/*265713*/            OPC_CheckType, MVT::v64i8,
/*265715*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*265717*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*265720*/            OPC_EmitMergeInputChains1_1,
/*265721*/            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] } (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v64i8] }:$src1), immAllZerosV:{ *:[v64i8] }) - Complexity = 32
                      // Dst: (VPMAXUBZrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*265734*/          /*Scope*/ 38, /*->265773*/
/*265735*/            OPC_RecordChild0, // #1 = $src1
/*265736*/            OPC_MoveChild1,
/*265737*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*265740*/            OPC_RecordMemRef,
/*265741*/            OPC_RecordNode, // #2 = 'ld' chained node
/*265742*/            OPC_CheckFoldableChainNode,
/*265743*/            OPC_RecordChild1, // #3 = $src2
/*265744*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*265746*/            OPC_CheckPredicate, 9, // Predicate_load
/*265748*/            OPC_MoveParent,
/*265749*/            OPC_MoveParent,
/*265750*/            OPC_RecordChild2, // #4 = $src0
/*265751*/            OPC_CheckType, MVT::v64i8,
/*265753*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*265755*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*265758*/            OPC_EmitMergeInputChains1_2,
/*265759*/            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, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v64i8] }:$src0) - Complexity = 28
                      // Dst: (VPMAXUBZrmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*265773*/          /*Scope*/ 38, /*->265812*/
/*265774*/            OPC_MoveChild0,
/*265775*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*265778*/            OPC_RecordMemRef,
/*265779*/            OPC_RecordNode, // #1 = 'ld' chained node
/*265780*/            OPC_CheckFoldableChainNode,
/*265781*/            OPC_RecordChild1, // #2 = $src2
/*265782*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*265784*/            OPC_CheckPredicate, 9, // Predicate_load
/*265786*/            OPC_MoveParent,
/*265787*/            OPC_RecordChild1, // #3 = $src1
/*265788*/            OPC_MoveParent,
/*265789*/            OPC_RecordChild2, // #4 = $src0
/*265790*/            OPC_CheckType, MVT::v64i8,
/*265792*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*265794*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*265797*/            OPC_EmitMergeInputChains1_1,
/*265798*/            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] } (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v64i8] }:$src1), VR512:{ *:[v64i8] }:$src0) - Complexity = 28
                      // Dst: (VPMAXUBZrmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*265812*/          0, /*End of Scope*/
/*265813*/        /*SwitchOpcode*/ 32|128,1/*160*/, TARGET_VAL(ISD::SMIN),// ->265977
/*265817*/          OPC_Scope, 39, /*->265858*/ // 4 children in Scope
/*265819*/            OPC_RecordChild0, // #1 = $src1
/*265820*/            OPC_MoveChild1,
/*265821*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*265824*/            OPC_RecordMemRef,
/*265825*/            OPC_RecordNode, // #2 = 'ld' chained node
/*265826*/            OPC_CheckFoldableChainNode,
/*265827*/            OPC_RecordChild1, // #3 = $src2
/*265828*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*265830*/            OPC_CheckPredicate, 9, // Predicate_load
/*265832*/            OPC_MoveParent,
/*265833*/            OPC_MoveParent,
/*265834*/            OPC_MoveChild2,
/*265835*/            OPC_CheckImmAllZerosV,
/*265836*/            OPC_MoveParent,
/*265837*/            OPC_CheckType, MVT::v64i8,
/*265839*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*265841*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*265844*/            OPC_EmitMergeInputChains1_2,
/*265845*/            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, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v64i8] }) - Complexity = 32
                      // Dst: (VPMINSBZrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*265858*/          /*Scope*/ 39, /*->265898*/
/*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, 9, // Predicate_load
/*265871*/            OPC_MoveParent,
/*265872*/            OPC_RecordChild1, // #3 = $src1
/*265873*/            OPC_MoveParent,
/*265874*/            OPC_MoveChild2,
/*265875*/            OPC_CheckImmAllZerosV,
/*265876*/            OPC_MoveParent,
/*265877*/            OPC_CheckType, MVT::v64i8,
/*265879*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*265881*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*265884*/            OPC_EmitMergeInputChains1_1,
/*265885*/            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] } (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v64i8] }:$src1), immAllZerosV:{ *:[v64i8] }) - Complexity = 32
                      // Dst: (VPMINSBZrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*265898*/          /*Scope*/ 38, /*->265937*/
/*265899*/            OPC_RecordChild0, // #1 = $src1
/*265900*/            OPC_MoveChild1,
/*265901*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*265904*/            OPC_RecordMemRef,
/*265905*/            OPC_RecordNode, // #2 = 'ld' chained node
/*265906*/            OPC_CheckFoldableChainNode,
/*265907*/            OPC_RecordChild1, // #3 = $src2
/*265908*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*265910*/            OPC_CheckPredicate, 9, // Predicate_load
/*265912*/            OPC_MoveParent,
/*265913*/            OPC_MoveParent,
/*265914*/            OPC_RecordChild2, // #4 = $src0
/*265915*/            OPC_CheckType, MVT::v64i8,
/*265917*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*265919*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*265922*/            OPC_EmitMergeInputChains1_2,
/*265923*/            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, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v64i8] }:$src0) - Complexity = 28
                      // Dst: (VPMINSBZrmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*265937*/          /*Scope*/ 38, /*->265976*/
/*265938*/            OPC_MoveChild0,
/*265939*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*265942*/            OPC_RecordMemRef,
/*265943*/            OPC_RecordNode, // #1 = 'ld' chained node
/*265944*/            OPC_CheckFoldableChainNode,
/*265945*/            OPC_RecordChild1, // #2 = $src2
/*265946*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*265948*/            OPC_CheckPredicate, 9, // Predicate_load
/*265950*/            OPC_MoveParent,
/*265951*/            OPC_RecordChild1, // #3 = $src1
/*265952*/            OPC_MoveParent,
/*265953*/            OPC_RecordChild2, // #4 = $src0
/*265954*/            OPC_CheckType, MVT::v64i8,
/*265956*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*265958*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*265961*/            OPC_EmitMergeInputChains1_1,
/*265962*/            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] } (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v64i8] }:$src1), VR512:{ *:[v64i8] }:$src0) - Complexity = 28
                      // Dst: (VPMINSBZrmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*265976*/          0, /*End of Scope*/
/*265977*/        /*SwitchOpcode*/ 32|128,1/*160*/, TARGET_VAL(ISD::UMIN),// ->266141
/*265981*/          OPC_Scope, 39, /*->266022*/ // 4 children in Scope
/*265983*/            OPC_RecordChild0, // #1 = $src1
/*265984*/            OPC_MoveChild1,
/*265985*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*265988*/            OPC_RecordMemRef,
/*265989*/            OPC_RecordNode, // #2 = 'ld' chained node
/*265990*/            OPC_CheckFoldableChainNode,
/*265991*/            OPC_RecordChild1, // #3 = $src2
/*265992*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*265994*/            OPC_CheckPredicate, 9, // Predicate_load
/*265996*/            OPC_MoveParent,
/*265997*/            OPC_MoveParent,
/*265998*/            OPC_MoveChild2,
/*265999*/            OPC_CheckImmAllZerosV,
/*266000*/            OPC_MoveParent,
/*266001*/            OPC_CheckType, MVT::v64i8,
/*266003*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*266005*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*266008*/            OPC_EmitMergeInputChains1_2,
/*266009*/            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, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v64i8] }) - Complexity = 32
                      // Dst: (VPMINUBZrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*266022*/          /*Scope*/ 39, /*->266062*/
/*266023*/            OPC_MoveChild0,
/*266024*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*266027*/            OPC_RecordMemRef,
/*266028*/            OPC_RecordNode, // #1 = 'ld' chained node
/*266029*/            OPC_CheckFoldableChainNode,
/*266030*/            OPC_RecordChild1, // #2 = $src2
/*266031*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*266033*/            OPC_CheckPredicate, 9, // Predicate_load
/*266035*/            OPC_MoveParent,
/*266036*/            OPC_RecordChild1, // #3 = $src1
/*266037*/            OPC_MoveParent,
/*266038*/            OPC_MoveChild2,
/*266039*/            OPC_CheckImmAllZerosV,
/*266040*/            OPC_MoveParent,
/*266041*/            OPC_CheckType, MVT::v64i8,
/*266043*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*266045*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*266048*/            OPC_EmitMergeInputChains1_1,
/*266049*/            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] } (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v64i8] }:$src1), immAllZerosV:{ *:[v64i8] }) - Complexity = 32
                      // Dst: (VPMINUBZrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*266062*/          /*Scope*/ 38, /*->266101*/
/*266063*/            OPC_RecordChild0, // #1 = $src1
/*266064*/            OPC_MoveChild1,
/*266065*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*266068*/            OPC_RecordMemRef,
/*266069*/            OPC_RecordNode, // #2 = 'ld' chained node
/*266070*/            OPC_CheckFoldableChainNode,
/*266071*/            OPC_RecordChild1, // #3 = $src2
/*266072*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*266074*/            OPC_CheckPredicate, 9, // Predicate_load
/*266076*/            OPC_MoveParent,
/*266077*/            OPC_MoveParent,
/*266078*/            OPC_RecordChild2, // #4 = $src0
/*266079*/            OPC_CheckType, MVT::v64i8,
/*266081*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*266083*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*266086*/            OPC_EmitMergeInputChains1_2,
/*266087*/            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, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v64i8] }:$src0) - Complexity = 28
                      // Dst: (VPMINUBZrmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*266101*/          /*Scope*/ 38, /*->266140*/
/*266102*/            OPC_MoveChild0,
/*266103*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*266106*/            OPC_RecordMemRef,
/*266107*/            OPC_RecordNode, // #1 = 'ld' chained node
/*266108*/            OPC_CheckFoldableChainNode,
/*266109*/            OPC_RecordChild1, // #2 = $src2
/*266110*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*266112*/            OPC_CheckPredicate, 9, // Predicate_load
/*266114*/            OPC_MoveParent,
/*266115*/            OPC_RecordChild1, // #3 = $src1
/*266116*/            OPC_MoveParent,
/*266117*/            OPC_RecordChild2, // #4 = $src0
/*266118*/            OPC_CheckType, MVT::v64i8,
/*266120*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*266122*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*266125*/            OPC_EmitMergeInputChains1_1,
/*266126*/            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] } (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v64i8] }:$src1), VR512:{ *:[v64i8] }:$src0) - Complexity = 28
                      // Dst: (VPMINUBZrmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*266140*/          0, /*End of Scope*/
/*266141*/        /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VPERMV),// ->266210
/*266144*/          OPC_RecordChild0, // #1 = $src1
/*266145*/          OPC_MoveChild1,
/*266146*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*266149*/          OPC_RecordMemRef,
/*266150*/          OPC_RecordNode, // #2 = 'ld' chained node
/*266151*/          OPC_CheckFoldableChainNode,
/*266152*/          OPC_RecordChild1, // #3 = $src2
/*266153*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*266155*/          OPC_CheckPredicate, 9, // Predicate_load
/*266157*/          OPC_MoveParent,
/*266158*/          OPC_MoveParent,
/*266159*/          OPC_Scope, 24, /*->266185*/ // 2 children in Scope
/*266161*/            OPC_MoveChild2,
/*266162*/            OPC_CheckImmAllZerosV,
/*266163*/            OPC_MoveParent,
/*266164*/            OPC_CheckType, MVT::v64i8,
/*266166*/            OPC_CheckPatternPredicate, 187, // (Subtarget->hasVBMI())
/*266168*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*266171*/            OPC_EmitMergeInputChains1_2,
/*266172*/            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, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v64i8] }) - Complexity = 32
                      // Dst: (VPERMBZrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*266185*/          /*Scope*/ 23, /*->266209*/
/*266186*/            OPC_RecordChild2, // #4 = $src0
/*266187*/            OPC_CheckType, MVT::v64i8,
/*266189*/            OPC_CheckPatternPredicate, 187, // (Subtarget->hasVBMI())
/*266191*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*266194*/            OPC_EmitMergeInputChains1_2,
/*266195*/            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, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v64i8] }:$src0) - Complexity = 28
                      // Dst: (VPERMBZrmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*266209*/          0, /*End of Scope*/
/*266210*/        /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::PSHUFB),// ->266279
/*266213*/          OPC_RecordChild0, // #1 = $src1
/*266214*/          OPC_MoveChild1,
/*266215*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*266218*/          OPC_RecordMemRef,
/*266219*/          OPC_RecordNode, // #2 = 'ld' chained node
/*266220*/          OPC_CheckFoldableChainNode,
/*266221*/          OPC_RecordChild1, // #3 = $src2
/*266222*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*266224*/          OPC_CheckPredicate, 9, // Predicate_load
/*266226*/          OPC_MoveParent,
/*266227*/          OPC_MoveParent,
/*266228*/          OPC_Scope, 24, /*->266254*/ // 2 children in Scope
/*266230*/            OPC_MoveChild2,
/*266231*/            OPC_CheckImmAllZerosV,
/*266232*/            OPC_MoveParent,
/*266233*/            OPC_CheckType, MVT::v64i8,
/*266235*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*266237*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*266240*/            OPC_EmitMergeInputChains1_2,
/*266241*/            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, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v64i8] }) - Complexity = 32
                      // Dst: (VPSHUFBZrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*266254*/          /*Scope*/ 23, /*->266278*/
/*266255*/            OPC_RecordChild2, // #4 = $src0
/*266256*/            OPC_CheckType, MVT::v64i8,
/*266258*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*266260*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*266263*/            OPC_EmitMergeInputChains1_2,
/*266264*/            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, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v64i8] }:$src0) - Complexity = 28
                      // Dst: (VPSHUFBZrmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*266278*/          0, /*End of Scope*/
/*266279*/        /*SwitchOpcode*/ 63, TARGET_VAL(ISD::ABS),// ->266345
/*266282*/          OPC_MoveChild0,
/*266283*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*266286*/          OPC_RecordMemRef,
/*266287*/          OPC_RecordNode, // #1 = 'ld' chained node
/*266288*/          OPC_CheckFoldableChainNode,
/*266289*/          OPC_RecordChild1, // #2 = $src1
/*266290*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*266292*/          OPC_CheckPredicate, 9, // Predicate_load
/*266294*/          OPC_MoveParent,
/*266295*/          OPC_MoveParent,
/*266296*/          OPC_Scope, 23, /*->266321*/ // 2 children in Scope
/*266298*/            OPC_MoveChild2,
/*266299*/            OPC_CheckImmAllZerosV,
/*266300*/            OPC_MoveParent,
/*266301*/            OPC_CheckType, MVT::v64i8,
/*266303*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*266305*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*266308*/            OPC_EmitMergeInputChains1_1,
/*266309*/            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] } (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v64i8] }) - Complexity = 32
                      // Dst: (VPABSBZrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*266321*/          /*Scope*/ 22, /*->266344*/
/*266322*/            OPC_RecordChild2, // #3 = $src0
/*266323*/            OPC_CheckType, MVT::v64i8,
/*266325*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*266327*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*266330*/            OPC_EmitMergeInputChains1_1,
/*266331*/            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] } (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v64i8] }:$src0) - Complexity = 28
                      // Dst: (VPABSBZrmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*266344*/          0, /*End of Scope*/
/*266345*/        /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::UNPCKL),// ->266414
/*266348*/          OPC_RecordChild0, // #1 = $src1
/*266349*/          OPC_MoveChild1,
/*266350*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*266353*/          OPC_RecordMemRef,
/*266354*/          OPC_RecordNode, // #2 = 'ld' chained node
/*266355*/          OPC_CheckFoldableChainNode,
/*266356*/          OPC_RecordChild1, // #3 = $src2
/*266357*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*266359*/          OPC_CheckPredicate, 9, // Predicate_load
/*266361*/          OPC_MoveParent,
/*266362*/          OPC_MoveParent,
/*266363*/          OPC_Scope, 24, /*->266389*/ // 2 children in Scope
/*266365*/            OPC_MoveChild2,
/*266366*/            OPC_CheckImmAllZerosV,
/*266367*/            OPC_MoveParent,
/*266368*/            OPC_CheckType, MVT::v64i8,
/*266370*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*266372*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*266375*/            OPC_EmitMergeInputChains1_2,
/*266376*/            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, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v64i8] }) - Complexity = 32
                      // Dst: (VPUNPCKLBWZrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*266389*/          /*Scope*/ 23, /*->266413*/
/*266390*/            OPC_RecordChild2, // #4 = $src0
/*266391*/            OPC_CheckType, MVT::v64i8,
/*266393*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*266395*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*266398*/            OPC_EmitMergeInputChains1_2,
/*266399*/            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, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v64i8] }:$src0) - Complexity = 28
                      // Dst: (VPUNPCKLBWZrmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*266413*/          0, /*End of Scope*/
/*266414*/        /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::UNPCKH),// ->266483
/*266417*/          OPC_RecordChild0, // #1 = $src1
/*266418*/          OPC_MoveChild1,
/*266419*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*266422*/          OPC_RecordMemRef,
/*266423*/          OPC_RecordNode, // #2 = 'ld' chained node
/*266424*/          OPC_CheckFoldableChainNode,
/*266425*/          OPC_RecordChild1, // #3 = $src2
/*266426*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*266428*/          OPC_CheckPredicate, 9, // Predicate_load
/*266430*/          OPC_MoveParent,
/*266431*/          OPC_MoveParent,
/*266432*/          OPC_Scope, 24, /*->266458*/ // 2 children in Scope
/*266434*/            OPC_MoveChild2,
/*266435*/            OPC_CheckImmAllZerosV,
/*266436*/            OPC_MoveParent,
/*266437*/            OPC_CheckType, MVT::v64i8,
/*266439*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*266441*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*266444*/            OPC_EmitMergeInputChains1_2,
/*266445*/            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, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v64i8] }) - Complexity = 32
                      // Dst: (VPUNPCKHBWZrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*266458*/          /*Scope*/ 23, /*->266482*/
/*266459*/            OPC_RecordChild2, // #4 = $src0
/*266460*/            OPC_CheckType, MVT::v64i8,
/*266462*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*266464*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*266467*/            OPC_EmitMergeInputChains1_2,
/*266468*/            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, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v64i8] }:$src0) - Complexity = 28
                      // Dst: (VPUNPCKHBWZrmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*266482*/          0, /*End of Scope*/
/*266483*/        /*SwitchOpcode*/ 65, TARGET_VAL(ISD::CTPOP),// ->266551
/*266486*/          OPC_MoveChild0,
/*266487*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*266490*/          OPC_RecordMemRef,
/*266491*/          OPC_RecordNode, // #1 = 'ld' chained node
/*266492*/          OPC_CheckFoldableChainNode,
/*266493*/          OPC_RecordChild1, // #2 = $src1
/*266494*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*266496*/          OPC_CheckPredicate, 9, // Predicate_load
/*266498*/          OPC_CheckType, MVT::v64i8,
/*266500*/          OPC_MoveParent,
/*266501*/          OPC_MoveParent,
/*266502*/          OPC_Scope, 23, /*->266527*/ // 2 children in Scope
/*266504*/            OPC_MoveChild2,
/*266505*/            OPC_CheckImmAllZerosV,
/*266506*/            OPC_MoveParent,
/*266507*/            OPC_CheckType, MVT::v64i8,
/*266509*/            OPC_CheckPatternPredicate, 114, // (Subtarget->hasBITALG())
/*266511*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*266514*/            OPC_EmitMergeInputChains1_1,
/*266515*/            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] } (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v64i8] }) - Complexity = 32
                      // Dst: (VPOPCNTBZrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*266527*/          /*Scope*/ 22, /*->266550*/
/*266528*/            OPC_RecordChild2, // #3 = $src0
/*266529*/            OPC_CheckType, MVT::v64i8,
/*266531*/            OPC_CheckPatternPredicate, 114, // (Subtarget->hasBITALG())
/*266533*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*266536*/            OPC_EmitMergeInputChains1_1,
/*266537*/            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] } (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v64i8] }:$src0) - Complexity = 28
                      // Dst: (VPOPCNTBZrmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*266550*/          0, /*End of Scope*/
/*266551*/        /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::GF2P8MULB),// ->266620
/*266554*/          OPC_RecordChild0, // #1 = $src1
/*266555*/          OPC_MoveChild1,
/*266556*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*266559*/          OPC_RecordMemRef,
/*266560*/          OPC_RecordNode, // #2 = 'ld' chained node
/*266561*/          OPC_CheckFoldableChainNode,
/*266562*/          OPC_RecordChild1, // #3 = $src2
/*266563*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*266565*/          OPC_CheckPredicate, 9, // Predicate_load
/*266567*/          OPC_MoveParent,
/*266568*/          OPC_MoveParent,
/*266569*/          OPC_Scope, 24, /*->266595*/ // 2 children in Scope
/*266571*/            OPC_MoveChild2,
/*266572*/            OPC_CheckImmAllZerosV,
/*266573*/            OPC_MoveParent,
/*266574*/            OPC_CheckType, MVT::v64i8,
/*266576*/            OPC_CheckPatternPredicate, 186, // (Subtarget->hasAVX512()) && (Subtarget->hasBWI()) && (Subtarget->hasGFNI())
/*266578*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*266581*/            OPC_EmitMergeInputChains1_2,
/*266582*/            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, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v64i8] }) - Complexity = 32
                      // Dst: (VGF2P8MULBZrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*266595*/          /*Scope*/ 23, /*->266619*/
/*266596*/            OPC_RecordChild2, // #4 = $src0
/*266597*/            OPC_CheckType, MVT::v64i8,
/*266599*/            OPC_CheckPatternPredicate, 186, // (Subtarget->hasAVX512()) && (Subtarget->hasBWI()) && (Subtarget->hasGFNI())
/*266601*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*266604*/            OPC_EmitMergeInputChains1_2,
/*266605*/            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, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v64i8] }:$src0) - Complexity = 28
                      // Dst: (VGF2P8MULBZrmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*266619*/          0, /*End of Scope*/
/*266620*/        /*SwitchOpcode*/ 56, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->266679
/*266623*/          OPC_RecordMemRef,
/*266624*/          OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*266625*/          OPC_CheckFoldableChainNode,
/*266626*/          OPC_RecordChild1, // #2 = $src
/*266627*/          OPC_CheckPredicate, 99, // Predicate_X86VBroadcastld8
/*266629*/          OPC_MoveParent,
/*266630*/          OPC_Scope, 23, /*->266655*/ // 2 children in Scope
/*266632*/            OPC_MoveChild2,
/*266633*/            OPC_CheckImmAllZerosV,
/*266634*/            OPC_MoveParent,
/*266635*/            OPC_CheckType, MVT::v64i8,
/*266637*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*266639*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*266642*/            OPC_EmitMergeInputChains1_1,
/*266643*/            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, (X86VBroadcastld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld8>>, immAllZerosV:{ *:[v64i8] }) - Complexity = 29
                      // Dst: (VPBROADCASTBZmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*266655*/          /*Scope*/ 22, /*->266678*/
/*266656*/            OPC_RecordChild2, // #3 = $src0
/*266657*/            OPC_CheckType, MVT::v64i8,
/*266659*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*266661*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*266664*/            OPC_EmitMergeInputChains1_1,
/*266665*/            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, (X86VBroadcastld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld8>>, VR512:{ *:[v64i8] }:$src0) - Complexity = 25
                      // Dst: (VPBROADCASTBZmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*266678*/          0, /*End of Scope*/
/*266679*/        /*SwitchOpcode*/ 58, TARGET_VAL(ISD::LOAD),// ->266740
/*266682*/          OPC_RecordMemRef,
/*266683*/          OPC_RecordNode, // #1 = 'ld' chained node
/*266684*/          OPC_CheckFoldableChainNode,
/*266685*/          OPC_RecordChild1, // #2 = $src
/*266686*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*266688*/          OPC_CheckPredicate, 9, // Predicate_load
/*266690*/          OPC_MoveParent,
/*266691*/          OPC_Scope, 23, /*->266716*/ // 2 children in Scope
/*266693*/            OPC_MoveChild2,
/*266694*/            OPC_CheckImmAllZerosV,
/*266695*/            OPC_MoveParent,
/*266696*/            OPC_CheckType, MVT::v64i8,
/*266698*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*266700*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*266703*/            OPC_EmitMergeInputChains1_1,
/*266704*/            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, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>, immAllZerosV:{ *:[v64i8] }) - Complexity = 29
                      // Dst: (VMOVDQU8Zrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*266716*/          /*Scope*/ 22, /*->266739*/
/*266717*/            OPC_RecordChild2, // #3 = $src0
/*266718*/            OPC_CheckType, MVT::v64i8,
/*266720*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*266722*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*266725*/            OPC_EmitMergeInputChains1_1,
/*266726*/            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, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v64i8] }:$src0) - Complexity = 25
                      // Dst: (VMOVDQU8Zrmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*266739*/          0, /*End of Scope*/
/*266740*/        0, // EndSwitchOpcode
/*266741*/      /*Scope*/ 114|128,51/*6642*/, /*->273385*/
/*266743*/        OPC_CheckChild0Type, MVT::v32i1,
/*266745*/        OPC_MoveChild1,
/*266746*/        OPC_SwitchOpcode /*49 cases */, 25|128,1/*153*/, TARGET_VAL(X86ISD::GF2P8AFFINEINVQB),// ->266904
/*266751*/          OPC_RecordChild0, // #1 = $src1
/*266752*/          OPC_MoveChild1,
/*266753*/          OPC_SwitchOpcode /*2 cases */, 74, TARGET_VAL(ISD::BITCAST),// ->266831
/*266757*/            OPC_MoveChild0,
/*266758*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*266761*/            OPC_RecordMemRef,
/*266762*/            OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*266763*/            OPC_CheckFoldableChainNode,
/*266764*/            OPC_RecordChild1, // #3 = $src2
/*266765*/            OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*266767*/            OPC_CheckType, MVT::v4i64,
/*266769*/            OPC_MoveParent,
/*266770*/            OPC_MoveParent,
/*266771*/            OPC_RecordChild2, // #4 = $src3
/*266772*/            OPC_MoveChild2,
/*266773*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*266776*/            OPC_MoveParent,
/*266777*/            OPC_MoveParent,
/*266778*/            OPC_Scope, 25, /*->266805*/ // 2 children in Scope
/*266780*/              OPC_MoveChild2,
/*266781*/              OPC_CheckImmAllZerosV,
/*266782*/              OPC_MoveParent,
/*266783*/              OPC_CheckType, MVT::v32i8,
/*266785*/              OPC_CheckPatternPredicate, 180, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*266787*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*266790*/              OPC_EmitMergeInputChains1_2,
/*266791*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEINVQBZ256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86GF2P8affineinvqb:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v32i8] }) - Complexity = 38
                        // Dst: (VGF2P8AFFINEINVQBZ256rmbikz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*266805*/            /*Scope*/ 24, /*->266830*/
/*266806*/              OPC_RecordChild2, // #5 = $src0
/*266807*/              OPC_CheckType, MVT::v32i8,
/*266809*/              OPC_CheckPatternPredicate, 180, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*266811*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*266814*/              OPC_EmitMergeInputChains1_2,
/*266815*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEINVQBZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86GF2P8affineinvqb:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), (timm:{ *:[i8] }):$src3), VR256X:{ *:[v32i8] }:$src0) - Complexity = 34
                        // Dst: (VGF2P8AFFINEINVQBZ256rmbik:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*266830*/            0, /*End of Scope*/
/*266831*/          /*SwitchOpcode*/ 69, TARGET_VAL(ISD::LOAD),// ->266903
/*266834*/            OPC_RecordMemRef,
/*266835*/            OPC_RecordNode, // #2 = 'ld' chained node
/*266836*/            OPC_CheckFoldableChainNode,
/*266837*/            OPC_RecordChild1, // #3 = $src2
/*266838*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*266840*/            OPC_CheckPredicate, 9, // Predicate_load
/*266842*/            OPC_MoveParent,
/*266843*/            OPC_RecordChild2, // #4 = $src3
/*266844*/            OPC_MoveChild2,
/*266845*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*266848*/            OPC_MoveParent,
/*266849*/            OPC_MoveParent,
/*266850*/            OPC_Scope, 25, /*->266877*/ // 2 children in Scope
/*266852*/              OPC_MoveChild2,
/*266853*/              OPC_CheckImmAllZerosV,
/*266854*/              OPC_MoveParent,
/*266855*/              OPC_CheckType, MVT::v32i8,
/*266857*/              OPC_CheckPatternPredicate, 180, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*266859*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*266862*/              OPC_EmitMergeInputChains1_2,
/*266863*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEINVQBZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86GF2P8affineinvqb:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v32i8] }) - Complexity = 35
                        // Dst: (VGF2P8AFFINEINVQBZ256rmikz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*266877*/            /*Scope*/ 24, /*->266902*/
/*266878*/              OPC_RecordChild2, // #5 = $src0
/*266879*/              OPC_CheckType, MVT::v32i8,
/*266881*/              OPC_CheckPatternPredicate, 180, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*266883*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*266886*/              OPC_EmitMergeInputChains1_2,
/*266887*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEINVQBZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86GF2P8affineinvqb:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), VR256X:{ *:[v32i8] }:$src0) - Complexity = 31
                        // Dst: (VGF2P8AFFINEINVQBZ256rmik:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*266902*/            0, /*End of Scope*/
/*266903*/          0, // EndSwitchOpcode
/*266904*/        /*SwitchOpcode*/ 25|128,1/*153*/, TARGET_VAL(X86ISD::GF2P8AFFINEQB),// ->267061
/*266908*/          OPC_RecordChild0, // #1 = $src1
/*266909*/          OPC_MoveChild1,
/*266910*/          OPC_SwitchOpcode /*2 cases */, 74, TARGET_VAL(ISD::BITCAST),// ->266988
/*266914*/            OPC_MoveChild0,
/*266915*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*266918*/            OPC_RecordMemRef,
/*266919*/            OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*266920*/            OPC_CheckFoldableChainNode,
/*266921*/            OPC_RecordChild1, // #3 = $src2
/*266922*/            OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*266924*/            OPC_CheckType, MVT::v4i64,
/*266926*/            OPC_MoveParent,
/*266927*/            OPC_MoveParent,
/*266928*/            OPC_RecordChild2, // #4 = $src3
/*266929*/            OPC_MoveChild2,
/*266930*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*266933*/            OPC_MoveParent,
/*266934*/            OPC_MoveParent,
/*266935*/            OPC_Scope, 25, /*->266962*/ // 2 children in Scope
/*266937*/              OPC_MoveChild2,
/*266938*/              OPC_CheckImmAllZerosV,
/*266939*/              OPC_MoveParent,
/*266940*/              OPC_CheckType, MVT::v32i8,
/*266942*/              OPC_CheckPatternPredicate, 180, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*266944*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*266947*/              OPC_EmitMergeInputChains1_2,
/*266948*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEQBZ256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86GF2P8affineqb:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v32i8] }) - Complexity = 38
                        // Dst: (VGF2P8AFFINEQBZ256rmbikz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*266962*/            /*Scope*/ 24, /*->266987*/
/*266963*/              OPC_RecordChild2, // #5 = $src0
/*266964*/              OPC_CheckType, MVT::v32i8,
/*266966*/              OPC_CheckPatternPredicate, 180, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*266968*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*266971*/              OPC_EmitMergeInputChains1_2,
/*266972*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEQBZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86GF2P8affineqb:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), (timm:{ *:[i8] }):$src3), VR256X:{ *:[v32i8] }:$src0) - Complexity = 34
                        // Dst: (VGF2P8AFFINEQBZ256rmbik:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*266987*/            0, /*End of Scope*/
/*266988*/          /*SwitchOpcode*/ 69, TARGET_VAL(ISD::LOAD),// ->267060
/*266991*/            OPC_RecordMemRef,
/*266992*/            OPC_RecordNode, // #2 = 'ld' chained node
/*266993*/            OPC_CheckFoldableChainNode,
/*266994*/            OPC_RecordChild1, // #3 = $src2
/*266995*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*266997*/            OPC_CheckPredicate, 9, // Predicate_load
/*266999*/            OPC_MoveParent,
/*267000*/            OPC_RecordChild2, // #4 = $src3
/*267001*/            OPC_MoveChild2,
/*267002*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*267005*/            OPC_MoveParent,
/*267006*/            OPC_MoveParent,
/*267007*/            OPC_Scope, 25, /*->267034*/ // 2 children in Scope
/*267009*/              OPC_MoveChild2,
/*267010*/              OPC_CheckImmAllZerosV,
/*267011*/              OPC_MoveParent,
/*267012*/              OPC_CheckType, MVT::v32i8,
/*267014*/              OPC_CheckPatternPredicate, 180, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*267016*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*267019*/              OPC_EmitMergeInputChains1_2,
/*267020*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEQBZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86GF2P8affineqb:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v32i8] }) - Complexity = 35
                        // Dst: (VGF2P8AFFINEQBZ256rmikz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*267034*/            /*Scope*/ 24, /*->267059*/
/*267035*/              OPC_RecordChild2, // #5 = $src0
/*267036*/              OPC_CheckType, MVT::v32i8,
/*267038*/              OPC_CheckPatternPredicate, 180, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*267040*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*267043*/              OPC_EmitMergeInputChains1_2,
/*267044*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEQBZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86GF2P8affineqb:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), VR256X:{ *:[v32i8] }:$src0) - Complexity = 31
                        // Dst: (VGF2P8AFFINEQBZ256rmik:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*267059*/            0, /*End of Scope*/
/*267060*/          0, // EndSwitchOpcode
/*267061*/        /*SwitchOpcode*/ 11|128,1/*139*/, TARGET_VAL(X86ISD::MULTISHIFT),// ->267204
/*267065*/          OPC_RecordChild0, // #1 = $src1
/*267066*/          OPC_CheckChild0Type, MVT::v32i8,
/*267068*/          OPC_MoveChild1,
/*267069*/          OPC_SwitchOpcode /*2 cases */, 66, TARGET_VAL(ISD::BITCAST),// ->267139
/*267073*/            OPC_MoveChild0,
/*267074*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*267077*/            OPC_RecordMemRef,
/*267078*/            OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*267079*/            OPC_CheckFoldableChainNode,
/*267080*/            OPC_RecordChild1, // #3 = $src2
/*267081*/            OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*267083*/            OPC_CheckType, MVT::v4i64,
/*267085*/            OPC_MoveParent,
/*267086*/            OPC_MoveParent,
/*267087*/            OPC_MoveParent,
/*267088*/            OPC_Scope, 24, /*->267114*/ // 2 children in Scope
/*267090*/              OPC_MoveChild2,
/*267091*/              OPC_CheckImmAllZerosV,
/*267092*/              OPC_MoveParent,
/*267093*/              OPC_CheckType, MVT::v32i8,
/*267095*/              OPC_CheckPatternPredicate, 181, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*267097*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*267100*/              OPC_EmitMergeInputChains1_2,
/*267101*/              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] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>)), immAllZerosV:{ *:[v32i8] }) - Complexity = 35
                        // Dst: (VPMULTISHIFTQBZ256rmbkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*267114*/            /*Scope*/ 23, /*->267138*/
/*267115*/              OPC_RecordChild2, // #4 = $src0
/*267116*/              OPC_CheckType, MVT::v32i8,
/*267118*/              OPC_CheckPatternPredicate, 181, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*267120*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*267123*/              OPC_EmitMergeInputChains1_2,
/*267124*/              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] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>)), VR256X:{ *:[v32i8] }:$src0) - Complexity = 31
                        // Dst: (VPMULTISHIFTQBZ256rmbk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*267138*/            0, /*End of Scope*/
/*267139*/          /*SwitchOpcode*/ 61, TARGET_VAL(ISD::LOAD),// ->267203
/*267142*/            OPC_RecordMemRef,
/*267143*/            OPC_RecordNode, // #2 = 'ld' chained node
/*267144*/            OPC_CheckFoldableChainNode,
/*267145*/            OPC_RecordChild1, // #3 = $src2
/*267146*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*267148*/            OPC_CheckPredicate, 9, // Predicate_load
/*267150*/            OPC_MoveParent,
/*267151*/            OPC_MoveParent,
/*267152*/            OPC_Scope, 24, /*->267178*/ // 2 children in Scope
/*267154*/              OPC_MoveChild2,
/*267155*/              OPC_CheckImmAllZerosV,
/*267156*/              OPC_MoveParent,
/*267157*/              OPC_CheckType, MVT::v32i8,
/*267159*/              OPC_CheckPatternPredicate, 181, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*267161*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*267164*/              OPC_EmitMergeInputChains1_2,
/*267165*/              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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v32i8] }) - Complexity = 32
                        // Dst: (VPMULTISHIFTQBZ256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*267178*/            /*Scope*/ 23, /*->267202*/
/*267179*/              OPC_RecordChild2, // #4 = $src0
/*267180*/              OPC_CheckType, MVT::v32i8,
/*267182*/              OPC_CheckPatternPredicate, 181, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*267184*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*267187*/              OPC_EmitMergeInputChains1_2,
/*267188*/              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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v32i8] }:$src0) - Complexity = 28
                        // Dst: (VPMULTISHIFTQBZ256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*267202*/            0, /*End of Scope*/
/*267203*/          0, // EndSwitchOpcode
/*267204*/        /*SwitchOpcode*/ 71, TARGET_VAL(X86ISD::VSRLI),// ->267278
/*267207*/          OPC_MoveChild0,
/*267208*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*267211*/          OPC_RecordMemRef,
/*267212*/          OPC_RecordNode, // #1 = 'ld' chained node
/*267213*/          OPC_CheckFoldableChainNode,
/*267214*/          OPC_RecordChild1, // #2 = $src1
/*267215*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*267217*/          OPC_CheckPredicate, 9, // Predicate_load
/*267219*/          OPC_MoveParent,
/*267220*/          OPC_RecordChild1, // #3 = $src2
/*267221*/          OPC_MoveChild1,
/*267222*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*267225*/          OPC_MoveParent,
/*267226*/          OPC_MoveParent,
/*267227*/          OPC_Scope, 24, /*->267253*/ // 2 children in Scope
/*267229*/            OPC_MoveChild2,
/*267230*/            OPC_CheckImmAllZerosV,
/*267231*/            OPC_MoveParent,
/*267232*/            OPC_CheckType, MVT::v32i16,
/*267234*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*267236*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*267239*/            OPC_EmitMergeInputChains1_1,
/*267240*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLWZmikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86vsrli:{ *:[v32i16] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v32i16] }) - Complexity = 35
                      // Dst: (VPSRLWZmikz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*267253*/          /*Scope*/ 23, /*->267277*/
/*267254*/            OPC_RecordChild2, // #4 = $src0
/*267255*/            OPC_CheckType, MVT::v32i16,
/*267257*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*267259*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*267262*/            OPC_EmitMergeInputChains1_1,
/*267263*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLWZmik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86vsrli:{ *:[v32i16] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), VR512:{ *:[v32i16] }:$src0) - Complexity = 31
                      // Dst: (VPSRLWZmik:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*267277*/          0, /*End of Scope*/
/*267278*/        /*SwitchOpcode*/ 71, TARGET_VAL(X86ISD::VSHLI),// ->267352
/*267281*/          OPC_MoveChild0,
/*267282*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*267285*/          OPC_RecordMemRef,
/*267286*/          OPC_RecordNode, // #1 = 'ld' chained node
/*267287*/          OPC_CheckFoldableChainNode,
/*267288*/          OPC_RecordChild1, // #2 = $src1
/*267289*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*267291*/          OPC_CheckPredicate, 9, // Predicate_load
/*267293*/          OPC_MoveParent,
/*267294*/          OPC_RecordChild1, // #3 = $src2
/*267295*/          OPC_MoveChild1,
/*267296*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*267299*/          OPC_MoveParent,
/*267300*/          OPC_MoveParent,
/*267301*/          OPC_Scope, 24, /*->267327*/ // 2 children in Scope
/*267303*/            OPC_MoveChild2,
/*267304*/            OPC_CheckImmAllZerosV,
/*267305*/            OPC_MoveParent,
/*267306*/            OPC_CheckType, MVT::v32i16,
/*267308*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*267310*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*267313*/            OPC_EmitMergeInputChains1_1,
/*267314*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLWZmikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86vshli:{ *:[v32i16] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v32i16] }) - Complexity = 35
                      // Dst: (VPSLLWZmikz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*267327*/          /*Scope*/ 23, /*->267351*/
/*267328*/            OPC_RecordChild2, // #4 = $src0
/*267329*/            OPC_CheckType, MVT::v32i16,
/*267331*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*267333*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*267336*/            OPC_EmitMergeInputChains1_1,
/*267337*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLWZmik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86vshli:{ *:[v32i16] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), VR512:{ *:[v32i16] }:$src0) - Complexity = 31
                      // Dst: (VPSLLWZmik:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*267351*/          0, /*End of Scope*/
/*267352*/        /*SwitchOpcode*/ 71, TARGET_VAL(X86ISD::VSRAI),// ->267426
/*267355*/          OPC_MoveChild0,
/*267356*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*267359*/          OPC_RecordMemRef,
/*267360*/          OPC_RecordNode, // #1 = 'ld' chained node
/*267361*/          OPC_CheckFoldableChainNode,
/*267362*/          OPC_RecordChild1, // #2 = $src1
/*267363*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*267365*/          OPC_CheckPredicate, 9, // Predicate_load
/*267367*/          OPC_MoveParent,
/*267368*/          OPC_RecordChild1, // #3 = $src2
/*267369*/          OPC_MoveChild1,
/*267370*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*267373*/          OPC_MoveParent,
/*267374*/          OPC_MoveParent,
/*267375*/          OPC_Scope, 24, /*->267401*/ // 2 children in Scope
/*267377*/            OPC_MoveChild2,
/*267378*/            OPC_CheckImmAllZerosV,
/*267379*/            OPC_MoveParent,
/*267380*/            OPC_CheckType, MVT::v32i16,
/*267382*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*267384*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*267387*/            OPC_EmitMergeInputChains1_1,
/*267388*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAWZmikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86vsrai:{ *:[v32i16] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v32i16] }) - Complexity = 35
                      // Dst: (VPSRAWZmikz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*267401*/          /*Scope*/ 23, /*->267425*/
/*267402*/            OPC_RecordChild2, // #4 = $src0
/*267403*/            OPC_CheckType, MVT::v32i16,
/*267405*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*267407*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*267410*/            OPC_EmitMergeInputChains1_1,
/*267411*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAWZmik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86vsrai:{ *:[v32i16] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), VR512:{ *:[v32i16] }:$src0) - Complexity = 31
                      // Dst: (VPSRAWZmik:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*267425*/          0, /*End of Scope*/
/*267426*/        /*SwitchOpcode*/ 71, TARGET_VAL(X86ISD::PSHUFHW),// ->267500
/*267429*/          OPC_MoveChild0,
/*267430*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*267433*/          OPC_RecordMemRef,
/*267434*/          OPC_RecordNode, // #1 = 'ld' chained node
/*267435*/          OPC_CheckFoldableChainNode,
/*267436*/          OPC_RecordChild1, // #2 = $src1
/*267437*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*267439*/          OPC_CheckPredicate, 9, // Predicate_load
/*267441*/          OPC_MoveParent,
/*267442*/          OPC_RecordChild1, // #3 = $src2
/*267443*/          OPC_MoveChild1,
/*267444*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*267447*/          OPC_MoveParent,
/*267448*/          OPC_MoveParent,
/*267449*/          OPC_Scope, 24, /*->267475*/ // 2 children in Scope
/*267451*/            OPC_MoveChild2,
/*267452*/            OPC_CheckImmAllZerosV,
/*267453*/            OPC_MoveParent,
/*267454*/            OPC_CheckType, MVT::v32i16,
/*267456*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*267458*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*267461*/            OPC_EmitMergeInputChains1_1,
/*267462*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFHWZmikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86PShufhw:{ *:[v32i16] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v32i16] }) - Complexity = 35
                      // Dst: (VPSHUFHWZmikz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*267475*/          /*Scope*/ 23, /*->267499*/
/*267476*/            OPC_RecordChild2, // #4 = $src0
/*267477*/            OPC_CheckType, MVT::v32i16,
/*267479*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*267481*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*267484*/            OPC_EmitMergeInputChains1_1,
/*267485*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFHWZmik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86PShufhw:{ *:[v32i16] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), VR512:{ *:[v32i16] }:$src0) - Complexity = 31
                      // Dst: (VPSHUFHWZmik:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*267499*/          0, /*End of Scope*/
/*267500*/        /*SwitchOpcode*/ 71, TARGET_VAL(X86ISD::PSHUFLW),// ->267574
/*267503*/          OPC_MoveChild0,
/*267504*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*267507*/          OPC_RecordMemRef,
/*267508*/          OPC_RecordNode, // #1 = 'ld' chained node
/*267509*/          OPC_CheckFoldableChainNode,
/*267510*/          OPC_RecordChild1, // #2 = $src1
/*267511*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*267513*/          OPC_CheckPredicate, 9, // Predicate_load
/*267515*/          OPC_MoveParent,
/*267516*/          OPC_RecordChild1, // #3 = $src2
/*267517*/          OPC_MoveChild1,
/*267518*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*267521*/          OPC_MoveParent,
/*267522*/          OPC_MoveParent,
/*267523*/          OPC_Scope, 24, /*->267549*/ // 2 children in Scope
/*267525*/            OPC_MoveChild2,
/*267526*/            OPC_CheckImmAllZerosV,
/*267527*/            OPC_MoveParent,
/*267528*/            OPC_CheckType, MVT::v32i16,
/*267530*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*267532*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*267535*/            OPC_EmitMergeInputChains1_1,
/*267536*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFLWZmikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86PShuflw:{ *:[v32i16] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v32i16] }) - Complexity = 35
                      // Dst: (VPSHUFLWZmikz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*267549*/          /*Scope*/ 23, /*->267573*/
/*267550*/            OPC_RecordChild2, // #4 = $src0
/*267551*/            OPC_CheckType, MVT::v32i16,
/*267553*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*267555*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*267558*/            OPC_EmitMergeInputChains1_1,
/*267559*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFLWZmik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86PShuflw:{ *:[v32i16] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), VR512:{ *:[v32i16] }:$src0) - Complexity = 31
                      // Dst: (VPSHUFLWZmik:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*267573*/          0, /*End of Scope*/
/*267574*/        /*SwitchOpcode*/ 74, TARGET_VAL(X86ISD::PALIGNR),// ->267651
/*267577*/          OPC_RecordChild0, // #1 = $src1
/*267578*/          OPC_MoveChild1,
/*267579*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*267582*/          OPC_RecordMemRef,
/*267583*/          OPC_RecordNode, // #2 = 'ld' chained node
/*267584*/          OPC_CheckFoldableChainNode,
/*267585*/          OPC_RecordChild1, // #3 = $src2
/*267586*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*267588*/          OPC_CheckPredicate, 9, // Predicate_load
/*267590*/          OPC_MoveParent,
/*267591*/          OPC_RecordChild2, // #4 = $src3
/*267592*/          OPC_MoveChild2,
/*267593*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*267596*/          OPC_MoveParent,
/*267597*/          OPC_MoveParent,
/*267598*/          OPC_Scope, 25, /*->267625*/ // 2 children in Scope
/*267600*/            OPC_MoveChild2,
/*267601*/            OPC_CheckImmAllZerosV,
/*267602*/            OPC_MoveParent,
/*267603*/            OPC_CheckType, MVT::v32i8,
/*267605*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*267607*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*267610*/            OPC_EmitMergeInputChains1_2,
/*267611*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPALIGNRZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i8, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                      // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86PAlignr:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v32i8] }) - Complexity = 35
                      // Dst: (VPALIGNRZ256rmikz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*267625*/          /*Scope*/ 24, /*->267650*/
/*267626*/            OPC_RecordChild2, // #5 = $src0
/*267627*/            OPC_CheckType, MVT::v32i8,
/*267629*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*267631*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*267634*/            OPC_EmitMergeInputChains1_2,
/*267635*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPALIGNRZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i8, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                      // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86PAlignr:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), VR256X:{ *:[v32i8] }:$src0) - Complexity = 31
                      // Dst: (VPALIGNRZ256rmik:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*267650*/          0, /*End of Scope*/
/*267651*/        /*SwitchOpcode*/ 74, TARGET_VAL(X86ISD::DBPSADBW),// ->267728
/*267654*/          OPC_RecordChild0, // #1 = $src1
/*267655*/          OPC_MoveChild1,
/*267656*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*267659*/          OPC_RecordMemRef,
/*267660*/          OPC_RecordNode, // #2 = 'ld' chained node
/*267661*/          OPC_CheckFoldableChainNode,
/*267662*/          OPC_RecordChild1, // #3 = $src2
/*267663*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*267665*/          OPC_CheckPredicate, 9, // Predicate_load
/*267667*/          OPC_MoveParent,
/*267668*/          OPC_RecordChild2, // #4 = $src3
/*267669*/          OPC_MoveChild2,
/*267670*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*267673*/          OPC_MoveParent,
/*267674*/          OPC_MoveParent,
/*267675*/          OPC_Scope, 25, /*->267702*/ // 2 children in Scope
/*267677*/            OPC_MoveChild2,
/*267678*/            OPC_CheckImmAllZerosV,
/*267679*/            OPC_MoveParent,
/*267680*/            OPC_CheckType, MVT::v32i16,
/*267682*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*267684*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*267687*/            OPC_EmitMergeInputChains1_2,
/*267688*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDBPSADBWZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86dbpsadbw:{ *:[v32i16] } VR512:{ *:[v64i8] }:$src1, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v32i16] }) - Complexity = 35
                      // Dst: (VDBPSADBWZrmikz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*267702*/          /*Scope*/ 24, /*->267727*/
/*267703*/            OPC_RecordChild2, // #5 = $src0
/*267704*/            OPC_CheckType, MVT::v32i16,
/*267706*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*267708*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*267711*/            OPC_EmitMergeInputChains1_2,
/*267712*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDBPSADBWZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86dbpsadbw:{ *:[v32i16] } VR512:{ *:[v64i8] }:$src1, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), VR512:{ *:[v32i16] }:$src0) - Complexity = 31
                      // Dst: (VDBPSADBWZrmik:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*267727*/          0, /*End of Scope*/
/*267728*/        /*SwitchOpcode*/ 74, TARGET_VAL(X86ISD::VSHLD),// ->267805
/*267731*/          OPC_RecordChild0, // #1 = $src1
/*267732*/          OPC_MoveChild1,
/*267733*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*267736*/          OPC_RecordMemRef,
/*267737*/          OPC_RecordNode, // #2 = 'ld' chained node
/*267738*/          OPC_CheckFoldableChainNode,
/*267739*/          OPC_RecordChild1, // #3 = $src2
/*267740*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*267742*/          OPC_CheckPredicate, 9, // Predicate_load
/*267744*/          OPC_MoveParent,
/*267745*/          OPC_RecordChild2, // #4 = $src3
/*267746*/          OPC_MoveChild2,
/*267747*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*267750*/          OPC_MoveParent,
/*267751*/          OPC_MoveParent,
/*267752*/          OPC_Scope, 25, /*->267779*/ // 2 children in Scope
/*267754*/            OPC_MoveChild2,
/*267755*/            OPC_CheckImmAllZerosV,
/*267756*/            OPC_MoveParent,
/*267757*/            OPC_CheckType, MVT::v32i16,
/*267759*/            OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*267761*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*267764*/            OPC_EmitMergeInputChains1_2,
/*267765*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDWZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86VShld:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v32i16] }) - Complexity = 35
                      // Dst: (VPSHLDWZrmikz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*267779*/          /*Scope*/ 24, /*->267804*/
/*267780*/            OPC_RecordChild2, // #5 = $src0
/*267781*/            OPC_CheckType, MVT::v32i16,
/*267783*/            OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*267785*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*267788*/            OPC_EmitMergeInputChains1_2,
/*267789*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDWZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86VShld:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), VR512:{ *:[v32i16] }:$src0) - Complexity = 31
                      // Dst: (VPSHLDWZrmik:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*267804*/          0, /*End of Scope*/
/*267805*/        /*SwitchOpcode*/ 74, TARGET_VAL(X86ISD::VSHRD),// ->267882
/*267808*/          OPC_RecordChild0, // #1 = $src1
/*267809*/          OPC_MoveChild1,
/*267810*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*267813*/          OPC_RecordMemRef,
/*267814*/          OPC_RecordNode, // #2 = 'ld' chained node
/*267815*/          OPC_CheckFoldableChainNode,
/*267816*/          OPC_RecordChild1, // #3 = $src2
/*267817*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*267819*/          OPC_CheckPredicate, 9, // Predicate_load
/*267821*/          OPC_MoveParent,
/*267822*/          OPC_RecordChild2, // #4 = $src3
/*267823*/          OPC_MoveChild2,
/*267824*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*267827*/          OPC_MoveParent,
/*267828*/          OPC_MoveParent,
/*267829*/          OPC_Scope, 25, /*->267856*/ // 2 children in Scope
/*267831*/            OPC_MoveChild2,
/*267832*/            OPC_CheckImmAllZerosV,
/*267833*/            OPC_MoveParent,
/*267834*/            OPC_CheckType, MVT::v32i16,
/*267836*/            OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*267838*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*267841*/            OPC_EmitMergeInputChains1_2,
/*267842*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDWZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86VShrd:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v32i16] }) - Complexity = 35
                      // Dst: (VPSHRDWZrmikz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*267856*/          /*Scope*/ 24, /*->267881*/
/*267857*/            OPC_RecordChild2, // #5 = $src0
/*267858*/            OPC_CheckType, MVT::v32i16,
/*267860*/            OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*267862*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*267865*/            OPC_EmitMergeInputChains1_2,
/*267866*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDWZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86VShrd:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), VR512:{ *:[v32i16] }:$src0) - Complexity = 31
                      // Dst: (VPSHRDWZrmik:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*267881*/          0, /*End of Scope*/
/*267882*/        /*SwitchOpcode*/ 50|128,1/*178*/, TARGET_VAL(X86ISD::VPERMV3),// ->268064
/*267886*/          OPC_RecordChild0, // #1 = $src1
/*267887*/          OPC_RecordChild1, // #2 = $src2
/*267888*/          OPC_MoveChild2,
/*267889*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*267892*/          OPC_RecordMemRef,
/*267893*/          OPC_RecordNode, // #3 = 'ld' chained node
/*267894*/          OPC_CheckFoldableChainNode,
/*267895*/          OPC_RecordChild1, // #4 = $src3
/*267896*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*267898*/          OPC_CheckPredicate, 9, // Predicate_load
/*267900*/          OPC_MoveParent,
/*267901*/          OPC_MoveParent,
/*267902*/          OPC_Scope, 53, /*->267957*/ // 3 children in Scope
/*267904*/            OPC_MoveChild2,
/*267905*/            OPC_CheckImmAllZerosV,
/*267906*/            OPC_MoveParent,
/*267907*/            OPC_SwitchType /*2 cases */, 22, MVT::v32i16,// ->267932
/*267910*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*267912*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*267915*/              OPC_EmitMergeInputChains, 1, 3, 
/*267918*/              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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v32i16] }) - Complexity = 32
                        // Dst: (VPERMT2Wrmkz:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/*267932*/            /*SwitchType*/ 22, MVT::v32i8,// ->267956
/*267934*/              OPC_CheckPatternPredicate, 181, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*267936*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*267939*/              OPC_EmitMergeInputChains, 1, 3, 
/*267942*/              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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v32i8] }) - Complexity = 32
                        // Dst: (VPERMT2B256rmkz:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src2, addr:{ *:[iPTR] }:$src3)
/*267956*/            0, // EndSwitchType
/*267957*/          /*Scope*/ 52, /*->268010*/
/*267958*/            OPC_CheckChild2Same, 2,
/*267960*/            OPC_SwitchType /*2 cases */, 22, MVT::v32i16,// ->267985
/*267963*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*267965*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*267968*/              OPC_EmitMergeInputChains, 1, 3, 
/*267971*/              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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v32i16] }:$src1) - Complexity = 28
                        // Dst: (VPERMI2Wrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/*267985*/            /*SwitchType*/ 22, MVT::v32i8,// ->268009
/*267987*/              OPC_CheckPatternPredicate, 181, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*267989*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*267992*/              OPC_EmitMergeInputChains, 1, 3, 
/*267995*/              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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v32i8] }:$src1) - Complexity = 28
                        // Dst: (VPERMI2B256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src2, addr:{ *:[iPTR] }:$src3)
/*268009*/            0, // EndSwitchType
/*268010*/          /*Scope*/ 52, /*->268063*/
/*268011*/            OPC_CheckChild2Same, 1,
/*268013*/            OPC_SwitchType /*2 cases */, 22, MVT::v32i16,// ->268038
/*268016*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*268018*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*268021*/              OPC_EmitMergeInputChains, 1, 3, 
/*268024*/              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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v32i16] }:$src1) - Complexity = 28
                        // Dst: (VPERMT2Wrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/*268038*/            /*SwitchType*/ 22, MVT::v32i8,// ->268062
/*268040*/              OPC_CheckPatternPredicate, 181, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*268042*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*268045*/              OPC_EmitMergeInputChains, 1, 3, 
/*268048*/              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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v32i8] }:$src1) - Complexity = 28
                        // Dst: (VPERMT2B256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src2, addr:{ *:[iPTR] }:$src3)
/*268062*/            0, // EndSwitchType
/*268063*/          0, /*End of Scope*/
/*268064*/        /*SwitchOpcode*/ 126|128,1/*254*/, TARGET_VAL(ISD::ADD),// ->268322
/*268068*/          OPC_Scope, 62, /*->268132*/ // 4 children in Scope
/*268070*/            OPC_RecordChild0, // #1 = $src1
/*268071*/            OPC_MoveChild1,
/*268072*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*268075*/            OPC_RecordMemRef,
/*268076*/            OPC_RecordNode, // #2 = 'ld' chained node
/*268077*/            OPC_CheckFoldableChainNode,
/*268078*/            OPC_RecordChild1, // #3 = $src2
/*268079*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*268081*/            OPC_CheckPredicate, 9, // Predicate_load
/*268083*/            OPC_MoveParent,
/*268084*/            OPC_MoveParent,
/*268085*/            OPC_MoveChild2,
/*268086*/            OPC_CheckImmAllZerosV,
/*268087*/            OPC_MoveParent,
/*268088*/            OPC_SwitchType /*2 cases */, 19, MVT::v32i16,// ->268110
/*268091*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*268093*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*268096*/              OPC_EmitMergeInputChains1_2,
/*268097*/              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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v32i16] }) - Complexity = 32
                        // Dst: (VPADDWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*268110*/            /*SwitchType*/ 19, MVT::v32i8,// ->268131
/*268112*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*268114*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*268117*/              OPC_EmitMergeInputChains1_2,
/*268118*/              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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v32i8] }) - Complexity = 32
                        // Dst: (VPADDBZ256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*268131*/            0, // EndSwitchType
/*268132*/          /*Scope*/ 62, /*->268195*/
/*268133*/            OPC_MoveChild0,
/*268134*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*268137*/            OPC_RecordMemRef,
/*268138*/            OPC_RecordNode, // #1 = 'ld' chained node
/*268139*/            OPC_CheckFoldableChainNode,
/*268140*/            OPC_RecordChild1, // #2 = $src2
/*268141*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*268143*/            OPC_CheckPredicate, 9, // Predicate_load
/*268145*/            OPC_MoveParent,
/*268146*/            OPC_RecordChild1, // #3 = $src1
/*268147*/            OPC_MoveParent,
/*268148*/            OPC_MoveChild2,
/*268149*/            OPC_CheckImmAllZerosV,
/*268150*/            OPC_MoveParent,
/*268151*/            OPC_SwitchType /*2 cases */, 19, MVT::v32i16,// ->268173
/*268154*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*268156*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*268159*/              OPC_EmitMergeInputChains1_1,
/*268160*/              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] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1), immAllZerosV:{ *:[v32i16] }) - Complexity = 32
                        // Dst: (VPADDWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*268173*/            /*SwitchType*/ 19, MVT::v32i8,// ->268194
/*268175*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*268177*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*268180*/              OPC_EmitMergeInputChains1_1,
/*268181*/              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] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v32i8] }:$src1), immAllZerosV:{ *:[v32i8] }) - Complexity = 32
                        // Dst: (VPADDBZ256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*268194*/            0, // EndSwitchType
/*268195*/          /*Scope*/ 62, /*->268258*/
/*268196*/            OPC_RecordChild0, // #1 = $src1
/*268197*/            OPC_MoveChild1,
/*268198*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*268201*/            OPC_RecordMemRef,
/*268202*/            OPC_RecordNode, // #2 = 'ld' chained node
/*268203*/            OPC_CheckFoldableChainNode,
/*268204*/            OPC_RecordChild1, // #3 = $src2
/*268205*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*268207*/            OPC_CheckPredicate, 9, // Predicate_load
/*268209*/            OPC_MoveParent,
/*268210*/            OPC_MoveParent,
/*268211*/            OPC_RecordChild2, // #4 = $src0
/*268212*/            OPC_SwitchType /*2 cases */, 20, MVT::v32i16,// ->268235
/*268215*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*268217*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*268220*/              OPC_EmitMergeInputChains1_2,
/*268221*/              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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v32i16] }:$src0) - Complexity = 28
                        // Dst: (VPADDWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*268235*/            /*SwitchType*/ 20, MVT::v32i8,// ->268257
/*268237*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*268239*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*268242*/              OPC_EmitMergeInputChains1_2,
/*268243*/              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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v32i8] }:$src0) - Complexity = 28
                        // Dst: (VPADDBZ256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*268257*/            0, // EndSwitchType
/*268258*/          /*Scope*/ 62, /*->268321*/
/*268259*/            OPC_MoveChild0,
/*268260*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*268263*/            OPC_RecordMemRef,
/*268264*/            OPC_RecordNode, // #1 = 'ld' chained node
/*268265*/            OPC_CheckFoldableChainNode,
/*268266*/            OPC_RecordChild1, // #2 = $src2
/*268267*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*268269*/            OPC_CheckPredicate, 9, // Predicate_load
/*268271*/            OPC_MoveParent,
/*268272*/            OPC_RecordChild1, // #3 = $src1
/*268273*/            OPC_MoveParent,
/*268274*/            OPC_RecordChild2, // #4 = $src0
/*268275*/            OPC_SwitchType /*2 cases */, 20, MVT::v32i16,// ->268298
/*268278*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*268280*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*268283*/              OPC_EmitMergeInputChains1_1,
/*268284*/              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] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1), VR512:{ *:[v32i16] }:$src0) - Complexity = 28
                        // Dst: (VPADDWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*268298*/            /*SwitchType*/ 20, MVT::v32i8,// ->268320
/*268300*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*268302*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*268305*/              OPC_EmitMergeInputChains1_1,
/*268306*/              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] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v32i8] }:$src1), VR256X:{ *:[v32i8] }:$src0) - Complexity = 28
                        // Dst: (VPADDBZ256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*268320*/            0, // EndSwitchType
/*268321*/          0, /*End of Scope*/
/*268322*/        /*SwitchOpcode*/ 113, TARGET_VAL(ISD::SUB),// ->268438
/*268325*/          OPC_RecordChild0, // #1 = $src1
/*268326*/          OPC_MoveChild1,
/*268327*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*268330*/          OPC_RecordMemRef,
/*268331*/          OPC_RecordNode, // #2 = 'ld' chained node
/*268332*/          OPC_CheckFoldableChainNode,
/*268333*/          OPC_RecordChild1, // #3 = $src2
/*268334*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*268336*/          OPC_CheckPredicate, 9, // Predicate_load
/*268338*/          OPC_MoveParent,
/*268339*/          OPC_MoveParent,
/*268340*/          OPC_Scope, 47, /*->268389*/ // 2 children in Scope
/*268342*/            OPC_MoveChild2,
/*268343*/            OPC_CheckImmAllZerosV,
/*268344*/            OPC_MoveParent,
/*268345*/            OPC_SwitchType /*2 cases */, 19, MVT::v32i16,// ->268367
/*268348*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*268350*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*268353*/              OPC_EmitMergeInputChains1_2,
/*268354*/              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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v32i16] }) - Complexity = 32
                        // Dst: (VPSUBWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*268367*/            /*SwitchType*/ 19, MVT::v32i8,// ->268388
/*268369*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*268371*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*268374*/              OPC_EmitMergeInputChains1_2,
/*268375*/              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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v32i8] }) - Complexity = 32
                        // Dst: (VPSUBBZ256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*268388*/            0, // EndSwitchType
/*268389*/          /*Scope*/ 47, /*->268437*/
/*268390*/            OPC_RecordChild2, // #4 = $src0
/*268391*/            OPC_SwitchType /*2 cases */, 20, MVT::v32i16,// ->268414
/*268394*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*268396*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*268399*/              OPC_EmitMergeInputChains1_2,
/*268400*/              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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v32i16] }:$src0) - Complexity = 28
                        // Dst: (VPSUBWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*268414*/            /*SwitchType*/ 20, MVT::v32i8,// ->268436
/*268416*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*268418*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*268421*/              OPC_EmitMergeInputChains1_2,
/*268422*/              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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v32i8] }:$src0) - Complexity = 28
                        // Dst: (VPSUBBZ256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*268436*/            0, // EndSwitchType
/*268437*/          0, /*End of Scope*/
/*268438*/        /*SwitchOpcode*/ 126|128,1/*254*/, TARGET_VAL(ISD::SADDSAT),// ->268696
/*268442*/          OPC_Scope, 62, /*->268506*/ // 4 children in Scope
/*268444*/            OPC_RecordChild0, // #1 = $src1
/*268445*/            OPC_MoveChild1,
/*268446*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*268449*/            OPC_RecordMemRef,
/*268450*/            OPC_RecordNode, // #2 = 'ld' chained node
/*268451*/            OPC_CheckFoldableChainNode,
/*268452*/            OPC_RecordChild1, // #3 = $src2
/*268453*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*268455*/            OPC_CheckPredicate, 9, // Predicate_load
/*268457*/            OPC_MoveParent,
/*268458*/            OPC_MoveParent,
/*268459*/            OPC_MoveChild2,
/*268460*/            OPC_CheckImmAllZerosV,
/*268461*/            OPC_MoveParent,
/*268462*/            OPC_SwitchType /*2 cases */, 19, MVT::v32i16,// ->268484
/*268465*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*268467*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*268470*/              OPC_EmitMergeInputChains1_2,
/*268471*/              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, (saddsat:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v32i16] }) - Complexity = 32
                        // Dst: (VPADDSWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*268484*/            /*SwitchType*/ 19, MVT::v32i8,// ->268505
/*268486*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*268488*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*268491*/              OPC_EmitMergeInputChains1_2,
/*268492*/              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, (saddsat:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v32i8] }) - Complexity = 32
                        // Dst: (VPADDSBZ256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*268505*/            0, // EndSwitchType
/*268506*/          /*Scope*/ 62, /*->268569*/
/*268507*/            OPC_MoveChild0,
/*268508*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*268511*/            OPC_RecordMemRef,
/*268512*/            OPC_RecordNode, // #1 = 'ld' chained node
/*268513*/            OPC_CheckFoldableChainNode,
/*268514*/            OPC_RecordChild1, // #2 = $src2
/*268515*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*268517*/            OPC_CheckPredicate, 9, // Predicate_load
/*268519*/            OPC_MoveParent,
/*268520*/            OPC_RecordChild1, // #3 = $src1
/*268521*/            OPC_MoveParent,
/*268522*/            OPC_MoveChild2,
/*268523*/            OPC_CheckImmAllZerosV,
/*268524*/            OPC_MoveParent,
/*268525*/            OPC_SwitchType /*2 cases */, 19, MVT::v32i16,// ->268547
/*268528*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*268530*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*268533*/              OPC_EmitMergeInputChains1_1,
/*268534*/              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, (saddsat:{ *:[v32i16] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1), immAllZerosV:{ *:[v32i16] }) - Complexity = 32
                        // Dst: (VPADDSWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*268547*/            /*SwitchType*/ 19, MVT::v32i8,// ->268568
/*268549*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*268551*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*268554*/              OPC_EmitMergeInputChains1_1,
/*268555*/              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, (saddsat:{ *:[v32i8] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v32i8] }:$src1), immAllZerosV:{ *:[v32i8] }) - Complexity = 32
                        // Dst: (VPADDSBZ256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*268568*/            0, // EndSwitchType
/*268569*/          /*Scope*/ 62, /*->268632*/
/*268570*/            OPC_RecordChild0, // #1 = $src1
/*268571*/            OPC_MoveChild1,
/*268572*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*268575*/            OPC_RecordMemRef,
/*268576*/            OPC_RecordNode, // #2 = 'ld' chained node
/*268577*/            OPC_CheckFoldableChainNode,
/*268578*/            OPC_RecordChild1, // #3 = $src2
/*268579*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*268581*/            OPC_CheckPredicate, 9, // Predicate_load
/*268583*/            OPC_MoveParent,
/*268584*/            OPC_MoveParent,
/*268585*/            OPC_RecordChild2, // #4 = $src0
/*268586*/            OPC_SwitchType /*2 cases */, 20, MVT::v32i16,// ->268609
/*268589*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*268591*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*268594*/              OPC_EmitMergeInputChains1_2,
/*268595*/              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, (saddsat:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v32i16] }:$src0) - Complexity = 28
                        // Dst: (VPADDSWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*268609*/            /*SwitchType*/ 20, MVT::v32i8,// ->268631
/*268611*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*268613*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*268616*/              OPC_EmitMergeInputChains1_2,
/*268617*/              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, (saddsat:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v32i8] }:$src0) - Complexity = 28
                        // Dst: (VPADDSBZ256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*268631*/            0, // EndSwitchType
/*268632*/          /*Scope*/ 62, /*->268695*/
/*268633*/            OPC_MoveChild0,
/*268634*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*268637*/            OPC_RecordMemRef,
/*268638*/            OPC_RecordNode, // #1 = 'ld' chained node
/*268639*/            OPC_CheckFoldableChainNode,
/*268640*/            OPC_RecordChild1, // #2 = $src2
/*268641*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*268643*/            OPC_CheckPredicate, 9, // Predicate_load
/*268645*/            OPC_MoveParent,
/*268646*/            OPC_RecordChild1, // #3 = $src1
/*268647*/            OPC_MoveParent,
/*268648*/            OPC_RecordChild2, // #4 = $src0
/*268649*/            OPC_SwitchType /*2 cases */, 20, MVT::v32i16,// ->268672
/*268652*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*268654*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*268657*/              OPC_EmitMergeInputChains1_1,
/*268658*/              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, (saddsat:{ *:[v32i16] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1), VR512:{ *:[v32i16] }:$src0) - Complexity = 28
                        // Dst: (VPADDSWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*268672*/            /*SwitchType*/ 20, MVT::v32i8,// ->268694
/*268674*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*268676*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*268679*/              OPC_EmitMergeInputChains1_1,
/*268680*/              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, (saddsat:{ *:[v32i8] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v32i8] }:$src1), VR256X:{ *:[v32i8] }:$src0) - Complexity = 28
                        // Dst: (VPADDSBZ256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*268694*/            0, // EndSwitchType
/*268695*/          0, /*End of Scope*/
/*268696*/        /*SwitchOpcode*/ 113, TARGET_VAL(ISD::SSUBSAT),// ->268812
/*268699*/          OPC_RecordChild0, // #1 = $src1
/*268700*/          OPC_MoveChild1,
/*268701*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*268704*/          OPC_RecordMemRef,
/*268705*/          OPC_RecordNode, // #2 = 'ld' chained node
/*268706*/          OPC_CheckFoldableChainNode,
/*268707*/          OPC_RecordChild1, // #3 = $src2
/*268708*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*268710*/          OPC_CheckPredicate, 9, // Predicate_load
/*268712*/          OPC_MoveParent,
/*268713*/          OPC_MoveParent,
/*268714*/          OPC_Scope, 47, /*->268763*/ // 2 children in Scope
/*268716*/            OPC_MoveChild2,
/*268717*/            OPC_CheckImmAllZerosV,
/*268718*/            OPC_MoveParent,
/*268719*/            OPC_SwitchType /*2 cases */, 19, MVT::v32i16,// ->268741
/*268722*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*268724*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*268727*/              OPC_EmitMergeInputChains1_2,
/*268728*/              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, (ssubsat:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v32i16] }) - Complexity = 32
                        // Dst: (VPSUBSWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*268741*/            /*SwitchType*/ 19, MVT::v32i8,// ->268762
/*268743*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*268745*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*268748*/              OPC_EmitMergeInputChains1_2,
/*268749*/              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, (ssubsat:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v32i8] }) - Complexity = 32
                        // Dst: (VPSUBSBZ256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*268762*/            0, // EndSwitchType
/*268763*/          /*Scope*/ 47, /*->268811*/
/*268764*/            OPC_RecordChild2, // #4 = $src0
/*268765*/            OPC_SwitchType /*2 cases */, 20, MVT::v32i16,// ->268788
/*268768*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*268770*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*268773*/              OPC_EmitMergeInputChains1_2,
/*268774*/              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, (ssubsat:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v32i16] }:$src0) - Complexity = 28
                        // Dst: (VPSUBSWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*268788*/            /*SwitchType*/ 20, MVT::v32i8,// ->268810
/*268790*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*268792*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*268795*/              OPC_EmitMergeInputChains1_2,
/*268796*/              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, (ssubsat:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v32i8] }:$src0) - Complexity = 28
                        // Dst: (VPSUBSBZ256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*268810*/            0, // EndSwitchType
/*268811*/          0, /*End of Scope*/
/*268812*/        /*SwitchOpcode*/ 126|128,1/*254*/, TARGET_VAL(ISD::UADDSAT),// ->269070
/*268816*/          OPC_Scope, 62, /*->268880*/ // 4 children in Scope
/*268818*/            OPC_RecordChild0, // #1 = $src1
/*268819*/            OPC_MoveChild1,
/*268820*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*268823*/            OPC_RecordMemRef,
/*268824*/            OPC_RecordNode, // #2 = 'ld' chained node
/*268825*/            OPC_CheckFoldableChainNode,
/*268826*/            OPC_RecordChild1, // #3 = $src2
/*268827*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*268829*/            OPC_CheckPredicate, 9, // Predicate_load
/*268831*/            OPC_MoveParent,
/*268832*/            OPC_MoveParent,
/*268833*/            OPC_MoveChild2,
/*268834*/            OPC_CheckImmAllZerosV,
/*268835*/            OPC_MoveParent,
/*268836*/            OPC_SwitchType /*2 cases */, 19, MVT::v32i16,// ->268858
/*268839*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*268841*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*268844*/              OPC_EmitMergeInputChains1_2,
/*268845*/              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, (uaddsat:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v32i16] }) - Complexity = 32
                        // Dst: (VPADDUSWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*268858*/            /*SwitchType*/ 19, MVT::v32i8,// ->268879
/*268860*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*268862*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*268865*/              OPC_EmitMergeInputChains1_2,
/*268866*/              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, (uaddsat:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v32i8] }) - Complexity = 32
                        // Dst: (VPADDUSBZ256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*268879*/            0, // EndSwitchType
/*268880*/          /*Scope*/ 62, /*->268943*/
/*268881*/            OPC_MoveChild0,
/*268882*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*268885*/            OPC_RecordMemRef,
/*268886*/            OPC_RecordNode, // #1 = 'ld' chained node
/*268887*/            OPC_CheckFoldableChainNode,
/*268888*/            OPC_RecordChild1, // #2 = $src2
/*268889*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*268891*/            OPC_CheckPredicate, 9, // Predicate_load
/*268893*/            OPC_MoveParent,
/*268894*/            OPC_RecordChild1, // #3 = $src1
/*268895*/            OPC_MoveParent,
/*268896*/            OPC_MoveChild2,
/*268897*/            OPC_CheckImmAllZerosV,
/*268898*/            OPC_MoveParent,
/*268899*/            OPC_SwitchType /*2 cases */, 19, MVT::v32i16,// ->268921
/*268902*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*268904*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*268907*/              OPC_EmitMergeInputChains1_1,
/*268908*/              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, (uaddsat:{ *:[v32i16] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1), immAllZerosV:{ *:[v32i16] }) - Complexity = 32
                        // Dst: (VPADDUSWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*268921*/            /*SwitchType*/ 19, MVT::v32i8,// ->268942
/*268923*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*268925*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*268928*/              OPC_EmitMergeInputChains1_1,
/*268929*/              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, (uaddsat:{ *:[v32i8] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v32i8] }:$src1), immAllZerosV:{ *:[v32i8] }) - Complexity = 32
                        // Dst: (VPADDUSBZ256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*268942*/            0, // EndSwitchType
/*268943*/          /*Scope*/ 62, /*->269006*/
/*268944*/            OPC_RecordChild0, // #1 = $src1
/*268945*/            OPC_MoveChild1,
/*268946*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*268949*/            OPC_RecordMemRef,
/*268950*/            OPC_RecordNode, // #2 = 'ld' chained node
/*268951*/            OPC_CheckFoldableChainNode,
/*268952*/            OPC_RecordChild1, // #3 = $src2
/*268953*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*268955*/            OPC_CheckPredicate, 9, // Predicate_load
/*268957*/            OPC_MoveParent,
/*268958*/            OPC_MoveParent,
/*268959*/            OPC_RecordChild2, // #4 = $src0
/*268960*/            OPC_SwitchType /*2 cases */, 20, MVT::v32i16,// ->268983
/*268963*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*268965*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*268968*/              OPC_EmitMergeInputChains1_2,
/*268969*/              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, (uaddsat:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v32i16] }:$src0) - Complexity = 28
                        // Dst: (VPADDUSWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*268983*/            /*SwitchType*/ 20, MVT::v32i8,// ->269005
/*268985*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*268987*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*268990*/              OPC_EmitMergeInputChains1_2,
/*268991*/              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, (uaddsat:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v32i8] }:$src0) - Complexity = 28
                        // Dst: (VPADDUSBZ256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*269005*/            0, // EndSwitchType
/*269006*/          /*Scope*/ 62, /*->269069*/
/*269007*/            OPC_MoveChild0,
/*269008*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*269011*/            OPC_RecordMemRef,
/*269012*/            OPC_RecordNode, // #1 = 'ld' chained node
/*269013*/            OPC_CheckFoldableChainNode,
/*269014*/            OPC_RecordChild1, // #2 = $src2
/*269015*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*269017*/            OPC_CheckPredicate, 9, // Predicate_load
/*269019*/            OPC_MoveParent,
/*269020*/            OPC_RecordChild1, // #3 = $src1
/*269021*/            OPC_MoveParent,
/*269022*/            OPC_RecordChild2, // #4 = $src0
/*269023*/            OPC_SwitchType /*2 cases */, 20, MVT::v32i16,// ->269046
/*269026*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*269028*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*269031*/              OPC_EmitMergeInputChains1_1,
/*269032*/              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, (uaddsat:{ *:[v32i16] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1), VR512:{ *:[v32i16] }:$src0) - Complexity = 28
                        // Dst: (VPADDUSWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*269046*/            /*SwitchType*/ 20, MVT::v32i8,// ->269068
/*269048*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*269050*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*269053*/              OPC_EmitMergeInputChains1_1,
/*269054*/              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, (uaddsat:{ *:[v32i8] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v32i8] }:$src1), VR256X:{ *:[v32i8] }:$src0) - Complexity = 28
                        // Dst: (VPADDUSBZ256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*269068*/            0, // EndSwitchType
/*269069*/          0, /*End of Scope*/
/*269070*/        /*SwitchOpcode*/ 113, TARGET_VAL(ISD::USUBSAT),// ->269186
/*269073*/          OPC_RecordChild0, // #1 = $src1
/*269074*/          OPC_MoveChild1,
/*269075*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*269078*/          OPC_RecordMemRef,
/*269079*/          OPC_RecordNode, // #2 = 'ld' chained node
/*269080*/          OPC_CheckFoldableChainNode,
/*269081*/          OPC_RecordChild1, // #3 = $src2
/*269082*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*269084*/          OPC_CheckPredicate, 9, // Predicate_load
/*269086*/          OPC_MoveParent,
/*269087*/          OPC_MoveParent,
/*269088*/          OPC_Scope, 47, /*->269137*/ // 2 children in Scope
/*269090*/            OPC_MoveChild2,
/*269091*/            OPC_CheckImmAllZerosV,
/*269092*/            OPC_MoveParent,
/*269093*/            OPC_SwitchType /*2 cases */, 19, MVT::v32i16,// ->269115
/*269096*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*269098*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*269101*/              OPC_EmitMergeInputChains1_2,
/*269102*/              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, (usubsat:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v32i16] }) - Complexity = 32
                        // Dst: (VPSUBUSWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*269115*/            /*SwitchType*/ 19, MVT::v32i8,// ->269136
/*269117*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*269119*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*269122*/              OPC_EmitMergeInputChains1_2,
/*269123*/              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, (usubsat:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v32i8] }) - Complexity = 32
                        // Dst: (VPSUBUSBZ256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*269136*/            0, // EndSwitchType
/*269137*/          /*Scope*/ 47, /*->269185*/
/*269138*/            OPC_RecordChild2, // #4 = $src0
/*269139*/            OPC_SwitchType /*2 cases */, 20, MVT::v32i16,// ->269162
/*269142*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*269144*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*269147*/              OPC_EmitMergeInputChains1_2,
/*269148*/              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, (usubsat:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v32i16] }:$src0) - Complexity = 28
                        // Dst: (VPSUBUSWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*269162*/            /*SwitchType*/ 20, MVT::v32i8,// ->269184
/*269164*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*269166*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*269169*/              OPC_EmitMergeInputChains1_2,
/*269170*/              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, (usubsat:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v32i8] }:$src0) - Complexity = 28
                        // Dst: (VPSUBUSBZ256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*269184*/            0, // EndSwitchType
/*269185*/          0, /*End of Scope*/
/*269186*/        /*SwitchOpcode*/ 32|128,1/*160*/, TARGET_VAL(ISD::MUL),// ->269350
/*269190*/          OPC_Scope, 39, /*->269231*/ // 4 children in Scope
/*269192*/            OPC_RecordChild0, // #1 = $src1
/*269193*/            OPC_MoveChild1,
/*269194*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*269197*/            OPC_RecordMemRef,
/*269198*/            OPC_RecordNode, // #2 = 'ld' chained node
/*269199*/            OPC_CheckFoldableChainNode,
/*269200*/            OPC_RecordChild1, // #3 = $src2
/*269201*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*269203*/            OPC_CheckPredicate, 9, // Predicate_load
/*269205*/            OPC_MoveParent,
/*269206*/            OPC_MoveParent,
/*269207*/            OPC_MoveChild2,
/*269208*/            OPC_CheckImmAllZerosV,
/*269209*/            OPC_MoveParent,
/*269210*/            OPC_CheckType, MVT::v32i16,
/*269212*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*269214*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*269217*/            OPC_EmitMergeInputChains1_2,
/*269218*/            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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v32i16] }) - Complexity = 32
                      // Dst: (VPMULLWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*269231*/          /*Scope*/ 39, /*->269271*/
/*269232*/            OPC_MoveChild0,
/*269233*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*269236*/            OPC_RecordMemRef,
/*269237*/            OPC_RecordNode, // #1 = 'ld' chained node
/*269238*/            OPC_CheckFoldableChainNode,
/*269239*/            OPC_RecordChild1, // #2 = $src2
/*269240*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*269242*/            OPC_CheckPredicate, 9, // Predicate_load
/*269244*/            OPC_MoveParent,
/*269245*/            OPC_RecordChild1, // #3 = $src1
/*269246*/            OPC_MoveParent,
/*269247*/            OPC_MoveChild2,
/*269248*/            OPC_CheckImmAllZerosV,
/*269249*/            OPC_MoveParent,
/*269250*/            OPC_CheckType, MVT::v32i16,
/*269252*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*269254*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*269257*/            OPC_EmitMergeInputChains1_1,
/*269258*/            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] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1), immAllZerosV:{ *:[v32i16] }) - Complexity = 32
                      // Dst: (VPMULLWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*269271*/          /*Scope*/ 38, /*->269310*/
/*269272*/            OPC_RecordChild0, // #1 = $src1
/*269273*/            OPC_MoveChild1,
/*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_MoveParent,
/*269286*/            OPC_MoveParent,
/*269287*/            OPC_RecordChild2, // #4 = $src0
/*269288*/            OPC_CheckType, MVT::v32i16,
/*269290*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*269292*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*269295*/            OPC_EmitMergeInputChains1_2,
/*269296*/            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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v32i16] }:$src0) - Complexity = 28
                      // Dst: (VPMULLWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*269310*/          /*Scope*/ 38, /*->269349*/
/*269311*/            OPC_MoveChild0,
/*269312*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*269315*/            OPC_RecordMemRef,
/*269316*/            OPC_RecordNode, // #1 = 'ld' chained node
/*269317*/            OPC_CheckFoldableChainNode,
/*269318*/            OPC_RecordChild1, // #2 = $src2
/*269319*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*269321*/            OPC_CheckPredicate, 9, // Predicate_load
/*269323*/            OPC_MoveParent,
/*269324*/            OPC_RecordChild1, // #3 = $src1
/*269325*/            OPC_MoveParent,
/*269326*/            OPC_RecordChild2, // #4 = $src0
/*269327*/            OPC_CheckType, MVT::v32i16,
/*269329*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*269331*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*269334*/            OPC_EmitMergeInputChains1_1,
/*269335*/            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] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1), VR512:{ *:[v32i16] }:$src0) - Complexity = 28
                      // Dst: (VPMULLWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*269349*/          0, /*End of Scope*/
/*269350*/        /*SwitchOpcode*/ 32|128,1/*160*/, TARGET_VAL(ISD::MULHS),// ->269514
/*269354*/          OPC_Scope, 39, /*->269395*/ // 4 children in Scope
/*269356*/            OPC_RecordChild0, // #1 = $src1
/*269357*/            OPC_MoveChild1,
/*269358*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*269361*/            OPC_RecordMemRef,
/*269362*/            OPC_RecordNode, // #2 = 'ld' chained node
/*269363*/            OPC_CheckFoldableChainNode,
/*269364*/            OPC_RecordChild1, // #3 = $src2
/*269365*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*269367*/            OPC_CheckPredicate, 9, // Predicate_load
/*269369*/            OPC_MoveParent,
/*269370*/            OPC_MoveParent,
/*269371*/            OPC_MoveChild2,
/*269372*/            OPC_CheckImmAllZerosV,
/*269373*/            OPC_MoveParent,
/*269374*/            OPC_CheckType, MVT::v32i16,
/*269376*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*269378*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*269381*/            OPC_EmitMergeInputChains1_2,
/*269382*/            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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v32i16] }) - Complexity = 32
                      // Dst: (VPMULHWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*269395*/          /*Scope*/ 39, /*->269435*/
/*269396*/            OPC_MoveChild0,
/*269397*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*269400*/            OPC_RecordMemRef,
/*269401*/            OPC_RecordNode, // #1 = 'ld' chained node
/*269402*/            OPC_CheckFoldableChainNode,
/*269403*/            OPC_RecordChild1, // #2 = $src2
/*269404*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*269406*/            OPC_CheckPredicate, 9, // Predicate_load
/*269408*/            OPC_MoveParent,
/*269409*/            OPC_RecordChild1, // #3 = $src1
/*269410*/            OPC_MoveParent,
/*269411*/            OPC_MoveChild2,
/*269412*/            OPC_CheckImmAllZerosV,
/*269413*/            OPC_MoveParent,
/*269414*/            OPC_CheckType, MVT::v32i16,
/*269416*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*269418*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*269421*/            OPC_EmitMergeInputChains1_1,
/*269422*/            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] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1), immAllZerosV:{ *:[v32i16] }) - Complexity = 32
                      // Dst: (VPMULHWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*269435*/          /*Scope*/ 38, /*->269474*/
/*269436*/            OPC_RecordChild0, // #1 = $src1
/*269437*/            OPC_MoveChild1,
/*269438*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*269441*/            OPC_RecordMemRef,
/*269442*/            OPC_RecordNode, // #2 = 'ld' chained node
/*269443*/            OPC_CheckFoldableChainNode,
/*269444*/            OPC_RecordChild1, // #3 = $src2
/*269445*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*269447*/            OPC_CheckPredicate, 9, // Predicate_load
/*269449*/            OPC_MoveParent,
/*269450*/            OPC_MoveParent,
/*269451*/            OPC_RecordChild2, // #4 = $src0
/*269452*/            OPC_CheckType, MVT::v32i16,
/*269454*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*269456*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*269459*/            OPC_EmitMergeInputChains1_2,
/*269460*/            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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v32i16] }:$src0) - Complexity = 28
                      // Dst: (VPMULHWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*269474*/          /*Scope*/ 38, /*->269513*/
/*269475*/            OPC_MoveChild0,
/*269476*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*269479*/            OPC_RecordMemRef,
/*269480*/            OPC_RecordNode, // #1 = 'ld' chained node
/*269481*/            OPC_CheckFoldableChainNode,
/*269482*/            OPC_RecordChild1, // #2 = $src2
/*269483*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*269485*/            OPC_CheckPredicate, 9, // Predicate_load
/*269487*/            OPC_MoveParent,
/*269488*/            OPC_RecordChild1, // #3 = $src1
/*269489*/            OPC_MoveParent,
/*269490*/            OPC_RecordChild2, // #4 = $src0
/*269491*/            OPC_CheckType, MVT::v32i16,
/*269493*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*269495*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*269498*/            OPC_EmitMergeInputChains1_1,
/*269499*/            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] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1), VR512:{ *:[v32i16] }:$src0) - Complexity = 28
                      // Dst: (VPMULHWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*269513*/          0, /*End of Scope*/
/*269514*/        /*SwitchOpcode*/ 32|128,1/*160*/, TARGET_VAL(ISD::MULHU),// ->269678
/*269518*/          OPC_Scope, 39, /*->269559*/ // 4 children in Scope
/*269520*/            OPC_RecordChild0, // #1 = $src1
/*269521*/            OPC_MoveChild1,
/*269522*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*269525*/            OPC_RecordMemRef,
/*269526*/            OPC_RecordNode, // #2 = 'ld' chained node
/*269527*/            OPC_CheckFoldableChainNode,
/*269528*/            OPC_RecordChild1, // #3 = $src2
/*269529*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*269531*/            OPC_CheckPredicate, 9, // Predicate_load
/*269533*/            OPC_MoveParent,
/*269534*/            OPC_MoveParent,
/*269535*/            OPC_MoveChild2,
/*269536*/            OPC_CheckImmAllZerosV,
/*269537*/            OPC_MoveParent,
/*269538*/            OPC_CheckType, MVT::v32i16,
/*269540*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*269542*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*269545*/            OPC_EmitMergeInputChains1_2,
/*269546*/            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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v32i16] }) - Complexity = 32
                      // Dst: (VPMULHUWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*269559*/          /*Scope*/ 39, /*->269599*/
/*269560*/            OPC_MoveChild0,
/*269561*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*269564*/            OPC_RecordMemRef,
/*269565*/            OPC_RecordNode, // #1 = 'ld' chained node
/*269566*/            OPC_CheckFoldableChainNode,
/*269567*/            OPC_RecordChild1, // #2 = $src2
/*269568*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*269570*/            OPC_CheckPredicate, 9, // Predicate_load
/*269572*/            OPC_MoveParent,
/*269573*/            OPC_RecordChild1, // #3 = $src1
/*269574*/            OPC_MoveParent,
/*269575*/            OPC_MoveChild2,
/*269576*/            OPC_CheckImmAllZerosV,
/*269577*/            OPC_MoveParent,
/*269578*/            OPC_CheckType, MVT::v32i16,
/*269580*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*269582*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*269585*/            OPC_EmitMergeInputChains1_1,
/*269586*/            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] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1), immAllZerosV:{ *:[v32i16] }) - Complexity = 32
                      // Dst: (VPMULHUWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*269599*/          /*Scope*/ 38, /*->269638*/
/*269600*/            OPC_RecordChild0, // #1 = $src1
/*269601*/            OPC_MoveChild1,
/*269602*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*269605*/            OPC_RecordMemRef,
/*269606*/            OPC_RecordNode, // #2 = 'ld' chained node
/*269607*/            OPC_CheckFoldableChainNode,
/*269608*/            OPC_RecordChild1, // #3 = $src2
/*269609*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*269611*/            OPC_CheckPredicate, 9, // Predicate_load
/*269613*/            OPC_MoveParent,
/*269614*/            OPC_MoveParent,
/*269615*/            OPC_RecordChild2, // #4 = $src0
/*269616*/            OPC_CheckType, MVT::v32i16,
/*269618*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*269620*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*269623*/            OPC_EmitMergeInputChains1_2,
/*269624*/            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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v32i16] }:$src0) - Complexity = 28
                      // Dst: (VPMULHUWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*269638*/          /*Scope*/ 38, /*->269677*/
/*269639*/            OPC_MoveChild0,
/*269640*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*269643*/            OPC_RecordMemRef,
/*269644*/            OPC_RecordNode, // #1 = 'ld' chained node
/*269645*/            OPC_CheckFoldableChainNode,
/*269646*/            OPC_RecordChild1, // #2 = $src2
/*269647*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*269649*/            OPC_CheckPredicate, 9, // Predicate_load
/*269651*/            OPC_MoveParent,
/*269652*/            OPC_RecordChild1, // #3 = $src1
/*269653*/            OPC_MoveParent,
/*269654*/            OPC_RecordChild2, // #4 = $src0
/*269655*/            OPC_CheckType, MVT::v32i16,
/*269657*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*269659*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*269662*/            OPC_EmitMergeInputChains1_1,
/*269663*/            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] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1), VR512:{ *:[v32i16] }:$src0) - Complexity = 28
                      // Dst: (VPMULHUWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*269677*/          0, /*End of Scope*/
/*269678*/        /*SwitchOpcode*/ 32|128,1/*160*/, TARGET_VAL(X86ISD::MULHRS),// ->269842
/*269682*/          OPC_Scope, 39, /*->269723*/ // 4 children in Scope
/*269684*/            OPC_RecordChild0, // #1 = $src1
/*269685*/            OPC_MoveChild1,
/*269686*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*269689*/            OPC_RecordMemRef,
/*269690*/            OPC_RecordNode, // #2 = 'ld' chained node
/*269691*/            OPC_CheckFoldableChainNode,
/*269692*/            OPC_RecordChild1, // #3 = $src2
/*269693*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*269695*/            OPC_CheckPredicate, 9, // Predicate_load
/*269697*/            OPC_MoveParent,
/*269698*/            OPC_MoveParent,
/*269699*/            OPC_MoveChild2,
/*269700*/            OPC_CheckImmAllZerosV,
/*269701*/            OPC_MoveParent,
/*269702*/            OPC_CheckType, MVT::v32i16,
/*269704*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*269706*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*269709*/            OPC_EmitMergeInputChains1_2,
/*269710*/            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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v32i16] }) - Complexity = 32
                      // Dst: (VPMULHRSWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*269723*/          /*Scope*/ 39, /*->269763*/
/*269724*/            OPC_MoveChild0,
/*269725*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*269728*/            OPC_RecordMemRef,
/*269729*/            OPC_RecordNode, // #1 = 'ld' chained node
/*269730*/            OPC_CheckFoldableChainNode,
/*269731*/            OPC_RecordChild1, // #2 = $src2
/*269732*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*269734*/            OPC_CheckPredicate, 9, // Predicate_load
/*269736*/            OPC_MoveParent,
/*269737*/            OPC_RecordChild1, // #3 = $src1
/*269738*/            OPC_MoveParent,
/*269739*/            OPC_MoveChild2,
/*269740*/            OPC_CheckImmAllZerosV,
/*269741*/            OPC_MoveParent,
/*269742*/            OPC_CheckType, MVT::v32i16,
/*269744*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*269746*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*269749*/            OPC_EmitMergeInputChains1_1,
/*269750*/            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] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1), immAllZerosV:{ *:[v32i16] }) - Complexity = 32
                      // Dst: (VPMULHRSWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*269763*/          /*Scope*/ 38, /*->269802*/
/*269764*/            OPC_RecordChild0, // #1 = $src1
/*269765*/            OPC_MoveChild1,
/*269766*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*269769*/            OPC_RecordMemRef,
/*269770*/            OPC_RecordNode, // #2 = 'ld' chained node
/*269771*/            OPC_CheckFoldableChainNode,
/*269772*/            OPC_RecordChild1, // #3 = $src2
/*269773*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*269775*/            OPC_CheckPredicate, 9, // Predicate_load
/*269777*/            OPC_MoveParent,
/*269778*/            OPC_MoveParent,
/*269779*/            OPC_RecordChild2, // #4 = $src0
/*269780*/            OPC_CheckType, MVT::v32i16,
/*269782*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*269784*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*269787*/            OPC_EmitMergeInputChains1_2,
/*269788*/            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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v32i16] }:$src0) - Complexity = 28
                      // Dst: (VPMULHRSWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*269802*/          /*Scope*/ 38, /*->269841*/
/*269803*/            OPC_MoveChild0,
/*269804*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*269807*/            OPC_RecordMemRef,
/*269808*/            OPC_RecordNode, // #1 = 'ld' chained node
/*269809*/            OPC_CheckFoldableChainNode,
/*269810*/            OPC_RecordChild1, // #2 = $src2
/*269811*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*269813*/            OPC_CheckPredicate, 9, // Predicate_load
/*269815*/            OPC_MoveParent,
/*269816*/            OPC_RecordChild1, // #3 = $src1
/*269817*/            OPC_MoveParent,
/*269818*/            OPC_RecordChild2, // #4 = $src0
/*269819*/            OPC_CheckType, MVT::v32i16,
/*269821*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*269823*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*269826*/            OPC_EmitMergeInputChains1_1,
/*269827*/            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] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1), VR512:{ *:[v32i16] }:$src0) - Complexity = 28
                      // Dst: (VPMULHRSWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*269841*/          0, /*End of Scope*/
/*269842*/        /*SwitchOpcode*/ 126|128,1/*254*/, TARGET_VAL(X86ISD::AVG),// ->270100
/*269846*/          OPC_Scope, 62, /*->269910*/ // 4 children in Scope
/*269848*/            OPC_RecordChild0, // #1 = $src1
/*269849*/            OPC_MoveChild1,
/*269850*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*269853*/            OPC_RecordMemRef,
/*269854*/            OPC_RecordNode, // #2 = 'ld' chained node
/*269855*/            OPC_CheckFoldableChainNode,
/*269856*/            OPC_RecordChild1, // #3 = $src2
/*269857*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*269859*/            OPC_CheckPredicate, 9, // Predicate_load
/*269861*/            OPC_MoveParent,
/*269862*/            OPC_MoveParent,
/*269863*/            OPC_MoveChild2,
/*269864*/            OPC_CheckImmAllZerosV,
/*269865*/            OPC_MoveParent,
/*269866*/            OPC_SwitchType /*2 cases */, 19, MVT::v32i16,// ->269888
/*269869*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*269871*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*269874*/              OPC_EmitMergeInputChains1_2,
/*269875*/              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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v32i16] }) - Complexity = 32
                        // Dst: (VPAVGWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*269888*/            /*SwitchType*/ 19, MVT::v32i8,// ->269909
/*269890*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*269892*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*269895*/              OPC_EmitMergeInputChains1_2,
/*269896*/              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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v32i8] }) - Complexity = 32
                        // Dst: (VPAVGBZ256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*269909*/            0, // EndSwitchType
/*269910*/          /*Scope*/ 62, /*->269973*/
/*269911*/            OPC_MoveChild0,
/*269912*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*269915*/            OPC_RecordMemRef,
/*269916*/            OPC_RecordNode, // #1 = 'ld' chained node
/*269917*/            OPC_CheckFoldableChainNode,
/*269918*/            OPC_RecordChild1, // #2 = $src2
/*269919*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*269921*/            OPC_CheckPredicate, 9, // Predicate_load
/*269923*/            OPC_MoveParent,
/*269924*/            OPC_RecordChild1, // #3 = $src1
/*269925*/            OPC_MoveParent,
/*269926*/            OPC_MoveChild2,
/*269927*/            OPC_CheckImmAllZerosV,
/*269928*/            OPC_MoveParent,
/*269929*/            OPC_SwitchType /*2 cases */, 19, MVT::v32i16,// ->269951
/*269932*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*269934*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*269937*/              OPC_EmitMergeInputChains1_1,
/*269938*/              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] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1), immAllZerosV:{ *:[v32i16] }) - Complexity = 32
                        // Dst: (VPAVGWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*269951*/            /*SwitchType*/ 19, MVT::v32i8,// ->269972
/*269953*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*269955*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*269958*/              OPC_EmitMergeInputChains1_1,
/*269959*/              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] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v32i8] }:$src1), immAllZerosV:{ *:[v32i8] }) - Complexity = 32
                        // Dst: (VPAVGBZ256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*269972*/            0, // EndSwitchType
/*269973*/          /*Scope*/ 62, /*->270036*/
/*269974*/            OPC_RecordChild0, // #1 = $src1
/*269975*/            OPC_MoveChild1,
/*269976*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*269979*/            OPC_RecordMemRef,
/*269980*/            OPC_RecordNode, // #2 = 'ld' chained node
/*269981*/            OPC_CheckFoldableChainNode,
/*269982*/            OPC_RecordChild1, // #3 = $src2
/*269983*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*269985*/            OPC_CheckPredicate, 9, // Predicate_load
/*269987*/            OPC_MoveParent,
/*269988*/            OPC_MoveParent,
/*269989*/            OPC_RecordChild2, // #4 = $src0
/*269990*/            OPC_SwitchType /*2 cases */, 20, MVT::v32i16,// ->270013
/*269993*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*269995*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*269998*/              OPC_EmitMergeInputChains1_2,
/*269999*/              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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v32i16] }:$src0) - Complexity = 28
                        // Dst: (VPAVGWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*270013*/            /*SwitchType*/ 20, MVT::v32i8,// ->270035
/*270015*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*270017*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*270020*/              OPC_EmitMergeInputChains1_2,
/*270021*/              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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v32i8] }:$src0) - Complexity = 28
                        // Dst: (VPAVGBZ256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*270035*/            0, // EndSwitchType
/*270036*/          /*Scope*/ 62, /*->270099*/
/*270037*/            OPC_MoveChild0,
/*270038*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*270041*/            OPC_RecordMemRef,
/*270042*/            OPC_RecordNode, // #1 = 'ld' chained node
/*270043*/            OPC_CheckFoldableChainNode,
/*270044*/            OPC_RecordChild1, // #2 = $src2
/*270045*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*270047*/            OPC_CheckPredicate, 9, // Predicate_load
/*270049*/            OPC_MoveParent,
/*270050*/            OPC_RecordChild1, // #3 = $src1
/*270051*/            OPC_MoveParent,
/*270052*/            OPC_RecordChild2, // #4 = $src0
/*270053*/            OPC_SwitchType /*2 cases */, 20, MVT::v32i16,// ->270076
/*270056*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*270058*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*270061*/              OPC_EmitMergeInputChains1_1,
/*270062*/              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] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1), VR512:{ *:[v32i16] }:$src0) - Complexity = 28
                        // Dst: (VPAVGWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*270076*/            /*SwitchType*/ 20, MVT::v32i8,// ->270098
/*270078*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*270080*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*270083*/              OPC_EmitMergeInputChains1_1,
/*270084*/              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] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v32i8] }:$src1), VR256X:{ *:[v32i8] }:$src0) - Complexity = 28
                        // Dst: (VPAVGBZ256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*270098*/            0, // EndSwitchType
/*270099*/          0, /*End of Scope*/
/*270100*/        /*SwitchOpcode*/ 76|128,1/*204*/, TARGET_VAL(X86ISD::PACKSS),// ->270308
/*270104*/          OPC_RecordChild0, // #1 = $src1
/*270105*/          OPC_Scope, 3|128,1/*131*/, /*->270239*/ // 2 children in Scope
/*270108*/            OPC_CheckChild0Type, MVT::v16i32,
/*270110*/            OPC_MoveChild1,
/*270111*/            OPC_SwitchOpcode /*2 cases */, 61, TARGET_VAL(ISD::LOAD),// ->270176
/*270115*/              OPC_RecordMemRef,
/*270116*/              OPC_RecordNode, // #2 = 'ld' chained node
/*270117*/              OPC_CheckFoldableChainNode,
/*270118*/              OPC_RecordChild1, // #3 = $src2
/*270119*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*270121*/              OPC_CheckPredicate, 9, // Predicate_load
/*270123*/              OPC_MoveParent,
/*270124*/              OPC_MoveParent,
/*270125*/              OPC_Scope, 24, /*->270151*/ // 2 children in Scope
/*270127*/                OPC_MoveChild2,
/*270128*/                OPC_CheckImmAllZerosV,
/*270129*/                OPC_MoveParent,
/*270130*/                OPC_CheckType, MVT::v32i16,
/*270132*/                OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*270134*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*270137*/                OPC_EmitMergeInputChains1_2,
/*270138*/                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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v32i16] }) - Complexity = 32
                          // Dst: (VPACKSSDWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*270151*/              /*Scope*/ 23, /*->270175*/
/*270152*/                OPC_RecordChild2, // #4 = $src0
/*270153*/                OPC_CheckType, MVT::v32i16,
/*270155*/                OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*270157*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*270160*/                OPC_EmitMergeInputChains1_2,
/*270161*/                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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v32i16] }:$src0) - Complexity = 28
                          // Dst: (VPACKSSDWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*270175*/              0, /*End of Scope*/
/*270176*/            /*SwitchOpcode*/ 59, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->270238
/*270179*/              OPC_RecordMemRef,
/*270180*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*270181*/              OPC_CheckFoldableChainNode,
/*270182*/              OPC_RecordChild1, // #3 = $src2
/*270183*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*270185*/              OPC_MoveParent,
/*270186*/              OPC_MoveParent,
/*270187*/              OPC_Scope, 24, /*->270213*/ // 2 children in Scope
/*270189*/                OPC_MoveChild2,
/*270190*/                OPC_CheckImmAllZerosV,
/*270191*/                OPC_MoveParent,
/*270192*/                OPC_CheckType, MVT::v32i16,
/*270194*/                OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*270196*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*270199*/                OPC_EmitMergeInputChains1_2,
/*270200*/                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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v32i16] }) - Complexity = 32
                          // Dst: (VPACKSSDWZrmbkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*270213*/              /*Scope*/ 23, /*->270237*/
/*270214*/                OPC_RecordChild2, // #4 = $src0
/*270215*/                OPC_CheckType, MVT::v32i16,
/*270217*/                OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*270219*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*270222*/                OPC_EmitMergeInputChains1_2,
/*270223*/                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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v32i16] }:$src0) - Complexity = 28
                          // Dst: (VPACKSSDWZrmbk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*270237*/              0, /*End of Scope*/
/*270238*/            0, // EndSwitchOpcode
/*270239*/          /*Scope*/ 67, /*->270307*/
/*270240*/            OPC_CheckChild0Type, MVT::v16i16,
/*270242*/            OPC_MoveChild1,
/*270243*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*270246*/            OPC_RecordMemRef,
/*270247*/            OPC_RecordNode, // #2 = 'ld' chained node
/*270248*/            OPC_CheckFoldableChainNode,
/*270249*/            OPC_RecordChild1, // #3 = $src2
/*270250*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*270252*/            OPC_CheckPredicate, 9, // Predicate_load
/*270254*/            OPC_MoveParent,
/*270255*/            OPC_MoveParent,
/*270256*/            OPC_Scope, 24, /*->270282*/ // 2 children in Scope
/*270258*/              OPC_MoveChild2,
/*270259*/              OPC_CheckImmAllZerosV,
/*270260*/              OPC_MoveParent,
/*270261*/              OPC_CheckType, MVT::v32i8,
/*270263*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*270265*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*270268*/              OPC_EmitMergeInputChains1_2,
/*270269*/              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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v32i8] }) - Complexity = 32
                        // Dst: (VPACKSSWBZ256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*270282*/            /*Scope*/ 23, /*->270306*/
/*270283*/              OPC_RecordChild2, // #4 = $src0
/*270284*/              OPC_CheckType, MVT::v32i8,
/*270286*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*270288*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*270291*/              OPC_EmitMergeInputChains1_2,
/*270292*/              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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v32i8] }:$src0) - Complexity = 28
                        // Dst: (VPACKSSWBZ256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*270306*/            0, /*End of Scope*/
/*270307*/          0, /*End of Scope*/
/*270308*/        /*SwitchOpcode*/ 76|128,1/*204*/, TARGET_VAL(X86ISD::PACKUS),// ->270516
/*270312*/          OPC_RecordChild0, // #1 = $src1
/*270313*/          OPC_Scope, 3|128,1/*131*/, /*->270447*/ // 2 children in Scope
/*270316*/            OPC_CheckChild0Type, MVT::v16i32,
/*270318*/            OPC_MoveChild1,
/*270319*/            OPC_SwitchOpcode /*2 cases */, 61, TARGET_VAL(ISD::LOAD),// ->270384
/*270323*/              OPC_RecordMemRef,
/*270324*/              OPC_RecordNode, // #2 = 'ld' chained node
/*270325*/              OPC_CheckFoldableChainNode,
/*270326*/              OPC_RecordChild1, // #3 = $src2
/*270327*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*270329*/              OPC_CheckPredicate, 9, // Predicate_load
/*270331*/              OPC_MoveParent,
/*270332*/              OPC_MoveParent,
/*270333*/              OPC_Scope, 24, /*->270359*/ // 2 children in Scope
/*270335*/                OPC_MoveChild2,
/*270336*/                OPC_CheckImmAllZerosV,
/*270337*/                OPC_MoveParent,
/*270338*/                OPC_CheckType, MVT::v32i16,
/*270340*/                OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*270342*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*270345*/                OPC_EmitMergeInputChains1_2,
/*270346*/                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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v32i16] }) - Complexity = 32
                          // Dst: (VPACKUSDWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*270359*/              /*Scope*/ 23, /*->270383*/
/*270360*/                OPC_RecordChild2, // #4 = $src0
/*270361*/                OPC_CheckType, MVT::v32i16,
/*270363*/                OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*270365*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*270368*/                OPC_EmitMergeInputChains1_2,
/*270369*/                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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v32i16] }:$src0) - Complexity = 28
                          // Dst: (VPACKUSDWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*270383*/              0, /*End of Scope*/
/*270384*/            /*SwitchOpcode*/ 59, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->270446
/*270387*/              OPC_RecordMemRef,
/*270388*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*270389*/              OPC_CheckFoldableChainNode,
/*270390*/              OPC_RecordChild1, // #3 = $src2
/*270391*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*270393*/              OPC_MoveParent,
/*270394*/              OPC_MoveParent,
/*270395*/              OPC_Scope, 24, /*->270421*/ // 2 children in Scope
/*270397*/                OPC_MoveChild2,
/*270398*/                OPC_CheckImmAllZerosV,
/*270399*/                OPC_MoveParent,
/*270400*/                OPC_CheckType, MVT::v32i16,
/*270402*/                OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*270404*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*270407*/                OPC_EmitMergeInputChains1_2,
/*270408*/                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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v32i16] }) - Complexity = 32
                          // Dst: (VPACKUSDWZrmbkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*270421*/              /*Scope*/ 23, /*->270445*/
/*270422*/                OPC_RecordChild2, // #4 = $src0
/*270423*/                OPC_CheckType, MVT::v32i16,
/*270425*/                OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*270427*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*270430*/                OPC_EmitMergeInputChains1_2,
/*270431*/                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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v32i16] }:$src0) - Complexity = 28
                          // Dst: (VPACKUSDWZrmbk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*270445*/              0, /*End of Scope*/
/*270446*/            0, // EndSwitchOpcode
/*270447*/          /*Scope*/ 67, /*->270515*/
/*270448*/            OPC_CheckChild0Type, MVT::v16i16,
/*270450*/            OPC_MoveChild1,
/*270451*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*270454*/            OPC_RecordMemRef,
/*270455*/            OPC_RecordNode, // #2 = 'ld' chained node
/*270456*/            OPC_CheckFoldableChainNode,
/*270457*/            OPC_RecordChild1, // #3 = $src2
/*270458*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*270460*/            OPC_CheckPredicate, 9, // Predicate_load
/*270462*/            OPC_MoveParent,
/*270463*/            OPC_MoveParent,
/*270464*/            OPC_Scope, 24, /*->270490*/ // 2 children in Scope
/*270466*/              OPC_MoveChild2,
/*270467*/              OPC_CheckImmAllZerosV,
/*270468*/              OPC_MoveParent,
/*270469*/              OPC_CheckType, MVT::v32i8,
/*270471*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*270473*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*270476*/              OPC_EmitMergeInputChains1_2,
/*270477*/              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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v32i8] }) - Complexity = 32
                        // Dst: (VPACKUSWBZ256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*270490*/            /*Scope*/ 23, /*->270514*/
/*270491*/              OPC_RecordChild2, // #4 = $src0
/*270492*/              OPC_CheckType, MVT::v32i8,
/*270494*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*270496*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*270499*/              OPC_EmitMergeInputChains1_2,
/*270500*/              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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v32i8] }:$src0) - Complexity = 28
                        // Dst: (VPACKUSWBZ256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*270514*/            0, /*End of Scope*/
/*270515*/          0, /*End of Scope*/
/*270516*/        /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VPMADDUBSW),// ->270585
/*270519*/          OPC_RecordChild0, // #1 = $src1
/*270520*/          OPC_MoveChild1,
/*270521*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*270524*/          OPC_RecordMemRef,
/*270525*/          OPC_RecordNode, // #2 = 'ld' chained node
/*270526*/          OPC_CheckFoldableChainNode,
/*270527*/          OPC_RecordChild1, // #3 = $src2
/*270528*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*270530*/          OPC_CheckPredicate, 9, // Predicate_load
/*270532*/          OPC_MoveParent,
/*270533*/          OPC_MoveParent,
/*270534*/          OPC_Scope, 24, /*->270560*/ // 2 children in Scope
/*270536*/            OPC_MoveChild2,
/*270537*/            OPC_CheckImmAllZerosV,
/*270538*/            OPC_MoveParent,
/*270539*/            OPC_CheckType, MVT::v32i16,
/*270541*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*270543*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*270546*/            OPC_EmitMergeInputChains1_2,
/*270547*/            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, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v32i16] }) - Complexity = 32
                      // Dst: (VPMADDUBSWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*270560*/          /*Scope*/ 23, /*->270584*/
/*270561*/            OPC_RecordChild2, // #4 = $src0
/*270562*/            OPC_CheckType, MVT::v32i16,
/*270564*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*270566*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*270569*/            OPC_EmitMergeInputChains1_2,
/*270570*/            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, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v32i16] }:$src0) - Complexity = 28
                      // Dst: (VPMADDUBSWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*270584*/          0, /*End of Scope*/
/*270585*/        /*SwitchOpcode*/ 126|128,1/*254*/, TARGET_VAL(ISD::SMAX),// ->270843
/*270589*/          OPC_Scope, 62, /*->270653*/ // 4 children in Scope
/*270591*/            OPC_RecordChild0, // #1 = $src1
/*270592*/            OPC_MoveChild1,
/*270593*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*270596*/            OPC_RecordMemRef,
/*270597*/            OPC_RecordNode, // #2 = 'ld' chained node
/*270598*/            OPC_CheckFoldableChainNode,
/*270599*/            OPC_RecordChild1, // #3 = $src2
/*270600*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*270602*/            OPC_CheckPredicate, 9, // Predicate_load
/*270604*/            OPC_MoveParent,
/*270605*/            OPC_MoveParent,
/*270606*/            OPC_MoveChild2,
/*270607*/            OPC_CheckImmAllZerosV,
/*270608*/            OPC_MoveParent,
/*270609*/            OPC_SwitchType /*2 cases */, 19, MVT::v32i8,// ->270631
/*270612*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*270614*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*270617*/              OPC_EmitMergeInputChains1_2,
/*270618*/              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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v32i8] }) - Complexity = 32
                        // Dst: (VPMAXSBZ256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*270631*/            /*SwitchType*/ 19, MVT::v32i16,// ->270652
/*270633*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*270635*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*270638*/              OPC_EmitMergeInputChains1_2,
/*270639*/              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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v32i16] }) - Complexity = 32
                        // Dst: (VPMAXSWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*270652*/            0, // EndSwitchType
/*270653*/          /*Scope*/ 62, /*->270716*/
/*270654*/            OPC_MoveChild0,
/*270655*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*270658*/            OPC_RecordMemRef,
/*270659*/            OPC_RecordNode, // #1 = 'ld' chained node
/*270660*/            OPC_CheckFoldableChainNode,
/*270661*/            OPC_RecordChild1, // #2 = $src2
/*270662*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*270664*/            OPC_CheckPredicate, 9, // Predicate_load
/*270666*/            OPC_MoveParent,
/*270667*/            OPC_RecordChild1, // #3 = $src1
/*270668*/            OPC_MoveParent,
/*270669*/            OPC_MoveChild2,
/*270670*/            OPC_CheckImmAllZerosV,
/*270671*/            OPC_MoveParent,
/*270672*/            OPC_SwitchType /*2 cases */, 19, MVT::v32i8,// ->270694
/*270675*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*270677*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*270680*/              OPC_EmitMergeInputChains1_1,
/*270681*/              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] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v32i8] }:$src1), immAllZerosV:{ *:[v32i8] }) - Complexity = 32
                        // Dst: (VPMAXSBZ256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*270694*/            /*SwitchType*/ 19, MVT::v32i16,// ->270715
/*270696*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*270698*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*270701*/              OPC_EmitMergeInputChains1_1,
/*270702*/              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] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1), immAllZerosV:{ *:[v32i16] }) - Complexity = 32
                        // Dst: (VPMAXSWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*270715*/            0, // EndSwitchType
/*270716*/          /*Scope*/ 62, /*->270779*/
/*270717*/            OPC_RecordChild0, // #1 = $src1
/*270718*/            OPC_MoveChild1,
/*270719*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*270722*/            OPC_RecordMemRef,
/*270723*/            OPC_RecordNode, // #2 = 'ld' chained node
/*270724*/            OPC_CheckFoldableChainNode,
/*270725*/            OPC_RecordChild1, // #3 = $src2
/*270726*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*270728*/            OPC_CheckPredicate, 9, // Predicate_load
/*270730*/            OPC_MoveParent,
/*270731*/            OPC_MoveParent,
/*270732*/            OPC_RecordChild2, // #4 = $src0
/*270733*/            OPC_SwitchType /*2 cases */, 20, MVT::v32i8,// ->270756
/*270736*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*270738*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*270741*/              OPC_EmitMergeInputChains1_2,
/*270742*/              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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v32i8] }:$src0) - Complexity = 28
                        // Dst: (VPMAXSBZ256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*270756*/            /*SwitchType*/ 20, MVT::v32i16,// ->270778
/*270758*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*270760*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*270763*/              OPC_EmitMergeInputChains1_2,
/*270764*/              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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v32i16] }:$src0) - Complexity = 28
                        // Dst: (VPMAXSWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*270778*/            0, // EndSwitchType
/*270779*/          /*Scope*/ 62, /*->270842*/
/*270780*/            OPC_MoveChild0,
/*270781*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*270784*/            OPC_RecordMemRef,
/*270785*/            OPC_RecordNode, // #1 = 'ld' chained node
/*270786*/            OPC_CheckFoldableChainNode,
/*270787*/            OPC_RecordChild1, // #2 = $src2
/*270788*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*270790*/            OPC_CheckPredicate, 9, // Predicate_load
/*270792*/            OPC_MoveParent,
/*270793*/            OPC_RecordChild1, // #3 = $src1
/*270794*/            OPC_MoveParent,
/*270795*/            OPC_RecordChild2, // #4 = $src0
/*270796*/            OPC_SwitchType /*2 cases */, 20, MVT::v32i8,// ->270819
/*270799*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*270801*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*270804*/              OPC_EmitMergeInputChains1_1,
/*270805*/              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] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v32i8] }:$src1), VR256X:{ *:[v32i8] }:$src0) - Complexity = 28
                        // Dst: (VPMAXSBZ256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*270819*/            /*SwitchType*/ 20, MVT::v32i16,// ->270841
/*270821*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*270823*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*270826*/              OPC_EmitMergeInputChains1_1,
/*270827*/              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] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1), VR512:{ *:[v32i16] }:$src0) - Complexity = 28
                        // Dst: (VPMAXSWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*270841*/            0, // EndSwitchType
/*270842*/          0, /*End of Scope*/
/*270843*/        /*SwitchOpcode*/ 126|128,1/*254*/, TARGET_VAL(ISD::UMAX),// ->271101
/*270847*/          OPC_Scope, 62, /*->270911*/ // 4 children in Scope
/*270849*/            OPC_RecordChild0, // #1 = $src1
/*270850*/            OPC_MoveChild1,
/*270851*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*270854*/            OPC_RecordMemRef,
/*270855*/            OPC_RecordNode, // #2 = 'ld' chained node
/*270856*/            OPC_CheckFoldableChainNode,
/*270857*/            OPC_RecordChild1, // #3 = $src2
/*270858*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*270860*/            OPC_CheckPredicate, 9, // Predicate_load
/*270862*/            OPC_MoveParent,
/*270863*/            OPC_MoveParent,
/*270864*/            OPC_MoveChild2,
/*270865*/            OPC_CheckImmAllZerosV,
/*270866*/            OPC_MoveParent,
/*270867*/            OPC_SwitchType /*2 cases */, 19, MVT::v32i8,// ->270889
/*270870*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*270872*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*270875*/              OPC_EmitMergeInputChains1_2,
/*270876*/              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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v32i8] }) - Complexity = 32
                        // Dst: (VPMAXUBZ256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*270889*/            /*SwitchType*/ 19, MVT::v32i16,// ->270910
/*270891*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*270893*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*270896*/              OPC_EmitMergeInputChains1_2,
/*270897*/              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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v32i16] }) - Complexity = 32
                        // Dst: (VPMAXUWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*270910*/            0, // EndSwitchType
/*270911*/          /*Scope*/ 62, /*->270974*/
/*270912*/            OPC_MoveChild0,
/*270913*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*270916*/            OPC_RecordMemRef,
/*270917*/            OPC_RecordNode, // #1 = 'ld' chained node
/*270918*/            OPC_CheckFoldableChainNode,
/*270919*/            OPC_RecordChild1, // #2 = $src2
/*270920*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*270922*/            OPC_CheckPredicate, 9, // Predicate_load
/*270924*/            OPC_MoveParent,
/*270925*/            OPC_RecordChild1, // #3 = $src1
/*270926*/            OPC_MoveParent,
/*270927*/            OPC_MoveChild2,
/*270928*/            OPC_CheckImmAllZerosV,
/*270929*/            OPC_MoveParent,
/*270930*/            OPC_SwitchType /*2 cases */, 19, MVT::v32i8,// ->270952
/*270933*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*270935*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*270938*/              OPC_EmitMergeInputChains1_1,
/*270939*/              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] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v32i8] }:$src1), immAllZerosV:{ *:[v32i8] }) - Complexity = 32
                        // Dst: (VPMAXUBZ256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*270952*/            /*SwitchType*/ 19, MVT::v32i16,// ->270973
/*270954*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*270956*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*270959*/              OPC_EmitMergeInputChains1_1,
/*270960*/              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] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1), immAllZerosV:{ *:[v32i16] }) - Complexity = 32
                        // Dst: (VPMAXUWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*270973*/            0, // EndSwitchType
/*270974*/          /*Scope*/ 62, /*->271037*/
/*270975*/            OPC_RecordChild0, // #1 = $src1
/*270976*/            OPC_MoveChild1,
/*270977*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*270980*/            OPC_RecordMemRef,
/*270981*/            OPC_RecordNode, // #2 = 'ld' chained node
/*270982*/            OPC_CheckFoldableChainNode,
/*270983*/            OPC_RecordChild1, // #3 = $src2
/*270984*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*270986*/            OPC_CheckPredicate, 9, // Predicate_load
/*270988*/            OPC_MoveParent,
/*270989*/            OPC_MoveParent,
/*270990*/            OPC_RecordChild2, // #4 = $src0
/*270991*/            OPC_SwitchType /*2 cases */, 20, MVT::v32i8,// ->271014
/*270994*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*270996*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*270999*/              OPC_EmitMergeInputChains1_2,
/*271000*/              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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v32i8] }:$src0) - Complexity = 28
                        // Dst: (VPMAXUBZ256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*271014*/            /*SwitchType*/ 20, MVT::v32i16,// ->271036
/*271016*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*271018*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*271021*/              OPC_EmitMergeInputChains1_2,
/*271022*/              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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v32i16] }:$src0) - Complexity = 28
                        // Dst: (VPMAXUWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*271036*/            0, // EndSwitchType
/*271037*/          /*Scope*/ 62, /*->271100*/
/*271038*/            OPC_MoveChild0,
/*271039*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*271042*/            OPC_RecordMemRef,
/*271043*/            OPC_RecordNode, // #1 = 'ld' chained node
/*271044*/            OPC_CheckFoldableChainNode,
/*271045*/            OPC_RecordChild1, // #2 = $src2
/*271046*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*271048*/            OPC_CheckPredicate, 9, // Predicate_load
/*271050*/            OPC_MoveParent,
/*271051*/            OPC_RecordChild1, // #3 = $src1
/*271052*/            OPC_MoveParent,
/*271053*/            OPC_RecordChild2, // #4 = $src0
/*271054*/            OPC_SwitchType /*2 cases */, 20, MVT::v32i8,// ->271077
/*271057*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*271059*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*271062*/              OPC_EmitMergeInputChains1_1,
/*271063*/              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] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v32i8] }:$src1), VR256X:{ *:[v32i8] }:$src0) - Complexity = 28
                        // Dst: (VPMAXUBZ256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*271077*/            /*SwitchType*/ 20, MVT::v32i16,// ->271099
/*271079*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*271081*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*271084*/              OPC_EmitMergeInputChains1_1,
/*271085*/              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] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1), VR512:{ *:[v32i16] }:$src0) - Complexity = 28
                        // Dst: (VPMAXUWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*271099*/            0, // EndSwitchType
/*271100*/          0, /*End of Scope*/
/*271101*/        /*SwitchOpcode*/ 126|128,1/*254*/, TARGET_VAL(ISD::SMIN),// ->271359
/*271105*/          OPC_Scope, 62, /*->271169*/ // 4 children in Scope
/*271107*/            OPC_RecordChild0, // #1 = $src1
/*271108*/            OPC_MoveChild1,
/*271109*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*271112*/            OPC_RecordMemRef,
/*271113*/            OPC_RecordNode, // #2 = 'ld' chained node
/*271114*/            OPC_CheckFoldableChainNode,
/*271115*/            OPC_RecordChild1, // #3 = $src2
/*271116*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*271118*/            OPC_CheckPredicate, 9, // Predicate_load
/*271120*/            OPC_MoveParent,
/*271121*/            OPC_MoveParent,
/*271122*/            OPC_MoveChild2,
/*271123*/            OPC_CheckImmAllZerosV,
/*271124*/            OPC_MoveParent,
/*271125*/            OPC_SwitchType /*2 cases */, 19, MVT::v32i8,// ->271147
/*271128*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*271130*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*271133*/              OPC_EmitMergeInputChains1_2,
/*271134*/              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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v32i8] }) - Complexity = 32
                        // Dst: (VPMINSBZ256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*271147*/            /*SwitchType*/ 19, MVT::v32i16,// ->271168
/*271149*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*271151*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*271154*/              OPC_EmitMergeInputChains1_2,
/*271155*/              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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v32i16] }) - Complexity = 32
                        // Dst: (VPMINSWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*271168*/            0, // EndSwitchType
/*271169*/          /*Scope*/ 62, /*->271232*/
/*271170*/            OPC_MoveChild0,
/*271171*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*271174*/            OPC_RecordMemRef,
/*271175*/            OPC_RecordNode, // #1 = 'ld' chained node
/*271176*/            OPC_CheckFoldableChainNode,
/*271177*/            OPC_RecordChild1, // #2 = $src2
/*271178*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*271180*/            OPC_CheckPredicate, 9, // Predicate_load
/*271182*/            OPC_MoveParent,
/*271183*/            OPC_RecordChild1, // #3 = $src1
/*271184*/            OPC_MoveParent,
/*271185*/            OPC_MoveChild2,
/*271186*/            OPC_CheckImmAllZerosV,
/*271187*/            OPC_MoveParent,
/*271188*/            OPC_SwitchType /*2 cases */, 19, MVT::v32i8,// ->271210
/*271191*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*271193*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*271196*/              OPC_EmitMergeInputChains1_1,
/*271197*/              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] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v32i8] }:$src1), immAllZerosV:{ *:[v32i8] }) - Complexity = 32
                        // Dst: (VPMINSBZ256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*271210*/            /*SwitchType*/ 19, MVT::v32i16,// ->271231
/*271212*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*271214*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*271217*/              OPC_EmitMergeInputChains1_1,
/*271218*/              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] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1), immAllZerosV:{ *:[v32i16] }) - Complexity = 32
                        // Dst: (VPMINSWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*271231*/            0, // EndSwitchType
/*271232*/          /*Scope*/ 62, /*->271295*/
/*271233*/            OPC_RecordChild0, // #1 = $src1
/*271234*/            OPC_MoveChild1,
/*271235*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*271238*/            OPC_RecordMemRef,
/*271239*/            OPC_RecordNode, // #2 = 'ld' chained node
/*271240*/            OPC_CheckFoldableChainNode,
/*271241*/            OPC_RecordChild1, // #3 = $src2
/*271242*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*271244*/            OPC_CheckPredicate, 9, // Predicate_load
/*271246*/            OPC_MoveParent,
/*271247*/            OPC_MoveParent,
/*271248*/            OPC_RecordChild2, // #4 = $src0
/*271249*/            OPC_SwitchType /*2 cases */, 20, MVT::v32i8,// ->271272
/*271252*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*271254*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*271257*/              OPC_EmitMergeInputChains1_2,
/*271258*/              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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v32i8] }:$src0) - Complexity = 28
                        // Dst: (VPMINSBZ256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*271272*/            /*SwitchType*/ 20, MVT::v32i16,// ->271294
/*271274*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*271276*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*271279*/              OPC_EmitMergeInputChains1_2,
/*271280*/              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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v32i16] }:$src0) - Complexity = 28
                        // Dst: (VPMINSWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*271294*/            0, // EndSwitchType
/*271295*/          /*Scope*/ 62, /*->271358*/
/*271296*/            OPC_MoveChild0,
/*271297*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*271300*/            OPC_RecordMemRef,
/*271301*/            OPC_RecordNode, // #1 = 'ld' chained node
/*271302*/            OPC_CheckFoldableChainNode,
/*271303*/            OPC_RecordChild1, // #2 = $src2
/*271304*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*271306*/            OPC_CheckPredicate, 9, // Predicate_load
/*271308*/            OPC_MoveParent,
/*271309*/            OPC_RecordChild1, // #3 = $src1
/*271310*/            OPC_MoveParent,
/*271311*/            OPC_RecordChild2, // #4 = $src0
/*271312*/            OPC_SwitchType /*2 cases */, 20, MVT::v32i8,// ->271335
/*271315*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*271317*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*271320*/              OPC_EmitMergeInputChains1_1,
/*271321*/              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] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v32i8] }:$src1), VR256X:{ *:[v32i8] }:$src0) - Complexity = 28
                        // Dst: (VPMINSBZ256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*271335*/            /*SwitchType*/ 20, MVT::v32i16,// ->271357
/*271337*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*271339*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*271342*/              OPC_EmitMergeInputChains1_1,
/*271343*/              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] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1), VR512:{ *:[v32i16] }:$src0) - Complexity = 28
                        // Dst: (VPMINSWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*271357*/            0, // EndSwitchType
/*271358*/          0, /*End of Scope*/
/*271359*/        /*SwitchOpcode*/ 126|128,1/*254*/, TARGET_VAL(ISD::UMIN),// ->271617
/*271363*/          OPC_Scope, 62, /*->271427*/ // 4 children in Scope
/*271365*/            OPC_RecordChild0, // #1 = $src1
/*271366*/            OPC_MoveChild1,
/*271367*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*271370*/            OPC_RecordMemRef,
/*271371*/            OPC_RecordNode, // #2 = 'ld' chained node
/*271372*/            OPC_CheckFoldableChainNode,
/*271373*/            OPC_RecordChild1, // #3 = $src2
/*271374*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*271376*/            OPC_CheckPredicate, 9, // Predicate_load
/*271378*/            OPC_MoveParent,
/*271379*/            OPC_MoveParent,
/*271380*/            OPC_MoveChild2,
/*271381*/            OPC_CheckImmAllZerosV,
/*271382*/            OPC_MoveParent,
/*271383*/            OPC_SwitchType /*2 cases */, 19, MVT::v32i8,// ->271405
/*271386*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*271388*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*271391*/              OPC_EmitMergeInputChains1_2,
/*271392*/              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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v32i8] }) - Complexity = 32
                        // Dst: (VPMINUBZ256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*271405*/            /*SwitchType*/ 19, MVT::v32i16,// ->271426
/*271407*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*271409*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*271412*/              OPC_EmitMergeInputChains1_2,
/*271413*/              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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v32i16] }) - Complexity = 32
                        // Dst: (VPMINUWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*271426*/            0, // EndSwitchType
/*271427*/          /*Scope*/ 62, /*->271490*/
/*271428*/            OPC_MoveChild0,
/*271429*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*271432*/            OPC_RecordMemRef,
/*271433*/            OPC_RecordNode, // #1 = 'ld' chained node
/*271434*/            OPC_CheckFoldableChainNode,
/*271435*/            OPC_RecordChild1, // #2 = $src2
/*271436*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*271438*/            OPC_CheckPredicate, 9, // Predicate_load
/*271440*/            OPC_MoveParent,
/*271441*/            OPC_RecordChild1, // #3 = $src1
/*271442*/            OPC_MoveParent,
/*271443*/            OPC_MoveChild2,
/*271444*/            OPC_CheckImmAllZerosV,
/*271445*/            OPC_MoveParent,
/*271446*/            OPC_SwitchType /*2 cases */, 19, MVT::v32i8,// ->271468
/*271449*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*271451*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*271454*/              OPC_EmitMergeInputChains1_1,
/*271455*/              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] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v32i8] }:$src1), immAllZerosV:{ *:[v32i8] }) - Complexity = 32
                        // Dst: (VPMINUBZ256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*271468*/            /*SwitchType*/ 19, MVT::v32i16,// ->271489
/*271470*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*271472*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*271475*/              OPC_EmitMergeInputChains1_1,
/*271476*/              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] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1), immAllZerosV:{ *:[v32i16] }) - Complexity = 32
                        // Dst: (VPMINUWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*271489*/            0, // EndSwitchType
/*271490*/          /*Scope*/ 62, /*->271553*/
/*271491*/            OPC_RecordChild0, // #1 = $src1
/*271492*/            OPC_MoveChild1,
/*271493*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*271496*/            OPC_RecordMemRef,
/*271497*/            OPC_RecordNode, // #2 = 'ld' chained node
/*271498*/            OPC_CheckFoldableChainNode,
/*271499*/            OPC_RecordChild1, // #3 = $src2
/*271500*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*271502*/            OPC_CheckPredicate, 9, // Predicate_load
/*271504*/            OPC_MoveParent,
/*271505*/            OPC_MoveParent,
/*271506*/            OPC_RecordChild2, // #4 = $src0
/*271507*/            OPC_SwitchType /*2 cases */, 20, MVT::v32i8,// ->271530
/*271510*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*271512*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*271515*/              OPC_EmitMergeInputChains1_2,
/*271516*/              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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v32i8] }:$src0) - Complexity = 28
                        // Dst: (VPMINUBZ256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*271530*/            /*SwitchType*/ 20, MVT::v32i16,// ->271552
/*271532*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*271534*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*271537*/              OPC_EmitMergeInputChains1_2,
/*271538*/              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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v32i16] }:$src0) - Complexity = 28
                        // Dst: (VPMINUWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*271552*/            0, // EndSwitchType
/*271553*/          /*Scope*/ 62, /*->271616*/
/*271554*/            OPC_MoveChild0,
/*271555*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*271558*/            OPC_RecordMemRef,
/*271559*/            OPC_RecordNode, // #1 = 'ld' chained node
/*271560*/            OPC_CheckFoldableChainNode,
/*271561*/            OPC_RecordChild1, // #2 = $src2
/*271562*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*271564*/            OPC_CheckPredicate, 9, // Predicate_load
/*271566*/            OPC_MoveParent,
/*271567*/            OPC_RecordChild1, // #3 = $src1
/*271568*/            OPC_MoveParent,
/*271569*/            OPC_RecordChild2, // #4 = $src0
/*271570*/            OPC_SwitchType /*2 cases */, 20, MVT::v32i8,// ->271593
/*271573*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*271575*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*271578*/              OPC_EmitMergeInputChains1_1,
/*271579*/              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] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v32i8] }:$src1), VR256X:{ *:[v32i8] }:$src0) - Complexity = 28
                        // Dst: (VPMINUBZ256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*271593*/            /*SwitchType*/ 20, MVT::v32i16,// ->271615
/*271595*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*271597*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*271600*/              OPC_EmitMergeInputChains1_1,
/*271601*/              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] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1), VR512:{ *:[v32i16] }:$src0) - Complexity = 28
                        // Dst: (VPMINUWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*271615*/            0, // EndSwitchType
/*271616*/          0, /*End of Scope*/
/*271617*/        /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VSHL),// ->271688
/*271620*/          OPC_RecordChild0, // #1 = $src1
/*271621*/          OPC_MoveChild1,
/*271622*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*271625*/          OPC_RecordMemRef,
/*271626*/          OPC_RecordNode, // #2 = 'ld' chained node
/*271627*/          OPC_CheckFoldableChainNode,
/*271628*/          OPC_RecordChild1, // #3 = $src2
/*271629*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*271631*/          OPC_CheckPredicate, 9, // Predicate_load
/*271633*/          OPC_CheckType, MVT::v8i16,
/*271635*/          OPC_MoveParent,
/*271636*/          OPC_MoveParent,
/*271637*/          OPC_Scope, 24, /*->271663*/ // 2 children in Scope
/*271639*/            OPC_MoveChild2,
/*271640*/            OPC_CheckImmAllZerosV,
/*271641*/            OPC_MoveParent,
/*271642*/            OPC_CheckType, MVT::v32i16,
/*271644*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*271646*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*271649*/            OPC_EmitMergeInputChains1_2,
/*271650*/            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:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v32i16] }) - Complexity = 32
                      // Dst: (VPSLLWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*271663*/          /*Scope*/ 23, /*->271687*/
/*271664*/            OPC_RecordChild2, // #4 = $src0
/*271665*/            OPC_CheckType, MVT::v32i16,
/*271667*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*271669*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*271672*/            OPC_EmitMergeInputChains1_2,
/*271673*/            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:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v32i16] }:$src0) - Complexity = 28
                      // Dst: (VPSLLWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*271687*/          0, /*End of Scope*/
/*271688*/        /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VSRA),// ->271759
/*271691*/          OPC_RecordChild0, // #1 = $src1
/*271692*/          OPC_MoveChild1,
/*271693*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*271696*/          OPC_RecordMemRef,
/*271697*/          OPC_RecordNode, // #2 = 'ld' chained node
/*271698*/          OPC_CheckFoldableChainNode,
/*271699*/          OPC_RecordChild1, // #3 = $src2
/*271700*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*271702*/          OPC_CheckPredicate, 9, // Predicate_load
/*271704*/          OPC_CheckType, MVT::v8i16,
/*271706*/          OPC_MoveParent,
/*271707*/          OPC_MoveParent,
/*271708*/          OPC_Scope, 24, /*->271734*/ // 2 children in Scope
/*271710*/            OPC_MoveChild2,
/*271711*/            OPC_CheckImmAllZerosV,
/*271712*/            OPC_MoveParent,
/*271713*/            OPC_CheckType, MVT::v32i16,
/*271715*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*271717*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*271720*/            OPC_EmitMergeInputChains1_2,
/*271721*/            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:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v32i16] }) - Complexity = 32
                      // Dst: (VPSRAWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*271734*/          /*Scope*/ 23, /*->271758*/
/*271735*/            OPC_RecordChild2, // #4 = $src0
/*271736*/            OPC_CheckType, MVT::v32i16,
/*271738*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*271740*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*271743*/            OPC_EmitMergeInputChains1_2,
/*271744*/            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:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v32i16] }:$src0) - Complexity = 28
                      // Dst: (VPSRAWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*271758*/          0, /*End of Scope*/
/*271759*/        /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VSRL),// ->271830
/*271762*/          OPC_RecordChild0, // #1 = $src1
/*271763*/          OPC_MoveChild1,
/*271764*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*271767*/          OPC_RecordMemRef,
/*271768*/          OPC_RecordNode, // #2 = 'ld' chained node
/*271769*/          OPC_CheckFoldableChainNode,
/*271770*/          OPC_RecordChild1, // #3 = $src2
/*271771*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*271773*/          OPC_CheckPredicate, 9, // Predicate_load
/*271775*/          OPC_CheckType, MVT::v8i16,
/*271777*/          OPC_MoveParent,
/*271778*/          OPC_MoveParent,
/*271779*/          OPC_Scope, 24, /*->271805*/ // 2 children in Scope
/*271781*/            OPC_MoveChild2,
/*271782*/            OPC_CheckImmAllZerosV,
/*271783*/            OPC_MoveParent,
/*271784*/            OPC_CheckType, MVT::v32i16,
/*271786*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*271788*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*271791*/            OPC_EmitMergeInputChains1_2,
/*271792*/            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:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v32i16] }) - Complexity = 32
                      // Dst: (VPSRLWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*271805*/          /*Scope*/ 23, /*->271829*/
/*271806*/            OPC_RecordChild2, // #4 = $src0
/*271807*/            OPC_CheckType, MVT::v32i16,
/*271809*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*271811*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*271814*/            OPC_EmitMergeInputChains1_2,
/*271815*/            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:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v32i16] }:$src0) - Complexity = 28
                      // Dst: (VPSRLWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*271829*/          0, /*End of Scope*/
/*271830*/        /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VSHLV),// ->271899
/*271833*/          OPC_RecordChild0, // #1 = $src1
/*271834*/          OPC_MoveChild1,
/*271835*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*271838*/          OPC_RecordMemRef,
/*271839*/          OPC_RecordNode, // #2 = 'ld' chained node
/*271840*/          OPC_CheckFoldableChainNode,
/*271841*/          OPC_RecordChild1, // #3 = $src2
/*271842*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*271844*/          OPC_CheckPredicate, 9, // Predicate_load
/*271846*/          OPC_MoveParent,
/*271847*/          OPC_MoveParent,
/*271848*/          OPC_Scope, 24, /*->271874*/ // 2 children in Scope
/*271850*/            OPC_MoveChild2,
/*271851*/            OPC_CheckImmAllZerosV,
/*271852*/            OPC_MoveParent,
/*271853*/            OPC_CheckType, MVT::v32i16,
/*271855*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*271857*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*271860*/            OPC_EmitMergeInputChains1_2,
/*271861*/            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, (X86vshlv:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v32i16] }) - Complexity = 32
                      // Dst: (VPSLLVWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*271874*/          /*Scope*/ 23, /*->271898*/
/*271875*/            OPC_RecordChild2, // #4 = $src0
/*271876*/            OPC_CheckType, MVT::v32i16,
/*271878*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*271880*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*271883*/            OPC_EmitMergeInputChains1_2,
/*271884*/            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, (X86vshlv:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v32i16] }:$src0) - Complexity = 28
                      // Dst: (VPSLLVWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*271898*/          0, /*End of Scope*/
/*271899*/        /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VSRAV),// ->271968
/*271902*/          OPC_RecordChild0, // #1 = $src1
/*271903*/          OPC_MoveChild1,
/*271904*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*271907*/          OPC_RecordMemRef,
/*271908*/          OPC_RecordNode, // #2 = 'ld' chained node
/*271909*/          OPC_CheckFoldableChainNode,
/*271910*/          OPC_RecordChild1, // #3 = $src2
/*271911*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*271913*/          OPC_CheckPredicate, 9, // Predicate_load
/*271915*/          OPC_MoveParent,
/*271916*/          OPC_MoveParent,
/*271917*/          OPC_Scope, 24, /*->271943*/ // 2 children in Scope
/*271919*/            OPC_MoveChild2,
/*271920*/            OPC_CheckImmAllZerosV,
/*271921*/            OPC_MoveParent,
/*271922*/            OPC_CheckType, MVT::v32i16,
/*271924*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*271926*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*271929*/            OPC_EmitMergeInputChains1_2,
/*271930*/            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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v32i16] }) - Complexity = 32
                      // Dst: (VPSRAVWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*271943*/          /*Scope*/ 23, /*->271967*/
/*271944*/            OPC_RecordChild2, // #4 = $src0
/*271945*/            OPC_CheckType, MVT::v32i16,
/*271947*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*271949*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*271952*/            OPC_EmitMergeInputChains1_2,
/*271953*/            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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v32i16] }:$src0) - Complexity = 28
                      // Dst: (VPSRAVWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*271967*/          0, /*End of Scope*/
/*271968*/        /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VSRLV),// ->272037
/*271971*/          OPC_RecordChild0, // #1 = $src1
/*271972*/          OPC_MoveChild1,
/*271973*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*271976*/          OPC_RecordMemRef,
/*271977*/          OPC_RecordNode, // #2 = 'ld' chained node
/*271978*/          OPC_CheckFoldableChainNode,
/*271979*/          OPC_RecordChild1, // #3 = $src2
/*271980*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*271982*/          OPC_CheckPredicate, 9, // Predicate_load
/*271984*/          OPC_MoveParent,
/*271985*/          OPC_MoveParent,
/*271986*/          OPC_Scope, 24, /*->272012*/ // 2 children in Scope
/*271988*/            OPC_MoveChild2,
/*271989*/            OPC_CheckImmAllZerosV,
/*271990*/            OPC_MoveParent,
/*271991*/            OPC_CheckType, MVT::v32i16,
/*271993*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*271995*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*271998*/            OPC_EmitMergeInputChains1_2,
/*271999*/            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, (X86vsrlv:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v32i16] }) - Complexity = 32
                      // Dst: (VPSRLVWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*272012*/          /*Scope*/ 23, /*->272036*/
/*272013*/            OPC_RecordChild2, // #4 = $src0
/*272014*/            OPC_CheckType, MVT::v32i16,
/*272016*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*272018*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*272021*/            OPC_EmitMergeInputChains1_2,
/*272022*/            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, (X86vsrlv:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v32i16] }:$src0) - Complexity = 28
                      // Dst: (VPSRLVWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*272036*/          0, /*End of Scope*/
/*272037*/        /*SwitchOpcode*/ 113, TARGET_VAL(X86ISD::VPERMV),// ->272153
/*272040*/          OPC_RecordChild0, // #1 = $src1
/*272041*/          OPC_MoveChild1,
/*272042*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*272045*/          OPC_RecordMemRef,
/*272046*/          OPC_RecordNode, // #2 = 'ld' chained node
/*272047*/          OPC_CheckFoldableChainNode,
/*272048*/          OPC_RecordChild1, // #3 = $src2
/*272049*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*272051*/          OPC_CheckPredicate, 9, // Predicate_load
/*272053*/          OPC_MoveParent,
/*272054*/          OPC_MoveParent,
/*272055*/          OPC_Scope, 47, /*->272104*/ // 2 children in Scope
/*272057*/            OPC_MoveChild2,
/*272058*/            OPC_CheckImmAllZerosV,
/*272059*/            OPC_MoveParent,
/*272060*/            OPC_SwitchType /*2 cases */, 19, MVT::v32i16,// ->272082
/*272063*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*272065*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*272068*/              OPC_EmitMergeInputChains1_2,
/*272069*/              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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v32i16] }) - Complexity = 32
                        // Dst: (VPERMWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*272082*/            /*SwitchType*/ 19, MVT::v32i8,// ->272103
/*272084*/              OPC_CheckPatternPredicate, 181, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*272086*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*272089*/              OPC_EmitMergeInputChains1_2,
/*272090*/              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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v32i8] }) - Complexity = 32
                        // Dst: (VPERMBZ256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*272103*/            0, // EndSwitchType
/*272104*/          /*Scope*/ 47, /*->272152*/
/*272105*/            OPC_RecordChild2, // #4 = $src0
/*272106*/            OPC_SwitchType /*2 cases */, 20, MVT::v32i16,// ->272129
/*272109*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*272111*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*272114*/              OPC_EmitMergeInputChains1_2,
/*272115*/              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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v32i16] }:$src0) - Complexity = 28
                        // Dst: (VPERMWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*272129*/            /*SwitchType*/ 20, MVT::v32i8,// ->272151
/*272131*/              OPC_CheckPatternPredicate, 181, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*272133*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*272136*/              OPC_EmitMergeInputChains1_2,
/*272137*/              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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v32i8] }:$src0) - Complexity = 28
                        // Dst: (VPERMBZ256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*272151*/            0, // EndSwitchType
/*272152*/          0, /*End of Scope*/
/*272153*/        /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::PSHUFB),// ->272222
/*272156*/          OPC_RecordChild0, // #1 = $src1
/*272157*/          OPC_MoveChild1,
/*272158*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*272161*/          OPC_RecordMemRef,
/*272162*/          OPC_RecordNode, // #2 = 'ld' chained node
/*272163*/          OPC_CheckFoldableChainNode,
/*272164*/          OPC_RecordChild1, // #3 = $src2
/*272165*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*272167*/          OPC_CheckPredicate, 9, // Predicate_load
/*272169*/          OPC_MoveParent,
/*272170*/          OPC_MoveParent,
/*272171*/          OPC_Scope, 24, /*->272197*/ // 2 children in Scope
/*272173*/            OPC_MoveChild2,
/*272174*/            OPC_CheckImmAllZerosV,
/*272175*/            OPC_MoveParent,
/*272176*/            OPC_CheckType, MVT::v32i8,
/*272178*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*272180*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*272183*/            OPC_EmitMergeInputChains1_2,
/*272184*/            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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v32i8] }) - Complexity = 32
                      // Dst: (VPSHUFBZ256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*272197*/          /*Scope*/ 23, /*->272221*/
/*272198*/            OPC_RecordChild2, // #4 = $src0
/*272199*/            OPC_CheckType, MVT::v32i8,
/*272201*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*272203*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*272206*/            OPC_EmitMergeInputChains1_2,
/*272207*/            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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v32i8] }:$src0) - Complexity = 28
                      // Dst: (VPSHUFBZ256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*272221*/          0, /*End of Scope*/
/*272222*/        /*SwitchOpcode*/ 108, TARGET_VAL(ISD::ABS),// ->272333
/*272225*/          OPC_MoveChild0,
/*272226*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*272229*/          OPC_RecordMemRef,
/*272230*/          OPC_RecordNode, // #1 = 'ld' chained node
/*272231*/          OPC_CheckFoldableChainNode,
/*272232*/          OPC_RecordChild1, // #2 = $src1
/*272233*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*272235*/          OPC_CheckPredicate, 9, // Predicate_load
/*272237*/          OPC_MoveParent,
/*272238*/          OPC_MoveParent,
/*272239*/          OPC_Scope, 45, /*->272286*/ // 2 children in Scope
/*272241*/            OPC_MoveChild2,
/*272242*/            OPC_CheckImmAllZerosV,
/*272243*/            OPC_MoveParent,
/*272244*/            OPC_SwitchType /*2 cases */, 18, MVT::v32i16,// ->272265
/*272247*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*272249*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*272252*/              OPC_EmitMergeInputChains1_1,
/*272253*/              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] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v32i16] }) - Complexity = 32
                        // Dst: (VPABSWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*272265*/            /*SwitchType*/ 18, MVT::v32i8,// ->272285
/*272267*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*272269*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*272272*/              OPC_EmitMergeInputChains1_1,
/*272273*/              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] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v32i8] }) - Complexity = 32
                        // Dst: (VPABSBZ256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*272285*/            0, // EndSwitchType
/*272286*/          /*Scope*/ 45, /*->272332*/
/*272287*/            OPC_RecordChild2, // #3 = $src0
/*272288*/            OPC_SwitchType /*2 cases */, 19, MVT::v32i16,// ->272310
/*272291*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*272293*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*272296*/              OPC_EmitMergeInputChains1_1,
/*272297*/              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] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v32i16] }:$src0) - Complexity = 28
                        // Dst: (VPABSWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*272310*/            /*SwitchType*/ 19, MVT::v32i8,// ->272331
/*272312*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*272314*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*272317*/              OPC_EmitMergeInputChains1_1,
/*272318*/              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] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v32i8] }:$src0) - Complexity = 28
                        // Dst: (VPABSBZ256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*272331*/            0, // EndSwitchType
/*272332*/          0, /*End of Scope*/
/*272333*/        /*SwitchOpcode*/ 113, TARGET_VAL(X86ISD::UNPCKL),// ->272449
/*272336*/          OPC_RecordChild0, // #1 = $src1
/*272337*/          OPC_MoveChild1,
/*272338*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*272341*/          OPC_RecordMemRef,
/*272342*/          OPC_RecordNode, // #2 = 'ld' chained node
/*272343*/          OPC_CheckFoldableChainNode,
/*272344*/          OPC_RecordChild1, // #3 = $src2
/*272345*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*272347*/          OPC_CheckPredicate, 9, // Predicate_load
/*272349*/          OPC_MoveParent,
/*272350*/          OPC_MoveParent,
/*272351*/          OPC_Scope, 47, /*->272400*/ // 2 children in Scope
/*272353*/            OPC_MoveChild2,
/*272354*/            OPC_CheckImmAllZerosV,
/*272355*/            OPC_MoveParent,
/*272356*/            OPC_SwitchType /*2 cases */, 19, MVT::v32i8,// ->272378
/*272359*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*272361*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*272364*/              OPC_EmitMergeInputChains1_2,
/*272365*/              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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v32i8] }) - Complexity = 32
                        // Dst: (VPUNPCKLBWZ256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*272378*/            /*SwitchType*/ 19, MVT::v32i16,// ->272399
/*272380*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*272382*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*272385*/              OPC_EmitMergeInputChains1_2,
/*272386*/              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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v32i16] }) - Complexity = 32
                        // Dst: (VPUNPCKLWDZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*272399*/            0, // EndSwitchType
/*272400*/          /*Scope*/ 47, /*->272448*/
/*272401*/            OPC_RecordChild2, // #4 = $src0
/*272402*/            OPC_SwitchType /*2 cases */, 20, MVT::v32i8,// ->272425
/*272405*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*272407*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*272410*/              OPC_EmitMergeInputChains1_2,
/*272411*/              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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v32i8] }:$src0) - Complexity = 28
                        // Dst: (VPUNPCKLBWZ256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*272425*/            /*SwitchType*/ 20, MVT::v32i16,// ->272447
/*272427*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*272429*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*272432*/              OPC_EmitMergeInputChains1_2,
/*272433*/              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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v32i16] }:$src0) - Complexity = 28
                        // Dst: (VPUNPCKLWDZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*272447*/            0, // EndSwitchType
/*272448*/          0, /*End of Scope*/
/*272449*/        /*SwitchOpcode*/ 113, TARGET_VAL(X86ISD::UNPCKH),// ->272565
/*272452*/          OPC_RecordChild0, // #1 = $src1
/*272453*/          OPC_MoveChild1,
/*272454*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*272457*/          OPC_RecordMemRef,
/*272458*/          OPC_RecordNode, // #2 = 'ld' chained node
/*272459*/          OPC_CheckFoldableChainNode,
/*272460*/          OPC_RecordChild1, // #3 = $src2
/*272461*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*272463*/          OPC_CheckPredicate, 9, // Predicate_load
/*272465*/          OPC_MoveParent,
/*272466*/          OPC_MoveParent,
/*272467*/          OPC_Scope, 47, /*->272516*/ // 2 children in Scope
/*272469*/            OPC_MoveChild2,
/*272470*/            OPC_CheckImmAllZerosV,
/*272471*/            OPC_MoveParent,
/*272472*/            OPC_SwitchType /*2 cases */, 19, MVT::v32i8,// ->272494
/*272475*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*272477*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*272480*/              OPC_EmitMergeInputChains1_2,
/*272481*/              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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v32i8] }) - Complexity = 32
                        // Dst: (VPUNPCKHBWZ256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*272494*/            /*SwitchType*/ 19, MVT::v32i16,// ->272515
/*272496*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*272498*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*272501*/              OPC_EmitMergeInputChains1_2,
/*272502*/              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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v32i16] }) - Complexity = 32
                        // Dst: (VPUNPCKHWDZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*272515*/            0, // EndSwitchType
/*272516*/          /*Scope*/ 47, /*->272564*/
/*272517*/            OPC_RecordChild2, // #4 = $src0
/*272518*/            OPC_SwitchType /*2 cases */, 20, MVT::v32i8,// ->272541
/*272521*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*272523*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*272526*/              OPC_EmitMergeInputChains1_2,
/*272527*/              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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v32i8] }:$src0) - Complexity = 28
                        // Dst: (VPUNPCKHBWZ256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*272541*/            /*SwitchType*/ 20, MVT::v32i16,// ->272563
/*272543*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*272545*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*272548*/              OPC_EmitMergeInputChains1_2,
/*272549*/              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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v32i16] }:$src0) - Complexity = 28
                        // Dst: (VPUNPCKHWDZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*272563*/            0, // EndSwitchType
/*272564*/          0, /*End of Scope*/
/*272565*/        /*SwitchOpcode*/ 73, TARGET_VAL(X86ISD::VSHLDV),// ->272641
/*272568*/          OPC_RecordChild0, // #1 = $src1
/*272569*/          OPC_RecordChild1, // #2 = $src2
/*272570*/          OPC_MoveChild2,
/*272571*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*272574*/          OPC_RecordMemRef,
/*272575*/          OPC_RecordNode, // #3 = 'ld' chained node
/*272576*/          OPC_CheckFoldableChainNode,
/*272577*/          OPC_RecordChild1, // #4 = $src3
/*272578*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*272580*/          OPC_CheckPredicate, 9, // Predicate_load
/*272582*/          OPC_MoveParent,
/*272583*/          OPC_MoveParent,
/*272584*/          OPC_Scope, 27, /*->272613*/ // 2 children in Scope
/*272586*/            OPC_MoveChild2,
/*272587*/            OPC_CheckImmAllZerosV,
/*272588*/            OPC_MoveParent,
/*272589*/            OPC_CheckType, MVT::v32i16,
/*272591*/            OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*272593*/            OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*272596*/            OPC_EmitMergeInputChains, 1, 3, 
/*272599*/            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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v32i16] }) - Complexity = 32
                      // Dst: (VPSHLDVWZmkz:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/*272613*/          /*Scope*/ 26, /*->272640*/
/*272614*/            OPC_CheckChild2Same, 1,
/*272616*/            OPC_CheckType, MVT::v32i16,
/*272618*/            OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*272620*/            OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*272623*/            OPC_EmitMergeInputChains, 1, 3, 
/*272626*/            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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v32i16] }:$src1) - Complexity = 28
                      // Dst: (VPSHLDVWZmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/*272640*/          0, /*End of Scope*/
/*272641*/        /*SwitchOpcode*/ 73, TARGET_VAL(X86ISD::VSHRDV),// ->272717
/*272644*/          OPC_RecordChild0, // #1 = $src1
/*272645*/          OPC_RecordChild1, // #2 = $src2
/*272646*/          OPC_MoveChild2,
/*272647*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*272650*/          OPC_RecordMemRef,
/*272651*/          OPC_RecordNode, // #3 = 'ld' chained node
/*272652*/          OPC_CheckFoldableChainNode,
/*272653*/          OPC_RecordChild1, // #4 = $src3
/*272654*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*272656*/          OPC_CheckPredicate, 9, // Predicate_load
/*272658*/          OPC_MoveParent,
/*272659*/          OPC_MoveParent,
/*272660*/          OPC_Scope, 27, /*->272689*/ // 2 children in Scope
/*272662*/            OPC_MoveChild2,
/*272663*/            OPC_CheckImmAllZerosV,
/*272664*/            OPC_MoveParent,
/*272665*/            OPC_CheckType, MVT::v32i16,
/*272667*/            OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*272669*/            OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*272672*/            OPC_EmitMergeInputChains, 1, 3, 
/*272675*/            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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v32i16] }) - Complexity = 32
                      // Dst: (VPSHRDVWZmkz:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/*272689*/          /*Scope*/ 26, /*->272716*/
/*272690*/            OPC_CheckChild2Same, 1,
/*272692*/            OPC_CheckType, MVT::v32i16,
/*272694*/            OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*272696*/            OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*272699*/            OPC_EmitMergeInputChains, 1, 3, 
/*272702*/            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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v32i16] }:$src1) - Complexity = 28
                      // Dst: (VPSHRDVWZmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/*272716*/          0, /*End of Scope*/
/*272717*/        /*SwitchOpcode*/ 120, TARGET_VAL(ISD::CTPOP),// ->272840
/*272720*/          OPC_MoveChild0,
/*272721*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*272724*/          OPC_RecordMemRef,
/*272725*/          OPC_RecordNode, // #1 = 'ld' chained node
/*272726*/          OPC_CheckFoldableChainNode,
/*272727*/          OPC_RecordChild1, // #2 = $src1
/*272728*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*272730*/          OPC_CheckPredicate, 9, // Predicate_load
/*272732*/          OPC_SwitchType /*2 cases */, 51, MVT::v32i8,// ->272786
/*272735*/            OPC_MoveParent,
/*272736*/            OPC_MoveParent,
/*272737*/            OPC_Scope, 23, /*->272762*/ // 2 children in Scope
/*272739*/              OPC_MoveChild2,
/*272740*/              OPC_CheckImmAllZerosV,
/*272741*/              OPC_MoveParent,
/*272742*/              OPC_CheckType, MVT::v32i8,
/*272744*/              OPC_CheckPatternPredicate, 115, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/*272746*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*272749*/              OPC_EmitMergeInputChains1_1,
/*272750*/              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] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v32i8] }) - Complexity = 32
                        // Dst: (VPOPCNTBZ256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*272762*/            /*Scope*/ 22, /*->272785*/
/*272763*/              OPC_RecordChild2, // #3 = $src0
/*272764*/              OPC_CheckType, MVT::v32i8,
/*272766*/              OPC_CheckPatternPredicate, 115, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/*272768*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*272771*/              OPC_EmitMergeInputChains1_1,
/*272772*/              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] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v32i8] }:$src0) - Complexity = 28
                        // Dst: (VPOPCNTBZ256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*272785*/            0, /*End of Scope*/
/*272786*/          /*SwitchType*/ 51, MVT::v32i16,// ->272839
/*272788*/            OPC_MoveParent,
/*272789*/            OPC_MoveParent,
/*272790*/            OPC_Scope, 23, /*->272815*/ // 2 children in Scope
/*272792*/              OPC_MoveChild2,
/*272793*/              OPC_CheckImmAllZerosV,
/*272794*/              OPC_MoveParent,
/*272795*/              OPC_CheckType, MVT::v32i16,
/*272797*/              OPC_CheckPatternPredicate, 114, // (Subtarget->hasBITALG())
/*272799*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*272802*/              OPC_EmitMergeInputChains1_1,
/*272803*/              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] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v32i16] }) - Complexity = 32
                        // Dst: (VPOPCNTWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*272815*/            /*Scope*/ 22, /*->272838*/
/*272816*/              OPC_RecordChild2, // #3 = $src0
/*272817*/              OPC_CheckType, MVT::v32i16,
/*272819*/              OPC_CheckPatternPredicate, 114, // (Subtarget->hasBITALG())
/*272821*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*272824*/              OPC_EmitMergeInputChains1_1,
/*272825*/              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] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v32i16] }:$src0) - Complexity = 28
                        // Dst: (VPOPCNTWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*272838*/            0, /*End of Scope*/
/*272839*/          0, // EndSwitchType
/*272840*/        /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::GF2P8MULB),// ->272909
/*272843*/          OPC_RecordChild0, // #1 = $src1
/*272844*/          OPC_MoveChild1,
/*272845*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*272848*/          OPC_RecordMemRef,
/*272849*/          OPC_RecordNode, // #2 = 'ld' chained node
/*272850*/          OPC_CheckFoldableChainNode,
/*272851*/          OPC_RecordChild1, // #3 = $src2
/*272852*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*272854*/          OPC_CheckPredicate, 9, // Predicate_load
/*272856*/          OPC_MoveParent,
/*272857*/          OPC_MoveParent,
/*272858*/          OPC_Scope, 24, /*->272884*/ // 2 children in Scope
/*272860*/            OPC_MoveChild2,
/*272861*/            OPC_CheckImmAllZerosV,
/*272862*/            OPC_MoveParent,
/*272863*/            OPC_CheckType, MVT::v32i8,
/*272865*/            OPC_CheckPatternPredicate, 180, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*272867*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*272870*/            OPC_EmitMergeInputChains1_2,
/*272871*/            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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v32i8] }) - Complexity = 32
                      // Dst: (VGF2P8MULBZ256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*272884*/          /*Scope*/ 23, /*->272908*/
/*272885*/            OPC_RecordChild2, // #4 = $src0
/*272886*/            OPC_CheckType, MVT::v32i8,
/*272888*/            OPC_CheckPatternPredicate, 180, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*272890*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*272893*/            OPC_EmitMergeInputChains1_2,
/*272894*/            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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v32i8] }:$src0) - Complexity = 28
                      // Dst: (VGF2P8MULBZ256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*272908*/          0, /*End of Scope*/
/*272909*/        /*SwitchOpcode*/ 4|128,1/*132*/, TARGET_VAL(X86ISD::CVTNE2PS2BF16),// ->273045
/*272913*/          OPC_RecordChild0, // #1 = $src1
/*272914*/          OPC_CheckChild0Type, MVT::v16f32,
/*272916*/          OPC_MoveChild1,
/*272917*/          OPC_SwitchOpcode /*2 cases */, 61, TARGET_VAL(ISD::LOAD),// ->272982
/*272921*/            OPC_RecordMemRef,
/*272922*/            OPC_RecordNode, // #2 = 'ld' chained node
/*272923*/            OPC_CheckFoldableChainNode,
/*272924*/            OPC_RecordChild1, // #3 = $src2
/*272925*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*272927*/            OPC_CheckPredicate, 9, // Predicate_load
/*272929*/            OPC_MoveParent,
/*272930*/            OPC_MoveParent,
/*272931*/            OPC_Scope, 24, /*->272957*/ // 2 children in Scope
/*272933*/              OPC_MoveChild2,
/*272934*/              OPC_CheckImmAllZerosV,
/*272935*/              OPC_MoveParent,
/*272936*/              OPC_CheckType, MVT::v32i16,
/*272938*/              OPC_CheckPatternPredicate, 183, // (Subtarget->hasBF16())
/*272940*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*272943*/              OPC_EmitMergeInputChains1_2,
/*272944*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTNE2PS2BF16Zrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86cvtne2ps2bf16:{ *:[v32i16] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v32i16] }) - Complexity = 32
                        // Dst: (VCVTNE2PS2BF16Zrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*272957*/            /*Scope*/ 23, /*->272981*/
/*272958*/              OPC_RecordChild2, // #4 = $src0
/*272959*/              OPC_CheckType, MVT::v32i16,
/*272961*/              OPC_CheckPatternPredicate, 183, // (Subtarget->hasBF16())
/*272963*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*272966*/              OPC_EmitMergeInputChains1_2,
/*272967*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTNE2PS2BF16Zrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86cvtne2ps2bf16:{ *:[v32i16] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v32i16] }:$src0) - Complexity = 28
                        // Dst: (VCVTNE2PS2BF16Zrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*272981*/            0, /*End of Scope*/
/*272982*/          /*SwitchOpcode*/ 59, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->273044
/*272985*/            OPC_RecordMemRef,
/*272986*/            OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*272987*/            OPC_CheckFoldableChainNode,
/*272988*/            OPC_RecordChild1, // #3 = $src2
/*272989*/            OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*272991*/            OPC_MoveParent,
/*272992*/            OPC_MoveParent,
/*272993*/            OPC_Scope, 24, /*->273019*/ // 2 children in Scope
/*272995*/              OPC_MoveChild2,
/*272996*/              OPC_CheckImmAllZerosV,
/*272997*/              OPC_MoveParent,
/*272998*/              OPC_CheckType, MVT::v32i16,
/*273000*/              OPC_CheckPatternPredicate, 183, // (Subtarget->hasBF16())
/*273002*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*273005*/              OPC_EmitMergeInputChains1_2,
/*273006*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTNE2PS2BF16Zrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86cvtne2ps2bf16:{ *:[v32i16] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v32i16] }) - Complexity = 32
                        // Dst: (VCVTNE2PS2BF16Zrmbkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*273019*/            /*Scope*/ 23, /*->273043*/
/*273020*/              OPC_RecordChild2, // #4 = $src0
/*273021*/              OPC_CheckType, MVT::v32i16,
/*273023*/              OPC_CheckPatternPredicate, 183, // (Subtarget->hasBF16())
/*273025*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*273028*/              OPC_EmitMergeInputChains1_2,
/*273029*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTNE2PS2BF16Zrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 8/*#Ops*/, 4, 0, 1, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86cvtne2ps2bf16:{ *:[v32i16] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v32i16] }:$src0) - Complexity = 28
                        // Dst: (VCVTNE2PS2BF16Zrmbk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*273043*/            0, /*End of Scope*/
/*273044*/          0, // EndSwitchOpcode
/*273045*/        /*SwitchOpcode*/ 112, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->273160
/*273048*/          OPC_RecordMemRef,
/*273049*/          OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*273050*/          OPC_CheckFoldableChainNode,
/*273051*/          OPC_RecordChild1, // #2 = $src
/*273052*/          OPC_Scope, 26, /*->273080*/ // 4 children in Scope
/*273054*/            OPC_CheckPredicate, 99, // Predicate_X86VBroadcastld8
/*273056*/            OPC_MoveParent,
/*273057*/            OPC_MoveChild2,
/*273058*/            OPC_CheckImmAllZerosV,
/*273059*/            OPC_MoveParent,
/*273060*/            OPC_CheckType, MVT::v32i8,
/*273062*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*273064*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*273067*/            OPC_EmitMergeInputChains1_1,
/*273068*/            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, (X86VBroadcastld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld8>>, immAllZerosV:{ *:[v32i8] }) - Complexity = 29
                      // Dst: (VPBROADCASTBZ256mkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*273080*/          /*Scope*/ 26, /*->273107*/
/*273081*/            OPC_CheckPredicate, 100, // Predicate_X86VBroadcastld16
/*273083*/            OPC_MoveParent,
/*273084*/            OPC_MoveChild2,
/*273085*/            OPC_CheckImmAllZerosV,
/*273086*/            OPC_MoveParent,
/*273087*/            OPC_CheckType, MVT::v32i16,
/*273089*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*273091*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*273094*/            OPC_EmitMergeInputChains1_1,
/*273095*/            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, (X86VBroadcastld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld16>>, immAllZerosV:{ *:[v32i16] }) - Complexity = 29
                      // Dst: (VPBROADCASTWZmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*273107*/          /*Scope*/ 25, /*->273133*/
/*273108*/            OPC_CheckPredicate, 99, // Predicate_X86VBroadcastld8
/*273110*/            OPC_MoveParent,
/*273111*/            OPC_RecordChild2, // #3 = $src0
/*273112*/            OPC_CheckType, MVT::v32i8,
/*273114*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*273116*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*273119*/            OPC_EmitMergeInputChains1_1,
/*273120*/            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, (X86VBroadcastld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld8>>, VR256X:{ *:[v32i8] }:$src0) - Complexity = 25
                      // Dst: (VPBROADCASTBZ256mk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*273133*/          /*Scope*/ 25, /*->273159*/
/*273134*/            OPC_CheckPredicate, 100, // Predicate_X86VBroadcastld16
/*273136*/            OPC_MoveParent,
/*273137*/            OPC_RecordChild2, // #3 = $src0
/*273138*/            OPC_CheckType, MVT::v32i16,
/*273140*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*273142*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*273145*/            OPC_EmitMergeInputChains1_1,
/*273146*/            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, (X86VBroadcastld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld16>>, VR512:{ *:[v32i16] }:$src0) - Complexity = 25
                      // Dst: (VPBROADCASTWZmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*273159*/          0, /*End of Scope*/
/*273160*/        /*SwitchOpcode*/ 92|128,1/*220*/, TARGET_VAL(ISD::LOAD),// ->273384
/*273164*/          OPC_RecordMemRef,
/*273165*/          OPC_RecordNode, // #1 = 'ld' chained node
/*273166*/          OPC_CheckFoldableChainNode,
/*273167*/          OPC_RecordChild1, // #2 = $src
/*273168*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*273170*/          OPC_Scope, 48, /*->273220*/ // 6 children in Scope
/*273172*/            OPC_CheckPredicate, 9, // Predicate_load
/*273174*/            OPC_MoveParent,
/*273175*/            OPC_MoveChild2,
/*273176*/            OPC_CheckImmAllZerosV,
/*273177*/            OPC_MoveParent,
/*273178*/            OPC_SwitchType /*2 cases */, 18, MVT::v32i8,// ->273199
/*273181*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*273183*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*273186*/              OPC_EmitMergeInputChains1_1,
/*273187*/              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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>, immAllZerosV:{ *:[v32i8] }) - Complexity = 29
                        // Dst: (VMOVDQU8Z256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*273199*/            /*SwitchType*/ 18, MVT::v32i16,// ->273219
/*273201*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*273203*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*273206*/              OPC_EmitMergeInputChains1_1,
/*273207*/              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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>, immAllZerosV:{ *:[v32i16] }) - Complexity = 29
                        // Dst: (VMOVDQU16Zrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*273219*/            0, // EndSwitchType
/*273220*/          /*Scope*/ 28, /*->273249*/
/*273221*/            OPC_CheckPredicate, 53, // Predicate_zextload
/*273223*/            OPC_CheckPredicate, 75, // Predicate_zextloadvi8
/*273225*/            OPC_MoveParent,
/*273226*/            OPC_MoveChild2,
/*273227*/            OPC_CheckImmAllZerosV,
/*273228*/            OPC_MoveParent,
/*273229*/            OPC_CheckType, MVT::v32i16,
/*273231*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*273233*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*273236*/            OPC_EmitMergeInputChains1_1,
/*273237*/            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>>, immAllZerosV:{ *:[v32i16] }) - Complexity = 29
                      // Dst: (VPMOVZXBWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*273249*/          /*Scope*/ 28, /*->273278*/
/*273250*/            OPC_CheckPredicate, 68, // Predicate_sextload
/*273252*/            OPC_CheckPredicate, 75, // Predicate_sextloadvi8
/*273254*/            OPC_MoveParent,
/*273255*/            OPC_MoveChild2,
/*273256*/            OPC_CheckImmAllZerosV,
/*273257*/            OPC_MoveParent,
/*273258*/            OPC_CheckType, MVT::v32i16,
/*273260*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*273262*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*273265*/            OPC_EmitMergeInputChains1_1,
/*273266*/            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>>, immAllZerosV:{ *:[v32i16] }) - Complexity = 29
                      // Dst: (VPMOVSXBWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*273278*/          /*Scope*/ 48, /*->273327*/
/*273279*/            OPC_CheckPredicate, 9, // Predicate_load
/*273281*/            OPC_MoveParent,
/*273282*/            OPC_RecordChild2, // #3 = $src0
/*273283*/            OPC_SwitchType /*2 cases */, 19, MVT::v32i8,// ->273305
/*273286*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*273288*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*273291*/              OPC_EmitMergeInputChains1_1,
/*273292*/              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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v32i8] }:$src0) - Complexity = 25
                        // Dst: (VMOVDQU8Z256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*273305*/            /*SwitchType*/ 19, MVT::v32i16,// ->273326
/*273307*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*273309*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*273312*/              OPC_EmitMergeInputChains1_1,
/*273313*/              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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src0) - Complexity = 25
                        // Dst: (VMOVDQU16Zrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*273326*/            0, // EndSwitchType
/*273327*/          /*Scope*/ 27, /*->273355*/
/*273328*/            OPC_CheckPredicate, 53, // Predicate_zextload
/*273330*/            OPC_CheckPredicate, 75, // Predicate_zextloadvi8
/*273332*/            OPC_MoveParent,
/*273333*/            OPC_RecordChild2, // #3 = $src0
/*273334*/            OPC_CheckType, MVT::v32i16,
/*273336*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*273338*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*273341*/            OPC_EmitMergeInputChains1_1,
/*273342*/            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)
/*273355*/          /*Scope*/ 27, /*->273383*/
/*273356*/            OPC_CheckPredicate, 68, // Predicate_sextload
/*273358*/            OPC_CheckPredicate, 75, // Predicate_sextloadvi8
/*273360*/            OPC_MoveParent,
/*273361*/            OPC_RecordChild2, // #3 = $src0
/*273362*/            OPC_CheckType, MVT::v32i16,
/*273364*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*273366*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*273369*/            OPC_EmitMergeInputChains1_1,
/*273370*/            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)
/*273383*/          0, /*End of Scope*/
/*273384*/        0, // EndSwitchOpcode
/*273385*/      0, /*End of Scope*/
/*273386*/    /*Scope*/ 88, /*->273475*/
/*273387*/      OPC_MoveChild0,
/*273388*/      OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*273391*/      OPC_Scope, 40, /*->273433*/ // 2 children in Scope
/*273393*/        OPC_RecordChild0, // #0 = $mask
/*273394*/        OPC_MoveChild1,
/*273395*/        OPC_CheckImmAllOnesV,
/*273396*/        OPC_MoveParent,
/*273397*/        OPC_SwitchType /*2 cases */, 15, MVT::v8i1,// ->273415
/*273400*/          OPC_MoveParent,
/*273401*/          OPC_MoveChild1,
/*273402*/          OPC_CheckImmAllZerosV,
/*273403*/          OPC_MoveParent,
/*273404*/          OPC_RecordChild2, // #1 = $src
/*273405*/          OPC_CheckType, MVT::v8i64,
/*273407*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Zrrkz), 0,
                        MVT::v8i64, 2/*#Ops*/, 0, 1, 
                    // Src: (vselect:{ *:[v8i64] } (xor:{ *:[v8i1] } VK8:{ *:[v8i1] }:$mask, immAllOnesV:{ *:[v8i1] }), immAllZerosV:{ *:[v8i64] }, VR512:{ *:[v8i64] }:$src) - Complexity = 14
                    // Dst: (VMOVDQA64Zrrkz:{ *:[v8i64] } VK8:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*273415*/        /*SwitchType*/ 15, MVT::v16i1,// ->273432
/*273417*/          OPC_MoveParent,
/*273418*/          OPC_MoveChild1,
/*273419*/          OPC_CheckImmAllZerosV,
/*273420*/          OPC_MoveParent,
/*273421*/          OPC_RecordChild2, // #1 = $src
/*273422*/          OPC_CheckType, MVT::v16i32,
/*273424*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA32Zrrkz), 0,
                        MVT::v16i32, 2/*#Ops*/, 0, 1, 
                    // Src: (vselect:{ *:[v16i32] } (xor:{ *:[v16i1] } VK16:{ *:[v16i1] }:$mask, immAllOnesV:{ *:[v16i1] }), immAllZerosV:{ *:[v16i32] }, VR512:{ *:[v16i32] }:$src) - Complexity = 14
                    // Dst: (VMOVDQA32Zrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)
/*273432*/        0, // EndSwitchType
/*273433*/      /*Scope*/ 40, /*->273474*/
/*273434*/        OPC_MoveChild0,
/*273435*/        OPC_CheckImmAllOnesV,
/*273436*/        OPC_MoveParent,
/*273437*/        OPC_RecordChild1, // #0 = $mask
/*273438*/        OPC_SwitchType /*2 cases */, 15, MVT::v8i1,// ->273456
/*273441*/          OPC_MoveParent,
/*273442*/          OPC_MoveChild1,
/*273443*/          OPC_CheckImmAllZerosV,
/*273444*/          OPC_MoveParent,
/*273445*/          OPC_RecordChild2, // #1 = $src
/*273446*/          OPC_CheckType, MVT::v8i64,
/*273448*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Zrrkz), 0,
                        MVT::v8i64, 2/*#Ops*/, 0, 1, 
                    // Src: (vselect:{ *:[v8i64] } (xor:{ *:[v8i1] } immAllOnesV:{ *:[v8i1] }, VK8:{ *:[v8i1] }:$mask), immAllZerosV:{ *:[v8i64] }, VR512:{ *:[v8i64] }:$src) - Complexity = 14
                    // Dst: (VMOVDQA64Zrrkz:{ *:[v8i64] } VK8:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*273456*/        /*SwitchType*/ 15, MVT::v16i1,// ->273473
/*273458*/          OPC_MoveParent,
/*273459*/          OPC_MoveChild1,
/*273460*/          OPC_CheckImmAllZerosV,
/*273461*/          OPC_MoveParent,
/*273462*/          OPC_RecordChild2, // #1 = $src
/*273463*/          OPC_CheckType, MVT::v16i32,
/*273465*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA32Zrrkz), 0,
                        MVT::v16i32, 2/*#Ops*/, 0, 1, 
                    // Src: (vselect:{ *:[v16i32] } (xor:{ *:[v16i1] } immAllOnesV:{ *:[v16i1] }, VK16:{ *:[v16i1] }:$mask), immAllZerosV:{ *:[v16i32] }, VR512:{ *:[v16i32] }:$src) - Complexity = 14
                    // Dst: (VMOVDQA32Zrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)
/*273473*/        0, // EndSwitchType
/*273474*/      0, /*End of Scope*/
/*273475*/    /*Scope*/ 45|128,2|128,9/*147757*/, /*->421235*/
/*273478*/      OPC_RecordChild0, // #0 = $mask
/*273479*/      OPC_Scope, 40|128,122|128,2/*48424*/, /*->321907*/ // 6 children in Scope
/*273483*/        OPC_CheckChild0Type, MVT::v8i1,
/*273485*/        OPC_Scope, 100, /*->273587*/ // 25 children in Scope
/*273487*/          OPC_RecordChild1, // #1 = $src3
/*273488*/          OPC_MoveChild1,
/*273489*/          OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*273492*/          OPC_RecordChild0, // #2 = $src1
/*273493*/          OPC_RecordChild1, // #3 = $src2
/*273494*/          OPC_Scope, 28, /*->273524*/ // 3 children in Scope
/*273496*/            OPC_MoveChild2,
/*273497*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*273500*/            OPC_CheckType, MVT::iPTR,
/*273502*/            OPC_MoveParent,
/*273503*/            OPC_MoveParent,
/*273504*/            OPC_MoveChild2,
/*273505*/            OPC_CheckImmAllZerosV,
/*273506*/            OPC_MoveParent,
/*273507*/            OPC_CheckType, MVT::v8i32,
/*273509*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*273511*/            OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*273514*/            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, immAllZerosV:{ *:[v8i32] }) - 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))
/*273524*/          /*Scope*/ 30, /*->273555*/
/*273525*/            OPC_CheckChild1Type, MVT::v4i64,
/*273527*/            OPC_MoveChild2,
/*273528*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*273531*/            OPC_CheckType, MVT::iPTR,
/*273533*/            OPC_MoveParent,
/*273534*/            OPC_MoveParent,
/*273535*/            OPC_MoveChild2,
/*273536*/            OPC_CheckImmAllZerosV,
/*273537*/            OPC_MoveParent,
/*273538*/            OPC_CheckType, MVT::v8i64,
/*273540*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*273542*/            OPC_EmitNodeXForm, 16, 1, // INSERT_get_vinsert256_imm
/*273545*/            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, immAllZerosV:{ *:[v8i64] }) - Complexity = 13
                      // 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))
/*273555*/          /*Scope*/ 30, /*->273586*/
/*273556*/            OPC_CheckChild1Type, MVT::v2i64,
/*273558*/            OPC_MoveChild2,
/*273559*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*273562*/            OPC_CheckType, MVT::iPTR,
/*273564*/            OPC_MoveParent,
/*273565*/            OPC_MoveParent,
/*273566*/            OPC_MoveChild2,
/*273567*/            OPC_CheckImmAllZerosV,
/*273568*/            OPC_MoveParent,
/*273569*/            OPC_CheckType, MVT::v8i64,
/*273571*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*273573*/            OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*273576*/            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, immAllZerosV:{ *:[v8i64] }) - Complexity = 13
                      // 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))
/*273586*/          0, /*End of Scope*/
/*273587*/        /*Scope*/ 3|128,14/*1795*/, /*->275384*/
/*273589*/          OPC_MoveChild1,
/*273590*/          OPC_Scope, 88|128,7/*984*/, /*->274577*/ // 19 children in Scope
/*273593*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*273596*/            OPC_Scope, 83, /*->273681*/ // 4 children in Scope
/*273598*/              OPC_RecordChild0, // #1 = $ext
/*273599*/              OPC_MoveChild0,
/*273600*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/*273603*/              OPC_RecordChild0, // #2 = $src
/*273604*/              OPC_MoveChild1,
/*273605*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*273608*/              OPC_CheckType, MVT::iPTR,
/*273610*/              OPC_MoveParent,
/*273611*/              OPC_CheckPredicate, 18, // Predicate_vextract256_extract
/*273613*/              OPC_SwitchType /*3 cases */, 20, MVT::v4i64,// ->273636
/*273616*/                OPC_MoveParent,
/*273617*/                OPC_MoveParent,
/*273618*/                OPC_RecordChild2, // #3 = $src0
/*273619*/                OPC_CheckType, MVT::v8i32,
/*273621*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*273623*/                OPC_EmitNodeXForm, 1, 1, // EXTRACT_get_vextract256_imm
/*273626*/                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] }))<<P:Predicate_vextract256_extract>><<X:EXTRACT_get_vextract256_imm>>:$ext), VR256X:{ *:[v8i32] }:$src0) - Complexity = 13
                          // Dst: (VEXTRACTI32x8Zrrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src, (EXTRACT_get_vextract256_imm:{ *:[i8] } VR256X:{ *:[v4i64] }:$ext))
/*273636*/              /*SwitchType*/ 20, MVT::v16i16,// ->273658
/*273638*/                OPC_MoveParent,
/*273639*/                OPC_MoveParent,
/*273640*/                OPC_RecordChild2, // #3 = $src0
/*273641*/                OPC_CheckType, MVT::v8i32,
/*273643*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*273645*/                OPC_EmitNodeXForm, 1, 1, // EXTRACT_get_vextract256_imm
/*273648*/                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] }))<<P:Predicate_vextract256_extract>><<X:EXTRACT_get_vextract256_imm>>:$ext), VR256X:{ *:[v8i32] }:$src0) - Complexity = 13
                          // Dst: (VEXTRACTI32x8Zrrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v32i16] }:$src, (EXTRACT_get_vextract256_imm:{ *:[i8] } VR256X:{ *:[v16i16] }:$ext))
/*273658*/              /*SwitchType*/ 20, MVT::v32i8,// ->273680
/*273660*/                OPC_MoveParent,
/*273661*/                OPC_MoveParent,
/*273662*/                OPC_RecordChild2, // #3 = $src0
/*273663*/                OPC_CheckType, MVT::v8i32,
/*273665*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*273667*/                OPC_EmitNodeXForm, 1, 1, // EXTRACT_get_vextract256_imm
/*273670*/                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] }))<<P:Predicate_vextract256_extract>><<X:EXTRACT_get_vextract256_imm>>:$ext), VR256X:{ *:[v8i32] }:$src0) - Complexity = 13
                          // Dst: (VEXTRACTI32x8Zrrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v64i8] }:$src, (EXTRACT_get_vextract256_imm:{ *:[i8] } VR256X:{ *:[v32i8] }:$ext))
/*273680*/              0, // EndSwitchType
/*273681*/            /*Scope*/ 24|128,4/*536*/, /*->274219*/
/*273683*/              OPC_MoveChild0,
/*273684*/              OPC_SwitchOpcode /*5 cases */, 22, TARGET_VAL(X86ISD::VBROADCAST),// ->273710
/*273688*/                OPC_RecordChild0, // #1 = $src
/*273689*/                OPC_CheckChild0Type, MVT::v2i64,
/*273691*/                OPC_CheckType, MVT::v4i64,
/*273693*/                OPC_MoveParent,
/*273694*/                OPC_MoveParent,
/*273695*/                OPC_MoveChild2,
/*273696*/                OPC_CheckImmAllZerosV,
/*273697*/                OPC_MoveParent,
/*273698*/                OPC_CheckType, MVT::v8i32,
/*273700*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*273702*/                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)), immAllZerosV:{ *:[v8i32] }) - Complexity = 13
                          // Dst: (VBROADCASTI32X2Z256rkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*273710*/              /*SwitchOpcode*/ 124, TARGET_VAL(ISD::AND),// ->273837
/*273713*/                OPC_RecordChild0, // #1 = $src1
/*273714*/                OPC_RecordChild1, // #2 = $src2
/*273715*/                OPC_SwitchType /*6 cases */, 18, MVT::v16i32,// ->273736
/*273718*/                  OPC_MoveParent,
/*273719*/                  OPC_MoveParent,
/*273720*/                  OPC_MoveChild2,
/*273721*/                  OPC_CheckImmAllZerosV,
/*273722*/                  OPC_MoveParent,
/*273723*/                  OPC_CheckType, MVT::v8i64,
/*273725*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*273727*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZrrkz), 0,
                                MVT::v8i64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i64] } (and:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)), immAllZerosV:{ *:[v8i64] }) - Complexity = 13
                            // Dst: (VPANDQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*273736*/                /*SwitchType*/ 18, MVT::v32i16,// ->273756
/*273738*/                  OPC_MoveParent,
/*273739*/                  OPC_MoveParent,
/*273740*/                  OPC_MoveChild2,
/*273741*/                  OPC_CheckImmAllZerosV,
/*273742*/                  OPC_MoveParent,
/*273743*/                  OPC_CheckType, MVT::v8i64,
/*273745*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*273747*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZrrkz), 0,
                                MVT::v8i64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i64] } (and:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)), immAllZerosV:{ *:[v8i64] }) - Complexity = 13
                            // Dst: (VPANDQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*273756*/                /*SwitchType*/ 18, MVT::v64i8,// ->273776
/*273758*/                  OPC_MoveParent,
/*273759*/                  OPC_MoveParent,
/*273760*/                  OPC_MoveChild2,
/*273761*/                  OPC_CheckImmAllZerosV,
/*273762*/                  OPC_MoveParent,
/*273763*/                  OPC_CheckType, MVT::v8i64,
/*273765*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*273767*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZrrkz), 0,
                                MVT::v8i64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i64] } (and:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)), immAllZerosV:{ *:[v8i64] }) - Complexity = 13
                            // Dst: (VPANDQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*273776*/                /*SwitchType*/ 18, MVT::v4i64,// ->273796
/*273778*/                  OPC_MoveParent,
/*273779*/                  OPC_MoveParent,
/*273780*/                  OPC_MoveChild2,
/*273781*/                  OPC_CheckImmAllZerosV,
/*273782*/                  OPC_MoveParent,
/*273783*/                  OPC_CheckType, MVT::v8i32,
/*273785*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*273787*/                  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)), immAllZerosV:{ *:[v8i32] }) - Complexity = 13
                            // Dst: (VPANDDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*273796*/                /*SwitchType*/ 18, MVT::v16i16,// ->273816
/*273798*/                  OPC_MoveParent,
/*273799*/                  OPC_MoveParent,
/*273800*/                  OPC_MoveChild2,
/*273801*/                  OPC_CheckImmAllZerosV,
/*273802*/                  OPC_MoveParent,
/*273803*/                  OPC_CheckType, MVT::v8i32,
/*273805*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*273807*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ256rrkz), 0,
                                MVT::v8i32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (and:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)), immAllZerosV:{ *:[v8i32] }) - Complexity = 13
                            // Dst: (VPANDDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*273816*/                /*SwitchType*/ 18, MVT::v32i8,// ->273836
/*273818*/                  OPC_MoveParent,
/*273819*/                  OPC_MoveParent,
/*273820*/                  OPC_MoveChild2,
/*273821*/                  OPC_CheckImmAllZerosV,
/*273822*/                  OPC_MoveParent,
/*273823*/                  OPC_CheckType, MVT::v8i32,
/*273825*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*273827*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ256rrkz), 0,
                                MVT::v8i32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (and:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)), immAllZerosV:{ *:[v8i32] }) - Complexity = 13
                            // Dst: (VPANDDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*273836*/                0, // EndSwitchType
/*273837*/              /*SwitchOpcode*/ 124, TARGET_VAL(ISD::OR),// ->273964
/*273840*/                OPC_RecordChild0, // #1 = $src1
/*273841*/                OPC_RecordChild1, // #2 = $src2
/*273842*/                OPC_SwitchType /*6 cases */, 18, MVT::v16i32,// ->273863
/*273845*/                  OPC_MoveParent,
/*273846*/                  OPC_MoveParent,
/*273847*/                  OPC_MoveChild2,
/*273848*/                  OPC_CheckImmAllZerosV,
/*273849*/                  OPC_MoveParent,
/*273850*/                  OPC_CheckType, MVT::v8i64,
/*273852*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*273854*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZrrkz), 0,
                                MVT::v8i64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i64] } (or:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)), immAllZerosV:{ *:[v8i64] }) - Complexity = 13
                            // Dst: (VPORQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*273863*/                /*SwitchType*/ 18, MVT::v32i16,// ->273883
/*273865*/                  OPC_MoveParent,
/*273866*/                  OPC_MoveParent,
/*273867*/                  OPC_MoveChild2,
/*273868*/                  OPC_CheckImmAllZerosV,
/*273869*/                  OPC_MoveParent,
/*273870*/                  OPC_CheckType, MVT::v8i64,
/*273872*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*273874*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZrrkz), 0,
                                MVT::v8i64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i64] } (or:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)), immAllZerosV:{ *:[v8i64] }) - Complexity = 13
                            // Dst: (VPORQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*273883*/                /*SwitchType*/ 18, MVT::v64i8,// ->273903
/*273885*/                  OPC_MoveParent,
/*273886*/                  OPC_MoveParent,
/*273887*/                  OPC_MoveChild2,
/*273888*/                  OPC_CheckImmAllZerosV,
/*273889*/                  OPC_MoveParent,
/*273890*/                  OPC_CheckType, MVT::v8i64,
/*273892*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*273894*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZrrkz), 0,
                                MVT::v8i64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i64] } (or:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)), immAllZerosV:{ *:[v8i64] }) - Complexity = 13
                            // Dst: (VPORQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*273903*/                /*SwitchType*/ 18, MVT::v4i64,// ->273923
/*273905*/                  OPC_MoveParent,
/*273906*/                  OPC_MoveParent,
/*273907*/                  OPC_MoveChild2,
/*273908*/                  OPC_CheckImmAllZerosV,
/*273909*/                  OPC_MoveParent,
/*273910*/                  OPC_CheckType, MVT::v8i32,
/*273912*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*273914*/                  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)), immAllZerosV:{ *:[v8i32] }) - Complexity = 13
                            // Dst: (VPORDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*273923*/                /*SwitchType*/ 18, MVT::v16i16,// ->273943
/*273925*/                  OPC_MoveParent,
/*273926*/                  OPC_MoveParent,
/*273927*/                  OPC_MoveChild2,
/*273928*/                  OPC_CheckImmAllZerosV,
/*273929*/                  OPC_MoveParent,
/*273930*/                  OPC_CheckType, MVT::v8i32,
/*273932*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*273934*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ256rrkz), 0,
                                MVT::v8i32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (or:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)), immAllZerosV:{ *:[v8i32] }) - Complexity = 13
                            // Dst: (VPORDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*273943*/                /*SwitchType*/ 18, MVT::v32i8,// ->273963
/*273945*/                  OPC_MoveParent,
/*273946*/                  OPC_MoveParent,
/*273947*/                  OPC_MoveChild2,
/*273948*/                  OPC_CheckImmAllZerosV,
/*273949*/                  OPC_MoveParent,
/*273950*/                  OPC_CheckType, MVT::v8i32,
/*273952*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*273954*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ256rrkz), 0,
                                MVT::v8i32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (or:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)), immAllZerosV:{ *:[v8i32] }) - Complexity = 13
                            // Dst: (VPORDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*273963*/                0, // EndSwitchType
/*273964*/              /*SwitchOpcode*/ 124, TARGET_VAL(ISD::XOR),// ->274091
/*273967*/                OPC_RecordChild0, // #1 = $src1
/*273968*/                OPC_RecordChild1, // #2 = $src2
/*273969*/                OPC_SwitchType /*6 cases */, 18, MVT::v16i32,// ->273990
/*273972*/                  OPC_MoveParent,
/*273973*/                  OPC_MoveParent,
/*273974*/                  OPC_MoveChild2,
/*273975*/                  OPC_CheckImmAllZerosV,
/*273976*/                  OPC_MoveParent,
/*273977*/                  OPC_CheckType, MVT::v8i64,
/*273979*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*273981*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZrrkz), 0,
                                MVT::v8i64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i64] } (xor:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)), immAllZerosV:{ *:[v8i64] }) - Complexity = 13
                            // Dst: (VPXORQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*273990*/                /*SwitchType*/ 18, MVT::v32i16,// ->274010
/*273992*/                  OPC_MoveParent,
/*273993*/                  OPC_MoveParent,
/*273994*/                  OPC_MoveChild2,
/*273995*/                  OPC_CheckImmAllZerosV,
/*273996*/                  OPC_MoveParent,
/*273997*/                  OPC_CheckType, MVT::v8i64,
/*273999*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*274001*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZrrkz), 0,
                                MVT::v8i64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i64] } (xor:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)), immAllZerosV:{ *:[v8i64] }) - Complexity = 13
                            // Dst: (VPXORQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*274010*/                /*SwitchType*/ 18, MVT::v64i8,// ->274030
/*274012*/                  OPC_MoveParent,
/*274013*/                  OPC_MoveParent,
/*274014*/                  OPC_MoveChild2,
/*274015*/                  OPC_CheckImmAllZerosV,
/*274016*/                  OPC_MoveParent,
/*274017*/                  OPC_CheckType, MVT::v8i64,
/*274019*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*274021*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZrrkz), 0,
                                MVT::v8i64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i64] } (xor:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)), immAllZerosV:{ *:[v8i64] }) - Complexity = 13
                            // Dst: (VPXORQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*274030*/                /*SwitchType*/ 18, MVT::v4i64,// ->274050
/*274032*/                  OPC_MoveParent,
/*274033*/                  OPC_MoveParent,
/*274034*/                  OPC_MoveChild2,
/*274035*/                  OPC_CheckImmAllZerosV,
/*274036*/                  OPC_MoveParent,
/*274037*/                  OPC_CheckType, MVT::v8i32,
/*274039*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*274041*/                  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)), immAllZerosV:{ *:[v8i32] }) - Complexity = 13
                            // Dst: (VPXORDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*274050*/                /*SwitchType*/ 18, MVT::v16i16,// ->274070
/*274052*/                  OPC_MoveParent,
/*274053*/                  OPC_MoveParent,
/*274054*/                  OPC_MoveChild2,
/*274055*/                  OPC_CheckImmAllZerosV,
/*274056*/                  OPC_MoveParent,
/*274057*/                  OPC_CheckType, MVT::v8i32,
/*274059*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*274061*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ256rrkz), 0,
                                MVT::v8i32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (xor:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)), immAllZerosV:{ *:[v8i32] }) - Complexity = 13
                            // Dst: (VPXORDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*274070*/                /*SwitchType*/ 18, MVT::v32i8,// ->274090
/*274072*/                  OPC_MoveParent,
/*274073*/                  OPC_MoveParent,
/*274074*/                  OPC_MoveChild2,
/*274075*/                  OPC_CheckImmAllZerosV,
/*274076*/                  OPC_MoveParent,
/*274077*/                  OPC_CheckType, MVT::v8i32,
/*274079*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*274081*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ256rrkz), 0,
                                MVT::v8i32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (xor:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)), immAllZerosV:{ *:[v8i32] }) - Complexity = 13
                            // Dst: (VPXORDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*274090*/                0, // EndSwitchType
/*274091*/              /*SwitchOpcode*/ 124, TARGET_VAL(X86ISD::ANDNP),// ->274218
/*274094*/                OPC_RecordChild0, // #1 = $src1
/*274095*/                OPC_RecordChild1, // #2 = $src2
/*274096*/                OPC_SwitchType /*6 cases */, 18, MVT::v16i32,// ->274117
/*274099*/                  OPC_MoveParent,
/*274100*/                  OPC_MoveParent,
/*274101*/                  OPC_MoveChild2,
/*274102*/                  OPC_CheckImmAllZerosV,
/*274103*/                  OPC_MoveParent,
/*274104*/                  OPC_CheckType, MVT::v8i64,
/*274106*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*274108*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZrrkz), 0,
                                MVT::v8i64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i64] } (X86andnp:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)), immAllZerosV:{ *:[v8i64] }) - Complexity = 13
                            // Dst: (VPANDNQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*274117*/                /*SwitchType*/ 18, MVT::v32i16,// ->274137
/*274119*/                  OPC_MoveParent,
/*274120*/                  OPC_MoveParent,
/*274121*/                  OPC_MoveChild2,
/*274122*/                  OPC_CheckImmAllZerosV,
/*274123*/                  OPC_MoveParent,
/*274124*/                  OPC_CheckType, MVT::v8i64,
/*274126*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*274128*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZrrkz), 0,
                                MVT::v8i64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i64] } (X86andnp:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)), immAllZerosV:{ *:[v8i64] }) - Complexity = 13
                            // Dst: (VPANDNQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*274137*/                /*SwitchType*/ 18, MVT::v64i8,// ->274157
/*274139*/                  OPC_MoveParent,
/*274140*/                  OPC_MoveParent,
/*274141*/                  OPC_MoveChild2,
/*274142*/                  OPC_CheckImmAllZerosV,
/*274143*/                  OPC_MoveParent,
/*274144*/                  OPC_CheckType, MVT::v8i64,
/*274146*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*274148*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZrrkz), 0,
                                MVT::v8i64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i64] } (X86andnp:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)), immAllZerosV:{ *:[v8i64] }) - Complexity = 13
                            // Dst: (VPANDNQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*274157*/                /*SwitchType*/ 18, MVT::v4i64,// ->274177
/*274159*/                  OPC_MoveParent,
/*274160*/                  OPC_MoveParent,
/*274161*/                  OPC_MoveChild2,
/*274162*/                  OPC_CheckImmAllZerosV,
/*274163*/                  OPC_MoveParent,
/*274164*/                  OPC_CheckType, MVT::v8i32,
/*274166*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*274168*/                  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)), immAllZerosV:{ *:[v8i32] }) - Complexity = 13
                            // Dst: (VPANDNDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*274177*/                /*SwitchType*/ 18, MVT::v16i16,// ->274197
/*274179*/                  OPC_MoveParent,
/*274180*/                  OPC_MoveParent,
/*274181*/                  OPC_MoveChild2,
/*274182*/                  OPC_CheckImmAllZerosV,
/*274183*/                  OPC_MoveParent,
/*274184*/                  OPC_CheckType, MVT::v8i32,
/*274186*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*274188*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZ256rrkz), 0,
                                MVT::v8i32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (X86andnp:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)), immAllZerosV:{ *:[v8i32] }) - Complexity = 13
                            // Dst: (VPANDNDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*274197*/                /*SwitchType*/ 18, MVT::v32i8,// ->274217
/*274199*/                  OPC_MoveParent,
/*274200*/                  OPC_MoveParent,
/*274201*/                  OPC_MoveChild2,
/*274202*/                  OPC_CheckImmAllZerosV,
/*274203*/                  OPC_MoveParent,
/*274204*/                  OPC_CheckType, MVT::v8i32,
/*274206*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*274208*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZ256rrkz), 0,
                                MVT::v8i32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (X86andnp:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)), immAllZerosV:{ *:[v8i32] }) - Complexity = 13
                            // Dst: (VPANDNDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*274217*/                0, // EndSwitchType
/*274218*/              0, // EndSwitchOpcode
/*274219*/            /*Scope*/ 30|128,2/*286*/, /*->274507*/
/*274221*/              OPC_RecordChild0, // #1 = $ins
/*274222*/              OPC_MoveChild0,
/*274223*/              OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*274226*/              OPC_RecordChild0, // #2 = $src1
/*274227*/              OPC_RecordChild1, // #3 = $src2
/*274228*/              OPC_Scope, 78, /*->274308*/ // 7 children in Scope
/*274230*/                OPC_MoveChild2,
/*274231*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*274234*/                OPC_CheckType, MVT::iPTR,
/*274236*/                OPC_MoveParent,
/*274237*/                OPC_SwitchType /*3 cases */, 21, MVT::v4i64,// ->274261
/*274240*/                  OPC_MoveParent,
/*274241*/                  OPC_MoveParent,
/*274242*/                  OPC_RecordChild2, // #4 = $src0
/*274243*/                  OPC_CheckType, MVT::v8i32,
/*274245*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*274247*/                  OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*274250*/                  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))
/*274261*/                /*SwitchType*/ 21, MVT::v16i16,// ->274284
/*274263*/                  OPC_MoveParent,
/*274264*/                  OPC_MoveParent,
/*274265*/                  OPC_RecordChild2, // #4 = $src0
/*274266*/                  OPC_CheckType, MVT::v8i32,
/*274268*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*274270*/                  OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*274273*/                  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))
/*274284*/                /*SwitchType*/ 21, MVT::v32i8,// ->274307
/*274286*/                  OPC_MoveParent,
/*274287*/                  OPC_MoveParent,
/*274288*/                  OPC_RecordChild2, // #4 = $src0
/*274289*/                  OPC_CheckType, MVT::v8i32,
/*274291*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*274293*/                  OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*274296*/                  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))
/*274307*/                0, // EndSwitchType
/*274308*/              /*Scope*/ 32, /*->274341*/
/*274309*/                OPC_CheckChild1Type, MVT::v4i32,
/*274311*/                OPC_MoveChild2,
/*274312*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*274315*/                OPC_CheckType, MVT::iPTR,
/*274317*/                OPC_MoveParent,
/*274318*/                OPC_CheckType, MVT::v16i32,
/*274320*/                OPC_MoveParent,
/*274321*/                OPC_MoveParent,
/*274322*/                OPC_RecordChild2, // #4 = $src0
/*274323*/                OPC_CheckType, MVT::v8i64,
/*274325*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*274327*/                OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*274330*/                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))
/*274341*/              /*Scope*/ 32, /*->274374*/
/*274342*/                OPC_CheckChild1Type, MVT::v8i16,
/*274344*/                OPC_MoveChild2,
/*274345*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*274348*/                OPC_CheckType, MVT::iPTR,
/*274350*/                OPC_MoveParent,
/*274351*/                OPC_CheckType, MVT::v32i16,
/*274353*/                OPC_MoveParent,
/*274354*/                OPC_MoveParent,
/*274355*/                OPC_RecordChild2, // #4 = $src0
/*274356*/                OPC_CheckType, MVT::v8i64,
/*274358*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*274360*/                OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*274363*/                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))
/*274374*/              /*Scope*/ 32, /*->274407*/
/*274375*/                OPC_CheckChild1Type, MVT::v16i8,
/*274377*/                OPC_MoveChild2,
/*274378*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*274381*/                OPC_CheckType, MVT::iPTR,
/*274383*/                OPC_MoveParent,
/*274384*/                OPC_CheckType, MVT::v64i8,
/*274386*/                OPC_MoveParent,
/*274387*/                OPC_MoveParent,
/*274388*/                OPC_RecordChild2, // #4 = $src0
/*274389*/                OPC_CheckType, MVT::v8i64,
/*274391*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*274393*/                OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*274396*/                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))
/*274407*/              /*Scope*/ 32, /*->274440*/
/*274408*/                OPC_CheckChild1Type, MVT::v8i32,
/*274410*/                OPC_MoveChild2,
/*274411*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*274414*/                OPC_CheckType, MVT::iPTR,
/*274416*/                OPC_MoveParent,
/*274417*/                OPC_CheckType, MVT::v16i32,
/*274419*/                OPC_MoveParent,
/*274420*/                OPC_MoveParent,
/*274421*/                OPC_RecordChild2, // #4 = $src0
/*274422*/                OPC_CheckType, MVT::v8i64,
/*274424*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*274426*/                OPC_EmitNodeXForm, 16, 1, // INSERT_get_vinsert256_imm
/*274429*/                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))
/*274440*/              /*Scope*/ 32, /*->274473*/
/*274441*/                OPC_CheckChild1Type, MVT::v16i16,
/*274443*/                OPC_MoveChild2,
/*274444*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*274447*/                OPC_CheckType, MVT::iPTR,
/*274449*/                OPC_MoveParent,
/*274450*/                OPC_CheckType, MVT::v32i16,
/*274452*/                OPC_MoveParent,
/*274453*/                OPC_MoveParent,
/*274454*/                OPC_RecordChild2, // #4 = $src0
/*274455*/                OPC_CheckType, MVT::v8i64,
/*274457*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*274459*/                OPC_EmitNodeXForm, 16, 1, // INSERT_get_vinsert256_imm
/*274462*/                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))
/*274473*/              /*Scope*/ 32, /*->274506*/
/*274474*/                OPC_CheckChild1Type, MVT::v32i8,
/*274476*/                OPC_MoveChild2,
/*274477*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*274480*/                OPC_CheckType, MVT::iPTR,
/*274482*/                OPC_MoveParent,
/*274483*/                OPC_CheckType, MVT::v64i8,
/*274485*/                OPC_MoveParent,
/*274486*/                OPC_MoveParent,
/*274487*/                OPC_RecordChild2, // #4 = $src0
/*274488*/                OPC_CheckType, MVT::v8i64,
/*274490*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*274492*/                OPC_EmitNodeXForm, 16, 1, // INSERT_get_vinsert256_imm
/*274495*/                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))
/*274506*/              0, /*End of Scope*/
/*274507*/            /*Scope*/ 68, /*->274576*/
/*274508*/              OPC_MoveChild0,
/*274509*/              OPC_SwitchOpcode /*2 cases */, 28, TARGET_VAL(X86ISD::SHUF128),// ->274541
/*274513*/                OPC_RecordChild0, // #1 = $src1
/*274514*/                OPC_RecordChild1, // #2 = $src2
/*274515*/                OPC_RecordChild2, // #3 = $src3
/*274516*/                OPC_MoveChild2,
/*274517*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*274520*/                OPC_MoveParent,
/*274521*/                OPC_CheckType, MVT::v4i64,
/*274523*/                OPC_MoveParent,
/*274524*/                OPC_MoveParent,
/*274525*/                OPC_RecordChild2, // #4 = $src0
/*274526*/                OPC_CheckType, MVT::v8i32,
/*274528*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*274530*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI32X4Z256rrik), 0,
                              MVT::v8i32, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (X86Shuf128:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (timm:{ *:[i8] }):$src3)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 12
                          // Dst: (VSHUFI32X4Z256rrik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (timm:{ *:[i8] }):$src3)
/*274541*/              /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VALIGN),// ->274575
/*274544*/                OPC_RecordChild0, // #1 = $src1
/*274545*/                OPC_RecordChild1, // #2 = $src2
/*274546*/                OPC_RecordChild2, // #3 = $src3
/*274547*/                OPC_MoveChild2,
/*274548*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*274551*/                OPC_MoveParent,
/*274552*/                OPC_CheckType, MVT::v4i64,
/*274554*/                OPC_MoveParent,
/*274555*/                OPC_MoveParent,
/*274556*/                OPC_RecordChild2, // #4 = $src0
/*274557*/                OPC_CheckType, MVT::v8i32,
/*274559*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*274561*/                OPC_EmitNodeXForm, 14, 3, // ValignqImm32XForm
/*274564*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZ256rrik), 0,
                              MVT::v8i32, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (X86VAlign:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (timm:{ *:[i8] }):$src3)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 12
                          // Dst: (VALIGNDZ256rrik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (ValignqImm32XForm:{ *:[i8] } (timm:{ *:[i8] }):$src3))
/*274575*/              0, // EndSwitchOpcode
/*274576*/            0, /*End of Scope*/
/*274577*/          /*Scope*/ 55, /*->274633*/
/*274578*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VSRLI),
/*274581*/            OPC_RecordChild0, // #1 = $src1
/*274582*/            OPC_RecordChild1, // #2 = $src2
/*274583*/            OPC_MoveChild1,
/*274584*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*274587*/            OPC_MoveParent,
/*274588*/            OPC_MoveParent,
/*274589*/            OPC_MoveChild2,
/*274590*/            OPC_CheckImmAllZerosV,
/*274591*/            OPC_MoveParent,
/*274592*/            OPC_SwitchType /*3 cases */, 11, MVT::v8i32,// ->274606
/*274595*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*274597*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZ256rikz), 0,
                            MVT::v8i32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrli:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v8i32] }) - Complexity = 13
                        // Dst: (VPSRLDZ256rikz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, (timm:{ *:[i8] }):$src2)
/*274606*/            /*SwitchType*/ 11, MVT::v8i64,// ->274619
/*274608*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*274610*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZrikz), 0,
                            MVT::v8i64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrli:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v8i64] }) - Complexity = 13
                        // Dst: (VPSRLQZrikz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, (timm:{ *:[i8] }):$src2)
/*274619*/            /*SwitchType*/ 11, MVT::v8i16,// ->274632
/*274621*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*274623*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLWZ128rikz), 0,
                            MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrli:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v8i16] }) - Complexity = 13
                        // Dst: (VPSRLWZ128rikz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, (timm:{ *:[i8] }):$src2)
/*274632*/            0, // EndSwitchType
/*274633*/          /*Scope*/ 55, /*->274689*/
/*274634*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VSHLI),
/*274637*/            OPC_RecordChild0, // #1 = $src1
/*274638*/            OPC_RecordChild1, // #2 = $src2
/*274639*/            OPC_MoveChild1,
/*274640*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*274643*/            OPC_MoveParent,
/*274644*/            OPC_MoveParent,
/*274645*/            OPC_MoveChild2,
/*274646*/            OPC_CheckImmAllZerosV,
/*274647*/            OPC_MoveParent,
/*274648*/            OPC_SwitchType /*3 cases */, 11, MVT::v8i32,// ->274662
/*274651*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*274653*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZ256rikz), 0,
                            MVT::v8i32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vshli:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v8i32] }) - Complexity = 13
                        // Dst: (VPSLLDZ256rikz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, (timm:{ *:[i8] }):$src2)
/*274662*/            /*SwitchType*/ 11, MVT::v8i64,// ->274675
/*274664*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*274666*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZrikz), 0,
                            MVT::v8i64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vshli:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v8i64] }) - Complexity = 13
                        // Dst: (VPSLLQZrikz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, (timm:{ *:[i8] }):$src2)
/*274675*/            /*SwitchType*/ 11, MVT::v8i16,// ->274688
/*274677*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*274679*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLWZ128rikz), 0,
                            MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vshli:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v8i16] }) - Complexity = 13
                        // Dst: (VPSLLWZ128rikz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, (timm:{ *:[i8] }):$src2)
/*274688*/            0, // EndSwitchType
/*274689*/          /*Scope*/ 55, /*->274745*/
/*274690*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VSRAI),
/*274693*/            OPC_RecordChild0, // #1 = $src1
/*274694*/            OPC_RecordChild1, // #2 = $src2
/*274695*/            OPC_MoveChild1,
/*274696*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*274699*/            OPC_MoveParent,
/*274700*/            OPC_MoveParent,
/*274701*/            OPC_MoveChild2,
/*274702*/            OPC_CheckImmAllZerosV,
/*274703*/            OPC_MoveParent,
/*274704*/            OPC_SwitchType /*3 cases */, 11, MVT::v8i32,// ->274718
/*274707*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*274709*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZ256rikz), 0,
                            MVT::v8i32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrai:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v8i32] }) - Complexity = 13
                        // Dst: (VPSRADZ256rikz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, (timm:{ *:[i8] }):$src2)
/*274718*/            /*SwitchType*/ 11, MVT::v8i64,// ->274731
/*274720*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*274722*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZrikz), 0,
                            MVT::v8i64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrai:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v8i64] }) - Complexity = 13
                        // Dst: (VPSRAQZrikz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, (timm:{ *:[i8] }):$src2)
/*274731*/            /*SwitchType*/ 11, MVT::v8i16,// ->274744
/*274733*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*274735*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAWZ128rikz), 0,
                            MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrai:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v8i16] }) - Complexity = 13
                        // Dst: (VPSRAWZ128rikz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, (timm:{ *:[i8] }):$src2)
/*274744*/            0, // EndSwitchType
/*274745*/          /*Scope*/ 42, /*->274788*/
/*274746*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VROTRI),
/*274749*/            OPC_RecordChild0, // #1 = $src1
/*274750*/            OPC_RecordChild1, // #2 = $src2
/*274751*/            OPC_MoveChild1,
/*274752*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*274755*/            OPC_MoveParent,
/*274756*/            OPC_MoveParent,
/*274757*/            OPC_MoveChild2,
/*274758*/            OPC_CheckImmAllZerosV,
/*274759*/            OPC_MoveParent,
/*274760*/            OPC_SwitchType /*2 cases */, 11, MVT::v8i32,// ->274774
/*274763*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*274765*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORDZ256rikz), 0,
                            MVT::v8i32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vrotri:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v8i32] }) - Complexity = 13
                        // Dst: (VPRORDZ256rikz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, (timm:{ *:[i8] }):$src2)
/*274774*/            /*SwitchType*/ 11, MVT::v8i64,// ->274787
/*274776*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*274778*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORQZrikz), 0,
                            MVT::v8i64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vrotri:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v8i64] }) - Complexity = 13
                        // Dst: (VPRORQZrikz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, (timm:{ *:[i8] }):$src2)
/*274787*/            0, // EndSwitchType
/*274788*/          /*Scope*/ 42, /*->274831*/
/*274789*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VROTLI),
/*274792*/            OPC_RecordChild0, // #1 = $src1
/*274793*/            OPC_RecordChild1, // #2 = $src2
/*274794*/            OPC_MoveChild1,
/*274795*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*274798*/            OPC_MoveParent,
/*274799*/            OPC_MoveParent,
/*274800*/            OPC_MoveChild2,
/*274801*/            OPC_CheckImmAllZerosV,
/*274802*/            OPC_MoveParent,
/*274803*/            OPC_SwitchType /*2 cases */, 11, MVT::v8i32,// ->274817
/*274806*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*274808*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLDZ256rikz), 0,
                            MVT::v8i32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vrotli:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v8i32] }) - Complexity = 13
                        // Dst: (VPROLDZ256rikz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, (timm:{ *:[i8] }):$src2)
/*274817*/            /*SwitchType*/ 11, MVT::v8i64,// ->274830
/*274819*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*274821*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLQZrikz), 0,
                            MVT::v8i64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vrotli:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v8i64] }) - Complexity = 13
                        // Dst: (VPROLQZrikz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, (timm:{ *:[i8] }):$src2)
/*274830*/            0, // EndSwitchType
/*274831*/          /*Scope*/ 27, /*->274859*/
/*274832*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VPERMI),
/*274835*/            OPC_RecordChild0, // #1 = $src1
/*274836*/            OPC_RecordChild1, // #2 = $src2
/*274837*/            OPC_MoveChild1,
/*274838*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*274841*/            OPC_MoveParent,
/*274842*/            OPC_MoveParent,
/*274843*/            OPC_MoveChild2,
/*274844*/            OPC_CheckImmAllZerosV,
/*274845*/            OPC_MoveParent,
/*274846*/            OPC_CheckType, MVT::v8i64,
/*274848*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*274850*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMQZrikz), 0,
                          MVT::v8i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermi:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v8i64] }) - Complexity = 13
                      // Dst: (VPERMQZrikz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, (timm:{ *:[i8] }):$src2)
/*274859*/          /*Scope*/ 27, /*->274887*/
/*274860*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::PSHUFD),
/*274863*/            OPC_RecordChild0, // #1 = $src1
/*274864*/            OPC_RecordChild1, // #2 = $src2
/*274865*/            OPC_MoveChild1,
/*274866*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*274869*/            OPC_MoveParent,
/*274870*/            OPC_MoveParent,
/*274871*/            OPC_MoveChild2,
/*274872*/            OPC_CheckImmAllZerosV,
/*274873*/            OPC_MoveParent,
/*274874*/            OPC_CheckType, MVT::v8i32,
/*274876*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*274878*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFDZ256rikz), 0,
                          MVT::v8i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86PShufd:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v8i32] }) - Complexity = 13
                      // Dst: (VPSHUFDZ256rikz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, (timm:{ *:[i8] }):$src2)
/*274887*/          /*Scope*/ 27, /*->274915*/
/*274888*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::PSHUFHW),
/*274891*/            OPC_RecordChild0, // #1 = $src1
/*274892*/            OPC_RecordChild1, // #2 = $src2
/*274893*/            OPC_MoveChild1,
/*274894*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*274897*/            OPC_MoveParent,
/*274898*/            OPC_MoveParent,
/*274899*/            OPC_MoveChild2,
/*274900*/            OPC_CheckImmAllZerosV,
/*274901*/            OPC_MoveParent,
/*274902*/            OPC_CheckType, MVT::v8i16,
/*274904*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*274906*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFHWZ128rikz), 0,
                          MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86PShufhw:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v8i16] }) - Complexity = 13
                      // Dst: (VPSHUFHWZ128rikz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, (timm:{ *:[i8] }):$src2)
/*274915*/          /*Scope*/ 27, /*->274943*/
/*274916*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::PSHUFLW),
/*274919*/            OPC_RecordChild0, // #1 = $src1
/*274920*/            OPC_RecordChild1, // #2 = $src2
/*274921*/            OPC_MoveChild1,
/*274922*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*274925*/            OPC_MoveParent,
/*274926*/            OPC_MoveParent,
/*274927*/            OPC_MoveChild2,
/*274928*/            OPC_CheckImmAllZerosV,
/*274929*/            OPC_MoveParent,
/*274930*/            OPC_CheckType, MVT::v8i16,
/*274932*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*274934*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFLWZ128rikz), 0,
                          MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86PShuflw:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v8i16] }) - Complexity = 13
                      // Dst: (VPSHUFLWZ128rikz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, (timm:{ *:[i8] }):$src2)
/*274943*/          /*Scope*/ 73, /*->275017*/
/*274944*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::CVTP2SI_RND),
/*274947*/            OPC_RecordChild0, // #1 = $src
/*274948*/            OPC_Scope, 40, /*->274990*/ // 2 children in Scope
/*274950*/              OPC_CheckChild0Type, MVT::v8f64,
/*274952*/              OPC_RecordChild1, // #2 = $rc
/*274953*/              OPC_MoveChild1,
/*274954*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*274957*/              OPC_MoveParent,
/*274958*/              OPC_MoveParent,
/*274959*/              OPC_MoveChild2,
/*274960*/              OPC_CheckImmAllZerosV,
/*274961*/              OPC_MoveParent,
/*274962*/              OPC_SwitchType /*2 cases */, 11, MVT::v8i32,// ->274976
/*274965*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*274967*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2DQZrrbkz), 0,
                              MVT::v8i32, 3/*#Ops*/, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2IntRnd:{ *:[v8i32] } VR512:{ *:[v8f64] }:$src, (timm:{ *:[i32] }):$rc), immAllZerosV:{ *:[v8i32] }) - Complexity = 13
                          // Dst: (VCVTPD2DQZrrbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src, (timm:{ *:[i32] }):$rc)
/*274976*/              /*SwitchType*/ 11, MVT::v8i64,// ->274989
/*274978*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*274980*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2QQZrrbkz), 0,
                              MVT::v8i64, 3/*#Ops*/, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2IntRnd:{ *:[v8i64] } VR512:{ *:[v8f64] }:$src, (timm:{ *:[i32] }):$rc), immAllZerosV:{ *:[v8i64] }) - Complexity = 13
                          // Dst: (VCVTPD2QQZrrbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src, (timm:{ *:[i32] }):$rc)
/*274989*/              0, // EndSwitchType
/*274990*/            /*Scope*/ 25, /*->275016*/
/*274991*/              OPC_CheckChild0Type, MVT::v8f32,
/*274993*/              OPC_RecordChild1, // #2 = $rc
/*274994*/              OPC_MoveChild1,
/*274995*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*274998*/              OPC_MoveParent,
/*274999*/              OPC_MoveParent,
/*275000*/              OPC_MoveChild2,
/*275001*/              OPC_CheckImmAllZerosV,
/*275002*/              OPC_MoveParent,
/*275003*/              OPC_CheckType, MVT::v8i64,
/*275005*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*275007*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2QQZrrbkz), 0,
                            MVT::v8i64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2IntRnd:{ *:[v8i64] } VR256X:{ *:[v8f32] }:$src, (timm:{ *:[i32] }):$rc), immAllZerosV:{ *:[v8i64] }) - Complexity = 13
                        // Dst: (VCVTPS2QQZrrbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src, (timm:{ *:[i32] }):$rc)
/*275016*/            0, /*End of Scope*/
/*275017*/          /*Scope*/ 73, /*->275091*/
/*275018*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::CVTP2UI_RND),
/*275021*/            OPC_RecordChild0, // #1 = $src
/*275022*/            OPC_Scope, 40, /*->275064*/ // 2 children in Scope
/*275024*/              OPC_CheckChild0Type, MVT::v8f64,
/*275026*/              OPC_RecordChild1, // #2 = $rc
/*275027*/              OPC_MoveChild1,
/*275028*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*275031*/              OPC_MoveParent,
/*275032*/              OPC_MoveParent,
/*275033*/              OPC_MoveChild2,
/*275034*/              OPC_CheckImmAllZerosV,
/*275035*/              OPC_MoveParent,
/*275036*/              OPC_SwitchType /*2 cases */, 11, MVT::v8i32,// ->275050
/*275039*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*275041*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UDQZrrbkz), 0,
                              MVT::v8i32, 3/*#Ops*/, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2UIntRnd:{ *:[v8i32] } VR512:{ *:[v8f64] }:$src, (timm:{ *:[i32] }):$rc), immAllZerosV:{ *:[v8i32] }) - Complexity = 13
                          // Dst: (VCVTPD2UDQZrrbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src, (timm:{ *:[i32] }):$rc)
/*275050*/              /*SwitchType*/ 11, MVT::v8i64,// ->275063
/*275052*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*275054*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UQQZrrbkz), 0,
                              MVT::v8i64, 3/*#Ops*/, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2UIntRnd:{ *:[v8i64] } VR512:{ *:[v8f64] }:$src, (timm:{ *:[i32] }):$rc), immAllZerosV:{ *:[v8i64] }) - Complexity = 13
                          // Dst: (VCVTPD2UQQZrrbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src, (timm:{ *:[i32] }):$rc)
/*275063*/              0, // EndSwitchType
/*275064*/            /*Scope*/ 25, /*->275090*/
/*275065*/              OPC_CheckChild0Type, MVT::v8f32,
/*275067*/              OPC_RecordChild1, // #2 = $rc
/*275068*/              OPC_MoveChild1,
/*275069*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*275072*/              OPC_MoveParent,
/*275073*/              OPC_MoveParent,
/*275074*/              OPC_MoveChild2,
/*275075*/              OPC_CheckImmAllZerosV,
/*275076*/              OPC_MoveParent,
/*275077*/              OPC_CheckType, MVT::v8i64,
/*275079*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*275081*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UQQZrrbkz), 0,
                            MVT::v8i64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2UIntRnd:{ *:[v8i64] } VR256X:{ *:[v8f32] }:$src, (timm:{ *:[i32] }):$rc), immAllZerosV:{ *:[v8i64] }) - Complexity = 13
                        // Dst: (VCVTPS2UQQZrrbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src, (timm:{ *:[i32] }):$rc)
/*275090*/            0, /*End of Scope*/
/*275091*/          /*Scope*/ 29, /*->275121*/
/*275092*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::SHUF128),
/*275095*/            OPC_RecordChild0, // #1 = $src1
/*275096*/            OPC_RecordChild1, // #2 = $src2
/*275097*/            OPC_RecordChild2, // #3 = $src3
/*275098*/            OPC_MoveChild2,
/*275099*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*275102*/            OPC_MoveParent,
/*275103*/            OPC_MoveParent,
/*275104*/            OPC_MoveChild2,
/*275105*/            OPC_CheckImmAllZerosV,
/*275106*/            OPC_MoveParent,
/*275107*/            OPC_CheckType, MVT::v8i64,
/*275109*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*275111*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI64X2Zrrikz), 0,
                          MVT::v8i64, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86Shuf128:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v8i64] }) - Complexity = 13
                      // Dst: (VSHUFI64X2Zrrikz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (timm:{ *:[i8] }):$src3)
/*275121*/          /*Scope*/ 45, /*->275167*/
/*275122*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VALIGN),
/*275125*/            OPC_RecordChild0, // #1 = $src1
/*275126*/            OPC_RecordChild1, // #2 = $src2
/*275127*/            OPC_RecordChild2, // #3 = $src3
/*275128*/            OPC_MoveChild2,
/*275129*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*275132*/            OPC_MoveParent,
/*275133*/            OPC_MoveParent,
/*275134*/            OPC_MoveChild2,
/*275135*/            OPC_CheckImmAllZerosV,
/*275136*/            OPC_MoveParent,
/*275137*/            OPC_SwitchType /*2 cases */, 12, MVT::v8i32,// ->275152
/*275140*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*275142*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZ256rrikz), 0,
                            MVT::v8i32, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VAlign:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v8i32] }) - Complexity = 13
                        // Dst: (VALIGNDZ256rrikz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (timm:{ *:[i8] }):$src3)
/*275152*/            /*SwitchType*/ 12, MVT::v8i64,// ->275166
/*275154*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*275156*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNQZrrikz), 0,
                            MVT::v8i64, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VAlign:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v8i64] }) - Complexity = 13
                        // Dst: (VALIGNQZrrikz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (timm:{ *:[i8] }):$src3)
/*275166*/            0, // EndSwitchType
/*275167*/          /*Scope*/ 29, /*->275197*/
/*275168*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::DBPSADBW),
/*275171*/            OPC_RecordChild0, // #1 = $src1
/*275172*/            OPC_RecordChild1, // #2 = $src2
/*275173*/            OPC_RecordChild2, // #3 = $src3
/*275174*/            OPC_MoveChild2,
/*275175*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*275178*/            OPC_MoveParent,
/*275179*/            OPC_MoveParent,
/*275180*/            OPC_MoveChild2,
/*275181*/            OPC_CheckImmAllZerosV,
/*275182*/            OPC_MoveParent,
/*275183*/            OPC_CheckType, MVT::v8i16,
/*275185*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*275187*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDBPSADBWZ128rrikz), 0,
                          MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86dbpsadbw:{ *:[v8i16] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v8i16] }) - Complexity = 13
                      // Dst: (VDBPSADBWZ128rrikz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (timm:{ *:[i8] }):$src3)
/*275197*/          /*Scope*/ 48, /*->275246*/
/*275198*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VPTERNLOG),
/*275201*/            OPC_RecordChild0, // #1 = $src1
/*275202*/            OPC_RecordChild1, // #2 = $src2
/*275203*/            OPC_RecordChild2, // #3 = $src3
/*275204*/            OPC_RecordChild3, // #4 = $src4
/*275205*/            OPC_MoveChild3,
/*275206*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*275209*/            OPC_MoveParent,
/*275210*/            OPC_MoveParent,
/*275211*/            OPC_MoveChild2,
/*275212*/            OPC_CheckImmAllZerosV,
/*275213*/            OPC_MoveParent,
/*275214*/            OPC_SwitchType /*2 cases */, 13, MVT::v8i32,// ->275230
/*275217*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*275219*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ256rrikz), 0,
                            MVT::v8i32, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3, (timm:{ *:[i8] }):$src4), immAllZerosV:{ *:[v8i32] }) - Complexity = 13
                        // Dst: (VPTERNLOGDZ256rrikz:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3, (timm:{ *:[i8] }):$src4)
/*275230*/            /*SwitchType*/ 13, MVT::v8i64,// ->275245
/*275232*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*275234*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrrikz), 0,
                            MVT::v8i64, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src3, (timm:{ *:[i8] }):$src4), immAllZerosV:{ *:[v8i64] }) - Complexity = 13
                        // Dst: (VPTERNLOGQZrrikz:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src3, (timm:{ *:[i8] }):$src4)
/*275245*/            0, // EndSwitchType
/*275246*/          /*Scope*/ 59, /*->275306*/
/*275247*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VSHLD),
/*275250*/            OPC_RecordChild0, // #1 = $src1
/*275251*/            OPC_RecordChild1, // #2 = $src2
/*275252*/            OPC_RecordChild2, // #3 = $src3
/*275253*/            OPC_MoveChild2,
/*275254*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*275257*/            OPC_MoveParent,
/*275258*/            OPC_MoveParent,
/*275259*/            OPC_MoveChild2,
/*275260*/            OPC_CheckImmAllZerosV,
/*275261*/            OPC_MoveParent,
/*275262*/            OPC_SwitchType /*3 cases */, 12, MVT::v8i16,// ->275277
/*275265*/              OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*275267*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDWZ128rrikz), 0,
                            MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86VShld:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v8i16] }) - Complexity = 13
                        // Dst: (VPSHLDWZ128rrikz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (timm:{ *:[i8] }):$src3)
/*275277*/            /*SwitchType*/ 12, MVT::v8i32,// ->275291
/*275279*/              OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*275281*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDDZ256rrikz), 0,
                            MVT::v8i32, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VShld:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v8i32] }) - Complexity = 13
                        // Dst: (VPSHLDDZ256rrikz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (timm:{ *:[i8] }):$src3)
/*275291*/            /*SwitchType*/ 12, MVT::v8i64,// ->275305
/*275293*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*275295*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDQZrrikz), 0,
                            MVT::v8i64, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VShld:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v8i64] }) - Complexity = 13
                        // Dst: (VPSHLDQZrrikz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (timm:{ *:[i8] }):$src3)
/*275305*/            0, // EndSwitchType
/*275306*/          /*Scope*/ 59, /*->275366*/
/*275307*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VSHRD),
/*275310*/            OPC_RecordChild0, // #1 = $src1
/*275311*/            OPC_RecordChild1, // #2 = $src2
/*275312*/            OPC_RecordChild2, // #3 = $src3
/*275313*/            OPC_MoveChild2,
/*275314*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*275317*/            OPC_MoveParent,
/*275318*/            OPC_MoveParent,
/*275319*/            OPC_MoveChild2,
/*275320*/            OPC_CheckImmAllZerosV,
/*275321*/            OPC_MoveParent,
/*275322*/            OPC_SwitchType /*3 cases */, 12, MVT::v8i16,// ->275337
/*275325*/              OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*275327*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDWZ128rrikz), 0,
                            MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86VShrd:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v8i16] }) - Complexity = 13
                        // Dst: (VPSHRDWZ128rrikz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (timm:{ *:[i8] }):$src3)
/*275337*/            /*SwitchType*/ 12, MVT::v8i32,// ->275351
/*275339*/              OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*275341*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDDZ256rrikz), 0,
                            MVT::v8i32, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VShrd:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v8i32] }) - Complexity = 13
                        // Dst: (VPSHRDDZ256rrikz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (timm:{ *:[i8] }):$src3)
/*275351*/            /*SwitchType*/ 12, MVT::v8i64,// ->275365
/*275353*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*275355*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDQZrrikz), 0,
                            MVT::v8i64, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VShrd:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v8i64] }) - Complexity = 13
                        // Dst: (VPSHRDQZrrikz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (timm:{ *:[i8] }):$src3)
/*275365*/            0, // EndSwitchType
/*275366*/          /*Scope*/ 16, /*->275383*/
/*275367*/            OPC_CheckImmAllOnesV,
/*275368*/            OPC_MoveParent,
/*275369*/            OPC_MoveChild2,
/*275370*/            OPC_CheckImmAllZerosV,
/*275371*/            OPC_MoveParent,
/*275372*/            OPC_CheckType, MVT::v8i64,
/*275374*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*275376*/            OPC_MorphNodeTo1, TARGET_VAL(X86::AVX512_512_SEXT_MASK_64), 0,
                          MVT::v8i64, 1/*#Ops*/, 0, 
                      // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, immAllOnesV:{ *:[v8i64] }, immAllZerosV:{ *:[v8i64] }) - Complexity = 11
                      // Dst: (AVX512_512_SEXT_MASK_64:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask)
/*275383*/          0, /*End of Scope*/
/*275384*/        /*Scope*/ 34, /*->275419*/
/*275385*/          OPC_RecordChild1, // #1 = $idx
/*275386*/          OPC_MoveChild1,
/*275387*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/*275390*/          OPC_RecordChild0, // #2 = $src1
/*275391*/          OPC_MoveChild1,
/*275392*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*275395*/          OPC_CheckType, MVT::iPTR,
/*275397*/          OPC_MoveParent,
/*275398*/          OPC_CheckPredicate, 18, // Predicate_vextract256_extract
/*275400*/          OPC_MoveParent,
/*275401*/          OPC_RecordChild2, // #3 = $src0
/*275402*/          OPC_CheckType, MVT::v8i32,
/*275404*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*275406*/          OPC_EmitNodeXForm, 1, 1, // EXTRACT_get_vextract256_imm
/*275409*/          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] }))<<P:Predicate_vextract256_extract>><<X:EXTRACT_get_vextract256_imm>>:$idx, VR256X:{ *:[v8i32] }:$src0) - Complexity = 10
                    // 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))
/*275419*/        /*Scope*/ 91|128,23/*3035*/, /*->278456*/
/*275421*/          OPC_MoveChild1,
/*275422*/          OPC_SwitchOpcode /*67 cases */, 7|128,1/*135*/, TARGET_VAL(X86ISD::VBROADCAST),// ->275562
/*275427*/            OPC_RecordChild0, // #1 = $src
/*275428*/            OPC_Scope, 18, /*->275448*/ // 6 children in Scope
/*275430*/              OPC_CheckChild0Type, MVT::i32,
/*275432*/              OPC_MoveParent,
/*275433*/              OPC_MoveChild2,
/*275434*/              OPC_CheckImmAllZerosV,
/*275435*/              OPC_MoveParent,
/*275436*/              OPC_CheckType, MVT::v8i32,
/*275438*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*275440*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTDrZ256rkz), 0,
                            MVT::v8i32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VBroadcast:{ *:[v8i32] } GR32:{ *:[i32] }:$src), immAllZerosV:{ *:[v8i32] }) - Complexity = 10
                        // Dst: (VPBROADCASTDrZ256rkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, GR32:{ *:[i32] }:$src)
/*275448*/            /*Scope*/ 18, /*->275467*/
/*275449*/              OPC_CheckChild0Type, MVT::i64,
/*275451*/              OPC_MoveParent,
/*275452*/              OPC_MoveChild2,
/*275453*/              OPC_CheckImmAllZerosV,
/*275454*/              OPC_MoveParent,
/*275455*/              OPC_CheckType, MVT::v8i64,
/*275457*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*275459*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQrZrkz), 0,
                            MVT::v8i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VBroadcast:{ *:[v8i64] } GR64:{ *:[i64] }:$src), immAllZerosV:{ *:[v8i64] }) - Complexity = 10
                        // Dst: (VPBROADCASTQrZrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, GR64:{ *:[i64] }:$src)
/*275467*/            /*Scope*/ 18, /*->275486*/
/*275468*/              OPC_CheckChild0Type, MVT::v8i16,
/*275470*/              OPC_MoveParent,
/*275471*/              OPC_MoveChild2,
/*275472*/              OPC_CheckImmAllZerosV,
/*275473*/              OPC_MoveParent,
/*275474*/              OPC_CheckType, MVT::v8i16,
/*275476*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*275478*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWZ128rkz), 0,
                            MVT::v8i16, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86VBroadcast:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src), immAllZerosV:{ *:[v8i16] }) - Complexity = 10
                        // Dst: (VPBROADCASTWZ128rkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/*275486*/            /*Scope*/ 18, /*->275505*/
/*275487*/              OPC_CheckChild0Type, MVT::v4i32,
/*275489*/              OPC_MoveParent,
/*275490*/              OPC_MoveChild2,
/*275491*/              OPC_CheckImmAllZerosV,
/*275492*/              OPC_MoveParent,
/*275493*/              OPC_CheckType, MVT::v8i32,
/*275495*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*275497*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTDZ256rkz), 0,
                            MVT::v8i32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VBroadcast:{ *:[v8i32] } VR128X:{ *:[v4i32] }:$src), immAllZerosV:{ *:[v8i32] }) - Complexity = 10
                        // Dst: (VPBROADCASTDZ256rkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*275505*/            /*Scope*/ 18, /*->275524*/
/*275506*/              OPC_CheckChild0Type, MVT::v2i64,
/*275508*/              OPC_MoveParent,
/*275509*/              OPC_MoveChild2,
/*275510*/              OPC_CheckImmAllZerosV,
/*275511*/              OPC_MoveParent,
/*275512*/              OPC_CheckType, MVT::v8i64,
/*275514*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*275516*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQZrkz), 0,
                            MVT::v8i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VBroadcast:{ *:[v8i64] } VR128X:{ *:[v2i64] }:$src), immAllZerosV:{ *:[v8i64] }) - Complexity = 10
                        // Dst: (VPBROADCASTQZrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*275524*/            /*Scope*/ 36, /*->275561*/
/*275525*/              OPC_CheckChild0Type, MVT::i16,
/*275527*/              OPC_MoveParent,
/*275528*/              OPC_MoveChild2,
/*275529*/              OPC_CheckImmAllZerosV,
/*275530*/              OPC_MoveParent,
/*275531*/              OPC_CheckType, MVT::v8i16,
/*275533*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*275535*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::i32, 0/*#Ops*/,  // Results = #2
/*275541*/              OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*275544*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::i32, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/*275553*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWrZ128rkz), 0,
                            MVT::v8i16, 2/*#Ops*/, 0, 4, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86VBroadcast:{ *:[v8i16] } GR16:{ *:[i16] }:$src), immAllZerosV:{ *:[v8i16] }) - Complexity = 10
                        // Dst: (VPBROADCASTWrZ128rkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR16:{ *:[i16] }:$src, sub_16bit:{ *:[i32] }))
/*275561*/            0, /*End of Scope*/
/*275562*/          /*SwitchOpcode*/ 51, TARGET_VAL(X86ISD::VPERMV3),// ->275616
/*275565*/            OPC_RecordChild0, // #1 = $src1
/*275566*/            OPC_RecordChild1, // #2 = $src2
/*275567*/            OPC_RecordChild2, // #3 = $src3
/*275568*/            OPC_MoveParent,
/*275569*/            OPC_MoveChild2,
/*275570*/            OPC_CheckImmAllZerosV,
/*275571*/            OPC_MoveParent,
/*275572*/            OPC_SwitchType /*3 cases */, 12, MVT::v8i32,// ->275587
/*275575*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*275577*/              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), immAllZerosV:{ *:[v8i32] }) - Complexity = 10
                        // Dst: (VPERMT2D256rrkz:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3)
/*275587*/            /*SwitchType*/ 12, MVT::v8i64,// ->275601
/*275589*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*275591*/              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), immAllZerosV:{ *:[v8i64] }) - Complexity = 10
                        // Dst: (VPERMT2Qrrkz:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src3)
/*275601*/            /*SwitchType*/ 12, MVT::v8i16,// ->275615
/*275603*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*275605*/              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), immAllZerosV:{ *:[v8i16] }) - Complexity = 10
                        // Dst: (VPERMT2W128rrkz:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src2, VR128X:{ *:[v8i16] }:$src3)
/*275615*/            0, // EndSwitchType
/*275616*/          /*SwitchOpcode*/ 47, TARGET_VAL(ISD::ADD),// ->275666
/*275619*/            OPC_RecordChild0, // #1 = $src1
/*275620*/            OPC_RecordChild1, // #2 = $src2
/*275621*/            OPC_MoveParent,
/*275622*/            OPC_MoveChild2,
/*275623*/            OPC_CheckImmAllZerosV,
/*275624*/            OPC_MoveParent,
/*275625*/            OPC_SwitchType /*3 cases */, 11, MVT::v8i64,// ->275639
/*275628*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*275630*/              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), immAllZerosV:{ *:[v8i64] }) - Complexity = 10
                        // Dst: (VPADDQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*275639*/            /*SwitchType*/ 11, MVT::v8i32,// ->275652
/*275641*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*275643*/              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), immAllZerosV:{ *:[v8i32] }) - Complexity = 10
                        // Dst: (VPADDDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*275652*/            /*SwitchType*/ 11, MVT::v8i16,// ->275665
/*275654*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*275656*/              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), immAllZerosV:{ *:[v8i16] }) - Complexity = 10
                        // Dst: (VPADDWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*275665*/            0, // EndSwitchType
/*275666*/          /*SwitchOpcode*/ 47, TARGET_VAL(ISD::SUB),// ->275716
/*275669*/            OPC_RecordChild0, // #1 = $src1
/*275670*/            OPC_RecordChild1, // #2 = $src2
/*275671*/            OPC_MoveParent,
/*275672*/            OPC_MoveChild2,
/*275673*/            OPC_CheckImmAllZerosV,
/*275674*/            OPC_MoveParent,
/*275675*/            OPC_SwitchType /*3 cases */, 11, MVT::v8i64,// ->275689
/*275678*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*275680*/              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), immAllZerosV:{ *:[v8i64] }) - Complexity = 10
                        // Dst: (VPSUBQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*275689*/            /*SwitchType*/ 11, MVT::v8i32,// ->275702
/*275691*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*275693*/              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), immAllZerosV:{ *:[v8i32] }) - Complexity = 10
                        // Dst: (VPSUBDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*275702*/            /*SwitchType*/ 11, MVT::v8i16,// ->275715
/*275704*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*275706*/              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), immAllZerosV:{ *:[v8i16] }) - Complexity = 10
                        // Dst: (VPSUBWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*275715*/            0, // EndSwitchType
/*275716*/          /*SwitchOpcode*/ 19, TARGET_VAL(ISD::SADDSAT),// ->275738
/*275719*/            OPC_RecordChild0, // #1 = $src1
/*275720*/            OPC_RecordChild1, // #2 = $src2
/*275721*/            OPC_MoveParent,
/*275722*/            OPC_MoveChild2,
/*275723*/            OPC_CheckImmAllZerosV,
/*275724*/            OPC_MoveParent,
/*275725*/            OPC_CheckType, MVT::v8i16,
/*275727*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*275729*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSWZ128rrkz), 0,
                          MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (saddsat:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), immAllZerosV:{ *:[v8i16] }) - Complexity = 10
                      // Dst: (VPADDSWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*275738*/          /*SwitchOpcode*/ 19, TARGET_VAL(ISD::SSUBSAT),// ->275760
/*275741*/            OPC_RecordChild0, // #1 = $src1
/*275742*/            OPC_RecordChild1, // #2 = $src2
/*275743*/            OPC_MoveParent,
/*275744*/            OPC_MoveChild2,
/*275745*/            OPC_CheckImmAllZerosV,
/*275746*/            OPC_MoveParent,
/*275747*/            OPC_CheckType, MVT::v8i16,
/*275749*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*275751*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSWZ128rrkz), 0,
                          MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (ssubsat:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), immAllZerosV:{ *:[v8i16] }) - Complexity = 10
                      // Dst: (VPSUBSWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*275760*/          /*SwitchOpcode*/ 19, TARGET_VAL(ISD::UADDSAT),// ->275782
/*275763*/            OPC_RecordChild0, // #1 = $src1
/*275764*/            OPC_RecordChild1, // #2 = $src2
/*275765*/            OPC_MoveParent,
/*275766*/            OPC_MoveChild2,
/*275767*/            OPC_CheckImmAllZerosV,
/*275768*/            OPC_MoveParent,
/*275769*/            OPC_CheckType, MVT::v8i16,
/*275771*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*275773*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSWZ128rrkz), 0,
                          MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (uaddsat:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), immAllZerosV:{ *:[v8i16] }) - Complexity = 10
                      // Dst: (VPADDUSWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*275782*/          /*SwitchOpcode*/ 19, TARGET_VAL(ISD::USUBSAT),// ->275804
/*275785*/            OPC_RecordChild0, // #1 = $src1
/*275786*/            OPC_RecordChild1, // #2 = $src2
/*275787*/            OPC_MoveParent,
/*275788*/            OPC_MoveChild2,
/*275789*/            OPC_CheckImmAllZerosV,
/*275790*/            OPC_MoveParent,
/*275791*/            OPC_CheckType, MVT::v8i16,
/*275793*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*275795*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSWZ128rrkz), 0,
                          MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (usubsat:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), immAllZerosV:{ *:[v8i16] }) - Complexity = 10
                      // Dst: (VPSUBUSWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*275804*/          /*SwitchOpcode*/ 47, TARGET_VAL(ISD::MUL),// ->275854
/*275807*/            OPC_RecordChild0, // #1 = $src1
/*275808*/            OPC_RecordChild1, // #2 = $src2
/*275809*/            OPC_MoveParent,
/*275810*/            OPC_MoveChild2,
/*275811*/            OPC_CheckImmAllZerosV,
/*275812*/            OPC_MoveParent,
/*275813*/            OPC_SwitchType /*3 cases */, 11, MVT::v8i32,// ->275827
/*275816*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*275818*/              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), immAllZerosV:{ *:[v8i32] }) - Complexity = 10
                        // Dst: (VPMULLDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*275827*/            /*SwitchType*/ 11, MVT::v8i16,// ->275840
/*275829*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*275831*/              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), immAllZerosV:{ *:[v8i16] }) - Complexity = 10
                        // Dst: (VPMULLWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*275840*/            /*SwitchType*/ 11, MVT::v8i64,// ->275853
/*275842*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*275844*/              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), immAllZerosV:{ *:[v8i64] }) - Complexity = 10
                        // Dst: (VPMULLQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*275853*/            0, // EndSwitchType
/*275854*/          /*SwitchOpcode*/ 19, TARGET_VAL(ISD::MULHS),// ->275876
/*275857*/            OPC_RecordChild0, // #1 = $src1
/*275858*/            OPC_RecordChild1, // #2 = $src2
/*275859*/            OPC_MoveParent,
/*275860*/            OPC_MoveChild2,
/*275861*/            OPC_CheckImmAllZerosV,
/*275862*/            OPC_MoveParent,
/*275863*/            OPC_CheckType, MVT::v8i16,
/*275865*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*275867*/            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), immAllZerosV:{ *:[v8i16] }) - Complexity = 10
                      // Dst: (VPMULHWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*275876*/          /*SwitchOpcode*/ 19, TARGET_VAL(ISD::MULHU),// ->275898
/*275879*/            OPC_RecordChild0, // #1 = $src1
/*275880*/            OPC_RecordChild1, // #2 = $src2
/*275881*/            OPC_MoveParent,
/*275882*/            OPC_MoveChild2,
/*275883*/            OPC_CheckImmAllZerosV,
/*275884*/            OPC_MoveParent,
/*275885*/            OPC_CheckType, MVT::v8i16,
/*275887*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*275889*/            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), immAllZerosV:{ *:[v8i16] }) - Complexity = 10
                      // Dst: (VPMULHUWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*275898*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::MULHRS),// ->275920
/*275901*/            OPC_RecordChild0, // #1 = $src1
/*275902*/            OPC_RecordChild1, // #2 = $src2
/*275903*/            OPC_MoveParent,
/*275904*/            OPC_MoveChild2,
/*275905*/            OPC_CheckImmAllZerosV,
/*275906*/            OPC_MoveParent,
/*275907*/            OPC_CheckType, MVT::v8i16,
/*275909*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*275911*/            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), immAllZerosV:{ *:[v8i16] }) - Complexity = 10
                      // Dst: (VPMULHRSWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*275920*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::AVG),// ->275942
/*275923*/            OPC_RecordChild0, // #1 = $src1
/*275924*/            OPC_RecordChild1, // #2 = $src2
/*275925*/            OPC_MoveParent,
/*275926*/            OPC_MoveChild2,
/*275927*/            OPC_CheckImmAllZerosV,
/*275928*/            OPC_MoveParent,
/*275929*/            OPC_CheckType, MVT::v8i16,
/*275931*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*275933*/            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), immAllZerosV:{ *:[v8i16] }) - Complexity = 10
                      // Dst: (VPAVGWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*275942*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::PMULDQ),// ->275964
/*275945*/            OPC_RecordChild0, // #1 = $src1
/*275946*/            OPC_RecordChild1, // #2 = $src2
/*275947*/            OPC_MoveParent,
/*275948*/            OPC_MoveChild2,
/*275949*/            OPC_CheckImmAllZerosV,
/*275950*/            OPC_MoveParent,
/*275951*/            OPC_CheckType, MVT::v8i64,
/*275953*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*275955*/            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), immAllZerosV:{ *:[v8i64] }) - Complexity = 10
                      // Dst: (VPMULDQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*275964*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::PMULUDQ),// ->275986
/*275967*/            OPC_RecordChild0, // #1 = $src1
/*275968*/            OPC_RecordChild1, // #2 = $src2
/*275969*/            OPC_MoveParent,
/*275970*/            OPC_MoveChild2,
/*275971*/            OPC_CheckImmAllZerosV,
/*275972*/            OPC_MoveParent,
/*275973*/            OPC_CheckType, MVT::v8i64,
/*275975*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*275977*/            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), immAllZerosV:{ *:[v8i64] }) - Complexity = 10
                      // Dst: (VPMULUDQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*275986*/          /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::PACKSS),// ->276010
/*275989*/            OPC_RecordChild0, // #1 = $src1
/*275990*/            OPC_CheckChild0Type, MVT::v4i32,
/*275992*/            OPC_RecordChild1, // #2 = $src2
/*275993*/            OPC_MoveParent,
/*275994*/            OPC_MoveChild2,
/*275995*/            OPC_CheckImmAllZerosV,
/*275996*/            OPC_MoveParent,
/*275997*/            OPC_CheckType, MVT::v8i16,
/*275999*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*276001*/            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), immAllZerosV:{ *:[v8i16] }) - Complexity = 10
                      // Dst: (VPACKSSDWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*276010*/          /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::PACKUS),// ->276034
/*276013*/            OPC_RecordChild0, // #1 = $src1
/*276014*/            OPC_CheckChild0Type, MVT::v4i32,
/*276016*/            OPC_RecordChild1, // #2 = $src2
/*276017*/            OPC_MoveParent,
/*276018*/            OPC_MoveChild2,
/*276019*/            OPC_CheckImmAllZerosV,
/*276020*/            OPC_MoveParent,
/*276021*/            OPC_CheckType, MVT::v8i16,
/*276023*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*276025*/            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), immAllZerosV:{ *:[v8i16] }) - Complexity = 10
                      // Dst: (VPACKUSDWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*276034*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::VPMADDUBSW),// ->276056
/*276037*/            OPC_RecordChild0, // #1 = $src1
/*276038*/            OPC_RecordChild1, // #2 = $src2
/*276039*/            OPC_MoveParent,
/*276040*/            OPC_MoveChild2,
/*276041*/            OPC_CheckImmAllZerosV,
/*276042*/            OPC_MoveParent,
/*276043*/            OPC_CheckType, MVT::v8i16,
/*276045*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*276047*/            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), immAllZerosV:{ *:[v8i16] }) - Complexity = 10
                      // Dst: (VPMADDUBSWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*276056*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::VPMADDWD),// ->276078
/*276059*/            OPC_RecordChild0, // #1 = $src1
/*276060*/            OPC_RecordChild1, // #2 = $src2
/*276061*/            OPC_MoveParent,
/*276062*/            OPC_MoveChild2,
/*276063*/            OPC_CheckImmAllZerosV,
/*276064*/            OPC_MoveParent,
/*276065*/            OPC_CheckType, MVT::v8i32,
/*276067*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*276069*/            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), immAllZerosV:{ *:[v8i32] }) - Complexity = 10
                      // Dst: (VPMADDWDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*276078*/          /*SwitchOpcode*/ 47, TARGET_VAL(ISD::SMAX),// ->276128
/*276081*/            OPC_RecordChild0, // #1 = $src1
/*276082*/            OPC_RecordChild1, // #2 = $src2
/*276083*/            OPC_MoveParent,
/*276084*/            OPC_MoveChild2,
/*276085*/            OPC_CheckImmAllZerosV,
/*276086*/            OPC_MoveParent,
/*276087*/            OPC_SwitchType /*3 cases */, 11, MVT::v8i16,// ->276101
/*276090*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*276092*/              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), immAllZerosV:{ *:[v8i16] }) - Complexity = 10
                        // Dst: (VPMAXSWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*276101*/            /*SwitchType*/ 11, MVT::v8i32,// ->276114
/*276103*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*276105*/              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), immAllZerosV:{ *:[v8i32] }) - Complexity = 10
                        // Dst: (VPMAXSDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*276114*/            /*SwitchType*/ 11, MVT::v8i64,// ->276127
/*276116*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*276118*/              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), immAllZerosV:{ *:[v8i64] }) - Complexity = 10
                        // Dst: (VPMAXSQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*276127*/            0, // EndSwitchType
/*276128*/          /*SwitchOpcode*/ 47, TARGET_VAL(ISD::UMAX),// ->276178
/*276131*/            OPC_RecordChild0, // #1 = $src1
/*276132*/            OPC_RecordChild1, // #2 = $src2
/*276133*/            OPC_MoveParent,
/*276134*/            OPC_MoveChild2,
/*276135*/            OPC_CheckImmAllZerosV,
/*276136*/            OPC_MoveParent,
/*276137*/            OPC_SwitchType /*3 cases */, 11, MVT::v8i16,// ->276151
/*276140*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*276142*/              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), immAllZerosV:{ *:[v8i16] }) - Complexity = 10
                        // Dst: (VPMAXUWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*276151*/            /*SwitchType*/ 11, MVT::v8i32,// ->276164
/*276153*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*276155*/              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), immAllZerosV:{ *:[v8i32] }) - Complexity = 10
                        // Dst: (VPMAXUDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*276164*/            /*SwitchType*/ 11, MVT::v8i64,// ->276177
/*276166*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*276168*/              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), immAllZerosV:{ *:[v8i64] }) - Complexity = 10
                        // Dst: (VPMAXUQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*276177*/            0, // EndSwitchType
/*276178*/          /*SwitchOpcode*/ 47, TARGET_VAL(ISD::SMIN),// ->276228
/*276181*/            OPC_RecordChild0, // #1 = $src1
/*276182*/            OPC_RecordChild1, // #2 = $src2
/*276183*/            OPC_MoveParent,
/*276184*/            OPC_MoveChild2,
/*276185*/            OPC_CheckImmAllZerosV,
/*276186*/            OPC_MoveParent,
/*276187*/            OPC_SwitchType /*3 cases */, 11, MVT::v8i16,// ->276201
/*276190*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*276192*/              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), immAllZerosV:{ *:[v8i16] }) - Complexity = 10
                        // Dst: (VPMINSWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*276201*/            /*SwitchType*/ 11, MVT::v8i32,// ->276214
/*276203*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*276205*/              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), immAllZerosV:{ *:[v8i32] }) - Complexity = 10
                        // Dst: (VPMINSDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*276214*/            /*SwitchType*/ 11, MVT::v8i64,// ->276227
/*276216*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*276218*/              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), immAllZerosV:{ *:[v8i64] }) - Complexity = 10
                        // Dst: (VPMINSQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*276227*/            0, // EndSwitchType
/*276228*/          /*SwitchOpcode*/ 47, TARGET_VAL(ISD::UMIN),// ->276278
/*276231*/            OPC_RecordChild0, // #1 = $src1
/*276232*/            OPC_RecordChild1, // #2 = $src2
/*276233*/            OPC_MoveParent,
/*276234*/            OPC_MoveChild2,
/*276235*/            OPC_CheckImmAllZerosV,
/*276236*/            OPC_MoveParent,
/*276237*/            OPC_SwitchType /*3 cases */, 11, MVT::v8i16,// ->276251
/*276240*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*276242*/              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), immAllZerosV:{ *:[v8i16] }) - Complexity = 10
                        // Dst: (VPMINUWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*276251*/            /*SwitchType*/ 11, MVT::v8i32,// ->276264
/*276253*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*276255*/              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), immAllZerosV:{ *:[v8i32] }) - Complexity = 10
                        // Dst: (VPMINUDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*276264*/            /*SwitchType*/ 11, MVT::v8i64,// ->276277
/*276266*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*276268*/              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), immAllZerosV:{ *:[v8i64] }) - Complexity = 10
                        // Dst: (VPMINUQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*276277*/            0, // EndSwitchType
/*276278*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::AND),// ->276315
/*276281*/            OPC_RecordChild0, // #1 = $src1
/*276282*/            OPC_RecordChild1, // #2 = $src2
/*276283*/            OPC_MoveParent,
/*276284*/            OPC_MoveChild2,
/*276285*/            OPC_CheckImmAllZerosV,
/*276286*/            OPC_MoveParent,
/*276287*/            OPC_SwitchType /*2 cases */, 11, MVT::v8i64,// ->276301
/*276290*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*276292*/              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), immAllZerosV:{ *:[v8i64] }) - Complexity = 10
                        // Dst: (VPANDQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*276301*/            /*SwitchType*/ 11, MVT::v8i32,// ->276314
/*276303*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*276305*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ256rrkz), 0,
                            MVT::v8i32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (and:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2), immAllZerosV:{ *:[v8i32] }) - Complexity = 10
                        // Dst: (VPANDDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*276314*/            0, // EndSwitchType
/*276315*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::OR),// ->276352
/*276318*/            OPC_RecordChild0, // #1 = $src1
/*276319*/            OPC_RecordChild1, // #2 = $src2
/*276320*/            OPC_MoveParent,
/*276321*/            OPC_MoveChild2,
/*276322*/            OPC_CheckImmAllZerosV,
/*276323*/            OPC_MoveParent,
/*276324*/            OPC_SwitchType /*2 cases */, 11, MVT::v8i64,// ->276338
/*276327*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*276329*/              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), immAllZerosV:{ *:[v8i64] }) - Complexity = 10
                        // Dst: (VPORQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*276338*/            /*SwitchType*/ 11, MVT::v8i32,// ->276351
/*276340*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*276342*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ256rrkz), 0,
                            MVT::v8i32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (or:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2), immAllZerosV:{ *:[v8i32] }) - Complexity = 10
                        // Dst: (VPORDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*276351*/            0, // EndSwitchType
/*276352*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::XOR),// ->276389
/*276355*/            OPC_RecordChild0, // #1 = $src1
/*276356*/            OPC_RecordChild1, // #2 = $src2
/*276357*/            OPC_MoveParent,
/*276358*/            OPC_MoveChild2,
/*276359*/            OPC_CheckImmAllZerosV,
/*276360*/            OPC_MoveParent,
/*276361*/            OPC_SwitchType /*2 cases */, 11, MVT::v8i64,// ->276375
/*276364*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*276366*/              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), immAllZerosV:{ *:[v8i64] }) - Complexity = 10
                        // Dst: (VPXORQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*276375*/            /*SwitchType*/ 11, MVT::v8i32,// ->276388
/*276377*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*276379*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ256rrkz), 0,
                            MVT::v8i32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (xor:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2), immAllZerosV:{ *:[v8i32] }) - Complexity = 10
                        // Dst: (VPXORDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*276388*/            0, // EndSwitchType
/*276389*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::ANDNP),// ->276426
/*276392*/            OPC_RecordChild0, // #1 = $src1
/*276393*/            OPC_RecordChild1, // #2 = $src2
/*276394*/            OPC_MoveParent,
/*276395*/            OPC_MoveChild2,
/*276396*/            OPC_CheckImmAllZerosV,
/*276397*/            OPC_MoveParent,
/*276398*/            OPC_SwitchType /*2 cases */, 11, MVT::v8i64,// ->276412
/*276401*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*276403*/              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), immAllZerosV:{ *:[v8i64] }) - Complexity = 10
                        // Dst: (VPANDNQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*276412*/            /*SwitchType*/ 11, MVT::v8i32,// ->276425
/*276414*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*276416*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZ256rrkz), 0,
                            MVT::v8i32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86andnp:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2), immAllZerosV:{ *:[v8i32] }) - Complexity = 10
                        // Dst: (VPANDNDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*276425*/            0, // EndSwitchType
/*276426*/          /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VSHL),// ->276493
/*276429*/            OPC_RecordChild0, // #1 = $src1
/*276430*/            OPC_RecordChild1, // #2 = $src2
/*276431*/            OPC_Scope, 19, /*->276452*/ // 3 children in Scope
/*276433*/              OPC_CheckChild1Type, MVT::v4i32,
/*276435*/              OPC_MoveParent,
/*276436*/              OPC_MoveChild2,
/*276437*/              OPC_CheckImmAllZerosV,
/*276438*/              OPC_MoveParent,
/*276439*/              OPC_CheckType, MVT::v8i32,
/*276441*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*276443*/              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), immAllZerosV:{ *:[v8i32] }) - Complexity = 10
                        // Dst: (VPSLLDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*276452*/            /*Scope*/ 19, /*->276472*/
/*276453*/              OPC_CheckChild1Type, MVT::v2i64,
/*276455*/              OPC_MoveParent,
/*276456*/              OPC_MoveChild2,
/*276457*/              OPC_CheckImmAllZerosV,
/*276458*/              OPC_MoveParent,
/*276459*/              OPC_CheckType, MVT::v8i64,
/*276461*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*276463*/              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), immAllZerosV:{ *:[v8i64] }) - Complexity = 10
                        // Dst: (VPSLLQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*276472*/            /*Scope*/ 19, /*->276492*/
/*276473*/              OPC_CheckChild1Type, MVT::v8i16,
/*276475*/              OPC_MoveParent,
/*276476*/              OPC_MoveChild2,
/*276477*/              OPC_CheckImmAllZerosV,
/*276478*/              OPC_MoveParent,
/*276479*/              OPC_CheckType, MVT::v8i16,
/*276481*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*276483*/              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), immAllZerosV:{ *:[v8i16] }) - Complexity = 10
                        // Dst: (VPSLLWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*276492*/            0, /*End of Scope*/
/*276493*/          /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VSRA),// ->276560
/*276496*/            OPC_RecordChild0, // #1 = $src1
/*276497*/            OPC_RecordChild1, // #2 = $src2
/*276498*/            OPC_Scope, 19, /*->276519*/ // 3 children in Scope
/*276500*/              OPC_CheckChild1Type, MVT::v4i32,
/*276502*/              OPC_MoveParent,
/*276503*/              OPC_MoveChild2,
/*276504*/              OPC_CheckImmAllZerosV,
/*276505*/              OPC_MoveParent,
/*276506*/              OPC_CheckType, MVT::v8i32,
/*276508*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*276510*/              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), immAllZerosV:{ *:[v8i32] }) - Complexity = 10
                        // Dst: (VPSRADZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*276519*/            /*Scope*/ 19, /*->276539*/
/*276520*/              OPC_CheckChild1Type, MVT::v2i64,
/*276522*/              OPC_MoveParent,
/*276523*/              OPC_MoveChild2,
/*276524*/              OPC_CheckImmAllZerosV,
/*276525*/              OPC_MoveParent,
/*276526*/              OPC_CheckType, MVT::v8i64,
/*276528*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*276530*/              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), immAllZerosV:{ *:[v8i64] }) - Complexity = 10
                        // Dst: (VPSRAQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*276539*/            /*Scope*/ 19, /*->276559*/
/*276540*/              OPC_CheckChild1Type, MVT::v8i16,
/*276542*/              OPC_MoveParent,
/*276543*/              OPC_MoveChild2,
/*276544*/              OPC_CheckImmAllZerosV,
/*276545*/              OPC_MoveParent,
/*276546*/              OPC_CheckType, MVT::v8i16,
/*276548*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*276550*/              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), immAllZerosV:{ *:[v8i16] }) - Complexity = 10
                        // Dst: (VPSRAWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*276559*/            0, /*End of Scope*/
/*276560*/          /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VSRL),// ->276627
/*276563*/            OPC_RecordChild0, // #1 = $src1
/*276564*/            OPC_RecordChild1, // #2 = $src2
/*276565*/            OPC_Scope, 19, /*->276586*/ // 3 children in Scope
/*276567*/              OPC_CheckChild1Type, MVT::v4i32,
/*276569*/              OPC_MoveParent,
/*276570*/              OPC_MoveChild2,
/*276571*/              OPC_CheckImmAllZerosV,
/*276572*/              OPC_MoveParent,
/*276573*/              OPC_CheckType, MVT::v8i32,
/*276575*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*276577*/              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), immAllZerosV:{ *:[v8i32] }) - Complexity = 10
                        // Dst: (VPSRLDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*276586*/            /*Scope*/ 19, /*->276606*/
/*276587*/              OPC_CheckChild1Type, MVT::v2i64,
/*276589*/              OPC_MoveParent,
/*276590*/              OPC_MoveChild2,
/*276591*/              OPC_CheckImmAllZerosV,
/*276592*/              OPC_MoveParent,
/*276593*/              OPC_CheckType, MVT::v8i64,
/*276595*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*276597*/              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), immAllZerosV:{ *:[v8i64] }) - Complexity = 10
                        // Dst: (VPSRLQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*276606*/            /*Scope*/ 19, /*->276626*/
/*276607*/              OPC_CheckChild1Type, MVT::v8i16,
/*276609*/              OPC_MoveParent,
/*276610*/              OPC_MoveChild2,
/*276611*/              OPC_CheckImmAllZerosV,
/*276612*/              OPC_MoveParent,
/*276613*/              OPC_CheckType, MVT::v8i16,
/*276615*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*276617*/              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), immAllZerosV:{ *:[v8i16] }) - Complexity = 10
                        // Dst: (VPSRLWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*276626*/            0, /*End of Scope*/
/*276627*/          /*SwitchOpcode*/ 47, TARGET_VAL(X86ISD::VSHLV),// ->276677
/*276630*/            OPC_RecordChild0, // #1 = $src1
/*276631*/            OPC_RecordChild1, // #2 = $src2
/*276632*/            OPC_MoveParent,
/*276633*/            OPC_MoveChild2,
/*276634*/            OPC_CheckImmAllZerosV,
/*276635*/            OPC_MoveParent,
/*276636*/            OPC_SwitchType /*3 cases */, 11, MVT::v8i32,// ->276650
/*276639*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*276641*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVDZ256rrkz), 0,
                            MVT::v8i32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vshlv:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2), immAllZerosV:{ *:[v8i32] }) - Complexity = 10
                        // Dst: (VPSLLVDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*276650*/            /*SwitchType*/ 11, MVT::v8i64,// ->276663
/*276652*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*276654*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVQZrrkz), 0,
                            MVT::v8i64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vshlv:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2), immAllZerosV:{ *:[v8i64] }) - Complexity = 10
                        // Dst: (VPSLLVQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*276663*/            /*SwitchType*/ 11, MVT::v8i16,// ->276676
/*276665*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*276667*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVWZ128rrkz), 0,
                            MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vshlv:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), immAllZerosV:{ *:[v8i16] }) - Complexity = 10
                        // Dst: (VPSLLVWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*276676*/            0, // EndSwitchType
/*276677*/          /*SwitchOpcode*/ 47, TARGET_VAL(X86ISD::VSRAV),// ->276727
/*276680*/            OPC_RecordChild0, // #1 = $src1
/*276681*/            OPC_RecordChild1, // #2 = $src2
/*276682*/            OPC_MoveParent,
/*276683*/            OPC_MoveChild2,
/*276684*/            OPC_CheckImmAllZerosV,
/*276685*/            OPC_MoveParent,
/*276686*/            OPC_SwitchType /*3 cases */, 11, MVT::v8i32,// ->276700
/*276689*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*276691*/              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), immAllZerosV:{ *:[v8i32] }) - Complexity = 10
                        // Dst: (VPSRAVDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*276700*/            /*SwitchType*/ 11, MVT::v8i64,// ->276713
/*276702*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*276704*/              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), immAllZerosV:{ *:[v8i64] }) - Complexity = 10
                        // Dst: (VPSRAVQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*276713*/            /*SwitchType*/ 11, MVT::v8i16,// ->276726
/*276715*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*276717*/              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), immAllZerosV:{ *:[v8i16] }) - Complexity = 10
                        // Dst: (VPSRAVWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*276726*/            0, // EndSwitchType
/*276727*/          /*SwitchOpcode*/ 47, TARGET_VAL(X86ISD::VSRLV),// ->276777
/*276730*/            OPC_RecordChild0, // #1 = $src1
/*276731*/            OPC_RecordChild1, // #2 = $src2
/*276732*/            OPC_MoveParent,
/*276733*/            OPC_MoveChild2,
/*276734*/            OPC_CheckImmAllZerosV,
/*276735*/            OPC_MoveParent,
/*276736*/            OPC_SwitchType /*3 cases */, 11, MVT::v8i32,// ->276750
/*276739*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*276741*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVDZ256rrkz), 0,
                            MVT::v8i32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrlv:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2), immAllZerosV:{ *:[v8i32] }) - Complexity = 10
                        // Dst: (VPSRLVDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*276750*/            /*SwitchType*/ 11, MVT::v8i64,// ->276763
/*276752*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*276754*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVQZrrkz), 0,
                            MVT::v8i64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrlv:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2), immAllZerosV:{ *:[v8i64] }) - Complexity = 10
                        // Dst: (VPSRLVQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*276763*/            /*SwitchType*/ 11, MVT::v8i16,// ->276776
/*276765*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*276767*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVWZ128rrkz), 0,
                            MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrlv:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2), immAllZerosV:{ *:[v8i16] }) - Complexity = 10
                        // Dst: (VPSRLVWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*276776*/            0, // EndSwitchType
/*276777*/          /*SwitchOpcode*/ 44, TARGET_VAL(ISD::ROTR),// ->276824
/*276780*/            OPC_RecordChild0, // #1 = $src1
/*276781*/            OPC_RecordChild1, // #2 = $src2
/*276782*/            OPC_Scope, 19, /*->276803*/ // 2 children in Scope
/*276784*/              OPC_CheckChild1Type, MVT::v8i32,
/*276786*/              OPC_MoveParent,
/*276787*/              OPC_MoveChild2,
/*276788*/              OPC_CheckImmAllZerosV,
/*276789*/              OPC_MoveParent,
/*276790*/              OPC_CheckType, MVT::v8i32,
/*276792*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*276794*/              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), immAllZerosV:{ *:[v8i32] }) - Complexity = 10
                        // Dst: (VPRORVDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*276803*/            /*Scope*/ 19, /*->276823*/
/*276804*/              OPC_CheckChild1Type, MVT::v8i64,
/*276806*/              OPC_MoveParent,
/*276807*/              OPC_MoveChild2,
/*276808*/              OPC_CheckImmAllZerosV,
/*276809*/              OPC_MoveParent,
/*276810*/              OPC_CheckType, MVT::v8i64,
/*276812*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*276814*/              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), immAllZerosV:{ *:[v8i64] }) - Complexity = 10
                        // Dst: (VPRORVQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*276823*/            0, /*End of Scope*/
/*276824*/          /*SwitchOpcode*/ 44, TARGET_VAL(ISD::ROTL),// ->276871
/*276827*/            OPC_RecordChild0, // #1 = $src1
/*276828*/            OPC_RecordChild1, // #2 = $src2
/*276829*/            OPC_Scope, 19, /*->276850*/ // 2 children in Scope
/*276831*/              OPC_CheckChild1Type, MVT::v8i32,
/*276833*/              OPC_MoveParent,
/*276834*/              OPC_MoveChild2,
/*276835*/              OPC_CheckImmAllZerosV,
/*276836*/              OPC_MoveParent,
/*276837*/              OPC_CheckType, MVT::v8i32,
/*276839*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*276841*/              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), immAllZerosV:{ *:[v8i32] }) - Complexity = 10
                        // Dst: (VPROLVDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*276850*/            /*Scope*/ 19, /*->276870*/
/*276851*/              OPC_CheckChild1Type, MVT::v8i64,
/*276853*/              OPC_MoveParent,
/*276854*/              OPC_MoveChild2,
/*276855*/              OPC_CheckImmAllZerosV,
/*276856*/              OPC_MoveParent,
/*276857*/              OPC_CheckType, MVT::v8i64,
/*276859*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*276861*/              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), immAllZerosV:{ *:[v8i64] }) - Complexity = 10
                        // Dst: (VPROLVQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*276870*/            0, /*End of Scope*/
/*276871*/          /*SwitchOpcode*/ 47, TARGET_VAL(X86ISD::VPERMV),// ->276921
/*276874*/            OPC_RecordChild0, // #1 = $src1
/*276875*/            OPC_RecordChild1, // #2 = $src2
/*276876*/            OPC_MoveParent,
/*276877*/            OPC_MoveChild2,
/*276878*/            OPC_CheckImmAllZerosV,
/*276879*/            OPC_MoveParent,
/*276880*/            OPC_SwitchType /*3 cases */, 11, MVT::v8i16,// ->276894
/*276883*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*276885*/              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), immAllZerosV:{ *:[v8i16] }) - Complexity = 10
                        // Dst: (VPERMWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*276894*/            /*SwitchType*/ 11, MVT::v8i32,// ->276907
/*276896*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*276898*/              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), immAllZerosV:{ *:[v8i32] }) - Complexity = 10
                        // Dst: (VPERMDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*276907*/            /*SwitchType*/ 11, MVT::v8i64,// ->276920
/*276909*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*276911*/              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), immAllZerosV:{ *:[v8i64] }) - Complexity = 10
                        // Dst: (VPERMQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*276920*/            0, // EndSwitchType
/*276921*/          /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::VPMADD52L),// ->276945
/*276924*/            OPC_RecordChild0, // #1 = $src2
/*276925*/            OPC_RecordChild1, // #2 = $src3
/*276926*/            OPC_RecordChild2, // #3 = $src1
/*276927*/            OPC_MoveParent,
/*276928*/            OPC_MoveChild2,
/*276929*/            OPC_CheckImmAllZerosV,
/*276930*/            OPC_MoveParent,
/*276931*/            OPC_CheckType, MVT::v8i64,
/*276933*/            OPC_CheckPatternPredicate, 185, // (Subtarget->hasIFMA())
/*276935*/            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), immAllZerosV:{ *:[v8i64] }) - Complexity = 10
                      // Dst: (VPMADD52LUQZrkz:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src3)
/*276945*/          /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::VPMADD52H),// ->276969
/*276948*/            OPC_RecordChild0, // #1 = $src2
/*276949*/            OPC_RecordChild1, // #2 = $src3
/*276950*/            OPC_RecordChild2, // #3 = $src1
/*276951*/            OPC_MoveParent,
/*276952*/            OPC_MoveChild2,
/*276953*/            OPC_CheckImmAllZerosV,
/*276954*/            OPC_MoveParent,
/*276955*/            OPC_CheckType, MVT::v8i64,
/*276957*/            OPC_CheckPatternPredicate, 185, // (Subtarget->hasIFMA())
/*276959*/            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), immAllZerosV:{ *:[v8i64] }) - Complexity = 10
                      // Dst: (VPMADD52HUQZrkz:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src3)
/*276969*/          /*SwitchOpcode*/ 75, TARGET_VAL(X86ISD::STRICT_CVTTP2SI),// ->277047
/*276972*/            OPC_RecordNode, // #1 = 'X86strict_cvttp2si' chained node
/*276973*/            OPC_CheckFoldableChainNode,
/*276974*/            OPC_RecordChild1, // #2 = $src
/*276975*/            OPC_Scope, 34, /*->277011*/ // 2 children in Scope
/*276977*/              OPC_CheckChild1Type, MVT::v8f32,
/*276979*/              OPC_MoveParent,
/*276980*/              OPC_MoveChild2,
/*276981*/              OPC_CheckImmAllZerosV,
/*276982*/              OPC_MoveParent,
/*276983*/              OPC_SwitchType /*2 cases */, 11, MVT::v8i32,// ->276997
/*276986*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*276988*/                OPC_EmitMergeInputChains1_1,
/*276989*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZ256rrkz), 0|OPFL_Chain,
                              MVT::v8i32, 2/*#Ops*/, 0, 2, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_cvttp2si:{ *:[v8i32] } VR256X:{ *:[v8f32] }:$src), immAllZerosV:{ *:[v8i32] }) - Complexity = 10
                          // Dst: (VCVTTPS2DQZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*276997*/              /*SwitchType*/ 11, MVT::v8i64,// ->277010
/*276999*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*277001*/                OPC_EmitMergeInputChains1_1,
/*277002*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZrrkz), 0|OPFL_Chain,
                              MVT::v8i64, 2/*#Ops*/, 0, 2, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_cvttp2si:{ *:[v8i64] } VR256X:{ *:[v8f32] }:$src), immAllZerosV:{ *:[v8i64] }) - Complexity = 10
                          // Dst: (VCVTTPS2QQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*277010*/              0, // EndSwitchType
/*277011*/            /*Scope*/ 34, /*->277046*/
/*277012*/              OPC_CheckChild1Type, MVT::v8f64,
/*277014*/              OPC_MoveParent,
/*277015*/              OPC_MoveChild2,
/*277016*/              OPC_CheckImmAllZerosV,
/*277017*/              OPC_MoveParent,
/*277018*/              OPC_SwitchType /*2 cases */, 11, MVT::v8i32,// ->277032
/*277021*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*277023*/                OPC_EmitMergeInputChains1_1,
/*277024*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZrrkz), 0|OPFL_Chain,
                              MVT::v8i32, 2/*#Ops*/, 0, 2, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_cvttp2si:{ *:[v8i32] } VR512:{ *:[v8f64] }:$src), immAllZerosV:{ *:[v8i32] }) - Complexity = 10
                          // Dst: (VCVTTPD2DQZrrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*277032*/              /*SwitchType*/ 11, MVT::v8i64,// ->277045
/*277034*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*277036*/                OPC_EmitMergeInputChains1_1,
/*277037*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZrrkz), 0|OPFL_Chain,
                              MVT::v8i64, 2/*#Ops*/, 0, 2, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_cvttp2si:{ *:[v8i64] } VR512:{ *:[v8f64] }:$src), immAllZerosV:{ *:[v8i64] }) - Complexity = 10
                          // Dst: (VCVTTPD2QQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*277045*/              0, // EndSwitchType
/*277046*/            0, /*End of Scope*/
/*277047*/          /*SwitchOpcode*/ 69, TARGET_VAL(X86ISD::CVTTP2SI),// ->277119
/*277050*/            OPC_RecordChild0, // #1 = $src
/*277051*/            OPC_Scope, 32, /*->277085*/ // 2 children in Scope
/*277053*/              OPC_CheckChild0Type, MVT::v8f32,
/*277055*/              OPC_MoveParent,
/*277056*/              OPC_MoveChild2,
/*277057*/              OPC_CheckImmAllZerosV,
/*277058*/              OPC_MoveParent,
/*277059*/              OPC_SwitchType /*2 cases */, 10, MVT::v8i32,// ->277072
/*277062*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*277064*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZ256rrkz), 0,
                              MVT::v8i32, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2si:{ *:[v8i32] } VR256X:{ *:[v8f32] }:$src), immAllZerosV:{ *:[v8i32] }) - Complexity = 10
                          // Dst: (VCVTTPS2DQZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*277072*/              /*SwitchType*/ 10, MVT::v8i64,// ->277084
/*277074*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*277076*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZrrkz), 0,
                              MVT::v8i64, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2si:{ *:[v8i64] } VR256X:{ *:[v8f32] }:$src), immAllZerosV:{ *:[v8i64] }) - Complexity = 10
                          // Dst: (VCVTTPS2QQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*277084*/              0, // EndSwitchType
/*277085*/            /*Scope*/ 32, /*->277118*/
/*277086*/              OPC_CheckChild0Type, MVT::v8f64,
/*277088*/              OPC_MoveParent,
/*277089*/              OPC_MoveChild2,
/*277090*/              OPC_CheckImmAllZerosV,
/*277091*/              OPC_MoveParent,
/*277092*/              OPC_SwitchType /*2 cases */, 10, MVT::v8i32,// ->277105
/*277095*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*277097*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZrrkz), 0,
                              MVT::v8i32, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2si:{ *:[v8i32] } VR512:{ *:[v8f64] }:$src), immAllZerosV:{ *:[v8i32] }) - Complexity = 10
                          // Dst: (VCVTTPD2DQZrrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*277105*/              /*SwitchType*/ 10, MVT::v8i64,// ->277117
/*277107*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*277109*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZrrkz), 0,
                              MVT::v8i64, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2si:{ *:[v8i64] } VR512:{ *:[v8f64] }:$src), immAllZerosV:{ *:[v8i64] }) - Complexity = 10
                          // Dst: (VCVTTPD2QQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*277117*/              0, // EndSwitchType
/*277118*/            0, /*End of Scope*/
/*277119*/          /*SwitchOpcode*/ 55, TARGET_VAL(X86ISD::CVTTP2SI_SAE),// ->277177
/*277122*/            OPC_RecordChild0, // #1 = $src
/*277123*/            OPC_Scope, 32, /*->277157*/ // 2 children in Scope
/*277125*/              OPC_CheckChild0Type, MVT::v8f64,
/*277127*/              OPC_MoveParent,
/*277128*/              OPC_MoveChild2,
/*277129*/              OPC_CheckImmAllZerosV,
/*277130*/              OPC_MoveParent,
/*277131*/              OPC_SwitchType /*2 cases */, 10, MVT::v8i32,// ->277144
/*277134*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*277136*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZrrbkz), 0,
                              MVT::v8i32, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2siSAE:{ *:[v8i32] } VR512:{ *:[v8f64] }:$src), immAllZerosV:{ *:[v8i32] }) - Complexity = 10
                          // Dst: (VCVTTPD2DQZrrbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*277144*/              /*SwitchType*/ 10, MVT::v8i64,// ->277156
/*277146*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*277148*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZrrbkz), 0,
                              MVT::v8i64, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2siSAE:{ *:[v8i64] } VR512:{ *:[v8f64] }:$src), immAllZerosV:{ *:[v8i64] }) - Complexity = 10
                          // Dst: (VCVTTPD2QQZrrbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*277156*/              0, // EndSwitchType
/*277157*/            /*Scope*/ 18, /*->277176*/
/*277158*/              OPC_CheckChild0Type, MVT::v8f32,
/*277160*/              OPC_MoveParent,
/*277161*/              OPC_MoveChild2,
/*277162*/              OPC_CheckImmAllZerosV,
/*277163*/              OPC_MoveParent,
/*277164*/              OPC_CheckType, MVT::v8i64,
/*277166*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*277168*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZrrbkz), 0,
                            MVT::v8i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2siSAE:{ *:[v8i64] } VR256X:{ *:[v8f32] }:$src), immAllZerosV:{ *:[v8i64] }) - Complexity = 10
                        // Dst: (VCVTTPS2QQZrrbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*277176*/            0, /*End of Scope*/
/*277177*/          /*SwitchOpcode*/ 75, TARGET_VAL(X86ISD::STRICT_CVTTP2UI),// ->277255
/*277180*/            OPC_RecordNode, // #1 = 'X86strict_cvttp2ui' chained node
/*277181*/            OPC_CheckFoldableChainNode,
/*277182*/            OPC_RecordChild1, // #2 = $src
/*277183*/            OPC_Scope, 34, /*->277219*/ // 2 children in Scope
/*277185*/              OPC_CheckChild1Type, MVT::v8f32,
/*277187*/              OPC_MoveParent,
/*277188*/              OPC_MoveChild2,
/*277189*/              OPC_CheckImmAllZerosV,
/*277190*/              OPC_MoveParent,
/*277191*/              OPC_SwitchType /*2 cases */, 11, MVT::v8i32,// ->277205
/*277194*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*277196*/                OPC_EmitMergeInputChains1_1,
/*277197*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZ256rrkz), 0|OPFL_Chain,
                              MVT::v8i32, 2/*#Ops*/, 0, 2, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_cvttp2ui:{ *:[v8i32] } VR256X:{ *:[v8f32] }:$src), immAllZerosV:{ *:[v8i32] }) - Complexity = 10
                          // Dst: (VCVTTPS2UDQZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*277205*/              /*SwitchType*/ 11, MVT::v8i64,// ->277218
/*277207*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*277209*/                OPC_EmitMergeInputChains1_1,
/*277210*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZrrkz), 0|OPFL_Chain,
                              MVT::v8i64, 2/*#Ops*/, 0, 2, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_cvttp2ui:{ *:[v8i64] } VR256X:{ *:[v8f32] }:$src), immAllZerosV:{ *:[v8i64] }) - Complexity = 10
                          // Dst: (VCVTTPS2UQQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*277218*/              0, // EndSwitchType
/*277219*/            /*Scope*/ 34, /*->277254*/
/*277220*/              OPC_CheckChild1Type, MVT::v8f64,
/*277222*/              OPC_MoveParent,
/*277223*/              OPC_MoveChild2,
/*277224*/              OPC_CheckImmAllZerosV,
/*277225*/              OPC_MoveParent,
/*277226*/              OPC_SwitchType /*2 cases */, 11, MVT::v8i32,// ->277240
/*277229*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*277231*/                OPC_EmitMergeInputChains1_1,
/*277232*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZrrkz), 0|OPFL_Chain,
                              MVT::v8i32, 2/*#Ops*/, 0, 2, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_cvttp2ui:{ *:[v8i32] } VR512:{ *:[v8f64] }:$src), immAllZerosV:{ *:[v8i32] }) - Complexity = 10
                          // Dst: (VCVTTPD2UDQZrrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*277240*/              /*SwitchType*/ 11, MVT::v8i64,// ->277253
/*277242*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*277244*/                OPC_EmitMergeInputChains1_1,
/*277245*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZrrkz), 0|OPFL_Chain,
                              MVT::v8i64, 2/*#Ops*/, 0, 2, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_cvttp2ui:{ *:[v8i64] } VR512:{ *:[v8f64] }:$src), immAllZerosV:{ *:[v8i64] }) - Complexity = 10
                          // Dst: (VCVTTPD2UQQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*277253*/              0, // EndSwitchType
/*277254*/            0, /*End of Scope*/
/*277255*/          /*SwitchOpcode*/ 69, TARGET_VAL(X86ISD::CVTTP2UI),// ->277327
/*277258*/            OPC_RecordChild0, // #1 = $src
/*277259*/            OPC_Scope, 32, /*->277293*/ // 2 children in Scope
/*277261*/              OPC_CheckChild0Type, MVT::v8f32,
/*277263*/              OPC_MoveParent,
/*277264*/              OPC_MoveChild2,
/*277265*/              OPC_CheckImmAllZerosV,
/*277266*/              OPC_MoveParent,
/*277267*/              OPC_SwitchType /*2 cases */, 10, MVT::v8i32,// ->277280
/*277270*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*277272*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZ256rrkz), 0,
                              MVT::v8i32, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2ui:{ *:[v8i32] } VR256X:{ *:[v8f32] }:$src), immAllZerosV:{ *:[v8i32] }) - Complexity = 10
                          // Dst: (VCVTTPS2UDQZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*277280*/              /*SwitchType*/ 10, MVT::v8i64,// ->277292
/*277282*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*277284*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZrrkz), 0,
                              MVT::v8i64, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2ui:{ *:[v8i64] } VR256X:{ *:[v8f32] }:$src), immAllZerosV:{ *:[v8i64] }) - Complexity = 10
                          // Dst: (VCVTTPS2UQQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*277292*/              0, // EndSwitchType
/*277293*/            /*Scope*/ 32, /*->277326*/
/*277294*/              OPC_CheckChild0Type, MVT::v8f64,
/*277296*/              OPC_MoveParent,
/*277297*/              OPC_MoveChild2,
/*277298*/              OPC_CheckImmAllZerosV,
/*277299*/              OPC_MoveParent,
/*277300*/              OPC_SwitchType /*2 cases */, 10, MVT::v8i32,// ->277313
/*277303*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*277305*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZrrkz), 0,
                              MVT::v8i32, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2ui:{ *:[v8i32] } VR512:{ *:[v8f64] }:$src), immAllZerosV:{ *:[v8i32] }) - Complexity = 10
                          // Dst: (VCVTTPD2UDQZrrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*277313*/              /*SwitchType*/ 10, MVT::v8i64,// ->277325
/*277315*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*277317*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZrrkz), 0,
                              MVT::v8i64, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2ui:{ *:[v8i64] } VR512:{ *:[v8f64] }:$src), immAllZerosV:{ *:[v8i64] }) - Complexity = 10
                          // Dst: (VCVTTPD2UQQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*277325*/              0, // EndSwitchType
/*277326*/            0, /*End of Scope*/
/*277327*/          /*SwitchOpcode*/ 55, TARGET_VAL(X86ISD::CVTTP2UI_SAE),// ->277385
/*277330*/            OPC_RecordChild0, // #1 = $src
/*277331*/            OPC_Scope, 32, /*->277365*/ // 2 children in Scope
/*277333*/              OPC_CheckChild0Type, MVT::v8f64,
/*277335*/              OPC_MoveParent,
/*277336*/              OPC_MoveChild2,
/*277337*/              OPC_CheckImmAllZerosV,
/*277338*/              OPC_MoveParent,
/*277339*/              OPC_SwitchType /*2 cases */, 10, MVT::v8i32,// ->277352
/*277342*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*277344*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZrrbkz), 0,
                              MVT::v8i32, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2uiSAE:{ *:[v8i32] } VR512:{ *:[v8f64] }:$src), immAllZerosV:{ *:[v8i32] }) - Complexity = 10
                          // Dst: (VCVTTPD2UDQZrrbkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*277352*/              /*SwitchType*/ 10, MVT::v8i64,// ->277364
/*277354*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*277356*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZrrbkz), 0,
                              MVT::v8i64, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2uiSAE:{ *:[v8i64] } VR512:{ *:[v8f64] }:$src), immAllZerosV:{ *:[v8i64] }) - Complexity = 10
                          // Dst: (VCVTTPD2UQQZrrbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*277364*/              0, // EndSwitchType
/*277365*/            /*Scope*/ 18, /*->277384*/
/*277366*/              OPC_CheckChild0Type, MVT::v8f32,
/*277368*/              OPC_MoveParent,
/*277369*/              OPC_MoveChild2,
/*277370*/              OPC_CheckImmAllZerosV,
/*277371*/              OPC_MoveParent,
/*277372*/              OPC_CheckType, MVT::v8i64,
/*277374*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*277376*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZrrbkz), 0,
                            MVT::v8i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2uiSAE:{ *:[v8i64] } VR256X:{ *:[v8f32] }:$src), immAllZerosV:{ *:[v8i64] }) - Complexity = 10
                        // Dst: (VCVTTPS2UQQZrrbkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*277384*/            0, /*End of Scope*/
/*277385*/          /*SwitchOpcode*/ 69, TARGET_VAL(X86ISD::CVTP2SI),// ->277457
/*277388*/            OPC_RecordChild0, // #1 = $src
/*277389*/            OPC_Scope, 32, /*->277423*/ // 2 children in Scope
/*277391*/              OPC_CheckChild0Type, MVT::v8f32,
/*277393*/              OPC_MoveParent,
/*277394*/              OPC_MoveChild2,
/*277395*/              OPC_CheckImmAllZerosV,
/*277396*/              OPC_MoveParent,
/*277397*/              OPC_SwitchType /*2 cases */, 10, MVT::v8i32,// ->277410
/*277400*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*277402*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2DQZ256rrkz), 0,
                              MVT::v8i32, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2Int:{ *:[v8i32] } VR256X:{ *:[v8f32] }:$src), immAllZerosV:{ *:[v8i32] }) - Complexity = 10
                          // Dst: (VCVTPS2DQZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*277410*/              /*SwitchType*/ 10, MVT::v8i64,// ->277422
/*277412*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*277414*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2QQZrrkz), 0,
                              MVT::v8i64, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2Int:{ *:[v8i64] } VR256X:{ *:[v8f32] }:$src), immAllZerosV:{ *:[v8i64] }) - Complexity = 10
                          // Dst: (VCVTPS2QQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*277422*/              0, // EndSwitchType
/*277423*/            /*Scope*/ 32, /*->277456*/
/*277424*/              OPC_CheckChild0Type, MVT::v8f64,
/*277426*/              OPC_MoveParent,
/*277427*/              OPC_MoveChild2,
/*277428*/              OPC_CheckImmAllZerosV,
/*277429*/              OPC_MoveParent,
/*277430*/              OPC_SwitchType /*2 cases */, 10, MVT::v8i32,// ->277443
/*277433*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*277435*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2DQZrrkz), 0,
                              MVT::v8i32, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2Int:{ *:[v8i32] } VR512:{ *:[v8f64] }:$src), immAllZerosV:{ *:[v8i32] }) - Complexity = 10
                          // Dst: (VCVTPD2DQZrrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*277443*/              /*SwitchType*/ 10, MVT::v8i64,// ->277455
/*277445*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*277447*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2QQZrrkz), 0,
                              MVT::v8i64, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2Int:{ *:[v8i64] } VR512:{ *:[v8f64] }:$src), immAllZerosV:{ *:[v8i64] }) - Complexity = 10
                          // Dst: (VCVTPD2QQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*277455*/              0, // EndSwitchType
/*277456*/            0, /*End of Scope*/
/*277457*/          /*SwitchOpcode*/ 69, TARGET_VAL(X86ISD::CVTP2UI),// ->277529
/*277460*/            OPC_RecordChild0, // #1 = $src
/*277461*/            OPC_Scope, 32, /*->277495*/ // 2 children in Scope
/*277463*/              OPC_CheckChild0Type, MVT::v8f32,
/*277465*/              OPC_MoveParent,
/*277466*/              OPC_MoveChild2,
/*277467*/              OPC_CheckImmAllZerosV,
/*277468*/              OPC_MoveParent,
/*277469*/              OPC_SwitchType /*2 cases */, 10, MVT::v8i32,// ->277482
/*277472*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*277474*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UDQZ256rrkz), 0,
                              MVT::v8i32, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2UInt:{ *:[v8i32] } VR256X:{ *:[v8f32] }:$src), immAllZerosV:{ *:[v8i32] }) - Complexity = 10
                          // Dst: (VCVTPS2UDQZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*277482*/              /*SwitchType*/ 10, MVT::v8i64,// ->277494
/*277484*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*277486*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UQQZrrkz), 0,
                              MVT::v8i64, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2UInt:{ *:[v8i64] } VR256X:{ *:[v8f32] }:$src), immAllZerosV:{ *:[v8i64] }) - Complexity = 10
                          // Dst: (VCVTPS2UQQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*277494*/              0, // EndSwitchType
/*277495*/            /*Scope*/ 32, /*->277528*/
/*277496*/              OPC_CheckChild0Type, MVT::v8f64,
/*277498*/              OPC_MoveParent,
/*277499*/              OPC_MoveChild2,
/*277500*/              OPC_CheckImmAllZerosV,
/*277501*/              OPC_MoveParent,
/*277502*/              OPC_SwitchType /*2 cases */, 10, MVT::v8i32,// ->277515
/*277505*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*277507*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UDQZrrkz), 0,
                              MVT::v8i32, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2UInt:{ *:[v8i32] } VR512:{ *:[v8f64] }:$src), immAllZerosV:{ *:[v8i32] }) - Complexity = 10
                          // Dst: (VCVTPD2UDQZrrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*277515*/              /*SwitchType*/ 10, MVT::v8i64,// ->277527
/*277517*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*277519*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UQQZrrkz), 0,
                              MVT::v8i64, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2UInt:{ *:[v8i64] } VR512:{ *:[v8f64] }:$src), immAllZerosV:{ *:[v8i64] }) - Complexity = 10
                          // Dst: (VCVTPD2UQQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*277527*/              0, // EndSwitchType
/*277528*/            0, /*End of Scope*/
/*277529*/          /*SwitchOpcode*/ 58, TARGET_VAL(ISD::TRUNCATE),// ->277590
/*277532*/            OPC_RecordChild0, // #1 = $src
/*277533*/            OPC_Scope, 18, /*->277553*/ // 3 children in Scope
/*277535*/              OPC_CheckChild0Type, MVT::v8i64,
/*277537*/              OPC_MoveParent,
/*277538*/              OPC_MoveChild2,
/*277539*/              OPC_CheckImmAllZerosV,
/*277540*/              OPC_MoveParent,
/*277541*/              OPC_CheckType, MVT::v8i16,
/*277543*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*277545*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVQWZrrkz), 0,
                            MVT::v8i16, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (trunc:{ *:[v8i16] } VR512:{ *:[v8i64] }:$src), immAllZerosV:{ *:[v8i16] }) - Complexity = 10
                        // Dst: (VPMOVQWZrrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*277553*/            /*Scope*/ 16, /*->277570*/
/*277554*/              OPC_MoveParent,
/*277555*/              OPC_MoveChild2,
/*277556*/              OPC_CheckImmAllZerosV,
/*277557*/              OPC_MoveParent,
/*277558*/              OPC_CheckType, MVT::v8i32,
/*277560*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*277562*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVQDZrrkz), 0,
                            MVT::v8i32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (trunc:{ *:[v8i32] } VR512:{ *:[v8i64] }:$src), immAllZerosV:{ *:[v8i32] }) - Complexity = 10
                        // Dst: (VPMOVQDZrrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*277570*/            /*Scope*/ 18, /*->277589*/
/*277571*/              OPC_CheckChild0Type, MVT::v8i32,
/*277573*/              OPC_MoveParent,
/*277574*/              OPC_MoveChild2,
/*277575*/              OPC_CheckImmAllZerosV,
/*277576*/              OPC_MoveParent,
/*277577*/              OPC_CheckType, MVT::v8i16,
/*277579*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*277581*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVDWZ256rrkz), 0,
                            MVT::v8i16, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (trunc:{ *:[v8i16] } VR256X:{ *:[v8i32] }:$src), immAllZerosV:{ *:[v8i16] }) - Complexity = 10
                        // Dst: (VPMOVDWZ256rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/*277589*/            0, /*End of Scope*/
/*277590*/          /*SwitchOpcode*/ 55, TARGET_VAL(X86ISD::VTRUNCS),// ->277648
/*277593*/            OPC_RecordChild0, // #1 = $src
/*277594*/            OPC_Scope, 32, /*->277628*/ // 2 children in Scope
/*277596*/              OPC_CheckChild0Type, MVT::v8i64,
/*277598*/              OPC_MoveParent,
/*277599*/              OPC_MoveChild2,
/*277600*/              OPC_CheckImmAllZerosV,
/*277601*/              OPC_MoveParent,
/*277602*/              OPC_SwitchType /*2 cases */, 10, MVT::v8i16,// ->277615
/*277605*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*277607*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSQWZrrkz), 0,
                              MVT::v8i16, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vtruncs:{ *:[v8i16] } VR512:{ *:[v8i64] }:$src), immAllZerosV:{ *:[v8i16] }) - Complexity = 10
                          // Dst: (VPMOVSQWZrrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*277615*/              /*SwitchType*/ 10, MVT::v8i32,// ->277627
/*277617*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*277619*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSQDZrrkz), 0,
                              MVT::v8i32, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vtruncs:{ *:[v8i32] } VR512:{ *:[v8i64] }:$src), immAllZerosV:{ *:[v8i32] }) - Complexity = 10
                          // Dst: (VPMOVSQDZrrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*277627*/              0, // EndSwitchType
/*277628*/            /*Scope*/ 18, /*->277647*/
/*277629*/              OPC_CheckChild0Type, MVT::v8i32,
/*277631*/              OPC_MoveParent,
/*277632*/              OPC_MoveChild2,
/*277633*/              OPC_CheckImmAllZerosV,
/*277634*/              OPC_MoveParent,
/*277635*/              OPC_CheckType, MVT::v8i16,
/*277637*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*277639*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSDWZ256rrkz), 0,
                            MVT::v8i16, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vtruncs:{ *:[v8i16] } VR256X:{ *:[v8i32] }:$src), immAllZerosV:{ *:[v8i16] }) - Complexity = 10
                        // Dst: (VPMOVSDWZ256rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/*277647*/            0, /*End of Scope*/
/*277648*/          /*SwitchOpcode*/ 55, TARGET_VAL(X86ISD::VTRUNCUS),// ->277706
/*277651*/            OPC_RecordChild0, // #1 = $src
/*277652*/            OPC_Scope, 32, /*->277686*/ // 2 children in Scope
/*277654*/              OPC_CheckChild0Type, MVT::v8i64,
/*277656*/              OPC_MoveParent,
/*277657*/              OPC_MoveChild2,
/*277658*/              OPC_CheckImmAllZerosV,
/*277659*/              OPC_MoveParent,
/*277660*/              OPC_SwitchType /*2 cases */, 10, MVT::v8i16,// ->277673
/*277663*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*277665*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSQWZrrkz), 0,
                              MVT::v8i16, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vtruncus:{ *:[v8i16] } VR512:{ *:[v8i64] }:$src), immAllZerosV:{ *:[v8i16] }) - Complexity = 10
                          // Dst: (VPMOVUSQWZrrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*277673*/              /*SwitchType*/ 10, MVT::v8i32,// ->277685
/*277675*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*277677*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSQDZrrkz), 0,
                              MVT::v8i32, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vtruncus:{ *:[v8i32] } VR512:{ *:[v8i64] }:$src), immAllZerosV:{ *:[v8i32] }) - Complexity = 10
                          // Dst: (VPMOVUSQDZrrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*277685*/              0, // EndSwitchType
/*277686*/            /*Scope*/ 18, /*->277705*/
/*277687*/              OPC_CheckChild0Type, MVT::v8i32,
/*277689*/              OPC_MoveParent,
/*277690*/              OPC_MoveChild2,
/*277691*/              OPC_CheckImmAllZerosV,
/*277692*/              OPC_MoveParent,
/*277693*/              OPC_CheckType, MVT::v8i16,
/*277695*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*277697*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSDWZ256rrkz), 0,
                            MVT::v8i16, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vtruncus:{ *:[v8i16] } VR256X:{ *:[v8i32] }:$src), immAllZerosV:{ *:[v8i16] }) - Complexity = 10
                        // Dst: (VPMOVUSDWZ256rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/*277705*/            0, /*End of Scope*/
/*277706*/          /*SwitchOpcode*/ 45, TARGET_VAL(ISD::ZERO_EXTEND_VECTOR_INREG),// ->277754
/*277709*/            OPC_RecordChild0, // #1 = $src
/*277710*/            OPC_CheckChild0Type, MVT::v16i8,
/*277712*/            OPC_MoveParent,
/*277713*/            OPC_MoveChild2,
/*277714*/            OPC_CheckImmAllZerosV,
/*277715*/            OPC_MoveParent,
/*277716*/            OPC_SwitchType /*3 cases */, 10, MVT::v8i16,// ->277729
/*277719*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*277721*/              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), immAllZerosV:{ *:[v8i16] }) - Complexity = 10
                        // Dst: (VPMOVZXBWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*277729*/            /*SwitchType*/ 10, MVT::v8i32,// ->277741
/*277731*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*277733*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBDZ256rrkz), 0,
                            MVT::v8i32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (zext_invec:{ *:[v8i32] } VR128X:{ *:[v16i8] }:$src), immAllZerosV:{ *:[v8i32] }) - Complexity = 10
                        // Dst: (VPMOVZXBDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*277741*/            /*SwitchType*/ 10, MVT::v8i64,// ->277753
/*277743*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*277745*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBQZrrkz), 0,
                            MVT::v8i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (zext_invec:{ *:[v8i64] } VR128X:{ *:[v16i8] }:$src), immAllZerosV:{ *:[v8i64] }) - Complexity = 10
                        // Dst: (VPMOVZXBQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*277753*/            0, // EndSwitchType
/*277754*/          /*SwitchOpcode*/ 55, TARGET_VAL(ISD::ZERO_EXTEND),// ->277812
/*277757*/            OPC_RecordChild0, // #1 = $src
/*277758*/            OPC_Scope, 32, /*->277792*/ // 2 children in Scope
/*277760*/              OPC_CheckChild0Type, MVT::v8i16,
/*277762*/              OPC_MoveParent,
/*277763*/              OPC_MoveChild2,
/*277764*/              OPC_CheckImmAllZerosV,
/*277765*/              OPC_MoveParent,
/*277766*/              OPC_SwitchType /*2 cases */, 10, MVT::v8i32,// ->277779
/*277769*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*277771*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWDZ256rrkz), 0,
                              MVT::v8i32, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (zext:{ *:[v8i32] } VR128X:{ *:[v8i16] }:$src), immAllZerosV:{ *:[v8i32] }) - Complexity = 10
                          // Dst: (VPMOVZXWDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/*277779*/              /*SwitchType*/ 10, MVT::v8i64,// ->277791
/*277781*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*277783*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWQZrrkz), 0,
                              MVT::v8i64, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (zext:{ *:[v8i64] } VR128X:{ *:[v8i16] }:$src), immAllZerosV:{ *:[v8i64] }) - Complexity = 10
                          // Dst: (VPMOVZXWQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/*277791*/              0, // EndSwitchType
/*277792*/            /*Scope*/ 18, /*->277811*/
/*277793*/              OPC_CheckChild0Type, MVT::v8i32,
/*277795*/              OPC_MoveParent,
/*277796*/              OPC_MoveChild2,
/*277797*/              OPC_CheckImmAllZerosV,
/*277798*/              OPC_MoveParent,
/*277799*/              OPC_CheckType, MVT::v8i64,
/*277801*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*277803*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXDQZrrkz), 0,
                            MVT::v8i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (zext:{ *:[v8i64] } VR256X:{ *:[v8i32] }:$src), immAllZerosV:{ *:[v8i64] }) - Complexity = 10
                        // Dst: (VPMOVZXDQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/*277811*/            0, /*End of Scope*/
/*277812*/          /*SwitchOpcode*/ 45, TARGET_VAL(ISD::SIGN_EXTEND_VECTOR_INREG),// ->277860
/*277815*/            OPC_RecordChild0, // #1 = $src
/*277816*/            OPC_CheckChild0Type, MVT::v16i8,
/*277818*/            OPC_MoveParent,
/*277819*/            OPC_MoveChild2,
/*277820*/            OPC_CheckImmAllZerosV,
/*277821*/            OPC_MoveParent,
/*277822*/            OPC_SwitchType /*3 cases */, 10, MVT::v8i16,// ->277835
/*277825*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*277827*/              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), immAllZerosV:{ *:[v8i16] }) - Complexity = 10
                        // Dst: (VPMOVSXBWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*277835*/            /*SwitchType*/ 10, MVT::v8i32,// ->277847
/*277837*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*277839*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBDZ256rrkz), 0,
                            MVT::v8i32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (sext_invec:{ *:[v8i32] } VR128X:{ *:[v16i8] }:$src), immAllZerosV:{ *:[v8i32] }) - Complexity = 10
                        // Dst: (VPMOVSXBDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*277847*/            /*SwitchType*/ 10, MVT::v8i64,// ->277859
/*277849*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*277851*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBQZrrkz), 0,
                            MVT::v8i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (sext_invec:{ *:[v8i64] } VR128X:{ *:[v16i8] }:$src), immAllZerosV:{ *:[v8i64] }) - Complexity = 10
                        // Dst: (VPMOVSXBQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*277859*/            0, // EndSwitchType
/*277860*/          /*SwitchOpcode*/ 55, TARGET_VAL(ISD::SIGN_EXTEND),// ->277918
/*277863*/            OPC_RecordChild0, // #1 = $src
/*277864*/            OPC_Scope, 32, /*->277898*/ // 2 children in Scope
/*277866*/              OPC_CheckChild0Type, MVT::v8i16,
/*277868*/              OPC_MoveParent,
/*277869*/              OPC_MoveChild2,
/*277870*/              OPC_CheckImmAllZerosV,
/*277871*/              OPC_MoveParent,
/*277872*/              OPC_SwitchType /*2 cases */, 10, MVT::v8i32,// ->277885
/*277875*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*277877*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWDZ256rrkz), 0,
                              MVT::v8i32, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (sext:{ *:[v8i32] } VR128X:{ *:[v8i16] }:$src), immAllZerosV:{ *:[v8i32] }) - Complexity = 10
                          // Dst: (VPMOVSXWDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/*277885*/              /*SwitchType*/ 10, MVT::v8i64,// ->277897
/*277887*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*277889*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWQZrrkz), 0,
                              MVT::v8i64, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (sext:{ *:[v8i64] } VR128X:{ *:[v8i16] }:$src), immAllZerosV:{ *:[v8i64] }) - Complexity = 10
                          // Dst: (VPMOVSXWQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/*277897*/              0, // EndSwitchType
/*277898*/            /*Scope*/ 18, /*->277917*/
/*277899*/              OPC_CheckChild0Type, MVT::v8i32,
/*277901*/              OPC_MoveParent,
/*277902*/              OPC_MoveChild2,
/*277903*/              OPC_CheckImmAllZerosV,
/*277904*/              OPC_MoveParent,
/*277905*/              OPC_CheckType, MVT::v8i64,
/*277907*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*277909*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXDQZrrkz), 0,
                            MVT::v8i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (sext:{ *:[v8i64] } VR256X:{ *:[v8i32] }:$src), immAllZerosV:{ *:[v8i64] }) - Complexity = 10
                        // Dst: (VPMOVSXDQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/*277917*/            0, /*End of Scope*/
/*277918*/          /*SwitchOpcode*/ 43, TARGET_VAL(ISD::ABS),// ->277964
/*277921*/            OPC_RecordChild0, // #1 = $src1
/*277922*/            OPC_MoveParent,
/*277923*/            OPC_MoveChild2,
/*277924*/            OPC_CheckImmAllZerosV,
/*277925*/            OPC_MoveParent,
/*277926*/            OPC_SwitchType /*3 cases */, 10, MVT::v8i64,// ->277939
/*277929*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*277931*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSQZrrkz), 0,
                            MVT::v8i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (abs:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1), immAllZerosV:{ *:[v8i64] }) - Complexity = 10
                        // Dst: (VPABSQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1)
/*277939*/            /*SwitchType*/ 10, MVT::v8i32,// ->277951
/*277941*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*277943*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSDZ256rrkz), 0,
                            MVT::v8i32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (abs:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1), immAllZerosV:{ *:[v8i32] }) - Complexity = 10
                        // Dst: (VPABSDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1)
/*277951*/            /*SwitchType*/ 10, MVT::v8i16,// ->277963
/*277953*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*277955*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSWZ128rrkz), 0,
                            MVT::v8i16, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (abs:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1), immAllZerosV:{ *:[v8i16] }) - Complexity = 10
                        // Dst: (VPABSWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1)
/*277963*/            0, // EndSwitchType
/*277964*/          /*SwitchOpcode*/ 41, TARGET_VAL(ISD::CTLZ),// ->278008
/*277967*/            OPC_RecordChild0, // #1 = $src1
/*277968*/            OPC_Scope, 18, /*->277988*/ // 2 children in Scope
/*277970*/              OPC_CheckChild0Type, MVT::v8i64,
/*277972*/              OPC_MoveParent,
/*277973*/              OPC_MoveChild2,
/*277974*/              OPC_CheckImmAllZerosV,
/*277975*/              OPC_MoveParent,
/*277976*/              OPC_CheckType, MVT::v8i64,
/*277978*/              OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*277980*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTQZrrkz), 0,
                            MVT::v8i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (ctlz:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1), immAllZerosV:{ *:[v8i64] }) - Complexity = 10
                        // Dst: (VPLZCNTQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1)
/*277988*/            /*Scope*/ 18, /*->278007*/
/*277989*/              OPC_CheckChild0Type, MVT::v8i32,
/*277991*/              OPC_MoveParent,
/*277992*/              OPC_MoveChild2,
/*277993*/              OPC_CheckImmAllZerosV,
/*277994*/              OPC_MoveParent,
/*277995*/              OPC_CheckType, MVT::v8i32,
/*277997*/              OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*277999*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTDZ256rrkz), 0,
                            MVT::v8i32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (ctlz:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1), immAllZerosV:{ *:[v8i32] }) - Complexity = 10
                        // Dst: (VPLZCNTDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1)
/*278007*/            0, /*End of Scope*/
/*278008*/          /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::CONFLICT),// ->278042
/*278011*/            OPC_RecordChild0, // #1 = $src1
/*278012*/            OPC_MoveParent,
/*278013*/            OPC_MoveChild2,
/*278014*/            OPC_CheckImmAllZerosV,
/*278015*/            OPC_MoveParent,
/*278016*/            OPC_SwitchType /*2 cases */, 10, MVT::v8i64,// ->278029
/*278019*/              OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*278021*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTQZrrkz), 0,
                            MVT::v8i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86Conflict:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1), immAllZerosV:{ *:[v8i64] }) - Complexity = 10
                        // Dst: (VPCONFLICTQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1)
/*278029*/            /*SwitchType*/ 10, MVT::v8i32,// ->278041
/*278031*/              OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*278033*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTDZ256rrkz), 0,
                            MVT::v8i32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86Conflict:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1), immAllZerosV:{ *:[v8i32] }) - Complexity = 10
                        // Dst: (VPCONFLICTDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1)
/*278041*/            0, // EndSwitchType
/*278042*/          /*SwitchOpcode*/ 60, TARGET_VAL(ISD::CTPOP),// ->278105
/*278045*/            OPC_RecordChild0, // #1 = $src1
/*278046*/            OPC_Scope, 18, /*->278066*/ // 3 children in Scope
/*278048*/              OPC_CheckChild0Type, MVT::v8i64,
/*278050*/              OPC_MoveParent,
/*278051*/              OPC_MoveChild2,
/*278052*/              OPC_CheckImmAllZerosV,
/*278053*/              OPC_MoveParent,
/*278054*/              OPC_CheckType, MVT::v8i64,
/*278056*/              OPC_CheckPatternPredicate, 142, // (Subtarget->hasVPOPCNTDQ())
/*278058*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTQZrrkz), 0,
                            MVT::v8i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (ctpop:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1), immAllZerosV:{ *:[v8i64] }) - Complexity = 10
                        // Dst: (VPOPCNTQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1)
/*278066*/            /*Scope*/ 18, /*->278085*/
/*278067*/              OPC_CheckChild0Type, MVT::v8i32,
/*278069*/              OPC_MoveParent,
/*278070*/              OPC_MoveChild2,
/*278071*/              OPC_CheckImmAllZerosV,
/*278072*/              OPC_MoveParent,
/*278073*/              OPC_CheckType, MVT::v8i32,
/*278075*/              OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/*278077*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTDZ256rrkz), 0,
                            MVT::v8i32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (ctpop:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1), immAllZerosV:{ *:[v8i32] }) - Complexity = 10
                        // Dst: (VPOPCNTDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1)
/*278085*/            /*Scope*/ 18, /*->278104*/
/*278086*/              OPC_CheckChild0Type, MVT::v8i16,
/*278088*/              OPC_MoveParent,
/*278089*/              OPC_MoveChild2,
/*278090*/              OPC_CheckImmAllZerosV,
/*278091*/              OPC_MoveParent,
/*278092*/              OPC_CheckType, MVT::v8i16,
/*278094*/              OPC_CheckPatternPredicate, 115, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/*278096*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTWZ128rrkz), 0,
                            MVT::v8i16, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (ctpop:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1), immAllZerosV:{ *:[v8i16] }) - Complexity = 10
                        // Dst: (VPOPCNTWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1)
/*278104*/            0, /*End of Scope*/
/*278105*/          /*SwitchOpcode*/ 47, TARGET_VAL(X86ISD::UNPCKL),// ->278155
/*278108*/            OPC_RecordChild0, // #1 = $src1
/*278109*/            OPC_RecordChild1, // #2 = $src2
/*278110*/            OPC_MoveParent,
/*278111*/            OPC_MoveChild2,
/*278112*/            OPC_CheckImmAllZerosV,
/*278113*/            OPC_MoveParent,
/*278114*/            OPC_SwitchType /*3 cases */, 11, MVT::v8i16,// ->278128
/*278117*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*278119*/              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), immAllZerosV:{ *:[v8i16] }) - Complexity = 10
                        // Dst: (VPUNPCKLWDZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*278128*/            /*SwitchType*/ 11, MVT::v8i32,// ->278141
/*278130*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*278132*/              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), immAllZerosV:{ *:[v8i32] }) - Complexity = 10
                        // Dst: (VPUNPCKLDQZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*278141*/            /*SwitchType*/ 11, MVT::v8i64,// ->278154
/*278143*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*278145*/              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), immAllZerosV:{ *:[v8i64] }) - Complexity = 10
                        // Dst: (VPUNPCKLQDQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*278154*/            0, // EndSwitchType
/*278155*/          /*SwitchOpcode*/ 47, TARGET_VAL(X86ISD::UNPCKH),// ->278205
/*278158*/            OPC_RecordChild0, // #1 = $src1
/*278159*/            OPC_RecordChild1, // #2 = $src2
/*278160*/            OPC_MoveParent,
/*278161*/            OPC_MoveChild2,
/*278162*/            OPC_CheckImmAllZerosV,
/*278163*/            OPC_MoveParent,
/*278164*/            OPC_SwitchType /*3 cases */, 11, MVT::v8i16,// ->278178
/*278167*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*278169*/              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), immAllZerosV:{ *:[v8i16] }) - Complexity = 10
                        // Dst: (VPUNPCKHWDZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*278178*/            /*SwitchType*/ 11, MVT::v8i32,// ->278191
/*278180*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*278182*/              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), immAllZerosV:{ *:[v8i32] }) - Complexity = 10
                        // Dst: (VPUNPCKHDQZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*278191*/            /*SwitchType*/ 11, MVT::v8i64,// ->278204
/*278193*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*278195*/              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), immAllZerosV:{ *:[v8i64] }) - Complexity = 10
                        // Dst: (VPUNPCKHQDQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*278204*/            0, // EndSwitchType
/*278205*/          /*SwitchOpcode*/ 51, TARGET_VAL(X86ISD::VSHLDV),// ->278259
/*278208*/            OPC_RecordChild0, // #1 = $src1
/*278209*/            OPC_RecordChild1, // #2 = $src2
/*278210*/            OPC_RecordChild2, // #3 = $src3
/*278211*/            OPC_MoveParent,
/*278212*/            OPC_MoveChild2,
/*278213*/            OPC_CheckImmAllZerosV,
/*278214*/            OPC_MoveParent,
/*278215*/            OPC_SwitchType /*3 cases */, 12, MVT::v8i16,// ->278230
/*278218*/              OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*278220*/              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), immAllZerosV:{ *:[v8i16] }) - Complexity = 10
                        // Dst: (VPSHLDVWZ128rkz:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src2, VR128X:{ *:[v8i16] }:$src3)
/*278230*/            /*SwitchType*/ 12, MVT::v8i32,// ->278244
/*278232*/              OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*278234*/              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), immAllZerosV:{ *:[v8i32] }) - Complexity = 10
                        // Dst: (VPSHLDVDZ256rkz:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3)
/*278244*/            /*SwitchType*/ 12, MVT::v8i64,// ->278258
/*278246*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*278248*/              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), immAllZerosV:{ *:[v8i64] }) - Complexity = 10
                        // Dst: (VPSHLDVQZrkz:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src3)
/*278258*/            0, // EndSwitchType
/*278259*/          /*SwitchOpcode*/ 51, TARGET_VAL(X86ISD::VSHRDV),// ->278313
/*278262*/            OPC_RecordChild0, // #1 = $src1
/*278263*/            OPC_RecordChild1, // #2 = $src2
/*278264*/            OPC_RecordChild2, // #3 = $src3
/*278265*/            OPC_MoveParent,
/*278266*/            OPC_MoveChild2,
/*278267*/            OPC_CheckImmAllZerosV,
/*278268*/            OPC_MoveParent,
/*278269*/            OPC_SwitchType /*3 cases */, 12, MVT::v8i16,// ->278284
/*278272*/              OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*278274*/              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), immAllZerosV:{ *:[v8i16] }) - Complexity = 10
                        // Dst: (VPSHRDVWZ128rkz:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src2, VR128X:{ *:[v8i16] }:$src3)
/*278284*/            /*SwitchType*/ 12, MVT::v8i32,// ->278298
/*278286*/              OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*278288*/              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), immAllZerosV:{ *:[v8i32] }) - Complexity = 10
                        // Dst: (VPSHRDVDZ256rkz:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3)
/*278298*/            /*SwitchType*/ 12, MVT::v8i64,// ->278312
/*278300*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*278302*/              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), immAllZerosV:{ *:[v8i64] }) - Complexity = 10
                        // Dst: (VPSHRDVQZrkz:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src3)
/*278312*/            0, // EndSwitchType
/*278313*/          /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::VPDPBUSD),// ->278337
/*278316*/            OPC_RecordChild0, // #1 = $src1
/*278317*/            OPC_RecordChild1, // #2 = $src2
/*278318*/            OPC_RecordChild2, // #3 = $src3
/*278319*/            OPC_MoveParent,
/*278320*/            OPC_MoveChild2,
/*278321*/            OPC_CheckImmAllZerosV,
/*278322*/            OPC_MoveParent,
/*278323*/            OPC_CheckType, MVT::v8i32,
/*278325*/            OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*278327*/            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), immAllZerosV:{ *:[v8i32] }) - Complexity = 10
                      // Dst: (VPDPBUSDZ256rkz:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3)
/*278337*/          /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::VPDPBUSDS),// ->278361
/*278340*/            OPC_RecordChild0, // #1 = $src1
/*278341*/            OPC_RecordChild1, // #2 = $src2
/*278342*/            OPC_RecordChild2, // #3 = $src3
/*278343*/            OPC_MoveParent,
/*278344*/            OPC_MoveChild2,
/*278345*/            OPC_CheckImmAllZerosV,
/*278346*/            OPC_MoveParent,
/*278347*/            OPC_CheckType, MVT::v8i32,
/*278349*/            OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*278351*/            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), immAllZerosV:{ *:[v8i32] }) - Complexity = 10
                      // Dst: (VPDPBUSDSZ256rkz:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3)
/*278361*/          /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::VPDPWSSD),// ->278385
/*278364*/            OPC_RecordChild0, // #1 = $src1
/*278365*/            OPC_RecordChild1, // #2 = $src2
/*278366*/            OPC_RecordChild2, // #3 = $src3
/*278367*/            OPC_MoveParent,
/*278368*/            OPC_MoveChild2,
/*278369*/            OPC_CheckImmAllZerosV,
/*278370*/            OPC_MoveParent,
/*278371*/            OPC_CheckType, MVT::v8i32,
/*278373*/            OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*278375*/            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), immAllZerosV:{ *:[v8i32] }) - Complexity = 10
                      // Dst: (VPDPWSSDZ256rkz:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3)
/*278385*/          /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::VPDPWSSDS),// ->278409
/*278388*/            OPC_RecordChild0, // #1 = $src1
/*278389*/            OPC_RecordChild1, // #2 = $src2
/*278390*/            OPC_RecordChild2, // #3 = $src3
/*278391*/            OPC_MoveParent,
/*278392*/            OPC_MoveChild2,
/*278393*/            OPC_CheckImmAllZerosV,
/*278394*/            OPC_MoveParent,
/*278395*/            OPC_CheckType, MVT::v8i32,
/*278397*/            OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*278399*/            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), immAllZerosV:{ *:[v8i32] }) - Complexity = 10
                      // Dst: (VPDPWSSDSZ256rkz:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3)
/*278409*/          /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::CVTNE2PS2BF16),// ->278433
/*278412*/            OPC_RecordChild0, // #1 = $src1
/*278413*/            OPC_CheckChild0Type, MVT::v4f32,
/*278415*/            OPC_RecordChild1, // #2 = $src2
/*278416*/            OPC_MoveParent,
/*278417*/            OPC_MoveChild2,
/*278418*/            OPC_CheckImmAllZerosV,
/*278419*/            OPC_MoveParent,
/*278420*/            OPC_CheckType, MVT::v8i16,
/*278422*/            OPC_CheckPatternPredicate, 182, // (Subtarget->hasBF16()) && (Subtarget->hasVLX())
/*278424*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTNE2PS2BF16Z128rrkz), 0,
                          MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtne2ps2bf16:{ *:[v8i16] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), immAllZerosV:{ *:[v8i16] }) - Complexity = 10
                      // Dst: (VCVTNE2PS2BF16Z128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*278433*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::CVTNEPS2BF16),// ->278455
/*278436*/            OPC_RecordChild0, // #1 = $src
/*278437*/            OPC_CheckChild0Type, MVT::v8f32,
/*278439*/            OPC_MoveParent,
/*278440*/            OPC_MoveChild2,
/*278441*/            OPC_CheckImmAllZerosV,
/*278442*/            OPC_MoveParent,
/*278443*/            OPC_CheckType, MVT::v8i16,
/*278445*/            OPC_CheckPatternPredicate, 182, // (Subtarget->hasBF16()) && (Subtarget->hasVLX())
/*278447*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTNEPS2BF16Z256rrkz), 0,
                          MVT::v8i16, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtneps2bf16:{ *:[v8i16] } VR256X:{ *:[v8f32] }:$src), immAllZerosV:{ *:[v8i16] }) - Complexity = 10
                      // Dst: (VCVTNEPS2BF16Z256rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*278455*/          0, // EndSwitchOpcode
/*278456*/        /*Scope*/ 97, /*->278554*/
/*278457*/          OPC_RecordChild1, // #1 = $src3
/*278458*/          OPC_MoveChild1,
/*278459*/          OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*278462*/          OPC_RecordChild0, // #2 = $src1
/*278463*/          OPC_RecordChild1, // #3 = $src2
/*278464*/          OPC_Scope, 27, /*->278493*/ // 3 children in Scope
/*278466*/            OPC_MoveChild2,
/*278467*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*278470*/            OPC_CheckType, MVT::iPTR,
/*278472*/            OPC_MoveParent,
/*278473*/            OPC_MoveParent,
/*278474*/            OPC_RecordChild2, // #4 = $src0
/*278475*/            OPC_CheckType, MVT::v8i32,
/*278477*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*278479*/            OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*278482*/            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))
/*278493*/          /*Scope*/ 29, /*->278523*/
/*278494*/            OPC_CheckChild1Type, MVT::v4i64,
/*278496*/            OPC_MoveChild2,
/*278497*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*278500*/            OPC_CheckType, MVT::iPTR,
/*278502*/            OPC_MoveParent,
/*278503*/            OPC_MoveParent,
/*278504*/            OPC_RecordChild2, // #4 = $src0
/*278505*/            OPC_CheckType, MVT::v8i64,
/*278507*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*278509*/            OPC_EmitNodeXForm, 16, 1, // INSERT_get_vinsert256_imm
/*278512*/            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))
/*278523*/          /*Scope*/ 29, /*->278553*/
/*278524*/            OPC_CheckChild1Type, MVT::v2i64,
/*278526*/            OPC_MoveChild2,
/*278527*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*278530*/            OPC_CheckType, MVT::iPTR,
/*278532*/            OPC_MoveParent,
/*278533*/            OPC_MoveParent,
/*278534*/            OPC_RecordChild2, // #4 = $src0
/*278535*/            OPC_CheckType, MVT::v8i64,
/*278537*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*278539*/            OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*278542*/            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))
/*278553*/          0, /*End of Scope*/
/*278554*/        /*Scope*/ 91|128,10/*1371*/, /*->279927*/
/*278556*/          OPC_MoveChild1,
/*278557*/          OPC_SwitchOpcode /*18 cases */, 127|128,3/*511*/, TARGET_VAL(ISD::BITCAST),// ->279073
/*278562*/            OPC_MoveChild0,
/*278563*/            OPC_SwitchOpcode /*5 cases */, 21, TARGET_VAL(X86ISD::VBROADCAST),// ->278588
/*278567*/              OPC_RecordChild0, // #1 = $src
/*278568*/              OPC_CheckChild0Type, MVT::v2i64,
/*278570*/              OPC_CheckType, MVT::v4i64,
/*278572*/              OPC_MoveParent,
/*278573*/              OPC_MoveParent,
/*278574*/              OPC_RecordChild2, // #2 = $src0
/*278575*/              OPC_CheckType, MVT::v8i32,
/*278577*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*278579*/              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)
/*278588*/            /*SwitchOpcode*/ 118, TARGET_VAL(ISD::AND),// ->278709
/*278591*/              OPC_RecordChild0, // #1 = $src1
/*278592*/              OPC_RecordChild1, // #2 = $src2
/*278593*/              OPC_SwitchType /*6 cases */, 17, MVT::v16i32,// ->278613
/*278596*/                OPC_MoveParent,
/*278597*/                OPC_MoveParent,
/*278598*/                OPC_RecordChild2, // #3 = $src0
/*278599*/                OPC_CheckType, MVT::v8i64,
/*278601*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*278603*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZrrk), 0,
                              MVT::v8i64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i64] } (and:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)), VR512:{ *:[v8i64] }:$src0) - Complexity = 9
                          // Dst: (VPANDQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*278613*/              /*SwitchType*/ 17, MVT::v32i16,// ->278632
/*278615*/                OPC_MoveParent,
/*278616*/                OPC_MoveParent,
/*278617*/                OPC_RecordChild2, // #3 = $src0
/*278618*/                OPC_CheckType, MVT::v8i64,
/*278620*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*278622*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZrrk), 0,
                              MVT::v8i64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i64] } (and:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)), VR512:{ *:[v8i64] }:$src0) - Complexity = 9
                          // Dst: (VPANDQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*278632*/              /*SwitchType*/ 17, MVT::v64i8,// ->278651
/*278634*/                OPC_MoveParent,
/*278635*/                OPC_MoveParent,
/*278636*/                OPC_RecordChild2, // #3 = $src0
/*278637*/                OPC_CheckType, MVT::v8i64,
/*278639*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*278641*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZrrk), 0,
                              MVT::v8i64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i64] } (and:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)), VR512:{ *:[v8i64] }:$src0) - Complexity = 9
                          // Dst: (VPANDQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*278651*/              /*SwitchType*/ 17, MVT::v4i64,// ->278670
/*278653*/                OPC_MoveParent,
/*278654*/                OPC_MoveParent,
/*278655*/                OPC_RecordChild2, // #3 = $src0
/*278656*/                OPC_CheckType, MVT::v8i32,
/*278658*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*278660*/                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)
/*278670*/              /*SwitchType*/ 17, MVT::v16i16,// ->278689
/*278672*/                OPC_MoveParent,
/*278673*/                OPC_MoveParent,
/*278674*/                OPC_RecordChild2, // #3 = $src0
/*278675*/                OPC_CheckType, MVT::v8i32,
/*278677*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*278679*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ256rrk), 0,
                              MVT::v8i32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (and:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 9
                          // Dst: (VPANDDZ256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*278689*/              /*SwitchType*/ 17, MVT::v32i8,// ->278708
/*278691*/                OPC_MoveParent,
/*278692*/                OPC_MoveParent,
/*278693*/                OPC_RecordChild2, // #3 = $src0
/*278694*/                OPC_CheckType, MVT::v8i32,
/*278696*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*278698*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ256rrk), 0,
                              MVT::v8i32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (and:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 9
                          // Dst: (VPANDDZ256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*278708*/              0, // EndSwitchType
/*278709*/            /*SwitchOpcode*/ 118, TARGET_VAL(ISD::OR),// ->278830
/*278712*/              OPC_RecordChild0, // #1 = $src1
/*278713*/              OPC_RecordChild1, // #2 = $src2
/*278714*/              OPC_SwitchType /*6 cases */, 17, MVT::v16i32,// ->278734
/*278717*/                OPC_MoveParent,
/*278718*/                OPC_MoveParent,
/*278719*/                OPC_RecordChild2, // #3 = $src0
/*278720*/                OPC_CheckType, MVT::v8i64,
/*278722*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*278724*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZrrk), 0,
                              MVT::v8i64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i64] } (or:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)), VR512:{ *:[v8i64] }:$src0) - Complexity = 9
                          // Dst: (VPORQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*278734*/              /*SwitchType*/ 17, MVT::v32i16,// ->278753
/*278736*/                OPC_MoveParent,
/*278737*/                OPC_MoveParent,
/*278738*/                OPC_RecordChild2, // #3 = $src0
/*278739*/                OPC_CheckType, MVT::v8i64,
/*278741*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*278743*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZrrk), 0,
                              MVT::v8i64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i64] } (or:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)), VR512:{ *:[v8i64] }:$src0) - Complexity = 9
                          // Dst: (VPORQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*278753*/              /*SwitchType*/ 17, MVT::v64i8,// ->278772
/*278755*/                OPC_MoveParent,
/*278756*/                OPC_MoveParent,
/*278757*/                OPC_RecordChild2, // #3 = $src0
/*278758*/                OPC_CheckType, MVT::v8i64,
/*278760*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*278762*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZrrk), 0,
                              MVT::v8i64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i64] } (or:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)), VR512:{ *:[v8i64] }:$src0) - Complexity = 9
                          // Dst: (VPORQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*278772*/              /*SwitchType*/ 17, MVT::v4i64,// ->278791
/*278774*/                OPC_MoveParent,
/*278775*/                OPC_MoveParent,
/*278776*/                OPC_RecordChild2, // #3 = $src0
/*278777*/                OPC_CheckType, MVT::v8i32,
/*278779*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*278781*/                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)
/*278791*/              /*SwitchType*/ 17, MVT::v16i16,// ->278810
/*278793*/                OPC_MoveParent,
/*278794*/                OPC_MoveParent,
/*278795*/                OPC_RecordChild2, // #3 = $src0
/*278796*/                OPC_CheckType, MVT::v8i32,
/*278798*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*278800*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ256rrk), 0,
                              MVT::v8i32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (or:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 9
                          // Dst: (VPORDZ256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*278810*/              /*SwitchType*/ 17, MVT::v32i8,// ->278829
/*278812*/                OPC_MoveParent,
/*278813*/                OPC_MoveParent,
/*278814*/                OPC_RecordChild2, // #3 = $src0
/*278815*/                OPC_CheckType, MVT::v8i32,
/*278817*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*278819*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ256rrk), 0,
                              MVT::v8i32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (or:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 9
                          // Dst: (VPORDZ256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*278829*/              0, // EndSwitchType
/*278830*/            /*SwitchOpcode*/ 118, TARGET_VAL(ISD::XOR),// ->278951
/*278833*/              OPC_RecordChild0, // #1 = $src1
/*278834*/              OPC_RecordChild1, // #2 = $src2
/*278835*/              OPC_SwitchType /*6 cases */, 17, MVT::v16i32,// ->278855
/*278838*/                OPC_MoveParent,
/*278839*/                OPC_MoveParent,
/*278840*/                OPC_RecordChild2, // #3 = $src0
/*278841*/                OPC_CheckType, MVT::v8i64,
/*278843*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*278845*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZrrk), 0,
                              MVT::v8i64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i64] } (xor:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)), VR512:{ *:[v8i64] }:$src0) - Complexity = 9
                          // Dst: (VPXORQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*278855*/              /*SwitchType*/ 17, MVT::v32i16,// ->278874
/*278857*/                OPC_MoveParent,
/*278858*/                OPC_MoveParent,
/*278859*/                OPC_RecordChild2, // #3 = $src0
/*278860*/                OPC_CheckType, MVT::v8i64,
/*278862*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*278864*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZrrk), 0,
                              MVT::v8i64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i64] } (xor:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)), VR512:{ *:[v8i64] }:$src0) - Complexity = 9
                          // Dst: (VPXORQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*278874*/              /*SwitchType*/ 17, MVT::v64i8,// ->278893
/*278876*/                OPC_MoveParent,
/*278877*/                OPC_MoveParent,
/*278878*/                OPC_RecordChild2, // #3 = $src0
/*278879*/                OPC_CheckType, MVT::v8i64,
/*278881*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*278883*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZrrk), 0,
                              MVT::v8i64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i64] } (xor:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)), VR512:{ *:[v8i64] }:$src0) - Complexity = 9
                          // Dst: (VPXORQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*278893*/              /*SwitchType*/ 17, MVT::v4i64,// ->278912
/*278895*/                OPC_MoveParent,
/*278896*/                OPC_MoveParent,
/*278897*/                OPC_RecordChild2, // #3 = $src0
/*278898*/                OPC_CheckType, MVT::v8i32,
/*278900*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*278902*/                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)
/*278912*/              /*SwitchType*/ 17, MVT::v16i16,// ->278931
/*278914*/                OPC_MoveParent,
/*278915*/                OPC_MoveParent,
/*278916*/                OPC_RecordChild2, // #3 = $src0
/*278917*/                OPC_CheckType, MVT::v8i32,
/*278919*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*278921*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ256rrk), 0,
                              MVT::v8i32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (xor:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 9
                          // Dst: (VPXORDZ256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*278931*/              /*SwitchType*/ 17, MVT::v32i8,// ->278950
/*278933*/                OPC_MoveParent,
/*278934*/                OPC_MoveParent,
/*278935*/                OPC_RecordChild2, // #3 = $src0
/*278936*/                OPC_CheckType, MVT::v8i32,
/*278938*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*278940*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ256rrk), 0,
                              MVT::v8i32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (xor:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 9
                          // Dst: (VPXORDZ256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*278950*/              0, // EndSwitchType
/*278951*/            /*SwitchOpcode*/ 118, TARGET_VAL(X86ISD::ANDNP),// ->279072
/*278954*/              OPC_RecordChild0, // #1 = $src1
/*278955*/              OPC_RecordChild1, // #2 = $src2
/*278956*/              OPC_SwitchType /*6 cases */, 17, MVT::v16i32,// ->278976
/*278959*/                OPC_MoveParent,
/*278960*/                OPC_MoveParent,
/*278961*/                OPC_RecordChild2, // #3 = $src0
/*278962*/                OPC_CheckType, MVT::v8i64,
/*278964*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*278966*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZrrk), 0,
                              MVT::v8i64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i64] } (X86andnp:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)), VR512:{ *:[v8i64] }:$src0) - Complexity = 9
                          // Dst: (VPANDNQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*278976*/              /*SwitchType*/ 17, MVT::v32i16,// ->278995
/*278978*/                OPC_MoveParent,
/*278979*/                OPC_MoveParent,
/*278980*/                OPC_RecordChild2, // #3 = $src0
/*278981*/                OPC_CheckType, MVT::v8i64,
/*278983*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*278985*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZrrk), 0,
                              MVT::v8i64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i64] } (X86andnp:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)), VR512:{ *:[v8i64] }:$src0) - Complexity = 9
                          // Dst: (VPANDNQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*278995*/              /*SwitchType*/ 17, MVT::v64i8,// ->279014
/*278997*/                OPC_MoveParent,
/*278998*/                OPC_MoveParent,
/*278999*/                OPC_RecordChild2, // #3 = $src0
/*279000*/                OPC_CheckType, MVT::v8i64,
/*279002*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*279004*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZrrk), 0,
                              MVT::v8i64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i64] } (X86andnp:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)), VR512:{ *:[v8i64] }:$src0) - Complexity = 9
                          // Dst: (VPANDNQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*279014*/              /*SwitchType*/ 17, MVT::v4i64,// ->279033
/*279016*/                OPC_MoveParent,
/*279017*/                OPC_MoveParent,
/*279018*/                OPC_RecordChild2, // #3 = $src0
/*279019*/                OPC_CheckType, MVT::v8i32,
/*279021*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*279023*/                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)
/*279033*/              /*SwitchType*/ 17, MVT::v16i16,// ->279052
/*279035*/                OPC_MoveParent,
/*279036*/                OPC_MoveParent,
/*279037*/                OPC_RecordChild2, // #3 = $src0
/*279038*/                OPC_CheckType, MVT::v8i32,
/*279040*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*279042*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZ256rrk), 0,
                              MVT::v8i32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (X86andnp:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 9
                          // Dst: (VPANDNDZ256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*279052*/              /*SwitchType*/ 17, MVT::v32i8,// ->279071
/*279054*/                OPC_MoveParent,
/*279055*/                OPC_MoveParent,
/*279056*/                OPC_RecordChild2, // #3 = $src0
/*279057*/                OPC_CheckType, MVT::v8i32,
/*279059*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*279061*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZ256rrk), 0,
                              MVT::v8i32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8i32] } (X86andnp:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)), VR256X:{ *:[v8i32] }:$src0) - Complexity = 9
                          // Dst: (VPANDNDZ256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*279071*/              0, // EndSwitchType
/*279072*/            0, // EndSwitchOpcode
/*279073*/          /*SwitchOpcode*/ 53, TARGET_VAL(X86ISD::VSRLI),// ->279129
/*279076*/            OPC_RecordChild0, // #1 = $src1
/*279077*/            OPC_RecordChild1, // #2 = $src2
/*279078*/            OPC_MoveChild1,
/*279079*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*279082*/            OPC_MoveParent,
/*279083*/            OPC_MoveParent,
/*279084*/            OPC_RecordChild2, // #3 = $src0
/*279085*/            OPC_SwitchType /*3 cases */, 12, MVT::v8i32,// ->279100
/*279088*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*279090*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZ256rik), 0,
                            MVT::v8i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrli:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (timm:{ *:[i8] }):$src2), VR256X:{ *:[v8i32] }:$src0) - Complexity = 9
                        // Dst: (VPSRLDZ256rik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, (timm:{ *:[i8] }):$src2)
/*279100*/            /*SwitchType*/ 12, MVT::v8i64,// ->279114
/*279102*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*279104*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZrik), 0,
                            MVT::v8i64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrli:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (timm:{ *:[i8] }):$src2), VR512:{ *:[v8i64] }:$src0) - Complexity = 9
                        // Dst: (VPSRLQZrik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, (timm:{ *:[i8] }):$src2)
/*279114*/            /*SwitchType*/ 12, MVT::v8i16,// ->279128
/*279116*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*279118*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLWZ128rik), 0,
                            MVT::v8i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrli:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (timm:{ *:[i8] }):$src2), VR128X:{ *:[v8i16] }:$src0) - Complexity = 9
                        // Dst: (VPSRLWZ128rik:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, (timm:{ *:[i8] }):$src2)
/*279128*/            0, // EndSwitchType
/*279129*/          /*SwitchOpcode*/ 53, TARGET_VAL(X86ISD::VSHLI),// ->279185
/*279132*/            OPC_RecordChild0, // #1 = $src1
/*279133*/            OPC_RecordChild1, // #2 = $src2
/*279134*/            OPC_MoveChild1,
/*279135*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*279138*/            OPC_MoveParent,
/*279139*/            OPC_MoveParent,
/*279140*/            OPC_RecordChild2, // #3 = $src0
/*279141*/            OPC_SwitchType /*3 cases */, 12, MVT::v8i32,// ->279156
/*279144*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*279146*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZ256rik), 0,
                            MVT::v8i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vshli:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (timm:{ *:[i8] }):$src2), VR256X:{ *:[v8i32] }:$src0) - Complexity = 9
                        // Dst: (VPSLLDZ256rik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, (timm:{ *:[i8] }):$src2)
/*279156*/            /*SwitchType*/ 12, MVT::v8i64,// ->279170
/*279158*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*279160*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZrik), 0,
                            MVT::v8i64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vshli:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (timm:{ *:[i8] }):$src2), VR512:{ *:[v8i64] }:$src0) - Complexity = 9
                        // Dst: (VPSLLQZrik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, (timm:{ *:[i8] }):$src2)
/*279170*/            /*SwitchType*/ 12, MVT::v8i16,// ->279184
/*279172*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*279174*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLWZ128rik), 0,
                            MVT::v8i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vshli:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (timm:{ *:[i8] }):$src2), VR128X:{ *:[v8i16] }:$src0) - Complexity = 9
                        // Dst: (VPSLLWZ128rik:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, (timm:{ *:[i8] }):$src2)
/*279184*/            0, // EndSwitchType
/*279185*/          /*SwitchOpcode*/ 53, TARGET_VAL(X86ISD::VSRAI),// ->279241
/*279188*/            OPC_RecordChild0, // #1 = $src1
/*279189*/            OPC_RecordChild1, // #2 = $src2
/*279190*/            OPC_MoveChild1,
/*279191*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*279194*/            OPC_MoveParent,
/*279195*/            OPC_MoveParent,
/*279196*/            OPC_RecordChild2, // #3 = $src0
/*279197*/            OPC_SwitchType /*3 cases */, 12, MVT::v8i32,// ->279212
/*279200*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*279202*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZ256rik), 0,
                            MVT::v8i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrai:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (timm:{ *:[i8] }):$src2), VR256X:{ *:[v8i32] }:$src0) - Complexity = 9
                        // Dst: (VPSRADZ256rik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, (timm:{ *:[i8] }):$src2)
/*279212*/            /*SwitchType*/ 12, MVT::v8i64,// ->279226
/*279214*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*279216*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZrik), 0,
                            MVT::v8i64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrai:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (timm:{ *:[i8] }):$src2), VR512:{ *:[v8i64] }:$src0) - Complexity = 9
                        // Dst: (VPSRAQZrik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, (timm:{ *:[i8] }):$src2)
/*279226*/            /*SwitchType*/ 12, MVT::v8i16,// ->279240
/*279228*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*279230*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAWZ128rik), 0,
                            MVT::v8i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrai:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (timm:{ *:[i8] }):$src2), VR128X:{ *:[v8i16] }:$src0) - Complexity = 9
                        // Dst: (VPSRAWZ128rik:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, (timm:{ *:[i8] }):$src2)
/*279240*/            0, // EndSwitchType
/*279241*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VROTRI),// ->279283
/*279244*/            OPC_RecordChild0, // #1 = $src1
/*279245*/            OPC_RecordChild1, // #2 = $src2
/*279246*/            OPC_MoveChild1,
/*279247*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*279250*/            OPC_MoveParent,
/*279251*/            OPC_MoveParent,
/*279252*/            OPC_RecordChild2, // #3 = $src0
/*279253*/            OPC_SwitchType /*2 cases */, 12, MVT::v8i32,// ->279268
/*279256*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*279258*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORDZ256rik), 0,
                            MVT::v8i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vrotri:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (timm:{ *:[i8] }):$src2), VR256X:{ *:[v8i32] }:$src0) - Complexity = 9
                        // Dst: (VPRORDZ256rik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, (timm:{ *:[i8] }):$src2)
/*279268*/            /*SwitchType*/ 12, MVT::v8i64,// ->279282
/*279270*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*279272*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORQZrik), 0,
                            MVT::v8i64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vrotri:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (timm:{ *:[i8] }):$src2), VR512:{ *:[v8i64] }:$src0) - Complexity = 9
                        // Dst: (VPRORQZrik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, (timm:{ *:[i8] }):$src2)
/*279282*/            0, // EndSwitchType
/*279283*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VROTLI),// ->279325
/*279286*/            OPC_RecordChild0, // #1 = $src1
/*279287*/            OPC_RecordChild1, // #2 = $src2
/*279288*/            OPC_MoveChild1,
/*279289*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*279292*/            OPC_MoveParent,
/*279293*/            OPC_MoveParent,
/*279294*/            OPC_RecordChild2, // #3 = $src0
/*279295*/            OPC_SwitchType /*2 cases */, 12, MVT::v8i32,// ->279310
/*279298*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*279300*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLDZ256rik), 0,
                            MVT::v8i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vrotli:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (timm:{ *:[i8] }):$src2), VR256X:{ *:[v8i32] }:$src0) - Complexity = 9
                        // Dst: (VPROLDZ256rik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, (timm:{ *:[i8] }):$src2)
/*279310*/            /*SwitchType*/ 12, MVT::v8i64,// ->279324
/*279312*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*279314*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLQZrik), 0,
                            MVT::v8i64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vrotli:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (timm:{ *:[i8] }):$src2), VR512:{ *:[v8i64] }:$src0) - Complexity = 9
                        // Dst: (VPROLQZrik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, (timm:{ *:[i8] }):$src2)
/*279324*/            0, // EndSwitchType
/*279325*/          /*SwitchOpcode*/ 23, TARGET_VAL(X86ISD::VPERMI),// ->279351
/*279328*/            OPC_RecordChild0, // #1 = $src1
/*279329*/            OPC_RecordChild1, // #2 = $src2
/*279330*/            OPC_MoveChild1,
/*279331*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*279334*/            OPC_MoveParent,
/*279335*/            OPC_MoveParent,
/*279336*/            OPC_RecordChild2, // #3 = $src0
/*279337*/            OPC_CheckType, MVT::v8i64,
/*279339*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*279341*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMQZrik), 0,
                          MVT::v8i64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermi:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (timm:{ *:[i8] }):$src2), VR512:{ *:[v8i64] }:$src0) - Complexity = 9
                      // Dst: (VPERMQZrik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, (timm:{ *:[i8] }):$src2)
/*279351*/          /*SwitchOpcode*/ 23, TARGET_VAL(X86ISD::PSHUFD),// ->279377
/*279354*/            OPC_RecordChild0, // #1 = $src1
/*279355*/            OPC_RecordChild1, // #2 = $src2
/*279356*/            OPC_MoveChild1,
/*279357*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*279360*/            OPC_MoveParent,
/*279361*/            OPC_MoveParent,
/*279362*/            OPC_RecordChild2, // #3 = $src0
/*279363*/            OPC_CheckType, MVT::v8i32,
/*279365*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*279367*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFDZ256rik), 0,
                          MVT::v8i32, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86PShufd:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (timm:{ *:[i8] }):$src2), VR256X:{ *:[v8i32] }:$src0) - Complexity = 9
                      // Dst: (VPSHUFDZ256rik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, (timm:{ *:[i8] }):$src2)
/*279377*/          /*SwitchOpcode*/ 23, TARGET_VAL(X86ISD::PSHUFHW),// ->279403
/*279380*/            OPC_RecordChild0, // #1 = $src1
/*279381*/            OPC_RecordChild1, // #2 = $src2
/*279382*/            OPC_MoveChild1,
/*279383*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*279386*/            OPC_MoveParent,
/*279387*/            OPC_MoveParent,
/*279388*/            OPC_RecordChild2, // #3 = $src0
/*279389*/            OPC_CheckType, MVT::v8i16,
/*279391*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*279393*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFHWZ128rik), 0,
                          MVT::v8i16, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86PShufhw:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (timm:{ *:[i8] }):$src2), VR128X:{ *:[v8i16] }:$src0) - Complexity = 9
                      // Dst: (VPSHUFHWZ128rik:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, (timm:{ *:[i8] }):$src2)
/*279403*/          /*SwitchOpcode*/ 23, TARGET_VAL(X86ISD::PSHUFLW),// ->279429
/*279406*/            OPC_RecordChild0, // #1 = $src1
/*279407*/            OPC_RecordChild1, // #2 = $src2
/*279408*/            OPC_MoveChild1,
/*279409*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*279412*/            OPC_MoveParent,
/*279413*/            OPC_MoveParent,
/*279414*/            OPC_RecordChild2, // #3 = $src0
/*279415*/            OPC_CheckType, MVT::v8i16,
/*279417*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*279419*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFLWZ128rik), 0,
                          MVT::v8i16, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86PShuflw:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (timm:{ *:[i8] }):$src2), VR128X:{ *:[v8i16] }:$src0) - Complexity = 9
                      // Dst: (VPSHUFLWZ128rik:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, (timm:{ *:[i8] }):$src2)
/*279429*/          /*SwitchOpcode*/ 69, TARGET_VAL(X86ISD::CVTP2SI_RND),// ->279501
/*279432*/            OPC_RecordChild0, // #1 = $src
/*279433*/            OPC_Scope, 40, /*->279475*/ // 2 children in Scope
/*279435*/              OPC_CheckChild0Type, MVT::v8f64,
/*279437*/              OPC_RecordChild1, // #2 = $rc
/*279438*/              OPC_MoveChild1,
/*279439*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*279442*/              OPC_MoveParent,
/*279443*/              OPC_MoveParent,
/*279444*/              OPC_RecordChild2, // #3 = $src0
/*279445*/              OPC_SwitchType /*2 cases */, 12, MVT::v8i32,// ->279460
/*279448*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*279450*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2DQZrrbk), 0,
                              MVT::v8i32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2IntRnd:{ *:[v8i32] } VR512:{ *:[v8f64] }:$src, (timm:{ *:[i32] }):$rc), VR256X:{ *:[v8i32] }:$src0) - Complexity = 9
                          // Dst: (VCVTPD2DQZrrbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src, (timm:{ *:[i32] }):$rc)
/*279460*/              /*SwitchType*/ 12, MVT::v8i64,// ->279474
/*279462*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*279464*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2QQZrrbk), 0,
                              MVT::v8i64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2IntRnd:{ *:[v8i64] } VR512:{ *:[v8f64] }:$src, (timm:{ *:[i32] }):$rc), VR512:{ *:[v8i64] }:$src0) - Complexity = 9
                          // Dst: (VCVTPD2QQZrrbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src, (timm:{ *:[i32] }):$rc)
/*279474*/              0, // EndSwitchType
/*279475*/            /*Scope*/ 24, /*->279500*/
/*279476*/              OPC_CheckChild0Type, MVT::v8f32,
/*279478*/              OPC_RecordChild1, // #2 = $rc
/*279479*/              OPC_MoveChild1,
/*279480*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*279483*/              OPC_MoveParent,
/*279484*/              OPC_MoveParent,
/*279485*/              OPC_RecordChild2, // #3 = $src0
/*279486*/              OPC_CheckType, MVT::v8i64,
/*279488*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*279490*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2QQZrrbk), 0,
                            MVT::v8i64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2IntRnd:{ *:[v8i64] } VR256X:{ *:[v8f32] }:$src, (timm:{ *:[i32] }):$rc), VR512:{ *:[v8i64] }:$src0) - Complexity = 9
                        // Dst: (VCVTPS2QQZrrbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src, (timm:{ *:[i32] }):$rc)
/*279500*/            0, /*End of Scope*/
/*279501*/          /*SwitchOpcode*/ 69, TARGET_VAL(X86ISD::CVTP2UI_RND),// ->279573
/*279504*/            OPC_RecordChild0, // #1 = $src
/*279505*/            OPC_Scope, 40, /*->279547*/ // 2 children in Scope
/*279507*/              OPC_CheckChild0Type, MVT::v8f64,
/*279509*/              OPC_RecordChild1, // #2 = $rc
/*279510*/              OPC_MoveChild1,
/*279511*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*279514*/              OPC_MoveParent,
/*279515*/              OPC_MoveParent,
/*279516*/              OPC_RecordChild2, // #3 = $src0
/*279517*/              OPC_SwitchType /*2 cases */, 12, MVT::v8i32,// ->279532
/*279520*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*279522*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UDQZrrbk), 0,
                              MVT::v8i32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2UIntRnd:{ *:[v8i32] } VR512:{ *:[v8f64] }:$src, (timm:{ *:[i32] }):$rc), VR256X:{ *:[v8i32] }:$src0) - Complexity = 9
                          // Dst: (VCVTPD2UDQZrrbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src, (timm:{ *:[i32] }):$rc)
/*279532*/              /*SwitchType*/ 12, MVT::v8i64,// ->279546
/*279534*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*279536*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UQQZrrbk), 0,
                              MVT::v8i64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2UIntRnd:{ *:[v8i64] } VR512:{ *:[v8f64] }:$src, (timm:{ *:[i32] }):$rc), VR512:{ *:[v8i64] }:$src0) - Complexity = 9
                          // Dst: (VCVTPD2UQQZrrbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src, (timm:{ *:[i32] }):$rc)
/*279546*/              0, // EndSwitchType
/*279547*/            /*Scope*/ 24, /*->279572*/
/*279548*/              OPC_CheckChild0Type, MVT::v8f32,
/*279550*/              OPC_RecordChild1, // #2 = $rc
/*279551*/              OPC_MoveChild1,
/*279552*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*279555*/              OPC_MoveParent,
/*279556*/              OPC_MoveParent,
/*279557*/              OPC_RecordChild2, // #3 = $src0
/*279558*/              OPC_CheckType, MVT::v8i64,
/*279560*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*279562*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UQQZrrbk), 0,
                            MVT::v8i64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtp2UIntRnd:{ *:[v8i64] } VR256X:{ *:[v8f32] }:$src, (timm:{ *:[i32] }):$rc), VR512:{ *:[v8i64] }:$src0) - Complexity = 9
                        // Dst: (VCVTPS2UQQZrrbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src, (timm:{ *:[i32] }):$rc)
/*279572*/            0, /*End of Scope*/
/*279573*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::SHUF128),// ->279601
/*279576*/            OPC_RecordChild0, // #1 = $src1
/*279577*/            OPC_RecordChild1, // #2 = $src2
/*279578*/            OPC_RecordChild2, // #3 = $src3
/*279579*/            OPC_MoveChild2,
/*279580*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*279583*/            OPC_MoveParent,
/*279584*/            OPC_MoveParent,
/*279585*/            OPC_RecordChild2, // #4 = $src0
/*279586*/            OPC_CheckType, MVT::v8i64,
/*279588*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*279590*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI64X2Zrrik), 0,
                          MVT::v8i64, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                      // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86Shuf128:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (timm:{ *:[i8] }):$src3), VR512:{ *:[v8i64] }:$src0) - Complexity = 9
                      // Dst: (VSHUFI64X2Zrrik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (timm:{ *:[i8] }):$src3)
/*279601*/          /*SwitchOpcode*/ 42, TARGET_VAL(X86ISD::VALIGN),// ->279646
/*279604*/            OPC_RecordChild0, // #1 = $src1
/*279605*/            OPC_RecordChild1, // #2 = $src2
/*279606*/            OPC_RecordChild2, // #3 = $src3
/*279607*/            OPC_MoveChild2,
/*279608*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*279611*/            OPC_MoveParent,
/*279612*/            OPC_MoveParent,
/*279613*/            OPC_RecordChild2, // #4 = $src0
/*279614*/            OPC_SwitchType /*2 cases */, 13, MVT::v8i32,// ->279630
/*279617*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*279619*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZ256rrik), 0,
                            MVT::v8i32, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VAlign:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (timm:{ *:[i8] }):$src3), VR256X:{ *:[v8i32] }:$src0) - Complexity = 9
                        // Dst: (VALIGNDZ256rrik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (timm:{ *:[i8] }):$src3)
/*279630*/            /*SwitchType*/ 13, MVT::v8i64,// ->279645
/*279632*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*279634*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNQZrrik), 0,
                            MVT::v8i64, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VAlign:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (timm:{ *:[i8] }):$src3), VR512:{ *:[v8i64] }:$src0) - Complexity = 9
                        // Dst: (VALIGNQZrrik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (timm:{ *:[i8] }):$src3)
/*279645*/            0, // EndSwitchType
/*279646*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::DBPSADBW),// ->279674
/*279649*/            OPC_RecordChild0, // #1 = $src1
/*279650*/            OPC_RecordChild1, // #2 = $src2
/*279651*/            OPC_RecordChild2, // #3 = $src3
/*279652*/            OPC_MoveChild2,
/*279653*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*279656*/            OPC_MoveParent,
/*279657*/            OPC_MoveParent,
/*279658*/            OPC_RecordChild2, // #4 = $src0
/*279659*/            OPC_CheckType, MVT::v8i16,
/*279661*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*279663*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDBPSADBWZ128rrik), 0,
                          MVT::v8i16, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86dbpsadbw:{ *:[v8i16] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (timm:{ *:[i8] }):$src3), VR128X:{ *:[v8i16] }:$src0) - Complexity = 9
                      // Dst: (VDBPSADBWZ128rrik:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (timm:{ *:[i8] }):$src3)
/*279674*/          /*SwitchOpcode*/ 0|128,1/*128*/, TARGET_VAL(X86ISD::VPTERNLOG),// ->279806
/*279678*/            OPC_RecordChild0, // #1 = $src1
/*279679*/            OPC_RecordChild1, // #2 = $src2
/*279680*/            OPC_RecordChild2, // #3 = $src3
/*279681*/            OPC_RecordChild3, // #4 = $src4
/*279682*/            OPC_MoveChild3,
/*279683*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*279686*/            OPC_MoveParent,
/*279687*/            OPC_MoveParent,
/*279688*/            OPC_SwitchType /*2 cases */, 56, MVT::v8i32,// ->279747
/*279691*/              OPC_Scope, 15, /*->279708*/ // 3 children in Scope
/*279693*/                OPC_CheckChild2Same, 1,
/*279695*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*279697*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ256rrik), 0,
                              MVT::v8i32, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3, (timm:{ *:[i8] }):$src4), VR256X:{ *:[v8i32] }:$src1) - Complexity = 9
                          // Dst: (VPTERNLOGDZ256rrik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3, (timm:{ *:[i8] }):$src4)
/*279708*/              /*Scope*/ 18, /*->279727*/
/*279709*/                OPC_CheckChild2Same, 3,
/*279711*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*279713*/                OPC_EmitNodeXForm, 19, 4, // VPTERNLOG321_imm8
/*279716*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ256rrik), 0,
                              MVT::v8i32, 5/*#Ops*/, 3, 0, 2, 1, 5, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src3, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src1, (timm:{ *:[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] } (timm:{ *:[i8] }):$src4))
/*279727*/              /*Scope*/ 18, /*->279746*/
/*279728*/                OPC_CheckChild2Same, 2,
/*279730*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*279732*/                OPC_EmitNodeXForm, 21, 4, // VPTERNLOG213_imm8
/*279735*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ256rrik), 0,
                              MVT::v8i32, 5/*#Ops*/, 2, 0, 1, 3, 5, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src3, (timm:{ *:[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] } (timm:{ *:[i8] }):$src4))
/*279746*/              0, /*End of Scope*/
/*279747*/            /*SwitchType*/ 56, MVT::v8i64,// ->279805
/*279749*/              OPC_Scope, 15, /*->279766*/ // 3 children in Scope
/*279751*/                OPC_CheckChild2Same, 1,
/*279753*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*279755*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrrik), 0,
                              MVT::v8i64, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src3, (timm:{ *:[i8] }):$src4), VR512:{ *:[v8i64] }:$src1) - Complexity = 9
                          // Dst: (VPTERNLOGQZrrik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src3, (timm:{ *:[i8] }):$src4)
/*279766*/              /*Scope*/ 18, /*->279785*/
/*279767*/                OPC_CheckChild2Same, 3,
/*279769*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*279771*/                OPC_EmitNodeXForm, 19, 4, // VPTERNLOG321_imm8
/*279774*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrrik), 0,
                              MVT::v8i64, 5/*#Ops*/, 3, 0, 2, 1, 5, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src3, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src1, (timm:{ *:[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] } (timm:{ *:[i8] }):$src4))
/*279785*/              /*Scope*/ 18, /*->279804*/
/*279786*/                OPC_CheckChild2Same, 2,
/*279788*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*279790*/                OPC_EmitNodeXForm, 21, 4, // VPTERNLOG213_imm8
/*279793*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrrik), 0,
                              MVT::v8i64, 5/*#Ops*/, 2, 0, 1, 3, 5, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vpternlog:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src3, (timm:{ *:[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] } (timm:{ *:[i8] }):$src4))
/*279804*/              0, /*End of Scope*/
/*279805*/            0, // EndSwitchType
/*279806*/          /*SwitchOpcode*/ 57, TARGET_VAL(X86ISD::VSHLD),// ->279866
/*279809*/            OPC_RecordChild0, // #1 = $src1
/*279810*/            OPC_RecordChild1, // #2 = $src2
/*279811*/            OPC_RecordChild2, // #3 = $src3
/*279812*/            OPC_MoveChild2,
/*279813*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*279816*/            OPC_MoveParent,
/*279817*/            OPC_MoveParent,
/*279818*/            OPC_RecordChild2, // #4 = $src0
/*279819*/            OPC_SwitchType /*3 cases */, 13, MVT::v8i16,// ->279835
/*279822*/              OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*279824*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDWZ128rrik), 0,
                            MVT::v8i16, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86VShld:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (timm:{ *:[i8] }):$src3), VR128X:{ *:[v8i16] }:$src0) - Complexity = 9
                        // Dst: (VPSHLDWZ128rrik:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (timm:{ *:[i8] }):$src3)
/*279835*/            /*SwitchType*/ 13, MVT::v8i32,// ->279850
/*279837*/              OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*279839*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDDZ256rrik), 0,
                            MVT::v8i32, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VShld:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (timm:{ *:[i8] }):$src3), VR256X:{ *:[v8i32] }:$src0) - Complexity = 9
                        // Dst: (VPSHLDDZ256rrik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (timm:{ *:[i8] }):$src3)
/*279850*/            /*SwitchType*/ 13, MVT::v8i64,// ->279865
/*279852*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*279854*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDQZrrik), 0,
                            MVT::v8i64, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VShld:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (timm:{ *:[i8] }):$src3), VR512:{ *:[v8i64] }:$src0) - Complexity = 9
                        // Dst: (VPSHLDQZrrik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (timm:{ *:[i8] }):$src3)
/*279865*/            0, // EndSwitchType
/*279866*/          /*SwitchOpcode*/ 57, TARGET_VAL(X86ISD::VSHRD),// ->279926
/*279869*/            OPC_RecordChild0, // #1 = $src1
/*279870*/            OPC_RecordChild1, // #2 = $src2
/*279871*/            OPC_RecordChild2, // #3 = $src3
/*279872*/            OPC_MoveChild2,
/*279873*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*279876*/            OPC_MoveParent,
/*279877*/            OPC_MoveParent,
/*279878*/            OPC_RecordChild2, // #4 = $src0
/*279879*/            OPC_SwitchType /*3 cases */, 13, MVT::v8i16,// ->279895
/*279882*/              OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*279884*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDWZ128rrik), 0,
                            MVT::v8i16, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86VShrd:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (timm:{ *:[i8] }):$src3), VR128X:{ *:[v8i16] }:$src0) - Complexity = 9
                        // Dst: (VPSHRDWZ128rrik:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (timm:{ *:[i8] }):$src3)
/*279895*/            /*SwitchType*/ 13, MVT::v8i32,// ->279910
/*279897*/              OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*279899*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDDZ256rrik), 0,
                            MVT::v8i32, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86VShrd:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (timm:{ *:[i8] }):$src3), VR256X:{ *:[v8i32] }:$src0) - Complexity = 9
                        // Dst: (VPSHRDDZ256rrik:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (timm:{ *:[i8] }):$src3)
/*279910*/            /*SwitchType*/ 13, MVT::v8i64,// ->279925
/*279912*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*279914*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDQZrrik), 0,
                            MVT::v8i64, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86VShrd:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (timm:{ *:[i8] }):$src3), VR512:{ *:[v8i64] }:$src0) - Complexity = 9
                        // Dst: (VPSHRDQZrrik:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (timm:{ *:[i8] }):$src3)
/*279925*/            0, // EndSwitchType
/*279926*/          0, // EndSwitchOpcode
/*279927*/        /*Scope*/ 42, /*->279970*/
/*279928*/          OPC_RecordChild1, // #1 = $src
/*279929*/          OPC_MoveChild2,
/*279930*/          OPC_CheckImmAllZerosV,
/*279931*/          OPC_MoveParent,
/*279932*/          OPC_SwitchType /*3 cases */, 10, MVT::v8i32,// ->279945
/*279935*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*279937*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA32Z256rrkz), 0,
                          MVT::v8i32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src, immAllZerosV:{ *:[v8i32] }) - Complexity = 7
                      // Dst: (VMOVDQA32Z256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/*279945*/          /*SwitchType*/ 10, MVT::v8i64,// ->279957
/*279947*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*279949*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Zrrkz), 0,
                          MVT::v8i64, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src, immAllZerosV:{ *:[v8i64] }) - Complexity = 7
                      // Dst: (VMOVDQA64Zrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*279957*/          /*SwitchType*/ 10, MVT::v8i16,// ->279969
/*279959*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*279961*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU16Z128rrkz), 0,
                          MVT::v8i16, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src, immAllZerosV:{ *:[v8i16] }) - Complexity = 7
                      // Dst: (VMOVDQU16Z128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/*279969*/          0, // EndSwitchType
/*279970*/        /*Scope*/ 43, /*->280014*/
/*279971*/          OPC_MoveChild1,
/*279972*/          OPC_CheckImmAllZerosV,
/*279973*/          OPC_MoveParent,
/*279974*/          OPC_RecordChild2, // #1 = $src
/*279975*/          OPC_CheckType, MVT::v8i64,
/*279977*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*279980*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*279988*/          OPC_EmitNode1, TARGET_VAL(X86::KNOTWrr), 0,
                        MVT::v16i1, 1/*#Ops*/, 3,  // Results = #4
/*279995*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*279998*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 4, 5,  // Results = #6
/*280006*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Zrrkz), 0,
                        MVT::v8i64, 2/*#Ops*/, 6, 1, 
                    // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, immAllZerosV:{ *:[v8i64] }, VR512:{ *:[v8i64] }:$src) - Complexity = 7
                    // Dst: (VMOVDQA64Zrrkz:{ *:[v8i64] } (COPY_TO_REGCLASS:{ *:[v8i1] } (KNOTWrr:{ *:[v16i1] } (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$mask, VK16:{ *:[i32] })), VK8:{ *:[i32] }), VR512:{ *:[v8i64] }:$src)
/*280014*/        /*Scope*/ 110, /*->280125*/
/*280015*/          OPC_RecordChild1, // #1 = $src1
/*280016*/          OPC_MoveChild2,
/*280017*/          OPC_CheckImmAllZerosV,
/*280018*/          OPC_MoveParent,
/*280019*/          OPC_SwitchType /*2 cases */, 50, MVT::v8i32,// ->280072
/*280022*/            OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*280024*/            OPC_EmitInteger, MVT::i32, X86::VK16WMRegClassID,
/*280027*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*280035*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i32, 0/*#Ops*/,  // Results = #4
/*280041*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*280044*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v16i32, 3/*#Ops*/, 4, 1, 5,  // Results = #6
/*280053*/            OPC_EmitNode1, TARGET_VAL(X86::VMOVDQA32Zrrkz), 0,
                          MVT::v16i32, 2/*#Ops*/, 3, 6,  // Results = #7
/*280061*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*280064*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v8i32, 2/*#Ops*/, 7, 8, 
                      // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, immAllZerosV:{ *:[v8i32] }) - 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] })
/*280072*/          /*SwitchType*/ 50, MVT::v8i16,// ->280124
/*280074*/            OPC_CheckPatternPredicate, 117, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/*280076*/            OPC_EmitInteger, MVT::i32, X86::VK32WMRegClassID,
/*280079*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v32i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*280087*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #4
/*280093*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*280096*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 4, 1, 5,  // Results = #6
/*280105*/            OPC_EmitNode1, TARGET_VAL(X86::VMOVDQU16Zrrkz), 0,
                          MVT::v32i16, 2/*#Ops*/, 3, 6,  // Results = #7
/*280113*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*280116*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v8i16, 2/*#Ops*/, 7, 8, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, immAllZerosV:{ *:[v8i16] }) - Complexity = 7
                      // 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] })
/*280124*/          0, // EndSwitchType
/*280125*/        /*Scope*/ 99|128,23/*3043*/, /*->283170*/
/*280127*/          OPC_MoveChild1,
/*280128*/          OPC_SwitchOpcode /*67 cases */, 1|128,1/*129*/, TARGET_VAL(X86ISD::VBROADCAST),// ->280262
/*280133*/            OPC_RecordChild0, // #1 = $src
/*280134*/            OPC_Scope, 17, /*->280153*/ // 6 children in Scope
/*280136*/              OPC_CheckChild0Type, MVT::i32,
/*280138*/              OPC_MoveParent,
/*280139*/              OPC_RecordChild2, // #2 = $src0
/*280140*/              OPC_CheckType, MVT::v8i32,
/*280142*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*280144*/              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)
/*280153*/            /*Scope*/ 17, /*->280171*/
/*280154*/              OPC_CheckChild0Type, MVT::i64,
/*280156*/              OPC_MoveParent,
/*280157*/              OPC_RecordChild2, // #2 = $src0
/*280158*/              OPC_CheckType, MVT::v8i64,
/*280160*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*280162*/              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)
/*280171*/            /*Scope*/ 17, /*->280189*/
/*280172*/              OPC_CheckChild0Type, MVT::v8i16,
/*280174*/              OPC_MoveParent,
/*280175*/              OPC_RecordChild2, // #2 = $src0
/*280176*/              OPC_CheckType, MVT::v8i16,
/*280178*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*280180*/              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)
/*280189*/            /*Scope*/ 17, /*->280207*/
/*280190*/              OPC_CheckChild0Type, MVT::v4i32,
/*280192*/              OPC_MoveParent,
/*280193*/              OPC_RecordChild2, // #2 = $src0
/*280194*/              OPC_CheckType, MVT::v8i32,
/*280196*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*280198*/              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)
/*280207*/            /*Scope*/ 17, /*->280225*/
/*280208*/              OPC_CheckChild0Type, MVT::v2i64,
/*280210*/              OPC_MoveParent,
/*280211*/              OPC_RecordChild2, // #2 = $src0
/*280212*/              OPC_CheckType, MVT::v8i64,
/*280214*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*280216*/              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)
/*280225*/            /*Scope*/ 35, /*->280261*/
/*280226*/              OPC_CheckChild0Type, MVT::i16,
/*280228*/              OPC_MoveParent,
/*280229*/              OPC_RecordChild2, // #2 = $src0
/*280230*/              OPC_CheckType, MVT::v8i16,
/*280232*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*280234*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::i32, 0/*#Ops*/,  // Results = #3
/*280240*/              OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*280243*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::i32, 3/*#Ops*/, 3, 1, 4,  // Results = #5
/*280252*/              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] }))
/*280261*/            0, /*End of Scope*/
/*280262*/          /*SwitchOpcode*/ 100, TARGET_VAL(X86ISD::VPERMV3),// ->280365
/*280265*/            OPC_RecordChild0, // #1 = $src2
/*280266*/            OPC_RecordChild1, // #2 = $src1
/*280267*/            OPC_RecordChild2, // #3 = $src3
/*280268*/            OPC_MoveParent,
/*280269*/            OPC_Scope, 46, /*->280317*/ // 2 children in Scope
/*280271*/              OPC_CheckChild2Same, 2,
/*280273*/              OPC_SwitchType /*3 cases */, 12, MVT::v8i32,// ->280288
/*280276*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*280278*/                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)
/*280288*/              /*SwitchType*/ 12, MVT::v8i64,// ->280302
/*280290*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*280292*/                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)
/*280302*/              /*SwitchType*/ 12, MVT::v8i16,// ->280316
/*280304*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*280306*/                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)
/*280316*/              0, // EndSwitchType
/*280317*/            /*Scope*/ 46, /*->280364*/
/*280318*/              OPC_CheckChild2Same, 1,
/*280320*/              OPC_SwitchType /*3 cases */, 12, MVT::v8i32,// ->280335
/*280323*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*280325*/                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)
/*280335*/              /*SwitchType*/ 12, MVT::v8i64,// ->280349
/*280337*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*280339*/                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)
/*280349*/              /*SwitchType*/ 12, MVT::v8i16,// ->280363
/*280351*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*280353*/                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)
/*280363*/              0, // EndSwitchType
/*280364*/            0, /*End of Scope*/
/*280365*/          /*SwitchOpcode*/ 48, TARGET_VAL(ISD::ADD),// ->280416
/*280368*/            OPC_RecordChild0, // #1 = $src1
/*280369*/            OPC_RecordChild1, // #2 = $src2
/*280370*/            OPC_MoveParent,
/*280371*/            OPC_RecordChild2, // #3 = $src0
/*280372*/            OPC_SwitchType /*3 cases */, 12, MVT::v8i64,// ->280387
/*280375*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*280377*/              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)
/*280387*/            /*SwitchType*/ 12, MVT::v8i32,// ->280401
/*280389*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*280391*/              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)
/*280401*/            /*SwitchType*/ 12, MVT::v8i16,// ->280415
/*280403*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*280405*/              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)
/*280415*/            0, // EndSwitchType
/*280416*/          /*SwitchOpcode*/ 48, TARGET_VAL(ISD::SUB),// ->280467
/*280419*/            OPC_RecordChild0, // #1 = $src1
/*280420*/            OPC_RecordChild1, // #2 = $src2
/*280421*/            OPC_MoveParent,
/*280422*/            OPC_RecordChild2, // #3 = $src0
/*280423*/            OPC_SwitchType /*3 cases */, 12, MVT::v8i64,// ->280438
/*280426*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*280428*/              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)
/*280438*/            /*SwitchType*/ 12, MVT::v8i32,// ->280452
/*280440*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*280442*/              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)
/*280452*/            /*SwitchType*/ 12, MVT::v8i16,// ->280466
/*280454*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*280456*/              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)
/*280466*/            0, // EndSwitchType
/*280467*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::SADDSAT),// ->280488
/*280470*/            OPC_RecordChild0, // #1 = $src1
/*280471*/            OPC_RecordChild1, // #2 = $src2
/*280472*/            OPC_MoveParent,
/*280473*/            OPC_RecordChild2, // #3 = $src0
/*280474*/            OPC_CheckType, MVT::v8i16,
/*280476*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*280478*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSWZ128rrk), 0,
                          MVT::v8i16, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (saddsat:{ *:[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)
/*280488*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::SSUBSAT),// ->280509
/*280491*/            OPC_RecordChild0, // #1 = $src1
/*280492*/            OPC_RecordChild1, // #2 = $src2
/*280493*/            OPC_MoveParent,
/*280494*/            OPC_RecordChild2, // #3 = $src0
/*280495*/            OPC_CheckType, MVT::v8i16,
/*280497*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*280499*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSWZ128rrk), 0,
                          MVT::v8i16, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (ssubsat:{ *:[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)
/*280509*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::UADDSAT),// ->280530
/*280512*/            OPC_RecordChild0, // #1 = $src1
/*280513*/            OPC_RecordChild1, // #2 = $src2
/*280514*/            OPC_MoveParent,
/*280515*/            OPC_RecordChild2, // #3 = $src0
/*280516*/            OPC_CheckType, MVT::v8i16,
/*280518*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*280520*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSWZ128rrk), 0,
                          MVT::v8i16, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (uaddsat:{ *:[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)
/*280530*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::USUBSAT),// ->280551
/*280533*/            OPC_RecordChild0, // #1 = $src1
/*280534*/            OPC_RecordChild1, // #2 = $src2
/*280535*/            OPC_MoveParent,
/*280536*/            OPC_RecordChild2, // #3 = $src0
/*280537*/            OPC_CheckType, MVT::v8i16,
/*280539*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*280541*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSWZ128rrk), 0,
                          MVT::v8i16, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (usubsat:{ *:[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)
/*280551*/          /*SwitchOpcode*/ 48, TARGET_VAL(ISD::MUL),// ->280602
/*280554*/            OPC_RecordChild0, // #1 = $src1
/*280555*/            OPC_RecordChild1, // #2 = $src2
/*280556*/            OPC_MoveParent,
/*280557*/            OPC_RecordChild2, // #3 = $src0
/*280558*/            OPC_SwitchType /*3 cases */, 12, MVT::v8i32,// ->280573
/*280561*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*280563*/              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)
/*280573*/            /*SwitchType*/ 12, MVT::v8i16,// ->280587
/*280575*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*280577*/              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)
/*280587*/            /*SwitchType*/ 12, MVT::v8i64,// ->280601
/*280589*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*280591*/              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)
/*280601*/            0, // EndSwitchType
/*280602*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::MULHS),// ->280623
/*280605*/            OPC_RecordChild0, // #1 = $src1
/*280606*/            OPC_RecordChild1, // #2 = $src2
/*280607*/            OPC_MoveParent,
/*280608*/            OPC_RecordChild2, // #3 = $src0
/*280609*/            OPC_CheckType, MVT::v8i16,
/*280611*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*280613*/            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)
/*280623*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::MULHU),// ->280644
/*280626*/            OPC_RecordChild0, // #1 = $src1
/*280627*/            OPC_RecordChild1, // #2 = $src2
/*280628*/            OPC_MoveParent,
/*280629*/            OPC_RecordChild2, // #3 = $src0
/*280630*/            OPC_CheckType, MVT::v8i16,
/*280632*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*280634*/            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)
/*280644*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::MULHRS),// ->280665
/*280647*/            OPC_RecordChild0, // #1 = $src1
/*280648*/            OPC_RecordChild1, // #2 = $src2
/*280649*/            OPC_MoveParent,
/*280650*/            OPC_RecordChild2, // #3 = $src0
/*280651*/            OPC_CheckType, MVT::v8i16,
/*280653*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*280655*/            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)
/*280665*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::AVG),// ->280686
/*280668*/            OPC_RecordChild0, // #1 = $src1
/*280669*/            OPC_RecordChild1, // #2 = $src2
/*280670*/            OPC_MoveParent,
/*280671*/            OPC_RecordChild2, // #3 = $src0
/*280672*/            OPC_CheckType, MVT::v8i16,
/*280674*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*280676*/            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)
/*280686*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::PMULDQ),// ->280707
/*280689*/            OPC_RecordChild0, // #1 = $src1
/*280690*/            OPC_RecordChild1, // #2 = $src2
/*280691*/            OPC_MoveParent,
/*280692*/            OPC_RecordChild2, // #3 = $src0
/*280693*/            OPC_CheckType, MVT::v8i64,
/*280695*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*280697*/            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)
/*280707*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::PMULUDQ),// ->280728
/*280710*/            OPC_RecordChild0, // #1 = $src1
/*280711*/            OPC_RecordChild1, // #2 = $src2
/*280712*/            OPC_MoveParent,
/*280713*/            OPC_RecordChild2, // #3 = $src0
/*280714*/            OPC_CheckType, MVT::v8i64,
/*280716*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*280718*/            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)
/*280728*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::PACKSS),// ->280751
/*280731*/            OPC_RecordChild0, // #1 = $src1
/*280732*/            OPC_CheckChild0Type, MVT::v4i32,
/*280734*/            OPC_RecordChild1, // #2 = $src2
/*280735*/            OPC_MoveParent,
/*280736*/            OPC_RecordChild2, // #3 = $src0
/*280737*/            OPC_CheckType, MVT::v8i16,
/*280739*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*280741*/            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)
/*280751*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::PACKUS),// ->280774
/*280754*/            OPC_RecordChild0, // #1 = $src1
/*280755*/            OPC_CheckChild0Type, MVT::v4i32,
/*280757*/            OPC_RecordChild1, // #2 = $src2
/*280758*/            OPC_MoveParent,
/*280759*/            OPC_RecordChild2, // #3 = $src0
/*280760*/            OPC_CheckType, MVT::v8i16,
/*280762*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*280764*/            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)
/*280774*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::VPMADDUBSW),// ->280795
/*280777*/            OPC_RecordChild0, // #1 = $src1
/*280778*/            OPC_RecordChild1, // #2 = $src2
/*280779*/            OPC_MoveParent,
/*280780*/            OPC_RecordChild2, // #3 = $src0
/*280781*/            OPC_CheckType, MVT::v8i16,
/*280783*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*280785*/            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)
/*280795*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::VPMADDWD),// ->280816
/*280798*/            OPC_RecordChild0, // #1 = $src1
/*280799*/            OPC_RecordChild1, // #2 = $src2
/*280800*/            OPC_MoveParent,
/*280801*/            OPC_RecordChild2, // #3 = $src0
/*280802*/            OPC_CheckType, MVT::v8i32,
/*280804*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*280806*/            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)
/*280816*/          /*SwitchOpcode*/ 48, TARGET_VAL(ISD::SMAX),// ->280867
/*280819*/            OPC_RecordChild0, // #1 = $src1
/*280820*/            OPC_RecordChild1, // #2 = $src2
/*280821*/            OPC_MoveParent,
/*280822*/            OPC_RecordChild2, // #3 = $src0
/*280823*/            OPC_SwitchType /*3 cases */, 12, MVT::v8i16,// ->280838
/*280826*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*280828*/              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)
/*280838*/            /*SwitchType*/ 12, MVT::v8i32,// ->280852
/*280840*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*280842*/              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)
/*280852*/            /*SwitchType*/ 12, MVT::v8i64,// ->280866
/*280854*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*280856*/              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)
/*280866*/            0, // EndSwitchType
/*280867*/          /*SwitchOpcode*/ 48, TARGET_VAL(ISD::UMAX),// ->280918
/*280870*/            OPC_RecordChild0, // #1 = $src1
/*280871*/            OPC_RecordChild1, // #2 = $src2
/*280872*/            OPC_MoveParent,
/*280873*/            OPC_RecordChild2, // #3 = $src0
/*280874*/            OPC_SwitchType /*3 cases */, 12, MVT::v8i16,// ->280889
/*280877*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*280879*/              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)
/*280889*/            /*SwitchType*/ 12, MVT::v8i32,// ->280903
/*280891*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*280893*/              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)
/*280903*/            /*SwitchType*/ 12, MVT::v8i64,// ->280917
/*280905*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*280907*/              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)
/*280917*/            0, // EndSwitchType
/*280918*/          /*SwitchOpcode*/ 48, TARGET_VAL(ISD::SMIN),// ->280969
/*280921*/            OPC_RecordChild0, // #1 = $src1
/*280922*/            OPC_RecordChild1, // #2 = $src2
/*280923*/            OPC_MoveParent,
/*280924*/            OPC_RecordChild2, // #3 = $src0
/*280925*/            OPC_SwitchType /*3 cases */, 12, MVT::v8i16,// ->280940
/*280928*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*280930*/              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)
/*280940*/            /*SwitchType*/ 12, MVT::v8i32,// ->280954
/*280942*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*280944*/              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)
/*280954*/            /*SwitchType*/ 12, MVT::v8i64,// ->280968
/*280956*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*280958*/              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)
/*280968*/            0, // EndSwitchType
/*280969*/          /*SwitchOpcode*/ 48, TARGET_VAL(ISD::UMIN),// ->281020
/*280972*/            OPC_RecordChild0, // #1 = $src1
/*280973*/            OPC_RecordChild1, // #2 = $src2
/*280974*/            OPC_MoveParent,
/*280975*/            OPC_RecordChild2, // #3 = $src0
/*280976*/            OPC_SwitchType /*3 cases */, 12, MVT::v8i16,// ->280991
/*280979*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*280981*/              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)
/*280991*/            /*SwitchType*/ 12, MVT::v8i32,// ->281005
/*280993*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*280995*/              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)
/*281005*/            /*SwitchType*/ 12, MVT::v8i64,// ->281019
/*281007*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*281009*/              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)
/*281019*/            0, // EndSwitchType
/*281020*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::AND),// ->281057
/*281023*/            OPC_RecordChild0, // #1 = $src1
/*281024*/            OPC_RecordChild1, // #2 = $src2
/*281025*/            OPC_MoveParent,
/*281026*/            OPC_RecordChild2, // #3 = $src0
/*281027*/            OPC_SwitchType /*2 cases */, 12, MVT::v8i64,// ->281042
/*281030*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*281032*/              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)
/*281042*/            /*SwitchType*/ 12, MVT::v8i32,// ->281056
/*281044*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*281046*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ256rrk), 0,
                            MVT::v8i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (and:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2), VR256X:{ *:[v8i32] }:$src0) - Complexity = 6
                        // Dst: (VPANDDZ256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*281056*/            0, // EndSwitchType
/*281057*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::OR),// ->281094
/*281060*/            OPC_RecordChild0, // #1 = $src1
/*281061*/            OPC_RecordChild1, // #2 = $src2
/*281062*/            OPC_MoveParent,
/*281063*/            OPC_RecordChild2, // #3 = $src0
/*281064*/            OPC_SwitchType /*2 cases */, 12, MVT::v8i64,// ->281079
/*281067*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*281069*/              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)
/*281079*/            /*SwitchType*/ 12, MVT::v8i32,// ->281093
/*281081*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*281083*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ256rrk), 0,
                            MVT::v8i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (or:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2), VR256X:{ *:[v8i32] }:$src0) - Complexity = 6
                        // Dst: (VPORDZ256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*281093*/            0, // EndSwitchType
/*281094*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::XOR),// ->281131
/*281097*/            OPC_RecordChild0, // #1 = $src1
/*281098*/            OPC_RecordChild1, // #2 = $src2
/*281099*/            OPC_MoveParent,
/*281100*/            OPC_RecordChild2, // #3 = $src0
/*281101*/            OPC_SwitchType /*2 cases */, 12, MVT::v8i64,// ->281116
/*281104*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*281106*/              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)
/*281116*/            /*SwitchType*/ 12, MVT::v8i32,// ->281130
/*281118*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*281120*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ256rrk), 0,
                            MVT::v8i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (xor:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2), VR256X:{ *:[v8i32] }:$src0) - Complexity = 6
                        // Dst: (VPXORDZ256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*281130*/            0, // EndSwitchType
/*281131*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::ANDNP),// ->281168
/*281134*/            OPC_RecordChild0, // #1 = $src1
/*281135*/            OPC_RecordChild1, // #2 = $src2
/*281136*/            OPC_MoveParent,
/*281137*/            OPC_RecordChild2, // #3 = $src0
/*281138*/            OPC_SwitchType /*2 cases */, 12, MVT::v8i64,// ->281153
/*281141*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*281143*/              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)
/*281153*/            /*SwitchType*/ 12, MVT::v8i32,// ->281167
/*281155*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*281157*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZ256rrk), 0,
                            MVT::v8i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86andnp:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2), VR256X:{ *:[v8i32] }:$src0) - Complexity = 6
                        // Dst: (VPANDNDZ256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*281167*/            0, // EndSwitchType
/*281168*/          /*SwitchOpcode*/ 61, TARGET_VAL(X86ISD::VSHL),// ->281232
/*281171*/            OPC_RecordChild0, // #1 = $src1
/*281172*/            OPC_RecordChild1, // #2 = $src2
/*281173*/            OPC_Scope, 18, /*->281193*/ // 3 children in Scope
/*281175*/              OPC_CheckChild1Type, MVT::v4i32,
/*281177*/              OPC_MoveParent,
/*281178*/              OPC_RecordChild2, // #3 = $src0
/*281179*/              OPC_CheckType, MVT::v8i32,
/*281181*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*281183*/              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)
/*281193*/            /*Scope*/ 18, /*->281212*/
/*281194*/              OPC_CheckChild1Type, MVT::v2i64,
/*281196*/              OPC_MoveParent,
/*281197*/              OPC_RecordChild2, // #3 = $src0
/*281198*/              OPC_CheckType, MVT::v8i64,
/*281200*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*281202*/              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)
/*281212*/            /*Scope*/ 18, /*->281231*/
/*281213*/              OPC_CheckChild1Type, MVT::v8i16,
/*281215*/              OPC_MoveParent,
/*281216*/              OPC_RecordChild2, // #3 = $src0
/*281217*/              OPC_CheckType, MVT::v8i16,
/*281219*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*281221*/              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)
/*281231*/            0, /*End of Scope*/
/*281232*/          /*SwitchOpcode*/ 61, TARGET_VAL(X86ISD::VSRA),// ->281296
/*281235*/            OPC_RecordChild0, // #1 = $src1
/*281236*/            OPC_RecordChild1, // #2 = $src2
/*281237*/            OPC_Scope, 18, /*->281257*/ // 3 children in Scope
/*281239*/              OPC_CheckChild1Type, MVT::v4i32,
/*281241*/              OPC_MoveParent,
/*281242*/              OPC_RecordChild2, // #3 = $src0
/*281243*/              OPC_CheckType, MVT::v8i32,
/*281245*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*281247*/              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)
/*281257*/            /*Scope*/ 18, /*->281276*/
/*281258*/              OPC_CheckChild1Type, MVT::v2i64,
/*281260*/              OPC_MoveParent,
/*281261*/              OPC_RecordChild2, // #3 = $src0
/*281262*/              OPC_CheckType, MVT::v8i64,
/*281264*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*281266*/              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)
/*281276*/            /*Scope*/ 18, /*->281295*/
/*281277*/              OPC_CheckChild1Type, MVT::v8i16,
/*281279*/              OPC_MoveParent,
/*281280*/              OPC_RecordChild2, // #3 = $src0
/*281281*/              OPC_CheckType, MVT::v8i16,
/*281283*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*281285*/              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)
/*281295*/            0, /*End of Scope*/
/*281296*/          /*SwitchOpcode*/ 61, TARGET_VAL(X86ISD::VSRL),// ->281360
/*281299*/            OPC_RecordChild0, // #1 = $src1
/*281300*/            OPC_RecordChild1, // #2 = $src2
/*281301*/            OPC_Scope, 18, /*->281321*/ // 3 children in Scope
/*281303*/              OPC_CheckChild1Type, MVT::v4i32,
/*281305*/              OPC_MoveParent,
/*281306*/              OPC_RecordChild2, // #3 = $src0
/*281307*/              OPC_CheckType, MVT::v8i32,
/*281309*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*281311*/              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)
/*281321*/            /*Scope*/ 18, /*->281340*/
/*281322*/              OPC_CheckChild1Type, MVT::v2i64,
/*281324*/              OPC_MoveParent,
/*281325*/              OPC_RecordChild2, // #3 = $src0
/*281326*/              OPC_CheckType, MVT::v8i64,
/*281328*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*281330*/              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)
/*281340*/            /*Scope*/ 18, /*->281359*/
/*281341*/              OPC_CheckChild1Type, MVT::v8i16,
/*281343*/              OPC_MoveParent,
/*281344*/              OPC_RecordChild2, // #3 = $src0
/*281345*/              OPC_CheckType, MVT::v8i16,
/*281347*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*281349*/              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)
/*281359*/            0, /*End of Scope*/
/*281360*/          /*SwitchOpcode*/ 48, TARGET_VAL(X86ISD::VSHLV),// ->281411
/*281363*/            OPC_RecordChild0, // #1 = $src1
/*281364*/            OPC_RecordChild1, // #2 = $src2
/*281365*/            OPC_MoveParent,
/*281366*/            OPC_RecordChild2, // #3 = $src0
/*281367*/            OPC_SwitchType /*3 cases */, 12, MVT::v8i32,// ->281382
/*281370*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*281372*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVDZ256rrk), 0,
                            MVT::v8i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vshlv:{ *:[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)
/*281382*/            /*SwitchType*/ 12, MVT::v8i64,// ->281396
/*281384*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*281386*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVQZrrk), 0,
                            MVT::v8i64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vshlv:{ *:[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)
/*281396*/            /*SwitchType*/ 12, MVT::v8i16,// ->281410
/*281398*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*281400*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVWZ128rrk), 0,
                            MVT::v8i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vshlv:{ *:[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)
/*281410*/            0, // EndSwitchType
/*281411*/          /*SwitchOpcode*/ 48, TARGET_VAL(X86ISD::VSRAV),// ->281462
/*281414*/            OPC_RecordChild0, // #1 = $src1
/*281415*/            OPC_RecordChild1, // #2 = $src2
/*281416*/            OPC_MoveParent,
/*281417*/            OPC_RecordChild2, // #3 = $src0
/*281418*/            OPC_SwitchType /*3 cases */, 12, MVT::v8i32,// ->281433
/*281421*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*281423*/              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, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*281433*/            /*SwitchType*/ 12, MVT::v8i64,// ->281447
/*281435*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*281437*/              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, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*281447*/            /*SwitchType*/ 12, MVT::v8i16,// ->281461
/*281449*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*281451*/              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, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*281461*/            0, // EndSwitchType
/*281462*/          /*SwitchOpcode*/ 48, TARGET_VAL(X86ISD::VSRLV),// ->281513
/*281465*/            OPC_RecordChild0, // #1 = $src1
/*281466*/            OPC_RecordChild1, // #2 = $src2
/*281467*/            OPC_MoveParent,
/*281468*/            OPC_RecordChild2, // #3 = $src0
/*281469*/            OPC_SwitchType /*3 cases */, 12, MVT::v8i32,// ->281484
/*281472*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*281474*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVDZ256rrk), 0,
                            MVT::v8i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrlv:{ *:[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)
/*281484*/            /*SwitchType*/ 12, MVT::v8i64,// ->281498
/*281486*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*281488*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVQZrrk), 0,
                            MVT::v8i64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrlv:{ *:[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)
/*281498*/            /*SwitchType*/ 12, MVT::v8i16,// ->281512
/*281500*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*281502*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVWZ128rrk), 0,
                            MVT::v8i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vsrlv:{ *:[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)
/*281512*/            0, // EndSwitchType
/*281513*/          /*SwitchOpcode*/ 42, TARGET_VAL(ISD::ROTR),// ->281558
/*281516*/            OPC_RecordChild0, // #1 = $src1
/*281517*/            OPC_RecordChild1, // #2 = $src2
/*281518*/            OPC_Scope, 18, /*->281538*/ // 2 children in Scope
/*281520*/              OPC_CheckChild1Type, MVT::v8i32,
/*281522*/              OPC_MoveParent,
/*281523*/              OPC_RecordChild2, // #3 = $src0
/*281524*/              OPC_CheckType, MVT::v8i32,
/*281526*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*281528*/              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)
/*281538*/            /*Scope*/ 18, /*->281557*/
/*281539*/              OPC_CheckChild1Type, MVT::v8i64,
/*281541*/              OPC_MoveParent,
/*281542*/              OPC_RecordChild2, // #3 = $src0
/*281543*/              OPC_CheckType, MVT::v8i64,
/*281545*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*281547*/              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)
/*281557*/            0, /*End of Scope*/
/*281558*/          /*SwitchOpcode*/ 42, TARGET_VAL(ISD::ROTL),// ->281603
/*281561*/            OPC_RecordChild0, // #1 = $src1
/*281562*/            OPC_RecordChild1, // #2 = $src2
/*281563*/            OPC_Scope, 18, /*->281583*/ // 2 children in Scope
/*281565*/              OPC_CheckChild1Type, MVT::v8i32,
/*281567*/              OPC_MoveParent,
/*281568*/              OPC_RecordChild2, // #3 = $src0
/*281569*/              OPC_CheckType, MVT::v8i32,
/*281571*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*281573*/              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)
/*281583*/            /*Scope*/ 18, /*->281602*/
/*281584*/              OPC_CheckChild1Type, MVT::v8i64,
/*281586*/              OPC_MoveParent,
/*281587*/              OPC_RecordChild2, // #3 = $src0
/*281588*/              OPC_CheckType, MVT::v8i64,
/*281590*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*281592*/              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)
/*281602*/            0, /*End of Scope*/
/*281603*/          /*SwitchOpcode*/ 48, TARGET_VAL(X86ISD::VPERMV),// ->281654
/*281606*/            OPC_RecordChild0, // #1 = $src1
/*281607*/            OPC_RecordChild1, // #2 = $src2
/*281608*/            OPC_MoveParent,
/*281609*/            OPC_RecordChild2, // #3 = $src0
/*281610*/            OPC_SwitchType /*3 cases */, 12, MVT::v8i16,// ->281625
/*281613*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*281615*/              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)
/*281625*/            /*SwitchType*/ 12, MVT::v8i32,// ->281639
/*281627*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*281629*/              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)
/*281639*/            /*SwitchType*/ 12, MVT::v8i64,// ->281653
/*281641*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*281643*/              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)
/*281653*/            0, // EndSwitchType
/*281654*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::VPMADD52L),// ->281677
/*281657*/            OPC_RecordChild0, // #1 = $src2
/*281658*/            OPC_RecordChild1, // #2 = $src3
/*281659*/            OPC_RecordChild2, // #3 = $src1
/*281660*/            OPC_MoveParent,
/*281661*/            OPC_CheckChild2Same, 3,
/*281663*/            OPC_CheckType, MVT::v8i64,
/*281665*/            OPC_CheckPatternPredicate, 185, // (Subtarget->hasIFMA())
/*281667*/            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)
/*281677*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::VPMADD52H),// ->281700
/*281680*/            OPC_RecordChild0, // #1 = $src2
/*281681*/            OPC_RecordChild1, // #2 = $src3
/*281682*/            OPC_RecordChild2, // #3 = $src1
/*281683*/            OPC_MoveParent,
/*281684*/            OPC_CheckChild2Same, 3,
/*281686*/            OPC_CheckType, MVT::v8i64,
/*281688*/            OPC_CheckPatternPredicate, 185, // (Subtarget->hasIFMA())
/*281690*/            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)
/*281700*/          /*SwitchOpcode*/ 75, TARGET_VAL(X86ISD::STRICT_CVTTP2SI),// ->281778
/*281703*/            OPC_RecordNode, // #1 = 'X86strict_cvttp2si' chained node
/*281704*/            OPC_CheckFoldableChainNode,
/*281705*/            OPC_RecordChild1, // #2 = $src
/*281706*/            OPC_Scope, 34, /*->281742*/ // 2 children in Scope
/*281708*/              OPC_CheckChild1Type, MVT::v8f32,
/*281710*/              OPC_MoveParent,
/*281711*/              OPC_RecordChild2, // #3 = $src0
/*281712*/              OPC_SwitchType /*2 cases */, 12, MVT::v8i32,// ->281727
/*281715*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*281717*/                OPC_EmitMergeInputChains1_1,
/*281718*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZ256rrk), 0|OPFL_Chain,
                              MVT::v8i32, 3/*#Ops*/, 3, 0, 2, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_cvttp2si:{ *:[v8i32] } VR256X:{ *:[v8f32] }:$src), VR256X:{ *:[v8i32] }:$src0) - Complexity = 6
                          // Dst: (VCVTTPS2DQZ256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*281727*/              /*SwitchType*/ 12, MVT::v8i64,// ->281741
/*281729*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*281731*/                OPC_EmitMergeInputChains1_1,
/*281732*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZrrk), 0|OPFL_Chain,
                              MVT::v8i64, 3/*#Ops*/, 3, 0, 2, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_cvttp2si:{ *:[v8i64] } VR256X:{ *:[v8f32] }:$src), VR512:{ *:[v8i64] }:$src0) - Complexity = 6
                          // Dst: (VCVTTPS2QQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*281741*/              0, // EndSwitchType
/*281742*/            /*Scope*/ 34, /*->281777*/
/*281743*/              OPC_CheckChild1Type, MVT::v8f64,
/*281745*/              OPC_MoveParent,
/*281746*/              OPC_RecordChild2, // #3 = $src0
/*281747*/              OPC_SwitchType /*2 cases */, 12, MVT::v8i32,// ->281762
/*281750*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*281752*/                OPC_EmitMergeInputChains1_1,
/*281753*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZrrk), 0|OPFL_Chain,
                              MVT::v8i32, 3/*#Ops*/, 3, 0, 2, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_cvttp2si:{ *:[v8i32] } VR512:{ *:[v8f64] }:$src), VR256X:{ *:[v8i32] }:$src0) - Complexity = 6
                          // Dst: (VCVTTPD2DQZrrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*281762*/              /*SwitchType*/ 12, MVT::v8i64,// ->281776
/*281764*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*281766*/                OPC_EmitMergeInputChains1_1,
/*281767*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZrrk), 0|OPFL_Chain,
                              MVT::v8i64, 3/*#Ops*/, 3, 0, 2, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_cvttp2si:{ *:[v8i64] } VR512:{ *:[v8f64] }:$src), VR512:{ *:[v8i64] }:$src0) - Complexity = 6
                          // Dst: (VCVTTPD2QQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*281776*/              0, // EndSwitchType
/*281777*/            0, /*End of Scope*/
/*281778*/          /*SwitchOpcode*/ 69, TARGET_VAL(X86ISD::CVTTP2SI),// ->281850
/*281781*/            OPC_RecordChild0, // #1 = $src
/*281782*/            OPC_Scope, 32, /*->281816*/ // 2 children in Scope
/*281784*/              OPC_CheckChild0Type, MVT::v8f32,
/*281786*/              OPC_MoveParent,
/*281787*/              OPC_RecordChild2, // #2 = $src0
/*281788*/              OPC_SwitchType /*2 cases */, 11, MVT::v8i32,// ->281802
/*281791*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*281793*/                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)
/*281802*/              /*SwitchType*/ 11, MVT::v8i64,// ->281815
/*281804*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*281806*/                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)
/*281815*/              0, // EndSwitchType
/*281816*/            /*Scope*/ 32, /*->281849*/
/*281817*/              OPC_CheckChild0Type, MVT::v8f64,
/*281819*/              OPC_MoveParent,
/*281820*/              OPC_RecordChild2, // #2 = $src0
/*281821*/              OPC_SwitchType /*2 cases */, 11, MVT::v8i32,// ->281835
/*281824*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*281826*/                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)
/*281835*/              /*SwitchType*/ 11, MVT::v8i64,// ->281848
/*281837*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*281839*/                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)
/*281848*/              0, // EndSwitchType
/*281849*/            0, /*End of Scope*/
/*281850*/          /*SwitchOpcode*/ 54, TARGET_VAL(X86ISD::CVTTP2SI_SAE),// ->281907
/*281853*/            OPC_RecordChild0, // #1 = $src
/*281854*/            OPC_Scope, 32, /*->281888*/ // 2 children in Scope
/*281856*/              OPC_CheckChild0Type, MVT::v8f64,
/*281858*/              OPC_MoveParent,
/*281859*/              OPC_RecordChild2, // #2 = $src0
/*281860*/              OPC_SwitchType /*2 cases */, 11, MVT::v8i32,// ->281874
/*281863*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*281865*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZrrbk), 0,
                              MVT::v8i32, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2siSAE:{ *:[v8i32] } VR512:{ *:[v8f64] }:$src), VR256X:{ *:[v8i32] }:$src0) - Complexity = 6
                          // Dst: (VCVTTPD2DQZrrbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*281874*/              /*SwitchType*/ 11, MVT::v8i64,// ->281887
/*281876*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*281878*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZrrbk), 0,
                              MVT::v8i64, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2siSAE:{ *:[v8i64] } VR512:{ *:[v8f64] }:$src), VR512:{ *:[v8i64] }:$src0) - Complexity = 6
                          // Dst: (VCVTTPD2QQZrrbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*281887*/              0, // EndSwitchType
/*281888*/            /*Scope*/ 17, /*->281906*/
/*281889*/              OPC_CheckChild0Type, MVT::v8f32,
/*281891*/              OPC_MoveParent,
/*281892*/              OPC_RecordChild2, // #2 = $src0
/*281893*/              OPC_CheckType, MVT::v8i64,
/*281895*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*281897*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZrrbk), 0,
                            MVT::v8i64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2siSAE:{ *:[v8i64] } VR256X:{ *:[v8f32] }:$src), VR512:{ *:[v8i64] }:$src0) - Complexity = 6
                        // Dst: (VCVTTPS2QQZrrbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*281906*/            0, /*End of Scope*/
/*281907*/          /*SwitchOpcode*/ 75, TARGET_VAL(X86ISD::STRICT_CVTTP2UI),// ->281985
/*281910*/            OPC_RecordNode, // #1 = 'X86strict_cvttp2ui' chained node
/*281911*/            OPC_CheckFoldableChainNode,
/*281912*/            OPC_RecordChild1, // #2 = $src
/*281913*/            OPC_Scope, 34, /*->281949*/ // 2 children in Scope
/*281915*/              OPC_CheckChild1Type, MVT::v8f32,
/*281917*/              OPC_MoveParent,
/*281918*/              OPC_RecordChild2, // #3 = $src0
/*281919*/              OPC_SwitchType /*2 cases */, 12, MVT::v8i32,// ->281934
/*281922*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*281924*/                OPC_EmitMergeInputChains1_1,
/*281925*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZ256rrk), 0|OPFL_Chain,
                              MVT::v8i32, 3/*#Ops*/, 3, 0, 2, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_cvttp2ui:{ *:[v8i32] } VR256X:{ *:[v8f32] }:$src), VR256X:{ *:[v8i32] }:$src0) - Complexity = 6
                          // Dst: (VCVTTPS2UDQZ256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*281934*/              /*SwitchType*/ 12, MVT::v8i64,// ->281948
/*281936*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*281938*/                OPC_EmitMergeInputChains1_1,
/*281939*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZrrk), 0|OPFL_Chain,
                              MVT::v8i64, 3/*#Ops*/, 3, 0, 2, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_cvttp2ui:{ *:[v8i64] } VR256X:{ *:[v8f32] }:$src), VR512:{ *:[v8i64] }:$src0) - Complexity = 6
                          // Dst: (VCVTTPS2UQQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*281948*/              0, // EndSwitchType
/*281949*/            /*Scope*/ 34, /*->281984*/
/*281950*/              OPC_CheckChild1Type, MVT::v8f64,
/*281952*/              OPC_MoveParent,
/*281953*/              OPC_RecordChild2, // #3 = $src0
/*281954*/              OPC_SwitchType /*2 cases */, 12, MVT::v8i32,// ->281969
/*281957*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*281959*/                OPC_EmitMergeInputChains1_1,
/*281960*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZrrk), 0|OPFL_Chain,
                              MVT::v8i32, 3/*#Ops*/, 3, 0, 2, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_cvttp2ui:{ *:[v8i32] } VR512:{ *:[v8f64] }:$src), VR256X:{ *:[v8i32] }:$src0) - Complexity = 6
                          // Dst: (VCVTTPD2UDQZrrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*281969*/              /*SwitchType*/ 12, MVT::v8i64,// ->281983
/*281971*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*281973*/                OPC_EmitMergeInputChains1_1,
/*281974*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZrrk), 0|OPFL_Chain,
                              MVT::v8i64, 3/*#Ops*/, 3, 0, 2, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_cvttp2ui:{ *:[v8i64] } VR512:{ *:[v8f64] }:$src), VR512:{ *:[v8i64] }:$src0) - Complexity = 6
                          // Dst: (VCVTTPD2UQQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*281983*/              0, // EndSwitchType
/*281984*/            0, /*End of Scope*/
/*281985*/          /*SwitchOpcode*/ 69, TARGET_VAL(X86ISD::CVTTP2UI),// ->282057
/*281988*/            OPC_RecordChild0, // #1 = $src
/*281989*/            OPC_Scope, 32, /*->282023*/ // 2 children in Scope
/*281991*/              OPC_CheckChild0Type, MVT::v8f32,
/*281993*/              OPC_MoveParent,
/*281994*/              OPC_RecordChild2, // #2 = $src0
/*281995*/              OPC_SwitchType /*2 cases */, 11, MVT::v8i32,// ->282009
/*281998*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*282000*/                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)
/*282009*/              /*SwitchType*/ 11, MVT::v8i64,// ->282022
/*282011*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*282013*/                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)
/*282022*/              0, // EndSwitchType
/*282023*/            /*Scope*/ 32, /*->282056*/
/*282024*/              OPC_CheckChild0Type, MVT::v8f64,
/*282026*/              OPC_MoveParent,
/*282027*/              OPC_RecordChild2, // #2 = $src0
/*282028*/              OPC_SwitchType /*2 cases */, 11, MVT::v8i32,// ->282042
/*282031*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*282033*/                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)
/*282042*/              /*SwitchType*/ 11, MVT::v8i64,// ->282055
/*282044*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*282046*/                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)
/*282055*/              0, // EndSwitchType
/*282056*/            0, /*End of Scope*/
/*282057*/          /*SwitchOpcode*/ 54, TARGET_VAL(X86ISD::CVTTP2UI_SAE),// ->282114
/*282060*/            OPC_RecordChild0, // #1 = $src
/*282061*/            OPC_Scope, 32, /*->282095*/ // 2 children in Scope
/*282063*/              OPC_CheckChild0Type, MVT::v8f64,
/*282065*/              OPC_MoveParent,
/*282066*/              OPC_RecordChild2, // #2 = $src0
/*282067*/              OPC_SwitchType /*2 cases */, 11, MVT::v8i32,// ->282081
/*282070*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*282072*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZrrbk), 0,
                              MVT::v8i32, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2uiSAE:{ *:[v8i32] } VR512:{ *:[v8f64] }:$src), VR256X:{ *:[v8i32] }:$src0) - Complexity = 6
                          // Dst: (VCVTTPD2UDQZrrbk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*282081*/              /*SwitchType*/ 11, MVT::v8i64,// ->282094
/*282083*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*282085*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZrrbk), 0,
                              MVT::v8i64, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2uiSAE:{ *:[v8i64] } VR512:{ *:[v8f64] }:$src), VR512:{ *:[v8i64] }:$src0) - Complexity = 6
                          // Dst: (VCVTTPD2UQQZrrbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*282094*/              0, // EndSwitchType
/*282095*/            /*Scope*/ 17, /*->282113*/
/*282096*/              OPC_CheckChild0Type, MVT::v8f32,
/*282098*/              OPC_MoveParent,
/*282099*/              OPC_RecordChild2, // #2 = $src0
/*282100*/              OPC_CheckType, MVT::v8i64,
/*282102*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*282104*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZrrbk), 0,
                            MVT::v8i64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (X86cvttp2uiSAE:{ *:[v8i64] } VR256X:{ *:[v8f32] }:$src), VR512:{ *:[v8i64] }:$src0) - Complexity = 6
                        // Dst: (VCVTTPS2UQQZrrbk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*282113*/            0, /*End of Scope*/
/*282114*/          /*SwitchOpcode*/ 69, TARGET_VAL(X86ISD::CVTP2SI),// ->282186
/*282117*/            OPC_RecordChild0, // #1 = $src
/*282118*/            OPC_Scope, 32, /*->282152*/ // 2 children in Scope
/*282120*/              OPC_CheckChild0Type, MVT::v8f32,
/*282122*/              OPC_MoveParent,
/*282123*/              OPC_RecordChild2, // #2 = $src0
/*282124*/              OPC_SwitchType /*2 cases */, 11, MVT::v8i32,// ->282138
/*282127*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*282129*/                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)
/*282138*/              /*SwitchType*/ 11, MVT::v8i64,// ->282151
/*282140*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*282142*/                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)
/*282151*/              0, // EndSwitchType
/*282152*/            /*Scope*/ 32, /*->282185*/
/*282153*/              OPC_CheckChild0Type, MVT::v8f64,
/*282155*/              OPC_MoveParent,
/*282156*/              OPC_RecordChild2, // #2 = $src0
/*282157*/              OPC_SwitchType /*2 cases */, 11, MVT::v8i32,// ->282171
/*282160*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*282162*/                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)
/*282171*/              /*SwitchType*/ 11, MVT::v8i64,// ->282184
/*282173*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*282175*/                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)
/*282184*/              0, // EndSwitchType
/*282185*/            0, /*End of Scope*/
/*282186*/          /*SwitchOpcode*/ 69, TARGET_VAL(X86ISD::CVTP2UI),// ->282258
/*282189*/            OPC_RecordChild0, // #1 = $src
/*282190*/            OPC_Scope, 32, /*->282224*/ // 2 children in Scope
/*282192*/              OPC_CheckChild0Type, MVT::v8f32,
/*282194*/              OPC_MoveParent,
/*282195*/              OPC_RecordChild2, // #2 = $src0
/*282196*/              OPC_SwitchType /*2 cases */, 11, MVT::v8i32,// ->282210
/*282199*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*282201*/                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)
/*282210*/              /*SwitchType*/ 11, MVT::v8i64,// ->282223
/*282212*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*282214*/                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)
/*282223*/              0, // EndSwitchType
/*282224*/            /*Scope*/ 32, /*->282257*/
/*282225*/              OPC_CheckChild0Type, MVT::v8f64,
/*282227*/              OPC_MoveParent,
/*282228*/              OPC_RecordChild2, // #2 = $src0
/*282229*/              OPC_SwitchType /*2 cases */, 11, MVT::v8i32,// ->282243
/*282232*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*282234*/                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)
/*282243*/              /*SwitchType*/ 11, MVT::v8i64,// ->282256
/*282245*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*282247*/                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)
/*282256*/              0, // EndSwitchType
/*282257*/            0, /*End of Scope*/
/*282258*/          /*SwitchOpcode*/ 55, TARGET_VAL(ISD::TRUNCATE),// ->282316
/*282261*/            OPC_RecordChild0, // #1 = $src
/*282262*/            OPC_Scope, 17, /*->282281*/ // 3 children in Scope
/*282264*/              OPC_CheckChild0Type, MVT::v8i64,
/*282266*/              OPC_MoveParent,
/*282267*/              OPC_RecordChild2, // #2 = $src0
/*282268*/              OPC_CheckType, MVT::v8i16,
/*282270*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*282272*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVQWZrrk), 0,
                            MVT::v8i16, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (trunc:{ *:[v8i16] } VR512:{ *:[v8i64] }:$src), VR128X:{ *:[v8i16] }:$src0) - Complexity = 6
                        // Dst: (VPMOVQWZrrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*282281*/            /*Scope*/ 15, /*->282297*/
/*282282*/              OPC_MoveParent,
/*282283*/              OPC_RecordChild2, // #2 = $src0
/*282284*/              OPC_CheckType, MVT::v8i32,
/*282286*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*282288*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVQDZrrk), 0,
                            MVT::v8i32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (trunc:{ *:[v8i32] } VR512:{ *:[v8i64] }:$src), VR256X:{ *:[v8i32] }:$src0) - Complexity = 6
                        // Dst: (VPMOVQDZrrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*282297*/            /*Scope*/ 17, /*->282315*/
/*282298*/              OPC_CheckChild0Type, MVT::v8i32,
/*282300*/              OPC_MoveParent,
/*282301*/              OPC_RecordChild2, // #2 = $src0
/*282302*/              OPC_CheckType, MVT::v8i16,
/*282304*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*282306*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVDWZ256rrk), 0,
                            MVT::v8i16, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (trunc:{ *:[v8i16] } VR256X:{ *:[v8i32] }:$src), VR128X:{ *:[v8i16] }:$src0) - Complexity = 6
                        // Dst: (VPMOVDWZ256rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/*282315*/            0, /*End of Scope*/
/*282316*/          /*SwitchOpcode*/ 54, TARGET_VAL(X86ISD::VTRUNCS),// ->282373
/*282319*/            OPC_RecordChild0, // #1 = $src
/*282320*/            OPC_Scope, 32, /*->282354*/ // 2 children in Scope
/*282322*/              OPC_CheckChild0Type, MVT::v8i64,
/*282324*/              OPC_MoveParent,
/*282325*/              OPC_RecordChild2, // #2 = $src0
/*282326*/              OPC_SwitchType /*2 cases */, 11, MVT::v8i16,// ->282340
/*282329*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*282331*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSQWZrrk), 0,
                              MVT::v8i16, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vtruncs:{ *:[v8i16] } VR512:{ *:[v8i64] }:$src), VR128X:{ *:[v8i16] }:$src0) - Complexity = 6
                          // Dst: (VPMOVSQWZrrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*282340*/              /*SwitchType*/ 11, MVT::v8i32,// ->282353
/*282342*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*282344*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSQDZrrk), 0,
                              MVT::v8i32, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vtruncs:{ *:[v8i32] } VR512:{ *:[v8i64] }:$src), VR256X:{ *:[v8i32] }:$src0) - Complexity = 6
                          // Dst: (VPMOVSQDZrrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*282353*/              0, // EndSwitchType
/*282354*/            /*Scope*/ 17, /*->282372*/
/*282355*/              OPC_CheckChild0Type, MVT::v8i32,
/*282357*/              OPC_MoveParent,
/*282358*/              OPC_RecordChild2, // #2 = $src0
/*282359*/              OPC_CheckType, MVT::v8i16,
/*282361*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*282363*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSDWZ256rrk), 0,
                            MVT::v8i16, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vtruncs:{ *:[v8i16] } VR256X:{ *:[v8i32] }:$src), VR128X:{ *:[v8i16] }:$src0) - Complexity = 6
                        // Dst: (VPMOVSDWZ256rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/*282372*/            0, /*End of Scope*/
/*282373*/          /*SwitchOpcode*/ 54, TARGET_VAL(X86ISD::VTRUNCUS),// ->282430
/*282376*/            OPC_RecordChild0, // #1 = $src
/*282377*/            OPC_Scope, 32, /*->282411*/ // 2 children in Scope
/*282379*/              OPC_CheckChild0Type, MVT::v8i64,
/*282381*/              OPC_MoveParent,
/*282382*/              OPC_RecordChild2, // #2 = $src0
/*282383*/              OPC_SwitchType /*2 cases */, 11, MVT::v8i16,// ->282397
/*282386*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*282388*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSQWZrrk), 0,
                              MVT::v8i16, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vtruncus:{ *:[v8i16] } VR512:{ *:[v8i64] }:$src), VR128X:{ *:[v8i16] }:$src0) - Complexity = 6
                          // Dst: (VPMOVUSQWZrrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*282397*/              /*SwitchType*/ 11, MVT::v8i32,// ->282410
/*282399*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*282401*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSQDZrrk), 0,
                              MVT::v8i32, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (X86vtruncus:{ *:[v8i32] } VR512:{ *:[v8i64] }:$src), VR256X:{ *:[v8i32] }:$src0) - Complexity = 6
                          // Dst: (VPMOVUSQDZrrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*282410*/              0, // EndSwitchType
/*282411*/            /*Scope*/ 17, /*->282429*/
/*282412*/              OPC_CheckChild0Type, MVT::v8i32,
/*282414*/              OPC_MoveParent,
/*282415*/              OPC_RecordChild2, // #2 = $src0
/*282416*/              OPC_CheckType, MVT::v8i16,
/*282418*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*282420*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSDWZ256rrk), 0,
                            MVT::v8i16, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86vtruncus:{ *:[v8i16] } VR256X:{ *:[v8i32] }:$src), VR128X:{ *:[v8i16] }:$src0) - Complexity = 6
                        // Dst: (VPMOVUSDWZ256rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/*282429*/            0, /*End of Scope*/
/*282430*/          /*SwitchOpcode*/ 46, TARGET_VAL(ISD::ZERO_EXTEND_VECTOR_INREG),// ->282479
/*282433*/            OPC_RecordChild0, // #1 = $src
/*282434*/            OPC_CheckChild0Type, MVT::v16i8,
/*282436*/            OPC_MoveParent,
/*282437*/            OPC_RecordChild2, // #2 = $src0
/*282438*/            OPC_SwitchType /*3 cases */, 11, MVT::v8i16,// ->282452
/*282441*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*282443*/              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)
/*282452*/            /*SwitchType*/ 11, MVT::v8i32,// ->282465
/*282454*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*282456*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBDZ256rrk), 0,
                            MVT::v8i32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (zext_invec:{ *:[v8i32] } VR128X:{ *:[v16i8] }:$src), VR256X:{ *:[v8i32] }:$src0) - Complexity = 6
                        // Dst: (VPMOVZXBDZ256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*282465*/            /*SwitchType*/ 11, MVT::v8i64,// ->282478
/*282467*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*282469*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBQZrrk), 0,
                            MVT::v8i64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (zext_invec:{ *:[v8i64] } VR128X:{ *:[v16i8] }:$src), VR512:{ *:[v8i64] }:$src0) - Complexity = 6
                        // Dst: (VPMOVZXBQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*282478*/            0, // EndSwitchType
/*282479*/          /*SwitchOpcode*/ 54, TARGET_VAL(ISD::ZERO_EXTEND),// ->282536
/*282482*/            OPC_RecordChild0, // #1 = $src
/*282483*/            OPC_Scope, 32, /*->282517*/ // 2 children in Scope
/*282485*/              OPC_CheckChild0Type, MVT::v8i16,
/*282487*/              OPC_MoveParent,
/*282488*/              OPC_RecordChild2, // #2 = $src0
/*282489*/              OPC_SwitchType /*2 cases */, 11, MVT::v8i32,// ->282503
/*282492*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*282494*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWDZ256rrk), 0,
                              MVT::v8i32, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (zext:{ *:[v8i32] } VR128X:{ *:[v8i16] }:$src), VR256X:{ *:[v8i32] }:$src0) - Complexity = 6
                          // Dst: (VPMOVZXWDZ256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/*282503*/              /*SwitchType*/ 11, MVT::v8i64,// ->282516
/*282505*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*282507*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWQZrrk), 0,
                              MVT::v8i64, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (zext:{ *:[v8i64] } VR128X:{ *:[v8i16] }:$src), VR512:{ *:[v8i64] }:$src0) - Complexity = 6
                          // Dst: (VPMOVZXWQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/*282516*/              0, // EndSwitchType
/*282517*/            /*Scope*/ 17, /*->282535*/
/*282518*/              OPC_CheckChild0Type, MVT::v8i32,
/*282520*/              OPC_MoveParent,
/*282521*/              OPC_RecordChild2, // #2 = $src0
/*282522*/              OPC_CheckType, MVT::v8i64,
/*282524*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*282526*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXDQZrrk), 0,
                            MVT::v8i64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (zext:{ *:[v8i64] } VR256X:{ *:[v8i32] }:$src), VR512:{ *:[v8i64] }:$src0) - Complexity = 6
                        // Dst: (VPMOVZXDQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/*282535*/            0, /*End of Scope*/
/*282536*/          /*SwitchOpcode*/ 46, TARGET_VAL(ISD::SIGN_EXTEND_VECTOR_INREG),// ->282585
/*282539*/            OPC_RecordChild0, // #1 = $src
/*282540*/            OPC_CheckChild0Type, MVT::v16i8,
/*282542*/            OPC_MoveParent,
/*282543*/            OPC_RecordChild2, // #2 = $src0
/*282544*/            OPC_SwitchType /*3 cases */, 11, MVT::v8i16,// ->282558
/*282547*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*282549*/              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)
/*282558*/            /*SwitchType*/ 11, MVT::v8i32,// ->282571
/*282560*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*282562*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBDZ256rrk), 0,
                            MVT::v8i32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (sext_invec:{ *:[v8i32] } VR128X:{ *:[v16i8] }:$src), VR256X:{ *:[v8i32] }:$src0) - Complexity = 6
                        // Dst: (VPMOVSXBDZ256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*282571*/            /*SwitchType*/ 11, MVT::v8i64,// ->282584
/*282573*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*282575*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBQZrrk), 0,
                            MVT::v8i64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (sext_invec:{ *:[v8i64] } VR128X:{ *:[v16i8] }:$src), VR512:{ *:[v8i64] }:$src0) - Complexity = 6
                        // Dst: (VPMOVSXBQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*282584*/            0, // EndSwitchType
/*282585*/          /*SwitchOpcode*/ 54, TARGET_VAL(ISD::SIGN_EXTEND),// ->282642
/*282588*/            OPC_RecordChild0, // #1 = $src
/*282589*/            OPC_Scope, 32, /*->282623*/ // 2 children in Scope
/*282591*/              OPC_CheckChild0Type, MVT::v8i16,
/*282593*/              OPC_MoveParent,
/*282594*/              OPC_RecordChild2, // #2 = $src0
/*282595*/              OPC_SwitchType /*2 cases */, 11, MVT::v8i32,// ->282609
/*282598*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*282600*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWDZ256rrk), 0,
                              MVT::v8i32, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, (sext:{ *:[v8i32] } VR128X:{ *:[v8i16] }:$src), VR256X:{ *:[v8i32] }:$src0) - Complexity = 6
                          // Dst: (VPMOVSXWDZ256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/*282609*/              /*SwitchType*/ 11, MVT::v8i64,// ->282622
/*282611*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*282613*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWQZrrk), 0,
                              MVT::v8i64, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (sext:{ *:[v8i64] } VR128X:{ *:[v8i16] }:$src), VR512:{ *:[v8i64] }:$src0) - Complexity = 6
                          // Dst: (VPMOVSXWQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/*282622*/              0, // EndSwitchType
/*282623*/            /*Scope*/ 17, /*->282641*/
/*282624*/              OPC_CheckChild0Type, MVT::v8i32,
/*282626*/              OPC_MoveParent,
/*282627*/              OPC_RecordChild2, // #2 = $src0
/*282628*/              OPC_CheckType, MVT::v8i64,
/*282630*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*282632*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXDQZrrk), 0,
                            MVT::v8i64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, (sext:{ *:[v8i64] } VR256X:{ *:[v8i32] }:$src), VR512:{ *:[v8i64] }:$src0) - Complexity = 6
                        // Dst: (VPMOVSXDQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/*282641*/            0, /*End of Scope*/
/*282642*/          /*SwitchOpcode*/ 44, TARGET_VAL(ISD::ABS),// ->282689
/*282645*/            OPC_RecordChild0, // #1 = $src1
/*282646*/            OPC_MoveParent,
/*282647*/            OPC_RecordChild2, // #2 = $src0
/*282648*/            OPC_SwitchType /*3 cases */, 11, MVT::v8i64,// ->282662
/*282651*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*282653*/              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)
/*282662*/            /*SwitchType*/ 11, MVT::v8i32,// ->282675
/*282664*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*282666*/              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)
/*282675*/            /*SwitchType*/ 11, MVT::v8i16,// ->282688
/*282677*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*282679*/              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)
/*282688*/            0, // EndSwitchType
/*282689*/          /*SwitchOpcode*/ 39, TARGET_VAL(ISD::CTLZ),// ->282731
/*282692*/            OPC_RecordChild0, // #1 = $src1
/*282693*/            OPC_Scope, 17, /*->282712*/ // 2 children in Scope
/*282695*/              OPC_CheckChild0Type, MVT::v8i64,
/*282697*/              OPC_MoveParent,
/*282698*/              OPC_RecordChild2, // #2 = $src0
/*282699*/              OPC_CheckType, MVT::v8i64,
/*282701*/              OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*282703*/              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)
/*282712*/            /*Scope*/ 17, /*->282730*/
/*282713*/              OPC_CheckChild0Type, MVT::v8i32,
/*282715*/              OPC_MoveParent,
/*282716*/              OPC_RecordChild2, // #2 = $src0
/*282717*/              OPC_CheckType, MVT::v8i32,
/*282719*/              OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*282721*/              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)
/*282730*/            0, /*End of Scope*/
/*282731*/          /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::CONFLICT),// ->282765
/*282734*/            OPC_RecordChild0, // #1 = $src1
/*282735*/            OPC_MoveParent,
/*282736*/            OPC_RecordChild2, // #2 = $src0
/*282737*/            OPC_SwitchType /*2 cases */, 11, MVT::v8i64,// ->282751
/*282740*/              OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*282742*/              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)
/*282751*/            /*SwitchType*/ 11, MVT::v8i32,// ->282764
/*282753*/              OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*282755*/              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)
/*282764*/            0, // EndSwitchType
/*282765*/          /*SwitchOpcode*/ 57, TARGET_VAL(ISD::CTPOP),// ->282825
/*282768*/            OPC_RecordChild0, // #1 = $src1
/*282769*/            OPC_Scope, 17, /*->282788*/ // 3 children in Scope
/*282771*/              OPC_CheckChild0Type, MVT::v8i64,
/*282773*/              OPC_MoveParent,
/*282774*/              OPC_RecordChild2, // #2 = $src0
/*282775*/              OPC_CheckType, MVT::v8i64,
/*282777*/              OPC_CheckPatternPredicate, 142, // (Subtarget->hasVPOPCNTDQ())
/*282779*/              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)
/*282788*/            /*Scope*/ 17, /*->282806*/
/*282789*/              OPC_CheckChild0Type, MVT::v8i32,
/*282791*/              OPC_MoveParent,
/*282792*/              OPC_RecordChild2, // #2 = $src0
/*282793*/              OPC_CheckType, MVT::v8i32,
/*282795*/              OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/*282797*/              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)
/*282806*/            /*Scope*/ 17, /*->282824*/
/*282807*/              OPC_CheckChild0Type, MVT::v8i16,
/*282809*/              OPC_MoveParent,
/*282810*/              OPC_RecordChild2, // #2 = $src0
/*282811*/              OPC_CheckType, MVT::v8i16,
/*282813*/              OPC_CheckPatternPredicate, 115, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/*282815*/              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)
/*282824*/            0, /*End of Scope*/
/*282825*/          /*SwitchOpcode*/ 48, TARGET_VAL(X86ISD::UNPCKL),// ->282876
/*282828*/            OPC_RecordChild0, // #1 = $src1
/*282829*/            OPC_RecordChild1, // #2 = $src2
/*282830*/            OPC_MoveParent,
/*282831*/            OPC_RecordChild2, // #3 = $src0
/*282832*/            OPC_SwitchType /*3 cases */, 12, MVT::v8i16,// ->282847
/*282835*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*282837*/              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)
/*282847*/            /*SwitchType*/ 12, MVT::v8i32,// ->282861
/*282849*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*282851*/              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)
/*282861*/            /*SwitchType*/ 12, MVT::v8i64,// ->282875
/*282863*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*282865*/              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)
/*282875*/            0, // EndSwitchType
/*282876*/          /*SwitchOpcode*/ 48, TARGET_VAL(X86ISD::UNPCKH),// ->282927
/*282879*/            OPC_RecordChild0, // #1 = $src1
/*282880*/            OPC_RecordChild1, // #2 = $src2
/*282881*/            OPC_MoveParent,
/*282882*/            OPC_RecordChild2, // #3 = $src0
/*282883*/            OPC_SwitchType /*3 cases */, 12, MVT::v8i16,// ->282898
/*282886*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*282888*/              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)
/*282898*/            /*SwitchType*/ 12, MVT::v8i32,// ->282912
/*282900*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*282902*/              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)
/*282912*/            /*SwitchType*/ 12, MVT::v8i64,// ->282926
/*282914*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*282916*/              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)
/*282926*/            0, // EndSwitchType
/*282927*/          /*SwitchOpcode*/ 50, TARGET_VAL(X86ISD::VSHLDV),// ->282980
/*282930*/            OPC_RecordChild0, // #1 = $src1
/*282931*/            OPC_RecordChild1, // #2 = $src2
/*282932*/            OPC_RecordChild2, // #3 = $src3
/*282933*/            OPC_MoveParent,
/*282934*/            OPC_CheckChild2Same, 1,
/*282936*/            OPC_SwitchType /*3 cases */, 12, MVT::v8i16,// ->282951
/*282939*/              OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*282941*/              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)
/*282951*/            /*SwitchType*/ 12, MVT::v8i32,// ->282965
/*282953*/              OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*282955*/              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)
/*282965*/            /*SwitchType*/ 12, MVT::v8i64,// ->282979
/*282967*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*282969*/              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)
/*282979*/            0, // EndSwitchType
/*282980*/          /*SwitchOpcode*/ 50, TARGET_VAL(X86ISD::VSHRDV),// ->283033
/*282983*/            OPC_RecordChild0, // #1 = $src1
/*282984*/            OPC_RecordChild1, // #2 = $src2
/*282985*/            OPC_RecordChild2, // #3 = $src3
/*282986*/            OPC_MoveParent,
/*282987*/            OPC_CheckChild2Same, 1,
/*282989*/            OPC_SwitchType /*3 cases */, 12, MVT::v8i16,// ->283004
/*282992*/              OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*282994*/              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)
/*283004*/            /*SwitchType*/ 12, MVT::v8i32,// ->283018
/*283006*/              OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*283008*/              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)
/*283018*/            /*SwitchType*/ 12, MVT::v8i64,// ->283032
/*283020*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*283022*/              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)
/*283032*/            0, // EndSwitchType
/*283033*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::VPDPBUSD),// ->283056
/*283036*/            OPC_RecordChild0, // #1 = $src1
/*283037*/            OPC_RecordChild1, // #2 = $src2
/*283038*/            OPC_RecordChild2, // #3 = $src3
/*283039*/            OPC_MoveParent,
/*283040*/            OPC_CheckChild2Same, 1,
/*283042*/            OPC_CheckType, MVT::v8i32,
/*283044*/            OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*283046*/            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)
/*283056*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::VPDPBUSDS),// ->283079
/*283059*/            OPC_RecordChild0, // #1 = $src1
/*283060*/            OPC_RecordChild1, // #2 = $src2
/*283061*/            OPC_RecordChild2, // #3 = $src3
/*283062*/            OPC_MoveParent,
/*283063*/            OPC_CheckChild2Same, 1,
/*283065*/            OPC_CheckType, MVT::v8i32,
/*283067*/            OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*283069*/            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)
/*283079*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::VPDPWSSD),// ->283102
/*283082*/            OPC_RecordChild0, // #1 = $src1
/*283083*/            OPC_RecordChild1, // #2 = $src2
/*283084*/            OPC_RecordChild2, // #3 = $src3
/*283085*/            OPC_MoveParent,
/*283086*/            OPC_CheckChild2Same, 1,
/*283088*/            OPC_CheckType, MVT::v8i32,
/*283090*/            OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*283092*/            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)
/*283102*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::VPDPWSSDS),// ->283125
/*283105*/            OPC_RecordChild0, // #1 = $src1
/*283106*/            OPC_RecordChild1, // #2 = $src2
/*283107*/            OPC_RecordChild2, // #3 = $src3
/*283108*/            OPC_MoveParent,
/*283109*/            OPC_CheckChild2Same, 1,
/*283111*/            OPC_CheckType, MVT::v8i32,
/*283113*/            OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*283115*/            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)
/*283125*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::CVTNE2PS2BF16),// ->283148
/*283128*/            OPC_RecordChild0, // #1 = $src1
/*283129*/            OPC_CheckChild0Type, MVT::v4f32,
/*283131*/            OPC_RecordChild1, // #2 = $src2
/*283132*/            OPC_MoveParent,
/*283133*/            OPC_RecordChild2, // #3 = $src0
/*283134*/            OPC_CheckType, MVT::v8i16,
/*283136*/            OPC_CheckPatternPredicate, 182, // (Subtarget->hasBF16()) && (Subtarget->hasVLX())
/*283138*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTNE2PS2BF16Z128rrk), 0,
                          MVT::v8i16, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtne2ps2bf16:{ *:[v8i16] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v8i16] }:$src0) - Complexity = 6
                      // Dst: (VCVTNE2PS2BF16Z128rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*283148*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::CVTNEPS2BF16),// ->283169
/*283151*/            OPC_RecordChild0, // #1 = $src
/*283152*/            OPC_CheckChild0Type, MVT::v8f32,
/*283154*/            OPC_MoveParent,
/*283155*/            OPC_RecordChild2, // #2 = $src0
/*283156*/            OPC_CheckType, MVT::v8i16,
/*283158*/            OPC_CheckPatternPredicate, 182, // (Subtarget->hasBF16()) && (Subtarget->hasVLX())
/*283160*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTNEPS2BF16Z256rrk), 0,
                          MVT::v8i16, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtneps2bf16:{ *:[v8i16] } VR256X:{ *:[v8f32] }:$src), VR128X:{ *:[v8i16] }:$src0) - Complexity = 6
                      // Dst: (VCVTNEPS2BF16Z256rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*283169*/          0, // EndSwitchOpcode
/*283170*/        /*Scope*/ 61|128,1/*189*/, /*->283361*/
/*283172*/          OPC_RecordChild1, // #1 = $src1
/*283173*/          OPC_RecordChild2, // #2 = $src0
/*283174*/          OPC_SwitchType /*3 cases */, 84, MVT::v8i32,// ->283261
/*283177*/            OPC_Scope, 11, /*->283190*/ // 2 children in Scope
/*283179*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*283181*/              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)
/*283190*/            /*Scope*/ 69, /*->283260*/
/*283191*/              OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*283193*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v16i32, 0/*#Ops*/,  // Results = #3
/*283199*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*283202*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v16i32, 3/*#Ops*/, 3, 2, 4,  // Results = #5
/*283211*/              OPC_EmitInteger, MVT::i32, X86::VK16WMRegClassID,
/*283214*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v16i1, 2/*#Ops*/, 0, 6,  // Results = #7
/*283222*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v16i32, 0/*#Ops*/,  // Results = #8
/*283228*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*283231*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v16i32, 3/*#Ops*/, 8, 1, 9,  // Results = #10
/*283240*/              OPC_EmitNode1, TARGET_VAL(X86::VMOVDQA32Zrrk), 0,
                            MVT::v16i32, 3/*#Ops*/, 5, 7, 10,  // Results = #11
/*283249*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*283252*/              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] })
/*283260*/            0, /*End of Scope*/
/*283261*/          /*SwitchType*/ 11, MVT::v8i64,// ->283274
/*283263*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*283265*/            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)
/*283274*/          /*SwitchType*/ 84, MVT::v8i16,// ->283360
/*283276*/            OPC_Scope, 11, /*->283289*/ // 2 children in Scope
/*283278*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*283280*/              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)
/*283289*/            /*Scope*/ 69, /*->283359*/
/*283290*/              OPC_CheckPatternPredicate, 117, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/*283292*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v32i16, 0/*#Ops*/,  // Results = #3
/*283298*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*283301*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v32i16, 3/*#Ops*/, 3, 2, 4,  // Results = #5
/*283310*/              OPC_EmitInteger, MVT::i32, X86::VK32WMRegClassID,
/*283313*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v32i1, 2/*#Ops*/, 0, 6,  // Results = #7
/*283321*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v32i16, 0/*#Ops*/,  // Results = #8
/*283327*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*283330*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v32i16, 3/*#Ops*/, 8, 1, 9,  // Results = #10
/*283339*/              OPC_EmitNode1, TARGET_VAL(X86::VMOVDQU16Zrrk), 0,
                            MVT::v32i16, 3/*#Ops*/, 5, 7, 10,  // Results = #11
/*283348*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*283351*/              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] })
/*283359*/            0, /*End of Scope*/
/*283360*/          0, // EndSwitchType
/*283361*/        /*Scope*/ 6|128,2/*262*/, /*->283625*/
/*283363*/          OPC_MoveChild1,
/*283364*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*283367*/          OPC_Scope, 25|128,1/*153*/, /*->283523*/ // 2 children in Scope
/*283370*/            OPC_RecordChild0, // #1 = $ins
/*283371*/            OPC_MoveChild0,
/*283372*/            OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*283375*/            OPC_RecordChild0, // #2 = $src1
/*283376*/            OPC_MoveChild1,
/*283377*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*283380*/            OPC_RecordMemRef,
/*283381*/            OPC_RecordNode, // #3 = 'ld' chained node
/*283382*/            OPC_CheckFoldableChainNode,
/*283383*/            OPC_RecordChild1, // #4 = $src2
/*283384*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*283386*/            OPC_CheckPredicate, 9, // Predicate_load
/*283388*/            OPC_Scope, 42, /*->283432*/ // 3 children in Scope
/*283390*/              OPC_MoveParent,
/*283391*/              OPC_MoveChild2,
/*283392*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*283395*/              OPC_CheckType, MVT::iPTR,
/*283397*/              OPC_MoveParent,
/*283398*/              OPC_CheckType, MVT::v4f64,
/*283400*/              OPC_MoveParent,
/*283401*/              OPC_MoveParent,
/*283402*/              OPC_MoveChild2,
/*283403*/              OPC_CheckImmAllZerosV,
/*283404*/              OPC_MoveParent,
/*283405*/              OPC_CheckType, MVT::v8f32,
/*283407*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*283409*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*283412*/              OPC_EmitMergeInputChains, 1, 3, 
/*283415*/              OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*283418*/              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>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), immAllZerosV:{ *:[v8f32] }) - Complexity = 38
                        // Dst: (VINSERTF32x4Z256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256X:{ *:[v4f64] }:$ins))
/*283432*/            /*Scope*/ 44, /*->283477*/
/*283433*/              OPC_CheckType, MVT::v4f32,
/*283435*/              OPC_MoveParent,
/*283436*/              OPC_MoveChild2,
/*283437*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*283440*/              OPC_CheckType, MVT::iPTR,
/*283442*/              OPC_MoveParent,
/*283443*/              OPC_CheckType, MVT::v16f32,
/*283445*/              OPC_MoveParent,
/*283446*/              OPC_MoveParent,
/*283447*/              OPC_MoveChild2,
/*283448*/              OPC_CheckImmAllZerosV,
/*283449*/              OPC_MoveParent,
/*283450*/              OPC_CheckType, MVT::v8f64,
/*283452*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*283454*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*283457*/              OPC_EmitMergeInputChains, 1, 3, 
/*283460*/              OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*283463*/              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>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), immAllZerosV:{ *:[v8f64] }) - Complexity = 38
                        // Dst: (VINSERTF64x2Zrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR512:{ *:[v16f32] }:$ins))
/*283477*/            /*Scope*/ 44, /*->283522*/
/*283478*/              OPC_CheckType, MVT::v8f32,
/*283480*/              OPC_MoveParent,
/*283481*/              OPC_MoveChild2,
/*283482*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*283485*/              OPC_CheckType, MVT::iPTR,
/*283487*/              OPC_MoveParent,
/*283488*/              OPC_CheckType, MVT::v16f32,
/*283490*/              OPC_MoveParent,
/*283491*/              OPC_MoveParent,
/*283492*/              OPC_MoveChild2,
/*283493*/              OPC_CheckImmAllZerosV,
/*283494*/              OPC_MoveParent,
/*283495*/              OPC_CheckType, MVT::v8f64,
/*283497*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*283499*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*283502*/              OPC_EmitMergeInputChains, 1, 3, 
/*283505*/              OPC_EmitNodeXForm, 16, 1, // INSERT_get_vinsert256_imm
/*283508*/              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>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$ins), immAllZerosV:{ *:[v8f64] }) - Complexity = 38
                        // Dst: (VINSERTF64x4Zrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } VR512:{ *:[v16f32] }:$ins))
/*283522*/            0, /*End of Scope*/
/*283523*/          /*Scope*/ 100, /*->283624*/
/*283524*/            OPC_MoveChild0,
/*283525*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::SHUF128),
/*283528*/            OPC_RecordChild0, // #1 = $src1
/*283529*/            OPC_MoveChild1,
/*283530*/            OPC_SwitchOpcode /*2 cases */, 44, TARGET_VAL(ISD::LOAD),// ->283578
/*283534*/              OPC_RecordMemRef,
/*283535*/              OPC_RecordNode, // #2 = 'ld' chained node
/*283536*/              OPC_CheckFoldableChainNode,
/*283537*/              OPC_RecordChild1, // #3 = $src2
/*283538*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*283540*/              OPC_CheckPredicate, 9, // Predicate_load
/*283542*/              OPC_MoveParent,
/*283543*/              OPC_RecordChild2, // #4 = $src3
/*283544*/              OPC_MoveChild2,
/*283545*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*283548*/              OPC_MoveParent,
/*283549*/              OPC_CheckType, MVT::v4f64,
/*283551*/              OPC_MoveParent,
/*283552*/              OPC_MoveParent,
/*283553*/              OPC_MoveChild2,
/*283554*/              OPC_CheckImmAllZerosV,
/*283555*/              OPC_MoveParent,
/*283556*/              OPC_CheckType, MVT::v8f32,
/*283558*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*283560*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*283563*/              OPC_EmitMergeInputChains1_2,
/*283564*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF32X4Z256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (X86Shuf128:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3)), immAllZerosV:{ *:[v8f32] }) - Complexity = 38
                        // Dst: (VSHUFF32X4Z256rmikz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*283578*/            /*SwitchOpcode*/ 42, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->283623
/*283581*/              OPC_RecordMemRef,
/*283582*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*283583*/              OPC_CheckFoldableChainNode,
/*283584*/              OPC_RecordChild1, // #3 = $src2
/*283585*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*283587*/              OPC_MoveParent,
/*283588*/              OPC_RecordChild2, // #4 = $src3
/*283589*/              OPC_MoveChild2,
/*283590*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*283593*/              OPC_MoveParent,
/*283594*/              OPC_CheckType, MVT::v4f64,
/*283596*/              OPC_MoveParent,
/*283597*/              OPC_MoveParent,
/*283598*/              OPC_MoveChild2,
/*283599*/              OPC_CheckImmAllZerosV,
/*283600*/              OPC_MoveParent,
/*283601*/              OPC_CheckType, MVT::v8f32,
/*283603*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*283605*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*283608*/              OPC_EmitMergeInputChains1_2,
/*283609*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF32X4Z256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (X86Shuf128:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src3)), immAllZerosV:{ *:[v8f32] }) - Complexity = 38
                        // Dst: (VSHUFF32X4Z256rmbikz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*283623*/            0, // EndSwitchOpcode
/*283624*/          0, /*End of Scope*/
/*283625*/        /*Scope*/ 16|128,1/*144*/, /*->283771*/
/*283627*/          OPC_RecordChild1, // #1 = $src3
/*283628*/          OPC_MoveChild1,
/*283629*/          OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*283632*/          OPC_RecordChild0, // #2 = $src1
/*283633*/          OPC_MoveChild1,
/*283634*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*283637*/          OPC_RecordMemRef,
/*283638*/          OPC_RecordNode, // #3 = 'ld' chained node
/*283639*/          OPC_CheckFoldableChainNode,
/*283640*/          OPC_RecordChild1, // #4 = $src2
/*283641*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*283643*/          OPC_CheckPredicate, 9, // Predicate_load
/*283645*/          OPC_Scope, 39, /*->283686*/ // 3 children in Scope
/*283647*/            OPC_MoveParent,
/*283648*/            OPC_MoveChild2,
/*283649*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*283652*/            OPC_CheckType, MVT::iPTR,
/*283654*/            OPC_MoveParent,
/*283655*/            OPC_MoveParent,
/*283656*/            OPC_MoveChild2,
/*283657*/            OPC_CheckImmAllZerosV,
/*283658*/            OPC_MoveParent,
/*283659*/            OPC_CheckType, MVT::v8f32,
/*283661*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*283663*/            OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*283666*/            OPC_EmitMergeInputChains, 1, 3, 
/*283669*/            OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*283672*/            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>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$src3, immAllZerosV:{ *:[v8f32] }) - Complexity = 35
                      // 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>>, (imm:{ *:[iPTR] })):$src3))
/*283686*/          /*Scope*/ 41, /*->283728*/
/*283687*/            OPC_CheckType, MVT::v4f64,
/*283689*/            OPC_MoveParent,
/*283690*/            OPC_MoveChild2,
/*283691*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*283694*/            OPC_CheckType, MVT::iPTR,
/*283696*/            OPC_MoveParent,
/*283697*/            OPC_MoveParent,
/*283698*/            OPC_MoveChild2,
/*283699*/            OPC_CheckImmAllZerosV,
/*283700*/            OPC_MoveParent,
/*283701*/            OPC_CheckType, MVT::v8f64,
/*283703*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*283705*/            OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*283708*/            OPC_EmitMergeInputChains, 1, 3, 
/*283711*/            OPC_EmitNodeXForm, 16, 1, // INSERT_get_vinsert256_imm
/*283714*/            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>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$src3, immAllZerosV:{ *:[v8f64] }) - Complexity = 35
                      // 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>>, (imm:{ *:[iPTR] })):$src3))
/*283728*/          /*Scope*/ 41, /*->283770*/
/*283729*/            OPC_CheckType, MVT::v2f64,
/*283731*/            OPC_MoveParent,
/*283732*/            OPC_MoveChild2,
/*283733*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*283736*/            OPC_CheckType, MVT::iPTR,
/*283738*/            OPC_MoveParent,
/*283739*/            OPC_MoveParent,
/*283740*/            OPC_MoveChild2,
/*283741*/            OPC_CheckImmAllZerosV,
/*283742*/            OPC_MoveParent,
/*283743*/            OPC_CheckType, MVT::v8f64,
/*283745*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*283747*/            OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*283750*/            OPC_EmitMergeInputChains, 1, 3, 
/*283753*/            OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*283756*/            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>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$src3, immAllZerosV:{ *:[v8f64] }) - Complexity = 35
                      // 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>>, (imm:{ *:[iPTR] })):$src3))
/*283770*/          0, /*End of Scope*/
/*283771*/        /*Scope*/ 47|128,102/*13103*/, /*->296876*/
/*283773*/          OPC_MoveChild1,
/*283774*/          OPC_SwitchOpcode /*58 cases */, 97|128,20/*2657*/, TARGET_VAL(ISD::BITCAST),// ->286436
/*283779*/            OPC_Scope, 59|128,18/*2363*/, /*->286145*/ // 3 children in Scope
/*283782*/              OPC_MoveChild0,
/*283783*/              OPC_SwitchOpcode /*5 cases */, 105, TARGET_VAL(X86ISD::SUBV_BROADCAST),// ->283892
/*283787*/                OPC_MoveChild0,
/*283788*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*283791*/                OPC_RecordMemRef,
/*283792*/                OPC_RecordNode, // #1 = 'ld' chained node
/*283793*/                OPC_CheckFoldableChainNode,
/*283794*/                OPC_RecordChild1, // #2 = $src
/*283795*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*283797*/                OPC_CheckPredicate, 9, // Predicate_load
/*283799*/                OPC_Scope, 30, /*->283831*/ // 3 children in Scope
/*283801*/                  OPC_CheckType, MVT::v8f32,
/*283803*/                  OPC_MoveParent,
/*283804*/                  OPC_CheckType, MVT::v16f32,
/*283806*/                  OPC_MoveParent,
/*283807*/                  OPC_MoveParent,
/*283808*/                  OPC_MoveChild2,
/*283809*/                  OPC_CheckImmAllZerosV,
/*283810*/                  OPC_MoveParent,
/*283811*/                  OPC_CheckType, MVT::v8f64,
/*283813*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*283815*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*283818*/                  OPC_EmitMergeInputChains1_1,
/*283819*/                  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>>)), immAllZerosV:{ *:[v8f64] }) - Complexity = 35
                            // Dst: (VBROADCASTF64X4rmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*283831*/                /*Scope*/ 28, /*->283860*/
/*283832*/                  OPC_MoveParent,
/*283833*/                  OPC_CheckType, MVT::v4f64,
/*283835*/                  OPC_MoveParent,
/*283836*/                  OPC_MoveParent,
/*283837*/                  OPC_MoveChild2,
/*283838*/                  OPC_CheckImmAllZerosV,
/*283839*/                  OPC_MoveParent,
/*283840*/                  OPC_CheckType, MVT::v8f32,
/*283842*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*283844*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*283847*/                  OPC_EmitMergeInputChains1_1,
/*283848*/                  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>>)), immAllZerosV:{ *:[v8f32] }) - Complexity = 35
                            // Dst: (VBROADCASTF32X4Z256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*283860*/                /*Scope*/ 30, /*->283891*/
/*283861*/                  OPC_CheckType, MVT::v4f32,
/*283863*/                  OPC_MoveParent,
/*283864*/                  OPC_CheckType, MVT::v16f32,
/*283866*/                  OPC_MoveParent,
/*283867*/                  OPC_MoveParent,
/*283868*/                  OPC_MoveChild2,
/*283869*/                  OPC_CheckImmAllZerosV,
/*283870*/                  OPC_MoveParent,
/*283871*/                  OPC_CheckType, MVT::v8f64,
/*283873*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*283875*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*283878*/                  OPC_EmitMergeInputChains1_1,
/*283879*/                  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>>)), immAllZerosV:{ *:[v8f64] }) - Complexity = 35
                            // Dst: (VBROADCASTF64X2rmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*283891*/                0, /*End of Scope*/
/*283892*/              /*SwitchOpcode*/ 0|128,5/*640*/, TARGET_VAL(ISD::AND),// ->284536
/*283896*/                OPC_Scope, 60|128,2/*316*/, /*->284215*/ // 2 children in Scope
/*283899*/                  OPC_RecordChild0, // #1 = $src1
/*283900*/                  OPC_MoveChild1,
/*283901*/                  OPC_SwitchOpcode /*2 cases */, 107|128,1/*235*/, TARGET_VAL(ISD::LOAD),// ->284141
/*283906*/                    OPC_RecordMemRef,
/*283907*/                    OPC_RecordNode, // #2 = 'ld' chained node
/*283908*/                    OPC_CheckFoldableChainNode,
/*283909*/                    OPC_RecordChild1, // #3 = $src2
/*283910*/                    OPC_CheckPredicate, 4, // Predicate_unindexedload
/*283912*/                    OPC_CheckPredicate, 9, // Predicate_load
/*283914*/                    OPC_MoveParent,
/*283915*/                    OPC_SwitchType /*8 cases */, 26, MVT::v4i64,// ->283944
/*283918*/                      OPC_MoveParent,
/*283919*/                      OPC_MoveParent,
/*283920*/                      OPC_MoveChild2,
/*283921*/                      OPC_CheckImmAllZerosV,
/*283922*/                      OPC_MoveParent,
/*283923*/                      OPC_CheckType, MVT::v8f32,
/*283925*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*283927*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*283930*/                      OPC_EmitMergeInputChains1_2,
/*283931*/                      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>>)), immAllZerosV:{ *:[v8f32] }) - Complexity = 35
                                // Dst: (VPANDDZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*283944*/                    /*SwitchType*/ 26, MVT::v8i32,// ->283972
/*283946*/                      OPC_MoveParent,
/*283947*/                      OPC_MoveParent,
/*283948*/                      OPC_MoveChild2,
/*283949*/                      OPC_CheckImmAllZerosV,
/*283950*/                      OPC_MoveParent,
/*283951*/                      OPC_CheckType, MVT::v8f32,
/*283953*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*283955*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*283958*/                      OPC_EmitMergeInputChains1_2,
/*283959*/                      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:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v8f32] }) - Complexity = 35
                                // Dst: (VPANDDZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*283972*/                    /*SwitchType*/ 26, MVT::v16i16,// ->284000
/*283974*/                      OPC_MoveParent,
/*283975*/                      OPC_MoveParent,
/*283976*/                      OPC_MoveChild2,
/*283977*/                      OPC_CheckImmAllZerosV,
/*283978*/                      OPC_MoveParent,
/*283979*/                      OPC_CheckType, MVT::v8f32,
/*283981*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*283983*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*283986*/                      OPC_EmitMergeInputChains1_2,
/*283987*/                      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:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v8f32] }) - Complexity = 35
                                // Dst: (VPANDDZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*284000*/                    /*SwitchType*/ 26, MVT::v32i8,// ->284028
/*284002*/                      OPC_MoveParent,
/*284003*/                      OPC_MoveParent,
/*284004*/                      OPC_MoveChild2,
/*284005*/                      OPC_CheckImmAllZerosV,
/*284006*/                      OPC_MoveParent,
/*284007*/                      OPC_CheckType, MVT::v8f32,
/*284009*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*284011*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*284014*/                      OPC_EmitMergeInputChains1_2,
/*284015*/                      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:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v8f32] }) - Complexity = 35
                                // Dst: (VPANDDZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*284028*/                    /*SwitchType*/ 26, MVT::v8i64,// ->284056
/*284030*/                      OPC_MoveParent,
/*284031*/                      OPC_MoveParent,
/*284032*/                      OPC_MoveChild2,
/*284033*/                      OPC_CheckImmAllZerosV,
/*284034*/                      OPC_MoveParent,
/*284035*/                      OPC_CheckType, MVT::v8f64,
/*284037*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*284039*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*284042*/                      OPC_EmitMergeInputChains1_2,
/*284043*/                      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>>)), immAllZerosV:{ *:[v8f64] }) - Complexity = 35
                                // Dst: (VPANDQZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*284056*/                    /*SwitchType*/ 26, MVT::v16i32,// ->284084
/*284058*/                      OPC_MoveParent,
/*284059*/                      OPC_MoveParent,
/*284060*/                      OPC_MoveChild2,
/*284061*/                      OPC_CheckImmAllZerosV,
/*284062*/                      OPC_MoveParent,
/*284063*/                      OPC_CheckType, MVT::v8f64,
/*284065*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*284067*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*284070*/                      OPC_EmitMergeInputChains1_2,
/*284071*/                      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:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v8f64] }) - Complexity = 35
                                // Dst: (VPANDQZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*284084*/                    /*SwitchType*/ 26, MVT::v32i16,// ->284112
/*284086*/                      OPC_MoveParent,
/*284087*/                      OPC_MoveParent,
/*284088*/                      OPC_MoveChild2,
/*284089*/                      OPC_CheckImmAllZerosV,
/*284090*/                      OPC_MoveParent,
/*284091*/                      OPC_CheckType, MVT::v8f64,
/*284093*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*284095*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*284098*/                      OPC_EmitMergeInputChains1_2,
/*284099*/                      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:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v8f64] }) - Complexity = 35
                                // Dst: (VPANDQZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*284112*/                    /*SwitchType*/ 26, MVT::v64i8,// ->284140
/*284114*/                      OPC_MoveParent,
/*284115*/                      OPC_MoveParent,
/*284116*/                      OPC_MoveChild2,
/*284117*/                      OPC_CheckImmAllZerosV,
/*284118*/                      OPC_MoveParent,
/*284119*/                      OPC_CheckType, MVT::v8f64,
/*284121*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*284123*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*284126*/                      OPC_EmitMergeInputChains1_2,
/*284127*/                      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:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v8f64] }) - Complexity = 35
                                // Dst: (VPANDQZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*284140*/                    0, // EndSwitchType
/*284141*/                  /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->284214
/*284144*/                    OPC_RecordMemRef,
/*284145*/                    OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*284146*/                    OPC_CheckFoldableChainNode,
/*284147*/                    OPC_RecordChild1, // #3 = $src2
/*284148*/                    OPC_Scope, 31, /*->284181*/ // 2 children in Scope
/*284150*/                      OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*284152*/                      OPC_MoveParent,
/*284153*/                      OPC_CheckType, MVT::v8i32,
/*284155*/                      OPC_MoveParent,
/*284156*/                      OPC_MoveParent,
/*284157*/                      OPC_MoveChild2,
/*284158*/                      OPC_CheckImmAllZerosV,
/*284159*/                      OPC_MoveParent,
/*284160*/                      OPC_CheckType, MVT::v8f32,
/*284162*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*284164*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*284167*/                      OPC_EmitMergeInputChains1_2,
/*284168*/                      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:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>)), immAllZerosV:{ *:[v8f32] }) - Complexity = 35
                                // Dst: (VPANDDZ256rmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*284181*/                    /*Scope*/ 31, /*->284213*/
/*284182*/                      OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*284184*/                      OPC_MoveParent,
/*284185*/                      OPC_CheckType, MVT::v8i64,
/*284187*/                      OPC_MoveParent,
/*284188*/                      OPC_MoveParent,
/*284189*/                      OPC_MoveChild2,
/*284190*/                      OPC_CheckImmAllZerosV,
/*284191*/                      OPC_MoveParent,
/*284192*/                      OPC_CheckType, MVT::v8f64,
/*284194*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*284196*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*284199*/                      OPC_EmitMergeInputChains1_2,
/*284200*/                      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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>)), immAllZerosV:{ *:[v8f64] }) - Complexity = 35
                                // Dst: (VPANDQZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*284213*/                    0, /*End of Scope*/
/*284214*/                  0, // EndSwitchOpcode
/*284215*/                /*Scope*/ 62|128,2/*318*/, /*->284535*/
/*284217*/                  OPC_MoveChild0,
/*284218*/                  OPC_SwitchOpcode /*2 cases */, 108|128,1/*236*/, TARGET_VAL(ISD::LOAD),// ->284459
/*284223*/                    OPC_RecordMemRef,
/*284224*/                    OPC_RecordNode, // #1 = 'ld' chained node
/*284225*/                    OPC_CheckFoldableChainNode,
/*284226*/                    OPC_RecordChild1, // #2 = $src2
/*284227*/                    OPC_CheckPredicate, 4, // Predicate_unindexedload
/*284229*/                    OPC_CheckPredicate, 9, // Predicate_load
/*284231*/                    OPC_MoveParent,
/*284232*/                    OPC_RecordChild1, // #3 = $src1
/*284233*/                    OPC_SwitchType /*8 cases */, 26, MVT::v4i64,// ->284262
/*284236*/                      OPC_MoveParent,
/*284237*/                      OPC_MoveParent,
/*284238*/                      OPC_MoveChild2,
/*284239*/                      OPC_CheckImmAllZerosV,
/*284240*/                      OPC_MoveParent,
/*284241*/                      OPC_CheckType, MVT::v8f32,
/*284243*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*284245*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*284248*/                      OPC_EmitMergeInputChains1_1,
/*284249*/                      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)), immAllZerosV:{ *:[v8f32] }) - Complexity = 35
                                // Dst: (VPANDDZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*284262*/                    /*SwitchType*/ 26, MVT::v8i32,// ->284290
/*284264*/                      OPC_MoveParent,
/*284265*/                      OPC_MoveParent,
/*284266*/                      OPC_MoveChild2,
/*284267*/                      OPC_CheckImmAllZerosV,
/*284268*/                      OPC_MoveParent,
/*284269*/                      OPC_CheckType, MVT::v8f32,
/*284271*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*284273*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*284276*/                      OPC_EmitMergeInputChains1_1,
/*284277*/                      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:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8i32] }:$src1)), immAllZerosV:{ *:[v8f32] }) - Complexity = 35
                                // Dst: (VPANDDZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*284290*/                    /*SwitchType*/ 26, MVT::v16i16,// ->284318
/*284292*/                      OPC_MoveParent,
/*284293*/                      OPC_MoveParent,
/*284294*/                      OPC_MoveChild2,
/*284295*/                      OPC_CheckImmAllZerosV,
/*284296*/                      OPC_MoveParent,
/*284297*/                      OPC_CheckType, MVT::v8f32,
/*284299*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*284301*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*284304*/                      OPC_EmitMergeInputChains1_1,
/*284305*/                      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:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1)), immAllZerosV:{ *:[v8f32] }) - Complexity = 35
                                // Dst: (VPANDDZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*284318*/                    /*SwitchType*/ 26, MVT::v32i8,// ->284346
/*284320*/                      OPC_MoveParent,
/*284321*/                      OPC_MoveParent,
/*284322*/                      OPC_MoveChild2,
/*284323*/                      OPC_CheckImmAllZerosV,
/*284324*/                      OPC_MoveParent,
/*284325*/                      OPC_CheckType, MVT::v8f32,
/*284327*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*284329*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*284332*/                      OPC_EmitMergeInputChains1_1,
/*284333*/                      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:{ *:[v32i8] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v32i8] }:$src1)), immAllZerosV:{ *:[v8f32] }) - Complexity = 35
                                // Dst: (VPANDDZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*284346*/                    /*SwitchType*/ 26, MVT::v8i64,// ->284374
/*284348*/                      OPC_MoveParent,
/*284349*/                      OPC_MoveParent,
/*284350*/                      OPC_MoveChild2,
/*284351*/                      OPC_CheckImmAllZerosV,
/*284352*/                      OPC_MoveParent,
/*284353*/                      OPC_CheckType, MVT::v8f64,
/*284355*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*284357*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*284360*/                      OPC_EmitMergeInputChains1_1,
/*284361*/                      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)), immAllZerosV:{ *:[v8f64] }) - Complexity = 35
                                // Dst: (VPANDQZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*284374*/                    /*SwitchType*/ 26, MVT::v16i32,// ->284402
/*284376*/                      OPC_MoveParent,
/*284377*/                      OPC_MoveParent,
/*284378*/                      OPC_MoveChild2,
/*284379*/                      OPC_CheckImmAllZerosV,
/*284380*/                      OPC_MoveParent,
/*284381*/                      OPC_CheckType, MVT::v8f64,
/*284383*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*284385*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*284388*/                      OPC_EmitMergeInputChains1_1,
/*284389*/                      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:{ *:[v16i32] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16i32] }:$src1)), immAllZerosV:{ *:[v8f64] }) - Complexity = 35
                                // Dst: (VPANDQZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*284402*/                    /*SwitchType*/ 26, MVT::v32i16,// ->284430
/*284404*/                      OPC_MoveParent,
/*284405*/                      OPC_MoveParent,
/*284406*/                      OPC_MoveChild2,
/*284407*/                      OPC_CheckImmAllZerosV,
/*284408*/                      OPC_MoveParent,
/*284409*/                      OPC_CheckType, MVT::v8f64,
/*284411*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*284413*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*284416*/                      OPC_EmitMergeInputChains1_1,
/*284417*/                      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:{ *:[v32i16] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1)), immAllZerosV:{ *:[v8f64] }) - Complexity = 35
                                // Dst: (VPANDQZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*284430*/                    /*SwitchType*/ 26, MVT::v64i8,// ->284458
/*284432*/                      OPC_MoveParent,
/*284433*/                      OPC_MoveParent,
/*284434*/                      OPC_MoveChild2,
/*284435*/                      OPC_CheckImmAllZerosV,
/*284436*/                      OPC_MoveParent,
/*284437*/                      OPC_CheckType, MVT::v8f64,
/*284439*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*284441*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*284444*/                      OPC_EmitMergeInputChains1_1,
/*284445*/                      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:{ *:[v64i8] } (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v64i8] }:$src1)), immAllZerosV:{ *:[v8f64] }) - Complexity = 35
                                // Dst: (VPANDQZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*284458*/                    0, // EndSwitchType
/*284459*/                  /*SwitchOpcode*/ 72, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->284534
/*284462*/                    OPC_RecordMemRef,
/*284463*/                    OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*284464*/                    OPC_CheckFoldableChainNode,
/*284465*/                    OPC_RecordChild1, // #2 = $src2
/*284466*/                    OPC_Scope, 32, /*->284500*/ // 2 children in Scope
/*284468*/                      OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*284470*/                      OPC_MoveParent,
/*284471*/                      OPC_RecordChild1, // #3 = $src1
/*284472*/                      OPC_CheckType, MVT::v8i32,
/*284474*/                      OPC_MoveParent,
/*284475*/                      OPC_MoveParent,
/*284476*/                      OPC_MoveChild2,
/*284477*/                      OPC_CheckImmAllZerosV,
/*284478*/                      OPC_MoveParent,
/*284479*/                      OPC_CheckType, MVT::v8f32,
/*284481*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*284483*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*284486*/                      OPC_EmitMergeInputChains1_1,
/*284487*/                      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:{ *:[v8i32] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8i32] }:$src1)), immAllZerosV:{ *:[v8f32] }) - Complexity = 35
                                // Dst: (VPANDDZ256rmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*284500*/                    /*Scope*/ 32, /*->284533*/
/*284501*/                      OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*284503*/                      OPC_MoveParent,
/*284504*/                      OPC_RecordChild1, // #3 = $src1
/*284505*/                      OPC_CheckType, MVT::v8i64,
/*284507*/                      OPC_MoveParent,
/*284508*/                      OPC_MoveParent,
/*284509*/                      OPC_MoveChild2,
/*284510*/                      OPC_CheckImmAllZerosV,
/*284511*/                      OPC_MoveParent,
/*284512*/                      OPC_CheckType, MVT::v8f64,
/*284514*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*284516*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*284519*/                      OPC_EmitMergeInputChains1_1,
/*284520*/                      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] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8i64] }:$src1)), immAllZerosV:{ *:[v8f64] }) - Complexity = 35
                                // Dst: (VPANDQZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*284533*/                    0, /*End of Scope*/
/*284534*/                  0, // EndSwitchOpcode
/*284535*/                0, /*End of Scope*/
/*284536*/              /*SwitchOpcode*/ 0|128,5/*640*/, TARGET_VAL(ISD::OR),// ->285180
/*284540*/                OPC_Scope, 60|128,2/*316*/, /*->284859*/ // 2 children in Scope
/*284543*/                  OPC_RecordChild0, // #1 = $src1
/*284544*/                  OPC_MoveChild1,
/*284545*/                  OPC_SwitchOpcode /*2 cases */, 107|128,1/*235*/, TARGET_VAL(ISD::LOAD),// ->284785
/*284550*/                    OPC_RecordMemRef,
/*284551*/                    OPC_RecordNode, // #2 = 'ld' chained node
/*284552*/                    OPC_CheckFoldableChainNode,
/*284553*/                    OPC_RecordChild1, // #3 = $src2
/*284554*/                    OPC_CheckPredicate, 4, // Predicate_unindexedload
/*284556*/                    OPC_CheckPredicate, 9, // Predicate_load
/*284558*/                    OPC_MoveParent,
/*284559*/                    OPC_SwitchType /*8 cases */, 26, MVT::v4i64,// ->284588
/*284562*/                      OPC_MoveParent,
/*284563*/                      OPC_MoveParent,
/*284564*/                      OPC_MoveChild2,
/*284565*/                      OPC_CheckImmAllZerosV,
/*284566*/                      OPC_MoveParent,
/*284567*/                      OPC_CheckType, MVT::v8f32,
/*284569*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*284571*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*284574*/                      OPC_EmitMergeInputChains1_2,
/*284575*/                      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>>)), immAllZerosV:{ *:[v8f32] }) - Complexity = 35
                                // Dst: (VPORDZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*284588*/                    /*SwitchType*/ 26, MVT::v8i32,// ->284616
/*284590*/                      OPC_MoveParent,
/*284591*/                      OPC_MoveParent,
/*284592*/                      OPC_MoveChild2,
/*284593*/                      OPC_CheckImmAllZerosV,
/*284594*/                      OPC_MoveParent,
/*284595*/                      OPC_CheckType, MVT::v8f32,
/*284597*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*284599*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*284602*/                      OPC_EmitMergeInputChains1_2,
/*284603*/                      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:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v8f32] }) - Complexity = 35
                                // Dst: (VPORDZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*284616*/                    /*SwitchType*/ 26, MVT::v16i16,// ->284644
/*284618*/                      OPC_MoveParent,
/*284619*/                      OPC_MoveParent,
/*284620*/                      OPC_MoveChild2,
/*284621*/                      OPC_CheckImmAllZerosV,
/*284622*/                      OPC_MoveParent,
/*284623*/                      OPC_CheckType, MVT::v8f32,
/*284625*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*284627*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*284630*/                      OPC_EmitMergeInputChains1_2,
/*284631*/                      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:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v8f32] }) - Complexity = 35
                                // Dst: (VPORDZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*284644*/                    /*SwitchType*/ 26, MVT::v32i8,// ->284672
/*284646*/                      OPC_MoveParent,
/*284647*/                      OPC_MoveParent,
/*284648*/                      OPC_MoveChild2,
/*284649*/                      OPC_CheckImmAllZerosV,
/*284650*/                      OPC_MoveParent,
/*284651*/                      OPC_CheckType, MVT::v8f32,
/*284653*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*284655*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*284658*/                      OPC_EmitMergeInputChains1_2,
/*284659*/                      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:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v8f32] }) - Complexity = 35
                                // Dst: (VPORDZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*284672*/                    /*SwitchType*/ 26, MVT::v8i64,// ->284700
/*284674*/                      OPC_MoveParent,
/*284675*/                      OPC_MoveParent,
/*284676*/                      OPC_MoveChild2,
/*284677*/                      OPC_CheckImmAllZerosV,
/*284678*/                      OPC_MoveParent,
/*284679*/                      OPC_CheckType, MVT::v8f64,
/*284681*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*284683*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*284686*/                      OPC_EmitMergeInputChains1_2,
/*284687*/                      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>>)), immAllZerosV:{ *:[v8f64] }) - Complexity = 35
                                // Dst: (VPORQZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*284700*/                    /*SwitchType*/ 26, MVT::v16i32,// ->284728
/*284702*/                      OPC_MoveParent,
/*284703*/                      OPC_MoveParent,
/*284704*/                      OPC_MoveChild2,
/*284705*/                      OPC_CheckImmAllZerosV,
/*284706*/                      OPC_MoveParent,
/*284707*/                      OPC_CheckType, MVT::v8f64,
/*284709*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*284711*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*284714*/                      OPC_EmitMergeInputChains1_2,
/*284715*/                      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:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v8f64] }) - Complexity = 35
                                // Dst: (VPORQZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*284728*/                    /*SwitchType*/ 26, MVT::v32i16,// ->284756
/*284730*/                      OPC_MoveParent,
/*284731*/                      OPC_MoveParent,
/*284732*/                      OPC_MoveChild2,
/*284733*/                      OPC_CheckImmAllZerosV,
/*284734*/                      OPC_MoveParent,
/*284735*/                      OPC_CheckType, MVT::v8f64,
/*284737*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*284739*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*284742*/                      OPC_EmitMergeInputChains1_2,
/*284743*/                      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:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v8f64] }) - Complexity = 35
                                // Dst: (VPORQZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*284756*/                    /*SwitchType*/ 26, MVT::v64i8,// ->284784
/*284758*/                      OPC_MoveParent,
/*284759*/                      OPC_MoveParent,
/*284760*/                      OPC_MoveChild2,
/*284761*/                      OPC_CheckImmAllZerosV,
/*284762*/                      OPC_MoveParent,
/*284763*/                      OPC_CheckType, MVT::v8f64,
/*284765*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*284767*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*284770*/                      OPC_EmitMergeInputChains1_2,
/*284771*/                      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:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v8f64] }) - Complexity = 35
                                // Dst: (VPORQZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*284784*/                    0, // EndSwitchType
/*284785*/                  /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->284858
/*284788*/                    OPC_RecordMemRef,
/*284789*/                    OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*284790*/                    OPC_CheckFoldableChainNode,
/*284791*/                    OPC_RecordChild1, // #3 = $src2
/*284792*/                    OPC_Scope, 31, /*->284825*/ // 2 children in Scope
/*284794*/                      OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*284796*/                      OPC_MoveParent,
/*284797*/                      OPC_CheckType, MVT::v8i32,
/*284799*/                      OPC_MoveParent,
/*284800*/                      OPC_MoveParent,
/*284801*/                      OPC_MoveChild2,
/*284802*/                      OPC_CheckImmAllZerosV,
/*284803*/                      OPC_MoveParent,
/*284804*/                      OPC_CheckType, MVT::v8f32,
/*284806*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*284808*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*284811*/                      OPC_EmitMergeInputChains1_2,
/*284812*/                      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:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>)), immAllZerosV:{ *:[v8f32] }) - Complexity = 35
                                // Dst: (VPORDZ256rmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*284825*/                    /*Scope*/ 31, /*->284857*/
/*284826*/                      OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*284828*/                      OPC_MoveParent,
/*284829*/                      OPC_CheckType, MVT::v8i64,
/*284831*/                      OPC_MoveParent,
/*284832*/                      OPC_MoveParent,
/*284833*/                      OPC_MoveChild2,
/*284834*/                      OPC_CheckImmAllZerosV,
/*284835*/                      OPC_MoveParent,
/*284836*/                      OPC_CheckType, MVT::v8f64,
/*284838*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*284840*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*284843*/                      OPC_EmitMergeInputChains1_2,
/*284844*/                      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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>)), immAllZerosV:{ *:[v8f64] }) - Complexity = 35
                                // Dst: (VPORQZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*284857*/                    0, /*End of Scope*/
/*284858*/                  0, // EndSwitchOpcode
/*284859*/                /*Scope*/ 62|128,2/*318*/, /*->285179*/
/*284861*/                  OPC_MoveChild0,
/*284862*/                  OPC_SwitchOpcode /*2 cases */, 108|128,1/*236*/, TARGET_VAL(ISD::LOAD),// ->285103
/*284867*/                    OPC_RecordMemRef,
/*284868*/                    OPC_RecordNode, // #1 = 'ld' chained node
/*284869*/                    OPC_CheckFoldableChainNode,
/*284870*/                    OPC_RecordChild1, // #2 = $src2
/*284871*/                    OPC_CheckPredicate, 4, // Predicate_unindexedload
/*284873*/                    OPC_CheckPredicate, 9, // Predicate_load
/*284875*/                    OPC_MoveParent,
/*284876*/                    OPC_RecordChild1, // #3 = $src1
/*284877*/                    OPC_SwitchType /*8 cases */, 26, MVT::v4i64,// ->284906
/*284880*/                      OPC_MoveParent,
/*284881*/                      OPC_MoveParent,
/*284882*/                      OPC_MoveChild2,
/*284883*/                      OPC_CheckImmAllZerosV,
/*284884*/                      OPC_MoveParent,
/*284885*/                      OPC_CheckType, MVT::v8f32,
/*284887*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*284889*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*284892*/                      OPC_EmitMergeInputChains1_1,
/*284893*/                      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)), immAllZerosV:{ *:[v8f32] }) - Complexity = 35
                                // Dst: (VPORDZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*284906*/                    /*SwitchType*/ 26, MVT::v8i32,// ->284934
/*284908*/                      OPC_MoveParent,
/*284909*/                      OPC_MoveParent,
/*284910*/                      OPC_MoveChild2,
/*284911*/                      OPC_CheckImmAllZerosV,
/*284912*/                      OPC_MoveParent,
/*284913*/                      OPC_CheckType, MVT::v8f32,
/*284915*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*284917*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*284920*/                      OPC_EmitMergeInputChains1_1,
/*284921*/                      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:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8i32] }:$src1)), immAllZerosV:{ *:[v8f32] }) - Complexity = 35
                                // Dst: (VPORDZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*284934*/                    /*SwitchType*/ 26, MVT::v16i16,// ->284962
/*284936*/                      OPC_MoveParent,
/*284937*/                      OPC_MoveParent,
/*284938*/                      OPC_MoveChild2,
/*284939*/                      OPC_CheckImmAllZerosV,
/*284940*/                      OPC_MoveParent,
/*284941*/                      OPC_CheckType, MVT::v8f32,
/*284943*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*284945*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*284948*/                      OPC_EmitMergeInputChains1_1,
/*284949*/                      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:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1)), immAllZerosV:{ *:[v8f32] }) - Complexity = 35
                                // Dst: (VPORDZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*284962*/                    /*SwitchType*/ 26, MVT::v32i8,// ->284990
/*284964*/                      OPC_MoveParent,
/*284965*/                      OPC_MoveParent,
/*284966*/                      OPC_MoveChild2,
/*284967*/                      OPC_CheckImmAllZerosV,
/*284968*/                      OPC_MoveParent,
/*284969*/                      OPC_CheckType, MVT::v8f32,
/*284971*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*284973*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*284976*/                      OPC_EmitMergeInputChains1_1,
/*284977*/                      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:{ *:[v32i8] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v32i8] }:$src1)), immAllZerosV:{ *:[v8f32] }) - Complexity = 35
                                // Dst: (VPORDZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*284990*/                    /*SwitchType*/ 26, MVT::v8i64,// ->285018
/*284992*/                      OPC_MoveParent,
/*284993*/                      OPC_MoveParent,
/*284994*/                      OPC_MoveChild2,
/*284995*/                      OPC_CheckImmAllZerosV,
/*284996*/                      OPC_MoveParent,
/*284997*/                      OPC_CheckType, MVT::v8f64,
/*284999*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*285001*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*285004*/                      OPC_EmitMergeInputChains1_1,
/*285005*/                      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)), immAllZerosV:{ *:[v8f64] }) - Complexity = 35
                                // Dst: (VPORQZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*285018*/                    /*SwitchType*/ 26, MVT::v16i32,// ->285046
/*285020*/                      OPC_MoveParent,
/*285021*/                      OPC_MoveParent,
/*285022*/                      OPC_MoveChild2,
/*285023*/                      OPC_CheckImmAllZerosV,
/*285024*/                      OPC_MoveParent,
/*285025*/                      OPC_CheckType, MVT::v8f64,
/*285027*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*285029*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*285032*/                      OPC_EmitMergeInputChains1_1,
/*285033*/                      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:{ *:[v16i32] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16i32] }:$src1)), immAllZerosV:{ *:[v8f64] }) - Complexity = 35
                                // Dst: (VPORQZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*285046*/                    /*SwitchType*/ 26, MVT::v32i16,// ->285074
/*285048*/                      OPC_MoveParent,
/*285049*/                      OPC_MoveParent,
/*285050*/                      OPC_MoveChild2,
/*285051*/                      OPC_CheckImmAllZerosV,
/*285052*/                      OPC_MoveParent,
/*285053*/                      OPC_CheckType, MVT::v8f64,
/*285055*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*285057*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*285060*/                      OPC_EmitMergeInputChains1_1,
/*285061*/                      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:{ *:[v32i16] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1)), immAllZerosV:{ *:[v8f64] }) - Complexity = 35
                                // Dst: (VPORQZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*285074*/                    /*SwitchType*/ 26, MVT::v64i8,// ->285102
/*285076*/                      OPC_MoveParent,
/*285077*/                      OPC_MoveParent,
/*285078*/                      OPC_MoveChild2,
/*285079*/                      OPC_CheckImmAllZerosV,
/*285080*/                      OPC_MoveParent,
/*285081*/                      OPC_CheckType, MVT::v8f64,
/*285083*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*285085*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*285088*/                      OPC_EmitMergeInputChains1_1,
/*285089*/                      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:{ *:[v64i8] } (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v64i8] }:$src1)), immAllZerosV:{ *:[v8f64] }) - Complexity = 35
                                // Dst: (VPORQZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*285102*/                    0, // EndSwitchType
/*285103*/                  /*SwitchOpcode*/ 72, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->285178
/*285106*/                    OPC_RecordMemRef,
/*285107*/                    OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*285108*/                    OPC_CheckFoldableChainNode,
/*285109*/                    OPC_RecordChild1, // #2 = $src2
/*285110*/                    OPC_Scope, 32, /*->285144*/ // 2 children in Scope
/*285112*/                      OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*285114*/                      OPC_MoveParent,
/*285115*/                      OPC_RecordChild1, // #3 = $src1
/*285116*/                      OPC_CheckType, MVT::v8i32,
/*285118*/                      OPC_MoveParent,
/*285119*/                      OPC_MoveParent,
/*285120*/                      OPC_MoveChild2,
/*285121*/                      OPC_CheckImmAllZerosV,
/*285122*/                      OPC_MoveParent,
/*285123*/                      OPC_CheckType, MVT::v8f32,
/*285125*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*285127*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*285130*/                      OPC_EmitMergeInputChains1_1,
/*285131*/                      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:{ *:[v8i32] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8i32] }:$src1)), immAllZerosV:{ *:[v8f32] }) - Complexity = 35
                                // Dst: (VPORDZ256rmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*285144*/                    /*Scope*/ 32, /*->285177*/
/*285145*/                      OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*285147*/                      OPC_MoveParent,
/*285148*/                      OPC_RecordChild1, // #3 = $src1
/*285149*/                      OPC_CheckType, MVT::v8i64,
/*285151*/                      OPC_MoveParent,
/*285152*/                      OPC_MoveParent,
/*285153*/                      OPC_MoveChild2,
/*285154*/                      OPC_CheckImmAllZerosV,
/*285155*/                      OPC_MoveParent,
/*285156*/                      OPC_CheckType, MVT::v8f64,
/*285158*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*285160*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*285163*/                      OPC_EmitMergeInputChains1_1,
/*285164*/                      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] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8i64] }:$src1)), immAllZerosV:{ *:[v8f64] }) - Complexity = 35
                                // Dst: (VPORQZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*285177*/                    0, /*End of Scope*/
/*285178*/                  0, // EndSwitchOpcode
/*285179*/                0, /*End of Scope*/
/*285180*/              /*SwitchOpcode*/ 0|128,5/*640*/, TARGET_VAL(ISD::XOR),// ->285824
/*285184*/                OPC_Scope, 60|128,2/*316*/, /*->285503*/ // 2 children in Scope
/*285187*/                  OPC_RecordChild0, // #1 = $src1
/*285188*/                  OPC_MoveChild1,
/*285189*/                  OPC_SwitchOpcode /*2 cases */, 107|128,1/*235*/, TARGET_VAL(ISD::LOAD),// ->285429
/*285194*/                    OPC_RecordMemRef,
/*285195*/                    OPC_RecordNode, // #2 = 'ld' chained node
/*285196*/                    OPC_CheckFoldableChainNode,
/*285197*/                    OPC_RecordChild1, // #3 = $src2
/*285198*/                    OPC_CheckPredicate, 4, // Predicate_unindexedload
/*285200*/                    OPC_CheckPredicate, 9, // Predicate_load
/*285202*/                    OPC_MoveParent,
/*285203*/                    OPC_SwitchType /*8 cases */, 26, MVT::v4i64,// ->285232
/*285206*/                      OPC_MoveParent,
/*285207*/                      OPC_MoveParent,
/*285208*/                      OPC_MoveChild2,
/*285209*/                      OPC_CheckImmAllZerosV,
/*285210*/                      OPC_MoveParent,
/*285211*/                      OPC_CheckType, MVT::v8f32,
/*285213*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*285215*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*285218*/                      OPC_EmitMergeInputChains1_2,
/*285219*/                      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>>)), immAllZerosV:{ *:[v8f32] }) - Complexity = 35
                                // Dst: (VPXORDZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*285232*/                    /*SwitchType*/ 26, MVT::v8i32,// ->285260
/*285234*/                      OPC_MoveParent,
/*285235*/                      OPC_MoveParent,
/*285236*/                      OPC_MoveChild2,
/*285237*/                      OPC_CheckImmAllZerosV,
/*285238*/                      OPC_MoveParent,
/*285239*/                      OPC_CheckType, MVT::v8f32,
/*285241*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*285243*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*285246*/                      OPC_EmitMergeInputChains1_2,
/*285247*/                      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:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v8f32] }) - Complexity = 35
                                // Dst: (VPXORDZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*285260*/                    /*SwitchType*/ 26, MVT::v16i16,// ->285288
/*285262*/                      OPC_MoveParent,
/*285263*/                      OPC_MoveParent,
/*285264*/                      OPC_MoveChild2,
/*285265*/                      OPC_CheckImmAllZerosV,
/*285266*/                      OPC_MoveParent,
/*285267*/                      OPC_CheckType, MVT::v8f32,
/*285269*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*285271*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*285274*/                      OPC_EmitMergeInputChains1_2,
/*285275*/                      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:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v8f32] }) - Complexity = 35
                                // Dst: (VPXORDZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*285288*/                    /*SwitchType*/ 26, MVT::v32i8,// ->285316
/*285290*/                      OPC_MoveParent,
/*285291*/                      OPC_MoveParent,
/*285292*/                      OPC_MoveChild2,
/*285293*/                      OPC_CheckImmAllZerosV,
/*285294*/                      OPC_MoveParent,
/*285295*/                      OPC_CheckType, MVT::v8f32,
/*285297*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*285299*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*285302*/                      OPC_EmitMergeInputChains1_2,
/*285303*/                      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:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v8f32] }) - Complexity = 35
                                // Dst: (VPXORDZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*285316*/                    /*SwitchType*/ 26, MVT::v8i64,// ->285344
/*285318*/                      OPC_MoveParent,
/*285319*/                      OPC_MoveParent,
/*285320*/                      OPC_MoveChild2,
/*285321*/                      OPC_CheckImmAllZerosV,
/*285322*/                      OPC_MoveParent,
/*285323*/                      OPC_CheckType, MVT::v8f64,
/*285325*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*285327*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*285330*/                      OPC_EmitMergeInputChains1_2,
/*285331*/                      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>>)), immAllZerosV:{ *:[v8f64] }) - Complexity = 35
                                // Dst: (VPXORQZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*285344*/                    /*SwitchType*/ 26, MVT::v16i32,// ->285372
/*285346*/                      OPC_MoveParent,
/*285347*/                      OPC_MoveParent,
/*285348*/                      OPC_MoveChild2,
/*285349*/                      OPC_CheckImmAllZerosV,
/*285350*/                      OPC_MoveParent,
/*285351*/                      OPC_CheckType, MVT::v8f64,
/*285353*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*285355*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*285358*/                      OPC_EmitMergeInputChains1_2,
/*285359*/                      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:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v8f64] }) - Complexity = 35
                                // Dst: (VPXORQZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*285372*/                    /*SwitchType*/ 26, MVT::v32i16,// ->285400
/*285374*/                      OPC_MoveParent,
/*285375*/                      OPC_MoveParent,
/*285376*/                      OPC_MoveChild2,
/*285377*/                      OPC_CheckImmAllZerosV,
/*285378*/                      OPC_MoveParent,
/*285379*/                      OPC_CheckType, MVT::v8f64,
/*285381*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*285383*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*285386*/                      OPC_EmitMergeInputChains1_2,
/*285387*/                      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:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v8f64] }) - Complexity = 35
                                // Dst: (VPXORQZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*285400*/                    /*SwitchType*/ 26, MVT::v64i8,// ->285428
/*285402*/                      OPC_MoveParent,
/*285403*/                      OPC_MoveParent,
/*285404*/                      OPC_MoveChild2,
/*285405*/                      OPC_CheckImmAllZerosV,
/*285406*/                      OPC_MoveParent,
/*285407*/                      OPC_CheckType, MVT::v8f64,
/*285409*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*285411*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*285414*/                      OPC_EmitMergeInputChains1_2,
/*285415*/                      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:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v8f64] }) - Complexity = 35
                                // Dst: (VPXORQZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*285428*/                    0, // EndSwitchType
/*285429*/                  /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->285502
/*285432*/                    OPC_RecordMemRef,
/*285433*/                    OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*285434*/                    OPC_CheckFoldableChainNode,
/*285435*/                    OPC_RecordChild1, // #3 = $src2
/*285436*/                    OPC_Scope, 31, /*->285469*/ // 2 children in Scope
/*285438*/                      OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*285440*/                      OPC_MoveParent,
/*285441*/                      OPC_CheckType, MVT::v8i32,
/*285443*/                      OPC_MoveParent,
/*285444*/                      OPC_MoveParent,
/*285445*/                      OPC_MoveChild2,
/*285446*/                      OPC_CheckImmAllZerosV,
/*285447*/                      OPC_MoveParent,
/*285448*/                      OPC_CheckType, MVT::v8f32,
/*285450*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*285452*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*285455*/                      OPC_EmitMergeInputChains1_2,
/*285456*/                      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:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>)), immAllZerosV:{ *:[v8f32] }) - Complexity = 35
                                // Dst: (VPXORDZ256rmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*285469*/                    /*Scope*/ 31, /*->285501*/
/*285470*/                      OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*285472*/                      OPC_MoveParent,
/*285473*/                      OPC_CheckType, MVT::v8i64,
/*285475*/                      OPC_MoveParent,
/*285476*/                      OPC_MoveParent,
/*285477*/                      OPC_MoveChild2,
/*285478*/                      OPC_CheckImmAllZerosV,
/*285479*/                      OPC_MoveParent,
/*285480*/                      OPC_CheckType, MVT::v8f64,
/*285482*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*285484*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*285487*/                      OPC_EmitMergeInputChains1_2,
/*285488*/                      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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>)), immAllZerosV:{ *:[v8f64] }) - Complexity = 35
                                // Dst: (VPXORQZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*285501*/                    0, /*End of Scope*/
/*285502*/                  0, // EndSwitchOpcode
/*285503*/                /*Scope*/ 62|128,2/*318*/, /*->285823*/
/*285505*/                  OPC_MoveChild0,
/*285506*/                  OPC_SwitchOpcode /*2 cases */, 108|128,1/*236*/, TARGET_VAL(ISD::LOAD),// ->285747
/*285511*/                    OPC_RecordMemRef,
/*285512*/                    OPC_RecordNode, // #1 = 'ld' chained node
/*285513*/                    OPC_CheckFoldableChainNode,
/*285514*/                    OPC_RecordChild1, // #2 = $src2
/*285515*/                    OPC_CheckPredicate, 4, // Predicate_unindexedload
/*285517*/                    OPC_CheckPredicate, 9, // Predicate_load
/*285519*/                    OPC_MoveParent,
/*285520*/                    OPC_RecordChild1, // #3 = $src1
/*285521*/                    OPC_SwitchType /*8 cases */, 26, MVT::v4i64,// ->285550
/*285524*/                      OPC_MoveParent,
/*285525*/                      OPC_MoveParent,
/*285526*/                      OPC_MoveChild2,
/*285527*/                      OPC_CheckImmAllZerosV,
/*285528*/                      OPC_MoveParent,
/*285529*/                      OPC_CheckType, MVT::v8f32,
/*285531*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*285533*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*285536*/                      OPC_EmitMergeInputChains1_1,
/*285537*/                      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)), immAllZerosV:{ *:[v8f32] }) - Complexity = 35
                                // Dst: (VPXORDZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*285550*/                    /*SwitchType*/ 26, MVT::v8i32,// ->285578
/*285552*/                      OPC_MoveParent,
/*285553*/                      OPC_MoveParent,
/*285554*/                      OPC_MoveChild2,
/*285555*/                      OPC_CheckImmAllZerosV,
/*285556*/                      OPC_MoveParent,
/*285557*/                      OPC_CheckType, MVT::v8f32,
/*285559*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*285561*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*285564*/                      OPC_EmitMergeInputChains1_1,
/*285565*/                      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:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8i32] }:$src1)), immAllZerosV:{ *:[v8f32] }) - Complexity = 35
                                // Dst: (VPXORDZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*285578*/                    /*SwitchType*/ 26, MVT::v16i16,// ->285606
/*285580*/                      OPC_MoveParent,
/*285581*/                      OPC_MoveParent,
/*285582*/                      OPC_MoveChild2,
/*285583*/                      OPC_CheckImmAllZerosV,
/*285584*/                      OPC_MoveParent,
/*285585*/                      OPC_CheckType, MVT::v8f32,
/*285587*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*285589*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*285592*/                      OPC_EmitMergeInputChains1_1,
/*285593*/                      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:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1)), immAllZerosV:{ *:[v8f32] }) - Complexity = 35
                                // Dst: (VPXORDZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*285606*/                    /*SwitchType*/ 26, MVT::v32i8,// ->285634
/*285608*/                      OPC_MoveParent,
/*285609*/                      OPC_MoveParent,
/*285610*/                      OPC_MoveChild2,
/*285611*/                      OPC_CheckImmAllZerosV,
/*285612*/                      OPC_MoveParent,
/*285613*/                      OPC_CheckType, MVT::v8f32,
/*285615*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*285617*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*285620*/                      OPC_EmitMergeInputChains1_1,
/*285621*/                      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:{ *:[v32i8] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v32i8] }:$src1)), immAllZerosV:{ *:[v8f32] }) - Complexity = 35
                                // Dst: (VPXORDZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*285634*/                    /*SwitchType*/ 26, MVT::v8i64,// ->285662
/*285636*/                      OPC_MoveParent,
/*285637*/                      OPC_MoveParent,
/*285638*/                      OPC_MoveChild2,
/*285639*/                      OPC_CheckImmAllZerosV,
/*285640*/                      OPC_MoveParent,
/*285641*/                      OPC_CheckType, MVT::v8f64,
/*285643*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*285645*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*285648*/                      OPC_EmitMergeInputChains1_1,
/*285649*/                      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)), immAllZerosV:{ *:[v8f64] }) - Complexity = 35
                                // Dst: (VPXORQZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*285662*/                    /*SwitchType*/ 26, MVT::v16i32,// ->285690
/*285664*/                      OPC_MoveParent,
/*285665*/                      OPC_MoveParent,
/*285666*/                      OPC_MoveChild2,
/*285667*/                      OPC_CheckImmAllZerosV,
/*285668*/                      OPC_MoveParent,
/*285669*/                      OPC_CheckType, MVT::v8f64,
/*285671*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*285673*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*285676*/                      OPC_EmitMergeInputChains1_1,
/*285677*/                      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:{ *:[v16i32] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16i32] }:$src1)), immAllZerosV:{ *:[v8f64] }) - Complexity = 35
                                // Dst: (VPXORQZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*285690*/                    /*SwitchType*/ 26, MVT::v32i16,// ->285718
/*285692*/                      OPC_MoveParent,
/*285693*/                      OPC_MoveParent,
/*285694*/                      OPC_MoveChild2,
/*285695*/                      OPC_CheckImmAllZerosV,
/*285696*/                      OPC_MoveParent,
/*285697*/                      OPC_CheckType, MVT::v8f64,
/*285699*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*285701*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*285704*/                      OPC_EmitMergeInputChains1_1,
/*285705*/                      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:{ *:[v32i16] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1)), immAllZerosV:{ *:[v8f64] }) - Complexity = 35
                                // Dst: (VPXORQZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*285718*/                    /*SwitchType*/ 26, MVT::v64i8,// ->285746
/*285720*/                      OPC_MoveParent,
/*285721*/                      OPC_MoveParent,
/*285722*/                      OPC_MoveChild2,
/*285723*/                      OPC_CheckImmAllZerosV,
/*285724*/                      OPC_MoveParent,
/*285725*/                      OPC_CheckType, MVT::v8f64,
/*285727*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*285729*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*285732*/                      OPC_EmitMergeInputChains1_1,
/*285733*/                      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:{ *:[v64i8] } (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v64i8] }:$src1)), immAllZerosV:{ *:[v8f64] }) - Complexity = 35
                                // Dst: (VPXORQZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*285746*/                    0, // EndSwitchType
/*285747*/                  /*SwitchOpcode*/ 72, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->285822
/*285750*/                    OPC_RecordMemRef,
/*285751*/                    OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*285752*/                    OPC_CheckFoldableChainNode,
/*285753*/                    OPC_RecordChild1, // #2 = $src2
/*285754*/                    OPC_Scope, 32, /*->285788*/ // 2 children in Scope
/*285756*/                      OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*285758*/                      OPC_MoveParent,
/*285759*/                      OPC_RecordChild1, // #3 = $src1
/*285760*/                      OPC_CheckType, MVT::v8i32,
/*285762*/                      OPC_MoveParent,
/*285763*/                      OPC_MoveParent,
/*285764*/                      OPC_MoveChild2,
/*285765*/                      OPC_CheckImmAllZerosV,
/*285766*/                      OPC_MoveParent,
/*285767*/                      OPC_CheckType, MVT::v8f32,
/*285769*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*285771*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*285774*/                      OPC_EmitMergeInputChains1_1,
/*285775*/                      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:{ *:[v8i32] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8i32] }:$src1)), immAllZerosV:{ *:[v8f32] }) - Complexity = 35
                                // Dst: (VPXORDZ256rmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*285788*/                    /*Scope*/ 32, /*->285821*/
/*285789*/                      OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*285791*/                      OPC_MoveParent,
/*285792*/                      OPC_RecordChild1, // #3 = $src1
/*285793*/                      OPC_CheckType, MVT::v8i64,
/*285795*/                      OPC_MoveParent,
/*285796*/                      OPC_MoveParent,
/*285797*/                      OPC_MoveChild2,
/*285798*/                      OPC_CheckImmAllZerosV,
/*285799*/                      OPC_MoveParent,
/*285800*/                      OPC_CheckType, MVT::v8f64,
/*285802*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*285804*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*285807*/                      OPC_EmitMergeInputChains1_1,
/*285808*/                      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] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8i64] }:$src1)), immAllZerosV:{ *:[v8f64] }) - Complexity = 35
                                // Dst: (VPXORQZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*285821*/                    0, /*End of Scope*/
/*285822*/                  0, // EndSwitchOpcode
/*285823*/                0, /*End of Scope*/
/*285824*/              /*SwitchOpcode*/ 60|128,2/*316*/, TARGET_VAL(X86ISD::ANDNP),// ->286144
/*285828*/                OPC_RecordChild0, // #1 = $src1
/*285829*/                OPC_MoveChild1,
/*285830*/                OPC_SwitchOpcode /*2 cases */, 107|128,1/*235*/, TARGET_VAL(ISD::LOAD),// ->286070
/*285835*/                  OPC_RecordMemRef,
/*285836*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*285837*/                  OPC_CheckFoldableChainNode,
/*285838*/                  OPC_RecordChild1, // #3 = $src2
/*285839*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*285841*/                  OPC_CheckPredicate, 9, // Predicate_load
/*285843*/                  OPC_MoveParent,
/*285844*/                  OPC_SwitchType /*8 cases */, 26, MVT::v4i64,// ->285873
/*285847*/                    OPC_MoveParent,
/*285848*/                    OPC_MoveParent,
/*285849*/                    OPC_MoveChild2,
/*285850*/                    OPC_CheckImmAllZerosV,
/*285851*/                    OPC_MoveParent,
/*285852*/                    OPC_CheckType, MVT::v8f32,
/*285854*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*285856*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*285859*/                    OPC_EmitMergeInputChains1_2,
/*285860*/                    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>>)), immAllZerosV:{ *:[v8f32] }) - Complexity = 35
                              // Dst: (VPANDNDZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*285873*/                  /*SwitchType*/ 26, MVT::v8i32,// ->285901
/*285875*/                    OPC_MoveParent,
/*285876*/                    OPC_MoveParent,
/*285877*/                    OPC_MoveChild2,
/*285878*/                    OPC_CheckImmAllZerosV,
/*285879*/                    OPC_MoveParent,
/*285880*/                    OPC_CheckType, MVT::v8f32,
/*285882*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*285884*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*285887*/                    OPC_EmitMergeInputChains1_2,
/*285888*/                    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:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v8f32] }) - Complexity = 35
                              // Dst: (VPANDNDZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*285901*/                  /*SwitchType*/ 26, MVT::v16i16,// ->285929
/*285903*/                    OPC_MoveParent,
/*285904*/                    OPC_MoveParent,
/*285905*/                    OPC_MoveChild2,
/*285906*/                    OPC_CheckImmAllZerosV,
/*285907*/                    OPC_MoveParent,
/*285908*/                    OPC_CheckType, MVT::v8f32,
/*285910*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*285912*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*285915*/                    OPC_EmitMergeInputChains1_2,
/*285916*/                    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:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v8f32] }) - Complexity = 35
                              // Dst: (VPANDNDZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*285929*/                  /*SwitchType*/ 26, MVT::v32i8,// ->285957
/*285931*/                    OPC_MoveParent,
/*285932*/                    OPC_MoveParent,
/*285933*/                    OPC_MoveChild2,
/*285934*/                    OPC_CheckImmAllZerosV,
/*285935*/                    OPC_MoveParent,
/*285936*/                    OPC_CheckType, MVT::v8f32,
/*285938*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*285940*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*285943*/                    OPC_EmitMergeInputChains1_2,
/*285944*/                    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:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v8f32] }) - Complexity = 35
                              // Dst: (VPANDNDZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*285957*/                  /*SwitchType*/ 26, MVT::v8i64,// ->285985
/*285959*/                    OPC_MoveParent,
/*285960*/                    OPC_MoveParent,
/*285961*/                    OPC_MoveChild2,
/*285962*/                    OPC_CheckImmAllZerosV,
/*285963*/                    OPC_MoveParent,
/*285964*/                    OPC_CheckType, MVT::v8f64,
/*285966*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*285968*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*285971*/                    OPC_EmitMergeInputChains1_2,
/*285972*/                    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>>)), immAllZerosV:{ *:[v8f64] }) - Complexity = 35
                              // Dst: (VPANDNQZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*285985*/                  /*SwitchType*/ 26, MVT::v16i32,// ->286013
/*285987*/                    OPC_MoveParent,
/*285988*/                    OPC_MoveParent,
/*285989*/                    OPC_MoveChild2,
/*285990*/                    OPC_CheckImmAllZerosV,
/*285991*/                    OPC_MoveParent,
/*285992*/                    OPC_CheckType, MVT::v8f64,
/*285994*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*285996*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*285999*/                    OPC_EmitMergeInputChains1_2,
/*286000*/                    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:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v8f64] }) - Complexity = 35
                              // Dst: (VPANDNQZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*286013*/                  /*SwitchType*/ 26, MVT::v32i16,// ->286041
/*286015*/                    OPC_MoveParent,
/*286016*/                    OPC_MoveParent,
/*286017*/                    OPC_MoveChild2,
/*286018*/                    OPC_CheckImmAllZerosV,
/*286019*/                    OPC_MoveParent,
/*286020*/                    OPC_CheckType, MVT::v8f64,
/*286022*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*286024*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*286027*/                    OPC_EmitMergeInputChains1_2,
/*286028*/                    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:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v8f64] }) - Complexity = 35
                              // Dst: (VPANDNQZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*286041*/                  /*SwitchType*/ 26, MVT::v64i8,// ->286069
/*286043*/                    OPC_MoveParent,
/*286044*/                    OPC_MoveParent,
/*286045*/                    OPC_MoveChild2,
/*286046*/                    OPC_CheckImmAllZerosV,
/*286047*/                    OPC_MoveParent,
/*286048*/                    OPC_CheckType, MVT::v8f64,
/*286050*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*286052*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*286055*/                    OPC_EmitMergeInputChains1_2,
/*286056*/                    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:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v8f64] }) - Complexity = 35
                              // Dst: (VPANDNQZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*286069*/                  0, // EndSwitchType
/*286070*/                /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->286143
/*286073*/                  OPC_RecordMemRef,
/*286074*/                  OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*286075*/                  OPC_CheckFoldableChainNode,
/*286076*/                  OPC_RecordChild1, // #3 = $src2
/*286077*/                  OPC_Scope, 31, /*->286110*/ // 2 children in Scope
/*286079*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*286081*/                    OPC_MoveParent,
/*286082*/                    OPC_CheckType, MVT::v8i32,
/*286084*/                    OPC_MoveParent,
/*286085*/                    OPC_MoveParent,
/*286086*/                    OPC_MoveChild2,
/*286087*/                    OPC_CheckImmAllZerosV,
/*286088*/                    OPC_MoveParent,
/*286089*/                    OPC_CheckType, MVT::v8f32,
/*286091*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*286093*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*286096*/                    OPC_EmitMergeInputChains1_2,
/*286097*/                    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:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>)), immAllZerosV:{ *:[v8f32] }) - Complexity = 35
                              // Dst: (VPANDNDZ256rmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*286110*/                  /*Scope*/ 31, /*->286142*/
/*286111*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*286113*/                    OPC_MoveParent,
/*286114*/                    OPC_CheckType, MVT::v8i64,
/*286116*/                    OPC_MoveParent,
/*286117*/                    OPC_MoveParent,
/*286118*/                    OPC_MoveChild2,
/*286119*/                    OPC_CheckImmAllZerosV,
/*286120*/                    OPC_MoveParent,
/*286121*/                    OPC_CheckType, MVT::v8f64,
/*286123*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*286125*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*286128*/                    OPC_EmitMergeInputChains1_2,
/*286129*/                    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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>)), immAllZerosV:{ *:[v8f64] }) - Complexity = 35
                              // Dst: (VPANDNQZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*286142*/                  0, /*End of Scope*/
/*286143*/                0, // EndSwitchOpcode
/*286144*/              0, // EndSwitchOpcode
/*286145*/            /*Scope*/ 22|128,1/*150*/, /*->286297*/
/*286147*/              OPC_RecordChild0, // #1 = $ins
/*286148*/              OPC_MoveChild0,
/*286149*/              OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*286152*/              OPC_RecordChild0, // #2 = $src1
/*286153*/              OPC_MoveChild1,
/*286154*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*286157*/              OPC_RecordMemRef,
/*286158*/              OPC_RecordNode, // #3 = 'ld' chained node
/*286159*/              OPC_CheckFoldableChainNode,
/*286160*/              OPC_RecordChild1, // #4 = $src2
/*286161*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*286163*/              OPC_CheckPredicate, 9, // Predicate_load
/*286165*/              OPC_Scope, 41, /*->286208*/ // 3 children in Scope
/*286167*/                OPC_MoveParent,
/*286168*/                OPC_MoveChild2,
/*286169*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*286172*/                OPC_CheckType, MVT::iPTR,
/*286174*/                OPC_MoveParent,
/*286175*/                OPC_CheckType, MVT::v4f64,
/*286177*/                OPC_MoveParent,
/*286178*/                OPC_MoveParent,
/*286179*/                OPC_RecordChild2, // #5 = $src0
/*286180*/                OPC_CheckType, MVT::v8f32,
/*286182*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*286184*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*286187*/                OPC_EmitMergeInputChains, 1, 3, 
/*286190*/                OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*286193*/                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>>, (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))
/*286208*/              /*Scope*/ 43, /*->286252*/
/*286209*/                OPC_CheckType, MVT::v4f32,
/*286211*/                OPC_MoveParent,
/*286212*/                OPC_MoveChild2,
/*286213*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*286216*/                OPC_CheckType, MVT::iPTR,
/*286218*/                OPC_MoveParent,
/*286219*/                OPC_CheckType, MVT::v16f32,
/*286221*/                OPC_MoveParent,
/*286222*/                OPC_MoveParent,
/*286223*/                OPC_RecordChild2, // #5 = $src0
/*286224*/                OPC_CheckType, MVT::v8f64,
/*286226*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*286228*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*286231*/                OPC_EmitMergeInputChains, 1, 3, 
/*286234*/                OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*286237*/                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>>, (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))
/*286252*/              /*Scope*/ 43, /*->286296*/
/*286253*/                OPC_CheckType, MVT::v8f32,
/*286255*/                OPC_MoveParent,
/*286256*/                OPC_MoveChild2,
/*286257*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*286260*/                OPC_CheckType, MVT::iPTR,
/*286262*/                OPC_MoveParent,
/*286263*/                OPC_CheckType, MVT::v16f32,
/*286265*/                OPC_MoveParent,
/*286266*/                OPC_MoveParent,
/*286267*/                OPC_RecordChild2, // #5 = $src0
/*286268*/                OPC_CheckType, MVT::v8f64,
/*286270*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*286272*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*286275*/                OPC_EmitMergeInputChains, 1, 3, 
/*286278*/                OPC_EmitNodeXForm, 16, 1, // INSERT_get_vinsert256_imm
/*286281*/                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>>, (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))
/*286296*/              0, /*End of Scope*/
/*286297*/            /*Scope*/ 8|128,1/*136*/, /*->286435*/
/*286299*/              OPC_MoveChild0,
/*286300*/              OPC_SwitchOpcode /*2 cases */, 94, TARGET_VAL(X86ISD::SHUF128),// ->286398
/*286304*/                OPC_RecordChild0, // #1 = $src1
/*286305*/                OPC_MoveChild1,
/*286306*/                OPC_SwitchOpcode /*2 cases */, 43, TARGET_VAL(ISD::LOAD),// ->286353
/*286310*/                  OPC_RecordMemRef,
/*286311*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*286312*/                  OPC_CheckFoldableChainNode,
/*286313*/                  OPC_RecordChild1, // #3 = $src2
/*286314*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*286316*/                  OPC_CheckPredicate, 9, // Predicate_load
/*286318*/                  OPC_MoveParent,
/*286319*/                  OPC_RecordChild2, // #4 = $src3
/*286320*/                  OPC_MoveChild2,
/*286321*/                  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*286324*/                  OPC_MoveParent,
/*286325*/                  OPC_CheckType, MVT::v4f64,
/*286327*/                  OPC_MoveParent,
/*286328*/                  OPC_MoveParent,
/*286329*/                  OPC_RecordChild2, // #5 = $src0
/*286330*/                  OPC_CheckType, MVT::v8f32,
/*286332*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*286334*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*286337*/                  OPC_EmitMergeInputChains1_2,
/*286338*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF32X4Z256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (X86Shuf128:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 34
                            // Dst: (VSHUFF32X4Z256rmik:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*286353*/                /*SwitchOpcode*/ 41, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->286397
/*286356*/                  OPC_RecordMemRef,
/*286357*/                  OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*286358*/                  OPC_CheckFoldableChainNode,
/*286359*/                  OPC_RecordChild1, // #3 = $src2
/*286360*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*286362*/                  OPC_MoveParent,
/*286363*/                  OPC_RecordChild2, // #4 = $src3
/*286364*/                  OPC_MoveChild2,
/*286365*/                  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*286368*/                  OPC_MoveParent,
/*286369*/                  OPC_CheckType, MVT::v4f64,
/*286371*/                  OPC_MoveParent,
/*286372*/                  OPC_MoveParent,
/*286373*/                  OPC_RecordChild2, // #5 = $src0
/*286374*/                  OPC_CheckType, MVT::v8f32,
/*286376*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*286378*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*286381*/                  OPC_EmitMergeInputChains1_2,
/*286382*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF32X4Z256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (X86Shuf128:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src3)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 34
                            // Dst: (VSHUFF32X4Z256rmbik:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*286397*/                0, // EndSwitchOpcode
/*286398*/              /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->286434
/*286401*/                OPC_RecordMemRef,
/*286402*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*286403*/                OPC_CheckFoldableChainNode,
/*286404*/                OPC_RecordChild1, // #2 = $src
/*286405*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*286407*/                OPC_CheckType, MVT::v4f64,
/*286409*/                OPC_MoveParent,
/*286410*/                OPC_MoveParent,
/*286411*/                OPC_MoveChild2,
/*286412*/                OPC_CheckImmAllZerosV,
/*286413*/                OPC_MoveParent,
/*286414*/                OPC_CheckType, MVT::v8f32,
/*286416*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*286418*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*286421*/                OPC_EmitMergeInputChains1_1,
/*286422*/                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] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                          // Dst: (VBROADCASTF32X2Z256mkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*286434*/              0, // EndSwitchOpcode
/*286435*/            0, /*End of Scope*/
/*286436*/          /*SwitchOpcode*/ 87, TARGET_VAL(X86ISD::VPERMI),// ->286526
/*286439*/            OPC_MoveChild0,
/*286440*/            OPC_SwitchOpcode /*2 cases */, 40, TARGET_VAL(ISD::LOAD),// ->286484
/*286444*/              OPC_RecordMemRef,
/*286445*/              OPC_RecordNode, // #1 = 'ld' chained node
/*286446*/              OPC_CheckFoldableChainNode,
/*286447*/              OPC_RecordChild1, // #2 = $src1
/*286448*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*286450*/              OPC_CheckPredicate, 9, // Predicate_load
/*286452*/              OPC_MoveParent,
/*286453*/              OPC_RecordChild1, // #3 = $src2
/*286454*/              OPC_MoveChild1,
/*286455*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*286458*/              OPC_MoveParent,
/*286459*/              OPC_MoveParent,
/*286460*/              OPC_MoveChild2,
/*286461*/              OPC_CheckImmAllZerosV,
/*286462*/              OPC_MoveParent,
/*286463*/              OPC_CheckType, MVT::v8f64,
/*286465*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*286467*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*286470*/              OPC_EmitMergeInputChains1_1,
/*286471*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPDZmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermi:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v8f64] }) - Complexity = 35
                        // Dst: (VPERMPDZmikz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*286484*/            /*SwitchOpcode*/ 38, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->286525
/*286487*/              OPC_RecordMemRef,
/*286488*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*286489*/              OPC_CheckFoldableChainNode,
/*286490*/              OPC_RecordChild1, // #2 = $src1
/*286491*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*286493*/              OPC_MoveParent,
/*286494*/              OPC_RecordChild1, // #3 = $src2
/*286495*/              OPC_MoveChild1,
/*286496*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*286499*/              OPC_MoveParent,
/*286500*/              OPC_MoveParent,
/*286501*/              OPC_MoveChild2,
/*286502*/              OPC_CheckImmAllZerosV,
/*286503*/              OPC_MoveParent,
/*286504*/              OPC_CheckType, MVT::v8f64,
/*286506*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*286508*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*286511*/              OPC_EmitMergeInputChains1_1,
/*286512*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPDZmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermi:{ *:[v8f64] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v8f64] }) - Complexity = 35
                        // Dst: (VPERMPDZmbikz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*286525*/            0, // EndSwitchOpcode
/*286526*/          /*SwitchOpcode*/ 20|128,1/*148*/, TARGET_VAL(X86ISD::VPERMILPI),// ->286678
/*286530*/            OPC_MoveChild0,
/*286531*/            OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->286598
/*286535*/              OPC_RecordMemRef,
/*286536*/              OPC_RecordNode, // #1 = 'ld' chained node
/*286537*/              OPC_CheckFoldableChainNode,
/*286538*/              OPC_RecordChild1, // #2 = $src1
/*286539*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*286541*/              OPC_CheckPredicate, 9, // Predicate_load
/*286543*/              OPC_MoveParent,
/*286544*/              OPC_RecordChild1, // #3 = $src2
/*286545*/              OPC_MoveChild1,
/*286546*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*286549*/              OPC_MoveParent,
/*286550*/              OPC_MoveParent,
/*286551*/              OPC_MoveChild2,
/*286552*/              OPC_CheckImmAllZerosV,
/*286553*/              OPC_MoveParent,
/*286554*/              OPC_SwitchType /*2 cases */, 19, MVT::v8f32,// ->286576
/*286557*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*286559*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*286562*/                OPC_EmitMergeInputChains1_1,
/*286563*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZ256mikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermilpi:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v8f32] }) - Complexity = 35
                          // Dst: (VPERMILPSZ256mikz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*286576*/              /*SwitchType*/ 19, MVT::v8f64,// ->286597
/*286578*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*286580*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*286583*/                OPC_EmitMergeInputChains1_1,
/*286584*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermilpi:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v8f64] }) - Complexity = 35
                          // Dst: (VPERMILPDZmikz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*286597*/              0, // EndSwitchType
/*286598*/            /*SwitchOpcode*/ 76, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->286677
/*286601*/              OPC_RecordMemRef,
/*286602*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*286603*/              OPC_CheckFoldableChainNode,
/*286604*/              OPC_RecordChild1, // #2 = $src1
/*286605*/              OPC_Scope, 34, /*->286641*/ // 2 children in Scope
/*286607*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*286609*/                OPC_MoveParent,
/*286610*/                OPC_RecordChild1, // #3 = $src2
/*286611*/                OPC_MoveChild1,
/*286612*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*286615*/                OPC_MoveParent,
/*286616*/                OPC_MoveParent,
/*286617*/                OPC_MoveChild2,
/*286618*/                OPC_CheckImmAllZerosV,
/*286619*/                OPC_MoveParent,
/*286620*/                OPC_CheckType, MVT::v8f32,
/*286622*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*286624*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*286627*/                OPC_EmitMergeInputChains1_1,
/*286628*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZ256mbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermilpi:{ *:[v8f32] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v8f32] }) - Complexity = 35
                          // Dst: (VPERMILPSZ256mbikz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*286641*/              /*Scope*/ 34, /*->286676*/
/*286642*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*286644*/                OPC_MoveParent,
/*286645*/                OPC_RecordChild1, // #3 = $src2
/*286646*/                OPC_MoveChild1,
/*286647*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*286650*/                OPC_MoveParent,
/*286651*/                OPC_MoveParent,
/*286652*/                OPC_MoveChild2,
/*286653*/                OPC_CheckImmAllZerosV,
/*286654*/                OPC_MoveParent,
/*286655*/                OPC_CheckType, MVT::v8f64,
/*286657*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*286659*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*286662*/                OPC_EmitMergeInputChains1_1,
/*286663*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermilpi:{ *:[v8f64] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v8f64] }) - Complexity = 35
                          // Dst: (VPERMILPDZmbikz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*286676*/              0, /*End of Scope*/
/*286677*/            0, // EndSwitchOpcode
/*286678*/          /*SwitchOpcode*/ 20|128,1/*148*/, TARGET_VAL(X86ISD::VREDUCE),// ->286830
/*286682*/            OPC_MoveChild0,
/*286683*/            OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->286750
/*286687*/              OPC_RecordMemRef,
/*286688*/              OPC_RecordNode, // #1 = 'ld' chained node
/*286689*/              OPC_CheckFoldableChainNode,
/*286690*/              OPC_RecordChild1, // #2 = $src1
/*286691*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*286693*/              OPC_CheckPredicate, 9, // Predicate_load
/*286695*/              OPC_MoveParent,
/*286696*/              OPC_RecordChild1, // #3 = $src2
/*286697*/              OPC_MoveChild1,
/*286698*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*286701*/              OPC_MoveParent,
/*286702*/              OPC_MoveParent,
/*286703*/              OPC_MoveChild2,
/*286704*/              OPC_CheckImmAllZerosV,
/*286705*/              OPC_MoveParent,
/*286706*/              OPC_SwitchType /*2 cases */, 19, MVT::v8f32,// ->286728
/*286709*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*286711*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*286714*/                OPC_EmitMergeInputChains1_1,
/*286715*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPSZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VReduce:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v8f32] }) - Complexity = 35
                          // Dst: (VREDUCEPSZ256rmikz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*286728*/              /*SwitchType*/ 19, MVT::v8f64,// ->286749
/*286730*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*286732*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*286735*/                OPC_EmitMergeInputChains1_1,
/*286736*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPDZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VReduce:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v8f64] }) - Complexity = 35
                          // Dst: (VREDUCEPDZrmikz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*286749*/              0, // EndSwitchType
/*286750*/            /*SwitchOpcode*/ 76, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->286829
/*286753*/              OPC_RecordMemRef,
/*286754*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*286755*/              OPC_CheckFoldableChainNode,
/*286756*/              OPC_RecordChild1, // #2 = $src1
/*286757*/              OPC_Scope, 34, /*->286793*/ // 2 children in Scope
/*286759*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*286761*/                OPC_MoveParent,
/*286762*/                OPC_RecordChild1, // #3 = $src2
/*286763*/                OPC_MoveChild1,
/*286764*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*286767*/                OPC_MoveParent,
/*286768*/                OPC_MoveParent,
/*286769*/                OPC_MoveChild2,
/*286770*/                OPC_CheckImmAllZerosV,
/*286771*/                OPC_MoveParent,
/*286772*/                OPC_CheckType, MVT::v8f32,
/*286774*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*286776*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*286779*/                OPC_EmitMergeInputChains1_1,
/*286780*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPSZ256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VReduce:{ *:[v8f32] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v8f32] }) - Complexity = 35
                          // Dst: (VREDUCEPSZ256rmbikz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*286793*/              /*Scope*/ 34, /*->286828*/
/*286794*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*286796*/                OPC_MoveParent,
/*286797*/                OPC_RecordChild1, // #3 = $src2
/*286798*/                OPC_MoveChild1,
/*286799*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*286802*/                OPC_MoveParent,
/*286803*/                OPC_MoveParent,
/*286804*/                OPC_MoveChild2,
/*286805*/                OPC_CheckImmAllZerosV,
/*286806*/                OPC_MoveParent,
/*286807*/                OPC_CheckType, MVT::v8f64,
/*286809*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*286811*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*286814*/                OPC_EmitMergeInputChains1_1,
/*286815*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPDZrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VReduce:{ *:[v8f64] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v8f64] }) - Complexity = 35
                          // Dst: (VREDUCEPDZrmbikz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*286828*/              0, /*End of Scope*/
/*286829*/            0, // EndSwitchOpcode
/*286830*/          /*SwitchOpcode*/ 34|128,1/*162*/, TARGET_VAL(X86ISD::STRICT_VRNDSCALE),// ->286996
/*286834*/            OPC_RecordNode, // #1 = 'X86strict_VRndScale' chained node
/*286835*/            OPC_CheckFoldableChainNode,
/*286836*/            OPC_MoveChild1,
/*286837*/            OPC_SwitchOpcode /*2 cases */, 69, TARGET_VAL(ISD::LOAD),// ->286910
/*286841*/              OPC_RecordMemRef,
/*286842*/              OPC_RecordNode, // #2 = 'ld' chained node
/*286843*/              OPC_CheckFoldableChainNode,
/*286844*/              OPC_RecordChild1, // #3 = $src1
/*286845*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*286847*/              OPC_CheckPredicate, 9, // Predicate_load
/*286849*/              OPC_MoveParent,
/*286850*/              OPC_RecordChild2, // #4 = $src2
/*286851*/              OPC_MoveChild2,
/*286852*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*286855*/              OPC_MoveParent,
/*286856*/              OPC_MoveParent,
/*286857*/              OPC_MoveChild2,
/*286858*/              OPC_CheckImmAllZerosV,
/*286859*/              OPC_MoveParent,
/*286860*/              OPC_SwitchType /*2 cases */, 22, MVT::v8f32,// ->286885
/*286863*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*286865*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src1 #5 #6 #7 #8 #9
/*286868*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*286872*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 0, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_VRndScale:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v8f32] }) - Complexity = 35
                          // Dst: (VRNDSCALEPSZ256rmikz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*286885*/              /*SwitchType*/ 22, MVT::v8f64,// ->286909
/*286887*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*286889*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src1 #5 #6 #7 #8 #9
/*286892*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*286896*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 0, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_VRndScale:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v8f64] }) - Complexity = 35
                          // Dst: (VRNDSCALEPDZrmikz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*286909*/              0, // EndSwitchType
/*286910*/            /*SwitchOpcode*/ 82, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->286995
/*286913*/              OPC_RecordMemRef,
/*286914*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*286915*/              OPC_CheckFoldableChainNode,
/*286916*/              OPC_RecordChild1, // #3 = $src1
/*286917*/              OPC_Scope, 37, /*->286956*/ // 2 children in Scope
/*286919*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*286921*/                OPC_MoveParent,
/*286922*/                OPC_RecordChild2, // #4 = $src2
/*286923*/                OPC_MoveChild2,
/*286924*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*286927*/                OPC_MoveParent,
/*286928*/                OPC_MoveParent,
/*286929*/                OPC_MoveChild2,
/*286930*/                OPC_CheckImmAllZerosV,
/*286931*/                OPC_MoveParent,
/*286932*/                OPC_CheckType, MVT::v8f32,
/*286934*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*286936*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src1 #5 #6 #7 #8 #9
/*286939*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*286943*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 0, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_VRndScale:{ *:[v8f32] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v8f32] }) - Complexity = 35
                          // Dst: (VRNDSCALEPSZ256rmbikz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*286956*/              /*Scope*/ 37, /*->286994*/
/*286957*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*286959*/                OPC_MoveParent,
/*286960*/                OPC_RecordChild2, // #4 = $src2
/*286961*/                OPC_MoveChild2,
/*286962*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*286965*/                OPC_MoveParent,
/*286966*/                OPC_MoveParent,
/*286967*/                OPC_MoveChild2,
/*286968*/                OPC_CheckImmAllZerosV,
/*286969*/                OPC_MoveParent,
/*286970*/                OPC_CheckType, MVT::v8f64,
/*286972*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*286974*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src1 #5 #6 #7 #8 #9
/*286977*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*286981*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 0, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_VRndScale:{ *:[v8f64] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v8f64] }) - Complexity = 35
                          // Dst: (VRNDSCALEPDZrmbikz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*286994*/              0, /*End of Scope*/
/*286995*/            0, // EndSwitchOpcode
/*286996*/          /*SwitchOpcode*/ 20|128,1/*148*/, TARGET_VAL(X86ISD::VRNDSCALE),// ->287148
/*287000*/            OPC_MoveChild0,
/*287001*/            OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->287068
/*287005*/              OPC_RecordMemRef,
/*287006*/              OPC_RecordNode, // #1 = 'ld' chained node
/*287007*/              OPC_CheckFoldableChainNode,
/*287008*/              OPC_RecordChild1, // #2 = $src1
/*287009*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*287011*/              OPC_CheckPredicate, 9, // Predicate_load
/*287013*/              OPC_MoveParent,
/*287014*/              OPC_RecordChild1, // #3 = $src2
/*287015*/              OPC_MoveChild1,
/*287016*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*287019*/              OPC_MoveParent,
/*287020*/              OPC_MoveParent,
/*287021*/              OPC_MoveChild2,
/*287022*/              OPC_CheckImmAllZerosV,
/*287023*/              OPC_MoveParent,
/*287024*/              OPC_SwitchType /*2 cases */, 19, MVT::v8f32,// ->287046
/*287027*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*287029*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*287032*/                OPC_EmitMergeInputChains1_1,
/*287033*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VRndScale:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v8f32] }) - Complexity = 35
                          // Dst: (VRNDSCALEPSZ256rmikz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*287046*/              /*SwitchType*/ 19, MVT::v8f64,// ->287067
/*287048*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*287050*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*287053*/                OPC_EmitMergeInputChains1_1,
/*287054*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VRndScale:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v8f64] }) - Complexity = 35
                          // Dst: (VRNDSCALEPDZrmikz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*287067*/              0, // EndSwitchType
/*287068*/            /*SwitchOpcode*/ 76, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->287147
/*287071*/              OPC_RecordMemRef,
/*287072*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*287073*/              OPC_CheckFoldableChainNode,
/*287074*/              OPC_RecordChild1, // #2 = $src1
/*287075*/              OPC_Scope, 34, /*->287111*/ // 2 children in Scope
/*287077*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*287079*/                OPC_MoveParent,
/*287080*/                OPC_RecordChild1, // #3 = $src2
/*287081*/                OPC_MoveChild1,
/*287082*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*287085*/                OPC_MoveParent,
/*287086*/                OPC_MoveParent,
/*287087*/                OPC_MoveChild2,
/*287088*/                OPC_CheckImmAllZerosV,
/*287089*/                OPC_MoveParent,
/*287090*/                OPC_CheckType, MVT::v8f32,
/*287092*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*287094*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*287097*/                OPC_EmitMergeInputChains1_1,
/*287098*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VRndScale:{ *:[v8f32] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v8f32] }) - Complexity = 35
                          // Dst: (VRNDSCALEPSZ256rmbikz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*287111*/              /*Scope*/ 34, /*->287146*/
/*287112*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*287114*/                OPC_MoveParent,
/*287115*/                OPC_RecordChild1, // #3 = $src2
/*287116*/                OPC_MoveChild1,
/*287117*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*287120*/                OPC_MoveParent,
/*287121*/                OPC_MoveParent,
/*287122*/                OPC_MoveChild2,
/*287123*/                OPC_CheckImmAllZerosV,
/*287124*/                OPC_MoveParent,
/*287125*/                OPC_CheckType, MVT::v8f64,
/*287127*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*287129*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*287132*/                OPC_EmitMergeInputChains1_1,
/*287133*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VRndScale:{ *:[v8f64] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v8f64] }) - Complexity = 35
                          // Dst: (VRNDSCALEPDZrmbikz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*287146*/              0, /*End of Scope*/
/*287147*/            0, // EndSwitchOpcode
/*287148*/          /*SwitchOpcode*/ 20|128,1/*148*/, TARGET_VAL(X86ISD::VGETMANT),// ->287300
/*287152*/            OPC_MoveChild0,
/*287153*/            OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->287220
/*287157*/              OPC_RecordMemRef,
/*287158*/              OPC_RecordNode, // #1 = 'ld' chained node
/*287159*/              OPC_CheckFoldableChainNode,
/*287160*/              OPC_RecordChild1, // #2 = $src1
/*287161*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*287163*/              OPC_CheckPredicate, 9, // Predicate_load
/*287165*/              OPC_MoveParent,
/*287166*/              OPC_RecordChild1, // #3 = $src2
/*287167*/              OPC_MoveChild1,
/*287168*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*287171*/              OPC_MoveParent,
/*287172*/              OPC_MoveParent,
/*287173*/              OPC_MoveChild2,
/*287174*/              OPC_CheckImmAllZerosV,
/*287175*/              OPC_MoveParent,
/*287176*/              OPC_SwitchType /*2 cases */, 19, MVT::v8f32,// ->287198
/*287179*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*287181*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*287184*/                OPC_EmitMergeInputChains1_1,
/*287185*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPSZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VGetMant:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v8f32] }) - Complexity = 35
                          // Dst: (VGETMANTPSZ256rmikz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*287198*/              /*SwitchType*/ 19, MVT::v8f64,// ->287219
/*287200*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*287202*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*287205*/                OPC_EmitMergeInputChains1_1,
/*287206*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPDZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VGetMant:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v8f64] }) - Complexity = 35
                          // Dst: (VGETMANTPDZrmikz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*287219*/              0, // EndSwitchType
/*287220*/            /*SwitchOpcode*/ 76, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->287299
/*287223*/              OPC_RecordMemRef,
/*287224*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*287225*/              OPC_CheckFoldableChainNode,
/*287226*/              OPC_RecordChild1, // #2 = $src1
/*287227*/              OPC_Scope, 34, /*->287263*/ // 2 children in Scope
/*287229*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*287231*/                OPC_MoveParent,
/*287232*/                OPC_RecordChild1, // #3 = $src2
/*287233*/                OPC_MoveChild1,
/*287234*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*287237*/                OPC_MoveParent,
/*287238*/                OPC_MoveParent,
/*287239*/                OPC_MoveChild2,
/*287240*/                OPC_CheckImmAllZerosV,
/*287241*/                OPC_MoveParent,
/*287242*/                OPC_CheckType, MVT::v8f32,
/*287244*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*287246*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*287249*/                OPC_EmitMergeInputChains1_1,
/*287250*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPSZ256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VGetMant:{ *:[v8f32] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v8f32] }) - Complexity = 35
                          // Dst: (VGETMANTPSZ256rmbikz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*287263*/              /*Scope*/ 34, /*->287298*/
/*287264*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*287266*/                OPC_MoveParent,
/*287267*/                OPC_RecordChild1, // #3 = $src2
/*287268*/                OPC_MoveChild1,
/*287269*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*287272*/                OPC_MoveParent,
/*287273*/                OPC_MoveParent,
/*287274*/                OPC_MoveChild2,
/*287275*/                OPC_CheckImmAllZerosV,
/*287276*/                OPC_MoveParent,
/*287277*/                OPC_CheckType, MVT::v8f64,
/*287279*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*287281*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*287284*/                OPC_EmitMergeInputChains1_1,
/*287285*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPDZrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VGetMant:{ *:[v8f64] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v8f64] }) - Complexity = 35
                          // Dst: (VGETMANTPDZrmbikz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*287298*/              0, /*End of Scope*/
/*287299*/            0, // EndSwitchOpcode
/*287300*/          /*SwitchOpcode*/ 25|128,1/*153*/, TARGET_VAL(X86ISD::VRANGE),// ->287457
/*287304*/            OPC_RecordChild0, // #1 = $src1
/*287305*/            OPC_MoveChild1,
/*287306*/            OPC_SwitchOpcode /*2 cases */, 65, TARGET_VAL(ISD::LOAD),// ->287375
/*287310*/              OPC_RecordMemRef,
/*287311*/              OPC_RecordNode, // #2 = 'ld' chained node
/*287312*/              OPC_CheckFoldableChainNode,
/*287313*/              OPC_RecordChild1, // #3 = $src2
/*287314*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*287316*/              OPC_CheckPredicate, 9, // Predicate_load
/*287318*/              OPC_MoveParent,
/*287319*/              OPC_RecordChild2, // #4 = $src3
/*287320*/              OPC_MoveChild2,
/*287321*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*287324*/              OPC_MoveParent,
/*287325*/              OPC_MoveParent,
/*287326*/              OPC_MoveChild2,
/*287327*/              OPC_CheckImmAllZerosV,
/*287328*/              OPC_MoveParent,
/*287329*/              OPC_SwitchType /*2 cases */, 20, MVT::v8f64,// ->287352
/*287332*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*287334*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*287337*/                OPC_EmitMergeInputChains1_2,
/*287338*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPDZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VRange:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src3), immAllZerosV:{ *:[v8f64] }) - Complexity = 35
                          // Dst: (VRANGEPDZrmikz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i32] }):$src3)
/*287352*/              /*SwitchType*/ 20, MVT::v8f32,// ->287374
/*287354*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*287356*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*287359*/                OPC_EmitMergeInputChains1_2,
/*287360*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPSZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VRange:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src3), immAllZerosV:{ *:[v8f32] }) - Complexity = 35
                          // Dst: (VRANGEPSZ256rmikz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i32] }):$src3)
/*287374*/              0, // EndSwitchType
/*287375*/            /*SwitchOpcode*/ 78, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->287456
/*287378*/              OPC_RecordMemRef,
/*287379*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*287380*/              OPC_CheckFoldableChainNode,
/*287381*/              OPC_RecordChild1, // #3 = $src2
/*287382*/              OPC_Scope, 35, /*->287419*/ // 2 children in Scope
/*287384*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*287386*/                OPC_MoveParent,
/*287387*/                OPC_RecordChild2, // #4 = $src3
/*287388*/                OPC_MoveChild2,
/*287389*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*287392*/                OPC_MoveParent,
/*287393*/                OPC_MoveParent,
/*287394*/                OPC_MoveChild2,
/*287395*/                OPC_CheckImmAllZerosV,
/*287396*/                OPC_MoveParent,
/*287397*/                OPC_CheckType, MVT::v8f64,
/*287399*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*287401*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*287404*/                OPC_EmitMergeInputChains1_2,
/*287405*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPDZrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VRange:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i32] }):$src3), immAllZerosV:{ *:[v8f64] }) - Complexity = 35
                          // Dst: (VRANGEPDZrmbikz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i32] }):$src3)
/*287419*/              /*Scope*/ 35, /*->287455*/
/*287420*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*287422*/                OPC_MoveParent,
/*287423*/                OPC_RecordChild2, // #4 = $src3
/*287424*/                OPC_MoveChild2,
/*287425*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*287428*/                OPC_MoveParent,
/*287429*/                OPC_MoveParent,
/*287430*/                OPC_MoveChild2,
/*287431*/                OPC_CheckImmAllZerosV,
/*287432*/                OPC_MoveParent,
/*287433*/                OPC_CheckType, MVT::v8f32,
/*287435*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*287437*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*287440*/                OPC_EmitMergeInputChains1_2,
/*287441*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPSZ256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VRange:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i32] }):$src3), immAllZerosV:{ *:[v8f32] }) - Complexity = 35
                          // Dst: (VRANGEPSZ256rmbikz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i32] }):$src3)
/*287455*/              0, /*End of Scope*/
/*287456*/            0, // EndSwitchOpcode
/*287457*/          /*SwitchOpcode*/ 90, TARGET_VAL(X86ISD::SHUF128),// ->287550
/*287460*/            OPC_RecordChild0, // #1 = $src1
/*287461*/            OPC_MoveChild1,
/*287462*/            OPC_SwitchOpcode /*2 cases */, 41, TARGET_VAL(ISD::LOAD),// ->287507
/*287466*/              OPC_RecordMemRef,
/*287467*/              OPC_RecordNode, // #2 = 'ld' chained node
/*287468*/              OPC_CheckFoldableChainNode,
/*287469*/              OPC_RecordChild1, // #3 = $src2
/*287470*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*287472*/              OPC_CheckPredicate, 9, // Predicate_load
/*287474*/              OPC_MoveParent,
/*287475*/              OPC_RecordChild2, // #4 = $src3
/*287476*/              OPC_MoveChild2,
/*287477*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*287480*/              OPC_MoveParent,
/*287481*/              OPC_MoveParent,
/*287482*/              OPC_MoveChild2,
/*287483*/              OPC_CheckImmAllZerosV,
/*287484*/              OPC_MoveParent,
/*287485*/              OPC_CheckType, MVT::v8f64,
/*287487*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*287489*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*287492*/              OPC_EmitMergeInputChains1_2,
/*287493*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF64X2Zrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Shuf128:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v8f64] }) - Complexity = 35
                        // Dst: (VSHUFF64X2Zrmikz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*287507*/            /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->287549
/*287510*/              OPC_RecordMemRef,
/*287511*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*287512*/              OPC_CheckFoldableChainNode,
/*287513*/              OPC_RecordChild1, // #3 = $src2
/*287514*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*287516*/              OPC_MoveParent,
/*287517*/              OPC_RecordChild2, // #4 = $src3
/*287518*/              OPC_MoveChild2,
/*287519*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*287522*/              OPC_MoveParent,
/*287523*/              OPC_MoveParent,
/*287524*/              OPC_MoveChild2,
/*287525*/              OPC_CheckImmAllZerosV,
/*287526*/              OPC_MoveParent,
/*287527*/              OPC_CheckType, MVT::v8f64,
/*287529*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*287531*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*287534*/              OPC_EmitMergeInputChains1_2,
/*287535*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF64X2Zrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Shuf128:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v8f64] }) - Complexity = 35
                        // Dst: (VSHUFF64X2Zrmbikz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*287549*/            0, // EndSwitchOpcode
/*287550*/          /*SwitchOpcode*/ 25|128,1/*153*/, TARGET_VAL(X86ISD::SHUFP),// ->287707
/*287554*/            OPC_RecordChild0, // #1 = $src1
/*287555*/            OPC_MoveChild1,
/*287556*/            OPC_SwitchOpcode /*2 cases */, 65, TARGET_VAL(ISD::LOAD),// ->287625
/*287560*/              OPC_RecordMemRef,
/*287561*/              OPC_RecordNode, // #2 = 'ld' chained node
/*287562*/              OPC_CheckFoldableChainNode,
/*287563*/              OPC_RecordChild1, // #3 = $src2
/*287564*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*287566*/              OPC_CheckPredicate, 9, // Predicate_load
/*287568*/              OPC_MoveParent,
/*287569*/              OPC_RecordChild2, // #4 = $src3
/*287570*/              OPC_MoveChild2,
/*287571*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*287574*/              OPC_MoveParent,
/*287575*/              OPC_MoveParent,
/*287576*/              OPC_MoveChild2,
/*287577*/              OPC_CheckImmAllZerosV,
/*287578*/              OPC_MoveParent,
/*287579*/              OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->287602
/*287582*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*287584*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*287587*/                OPC_EmitMergeInputChains1_2,
/*287588*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPSZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Shufp:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v8f32] }) - Complexity = 35
                          // Dst: (VSHUFPSZ256rmikz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*287602*/              /*SwitchType*/ 20, MVT::v8f64,// ->287624
/*287604*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*287606*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*287609*/                OPC_EmitMergeInputChains1_2,
/*287610*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPDZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Shufp:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v8f64] }) - Complexity = 35
                          // Dst: (VSHUFPDZrmikz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*287624*/              0, // EndSwitchType
/*287625*/            /*SwitchOpcode*/ 78, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->287706
/*287628*/              OPC_RecordMemRef,
/*287629*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*287630*/              OPC_CheckFoldableChainNode,
/*287631*/              OPC_RecordChild1, // #3 = $src2
/*287632*/              OPC_Scope, 35, /*->287669*/ // 2 children in Scope
/*287634*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*287636*/                OPC_MoveParent,
/*287637*/                OPC_RecordChild2, // #4 = $src3
/*287638*/                OPC_MoveChild2,
/*287639*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*287642*/                OPC_MoveParent,
/*287643*/                OPC_MoveParent,
/*287644*/                OPC_MoveChild2,
/*287645*/                OPC_CheckImmAllZerosV,
/*287646*/                OPC_MoveParent,
/*287647*/                OPC_CheckType, MVT::v8f32,
/*287649*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*287651*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*287654*/                OPC_EmitMergeInputChains1_2,
/*287655*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPSZ256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Shufp:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v8f32] }) - Complexity = 35
                          // Dst: (VSHUFPSZ256rmbikz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*287669*/              /*Scope*/ 35, /*->287705*/
/*287670*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*287672*/                OPC_MoveParent,
/*287673*/                OPC_RecordChild2, // #4 = $src3
/*287674*/                OPC_MoveChild2,
/*287675*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*287678*/                OPC_MoveParent,
/*287679*/                OPC_MoveParent,
/*287680*/                OPC_MoveChild2,
/*287681*/                OPC_CheckImmAllZerosV,
/*287682*/                OPC_MoveParent,
/*287683*/                OPC_CheckType, MVT::v8f64,
/*287685*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*287687*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*287690*/                OPC_EmitMergeInputChains1_2,
/*287691*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPDZrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Shufp:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v8f64] }) - Complexity = 35
                          // Dst: (VSHUFPDZrmbikz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*287705*/              0, /*End of Scope*/
/*287706*/            0, // EndSwitchOpcode
/*287707*/          /*SwitchOpcode*/ 38|128,1/*166*/, TARGET_VAL(X86ISD::VFIXUPIMM),// ->287877
/*287711*/            OPC_RecordChild0, // #1 = $src1
/*287712*/            OPC_RecordChild1, // #2 = $src2
/*287713*/            OPC_MoveChild2,
/*287714*/            OPC_SwitchOpcode /*2 cases */, 71, TARGET_VAL(ISD::LOAD),// ->287789
/*287718*/              OPC_RecordMemRef,
/*287719*/              OPC_RecordNode, // #3 = 'ld' chained node
/*287720*/              OPC_CheckFoldableChainNode,
/*287721*/              OPC_RecordChild1, // #4 = $src3
/*287722*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*287724*/              OPC_CheckPredicate, 9, // Predicate_load
/*287726*/              OPC_MoveParent,
/*287727*/              OPC_RecordChild3, // #5 = $src4
/*287728*/              OPC_MoveChild3,
/*287729*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*287732*/              OPC_MoveParent,
/*287733*/              OPC_MoveParent,
/*287734*/              OPC_MoveChild2,
/*287735*/              OPC_CheckImmAllZerosV,
/*287736*/              OPC_MoveParent,
/*287737*/              OPC_SwitchType /*2 cases */, 23, MVT::v8f32,// ->287763
/*287740*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*287742*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*287745*/                OPC_EmitMergeInputChains, 1, 3, 
/*287748*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPSZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 5, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VFixupimm:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src4), immAllZerosV:{ *:[v8f32] }) - Complexity = 35
                          // Dst: (VFIXUPIMMPSZ256rmikz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i32] }):$src4)
/*287763*/              /*SwitchType*/ 23, MVT::v8f64,// ->287788
/*287765*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*287767*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*287770*/                OPC_EmitMergeInputChains, 1, 3, 
/*287773*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPDZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 5, 
                          // 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>>, (timm:{ *:[i32] }):$src4), immAllZerosV:{ *:[v8f64] }) - Complexity = 35
                          // Dst: (VFIXUPIMMPDZrmikz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i32] }):$src4)
/*287788*/              0, // EndSwitchType
/*287789*/            /*SwitchOpcode*/ 84, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->287876
/*287792*/              OPC_RecordMemRef,
/*287793*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*287794*/              OPC_CheckFoldableChainNode,
/*287795*/              OPC_RecordChild1, // #4 = $src3
/*287796*/              OPC_Scope, 38, /*->287836*/ // 2 children in Scope
/*287798*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*287800*/                OPC_MoveParent,
/*287801*/                OPC_RecordChild3, // #5 = $src4
/*287802*/                OPC_MoveChild3,
/*287803*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*287806*/                OPC_MoveParent,
/*287807*/                OPC_MoveParent,
/*287808*/                OPC_MoveChild2,
/*287809*/                OPC_CheckImmAllZerosV,
/*287810*/                OPC_MoveParent,
/*287811*/                OPC_CheckType, MVT::v8f32,
/*287813*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*287815*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*287818*/                OPC_EmitMergeInputChains, 1, 3, 
/*287821*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPSZ256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 5, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VFixupimm:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i32] }):$src4), immAllZerosV:{ *:[v8f32] }) - Complexity = 35
                          // Dst: (VFIXUPIMMPSZ256rmbikz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i32] }):$src4)
/*287836*/              /*Scope*/ 38, /*->287875*/
/*287837*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*287839*/                OPC_MoveParent,
/*287840*/                OPC_RecordChild3, // #5 = $src4
/*287841*/                OPC_MoveChild3,
/*287842*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*287845*/                OPC_MoveParent,
/*287846*/                OPC_MoveParent,
/*287847*/                OPC_MoveChild2,
/*287848*/                OPC_CheckImmAllZerosV,
/*287849*/                OPC_MoveParent,
/*287850*/                OPC_CheckType, MVT::v8f64,
/*287852*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*287854*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*287857*/                OPC_EmitMergeInputChains, 1, 3, 
/*287860*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPDZrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 5, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VFixupimm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i32] }):$src4), immAllZerosV:{ *:[v8f64] }) - Complexity = 35
                          // Dst: (VFIXUPIMMPDZrmbikz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i32] }):$src4)
/*287875*/              0, /*End of Scope*/
/*287876*/            0, // EndSwitchOpcode
/*287877*/          /*SwitchOpcode*/ 114|128,1/*242*/, TARGET_VAL(X86ISD::VPERMV3),// ->288123
/*287881*/            OPC_RecordChild0, // #1 = $src2
/*287882*/            OPC_Scope, 93, /*->287977*/ // 2 children in Scope
/*287884*/              OPC_MoveChild1,
/*287885*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*287888*/              OPC_RecordChild0, // #2 = $src1
/*287889*/              OPC_CheckChild0Type, MVT::v4i64,
/*287891*/              OPC_MoveParent,
/*287892*/              OPC_MoveChild2,
/*287893*/              OPC_SwitchOpcode /*2 cases */, 39, TARGET_VAL(ISD::LOAD),// ->287936
/*287897*/                OPC_RecordMemRef,
/*287898*/                OPC_RecordNode, // #3 = 'ld' chained node
/*287899*/                OPC_CheckFoldableChainNode,
/*287900*/                OPC_RecordChild1, // #4 = $src3
/*287901*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*287903*/                OPC_CheckPredicate, 9, // Predicate_load
/*287905*/                OPC_MoveParent,
/*287906*/                OPC_MoveParent,
/*287907*/                OPC_MoveChild2,
/*287908*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*287911*/                OPC_CheckChild0Same, 2,
/*287913*/                OPC_MoveParent,
/*287914*/                OPC_CheckType, MVT::v8f32,
/*287916*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*287919*/                OPC_EmitMergeInputChains, 1, 3, 
/*287922*/                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>>), (bitconvert:{ *:[v8f32] } VR256X:{ *:[v4i64] }:$src1)) - Complexity = 34
                          // Dst: (VPERMI2PS256rmk:{ *:[v8f32] } VR256X:{ *:[v4i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*287936*/              /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->287976
/*287939*/                OPC_RecordMemRef,
/*287940*/                OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*287941*/                OPC_CheckFoldableChainNode,
/*287942*/                OPC_RecordChild1, // #4 = $src3
/*287943*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*287945*/                OPC_MoveParent,
/*287946*/                OPC_MoveParent,
/*287947*/                OPC_MoveChild2,
/*287948*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*287951*/                OPC_CheckChild0Same, 2,
/*287953*/                OPC_MoveParent,
/*287954*/                OPC_CheckType, MVT::v8f32,
/*287956*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*287959*/                OPC_EmitMergeInputChains, 1, 3, 
/*287962*/                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), (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), (bitconvert:{ *:[v8f32] } VR256X:{ *:[v4i64] }:$src1)) - Complexity = 34
                          // Dst: (VPERMI2PS256rmbk:{ *:[v8f32] } VR256X:{ *:[v4i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*287976*/              0, // EndSwitchOpcode
/*287977*/            /*Scope*/ 15|128,1/*143*/, /*->288122*/
/*287979*/              OPC_RecordChild1, // #2 = $src2
/*287980*/              OPC_MoveChild2,
/*287981*/              OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->288048
/*287985*/                OPC_RecordMemRef,
/*287986*/                OPC_RecordNode, // #3 = 'ld' chained node
/*287987*/                OPC_CheckFoldableChainNode,
/*287988*/                OPC_RecordChild1, // #4 = $src3
/*287989*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*287991*/                OPC_CheckPredicate, 9, // Predicate_load
/*287993*/                OPC_MoveParent,
/*287994*/                OPC_MoveParent,
/*287995*/                OPC_MoveChild2,
/*287996*/                OPC_CheckImmAllZerosV,
/*287997*/                OPC_MoveParent,
/*287998*/                OPC_SwitchType /*2 cases */, 22, MVT::v8f32,// ->288023
/*288001*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*288003*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*288006*/                  OPC_EmitMergeInputChains, 1, 3, 
/*288009*/                  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>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                            // Dst: (VPERMT2PS256rmkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*288023*/                /*SwitchType*/ 22, MVT::v8f64,// ->288047
/*288025*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*288027*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*288030*/                  OPC_EmitMergeInputChains, 1, 3, 
/*288033*/                  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>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                            // Dst: (VPERMT2PDrmkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*288047*/                0, // EndSwitchType
/*288048*/              /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->288121
/*288051*/                OPC_RecordMemRef,
/*288052*/                OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*288053*/                OPC_CheckFoldableChainNode,
/*288054*/                OPC_RecordChild1, // #4 = $src3
/*288055*/                OPC_Scope, 31, /*->288088*/ // 2 children in Scope
/*288057*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*288059*/                  OPC_MoveParent,
/*288060*/                  OPC_MoveParent,
/*288061*/                  OPC_MoveChild2,
/*288062*/                  OPC_CheckImmAllZerosV,
/*288063*/                  OPC_MoveParent,
/*288064*/                  OPC_CheckType, MVT::v8f32,
/*288066*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*288068*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*288071*/                  OPC_EmitMergeInputChains, 1, 3, 
/*288074*/                  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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                            // Dst: (VPERMT2PS256rmbkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*288088*/                /*Scope*/ 31, /*->288120*/
/*288089*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*288091*/                  OPC_MoveParent,
/*288092*/                  OPC_MoveParent,
/*288093*/                  OPC_MoveChild2,
/*288094*/                  OPC_CheckImmAllZerosV,
/*288095*/                  OPC_MoveParent,
/*288096*/                  OPC_CheckType, MVT::v8f64,
/*288098*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*288100*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*288103*/                  OPC_EmitMergeInputChains, 1, 3, 
/*288106*/                  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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                            // Dst: (VPERMT2PDrmbkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*288120*/                0, /*End of Scope*/
/*288121*/              0, // EndSwitchOpcode
/*288122*/            0, /*End of Scope*/
/*288123*/          /*SwitchOpcode*/ 96, TARGET_VAL(X86ISD::SUBV_BROADCAST),// ->288222
/*288126*/            OPC_MoveChild0,
/*288127*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*288130*/            OPC_RecordMemRef,
/*288131*/            OPC_RecordNode, // #1 = 'ld' chained node
/*288132*/            OPC_CheckFoldableChainNode,
/*288133*/            OPC_RecordChild1, // #2 = $src
/*288134*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*288136*/            OPC_CheckPredicate, 9, // Predicate_load
/*288138*/            OPC_Scope, 27, /*->288167*/ // 3 children in Scope
/*288140*/              OPC_CheckType, MVT::v4f64,
/*288142*/              OPC_MoveParent,
/*288143*/              OPC_MoveParent,
/*288144*/              OPC_MoveChild2,
/*288145*/              OPC_CheckImmAllZerosV,
/*288146*/              OPC_MoveParent,
/*288147*/              OPC_CheckType, MVT::v8f64,
/*288149*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*288151*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*288154*/              OPC_EmitMergeInputChains1_1,
/*288155*/              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>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                        // Dst: (VBROADCASTF64X4rmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*288167*/            /*Scope*/ 25, /*->288193*/
/*288168*/              OPC_MoveParent,
/*288169*/              OPC_MoveParent,
/*288170*/              OPC_MoveChild2,
/*288171*/              OPC_CheckImmAllZerosV,
/*288172*/              OPC_MoveParent,
/*288173*/              OPC_CheckType, MVT::v8f32,
/*288175*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*288177*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*288180*/              OPC_EmitMergeInputChains1_1,
/*288181*/              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>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                        // Dst: (VBROADCASTF32X4Z256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*288193*/            /*Scope*/ 27, /*->288221*/
/*288194*/              OPC_CheckType, MVT::v2f64,
/*288196*/              OPC_MoveParent,
/*288197*/              OPC_MoveParent,
/*288198*/              OPC_MoveChild2,
/*288199*/              OPC_CheckImmAllZerosV,
/*288200*/              OPC_MoveParent,
/*288201*/              OPC_CheckType, MVT::v8f64,
/*288203*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*288205*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*288208*/              OPC_EmitMergeInputChains1_1,
/*288209*/              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>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                        // Dst: (VBROADCASTF64X2rmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*288221*/            0, /*End of Scope*/
/*288222*/          /*SwitchOpcode*/ 40|128,2/*296*/, TARGET_VAL(ISD::STRICT_FADD),// ->288522
/*288226*/            OPC_RecordNode, // #1 = 'strict_fadd' chained node
/*288227*/            OPC_CheckFoldableChainNode,
/*288228*/            OPC_Scope, 15|128,1/*143*/, /*->288374*/ // 2 children in Scope
/*288231*/              OPC_RecordChild1, // #2 = $src1
/*288232*/              OPC_MoveChild2,
/*288233*/              OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->288300
/*288237*/                OPC_RecordMemRef,
/*288238*/                OPC_RecordNode, // #3 = 'ld' chained node
/*288239*/                OPC_CheckFoldableChainNode,
/*288240*/                OPC_RecordChild1, // #4 = $src2
/*288241*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*288243*/                OPC_CheckPredicate, 9, // Predicate_load
/*288245*/                OPC_MoveParent,
/*288246*/                OPC_MoveParent,
/*288247*/                OPC_MoveChild2,
/*288248*/                OPC_CheckImmAllZerosV,
/*288249*/                OPC_MoveParent,
/*288250*/                OPC_SwitchType /*2 cases */, 22, MVT::v8f64,// ->288275
/*288253*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*288255*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*288258*/                  OPC_EmitMergeInputChains, 2, 1, 3, 
/*288262*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 7/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (strict_fadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                            // Dst: (VADDPDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*288275*/                /*SwitchType*/ 22, MVT::v8f32,// ->288299
/*288277*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*288279*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*288282*/                  OPC_EmitMergeInputChains, 2, 1, 3, 
/*288286*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 7/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (strict_fadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                            // Dst: (VADDPSZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*288299*/                0, // EndSwitchType
/*288300*/              /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->288373
/*288303*/                OPC_RecordMemRef,
/*288304*/                OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*288305*/                OPC_CheckFoldableChainNode,
/*288306*/                OPC_RecordChild1, // #4 = $src2
/*288307*/                OPC_Scope, 31, /*->288340*/ // 2 children in Scope
/*288309*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*288311*/                  OPC_MoveParent,
/*288312*/                  OPC_MoveParent,
/*288313*/                  OPC_MoveChild2,
/*288314*/                  OPC_CheckImmAllZerosV,
/*288315*/                  OPC_MoveParent,
/*288316*/                  OPC_CheckType, MVT::v8f64,
/*288318*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*288320*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*288323*/                  OPC_EmitMergeInputChains, 2, 1, 3, 
/*288327*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 7/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (strict_fadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                            // Dst: (VADDPDZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*288340*/                /*Scope*/ 31, /*->288372*/
/*288341*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*288343*/                  OPC_MoveParent,
/*288344*/                  OPC_MoveParent,
/*288345*/                  OPC_MoveChild2,
/*288346*/                  OPC_CheckImmAllZerosV,
/*288347*/                  OPC_MoveParent,
/*288348*/                  OPC_CheckType, MVT::v8f32,
/*288350*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*288352*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*288355*/                  OPC_EmitMergeInputChains, 2, 1, 3, 
/*288359*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 7/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (strict_fadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                            // Dst: (VADDPSZ256rmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*288372*/                0, /*End of Scope*/
/*288373*/              0, // EndSwitchOpcode
/*288374*/            /*Scope*/ 17|128,1/*145*/, /*->288521*/
/*288376*/              OPC_MoveChild1,
/*288377*/              OPC_SwitchOpcode /*2 cases */, 64, TARGET_VAL(ISD::LOAD),// ->288445
/*288381*/                OPC_RecordMemRef,
/*288382*/                OPC_RecordNode, // #2 = 'ld' chained node
/*288383*/                OPC_CheckFoldableChainNode,
/*288384*/                OPC_RecordChild1, // #3 = $src2
/*288385*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*288387*/                OPC_CheckPredicate, 9, // Predicate_load
/*288389*/                OPC_MoveParent,
/*288390*/                OPC_RecordChild2, // #4 = $src1
/*288391*/                OPC_MoveParent,
/*288392*/                OPC_MoveChild2,
/*288393*/                OPC_CheckImmAllZerosV,
/*288394*/                OPC_MoveParent,
/*288395*/                OPC_SwitchType /*2 cases */, 22, MVT::v8f64,// ->288420
/*288398*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*288400*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*288403*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*288407*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (strict_fadd:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v8f64] }:$src1), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                            // Dst: (VADDPDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*288420*/                /*SwitchType*/ 22, MVT::v8f32,// ->288444
/*288422*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*288424*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*288427*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*288431*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (strict_fadd:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8f32] }:$src1), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                            // Dst: (VADDPSZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*288444*/                0, // EndSwitchType
/*288445*/              /*SwitchOpcode*/ 72, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->288520
/*288448*/                OPC_RecordMemRef,
/*288449*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*288450*/                OPC_CheckFoldableChainNode,
/*288451*/                OPC_RecordChild1, // #3 = $src2
/*288452*/                OPC_Scope, 32, /*->288486*/ // 2 children in Scope
/*288454*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*288456*/                  OPC_MoveParent,
/*288457*/                  OPC_RecordChild2, // #4 = $src1
/*288458*/                  OPC_MoveParent,
/*288459*/                  OPC_MoveChild2,
/*288460*/                  OPC_CheckImmAllZerosV,
/*288461*/                  OPC_MoveParent,
/*288462*/                  OPC_CheckType, MVT::v8f64,
/*288464*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*288466*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*288469*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*288473*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (strict_fadd:{ *:[v8f64] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src1), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                            // Dst: (VADDPDZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*288486*/                /*Scope*/ 32, /*->288519*/
/*288487*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*288489*/                  OPC_MoveParent,
/*288490*/                  OPC_RecordChild2, // #4 = $src1
/*288491*/                  OPC_MoveParent,
/*288492*/                  OPC_MoveChild2,
/*288493*/                  OPC_CheckImmAllZerosV,
/*288494*/                  OPC_MoveParent,
/*288495*/                  OPC_CheckType, MVT::v8f32,
/*288497*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*288499*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*288502*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*288506*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (strict_fadd:{ *:[v8f32] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                            // Dst: (VADDPSZ256rmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*288519*/                0, /*End of Scope*/
/*288520*/              0, // EndSwitchOpcode
/*288521*/            0, /*End of Scope*/
/*288522*/          /*SwitchOpcode*/ 14|128,2/*270*/, TARGET_VAL(ISD::FADD),// ->288796
/*288526*/            OPC_Scope, 3|128,1/*131*/, /*->288660*/ // 2 children in Scope
/*288529*/              OPC_RecordChild0, // #1 = $src1
/*288530*/              OPC_MoveChild1,
/*288531*/              OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->288592
/*288535*/                OPC_RecordMemRef,
/*288536*/                OPC_RecordNode, // #2 = 'ld' chained node
/*288537*/                OPC_CheckFoldableChainNode,
/*288538*/                OPC_RecordChild1, // #3 = $src2
/*288539*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*288541*/                OPC_CheckPredicate, 9, // Predicate_load
/*288543*/                OPC_MoveParent,
/*288544*/                OPC_MoveParent,
/*288545*/                OPC_MoveChild2,
/*288546*/                OPC_CheckImmAllZerosV,
/*288547*/                OPC_MoveParent,
/*288548*/                OPC_SwitchType /*2 cases */, 19, MVT::v8f64,// ->288570
/*288551*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*288553*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*288556*/                  OPC_EmitMergeInputChains1_2,
/*288557*/                  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>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                            // Dst: (VADDPDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*288570*/                /*SwitchType*/ 19, MVT::v8f32,// ->288591
/*288572*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*288574*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*288577*/                  OPC_EmitMergeInputChains1_2,
/*288578*/                  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>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                            // Dst: (VADDPSZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*288591*/                0, // EndSwitchType
/*288592*/              /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->288659
/*288595*/                OPC_RecordMemRef,
/*288596*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*288597*/                OPC_CheckFoldableChainNode,
/*288598*/                OPC_RecordChild1, // #3 = $src2
/*288599*/                OPC_Scope, 28, /*->288629*/ // 2 children in Scope
/*288601*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*288603*/                  OPC_MoveParent,
/*288604*/                  OPC_MoveParent,
/*288605*/                  OPC_MoveChild2,
/*288606*/                  OPC_CheckImmAllZerosV,
/*288607*/                  OPC_MoveParent,
/*288608*/                  OPC_CheckType, MVT::v8f64,
/*288610*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*288612*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*288615*/                  OPC_EmitMergeInputChains1_2,
/*288616*/                  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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                            // Dst: (VADDPDZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*288629*/                /*Scope*/ 28, /*->288658*/
/*288630*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*288632*/                  OPC_MoveParent,
/*288633*/                  OPC_MoveParent,
/*288634*/                  OPC_MoveChild2,
/*288635*/                  OPC_CheckImmAllZerosV,
/*288636*/                  OPC_MoveParent,
/*288637*/                  OPC_CheckType, MVT::v8f32,
/*288639*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*288641*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*288644*/                  OPC_EmitMergeInputChains1_2,
/*288645*/                  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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                            // Dst: (VADDPSZ256rmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*288658*/                0, /*End of Scope*/
/*288659*/              0, // EndSwitchOpcode
/*288660*/            /*Scope*/ 5|128,1/*133*/, /*->288795*/
/*288662*/              OPC_MoveChild0,
/*288663*/              OPC_SwitchOpcode /*2 cases */, 58, TARGET_VAL(ISD::LOAD),// ->288725
/*288667*/                OPC_RecordMemRef,
/*288668*/                OPC_RecordNode, // #1 = 'ld' chained node
/*288669*/                OPC_CheckFoldableChainNode,
/*288670*/                OPC_RecordChild1, // #2 = $src2
/*288671*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*288673*/                OPC_CheckPredicate, 9, // Predicate_load
/*288675*/                OPC_MoveParent,
/*288676*/                OPC_RecordChild1, // #3 = $src1
/*288677*/                OPC_MoveParent,
/*288678*/                OPC_MoveChild2,
/*288679*/                OPC_CheckImmAllZerosV,
/*288680*/                OPC_MoveParent,
/*288681*/                OPC_SwitchType /*2 cases */, 19, MVT::v8f64,// ->288703
/*288684*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*288686*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*288689*/                  OPC_EmitMergeInputChains1_1,
/*288690*/                  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>>, VR512:{ *:[v8f64] }:$src1), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                            // Dst: (VADDPDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*288703*/                /*SwitchType*/ 19, MVT::v8f32,// ->288724
/*288705*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*288707*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*288710*/                  OPC_EmitMergeInputChains1_1,
/*288711*/                  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>>, VR256X:{ *:[v8f32] }:$src1), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                            // Dst: (VADDPSZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*288724*/                0, // EndSwitchType
/*288725*/              /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->288794
/*288728*/                OPC_RecordMemRef,
/*288729*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*288730*/                OPC_CheckFoldableChainNode,
/*288731*/                OPC_RecordChild1, // #2 = $src2
/*288732*/                OPC_Scope, 29, /*->288763*/ // 2 children in Scope
/*288734*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*288736*/                  OPC_MoveParent,
/*288737*/                  OPC_RecordChild1, // #3 = $src1
/*288738*/                  OPC_MoveParent,
/*288739*/                  OPC_MoveChild2,
/*288740*/                  OPC_CheckImmAllZerosV,
/*288741*/                  OPC_MoveParent,
/*288742*/                  OPC_CheckType, MVT::v8f64,
/*288744*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*288746*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*288749*/                  OPC_EmitMergeInputChains1_1,
/*288750*/                  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] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src1), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                            // Dst: (VADDPDZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*288763*/                /*Scope*/ 29, /*->288793*/
/*288764*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*288766*/                  OPC_MoveParent,
/*288767*/                  OPC_RecordChild1, // #3 = $src1
/*288768*/                  OPC_MoveParent,
/*288769*/                  OPC_MoveChild2,
/*288770*/                  OPC_CheckImmAllZerosV,
/*288771*/                  OPC_MoveParent,
/*288772*/                  OPC_CheckType, MVT::v8f32,
/*288774*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*288776*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*288779*/                  OPC_EmitMergeInputChains1_1,
/*288780*/                  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] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                            // Dst: (VADDPSZ256rmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*288793*/                0, /*End of Scope*/
/*288794*/              0, // EndSwitchOpcode
/*288795*/            0, /*End of Scope*/
/*288796*/          /*SwitchOpcode*/ 40|128,2/*296*/, TARGET_VAL(ISD::STRICT_FMUL),// ->289096
/*288800*/            OPC_RecordNode, // #1 = 'strict_fmul' chained node
/*288801*/            OPC_CheckFoldableChainNode,
/*288802*/            OPC_Scope, 15|128,1/*143*/, /*->288948*/ // 2 children in Scope
/*288805*/              OPC_RecordChild1, // #2 = $src1
/*288806*/              OPC_MoveChild2,
/*288807*/              OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->288874
/*288811*/                OPC_RecordMemRef,
/*288812*/                OPC_RecordNode, // #3 = 'ld' chained node
/*288813*/                OPC_CheckFoldableChainNode,
/*288814*/                OPC_RecordChild1, // #4 = $src2
/*288815*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*288817*/                OPC_CheckPredicate, 9, // Predicate_load
/*288819*/                OPC_MoveParent,
/*288820*/                OPC_MoveParent,
/*288821*/                OPC_MoveChild2,
/*288822*/                OPC_CheckImmAllZerosV,
/*288823*/                OPC_MoveParent,
/*288824*/                OPC_SwitchType /*2 cases */, 22, MVT::v8f64,// ->288849
/*288827*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*288829*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*288832*/                  OPC_EmitMergeInputChains, 2, 1, 3, 
/*288836*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 7/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (strict_fmul:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                            // Dst: (VMULPDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*288849*/                /*SwitchType*/ 22, MVT::v8f32,// ->288873
/*288851*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*288853*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*288856*/                  OPC_EmitMergeInputChains, 2, 1, 3, 
/*288860*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 7/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (strict_fmul:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                            // Dst: (VMULPSZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*288873*/                0, // EndSwitchType
/*288874*/              /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->288947
/*288877*/                OPC_RecordMemRef,
/*288878*/                OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*288879*/                OPC_CheckFoldableChainNode,
/*288880*/                OPC_RecordChild1, // #4 = $src2
/*288881*/                OPC_Scope, 31, /*->288914*/ // 2 children in Scope
/*288883*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*288885*/                  OPC_MoveParent,
/*288886*/                  OPC_MoveParent,
/*288887*/                  OPC_MoveChild2,
/*288888*/                  OPC_CheckImmAllZerosV,
/*288889*/                  OPC_MoveParent,
/*288890*/                  OPC_CheckType, MVT::v8f64,
/*288892*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*288894*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*288897*/                  OPC_EmitMergeInputChains, 2, 1, 3, 
/*288901*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 7/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (strict_fmul:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                            // Dst: (VMULPDZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*288914*/                /*Scope*/ 31, /*->288946*/
/*288915*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*288917*/                  OPC_MoveParent,
/*288918*/                  OPC_MoveParent,
/*288919*/                  OPC_MoveChild2,
/*288920*/                  OPC_CheckImmAllZerosV,
/*288921*/                  OPC_MoveParent,
/*288922*/                  OPC_CheckType, MVT::v8f32,
/*288924*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*288926*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*288929*/                  OPC_EmitMergeInputChains, 2, 1, 3, 
/*288933*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 7/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (strict_fmul:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                            // Dst: (VMULPSZ256rmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*288946*/                0, /*End of Scope*/
/*288947*/              0, // EndSwitchOpcode
/*288948*/            /*Scope*/ 17|128,1/*145*/, /*->289095*/
/*288950*/              OPC_MoveChild1,
/*288951*/              OPC_SwitchOpcode /*2 cases */, 64, TARGET_VAL(ISD::LOAD),// ->289019
/*288955*/                OPC_RecordMemRef,
/*288956*/                OPC_RecordNode, // #2 = 'ld' chained node
/*288957*/                OPC_CheckFoldableChainNode,
/*288958*/                OPC_RecordChild1, // #3 = $src2
/*288959*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*288961*/                OPC_CheckPredicate, 9, // Predicate_load
/*288963*/                OPC_MoveParent,
/*288964*/                OPC_RecordChild2, // #4 = $src1
/*288965*/                OPC_MoveParent,
/*288966*/                OPC_MoveChild2,
/*288967*/                OPC_CheckImmAllZerosV,
/*288968*/                OPC_MoveParent,
/*288969*/                OPC_SwitchType /*2 cases */, 22, MVT::v8f64,// ->288994
/*288972*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*288974*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*288977*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*288981*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (strict_fmul:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v8f64] }:$src1), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                            // Dst: (VMULPDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*288994*/                /*SwitchType*/ 22, MVT::v8f32,// ->289018
/*288996*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*288998*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*289001*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*289005*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (strict_fmul:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8f32] }:$src1), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                            // Dst: (VMULPSZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*289018*/                0, // EndSwitchType
/*289019*/              /*SwitchOpcode*/ 72, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->289094
/*289022*/                OPC_RecordMemRef,
/*289023*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*289024*/                OPC_CheckFoldableChainNode,
/*289025*/                OPC_RecordChild1, // #3 = $src2
/*289026*/                OPC_Scope, 32, /*->289060*/ // 2 children in Scope
/*289028*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*289030*/                  OPC_MoveParent,
/*289031*/                  OPC_RecordChild2, // #4 = $src1
/*289032*/                  OPC_MoveParent,
/*289033*/                  OPC_MoveChild2,
/*289034*/                  OPC_CheckImmAllZerosV,
/*289035*/                  OPC_MoveParent,
/*289036*/                  OPC_CheckType, MVT::v8f64,
/*289038*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*289040*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*289043*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*289047*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (strict_fmul:{ *:[v8f64] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src1), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                            // Dst: (VMULPDZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*289060*/                /*Scope*/ 32, /*->289093*/
/*289061*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*289063*/                  OPC_MoveParent,
/*289064*/                  OPC_RecordChild2, // #4 = $src1
/*289065*/                  OPC_MoveParent,
/*289066*/                  OPC_MoveChild2,
/*289067*/                  OPC_CheckImmAllZerosV,
/*289068*/                  OPC_MoveParent,
/*289069*/                  OPC_CheckType, MVT::v8f32,
/*289071*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*289073*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*289076*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*289080*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (strict_fmul:{ *:[v8f32] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                            // Dst: (VMULPSZ256rmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*289093*/                0, /*End of Scope*/
/*289094*/              0, // EndSwitchOpcode
/*289095*/            0, /*End of Scope*/
/*289096*/          /*SwitchOpcode*/ 14|128,2/*270*/, TARGET_VAL(ISD::FMUL),// ->289370
/*289100*/            OPC_Scope, 3|128,1/*131*/, /*->289234*/ // 2 children in Scope
/*289103*/              OPC_RecordChild0, // #1 = $src1
/*289104*/              OPC_MoveChild1,
/*289105*/              OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->289166
/*289109*/                OPC_RecordMemRef,
/*289110*/                OPC_RecordNode, // #2 = 'ld' chained node
/*289111*/                OPC_CheckFoldableChainNode,
/*289112*/                OPC_RecordChild1, // #3 = $src2
/*289113*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*289115*/                OPC_CheckPredicate, 9, // Predicate_load
/*289117*/                OPC_MoveParent,
/*289118*/                OPC_MoveParent,
/*289119*/                OPC_MoveChild2,
/*289120*/                OPC_CheckImmAllZerosV,
/*289121*/                OPC_MoveParent,
/*289122*/                OPC_SwitchType /*2 cases */, 19, MVT::v8f64,// ->289144
/*289125*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*289127*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*289130*/                  OPC_EmitMergeInputChains1_2,
/*289131*/                  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>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                            // Dst: (VMULPDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*289144*/                /*SwitchType*/ 19, MVT::v8f32,// ->289165
/*289146*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*289148*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*289151*/                  OPC_EmitMergeInputChains1_2,
/*289152*/                  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>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                            // Dst: (VMULPSZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*289165*/                0, // EndSwitchType
/*289166*/              /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->289233
/*289169*/                OPC_RecordMemRef,
/*289170*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*289171*/                OPC_CheckFoldableChainNode,
/*289172*/                OPC_RecordChild1, // #3 = $src2
/*289173*/                OPC_Scope, 28, /*->289203*/ // 2 children in Scope
/*289175*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*289177*/                  OPC_MoveParent,
/*289178*/                  OPC_MoveParent,
/*289179*/                  OPC_MoveChild2,
/*289180*/                  OPC_CheckImmAllZerosV,
/*289181*/                  OPC_MoveParent,
/*289182*/                  OPC_CheckType, MVT::v8f64,
/*289184*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*289186*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*289189*/                  OPC_EmitMergeInputChains1_2,
/*289190*/                  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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                            // Dst: (VMULPDZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*289203*/                /*Scope*/ 28, /*->289232*/
/*289204*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*289206*/                  OPC_MoveParent,
/*289207*/                  OPC_MoveParent,
/*289208*/                  OPC_MoveChild2,
/*289209*/                  OPC_CheckImmAllZerosV,
/*289210*/                  OPC_MoveParent,
/*289211*/                  OPC_CheckType, MVT::v8f32,
/*289213*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*289215*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*289218*/                  OPC_EmitMergeInputChains1_2,
/*289219*/                  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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                            // Dst: (VMULPSZ256rmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*289232*/                0, /*End of Scope*/
/*289233*/              0, // EndSwitchOpcode
/*289234*/            /*Scope*/ 5|128,1/*133*/, /*->289369*/
/*289236*/              OPC_MoveChild0,
/*289237*/              OPC_SwitchOpcode /*2 cases */, 58, TARGET_VAL(ISD::LOAD),// ->289299
/*289241*/                OPC_RecordMemRef,
/*289242*/                OPC_RecordNode, // #1 = 'ld' chained node
/*289243*/                OPC_CheckFoldableChainNode,
/*289244*/                OPC_RecordChild1, // #2 = $src2
/*289245*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*289247*/                OPC_CheckPredicate, 9, // Predicate_load
/*289249*/                OPC_MoveParent,
/*289250*/                OPC_RecordChild1, // #3 = $src1
/*289251*/                OPC_MoveParent,
/*289252*/                OPC_MoveChild2,
/*289253*/                OPC_CheckImmAllZerosV,
/*289254*/                OPC_MoveParent,
/*289255*/                OPC_SwitchType /*2 cases */, 19, MVT::v8f64,// ->289277
/*289258*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*289260*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*289263*/                  OPC_EmitMergeInputChains1_1,
/*289264*/                  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>>, VR512:{ *:[v8f64] }:$src1), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                            // Dst: (VMULPDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*289277*/                /*SwitchType*/ 19, MVT::v8f32,// ->289298
/*289279*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*289281*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*289284*/                  OPC_EmitMergeInputChains1_1,
/*289285*/                  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>>, VR256X:{ *:[v8f32] }:$src1), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                            // Dst: (VMULPSZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*289298*/                0, // EndSwitchType
/*289299*/              /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->289368
/*289302*/                OPC_RecordMemRef,
/*289303*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*289304*/                OPC_CheckFoldableChainNode,
/*289305*/                OPC_RecordChild1, // #2 = $src2
/*289306*/                OPC_Scope, 29, /*->289337*/ // 2 children in Scope
/*289308*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*289310*/                  OPC_MoveParent,
/*289311*/                  OPC_RecordChild1, // #3 = $src1
/*289312*/                  OPC_MoveParent,
/*289313*/                  OPC_MoveChild2,
/*289314*/                  OPC_CheckImmAllZerosV,
/*289315*/                  OPC_MoveParent,
/*289316*/                  OPC_CheckType, MVT::v8f64,
/*289318*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*289320*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*289323*/                  OPC_EmitMergeInputChains1_1,
/*289324*/                  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] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src1), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                            // Dst: (VMULPDZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*289337*/                /*Scope*/ 29, /*->289367*/
/*289338*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*289340*/                  OPC_MoveParent,
/*289341*/                  OPC_RecordChild1, // #3 = $src1
/*289342*/                  OPC_MoveParent,
/*289343*/                  OPC_MoveChild2,
/*289344*/                  OPC_CheckImmAllZerosV,
/*289345*/                  OPC_MoveParent,
/*289346*/                  OPC_CheckType, MVT::v8f32,
/*289348*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*289350*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*289353*/                  OPC_EmitMergeInputChains1_1,
/*289354*/                  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] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                            // Dst: (VMULPSZ256rmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*289367*/                0, /*End of Scope*/
/*289368*/              0, // EndSwitchOpcode
/*289369*/            0, /*End of Scope*/
/*289370*/          /*SwitchOpcode*/ 17|128,1/*145*/, TARGET_VAL(ISD::STRICT_FSUB),// ->289519
/*289374*/            OPC_RecordNode, // #1 = 'strict_fsub' chained node
/*289375*/            OPC_CheckFoldableChainNode,
/*289376*/            OPC_RecordChild1, // #2 = $src1
/*289377*/            OPC_MoveChild2,
/*289378*/            OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->289445
/*289382*/              OPC_RecordMemRef,
/*289383*/              OPC_RecordNode, // #3 = 'ld' chained node
/*289384*/              OPC_CheckFoldableChainNode,
/*289385*/              OPC_RecordChild1, // #4 = $src2
/*289386*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*289388*/              OPC_CheckPredicate, 9, // Predicate_load
/*289390*/              OPC_MoveParent,
/*289391*/              OPC_MoveParent,
/*289392*/              OPC_MoveChild2,
/*289393*/              OPC_CheckImmAllZerosV,
/*289394*/              OPC_MoveParent,
/*289395*/              OPC_SwitchType /*2 cases */, 22, MVT::v8f64,// ->289420
/*289398*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*289400*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*289403*/                OPC_EmitMergeInputChains, 2, 1, 3, 
/*289407*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (strict_fsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                          // Dst: (VSUBPDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*289420*/              /*SwitchType*/ 22, MVT::v8f32,// ->289444
/*289422*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*289424*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*289427*/                OPC_EmitMergeInputChains, 2, 1, 3, 
/*289431*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (strict_fsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                          // Dst: (VSUBPSZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*289444*/              0, // EndSwitchType
/*289445*/            /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->289518
/*289448*/              OPC_RecordMemRef,
/*289449*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*289450*/              OPC_CheckFoldableChainNode,
/*289451*/              OPC_RecordChild1, // #4 = $src2
/*289452*/              OPC_Scope, 31, /*->289485*/ // 2 children in Scope
/*289454*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*289456*/                OPC_MoveParent,
/*289457*/                OPC_MoveParent,
/*289458*/                OPC_MoveChild2,
/*289459*/                OPC_CheckImmAllZerosV,
/*289460*/                OPC_MoveParent,
/*289461*/                OPC_CheckType, MVT::v8f64,
/*289463*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*289465*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*289468*/                OPC_EmitMergeInputChains, 2, 1, 3, 
/*289472*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (strict_fsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                          // Dst: (VSUBPDZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*289485*/              /*Scope*/ 31, /*->289517*/
/*289486*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*289488*/                OPC_MoveParent,
/*289489*/                OPC_MoveParent,
/*289490*/                OPC_MoveChild2,
/*289491*/                OPC_CheckImmAllZerosV,
/*289492*/                OPC_MoveParent,
/*289493*/                OPC_CheckType, MVT::v8f32,
/*289495*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*289497*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*289500*/                OPC_EmitMergeInputChains, 2, 1, 3, 
/*289504*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (strict_fsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                          // Dst: (VSUBPSZ256rmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*289517*/              0, /*End of Scope*/
/*289518*/            0, // EndSwitchOpcode
/*289519*/          /*SwitchOpcode*/ 3|128,1/*131*/, TARGET_VAL(ISD::FSUB),// ->289654
/*289523*/            OPC_RecordChild0, // #1 = $src1
/*289524*/            OPC_MoveChild1,
/*289525*/            OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->289586
/*289529*/              OPC_RecordMemRef,
/*289530*/              OPC_RecordNode, // #2 = 'ld' chained node
/*289531*/              OPC_CheckFoldableChainNode,
/*289532*/              OPC_RecordChild1, // #3 = $src2
/*289533*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*289535*/              OPC_CheckPredicate, 9, // Predicate_load
/*289537*/              OPC_MoveParent,
/*289538*/              OPC_MoveParent,
/*289539*/              OPC_MoveChild2,
/*289540*/              OPC_CheckImmAllZerosV,
/*289541*/              OPC_MoveParent,
/*289542*/              OPC_SwitchType /*2 cases */, 19, MVT::v8f64,// ->289564
/*289545*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*289547*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*289550*/                OPC_EmitMergeInputChains1_2,
/*289551*/                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>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                          // Dst: (VSUBPDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*289564*/              /*SwitchType*/ 19, MVT::v8f32,// ->289585
/*289566*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*289568*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*289571*/                OPC_EmitMergeInputChains1_2,
/*289572*/                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>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                          // Dst: (VSUBPSZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*289585*/              0, // EndSwitchType
/*289586*/            /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->289653
/*289589*/              OPC_RecordMemRef,
/*289590*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*289591*/              OPC_CheckFoldableChainNode,
/*289592*/              OPC_RecordChild1, // #3 = $src2
/*289593*/              OPC_Scope, 28, /*->289623*/ // 2 children in Scope
/*289595*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*289597*/                OPC_MoveParent,
/*289598*/                OPC_MoveParent,
/*289599*/                OPC_MoveChild2,
/*289600*/                OPC_CheckImmAllZerosV,
/*289601*/                OPC_MoveParent,
/*289602*/                OPC_CheckType, MVT::v8f64,
/*289604*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*289606*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*289609*/                OPC_EmitMergeInputChains1_2,
/*289610*/                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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                          // Dst: (VSUBPDZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*289623*/              /*Scope*/ 28, /*->289652*/
/*289624*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*289626*/                OPC_MoveParent,
/*289627*/                OPC_MoveParent,
/*289628*/                OPC_MoveChild2,
/*289629*/                OPC_CheckImmAllZerosV,
/*289630*/                OPC_MoveParent,
/*289631*/                OPC_CheckType, MVT::v8f32,
/*289633*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*289635*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*289638*/                OPC_EmitMergeInputChains1_2,
/*289639*/                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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                          // Dst: (VSUBPSZ256rmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*289652*/              0, /*End of Scope*/
/*289653*/            0, // EndSwitchOpcode
/*289654*/          /*SwitchOpcode*/ 17|128,1/*145*/, TARGET_VAL(ISD::STRICT_FDIV),// ->289803
/*289658*/            OPC_RecordNode, // #1 = 'strict_fdiv' chained node
/*289659*/            OPC_CheckFoldableChainNode,
/*289660*/            OPC_RecordChild1, // #2 = $src1
/*289661*/            OPC_MoveChild2,
/*289662*/            OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->289729
/*289666*/              OPC_RecordMemRef,
/*289667*/              OPC_RecordNode, // #3 = 'ld' chained node
/*289668*/              OPC_CheckFoldableChainNode,
/*289669*/              OPC_RecordChild1, // #4 = $src2
/*289670*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*289672*/              OPC_CheckPredicate, 9, // Predicate_load
/*289674*/              OPC_MoveParent,
/*289675*/              OPC_MoveParent,
/*289676*/              OPC_MoveChild2,
/*289677*/              OPC_CheckImmAllZerosV,
/*289678*/              OPC_MoveParent,
/*289679*/              OPC_SwitchType /*2 cases */, 22, MVT::v8f64,// ->289704
/*289682*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*289684*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*289687*/                OPC_EmitMergeInputChains, 2, 1, 3, 
/*289691*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (strict_fdiv:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                          // Dst: (VDIVPDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*289704*/              /*SwitchType*/ 22, MVT::v8f32,// ->289728
/*289706*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*289708*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*289711*/                OPC_EmitMergeInputChains, 2, 1, 3, 
/*289715*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (strict_fdiv:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                          // Dst: (VDIVPSZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*289728*/              0, // EndSwitchType
/*289729*/            /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->289802
/*289732*/              OPC_RecordMemRef,
/*289733*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*289734*/              OPC_CheckFoldableChainNode,
/*289735*/              OPC_RecordChild1, // #4 = $src2
/*289736*/              OPC_Scope, 31, /*->289769*/ // 2 children in Scope
/*289738*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*289740*/                OPC_MoveParent,
/*289741*/                OPC_MoveParent,
/*289742*/                OPC_MoveChild2,
/*289743*/                OPC_CheckImmAllZerosV,
/*289744*/                OPC_MoveParent,
/*289745*/                OPC_CheckType, MVT::v8f64,
/*289747*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*289749*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*289752*/                OPC_EmitMergeInputChains, 2, 1, 3, 
/*289756*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (strict_fdiv:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                          // Dst: (VDIVPDZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*289769*/              /*Scope*/ 31, /*->289801*/
/*289770*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*289772*/                OPC_MoveParent,
/*289773*/                OPC_MoveParent,
/*289774*/                OPC_MoveChild2,
/*289775*/                OPC_CheckImmAllZerosV,
/*289776*/                OPC_MoveParent,
/*289777*/                OPC_CheckType, MVT::v8f32,
/*289779*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*289781*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*289784*/                OPC_EmitMergeInputChains, 2, 1, 3, 
/*289788*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (strict_fdiv:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                          // Dst: (VDIVPSZ256rmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*289801*/              0, /*End of Scope*/
/*289802*/            0, // EndSwitchOpcode
/*289803*/          /*SwitchOpcode*/ 3|128,1/*131*/, TARGET_VAL(ISD::FDIV),// ->289938
/*289807*/            OPC_RecordChild0, // #1 = $src1
/*289808*/            OPC_MoveChild1,
/*289809*/            OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->289870
/*289813*/              OPC_RecordMemRef,
/*289814*/              OPC_RecordNode, // #2 = 'ld' chained node
/*289815*/              OPC_CheckFoldableChainNode,
/*289816*/              OPC_RecordChild1, // #3 = $src2
/*289817*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*289819*/              OPC_CheckPredicate, 9, // Predicate_load
/*289821*/              OPC_MoveParent,
/*289822*/              OPC_MoveParent,
/*289823*/              OPC_MoveChild2,
/*289824*/              OPC_CheckImmAllZerosV,
/*289825*/              OPC_MoveParent,
/*289826*/              OPC_SwitchType /*2 cases */, 19, MVT::v8f64,// ->289848
/*289829*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*289831*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*289834*/                OPC_EmitMergeInputChains1_2,
/*289835*/                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>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                          // Dst: (VDIVPDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*289848*/              /*SwitchType*/ 19, MVT::v8f32,// ->289869
/*289850*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*289852*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*289855*/                OPC_EmitMergeInputChains1_2,
/*289856*/                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>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                          // Dst: (VDIVPSZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*289869*/              0, // EndSwitchType
/*289870*/            /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->289937
/*289873*/              OPC_RecordMemRef,
/*289874*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*289875*/              OPC_CheckFoldableChainNode,
/*289876*/              OPC_RecordChild1, // #3 = $src2
/*289877*/              OPC_Scope, 28, /*->289907*/ // 2 children in Scope
/*289879*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*289881*/                OPC_MoveParent,
/*289882*/                OPC_MoveParent,
/*289883*/                OPC_MoveChild2,
/*289884*/                OPC_CheckImmAllZerosV,
/*289885*/                OPC_MoveParent,
/*289886*/                OPC_CheckType, MVT::v8f64,
/*289888*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*289890*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*289893*/                OPC_EmitMergeInputChains1_2,
/*289894*/                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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                          // Dst: (VDIVPDZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*289907*/              /*Scope*/ 28, /*->289936*/
/*289908*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*289910*/                OPC_MoveParent,
/*289911*/                OPC_MoveParent,
/*289912*/                OPC_MoveChild2,
/*289913*/                OPC_CheckImmAllZerosV,
/*289914*/                OPC_MoveParent,
/*289915*/                OPC_CheckType, MVT::v8f32,
/*289917*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*289919*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*289922*/                OPC_EmitMergeInputChains1_2,
/*289923*/                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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                          // Dst: (VDIVPSZ256rmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*289936*/              0, /*End of Scope*/
/*289937*/            0, // EndSwitchOpcode
/*289938*/          /*SwitchOpcode*/ 3|128,1/*131*/, TARGET_VAL(X86ISD::FMIN),// ->290073
/*289942*/            OPC_RecordChild0, // #1 = $src1
/*289943*/            OPC_MoveChild1,
/*289944*/            OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->290005
/*289948*/              OPC_RecordMemRef,
/*289949*/              OPC_RecordNode, // #2 = 'ld' chained node
/*289950*/              OPC_CheckFoldableChainNode,
/*289951*/              OPC_RecordChild1, // #3 = $src2
/*289952*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*289954*/              OPC_CheckPredicate, 9, // Predicate_load
/*289956*/              OPC_MoveParent,
/*289957*/              OPC_MoveParent,
/*289958*/              OPC_MoveChild2,
/*289959*/              OPC_CheckImmAllZerosV,
/*289960*/              OPC_MoveParent,
/*289961*/              OPC_SwitchType /*2 cases */, 19, MVT::v8f64,// ->289983
/*289964*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*289966*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*289969*/                OPC_EmitMergeInputChains1_2,
/*289970*/                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>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                          // Dst: (VMINPDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*289983*/              /*SwitchType*/ 19, MVT::v8f32,// ->290004
/*289985*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*289987*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*289990*/                OPC_EmitMergeInputChains1_2,
/*289991*/                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>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                          // Dst: (VMINPSZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*290004*/              0, // EndSwitchType
/*290005*/            /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->290072
/*290008*/              OPC_RecordMemRef,
/*290009*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*290010*/              OPC_CheckFoldableChainNode,
/*290011*/              OPC_RecordChild1, // #3 = $src2
/*290012*/              OPC_Scope, 28, /*->290042*/ // 2 children in Scope
/*290014*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*290016*/                OPC_MoveParent,
/*290017*/                OPC_MoveParent,
/*290018*/                OPC_MoveChild2,
/*290019*/                OPC_CheckImmAllZerosV,
/*290020*/                OPC_MoveParent,
/*290021*/                OPC_CheckType, MVT::v8f64,
/*290023*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*290025*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*290028*/                OPC_EmitMergeInputChains1_2,
/*290029*/                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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                          // Dst: (VMINPDZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*290042*/              /*Scope*/ 28, /*->290071*/
/*290043*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*290045*/                OPC_MoveParent,
/*290046*/                OPC_MoveParent,
/*290047*/                OPC_MoveChild2,
/*290048*/                OPC_CheckImmAllZerosV,
/*290049*/                OPC_MoveParent,
/*290050*/                OPC_CheckType, MVT::v8f32,
/*290052*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*290054*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*290057*/                OPC_EmitMergeInputChains1_2,
/*290058*/                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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                          // Dst: (VMINPSZ256rmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*290071*/              0, /*End of Scope*/
/*290072*/            0, // EndSwitchOpcode
/*290073*/          /*SwitchOpcode*/ 3|128,1/*131*/, TARGET_VAL(X86ISD::FMAX),// ->290208
/*290077*/            OPC_RecordChild0, // #1 = $src1
/*290078*/            OPC_MoveChild1,
/*290079*/            OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->290140
/*290083*/              OPC_RecordMemRef,
/*290084*/              OPC_RecordNode, // #2 = 'ld' chained node
/*290085*/              OPC_CheckFoldableChainNode,
/*290086*/              OPC_RecordChild1, // #3 = $src2
/*290087*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*290089*/              OPC_CheckPredicate, 9, // Predicate_load
/*290091*/              OPC_MoveParent,
/*290092*/              OPC_MoveParent,
/*290093*/              OPC_MoveChild2,
/*290094*/              OPC_CheckImmAllZerosV,
/*290095*/              OPC_MoveParent,
/*290096*/              OPC_SwitchType /*2 cases */, 19, MVT::v8f64,// ->290118
/*290099*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*290101*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*290104*/                OPC_EmitMergeInputChains1_2,
/*290105*/                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>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                          // Dst: (VMAXPDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*290118*/              /*SwitchType*/ 19, MVT::v8f32,// ->290139
/*290120*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*290122*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*290125*/                OPC_EmitMergeInputChains1_2,
/*290126*/                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>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                          // Dst: (VMAXPSZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*290139*/              0, // EndSwitchType
/*290140*/            /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->290207
/*290143*/              OPC_RecordMemRef,
/*290144*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*290145*/              OPC_CheckFoldableChainNode,
/*290146*/              OPC_RecordChild1, // #3 = $src2
/*290147*/              OPC_Scope, 28, /*->290177*/ // 2 children in Scope
/*290149*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*290151*/                OPC_MoveParent,
/*290152*/                OPC_MoveParent,
/*290153*/                OPC_MoveChild2,
/*290154*/                OPC_CheckImmAllZerosV,
/*290155*/                OPC_MoveParent,
/*290156*/                OPC_CheckType, MVT::v8f64,
/*290158*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*290160*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*290163*/                OPC_EmitMergeInputChains1_2,
/*290164*/                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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                          // Dst: (VMAXPDZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*290177*/              /*Scope*/ 28, /*->290206*/
/*290178*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*290180*/                OPC_MoveParent,
/*290181*/                OPC_MoveParent,
/*290182*/                OPC_MoveChild2,
/*290183*/                OPC_CheckImmAllZerosV,
/*290184*/                OPC_MoveParent,
/*290185*/                OPC_CheckType, MVT::v8f32,
/*290187*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*290189*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*290192*/                OPC_EmitMergeInputChains1_2,
/*290193*/                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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                          // Dst: (VMAXPSZ256rmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*290206*/              0, /*End of Scope*/
/*290207*/            0, // EndSwitchOpcode
/*290208*/          /*SwitchOpcode*/ 14|128,2/*270*/, TARGET_VAL(X86ISD::FMINC),// ->290482
/*290212*/            OPC_Scope, 3|128,1/*131*/, /*->290346*/ // 2 children in Scope
/*290215*/              OPC_RecordChild0, // #1 = $src1
/*290216*/              OPC_MoveChild1,
/*290217*/              OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->290278
/*290221*/                OPC_RecordMemRef,
/*290222*/                OPC_RecordNode, // #2 = 'ld' chained node
/*290223*/                OPC_CheckFoldableChainNode,
/*290224*/                OPC_RecordChild1, // #3 = $src2
/*290225*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*290227*/                OPC_CheckPredicate, 9, // Predicate_load
/*290229*/                OPC_MoveParent,
/*290230*/                OPC_MoveParent,
/*290231*/                OPC_MoveChild2,
/*290232*/                OPC_CheckImmAllZerosV,
/*290233*/                OPC_MoveParent,
/*290234*/                OPC_SwitchType /*2 cases */, 19, MVT::v8f64,// ->290256
/*290237*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*290239*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*290242*/                  OPC_EmitMergeInputChains1_2,
/*290243*/                  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>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                            // Dst: (VMINCPDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*290256*/                /*SwitchType*/ 19, MVT::v8f32,// ->290277
/*290258*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*290260*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*290263*/                  OPC_EmitMergeInputChains1_2,
/*290264*/                  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>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                            // Dst: (VMINCPSZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*290277*/                0, // EndSwitchType
/*290278*/              /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->290345
/*290281*/                OPC_RecordMemRef,
/*290282*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*290283*/                OPC_CheckFoldableChainNode,
/*290284*/                OPC_RecordChild1, // #3 = $src2
/*290285*/                OPC_Scope, 28, /*->290315*/ // 2 children in Scope
/*290287*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*290289*/                  OPC_MoveParent,
/*290290*/                  OPC_MoveParent,
/*290291*/                  OPC_MoveChild2,
/*290292*/                  OPC_CheckImmAllZerosV,
/*290293*/                  OPC_MoveParent,
/*290294*/                  OPC_CheckType, MVT::v8f64,
/*290296*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*290298*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*290301*/                  OPC_EmitMergeInputChains1_2,
/*290302*/                  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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                            // Dst: (VMINCPDZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*290315*/                /*Scope*/ 28, /*->290344*/
/*290316*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*290318*/                  OPC_MoveParent,
/*290319*/                  OPC_MoveParent,
/*290320*/                  OPC_MoveChild2,
/*290321*/                  OPC_CheckImmAllZerosV,
/*290322*/                  OPC_MoveParent,
/*290323*/                  OPC_CheckType, MVT::v8f32,
/*290325*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*290327*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*290330*/                  OPC_EmitMergeInputChains1_2,
/*290331*/                  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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                            // Dst: (VMINCPSZ256rmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*290344*/                0, /*End of Scope*/
/*290345*/              0, // EndSwitchOpcode
/*290346*/            /*Scope*/ 5|128,1/*133*/, /*->290481*/
/*290348*/              OPC_MoveChild0,
/*290349*/              OPC_SwitchOpcode /*2 cases */, 58, TARGET_VAL(ISD::LOAD),// ->290411
/*290353*/                OPC_RecordMemRef,
/*290354*/                OPC_RecordNode, // #1 = 'ld' chained node
/*290355*/                OPC_CheckFoldableChainNode,
/*290356*/                OPC_RecordChild1, // #2 = $src2
/*290357*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*290359*/                OPC_CheckPredicate, 9, // Predicate_load
/*290361*/                OPC_MoveParent,
/*290362*/                OPC_RecordChild1, // #3 = $src1
/*290363*/                OPC_MoveParent,
/*290364*/                OPC_MoveChild2,
/*290365*/                OPC_CheckImmAllZerosV,
/*290366*/                OPC_MoveParent,
/*290367*/                OPC_SwitchType /*2 cases */, 19, MVT::v8f64,// ->290389
/*290370*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*290372*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*290375*/                  OPC_EmitMergeInputChains1_1,
/*290376*/                  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>>, VR512:{ *:[v8f64] }:$src1), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                            // Dst: (VMINCPDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*290389*/                /*SwitchType*/ 19, MVT::v8f32,// ->290410
/*290391*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*290393*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*290396*/                  OPC_EmitMergeInputChains1_1,
/*290397*/                  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>>, VR256X:{ *:[v8f32] }:$src1), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                            // Dst: (VMINCPSZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*290410*/                0, // EndSwitchType
/*290411*/              /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->290480
/*290414*/                OPC_RecordMemRef,
/*290415*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*290416*/                OPC_CheckFoldableChainNode,
/*290417*/                OPC_RecordChild1, // #2 = $src2
/*290418*/                OPC_Scope, 29, /*->290449*/ // 2 children in Scope
/*290420*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*290422*/                  OPC_MoveParent,
/*290423*/                  OPC_RecordChild1, // #3 = $src1
/*290424*/                  OPC_MoveParent,
/*290425*/                  OPC_MoveChild2,
/*290426*/                  OPC_CheckImmAllZerosV,
/*290427*/                  OPC_MoveParent,
/*290428*/                  OPC_CheckType, MVT::v8f64,
/*290430*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*290432*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*290435*/                  OPC_EmitMergeInputChains1_1,
/*290436*/                  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] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src1), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                            // Dst: (VMINCPDZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*290449*/                /*Scope*/ 29, /*->290479*/
/*290450*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*290452*/                  OPC_MoveParent,
/*290453*/                  OPC_RecordChild1, // #3 = $src1
/*290454*/                  OPC_MoveParent,
/*290455*/                  OPC_MoveChild2,
/*290456*/                  OPC_CheckImmAllZerosV,
/*290457*/                  OPC_MoveParent,
/*290458*/                  OPC_CheckType, MVT::v8f32,
/*290460*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*290462*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*290465*/                  OPC_EmitMergeInputChains1_1,
/*290466*/                  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] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                            // Dst: (VMINCPSZ256rmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*290479*/                0, /*End of Scope*/
/*290480*/              0, // EndSwitchOpcode
/*290481*/            0, /*End of Scope*/
/*290482*/          /*SwitchOpcode*/ 14|128,2/*270*/, TARGET_VAL(X86ISD::FMAXC),// ->290756
/*290486*/            OPC_Scope, 3|128,1/*131*/, /*->290620*/ // 2 children in Scope
/*290489*/              OPC_RecordChild0, // #1 = $src1
/*290490*/              OPC_MoveChild1,
/*290491*/              OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->290552
/*290495*/                OPC_RecordMemRef,
/*290496*/                OPC_RecordNode, // #2 = 'ld' chained node
/*290497*/                OPC_CheckFoldableChainNode,
/*290498*/                OPC_RecordChild1, // #3 = $src2
/*290499*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*290501*/                OPC_CheckPredicate, 9, // Predicate_load
/*290503*/                OPC_MoveParent,
/*290504*/                OPC_MoveParent,
/*290505*/                OPC_MoveChild2,
/*290506*/                OPC_CheckImmAllZerosV,
/*290507*/                OPC_MoveParent,
/*290508*/                OPC_SwitchType /*2 cases */, 19, MVT::v8f64,// ->290530
/*290511*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*290513*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*290516*/                  OPC_EmitMergeInputChains1_2,
/*290517*/                  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>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                            // Dst: (VMAXCPDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*290530*/                /*SwitchType*/ 19, MVT::v8f32,// ->290551
/*290532*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*290534*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*290537*/                  OPC_EmitMergeInputChains1_2,
/*290538*/                  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>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                            // Dst: (VMAXCPSZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*290551*/                0, // EndSwitchType
/*290552*/              /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->290619
/*290555*/                OPC_RecordMemRef,
/*290556*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*290557*/                OPC_CheckFoldableChainNode,
/*290558*/                OPC_RecordChild1, // #3 = $src2
/*290559*/                OPC_Scope, 28, /*->290589*/ // 2 children in Scope
/*290561*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*290563*/                  OPC_MoveParent,
/*290564*/                  OPC_MoveParent,
/*290565*/                  OPC_MoveChild2,
/*290566*/                  OPC_CheckImmAllZerosV,
/*290567*/                  OPC_MoveParent,
/*290568*/                  OPC_CheckType, MVT::v8f64,
/*290570*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*290572*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*290575*/                  OPC_EmitMergeInputChains1_2,
/*290576*/                  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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                            // Dst: (VMAXCPDZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*290589*/                /*Scope*/ 28, /*->290618*/
/*290590*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*290592*/                  OPC_MoveParent,
/*290593*/                  OPC_MoveParent,
/*290594*/                  OPC_MoveChild2,
/*290595*/                  OPC_CheckImmAllZerosV,
/*290596*/                  OPC_MoveParent,
/*290597*/                  OPC_CheckType, MVT::v8f32,
/*290599*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*290601*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*290604*/                  OPC_EmitMergeInputChains1_2,
/*290605*/                  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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                            // Dst: (VMAXCPSZ256rmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*290618*/                0, /*End of Scope*/
/*290619*/              0, // EndSwitchOpcode
/*290620*/            /*Scope*/ 5|128,1/*133*/, /*->290755*/
/*290622*/              OPC_MoveChild0,
/*290623*/              OPC_SwitchOpcode /*2 cases */, 58, TARGET_VAL(ISD::LOAD),// ->290685
/*290627*/                OPC_RecordMemRef,
/*290628*/                OPC_RecordNode, // #1 = 'ld' chained node
/*290629*/                OPC_CheckFoldableChainNode,
/*290630*/                OPC_RecordChild1, // #2 = $src2
/*290631*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*290633*/                OPC_CheckPredicate, 9, // Predicate_load
/*290635*/                OPC_MoveParent,
/*290636*/                OPC_RecordChild1, // #3 = $src1
/*290637*/                OPC_MoveParent,
/*290638*/                OPC_MoveChild2,
/*290639*/                OPC_CheckImmAllZerosV,
/*290640*/                OPC_MoveParent,
/*290641*/                OPC_SwitchType /*2 cases */, 19, MVT::v8f64,// ->290663
/*290644*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*290646*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*290649*/                  OPC_EmitMergeInputChains1_1,
/*290650*/                  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>>, VR512:{ *:[v8f64] }:$src1), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                            // Dst: (VMAXCPDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*290663*/                /*SwitchType*/ 19, MVT::v8f32,// ->290684
/*290665*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*290667*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*290670*/                  OPC_EmitMergeInputChains1_1,
/*290671*/                  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>>, VR256X:{ *:[v8f32] }:$src1), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                            // Dst: (VMAXCPSZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*290684*/                0, // EndSwitchType
/*290685*/              /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->290754
/*290688*/                OPC_RecordMemRef,
/*290689*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*290690*/                OPC_CheckFoldableChainNode,
/*290691*/                OPC_RecordChild1, // #2 = $src2
/*290692*/                OPC_Scope, 29, /*->290723*/ // 2 children in Scope
/*290694*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*290696*/                  OPC_MoveParent,
/*290697*/                  OPC_RecordChild1, // #3 = $src1
/*290698*/                  OPC_MoveParent,
/*290699*/                  OPC_MoveChild2,
/*290700*/                  OPC_CheckImmAllZerosV,
/*290701*/                  OPC_MoveParent,
/*290702*/                  OPC_CheckType, MVT::v8f64,
/*290704*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*290706*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*290709*/                  OPC_EmitMergeInputChains1_1,
/*290710*/                  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] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src1), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                            // Dst: (VMAXCPDZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*290723*/                /*Scope*/ 29, /*->290753*/
/*290724*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*290726*/                  OPC_MoveParent,
/*290727*/                  OPC_RecordChild1, // #3 = $src1
/*290728*/                  OPC_MoveParent,
/*290729*/                  OPC_MoveChild2,
/*290730*/                  OPC_CheckImmAllZerosV,
/*290731*/                  OPC_MoveParent,
/*290732*/                  OPC_CheckType, MVT::v8f32,
/*290734*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*290736*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*290739*/                  OPC_EmitMergeInputChains1_1,
/*290740*/                  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] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                            // Dst: (VMAXCPSZ256rmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*290753*/                0, /*End of Scope*/
/*290754*/              0, // EndSwitchOpcode
/*290755*/            0, /*End of Scope*/
/*290756*/          /*SwitchOpcode*/ 3|128,1/*131*/, TARGET_VAL(X86ISD::SCALEF),// ->290891
/*290760*/            OPC_RecordChild0, // #1 = $src1
/*290761*/            OPC_MoveChild1,
/*290762*/            OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->290823
/*290766*/              OPC_RecordMemRef,
/*290767*/              OPC_RecordNode, // #2 = 'ld' chained node
/*290768*/              OPC_CheckFoldableChainNode,
/*290769*/              OPC_RecordChild1, // #3 = $src2
/*290770*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*290772*/              OPC_CheckPredicate, 9, // Predicate_load
/*290774*/              OPC_MoveParent,
/*290775*/              OPC_MoveParent,
/*290776*/              OPC_MoveChild2,
/*290777*/              OPC_CheckImmAllZerosV,
/*290778*/              OPC_MoveParent,
/*290779*/              OPC_SwitchType /*2 cases */, 19, MVT::v8f64,// ->290801
/*290782*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*290784*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*290787*/                OPC_EmitMergeInputChains1_2,
/*290788*/                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>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                          // Dst: (VSCALEFPDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*290801*/              /*SwitchType*/ 19, MVT::v8f32,// ->290822
/*290803*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*290805*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*290808*/                OPC_EmitMergeInputChains1_2,
/*290809*/                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>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                          // Dst: (VSCALEFPSZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*290822*/              0, // EndSwitchType
/*290823*/            /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->290890
/*290826*/              OPC_RecordMemRef,
/*290827*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*290828*/              OPC_CheckFoldableChainNode,
/*290829*/              OPC_RecordChild1, // #3 = $src2
/*290830*/              OPC_Scope, 28, /*->290860*/ // 2 children in Scope
/*290832*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*290834*/                OPC_MoveParent,
/*290835*/                OPC_MoveParent,
/*290836*/                OPC_MoveChild2,
/*290837*/                OPC_CheckImmAllZerosV,
/*290838*/                OPC_MoveParent,
/*290839*/                OPC_CheckType, MVT::v8f64,
/*290841*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*290843*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*290846*/                OPC_EmitMergeInputChains1_2,
/*290847*/                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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                          // Dst: (VSCALEFPDZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*290860*/              /*Scope*/ 28, /*->290889*/
/*290861*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*290863*/                OPC_MoveParent,
/*290864*/                OPC_MoveParent,
/*290865*/                OPC_MoveChild2,
/*290866*/                OPC_CheckImmAllZerosV,
/*290867*/                OPC_MoveParent,
/*290868*/                OPC_CheckType, MVT::v8f32,
/*290870*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*290872*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*290875*/                OPC_EmitMergeInputChains1_2,
/*290876*/                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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                          // Dst: (VSCALEFPSZ256rmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*290889*/              0, /*End of Scope*/
/*290890*/            0, // EndSwitchOpcode
/*290891*/          /*SwitchOpcode*/ 3|128,1/*131*/, TARGET_VAL(X86ISD::VPERMV),// ->291026
/*290895*/            OPC_RecordChild0, // #1 = $src1
/*290896*/            OPC_MoveChild1,
/*290897*/            OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->290958
/*290901*/              OPC_RecordMemRef,
/*290902*/              OPC_RecordNode, // #2 = 'ld' chained node
/*290903*/              OPC_CheckFoldableChainNode,
/*290904*/              OPC_RecordChild1, // #3 = $src2
/*290905*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*290907*/              OPC_CheckPredicate, 9, // Predicate_load
/*290909*/              OPC_MoveParent,
/*290910*/              OPC_MoveParent,
/*290911*/              OPC_MoveChild2,
/*290912*/              OPC_CheckImmAllZerosV,
/*290913*/              OPC_MoveParent,
/*290914*/              OPC_SwitchType /*2 cases */, 19, MVT::v8f32,// ->290936
/*290917*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*290919*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*290922*/                OPC_EmitMergeInputChains1_2,
/*290923*/                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>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                          // Dst: (VPERMPSZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*290936*/              /*SwitchType*/ 19, MVT::v8f64,// ->290957
/*290938*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*290940*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*290943*/                OPC_EmitMergeInputChains1_2,
/*290944*/                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>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                          // Dst: (VPERMPDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*290957*/              0, // EndSwitchType
/*290958*/            /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->291025
/*290961*/              OPC_RecordMemRef,
/*290962*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*290963*/              OPC_CheckFoldableChainNode,
/*290964*/              OPC_RecordChild1, // #3 = $src2
/*290965*/              OPC_Scope, 28, /*->290995*/ // 2 children in Scope
/*290967*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*290969*/                OPC_MoveParent,
/*290970*/                OPC_MoveParent,
/*290971*/                OPC_MoveChild2,
/*290972*/                OPC_CheckImmAllZerosV,
/*290973*/                OPC_MoveParent,
/*290974*/                OPC_CheckType, MVT::v8f32,
/*290976*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*290978*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*290981*/                OPC_EmitMergeInputChains1_2,
/*290982*/                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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                          // Dst: (VPERMPSZ256rmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*290995*/              /*Scope*/ 28, /*->291024*/
/*290996*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*290998*/                OPC_MoveParent,
/*290999*/                OPC_MoveParent,
/*291000*/                OPC_MoveChild2,
/*291001*/                OPC_CheckImmAllZerosV,
/*291002*/                OPC_MoveParent,
/*291003*/                OPC_CheckType, MVT::v8f64,
/*291005*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*291007*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*291010*/                OPC_EmitMergeInputChains1_2,
/*291011*/                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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                          // Dst: (VPERMPDZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*291024*/              0, /*End of Scope*/
/*291025*/            0, // EndSwitchOpcode
/*291026*/          /*SwitchOpcode*/ 3|128,1/*131*/, TARGET_VAL(X86ISD::VPERMILPV),// ->291161
/*291030*/            OPC_RecordChild0, // #1 = $src1
/*291031*/            OPC_MoveChild1,
/*291032*/            OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->291093
/*291036*/              OPC_RecordMemRef,
/*291037*/              OPC_RecordNode, // #2 = 'ld' chained node
/*291038*/              OPC_CheckFoldableChainNode,
/*291039*/              OPC_RecordChild1, // #3 = $src2
/*291040*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*291042*/              OPC_CheckPredicate, 9, // Predicate_load
/*291044*/              OPC_MoveParent,
/*291045*/              OPC_MoveParent,
/*291046*/              OPC_MoveChild2,
/*291047*/              OPC_CheckImmAllZerosV,
/*291048*/              OPC_MoveParent,
/*291049*/              OPC_SwitchType /*2 cases */, 19, MVT::v8f32,// ->291071
/*291052*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*291054*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*291057*/                OPC_EmitMergeInputChains1_2,
/*291058*/                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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                          // Dst: (VPERMILPSZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*291071*/              /*SwitchType*/ 19, MVT::v8f64,// ->291092
/*291073*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*291075*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*291078*/                OPC_EmitMergeInputChains1_2,
/*291079*/                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>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                          // Dst: (VPERMILPDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*291092*/              0, // EndSwitchType
/*291093*/            /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->291160
/*291096*/              OPC_RecordMemRef,
/*291097*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*291098*/              OPC_CheckFoldableChainNode,
/*291099*/              OPC_RecordChild1, // #3 = $src2
/*291100*/              OPC_Scope, 28, /*->291130*/ // 2 children in Scope
/*291102*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*291104*/                OPC_MoveParent,
/*291105*/                OPC_MoveParent,
/*291106*/                OPC_MoveChild2,
/*291107*/                OPC_CheckImmAllZerosV,
/*291108*/                OPC_MoveParent,
/*291109*/                OPC_CheckType, MVT::v8f32,
/*291111*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*291113*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*291116*/                OPC_EmitMergeInputChains1_2,
/*291117*/                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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                          // Dst: (VPERMILPSZ256rmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*291130*/              /*Scope*/ 28, /*->291159*/
/*291131*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*291133*/                OPC_MoveParent,
/*291134*/                OPC_MoveParent,
/*291135*/                OPC_MoveChild2,
/*291136*/                OPC_CheckImmAllZerosV,
/*291137*/                OPC_MoveParent,
/*291138*/                OPC_CheckType, MVT::v8f64,
/*291140*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*291142*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*291145*/                OPC_EmitMergeInputChains1_2,
/*291146*/                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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                          // Dst: (VPERMILPDZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*291159*/              0, /*End of Scope*/
/*291160*/            0, // EndSwitchOpcode
/*291161*/          /*SwitchOpcode*/ 79|128,3/*463*/, TARGET_VAL(ISD::STRICT_FMA),// ->291628
/*291165*/            OPC_RecordNode, // #1 = 'X86strict_Fmadd' chained node
/*291166*/            OPC_CheckFoldableChainNode,
/*291167*/            OPC_Scope, 47|128,2/*303*/, /*->291473*/ // 2 children in Scope
/*291170*/              OPC_RecordChild1, // #2 = $src2
/*291171*/              OPC_Scope, 19|128,1/*147*/, /*->291321*/ // 2 children in Scope
/*291174*/                OPC_RecordChild2, // #3 = $src1
/*291175*/                OPC_MoveChild3,
/*291176*/                OPC_SwitchOpcode /*2 cases */, 65, TARGET_VAL(ISD::LOAD),// ->291245
/*291180*/                  OPC_RecordMemRef,
/*291181*/                  OPC_RecordNode, // #4 = 'ld' chained node
/*291182*/                  OPC_CheckFoldableChainNode,
/*291183*/                  OPC_RecordChild1, // #5 = $src3
/*291184*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*291186*/                  OPC_CheckPredicate, 9, // Predicate_load
/*291188*/                  OPC_MoveParent,
/*291189*/                  OPC_MoveParent,
/*291190*/                  OPC_MoveChild2,
/*291191*/                  OPC_CheckImmAllZerosV,
/*291192*/                  OPC_MoveParent,
/*291193*/                  OPC_SwitchType /*2 cases */, 23, MVT::v8f32,// ->291219
/*291196*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*291198*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/5, // selectAddr:$src3 #6 #7 #8 #9 #10
/*291201*/                    OPC_EmitMergeInputChains, 2, 1, 4, 
/*291205*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f32, 8/*#Ops*/, 3, 0, 2, 6, 7, 8, 9, 10, 
                              // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_Fmadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                              // Dst: (VFMADD213PSZ256mkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*291219*/                  /*SwitchType*/ 23, MVT::v8f64,// ->291244
/*291221*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*291223*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/5, // selectAddr:$src3 #6 #7 #8 #9 #10
/*291226*/                    OPC_EmitMergeInputChains, 2, 1, 4, 
/*291230*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f64, 8/*#Ops*/, 3, 0, 2, 6, 7, 8, 9, 10, 
                              // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_Fmadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                              // Dst: (VFMADD213PDZmkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*291244*/                  0, // EndSwitchType
/*291245*/                /*SwitchOpcode*/ 72, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->291320
/*291248*/                  OPC_RecordMemRef,
/*291249*/                  OPC_RecordNode, // #4 = 'X86VBroadcastld' chained node
/*291250*/                  OPC_CheckFoldableChainNode,
/*291251*/                  OPC_RecordChild1, // #5 = $src3
/*291252*/                  OPC_Scope, 32, /*->291286*/ // 2 children in Scope
/*291254*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*291256*/                    OPC_MoveParent,
/*291257*/                    OPC_MoveParent,
/*291258*/                    OPC_MoveChild2,
/*291259*/                    OPC_CheckImmAllZerosV,
/*291260*/                    OPC_MoveParent,
/*291261*/                    OPC_CheckType, MVT::v8f32,
/*291263*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*291265*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/5, // selectAddr:$src3 #6 #7 #8 #9 #10
/*291268*/                    OPC_EmitMergeInputChains, 2, 1, 4, 
/*291272*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZ256mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f32, 8/*#Ops*/, 3, 0, 2, 6, 7, 8, 9, 10, 
                              // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_Fmadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                              // Dst: (VFMADD213PSZ256mbkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*291286*/                  /*Scope*/ 32, /*->291319*/
/*291287*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*291289*/                    OPC_MoveParent,
/*291290*/                    OPC_MoveParent,
/*291291*/                    OPC_MoveChild2,
/*291292*/                    OPC_CheckImmAllZerosV,
/*291293*/                    OPC_MoveParent,
/*291294*/                    OPC_CheckType, MVT::v8f64,
/*291296*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*291298*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/5, // selectAddr:$src3 #6 #7 #8 #9 #10
/*291301*/                    OPC_EmitMergeInputChains, 2, 1, 4, 
/*291305*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f64, 8/*#Ops*/, 3, 0, 2, 6, 7, 8, 9, 10, 
                              // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_Fmadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                              // Dst: (VFMADD213PDZmbkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*291319*/                  0, /*End of Scope*/
/*291320*/                0, // EndSwitchOpcode
/*291321*/              /*Scope*/ 21|128,1/*149*/, /*->291472*/
/*291323*/                OPC_MoveChild2,
/*291324*/                OPC_SwitchOpcode /*2 cases */, 66, TARGET_VAL(ISD::LOAD),// ->291394
/*291328*/                  OPC_RecordMemRef,
/*291329*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*291330*/                  OPC_CheckFoldableChainNode,
/*291331*/                  OPC_RecordChild1, // #4 = $src3
/*291332*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*291334*/                  OPC_CheckPredicate, 9, // Predicate_load
/*291336*/                  OPC_MoveParent,
/*291337*/                  OPC_RecordChild3, // #5 = $src1
/*291338*/                  OPC_MoveParent,
/*291339*/                  OPC_MoveChild2,
/*291340*/                  OPC_CheckImmAllZerosV,
/*291341*/                  OPC_MoveParent,
/*291342*/                  OPC_SwitchType /*2 cases */, 23, MVT::v8f32,// ->291368
/*291345*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*291347*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*291350*/                    OPC_EmitMergeInputChains, 2, 1, 3, 
/*291354*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PSZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f32, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                              // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_Fmadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8f32] }:$src1), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                              // Dst: (VFMADD231PSZ256mkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*291368*/                  /*SwitchType*/ 23, MVT::v8f64,// ->291393
/*291370*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*291372*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*291375*/                    OPC_EmitMergeInputChains, 2, 1, 3, 
/*291379*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PDZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f64, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                              // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_Fmadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v8f64] }:$src1), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                              // Dst: (VFMADD231PDZmkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*291393*/                  0, // EndSwitchType
/*291394*/                /*SwitchOpcode*/ 74, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->291471
/*291397*/                  OPC_RecordMemRef,
/*291398*/                  OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*291399*/                  OPC_CheckFoldableChainNode,
/*291400*/                  OPC_RecordChild1, // #4 = $src3
/*291401*/                  OPC_Scope, 33, /*->291436*/ // 2 children in Scope
/*291403*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*291405*/                    OPC_MoveParent,
/*291406*/                    OPC_RecordChild3, // #5 = $src1
/*291407*/                    OPC_MoveParent,
/*291408*/                    OPC_MoveChild2,
/*291409*/                    OPC_CheckImmAllZerosV,
/*291410*/                    OPC_MoveParent,
/*291411*/                    OPC_CheckType, MVT::v8f32,
/*291413*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*291415*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*291418*/                    OPC_EmitMergeInputChains, 2, 1, 3, 
/*291422*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PSZ256mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f32, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                              // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_Fmadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                              // Dst: (VFMADD231PSZ256mbkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*291436*/                  /*Scope*/ 33, /*->291470*/
/*291437*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*291439*/                    OPC_MoveParent,
/*291440*/                    OPC_RecordChild3, // #5 = $src1
/*291441*/                    OPC_MoveParent,
/*291442*/                    OPC_MoveChild2,
/*291443*/                    OPC_CheckImmAllZerosV,
/*291444*/                    OPC_MoveParent,
/*291445*/                    OPC_CheckType, MVT::v8f64,
/*291447*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*291449*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*291452*/                    OPC_EmitMergeInputChains, 2, 1, 3, 
/*291456*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PDZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f64, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                              // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_Fmadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src1), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                              // Dst: (VFMADD231PDZmbkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*291470*/                  0, /*End of Scope*/
/*291471*/                0, // EndSwitchOpcode
/*291472*/              0, /*End of Scope*/
/*291473*/            /*Scope*/ 24|128,1/*152*/, /*->291627*/
/*291475*/              OPC_MoveChild1,
/*291476*/              OPC_SwitchOpcode /*2 cases */, 67, TARGET_VAL(ISD::LOAD),// ->291547
/*291480*/                OPC_RecordMemRef,
/*291481*/                OPC_RecordNode, // #2 = 'ld' chained node
/*291482*/                OPC_CheckFoldableChainNode,
/*291483*/                OPC_RecordChild1, // #3 = $src3
/*291484*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*291486*/                OPC_CheckPredicate, 9, // Predicate_load
/*291488*/                OPC_MoveParent,
/*291489*/                OPC_RecordChild2, // #4 = $src1
/*291490*/                OPC_RecordChild3, // #5 = $src2
/*291491*/                OPC_MoveParent,
/*291492*/                OPC_MoveChild2,
/*291493*/                OPC_CheckImmAllZerosV,
/*291494*/                OPC_MoveParent,
/*291495*/                OPC_SwitchType /*2 cases */, 23, MVT::v8f32,// ->291521
/*291498*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*291500*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*291503*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*291507*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PSZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_Fmadd:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                            // Dst: (VFMADD132PSZ256mkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*291521*/                /*SwitchType*/ 23, MVT::v8f64,// ->291546
/*291523*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*291525*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*291528*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*291532*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PDZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_Fmadd:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                            // Dst: (VFMADD132PDZmkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*291546*/                0, // EndSwitchType
/*291547*/              /*SwitchOpcode*/ 76, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->291626
/*291550*/                OPC_RecordMemRef,
/*291551*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*291552*/                OPC_CheckFoldableChainNode,
/*291553*/                OPC_RecordChild1, // #3 = $src3
/*291554*/                OPC_Scope, 34, /*->291590*/ // 2 children in Scope
/*291556*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*291558*/                  OPC_MoveParent,
/*291559*/                  OPC_RecordChild2, // #4 = $src1
/*291560*/                  OPC_RecordChild3, // #5 = $src2
/*291561*/                  OPC_MoveParent,
/*291562*/                  OPC_MoveChild2,
/*291563*/                  OPC_CheckImmAllZerosV,
/*291564*/                  OPC_MoveParent,
/*291565*/                  OPC_CheckType, MVT::v8f32,
/*291567*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*291569*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*291572*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*291576*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PSZ256mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_Fmadd:{ *:[v8f32] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                            // Dst: (VFMADD132PSZ256mbkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*291590*/                /*Scope*/ 34, /*->291625*/
/*291591*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*291593*/                  OPC_MoveParent,
/*291594*/                  OPC_RecordChild2, // #4 = $src1
/*291595*/                  OPC_RecordChild3, // #5 = $src2
/*291596*/                  OPC_MoveParent,
/*291597*/                  OPC_MoveChild2,
/*291598*/                  OPC_CheckImmAllZerosV,
/*291599*/                  OPC_MoveParent,
/*291600*/                  OPC_CheckType, MVT::v8f64,
/*291602*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*291604*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*291607*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*291611*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PDZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_Fmadd:{ *:[v8f64] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                            // Dst: (VFMADD132PDZmbkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*291625*/                0, /*End of Scope*/
/*291626*/              0, // EndSwitchOpcode
/*291627*/            0, /*End of Scope*/
/*291628*/          /*SwitchOpcode*/ 49|128,3/*433*/, TARGET_VAL(ISD::FMA),// ->292065
/*291632*/            OPC_Scope, 31|128,2/*287*/, /*->291922*/ // 2 children in Scope
/*291635*/              OPC_RecordChild0, // #1 = $src2
/*291636*/              OPC_Scope, 15|128,1/*143*/, /*->291782*/ // 2 children in Scope
/*291639*/                OPC_RecordChild1, // #2 = $src1
/*291640*/                OPC_MoveChild2,
/*291641*/                OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->291708
/*291645*/                  OPC_RecordMemRef,
/*291646*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*291647*/                  OPC_CheckFoldableChainNode,
/*291648*/                  OPC_RecordChild1, // #4 = $src3
/*291649*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*291651*/                  OPC_CheckPredicate, 9, // Predicate_load
/*291653*/                  OPC_MoveParent,
/*291654*/                  OPC_MoveParent,
/*291655*/                  OPC_MoveChild2,
/*291656*/                  OPC_CheckImmAllZerosV,
/*291657*/                  OPC_MoveParent,
/*291658*/                  OPC_SwitchType /*2 cases */, 22, MVT::v8f32,// ->291683
/*291661*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*291663*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*291666*/                    OPC_EmitMergeInputChains, 1, 3, 
/*291669*/                    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>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                              // Dst: (VFMADD213PSZ256mkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*291683*/                  /*SwitchType*/ 22, MVT::v8f64,// ->291707
/*291685*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*291687*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*291690*/                    OPC_EmitMergeInputChains, 1, 3, 
/*291693*/                    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>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                              // Dst: (VFMADD213PDZmkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*291707*/                  0, // EndSwitchType
/*291708*/                /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->291781
/*291711*/                  OPC_RecordMemRef,
/*291712*/                  OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*291713*/                  OPC_CheckFoldableChainNode,
/*291714*/                  OPC_RecordChild1, // #4 = $src3
/*291715*/                  OPC_Scope, 31, /*->291748*/ // 2 children in Scope
/*291717*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*291719*/                    OPC_MoveParent,
/*291720*/                    OPC_MoveParent,
/*291721*/                    OPC_MoveChild2,
/*291722*/                    OPC_CheckImmAllZerosV,
/*291723*/                    OPC_MoveParent,
/*291724*/                    OPC_CheckType, MVT::v8f32,
/*291726*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*291728*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*291731*/                    OPC_EmitMergeInputChains, 1, 3, 
/*291734*/                    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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                              // Dst: (VFMADD213PSZ256mbkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*291748*/                  /*Scope*/ 31, /*->291780*/
/*291749*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*291751*/                    OPC_MoveParent,
/*291752*/                    OPC_MoveParent,
/*291753*/                    OPC_MoveChild2,
/*291754*/                    OPC_CheckImmAllZerosV,
/*291755*/                    OPC_MoveParent,
/*291756*/                    OPC_CheckType, MVT::v8f64,
/*291758*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*291760*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*291763*/                    OPC_EmitMergeInputChains, 1, 3, 
/*291766*/                    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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                              // Dst: (VFMADD213PDZmbkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*291780*/                  0, /*End of Scope*/
/*291781*/                0, // EndSwitchOpcode
/*291782*/              /*Scope*/ 9|128,1/*137*/, /*->291921*/
/*291784*/                OPC_MoveChild1,
/*291785*/                OPC_SwitchOpcode /*2 cases */, 60, TARGET_VAL(ISD::LOAD),// ->291849
/*291789*/                  OPC_RecordMemRef,
/*291790*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*291791*/                  OPC_CheckFoldableChainNode,
/*291792*/                  OPC_RecordChild1, // #3 = $src3
/*291793*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*291795*/                  OPC_CheckPredicate, 9, // Predicate_load
/*291797*/                  OPC_MoveParent,
/*291798*/                  OPC_RecordChild2, // #4 = $src1
/*291799*/                  OPC_MoveParent,
/*291800*/                  OPC_MoveChild2,
/*291801*/                  OPC_CheckImmAllZerosV,
/*291802*/                  OPC_MoveParent,
/*291803*/                  OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->291826
/*291806*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*291808*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*291811*/                    OPC_EmitMergeInputChains1_2,
/*291812*/                    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>>, VR256X:{ *:[v8f32] }:$src1), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                              // Dst: (VFMADD231PSZ256mkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*291826*/                  /*SwitchType*/ 20, MVT::v8f64,// ->291848
/*291828*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*291830*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*291833*/                    OPC_EmitMergeInputChains1_2,
/*291834*/                    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>>, VR512:{ *:[v8f64] }:$src1), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                              // Dst: (VFMADD231PDZmkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*291848*/                  0, // EndSwitchType
/*291849*/                /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->291920
/*291852*/                  OPC_RecordMemRef,
/*291853*/                  OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*291854*/                  OPC_CheckFoldableChainNode,
/*291855*/                  OPC_RecordChild1, // #3 = $src3
/*291856*/                  OPC_Scope, 30, /*->291888*/ // 2 children in Scope
/*291858*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*291860*/                    OPC_MoveParent,
/*291861*/                    OPC_RecordChild2, // #4 = $src1
/*291862*/                    OPC_MoveParent,
/*291863*/                    OPC_MoveChild2,
/*291864*/                    OPC_CheckImmAllZerosV,
/*291865*/                    OPC_MoveParent,
/*291866*/                    OPC_CheckType, MVT::v8f32,
/*291868*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*291870*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*291873*/                    OPC_EmitMergeInputChains1_2,
/*291874*/                    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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                              // Dst: (VFMADD231PSZ256mbkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*291888*/                  /*Scope*/ 30, /*->291919*/
/*291889*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*291891*/                    OPC_MoveParent,
/*291892*/                    OPC_RecordChild2, // #4 = $src1
/*291893*/                    OPC_MoveParent,
/*291894*/                    OPC_MoveChild2,
/*291895*/                    OPC_CheckImmAllZerosV,
/*291896*/                    OPC_MoveParent,
/*291897*/                    OPC_CheckType, MVT::v8f64,
/*291899*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*291901*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*291904*/                    OPC_EmitMergeInputChains1_2,
/*291905*/                    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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src1), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                              // Dst: (VFMADD231PDZmbkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*291919*/                  0, /*End of Scope*/
/*291920*/                0, // EndSwitchOpcode
/*291921*/              0, /*End of Scope*/
/*291922*/            /*Scope*/ 12|128,1/*140*/, /*->292064*/
/*291924*/              OPC_MoveChild0,
/*291925*/              OPC_SwitchOpcode /*2 cases */, 61, TARGET_VAL(ISD::LOAD),// ->291990
/*291929*/                OPC_RecordMemRef,
/*291930*/                OPC_RecordNode, // #1 = 'ld' chained node
/*291931*/                OPC_CheckFoldableChainNode,
/*291932*/                OPC_RecordChild1, // #2 = $src3
/*291933*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*291935*/                OPC_CheckPredicate, 9, // Predicate_load
/*291937*/                OPC_MoveParent,
/*291938*/                OPC_RecordChild1, // #3 = $src1
/*291939*/                OPC_RecordChild2, // #4 = $src2
/*291940*/                OPC_MoveParent,
/*291941*/                OPC_MoveChild2,
/*291942*/                OPC_CheckImmAllZerosV,
/*291943*/                OPC_MoveParent,
/*291944*/                OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->291967
/*291947*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*291949*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*291952*/                  OPC_EmitMergeInputChains1_1,
/*291953*/                  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>>, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                            // Dst: (VFMADD132PSZ256mkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*291967*/                /*SwitchType*/ 20, MVT::v8f64,// ->291989
/*291969*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*291971*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*291974*/                  OPC_EmitMergeInputChains1_1,
/*291975*/                  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>>, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                            // Dst: (VFMADD132PDZmkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*291989*/                0, // EndSwitchType
/*291990*/              /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->292063
/*291993*/                OPC_RecordMemRef,
/*291994*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*291995*/                OPC_CheckFoldableChainNode,
/*291996*/                OPC_RecordChild1, // #2 = $src3
/*291997*/                OPC_Scope, 31, /*->292030*/ // 2 children in Scope
/*291999*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*292001*/                  OPC_MoveParent,
/*292002*/                  OPC_RecordChild1, // #3 = $src1
/*292003*/                  OPC_RecordChild2, // #4 = $src2
/*292004*/                  OPC_MoveParent,
/*292005*/                  OPC_MoveChild2,
/*292006*/                  OPC_CheckImmAllZerosV,
/*292007*/                  OPC_MoveParent,
/*292008*/                  OPC_CheckType, MVT::v8f32,
/*292010*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*292012*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*292015*/                  OPC_EmitMergeInputChains1_1,
/*292016*/                  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] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                            // Dst: (VFMADD132PSZ256mbkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*292030*/                /*Scope*/ 31, /*->292062*/
/*292031*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*292033*/                  OPC_MoveParent,
/*292034*/                  OPC_RecordChild1, // #3 = $src1
/*292035*/                  OPC_RecordChild2, // #4 = $src2
/*292036*/                  OPC_MoveParent,
/*292037*/                  OPC_MoveChild2,
/*292038*/                  OPC_CheckImmAllZerosV,
/*292039*/                  OPC_MoveParent,
/*292040*/                  OPC_CheckType, MVT::v8f64,
/*292042*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*292044*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*292047*/                  OPC_EmitMergeInputChains1_1,
/*292048*/                  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] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                            // Dst: (VFMADD132PDZmbkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*292062*/                0, /*End of Scope*/
/*292063*/              0, // EndSwitchOpcode
/*292064*/            0, /*End of Scope*/
/*292065*/          /*SwitchOpcode*/ 49|128,3/*433*/, TARGET_VAL(X86ISD::FMSUB),// ->292502
/*292069*/            OPC_Scope, 31|128,2/*287*/, /*->292359*/ // 2 children in Scope
/*292072*/              OPC_RecordChild0, // #1 = $src2
/*292073*/              OPC_Scope, 15|128,1/*143*/, /*->292219*/ // 2 children in Scope
/*292076*/                OPC_RecordChild1, // #2 = $src1
/*292077*/                OPC_MoveChild2,
/*292078*/                OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->292145
/*292082*/                  OPC_RecordMemRef,
/*292083*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*292084*/                  OPC_CheckFoldableChainNode,
/*292085*/                  OPC_RecordChild1, // #4 = $src3
/*292086*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*292088*/                  OPC_CheckPredicate, 9, // Predicate_load
/*292090*/                  OPC_MoveParent,
/*292091*/                  OPC_MoveParent,
/*292092*/                  OPC_MoveChild2,
/*292093*/                  OPC_CheckImmAllZerosV,
/*292094*/                  OPC_MoveParent,
/*292095*/                  OPC_SwitchType /*2 cases */, 22, MVT::v8f32,// ->292120
/*292098*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*292100*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*292103*/                    OPC_EmitMergeInputChains, 1, 3, 
/*292106*/                    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>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                              // Dst: (VFMSUB213PSZ256mkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*292120*/                  /*SwitchType*/ 22, MVT::v8f64,// ->292144
/*292122*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*292124*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*292127*/                    OPC_EmitMergeInputChains, 1, 3, 
/*292130*/                    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>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                              // Dst: (VFMSUB213PDZmkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*292144*/                  0, // EndSwitchType
/*292145*/                /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->292218
/*292148*/                  OPC_RecordMemRef,
/*292149*/                  OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*292150*/                  OPC_CheckFoldableChainNode,
/*292151*/                  OPC_RecordChild1, // #4 = $src3
/*292152*/                  OPC_Scope, 31, /*->292185*/ // 2 children in Scope
/*292154*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*292156*/                    OPC_MoveParent,
/*292157*/                    OPC_MoveParent,
/*292158*/                    OPC_MoveChild2,
/*292159*/                    OPC_CheckImmAllZerosV,
/*292160*/                    OPC_MoveParent,
/*292161*/                    OPC_CheckType, MVT::v8f32,
/*292163*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*292165*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*292168*/                    OPC_EmitMergeInputChains, 1, 3, 
/*292171*/                    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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                              // Dst: (VFMSUB213PSZ256mbkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*292185*/                  /*Scope*/ 31, /*->292217*/
/*292186*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*292188*/                    OPC_MoveParent,
/*292189*/                    OPC_MoveParent,
/*292190*/                    OPC_MoveChild2,
/*292191*/                    OPC_CheckImmAllZerosV,
/*292192*/                    OPC_MoveParent,
/*292193*/                    OPC_CheckType, MVT::v8f64,
/*292195*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*292197*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*292200*/                    OPC_EmitMergeInputChains, 1, 3, 
/*292203*/                    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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                              // Dst: (VFMSUB213PDZmbkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*292217*/                  0, /*End of Scope*/
/*292218*/                0, // EndSwitchOpcode
/*292219*/              /*Scope*/ 9|128,1/*137*/, /*->292358*/
/*292221*/                OPC_MoveChild1,
/*292222*/                OPC_SwitchOpcode /*2 cases */, 60, TARGET_VAL(ISD::LOAD),// ->292286
/*292226*/                  OPC_RecordMemRef,
/*292227*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*292228*/                  OPC_CheckFoldableChainNode,
/*292229*/                  OPC_RecordChild1, // #3 = $src3
/*292230*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*292232*/                  OPC_CheckPredicate, 9, // Predicate_load
/*292234*/                  OPC_MoveParent,
/*292235*/                  OPC_RecordChild2, // #4 = $src1
/*292236*/                  OPC_MoveParent,
/*292237*/                  OPC_MoveChild2,
/*292238*/                  OPC_CheckImmAllZerosV,
/*292239*/                  OPC_MoveParent,
/*292240*/                  OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->292263
/*292243*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*292245*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*292248*/                    OPC_EmitMergeInputChains1_2,
/*292249*/                    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>>, VR256X:{ *:[v8f32] }:$src1), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                              // Dst: (VFMSUB231PSZ256mkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*292263*/                  /*SwitchType*/ 20, MVT::v8f64,// ->292285
/*292265*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*292267*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*292270*/                    OPC_EmitMergeInputChains1_2,
/*292271*/                    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>>, VR512:{ *:[v8f64] }:$src1), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                              // Dst: (VFMSUB231PDZmkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*292285*/                  0, // EndSwitchType
/*292286*/                /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->292357
/*292289*/                  OPC_RecordMemRef,
/*292290*/                  OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*292291*/                  OPC_CheckFoldableChainNode,
/*292292*/                  OPC_RecordChild1, // #3 = $src3
/*292293*/                  OPC_Scope, 30, /*->292325*/ // 2 children in Scope
/*292295*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*292297*/                    OPC_MoveParent,
/*292298*/                    OPC_RecordChild2, // #4 = $src1
/*292299*/                    OPC_MoveParent,
/*292300*/                    OPC_MoveChild2,
/*292301*/                    OPC_CheckImmAllZerosV,
/*292302*/                    OPC_MoveParent,
/*292303*/                    OPC_CheckType, MVT::v8f32,
/*292305*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*292307*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*292310*/                    OPC_EmitMergeInputChains1_2,
/*292311*/                    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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                              // Dst: (VFMSUB231PSZ256mbkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*292325*/                  /*Scope*/ 30, /*->292356*/
/*292326*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*292328*/                    OPC_MoveParent,
/*292329*/                    OPC_RecordChild2, // #4 = $src1
/*292330*/                    OPC_MoveParent,
/*292331*/                    OPC_MoveChild2,
/*292332*/                    OPC_CheckImmAllZerosV,
/*292333*/                    OPC_MoveParent,
/*292334*/                    OPC_CheckType, MVT::v8f64,
/*292336*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*292338*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*292341*/                    OPC_EmitMergeInputChains1_2,
/*292342*/                    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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src1), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                              // Dst: (VFMSUB231PDZmbkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*292356*/                  0, /*End of Scope*/
/*292357*/                0, // EndSwitchOpcode
/*292358*/              0, /*End of Scope*/
/*292359*/            /*Scope*/ 12|128,1/*140*/, /*->292501*/
/*292361*/              OPC_MoveChild0,
/*292362*/              OPC_SwitchOpcode /*2 cases */, 61, TARGET_VAL(ISD::LOAD),// ->292427
/*292366*/                OPC_RecordMemRef,
/*292367*/                OPC_RecordNode, // #1 = 'ld' chained node
/*292368*/                OPC_CheckFoldableChainNode,
/*292369*/                OPC_RecordChild1, // #2 = $src3
/*292370*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*292372*/                OPC_CheckPredicate, 9, // Predicate_load
/*292374*/                OPC_MoveParent,
/*292375*/                OPC_RecordChild1, // #3 = $src1
/*292376*/                OPC_RecordChild2, // #4 = $src2
/*292377*/                OPC_MoveParent,
/*292378*/                OPC_MoveChild2,
/*292379*/                OPC_CheckImmAllZerosV,
/*292380*/                OPC_MoveParent,
/*292381*/                OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->292404
/*292384*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*292386*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*292389*/                  OPC_EmitMergeInputChains1_1,
/*292390*/                  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>>, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                            // Dst: (VFMSUB132PSZ256mkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*292404*/                /*SwitchType*/ 20, MVT::v8f64,// ->292426
/*292406*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*292408*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*292411*/                  OPC_EmitMergeInputChains1_1,
/*292412*/                  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>>, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                            // Dst: (VFMSUB132PDZmkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*292426*/                0, // EndSwitchType
/*292427*/              /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->292500
/*292430*/                OPC_RecordMemRef,
/*292431*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*292432*/                OPC_CheckFoldableChainNode,
/*292433*/                OPC_RecordChild1, // #2 = $src3
/*292434*/                OPC_Scope, 31, /*->292467*/ // 2 children in Scope
/*292436*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*292438*/                  OPC_MoveParent,
/*292439*/                  OPC_RecordChild1, // #3 = $src1
/*292440*/                  OPC_RecordChild2, // #4 = $src2
/*292441*/                  OPC_MoveParent,
/*292442*/                  OPC_MoveChild2,
/*292443*/                  OPC_CheckImmAllZerosV,
/*292444*/                  OPC_MoveParent,
/*292445*/                  OPC_CheckType, MVT::v8f32,
/*292447*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*292449*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*292452*/                  OPC_EmitMergeInputChains1_1,
/*292453*/                  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] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                            // Dst: (VFMSUB132PSZ256mbkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*292467*/                /*Scope*/ 31, /*->292499*/
/*292468*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*292470*/                  OPC_MoveParent,
/*292471*/                  OPC_RecordChild1, // #3 = $src1
/*292472*/                  OPC_RecordChild2, // #4 = $src2
/*292473*/                  OPC_MoveParent,
/*292474*/                  OPC_MoveChild2,
/*292475*/                  OPC_CheckImmAllZerosV,
/*292476*/                  OPC_MoveParent,
/*292477*/                  OPC_CheckType, MVT::v8f64,
/*292479*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*292481*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*292484*/                  OPC_EmitMergeInputChains1_1,
/*292485*/                  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] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                            // Dst: (VFMSUB132PDZmbkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*292499*/                0, /*End of Scope*/
/*292500*/              0, // EndSwitchOpcode
/*292501*/            0, /*End of Scope*/
/*292502*/          /*SwitchOpcode*/ 49|128,3/*433*/, TARGET_VAL(X86ISD::FMADDSUB),// ->292939
/*292506*/            OPC_Scope, 31|128,2/*287*/, /*->292796*/ // 2 children in Scope
/*292509*/              OPC_RecordChild0, // #1 = $src2
/*292510*/              OPC_Scope, 15|128,1/*143*/, /*->292656*/ // 2 children in Scope
/*292513*/                OPC_RecordChild1, // #2 = $src1
/*292514*/                OPC_MoveChild2,
/*292515*/                OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->292582
/*292519*/                  OPC_RecordMemRef,
/*292520*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*292521*/                  OPC_CheckFoldableChainNode,
/*292522*/                  OPC_RecordChild1, // #4 = $src3
/*292523*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*292525*/                  OPC_CheckPredicate, 9, // Predicate_load
/*292527*/                  OPC_MoveParent,
/*292528*/                  OPC_MoveParent,
/*292529*/                  OPC_MoveChild2,
/*292530*/                  OPC_CheckImmAllZerosV,
/*292531*/                  OPC_MoveParent,
/*292532*/                  OPC_SwitchType /*2 cases */, 22, MVT::v8f32,// ->292557
/*292535*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*292537*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*292540*/                    OPC_EmitMergeInputChains, 1, 3, 
/*292543*/                    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>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                              // Dst: (VFMADDSUB213PSZ256mkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*292557*/                  /*SwitchType*/ 22, MVT::v8f64,// ->292581
/*292559*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*292561*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*292564*/                    OPC_EmitMergeInputChains, 1, 3, 
/*292567*/                    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>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                              // Dst: (VFMADDSUB213PDZmkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*292581*/                  0, // EndSwitchType
/*292582*/                /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->292655
/*292585*/                  OPC_RecordMemRef,
/*292586*/                  OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*292587*/                  OPC_CheckFoldableChainNode,
/*292588*/                  OPC_RecordChild1, // #4 = $src3
/*292589*/                  OPC_Scope, 31, /*->292622*/ // 2 children in Scope
/*292591*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*292593*/                    OPC_MoveParent,
/*292594*/                    OPC_MoveParent,
/*292595*/                    OPC_MoveChild2,
/*292596*/                    OPC_CheckImmAllZerosV,
/*292597*/                    OPC_MoveParent,
/*292598*/                    OPC_CheckType, MVT::v8f32,
/*292600*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*292602*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*292605*/                    OPC_EmitMergeInputChains, 1, 3, 
/*292608*/                    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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                              // Dst: (VFMADDSUB213PSZ256mbkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*292622*/                  /*Scope*/ 31, /*->292654*/
/*292623*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*292625*/                    OPC_MoveParent,
/*292626*/                    OPC_MoveParent,
/*292627*/                    OPC_MoveChild2,
/*292628*/                    OPC_CheckImmAllZerosV,
/*292629*/                    OPC_MoveParent,
/*292630*/                    OPC_CheckType, MVT::v8f64,
/*292632*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*292634*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*292637*/                    OPC_EmitMergeInputChains, 1, 3, 
/*292640*/                    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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                              // Dst: (VFMADDSUB213PDZmbkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*292654*/                  0, /*End of Scope*/
/*292655*/                0, // EndSwitchOpcode
/*292656*/              /*Scope*/ 9|128,1/*137*/, /*->292795*/
/*292658*/                OPC_MoveChild1,
/*292659*/                OPC_SwitchOpcode /*2 cases */, 60, TARGET_VAL(ISD::LOAD),// ->292723
/*292663*/                  OPC_RecordMemRef,
/*292664*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*292665*/                  OPC_CheckFoldableChainNode,
/*292666*/                  OPC_RecordChild1, // #3 = $src3
/*292667*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*292669*/                  OPC_CheckPredicate, 9, // Predicate_load
/*292671*/                  OPC_MoveParent,
/*292672*/                  OPC_RecordChild2, // #4 = $src1
/*292673*/                  OPC_MoveParent,
/*292674*/                  OPC_MoveChild2,
/*292675*/                  OPC_CheckImmAllZerosV,
/*292676*/                  OPC_MoveParent,
/*292677*/                  OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->292700
/*292680*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*292682*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*292685*/                    OPC_EmitMergeInputChains1_2,
/*292686*/                    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>>, VR256X:{ *:[v8f32] }:$src1), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                              // Dst: (VFMADDSUB231PSZ256mkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*292700*/                  /*SwitchType*/ 20, MVT::v8f64,// ->292722
/*292702*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*292704*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*292707*/                    OPC_EmitMergeInputChains1_2,
/*292708*/                    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>>, VR512:{ *:[v8f64] }:$src1), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                              // Dst: (VFMADDSUB231PDZmkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*292722*/                  0, // EndSwitchType
/*292723*/                /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->292794
/*292726*/                  OPC_RecordMemRef,
/*292727*/                  OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*292728*/                  OPC_CheckFoldableChainNode,
/*292729*/                  OPC_RecordChild1, // #3 = $src3
/*292730*/                  OPC_Scope, 30, /*->292762*/ // 2 children in Scope
/*292732*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*292734*/                    OPC_MoveParent,
/*292735*/                    OPC_RecordChild2, // #4 = $src1
/*292736*/                    OPC_MoveParent,
/*292737*/                    OPC_MoveChild2,
/*292738*/                    OPC_CheckImmAllZerosV,
/*292739*/                    OPC_MoveParent,
/*292740*/                    OPC_CheckType, MVT::v8f32,
/*292742*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*292744*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*292747*/                    OPC_EmitMergeInputChains1_2,
/*292748*/                    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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                              // Dst: (VFMADDSUB231PSZ256mbkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*292762*/                  /*Scope*/ 30, /*->292793*/
/*292763*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*292765*/                    OPC_MoveParent,
/*292766*/                    OPC_RecordChild2, // #4 = $src1
/*292767*/                    OPC_MoveParent,
/*292768*/                    OPC_MoveChild2,
/*292769*/                    OPC_CheckImmAllZerosV,
/*292770*/                    OPC_MoveParent,
/*292771*/                    OPC_CheckType, MVT::v8f64,
/*292773*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*292775*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*292778*/                    OPC_EmitMergeInputChains1_2,
/*292779*/                    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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src1), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                              // Dst: (VFMADDSUB231PDZmbkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*292793*/                  0, /*End of Scope*/
/*292794*/                0, // EndSwitchOpcode
/*292795*/              0, /*End of Scope*/
/*292796*/            /*Scope*/ 12|128,1/*140*/, /*->292938*/
/*292798*/              OPC_MoveChild0,
/*292799*/              OPC_SwitchOpcode /*2 cases */, 61, TARGET_VAL(ISD::LOAD),// ->292864
/*292803*/                OPC_RecordMemRef,
/*292804*/                OPC_RecordNode, // #1 = 'ld' chained node
/*292805*/                OPC_CheckFoldableChainNode,
/*292806*/                OPC_RecordChild1, // #2 = $src3
/*292807*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*292809*/                OPC_CheckPredicate, 9, // Predicate_load
/*292811*/                OPC_MoveParent,
/*292812*/                OPC_RecordChild1, // #3 = $src1
/*292813*/                OPC_RecordChild2, // #4 = $src2
/*292814*/                OPC_MoveParent,
/*292815*/                OPC_MoveChild2,
/*292816*/                OPC_CheckImmAllZerosV,
/*292817*/                OPC_MoveParent,
/*292818*/                OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->292841
/*292821*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*292823*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*292826*/                  OPC_EmitMergeInputChains1_1,
/*292827*/                  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>>, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                            // Dst: (VFMADDSUB132PSZ256mkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*292841*/                /*SwitchType*/ 20, MVT::v8f64,// ->292863
/*292843*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*292845*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*292848*/                  OPC_EmitMergeInputChains1_1,
/*292849*/                  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>>, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                            // Dst: (VFMADDSUB132PDZmkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*292863*/                0, // EndSwitchType
/*292864*/              /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->292937
/*292867*/                OPC_RecordMemRef,
/*292868*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*292869*/                OPC_CheckFoldableChainNode,
/*292870*/                OPC_RecordChild1, // #2 = $src3
/*292871*/                OPC_Scope, 31, /*->292904*/ // 2 children in Scope
/*292873*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*292875*/                  OPC_MoveParent,
/*292876*/                  OPC_RecordChild1, // #3 = $src1
/*292877*/                  OPC_RecordChild2, // #4 = $src2
/*292878*/                  OPC_MoveParent,
/*292879*/                  OPC_MoveChild2,
/*292880*/                  OPC_CheckImmAllZerosV,
/*292881*/                  OPC_MoveParent,
/*292882*/                  OPC_CheckType, MVT::v8f32,
/*292884*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*292886*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*292889*/                  OPC_EmitMergeInputChains1_1,
/*292890*/                  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] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                            // Dst: (VFMADDSUB132PSZ256mbkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*292904*/                /*Scope*/ 31, /*->292936*/
/*292905*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*292907*/                  OPC_MoveParent,
/*292908*/                  OPC_RecordChild1, // #3 = $src1
/*292909*/                  OPC_RecordChild2, // #4 = $src2
/*292910*/                  OPC_MoveParent,
/*292911*/                  OPC_MoveChild2,
/*292912*/                  OPC_CheckImmAllZerosV,
/*292913*/                  OPC_MoveParent,
/*292914*/                  OPC_CheckType, MVT::v8f64,
/*292916*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*292918*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*292921*/                  OPC_EmitMergeInputChains1_1,
/*292922*/                  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] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                            // Dst: (VFMADDSUB132PDZmbkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*292936*/                0, /*End of Scope*/
/*292937*/              0, // EndSwitchOpcode
/*292938*/            0, /*End of Scope*/
/*292939*/          /*SwitchOpcode*/ 49|128,3/*433*/, TARGET_VAL(X86ISD::FMSUBADD),// ->293376
/*292943*/            OPC_Scope, 31|128,2/*287*/, /*->293233*/ // 2 children in Scope
/*292946*/              OPC_RecordChild0, // #1 = $src2
/*292947*/              OPC_Scope, 15|128,1/*143*/, /*->293093*/ // 2 children in Scope
/*292950*/                OPC_RecordChild1, // #2 = $src1
/*292951*/                OPC_MoveChild2,
/*292952*/                OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->293019
/*292956*/                  OPC_RecordMemRef,
/*292957*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*292958*/                  OPC_CheckFoldableChainNode,
/*292959*/                  OPC_RecordChild1, // #4 = $src3
/*292960*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*292962*/                  OPC_CheckPredicate, 9, // Predicate_load
/*292964*/                  OPC_MoveParent,
/*292965*/                  OPC_MoveParent,
/*292966*/                  OPC_MoveChild2,
/*292967*/                  OPC_CheckImmAllZerosV,
/*292968*/                  OPC_MoveParent,
/*292969*/                  OPC_SwitchType /*2 cases */, 22, MVT::v8f32,// ->292994
/*292972*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*292974*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*292977*/                    OPC_EmitMergeInputChains, 1, 3, 
/*292980*/                    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>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                              // Dst: (VFMSUBADD213PSZ256mkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*292994*/                  /*SwitchType*/ 22, MVT::v8f64,// ->293018
/*292996*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*292998*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*293001*/                    OPC_EmitMergeInputChains, 1, 3, 
/*293004*/                    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>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                              // Dst: (VFMSUBADD213PDZmkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*293018*/                  0, // EndSwitchType
/*293019*/                /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->293092
/*293022*/                  OPC_RecordMemRef,
/*293023*/                  OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*293024*/                  OPC_CheckFoldableChainNode,
/*293025*/                  OPC_RecordChild1, // #4 = $src3
/*293026*/                  OPC_Scope, 31, /*->293059*/ // 2 children in Scope
/*293028*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*293030*/                    OPC_MoveParent,
/*293031*/                    OPC_MoveParent,
/*293032*/                    OPC_MoveChild2,
/*293033*/                    OPC_CheckImmAllZerosV,
/*293034*/                    OPC_MoveParent,
/*293035*/                    OPC_CheckType, MVT::v8f32,
/*293037*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*293039*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*293042*/                    OPC_EmitMergeInputChains, 1, 3, 
/*293045*/                    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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                              // Dst: (VFMSUBADD213PSZ256mbkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*293059*/                  /*Scope*/ 31, /*->293091*/
/*293060*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*293062*/                    OPC_MoveParent,
/*293063*/                    OPC_MoveParent,
/*293064*/                    OPC_MoveChild2,
/*293065*/                    OPC_CheckImmAllZerosV,
/*293066*/                    OPC_MoveParent,
/*293067*/                    OPC_CheckType, MVT::v8f64,
/*293069*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*293071*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*293074*/                    OPC_EmitMergeInputChains, 1, 3, 
/*293077*/                    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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                              // Dst: (VFMSUBADD213PDZmbkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*293091*/                  0, /*End of Scope*/
/*293092*/                0, // EndSwitchOpcode
/*293093*/              /*Scope*/ 9|128,1/*137*/, /*->293232*/
/*293095*/                OPC_MoveChild1,
/*293096*/                OPC_SwitchOpcode /*2 cases */, 60, TARGET_VAL(ISD::LOAD),// ->293160
/*293100*/                  OPC_RecordMemRef,
/*293101*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*293102*/                  OPC_CheckFoldableChainNode,
/*293103*/                  OPC_RecordChild1, // #3 = $src3
/*293104*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*293106*/                  OPC_CheckPredicate, 9, // Predicate_load
/*293108*/                  OPC_MoveParent,
/*293109*/                  OPC_RecordChild2, // #4 = $src1
/*293110*/                  OPC_MoveParent,
/*293111*/                  OPC_MoveChild2,
/*293112*/                  OPC_CheckImmAllZerosV,
/*293113*/                  OPC_MoveParent,
/*293114*/                  OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->293137
/*293117*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*293119*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*293122*/                    OPC_EmitMergeInputChains1_2,
/*293123*/                    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>>, VR256X:{ *:[v8f32] }:$src1), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                              // Dst: (VFMSUBADD231PSZ256mkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*293137*/                  /*SwitchType*/ 20, MVT::v8f64,// ->293159
/*293139*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*293141*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*293144*/                    OPC_EmitMergeInputChains1_2,
/*293145*/                    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>>, VR512:{ *:[v8f64] }:$src1), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                              // Dst: (VFMSUBADD231PDZmkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*293159*/                  0, // EndSwitchType
/*293160*/                /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->293231
/*293163*/                  OPC_RecordMemRef,
/*293164*/                  OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*293165*/                  OPC_CheckFoldableChainNode,
/*293166*/                  OPC_RecordChild1, // #3 = $src3
/*293167*/                  OPC_Scope, 30, /*->293199*/ // 2 children in Scope
/*293169*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*293171*/                    OPC_MoveParent,
/*293172*/                    OPC_RecordChild2, // #4 = $src1
/*293173*/                    OPC_MoveParent,
/*293174*/                    OPC_MoveChild2,
/*293175*/                    OPC_CheckImmAllZerosV,
/*293176*/                    OPC_MoveParent,
/*293177*/                    OPC_CheckType, MVT::v8f32,
/*293179*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*293181*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*293184*/                    OPC_EmitMergeInputChains1_2,
/*293185*/                    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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                              // Dst: (VFMSUBADD231PSZ256mbkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*293199*/                  /*Scope*/ 30, /*->293230*/
/*293200*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*293202*/                    OPC_MoveParent,
/*293203*/                    OPC_RecordChild2, // #4 = $src1
/*293204*/                    OPC_MoveParent,
/*293205*/                    OPC_MoveChild2,
/*293206*/                    OPC_CheckImmAllZerosV,
/*293207*/                    OPC_MoveParent,
/*293208*/                    OPC_CheckType, MVT::v8f64,
/*293210*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*293212*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*293215*/                    OPC_EmitMergeInputChains1_2,
/*293216*/                    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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src1), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                              // Dst: (VFMSUBADD231PDZmbkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*293230*/                  0, /*End of Scope*/
/*293231*/                0, // EndSwitchOpcode
/*293232*/              0, /*End of Scope*/
/*293233*/            /*Scope*/ 12|128,1/*140*/, /*->293375*/
/*293235*/              OPC_MoveChild0,
/*293236*/              OPC_SwitchOpcode /*2 cases */, 61, TARGET_VAL(ISD::LOAD),// ->293301
/*293240*/                OPC_RecordMemRef,
/*293241*/                OPC_RecordNode, // #1 = 'ld' chained node
/*293242*/                OPC_CheckFoldableChainNode,
/*293243*/                OPC_RecordChild1, // #2 = $src3
/*293244*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*293246*/                OPC_CheckPredicate, 9, // Predicate_load
/*293248*/                OPC_MoveParent,
/*293249*/                OPC_RecordChild1, // #3 = $src1
/*293250*/                OPC_RecordChild2, // #4 = $src2
/*293251*/                OPC_MoveParent,
/*293252*/                OPC_MoveChild2,
/*293253*/                OPC_CheckImmAllZerosV,
/*293254*/                OPC_MoveParent,
/*293255*/                OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->293278
/*293258*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*293260*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*293263*/                  OPC_EmitMergeInputChains1_1,
/*293264*/                  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>>, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                            // Dst: (VFMSUBADD132PSZ256mkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*293278*/                /*SwitchType*/ 20, MVT::v8f64,// ->293300
/*293280*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*293282*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*293285*/                  OPC_EmitMergeInputChains1_1,
/*293286*/                  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>>, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                            // Dst: (VFMSUBADD132PDZmkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*293300*/                0, // EndSwitchType
/*293301*/              /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->293374
/*293304*/                OPC_RecordMemRef,
/*293305*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*293306*/                OPC_CheckFoldableChainNode,
/*293307*/                OPC_RecordChild1, // #2 = $src3
/*293308*/                OPC_Scope, 31, /*->293341*/ // 2 children in Scope
/*293310*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*293312*/                  OPC_MoveParent,
/*293313*/                  OPC_RecordChild1, // #3 = $src1
/*293314*/                  OPC_RecordChild2, // #4 = $src2
/*293315*/                  OPC_MoveParent,
/*293316*/                  OPC_MoveChild2,
/*293317*/                  OPC_CheckImmAllZerosV,
/*293318*/                  OPC_MoveParent,
/*293319*/                  OPC_CheckType, MVT::v8f32,
/*293321*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*293323*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*293326*/                  OPC_EmitMergeInputChains1_1,
/*293327*/                  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] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                            // Dst: (VFMSUBADD132PSZ256mbkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*293341*/                /*Scope*/ 31, /*->293373*/
/*293342*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*293344*/                  OPC_MoveParent,
/*293345*/                  OPC_RecordChild1, // #3 = $src1
/*293346*/                  OPC_RecordChild2, // #4 = $src2
/*293347*/                  OPC_MoveParent,
/*293348*/                  OPC_MoveChild2,
/*293349*/                  OPC_CheckImmAllZerosV,
/*293350*/                  OPC_MoveParent,
/*293351*/                  OPC_CheckType, MVT::v8f64,
/*293353*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*293355*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*293358*/                  OPC_EmitMergeInputChains1_1,
/*293359*/                  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] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                            // Dst: (VFMSUBADD132PDZmbkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*293373*/                0, /*End of Scope*/
/*293374*/              0, // EndSwitchOpcode
/*293375*/            0, /*End of Scope*/
/*293376*/          /*SwitchOpcode*/ 49|128,3/*433*/, TARGET_VAL(X86ISD::FNMADD),// ->293813
/*293380*/            OPC_Scope, 31|128,2/*287*/, /*->293670*/ // 2 children in Scope
/*293383*/              OPC_RecordChild0, // #1 = $src2
/*293384*/              OPC_Scope, 15|128,1/*143*/, /*->293530*/ // 2 children in Scope
/*293387*/                OPC_RecordChild1, // #2 = $src1
/*293388*/                OPC_MoveChild2,
/*293389*/                OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->293456
/*293393*/                  OPC_RecordMemRef,
/*293394*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*293395*/                  OPC_CheckFoldableChainNode,
/*293396*/                  OPC_RecordChild1, // #4 = $src3
/*293397*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*293399*/                  OPC_CheckPredicate, 9, // Predicate_load
/*293401*/                  OPC_MoveParent,
/*293402*/                  OPC_MoveParent,
/*293403*/                  OPC_MoveChild2,
/*293404*/                  OPC_CheckImmAllZerosV,
/*293405*/                  OPC_MoveParent,
/*293406*/                  OPC_SwitchType /*2 cases */, 22, MVT::v8f32,// ->293431
/*293409*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*293411*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*293414*/                    OPC_EmitMergeInputChains, 1, 3, 
/*293417*/                    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>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                              // Dst: (VFNMADD213PSZ256mkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*293431*/                  /*SwitchType*/ 22, MVT::v8f64,// ->293455
/*293433*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*293435*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*293438*/                    OPC_EmitMergeInputChains, 1, 3, 
/*293441*/                    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>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                              // Dst: (VFNMADD213PDZmkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*293455*/                  0, // EndSwitchType
/*293456*/                /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->293529
/*293459*/                  OPC_RecordMemRef,
/*293460*/                  OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*293461*/                  OPC_CheckFoldableChainNode,
/*293462*/                  OPC_RecordChild1, // #4 = $src3
/*293463*/                  OPC_Scope, 31, /*->293496*/ // 2 children in Scope
/*293465*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*293467*/                    OPC_MoveParent,
/*293468*/                    OPC_MoveParent,
/*293469*/                    OPC_MoveChild2,
/*293470*/                    OPC_CheckImmAllZerosV,
/*293471*/                    OPC_MoveParent,
/*293472*/                    OPC_CheckType, MVT::v8f32,
/*293474*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*293476*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*293479*/                    OPC_EmitMergeInputChains, 1, 3, 
/*293482*/                    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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                              // Dst: (VFNMADD213PSZ256mbkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*293496*/                  /*Scope*/ 31, /*->293528*/
/*293497*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*293499*/                    OPC_MoveParent,
/*293500*/                    OPC_MoveParent,
/*293501*/                    OPC_MoveChild2,
/*293502*/                    OPC_CheckImmAllZerosV,
/*293503*/                    OPC_MoveParent,
/*293504*/                    OPC_CheckType, MVT::v8f64,
/*293506*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*293508*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*293511*/                    OPC_EmitMergeInputChains, 1, 3, 
/*293514*/                    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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                              // Dst: (VFNMADD213PDZmbkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*293528*/                  0, /*End of Scope*/
/*293529*/                0, // EndSwitchOpcode
/*293530*/              /*Scope*/ 9|128,1/*137*/, /*->293669*/
/*293532*/                OPC_MoveChild1,
/*293533*/                OPC_SwitchOpcode /*2 cases */, 60, TARGET_VAL(ISD::LOAD),// ->293597
/*293537*/                  OPC_RecordMemRef,
/*293538*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*293539*/                  OPC_CheckFoldableChainNode,
/*293540*/                  OPC_RecordChild1, // #3 = $src3
/*293541*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*293543*/                  OPC_CheckPredicate, 9, // Predicate_load
/*293545*/                  OPC_MoveParent,
/*293546*/                  OPC_RecordChild2, // #4 = $src1
/*293547*/                  OPC_MoveParent,
/*293548*/                  OPC_MoveChild2,
/*293549*/                  OPC_CheckImmAllZerosV,
/*293550*/                  OPC_MoveParent,
/*293551*/                  OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->293574
/*293554*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*293556*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*293559*/                    OPC_EmitMergeInputChains1_2,
/*293560*/                    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>>, VR256X:{ *:[v8f32] }:$src1), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                              // Dst: (VFNMADD231PSZ256mkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*293574*/                  /*SwitchType*/ 20, MVT::v8f64,// ->293596
/*293576*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*293578*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*293581*/                    OPC_EmitMergeInputChains1_2,
/*293582*/                    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>>, VR512:{ *:[v8f64] }:$src1), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                              // Dst: (VFNMADD231PDZmkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*293596*/                  0, // EndSwitchType
/*293597*/                /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->293668
/*293600*/                  OPC_RecordMemRef,
/*293601*/                  OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*293602*/                  OPC_CheckFoldableChainNode,
/*293603*/                  OPC_RecordChild1, // #3 = $src3
/*293604*/                  OPC_Scope, 30, /*->293636*/ // 2 children in Scope
/*293606*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*293608*/                    OPC_MoveParent,
/*293609*/                    OPC_RecordChild2, // #4 = $src1
/*293610*/                    OPC_MoveParent,
/*293611*/                    OPC_MoveChild2,
/*293612*/                    OPC_CheckImmAllZerosV,
/*293613*/                    OPC_MoveParent,
/*293614*/                    OPC_CheckType, MVT::v8f32,
/*293616*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*293618*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*293621*/                    OPC_EmitMergeInputChains1_2,
/*293622*/                    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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                              // Dst: (VFNMADD231PSZ256mbkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*293636*/                  /*Scope*/ 30, /*->293667*/
/*293637*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*293639*/                    OPC_MoveParent,
/*293640*/                    OPC_RecordChild2, // #4 = $src1
/*293641*/                    OPC_MoveParent,
/*293642*/                    OPC_MoveChild2,
/*293643*/                    OPC_CheckImmAllZerosV,
/*293644*/                    OPC_MoveParent,
/*293645*/                    OPC_CheckType, MVT::v8f64,
/*293647*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*293649*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*293652*/                    OPC_EmitMergeInputChains1_2,
/*293653*/                    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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src1), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                              // Dst: (VFNMADD231PDZmbkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*293667*/                  0, /*End of Scope*/
/*293668*/                0, // EndSwitchOpcode
/*293669*/              0, /*End of Scope*/
/*293670*/            /*Scope*/ 12|128,1/*140*/, /*->293812*/
/*293672*/              OPC_MoveChild0,
/*293673*/              OPC_SwitchOpcode /*2 cases */, 61, TARGET_VAL(ISD::LOAD),// ->293738
/*293677*/                OPC_RecordMemRef,
/*293678*/                OPC_RecordNode, // #1 = 'ld' chained node
/*293679*/                OPC_CheckFoldableChainNode,
/*293680*/                OPC_RecordChild1, // #2 = $src3
/*293681*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*293683*/                OPC_CheckPredicate, 9, // Predicate_load
/*293685*/                OPC_MoveParent,
/*293686*/                OPC_RecordChild1, // #3 = $src1
/*293687*/                OPC_RecordChild2, // #4 = $src2
/*293688*/                OPC_MoveParent,
/*293689*/                OPC_MoveChild2,
/*293690*/                OPC_CheckImmAllZerosV,
/*293691*/                OPC_MoveParent,
/*293692*/                OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->293715
/*293695*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*293697*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*293700*/                  OPC_EmitMergeInputChains1_1,
/*293701*/                  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>>, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                            // Dst: (VFNMADD132PSZ256mkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*293715*/                /*SwitchType*/ 20, MVT::v8f64,// ->293737
/*293717*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*293719*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*293722*/                  OPC_EmitMergeInputChains1_1,
/*293723*/                  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>>, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                            // Dst: (VFNMADD132PDZmkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*293737*/                0, // EndSwitchType
/*293738*/              /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->293811
/*293741*/                OPC_RecordMemRef,
/*293742*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*293743*/                OPC_CheckFoldableChainNode,
/*293744*/                OPC_RecordChild1, // #2 = $src3
/*293745*/                OPC_Scope, 31, /*->293778*/ // 2 children in Scope
/*293747*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*293749*/                  OPC_MoveParent,
/*293750*/                  OPC_RecordChild1, // #3 = $src1
/*293751*/                  OPC_RecordChild2, // #4 = $src2
/*293752*/                  OPC_MoveParent,
/*293753*/                  OPC_MoveChild2,
/*293754*/                  OPC_CheckImmAllZerosV,
/*293755*/                  OPC_MoveParent,
/*293756*/                  OPC_CheckType, MVT::v8f32,
/*293758*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*293760*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*293763*/                  OPC_EmitMergeInputChains1_1,
/*293764*/                  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] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                            // Dst: (VFNMADD132PSZ256mbkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*293778*/                /*Scope*/ 31, /*->293810*/
/*293779*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*293781*/                  OPC_MoveParent,
/*293782*/                  OPC_RecordChild1, // #3 = $src1
/*293783*/                  OPC_RecordChild2, // #4 = $src2
/*293784*/                  OPC_MoveParent,
/*293785*/                  OPC_MoveChild2,
/*293786*/                  OPC_CheckImmAllZerosV,
/*293787*/                  OPC_MoveParent,
/*293788*/                  OPC_CheckType, MVT::v8f64,
/*293790*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*293792*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*293795*/                  OPC_EmitMergeInputChains1_1,
/*293796*/                  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] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                            // Dst: (VFNMADD132PDZmbkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*293810*/                0, /*End of Scope*/
/*293811*/              0, // EndSwitchOpcode
/*293812*/            0, /*End of Scope*/
/*293813*/          /*SwitchOpcode*/ 49|128,3/*433*/, TARGET_VAL(X86ISD::FNMSUB),// ->294250
/*293817*/            OPC_Scope, 31|128,2/*287*/, /*->294107*/ // 2 children in Scope
/*293820*/              OPC_RecordChild0, // #1 = $src2
/*293821*/              OPC_Scope, 15|128,1/*143*/, /*->293967*/ // 2 children in Scope
/*293824*/                OPC_RecordChild1, // #2 = $src1
/*293825*/                OPC_MoveChild2,
/*293826*/                OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->293893
/*293830*/                  OPC_RecordMemRef,
/*293831*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*293832*/                  OPC_CheckFoldableChainNode,
/*293833*/                  OPC_RecordChild1, // #4 = $src3
/*293834*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*293836*/                  OPC_CheckPredicate, 9, // Predicate_load
/*293838*/                  OPC_MoveParent,
/*293839*/                  OPC_MoveParent,
/*293840*/                  OPC_MoveChild2,
/*293841*/                  OPC_CheckImmAllZerosV,
/*293842*/                  OPC_MoveParent,
/*293843*/                  OPC_SwitchType /*2 cases */, 22, MVT::v8f32,// ->293868
/*293846*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*293848*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*293851*/                    OPC_EmitMergeInputChains, 1, 3, 
/*293854*/                    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>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                              // Dst: (VFNMSUB213PSZ256mkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*293868*/                  /*SwitchType*/ 22, MVT::v8f64,// ->293892
/*293870*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*293872*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*293875*/                    OPC_EmitMergeInputChains, 1, 3, 
/*293878*/                    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>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                              // Dst: (VFNMSUB213PDZmkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*293892*/                  0, // EndSwitchType
/*293893*/                /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->293966
/*293896*/                  OPC_RecordMemRef,
/*293897*/                  OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*293898*/                  OPC_CheckFoldableChainNode,
/*293899*/                  OPC_RecordChild1, // #4 = $src3
/*293900*/                  OPC_Scope, 31, /*->293933*/ // 2 children in Scope
/*293902*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*293904*/                    OPC_MoveParent,
/*293905*/                    OPC_MoveParent,
/*293906*/                    OPC_MoveChild2,
/*293907*/                    OPC_CheckImmAllZerosV,
/*293908*/                    OPC_MoveParent,
/*293909*/                    OPC_CheckType, MVT::v8f32,
/*293911*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*293913*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*293916*/                    OPC_EmitMergeInputChains, 1, 3, 
/*293919*/                    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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                              // Dst: (VFNMSUB213PSZ256mbkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*293933*/                  /*Scope*/ 31, /*->293965*/
/*293934*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*293936*/                    OPC_MoveParent,
/*293937*/                    OPC_MoveParent,
/*293938*/                    OPC_MoveChild2,
/*293939*/                    OPC_CheckImmAllZerosV,
/*293940*/                    OPC_MoveParent,
/*293941*/                    OPC_CheckType, MVT::v8f64,
/*293943*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*293945*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*293948*/                    OPC_EmitMergeInputChains, 1, 3, 
/*293951*/                    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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                              // Dst: (VFNMSUB213PDZmbkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*293965*/                  0, /*End of Scope*/
/*293966*/                0, // EndSwitchOpcode
/*293967*/              /*Scope*/ 9|128,1/*137*/, /*->294106*/
/*293969*/                OPC_MoveChild1,
/*293970*/                OPC_SwitchOpcode /*2 cases */, 60, TARGET_VAL(ISD::LOAD),// ->294034
/*293974*/                  OPC_RecordMemRef,
/*293975*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*293976*/                  OPC_CheckFoldableChainNode,
/*293977*/                  OPC_RecordChild1, // #3 = $src3
/*293978*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*293980*/                  OPC_CheckPredicate, 9, // Predicate_load
/*293982*/                  OPC_MoveParent,
/*293983*/                  OPC_RecordChild2, // #4 = $src1
/*293984*/                  OPC_MoveParent,
/*293985*/                  OPC_MoveChild2,
/*293986*/                  OPC_CheckImmAllZerosV,
/*293987*/                  OPC_MoveParent,
/*293988*/                  OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->294011
/*293991*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*293993*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*293996*/                    OPC_EmitMergeInputChains1_2,
/*293997*/                    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>>, VR256X:{ *:[v8f32] }:$src1), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                              // Dst: (VFNMSUB231PSZ256mkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*294011*/                  /*SwitchType*/ 20, MVT::v8f64,// ->294033
/*294013*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*294015*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*294018*/                    OPC_EmitMergeInputChains1_2,
/*294019*/                    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>>, VR512:{ *:[v8f64] }:$src1), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                              // Dst: (VFNMSUB231PDZmkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*294033*/                  0, // EndSwitchType
/*294034*/                /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->294105
/*294037*/                  OPC_RecordMemRef,
/*294038*/                  OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*294039*/                  OPC_CheckFoldableChainNode,
/*294040*/                  OPC_RecordChild1, // #3 = $src3
/*294041*/                  OPC_Scope, 30, /*->294073*/ // 2 children in Scope
/*294043*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*294045*/                    OPC_MoveParent,
/*294046*/                    OPC_RecordChild2, // #4 = $src1
/*294047*/                    OPC_MoveParent,
/*294048*/                    OPC_MoveChild2,
/*294049*/                    OPC_CheckImmAllZerosV,
/*294050*/                    OPC_MoveParent,
/*294051*/                    OPC_CheckType, MVT::v8f32,
/*294053*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*294055*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*294058*/                    OPC_EmitMergeInputChains1_2,
/*294059*/                    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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                              // Dst: (VFNMSUB231PSZ256mbkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*294073*/                  /*Scope*/ 30, /*->294104*/
/*294074*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*294076*/                    OPC_MoveParent,
/*294077*/                    OPC_RecordChild2, // #4 = $src1
/*294078*/                    OPC_MoveParent,
/*294079*/                    OPC_MoveChild2,
/*294080*/                    OPC_CheckImmAllZerosV,
/*294081*/                    OPC_MoveParent,
/*294082*/                    OPC_CheckType, MVT::v8f64,
/*294084*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*294086*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*294089*/                    OPC_EmitMergeInputChains1_2,
/*294090*/                    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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src1), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                              // Dst: (VFNMSUB231PDZmbkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*294104*/                  0, /*End of Scope*/
/*294105*/                0, // EndSwitchOpcode
/*294106*/              0, /*End of Scope*/
/*294107*/            /*Scope*/ 12|128,1/*140*/, /*->294249*/
/*294109*/              OPC_MoveChild0,
/*294110*/              OPC_SwitchOpcode /*2 cases */, 61, TARGET_VAL(ISD::LOAD),// ->294175
/*294114*/                OPC_RecordMemRef,
/*294115*/                OPC_RecordNode, // #1 = 'ld' chained node
/*294116*/                OPC_CheckFoldableChainNode,
/*294117*/                OPC_RecordChild1, // #2 = $src3
/*294118*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*294120*/                OPC_CheckPredicate, 9, // Predicate_load
/*294122*/                OPC_MoveParent,
/*294123*/                OPC_RecordChild1, // #3 = $src1
/*294124*/                OPC_RecordChild2, // #4 = $src2
/*294125*/                OPC_MoveParent,
/*294126*/                OPC_MoveChild2,
/*294127*/                OPC_CheckImmAllZerosV,
/*294128*/                OPC_MoveParent,
/*294129*/                OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->294152
/*294132*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*294134*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*294137*/                  OPC_EmitMergeInputChains1_1,
/*294138*/                  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>>, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                            // Dst: (VFNMSUB132PSZ256mkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*294152*/                /*SwitchType*/ 20, MVT::v8f64,// ->294174
/*294154*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*294156*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*294159*/                  OPC_EmitMergeInputChains1_1,
/*294160*/                  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>>, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                            // Dst: (VFNMSUB132PDZmkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*294174*/                0, // EndSwitchType
/*294175*/              /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->294248
/*294178*/                OPC_RecordMemRef,
/*294179*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*294180*/                OPC_CheckFoldableChainNode,
/*294181*/                OPC_RecordChild1, // #2 = $src3
/*294182*/                OPC_Scope, 31, /*->294215*/ // 2 children in Scope
/*294184*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*294186*/                  OPC_MoveParent,
/*294187*/                  OPC_RecordChild1, // #3 = $src1
/*294188*/                  OPC_RecordChild2, // #4 = $src2
/*294189*/                  OPC_MoveParent,
/*294190*/                  OPC_MoveChild2,
/*294191*/                  OPC_CheckImmAllZerosV,
/*294192*/                  OPC_MoveParent,
/*294193*/                  OPC_CheckType, MVT::v8f32,
/*294195*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*294197*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*294200*/                  OPC_EmitMergeInputChains1_1,
/*294201*/                  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] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                            // Dst: (VFNMSUB132PSZ256mbkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*294215*/                /*Scope*/ 31, /*->294247*/
/*294216*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*294218*/                  OPC_MoveParent,
/*294219*/                  OPC_RecordChild1, // #3 = $src1
/*294220*/                  OPC_RecordChild2, // #4 = $src2
/*294221*/                  OPC_MoveParent,
/*294222*/                  OPC_MoveChild2,
/*294223*/                  OPC_CheckImmAllZerosV,
/*294224*/                  OPC_MoveParent,
/*294225*/                  OPC_CheckType, MVT::v8f64,
/*294227*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*294229*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*294232*/                  OPC_EmitMergeInputChains1_1,
/*294233*/                  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] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                            // Dst: (VFNMSUB132PDZmbkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*294247*/                0, /*End of Scope*/
/*294248*/              0, // EndSwitchOpcode
/*294249*/            0, /*End of Scope*/
/*294250*/          /*SwitchOpcode*/ 85, TARGET_VAL(X86ISD::STRICT_VFPROUND),// ->294338
/*294253*/            OPC_RecordNode, // #1 = 'X86strict_vfpround' chained node
/*294254*/            OPC_CheckFoldableChainNode,
/*294255*/            OPC_MoveChild1,
/*294256*/            OPC_SwitchOpcode /*2 cases */, 38, TARGET_VAL(ISD::LOAD),// ->294298
/*294260*/              OPC_RecordMemRef,
/*294261*/              OPC_RecordNode, // #2 = 'ld' chained node
/*294262*/              OPC_CheckFoldableChainNode,
/*294263*/              OPC_RecordChild1, // #3 = $src
/*294264*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*294266*/              OPC_CheckPredicate, 9, // Predicate_load
/*294268*/              OPC_CheckType, MVT::v8f64,
/*294270*/              OPC_MoveParent,
/*294271*/              OPC_MoveParent,
/*294272*/              OPC_MoveChild2,
/*294273*/              OPC_CheckImmAllZerosV,
/*294274*/              OPC_MoveParent,
/*294275*/              OPC_CheckType, MVT::v8f32,
/*294277*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*294279*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*294282*/              OPC_EmitMergeInputChains, 2, 1, 2, 
/*294286*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_vfpround:{ *:[v8f32] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                        // Dst: (VCVTPD2PSZrmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*294298*/            /*SwitchOpcode*/ 36, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->294337
/*294301*/              OPC_RecordMemRef,
/*294302*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*294303*/              OPC_CheckFoldableChainNode,
/*294304*/              OPC_RecordChild1, // #3 = $src
/*294305*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*294307*/              OPC_CheckType, MVT::v8f64,
/*294309*/              OPC_MoveParent,
/*294310*/              OPC_MoveParent,
/*294311*/              OPC_MoveChild2,
/*294312*/              OPC_CheckImmAllZerosV,
/*294313*/              OPC_MoveParent,
/*294314*/              OPC_CheckType, MVT::v8f32,
/*294316*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*294318*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*294321*/              OPC_EmitMergeInputChains, 2, 1, 2, 
/*294325*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_vfpround:{ *:[v8f32] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                        // Dst: (VCVTPD2PSZrmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*294337*/            0, // EndSwitchOpcode
/*294338*/          /*SwitchOpcode*/ 77, TARGET_VAL(X86ISD::VFPROUND),// ->294418
/*294341*/            OPC_MoveChild0,
/*294342*/            OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->294381
/*294346*/              OPC_RecordMemRef,
/*294347*/              OPC_RecordNode, // #1 = 'ld' chained node
/*294348*/              OPC_CheckFoldableChainNode,
/*294349*/              OPC_RecordChild1, // #2 = $src
/*294350*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*294352*/              OPC_CheckPredicate, 9, // Predicate_load
/*294354*/              OPC_CheckType, MVT::v8f64,
/*294356*/              OPC_MoveParent,
/*294357*/              OPC_MoveParent,
/*294358*/              OPC_MoveChild2,
/*294359*/              OPC_CheckImmAllZerosV,
/*294360*/              OPC_MoveParent,
/*294361*/              OPC_CheckType, MVT::v8f32,
/*294363*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*294365*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*294368*/              OPC_EmitMergeInputChains1_1,
/*294369*/              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, (X86vfpround:{ *:[v8f32] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                        // Dst: (VCVTPD2PSZrmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*294381*/            /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->294417
/*294384*/              OPC_RecordMemRef,
/*294385*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*294386*/              OPC_CheckFoldableChainNode,
/*294387*/              OPC_RecordChild1, // #2 = $src
/*294388*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*294390*/              OPC_CheckType, MVT::v8f64,
/*294392*/              OPC_MoveParent,
/*294393*/              OPC_MoveParent,
/*294394*/              OPC_MoveChild2,
/*294395*/              OPC_CheckImmAllZerosV,
/*294396*/              OPC_MoveParent,
/*294397*/              OPC_CheckType, MVT::v8f32,
/*294399*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*294401*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*294404*/              OPC_EmitMergeInputChains1_1,
/*294405*/              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, (X86vfpround:{ *:[v8f32] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                        // Dst: (VCVTPD2PSZrmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*294417*/            0, // EndSwitchOpcode
/*294418*/          /*SwitchOpcode*/ 40, TARGET_VAL(ISD::STRICT_FP_EXTEND),// ->294461
/*294421*/            OPC_RecordNode, // #1 = 'strict_fpextend' chained node
/*294422*/            OPC_CheckFoldableChainNode,
/*294423*/            OPC_MoveChild1,
/*294424*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*294427*/            OPC_RecordMemRef,
/*294428*/            OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*294429*/            OPC_CheckFoldableChainNode,
/*294430*/            OPC_RecordChild1, // #3 = $src
/*294431*/            OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*294433*/            OPC_MoveParent,
/*294434*/            OPC_MoveParent,
/*294435*/            OPC_MoveChild2,
/*294436*/            OPC_CheckImmAllZerosV,
/*294437*/            OPC_MoveParent,
/*294438*/            OPC_CheckType, MVT::v8f64,
/*294440*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*294442*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*294445*/            OPC_EmitMergeInputChains, 2, 1, 2, 
/*294449*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (strict_fpextend:{ *:[v8f64] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                      // Dst: (VCVTPS2PDZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*294461*/          /*SwitchOpcode*/ 35, TARGET_VAL(ISD::FP_EXTEND),// ->294499
/*294464*/            OPC_MoveChild0,
/*294465*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*294468*/            OPC_RecordMemRef,
/*294469*/            OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*294470*/            OPC_CheckFoldableChainNode,
/*294471*/            OPC_RecordChild1, // #2 = $src
/*294472*/            OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*294474*/            OPC_MoveParent,
/*294475*/            OPC_MoveParent,
/*294476*/            OPC_MoveChild2,
/*294477*/            OPC_CheckImmAllZerosV,
/*294478*/            OPC_MoveParent,
/*294479*/            OPC_CheckType, MVT::v8f64,
/*294481*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*294483*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*294486*/            OPC_EmitMergeInputChains1_1,
/*294487*/            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] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                      // Dst: (VCVTPS2PDZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*294499*/          /*SwitchOpcode*/ 123|128,1/*251*/, TARGET_VAL(ISD::STRICT_SINT_TO_FP),// ->294754
/*294503*/            OPC_RecordNode, // #1 = 'strict_sint_to_fp' chained node
/*294504*/            OPC_CheckFoldableChainNode,
/*294505*/            OPC_MoveChild1,
/*294506*/            OPC_SwitchOpcode /*2 cases */, 120, TARGET_VAL(ISD::LOAD),// ->294630
/*294510*/              OPC_RecordMemRef,
/*294511*/              OPC_RecordNode, // #2 = 'ld' chained node
/*294512*/              OPC_CheckFoldableChainNode,
/*294513*/              OPC_RecordChild1, // #3 = $src
/*294514*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*294516*/              OPC_CheckPredicate, 9, // Predicate_load
/*294518*/              OPC_SwitchType /*2 cases */, 53, MVT::v8i32,// ->294574
/*294521*/                OPC_MoveParent,
/*294522*/                OPC_MoveParent,
/*294523*/                OPC_MoveChild2,
/*294524*/                OPC_CheckImmAllZerosV,
/*294525*/                OPC_MoveParent,
/*294526*/                OPC_SwitchType /*2 cases */, 21, MVT::v8f64,// ->294550
/*294529*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*294531*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*294534*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*294538*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (strict_sint_to_fp:{ *:[v8f64] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                            // Dst: (VCVTDQ2PDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*294550*/                /*SwitchType*/ 21, MVT::v8f32,// ->294573
/*294552*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*294554*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*294557*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*294561*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (strict_sint_to_fp:{ *:[v8f32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                            // Dst: (VCVTDQ2PSZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*294573*/                0, // EndSwitchType
/*294574*/              /*SwitchType*/ 53, MVT::v8i64,// ->294629
/*294576*/                OPC_MoveParent,
/*294577*/                OPC_MoveParent,
/*294578*/                OPC_MoveChild2,
/*294579*/                OPC_CheckImmAllZerosV,
/*294580*/                OPC_MoveParent,
/*294581*/                OPC_SwitchType /*2 cases */, 21, MVT::v8f64,// ->294605
/*294584*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*294586*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*294589*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*294593*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (strict_sint_to_fp:{ *:[v8f64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                            // Dst: (VCVTQQ2PDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*294605*/                /*SwitchType*/ 21, MVT::v8f32,// ->294628
/*294607*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*294609*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*294612*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*294616*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PSZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (strict_sint_to_fp:{ *:[v8f32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                            // Dst: (VCVTQQ2PSZrmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*294628*/                0, // EndSwitchType
/*294629*/              0, // EndSwitchType
/*294630*/            /*SwitchOpcode*/ 120, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->294753
/*294633*/              OPC_RecordMemRef,
/*294634*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*294635*/              OPC_CheckFoldableChainNode,
/*294636*/              OPC_RecordChild1, // #3 = $src
/*294637*/              OPC_SwitchType /*2 cases */, 55, MVT::v8i32,// ->294695
/*294640*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*294642*/                OPC_MoveParent,
/*294643*/                OPC_MoveParent,
/*294644*/                OPC_MoveChild2,
/*294645*/                OPC_CheckImmAllZerosV,
/*294646*/                OPC_MoveParent,
/*294647*/                OPC_SwitchType /*2 cases */, 21, MVT::v8f64,// ->294671
/*294650*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*294652*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*294655*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*294659*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (strict_sint_to_fp:{ *:[v8f64] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                            // Dst: (VCVTDQ2PDZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*294671*/                /*SwitchType*/ 21, MVT::v8f32,// ->294694
/*294673*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*294675*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*294678*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*294682*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (strict_sint_to_fp:{ *:[v8f32] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                            // Dst: (VCVTDQ2PSZ256rmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*294694*/                0, // EndSwitchType
/*294695*/              /*SwitchType*/ 55, MVT::v8i64,// ->294752
/*294697*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*294699*/                OPC_MoveParent,
/*294700*/                OPC_MoveParent,
/*294701*/                OPC_MoveChild2,
/*294702*/                OPC_CheckImmAllZerosV,
/*294703*/                OPC_MoveParent,
/*294704*/                OPC_SwitchType /*2 cases */, 21, MVT::v8f64,// ->294728
/*294707*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*294709*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*294712*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*294716*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (strict_sint_to_fp:{ *:[v8f64] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                            // Dst: (VCVTQQ2PDZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*294728*/                /*SwitchType*/ 21, MVT::v8f32,// ->294751
/*294730*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*294732*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*294735*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*294739*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PSZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (strict_sint_to_fp:{ *:[v8f32] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                            // Dst: (VCVTQQ2PSZrmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*294751*/                0, // EndSwitchType
/*294752*/              0, // EndSwitchType
/*294753*/            0, // EndSwitchOpcode
/*294754*/          /*SwitchOpcode*/ 97|128,1/*225*/, TARGET_VAL(ISD::SINT_TO_FP),// ->294983
/*294758*/            OPC_MoveChild0,
/*294759*/            OPC_SwitchOpcode /*2 cases */, 108, TARGET_VAL(ISD::LOAD),// ->294871
/*294763*/              OPC_RecordMemRef,
/*294764*/              OPC_RecordNode, // #1 = 'ld' chained node
/*294765*/              OPC_CheckFoldableChainNode,
/*294766*/              OPC_RecordChild1, // #2 = $src
/*294767*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*294769*/              OPC_CheckPredicate, 9, // Predicate_load
/*294771*/              OPC_SwitchType /*2 cases */, 47, MVT::v8i32,// ->294821
/*294774*/                OPC_MoveParent,
/*294775*/                OPC_MoveParent,
/*294776*/                OPC_MoveChild2,
/*294777*/                OPC_CheckImmAllZerosV,
/*294778*/                OPC_MoveParent,
/*294779*/                OPC_SwitchType /*2 cases */, 18, MVT::v8f64,// ->294800
/*294782*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*294784*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*294787*/                  OPC_EmitMergeInputChains1_1,
/*294788*/                  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] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                            // Dst: (VCVTDQ2PDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*294800*/                /*SwitchType*/ 18, MVT::v8f32,// ->294820
/*294802*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*294804*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*294807*/                  OPC_EmitMergeInputChains1_1,
/*294808*/                  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] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                            // Dst: (VCVTDQ2PSZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*294820*/                0, // EndSwitchType
/*294821*/              /*SwitchType*/ 47, MVT::v8i64,// ->294870
/*294823*/                OPC_MoveParent,
/*294824*/                OPC_MoveParent,
/*294825*/                OPC_MoveChild2,
/*294826*/                OPC_CheckImmAllZerosV,
/*294827*/                OPC_MoveParent,
/*294828*/                OPC_SwitchType /*2 cases */, 18, MVT::v8f64,// ->294849
/*294831*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*294833*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*294836*/                  OPC_EmitMergeInputChains1_1,
/*294837*/                  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>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                            // Dst: (VCVTQQ2PDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*294849*/                /*SwitchType*/ 18, MVT::v8f32,// ->294869
/*294851*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*294853*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*294856*/                  OPC_EmitMergeInputChains1_1,
/*294857*/                  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>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                            // Dst: (VCVTQQ2PSZrmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*294869*/                0, // EndSwitchType
/*294870*/              0, // EndSwitchType
/*294871*/            /*SwitchOpcode*/ 108, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->294982
/*294874*/              OPC_RecordMemRef,
/*294875*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*294876*/              OPC_CheckFoldableChainNode,
/*294877*/              OPC_RecordChild1, // #2 = $src
/*294878*/              OPC_SwitchType /*2 cases */, 49, MVT::v8i32,// ->294930
/*294881*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*294883*/                OPC_MoveParent,
/*294884*/                OPC_MoveParent,
/*294885*/                OPC_MoveChild2,
/*294886*/                OPC_CheckImmAllZerosV,
/*294887*/                OPC_MoveParent,
/*294888*/                OPC_SwitchType /*2 cases */, 18, MVT::v8f64,// ->294909
/*294891*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*294893*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*294896*/                  OPC_EmitMergeInputChains1_1,
/*294897*/                  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] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                            // Dst: (VCVTDQ2PDZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*294909*/                /*SwitchType*/ 18, MVT::v8f32,// ->294929
/*294911*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*294913*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*294916*/                  OPC_EmitMergeInputChains1_1,
/*294917*/                  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] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                            // Dst: (VCVTDQ2PSZ256rmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*294929*/                0, // EndSwitchType
/*294930*/              /*SwitchType*/ 49, MVT::v8i64,// ->294981
/*294932*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*294934*/                OPC_MoveParent,
/*294935*/                OPC_MoveParent,
/*294936*/                OPC_MoveChild2,
/*294937*/                OPC_CheckImmAllZerosV,
/*294938*/                OPC_MoveParent,
/*294939*/                OPC_SwitchType /*2 cases */, 18, MVT::v8f64,// ->294960
/*294942*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*294944*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*294947*/                  OPC_EmitMergeInputChains1_1,
/*294948*/                  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] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                            // Dst: (VCVTQQ2PDZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*294960*/                /*SwitchType*/ 18, MVT::v8f32,// ->294980
/*294962*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*294964*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*294967*/                  OPC_EmitMergeInputChains1_1,
/*294968*/                  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] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                            // Dst: (VCVTQQ2PSZrmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*294980*/                0, // EndSwitchType
/*294981*/              0, // EndSwitchType
/*294982*/            0, // EndSwitchOpcode
/*294983*/          /*SwitchOpcode*/ 123|128,1/*251*/, TARGET_VAL(ISD::STRICT_UINT_TO_FP),// ->295238
/*294987*/            OPC_RecordNode, // #1 = 'strict_uint_to_fp' chained node
/*294988*/            OPC_CheckFoldableChainNode,
/*294989*/            OPC_MoveChild1,
/*294990*/            OPC_SwitchOpcode /*2 cases */, 120, TARGET_VAL(ISD::LOAD),// ->295114
/*294994*/              OPC_RecordMemRef,
/*294995*/              OPC_RecordNode, // #2 = 'ld' chained node
/*294996*/              OPC_CheckFoldableChainNode,
/*294997*/              OPC_RecordChild1, // #3 = $src
/*294998*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*295000*/              OPC_CheckPredicate, 9, // Predicate_load
/*295002*/              OPC_SwitchType /*2 cases */, 53, MVT::v8i32,// ->295058
/*295005*/                OPC_MoveParent,
/*295006*/                OPC_MoveParent,
/*295007*/                OPC_MoveChild2,
/*295008*/                OPC_CheckImmAllZerosV,
/*295009*/                OPC_MoveParent,
/*295010*/                OPC_SwitchType /*2 cases */, 21, MVT::v8f64,// ->295034
/*295013*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*295015*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*295018*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*295022*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (strict_uint_to_fp:{ *:[v8f64] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                            // Dst: (VCVTUDQ2PDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*295034*/                /*SwitchType*/ 21, MVT::v8f32,// ->295057
/*295036*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*295038*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*295041*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*295045*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PSZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (strict_uint_to_fp:{ *:[v8f32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                            // Dst: (VCVTUDQ2PSZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*295057*/                0, // EndSwitchType
/*295058*/              /*SwitchType*/ 53, MVT::v8i64,// ->295113
/*295060*/                OPC_MoveParent,
/*295061*/                OPC_MoveParent,
/*295062*/                OPC_MoveChild2,
/*295063*/                OPC_CheckImmAllZerosV,
/*295064*/                OPC_MoveParent,
/*295065*/                OPC_SwitchType /*2 cases */, 21, MVT::v8f64,// ->295089
/*295068*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*295070*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*295073*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*295077*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (strict_uint_to_fp:{ *:[v8f64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                            // Dst: (VCVTUQQ2PDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*295089*/                /*SwitchType*/ 21, MVT::v8f32,// ->295112
/*295091*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*295093*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*295096*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*295100*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PSZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (strict_uint_to_fp:{ *:[v8f32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                            // Dst: (VCVTUQQ2PSZrmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*295112*/                0, // EndSwitchType
/*295113*/              0, // EndSwitchType
/*295114*/            /*SwitchOpcode*/ 120, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->295237
/*295117*/              OPC_RecordMemRef,
/*295118*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*295119*/              OPC_CheckFoldableChainNode,
/*295120*/              OPC_RecordChild1, // #3 = $src
/*295121*/              OPC_SwitchType /*2 cases */, 55, MVT::v8i32,// ->295179
/*295124*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*295126*/                OPC_MoveParent,
/*295127*/                OPC_MoveParent,
/*295128*/                OPC_MoveChild2,
/*295129*/                OPC_CheckImmAllZerosV,
/*295130*/                OPC_MoveParent,
/*295131*/                OPC_SwitchType /*2 cases */, 21, MVT::v8f64,// ->295155
/*295134*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*295136*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*295139*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*295143*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (strict_uint_to_fp:{ *:[v8f64] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                            // Dst: (VCVTUDQ2PDZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*295155*/                /*SwitchType*/ 21, MVT::v8f32,// ->295178
/*295157*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*295159*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*295162*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*295166*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PSZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (strict_uint_to_fp:{ *:[v8f32] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                            // Dst: (VCVTUDQ2PSZ256rmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*295178*/                0, // EndSwitchType
/*295179*/              /*SwitchType*/ 55, MVT::v8i64,// ->295236
/*295181*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*295183*/                OPC_MoveParent,
/*295184*/                OPC_MoveParent,
/*295185*/                OPC_MoveChild2,
/*295186*/                OPC_CheckImmAllZerosV,
/*295187*/                OPC_MoveParent,
/*295188*/                OPC_SwitchType /*2 cases */, 21, MVT::v8f64,// ->295212
/*295191*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*295193*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*295196*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*295200*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PDZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (strict_uint_to_fp:{ *:[v8f64] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                            // Dst: (VCVTUQQ2PDZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*295212*/                /*SwitchType*/ 21, MVT::v8f32,// ->295235
/*295214*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*295216*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*295219*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*295223*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PSZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (strict_uint_to_fp:{ *:[v8f32] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                            // Dst: (VCVTUQQ2PSZrmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*295235*/                0, // EndSwitchType
/*295236*/              0, // EndSwitchType
/*295237*/            0, // EndSwitchOpcode
/*295238*/          /*SwitchOpcode*/ 97|128,1/*225*/, TARGET_VAL(ISD::UINT_TO_FP),// ->295467
/*295242*/            OPC_MoveChild0,
/*295243*/            OPC_SwitchOpcode /*2 cases */, 108, TARGET_VAL(ISD::LOAD),// ->295355
/*295247*/              OPC_RecordMemRef,
/*295248*/              OPC_RecordNode, // #1 = 'ld' chained node
/*295249*/              OPC_CheckFoldableChainNode,
/*295250*/              OPC_RecordChild1, // #2 = $src
/*295251*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*295253*/              OPC_CheckPredicate, 9, // Predicate_load
/*295255*/              OPC_SwitchType /*2 cases */, 47, MVT::v8i32,// ->295305
/*295258*/                OPC_MoveParent,
/*295259*/                OPC_MoveParent,
/*295260*/                OPC_MoveChild2,
/*295261*/                OPC_CheckImmAllZerosV,
/*295262*/                OPC_MoveParent,
/*295263*/                OPC_SwitchType /*2 cases */, 18, MVT::v8f64,// ->295284
/*295266*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*295268*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*295271*/                  OPC_EmitMergeInputChains1_1,
/*295272*/                  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] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                            // Dst: (VCVTUDQ2PDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*295284*/                /*SwitchType*/ 18, MVT::v8f32,// ->295304
/*295286*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*295288*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*295291*/                  OPC_EmitMergeInputChains1_1,
/*295292*/                  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] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                            // Dst: (VCVTUDQ2PSZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*295304*/                0, // EndSwitchType
/*295305*/              /*SwitchType*/ 47, MVT::v8i64,// ->295354
/*295307*/                OPC_MoveParent,
/*295308*/                OPC_MoveParent,
/*295309*/                OPC_MoveChild2,
/*295310*/                OPC_CheckImmAllZerosV,
/*295311*/                OPC_MoveParent,
/*295312*/                OPC_SwitchType /*2 cases */, 18, MVT::v8f64,// ->295333
/*295315*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*295317*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*295320*/                  OPC_EmitMergeInputChains1_1,
/*295321*/                  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>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                            // Dst: (VCVTUQQ2PDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*295333*/                /*SwitchType*/ 18, MVT::v8f32,// ->295353
/*295335*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*295337*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*295340*/                  OPC_EmitMergeInputChains1_1,
/*295341*/                  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>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                            // Dst: (VCVTUQQ2PSZrmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*295353*/                0, // EndSwitchType
/*295354*/              0, // EndSwitchType
/*295355*/            /*SwitchOpcode*/ 108, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->295466
/*295358*/              OPC_RecordMemRef,
/*295359*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*295360*/              OPC_CheckFoldableChainNode,
/*295361*/              OPC_RecordChild1, // #2 = $src
/*295362*/              OPC_SwitchType /*2 cases */, 49, MVT::v8i32,// ->295414
/*295365*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*295367*/                OPC_MoveParent,
/*295368*/                OPC_MoveParent,
/*295369*/                OPC_MoveChild2,
/*295370*/                OPC_CheckImmAllZerosV,
/*295371*/                OPC_MoveParent,
/*295372*/                OPC_SwitchType /*2 cases */, 18, MVT::v8f64,// ->295393
/*295375*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*295377*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*295380*/                  OPC_EmitMergeInputChains1_1,
/*295381*/                  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] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                            // Dst: (VCVTUDQ2PDZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*295393*/                /*SwitchType*/ 18, MVT::v8f32,// ->295413
/*295395*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*295397*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*295400*/                  OPC_EmitMergeInputChains1_1,
/*295401*/                  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] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                            // Dst: (VCVTUDQ2PSZ256rmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*295413*/                0, // EndSwitchType
/*295414*/              /*SwitchType*/ 49, MVT::v8i64,// ->295465
/*295416*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*295418*/                OPC_MoveParent,
/*295419*/                OPC_MoveParent,
/*295420*/                OPC_MoveChild2,
/*295421*/                OPC_CheckImmAllZerosV,
/*295422*/                OPC_MoveParent,
/*295423*/                OPC_SwitchType /*2 cases */, 18, MVT::v8f64,// ->295444
/*295426*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*295428*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*295431*/                  OPC_EmitMergeInputChains1_1,
/*295432*/                  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] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                            // Dst: (VCVTUQQ2PDZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*295444*/                /*SwitchType*/ 18, MVT::v8f32,// ->295464
/*295446*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*295448*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*295451*/                  OPC_EmitMergeInputChains1_1,
/*295452*/                  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] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                            // Dst: (VCVTUQQ2PSZrmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*295464*/                0, // EndSwitchType
/*295465*/              0, // EndSwitchType
/*295466*/            0, // EndSwitchOpcode
/*295467*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::CVTPH2PS),// ->295509
/*295470*/            OPC_MoveChild0,
/*295471*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*295474*/            OPC_RecordMemRef,
/*295475*/            OPC_RecordNode, // #1 = 'ld' chained node
/*295476*/            OPC_CheckFoldableChainNode,
/*295477*/            OPC_RecordChild1, // #2 = $src
/*295478*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*295480*/            OPC_CheckPredicate, 9, // Predicate_load
/*295482*/            OPC_CheckType, MVT::v8i16,
/*295484*/            OPC_MoveParent,
/*295485*/            OPC_MoveParent,
/*295486*/            OPC_MoveChild2,
/*295487*/            OPC_CheckImmAllZerosV,
/*295488*/            OPC_MoveParent,
/*295489*/            OPC_CheckType, MVT::v8f32,
/*295491*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*295493*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*295496*/            OPC_EmitMergeInputChains1_1,
/*295497*/            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] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                      // Dst: (VCVTPH2PSZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*295509*/          /*SwitchOpcode*/ 126, TARGET_VAL(X86ISD::RSQRT14),// ->295638
/*295512*/            OPC_MoveChild0,
/*295513*/            OPC_SwitchOpcode /*2 cases */, 55, TARGET_VAL(ISD::LOAD),// ->295572
/*295517*/              OPC_RecordMemRef,
/*295518*/              OPC_RecordNode, // #1 = 'ld' chained node
/*295519*/              OPC_CheckFoldableChainNode,
/*295520*/              OPC_RecordChild1, // #2 = $src
/*295521*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*295523*/              OPC_CheckPredicate, 9, // Predicate_load
/*295525*/              OPC_MoveParent,
/*295526*/              OPC_MoveParent,
/*295527*/              OPC_MoveChild2,
/*295528*/              OPC_CheckImmAllZerosV,
/*295529*/              OPC_MoveParent,
/*295530*/              OPC_SwitchType /*2 cases */, 18, MVT::v8f64,// ->295551
/*295533*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*295535*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*295538*/                OPC_EmitMergeInputChains1_1,
/*295539*/                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>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                          // Dst: (VRSQRT14PDZmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*295551*/              /*SwitchType*/ 18, MVT::v8f32,// ->295571
/*295553*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*295555*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*295558*/                OPC_EmitMergeInputChains1_1,
/*295559*/                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>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                          // Dst: (VRSQRT14PSZ256mkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*295571*/              0, // EndSwitchType
/*295572*/            /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->295637
/*295575*/              OPC_RecordMemRef,
/*295576*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*295577*/              OPC_CheckFoldableChainNode,
/*295578*/              OPC_RecordChild1, // #2 = $src
/*295579*/              OPC_Scope, 27, /*->295608*/ // 2 children in Scope
/*295581*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*295583*/                OPC_MoveParent,
/*295584*/                OPC_MoveParent,
/*295585*/                OPC_MoveChild2,
/*295586*/                OPC_CheckImmAllZerosV,
/*295587*/                OPC_MoveParent,
/*295588*/                OPC_CheckType, MVT::v8f64,
/*295590*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*295592*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*295595*/                OPC_EmitMergeInputChains1_1,
/*295596*/                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] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                          // Dst: (VRSQRT14PDZmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*295608*/              /*Scope*/ 27, /*->295636*/
/*295609*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*295611*/                OPC_MoveParent,
/*295612*/                OPC_MoveParent,
/*295613*/                OPC_MoveChild2,
/*295614*/                OPC_CheckImmAllZerosV,
/*295615*/                OPC_MoveParent,
/*295616*/                OPC_CheckType, MVT::v8f32,
/*295618*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*295620*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*295623*/                OPC_EmitMergeInputChains1_1,
/*295624*/                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] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                          // Dst: (VRSQRT14PSZ256mbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*295636*/              0, /*End of Scope*/
/*295637*/            0, // EndSwitchOpcode
/*295638*/          /*SwitchOpcode*/ 126, TARGET_VAL(X86ISD::RCP14),// ->295767
/*295641*/            OPC_MoveChild0,
/*295642*/            OPC_SwitchOpcode /*2 cases */, 55, TARGET_VAL(ISD::LOAD),// ->295701
/*295646*/              OPC_RecordMemRef,
/*295647*/              OPC_RecordNode, // #1 = 'ld' chained node
/*295648*/              OPC_CheckFoldableChainNode,
/*295649*/              OPC_RecordChild1, // #2 = $src
/*295650*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*295652*/              OPC_CheckPredicate, 9, // Predicate_load
/*295654*/              OPC_MoveParent,
/*295655*/              OPC_MoveParent,
/*295656*/              OPC_MoveChild2,
/*295657*/              OPC_CheckImmAllZerosV,
/*295658*/              OPC_MoveParent,
/*295659*/              OPC_SwitchType /*2 cases */, 18, MVT::v8f64,// ->295680
/*295662*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*295664*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*295667*/                OPC_EmitMergeInputChains1_1,
/*295668*/                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>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                          // Dst: (VRCP14PDZmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*295680*/              /*SwitchType*/ 18, MVT::v8f32,// ->295700
/*295682*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*295684*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*295687*/                OPC_EmitMergeInputChains1_1,
/*295688*/                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>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                          // Dst: (VRCP14PSZ256mkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*295700*/              0, // EndSwitchType
/*295701*/            /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->295766
/*295704*/              OPC_RecordMemRef,
/*295705*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*295706*/              OPC_CheckFoldableChainNode,
/*295707*/              OPC_RecordChild1, // #2 = $src
/*295708*/              OPC_Scope, 27, /*->295737*/ // 2 children in Scope
/*295710*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*295712*/                OPC_MoveParent,
/*295713*/                OPC_MoveParent,
/*295714*/                OPC_MoveChild2,
/*295715*/                OPC_CheckImmAllZerosV,
/*295716*/                OPC_MoveParent,
/*295717*/                OPC_CheckType, MVT::v8f64,
/*295719*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*295721*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*295724*/                OPC_EmitMergeInputChains1_1,
/*295725*/                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] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                          // Dst: (VRCP14PDZmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*295737*/              /*Scope*/ 27, /*->295765*/
/*295738*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*295740*/                OPC_MoveParent,
/*295741*/                OPC_MoveParent,
/*295742*/                OPC_MoveChild2,
/*295743*/                OPC_CheckImmAllZerosV,
/*295744*/                OPC_MoveParent,
/*295745*/                OPC_CheckType, MVT::v8f32,
/*295747*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*295749*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*295752*/                OPC_EmitMergeInputChains1_1,
/*295753*/                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] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                          // Dst: (VRCP14PSZ256mbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*295765*/              0, /*End of Scope*/
/*295766*/            0, // EndSwitchOpcode
/*295767*/          /*SwitchOpcode*/ 73, TARGET_VAL(X86ISD::RSQRT28),// ->295843
/*295770*/            OPC_MoveChild0,
/*295771*/            OPC_SwitchOpcode /*2 cases */, 33, TARGET_VAL(ISD::LOAD),// ->295808
/*295775*/              OPC_RecordMemRef,
/*295776*/              OPC_RecordNode, // #1 = 'ld' chained node
/*295777*/              OPC_CheckFoldableChainNode,
/*295778*/              OPC_RecordChild1, // #2 = $src
/*295779*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*295781*/              OPC_CheckPredicate, 9, // Predicate_load
/*295783*/              OPC_MoveParent,
/*295784*/              OPC_MoveParent,
/*295785*/              OPC_MoveChild2,
/*295786*/              OPC_CheckImmAllZerosV,
/*295787*/              OPC_MoveParent,
/*295788*/              OPC_CheckType, MVT::v8f64,
/*295790*/              OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*295792*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*295795*/              OPC_EmitMergeInputChains1_1,
/*295796*/              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>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                        // Dst: (VRSQRT28PDZmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*295808*/            /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->295842
/*295811*/              OPC_RecordMemRef,
/*295812*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*295813*/              OPC_CheckFoldableChainNode,
/*295814*/              OPC_RecordChild1, // #2 = $src
/*295815*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*295817*/              OPC_MoveParent,
/*295818*/              OPC_MoveParent,
/*295819*/              OPC_MoveChild2,
/*295820*/              OPC_CheckImmAllZerosV,
/*295821*/              OPC_MoveParent,
/*295822*/              OPC_CheckType, MVT::v8f64,
/*295824*/              OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*295826*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*295829*/              OPC_EmitMergeInputChains1_1,
/*295830*/              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] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                        // Dst: (VRSQRT28PDZmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*295842*/            0, // EndSwitchOpcode
/*295843*/          /*SwitchOpcode*/ 73, TARGET_VAL(X86ISD::RCP28),// ->295919
/*295846*/            OPC_MoveChild0,
/*295847*/            OPC_SwitchOpcode /*2 cases */, 33, TARGET_VAL(ISD::LOAD),// ->295884
/*295851*/              OPC_RecordMemRef,
/*295852*/              OPC_RecordNode, // #1 = 'ld' chained node
/*295853*/              OPC_CheckFoldableChainNode,
/*295854*/              OPC_RecordChild1, // #2 = $src
/*295855*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*295857*/              OPC_CheckPredicate, 9, // Predicate_load
/*295859*/              OPC_MoveParent,
/*295860*/              OPC_MoveParent,
/*295861*/              OPC_MoveChild2,
/*295862*/              OPC_CheckImmAllZerosV,
/*295863*/              OPC_MoveParent,
/*295864*/              OPC_CheckType, MVT::v8f64,
/*295866*/              OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*295868*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*295871*/              OPC_EmitMergeInputChains1_1,
/*295872*/              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>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                        // Dst: (VRCP28PDZmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*295884*/            /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->295918
/*295887*/              OPC_RecordMemRef,
/*295888*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*295889*/              OPC_CheckFoldableChainNode,
/*295890*/              OPC_RecordChild1, // #2 = $src
/*295891*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*295893*/              OPC_MoveParent,
/*295894*/              OPC_MoveParent,
/*295895*/              OPC_MoveChild2,
/*295896*/              OPC_CheckImmAllZerosV,
/*295897*/              OPC_MoveParent,
/*295898*/              OPC_CheckType, MVT::v8f64,
/*295900*/              OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*295902*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*295905*/              OPC_EmitMergeInputChains1_1,
/*295906*/              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] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                        // Dst: (VRCP28PDZmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*295918*/            0, // EndSwitchOpcode
/*295919*/          /*SwitchOpcode*/ 73, TARGET_VAL(X86ISD::EXP2),// ->295995
/*295922*/            OPC_MoveChild0,
/*295923*/            OPC_SwitchOpcode /*2 cases */, 33, TARGET_VAL(ISD::LOAD),// ->295960
/*295927*/              OPC_RecordMemRef,
/*295928*/              OPC_RecordNode, // #1 = 'ld' chained node
/*295929*/              OPC_CheckFoldableChainNode,
/*295930*/              OPC_RecordChild1, // #2 = $src
/*295931*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*295933*/              OPC_CheckPredicate, 9, // Predicate_load
/*295935*/              OPC_MoveParent,
/*295936*/              OPC_MoveParent,
/*295937*/              OPC_MoveChild2,
/*295938*/              OPC_CheckImmAllZerosV,
/*295939*/              OPC_MoveParent,
/*295940*/              OPC_CheckType, MVT::v8f64,
/*295942*/              OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*295944*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*295947*/              OPC_EmitMergeInputChains1_1,
/*295948*/              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>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                        // Dst: (VEXP2PDZmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*295960*/            /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->295994
/*295963*/              OPC_RecordMemRef,
/*295964*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*295965*/              OPC_CheckFoldableChainNode,
/*295966*/              OPC_RecordChild1, // #2 = $src
/*295967*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*295969*/              OPC_MoveParent,
/*295970*/              OPC_MoveParent,
/*295971*/              OPC_MoveChild2,
/*295972*/              OPC_CheckImmAllZerosV,
/*295973*/              OPC_MoveParent,
/*295974*/              OPC_CheckType, MVT::v8f64,
/*295976*/              OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*295978*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*295981*/              OPC_EmitMergeInputChains1_1,
/*295982*/              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] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                        // Dst: (VEXP2PDZmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*295994*/            0, // EndSwitchOpcode
/*295995*/          /*SwitchOpcode*/ 126, TARGET_VAL(X86ISD::FGETEXP),// ->296124
/*295998*/            OPC_MoveChild0,
/*295999*/            OPC_SwitchOpcode /*2 cases */, 55, TARGET_VAL(ISD::LOAD),// ->296058
/*296003*/              OPC_RecordMemRef,
/*296004*/              OPC_RecordNode, // #1 = 'ld' chained node
/*296005*/              OPC_CheckFoldableChainNode,
/*296006*/              OPC_RecordChild1, // #2 = $src
/*296007*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*296009*/              OPC_CheckPredicate, 9, // Predicate_load
/*296011*/              OPC_MoveParent,
/*296012*/              OPC_MoveParent,
/*296013*/              OPC_MoveChild2,
/*296014*/              OPC_CheckImmAllZerosV,
/*296015*/              OPC_MoveParent,
/*296016*/              OPC_SwitchType /*2 cases */, 18, MVT::v8f64,// ->296037
/*296019*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*296021*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*296024*/                OPC_EmitMergeInputChains1_1,
/*296025*/                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, (X86fgetexp:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                          // Dst: (VGETEXPPDZmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*296037*/              /*SwitchType*/ 18, MVT::v8f32,// ->296057
/*296039*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*296041*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*296044*/                OPC_EmitMergeInputChains1_1,
/*296045*/                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, (X86fgetexp:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                          // Dst: (VGETEXPPSZ256mkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*296057*/              0, // EndSwitchType
/*296058*/            /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->296123
/*296061*/              OPC_RecordMemRef,
/*296062*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*296063*/              OPC_CheckFoldableChainNode,
/*296064*/              OPC_RecordChild1, // #2 = $src
/*296065*/              OPC_Scope, 27, /*->296094*/ // 2 children in Scope
/*296067*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*296069*/                OPC_MoveParent,
/*296070*/                OPC_MoveParent,
/*296071*/                OPC_MoveChild2,
/*296072*/                OPC_CheckImmAllZerosV,
/*296073*/                OPC_MoveParent,
/*296074*/                OPC_CheckType, MVT::v8f64,
/*296076*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*296078*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*296081*/                OPC_EmitMergeInputChains1_1,
/*296082*/                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, (X86fgetexp:{ *:[v8f64] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                          // Dst: (VGETEXPPDZmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*296094*/              /*Scope*/ 27, /*->296122*/
/*296095*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*296097*/                OPC_MoveParent,
/*296098*/                OPC_MoveParent,
/*296099*/                OPC_MoveChild2,
/*296100*/                OPC_CheckImmAllZerosV,
/*296101*/                OPC_MoveParent,
/*296102*/                OPC_CheckType, MVT::v8f32,
/*296104*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*296106*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*296109*/                OPC_EmitMergeInputChains1_1,
/*296110*/                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, (X86fgetexp:{ *:[v8f32] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                          // Dst: (VGETEXPPSZ256mbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*296122*/              0, /*End of Scope*/
/*296123*/            0, // EndSwitchOpcode
/*296124*/          /*SwitchOpcode*/ 12|128,1/*140*/, TARGET_VAL(ISD::STRICT_FSQRT),// ->296268
/*296128*/            OPC_RecordNode, // #1 = 'strict_fsqrt' chained node
/*296129*/            OPC_CheckFoldableChainNode,
/*296130*/            OPC_MoveChild1,
/*296131*/            OPC_SwitchOpcode /*2 cases */, 61, TARGET_VAL(ISD::LOAD),// ->296196
/*296135*/              OPC_RecordMemRef,
/*296136*/              OPC_RecordNode, // #2 = 'ld' chained node
/*296137*/              OPC_CheckFoldableChainNode,
/*296138*/              OPC_RecordChild1, // #3 = $src
/*296139*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*296141*/              OPC_CheckPredicate, 9, // Predicate_load
/*296143*/              OPC_MoveParent,
/*296144*/              OPC_MoveParent,
/*296145*/              OPC_MoveChild2,
/*296146*/              OPC_CheckImmAllZerosV,
/*296147*/              OPC_MoveParent,
/*296148*/              OPC_SwitchType /*2 cases */, 21, MVT::v8f64,// ->296172
/*296151*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*296153*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*296156*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*296160*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (strict_fsqrt:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                          // Dst: (VSQRTPDZmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*296172*/              /*SwitchType*/ 21, MVT::v8f32,// ->296195
/*296174*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*296176*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*296179*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*296183*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (strict_fsqrt:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                          // Dst: (VSQRTPSZ256mkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*296195*/              0, // EndSwitchType
/*296196*/            /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->296267
/*296199*/              OPC_RecordMemRef,
/*296200*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*296201*/              OPC_CheckFoldableChainNode,
/*296202*/              OPC_RecordChild1, // #3 = $src
/*296203*/              OPC_Scope, 30, /*->296235*/ // 2 children in Scope
/*296205*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*296207*/                OPC_MoveParent,
/*296208*/                OPC_MoveParent,
/*296209*/                OPC_MoveChild2,
/*296210*/                OPC_CheckImmAllZerosV,
/*296211*/                OPC_MoveParent,
/*296212*/                OPC_CheckType, MVT::v8f64,
/*296214*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*296216*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*296219*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*296223*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (strict_fsqrt:{ *:[v8f64] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                          // Dst: (VSQRTPDZmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*296235*/              /*Scope*/ 30, /*->296266*/
/*296236*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*296238*/                OPC_MoveParent,
/*296239*/                OPC_MoveParent,
/*296240*/                OPC_MoveChild2,
/*296241*/                OPC_CheckImmAllZerosV,
/*296242*/                OPC_MoveParent,
/*296243*/                OPC_CheckType, MVT::v8f32,
/*296245*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*296247*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*296250*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*296254*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSZ256mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (strict_fsqrt:{ *:[v8f32] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                          // Dst: (VSQRTPSZ256mbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*296266*/              0, /*End of Scope*/
/*296267*/            0, // EndSwitchOpcode
/*296268*/          /*SwitchOpcode*/ 126, TARGET_VAL(ISD::FSQRT),// ->296397
/*296271*/            OPC_MoveChild0,
/*296272*/            OPC_SwitchOpcode /*2 cases */, 55, TARGET_VAL(ISD::LOAD),// ->296331
/*296276*/              OPC_RecordMemRef,
/*296277*/              OPC_RecordNode, // #1 = 'ld' chained node
/*296278*/              OPC_CheckFoldableChainNode,
/*296279*/              OPC_RecordChild1, // #2 = $src
/*296280*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*296282*/              OPC_CheckPredicate, 9, // Predicate_load
/*296284*/              OPC_MoveParent,
/*296285*/              OPC_MoveParent,
/*296286*/              OPC_MoveChild2,
/*296287*/              OPC_CheckImmAllZerosV,
/*296288*/              OPC_MoveParent,
/*296289*/              OPC_SwitchType /*2 cases */, 18, MVT::v8f64,// ->296310
/*296292*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*296294*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*296297*/                OPC_EmitMergeInputChains1_1,
/*296298*/                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>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                          // Dst: (VSQRTPDZmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*296310*/              /*SwitchType*/ 18, MVT::v8f32,// ->296330
/*296312*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*296314*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*296317*/                OPC_EmitMergeInputChains1_1,
/*296318*/                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>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                          // Dst: (VSQRTPSZ256mkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*296330*/              0, // EndSwitchType
/*296331*/            /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->296396
/*296334*/              OPC_RecordMemRef,
/*296335*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*296336*/              OPC_CheckFoldableChainNode,
/*296337*/              OPC_RecordChild1, // #2 = $src
/*296338*/              OPC_Scope, 27, /*->296367*/ // 2 children in Scope
/*296340*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*296342*/                OPC_MoveParent,
/*296343*/                OPC_MoveParent,
/*296344*/                OPC_MoveChild2,
/*296345*/                OPC_CheckImmAllZerosV,
/*296346*/                OPC_MoveParent,
/*296347*/                OPC_CheckType, MVT::v8f64,
/*296349*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*296351*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*296354*/                OPC_EmitMergeInputChains1_1,
/*296355*/                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] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                          // Dst: (VSQRTPDZmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*296367*/              /*Scope*/ 27, /*->296395*/
/*296368*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*296370*/                OPC_MoveParent,
/*296371*/                OPC_MoveParent,
/*296372*/                OPC_MoveChild2,
/*296373*/                OPC_CheckImmAllZerosV,
/*296374*/                OPC_MoveParent,
/*296375*/                OPC_CheckType, MVT::v8f32,
/*296377*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*296379*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*296382*/                OPC_EmitMergeInputChains1_1,
/*296383*/                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] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                          // Dst: (VSQRTPSZ256mbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*296395*/              0, /*End of Scope*/
/*296396*/            0, // EndSwitchOpcode
/*296397*/          /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::MOVSHDUP),// ->296437
/*296400*/            OPC_MoveChild0,
/*296401*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*296404*/            OPC_RecordMemRef,
/*296405*/            OPC_RecordNode, // #1 = 'ld' chained node
/*296406*/            OPC_CheckFoldableChainNode,
/*296407*/            OPC_RecordChild1, // #2 = $src1
/*296408*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*296410*/            OPC_CheckPredicate, 9, // Predicate_load
/*296412*/            OPC_MoveParent,
/*296413*/            OPC_MoveParent,
/*296414*/            OPC_MoveChild2,
/*296415*/            OPC_CheckImmAllZerosV,
/*296416*/            OPC_MoveParent,
/*296417*/            OPC_CheckType, MVT::v8f32,
/*296419*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*296421*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*296424*/            OPC_EmitMergeInputChains1_1,
/*296425*/            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>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                      // Dst: (VMOVSHDUPZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*296437*/          /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::MOVSLDUP),// ->296477
/*296440*/            OPC_MoveChild0,
/*296441*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*296444*/            OPC_RecordMemRef,
/*296445*/            OPC_RecordNode, // #1 = 'ld' chained node
/*296446*/            OPC_CheckFoldableChainNode,
/*296447*/            OPC_RecordChild1, // #2 = $src1
/*296448*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*296450*/            OPC_CheckPredicate, 9, // Predicate_load
/*296452*/            OPC_MoveParent,
/*296453*/            OPC_MoveParent,
/*296454*/            OPC_MoveChild2,
/*296455*/            OPC_CheckImmAllZerosV,
/*296456*/            OPC_MoveParent,
/*296457*/            OPC_CheckType, MVT::v8f32,
/*296459*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*296461*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*296464*/            OPC_EmitMergeInputChains1_1,
/*296465*/            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>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                      // Dst: (VMOVSLDUPZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*296477*/          /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::MOVDDUP),// ->296517
/*296480*/            OPC_MoveChild0,
/*296481*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*296484*/            OPC_RecordMemRef,
/*296485*/            OPC_RecordNode, // #1 = 'ld' chained node
/*296486*/            OPC_CheckFoldableChainNode,
/*296487*/            OPC_RecordChild1, // #2 = $src1
/*296488*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*296490*/            OPC_CheckPredicate, 9, // Predicate_load
/*296492*/            OPC_MoveParent,
/*296493*/            OPC_MoveParent,
/*296494*/            OPC_MoveChild2,
/*296495*/            OPC_CheckImmAllZerosV,
/*296496*/            OPC_MoveParent,
/*296497*/            OPC_CheckType, MVT::v8f64,
/*296499*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*296501*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*296504*/            OPC_EmitMergeInputChains1_1,
/*296505*/            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>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                      // Dst: (VMOVDDUPZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*296517*/          /*SwitchOpcode*/ 3|128,1/*131*/, TARGET_VAL(X86ISD::UNPCKH),// ->296652
/*296521*/            OPC_RecordChild0, // #1 = $src1
/*296522*/            OPC_MoveChild1,
/*296523*/            OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->296584
/*296527*/              OPC_RecordMemRef,
/*296528*/              OPC_RecordNode, // #2 = 'ld' chained node
/*296529*/              OPC_CheckFoldableChainNode,
/*296530*/              OPC_RecordChild1, // #3 = $src2
/*296531*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*296533*/              OPC_CheckPredicate, 9, // Predicate_load
/*296535*/              OPC_MoveParent,
/*296536*/              OPC_MoveParent,
/*296537*/              OPC_MoveChild2,
/*296538*/              OPC_CheckImmAllZerosV,
/*296539*/              OPC_MoveParent,
/*296540*/              OPC_SwitchType /*2 cases */, 19, MVT::v8f64,// ->296562
/*296543*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*296545*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*296548*/                OPC_EmitMergeInputChains1_2,
/*296549*/                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>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                          // Dst: (VUNPCKHPDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*296562*/              /*SwitchType*/ 19, MVT::v8f32,// ->296583
/*296564*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*296566*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*296569*/                OPC_EmitMergeInputChains1_2,
/*296570*/                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>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                          // Dst: (VUNPCKHPSZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*296583*/              0, // EndSwitchType
/*296584*/            /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->296651
/*296587*/              OPC_RecordMemRef,
/*296588*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*296589*/              OPC_CheckFoldableChainNode,
/*296590*/              OPC_RecordChild1, // #3 = $src2
/*296591*/              OPC_Scope, 28, /*->296621*/ // 2 children in Scope
/*296593*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*296595*/                OPC_MoveParent,
/*296596*/                OPC_MoveParent,
/*296597*/                OPC_MoveChild2,
/*296598*/                OPC_CheckImmAllZerosV,
/*296599*/                OPC_MoveParent,
/*296600*/                OPC_CheckType, MVT::v8f64,
/*296602*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*296604*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*296607*/                OPC_EmitMergeInputChains1_2,
/*296608*/                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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                          // Dst: (VUNPCKHPDZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*296621*/              /*Scope*/ 28, /*->296650*/
/*296622*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*296624*/                OPC_MoveParent,
/*296625*/                OPC_MoveParent,
/*296626*/                OPC_MoveChild2,
/*296627*/                OPC_CheckImmAllZerosV,
/*296628*/                OPC_MoveParent,
/*296629*/                OPC_CheckType, MVT::v8f32,
/*296631*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*296633*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*296636*/                OPC_EmitMergeInputChains1_2,
/*296637*/                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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                          // Dst: (VUNPCKHPSZ256rmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*296650*/              0, /*End of Scope*/
/*296651*/            0, // EndSwitchOpcode
/*296652*/          /*SwitchOpcode*/ 3|128,1/*131*/, TARGET_VAL(X86ISD::UNPCKL),// ->296787
/*296656*/            OPC_RecordChild0, // #1 = $src1
/*296657*/            OPC_MoveChild1,
/*296658*/            OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->296719
/*296662*/              OPC_RecordMemRef,
/*296663*/              OPC_RecordNode, // #2 = 'ld' chained node
/*296664*/              OPC_CheckFoldableChainNode,
/*296665*/              OPC_RecordChild1, // #3 = $src2
/*296666*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*296668*/              OPC_CheckPredicate, 9, // Predicate_load
/*296670*/              OPC_MoveParent,
/*296671*/              OPC_MoveParent,
/*296672*/              OPC_MoveChild2,
/*296673*/              OPC_CheckImmAllZerosV,
/*296674*/              OPC_MoveParent,
/*296675*/              OPC_SwitchType /*2 cases */, 19, MVT::v8f64,// ->296697
/*296678*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*296680*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*296683*/                OPC_EmitMergeInputChains1_2,
/*296684*/                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>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                          // Dst: (VUNPCKLPDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*296697*/              /*SwitchType*/ 19, MVT::v8f32,// ->296718
/*296699*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*296701*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*296704*/                OPC_EmitMergeInputChains1_2,
/*296705*/                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>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                          // Dst: (VUNPCKLPSZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*296718*/              0, // EndSwitchType
/*296719*/            /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->296786
/*296722*/              OPC_RecordMemRef,
/*296723*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*296724*/              OPC_CheckFoldableChainNode,
/*296725*/              OPC_RecordChild1, // #3 = $src2
/*296726*/              OPC_Scope, 28, /*->296756*/ // 2 children in Scope
/*296728*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*296730*/                OPC_MoveParent,
/*296731*/                OPC_MoveParent,
/*296732*/                OPC_MoveChild2,
/*296733*/                OPC_CheckImmAllZerosV,
/*296734*/                OPC_MoveParent,
/*296735*/                OPC_CheckType, MVT::v8f64,
/*296737*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*296739*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*296742*/                OPC_EmitMergeInputChains1_2,
/*296743*/                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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v8f64] }) - Complexity = 32
                          // Dst: (VUNPCKLPDZrmbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*296756*/              /*Scope*/ 28, /*->296785*/
/*296757*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*296759*/                OPC_MoveParent,
/*296760*/                OPC_MoveParent,
/*296761*/                OPC_MoveChild2,
/*296762*/                OPC_CheckImmAllZerosV,
/*296763*/                OPC_MoveParent,
/*296764*/                OPC_CheckType, MVT::v8f32,
/*296766*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*296768*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*296771*/                OPC_EmitMergeInputChains1_2,
/*296772*/                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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                          // Dst: (VUNPCKLPSZ256rmbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*296785*/              0, /*End of Scope*/
/*296786*/            0, // EndSwitchOpcode
/*296787*/          /*SwitchOpcode*/ 85, TARGET_VAL(X86ISD::DPBF16PS),// ->296875
/*296790*/            OPC_RecordChild0, // #1 = $src1
/*296791*/            OPC_RecordChild1, // #2 = $src2
/*296792*/            OPC_CheckChild1Type, MVT::v8i32,
/*296794*/            OPC_MoveChild2,
/*296795*/            OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->296836
/*296799*/              OPC_RecordMemRef,
/*296800*/              OPC_RecordNode, // #3 = 'ld' chained node
/*296801*/              OPC_CheckFoldableChainNode,
/*296802*/              OPC_RecordChild1, // #4 = $src3
/*296803*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*296805*/              OPC_CheckPredicate, 9, // Predicate_load
/*296807*/              OPC_MoveParent,
/*296808*/              OPC_MoveParent,
/*296809*/              OPC_MoveChild2,
/*296810*/              OPC_CheckImmAllZerosV,
/*296811*/              OPC_MoveParent,
/*296812*/              OPC_CheckType, MVT::v8f32,
/*296814*/              OPC_CheckPatternPredicate, 182, // (Subtarget->hasBF16()) && (Subtarget->hasVLX())
/*296816*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*296819*/              OPC_EmitMergeInputChains, 1, 3, 
/*296822*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDPBF16PSZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86dpbf16ps:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                        // Dst: (VDPBF16PSZ256mkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*296836*/            /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->296874
/*296839*/              OPC_RecordMemRef,
/*296840*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*296841*/              OPC_CheckFoldableChainNode,
/*296842*/              OPC_RecordChild1, // #4 = $src3
/*296843*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*296845*/              OPC_MoveParent,
/*296846*/              OPC_MoveParent,
/*296847*/              OPC_MoveChild2,
/*296848*/              OPC_CheckImmAllZerosV,
/*296849*/              OPC_MoveParent,
/*296850*/              OPC_CheckType, MVT::v8f32,
/*296852*/              OPC_CheckPatternPredicate, 182, // (Subtarget->hasBF16()) && (Subtarget->hasVLX())
/*296854*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*296857*/              OPC_EmitMergeInputChains, 1, 3, 
/*296860*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDPBF16PSZ256mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86dpbf16ps:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v8f32] }) - Complexity = 32
                        // Dst: (VDPBF16PSZ256mbkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*296874*/            0, // EndSwitchOpcode
/*296875*/          0, // EndSwitchOpcode
/*296876*/        /*Scope*/ 13|128,1/*141*/, /*->297019*/
/*296878*/          OPC_RecordChild1, // #1 = $src3
/*296879*/          OPC_MoveChild1,
/*296880*/          OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*296883*/          OPC_RecordChild0, // #2 = $src1
/*296884*/          OPC_MoveChild1,
/*296885*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*296888*/          OPC_RecordMemRef,
/*296889*/          OPC_RecordNode, // #3 = 'ld' chained node
/*296890*/          OPC_CheckFoldableChainNode,
/*296891*/          OPC_RecordChild1, // #4 = $src2
/*296892*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*296894*/          OPC_CheckPredicate, 9, // Predicate_load
/*296896*/          OPC_Scope, 38, /*->296936*/ // 3 children in Scope
/*296898*/            OPC_MoveParent,
/*296899*/            OPC_MoveChild2,
/*296900*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*296903*/            OPC_CheckType, MVT::iPTR,
/*296905*/            OPC_MoveParent,
/*296906*/            OPC_MoveParent,
/*296907*/            OPC_RecordChild2, // #5 = $src0
/*296908*/            OPC_CheckType, MVT::v8f32,
/*296910*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*296912*/            OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*296915*/            OPC_EmitMergeInputChains, 1, 3, 
/*296918*/            OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*296921*/            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>>, (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>>, (imm:{ *:[iPTR] })):$src3))
/*296936*/          /*Scope*/ 40, /*->296977*/
/*296937*/            OPC_CheckType, MVT::v4f64,
/*296939*/            OPC_MoveParent,
/*296940*/            OPC_MoveChild2,
/*296941*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*296944*/            OPC_CheckType, MVT::iPTR,
/*296946*/            OPC_MoveParent,
/*296947*/            OPC_MoveParent,
/*296948*/            OPC_RecordChild2, // #5 = $src0
/*296949*/            OPC_CheckType, MVT::v8f64,
/*296951*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*296953*/            OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*296956*/            OPC_EmitMergeInputChains, 1, 3, 
/*296959*/            OPC_EmitNodeXForm, 16, 1, // INSERT_get_vinsert256_imm
/*296962*/            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>>, (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>>, (imm:{ *:[iPTR] })):$src3))
/*296977*/          /*Scope*/ 40, /*->297018*/
/*296978*/            OPC_CheckType, MVT::v2f64,
/*296980*/            OPC_MoveParent,
/*296981*/            OPC_MoveChild2,
/*296982*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*296985*/            OPC_CheckType, MVT::iPTR,
/*296987*/            OPC_MoveParent,
/*296988*/            OPC_MoveParent,
/*296989*/            OPC_RecordChild2, // #5 = $src0
/*296990*/            OPC_CheckType, MVT::v8f64,
/*296992*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*296994*/            OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*296997*/            OPC_EmitMergeInputChains, 1, 3, 
/*297000*/            OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*297003*/            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>>, (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>>, (imm:{ *:[iPTR] })):$src3))
/*297018*/          0, /*End of Scope*/
/*297019*/        /*Scope*/ 49|128,126/*16177*/, /*->313198*/
/*297021*/          OPC_MoveChild1,
/*297022*/          OPC_SwitchOpcode /*60 cases */, 80|128,19/*2512*/, TARGET_VAL(ISD::BITCAST),// ->299539
/*297027*/            OPC_Scope, 21|128,18/*2325*/, /*->299355*/ // 3 children in Scope
/*297030*/              OPC_MoveChild0,
/*297031*/              OPC_SwitchOpcode /*6 cases */, 102, TARGET_VAL(X86ISD::SUBV_BROADCAST),// ->297137
/*297035*/                OPC_MoveChild0,
/*297036*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*297039*/                OPC_RecordMemRef,
/*297040*/                OPC_RecordNode, // #1 = 'ld' chained node
/*297041*/                OPC_CheckFoldableChainNode,
/*297042*/                OPC_RecordChild1, // #2 = $src
/*297043*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*297045*/                OPC_CheckPredicate, 9, // Predicate_load
/*297047*/                OPC_Scope, 29, /*->297078*/ // 3 children in Scope
/*297049*/                  OPC_CheckType, MVT::v8f32,
/*297051*/                  OPC_MoveParent,
/*297052*/                  OPC_CheckType, MVT::v16f32,
/*297054*/                  OPC_MoveParent,
/*297055*/                  OPC_MoveParent,
/*297056*/                  OPC_RecordChild2, // #3 = $src0
/*297057*/                  OPC_CheckType, MVT::v8f64,
/*297059*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*297061*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*297064*/                  OPC_EmitMergeInputChains1_1,
/*297065*/                  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>>)), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                            // Dst: (VBROADCASTF64X4rmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*297078*/                /*Scope*/ 27, /*->297106*/
/*297079*/                  OPC_MoveParent,
/*297080*/                  OPC_CheckType, MVT::v4f64,
/*297082*/                  OPC_MoveParent,
/*297083*/                  OPC_MoveParent,
/*297084*/                  OPC_RecordChild2, // #3 = $src0
/*297085*/                  OPC_CheckType, MVT::v8f32,
/*297087*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*297089*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*297092*/                  OPC_EmitMergeInputChains1_1,
/*297093*/                  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>>)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                            // Dst: (VBROADCASTF32X4Z256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*297106*/                /*Scope*/ 29, /*->297136*/
/*297107*/                  OPC_CheckType, MVT::v4f32,
/*297109*/                  OPC_MoveParent,
/*297110*/                  OPC_CheckType, MVT::v16f32,
/*297112*/                  OPC_MoveParent,
/*297113*/                  OPC_MoveParent,
/*297114*/                  OPC_RecordChild2, // #3 = $src0
/*297115*/                  OPC_CheckType, MVT::v8f64,
/*297117*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*297119*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*297122*/                  OPC_EmitMergeInputChains1_1,
/*297123*/                  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>>)), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                            // Dst: (VBROADCASTF64X2rmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*297136*/                0, /*End of Scope*/
/*297137*/              /*SwitchOpcode*/ 108|128,4/*620*/, TARGET_VAL(ISD::AND),// ->297761
/*297141*/                OPC_Scope, 50|128,2/*306*/, /*->297450*/ // 2 children in Scope
/*297144*/                  OPC_RecordChild0, // #1 = $src1
/*297145*/                  OPC_MoveChild1,
/*297146*/                  OPC_SwitchOpcode /*2 cases */, 99|128,1/*227*/, TARGET_VAL(ISD::LOAD),// ->297378
/*297151*/                    OPC_RecordMemRef,
/*297152*/                    OPC_RecordNode, // #2 = 'ld' chained node
/*297153*/                    OPC_CheckFoldableChainNode,
/*297154*/                    OPC_RecordChild1, // #3 = $src2
/*297155*/                    OPC_CheckPredicate, 4, // Predicate_unindexedload
/*297157*/                    OPC_CheckPredicate, 9, // Predicate_load
/*297159*/                    OPC_MoveParent,
/*297160*/                    OPC_SwitchType /*8 cases */, 25, MVT::v4i64,// ->297188
/*297163*/                      OPC_MoveParent,
/*297164*/                      OPC_MoveParent,
/*297165*/                      OPC_RecordChild2, // #4 = $src0
/*297166*/                      OPC_CheckType, MVT::v8f32,
/*297168*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*297170*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*297173*/                      OPC_EmitMergeInputChains1_2,
/*297174*/                      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)
/*297188*/                    /*SwitchType*/ 25, MVT::v8i32,// ->297215
/*297190*/                      OPC_MoveParent,
/*297191*/                      OPC_MoveParent,
/*297192*/                      OPC_RecordChild2, // #4 = $src0
/*297193*/                      OPC_CheckType, MVT::v8f32,
/*297195*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*297197*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*297200*/                      OPC_EmitMergeInputChains1_2,
/*297201*/                      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:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                                // Dst: (VPANDDZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*297215*/                    /*SwitchType*/ 25, MVT::v16i16,// ->297242
/*297217*/                      OPC_MoveParent,
/*297218*/                      OPC_MoveParent,
/*297219*/                      OPC_RecordChild2, // #4 = $src0
/*297220*/                      OPC_CheckType, MVT::v8f32,
/*297222*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*297224*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*297227*/                      OPC_EmitMergeInputChains1_2,
/*297228*/                      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:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                                // Dst: (VPANDDZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*297242*/                    /*SwitchType*/ 25, MVT::v32i8,// ->297269
/*297244*/                      OPC_MoveParent,
/*297245*/                      OPC_MoveParent,
/*297246*/                      OPC_RecordChild2, // #4 = $src0
/*297247*/                      OPC_CheckType, MVT::v8f32,
/*297249*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*297251*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*297254*/                      OPC_EmitMergeInputChains1_2,
/*297255*/                      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:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                                // Dst: (VPANDDZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*297269*/                    /*SwitchType*/ 25, MVT::v8i64,// ->297296
/*297271*/                      OPC_MoveParent,
/*297272*/                      OPC_MoveParent,
/*297273*/                      OPC_RecordChild2, // #4 = $src0
/*297274*/                      OPC_CheckType, MVT::v8f64,
/*297276*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*297278*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*297281*/                      OPC_EmitMergeInputChains1_2,
/*297282*/                      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)
/*297296*/                    /*SwitchType*/ 25, MVT::v16i32,// ->297323
/*297298*/                      OPC_MoveParent,
/*297299*/                      OPC_MoveParent,
/*297300*/                      OPC_RecordChild2, // #4 = $src0
/*297301*/                      OPC_CheckType, MVT::v8f64,
/*297303*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*297305*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*297308*/                      OPC_EmitMergeInputChains1_2,
/*297309*/                      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:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                                // Dst: (VPANDQZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*297323*/                    /*SwitchType*/ 25, MVT::v32i16,// ->297350
/*297325*/                      OPC_MoveParent,
/*297326*/                      OPC_MoveParent,
/*297327*/                      OPC_RecordChild2, // #4 = $src0
/*297328*/                      OPC_CheckType, MVT::v8f64,
/*297330*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*297332*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*297335*/                      OPC_EmitMergeInputChains1_2,
/*297336*/                      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:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                                // Dst: (VPANDQZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*297350*/                    /*SwitchType*/ 25, MVT::v64i8,// ->297377
/*297352*/                      OPC_MoveParent,
/*297353*/                      OPC_MoveParent,
/*297354*/                      OPC_RecordChild2, // #4 = $src0
/*297355*/                      OPC_CheckType, MVT::v8f64,
/*297357*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*297359*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*297362*/                      OPC_EmitMergeInputChains1_2,
/*297363*/                      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:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                                // Dst: (VPANDQZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*297377*/                    0, // EndSwitchType
/*297378*/                  /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->297449
/*297381*/                    OPC_RecordMemRef,
/*297382*/                    OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*297383*/                    OPC_CheckFoldableChainNode,
/*297384*/                    OPC_RecordChild1, // #3 = $src2
/*297385*/                    OPC_Scope, 30, /*->297417*/ // 2 children in Scope
/*297387*/                      OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*297389*/                      OPC_MoveParent,
/*297390*/                      OPC_CheckType, MVT::v8i32,
/*297392*/                      OPC_MoveParent,
/*297393*/                      OPC_MoveParent,
/*297394*/                      OPC_RecordChild2, // #4 = $src0
/*297395*/                      OPC_CheckType, MVT::v8f32,
/*297397*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*297399*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*297402*/                      OPC_EmitMergeInputChains1_2,
/*297403*/                      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:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                                // Dst: (VPANDDZ256rmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*297417*/                    /*Scope*/ 30, /*->297448*/
/*297418*/                      OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*297420*/                      OPC_MoveParent,
/*297421*/                      OPC_CheckType, MVT::v8i64,
/*297423*/                      OPC_MoveParent,
/*297424*/                      OPC_MoveParent,
/*297425*/                      OPC_RecordChild2, // #4 = $src0
/*297426*/                      OPC_CheckType, MVT::v8f64,
/*297428*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*297430*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*297433*/                      OPC_EmitMergeInputChains1_2,
/*297434*/                      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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>)), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                                // Dst: (VPANDQZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*297448*/                    0, /*End of Scope*/
/*297449*/                  0, // EndSwitchOpcode
/*297450*/                /*Scope*/ 52|128,2/*308*/, /*->297760*/
/*297452*/                  OPC_MoveChild0,
/*297453*/                  OPC_SwitchOpcode /*2 cases */, 100|128,1/*228*/, TARGET_VAL(ISD::LOAD),// ->297686
/*297458*/                    OPC_RecordMemRef,
/*297459*/                    OPC_RecordNode, // #1 = 'ld' chained node
/*297460*/                    OPC_CheckFoldableChainNode,
/*297461*/                    OPC_RecordChild1, // #2 = $src2
/*297462*/                    OPC_CheckPredicate, 4, // Predicate_unindexedload
/*297464*/                    OPC_CheckPredicate, 9, // Predicate_load
/*297466*/                    OPC_MoveParent,
/*297467*/                    OPC_RecordChild1, // #3 = $src1
/*297468*/                    OPC_SwitchType /*8 cases */, 25, MVT::v4i64,// ->297496
/*297471*/                      OPC_MoveParent,
/*297472*/                      OPC_MoveParent,
/*297473*/                      OPC_RecordChild2, // #4 = $src0
/*297474*/                      OPC_CheckType, MVT::v8f32,
/*297476*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*297478*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*297481*/                      OPC_EmitMergeInputChains1_1,
/*297482*/                      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)
/*297496*/                    /*SwitchType*/ 25, MVT::v8i32,// ->297523
/*297498*/                      OPC_MoveParent,
/*297499*/                      OPC_MoveParent,
/*297500*/                      OPC_RecordChild2, // #4 = $src0
/*297501*/                      OPC_CheckType, MVT::v8f32,
/*297503*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*297505*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*297508*/                      OPC_EmitMergeInputChains1_1,
/*297509*/                      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:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8i32] }:$src1)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                                // Dst: (VPANDDZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*297523*/                    /*SwitchType*/ 25, MVT::v16i16,// ->297550
/*297525*/                      OPC_MoveParent,
/*297526*/                      OPC_MoveParent,
/*297527*/                      OPC_RecordChild2, // #4 = $src0
/*297528*/                      OPC_CheckType, MVT::v8f32,
/*297530*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*297532*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*297535*/                      OPC_EmitMergeInputChains1_1,
/*297536*/                      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:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                                // Dst: (VPANDDZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*297550*/                    /*SwitchType*/ 25, MVT::v32i8,// ->297577
/*297552*/                      OPC_MoveParent,
/*297553*/                      OPC_MoveParent,
/*297554*/                      OPC_RecordChild2, // #4 = $src0
/*297555*/                      OPC_CheckType, MVT::v8f32,
/*297557*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*297559*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*297562*/                      OPC_EmitMergeInputChains1_1,
/*297563*/                      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:{ *:[v32i8] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v32i8] }:$src1)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                                // Dst: (VPANDDZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*297577*/                    /*SwitchType*/ 25, MVT::v8i64,// ->297604
/*297579*/                      OPC_MoveParent,
/*297580*/                      OPC_MoveParent,
/*297581*/                      OPC_RecordChild2, // #4 = $src0
/*297582*/                      OPC_CheckType, MVT::v8f64,
/*297584*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*297586*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*297589*/                      OPC_EmitMergeInputChains1_1,
/*297590*/                      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)
/*297604*/                    /*SwitchType*/ 25, MVT::v16i32,// ->297631
/*297606*/                      OPC_MoveParent,
/*297607*/                      OPC_MoveParent,
/*297608*/                      OPC_RecordChild2, // #4 = $src0
/*297609*/                      OPC_CheckType, MVT::v8f64,
/*297611*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*297613*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*297616*/                      OPC_EmitMergeInputChains1_1,
/*297617*/                      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:{ *:[v16i32] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16i32] }:$src1)), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                                // Dst: (VPANDQZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*297631*/                    /*SwitchType*/ 25, MVT::v32i16,// ->297658
/*297633*/                      OPC_MoveParent,
/*297634*/                      OPC_MoveParent,
/*297635*/                      OPC_RecordChild2, // #4 = $src0
/*297636*/                      OPC_CheckType, MVT::v8f64,
/*297638*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*297640*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*297643*/                      OPC_EmitMergeInputChains1_1,
/*297644*/                      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:{ *:[v32i16] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1)), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                                // Dst: (VPANDQZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*297658*/                    /*SwitchType*/ 25, MVT::v64i8,// ->297685
/*297660*/                      OPC_MoveParent,
/*297661*/                      OPC_MoveParent,
/*297662*/                      OPC_RecordChild2, // #4 = $src0
/*297663*/                      OPC_CheckType, MVT::v8f64,
/*297665*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*297667*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*297670*/                      OPC_EmitMergeInputChains1_1,
/*297671*/                      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:{ *:[v64i8] } (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v64i8] }:$src1)), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                                // Dst: (VPANDQZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*297685*/                    0, // EndSwitchType
/*297686*/                  /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->297759
/*297689*/                    OPC_RecordMemRef,
/*297690*/                    OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*297691*/                    OPC_CheckFoldableChainNode,
/*297692*/                    OPC_RecordChild1, // #2 = $src2
/*297693*/                    OPC_Scope, 31, /*->297726*/ // 2 children in Scope
/*297695*/                      OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*297697*/                      OPC_MoveParent,
/*297698*/                      OPC_RecordChild1, // #3 = $src1
/*297699*/                      OPC_CheckType, MVT::v8i32,
/*297701*/                      OPC_MoveParent,
/*297702*/                      OPC_MoveParent,
/*297703*/                      OPC_RecordChild2, // #4 = $src0
/*297704*/                      OPC_CheckType, MVT::v8f32,
/*297706*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*297708*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*297711*/                      OPC_EmitMergeInputChains1_1,
/*297712*/                      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:{ *:[v8i32] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8i32] }:$src1)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                                // Dst: (VPANDDZ256rmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*297726*/                    /*Scope*/ 31, /*->297758*/
/*297727*/                      OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*297729*/                      OPC_MoveParent,
/*297730*/                      OPC_RecordChild1, // #3 = $src1
/*297731*/                      OPC_CheckType, MVT::v8i64,
/*297733*/                      OPC_MoveParent,
/*297734*/                      OPC_MoveParent,
/*297735*/                      OPC_RecordChild2, // #4 = $src0
/*297736*/                      OPC_CheckType, MVT::v8f64,
/*297738*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*297740*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*297743*/                      OPC_EmitMergeInputChains1_1,
/*297744*/                      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] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8i64] }:$src1)), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                                // Dst: (VPANDQZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*297758*/                    0, /*End of Scope*/
/*297759*/                  0, // EndSwitchOpcode
/*297760*/                0, /*End of Scope*/
/*297761*/              /*SwitchOpcode*/ 108|128,4/*620*/, TARGET_VAL(ISD::OR),// ->298385
/*297765*/                OPC_Scope, 50|128,2/*306*/, /*->298074*/ // 2 children in Scope
/*297768*/                  OPC_RecordChild0, // #1 = $src1
/*297769*/                  OPC_MoveChild1,
/*297770*/                  OPC_SwitchOpcode /*2 cases */, 99|128,1/*227*/, TARGET_VAL(ISD::LOAD),// ->298002
/*297775*/                    OPC_RecordMemRef,
/*297776*/                    OPC_RecordNode, // #2 = 'ld' chained node
/*297777*/                    OPC_CheckFoldableChainNode,
/*297778*/                    OPC_RecordChild1, // #3 = $src2
/*297779*/                    OPC_CheckPredicate, 4, // Predicate_unindexedload
/*297781*/                    OPC_CheckPredicate, 9, // Predicate_load
/*297783*/                    OPC_MoveParent,
/*297784*/                    OPC_SwitchType /*8 cases */, 25, MVT::v4i64,// ->297812
/*297787*/                      OPC_MoveParent,
/*297788*/                      OPC_MoveParent,
/*297789*/                      OPC_RecordChild2, // #4 = $src0
/*297790*/                      OPC_CheckType, MVT::v8f32,
/*297792*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*297794*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*297797*/                      OPC_EmitMergeInputChains1_2,
/*297798*/                      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)
/*297812*/                    /*SwitchType*/ 25, MVT::v8i32,// ->297839
/*297814*/                      OPC_MoveParent,
/*297815*/                      OPC_MoveParent,
/*297816*/                      OPC_RecordChild2, // #4 = $src0
/*297817*/                      OPC_CheckType, MVT::v8f32,
/*297819*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*297821*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*297824*/                      OPC_EmitMergeInputChains1_2,
/*297825*/                      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:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                                // Dst: (VPORDZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*297839*/                    /*SwitchType*/ 25, MVT::v16i16,// ->297866
/*297841*/                      OPC_MoveParent,
/*297842*/                      OPC_MoveParent,
/*297843*/                      OPC_RecordChild2, // #4 = $src0
/*297844*/                      OPC_CheckType, MVT::v8f32,
/*297846*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*297848*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*297851*/                      OPC_EmitMergeInputChains1_2,
/*297852*/                      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:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                                // Dst: (VPORDZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*297866*/                    /*SwitchType*/ 25, MVT::v32i8,// ->297893
/*297868*/                      OPC_MoveParent,
/*297869*/                      OPC_MoveParent,
/*297870*/                      OPC_RecordChild2, // #4 = $src0
/*297871*/                      OPC_CheckType, MVT::v8f32,
/*297873*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*297875*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*297878*/                      OPC_EmitMergeInputChains1_2,
/*297879*/                      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:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                                // Dst: (VPORDZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*297893*/                    /*SwitchType*/ 25, MVT::v8i64,// ->297920
/*297895*/                      OPC_MoveParent,
/*297896*/                      OPC_MoveParent,
/*297897*/                      OPC_RecordChild2, // #4 = $src0
/*297898*/                      OPC_CheckType, MVT::v8f64,
/*297900*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*297902*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*297905*/                      OPC_EmitMergeInputChains1_2,
/*297906*/                      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)
/*297920*/                    /*SwitchType*/ 25, MVT::v16i32,// ->297947
/*297922*/                      OPC_MoveParent,
/*297923*/                      OPC_MoveParent,
/*297924*/                      OPC_RecordChild2, // #4 = $src0
/*297925*/                      OPC_CheckType, MVT::v8f64,
/*297927*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*297929*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*297932*/                      OPC_EmitMergeInputChains1_2,
/*297933*/                      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:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                                // Dst: (VPORQZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*297947*/                    /*SwitchType*/ 25, MVT::v32i16,// ->297974
/*297949*/                      OPC_MoveParent,
/*297950*/                      OPC_MoveParent,
/*297951*/                      OPC_RecordChild2, // #4 = $src0
/*297952*/                      OPC_CheckType, MVT::v8f64,
/*297954*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*297956*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*297959*/                      OPC_EmitMergeInputChains1_2,
/*297960*/                      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:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                                // Dst: (VPORQZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*297974*/                    /*SwitchType*/ 25, MVT::v64i8,// ->298001
/*297976*/                      OPC_MoveParent,
/*297977*/                      OPC_MoveParent,
/*297978*/                      OPC_RecordChild2, // #4 = $src0
/*297979*/                      OPC_CheckType, MVT::v8f64,
/*297981*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*297983*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*297986*/                      OPC_EmitMergeInputChains1_2,
/*297987*/                      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:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                                // Dst: (VPORQZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*298001*/                    0, // EndSwitchType
/*298002*/                  /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->298073
/*298005*/                    OPC_RecordMemRef,
/*298006*/                    OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*298007*/                    OPC_CheckFoldableChainNode,
/*298008*/                    OPC_RecordChild1, // #3 = $src2
/*298009*/                    OPC_Scope, 30, /*->298041*/ // 2 children in Scope
/*298011*/                      OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*298013*/                      OPC_MoveParent,
/*298014*/                      OPC_CheckType, MVT::v8i32,
/*298016*/                      OPC_MoveParent,
/*298017*/                      OPC_MoveParent,
/*298018*/                      OPC_RecordChild2, // #4 = $src0
/*298019*/                      OPC_CheckType, MVT::v8f32,
/*298021*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*298023*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*298026*/                      OPC_EmitMergeInputChains1_2,
/*298027*/                      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:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                                // Dst: (VPORDZ256rmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*298041*/                    /*Scope*/ 30, /*->298072*/
/*298042*/                      OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*298044*/                      OPC_MoveParent,
/*298045*/                      OPC_CheckType, MVT::v8i64,
/*298047*/                      OPC_MoveParent,
/*298048*/                      OPC_MoveParent,
/*298049*/                      OPC_RecordChild2, // #4 = $src0
/*298050*/                      OPC_CheckType, MVT::v8f64,
/*298052*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*298054*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*298057*/                      OPC_EmitMergeInputChains1_2,
/*298058*/                      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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>)), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                                // Dst: (VPORQZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*298072*/                    0, /*End of Scope*/
/*298073*/                  0, // EndSwitchOpcode
/*298074*/                /*Scope*/ 52|128,2/*308*/, /*->298384*/
/*298076*/                  OPC_MoveChild0,
/*298077*/                  OPC_SwitchOpcode /*2 cases */, 100|128,1/*228*/, TARGET_VAL(ISD::LOAD),// ->298310
/*298082*/                    OPC_RecordMemRef,
/*298083*/                    OPC_RecordNode, // #1 = 'ld' chained node
/*298084*/                    OPC_CheckFoldableChainNode,
/*298085*/                    OPC_RecordChild1, // #2 = $src2
/*298086*/                    OPC_CheckPredicate, 4, // Predicate_unindexedload
/*298088*/                    OPC_CheckPredicate, 9, // Predicate_load
/*298090*/                    OPC_MoveParent,
/*298091*/                    OPC_RecordChild1, // #3 = $src1
/*298092*/                    OPC_SwitchType /*8 cases */, 25, MVT::v4i64,// ->298120
/*298095*/                      OPC_MoveParent,
/*298096*/                      OPC_MoveParent,
/*298097*/                      OPC_RecordChild2, // #4 = $src0
/*298098*/                      OPC_CheckType, MVT::v8f32,
/*298100*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*298102*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*298105*/                      OPC_EmitMergeInputChains1_1,
/*298106*/                      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)
/*298120*/                    /*SwitchType*/ 25, MVT::v8i32,// ->298147
/*298122*/                      OPC_MoveParent,
/*298123*/                      OPC_MoveParent,
/*298124*/                      OPC_RecordChild2, // #4 = $src0
/*298125*/                      OPC_CheckType, MVT::v8f32,
/*298127*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*298129*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*298132*/                      OPC_EmitMergeInputChains1_1,
/*298133*/                      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:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8i32] }:$src1)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                                // Dst: (VPORDZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*298147*/                    /*SwitchType*/ 25, MVT::v16i16,// ->298174
/*298149*/                      OPC_MoveParent,
/*298150*/                      OPC_MoveParent,
/*298151*/                      OPC_RecordChild2, // #4 = $src0
/*298152*/                      OPC_CheckType, MVT::v8f32,
/*298154*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*298156*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*298159*/                      OPC_EmitMergeInputChains1_1,
/*298160*/                      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:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                                // Dst: (VPORDZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*298174*/                    /*SwitchType*/ 25, MVT::v32i8,// ->298201
/*298176*/                      OPC_MoveParent,
/*298177*/                      OPC_MoveParent,
/*298178*/                      OPC_RecordChild2, // #4 = $src0
/*298179*/                      OPC_CheckType, MVT::v8f32,
/*298181*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*298183*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*298186*/                      OPC_EmitMergeInputChains1_1,
/*298187*/                      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:{ *:[v32i8] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v32i8] }:$src1)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                                // Dst: (VPORDZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*298201*/                    /*SwitchType*/ 25, MVT::v8i64,// ->298228
/*298203*/                      OPC_MoveParent,
/*298204*/                      OPC_MoveParent,
/*298205*/                      OPC_RecordChild2, // #4 = $src0
/*298206*/                      OPC_CheckType, MVT::v8f64,
/*298208*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*298210*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*298213*/                      OPC_EmitMergeInputChains1_1,
/*298214*/                      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)
/*298228*/                    /*SwitchType*/ 25, MVT::v16i32,// ->298255
/*298230*/                      OPC_MoveParent,
/*298231*/                      OPC_MoveParent,
/*298232*/                      OPC_RecordChild2, // #4 = $src0
/*298233*/                      OPC_CheckType, MVT::v8f64,
/*298235*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*298237*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*298240*/                      OPC_EmitMergeInputChains1_1,
/*298241*/                      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:{ *:[v16i32] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16i32] }:$src1)), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                                // Dst: (VPORQZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*298255*/                    /*SwitchType*/ 25, MVT::v32i16,// ->298282
/*298257*/                      OPC_MoveParent,
/*298258*/                      OPC_MoveParent,
/*298259*/                      OPC_RecordChild2, // #4 = $src0
/*298260*/                      OPC_CheckType, MVT::v8f64,
/*298262*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*298264*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*298267*/                      OPC_EmitMergeInputChains1_1,
/*298268*/                      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:{ *:[v32i16] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1)), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                                // Dst: (VPORQZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*298282*/                    /*SwitchType*/ 25, MVT::v64i8,// ->298309
/*298284*/                      OPC_MoveParent,
/*298285*/                      OPC_MoveParent,
/*298286*/                      OPC_RecordChild2, // #4 = $src0
/*298287*/                      OPC_CheckType, MVT::v8f64,
/*298289*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*298291*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*298294*/                      OPC_EmitMergeInputChains1_1,
/*298295*/                      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:{ *:[v64i8] } (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v64i8] }:$src1)), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                                // Dst: (VPORQZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*298309*/                    0, // EndSwitchType
/*298310*/                  /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->298383
/*298313*/                    OPC_RecordMemRef,
/*298314*/                    OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*298315*/                    OPC_CheckFoldableChainNode,
/*298316*/                    OPC_RecordChild1, // #2 = $src2
/*298317*/                    OPC_Scope, 31, /*->298350*/ // 2 children in Scope
/*298319*/                      OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*298321*/                      OPC_MoveParent,
/*298322*/                      OPC_RecordChild1, // #3 = $src1
/*298323*/                      OPC_CheckType, MVT::v8i32,
/*298325*/                      OPC_MoveParent,
/*298326*/                      OPC_MoveParent,
/*298327*/                      OPC_RecordChild2, // #4 = $src0
/*298328*/                      OPC_CheckType, MVT::v8f32,
/*298330*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*298332*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*298335*/                      OPC_EmitMergeInputChains1_1,
/*298336*/                      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:{ *:[v8i32] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8i32] }:$src1)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                                // Dst: (VPORDZ256rmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*298350*/                    /*Scope*/ 31, /*->298382*/
/*298351*/                      OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*298353*/                      OPC_MoveParent,
/*298354*/                      OPC_RecordChild1, // #3 = $src1
/*298355*/                      OPC_CheckType, MVT::v8i64,
/*298357*/                      OPC_MoveParent,
/*298358*/                      OPC_MoveParent,
/*298359*/                      OPC_RecordChild2, // #4 = $src0
/*298360*/                      OPC_CheckType, MVT::v8f64,
/*298362*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*298364*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*298367*/                      OPC_EmitMergeInputChains1_1,
/*298368*/                      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] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8i64] }:$src1)), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                                // Dst: (VPORQZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*298382*/                    0, /*End of Scope*/
/*298383*/                  0, // EndSwitchOpcode
/*298384*/                0, /*End of Scope*/
/*298385*/              /*SwitchOpcode*/ 108|128,4/*620*/, TARGET_VAL(ISD::XOR),// ->299009
/*298389*/                OPC_Scope, 50|128,2/*306*/, /*->298698*/ // 2 children in Scope
/*298392*/                  OPC_RecordChild0, // #1 = $src1
/*298393*/                  OPC_MoveChild1,
/*298394*/                  OPC_SwitchOpcode /*2 cases */, 99|128,1/*227*/, TARGET_VAL(ISD::LOAD),// ->298626
/*298399*/                    OPC_RecordMemRef,
/*298400*/                    OPC_RecordNode, // #2 = 'ld' chained node
/*298401*/                    OPC_CheckFoldableChainNode,
/*298402*/                    OPC_RecordChild1, // #3 = $src2
/*298403*/                    OPC_CheckPredicate, 4, // Predicate_unindexedload
/*298405*/                    OPC_CheckPredicate, 9, // Predicate_load
/*298407*/                    OPC_MoveParent,
/*298408*/                    OPC_SwitchType /*8 cases */, 25, MVT::v4i64,// ->298436
/*298411*/                      OPC_MoveParent,
/*298412*/                      OPC_MoveParent,
/*298413*/                      OPC_RecordChild2, // #4 = $src0
/*298414*/                      OPC_CheckType, MVT::v8f32,
/*298416*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*298418*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*298421*/                      OPC_EmitMergeInputChains1_2,
/*298422*/                      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)
/*298436*/                    /*SwitchType*/ 25, MVT::v8i32,// ->298463
/*298438*/                      OPC_MoveParent,
/*298439*/                      OPC_MoveParent,
/*298440*/                      OPC_RecordChild2, // #4 = $src0
/*298441*/                      OPC_CheckType, MVT::v8f32,
/*298443*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*298445*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*298448*/                      OPC_EmitMergeInputChains1_2,
/*298449*/                      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:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                                // Dst: (VPXORDZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*298463*/                    /*SwitchType*/ 25, MVT::v16i16,// ->298490
/*298465*/                      OPC_MoveParent,
/*298466*/                      OPC_MoveParent,
/*298467*/                      OPC_RecordChild2, // #4 = $src0
/*298468*/                      OPC_CheckType, MVT::v8f32,
/*298470*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*298472*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*298475*/                      OPC_EmitMergeInputChains1_2,
/*298476*/                      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:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                                // Dst: (VPXORDZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*298490*/                    /*SwitchType*/ 25, MVT::v32i8,// ->298517
/*298492*/                      OPC_MoveParent,
/*298493*/                      OPC_MoveParent,
/*298494*/                      OPC_RecordChild2, // #4 = $src0
/*298495*/                      OPC_CheckType, MVT::v8f32,
/*298497*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*298499*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*298502*/                      OPC_EmitMergeInputChains1_2,
/*298503*/                      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:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                                // Dst: (VPXORDZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*298517*/                    /*SwitchType*/ 25, MVT::v8i64,// ->298544
/*298519*/                      OPC_MoveParent,
/*298520*/                      OPC_MoveParent,
/*298521*/                      OPC_RecordChild2, // #4 = $src0
/*298522*/                      OPC_CheckType, MVT::v8f64,
/*298524*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*298526*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*298529*/                      OPC_EmitMergeInputChains1_2,
/*298530*/                      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)
/*298544*/                    /*SwitchType*/ 25, MVT::v16i32,// ->298571
/*298546*/                      OPC_MoveParent,
/*298547*/                      OPC_MoveParent,
/*298548*/                      OPC_RecordChild2, // #4 = $src0
/*298549*/                      OPC_CheckType, MVT::v8f64,
/*298551*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*298553*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*298556*/                      OPC_EmitMergeInputChains1_2,
/*298557*/                      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:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                                // Dst: (VPXORQZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*298571*/                    /*SwitchType*/ 25, MVT::v32i16,// ->298598
/*298573*/                      OPC_MoveParent,
/*298574*/                      OPC_MoveParent,
/*298575*/                      OPC_RecordChild2, // #4 = $src0
/*298576*/                      OPC_CheckType, MVT::v8f64,
/*298578*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*298580*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*298583*/                      OPC_EmitMergeInputChains1_2,
/*298584*/                      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:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                                // Dst: (VPXORQZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*298598*/                    /*SwitchType*/ 25, MVT::v64i8,// ->298625
/*298600*/                      OPC_MoveParent,
/*298601*/                      OPC_MoveParent,
/*298602*/                      OPC_RecordChild2, // #4 = $src0
/*298603*/                      OPC_CheckType, MVT::v8f64,
/*298605*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*298607*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*298610*/                      OPC_EmitMergeInputChains1_2,
/*298611*/                      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:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                                // Dst: (VPXORQZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*298625*/                    0, // EndSwitchType
/*298626*/                  /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->298697
/*298629*/                    OPC_RecordMemRef,
/*298630*/                    OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*298631*/                    OPC_CheckFoldableChainNode,
/*298632*/                    OPC_RecordChild1, // #3 = $src2
/*298633*/                    OPC_Scope, 30, /*->298665*/ // 2 children in Scope
/*298635*/                      OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*298637*/                      OPC_MoveParent,
/*298638*/                      OPC_CheckType, MVT::v8i32,
/*298640*/                      OPC_MoveParent,
/*298641*/                      OPC_MoveParent,
/*298642*/                      OPC_RecordChild2, // #4 = $src0
/*298643*/                      OPC_CheckType, MVT::v8f32,
/*298645*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*298647*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*298650*/                      OPC_EmitMergeInputChains1_2,
/*298651*/                      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:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                                // Dst: (VPXORDZ256rmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*298665*/                    /*Scope*/ 30, /*->298696*/
/*298666*/                      OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*298668*/                      OPC_MoveParent,
/*298669*/                      OPC_CheckType, MVT::v8i64,
/*298671*/                      OPC_MoveParent,
/*298672*/                      OPC_MoveParent,
/*298673*/                      OPC_RecordChild2, // #4 = $src0
/*298674*/                      OPC_CheckType, MVT::v8f64,
/*298676*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*298678*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*298681*/                      OPC_EmitMergeInputChains1_2,
/*298682*/                      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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>)), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                                // Dst: (VPXORQZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*298696*/                    0, /*End of Scope*/
/*298697*/                  0, // EndSwitchOpcode
/*298698*/                /*Scope*/ 52|128,2/*308*/, /*->299008*/
/*298700*/                  OPC_MoveChild0,
/*298701*/                  OPC_SwitchOpcode /*2 cases */, 100|128,1/*228*/, TARGET_VAL(ISD::LOAD),// ->298934
/*298706*/                    OPC_RecordMemRef,
/*298707*/                    OPC_RecordNode, // #1 = 'ld' chained node
/*298708*/                    OPC_CheckFoldableChainNode,
/*298709*/                    OPC_RecordChild1, // #2 = $src2
/*298710*/                    OPC_CheckPredicate, 4, // Predicate_unindexedload
/*298712*/                    OPC_CheckPredicate, 9, // Predicate_load
/*298714*/                    OPC_MoveParent,
/*298715*/                    OPC_RecordChild1, // #3 = $src1
/*298716*/                    OPC_SwitchType /*8 cases */, 25, MVT::v4i64,// ->298744
/*298719*/                      OPC_MoveParent,
/*298720*/                      OPC_MoveParent,
/*298721*/                      OPC_RecordChild2, // #4 = $src0
/*298722*/                      OPC_CheckType, MVT::v8f32,
/*298724*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*298726*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*298729*/                      OPC_EmitMergeInputChains1_1,
/*298730*/                      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)
/*298744*/                    /*SwitchType*/ 25, MVT::v8i32,// ->298771
/*298746*/                      OPC_MoveParent,
/*298747*/                      OPC_MoveParent,
/*298748*/                      OPC_RecordChild2, // #4 = $src0
/*298749*/                      OPC_CheckType, MVT::v8f32,
/*298751*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*298753*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*298756*/                      OPC_EmitMergeInputChains1_1,
/*298757*/                      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:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8i32] }:$src1)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                                // Dst: (VPXORDZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*298771*/                    /*SwitchType*/ 25, MVT::v16i16,// ->298798
/*298773*/                      OPC_MoveParent,
/*298774*/                      OPC_MoveParent,
/*298775*/                      OPC_RecordChild2, // #4 = $src0
/*298776*/                      OPC_CheckType, MVT::v8f32,
/*298778*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*298780*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*298783*/                      OPC_EmitMergeInputChains1_1,
/*298784*/                      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:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                                // Dst: (VPXORDZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*298798*/                    /*SwitchType*/ 25, MVT::v32i8,// ->298825
/*298800*/                      OPC_MoveParent,
/*298801*/                      OPC_MoveParent,
/*298802*/                      OPC_RecordChild2, // #4 = $src0
/*298803*/                      OPC_CheckType, MVT::v8f32,
/*298805*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*298807*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*298810*/                      OPC_EmitMergeInputChains1_1,
/*298811*/                      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:{ *:[v32i8] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v32i8] }:$src1)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                                // Dst: (VPXORDZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*298825*/                    /*SwitchType*/ 25, MVT::v8i64,// ->298852
/*298827*/                      OPC_MoveParent,
/*298828*/                      OPC_MoveParent,
/*298829*/                      OPC_RecordChild2, // #4 = $src0
/*298830*/                      OPC_CheckType, MVT::v8f64,
/*298832*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*298834*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*298837*/                      OPC_EmitMergeInputChains1_1,
/*298838*/                      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)
/*298852*/                    /*SwitchType*/ 25, MVT::v16i32,// ->298879
/*298854*/                      OPC_MoveParent,
/*298855*/                      OPC_MoveParent,
/*298856*/                      OPC_RecordChild2, // #4 = $src0
/*298857*/                      OPC_CheckType, MVT::v8f64,
/*298859*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*298861*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*298864*/                      OPC_EmitMergeInputChains1_1,
/*298865*/                      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:{ *:[v16i32] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16i32] }:$src1)), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                                // Dst: (VPXORQZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*298879*/                    /*SwitchType*/ 25, MVT::v32i16,// ->298906
/*298881*/                      OPC_MoveParent,
/*298882*/                      OPC_MoveParent,
/*298883*/                      OPC_RecordChild2, // #4 = $src0
/*298884*/                      OPC_CheckType, MVT::v8f64,
/*298886*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*298888*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*298891*/                      OPC_EmitMergeInputChains1_1,
/*298892*/                      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:{ *:[v32i16] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1)), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                                // Dst: (VPXORQZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*298906*/                    /*SwitchType*/ 25, MVT::v64i8,// ->298933
/*298908*/                      OPC_MoveParent,
/*298909*/                      OPC_MoveParent,
/*298910*/                      OPC_RecordChild2, // #4 = $src0
/*298911*/                      OPC_CheckType, MVT::v8f64,
/*298913*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*298915*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*298918*/                      OPC_EmitMergeInputChains1_1,
/*298919*/                      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:{ *:[v64i8] } (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v64i8] }:$src1)), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                                // Dst: (VPXORQZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*298933*/                    0, // EndSwitchType
/*298934*/                  /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->299007
/*298937*/                    OPC_RecordMemRef,
/*298938*/                    OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*298939*/                    OPC_CheckFoldableChainNode,
/*298940*/                    OPC_RecordChild1, // #2 = $src2
/*298941*/                    OPC_Scope, 31, /*->298974*/ // 2 children in Scope
/*298943*/                      OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*298945*/                      OPC_MoveParent,
/*298946*/                      OPC_RecordChild1, // #3 = $src1
/*298947*/                      OPC_CheckType, MVT::v8i32,
/*298949*/                      OPC_MoveParent,
/*298950*/                      OPC_MoveParent,
/*298951*/                      OPC_RecordChild2, // #4 = $src0
/*298952*/                      OPC_CheckType, MVT::v8f32,
/*298954*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*298956*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*298959*/                      OPC_EmitMergeInputChains1_1,
/*298960*/                      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:{ *:[v8i32] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8i32] }:$src1)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                                // Dst: (VPXORDZ256rmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*298974*/                    /*Scope*/ 31, /*->299006*/
/*298975*/                      OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*298977*/                      OPC_MoveParent,
/*298978*/                      OPC_RecordChild1, // #3 = $src1
/*298979*/                      OPC_CheckType, MVT::v8i64,
/*298981*/                      OPC_MoveParent,
/*298982*/                      OPC_MoveParent,
/*298983*/                      OPC_RecordChild2, // #4 = $src0
/*298984*/                      OPC_CheckType, MVT::v8f64,
/*298986*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*298988*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*298991*/                      OPC_EmitMergeInputChains1_1,
/*298992*/                      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] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8i64] }:$src1)), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                                // Dst: (VPXORQZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*299006*/                    0, /*End of Scope*/
/*299007*/                  0, // EndSwitchOpcode
/*299008*/                0, /*End of Scope*/
/*299009*/              /*SwitchOpcode*/ 50|128,2/*306*/, TARGET_VAL(X86ISD::ANDNP),// ->299319
/*299013*/                OPC_RecordChild0, // #1 = $src1
/*299014*/                OPC_MoveChild1,
/*299015*/                OPC_SwitchOpcode /*2 cases */, 99|128,1/*227*/, TARGET_VAL(ISD::LOAD),// ->299247
/*299020*/                  OPC_RecordMemRef,
/*299021*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*299022*/                  OPC_CheckFoldableChainNode,
/*299023*/                  OPC_RecordChild1, // #3 = $src2
/*299024*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*299026*/                  OPC_CheckPredicate, 9, // Predicate_load
/*299028*/                  OPC_MoveParent,
/*299029*/                  OPC_SwitchType /*8 cases */, 25, MVT::v4i64,// ->299057
/*299032*/                    OPC_MoveParent,
/*299033*/                    OPC_MoveParent,
/*299034*/                    OPC_RecordChild2, // #4 = $src0
/*299035*/                    OPC_CheckType, MVT::v8f32,
/*299037*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*299039*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*299042*/                    OPC_EmitMergeInputChains1_2,
/*299043*/                    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)
/*299057*/                  /*SwitchType*/ 25, MVT::v8i32,// ->299084
/*299059*/                    OPC_MoveParent,
/*299060*/                    OPC_MoveParent,
/*299061*/                    OPC_RecordChild2, // #4 = $src0
/*299062*/                    OPC_CheckType, MVT::v8f32,
/*299064*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*299066*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*299069*/                    OPC_EmitMergeInputChains1_2,
/*299070*/                    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:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                              // Dst: (VPANDNDZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*299084*/                  /*SwitchType*/ 25, MVT::v16i16,// ->299111
/*299086*/                    OPC_MoveParent,
/*299087*/                    OPC_MoveParent,
/*299088*/                    OPC_RecordChild2, // #4 = $src0
/*299089*/                    OPC_CheckType, MVT::v8f32,
/*299091*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*299093*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*299096*/                    OPC_EmitMergeInputChains1_2,
/*299097*/                    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:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                              // Dst: (VPANDNDZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*299111*/                  /*SwitchType*/ 25, MVT::v32i8,// ->299138
/*299113*/                    OPC_MoveParent,
/*299114*/                    OPC_MoveParent,
/*299115*/                    OPC_RecordChild2, // #4 = $src0
/*299116*/                    OPC_CheckType, MVT::v8f32,
/*299118*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*299120*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*299123*/                    OPC_EmitMergeInputChains1_2,
/*299124*/                    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:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                              // Dst: (VPANDNDZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*299138*/                  /*SwitchType*/ 25, MVT::v8i64,// ->299165
/*299140*/                    OPC_MoveParent,
/*299141*/                    OPC_MoveParent,
/*299142*/                    OPC_RecordChild2, // #4 = $src0
/*299143*/                    OPC_CheckType, MVT::v8f64,
/*299145*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*299147*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*299150*/                    OPC_EmitMergeInputChains1_2,
/*299151*/                    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)
/*299165*/                  /*SwitchType*/ 25, MVT::v16i32,// ->299192
/*299167*/                    OPC_MoveParent,
/*299168*/                    OPC_MoveParent,
/*299169*/                    OPC_RecordChild2, // #4 = $src0
/*299170*/                    OPC_CheckType, MVT::v8f64,
/*299172*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*299174*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*299177*/                    OPC_EmitMergeInputChains1_2,
/*299178*/                    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:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                              // Dst: (VPANDNQZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*299192*/                  /*SwitchType*/ 25, MVT::v32i16,// ->299219
/*299194*/                    OPC_MoveParent,
/*299195*/                    OPC_MoveParent,
/*299196*/                    OPC_RecordChild2, // #4 = $src0
/*299197*/                    OPC_CheckType, MVT::v8f64,
/*299199*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*299201*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*299204*/                    OPC_EmitMergeInputChains1_2,
/*299205*/                    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:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                              // Dst: (VPANDNQZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*299219*/                  /*SwitchType*/ 25, MVT::v64i8,// ->299246
/*299221*/                    OPC_MoveParent,
/*299222*/                    OPC_MoveParent,
/*299223*/                    OPC_RecordChild2, // #4 = $src0
/*299224*/                    OPC_CheckType, MVT::v8f64,
/*299226*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*299228*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*299231*/                    OPC_EmitMergeInputChains1_2,
/*299232*/                    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:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                              // Dst: (VPANDNQZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*299246*/                  0, // EndSwitchType
/*299247*/                /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->299318
/*299250*/                  OPC_RecordMemRef,
/*299251*/                  OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*299252*/                  OPC_CheckFoldableChainNode,
/*299253*/                  OPC_RecordChild1, // #3 = $src2
/*299254*/                  OPC_Scope, 30, /*->299286*/ // 2 children in Scope
/*299256*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*299258*/                    OPC_MoveParent,
/*299259*/                    OPC_CheckType, MVT::v8i32,
/*299261*/                    OPC_MoveParent,
/*299262*/                    OPC_MoveParent,
/*299263*/                    OPC_RecordChild2, // #4 = $src0
/*299264*/                    OPC_CheckType, MVT::v8f32,
/*299266*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*299268*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*299271*/                    OPC_EmitMergeInputChains1_2,
/*299272*/                    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:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                              // Dst: (VPANDNDZ256rmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*299286*/                  /*Scope*/ 30, /*->299317*/
/*299287*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*299289*/                    OPC_MoveParent,
/*299290*/                    OPC_CheckType, MVT::v8i64,
/*299292*/                    OPC_MoveParent,
/*299293*/                    OPC_MoveParent,
/*299294*/                    OPC_RecordChild2, // #4 = $src0
/*299295*/                    OPC_CheckType, MVT::v8f64,
/*299297*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*299299*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*299302*/                    OPC_EmitMergeInputChains1_2,
/*299303*/                    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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>)), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                              // Dst: (VPANDNQZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*299317*/                  0, /*End of Scope*/
/*299318*/                0, // EndSwitchOpcode
/*299319*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->299354
/*299322*/                OPC_RecordMemRef,
/*299323*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*299324*/                OPC_CheckFoldableChainNode,
/*299325*/                OPC_RecordChild1, // #2 = $src
/*299326*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*299328*/                OPC_CheckType, MVT::v4f64,
/*299330*/                OPC_MoveParent,
/*299331*/                OPC_MoveParent,
/*299332*/                OPC_RecordChild2, // #3 = $src0
/*299333*/                OPC_CheckType, MVT::v8f32,
/*299335*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*299337*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*299340*/                OPC_EmitMergeInputChains1_1,
/*299341*/                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] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                          // Dst: (VBROADCASTF32X2Z256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*299354*/              0, // EndSwitchOpcode
/*299355*/            /*Scope*/ 19|128,1/*147*/, /*->299504*/
/*299357*/              OPC_RecordChild0, // #1 = $ext
/*299358*/              OPC_MoveChild0,
/*299359*/              OPC_SwitchOpcode /*2 cases */, 33, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),// ->299396
/*299363*/                OPC_RecordChild0, // #2 = $src
/*299364*/                OPC_MoveChild1,
/*299365*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*299368*/                OPC_CheckType, MVT::iPTR,
/*299370*/                OPC_MoveParent,
/*299371*/                OPC_CheckPredicate, 18, // Predicate_vextract256_extract
/*299373*/                OPC_CheckType, MVT::v4f64,
/*299375*/                OPC_MoveParent,
/*299376*/                OPC_MoveParent,
/*299377*/                OPC_MoveChild2,
/*299378*/                OPC_CheckImmAllZerosV,
/*299379*/                OPC_MoveParent,
/*299380*/                OPC_CheckType, MVT::v8f32,
/*299382*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*299384*/                OPC_EmitNodeXForm, 1, 1, // EXTRACT_get_vextract256_imm
/*299387*/                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] }))<<P:Predicate_vextract256_extract>><<X:EXTRACT_get_vextract256_imm>>:$ext), immAllZerosV:{ *:[v8f32] }) - Complexity = 17
                          // Dst: (VEXTRACTF32x8Zrrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src, (EXTRACT_get_vextract256_imm:{ *:[i8] } VR256X:{ *:[v4f64] }:$ext))
/*299396*/              /*SwitchOpcode*/ 104, TARGET_VAL(ISD::INSERT_SUBVECTOR),// ->299503
/*299399*/                OPC_RecordChild0, // #2 = $src1
/*299400*/                OPC_RecordChild1, // #3 = $src2
/*299401*/                OPC_Scope, 31, /*->299434*/ // 3 children in Scope
/*299403*/                  OPC_MoveChild2,
/*299404*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*299407*/                  OPC_CheckType, MVT::iPTR,
/*299409*/                  OPC_MoveParent,
/*299410*/                  OPC_CheckType, MVT::v4f64,
/*299412*/                  OPC_MoveParent,
/*299413*/                  OPC_MoveParent,
/*299414*/                  OPC_MoveChild2,
/*299415*/                  OPC_CheckImmAllZerosV,
/*299416*/                  OPC_MoveParent,
/*299417*/                  OPC_CheckType, MVT::v8f32,
/*299419*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*299421*/                  OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*299424*/                  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), immAllZerosV:{ *:[v8f32] }) - Complexity = 16
                            // Dst: (VINSERTF32x4Z256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256X:{ *:[v4f64] }:$ins))
/*299434*/                /*Scope*/ 33, /*->299468*/
/*299435*/                  OPC_CheckChild1Type, MVT::v4f32,
/*299437*/                  OPC_MoveChild2,
/*299438*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*299441*/                  OPC_CheckType, MVT::iPTR,
/*299443*/                  OPC_MoveParent,
/*299444*/                  OPC_CheckType, MVT::v16f32,
/*299446*/                  OPC_MoveParent,
/*299447*/                  OPC_MoveParent,
/*299448*/                  OPC_MoveChild2,
/*299449*/                  OPC_CheckImmAllZerosV,
/*299450*/                  OPC_MoveParent,
/*299451*/                  OPC_CheckType, MVT::v8f64,
/*299453*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*299455*/                  OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*299458*/                  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), immAllZerosV:{ *:[v8f64] }) - Complexity = 16
                            // Dst: (VINSERTF64x2Zrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR512:{ *:[v16f32] }:$ins))
/*299468*/                /*Scope*/ 33, /*->299502*/
/*299469*/                  OPC_CheckChild1Type, MVT::v8f32,
/*299471*/                  OPC_MoveChild2,
/*299472*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*299475*/                  OPC_CheckType, MVT::iPTR,
/*299477*/                  OPC_MoveParent,
/*299478*/                  OPC_CheckType, MVT::v16f32,
/*299480*/                  OPC_MoveParent,
/*299481*/                  OPC_MoveParent,
/*299482*/                  OPC_MoveChild2,
/*299483*/                  OPC_CheckImmAllZerosV,
/*299484*/                  OPC_MoveParent,
/*299485*/                  OPC_CheckType, MVT::v8f64,
/*299487*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*299489*/                  OPC_EmitNodeXForm, 16, 1, // INSERT_get_vinsert256_imm
/*299492*/                  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), immAllZerosV:{ *:[v8f64] }) - Complexity = 16
                            // Dst: (VINSERTF64x4Zrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } VR512:{ *:[v16f32] }:$ins))
/*299502*/                0, /*End of Scope*/
/*299503*/              0, // EndSwitchOpcode
/*299504*/            /*Scope*/ 33, /*->299538*/
/*299505*/              OPC_MoveChild0,
/*299506*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::SHUF128),
/*299509*/              OPC_RecordChild0, // #1 = $src1
/*299510*/              OPC_RecordChild1, // #2 = $src2
/*299511*/              OPC_RecordChild2, // #3 = $src3
/*299512*/              OPC_MoveChild2,
/*299513*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*299516*/              OPC_MoveParent,
/*299517*/              OPC_CheckType, MVT::v4f64,
/*299519*/              OPC_MoveParent,
/*299520*/              OPC_MoveParent,
/*299521*/              OPC_MoveChild2,
/*299522*/              OPC_CheckImmAllZerosV,
/*299523*/              OPC_MoveParent,
/*299524*/              OPC_CheckType, MVT::v8f32,
/*299526*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*299528*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF32X4Z256rrikz), 0,
                            MVT::v8f32, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (X86Shuf128:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (timm:{ *:[i8] }):$src3)), immAllZerosV:{ *:[v8f32] }) - Complexity = 16
                        // Dst: (VSHUFF32X4Z256rrikz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (timm:{ *:[i8] }):$src3)
/*299538*/            0, /*End of Scope*/
/*299539*/          /*SwitchOpcode*/ 19|128,2/*275*/, TARGET_VAL(X86ISD::VPERMV3),// ->299818
/*299543*/            OPC_RecordChild0, // #1 = $src2
/*299544*/            OPC_RecordChild1, // #2 = $src1
/*299545*/            OPC_MoveChild2,
/*299546*/            OPC_SwitchOpcode /*2 cases */, 123, TARGET_VAL(ISD::LOAD),// ->299673
/*299550*/              OPC_RecordMemRef,
/*299551*/              OPC_RecordNode, // #3 = 'ld' chained node
/*299552*/              OPC_CheckFoldableChainNode,
/*299553*/              OPC_RecordChild1, // #4 = $src3
/*299554*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*299556*/              OPC_CheckPredicate, 9, // Predicate_load
/*299558*/              OPC_MoveParent,
/*299559*/              OPC_MoveParent,
/*299560*/              OPC_Scope, 57, /*->299619*/ // 2 children in Scope
/*299562*/                OPC_MoveChild2,
/*299563*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*299566*/                OPC_CheckChild0Same, 2,
/*299568*/                OPC_MoveParent,
/*299569*/                OPC_SwitchType /*2 cases */, 22, MVT::v8f32,// ->299594
/*299572*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*299574*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*299577*/                  OPC_EmitMergeInputChains, 1, 3, 
/*299580*/                  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>>), (bitconvert:{ *:[v8f32] } VR256X:{ *:[v8i32] }:$src1)) - Complexity = 31
                            // Dst: (VPERMI2PS256rmk:{ *:[v8f32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*299594*/                /*SwitchType*/ 22, MVT::v8f64,// ->299618
/*299596*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*299598*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*299601*/                  OPC_EmitMergeInputChains, 1, 3, 
/*299604*/                  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>>), (bitconvert:{ *:[v8f64] } VR512:{ *:[v8i64] }:$src1)) - Complexity = 31
                            // Dst: (VPERMI2PDrmk:{ *:[v8f64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*299618*/                0, // EndSwitchType
/*299619*/              /*Scope*/ 52, /*->299672*/
/*299620*/                OPC_CheckChild2Same, 1,
/*299622*/                OPC_SwitchType /*2 cases */, 22, MVT::v8f32,// ->299647
/*299625*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*299627*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*299630*/                  OPC_EmitMergeInputChains, 1, 3, 
/*299633*/                  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>>), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                            // Dst: (VPERMT2PS256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*299647*/                /*SwitchType*/ 22, MVT::v8f64,// ->299671
/*299649*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*299651*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*299654*/                  OPC_EmitMergeInputChains, 1, 3, 
/*299657*/                  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>>), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                            // Dst: (VPERMT2PDrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*299671*/                0, // EndSwitchType
/*299672*/              0, /*End of Scope*/
/*299673*/            /*SwitchOpcode*/ 12|128,1/*140*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->299817
/*299677*/              OPC_RecordMemRef,
/*299678*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*299679*/              OPC_CheckFoldableChainNode,
/*299680*/              OPC_RecordChild1, // #4 = $src3
/*299681*/              OPC_Scope, 35, /*->299718*/ // 4 children in Scope
/*299683*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*299685*/                OPC_MoveParent,
/*299686*/                OPC_MoveParent,
/*299687*/                OPC_MoveChild2,
/*299688*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*299691*/                OPC_CheckChild0Same, 2,
/*299693*/                OPC_MoveParent,
/*299694*/                OPC_CheckType, MVT::v8f32,
/*299696*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*299698*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*299701*/                OPC_EmitMergeInputChains, 1, 3, 
/*299704*/                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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), (bitconvert:{ *:[v8f32] } VR256X:{ *:[v8i32] }:$src1)) - Complexity = 31
                          // Dst: (VPERMI2PS256rmbk:{ *:[v8f32] } VR256X:{ *:[v8i32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*299718*/              /*Scope*/ 35, /*->299754*/
/*299719*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*299721*/                OPC_MoveParent,
/*299722*/                OPC_MoveParent,
/*299723*/                OPC_MoveChild2,
/*299724*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*299727*/                OPC_CheckChild0Same, 2,
/*299729*/                OPC_MoveParent,
/*299730*/                OPC_CheckType, MVT::v8f64,
/*299732*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*299734*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*299737*/                OPC_EmitMergeInputChains, 1, 3, 
/*299740*/                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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), (bitconvert:{ *:[v8f64] } VR512:{ *:[v8i64] }:$src1)) - Complexity = 31
                          // Dst: (VPERMI2PDrmbk:{ *:[v8f64] } VR512:{ *:[v8i64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*299754*/              /*Scope*/ 30, /*->299785*/
/*299755*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*299757*/                OPC_MoveParent,
/*299758*/                OPC_MoveParent,
/*299759*/                OPC_CheckChild2Same, 1,
/*299761*/                OPC_CheckType, MVT::v8f32,
/*299763*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*299765*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*299768*/                OPC_EmitMergeInputChains, 1, 3, 
/*299771*/                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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                          // Dst: (VPERMT2PS256rmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*299785*/              /*Scope*/ 30, /*->299816*/
/*299786*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*299788*/                OPC_MoveParent,
/*299789*/                OPC_MoveParent,
/*299790*/                OPC_CheckChild2Same, 1,
/*299792*/                OPC_CheckType, MVT::v8f64,
/*299794*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*299796*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*299799*/                OPC_EmitMergeInputChains, 1, 3, 
/*299802*/                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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                          // Dst: (VPERMT2PDrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*299816*/              0, /*End of Scope*/
/*299817*/            0, // EndSwitchOpcode
/*299818*/          /*SwitchOpcode*/ 85, TARGET_VAL(X86ISD::VPERMI),// ->299906
/*299821*/            OPC_MoveChild0,
/*299822*/            OPC_SwitchOpcode /*2 cases */, 39, TARGET_VAL(ISD::LOAD),// ->299865
/*299826*/              OPC_RecordMemRef,
/*299827*/              OPC_RecordNode, // #1 = 'ld' chained node
/*299828*/              OPC_CheckFoldableChainNode,
/*299829*/              OPC_RecordChild1, // #2 = $src1
/*299830*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*299832*/              OPC_CheckPredicate, 9, // Predicate_load
/*299834*/              OPC_MoveParent,
/*299835*/              OPC_RecordChild1, // #3 = $src2
/*299836*/              OPC_MoveChild1,
/*299837*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*299840*/              OPC_MoveParent,
/*299841*/              OPC_MoveParent,
/*299842*/              OPC_RecordChild2, // #4 = $src0
/*299843*/              OPC_CheckType, MVT::v8f64,
/*299845*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*299847*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*299850*/              OPC_EmitMergeInputChains1_1,
/*299851*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPDZmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermi:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                        // Dst: (VPERMPDZmik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*299865*/            /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->299905
/*299868*/              OPC_RecordMemRef,
/*299869*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*299870*/              OPC_CheckFoldableChainNode,
/*299871*/              OPC_RecordChild1, // #2 = $src1
/*299872*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*299874*/              OPC_MoveParent,
/*299875*/              OPC_RecordChild1, // #3 = $src2
/*299876*/              OPC_MoveChild1,
/*299877*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*299880*/              OPC_MoveParent,
/*299881*/              OPC_MoveParent,
/*299882*/              OPC_RecordChild2, // #4 = $src0
/*299883*/              OPC_CheckType, MVT::v8f64,
/*299885*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*299887*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*299890*/              OPC_EmitMergeInputChains1_1,
/*299891*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPDZmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermi:{ *:[v8f64] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src2), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                        // Dst: (VPERMPDZmbik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*299905*/            0, // EndSwitchOpcode
/*299906*/          /*SwitchOpcode*/ 18|128,1/*146*/, TARGET_VAL(X86ISD::VPERMILPI),// ->300056
/*299910*/            OPC_MoveChild0,
/*299911*/            OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->299978
/*299915*/              OPC_RecordMemRef,
/*299916*/              OPC_RecordNode, // #1 = 'ld' chained node
/*299917*/              OPC_CheckFoldableChainNode,
/*299918*/              OPC_RecordChild1, // #2 = $src1
/*299919*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*299921*/              OPC_CheckPredicate, 9, // Predicate_load
/*299923*/              OPC_MoveParent,
/*299924*/              OPC_RecordChild1, // #3 = $src2
/*299925*/              OPC_MoveChild1,
/*299926*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*299929*/              OPC_MoveParent,
/*299930*/              OPC_MoveParent,
/*299931*/              OPC_RecordChild2, // #4 = $src0
/*299932*/              OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->299955
/*299935*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*299937*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*299940*/                OPC_EmitMergeInputChains1_1,
/*299941*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZ256mik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermilpi:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                          // Dst: (VPERMILPSZ256mik:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*299955*/              /*SwitchType*/ 20, MVT::v8f64,// ->299977
/*299957*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*299959*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*299962*/                OPC_EmitMergeInputChains1_1,
/*299963*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermilpi:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                          // Dst: (VPERMILPDZmik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*299977*/              0, // EndSwitchType
/*299978*/            /*SwitchOpcode*/ 74, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->300055
/*299981*/              OPC_RecordMemRef,
/*299982*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*299983*/              OPC_CheckFoldableChainNode,
/*299984*/              OPC_RecordChild1, // #2 = $src1
/*299985*/              OPC_Scope, 33, /*->300020*/ // 2 children in Scope
/*299987*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*299989*/                OPC_MoveParent,
/*299990*/                OPC_RecordChild1, // #3 = $src2
/*299991*/                OPC_MoveChild1,
/*299992*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*299995*/                OPC_MoveParent,
/*299996*/                OPC_MoveParent,
/*299997*/                OPC_RecordChild2, // #4 = $src0
/*299998*/                OPC_CheckType, MVT::v8f32,
/*300000*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*300002*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*300005*/                OPC_EmitMergeInputChains1_1,
/*300006*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZ256mbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermilpi:{ *:[v8f32] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src2), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                          // Dst: (VPERMILPSZ256mbik:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*300020*/              /*Scope*/ 33, /*->300054*/
/*300021*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*300023*/                OPC_MoveParent,
/*300024*/                OPC_RecordChild1, // #3 = $src2
/*300025*/                OPC_MoveChild1,
/*300026*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*300029*/                OPC_MoveParent,
/*300030*/                OPC_MoveParent,
/*300031*/                OPC_RecordChild2, // #4 = $src0
/*300032*/                OPC_CheckType, MVT::v8f64,
/*300034*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*300036*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*300039*/                OPC_EmitMergeInputChains1_1,
/*300040*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermilpi:{ *:[v8f64] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src2), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                          // Dst: (VPERMILPDZmbik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*300054*/              0, /*End of Scope*/
/*300055*/            0, // EndSwitchOpcode
/*300056*/          /*SwitchOpcode*/ 18|128,1/*146*/, TARGET_VAL(X86ISD::VREDUCE),// ->300206
/*300060*/            OPC_MoveChild0,
/*300061*/            OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->300128
/*300065*/              OPC_RecordMemRef,
/*300066*/              OPC_RecordNode, // #1 = 'ld' chained node
/*300067*/              OPC_CheckFoldableChainNode,
/*300068*/              OPC_RecordChild1, // #2 = $src1
/*300069*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*300071*/              OPC_CheckPredicate, 9, // Predicate_load
/*300073*/              OPC_MoveParent,
/*300074*/              OPC_RecordChild1, // #3 = $src2
/*300075*/              OPC_MoveChild1,
/*300076*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*300079*/              OPC_MoveParent,
/*300080*/              OPC_MoveParent,
/*300081*/              OPC_RecordChild2, // #4 = $src0
/*300082*/              OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->300105
/*300085*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*300087*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*300090*/                OPC_EmitMergeInputChains1_1,
/*300091*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPSZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VReduce:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                          // Dst: (VREDUCEPSZ256rmik:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*300105*/              /*SwitchType*/ 20, MVT::v8f64,// ->300127
/*300107*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*300109*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*300112*/                OPC_EmitMergeInputChains1_1,
/*300113*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPDZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VReduce:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                          // Dst: (VREDUCEPDZrmik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*300127*/              0, // EndSwitchType
/*300128*/            /*SwitchOpcode*/ 74, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->300205
/*300131*/              OPC_RecordMemRef,
/*300132*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*300133*/              OPC_CheckFoldableChainNode,
/*300134*/              OPC_RecordChild1, // #2 = $src1
/*300135*/              OPC_Scope, 33, /*->300170*/ // 2 children in Scope
/*300137*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*300139*/                OPC_MoveParent,
/*300140*/                OPC_RecordChild1, // #3 = $src2
/*300141*/                OPC_MoveChild1,
/*300142*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*300145*/                OPC_MoveParent,
/*300146*/                OPC_MoveParent,
/*300147*/                OPC_RecordChild2, // #4 = $src0
/*300148*/                OPC_CheckType, MVT::v8f32,
/*300150*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*300152*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*300155*/                OPC_EmitMergeInputChains1_1,
/*300156*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPSZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VReduce:{ *:[v8f32] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i32] }):$src2), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                          // Dst: (VREDUCEPSZ256rmbik:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*300170*/              /*Scope*/ 33, /*->300204*/
/*300171*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*300173*/                OPC_MoveParent,
/*300174*/                OPC_RecordChild1, // #3 = $src2
/*300175*/                OPC_MoveChild1,
/*300176*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*300179*/                OPC_MoveParent,
/*300180*/                OPC_MoveParent,
/*300181*/                OPC_RecordChild2, // #4 = $src0
/*300182*/                OPC_CheckType, MVT::v8f64,
/*300184*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*300186*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*300189*/                OPC_EmitMergeInputChains1_1,
/*300190*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPDZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VReduce:{ *:[v8f64] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i32] }):$src2), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                          // Dst: (VREDUCEPDZrmbik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*300204*/              0, /*End of Scope*/
/*300205*/            0, // EndSwitchOpcode
/*300206*/          /*SwitchOpcode*/ 32|128,1/*160*/, TARGET_VAL(X86ISD::STRICT_VRNDSCALE),// ->300370
/*300210*/            OPC_RecordNode, // #1 = 'X86strict_VRndScale' chained node
/*300211*/            OPC_CheckFoldableChainNode,
/*300212*/            OPC_MoveChild1,
/*300213*/            OPC_SwitchOpcode /*2 cases */, 69, TARGET_VAL(ISD::LOAD),// ->300286
/*300217*/              OPC_RecordMemRef,
/*300218*/              OPC_RecordNode, // #2 = 'ld' chained node
/*300219*/              OPC_CheckFoldableChainNode,
/*300220*/              OPC_RecordChild1, // #3 = $src1
/*300221*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*300223*/              OPC_CheckPredicate, 9, // Predicate_load
/*300225*/              OPC_MoveParent,
/*300226*/              OPC_RecordChild2, // #4 = $src2
/*300227*/              OPC_MoveChild2,
/*300228*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*300231*/              OPC_MoveParent,
/*300232*/              OPC_MoveParent,
/*300233*/              OPC_RecordChild2, // #5 = $src0
/*300234*/              OPC_SwitchType /*2 cases */, 23, MVT::v8f32,// ->300260
/*300237*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*300239*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src1 #6 #7 #8 #9 #10
/*300242*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*300246*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 5, 0, 6, 7, 8, 9, 10, 4, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_VRndScale:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                          // Dst: (VRNDSCALEPSZ256rmik:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*300260*/              /*SwitchType*/ 23, MVT::v8f64,// ->300285
/*300262*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*300264*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src1 #6 #7 #8 #9 #10
/*300267*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*300271*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 5, 0, 6, 7, 8, 9, 10, 4, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_VRndScale:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                          // Dst: (VRNDSCALEPDZrmik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*300285*/              0, // EndSwitchType
/*300286*/            /*SwitchOpcode*/ 80, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->300369
/*300289*/              OPC_RecordMemRef,
/*300290*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*300291*/              OPC_CheckFoldableChainNode,
/*300292*/              OPC_RecordChild1, // #3 = $src1
/*300293*/              OPC_Scope, 36, /*->300331*/ // 2 children in Scope
/*300295*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*300297*/                OPC_MoveParent,
/*300298*/                OPC_RecordChild2, // #4 = $src2
/*300299*/                OPC_MoveChild2,
/*300300*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*300303*/                OPC_MoveParent,
/*300304*/                OPC_MoveParent,
/*300305*/                OPC_RecordChild2, // #5 = $src0
/*300306*/                OPC_CheckType, MVT::v8f32,
/*300308*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*300310*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src1 #6 #7 #8 #9 #10
/*300313*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*300317*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 5, 0, 6, 7, 8, 9, 10, 4, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_VRndScale:{ *:[v8f32] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i32] }):$src2), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                          // Dst: (VRNDSCALEPSZ256rmbik:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*300331*/              /*Scope*/ 36, /*->300368*/
/*300332*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*300334*/                OPC_MoveParent,
/*300335*/                OPC_RecordChild2, // #4 = $src2
/*300336*/                OPC_MoveChild2,
/*300337*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*300340*/                OPC_MoveParent,
/*300341*/                OPC_MoveParent,
/*300342*/                OPC_RecordChild2, // #5 = $src0
/*300343*/                OPC_CheckType, MVT::v8f64,
/*300345*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*300347*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src1 #6 #7 #8 #9 #10
/*300350*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*300354*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 5, 0, 6, 7, 8, 9, 10, 4, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_VRndScale:{ *:[v8f64] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i32] }):$src2), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                          // Dst: (VRNDSCALEPDZrmbik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*300368*/              0, /*End of Scope*/
/*300369*/            0, // EndSwitchOpcode
/*300370*/          /*SwitchOpcode*/ 18|128,1/*146*/, TARGET_VAL(X86ISD::VRNDSCALE),// ->300520
/*300374*/            OPC_MoveChild0,
/*300375*/            OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->300442
/*300379*/              OPC_RecordMemRef,
/*300380*/              OPC_RecordNode, // #1 = 'ld' chained node
/*300381*/              OPC_CheckFoldableChainNode,
/*300382*/              OPC_RecordChild1, // #2 = $src1
/*300383*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*300385*/              OPC_CheckPredicate, 9, // Predicate_load
/*300387*/              OPC_MoveParent,
/*300388*/              OPC_RecordChild1, // #3 = $src2
/*300389*/              OPC_MoveChild1,
/*300390*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*300393*/              OPC_MoveParent,
/*300394*/              OPC_MoveParent,
/*300395*/              OPC_RecordChild2, // #4 = $src0
/*300396*/              OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->300419
/*300399*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*300401*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*300404*/                OPC_EmitMergeInputChains1_1,
/*300405*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VRndScale:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                          // Dst: (VRNDSCALEPSZ256rmik:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*300419*/              /*SwitchType*/ 20, MVT::v8f64,// ->300441
/*300421*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*300423*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*300426*/                OPC_EmitMergeInputChains1_1,
/*300427*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VRndScale:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                          // Dst: (VRNDSCALEPDZrmik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*300441*/              0, // EndSwitchType
/*300442*/            /*SwitchOpcode*/ 74, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->300519
/*300445*/              OPC_RecordMemRef,
/*300446*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*300447*/              OPC_CheckFoldableChainNode,
/*300448*/              OPC_RecordChild1, // #2 = $src1
/*300449*/              OPC_Scope, 33, /*->300484*/ // 2 children in Scope
/*300451*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*300453*/                OPC_MoveParent,
/*300454*/                OPC_RecordChild1, // #3 = $src2
/*300455*/                OPC_MoveChild1,
/*300456*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*300459*/                OPC_MoveParent,
/*300460*/                OPC_MoveParent,
/*300461*/                OPC_RecordChild2, // #4 = $src0
/*300462*/                OPC_CheckType, MVT::v8f32,
/*300464*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*300466*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*300469*/                OPC_EmitMergeInputChains1_1,
/*300470*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VRndScale:{ *:[v8f32] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i32] }):$src2), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                          // Dst: (VRNDSCALEPSZ256rmbik:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*300484*/              /*Scope*/ 33, /*->300518*/
/*300485*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*300487*/                OPC_MoveParent,
/*300488*/                OPC_RecordChild1, // #3 = $src2
/*300489*/                OPC_MoveChild1,
/*300490*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*300493*/                OPC_MoveParent,
/*300494*/                OPC_MoveParent,
/*300495*/                OPC_RecordChild2, // #4 = $src0
/*300496*/                OPC_CheckType, MVT::v8f64,
/*300498*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*300500*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*300503*/                OPC_EmitMergeInputChains1_1,
/*300504*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VRndScale:{ *:[v8f64] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i32] }):$src2), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                          // Dst: (VRNDSCALEPDZrmbik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*300518*/              0, /*End of Scope*/
/*300519*/            0, // EndSwitchOpcode
/*300520*/          /*SwitchOpcode*/ 18|128,1/*146*/, TARGET_VAL(X86ISD::VGETMANT),// ->300670
/*300524*/            OPC_MoveChild0,
/*300525*/            OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->300592
/*300529*/              OPC_RecordMemRef,
/*300530*/              OPC_RecordNode, // #1 = 'ld' chained node
/*300531*/              OPC_CheckFoldableChainNode,
/*300532*/              OPC_RecordChild1, // #2 = $src1
/*300533*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*300535*/              OPC_CheckPredicate, 9, // Predicate_load
/*300537*/              OPC_MoveParent,
/*300538*/              OPC_RecordChild1, // #3 = $src2
/*300539*/              OPC_MoveChild1,
/*300540*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*300543*/              OPC_MoveParent,
/*300544*/              OPC_MoveParent,
/*300545*/              OPC_RecordChild2, // #4 = $src0
/*300546*/              OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->300569
/*300549*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*300551*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*300554*/                OPC_EmitMergeInputChains1_1,
/*300555*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPSZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VGetMant:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                          // Dst: (VGETMANTPSZ256rmik:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*300569*/              /*SwitchType*/ 20, MVT::v8f64,// ->300591
/*300571*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*300573*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*300576*/                OPC_EmitMergeInputChains1_1,
/*300577*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPDZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VGetMant:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                          // Dst: (VGETMANTPDZrmik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*300591*/              0, // EndSwitchType
/*300592*/            /*SwitchOpcode*/ 74, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->300669
/*300595*/              OPC_RecordMemRef,
/*300596*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*300597*/              OPC_CheckFoldableChainNode,
/*300598*/              OPC_RecordChild1, // #2 = $src1
/*300599*/              OPC_Scope, 33, /*->300634*/ // 2 children in Scope
/*300601*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*300603*/                OPC_MoveParent,
/*300604*/                OPC_RecordChild1, // #3 = $src2
/*300605*/                OPC_MoveChild1,
/*300606*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*300609*/                OPC_MoveParent,
/*300610*/                OPC_MoveParent,
/*300611*/                OPC_RecordChild2, // #4 = $src0
/*300612*/                OPC_CheckType, MVT::v8f32,
/*300614*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*300616*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*300619*/                OPC_EmitMergeInputChains1_1,
/*300620*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPSZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VGetMant:{ *:[v8f32] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i32] }):$src2), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                          // Dst: (VGETMANTPSZ256rmbik:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*300634*/              /*Scope*/ 33, /*->300668*/
/*300635*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*300637*/                OPC_MoveParent,
/*300638*/                OPC_RecordChild1, // #3 = $src2
/*300639*/                OPC_MoveChild1,
/*300640*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*300643*/                OPC_MoveParent,
/*300644*/                OPC_MoveParent,
/*300645*/                OPC_RecordChild2, // #4 = $src0
/*300646*/                OPC_CheckType, MVT::v8f64,
/*300648*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*300650*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*300653*/                OPC_EmitMergeInputChains1_1,
/*300654*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPDZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VGetMant:{ *:[v8f64] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i32] }):$src2), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                          // Dst: (VGETMANTPDZrmbik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*300668*/              0, /*End of Scope*/
/*300669*/            0, // EndSwitchOpcode
/*300670*/          /*SwitchOpcode*/ 23|128,1/*151*/, TARGET_VAL(X86ISD::VRANGE),// ->300825
/*300674*/            OPC_RecordChild0, // #1 = $src1
/*300675*/            OPC_MoveChild1,
/*300676*/            OPC_SwitchOpcode /*2 cases */, 65, TARGET_VAL(ISD::LOAD),// ->300745
/*300680*/              OPC_RecordMemRef,
/*300681*/              OPC_RecordNode, // #2 = 'ld' chained node
/*300682*/              OPC_CheckFoldableChainNode,
/*300683*/              OPC_RecordChild1, // #3 = $src2
/*300684*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*300686*/              OPC_CheckPredicate, 9, // Predicate_load
/*300688*/              OPC_MoveParent,
/*300689*/              OPC_RecordChild2, // #4 = $src3
/*300690*/              OPC_MoveChild2,
/*300691*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*300694*/              OPC_MoveParent,
/*300695*/              OPC_MoveParent,
/*300696*/              OPC_RecordChild2, // #5 = $src0
/*300697*/              OPC_SwitchType /*2 cases */, 21, MVT::v8f64,// ->300721
/*300700*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*300702*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*300705*/                OPC_EmitMergeInputChains1_2,
/*300706*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPDZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VRange:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src3), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                          // Dst: (VRANGEPDZrmik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i32] }):$src3)
/*300721*/              /*SwitchType*/ 21, MVT::v8f32,// ->300744
/*300723*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*300725*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*300728*/                OPC_EmitMergeInputChains1_2,
/*300729*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPSZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VRange:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src3), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                          // Dst: (VRANGEPSZ256rmik:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i32] }):$src3)
/*300744*/              0, // EndSwitchType
/*300745*/            /*SwitchOpcode*/ 76, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->300824
/*300748*/              OPC_RecordMemRef,
/*300749*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*300750*/              OPC_CheckFoldableChainNode,
/*300751*/              OPC_RecordChild1, // #3 = $src2
/*300752*/              OPC_Scope, 34, /*->300788*/ // 2 children in Scope
/*300754*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*300756*/                OPC_MoveParent,
/*300757*/                OPC_RecordChild2, // #4 = $src3
/*300758*/                OPC_MoveChild2,
/*300759*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*300762*/                OPC_MoveParent,
/*300763*/                OPC_MoveParent,
/*300764*/                OPC_RecordChild2, // #5 = $src0
/*300765*/                OPC_CheckType, MVT::v8f64,
/*300767*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*300769*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*300772*/                OPC_EmitMergeInputChains1_2,
/*300773*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPDZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VRange:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i32] }):$src3), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                          // Dst: (VRANGEPDZrmbik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i32] }):$src3)
/*300788*/              /*Scope*/ 34, /*->300823*/
/*300789*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*300791*/                OPC_MoveParent,
/*300792*/                OPC_RecordChild2, // #4 = $src3
/*300793*/                OPC_MoveChild2,
/*300794*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*300797*/                OPC_MoveParent,
/*300798*/                OPC_MoveParent,
/*300799*/                OPC_RecordChild2, // #5 = $src0
/*300800*/                OPC_CheckType, MVT::v8f32,
/*300802*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*300804*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*300807*/                OPC_EmitMergeInputChains1_2,
/*300808*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPSZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VRange:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i32] }):$src3), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                          // Dst: (VRANGEPSZ256rmbik:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i32] }):$src3)
/*300823*/              0, /*End of Scope*/
/*300824*/            0, // EndSwitchOpcode
/*300825*/          /*SwitchOpcode*/ 88, TARGET_VAL(X86ISD::SHUF128),// ->300916
/*300828*/            OPC_RecordChild0, // #1 = $src1
/*300829*/            OPC_MoveChild1,
/*300830*/            OPC_SwitchOpcode /*2 cases */, 40, TARGET_VAL(ISD::LOAD),// ->300874
/*300834*/              OPC_RecordMemRef,
/*300835*/              OPC_RecordNode, // #2 = 'ld' chained node
/*300836*/              OPC_CheckFoldableChainNode,
/*300837*/              OPC_RecordChild1, // #3 = $src2
/*300838*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*300840*/              OPC_CheckPredicate, 9, // Predicate_load
/*300842*/              OPC_MoveParent,
/*300843*/              OPC_RecordChild2, // #4 = $src3
/*300844*/              OPC_MoveChild2,
/*300845*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*300848*/              OPC_MoveParent,
/*300849*/              OPC_MoveParent,
/*300850*/              OPC_RecordChild2, // #5 = $src0
/*300851*/              OPC_CheckType, MVT::v8f64,
/*300853*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*300855*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*300858*/              OPC_EmitMergeInputChains1_2,
/*300859*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF64X2Zrmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Shuf128:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                        // Dst: (VSHUFF64X2Zrmik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*300874*/            /*SwitchOpcode*/ 38, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->300915
/*300877*/              OPC_RecordMemRef,
/*300878*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*300879*/              OPC_CheckFoldableChainNode,
/*300880*/              OPC_RecordChild1, // #3 = $src2
/*300881*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*300883*/              OPC_MoveParent,
/*300884*/              OPC_RecordChild2, // #4 = $src3
/*300885*/              OPC_MoveChild2,
/*300886*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*300889*/              OPC_MoveParent,
/*300890*/              OPC_MoveParent,
/*300891*/              OPC_RecordChild2, // #5 = $src0
/*300892*/              OPC_CheckType, MVT::v8f64,
/*300894*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*300896*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*300899*/              OPC_EmitMergeInputChains1_2,
/*300900*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF64X2Zrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Shuf128:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src3), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                        // Dst: (VSHUFF64X2Zrmbik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*300915*/            0, // EndSwitchOpcode
/*300916*/          /*SwitchOpcode*/ 23|128,1/*151*/, TARGET_VAL(X86ISD::SHUFP),// ->301071
/*300920*/            OPC_RecordChild0, // #1 = $src1
/*300921*/            OPC_MoveChild1,
/*300922*/            OPC_SwitchOpcode /*2 cases */, 65, TARGET_VAL(ISD::LOAD),// ->300991
/*300926*/              OPC_RecordMemRef,
/*300927*/              OPC_RecordNode, // #2 = 'ld' chained node
/*300928*/              OPC_CheckFoldableChainNode,
/*300929*/              OPC_RecordChild1, // #3 = $src2
/*300930*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*300932*/              OPC_CheckPredicate, 9, // Predicate_load
/*300934*/              OPC_MoveParent,
/*300935*/              OPC_RecordChild2, // #4 = $src3
/*300936*/              OPC_MoveChild2,
/*300937*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*300940*/              OPC_MoveParent,
/*300941*/              OPC_MoveParent,
/*300942*/              OPC_RecordChild2, // #5 = $src0
/*300943*/              OPC_SwitchType /*2 cases */, 21, MVT::v8f32,// ->300967
/*300946*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*300948*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*300951*/                OPC_EmitMergeInputChains1_2,
/*300952*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPSZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Shufp:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                          // Dst: (VSHUFPSZ256rmik:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*300967*/              /*SwitchType*/ 21, MVT::v8f64,// ->300990
/*300969*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*300971*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*300974*/                OPC_EmitMergeInputChains1_2,
/*300975*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPDZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Shufp:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                          // Dst: (VSHUFPDZrmik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*300990*/              0, // EndSwitchType
/*300991*/            /*SwitchOpcode*/ 76, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->301070
/*300994*/              OPC_RecordMemRef,
/*300995*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*300996*/              OPC_CheckFoldableChainNode,
/*300997*/              OPC_RecordChild1, // #3 = $src2
/*300998*/              OPC_Scope, 34, /*->301034*/ // 2 children in Scope
/*301000*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*301002*/                OPC_MoveParent,
/*301003*/                OPC_RecordChild2, // #4 = $src3
/*301004*/                OPC_MoveChild2,
/*301005*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*301008*/                OPC_MoveParent,
/*301009*/                OPC_MoveParent,
/*301010*/                OPC_RecordChild2, // #5 = $src0
/*301011*/                OPC_CheckType, MVT::v8f32,
/*301013*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*301015*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*301018*/                OPC_EmitMergeInputChains1_2,
/*301019*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPSZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Shufp:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src3), VR256X:{ *:[v8f32] }:$src0) - Complexity = 31
                          // Dst: (VSHUFPSZ256rmbik:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*301034*/              /*Scope*/ 34, /*->301069*/
/*301035*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*301037*/                OPC_MoveParent,
/*301038*/                OPC_RecordChild2, // #4 = $src3
/*301039*/                OPC_MoveChild2,
/*301040*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*301043*/                OPC_MoveParent,
/*301044*/                OPC_MoveParent,
/*301045*/                OPC_RecordChild2, // #5 = $src0
/*301046*/                OPC_CheckType, MVT::v8f64,
/*301048*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*301050*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*301053*/                OPC_EmitMergeInputChains1_2,
/*301054*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPDZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Shufp:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src3), VR512:{ *:[v8f64] }:$src0) - Complexity = 31
                          // Dst: (VSHUFPDZrmbik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*301069*/              0, /*End of Scope*/
/*301070*/            0, // EndSwitchOpcode
/*301071*/          /*SwitchOpcode*/ 35|128,1/*163*/, TARGET_VAL(X86ISD::VFIXUPIMM),// ->301238
/*301075*/            OPC_RecordChild0, // #1 = $src1
/*301076*/            OPC_RecordChild1, // #2 = $src2
/*301077*/            OPC_MoveChild2,
/*301078*/            OPC_SwitchOpcode /*2 cases */, 70, TARGET_VAL(ISD::LOAD),// ->301152
/*301082*/              OPC_RecordMemRef,
/*301083*/              OPC_RecordNode, // #3 = 'ld' chained node
/*301084*/              OPC_CheckFoldableChainNode,
/*301085*/              OPC_RecordChild1, // #4 = $src3
/*301086*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*301088*/              OPC_CheckPredicate, 9, // Predicate_load
/*301090*/              OPC_MoveParent,
/*301091*/              OPC_RecordChild3, // #5 = $src4
/*301092*/              OPC_MoveChild3,
/*301093*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*301096*/              OPC_MoveParent,
/*301097*/              OPC_MoveParent,
/*301098*/              OPC_CheckChild2Same, 1,
/*301100*/              OPC_SwitchType /*2 cases */, 23, MVT::v8f32,// ->301126
/*301103*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*301105*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*301108*/                OPC_EmitMergeInputChains, 1, 3, 
/*301111*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPSZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 5, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VFixupimm:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src4), VR256X:{ *:[v8f32] }:$src1) - Complexity = 31
                          // Dst: (VFIXUPIMMPSZ256rmik:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i32] }):$src4)
/*301126*/              /*SwitchType*/ 23, MVT::v8f64,// ->301151
/*301128*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*301130*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*301133*/                OPC_EmitMergeInputChains, 1, 3, 
/*301136*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPDZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 5, 
                          // 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>>, (timm:{ *:[i32] }):$src4), VR512:{ *:[v8f64] }:$src1) - Complexity = 31
                          // Dst: (VFIXUPIMMPDZrmik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i32] }):$src4)
/*301151*/              0, // EndSwitchType
/*301152*/            /*SwitchOpcode*/ 82, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->301237
/*301155*/              OPC_RecordMemRef,
/*301156*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*301157*/              OPC_CheckFoldableChainNode,
/*301158*/              OPC_RecordChild1, // #4 = $src3
/*301159*/              OPC_Scope, 37, /*->301198*/ // 2 children in Scope
/*301161*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*301163*/                OPC_MoveParent,
/*301164*/                OPC_RecordChild3, // #5 = $src4
/*301165*/                OPC_MoveChild3,
/*301166*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*301169*/                OPC_MoveParent,
/*301170*/                OPC_MoveParent,
/*301171*/                OPC_CheckChild2Same, 1,
/*301173*/                OPC_CheckType, MVT::v8f32,
/*301175*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*301177*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*301180*/                OPC_EmitMergeInputChains, 1, 3, 
/*301183*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPSZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 5, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VFixupimm:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i32] }):$src4), VR256X:{ *:[v8f32] }:$src1) - Complexity = 31
                          // Dst: (VFIXUPIMMPSZ256rmbik:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i32] }):$src4)
/*301198*/              /*Scope*/ 37, /*->301236*/
/*301199*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*301201*/                OPC_MoveParent,
/*301202*/                OPC_RecordChild3, // #5 = $src4
/*301203*/                OPC_MoveChild3,
/*301204*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*301207*/                OPC_MoveParent,
/*301208*/                OPC_MoveParent,
/*301209*/                OPC_CheckChild2Same, 1,
/*301211*/                OPC_CheckType, MVT::v8f64,
/*301213*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*301215*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*301218*/                OPC_EmitMergeInputChains, 1, 3, 
/*301221*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPDZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 5, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VFixupimm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i32] }):$src4), VR512:{ *:[v8f64] }:$src1) - Complexity = 31
                          // Dst: (VFIXUPIMMPDZrmbik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i32] }):$src4)
/*301236*/              0, /*End of Scope*/
/*301237*/            0, // EndSwitchOpcode
/*301238*/          /*SwitchOpcode*/ 112, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->301353
/*301241*/            OPC_RecordMemRef,
/*301242*/            OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*301243*/            OPC_CheckFoldableChainNode,
/*301244*/            OPC_RecordChild1, // #2 = $src
/*301245*/            OPC_Scope, 26, /*->301273*/ // 4 children in Scope
/*301247*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*301249*/              OPC_MoveParent,
/*301250*/              OPC_MoveChild2,
/*301251*/              OPC_CheckImmAllZerosV,
/*301252*/              OPC_MoveParent,
/*301253*/              OPC_CheckType, MVT::v8f32,
/*301255*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*301257*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*301260*/              OPC_EmitMergeInputChains1_1,
/*301261*/              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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>, immAllZerosV:{ *:[v8f32] }) - Complexity = 29
                        // Dst: (VBROADCASTSSZ256mkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*301273*/            /*Scope*/ 26, /*->301300*/
/*301274*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*301276*/              OPC_MoveParent,
/*301277*/              OPC_MoveChild2,
/*301278*/              OPC_CheckImmAllZerosV,
/*301279*/              OPC_MoveParent,
/*301280*/              OPC_CheckType, MVT::v8f64,
/*301282*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*301284*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*301287*/              OPC_EmitMergeInputChains1_1,
/*301288*/              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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>, immAllZerosV:{ *:[v8f64] }) - Complexity = 29
                        // Dst: (VBROADCASTSDZmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*301300*/            /*Scope*/ 25, /*->301326*/
/*301301*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*301303*/              OPC_MoveParent,
/*301304*/              OPC_RecordChild2, // #3 = $src0
/*301305*/              OPC_CheckType, MVT::v8f32,
/*301307*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*301309*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*301312*/              OPC_EmitMergeInputChains1_1,
/*301313*/              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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src0) - Complexity = 25
                        // Dst: (VBROADCASTSSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*301326*/            /*Scope*/ 25, /*->301352*/
/*301327*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*301329*/              OPC_MoveParent,
/*301330*/              OPC_RecordChild2, // #3 = $src0
/*301331*/              OPC_CheckType, MVT::v8f64,
/*301333*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*301335*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*301338*/              OPC_EmitMergeInputChains1_1,
/*301339*/              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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src0) - Complexity = 25
                        // Dst: (VBROADCASTSDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*301352*/            0, /*End of Scope*/
/*301353*/          /*SwitchOpcode*/ 11|128,2/*267*/, TARGET_VAL(ISD::LOAD),// ->301624
/*301357*/            OPC_RecordMemRef,
/*301358*/            OPC_RecordNode, // #1 = 'ld' chained node
/*301359*/            OPC_CheckFoldableChainNode,
/*301360*/            OPC_RecordChild1, // #2 = $src
/*301361*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*301363*/            OPC_Scope, 100, /*->301465*/ // 4 children in Scope
/*301365*/              OPC_CheckPredicate, 9, // Predicate_load
/*301367*/              OPC_Scope, 48, /*->301417*/ // 2 children in Scope
/*301369*/                OPC_CheckPredicate, 74, // Predicate_alignedload
/*301371*/                OPC_MoveParent,
/*301372*/                OPC_MoveChild2,
/*301373*/                OPC_CheckImmAllZerosV,
/*301374*/                OPC_MoveParent,
/*301375*/                OPC_SwitchType /*2 cases */, 18, MVT::v8f32,// ->301396
/*301378*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*301380*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*301383*/                  OPC_EmitMergeInputChains1_1,
/*301384*/                  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_alignedload>>, immAllZerosV:{ *:[v8f32] }) - Complexity = 29
                            // Dst: (VMOVAPSZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*301396*/                /*SwitchType*/ 18, MVT::v8f64,// ->301416
/*301398*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*301400*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*301403*/                  OPC_EmitMergeInputChains1_1,
/*301404*/                  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_alignedload>>, immAllZerosV:{ *:[v8f64] }) - Complexity = 29
                            // Dst: (VMOVAPDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*301416*/                0, // EndSwitchType
/*301417*/              /*Scope*/ 46, /*->301464*/
/*301418*/                OPC_MoveParent,
/*301419*/                OPC_MoveChild2,
/*301420*/                OPC_CheckImmAllZerosV,
/*301421*/                OPC_MoveParent,
/*301422*/                OPC_SwitchType /*2 cases */, 18, MVT::v8f32,// ->301443
/*301425*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*301427*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*301430*/                  OPC_EmitMergeInputChains1_1,
/*301431*/                  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>>, immAllZerosV:{ *:[v8f32] }) - Complexity = 29
                            // Dst: (VMOVUPSZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*301443*/                /*SwitchType*/ 18, MVT::v8f64,// ->301463
/*301445*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*301447*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*301450*/                  OPC_EmitMergeInputChains1_1,
/*301451*/                  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>>, immAllZerosV:{ *:[v8f64] }) - Complexity = 29
                            // Dst: (VMOVUPDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*301463*/                0, // EndSwitchType
/*301464*/              0, /*End of Scope*/
/*301465*/            /*Scope*/ 28, /*->301494*/
/*301466*/              OPC_CheckPredicate, 70, // Predicate_extload
/*301468*/              OPC_CheckPredicate, 78, // Predicate_extloadvf32
/*301470*/              OPC_MoveParent,
/*301471*/              OPC_MoveChild2,
/*301472*/              OPC_CheckImmAllZerosV,
/*301473*/              OPC_MoveParent,
/*301474*/              OPC_CheckType, MVT::v8f64,
/*301476*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*301478*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*301481*/              OPC_EmitMergeInputChains1_1,
/*301482*/              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, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadvf32>>, immAllZerosV:{ *:[v8f64] }) - Complexity = 29
                        // Dst: (VCVTPS2PDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*301494*/            /*Scope*/ 100, /*->301595*/
/*301495*/              OPC_CheckPredicate, 9, // Predicate_load
/*301497*/              OPC_Scope, 48, /*->301547*/ // 2 children in Scope
/*301499*/                OPC_CheckPredicate, 74, // Predicate_alignedload
/*301501*/                OPC_MoveParent,
/*301502*/                OPC_RecordChild2, // #3 = $src0
/*301503*/                OPC_SwitchType /*2 cases */, 19, MVT::v8f32,// ->301525
/*301506*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*301508*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*301511*/                  OPC_EmitMergeInputChains1_1,
/*301512*/                  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_alignedload>>, VR256X:{ *:[v8f32] }:$src0) - Complexity = 25
                            // Dst: (VMOVAPSZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*301525*/                /*SwitchType*/ 19, MVT::v8f64,// ->301546
/*301527*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*301529*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*301532*/                  OPC_EmitMergeInputChains1_1,
/*301533*/                  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_alignedload>>, VR512:{ *:[v8f64] }:$src0) - Complexity = 25
                            // Dst: (VMOVAPDZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*301546*/                0, // EndSwitchType
/*301547*/              /*Scope*/ 46, /*->301594*/
/*301548*/                OPC_MoveParent,
/*301549*/                OPC_RecordChild2, // #3 = $src0
/*301550*/                OPC_SwitchType /*2 cases */, 19, MVT::v8f32,// ->301572
/*301553*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*301555*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*301558*/                  OPC_EmitMergeInputChains1_1,
/*301559*/                  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>>, VR256X:{ *:[v8f32] }:$src0) - Complexity = 25
                            // Dst: (VMOVUPSZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*301572*/                /*SwitchType*/ 19, MVT::v8f64,// ->301593
/*301574*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*301576*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*301579*/                  OPC_EmitMergeInputChains1_1,
/*301580*/                  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>>, VR512:{ *:[v8f64] }:$src0) - Complexity = 25
                            // Dst: (VMOVUPDZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*301593*/                0, // EndSwitchType
/*301594*/              0, /*End of Scope*/
/*301595*/            /*Scope*/ 27, /*->301623*/
/*301596*/              OPC_CheckPredicate, 70, // Predicate_extload
/*301598*/              OPC_CheckPredicate, 78, // Predicate_extloadvf32
/*301600*/              OPC_MoveParent,
/*301601*/              OPC_RecordChild2, // #3 = $src0
/*301602*/              OPC_CheckType, MVT::v8f64,
/*301604*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*301606*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*301609*/              OPC_EmitMergeInputChains1_1,
/*301610*/              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, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadvf32>>, VR512:{ *:[v8f64] }:$src0) - Complexity = 25
                        // Dst: (VCVTPS2PDZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*301623*/            0, /*End of Scope*/
/*301624*/          /*SwitchOpcode*/ 93, TARGET_VAL(X86ISD::SUBV_BROADCAST),// ->301720
/*301627*/            OPC_MoveChild0,
/*301628*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*301631*/            OPC_RecordMemRef,
/*301632*/            OPC_RecordNode, // #1 = 'ld' chained node
/*301633*/            OPC_CheckFoldableChainNode,
/*301634*/            OPC_RecordChild1, // #2 = $src
/*301635*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*301637*/            OPC_CheckPredicate, 9, // Predicate_load
/*301639*/            OPC_Scope, 26, /*->301667*/ // 3 children in Scope
/*301641*/              OPC_CheckType, MVT::v4f64,
/*301643*/              OPC_MoveParent,
/*301644*/              OPC_MoveParent,
/*301645*/              OPC_RecordChild2, // #3 = $src0
/*301646*/              OPC_CheckType, MVT::v8f64,
/*301648*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*301650*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*301653*/              OPC_EmitMergeInputChains1_1,
/*301654*/              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>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                        // Dst: (VBROADCASTF64X4rmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*301667*/            /*Scope*/ 24, /*->301692*/
/*301668*/              OPC_MoveParent,
/*301669*/              OPC_MoveParent,
/*301670*/              OPC_RecordChild2, // #3 = $src0
/*301671*/              OPC_CheckType, MVT::v8f32,
/*301673*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*301675*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*301678*/              OPC_EmitMergeInputChains1_1,
/*301679*/              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>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                        // Dst: (VBROADCASTF32X4Z256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*301692*/            /*Scope*/ 26, /*->301719*/
/*301693*/              OPC_CheckType, MVT::v2f64,
/*301695*/              OPC_MoveParent,
/*301696*/              OPC_MoveParent,
/*301697*/              OPC_RecordChild2, // #3 = $src0
/*301698*/              OPC_CheckType, MVT::v8f64,
/*301700*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*301702*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*301705*/              OPC_EmitMergeInputChains1_1,
/*301706*/              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>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                        // Dst: (VBROADCASTF64X2rmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*301719*/            0, /*End of Scope*/
/*301720*/          /*SwitchOpcode*/ 36|128,2/*292*/, TARGET_VAL(ISD::STRICT_FADD),// ->302016
/*301724*/            OPC_RecordNode, // #1 = 'strict_fadd' chained node
/*301725*/            OPC_CheckFoldableChainNode,
/*301726*/            OPC_Scope, 13|128,1/*141*/, /*->301870*/ // 2 children in Scope
/*301729*/              OPC_RecordChild1, // #2 = $src1
/*301730*/              OPC_MoveChild2,
/*301731*/              OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->301798
/*301735*/                OPC_RecordMemRef,
/*301736*/                OPC_RecordNode, // #3 = 'ld' chained node
/*301737*/                OPC_CheckFoldableChainNode,
/*301738*/                OPC_RecordChild1, // #4 = $src2
/*301739*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*301741*/                OPC_CheckPredicate, 9, // Predicate_load
/*301743*/                OPC_MoveParent,
/*301744*/                OPC_MoveParent,
/*301745*/                OPC_RecordChild2, // #5 = $src0
/*301746*/                OPC_SwitchType /*2 cases */, 23, MVT::v8f64,// ->301772
/*301749*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*301751*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*301754*/                  OPC_EmitMergeInputChains, 2, 1, 3, 
/*301758*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (strict_fadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                            // Dst: (VADDPDZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*301772*/                /*SwitchType*/ 23, MVT::v8f32,// ->301797
/*301774*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*301776*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*301779*/                  OPC_EmitMergeInputChains, 2, 1, 3, 
/*301783*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (strict_fadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                            // Dst: (VADDPSZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*301797*/                0, // EndSwitchType
/*301798*/              /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->301869
/*301801*/                OPC_RecordMemRef,
/*301802*/                OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*301803*/                OPC_CheckFoldableChainNode,
/*301804*/                OPC_RecordChild1, // #4 = $src2
/*301805*/                OPC_Scope, 30, /*->301837*/ // 2 children in Scope
/*301807*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*301809*/                  OPC_MoveParent,
/*301810*/                  OPC_MoveParent,
/*301811*/                  OPC_RecordChild2, // #5 = $src0
/*301812*/                  OPC_CheckType, MVT::v8f64,
/*301814*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*301816*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*301819*/                  OPC_EmitMergeInputChains, 2, 1, 3, 
/*301823*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (strict_fadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                            // Dst: (VADDPDZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*301837*/                /*Scope*/ 30, /*->301868*/
/*301838*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*301840*/                  OPC_MoveParent,
/*301841*/                  OPC_MoveParent,
/*301842*/                  OPC_RecordChild2, // #5 = $src0
/*301843*/                  OPC_CheckType, MVT::v8f32,
/*301845*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*301847*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*301850*/                  OPC_EmitMergeInputChains, 2, 1, 3, 
/*301854*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (strict_fadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                            // Dst: (VADDPSZ256rmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*301868*/                0, /*End of Scope*/
/*301869*/              0, // EndSwitchOpcode
/*301870*/            /*Scope*/ 15|128,1/*143*/, /*->302015*/
/*301872*/              OPC_MoveChild1,
/*301873*/              OPC_SwitchOpcode /*2 cases */, 64, TARGET_VAL(ISD::LOAD),// ->301941
/*301877*/                OPC_RecordMemRef,
/*301878*/                OPC_RecordNode, // #2 = 'ld' chained node
/*301879*/                OPC_CheckFoldableChainNode,
/*301880*/                OPC_RecordChild1, // #3 = $src2
/*301881*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*301883*/                OPC_CheckPredicate, 9, // Predicate_load
/*301885*/                OPC_MoveParent,
/*301886*/                OPC_RecordChild2, // #4 = $src1
/*301887*/                OPC_MoveParent,
/*301888*/                OPC_RecordChild2, // #5 = $src0
/*301889*/                OPC_SwitchType /*2 cases */, 23, MVT::v8f64,// ->301915
/*301892*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*301894*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*301897*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*301901*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 5, 0, 4, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (strict_fadd:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                            // Dst: (VADDPDZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*301915*/                /*SwitchType*/ 23, MVT::v8f32,// ->301940
/*301917*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*301919*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*301922*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*301926*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 5, 0, 4, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (strict_fadd:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                            // Dst: (VADDPSZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*301940*/                0, // EndSwitchType
/*301941*/              /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->302014
/*301944*/                OPC_RecordMemRef,
/*301945*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*301946*/                OPC_CheckFoldableChainNode,
/*301947*/                OPC_RecordChild1, // #3 = $src2
/*301948*/                OPC_Scope, 31, /*->301981*/ // 2 children in Scope
/*301950*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*301952*/                  OPC_MoveParent,
/*301953*/                  OPC_RecordChild2, // #4 = $src1
/*301954*/                  OPC_MoveParent,
/*301955*/                  OPC_RecordChild2, // #5 = $src0
/*301956*/                  OPC_CheckType, MVT::v8f64,
/*301958*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*301960*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*301963*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*301967*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 5, 0, 4, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (strict_fadd:{ *:[v8f64] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                            // Dst: (VADDPDZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*301981*/                /*Scope*/ 31, /*->302013*/
/*301982*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*301984*/                  OPC_MoveParent,
/*301985*/                  OPC_RecordChild2, // #4 = $src1
/*301986*/                  OPC_MoveParent,
/*301987*/                  OPC_RecordChild2, // #5 = $src0
/*301988*/                  OPC_CheckType, MVT::v8f32,
/*301990*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*301992*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*301995*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*301999*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 5, 0, 4, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (strict_fadd:{ *:[v8f32] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                            // Dst: (VADDPSZ256rmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*302013*/                0, /*End of Scope*/
/*302014*/              0, // EndSwitchOpcode
/*302015*/            0, /*End of Scope*/
/*302016*/          /*SwitchOpcode*/ 10|128,2/*266*/, TARGET_VAL(ISD::FADD),// ->302286
/*302020*/            OPC_Scope, 1|128,1/*129*/, /*->302152*/ // 2 children in Scope
/*302023*/              OPC_RecordChild0, // #1 = $src1
/*302024*/              OPC_MoveChild1,
/*302025*/              OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->302086
/*302029*/                OPC_RecordMemRef,
/*302030*/                OPC_RecordNode, // #2 = 'ld' chained node
/*302031*/                OPC_CheckFoldableChainNode,
/*302032*/                OPC_RecordChild1, // #3 = $src2
/*302033*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*302035*/                OPC_CheckPredicate, 9, // Predicate_load
/*302037*/                OPC_MoveParent,
/*302038*/                OPC_MoveParent,
/*302039*/                OPC_RecordChild2, // #4 = $src0
/*302040*/                OPC_SwitchType /*2 cases */, 20, MVT::v8f64,// ->302063
/*302043*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*302045*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*302048*/                  OPC_EmitMergeInputChains1_2,
/*302049*/                  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>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                            // Dst: (VADDPDZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*302063*/                /*SwitchType*/ 20, MVT::v8f32,// ->302085
/*302065*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*302067*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*302070*/                  OPC_EmitMergeInputChains1_2,
/*302071*/                  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>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                            // Dst: (VADDPSZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*302085*/                0, // EndSwitchType
/*302086*/              /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->302151
/*302089*/                OPC_RecordMemRef,
/*302090*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*302091*/                OPC_CheckFoldableChainNode,
/*302092*/                OPC_RecordChild1, // #3 = $src2
/*302093*/                OPC_Scope, 27, /*->302122*/ // 2 children in Scope
/*302095*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*302097*/                  OPC_MoveParent,
/*302098*/                  OPC_MoveParent,
/*302099*/                  OPC_RecordChild2, // #4 = $src0
/*302100*/                  OPC_CheckType, MVT::v8f64,
/*302102*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*302104*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*302107*/                  OPC_EmitMergeInputChains1_2,
/*302108*/                  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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                            // Dst: (VADDPDZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*302122*/                /*Scope*/ 27, /*->302150*/
/*302123*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*302125*/                  OPC_MoveParent,
/*302126*/                  OPC_MoveParent,
/*302127*/                  OPC_RecordChild2, // #4 = $src0
/*302128*/                  OPC_CheckType, MVT::v8f32,
/*302130*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*302132*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*302135*/                  OPC_EmitMergeInputChains1_2,
/*302136*/                  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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                            // Dst: (VADDPSZ256rmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*302150*/                0, /*End of Scope*/
/*302151*/              0, // EndSwitchOpcode
/*302152*/            /*Scope*/ 3|128,1/*131*/, /*->302285*/
/*302154*/              OPC_MoveChild0,
/*302155*/              OPC_SwitchOpcode /*2 cases */, 58, TARGET_VAL(ISD::LOAD),// ->302217
/*302159*/                OPC_RecordMemRef,
/*302160*/                OPC_RecordNode, // #1 = 'ld' chained node
/*302161*/                OPC_CheckFoldableChainNode,
/*302162*/                OPC_RecordChild1, // #2 = $src2
/*302163*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*302165*/                OPC_CheckPredicate, 9, // Predicate_load
/*302167*/                OPC_MoveParent,
/*302168*/                OPC_RecordChild1, // #3 = $src1
/*302169*/                OPC_MoveParent,
/*302170*/                OPC_RecordChild2, // #4 = $src0
/*302171*/                OPC_SwitchType /*2 cases */, 20, MVT::v8f64,// ->302194
/*302174*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*302176*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*302179*/                  OPC_EmitMergeInputChains1_1,
/*302180*/                  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>>, VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                            // Dst: (VADDPDZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*302194*/                /*SwitchType*/ 20, MVT::v8f32,// ->302216
/*302196*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*302198*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*302201*/                  OPC_EmitMergeInputChains1_1,
/*302202*/                  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>>, VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                            // Dst: (VADDPSZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*302216*/                0, // EndSwitchType
/*302217*/              /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->302284
/*302220*/                OPC_RecordMemRef,
/*302221*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*302222*/                OPC_CheckFoldableChainNode,
/*302223*/                OPC_RecordChild1, // #2 = $src2
/*302224*/                OPC_Scope, 28, /*->302254*/ // 2 children in Scope
/*302226*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*302228*/                  OPC_MoveParent,
/*302229*/                  OPC_RecordChild1, // #3 = $src1
/*302230*/                  OPC_MoveParent,
/*302231*/                  OPC_RecordChild2, // #4 = $src0
/*302232*/                  OPC_CheckType, MVT::v8f64,
/*302234*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*302236*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*302239*/                  OPC_EmitMergeInputChains1_1,
/*302240*/                  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] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                            // Dst: (VADDPDZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*302254*/                /*Scope*/ 28, /*->302283*/
/*302255*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*302257*/                  OPC_MoveParent,
/*302258*/                  OPC_RecordChild1, // #3 = $src1
/*302259*/                  OPC_MoveParent,
/*302260*/                  OPC_RecordChild2, // #4 = $src0
/*302261*/                  OPC_CheckType, MVT::v8f32,
/*302263*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*302265*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*302268*/                  OPC_EmitMergeInputChains1_1,
/*302269*/                  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] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                            // Dst: (VADDPSZ256rmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*302283*/                0, /*End of Scope*/
/*302284*/              0, // EndSwitchOpcode
/*302285*/            0, /*End of Scope*/
/*302286*/          /*SwitchOpcode*/ 36|128,2/*292*/, TARGET_VAL(ISD::STRICT_FMUL),// ->302582
/*302290*/            OPC_RecordNode, // #1 = 'strict_fmul' chained node
/*302291*/            OPC_CheckFoldableChainNode,
/*302292*/            OPC_Scope, 13|128,1/*141*/, /*->302436*/ // 2 children in Scope
/*302295*/              OPC_RecordChild1, // #2 = $src1
/*302296*/              OPC_MoveChild2,
/*302297*/              OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->302364
/*302301*/                OPC_RecordMemRef,
/*302302*/                OPC_RecordNode, // #3 = 'ld' chained node
/*302303*/                OPC_CheckFoldableChainNode,
/*302304*/                OPC_RecordChild1, // #4 = $src2
/*302305*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*302307*/                OPC_CheckPredicate, 9, // Predicate_load
/*302309*/                OPC_MoveParent,
/*302310*/                OPC_MoveParent,
/*302311*/                OPC_RecordChild2, // #5 = $src0
/*302312*/                OPC_SwitchType /*2 cases */, 23, MVT::v8f64,// ->302338
/*302315*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*302317*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*302320*/                  OPC_EmitMergeInputChains, 2, 1, 3, 
/*302324*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (strict_fmul:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                            // Dst: (VMULPDZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*302338*/                /*SwitchType*/ 23, MVT::v8f32,// ->302363
/*302340*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*302342*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*302345*/                  OPC_EmitMergeInputChains, 2, 1, 3, 
/*302349*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (strict_fmul:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                            // Dst: (VMULPSZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*302363*/                0, // EndSwitchType
/*302364*/              /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->302435
/*302367*/                OPC_RecordMemRef,
/*302368*/                OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*302369*/                OPC_CheckFoldableChainNode,
/*302370*/                OPC_RecordChild1, // #4 = $src2
/*302371*/                OPC_Scope, 30, /*->302403*/ // 2 children in Scope
/*302373*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*302375*/                  OPC_MoveParent,
/*302376*/                  OPC_MoveParent,
/*302377*/                  OPC_RecordChild2, // #5 = $src0
/*302378*/                  OPC_CheckType, MVT::v8f64,
/*302380*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*302382*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*302385*/                  OPC_EmitMergeInputChains, 2, 1, 3, 
/*302389*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (strict_fmul:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                            // Dst: (VMULPDZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*302403*/                /*Scope*/ 30, /*->302434*/
/*302404*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*302406*/                  OPC_MoveParent,
/*302407*/                  OPC_MoveParent,
/*302408*/                  OPC_RecordChild2, // #5 = $src0
/*302409*/                  OPC_CheckType, MVT::v8f32,
/*302411*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*302413*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*302416*/                  OPC_EmitMergeInputChains, 2, 1, 3, 
/*302420*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (strict_fmul:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                            // Dst: (VMULPSZ256rmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*302434*/                0, /*End of Scope*/
/*302435*/              0, // EndSwitchOpcode
/*302436*/            /*Scope*/ 15|128,1/*143*/, /*->302581*/
/*302438*/              OPC_MoveChild1,
/*302439*/              OPC_SwitchOpcode /*2 cases */, 64, TARGET_VAL(ISD::LOAD),// ->302507
/*302443*/                OPC_RecordMemRef,
/*302444*/                OPC_RecordNode, // #2 = 'ld' chained node
/*302445*/                OPC_CheckFoldableChainNode,
/*302446*/                OPC_RecordChild1, // #3 = $src2
/*302447*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*302449*/                OPC_CheckPredicate, 9, // Predicate_load
/*302451*/                OPC_MoveParent,
/*302452*/                OPC_RecordChild2, // #4 = $src1
/*302453*/                OPC_MoveParent,
/*302454*/                OPC_RecordChild2, // #5 = $src0
/*302455*/                OPC_SwitchType /*2 cases */, 23, MVT::v8f64,// ->302481
/*302458*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*302460*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*302463*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*302467*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 5, 0, 4, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (strict_fmul:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                            // Dst: (VMULPDZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*302481*/                /*SwitchType*/ 23, MVT::v8f32,// ->302506
/*302483*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*302485*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*302488*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*302492*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 5, 0, 4, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (strict_fmul:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                            // Dst: (VMULPSZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*302506*/                0, // EndSwitchType
/*302507*/              /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->302580
/*302510*/                OPC_RecordMemRef,
/*302511*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*302512*/                OPC_CheckFoldableChainNode,
/*302513*/                OPC_RecordChild1, // #3 = $src2
/*302514*/                OPC_Scope, 31, /*->302547*/ // 2 children in Scope
/*302516*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*302518*/                  OPC_MoveParent,
/*302519*/                  OPC_RecordChild2, // #4 = $src1
/*302520*/                  OPC_MoveParent,
/*302521*/                  OPC_RecordChild2, // #5 = $src0
/*302522*/                  OPC_CheckType, MVT::v8f64,
/*302524*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*302526*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*302529*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*302533*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 5, 0, 4, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (strict_fmul:{ *:[v8f64] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                            // Dst: (VMULPDZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*302547*/                /*Scope*/ 31, /*->302579*/
/*302548*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*302550*/                  OPC_MoveParent,
/*302551*/                  OPC_RecordChild2, // #4 = $src1
/*302552*/                  OPC_MoveParent,
/*302553*/                  OPC_RecordChild2, // #5 = $src0
/*302554*/                  OPC_CheckType, MVT::v8f32,
/*302556*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*302558*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*302561*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*302565*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 5, 0, 4, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (strict_fmul:{ *:[v8f32] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                            // Dst: (VMULPSZ256rmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*302579*/                0, /*End of Scope*/
/*302580*/              0, // EndSwitchOpcode
/*302581*/            0, /*End of Scope*/
/*302582*/          /*SwitchOpcode*/ 10|128,2/*266*/, TARGET_VAL(ISD::FMUL),// ->302852
/*302586*/            OPC_Scope, 1|128,1/*129*/, /*->302718*/ // 2 children in Scope
/*302589*/              OPC_RecordChild0, // #1 = $src1
/*302590*/              OPC_MoveChild1,
/*302591*/              OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->302652
/*302595*/                OPC_RecordMemRef,
/*302596*/                OPC_RecordNode, // #2 = 'ld' chained node
/*302597*/                OPC_CheckFoldableChainNode,
/*302598*/                OPC_RecordChild1, // #3 = $src2
/*302599*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*302601*/                OPC_CheckPredicate, 9, // Predicate_load
/*302603*/                OPC_MoveParent,
/*302604*/                OPC_MoveParent,
/*302605*/                OPC_RecordChild2, // #4 = $src0
/*302606*/                OPC_SwitchType /*2 cases */, 20, MVT::v8f64,// ->302629
/*302609*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*302611*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*302614*/                  OPC_EmitMergeInputChains1_2,
/*302615*/                  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>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                            // Dst: (VMULPDZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*302629*/                /*SwitchType*/ 20, MVT::v8f32,// ->302651
/*302631*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*302633*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*302636*/                  OPC_EmitMergeInputChains1_2,
/*302637*/                  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>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                            // Dst: (VMULPSZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*302651*/                0, // EndSwitchType
/*302652*/              /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->302717
/*302655*/                OPC_RecordMemRef,
/*302656*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*302657*/                OPC_CheckFoldableChainNode,
/*302658*/                OPC_RecordChild1, // #3 = $src2
/*302659*/                OPC_Scope, 27, /*->302688*/ // 2 children in Scope
/*302661*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*302663*/                  OPC_MoveParent,
/*302664*/                  OPC_MoveParent,
/*302665*/                  OPC_RecordChild2, // #4 = $src0
/*302666*/                  OPC_CheckType, MVT::v8f64,
/*302668*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*302670*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*302673*/                  OPC_EmitMergeInputChains1_2,
/*302674*/                  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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                            // Dst: (VMULPDZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*302688*/                /*Scope*/ 27, /*->302716*/
/*302689*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*302691*/                  OPC_MoveParent,
/*302692*/                  OPC_MoveParent,
/*302693*/                  OPC_RecordChild2, // #4 = $src0
/*302694*/                  OPC_CheckType, MVT::v8f32,
/*302696*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*302698*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*302701*/                  OPC_EmitMergeInputChains1_2,
/*302702*/                  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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                            // Dst: (VMULPSZ256rmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*302716*/                0, /*End of Scope*/
/*302717*/              0, // EndSwitchOpcode
/*302718*/            /*Scope*/ 3|128,1/*131*/, /*->302851*/
/*302720*/              OPC_MoveChild0,
/*302721*/              OPC_SwitchOpcode /*2 cases */, 58, TARGET_VAL(ISD::LOAD),// ->302783
/*302725*/                OPC_RecordMemRef,
/*302726*/                OPC_RecordNode, // #1 = 'ld' chained node
/*302727*/                OPC_CheckFoldableChainNode,
/*302728*/                OPC_RecordChild1, // #2 = $src2
/*302729*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*302731*/                OPC_CheckPredicate, 9, // Predicate_load
/*302733*/                OPC_MoveParent,
/*302734*/                OPC_RecordChild1, // #3 = $src1
/*302735*/                OPC_MoveParent,
/*302736*/                OPC_RecordChild2, // #4 = $src0
/*302737*/                OPC_SwitchType /*2 cases */, 20, MVT::v8f64,// ->302760
/*302740*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*302742*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*302745*/                  OPC_EmitMergeInputChains1_1,
/*302746*/                  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>>, VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                            // Dst: (VMULPDZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*302760*/                /*SwitchType*/ 20, MVT::v8f32,// ->302782
/*302762*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*302764*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*302767*/                  OPC_EmitMergeInputChains1_1,
/*302768*/                  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>>, VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                            // Dst: (VMULPSZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*302782*/                0, // EndSwitchType
/*302783*/              /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->302850
/*302786*/                OPC_RecordMemRef,
/*302787*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*302788*/                OPC_CheckFoldableChainNode,
/*302789*/                OPC_RecordChild1, // #2 = $src2
/*302790*/                OPC_Scope, 28, /*->302820*/ // 2 children in Scope
/*302792*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*302794*/                  OPC_MoveParent,
/*302795*/                  OPC_RecordChild1, // #3 = $src1
/*302796*/                  OPC_MoveParent,
/*302797*/                  OPC_RecordChild2, // #4 = $src0
/*302798*/                  OPC_CheckType, MVT::v8f64,
/*302800*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*302802*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*302805*/                  OPC_EmitMergeInputChains1_1,
/*302806*/                  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] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                            // Dst: (VMULPDZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*302820*/                /*Scope*/ 28, /*->302849*/
/*302821*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*302823*/                  OPC_MoveParent,
/*302824*/                  OPC_RecordChild1, // #3 = $src1
/*302825*/                  OPC_MoveParent,
/*302826*/                  OPC_RecordChild2, // #4 = $src0
/*302827*/                  OPC_CheckType, MVT::v8f32,
/*302829*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*302831*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*302834*/                  OPC_EmitMergeInputChains1_1,
/*302835*/                  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] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                            // Dst: (VMULPSZ256rmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*302849*/                0, /*End of Scope*/
/*302850*/              0, // EndSwitchOpcode
/*302851*/            0, /*End of Scope*/
/*302852*/          /*SwitchOpcode*/ 15|128,1/*143*/, TARGET_VAL(ISD::STRICT_FSUB),// ->302999
/*302856*/            OPC_RecordNode, // #1 = 'strict_fsub' chained node
/*302857*/            OPC_CheckFoldableChainNode,
/*302858*/            OPC_RecordChild1, // #2 = $src1
/*302859*/            OPC_MoveChild2,
/*302860*/            OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->302927
/*302864*/              OPC_RecordMemRef,
/*302865*/              OPC_RecordNode, // #3 = 'ld' chained node
/*302866*/              OPC_CheckFoldableChainNode,
/*302867*/              OPC_RecordChild1, // #4 = $src2
/*302868*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*302870*/              OPC_CheckPredicate, 9, // Predicate_load
/*302872*/              OPC_MoveParent,
/*302873*/              OPC_MoveParent,
/*302874*/              OPC_RecordChild2, // #5 = $src0
/*302875*/              OPC_SwitchType /*2 cases */, 23, MVT::v8f64,// ->302901
/*302878*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*302880*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*302883*/                OPC_EmitMergeInputChains, 2, 1, 3, 
/*302887*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (strict_fsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                          // Dst: (VSUBPDZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*302901*/              /*SwitchType*/ 23, MVT::v8f32,// ->302926
/*302903*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*302905*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*302908*/                OPC_EmitMergeInputChains, 2, 1, 3, 
/*302912*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (strict_fsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                          // Dst: (VSUBPSZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*302926*/              0, // EndSwitchType
/*302927*/            /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->302998
/*302930*/              OPC_RecordMemRef,
/*302931*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*302932*/              OPC_CheckFoldableChainNode,
/*302933*/              OPC_RecordChild1, // #4 = $src2
/*302934*/              OPC_Scope, 30, /*->302966*/ // 2 children in Scope
/*302936*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*302938*/                OPC_MoveParent,
/*302939*/                OPC_MoveParent,
/*302940*/                OPC_RecordChild2, // #5 = $src0
/*302941*/                OPC_CheckType, MVT::v8f64,
/*302943*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*302945*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*302948*/                OPC_EmitMergeInputChains, 2, 1, 3, 
/*302952*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (strict_fsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                          // Dst: (VSUBPDZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*302966*/              /*Scope*/ 30, /*->302997*/
/*302967*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*302969*/                OPC_MoveParent,
/*302970*/                OPC_MoveParent,
/*302971*/                OPC_RecordChild2, // #5 = $src0
/*302972*/                OPC_CheckType, MVT::v8f32,
/*302974*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*302976*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*302979*/                OPC_EmitMergeInputChains, 2, 1, 3, 
/*302983*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (strict_fsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                          // Dst: (VSUBPSZ256rmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*302997*/              0, /*End of Scope*/
/*302998*/            0, // EndSwitchOpcode
/*302999*/          /*SwitchOpcode*/ 1|128,1/*129*/, TARGET_VAL(ISD::FSUB),// ->303132
/*303003*/            OPC_RecordChild0, // #1 = $src1
/*303004*/            OPC_MoveChild1,
/*303005*/            OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->303066
/*303009*/              OPC_RecordMemRef,
/*303010*/              OPC_RecordNode, // #2 = 'ld' chained node
/*303011*/              OPC_CheckFoldableChainNode,
/*303012*/              OPC_RecordChild1, // #3 = $src2
/*303013*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*303015*/              OPC_CheckPredicate, 9, // Predicate_load
/*303017*/              OPC_MoveParent,
/*303018*/              OPC_MoveParent,
/*303019*/              OPC_RecordChild2, // #4 = $src0
/*303020*/              OPC_SwitchType /*2 cases */, 20, MVT::v8f64,// ->303043
/*303023*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*303025*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*303028*/                OPC_EmitMergeInputChains1_2,
/*303029*/                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>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                          // Dst: (VSUBPDZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*303043*/              /*SwitchType*/ 20, MVT::v8f32,// ->303065
/*303045*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*303047*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*303050*/                OPC_EmitMergeInputChains1_2,
/*303051*/                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>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                          // Dst: (VSUBPSZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*303065*/              0, // EndSwitchType
/*303066*/            /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->303131
/*303069*/              OPC_RecordMemRef,
/*303070*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*303071*/              OPC_CheckFoldableChainNode,
/*303072*/              OPC_RecordChild1, // #3 = $src2
/*303073*/              OPC_Scope, 27, /*->303102*/ // 2 children in Scope
/*303075*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*303077*/                OPC_MoveParent,
/*303078*/                OPC_MoveParent,
/*303079*/                OPC_RecordChild2, // #4 = $src0
/*303080*/                OPC_CheckType, MVT::v8f64,
/*303082*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*303084*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*303087*/                OPC_EmitMergeInputChains1_2,
/*303088*/                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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                          // Dst: (VSUBPDZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*303102*/              /*Scope*/ 27, /*->303130*/
/*303103*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*303105*/                OPC_MoveParent,
/*303106*/                OPC_MoveParent,
/*303107*/                OPC_RecordChild2, // #4 = $src0
/*303108*/                OPC_CheckType, MVT::v8f32,
/*303110*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*303112*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*303115*/                OPC_EmitMergeInputChains1_2,
/*303116*/                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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                          // Dst: (VSUBPSZ256rmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*303130*/              0, /*End of Scope*/
/*303131*/            0, // EndSwitchOpcode
/*303132*/          /*SwitchOpcode*/ 15|128,1/*143*/, TARGET_VAL(ISD::STRICT_FDIV),// ->303279
/*303136*/            OPC_RecordNode, // #1 = 'strict_fdiv' chained node
/*303137*/            OPC_CheckFoldableChainNode,
/*303138*/            OPC_RecordChild1, // #2 = $src1
/*303139*/            OPC_MoveChild2,
/*303140*/            OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->303207
/*303144*/              OPC_RecordMemRef,
/*303145*/              OPC_RecordNode, // #3 = 'ld' chained node
/*303146*/              OPC_CheckFoldableChainNode,
/*303147*/              OPC_RecordChild1, // #4 = $src2
/*303148*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*303150*/              OPC_CheckPredicate, 9, // Predicate_load
/*303152*/              OPC_MoveParent,
/*303153*/              OPC_MoveParent,
/*303154*/              OPC_RecordChild2, // #5 = $src0
/*303155*/              OPC_SwitchType /*2 cases */, 23, MVT::v8f64,// ->303181
/*303158*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*303160*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*303163*/                OPC_EmitMergeInputChains, 2, 1, 3, 
/*303167*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (strict_fdiv:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                          // Dst: (VDIVPDZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*303181*/              /*SwitchType*/ 23, MVT::v8f32,// ->303206
/*303183*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*303185*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*303188*/                OPC_EmitMergeInputChains, 2, 1, 3, 
/*303192*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (strict_fdiv:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                          // Dst: (VDIVPSZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*303206*/              0, // EndSwitchType
/*303207*/            /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->303278
/*303210*/              OPC_RecordMemRef,
/*303211*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*303212*/              OPC_CheckFoldableChainNode,
/*303213*/              OPC_RecordChild1, // #4 = $src2
/*303214*/              OPC_Scope, 30, /*->303246*/ // 2 children in Scope
/*303216*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*303218*/                OPC_MoveParent,
/*303219*/                OPC_MoveParent,
/*303220*/                OPC_RecordChild2, // #5 = $src0
/*303221*/                OPC_CheckType, MVT::v8f64,
/*303223*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*303225*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*303228*/                OPC_EmitMergeInputChains, 2, 1, 3, 
/*303232*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (strict_fdiv:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                          // Dst: (VDIVPDZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*303246*/              /*Scope*/ 30, /*->303277*/
/*303247*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*303249*/                OPC_MoveParent,
/*303250*/                OPC_MoveParent,
/*303251*/                OPC_RecordChild2, // #5 = $src0
/*303252*/                OPC_CheckType, MVT::v8f32,
/*303254*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*303256*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*303259*/                OPC_EmitMergeInputChains, 2, 1, 3, 
/*303263*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (strict_fdiv:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                          // Dst: (VDIVPSZ256rmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*303277*/              0, /*End of Scope*/
/*303278*/            0, // EndSwitchOpcode
/*303279*/          /*SwitchOpcode*/ 1|128,1/*129*/, TARGET_VAL(ISD::FDIV),// ->303412
/*303283*/            OPC_RecordChild0, // #1 = $src1
/*303284*/            OPC_MoveChild1,
/*303285*/            OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->303346
/*303289*/              OPC_RecordMemRef,
/*303290*/              OPC_RecordNode, // #2 = 'ld' chained node
/*303291*/              OPC_CheckFoldableChainNode,
/*303292*/              OPC_RecordChild1, // #3 = $src2
/*303293*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*303295*/              OPC_CheckPredicate, 9, // Predicate_load
/*303297*/              OPC_MoveParent,
/*303298*/              OPC_MoveParent,
/*303299*/              OPC_RecordChild2, // #4 = $src0
/*303300*/              OPC_SwitchType /*2 cases */, 20, MVT::v8f64,// ->303323
/*303303*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*303305*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*303308*/                OPC_EmitMergeInputChains1_2,
/*303309*/                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>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                          // Dst: (VDIVPDZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*303323*/              /*SwitchType*/ 20, MVT::v8f32,// ->303345
/*303325*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*303327*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*303330*/                OPC_EmitMergeInputChains1_2,
/*303331*/                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>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                          // Dst: (VDIVPSZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*303345*/              0, // EndSwitchType
/*303346*/            /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->303411
/*303349*/              OPC_RecordMemRef,
/*303350*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*303351*/              OPC_CheckFoldableChainNode,
/*303352*/              OPC_RecordChild1, // #3 = $src2
/*303353*/              OPC_Scope, 27, /*->303382*/ // 2 children in Scope
/*303355*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*303357*/                OPC_MoveParent,
/*303358*/                OPC_MoveParent,
/*303359*/                OPC_RecordChild2, // #4 = $src0
/*303360*/                OPC_CheckType, MVT::v8f64,
/*303362*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*303364*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*303367*/                OPC_EmitMergeInputChains1_2,
/*303368*/                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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                          // Dst: (VDIVPDZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*303382*/              /*Scope*/ 27, /*->303410*/
/*303383*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*303385*/                OPC_MoveParent,
/*303386*/                OPC_MoveParent,
/*303387*/                OPC_RecordChild2, // #4 = $src0
/*303388*/                OPC_CheckType, MVT::v8f32,
/*303390*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*303392*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*303395*/                OPC_EmitMergeInputChains1_2,
/*303396*/                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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                          // Dst: (VDIVPSZ256rmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*303410*/              0, /*End of Scope*/
/*303411*/            0, // EndSwitchOpcode
/*303412*/          /*SwitchOpcode*/ 1|128,1/*129*/, TARGET_VAL(X86ISD::FMIN),// ->303545
/*303416*/            OPC_RecordChild0, // #1 = $src1
/*303417*/            OPC_MoveChild1,
/*303418*/            OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->303479
/*303422*/              OPC_RecordMemRef,
/*303423*/              OPC_RecordNode, // #2 = 'ld' chained node
/*303424*/              OPC_CheckFoldableChainNode,
/*303425*/              OPC_RecordChild1, // #3 = $src2
/*303426*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*303428*/              OPC_CheckPredicate, 9, // Predicate_load
/*303430*/              OPC_MoveParent,
/*303431*/              OPC_MoveParent,
/*303432*/              OPC_RecordChild2, // #4 = $src0
/*303433*/              OPC_SwitchType /*2 cases */, 20, MVT::v8f64,// ->303456
/*303436*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*303438*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*303441*/                OPC_EmitMergeInputChains1_2,
/*303442*/                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>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                          // Dst: (VMINPDZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*303456*/              /*SwitchType*/ 20, MVT::v8f32,// ->303478
/*303458*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*303460*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*303463*/                OPC_EmitMergeInputChains1_2,
/*303464*/                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>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                          // Dst: (VMINPSZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*303478*/              0, // EndSwitchType
/*303479*/            /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->303544
/*303482*/              OPC_RecordMemRef,
/*303483*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*303484*/              OPC_CheckFoldableChainNode,
/*303485*/              OPC_RecordChild1, // #3 = $src2
/*303486*/              OPC_Scope, 27, /*->303515*/ // 2 children in Scope
/*303488*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*303490*/                OPC_MoveParent,
/*303491*/                OPC_MoveParent,
/*303492*/                OPC_RecordChild2, // #4 = $src0
/*303493*/                OPC_CheckType, MVT::v8f64,
/*303495*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*303497*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*303500*/                OPC_EmitMergeInputChains1_2,
/*303501*/                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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                          // Dst: (VMINPDZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*303515*/              /*Scope*/ 27, /*->303543*/
/*303516*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*303518*/                OPC_MoveParent,
/*303519*/                OPC_MoveParent,
/*303520*/                OPC_RecordChild2, // #4 = $src0
/*303521*/                OPC_CheckType, MVT::v8f32,
/*303523*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*303525*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*303528*/                OPC_EmitMergeInputChains1_2,
/*303529*/                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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                          // Dst: (VMINPSZ256rmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*303543*/              0, /*End of Scope*/
/*303544*/            0, // EndSwitchOpcode
/*303545*/          /*SwitchOpcode*/ 1|128,1/*129*/, TARGET_VAL(X86ISD::FMAX),// ->303678
/*303549*/            OPC_RecordChild0, // #1 = $src1
/*303550*/            OPC_MoveChild1,
/*303551*/            OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->303612
/*303555*/              OPC_RecordMemRef,
/*303556*/              OPC_RecordNode, // #2 = 'ld' chained node
/*303557*/              OPC_CheckFoldableChainNode,
/*303558*/              OPC_RecordChild1, // #3 = $src2
/*303559*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*303561*/              OPC_CheckPredicate, 9, // Predicate_load
/*303563*/              OPC_MoveParent,
/*303564*/              OPC_MoveParent,
/*303565*/              OPC_RecordChild2, // #4 = $src0
/*303566*/              OPC_SwitchType /*2 cases */, 20, MVT::v8f64,// ->303589
/*303569*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*303571*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*303574*/                OPC_EmitMergeInputChains1_2,
/*303575*/                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>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                          // Dst: (VMAXPDZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*303589*/              /*SwitchType*/ 20, MVT::v8f32,// ->303611
/*303591*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*303593*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*303596*/                OPC_EmitMergeInputChains1_2,
/*303597*/                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>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                          // Dst: (VMAXPSZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*303611*/              0, // EndSwitchType
/*303612*/            /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->303677
/*303615*/              OPC_RecordMemRef,
/*303616*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*303617*/              OPC_CheckFoldableChainNode,
/*303618*/              OPC_RecordChild1, // #3 = $src2
/*303619*/              OPC_Scope, 27, /*->303648*/ // 2 children in Scope
/*303621*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*303623*/                OPC_MoveParent,
/*303624*/                OPC_MoveParent,
/*303625*/                OPC_RecordChild2, // #4 = $src0
/*303626*/                OPC_CheckType, MVT::v8f64,
/*303628*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*303630*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*303633*/                OPC_EmitMergeInputChains1_2,
/*303634*/                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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                          // Dst: (VMAXPDZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*303648*/              /*Scope*/ 27, /*->303676*/
/*303649*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*303651*/                OPC_MoveParent,
/*303652*/                OPC_MoveParent,
/*303653*/                OPC_RecordChild2, // #4 = $src0
/*303654*/                OPC_CheckType, MVT::v8f32,
/*303656*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*303658*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*303661*/                OPC_EmitMergeInputChains1_2,
/*303662*/                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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                          // Dst: (VMAXPSZ256rmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*303676*/              0, /*End of Scope*/
/*303677*/            0, // EndSwitchOpcode
/*303678*/          /*SwitchOpcode*/ 10|128,2/*266*/, TARGET_VAL(X86ISD::FMINC),// ->303948
/*303682*/            OPC_Scope, 1|128,1/*129*/, /*->303814*/ // 2 children in Scope
/*303685*/              OPC_RecordChild0, // #1 = $src1
/*303686*/              OPC_MoveChild1,
/*303687*/              OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->303748
/*303691*/                OPC_RecordMemRef,
/*303692*/                OPC_RecordNode, // #2 = 'ld' chained node
/*303693*/                OPC_CheckFoldableChainNode,
/*303694*/                OPC_RecordChild1, // #3 = $src2
/*303695*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*303697*/                OPC_CheckPredicate, 9, // Predicate_load
/*303699*/                OPC_MoveParent,
/*303700*/                OPC_MoveParent,
/*303701*/                OPC_RecordChild2, // #4 = $src0
/*303702*/                OPC_SwitchType /*2 cases */, 20, MVT::v8f64,// ->303725
/*303705*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*303707*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*303710*/                  OPC_EmitMergeInputChains1_2,
/*303711*/                  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>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                            // Dst: (VMINCPDZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*303725*/                /*SwitchType*/ 20, MVT::v8f32,// ->303747
/*303727*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*303729*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*303732*/                  OPC_EmitMergeInputChains1_2,
/*303733*/                  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>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                            // Dst: (VMINCPSZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*303747*/                0, // EndSwitchType
/*303748*/              /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->303813
/*303751*/                OPC_RecordMemRef,
/*303752*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*303753*/                OPC_CheckFoldableChainNode,
/*303754*/                OPC_RecordChild1, // #3 = $src2
/*303755*/                OPC_Scope, 27, /*->303784*/ // 2 children in Scope
/*303757*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*303759*/                  OPC_MoveParent,
/*303760*/                  OPC_MoveParent,
/*303761*/                  OPC_RecordChild2, // #4 = $src0
/*303762*/                  OPC_CheckType, MVT::v8f64,
/*303764*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*303766*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*303769*/                  OPC_EmitMergeInputChains1_2,
/*303770*/                  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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                            // Dst: (VMINCPDZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*303784*/                /*Scope*/ 27, /*->303812*/
/*303785*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*303787*/                  OPC_MoveParent,
/*303788*/                  OPC_MoveParent,
/*303789*/                  OPC_RecordChild2, // #4 = $src0
/*303790*/                  OPC_CheckType, MVT::v8f32,
/*303792*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*303794*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*303797*/                  OPC_EmitMergeInputChains1_2,
/*303798*/                  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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                            // Dst: (VMINCPSZ256rmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*303812*/                0, /*End of Scope*/
/*303813*/              0, // EndSwitchOpcode
/*303814*/            /*Scope*/ 3|128,1/*131*/, /*->303947*/
/*303816*/              OPC_MoveChild0,
/*303817*/              OPC_SwitchOpcode /*2 cases */, 58, TARGET_VAL(ISD::LOAD),// ->303879
/*303821*/                OPC_RecordMemRef,
/*303822*/                OPC_RecordNode, // #1 = 'ld' chained node
/*303823*/                OPC_CheckFoldableChainNode,
/*303824*/                OPC_RecordChild1, // #2 = $src2
/*303825*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*303827*/                OPC_CheckPredicate, 9, // Predicate_load
/*303829*/                OPC_MoveParent,
/*303830*/                OPC_RecordChild1, // #3 = $src1
/*303831*/                OPC_MoveParent,
/*303832*/                OPC_RecordChild2, // #4 = $src0
/*303833*/                OPC_SwitchType /*2 cases */, 20, MVT::v8f64,// ->303856
/*303836*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*303838*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*303841*/                  OPC_EmitMergeInputChains1_1,
/*303842*/                  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>>, VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                            // Dst: (VMINCPDZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*303856*/                /*SwitchType*/ 20, MVT::v8f32,// ->303878
/*303858*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*303860*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*303863*/                  OPC_EmitMergeInputChains1_1,
/*303864*/                  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>>, VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                            // Dst: (VMINCPSZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*303878*/                0, // EndSwitchType
/*303879*/              /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->303946
/*303882*/                OPC_RecordMemRef,
/*303883*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*303884*/                OPC_CheckFoldableChainNode,
/*303885*/                OPC_RecordChild1, // #2 = $src2
/*303886*/                OPC_Scope, 28, /*->303916*/ // 2 children in Scope
/*303888*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*303890*/                  OPC_MoveParent,
/*303891*/                  OPC_RecordChild1, // #3 = $src1
/*303892*/                  OPC_MoveParent,
/*303893*/                  OPC_RecordChild2, // #4 = $src0
/*303894*/                  OPC_CheckType, MVT::v8f64,
/*303896*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*303898*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*303901*/                  OPC_EmitMergeInputChains1_1,
/*303902*/                  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] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                            // Dst: (VMINCPDZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*303916*/                /*Scope*/ 28, /*->303945*/
/*303917*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*303919*/                  OPC_MoveParent,
/*303920*/                  OPC_RecordChild1, // #3 = $src1
/*303921*/                  OPC_MoveParent,
/*303922*/                  OPC_RecordChild2, // #4 = $src0
/*303923*/                  OPC_CheckType, MVT::v8f32,
/*303925*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*303927*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*303930*/                  OPC_EmitMergeInputChains1_1,
/*303931*/                  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] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                            // Dst: (VMINCPSZ256rmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*303945*/                0, /*End of Scope*/
/*303946*/              0, // EndSwitchOpcode
/*303947*/            0, /*End of Scope*/
/*303948*/          /*SwitchOpcode*/ 10|128,2/*266*/, TARGET_VAL(X86ISD::FMAXC),// ->304218
/*303952*/            OPC_Scope, 1|128,1/*129*/, /*->304084*/ // 2 children in Scope
/*303955*/              OPC_RecordChild0, // #1 = $src1
/*303956*/              OPC_MoveChild1,
/*303957*/              OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->304018
/*303961*/                OPC_RecordMemRef,
/*303962*/                OPC_RecordNode, // #2 = 'ld' chained node
/*303963*/                OPC_CheckFoldableChainNode,
/*303964*/                OPC_RecordChild1, // #3 = $src2
/*303965*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*303967*/                OPC_CheckPredicate, 9, // Predicate_load
/*303969*/                OPC_MoveParent,
/*303970*/                OPC_MoveParent,
/*303971*/                OPC_RecordChild2, // #4 = $src0
/*303972*/                OPC_SwitchType /*2 cases */, 20, MVT::v8f64,// ->303995
/*303975*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*303977*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*303980*/                  OPC_EmitMergeInputChains1_2,
/*303981*/                  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>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                            // Dst: (VMAXCPDZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*303995*/                /*SwitchType*/ 20, MVT::v8f32,// ->304017
/*303997*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*303999*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*304002*/                  OPC_EmitMergeInputChains1_2,
/*304003*/                  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>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                            // Dst: (VMAXCPSZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*304017*/                0, // EndSwitchType
/*304018*/              /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->304083
/*304021*/                OPC_RecordMemRef,
/*304022*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*304023*/                OPC_CheckFoldableChainNode,
/*304024*/                OPC_RecordChild1, // #3 = $src2
/*304025*/                OPC_Scope, 27, /*->304054*/ // 2 children in Scope
/*304027*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*304029*/                  OPC_MoveParent,
/*304030*/                  OPC_MoveParent,
/*304031*/                  OPC_RecordChild2, // #4 = $src0
/*304032*/                  OPC_CheckType, MVT::v8f64,
/*304034*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*304036*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*304039*/                  OPC_EmitMergeInputChains1_2,
/*304040*/                  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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                            // Dst: (VMAXCPDZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*304054*/                /*Scope*/ 27, /*->304082*/
/*304055*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*304057*/                  OPC_MoveParent,
/*304058*/                  OPC_MoveParent,
/*304059*/                  OPC_RecordChild2, // #4 = $src0
/*304060*/                  OPC_CheckType, MVT::v8f32,
/*304062*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*304064*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*304067*/                  OPC_EmitMergeInputChains1_2,
/*304068*/                  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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                            // Dst: (VMAXCPSZ256rmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*304082*/                0, /*End of Scope*/
/*304083*/              0, // EndSwitchOpcode
/*304084*/            /*Scope*/ 3|128,1/*131*/, /*->304217*/
/*304086*/              OPC_MoveChild0,
/*304087*/              OPC_SwitchOpcode /*2 cases */, 58, TARGET_VAL(ISD::LOAD),// ->304149
/*304091*/                OPC_RecordMemRef,
/*304092*/                OPC_RecordNode, // #1 = 'ld' chained node
/*304093*/                OPC_CheckFoldableChainNode,
/*304094*/                OPC_RecordChild1, // #2 = $src2
/*304095*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*304097*/                OPC_CheckPredicate, 9, // Predicate_load
/*304099*/                OPC_MoveParent,
/*304100*/                OPC_RecordChild1, // #3 = $src1
/*304101*/                OPC_MoveParent,
/*304102*/                OPC_RecordChild2, // #4 = $src0
/*304103*/                OPC_SwitchType /*2 cases */, 20, MVT::v8f64,// ->304126
/*304106*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*304108*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*304111*/                  OPC_EmitMergeInputChains1_1,
/*304112*/                  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>>, VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                            // Dst: (VMAXCPDZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*304126*/                /*SwitchType*/ 20, MVT::v8f32,// ->304148
/*304128*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*304130*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*304133*/                  OPC_EmitMergeInputChains1_1,
/*304134*/                  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>>, VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                            // Dst: (VMAXCPSZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*304148*/                0, // EndSwitchType
/*304149*/              /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->304216
/*304152*/                OPC_RecordMemRef,
/*304153*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*304154*/                OPC_CheckFoldableChainNode,
/*304155*/                OPC_RecordChild1, // #2 = $src2
/*304156*/                OPC_Scope, 28, /*->304186*/ // 2 children in Scope
/*304158*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*304160*/                  OPC_MoveParent,
/*304161*/                  OPC_RecordChild1, // #3 = $src1
/*304162*/                  OPC_MoveParent,
/*304163*/                  OPC_RecordChild2, // #4 = $src0
/*304164*/                  OPC_CheckType, MVT::v8f64,
/*304166*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*304168*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*304171*/                  OPC_EmitMergeInputChains1_1,
/*304172*/                  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] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                            // Dst: (VMAXCPDZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*304186*/                /*Scope*/ 28, /*->304215*/
/*304187*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*304189*/                  OPC_MoveParent,
/*304190*/                  OPC_RecordChild1, // #3 = $src1
/*304191*/                  OPC_MoveParent,
/*304192*/                  OPC_RecordChild2, // #4 = $src0
/*304193*/                  OPC_CheckType, MVT::v8f32,
/*304195*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*304197*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*304200*/                  OPC_EmitMergeInputChains1_1,
/*304201*/                  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] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                            // Dst: (VMAXCPSZ256rmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*304215*/                0, /*End of Scope*/
/*304216*/              0, // EndSwitchOpcode
/*304217*/            0, /*End of Scope*/
/*304218*/          /*SwitchOpcode*/ 1|128,1/*129*/, TARGET_VAL(X86ISD::SCALEF),// ->304351
/*304222*/            OPC_RecordChild0, // #1 = $src1
/*304223*/            OPC_MoveChild1,
/*304224*/            OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->304285
/*304228*/              OPC_RecordMemRef,
/*304229*/              OPC_RecordNode, // #2 = 'ld' chained node
/*304230*/              OPC_CheckFoldableChainNode,
/*304231*/              OPC_RecordChild1, // #3 = $src2
/*304232*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*304234*/              OPC_CheckPredicate, 9, // Predicate_load
/*304236*/              OPC_MoveParent,
/*304237*/              OPC_MoveParent,
/*304238*/              OPC_RecordChild2, // #4 = $src0
/*304239*/              OPC_SwitchType /*2 cases */, 20, MVT::v8f64,// ->304262
/*304242*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*304244*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*304247*/                OPC_EmitMergeInputChains1_2,
/*304248*/                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>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                          // Dst: (VSCALEFPDZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*304262*/              /*SwitchType*/ 20, MVT::v8f32,// ->304284
/*304264*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*304266*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*304269*/                OPC_EmitMergeInputChains1_2,
/*304270*/                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>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                          // Dst: (VSCALEFPSZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*304284*/              0, // EndSwitchType
/*304285*/            /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->304350
/*304288*/              OPC_RecordMemRef,
/*304289*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*304290*/              OPC_CheckFoldableChainNode,
/*304291*/              OPC_RecordChild1, // #3 = $src2
/*304292*/              OPC_Scope, 27, /*->304321*/ // 2 children in Scope
/*304294*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*304296*/                OPC_MoveParent,
/*304297*/                OPC_MoveParent,
/*304298*/                OPC_RecordChild2, // #4 = $src0
/*304299*/                OPC_CheckType, MVT::v8f64,
/*304301*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*304303*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*304306*/                OPC_EmitMergeInputChains1_2,
/*304307*/                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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                          // Dst: (VSCALEFPDZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*304321*/              /*Scope*/ 27, /*->304349*/
/*304322*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*304324*/                OPC_MoveParent,
/*304325*/                OPC_MoveParent,
/*304326*/                OPC_RecordChild2, // #4 = $src0
/*304327*/                OPC_CheckType, MVT::v8f32,
/*304329*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*304331*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*304334*/                OPC_EmitMergeInputChains1_2,
/*304335*/                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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                          // Dst: (VSCALEFPSZ256rmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*304349*/              0, /*End of Scope*/
/*304350*/            0, // EndSwitchOpcode
/*304351*/          /*SwitchOpcode*/ 1|128,1/*129*/, TARGET_VAL(X86ISD::VPERMV),// ->304484
/*304355*/            OPC_RecordChild0, // #1 = $src1
/*304356*/            OPC_MoveChild1,
/*304357*/            OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->304418
/*304361*/              OPC_RecordMemRef,
/*304362*/              OPC_RecordNode, // #2 = 'ld' chained node
/*304363*/              OPC_CheckFoldableChainNode,
/*304364*/              OPC_RecordChild1, // #3 = $src2
/*304365*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*304367*/              OPC_CheckPredicate, 9, // Predicate_load
/*304369*/              OPC_MoveParent,
/*304370*/              OPC_MoveParent,
/*304371*/              OPC_RecordChild2, // #4 = $src0
/*304372*/              OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->304395
/*304375*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*304377*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*304380*/                OPC_EmitMergeInputChains1_2,
/*304381*/                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>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                          // Dst: (VPERMPSZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*304395*/              /*SwitchType*/ 20, MVT::v8f64,// ->304417
/*304397*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*304399*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*304402*/                OPC_EmitMergeInputChains1_2,
/*304403*/                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>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                          // Dst: (VPERMPDZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*304417*/              0, // EndSwitchType
/*304418*/            /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->304483
/*304421*/              OPC_RecordMemRef,
/*304422*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*304423*/              OPC_CheckFoldableChainNode,
/*304424*/              OPC_RecordChild1, // #3 = $src2
/*304425*/              OPC_Scope, 27, /*->304454*/ // 2 children in Scope
/*304427*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*304429*/                OPC_MoveParent,
/*304430*/                OPC_MoveParent,
/*304431*/                OPC_RecordChild2, // #4 = $src0
/*304432*/                OPC_CheckType, MVT::v8f32,
/*304434*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*304436*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*304439*/                OPC_EmitMergeInputChains1_2,
/*304440*/                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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                          // Dst: (VPERMPSZ256rmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*304454*/              /*Scope*/ 27, /*->304482*/
/*304455*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*304457*/                OPC_MoveParent,
/*304458*/                OPC_MoveParent,
/*304459*/                OPC_RecordChild2, // #4 = $src0
/*304460*/                OPC_CheckType, MVT::v8f64,
/*304462*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*304464*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*304467*/                OPC_EmitMergeInputChains1_2,
/*304468*/                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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                          // Dst: (VPERMPDZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*304482*/              0, /*End of Scope*/
/*304483*/            0, // EndSwitchOpcode
/*304484*/          /*SwitchOpcode*/ 1|128,1/*129*/, TARGET_VAL(X86ISD::VPERMILPV),// ->304617
/*304488*/            OPC_RecordChild0, // #1 = $src1
/*304489*/            OPC_MoveChild1,
/*304490*/            OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->304551
/*304494*/              OPC_RecordMemRef,
/*304495*/              OPC_RecordNode, // #2 = 'ld' chained node
/*304496*/              OPC_CheckFoldableChainNode,
/*304497*/              OPC_RecordChild1, // #3 = $src2
/*304498*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*304500*/              OPC_CheckPredicate, 9, // Predicate_load
/*304502*/              OPC_MoveParent,
/*304503*/              OPC_MoveParent,
/*304504*/              OPC_RecordChild2, // #4 = $src0
/*304505*/              OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->304528
/*304508*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*304510*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*304513*/                OPC_EmitMergeInputChains1_2,
/*304514*/                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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                          // Dst: (VPERMILPSZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*304528*/              /*SwitchType*/ 20, MVT::v8f64,// ->304550
/*304530*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*304532*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*304535*/                OPC_EmitMergeInputChains1_2,
/*304536*/                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>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                          // Dst: (VPERMILPDZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*304550*/              0, // EndSwitchType
/*304551*/            /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->304616
/*304554*/              OPC_RecordMemRef,
/*304555*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*304556*/              OPC_CheckFoldableChainNode,
/*304557*/              OPC_RecordChild1, // #3 = $src2
/*304558*/              OPC_Scope, 27, /*->304587*/ // 2 children in Scope
/*304560*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*304562*/                OPC_MoveParent,
/*304563*/                OPC_MoveParent,
/*304564*/                OPC_RecordChild2, // #4 = $src0
/*304565*/                OPC_CheckType, MVT::v8f32,
/*304567*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*304569*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*304572*/                OPC_EmitMergeInputChains1_2,
/*304573*/                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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                          // Dst: (VPERMILPSZ256rmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*304587*/              /*Scope*/ 27, /*->304615*/
/*304588*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*304590*/                OPC_MoveParent,
/*304591*/                OPC_MoveParent,
/*304592*/                OPC_RecordChild2, // #4 = $src0
/*304593*/                OPC_CheckType, MVT::v8f64,
/*304595*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*304597*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*304600*/                OPC_EmitMergeInputChains1_2,
/*304601*/                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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                          // Dst: (VPERMILPDZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*304615*/              0, /*End of Scope*/
/*304616*/            0, // EndSwitchOpcode
/*304617*/          /*SwitchOpcode*/ 5|128,7/*901*/, TARGET_VAL(ISD::STRICT_FMA),// ->305522
/*304621*/            OPC_RecordNode, // #1 = 'X86strict_Fmadd' chained node
/*304622*/            OPC_CheckFoldableChainNode,
/*304623*/            OPC_Scope, 41|128,2/*297*/, /*->304923*/ // 5 children in Scope
/*304626*/              OPC_RecordChild1, // #2 = $src2
/*304627*/              OPC_Scope, 16|128,1/*144*/, /*->304774*/ // 2 children in Scope
/*304630*/                OPC_RecordChild2, // #3 = $src1
/*304631*/                OPC_MoveChild3,
/*304632*/                OPC_SwitchOpcode /*2 cases */, 64, TARGET_VAL(ISD::LOAD),// ->304700
/*304636*/                  OPC_RecordMemRef,
/*304637*/                  OPC_RecordNode, // #4 = 'ld' chained node
/*304638*/                  OPC_CheckFoldableChainNode,
/*304639*/                  OPC_RecordChild1, // #5 = $src3
/*304640*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*304642*/                  OPC_CheckPredicate, 9, // Predicate_load
/*304644*/                  OPC_MoveParent,
/*304645*/                  OPC_MoveParent,
/*304646*/                  OPC_CheckChild2Same, 3,
/*304648*/                  OPC_SwitchType /*2 cases */, 23, MVT::v8f32,// ->304674
/*304651*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*304653*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/5, // selectAddr:$src3 #6 #7 #8 #9 #10
/*304656*/                    OPC_EmitMergeInputChains, 2, 1, 4, 
/*304660*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f32, 8/*#Ops*/, 3, 0, 2, 6, 7, 8, 9, 10, 
                              // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_Fmadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                              // Dst: (VFMADD213PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*304674*/                  /*SwitchType*/ 23, MVT::v8f64,// ->304699
/*304676*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*304678*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/5, // selectAddr:$src3 #6 #7 #8 #9 #10
/*304681*/                    OPC_EmitMergeInputChains, 2, 1, 4, 
/*304685*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZmk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f64, 8/*#Ops*/, 3, 0, 2, 6, 7, 8, 9, 10, 
                              // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_Fmadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                              // Dst: (VFMADD213PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*304699*/                  0, // EndSwitchType
/*304700*/                /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->304773
/*304703*/                  OPC_RecordMemRef,
/*304704*/                  OPC_RecordNode, // #4 = 'X86VBroadcastld' chained node
/*304705*/                  OPC_CheckFoldableChainNode,
/*304706*/                  OPC_RecordChild1, // #5 = $src3
/*304707*/                  OPC_Scope, 31, /*->304740*/ // 2 children in Scope
/*304709*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*304711*/                    OPC_MoveParent,
/*304712*/                    OPC_MoveParent,
/*304713*/                    OPC_CheckChild2Same, 3,
/*304715*/                    OPC_CheckType, MVT::v8f32,
/*304717*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*304719*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/5, // selectAddr:$src3 #6 #7 #8 #9 #10
/*304722*/                    OPC_EmitMergeInputChains, 2, 1, 4, 
/*304726*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f32, 8/*#Ops*/, 3, 0, 2, 6, 7, 8, 9, 10, 
                              // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_Fmadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                              // Dst: (VFMADD213PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*304740*/                  /*Scope*/ 31, /*->304772*/
/*304741*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*304743*/                    OPC_MoveParent,
/*304744*/                    OPC_MoveParent,
/*304745*/                    OPC_CheckChild2Same, 3,
/*304747*/                    OPC_CheckType, MVT::v8f64,
/*304749*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*304751*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/5, // selectAddr:$src3 #6 #7 #8 #9 #10
/*304754*/                    OPC_EmitMergeInputChains, 2, 1, 4, 
/*304758*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f64, 8/*#Ops*/, 3, 0, 2, 6, 7, 8, 9, 10, 
                              // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_Fmadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                              // Dst: (VFMADD213PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*304772*/                  0, /*End of Scope*/
/*304773*/                0, // EndSwitchOpcode
/*304774*/              /*Scope*/ 18|128,1/*146*/, /*->304922*/
/*304776*/                OPC_MoveChild2,
/*304777*/                OPC_SwitchOpcode /*2 cases */, 65, TARGET_VAL(ISD::LOAD),// ->304846
/*304781*/                  OPC_RecordMemRef,
/*304782*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*304783*/                  OPC_CheckFoldableChainNode,
/*304784*/                  OPC_RecordChild1, // #4 = $src3
/*304785*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*304787*/                  OPC_CheckPredicate, 9, // Predicate_load
/*304789*/                  OPC_MoveParent,
/*304790*/                  OPC_RecordChild3, // #5 = $src1
/*304791*/                  OPC_MoveParent,
/*304792*/                  OPC_CheckChild2Same, 5,
/*304794*/                  OPC_SwitchType /*2 cases */, 23, MVT::v8f32,// ->304820
/*304797*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*304799*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*304802*/                    OPC_EmitMergeInputChains, 2, 1, 3, 
/*304806*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PSZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f32, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                              // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_Fmadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                              // Dst: (VFMADD231PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*304820*/                  /*SwitchType*/ 23, MVT::v8f64,// ->304845
/*304822*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*304824*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*304827*/                    OPC_EmitMergeInputChains, 2, 1, 3, 
/*304831*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PDZmk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f64, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                              // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_Fmadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                              // Dst: (VFMADD231PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*304845*/                  0, // EndSwitchType
/*304846*/                /*SwitchOpcode*/ 72, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->304921
/*304849*/                  OPC_RecordMemRef,
/*304850*/                  OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*304851*/                  OPC_CheckFoldableChainNode,
/*304852*/                  OPC_RecordChild1, // #4 = $src3
/*304853*/                  OPC_Scope, 32, /*->304887*/ // 2 children in Scope
/*304855*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*304857*/                    OPC_MoveParent,
/*304858*/                    OPC_RecordChild3, // #5 = $src1
/*304859*/                    OPC_MoveParent,
/*304860*/                    OPC_CheckChild2Same, 5,
/*304862*/                    OPC_CheckType, MVT::v8f32,
/*304864*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*304866*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*304869*/                    OPC_EmitMergeInputChains, 2, 1, 3, 
/*304873*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PSZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f32, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                              // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_Fmadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                              // Dst: (VFMADD231PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*304887*/                  /*Scope*/ 32, /*->304920*/
/*304888*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*304890*/                    OPC_MoveParent,
/*304891*/                    OPC_RecordChild3, // #5 = $src1
/*304892*/                    OPC_MoveParent,
/*304893*/                    OPC_CheckChild2Same, 5,
/*304895*/                    OPC_CheckType, MVT::v8f64,
/*304897*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*304899*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*304902*/                    OPC_EmitMergeInputChains, 2, 1, 3, 
/*304906*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PDZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v8f64, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                              // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_Fmadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                              // Dst: (VFMADD231PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*304920*/                  0, /*End of Scope*/
/*304921*/                0, // EndSwitchOpcode
/*304922*/              0, /*End of Scope*/
/*304923*/            /*Scope*/ 21|128,1/*149*/, /*->305074*/
/*304925*/              OPC_MoveChild1,
/*304926*/              OPC_SwitchOpcode /*2 cases */, 66, TARGET_VAL(ISD::LOAD),// ->304996
/*304930*/                OPC_RecordMemRef,
/*304931*/                OPC_RecordNode, // #2 = 'ld' chained node
/*304932*/                OPC_CheckFoldableChainNode,
/*304933*/                OPC_RecordChild1, // #3 = $src3
/*304934*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*304936*/                OPC_CheckPredicate, 9, // Predicate_load
/*304938*/                OPC_MoveParent,
/*304939*/                OPC_RecordChild2, // #4 = $src1
/*304940*/                OPC_RecordChild3, // #5 = $src2
/*304941*/                OPC_MoveParent,
/*304942*/                OPC_CheckChild2Same, 4,
/*304944*/                OPC_SwitchType /*2 cases */, 23, MVT::v8f32,// ->304970
/*304947*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*304949*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*304952*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*304956*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PSZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_Fmadd:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, 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)
/*304970*/                /*SwitchType*/ 23, MVT::v8f64,// ->304995
/*304972*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*304974*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*304977*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*304981*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PDZmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_Fmadd:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, 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)
/*304995*/                0, // EndSwitchType
/*304996*/              /*SwitchOpcode*/ 74, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->305073
/*304999*/                OPC_RecordMemRef,
/*305000*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*305001*/                OPC_CheckFoldableChainNode,
/*305002*/                OPC_RecordChild1, // #3 = $src3
/*305003*/                OPC_Scope, 33, /*->305038*/ // 2 children in Scope
/*305005*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*305007*/                  OPC_MoveParent,
/*305008*/                  OPC_RecordChild2, // #4 = $src1
/*305009*/                  OPC_RecordChild3, // #5 = $src2
/*305010*/                  OPC_MoveParent,
/*305011*/                  OPC_CheckChild2Same, 4,
/*305013*/                  OPC_CheckType, MVT::v8f32,
/*305015*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*305017*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*305020*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*305024*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PSZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_Fmadd:{ *:[v8f32] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                            // Dst: (VFMADD132PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*305038*/                /*Scope*/ 33, /*->305072*/
/*305039*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*305041*/                  OPC_MoveParent,
/*305042*/                  OPC_RecordChild2, // #4 = $src1
/*305043*/                  OPC_RecordChild3, // #5 = $src2
/*305044*/                  OPC_MoveParent,
/*305045*/                  OPC_CheckChild2Same, 4,
/*305047*/                  OPC_CheckType, MVT::v8f64,
/*305049*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*305051*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*305054*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*305058*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PDZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_Fmadd:{ *:[v8f64] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                            // Dst: (VFMADD132PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*305072*/                0, /*End of Scope*/
/*305073*/              0, // EndSwitchOpcode
/*305074*/            /*Scope*/ 17|128,1/*145*/, /*->305221*/
/*305076*/              OPC_RecordChild1, // #2 = $src1
/*305077*/              OPC_RecordChild2, // #3 = $src2
/*305078*/              OPC_MoveChild3,
/*305079*/              OPC_SwitchOpcode /*2 cases */, 64, TARGET_VAL(ISD::LOAD),// ->305147
/*305083*/                OPC_RecordMemRef,
/*305084*/                OPC_RecordNode, // #4 = 'ld' chained node
/*305085*/                OPC_CheckFoldableChainNode,
/*305086*/                OPC_RecordChild1, // #5 = $src3
/*305087*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*305089*/                OPC_CheckPredicate, 9, // Predicate_load
/*305091*/                OPC_MoveParent,
/*305092*/                OPC_MoveParent,
/*305093*/                OPC_CheckChild2Same, 2,
/*305095*/                OPC_SwitchType /*2 cases */, 23, MVT::v8f32,// ->305121
/*305098*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*305100*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/5, // selectAddr:$src3 #6 #7 #8 #9 #10
/*305103*/                  OPC_EmitMergeInputChains, 2, 1, 4, 
/*305107*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 2, 0, 3, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_Fmadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                            // Dst: (VFMADD213PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*305121*/                /*SwitchType*/ 23, MVT::v8f64,// ->305146
/*305123*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*305125*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/5, // selectAddr:$src3 #6 #7 #8 #9 #10
/*305128*/                  OPC_EmitMergeInputChains, 2, 1, 4, 
/*305132*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 2, 0, 3, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_Fmadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                            // Dst: (VFMADD213PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*305146*/                0, // EndSwitchType
/*305147*/              /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->305220
/*305150*/                OPC_RecordMemRef,
/*305151*/                OPC_RecordNode, // #4 = 'X86VBroadcastld' chained node
/*305152*/                OPC_CheckFoldableChainNode,
/*305153*/                OPC_RecordChild1, // #5 = $src3
/*305154*/                OPC_Scope, 31, /*->305187*/ // 2 children in Scope
/*305156*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*305158*/                  OPC_MoveParent,
/*305159*/                  OPC_MoveParent,
/*305160*/                  OPC_CheckChild2Same, 2,
/*305162*/                  OPC_CheckType, MVT::v8f32,
/*305164*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*305166*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/5, // selectAddr:$src3 #6 #7 #8 #9 #10
/*305169*/                  OPC_EmitMergeInputChains, 2, 1, 4, 
/*305173*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 2, 0, 3, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_Fmadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                            // Dst: (VFMADD213PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*305187*/                /*Scope*/ 31, /*->305219*/
/*305188*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*305190*/                  OPC_MoveParent,
/*305191*/                  OPC_MoveParent,
/*305192*/                  OPC_CheckChild2Same, 2,
/*305194*/                  OPC_CheckType, MVT::v8f64,
/*305196*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*305198*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/5, // selectAddr:$src3 #6 #7 #8 #9 #10
/*305201*/                  OPC_EmitMergeInputChains, 2, 1, 4, 
/*305205*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 2, 0, 3, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_Fmadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                            // Dst: (VFMADD213PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*305219*/                0, /*End of Scope*/
/*305220*/              0, // EndSwitchOpcode
/*305221*/            /*Scope*/ 21|128,1/*149*/, /*->305372*/
/*305223*/              OPC_MoveChild1,
/*305224*/              OPC_SwitchOpcode /*2 cases */, 66, TARGET_VAL(ISD::LOAD),// ->305294
/*305228*/                OPC_RecordMemRef,
/*305229*/                OPC_RecordNode, // #2 = 'ld' chained node
/*305230*/                OPC_CheckFoldableChainNode,
/*305231*/                OPC_RecordChild1, // #3 = $src3
/*305232*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*305234*/                OPC_CheckPredicate, 9, // Predicate_load
/*305236*/                OPC_MoveParent,
/*305237*/                OPC_RecordChild2, // #4 = $src2
/*305238*/                OPC_RecordChild3, // #5 = $src1
/*305239*/                OPC_MoveParent,
/*305240*/                OPC_CheckChild2Same, 5,
/*305242*/                OPC_SwitchType /*2 cases */, 23, MVT::v8f32,// ->305268
/*305245*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*305247*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*305250*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*305254*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PSZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 5, 0, 4, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_Fmadd:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, 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)
/*305268*/                /*SwitchType*/ 23, MVT::v8f64,// ->305293
/*305270*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*305272*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*305275*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*305279*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PDZmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 5, 0, 4, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_Fmadd:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, 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)
/*305293*/                0, // EndSwitchType
/*305294*/              /*SwitchOpcode*/ 74, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->305371
/*305297*/                OPC_RecordMemRef,
/*305298*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*305299*/                OPC_CheckFoldableChainNode,
/*305300*/                OPC_RecordChild1, // #3 = $src3
/*305301*/                OPC_Scope, 33, /*->305336*/ // 2 children in Scope
/*305303*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*305305*/                  OPC_MoveParent,
/*305306*/                  OPC_RecordChild2, // #4 = $src2
/*305307*/                  OPC_RecordChild3, // #5 = $src1
/*305308*/                  OPC_MoveParent,
/*305309*/                  OPC_CheckChild2Same, 5,
/*305311*/                  OPC_CheckType, MVT::v8f32,
/*305313*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*305315*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*305318*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*305322*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PSZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 5, 0, 4, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_Fmadd:{ *:[v8f32] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                            // Dst: (VFMADD231PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*305336*/                /*Scope*/ 33, /*->305370*/
/*305337*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*305339*/                  OPC_MoveParent,
/*305340*/                  OPC_RecordChild2, // #4 = $src2
/*305341*/                  OPC_RecordChild3, // #5 = $src1
/*305342*/                  OPC_MoveParent,
/*305343*/                  OPC_CheckChild2Same, 5,
/*305345*/                  OPC_CheckType, MVT::v8f64,
/*305347*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*305349*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*305352*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*305356*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PDZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 5, 0, 4, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_Fmadd:{ *:[v8f64] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                            // Dst: (VFMADD231PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*305370*/                0, /*End of Scope*/
/*305371*/              0, // EndSwitchOpcode
/*305372*/            /*Scope*/ 19|128,1/*147*/, /*->305521*/
/*305374*/              OPC_RecordChild1, // #2 = $src1
/*305375*/              OPC_MoveChild2,
/*305376*/              OPC_SwitchOpcode /*2 cases */, 65, TARGET_VAL(ISD::LOAD),// ->305445
/*305380*/                OPC_RecordMemRef,
/*305381*/                OPC_RecordNode, // #3 = 'ld' chained node
/*305382*/                OPC_CheckFoldableChainNode,
/*305383*/                OPC_RecordChild1, // #4 = $src3
/*305384*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*305386*/                OPC_CheckPredicate, 9, // Predicate_load
/*305388*/                OPC_MoveParent,
/*305389*/                OPC_RecordChild3, // #5 = $src2
/*305390*/                OPC_MoveParent,
/*305391*/                OPC_CheckChild2Same, 2,
/*305393*/                OPC_SwitchType /*2 cases */, 23, MVT::v8f32,// ->305419
/*305396*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*305398*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*305401*/                  OPC_EmitMergeInputChains, 2, 1, 3, 
/*305405*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PSZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 2, 0, 5, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_Fmadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8f32] }:$src2), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                            // Dst: (VFMADD132PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*305419*/                /*SwitchType*/ 23, MVT::v8f64,// ->305444
/*305421*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*305423*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*305426*/                  OPC_EmitMergeInputChains, 2, 1, 3, 
/*305430*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PDZmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 2, 0, 5, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_Fmadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v8f64] }:$src2), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                            // Dst: (VFMADD132PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*305444*/                0, // EndSwitchType
/*305445*/              /*SwitchOpcode*/ 72, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->305520
/*305448*/                OPC_RecordMemRef,
/*305449*/                OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*305450*/                OPC_CheckFoldableChainNode,
/*305451*/                OPC_RecordChild1, // #4 = $src3
/*305452*/                OPC_Scope, 32, /*->305486*/ // 2 children in Scope
/*305454*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*305456*/                  OPC_MoveParent,
/*305457*/                  OPC_RecordChild3, // #5 = $src2
/*305458*/                  OPC_MoveParent,
/*305459*/                  OPC_CheckChild2Same, 2,
/*305461*/                  OPC_CheckType, MVT::v8f32,
/*305463*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*305465*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*305468*/                  OPC_EmitMergeInputChains, 2, 1, 3, 
/*305472*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PSZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 8/*#Ops*/, 2, 0, 5, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_Fmadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src2), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                            // Dst: (VFMADD132PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*305486*/                /*Scope*/ 32, /*->305519*/
/*305487*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*305489*/                  OPC_MoveParent,
/*305490*/                  OPC_RecordChild3, // #5 = $src2
/*305491*/                  OPC_MoveParent,
/*305492*/                  OPC_CheckChild2Same, 2,
/*305494*/                  OPC_CheckType, MVT::v8f64,
/*305496*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*305498*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*305501*/                  OPC_EmitMergeInputChains, 2, 1, 3, 
/*305505*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PDZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 8/*#Ops*/, 2, 0, 5, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_Fmadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src2), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                            // Dst: (VFMADD132PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*305519*/                0, /*End of Scope*/
/*305520*/              0, // EndSwitchOpcode
/*305521*/            0, /*End of Scope*/
/*305522*/          /*SwitchOpcode*/ 75|128,6/*843*/, TARGET_VAL(ISD::FMA),// ->306369
/*305526*/            OPC_Scope, 25|128,2/*281*/, /*->305810*/ // 5 children in Scope
/*305529*/              OPC_RecordChild0, // #1 = $src2
/*305530*/              OPC_Scope, 12|128,1/*140*/, /*->305673*/ // 2 children in Scope
/*305533*/                OPC_RecordChild1, // #2 = $src1
/*305534*/                OPC_MoveChild2,
/*305535*/                OPC_SwitchOpcode /*2 cases */, 62, TARGET_VAL(ISD::LOAD),// ->305601
/*305539*/                  OPC_RecordMemRef,
/*305540*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*305541*/                  OPC_CheckFoldableChainNode,
/*305542*/                  OPC_RecordChild1, // #4 = $src3
/*305543*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*305545*/                  OPC_CheckPredicate, 9, // Predicate_load
/*305547*/                  OPC_MoveParent,
/*305548*/                  OPC_MoveParent,
/*305549*/                  OPC_CheckChild2Same, 2,
/*305551*/                  OPC_SwitchType /*2 cases */, 22, MVT::v8f32,// ->305576
/*305554*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*305556*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*305559*/                    OPC_EmitMergeInputChains, 1, 3, 
/*305562*/                    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>>), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                              // Dst: (VFMADD213PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*305576*/                  /*SwitchType*/ 22, MVT::v8f64,// ->305600
/*305578*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*305580*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*305583*/                    OPC_EmitMergeInputChains, 1, 3, 
/*305586*/                    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>>), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                              // Dst: (VFMADD213PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*305600*/                  0, // EndSwitchType
/*305601*/                /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->305672
/*305604*/                  OPC_RecordMemRef,
/*305605*/                  OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*305606*/                  OPC_CheckFoldableChainNode,
/*305607*/                  OPC_RecordChild1, // #4 = $src3
/*305608*/                  OPC_Scope, 30, /*->305640*/ // 2 children in Scope
/*305610*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*305612*/                    OPC_MoveParent,
/*305613*/                    OPC_MoveParent,
/*305614*/                    OPC_CheckChild2Same, 2,
/*305616*/                    OPC_CheckType, MVT::v8f32,
/*305618*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*305620*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*305623*/                    OPC_EmitMergeInputChains, 1, 3, 
/*305626*/                    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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                              // Dst: (VFMADD213PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*305640*/                  /*Scope*/ 30, /*->305671*/
/*305641*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*305643*/                    OPC_MoveParent,
/*305644*/                    OPC_MoveParent,
/*305645*/                    OPC_CheckChild2Same, 2,
/*305647*/                    OPC_CheckType, MVT::v8f64,
/*305649*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*305651*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*305654*/                    OPC_EmitMergeInputChains, 1, 3, 
/*305657*/                    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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                              // Dst: (VFMADD213PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*305671*/                  0, /*End of Scope*/
/*305672*/                0, // EndSwitchOpcode
/*305673*/              /*Scope*/ 6|128,1/*134*/, /*->305809*/
/*305675*/                OPC_MoveChild1,
/*305676*/                OPC_SwitchOpcode /*2 cases */, 59, TARGET_VAL(ISD::LOAD),// ->305739
/*305680*/                  OPC_RecordMemRef,
/*305681*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*305682*/                  OPC_CheckFoldableChainNode,
/*305683*/                  OPC_RecordChild1, // #3 = $src3
/*305684*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*305686*/                  OPC_CheckPredicate, 9, // Predicate_load
/*305688*/                  OPC_MoveParent,
/*305689*/                  OPC_RecordChild2, // #4 = $src1
/*305690*/                  OPC_MoveParent,
/*305691*/                  OPC_CheckChild2Same, 4,
/*305693*/                  OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->305716
/*305696*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*305698*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*305701*/                    OPC_EmitMergeInputChains1_2,
/*305702*/                    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>>, VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                              // Dst: (VFMADD231PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*305716*/                  /*SwitchType*/ 20, MVT::v8f64,// ->305738
/*305718*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*305720*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*305723*/                    OPC_EmitMergeInputChains1_2,
/*305724*/                    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>>, VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                              // Dst: (VFMADD231PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*305738*/                  0, // EndSwitchType
/*305739*/                /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->305808
/*305742*/                  OPC_RecordMemRef,
/*305743*/                  OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*305744*/                  OPC_CheckFoldableChainNode,
/*305745*/                  OPC_RecordChild1, // #3 = $src3
/*305746*/                  OPC_Scope, 29, /*->305777*/ // 2 children in Scope
/*305748*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*305750*/                    OPC_MoveParent,
/*305751*/                    OPC_RecordChild2, // #4 = $src1
/*305752*/                    OPC_MoveParent,
/*305753*/                    OPC_CheckChild2Same, 4,
/*305755*/                    OPC_CheckType, MVT::v8f32,
/*305757*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*305759*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*305762*/                    OPC_EmitMergeInputChains1_2,
/*305763*/                    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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                              // Dst: (VFMADD231PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*305777*/                  /*Scope*/ 29, /*->305807*/
/*305778*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*305780*/                    OPC_MoveParent,
/*305781*/                    OPC_RecordChild2, // #4 = $src1
/*305782*/                    OPC_MoveParent,
/*305783*/                    OPC_CheckChild2Same, 4,
/*305785*/                    OPC_CheckType, MVT::v8f64,
/*305787*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*305789*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*305792*/                    OPC_EmitMergeInputChains1_2,
/*305793*/                    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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                              // Dst: (VFMADD231PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*305807*/                  0, /*End of Scope*/
/*305808*/                0, // EndSwitchOpcode
/*305809*/              0, /*End of Scope*/
/*305810*/            /*Scope*/ 9|128,1/*137*/, /*->305949*/
/*305812*/              OPC_MoveChild0,
/*305813*/              OPC_SwitchOpcode /*2 cases */, 60, TARGET_VAL(ISD::LOAD),// ->305877
/*305817*/                OPC_RecordMemRef,
/*305818*/                OPC_RecordNode, // #1 = 'ld' chained node
/*305819*/                OPC_CheckFoldableChainNode,
/*305820*/                OPC_RecordChild1, // #2 = $src3
/*305821*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*305823*/                OPC_CheckPredicate, 9, // Predicate_load
/*305825*/                OPC_MoveParent,
/*305826*/                OPC_RecordChild1, // #3 = $src1
/*305827*/                OPC_RecordChild2, // #4 = $src2
/*305828*/                OPC_MoveParent,
/*305829*/                OPC_CheckChild2Same, 3,
/*305831*/                OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->305854
/*305834*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*305836*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*305839*/                  OPC_EmitMergeInputChains1_1,
/*305840*/                  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>>, 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)
/*305854*/                /*SwitchType*/ 20, MVT::v8f64,// ->305876
/*305856*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*305858*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*305861*/                  OPC_EmitMergeInputChains1_1,
/*305862*/                  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>>, 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)
/*305876*/                0, // EndSwitchType
/*305877*/              /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->305948
/*305880*/                OPC_RecordMemRef,
/*305881*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*305882*/                OPC_CheckFoldableChainNode,
/*305883*/                OPC_RecordChild1, // #2 = $src3
/*305884*/                OPC_Scope, 30, /*->305916*/ // 2 children in Scope
/*305886*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*305888*/                  OPC_MoveParent,
/*305889*/                  OPC_RecordChild1, // #3 = $src1
/*305890*/                  OPC_RecordChild2, // #4 = $src2
/*305891*/                  OPC_MoveParent,
/*305892*/                  OPC_CheckChild2Same, 3,
/*305894*/                  OPC_CheckType, MVT::v8f32,
/*305896*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*305898*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*305901*/                  OPC_EmitMergeInputChains1_1,
/*305902*/                  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] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                            // Dst: (VFMADD132PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*305916*/                /*Scope*/ 30, /*->305947*/
/*305917*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*305919*/                  OPC_MoveParent,
/*305920*/                  OPC_RecordChild1, // #3 = $src1
/*305921*/                  OPC_RecordChild2, // #4 = $src2
/*305922*/                  OPC_MoveParent,
/*305923*/                  OPC_CheckChild2Same, 3,
/*305925*/                  OPC_CheckType, MVT::v8f64,
/*305927*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*305929*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*305932*/                  OPC_EmitMergeInputChains1_1,
/*305933*/                  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] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                            // Dst: (VFMADD132PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*305947*/                0, /*End of Scope*/
/*305948*/              0, // EndSwitchOpcode
/*305949*/            /*Scope*/ 13|128,1/*141*/, /*->306092*/
/*305951*/              OPC_RecordChild0, // #1 = $src1
/*305952*/              OPC_RecordChild1, // #2 = $src2
/*305953*/              OPC_MoveChild2,
/*305954*/              OPC_SwitchOpcode /*2 cases */, 62, TARGET_VAL(ISD::LOAD),// ->306020
/*305958*/                OPC_RecordMemRef,
/*305959*/                OPC_RecordNode, // #3 = 'ld' chained node
/*305960*/                OPC_CheckFoldableChainNode,
/*305961*/                OPC_RecordChild1, // #4 = $src3
/*305962*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*305964*/                OPC_CheckPredicate, 9, // Predicate_load
/*305966*/                OPC_MoveParent,
/*305967*/                OPC_MoveParent,
/*305968*/                OPC_CheckChild2Same, 1,
/*305970*/                OPC_SwitchType /*2 cases */, 22, MVT::v8f32,// ->305995
/*305973*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*305975*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*305978*/                  OPC_EmitMergeInputChains, 1, 3, 
/*305981*/                  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>>), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                            // Dst: (VFMADD213PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*305995*/                /*SwitchType*/ 22, MVT::v8f64,// ->306019
/*305997*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*305999*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*306002*/                  OPC_EmitMergeInputChains, 1, 3, 
/*306005*/                  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>>), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                            // Dst: (VFMADD213PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*306019*/                0, // EndSwitchType
/*306020*/              /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->306091
/*306023*/                OPC_RecordMemRef,
/*306024*/                OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*306025*/                OPC_CheckFoldableChainNode,
/*306026*/                OPC_RecordChild1, // #4 = $src3
/*306027*/                OPC_Scope, 30, /*->306059*/ // 2 children in Scope
/*306029*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*306031*/                  OPC_MoveParent,
/*306032*/                  OPC_MoveParent,
/*306033*/                  OPC_CheckChild2Same, 1,
/*306035*/                  OPC_CheckType, MVT::v8f32,
/*306037*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*306039*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*306042*/                  OPC_EmitMergeInputChains, 1, 3, 
/*306045*/                  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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                            // Dst: (VFMADD213PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*306059*/                /*Scope*/ 30, /*->306090*/
/*306060*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*306062*/                  OPC_MoveParent,
/*306063*/                  OPC_MoveParent,
/*306064*/                  OPC_CheckChild2Same, 1,
/*306066*/                  OPC_CheckType, MVT::v8f64,
/*306068*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*306070*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*306073*/                  OPC_EmitMergeInputChains, 1, 3, 
/*306076*/                  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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                            // Dst: (VFMADD213PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*306090*/                0, /*End of Scope*/
/*306091*/              0, // EndSwitchOpcode
/*306092*/            /*Scope*/ 9|128,1/*137*/, /*->306231*/
/*306094*/              OPC_MoveChild0,
/*306095*/              OPC_SwitchOpcode /*2 cases */, 60, TARGET_VAL(ISD::LOAD),// ->306159
/*306099*/                OPC_RecordMemRef,
/*306100*/                OPC_RecordNode, // #1 = 'ld' chained node
/*306101*/                OPC_CheckFoldableChainNode,
/*306102*/                OPC_RecordChild1, // #2 = $src3
/*306103*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*306105*/                OPC_CheckPredicate, 9, // Predicate_load
/*306107*/                OPC_MoveParent,
/*306108*/                OPC_RecordChild1, // #3 = $src2
/*306109*/                OPC_RecordChild2, // #4 = $src1
/*306110*/                OPC_MoveParent,
/*306111*/                OPC_CheckChild2Same, 4,
/*306113*/                OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->306136
/*306116*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*306118*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*306121*/                  OPC_EmitMergeInputChains1_1,
/*306122*/                  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>>, 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)
/*306136*/                /*SwitchType*/ 20, MVT::v8f64,// ->306158
/*306138*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*306140*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*306143*/                  OPC_EmitMergeInputChains1_1,
/*306144*/                  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>>, 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)
/*306158*/                0, // EndSwitchType
/*306159*/              /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->306230
/*306162*/                OPC_RecordMemRef,
/*306163*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*306164*/                OPC_CheckFoldableChainNode,
/*306165*/                OPC_RecordChild1, // #2 = $src3
/*306166*/                OPC_Scope, 30, /*->306198*/ // 2 children in Scope
/*306168*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*306170*/                  OPC_MoveParent,
/*306171*/                  OPC_RecordChild1, // #3 = $src2
/*306172*/                  OPC_RecordChild2, // #4 = $src1
/*306173*/                  OPC_MoveParent,
/*306174*/                  OPC_CheckChild2Same, 4,
/*306176*/                  OPC_CheckType, MVT::v8f32,
/*306178*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*306180*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*306183*/                  OPC_EmitMergeInputChains1_1,
/*306184*/                  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] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                            // Dst: (VFMADD231PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*306198*/                /*Scope*/ 30, /*->306229*/
/*306199*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*306201*/                  OPC_MoveParent,
/*306202*/                  OPC_RecordChild1, // #3 = $src2
/*306203*/                  OPC_RecordChild2, // #4 = $src1
/*306204*/                  OPC_MoveParent,
/*306205*/                  OPC_CheckChild2Same, 4,
/*306207*/                  OPC_CheckType, MVT::v8f64,
/*306209*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*306211*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*306214*/                  OPC_EmitMergeInputChains1_1,
/*306215*/                  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] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                            // Dst: (VFMADD231PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*306229*/                0, /*End of Scope*/
/*306230*/              0, // EndSwitchOpcode
/*306231*/            /*Scope*/ 7|128,1/*135*/, /*->306368*/
/*306233*/              OPC_RecordChild0, // #1 = $src1
/*306234*/              OPC_MoveChild1,
/*306235*/              OPC_SwitchOpcode /*2 cases */, 59, TARGET_VAL(ISD::LOAD),// ->306298
/*306239*/                OPC_RecordMemRef,
/*306240*/                OPC_RecordNode, // #2 = 'ld' chained node
/*306241*/                OPC_CheckFoldableChainNode,
/*306242*/                OPC_RecordChild1, // #3 = $src3
/*306243*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*306245*/                OPC_CheckPredicate, 9, // Predicate_load
/*306247*/                OPC_MoveParent,
/*306248*/                OPC_RecordChild2, // #4 = $src2
/*306249*/                OPC_MoveParent,
/*306250*/                OPC_CheckChild2Same, 1,
/*306252*/                OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->306275
/*306255*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*306257*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*306260*/                  OPC_EmitMergeInputChains1_2,
/*306261*/                  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>>, VR256X:{ *:[v8f32] }:$src2), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                            // Dst: (VFMADD132PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*306275*/                /*SwitchType*/ 20, MVT::v8f64,// ->306297
/*306277*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*306279*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*306282*/                  OPC_EmitMergeInputChains1_2,
/*306283*/                  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>>, VR512:{ *:[v8f64] }:$src2), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                            // Dst: (VFMADD132PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*306297*/                0, // EndSwitchType
/*306298*/              /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->306367
/*306301*/                OPC_RecordMemRef,
/*306302*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*306303*/                OPC_CheckFoldableChainNode,
/*306304*/                OPC_RecordChild1, // #3 = $src3
/*306305*/                OPC_Scope, 29, /*->306336*/ // 2 children in Scope
/*306307*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*306309*/                  OPC_MoveParent,
/*306310*/                  OPC_RecordChild2, // #4 = $src2
/*306311*/                  OPC_MoveParent,
/*306312*/                  OPC_CheckChild2Same, 1,
/*306314*/                  OPC_CheckType, MVT::v8f32,
/*306316*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*306318*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*306321*/                  OPC_EmitMergeInputChains1_2,
/*306322*/                  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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src2), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                            // Dst: (VFMADD132PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*306336*/                /*Scope*/ 29, /*->306366*/
/*306337*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*306339*/                  OPC_MoveParent,
/*306340*/                  OPC_RecordChild2, // #4 = $src2
/*306341*/                  OPC_MoveParent,
/*306342*/                  OPC_CheckChild2Same, 1,
/*306344*/                  OPC_CheckType, MVT::v8f64,
/*306346*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*306348*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*306351*/                  OPC_EmitMergeInputChains1_2,
/*306352*/                  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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src2), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                            // Dst: (VFMADD132PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*306366*/                0, /*End of Scope*/
/*306367*/              0, // EndSwitchOpcode
/*306368*/            0, /*End of Scope*/
/*306369*/          /*SwitchOpcode*/ 75|128,6/*843*/, TARGET_VAL(X86ISD::FMSUB),// ->307216
/*306373*/            OPC_Scope, 25|128,2/*281*/, /*->306657*/ // 5 children in Scope
/*306376*/              OPC_RecordChild0, // #1 = $src2
/*306377*/              OPC_Scope, 12|128,1/*140*/, /*->306520*/ // 2 children in Scope
/*306380*/                OPC_RecordChild1, // #2 = $src1
/*306381*/                OPC_MoveChild2,
/*306382*/                OPC_SwitchOpcode /*2 cases */, 62, TARGET_VAL(ISD::LOAD),// ->306448
/*306386*/                  OPC_RecordMemRef,
/*306387*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*306388*/                  OPC_CheckFoldableChainNode,
/*306389*/                  OPC_RecordChild1, // #4 = $src3
/*306390*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*306392*/                  OPC_CheckPredicate, 9, // Predicate_load
/*306394*/                  OPC_MoveParent,
/*306395*/                  OPC_MoveParent,
/*306396*/                  OPC_CheckChild2Same, 2,
/*306398*/                  OPC_SwitchType /*2 cases */, 22, MVT::v8f32,// ->306423
/*306401*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*306403*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*306406*/                    OPC_EmitMergeInputChains, 1, 3, 
/*306409*/                    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>>), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                              // Dst: (VFMSUB213PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*306423*/                  /*SwitchType*/ 22, MVT::v8f64,// ->306447
/*306425*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*306427*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*306430*/                    OPC_EmitMergeInputChains, 1, 3, 
/*306433*/                    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>>), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                              // Dst: (VFMSUB213PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*306447*/                  0, // EndSwitchType
/*306448*/                /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->306519
/*306451*/                  OPC_RecordMemRef,
/*306452*/                  OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*306453*/                  OPC_CheckFoldableChainNode,
/*306454*/                  OPC_RecordChild1, // #4 = $src3
/*306455*/                  OPC_Scope, 30, /*->306487*/ // 2 children in Scope
/*306457*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*306459*/                    OPC_MoveParent,
/*306460*/                    OPC_MoveParent,
/*306461*/                    OPC_CheckChild2Same, 2,
/*306463*/                    OPC_CheckType, MVT::v8f32,
/*306465*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*306467*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*306470*/                    OPC_EmitMergeInputChains, 1, 3, 
/*306473*/                    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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                              // Dst: (VFMSUB213PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*306487*/                  /*Scope*/ 30, /*->306518*/
/*306488*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*306490*/                    OPC_MoveParent,
/*306491*/                    OPC_MoveParent,
/*306492*/                    OPC_CheckChild2Same, 2,
/*306494*/                    OPC_CheckType, MVT::v8f64,
/*306496*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*306498*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*306501*/                    OPC_EmitMergeInputChains, 1, 3, 
/*306504*/                    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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                              // Dst: (VFMSUB213PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*306518*/                  0, /*End of Scope*/
/*306519*/                0, // EndSwitchOpcode
/*306520*/              /*Scope*/ 6|128,1/*134*/, /*->306656*/
/*306522*/                OPC_MoveChild1,
/*306523*/                OPC_SwitchOpcode /*2 cases */, 59, TARGET_VAL(ISD::LOAD),// ->306586
/*306527*/                  OPC_RecordMemRef,
/*306528*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*306529*/                  OPC_CheckFoldableChainNode,
/*306530*/                  OPC_RecordChild1, // #3 = $src3
/*306531*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*306533*/                  OPC_CheckPredicate, 9, // Predicate_load
/*306535*/                  OPC_MoveParent,
/*306536*/                  OPC_RecordChild2, // #4 = $src1
/*306537*/                  OPC_MoveParent,
/*306538*/                  OPC_CheckChild2Same, 4,
/*306540*/                  OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->306563
/*306543*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*306545*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*306548*/                    OPC_EmitMergeInputChains1_2,
/*306549*/                    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>>, VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                              // Dst: (VFMSUB231PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*306563*/                  /*SwitchType*/ 20, MVT::v8f64,// ->306585
/*306565*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*306567*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*306570*/                    OPC_EmitMergeInputChains1_2,
/*306571*/                    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>>, VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                              // Dst: (VFMSUB231PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*306585*/                  0, // EndSwitchType
/*306586*/                /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->306655
/*306589*/                  OPC_RecordMemRef,
/*306590*/                  OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*306591*/                  OPC_CheckFoldableChainNode,
/*306592*/                  OPC_RecordChild1, // #3 = $src3
/*306593*/                  OPC_Scope, 29, /*->306624*/ // 2 children in Scope
/*306595*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*306597*/                    OPC_MoveParent,
/*306598*/                    OPC_RecordChild2, // #4 = $src1
/*306599*/                    OPC_MoveParent,
/*306600*/                    OPC_CheckChild2Same, 4,
/*306602*/                    OPC_CheckType, MVT::v8f32,
/*306604*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*306606*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*306609*/                    OPC_EmitMergeInputChains1_2,
/*306610*/                    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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                              // Dst: (VFMSUB231PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*306624*/                  /*Scope*/ 29, /*->306654*/
/*306625*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*306627*/                    OPC_MoveParent,
/*306628*/                    OPC_RecordChild2, // #4 = $src1
/*306629*/                    OPC_MoveParent,
/*306630*/                    OPC_CheckChild2Same, 4,
/*306632*/                    OPC_CheckType, MVT::v8f64,
/*306634*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*306636*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*306639*/                    OPC_EmitMergeInputChains1_2,
/*306640*/                    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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                              // Dst: (VFMSUB231PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*306654*/                  0, /*End of Scope*/
/*306655*/                0, // EndSwitchOpcode
/*306656*/              0, /*End of Scope*/
/*306657*/            /*Scope*/ 9|128,1/*137*/, /*->306796*/
/*306659*/              OPC_MoveChild0,
/*306660*/              OPC_SwitchOpcode /*2 cases */, 60, TARGET_VAL(ISD::LOAD),// ->306724
/*306664*/                OPC_RecordMemRef,
/*306665*/                OPC_RecordNode, // #1 = 'ld' chained node
/*306666*/                OPC_CheckFoldableChainNode,
/*306667*/                OPC_RecordChild1, // #2 = $src3
/*306668*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*306670*/                OPC_CheckPredicate, 9, // Predicate_load
/*306672*/                OPC_MoveParent,
/*306673*/                OPC_RecordChild1, // #3 = $src1
/*306674*/                OPC_RecordChild2, // #4 = $src2
/*306675*/                OPC_MoveParent,
/*306676*/                OPC_CheckChild2Same, 3,
/*306678*/                OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->306701
/*306681*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*306683*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*306686*/                  OPC_EmitMergeInputChains1_1,
/*306687*/                  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>>, 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)
/*306701*/                /*SwitchType*/ 20, MVT::v8f64,// ->306723
/*306703*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*306705*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*306708*/                  OPC_EmitMergeInputChains1_1,
/*306709*/                  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>>, 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)
/*306723*/                0, // EndSwitchType
/*306724*/              /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->306795
/*306727*/                OPC_RecordMemRef,
/*306728*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*306729*/                OPC_CheckFoldableChainNode,
/*306730*/                OPC_RecordChild1, // #2 = $src3
/*306731*/                OPC_Scope, 30, /*->306763*/ // 2 children in Scope
/*306733*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*306735*/                  OPC_MoveParent,
/*306736*/                  OPC_RecordChild1, // #3 = $src1
/*306737*/                  OPC_RecordChild2, // #4 = $src2
/*306738*/                  OPC_MoveParent,
/*306739*/                  OPC_CheckChild2Same, 3,
/*306741*/                  OPC_CheckType, MVT::v8f32,
/*306743*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*306745*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*306748*/                  OPC_EmitMergeInputChains1_1,
/*306749*/                  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] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                            // Dst: (VFMSUB132PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*306763*/                /*Scope*/ 30, /*->306794*/
/*306764*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*306766*/                  OPC_MoveParent,
/*306767*/                  OPC_RecordChild1, // #3 = $src1
/*306768*/                  OPC_RecordChild2, // #4 = $src2
/*306769*/                  OPC_MoveParent,
/*306770*/                  OPC_CheckChild2Same, 3,
/*306772*/                  OPC_CheckType, MVT::v8f64,
/*306774*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*306776*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*306779*/                  OPC_EmitMergeInputChains1_1,
/*306780*/                  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] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                            // Dst: (VFMSUB132PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*306794*/                0, /*End of Scope*/
/*306795*/              0, // EndSwitchOpcode
/*306796*/            /*Scope*/ 13|128,1/*141*/, /*->306939*/
/*306798*/              OPC_RecordChild0, // #1 = $src1
/*306799*/              OPC_RecordChild1, // #2 = $src2
/*306800*/              OPC_MoveChild2,
/*306801*/              OPC_SwitchOpcode /*2 cases */, 62, TARGET_VAL(ISD::LOAD),// ->306867
/*306805*/                OPC_RecordMemRef,
/*306806*/                OPC_RecordNode, // #3 = 'ld' chained node
/*306807*/                OPC_CheckFoldableChainNode,
/*306808*/                OPC_RecordChild1, // #4 = $src3
/*306809*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*306811*/                OPC_CheckPredicate, 9, // Predicate_load
/*306813*/                OPC_MoveParent,
/*306814*/                OPC_MoveParent,
/*306815*/                OPC_CheckChild2Same, 1,
/*306817*/                OPC_SwitchType /*2 cases */, 22, MVT::v8f32,// ->306842
/*306820*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*306822*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*306825*/                  OPC_EmitMergeInputChains, 1, 3, 
/*306828*/                  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>>), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                            // Dst: (VFMSUB213PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*306842*/                /*SwitchType*/ 22, MVT::v8f64,// ->306866
/*306844*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*306846*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*306849*/                  OPC_EmitMergeInputChains, 1, 3, 
/*306852*/                  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>>), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                            // Dst: (VFMSUB213PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*306866*/                0, // EndSwitchType
/*306867*/              /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->306938
/*306870*/                OPC_RecordMemRef,
/*306871*/                OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*306872*/                OPC_CheckFoldableChainNode,
/*306873*/                OPC_RecordChild1, // #4 = $src3
/*306874*/                OPC_Scope, 30, /*->306906*/ // 2 children in Scope
/*306876*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*306878*/                  OPC_MoveParent,
/*306879*/                  OPC_MoveParent,
/*306880*/                  OPC_CheckChild2Same, 1,
/*306882*/                  OPC_CheckType, MVT::v8f32,
/*306884*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*306886*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*306889*/                  OPC_EmitMergeInputChains, 1, 3, 
/*306892*/                  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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                            // Dst: (VFMSUB213PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*306906*/                /*Scope*/ 30, /*->306937*/
/*306907*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*306909*/                  OPC_MoveParent,
/*306910*/                  OPC_MoveParent,
/*306911*/                  OPC_CheckChild2Same, 1,
/*306913*/                  OPC_CheckType, MVT::v8f64,
/*306915*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*306917*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*306920*/                  OPC_EmitMergeInputChains, 1, 3, 
/*306923*/                  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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                            // Dst: (VFMSUB213PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*306937*/                0, /*End of Scope*/
/*306938*/              0, // EndSwitchOpcode
/*306939*/            /*Scope*/ 9|128,1/*137*/, /*->307078*/
/*306941*/              OPC_MoveChild0,
/*306942*/              OPC_SwitchOpcode /*2 cases */, 60, TARGET_VAL(ISD::LOAD),// ->307006
/*306946*/                OPC_RecordMemRef,
/*306947*/                OPC_RecordNode, // #1 = 'ld' chained node
/*306948*/                OPC_CheckFoldableChainNode,
/*306949*/                OPC_RecordChild1, // #2 = $src3
/*306950*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*306952*/                OPC_CheckPredicate, 9, // Predicate_load
/*306954*/                OPC_MoveParent,
/*306955*/                OPC_RecordChild1, // #3 = $src2
/*306956*/                OPC_RecordChild2, // #4 = $src1
/*306957*/                OPC_MoveParent,
/*306958*/                OPC_CheckChild2Same, 4,
/*306960*/                OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->306983
/*306963*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*306965*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*306968*/                  OPC_EmitMergeInputChains1_1,
/*306969*/                  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>>, 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)
/*306983*/                /*SwitchType*/ 20, MVT::v8f64,// ->307005
/*306985*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*306987*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*306990*/                  OPC_EmitMergeInputChains1_1,
/*306991*/                  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>>, 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)
/*307005*/                0, // EndSwitchType
/*307006*/              /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->307077
/*307009*/                OPC_RecordMemRef,
/*307010*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*307011*/                OPC_CheckFoldableChainNode,
/*307012*/                OPC_RecordChild1, // #2 = $src3
/*307013*/                OPC_Scope, 30, /*->307045*/ // 2 children in Scope
/*307015*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*307017*/                  OPC_MoveParent,
/*307018*/                  OPC_RecordChild1, // #3 = $src2
/*307019*/                  OPC_RecordChild2, // #4 = $src1
/*307020*/                  OPC_MoveParent,
/*307021*/                  OPC_CheckChild2Same, 4,
/*307023*/                  OPC_CheckType, MVT::v8f32,
/*307025*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*307027*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*307030*/                  OPC_EmitMergeInputChains1_1,
/*307031*/                  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] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                            // Dst: (VFMSUB231PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*307045*/                /*Scope*/ 30, /*->307076*/
/*307046*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*307048*/                  OPC_MoveParent,
/*307049*/                  OPC_RecordChild1, // #3 = $src2
/*307050*/                  OPC_RecordChild2, // #4 = $src1
/*307051*/                  OPC_MoveParent,
/*307052*/                  OPC_CheckChild2Same, 4,
/*307054*/                  OPC_CheckType, MVT::v8f64,
/*307056*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*307058*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*307061*/                  OPC_EmitMergeInputChains1_1,
/*307062*/                  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] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                            // Dst: (VFMSUB231PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*307076*/                0, /*End of Scope*/
/*307077*/              0, // EndSwitchOpcode
/*307078*/            /*Scope*/ 7|128,1/*135*/, /*->307215*/
/*307080*/              OPC_RecordChild0, // #1 = $src1
/*307081*/              OPC_MoveChild1,
/*307082*/              OPC_SwitchOpcode /*2 cases */, 59, TARGET_VAL(ISD::LOAD),// ->307145
/*307086*/                OPC_RecordMemRef,
/*307087*/                OPC_RecordNode, // #2 = 'ld' chained node
/*307088*/                OPC_CheckFoldableChainNode,
/*307089*/                OPC_RecordChild1, // #3 = $src3
/*307090*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*307092*/                OPC_CheckPredicate, 9, // Predicate_load
/*307094*/                OPC_MoveParent,
/*307095*/                OPC_RecordChild2, // #4 = $src2
/*307096*/                OPC_MoveParent,
/*307097*/                OPC_CheckChild2Same, 1,
/*307099*/                OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->307122
/*307102*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*307104*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*307107*/                  OPC_EmitMergeInputChains1_2,
/*307108*/                  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>>, VR256X:{ *:[v8f32] }:$src2), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                            // Dst: (VFMSUB132PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*307122*/                /*SwitchType*/ 20, MVT::v8f64,// ->307144
/*307124*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*307126*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*307129*/                  OPC_EmitMergeInputChains1_2,
/*307130*/                  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>>, VR512:{ *:[v8f64] }:$src2), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                            // Dst: (VFMSUB132PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*307144*/                0, // EndSwitchType
/*307145*/              /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->307214
/*307148*/                OPC_RecordMemRef,
/*307149*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*307150*/                OPC_CheckFoldableChainNode,
/*307151*/                OPC_RecordChild1, // #3 = $src3
/*307152*/                OPC_Scope, 29, /*->307183*/ // 2 children in Scope
/*307154*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*307156*/                  OPC_MoveParent,
/*307157*/                  OPC_RecordChild2, // #4 = $src2
/*307158*/                  OPC_MoveParent,
/*307159*/                  OPC_CheckChild2Same, 1,
/*307161*/                  OPC_CheckType, MVT::v8f32,
/*307163*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*307165*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*307168*/                  OPC_EmitMergeInputChains1_2,
/*307169*/                  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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src2), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                            // Dst: (VFMSUB132PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*307183*/                /*Scope*/ 29, /*->307213*/
/*307184*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*307186*/                  OPC_MoveParent,
/*307187*/                  OPC_RecordChild2, // #4 = $src2
/*307188*/                  OPC_MoveParent,
/*307189*/                  OPC_CheckChild2Same, 1,
/*307191*/                  OPC_CheckType, MVT::v8f64,
/*307193*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*307195*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*307198*/                  OPC_EmitMergeInputChains1_2,
/*307199*/                  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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src2), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                            // Dst: (VFMSUB132PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*307213*/                0, /*End of Scope*/
/*307214*/              0, // EndSwitchOpcode
/*307215*/            0, /*End of Scope*/
/*307216*/          /*SwitchOpcode*/ 75|128,6/*843*/, TARGET_VAL(X86ISD::FMADDSUB),// ->308063
/*307220*/            OPC_Scope, 25|128,2/*281*/, /*->307504*/ // 5 children in Scope
/*307223*/              OPC_RecordChild0, // #1 = $src2
/*307224*/              OPC_Scope, 12|128,1/*140*/, /*->307367*/ // 2 children in Scope
/*307227*/                OPC_RecordChild1, // #2 = $src1
/*307228*/                OPC_MoveChild2,
/*307229*/                OPC_SwitchOpcode /*2 cases */, 62, TARGET_VAL(ISD::LOAD),// ->307295
/*307233*/                  OPC_RecordMemRef,
/*307234*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*307235*/                  OPC_CheckFoldableChainNode,
/*307236*/                  OPC_RecordChild1, // #4 = $src3
/*307237*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*307239*/                  OPC_CheckPredicate, 9, // Predicate_load
/*307241*/                  OPC_MoveParent,
/*307242*/                  OPC_MoveParent,
/*307243*/                  OPC_CheckChild2Same, 2,
/*307245*/                  OPC_SwitchType /*2 cases */, 22, MVT::v8f32,// ->307270
/*307248*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*307250*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*307253*/                    OPC_EmitMergeInputChains, 1, 3, 
/*307256*/                    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>>), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                              // Dst: (VFMADDSUB213PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*307270*/                  /*SwitchType*/ 22, MVT::v8f64,// ->307294
/*307272*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*307274*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*307277*/                    OPC_EmitMergeInputChains, 1, 3, 
/*307280*/                    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>>), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                              // Dst: (VFMADDSUB213PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*307294*/                  0, // EndSwitchType
/*307295*/                /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->307366
/*307298*/                  OPC_RecordMemRef,
/*307299*/                  OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*307300*/                  OPC_CheckFoldableChainNode,
/*307301*/                  OPC_RecordChild1, // #4 = $src3
/*307302*/                  OPC_Scope, 30, /*->307334*/ // 2 children in Scope
/*307304*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*307306*/                    OPC_MoveParent,
/*307307*/                    OPC_MoveParent,
/*307308*/                    OPC_CheckChild2Same, 2,
/*307310*/                    OPC_CheckType, MVT::v8f32,
/*307312*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*307314*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*307317*/                    OPC_EmitMergeInputChains, 1, 3, 
/*307320*/                    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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                              // Dst: (VFMADDSUB213PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*307334*/                  /*Scope*/ 30, /*->307365*/
/*307335*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*307337*/                    OPC_MoveParent,
/*307338*/                    OPC_MoveParent,
/*307339*/                    OPC_CheckChild2Same, 2,
/*307341*/                    OPC_CheckType, MVT::v8f64,
/*307343*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*307345*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*307348*/                    OPC_EmitMergeInputChains, 1, 3, 
/*307351*/                    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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                              // Dst: (VFMADDSUB213PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*307365*/                  0, /*End of Scope*/
/*307366*/                0, // EndSwitchOpcode
/*307367*/              /*Scope*/ 6|128,1/*134*/, /*->307503*/
/*307369*/                OPC_MoveChild1,
/*307370*/                OPC_SwitchOpcode /*2 cases */, 59, TARGET_VAL(ISD::LOAD),// ->307433
/*307374*/                  OPC_RecordMemRef,
/*307375*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*307376*/                  OPC_CheckFoldableChainNode,
/*307377*/                  OPC_RecordChild1, // #3 = $src3
/*307378*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*307380*/                  OPC_CheckPredicate, 9, // Predicate_load
/*307382*/                  OPC_MoveParent,
/*307383*/                  OPC_RecordChild2, // #4 = $src1
/*307384*/                  OPC_MoveParent,
/*307385*/                  OPC_CheckChild2Same, 4,
/*307387*/                  OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->307410
/*307390*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*307392*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*307395*/                    OPC_EmitMergeInputChains1_2,
/*307396*/                    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>>, VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                              // Dst: (VFMADDSUB231PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*307410*/                  /*SwitchType*/ 20, MVT::v8f64,// ->307432
/*307412*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*307414*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*307417*/                    OPC_EmitMergeInputChains1_2,
/*307418*/                    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>>, VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                              // Dst: (VFMADDSUB231PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*307432*/                  0, // EndSwitchType
/*307433*/                /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->307502
/*307436*/                  OPC_RecordMemRef,
/*307437*/                  OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*307438*/                  OPC_CheckFoldableChainNode,
/*307439*/                  OPC_RecordChild1, // #3 = $src3
/*307440*/                  OPC_Scope, 29, /*->307471*/ // 2 children in Scope
/*307442*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*307444*/                    OPC_MoveParent,
/*307445*/                    OPC_RecordChild2, // #4 = $src1
/*307446*/                    OPC_MoveParent,
/*307447*/                    OPC_CheckChild2Same, 4,
/*307449*/                    OPC_CheckType, MVT::v8f32,
/*307451*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*307453*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*307456*/                    OPC_EmitMergeInputChains1_2,
/*307457*/                    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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                              // Dst: (VFMADDSUB231PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*307471*/                  /*Scope*/ 29, /*->307501*/
/*307472*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*307474*/                    OPC_MoveParent,
/*307475*/                    OPC_RecordChild2, // #4 = $src1
/*307476*/                    OPC_MoveParent,
/*307477*/                    OPC_CheckChild2Same, 4,
/*307479*/                    OPC_CheckType, MVT::v8f64,
/*307481*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*307483*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*307486*/                    OPC_EmitMergeInputChains1_2,
/*307487*/                    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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                              // Dst: (VFMADDSUB231PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*307501*/                  0, /*End of Scope*/
/*307502*/                0, // EndSwitchOpcode
/*307503*/              0, /*End of Scope*/
/*307504*/            /*Scope*/ 9|128,1/*137*/, /*->307643*/
/*307506*/              OPC_MoveChild0,
/*307507*/              OPC_SwitchOpcode /*2 cases */, 60, TARGET_VAL(ISD::LOAD),// ->307571
/*307511*/                OPC_RecordMemRef,
/*307512*/                OPC_RecordNode, // #1 = 'ld' chained node
/*307513*/                OPC_CheckFoldableChainNode,
/*307514*/                OPC_RecordChild1, // #2 = $src3
/*307515*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*307517*/                OPC_CheckPredicate, 9, // Predicate_load
/*307519*/                OPC_MoveParent,
/*307520*/                OPC_RecordChild1, // #3 = $src1
/*307521*/                OPC_RecordChild2, // #4 = $src2
/*307522*/                OPC_MoveParent,
/*307523*/                OPC_CheckChild2Same, 3,
/*307525*/                OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->307548
/*307528*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*307530*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*307533*/                  OPC_EmitMergeInputChains1_1,
/*307534*/                  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>>, 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)
/*307548*/                /*SwitchType*/ 20, MVT::v8f64,// ->307570
/*307550*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*307552*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*307555*/                  OPC_EmitMergeInputChains1_1,
/*307556*/                  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>>, 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)
/*307570*/                0, // EndSwitchType
/*307571*/              /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->307642
/*307574*/                OPC_RecordMemRef,
/*307575*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*307576*/                OPC_CheckFoldableChainNode,
/*307577*/                OPC_RecordChild1, // #2 = $src3
/*307578*/                OPC_Scope, 30, /*->307610*/ // 2 children in Scope
/*307580*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*307582*/                  OPC_MoveParent,
/*307583*/                  OPC_RecordChild1, // #3 = $src1
/*307584*/                  OPC_RecordChild2, // #4 = $src2
/*307585*/                  OPC_MoveParent,
/*307586*/                  OPC_CheckChild2Same, 3,
/*307588*/                  OPC_CheckType, MVT::v8f32,
/*307590*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*307592*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*307595*/                  OPC_EmitMergeInputChains1_1,
/*307596*/                  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] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                            // Dst: (VFMADDSUB132PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*307610*/                /*Scope*/ 30, /*->307641*/
/*307611*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*307613*/                  OPC_MoveParent,
/*307614*/                  OPC_RecordChild1, // #3 = $src1
/*307615*/                  OPC_RecordChild2, // #4 = $src2
/*307616*/                  OPC_MoveParent,
/*307617*/                  OPC_CheckChild2Same, 3,
/*307619*/                  OPC_CheckType, MVT::v8f64,
/*307621*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*307623*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*307626*/                  OPC_EmitMergeInputChains1_1,
/*307627*/                  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] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                            // Dst: (VFMADDSUB132PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*307641*/                0, /*End of Scope*/
/*307642*/              0, // EndSwitchOpcode
/*307643*/            /*Scope*/ 13|128,1/*141*/, /*->307786*/
/*307645*/              OPC_RecordChild0, // #1 = $src1
/*307646*/              OPC_RecordChild1, // #2 = $src2
/*307647*/              OPC_MoveChild2,
/*307648*/              OPC_SwitchOpcode /*2 cases */, 62, TARGET_VAL(ISD::LOAD),// ->307714
/*307652*/                OPC_RecordMemRef,
/*307653*/                OPC_RecordNode, // #3 = 'ld' chained node
/*307654*/                OPC_CheckFoldableChainNode,
/*307655*/                OPC_RecordChild1, // #4 = $src3
/*307656*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*307658*/                OPC_CheckPredicate, 9, // Predicate_load
/*307660*/                OPC_MoveParent,
/*307661*/                OPC_MoveParent,
/*307662*/                OPC_CheckChild2Same, 1,
/*307664*/                OPC_SwitchType /*2 cases */, 22, MVT::v8f32,// ->307689
/*307667*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*307669*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*307672*/                  OPC_EmitMergeInputChains, 1, 3, 
/*307675*/                  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>>), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                            // Dst: (VFMADDSUB213PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*307689*/                /*SwitchType*/ 22, MVT::v8f64,// ->307713
/*307691*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*307693*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*307696*/                  OPC_EmitMergeInputChains, 1, 3, 
/*307699*/                  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>>), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                            // Dst: (VFMADDSUB213PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*307713*/                0, // EndSwitchType
/*307714*/              /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->307785
/*307717*/                OPC_RecordMemRef,
/*307718*/                OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*307719*/                OPC_CheckFoldableChainNode,
/*307720*/                OPC_RecordChild1, // #4 = $src3
/*307721*/                OPC_Scope, 30, /*->307753*/ // 2 children in Scope
/*307723*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*307725*/                  OPC_MoveParent,
/*307726*/                  OPC_MoveParent,
/*307727*/                  OPC_CheckChild2Same, 1,
/*307729*/                  OPC_CheckType, MVT::v8f32,
/*307731*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*307733*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*307736*/                  OPC_EmitMergeInputChains, 1, 3, 
/*307739*/                  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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                            // Dst: (VFMADDSUB213PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*307753*/                /*Scope*/ 30, /*->307784*/
/*307754*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*307756*/                  OPC_MoveParent,
/*307757*/                  OPC_MoveParent,
/*307758*/                  OPC_CheckChild2Same, 1,
/*307760*/                  OPC_CheckType, MVT::v8f64,
/*307762*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*307764*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*307767*/                  OPC_EmitMergeInputChains, 1, 3, 
/*307770*/                  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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                            // Dst: (VFMADDSUB213PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*307784*/                0, /*End of Scope*/
/*307785*/              0, // EndSwitchOpcode
/*307786*/            /*Scope*/ 9|128,1/*137*/, /*->307925*/
/*307788*/              OPC_MoveChild0,
/*307789*/              OPC_SwitchOpcode /*2 cases */, 60, TARGET_VAL(ISD::LOAD),// ->307853
/*307793*/                OPC_RecordMemRef,
/*307794*/                OPC_RecordNode, // #1 = 'ld' chained node
/*307795*/                OPC_CheckFoldableChainNode,
/*307796*/                OPC_RecordChild1, // #2 = $src3
/*307797*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*307799*/                OPC_CheckPredicate, 9, // Predicate_load
/*307801*/                OPC_MoveParent,
/*307802*/                OPC_RecordChild1, // #3 = $src2
/*307803*/                OPC_RecordChild2, // #4 = $src1
/*307804*/                OPC_MoveParent,
/*307805*/                OPC_CheckChild2Same, 4,
/*307807*/                OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->307830
/*307810*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*307812*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*307815*/                  OPC_EmitMergeInputChains1_1,
/*307816*/                  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>>, 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)
/*307830*/                /*SwitchType*/ 20, MVT::v8f64,// ->307852
/*307832*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*307834*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*307837*/                  OPC_EmitMergeInputChains1_1,
/*307838*/                  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>>, 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)
/*307852*/                0, // EndSwitchType
/*307853*/              /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->307924
/*307856*/                OPC_RecordMemRef,
/*307857*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*307858*/                OPC_CheckFoldableChainNode,
/*307859*/                OPC_RecordChild1, // #2 = $src3
/*307860*/                OPC_Scope, 30, /*->307892*/ // 2 children in Scope
/*307862*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*307864*/                  OPC_MoveParent,
/*307865*/                  OPC_RecordChild1, // #3 = $src2
/*307866*/                  OPC_RecordChild2, // #4 = $src1
/*307867*/                  OPC_MoveParent,
/*307868*/                  OPC_CheckChild2Same, 4,
/*307870*/                  OPC_CheckType, MVT::v8f32,
/*307872*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*307874*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*307877*/                  OPC_EmitMergeInputChains1_1,
/*307878*/                  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] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                            // Dst: (VFMADDSUB231PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*307892*/                /*Scope*/ 30, /*->307923*/
/*307893*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*307895*/                  OPC_MoveParent,
/*307896*/                  OPC_RecordChild1, // #3 = $src2
/*307897*/                  OPC_RecordChild2, // #4 = $src1
/*307898*/                  OPC_MoveParent,
/*307899*/                  OPC_CheckChild2Same, 4,
/*307901*/                  OPC_CheckType, MVT::v8f64,
/*307903*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*307905*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*307908*/                  OPC_EmitMergeInputChains1_1,
/*307909*/                  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] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                            // Dst: (VFMADDSUB231PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*307923*/                0, /*End of Scope*/
/*307924*/              0, // EndSwitchOpcode
/*307925*/            /*Scope*/ 7|128,1/*135*/, /*->308062*/
/*307927*/              OPC_RecordChild0, // #1 = $src1
/*307928*/              OPC_MoveChild1,
/*307929*/              OPC_SwitchOpcode /*2 cases */, 59, TARGET_VAL(ISD::LOAD),// ->307992
/*307933*/                OPC_RecordMemRef,
/*307934*/                OPC_RecordNode, // #2 = 'ld' chained node
/*307935*/                OPC_CheckFoldableChainNode,
/*307936*/                OPC_RecordChild1, // #3 = $src3
/*307937*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*307939*/                OPC_CheckPredicate, 9, // Predicate_load
/*307941*/                OPC_MoveParent,
/*307942*/                OPC_RecordChild2, // #4 = $src2
/*307943*/                OPC_MoveParent,
/*307944*/                OPC_CheckChild2Same, 1,
/*307946*/                OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->307969
/*307949*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*307951*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*307954*/                  OPC_EmitMergeInputChains1_2,
/*307955*/                  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>>, VR256X:{ *:[v8f32] }:$src2), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                            // Dst: (VFMADDSUB132PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*307969*/                /*SwitchType*/ 20, MVT::v8f64,// ->307991
/*307971*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*307973*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*307976*/                  OPC_EmitMergeInputChains1_2,
/*307977*/                  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>>, VR512:{ *:[v8f64] }:$src2), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                            // Dst: (VFMADDSUB132PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*307991*/                0, // EndSwitchType
/*307992*/              /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->308061
/*307995*/                OPC_RecordMemRef,
/*307996*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*307997*/                OPC_CheckFoldableChainNode,
/*307998*/                OPC_RecordChild1, // #3 = $src3
/*307999*/                OPC_Scope, 29, /*->308030*/ // 2 children in Scope
/*308001*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*308003*/                  OPC_MoveParent,
/*308004*/                  OPC_RecordChild2, // #4 = $src2
/*308005*/                  OPC_MoveParent,
/*308006*/                  OPC_CheckChild2Same, 1,
/*308008*/                  OPC_CheckType, MVT::v8f32,
/*308010*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*308012*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*308015*/                  OPC_EmitMergeInputChains1_2,
/*308016*/                  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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src2), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                            // Dst: (VFMADDSUB132PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*308030*/                /*Scope*/ 29, /*->308060*/
/*308031*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*308033*/                  OPC_MoveParent,
/*308034*/                  OPC_RecordChild2, // #4 = $src2
/*308035*/                  OPC_MoveParent,
/*308036*/                  OPC_CheckChild2Same, 1,
/*308038*/                  OPC_CheckType, MVT::v8f64,
/*308040*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*308042*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*308045*/                  OPC_EmitMergeInputChains1_2,
/*308046*/                  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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src2), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                            // Dst: (VFMADDSUB132PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*308060*/                0, /*End of Scope*/
/*308061*/              0, // EndSwitchOpcode
/*308062*/            0, /*End of Scope*/
/*308063*/          /*SwitchOpcode*/ 75|128,6/*843*/, TARGET_VAL(X86ISD::FMSUBADD),// ->308910
/*308067*/            OPC_Scope, 25|128,2/*281*/, /*->308351*/ // 5 children in Scope
/*308070*/              OPC_RecordChild0, // #1 = $src2
/*308071*/              OPC_Scope, 12|128,1/*140*/, /*->308214*/ // 2 children in Scope
/*308074*/                OPC_RecordChild1, // #2 = $src1
/*308075*/                OPC_MoveChild2,
/*308076*/                OPC_SwitchOpcode /*2 cases */, 62, TARGET_VAL(ISD::LOAD),// ->308142
/*308080*/                  OPC_RecordMemRef,
/*308081*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*308082*/                  OPC_CheckFoldableChainNode,
/*308083*/                  OPC_RecordChild1, // #4 = $src3
/*308084*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*308086*/                  OPC_CheckPredicate, 9, // Predicate_load
/*308088*/                  OPC_MoveParent,
/*308089*/                  OPC_MoveParent,
/*308090*/                  OPC_CheckChild2Same, 2,
/*308092*/                  OPC_SwitchType /*2 cases */, 22, MVT::v8f32,// ->308117
/*308095*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*308097*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*308100*/                    OPC_EmitMergeInputChains, 1, 3, 
/*308103*/                    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>>), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                              // Dst: (VFMSUBADD213PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*308117*/                  /*SwitchType*/ 22, MVT::v8f64,// ->308141
/*308119*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*308121*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*308124*/                    OPC_EmitMergeInputChains, 1, 3, 
/*308127*/                    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>>), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                              // Dst: (VFMSUBADD213PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*308141*/                  0, // EndSwitchType
/*308142*/                /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->308213
/*308145*/                  OPC_RecordMemRef,
/*308146*/                  OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*308147*/                  OPC_CheckFoldableChainNode,
/*308148*/                  OPC_RecordChild1, // #4 = $src3
/*308149*/                  OPC_Scope, 30, /*->308181*/ // 2 children in Scope
/*308151*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*308153*/                    OPC_MoveParent,
/*308154*/                    OPC_MoveParent,
/*308155*/                    OPC_CheckChild2Same, 2,
/*308157*/                    OPC_CheckType, MVT::v8f32,
/*308159*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*308161*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*308164*/                    OPC_EmitMergeInputChains, 1, 3, 
/*308167*/                    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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                              // Dst: (VFMSUBADD213PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*308181*/                  /*Scope*/ 30, /*->308212*/
/*308182*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*308184*/                    OPC_MoveParent,
/*308185*/                    OPC_MoveParent,
/*308186*/                    OPC_CheckChild2Same, 2,
/*308188*/                    OPC_CheckType, MVT::v8f64,
/*308190*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*308192*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*308195*/                    OPC_EmitMergeInputChains, 1, 3, 
/*308198*/                    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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                              // Dst: (VFMSUBADD213PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*308212*/                  0, /*End of Scope*/
/*308213*/                0, // EndSwitchOpcode
/*308214*/              /*Scope*/ 6|128,1/*134*/, /*->308350*/
/*308216*/                OPC_MoveChild1,
/*308217*/                OPC_SwitchOpcode /*2 cases */, 59, TARGET_VAL(ISD::LOAD),// ->308280
/*308221*/                  OPC_RecordMemRef,
/*308222*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*308223*/                  OPC_CheckFoldableChainNode,
/*308224*/                  OPC_RecordChild1, // #3 = $src3
/*308225*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*308227*/                  OPC_CheckPredicate, 9, // Predicate_load
/*308229*/                  OPC_MoveParent,
/*308230*/                  OPC_RecordChild2, // #4 = $src1
/*308231*/                  OPC_MoveParent,
/*308232*/                  OPC_CheckChild2Same, 4,
/*308234*/                  OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->308257
/*308237*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*308239*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*308242*/                    OPC_EmitMergeInputChains1_2,
/*308243*/                    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>>, VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                              // Dst: (VFMSUBADD231PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*308257*/                  /*SwitchType*/ 20, MVT::v8f64,// ->308279
/*308259*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*308261*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*308264*/                    OPC_EmitMergeInputChains1_2,
/*308265*/                    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>>, VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                              // Dst: (VFMSUBADD231PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*308279*/                  0, // EndSwitchType
/*308280*/                /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->308349
/*308283*/                  OPC_RecordMemRef,
/*308284*/                  OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*308285*/                  OPC_CheckFoldableChainNode,
/*308286*/                  OPC_RecordChild1, // #3 = $src3
/*308287*/                  OPC_Scope, 29, /*->308318*/ // 2 children in Scope
/*308289*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*308291*/                    OPC_MoveParent,
/*308292*/                    OPC_RecordChild2, // #4 = $src1
/*308293*/                    OPC_MoveParent,
/*308294*/                    OPC_CheckChild2Same, 4,
/*308296*/                    OPC_CheckType, MVT::v8f32,
/*308298*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*308300*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*308303*/                    OPC_EmitMergeInputChains1_2,
/*308304*/                    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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                              // Dst: (VFMSUBADD231PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*308318*/                  /*Scope*/ 29, /*->308348*/
/*308319*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*308321*/                    OPC_MoveParent,
/*308322*/                    OPC_RecordChild2, // #4 = $src1
/*308323*/                    OPC_MoveParent,
/*308324*/                    OPC_CheckChild2Same, 4,
/*308326*/                    OPC_CheckType, MVT::v8f64,
/*308328*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*308330*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*308333*/                    OPC_EmitMergeInputChains1_2,
/*308334*/                    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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                              // Dst: (VFMSUBADD231PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*308348*/                  0, /*End of Scope*/
/*308349*/                0, // EndSwitchOpcode
/*308350*/              0, /*End of Scope*/
/*308351*/            /*Scope*/ 9|128,1/*137*/, /*->308490*/
/*308353*/              OPC_MoveChild0,
/*308354*/              OPC_SwitchOpcode /*2 cases */, 60, TARGET_VAL(ISD::LOAD),// ->308418
/*308358*/                OPC_RecordMemRef,
/*308359*/                OPC_RecordNode, // #1 = 'ld' chained node
/*308360*/                OPC_CheckFoldableChainNode,
/*308361*/                OPC_RecordChild1, // #2 = $src3
/*308362*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*308364*/                OPC_CheckPredicate, 9, // Predicate_load
/*308366*/                OPC_MoveParent,
/*308367*/                OPC_RecordChild1, // #3 = $src1
/*308368*/                OPC_RecordChild2, // #4 = $src2
/*308369*/                OPC_MoveParent,
/*308370*/                OPC_CheckChild2Same, 3,
/*308372*/                OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->308395
/*308375*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*308377*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*308380*/                  OPC_EmitMergeInputChains1_1,
/*308381*/                  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>>, 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)
/*308395*/                /*SwitchType*/ 20, MVT::v8f64,// ->308417
/*308397*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*308399*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*308402*/                  OPC_EmitMergeInputChains1_1,
/*308403*/                  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>>, 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)
/*308417*/                0, // EndSwitchType
/*308418*/              /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->308489
/*308421*/                OPC_RecordMemRef,
/*308422*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*308423*/                OPC_CheckFoldableChainNode,
/*308424*/                OPC_RecordChild1, // #2 = $src3
/*308425*/                OPC_Scope, 30, /*->308457*/ // 2 children in Scope
/*308427*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*308429*/                  OPC_MoveParent,
/*308430*/                  OPC_RecordChild1, // #3 = $src1
/*308431*/                  OPC_RecordChild2, // #4 = $src2
/*308432*/                  OPC_MoveParent,
/*308433*/                  OPC_CheckChild2Same, 3,
/*308435*/                  OPC_CheckType, MVT::v8f32,
/*308437*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*308439*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*308442*/                  OPC_EmitMergeInputChains1_1,
/*308443*/                  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] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                            // Dst: (VFMSUBADD132PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*308457*/                /*Scope*/ 30, /*->308488*/
/*308458*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*308460*/                  OPC_MoveParent,
/*308461*/                  OPC_RecordChild1, // #3 = $src1
/*308462*/                  OPC_RecordChild2, // #4 = $src2
/*308463*/                  OPC_MoveParent,
/*308464*/                  OPC_CheckChild2Same, 3,
/*308466*/                  OPC_CheckType, MVT::v8f64,
/*308468*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*308470*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*308473*/                  OPC_EmitMergeInputChains1_1,
/*308474*/                  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] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                            // Dst: (VFMSUBADD132PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*308488*/                0, /*End of Scope*/
/*308489*/              0, // EndSwitchOpcode
/*308490*/            /*Scope*/ 13|128,1/*141*/, /*->308633*/
/*308492*/              OPC_RecordChild0, // #1 = $src1
/*308493*/              OPC_RecordChild1, // #2 = $src2
/*308494*/              OPC_MoveChild2,
/*308495*/              OPC_SwitchOpcode /*2 cases */, 62, TARGET_VAL(ISD::LOAD),// ->308561
/*308499*/                OPC_RecordMemRef,
/*308500*/                OPC_RecordNode, // #3 = 'ld' chained node
/*308501*/                OPC_CheckFoldableChainNode,
/*308502*/                OPC_RecordChild1, // #4 = $src3
/*308503*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*308505*/                OPC_CheckPredicate, 9, // Predicate_load
/*308507*/                OPC_MoveParent,
/*308508*/                OPC_MoveParent,
/*308509*/                OPC_CheckChild2Same, 1,
/*308511*/                OPC_SwitchType /*2 cases */, 22, MVT::v8f32,// ->308536
/*308514*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*308516*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*308519*/                  OPC_EmitMergeInputChains, 1, 3, 
/*308522*/                  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>>), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                            // Dst: (VFMSUBADD213PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*308536*/                /*SwitchType*/ 22, MVT::v8f64,// ->308560
/*308538*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*308540*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*308543*/                  OPC_EmitMergeInputChains, 1, 3, 
/*308546*/                  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>>), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                            // Dst: (VFMSUBADD213PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*308560*/                0, // EndSwitchType
/*308561*/              /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->308632
/*308564*/                OPC_RecordMemRef,
/*308565*/                OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*308566*/                OPC_CheckFoldableChainNode,
/*308567*/                OPC_RecordChild1, // #4 = $src3
/*308568*/                OPC_Scope, 30, /*->308600*/ // 2 children in Scope
/*308570*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*308572*/                  OPC_MoveParent,
/*308573*/                  OPC_MoveParent,
/*308574*/                  OPC_CheckChild2Same, 1,
/*308576*/                  OPC_CheckType, MVT::v8f32,
/*308578*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*308580*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*308583*/                  OPC_EmitMergeInputChains, 1, 3, 
/*308586*/                  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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                            // Dst: (VFMSUBADD213PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*308600*/                /*Scope*/ 30, /*->308631*/
/*308601*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*308603*/                  OPC_MoveParent,
/*308604*/                  OPC_MoveParent,
/*308605*/                  OPC_CheckChild2Same, 1,
/*308607*/                  OPC_CheckType, MVT::v8f64,
/*308609*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*308611*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*308614*/                  OPC_EmitMergeInputChains, 1, 3, 
/*308617*/                  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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                            // Dst: (VFMSUBADD213PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*308631*/                0, /*End of Scope*/
/*308632*/              0, // EndSwitchOpcode
/*308633*/            /*Scope*/ 9|128,1/*137*/, /*->308772*/
/*308635*/              OPC_MoveChild0,
/*308636*/              OPC_SwitchOpcode /*2 cases */, 60, TARGET_VAL(ISD::LOAD),// ->308700
/*308640*/                OPC_RecordMemRef,
/*308641*/                OPC_RecordNode, // #1 = 'ld' chained node
/*308642*/                OPC_CheckFoldableChainNode,
/*308643*/                OPC_RecordChild1, // #2 = $src3
/*308644*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*308646*/                OPC_CheckPredicate, 9, // Predicate_load
/*308648*/                OPC_MoveParent,
/*308649*/                OPC_RecordChild1, // #3 = $src2
/*308650*/                OPC_RecordChild2, // #4 = $src1
/*308651*/                OPC_MoveParent,
/*308652*/                OPC_CheckChild2Same, 4,
/*308654*/                OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->308677
/*308657*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*308659*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*308662*/                  OPC_EmitMergeInputChains1_1,
/*308663*/                  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>>, 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)
/*308677*/                /*SwitchType*/ 20, MVT::v8f64,// ->308699
/*308679*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*308681*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*308684*/                  OPC_EmitMergeInputChains1_1,
/*308685*/                  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>>, 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)
/*308699*/                0, // EndSwitchType
/*308700*/              /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->308771
/*308703*/                OPC_RecordMemRef,
/*308704*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*308705*/                OPC_CheckFoldableChainNode,
/*308706*/                OPC_RecordChild1, // #2 = $src3
/*308707*/                OPC_Scope, 30, /*->308739*/ // 2 children in Scope
/*308709*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*308711*/                  OPC_MoveParent,
/*308712*/                  OPC_RecordChild1, // #3 = $src2
/*308713*/                  OPC_RecordChild2, // #4 = $src1
/*308714*/                  OPC_MoveParent,
/*308715*/                  OPC_CheckChild2Same, 4,
/*308717*/                  OPC_CheckType, MVT::v8f32,
/*308719*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*308721*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*308724*/                  OPC_EmitMergeInputChains1_1,
/*308725*/                  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] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                            // Dst: (VFMSUBADD231PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*308739*/                /*Scope*/ 30, /*->308770*/
/*308740*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*308742*/                  OPC_MoveParent,
/*308743*/                  OPC_RecordChild1, // #3 = $src2
/*308744*/                  OPC_RecordChild2, // #4 = $src1
/*308745*/                  OPC_MoveParent,
/*308746*/                  OPC_CheckChild2Same, 4,
/*308748*/                  OPC_CheckType, MVT::v8f64,
/*308750*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*308752*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*308755*/                  OPC_EmitMergeInputChains1_1,
/*308756*/                  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] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                            // Dst: (VFMSUBADD231PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*308770*/                0, /*End of Scope*/
/*308771*/              0, // EndSwitchOpcode
/*308772*/            /*Scope*/ 7|128,1/*135*/, /*->308909*/
/*308774*/              OPC_RecordChild0, // #1 = $src1
/*308775*/              OPC_MoveChild1,
/*308776*/              OPC_SwitchOpcode /*2 cases */, 59, TARGET_VAL(ISD::LOAD),// ->308839
/*308780*/                OPC_RecordMemRef,
/*308781*/                OPC_RecordNode, // #2 = 'ld' chained node
/*308782*/                OPC_CheckFoldableChainNode,
/*308783*/                OPC_RecordChild1, // #3 = $src3
/*308784*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*308786*/                OPC_CheckPredicate, 9, // Predicate_load
/*308788*/                OPC_MoveParent,
/*308789*/                OPC_RecordChild2, // #4 = $src2
/*308790*/                OPC_MoveParent,
/*308791*/                OPC_CheckChild2Same, 1,
/*308793*/                OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->308816
/*308796*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*308798*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*308801*/                  OPC_EmitMergeInputChains1_2,
/*308802*/                  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>>, VR256X:{ *:[v8f32] }:$src2), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                            // Dst: (VFMSUBADD132PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*308816*/                /*SwitchType*/ 20, MVT::v8f64,// ->308838
/*308818*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*308820*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*308823*/                  OPC_EmitMergeInputChains1_2,
/*308824*/                  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>>, VR512:{ *:[v8f64] }:$src2), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                            // Dst: (VFMSUBADD132PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*308838*/                0, // EndSwitchType
/*308839*/              /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->308908
/*308842*/                OPC_RecordMemRef,
/*308843*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*308844*/                OPC_CheckFoldableChainNode,
/*308845*/                OPC_RecordChild1, // #3 = $src3
/*308846*/                OPC_Scope, 29, /*->308877*/ // 2 children in Scope
/*308848*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*308850*/                  OPC_MoveParent,
/*308851*/                  OPC_RecordChild2, // #4 = $src2
/*308852*/                  OPC_MoveParent,
/*308853*/                  OPC_CheckChild2Same, 1,
/*308855*/                  OPC_CheckType, MVT::v8f32,
/*308857*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*308859*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*308862*/                  OPC_EmitMergeInputChains1_2,
/*308863*/                  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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src2), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                            // Dst: (VFMSUBADD132PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*308877*/                /*Scope*/ 29, /*->308907*/
/*308878*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*308880*/                  OPC_MoveParent,
/*308881*/                  OPC_RecordChild2, // #4 = $src2
/*308882*/                  OPC_MoveParent,
/*308883*/                  OPC_CheckChild2Same, 1,
/*308885*/                  OPC_CheckType, MVT::v8f64,
/*308887*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*308889*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*308892*/                  OPC_EmitMergeInputChains1_2,
/*308893*/                  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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src2), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                            // Dst: (VFMSUBADD132PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*308907*/                0, /*End of Scope*/
/*308908*/              0, // EndSwitchOpcode
/*308909*/            0, /*End of Scope*/
/*308910*/          /*SwitchOpcode*/ 75|128,6/*843*/, TARGET_VAL(X86ISD::FNMADD),// ->309757
/*308914*/            OPC_Scope, 25|128,2/*281*/, /*->309198*/ // 5 children in Scope
/*308917*/              OPC_RecordChild0, // #1 = $src2
/*308918*/              OPC_Scope, 12|128,1/*140*/, /*->309061*/ // 2 children in Scope
/*308921*/                OPC_RecordChild1, // #2 = $src1
/*308922*/                OPC_MoveChild2,
/*308923*/                OPC_SwitchOpcode /*2 cases */, 62, TARGET_VAL(ISD::LOAD),// ->308989
/*308927*/                  OPC_RecordMemRef,
/*308928*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*308929*/                  OPC_CheckFoldableChainNode,
/*308930*/                  OPC_RecordChild1, // #4 = $src3
/*308931*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*308933*/                  OPC_CheckPredicate, 9, // Predicate_load
/*308935*/                  OPC_MoveParent,
/*308936*/                  OPC_MoveParent,
/*308937*/                  OPC_CheckChild2Same, 2,
/*308939*/                  OPC_SwitchType /*2 cases */, 22, MVT::v8f32,// ->308964
/*308942*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*308944*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*308947*/                    OPC_EmitMergeInputChains, 1, 3, 
/*308950*/                    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>>), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                              // Dst: (VFNMADD213PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*308964*/                  /*SwitchType*/ 22, MVT::v8f64,// ->308988
/*308966*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*308968*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*308971*/                    OPC_EmitMergeInputChains, 1, 3, 
/*308974*/                    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>>), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                              // Dst: (VFNMADD213PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*308988*/                  0, // EndSwitchType
/*308989*/                /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->309060
/*308992*/                  OPC_RecordMemRef,
/*308993*/                  OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*308994*/                  OPC_CheckFoldableChainNode,
/*308995*/                  OPC_RecordChild1, // #4 = $src3
/*308996*/                  OPC_Scope, 30, /*->309028*/ // 2 children in Scope
/*308998*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*309000*/                    OPC_MoveParent,
/*309001*/                    OPC_MoveParent,
/*309002*/                    OPC_CheckChild2Same, 2,
/*309004*/                    OPC_CheckType, MVT::v8f32,
/*309006*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*309008*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*309011*/                    OPC_EmitMergeInputChains, 1, 3, 
/*309014*/                    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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                              // Dst: (VFNMADD213PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*309028*/                  /*Scope*/ 30, /*->309059*/
/*309029*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*309031*/                    OPC_MoveParent,
/*309032*/                    OPC_MoveParent,
/*309033*/                    OPC_CheckChild2Same, 2,
/*309035*/                    OPC_CheckType, MVT::v8f64,
/*309037*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*309039*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*309042*/                    OPC_EmitMergeInputChains, 1, 3, 
/*309045*/                    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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                              // Dst: (VFNMADD213PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*309059*/                  0, /*End of Scope*/
/*309060*/                0, // EndSwitchOpcode
/*309061*/              /*Scope*/ 6|128,1/*134*/, /*->309197*/
/*309063*/                OPC_MoveChild1,
/*309064*/                OPC_SwitchOpcode /*2 cases */, 59, TARGET_VAL(ISD::LOAD),// ->309127
/*309068*/                  OPC_RecordMemRef,
/*309069*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*309070*/                  OPC_CheckFoldableChainNode,
/*309071*/                  OPC_RecordChild1, // #3 = $src3
/*309072*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*309074*/                  OPC_CheckPredicate, 9, // Predicate_load
/*309076*/                  OPC_MoveParent,
/*309077*/                  OPC_RecordChild2, // #4 = $src1
/*309078*/                  OPC_MoveParent,
/*309079*/                  OPC_CheckChild2Same, 4,
/*309081*/                  OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->309104
/*309084*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*309086*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*309089*/                    OPC_EmitMergeInputChains1_2,
/*309090*/                    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>>, VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                              // Dst: (VFNMADD231PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*309104*/                  /*SwitchType*/ 20, MVT::v8f64,// ->309126
/*309106*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*309108*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*309111*/                    OPC_EmitMergeInputChains1_2,
/*309112*/                    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>>, VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                              // Dst: (VFNMADD231PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*309126*/                  0, // EndSwitchType
/*309127*/                /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->309196
/*309130*/                  OPC_RecordMemRef,
/*309131*/                  OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*309132*/                  OPC_CheckFoldableChainNode,
/*309133*/                  OPC_RecordChild1, // #3 = $src3
/*309134*/                  OPC_Scope, 29, /*->309165*/ // 2 children in Scope
/*309136*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*309138*/                    OPC_MoveParent,
/*309139*/                    OPC_RecordChild2, // #4 = $src1
/*309140*/                    OPC_MoveParent,
/*309141*/                    OPC_CheckChild2Same, 4,
/*309143*/                    OPC_CheckType, MVT::v8f32,
/*309145*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*309147*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*309150*/                    OPC_EmitMergeInputChains1_2,
/*309151*/                    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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                              // Dst: (VFNMADD231PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*309165*/                  /*Scope*/ 29, /*->309195*/
/*309166*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*309168*/                    OPC_MoveParent,
/*309169*/                    OPC_RecordChild2, // #4 = $src1
/*309170*/                    OPC_MoveParent,
/*309171*/                    OPC_CheckChild2Same, 4,
/*309173*/                    OPC_CheckType, MVT::v8f64,
/*309175*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*309177*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*309180*/                    OPC_EmitMergeInputChains1_2,
/*309181*/                    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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                              // Dst: (VFNMADD231PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*309195*/                  0, /*End of Scope*/
/*309196*/                0, // EndSwitchOpcode
/*309197*/              0, /*End of Scope*/
/*309198*/            /*Scope*/ 9|128,1/*137*/, /*->309337*/
/*309200*/              OPC_MoveChild0,
/*309201*/              OPC_SwitchOpcode /*2 cases */, 60, TARGET_VAL(ISD::LOAD),// ->309265
/*309205*/                OPC_RecordMemRef,
/*309206*/                OPC_RecordNode, // #1 = 'ld' chained node
/*309207*/                OPC_CheckFoldableChainNode,
/*309208*/                OPC_RecordChild1, // #2 = $src3
/*309209*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*309211*/                OPC_CheckPredicate, 9, // Predicate_load
/*309213*/                OPC_MoveParent,
/*309214*/                OPC_RecordChild1, // #3 = $src1
/*309215*/                OPC_RecordChild2, // #4 = $src2
/*309216*/                OPC_MoveParent,
/*309217*/                OPC_CheckChild2Same, 3,
/*309219*/                OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->309242
/*309222*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*309224*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*309227*/                  OPC_EmitMergeInputChains1_1,
/*309228*/                  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>>, 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)
/*309242*/                /*SwitchType*/ 20, MVT::v8f64,// ->309264
/*309244*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*309246*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*309249*/                  OPC_EmitMergeInputChains1_1,
/*309250*/                  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>>, 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)
/*309264*/                0, // EndSwitchType
/*309265*/              /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->309336
/*309268*/                OPC_RecordMemRef,
/*309269*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*309270*/                OPC_CheckFoldableChainNode,
/*309271*/                OPC_RecordChild1, // #2 = $src3
/*309272*/                OPC_Scope, 30, /*->309304*/ // 2 children in Scope
/*309274*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*309276*/                  OPC_MoveParent,
/*309277*/                  OPC_RecordChild1, // #3 = $src1
/*309278*/                  OPC_RecordChild2, // #4 = $src2
/*309279*/                  OPC_MoveParent,
/*309280*/                  OPC_CheckChild2Same, 3,
/*309282*/                  OPC_CheckType, MVT::v8f32,
/*309284*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*309286*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*309289*/                  OPC_EmitMergeInputChains1_1,
/*309290*/                  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] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                            // Dst: (VFNMADD132PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*309304*/                /*Scope*/ 30, /*->309335*/
/*309305*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*309307*/                  OPC_MoveParent,
/*309308*/                  OPC_RecordChild1, // #3 = $src1
/*309309*/                  OPC_RecordChild2, // #4 = $src2
/*309310*/                  OPC_MoveParent,
/*309311*/                  OPC_CheckChild2Same, 3,
/*309313*/                  OPC_CheckType, MVT::v8f64,
/*309315*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*309317*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*309320*/                  OPC_EmitMergeInputChains1_1,
/*309321*/                  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] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                            // Dst: (VFNMADD132PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*309335*/                0, /*End of Scope*/
/*309336*/              0, // EndSwitchOpcode
/*309337*/            /*Scope*/ 13|128,1/*141*/, /*->309480*/
/*309339*/              OPC_RecordChild0, // #1 = $src1
/*309340*/              OPC_RecordChild1, // #2 = $src2
/*309341*/              OPC_MoveChild2,
/*309342*/              OPC_SwitchOpcode /*2 cases */, 62, TARGET_VAL(ISD::LOAD),// ->309408
/*309346*/                OPC_RecordMemRef,
/*309347*/                OPC_RecordNode, // #3 = 'ld' chained node
/*309348*/                OPC_CheckFoldableChainNode,
/*309349*/                OPC_RecordChild1, // #4 = $src3
/*309350*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*309352*/                OPC_CheckPredicate, 9, // Predicate_load
/*309354*/                OPC_MoveParent,
/*309355*/                OPC_MoveParent,
/*309356*/                OPC_CheckChild2Same, 1,
/*309358*/                OPC_SwitchType /*2 cases */, 22, MVT::v8f32,// ->309383
/*309361*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*309363*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*309366*/                  OPC_EmitMergeInputChains, 1, 3, 
/*309369*/                  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>>), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                            // Dst: (VFNMADD213PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*309383*/                /*SwitchType*/ 22, MVT::v8f64,// ->309407
/*309385*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*309387*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*309390*/                  OPC_EmitMergeInputChains, 1, 3, 
/*309393*/                  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>>), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                            // Dst: (VFNMADD213PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*309407*/                0, // EndSwitchType
/*309408*/              /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->309479
/*309411*/                OPC_RecordMemRef,
/*309412*/                OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*309413*/                OPC_CheckFoldableChainNode,
/*309414*/                OPC_RecordChild1, // #4 = $src3
/*309415*/                OPC_Scope, 30, /*->309447*/ // 2 children in Scope
/*309417*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*309419*/                  OPC_MoveParent,
/*309420*/                  OPC_MoveParent,
/*309421*/                  OPC_CheckChild2Same, 1,
/*309423*/                  OPC_CheckType, MVT::v8f32,
/*309425*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*309427*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*309430*/                  OPC_EmitMergeInputChains, 1, 3, 
/*309433*/                  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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                            // Dst: (VFNMADD213PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*309447*/                /*Scope*/ 30, /*->309478*/
/*309448*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*309450*/                  OPC_MoveParent,
/*309451*/                  OPC_MoveParent,
/*309452*/                  OPC_CheckChild2Same, 1,
/*309454*/                  OPC_CheckType, MVT::v8f64,
/*309456*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*309458*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*309461*/                  OPC_EmitMergeInputChains, 1, 3, 
/*309464*/                  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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                            // Dst: (VFNMADD213PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*309478*/                0, /*End of Scope*/
/*309479*/              0, // EndSwitchOpcode
/*309480*/            /*Scope*/ 9|128,1/*137*/, /*->309619*/
/*309482*/              OPC_MoveChild0,
/*309483*/              OPC_SwitchOpcode /*2 cases */, 60, TARGET_VAL(ISD::LOAD),// ->309547
/*309487*/                OPC_RecordMemRef,
/*309488*/                OPC_RecordNode, // #1 = 'ld' chained node
/*309489*/                OPC_CheckFoldableChainNode,
/*309490*/                OPC_RecordChild1, // #2 = $src3
/*309491*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*309493*/                OPC_CheckPredicate, 9, // Predicate_load
/*309495*/                OPC_MoveParent,
/*309496*/                OPC_RecordChild1, // #3 = $src2
/*309497*/                OPC_RecordChild2, // #4 = $src1
/*309498*/                OPC_MoveParent,
/*309499*/                OPC_CheckChild2Same, 4,
/*309501*/                OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->309524
/*309504*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*309506*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*309509*/                  OPC_EmitMergeInputChains1_1,
/*309510*/                  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>>, 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)
/*309524*/                /*SwitchType*/ 20, MVT::v8f64,// ->309546
/*309526*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*309528*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*309531*/                  OPC_EmitMergeInputChains1_1,
/*309532*/                  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>>, 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)
/*309546*/                0, // EndSwitchType
/*309547*/              /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->309618
/*309550*/                OPC_RecordMemRef,
/*309551*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*309552*/                OPC_CheckFoldableChainNode,
/*309553*/                OPC_RecordChild1, // #2 = $src3
/*309554*/                OPC_Scope, 30, /*->309586*/ // 2 children in Scope
/*309556*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*309558*/                  OPC_MoveParent,
/*309559*/                  OPC_RecordChild1, // #3 = $src2
/*309560*/                  OPC_RecordChild2, // #4 = $src1
/*309561*/                  OPC_MoveParent,
/*309562*/                  OPC_CheckChild2Same, 4,
/*309564*/                  OPC_CheckType, MVT::v8f32,
/*309566*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*309568*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*309571*/                  OPC_EmitMergeInputChains1_1,
/*309572*/                  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] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                            // Dst: (VFNMADD231PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*309586*/                /*Scope*/ 30, /*->309617*/
/*309587*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*309589*/                  OPC_MoveParent,
/*309590*/                  OPC_RecordChild1, // #3 = $src2
/*309591*/                  OPC_RecordChild2, // #4 = $src1
/*309592*/                  OPC_MoveParent,
/*309593*/                  OPC_CheckChild2Same, 4,
/*309595*/                  OPC_CheckType, MVT::v8f64,
/*309597*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*309599*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*309602*/                  OPC_EmitMergeInputChains1_1,
/*309603*/                  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] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                            // Dst: (VFNMADD231PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*309617*/                0, /*End of Scope*/
/*309618*/              0, // EndSwitchOpcode
/*309619*/            /*Scope*/ 7|128,1/*135*/, /*->309756*/
/*309621*/              OPC_RecordChild0, // #1 = $src1
/*309622*/              OPC_MoveChild1,
/*309623*/              OPC_SwitchOpcode /*2 cases */, 59, TARGET_VAL(ISD::LOAD),// ->309686
/*309627*/                OPC_RecordMemRef,
/*309628*/                OPC_RecordNode, // #2 = 'ld' chained node
/*309629*/                OPC_CheckFoldableChainNode,
/*309630*/                OPC_RecordChild1, // #3 = $src3
/*309631*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*309633*/                OPC_CheckPredicate, 9, // Predicate_load
/*309635*/                OPC_MoveParent,
/*309636*/                OPC_RecordChild2, // #4 = $src2
/*309637*/                OPC_MoveParent,
/*309638*/                OPC_CheckChild2Same, 1,
/*309640*/                OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->309663
/*309643*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*309645*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*309648*/                  OPC_EmitMergeInputChains1_2,
/*309649*/                  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>>, VR256X:{ *:[v8f32] }:$src2), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                            // Dst: (VFNMADD132PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*309663*/                /*SwitchType*/ 20, MVT::v8f64,// ->309685
/*309665*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*309667*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*309670*/                  OPC_EmitMergeInputChains1_2,
/*309671*/                  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>>, VR512:{ *:[v8f64] }:$src2), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                            // Dst: (VFNMADD132PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*309685*/                0, // EndSwitchType
/*309686*/              /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->309755
/*309689*/                OPC_RecordMemRef,
/*309690*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*309691*/                OPC_CheckFoldableChainNode,
/*309692*/                OPC_RecordChild1, // #3 = $src3
/*309693*/                OPC_Scope, 29, /*->309724*/ // 2 children in Scope
/*309695*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*309697*/                  OPC_MoveParent,
/*309698*/                  OPC_RecordChild2, // #4 = $src2
/*309699*/                  OPC_MoveParent,
/*309700*/                  OPC_CheckChild2Same, 1,
/*309702*/                  OPC_CheckType, MVT::v8f32,
/*309704*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*309706*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*309709*/                  OPC_EmitMergeInputChains1_2,
/*309710*/                  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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src2), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                            // Dst: (VFNMADD132PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*309724*/                /*Scope*/ 29, /*->309754*/
/*309725*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*309727*/                  OPC_MoveParent,
/*309728*/                  OPC_RecordChild2, // #4 = $src2
/*309729*/                  OPC_MoveParent,
/*309730*/                  OPC_CheckChild2Same, 1,
/*309732*/                  OPC_CheckType, MVT::v8f64,
/*309734*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*309736*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*309739*/                  OPC_EmitMergeInputChains1_2,
/*309740*/                  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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src2), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                            // Dst: (VFNMADD132PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*309754*/                0, /*End of Scope*/
/*309755*/              0, // EndSwitchOpcode
/*309756*/            0, /*End of Scope*/
/*309757*/          /*SwitchOpcode*/ 75|128,6/*843*/, TARGET_VAL(X86ISD::FNMSUB),// ->310604
/*309761*/            OPC_Scope, 25|128,2/*281*/, /*->310045*/ // 5 children in Scope
/*309764*/              OPC_RecordChild0, // #1 = $src2
/*309765*/              OPC_Scope, 12|128,1/*140*/, /*->309908*/ // 2 children in Scope
/*309768*/                OPC_RecordChild1, // #2 = $src1
/*309769*/                OPC_MoveChild2,
/*309770*/                OPC_SwitchOpcode /*2 cases */, 62, TARGET_VAL(ISD::LOAD),// ->309836
/*309774*/                  OPC_RecordMemRef,
/*309775*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*309776*/                  OPC_CheckFoldableChainNode,
/*309777*/                  OPC_RecordChild1, // #4 = $src3
/*309778*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*309780*/                  OPC_CheckPredicate, 9, // Predicate_load
/*309782*/                  OPC_MoveParent,
/*309783*/                  OPC_MoveParent,
/*309784*/                  OPC_CheckChild2Same, 2,
/*309786*/                  OPC_SwitchType /*2 cases */, 22, MVT::v8f32,// ->309811
/*309789*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*309791*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*309794*/                    OPC_EmitMergeInputChains, 1, 3, 
/*309797*/                    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>>), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                              // Dst: (VFNMSUB213PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*309811*/                  /*SwitchType*/ 22, MVT::v8f64,// ->309835
/*309813*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*309815*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*309818*/                    OPC_EmitMergeInputChains, 1, 3, 
/*309821*/                    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>>), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                              // Dst: (VFNMSUB213PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*309835*/                  0, // EndSwitchType
/*309836*/                /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->309907
/*309839*/                  OPC_RecordMemRef,
/*309840*/                  OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*309841*/                  OPC_CheckFoldableChainNode,
/*309842*/                  OPC_RecordChild1, // #4 = $src3
/*309843*/                  OPC_Scope, 30, /*->309875*/ // 2 children in Scope
/*309845*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*309847*/                    OPC_MoveParent,
/*309848*/                    OPC_MoveParent,
/*309849*/                    OPC_CheckChild2Same, 2,
/*309851*/                    OPC_CheckType, MVT::v8f32,
/*309853*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*309855*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*309858*/                    OPC_EmitMergeInputChains, 1, 3, 
/*309861*/                    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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                              // Dst: (VFNMSUB213PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*309875*/                  /*Scope*/ 30, /*->309906*/
/*309876*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*309878*/                    OPC_MoveParent,
/*309879*/                    OPC_MoveParent,
/*309880*/                    OPC_CheckChild2Same, 2,
/*309882*/                    OPC_CheckType, MVT::v8f64,
/*309884*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*309886*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*309889*/                    OPC_EmitMergeInputChains, 1, 3, 
/*309892*/                    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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                              // Dst: (VFNMSUB213PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*309906*/                  0, /*End of Scope*/
/*309907*/                0, // EndSwitchOpcode
/*309908*/              /*Scope*/ 6|128,1/*134*/, /*->310044*/
/*309910*/                OPC_MoveChild1,
/*309911*/                OPC_SwitchOpcode /*2 cases */, 59, TARGET_VAL(ISD::LOAD),// ->309974
/*309915*/                  OPC_RecordMemRef,
/*309916*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*309917*/                  OPC_CheckFoldableChainNode,
/*309918*/                  OPC_RecordChild1, // #3 = $src3
/*309919*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*309921*/                  OPC_CheckPredicate, 9, // Predicate_load
/*309923*/                  OPC_MoveParent,
/*309924*/                  OPC_RecordChild2, // #4 = $src1
/*309925*/                  OPC_MoveParent,
/*309926*/                  OPC_CheckChild2Same, 4,
/*309928*/                  OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->309951
/*309931*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*309933*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*309936*/                    OPC_EmitMergeInputChains1_2,
/*309937*/                    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>>, VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                              // Dst: (VFNMSUB231PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*309951*/                  /*SwitchType*/ 20, MVT::v8f64,// ->309973
/*309953*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*309955*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*309958*/                    OPC_EmitMergeInputChains1_2,
/*309959*/                    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>>, VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                              // Dst: (VFNMSUB231PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*309973*/                  0, // EndSwitchType
/*309974*/                /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->310043
/*309977*/                  OPC_RecordMemRef,
/*309978*/                  OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*309979*/                  OPC_CheckFoldableChainNode,
/*309980*/                  OPC_RecordChild1, // #3 = $src3
/*309981*/                  OPC_Scope, 29, /*->310012*/ // 2 children in Scope
/*309983*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*309985*/                    OPC_MoveParent,
/*309986*/                    OPC_RecordChild2, // #4 = $src1
/*309987*/                    OPC_MoveParent,
/*309988*/                    OPC_CheckChild2Same, 4,
/*309990*/                    OPC_CheckType, MVT::v8f32,
/*309992*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*309994*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*309997*/                    OPC_EmitMergeInputChains1_2,
/*309998*/                    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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                              // Dst: (VFNMSUB231PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*310012*/                  /*Scope*/ 29, /*->310042*/
/*310013*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*310015*/                    OPC_MoveParent,
/*310016*/                    OPC_RecordChild2, // #4 = $src1
/*310017*/                    OPC_MoveParent,
/*310018*/                    OPC_CheckChild2Same, 4,
/*310020*/                    OPC_CheckType, MVT::v8f64,
/*310022*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*310024*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*310027*/                    OPC_EmitMergeInputChains1_2,
/*310028*/                    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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                              // Dst: (VFNMSUB231PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*310042*/                  0, /*End of Scope*/
/*310043*/                0, // EndSwitchOpcode
/*310044*/              0, /*End of Scope*/
/*310045*/            /*Scope*/ 9|128,1/*137*/, /*->310184*/
/*310047*/              OPC_MoveChild0,
/*310048*/              OPC_SwitchOpcode /*2 cases */, 60, TARGET_VAL(ISD::LOAD),// ->310112
/*310052*/                OPC_RecordMemRef,
/*310053*/                OPC_RecordNode, // #1 = 'ld' chained node
/*310054*/                OPC_CheckFoldableChainNode,
/*310055*/                OPC_RecordChild1, // #2 = $src3
/*310056*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*310058*/                OPC_CheckPredicate, 9, // Predicate_load
/*310060*/                OPC_MoveParent,
/*310061*/                OPC_RecordChild1, // #3 = $src1
/*310062*/                OPC_RecordChild2, // #4 = $src2
/*310063*/                OPC_MoveParent,
/*310064*/                OPC_CheckChild2Same, 3,
/*310066*/                OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->310089
/*310069*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*310071*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*310074*/                  OPC_EmitMergeInputChains1_1,
/*310075*/                  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>>, 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)
/*310089*/                /*SwitchType*/ 20, MVT::v8f64,// ->310111
/*310091*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*310093*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*310096*/                  OPC_EmitMergeInputChains1_1,
/*310097*/                  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>>, 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)
/*310111*/                0, // EndSwitchType
/*310112*/              /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->310183
/*310115*/                OPC_RecordMemRef,
/*310116*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*310117*/                OPC_CheckFoldableChainNode,
/*310118*/                OPC_RecordChild1, // #2 = $src3
/*310119*/                OPC_Scope, 30, /*->310151*/ // 2 children in Scope
/*310121*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*310123*/                  OPC_MoveParent,
/*310124*/                  OPC_RecordChild1, // #3 = $src1
/*310125*/                  OPC_RecordChild2, // #4 = $src2
/*310126*/                  OPC_MoveParent,
/*310127*/                  OPC_CheckChild2Same, 3,
/*310129*/                  OPC_CheckType, MVT::v8f32,
/*310131*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*310133*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*310136*/                  OPC_EmitMergeInputChains1_1,
/*310137*/                  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] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                            // Dst: (VFNMSUB132PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*310151*/                /*Scope*/ 30, /*->310182*/
/*310152*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*310154*/                  OPC_MoveParent,
/*310155*/                  OPC_RecordChild1, // #3 = $src1
/*310156*/                  OPC_RecordChild2, // #4 = $src2
/*310157*/                  OPC_MoveParent,
/*310158*/                  OPC_CheckChild2Same, 3,
/*310160*/                  OPC_CheckType, MVT::v8f64,
/*310162*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*310164*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*310167*/                  OPC_EmitMergeInputChains1_1,
/*310168*/                  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] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                            // Dst: (VFNMSUB132PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*310182*/                0, /*End of Scope*/
/*310183*/              0, // EndSwitchOpcode
/*310184*/            /*Scope*/ 13|128,1/*141*/, /*->310327*/
/*310186*/              OPC_RecordChild0, // #1 = $src1
/*310187*/              OPC_RecordChild1, // #2 = $src2
/*310188*/              OPC_MoveChild2,
/*310189*/              OPC_SwitchOpcode /*2 cases */, 62, TARGET_VAL(ISD::LOAD),// ->310255
/*310193*/                OPC_RecordMemRef,
/*310194*/                OPC_RecordNode, // #3 = 'ld' chained node
/*310195*/                OPC_CheckFoldableChainNode,
/*310196*/                OPC_RecordChild1, // #4 = $src3
/*310197*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*310199*/                OPC_CheckPredicate, 9, // Predicate_load
/*310201*/                OPC_MoveParent,
/*310202*/                OPC_MoveParent,
/*310203*/                OPC_CheckChild2Same, 1,
/*310205*/                OPC_SwitchType /*2 cases */, 22, MVT::v8f32,// ->310230
/*310208*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*310210*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*310213*/                  OPC_EmitMergeInputChains, 1, 3, 
/*310216*/                  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>>), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                            // Dst: (VFNMSUB213PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*310230*/                /*SwitchType*/ 22, MVT::v8f64,// ->310254
/*310232*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*310234*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*310237*/                  OPC_EmitMergeInputChains, 1, 3, 
/*310240*/                  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>>), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                            // Dst: (VFNMSUB213PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*310254*/                0, // EndSwitchType
/*310255*/              /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->310326
/*310258*/                OPC_RecordMemRef,
/*310259*/                OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*310260*/                OPC_CheckFoldableChainNode,
/*310261*/                OPC_RecordChild1, // #4 = $src3
/*310262*/                OPC_Scope, 30, /*->310294*/ // 2 children in Scope
/*310264*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*310266*/                  OPC_MoveParent,
/*310267*/                  OPC_MoveParent,
/*310268*/                  OPC_CheckChild2Same, 1,
/*310270*/                  OPC_CheckType, MVT::v8f32,
/*310272*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*310274*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*310277*/                  OPC_EmitMergeInputChains, 1, 3, 
/*310280*/                  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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                            // Dst: (VFNMSUB213PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*310294*/                /*Scope*/ 30, /*->310325*/
/*310295*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*310297*/                  OPC_MoveParent,
/*310298*/                  OPC_MoveParent,
/*310299*/                  OPC_CheckChild2Same, 1,
/*310301*/                  OPC_CheckType, MVT::v8f64,
/*310303*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*310305*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*310308*/                  OPC_EmitMergeInputChains, 1, 3, 
/*310311*/                  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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                            // Dst: (VFNMSUB213PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*310325*/                0, /*End of Scope*/
/*310326*/              0, // EndSwitchOpcode
/*310327*/            /*Scope*/ 9|128,1/*137*/, /*->310466*/
/*310329*/              OPC_MoveChild0,
/*310330*/              OPC_SwitchOpcode /*2 cases */, 60, TARGET_VAL(ISD::LOAD),// ->310394
/*310334*/                OPC_RecordMemRef,
/*310335*/                OPC_RecordNode, // #1 = 'ld' chained node
/*310336*/                OPC_CheckFoldableChainNode,
/*310337*/                OPC_RecordChild1, // #2 = $src3
/*310338*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*310340*/                OPC_CheckPredicate, 9, // Predicate_load
/*310342*/                OPC_MoveParent,
/*310343*/                OPC_RecordChild1, // #3 = $src2
/*310344*/                OPC_RecordChild2, // #4 = $src1
/*310345*/                OPC_MoveParent,
/*310346*/                OPC_CheckChild2Same, 4,
/*310348*/                OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->310371
/*310351*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*310353*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*310356*/                  OPC_EmitMergeInputChains1_1,
/*310357*/                  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>>, 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)
/*310371*/                /*SwitchType*/ 20, MVT::v8f64,// ->310393
/*310373*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*310375*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*310378*/                  OPC_EmitMergeInputChains1_1,
/*310379*/                  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>>, 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)
/*310393*/                0, // EndSwitchType
/*310394*/              /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->310465
/*310397*/                OPC_RecordMemRef,
/*310398*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*310399*/                OPC_CheckFoldableChainNode,
/*310400*/                OPC_RecordChild1, // #2 = $src3
/*310401*/                OPC_Scope, 30, /*->310433*/ // 2 children in Scope
/*310403*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*310405*/                  OPC_MoveParent,
/*310406*/                  OPC_RecordChild1, // #3 = $src2
/*310407*/                  OPC_RecordChild2, // #4 = $src1
/*310408*/                  OPC_MoveParent,
/*310409*/                  OPC_CheckChild2Same, 4,
/*310411*/                  OPC_CheckType, MVT::v8f32,
/*310413*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*310415*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*310418*/                  OPC_EmitMergeInputChains1_1,
/*310419*/                  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] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                            // Dst: (VFNMSUB231PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*310433*/                /*Scope*/ 30, /*->310464*/
/*310434*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*310436*/                  OPC_MoveParent,
/*310437*/                  OPC_RecordChild1, // #3 = $src2
/*310438*/                  OPC_RecordChild2, // #4 = $src1
/*310439*/                  OPC_MoveParent,
/*310440*/                  OPC_CheckChild2Same, 4,
/*310442*/                  OPC_CheckType, MVT::v8f64,
/*310444*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*310446*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*310449*/                  OPC_EmitMergeInputChains1_1,
/*310450*/                  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] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                            // Dst: (VFNMSUB231PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*310464*/                0, /*End of Scope*/
/*310465*/              0, // EndSwitchOpcode
/*310466*/            /*Scope*/ 7|128,1/*135*/, /*->310603*/
/*310468*/              OPC_RecordChild0, // #1 = $src1
/*310469*/              OPC_MoveChild1,
/*310470*/              OPC_SwitchOpcode /*2 cases */, 59, TARGET_VAL(ISD::LOAD),// ->310533
/*310474*/                OPC_RecordMemRef,
/*310475*/                OPC_RecordNode, // #2 = 'ld' chained node
/*310476*/                OPC_CheckFoldableChainNode,
/*310477*/                OPC_RecordChild1, // #3 = $src3
/*310478*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*310480*/                OPC_CheckPredicate, 9, // Predicate_load
/*310482*/                OPC_MoveParent,
/*310483*/                OPC_RecordChild2, // #4 = $src2
/*310484*/                OPC_MoveParent,
/*310485*/                OPC_CheckChild2Same, 1,
/*310487*/                OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->310510
/*310490*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*310492*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*310495*/                  OPC_EmitMergeInputChains1_2,
/*310496*/                  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>>, VR256X:{ *:[v8f32] }:$src2), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                            // Dst: (VFNMSUB132PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*310510*/                /*SwitchType*/ 20, MVT::v8f64,// ->310532
/*310512*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*310514*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*310517*/                  OPC_EmitMergeInputChains1_2,
/*310518*/                  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>>, VR512:{ *:[v8f64] }:$src2), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                            // Dst: (VFNMSUB132PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*310532*/                0, // EndSwitchType
/*310533*/              /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->310602
/*310536*/                OPC_RecordMemRef,
/*310537*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*310538*/                OPC_CheckFoldableChainNode,
/*310539*/                OPC_RecordChild1, // #3 = $src3
/*310540*/                OPC_Scope, 29, /*->310571*/ // 2 children in Scope
/*310542*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*310544*/                  OPC_MoveParent,
/*310545*/                  OPC_RecordChild2, // #4 = $src2
/*310546*/                  OPC_MoveParent,
/*310547*/                  OPC_CheckChild2Same, 1,
/*310549*/                  OPC_CheckType, MVT::v8f32,
/*310551*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*310553*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*310556*/                  OPC_EmitMergeInputChains1_2,
/*310557*/                  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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src2), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                            // Dst: (VFNMSUB132PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*310571*/                /*Scope*/ 29, /*->310601*/
/*310572*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*310574*/                  OPC_MoveParent,
/*310575*/                  OPC_RecordChild2, // #4 = $src2
/*310576*/                  OPC_MoveParent,
/*310577*/                  OPC_CheckChild2Same, 1,
/*310579*/                  OPC_CheckType, MVT::v8f64,
/*310581*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*310583*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*310586*/                  OPC_EmitMergeInputChains1_2,
/*310587*/                  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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src2), VR512:{ *:[v8f64] }:$src1) - Complexity = 28
                            // Dst: (VFNMSUB132PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*310601*/                0, /*End of Scope*/
/*310602*/              0, // EndSwitchOpcode
/*310603*/            0, /*End of Scope*/
/*310604*/          /*SwitchOpcode*/ 83, TARGET_VAL(X86ISD::STRICT_VFPROUND),// ->310690
/*310607*/            OPC_RecordNode, // #1 = 'X86strict_vfpround' chained node
/*310608*/            OPC_CheckFoldableChainNode,
/*310609*/            OPC_MoveChild1,
/*310610*/            OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->310651
/*310614*/              OPC_RecordMemRef,
/*310615*/              OPC_RecordNode, // #2 = 'ld' chained node
/*310616*/              OPC_CheckFoldableChainNode,
/*310617*/              OPC_RecordChild1, // #3 = $src
/*310618*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*310620*/              OPC_CheckPredicate, 9, // Predicate_load
/*310622*/              OPC_CheckType, MVT::v8f64,
/*310624*/              OPC_MoveParent,
/*310625*/              OPC_MoveParent,
/*310626*/              OPC_RecordChild2, // #4 = $src0
/*310627*/              OPC_CheckType, MVT::v8f32,
/*310629*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*310631*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*310634*/              OPC_EmitMergeInputChains, 2, 1, 2, 
/*310638*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_vfpround:{ *:[v8f32] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                        // Dst: (VCVTPD2PSZrmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*310651*/            /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->310689
/*310654*/              OPC_RecordMemRef,
/*310655*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*310656*/              OPC_CheckFoldableChainNode,
/*310657*/              OPC_RecordChild1, // #3 = $src
/*310658*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*310660*/              OPC_CheckType, MVT::v8f64,
/*310662*/              OPC_MoveParent,
/*310663*/              OPC_MoveParent,
/*310664*/              OPC_RecordChild2, // #4 = $src0
/*310665*/              OPC_CheckType, MVT::v8f32,
/*310667*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*310669*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*310672*/              OPC_EmitMergeInputChains, 2, 1, 2, 
/*310676*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_vfpround:{ *:[v8f32] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                        // Dst: (VCVTPD2PSZrmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*310689*/            0, // EndSwitchOpcode
/*310690*/          /*SwitchOpcode*/ 75, TARGET_VAL(X86ISD::VFPROUND),// ->310768
/*310693*/            OPC_MoveChild0,
/*310694*/            OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->310732
/*310698*/              OPC_RecordMemRef,
/*310699*/              OPC_RecordNode, // #1 = 'ld' chained node
/*310700*/              OPC_CheckFoldableChainNode,
/*310701*/              OPC_RecordChild1, // #2 = $src
/*310702*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*310704*/              OPC_CheckPredicate, 9, // Predicate_load
/*310706*/              OPC_CheckType, MVT::v8f64,
/*310708*/              OPC_MoveParent,
/*310709*/              OPC_MoveParent,
/*310710*/              OPC_RecordChild2, // #3 = $src0
/*310711*/              OPC_CheckType, MVT::v8f32,
/*310713*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*310715*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*310718*/              OPC_EmitMergeInputChains1_1,
/*310719*/              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, (X86vfpround:{ *:[v8f32] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                        // Dst: (VCVTPD2PSZrmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*310732*/            /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->310767
/*310735*/              OPC_RecordMemRef,
/*310736*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*310737*/              OPC_CheckFoldableChainNode,
/*310738*/              OPC_RecordChild1, // #2 = $src
/*310739*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*310741*/              OPC_CheckType, MVT::v8f64,
/*310743*/              OPC_MoveParent,
/*310744*/              OPC_MoveParent,
/*310745*/              OPC_RecordChild2, // #3 = $src0
/*310746*/              OPC_CheckType, MVT::v8f32,
/*310748*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*310750*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*310753*/              OPC_EmitMergeInputChains1_1,
/*310754*/              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, (X86vfpround:{ *:[v8f32] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                        // Dst: (VCVTPD2PSZrmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*310767*/            0, // EndSwitchOpcode
/*310768*/          /*SwitchOpcode*/ 39, TARGET_VAL(ISD::STRICT_FP_EXTEND),// ->310810
/*310771*/            OPC_RecordNode, // #1 = 'strict_fpextend' chained node
/*310772*/            OPC_CheckFoldableChainNode,
/*310773*/            OPC_MoveChild1,
/*310774*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*310777*/            OPC_RecordMemRef,
/*310778*/            OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*310779*/            OPC_CheckFoldableChainNode,
/*310780*/            OPC_RecordChild1, // #3 = $src
/*310781*/            OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*310783*/            OPC_MoveParent,
/*310784*/            OPC_MoveParent,
/*310785*/            OPC_RecordChild2, // #4 = $src0
/*310786*/            OPC_CheckType, MVT::v8f64,
/*310788*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*310790*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*310793*/            OPC_EmitMergeInputChains, 2, 1, 2, 
/*310797*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (strict_fpextend:{ *:[v8f64] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                      // Dst: (VCVTPS2PDZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*310810*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::FP_EXTEND),// ->310847
/*310813*/            OPC_MoveChild0,
/*310814*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*310817*/            OPC_RecordMemRef,
/*310818*/            OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*310819*/            OPC_CheckFoldableChainNode,
/*310820*/            OPC_RecordChild1, // #2 = $src
/*310821*/            OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*310823*/            OPC_MoveParent,
/*310824*/            OPC_MoveParent,
/*310825*/            OPC_RecordChild2, // #3 = $src0
/*310826*/            OPC_CheckType, MVT::v8f64,
/*310828*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*310830*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*310833*/            OPC_EmitMergeInputChains1_1,
/*310834*/            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] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                      // Dst: (VCVTPS2PDZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*310847*/          /*SwitchOpcode*/ 123|128,1/*251*/, TARGET_VAL(ISD::STRICT_SINT_TO_FP),// ->311102
/*310851*/            OPC_RecordNode, // #1 = 'strict_sint_to_fp' chained node
/*310852*/            OPC_CheckFoldableChainNode,
/*310853*/            OPC_MoveChild1,
/*310854*/            OPC_SwitchOpcode /*2 cases */, 120, TARGET_VAL(ISD::LOAD),// ->310978
/*310858*/              OPC_RecordMemRef,
/*310859*/              OPC_RecordNode, // #2 = 'ld' chained node
/*310860*/              OPC_CheckFoldableChainNode,
/*310861*/              OPC_RecordChild1, // #3 = $src
/*310862*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*310864*/              OPC_CheckPredicate, 9, // Predicate_load
/*310866*/              OPC_SwitchType /*2 cases */, 53, MVT::v8i32,// ->310922
/*310869*/                OPC_MoveParent,
/*310870*/                OPC_MoveParent,
/*310871*/                OPC_RecordChild2, // #4 = $src0
/*310872*/                OPC_SwitchType /*2 cases */, 22, MVT::v8f64,// ->310897
/*310875*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*310877*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*310880*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*310884*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (strict_sint_to_fp:{ *:[v8f64] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                            // Dst: (VCVTDQ2PDZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*310897*/                /*SwitchType*/ 22, MVT::v8f32,// ->310921
/*310899*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*310901*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*310904*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*310908*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (strict_sint_to_fp:{ *:[v8f32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                            // Dst: (VCVTDQ2PSZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*310921*/                0, // EndSwitchType
/*310922*/              /*SwitchType*/ 53, MVT::v8i64,// ->310977
/*310924*/                OPC_MoveParent,
/*310925*/                OPC_MoveParent,
/*310926*/                OPC_RecordChild2, // #4 = $src0
/*310927*/                OPC_SwitchType /*2 cases */, 22, MVT::v8f64,// ->310952
/*310930*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*310932*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*310935*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*310939*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (strict_sint_to_fp:{ *:[v8f64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                            // Dst: (VCVTQQ2PDZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*310952*/                /*SwitchType*/ 22, MVT::v8f32,// ->310976
/*310954*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*310956*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*310959*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*310963*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PSZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (strict_sint_to_fp:{ *:[v8f32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                            // Dst: (VCVTQQ2PSZrmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*310976*/                0, // EndSwitchType
/*310977*/              0, // EndSwitchType
/*310978*/            /*SwitchOpcode*/ 120, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->311101
/*310981*/              OPC_RecordMemRef,
/*310982*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*310983*/              OPC_CheckFoldableChainNode,
/*310984*/              OPC_RecordChild1, // #3 = $src
/*310985*/              OPC_SwitchType /*2 cases */, 55, MVT::v8i32,// ->311043
/*310988*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*310990*/                OPC_MoveParent,
/*310991*/                OPC_MoveParent,
/*310992*/                OPC_RecordChild2, // #4 = $src0
/*310993*/                OPC_SwitchType /*2 cases */, 22, MVT::v8f64,// ->311018
/*310996*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*310998*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*311001*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*311005*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (strict_sint_to_fp:{ *:[v8f64] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                            // Dst: (VCVTDQ2PDZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*311018*/                /*SwitchType*/ 22, MVT::v8f32,// ->311042
/*311020*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*311022*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*311025*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*311029*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (strict_sint_to_fp:{ *:[v8f32] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                            // Dst: (VCVTDQ2PSZ256rmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*311042*/                0, // EndSwitchType
/*311043*/              /*SwitchType*/ 55, MVT::v8i64,// ->311100
/*311045*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*311047*/                OPC_MoveParent,
/*311048*/                OPC_MoveParent,
/*311049*/                OPC_RecordChild2, // #4 = $src0
/*311050*/                OPC_SwitchType /*2 cases */, 22, MVT::v8f64,// ->311075
/*311053*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*311055*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*311058*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*311062*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (strict_sint_to_fp:{ *:[v8f64] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                            // Dst: (VCVTQQ2PDZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*311075*/                /*SwitchType*/ 22, MVT::v8f32,// ->311099
/*311077*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*311079*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*311082*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*311086*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PSZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (strict_sint_to_fp:{ *:[v8f32] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                            // Dst: (VCVTQQ2PSZrmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*311099*/                0, // EndSwitchType
/*311100*/              0, // EndSwitchType
/*311101*/            0, // EndSwitchOpcode
/*311102*/          /*SwitchOpcode*/ 97|128,1/*225*/, TARGET_VAL(ISD::SINT_TO_FP),// ->311331
/*311106*/            OPC_MoveChild0,
/*311107*/            OPC_SwitchOpcode /*2 cases */, 108, TARGET_VAL(ISD::LOAD),// ->311219
/*311111*/              OPC_RecordMemRef,
/*311112*/              OPC_RecordNode, // #1 = 'ld' chained node
/*311113*/              OPC_CheckFoldableChainNode,
/*311114*/              OPC_RecordChild1, // #2 = $src
/*311115*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*311117*/              OPC_CheckPredicate, 9, // Predicate_load
/*311119*/              OPC_SwitchType /*2 cases */, 47, MVT::v8i32,// ->311169
/*311122*/                OPC_MoveParent,
/*311123*/                OPC_MoveParent,
/*311124*/                OPC_RecordChild2, // #3 = $src0
/*311125*/                OPC_SwitchType /*2 cases */, 19, MVT::v8f64,// ->311147
/*311128*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*311130*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*311133*/                  OPC_EmitMergeInputChains1_1,
/*311134*/                  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] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                            // Dst: (VCVTDQ2PDZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*311147*/                /*SwitchType*/ 19, MVT::v8f32,// ->311168
/*311149*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*311151*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*311154*/                  OPC_EmitMergeInputChains1_1,
/*311155*/                  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] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                            // Dst: (VCVTDQ2PSZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*311168*/                0, // EndSwitchType
/*311169*/              /*SwitchType*/ 47, MVT::v8i64,// ->311218
/*311171*/                OPC_MoveParent,
/*311172*/                OPC_MoveParent,
/*311173*/                OPC_RecordChild2, // #3 = $src0
/*311174*/                OPC_SwitchType /*2 cases */, 19, MVT::v8f64,// ->311196
/*311177*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*311179*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*311182*/                  OPC_EmitMergeInputChains1_1,
/*311183*/                  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>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                            // Dst: (VCVTQQ2PDZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*311196*/                /*SwitchType*/ 19, MVT::v8f32,// ->311217
/*311198*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*311200*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*311203*/                  OPC_EmitMergeInputChains1_1,
/*311204*/                  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>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                            // Dst: (VCVTQQ2PSZrmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*311217*/                0, // EndSwitchType
/*311218*/              0, // EndSwitchType
/*311219*/            /*SwitchOpcode*/ 108, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->311330
/*311222*/              OPC_RecordMemRef,
/*311223*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*311224*/              OPC_CheckFoldableChainNode,
/*311225*/              OPC_RecordChild1, // #2 = $src
/*311226*/              OPC_SwitchType /*2 cases */, 49, MVT::v8i32,// ->311278
/*311229*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*311231*/                OPC_MoveParent,
/*311232*/                OPC_MoveParent,
/*311233*/                OPC_RecordChild2, // #3 = $src0
/*311234*/                OPC_SwitchType /*2 cases */, 19, MVT::v8f64,// ->311256
/*311237*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*311239*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*311242*/                  OPC_EmitMergeInputChains1_1,
/*311243*/                  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] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                            // Dst: (VCVTDQ2PDZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*311256*/                /*SwitchType*/ 19, MVT::v8f32,// ->311277
/*311258*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*311260*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*311263*/                  OPC_EmitMergeInputChains1_1,
/*311264*/                  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] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                            // Dst: (VCVTDQ2PSZ256rmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*311277*/                0, // EndSwitchType
/*311278*/              /*SwitchType*/ 49, MVT::v8i64,// ->311329
/*311280*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*311282*/                OPC_MoveParent,
/*311283*/                OPC_MoveParent,
/*311284*/                OPC_RecordChild2, // #3 = $src0
/*311285*/                OPC_SwitchType /*2 cases */, 19, MVT::v8f64,// ->311307
/*311288*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*311290*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*311293*/                  OPC_EmitMergeInputChains1_1,
/*311294*/                  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] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                            // Dst: (VCVTQQ2PDZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*311307*/                /*SwitchType*/ 19, MVT::v8f32,// ->311328
/*311309*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*311311*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*311314*/                  OPC_EmitMergeInputChains1_1,
/*311315*/                  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] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                            // Dst: (VCVTQQ2PSZrmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*311328*/                0, // EndSwitchType
/*311329*/              0, // EndSwitchType
/*311330*/            0, // EndSwitchOpcode
/*311331*/          /*SwitchOpcode*/ 123|128,1/*251*/, TARGET_VAL(ISD::STRICT_UINT_TO_FP),// ->311586
/*311335*/            OPC_RecordNode, // #1 = 'strict_uint_to_fp' chained node
/*311336*/            OPC_CheckFoldableChainNode,
/*311337*/            OPC_MoveChild1,
/*311338*/            OPC_SwitchOpcode /*2 cases */, 120, TARGET_VAL(ISD::LOAD),// ->311462
/*311342*/              OPC_RecordMemRef,
/*311343*/              OPC_RecordNode, // #2 = 'ld' chained node
/*311344*/              OPC_CheckFoldableChainNode,
/*311345*/              OPC_RecordChild1, // #3 = $src
/*311346*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*311348*/              OPC_CheckPredicate, 9, // Predicate_load
/*311350*/              OPC_SwitchType /*2 cases */, 53, MVT::v8i32,// ->311406
/*311353*/                OPC_MoveParent,
/*311354*/                OPC_MoveParent,
/*311355*/                OPC_RecordChild2, // #4 = $src0
/*311356*/                OPC_SwitchType /*2 cases */, 22, MVT::v8f64,// ->311381
/*311359*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*311361*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*311364*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*311368*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (strict_uint_to_fp:{ *:[v8f64] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                            // Dst: (VCVTUDQ2PDZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*311381*/                /*SwitchType*/ 22, MVT::v8f32,// ->311405
/*311383*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*311385*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*311388*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*311392*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PSZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (strict_uint_to_fp:{ *:[v8f32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                            // Dst: (VCVTUDQ2PSZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*311405*/                0, // EndSwitchType
/*311406*/              /*SwitchType*/ 53, MVT::v8i64,// ->311461
/*311408*/                OPC_MoveParent,
/*311409*/                OPC_MoveParent,
/*311410*/                OPC_RecordChild2, // #4 = $src0
/*311411*/                OPC_SwitchType /*2 cases */, 22, MVT::v8f64,// ->311436
/*311414*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*311416*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*311419*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*311423*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (strict_uint_to_fp:{ *:[v8f64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                            // Dst: (VCVTUQQ2PDZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*311436*/                /*SwitchType*/ 22, MVT::v8f32,// ->311460
/*311438*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*311440*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*311443*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*311447*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PSZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (strict_uint_to_fp:{ *:[v8f32] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                            // Dst: (VCVTUQQ2PSZrmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*311460*/                0, // EndSwitchType
/*311461*/              0, // EndSwitchType
/*311462*/            /*SwitchOpcode*/ 120, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->311585
/*311465*/              OPC_RecordMemRef,
/*311466*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*311467*/              OPC_CheckFoldableChainNode,
/*311468*/              OPC_RecordChild1, // #3 = $src
/*311469*/              OPC_SwitchType /*2 cases */, 55, MVT::v8i32,// ->311527
/*311472*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*311474*/                OPC_MoveParent,
/*311475*/                OPC_MoveParent,
/*311476*/                OPC_RecordChild2, // #4 = $src0
/*311477*/                OPC_SwitchType /*2 cases */, 22, MVT::v8f64,// ->311502
/*311480*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*311482*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*311485*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*311489*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (strict_uint_to_fp:{ *:[v8f64] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                            // Dst: (VCVTUDQ2PDZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*311502*/                /*SwitchType*/ 22, MVT::v8f32,// ->311526
/*311504*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*311506*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*311509*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*311513*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PSZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (strict_uint_to_fp:{ *:[v8f32] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                            // Dst: (VCVTUDQ2PSZ256rmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*311526*/                0, // EndSwitchType
/*311527*/              /*SwitchType*/ 55, MVT::v8i64,// ->311584
/*311529*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*311531*/                OPC_MoveParent,
/*311532*/                OPC_MoveParent,
/*311533*/                OPC_RecordChild2, // #4 = $src0
/*311534*/                OPC_SwitchType /*2 cases */, 22, MVT::v8f64,// ->311559
/*311537*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*311539*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*311542*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*311546*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PDZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (strict_uint_to_fp:{ *:[v8f64] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                            // Dst: (VCVTUQQ2PDZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*311559*/                /*SwitchType*/ 22, MVT::v8f32,// ->311583
/*311561*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*311563*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*311566*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*311570*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PSZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (strict_uint_to_fp:{ *:[v8f32] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                            // Dst: (VCVTUQQ2PSZrmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*311583*/                0, // EndSwitchType
/*311584*/              0, // EndSwitchType
/*311585*/            0, // EndSwitchOpcode
/*311586*/          /*SwitchOpcode*/ 97|128,1/*225*/, TARGET_VAL(ISD::UINT_TO_FP),// ->311815
/*311590*/            OPC_MoveChild0,
/*311591*/            OPC_SwitchOpcode /*2 cases */, 108, TARGET_VAL(ISD::LOAD),// ->311703
/*311595*/              OPC_RecordMemRef,
/*311596*/              OPC_RecordNode, // #1 = 'ld' chained node
/*311597*/              OPC_CheckFoldableChainNode,
/*311598*/              OPC_RecordChild1, // #2 = $src
/*311599*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*311601*/              OPC_CheckPredicate, 9, // Predicate_load
/*311603*/              OPC_SwitchType /*2 cases */, 47, MVT::v8i32,// ->311653
/*311606*/                OPC_MoveParent,
/*311607*/                OPC_MoveParent,
/*311608*/                OPC_RecordChild2, // #3 = $src0
/*311609*/                OPC_SwitchType /*2 cases */, 19, MVT::v8f64,// ->311631
/*311612*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*311614*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*311617*/                  OPC_EmitMergeInputChains1_1,
/*311618*/                  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] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                            // Dst: (VCVTUDQ2PDZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*311631*/                /*SwitchType*/ 19, MVT::v8f32,// ->311652
/*311633*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*311635*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*311638*/                  OPC_EmitMergeInputChains1_1,
/*311639*/                  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] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                            // Dst: (VCVTUDQ2PSZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*311652*/                0, // EndSwitchType
/*311653*/              /*SwitchType*/ 47, MVT::v8i64,// ->311702
/*311655*/                OPC_MoveParent,
/*311656*/                OPC_MoveParent,
/*311657*/                OPC_RecordChild2, // #3 = $src0
/*311658*/                OPC_SwitchType /*2 cases */, 19, MVT::v8f64,// ->311680
/*311661*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*311663*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*311666*/                  OPC_EmitMergeInputChains1_1,
/*311667*/                  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>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                            // Dst: (VCVTUQQ2PDZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*311680*/                /*SwitchType*/ 19, MVT::v8f32,// ->311701
/*311682*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*311684*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*311687*/                  OPC_EmitMergeInputChains1_1,
/*311688*/                  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>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                            // Dst: (VCVTUQQ2PSZrmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*311701*/                0, // EndSwitchType
/*311702*/              0, // EndSwitchType
/*311703*/            /*SwitchOpcode*/ 108, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->311814
/*311706*/              OPC_RecordMemRef,
/*311707*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*311708*/              OPC_CheckFoldableChainNode,
/*311709*/              OPC_RecordChild1, // #2 = $src
/*311710*/              OPC_SwitchType /*2 cases */, 49, MVT::v8i32,// ->311762
/*311713*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*311715*/                OPC_MoveParent,
/*311716*/                OPC_MoveParent,
/*311717*/                OPC_RecordChild2, // #3 = $src0
/*311718*/                OPC_SwitchType /*2 cases */, 19, MVT::v8f64,// ->311740
/*311721*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*311723*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*311726*/                  OPC_EmitMergeInputChains1_1,
/*311727*/                  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] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                            // Dst: (VCVTUDQ2PDZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*311740*/                /*SwitchType*/ 19, MVT::v8f32,// ->311761
/*311742*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*311744*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*311747*/                  OPC_EmitMergeInputChains1_1,
/*311748*/                  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] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                            // Dst: (VCVTUDQ2PSZ256rmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*311761*/                0, // EndSwitchType
/*311762*/              /*SwitchType*/ 49, MVT::v8i64,// ->311813
/*311764*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*311766*/                OPC_MoveParent,
/*311767*/                OPC_MoveParent,
/*311768*/                OPC_RecordChild2, // #3 = $src0
/*311769*/                OPC_SwitchType /*2 cases */, 19, MVT::v8f64,// ->311791
/*311772*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*311774*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*311777*/                  OPC_EmitMergeInputChains1_1,
/*311778*/                  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] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                            // Dst: (VCVTUQQ2PDZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*311791*/                /*SwitchType*/ 19, MVT::v8f32,// ->311812
/*311793*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*311795*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*311798*/                  OPC_EmitMergeInputChains1_1,
/*311799*/                  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] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                            // Dst: (VCVTUQQ2PSZrmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*311812*/                0, // EndSwitchType
/*311813*/              0, // EndSwitchType
/*311814*/            0, // EndSwitchOpcode
/*311815*/          /*SwitchOpcode*/ 38, TARGET_VAL(X86ISD::CVTPH2PS),// ->311856
/*311818*/            OPC_MoveChild0,
/*311819*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*311822*/            OPC_RecordMemRef,
/*311823*/            OPC_RecordNode, // #1 = 'ld' chained node
/*311824*/            OPC_CheckFoldableChainNode,
/*311825*/            OPC_RecordChild1, // #2 = $src
/*311826*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*311828*/            OPC_CheckPredicate, 9, // Predicate_load
/*311830*/            OPC_CheckType, MVT::v8i16,
/*311832*/            OPC_MoveParent,
/*311833*/            OPC_MoveParent,
/*311834*/            OPC_RecordChild2, // #3 = $src0
/*311835*/            OPC_CheckType, MVT::v8f32,
/*311837*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*311839*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*311842*/            OPC_EmitMergeInputChains1_1,
/*311843*/            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] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                      // Dst: (VCVTPH2PSZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*311856*/          /*SwitchOpcode*/ 124, TARGET_VAL(X86ISD::RSQRT14),// ->311983
/*311859*/            OPC_MoveChild0,
/*311860*/            OPC_SwitchOpcode /*2 cases */, 55, TARGET_VAL(ISD::LOAD),// ->311919
/*311864*/              OPC_RecordMemRef,
/*311865*/              OPC_RecordNode, // #1 = 'ld' chained node
/*311866*/              OPC_CheckFoldableChainNode,
/*311867*/              OPC_RecordChild1, // #2 = $src
/*311868*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*311870*/              OPC_CheckPredicate, 9, // Predicate_load
/*311872*/              OPC_MoveParent,
/*311873*/              OPC_MoveParent,
/*311874*/              OPC_RecordChild2, // #3 = $src0
/*311875*/              OPC_SwitchType /*2 cases */, 19, MVT::v8f64,// ->311897
/*311878*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*311880*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*311883*/                OPC_EmitMergeInputChains1_1,
/*311884*/                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>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                          // Dst: (VRSQRT14PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*311897*/              /*SwitchType*/ 19, MVT::v8f32,// ->311918
/*311899*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*311901*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*311904*/                OPC_EmitMergeInputChains1_1,
/*311905*/                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>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                          // Dst: (VRSQRT14PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*311918*/              0, // EndSwitchType
/*311919*/            /*SwitchOpcode*/ 60, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->311982
/*311922*/              OPC_RecordMemRef,
/*311923*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*311924*/              OPC_CheckFoldableChainNode,
/*311925*/              OPC_RecordChild1, // #2 = $src
/*311926*/              OPC_Scope, 26, /*->311954*/ // 2 children in Scope
/*311928*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*311930*/                OPC_MoveParent,
/*311931*/                OPC_MoveParent,
/*311932*/                OPC_RecordChild2, // #3 = $src0
/*311933*/                OPC_CheckType, MVT::v8f64,
/*311935*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*311937*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*311940*/                OPC_EmitMergeInputChains1_1,
/*311941*/                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] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                          // Dst: (VRSQRT14PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*311954*/              /*Scope*/ 26, /*->311981*/
/*311955*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*311957*/                OPC_MoveParent,
/*311958*/                OPC_MoveParent,
/*311959*/                OPC_RecordChild2, // #3 = $src0
/*311960*/                OPC_CheckType, MVT::v8f32,
/*311962*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*311964*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*311967*/                OPC_EmitMergeInputChains1_1,
/*311968*/                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] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                          // Dst: (VRSQRT14PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*311981*/              0, /*End of Scope*/
/*311982*/            0, // EndSwitchOpcode
/*311983*/          /*SwitchOpcode*/ 124, TARGET_VAL(X86ISD::RCP14),// ->312110
/*311986*/            OPC_MoveChild0,
/*311987*/            OPC_SwitchOpcode /*2 cases */, 55, TARGET_VAL(ISD::LOAD),// ->312046
/*311991*/              OPC_RecordMemRef,
/*311992*/              OPC_RecordNode, // #1 = 'ld' chained node
/*311993*/              OPC_CheckFoldableChainNode,
/*311994*/              OPC_RecordChild1, // #2 = $src
/*311995*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*311997*/              OPC_CheckPredicate, 9, // Predicate_load
/*311999*/              OPC_MoveParent,
/*312000*/              OPC_MoveParent,
/*312001*/              OPC_RecordChild2, // #3 = $src0
/*312002*/              OPC_SwitchType /*2 cases */, 19, MVT::v8f64,// ->312024
/*312005*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*312007*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*312010*/                OPC_EmitMergeInputChains1_1,
/*312011*/                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>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                          // Dst: (VRCP14PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*312024*/              /*SwitchType*/ 19, MVT::v8f32,// ->312045
/*312026*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*312028*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*312031*/                OPC_EmitMergeInputChains1_1,
/*312032*/                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>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                          // Dst: (VRCP14PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*312045*/              0, // EndSwitchType
/*312046*/            /*SwitchOpcode*/ 60, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->312109
/*312049*/              OPC_RecordMemRef,
/*312050*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*312051*/              OPC_CheckFoldableChainNode,
/*312052*/              OPC_RecordChild1, // #2 = $src
/*312053*/              OPC_Scope, 26, /*->312081*/ // 2 children in Scope
/*312055*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*312057*/                OPC_MoveParent,
/*312058*/                OPC_MoveParent,
/*312059*/                OPC_RecordChild2, // #3 = $src0
/*312060*/                OPC_CheckType, MVT::v8f64,
/*312062*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*312064*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*312067*/                OPC_EmitMergeInputChains1_1,
/*312068*/                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] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                          // Dst: (VRCP14PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*312081*/              /*Scope*/ 26, /*->312108*/
/*312082*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*312084*/                OPC_MoveParent,
/*312085*/                OPC_MoveParent,
/*312086*/                OPC_RecordChild2, // #3 = $src0
/*312087*/                OPC_CheckType, MVT::v8f32,
/*312089*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*312091*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*312094*/                OPC_EmitMergeInputChains1_1,
/*312095*/                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] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                          // Dst: (VRCP14PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*312108*/              0, /*End of Scope*/
/*312109*/            0, // EndSwitchOpcode
/*312110*/          /*SwitchOpcode*/ 71, TARGET_VAL(X86ISD::RSQRT28),// ->312184
/*312113*/            OPC_MoveChild0,
/*312114*/            OPC_SwitchOpcode /*2 cases */, 32, TARGET_VAL(ISD::LOAD),// ->312150
/*312118*/              OPC_RecordMemRef,
/*312119*/              OPC_RecordNode, // #1 = 'ld' chained node
/*312120*/              OPC_CheckFoldableChainNode,
/*312121*/              OPC_RecordChild1, // #2 = $src
/*312122*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*312124*/              OPC_CheckPredicate, 9, // Predicate_load
/*312126*/              OPC_MoveParent,
/*312127*/              OPC_MoveParent,
/*312128*/              OPC_RecordChild2, // #3 = $src0
/*312129*/              OPC_CheckType, MVT::v8f64,
/*312131*/              OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*312133*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*312136*/              OPC_EmitMergeInputChains1_1,
/*312137*/              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>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                        // Dst: (VRSQRT28PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*312150*/            /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->312183
/*312153*/              OPC_RecordMemRef,
/*312154*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*312155*/              OPC_CheckFoldableChainNode,
/*312156*/              OPC_RecordChild1, // #2 = $src
/*312157*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*312159*/              OPC_MoveParent,
/*312160*/              OPC_MoveParent,
/*312161*/              OPC_RecordChild2, // #3 = $src0
/*312162*/              OPC_CheckType, MVT::v8f64,
/*312164*/              OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*312166*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*312169*/              OPC_EmitMergeInputChains1_1,
/*312170*/              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] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                        // Dst: (VRSQRT28PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*312183*/            0, // EndSwitchOpcode
/*312184*/          /*SwitchOpcode*/ 71, TARGET_VAL(X86ISD::RCP28),// ->312258
/*312187*/            OPC_MoveChild0,
/*312188*/            OPC_SwitchOpcode /*2 cases */, 32, TARGET_VAL(ISD::LOAD),// ->312224
/*312192*/              OPC_RecordMemRef,
/*312193*/              OPC_RecordNode, // #1 = 'ld' chained node
/*312194*/              OPC_CheckFoldableChainNode,
/*312195*/              OPC_RecordChild1, // #2 = $src
/*312196*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*312198*/              OPC_CheckPredicate, 9, // Predicate_load
/*312200*/              OPC_MoveParent,
/*312201*/              OPC_MoveParent,
/*312202*/              OPC_RecordChild2, // #3 = $src0
/*312203*/              OPC_CheckType, MVT::v8f64,
/*312205*/              OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*312207*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*312210*/              OPC_EmitMergeInputChains1_1,
/*312211*/              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>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                        // Dst: (VRCP28PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*312224*/            /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->312257
/*312227*/              OPC_RecordMemRef,
/*312228*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*312229*/              OPC_CheckFoldableChainNode,
/*312230*/              OPC_RecordChild1, // #2 = $src
/*312231*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*312233*/              OPC_MoveParent,
/*312234*/              OPC_MoveParent,
/*312235*/              OPC_RecordChild2, // #3 = $src0
/*312236*/              OPC_CheckType, MVT::v8f64,
/*312238*/              OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*312240*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*312243*/              OPC_EmitMergeInputChains1_1,
/*312244*/              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] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                        // Dst: (VRCP28PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*312257*/            0, // EndSwitchOpcode
/*312258*/          /*SwitchOpcode*/ 71, TARGET_VAL(X86ISD::EXP2),// ->312332
/*312261*/            OPC_MoveChild0,
/*312262*/            OPC_SwitchOpcode /*2 cases */, 32, TARGET_VAL(ISD::LOAD),// ->312298
/*312266*/              OPC_RecordMemRef,
/*312267*/              OPC_RecordNode, // #1 = 'ld' chained node
/*312268*/              OPC_CheckFoldableChainNode,
/*312269*/              OPC_RecordChild1, // #2 = $src
/*312270*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*312272*/              OPC_CheckPredicate, 9, // Predicate_load
/*312274*/              OPC_MoveParent,
/*312275*/              OPC_MoveParent,
/*312276*/              OPC_RecordChild2, // #3 = $src0
/*312277*/              OPC_CheckType, MVT::v8f64,
/*312279*/              OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*312281*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*312284*/              OPC_EmitMergeInputChains1_1,
/*312285*/              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>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                        // Dst: (VEXP2PDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*312298*/            /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->312331
/*312301*/              OPC_RecordMemRef,
/*312302*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*312303*/              OPC_CheckFoldableChainNode,
/*312304*/              OPC_RecordChild1, // #2 = $src
/*312305*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*312307*/              OPC_MoveParent,
/*312308*/              OPC_MoveParent,
/*312309*/              OPC_RecordChild2, // #3 = $src0
/*312310*/              OPC_CheckType, MVT::v8f64,
/*312312*/              OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*312314*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*312317*/              OPC_EmitMergeInputChains1_1,
/*312318*/              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] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                        // Dst: (VEXP2PDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*312331*/            0, // EndSwitchOpcode
/*312332*/          /*SwitchOpcode*/ 124, TARGET_VAL(X86ISD::FGETEXP),// ->312459
/*312335*/            OPC_MoveChild0,
/*312336*/            OPC_SwitchOpcode /*2 cases */, 55, TARGET_VAL(ISD::LOAD),// ->312395
/*312340*/              OPC_RecordMemRef,
/*312341*/              OPC_RecordNode, // #1 = 'ld' chained node
/*312342*/              OPC_CheckFoldableChainNode,
/*312343*/              OPC_RecordChild1, // #2 = $src
/*312344*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*312346*/              OPC_CheckPredicate, 9, // Predicate_load
/*312348*/              OPC_MoveParent,
/*312349*/              OPC_MoveParent,
/*312350*/              OPC_RecordChild2, // #3 = $src0
/*312351*/              OPC_SwitchType /*2 cases */, 19, MVT::v8f64,// ->312373
/*312354*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*312356*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*312359*/                OPC_EmitMergeInputChains1_1,
/*312360*/                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, (X86fgetexp:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                          // Dst: (VGETEXPPDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*312373*/              /*SwitchType*/ 19, MVT::v8f32,// ->312394
/*312375*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*312377*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*312380*/                OPC_EmitMergeInputChains1_1,
/*312381*/                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, (X86fgetexp:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                          // Dst: (VGETEXPPSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*312394*/              0, // EndSwitchType
/*312395*/            /*SwitchOpcode*/ 60, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->312458
/*312398*/              OPC_RecordMemRef,
/*312399*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*312400*/              OPC_CheckFoldableChainNode,
/*312401*/              OPC_RecordChild1, // #2 = $src
/*312402*/              OPC_Scope, 26, /*->312430*/ // 2 children in Scope
/*312404*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*312406*/                OPC_MoveParent,
/*312407*/                OPC_MoveParent,
/*312408*/                OPC_RecordChild2, // #3 = $src0
/*312409*/                OPC_CheckType, MVT::v8f64,
/*312411*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*312413*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*312416*/                OPC_EmitMergeInputChains1_1,
/*312417*/                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, (X86fgetexp:{ *:[v8f64] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                          // Dst: (VGETEXPPDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*312430*/              /*Scope*/ 26, /*->312457*/
/*312431*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*312433*/                OPC_MoveParent,
/*312434*/                OPC_MoveParent,
/*312435*/                OPC_RecordChild2, // #3 = $src0
/*312436*/                OPC_CheckType, MVT::v8f32,
/*312438*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*312440*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*312443*/                OPC_EmitMergeInputChains1_1,
/*312444*/                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, (X86fgetexp:{ *:[v8f32] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                          // Dst: (VGETEXPPSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*312457*/              0, /*End of Scope*/
/*312458*/            0, // EndSwitchOpcode
/*312459*/          /*SwitchOpcode*/ 10|128,1/*138*/, TARGET_VAL(ISD::STRICT_FSQRT),// ->312601
/*312463*/            OPC_RecordNode, // #1 = 'strict_fsqrt' chained node
/*312464*/            OPC_CheckFoldableChainNode,
/*312465*/            OPC_MoveChild1,
/*312466*/            OPC_SwitchOpcode /*2 cases */, 61, TARGET_VAL(ISD::LOAD),// ->312531
/*312470*/              OPC_RecordMemRef,
/*312471*/              OPC_RecordNode, // #2 = 'ld' chained node
/*312472*/              OPC_CheckFoldableChainNode,
/*312473*/              OPC_RecordChild1, // #3 = $src
/*312474*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*312476*/              OPC_CheckPredicate, 9, // Predicate_load
/*312478*/              OPC_MoveParent,
/*312479*/              OPC_MoveParent,
/*312480*/              OPC_RecordChild2, // #4 = $src0
/*312481*/              OPC_SwitchType /*2 cases */, 22, MVT::v8f64,// ->312506
/*312484*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*312486*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*312489*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*312493*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDZmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (strict_fsqrt:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                          // Dst: (VSQRTPDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*312506*/              /*SwitchType*/ 22, MVT::v8f32,// ->312530
/*312508*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*312510*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*312513*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*312517*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (strict_fsqrt:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                          // Dst: (VSQRTPSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*312530*/              0, // EndSwitchType
/*312531*/            /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->312600
/*312534*/              OPC_RecordMemRef,
/*312535*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*312536*/              OPC_CheckFoldableChainNode,
/*312537*/              OPC_RecordChild1, // #3 = $src
/*312538*/              OPC_Scope, 29, /*->312569*/ // 2 children in Scope
/*312540*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*312542*/                OPC_MoveParent,
/*312543*/                OPC_MoveParent,
/*312544*/                OPC_RecordChild2, // #4 = $src0
/*312545*/                OPC_CheckType, MVT::v8f64,
/*312547*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*312549*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*312552*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*312556*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (strict_fsqrt:{ *:[v8f64] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                          // Dst: (VSQRTPDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*312569*/              /*Scope*/ 29, /*->312599*/
/*312570*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*312572*/                OPC_MoveParent,
/*312573*/                OPC_MoveParent,
/*312574*/                OPC_RecordChild2, // #4 = $src0
/*312575*/                OPC_CheckType, MVT::v8f32,
/*312577*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*312579*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*312582*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*312586*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (strict_fsqrt:{ *:[v8f32] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                          // Dst: (VSQRTPSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*312599*/              0, /*End of Scope*/
/*312600*/            0, // EndSwitchOpcode
/*312601*/          /*SwitchOpcode*/ 124, TARGET_VAL(ISD::FSQRT),// ->312728
/*312604*/            OPC_MoveChild0,
/*312605*/            OPC_SwitchOpcode /*2 cases */, 55, TARGET_VAL(ISD::LOAD),// ->312664
/*312609*/              OPC_RecordMemRef,
/*312610*/              OPC_RecordNode, // #1 = 'ld' chained node
/*312611*/              OPC_CheckFoldableChainNode,
/*312612*/              OPC_RecordChild1, // #2 = $src
/*312613*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*312615*/              OPC_CheckPredicate, 9, // Predicate_load
/*312617*/              OPC_MoveParent,
/*312618*/              OPC_MoveParent,
/*312619*/              OPC_RecordChild2, // #3 = $src0
/*312620*/              OPC_SwitchType /*2 cases */, 19, MVT::v8f64,// ->312642
/*312623*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*312625*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*312628*/                OPC_EmitMergeInputChains1_1,
/*312629*/                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>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                          // Dst: (VSQRTPDZmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*312642*/              /*SwitchType*/ 19, MVT::v8f32,// ->312663
/*312644*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*312646*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*312649*/                OPC_EmitMergeInputChains1_1,
/*312650*/                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>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                          // Dst: (VSQRTPSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*312663*/              0, // EndSwitchType
/*312664*/            /*SwitchOpcode*/ 60, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->312727
/*312667*/              OPC_RecordMemRef,
/*312668*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*312669*/              OPC_CheckFoldableChainNode,
/*312670*/              OPC_RecordChild1, // #2 = $src
/*312671*/              OPC_Scope, 26, /*->312699*/ // 2 children in Scope
/*312673*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*312675*/                OPC_MoveParent,
/*312676*/                OPC_MoveParent,
/*312677*/                OPC_RecordChild2, // #3 = $src0
/*312678*/                OPC_CheckType, MVT::v8f64,
/*312680*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*312682*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*312685*/                OPC_EmitMergeInputChains1_1,
/*312686*/                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] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                          // Dst: (VSQRTPDZmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*312699*/              /*Scope*/ 26, /*->312726*/
/*312700*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*312702*/                OPC_MoveParent,
/*312703*/                OPC_MoveParent,
/*312704*/                OPC_RecordChild2, // #3 = $src0
/*312705*/                OPC_CheckType, MVT::v8f32,
/*312707*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*312709*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*312712*/                OPC_EmitMergeInputChains1_1,
/*312713*/                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] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                          // Dst: (VSQRTPSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*312726*/              0, /*End of Scope*/
/*312727*/            0, // EndSwitchOpcode
/*312728*/          /*SwitchOpcode*/ 36, TARGET_VAL(X86ISD::MOVSHDUP),// ->312767
/*312731*/            OPC_MoveChild0,
/*312732*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*312735*/            OPC_RecordMemRef,
/*312736*/            OPC_RecordNode, // #1 = 'ld' chained node
/*312737*/            OPC_CheckFoldableChainNode,
/*312738*/            OPC_RecordChild1, // #2 = $src1
/*312739*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*312741*/            OPC_CheckPredicate, 9, // Predicate_load
/*312743*/            OPC_MoveParent,
/*312744*/            OPC_MoveParent,
/*312745*/            OPC_RecordChild2, // #3 = $src0
/*312746*/            OPC_CheckType, MVT::v8f32,
/*312748*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*312750*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*312753*/            OPC_EmitMergeInputChains1_1,
/*312754*/            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>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                      // Dst: (VMOVSHDUPZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*312767*/          /*SwitchOpcode*/ 36, TARGET_VAL(X86ISD::MOVSLDUP),// ->312806
/*312770*/            OPC_MoveChild0,
/*312771*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*312774*/            OPC_RecordMemRef,
/*312775*/            OPC_RecordNode, // #1 = 'ld' chained node
/*312776*/            OPC_CheckFoldableChainNode,
/*312777*/            OPC_RecordChild1, // #2 = $src1
/*312778*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*312780*/            OPC_CheckPredicate, 9, // Predicate_load
/*312782*/            OPC_MoveParent,
/*312783*/            OPC_MoveParent,
/*312784*/            OPC_RecordChild2, // #3 = $src0
/*312785*/            OPC_CheckType, MVT::v8f32,
/*312787*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*312789*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*312792*/            OPC_EmitMergeInputChains1_1,
/*312793*/            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>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                      // Dst: (VMOVSLDUPZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*312806*/          /*SwitchOpcode*/ 36, TARGET_VAL(X86ISD::MOVDDUP),// ->312845
/*312809*/            OPC_MoveChild0,
/*312810*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*312813*/            OPC_RecordMemRef,
/*312814*/            OPC_RecordNode, // #1 = 'ld' chained node
/*312815*/            OPC_CheckFoldableChainNode,
/*312816*/            OPC_RecordChild1, // #2 = $src1
/*312817*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*312819*/            OPC_CheckPredicate, 9, // Predicate_load
/*312821*/            OPC_MoveParent,
/*312822*/            OPC_MoveParent,
/*312823*/            OPC_RecordChild2, // #3 = $src0
/*312824*/            OPC_CheckType, MVT::v8f64,
/*312826*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*312828*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*312831*/            OPC_EmitMergeInputChains1_1,
/*312832*/            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>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                      // Dst: (VMOVDDUPZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*312845*/          /*SwitchOpcode*/ 1|128,1/*129*/, TARGET_VAL(X86ISD::UNPCKH),// ->312978
/*312849*/            OPC_RecordChild0, // #1 = $src1
/*312850*/            OPC_MoveChild1,
/*312851*/            OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->312912
/*312855*/              OPC_RecordMemRef,
/*312856*/              OPC_RecordNode, // #2 = 'ld' chained node
/*312857*/              OPC_CheckFoldableChainNode,
/*312858*/              OPC_RecordChild1, // #3 = $src2
/*312859*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*312861*/              OPC_CheckPredicate, 9, // Predicate_load
/*312863*/              OPC_MoveParent,
/*312864*/              OPC_MoveParent,
/*312865*/              OPC_RecordChild2, // #4 = $src0
/*312866*/              OPC_SwitchType /*2 cases */, 20, MVT::v8f64,// ->312889
/*312869*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*312871*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*312874*/                OPC_EmitMergeInputChains1_2,
/*312875*/                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>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                          // Dst: (VUNPCKHPDZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*312889*/              /*SwitchType*/ 20, MVT::v8f32,// ->312911
/*312891*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*312893*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*312896*/                OPC_EmitMergeInputChains1_2,
/*312897*/                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>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                          // Dst: (VUNPCKHPSZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*312911*/              0, // EndSwitchType
/*312912*/            /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->312977
/*312915*/              OPC_RecordMemRef,
/*312916*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*312917*/              OPC_CheckFoldableChainNode,
/*312918*/              OPC_RecordChild1, // #3 = $src2
/*312919*/              OPC_Scope, 27, /*->312948*/ // 2 children in Scope
/*312921*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*312923*/                OPC_MoveParent,
/*312924*/                OPC_MoveParent,
/*312925*/                OPC_RecordChild2, // #4 = $src0
/*312926*/                OPC_CheckType, MVT::v8f64,
/*312928*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*312930*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*312933*/                OPC_EmitMergeInputChains1_2,
/*312934*/                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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                          // Dst: (VUNPCKHPDZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*312948*/              /*Scope*/ 27, /*->312976*/
/*312949*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*312951*/                OPC_MoveParent,
/*312952*/                OPC_MoveParent,
/*312953*/                OPC_RecordChild2, // #4 = $src0
/*312954*/                OPC_CheckType, MVT::v8f32,
/*312956*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*312958*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*312961*/                OPC_EmitMergeInputChains1_2,
/*312962*/                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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                          // Dst: (VUNPCKHPSZ256rmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*312976*/              0, /*End of Scope*/
/*312977*/            0, // EndSwitchOpcode
/*312978*/          /*SwitchOpcode*/ 1|128,1/*129*/, TARGET_VAL(X86ISD::UNPCKL),// ->313111
/*312982*/            OPC_RecordChild0, // #1 = $src1
/*312983*/            OPC_MoveChild1,
/*312984*/            OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->313045
/*312988*/              OPC_RecordMemRef,
/*312989*/              OPC_RecordNode, // #2 = 'ld' chained node
/*312990*/              OPC_CheckFoldableChainNode,
/*312991*/              OPC_RecordChild1, // #3 = $src2
/*312992*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*312994*/              OPC_CheckPredicate, 9, // Predicate_load
/*312996*/              OPC_MoveParent,
/*312997*/              OPC_MoveParent,
/*312998*/              OPC_RecordChild2, // #4 = $src0
/*312999*/              OPC_SwitchType /*2 cases */, 20, MVT::v8f64,// ->313022
/*313002*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*313004*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*313007*/                OPC_EmitMergeInputChains1_2,
/*313008*/                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>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                          // Dst: (VUNPCKLPDZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*313022*/              /*SwitchType*/ 20, MVT::v8f32,// ->313044
/*313024*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*313026*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*313029*/                OPC_EmitMergeInputChains1_2,
/*313030*/                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>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                          // Dst: (VUNPCKLPSZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*313044*/              0, // EndSwitchType
/*313045*/            /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->313110
/*313048*/              OPC_RecordMemRef,
/*313049*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*313050*/              OPC_CheckFoldableChainNode,
/*313051*/              OPC_RecordChild1, // #3 = $src2
/*313052*/              OPC_Scope, 27, /*->313081*/ // 2 children in Scope
/*313054*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*313056*/                OPC_MoveParent,
/*313057*/                OPC_MoveParent,
/*313058*/                OPC_RecordChild2, // #4 = $src0
/*313059*/                OPC_CheckType, MVT::v8f64,
/*313061*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*313063*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*313066*/                OPC_EmitMergeInputChains1_2,
/*313067*/                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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v8f64] }:$src0) - Complexity = 28
                          // Dst: (VUNPCKLPDZrmbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*313081*/              /*Scope*/ 27, /*->313109*/
/*313082*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*313084*/                OPC_MoveParent,
/*313085*/                OPC_MoveParent,
/*313086*/                OPC_RecordChild2, // #4 = $src0
/*313087*/                OPC_CheckType, MVT::v8f32,
/*313089*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*313091*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*313094*/                OPC_EmitMergeInputChains1_2,
/*313095*/                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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8f32] }:$src0) - Complexity = 28
                          // Dst: (VUNPCKLPSZ256rmbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*313109*/              0, /*End of Scope*/
/*313110*/            0, // EndSwitchOpcode
/*313111*/          /*SwitchOpcode*/ 83, TARGET_VAL(X86ISD::DPBF16PS),// ->313197
/*313114*/            OPC_RecordChild0, // #1 = $src1
/*313115*/            OPC_RecordChild1, // #2 = $src2
/*313116*/            OPC_CheckChild1Type, MVT::v8i32,
/*313118*/            OPC_MoveChild2,
/*313119*/            OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->313159
/*313123*/              OPC_RecordMemRef,
/*313124*/              OPC_RecordNode, // #3 = 'ld' chained node
/*313125*/              OPC_CheckFoldableChainNode,
/*313126*/              OPC_RecordChild1, // #4 = $src3
/*313127*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*313129*/              OPC_CheckPredicate, 9, // Predicate_load
/*313131*/              OPC_MoveParent,
/*313132*/              OPC_MoveParent,
/*313133*/              OPC_CheckChild2Same, 1,
/*313135*/              OPC_CheckType, MVT::v8f32,
/*313137*/              OPC_CheckPatternPredicate, 182, // (Subtarget->hasBF16()) && (Subtarget->hasVLX())
/*313139*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*313142*/              OPC_EmitMergeInputChains, 1, 3, 
/*313145*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDPBF16PSZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86dpbf16ps:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                        // Dst: (VDPBF16PSZ256mk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*313159*/            /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->313196
/*313162*/              OPC_RecordMemRef,
/*313163*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*313164*/              OPC_CheckFoldableChainNode,
/*313165*/              OPC_RecordChild1, // #4 = $src3
/*313166*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*313168*/              OPC_MoveParent,
/*313169*/              OPC_MoveParent,
/*313170*/              OPC_CheckChild2Same, 1,
/*313172*/              OPC_CheckType, MVT::v8f32,
/*313174*/              OPC_CheckPatternPredicate, 182, // (Subtarget->hasBF16()) && (Subtarget->hasVLX())
/*313176*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*313179*/              OPC_EmitMergeInputChains, 1, 3, 
/*313182*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDPBF16PSZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86dpbf16ps:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v8f32] }:$src1) - Complexity = 28
                        // Dst: (VDPBF16PSZ256mbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*313196*/            0, // EndSwitchOpcode
/*313197*/          0, // EndSwitchOpcode
/*313198*/        /*Scope*/ 7|128,1/*135*/, /*->313335*/
/*313200*/          OPC_RecordChild1, // #1 = $idx
/*313201*/          OPC_MoveChild1,
/*313202*/          OPC_SwitchOpcode /*2 cases */, 30, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),// ->313236
/*313206*/            OPC_RecordChild0, // #2 = $src1
/*313207*/            OPC_MoveChild1,
/*313208*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*313211*/            OPC_CheckType, MVT::iPTR,
/*313213*/            OPC_MoveParent,
/*313214*/            OPC_CheckPredicate, 18, // Predicate_vextract256_extract
/*313216*/            OPC_MoveParent,
/*313217*/            OPC_MoveChild2,
/*313218*/            OPC_CheckImmAllZerosV,
/*313219*/            OPC_MoveParent,
/*313220*/            OPC_CheckType, MVT::v8f32,
/*313222*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*313224*/            OPC_EmitNodeXForm, 1, 1, // EXTRACT_get_vextract256_imm
/*313227*/            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] }))<<P:Predicate_vextract256_extract>><<X:EXTRACT_get_vextract256_imm>>:$idx, immAllZerosV:{ *:[v8f32] }) - Complexity = 14
                      // Dst: (VEXTRACTF32x8Zrrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16f32] }:$src1, (EXTRACT_get_vextract256_imm:{ *:[i8] } (extract_subvector:{ *:[v8f32] } VR512:{ *:[v16f32] }:$src1, (imm:{ *:[iPTR] })):$idx))
/*313236*/          /*SwitchOpcode*/ 95, TARGET_VAL(ISD::INSERT_SUBVECTOR),// ->313334
/*313239*/            OPC_RecordChild0, // #2 = $src1
/*313240*/            OPC_RecordChild1, // #3 = $src2
/*313241*/            OPC_Scope, 28, /*->313271*/ // 3 children in Scope
/*313243*/              OPC_MoveChild2,
/*313244*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*313247*/              OPC_CheckType, MVT::iPTR,
/*313249*/              OPC_MoveParent,
/*313250*/              OPC_MoveParent,
/*313251*/              OPC_MoveChild2,
/*313252*/              OPC_CheckImmAllZerosV,
/*313253*/              OPC_MoveParent,
/*313254*/              OPC_CheckType, MVT::v8f32,
/*313256*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*313258*/              OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*313261*/              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, immAllZerosV:{ *:[v8f32] }) - Complexity = 13
                        // 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))
/*313271*/            /*Scope*/ 30, /*->313302*/
/*313272*/              OPC_CheckChild1Type, MVT::v4f64,
/*313274*/              OPC_MoveChild2,
/*313275*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*313278*/              OPC_CheckType, MVT::iPTR,
/*313280*/              OPC_MoveParent,
/*313281*/              OPC_MoveParent,
/*313282*/              OPC_MoveChild2,
/*313283*/              OPC_CheckImmAllZerosV,
/*313284*/              OPC_MoveParent,
/*313285*/              OPC_CheckType, MVT::v8f64,
/*313287*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*313289*/              OPC_EmitNodeXForm, 16, 1, // INSERT_get_vinsert256_imm
/*313292*/              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, immAllZerosV:{ *:[v8f64] }) - Complexity = 13
                        // 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))
/*313302*/            /*Scope*/ 30, /*->313333*/
/*313303*/              OPC_CheckChild1Type, MVT::v2f64,
/*313305*/              OPC_MoveChild2,
/*313306*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*313309*/              OPC_CheckType, MVT::iPTR,
/*313311*/              OPC_MoveParent,
/*313312*/              OPC_MoveParent,
/*313313*/              OPC_MoveChild2,
/*313314*/              OPC_CheckImmAllZerosV,
/*313315*/              OPC_MoveParent,
/*313316*/              OPC_CheckType, MVT::v8f64,
/*313318*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*313320*/              OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*313323*/              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, immAllZerosV:{ *:[v8f64] }) - Complexity = 13
                        // 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))
/*313333*/            0, /*End of Scope*/
/*313334*/          0, // EndSwitchOpcode
/*313335*/        /*Scope*/ 26|128,15/*1946*/, /*->315283*/
/*313337*/          OPC_MoveChild1,
/*313338*/          OPC_SwitchOpcode /*32 cases */, 114|128,6/*882*/, TARGET_VAL(ISD::BITCAST),// ->314225
/*313343*/            OPC_Scope, 37, /*->313382*/ // 4 children in Scope
/*313345*/              OPC_RecordChild0, // #1 = $ext
/*313346*/              OPC_MoveChild0,
/*313347*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/*313350*/              OPC_RecordChild0, // #2 = $src
/*313351*/              OPC_MoveChild1,
/*313352*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*313355*/              OPC_CheckType, MVT::iPTR,
/*313357*/              OPC_MoveParent,
/*313358*/              OPC_CheckPredicate, 18, // Predicate_vextract256_extract
/*313360*/              OPC_CheckType, MVT::v4f64,
/*313362*/              OPC_MoveParent,
/*313363*/              OPC_MoveParent,
/*313364*/              OPC_RecordChild2, // #3 = $src0
/*313365*/              OPC_CheckType, MVT::v8f32,
/*313367*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*313369*/              OPC_EmitNodeXForm, 1, 1, // EXTRACT_get_vextract256_imm
/*313372*/              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] }))<<P:Predicate_vextract256_extract>><<X:EXTRACT_get_vextract256_imm>>:$ext), VR256X:{ *:[v8f32] }:$src0) - Complexity = 13
                        // Dst: (VEXTRACTF32x8Zrrk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src, (EXTRACT_get_vextract256_imm:{ *:[i8] } VR256X:{ *:[v4f64] }:$ext))
/*313382*/            /*Scope*/ 60|128,5/*700*/, /*->314084*/
/*313384*/              OPC_MoveChild0,
/*313385*/              OPC_SwitchOpcode /*5 cases */, 22, TARGET_VAL(X86ISD::VBROADCAST),// ->313411
/*313389*/                OPC_RecordChild0, // #1 = $src
/*313390*/                OPC_CheckChild0Type, MVT::v2f64,
/*313392*/                OPC_CheckType, MVT::v4f64,
/*313394*/                OPC_MoveParent,
/*313395*/                OPC_MoveParent,
/*313396*/                OPC_MoveChild2,
/*313397*/                OPC_CheckImmAllZerosV,
/*313398*/                OPC_MoveParent,
/*313399*/                OPC_CheckType, MVT::v8f32,
/*313401*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*313403*/                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)), immAllZerosV:{ *:[v8f32] }) - Complexity = 13
                          // Dst: (VBROADCASTF32X2Z256rkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*313411*/              /*SwitchOpcode*/ 36|128,1/*164*/, TARGET_VAL(ISD::AND),// ->313579
/*313415*/                OPC_RecordChild0, // #1 = $src1
/*313416*/                OPC_RecordChild1, // #2 = $src2
/*313417*/                OPC_SwitchType /*8 cases */, 18, MVT::v4i64,// ->313438
/*313420*/                  OPC_MoveParent,
/*313421*/                  OPC_MoveParent,
/*313422*/                  OPC_MoveChild2,
/*313423*/                  OPC_CheckImmAllZerosV,
/*313424*/                  OPC_MoveParent,
/*313425*/                  OPC_CheckType, MVT::v8f32,
/*313427*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*313429*/                  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)), immAllZerosV:{ *:[v8f32] }) - Complexity = 13
                            // Dst: (VPANDDZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*313438*/                /*SwitchType*/ 18, MVT::v8i32,// ->313458
/*313440*/                  OPC_MoveParent,
/*313441*/                  OPC_MoveParent,
/*313442*/                  OPC_MoveChild2,
/*313443*/                  OPC_CheckImmAllZerosV,
/*313444*/                  OPC_MoveParent,
/*313445*/                  OPC_CheckType, MVT::v8f32,
/*313447*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*313449*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ256rrkz), 0,
                                MVT::v8f32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (and:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)), immAllZerosV:{ *:[v8f32] }) - Complexity = 13
                            // Dst: (VPANDDZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*313458*/                /*SwitchType*/ 18, MVT::v16i16,// ->313478
/*313460*/                  OPC_MoveParent,
/*313461*/                  OPC_MoveParent,
/*313462*/                  OPC_MoveChild2,
/*313463*/                  OPC_CheckImmAllZerosV,
/*313464*/                  OPC_MoveParent,
/*313465*/                  OPC_CheckType, MVT::v8f32,
/*313467*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*313469*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ256rrkz), 0,
                                MVT::v8f32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (and:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)), immAllZerosV:{ *:[v8f32] }) - Complexity = 13
                            // Dst: (VPANDDZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*313478*/                /*SwitchType*/ 18, MVT::v32i8,// ->313498
/*313480*/                  OPC_MoveParent,
/*313481*/                  OPC_MoveParent,
/*313482*/                  OPC_MoveChild2,
/*313483*/                  OPC_CheckImmAllZerosV,
/*313484*/                  OPC_MoveParent,
/*313485*/                  OPC_CheckType, MVT::v8f32,
/*313487*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*313489*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ256rrkz), 0,
                                MVT::v8f32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (and:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)), immAllZerosV:{ *:[v8f32] }) - Complexity = 13
                            // Dst: (VPANDDZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*313498*/                /*SwitchType*/ 18, MVT::v8i64,// ->313518
/*313500*/                  OPC_MoveParent,
/*313501*/                  OPC_MoveParent,
/*313502*/                  OPC_MoveChild2,
/*313503*/                  OPC_CheckImmAllZerosV,
/*313504*/                  OPC_MoveParent,
/*313505*/                  OPC_CheckType, MVT::v8f64,
/*313507*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*313509*/                  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)), immAllZerosV:{ *:[v8f64] }) - Complexity = 13
                            // Dst: (VPANDQZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*313518*/                /*SwitchType*/ 18, MVT::v16i32,// ->313538
/*313520*/                  OPC_MoveParent,
/*313521*/                  OPC_MoveParent,
/*313522*/                  OPC_MoveChild2,
/*313523*/                  OPC_CheckImmAllZerosV,
/*313524*/                  OPC_MoveParent,
/*313525*/                  OPC_CheckType, MVT::v8f64,
/*313527*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*313529*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZrrkz), 0,
                                MVT::v8f64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (and:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)), immAllZerosV:{ *:[v8f64] }) - Complexity = 13
                            // Dst: (VPANDQZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*313538*/                /*SwitchType*/ 18, MVT::v32i16,// ->313558
/*313540*/                  OPC_MoveParent,
/*313541*/                  OPC_MoveParent,
/*313542*/                  OPC_MoveChild2,
/*313543*/                  OPC_CheckImmAllZerosV,
/*313544*/                  OPC_MoveParent,
/*313545*/                  OPC_CheckType, MVT::v8f64,
/*313547*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*313549*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZrrkz), 0,
                                MVT::v8f64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (and:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)), immAllZerosV:{ *:[v8f64] }) - Complexity = 13
                            // Dst: (VPANDQZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*313558*/                /*SwitchType*/ 18, MVT::v64i8,// ->313578
/*313560*/                  OPC_MoveParent,
/*313561*/                  OPC_MoveParent,
/*313562*/                  OPC_MoveChild2,
/*313563*/                  OPC_CheckImmAllZerosV,
/*313564*/                  OPC_MoveParent,
/*313565*/                  OPC_CheckType, MVT::v8f64,
/*313567*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*313569*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZrrkz), 0,
                                MVT::v8f64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (and:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)), immAllZerosV:{ *:[v8f64] }) - Complexity = 13
                            // Dst: (VPANDQZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*313578*/                0, // EndSwitchType
/*313579*/              /*SwitchOpcode*/ 36|128,1/*164*/, TARGET_VAL(ISD::OR),// ->313747
/*313583*/                OPC_RecordChild0, // #1 = $src1
/*313584*/                OPC_RecordChild1, // #2 = $src2
/*313585*/                OPC_SwitchType /*8 cases */, 18, MVT::v4i64,// ->313606
/*313588*/                  OPC_MoveParent,
/*313589*/                  OPC_MoveParent,
/*313590*/                  OPC_MoveChild2,
/*313591*/                  OPC_CheckImmAllZerosV,
/*313592*/                  OPC_MoveParent,
/*313593*/                  OPC_CheckType, MVT::v8f32,
/*313595*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*313597*/                  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)), immAllZerosV:{ *:[v8f32] }) - Complexity = 13
                            // Dst: (VPORDZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*313606*/                /*SwitchType*/ 18, MVT::v8i32,// ->313626
/*313608*/                  OPC_MoveParent,
/*313609*/                  OPC_MoveParent,
/*313610*/                  OPC_MoveChild2,
/*313611*/                  OPC_CheckImmAllZerosV,
/*313612*/                  OPC_MoveParent,
/*313613*/                  OPC_CheckType, MVT::v8f32,
/*313615*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*313617*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ256rrkz), 0,
                                MVT::v8f32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (or:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)), immAllZerosV:{ *:[v8f32] }) - Complexity = 13
                            // Dst: (VPORDZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*313626*/                /*SwitchType*/ 18, MVT::v16i16,// ->313646
/*313628*/                  OPC_MoveParent,
/*313629*/                  OPC_MoveParent,
/*313630*/                  OPC_MoveChild2,
/*313631*/                  OPC_CheckImmAllZerosV,
/*313632*/                  OPC_MoveParent,
/*313633*/                  OPC_CheckType, MVT::v8f32,
/*313635*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*313637*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ256rrkz), 0,
                                MVT::v8f32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (or:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)), immAllZerosV:{ *:[v8f32] }) - Complexity = 13
                            // Dst: (VPORDZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*313646*/                /*SwitchType*/ 18, MVT::v32i8,// ->313666
/*313648*/                  OPC_MoveParent,
/*313649*/                  OPC_MoveParent,
/*313650*/                  OPC_MoveChild2,
/*313651*/                  OPC_CheckImmAllZerosV,
/*313652*/                  OPC_MoveParent,
/*313653*/                  OPC_CheckType, MVT::v8f32,
/*313655*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*313657*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ256rrkz), 0,
                                MVT::v8f32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (or:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)), immAllZerosV:{ *:[v8f32] }) - Complexity = 13
                            // Dst: (VPORDZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*313666*/                /*SwitchType*/ 18, MVT::v8i64,// ->313686
/*313668*/                  OPC_MoveParent,
/*313669*/                  OPC_MoveParent,
/*313670*/                  OPC_MoveChild2,
/*313671*/                  OPC_CheckImmAllZerosV,
/*313672*/                  OPC_MoveParent,
/*313673*/                  OPC_CheckType, MVT::v8f64,
/*313675*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*313677*/                  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)), immAllZerosV:{ *:[v8f64] }) - Complexity = 13
                            // Dst: (VPORQZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*313686*/                /*SwitchType*/ 18, MVT::v16i32,// ->313706
/*313688*/                  OPC_MoveParent,
/*313689*/                  OPC_MoveParent,
/*313690*/                  OPC_MoveChild2,
/*313691*/                  OPC_CheckImmAllZerosV,
/*313692*/                  OPC_MoveParent,
/*313693*/                  OPC_CheckType, MVT::v8f64,
/*313695*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*313697*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZrrkz), 0,
                                MVT::v8f64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (or:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)), immAllZerosV:{ *:[v8f64] }) - Complexity = 13
                            // Dst: (VPORQZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*313706*/                /*SwitchType*/ 18, MVT::v32i16,// ->313726
/*313708*/                  OPC_MoveParent,
/*313709*/                  OPC_MoveParent,
/*313710*/                  OPC_MoveChild2,
/*313711*/                  OPC_CheckImmAllZerosV,
/*313712*/                  OPC_MoveParent,
/*313713*/                  OPC_CheckType, MVT::v8f64,
/*313715*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*313717*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZrrkz), 0,
                                MVT::v8f64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (or:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)), immAllZerosV:{ *:[v8f64] }) - Complexity = 13
                            // Dst: (VPORQZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*313726*/                /*SwitchType*/ 18, MVT::v64i8,// ->313746
/*313728*/                  OPC_MoveParent,
/*313729*/                  OPC_MoveParent,
/*313730*/                  OPC_MoveChild2,
/*313731*/                  OPC_CheckImmAllZerosV,
/*313732*/                  OPC_MoveParent,
/*313733*/                  OPC_CheckType, MVT::v8f64,
/*313735*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*313737*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZrrkz), 0,
                                MVT::v8f64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (or:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)), immAllZerosV:{ *:[v8f64] }) - Complexity = 13
                            // Dst: (VPORQZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*313746*/                0, // EndSwitchType
/*313747*/              /*SwitchOpcode*/ 36|128,1/*164*/, TARGET_VAL(ISD::XOR),// ->313915
/*313751*/                OPC_RecordChild0, // #1 = $src1
/*313752*/                OPC_RecordChild1, // #2 = $src2
/*313753*/                OPC_SwitchType /*8 cases */, 18, MVT::v4i64,// ->313774
/*313756*/                  OPC_MoveParent,
/*313757*/                  OPC_MoveParent,
/*313758*/                  OPC_MoveChild2,
/*313759*/                  OPC_CheckImmAllZerosV,
/*313760*/                  OPC_MoveParent,
/*313761*/                  OPC_CheckType, MVT::v8f32,
/*313763*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*313765*/                  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)), immAllZerosV:{ *:[v8f32] }) - Complexity = 13
                            // Dst: (VPXORDZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*313774*/                /*SwitchType*/ 18, MVT::v8i32,// ->313794
/*313776*/                  OPC_MoveParent,
/*313777*/                  OPC_MoveParent,
/*313778*/                  OPC_MoveChild2,
/*313779*/                  OPC_CheckImmAllZerosV,
/*313780*/                  OPC_MoveParent,
/*313781*/                  OPC_CheckType, MVT::v8f32,
/*313783*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*313785*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ256rrkz), 0,
                                MVT::v8f32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (xor:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)), immAllZerosV:{ *:[v8f32] }) - Complexity = 13
                            // Dst: (VPXORDZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*313794*/                /*SwitchType*/ 18, MVT::v16i16,// ->313814
/*313796*/                  OPC_MoveParent,
/*313797*/                  OPC_MoveParent,
/*313798*/                  OPC_MoveChild2,
/*313799*/                  OPC_CheckImmAllZerosV,
/*313800*/                  OPC_MoveParent,
/*313801*/                  OPC_CheckType, MVT::v8f32,
/*313803*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*313805*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ256rrkz), 0,
                                MVT::v8f32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (xor:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)), immAllZerosV:{ *:[v8f32] }) - Complexity = 13
                            // Dst: (VPXORDZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*313814*/                /*SwitchType*/ 18, MVT::v32i8,// ->313834
/*313816*/                  OPC_MoveParent,
/*313817*/                  OPC_MoveParent,
/*313818*/                  OPC_MoveChild2,
/*313819*/                  OPC_CheckImmAllZerosV,
/*313820*/                  OPC_MoveParent,
/*313821*/                  OPC_CheckType, MVT::v8f32,
/*313823*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*313825*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ256rrkz), 0,
                                MVT::v8f32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (xor:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)), immAllZerosV:{ *:[v8f32] }) - Complexity = 13
                            // Dst: (VPXORDZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*313834*/                /*SwitchType*/ 18, MVT::v8i64,// ->313854
/*313836*/                  OPC_MoveParent,
/*313837*/                  OPC_MoveParent,
/*313838*/                  OPC_MoveChild2,
/*313839*/                  OPC_CheckImmAllZerosV,
/*313840*/                  OPC_MoveParent,
/*313841*/                  OPC_CheckType, MVT::v8f64,
/*313843*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*313845*/                  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)), immAllZerosV:{ *:[v8f64] }) - Complexity = 13
                            // Dst: (VPXORQZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*313854*/                /*SwitchType*/ 18, MVT::v16i32,// ->313874
/*313856*/                  OPC_MoveParent,
/*313857*/                  OPC_MoveParent,
/*313858*/                  OPC_MoveChild2,
/*313859*/                  OPC_CheckImmAllZerosV,
/*313860*/                  OPC_MoveParent,
/*313861*/                  OPC_CheckType, MVT::v8f64,
/*313863*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*313865*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZrrkz), 0,
                                MVT::v8f64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (xor:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)), immAllZerosV:{ *:[v8f64] }) - Complexity = 13
                            // Dst: (VPXORQZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*313874*/                /*SwitchType*/ 18, MVT::v32i16,// ->313894
/*313876*/                  OPC_MoveParent,
/*313877*/                  OPC_MoveParent,
/*313878*/                  OPC_MoveChild2,
/*313879*/                  OPC_CheckImmAllZerosV,
/*313880*/                  OPC_MoveParent,
/*313881*/                  OPC_CheckType, MVT::v8f64,
/*313883*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*313885*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZrrkz), 0,
                                MVT::v8f64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (xor:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)), immAllZerosV:{ *:[v8f64] }) - Complexity = 13
                            // Dst: (VPXORQZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*313894*/                /*SwitchType*/ 18, MVT::v64i8,// ->313914
/*313896*/                  OPC_MoveParent,
/*313897*/                  OPC_MoveParent,
/*313898*/                  OPC_MoveChild2,
/*313899*/                  OPC_CheckImmAllZerosV,
/*313900*/                  OPC_MoveParent,
/*313901*/                  OPC_CheckType, MVT::v8f64,
/*313903*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*313905*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZrrkz), 0,
                                MVT::v8f64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (xor:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)), immAllZerosV:{ *:[v8f64] }) - Complexity = 13
                            // Dst: (VPXORQZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*313914*/                0, // EndSwitchType
/*313915*/              /*SwitchOpcode*/ 36|128,1/*164*/, TARGET_VAL(X86ISD::ANDNP),// ->314083
/*313919*/                OPC_RecordChild0, // #1 = $src1
/*313920*/                OPC_RecordChild1, // #2 = $src2
/*313921*/                OPC_SwitchType /*8 cases */, 18, MVT::v4i64,// ->313942
/*313924*/                  OPC_MoveParent,
/*313925*/                  OPC_MoveParent,
/*313926*/                  OPC_MoveChild2,
/*313927*/                  OPC_CheckImmAllZerosV,
/*313928*/                  OPC_MoveParent,
/*313929*/                  OPC_CheckType, MVT::v8f32,
/*313931*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*313933*/                  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)), immAllZerosV:{ *:[v8f32] }) - Complexity = 13
                            // Dst: (VPANDNDZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*313942*/                /*SwitchType*/ 18, MVT::v8i32,// ->313962
/*313944*/                  OPC_MoveParent,
/*313945*/                  OPC_MoveParent,
/*313946*/                  OPC_MoveChild2,
/*313947*/                  OPC_CheckImmAllZerosV,
/*313948*/                  OPC_MoveParent,
/*313949*/                  OPC_CheckType, MVT::v8f32,
/*313951*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*313953*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZ256rrkz), 0,
                                MVT::v8f32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (X86andnp:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)), immAllZerosV:{ *:[v8f32] }) - Complexity = 13
                            // Dst: (VPANDNDZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*313962*/                /*SwitchType*/ 18, MVT::v16i16,// ->313982
/*313964*/                  OPC_MoveParent,
/*313965*/                  OPC_MoveParent,
/*313966*/                  OPC_MoveChild2,
/*313967*/                  OPC_CheckImmAllZerosV,
/*313968*/                  OPC_MoveParent,
/*313969*/                  OPC_CheckType, MVT::v8f32,
/*313971*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*313973*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZ256rrkz), 0,
                                MVT::v8f32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (X86andnp:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)), immAllZerosV:{ *:[v8f32] }) - Complexity = 13
                            // Dst: (VPANDNDZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*313982*/                /*SwitchType*/ 18, MVT::v32i8,// ->314002
/*313984*/                  OPC_MoveParent,
/*313985*/                  OPC_MoveParent,
/*313986*/                  OPC_MoveChild2,
/*313987*/                  OPC_CheckImmAllZerosV,
/*313988*/                  OPC_MoveParent,
/*313989*/                  OPC_CheckType, MVT::v8f32,
/*313991*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*313993*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZ256rrkz), 0,
                                MVT::v8f32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (X86andnp:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)), immAllZerosV:{ *:[v8f32] }) - Complexity = 13
                            // Dst: (VPANDNDZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*314002*/                /*SwitchType*/ 18, MVT::v8i64,// ->314022
/*314004*/                  OPC_MoveParent,
/*314005*/                  OPC_MoveParent,
/*314006*/                  OPC_MoveChild2,
/*314007*/                  OPC_CheckImmAllZerosV,
/*314008*/                  OPC_MoveParent,
/*314009*/                  OPC_CheckType, MVT::v8f64,
/*314011*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*314013*/                  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)), immAllZerosV:{ *:[v8f64] }) - Complexity = 13
                            // Dst: (VPANDNQZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*314022*/                /*SwitchType*/ 18, MVT::v16i32,// ->314042
/*314024*/                  OPC_MoveParent,
/*314025*/                  OPC_MoveParent,
/*314026*/                  OPC_MoveChild2,
/*314027*/                  OPC_CheckImmAllZerosV,
/*314028*/                  OPC_MoveParent,
/*314029*/                  OPC_CheckType, MVT::v8f64,
/*314031*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*314033*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZrrkz), 0,
                                MVT::v8f64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (X86andnp:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)), immAllZerosV:{ *:[v8f64] }) - Complexity = 13
                            // Dst: (VPANDNQZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*314042*/                /*SwitchType*/ 18, MVT::v32i16,// ->314062
/*314044*/                  OPC_MoveParent,
/*314045*/                  OPC_MoveParent,
/*314046*/                  OPC_MoveChild2,
/*314047*/                  OPC_CheckImmAllZerosV,
/*314048*/                  OPC_MoveParent,
/*314049*/                  OPC_CheckType, MVT::v8f64,
/*314051*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*314053*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZrrkz), 0,
                                MVT::v8f64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (X86andnp:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)), immAllZerosV:{ *:[v8f64] }) - Complexity = 13
                            // Dst: (VPANDNQZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*314062*/                /*SwitchType*/ 18, MVT::v64i8,// ->314082
/*314064*/                  OPC_MoveParent,
/*314065*/                  OPC_MoveParent,
/*314066*/                  OPC_MoveChild2,
/*314067*/                  OPC_CheckImmAllZerosV,
/*314068*/                  OPC_MoveParent,
/*314069*/                  OPC_CheckType, MVT::v8f64,
/*314071*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*314073*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZrrkz), 0,
                                MVT::v8f64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (X86andnp:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)), immAllZerosV:{ *:[v8f64] }) - Complexity = 13
                            // Dst: (VPANDNQZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*314082*/                0, // EndSwitchType
/*314083*/              0, // EndSwitchOpcode
/*314084*/            /*Scope*/ 106, /*->314191*/
/*314085*/              OPC_RecordChild0, // #1 = $ins
/*314086*/              OPC_MoveChild0,
/*314087*/              OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*314090*/              OPC_RecordChild0, // #2 = $src1
/*314091*/              OPC_RecordChild1, // #3 = $src2
/*314092*/              OPC_Scope, 30, /*->314124*/ // 3 children in Scope
/*314094*/                OPC_MoveChild2,
/*314095*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*314098*/                OPC_CheckType, MVT::iPTR,
/*314100*/                OPC_MoveParent,
/*314101*/                OPC_CheckType, MVT::v4f64,
/*314103*/                OPC_MoveParent,
/*314104*/                OPC_MoveParent,
/*314105*/                OPC_RecordChild2, // #4 = $src0
/*314106*/                OPC_CheckType, MVT::v8f32,
/*314108*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*314110*/                OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*314113*/                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))
/*314124*/              /*Scope*/ 32, /*->314157*/
/*314125*/                OPC_CheckChild1Type, MVT::v4f32,
/*314127*/                OPC_MoveChild2,
/*314128*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*314131*/                OPC_CheckType, MVT::iPTR,
/*314133*/                OPC_MoveParent,
/*314134*/                OPC_CheckType, MVT::v16f32,
/*314136*/                OPC_MoveParent,
/*314137*/                OPC_MoveParent,
/*314138*/                OPC_RecordChild2, // #4 = $src0
/*314139*/                OPC_CheckType, MVT::v8f64,
/*314141*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*314143*/                OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*314146*/                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))
/*314157*/              /*Scope*/ 32, /*->314190*/
/*314158*/                OPC_CheckChild1Type, MVT::v8f32,
/*314160*/                OPC_MoveChild2,
/*314161*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*314164*/                OPC_CheckType, MVT::iPTR,
/*314166*/                OPC_MoveParent,
/*314167*/                OPC_CheckType, MVT::v16f32,
/*314169*/                OPC_MoveParent,
/*314170*/                OPC_MoveParent,
/*314171*/                OPC_RecordChild2, // #4 = $src0
/*314172*/                OPC_CheckType, MVT::v8f64,
/*314174*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*314176*/                OPC_EmitNodeXForm, 16, 1, // INSERT_get_vinsert256_imm
/*314179*/                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))
/*314190*/              0, /*End of Scope*/
/*314191*/            /*Scope*/ 32, /*->314224*/
/*314192*/              OPC_MoveChild0,
/*314193*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::SHUF128),
/*314196*/              OPC_RecordChild0, // #1 = $src1
/*314197*/              OPC_RecordChild1, // #2 = $src2
/*314198*/              OPC_RecordChild2, // #3 = $src3
/*314199*/              OPC_MoveChild2,
/*314200*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*314203*/              OPC_MoveParent,
/*314204*/              OPC_CheckType, MVT::v4f64,
/*314206*/              OPC_MoveParent,
/*314207*/              OPC_MoveParent,
/*314208*/              OPC_RecordChild2, // #4 = $src0
/*314209*/              OPC_CheckType, MVT::v8f32,
/*314211*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*314213*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF32X4Z256rrik), 0,
                            MVT::v8f32, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (X86Shuf128:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (timm:{ *:[i8] }):$src3)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 12
                        // Dst: (VSHUFF32X4Z256rrik:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (timm:{ *:[i8] }):$src3)
/*314224*/            0, /*End of Scope*/
/*314225*/          /*SwitchOpcode*/ 26, TARGET_VAL(X86ISD::FADD_RND),// ->314254
/*314228*/            OPC_RecordChild0, // #1 = $src1
/*314229*/            OPC_RecordChild1, // #2 = $src2
/*314230*/            OPC_RecordChild2, // #3 = $rc
/*314231*/            OPC_MoveChild2,
/*314232*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*314235*/            OPC_MoveParent,
/*314236*/            OPC_MoveParent,
/*314237*/            OPC_MoveChild2,
/*314238*/            OPC_CheckImmAllZerosV,
/*314239*/            OPC_MoveParent,
/*314240*/            OPC_CheckType, MVT::v8f64,
/*314242*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*314244*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZrrbkz), 0,
                          MVT::v8f64, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86faddRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i32] }):$rc), immAllZerosV:{ *:[v8f64] }) - Complexity = 13
                      // Dst: (VADDPDZrrbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i32] }):$rc)
/*314254*/          /*SwitchOpcode*/ 26, TARGET_VAL(X86ISD::FMUL_RND),// ->314283
/*314257*/            OPC_RecordChild0, // #1 = $src1
/*314258*/            OPC_RecordChild1, // #2 = $src2
/*314259*/            OPC_RecordChild2, // #3 = $rc
/*314260*/            OPC_MoveChild2,
/*314261*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*314264*/            OPC_MoveParent,
/*314265*/            OPC_MoveParent,
/*314266*/            OPC_MoveChild2,
/*314267*/            OPC_CheckImmAllZerosV,
/*314268*/            OPC_MoveParent,
/*314269*/            OPC_CheckType, MVT::v8f64,
/*314271*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*314273*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZrrbkz), 0,
                          MVT::v8f64, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fmulRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i32] }):$rc), immAllZerosV:{ *:[v8f64] }) - Complexity = 13
                      // Dst: (VMULPDZrrbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i32] }):$rc)
/*314283*/          /*SwitchOpcode*/ 26, TARGET_VAL(X86ISD::FSUB_RND),// ->314312
/*314286*/            OPC_RecordChild0, // #1 = $src1
/*314287*/            OPC_RecordChild1, // #2 = $src2
/*314288*/            OPC_RecordChild2, // #3 = $rc
/*314289*/            OPC_MoveChild2,
/*314290*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*314293*/            OPC_MoveParent,
/*314294*/            OPC_MoveParent,
/*314295*/            OPC_MoveChild2,
/*314296*/            OPC_CheckImmAllZerosV,
/*314297*/            OPC_MoveParent,
/*314298*/            OPC_CheckType, MVT::v8f64,
/*314300*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*314302*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDZrrbkz), 0,
                          MVT::v8f64, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fsubRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i32] }):$rc), immAllZerosV:{ *:[v8f64] }) - Complexity = 13
                      // Dst: (VSUBPDZrrbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i32] }):$rc)
/*314312*/          /*SwitchOpcode*/ 26, TARGET_VAL(X86ISD::FDIV_RND),// ->314341
/*314315*/            OPC_RecordChild0, // #1 = $src1
/*314316*/            OPC_RecordChild1, // #2 = $src2
/*314317*/            OPC_RecordChild2, // #3 = $rc
/*314318*/            OPC_MoveChild2,
/*314319*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*314322*/            OPC_MoveParent,
/*314323*/            OPC_MoveParent,
/*314324*/            OPC_MoveChild2,
/*314325*/            OPC_CheckImmAllZerosV,
/*314326*/            OPC_MoveParent,
/*314327*/            OPC_CheckType, MVT::v8f64,
/*314329*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*314331*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDZrrbkz), 0,
                          MVT::v8f64, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fdivRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i32] }):$rc), immAllZerosV:{ *:[v8f64] }) - Complexity = 13
                      // Dst: (VDIVPDZrrbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i32] }):$rc)
/*314341*/          /*SwitchOpcode*/ 26, TARGET_VAL(X86ISD::SCALEF_RND),// ->314370
/*314344*/            OPC_RecordChild0, // #1 = $src1
/*314345*/            OPC_RecordChild1, // #2 = $src2
/*314346*/            OPC_RecordChild2, // #3 = $rc
/*314347*/            OPC_MoveChild2,
/*314348*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*314351*/            OPC_MoveParent,
/*314352*/            OPC_MoveParent,
/*314353*/            OPC_MoveChild2,
/*314354*/            OPC_CheckImmAllZerosV,
/*314355*/            OPC_MoveParent,
/*314356*/            OPC_CheckType, MVT::v8f64,
/*314358*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*314360*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPDZrrbkz), 0,
                          MVT::v8f64, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86scalefRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i32] }):$rc), immAllZerosV:{ *:[v8f64] }) - Complexity = 13
                      // Dst: (VSCALEFPDZrrbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i32] }):$rc)
/*314370*/          /*SwitchOpcode*/ 24, TARGET_VAL(X86ISD::VPERMI),// ->314397
/*314373*/            OPC_RecordChild0, // #1 = $src1
/*314374*/            OPC_RecordChild1, // #2 = $src2
/*314375*/            OPC_MoveChild1,
/*314376*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*314379*/            OPC_MoveParent,
/*314380*/            OPC_MoveParent,
/*314381*/            OPC_MoveChild2,
/*314382*/            OPC_CheckImmAllZerosV,
/*314383*/            OPC_MoveParent,
/*314384*/            OPC_CheckType, MVT::v8f64,
/*314386*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*314388*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPDZrikz), 0,
                          MVT::v8f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermi:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v8f64] }) - Complexity = 13
                      // Dst: (VPERMPDZrikz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i8] }):$src2)
/*314397*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VPERMILPI),// ->314439
/*314400*/            OPC_RecordChild0, // #1 = $src1
/*314401*/            OPC_RecordChild1, // #2 = $src2
/*314402*/            OPC_MoveChild1,
/*314403*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*314406*/            OPC_MoveParent,
/*314407*/            OPC_MoveParent,
/*314408*/            OPC_MoveChild2,
/*314409*/            OPC_CheckImmAllZerosV,
/*314410*/            OPC_MoveParent,
/*314411*/            OPC_SwitchType /*2 cases */, 11, MVT::v8f32,// ->314425
/*314414*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*314416*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZ256rikz), 0,
                            MVT::v8f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermilpi:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v8f32] }) - Complexity = 13
                        // Dst: (VPERMILPSZ256rikz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, (timm:{ *:[i8] }):$src2)
/*314425*/            /*SwitchType*/ 11, MVT::v8f64,// ->314438
/*314427*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*314429*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZrikz), 0,
                            MVT::v8f64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermilpi:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v8f64] }) - Complexity = 13
                        // Dst: (VPERMILPDZrikz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i8] }):$src2)
/*314438*/            0, // EndSwitchType
/*314439*/          /*SwitchOpcode*/ 28, TARGET_VAL(X86ISD::FMADD_RND),// ->314470
/*314442*/            OPC_RecordChild0, // #1 = $src2
/*314443*/            OPC_RecordChild1, // #2 = $src1
/*314444*/            OPC_RecordChild2, // #3 = $src3
/*314445*/            OPC_RecordChild3, // #4 = $rc
/*314446*/            OPC_MoveChild3,
/*314447*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*314450*/            OPC_MoveParent,
/*314451*/            OPC_MoveParent,
/*314452*/            OPC_MoveChild2,
/*314453*/            OPC_CheckImmAllZerosV,
/*314454*/            OPC_MoveParent,
/*314455*/            OPC_CheckType, MVT::v8f64,
/*314457*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*314459*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZrbkz), 0,
                          MVT::v8f64, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86FmaddRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3, (timm:{ *:[i32] }):$rc), immAllZerosV:{ *:[v8f64] }) - Complexity = 13
                      // Dst: (VFMADD213PDZrbkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, (timm:{ *:[i32] }):$rc)
/*314470*/          /*SwitchOpcode*/ 28, TARGET_VAL(X86ISD::FMSUB_RND),// ->314501
/*314473*/            OPC_RecordChild0, // #1 = $src2
/*314474*/            OPC_RecordChild1, // #2 = $src1
/*314475*/            OPC_RecordChild2, // #3 = $src3
/*314476*/            OPC_RecordChild3, // #4 = $rc
/*314477*/            OPC_MoveChild3,
/*314478*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*314481*/            OPC_MoveParent,
/*314482*/            OPC_MoveParent,
/*314483*/            OPC_MoveChild2,
/*314484*/            OPC_CheckImmAllZerosV,
/*314485*/            OPC_MoveParent,
/*314486*/            OPC_CheckType, MVT::v8f64,
/*314488*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*314490*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PDZrbkz), 0,
                          MVT::v8f64, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86FmsubRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3, (timm:{ *:[i32] }):$rc), immAllZerosV:{ *:[v8f64] }) - Complexity = 13
                      // Dst: (VFMSUB213PDZrbkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, (timm:{ *:[i32] }):$rc)
/*314501*/          /*SwitchOpcode*/ 28, TARGET_VAL(X86ISD::FMADDSUB_RND),// ->314532
/*314504*/            OPC_RecordChild0, // #1 = $src2
/*314505*/            OPC_RecordChild1, // #2 = $src1
/*314506*/            OPC_RecordChild2, // #3 = $src3
/*314507*/            OPC_RecordChild3, // #4 = $rc
/*314508*/            OPC_MoveChild3,
/*314509*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*314512*/            OPC_MoveParent,
/*314513*/            OPC_MoveParent,
/*314514*/            OPC_MoveChild2,
/*314515*/            OPC_CheckImmAllZerosV,
/*314516*/            OPC_MoveParent,
/*314517*/            OPC_CheckType, MVT::v8f64,
/*314519*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*314521*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PDZrbkz), 0,
                          MVT::v8f64, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86FmaddsubRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3, (timm:{ *:[i32] }):$rc), immAllZerosV:{ *:[v8f64] }) - Complexity = 13
                      // Dst: (VFMADDSUB213PDZrbkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, (timm:{ *:[i32] }):$rc)
/*314532*/          /*SwitchOpcode*/ 28, TARGET_VAL(X86ISD::FMSUBADD_RND),// ->314563
/*314535*/            OPC_RecordChild0, // #1 = $src2
/*314536*/            OPC_RecordChild1, // #2 = $src1
/*314537*/            OPC_RecordChild2, // #3 = $src3
/*314538*/            OPC_RecordChild3, // #4 = $rc
/*314539*/            OPC_MoveChild3,
/*314540*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*314543*/            OPC_MoveParent,
/*314544*/            OPC_MoveParent,
/*314545*/            OPC_MoveChild2,
/*314546*/            OPC_CheckImmAllZerosV,
/*314547*/            OPC_MoveParent,
/*314548*/            OPC_CheckType, MVT::v8f64,
/*314550*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*314552*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PDZrbkz), 0,
                          MVT::v8f64, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86FmsubaddRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3, (timm:{ *:[i32] }):$rc), immAllZerosV:{ *:[v8f64] }) - Complexity = 13
                      // Dst: (VFMSUBADD213PDZrbkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, (timm:{ *:[i32] }):$rc)
/*314563*/          /*SwitchOpcode*/ 28, TARGET_VAL(X86ISD::FNMADD_RND),// ->314594
/*314566*/            OPC_RecordChild0, // #1 = $src2
/*314567*/            OPC_RecordChild1, // #2 = $src1
/*314568*/            OPC_RecordChild2, // #3 = $src3
/*314569*/            OPC_RecordChild3, // #4 = $rc
/*314570*/            OPC_MoveChild3,
/*314571*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*314574*/            OPC_MoveParent,
/*314575*/            OPC_MoveParent,
/*314576*/            OPC_MoveChild2,
/*314577*/            OPC_CheckImmAllZerosV,
/*314578*/            OPC_MoveParent,
/*314579*/            OPC_CheckType, MVT::v8f64,
/*314581*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*314583*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PDZrbkz), 0,
                          MVT::v8f64, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86FnmaddRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3, (timm:{ *:[i32] }):$rc), immAllZerosV:{ *:[v8f64] }) - Complexity = 13
                      // Dst: (VFNMADD213PDZrbkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, (timm:{ *:[i32] }):$rc)
/*314594*/          /*SwitchOpcode*/ 28, TARGET_VAL(X86ISD::FNMSUB_RND),// ->314625
/*314597*/            OPC_RecordChild0, // #1 = $src2
/*314598*/            OPC_RecordChild1, // #2 = $src1
/*314599*/            OPC_RecordChild2, // #3 = $src3
/*314600*/            OPC_RecordChild3, // #4 = $rc
/*314601*/            OPC_MoveChild3,
/*314602*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*314605*/            OPC_MoveParent,
/*314606*/            OPC_MoveParent,
/*314607*/            OPC_MoveChild2,
/*314608*/            OPC_CheckImmAllZerosV,
/*314609*/            OPC_MoveParent,
/*314610*/            OPC_CheckType, MVT::v8f64,
/*314612*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*314614*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PDZrbkz), 0,
                          MVT::v8f64, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86FnmsubRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3, (timm:{ *:[i32] }):$rc), immAllZerosV:{ *:[v8f64] }) - Complexity = 13
                      // Dst: (VFNMSUB213PDZrbkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, (timm:{ *:[i32] }):$rc)
/*314625*/          /*SwitchOpcode*/ 26, TARGET_VAL(X86ISD::VFPROUND_RND),// ->314654
/*314628*/            OPC_RecordChild0, // #1 = $src
/*314629*/            OPC_CheckChild0Type, MVT::v8f64,
/*314631*/            OPC_RecordChild1, // #2 = $rc
/*314632*/            OPC_MoveChild1,
/*314633*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*314636*/            OPC_MoveParent,
/*314637*/            OPC_MoveParent,
/*314638*/            OPC_MoveChild2,
/*314639*/            OPC_CheckImmAllZerosV,
/*314640*/            OPC_MoveParent,
/*314641*/            OPC_CheckType, MVT::v8f32,
/*314643*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*314645*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZrrbkz), 0,
                          MVT::v8f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86vfproundRnd:{ *:[v8f32] } VR512:{ *:[v8f64] }:$src, (timm:{ *:[i32] }):$rc), immAllZerosV:{ *:[v8f32] }) - Complexity = 13
                      // Dst: (VCVTPD2PSZrrbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src, (timm:{ *:[i32] }):$rc)
/*314654*/          /*SwitchOpcode*/ 41, TARGET_VAL(X86ISD::SINT_TO_FP_RND),// ->314698
/*314657*/            OPC_RecordChild0, // #1 = $src
/*314658*/            OPC_CheckChild0Type, MVT::v8i64,
/*314660*/            OPC_RecordChild1, // #2 = $rc
/*314661*/            OPC_MoveChild1,
/*314662*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*314665*/            OPC_MoveParent,
/*314666*/            OPC_MoveParent,
/*314667*/            OPC_MoveChild2,
/*314668*/            OPC_CheckImmAllZerosV,
/*314669*/            OPC_MoveParent,
/*314670*/            OPC_SwitchType /*2 cases */, 11, MVT::v8f64,// ->314684
/*314673*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*314675*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PDZrrbkz), 0,
                            MVT::v8f64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VSintToFpRnd:{ *:[v8f64] } VR512:{ *:[v8i64] }:$src, (timm:{ *:[i32] }):$rc), immAllZerosV:{ *:[v8f64] }) - Complexity = 13
                        // Dst: (VCVTQQ2PDZrrbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src, (timm:{ *:[i32] }):$rc)
/*314684*/            /*SwitchType*/ 11, MVT::v8f32,// ->314697
/*314686*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*314688*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PSZrrbkz), 0,
                            MVT::v8f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VSintToFpRnd:{ *:[v8f32] } VR512:{ *:[v8i64] }:$src, (timm:{ *:[i32] }):$rc), immAllZerosV:{ *:[v8f32] }) - Complexity = 13
                        // Dst: (VCVTQQ2PSZrrbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src, (timm:{ *:[i32] }):$rc)
/*314697*/            0, // EndSwitchType
/*314698*/          /*SwitchOpcode*/ 41, TARGET_VAL(X86ISD::UINT_TO_FP_RND),// ->314742
/*314701*/            OPC_RecordChild0, // #1 = $src
/*314702*/            OPC_CheckChild0Type, MVT::v8i64,
/*314704*/            OPC_RecordChild1, // #2 = $rc
/*314705*/            OPC_MoveChild1,
/*314706*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*314709*/            OPC_MoveParent,
/*314710*/            OPC_MoveParent,
/*314711*/            OPC_MoveChild2,
/*314712*/            OPC_CheckImmAllZerosV,
/*314713*/            OPC_MoveParent,
/*314714*/            OPC_SwitchType /*2 cases */, 11, MVT::v8f64,// ->314728
/*314717*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*314719*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PDZrrbkz), 0,
                            MVT::v8f64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VUintToFpRnd:{ *:[v8f64] } VR512:{ *:[v8i64] }:$src, (timm:{ *:[i32] }):$rc), immAllZerosV:{ *:[v8f64] }) - Complexity = 13
                        // Dst: (VCVTUQQ2PDZrrbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src, (timm:{ *:[i32] }):$rc)
/*314728*/            /*SwitchType*/ 11, MVT::v8f32,// ->314741
/*314730*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*314732*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PSZrrbkz), 0,
                            MVT::v8f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VUintToFpRnd:{ *:[v8f32] } VR512:{ *:[v8i64] }:$src, (timm:{ *:[i32] }):$rc), immAllZerosV:{ *:[v8f32] }) - Complexity = 13
                        // Dst: (VCVTUQQ2PSZrrbkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src, (timm:{ *:[i32] }):$rc)
/*314741*/            0, // EndSwitchType
/*314742*/          /*SwitchOpcode*/ 24, TARGET_VAL(X86ISD::FSQRT_RND),// ->314769
/*314745*/            OPC_RecordChild0, // #1 = $src
/*314746*/            OPC_RecordChild1, // #2 = $rc
/*314747*/            OPC_MoveChild1,
/*314748*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*314751*/            OPC_MoveParent,
/*314752*/            OPC_MoveParent,
/*314753*/            OPC_MoveChild2,
/*314754*/            OPC_CheckImmAllZerosV,
/*314755*/            OPC_MoveParent,
/*314756*/            OPC_CheckType, MVT::v8f64,
/*314758*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*314760*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDZrbkz), 0,
                          MVT::v8f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fsqrtRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src, (timm:{ *:[i32] }):$rc), immAllZerosV:{ *:[v8f64] }) - Complexity = 13
                      // Dst: (VSQRTPDZrbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src, (timm:{ *:[i32] }):$rc)
/*314769*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VREDUCE),// ->314811
/*314772*/            OPC_RecordChild0, // #1 = $src1
/*314773*/            OPC_RecordChild1, // #2 = $src2
/*314774*/            OPC_MoveChild1,
/*314775*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*314778*/            OPC_MoveParent,
/*314779*/            OPC_MoveParent,
/*314780*/            OPC_MoveChild2,
/*314781*/            OPC_CheckImmAllZerosV,
/*314782*/            OPC_MoveParent,
/*314783*/            OPC_SwitchType /*2 cases */, 11, MVT::v8f32,// ->314797
/*314786*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*314788*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPSZ256rrikz), 0,
                            MVT::v8f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VReduce:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v8f32] }) - Complexity = 13
                        // Dst: (VREDUCEPSZ256rrikz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*314797*/            /*SwitchType*/ 11, MVT::v8f64,// ->314810
/*314799*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*314801*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPDZrrikz), 0,
                            MVT::v8f64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VReduce:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v8f64] }) - Complexity = 13
                        // Dst: (VREDUCEPDZrrikz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i32] }):$src2)
/*314810*/            0, // EndSwitchType
/*314811*/          /*SwitchOpcode*/ 24, TARGET_VAL(X86ISD::VREDUCE_SAE),// ->314838
/*314814*/            OPC_RecordChild0, // #1 = $src1
/*314815*/            OPC_RecordChild1, // #2 = $src2
/*314816*/            OPC_MoveChild1,
/*314817*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*314820*/            OPC_MoveParent,
/*314821*/            OPC_MoveParent,
/*314822*/            OPC_MoveChild2,
/*314823*/            OPC_CheckImmAllZerosV,
/*314824*/            OPC_MoveParent,
/*314825*/            OPC_CheckType, MVT::v8f64,
/*314827*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*314829*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPDZrribkz), 0,
                          MVT::v8f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VReduceSAE:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v8f64] }) - Complexity = 13
                      // Dst: (VREDUCEPDZrribkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i32] }):$src2)
/*314838*/          /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::STRICT_VRNDSCALE),// ->314884
/*314841*/            OPC_RecordNode, // #1 = 'X86strict_VRndScale' chained node
/*314842*/            OPC_CheckFoldableChainNode,
/*314843*/            OPC_RecordChild1, // #2 = $src1
/*314844*/            OPC_RecordChild2, // #3 = $src2
/*314845*/            OPC_MoveChild2,
/*314846*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*314849*/            OPC_MoveParent,
/*314850*/            OPC_MoveParent,
/*314851*/            OPC_MoveChild2,
/*314852*/            OPC_CheckImmAllZerosV,
/*314853*/            OPC_MoveParent,
/*314854*/            OPC_SwitchType /*2 cases */, 12, MVT::v8f32,// ->314869
/*314857*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*314859*/              OPC_EmitMergeInputChains1_1,
/*314860*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rrikz), 0|OPFL_Chain,
                            MVT::v8f32, 3/*#Ops*/, 0, 2, 3, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_VRndScale:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v8f32] }) - Complexity = 13
                        // Dst: (VRNDSCALEPSZ256rrikz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*314869*/            /*SwitchType*/ 12, MVT::v8f64,// ->314883
/*314871*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*314873*/              OPC_EmitMergeInputChains1_1,
/*314874*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrrikz), 0|OPFL_Chain,
                            MVT::v8f64, 3/*#Ops*/, 0, 2, 3, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_VRndScale:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v8f64] }) - Complexity = 13
                        // Dst: (VRNDSCALEPDZrrikz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i32] }):$src2)
/*314883*/            0, // EndSwitchType
/*314884*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VRNDSCALE),// ->314926
/*314887*/            OPC_RecordChild0, // #1 = $src1
/*314888*/            OPC_RecordChild1, // #2 = $src2
/*314889*/            OPC_MoveChild1,
/*314890*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*314893*/            OPC_MoveParent,
/*314894*/            OPC_MoveParent,
/*314895*/            OPC_MoveChild2,
/*314896*/            OPC_CheckImmAllZerosV,
/*314897*/            OPC_MoveParent,
/*314898*/            OPC_SwitchType /*2 cases */, 11, MVT::v8f32,// ->314912
/*314901*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*314903*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rrikz), 0,
                            MVT::v8f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VRndScale:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v8f32] }) - Complexity = 13
                        // Dst: (VRNDSCALEPSZ256rrikz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*314912*/            /*SwitchType*/ 11, MVT::v8f64,// ->314925
/*314914*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*314916*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrrikz), 0,
                            MVT::v8f64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VRndScale:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v8f64] }) - Complexity = 13
                        // Dst: (VRNDSCALEPDZrrikz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i32] }):$src2)
/*314925*/            0, // EndSwitchType
/*314926*/          /*SwitchOpcode*/ 24, TARGET_VAL(X86ISD::VRNDSCALE_SAE),// ->314953
/*314929*/            OPC_RecordChild0, // #1 = $src1
/*314930*/            OPC_RecordChild1, // #2 = $src2
/*314931*/            OPC_MoveChild1,
/*314932*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*314935*/            OPC_MoveParent,
/*314936*/            OPC_MoveParent,
/*314937*/            OPC_MoveChild2,
/*314938*/            OPC_CheckImmAllZerosV,
/*314939*/            OPC_MoveParent,
/*314940*/            OPC_CheckType, MVT::v8f64,
/*314942*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*314944*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrribkz), 0,
                          MVT::v8f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VRndScaleSAE:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v8f64] }) - Complexity = 13
                      // Dst: (VRNDSCALEPDZrribkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i32] }):$src2)
/*314953*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VGETMANT),// ->314995
/*314956*/            OPC_RecordChild0, // #1 = $src1
/*314957*/            OPC_RecordChild1, // #2 = $src2
/*314958*/            OPC_MoveChild1,
/*314959*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*314962*/            OPC_MoveParent,
/*314963*/            OPC_MoveParent,
/*314964*/            OPC_MoveChild2,
/*314965*/            OPC_CheckImmAllZerosV,
/*314966*/            OPC_MoveParent,
/*314967*/            OPC_SwitchType /*2 cases */, 11, MVT::v8f32,// ->314981
/*314970*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*314972*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPSZ256rrikz), 0,
                            MVT::v8f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VGetMant:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v8f32] }) - Complexity = 13
                        // Dst: (VGETMANTPSZ256rrikz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*314981*/            /*SwitchType*/ 11, MVT::v8f64,// ->314994
/*314983*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*314985*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPDZrrikz), 0,
                            MVT::v8f64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VGetMant:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v8f64] }) - Complexity = 13
                        // Dst: (VGETMANTPDZrrikz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i32] }):$src2)
/*314994*/            0, // EndSwitchType
/*314995*/          /*SwitchOpcode*/ 24, TARGET_VAL(X86ISD::VGETMANT_SAE),// ->315022
/*314998*/            OPC_RecordChild0, // #1 = $src1
/*314999*/            OPC_RecordChild1, // #2 = $src2
/*315000*/            OPC_MoveChild1,
/*315001*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*315004*/            OPC_MoveParent,
/*315005*/            OPC_MoveParent,
/*315006*/            OPC_MoveChild2,
/*315007*/            OPC_CheckImmAllZerosV,
/*315008*/            OPC_MoveParent,
/*315009*/            OPC_CheckType, MVT::v8f64,
/*315011*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*315013*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPDZrribkz), 0,
                          MVT::v8f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VGetMantSAE:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v8f64] }) - Complexity = 13
                      // Dst: (VGETMANTPDZrribkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i32] }):$src2)
/*315022*/          /*SwitchOpcode*/ 42, TARGET_VAL(X86ISD::VRANGE),// ->315067
/*315025*/            OPC_RecordChild0, // #1 = $src1
/*315026*/            OPC_RecordChild1, // #2 = $src2
/*315027*/            OPC_RecordChild2, // #3 = $src3
/*315028*/            OPC_MoveChild2,
/*315029*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*315032*/            OPC_MoveParent,
/*315033*/            OPC_MoveParent,
/*315034*/            OPC_MoveChild2,
/*315035*/            OPC_CheckImmAllZerosV,
/*315036*/            OPC_MoveParent,
/*315037*/            OPC_SwitchType /*2 cases */, 12, MVT::v8f64,// ->315052
/*315040*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*315042*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPDZrrikz), 0,
                            MVT::v8f64, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VRange:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i32] }):$src3), immAllZerosV:{ *:[v8f64] }) - Complexity = 13
                        // Dst: (VRANGEPDZrrikz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i32] }):$src3)
/*315052*/            /*SwitchType*/ 12, MVT::v8f32,// ->315066
/*315054*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*315056*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPSZ256rrikz), 0,
                            MVT::v8f32, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VRange:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (timm:{ *:[i32] }):$src3), immAllZerosV:{ *:[v8f32] }) - Complexity = 13
                        // Dst: (VRANGEPSZ256rrikz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (timm:{ *:[i32] }):$src3)
/*315066*/            0, // EndSwitchType
/*315067*/          /*SwitchOpcode*/ 26, TARGET_VAL(X86ISD::VRANGE_SAE),// ->315096
/*315070*/            OPC_RecordChild0, // #1 = $src1
/*315071*/            OPC_RecordChild1, // #2 = $src2
/*315072*/            OPC_RecordChild2, // #3 = $src3
/*315073*/            OPC_MoveChild2,
/*315074*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*315077*/            OPC_MoveParent,
/*315078*/            OPC_MoveParent,
/*315079*/            OPC_MoveChild2,
/*315080*/            OPC_CheckImmAllZerosV,
/*315081*/            OPC_MoveParent,
/*315082*/            OPC_CheckType, MVT::v8f64,
/*315084*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*315086*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPDZrribkz), 0,
                          MVT::v8f64, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VRangeSAE:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i32] }):$src3), immAllZerosV:{ *:[v8f64] }) - Complexity = 13
                      // Dst: (VRANGEPDZrribkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i32] }):$src3)
/*315096*/          /*SwitchOpcode*/ 26, TARGET_VAL(X86ISD::SHUF128),// ->315125
/*315099*/            OPC_RecordChild0, // #1 = $src1
/*315100*/            OPC_RecordChild1, // #2 = $src2
/*315101*/            OPC_RecordChild2, // #3 = $src3
/*315102*/            OPC_MoveChild2,
/*315103*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*315106*/            OPC_MoveParent,
/*315107*/            OPC_MoveParent,
/*315108*/            OPC_MoveChild2,
/*315109*/            OPC_CheckImmAllZerosV,
/*315110*/            OPC_MoveParent,
/*315111*/            OPC_CheckType, MVT::v8f64,
/*315113*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*315115*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF64X2Zrrikz), 0,
                          MVT::v8f64, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Shuf128:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v8f64] }) - Complexity = 13
                      // Dst: (VSHUFF64X2Zrrikz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i8] }):$src3)
/*315125*/          /*SwitchOpcode*/ 42, TARGET_VAL(X86ISD::SHUFP),// ->315170
/*315128*/            OPC_RecordChild0, // #1 = $src1
/*315129*/            OPC_RecordChild1, // #2 = $src2
/*315130*/            OPC_RecordChild2, // #3 = $src3
/*315131*/            OPC_MoveChild2,
/*315132*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*315135*/            OPC_MoveParent,
/*315136*/            OPC_MoveParent,
/*315137*/            OPC_MoveChild2,
/*315138*/            OPC_CheckImmAllZerosV,
/*315139*/            OPC_MoveParent,
/*315140*/            OPC_SwitchType /*2 cases */, 12, MVT::v8f32,// ->315155
/*315143*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*315145*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPSZ256rrikz), 0,
                            MVT::v8f32, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Shufp:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v8f32] }) - Complexity = 13
                        // Dst: (VSHUFPSZ256rrikz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (timm:{ *:[i8] }):$src3)
/*315155*/            /*SwitchType*/ 12, MVT::v8f64,// ->315169
/*315157*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*315159*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPDZrrikz), 0,
                            MVT::v8f64, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Shufp:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v8f64] }) - Complexity = 13
                        // Dst: (VSHUFPDZrrikz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i8] }):$src3)
/*315169*/            0, // EndSwitchType
/*315170*/          /*SwitchOpcode*/ 45, TARGET_VAL(X86ISD::VFIXUPIMM),// ->315218
/*315173*/            OPC_RecordChild0, // #1 = $src1
/*315174*/            OPC_RecordChild1, // #2 = $src2
/*315175*/            OPC_RecordChild2, // #3 = $src3
/*315176*/            OPC_RecordChild3, // #4 = $src4
/*315177*/            OPC_MoveChild3,
/*315178*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*315181*/            OPC_MoveParent,
/*315182*/            OPC_MoveParent,
/*315183*/            OPC_MoveChild2,
/*315184*/            OPC_CheckImmAllZerosV,
/*315185*/            OPC_MoveParent,
/*315186*/            OPC_SwitchType /*2 cases */, 13, MVT::v8f32,// ->315202
/*315189*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*315191*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPSZ256rrikz), 0,
                            MVT::v8f32, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VFixupimm:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8i32] }:$src3, (timm:{ *:[i32] }):$src4), immAllZerosV:{ *:[v8f32] }) - Complexity = 13
                        // Dst: (VFIXUPIMMPSZ256rrikz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8i32] }:$src3, (timm:{ *:[i32] }):$src4)
/*315202*/            /*SwitchType*/ 13, MVT::v8f64,// ->315217
/*315204*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*315206*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPDZrrikz), 0,
                            MVT::v8f64, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VFixupimm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8i64] }:$src3, (timm:{ *:[i32] }):$src4), immAllZerosV:{ *:[v8f64] }) - Complexity = 13
                        // Dst: (VFIXUPIMMPDZrrikz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8i64] }:$src3, (timm:{ *:[i32] }):$src4)
/*315217*/            0, // EndSwitchType
/*315218*/          /*SwitchOpcode*/ 28, TARGET_VAL(X86ISD::VFIXUPIMM_SAE),// ->315249
/*315221*/            OPC_RecordChild0, // #1 = $src1
/*315222*/            OPC_RecordChild1, // #2 = $src2
/*315223*/            OPC_RecordChild2, // #3 = $src3
/*315224*/            OPC_RecordChild3, // #4 = $src4
/*315225*/            OPC_MoveChild3,
/*315226*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*315229*/            OPC_MoveParent,
/*315230*/            OPC_MoveParent,
/*315231*/            OPC_MoveChild2,
/*315232*/            OPC_CheckImmAllZerosV,
/*315233*/            OPC_MoveParent,
/*315234*/            OPC_CheckType, MVT::v8f64,
/*315236*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*315238*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPDZrribkz), 0,
                          MVT::v8f64, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VFixupimmSAE:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8i64] }:$src3, (timm:{ *:[i32] }):$src4), immAllZerosV:{ *:[v8f64] }) - Complexity = 13
                      // Dst: (VFIXUPIMMPDZrribkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8i64] }:$src3, (timm:{ *:[i32] }):$src4)
/*315249*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::VPERMV3),// ->315282
/*315252*/            OPC_RecordChild0, // #1 = $src2
/*315253*/            OPC_MoveChild1,
/*315254*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*315257*/            OPC_RecordChild0, // #2 = $src1
/*315258*/            OPC_CheckChild0Type, MVT::v4i64,
/*315260*/            OPC_MoveParent,
/*315261*/            OPC_RecordChild2, // #3 = $src3
/*315262*/            OPC_MoveParent,
/*315263*/            OPC_MoveChild2,
/*315264*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*315267*/            OPC_CheckChild0Same, 2,
/*315269*/            OPC_MoveParent,
/*315270*/            OPC_CheckType, MVT::v8f32,
/*315272*/            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)
/*315282*/          0, // EndSwitchOpcode
/*315283*/        /*Scope*/ 34, /*->315318*/
/*315284*/          OPC_RecordChild1, // #1 = $idx
/*315285*/          OPC_MoveChild1,
/*315286*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/*315289*/          OPC_RecordChild0, // #2 = $src1
/*315290*/          OPC_MoveChild1,
/*315291*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*315294*/          OPC_CheckType, MVT::iPTR,
/*315296*/          OPC_MoveParent,
/*315297*/          OPC_CheckPredicate, 18, // Predicate_vextract256_extract
/*315299*/          OPC_MoveParent,
/*315300*/          OPC_RecordChild2, // #3 = $src0
/*315301*/          OPC_CheckType, MVT::v8f32,
/*315303*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*315305*/          OPC_EmitNodeXForm, 1, 1, // EXTRACT_get_vextract256_imm
/*315308*/          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] }))<<P:Predicate_vextract256_extract>><<X:EXTRACT_get_vextract256_imm>>:$idx, VR256X:{ *:[v8f32] }:$src0) - Complexity = 10
                    // 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))
/*315318*/        /*Scope*/ 34|128,15/*1954*/, /*->317274*/
/*315320*/          OPC_MoveChild1,
/*315321*/          OPC_SwitchOpcode /*54 cases */, 101, TARGET_VAL(X86ISD::VBROADCAST),// ->315426
/*315325*/            OPC_RecordChild0, // #1 = $src
/*315326*/            OPC_Scope, 18, /*->315346*/ // 4 children in Scope
/*315328*/              OPC_CheckChild0Type, MVT::v4f32,
/*315330*/              OPC_MoveParent,
/*315331*/              OPC_MoveChild2,
/*315332*/              OPC_CheckImmAllZerosV,
/*315333*/              OPC_MoveParent,
/*315334*/              OPC_CheckType, MVT::v8f32,
/*315336*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*315338*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSSZ256rkz), 0,
                            MVT::v8f32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VBroadcast:{ *:[v8f32] } VR128X:{ *:[v4f32] }:$src), immAllZerosV:{ *:[v8f32] }) - Complexity = 10
                        // Dst: (VBROADCASTSSZ256rkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*315346*/            /*Scope*/ 18, /*->315365*/
/*315347*/              OPC_CheckChild0Type, MVT::v2f64,
/*315349*/              OPC_MoveParent,
/*315350*/              OPC_MoveChild2,
/*315351*/              OPC_CheckImmAllZerosV,
/*315352*/              OPC_MoveParent,
/*315353*/              OPC_CheckType, MVT::v8f64,
/*315355*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*315357*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSDZrkz), 0,
                            MVT::v8f64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VBroadcast:{ *:[v8f64] } VR128X:{ *:[v2f64] }:$src), immAllZerosV:{ *:[v8f64] }) - Complexity = 10
                        // Dst: (VBROADCASTSDZrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*315365*/            /*Scope*/ 29, /*->315395*/
/*315366*/              OPC_CheckChild0Type, MVT::f32,
/*315368*/              OPC_MoveParent,
/*315369*/              OPC_MoveChild2,
/*315370*/              OPC_CheckImmAllZerosV,
/*315371*/              OPC_MoveParent,
/*315372*/              OPC_CheckType, MVT::v8f32,
/*315374*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*315376*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*315379*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 1, 2,  // Results = #3
/*315387*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSSZ256rkz), 0,
                            MVT::v8f32, 2/*#Ops*/, 0, 3, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VBroadcast:{ *:[v8f32] } FR32X:{ *:[f32] }:$src), immAllZerosV:{ *:[v8f32] }) - Complexity = 10
                        // Dst: (VBROADCASTSSZ256rkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src, VR128X:{ *:[i32] }))
/*315395*/            /*Scope*/ 29, /*->315425*/
/*315396*/              OPC_CheckChild0Type, MVT::f64,
/*315398*/              OPC_MoveParent,
/*315399*/              OPC_MoveChild2,
/*315400*/              OPC_CheckImmAllZerosV,
/*315401*/              OPC_MoveParent,
/*315402*/              OPC_CheckType, MVT::v8f64,
/*315404*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*315406*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*315409*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 2,  // Results = #3
/*315417*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSDZrkz), 0,
                            MVT::v8f64, 2/*#Ops*/, 0, 3, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VBroadcast:{ *:[v8f64] } FR64X:{ *:[f64] }:$src), immAllZerosV:{ *:[v8f64] }) - Complexity = 10
                        // Dst: (VBROADCASTSDZrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src, VR128X:{ *:[i32] }))
/*315425*/            0, /*End of Scope*/
/*315426*/          /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::VPERMV3),// ->315466
/*315429*/            OPC_RecordChild0, // #1 = $src1
/*315430*/            OPC_RecordChild1, // #2 = $src2
/*315431*/            OPC_RecordChild2, // #3 = $src3
/*315432*/            OPC_MoveParent,
/*315433*/            OPC_MoveChild2,
/*315434*/            OPC_CheckImmAllZerosV,
/*315435*/            OPC_MoveParent,
/*315436*/            OPC_SwitchType /*2 cases */, 12, MVT::v8f32,// ->315451
/*315439*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*315441*/              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), immAllZerosV:{ *:[v8f32] }) - Complexity = 10
                        // Dst: (VPERMT2PS256rrkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8f32] }:$src3)
/*315451*/            /*SwitchType*/ 12, MVT::v8f64,// ->315465
/*315453*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*315455*/              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), immAllZerosV:{ *:[v8f64] }) - Complexity = 10
                        // Dst: (VPERMT2PDrrkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8f64] }:$src3)
/*315465*/            0, // EndSwitchType
/*315466*/          /*SwitchOpcode*/ 38, TARGET_VAL(ISD::STRICT_FADD),// ->315507
/*315469*/            OPC_RecordNode, // #1 = 'strict_fadd' chained node
/*315470*/            OPC_CheckFoldableChainNode,
/*315471*/            OPC_RecordChild1, // #2 = $src1
/*315472*/            OPC_RecordChild2, // #3 = $src2
/*315473*/            OPC_MoveParent,
/*315474*/            OPC_MoveChild2,
/*315475*/            OPC_CheckImmAllZerosV,
/*315476*/            OPC_MoveParent,
/*315477*/            OPC_SwitchType /*2 cases */, 12, MVT::v8f64,// ->315492
/*315480*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*315482*/              OPC_EmitMergeInputChains1_1,
/*315483*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZrrkz), 0|OPFL_Chain,
                            MVT::v8f64, 3/*#Ops*/, 0, 2, 3, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (strict_fadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), immAllZerosV:{ *:[v8f64] }) - Complexity = 10
                        // Dst: (VADDPDZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*315492*/            /*SwitchType*/ 12, MVT::v8f32,// ->315506
/*315494*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*315496*/              OPC_EmitMergeInputChains1_1,
/*315497*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZ256rrkz), 0|OPFL_Chain,
                            MVT::v8f32, 3/*#Ops*/, 0, 2, 3, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (strict_fadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), immAllZerosV:{ *:[v8f32] }) - Complexity = 10
                        // Dst: (VADDPSZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2)
/*315506*/            0, // EndSwitchType
/*315507*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::FADD),// ->315544
/*315510*/            OPC_RecordChild0, // #1 = $src1
/*315511*/            OPC_RecordChild1, // #2 = $src2
/*315512*/            OPC_MoveParent,
/*315513*/            OPC_MoveChild2,
/*315514*/            OPC_CheckImmAllZerosV,
/*315515*/            OPC_MoveParent,
/*315516*/            OPC_SwitchType /*2 cases */, 11, MVT::v8f64,// ->315530
/*315519*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*315521*/              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), immAllZerosV:{ *:[v8f64] }) - Complexity = 10
                        // Dst: (VADDPDZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*315530*/            /*SwitchType*/ 11, MVT::v8f32,// ->315543
/*315532*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*315534*/              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), immAllZerosV:{ *:[v8f32] }) - Complexity = 10
                        // Dst: (VADDPSZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2)
/*315543*/            0, // EndSwitchType
/*315544*/          /*SwitchOpcode*/ 38, TARGET_VAL(ISD::STRICT_FMUL),// ->315585
/*315547*/            OPC_RecordNode, // #1 = 'strict_fmul' chained node
/*315548*/            OPC_CheckFoldableChainNode,
/*315549*/            OPC_RecordChild1, // #2 = $src1
/*315550*/            OPC_RecordChild2, // #3 = $src2
/*315551*/            OPC_MoveParent,
/*315552*/            OPC_MoveChild2,
/*315553*/            OPC_CheckImmAllZerosV,
/*315554*/            OPC_MoveParent,
/*315555*/            OPC_SwitchType /*2 cases */, 12, MVT::v8f64,// ->315570
/*315558*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*315560*/              OPC_EmitMergeInputChains1_1,
/*315561*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZrrkz), 0|OPFL_Chain,
                            MVT::v8f64, 3/*#Ops*/, 0, 2, 3, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (strict_fmul:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), immAllZerosV:{ *:[v8f64] }) - Complexity = 10
                        // Dst: (VMULPDZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*315570*/            /*SwitchType*/ 12, MVT::v8f32,// ->315584
/*315572*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*315574*/              OPC_EmitMergeInputChains1_1,
/*315575*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZ256rrkz), 0|OPFL_Chain,
                            MVT::v8f32, 3/*#Ops*/, 0, 2, 3, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (strict_fmul:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), immAllZerosV:{ *:[v8f32] }) - Complexity = 10
                        // Dst: (VMULPSZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2)
/*315584*/            0, // EndSwitchType
/*315585*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::FMUL),// ->315622
/*315588*/            OPC_RecordChild0, // #1 = $src1
/*315589*/            OPC_RecordChild1, // #2 = $src2
/*315590*/            OPC_MoveParent,
/*315591*/            OPC_MoveChild2,
/*315592*/            OPC_CheckImmAllZerosV,
/*315593*/            OPC_MoveParent,
/*315594*/            OPC_SwitchType /*2 cases */, 11, MVT::v8f64,// ->315608
/*315597*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*315599*/              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), immAllZerosV:{ *:[v8f64] }) - Complexity = 10
                        // Dst: (VMULPDZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*315608*/            /*SwitchType*/ 11, MVT::v8f32,// ->315621
/*315610*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*315612*/              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), immAllZerosV:{ *:[v8f32] }) - Complexity = 10
                        // Dst: (VMULPSZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2)
/*315621*/            0, // EndSwitchType
/*315622*/          /*SwitchOpcode*/ 38, TARGET_VAL(ISD::STRICT_FSUB),// ->315663
/*315625*/            OPC_RecordNode, // #1 = 'strict_fsub' chained node
/*315626*/            OPC_CheckFoldableChainNode,
/*315627*/            OPC_RecordChild1, // #2 = $src1
/*315628*/            OPC_RecordChild2, // #3 = $src2
/*315629*/            OPC_MoveParent,
/*315630*/            OPC_MoveChild2,
/*315631*/            OPC_CheckImmAllZerosV,
/*315632*/            OPC_MoveParent,
/*315633*/            OPC_SwitchType /*2 cases */, 12, MVT::v8f64,// ->315648
/*315636*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*315638*/              OPC_EmitMergeInputChains1_1,
/*315639*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDZrrkz), 0|OPFL_Chain,
                            MVT::v8f64, 3/*#Ops*/, 0, 2, 3, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (strict_fsub:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), immAllZerosV:{ *:[v8f64] }) - Complexity = 10
                        // Dst: (VSUBPDZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*315648*/            /*SwitchType*/ 12, MVT::v8f32,// ->315662
/*315650*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*315652*/              OPC_EmitMergeInputChains1_1,
/*315653*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSZ256rrkz), 0|OPFL_Chain,
                            MVT::v8f32, 3/*#Ops*/, 0, 2, 3, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (strict_fsub:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), immAllZerosV:{ *:[v8f32] }) - Complexity = 10
                        // Dst: (VSUBPSZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2)
/*315662*/            0, // EndSwitchType
/*315663*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::FSUB),// ->315700
/*315666*/            OPC_RecordChild0, // #1 = $src1
/*315667*/            OPC_RecordChild1, // #2 = $src2
/*315668*/            OPC_MoveParent,
/*315669*/            OPC_MoveChild2,
/*315670*/            OPC_CheckImmAllZerosV,
/*315671*/            OPC_MoveParent,
/*315672*/            OPC_SwitchType /*2 cases */, 11, MVT::v8f64,// ->315686
/*315675*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*315677*/              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), immAllZerosV:{ *:[v8f64] }) - Complexity = 10
                        // Dst: (VSUBPDZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*315686*/            /*SwitchType*/ 11, MVT::v8f32,// ->315699
/*315688*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*315690*/              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), immAllZerosV:{ *:[v8f32] }) - Complexity = 10
                        // Dst: (VSUBPSZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2)
/*315699*/            0, // EndSwitchType
/*315700*/          /*SwitchOpcode*/ 38, TARGET_VAL(ISD::STRICT_FDIV),// ->315741
/*315703*/            OPC_RecordNode, // #1 = 'strict_fdiv' chained node
/*315704*/            OPC_CheckFoldableChainNode,
/*315705*/            OPC_RecordChild1, // #2 = $src1
/*315706*/            OPC_RecordChild2, // #3 = $src2
/*315707*/            OPC_MoveParent,
/*315708*/            OPC_MoveChild2,
/*315709*/            OPC_CheckImmAllZerosV,
/*315710*/            OPC_MoveParent,
/*315711*/            OPC_SwitchType /*2 cases */, 12, MVT::v8f64,// ->315726
/*315714*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*315716*/              OPC_EmitMergeInputChains1_1,
/*315717*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDZrrkz), 0|OPFL_Chain,
                            MVT::v8f64, 3/*#Ops*/, 0, 2, 3, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (strict_fdiv:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), immAllZerosV:{ *:[v8f64] }) - Complexity = 10
                        // Dst: (VDIVPDZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*315726*/            /*SwitchType*/ 12, MVT::v8f32,// ->315740
/*315728*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*315730*/              OPC_EmitMergeInputChains1_1,
/*315731*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSZ256rrkz), 0|OPFL_Chain,
                            MVT::v8f32, 3/*#Ops*/, 0, 2, 3, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (strict_fdiv:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), immAllZerosV:{ *:[v8f32] }) - Complexity = 10
                        // Dst: (VDIVPSZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2)
/*315740*/            0, // EndSwitchType
/*315741*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::FDIV),// ->315778
/*315744*/            OPC_RecordChild0, // #1 = $src1
/*315745*/            OPC_RecordChild1, // #2 = $src2
/*315746*/            OPC_MoveParent,
/*315747*/            OPC_MoveChild2,
/*315748*/            OPC_CheckImmAllZerosV,
/*315749*/            OPC_MoveParent,
/*315750*/            OPC_SwitchType /*2 cases */, 11, MVT::v8f64,// ->315764
/*315753*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*315755*/              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), immAllZerosV:{ *:[v8f64] }) - Complexity = 10
                        // Dst: (VDIVPDZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*315764*/            /*SwitchType*/ 11, MVT::v8f32,// ->315777
/*315766*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*315768*/              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), immAllZerosV:{ *:[v8f32] }) - Complexity = 10
                        // Dst: (VDIVPSZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2)
/*315777*/            0, // EndSwitchType
/*315778*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::FMIN),// ->315815
/*315781*/            OPC_RecordChild0, // #1 = $src1
/*315782*/            OPC_RecordChild1, // #2 = $src2
/*315783*/            OPC_MoveParent,
/*315784*/            OPC_MoveChild2,
/*315785*/            OPC_CheckImmAllZerosV,
/*315786*/            OPC_MoveParent,
/*315787*/            OPC_SwitchType /*2 cases */, 11, MVT::v8f64,// ->315801
/*315790*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*315792*/              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), immAllZerosV:{ *:[v8f64] }) - Complexity = 10
                        // Dst: (VMINPDZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*315801*/            /*SwitchType*/ 11, MVT::v8f32,// ->315814
/*315803*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*315805*/              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), immAllZerosV:{ *:[v8f32] }) - Complexity = 10
                        // Dst: (VMINPSZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2)
/*315814*/            0, // EndSwitchType
/*315815*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::FMIN_SAE),// ->315837
/*315818*/            OPC_RecordChild0, // #1 = $src1
/*315819*/            OPC_RecordChild1, // #2 = $src2
/*315820*/            OPC_MoveParent,
/*315821*/            OPC_MoveChild2,
/*315822*/            OPC_CheckImmAllZerosV,
/*315823*/            OPC_MoveParent,
/*315824*/            OPC_CheckType, MVT::v8f64,
/*315826*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*315828*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPDZrrbkz), 0,
                          MVT::v8f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fminSAE:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), immAllZerosV:{ *:[v8f64] }) - Complexity = 10
                      // Dst: (VMINPDZrrbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*315837*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::FMAX),// ->315874
/*315840*/            OPC_RecordChild0, // #1 = $src1
/*315841*/            OPC_RecordChild1, // #2 = $src2
/*315842*/            OPC_MoveParent,
/*315843*/            OPC_MoveChild2,
/*315844*/            OPC_CheckImmAllZerosV,
/*315845*/            OPC_MoveParent,
/*315846*/            OPC_SwitchType /*2 cases */, 11, MVT::v8f64,// ->315860
/*315849*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*315851*/              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), immAllZerosV:{ *:[v8f64] }) - Complexity = 10
                        // Dst: (VMAXPDZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*315860*/            /*SwitchType*/ 11, MVT::v8f32,// ->315873
/*315862*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*315864*/              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), immAllZerosV:{ *:[v8f32] }) - Complexity = 10
                        // Dst: (VMAXPSZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2)
/*315873*/            0, // EndSwitchType
/*315874*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::FMAX_SAE),// ->315896
/*315877*/            OPC_RecordChild0, // #1 = $src1
/*315878*/            OPC_RecordChild1, // #2 = $src2
/*315879*/            OPC_MoveParent,
/*315880*/            OPC_MoveChild2,
/*315881*/            OPC_CheckImmAllZerosV,
/*315882*/            OPC_MoveParent,
/*315883*/            OPC_CheckType, MVT::v8f64,
/*315885*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*315887*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPDZrrbkz), 0,
                          MVT::v8f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fmaxSAE:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), immAllZerosV:{ *:[v8f64] }) - Complexity = 10
                      // Dst: (VMAXPDZrrbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*315896*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::FMINC),// ->315933
/*315899*/            OPC_RecordChild0, // #1 = $src1
/*315900*/            OPC_RecordChild1, // #2 = $src2
/*315901*/            OPC_MoveParent,
/*315902*/            OPC_MoveChild2,
/*315903*/            OPC_CheckImmAllZerosV,
/*315904*/            OPC_MoveParent,
/*315905*/            OPC_SwitchType /*2 cases */, 11, MVT::v8f64,// ->315919
/*315908*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*315910*/              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), immAllZerosV:{ *:[v8f64] }) - Complexity = 10
                        // Dst: (VMINCPDZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*315919*/            /*SwitchType*/ 11, MVT::v8f32,// ->315932
/*315921*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*315923*/              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), immAllZerosV:{ *:[v8f32] }) - Complexity = 10
                        // Dst: (VMINCPSZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2)
/*315932*/            0, // EndSwitchType
/*315933*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::FMAXC),// ->315970
/*315936*/            OPC_RecordChild0, // #1 = $src1
/*315937*/            OPC_RecordChild1, // #2 = $src2
/*315938*/            OPC_MoveParent,
/*315939*/            OPC_MoveChild2,
/*315940*/            OPC_CheckImmAllZerosV,
/*315941*/            OPC_MoveParent,
/*315942*/            OPC_SwitchType /*2 cases */, 11, MVT::v8f64,// ->315956
/*315945*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*315947*/              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), immAllZerosV:{ *:[v8f64] }) - Complexity = 10
                        // Dst: (VMAXCPDZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*315956*/            /*SwitchType*/ 11, MVT::v8f32,// ->315969
/*315958*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*315960*/              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), immAllZerosV:{ *:[v8f32] }) - Complexity = 10
                        // Dst: (VMAXCPSZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2)
/*315969*/            0, // EndSwitchType
/*315970*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::SCALEF),// ->316007
/*315973*/            OPC_RecordChild0, // #1 = $src1
/*315974*/            OPC_RecordChild1, // #2 = $src2
/*315975*/            OPC_MoveParent,
/*315976*/            OPC_MoveChild2,
/*315977*/            OPC_CheckImmAllZerosV,
/*315978*/            OPC_MoveParent,
/*315979*/            OPC_SwitchType /*2 cases */, 11, MVT::v8f64,// ->315993
/*315982*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*315984*/              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), immAllZerosV:{ *:[v8f64] }) - Complexity = 10
                        // Dst: (VSCALEFPDZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*315993*/            /*SwitchType*/ 11, MVT::v8f32,// ->316006
/*315995*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*315997*/              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), immAllZerosV:{ *:[v8f32] }) - Complexity = 10
                        // Dst: (VSCALEFPSZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2)
/*316006*/            0, // EndSwitchType
/*316007*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VPERMV),// ->316044
/*316010*/            OPC_RecordChild0, // #1 = $src1
/*316011*/            OPC_RecordChild1, // #2 = $src2
/*316012*/            OPC_MoveParent,
/*316013*/            OPC_MoveChild2,
/*316014*/            OPC_CheckImmAllZerosV,
/*316015*/            OPC_MoveParent,
/*316016*/            OPC_SwitchType /*2 cases */, 11, MVT::v8f32,// ->316030
/*316019*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*316021*/              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), immAllZerosV:{ *:[v8f32] }) - Complexity = 10
                        // Dst: (VPERMPSZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8f32] }:$src2)
/*316030*/            /*SwitchType*/ 11, MVT::v8f64,// ->316043
/*316032*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*316034*/              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), immAllZerosV:{ *:[v8f64] }) - Complexity = 10
                        // Dst: (VPERMPDZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*316043*/            0, // EndSwitchType
/*316044*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VPERMILPV),// ->316081
/*316047*/            OPC_RecordChild0, // #1 = $src1
/*316048*/            OPC_RecordChild1, // #2 = $src2
/*316049*/            OPC_MoveParent,
/*316050*/            OPC_MoveChild2,
/*316051*/            OPC_CheckImmAllZerosV,
/*316052*/            OPC_MoveParent,
/*316053*/            OPC_SwitchType /*2 cases */, 11, MVT::v8f32,// ->316067
/*316056*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*316058*/              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), immAllZerosV:{ *:[v8f32] }) - Complexity = 10
                        // Dst: (VPERMILPSZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*316067*/            /*SwitchType*/ 11, MVT::v8f64,// ->316080
/*316069*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*316071*/              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), immAllZerosV:{ *:[v8f64] }) - Complexity = 10
                        // Dst: (VPERMILPDZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*316080*/            0, // EndSwitchType
/*316081*/          /*SwitchOpcode*/ 41, TARGET_VAL(ISD::STRICT_FMA),// ->316125
/*316084*/            OPC_RecordNode, // #1 = 'X86strict_Fmadd' chained node
/*316085*/            OPC_CheckFoldableChainNode,
/*316086*/            OPC_RecordChild1, // #2 = $src2
/*316087*/            OPC_RecordChild2, // #3 = $src1
/*316088*/            OPC_RecordChild3, // #4 = $src3
/*316089*/            OPC_MoveParent,
/*316090*/            OPC_MoveChild2,
/*316091*/            OPC_CheckImmAllZerosV,
/*316092*/            OPC_MoveParent,
/*316093*/            OPC_SwitchType /*2 cases */, 13, MVT::v8f32,// ->316109
/*316096*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*316098*/              OPC_EmitMergeInputChains1_1,
/*316099*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZ256rkz), 0|OPFL_Chain,
                            MVT::v8f32, 4/*#Ops*/, 3, 0, 2, 4, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_Fmadd:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src3), immAllZerosV:{ *:[v8f32] }) - Complexity = 10
                        // Dst: (VFMADD213PSZ256rkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src3)
/*316109*/            /*SwitchType*/ 13, MVT::v8f64,// ->316124
/*316111*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*316113*/              OPC_EmitMergeInputChains1_1,
/*316114*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZrkz), 0|OPFL_Chain,
                            MVT::v8f64, 4/*#Ops*/, 3, 0, 2, 4, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_Fmadd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3), immAllZerosV:{ *:[v8f64] }) - Complexity = 10
                        // Dst: (VFMADD213PDZrkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3)
/*316124*/            0, // EndSwitchType
/*316125*/          /*SwitchOpcode*/ 37, TARGET_VAL(ISD::FMA),// ->316165
/*316128*/            OPC_RecordChild0, // #1 = $src2
/*316129*/            OPC_RecordChild1, // #2 = $src1
/*316130*/            OPC_RecordChild2, // #3 = $src3
/*316131*/            OPC_MoveParent,
/*316132*/            OPC_MoveChild2,
/*316133*/            OPC_CheckImmAllZerosV,
/*316134*/            OPC_MoveParent,
/*316135*/            OPC_SwitchType /*2 cases */, 12, MVT::v8f32,// ->316150
/*316138*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*316140*/              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), immAllZerosV:{ *:[v8f32] }) - Complexity = 10
                        // Dst: (VFMADD213PSZ256rkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src3)
/*316150*/            /*SwitchType*/ 12, MVT::v8f64,// ->316164
/*316152*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*316154*/              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), immAllZerosV:{ *:[v8f64] }) - Complexity = 10
                        // Dst: (VFMADD213PDZrkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3)
/*316164*/            0, // EndSwitchType
/*316165*/          /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::FMSUB),// ->316205
/*316168*/            OPC_RecordChild0, // #1 = $src2
/*316169*/            OPC_RecordChild1, // #2 = $src1
/*316170*/            OPC_RecordChild2, // #3 = $src3
/*316171*/            OPC_MoveParent,
/*316172*/            OPC_MoveChild2,
/*316173*/            OPC_CheckImmAllZerosV,
/*316174*/            OPC_MoveParent,
/*316175*/            OPC_SwitchType /*2 cases */, 12, MVT::v8f32,// ->316190
/*316178*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*316180*/              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), immAllZerosV:{ *:[v8f32] }) - Complexity = 10
                        // Dst: (VFMSUB213PSZ256rkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src3)
/*316190*/            /*SwitchType*/ 12, MVT::v8f64,// ->316204
/*316192*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*316194*/              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), immAllZerosV:{ *:[v8f64] }) - Complexity = 10
                        // Dst: (VFMSUB213PDZrkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3)
/*316204*/            0, // EndSwitchType
/*316205*/          /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::FMADDSUB),// ->316245
/*316208*/            OPC_RecordChild0, // #1 = $src2
/*316209*/            OPC_RecordChild1, // #2 = $src1
/*316210*/            OPC_RecordChild2, // #3 = $src3
/*316211*/            OPC_MoveParent,
/*316212*/            OPC_MoveChild2,
/*316213*/            OPC_CheckImmAllZerosV,
/*316214*/            OPC_MoveParent,
/*316215*/            OPC_SwitchType /*2 cases */, 12, MVT::v8f32,// ->316230
/*316218*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*316220*/              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), immAllZerosV:{ *:[v8f32] }) - Complexity = 10
                        // Dst: (VFMADDSUB213PSZ256rkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src3)
/*316230*/            /*SwitchType*/ 12, MVT::v8f64,// ->316244
/*316232*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*316234*/              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), immAllZerosV:{ *:[v8f64] }) - Complexity = 10
                        // Dst: (VFMADDSUB213PDZrkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3)
/*316244*/            0, // EndSwitchType
/*316245*/          /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::FMSUBADD),// ->316285
/*316248*/            OPC_RecordChild0, // #1 = $src2
/*316249*/            OPC_RecordChild1, // #2 = $src1
/*316250*/            OPC_RecordChild2, // #3 = $src3
/*316251*/            OPC_MoveParent,
/*316252*/            OPC_MoveChild2,
/*316253*/            OPC_CheckImmAllZerosV,
/*316254*/            OPC_MoveParent,
/*316255*/            OPC_SwitchType /*2 cases */, 12, MVT::v8f32,// ->316270
/*316258*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*316260*/              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), immAllZerosV:{ *:[v8f32] }) - Complexity = 10
                        // Dst: (VFMSUBADD213PSZ256rkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src3)
/*316270*/            /*SwitchType*/ 12, MVT::v8f64,// ->316284
/*316272*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*316274*/              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), immAllZerosV:{ *:[v8f64] }) - Complexity = 10
                        // Dst: (VFMSUBADD213PDZrkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3)
/*316284*/            0, // EndSwitchType
/*316285*/          /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::FNMADD),// ->316325
/*316288*/            OPC_RecordChild0, // #1 = $src2
/*316289*/            OPC_RecordChild1, // #2 = $src1
/*316290*/            OPC_RecordChild2, // #3 = $src3
/*316291*/            OPC_MoveParent,
/*316292*/            OPC_MoveChild2,
/*316293*/            OPC_CheckImmAllZerosV,
/*316294*/            OPC_MoveParent,
/*316295*/            OPC_SwitchType /*2 cases */, 12, MVT::v8f32,// ->316310
/*316298*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*316300*/              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), immAllZerosV:{ *:[v8f32] }) - Complexity = 10
                        // Dst: (VFNMADD213PSZ256rkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src3)
/*316310*/            /*SwitchType*/ 12, MVT::v8f64,// ->316324
/*316312*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*316314*/              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), immAllZerosV:{ *:[v8f64] }) - Complexity = 10
                        // Dst: (VFNMADD213PDZrkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3)
/*316324*/            0, // EndSwitchType
/*316325*/          /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::FNMSUB),// ->316365
/*316328*/            OPC_RecordChild0, // #1 = $src2
/*316329*/            OPC_RecordChild1, // #2 = $src1
/*316330*/            OPC_RecordChild2, // #3 = $src3
/*316331*/            OPC_MoveParent,
/*316332*/            OPC_MoveChild2,
/*316333*/            OPC_CheckImmAllZerosV,
/*316334*/            OPC_MoveParent,
/*316335*/            OPC_SwitchType /*2 cases */, 12, MVT::v8f32,// ->316350
/*316338*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*316340*/              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), immAllZerosV:{ *:[v8f32] }) - Complexity = 10
                        // Dst: (VFNMSUB213PSZ256rkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8f32] }:$src3)
/*316350*/            /*SwitchType*/ 12, MVT::v8f64,// ->316364
/*316352*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*316354*/              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), immAllZerosV:{ *:[v8f64] }) - Complexity = 10
                        // Dst: (VFNMSUB213PDZrkz:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3)
/*316364*/            0, // EndSwitchType
/*316365*/          /*SwitchOpcode*/ 22, TARGET_VAL(X86ISD::STRICT_VFPROUND),// ->316390
/*316368*/            OPC_RecordNode, // #1 = 'X86strict_vfpround' chained node
/*316369*/            OPC_CheckFoldableChainNode,
/*316370*/            OPC_RecordChild1, // #2 = $src
/*316371*/            OPC_CheckChild1Type, MVT::v8f64,
/*316373*/            OPC_MoveParent,
/*316374*/            OPC_MoveChild2,
/*316375*/            OPC_CheckImmAllZerosV,
/*316376*/            OPC_MoveParent,
/*316377*/            OPC_CheckType, MVT::v8f32,
/*316379*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*316381*/            OPC_EmitMergeInputChains1_1,
/*316382*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZrrkz), 0|OPFL_Chain,
                          MVT::v8f32, 2/*#Ops*/, 0, 2, 
                      // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_vfpround:{ *:[v8f32] } VR512:{ *:[v8f64] }:$src), immAllZerosV:{ *:[v8f32] }) - Complexity = 10
                      // Dst: (VCVTPD2PSZrrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*316390*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::VFPROUND),// ->316412
/*316393*/            OPC_RecordChild0, // #1 = $src
/*316394*/            OPC_CheckChild0Type, MVT::v8f64,
/*316396*/            OPC_MoveParent,
/*316397*/            OPC_MoveChild2,
/*316398*/            OPC_CheckImmAllZerosV,
/*316399*/            OPC_MoveParent,
/*316400*/            OPC_CheckType, MVT::v8f32,
/*316402*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*316404*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZrrkz), 0,
                          MVT::v8f32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86vfpround:{ *:[v8f32] } VR512:{ *:[v8f64] }:$src), immAllZerosV:{ *:[v8f32] }) - Complexity = 10
                      // Dst: (VCVTPD2PSZrrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*316412*/          /*SwitchOpcode*/ 20, TARGET_VAL(ISD::STRICT_FP_EXTEND),// ->316435
/*316415*/            OPC_RecordNode, // #1 = 'strict_fpextend' chained node
/*316416*/            OPC_CheckFoldableChainNode,
/*316417*/            OPC_RecordChild1, // #2 = $src
/*316418*/            OPC_MoveParent,
/*316419*/            OPC_MoveChild2,
/*316420*/            OPC_CheckImmAllZerosV,
/*316421*/            OPC_MoveParent,
/*316422*/            OPC_CheckType, MVT::v8f64,
/*316424*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*316426*/            OPC_EmitMergeInputChains1_1,
/*316427*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PDZrrkz), 0|OPFL_Chain,
                          MVT::v8f64, 2/*#Ops*/, 0, 2, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (strict_fpextend:{ *:[v8f64] } VR256X:{ *:[v8f32] }:$src), immAllZerosV:{ *:[v8f64] }) - Complexity = 10
                      // Dst: (VCVTPS2PDZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*316435*/          /*SwitchOpcode*/ 17, TARGET_VAL(ISD::FP_EXTEND),// ->316455
/*316438*/            OPC_RecordChild0, // #1 = $src
/*316439*/            OPC_MoveParent,
/*316440*/            OPC_MoveChild2,
/*316441*/            OPC_CheckImmAllZerosV,
/*316442*/            OPC_MoveParent,
/*316443*/            OPC_CheckType, MVT::v8f64,
/*316445*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*316447*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PDZrrkz), 0,
                          MVT::v8f64, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (fpextend:{ *:[v8f64] } VR256X:{ *:[v8f32] }:$src), immAllZerosV:{ *:[v8f64] }) - Complexity = 10
                      // Dst: (VCVTPS2PDZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*316455*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::VFPEXT_SAE),// ->316477
/*316458*/            OPC_RecordChild0, // #1 = $src
/*316459*/            OPC_CheckChild0Type, MVT::v8f32,
/*316461*/            OPC_MoveParent,
/*316462*/            OPC_MoveChild2,
/*316463*/            OPC_CheckImmAllZerosV,
/*316464*/            OPC_MoveParent,
/*316465*/            OPC_CheckType, MVT::v8f64,
/*316467*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*316469*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PDZrrbkz), 0,
                          MVT::v8f64, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86vfpextSAE:{ *:[v8f64] } VR256X:{ *:[v8f32] }:$src), immAllZerosV:{ *:[v8f64] }) - Complexity = 10
                      // Dst: (VCVTPS2PDZrrbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*316477*/          /*SwitchOpcode*/ 75, TARGET_VAL(ISD::STRICT_SINT_TO_FP),// ->316555
/*316480*/            OPC_RecordNode, // #1 = 'strict_sint_to_fp' chained node
/*316481*/            OPC_CheckFoldableChainNode,
/*316482*/            OPC_RecordChild1, // #2 = $src
/*316483*/            OPC_Scope, 34, /*->316519*/ // 2 children in Scope
/*316485*/              OPC_CheckChild1Type, MVT::v8i32,
/*316487*/              OPC_MoveParent,
/*316488*/              OPC_MoveChild2,
/*316489*/              OPC_CheckImmAllZerosV,
/*316490*/              OPC_MoveParent,
/*316491*/              OPC_SwitchType /*2 cases */, 11, MVT::v8f64,// ->316505
/*316494*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*316496*/                OPC_EmitMergeInputChains1_1,
/*316497*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDZrrkz), 0|OPFL_Chain,
                              MVT::v8f64, 2/*#Ops*/, 0, 2, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (strict_sint_to_fp:{ *:[v8f64] } VR256X:{ *:[v8i32] }:$src), immAllZerosV:{ *:[v8f64] }) - Complexity = 10
                          // Dst: (VCVTDQ2PDZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/*316505*/              /*SwitchType*/ 11, MVT::v8f32,// ->316518
/*316507*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*316509*/                OPC_EmitMergeInputChains1_1,
/*316510*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSZ256rrkz), 0|OPFL_Chain,
                              MVT::v8f32, 2/*#Ops*/, 0, 2, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (strict_sint_to_fp:{ *:[v8f32] } VR256X:{ *:[v8i32] }:$src), immAllZerosV:{ *:[v8f32] }) - Complexity = 10
                          // Dst: (VCVTDQ2PSZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/*316518*/              0, // EndSwitchType
/*316519*/            /*Scope*/ 34, /*->316554*/
/*316520*/              OPC_CheckChild1Type, MVT::v8i64,
/*316522*/              OPC_MoveParent,
/*316523*/              OPC_MoveChild2,
/*316524*/              OPC_CheckImmAllZerosV,
/*316525*/              OPC_MoveParent,
/*316526*/              OPC_SwitchType /*2 cases */, 11, MVT::v8f64,// ->316540
/*316529*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*316531*/                OPC_EmitMergeInputChains1_1,
/*316532*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PDZrrkz), 0|OPFL_Chain,
                              MVT::v8f64, 2/*#Ops*/, 0, 2, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (strict_sint_to_fp:{ *:[v8f64] } VR512:{ *:[v8i64] }:$src), immAllZerosV:{ *:[v8f64] }) - Complexity = 10
                          // Dst: (VCVTQQ2PDZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*316540*/              /*SwitchType*/ 11, MVT::v8f32,// ->316553
/*316542*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*316544*/                OPC_EmitMergeInputChains1_1,
/*316545*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PSZrrkz), 0|OPFL_Chain,
                              MVT::v8f32, 2/*#Ops*/, 0, 2, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (strict_sint_to_fp:{ *:[v8f32] } VR512:{ *:[v8i64] }:$src), immAllZerosV:{ *:[v8f32] }) - Complexity = 10
                          // Dst: (VCVTQQ2PSZrrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*316553*/              0, // EndSwitchType
/*316554*/            0, /*End of Scope*/
/*316555*/          /*SwitchOpcode*/ 69, TARGET_VAL(ISD::SINT_TO_FP),// ->316627
/*316558*/            OPC_RecordChild0, // #1 = $src
/*316559*/            OPC_Scope, 32, /*->316593*/ // 2 children in Scope
/*316561*/              OPC_CheckChild0Type, MVT::v8i32,
/*316563*/              OPC_MoveParent,
/*316564*/              OPC_MoveChild2,
/*316565*/              OPC_CheckImmAllZerosV,
/*316566*/              OPC_MoveParent,
/*316567*/              OPC_SwitchType /*2 cases */, 10, MVT::v8f64,// ->316580
/*316570*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*316572*/                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), immAllZerosV:{ *:[v8f64] }) - Complexity = 10
                          // Dst: (VCVTDQ2PDZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/*316580*/              /*SwitchType*/ 10, MVT::v8f32,// ->316592
/*316582*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*316584*/                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), immAllZerosV:{ *:[v8f32] }) - Complexity = 10
                          // Dst: (VCVTDQ2PSZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/*316592*/              0, // EndSwitchType
/*316593*/            /*Scope*/ 32, /*->316626*/
/*316594*/              OPC_CheckChild0Type, MVT::v8i64,
/*316596*/              OPC_MoveParent,
/*316597*/              OPC_MoveChild2,
/*316598*/              OPC_CheckImmAllZerosV,
/*316599*/              OPC_MoveParent,
/*316600*/              OPC_SwitchType /*2 cases */, 10, MVT::v8f64,// ->316613
/*316603*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*316605*/                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), immAllZerosV:{ *:[v8f64] }) - Complexity = 10
                          // Dst: (VCVTQQ2PDZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*316613*/              /*SwitchType*/ 10, MVT::v8f32,// ->316625
/*316615*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*316617*/                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), immAllZerosV:{ *:[v8f32] }) - Complexity = 10
                          // Dst: (VCVTQQ2PSZrrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*316625*/              0, // EndSwitchType
/*316626*/            0, /*End of Scope*/
/*316627*/          /*SwitchOpcode*/ 75, TARGET_VAL(ISD::STRICT_UINT_TO_FP),// ->316705
/*316630*/            OPC_RecordNode, // #1 = 'strict_uint_to_fp' chained node
/*316631*/            OPC_CheckFoldableChainNode,
/*316632*/            OPC_RecordChild1, // #2 = $src
/*316633*/            OPC_Scope, 34, /*->316669*/ // 2 children in Scope
/*316635*/              OPC_CheckChild1Type, MVT::v8i32,
/*316637*/              OPC_MoveParent,
/*316638*/              OPC_MoveChild2,
/*316639*/              OPC_CheckImmAllZerosV,
/*316640*/              OPC_MoveParent,
/*316641*/              OPC_SwitchType /*2 cases */, 11, MVT::v8f64,// ->316655
/*316644*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*316646*/                OPC_EmitMergeInputChains1_1,
/*316647*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PDZrrkz), 0|OPFL_Chain,
                              MVT::v8f64, 2/*#Ops*/, 0, 2, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (strict_uint_to_fp:{ *:[v8f64] } VR256X:{ *:[v8i32] }:$src), immAllZerosV:{ *:[v8f64] }) - Complexity = 10
                          // Dst: (VCVTUDQ2PDZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/*316655*/              /*SwitchType*/ 11, MVT::v8f32,// ->316668
/*316657*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*316659*/                OPC_EmitMergeInputChains1_1,
/*316660*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PSZ256rrkz), 0|OPFL_Chain,
                              MVT::v8f32, 2/*#Ops*/, 0, 2, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (strict_uint_to_fp:{ *:[v8f32] } VR256X:{ *:[v8i32] }:$src), immAllZerosV:{ *:[v8f32] }) - Complexity = 10
                          // Dst: (VCVTUDQ2PSZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/*316668*/              0, // EndSwitchType
/*316669*/            /*Scope*/ 34, /*->316704*/
/*316670*/              OPC_CheckChild1Type, MVT::v8i64,
/*316672*/              OPC_MoveParent,
/*316673*/              OPC_MoveChild2,
/*316674*/              OPC_CheckImmAllZerosV,
/*316675*/              OPC_MoveParent,
/*316676*/              OPC_SwitchType /*2 cases */, 11, MVT::v8f64,// ->316690
/*316679*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*316681*/                OPC_EmitMergeInputChains1_1,
/*316682*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PDZrrkz), 0|OPFL_Chain,
                              MVT::v8f64, 2/*#Ops*/, 0, 2, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (strict_uint_to_fp:{ *:[v8f64] } VR512:{ *:[v8i64] }:$src), immAllZerosV:{ *:[v8f64] }) - Complexity = 10
                          // Dst: (VCVTUQQ2PDZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*316690*/              /*SwitchType*/ 11, MVT::v8f32,// ->316703
/*316692*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*316694*/                OPC_EmitMergeInputChains1_1,
/*316695*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PSZrrkz), 0|OPFL_Chain,
                              MVT::v8f32, 2/*#Ops*/, 0, 2, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (strict_uint_to_fp:{ *:[v8f32] } VR512:{ *:[v8i64] }:$src), immAllZerosV:{ *:[v8f32] }) - Complexity = 10
                          // Dst: (VCVTUQQ2PSZrrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*316703*/              0, // EndSwitchType
/*316704*/            0, /*End of Scope*/
/*316705*/          /*SwitchOpcode*/ 69, TARGET_VAL(ISD::UINT_TO_FP),// ->316777
/*316708*/            OPC_RecordChild0, // #1 = $src
/*316709*/            OPC_Scope, 32, /*->316743*/ // 2 children in Scope
/*316711*/              OPC_CheckChild0Type, MVT::v8i32,
/*316713*/              OPC_MoveParent,
/*316714*/              OPC_MoveChild2,
/*316715*/              OPC_CheckImmAllZerosV,
/*316716*/              OPC_MoveParent,
/*316717*/              OPC_SwitchType /*2 cases */, 10, MVT::v8f64,// ->316730
/*316720*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*316722*/                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), immAllZerosV:{ *:[v8f64] }) - Complexity = 10
                          // Dst: (VCVTUDQ2PDZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/*316730*/              /*SwitchType*/ 10, MVT::v8f32,// ->316742
/*316732*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*316734*/                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), immAllZerosV:{ *:[v8f32] }) - Complexity = 10
                          // Dst: (VCVTUDQ2PSZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/*316742*/              0, // EndSwitchType
/*316743*/            /*Scope*/ 32, /*->316776*/
/*316744*/              OPC_CheckChild0Type, MVT::v8i64,
/*316746*/              OPC_MoveParent,
/*316747*/              OPC_MoveChild2,
/*316748*/              OPC_CheckImmAllZerosV,
/*316749*/              OPC_MoveParent,
/*316750*/              OPC_SwitchType /*2 cases */, 10, MVT::v8f64,// ->316763
/*316753*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*316755*/                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), immAllZerosV:{ *:[v8f64] }) - Complexity = 10
                          // Dst: (VCVTUQQ2PDZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*316763*/              /*SwitchType*/ 10, MVT::v8f32,// ->316775
/*316765*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*316767*/                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), immAllZerosV:{ *:[v8f32] }) - Complexity = 10
                          // Dst: (VCVTUQQ2PSZrrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*316775*/              0, // EndSwitchType
/*316776*/            0, /*End of Scope*/
/*316777*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::CVTPH2PS),// ->316799
/*316780*/            OPC_RecordChild0, // #1 = $src
/*316781*/            OPC_CheckChild0Type, MVT::v8i16,
/*316783*/            OPC_MoveParent,
/*316784*/            OPC_MoveChild2,
/*316785*/            OPC_CheckImmAllZerosV,
/*316786*/            OPC_MoveParent,
/*316787*/            OPC_CheckType, MVT::v8f32,
/*316789*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*316791*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPH2PSZ256rrkz), 0,
                          MVT::v8f32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86cvtph2ps:{ *:[v8f32] } VR128X:{ *:[v8i16] }:$src), immAllZerosV:{ *:[v8f32] }) - Complexity = 10
                      // Dst: (VCVTPH2PSZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/*316799*/          /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::RSQRT14),// ->316833
/*316802*/            OPC_RecordChild0, // #1 = $src
/*316803*/            OPC_MoveParent,
/*316804*/            OPC_MoveChild2,
/*316805*/            OPC_CheckImmAllZerosV,
/*316806*/            OPC_MoveParent,
/*316807*/            OPC_SwitchType /*2 cases */, 10, MVT::v8f64,// ->316820
/*316810*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*316812*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14PDZrkz), 0,
                            MVT::v8f64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86rsqrt14:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src), immAllZerosV:{ *:[v8f64] }) - Complexity = 10
                        // Dst: (VRSQRT14PDZrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*316820*/            /*SwitchType*/ 10, MVT::v8f32,// ->316832
/*316822*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*316824*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14PSZ256rkz), 0,
                            MVT::v8f32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86rsqrt14:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src), immAllZerosV:{ *:[v8f32] }) - Complexity = 10
                        // Dst: (VRSQRT14PSZ256rkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*316832*/            0, // EndSwitchType
/*316833*/          /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::RCP14),// ->316867
/*316836*/            OPC_RecordChild0, // #1 = $src
/*316837*/            OPC_MoveParent,
/*316838*/            OPC_MoveChild2,
/*316839*/            OPC_CheckImmAllZerosV,
/*316840*/            OPC_MoveParent,
/*316841*/            OPC_SwitchType /*2 cases */, 10, MVT::v8f64,// ->316854
/*316844*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*316846*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14PDZrkz), 0,
                            MVT::v8f64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86rcp14:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src), immAllZerosV:{ *:[v8f64] }) - Complexity = 10
                        // Dst: (VRCP14PDZrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*316854*/            /*SwitchType*/ 10, MVT::v8f32,// ->316866
/*316856*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*316858*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14PSZ256rkz), 0,
                            MVT::v8f32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86rcp14:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src), immAllZerosV:{ *:[v8f32] }) - Complexity = 10
                        // Dst: (VRCP14PSZ256rkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*316866*/            0, // EndSwitchType
/*316867*/          /*SwitchOpcode*/ 17, TARGET_VAL(X86ISD::RSQRT28),// ->316887
/*316870*/            OPC_RecordChild0, // #1 = $src
/*316871*/            OPC_MoveParent,
/*316872*/            OPC_MoveChild2,
/*316873*/            OPC_CheckImmAllZerosV,
/*316874*/            OPC_MoveParent,
/*316875*/            OPC_CheckType, MVT::v8f64,
/*316877*/            OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*316879*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT28PDZrkz), 0,
                          MVT::v8f64, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86rsqrt28:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src), immAllZerosV:{ *:[v8f64] }) - Complexity = 10
                      // Dst: (VRSQRT28PDZrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*316887*/          /*SwitchOpcode*/ 17, TARGET_VAL(X86ISD::RSQRT28_SAE),// ->316907
/*316890*/            OPC_RecordChild0, // #1 = $src
/*316891*/            OPC_MoveParent,
/*316892*/            OPC_MoveChild2,
/*316893*/            OPC_CheckImmAllZerosV,
/*316894*/            OPC_MoveParent,
/*316895*/            OPC_CheckType, MVT::v8f64,
/*316897*/            OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*316899*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT28PDZrbkz), 0,
                          MVT::v8f64, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86rsqrt28SAE:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src), immAllZerosV:{ *:[v8f64] }) - Complexity = 10
                      // Dst: (VRSQRT28PDZrbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*316907*/          /*SwitchOpcode*/ 17, TARGET_VAL(X86ISD::RCP28),// ->316927
/*316910*/            OPC_RecordChild0, // #1 = $src
/*316911*/            OPC_MoveParent,
/*316912*/            OPC_MoveChild2,
/*316913*/            OPC_CheckImmAllZerosV,
/*316914*/            OPC_MoveParent,
/*316915*/            OPC_CheckType, MVT::v8f64,
/*316917*/            OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*316919*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP28PDZrkz), 0,
                          MVT::v8f64, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86rcp28:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src), immAllZerosV:{ *:[v8f64] }) - Complexity = 10
                      // Dst: (VRCP28PDZrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*316927*/          /*SwitchOpcode*/ 17, TARGET_VAL(X86ISD::RCP28_SAE),// ->316947
/*316930*/            OPC_RecordChild0, // #1 = $src
/*316931*/            OPC_MoveParent,
/*316932*/            OPC_MoveChild2,
/*316933*/            OPC_CheckImmAllZerosV,
/*316934*/            OPC_MoveParent,
/*316935*/            OPC_CheckType, MVT::v8f64,
/*316937*/            OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*316939*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP28PDZrbkz), 0,
                          MVT::v8f64, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86rcp28SAE:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src), immAllZerosV:{ *:[v8f64] }) - Complexity = 10
                      // Dst: (VRCP28PDZrbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*316947*/          /*SwitchOpcode*/ 17, TARGET_VAL(X86ISD::EXP2),// ->316967
/*316950*/            OPC_RecordChild0, // #1 = $src
/*316951*/            OPC_MoveParent,
/*316952*/            OPC_MoveChild2,
/*316953*/            OPC_CheckImmAllZerosV,
/*316954*/            OPC_MoveParent,
/*316955*/            OPC_CheckType, MVT::v8f64,
/*316957*/            OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*316959*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VEXP2PDZrkz), 0,
                          MVT::v8f64, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86exp2:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src), immAllZerosV:{ *:[v8f64] }) - Complexity = 10
                      // Dst: (VEXP2PDZrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*316967*/          /*SwitchOpcode*/ 17, TARGET_VAL(X86ISD::EXP2_SAE),// ->316987
/*316970*/            OPC_RecordChild0, // #1 = $src
/*316971*/            OPC_MoveParent,
/*316972*/            OPC_MoveChild2,
/*316973*/            OPC_CheckImmAllZerosV,
/*316974*/            OPC_MoveParent,
/*316975*/            OPC_CheckType, MVT::v8f64,
/*316977*/            OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*316979*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VEXP2PDZrbkz), 0,
                          MVT::v8f64, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86exp2SAE:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src), immAllZerosV:{ *:[v8f64] }) - Complexity = 10
                      // Dst: (VEXP2PDZrbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*316987*/          /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::FGETEXP),// ->317021
/*316990*/            OPC_RecordChild0, // #1 = $src
/*316991*/            OPC_MoveParent,
/*316992*/            OPC_MoveChild2,
/*316993*/            OPC_CheckImmAllZerosV,
/*316994*/            OPC_MoveParent,
/*316995*/            OPC_SwitchType /*2 cases */, 10, MVT::v8f64,// ->317008
/*316998*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*317000*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPDZrkz), 0,
                            MVT::v8f64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fgetexp:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src), immAllZerosV:{ *:[v8f64] }) - Complexity = 10
                        // Dst: (VGETEXPPDZrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*317008*/            /*SwitchType*/ 10, MVT::v8f32,// ->317020
/*317010*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*317012*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPSZ256rkz), 0,
                            MVT::v8f32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86fgetexp:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src), immAllZerosV:{ *:[v8f32] }) - Complexity = 10
                        // Dst: (VGETEXPPSZ256rkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*317020*/            0, // EndSwitchType
/*317021*/          /*SwitchOpcode*/ 17, TARGET_VAL(X86ISD::FGETEXP_SAE),// ->317041
/*317024*/            OPC_RecordChild0, // #1 = $src
/*317025*/            OPC_MoveParent,
/*317026*/            OPC_MoveChild2,
/*317027*/            OPC_CheckImmAllZerosV,
/*317028*/            OPC_MoveParent,
/*317029*/            OPC_CheckType, MVT::v8f64,
/*317031*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*317033*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPDZrbkz), 0,
                          MVT::v8f64, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fgetexpSAE:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src), immAllZerosV:{ *:[v8f64] }) - Complexity = 10
                      // Dst: (VGETEXPPDZrbkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*317041*/          /*SwitchOpcode*/ 35, TARGET_VAL(ISD::STRICT_FSQRT),// ->317079
/*317044*/            OPC_RecordNode, // #1 = 'strict_fsqrt' chained node
/*317045*/            OPC_CheckFoldableChainNode,
/*317046*/            OPC_RecordChild1, // #2 = $src
/*317047*/            OPC_MoveParent,
/*317048*/            OPC_MoveChild2,
/*317049*/            OPC_CheckImmAllZerosV,
/*317050*/            OPC_MoveParent,
/*317051*/            OPC_SwitchType /*2 cases */, 11, MVT::v8f64,// ->317065
/*317054*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*317056*/              OPC_EmitMergeInputChains1_1,
/*317057*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDZrkz), 0|OPFL_Chain,
                            MVT::v8f64, 2/*#Ops*/, 0, 2, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (strict_fsqrt:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src), immAllZerosV:{ *:[v8f64] }) - Complexity = 10
                        // Dst: (VSQRTPDZrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*317065*/            /*SwitchType*/ 11, MVT::v8f32,// ->317078
/*317067*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*317069*/              OPC_EmitMergeInputChains1_1,
/*317070*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSZ256rkz), 0|OPFL_Chain,
                            MVT::v8f32, 2/*#Ops*/, 0, 2, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (strict_fsqrt:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src), immAllZerosV:{ *:[v8f32] }) - Complexity = 10
                        // Dst: (VSQRTPSZ256rkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*317078*/            0, // EndSwitchType
/*317079*/          /*SwitchOpcode*/ 31, TARGET_VAL(ISD::FSQRT),// ->317113
/*317082*/            OPC_RecordChild0, // #1 = $src
/*317083*/            OPC_MoveParent,
/*317084*/            OPC_MoveChild2,
/*317085*/            OPC_CheckImmAllZerosV,
/*317086*/            OPC_MoveParent,
/*317087*/            OPC_SwitchType /*2 cases */, 10, MVT::v8f64,// ->317100
/*317090*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*317092*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDZrkz), 0,
                            MVT::v8f64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (fsqrt:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src), immAllZerosV:{ *:[v8f64] }) - Complexity = 10
                        // Dst: (VSQRTPDZrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*317100*/            /*SwitchType*/ 10, MVT::v8f32,// ->317112
/*317102*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*317104*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSZ256rkz), 0,
                            MVT::v8f32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (fsqrt:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src), immAllZerosV:{ *:[v8f32] }) - Complexity = 10
                        // Dst: (VSQRTPSZ256rkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*317112*/            0, // EndSwitchType
/*317113*/          /*SwitchOpcode*/ 17, TARGET_VAL(X86ISD::MOVSHDUP),// ->317133
/*317116*/            OPC_RecordChild0, // #1 = $src1
/*317117*/            OPC_MoveParent,
/*317118*/            OPC_MoveChild2,
/*317119*/            OPC_CheckImmAllZerosV,
/*317120*/            OPC_MoveParent,
/*317121*/            OPC_CheckType, MVT::v8f32,
/*317123*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*317125*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSHDUPZ256rrkz), 0,
                          MVT::v8f32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Movshdup:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1), immAllZerosV:{ *:[v8f32] }) - Complexity = 10
                      // Dst: (VMOVSHDUPZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1)
/*317133*/          /*SwitchOpcode*/ 17, TARGET_VAL(X86ISD::MOVSLDUP),// ->317153
/*317136*/            OPC_RecordChild0, // #1 = $src1
/*317137*/            OPC_MoveParent,
/*317138*/            OPC_MoveChild2,
/*317139*/            OPC_CheckImmAllZerosV,
/*317140*/            OPC_MoveParent,
/*317141*/            OPC_CheckType, MVT::v8f32,
/*317143*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*317145*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSLDUPZ256rrkz), 0,
                          MVT::v8f32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Movsldup:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1), immAllZerosV:{ *:[v8f32] }) - Complexity = 10
                      // Dst: (VMOVSLDUPZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1)
/*317153*/          /*SwitchOpcode*/ 17, TARGET_VAL(X86ISD::MOVDDUP),// ->317173
/*317156*/            OPC_RecordChild0, // #1 = $src1
/*317157*/            OPC_MoveParent,
/*317158*/            OPC_MoveChild2,
/*317159*/            OPC_CheckImmAllZerosV,
/*317160*/            OPC_MoveParent,
/*317161*/            OPC_CheckType, MVT::v8f64,
/*317163*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*317165*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDDUPZrrkz), 0,
                          MVT::v8f64, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Movddup:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1), immAllZerosV:{ *:[v8f64] }) - Complexity = 10
                      // Dst: (VMOVDDUPZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1)
/*317173*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::UNPCKH),// ->317210
/*317176*/            OPC_RecordChild0, // #1 = $src1
/*317177*/            OPC_RecordChild1, // #2 = $src2
/*317178*/            OPC_MoveParent,
/*317179*/            OPC_MoveChild2,
/*317180*/            OPC_CheckImmAllZerosV,
/*317181*/            OPC_MoveParent,
/*317182*/            OPC_SwitchType /*2 cases */, 11, MVT::v8f64,// ->317196
/*317185*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*317187*/              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), immAllZerosV:{ *:[v8f64] }) - Complexity = 10
                        // Dst: (VUNPCKHPDZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*317196*/            /*SwitchType*/ 11, MVT::v8f32,// ->317209
/*317198*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*317200*/              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), immAllZerosV:{ *:[v8f32] }) - Complexity = 10
                        // Dst: (VUNPCKHPSZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2)
/*317209*/            0, // EndSwitchType
/*317210*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::UNPCKL),// ->317247
/*317213*/            OPC_RecordChild0, // #1 = $src1
/*317214*/            OPC_RecordChild1, // #2 = $src2
/*317215*/            OPC_MoveParent,
/*317216*/            OPC_MoveChild2,
/*317217*/            OPC_CheckImmAllZerosV,
/*317218*/            OPC_MoveParent,
/*317219*/            OPC_SwitchType /*2 cases */, 11, MVT::v8f64,// ->317233
/*317222*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*317224*/              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), immAllZerosV:{ *:[v8f64] }) - Complexity = 10
                        // Dst: (VUNPCKLPDZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*317233*/            /*SwitchType*/ 11, MVT::v8f32,// ->317246
/*317235*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*317237*/              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), immAllZerosV:{ *:[v8f32] }) - Complexity = 10
                        // Dst: (VUNPCKLPSZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2)
/*317246*/            0, // EndSwitchType
/*317247*/          /*SwitchOpcode*/ 23, TARGET_VAL(X86ISD::DPBF16PS),// ->317273
/*317250*/            OPC_RecordChild0, // #1 = $src1
/*317251*/            OPC_RecordChild1, // #2 = $src2
/*317252*/            OPC_CheckChild1Type, MVT::v8i32,
/*317254*/            OPC_RecordChild2, // #3 = $src3
/*317255*/            OPC_MoveParent,
/*317256*/            OPC_MoveChild2,
/*317257*/            OPC_CheckImmAllZerosV,
/*317258*/            OPC_MoveParent,
/*317259*/            OPC_CheckType, MVT::v8f32,
/*317261*/            OPC_CheckPatternPredicate, 182, // (Subtarget->hasBF16()) && (Subtarget->hasVLX())
/*317263*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDPBF16PSZ256rkz), 0,
                          MVT::v8f32, 4/*#Ops*/, 1, 0, 2, 3, 
                      // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86dpbf16ps:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3), immAllZerosV:{ *:[v8f32] }) - Complexity = 10
                      // Dst: (VDPBF16PSZ256rkz:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3)
/*317273*/          0, // EndSwitchOpcode
/*317274*/        /*Scope*/ 97, /*->317372*/
/*317275*/          OPC_RecordChild1, // #1 = $src3
/*317276*/          OPC_MoveChild1,
/*317277*/          OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*317280*/          OPC_RecordChild0, // #2 = $src1
/*317281*/          OPC_RecordChild1, // #3 = $src2
/*317282*/          OPC_Scope, 27, /*->317311*/ // 3 children in Scope
/*317284*/            OPC_MoveChild2,
/*317285*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*317288*/            OPC_CheckType, MVT::iPTR,
/*317290*/            OPC_MoveParent,
/*317291*/            OPC_MoveParent,
/*317292*/            OPC_RecordChild2, // #4 = $src0
/*317293*/            OPC_CheckType, MVT::v8f32,
/*317295*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*317297*/            OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*317300*/            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))
/*317311*/          /*Scope*/ 29, /*->317341*/
/*317312*/            OPC_CheckChild1Type, MVT::v4f64,
/*317314*/            OPC_MoveChild2,
/*317315*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*317318*/            OPC_CheckType, MVT::iPTR,
/*317320*/            OPC_MoveParent,
/*317321*/            OPC_MoveParent,
/*317322*/            OPC_RecordChild2, // #4 = $src0
/*317323*/            OPC_CheckType, MVT::v8f64,
/*317325*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*317327*/            OPC_EmitNodeXForm, 16, 1, // INSERT_get_vinsert256_imm
/*317330*/            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))
/*317341*/          /*Scope*/ 29, /*->317371*/
/*317342*/            OPC_CheckChild1Type, MVT::v2f64,
/*317344*/            OPC_MoveChild2,
/*317345*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*317348*/            OPC_CheckType, MVT::iPTR,
/*317350*/            OPC_MoveParent,
/*317351*/            OPC_MoveParent,
/*317352*/            OPC_RecordChild2, // #4 = $src0
/*317353*/            OPC_CheckType, MVT::v8f64,
/*317355*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*317357*/            OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*317360*/            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))
/*317371*/          0, /*End of Scope*/
/*317372*/        /*Scope*/ 11|128,15/*1931*/, /*->319305*/
/*317374*/          OPC_MoveChild1,
/*317375*/          OPC_SwitchOpcode /*32 cases */, 27|128,5/*667*/, TARGET_VAL(ISD::BITCAST),// ->318047
/*317380*/            OPC_MoveChild0,
/*317381*/            OPC_SwitchOpcode /*5 cases */, 21, TARGET_VAL(X86ISD::VBROADCAST),// ->317406
/*317385*/              OPC_RecordChild0, // #1 = $src
/*317386*/              OPC_CheckChild0Type, MVT::v2f64,
/*317388*/              OPC_CheckType, MVT::v4f64,
/*317390*/              OPC_MoveParent,
/*317391*/              OPC_MoveParent,
/*317392*/              OPC_RecordChild2, // #2 = $src0
/*317393*/              OPC_CheckType, MVT::v8f32,
/*317395*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*317397*/              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)
/*317406*/            /*SwitchOpcode*/ 28|128,1/*156*/, TARGET_VAL(ISD::AND),// ->317566
/*317410*/              OPC_RecordChild0, // #1 = $src1
/*317411*/              OPC_RecordChild1, // #2 = $src2
/*317412*/              OPC_SwitchType /*8 cases */, 17, MVT::v4i64,// ->317432
/*317415*/                OPC_MoveParent,
/*317416*/                OPC_MoveParent,
/*317417*/                OPC_RecordChild2, // #3 = $src0
/*317418*/                OPC_CheckType, MVT::v8f32,
/*317420*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*317422*/                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)
/*317432*/              /*SwitchType*/ 17, MVT::v8i32,// ->317451
/*317434*/                OPC_MoveParent,
/*317435*/                OPC_MoveParent,
/*317436*/                OPC_RecordChild2, // #3 = $src0
/*317437*/                OPC_CheckType, MVT::v8f32,
/*317439*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*317441*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ256rrk), 0,
                              MVT::v8f32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (and:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 9
                          // Dst: (VPANDDZ256rrk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*317451*/              /*SwitchType*/ 17, MVT::v16i16,// ->317470
/*317453*/                OPC_MoveParent,
/*317454*/                OPC_MoveParent,
/*317455*/                OPC_RecordChild2, // #3 = $src0
/*317456*/                OPC_CheckType, MVT::v8f32,
/*317458*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*317460*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ256rrk), 0,
                              MVT::v8f32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (and:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 9
                          // Dst: (VPANDDZ256rrk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*317470*/              /*SwitchType*/ 17, MVT::v32i8,// ->317489
/*317472*/                OPC_MoveParent,
/*317473*/                OPC_MoveParent,
/*317474*/                OPC_RecordChild2, // #3 = $src0
/*317475*/                OPC_CheckType, MVT::v8f32,
/*317477*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*317479*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ256rrk), 0,
                              MVT::v8f32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (and:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 9
                          // Dst: (VPANDDZ256rrk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*317489*/              /*SwitchType*/ 17, MVT::v8i64,// ->317508
/*317491*/                OPC_MoveParent,
/*317492*/                OPC_MoveParent,
/*317493*/                OPC_RecordChild2, // #3 = $src0
/*317494*/                OPC_CheckType, MVT::v8f64,
/*317496*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*317498*/                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)
/*317508*/              /*SwitchType*/ 17, MVT::v16i32,// ->317527
/*317510*/                OPC_MoveParent,
/*317511*/                OPC_MoveParent,
/*317512*/                OPC_RecordChild2, // #3 = $src0
/*317513*/                OPC_CheckType, MVT::v8f64,
/*317515*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*317517*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZrrk), 0,
                              MVT::v8f64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (and:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)), VR512:{ *:[v8f64] }:$src0) - Complexity = 9
                          // Dst: (VPANDQZrrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*317527*/              /*SwitchType*/ 17, MVT::v32i16,// ->317546
/*317529*/                OPC_MoveParent,
/*317530*/                OPC_MoveParent,
/*317531*/                OPC_RecordChild2, // #3 = $src0
/*317532*/                OPC_CheckType, MVT::v8f64,
/*317534*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*317536*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZrrk), 0,
                              MVT::v8f64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (and:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)), VR512:{ *:[v8f64] }:$src0) - Complexity = 9
                          // Dst: (VPANDQZrrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*317546*/              /*SwitchType*/ 17, MVT::v64i8,// ->317565
/*317548*/                OPC_MoveParent,
/*317549*/                OPC_MoveParent,
/*317550*/                OPC_RecordChild2, // #3 = $src0
/*317551*/                OPC_CheckType, MVT::v8f64,
/*317553*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*317555*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZrrk), 0,
                              MVT::v8f64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (and:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)), VR512:{ *:[v8f64] }:$src0) - Complexity = 9
                          // Dst: (VPANDQZrrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*317565*/              0, // EndSwitchType
/*317566*/            /*SwitchOpcode*/ 28|128,1/*156*/, TARGET_VAL(ISD::OR),// ->317726
/*317570*/              OPC_RecordChild0, // #1 = $src1
/*317571*/              OPC_RecordChild1, // #2 = $src2
/*317572*/              OPC_SwitchType /*8 cases */, 17, MVT::v4i64,// ->317592
/*317575*/                OPC_MoveParent,
/*317576*/                OPC_MoveParent,
/*317577*/                OPC_RecordChild2, // #3 = $src0
/*317578*/                OPC_CheckType, MVT::v8f32,
/*317580*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*317582*/                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)
/*317592*/              /*SwitchType*/ 17, MVT::v8i32,// ->317611
/*317594*/                OPC_MoveParent,
/*317595*/                OPC_MoveParent,
/*317596*/                OPC_RecordChild2, // #3 = $src0
/*317597*/                OPC_CheckType, MVT::v8f32,
/*317599*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*317601*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ256rrk), 0,
                              MVT::v8f32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (or:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 9
                          // Dst: (VPORDZ256rrk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*317611*/              /*SwitchType*/ 17, MVT::v16i16,// ->317630
/*317613*/                OPC_MoveParent,
/*317614*/                OPC_MoveParent,
/*317615*/                OPC_RecordChild2, // #3 = $src0
/*317616*/                OPC_CheckType, MVT::v8f32,
/*317618*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*317620*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ256rrk), 0,
                              MVT::v8f32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (or:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 9
                          // Dst: (VPORDZ256rrk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*317630*/              /*SwitchType*/ 17, MVT::v32i8,// ->317649
/*317632*/                OPC_MoveParent,
/*317633*/                OPC_MoveParent,
/*317634*/                OPC_RecordChild2, // #3 = $src0
/*317635*/                OPC_CheckType, MVT::v8f32,
/*317637*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*317639*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ256rrk), 0,
                              MVT::v8f32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (or:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 9
                          // Dst: (VPORDZ256rrk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*317649*/              /*SwitchType*/ 17, MVT::v8i64,// ->317668
/*317651*/                OPC_MoveParent,
/*317652*/                OPC_MoveParent,
/*317653*/                OPC_RecordChild2, // #3 = $src0
/*317654*/                OPC_CheckType, MVT::v8f64,
/*317656*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*317658*/                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)
/*317668*/              /*SwitchType*/ 17, MVT::v16i32,// ->317687
/*317670*/                OPC_MoveParent,
/*317671*/                OPC_MoveParent,
/*317672*/                OPC_RecordChild2, // #3 = $src0
/*317673*/                OPC_CheckType, MVT::v8f64,
/*317675*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*317677*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZrrk), 0,
                              MVT::v8f64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (or:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)), VR512:{ *:[v8f64] }:$src0) - Complexity = 9
                          // Dst: (VPORQZrrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*317687*/              /*SwitchType*/ 17, MVT::v32i16,// ->317706
/*317689*/                OPC_MoveParent,
/*317690*/                OPC_MoveParent,
/*317691*/                OPC_RecordChild2, // #3 = $src0
/*317692*/                OPC_CheckType, MVT::v8f64,
/*317694*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*317696*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZrrk), 0,
                              MVT::v8f64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (or:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)), VR512:{ *:[v8f64] }:$src0) - Complexity = 9
                          // Dst: (VPORQZrrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*317706*/              /*SwitchType*/ 17, MVT::v64i8,// ->317725
/*317708*/                OPC_MoveParent,
/*317709*/                OPC_MoveParent,
/*317710*/                OPC_RecordChild2, // #3 = $src0
/*317711*/                OPC_CheckType, MVT::v8f64,
/*317713*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*317715*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZrrk), 0,
                              MVT::v8f64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (or:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)), VR512:{ *:[v8f64] }:$src0) - Complexity = 9
                          // Dst: (VPORQZrrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*317725*/              0, // EndSwitchType
/*317726*/            /*SwitchOpcode*/ 28|128,1/*156*/, TARGET_VAL(ISD::XOR),// ->317886
/*317730*/              OPC_RecordChild0, // #1 = $src1
/*317731*/              OPC_RecordChild1, // #2 = $src2
/*317732*/              OPC_SwitchType /*8 cases */, 17, MVT::v4i64,// ->317752
/*317735*/                OPC_MoveParent,
/*317736*/                OPC_MoveParent,
/*317737*/                OPC_RecordChild2, // #3 = $src0
/*317738*/                OPC_CheckType, MVT::v8f32,
/*317740*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*317742*/                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)
/*317752*/              /*SwitchType*/ 17, MVT::v8i32,// ->317771
/*317754*/                OPC_MoveParent,
/*317755*/                OPC_MoveParent,
/*317756*/                OPC_RecordChild2, // #3 = $src0
/*317757*/                OPC_CheckType, MVT::v8f32,
/*317759*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*317761*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ256rrk), 0,
                              MVT::v8f32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (xor:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 9
                          // Dst: (VPXORDZ256rrk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*317771*/              /*SwitchType*/ 17, MVT::v16i16,// ->317790
/*317773*/                OPC_MoveParent,
/*317774*/                OPC_MoveParent,
/*317775*/                OPC_RecordChild2, // #3 = $src0
/*317776*/                OPC_CheckType, MVT::v8f32,
/*317778*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*317780*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ256rrk), 0,
                              MVT::v8f32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (xor:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 9
                          // Dst: (VPXORDZ256rrk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*317790*/              /*SwitchType*/ 17, MVT::v32i8,// ->317809
/*317792*/                OPC_MoveParent,
/*317793*/                OPC_MoveParent,
/*317794*/                OPC_RecordChild2, // #3 = $src0
/*317795*/                OPC_CheckType, MVT::v8f32,
/*317797*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*317799*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ256rrk), 0,
                              MVT::v8f32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (xor:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 9
                          // Dst: (VPXORDZ256rrk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*317809*/              /*SwitchType*/ 17, MVT::v8i64,// ->317828
/*317811*/                OPC_MoveParent,
/*317812*/                OPC_MoveParent,
/*317813*/                OPC_RecordChild2, // #3 = $src0
/*317814*/                OPC_CheckType, MVT::v8f64,
/*317816*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*317818*/                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)
/*317828*/              /*SwitchType*/ 17, MVT::v16i32,// ->317847
/*317830*/                OPC_MoveParent,
/*317831*/                OPC_MoveParent,
/*317832*/                OPC_RecordChild2, // #3 = $src0
/*317833*/                OPC_CheckType, MVT::v8f64,
/*317835*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*317837*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZrrk), 0,
                              MVT::v8f64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (xor:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)), VR512:{ *:[v8f64] }:$src0) - Complexity = 9
                          // Dst: (VPXORQZrrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*317847*/              /*SwitchType*/ 17, MVT::v32i16,// ->317866
/*317849*/                OPC_MoveParent,
/*317850*/                OPC_MoveParent,
/*317851*/                OPC_RecordChild2, // #3 = $src0
/*317852*/                OPC_CheckType, MVT::v8f64,
/*317854*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*317856*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZrrk), 0,
                              MVT::v8f64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (xor:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)), VR512:{ *:[v8f64] }:$src0) - Complexity = 9
                          // Dst: (VPXORQZrrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*317866*/              /*SwitchType*/ 17, MVT::v64i8,// ->317885
/*317868*/                OPC_MoveParent,
/*317869*/                OPC_MoveParent,
/*317870*/                OPC_RecordChild2, // #3 = $src0
/*317871*/                OPC_CheckType, MVT::v8f64,
/*317873*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*317875*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZrrk), 0,
                              MVT::v8f64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (xor:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)), VR512:{ *:[v8f64] }:$src0) - Complexity = 9
                          // Dst: (VPXORQZrrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*317885*/              0, // EndSwitchType
/*317886*/            /*SwitchOpcode*/ 28|128,1/*156*/, TARGET_VAL(X86ISD::ANDNP),// ->318046
/*317890*/              OPC_RecordChild0, // #1 = $src1
/*317891*/              OPC_RecordChild1, // #2 = $src2
/*317892*/              OPC_SwitchType /*8 cases */, 17, MVT::v4i64,// ->317912
/*317895*/                OPC_MoveParent,
/*317896*/                OPC_MoveParent,
/*317897*/                OPC_RecordChild2, // #3 = $src0
/*317898*/                OPC_CheckType, MVT::v8f32,
/*317900*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*317902*/                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)
/*317912*/              /*SwitchType*/ 17, MVT::v8i32,// ->317931
/*317914*/                OPC_MoveParent,
/*317915*/                OPC_MoveParent,
/*317916*/                OPC_RecordChild2, // #3 = $src0
/*317917*/                OPC_CheckType, MVT::v8f32,
/*317919*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*317921*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZ256rrk), 0,
                              MVT::v8f32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (X86andnp:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 9
                          // Dst: (VPANDNDZ256rrk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*317931*/              /*SwitchType*/ 17, MVT::v16i16,// ->317950
/*317933*/                OPC_MoveParent,
/*317934*/                OPC_MoveParent,
/*317935*/                OPC_RecordChild2, // #3 = $src0
/*317936*/                OPC_CheckType, MVT::v8f32,
/*317938*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*317940*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZ256rrk), 0,
                              MVT::v8f32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (X86andnp:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 9
                          // Dst: (VPANDNDZ256rrk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*317950*/              /*SwitchType*/ 17, MVT::v32i8,// ->317969
/*317952*/                OPC_MoveParent,
/*317953*/                OPC_MoveParent,
/*317954*/                OPC_RecordChild2, // #3 = $src0
/*317955*/                OPC_CheckType, MVT::v8f32,
/*317957*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*317959*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZ256rrk), 0,
                              MVT::v8f32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f32] } (X86andnp:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)), VR256X:{ *:[v8f32] }:$src0) - Complexity = 9
                          // Dst: (VPANDNDZ256rrk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*317969*/              /*SwitchType*/ 17, MVT::v8i64,// ->317988
/*317971*/                OPC_MoveParent,
/*317972*/                OPC_MoveParent,
/*317973*/                OPC_RecordChild2, // #3 = $src0
/*317974*/                OPC_CheckType, MVT::v8f64,
/*317976*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*317978*/                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)
/*317988*/              /*SwitchType*/ 17, MVT::v16i32,// ->318007
/*317990*/                OPC_MoveParent,
/*317991*/                OPC_MoveParent,
/*317992*/                OPC_RecordChild2, // #3 = $src0
/*317993*/                OPC_CheckType, MVT::v8f64,
/*317995*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*317997*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZrrk), 0,
                              MVT::v8f64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (X86andnp:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)), VR512:{ *:[v8f64] }:$src0) - Complexity = 9
                          // Dst: (VPANDNQZrrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*318007*/              /*SwitchType*/ 17, MVT::v32i16,// ->318026
/*318009*/                OPC_MoveParent,
/*318010*/                OPC_MoveParent,
/*318011*/                OPC_RecordChild2, // #3 = $src0
/*318012*/                OPC_CheckType, MVT::v8f64,
/*318014*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*318016*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZrrk), 0,
                              MVT::v8f64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (X86andnp:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)), VR512:{ *:[v8f64] }:$src0) - Complexity = 9
                          // Dst: (VPANDNQZrrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*318026*/              /*SwitchType*/ 17, MVT::v64i8,// ->318045
/*318028*/                OPC_MoveParent,
/*318029*/                OPC_MoveParent,
/*318030*/                OPC_RecordChild2, // #3 = $src0
/*318031*/                OPC_CheckType, MVT::v8f64,
/*318033*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*318035*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZrrk), 0,
                              MVT::v8f64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (bitconvert:{ *:[v8f64] } (X86andnp:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)), VR512:{ *:[v8f64] }:$src0) - Complexity = 9
                          // Dst: (VPANDNQZrrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*318045*/              0, // EndSwitchType
/*318046*/            0, // EndSwitchOpcode
/*318047*/          /*SwitchOpcode*/ 41, TARGET_VAL(X86ISD::VPERMV3),// ->318091
/*318050*/            OPC_RecordChild0, // #1 = $src2
/*318051*/            OPC_RecordChild1, // #2 = $src1
/*318052*/            OPC_RecordChild2, // #3 = $src3
/*318053*/            OPC_MoveParent,
/*318054*/            OPC_MoveChild2,
/*318055*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*318058*/            OPC_CheckChild0Same, 2,
/*318060*/            OPC_MoveParent,
/*318061*/            OPC_SwitchType /*2 cases */, 12, MVT::v8f32,// ->318076
/*318064*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*318066*/              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)
/*318076*/            /*SwitchType*/ 12, MVT::v8f64,// ->318090
/*318078*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*318080*/              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)
/*318090*/            0, // EndSwitchType
/*318091*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::FADD_RND),// ->318119
/*318094*/            OPC_RecordChild0, // #1 = $src1
/*318095*/            OPC_RecordChild1, // #2 = $src2
/*318096*/            OPC_RecordChild2, // #3 = $rc
/*318097*/            OPC_MoveChild2,
/*318098*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*318101*/            OPC_MoveParent,
/*318102*/            OPC_MoveParent,
/*318103*/            OPC_RecordChild2, // #4 = $src0
/*318104*/            OPC_CheckType, MVT::v8f64,
/*318106*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*318108*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZrrbk), 0,
                          MVT::v8f64, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86faddRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i32] }):$rc), VR512:{ *:[v8f64] }:$src0) - Complexity = 9
                      // Dst: (VADDPDZrrbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i32] }):$rc)
/*318119*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::FMUL_RND),// ->318147
/*318122*/            OPC_RecordChild0, // #1 = $src1
/*318123*/            OPC_RecordChild1, // #2 = $src2
/*318124*/            OPC_RecordChild2, // #3 = $rc
/*318125*/            OPC_MoveChild2,
/*318126*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*318129*/            OPC_MoveParent,
/*318130*/            OPC_MoveParent,
/*318131*/            OPC_RecordChild2, // #4 = $src0
/*318132*/            OPC_CheckType, MVT::v8f64,
/*318134*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*318136*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZrrbk), 0,
                          MVT::v8f64, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fmulRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i32] }):$rc), VR512:{ *:[v8f64] }:$src0) - Complexity = 9
                      // Dst: (VMULPDZrrbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i32] }):$rc)
/*318147*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::FSUB_RND),// ->318175
/*318150*/            OPC_RecordChild0, // #1 = $src1
/*318151*/            OPC_RecordChild1, // #2 = $src2
/*318152*/            OPC_RecordChild2, // #3 = $rc
/*318153*/            OPC_MoveChild2,
/*318154*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*318157*/            OPC_MoveParent,
/*318158*/            OPC_MoveParent,
/*318159*/            OPC_RecordChild2, // #4 = $src0
/*318160*/            OPC_CheckType, MVT::v8f64,
/*318162*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*318164*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDZrrbk), 0,
                          MVT::v8f64, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fsubRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i32] }):$rc), VR512:{ *:[v8f64] }:$src0) - Complexity = 9
                      // Dst: (VSUBPDZrrbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i32] }):$rc)
/*318175*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::FDIV_RND),// ->318203
/*318178*/            OPC_RecordChild0, // #1 = $src1
/*318179*/            OPC_RecordChild1, // #2 = $src2
/*318180*/            OPC_RecordChild2, // #3 = $rc
/*318181*/            OPC_MoveChild2,
/*318182*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*318185*/            OPC_MoveParent,
/*318186*/            OPC_MoveParent,
/*318187*/            OPC_RecordChild2, // #4 = $src0
/*318188*/            OPC_CheckType, MVT::v8f64,
/*318190*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*318192*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDZrrbk), 0,
                          MVT::v8f64, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fdivRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i32] }):$rc), VR512:{ *:[v8f64] }:$src0) - Complexity = 9
                      // Dst: (VDIVPDZrrbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i32] }):$rc)
/*318203*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::SCALEF_RND),// ->318231
/*318206*/            OPC_RecordChild0, // #1 = $src1
/*318207*/            OPC_RecordChild1, // #2 = $src2
/*318208*/            OPC_RecordChild2, // #3 = $rc
/*318209*/            OPC_MoveChild2,
/*318210*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*318213*/            OPC_MoveParent,
/*318214*/            OPC_MoveParent,
/*318215*/            OPC_RecordChild2, // #4 = $src0
/*318216*/            OPC_CheckType, MVT::v8f64,
/*318218*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*318220*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPDZrrbk), 0,
                          MVT::v8f64, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86scalefRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i32] }):$rc), VR512:{ *:[v8f64] }:$src0) - Complexity = 9
                      // Dst: (VSCALEFPDZrrbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i32] }):$rc)
/*318231*/          /*SwitchOpcode*/ 23, TARGET_VAL(X86ISD::VPERMI),// ->318257
/*318234*/            OPC_RecordChild0, // #1 = $src1
/*318235*/            OPC_RecordChild1, // #2 = $src2
/*318236*/            OPC_MoveChild1,
/*318237*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*318240*/            OPC_MoveParent,
/*318241*/            OPC_MoveParent,
/*318242*/            OPC_RecordChild2, // #3 = $src0
/*318243*/            OPC_CheckType, MVT::v8f64,
/*318245*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*318247*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPDZrik), 0,
                          MVT::v8f64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermi:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i8] }):$src2), VR512:{ *:[v8f64] }:$src0) - Complexity = 9
                      // Dst: (VPERMPDZrik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i8] }):$src2)
/*318257*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VPERMILPI),// ->318299
/*318260*/            OPC_RecordChild0, // #1 = $src1
/*318261*/            OPC_RecordChild1, // #2 = $src2
/*318262*/            OPC_MoveChild1,
/*318263*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*318266*/            OPC_MoveParent,
/*318267*/            OPC_MoveParent,
/*318268*/            OPC_RecordChild2, // #3 = $src0
/*318269*/            OPC_SwitchType /*2 cases */, 12, MVT::v8f32,// ->318284
/*318272*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*318274*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZ256rik), 0,
                            MVT::v8f32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermilpi:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (timm:{ *:[i8] }):$src2), VR256X:{ *:[v8f32] }:$src0) - Complexity = 9
                        // Dst: (VPERMILPSZ256rik:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, (timm:{ *:[i8] }):$src2)
/*318284*/            /*SwitchType*/ 12, MVT::v8f64,// ->318298
/*318286*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*318288*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZrik), 0,
                            MVT::v8f64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VPermilpi:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i8] }):$src2), VR512:{ *:[v8f64] }:$src0) - Complexity = 9
                        // Dst: (VPERMILPDZrik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i8] }):$src2)
/*318298*/            0, // EndSwitchType
/*318299*/          /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::FMADD_RND),// ->318364
/*318302*/            OPC_RecordChild0, // #1 = $src2
/*318303*/            OPC_RecordChild1, // #2 = $src1
/*318304*/            OPC_RecordChild2, // #3 = $src3
/*318305*/            OPC_RecordChild3, // #4 = $rc
/*318306*/            OPC_MoveChild3,
/*318307*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*318310*/            OPC_MoveParent,
/*318311*/            OPC_MoveParent,
/*318312*/            OPC_CheckType, MVT::v8f64,
/*318314*/            OPC_Scope, 15, /*->318331*/ // 3 children in Scope
/*318316*/              OPC_CheckChild2Same, 2,
/*318318*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*318320*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZrbk), 0,
                            MVT::v8f64, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86FmaddRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3, (timm:{ *:[i32] }):$rc), VR512:{ *:[v8f64] }:$src1) - Complexity = 9
                        // Dst: (VFMADD213PDZrbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, (timm:{ *:[i32] }):$rc)
/*318331*/            /*Scope*/ 15, /*->318347*/
/*318332*/              OPC_CheckChild2Same, 3,
/*318334*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*318336*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PDZrbk), 0,
                            MVT::v8f64, 5/*#Ops*/, 3, 0, 1, 2, 4, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86FmaddRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i32] }):$rc), VR512:{ *:[v8f64] }:$src1) - Complexity = 9
                        // Dst: (VFMADD231PDZrbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, (timm:{ *:[i32] }):$rc)
/*318347*/            /*Scope*/ 15, /*->318363*/
/*318348*/              OPC_CheckChild2Same, 1,
/*318350*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*318352*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PDZrbk), 0,
                            MVT::v8f64, 5/*#Ops*/, 1, 0, 3, 2, 4, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86FmaddRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i32] }):$rc), VR512:{ *:[v8f64] }:$src1) - Complexity = 9
                        // Dst: (VFMADD132PDZrbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, (timm:{ *:[i32] }):$rc)
/*318363*/            0, /*End of Scope*/
/*318364*/          /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::FMSUB_RND),// ->318429
/*318367*/            OPC_RecordChild0, // #1 = $src2
/*318368*/            OPC_RecordChild1, // #2 = $src1
/*318369*/            OPC_RecordChild2, // #3 = $src3
/*318370*/            OPC_RecordChild3, // #4 = $rc
/*318371*/            OPC_MoveChild3,
/*318372*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*318375*/            OPC_MoveParent,
/*318376*/            OPC_MoveParent,
/*318377*/            OPC_CheckType, MVT::v8f64,
/*318379*/            OPC_Scope, 15, /*->318396*/ // 3 children in Scope
/*318381*/              OPC_CheckChild2Same, 2,
/*318383*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*318385*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PDZrbk), 0,
                            MVT::v8f64, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86FmsubRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3, (timm:{ *:[i32] }):$rc), VR512:{ *:[v8f64] }:$src1) - Complexity = 9
                        // Dst: (VFMSUB213PDZrbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, (timm:{ *:[i32] }):$rc)
/*318396*/            /*Scope*/ 15, /*->318412*/
/*318397*/              OPC_CheckChild2Same, 3,
/*318399*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*318401*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231PDZrbk), 0,
                            MVT::v8f64, 5/*#Ops*/, 3, 0, 1, 2, 4, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86FmsubRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i32] }):$rc), VR512:{ *:[v8f64] }:$src1) - Complexity = 9
                        // Dst: (VFMSUB231PDZrbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, (timm:{ *:[i32] }):$rc)
/*318412*/            /*Scope*/ 15, /*->318428*/
/*318413*/              OPC_CheckChild2Same, 1,
/*318415*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*318417*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132PDZrbk), 0,
                            MVT::v8f64, 5/*#Ops*/, 1, 0, 3, 2, 4, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86FmsubRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i32] }):$rc), VR512:{ *:[v8f64] }:$src1) - Complexity = 9
                        // Dst: (VFMSUB132PDZrbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, (timm:{ *:[i32] }):$rc)
/*318428*/            0, /*End of Scope*/
/*318429*/          /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::FMADDSUB_RND),// ->318494
/*318432*/            OPC_RecordChild0, // #1 = $src2
/*318433*/            OPC_RecordChild1, // #2 = $src1
/*318434*/            OPC_RecordChild2, // #3 = $src3
/*318435*/            OPC_RecordChild3, // #4 = $rc
/*318436*/            OPC_MoveChild3,
/*318437*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*318440*/            OPC_MoveParent,
/*318441*/            OPC_MoveParent,
/*318442*/            OPC_CheckType, MVT::v8f64,
/*318444*/            OPC_Scope, 15, /*->318461*/ // 3 children in Scope
/*318446*/              OPC_CheckChild2Same, 2,
/*318448*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*318450*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PDZrbk), 0,
                            MVT::v8f64, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86FmaddsubRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3, (timm:{ *:[i32] }):$rc), VR512:{ *:[v8f64] }:$src1) - Complexity = 9
                        // Dst: (VFMADDSUB213PDZrbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, (timm:{ *:[i32] }):$rc)
/*318461*/            /*Scope*/ 15, /*->318477*/
/*318462*/              OPC_CheckChild2Same, 3,
/*318464*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*318466*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB231PDZrbk), 0,
                            MVT::v8f64, 5/*#Ops*/, 3, 0, 1, 2, 4, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86FmaddsubRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i32] }):$rc), VR512:{ *:[v8f64] }:$src1) - Complexity = 9
                        // Dst: (VFMADDSUB231PDZrbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, (timm:{ *:[i32] }):$rc)
/*318477*/            /*Scope*/ 15, /*->318493*/
/*318478*/              OPC_CheckChild2Same, 1,
/*318480*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*318482*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB132PDZrbk), 0,
                            MVT::v8f64, 5/*#Ops*/, 1, 0, 3, 2, 4, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86FmaddsubRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i32] }):$rc), VR512:{ *:[v8f64] }:$src1) - Complexity = 9
                        // Dst: (VFMADDSUB132PDZrbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, (timm:{ *:[i32] }):$rc)
/*318493*/            0, /*End of Scope*/
/*318494*/          /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::FMSUBADD_RND),// ->318559
/*318497*/            OPC_RecordChild0, // #1 = $src2
/*318498*/            OPC_RecordChild1, // #2 = $src1
/*318499*/            OPC_RecordChild2, // #3 = $src3
/*318500*/            OPC_RecordChild3, // #4 = $rc
/*318501*/            OPC_MoveChild3,
/*318502*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*318505*/            OPC_MoveParent,
/*318506*/            OPC_MoveParent,
/*318507*/            OPC_CheckType, MVT::v8f64,
/*318509*/            OPC_Scope, 15, /*->318526*/ // 3 children in Scope
/*318511*/              OPC_CheckChild2Same, 2,
/*318513*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*318515*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PDZrbk), 0,
                            MVT::v8f64, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86FmsubaddRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3, (timm:{ *:[i32] }):$rc), VR512:{ *:[v8f64] }:$src1) - Complexity = 9
                        // Dst: (VFMSUBADD213PDZrbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, (timm:{ *:[i32] }):$rc)
/*318526*/            /*Scope*/ 15, /*->318542*/
/*318527*/              OPC_CheckChild2Same, 3,
/*318529*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*318531*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD231PDZrbk), 0,
                            MVT::v8f64, 5/*#Ops*/, 3, 0, 1, 2, 4, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86FmsubaddRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i32] }):$rc), VR512:{ *:[v8f64] }:$src1) - Complexity = 9
                        // Dst: (VFMSUBADD231PDZrbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, (timm:{ *:[i32] }):$rc)
/*318542*/            /*Scope*/ 15, /*->318558*/
/*318543*/              OPC_CheckChild2Same, 1,
/*318545*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*318547*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD132PDZrbk), 0,
                            MVT::v8f64, 5/*#Ops*/, 1, 0, 3, 2, 4, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86FmsubaddRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i32] }):$rc), VR512:{ *:[v8f64] }:$src1) - Complexity = 9
                        // Dst: (VFMSUBADD132PDZrbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, (timm:{ *:[i32] }):$rc)
/*318558*/            0, /*End of Scope*/
/*318559*/          /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::FNMADD_RND),// ->318624
/*318562*/            OPC_RecordChild0, // #1 = $src2
/*318563*/            OPC_RecordChild1, // #2 = $src1
/*318564*/            OPC_RecordChild2, // #3 = $src3
/*318565*/            OPC_RecordChild3, // #4 = $rc
/*318566*/            OPC_MoveChild3,
/*318567*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*318570*/            OPC_MoveParent,
/*318571*/            OPC_MoveParent,
/*318572*/            OPC_CheckType, MVT::v8f64,
/*318574*/            OPC_Scope, 15, /*->318591*/ // 3 children in Scope
/*318576*/              OPC_CheckChild2Same, 2,
/*318578*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*318580*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PDZrbk), 0,
                            MVT::v8f64, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86FnmaddRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3, (timm:{ *:[i32] }):$rc), VR512:{ *:[v8f64] }:$src1) - Complexity = 9
                        // Dst: (VFNMADD213PDZrbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, (timm:{ *:[i32] }):$rc)
/*318591*/            /*Scope*/ 15, /*->318607*/
/*318592*/              OPC_CheckChild2Same, 3,
/*318594*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*318596*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231PDZrbk), 0,
                            MVT::v8f64, 5/*#Ops*/, 3, 0, 1, 2, 4, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86FnmaddRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i32] }):$rc), VR512:{ *:[v8f64] }:$src1) - Complexity = 9
                        // Dst: (VFNMADD231PDZrbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, (timm:{ *:[i32] }):$rc)
/*318607*/            /*Scope*/ 15, /*->318623*/
/*318608*/              OPC_CheckChild2Same, 1,
/*318610*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*318612*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132PDZrbk), 0,
                            MVT::v8f64, 5/*#Ops*/, 1, 0, 3, 2, 4, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86FnmaddRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i32] }):$rc), VR512:{ *:[v8f64] }:$src1) - Complexity = 9
                        // Dst: (VFNMADD132PDZrbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, (timm:{ *:[i32] }):$rc)
/*318623*/            0, /*End of Scope*/
/*318624*/          /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::FNMSUB_RND),// ->318689
/*318627*/            OPC_RecordChild0, // #1 = $src2
/*318628*/            OPC_RecordChild1, // #2 = $src1
/*318629*/            OPC_RecordChild2, // #3 = $src3
/*318630*/            OPC_RecordChild3, // #4 = $rc
/*318631*/            OPC_MoveChild3,
/*318632*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*318635*/            OPC_MoveParent,
/*318636*/            OPC_MoveParent,
/*318637*/            OPC_CheckType, MVT::v8f64,
/*318639*/            OPC_Scope, 15, /*->318656*/ // 3 children in Scope
/*318641*/              OPC_CheckChild2Same, 2,
/*318643*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*318645*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PDZrbk), 0,
                            MVT::v8f64, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86FnmsubRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3, (timm:{ *:[i32] }):$rc), VR512:{ *:[v8f64] }:$src1) - Complexity = 9
                        // Dst: (VFNMSUB213PDZrbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, (timm:{ *:[i32] }):$rc)
/*318656*/            /*Scope*/ 15, /*->318672*/
/*318657*/              OPC_CheckChild2Same, 3,
/*318659*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*318661*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231PDZrbk), 0,
                            MVT::v8f64, 5/*#Ops*/, 3, 0, 1, 2, 4, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86FnmsubRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i32] }):$rc), VR512:{ *:[v8f64] }:$src1) - Complexity = 9
                        // Dst: (VFNMSUB231PDZrbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, (timm:{ *:[i32] }):$rc)
/*318672*/            /*Scope*/ 15, /*->318688*/
/*318673*/              OPC_CheckChild2Same, 1,
/*318675*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*318677*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132PDZrbk), 0,
                            MVT::v8f64, 5/*#Ops*/, 1, 0, 3, 2, 4, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86FnmsubRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i32] }):$rc), VR512:{ *:[v8f64] }:$src1) - Complexity = 9
                        // Dst: (VFNMSUB132PDZrbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, (timm:{ *:[i32] }):$rc)
/*318688*/            0, /*End of Scope*/
/*318689*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::VFPROUND_RND),// ->318717
/*318692*/            OPC_RecordChild0, // #1 = $src
/*318693*/            OPC_CheckChild0Type, MVT::v8f64,
/*318695*/            OPC_RecordChild1, // #2 = $rc
/*318696*/            OPC_MoveChild1,
/*318697*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*318700*/            OPC_MoveParent,
/*318701*/            OPC_MoveParent,
/*318702*/            OPC_RecordChild2, // #3 = $src0
/*318703*/            OPC_CheckType, MVT::v8f32,
/*318705*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*318707*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZrrbk), 0,
                          MVT::v8f32, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86vfproundRnd:{ *:[v8f32] } VR512:{ *:[v8f64] }:$src, (timm:{ *:[i32] }):$rc), VR256X:{ *:[v8f32] }:$src0) - Complexity = 9
                      // Dst: (VCVTPD2PSZrrbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src, (timm:{ *:[i32] }):$rc)
/*318717*/          /*SwitchOpcode*/ 41, TARGET_VAL(X86ISD::SINT_TO_FP_RND),// ->318761
/*318720*/            OPC_RecordChild0, // #1 = $src
/*318721*/            OPC_CheckChild0Type, MVT::v8i64,
/*318723*/            OPC_RecordChild1, // #2 = $rc
/*318724*/            OPC_MoveChild1,
/*318725*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*318728*/            OPC_MoveParent,
/*318729*/            OPC_MoveParent,
/*318730*/            OPC_RecordChild2, // #3 = $src0
/*318731*/            OPC_SwitchType /*2 cases */, 12, MVT::v8f64,// ->318746
/*318734*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*318736*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PDZrrbk), 0,
                            MVT::v8f64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VSintToFpRnd:{ *:[v8f64] } VR512:{ *:[v8i64] }:$src, (timm:{ *:[i32] }):$rc), VR512:{ *:[v8f64] }:$src0) - Complexity = 9
                        // Dst: (VCVTQQ2PDZrrbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src, (timm:{ *:[i32] }):$rc)
/*318746*/            /*SwitchType*/ 12, MVT::v8f32,// ->318760
/*318748*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*318750*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PSZrrbk), 0,
                            MVT::v8f32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VSintToFpRnd:{ *:[v8f32] } VR512:{ *:[v8i64] }:$src, (timm:{ *:[i32] }):$rc), VR256X:{ *:[v8f32] }:$src0) - Complexity = 9
                        // Dst: (VCVTQQ2PSZrrbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src, (timm:{ *:[i32] }):$rc)
/*318760*/            0, // EndSwitchType
/*318761*/          /*SwitchOpcode*/ 41, TARGET_VAL(X86ISD::UINT_TO_FP_RND),// ->318805
/*318764*/            OPC_RecordChild0, // #1 = $src
/*318765*/            OPC_CheckChild0Type, MVT::v8i64,
/*318767*/            OPC_RecordChild1, // #2 = $rc
/*318768*/            OPC_MoveChild1,
/*318769*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*318772*/            OPC_MoveParent,
/*318773*/            OPC_MoveParent,
/*318774*/            OPC_RecordChild2, // #3 = $src0
/*318775*/            OPC_SwitchType /*2 cases */, 12, MVT::v8f64,// ->318790
/*318778*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*318780*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PDZrrbk), 0,
                            MVT::v8f64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VUintToFpRnd:{ *:[v8f64] } VR512:{ *:[v8i64] }:$src, (timm:{ *:[i32] }):$rc), VR512:{ *:[v8f64] }:$src0) - Complexity = 9
                        // Dst: (VCVTUQQ2PDZrrbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src, (timm:{ *:[i32] }):$rc)
/*318790*/            /*SwitchType*/ 12, MVT::v8f32,// ->318804
/*318792*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*318794*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PSZrrbk), 0,
                            MVT::v8f32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VUintToFpRnd:{ *:[v8f32] } VR512:{ *:[v8i64] }:$src, (timm:{ *:[i32] }):$rc), VR256X:{ *:[v8f32] }:$src0) - Complexity = 9
                        // Dst: (VCVTUQQ2PSZrrbk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src, (timm:{ *:[i32] }):$rc)
/*318804*/            0, // EndSwitchType
/*318805*/          /*SwitchOpcode*/ 23, TARGET_VAL(X86ISD::FSQRT_RND),// ->318831
/*318808*/            OPC_RecordChild0, // #1 = $src
/*318809*/            OPC_RecordChild1, // #2 = $rc
/*318810*/            OPC_MoveChild1,
/*318811*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*318814*/            OPC_MoveParent,
/*318815*/            OPC_MoveParent,
/*318816*/            OPC_RecordChild2, // #3 = $src0
/*318817*/            OPC_CheckType, MVT::v8f64,
/*318819*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*318821*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDZrbk), 0,
                          MVT::v8f64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fsqrtRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src, (timm:{ *:[i32] }):$rc), VR512:{ *:[v8f64] }:$src0) - Complexity = 9
                      // Dst: (VSQRTPDZrbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src, (timm:{ *:[i32] }):$rc)
/*318831*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VREDUCE),// ->318873
/*318834*/            OPC_RecordChild0, // #1 = $src1
/*318835*/            OPC_RecordChild1, // #2 = $src2
/*318836*/            OPC_MoveChild1,
/*318837*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*318840*/            OPC_MoveParent,
/*318841*/            OPC_MoveParent,
/*318842*/            OPC_RecordChild2, // #3 = $src0
/*318843*/            OPC_SwitchType /*2 cases */, 12, MVT::v8f32,// ->318858
/*318846*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*318848*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPSZ256rrik), 0,
                            MVT::v8f32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VReduce:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (timm:{ *:[i32] }):$src2), VR256X:{ *:[v8f32] }:$src0) - Complexity = 9
                        // Dst: (VREDUCEPSZ256rrik:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*318858*/            /*SwitchType*/ 12, MVT::v8f64,// ->318872
/*318860*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*318862*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPDZrrik), 0,
                            MVT::v8f64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VReduce:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i32] }):$src2), VR512:{ *:[v8f64] }:$src0) - Complexity = 9
                        // Dst: (VREDUCEPDZrrik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i32] }):$src2)
/*318872*/            0, // EndSwitchType
/*318873*/          /*SwitchOpcode*/ 23, TARGET_VAL(X86ISD::VREDUCE_SAE),// ->318899
/*318876*/            OPC_RecordChild0, // #1 = $src1
/*318877*/            OPC_RecordChild1, // #2 = $src2
/*318878*/            OPC_MoveChild1,
/*318879*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*318882*/            OPC_MoveParent,
/*318883*/            OPC_MoveParent,
/*318884*/            OPC_RecordChild2, // #3 = $src0
/*318885*/            OPC_CheckType, MVT::v8f64,
/*318887*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*318889*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPDZrribk), 0,
                          MVT::v8f64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VReduceSAE:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i32] }):$src2), VR512:{ *:[v8f64] }:$src0) - Complexity = 9
                      // Dst: (VREDUCEPDZrribk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i32] }):$src2)
/*318899*/          /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::STRICT_VRNDSCALE),// ->318945
/*318902*/            OPC_RecordNode, // #1 = 'X86strict_VRndScale' chained node
/*318903*/            OPC_CheckFoldableChainNode,
/*318904*/            OPC_RecordChild1, // #2 = $src1
/*318905*/            OPC_RecordChild2, // #3 = $src2
/*318906*/            OPC_MoveChild2,
/*318907*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*318910*/            OPC_MoveParent,
/*318911*/            OPC_MoveParent,
/*318912*/            OPC_RecordChild2, // #4 = $src0
/*318913*/            OPC_SwitchType /*2 cases */, 13, MVT::v8f32,// ->318929
/*318916*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*318918*/              OPC_EmitMergeInputChains1_1,
/*318919*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rrik), 0|OPFL_Chain,
                            MVT::v8f32, 4/*#Ops*/, 4, 0, 2, 3, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_VRndScale:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (timm:{ *:[i32] }):$src2), VR256X:{ *:[v8f32] }:$src0) - Complexity = 9
                        // Dst: (VRNDSCALEPSZ256rrik:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*318929*/            /*SwitchType*/ 13, MVT::v8f64,// ->318944
/*318931*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*318933*/              OPC_EmitMergeInputChains1_1,
/*318934*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrrik), 0|OPFL_Chain,
                            MVT::v8f64, 4/*#Ops*/, 4, 0, 2, 3, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_VRndScale:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i32] }):$src2), VR512:{ *:[v8f64] }:$src0) - Complexity = 9
                        // Dst: (VRNDSCALEPDZrrik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i32] }):$src2)
/*318944*/            0, // EndSwitchType
/*318945*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VRNDSCALE),// ->318987
/*318948*/            OPC_RecordChild0, // #1 = $src1
/*318949*/            OPC_RecordChild1, // #2 = $src2
/*318950*/            OPC_MoveChild1,
/*318951*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*318954*/            OPC_MoveParent,
/*318955*/            OPC_MoveParent,
/*318956*/            OPC_RecordChild2, // #3 = $src0
/*318957*/            OPC_SwitchType /*2 cases */, 12, MVT::v8f32,// ->318972
/*318960*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*318962*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ256rrik), 0,
                            MVT::v8f32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VRndScale:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (timm:{ *:[i32] }):$src2), VR256X:{ *:[v8f32] }:$src0) - Complexity = 9
                        // Dst: (VRNDSCALEPSZ256rrik:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*318972*/            /*SwitchType*/ 12, MVT::v8f64,// ->318986
/*318974*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*318976*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrrik), 0,
                            MVT::v8f64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VRndScale:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i32] }):$src2), VR512:{ *:[v8f64] }:$src0) - Complexity = 9
                        // Dst: (VRNDSCALEPDZrrik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i32] }):$src2)
/*318986*/            0, // EndSwitchType
/*318987*/          /*SwitchOpcode*/ 23, TARGET_VAL(X86ISD::VRNDSCALE_SAE),// ->319013
/*318990*/            OPC_RecordChild0, // #1 = $src1
/*318991*/            OPC_RecordChild1, // #2 = $src2
/*318992*/            OPC_MoveChild1,
/*318993*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*318996*/            OPC_MoveParent,
/*318997*/            OPC_MoveParent,
/*318998*/            OPC_RecordChild2, // #3 = $src0
/*318999*/            OPC_CheckType, MVT::v8f64,
/*319001*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*319003*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrribk), 0,
                          MVT::v8f64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VRndScaleSAE:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i32] }):$src2), VR512:{ *:[v8f64] }:$src0) - Complexity = 9
                      // Dst: (VRNDSCALEPDZrribk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i32] }):$src2)
/*319013*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VGETMANT),// ->319055
/*319016*/            OPC_RecordChild0, // #1 = $src1
/*319017*/            OPC_RecordChild1, // #2 = $src2
/*319018*/            OPC_MoveChild1,
/*319019*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*319022*/            OPC_MoveParent,
/*319023*/            OPC_MoveParent,
/*319024*/            OPC_RecordChild2, // #3 = $src0
/*319025*/            OPC_SwitchType /*2 cases */, 12, MVT::v8f32,// ->319040
/*319028*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*319030*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPSZ256rrik), 0,
                            MVT::v8f32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VGetMant:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (timm:{ *:[i32] }):$src2), VR256X:{ *:[v8f32] }:$src0) - Complexity = 9
                        // Dst: (VGETMANTPSZ256rrik:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*319040*/            /*SwitchType*/ 12, MVT::v8f64,// ->319054
/*319042*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*319044*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPDZrrik), 0,
                            MVT::v8f64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VGetMant:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i32] }):$src2), VR512:{ *:[v8f64] }:$src0) - Complexity = 9
                        // Dst: (VGETMANTPDZrrik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i32] }):$src2)
/*319054*/            0, // EndSwitchType
/*319055*/          /*SwitchOpcode*/ 23, TARGET_VAL(X86ISD::VGETMANT_SAE),// ->319081
/*319058*/            OPC_RecordChild0, // #1 = $src1
/*319059*/            OPC_RecordChild1, // #2 = $src2
/*319060*/            OPC_MoveChild1,
/*319061*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*319064*/            OPC_MoveParent,
/*319065*/            OPC_MoveParent,
/*319066*/            OPC_RecordChild2, // #3 = $src0
/*319067*/            OPC_CheckType, MVT::v8f64,
/*319069*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*319071*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPDZrribk), 0,
                          MVT::v8f64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VGetMantSAE:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i32] }):$src2), VR512:{ *:[v8f64] }:$src0) - Complexity = 9
                      // Dst: (VGETMANTPDZrribk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i32] }):$src2)
/*319081*/          /*SwitchOpcode*/ 42, TARGET_VAL(X86ISD::VRANGE),// ->319126
/*319084*/            OPC_RecordChild0, // #1 = $src1
/*319085*/            OPC_RecordChild1, // #2 = $src2
/*319086*/            OPC_RecordChild2, // #3 = $src3
/*319087*/            OPC_MoveChild2,
/*319088*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*319091*/            OPC_MoveParent,
/*319092*/            OPC_MoveParent,
/*319093*/            OPC_RecordChild2, // #4 = $src0
/*319094*/            OPC_SwitchType /*2 cases */, 13, MVT::v8f64,// ->319110
/*319097*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*319099*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPDZrrik), 0,
                            MVT::v8f64, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VRange:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i32] }):$src3), VR512:{ *:[v8f64] }:$src0) - Complexity = 9
                        // Dst: (VRANGEPDZrrik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i32] }):$src3)
/*319110*/            /*SwitchType*/ 13, MVT::v8f32,// ->319125
/*319112*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*319114*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPSZ256rrik), 0,
                            MVT::v8f32, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VRange:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (timm:{ *:[i32] }):$src3), VR256X:{ *:[v8f32] }:$src0) - Complexity = 9
                        // Dst: (VRANGEPSZ256rrik:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (timm:{ *:[i32] }):$src3)
/*319125*/            0, // EndSwitchType
/*319126*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::VRANGE_SAE),// ->319154
/*319129*/            OPC_RecordChild0, // #1 = $src1
/*319130*/            OPC_RecordChild1, // #2 = $src2
/*319131*/            OPC_RecordChild2, // #3 = $src3
/*319132*/            OPC_MoveChild2,
/*319133*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*319136*/            OPC_MoveParent,
/*319137*/            OPC_MoveParent,
/*319138*/            OPC_RecordChild2, // #4 = $src0
/*319139*/            OPC_CheckType, MVT::v8f64,
/*319141*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*319143*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPDZrribk), 0,
                          MVT::v8f64, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VRangeSAE:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i32] }):$src3), VR512:{ *:[v8f64] }:$src0) - Complexity = 9
                      // Dst: (VRANGEPDZrribk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i32] }):$src3)
/*319154*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::SHUF128),// ->319182
/*319157*/            OPC_RecordChild0, // #1 = $src1
/*319158*/            OPC_RecordChild1, // #2 = $src2
/*319159*/            OPC_RecordChild2, // #3 = $src3
/*319160*/            OPC_MoveChild2,
/*319161*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*319164*/            OPC_MoveParent,
/*319165*/            OPC_MoveParent,
/*319166*/            OPC_RecordChild2, // #4 = $src0
/*319167*/            OPC_CheckType, MVT::v8f64,
/*319169*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*319171*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF64X2Zrrik), 0,
                          MVT::v8f64, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Shuf128:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i8] }):$src3), VR512:{ *:[v8f64] }:$src0) - Complexity = 9
                      // Dst: (VSHUFF64X2Zrrik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i8] }):$src3)
/*319182*/          /*SwitchOpcode*/ 42, TARGET_VAL(X86ISD::SHUFP),// ->319227
/*319185*/            OPC_RecordChild0, // #1 = $src1
/*319186*/            OPC_RecordChild1, // #2 = $src2
/*319187*/            OPC_RecordChild2, // #3 = $src3
/*319188*/            OPC_MoveChild2,
/*319189*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*319192*/            OPC_MoveParent,
/*319193*/            OPC_MoveParent,
/*319194*/            OPC_RecordChild2, // #4 = $src0
/*319195*/            OPC_SwitchType /*2 cases */, 13, MVT::v8f32,// ->319211
/*319198*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*319200*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPSZ256rrik), 0,
                            MVT::v8f32, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86Shufp:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (timm:{ *:[i8] }):$src3), VR256X:{ *:[v8f32] }:$src0) - Complexity = 9
                        // Dst: (VSHUFPSZ256rrik:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (timm:{ *:[i8] }):$src3)
/*319211*/            /*SwitchType*/ 13, MVT::v8f64,// ->319226
/*319213*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*319215*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPDZrrik), 0,
                            MVT::v8f64, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86Shufp:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i8] }):$src3), VR512:{ *:[v8f64] }:$src0) - Complexity = 9
                        // Dst: (VSHUFPDZrrik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i8] }):$src3)
/*319226*/            0, // EndSwitchType
/*319227*/          /*SwitchOpcode*/ 44, TARGET_VAL(X86ISD::VFIXUPIMM),// ->319274
/*319230*/            OPC_RecordChild0, // #1 = $src1
/*319231*/            OPC_RecordChild1, // #2 = $src2
/*319232*/            OPC_RecordChild2, // #3 = $src3
/*319233*/            OPC_RecordChild3, // #4 = $src4
/*319234*/            OPC_MoveChild3,
/*319235*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*319238*/            OPC_MoveParent,
/*319239*/            OPC_MoveParent,
/*319240*/            OPC_CheckChild2Same, 1,
/*319242*/            OPC_SwitchType /*2 cases */, 13, MVT::v8f32,// ->319258
/*319245*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*319247*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPSZ256rrik), 0,
                            MVT::v8f32, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86VFixupimm:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8i32] }:$src3, (timm:{ *:[i32] }):$src4), VR256X:{ *:[v8f32] }:$src1) - Complexity = 9
                        // Dst: (VFIXUPIMMPSZ256rrik:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8i32] }:$src3, (timm:{ *:[i32] }):$src4)
/*319258*/            /*SwitchType*/ 13, MVT::v8f64,// ->319273
/*319260*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*319262*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPDZrrik), 0,
                            MVT::v8f64, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VFixupimm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8i64] }:$src3, (timm:{ *:[i32] }):$src4), VR512:{ *:[v8f64] }:$src1) - Complexity = 9
                        // Dst: (VFIXUPIMMPDZrrik:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8i64] }:$src3, (timm:{ *:[i32] }):$src4)
/*319273*/            0, // EndSwitchType
/*319274*/          /*SwitchOpcode*/ 27, TARGET_VAL(X86ISD::VFIXUPIMM_SAE),// ->319304
/*319277*/            OPC_RecordChild0, // #1 = $src1
/*319278*/            OPC_RecordChild1, // #2 = $src2
/*319279*/            OPC_RecordChild2, // #3 = $src3
/*319280*/            OPC_RecordChild3, // #4 = $src4
/*319281*/            OPC_MoveChild3,
/*319282*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*319285*/            OPC_MoveParent,
/*319286*/            OPC_MoveParent,
/*319287*/            OPC_CheckChild2Same, 1,
/*319289*/            OPC_CheckType, MVT::v8f64,
/*319291*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*319293*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPDZrribk), 0,
                          MVT::v8f64, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86VFixupimmSAE:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8i64] }:$src3, (timm:{ *:[i32] }):$src4), VR512:{ *:[v8f64] }:$src1) - Complexity = 9
                      // Dst: (VFIXUPIMMPDZrribk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8i64] }:$src3, (timm:{ *:[i32] }):$src4)
/*319304*/          0, // EndSwitchOpcode
/*319305*/        /*Scope*/ 84, /*->319390*/
/*319306*/          OPC_RecordChild1, // #1 = $src
/*319307*/          OPC_MoveChild2,
/*319308*/          OPC_CheckImmAllZerosV,
/*319309*/          OPC_MoveParent,
/*319310*/          OPC_SwitchType /*2 cases */, 64, MVT::v8f32,// ->319377
/*319313*/            OPC_Scope, 10, /*->319325*/ // 2 children in Scope
/*319315*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*319317*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPSZ256rrkz), 0,
                            MVT::v8f32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src, immAllZerosV:{ *:[v8f32] }) - Complexity = 7
                        // Dst: (VMOVAPSZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*319325*/            /*Scope*/ 50, /*->319376*/
/*319326*/              OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*319328*/              OPC_EmitInteger, MVT::i32, X86::VK16WMRegClassID,
/*319331*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*319339*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v16f32, 0/*#Ops*/,  // Results = #4
/*319345*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*319348*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v16f32, 3/*#Ops*/, 4, 1, 5,  // Results = #6
/*319357*/              OPC_EmitNode1, TARGET_VAL(X86::VMOVAPSZrrkz), 0,
                            MVT::v16f32, 2/*#Ops*/, 3, 6,  // Results = #7
/*319365*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*319368*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::v8f32, 2/*#Ops*/, 7, 8, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, immAllZerosV:{ *:[v8f32] }) - Complexity = 7
                        // 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] })
/*319376*/            0, /*End of Scope*/
/*319377*/          /*SwitchType*/ 10, MVT::v8f64,// ->319389
/*319379*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*319381*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPDZrrkz), 0,
                          MVT::v8f64, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src, immAllZerosV:{ *:[v8f64] }) - Complexity = 7
                      // Dst: (VMOVAPDZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*319389*/          0, // EndSwitchType
/*319390*/        /*Scope*/ 106|128,18/*2410*/, /*->321802*/
/*319392*/          OPC_MoveChild1,
/*319393*/          OPC_SwitchOpcode /*54 cases */, 97, TARGET_VAL(X86ISD::VBROADCAST),// ->319494
/*319397*/            OPC_RecordChild0, // #1 = $src
/*319398*/            OPC_Scope, 17, /*->319417*/ // 4 children in Scope
/*319400*/              OPC_CheckChild0Type, MVT::v4f32,
/*319402*/              OPC_MoveParent,
/*319403*/              OPC_RecordChild2, // #2 = $src0
/*319404*/              OPC_CheckType, MVT::v8f32,
/*319406*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*319408*/              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)
/*319417*/            /*Scope*/ 17, /*->319435*/
/*319418*/              OPC_CheckChild0Type, MVT::v2f64,
/*319420*/              OPC_MoveParent,
/*319421*/              OPC_RecordChild2, // #2 = $src0
/*319422*/              OPC_CheckType, MVT::v8f64,
/*319424*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*319426*/              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)
/*319435*/            /*Scope*/ 28, /*->319464*/
/*319436*/              OPC_CheckChild0Type, MVT::f32,
/*319438*/              OPC_MoveParent,
/*319439*/              OPC_RecordChild2, // #2 = $src0
/*319440*/              OPC_CheckType, MVT::v8f32,
/*319442*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*319444*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*319447*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 1, 3,  // Results = #4
/*319455*/              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] }))
/*319464*/            /*Scope*/ 28, /*->319493*/
/*319465*/              OPC_CheckChild0Type, MVT::f64,
/*319467*/              OPC_MoveParent,
/*319468*/              OPC_RecordChild2, // #2 = $src0
/*319469*/              OPC_CheckType, MVT::v8f64,
/*319471*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*319473*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*319476*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 3,  // Results = #4
/*319484*/              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] }))
/*319493*/            0, /*End of Scope*/
/*319494*/          /*SwitchOpcode*/ 36, TARGET_VAL(X86ISD::VPERMV3),// ->319533
/*319497*/            OPC_RecordChild0, // #1 = $src1
/*319498*/            OPC_RecordChild1, // #2 = $src2
/*319499*/            OPC_RecordChild2, // #3 = $src3
/*319500*/            OPC_MoveParent,
/*319501*/            OPC_CheckChild2Same, 1,
/*319503*/            OPC_SwitchType /*2 cases */, 12, MVT::v8f32,// ->319518
/*319506*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*319508*/              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)
/*319518*/            /*SwitchType*/ 12, MVT::v8f64,// ->319532
/*319520*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*319522*/              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)
/*319532*/            0, // EndSwitchType
/*319533*/          /*SwitchOpcode*/ 38, TARGET_VAL(ISD::STRICT_FADD),// ->319574
/*319536*/            OPC_RecordNode, // #1 = 'strict_fadd' chained node
/*319537*/            OPC_CheckFoldableChainNode,
/*319538*/            OPC_RecordChild1, // #2 = $src1
/*319539*/            OPC_RecordChild2, // #3 = $src2
/*319540*/            OPC_MoveParent,
/*319541*/            OPC_RecordChild2, // #4 = $src0
/*319542*/            OPC_SwitchType /*2 cases */, 13, MVT::v8f64,// ->319558
/*319545*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*319547*/              OPC_EmitMergeInputChains1_1,
/*319548*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZrrk), 0|OPFL_Chain,
                            MVT::v8f64, 4/*#Ops*/, 4, 0, 2, 3, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (strict_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)
/*319558*/            /*SwitchType*/ 13, MVT::v8f32,// ->319573
/*319560*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*319562*/              OPC_EmitMergeInputChains1_1,
/*319563*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZ256rrk), 0|OPFL_Chain,
                            MVT::v8f32, 4/*#Ops*/, 4, 0, 2, 3, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (strict_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)
/*319573*/            0, // EndSwitchType
/*319574*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::FADD),// ->319611
/*319577*/            OPC_RecordChild0, // #1 = $src1
/*319578*/            OPC_RecordChild1, // #2 = $src2
/*319579*/            OPC_MoveParent,
/*319580*/            OPC_RecordChild2, // #3 = $src0
/*319581*/            OPC_SwitchType /*2 cases */, 12, MVT::v8f64,// ->319596
/*319584*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*319586*/              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)
/*319596*/            /*SwitchType*/ 12, MVT::v8f32,// ->319610
/*319598*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*319600*/              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)
/*319610*/            0, // EndSwitchType
/*319611*/          /*SwitchOpcode*/ 38, TARGET_VAL(ISD::STRICT_FMUL),// ->319652
/*319614*/            OPC_RecordNode, // #1 = 'strict_fmul' chained node
/*319615*/            OPC_CheckFoldableChainNode,
/*319616*/            OPC_RecordChild1, // #2 = $src1
/*319617*/            OPC_RecordChild2, // #3 = $src2
/*319618*/            OPC_MoveParent,
/*319619*/            OPC_RecordChild2, // #4 = $src0
/*319620*/            OPC_SwitchType /*2 cases */, 13, MVT::v8f64,// ->319636
/*319623*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*319625*/              OPC_EmitMergeInputChains1_1,
/*319626*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZrrk), 0|OPFL_Chain,
                            MVT::v8f64, 4/*#Ops*/, 4, 0, 2, 3, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (strict_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)
/*319636*/            /*SwitchType*/ 13, MVT::v8f32,// ->319651
/*319638*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*319640*/              OPC_EmitMergeInputChains1_1,
/*319641*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZ256rrk), 0|OPFL_Chain,
                            MVT::v8f32, 4/*#Ops*/, 4, 0, 2, 3, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (strict_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)
/*319651*/            0, // EndSwitchType
/*319652*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::FMUL),// ->319689
/*319655*/            OPC_RecordChild0, // #1 = $src1
/*319656*/            OPC_RecordChild1, // #2 = $src2
/*319657*/            OPC_MoveParent,
/*319658*/            OPC_RecordChild2, // #3 = $src0
/*319659*/            OPC_SwitchType /*2 cases */, 12, MVT::v8f64,// ->319674
/*319662*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*319664*/              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)
/*319674*/            /*SwitchType*/ 12, MVT::v8f32,// ->319688
/*319676*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*319678*/              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)
/*319688*/            0, // EndSwitchType
/*319689*/          /*SwitchOpcode*/ 38, TARGET_VAL(ISD::STRICT_FSUB),// ->319730
/*319692*/            OPC_RecordNode, // #1 = 'strict_fsub' chained node
/*319693*/            OPC_CheckFoldableChainNode,
/*319694*/            OPC_RecordChild1, // #2 = $src1
/*319695*/            OPC_RecordChild2, // #3 = $src2
/*319696*/            OPC_MoveParent,
/*319697*/            OPC_RecordChild2, // #4 = $src0
/*319698*/            OPC_SwitchType /*2 cases */, 13, MVT::v8f64,// ->319714
/*319701*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*319703*/              OPC_EmitMergeInputChains1_1,
/*319704*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDZrrk), 0|OPFL_Chain,
                            MVT::v8f64, 4/*#Ops*/, 4, 0, 2, 3, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (strict_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)
/*319714*/            /*SwitchType*/ 13, MVT::v8f32,// ->319729
/*319716*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*319718*/              OPC_EmitMergeInputChains1_1,
/*319719*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSZ256rrk), 0|OPFL_Chain,
                            MVT::v8f32, 4/*#Ops*/, 4, 0, 2, 3, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (strict_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)
/*319729*/            0, // EndSwitchType
/*319730*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::FSUB),// ->319767
/*319733*/            OPC_RecordChild0, // #1 = $src1
/*319734*/            OPC_RecordChild1, // #2 = $src2
/*319735*/            OPC_MoveParent,
/*319736*/            OPC_RecordChild2, // #3 = $src0
/*319737*/            OPC_SwitchType /*2 cases */, 12, MVT::v8f64,// ->319752
/*319740*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*319742*/              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)
/*319752*/            /*SwitchType*/ 12, MVT::v8f32,// ->319766
/*319754*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*319756*/              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)
/*319766*/            0, // EndSwitchType
/*319767*/          /*SwitchOpcode*/ 38, TARGET_VAL(ISD::STRICT_FDIV),// ->319808
/*319770*/            OPC_RecordNode, // #1 = 'strict_fdiv' chained node
/*319771*/            OPC_CheckFoldableChainNode,
/*319772*/            OPC_RecordChild1, // #2 = $src1
/*319773*/            OPC_RecordChild2, // #3 = $src2
/*319774*/            OPC_MoveParent,
/*319775*/            OPC_RecordChild2, // #4 = $src0
/*319776*/            OPC_SwitchType /*2 cases */, 13, MVT::v8f64,// ->319792
/*319779*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*319781*/              OPC_EmitMergeInputChains1_1,
/*319782*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDZrrk), 0|OPFL_Chain,
                            MVT::v8f64, 4/*#Ops*/, 4, 0, 2, 3, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (strict_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)
/*319792*/            /*SwitchType*/ 13, MVT::v8f32,// ->319807
/*319794*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*319796*/              OPC_EmitMergeInputChains1_1,
/*319797*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSZ256rrk), 0|OPFL_Chain,
                            MVT::v8f32, 4/*#Ops*/, 4, 0, 2, 3, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (strict_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)
/*319807*/            0, // EndSwitchType
/*319808*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::FDIV),// ->319845
/*319811*/            OPC_RecordChild0, // #1 = $src1
/*319812*/            OPC_RecordChild1, // #2 = $src2
/*319813*/            OPC_MoveParent,
/*319814*/            OPC_RecordChild2, // #3 = $src0
/*319815*/            OPC_SwitchType /*2 cases */, 12, MVT::v8f64,// ->319830
/*319818*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*319820*/              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)
/*319830*/            /*SwitchType*/ 12, MVT::v8f32,// ->319844
/*319832*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*319834*/              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)
/*319844*/            0, // EndSwitchType
/*319845*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::FMIN),// ->319882
/*319848*/            OPC_RecordChild0, // #1 = $src1
/*319849*/            OPC_RecordChild1, // #2 = $src2
/*319850*/            OPC_MoveParent,
/*319851*/            OPC_RecordChild2, // #3 = $src0
/*319852*/            OPC_SwitchType /*2 cases */, 12, MVT::v8f64,// ->319867
/*319855*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*319857*/              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)
/*319867*/            /*SwitchType*/ 12, MVT::v8f32,// ->319881
/*319869*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*319871*/              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)
/*319881*/            0, // EndSwitchType
/*319882*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::FMIN_SAE),// ->319903
/*319885*/            OPC_RecordChild0, // #1 = $src1
/*319886*/            OPC_RecordChild1, // #2 = $src2
/*319887*/            OPC_MoveParent,
/*319888*/            OPC_RecordChild2, // #3 = $src0
/*319889*/            OPC_CheckType, MVT::v8f64,
/*319891*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*319893*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPDZrrbk), 0,
                          MVT::v8f64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fminSAE:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), VR512:{ *:[v8f64] }:$src0) - Complexity = 6
                      // Dst: (VMINPDZrrbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*319903*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::FMAX),// ->319940
/*319906*/            OPC_RecordChild0, // #1 = $src1
/*319907*/            OPC_RecordChild1, // #2 = $src2
/*319908*/            OPC_MoveParent,
/*319909*/            OPC_RecordChild2, // #3 = $src0
/*319910*/            OPC_SwitchType /*2 cases */, 12, MVT::v8f64,// ->319925
/*319913*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*319915*/              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)
/*319925*/            /*SwitchType*/ 12, MVT::v8f32,// ->319939
/*319927*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*319929*/              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)
/*319939*/            0, // EndSwitchType
/*319940*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::FMAX_SAE),// ->319961
/*319943*/            OPC_RecordChild0, // #1 = $src1
/*319944*/            OPC_RecordChild1, // #2 = $src2
/*319945*/            OPC_MoveParent,
/*319946*/            OPC_RecordChild2, // #3 = $src0
/*319947*/            OPC_CheckType, MVT::v8f64,
/*319949*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*319951*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPDZrrbk), 0,
                          MVT::v8f64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fmaxSAE:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2), VR512:{ *:[v8f64] }:$src0) - Complexity = 6
                      // Dst: (VMAXPDZrrbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*319961*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::FMINC),// ->319998
/*319964*/            OPC_RecordChild0, // #1 = $src1
/*319965*/            OPC_RecordChild1, // #2 = $src2
/*319966*/            OPC_MoveParent,
/*319967*/            OPC_RecordChild2, // #3 = $src0
/*319968*/            OPC_SwitchType /*2 cases */, 12, MVT::v8f64,// ->319983
/*319971*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*319973*/              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)
/*319983*/            /*SwitchType*/ 12, MVT::v8f32,// ->319997
/*319985*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*319987*/              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)
/*319997*/            0, // EndSwitchType
/*319998*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::FMAXC),// ->320035
/*320001*/            OPC_RecordChild0, // #1 = $src1
/*320002*/            OPC_RecordChild1, // #2 = $src2
/*320003*/            OPC_MoveParent,
/*320004*/            OPC_RecordChild2, // #3 = $src0
/*320005*/            OPC_SwitchType /*2 cases */, 12, MVT::v8f64,// ->320020
/*320008*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*320010*/              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)
/*320020*/            /*SwitchType*/ 12, MVT::v8f32,// ->320034
/*320022*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*320024*/              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)
/*320034*/            0, // EndSwitchType
/*320035*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::SCALEF),// ->320072
/*320038*/            OPC_RecordChild0, // #1 = $src1
/*320039*/            OPC_RecordChild1, // #2 = $src2
/*320040*/            OPC_MoveParent,
/*320041*/            OPC_RecordChild2, // #3 = $src0
/*320042*/            OPC_SwitchType /*2 cases */, 12, MVT::v8f64,// ->320057
/*320045*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*320047*/              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), VR512:{ *:[v8f64] }:$src0) - Complexity = 6
                        // Dst: (VSCALEFPDZrrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*320057*/            /*SwitchType*/ 12, MVT::v8f32,// ->320071
/*320059*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*320061*/              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), VR256X:{ *:[v8f32] }:$src0) - Complexity = 6
                        // Dst: (VSCALEFPSZ256rrk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2)
/*320071*/            0, // EndSwitchType
/*320072*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VPERMV),// ->320109
/*320075*/            OPC_RecordChild0, // #1 = $src1
/*320076*/            OPC_RecordChild1, // #2 = $src2
/*320077*/            OPC_MoveParent,
/*320078*/            OPC_RecordChild2, // #3 = $src0
/*320079*/            OPC_SwitchType /*2 cases */, 12, MVT::v8f32,// ->320094
/*320082*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*320084*/              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)
/*320094*/            /*SwitchType*/ 12, MVT::v8f64,// ->320108
/*320096*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*320098*/              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)
/*320108*/            0, // EndSwitchType
/*320109*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VPERMILPV),// ->320146
/*320112*/            OPC_RecordChild0, // #1 = $src1
/*320113*/            OPC_RecordChild1, // #2 = $src2
/*320114*/            OPC_MoveParent,
/*320115*/            OPC_RecordChild2, // #3 = $src0
/*320116*/            OPC_SwitchType /*2 cases */, 12, MVT::v8f32,// ->320131
/*320119*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*320121*/              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)
/*320131*/            /*SwitchType*/ 12, MVT::v8f64,// ->320145
/*320133*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*320135*/              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)
/*320145*/            0, // EndSwitchType
/*320146*/          /*SwitchOpcode*/ 113, TARGET_VAL(ISD::STRICT_FMA),// ->320262
/*320149*/            OPC_RecordNode, // #1 = 'X86strict_Fmadd' chained node
/*320150*/            OPC_CheckFoldableChainNode,
/*320151*/            OPC_RecordChild1, // #2 = $src2
/*320152*/            OPC_RecordChild2, // #3 = $src1
/*320153*/            OPC_RecordChild3, // #4 = $src3
/*320154*/            OPC_MoveParent,
/*320155*/            OPC_Scope, 34, /*->320191*/ // 3 children in Scope
/*320157*/              OPC_CheckChild2Same, 3,
/*320159*/              OPC_SwitchType /*2 cases */, 13, MVT::v8f32,// ->320175
/*320162*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*320164*/                OPC_EmitMergeInputChains1_1,
/*320165*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZ256rk), 0|OPFL_Chain,
                              MVT::v8f32, 4/*#Ops*/, 3, 0, 2, 4, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_Fmadd:{ *:[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)
/*320175*/              /*SwitchType*/ 13, MVT::v8f64,// ->320190
/*320177*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*320179*/                OPC_EmitMergeInputChains1_1,
/*320180*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZrk), 0|OPFL_Chain,
                              MVT::v8f64, 4/*#Ops*/, 3, 0, 2, 4, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_Fmadd:{ *:[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)
/*320190*/              0, // EndSwitchType
/*320191*/            /*Scope*/ 34, /*->320226*/
/*320192*/              OPC_CheckChild2Same, 4,
/*320194*/              OPC_SwitchType /*2 cases */, 13, MVT::v8f32,// ->320210
/*320197*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*320199*/                OPC_EmitMergeInputChains1_1,
/*320200*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PSZ256rk), 0|OPFL_Chain,
                              MVT::v8f32, 4/*#Ops*/, 4, 0, 2, 3, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_Fmadd:{ *:[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)
/*320210*/              /*SwitchType*/ 13, MVT::v8f64,// ->320225
/*320212*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*320214*/                OPC_EmitMergeInputChains1_1,
/*320215*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PDZrk), 0|OPFL_Chain,
                              MVT::v8f64, 4/*#Ops*/, 4, 0, 2, 3, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_Fmadd:{ *:[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)
/*320225*/              0, // EndSwitchType
/*320226*/            /*Scope*/ 34, /*->320261*/
/*320227*/              OPC_CheckChild2Same, 2,
/*320229*/              OPC_SwitchType /*2 cases */, 13, MVT::v8f32,// ->320245
/*320232*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*320234*/                OPC_EmitMergeInputChains1_1,
/*320235*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PSZ256rk), 0|OPFL_Chain,
                              MVT::v8f32, 4/*#Ops*/, 2, 0, 4, 3, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_Fmadd:{ *:[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)
/*320245*/              /*SwitchType*/ 13, MVT::v8f64,// ->320260
/*320247*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*320249*/                OPC_EmitMergeInputChains1_1,
/*320250*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PDZrk), 0|OPFL_Chain,
                              MVT::v8f64, 4/*#Ops*/, 2, 0, 4, 3, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_Fmadd:{ *:[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)
/*320260*/              0, // EndSwitchType
/*320261*/            0, /*End of Scope*/
/*320262*/          /*SwitchOpcode*/ 105, TARGET_VAL(ISD::FMA),// ->320370
/*320265*/            OPC_RecordChild0, // #1 = $src2
/*320266*/            OPC_RecordChild1, // #2 = $src1
/*320267*/            OPC_RecordChild2, // #3 = $src3
/*320268*/            OPC_MoveParent,
/*320269*/            OPC_Scope, 32, /*->320303*/ // 3 children in Scope
/*320271*/              OPC_CheckChild2Same, 2,
/*320273*/              OPC_SwitchType /*2 cases */, 12, MVT::v8f32,// ->320288
/*320276*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*320278*/                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)
/*320288*/              /*SwitchType*/ 12, MVT::v8f64,// ->320302
/*320290*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*320292*/                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)
/*320302*/              0, // EndSwitchType
/*320303*/            /*Scope*/ 32, /*->320336*/
/*320304*/              OPC_CheckChild2Same, 3,
/*320306*/              OPC_SwitchType /*2 cases */, 12, MVT::v8f32,// ->320321
/*320309*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*320311*/                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)
/*320321*/              /*SwitchType*/ 12, MVT::v8f64,// ->320335
/*320323*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*320325*/                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)
/*320335*/              0, // EndSwitchType
/*320336*/            /*Scope*/ 32, /*->320369*/
/*320337*/              OPC_CheckChild2Same, 1,
/*320339*/              OPC_SwitchType /*2 cases */, 12, MVT::v8f32,// ->320354
/*320342*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*320344*/                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)
/*320354*/              /*SwitchType*/ 12, MVT::v8f64,// ->320368
/*320356*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*320358*/                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)
/*320368*/              0, // EndSwitchType
/*320369*/            0, /*End of Scope*/
/*320370*/          /*SwitchOpcode*/ 105, TARGET_VAL(X86ISD::FMSUB),// ->320478
/*320373*/            OPC_RecordChild0, // #1 = $src2
/*320374*/            OPC_RecordChild1, // #2 = $src1
/*320375*/            OPC_RecordChild2, // #3 = $src3
/*320376*/            OPC_MoveParent,
/*320377*/            OPC_Scope, 32, /*->320411*/ // 3 children in Scope
/*320379*/              OPC_CheckChild2Same, 2,
/*320381*/              OPC_SwitchType /*2 cases */, 12, MVT::v8f32,// ->320396
/*320384*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*320386*/                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)
/*320396*/              /*SwitchType*/ 12, MVT::v8f64,// ->320410
/*320398*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*320400*/                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)
/*320410*/              0, // EndSwitchType
/*320411*/            /*Scope*/ 32, /*->320444*/
/*320412*/              OPC_CheckChild2Same, 3,
/*320414*/              OPC_SwitchType /*2 cases */, 12, MVT::v8f32,// ->320429
/*320417*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*320419*/                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)
/*320429*/              /*SwitchType*/ 12, MVT::v8f64,// ->320443
/*320431*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*320433*/                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)
/*320443*/              0, // EndSwitchType
/*320444*/            /*Scope*/ 32, /*->320477*/
/*320445*/              OPC_CheckChild2Same, 1,
/*320447*/              OPC_SwitchType /*2 cases */, 12, MVT::v8f32,// ->320462
/*320450*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*320452*/                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)
/*320462*/              /*SwitchType*/ 12, MVT::v8f64,// ->320476
/*320464*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*320466*/                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)
/*320476*/              0, // EndSwitchType
/*320477*/            0, /*End of Scope*/
/*320478*/          /*SwitchOpcode*/ 105, TARGET_VAL(X86ISD::FMADDSUB),// ->320586
/*320481*/            OPC_RecordChild0, // #1 = $src2
/*320482*/            OPC_RecordChild1, // #2 = $src1
/*320483*/            OPC_RecordChild2, // #3 = $src3
/*320484*/            OPC_MoveParent,
/*320485*/            OPC_Scope, 32, /*->320519*/ // 3 children in Scope
/*320487*/              OPC_CheckChild2Same, 2,
/*320489*/              OPC_SwitchType /*2 cases */, 12, MVT::v8f32,// ->320504
/*320492*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*320494*/                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)
/*320504*/              /*SwitchType*/ 12, MVT::v8f64,// ->320518
/*320506*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*320508*/                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)
/*320518*/              0, // EndSwitchType
/*320519*/            /*Scope*/ 32, /*->320552*/
/*320520*/              OPC_CheckChild2Same, 3,
/*320522*/              OPC_SwitchType /*2 cases */, 12, MVT::v8f32,// ->320537
/*320525*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*320527*/                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)
/*320537*/              /*SwitchType*/ 12, MVT::v8f64,// ->320551
/*320539*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*320541*/                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)
/*320551*/              0, // EndSwitchType
/*320552*/            /*Scope*/ 32, /*->320585*/
/*320553*/              OPC_CheckChild2Same, 1,
/*320555*/              OPC_SwitchType /*2 cases */, 12, MVT::v8f32,// ->320570
/*320558*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*320560*/                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)
/*320570*/              /*SwitchType*/ 12, MVT::v8f64,// ->320584
/*320572*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*320574*/                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)
/*320584*/              0, // EndSwitchType
/*320585*/            0, /*End of Scope*/
/*320586*/          /*SwitchOpcode*/ 105, TARGET_VAL(X86ISD::FMSUBADD),// ->320694
/*320589*/            OPC_RecordChild0, // #1 = $src2
/*320590*/            OPC_RecordChild1, // #2 = $src1
/*320591*/            OPC_RecordChild2, // #3 = $src3
/*320592*/            OPC_MoveParent,
/*320593*/            OPC_Scope, 32, /*->320627*/ // 3 children in Scope
/*320595*/              OPC_CheckChild2Same, 2,
/*320597*/              OPC_SwitchType /*2 cases */, 12, MVT::v8f32,// ->320612
/*320600*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*320602*/                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)
/*320612*/              /*SwitchType*/ 12, MVT::v8f64,// ->320626
/*320614*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*320616*/                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)
/*320626*/              0, // EndSwitchType
/*320627*/            /*Scope*/ 32, /*->320660*/
/*320628*/              OPC_CheckChild2Same, 3,
/*320630*/              OPC_SwitchType /*2 cases */, 12, MVT::v8f32,// ->320645
/*320633*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*320635*/                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)
/*320645*/              /*SwitchType*/ 12, MVT::v8f64,// ->320659
/*320647*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*320649*/                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)
/*320659*/              0, // EndSwitchType
/*320660*/            /*Scope*/ 32, /*->320693*/
/*320661*/              OPC_CheckChild2Same, 1,
/*320663*/              OPC_SwitchType /*2 cases */, 12, MVT::v8f32,// ->320678
/*320666*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*320668*/                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)
/*320678*/              /*SwitchType*/ 12, MVT::v8f64,// ->320692
/*320680*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*320682*/                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)
/*320692*/              0, // EndSwitchType
/*320693*/            0, /*End of Scope*/
/*320694*/          /*SwitchOpcode*/ 105, TARGET_VAL(X86ISD::FNMADD),// ->320802
/*320697*/            OPC_RecordChild0, // #1 = $src2
/*320698*/            OPC_RecordChild1, // #2 = $src1
/*320699*/            OPC_RecordChild2, // #3 = $src3
/*320700*/            OPC_MoveParent,
/*320701*/            OPC_Scope, 32, /*->320735*/ // 3 children in Scope
/*320703*/              OPC_CheckChild2Same, 2,
/*320705*/              OPC_SwitchType /*2 cases */, 12, MVT::v8f32,// ->320720
/*320708*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*320710*/                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)
/*320720*/              /*SwitchType*/ 12, MVT::v8f64,// ->320734
/*320722*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*320724*/                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)
/*320734*/              0, // EndSwitchType
/*320735*/            /*Scope*/ 32, /*->320768*/
/*320736*/              OPC_CheckChild2Same, 3,
/*320738*/              OPC_SwitchType /*2 cases */, 12, MVT::v8f32,// ->320753
/*320741*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*320743*/                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)
/*320753*/              /*SwitchType*/ 12, MVT::v8f64,// ->320767
/*320755*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*320757*/                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)
/*320767*/              0, // EndSwitchType
/*320768*/            /*Scope*/ 32, /*->320801*/
/*320769*/              OPC_CheckChild2Same, 1,
/*320771*/              OPC_SwitchType /*2 cases */, 12, MVT::v8f32,// ->320786
/*320774*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*320776*/                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)
/*320786*/              /*SwitchType*/ 12, MVT::v8f64,// ->320800
/*320788*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*320790*/                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)
/*320800*/              0, // EndSwitchType
/*320801*/            0, /*End of Scope*/
/*320802*/          /*SwitchOpcode*/ 105, TARGET_VAL(X86ISD::FNMSUB),// ->320910
/*320805*/            OPC_RecordChild0, // #1 = $src2
/*320806*/            OPC_RecordChild1, // #2 = $src1
/*320807*/            OPC_RecordChild2, // #3 = $src3
/*320808*/            OPC_MoveParent,
/*320809*/            OPC_Scope, 32, /*->320843*/ // 3 children in Scope
/*320811*/              OPC_CheckChild2Same, 2,
/*320813*/              OPC_SwitchType /*2 cases */, 12, MVT::v8f32,// ->320828
/*320816*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*320818*/                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)
/*320828*/              /*SwitchType*/ 12, MVT::v8f64,// ->320842
/*320830*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*320832*/                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)
/*320842*/              0, // EndSwitchType
/*320843*/            /*Scope*/ 32, /*->320876*/
/*320844*/              OPC_CheckChild2Same, 3,
/*320846*/              OPC_SwitchType /*2 cases */, 12, MVT::v8f32,// ->320861
/*320849*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*320851*/                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)
/*320861*/              /*SwitchType*/ 12, MVT::v8f64,// ->320875
/*320863*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*320865*/                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)
/*320875*/              0, // EndSwitchType
/*320876*/            /*Scope*/ 32, /*->320909*/
/*320877*/              OPC_CheckChild2Same, 1,
/*320879*/              OPC_SwitchType /*2 cases */, 12, MVT::v8f32,// ->320894
/*320882*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*320884*/                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)
/*320894*/              /*SwitchType*/ 12, MVT::v8f64,// ->320908
/*320896*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*320898*/                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)
/*320908*/              0, // EndSwitchType
/*320909*/            0, /*End of Scope*/
/*320910*/          /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::STRICT_VFPROUND),// ->320934
/*320913*/            OPC_RecordNode, // #1 = 'X86strict_vfpround' chained node
/*320914*/            OPC_CheckFoldableChainNode,
/*320915*/            OPC_RecordChild1, // #2 = $src
/*320916*/            OPC_CheckChild1Type, MVT::v8f64,
/*320918*/            OPC_MoveParent,
/*320919*/            OPC_RecordChild2, // #3 = $src0
/*320920*/            OPC_CheckType, MVT::v8f32,
/*320922*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*320924*/            OPC_EmitMergeInputChains1_1,
/*320925*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZrrk), 0|OPFL_Chain,
                          MVT::v8f32, 3/*#Ops*/, 3, 0, 2, 
                      // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86strict_vfpround:{ *:[v8f32] } VR512:{ *:[v8f64] }:$src), VR256X:{ *:[v8f32] }:$src0) - Complexity = 6
                      // Dst: (VCVTPD2PSZrrk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*320934*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::VFPROUND),// ->320955
/*320937*/            OPC_RecordChild0, // #1 = $src
/*320938*/            OPC_CheckChild0Type, MVT::v8f64,
/*320940*/            OPC_MoveParent,
/*320941*/            OPC_RecordChild2, // #2 = $src0
/*320942*/            OPC_CheckType, MVT::v8f32,
/*320944*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*320946*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZrrk), 0,
                          MVT::v8f32, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86vfpround:{ *:[v8f32] } VR512:{ *:[v8f64] }:$src), VR256X:{ *:[v8f32] }:$src0) - Complexity = 6
                      // Dst: (VCVTPD2PSZrrk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*320955*/          /*SwitchOpcode*/ 19, TARGET_VAL(ISD::STRICT_FP_EXTEND),// ->320977
/*320958*/            OPC_RecordNode, // #1 = 'strict_fpextend' chained node
/*320959*/            OPC_CheckFoldableChainNode,
/*320960*/            OPC_RecordChild1, // #2 = $src
/*320961*/            OPC_MoveParent,
/*320962*/            OPC_RecordChild2, // #3 = $src0
/*320963*/            OPC_CheckType, MVT::v8f64,
/*320965*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*320967*/            OPC_EmitMergeInputChains1_1,
/*320968*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PDZrrk), 0|OPFL_Chain,
                          MVT::v8f64, 3/*#Ops*/, 3, 0, 2, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (strict_fpextend:{ *:[v8f64] } VR256X:{ *:[v8f32] }:$src), VR512:{ *:[v8f64] }:$src0) - Complexity = 6
                      // Dst: (VCVTPS2PDZrrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*320977*/          /*SwitchOpcode*/ 16, TARGET_VAL(ISD::FP_EXTEND),// ->320996
/*320980*/            OPC_RecordChild0, // #1 = $src
/*320981*/            OPC_MoveParent,
/*320982*/            OPC_RecordChild2, // #2 = $src0
/*320983*/            OPC_CheckType, MVT::v8f64,
/*320985*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*320987*/            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)
/*320996*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::VFPEXT_SAE),// ->321017
/*320999*/            OPC_RecordChild0, // #1 = $src
/*321000*/            OPC_CheckChild0Type, MVT::v8f32,
/*321002*/            OPC_MoveParent,
/*321003*/            OPC_RecordChild2, // #2 = $src0
/*321004*/            OPC_CheckType, MVT::v8f64,
/*321006*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*321008*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PDZrrbk), 0,
                          MVT::v8f64, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86vfpextSAE:{ *:[v8f64] } VR256X:{ *:[v8f32] }:$src), VR512:{ *:[v8f64] }:$src0) - Complexity = 6
                      // Dst: (VCVTPS2PDZrrbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*321017*/          /*SwitchOpcode*/ 75, TARGET_VAL(ISD::STRICT_SINT_TO_FP),// ->321095
/*321020*/            OPC_RecordNode, // #1 = 'strict_sint_to_fp' chained node
/*321021*/            OPC_CheckFoldableChainNode,
/*321022*/            OPC_RecordChild1, // #2 = $src
/*321023*/            OPC_Scope, 34, /*->321059*/ // 2 children in Scope
/*321025*/              OPC_CheckChild1Type, MVT::v8i32,
/*321027*/              OPC_MoveParent,
/*321028*/              OPC_RecordChild2, // #3 = $src0
/*321029*/              OPC_SwitchType /*2 cases */, 12, MVT::v8f64,// ->321044
/*321032*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*321034*/                OPC_EmitMergeInputChains1_1,
/*321035*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDZrrk), 0|OPFL_Chain,
                              MVT::v8f64, 3/*#Ops*/, 3, 0, 2, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (strict_sint_to_fp:{ *:[v8f64] } VR256X:{ *:[v8i32] }:$src), VR512:{ *:[v8f64] }:$src0) - Complexity = 6
                          // Dst: (VCVTDQ2PDZrrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/*321044*/              /*SwitchType*/ 12, MVT::v8f32,// ->321058
/*321046*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*321048*/                OPC_EmitMergeInputChains1_1,
/*321049*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSZ256rrk), 0|OPFL_Chain,
                              MVT::v8f32, 3/*#Ops*/, 3, 0, 2, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (strict_sint_to_fp:{ *:[v8f32] } VR256X:{ *:[v8i32] }:$src), VR256X:{ *:[v8f32] }:$src0) - Complexity = 6
                          // Dst: (VCVTDQ2PSZ256rrk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/*321058*/              0, // EndSwitchType
/*321059*/            /*Scope*/ 34, /*->321094*/
/*321060*/              OPC_CheckChild1Type, MVT::v8i64,
/*321062*/              OPC_MoveParent,
/*321063*/              OPC_RecordChild2, // #3 = $src0
/*321064*/              OPC_SwitchType /*2 cases */, 12, MVT::v8f64,// ->321079
/*321067*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*321069*/                OPC_EmitMergeInputChains1_1,
/*321070*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PDZrrk), 0|OPFL_Chain,
                              MVT::v8f64, 3/*#Ops*/, 3, 0, 2, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (strict_sint_to_fp:{ *:[v8f64] } VR512:{ *:[v8i64] }:$src), VR512:{ *:[v8f64] }:$src0) - Complexity = 6
                          // Dst: (VCVTQQ2PDZrrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*321079*/              /*SwitchType*/ 12, MVT::v8f32,// ->321093
/*321081*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*321083*/                OPC_EmitMergeInputChains1_1,
/*321084*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PSZrrk), 0|OPFL_Chain,
                              MVT::v8f32, 3/*#Ops*/, 3, 0, 2, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (strict_sint_to_fp:{ *:[v8f32] } VR512:{ *:[v8i64] }:$src), VR256X:{ *:[v8f32] }:$src0) - Complexity = 6
                          // Dst: (VCVTQQ2PSZrrk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*321093*/              0, // EndSwitchType
/*321094*/            0, /*End of Scope*/
/*321095*/          /*SwitchOpcode*/ 69, TARGET_VAL(ISD::SINT_TO_FP),// ->321167
/*321098*/            OPC_RecordChild0, // #1 = $src
/*321099*/            OPC_Scope, 32, /*->321133*/ // 2 children in Scope
/*321101*/              OPC_CheckChild0Type, MVT::v8i32,
/*321103*/              OPC_MoveParent,
/*321104*/              OPC_RecordChild2, // #2 = $src0
/*321105*/              OPC_SwitchType /*2 cases */, 11, MVT::v8f64,// ->321119
/*321108*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*321110*/                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)
/*321119*/              /*SwitchType*/ 11, MVT::v8f32,// ->321132
/*321121*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*321123*/                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)
/*321132*/              0, // EndSwitchType
/*321133*/            /*Scope*/ 32, /*->321166*/
/*321134*/              OPC_CheckChild0Type, MVT::v8i64,
/*321136*/              OPC_MoveParent,
/*321137*/              OPC_RecordChild2, // #2 = $src0
/*321138*/              OPC_SwitchType /*2 cases */, 11, MVT::v8f64,// ->321152
/*321141*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*321143*/                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)
/*321152*/              /*SwitchType*/ 11, MVT::v8f32,// ->321165
/*321154*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*321156*/                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)
/*321165*/              0, // EndSwitchType
/*321166*/            0, /*End of Scope*/
/*321167*/          /*SwitchOpcode*/ 75, TARGET_VAL(ISD::STRICT_UINT_TO_FP),// ->321245
/*321170*/            OPC_RecordNode, // #1 = 'strict_uint_to_fp' chained node
/*321171*/            OPC_CheckFoldableChainNode,
/*321172*/            OPC_RecordChild1, // #2 = $src
/*321173*/            OPC_Scope, 34, /*->321209*/ // 2 children in Scope
/*321175*/              OPC_CheckChild1Type, MVT::v8i32,
/*321177*/              OPC_MoveParent,
/*321178*/              OPC_RecordChild2, // #3 = $src0
/*321179*/              OPC_SwitchType /*2 cases */, 12, MVT::v8f64,// ->321194
/*321182*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*321184*/                OPC_EmitMergeInputChains1_1,
/*321185*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PDZrrk), 0|OPFL_Chain,
                              MVT::v8f64, 3/*#Ops*/, 3, 0, 2, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (strict_uint_to_fp:{ *:[v8f64] } VR256X:{ *:[v8i32] }:$src), VR512:{ *:[v8f64] }:$src0) - Complexity = 6
                          // Dst: (VCVTUDQ2PDZrrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/*321194*/              /*SwitchType*/ 12, MVT::v8f32,// ->321208
/*321196*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*321198*/                OPC_EmitMergeInputChains1_1,
/*321199*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PSZ256rrk), 0|OPFL_Chain,
                              MVT::v8f32, 3/*#Ops*/, 3, 0, 2, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (strict_uint_to_fp:{ *:[v8f32] } VR256X:{ *:[v8i32] }:$src), VR256X:{ *:[v8f32] }:$src0) - Complexity = 6
                          // Dst: (VCVTUDQ2PSZ256rrk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/*321208*/              0, // EndSwitchType
/*321209*/            /*Scope*/ 34, /*->321244*/
/*321210*/              OPC_CheckChild1Type, MVT::v8i64,
/*321212*/              OPC_MoveParent,
/*321213*/              OPC_RecordChild2, // #3 = $src0
/*321214*/              OPC_SwitchType /*2 cases */, 12, MVT::v8f64,// ->321229
/*321217*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*321219*/                OPC_EmitMergeInputChains1_1,
/*321220*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PDZrrk), 0|OPFL_Chain,
                              MVT::v8f64, 3/*#Ops*/, 3, 0, 2, 
                          // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (strict_uint_to_fp:{ *:[v8f64] } VR512:{ *:[v8i64] }:$src), VR512:{ *:[v8f64] }:$src0) - Complexity = 6
                          // Dst: (VCVTUQQ2PDZrrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*321229*/              /*SwitchType*/ 12, MVT::v8f32,// ->321243
/*321231*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*321233*/                OPC_EmitMergeInputChains1_1,
/*321234*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PSZrrk), 0|OPFL_Chain,
                              MVT::v8f32, 3/*#Ops*/, 3, 0, 2, 
                          // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (strict_uint_to_fp:{ *:[v8f32] } VR512:{ *:[v8i64] }:$src), VR256X:{ *:[v8f32] }:$src0) - Complexity = 6
                          // Dst: (VCVTUQQ2PSZrrk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*321243*/              0, // EndSwitchType
/*321244*/            0, /*End of Scope*/
/*321245*/          /*SwitchOpcode*/ 69, TARGET_VAL(ISD::UINT_TO_FP),// ->321317
/*321248*/            OPC_RecordChild0, // #1 = $src
/*321249*/            OPC_Scope, 32, /*->321283*/ // 2 children in Scope
/*321251*/              OPC_CheckChild0Type, MVT::v8i32,
/*321253*/              OPC_MoveParent,
/*321254*/              OPC_RecordChild2, // #2 = $src0
/*321255*/              OPC_SwitchType /*2 cases */, 11, MVT::v8f64,// ->321269
/*321258*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*321260*/                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)
/*321269*/              /*SwitchType*/ 11, MVT::v8f32,// ->321282
/*321271*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*321273*/                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)
/*321282*/              0, // EndSwitchType
/*321283*/            /*Scope*/ 32, /*->321316*/
/*321284*/              OPC_CheckChild0Type, MVT::v8i64,
/*321286*/              OPC_MoveParent,
/*321287*/              OPC_RecordChild2, // #2 = $src0
/*321288*/              OPC_SwitchType /*2 cases */, 11, MVT::v8f64,// ->321302
/*321291*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*321293*/                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)
/*321302*/              /*SwitchType*/ 11, MVT::v8f32,// ->321315
/*321304*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*321306*/                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)
/*321315*/              0, // EndSwitchType
/*321316*/            0, /*End of Scope*/
/*321317*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::CVTPH2PS),// ->321338
/*321320*/            OPC_RecordChild0, // #1 = $src
/*321321*/            OPC_CheckChild0Type, MVT::v8i16,
/*321323*/            OPC_MoveParent,
/*321324*/            OPC_RecordChild2, // #2 = $src0
/*321325*/            OPC_CheckType, MVT::v8f32,
/*321327*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*321329*/            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)
/*321338*/          /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::RSQRT14),// ->321372
/*321341*/            OPC_RecordChild0, // #1 = $src
/*321342*/            OPC_MoveParent,
/*321343*/            OPC_RecordChild2, // #2 = $src0
/*321344*/            OPC_SwitchType /*2 cases */, 11, MVT::v8f64,// ->321358
/*321347*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*321349*/              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)
/*321358*/            /*SwitchType*/ 11, MVT::v8f32,// ->321371
/*321360*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*321362*/              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)
/*321371*/            0, // EndSwitchType
/*321372*/          /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::RCP14),// ->321406
/*321375*/            OPC_RecordChild0, // #1 = $src
/*321376*/            OPC_MoveParent,
/*321377*/            OPC_RecordChild2, // #2 = $src0
/*321378*/            OPC_SwitchType /*2 cases */, 11, MVT::v8f64,// ->321392
/*321381*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*321383*/              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)
/*321392*/            /*SwitchType*/ 11, MVT::v8f32,// ->321405
/*321394*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*321396*/              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)
/*321405*/            0, // EndSwitchType
/*321406*/          /*SwitchOpcode*/ 16, TARGET_VAL(X86ISD::RSQRT28),// ->321425
/*321409*/            OPC_RecordChild0, // #1 = $src
/*321410*/            OPC_MoveParent,
/*321411*/            OPC_RecordChild2, // #2 = $src0
/*321412*/            OPC_CheckType, MVT::v8f64,
/*321414*/            OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*321416*/            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), VR512:{ *:[v8f64] }:$src0) - Complexity = 6
                      // Dst: (VRSQRT28PDZrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*321425*/          /*SwitchOpcode*/ 16, TARGET_VAL(X86ISD::RSQRT28_SAE),// ->321444
/*321428*/            OPC_RecordChild0, // #1 = $src
/*321429*/            OPC_MoveParent,
/*321430*/            OPC_RecordChild2, // #2 = $src0
/*321431*/            OPC_CheckType, MVT::v8f64,
/*321433*/            OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*321435*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT28PDZrbk), 0,
                          MVT::v8f64, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86rsqrt28SAE:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src), VR512:{ *:[v8f64] }:$src0) - Complexity = 6
                      // Dst: (VRSQRT28PDZrbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*321444*/          /*SwitchOpcode*/ 16, TARGET_VAL(X86ISD::RCP28),// ->321463
/*321447*/            OPC_RecordChild0, // #1 = $src
/*321448*/            OPC_MoveParent,
/*321449*/            OPC_RecordChild2, // #2 = $src0
/*321450*/            OPC_CheckType, MVT::v8f64,
/*321452*/            OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*321454*/            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), VR512:{ *:[v8f64] }:$src0) - Complexity = 6
                      // Dst: (VRCP28PDZrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*321463*/          /*SwitchOpcode*/ 16, TARGET_VAL(X86ISD::RCP28_SAE),// ->321482
/*321466*/            OPC_RecordChild0, // #1 = $src
/*321467*/            OPC_MoveParent,
/*321468*/            OPC_RecordChild2, // #2 = $src0
/*321469*/            OPC_CheckType, MVT::v8f64,
/*321471*/            OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*321473*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP28PDZrbk), 0,
                          MVT::v8f64, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86rcp28SAE:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src), VR512:{ *:[v8f64] }:$src0) - Complexity = 6
                      // Dst: (VRCP28PDZrbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*321482*/          /*SwitchOpcode*/ 16, TARGET_VAL(X86ISD::EXP2),// ->321501
/*321485*/            OPC_RecordChild0, // #1 = $src
/*321486*/            OPC_MoveParent,
/*321487*/            OPC_RecordChild2, // #2 = $src0
/*321488*/            OPC_CheckType, MVT::v8f64,
/*321490*/            OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*321492*/            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), VR512:{ *:[v8f64] }:$src0) - Complexity = 6
                      // Dst: (VEXP2PDZrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*321501*/          /*SwitchOpcode*/ 16, TARGET_VAL(X86ISD::EXP2_SAE),// ->321520
/*321504*/            OPC_RecordChild0, // #1 = $src
/*321505*/            OPC_MoveParent,
/*321506*/            OPC_RecordChild2, // #2 = $src0
/*321507*/            OPC_CheckType, MVT::v8f64,
/*321509*/            OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*321511*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VEXP2PDZrbk), 0,
                          MVT::v8f64, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86exp2SAE:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src), VR512:{ *:[v8f64] }:$src0) - Complexity = 6
                      // Dst: (VEXP2PDZrbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*321520*/          /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::FGETEXP),// ->321554
/*321523*/            OPC_RecordChild0, // #1 = $src
/*321524*/            OPC_MoveParent,
/*321525*/            OPC_RecordChild2, // #2 = $src0
/*321526*/            OPC_SwitchType /*2 cases */, 11, MVT::v8f64,// ->321540
/*321529*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*321531*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPDZrk), 0,
                            MVT::v8f64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fgetexp:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src), VR512:{ *:[v8f64] }:$src0) - Complexity = 6
                        // Dst: (VGETEXPPDZrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*321540*/            /*SwitchType*/ 11, MVT::v8f32,// ->321553
/*321542*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*321544*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPSZ256rk), 0,
                            MVT::v8f32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86fgetexp:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src), VR256X:{ *:[v8f32] }:$src0) - Complexity = 6
                        // Dst: (VGETEXPPSZ256rk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*321553*/            0, // EndSwitchType
/*321554*/          /*SwitchOpcode*/ 16, TARGET_VAL(X86ISD::FGETEXP_SAE),// ->321573
/*321557*/            OPC_RecordChild0, // #1 = $src
/*321558*/            OPC_MoveParent,
/*321559*/            OPC_RecordChild2, // #2 = $src0
/*321560*/            OPC_CheckType, MVT::v8f64,
/*321562*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*321564*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPDZrbk), 0,
                          MVT::v8f64, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (X86fgetexpSAE:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src), VR512:{ *:[v8f64] }:$src0) - Complexity = 6
                      // Dst: (VGETEXPPDZrbk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*321573*/          /*SwitchOpcode*/ 35, TARGET_VAL(ISD::STRICT_FSQRT),// ->321611
/*321576*/            OPC_RecordNode, // #1 = 'strict_fsqrt' chained node
/*321577*/            OPC_CheckFoldableChainNode,
/*321578*/            OPC_RecordChild1, // #2 = $src
/*321579*/            OPC_MoveParent,
/*321580*/            OPC_RecordChild2, // #3 = $src0
/*321581*/            OPC_SwitchType /*2 cases */, 12, MVT::v8f64,// ->321596
/*321584*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*321586*/              OPC_EmitMergeInputChains1_1,
/*321587*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDZrk), 0|OPFL_Chain,
                            MVT::v8f64, 3/*#Ops*/, 3, 0, 2, 
                        // Src: (vselect:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, (strict_fsqrt:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src), VR512:{ *:[v8f64] }:$src0) - Complexity = 6
                        // Dst: (VSQRTPDZrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*321596*/            /*SwitchType*/ 12, MVT::v8f32,// ->321610
/*321598*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*321600*/              OPC_EmitMergeInputChains1_1,
/*321601*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSZ256rk), 0|OPFL_Chain,
                            MVT::v8f32, 3/*#Ops*/, 3, 0, 2, 
                        // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (strict_fsqrt:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src), VR256X:{ *:[v8f32] }:$src0) - Complexity = 6
                        // Dst: (VSQRTPSZ256rk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*321610*/            0, // EndSwitchType
/*321611*/          /*SwitchOpcode*/ 31, TARGET_VAL(ISD::FSQRT),// ->321645
/*321614*/            OPC_RecordChild0, // #1 = $src
/*321615*/            OPC_MoveParent,
/*321616*/            OPC_RecordChild2, // #2 = $src0
/*321617*/            OPC_SwitchType /*2 cases */, 11, MVT::v8f64,// ->321631
/*321620*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*321622*/              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)
/*321631*/            /*SwitchType*/ 11, MVT::v8f32,// ->321644
/*321633*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*321635*/              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)
/*321644*/            0, // EndSwitchType
/*321645*/          /*SwitchOpcode*/ 16, TARGET_VAL(X86ISD::MOVSHDUP),// ->321664
/*321648*/            OPC_RecordChild0, // #1 = $src1
/*321649*/            OPC_MoveParent,
/*321650*/            OPC_RecordChild2, // #2 = $src0
/*321651*/            OPC_CheckType, MVT::v8f32,
/*321653*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*321655*/            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)
/*321664*/          /*SwitchOpcode*/ 16, TARGET_VAL(X86ISD::MOVSLDUP),// ->321683
/*321667*/            OPC_RecordChild0, // #1 = $src1
/*321668*/            OPC_MoveParent,
/*321669*/            OPC_RecordChild2, // #2 = $src0
/*321670*/            OPC_CheckType, MVT::v8f32,
/*321672*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*321674*/            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)
/*321683*/          /*SwitchOpcode*/ 16, TARGET_VAL(X86ISD::MOVDDUP),// ->321702
/*321686*/            OPC_RecordChild0, // #1 = $src1
/*321687*/            OPC_MoveParent,
/*321688*/            OPC_RecordChild2, // #2 = $src0
/*321689*/            OPC_CheckType, MVT::v8f64,
/*321691*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*321693*/            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)
/*321702*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::UNPCKH),// ->321739
/*321705*/            OPC_RecordChild0, // #1 = $src1
/*321706*/            OPC_RecordChild1, // #2 = $src2
/*321707*/            OPC_MoveParent,
/*321708*/            OPC_RecordChild2, // #3 = $src0
/*321709*/            OPC_SwitchType /*2 cases */, 12, MVT::v8f64,// ->321724
/*321712*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*321714*/              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)
/*321724*/            /*SwitchType*/ 12, MVT::v8f32,// ->321738
/*321726*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*321728*/              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)
/*321738*/            0, // EndSwitchType
/*321739*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::UNPCKL),// ->321776
/*321742*/            OPC_RecordChild0, // #1 = $src1
/*321743*/            OPC_RecordChild1, // #2 = $src2
/*321744*/            OPC_MoveParent,
/*321745*/            OPC_RecordChild2, // #3 = $src0
/*321746*/            OPC_SwitchType /*2 cases */, 12, MVT::v8f64,// ->321761
/*321749*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*321751*/              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)
/*321761*/            /*SwitchType*/ 12, MVT::v8f32,// ->321775
/*321763*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*321765*/              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)
/*321775*/            0, // EndSwitchType
/*321776*/          /*SwitchOpcode*/ 22, TARGET_VAL(X86ISD::DPBF16PS),// ->321801
/*321779*/            OPC_RecordChild0, // #1 = $src1
/*321780*/            OPC_RecordChild1, // #2 = $src2
/*321781*/            OPC_CheckChild1Type, MVT::v8i32,
/*321783*/            OPC_RecordChild2, // #3 = $src3
/*321784*/            OPC_MoveParent,
/*321785*/            OPC_CheckChild2Same, 1,
/*321787*/            OPC_CheckType, MVT::v8f32,
/*321789*/            OPC_CheckPatternPredicate, 182, // (Subtarget->hasBF16()) && (Subtarget->hasVLX())
/*321791*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDPBF16PSZ256rk), 0,
                          MVT::v8f32, 4/*#Ops*/, 1, 0, 2, 3, 
                      // Src: (vselect:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, (X86dpbf16ps:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3), VR256X:{ *:[v8f32] }:$src1) - Complexity = 6
                      // Dst: (VDPBF16PSZ256rk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3)
/*321801*/          0, // EndSwitchOpcode
/*321802*/        /*Scope*/ 103, /*->321906*/
/*321803*/          OPC_RecordChild1, // #1 = $src1
/*321804*/          OPC_RecordChild2, // #2 = $src0
/*321805*/          OPC_SwitchType /*2 cases */, 84, MVT::v8f32,// ->321892
/*321808*/            OPC_Scope, 11, /*->321821*/ // 2 children in Scope
/*321810*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*321812*/              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)
/*321821*/            /*Scope*/ 69, /*->321891*/
/*321822*/              OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*321824*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v16f32, 0/*#Ops*/,  // Results = #3
/*321830*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*321833*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v16f32, 3/*#Ops*/, 3, 2, 4,  // Results = #5
/*321842*/              OPC_EmitInteger, MVT::i32, X86::VK16WMRegClassID,
/*321845*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v16i1, 2/*#Ops*/, 0, 6,  // Results = #7
/*321853*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v16f32, 0/*#Ops*/,  // Results = #8
/*321859*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*321862*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v16f32, 3/*#Ops*/, 8, 1, 9,  // Results = #10
/*321871*/              OPC_EmitNode1, TARGET_VAL(X86::VMOVAPSZrrk), 0,
                            MVT::v16f32, 3/*#Ops*/, 5, 7, 10,  // Results = #11
/*321880*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*321883*/              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] })
/*321891*/            0, /*End of Scope*/
/*321892*/          /*SwitchType*/ 11, MVT::v8f64,// ->321905
/*321894*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*321896*/            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)
/*321905*/          0, // EndSwitchType
/*321906*/        0, /*End of Scope*/
/*321907*/      /*Scope*/ 53|128,103|128,1/*29621*/, /*->351531*/
/*321910*/        OPC_CheckChild0Type, MVT::v16i1,
/*321912*/        OPC_Scope, 71, /*->321985*/ // 21 children in Scope
/*321914*/          OPC_RecordChild1, // #1 = $src3
/*321915*/          OPC_MoveChild1,
/*321916*/          OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*321919*/          OPC_RecordChild0, // #2 = $src1
/*321920*/          OPC_RecordChild1, // #3 = $src2
/*321921*/          OPC_Scope, 30, /*->321953*/ // 2 children in Scope
/*321923*/            OPC_CheckChild1Type, MVT::v4i32,
/*321925*/            OPC_MoveChild2,
/*321926*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*321929*/            OPC_CheckType, MVT::iPTR,
/*321931*/            OPC_MoveParent,
/*321932*/            OPC_MoveParent,
/*321933*/            OPC_MoveChild2,
/*321934*/            OPC_CheckImmAllZerosV,
/*321935*/            OPC_MoveParent,
/*321936*/            OPC_CheckType, MVT::v16i32,
/*321938*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*321940*/            OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*321943*/            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, immAllZerosV:{ *:[v16i32] }) - 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))
/*321953*/          /*Scope*/ 30, /*->321984*/
/*321954*/            OPC_CheckChild1Type, MVT::v8i32,
/*321956*/            OPC_MoveChild2,
/*321957*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*321960*/            OPC_CheckType, MVT::iPTR,
/*321962*/            OPC_MoveParent,
/*321963*/            OPC_MoveParent,
/*321964*/            OPC_MoveChild2,
/*321965*/            OPC_CheckImmAllZerosV,
/*321966*/            OPC_MoveParent,
/*321967*/            OPC_CheckType, MVT::v16i32,
/*321969*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*321971*/            OPC_EmitNodeXForm, 16, 1, // INSERT_get_vinsert256_imm
/*321974*/            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, immAllZerosV:{ *:[v16i32] }) - 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))
/*321984*/          0, /*End of Scope*/
/*321985*/        /*Scope*/ 127|128,28/*3711*/, /*->325698*/
/*321987*/          OPC_MoveChild1,
/*321988*/          OPC_Scope, 117|128,4/*629*/, /*->322620*/ // 84 children in Scope
/*321991*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*321994*/            OPC_Scope, 40|128,2/*296*/, /*->322293*/ // 3 children in Scope
/*321997*/              OPC_MoveChild0,
/*321998*/              OPC_SwitchOpcode /*5 cases */, 22, TARGET_VAL(X86ISD::VBROADCAST),// ->322024
/*322002*/                OPC_RecordChild0, // #1 = $src
/*322003*/                OPC_CheckChild0Type, MVT::v2i64,
/*322005*/                OPC_CheckType, MVT::v8i64,
/*322007*/                OPC_MoveParent,
/*322008*/                OPC_MoveParent,
/*322009*/                OPC_MoveChild2,
/*322010*/                OPC_CheckImmAllZerosV,
/*322011*/                OPC_MoveParent,
/*322012*/                OPC_CheckType, MVT::v16i32,
/*322014*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*322016*/                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)), immAllZerosV:{ *:[v16i32] }) - Complexity = 13
                          // Dst: (VBROADCASTI32X2Zrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*322024*/              /*SwitchOpcode*/ 64, TARGET_VAL(ISD::AND),// ->322091
/*322027*/                OPC_RecordChild0, // #1 = $src1
/*322028*/                OPC_RecordChild1, // #2 = $src2
/*322029*/                OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->322050
/*322032*/                  OPC_MoveParent,
/*322033*/                  OPC_MoveParent,
/*322034*/                  OPC_MoveChild2,
/*322035*/                  OPC_CheckImmAllZerosV,
/*322036*/                  OPC_MoveParent,
/*322037*/                  OPC_CheckType, MVT::v16i32,
/*322039*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*322041*/                  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)), immAllZerosV:{ *:[v16i32] }) - Complexity = 13
                            // Dst: (VPANDDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*322050*/                /*SwitchType*/ 18, MVT::v32i16,// ->322070
/*322052*/                  OPC_MoveParent,
/*322053*/                  OPC_MoveParent,
/*322054*/                  OPC_MoveChild2,
/*322055*/                  OPC_CheckImmAllZerosV,
/*322056*/                  OPC_MoveParent,
/*322057*/                  OPC_CheckType, MVT::v16i32,
/*322059*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*322061*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZrrkz), 0,
                                MVT::v16i32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (and:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)), immAllZerosV:{ *:[v16i32] }) - Complexity = 13
                            // Dst: (VPANDDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*322070*/                /*SwitchType*/ 18, MVT::v64i8,// ->322090
/*322072*/                  OPC_MoveParent,
/*322073*/                  OPC_MoveParent,
/*322074*/                  OPC_MoveChild2,
/*322075*/                  OPC_CheckImmAllZerosV,
/*322076*/                  OPC_MoveParent,
/*322077*/                  OPC_CheckType, MVT::v16i32,
/*322079*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*322081*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZrrkz), 0,
                                MVT::v16i32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (and:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)), immAllZerosV:{ *:[v16i32] }) - Complexity = 13
                            // Dst: (VPANDDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*322090*/                0, // EndSwitchType
/*322091*/              /*SwitchOpcode*/ 64, TARGET_VAL(ISD::OR),// ->322158
/*322094*/                OPC_RecordChild0, // #1 = $src1
/*322095*/                OPC_RecordChild1, // #2 = $src2
/*322096*/                OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->322117
/*322099*/                  OPC_MoveParent,
/*322100*/                  OPC_MoveParent,
/*322101*/                  OPC_MoveChild2,
/*322102*/                  OPC_CheckImmAllZerosV,
/*322103*/                  OPC_MoveParent,
/*322104*/                  OPC_CheckType, MVT::v16i32,
/*322106*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*322108*/                  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)), immAllZerosV:{ *:[v16i32] }) - Complexity = 13
                            // Dst: (VPORDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*322117*/                /*SwitchType*/ 18, MVT::v32i16,// ->322137
/*322119*/                  OPC_MoveParent,
/*322120*/                  OPC_MoveParent,
/*322121*/                  OPC_MoveChild2,
/*322122*/                  OPC_CheckImmAllZerosV,
/*322123*/                  OPC_MoveParent,
/*322124*/                  OPC_CheckType, MVT::v16i32,
/*322126*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*322128*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZrrkz), 0,
                                MVT::v16i32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (or:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)), immAllZerosV:{ *:[v16i32] }) - Complexity = 13
                            // Dst: (VPORDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*322137*/                /*SwitchType*/ 18, MVT::v64i8,// ->322157
/*322139*/                  OPC_MoveParent,
/*322140*/                  OPC_MoveParent,
/*322141*/                  OPC_MoveChild2,
/*322142*/                  OPC_CheckImmAllZerosV,
/*322143*/                  OPC_MoveParent,
/*322144*/                  OPC_CheckType, MVT::v16i32,
/*322146*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*322148*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZrrkz), 0,
                                MVT::v16i32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (or:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)), immAllZerosV:{ *:[v16i32] }) - Complexity = 13
                            // Dst: (VPORDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*322157*/                0, // EndSwitchType
/*322158*/              /*SwitchOpcode*/ 64, TARGET_VAL(ISD::XOR),// ->322225
/*322161*/                OPC_RecordChild0, // #1 = $src1
/*322162*/                OPC_RecordChild1, // #2 = $src2
/*322163*/                OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->322184
/*322166*/                  OPC_MoveParent,
/*322167*/                  OPC_MoveParent,
/*322168*/                  OPC_MoveChild2,
/*322169*/                  OPC_CheckImmAllZerosV,
/*322170*/                  OPC_MoveParent,
/*322171*/                  OPC_CheckType, MVT::v16i32,
/*322173*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*322175*/                  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)), immAllZerosV:{ *:[v16i32] }) - Complexity = 13
                            // Dst: (VPXORDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*322184*/                /*SwitchType*/ 18, MVT::v32i16,// ->322204
/*322186*/                  OPC_MoveParent,
/*322187*/                  OPC_MoveParent,
/*322188*/                  OPC_MoveChild2,
/*322189*/                  OPC_CheckImmAllZerosV,
/*322190*/                  OPC_MoveParent,
/*322191*/                  OPC_CheckType, MVT::v16i32,
/*322193*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*322195*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZrrkz), 0,
                                MVT::v16i32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (xor:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)), immAllZerosV:{ *:[v16i32] }) - Complexity = 13
                            // Dst: (VPXORDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*322204*/                /*SwitchType*/ 18, MVT::v64i8,// ->322224
/*322206*/                  OPC_MoveParent,
/*322207*/                  OPC_MoveParent,
/*322208*/                  OPC_MoveChild2,
/*322209*/                  OPC_CheckImmAllZerosV,
/*322210*/                  OPC_MoveParent,
/*322211*/                  OPC_CheckType, MVT::v16i32,
/*322213*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*322215*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZrrkz), 0,
                                MVT::v16i32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (xor:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)), immAllZerosV:{ *:[v16i32] }) - Complexity = 13
                            // Dst: (VPXORDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*322224*/                0, // EndSwitchType
/*322225*/              /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::ANDNP),// ->322292
/*322228*/                OPC_RecordChild0, // #1 = $src1
/*322229*/                OPC_RecordChild1, // #2 = $src2
/*322230*/                OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->322251
/*322233*/                  OPC_MoveParent,
/*322234*/                  OPC_MoveParent,
/*322235*/                  OPC_MoveChild2,
/*322236*/                  OPC_CheckImmAllZerosV,
/*322237*/                  OPC_MoveParent,
/*322238*/                  OPC_CheckType, MVT::v16i32,
/*322240*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*322242*/                  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)), immAllZerosV:{ *:[v16i32] }) - Complexity = 13
                            // Dst: (VPANDNDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*322251*/                /*SwitchType*/ 18, MVT::v32i16,// ->322271
/*322253*/                  OPC_MoveParent,
/*322254*/                  OPC_MoveParent,
/*322255*/                  OPC_MoveChild2,
/*322256*/                  OPC_CheckImmAllZerosV,
/*322257*/                  OPC_MoveParent,
/*322258*/                  OPC_CheckType, MVT::v16i32,
/*322260*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*322262*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZrrkz), 0,
                                MVT::v16i32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (X86andnp:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)), immAllZerosV:{ *:[v16i32] }) - Complexity = 13
                            // Dst: (VPANDNDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*322271*/                /*SwitchType*/ 18, MVT::v64i8,// ->322291
/*322273*/                  OPC_MoveParent,
/*322274*/                  OPC_MoveParent,
/*322275*/                  OPC_MoveChild2,
/*322276*/                  OPC_CheckImmAllZerosV,
/*322277*/                  OPC_MoveParent,
/*322278*/                  OPC_CheckType, MVT::v16i32,
/*322280*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*322282*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZrrkz), 0,
                                MVT::v16i32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (X86andnp:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)), immAllZerosV:{ *:[v16i32] }) - Complexity = 13
                            // Dst: (VPANDNDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*322291*/                0, // EndSwitchType
/*322292*/              0, // EndSwitchOpcode
/*322293*/            /*Scope*/ 79|128,1/*207*/, /*->322502*/
/*322295*/              OPC_RecordChild0, // #1 = $ins
/*322296*/              OPC_MoveChild0,
/*322297*/              OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*322300*/              OPC_RecordChild0, // #2 = $src1
/*322301*/              OPC_RecordChild1, // #3 = $src2
/*322302*/              OPC_Scope, 32, /*->322336*/ // 6 children in Scope
/*322304*/                OPC_CheckChild1Type, MVT::v2i64,
/*322306*/                OPC_MoveChild2,
/*322307*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*322310*/                OPC_CheckType, MVT::iPTR,
/*322312*/                OPC_MoveParent,
/*322313*/                OPC_CheckType, MVT::v8i64,
/*322315*/                OPC_MoveParent,
/*322316*/                OPC_MoveParent,
/*322317*/                OPC_RecordChild2, // #4 = $src0
/*322318*/                OPC_CheckType, MVT::v16i32,
/*322320*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*322322*/                OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*322325*/                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))
/*322336*/              /*Scope*/ 32, /*->322369*/
/*322337*/                OPC_CheckChild1Type, MVT::v8i16,
/*322339*/                OPC_MoveChild2,
/*322340*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*322343*/                OPC_CheckType, MVT::iPTR,
/*322345*/                OPC_MoveParent,
/*322346*/                OPC_CheckType, MVT::v32i16,
/*322348*/                OPC_MoveParent,
/*322349*/                OPC_MoveParent,
/*322350*/                OPC_RecordChild2, // #4 = $src0
/*322351*/                OPC_CheckType, MVT::v16i32,
/*322353*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*322355*/                OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*322358*/                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))
/*322369*/              /*Scope*/ 32, /*->322402*/
/*322370*/                OPC_CheckChild1Type, MVT::v16i8,
/*322372*/                OPC_MoveChild2,
/*322373*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*322376*/                OPC_CheckType, MVT::iPTR,
/*322378*/                OPC_MoveParent,
/*322379*/                OPC_CheckType, MVT::v64i8,
/*322381*/                OPC_MoveParent,
/*322382*/                OPC_MoveParent,
/*322383*/                OPC_RecordChild2, // #4 = $src0
/*322384*/                OPC_CheckType, MVT::v16i32,
/*322386*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*322388*/                OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*322391*/                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))
/*322402*/              /*Scope*/ 32, /*->322435*/
/*322403*/                OPC_CheckChild1Type, MVT::v4i64,
/*322405*/                OPC_MoveChild2,
/*322406*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*322409*/                OPC_CheckType, MVT::iPTR,
/*322411*/                OPC_MoveParent,
/*322412*/                OPC_CheckType, MVT::v8i64,
/*322414*/                OPC_MoveParent,
/*322415*/                OPC_MoveParent,
/*322416*/                OPC_RecordChild2, // #4 = $src0
/*322417*/                OPC_CheckType, MVT::v16i32,
/*322419*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*322421*/                OPC_EmitNodeXForm, 16, 1, // INSERT_get_vinsert256_imm
/*322424*/                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))
/*322435*/              /*Scope*/ 32, /*->322468*/
/*322436*/                OPC_CheckChild1Type, MVT::v16i16,
/*322438*/                OPC_MoveChild2,
/*322439*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*322442*/                OPC_CheckType, MVT::iPTR,
/*322444*/                OPC_MoveParent,
/*322445*/                OPC_CheckType, MVT::v32i16,
/*322447*/                OPC_MoveParent,
/*322448*/                OPC_MoveParent,
/*322449*/                OPC_RecordChild2, // #4 = $src0
/*322450*/                OPC_CheckType, MVT::v16i32,
/*322452*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*322454*/                OPC_EmitNodeXForm, 16, 1, // INSERT_get_vinsert256_imm
/*322457*/                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))
/*322468*/              /*Scope*/ 32, /*->322501*/
/*322469*/                OPC_CheckChild1Type, MVT::v32i8,
/*322471*/                OPC_MoveChild2,
/*322472*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*322475*/                OPC_CheckType, MVT::iPTR,
/*322477*/                OPC_MoveParent,
/*322478*/                OPC_CheckType, MVT::v64i8,
/*322480*/                OPC_MoveParent,
/*322481*/                OPC_MoveParent,
/*322482*/                OPC_RecordChild2, // #4 = $src0
/*322483*/                OPC_CheckType, MVT::v16i32,
/*322485*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*322487*/                OPC_EmitNodeXForm, 16, 1, // INSERT_get_vinsert256_imm
/*322490*/                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))
/*322501*/              0, /*End of Scope*/
/*322502*/            /*Scope*/ 116, /*->322619*/
/*322503*/              OPC_MoveChild0,
/*322504*/              OPC_SwitchOpcode /*2 cases */, 28, TARGET_VAL(X86ISD::SHUF128),// ->322536
/*322508*/                OPC_RecordChild0, // #1 = $src1
/*322509*/                OPC_RecordChild1, // #2 = $src2
/*322510*/                OPC_RecordChild2, // #3 = $src3
/*322511*/                OPC_MoveChild2,
/*322512*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*322515*/                OPC_MoveParent,
/*322516*/                OPC_CheckType, MVT::v8i64,
/*322518*/                OPC_MoveParent,
/*322519*/                OPC_MoveParent,
/*322520*/                OPC_RecordChild2, // #4 = $src0
/*322521*/                OPC_CheckType, MVT::v16i32,
/*322523*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*322525*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI32X4Zrrik), 0,
                              MVT::v16i32, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (X86Shuf128:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (timm:{ *:[i8] }):$src3)), VR512:{ *:[v16i32] }:$src0) - Complexity = 12
                          // Dst: (VSHUFI32X4Zrrik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (timm:{ *:[i8] }):$src3)
/*322536*/              /*SwitchOpcode*/ 79, TARGET_VAL(X86ISD::VALIGN),// ->322618
/*322539*/                OPC_RecordChild0, // #1 = $src1
/*322540*/                OPC_RecordChild1, // #2 = $src2
/*322541*/                OPC_RecordChild2, // #3 = $src3
/*322542*/                OPC_MoveChild2,
/*322543*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*322546*/                OPC_MoveParent,
/*322547*/                OPC_SwitchType /*3 cases */, 21, MVT::v8i64,// ->322571
/*322550*/                  OPC_MoveParent,
/*322551*/                  OPC_MoveParent,
/*322552*/                  OPC_RecordChild2, // #4 = $src0
/*322553*/                  OPC_CheckType, MVT::v16i32,
/*322555*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*322557*/                  OPC_EmitNodeXForm, 14, 3, // ValignqImm32XForm
/*322560*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZrrik), 0,
                                MVT::v16i32, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                            // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (X86VAlign:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (timm:{ *:[i8] }):$src3)), VR512:{ *:[v16i32] }:$src0) - Complexity = 12
                            // Dst: (VALIGNDZrrik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (ValignqImm32XForm:{ *:[i8] } (timm:{ *:[i8] }):$src3))
/*322571*/                /*SwitchType*/ 21, MVT::v2i64,// ->322594
/*322573*/                  OPC_MoveParent,
/*322574*/                  OPC_MoveParent,
/*322575*/                  OPC_RecordChild2, // #4 = $src0
/*322576*/                  OPC_CheckType, MVT::v16i8,
/*322578*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*322580*/                  OPC_EmitNodeXForm, 17, 3, // ValignqImm8XForm
/*322583*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPALIGNRZ128rrik), 0,
                                MVT::v16i8, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                            // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i8] } (X86VAlign:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (timm:{ *:[i8] }):$src3)), VR128X:{ *:[v16i8] }:$src0) - Complexity = 12
                            // Dst: (VPALIGNRZ128rrik:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (ValignqImm8XForm:{ *:[i8] } (timm:{ *:[i8] }):$src3))
/*322594*/                /*SwitchType*/ 21, MVT::v4i32,// ->322617
/*322596*/                  OPC_MoveParent,
/*322597*/                  OPC_MoveParent,
/*322598*/                  OPC_RecordChild2, // #4 = $src0
/*322599*/                  OPC_CheckType, MVT::v16i8,
/*322601*/                  OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*322603*/                  OPC_EmitNodeXForm, 18, 3, // ValigndImm8XForm
/*322606*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPALIGNRZ128rrik), 0,
                                MVT::v16i8, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                            // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i8] } (X86VAlign:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (timm:{ *:[i8] }):$src3)), VR128X:{ *:[v16i8] }:$src0) - Complexity = 12
                            // Dst: (VPALIGNRZ128rrik:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (ValigndImm8XForm:{ *:[i8] } (timm:{ *:[i8] }):$src3))
/*322617*/                0, // EndSwitchType
/*322618*/              0, // EndSwitchOpcode
/*322619*/            0, /*End of Scope*/
/*322620*/          /*Scope*/ 42, /*->322663*/
/*322621*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VSRLI),
/*322624*/            OPC_RecordChild0, // #1 = $src1
/*322625*/            OPC_RecordChild1, // #2 = $src2
/*322626*/            OPC_MoveChild1,
/*322627*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*322630*/            OPC_MoveParent,
/*322631*/            OPC_MoveParent,
/*322632*/            OPC_MoveChild2,
/*322633*/            OPC_CheckImmAllZerosV,
/*322634*/            OPC_MoveParent,
/*322635*/            OPC_SwitchType /*2 cases */, 11, MVT::v16i32,// ->322649
/*322638*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*322640*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZrikz), 0,
                            MVT::v16i32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vsrli:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v16i32] }) - Complexity = 13
                        // Dst: (VPSRLDZrikz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, (timm:{ *:[i8] }):$src2)
/*322649*/            /*SwitchType*/ 11, MVT::v16i16,// ->322662
/*322651*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*322653*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLWZ256rikz), 0,
                            MVT::v16i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86vsrli:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v16i16] }) - Complexity = 13
                        // Dst: (VPSRLWZ256rikz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, (timm:{ *:[i8] }):$src2)
/*322662*/            0, // EndSwitchType
/*322663*/          /*Scope*/ 42, /*->322706*/
/*322664*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VSHLI),
/*322667*/            OPC_RecordChild0, // #1 = $src1
/*322668*/            OPC_RecordChild1, // #2 = $src2
/*322669*/            OPC_MoveChild1,
/*322670*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*322673*/            OPC_MoveParent,
/*322674*/            OPC_MoveParent,
/*322675*/            OPC_MoveChild2,
/*322676*/            OPC_CheckImmAllZerosV,
/*322677*/            OPC_MoveParent,
/*322678*/            OPC_SwitchType /*2 cases */, 11, MVT::v16i32,// ->322692
/*322681*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*322683*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZrikz), 0,
                            MVT::v16i32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vshli:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v16i32] }) - Complexity = 13
                        // Dst: (VPSLLDZrikz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, (timm:{ *:[i8] }):$src2)
/*322692*/            /*SwitchType*/ 11, MVT::v16i16,// ->322705
/*322694*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*322696*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLWZ256rikz), 0,
                            MVT::v16i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86vshli:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v16i16] }) - Complexity = 13
                        // Dst: (VPSLLWZ256rikz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, (timm:{ *:[i8] }):$src2)
/*322705*/            0, // EndSwitchType
/*322706*/          /*Scope*/ 42, /*->322749*/
/*322707*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VSRAI),
/*322710*/            OPC_RecordChild0, // #1 = $src1
/*322711*/            OPC_RecordChild1, // #2 = $src2
/*322712*/            OPC_MoveChild1,
/*322713*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*322716*/            OPC_MoveParent,
/*322717*/            OPC_MoveParent,
/*322718*/            OPC_MoveChild2,
/*322719*/            OPC_CheckImmAllZerosV,
/*322720*/            OPC_MoveParent,
/*322721*/            OPC_SwitchType /*2 cases */, 11, MVT::v16i32,// ->322735
/*322724*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*322726*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZrikz), 0,
                            MVT::v16i32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vsrai:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v16i32] }) - Complexity = 13
                        // Dst: (VPSRADZrikz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, (timm:{ *:[i8] }):$src2)
/*322735*/            /*SwitchType*/ 11, MVT::v16i16,// ->322748
/*322737*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*322739*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAWZ256rikz), 0,
                            MVT::v16i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86vsrai:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v16i16] }) - Complexity = 13
                        // Dst: (VPSRAWZ256rikz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, (timm:{ *:[i8] }):$src2)
/*322748*/            0, // EndSwitchType
/*322749*/          /*Scope*/ 27, /*->322777*/
/*322750*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VROTRI),
/*322753*/            OPC_RecordChild0, // #1 = $src1
/*322754*/            OPC_RecordChild1, // #2 = $src2
/*322755*/            OPC_MoveChild1,
/*322756*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*322759*/            OPC_MoveParent,
/*322760*/            OPC_MoveParent,
/*322761*/            OPC_MoveChild2,
/*322762*/            OPC_CheckImmAllZerosV,
/*322763*/            OPC_MoveParent,
/*322764*/            OPC_CheckType, MVT::v16i32,
/*322766*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*322768*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORDZrikz), 0,
                          MVT::v16i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vrotri:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v16i32] }) - Complexity = 13
                      // Dst: (VPRORDZrikz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, (timm:{ *:[i8] }):$src2)
/*322777*/          /*Scope*/ 27, /*->322805*/
/*322778*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VROTLI),
/*322781*/            OPC_RecordChild0, // #1 = $src1
/*322782*/            OPC_RecordChild1, // #2 = $src2
/*322783*/            OPC_MoveChild1,
/*322784*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*322787*/            OPC_MoveParent,
/*322788*/            OPC_MoveParent,
/*322789*/            OPC_MoveChild2,
/*322790*/            OPC_CheckImmAllZerosV,
/*322791*/            OPC_MoveParent,
/*322792*/            OPC_CheckType, MVT::v16i32,
/*322794*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*322796*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLDZrikz), 0,
                          MVT::v16i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vrotli:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v16i32] }) - Complexity = 13
                      // Dst: (VPROLDZrikz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, (timm:{ *:[i8] }):$src2)
/*322805*/          /*Scope*/ 27, /*->322833*/
/*322806*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::PSHUFD),
/*322809*/            OPC_RecordChild0, // #1 = $src1
/*322810*/            OPC_RecordChild1, // #2 = $src2
/*322811*/            OPC_MoveChild1,
/*322812*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*322815*/            OPC_MoveParent,
/*322816*/            OPC_MoveParent,
/*322817*/            OPC_MoveChild2,
/*322818*/            OPC_CheckImmAllZerosV,
/*322819*/            OPC_MoveParent,
/*322820*/            OPC_CheckType, MVT::v16i32,
/*322822*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*322824*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFDZrikz), 0,
                          MVT::v16i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86PShufd:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v16i32] }) - Complexity = 13
                      // Dst: (VPSHUFDZrikz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, (timm:{ *:[i8] }):$src2)
/*322833*/          /*Scope*/ 27, /*->322861*/
/*322834*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::PSHUFHW),
/*322837*/            OPC_RecordChild0, // #1 = $src1
/*322838*/            OPC_RecordChild1, // #2 = $src2
/*322839*/            OPC_MoveChild1,
/*322840*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*322843*/            OPC_MoveParent,
/*322844*/            OPC_MoveParent,
/*322845*/            OPC_MoveChild2,
/*322846*/            OPC_CheckImmAllZerosV,
/*322847*/            OPC_MoveParent,
/*322848*/            OPC_CheckType, MVT::v16i16,
/*322850*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*322852*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFHWZ256rikz), 0,
                          MVT::v16i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86PShufhw:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v16i16] }) - Complexity = 13
                      // Dst: (VPSHUFHWZ256rikz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, (timm:{ *:[i8] }):$src2)
/*322861*/          /*Scope*/ 27, /*->322889*/
/*322862*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::PSHUFLW),
/*322865*/            OPC_RecordChild0, // #1 = $src1
/*322866*/            OPC_RecordChild1, // #2 = $src2
/*322867*/            OPC_MoveChild1,
/*322868*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*322871*/            OPC_MoveParent,
/*322872*/            OPC_MoveParent,
/*322873*/            OPC_MoveChild2,
/*322874*/            OPC_CheckImmAllZerosV,
/*322875*/            OPC_MoveParent,
/*322876*/            OPC_CheckType, MVT::v16i16,
/*322878*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*322880*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFLWZ256rikz), 0,
                          MVT::v16i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86PShuflw:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v16i16] }) - Complexity = 13
                      // Dst: (VPSHUFLWZ256rikz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, (timm:{ *:[i8] }):$src2)
/*322889*/          /*Scope*/ 29, /*->322919*/
/*322890*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::CVTP2SI_RND),
/*322893*/            OPC_RecordChild0, // #1 = $src
/*322894*/            OPC_CheckChild0Type, MVT::v16f32,
/*322896*/            OPC_RecordChild1, // #2 = $rc
/*322897*/            OPC_MoveChild1,
/*322898*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*322901*/            OPC_MoveParent,
/*322902*/            OPC_MoveParent,
/*322903*/            OPC_MoveChild2,
/*322904*/            OPC_CheckImmAllZerosV,
/*322905*/            OPC_MoveParent,
/*322906*/            OPC_CheckType, MVT::v16i32,
/*322908*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*322910*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2DQZrrbkz), 0,
                          MVT::v16i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86cvtp2IntRnd:{ *:[v16i32] } VR512:{ *:[v16f32] }:$src, (timm:{ *:[i32] }):$rc), immAllZerosV:{ *:[v16i32] }) - Complexity = 13
                      // Dst: (VCVTPS2DQZrrbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src, (timm:{ *:[i32] }):$rc)
/*322919*/          /*Scope*/ 29, /*->322949*/
/*322920*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::CVTP2UI_RND),
/*322923*/            OPC_RecordChild0, // #1 = $src
/*322924*/            OPC_CheckChild0Type, MVT::v16f32,
/*322926*/            OPC_RecordChild1, // #2 = $rc
/*322927*/            OPC_MoveChild1,
/*322928*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*322931*/            OPC_MoveParent,
/*322932*/            OPC_MoveParent,
/*322933*/            OPC_MoveChild2,
/*322934*/            OPC_CheckImmAllZerosV,
/*322935*/            OPC_MoveParent,
/*322936*/            OPC_CheckType, MVT::v16i32,
/*322938*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*322940*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UDQZrrbkz), 0,
                          MVT::v16i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86cvtp2UIntRnd:{ *:[v16i32] } VR512:{ *:[v16f32] }:$src, (timm:{ *:[i32] }):$rc), immAllZerosV:{ *:[v16i32] }) - Complexity = 13
                      // Dst: (VCVTPS2UDQZrrbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src, (timm:{ *:[i32] }):$rc)
/*322949*/          /*Scope*/ 29, /*->322979*/
/*322950*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VALIGN),
/*322953*/            OPC_RecordChild0, // #1 = $src1
/*322954*/            OPC_RecordChild1, // #2 = $src2
/*322955*/            OPC_RecordChild2, // #3 = $src3
/*322956*/            OPC_MoveChild2,
/*322957*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*322960*/            OPC_MoveParent,
/*322961*/            OPC_MoveParent,
/*322962*/            OPC_MoveChild2,
/*322963*/            OPC_CheckImmAllZerosV,
/*322964*/            OPC_MoveParent,
/*322965*/            OPC_CheckType, MVT::v16i32,
/*322967*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*322969*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZrrikz), 0,
                          MVT::v16i32, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VAlign:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v16i32] }) - Complexity = 13
                      // Dst: (VALIGNDZrrikz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (timm:{ *:[i8] }):$src3)
/*322979*/          /*Scope*/ 29, /*->323009*/
/*322980*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::PALIGNR),
/*322983*/            OPC_RecordChild0, // #1 = $src1
/*322984*/            OPC_RecordChild1, // #2 = $src2
/*322985*/            OPC_RecordChild2, // #3 = $src3
/*322986*/            OPC_MoveChild2,
/*322987*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*322990*/            OPC_MoveParent,
/*322991*/            OPC_MoveParent,
/*322992*/            OPC_MoveChild2,
/*322993*/            OPC_CheckImmAllZerosV,
/*322994*/            OPC_MoveParent,
/*322995*/            OPC_CheckType, MVT::v16i8,
/*322997*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*322999*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPALIGNRZ128rrikz), 0,
                          MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86PAlignr:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v16i8] }) - Complexity = 13
                      // Dst: (VPALIGNRZ128rrikz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (timm:{ *:[i8] }):$src3)
/*323009*/          /*Scope*/ 29, /*->323039*/
/*323010*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::DBPSADBW),
/*323013*/            OPC_RecordChild0, // #1 = $src1
/*323014*/            OPC_RecordChild1, // #2 = $src2
/*323015*/            OPC_RecordChild2, // #3 = $src3
/*323016*/            OPC_MoveChild2,
/*323017*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*323020*/            OPC_MoveParent,
/*323021*/            OPC_MoveParent,
/*323022*/            OPC_MoveChild2,
/*323023*/            OPC_CheckImmAllZerosV,
/*323024*/            OPC_MoveParent,
/*323025*/            OPC_CheckType, MVT::v16i16,
/*323027*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*323029*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDBPSADBWZ256rrikz), 0,
                          MVT::v16i16, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86dbpsadbw:{ *:[v16i16] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v16i16] }) - Complexity = 13
                      // Dst: (VDBPSADBWZ256rrikz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (timm:{ *:[i8] }):$src3)
/*323039*/          /*Scope*/ 31, /*->323071*/
/*323040*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VPTERNLOG),
/*323043*/            OPC_RecordChild0, // #1 = $src1
/*323044*/            OPC_RecordChild1, // #2 = $src2
/*323045*/            OPC_RecordChild2, // #3 = $src3
/*323046*/            OPC_RecordChild3, // #4 = $src4
/*323047*/            OPC_MoveChild3,
/*323048*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*323051*/            OPC_MoveParent,
/*323052*/            OPC_MoveParent,
/*323053*/            OPC_MoveChild2,
/*323054*/            OPC_CheckImmAllZerosV,
/*323055*/            OPC_MoveParent,
/*323056*/            OPC_CheckType, MVT::v16i32,
/*323058*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*323060*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZrrikz), 0,
                          MVT::v16i32, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vpternlog:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3, (timm:{ *:[i8] }):$src4), immAllZerosV:{ *:[v16i32] }) - Complexity = 13
                      // Dst: (VPTERNLOGDZrrikz:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3, (timm:{ *:[i8] }):$src4)
/*323071*/          /*Scope*/ 45, /*->323117*/
/*323072*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VSHLD),
/*323075*/            OPC_RecordChild0, // #1 = $src1
/*323076*/            OPC_RecordChild1, // #2 = $src2
/*323077*/            OPC_RecordChild2, // #3 = $src3
/*323078*/            OPC_MoveChild2,
/*323079*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*323082*/            OPC_MoveParent,
/*323083*/            OPC_MoveParent,
/*323084*/            OPC_MoveChild2,
/*323085*/            OPC_CheckImmAllZerosV,
/*323086*/            OPC_MoveParent,
/*323087*/            OPC_SwitchType /*2 cases */, 12, MVT::v16i16,// ->323102
/*323090*/              OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*323092*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDWZ256rrikz), 0,
                            MVT::v16i16, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86VShld:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v16i16] }) - Complexity = 13
                        // Dst: (VPSHLDWZ256rrikz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (timm:{ *:[i8] }):$src3)
/*323102*/            /*SwitchType*/ 12, MVT::v16i32,// ->323116
/*323104*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*323106*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDDZrrikz), 0,
                            MVT::v16i32, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VShld:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v16i32] }) - Complexity = 13
                        // Dst: (VPSHLDDZrrikz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (timm:{ *:[i8] }):$src3)
/*323116*/            0, // EndSwitchType
/*323117*/          /*Scope*/ 45, /*->323163*/
/*323118*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VSHRD),
/*323121*/            OPC_RecordChild0, // #1 = $src1
/*323122*/            OPC_RecordChild1, // #2 = $src2
/*323123*/            OPC_RecordChild2, // #3 = $src3
/*323124*/            OPC_MoveChild2,
/*323125*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*323128*/            OPC_MoveParent,
/*323129*/            OPC_MoveParent,
/*323130*/            OPC_MoveChild2,
/*323131*/            OPC_CheckImmAllZerosV,
/*323132*/            OPC_MoveParent,
/*323133*/            OPC_SwitchType /*2 cases */, 12, MVT::v16i16,// ->323148
/*323136*/              OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*323138*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDWZ256rrikz), 0,
                            MVT::v16i16, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86VShrd:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v16i16] }) - Complexity = 13
                        // Dst: (VPSHRDWZ256rrikz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (timm:{ *:[i8] }):$src3)
/*323148*/            /*SwitchType*/ 12, MVT::v16i32,// ->323162
/*323150*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*323152*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDDZrrikz), 0,
                            MVT::v16i32, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VShrd:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v16i32] }) - Complexity = 13
                        // Dst: (VPSHRDDZrrikz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (timm:{ *:[i8] }):$src3)
/*323162*/            0, // EndSwitchType
/*323163*/          /*Scope*/ 29, /*->323193*/
/*323164*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::GF2P8AFFINEINVQB),
/*323167*/            OPC_RecordChild0, // #1 = $src1
/*323168*/            OPC_RecordChild1, // #2 = $src2
/*323169*/            OPC_RecordChild2, // #3 = $src3
/*323170*/            OPC_MoveChild2,
/*323171*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*323174*/            OPC_MoveParent,
/*323175*/            OPC_MoveParent,
/*323176*/            OPC_MoveChild2,
/*323177*/            OPC_CheckImmAllZerosV,
/*323178*/            OPC_MoveParent,
/*323179*/            OPC_CheckType, MVT::v16i8,
/*323181*/            OPC_CheckPatternPredicate, 180, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*323183*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEINVQBZ128rrikz), 0,
                          MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86GF2P8affineinvqb:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v16i8] }) - Complexity = 13
                      // Dst: (VGF2P8AFFINEINVQBZ128rrikz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (timm:{ *:[i8] }):$src3)
/*323193*/          /*Scope*/ 29, /*->323223*/
/*323194*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::GF2P8AFFINEQB),
/*323197*/            OPC_RecordChild0, // #1 = $src1
/*323198*/            OPC_RecordChild1, // #2 = $src2
/*323199*/            OPC_RecordChild2, // #3 = $src3
/*323200*/            OPC_MoveChild2,
/*323201*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*323204*/            OPC_MoveParent,
/*323205*/            OPC_MoveParent,
/*323206*/            OPC_MoveChild2,
/*323207*/            OPC_CheckImmAllZerosV,
/*323208*/            OPC_MoveParent,
/*323209*/            OPC_CheckType, MVT::v16i8,
/*323211*/            OPC_CheckPatternPredicate, 180, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*323213*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEQBZ128rrikz), 0,
                          MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86GF2P8affineqb:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v16i8] }) - Complexity = 13
                      // Dst: (VGF2P8AFFINEQBZ128rrikz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (timm:{ *:[i8] }):$src3)
/*323223*/          /*Scope*/ 16, /*->323240*/
/*323224*/            OPC_CheckImmAllOnesV,
/*323225*/            OPC_MoveParent,
/*323226*/            OPC_MoveChild2,
/*323227*/            OPC_CheckImmAllZerosV,
/*323228*/            OPC_MoveParent,
/*323229*/            OPC_CheckType, MVT::v16i32,
/*323231*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*323233*/            OPC_MorphNodeTo1, TARGET_VAL(X86::AVX512_512_SEXT_MASK_32), 0,
                          MVT::v16i32, 1/*#Ops*/, 0, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, immAllOnesV:{ *:[v16i32] }, immAllZerosV:{ *:[v16i32] }) - Complexity = 11
                      // Dst: (AVX512_512_SEXT_MASK_32:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask)
/*323240*/          /*Scope*/ 28|128,1/*156*/, /*->323398*/
/*323242*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST),
/*323245*/            OPC_RecordChild0, // #1 = $src
/*323246*/            OPC_Scope, 18, /*->323266*/ // 6 children in Scope
/*323248*/              OPC_CheckChild0Type, MVT::i32,
/*323250*/              OPC_MoveParent,
/*323251*/              OPC_MoveChild2,
/*323252*/              OPC_CheckImmAllZerosV,
/*323253*/              OPC_MoveParent,
/*323254*/              OPC_CheckType, MVT::v16i32,
/*323256*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*323258*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTDrZrkz), 0,
                            MVT::v16i32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VBroadcast:{ *:[v16i32] } GR32:{ *:[i32] }:$src), immAllZerosV:{ *:[v16i32] }) - Complexity = 10
                        // Dst: (VPBROADCASTDrZrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, GR32:{ *:[i32] }:$src)
/*323266*/            /*Scope*/ 18, /*->323285*/
/*323267*/              OPC_CheckChild0Type, MVT::v16i8,
/*323269*/              OPC_MoveParent,
/*323270*/              OPC_MoveChild2,
/*323271*/              OPC_CheckImmAllZerosV,
/*323272*/              OPC_MoveParent,
/*323273*/              OPC_CheckType, MVT::v16i8,
/*323275*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*323277*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTBZ128rkz), 0,
                            MVT::v16i8, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86VBroadcast:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src), immAllZerosV:{ *:[v16i8] }) - Complexity = 10
                        // Dst: (VPBROADCASTBZ128rkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*323285*/            /*Scope*/ 18, /*->323304*/
/*323286*/              OPC_CheckChild0Type, MVT::v8i16,
/*323288*/              OPC_MoveParent,
/*323289*/              OPC_MoveChild2,
/*323290*/              OPC_CheckImmAllZerosV,
/*323291*/              OPC_MoveParent,
/*323292*/              OPC_CheckType, MVT::v16i16,
/*323294*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*323296*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWZ256rkz), 0,
                            MVT::v16i16, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86VBroadcast:{ *:[v16i16] } VR128X:{ *:[v8i16] }:$src), immAllZerosV:{ *:[v16i16] }) - Complexity = 10
                        // Dst: (VPBROADCASTWZ256rkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/*323304*/            /*Scope*/ 18, /*->323323*/
/*323305*/              OPC_CheckChild0Type, MVT::v4i32,
/*323307*/              OPC_MoveParent,
/*323308*/              OPC_MoveChild2,
/*323309*/              OPC_CheckImmAllZerosV,
/*323310*/              OPC_MoveParent,
/*323311*/              OPC_CheckType, MVT::v16i32,
/*323313*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*323315*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTDZrkz), 0,
                            MVT::v16i32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VBroadcast:{ *:[v16i32] } VR128X:{ *:[v4i32] }:$src), immAllZerosV:{ *:[v16i32] }) - Complexity = 10
                        // Dst: (VPBROADCASTDZrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*323323*/            /*Scope*/ 36, /*->323360*/
/*323324*/              OPC_CheckChild0Type, MVT::i8,
/*323326*/              OPC_MoveParent,
/*323327*/              OPC_MoveChild2,
/*323328*/              OPC_CheckImmAllZerosV,
/*323329*/              OPC_MoveParent,
/*323330*/              OPC_CheckType, MVT::v16i8,
/*323332*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*323334*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::i32, 0/*#Ops*/,  // Results = #2
/*323340*/              OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*323343*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::i32, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/*323352*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTBrZ128rkz), 0,
                            MVT::v16i8, 2/*#Ops*/, 0, 4, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86VBroadcast:{ *:[v16i8] } GR8:{ *:[i8] }:$src), immAllZerosV:{ *:[v16i8] }) - Complexity = 10
                        // Dst: (VPBROADCASTBrZ128rkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$src, sub_8bit:{ *:[i32] }))
/*323360*/            /*Scope*/ 36, /*->323397*/
/*323361*/              OPC_CheckChild0Type, MVT::i16,
/*323363*/              OPC_MoveParent,
/*323364*/              OPC_MoveChild2,
/*323365*/              OPC_CheckImmAllZerosV,
/*323366*/              OPC_MoveParent,
/*323367*/              OPC_CheckType, MVT::v16i16,
/*323369*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*323371*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::i32, 0/*#Ops*/,  // Results = #2
/*323377*/              OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*323380*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::i32, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/*323389*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWrZ256rkz), 0,
                            MVT::v16i16, 2/*#Ops*/, 0, 4, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86VBroadcast:{ *:[v16i16] } GR16:{ *:[i16] }:$src), immAllZerosV:{ *:[v16i16] }) - Complexity = 10
                        // Dst: (VPBROADCASTWrZ256rkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR16:{ *:[i16] }:$src, sub_16bit:{ *:[i32] }))
/*323397*/            0, /*End of Scope*/
/*323398*/          /*Scope*/ 54, /*->323453*/
/*323399*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VPERMV3),
/*323402*/            OPC_RecordChild0, // #1 = $src1
/*323403*/            OPC_RecordChild1, // #2 = $src2
/*323404*/            OPC_RecordChild2, // #3 = $src3
/*323405*/            OPC_MoveParent,
/*323406*/            OPC_MoveChild2,
/*323407*/            OPC_CheckImmAllZerosV,
/*323408*/            OPC_MoveParent,
/*323409*/            OPC_SwitchType /*3 cases */, 12, MVT::v16i32,// ->323424
/*323412*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*323414*/              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), immAllZerosV:{ *:[v16i32] }) - Complexity = 10
                        // Dst: (VPERMT2Drrkz:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3)
/*323424*/            /*SwitchType*/ 12, MVT::v16i16,// ->323438
/*323426*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*323428*/              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), immAllZerosV:{ *:[v16i16] }) - Complexity = 10
                        // Dst: (VPERMT2W256rrkz:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src2, VR256X:{ *:[v16i16] }:$src3)
/*323438*/            /*SwitchType*/ 12, MVT::v16i8,// ->323452
/*323440*/              OPC_CheckPatternPredicate, 181, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*323442*/              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), immAllZerosV:{ *:[v16i8] }) - Complexity = 10
                        // Dst: (VPERMT2B128rrkz:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src2, VR128X:{ *:[v16i8] }:$src3)
/*323452*/            0, // EndSwitchType
/*323453*/          /*Scope*/ 50, /*->323504*/
/*323454*/            OPC_CheckOpcode, TARGET_VAL(ISD::ADD),
/*323457*/            OPC_RecordChild0, // #1 = $src1
/*323458*/            OPC_RecordChild1, // #2 = $src2
/*323459*/            OPC_MoveParent,
/*323460*/            OPC_MoveChild2,
/*323461*/            OPC_CheckImmAllZerosV,
/*323462*/            OPC_MoveParent,
/*323463*/            OPC_SwitchType /*3 cases */, 11, MVT::v16i32,// ->323477
/*323466*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*323468*/              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), immAllZerosV:{ *:[v16i32] }) - Complexity = 10
                        // Dst: (VPADDDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*323477*/            /*SwitchType*/ 11, MVT::v16i16,// ->323490
/*323479*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*323481*/              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), immAllZerosV:{ *:[v16i16] }) - Complexity = 10
                        // Dst: (VPADDWZ256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*323490*/            /*SwitchType*/ 11, MVT::v16i8,// ->323503
/*323492*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*323494*/              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), immAllZerosV:{ *:[v16i8] }) - Complexity = 10
                        // Dst: (VPADDBZ128rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*323503*/            0, // EndSwitchType
/*323504*/          /*Scope*/ 50, /*->323555*/
/*323505*/            OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
/*323508*/            OPC_RecordChild0, // #1 = $src1
/*323509*/            OPC_RecordChild1, // #2 = $src2
/*323510*/            OPC_MoveParent,
/*323511*/            OPC_MoveChild2,
/*323512*/            OPC_CheckImmAllZerosV,
/*323513*/            OPC_MoveParent,
/*323514*/            OPC_SwitchType /*3 cases */, 11, MVT::v16i32,// ->323528
/*323517*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*323519*/              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), immAllZerosV:{ *:[v16i32] }) - Complexity = 10
                        // Dst: (VPSUBDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*323528*/            /*SwitchType*/ 11, MVT::v16i16,// ->323541
/*323530*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*323532*/              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), immAllZerosV:{ *:[v16i16] }) - Complexity = 10
                        // Dst: (VPSUBWZ256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*323541*/            /*SwitchType*/ 11, MVT::v16i8,// ->323554
/*323543*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*323545*/              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), immAllZerosV:{ *:[v16i8] }) - Complexity = 10
                        // Dst: (VPSUBBZ128rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*323554*/            0, // EndSwitchType
/*323555*/          /*Scope*/ 37, /*->323593*/
/*323556*/            OPC_CheckOpcode, TARGET_VAL(ISD::SADDSAT),
/*323559*/            OPC_RecordChild0, // #1 = $src1
/*323560*/            OPC_RecordChild1, // #2 = $src2
/*323561*/            OPC_MoveParent,
/*323562*/            OPC_MoveChild2,
/*323563*/            OPC_CheckImmAllZerosV,
/*323564*/            OPC_MoveParent,
/*323565*/            OPC_SwitchType /*2 cases */, 11, MVT::v16i16,// ->323579
/*323568*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*323570*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSWZ256rrkz), 0,
                            MVT::v16i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (saddsat:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2), immAllZerosV:{ *:[v16i16] }) - Complexity = 10
                        // Dst: (VPADDSWZ256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*323579*/            /*SwitchType*/ 11, MVT::v16i8,// ->323592
/*323581*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*323583*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSBZ128rrkz), 0,
                            MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (saddsat:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2), immAllZerosV:{ *:[v16i8] }) - Complexity = 10
                        // Dst: (VPADDSBZ128rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*323592*/            0, // EndSwitchType
/*323593*/          /*Scope*/ 37, /*->323631*/
/*323594*/            OPC_CheckOpcode, TARGET_VAL(ISD::SSUBSAT),
/*323597*/            OPC_RecordChild0, // #1 = $src1
/*323598*/            OPC_RecordChild1, // #2 = $src2
/*323599*/            OPC_MoveParent,
/*323600*/            OPC_MoveChild2,
/*323601*/            OPC_CheckImmAllZerosV,
/*323602*/            OPC_MoveParent,
/*323603*/            OPC_SwitchType /*2 cases */, 11, MVT::v16i16,// ->323617
/*323606*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*323608*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSWZ256rrkz), 0,
                            MVT::v16i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (ssubsat:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2), immAllZerosV:{ *:[v16i16] }) - Complexity = 10
                        // Dst: (VPSUBSWZ256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*323617*/            /*SwitchType*/ 11, MVT::v16i8,// ->323630
/*323619*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*323621*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSBZ128rrkz), 0,
                            MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (ssubsat:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2), immAllZerosV:{ *:[v16i8] }) - Complexity = 10
                        // Dst: (VPSUBSBZ128rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*323630*/            0, // EndSwitchType
/*323631*/          /*Scope*/ 37, /*->323669*/
/*323632*/            OPC_CheckOpcode, TARGET_VAL(ISD::UADDSAT),
/*323635*/            OPC_RecordChild0, // #1 = $src1
/*323636*/            OPC_RecordChild1, // #2 = $src2
/*323637*/            OPC_MoveParent,
/*323638*/            OPC_MoveChild2,
/*323639*/            OPC_CheckImmAllZerosV,
/*323640*/            OPC_MoveParent,
/*323641*/            OPC_SwitchType /*2 cases */, 11, MVT::v16i16,// ->323655
/*323644*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*323646*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSWZ256rrkz), 0,
                            MVT::v16i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (uaddsat:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2), immAllZerosV:{ *:[v16i16] }) - Complexity = 10
                        // Dst: (VPADDUSWZ256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*323655*/            /*SwitchType*/ 11, MVT::v16i8,// ->323668
/*323657*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*323659*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSBZ128rrkz), 0,
                            MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (uaddsat:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2), immAllZerosV:{ *:[v16i8] }) - Complexity = 10
                        // Dst: (VPADDUSBZ128rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*323668*/            0, // EndSwitchType
/*323669*/          /*Scope*/ 37, /*->323707*/
/*323670*/            OPC_CheckOpcode, TARGET_VAL(ISD::USUBSAT),
/*323673*/            OPC_RecordChild0, // #1 = $src1
/*323674*/            OPC_RecordChild1, // #2 = $src2
/*323675*/            OPC_MoveParent,
/*323676*/            OPC_MoveChild2,
/*323677*/            OPC_CheckImmAllZerosV,
/*323678*/            OPC_MoveParent,
/*323679*/            OPC_SwitchType /*2 cases */, 11, MVT::v16i16,// ->323693
/*323682*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*323684*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSWZ256rrkz), 0,
                            MVT::v16i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (usubsat:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2), immAllZerosV:{ *:[v16i16] }) - Complexity = 10
                        // Dst: (VPSUBUSWZ256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*323693*/            /*SwitchType*/ 11, MVT::v16i8,// ->323706
/*323695*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*323697*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSBZ128rrkz), 0,
                            MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (usubsat:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2), immAllZerosV:{ *:[v16i8] }) - Complexity = 10
                        // Dst: (VPSUBUSBZ128rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*323706*/            0, // EndSwitchType
/*323707*/          /*Scope*/ 37, /*->323745*/
/*323708*/            OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
/*323711*/            OPC_RecordChild0, // #1 = $src1
/*323712*/            OPC_RecordChild1, // #2 = $src2
/*323713*/            OPC_MoveParent,
/*323714*/            OPC_MoveChild2,
/*323715*/            OPC_CheckImmAllZerosV,
/*323716*/            OPC_MoveParent,
/*323717*/            OPC_SwitchType /*2 cases */, 11, MVT::v16i32,// ->323731
/*323720*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*323722*/              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), immAllZerosV:{ *:[v16i32] }) - Complexity = 10
                        // Dst: (VPMULLDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*323731*/            /*SwitchType*/ 11, MVT::v16i16,// ->323744
/*323733*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*323735*/              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), immAllZerosV:{ *:[v16i16] }) - Complexity = 10
                        // Dst: (VPMULLWZ256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*323744*/            0, // EndSwitchType
/*323745*/          /*Scope*/ 22, /*->323768*/
/*323746*/            OPC_CheckOpcode, TARGET_VAL(ISD::MULHS),
/*323749*/            OPC_RecordChild0, // #1 = $src1
/*323750*/            OPC_RecordChild1, // #2 = $src2
/*323751*/            OPC_MoveParent,
/*323752*/            OPC_MoveChild2,
/*323753*/            OPC_CheckImmAllZerosV,
/*323754*/            OPC_MoveParent,
/*323755*/            OPC_CheckType, MVT::v16i16,
/*323757*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*323759*/            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), immAllZerosV:{ *:[v16i16] }) - Complexity = 10
                      // Dst: (VPMULHWZ256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*323768*/          /*Scope*/ 22, /*->323791*/
/*323769*/            OPC_CheckOpcode, TARGET_VAL(ISD::MULHU),
/*323772*/            OPC_RecordChild0, // #1 = $src1
/*323773*/            OPC_RecordChild1, // #2 = $src2
/*323774*/            OPC_MoveParent,
/*323775*/            OPC_MoveChild2,
/*323776*/            OPC_CheckImmAllZerosV,
/*323777*/            OPC_MoveParent,
/*323778*/            OPC_CheckType, MVT::v16i16,
/*323780*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*323782*/            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), immAllZerosV:{ *:[v16i16] }) - Complexity = 10
                      // Dst: (VPMULHUWZ256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*323791*/          /*Scope*/ 22, /*->323814*/
/*323792*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::MULHRS),
/*323795*/            OPC_RecordChild0, // #1 = $src1
/*323796*/            OPC_RecordChild1, // #2 = $src2
/*323797*/            OPC_MoveParent,
/*323798*/            OPC_MoveChild2,
/*323799*/            OPC_CheckImmAllZerosV,
/*323800*/            OPC_MoveParent,
/*323801*/            OPC_CheckType, MVT::v16i16,
/*323803*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*323805*/            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), immAllZerosV:{ *:[v16i16] }) - Complexity = 10
                      // Dst: (VPMULHRSWZ256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*323814*/          /*Scope*/ 37, /*->323852*/
/*323815*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::AVG),
/*323818*/            OPC_RecordChild0, // #1 = $src1
/*323819*/            OPC_RecordChild1, // #2 = $src2
/*323820*/            OPC_MoveParent,
/*323821*/            OPC_MoveChild2,
/*323822*/            OPC_CheckImmAllZerosV,
/*323823*/            OPC_MoveParent,
/*323824*/            OPC_SwitchType /*2 cases */, 11, MVT::v16i16,// ->323838
/*323827*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*323829*/              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), immAllZerosV:{ *:[v16i16] }) - Complexity = 10
                        // Dst: (VPAVGWZ256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*323838*/            /*SwitchType*/ 11, MVT::v16i8,// ->323851
/*323840*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*323842*/              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), immAllZerosV:{ *:[v16i8] }) - Complexity = 10
                        // Dst: (VPAVGBZ128rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*323851*/            0, // EndSwitchType
/*323852*/          /*Scope*/ 24, /*->323877*/
/*323853*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::MULTISHIFT),
/*323856*/            OPC_RecordChild0, // #1 = $src1
/*323857*/            OPC_CheckChild0Type, MVT::v16i8,
/*323859*/            OPC_RecordChild1, // #2 = $src2
/*323860*/            OPC_MoveParent,
/*323861*/            OPC_MoveChild2,
/*323862*/            OPC_CheckImmAllZerosV,
/*323863*/            OPC_MoveParent,
/*323864*/            OPC_CheckType, MVT::v16i8,
/*323866*/            OPC_CheckPatternPredicate, 181, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*323868*/            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), immAllZerosV:{ *:[v16i8] }) - Complexity = 10
                      // Dst: (VPMULTISHIFTQBZ128rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*323877*/          /*Scope*/ 48, /*->323926*/
/*323878*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::PACKSS),
/*323881*/            OPC_RecordChild0, // #1 = $src1
/*323882*/            OPC_Scope, 20, /*->323904*/ // 2 children in Scope
/*323884*/              OPC_CheckChild0Type, MVT::v8i32,
/*323886*/              OPC_RecordChild1, // #2 = $src2
/*323887*/              OPC_MoveParent,
/*323888*/              OPC_MoveChild2,
/*323889*/              OPC_CheckImmAllZerosV,
/*323890*/              OPC_MoveParent,
/*323891*/              OPC_CheckType, MVT::v16i16,
/*323893*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*323895*/              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), immAllZerosV:{ *:[v16i16] }) - Complexity = 10
                        // Dst: (VPACKSSDWZ256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*323904*/            /*Scope*/ 20, /*->323925*/
/*323905*/              OPC_CheckChild0Type, MVT::v8i16,
/*323907*/              OPC_RecordChild1, // #2 = $src2
/*323908*/              OPC_MoveParent,
/*323909*/              OPC_MoveChild2,
/*323910*/              OPC_CheckImmAllZerosV,
/*323911*/              OPC_MoveParent,
/*323912*/              OPC_CheckType, MVT::v16i8,
/*323914*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*323916*/              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), immAllZerosV:{ *:[v16i8] }) - Complexity = 10
                        // Dst: (VPACKSSWBZ128rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*323925*/            0, /*End of Scope*/
/*323926*/          /*Scope*/ 48, /*->323975*/
/*323927*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::PACKUS),
/*323930*/            OPC_RecordChild0, // #1 = $src1
/*323931*/            OPC_Scope, 20, /*->323953*/ // 2 children in Scope
/*323933*/              OPC_CheckChild0Type, MVT::v8i32,
/*323935*/              OPC_RecordChild1, // #2 = $src2
/*323936*/              OPC_MoveParent,
/*323937*/              OPC_MoveChild2,
/*323938*/              OPC_CheckImmAllZerosV,
/*323939*/              OPC_MoveParent,
/*323940*/              OPC_CheckType, MVT::v16i16,
/*323942*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*323944*/              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), immAllZerosV:{ *:[v16i16] }) - Complexity = 10
                        // Dst: (VPACKUSDWZ256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*323953*/            /*Scope*/ 20, /*->323974*/
/*323954*/              OPC_CheckChild0Type, MVT::v8i16,
/*323956*/              OPC_RecordChild1, // #2 = $src2
/*323957*/              OPC_MoveParent,
/*323958*/              OPC_MoveChild2,
/*323959*/              OPC_CheckImmAllZerosV,
/*323960*/              OPC_MoveParent,
/*323961*/              OPC_CheckType, MVT::v16i8,
/*323963*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*323965*/              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), immAllZerosV:{ *:[v16i8] }) - Complexity = 10
                        // Dst: (VPACKUSWBZ128rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*323974*/            0, /*End of Scope*/
/*323975*/          /*Scope*/ 22, /*->323998*/
/*323976*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VPMADDUBSW),
/*323979*/            OPC_RecordChild0, // #1 = $src1
/*323980*/            OPC_RecordChild1, // #2 = $src2
/*323981*/            OPC_MoveParent,
/*323982*/            OPC_MoveChild2,
/*323983*/            OPC_CheckImmAllZerosV,
/*323984*/            OPC_MoveParent,
/*323985*/            OPC_CheckType, MVT::v16i16,
/*323987*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*323989*/            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), immAllZerosV:{ *:[v16i16] }) - Complexity = 10
                      // Dst: (VPMADDUBSWZ256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*323998*/          /*Scope*/ 22, /*->324021*/
/*323999*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VPMADDWD),
/*324002*/            OPC_RecordChild0, // #1 = $src1
/*324003*/            OPC_RecordChild1, // #2 = $src2
/*324004*/            OPC_MoveParent,
/*324005*/            OPC_MoveChild2,
/*324006*/            OPC_CheckImmAllZerosV,
/*324007*/            OPC_MoveParent,
/*324008*/            OPC_CheckType, MVT::v16i32,
/*324010*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*324012*/            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), immAllZerosV:{ *:[v16i32] }) - Complexity = 10
                      // Dst: (VPMADDWDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*324021*/          /*Scope*/ 50, /*->324072*/
/*324022*/            OPC_CheckOpcode, TARGET_VAL(ISD::SMAX),
/*324025*/            OPC_RecordChild0, // #1 = $src1
/*324026*/            OPC_RecordChild1, // #2 = $src2
/*324027*/            OPC_MoveParent,
/*324028*/            OPC_MoveChild2,
/*324029*/            OPC_CheckImmAllZerosV,
/*324030*/            OPC_MoveParent,
/*324031*/            OPC_SwitchType /*3 cases */, 11, MVT::v16i8,// ->324045
/*324034*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*324036*/              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), immAllZerosV:{ *:[v16i8] }) - Complexity = 10
                        // Dst: (VPMAXSBZ128rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*324045*/            /*SwitchType*/ 11, MVT::v16i16,// ->324058
/*324047*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*324049*/              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), immAllZerosV:{ *:[v16i16] }) - Complexity = 10
                        // Dst: (VPMAXSWZ256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*324058*/            /*SwitchType*/ 11, MVT::v16i32,// ->324071
/*324060*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*324062*/              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), immAllZerosV:{ *:[v16i32] }) - Complexity = 10
                        // Dst: (VPMAXSDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*324071*/            0, // EndSwitchType
/*324072*/          /*Scope*/ 50, /*->324123*/
/*324073*/            OPC_CheckOpcode, TARGET_VAL(ISD::UMAX),
/*324076*/            OPC_RecordChild0, // #1 = $src1
/*324077*/            OPC_RecordChild1, // #2 = $src2
/*324078*/            OPC_MoveParent,
/*324079*/            OPC_MoveChild2,
/*324080*/            OPC_CheckImmAllZerosV,
/*324081*/            OPC_MoveParent,
/*324082*/            OPC_SwitchType /*3 cases */, 11, MVT::v16i8,// ->324096
/*324085*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*324087*/              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), immAllZerosV:{ *:[v16i8] }) - Complexity = 10
                        // Dst: (VPMAXUBZ128rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*324096*/            /*SwitchType*/ 11, MVT::v16i16,// ->324109
/*324098*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*324100*/              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), immAllZerosV:{ *:[v16i16] }) - Complexity = 10
                        // Dst: (VPMAXUWZ256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*324109*/            /*SwitchType*/ 11, MVT::v16i32,// ->324122
/*324111*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*324113*/              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), immAllZerosV:{ *:[v16i32] }) - Complexity = 10
                        // Dst: (VPMAXUDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*324122*/            0, // EndSwitchType
/*324123*/          /*Scope*/ 50, /*->324174*/
/*324124*/            OPC_CheckOpcode, TARGET_VAL(ISD::SMIN),
/*324127*/            OPC_RecordChild0, // #1 = $src1
/*324128*/            OPC_RecordChild1, // #2 = $src2
/*324129*/            OPC_MoveParent,
/*324130*/            OPC_MoveChild2,
/*324131*/            OPC_CheckImmAllZerosV,
/*324132*/            OPC_MoveParent,
/*324133*/            OPC_SwitchType /*3 cases */, 11, MVT::v16i8,// ->324147
/*324136*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*324138*/              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), immAllZerosV:{ *:[v16i8] }) - Complexity = 10
                        // Dst: (VPMINSBZ128rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*324147*/            /*SwitchType*/ 11, MVT::v16i16,// ->324160
/*324149*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*324151*/              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), immAllZerosV:{ *:[v16i16] }) - Complexity = 10
                        // Dst: (VPMINSWZ256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*324160*/            /*SwitchType*/ 11, MVT::v16i32,// ->324173
/*324162*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*324164*/              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), immAllZerosV:{ *:[v16i32] }) - Complexity = 10
                        // Dst: (VPMINSDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*324173*/            0, // EndSwitchType
/*324174*/          /*Scope*/ 50, /*->324225*/
/*324175*/            OPC_CheckOpcode, TARGET_VAL(ISD::UMIN),
/*324178*/            OPC_RecordChild0, // #1 = $src1
/*324179*/            OPC_RecordChild1, // #2 = $src2
/*324180*/            OPC_MoveParent,
/*324181*/            OPC_MoveChild2,
/*324182*/            OPC_CheckImmAllZerosV,
/*324183*/            OPC_MoveParent,
/*324184*/            OPC_SwitchType /*3 cases */, 11, MVT::v16i8,// ->324198
/*324187*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*324189*/              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), immAllZerosV:{ *:[v16i8] }) - Complexity = 10
                        // Dst: (VPMINUBZ128rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*324198*/            /*SwitchType*/ 11, MVT::v16i16,// ->324211
/*324200*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*324202*/              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), immAllZerosV:{ *:[v16i16] }) - Complexity = 10
                        // Dst: (VPMINUWZ256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*324211*/            /*SwitchType*/ 11, MVT::v16i32,// ->324224
/*324213*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*324215*/              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), immAllZerosV:{ *:[v16i32] }) - Complexity = 10
                        // Dst: (VPMINUDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*324224*/            0, // EndSwitchType
/*324225*/          /*Scope*/ 22, /*->324248*/
/*324226*/            OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*324229*/            OPC_RecordChild0, // #1 = $src1
/*324230*/            OPC_RecordChild1, // #2 = $src2
/*324231*/            OPC_MoveParent,
/*324232*/            OPC_MoveChild2,
/*324233*/            OPC_CheckImmAllZerosV,
/*324234*/            OPC_MoveParent,
/*324235*/            OPC_CheckType, MVT::v16i32,
/*324237*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*324239*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZrrkz), 0,
                          MVT::v16i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (and:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2), immAllZerosV:{ *:[v16i32] }) - Complexity = 10
                      // Dst: (VPANDDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*324248*/          /*Scope*/ 22, /*->324271*/
/*324249*/            OPC_CheckOpcode, TARGET_VAL(ISD::OR),
/*324252*/            OPC_RecordChild0, // #1 = $src1
/*324253*/            OPC_RecordChild1, // #2 = $src2
/*324254*/            OPC_MoveParent,
/*324255*/            OPC_MoveChild2,
/*324256*/            OPC_CheckImmAllZerosV,
/*324257*/            OPC_MoveParent,
/*324258*/            OPC_CheckType, MVT::v16i32,
/*324260*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*324262*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZrrkz), 0,
                          MVT::v16i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (or:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2), immAllZerosV:{ *:[v16i32] }) - Complexity = 10
                      // Dst: (VPORDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*324271*/          /*Scope*/ 22, /*->324294*/
/*324272*/            OPC_CheckOpcode, TARGET_VAL(ISD::XOR),
/*324275*/            OPC_RecordChild0, // #1 = $src1
/*324276*/            OPC_RecordChild1, // #2 = $src2
/*324277*/            OPC_MoveParent,
/*324278*/            OPC_MoveChild2,
/*324279*/            OPC_CheckImmAllZerosV,
/*324280*/            OPC_MoveParent,
/*324281*/            OPC_CheckType, MVT::v16i32,
/*324283*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*324285*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZrrkz), 0,
                          MVT::v16i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (xor:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2), immAllZerosV:{ *:[v16i32] }) - Complexity = 10
                      // Dst: (VPXORDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*324294*/          /*Scope*/ 22, /*->324317*/
/*324295*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::ANDNP),
/*324298*/            OPC_RecordChild0, // #1 = $src1
/*324299*/            OPC_RecordChild1, // #2 = $src2
/*324300*/            OPC_MoveParent,
/*324301*/            OPC_MoveChild2,
/*324302*/            OPC_CheckImmAllZerosV,
/*324303*/            OPC_MoveParent,
/*324304*/            OPC_CheckType, MVT::v16i32,
/*324306*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*324308*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZrrkz), 0,
                          MVT::v16i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86andnp:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2), immAllZerosV:{ *:[v16i32] }) - Complexity = 10
                      // Dst: (VPANDNDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*324317*/          /*Scope*/ 47, /*->324365*/
/*324318*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VSHL),
/*324321*/            OPC_RecordChild0, // #1 = $src1
/*324322*/            OPC_RecordChild1, // #2 = $src2
/*324323*/            OPC_Scope, 19, /*->324344*/ // 2 children in Scope
/*324325*/              OPC_CheckChild1Type, MVT::v4i32,
/*324327*/              OPC_MoveParent,
/*324328*/              OPC_MoveChild2,
/*324329*/              OPC_CheckImmAllZerosV,
/*324330*/              OPC_MoveParent,
/*324331*/              OPC_CheckType, MVT::v16i32,
/*324333*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*324335*/              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), immAllZerosV:{ *:[v16i32] }) - Complexity = 10
                        // Dst: (VPSLLDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*324344*/            /*Scope*/ 19, /*->324364*/
/*324345*/              OPC_CheckChild1Type, MVT::v8i16,
/*324347*/              OPC_MoveParent,
/*324348*/              OPC_MoveChild2,
/*324349*/              OPC_CheckImmAllZerosV,
/*324350*/              OPC_MoveParent,
/*324351*/              OPC_CheckType, MVT::v16i16,
/*324353*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*324355*/              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), immAllZerosV:{ *:[v16i16] }) - Complexity = 10
                        // Dst: (VPSLLWZ256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*324364*/            0, /*End of Scope*/
/*324365*/          /*Scope*/ 47, /*->324413*/
/*324366*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VSRA),
/*324369*/            OPC_RecordChild0, // #1 = $src1
/*324370*/            OPC_RecordChild1, // #2 = $src2
/*324371*/            OPC_Scope, 19, /*->324392*/ // 2 children in Scope
/*324373*/              OPC_CheckChild1Type, MVT::v4i32,
/*324375*/              OPC_MoveParent,
/*324376*/              OPC_MoveChild2,
/*324377*/              OPC_CheckImmAllZerosV,
/*324378*/              OPC_MoveParent,
/*324379*/              OPC_CheckType, MVT::v16i32,
/*324381*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*324383*/              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), immAllZerosV:{ *:[v16i32] }) - Complexity = 10
                        // Dst: (VPSRADZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*324392*/            /*Scope*/ 19, /*->324412*/
/*324393*/              OPC_CheckChild1Type, MVT::v8i16,
/*324395*/              OPC_MoveParent,
/*324396*/              OPC_MoveChild2,
/*324397*/              OPC_CheckImmAllZerosV,
/*324398*/              OPC_MoveParent,
/*324399*/              OPC_CheckType, MVT::v16i16,
/*324401*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*324403*/              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), immAllZerosV:{ *:[v16i16] }) - Complexity = 10
                        // Dst: (VPSRAWZ256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*324412*/            0, /*End of Scope*/
/*324413*/          /*Scope*/ 47, /*->324461*/
/*324414*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VSRL),
/*324417*/            OPC_RecordChild0, // #1 = $src1
/*324418*/            OPC_RecordChild1, // #2 = $src2
/*324419*/            OPC_Scope, 19, /*->324440*/ // 2 children in Scope
/*324421*/              OPC_CheckChild1Type, MVT::v4i32,
/*324423*/              OPC_MoveParent,
/*324424*/              OPC_MoveChild2,
/*324425*/              OPC_CheckImmAllZerosV,
/*324426*/              OPC_MoveParent,
/*324427*/              OPC_CheckType, MVT::v16i32,
/*324429*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*324431*/              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), immAllZerosV:{ *:[v16i32] }) - Complexity = 10
                        // Dst: (VPSRLDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*324440*/            /*Scope*/ 19, /*->324460*/
/*324441*/              OPC_CheckChild1Type, MVT::v8i16,
/*324443*/              OPC_MoveParent,
/*324444*/              OPC_MoveChild2,
/*324445*/              OPC_CheckImmAllZerosV,
/*324446*/              OPC_MoveParent,
/*324447*/              OPC_CheckType, MVT::v16i16,
/*324449*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*324451*/              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), immAllZerosV:{ *:[v16i16] }) - Complexity = 10
                        // Dst: (VPSRLWZ256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*324460*/            0, /*End of Scope*/
/*324461*/          /*Scope*/ 37, /*->324499*/
/*324462*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VSHLV),
/*324465*/            OPC_RecordChild0, // #1 = $src1
/*324466*/            OPC_RecordChild1, // #2 = $src2
/*324467*/            OPC_MoveParent,
/*324468*/            OPC_MoveChild2,
/*324469*/            OPC_CheckImmAllZerosV,
/*324470*/            OPC_MoveParent,
/*324471*/            OPC_SwitchType /*2 cases */, 11, MVT::v16i32,// ->324485
/*324474*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*324476*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVDZrrkz), 0,
                            MVT::v16i32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vshlv:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2), immAllZerosV:{ *:[v16i32] }) - Complexity = 10
                        // Dst: (VPSLLVDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*324485*/            /*SwitchType*/ 11, MVT::v16i16,// ->324498
/*324487*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*324489*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVWZ256rrkz), 0,
                            MVT::v16i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86vshlv:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2), immAllZerosV:{ *:[v16i16] }) - Complexity = 10
                        // Dst: (VPSLLVWZ256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*324498*/            0, // EndSwitchType
/*324499*/          /*Scope*/ 37, /*->324537*/
/*324500*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VSRAV),
/*324503*/            OPC_RecordChild0, // #1 = $src1
/*324504*/            OPC_RecordChild1, // #2 = $src2
/*324505*/            OPC_MoveParent,
/*324506*/            OPC_MoveChild2,
/*324507*/            OPC_CheckImmAllZerosV,
/*324508*/            OPC_MoveParent,
/*324509*/            OPC_SwitchType /*2 cases */, 11, MVT::v16i32,// ->324523
/*324512*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*324514*/              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), immAllZerosV:{ *:[v16i32] }) - Complexity = 10
                        // Dst: (VPSRAVDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*324523*/            /*SwitchType*/ 11, MVT::v16i16,// ->324536
/*324525*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*324527*/              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), immAllZerosV:{ *:[v16i16] }) - Complexity = 10
                        // Dst: (VPSRAVWZ256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*324536*/            0, // EndSwitchType
/*324537*/          /*Scope*/ 37, /*->324575*/
/*324538*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VSRLV),
/*324541*/            OPC_RecordChild0, // #1 = $src1
/*324542*/            OPC_RecordChild1, // #2 = $src2
/*324543*/            OPC_MoveParent,
/*324544*/            OPC_MoveChild2,
/*324545*/            OPC_CheckImmAllZerosV,
/*324546*/            OPC_MoveParent,
/*324547*/            OPC_SwitchType /*2 cases */, 11, MVT::v16i32,// ->324561
/*324550*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*324552*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVDZrrkz), 0,
                            MVT::v16i32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vsrlv:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2), immAllZerosV:{ *:[v16i32] }) - Complexity = 10
                        // Dst: (VPSRLVDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*324561*/            /*SwitchType*/ 11, MVT::v16i16,// ->324574
/*324563*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*324565*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVWZ256rrkz), 0,
                            MVT::v16i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86vsrlv:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2), immAllZerosV:{ *:[v16i16] }) - Complexity = 10
                        // Dst: (VPSRLVWZ256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*324574*/            0, // EndSwitchType
/*324575*/          /*Scope*/ 24, /*->324600*/
/*324576*/            OPC_CheckOpcode, TARGET_VAL(ISD::ROTR),
/*324579*/            OPC_RecordChild0, // #1 = $src1
/*324580*/            OPC_RecordChild1, // #2 = $src2
/*324581*/            OPC_CheckChild1Type, MVT::v16i32,
/*324583*/            OPC_MoveParent,
/*324584*/            OPC_MoveChild2,
/*324585*/            OPC_CheckImmAllZerosV,
/*324586*/            OPC_MoveParent,
/*324587*/            OPC_CheckType, MVT::v16i32,
/*324589*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*324591*/            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), immAllZerosV:{ *:[v16i32] }) - Complexity = 10
                      // Dst: (VPRORVDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*324600*/          /*Scope*/ 24, /*->324625*/
/*324601*/            OPC_CheckOpcode, TARGET_VAL(ISD::ROTL),
/*324604*/            OPC_RecordChild0, // #1 = $src1
/*324605*/            OPC_RecordChild1, // #2 = $src2
/*324606*/            OPC_CheckChild1Type, MVT::v16i32,
/*324608*/            OPC_MoveParent,
/*324609*/            OPC_MoveChild2,
/*324610*/            OPC_CheckImmAllZerosV,
/*324611*/            OPC_MoveParent,
/*324612*/            OPC_CheckType, MVT::v16i32,
/*324614*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*324616*/            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), immAllZerosV:{ *:[v16i32] }) - Complexity = 10
                      // Dst: (VPROLVDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*324625*/          /*Scope*/ 50, /*->324676*/
/*324626*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VPERMV),
/*324629*/            OPC_RecordChild0, // #1 = $src1
/*324630*/            OPC_RecordChild1, // #2 = $src2
/*324631*/            OPC_MoveParent,
/*324632*/            OPC_MoveChild2,
/*324633*/            OPC_CheckImmAllZerosV,
/*324634*/            OPC_MoveParent,
/*324635*/            OPC_SwitchType /*3 cases */, 11, MVT::v16i16,// ->324649
/*324638*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*324640*/              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), immAllZerosV:{ *:[v16i16] }) - Complexity = 10
                        // Dst: (VPERMWZ256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*324649*/            /*SwitchType*/ 11, MVT::v16i8,// ->324662
/*324651*/              OPC_CheckPatternPredicate, 181, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*324653*/              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), immAllZerosV:{ *:[v16i8] }) - Complexity = 10
                        // Dst: (VPERMBZ128rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*324662*/            /*SwitchType*/ 11, MVT::v16i32,// ->324675
/*324664*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*324666*/              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), immAllZerosV:{ *:[v16i32] }) - Complexity = 10
                        // Dst: (VPERMDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*324675*/            0, // EndSwitchType
/*324676*/          /*Scope*/ 22, /*->324699*/
/*324677*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::PSHUFB),
/*324680*/            OPC_RecordChild0, // #1 = $src1
/*324681*/            OPC_RecordChild1, // #2 = $src2
/*324682*/            OPC_MoveParent,
/*324683*/            OPC_MoveChild2,
/*324684*/            OPC_CheckImmAllZerosV,
/*324685*/            OPC_MoveParent,
/*324686*/            OPC_CheckType, MVT::v16i8,
/*324688*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*324690*/            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), immAllZerosV:{ *:[v16i8] }) - Complexity = 10
                      // Dst: (VPSHUFBZ128rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*324699*/          /*Scope*/ 25, /*->324725*/
/*324700*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::STRICT_CVTTP2SI),
/*324703*/            OPC_RecordNode, // #1 = 'X86strict_cvttp2si' chained node
/*324704*/            OPC_CheckFoldableChainNode,
/*324705*/            OPC_RecordChild1, // #2 = $src
/*324706*/            OPC_CheckChild1Type, MVT::v16f32,
/*324708*/            OPC_MoveParent,
/*324709*/            OPC_MoveChild2,
/*324710*/            OPC_CheckImmAllZerosV,
/*324711*/            OPC_MoveParent,
/*324712*/            OPC_CheckType, MVT::v16i32,
/*324714*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*324716*/            OPC_EmitMergeInputChains1_1,
/*324717*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZrrkz), 0|OPFL_Chain,
                          MVT::v16i32, 2/*#Ops*/, 0, 2, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86strict_cvttp2si:{ *:[v16i32] } VR512:{ *:[v16f32] }:$src), immAllZerosV:{ *:[v16i32] }) - Complexity = 10
                      // Dst: (VCVTTPS2DQZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*324725*/          /*Scope*/ 22, /*->324748*/
/*324726*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::CVTTP2SI),
/*324729*/            OPC_RecordChild0, // #1 = $src
/*324730*/            OPC_CheckChild0Type, MVT::v16f32,
/*324732*/            OPC_MoveParent,
/*324733*/            OPC_MoveChild2,
/*324734*/            OPC_CheckImmAllZerosV,
/*324735*/            OPC_MoveParent,
/*324736*/            OPC_CheckType, MVT::v16i32,
/*324738*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*324740*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZrrkz), 0,
                          MVT::v16i32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86cvttp2si:{ *:[v16i32] } VR512:{ *:[v16f32] }:$src), immAllZerosV:{ *:[v16i32] }) - Complexity = 10
                      // Dst: (VCVTTPS2DQZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*324748*/          /*Scope*/ 22, /*->324771*/
/*324749*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::CVTTP2SI_SAE),
/*324752*/            OPC_RecordChild0, // #1 = $src
/*324753*/            OPC_CheckChild0Type, MVT::v16f32,
/*324755*/            OPC_MoveParent,
/*324756*/            OPC_MoveChild2,
/*324757*/            OPC_CheckImmAllZerosV,
/*324758*/            OPC_MoveParent,
/*324759*/            OPC_CheckType, MVT::v16i32,
/*324761*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*324763*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZrrbkz), 0,
                          MVT::v16i32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86cvttp2siSAE:{ *:[v16i32] } VR512:{ *:[v16f32] }:$src), immAllZerosV:{ *:[v16i32] }) - Complexity = 10
                      // Dst: (VCVTTPS2DQZrrbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*324771*/          /*Scope*/ 25, /*->324797*/
/*324772*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::STRICT_CVTTP2UI),
/*324775*/            OPC_RecordNode, // #1 = 'X86strict_cvttp2ui' chained node
/*324776*/            OPC_CheckFoldableChainNode,
/*324777*/            OPC_RecordChild1, // #2 = $src
/*324778*/            OPC_CheckChild1Type, MVT::v16f32,
/*324780*/            OPC_MoveParent,
/*324781*/            OPC_MoveChild2,
/*324782*/            OPC_CheckImmAllZerosV,
/*324783*/            OPC_MoveParent,
/*324784*/            OPC_CheckType, MVT::v16i32,
/*324786*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*324788*/            OPC_EmitMergeInputChains1_1,
/*324789*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZrrkz), 0|OPFL_Chain,
                          MVT::v16i32, 2/*#Ops*/, 0, 2, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86strict_cvttp2ui:{ *:[v16i32] } VR512:{ *:[v16f32] }:$src), immAllZerosV:{ *:[v16i32] }) - Complexity = 10
                      // Dst: (VCVTTPS2UDQZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*324797*/          /*Scope*/ 22, /*->324820*/
/*324798*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::CVTTP2UI),
/*324801*/            OPC_RecordChild0, // #1 = $src
/*324802*/            OPC_CheckChild0Type, MVT::v16f32,
/*324804*/            OPC_MoveParent,
/*324805*/            OPC_MoveChild2,
/*324806*/            OPC_CheckImmAllZerosV,
/*324807*/            OPC_MoveParent,
/*324808*/            OPC_CheckType, MVT::v16i32,
/*324810*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*324812*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZrrkz), 0,
                          MVT::v16i32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86cvttp2ui:{ *:[v16i32] } VR512:{ *:[v16f32] }:$src), immAllZerosV:{ *:[v16i32] }) - Complexity = 10
                      // Dst: (VCVTTPS2UDQZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*324820*/          /*Scope*/ 22, /*->324843*/
/*324821*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::CVTTP2UI_SAE),
/*324824*/            OPC_RecordChild0, // #1 = $src
/*324825*/            OPC_CheckChild0Type, MVT::v16f32,
/*324827*/            OPC_MoveParent,
/*324828*/            OPC_MoveChild2,
/*324829*/            OPC_CheckImmAllZerosV,
/*324830*/            OPC_MoveParent,
/*324831*/            OPC_CheckType, MVT::v16i32,
/*324833*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*324835*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZrrbkz), 0,
                          MVT::v16i32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86cvttp2uiSAE:{ *:[v16i32] } VR512:{ *:[v16f32] }:$src), immAllZerosV:{ *:[v16i32] }) - Complexity = 10
                      // Dst: (VCVTTPS2UDQZrrbkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*324843*/          /*Scope*/ 22, /*->324866*/
/*324844*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::CVTP2SI),
/*324847*/            OPC_RecordChild0, // #1 = $src
/*324848*/            OPC_CheckChild0Type, MVT::v16f32,
/*324850*/            OPC_MoveParent,
/*324851*/            OPC_MoveChild2,
/*324852*/            OPC_CheckImmAllZerosV,
/*324853*/            OPC_MoveParent,
/*324854*/            OPC_CheckType, MVT::v16i32,
/*324856*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*324858*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2DQZrrkz), 0,
                          MVT::v16i32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86cvtp2Int:{ *:[v16i32] } VR512:{ *:[v16f32] }:$src), immAllZerosV:{ *:[v16i32] }) - Complexity = 10
                      // Dst: (VCVTPS2DQZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*324866*/          /*Scope*/ 22, /*->324889*/
/*324867*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::CVTP2UI),
/*324870*/            OPC_RecordChild0, // #1 = $src
/*324871*/            OPC_CheckChild0Type, MVT::v16f32,
/*324873*/            OPC_MoveParent,
/*324874*/            OPC_MoveChild2,
/*324875*/            OPC_CheckImmAllZerosV,
/*324876*/            OPC_MoveParent,
/*324877*/            OPC_CheckType, MVT::v16i32,
/*324879*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*324881*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UDQZrrkz), 0,
                          MVT::v16i32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86cvtp2UInt:{ *:[v16i32] } VR512:{ *:[v16f32] }:$src), immAllZerosV:{ *:[v16i32] }) - Complexity = 10
                      // Dst: (VCVTPS2UDQZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*324889*/          /*Scope*/ 61, /*->324951*/
/*324890*/            OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE),
/*324893*/            OPC_RecordChild0, // #1 = $src
/*324894*/            OPC_Scope, 18, /*->324914*/ // 3 children in Scope
/*324896*/              OPC_CheckChild0Type, MVT::v16i32,
/*324898*/              OPC_MoveParent,
/*324899*/              OPC_MoveChild2,
/*324900*/              OPC_CheckImmAllZerosV,
/*324901*/              OPC_MoveParent,
/*324902*/              OPC_CheckType, MVT::v16i8,
/*324904*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*324906*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVDBZrrkz), 0,
                            MVT::v16i8, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (trunc:{ *:[v16i8] } VR512:{ *:[v16i32] }:$src), immAllZerosV:{ *:[v16i8] }) - Complexity = 10
                        // Dst: (VPMOVDBZrrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)
/*324914*/            /*Scope*/ 16, /*->324931*/
/*324915*/              OPC_MoveParent,
/*324916*/              OPC_MoveChild2,
/*324917*/              OPC_CheckImmAllZerosV,
/*324918*/              OPC_MoveParent,
/*324919*/              OPC_CheckType, MVT::v16i16,
/*324921*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*324923*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVDWZrrkz), 0,
                            MVT::v16i16, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (trunc:{ *:[v16i16] } VR512:{ *:[v16i32] }:$src), immAllZerosV:{ *:[v16i16] }) - Complexity = 10
                        // Dst: (VPMOVDWZrrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)
/*324931*/            /*Scope*/ 18, /*->324950*/
/*324932*/              OPC_CheckChild0Type, MVT::v16i16,
/*324934*/              OPC_MoveParent,
/*324935*/              OPC_MoveChild2,
/*324936*/              OPC_CheckImmAllZerosV,
/*324937*/              OPC_MoveParent,
/*324938*/              OPC_CheckType, MVT::v16i8,
/*324940*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*324942*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVWBZ256rrkz), 0,
                            MVT::v16i8, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (trunc:{ *:[v16i8] } VR256X:{ *:[v16i16] }:$src), immAllZerosV:{ *:[v16i8] }) - Complexity = 10
                        // Dst: (VPMOVWBZ256rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src)
/*324950*/            0, /*End of Scope*/
/*324951*/          /*Scope*/ 58, /*->325010*/
/*324952*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VTRUNCS),
/*324955*/            OPC_RecordChild0, // #1 = $src
/*324956*/            OPC_Scope, 32, /*->324990*/ // 2 children in Scope
/*324958*/              OPC_CheckChild0Type, MVT::v16i32,
/*324960*/              OPC_MoveParent,
/*324961*/              OPC_MoveChild2,
/*324962*/              OPC_CheckImmAllZerosV,
/*324963*/              OPC_MoveParent,
/*324964*/              OPC_SwitchType /*2 cases */, 10, MVT::v16i8,// ->324977
/*324967*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*324969*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSDBZrrkz), 0,
                              MVT::v16i8, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86vtruncs:{ *:[v16i8] } VR512:{ *:[v16i32] }:$src), immAllZerosV:{ *:[v16i8] }) - Complexity = 10
                          // Dst: (VPMOVSDBZrrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)
/*324977*/              /*SwitchType*/ 10, MVT::v16i16,// ->324989
/*324979*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*324981*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSDWZrrkz), 0,
                              MVT::v16i16, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86vtruncs:{ *:[v16i16] } VR512:{ *:[v16i32] }:$src), immAllZerosV:{ *:[v16i16] }) - Complexity = 10
                          // Dst: (VPMOVSDWZrrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)
/*324989*/              0, // EndSwitchType
/*324990*/            /*Scope*/ 18, /*->325009*/
/*324991*/              OPC_CheckChild0Type, MVT::v16i16,
/*324993*/              OPC_MoveParent,
/*324994*/              OPC_MoveChild2,
/*324995*/              OPC_CheckImmAllZerosV,
/*324996*/              OPC_MoveParent,
/*324997*/              OPC_CheckType, MVT::v16i8,
/*324999*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*325001*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSWBZ256rrkz), 0,
                            MVT::v16i8, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86vtruncs:{ *:[v16i8] } VR256X:{ *:[v16i16] }:$src), immAllZerosV:{ *:[v16i8] }) - Complexity = 10
                        // Dst: (VPMOVSWBZ256rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src)
/*325009*/            0, /*End of Scope*/
/*325010*/          /*Scope*/ 58, /*->325069*/
/*325011*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VTRUNCUS),
/*325014*/            OPC_RecordChild0, // #1 = $src
/*325015*/            OPC_Scope, 32, /*->325049*/ // 2 children in Scope
/*325017*/              OPC_CheckChild0Type, MVT::v16i32,
/*325019*/              OPC_MoveParent,
/*325020*/              OPC_MoveChild2,
/*325021*/              OPC_CheckImmAllZerosV,
/*325022*/              OPC_MoveParent,
/*325023*/              OPC_SwitchType /*2 cases */, 10, MVT::v16i8,// ->325036
/*325026*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*325028*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSDBZrrkz), 0,
                              MVT::v16i8, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86vtruncus:{ *:[v16i8] } VR512:{ *:[v16i32] }:$src), immAllZerosV:{ *:[v16i8] }) - Complexity = 10
                          // Dst: (VPMOVUSDBZrrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)
/*325036*/              /*SwitchType*/ 10, MVT::v16i16,// ->325048
/*325038*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*325040*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSDWZrrkz), 0,
                              MVT::v16i16, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86vtruncus:{ *:[v16i16] } VR512:{ *:[v16i32] }:$src), immAllZerosV:{ *:[v16i16] }) - Complexity = 10
                          // Dst: (VPMOVUSDWZrrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)
/*325048*/              0, // EndSwitchType
/*325049*/            /*Scope*/ 18, /*->325068*/
/*325050*/              OPC_CheckChild0Type, MVT::v16i16,
/*325052*/              OPC_MoveParent,
/*325053*/              OPC_MoveChild2,
/*325054*/              OPC_CheckImmAllZerosV,
/*325055*/              OPC_MoveParent,
/*325056*/              OPC_CheckType, MVT::v16i8,
/*325058*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*325060*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSWBZ256rrkz), 0,
                            MVT::v16i8, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86vtruncus:{ *:[v16i8] } VR256X:{ *:[v16i16] }:$src), immAllZerosV:{ *:[v16i8] }) - Complexity = 10
                        // Dst: (VPMOVUSWBZ256rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src)
/*325068*/            0, /*End of Scope*/
/*325069*/          /*Scope*/ 58, /*->325128*/
/*325070*/            OPC_CheckOpcode, TARGET_VAL(ISD::ZERO_EXTEND),
/*325073*/            OPC_RecordChild0, // #1 = $src
/*325074*/            OPC_Scope, 32, /*->325108*/ // 2 children in Scope
/*325076*/              OPC_CheckChild0Type, MVT::v16i8,
/*325078*/              OPC_MoveParent,
/*325079*/              OPC_MoveChild2,
/*325080*/              OPC_CheckImmAllZerosV,
/*325081*/              OPC_MoveParent,
/*325082*/              OPC_SwitchType /*2 cases */, 10, MVT::v16i16,// ->325095
/*325085*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*325087*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBWZ256rrkz), 0,
                              MVT::v16i16, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (zext:{ *:[v16i16] } VR128X:{ *:[v16i8] }:$src), immAllZerosV:{ *:[v16i16] }) - Complexity = 10
                          // Dst: (VPMOVZXBWZ256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*325095*/              /*SwitchType*/ 10, MVT::v16i32,// ->325107
/*325097*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*325099*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBDZrrkz), 0,
                              MVT::v16i32, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (zext:{ *:[v16i32] } VR128X:{ *:[v16i8] }:$src), immAllZerosV:{ *:[v16i32] }) - Complexity = 10
                          // Dst: (VPMOVZXBDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*325107*/              0, // EndSwitchType
/*325108*/            /*Scope*/ 18, /*->325127*/
/*325109*/              OPC_CheckChild0Type, MVT::v16i16,
/*325111*/              OPC_MoveParent,
/*325112*/              OPC_MoveChild2,
/*325113*/              OPC_CheckImmAllZerosV,
/*325114*/              OPC_MoveParent,
/*325115*/              OPC_CheckType, MVT::v16i32,
/*325117*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*325119*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWDZrrkz), 0,
                            MVT::v16i32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (zext:{ *:[v16i32] } VR256X:{ *:[v16i16] }:$src), immAllZerosV:{ *:[v16i32] }) - Complexity = 10
                        // Dst: (VPMOVZXWDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src)
/*325127*/            0, /*End of Scope*/
/*325128*/          /*Scope*/ 58, /*->325187*/
/*325129*/            OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND),
/*325132*/            OPC_RecordChild0, // #1 = $src
/*325133*/            OPC_Scope, 32, /*->325167*/ // 2 children in Scope
/*325135*/              OPC_CheckChild0Type, MVT::v16i8,
/*325137*/              OPC_MoveParent,
/*325138*/              OPC_MoveChild2,
/*325139*/              OPC_CheckImmAllZerosV,
/*325140*/              OPC_MoveParent,
/*325141*/              OPC_SwitchType /*2 cases */, 10, MVT::v16i16,// ->325154
/*325144*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*325146*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBWZ256rrkz), 0,
                              MVT::v16i16, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (sext:{ *:[v16i16] } VR128X:{ *:[v16i8] }:$src), immAllZerosV:{ *:[v16i16] }) - Complexity = 10
                          // Dst: (VPMOVSXBWZ256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*325154*/              /*SwitchType*/ 10, MVT::v16i32,// ->325166
/*325156*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*325158*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBDZrrkz), 0,
                              MVT::v16i32, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (sext:{ *:[v16i32] } VR128X:{ *:[v16i8] }:$src), immAllZerosV:{ *:[v16i32] }) - Complexity = 10
                          // Dst: (VPMOVSXBDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*325166*/              0, // EndSwitchType
/*325167*/            /*Scope*/ 18, /*->325186*/
/*325168*/              OPC_CheckChild0Type, MVT::v16i16,
/*325170*/              OPC_MoveParent,
/*325171*/              OPC_MoveChild2,
/*325172*/              OPC_CheckImmAllZerosV,
/*325173*/              OPC_MoveParent,
/*325174*/              OPC_CheckType, MVT::v16i32,
/*325176*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*325178*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWDZrrkz), 0,
                            MVT::v16i32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (sext:{ *:[v16i32] } VR256X:{ *:[v16i16] }:$src), immAllZerosV:{ *:[v16i32] }) - Complexity = 10
                        // Dst: (VPMOVSXWDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src)
/*325186*/            0, /*End of Scope*/
/*325187*/          /*Scope*/ 46, /*->325234*/
/*325188*/            OPC_CheckOpcode, TARGET_VAL(ISD::ABS),
/*325191*/            OPC_RecordChild0, // #1 = $src1
/*325192*/            OPC_MoveParent,
/*325193*/            OPC_MoveChild2,
/*325194*/            OPC_CheckImmAllZerosV,
/*325195*/            OPC_MoveParent,
/*325196*/            OPC_SwitchType /*3 cases */, 10, MVT::v16i32,// ->325209
/*325199*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*325201*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSDZrrkz), 0,
                            MVT::v16i32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (abs:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1), immAllZerosV:{ *:[v16i32] }) - Complexity = 10
                        // Dst: (VPABSDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1)
/*325209*/            /*SwitchType*/ 10, MVT::v16i16,// ->325221
/*325211*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*325213*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSWZ256rrkz), 0,
                            MVT::v16i16, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (abs:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1), immAllZerosV:{ *:[v16i16] }) - Complexity = 10
                        // Dst: (VPABSWZ256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1)
/*325221*/            /*SwitchType*/ 10, MVT::v16i8,// ->325233
/*325223*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*325225*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSBZ128rrkz), 0,
                            MVT::v16i8, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (abs:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1), immAllZerosV:{ *:[v16i8] }) - Complexity = 10
                        // Dst: (VPABSBZ128rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1)
/*325233*/            0, // EndSwitchType
/*325234*/          /*Scope*/ 22, /*->325257*/
/*325235*/            OPC_CheckOpcode, TARGET_VAL(ISD::CTLZ),
/*325238*/            OPC_RecordChild0, // #1 = $src1
/*325239*/            OPC_CheckChild0Type, MVT::v16i32,
/*325241*/            OPC_MoveParent,
/*325242*/            OPC_MoveChild2,
/*325243*/            OPC_CheckImmAllZerosV,
/*325244*/            OPC_MoveParent,
/*325245*/            OPC_CheckType, MVT::v16i32,
/*325247*/            OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*325249*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTDZrrkz), 0,
                          MVT::v16i32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (ctlz:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1), immAllZerosV:{ *:[v16i32] }) - Complexity = 10
                      // Dst: (VPLZCNTDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1)
/*325257*/          /*Scope*/ 20, /*->325278*/
/*325258*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::CONFLICT),
/*325261*/            OPC_RecordChild0, // #1 = $src1
/*325262*/            OPC_MoveParent,
/*325263*/            OPC_MoveChild2,
/*325264*/            OPC_CheckImmAllZerosV,
/*325265*/            OPC_MoveParent,
/*325266*/            OPC_CheckType, MVT::v16i32,
/*325268*/            OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*325270*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTDZrrkz), 0,
                          MVT::v16i32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86Conflict:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1), immAllZerosV:{ *:[v16i32] }) - Complexity = 10
                      // Dst: (VPCONFLICTDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1)
/*325278*/          /*Scope*/ 63, /*->325342*/
/*325279*/            OPC_CheckOpcode, TARGET_VAL(ISD::CTPOP),
/*325282*/            OPC_RecordChild0, // #1 = $src1
/*325283*/            OPC_Scope, 18, /*->325303*/ // 3 children in Scope
/*325285*/              OPC_CheckChild0Type, MVT::v16i32,
/*325287*/              OPC_MoveParent,
/*325288*/              OPC_MoveChild2,
/*325289*/              OPC_CheckImmAllZerosV,
/*325290*/              OPC_MoveParent,
/*325291*/              OPC_CheckType, MVT::v16i32,
/*325293*/              OPC_CheckPatternPredicate, 142, // (Subtarget->hasVPOPCNTDQ())
/*325295*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTDZrrkz), 0,
                            MVT::v16i32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (ctpop:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1), immAllZerosV:{ *:[v16i32] }) - Complexity = 10
                        // Dst: (VPOPCNTDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1)
/*325303*/            /*Scope*/ 18, /*->325322*/
/*325304*/              OPC_CheckChild0Type, MVT::v16i8,
/*325306*/              OPC_MoveParent,
/*325307*/              OPC_MoveChild2,
/*325308*/              OPC_CheckImmAllZerosV,
/*325309*/              OPC_MoveParent,
/*325310*/              OPC_CheckType, MVT::v16i8,
/*325312*/              OPC_CheckPatternPredicate, 115, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/*325314*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTBZ128rrkz), 0,
                            MVT::v16i8, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (ctpop:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1), immAllZerosV:{ *:[v16i8] }) - Complexity = 10
                        // Dst: (VPOPCNTBZ128rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1)
/*325322*/            /*Scope*/ 18, /*->325341*/
/*325323*/              OPC_CheckChild0Type, MVT::v16i16,
/*325325*/              OPC_MoveParent,
/*325326*/              OPC_MoveChild2,
/*325327*/              OPC_CheckImmAllZerosV,
/*325328*/              OPC_MoveParent,
/*325329*/              OPC_CheckType, MVT::v16i16,
/*325331*/              OPC_CheckPatternPredicate, 115, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/*325333*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTWZ256rrkz), 0,
                            MVT::v16i16, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (ctpop:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1), immAllZerosV:{ *:[v16i16] }) - Complexity = 10
                        // Dst: (VPOPCNTWZ256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1)
/*325341*/            0, /*End of Scope*/
/*325342*/          /*Scope*/ 50, /*->325393*/
/*325343*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::UNPCKL),
/*325346*/            OPC_RecordChild0, // #1 = $src1
/*325347*/            OPC_RecordChild1, // #2 = $src2
/*325348*/            OPC_MoveParent,
/*325349*/            OPC_MoveChild2,
/*325350*/            OPC_CheckImmAllZerosV,
/*325351*/            OPC_MoveParent,
/*325352*/            OPC_SwitchType /*3 cases */, 11, MVT::v16i8,// ->325366
/*325355*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*325357*/              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), immAllZerosV:{ *:[v16i8] }) - Complexity = 10
                        // Dst: (VPUNPCKLBWZ128rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*325366*/            /*SwitchType*/ 11, MVT::v16i16,// ->325379
/*325368*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*325370*/              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), immAllZerosV:{ *:[v16i16] }) - Complexity = 10
                        // Dst: (VPUNPCKLWDZ256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*325379*/            /*SwitchType*/ 11, MVT::v16i32,// ->325392
/*325381*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*325383*/              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), immAllZerosV:{ *:[v16i32] }) - Complexity = 10
                        // Dst: (VPUNPCKLDQZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*325392*/            0, // EndSwitchType
/*325393*/          /*Scope*/ 50, /*->325444*/
/*325394*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::UNPCKH),
/*325397*/            OPC_RecordChild0, // #1 = $src1
/*325398*/            OPC_RecordChild1, // #2 = $src2
/*325399*/            OPC_MoveParent,
/*325400*/            OPC_MoveChild2,
/*325401*/            OPC_CheckImmAllZerosV,
/*325402*/            OPC_MoveParent,
/*325403*/            OPC_SwitchType /*3 cases */, 11, MVT::v16i8,// ->325417
/*325406*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*325408*/              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), immAllZerosV:{ *:[v16i8] }) - Complexity = 10
                        // Dst: (VPUNPCKHBWZ128rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*325417*/            /*SwitchType*/ 11, MVT::v16i16,// ->325430
/*325419*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*325421*/              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), immAllZerosV:{ *:[v16i16] }) - Complexity = 10
                        // Dst: (VPUNPCKHWDZ256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*325430*/            /*SwitchType*/ 11, MVT::v16i32,// ->325443
/*325432*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*325434*/              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), immAllZerosV:{ *:[v16i32] }) - Complexity = 10
                        // Dst: (VPUNPCKHDQZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*325443*/            0, // EndSwitchType
/*325444*/          /*Scope*/ 40, /*->325485*/
/*325445*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VSHLDV),
/*325448*/            OPC_RecordChild0, // #1 = $src1
/*325449*/            OPC_RecordChild1, // #2 = $src2
/*325450*/            OPC_RecordChild2, // #3 = $src3
/*325451*/            OPC_MoveParent,
/*325452*/            OPC_MoveChild2,
/*325453*/            OPC_CheckImmAllZerosV,
/*325454*/            OPC_MoveParent,
/*325455*/            OPC_SwitchType /*2 cases */, 12, MVT::v16i16,// ->325470
/*325458*/              OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*325460*/              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), immAllZerosV:{ *:[v16i16] }) - Complexity = 10
                        // Dst: (VPSHLDVWZ256rkz:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src2, VR256X:{ *:[v16i16] }:$src3)
/*325470*/            /*SwitchType*/ 12, MVT::v16i32,// ->325484
/*325472*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*325474*/              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), immAllZerosV:{ *:[v16i32] }) - Complexity = 10
                        // Dst: (VPSHLDVDZrkz:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3)
/*325484*/            0, // EndSwitchType
/*325485*/          /*Scope*/ 40, /*->325526*/
/*325486*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VSHRDV),
/*325489*/            OPC_RecordChild0, // #1 = $src1
/*325490*/            OPC_RecordChild1, // #2 = $src2
/*325491*/            OPC_RecordChild2, // #3 = $src3
/*325492*/            OPC_MoveParent,
/*325493*/            OPC_MoveChild2,
/*325494*/            OPC_CheckImmAllZerosV,
/*325495*/            OPC_MoveParent,
/*325496*/            OPC_SwitchType /*2 cases */, 12, MVT::v16i16,// ->325511
/*325499*/              OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*325501*/              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), immAllZerosV:{ *:[v16i16] }) - Complexity = 10
                        // Dst: (VPSHRDVWZ256rkz:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src2, VR256X:{ *:[v16i16] }:$src3)
/*325511*/            /*SwitchType*/ 12, MVT::v16i32,// ->325525
/*325513*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*325515*/              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), immAllZerosV:{ *:[v16i32] }) - Complexity = 10
                        // Dst: (VPSHRDVDZrkz:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3)
/*325525*/            0, // EndSwitchType
/*325526*/          /*Scope*/ 24, /*->325551*/
/*325527*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VPDPBUSD),
/*325530*/            OPC_RecordChild0, // #1 = $src1
/*325531*/            OPC_RecordChild1, // #2 = $src2
/*325532*/            OPC_RecordChild2, // #3 = $src3
/*325533*/            OPC_MoveParent,
/*325534*/            OPC_MoveChild2,
/*325535*/            OPC_CheckImmAllZerosV,
/*325536*/            OPC_MoveParent,
/*325537*/            OPC_CheckType, MVT::v16i32,
/*325539*/            OPC_CheckPatternPredicate, 148, // (Subtarget->hasVNNI())
/*325541*/            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), immAllZerosV:{ *:[v16i32] }) - Complexity = 10
                      // Dst: (VPDPBUSDZrkz:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3)
/*325551*/          /*Scope*/ 24, /*->325576*/
/*325552*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VPDPBUSDS),
/*325555*/            OPC_RecordChild0, // #1 = $src1
/*325556*/            OPC_RecordChild1, // #2 = $src2
/*325557*/            OPC_RecordChild2, // #3 = $src3
/*325558*/            OPC_MoveParent,
/*325559*/            OPC_MoveChild2,
/*325560*/            OPC_CheckImmAllZerosV,
/*325561*/            OPC_MoveParent,
/*325562*/            OPC_CheckType, MVT::v16i32,
/*325564*/            OPC_CheckPatternPredicate, 148, // (Subtarget->hasVNNI())
/*325566*/            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), immAllZerosV:{ *:[v16i32] }) - Complexity = 10
                      // Dst: (VPDPBUSDSZrkz:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3)
/*325576*/          /*Scope*/ 24, /*->325601*/
/*325577*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VPDPWSSD),
/*325580*/            OPC_RecordChild0, // #1 = $src1
/*325581*/            OPC_RecordChild1, // #2 = $src2
/*325582*/            OPC_RecordChild2, // #3 = $src3
/*325583*/            OPC_MoveParent,
/*325584*/            OPC_MoveChild2,
/*325585*/            OPC_CheckImmAllZerosV,
/*325586*/            OPC_MoveParent,
/*325587*/            OPC_CheckType, MVT::v16i32,
/*325589*/            OPC_CheckPatternPredicate, 148, // (Subtarget->hasVNNI())
/*325591*/            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), immAllZerosV:{ *:[v16i32] }) - Complexity = 10
                      // Dst: (VPDPWSSDZrkz:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3)
/*325601*/          /*Scope*/ 24, /*->325626*/
/*325602*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VPDPWSSDS),
/*325605*/            OPC_RecordChild0, // #1 = $src1
/*325606*/            OPC_RecordChild1, // #2 = $src2
/*325607*/            OPC_RecordChild2, // #3 = $src3
/*325608*/            OPC_MoveParent,
/*325609*/            OPC_MoveChild2,
/*325610*/            OPC_CheckImmAllZerosV,
/*325611*/            OPC_MoveParent,
/*325612*/            OPC_CheckType, MVT::v16i32,
/*325614*/            OPC_CheckPatternPredicate, 148, // (Subtarget->hasVNNI())
/*325616*/            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), immAllZerosV:{ *:[v16i32] }) - Complexity = 10
                      // Dst: (VPDPWSSDSZrkz:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3)
/*325626*/          /*Scope*/ 22, /*->325649*/
/*325627*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::GF2P8MULB),
/*325630*/            OPC_RecordChild0, // #1 = $src1
/*325631*/            OPC_RecordChild1, // #2 = $src2
/*325632*/            OPC_MoveParent,
/*325633*/            OPC_MoveChild2,
/*325634*/            OPC_CheckImmAllZerosV,
/*325635*/            OPC_MoveParent,
/*325636*/            OPC_CheckType, MVT::v16i8,
/*325638*/            OPC_CheckPatternPredicate, 180, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*325640*/            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), immAllZerosV:{ *:[v16i8] }) - Complexity = 10
                      // Dst: (VGF2P8MULBZ128rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*325649*/          /*Scope*/ 24, /*->325674*/
/*325650*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::CVTNE2PS2BF16),
/*325653*/            OPC_RecordChild0, // #1 = $src1
/*325654*/            OPC_CheckChild0Type, MVT::v8f32,
/*325656*/            OPC_RecordChild1, // #2 = $src2
/*325657*/            OPC_MoveParent,
/*325658*/            OPC_MoveChild2,
/*325659*/            OPC_CheckImmAllZerosV,
/*325660*/            OPC_MoveParent,
/*325661*/            OPC_CheckType, MVT::v16i16,
/*325663*/            OPC_CheckPatternPredicate, 182, // (Subtarget->hasBF16()) && (Subtarget->hasVLX())
/*325665*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTNE2PS2BF16Z256rrkz), 0,
                          MVT::v16i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86cvtne2ps2bf16:{ *:[v16i16] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), immAllZerosV:{ *:[v16i16] }) - Complexity = 10
                      // Dst: (VCVTNE2PS2BF16Z256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2)
/*325674*/          /*Scope*/ 22, /*->325697*/
/*325675*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::CVTNEPS2BF16),
/*325678*/            OPC_RecordChild0, // #1 = $src
/*325679*/            OPC_CheckChild0Type, MVT::v16f32,
/*325681*/            OPC_MoveParent,
/*325682*/            OPC_MoveChild2,
/*325683*/            OPC_CheckImmAllZerosV,
/*325684*/            OPC_MoveParent,
/*325685*/            OPC_CheckType, MVT::v16i16,
/*325687*/            OPC_CheckPatternPredicate, 183, // (Subtarget->hasBF16())
/*325689*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTNEPS2BF16Zrrkz), 0,
                          MVT::v16i16, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86cvtneps2bf16:{ *:[v16i16] } VR512:{ *:[v16f32] }:$src), immAllZerosV:{ *:[v16i16] }) - Complexity = 10
                      // Dst: (VCVTNEPS2BF16Zrrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*325697*/          0, /*End of Scope*/
/*325698*/        /*Scope*/ 69, /*->325768*/
/*325699*/          OPC_RecordChild1, // #1 = $src3
/*325700*/          OPC_MoveChild1,
/*325701*/          OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*325704*/          OPC_RecordChild0, // #2 = $src1
/*325705*/          OPC_RecordChild1, // #3 = $src2
/*325706*/          OPC_Scope, 29, /*->325737*/ // 2 children in Scope
/*325708*/            OPC_CheckChild1Type, MVT::v4i32,
/*325710*/            OPC_MoveChild2,
/*325711*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*325714*/            OPC_CheckType, MVT::iPTR,
/*325716*/            OPC_MoveParent,
/*325717*/            OPC_MoveParent,
/*325718*/            OPC_RecordChild2, // #4 = $src0
/*325719*/            OPC_CheckType, MVT::v16i32,
/*325721*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*325723*/            OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*325726*/            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))
/*325737*/          /*Scope*/ 29, /*->325767*/
/*325738*/            OPC_CheckChild1Type, MVT::v8i32,
/*325740*/            OPC_MoveChild2,
/*325741*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*325744*/            OPC_CheckType, MVT::iPTR,
/*325746*/            OPC_MoveParent,
/*325747*/            OPC_MoveParent,
/*325748*/            OPC_RecordChild2, // #4 = $src0
/*325749*/            OPC_CheckType, MVT::v16i32,
/*325751*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*325753*/            OPC_EmitNodeXForm, 16, 1, // INSERT_get_vinsert256_imm
/*325756*/            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))
/*325767*/          0, /*End of Scope*/
/*325768*/        /*Scope*/ 7|128,7/*903*/, /*->326673*/
/*325770*/          OPC_MoveChild1,
/*325771*/          OPC_SwitchOpcode /*19 cases */, 27|128,2/*283*/, TARGET_VAL(ISD::BITCAST),// ->326059
/*325776*/            OPC_MoveChild0,
/*325777*/            OPC_SwitchOpcode /*5 cases */, 21, TARGET_VAL(X86ISD::VBROADCAST),// ->325802
/*325781*/              OPC_RecordChild0, // #1 = $src
/*325782*/              OPC_CheckChild0Type, MVT::v2i64,
/*325784*/              OPC_CheckType, MVT::v8i64,
/*325786*/              OPC_MoveParent,
/*325787*/              OPC_MoveParent,
/*325788*/              OPC_RecordChild2, // #2 = $src0
/*325789*/              OPC_CheckType, MVT::v16i32,
/*325791*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*325793*/              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)
/*325802*/            /*SwitchOpcode*/ 61, TARGET_VAL(ISD::AND),// ->325866
/*325805*/              OPC_RecordChild0, // #1 = $src1
/*325806*/              OPC_RecordChild1, // #2 = $src2
/*325807*/              OPC_SwitchType /*3 cases */, 17, MVT::v8i64,// ->325827
/*325810*/                OPC_MoveParent,
/*325811*/                OPC_MoveParent,
/*325812*/                OPC_RecordChild2, // #3 = $src0
/*325813*/                OPC_CheckType, MVT::v16i32,
/*325815*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*325817*/                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)
/*325827*/              /*SwitchType*/ 17, MVT::v32i16,// ->325846
/*325829*/                OPC_MoveParent,
/*325830*/                OPC_MoveParent,
/*325831*/                OPC_RecordChild2, // #3 = $src0
/*325832*/                OPC_CheckType, MVT::v16i32,
/*325834*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*325836*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZrrk), 0,
                              MVT::v16i32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (and:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)), VR512:{ *:[v16i32] }:$src0) - Complexity = 9
                          // Dst: (VPANDDZrrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*325846*/              /*SwitchType*/ 17, MVT::v64i8,// ->325865
/*325848*/                OPC_MoveParent,
/*325849*/                OPC_MoveParent,
/*325850*/                OPC_RecordChild2, // #3 = $src0
/*325851*/                OPC_CheckType, MVT::v16i32,
/*325853*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*325855*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZrrk), 0,
                              MVT::v16i32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (and:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)), VR512:{ *:[v16i32] }:$src0) - Complexity = 9
                          // Dst: (VPANDDZrrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*325865*/              0, // EndSwitchType
/*325866*/            /*SwitchOpcode*/ 61, TARGET_VAL(ISD::OR),// ->325930
/*325869*/              OPC_RecordChild0, // #1 = $src1
/*325870*/              OPC_RecordChild1, // #2 = $src2
/*325871*/              OPC_SwitchType /*3 cases */, 17, MVT::v8i64,// ->325891
/*325874*/                OPC_MoveParent,
/*325875*/                OPC_MoveParent,
/*325876*/                OPC_RecordChild2, // #3 = $src0
/*325877*/                OPC_CheckType, MVT::v16i32,
/*325879*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*325881*/                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)
/*325891*/              /*SwitchType*/ 17, MVT::v32i16,// ->325910
/*325893*/                OPC_MoveParent,
/*325894*/                OPC_MoveParent,
/*325895*/                OPC_RecordChild2, // #3 = $src0
/*325896*/                OPC_CheckType, MVT::v16i32,
/*325898*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*325900*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZrrk), 0,
                              MVT::v16i32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (or:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)), VR512:{ *:[v16i32] }:$src0) - Complexity = 9
                          // Dst: (VPORDZrrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*325910*/              /*SwitchType*/ 17, MVT::v64i8,// ->325929
/*325912*/                OPC_MoveParent,
/*325913*/                OPC_MoveParent,
/*325914*/                OPC_RecordChild2, // #3 = $src0
/*325915*/                OPC_CheckType, MVT::v16i32,
/*325917*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*325919*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZrrk), 0,
                              MVT::v16i32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (or:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)), VR512:{ *:[v16i32] }:$src0) - Complexity = 9
                          // Dst: (VPORDZrrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*325929*/              0, // EndSwitchType
/*325930*/            /*SwitchOpcode*/ 61, TARGET_VAL(ISD::XOR),// ->325994
/*325933*/              OPC_RecordChild0, // #1 = $src1
/*325934*/              OPC_RecordChild1, // #2 = $src2
/*325935*/              OPC_SwitchType /*3 cases */, 17, MVT::v8i64,// ->325955
/*325938*/                OPC_MoveParent,
/*325939*/                OPC_MoveParent,
/*325940*/                OPC_RecordChild2, // #3 = $src0
/*325941*/                OPC_CheckType, MVT::v16i32,
/*325943*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*325945*/                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)
/*325955*/              /*SwitchType*/ 17, MVT::v32i16,// ->325974
/*325957*/                OPC_MoveParent,
/*325958*/                OPC_MoveParent,
/*325959*/                OPC_RecordChild2, // #3 = $src0
/*325960*/                OPC_CheckType, MVT::v16i32,
/*325962*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*325964*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZrrk), 0,
                              MVT::v16i32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (xor:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)), VR512:{ *:[v16i32] }:$src0) - Complexity = 9
                          // Dst: (VPXORDZrrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*325974*/              /*SwitchType*/ 17, MVT::v64i8,// ->325993
/*325976*/                OPC_MoveParent,
/*325977*/                OPC_MoveParent,
/*325978*/                OPC_RecordChild2, // #3 = $src0
/*325979*/                OPC_CheckType, MVT::v16i32,
/*325981*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*325983*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZrrk), 0,
                              MVT::v16i32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (xor:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)), VR512:{ *:[v16i32] }:$src0) - Complexity = 9
                          // Dst: (VPXORDZrrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*325993*/              0, // EndSwitchType
/*325994*/            /*SwitchOpcode*/ 61, TARGET_VAL(X86ISD::ANDNP),// ->326058
/*325997*/              OPC_RecordChild0, // #1 = $src1
/*325998*/              OPC_RecordChild1, // #2 = $src2
/*325999*/              OPC_SwitchType /*3 cases */, 17, MVT::v8i64,// ->326019
/*326002*/                OPC_MoveParent,
/*326003*/                OPC_MoveParent,
/*326004*/                OPC_RecordChild2, // #3 = $src0
/*326005*/                OPC_CheckType, MVT::v16i32,
/*326007*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*326009*/                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)
/*326019*/              /*SwitchType*/ 17, MVT::v32i16,// ->326038
/*326021*/                OPC_MoveParent,
/*326022*/                OPC_MoveParent,
/*326023*/                OPC_RecordChild2, // #3 = $src0
/*326024*/                OPC_CheckType, MVT::v16i32,
/*326026*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*326028*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZrrk), 0,
                              MVT::v16i32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (X86andnp:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)), VR512:{ *:[v16i32] }:$src0) - Complexity = 9
                          // Dst: (VPANDNDZrrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*326038*/              /*SwitchType*/ 17, MVT::v64i8,// ->326057
/*326040*/                OPC_MoveParent,
/*326041*/                OPC_MoveParent,
/*326042*/                OPC_RecordChild2, // #3 = $src0
/*326043*/                OPC_CheckType, MVT::v16i32,
/*326045*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*326047*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZrrk), 0,
                              MVT::v16i32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16i32] } (X86andnp:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)), VR512:{ *:[v16i32] }:$src0) - Complexity = 9
                          // Dst: (VPANDNDZrrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*326057*/              0, // EndSwitchType
/*326058*/            0, // EndSwitchOpcode
/*326059*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VSRLI),// ->326101
/*326062*/            OPC_RecordChild0, // #1 = $src1
/*326063*/            OPC_RecordChild1, // #2 = $src2
/*326064*/            OPC_MoveChild1,
/*326065*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*326068*/            OPC_MoveParent,
/*326069*/            OPC_MoveParent,
/*326070*/            OPC_RecordChild2, // #3 = $src0
/*326071*/            OPC_SwitchType /*2 cases */, 12, MVT::v16i32,// ->326086
/*326074*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*326076*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZrik), 0,
                            MVT::v16i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vsrli:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (timm:{ *:[i8] }):$src2), VR512:{ *:[v16i32] }:$src0) - Complexity = 9
                        // Dst: (VPSRLDZrik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, (timm:{ *:[i8] }):$src2)
/*326086*/            /*SwitchType*/ 12, MVT::v16i16,// ->326100
/*326088*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*326090*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLWZ256rik), 0,
                            MVT::v16i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86vsrli:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (timm:{ *:[i8] }):$src2), VR256X:{ *:[v16i16] }:$src0) - Complexity = 9
                        // Dst: (VPSRLWZ256rik:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, (timm:{ *:[i8] }):$src2)
/*326100*/            0, // EndSwitchType
/*326101*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VSHLI),// ->326143
/*326104*/            OPC_RecordChild0, // #1 = $src1
/*326105*/            OPC_RecordChild1, // #2 = $src2
/*326106*/            OPC_MoveChild1,
/*326107*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*326110*/            OPC_MoveParent,
/*326111*/            OPC_MoveParent,
/*326112*/            OPC_RecordChild2, // #3 = $src0
/*326113*/            OPC_SwitchType /*2 cases */, 12, MVT::v16i32,// ->326128
/*326116*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*326118*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZrik), 0,
                            MVT::v16i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vshli:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (timm:{ *:[i8] }):$src2), VR512:{ *:[v16i32] }:$src0) - Complexity = 9
                        // Dst: (VPSLLDZrik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, (timm:{ *:[i8] }):$src2)
/*326128*/            /*SwitchType*/ 12, MVT::v16i16,// ->326142
/*326130*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*326132*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLWZ256rik), 0,
                            MVT::v16i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86vshli:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (timm:{ *:[i8] }):$src2), VR256X:{ *:[v16i16] }:$src0) - Complexity = 9
                        // Dst: (VPSLLWZ256rik:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, (timm:{ *:[i8] }):$src2)
/*326142*/            0, // EndSwitchType
/*326143*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VSRAI),// ->326185
/*326146*/            OPC_RecordChild0, // #1 = $src1
/*326147*/            OPC_RecordChild1, // #2 = $src2
/*326148*/            OPC_MoveChild1,
/*326149*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*326152*/            OPC_MoveParent,
/*326153*/            OPC_MoveParent,
/*326154*/            OPC_RecordChild2, // #3 = $src0
/*326155*/            OPC_SwitchType /*2 cases */, 12, MVT::v16i32,// ->326170
/*326158*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*326160*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZrik), 0,
                            MVT::v16i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vsrai:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (timm:{ *:[i8] }):$src2), VR512:{ *:[v16i32] }:$src0) - Complexity = 9
                        // Dst: (VPSRADZrik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, (timm:{ *:[i8] }):$src2)
/*326170*/            /*SwitchType*/ 12, MVT::v16i16,// ->326184
/*326172*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*326174*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAWZ256rik), 0,
                            MVT::v16i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86vsrai:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (timm:{ *:[i8] }):$src2), VR256X:{ *:[v16i16] }:$src0) - Complexity = 9
                        // Dst: (VPSRAWZ256rik:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, (timm:{ *:[i8] }):$src2)
/*326184*/            0, // EndSwitchType
/*326185*/          /*SwitchOpcode*/ 23, TARGET_VAL(X86ISD::VROTRI),// ->326211
/*326188*/            OPC_RecordChild0, // #1 = $src1
/*326189*/            OPC_RecordChild1, // #2 = $src2
/*326190*/            OPC_MoveChild1,
/*326191*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*326194*/            OPC_MoveParent,
/*326195*/            OPC_MoveParent,
/*326196*/            OPC_RecordChild2, // #3 = $src0
/*326197*/            OPC_CheckType, MVT::v16i32,
/*326199*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*326201*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORDZrik), 0,
                          MVT::v16i32, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vrotri:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (timm:{ *:[i8] }):$src2), VR512:{ *:[v16i32] }:$src0) - Complexity = 9
                      // Dst: (VPRORDZrik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, (timm:{ *:[i8] }):$src2)
/*326211*/          /*SwitchOpcode*/ 23, TARGET_VAL(X86ISD::VROTLI),// ->326237
/*326214*/            OPC_RecordChild0, // #1 = $src1
/*326215*/            OPC_RecordChild1, // #2 = $src2
/*326216*/            OPC_MoveChild1,
/*326217*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*326220*/            OPC_MoveParent,
/*326221*/            OPC_MoveParent,
/*326222*/            OPC_RecordChild2, // #3 = $src0
/*326223*/            OPC_CheckType, MVT::v16i32,
/*326225*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*326227*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLDZrik), 0,
                          MVT::v16i32, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vrotli:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (timm:{ *:[i8] }):$src2), VR512:{ *:[v16i32] }:$src0) - Complexity = 9
                      // Dst: (VPROLDZrik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, (timm:{ *:[i8] }):$src2)
/*326237*/          /*SwitchOpcode*/ 23, TARGET_VAL(X86ISD::PSHUFD),// ->326263
/*326240*/            OPC_RecordChild0, // #1 = $src1
/*326241*/            OPC_RecordChild1, // #2 = $src2
/*326242*/            OPC_MoveChild1,
/*326243*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*326246*/            OPC_MoveParent,
/*326247*/            OPC_MoveParent,
/*326248*/            OPC_RecordChild2, // #3 = $src0
/*326249*/            OPC_CheckType, MVT::v16i32,
/*326251*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*326253*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFDZrik), 0,
                          MVT::v16i32, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86PShufd:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (timm:{ *:[i8] }):$src2), VR512:{ *:[v16i32] }:$src0) - Complexity = 9
                      // Dst: (VPSHUFDZrik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, (timm:{ *:[i8] }):$src2)
/*326263*/          /*SwitchOpcode*/ 23, TARGET_VAL(X86ISD::PSHUFHW),// ->326289
/*326266*/            OPC_RecordChild0, // #1 = $src1
/*326267*/            OPC_RecordChild1, // #2 = $src2
/*326268*/            OPC_MoveChild1,
/*326269*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*326272*/            OPC_MoveParent,
/*326273*/            OPC_MoveParent,
/*326274*/            OPC_RecordChild2, // #3 = $src0
/*326275*/            OPC_CheckType, MVT::v16i16,
/*326277*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*326279*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFHWZ256rik), 0,
                          MVT::v16i16, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86PShufhw:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (timm:{ *:[i8] }):$src2), VR256X:{ *:[v16i16] }:$src0) - Complexity = 9
                      // Dst: (VPSHUFHWZ256rik:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, (timm:{ *:[i8] }):$src2)
/*326289*/          /*SwitchOpcode*/ 23, TARGET_VAL(X86ISD::PSHUFLW),// ->326315
/*326292*/            OPC_RecordChild0, // #1 = $src1
/*326293*/            OPC_RecordChild1, // #2 = $src2
/*326294*/            OPC_MoveChild1,
/*326295*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*326298*/            OPC_MoveParent,
/*326299*/            OPC_MoveParent,
/*326300*/            OPC_RecordChild2, // #3 = $src0
/*326301*/            OPC_CheckType, MVT::v16i16,
/*326303*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*326305*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFLWZ256rik), 0,
                          MVT::v16i16, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86PShuflw:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (timm:{ *:[i8] }):$src2), VR256X:{ *:[v16i16] }:$src0) - Complexity = 9
                      // Dst: (VPSHUFLWZ256rik:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, (timm:{ *:[i8] }):$src2)
/*326315*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::CVTP2SI_RND),// ->326343
/*326318*/            OPC_RecordChild0, // #1 = $src
/*326319*/            OPC_CheckChild0Type, MVT::v16f32,
/*326321*/            OPC_RecordChild1, // #2 = $rc
/*326322*/            OPC_MoveChild1,
/*326323*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*326326*/            OPC_MoveParent,
/*326327*/            OPC_MoveParent,
/*326328*/            OPC_RecordChild2, // #3 = $src0
/*326329*/            OPC_CheckType, MVT::v16i32,
/*326331*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*326333*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2DQZrrbk), 0,
                          MVT::v16i32, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86cvtp2IntRnd:{ *:[v16i32] } VR512:{ *:[v16f32] }:$src, (timm:{ *:[i32] }):$rc), VR512:{ *:[v16i32] }:$src0) - Complexity = 9
                      // Dst: (VCVTPS2DQZrrbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src, (timm:{ *:[i32] }):$rc)
/*326343*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::CVTP2UI_RND),// ->326371
/*326346*/            OPC_RecordChild0, // #1 = $src
/*326347*/            OPC_CheckChild0Type, MVT::v16f32,
/*326349*/            OPC_RecordChild1, // #2 = $rc
/*326350*/            OPC_MoveChild1,
/*326351*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*326354*/            OPC_MoveParent,
/*326355*/            OPC_MoveParent,
/*326356*/            OPC_RecordChild2, // #3 = $src0
/*326357*/            OPC_CheckType, MVT::v16i32,
/*326359*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*326361*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UDQZrrbk), 0,
                          MVT::v16i32, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86cvtp2UIntRnd:{ *:[v16i32] } VR512:{ *:[v16f32] }:$src, (timm:{ *:[i32] }):$rc), VR512:{ *:[v16i32] }:$src0) - Complexity = 9
                      // Dst: (VCVTPS2UDQZrrbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src, (timm:{ *:[i32] }):$rc)
/*326371*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::VALIGN),// ->326399
/*326374*/            OPC_RecordChild0, // #1 = $src1
/*326375*/            OPC_RecordChild1, // #2 = $src2
/*326376*/            OPC_RecordChild2, // #3 = $src3
/*326377*/            OPC_MoveChild2,
/*326378*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*326381*/            OPC_MoveParent,
/*326382*/            OPC_MoveParent,
/*326383*/            OPC_RecordChild2, // #4 = $src0
/*326384*/            OPC_CheckType, MVT::v16i32,
/*326386*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*326388*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZrrik), 0,
                          MVT::v16i32, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VAlign:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (timm:{ *:[i8] }):$src3), VR512:{ *:[v16i32] }:$src0) - Complexity = 9
                      // Dst: (VALIGNDZrrik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (timm:{ *:[i8] }):$src3)
/*326399*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::PALIGNR),// ->326427
/*326402*/            OPC_RecordChild0, // #1 = $src1
/*326403*/            OPC_RecordChild1, // #2 = $src2
/*326404*/            OPC_RecordChild2, // #3 = $src3
/*326405*/            OPC_MoveChild2,
/*326406*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*326409*/            OPC_MoveParent,
/*326410*/            OPC_MoveParent,
/*326411*/            OPC_RecordChild2, // #4 = $src0
/*326412*/            OPC_CheckType, MVT::v16i8,
/*326414*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*326416*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPALIGNRZ128rrik), 0,
                          MVT::v16i8, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                      // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86PAlignr:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (timm:{ *:[i8] }):$src3), VR128X:{ *:[v16i8] }:$src0) - Complexity = 9
                      // Dst: (VPALIGNRZ128rrik:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (timm:{ *:[i8] }):$src3)
/*326427*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::DBPSADBW),// ->326455
/*326430*/            OPC_RecordChild0, // #1 = $src1
/*326431*/            OPC_RecordChild1, // #2 = $src2
/*326432*/            OPC_RecordChild2, // #3 = $src3
/*326433*/            OPC_MoveChild2,
/*326434*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*326437*/            OPC_MoveParent,
/*326438*/            OPC_MoveParent,
/*326439*/            OPC_RecordChild2, // #4 = $src0
/*326440*/            OPC_CheckType, MVT::v16i16,
/*326442*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*326444*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDBPSADBWZ256rrik), 0,
                          MVT::v16i16, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                      // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86dbpsadbw:{ *:[v16i16] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (timm:{ *:[i8] }):$src3), VR256X:{ *:[v16i16] }:$src0) - Complexity = 9
                      // Dst: (VDBPSADBWZ256rrik:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (timm:{ *:[i8] }):$src3)
/*326455*/          /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VPTERNLOG),// ->326526
/*326458*/            OPC_RecordChild0, // #1 = $src1
/*326459*/            OPC_RecordChild1, // #2 = $src2
/*326460*/            OPC_RecordChild2, // #3 = $src3
/*326461*/            OPC_RecordChild3, // #4 = $src4
/*326462*/            OPC_MoveChild3,
/*326463*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*326466*/            OPC_MoveParent,
/*326467*/            OPC_MoveParent,
/*326468*/            OPC_CheckType, MVT::v16i32,
/*326470*/            OPC_Scope, 15, /*->326487*/ // 3 children in Scope
/*326472*/              OPC_CheckChild2Same, 1,
/*326474*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*326476*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZrrik), 0,
                            MVT::v16i32, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vpternlog:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3, (timm:{ *:[i8] }):$src4), VR512:{ *:[v16i32] }:$src1) - Complexity = 9
                        // Dst: (VPTERNLOGDZrrik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3, (timm:{ *:[i8] }):$src4)
/*326487*/            /*Scope*/ 18, /*->326506*/
/*326488*/              OPC_CheckChild2Same, 3,
/*326490*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*326492*/              OPC_EmitNodeXForm, 19, 4, // VPTERNLOG321_imm8
/*326495*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZrrik), 0,
                            MVT::v16i32, 5/*#Ops*/, 3, 0, 2, 1, 5, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vpternlog:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src3, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src1, (timm:{ *:[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] } (timm:{ *:[i8] }):$src4))
/*326506*/            /*Scope*/ 18, /*->326525*/
/*326507*/              OPC_CheckChild2Same, 2,
/*326509*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*326511*/              OPC_EmitNodeXForm, 21, 4, // VPTERNLOG213_imm8
/*326514*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZrrik), 0,
                            MVT::v16i32, 5/*#Ops*/, 2, 0, 1, 3, 5, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vpternlog:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src3, (timm:{ *:[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] } (timm:{ *:[i8] }):$src4))
/*326525*/            0, /*End of Scope*/
/*326526*/          /*SwitchOpcode*/ 42, TARGET_VAL(X86ISD::VSHLD),// ->326571
/*326529*/            OPC_RecordChild0, // #1 = $src1
/*326530*/            OPC_RecordChild1, // #2 = $src2
/*326531*/            OPC_RecordChild2, // #3 = $src3
/*326532*/            OPC_MoveChild2,
/*326533*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*326536*/            OPC_MoveParent,
/*326537*/            OPC_MoveParent,
/*326538*/            OPC_RecordChild2, // #4 = $src0
/*326539*/            OPC_SwitchType /*2 cases */, 13, MVT::v16i16,// ->326555
/*326542*/              OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*326544*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDWZ256rrik), 0,
                            MVT::v16i16, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86VShld:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (timm:{ *:[i8] }):$src3), VR256X:{ *:[v16i16] }:$src0) - Complexity = 9
                        // Dst: (VPSHLDWZ256rrik:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (timm:{ *:[i8] }):$src3)
/*326555*/            /*SwitchType*/ 13, MVT::v16i32,// ->326570
/*326557*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*326559*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDDZrrik), 0,
                            MVT::v16i32, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VShld:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (timm:{ *:[i8] }):$src3), VR512:{ *:[v16i32] }:$src0) - Complexity = 9
                        // Dst: (VPSHLDDZrrik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (timm:{ *:[i8] }):$src3)
/*326570*/            0, // EndSwitchType
/*326571*/          /*SwitchOpcode*/ 42, TARGET_VAL(X86ISD::VSHRD),// ->326616
/*326574*/            OPC_RecordChild0, // #1 = $src1
/*326575*/            OPC_RecordChild1, // #2 = $src2
/*326576*/            OPC_RecordChild2, // #3 = $src3
/*326577*/            OPC_MoveChild2,
/*326578*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*326581*/            OPC_MoveParent,
/*326582*/            OPC_MoveParent,
/*326583*/            OPC_RecordChild2, // #4 = $src0
/*326584*/            OPC_SwitchType /*2 cases */, 13, MVT::v16i16,// ->326600
/*326587*/              OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*326589*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDWZ256rrik), 0,
                            MVT::v16i16, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86VShrd:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (timm:{ *:[i8] }):$src3), VR256X:{ *:[v16i16] }:$src0) - Complexity = 9
                        // Dst: (VPSHRDWZ256rrik:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (timm:{ *:[i8] }):$src3)
/*326600*/            /*SwitchType*/ 13, MVT::v16i32,// ->326615
/*326602*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*326604*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDDZrrik), 0,
                            MVT::v16i32, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86VShrd:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (timm:{ *:[i8] }):$src3), VR512:{ *:[v16i32] }:$src0) - Complexity = 9
                        // Dst: (VPSHRDDZrrik:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (timm:{ *:[i8] }):$src3)
/*326615*/            0, // EndSwitchType
/*326616*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::GF2P8AFFINEINVQB),// ->326644
/*326619*/            OPC_RecordChild0, // #1 = $src1
/*326620*/            OPC_RecordChild1, // #2 = $src2
/*326621*/            OPC_RecordChild2, // #3 = $src3
/*326622*/            OPC_MoveChild2,
/*326623*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*326626*/            OPC_MoveParent,
/*326627*/            OPC_MoveParent,
/*326628*/            OPC_RecordChild2, // #4 = $src0
/*326629*/            OPC_CheckType, MVT::v16i8,
/*326631*/            OPC_CheckPatternPredicate, 180, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*326633*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEINVQBZ128rrik), 0,
                          MVT::v16i8, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                      // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86GF2P8affineinvqb:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (timm:{ *:[i8] }):$src3), VR128X:{ *:[v16i8] }:$src0) - Complexity = 9
                      // Dst: (VGF2P8AFFINEINVQBZ128rrik:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (timm:{ *:[i8] }):$src3)
/*326644*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::GF2P8AFFINEQB),// ->326672
/*326647*/            OPC_RecordChild0, // #1 = $src1
/*326648*/            OPC_RecordChild1, // #2 = $src2
/*326649*/            OPC_RecordChild2, // #3 = $src3
/*326650*/            OPC_MoveChild2,
/*326651*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*326654*/            OPC_MoveParent,
/*326655*/            OPC_MoveParent,
/*326656*/            OPC_RecordChild2, // #4 = $src0
/*326657*/            OPC_CheckType, MVT::v16i8,
/*326659*/            OPC_CheckPatternPredicate, 180, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*326661*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEQBZ128rrik), 0,
                          MVT::v16i8, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                      // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86GF2P8affineqb:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (timm:{ *:[i8] }):$src3), VR128X:{ *:[v16i8] }:$src0) - Complexity = 9
                      // Dst: (VGF2P8AFFINEQBZ128rrik:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (timm:{ *:[i8] }):$src3)
/*326672*/          0, // EndSwitchOpcode
/*326673*/        /*Scope*/ 42, /*->326716*/
/*326674*/          OPC_RecordChild1, // #1 = $src
/*326675*/          OPC_MoveChild2,
/*326676*/          OPC_CheckImmAllZerosV,
/*326677*/          OPC_MoveParent,
/*326678*/          OPC_SwitchType /*3 cases */, 10, MVT::v16i32,// ->326691
/*326681*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*326683*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA32Zrrkz), 0,
                          MVT::v16i32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src, immAllZerosV:{ *:[v16i32] }) - Complexity = 7
                      // Dst: (VMOVDQA32Zrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)
/*326691*/          /*SwitchType*/ 10, MVT::v16i8,// ->326703
/*326693*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*326695*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU8Z128rrkz), 0,
                          MVT::v16i8, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src, immAllZerosV:{ *:[v16i8] }) - Complexity = 7
                      // Dst: (VMOVDQU8Z128rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*326703*/          /*SwitchType*/ 10, MVT::v16i16,// ->326715
/*326705*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*326707*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU16Z256rrkz), 0,
                          MVT::v16i16, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src, immAllZerosV:{ *:[v16i16] }) - Complexity = 7
                      // Dst: (VMOVDQU16Z256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src)
/*326715*/          0, // EndSwitchType
/*326716*/        /*Scope*/ 21, /*->326738*/
/*326717*/          OPC_MoveChild1,
/*326718*/          OPC_CheckImmAllZerosV,
/*326719*/          OPC_MoveParent,
/*326720*/          OPC_RecordChild2, // #1 = $src
/*326721*/          OPC_CheckType, MVT::v16i32,
/*326723*/          OPC_EmitNode1, TARGET_VAL(X86::KNOTWrr), 0,
                        MVT::v16i1, 1/*#Ops*/, 0,  // Results = #2
/*326730*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA32Zrrkz), 0,
                        MVT::v16i32, 2/*#Ops*/, 2, 1, 
                    // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, immAllZerosV:{ *:[v16i32] }, VR512:{ *:[v16i32] }:$src) - Complexity = 7
                    // Dst: (VMOVDQA32Zrrkz:{ *:[v16i32] } (KNOTWrr:{ *:[v16i1] } VK16WM:{ *:[v16i1] }:$mask), VR512:{ *:[v16i32] }:$src)
/*326738*/        /*Scope*/ 110, /*->326849*/
/*326739*/          OPC_RecordChild1, // #1 = $src1
/*326740*/          OPC_MoveChild2,
/*326741*/          OPC_CheckImmAllZerosV,
/*326742*/          OPC_MoveParent,
/*326743*/          OPC_SwitchType /*2 cases */, 50, MVT::v16i8,// ->326796
/*326746*/            OPC_CheckPatternPredicate, 117, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/*326748*/            OPC_EmitInteger, MVT::i32, X86::VK64WMRegClassID,
/*326751*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v64i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*326759*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v64i8, 0/*#Ops*/,  // Results = #4
/*326765*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*326768*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v64i8, 3/*#Ops*/, 4, 1, 5,  // Results = #6
/*326777*/            OPC_EmitNode1, TARGET_VAL(X86::VMOVDQU8Zrrkz), 0,
                          MVT::v64i8, 2/*#Ops*/, 3, 6,  // Results = #7
/*326785*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*326788*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v16i8, 2/*#Ops*/, 7, 8, 
                      // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, immAllZerosV:{ *:[v16i8] }) - Complexity = 7
                      // 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] })
/*326796*/          /*SwitchType*/ 50, MVT::v16i16,// ->326848
/*326798*/            OPC_CheckPatternPredicate, 117, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/*326800*/            OPC_EmitInteger, MVT::i32, X86::VK32WMRegClassID,
/*326803*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v32i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*326811*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i16, 0/*#Ops*/,  // Results = #4
/*326817*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*326820*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v32i16, 3/*#Ops*/, 4, 1, 5,  // Results = #6
/*326829*/            OPC_EmitNode1, TARGET_VAL(X86::VMOVDQU16Zrrkz), 0,
                          MVT::v32i16, 2/*#Ops*/, 3, 6,  // Results = #7
/*326837*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*326840*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v16i16, 2/*#Ops*/, 7, 8, 
                      // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, immAllZerosV:{ *:[v16i16] }) - Complexity = 7
                      // 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] })
/*326848*/          0, // EndSwitchType
/*326849*/        /*Scope*/ 93|128,18/*2397*/, /*->329248*/
/*326851*/          OPC_MoveChild1,
/*326852*/          OPC_SwitchOpcode /*64 cases */, 19|128,1/*147*/, TARGET_VAL(X86ISD::VBROADCAST),// ->327004
/*326857*/            OPC_RecordChild0, // #1 = $src
/*326858*/            OPC_Scope, 17, /*->326877*/ // 6 children in Scope
/*326860*/              OPC_CheckChild0Type, MVT::i32,
/*326862*/              OPC_MoveParent,
/*326863*/              OPC_RecordChild2, // #2 = $src0
/*326864*/              OPC_CheckType, MVT::v16i32,
/*326866*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*326868*/              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)
/*326877*/            /*Scope*/ 17, /*->326895*/
/*326878*/              OPC_CheckChild0Type, MVT::v16i8,
/*326880*/              OPC_MoveParent,
/*326881*/              OPC_RecordChild2, // #2 = $src0
/*326882*/              OPC_CheckType, MVT::v16i8,
/*326884*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*326886*/              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)
/*326895*/            /*Scope*/ 17, /*->326913*/
/*326896*/              OPC_CheckChild0Type, MVT::v8i16,
/*326898*/              OPC_MoveParent,
/*326899*/              OPC_RecordChild2, // #2 = $src0
/*326900*/              OPC_CheckType, MVT::v16i16,
/*326902*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*326904*/              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)
/*326913*/            /*Scope*/ 17, /*->326931*/
/*326914*/              OPC_CheckChild0Type, MVT::v4i32,
/*326916*/              OPC_MoveParent,
/*326917*/              OPC_RecordChild2, // #2 = $src0
/*326918*/              OPC_CheckType, MVT::v16i32,
/*326920*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*326922*/              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)
/*326931*/            /*Scope*/ 35, /*->326967*/
/*326932*/              OPC_CheckChild0Type, MVT::i8,
/*326934*/              OPC_MoveParent,
/*326935*/              OPC_RecordChild2, // #2 = $src0
/*326936*/              OPC_CheckType, MVT::v16i8,
/*326938*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*326940*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::i32, 0/*#Ops*/,  // Results = #3
/*326946*/              OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*326949*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::i32, 3/*#Ops*/, 3, 1, 4,  // Results = #5
/*326958*/              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] }))
/*326967*/            /*Scope*/ 35, /*->327003*/
/*326968*/              OPC_CheckChild0Type, MVT::i16,
/*326970*/              OPC_MoveParent,
/*326971*/              OPC_RecordChild2, // #2 = $src0
/*326972*/              OPC_CheckType, MVT::v16i16,
/*326974*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*326976*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::i32, 0/*#Ops*/,  // Results = #3
/*326982*/              OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*326985*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::i32, 3/*#Ops*/, 3, 1, 4,  // Results = #5
/*326994*/              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] }))
/*327003*/            0, /*End of Scope*/
/*327004*/          /*SwitchOpcode*/ 100, TARGET_VAL(X86ISD::VPERMV3),// ->327107
/*327007*/            OPC_RecordChild0, // #1 = $src2
/*327008*/            OPC_RecordChild1, // #2 = $src1
/*327009*/            OPC_RecordChild2, // #3 = $src3
/*327010*/            OPC_MoveParent,
/*327011*/            OPC_Scope, 46, /*->327059*/ // 2 children in Scope
/*327013*/              OPC_CheckChild2Same, 2,
/*327015*/              OPC_SwitchType /*3 cases */, 12, MVT::v16i32,// ->327030
/*327018*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*327020*/                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)
/*327030*/              /*SwitchType*/ 12, MVT::v16i16,// ->327044
/*327032*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*327034*/                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)
/*327044*/              /*SwitchType*/ 12, MVT::v16i8,// ->327058
/*327046*/                OPC_CheckPatternPredicate, 181, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*327048*/                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)
/*327058*/              0, // EndSwitchType
/*327059*/            /*Scope*/ 46, /*->327106*/
/*327060*/              OPC_CheckChild2Same, 1,
/*327062*/              OPC_SwitchType /*3 cases */, 12, MVT::v16i32,// ->327077
/*327065*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*327067*/                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)
/*327077*/              /*SwitchType*/ 12, MVT::v16i16,// ->327091
/*327079*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*327081*/                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)
/*327091*/              /*SwitchType*/ 12, MVT::v16i8,// ->327105
/*327093*/                OPC_CheckPatternPredicate, 181, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*327095*/                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)
/*327105*/              0, // EndSwitchType
/*327106*/            0, /*End of Scope*/
/*327107*/          /*SwitchOpcode*/ 48, TARGET_VAL(ISD::ADD),// ->327158
/*327110*/            OPC_RecordChild0, // #1 = $src1
/*327111*/            OPC_RecordChild1, // #2 = $src2
/*327112*/            OPC_MoveParent,
/*327113*/            OPC_RecordChild2, // #3 = $src0
/*327114*/            OPC_SwitchType /*3 cases */, 12, MVT::v16i32,// ->327129
/*327117*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*327119*/              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)
/*327129*/            /*SwitchType*/ 12, MVT::v16i16,// ->327143
/*327131*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*327133*/              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)
/*327143*/            /*SwitchType*/ 12, MVT::v16i8,// ->327157
/*327145*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*327147*/              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)
/*327157*/            0, // EndSwitchType
/*327158*/          /*SwitchOpcode*/ 48, TARGET_VAL(ISD::SUB),// ->327209
/*327161*/            OPC_RecordChild0, // #1 = $src1
/*327162*/            OPC_RecordChild1, // #2 = $src2
/*327163*/            OPC_MoveParent,
/*327164*/            OPC_RecordChild2, // #3 = $src0
/*327165*/            OPC_SwitchType /*3 cases */, 12, MVT::v16i32,// ->327180
/*327168*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*327170*/              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)
/*327180*/            /*SwitchType*/ 12, MVT::v16i16,// ->327194
/*327182*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*327184*/              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)
/*327194*/            /*SwitchType*/ 12, MVT::v16i8,// ->327208
/*327196*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*327198*/              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)
/*327208*/            0, // EndSwitchType
/*327209*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::SADDSAT),// ->327246
/*327212*/            OPC_RecordChild0, // #1 = $src1
/*327213*/            OPC_RecordChild1, // #2 = $src2
/*327214*/            OPC_MoveParent,
/*327215*/            OPC_RecordChild2, // #3 = $src0
/*327216*/            OPC_SwitchType /*2 cases */, 12, MVT::v16i16,// ->327231
/*327219*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*327221*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSWZ256rrk), 0,
                            MVT::v16i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (saddsat:{ *:[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)
/*327231*/            /*SwitchType*/ 12, MVT::v16i8,// ->327245
/*327233*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*327235*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSBZ128rrk), 0,
                            MVT::v16i8, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (saddsat:{ *:[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)
/*327245*/            0, // EndSwitchType
/*327246*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::SSUBSAT),// ->327283
/*327249*/            OPC_RecordChild0, // #1 = $src1
/*327250*/            OPC_RecordChild1, // #2 = $src2
/*327251*/            OPC_MoveParent,
/*327252*/            OPC_RecordChild2, // #3 = $src0
/*327253*/            OPC_SwitchType /*2 cases */, 12, MVT::v16i16,// ->327268
/*327256*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*327258*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSWZ256rrk), 0,
                            MVT::v16i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (ssubsat:{ *:[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)
/*327268*/            /*SwitchType*/ 12, MVT::v16i8,// ->327282
/*327270*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*327272*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSBZ128rrk), 0,
                            MVT::v16i8, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (ssubsat:{ *:[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)
/*327282*/            0, // EndSwitchType
/*327283*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::UADDSAT),// ->327320
/*327286*/            OPC_RecordChild0, // #1 = $src1
/*327287*/            OPC_RecordChild1, // #2 = $src2
/*327288*/            OPC_MoveParent,
/*327289*/            OPC_RecordChild2, // #3 = $src0
/*327290*/            OPC_SwitchType /*2 cases */, 12, MVT::v16i16,// ->327305
/*327293*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*327295*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSWZ256rrk), 0,
                            MVT::v16i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (uaddsat:{ *:[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)
/*327305*/            /*SwitchType*/ 12, MVT::v16i8,// ->327319
/*327307*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*327309*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSBZ128rrk), 0,
                            MVT::v16i8, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (uaddsat:{ *:[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)
/*327319*/            0, // EndSwitchType
/*327320*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::USUBSAT),// ->327357
/*327323*/            OPC_RecordChild0, // #1 = $src1
/*327324*/            OPC_RecordChild1, // #2 = $src2
/*327325*/            OPC_MoveParent,
/*327326*/            OPC_RecordChild2, // #3 = $src0
/*327327*/            OPC_SwitchType /*2 cases */, 12, MVT::v16i16,// ->327342
/*327330*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*327332*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSWZ256rrk), 0,
                            MVT::v16i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (usubsat:{ *:[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)
/*327342*/            /*SwitchType*/ 12, MVT::v16i8,// ->327356
/*327344*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*327346*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSBZ128rrk), 0,
                            MVT::v16i8, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (usubsat:{ *:[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)
/*327356*/            0, // EndSwitchType
/*327357*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::MUL),// ->327394
/*327360*/            OPC_RecordChild0, // #1 = $src1
/*327361*/            OPC_RecordChild1, // #2 = $src2
/*327362*/            OPC_MoveParent,
/*327363*/            OPC_RecordChild2, // #3 = $src0
/*327364*/            OPC_SwitchType /*2 cases */, 12, MVT::v16i32,// ->327379
/*327367*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*327369*/              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)
/*327379*/            /*SwitchType*/ 12, MVT::v16i16,// ->327393
/*327381*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*327383*/              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)
/*327393*/            0, // EndSwitchType
/*327394*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::MULHS),// ->327415
/*327397*/            OPC_RecordChild0, // #1 = $src1
/*327398*/            OPC_RecordChild1, // #2 = $src2
/*327399*/            OPC_MoveParent,
/*327400*/            OPC_RecordChild2, // #3 = $src0
/*327401*/            OPC_CheckType, MVT::v16i16,
/*327403*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*327405*/            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)
/*327415*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::MULHU),// ->327436
/*327418*/            OPC_RecordChild0, // #1 = $src1
/*327419*/            OPC_RecordChild1, // #2 = $src2
/*327420*/            OPC_MoveParent,
/*327421*/            OPC_RecordChild2, // #3 = $src0
/*327422*/            OPC_CheckType, MVT::v16i16,
/*327424*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*327426*/            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)
/*327436*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::MULHRS),// ->327457
/*327439*/            OPC_RecordChild0, // #1 = $src1
/*327440*/            OPC_RecordChild1, // #2 = $src2
/*327441*/            OPC_MoveParent,
/*327442*/            OPC_RecordChild2, // #3 = $src0
/*327443*/            OPC_CheckType, MVT::v16i16,
/*327445*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*327447*/            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)
/*327457*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::AVG),// ->327494
/*327460*/            OPC_RecordChild0, // #1 = $src1
/*327461*/            OPC_RecordChild1, // #2 = $src2
/*327462*/            OPC_MoveParent,
/*327463*/            OPC_RecordChild2, // #3 = $src0
/*327464*/            OPC_SwitchType /*2 cases */, 12, MVT::v16i16,// ->327479
/*327467*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*327469*/              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)
/*327479*/            /*SwitchType*/ 12, MVT::v16i8,// ->327493
/*327481*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*327483*/              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)
/*327493*/            0, // EndSwitchType
/*327494*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::MULTISHIFT),// ->327517
/*327497*/            OPC_RecordChild0, // #1 = $src1
/*327498*/            OPC_CheckChild0Type, MVT::v16i8,
/*327500*/            OPC_RecordChild1, // #2 = $src2
/*327501*/            OPC_MoveParent,
/*327502*/            OPC_RecordChild2, // #3 = $src0
/*327503*/            OPC_CheckType, MVT::v16i8,
/*327505*/            OPC_CheckPatternPredicate, 181, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*327507*/            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)
/*327517*/          /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::PACKSS),// ->327563
/*327520*/            OPC_RecordChild0, // #1 = $src1
/*327521*/            OPC_Scope, 19, /*->327542*/ // 2 children in Scope
/*327523*/              OPC_CheckChild0Type, MVT::v8i32,
/*327525*/              OPC_RecordChild1, // #2 = $src2
/*327526*/              OPC_MoveParent,
/*327527*/              OPC_RecordChild2, // #3 = $src0
/*327528*/              OPC_CheckType, MVT::v16i16,
/*327530*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*327532*/              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)
/*327542*/            /*Scope*/ 19, /*->327562*/
/*327543*/              OPC_CheckChild0Type, MVT::v8i16,
/*327545*/              OPC_RecordChild1, // #2 = $src2
/*327546*/              OPC_MoveParent,
/*327547*/              OPC_RecordChild2, // #3 = $src0
/*327548*/              OPC_CheckType, MVT::v16i8,
/*327550*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*327552*/              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)
/*327562*/            0, /*End of Scope*/
/*327563*/          /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::PACKUS),// ->327609
/*327566*/            OPC_RecordChild0, // #1 = $src1
/*327567*/            OPC_Scope, 19, /*->327588*/ // 2 children in Scope
/*327569*/              OPC_CheckChild0Type, MVT::v8i32,
/*327571*/              OPC_RecordChild1, // #2 = $src2
/*327572*/              OPC_MoveParent,
/*327573*/              OPC_RecordChild2, // #3 = $src0
/*327574*/              OPC_CheckType, MVT::v16i16,
/*327576*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*327578*/              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)
/*327588*/            /*Scope*/ 19, /*->327608*/
/*327589*/              OPC_CheckChild0Type, MVT::v8i16,
/*327591*/              OPC_RecordChild1, // #2 = $src2
/*327592*/              OPC_MoveParent,
/*327593*/              OPC_RecordChild2, // #3 = $src0
/*327594*/              OPC_CheckType, MVT::v16i8,
/*327596*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*327598*/              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)
/*327608*/            0, /*End of Scope*/
/*327609*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::VPMADDUBSW),// ->327630
/*327612*/            OPC_RecordChild0, // #1 = $src1
/*327613*/            OPC_RecordChild1, // #2 = $src2
/*327614*/            OPC_MoveParent,
/*327615*/            OPC_RecordChild2, // #3 = $src0
/*327616*/            OPC_CheckType, MVT::v16i16,
/*327618*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*327620*/            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)
/*327630*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::VPMADDWD),// ->327651
/*327633*/            OPC_RecordChild0, // #1 = $src1
/*327634*/            OPC_RecordChild1, // #2 = $src2
/*327635*/            OPC_MoveParent,
/*327636*/            OPC_RecordChild2, // #3 = $src0
/*327637*/            OPC_CheckType, MVT::v16i32,
/*327639*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*327641*/            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)
/*327651*/          /*SwitchOpcode*/ 48, TARGET_VAL(ISD::SMAX),// ->327702
/*327654*/            OPC_RecordChild0, // #1 = $src1
/*327655*/            OPC_RecordChild1, // #2 = $src2
/*327656*/            OPC_MoveParent,
/*327657*/            OPC_RecordChild2, // #3 = $src0
/*327658*/            OPC_SwitchType /*3 cases */, 12, MVT::v16i8,// ->327673
/*327661*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*327663*/              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)
/*327673*/            /*SwitchType*/ 12, MVT::v16i16,// ->327687
/*327675*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*327677*/              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)
/*327687*/            /*SwitchType*/ 12, MVT::v16i32,// ->327701
/*327689*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*327691*/              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)
/*327701*/            0, // EndSwitchType
/*327702*/          /*SwitchOpcode*/ 48, TARGET_VAL(ISD::UMAX),// ->327753
/*327705*/            OPC_RecordChild0, // #1 = $src1
/*327706*/            OPC_RecordChild1, // #2 = $src2
/*327707*/            OPC_MoveParent,
/*327708*/            OPC_RecordChild2, // #3 = $src0
/*327709*/            OPC_SwitchType /*3 cases */, 12, MVT::v16i8,// ->327724
/*327712*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*327714*/              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)
/*327724*/            /*SwitchType*/ 12, MVT::v16i16,// ->327738
/*327726*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*327728*/              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)
/*327738*/            /*SwitchType*/ 12, MVT::v16i32,// ->327752
/*327740*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*327742*/              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)
/*327752*/            0, // EndSwitchType
/*327753*/          /*SwitchOpcode*/ 48, TARGET_VAL(ISD::SMIN),// ->327804
/*327756*/            OPC_RecordChild0, // #1 = $src1
/*327757*/            OPC_RecordChild1, // #2 = $src2
/*327758*/            OPC_MoveParent,
/*327759*/            OPC_RecordChild2, // #3 = $src0
/*327760*/            OPC_SwitchType /*3 cases */, 12, MVT::v16i8,// ->327775
/*327763*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*327765*/              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)
/*327775*/            /*SwitchType*/ 12, MVT::v16i16,// ->327789
/*327777*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*327779*/              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)
/*327789*/            /*SwitchType*/ 12, MVT::v16i32,// ->327803
/*327791*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*327793*/              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)
/*327803*/            0, // EndSwitchType
/*327804*/          /*SwitchOpcode*/ 48, TARGET_VAL(ISD::UMIN),// ->327855
/*327807*/            OPC_RecordChild0, // #1 = $src1
/*327808*/            OPC_RecordChild1, // #2 = $src2
/*327809*/            OPC_MoveParent,
/*327810*/            OPC_RecordChild2, // #3 = $src0
/*327811*/            OPC_SwitchType /*3 cases */, 12, MVT::v16i8,// ->327826
/*327814*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*327816*/              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)
/*327826*/            /*SwitchType*/ 12, MVT::v16i16,// ->327840
/*327828*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*327830*/              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)
/*327840*/            /*SwitchType*/ 12, MVT::v16i32,// ->327854
/*327842*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*327844*/              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)
/*327854*/            0, // EndSwitchType
/*327855*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::AND),// ->327876
/*327858*/            OPC_RecordChild0, // #1 = $src1
/*327859*/            OPC_RecordChild1, // #2 = $src2
/*327860*/            OPC_MoveParent,
/*327861*/            OPC_RecordChild2, // #3 = $src0
/*327862*/            OPC_CheckType, MVT::v16i32,
/*327864*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*327866*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZrrk), 0,
                          MVT::v16i32, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (and:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2), VR512:{ *:[v16i32] }:$src0) - Complexity = 6
                      // Dst: (VPANDDZrrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*327876*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::OR),// ->327897
/*327879*/            OPC_RecordChild0, // #1 = $src1
/*327880*/            OPC_RecordChild1, // #2 = $src2
/*327881*/            OPC_MoveParent,
/*327882*/            OPC_RecordChild2, // #3 = $src0
/*327883*/            OPC_CheckType, MVT::v16i32,
/*327885*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*327887*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZrrk), 0,
                          MVT::v16i32, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (or:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2), VR512:{ *:[v16i32] }:$src0) - Complexity = 6
                      // Dst: (VPORDZrrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*327897*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::XOR),// ->327918
/*327900*/            OPC_RecordChild0, // #1 = $src1
/*327901*/            OPC_RecordChild1, // #2 = $src2
/*327902*/            OPC_MoveParent,
/*327903*/            OPC_RecordChild2, // #3 = $src0
/*327904*/            OPC_CheckType, MVT::v16i32,
/*327906*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*327908*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZrrk), 0,
                          MVT::v16i32, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (xor:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2), VR512:{ *:[v16i32] }:$src0) - Complexity = 6
                      // Dst: (VPXORDZrrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*327918*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::ANDNP),// ->327939
/*327921*/            OPC_RecordChild0, // #1 = $src1
/*327922*/            OPC_RecordChild1, // #2 = $src2
/*327923*/            OPC_MoveParent,
/*327924*/            OPC_RecordChild2, // #3 = $src0
/*327925*/            OPC_CheckType, MVT::v16i32,
/*327927*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*327929*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZrrk), 0,
                          MVT::v16i32, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86andnp:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2), VR512:{ *:[v16i32] }:$src0) - Complexity = 6
                      // Dst: (VPANDNDZrrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*327939*/          /*SwitchOpcode*/ 42, TARGET_VAL(X86ISD::VSHL),// ->327984
/*327942*/            OPC_RecordChild0, // #1 = $src1
/*327943*/            OPC_RecordChild1, // #2 = $src2
/*327944*/            OPC_Scope, 18, /*->327964*/ // 2 children in Scope
/*327946*/              OPC_CheckChild1Type, MVT::v4i32,
/*327948*/              OPC_MoveParent,
/*327949*/              OPC_RecordChild2, // #3 = $src0
/*327950*/              OPC_CheckType, MVT::v16i32,
/*327952*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*327954*/              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)
/*327964*/            /*Scope*/ 18, /*->327983*/
/*327965*/              OPC_CheckChild1Type, MVT::v8i16,
/*327967*/              OPC_MoveParent,
/*327968*/              OPC_RecordChild2, // #3 = $src0
/*327969*/              OPC_CheckType, MVT::v16i16,
/*327971*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*327973*/              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)
/*327983*/            0, /*End of Scope*/
/*327984*/          /*SwitchOpcode*/ 42, TARGET_VAL(X86ISD::VSRA),// ->328029
/*327987*/            OPC_RecordChild0, // #1 = $src1
/*327988*/            OPC_RecordChild1, // #2 = $src2
/*327989*/            OPC_Scope, 18, /*->328009*/ // 2 children in Scope
/*327991*/              OPC_CheckChild1Type, MVT::v4i32,
/*327993*/              OPC_MoveParent,
/*327994*/              OPC_RecordChild2, // #3 = $src0
/*327995*/              OPC_CheckType, MVT::v16i32,
/*327997*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*327999*/              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)
/*328009*/            /*Scope*/ 18, /*->328028*/
/*328010*/              OPC_CheckChild1Type, MVT::v8i16,
/*328012*/              OPC_MoveParent,
/*328013*/              OPC_RecordChild2, // #3 = $src0
/*328014*/              OPC_CheckType, MVT::v16i16,
/*328016*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*328018*/              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)
/*328028*/            0, /*End of Scope*/
/*328029*/          /*SwitchOpcode*/ 42, TARGET_VAL(X86ISD::VSRL),// ->328074
/*328032*/            OPC_RecordChild0, // #1 = $src1
/*328033*/            OPC_RecordChild1, // #2 = $src2
/*328034*/            OPC_Scope, 18, /*->328054*/ // 2 children in Scope
/*328036*/              OPC_CheckChild1Type, MVT::v4i32,
/*328038*/              OPC_MoveParent,
/*328039*/              OPC_RecordChild2, // #3 = $src0
/*328040*/              OPC_CheckType, MVT::v16i32,
/*328042*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*328044*/              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)
/*328054*/            /*Scope*/ 18, /*->328073*/
/*328055*/              OPC_CheckChild1Type, MVT::v8i16,
/*328057*/              OPC_MoveParent,
/*328058*/              OPC_RecordChild2, // #3 = $src0
/*328059*/              OPC_CheckType, MVT::v16i16,
/*328061*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*328063*/              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)
/*328073*/            0, /*End of Scope*/
/*328074*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VSHLV),// ->328111
/*328077*/            OPC_RecordChild0, // #1 = $src1
/*328078*/            OPC_RecordChild1, // #2 = $src2
/*328079*/            OPC_MoveParent,
/*328080*/            OPC_RecordChild2, // #3 = $src0
/*328081*/            OPC_SwitchType /*2 cases */, 12, MVT::v16i32,// ->328096
/*328084*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*328086*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVDZrrk), 0,
                            MVT::v16i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vshlv:{ *:[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)
/*328096*/            /*SwitchType*/ 12, MVT::v16i16,// ->328110
/*328098*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*328100*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVWZ256rrk), 0,
                            MVT::v16i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86vshlv:{ *:[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)
/*328110*/            0, // EndSwitchType
/*328111*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VSRAV),// ->328148
/*328114*/            OPC_RecordChild0, // #1 = $src1
/*328115*/            OPC_RecordChild1, // #2 = $src2
/*328116*/            OPC_MoveParent,
/*328117*/            OPC_RecordChild2, // #3 = $src0
/*328118*/            OPC_SwitchType /*2 cases */, 12, MVT::v16i32,// ->328133
/*328121*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*328123*/              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, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*328133*/            /*SwitchType*/ 12, MVT::v16i16,// ->328147
/*328135*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*328137*/              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, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*328147*/            0, // EndSwitchType
/*328148*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VSRLV),// ->328185
/*328151*/            OPC_RecordChild0, // #1 = $src1
/*328152*/            OPC_RecordChild1, // #2 = $src2
/*328153*/            OPC_MoveParent,
/*328154*/            OPC_RecordChild2, // #3 = $src0
/*328155*/            OPC_SwitchType /*2 cases */, 12, MVT::v16i32,// ->328170
/*328158*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*328160*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVDZrrk), 0,
                            MVT::v16i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86vsrlv:{ *:[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)
/*328170*/            /*SwitchType*/ 12, MVT::v16i16,// ->328184
/*328172*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*328174*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVWZ256rrk), 0,
                            MVT::v16i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86vsrlv:{ *:[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)
/*328184*/            0, // EndSwitchType
/*328185*/          /*SwitchOpcode*/ 20, TARGET_VAL(ISD::ROTR),// ->328208
/*328188*/            OPC_RecordChild0, // #1 = $src1
/*328189*/            OPC_RecordChild1, // #2 = $src2
/*328190*/            OPC_CheckChild1Type, MVT::v16i32,
/*328192*/            OPC_MoveParent,
/*328193*/            OPC_RecordChild2, // #3 = $src0
/*328194*/            OPC_CheckType, MVT::v16i32,
/*328196*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*328198*/            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)
/*328208*/          /*SwitchOpcode*/ 20, TARGET_VAL(ISD::ROTL),// ->328231
/*328211*/            OPC_RecordChild0, // #1 = $src1
/*328212*/            OPC_RecordChild1, // #2 = $src2
/*328213*/            OPC_CheckChild1Type, MVT::v16i32,
/*328215*/            OPC_MoveParent,
/*328216*/            OPC_RecordChild2, // #3 = $src0
/*328217*/            OPC_CheckType, MVT::v16i32,
/*328219*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*328221*/            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)
/*328231*/          /*SwitchOpcode*/ 48, TARGET_VAL(X86ISD::VPERMV),// ->328282
/*328234*/            OPC_RecordChild0, // #1 = $src1
/*328235*/            OPC_RecordChild1, // #2 = $src2
/*328236*/            OPC_MoveParent,
/*328237*/            OPC_RecordChild2, // #3 = $src0
/*328238*/            OPC_SwitchType /*3 cases */, 12, MVT::v16i16,// ->328253
/*328241*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*328243*/              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)
/*328253*/            /*SwitchType*/ 12, MVT::v16i8,// ->328267
/*328255*/              OPC_CheckPatternPredicate, 181, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*328257*/              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)
/*328267*/            /*SwitchType*/ 12, MVT::v16i32,// ->328281
/*328269*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*328271*/              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)
/*328281*/            0, // EndSwitchType
/*328282*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::PSHUFB),// ->328303
/*328285*/            OPC_RecordChild0, // #1 = $src1
/*328286*/            OPC_RecordChild1, // #2 = $src2
/*328287*/            OPC_MoveParent,
/*328288*/            OPC_RecordChild2, // #3 = $src0
/*328289*/            OPC_CheckType, MVT::v16i8,
/*328291*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*328293*/            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)
/*328303*/          /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::STRICT_CVTTP2SI),// ->328327
/*328306*/            OPC_RecordNode, // #1 = 'X86strict_cvttp2si' chained node
/*328307*/            OPC_CheckFoldableChainNode,
/*328308*/            OPC_RecordChild1, // #2 = $src
/*328309*/            OPC_CheckChild1Type, MVT::v16f32,
/*328311*/            OPC_MoveParent,
/*328312*/            OPC_RecordChild2, // #3 = $src0
/*328313*/            OPC_CheckType, MVT::v16i32,
/*328315*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*328317*/            OPC_EmitMergeInputChains1_1,
/*328318*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZrrk), 0|OPFL_Chain,
                          MVT::v16i32, 3/*#Ops*/, 3, 0, 2, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86strict_cvttp2si:{ *:[v16i32] } VR512:{ *:[v16f32] }:$src), VR512:{ *:[v16i32] }:$src0) - Complexity = 6
                      // Dst: (VCVTTPS2DQZrrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*328327*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::CVTTP2SI),// ->328348
/*328330*/            OPC_RecordChild0, // #1 = $src
/*328331*/            OPC_CheckChild0Type, MVT::v16f32,
/*328333*/            OPC_MoveParent,
/*328334*/            OPC_RecordChild2, // #2 = $src0
/*328335*/            OPC_CheckType, MVT::v16i32,
/*328337*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*328339*/            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)
/*328348*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::CVTTP2SI_SAE),// ->328369
/*328351*/            OPC_RecordChild0, // #1 = $src
/*328352*/            OPC_CheckChild0Type, MVT::v16f32,
/*328354*/            OPC_MoveParent,
/*328355*/            OPC_RecordChild2, // #2 = $src0
/*328356*/            OPC_CheckType, MVT::v16i32,
/*328358*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*328360*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZrrbk), 0,
                          MVT::v16i32, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86cvttp2siSAE:{ *:[v16i32] } VR512:{ *:[v16f32] }:$src), VR512:{ *:[v16i32] }:$src0) - Complexity = 6
                      // Dst: (VCVTTPS2DQZrrbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*328369*/          /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::STRICT_CVTTP2UI),// ->328393
/*328372*/            OPC_RecordNode, // #1 = 'X86strict_cvttp2ui' chained node
/*328373*/            OPC_CheckFoldableChainNode,
/*328374*/            OPC_RecordChild1, // #2 = $src
/*328375*/            OPC_CheckChild1Type, MVT::v16f32,
/*328377*/            OPC_MoveParent,
/*328378*/            OPC_RecordChild2, // #3 = $src0
/*328379*/            OPC_CheckType, MVT::v16i32,
/*328381*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*328383*/            OPC_EmitMergeInputChains1_1,
/*328384*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZrrk), 0|OPFL_Chain,
                          MVT::v16i32, 3/*#Ops*/, 3, 0, 2, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86strict_cvttp2ui:{ *:[v16i32] } VR512:{ *:[v16f32] }:$src), VR512:{ *:[v16i32] }:$src0) - Complexity = 6
                      // Dst: (VCVTTPS2UDQZrrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*328393*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::CVTTP2UI),// ->328414
/*328396*/            OPC_RecordChild0, // #1 = $src
/*328397*/            OPC_CheckChild0Type, MVT::v16f32,
/*328399*/            OPC_MoveParent,
/*328400*/            OPC_RecordChild2, // #2 = $src0
/*328401*/            OPC_CheckType, MVT::v16i32,
/*328403*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*328405*/            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)
/*328414*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::CVTTP2UI_SAE),// ->328435
/*328417*/            OPC_RecordChild0, // #1 = $src
/*328418*/            OPC_CheckChild0Type, MVT::v16f32,
/*328420*/            OPC_MoveParent,
/*328421*/            OPC_RecordChild2, // #2 = $src0
/*328422*/            OPC_CheckType, MVT::v16i32,
/*328424*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*328426*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZrrbk), 0,
                          MVT::v16i32, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (X86cvttp2uiSAE:{ *:[v16i32] } VR512:{ *:[v16f32] }:$src), VR512:{ *:[v16i32] }:$src0) - Complexity = 6
                      // Dst: (VCVTTPS2UDQZrrbk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*328435*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::CVTP2SI),// ->328456
/*328438*/            OPC_RecordChild0, // #1 = $src
/*328439*/            OPC_CheckChild0Type, MVT::v16f32,
/*328441*/            OPC_MoveParent,
/*328442*/            OPC_RecordChild2, // #2 = $src0
/*328443*/            OPC_CheckType, MVT::v16i32,
/*328445*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*328447*/            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)
/*328456*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::CVTP2UI),// ->328477
/*328459*/            OPC_RecordChild0, // #1 = $src
/*328460*/            OPC_CheckChild0Type, MVT::v16f32,
/*328462*/            OPC_MoveParent,
/*328463*/            OPC_RecordChild2, // #2 = $src0
/*328464*/            OPC_CheckType, MVT::v16i32,
/*328466*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*328468*/            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)
/*328477*/          /*SwitchOpcode*/ 55, TARGET_VAL(ISD::TRUNCATE),// ->328535
/*328480*/            OPC_RecordChild0, // #1 = $src
/*328481*/            OPC_Scope, 17, /*->328500*/ // 3 children in Scope
/*328483*/              OPC_CheckChild0Type, MVT::v16i32,
/*328485*/              OPC_MoveParent,
/*328486*/              OPC_RecordChild2, // #2 = $src0
/*328487*/              OPC_CheckType, MVT::v16i8,
/*328489*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*328491*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVDBZrrk), 0,
                            MVT::v16i8, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (trunc:{ *:[v16i8] } VR512:{ *:[v16i32] }:$src), VR128X:{ *:[v16i8] }:$src0) - Complexity = 6
                        // Dst: (VPMOVDBZrrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)
/*328500*/            /*Scope*/ 15, /*->328516*/
/*328501*/              OPC_MoveParent,
/*328502*/              OPC_RecordChild2, // #2 = $src0
/*328503*/              OPC_CheckType, MVT::v16i16,
/*328505*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*328507*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVDWZrrk), 0,
                            MVT::v16i16, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (trunc:{ *:[v16i16] } VR512:{ *:[v16i32] }:$src), VR256X:{ *:[v16i16] }:$src0) - Complexity = 6
                        // Dst: (VPMOVDWZrrk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)
/*328516*/            /*Scope*/ 17, /*->328534*/
/*328517*/              OPC_CheckChild0Type, MVT::v16i16,
/*328519*/              OPC_MoveParent,
/*328520*/              OPC_RecordChild2, // #2 = $src0
/*328521*/              OPC_CheckType, MVT::v16i8,
/*328523*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*328525*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVWBZ256rrk), 0,
                            MVT::v16i8, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (trunc:{ *:[v16i8] } VR256X:{ *:[v16i16] }:$src), VR128X:{ *:[v16i8] }:$src0) - Complexity = 6
                        // Dst: (VPMOVWBZ256rrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src)
/*328534*/            0, /*End of Scope*/
/*328535*/          /*SwitchOpcode*/ 54, TARGET_VAL(X86ISD::VTRUNCS),// ->328592
/*328538*/            OPC_RecordChild0, // #1 = $src
/*328539*/            OPC_Scope, 32, /*->328573*/ // 2 children in Scope
/*328541*/              OPC_CheckChild0Type, MVT::v16i32,
/*328543*/              OPC_MoveParent,
/*328544*/              OPC_RecordChild2, // #2 = $src0
/*328545*/              OPC_SwitchType /*2 cases */, 11, MVT::v16i8,// ->328559
/*328548*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*328550*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSDBZrrk), 0,
                              MVT::v16i8, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86vtruncs:{ *:[v16i8] } VR512:{ *:[v16i32] }:$src), VR128X:{ *:[v16i8] }:$src0) - Complexity = 6
                          // Dst: (VPMOVSDBZrrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)
/*328559*/              /*SwitchType*/ 11, MVT::v16i16,// ->328572
/*328561*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*328563*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSDWZrrk), 0,
                              MVT::v16i16, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86vtruncs:{ *:[v16i16] } VR512:{ *:[v16i32] }:$src), VR256X:{ *:[v16i16] }:$src0) - Complexity = 6
                          // Dst: (VPMOVSDWZrrk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)
/*328572*/              0, // EndSwitchType
/*328573*/            /*Scope*/ 17, /*->328591*/
/*328574*/              OPC_CheckChild0Type, MVT::v16i16,
/*328576*/              OPC_MoveParent,
/*328577*/              OPC_RecordChild2, // #2 = $src0
/*328578*/              OPC_CheckType, MVT::v16i8,
/*328580*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*328582*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSWBZ256rrk), 0,
                            MVT::v16i8, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86vtruncs:{ *:[v16i8] } VR256X:{ *:[v16i16] }:$src), VR128X:{ *:[v16i8] }:$src0) - Complexity = 6
                        // Dst: (VPMOVSWBZ256rrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src)
/*328591*/            0, /*End of Scope*/
/*328592*/          /*SwitchOpcode*/ 54, TARGET_VAL(X86ISD::VTRUNCUS),// ->328649
/*328595*/            OPC_RecordChild0, // #1 = $src
/*328596*/            OPC_Scope, 32, /*->328630*/ // 2 children in Scope
/*328598*/              OPC_CheckChild0Type, MVT::v16i32,
/*328600*/              OPC_MoveParent,
/*328601*/              OPC_RecordChild2, // #2 = $src0
/*328602*/              OPC_SwitchType /*2 cases */, 11, MVT::v16i8,// ->328616
/*328605*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*328607*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSDBZrrk), 0,
                              MVT::v16i8, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86vtruncus:{ *:[v16i8] } VR512:{ *:[v16i32] }:$src), VR128X:{ *:[v16i8] }:$src0) - Complexity = 6
                          // Dst: (VPMOVUSDBZrrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)
/*328616*/              /*SwitchType*/ 11, MVT::v16i16,// ->328629
/*328618*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*328620*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSDWZrrk), 0,
                              MVT::v16i16, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86vtruncus:{ *:[v16i16] } VR512:{ *:[v16i32] }:$src), VR256X:{ *:[v16i16] }:$src0) - Complexity = 6
                          // Dst: (VPMOVUSDWZrrk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)
/*328629*/              0, // EndSwitchType
/*328630*/            /*Scope*/ 17, /*->328648*/
/*328631*/              OPC_CheckChild0Type, MVT::v16i16,
/*328633*/              OPC_MoveParent,
/*328634*/              OPC_RecordChild2, // #2 = $src0
/*328635*/              OPC_CheckType, MVT::v16i8,
/*328637*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*328639*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSWBZ256rrk), 0,
                            MVT::v16i8, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, (X86vtruncus:{ *:[v16i8] } VR256X:{ *:[v16i16] }:$src), VR128X:{ *:[v16i8] }:$src0) - Complexity = 6
                        // Dst: (VPMOVUSWBZ256rrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src)
/*328648*/            0, /*End of Scope*/
/*328649*/          /*SwitchOpcode*/ 54, TARGET_VAL(ISD::ZERO_EXTEND),// ->328706
/*328652*/            OPC_RecordChild0, // #1 = $src
/*328653*/            OPC_Scope, 32, /*->328687*/ // 2 children in Scope
/*328655*/              OPC_CheckChild0Type, MVT::v16i8,
/*328657*/              OPC_MoveParent,
/*328658*/              OPC_RecordChild2, // #2 = $src0
/*328659*/              OPC_SwitchType /*2 cases */, 11, MVT::v16i16,// ->328673
/*328662*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*328664*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBWZ256rrk), 0,
                              MVT::v16i16, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (zext:{ *:[v16i16] } VR128X:{ *:[v16i8] }:$src), VR256X:{ *:[v16i16] }:$src0) - Complexity = 6
                          // Dst: (VPMOVZXBWZ256rrk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*328673*/              /*SwitchType*/ 11, MVT::v16i32,// ->328686
/*328675*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*328677*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBDZrrk), 0,
                              MVT::v16i32, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (zext:{ *:[v16i32] } VR128X:{ *:[v16i8] }:$src), VR512:{ *:[v16i32] }:$src0) - Complexity = 6
                          // Dst: (VPMOVZXBDZrrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*328686*/              0, // EndSwitchType
/*328687*/            /*Scope*/ 17, /*->328705*/
/*328688*/              OPC_CheckChild0Type, MVT::v16i16,
/*328690*/              OPC_MoveParent,
/*328691*/              OPC_RecordChild2, // #2 = $src0
/*328692*/              OPC_CheckType, MVT::v16i32,
/*328694*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*328696*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWDZrrk), 0,
                            MVT::v16i32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (zext:{ *:[v16i32] } VR256X:{ *:[v16i16] }:$src), VR512:{ *:[v16i32] }:$src0) - Complexity = 6
                        // Dst: (VPMOVZXWDZrrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src)
/*328705*/            0, /*End of Scope*/
/*328706*/          /*SwitchOpcode*/ 54, TARGET_VAL(ISD::SIGN_EXTEND),// ->328763
/*328709*/            OPC_RecordChild0, // #1 = $src
/*328710*/            OPC_Scope, 32, /*->328744*/ // 2 children in Scope
/*328712*/              OPC_CheckChild0Type, MVT::v16i8,
/*328714*/              OPC_MoveParent,
/*328715*/              OPC_RecordChild2, // #2 = $src0
/*328716*/              OPC_SwitchType /*2 cases */, 11, MVT::v16i16,// ->328730
/*328719*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*328721*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBWZ256rrk), 0,
                              MVT::v16i16, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (sext:{ *:[v16i16] } VR128X:{ *:[v16i8] }:$src), VR256X:{ *:[v16i16] }:$src0) - Complexity = 6
                          // Dst: (VPMOVSXBWZ256rrk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*328730*/              /*SwitchType*/ 11, MVT::v16i32,// ->328743
/*328732*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*328734*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBDZrrk), 0,
                              MVT::v16i32, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (sext:{ *:[v16i32] } VR128X:{ *:[v16i8] }:$src), VR512:{ *:[v16i32] }:$src0) - Complexity = 6
                          // Dst: (VPMOVSXBDZrrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*328743*/              0, // EndSwitchType
/*328744*/            /*Scope*/ 17, /*->328762*/
/*328745*/              OPC_CheckChild0Type, MVT::v16i16,
/*328747*/              OPC_MoveParent,
/*328748*/              OPC_RecordChild2, // #2 = $src0
/*328749*/              OPC_CheckType, MVT::v16i32,
/*328751*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*328753*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWDZrrk), 0,
                            MVT::v16i32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, (sext:{ *:[v16i32] } VR256X:{ *:[v16i16] }:$src), VR512:{ *:[v16i32] }:$src0) - Complexity = 6
                        // Dst: (VPMOVSXWDZrrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src)
/*328762*/            0, /*End of Scope*/
/*328763*/          /*SwitchOpcode*/ 44, TARGET_VAL(ISD::ABS),// ->328810
/*328766*/            OPC_RecordChild0, // #1 = $src1
/*328767*/            OPC_MoveParent,
/*328768*/            OPC_RecordChild2, // #2 = $src0
/*328769*/            OPC_SwitchType /*3 cases */, 11, MVT::v16i32,// ->328783
/*328772*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*328774*/              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)
/*328783*/            /*SwitchType*/ 11, MVT::v16i16,// ->328796
/*328785*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*328787*/              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)
/*328796*/            /*SwitchType*/ 11, MVT::v16i8,// ->328809
/*328798*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*328800*/              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)
/*328809*/            0, // EndSwitchType
/*328810*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::CTLZ),// ->328831
/*328813*/            OPC_RecordChild0, // #1 = $src1
/*328814*/            OPC_CheckChild0Type, MVT::v16i32,
/*328816*/            OPC_MoveParent,
/*328817*/            OPC_RecordChild2, // #2 = $src0
/*328818*/            OPC_CheckType, MVT::v16i32,
/*328820*/            OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*328822*/            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)
/*328831*/          /*SwitchOpcode*/ 16, TARGET_VAL(X86ISD::CONFLICT),// ->328850
/*328834*/            OPC_RecordChild0, // #1 = $src1
/*328835*/            OPC_MoveParent,
/*328836*/            OPC_RecordChild2, // #2 = $src0
/*328837*/            OPC_CheckType, MVT::v16i32,
/*328839*/            OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*328841*/            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)
/*328850*/          /*SwitchOpcode*/ 57, TARGET_VAL(ISD::CTPOP),// ->328910
/*328853*/            OPC_RecordChild0, // #1 = $src1
/*328854*/            OPC_Scope, 17, /*->328873*/ // 3 children in Scope
/*328856*/              OPC_CheckChild0Type, MVT::v16i32,
/*328858*/              OPC_MoveParent,
/*328859*/              OPC_RecordChild2, // #2 = $src0
/*328860*/              OPC_CheckType, MVT::v16i32,
/*328862*/              OPC_CheckPatternPredicate, 142, // (Subtarget->hasVPOPCNTDQ())
/*328864*/              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)
/*328873*/            /*Scope*/ 17, /*->328891*/
/*328874*/              OPC_CheckChild0Type, MVT::v16i8,
/*328876*/              OPC_MoveParent,
/*328877*/              OPC_RecordChild2, // #2 = $src0
/*328878*/              OPC_CheckType, MVT::v16i8,
/*328880*/              OPC_CheckPatternPredicate, 115, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/*328882*/              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)
/*328891*/            /*Scope*/ 17, /*->328909*/
/*328892*/              OPC_CheckChild0Type, MVT::v16i16,
/*328894*/              OPC_MoveParent,
/*328895*/              OPC_RecordChild2, // #2 = $src0
/*328896*/              OPC_CheckType, MVT::v16i16,
/*328898*/              OPC_CheckPatternPredicate, 115, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/*328900*/              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)
/*328909*/            0, /*End of Scope*/
/*328910*/          /*SwitchOpcode*/ 48, TARGET_VAL(X86ISD::UNPCKL),// ->328961
/*328913*/            OPC_RecordChild0, // #1 = $src1
/*328914*/            OPC_RecordChild1, // #2 = $src2
/*328915*/            OPC_MoveParent,
/*328916*/            OPC_RecordChild2, // #3 = $src0
/*328917*/            OPC_SwitchType /*3 cases */, 12, MVT::v16i8,// ->328932
/*328920*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*328922*/              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)
/*328932*/            /*SwitchType*/ 12, MVT::v16i16,// ->328946
/*328934*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*328936*/              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)
/*328946*/            /*SwitchType*/ 12, MVT::v16i32,// ->328960
/*328948*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*328950*/              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)
/*328960*/            0, // EndSwitchType
/*328961*/          /*SwitchOpcode*/ 48, TARGET_VAL(X86ISD::UNPCKH),// ->329012
/*328964*/            OPC_RecordChild0, // #1 = $src1
/*328965*/            OPC_RecordChild1, // #2 = $src2
/*328966*/            OPC_MoveParent,
/*328967*/            OPC_RecordChild2, // #3 = $src0
/*328968*/            OPC_SwitchType /*3 cases */, 12, MVT::v16i8,// ->328983
/*328971*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*328973*/              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)
/*328983*/            /*SwitchType*/ 12, MVT::v16i16,// ->328997
/*328985*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*328987*/              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)
/*328997*/            /*SwitchType*/ 12, MVT::v16i32,// ->329011
/*328999*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*329001*/              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)
/*329011*/            0, // EndSwitchType
/*329012*/          /*SwitchOpcode*/ 36, TARGET_VAL(X86ISD::VSHLDV),// ->329051
/*329015*/            OPC_RecordChild0, // #1 = $src1
/*329016*/            OPC_RecordChild1, // #2 = $src2
/*329017*/            OPC_RecordChild2, // #3 = $src3
/*329018*/            OPC_MoveParent,
/*329019*/            OPC_CheckChild2Same, 1,
/*329021*/            OPC_SwitchType /*2 cases */, 12, MVT::v16i16,// ->329036
/*329024*/              OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*329026*/              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)
/*329036*/            /*SwitchType*/ 12, MVT::v16i32,// ->329050
/*329038*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*329040*/              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)
/*329050*/            0, // EndSwitchType
/*329051*/          /*SwitchOpcode*/ 36, TARGET_VAL(X86ISD::VSHRDV),// ->329090
/*329054*/            OPC_RecordChild0, // #1 = $src1
/*329055*/            OPC_RecordChild1, // #2 = $src2
/*329056*/            OPC_RecordChild2, // #3 = $src3
/*329057*/            OPC_MoveParent,
/*329058*/            OPC_CheckChild2Same, 1,
/*329060*/            OPC_SwitchType /*2 cases */, 12, MVT::v16i16,// ->329075
/*329063*/              OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*329065*/              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)
/*329075*/            /*SwitchType*/ 12, MVT::v16i32,// ->329089
/*329077*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*329079*/              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)
/*329089*/            0, // EndSwitchType
/*329090*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::VPDPBUSD),// ->329113
/*329093*/            OPC_RecordChild0, // #1 = $src1
/*329094*/            OPC_RecordChild1, // #2 = $src2
/*329095*/            OPC_RecordChild2, // #3 = $src3
/*329096*/            OPC_MoveParent,
/*329097*/            OPC_CheckChild2Same, 1,
/*329099*/            OPC_CheckType, MVT::v16i32,
/*329101*/            OPC_CheckPatternPredicate, 148, // (Subtarget->hasVNNI())
/*329103*/            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)
/*329113*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::VPDPBUSDS),// ->329136
/*329116*/            OPC_RecordChild0, // #1 = $src1
/*329117*/            OPC_RecordChild1, // #2 = $src2
/*329118*/            OPC_RecordChild2, // #3 = $src3
/*329119*/            OPC_MoveParent,
/*329120*/            OPC_CheckChild2Same, 1,
/*329122*/            OPC_CheckType, MVT::v16i32,
/*329124*/            OPC_CheckPatternPredicate, 148, // (Subtarget->hasVNNI())
/*329126*/            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)
/*329136*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::VPDPWSSD),// ->329159
/*329139*/            OPC_RecordChild0, // #1 = $src1
/*329140*/            OPC_RecordChild1, // #2 = $src2
/*329141*/            OPC_RecordChild2, // #3 = $src3
/*329142*/            OPC_MoveParent,
/*329143*/            OPC_CheckChild2Same, 1,
/*329145*/            OPC_CheckType, MVT::v16i32,
/*329147*/            OPC_CheckPatternPredicate, 148, // (Subtarget->hasVNNI())
/*329149*/            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)
/*329159*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::VPDPWSSDS),// ->329182
/*329162*/            OPC_RecordChild0, // #1 = $src1
/*329163*/            OPC_RecordChild1, // #2 = $src2
/*329164*/            OPC_RecordChild2, // #3 = $src3
/*329165*/            OPC_MoveParent,
/*329166*/            OPC_CheckChild2Same, 1,
/*329168*/            OPC_CheckType, MVT::v16i32,
/*329170*/            OPC_CheckPatternPredicate, 148, // (Subtarget->hasVNNI())
/*329172*/            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)
/*329182*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::GF2P8MULB),// ->329203
/*329185*/            OPC_RecordChild0, // #1 = $src1
/*329186*/            OPC_RecordChild1, // #2 = $src2
/*329187*/            OPC_MoveParent,
/*329188*/            OPC_RecordChild2, // #3 = $src0
/*329189*/            OPC_CheckType, MVT::v16i8,
/*329191*/            OPC_CheckPatternPredicate, 180, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*329193*/            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)
/*329203*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::CVTNE2PS2BF16),// ->329226
/*329206*/            OPC_RecordChild0, // #1 = $src1
/*329207*/            OPC_CheckChild0Type, MVT::v8f32,
/*329209*/            OPC_RecordChild1, // #2 = $src2
/*329210*/            OPC_MoveParent,
/*329211*/            OPC_RecordChild2, // #3 = $src0
/*329212*/            OPC_CheckType, MVT::v16i16,
/*329214*/            OPC_CheckPatternPredicate, 182, // (Subtarget->hasBF16()) && (Subtarget->hasVLX())
/*329216*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTNE2PS2BF16Z256rrk), 0,
                          MVT::v16i16, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86cvtne2ps2bf16:{ *:[v16i16] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2), VR256X:{ *:[v16i16] }:$src0) - Complexity = 6
                      // Dst: (VCVTNE2PS2BF16Z256rrk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2)
/*329226*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::CVTNEPS2BF16),// ->329247
/*329229*/            OPC_RecordChild0, // #1 = $src
/*329230*/            OPC_CheckChild0Type, MVT::v16f32,
/*329232*/            OPC_MoveParent,
/*329233*/            OPC_RecordChild2, // #2 = $src0
/*329234*/            OPC_CheckType, MVT::v16i16,
/*329236*/            OPC_CheckPatternPredicate, 183, // (Subtarget->hasBF16())
/*329238*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTNEPS2BF16Zrrk), 0,
                          MVT::v16i16, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, (X86cvtneps2bf16:{ *:[v16i16] } VR512:{ *:[v16f32] }:$src), VR256X:{ *:[v16i16] }:$src0) - Complexity = 6
                      // Dst: (VCVTNEPS2BF16Zrrk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*329247*/          0, // EndSwitchOpcode
/*329248*/        /*Scope*/ 61|128,1/*189*/, /*->329439*/
/*329250*/          OPC_RecordChild1, // #1 = $src1
/*329251*/          OPC_RecordChild2, // #2 = $src0
/*329252*/          OPC_SwitchType /*3 cases */, 11, MVT::v16i32,// ->329266
/*329255*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*329257*/            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)
/*329266*/          /*SwitchType*/ 84, MVT::v16i8,// ->329352
/*329268*/            OPC_Scope, 11, /*->329281*/ // 2 children in Scope
/*329270*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*329272*/              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)
/*329281*/            /*Scope*/ 69, /*->329351*/
/*329282*/              OPC_CheckPatternPredicate, 117, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/*329284*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v64i8, 0/*#Ops*/,  // Results = #3
/*329290*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*329293*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v64i8, 3/*#Ops*/, 3, 2, 4,  // Results = #5
/*329302*/              OPC_EmitInteger, MVT::i32, X86::VK64WMRegClassID,
/*329305*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v64i1, 2/*#Ops*/, 0, 6,  // Results = #7
/*329313*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v64i8, 0/*#Ops*/,  // Results = #8
/*329319*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*329322*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v64i8, 3/*#Ops*/, 8, 1, 9,  // Results = #10
/*329331*/              OPC_EmitNode1, TARGET_VAL(X86::VMOVDQU8Zrrk), 0,
                            MVT::v64i8, 3/*#Ops*/, 5, 7, 10,  // Results = #11
/*329340*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*329343*/              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] })
/*329351*/            0, /*End of Scope*/
/*329352*/          /*SwitchType*/ 84, MVT::v16i16,// ->329438
/*329354*/            OPC_Scope, 11, /*->329367*/ // 2 children in Scope
/*329356*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*329358*/              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)
/*329367*/            /*Scope*/ 69, /*->329437*/
/*329368*/              OPC_CheckPatternPredicate, 117, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/*329370*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v32i16, 0/*#Ops*/,  // Results = #3
/*329376*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*329379*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v32i16, 3/*#Ops*/, 3, 2, 4,  // Results = #5
/*329388*/              OPC_EmitInteger, MVT::i32, X86::VK32WMRegClassID,
/*329391*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v32i1, 2/*#Ops*/, 0, 6,  // Results = #7
/*329399*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v32i16, 0/*#Ops*/,  // Results = #8
/*329405*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*329408*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v32i16, 3/*#Ops*/, 8, 1, 9,  // Results = #10
/*329417*/              OPC_EmitNode1, TARGET_VAL(X86::VMOVDQU16Zrrk), 0,
                            MVT::v32i16, 3/*#Ops*/, 5, 7, 10,  // Results = #11
/*329426*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*329429*/              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] })
/*329437*/            0, /*End of Scope*/
/*329438*/          0, // EndSwitchType
/*329439*/        /*Scope*/ 88|128,1/*216*/, /*->329657*/
/*329441*/          OPC_MoveChild1,
/*329442*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*329445*/          OPC_Scope, 108, /*->329555*/ // 2 children in Scope
/*329447*/            OPC_RecordChild0, // #1 = $ins
/*329448*/            OPC_MoveChild0,
/*329449*/            OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*329452*/            OPC_RecordChild0, // #2 = $src1
/*329453*/            OPC_MoveChild1,
/*329454*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*329457*/            OPC_RecordMemRef,
/*329458*/            OPC_RecordNode, // #3 = 'ld' chained node
/*329459*/            OPC_CheckFoldableChainNode,
/*329460*/            OPC_RecordChild1, // #4 = $src2
/*329461*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*329463*/            OPC_CheckPredicate, 9, // Predicate_load
/*329465*/            OPC_SwitchType /*2 cases */, 42, MVT::v2f64,// ->329510
/*329468*/              OPC_MoveParent,
/*329469*/              OPC_MoveChild2,
/*329470*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*329473*/              OPC_CheckType, MVT::iPTR,
/*329475*/              OPC_MoveParent,
/*329476*/              OPC_CheckType, MVT::v8f64,
/*329478*/              OPC_MoveParent,
/*329479*/              OPC_MoveParent,
/*329480*/              OPC_MoveChild2,
/*329481*/              OPC_CheckImmAllZerosV,
/*329482*/              OPC_MoveParent,
/*329483*/              OPC_CheckType, MVT::v16f32,
/*329485*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*329487*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*329490*/              OPC_EmitMergeInputChains, 1, 3, 
/*329493*/              OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*329496*/              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>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), immAllZerosV:{ *:[v16f32] }) - Complexity = 38
                        // Dst: (VINSERTF32x4Zrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR512:{ *:[v8f64] }:$ins))
/*329510*/            /*SwitchType*/ 42, MVT::v4f64,// ->329554
/*329512*/              OPC_MoveParent,
/*329513*/              OPC_MoveChild2,
/*329514*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*329517*/              OPC_CheckType, MVT::iPTR,
/*329519*/              OPC_MoveParent,
/*329520*/              OPC_CheckType, MVT::v8f64,
/*329522*/              OPC_MoveParent,
/*329523*/              OPC_MoveParent,
/*329524*/              OPC_MoveChild2,
/*329525*/              OPC_CheckImmAllZerosV,
/*329526*/              OPC_MoveParent,
/*329527*/              OPC_CheckType, MVT::v16f32,
/*329529*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*329531*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*329534*/              OPC_EmitMergeInputChains, 1, 3, 
/*329537*/              OPC_EmitNodeXForm, 16, 1, // INSERT_get_vinsert256_imm
/*329540*/              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>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$ins), immAllZerosV:{ *:[v16f32] }) - Complexity = 38
                        // Dst: (VINSERTF32x8Zrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } VR512:{ *:[v8f64] }:$ins))
/*329554*/            0, // EndSwitchType
/*329555*/          /*Scope*/ 100, /*->329656*/
/*329556*/            OPC_MoveChild0,
/*329557*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::SHUF128),
/*329560*/            OPC_RecordChild0, // #1 = $src1
/*329561*/            OPC_MoveChild1,
/*329562*/            OPC_SwitchOpcode /*2 cases */, 44, TARGET_VAL(ISD::LOAD),// ->329610
/*329566*/              OPC_RecordMemRef,
/*329567*/              OPC_RecordNode, // #2 = 'ld' chained node
/*329568*/              OPC_CheckFoldableChainNode,
/*329569*/              OPC_RecordChild1, // #3 = $src2
/*329570*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*329572*/              OPC_CheckPredicate, 9, // Predicate_load
/*329574*/              OPC_MoveParent,
/*329575*/              OPC_RecordChild2, // #4 = $src3
/*329576*/              OPC_MoveChild2,
/*329577*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*329580*/              OPC_MoveParent,
/*329581*/              OPC_CheckType, MVT::v8f64,
/*329583*/              OPC_MoveParent,
/*329584*/              OPC_MoveParent,
/*329585*/              OPC_MoveChild2,
/*329586*/              OPC_CheckImmAllZerosV,
/*329587*/              OPC_MoveParent,
/*329588*/              OPC_CheckType, MVT::v16f32,
/*329590*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*329592*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*329595*/              OPC_EmitMergeInputChains1_2,
/*329596*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF32X4Zrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (X86Shuf128:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3)), immAllZerosV:{ *:[v16f32] }) - Complexity = 38
                        // Dst: (VSHUFF32X4Zrmikz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*329610*/            /*SwitchOpcode*/ 42, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->329655
/*329613*/              OPC_RecordMemRef,
/*329614*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*329615*/              OPC_CheckFoldableChainNode,
/*329616*/              OPC_RecordChild1, // #3 = $src2
/*329617*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*329619*/              OPC_MoveParent,
/*329620*/              OPC_RecordChild2, // #4 = $src3
/*329621*/              OPC_MoveChild2,
/*329622*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*329625*/              OPC_MoveParent,
/*329626*/              OPC_CheckType, MVT::v8f64,
/*329628*/              OPC_MoveParent,
/*329629*/              OPC_MoveParent,
/*329630*/              OPC_MoveChild2,
/*329631*/              OPC_CheckImmAllZerosV,
/*329632*/              OPC_MoveParent,
/*329633*/              OPC_CheckType, MVT::v16f32,
/*329635*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*329637*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*329640*/              OPC_EmitMergeInputChains1_2,
/*329641*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF32X4Zrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (X86Shuf128:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src3)), immAllZerosV:{ *:[v16f32] }) - Complexity = 38
                        // Dst: (VSHUFF32X4Zrmbikz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*329655*/            0, // EndSwitchOpcode
/*329656*/          0, /*End of Scope*/
/*329657*/        /*Scope*/ 102, /*->329760*/
/*329658*/          OPC_RecordChild1, // #1 = $src3
/*329659*/          OPC_MoveChild1,
/*329660*/          OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*329663*/          OPC_RecordChild0, // #2 = $src1
/*329664*/          OPC_MoveChild1,
/*329665*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*329668*/          OPC_RecordMemRef,
/*329669*/          OPC_RecordNode, // #3 = 'ld' chained node
/*329670*/          OPC_CheckFoldableChainNode,
/*329671*/          OPC_RecordChild1, // #4 = $src2
/*329672*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*329674*/          OPC_CheckPredicate, 9, // Predicate_load
/*329676*/          OPC_SwitchType /*2 cases */, 39, MVT::v4f32,// ->329718
/*329679*/            OPC_MoveParent,
/*329680*/            OPC_MoveChild2,
/*329681*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*329684*/            OPC_CheckType, MVT::iPTR,
/*329686*/            OPC_MoveParent,
/*329687*/            OPC_MoveParent,
/*329688*/            OPC_MoveChild2,
/*329689*/            OPC_CheckImmAllZerosV,
/*329690*/            OPC_MoveParent,
/*329691*/            OPC_CheckType, MVT::v16f32,
/*329693*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*329695*/            OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*329698*/            OPC_EmitMergeInputChains, 1, 3, 
/*329701*/            OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*329704*/            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>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$src3, immAllZerosV:{ *:[v16f32] }) - Complexity = 35
                      // 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>>, (imm:{ *:[iPTR] })):$src3))
/*329718*/          /*SwitchType*/ 39, MVT::v8f32,// ->329759
/*329720*/            OPC_MoveParent,
/*329721*/            OPC_MoveChild2,
/*329722*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*329725*/            OPC_CheckType, MVT::iPTR,
/*329727*/            OPC_MoveParent,
/*329728*/            OPC_MoveParent,
/*329729*/            OPC_MoveChild2,
/*329730*/            OPC_CheckImmAllZerosV,
/*329731*/            OPC_MoveParent,
/*329732*/            OPC_CheckType, MVT::v16f32,
/*329734*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*329736*/            OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*329739*/            OPC_EmitMergeInputChains, 1, 3, 
/*329742*/            OPC_EmitNodeXForm, 16, 1, // INSERT_get_vinsert256_imm
/*329745*/            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>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$src3, immAllZerosV:{ *:[v16f32] }) - Complexity = 35
                      // 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>>, (imm:{ *:[iPTR] })):$src3))
/*329759*/          0, // EndSwitchType
/*329760*/        /*Scope*/ 101|128,57/*7397*/, /*->337159*/
/*329762*/          OPC_MoveChild1,
/*329763*/          OPC_SwitchOpcode /*51 cases */, 6|128,12/*1542*/, TARGET_VAL(ISD::BITCAST),// ->331310
/*329768*/            OPC_Scope, 13|128,10/*1293*/, /*->331064*/ // 3 children in Scope
/*329771*/              OPC_MoveChild0,
/*329772*/              OPC_SwitchOpcode /*5 cases */, 74, TARGET_VAL(X86ISD::SUBV_BROADCAST),// ->329850
/*329776*/                OPC_MoveChild0,
/*329777*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*329780*/                OPC_RecordMemRef,
/*329781*/                OPC_RecordNode, // #1 = 'ld' chained node
/*329782*/                OPC_CheckFoldableChainNode,
/*329783*/                OPC_RecordChild1, // #2 = $src
/*329784*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*329786*/                OPC_CheckPredicate, 9, // Predicate_load
/*329788*/                OPC_SwitchType /*2 cases */, 28, MVT::v2f64,// ->329819
/*329791*/                  OPC_MoveParent,
/*329792*/                  OPC_CheckType, MVT::v8f64,
/*329794*/                  OPC_MoveParent,
/*329795*/                  OPC_MoveParent,
/*329796*/                  OPC_MoveChild2,
/*329797*/                  OPC_CheckImmAllZerosV,
/*329798*/                  OPC_MoveParent,
/*329799*/                  OPC_CheckType, MVT::v16f32,
/*329801*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*329803*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*329806*/                  OPC_EmitMergeInputChains1_1,
/*329807*/                  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>>)), immAllZerosV:{ *:[v16f32] }) - Complexity = 35
                            // Dst: (VBROADCASTF32X4rmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*329819*/                /*SwitchType*/ 28, MVT::v4f64,// ->329849
/*329821*/                  OPC_MoveParent,
/*329822*/                  OPC_CheckType, MVT::v8f64,
/*329824*/                  OPC_MoveParent,
/*329825*/                  OPC_MoveParent,
/*329826*/                  OPC_MoveChild2,
/*329827*/                  OPC_CheckImmAllZerosV,
/*329828*/                  OPC_MoveParent,
/*329829*/                  OPC_CheckType, MVT::v16f32,
/*329831*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*329833*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*329836*/                  OPC_EmitMergeInputChains1_1,
/*329837*/                  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>>)), immAllZerosV:{ *:[v16f32] }) - Complexity = 35
                            // Dst: (VBROADCASTF32X8rmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*329849*/                0, // EndSwitchType
/*329850*/              /*SwitchOpcode*/ 87|128,2/*343*/, TARGET_VAL(ISD::AND),// ->330197
/*329854*/                OPC_Scope, 40|128,1/*168*/, /*->330025*/ // 2 children in Scope
/*329857*/                  OPC_RecordChild0, // #1 = $src1
/*329858*/                  OPC_MoveChild1,
/*329859*/                  OPC_SwitchOpcode /*2 cases */, 123, TARGET_VAL(ISD::LOAD),// ->329986
/*329863*/                    OPC_RecordMemRef,
/*329864*/                    OPC_RecordNode, // #2 = 'ld' chained node
/*329865*/                    OPC_CheckFoldableChainNode,
/*329866*/                    OPC_RecordChild1, // #3 = $src2
/*329867*/                    OPC_CheckPredicate, 4, // Predicate_unindexedload
/*329869*/                    OPC_CheckPredicate, 9, // Predicate_load
/*329871*/                    OPC_MoveParent,
/*329872*/                    OPC_SwitchType /*4 cases */, 26, MVT::v8i64,// ->329901
/*329875*/                      OPC_MoveParent,
/*329876*/                      OPC_MoveParent,
/*329877*/                      OPC_MoveChild2,
/*329878*/                      OPC_CheckImmAllZerosV,
/*329879*/                      OPC_MoveParent,
/*329880*/                      OPC_CheckType, MVT::v16f32,
/*329882*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*329884*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*329887*/                      OPC_EmitMergeInputChains1_2,
/*329888*/                      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>>)), immAllZerosV:{ *:[v16f32] }) - Complexity = 35
                                // Dst: (VPANDDZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*329901*/                    /*SwitchType*/ 26, MVT::v16i32,// ->329929
/*329903*/                      OPC_MoveParent,
/*329904*/                      OPC_MoveParent,
/*329905*/                      OPC_MoveChild2,
/*329906*/                      OPC_CheckImmAllZerosV,
/*329907*/                      OPC_MoveParent,
/*329908*/                      OPC_CheckType, MVT::v16f32,
/*329910*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*329912*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*329915*/                      OPC_EmitMergeInputChains1_2,
/*329916*/                      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:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v16f32] }) - Complexity = 35
                                // Dst: (VPANDDZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*329929*/                    /*SwitchType*/ 26, MVT::v32i16,// ->329957
/*329931*/                      OPC_MoveParent,
/*329932*/                      OPC_MoveParent,
/*329933*/                      OPC_MoveChild2,
/*329934*/                      OPC_CheckImmAllZerosV,
/*329935*/                      OPC_MoveParent,
/*329936*/                      OPC_CheckType, MVT::v16f32,
/*329938*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*329940*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*329943*/                      OPC_EmitMergeInputChains1_2,
/*329944*/                      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:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v16f32] }) - Complexity = 35
                                // Dst: (VPANDDZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*329957*/                    /*SwitchType*/ 26, MVT::v64i8,// ->329985
/*329959*/                      OPC_MoveParent,
/*329960*/                      OPC_MoveParent,
/*329961*/                      OPC_MoveChild2,
/*329962*/                      OPC_CheckImmAllZerosV,
/*329963*/                      OPC_MoveParent,
/*329964*/                      OPC_CheckType, MVT::v16f32,
/*329966*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*329968*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*329971*/                      OPC_EmitMergeInputChains1_2,
/*329972*/                      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:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v16f32] }) - Complexity = 35
                                // Dst: (VPANDDZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*329985*/                    0, // EndSwitchType
/*329986*/                  /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->330024
/*329989*/                    OPC_RecordMemRef,
/*329990*/                    OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*329991*/                    OPC_CheckFoldableChainNode,
/*329992*/                    OPC_RecordChild1, // #3 = $src2
/*329993*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*329995*/                    OPC_MoveParent,
/*329996*/                    OPC_CheckType, MVT::v16i32,
/*329998*/                    OPC_MoveParent,
/*329999*/                    OPC_MoveParent,
/*330000*/                    OPC_MoveChild2,
/*330001*/                    OPC_CheckImmAllZerosV,
/*330002*/                    OPC_MoveParent,
/*330003*/                    OPC_CheckType, MVT::v16f32,
/*330005*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*330007*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*330010*/                    OPC_EmitMergeInputChains1_2,
/*330011*/                    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:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>)), immAllZerosV:{ *:[v16f32] }) - Complexity = 35
                              // Dst: (VPANDDZrmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*330024*/                  0, // EndSwitchOpcode
/*330025*/                /*Scope*/ 41|128,1/*169*/, /*->330196*/
/*330027*/                  OPC_MoveChild0,
/*330028*/                  OPC_SwitchOpcode /*2 cases */, 124, TARGET_VAL(ISD::LOAD),// ->330156
/*330032*/                    OPC_RecordMemRef,
/*330033*/                    OPC_RecordNode, // #1 = 'ld' chained node
/*330034*/                    OPC_CheckFoldableChainNode,
/*330035*/                    OPC_RecordChild1, // #2 = $src2
/*330036*/                    OPC_CheckPredicate, 4, // Predicate_unindexedload
/*330038*/                    OPC_CheckPredicate, 9, // Predicate_load
/*330040*/                    OPC_MoveParent,
/*330041*/                    OPC_RecordChild1, // #3 = $src1
/*330042*/                    OPC_SwitchType /*4 cases */, 26, MVT::v8i64,// ->330071
/*330045*/                      OPC_MoveParent,
/*330046*/                      OPC_MoveParent,
/*330047*/                      OPC_MoveChild2,
/*330048*/                      OPC_CheckImmAllZerosV,
/*330049*/                      OPC_MoveParent,
/*330050*/                      OPC_CheckType, MVT::v16f32,
/*330052*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*330054*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*330057*/                      OPC_EmitMergeInputChains1_1,
/*330058*/                      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)), immAllZerosV:{ *:[v16f32] }) - Complexity = 35
                                // Dst: (VPANDDZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*330071*/                    /*SwitchType*/ 26, MVT::v16i32,// ->330099
/*330073*/                      OPC_MoveParent,
/*330074*/                      OPC_MoveParent,
/*330075*/                      OPC_MoveChild2,
/*330076*/                      OPC_CheckImmAllZerosV,
/*330077*/                      OPC_MoveParent,
/*330078*/                      OPC_CheckType, MVT::v16f32,
/*330080*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*330082*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*330085*/                      OPC_EmitMergeInputChains1_1,
/*330086*/                      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:{ *:[v16i32] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16i32] }:$src1)), immAllZerosV:{ *:[v16f32] }) - Complexity = 35
                                // Dst: (VPANDDZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*330099*/                    /*SwitchType*/ 26, MVT::v32i16,// ->330127
/*330101*/                      OPC_MoveParent,
/*330102*/                      OPC_MoveParent,
/*330103*/                      OPC_MoveChild2,
/*330104*/                      OPC_CheckImmAllZerosV,
/*330105*/                      OPC_MoveParent,
/*330106*/                      OPC_CheckType, MVT::v16f32,
/*330108*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*330110*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*330113*/                      OPC_EmitMergeInputChains1_1,
/*330114*/                      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:{ *:[v32i16] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1)), immAllZerosV:{ *:[v16f32] }) - Complexity = 35
                                // Dst: (VPANDDZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*330127*/                    /*SwitchType*/ 26, MVT::v64i8,// ->330155
/*330129*/                      OPC_MoveParent,
/*330130*/                      OPC_MoveParent,
/*330131*/                      OPC_MoveChild2,
/*330132*/                      OPC_CheckImmAllZerosV,
/*330133*/                      OPC_MoveParent,
/*330134*/                      OPC_CheckType, MVT::v16f32,
/*330136*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*330138*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*330141*/                      OPC_EmitMergeInputChains1_1,
/*330142*/                      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:{ *:[v64i8] } (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v64i8] }:$src1)), immAllZerosV:{ *:[v16f32] }) - Complexity = 35
                                // Dst: (VPANDDZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*330155*/                    0, // EndSwitchType
/*330156*/                  /*SwitchOpcode*/ 36, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->330195
/*330159*/                    OPC_RecordMemRef,
/*330160*/                    OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*330161*/                    OPC_CheckFoldableChainNode,
/*330162*/                    OPC_RecordChild1, // #2 = $src2
/*330163*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*330165*/                    OPC_MoveParent,
/*330166*/                    OPC_RecordChild1, // #3 = $src1
/*330167*/                    OPC_CheckType, MVT::v16i32,
/*330169*/                    OPC_MoveParent,
/*330170*/                    OPC_MoveParent,
/*330171*/                    OPC_MoveChild2,
/*330172*/                    OPC_CheckImmAllZerosV,
/*330173*/                    OPC_MoveParent,
/*330174*/                    OPC_CheckType, MVT::v16f32,
/*330176*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*330178*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*330181*/                    OPC_EmitMergeInputChains1_1,
/*330182*/                    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:{ *:[v16i32] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16i32] }:$src1)), immAllZerosV:{ *:[v16f32] }) - Complexity = 35
                              // Dst: (VPANDDZrmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*330195*/                  0, // EndSwitchOpcode
/*330196*/                0, /*End of Scope*/
/*330197*/              /*SwitchOpcode*/ 87|128,2/*343*/, TARGET_VAL(ISD::OR),// ->330544
/*330201*/                OPC_Scope, 40|128,1/*168*/, /*->330372*/ // 2 children in Scope
/*330204*/                  OPC_RecordChild0, // #1 = $src1
/*330205*/                  OPC_MoveChild1,
/*330206*/                  OPC_SwitchOpcode /*2 cases */, 123, TARGET_VAL(ISD::LOAD),// ->330333
/*330210*/                    OPC_RecordMemRef,
/*330211*/                    OPC_RecordNode, // #2 = 'ld' chained node
/*330212*/                    OPC_CheckFoldableChainNode,
/*330213*/                    OPC_RecordChild1, // #3 = $src2
/*330214*/                    OPC_CheckPredicate, 4, // Predicate_unindexedload
/*330216*/                    OPC_CheckPredicate, 9, // Predicate_load
/*330218*/                    OPC_MoveParent,
/*330219*/                    OPC_SwitchType /*4 cases */, 26, MVT::v8i64,// ->330248
/*330222*/                      OPC_MoveParent,
/*330223*/                      OPC_MoveParent,
/*330224*/                      OPC_MoveChild2,
/*330225*/                      OPC_CheckImmAllZerosV,
/*330226*/                      OPC_MoveParent,
/*330227*/                      OPC_CheckType, MVT::v16f32,
/*330229*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*330231*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*330234*/                      OPC_EmitMergeInputChains1_2,
/*330235*/                      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>>)), immAllZerosV:{ *:[v16f32] }) - Complexity = 35
                                // Dst: (VPORDZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*330248*/                    /*SwitchType*/ 26, MVT::v16i32,// ->330276
/*330250*/                      OPC_MoveParent,
/*330251*/                      OPC_MoveParent,
/*330252*/                      OPC_MoveChild2,
/*330253*/                      OPC_CheckImmAllZerosV,
/*330254*/                      OPC_MoveParent,
/*330255*/                      OPC_CheckType, MVT::v16f32,
/*330257*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*330259*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*330262*/                      OPC_EmitMergeInputChains1_2,
/*330263*/                      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:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v16f32] }) - Complexity = 35
                                // Dst: (VPORDZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*330276*/                    /*SwitchType*/ 26, MVT::v32i16,// ->330304
/*330278*/                      OPC_MoveParent,
/*330279*/                      OPC_MoveParent,
/*330280*/                      OPC_MoveChild2,
/*330281*/                      OPC_CheckImmAllZerosV,
/*330282*/                      OPC_MoveParent,
/*330283*/                      OPC_CheckType, MVT::v16f32,
/*330285*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*330287*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*330290*/                      OPC_EmitMergeInputChains1_2,
/*330291*/                      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:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v16f32] }) - Complexity = 35
                                // Dst: (VPORDZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*330304*/                    /*SwitchType*/ 26, MVT::v64i8,// ->330332
/*330306*/                      OPC_MoveParent,
/*330307*/                      OPC_MoveParent,
/*330308*/                      OPC_MoveChild2,
/*330309*/                      OPC_CheckImmAllZerosV,
/*330310*/                      OPC_MoveParent,
/*330311*/                      OPC_CheckType, MVT::v16f32,
/*330313*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*330315*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*330318*/                      OPC_EmitMergeInputChains1_2,
/*330319*/                      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:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v16f32] }) - Complexity = 35
                                // Dst: (VPORDZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*330332*/                    0, // EndSwitchType
/*330333*/                  /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->330371
/*330336*/                    OPC_RecordMemRef,
/*330337*/                    OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*330338*/                    OPC_CheckFoldableChainNode,
/*330339*/                    OPC_RecordChild1, // #3 = $src2
/*330340*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*330342*/                    OPC_MoveParent,
/*330343*/                    OPC_CheckType, MVT::v16i32,
/*330345*/                    OPC_MoveParent,
/*330346*/                    OPC_MoveParent,
/*330347*/                    OPC_MoveChild2,
/*330348*/                    OPC_CheckImmAllZerosV,
/*330349*/                    OPC_MoveParent,
/*330350*/                    OPC_CheckType, MVT::v16f32,
/*330352*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*330354*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*330357*/                    OPC_EmitMergeInputChains1_2,
/*330358*/                    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:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>)), immAllZerosV:{ *:[v16f32] }) - Complexity = 35
                              // Dst: (VPORDZrmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*330371*/                  0, // EndSwitchOpcode
/*330372*/                /*Scope*/ 41|128,1/*169*/, /*->330543*/
/*330374*/                  OPC_MoveChild0,
/*330375*/                  OPC_SwitchOpcode /*2 cases */, 124, TARGET_VAL(ISD::LOAD),// ->330503
/*330379*/                    OPC_RecordMemRef,
/*330380*/                    OPC_RecordNode, // #1 = 'ld' chained node
/*330381*/                    OPC_CheckFoldableChainNode,
/*330382*/                    OPC_RecordChild1, // #2 = $src2
/*330383*/                    OPC_CheckPredicate, 4, // Predicate_unindexedload
/*330385*/                    OPC_CheckPredicate, 9, // Predicate_load
/*330387*/                    OPC_MoveParent,
/*330388*/                    OPC_RecordChild1, // #3 = $src1
/*330389*/                    OPC_SwitchType /*4 cases */, 26, MVT::v8i64,// ->330418
/*330392*/                      OPC_MoveParent,
/*330393*/                      OPC_MoveParent,
/*330394*/                      OPC_MoveChild2,
/*330395*/                      OPC_CheckImmAllZerosV,
/*330396*/                      OPC_MoveParent,
/*330397*/                      OPC_CheckType, MVT::v16f32,
/*330399*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*330401*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*330404*/                      OPC_EmitMergeInputChains1_1,
/*330405*/                      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)), immAllZerosV:{ *:[v16f32] }) - Complexity = 35
                                // Dst: (VPORDZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*330418*/                    /*SwitchType*/ 26, MVT::v16i32,// ->330446
/*330420*/                      OPC_MoveParent,
/*330421*/                      OPC_MoveParent,
/*330422*/                      OPC_MoveChild2,
/*330423*/                      OPC_CheckImmAllZerosV,
/*330424*/                      OPC_MoveParent,
/*330425*/                      OPC_CheckType, MVT::v16f32,
/*330427*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*330429*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*330432*/                      OPC_EmitMergeInputChains1_1,
/*330433*/                      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:{ *:[v16i32] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16i32] }:$src1)), immAllZerosV:{ *:[v16f32] }) - Complexity = 35
                                // Dst: (VPORDZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*330446*/                    /*SwitchType*/ 26, MVT::v32i16,// ->330474
/*330448*/                      OPC_MoveParent,
/*330449*/                      OPC_MoveParent,
/*330450*/                      OPC_MoveChild2,
/*330451*/                      OPC_CheckImmAllZerosV,
/*330452*/                      OPC_MoveParent,
/*330453*/                      OPC_CheckType, MVT::v16f32,
/*330455*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*330457*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*330460*/                      OPC_EmitMergeInputChains1_1,
/*330461*/                      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:{ *:[v32i16] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1)), immAllZerosV:{ *:[v16f32] }) - Complexity = 35
                                // Dst: (VPORDZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*330474*/                    /*SwitchType*/ 26, MVT::v64i8,// ->330502
/*330476*/                      OPC_MoveParent,
/*330477*/                      OPC_MoveParent,
/*330478*/                      OPC_MoveChild2,
/*330479*/                      OPC_CheckImmAllZerosV,
/*330480*/                      OPC_MoveParent,
/*330481*/                      OPC_CheckType, MVT::v16f32,
/*330483*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*330485*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*330488*/                      OPC_EmitMergeInputChains1_1,
/*330489*/                      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:{ *:[v64i8] } (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v64i8] }:$src1)), immAllZerosV:{ *:[v16f32] }) - Complexity = 35
                                // Dst: (VPORDZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*330502*/                    0, // EndSwitchType
/*330503*/                  /*SwitchOpcode*/ 36, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->330542
/*330506*/                    OPC_RecordMemRef,
/*330507*/                    OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*330508*/                    OPC_CheckFoldableChainNode,
/*330509*/                    OPC_RecordChild1, // #2 = $src2
/*330510*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*330512*/                    OPC_MoveParent,
/*330513*/                    OPC_RecordChild1, // #3 = $src1
/*330514*/                    OPC_CheckType, MVT::v16i32,
/*330516*/                    OPC_MoveParent,
/*330517*/                    OPC_MoveParent,
/*330518*/                    OPC_MoveChild2,
/*330519*/                    OPC_CheckImmAllZerosV,
/*330520*/                    OPC_MoveParent,
/*330521*/                    OPC_CheckType, MVT::v16f32,
/*330523*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*330525*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*330528*/                    OPC_EmitMergeInputChains1_1,
/*330529*/                    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:{ *:[v16i32] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16i32] }:$src1)), immAllZerosV:{ *:[v16f32] }) - Complexity = 35
                              // Dst: (VPORDZrmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*330542*/                  0, // EndSwitchOpcode
/*330543*/                0, /*End of Scope*/
/*330544*/              /*SwitchOpcode*/ 87|128,2/*343*/, TARGET_VAL(ISD::XOR),// ->330891
/*330548*/                OPC_Scope, 40|128,1/*168*/, /*->330719*/ // 2 children in Scope
/*330551*/                  OPC_RecordChild0, // #1 = $src1
/*330552*/                  OPC_MoveChild1,
/*330553*/                  OPC_SwitchOpcode /*2 cases */, 123, TARGET_VAL(ISD::LOAD),// ->330680
/*330557*/                    OPC_RecordMemRef,
/*330558*/                    OPC_RecordNode, // #2 = 'ld' chained node
/*330559*/                    OPC_CheckFoldableChainNode,
/*330560*/                    OPC_RecordChild1, // #3 = $src2
/*330561*/                    OPC_CheckPredicate, 4, // Predicate_unindexedload
/*330563*/                    OPC_CheckPredicate, 9, // Predicate_load
/*330565*/                    OPC_MoveParent,
/*330566*/                    OPC_SwitchType /*4 cases */, 26, MVT::v8i64,// ->330595
/*330569*/                      OPC_MoveParent,
/*330570*/                      OPC_MoveParent,
/*330571*/                      OPC_MoveChild2,
/*330572*/                      OPC_CheckImmAllZerosV,
/*330573*/                      OPC_MoveParent,
/*330574*/                      OPC_CheckType, MVT::v16f32,
/*330576*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*330578*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*330581*/                      OPC_EmitMergeInputChains1_2,
/*330582*/                      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>>)), immAllZerosV:{ *:[v16f32] }) - Complexity = 35
                                // Dst: (VPXORDZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*330595*/                    /*SwitchType*/ 26, MVT::v16i32,// ->330623
/*330597*/                      OPC_MoveParent,
/*330598*/                      OPC_MoveParent,
/*330599*/                      OPC_MoveChild2,
/*330600*/                      OPC_CheckImmAllZerosV,
/*330601*/                      OPC_MoveParent,
/*330602*/                      OPC_CheckType, MVT::v16f32,
/*330604*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*330606*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*330609*/                      OPC_EmitMergeInputChains1_2,
/*330610*/                      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:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v16f32] }) - Complexity = 35
                                // Dst: (VPXORDZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*330623*/                    /*SwitchType*/ 26, MVT::v32i16,// ->330651
/*330625*/                      OPC_MoveParent,
/*330626*/                      OPC_MoveParent,
/*330627*/                      OPC_MoveChild2,
/*330628*/                      OPC_CheckImmAllZerosV,
/*330629*/                      OPC_MoveParent,
/*330630*/                      OPC_CheckType, MVT::v16f32,
/*330632*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*330634*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*330637*/                      OPC_EmitMergeInputChains1_2,
/*330638*/                      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:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v16f32] }) - Complexity = 35
                                // Dst: (VPXORDZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*330651*/                    /*SwitchType*/ 26, MVT::v64i8,// ->330679
/*330653*/                      OPC_MoveParent,
/*330654*/                      OPC_MoveParent,
/*330655*/                      OPC_MoveChild2,
/*330656*/                      OPC_CheckImmAllZerosV,
/*330657*/                      OPC_MoveParent,
/*330658*/                      OPC_CheckType, MVT::v16f32,
/*330660*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*330662*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*330665*/                      OPC_EmitMergeInputChains1_2,
/*330666*/                      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:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v16f32] }) - Complexity = 35
                                // Dst: (VPXORDZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*330679*/                    0, // EndSwitchType
/*330680*/                  /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->330718
/*330683*/                    OPC_RecordMemRef,
/*330684*/                    OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*330685*/                    OPC_CheckFoldableChainNode,
/*330686*/                    OPC_RecordChild1, // #3 = $src2
/*330687*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*330689*/                    OPC_MoveParent,
/*330690*/                    OPC_CheckType, MVT::v16i32,
/*330692*/                    OPC_MoveParent,
/*330693*/                    OPC_MoveParent,
/*330694*/                    OPC_MoveChild2,
/*330695*/                    OPC_CheckImmAllZerosV,
/*330696*/                    OPC_MoveParent,
/*330697*/                    OPC_CheckType, MVT::v16f32,
/*330699*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*330701*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*330704*/                    OPC_EmitMergeInputChains1_2,
/*330705*/                    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:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>)), immAllZerosV:{ *:[v16f32] }) - Complexity = 35
                              // Dst: (VPXORDZrmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*330718*/                  0, // EndSwitchOpcode
/*330719*/                /*Scope*/ 41|128,1/*169*/, /*->330890*/
/*330721*/                  OPC_MoveChild0,
/*330722*/                  OPC_SwitchOpcode /*2 cases */, 124, TARGET_VAL(ISD::LOAD),// ->330850
/*330726*/                    OPC_RecordMemRef,
/*330727*/                    OPC_RecordNode, // #1 = 'ld' chained node
/*330728*/                    OPC_CheckFoldableChainNode,
/*330729*/                    OPC_RecordChild1, // #2 = $src2
/*330730*/                    OPC_CheckPredicate, 4, // Predicate_unindexedload
/*330732*/                    OPC_CheckPredicate, 9, // Predicate_load
/*330734*/                    OPC_MoveParent,
/*330735*/                    OPC_RecordChild1, // #3 = $src1
/*330736*/                    OPC_SwitchType /*4 cases */, 26, MVT::v8i64,// ->330765
/*330739*/                      OPC_MoveParent,
/*330740*/                      OPC_MoveParent,
/*330741*/                      OPC_MoveChild2,
/*330742*/                      OPC_CheckImmAllZerosV,
/*330743*/                      OPC_MoveParent,
/*330744*/                      OPC_CheckType, MVT::v16f32,
/*330746*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*330748*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*330751*/                      OPC_EmitMergeInputChains1_1,
/*330752*/                      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)), immAllZerosV:{ *:[v16f32] }) - Complexity = 35
                                // Dst: (VPXORDZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*330765*/                    /*SwitchType*/ 26, MVT::v16i32,// ->330793
/*330767*/                      OPC_MoveParent,
/*330768*/                      OPC_MoveParent,
/*330769*/                      OPC_MoveChild2,
/*330770*/                      OPC_CheckImmAllZerosV,
/*330771*/                      OPC_MoveParent,
/*330772*/                      OPC_CheckType, MVT::v16f32,
/*330774*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*330776*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*330779*/                      OPC_EmitMergeInputChains1_1,
/*330780*/                      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:{ *:[v16i32] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16i32] }:$src1)), immAllZerosV:{ *:[v16f32] }) - Complexity = 35
                                // Dst: (VPXORDZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*330793*/                    /*SwitchType*/ 26, MVT::v32i16,// ->330821
/*330795*/                      OPC_MoveParent,
/*330796*/                      OPC_MoveParent,
/*330797*/                      OPC_MoveChild2,
/*330798*/                      OPC_CheckImmAllZerosV,
/*330799*/                      OPC_MoveParent,
/*330800*/                      OPC_CheckType, MVT::v16f32,
/*330802*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*330804*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*330807*/                      OPC_EmitMergeInputChains1_1,
/*330808*/                      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:{ *:[v32i16] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1)), immAllZerosV:{ *:[v16f32] }) - Complexity = 35
                                // Dst: (VPXORDZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*330821*/                    /*SwitchType*/ 26, MVT::v64i8,// ->330849
/*330823*/                      OPC_MoveParent,
/*330824*/                      OPC_MoveParent,
/*330825*/                      OPC_MoveChild2,
/*330826*/                      OPC_CheckImmAllZerosV,
/*330827*/                      OPC_MoveParent,
/*330828*/                      OPC_CheckType, MVT::v16f32,
/*330830*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*330832*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*330835*/                      OPC_EmitMergeInputChains1_1,
/*330836*/                      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:{ *:[v64i8] } (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v64i8] }:$src1)), immAllZerosV:{ *:[v16f32] }) - Complexity = 35
                                // Dst: (VPXORDZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*330849*/                    0, // EndSwitchType
/*330850*/                  /*SwitchOpcode*/ 36, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->330889
/*330853*/                    OPC_RecordMemRef,
/*330854*/                    OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*330855*/                    OPC_CheckFoldableChainNode,
/*330856*/                    OPC_RecordChild1, // #2 = $src2
/*330857*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*330859*/                    OPC_MoveParent,
/*330860*/                    OPC_RecordChild1, // #3 = $src1
/*330861*/                    OPC_CheckType, MVT::v16i32,
/*330863*/                    OPC_MoveParent,
/*330864*/                    OPC_MoveParent,
/*330865*/                    OPC_MoveChild2,
/*330866*/                    OPC_CheckImmAllZerosV,
/*330867*/                    OPC_MoveParent,
/*330868*/                    OPC_CheckType, MVT::v16f32,
/*330870*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*330872*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*330875*/                    OPC_EmitMergeInputChains1_1,
/*330876*/                    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:{ *:[v16i32] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16i32] }:$src1)), immAllZerosV:{ *:[v16f32] }) - Complexity = 35
                              // Dst: (VPXORDZrmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*330889*/                  0, // EndSwitchOpcode
/*330890*/                0, /*End of Scope*/
/*330891*/              /*SwitchOpcode*/ 40|128,1/*168*/, TARGET_VAL(X86ISD::ANDNP),// ->331063
/*330895*/                OPC_RecordChild0, // #1 = $src1
/*330896*/                OPC_MoveChild1,
/*330897*/                OPC_SwitchOpcode /*2 cases */, 123, TARGET_VAL(ISD::LOAD),// ->331024
/*330901*/                  OPC_RecordMemRef,
/*330902*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*330903*/                  OPC_CheckFoldableChainNode,
/*330904*/                  OPC_RecordChild1, // #3 = $src2
/*330905*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*330907*/                  OPC_CheckPredicate, 9, // Predicate_load
/*330909*/                  OPC_MoveParent,
/*330910*/                  OPC_SwitchType /*4 cases */, 26, MVT::v8i64,// ->330939
/*330913*/                    OPC_MoveParent,
/*330914*/                    OPC_MoveParent,
/*330915*/                    OPC_MoveChild2,
/*330916*/                    OPC_CheckImmAllZerosV,
/*330917*/                    OPC_MoveParent,
/*330918*/                    OPC_CheckType, MVT::v16f32,
/*330920*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*330922*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*330925*/                    OPC_EmitMergeInputChains1_2,
/*330926*/                    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>>)), immAllZerosV:{ *:[v16f32] }) - Complexity = 35
                              // Dst: (VPANDNDZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*330939*/                  /*SwitchType*/ 26, MVT::v16i32,// ->330967
/*330941*/                    OPC_MoveParent,
/*330942*/                    OPC_MoveParent,
/*330943*/                    OPC_MoveChild2,
/*330944*/                    OPC_CheckImmAllZerosV,
/*330945*/                    OPC_MoveParent,
/*330946*/                    OPC_CheckType, MVT::v16f32,
/*330948*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*330950*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*330953*/                    OPC_EmitMergeInputChains1_2,
/*330954*/                    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:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v16f32] }) - Complexity = 35
                              // Dst: (VPANDNDZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*330967*/                  /*SwitchType*/ 26, MVT::v32i16,// ->330995
/*330969*/                    OPC_MoveParent,
/*330970*/                    OPC_MoveParent,
/*330971*/                    OPC_MoveChild2,
/*330972*/                    OPC_CheckImmAllZerosV,
/*330973*/                    OPC_MoveParent,
/*330974*/                    OPC_CheckType, MVT::v16f32,
/*330976*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*330978*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*330981*/                    OPC_EmitMergeInputChains1_2,
/*330982*/                    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:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v16f32] }) - Complexity = 35
                              // Dst: (VPANDNDZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*330995*/                  /*SwitchType*/ 26, MVT::v64i8,// ->331023
/*330997*/                    OPC_MoveParent,
/*330998*/                    OPC_MoveParent,
/*330999*/                    OPC_MoveChild2,
/*331000*/                    OPC_CheckImmAllZerosV,
/*331001*/                    OPC_MoveParent,
/*331002*/                    OPC_CheckType, MVT::v16f32,
/*331004*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*331006*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*331009*/                    OPC_EmitMergeInputChains1_2,
/*331010*/                    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:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v16f32] }) - Complexity = 35
                              // Dst: (VPANDNDZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*331023*/                  0, // EndSwitchType
/*331024*/                /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->331062
/*331027*/                  OPC_RecordMemRef,
/*331028*/                  OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*331029*/                  OPC_CheckFoldableChainNode,
/*331030*/                  OPC_RecordChild1, // #3 = $src2
/*331031*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*331033*/                  OPC_MoveParent,
/*331034*/                  OPC_CheckType, MVT::v16i32,
/*331036*/                  OPC_MoveParent,
/*331037*/                  OPC_MoveParent,
/*331038*/                  OPC_MoveChild2,
/*331039*/                  OPC_CheckImmAllZerosV,
/*331040*/                  OPC_MoveParent,
/*331041*/                  OPC_CheckType, MVT::v16f32,
/*331043*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*331045*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*331048*/                  OPC_EmitMergeInputChains1_2,
/*331049*/                  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:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>)), immAllZerosV:{ *:[v16f32] }) - Complexity = 35
                            // Dst: (VPANDNDZrmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*331062*/                0, // EndSwitchOpcode
/*331063*/              0, // EndSwitchOpcode
/*331064*/            /*Scope*/ 106, /*->331171*/
/*331065*/              OPC_RecordChild0, // #1 = $ins
/*331066*/              OPC_MoveChild0,
/*331067*/              OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*331070*/              OPC_RecordChild0, // #2 = $src1
/*331071*/              OPC_MoveChild1,
/*331072*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*331075*/              OPC_RecordMemRef,
/*331076*/              OPC_RecordNode, // #3 = 'ld' chained node
/*331077*/              OPC_CheckFoldableChainNode,
/*331078*/              OPC_RecordChild1, // #4 = $src2
/*331079*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*331081*/              OPC_CheckPredicate, 9, // Predicate_load
/*331083*/              OPC_SwitchType /*2 cases */, 41, MVT::v2f64,// ->331127
/*331086*/                OPC_MoveParent,
/*331087*/                OPC_MoveChild2,
/*331088*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*331091*/                OPC_CheckType, MVT::iPTR,
/*331093*/                OPC_MoveParent,
/*331094*/                OPC_CheckType, MVT::v8f64,
/*331096*/                OPC_MoveParent,
/*331097*/                OPC_MoveParent,
/*331098*/                OPC_RecordChild2, // #5 = $src0
/*331099*/                OPC_CheckType, MVT::v16f32,
/*331101*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*331103*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*331106*/                OPC_EmitMergeInputChains, 1, 3, 
/*331109*/                OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*331112*/                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>>, (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))
/*331127*/              /*SwitchType*/ 41, MVT::v4f64,// ->331170
/*331129*/                OPC_MoveParent,
/*331130*/                OPC_MoveChild2,
/*331131*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*331134*/                OPC_CheckType, MVT::iPTR,
/*331136*/                OPC_MoveParent,
/*331137*/                OPC_CheckType, MVT::v8f64,
/*331139*/                OPC_MoveParent,
/*331140*/                OPC_MoveParent,
/*331141*/                OPC_RecordChild2, // #5 = $src0
/*331142*/                OPC_CheckType, MVT::v16f32,
/*331144*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*331146*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*331149*/                OPC_EmitMergeInputChains, 1, 3, 
/*331152*/                OPC_EmitNodeXForm, 16, 1, // INSERT_get_vinsert256_imm
/*331155*/                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>>, (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))
/*331170*/              0, // EndSwitchType
/*331171*/            /*Scope*/ 8|128,1/*136*/, /*->331309*/
/*331173*/              OPC_MoveChild0,
/*331174*/              OPC_SwitchOpcode /*2 cases */, 94, TARGET_VAL(X86ISD::SHUF128),// ->331272
/*331178*/                OPC_RecordChild0, // #1 = $src1
/*331179*/                OPC_MoveChild1,
/*331180*/                OPC_SwitchOpcode /*2 cases */, 43, TARGET_VAL(ISD::LOAD),// ->331227
/*331184*/                  OPC_RecordMemRef,
/*331185*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*331186*/                  OPC_CheckFoldableChainNode,
/*331187*/                  OPC_RecordChild1, // #3 = $src2
/*331188*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*331190*/                  OPC_CheckPredicate, 9, // Predicate_load
/*331192*/                  OPC_MoveParent,
/*331193*/                  OPC_RecordChild2, // #4 = $src3
/*331194*/                  OPC_MoveChild2,
/*331195*/                  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*331198*/                  OPC_MoveParent,
/*331199*/                  OPC_CheckType, MVT::v8f64,
/*331201*/                  OPC_MoveParent,
/*331202*/                  OPC_MoveParent,
/*331203*/                  OPC_RecordChild2, // #5 = $src0
/*331204*/                  OPC_CheckType, MVT::v16f32,
/*331206*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*331208*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*331211*/                  OPC_EmitMergeInputChains1_2,
/*331212*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF32X4Zrmik), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16f32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                            // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (X86Shuf128:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3)), VR512:{ *:[v16f32] }:$src0) - Complexity = 34
                            // Dst: (VSHUFF32X4Zrmik:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*331227*/                /*SwitchOpcode*/ 41, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->331271
/*331230*/                  OPC_RecordMemRef,
/*331231*/                  OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*331232*/                  OPC_CheckFoldableChainNode,
/*331233*/                  OPC_RecordChild1, // #3 = $src2
/*331234*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*331236*/                  OPC_MoveParent,
/*331237*/                  OPC_RecordChild2, // #4 = $src3
/*331238*/                  OPC_MoveChild2,
/*331239*/                  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*331242*/                  OPC_MoveParent,
/*331243*/                  OPC_CheckType, MVT::v8f64,
/*331245*/                  OPC_MoveParent,
/*331246*/                  OPC_MoveParent,
/*331247*/                  OPC_RecordChild2, // #5 = $src0
/*331248*/                  OPC_CheckType, MVT::v16f32,
/*331250*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*331252*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*331255*/                  OPC_EmitMergeInputChains1_2,
/*331256*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF32X4Zrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16f32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                            // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (X86Shuf128:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src3)), VR512:{ *:[v16f32] }:$src0) - Complexity = 34
                            // Dst: (VSHUFF32X4Zrmbik:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*331271*/                0, // EndSwitchOpcode
/*331272*/              /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->331308
/*331275*/                OPC_RecordMemRef,
/*331276*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*331277*/                OPC_CheckFoldableChainNode,
/*331278*/                OPC_RecordChild1, // #2 = $src
/*331279*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*331281*/                OPC_CheckType, MVT::v8f64,
/*331283*/                OPC_MoveParent,
/*331284*/                OPC_MoveParent,
/*331285*/                OPC_MoveChild2,
/*331286*/                OPC_CheckImmAllZerosV,
/*331287*/                OPC_MoveParent,
/*331288*/                OPC_CheckType, MVT::v16f32,
/*331290*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*331292*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*331295*/                OPC_EmitMergeInputChains1_1,
/*331296*/                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] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                          // Dst: (VBROADCASTF32X2Zmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*331308*/              0, // EndSwitchOpcode
/*331309*/            0, /*End of Scope*/
/*331310*/          /*SwitchOpcode*/ 87, TARGET_VAL(X86ISD::VPERMILPI),// ->331400
/*331313*/            OPC_MoveChild0,
/*331314*/            OPC_SwitchOpcode /*2 cases */, 40, TARGET_VAL(ISD::LOAD),// ->331358
/*331318*/              OPC_RecordMemRef,
/*331319*/              OPC_RecordNode, // #1 = 'ld' chained node
/*331320*/              OPC_CheckFoldableChainNode,
/*331321*/              OPC_RecordChild1, // #2 = $src1
/*331322*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*331324*/              OPC_CheckPredicate, 9, // Predicate_load
/*331326*/              OPC_MoveParent,
/*331327*/              OPC_RecordChild1, // #3 = $src2
/*331328*/              OPC_MoveChild1,
/*331329*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*331332*/              OPC_MoveParent,
/*331333*/              OPC_MoveParent,
/*331334*/              OPC_MoveChild2,
/*331335*/              OPC_CheckImmAllZerosV,
/*331336*/              OPC_MoveParent,
/*331337*/              OPC_CheckType, MVT::v16f32,
/*331339*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*331341*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*331344*/              OPC_EmitMergeInputChains1_1,
/*331345*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermilpi:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v16f32] }) - Complexity = 35
                        // Dst: (VPERMILPSZmikz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*331358*/            /*SwitchOpcode*/ 38, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->331399
/*331361*/              OPC_RecordMemRef,
/*331362*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*331363*/              OPC_CheckFoldableChainNode,
/*331364*/              OPC_RecordChild1, // #2 = $src1
/*331365*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*331367*/              OPC_MoveParent,
/*331368*/              OPC_RecordChild1, // #3 = $src2
/*331369*/              OPC_MoveChild1,
/*331370*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*331373*/              OPC_MoveParent,
/*331374*/              OPC_MoveParent,
/*331375*/              OPC_MoveChild2,
/*331376*/              OPC_CheckImmAllZerosV,
/*331377*/              OPC_MoveParent,
/*331378*/              OPC_CheckType, MVT::v16f32,
/*331380*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*331382*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*331385*/              OPC_EmitMergeInputChains1_1,
/*331386*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermilpi:{ *:[v16f32] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v16f32] }) - Complexity = 35
                        // Dst: (VPERMILPSZmbikz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*331399*/            0, // EndSwitchOpcode
/*331400*/          /*SwitchOpcode*/ 87, TARGET_VAL(X86ISD::VREDUCE),// ->331490
/*331403*/            OPC_MoveChild0,
/*331404*/            OPC_SwitchOpcode /*2 cases */, 40, TARGET_VAL(ISD::LOAD),// ->331448
/*331408*/              OPC_RecordMemRef,
/*331409*/              OPC_RecordNode, // #1 = 'ld' chained node
/*331410*/              OPC_CheckFoldableChainNode,
/*331411*/              OPC_RecordChild1, // #2 = $src1
/*331412*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*331414*/              OPC_CheckPredicate, 9, // Predicate_load
/*331416*/              OPC_MoveParent,
/*331417*/              OPC_RecordChild1, // #3 = $src2
/*331418*/              OPC_MoveChild1,
/*331419*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*331422*/              OPC_MoveParent,
/*331423*/              OPC_MoveParent,
/*331424*/              OPC_MoveChild2,
/*331425*/              OPC_CheckImmAllZerosV,
/*331426*/              OPC_MoveParent,
/*331427*/              OPC_CheckType, MVT::v16f32,
/*331429*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*331431*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*331434*/              OPC_EmitMergeInputChains1_1,
/*331435*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPSZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VReduce:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v16f32] }) - Complexity = 35
                        // Dst: (VREDUCEPSZrmikz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*331448*/            /*SwitchOpcode*/ 38, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->331489
/*331451*/              OPC_RecordMemRef,
/*331452*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*331453*/              OPC_CheckFoldableChainNode,
/*331454*/              OPC_RecordChild1, // #2 = $src1
/*331455*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*331457*/              OPC_MoveParent,
/*331458*/              OPC_RecordChild1, // #3 = $src2
/*331459*/              OPC_MoveChild1,
/*331460*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*331463*/              OPC_MoveParent,
/*331464*/              OPC_MoveParent,
/*331465*/              OPC_MoveChild2,
/*331466*/              OPC_CheckImmAllZerosV,
/*331467*/              OPC_MoveParent,
/*331468*/              OPC_CheckType, MVT::v16f32,
/*331470*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*331472*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*331475*/              OPC_EmitMergeInputChains1_1,
/*331476*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPSZrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VReduce:{ *:[v16f32] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v16f32] }) - Complexity = 35
                        // Dst: (VREDUCEPSZrmbikz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*331489*/            0, // EndSwitchOpcode
/*331490*/          /*SwitchOpcode*/ 95, TARGET_VAL(X86ISD::STRICT_VRNDSCALE),// ->331588
/*331493*/            OPC_RecordNode, // #1 = 'X86strict_VRndScale' chained node
/*331494*/            OPC_CheckFoldableChainNode,
/*331495*/            OPC_MoveChild1,
/*331496*/            OPC_SwitchOpcode /*2 cases */, 43, TARGET_VAL(ISD::LOAD),// ->331543
/*331500*/              OPC_RecordMemRef,
/*331501*/              OPC_RecordNode, // #2 = 'ld' chained node
/*331502*/              OPC_CheckFoldableChainNode,
/*331503*/              OPC_RecordChild1, // #3 = $src1
/*331504*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*331506*/              OPC_CheckPredicate, 9, // Predicate_load
/*331508*/              OPC_MoveParent,
/*331509*/              OPC_RecordChild2, // #4 = $src2
/*331510*/              OPC_MoveChild2,
/*331511*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*331514*/              OPC_MoveParent,
/*331515*/              OPC_MoveParent,
/*331516*/              OPC_MoveChild2,
/*331517*/              OPC_CheckImmAllZerosV,
/*331518*/              OPC_MoveParent,
/*331519*/              OPC_CheckType, MVT::v16f32,
/*331521*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*331523*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src1 #5 #6 #7 #8 #9
/*331526*/              OPC_EmitMergeInputChains, 2, 1, 2, 
/*331530*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 0, 5, 6, 7, 8, 9, 4, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86strict_VRndScale:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v16f32] }) - Complexity = 35
                        // Dst: (VRNDSCALEPSZrmikz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*331543*/            /*SwitchOpcode*/ 41, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->331587
/*331546*/              OPC_RecordMemRef,
/*331547*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*331548*/              OPC_CheckFoldableChainNode,
/*331549*/              OPC_RecordChild1, // #3 = $src1
/*331550*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*331552*/              OPC_MoveParent,
/*331553*/              OPC_RecordChild2, // #4 = $src2
/*331554*/              OPC_MoveChild2,
/*331555*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*331558*/              OPC_MoveParent,
/*331559*/              OPC_MoveParent,
/*331560*/              OPC_MoveChild2,
/*331561*/              OPC_CheckImmAllZerosV,
/*331562*/              OPC_MoveParent,
/*331563*/              OPC_CheckType, MVT::v16f32,
/*331565*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*331567*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src1 #5 #6 #7 #8 #9
/*331570*/              OPC_EmitMergeInputChains, 2, 1, 2, 
/*331574*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 0, 5, 6, 7, 8, 9, 4, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86strict_VRndScale:{ *:[v16f32] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v16f32] }) - Complexity = 35
                        // Dst: (VRNDSCALEPSZrmbikz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*331587*/            0, // EndSwitchOpcode
/*331588*/          /*SwitchOpcode*/ 87, TARGET_VAL(X86ISD::VRNDSCALE),// ->331678
/*331591*/            OPC_MoveChild0,
/*331592*/            OPC_SwitchOpcode /*2 cases */, 40, TARGET_VAL(ISD::LOAD),// ->331636
/*331596*/              OPC_RecordMemRef,
/*331597*/              OPC_RecordNode, // #1 = 'ld' chained node
/*331598*/              OPC_CheckFoldableChainNode,
/*331599*/              OPC_RecordChild1, // #2 = $src1
/*331600*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*331602*/              OPC_CheckPredicate, 9, // Predicate_load
/*331604*/              OPC_MoveParent,
/*331605*/              OPC_RecordChild1, // #3 = $src2
/*331606*/              OPC_MoveChild1,
/*331607*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*331610*/              OPC_MoveParent,
/*331611*/              OPC_MoveParent,
/*331612*/              OPC_MoveChild2,
/*331613*/              OPC_CheckImmAllZerosV,
/*331614*/              OPC_MoveParent,
/*331615*/              OPC_CheckType, MVT::v16f32,
/*331617*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*331619*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*331622*/              OPC_EmitMergeInputChains1_1,
/*331623*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VRndScale:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v16f32] }) - Complexity = 35
                        // Dst: (VRNDSCALEPSZrmikz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*331636*/            /*SwitchOpcode*/ 38, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->331677
/*331639*/              OPC_RecordMemRef,
/*331640*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*331641*/              OPC_CheckFoldableChainNode,
/*331642*/              OPC_RecordChild1, // #2 = $src1
/*331643*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*331645*/              OPC_MoveParent,
/*331646*/              OPC_RecordChild1, // #3 = $src2
/*331647*/              OPC_MoveChild1,
/*331648*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*331651*/              OPC_MoveParent,
/*331652*/              OPC_MoveParent,
/*331653*/              OPC_MoveChild2,
/*331654*/              OPC_CheckImmAllZerosV,
/*331655*/              OPC_MoveParent,
/*331656*/              OPC_CheckType, MVT::v16f32,
/*331658*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*331660*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*331663*/              OPC_EmitMergeInputChains1_1,
/*331664*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VRndScale:{ *:[v16f32] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v16f32] }) - Complexity = 35
                        // Dst: (VRNDSCALEPSZrmbikz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*331677*/            0, // EndSwitchOpcode
/*331678*/          /*SwitchOpcode*/ 87, TARGET_VAL(X86ISD::VGETMANT),// ->331768
/*331681*/            OPC_MoveChild0,
/*331682*/            OPC_SwitchOpcode /*2 cases */, 40, TARGET_VAL(ISD::LOAD),// ->331726
/*331686*/              OPC_RecordMemRef,
/*331687*/              OPC_RecordNode, // #1 = 'ld' chained node
/*331688*/              OPC_CheckFoldableChainNode,
/*331689*/              OPC_RecordChild1, // #2 = $src1
/*331690*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*331692*/              OPC_CheckPredicate, 9, // Predicate_load
/*331694*/              OPC_MoveParent,
/*331695*/              OPC_RecordChild1, // #3 = $src2
/*331696*/              OPC_MoveChild1,
/*331697*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*331700*/              OPC_MoveParent,
/*331701*/              OPC_MoveParent,
/*331702*/              OPC_MoveChild2,
/*331703*/              OPC_CheckImmAllZerosV,
/*331704*/              OPC_MoveParent,
/*331705*/              OPC_CheckType, MVT::v16f32,
/*331707*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*331709*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*331712*/              OPC_EmitMergeInputChains1_1,
/*331713*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPSZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VGetMant:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v16f32] }) - Complexity = 35
                        // Dst: (VGETMANTPSZrmikz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*331726*/            /*SwitchOpcode*/ 38, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->331767
/*331729*/              OPC_RecordMemRef,
/*331730*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*331731*/              OPC_CheckFoldableChainNode,
/*331732*/              OPC_RecordChild1, // #2 = $src1
/*331733*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*331735*/              OPC_MoveParent,
/*331736*/              OPC_RecordChild1, // #3 = $src2
/*331737*/              OPC_MoveChild1,
/*331738*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*331741*/              OPC_MoveParent,
/*331742*/              OPC_MoveParent,
/*331743*/              OPC_MoveChild2,
/*331744*/              OPC_CheckImmAllZerosV,
/*331745*/              OPC_MoveParent,
/*331746*/              OPC_CheckType, MVT::v16f32,
/*331748*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*331750*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*331753*/              OPC_EmitMergeInputChains1_1,
/*331754*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPSZrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VGetMant:{ *:[v16f32] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v16f32] }) - Complexity = 35
                        // Dst: (VGETMANTPSZrmbikz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*331767*/            0, // EndSwitchOpcode
/*331768*/          /*SwitchOpcode*/ 90, TARGET_VAL(X86ISD::VRANGE),// ->331861
/*331771*/            OPC_RecordChild0, // #1 = $src1
/*331772*/            OPC_MoveChild1,
/*331773*/            OPC_SwitchOpcode /*2 cases */, 41, TARGET_VAL(ISD::LOAD),// ->331818
/*331777*/              OPC_RecordMemRef,
/*331778*/              OPC_RecordNode, // #2 = 'ld' chained node
/*331779*/              OPC_CheckFoldableChainNode,
/*331780*/              OPC_RecordChild1, // #3 = $src2
/*331781*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*331783*/              OPC_CheckPredicate, 9, // Predicate_load
/*331785*/              OPC_MoveParent,
/*331786*/              OPC_RecordChild2, // #4 = $src3
/*331787*/              OPC_MoveChild2,
/*331788*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*331791*/              OPC_MoveParent,
/*331792*/              OPC_MoveParent,
/*331793*/              OPC_MoveChild2,
/*331794*/              OPC_CheckImmAllZerosV,
/*331795*/              OPC_MoveParent,
/*331796*/              OPC_CheckType, MVT::v16f32,
/*331798*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*331800*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*331803*/              OPC_EmitMergeInputChains1_2,
/*331804*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPSZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VRange:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src3), immAllZerosV:{ *:[v16f32] }) - Complexity = 35
                        // Dst: (VRANGEPSZrmikz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i32] }):$src3)
/*331818*/            /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->331860
/*331821*/              OPC_RecordMemRef,
/*331822*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*331823*/              OPC_CheckFoldableChainNode,
/*331824*/              OPC_RecordChild1, // #3 = $src2
/*331825*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*331827*/              OPC_MoveParent,
/*331828*/              OPC_RecordChild2, // #4 = $src3
/*331829*/              OPC_MoveChild2,
/*331830*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*331833*/              OPC_MoveParent,
/*331834*/              OPC_MoveParent,
/*331835*/              OPC_MoveChild2,
/*331836*/              OPC_CheckImmAllZerosV,
/*331837*/              OPC_MoveParent,
/*331838*/              OPC_CheckType, MVT::v16f32,
/*331840*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*331842*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*331845*/              OPC_EmitMergeInputChains1_2,
/*331846*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPSZrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VRange:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i32] }):$src3), immAllZerosV:{ *:[v16f32] }) - Complexity = 35
                        // Dst: (VRANGEPSZrmbikz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i32] }):$src3)
/*331860*/            0, // EndSwitchOpcode
/*331861*/          /*SwitchOpcode*/ 90, TARGET_VAL(X86ISD::SHUFP),// ->331954
/*331864*/            OPC_RecordChild0, // #1 = $src1
/*331865*/            OPC_MoveChild1,
/*331866*/            OPC_SwitchOpcode /*2 cases */, 41, TARGET_VAL(ISD::LOAD),// ->331911
/*331870*/              OPC_RecordMemRef,
/*331871*/              OPC_RecordNode, // #2 = 'ld' chained node
/*331872*/              OPC_CheckFoldableChainNode,
/*331873*/              OPC_RecordChild1, // #3 = $src2
/*331874*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*331876*/              OPC_CheckPredicate, 9, // Predicate_load
/*331878*/              OPC_MoveParent,
/*331879*/              OPC_RecordChild2, // #4 = $src3
/*331880*/              OPC_MoveChild2,
/*331881*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*331884*/              OPC_MoveParent,
/*331885*/              OPC_MoveParent,
/*331886*/              OPC_MoveChild2,
/*331887*/              OPC_CheckImmAllZerosV,
/*331888*/              OPC_MoveParent,
/*331889*/              OPC_CheckType, MVT::v16f32,
/*331891*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*331893*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*331896*/              OPC_EmitMergeInputChains1_2,
/*331897*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPSZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Shufp:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v16f32] }) - Complexity = 35
                        // Dst: (VSHUFPSZrmikz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*331911*/            /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->331953
/*331914*/              OPC_RecordMemRef,
/*331915*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*331916*/              OPC_CheckFoldableChainNode,
/*331917*/              OPC_RecordChild1, // #3 = $src2
/*331918*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*331920*/              OPC_MoveParent,
/*331921*/              OPC_RecordChild2, // #4 = $src3
/*331922*/              OPC_MoveChild2,
/*331923*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*331926*/              OPC_MoveParent,
/*331927*/              OPC_MoveParent,
/*331928*/              OPC_MoveChild2,
/*331929*/              OPC_CheckImmAllZerosV,
/*331930*/              OPC_MoveParent,
/*331931*/              OPC_CheckType, MVT::v16f32,
/*331933*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*331935*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*331938*/              OPC_EmitMergeInputChains1_2,
/*331939*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPSZrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Shufp:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v16f32] }) - Complexity = 35
                        // Dst: (VSHUFPSZrmbikz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*331953*/            0, // EndSwitchOpcode
/*331954*/          /*SwitchOpcode*/ 97, TARGET_VAL(X86ISD::VFIXUPIMM),// ->332054
/*331957*/            OPC_RecordChild0, // #1 = $src1
/*331958*/            OPC_RecordChild1, // #2 = $src2
/*331959*/            OPC_MoveChild2,
/*331960*/            OPC_SwitchOpcode /*2 cases */, 44, TARGET_VAL(ISD::LOAD),// ->332008
/*331964*/              OPC_RecordMemRef,
/*331965*/              OPC_RecordNode, // #3 = 'ld' chained node
/*331966*/              OPC_CheckFoldableChainNode,
/*331967*/              OPC_RecordChild1, // #4 = $src3
/*331968*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*331970*/              OPC_CheckPredicate, 9, // Predicate_load
/*331972*/              OPC_MoveParent,
/*331973*/              OPC_RecordChild3, // #5 = $src4
/*331974*/              OPC_MoveChild3,
/*331975*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*331978*/              OPC_MoveParent,
/*331979*/              OPC_MoveParent,
/*331980*/              OPC_MoveChild2,
/*331981*/              OPC_CheckImmAllZerosV,
/*331982*/              OPC_MoveParent,
/*331983*/              OPC_CheckType, MVT::v16f32,
/*331985*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*331987*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*331990*/              OPC_EmitMergeInputChains, 1, 3, 
/*331993*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPSZrmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 5, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VFixupimm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src4), immAllZerosV:{ *:[v16f32] }) - Complexity = 35
                        // Dst: (VFIXUPIMMPSZrmikz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i32] }):$src4)
/*332008*/            /*SwitchOpcode*/ 42, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->332053
/*332011*/              OPC_RecordMemRef,
/*332012*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*332013*/              OPC_CheckFoldableChainNode,
/*332014*/              OPC_RecordChild1, // #4 = $src3
/*332015*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*332017*/              OPC_MoveParent,
/*332018*/              OPC_RecordChild3, // #5 = $src4
/*332019*/              OPC_MoveChild3,
/*332020*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*332023*/              OPC_MoveParent,
/*332024*/              OPC_MoveParent,
/*332025*/              OPC_MoveChild2,
/*332026*/              OPC_CheckImmAllZerosV,
/*332027*/              OPC_MoveParent,
/*332028*/              OPC_CheckType, MVT::v16f32,
/*332030*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*332032*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*332035*/              OPC_EmitMergeInputChains, 1, 3, 
/*332038*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPSZrmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 5, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VFixupimm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i32] }):$src4), immAllZerosV:{ *:[v16f32] }) - Complexity = 35
                        // Dst: (VFIXUPIMMPSZrmbikz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i32] }):$src4)
/*332053*/            0, // EndSwitchOpcode
/*332054*/          /*SwitchOpcode*/ 52|128,1/*180*/, TARGET_VAL(X86ISD::VPERMV3),// ->332238
/*332058*/            OPC_RecordChild0, // #1 = $src2
/*332059*/            OPC_Scope, 93, /*->332154*/ // 2 children in Scope
/*332061*/              OPC_MoveChild1,
/*332062*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*332065*/              OPC_RecordChild0, // #2 = $src1
/*332066*/              OPC_CheckChild0Type, MVT::v8i64,
/*332068*/              OPC_MoveParent,
/*332069*/              OPC_MoveChild2,
/*332070*/              OPC_SwitchOpcode /*2 cases */, 39, TARGET_VAL(ISD::LOAD),// ->332113
/*332074*/                OPC_RecordMemRef,
/*332075*/                OPC_RecordNode, // #3 = 'ld' chained node
/*332076*/                OPC_CheckFoldableChainNode,
/*332077*/                OPC_RecordChild1, // #4 = $src3
/*332078*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*332080*/                OPC_CheckPredicate, 9, // Predicate_load
/*332082*/                OPC_MoveParent,
/*332083*/                OPC_MoveParent,
/*332084*/                OPC_MoveChild2,
/*332085*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*332088*/                OPC_CheckChild0Same, 2,
/*332090*/                OPC_MoveParent,
/*332091*/                OPC_CheckType, MVT::v16f32,
/*332093*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*332096*/                OPC_EmitMergeInputChains, 1, 3, 
/*332099*/                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>>), (bitconvert:{ *:[v16f32] } VR512:{ *:[v8i64] }:$src1)) - Complexity = 34
                          // Dst: (VPERMI2PSrmk:{ *:[v16f32] } VR512:{ *:[v8i64] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*332113*/              /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->332153
/*332116*/                OPC_RecordMemRef,
/*332117*/                OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*332118*/                OPC_CheckFoldableChainNode,
/*332119*/                OPC_RecordChild1, // #4 = $src3
/*332120*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*332122*/                OPC_MoveParent,
/*332123*/                OPC_MoveParent,
/*332124*/                OPC_MoveChild2,
/*332125*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*332128*/                OPC_CheckChild0Same, 2,
/*332130*/                OPC_MoveParent,
/*332131*/                OPC_CheckType, MVT::v16f32,
/*332133*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*332136*/                OPC_EmitMergeInputChains, 1, 3, 
/*332139*/                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), (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), (bitconvert:{ *:[v16f32] } VR512:{ *:[v8i64] }:$src1)) - Complexity = 34
                          // Dst: (VPERMI2PSrmbk:{ *:[v16f32] } VR512:{ *:[v8i64] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*332153*/              0, // EndSwitchOpcode
/*332154*/            /*Scope*/ 82, /*->332237*/
/*332155*/              OPC_RecordChild1, // #2 = $src2
/*332156*/              OPC_MoveChild2,
/*332157*/              OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->332198
/*332161*/                OPC_RecordMemRef,
/*332162*/                OPC_RecordNode, // #3 = 'ld' chained node
/*332163*/                OPC_CheckFoldableChainNode,
/*332164*/                OPC_RecordChild1, // #4 = $src3
/*332165*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*332167*/                OPC_CheckPredicate, 9, // Predicate_load
/*332169*/                OPC_MoveParent,
/*332170*/                OPC_MoveParent,
/*332171*/                OPC_MoveChild2,
/*332172*/                OPC_CheckImmAllZerosV,
/*332173*/                OPC_MoveParent,
/*332174*/                OPC_CheckType, MVT::v16f32,
/*332176*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*332178*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*332181*/                OPC_EmitMergeInputChains, 1, 3, 
/*332184*/                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>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                          // Dst: (VPERMT2PSrmkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*332198*/              /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->332236
/*332201*/                OPC_RecordMemRef,
/*332202*/                OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*332203*/                OPC_CheckFoldableChainNode,
/*332204*/                OPC_RecordChild1, // #4 = $src3
/*332205*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*332207*/                OPC_MoveParent,
/*332208*/                OPC_MoveParent,
/*332209*/                OPC_MoveChild2,
/*332210*/                OPC_CheckImmAllZerosV,
/*332211*/                OPC_MoveParent,
/*332212*/                OPC_CheckType, MVT::v16f32,
/*332214*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*332216*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*332219*/                OPC_EmitMergeInputChains, 1, 3, 
/*332222*/                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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                          // Dst: (VPERMT2PSrmbkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*332236*/              0, // EndSwitchOpcode
/*332237*/            0, /*End of Scope*/
/*332238*/          /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::SUBV_BROADCAST),// ->332309
/*332241*/            OPC_MoveChild0,
/*332242*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*332245*/            OPC_RecordMemRef,
/*332246*/            OPC_RecordNode, // #1 = 'ld' chained node
/*332247*/            OPC_CheckFoldableChainNode,
/*332248*/            OPC_RecordChild1, // #2 = $src
/*332249*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*332251*/            OPC_CheckPredicate, 9, // Predicate_load
/*332253*/            OPC_SwitchType /*2 cases */, 25, MVT::v4f32,// ->332281
/*332256*/              OPC_MoveParent,
/*332257*/              OPC_MoveParent,
/*332258*/              OPC_MoveChild2,
/*332259*/              OPC_CheckImmAllZerosV,
/*332260*/              OPC_MoveParent,
/*332261*/              OPC_CheckType, MVT::v16f32,
/*332263*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*332265*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*332268*/              OPC_EmitMergeInputChains1_1,
/*332269*/              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>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                        // Dst: (VBROADCASTF32X4rmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*332281*/            /*SwitchType*/ 25, MVT::v8f32,// ->332308
/*332283*/              OPC_MoveParent,
/*332284*/              OPC_MoveParent,
/*332285*/              OPC_MoveChild2,
/*332286*/              OPC_CheckImmAllZerosV,
/*332287*/              OPC_MoveParent,
/*332288*/              OPC_CheckType, MVT::v16f32,
/*332290*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*332292*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*332295*/              OPC_EmitMergeInputChains1_1,
/*332296*/              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>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                        // Dst: (VBROADCASTF32X8rmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*332308*/            0, // EndSwitchType
/*332309*/          /*SwitchOpcode*/ 43|128,1/*171*/, TARGET_VAL(ISD::STRICT_FADD),// ->332484
/*332313*/            OPC_RecordNode, // #1 = 'strict_fadd' chained node
/*332314*/            OPC_CheckFoldableChainNode,
/*332315*/            OPC_Scope, 82, /*->332399*/ // 2 children in Scope
/*332317*/              OPC_RecordChild1, // #2 = $src1
/*332318*/              OPC_MoveChild2,
/*332319*/              OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->332360
/*332323*/                OPC_RecordMemRef,
/*332324*/                OPC_RecordNode, // #3 = 'ld' chained node
/*332325*/                OPC_CheckFoldableChainNode,
/*332326*/                OPC_RecordChild1, // #4 = $src2
/*332327*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*332329*/                OPC_CheckPredicate, 9, // Predicate_load
/*332331*/                OPC_MoveParent,
/*332332*/                OPC_MoveParent,
/*332333*/                OPC_MoveChild2,
/*332334*/                OPC_CheckImmAllZerosV,
/*332335*/                OPC_MoveParent,
/*332336*/                OPC_CheckType, MVT::v16f32,
/*332338*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*332340*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*332343*/                OPC_EmitMergeInputChains, 2, 1, 3, 
/*332347*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 7/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (strict_fadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                          // Dst: (VADDPSZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*332360*/              /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->332398
/*332363*/                OPC_RecordMemRef,
/*332364*/                OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*332365*/                OPC_CheckFoldableChainNode,
/*332366*/                OPC_RecordChild1, // #4 = $src2
/*332367*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*332369*/                OPC_MoveParent,
/*332370*/                OPC_MoveParent,
/*332371*/                OPC_MoveChild2,
/*332372*/                OPC_CheckImmAllZerosV,
/*332373*/                OPC_MoveParent,
/*332374*/                OPC_CheckType, MVT::v16f32,
/*332376*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*332378*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*332381*/                OPC_EmitMergeInputChains, 2, 1, 3, 
/*332385*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 7/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (strict_fadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                          // Dst: (VADDPSZrmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*332398*/              0, // EndSwitchOpcode
/*332399*/            /*Scope*/ 83, /*->332483*/
/*332400*/              OPC_MoveChild1,
/*332401*/              OPC_SwitchOpcode /*2 cases */, 38, TARGET_VAL(ISD::LOAD),// ->332443
/*332405*/                OPC_RecordMemRef,
/*332406*/                OPC_RecordNode, // #2 = 'ld' chained node
/*332407*/                OPC_CheckFoldableChainNode,
/*332408*/                OPC_RecordChild1, // #3 = $src2
/*332409*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*332411*/                OPC_CheckPredicate, 9, // Predicate_load
/*332413*/                OPC_MoveParent,
/*332414*/                OPC_RecordChild2, // #4 = $src1
/*332415*/                OPC_MoveParent,
/*332416*/                OPC_MoveChild2,
/*332417*/                OPC_CheckImmAllZerosV,
/*332418*/                OPC_MoveParent,
/*332419*/                OPC_CheckType, MVT::v16f32,
/*332421*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*332423*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*332426*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*332430*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (strict_fadd:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16f32] }:$src1), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                          // Dst: (VADDPSZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*332443*/              /*SwitchOpcode*/ 36, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->332482
/*332446*/                OPC_RecordMemRef,
/*332447*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*332448*/                OPC_CheckFoldableChainNode,
/*332449*/                OPC_RecordChild1, // #3 = $src2
/*332450*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*332452*/                OPC_MoveParent,
/*332453*/                OPC_RecordChild2, // #4 = $src1
/*332454*/                OPC_MoveParent,
/*332455*/                OPC_MoveChild2,
/*332456*/                OPC_CheckImmAllZerosV,
/*332457*/                OPC_MoveParent,
/*332458*/                OPC_CheckType, MVT::v16f32,
/*332460*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*332462*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*332465*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*332469*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (strict_fadd:{ *:[v16f32] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src1), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                          // Dst: (VADDPSZrmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*332482*/              0, // EndSwitchOpcode
/*332483*/            0, /*End of Scope*/
/*332484*/          /*SwitchOpcode*/ 29|128,1/*157*/, TARGET_VAL(ISD::FADD),// ->332645
/*332488*/            OPC_Scope, 76, /*->332566*/ // 2 children in Scope
/*332490*/              OPC_RecordChild0, // #1 = $src1
/*332491*/              OPC_MoveChild1,
/*332492*/              OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->332530
/*332496*/                OPC_RecordMemRef,
/*332497*/                OPC_RecordNode, // #2 = 'ld' chained node
/*332498*/                OPC_CheckFoldableChainNode,
/*332499*/                OPC_RecordChild1, // #3 = $src2
/*332500*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*332502*/                OPC_CheckPredicate, 9, // Predicate_load
/*332504*/                OPC_MoveParent,
/*332505*/                OPC_MoveParent,
/*332506*/                OPC_MoveChild2,
/*332507*/                OPC_CheckImmAllZerosV,
/*332508*/                OPC_MoveParent,
/*332509*/                OPC_CheckType, MVT::v16f32,
/*332511*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*332513*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*332516*/                OPC_EmitMergeInputChains1_2,
/*332517*/                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>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                          // Dst: (VADDPSZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*332530*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->332565
/*332533*/                OPC_RecordMemRef,
/*332534*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*332535*/                OPC_CheckFoldableChainNode,
/*332536*/                OPC_RecordChild1, // #3 = $src2
/*332537*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*332539*/                OPC_MoveParent,
/*332540*/                OPC_MoveParent,
/*332541*/                OPC_MoveChild2,
/*332542*/                OPC_CheckImmAllZerosV,
/*332543*/                OPC_MoveParent,
/*332544*/                OPC_CheckType, MVT::v16f32,
/*332546*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*332548*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*332551*/                OPC_EmitMergeInputChains1_2,
/*332552*/                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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                          // Dst: (VADDPSZrmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*332565*/              0, // EndSwitchOpcode
/*332566*/            /*Scope*/ 77, /*->332644*/
/*332567*/              OPC_MoveChild0,
/*332568*/              OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->332607
/*332572*/                OPC_RecordMemRef,
/*332573*/                OPC_RecordNode, // #1 = 'ld' chained node
/*332574*/                OPC_CheckFoldableChainNode,
/*332575*/                OPC_RecordChild1, // #2 = $src2
/*332576*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*332578*/                OPC_CheckPredicate, 9, // Predicate_load
/*332580*/                OPC_MoveParent,
/*332581*/                OPC_RecordChild1, // #3 = $src1
/*332582*/                OPC_MoveParent,
/*332583*/                OPC_MoveChild2,
/*332584*/                OPC_CheckImmAllZerosV,
/*332585*/                OPC_MoveParent,
/*332586*/                OPC_CheckType, MVT::v16f32,
/*332588*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*332590*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*332593*/                OPC_EmitMergeInputChains1_1,
/*332594*/                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>>, VR512:{ *:[v16f32] }:$src1), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                          // Dst: (VADDPSZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*332607*/              /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->332643
/*332610*/                OPC_RecordMemRef,
/*332611*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*332612*/                OPC_CheckFoldableChainNode,
/*332613*/                OPC_RecordChild1, // #2 = $src2
/*332614*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*332616*/                OPC_MoveParent,
/*332617*/                OPC_RecordChild1, // #3 = $src1
/*332618*/                OPC_MoveParent,
/*332619*/                OPC_MoveChild2,
/*332620*/                OPC_CheckImmAllZerosV,
/*332621*/                OPC_MoveParent,
/*332622*/                OPC_CheckType, MVT::v16f32,
/*332624*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*332626*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*332629*/                OPC_EmitMergeInputChains1_1,
/*332630*/                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] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src1), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                          // Dst: (VADDPSZrmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*332643*/              0, // EndSwitchOpcode
/*332644*/            0, /*End of Scope*/
/*332645*/          /*SwitchOpcode*/ 43|128,1/*171*/, TARGET_VAL(ISD::STRICT_FMUL),// ->332820
/*332649*/            OPC_RecordNode, // #1 = 'strict_fmul' chained node
/*332650*/            OPC_CheckFoldableChainNode,
/*332651*/            OPC_Scope, 82, /*->332735*/ // 2 children in Scope
/*332653*/              OPC_RecordChild1, // #2 = $src1
/*332654*/              OPC_MoveChild2,
/*332655*/              OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->332696
/*332659*/                OPC_RecordMemRef,
/*332660*/                OPC_RecordNode, // #3 = 'ld' chained node
/*332661*/                OPC_CheckFoldableChainNode,
/*332662*/                OPC_RecordChild1, // #4 = $src2
/*332663*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*332665*/                OPC_CheckPredicate, 9, // Predicate_load
/*332667*/                OPC_MoveParent,
/*332668*/                OPC_MoveParent,
/*332669*/                OPC_MoveChild2,
/*332670*/                OPC_CheckImmAllZerosV,
/*332671*/                OPC_MoveParent,
/*332672*/                OPC_CheckType, MVT::v16f32,
/*332674*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*332676*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*332679*/                OPC_EmitMergeInputChains, 2, 1, 3, 
/*332683*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 7/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (strict_fmul:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                          // Dst: (VMULPSZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*332696*/              /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->332734
/*332699*/                OPC_RecordMemRef,
/*332700*/                OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*332701*/                OPC_CheckFoldableChainNode,
/*332702*/                OPC_RecordChild1, // #4 = $src2
/*332703*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*332705*/                OPC_MoveParent,
/*332706*/                OPC_MoveParent,
/*332707*/                OPC_MoveChild2,
/*332708*/                OPC_CheckImmAllZerosV,
/*332709*/                OPC_MoveParent,
/*332710*/                OPC_CheckType, MVT::v16f32,
/*332712*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*332714*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*332717*/                OPC_EmitMergeInputChains, 2, 1, 3, 
/*332721*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 7/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (strict_fmul:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                          // Dst: (VMULPSZrmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*332734*/              0, // EndSwitchOpcode
/*332735*/            /*Scope*/ 83, /*->332819*/
/*332736*/              OPC_MoveChild1,
/*332737*/              OPC_SwitchOpcode /*2 cases */, 38, TARGET_VAL(ISD::LOAD),// ->332779
/*332741*/                OPC_RecordMemRef,
/*332742*/                OPC_RecordNode, // #2 = 'ld' chained node
/*332743*/                OPC_CheckFoldableChainNode,
/*332744*/                OPC_RecordChild1, // #3 = $src2
/*332745*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*332747*/                OPC_CheckPredicate, 9, // Predicate_load
/*332749*/                OPC_MoveParent,
/*332750*/                OPC_RecordChild2, // #4 = $src1
/*332751*/                OPC_MoveParent,
/*332752*/                OPC_MoveChild2,
/*332753*/                OPC_CheckImmAllZerosV,
/*332754*/                OPC_MoveParent,
/*332755*/                OPC_CheckType, MVT::v16f32,
/*332757*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*332759*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*332762*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*332766*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (strict_fmul:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16f32] }:$src1), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                          // Dst: (VMULPSZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*332779*/              /*SwitchOpcode*/ 36, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->332818
/*332782*/                OPC_RecordMemRef,
/*332783*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*332784*/                OPC_CheckFoldableChainNode,
/*332785*/                OPC_RecordChild1, // #3 = $src2
/*332786*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*332788*/                OPC_MoveParent,
/*332789*/                OPC_RecordChild2, // #4 = $src1
/*332790*/                OPC_MoveParent,
/*332791*/                OPC_MoveChild2,
/*332792*/                OPC_CheckImmAllZerosV,
/*332793*/                OPC_MoveParent,
/*332794*/                OPC_CheckType, MVT::v16f32,
/*332796*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*332798*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*332801*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*332805*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (strict_fmul:{ *:[v16f32] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src1), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                          // Dst: (VMULPSZrmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*332818*/              0, // EndSwitchOpcode
/*332819*/            0, /*End of Scope*/
/*332820*/          /*SwitchOpcode*/ 29|128,1/*157*/, TARGET_VAL(ISD::FMUL),// ->332981
/*332824*/            OPC_Scope, 76, /*->332902*/ // 2 children in Scope
/*332826*/              OPC_RecordChild0, // #1 = $src1
/*332827*/              OPC_MoveChild1,
/*332828*/              OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->332866
/*332832*/                OPC_RecordMemRef,
/*332833*/                OPC_RecordNode, // #2 = 'ld' chained node
/*332834*/                OPC_CheckFoldableChainNode,
/*332835*/                OPC_RecordChild1, // #3 = $src2
/*332836*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*332838*/                OPC_CheckPredicate, 9, // Predicate_load
/*332840*/                OPC_MoveParent,
/*332841*/                OPC_MoveParent,
/*332842*/                OPC_MoveChild2,
/*332843*/                OPC_CheckImmAllZerosV,
/*332844*/                OPC_MoveParent,
/*332845*/                OPC_CheckType, MVT::v16f32,
/*332847*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*332849*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*332852*/                OPC_EmitMergeInputChains1_2,
/*332853*/                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>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                          // Dst: (VMULPSZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*332866*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->332901
/*332869*/                OPC_RecordMemRef,
/*332870*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*332871*/                OPC_CheckFoldableChainNode,
/*332872*/                OPC_RecordChild1, // #3 = $src2
/*332873*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*332875*/                OPC_MoveParent,
/*332876*/                OPC_MoveParent,
/*332877*/                OPC_MoveChild2,
/*332878*/                OPC_CheckImmAllZerosV,
/*332879*/                OPC_MoveParent,
/*332880*/                OPC_CheckType, MVT::v16f32,
/*332882*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*332884*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*332887*/                OPC_EmitMergeInputChains1_2,
/*332888*/                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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                          // Dst: (VMULPSZrmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*332901*/              0, // EndSwitchOpcode
/*332902*/            /*Scope*/ 77, /*->332980*/
/*332903*/              OPC_MoveChild0,
/*332904*/              OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->332943
/*332908*/                OPC_RecordMemRef,
/*332909*/                OPC_RecordNode, // #1 = 'ld' chained node
/*332910*/                OPC_CheckFoldableChainNode,
/*332911*/                OPC_RecordChild1, // #2 = $src2
/*332912*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*332914*/                OPC_CheckPredicate, 9, // Predicate_load
/*332916*/                OPC_MoveParent,
/*332917*/                OPC_RecordChild1, // #3 = $src1
/*332918*/                OPC_MoveParent,
/*332919*/                OPC_MoveChild2,
/*332920*/                OPC_CheckImmAllZerosV,
/*332921*/                OPC_MoveParent,
/*332922*/                OPC_CheckType, MVT::v16f32,
/*332924*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*332926*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*332929*/                OPC_EmitMergeInputChains1_1,
/*332930*/                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>>, VR512:{ *:[v16f32] }:$src1), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                          // Dst: (VMULPSZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*332943*/              /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->332979
/*332946*/                OPC_RecordMemRef,
/*332947*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*332948*/                OPC_CheckFoldableChainNode,
/*332949*/                OPC_RecordChild1, // #2 = $src2
/*332950*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*332952*/                OPC_MoveParent,
/*332953*/                OPC_RecordChild1, // #3 = $src1
/*332954*/                OPC_MoveParent,
/*332955*/                OPC_MoveChild2,
/*332956*/                OPC_CheckImmAllZerosV,
/*332957*/                OPC_MoveParent,
/*332958*/                OPC_CheckType, MVT::v16f32,
/*332960*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*332962*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*332965*/                OPC_EmitMergeInputChains1_1,
/*332966*/                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] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src1), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                          // Dst: (VMULPSZrmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*332979*/              0, // EndSwitchOpcode
/*332980*/            0, /*End of Scope*/
/*332981*/          /*SwitchOpcode*/ 84, TARGET_VAL(ISD::STRICT_FSUB),// ->333068
/*332984*/            OPC_RecordNode, // #1 = 'strict_fsub' chained node
/*332985*/            OPC_CheckFoldableChainNode,
/*332986*/            OPC_RecordChild1, // #2 = $src1
/*332987*/            OPC_MoveChild2,
/*332988*/            OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->333029
/*332992*/              OPC_RecordMemRef,
/*332993*/              OPC_RecordNode, // #3 = 'ld' chained node
/*332994*/              OPC_CheckFoldableChainNode,
/*332995*/              OPC_RecordChild1, // #4 = $src2
/*332996*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*332998*/              OPC_CheckPredicate, 9, // Predicate_load
/*333000*/              OPC_MoveParent,
/*333001*/              OPC_MoveParent,
/*333002*/              OPC_MoveChild2,
/*333003*/              OPC_CheckImmAllZerosV,
/*333004*/              OPC_MoveParent,
/*333005*/              OPC_CheckType, MVT::v16f32,
/*333007*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*333009*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*333012*/              OPC_EmitMergeInputChains, 2, 1, 3, 
/*333016*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (strict_fsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                        // Dst: (VSUBPSZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*333029*/            /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->333067
/*333032*/              OPC_RecordMemRef,
/*333033*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*333034*/              OPC_CheckFoldableChainNode,
/*333035*/              OPC_RecordChild1, // #4 = $src2
/*333036*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*333038*/              OPC_MoveParent,
/*333039*/              OPC_MoveParent,
/*333040*/              OPC_MoveChild2,
/*333041*/              OPC_CheckImmAllZerosV,
/*333042*/              OPC_MoveParent,
/*333043*/              OPC_CheckType, MVT::v16f32,
/*333045*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*333047*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*333050*/              OPC_EmitMergeInputChains, 2, 1, 3, 
/*333054*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (strict_fsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                        // Dst: (VSUBPSZrmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*333067*/            0, // EndSwitchOpcode
/*333068*/          /*SwitchOpcode*/ 76, TARGET_VAL(ISD::FSUB),// ->333147
/*333071*/            OPC_RecordChild0, // #1 = $src1
/*333072*/            OPC_MoveChild1,
/*333073*/            OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->333111
/*333077*/              OPC_RecordMemRef,
/*333078*/              OPC_RecordNode, // #2 = 'ld' chained node
/*333079*/              OPC_CheckFoldableChainNode,
/*333080*/              OPC_RecordChild1, // #3 = $src2
/*333081*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*333083*/              OPC_CheckPredicate, 9, // Predicate_load
/*333085*/              OPC_MoveParent,
/*333086*/              OPC_MoveParent,
/*333087*/              OPC_MoveChild2,
/*333088*/              OPC_CheckImmAllZerosV,
/*333089*/              OPC_MoveParent,
/*333090*/              OPC_CheckType, MVT::v16f32,
/*333092*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*333094*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*333097*/              OPC_EmitMergeInputChains1_2,
/*333098*/              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>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                        // Dst: (VSUBPSZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*333111*/            /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->333146
/*333114*/              OPC_RecordMemRef,
/*333115*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*333116*/              OPC_CheckFoldableChainNode,
/*333117*/              OPC_RecordChild1, // #3 = $src2
/*333118*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*333120*/              OPC_MoveParent,
/*333121*/              OPC_MoveParent,
/*333122*/              OPC_MoveChild2,
/*333123*/              OPC_CheckImmAllZerosV,
/*333124*/              OPC_MoveParent,
/*333125*/              OPC_CheckType, MVT::v16f32,
/*333127*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*333129*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*333132*/              OPC_EmitMergeInputChains1_2,
/*333133*/              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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                        // Dst: (VSUBPSZrmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*333146*/            0, // EndSwitchOpcode
/*333147*/          /*SwitchOpcode*/ 84, TARGET_VAL(ISD::STRICT_FDIV),// ->333234
/*333150*/            OPC_RecordNode, // #1 = 'strict_fdiv' chained node
/*333151*/            OPC_CheckFoldableChainNode,
/*333152*/            OPC_RecordChild1, // #2 = $src1
/*333153*/            OPC_MoveChild2,
/*333154*/            OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->333195
/*333158*/              OPC_RecordMemRef,
/*333159*/              OPC_RecordNode, // #3 = 'ld' chained node
/*333160*/              OPC_CheckFoldableChainNode,
/*333161*/              OPC_RecordChild1, // #4 = $src2
/*333162*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*333164*/              OPC_CheckPredicate, 9, // Predicate_load
/*333166*/              OPC_MoveParent,
/*333167*/              OPC_MoveParent,
/*333168*/              OPC_MoveChild2,
/*333169*/              OPC_CheckImmAllZerosV,
/*333170*/              OPC_MoveParent,
/*333171*/              OPC_CheckType, MVT::v16f32,
/*333173*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*333175*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*333178*/              OPC_EmitMergeInputChains, 2, 1, 3, 
/*333182*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (strict_fdiv:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                        // Dst: (VDIVPSZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*333195*/            /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->333233
/*333198*/              OPC_RecordMemRef,
/*333199*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*333200*/              OPC_CheckFoldableChainNode,
/*333201*/              OPC_RecordChild1, // #4 = $src2
/*333202*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*333204*/              OPC_MoveParent,
/*333205*/              OPC_MoveParent,
/*333206*/              OPC_MoveChild2,
/*333207*/              OPC_CheckImmAllZerosV,
/*333208*/              OPC_MoveParent,
/*333209*/              OPC_CheckType, MVT::v16f32,
/*333211*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*333213*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*333216*/              OPC_EmitMergeInputChains, 2, 1, 3, 
/*333220*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (strict_fdiv:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                        // Dst: (VDIVPSZrmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*333233*/            0, // EndSwitchOpcode
/*333234*/          /*SwitchOpcode*/ 76, TARGET_VAL(ISD::FDIV),// ->333313
/*333237*/            OPC_RecordChild0, // #1 = $src1
/*333238*/            OPC_MoveChild1,
/*333239*/            OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->333277
/*333243*/              OPC_RecordMemRef,
/*333244*/              OPC_RecordNode, // #2 = 'ld' chained node
/*333245*/              OPC_CheckFoldableChainNode,
/*333246*/              OPC_RecordChild1, // #3 = $src2
/*333247*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*333249*/              OPC_CheckPredicate, 9, // Predicate_load
/*333251*/              OPC_MoveParent,
/*333252*/              OPC_MoveParent,
/*333253*/              OPC_MoveChild2,
/*333254*/              OPC_CheckImmAllZerosV,
/*333255*/              OPC_MoveParent,
/*333256*/              OPC_CheckType, MVT::v16f32,
/*333258*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*333260*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*333263*/              OPC_EmitMergeInputChains1_2,
/*333264*/              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>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                        // Dst: (VDIVPSZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*333277*/            /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->333312
/*333280*/              OPC_RecordMemRef,
/*333281*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*333282*/              OPC_CheckFoldableChainNode,
/*333283*/              OPC_RecordChild1, // #3 = $src2
/*333284*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*333286*/              OPC_MoveParent,
/*333287*/              OPC_MoveParent,
/*333288*/              OPC_MoveChild2,
/*333289*/              OPC_CheckImmAllZerosV,
/*333290*/              OPC_MoveParent,
/*333291*/              OPC_CheckType, MVT::v16f32,
/*333293*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*333295*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*333298*/              OPC_EmitMergeInputChains1_2,
/*333299*/              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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                        // Dst: (VDIVPSZrmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*333312*/            0, // EndSwitchOpcode
/*333313*/          /*SwitchOpcode*/ 76, TARGET_VAL(X86ISD::FMIN),// ->333392
/*333316*/            OPC_RecordChild0, // #1 = $src1
/*333317*/            OPC_MoveChild1,
/*333318*/            OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->333356
/*333322*/              OPC_RecordMemRef,
/*333323*/              OPC_RecordNode, // #2 = 'ld' chained node
/*333324*/              OPC_CheckFoldableChainNode,
/*333325*/              OPC_RecordChild1, // #3 = $src2
/*333326*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*333328*/              OPC_CheckPredicate, 9, // Predicate_load
/*333330*/              OPC_MoveParent,
/*333331*/              OPC_MoveParent,
/*333332*/              OPC_MoveChild2,
/*333333*/              OPC_CheckImmAllZerosV,
/*333334*/              OPC_MoveParent,
/*333335*/              OPC_CheckType, MVT::v16f32,
/*333337*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*333339*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*333342*/              OPC_EmitMergeInputChains1_2,
/*333343*/              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>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                        // Dst: (VMINPSZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*333356*/            /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->333391
/*333359*/              OPC_RecordMemRef,
/*333360*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*333361*/              OPC_CheckFoldableChainNode,
/*333362*/              OPC_RecordChild1, // #3 = $src2
/*333363*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*333365*/              OPC_MoveParent,
/*333366*/              OPC_MoveParent,
/*333367*/              OPC_MoveChild2,
/*333368*/              OPC_CheckImmAllZerosV,
/*333369*/              OPC_MoveParent,
/*333370*/              OPC_CheckType, MVT::v16f32,
/*333372*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*333374*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*333377*/              OPC_EmitMergeInputChains1_2,
/*333378*/              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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                        // Dst: (VMINPSZrmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*333391*/            0, // EndSwitchOpcode
/*333392*/          /*SwitchOpcode*/ 76, TARGET_VAL(X86ISD::FMAX),// ->333471
/*333395*/            OPC_RecordChild0, // #1 = $src1
/*333396*/            OPC_MoveChild1,
/*333397*/            OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->333435
/*333401*/              OPC_RecordMemRef,
/*333402*/              OPC_RecordNode, // #2 = 'ld' chained node
/*333403*/              OPC_CheckFoldableChainNode,
/*333404*/              OPC_RecordChild1, // #3 = $src2
/*333405*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*333407*/              OPC_CheckPredicate, 9, // Predicate_load
/*333409*/              OPC_MoveParent,
/*333410*/              OPC_MoveParent,
/*333411*/              OPC_MoveChild2,
/*333412*/              OPC_CheckImmAllZerosV,
/*333413*/              OPC_MoveParent,
/*333414*/              OPC_CheckType, MVT::v16f32,
/*333416*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*333418*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*333421*/              OPC_EmitMergeInputChains1_2,
/*333422*/              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>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                        // Dst: (VMAXPSZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*333435*/            /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->333470
/*333438*/              OPC_RecordMemRef,
/*333439*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*333440*/              OPC_CheckFoldableChainNode,
/*333441*/              OPC_RecordChild1, // #3 = $src2
/*333442*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*333444*/              OPC_MoveParent,
/*333445*/              OPC_MoveParent,
/*333446*/              OPC_MoveChild2,
/*333447*/              OPC_CheckImmAllZerosV,
/*333448*/              OPC_MoveParent,
/*333449*/              OPC_CheckType, MVT::v16f32,
/*333451*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*333453*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*333456*/              OPC_EmitMergeInputChains1_2,
/*333457*/              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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                        // Dst: (VMAXPSZrmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*333470*/            0, // EndSwitchOpcode
/*333471*/          /*SwitchOpcode*/ 29|128,1/*157*/, TARGET_VAL(X86ISD::FMINC),// ->333632
/*333475*/            OPC_Scope, 76, /*->333553*/ // 2 children in Scope
/*333477*/              OPC_RecordChild0, // #1 = $src1
/*333478*/              OPC_MoveChild1,
/*333479*/              OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->333517
/*333483*/                OPC_RecordMemRef,
/*333484*/                OPC_RecordNode, // #2 = 'ld' chained node
/*333485*/                OPC_CheckFoldableChainNode,
/*333486*/                OPC_RecordChild1, // #3 = $src2
/*333487*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*333489*/                OPC_CheckPredicate, 9, // Predicate_load
/*333491*/                OPC_MoveParent,
/*333492*/                OPC_MoveParent,
/*333493*/                OPC_MoveChild2,
/*333494*/                OPC_CheckImmAllZerosV,
/*333495*/                OPC_MoveParent,
/*333496*/                OPC_CheckType, MVT::v16f32,
/*333498*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*333500*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*333503*/                OPC_EmitMergeInputChains1_2,
/*333504*/                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>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                          // Dst: (VMINCPSZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*333517*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->333552
/*333520*/                OPC_RecordMemRef,
/*333521*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*333522*/                OPC_CheckFoldableChainNode,
/*333523*/                OPC_RecordChild1, // #3 = $src2
/*333524*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*333526*/                OPC_MoveParent,
/*333527*/                OPC_MoveParent,
/*333528*/                OPC_MoveChild2,
/*333529*/                OPC_CheckImmAllZerosV,
/*333530*/                OPC_MoveParent,
/*333531*/                OPC_CheckType, MVT::v16f32,
/*333533*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*333535*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*333538*/                OPC_EmitMergeInputChains1_2,
/*333539*/                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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                          // Dst: (VMINCPSZrmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*333552*/              0, // EndSwitchOpcode
/*333553*/            /*Scope*/ 77, /*->333631*/
/*333554*/              OPC_MoveChild0,
/*333555*/              OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->333594
/*333559*/                OPC_RecordMemRef,
/*333560*/                OPC_RecordNode, // #1 = 'ld' chained node
/*333561*/                OPC_CheckFoldableChainNode,
/*333562*/                OPC_RecordChild1, // #2 = $src2
/*333563*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*333565*/                OPC_CheckPredicate, 9, // Predicate_load
/*333567*/                OPC_MoveParent,
/*333568*/                OPC_RecordChild1, // #3 = $src1
/*333569*/                OPC_MoveParent,
/*333570*/                OPC_MoveChild2,
/*333571*/                OPC_CheckImmAllZerosV,
/*333572*/                OPC_MoveParent,
/*333573*/                OPC_CheckType, MVT::v16f32,
/*333575*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*333577*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*333580*/                OPC_EmitMergeInputChains1_1,
/*333581*/                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>>, VR512:{ *:[v16f32] }:$src1), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                          // Dst: (VMINCPSZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*333594*/              /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->333630
/*333597*/                OPC_RecordMemRef,
/*333598*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*333599*/                OPC_CheckFoldableChainNode,
/*333600*/                OPC_RecordChild1, // #2 = $src2
/*333601*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*333603*/                OPC_MoveParent,
/*333604*/                OPC_RecordChild1, // #3 = $src1
/*333605*/                OPC_MoveParent,
/*333606*/                OPC_MoveChild2,
/*333607*/                OPC_CheckImmAllZerosV,
/*333608*/                OPC_MoveParent,
/*333609*/                OPC_CheckType, MVT::v16f32,
/*333611*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*333613*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*333616*/                OPC_EmitMergeInputChains1_1,
/*333617*/                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] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src1), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                          // Dst: (VMINCPSZrmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*333630*/              0, // EndSwitchOpcode
/*333631*/            0, /*End of Scope*/
/*333632*/          /*SwitchOpcode*/ 29|128,1/*157*/, TARGET_VAL(X86ISD::FMAXC),// ->333793
/*333636*/            OPC_Scope, 76, /*->333714*/ // 2 children in Scope
/*333638*/              OPC_RecordChild0, // #1 = $src1
/*333639*/              OPC_MoveChild1,
/*333640*/              OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->333678
/*333644*/                OPC_RecordMemRef,
/*333645*/                OPC_RecordNode, // #2 = 'ld' chained node
/*333646*/                OPC_CheckFoldableChainNode,
/*333647*/                OPC_RecordChild1, // #3 = $src2
/*333648*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*333650*/                OPC_CheckPredicate, 9, // Predicate_load
/*333652*/                OPC_MoveParent,
/*333653*/                OPC_MoveParent,
/*333654*/                OPC_MoveChild2,
/*333655*/                OPC_CheckImmAllZerosV,
/*333656*/                OPC_MoveParent,
/*333657*/                OPC_CheckType, MVT::v16f32,
/*333659*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*333661*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*333664*/                OPC_EmitMergeInputChains1_2,
/*333665*/                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>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                          // Dst: (VMAXCPSZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*333678*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->333713
/*333681*/                OPC_RecordMemRef,
/*333682*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*333683*/                OPC_CheckFoldableChainNode,
/*333684*/                OPC_RecordChild1, // #3 = $src2
/*333685*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*333687*/                OPC_MoveParent,
/*333688*/                OPC_MoveParent,
/*333689*/                OPC_MoveChild2,
/*333690*/                OPC_CheckImmAllZerosV,
/*333691*/                OPC_MoveParent,
/*333692*/                OPC_CheckType, MVT::v16f32,
/*333694*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*333696*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*333699*/                OPC_EmitMergeInputChains1_2,
/*333700*/                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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                          // Dst: (VMAXCPSZrmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*333713*/              0, // EndSwitchOpcode
/*333714*/            /*Scope*/ 77, /*->333792*/
/*333715*/              OPC_MoveChild0,
/*333716*/              OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->333755
/*333720*/                OPC_RecordMemRef,
/*333721*/                OPC_RecordNode, // #1 = 'ld' chained node
/*333722*/                OPC_CheckFoldableChainNode,
/*333723*/                OPC_RecordChild1, // #2 = $src2
/*333724*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*333726*/                OPC_CheckPredicate, 9, // Predicate_load
/*333728*/                OPC_MoveParent,
/*333729*/                OPC_RecordChild1, // #3 = $src1
/*333730*/                OPC_MoveParent,
/*333731*/                OPC_MoveChild2,
/*333732*/                OPC_CheckImmAllZerosV,
/*333733*/                OPC_MoveParent,
/*333734*/                OPC_CheckType, MVT::v16f32,
/*333736*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*333738*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*333741*/                OPC_EmitMergeInputChains1_1,
/*333742*/                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>>, VR512:{ *:[v16f32] }:$src1), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                          // Dst: (VMAXCPSZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*333755*/              /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->333791
/*333758*/                OPC_RecordMemRef,
/*333759*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*333760*/                OPC_CheckFoldableChainNode,
/*333761*/                OPC_RecordChild1, // #2 = $src2
/*333762*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*333764*/                OPC_MoveParent,
/*333765*/                OPC_RecordChild1, // #3 = $src1
/*333766*/                OPC_MoveParent,
/*333767*/                OPC_MoveChild2,
/*333768*/                OPC_CheckImmAllZerosV,
/*333769*/                OPC_MoveParent,
/*333770*/                OPC_CheckType, MVT::v16f32,
/*333772*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*333774*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*333777*/                OPC_EmitMergeInputChains1_1,
/*333778*/                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] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src1), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                          // Dst: (VMAXCPSZrmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*333791*/              0, // EndSwitchOpcode
/*333792*/            0, /*End of Scope*/
/*333793*/          /*SwitchOpcode*/ 76, TARGET_VAL(X86ISD::SCALEF),// ->333872
/*333796*/            OPC_RecordChild0, // #1 = $src1
/*333797*/            OPC_MoveChild1,
/*333798*/            OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->333836
/*333802*/              OPC_RecordMemRef,
/*333803*/              OPC_RecordNode, // #2 = 'ld' chained node
/*333804*/              OPC_CheckFoldableChainNode,
/*333805*/              OPC_RecordChild1, // #3 = $src2
/*333806*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*333808*/              OPC_CheckPredicate, 9, // Predicate_load
/*333810*/              OPC_MoveParent,
/*333811*/              OPC_MoveParent,
/*333812*/              OPC_MoveChild2,
/*333813*/              OPC_CheckImmAllZerosV,
/*333814*/              OPC_MoveParent,
/*333815*/              OPC_CheckType, MVT::v16f32,
/*333817*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*333819*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*333822*/              OPC_EmitMergeInputChains1_2,
/*333823*/              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>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                        // Dst: (VSCALEFPSZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*333836*/            /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->333871
/*333839*/              OPC_RecordMemRef,
/*333840*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*333841*/              OPC_CheckFoldableChainNode,
/*333842*/              OPC_RecordChild1, // #3 = $src2
/*333843*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*333845*/              OPC_MoveParent,
/*333846*/              OPC_MoveParent,
/*333847*/              OPC_MoveChild2,
/*333848*/              OPC_CheckImmAllZerosV,
/*333849*/              OPC_MoveParent,
/*333850*/              OPC_CheckType, MVT::v16f32,
/*333852*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*333854*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*333857*/              OPC_EmitMergeInputChains1_2,
/*333858*/              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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                        // Dst: (VSCALEFPSZrmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*333871*/            0, // EndSwitchOpcode
/*333872*/          /*SwitchOpcode*/ 76, TARGET_VAL(X86ISD::VPERMV),// ->333951
/*333875*/            OPC_RecordChild0, // #1 = $src1
/*333876*/            OPC_MoveChild1,
/*333877*/            OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->333915
/*333881*/              OPC_RecordMemRef,
/*333882*/              OPC_RecordNode, // #2 = 'ld' chained node
/*333883*/              OPC_CheckFoldableChainNode,
/*333884*/              OPC_RecordChild1, // #3 = $src2
/*333885*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*333887*/              OPC_CheckPredicate, 9, // Predicate_load
/*333889*/              OPC_MoveParent,
/*333890*/              OPC_MoveParent,
/*333891*/              OPC_MoveChild2,
/*333892*/              OPC_CheckImmAllZerosV,
/*333893*/              OPC_MoveParent,
/*333894*/              OPC_CheckType, MVT::v16f32,
/*333896*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*333898*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*333901*/              OPC_EmitMergeInputChains1_2,
/*333902*/              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>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                        // Dst: (VPERMPSZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*333915*/            /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->333950
/*333918*/              OPC_RecordMemRef,
/*333919*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*333920*/              OPC_CheckFoldableChainNode,
/*333921*/              OPC_RecordChild1, // #3 = $src2
/*333922*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*333924*/              OPC_MoveParent,
/*333925*/              OPC_MoveParent,
/*333926*/              OPC_MoveChild2,
/*333927*/              OPC_CheckImmAllZerosV,
/*333928*/              OPC_MoveParent,
/*333929*/              OPC_CheckType, MVT::v16f32,
/*333931*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*333933*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*333936*/              OPC_EmitMergeInputChains1_2,
/*333937*/              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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                        // Dst: (VPERMPSZrmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*333950*/            0, // EndSwitchOpcode
/*333951*/          /*SwitchOpcode*/ 76, TARGET_VAL(X86ISD::VPERMILPV),// ->334030
/*333954*/            OPC_RecordChild0, // #1 = $src1
/*333955*/            OPC_MoveChild1,
/*333956*/            OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->333994
/*333960*/              OPC_RecordMemRef,
/*333961*/              OPC_RecordNode, // #2 = 'ld' chained node
/*333962*/              OPC_CheckFoldableChainNode,
/*333963*/              OPC_RecordChild1, // #3 = $src2
/*333964*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*333966*/              OPC_CheckPredicate, 9, // Predicate_load
/*333968*/              OPC_MoveParent,
/*333969*/              OPC_MoveParent,
/*333970*/              OPC_MoveChild2,
/*333971*/              OPC_CheckImmAllZerosV,
/*333972*/              OPC_MoveParent,
/*333973*/              OPC_CheckType, MVT::v16f32,
/*333975*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*333977*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*333980*/              OPC_EmitMergeInputChains1_2,
/*333981*/              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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                        // Dst: (VPERMILPSZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*333994*/            /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->334029
/*333997*/              OPC_RecordMemRef,
/*333998*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*333999*/              OPC_CheckFoldableChainNode,
/*334000*/              OPC_RecordChild1, // #3 = $src2
/*334001*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*334003*/              OPC_MoveParent,
/*334004*/              OPC_MoveParent,
/*334005*/              OPC_MoveChild2,
/*334006*/              OPC_CheckImmAllZerosV,
/*334007*/              OPC_MoveParent,
/*334008*/              OPC_CheckType, MVT::v16f32,
/*334010*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*334012*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*334015*/              OPC_EmitMergeInputChains1_2,
/*334016*/              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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                        // Dst: (VPERMILPSZrmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*334029*/            0, // EndSwitchOpcode
/*334030*/          /*SwitchOpcode*/ 12|128,2/*268*/, TARGET_VAL(ISD::STRICT_FMA),// ->334302
/*334034*/            OPC_RecordNode, // #1 = 'X86strict_Fmadd' chained node
/*334035*/            OPC_CheckFoldableChainNode,
/*334036*/            OPC_Scope, 46|128,1/*174*/, /*->334213*/ // 2 children in Scope
/*334039*/              OPC_RecordChild1, // #2 = $src2
/*334040*/              OPC_Scope, 84, /*->334126*/ // 2 children in Scope
/*334042*/                OPC_RecordChild2, // #3 = $src1
/*334043*/                OPC_MoveChild3,
/*334044*/                OPC_SwitchOpcode /*2 cases */, 38, TARGET_VAL(ISD::LOAD),// ->334086
/*334048*/                  OPC_RecordMemRef,
/*334049*/                  OPC_RecordNode, // #4 = 'ld' chained node
/*334050*/                  OPC_CheckFoldableChainNode,
/*334051*/                  OPC_RecordChild1, // #5 = $src3
/*334052*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*334054*/                  OPC_CheckPredicate, 9, // Predicate_load
/*334056*/                  OPC_MoveParent,
/*334057*/                  OPC_MoveParent,
/*334058*/                  OPC_MoveChild2,
/*334059*/                  OPC_CheckImmAllZerosV,
/*334060*/                  OPC_MoveParent,
/*334061*/                  OPC_CheckType, MVT::v16f32,
/*334063*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*334065*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/5, // selectAddr:$src3 #6 #7 #8 #9 #10
/*334068*/                  OPC_EmitMergeInputChains, 2, 1, 4, 
/*334072*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16f32, 8/*#Ops*/, 3, 0, 2, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86strict_Fmadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                            // Dst: (VFMADD213PSZmkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*334086*/                /*SwitchOpcode*/ 36, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->334125
/*334089*/                  OPC_RecordMemRef,
/*334090*/                  OPC_RecordNode, // #4 = 'X86VBroadcastld' chained node
/*334091*/                  OPC_CheckFoldableChainNode,
/*334092*/                  OPC_RecordChild1, // #5 = $src3
/*334093*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*334095*/                  OPC_MoveParent,
/*334096*/                  OPC_MoveParent,
/*334097*/                  OPC_MoveChild2,
/*334098*/                  OPC_CheckImmAllZerosV,
/*334099*/                  OPC_MoveParent,
/*334100*/                  OPC_CheckType, MVT::v16f32,
/*334102*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*334104*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/5, // selectAddr:$src3 #6 #7 #8 #9 #10
/*334107*/                  OPC_EmitMergeInputChains, 2, 1, 4, 
/*334111*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16f32, 8/*#Ops*/, 3, 0, 2, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86strict_Fmadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                            // Dst: (VFMADD213PSZmbkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*334125*/                0, // EndSwitchOpcode
/*334126*/              /*Scope*/ 85, /*->334212*/
/*334127*/                OPC_MoveChild2,
/*334128*/                OPC_SwitchOpcode /*2 cases */, 39, TARGET_VAL(ISD::LOAD),// ->334171
/*334132*/                  OPC_RecordMemRef,
/*334133*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*334134*/                  OPC_CheckFoldableChainNode,
/*334135*/                  OPC_RecordChild1, // #4 = $src3
/*334136*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*334138*/                  OPC_CheckPredicate, 9, // Predicate_load
/*334140*/                  OPC_MoveParent,
/*334141*/                  OPC_RecordChild3, // #5 = $src1
/*334142*/                  OPC_MoveParent,
/*334143*/                  OPC_MoveChild2,
/*334144*/                  OPC_CheckImmAllZerosV,
/*334145*/                  OPC_MoveParent,
/*334146*/                  OPC_CheckType, MVT::v16f32,
/*334148*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*334150*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*334153*/                  OPC_EmitMergeInputChains, 2, 1, 3, 
/*334157*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PSZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16f32, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86strict_Fmadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16f32] }:$src1), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                            // Dst: (VFMADD231PSZmkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*334171*/                /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->334211
/*334174*/                  OPC_RecordMemRef,
/*334175*/                  OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*334176*/                  OPC_CheckFoldableChainNode,
/*334177*/                  OPC_RecordChild1, // #4 = $src3
/*334178*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*334180*/                  OPC_MoveParent,
/*334181*/                  OPC_RecordChild3, // #5 = $src1
/*334182*/                  OPC_MoveParent,
/*334183*/                  OPC_MoveChild2,
/*334184*/                  OPC_CheckImmAllZerosV,
/*334185*/                  OPC_MoveParent,
/*334186*/                  OPC_CheckType, MVT::v16f32,
/*334188*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*334190*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*334193*/                  OPC_EmitMergeInputChains, 2, 1, 3, 
/*334197*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PSZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16f32, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86strict_Fmadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src1), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                            // Dst: (VFMADD231PSZmbkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*334211*/                0, // EndSwitchOpcode
/*334212*/              0, /*End of Scope*/
/*334213*/            /*Scope*/ 87, /*->334301*/
/*334214*/              OPC_MoveChild1,
/*334215*/              OPC_SwitchOpcode /*2 cases */, 40, TARGET_VAL(ISD::LOAD),// ->334259
/*334219*/                OPC_RecordMemRef,
/*334220*/                OPC_RecordNode, // #2 = 'ld' chained node
/*334221*/                OPC_CheckFoldableChainNode,
/*334222*/                OPC_RecordChild1, // #3 = $src3
/*334223*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*334225*/                OPC_CheckPredicate, 9, // Predicate_load
/*334227*/                OPC_MoveParent,
/*334228*/                OPC_RecordChild2, // #4 = $src1
/*334229*/                OPC_RecordChild3, // #5 = $src2
/*334230*/                OPC_MoveParent,
/*334231*/                OPC_MoveChild2,
/*334232*/                OPC_CheckImmAllZerosV,
/*334233*/                OPC_MoveParent,
/*334234*/                OPC_CheckType, MVT::v16f32,
/*334236*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*334238*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*334241*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*334245*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PSZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86strict_Fmadd:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                          // Dst: (VFMADD132PSZmkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*334259*/              /*SwitchOpcode*/ 38, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->334300
/*334262*/                OPC_RecordMemRef,
/*334263*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*334264*/                OPC_CheckFoldableChainNode,
/*334265*/                OPC_RecordChild1, // #3 = $src3
/*334266*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*334268*/                OPC_MoveParent,
/*334269*/                OPC_RecordChild2, // #4 = $src1
/*334270*/                OPC_RecordChild3, // #5 = $src2
/*334271*/                OPC_MoveParent,
/*334272*/                OPC_MoveChild2,
/*334273*/                OPC_CheckImmAllZerosV,
/*334274*/                OPC_MoveParent,
/*334275*/                OPC_CheckType, MVT::v16f32,
/*334277*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*334279*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*334282*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*334286*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PSZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86strict_Fmadd:{ *:[v16f32] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                          // Dst: (VFMADD132PSZmbkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*334300*/              0, // EndSwitchOpcode
/*334301*/            0, /*End of Scope*/
/*334302*/          /*SwitchOpcode*/ 124|128,1/*252*/, TARGET_VAL(ISD::FMA),// ->334558
/*334306*/            OPC_Scope, 38|128,1/*166*/, /*->334475*/ // 2 children in Scope
/*334309*/              OPC_RecordChild0, // #1 = $src2
/*334310*/              OPC_Scope, 82, /*->334394*/ // 2 children in Scope
/*334312*/                OPC_RecordChild1, // #2 = $src1
/*334313*/                OPC_MoveChild2,
/*334314*/                OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->334355
/*334318*/                  OPC_RecordMemRef,
/*334319*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*334320*/                  OPC_CheckFoldableChainNode,
/*334321*/                  OPC_RecordChild1, // #4 = $src3
/*334322*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*334324*/                  OPC_CheckPredicate, 9, // Predicate_load
/*334326*/                  OPC_MoveParent,
/*334327*/                  OPC_MoveParent,
/*334328*/                  OPC_MoveChild2,
/*334329*/                  OPC_CheckImmAllZerosV,
/*334330*/                  OPC_MoveParent,
/*334331*/                  OPC_CheckType, MVT::v16f32,
/*334333*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*334335*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*334338*/                  OPC_EmitMergeInputChains, 1, 3, 
/*334341*/                  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>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                            // Dst: (VFMADD213PSZmkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*334355*/                /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->334393
/*334358*/                  OPC_RecordMemRef,
/*334359*/                  OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*334360*/                  OPC_CheckFoldableChainNode,
/*334361*/                  OPC_RecordChild1, // #4 = $src3
/*334362*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*334364*/                  OPC_MoveParent,
/*334365*/                  OPC_MoveParent,
/*334366*/                  OPC_MoveChild2,
/*334367*/                  OPC_CheckImmAllZerosV,
/*334368*/                  OPC_MoveParent,
/*334369*/                  OPC_CheckType, MVT::v16f32,
/*334371*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*334373*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*334376*/                  OPC_EmitMergeInputChains, 1, 3, 
/*334379*/                  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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                            // Dst: (VFMADD213PSZmbkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*334393*/                0, // EndSwitchOpcode
/*334394*/              /*Scope*/ 79, /*->334474*/
/*334395*/                OPC_MoveChild1,
/*334396*/                OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->334436
/*334400*/                  OPC_RecordMemRef,
/*334401*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*334402*/                  OPC_CheckFoldableChainNode,
/*334403*/                  OPC_RecordChild1, // #3 = $src3
/*334404*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*334406*/                  OPC_CheckPredicate, 9, // Predicate_load
/*334408*/                  OPC_MoveParent,
/*334409*/                  OPC_RecordChild2, // #4 = $src1
/*334410*/                  OPC_MoveParent,
/*334411*/                  OPC_MoveChild2,
/*334412*/                  OPC_CheckImmAllZerosV,
/*334413*/                  OPC_MoveParent,
/*334414*/                  OPC_CheckType, MVT::v16f32,
/*334416*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*334418*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*334421*/                  OPC_EmitMergeInputChains1_2,
/*334422*/                  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>>, VR512:{ *:[v16f32] }:$src1), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                            // Dst: (VFMADD231PSZmkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*334436*/                /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->334473
/*334439*/                  OPC_RecordMemRef,
/*334440*/                  OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*334441*/                  OPC_CheckFoldableChainNode,
/*334442*/                  OPC_RecordChild1, // #3 = $src3
/*334443*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*334445*/                  OPC_MoveParent,
/*334446*/                  OPC_RecordChild2, // #4 = $src1
/*334447*/                  OPC_MoveParent,
/*334448*/                  OPC_MoveChild2,
/*334449*/                  OPC_CheckImmAllZerosV,
/*334450*/                  OPC_MoveParent,
/*334451*/                  OPC_CheckType, MVT::v16f32,
/*334453*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*334455*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*334458*/                  OPC_EmitMergeInputChains1_2,
/*334459*/                  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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src1), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                            // Dst: (VFMADD231PSZmbkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*334473*/                0, // EndSwitchOpcode
/*334474*/              0, /*End of Scope*/
/*334475*/            /*Scope*/ 81, /*->334557*/
/*334476*/              OPC_MoveChild0,
/*334477*/              OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->334518
/*334481*/                OPC_RecordMemRef,
/*334482*/                OPC_RecordNode, // #1 = 'ld' chained node
/*334483*/                OPC_CheckFoldableChainNode,
/*334484*/                OPC_RecordChild1, // #2 = $src3
/*334485*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*334487*/                OPC_CheckPredicate, 9, // Predicate_load
/*334489*/                OPC_MoveParent,
/*334490*/                OPC_RecordChild1, // #3 = $src1
/*334491*/                OPC_RecordChild2, // #4 = $src2
/*334492*/                OPC_MoveParent,
/*334493*/                OPC_MoveChild2,
/*334494*/                OPC_CheckImmAllZerosV,
/*334495*/                OPC_MoveParent,
/*334496*/                OPC_CheckType, MVT::v16f32,
/*334498*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*334500*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*334503*/                OPC_EmitMergeInputChains1_1,
/*334504*/                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>>, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                          // Dst: (VFMADD132PSZmkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*334518*/              /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->334556
/*334521*/                OPC_RecordMemRef,
/*334522*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*334523*/                OPC_CheckFoldableChainNode,
/*334524*/                OPC_RecordChild1, // #2 = $src3
/*334525*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*334527*/                OPC_MoveParent,
/*334528*/                OPC_RecordChild1, // #3 = $src1
/*334529*/                OPC_RecordChild2, // #4 = $src2
/*334530*/                OPC_MoveParent,
/*334531*/                OPC_MoveChild2,
/*334532*/                OPC_CheckImmAllZerosV,
/*334533*/                OPC_MoveParent,
/*334534*/                OPC_CheckType, MVT::v16f32,
/*334536*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*334538*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*334541*/                OPC_EmitMergeInputChains1_1,
/*334542*/                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] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                          // Dst: (VFMADD132PSZmbkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*334556*/              0, // EndSwitchOpcode
/*334557*/            0, /*End of Scope*/
/*334558*/          /*SwitchOpcode*/ 124|128,1/*252*/, TARGET_VAL(X86ISD::FMSUB),// ->334814
/*334562*/            OPC_Scope, 38|128,1/*166*/, /*->334731*/ // 2 children in Scope
/*334565*/              OPC_RecordChild0, // #1 = $src2
/*334566*/              OPC_Scope, 82, /*->334650*/ // 2 children in Scope
/*334568*/                OPC_RecordChild1, // #2 = $src1
/*334569*/                OPC_MoveChild2,
/*334570*/                OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->334611
/*334574*/                  OPC_RecordMemRef,
/*334575*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*334576*/                  OPC_CheckFoldableChainNode,
/*334577*/                  OPC_RecordChild1, // #4 = $src3
/*334578*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*334580*/                  OPC_CheckPredicate, 9, // Predicate_load
/*334582*/                  OPC_MoveParent,
/*334583*/                  OPC_MoveParent,
/*334584*/                  OPC_MoveChild2,
/*334585*/                  OPC_CheckImmAllZerosV,
/*334586*/                  OPC_MoveParent,
/*334587*/                  OPC_CheckType, MVT::v16f32,
/*334589*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*334591*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*334594*/                  OPC_EmitMergeInputChains, 1, 3, 
/*334597*/                  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>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                            // Dst: (VFMSUB213PSZmkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*334611*/                /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->334649
/*334614*/                  OPC_RecordMemRef,
/*334615*/                  OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*334616*/                  OPC_CheckFoldableChainNode,
/*334617*/                  OPC_RecordChild1, // #4 = $src3
/*334618*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*334620*/                  OPC_MoveParent,
/*334621*/                  OPC_MoveParent,
/*334622*/                  OPC_MoveChild2,
/*334623*/                  OPC_CheckImmAllZerosV,
/*334624*/                  OPC_MoveParent,
/*334625*/                  OPC_CheckType, MVT::v16f32,
/*334627*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*334629*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*334632*/                  OPC_EmitMergeInputChains, 1, 3, 
/*334635*/                  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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                            // Dst: (VFMSUB213PSZmbkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*334649*/                0, // EndSwitchOpcode
/*334650*/              /*Scope*/ 79, /*->334730*/
/*334651*/                OPC_MoveChild1,
/*334652*/                OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->334692
/*334656*/                  OPC_RecordMemRef,
/*334657*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*334658*/                  OPC_CheckFoldableChainNode,
/*334659*/                  OPC_RecordChild1, // #3 = $src3
/*334660*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*334662*/                  OPC_CheckPredicate, 9, // Predicate_load
/*334664*/                  OPC_MoveParent,
/*334665*/                  OPC_RecordChild2, // #4 = $src1
/*334666*/                  OPC_MoveParent,
/*334667*/                  OPC_MoveChild2,
/*334668*/                  OPC_CheckImmAllZerosV,
/*334669*/                  OPC_MoveParent,
/*334670*/                  OPC_CheckType, MVT::v16f32,
/*334672*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*334674*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*334677*/                  OPC_EmitMergeInputChains1_2,
/*334678*/                  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>>, VR512:{ *:[v16f32] }:$src1), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                            // Dst: (VFMSUB231PSZmkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*334692*/                /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->334729
/*334695*/                  OPC_RecordMemRef,
/*334696*/                  OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*334697*/                  OPC_CheckFoldableChainNode,
/*334698*/                  OPC_RecordChild1, // #3 = $src3
/*334699*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*334701*/                  OPC_MoveParent,
/*334702*/                  OPC_RecordChild2, // #4 = $src1
/*334703*/                  OPC_MoveParent,
/*334704*/                  OPC_MoveChild2,
/*334705*/                  OPC_CheckImmAllZerosV,
/*334706*/                  OPC_MoveParent,
/*334707*/                  OPC_CheckType, MVT::v16f32,
/*334709*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*334711*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*334714*/                  OPC_EmitMergeInputChains1_2,
/*334715*/                  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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src1), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                            // Dst: (VFMSUB231PSZmbkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*334729*/                0, // EndSwitchOpcode
/*334730*/              0, /*End of Scope*/
/*334731*/            /*Scope*/ 81, /*->334813*/
/*334732*/              OPC_MoveChild0,
/*334733*/              OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->334774
/*334737*/                OPC_RecordMemRef,
/*334738*/                OPC_RecordNode, // #1 = 'ld' chained node
/*334739*/                OPC_CheckFoldableChainNode,
/*334740*/                OPC_RecordChild1, // #2 = $src3
/*334741*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*334743*/                OPC_CheckPredicate, 9, // Predicate_load
/*334745*/                OPC_MoveParent,
/*334746*/                OPC_RecordChild1, // #3 = $src1
/*334747*/                OPC_RecordChild2, // #4 = $src2
/*334748*/                OPC_MoveParent,
/*334749*/                OPC_MoveChild2,
/*334750*/                OPC_CheckImmAllZerosV,
/*334751*/                OPC_MoveParent,
/*334752*/                OPC_CheckType, MVT::v16f32,
/*334754*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*334756*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*334759*/                OPC_EmitMergeInputChains1_1,
/*334760*/                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>>, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                          // Dst: (VFMSUB132PSZmkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*334774*/              /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->334812
/*334777*/                OPC_RecordMemRef,
/*334778*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*334779*/                OPC_CheckFoldableChainNode,
/*334780*/                OPC_RecordChild1, // #2 = $src3
/*334781*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*334783*/                OPC_MoveParent,
/*334784*/                OPC_RecordChild1, // #3 = $src1
/*334785*/                OPC_RecordChild2, // #4 = $src2
/*334786*/                OPC_MoveParent,
/*334787*/                OPC_MoveChild2,
/*334788*/                OPC_CheckImmAllZerosV,
/*334789*/                OPC_MoveParent,
/*334790*/                OPC_CheckType, MVT::v16f32,
/*334792*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*334794*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*334797*/                OPC_EmitMergeInputChains1_1,
/*334798*/                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] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                          // Dst: (VFMSUB132PSZmbkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*334812*/              0, // EndSwitchOpcode
/*334813*/            0, /*End of Scope*/
/*334814*/          /*SwitchOpcode*/ 124|128,1/*252*/, TARGET_VAL(X86ISD::FMADDSUB),// ->335070
/*334818*/            OPC_Scope, 38|128,1/*166*/, /*->334987*/ // 2 children in Scope
/*334821*/              OPC_RecordChild0, // #1 = $src2
/*334822*/              OPC_Scope, 82, /*->334906*/ // 2 children in Scope
/*334824*/                OPC_RecordChild1, // #2 = $src1
/*334825*/                OPC_MoveChild2,
/*334826*/                OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->334867
/*334830*/                  OPC_RecordMemRef,
/*334831*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*334832*/                  OPC_CheckFoldableChainNode,
/*334833*/                  OPC_RecordChild1, // #4 = $src3
/*334834*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*334836*/                  OPC_CheckPredicate, 9, // Predicate_load
/*334838*/                  OPC_MoveParent,
/*334839*/                  OPC_MoveParent,
/*334840*/                  OPC_MoveChild2,
/*334841*/                  OPC_CheckImmAllZerosV,
/*334842*/                  OPC_MoveParent,
/*334843*/                  OPC_CheckType, MVT::v16f32,
/*334845*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*334847*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*334850*/                  OPC_EmitMergeInputChains, 1, 3, 
/*334853*/                  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>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                            // Dst: (VFMADDSUB213PSZmkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*334867*/                /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->334905
/*334870*/                  OPC_RecordMemRef,
/*334871*/                  OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*334872*/                  OPC_CheckFoldableChainNode,
/*334873*/                  OPC_RecordChild1, // #4 = $src3
/*334874*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*334876*/                  OPC_MoveParent,
/*334877*/                  OPC_MoveParent,
/*334878*/                  OPC_MoveChild2,
/*334879*/                  OPC_CheckImmAllZerosV,
/*334880*/                  OPC_MoveParent,
/*334881*/                  OPC_CheckType, MVT::v16f32,
/*334883*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*334885*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*334888*/                  OPC_EmitMergeInputChains, 1, 3, 
/*334891*/                  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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                            // Dst: (VFMADDSUB213PSZmbkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*334905*/                0, // EndSwitchOpcode
/*334906*/              /*Scope*/ 79, /*->334986*/
/*334907*/                OPC_MoveChild1,
/*334908*/                OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->334948
/*334912*/                  OPC_RecordMemRef,
/*334913*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*334914*/                  OPC_CheckFoldableChainNode,
/*334915*/                  OPC_RecordChild1, // #3 = $src3
/*334916*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*334918*/                  OPC_CheckPredicate, 9, // Predicate_load
/*334920*/                  OPC_MoveParent,
/*334921*/                  OPC_RecordChild2, // #4 = $src1
/*334922*/                  OPC_MoveParent,
/*334923*/                  OPC_MoveChild2,
/*334924*/                  OPC_CheckImmAllZerosV,
/*334925*/                  OPC_MoveParent,
/*334926*/                  OPC_CheckType, MVT::v16f32,
/*334928*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*334930*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*334933*/                  OPC_EmitMergeInputChains1_2,
/*334934*/                  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>>, VR512:{ *:[v16f32] }:$src1), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                            // Dst: (VFMADDSUB231PSZmkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*334948*/                /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->334985
/*334951*/                  OPC_RecordMemRef,
/*334952*/                  OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*334953*/                  OPC_CheckFoldableChainNode,
/*334954*/                  OPC_RecordChild1, // #3 = $src3
/*334955*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*334957*/                  OPC_MoveParent,
/*334958*/                  OPC_RecordChild2, // #4 = $src1
/*334959*/                  OPC_MoveParent,
/*334960*/                  OPC_MoveChild2,
/*334961*/                  OPC_CheckImmAllZerosV,
/*334962*/                  OPC_MoveParent,
/*334963*/                  OPC_CheckType, MVT::v16f32,
/*334965*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*334967*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*334970*/                  OPC_EmitMergeInputChains1_2,
/*334971*/                  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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src1), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                            // Dst: (VFMADDSUB231PSZmbkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*334985*/                0, // EndSwitchOpcode
/*334986*/              0, /*End of Scope*/
/*334987*/            /*Scope*/ 81, /*->335069*/
/*334988*/              OPC_MoveChild0,
/*334989*/              OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->335030
/*334993*/                OPC_RecordMemRef,
/*334994*/                OPC_RecordNode, // #1 = 'ld' chained node
/*334995*/                OPC_CheckFoldableChainNode,
/*334996*/                OPC_RecordChild1, // #2 = $src3
/*334997*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*334999*/                OPC_CheckPredicate, 9, // Predicate_load
/*335001*/                OPC_MoveParent,
/*335002*/                OPC_RecordChild1, // #3 = $src1
/*335003*/                OPC_RecordChild2, // #4 = $src2
/*335004*/                OPC_MoveParent,
/*335005*/                OPC_MoveChild2,
/*335006*/                OPC_CheckImmAllZerosV,
/*335007*/                OPC_MoveParent,
/*335008*/                OPC_CheckType, MVT::v16f32,
/*335010*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*335012*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*335015*/                OPC_EmitMergeInputChains1_1,
/*335016*/                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>>, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                          // Dst: (VFMADDSUB132PSZmkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*335030*/              /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->335068
/*335033*/                OPC_RecordMemRef,
/*335034*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*335035*/                OPC_CheckFoldableChainNode,
/*335036*/                OPC_RecordChild1, // #2 = $src3
/*335037*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*335039*/                OPC_MoveParent,
/*335040*/                OPC_RecordChild1, // #3 = $src1
/*335041*/                OPC_RecordChild2, // #4 = $src2
/*335042*/                OPC_MoveParent,
/*335043*/                OPC_MoveChild2,
/*335044*/                OPC_CheckImmAllZerosV,
/*335045*/                OPC_MoveParent,
/*335046*/                OPC_CheckType, MVT::v16f32,
/*335048*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*335050*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*335053*/                OPC_EmitMergeInputChains1_1,
/*335054*/                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] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                          // Dst: (VFMADDSUB132PSZmbkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*335068*/              0, // EndSwitchOpcode
/*335069*/            0, /*End of Scope*/
/*335070*/          /*SwitchOpcode*/ 124|128,1/*252*/, TARGET_VAL(X86ISD::FMSUBADD),// ->335326
/*335074*/            OPC_Scope, 38|128,1/*166*/, /*->335243*/ // 2 children in Scope
/*335077*/              OPC_RecordChild0, // #1 = $src2
/*335078*/              OPC_Scope, 82, /*->335162*/ // 2 children in Scope
/*335080*/                OPC_RecordChild1, // #2 = $src1
/*335081*/                OPC_MoveChild2,
/*335082*/                OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->335123
/*335086*/                  OPC_RecordMemRef,
/*335087*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*335088*/                  OPC_CheckFoldableChainNode,
/*335089*/                  OPC_RecordChild1, // #4 = $src3
/*335090*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*335092*/                  OPC_CheckPredicate, 9, // Predicate_load
/*335094*/                  OPC_MoveParent,
/*335095*/                  OPC_MoveParent,
/*335096*/                  OPC_MoveChild2,
/*335097*/                  OPC_CheckImmAllZerosV,
/*335098*/                  OPC_MoveParent,
/*335099*/                  OPC_CheckType, MVT::v16f32,
/*335101*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*335103*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*335106*/                  OPC_EmitMergeInputChains, 1, 3, 
/*335109*/                  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>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                            // Dst: (VFMSUBADD213PSZmkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*335123*/                /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->335161
/*335126*/                  OPC_RecordMemRef,
/*335127*/                  OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*335128*/                  OPC_CheckFoldableChainNode,
/*335129*/                  OPC_RecordChild1, // #4 = $src3
/*335130*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*335132*/                  OPC_MoveParent,
/*335133*/                  OPC_MoveParent,
/*335134*/                  OPC_MoveChild2,
/*335135*/                  OPC_CheckImmAllZerosV,
/*335136*/                  OPC_MoveParent,
/*335137*/                  OPC_CheckType, MVT::v16f32,
/*335139*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*335141*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*335144*/                  OPC_EmitMergeInputChains, 1, 3, 
/*335147*/                  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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                            // Dst: (VFMSUBADD213PSZmbkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*335161*/                0, // EndSwitchOpcode
/*335162*/              /*Scope*/ 79, /*->335242*/
/*335163*/                OPC_MoveChild1,
/*335164*/                OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->335204
/*335168*/                  OPC_RecordMemRef,
/*335169*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*335170*/                  OPC_CheckFoldableChainNode,
/*335171*/                  OPC_RecordChild1, // #3 = $src3
/*335172*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*335174*/                  OPC_CheckPredicate, 9, // Predicate_load
/*335176*/                  OPC_MoveParent,
/*335177*/                  OPC_RecordChild2, // #4 = $src1
/*335178*/                  OPC_MoveParent,
/*335179*/                  OPC_MoveChild2,
/*335180*/                  OPC_CheckImmAllZerosV,
/*335181*/                  OPC_MoveParent,
/*335182*/                  OPC_CheckType, MVT::v16f32,
/*335184*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*335186*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*335189*/                  OPC_EmitMergeInputChains1_2,
/*335190*/                  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>>, VR512:{ *:[v16f32] }:$src1), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                            // Dst: (VFMSUBADD231PSZmkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*335204*/                /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->335241
/*335207*/                  OPC_RecordMemRef,
/*335208*/                  OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*335209*/                  OPC_CheckFoldableChainNode,
/*335210*/                  OPC_RecordChild1, // #3 = $src3
/*335211*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*335213*/                  OPC_MoveParent,
/*335214*/                  OPC_RecordChild2, // #4 = $src1
/*335215*/                  OPC_MoveParent,
/*335216*/                  OPC_MoveChild2,
/*335217*/                  OPC_CheckImmAllZerosV,
/*335218*/                  OPC_MoveParent,
/*335219*/                  OPC_CheckType, MVT::v16f32,
/*335221*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*335223*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*335226*/                  OPC_EmitMergeInputChains1_2,
/*335227*/                  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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src1), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                            // Dst: (VFMSUBADD231PSZmbkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*335241*/                0, // EndSwitchOpcode
/*335242*/              0, /*End of Scope*/
/*335243*/            /*Scope*/ 81, /*->335325*/
/*335244*/              OPC_MoveChild0,
/*335245*/              OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->335286
/*335249*/                OPC_RecordMemRef,
/*335250*/                OPC_RecordNode, // #1 = 'ld' chained node
/*335251*/                OPC_CheckFoldableChainNode,
/*335252*/                OPC_RecordChild1, // #2 = $src3
/*335253*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*335255*/                OPC_CheckPredicate, 9, // Predicate_load
/*335257*/                OPC_MoveParent,
/*335258*/                OPC_RecordChild1, // #3 = $src1
/*335259*/                OPC_RecordChild2, // #4 = $src2
/*335260*/                OPC_MoveParent,
/*335261*/                OPC_MoveChild2,
/*335262*/                OPC_CheckImmAllZerosV,
/*335263*/                OPC_MoveParent,
/*335264*/                OPC_CheckType, MVT::v16f32,
/*335266*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*335268*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*335271*/                OPC_EmitMergeInputChains1_1,
/*335272*/                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>>, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                          // Dst: (VFMSUBADD132PSZmkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*335286*/              /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->335324
/*335289*/                OPC_RecordMemRef,
/*335290*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*335291*/                OPC_CheckFoldableChainNode,
/*335292*/                OPC_RecordChild1, // #2 = $src3
/*335293*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*335295*/                OPC_MoveParent,
/*335296*/                OPC_RecordChild1, // #3 = $src1
/*335297*/                OPC_RecordChild2, // #4 = $src2
/*335298*/                OPC_MoveParent,
/*335299*/                OPC_MoveChild2,
/*335300*/                OPC_CheckImmAllZerosV,
/*335301*/                OPC_MoveParent,
/*335302*/                OPC_CheckType, MVT::v16f32,
/*335304*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*335306*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*335309*/                OPC_EmitMergeInputChains1_1,
/*335310*/                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] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                          // Dst: (VFMSUBADD132PSZmbkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*335324*/              0, // EndSwitchOpcode
/*335325*/            0, /*End of Scope*/
/*335326*/          /*SwitchOpcode*/ 124|128,1/*252*/, TARGET_VAL(X86ISD::FNMADD),// ->335582
/*335330*/            OPC_Scope, 38|128,1/*166*/, /*->335499*/ // 2 children in Scope
/*335333*/              OPC_RecordChild0, // #1 = $src2
/*335334*/              OPC_Scope, 82, /*->335418*/ // 2 children in Scope
/*335336*/                OPC_RecordChild1, // #2 = $src1
/*335337*/                OPC_MoveChild2,
/*335338*/                OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->335379
/*335342*/                  OPC_RecordMemRef,
/*335343*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*335344*/                  OPC_CheckFoldableChainNode,
/*335345*/                  OPC_RecordChild1, // #4 = $src3
/*335346*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*335348*/                  OPC_CheckPredicate, 9, // Predicate_load
/*335350*/                  OPC_MoveParent,
/*335351*/                  OPC_MoveParent,
/*335352*/                  OPC_MoveChild2,
/*335353*/                  OPC_CheckImmAllZerosV,
/*335354*/                  OPC_MoveParent,
/*335355*/                  OPC_CheckType, MVT::v16f32,
/*335357*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*335359*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*335362*/                  OPC_EmitMergeInputChains, 1, 3, 
/*335365*/                  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>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                            // Dst: (VFNMADD213PSZmkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*335379*/                /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->335417
/*335382*/                  OPC_RecordMemRef,
/*335383*/                  OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*335384*/                  OPC_CheckFoldableChainNode,
/*335385*/                  OPC_RecordChild1, // #4 = $src3
/*335386*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*335388*/                  OPC_MoveParent,
/*335389*/                  OPC_MoveParent,
/*335390*/                  OPC_MoveChild2,
/*335391*/                  OPC_CheckImmAllZerosV,
/*335392*/                  OPC_MoveParent,
/*335393*/                  OPC_CheckType, MVT::v16f32,
/*335395*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*335397*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*335400*/                  OPC_EmitMergeInputChains, 1, 3, 
/*335403*/                  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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                            // Dst: (VFNMADD213PSZmbkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*335417*/                0, // EndSwitchOpcode
/*335418*/              /*Scope*/ 79, /*->335498*/
/*335419*/                OPC_MoveChild1,
/*335420*/                OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->335460
/*335424*/                  OPC_RecordMemRef,
/*335425*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*335426*/                  OPC_CheckFoldableChainNode,
/*335427*/                  OPC_RecordChild1, // #3 = $src3
/*335428*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*335430*/                  OPC_CheckPredicate, 9, // Predicate_load
/*335432*/                  OPC_MoveParent,
/*335433*/                  OPC_RecordChild2, // #4 = $src1
/*335434*/                  OPC_MoveParent,
/*335435*/                  OPC_MoveChild2,
/*335436*/                  OPC_CheckImmAllZerosV,
/*335437*/                  OPC_MoveParent,
/*335438*/                  OPC_CheckType, MVT::v16f32,
/*335440*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*335442*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*335445*/                  OPC_EmitMergeInputChains1_2,
/*335446*/                  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>>, VR512:{ *:[v16f32] }:$src1), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                            // Dst: (VFNMADD231PSZmkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*335460*/                /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->335497
/*335463*/                  OPC_RecordMemRef,
/*335464*/                  OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*335465*/                  OPC_CheckFoldableChainNode,
/*335466*/                  OPC_RecordChild1, // #3 = $src3
/*335467*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*335469*/                  OPC_MoveParent,
/*335470*/                  OPC_RecordChild2, // #4 = $src1
/*335471*/                  OPC_MoveParent,
/*335472*/                  OPC_MoveChild2,
/*335473*/                  OPC_CheckImmAllZerosV,
/*335474*/                  OPC_MoveParent,
/*335475*/                  OPC_CheckType, MVT::v16f32,
/*335477*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*335479*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*335482*/                  OPC_EmitMergeInputChains1_2,
/*335483*/                  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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src1), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                            // Dst: (VFNMADD231PSZmbkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*335497*/                0, // EndSwitchOpcode
/*335498*/              0, /*End of Scope*/
/*335499*/            /*Scope*/ 81, /*->335581*/
/*335500*/              OPC_MoveChild0,
/*335501*/              OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->335542
/*335505*/                OPC_RecordMemRef,
/*335506*/                OPC_RecordNode, // #1 = 'ld' chained node
/*335507*/                OPC_CheckFoldableChainNode,
/*335508*/                OPC_RecordChild1, // #2 = $src3
/*335509*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*335511*/                OPC_CheckPredicate, 9, // Predicate_load
/*335513*/                OPC_MoveParent,
/*335514*/                OPC_RecordChild1, // #3 = $src1
/*335515*/                OPC_RecordChild2, // #4 = $src2
/*335516*/                OPC_MoveParent,
/*335517*/                OPC_MoveChild2,
/*335518*/                OPC_CheckImmAllZerosV,
/*335519*/                OPC_MoveParent,
/*335520*/                OPC_CheckType, MVT::v16f32,
/*335522*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*335524*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*335527*/                OPC_EmitMergeInputChains1_1,
/*335528*/                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>>, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                          // Dst: (VFNMADD132PSZmkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*335542*/              /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->335580
/*335545*/                OPC_RecordMemRef,
/*335546*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*335547*/                OPC_CheckFoldableChainNode,
/*335548*/                OPC_RecordChild1, // #2 = $src3
/*335549*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*335551*/                OPC_MoveParent,
/*335552*/                OPC_RecordChild1, // #3 = $src1
/*335553*/                OPC_RecordChild2, // #4 = $src2
/*335554*/                OPC_MoveParent,
/*335555*/                OPC_MoveChild2,
/*335556*/                OPC_CheckImmAllZerosV,
/*335557*/                OPC_MoveParent,
/*335558*/                OPC_CheckType, MVT::v16f32,
/*335560*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*335562*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*335565*/                OPC_EmitMergeInputChains1_1,
/*335566*/                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] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                          // Dst: (VFNMADD132PSZmbkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*335580*/              0, // EndSwitchOpcode
/*335581*/            0, /*End of Scope*/
/*335582*/          /*SwitchOpcode*/ 124|128,1/*252*/, TARGET_VAL(X86ISD::FNMSUB),// ->335838
/*335586*/            OPC_Scope, 38|128,1/*166*/, /*->335755*/ // 2 children in Scope
/*335589*/              OPC_RecordChild0, // #1 = $src2
/*335590*/              OPC_Scope, 82, /*->335674*/ // 2 children in Scope
/*335592*/                OPC_RecordChild1, // #2 = $src1
/*335593*/                OPC_MoveChild2,
/*335594*/                OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->335635
/*335598*/                  OPC_RecordMemRef,
/*335599*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*335600*/                  OPC_CheckFoldableChainNode,
/*335601*/                  OPC_RecordChild1, // #4 = $src3
/*335602*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*335604*/                  OPC_CheckPredicate, 9, // Predicate_load
/*335606*/                  OPC_MoveParent,
/*335607*/                  OPC_MoveParent,
/*335608*/                  OPC_MoveChild2,
/*335609*/                  OPC_CheckImmAllZerosV,
/*335610*/                  OPC_MoveParent,
/*335611*/                  OPC_CheckType, MVT::v16f32,
/*335613*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*335615*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*335618*/                  OPC_EmitMergeInputChains, 1, 3, 
/*335621*/                  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>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                            // Dst: (VFNMSUB213PSZmkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*335635*/                /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->335673
/*335638*/                  OPC_RecordMemRef,
/*335639*/                  OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*335640*/                  OPC_CheckFoldableChainNode,
/*335641*/                  OPC_RecordChild1, // #4 = $src3
/*335642*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*335644*/                  OPC_MoveParent,
/*335645*/                  OPC_MoveParent,
/*335646*/                  OPC_MoveChild2,
/*335647*/                  OPC_CheckImmAllZerosV,
/*335648*/                  OPC_MoveParent,
/*335649*/                  OPC_CheckType, MVT::v16f32,
/*335651*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*335653*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*335656*/                  OPC_EmitMergeInputChains, 1, 3, 
/*335659*/                  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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                            // Dst: (VFNMSUB213PSZmbkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*335673*/                0, // EndSwitchOpcode
/*335674*/              /*Scope*/ 79, /*->335754*/
/*335675*/                OPC_MoveChild1,
/*335676*/                OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->335716
/*335680*/                  OPC_RecordMemRef,
/*335681*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*335682*/                  OPC_CheckFoldableChainNode,
/*335683*/                  OPC_RecordChild1, // #3 = $src3
/*335684*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*335686*/                  OPC_CheckPredicate, 9, // Predicate_load
/*335688*/                  OPC_MoveParent,
/*335689*/                  OPC_RecordChild2, // #4 = $src1
/*335690*/                  OPC_MoveParent,
/*335691*/                  OPC_MoveChild2,
/*335692*/                  OPC_CheckImmAllZerosV,
/*335693*/                  OPC_MoveParent,
/*335694*/                  OPC_CheckType, MVT::v16f32,
/*335696*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*335698*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*335701*/                  OPC_EmitMergeInputChains1_2,
/*335702*/                  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>>, VR512:{ *:[v16f32] }:$src1), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                            // Dst: (VFNMSUB231PSZmkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*335716*/                /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->335753
/*335719*/                  OPC_RecordMemRef,
/*335720*/                  OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*335721*/                  OPC_CheckFoldableChainNode,
/*335722*/                  OPC_RecordChild1, // #3 = $src3
/*335723*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*335725*/                  OPC_MoveParent,
/*335726*/                  OPC_RecordChild2, // #4 = $src1
/*335727*/                  OPC_MoveParent,
/*335728*/                  OPC_MoveChild2,
/*335729*/                  OPC_CheckImmAllZerosV,
/*335730*/                  OPC_MoveParent,
/*335731*/                  OPC_CheckType, MVT::v16f32,
/*335733*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*335735*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*335738*/                  OPC_EmitMergeInputChains1_2,
/*335739*/                  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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src1), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                            // Dst: (VFNMSUB231PSZmbkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*335753*/                0, // EndSwitchOpcode
/*335754*/              0, /*End of Scope*/
/*335755*/            /*Scope*/ 81, /*->335837*/
/*335756*/              OPC_MoveChild0,
/*335757*/              OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->335798
/*335761*/                OPC_RecordMemRef,
/*335762*/                OPC_RecordNode, // #1 = 'ld' chained node
/*335763*/                OPC_CheckFoldableChainNode,
/*335764*/                OPC_RecordChild1, // #2 = $src3
/*335765*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*335767*/                OPC_CheckPredicate, 9, // Predicate_load
/*335769*/                OPC_MoveParent,
/*335770*/                OPC_RecordChild1, // #3 = $src1
/*335771*/                OPC_RecordChild2, // #4 = $src2
/*335772*/                OPC_MoveParent,
/*335773*/                OPC_MoveChild2,
/*335774*/                OPC_CheckImmAllZerosV,
/*335775*/                OPC_MoveParent,
/*335776*/                OPC_CheckType, MVT::v16f32,
/*335778*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*335780*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*335783*/                OPC_EmitMergeInputChains1_1,
/*335784*/                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>>, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                          // Dst: (VFNMSUB132PSZmkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*335798*/              /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->335836
/*335801*/                OPC_RecordMemRef,
/*335802*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*335803*/                OPC_CheckFoldableChainNode,
/*335804*/                OPC_RecordChild1, // #2 = $src3
/*335805*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*335807*/                OPC_MoveParent,
/*335808*/                OPC_RecordChild1, // #3 = $src1
/*335809*/                OPC_RecordChild2, // #4 = $src2
/*335810*/                OPC_MoveParent,
/*335811*/                OPC_MoveChild2,
/*335812*/                OPC_CheckImmAllZerosV,
/*335813*/                OPC_MoveParent,
/*335814*/                OPC_CheckType, MVT::v16f32,
/*335816*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*335818*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*335821*/                OPC_EmitMergeInputChains1_1,
/*335822*/                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] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                          // Dst: (VFNMSUB132PSZmbkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*335836*/              0, // EndSwitchOpcode
/*335837*/            0, /*End of Scope*/
/*335838*/          /*SwitchOpcode*/ 85, TARGET_VAL(ISD::STRICT_SINT_TO_FP),// ->335926
/*335841*/            OPC_RecordNode, // #1 = 'strict_sint_to_fp' chained node
/*335842*/            OPC_CheckFoldableChainNode,
/*335843*/            OPC_MoveChild1,
/*335844*/            OPC_SwitchOpcode /*2 cases */, 38, TARGET_VAL(ISD::LOAD),// ->335886
/*335848*/              OPC_RecordMemRef,
/*335849*/              OPC_RecordNode, // #2 = 'ld' chained node
/*335850*/              OPC_CheckFoldableChainNode,
/*335851*/              OPC_RecordChild1, // #3 = $src
/*335852*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*335854*/              OPC_CheckPredicate, 9, // Predicate_load
/*335856*/              OPC_CheckType, MVT::v16i32,
/*335858*/              OPC_MoveParent,
/*335859*/              OPC_MoveParent,
/*335860*/              OPC_MoveChild2,
/*335861*/              OPC_CheckImmAllZerosV,
/*335862*/              OPC_MoveParent,
/*335863*/              OPC_CheckType, MVT::v16f32,
/*335865*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*335867*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*335870*/              OPC_EmitMergeInputChains, 2, 1, 2, 
/*335874*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (strict_sint_to_fp:{ *:[v16f32] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                        // Dst: (VCVTDQ2PSZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*335886*/            /*SwitchOpcode*/ 36, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->335925
/*335889*/              OPC_RecordMemRef,
/*335890*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*335891*/              OPC_CheckFoldableChainNode,
/*335892*/              OPC_RecordChild1, // #3 = $src
/*335893*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*335895*/              OPC_CheckType, MVT::v16i32,
/*335897*/              OPC_MoveParent,
/*335898*/              OPC_MoveParent,
/*335899*/              OPC_MoveChild2,
/*335900*/              OPC_CheckImmAllZerosV,
/*335901*/              OPC_MoveParent,
/*335902*/              OPC_CheckType, MVT::v16f32,
/*335904*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*335906*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*335909*/              OPC_EmitMergeInputChains, 2, 1, 2, 
/*335913*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (strict_sint_to_fp:{ *:[v16f32] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                        // Dst: (VCVTDQ2PSZrmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*335925*/            0, // EndSwitchOpcode
/*335926*/          /*SwitchOpcode*/ 77, TARGET_VAL(ISD::SINT_TO_FP),// ->336006
/*335929*/            OPC_MoveChild0,
/*335930*/            OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->335969
/*335934*/              OPC_RecordMemRef,
/*335935*/              OPC_RecordNode, // #1 = 'ld' chained node
/*335936*/              OPC_CheckFoldableChainNode,
/*335937*/              OPC_RecordChild1, // #2 = $src
/*335938*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*335940*/              OPC_CheckPredicate, 9, // Predicate_load
/*335942*/              OPC_CheckType, MVT::v16i32,
/*335944*/              OPC_MoveParent,
/*335945*/              OPC_MoveParent,
/*335946*/              OPC_MoveChild2,
/*335947*/              OPC_CheckImmAllZerosV,
/*335948*/              OPC_MoveParent,
/*335949*/              OPC_CheckType, MVT::v16f32,
/*335951*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*335953*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*335956*/              OPC_EmitMergeInputChains1_1,
/*335957*/              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] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                        // Dst: (VCVTDQ2PSZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*335969*/            /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->336005
/*335972*/              OPC_RecordMemRef,
/*335973*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*335974*/              OPC_CheckFoldableChainNode,
/*335975*/              OPC_RecordChild1, // #2 = $src
/*335976*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*335978*/              OPC_CheckType, MVT::v16i32,
/*335980*/              OPC_MoveParent,
/*335981*/              OPC_MoveParent,
/*335982*/              OPC_MoveChild2,
/*335983*/              OPC_CheckImmAllZerosV,
/*335984*/              OPC_MoveParent,
/*335985*/              OPC_CheckType, MVT::v16f32,
/*335987*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*335989*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*335992*/              OPC_EmitMergeInputChains1_1,
/*335993*/              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] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                        // Dst: (VCVTDQ2PSZrmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*336005*/            0, // EndSwitchOpcode
/*336006*/          /*SwitchOpcode*/ 85, TARGET_VAL(ISD::STRICT_UINT_TO_FP),// ->336094
/*336009*/            OPC_RecordNode, // #1 = 'strict_uint_to_fp' chained node
/*336010*/            OPC_CheckFoldableChainNode,
/*336011*/            OPC_MoveChild1,
/*336012*/            OPC_SwitchOpcode /*2 cases */, 38, TARGET_VAL(ISD::LOAD),// ->336054
/*336016*/              OPC_RecordMemRef,
/*336017*/              OPC_RecordNode, // #2 = 'ld' chained node
/*336018*/              OPC_CheckFoldableChainNode,
/*336019*/              OPC_RecordChild1, // #3 = $src
/*336020*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*336022*/              OPC_CheckPredicate, 9, // Predicate_load
/*336024*/              OPC_CheckType, MVT::v16i32,
/*336026*/              OPC_MoveParent,
/*336027*/              OPC_MoveParent,
/*336028*/              OPC_MoveChild2,
/*336029*/              OPC_CheckImmAllZerosV,
/*336030*/              OPC_MoveParent,
/*336031*/              OPC_CheckType, MVT::v16f32,
/*336033*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*336035*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*336038*/              OPC_EmitMergeInputChains, 2, 1, 2, 
/*336042*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PSZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (strict_uint_to_fp:{ *:[v16f32] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                        // Dst: (VCVTUDQ2PSZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*336054*/            /*SwitchOpcode*/ 36, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->336093
/*336057*/              OPC_RecordMemRef,
/*336058*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*336059*/              OPC_CheckFoldableChainNode,
/*336060*/              OPC_RecordChild1, // #3 = $src
/*336061*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*336063*/              OPC_CheckType, MVT::v16i32,
/*336065*/              OPC_MoveParent,
/*336066*/              OPC_MoveParent,
/*336067*/              OPC_MoveChild2,
/*336068*/              OPC_CheckImmAllZerosV,
/*336069*/              OPC_MoveParent,
/*336070*/              OPC_CheckType, MVT::v16f32,
/*336072*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*336074*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*336077*/              OPC_EmitMergeInputChains, 2, 1, 2, 
/*336081*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PSZrmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (strict_uint_to_fp:{ *:[v16f32] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                        // Dst: (VCVTUDQ2PSZrmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*336093*/            0, // EndSwitchOpcode
/*336094*/          /*SwitchOpcode*/ 77, TARGET_VAL(ISD::UINT_TO_FP),// ->336174
/*336097*/            OPC_MoveChild0,
/*336098*/            OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->336137
/*336102*/              OPC_RecordMemRef,
/*336103*/              OPC_RecordNode, // #1 = 'ld' chained node
/*336104*/              OPC_CheckFoldableChainNode,
/*336105*/              OPC_RecordChild1, // #2 = $src
/*336106*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*336108*/              OPC_CheckPredicate, 9, // Predicate_load
/*336110*/              OPC_CheckType, MVT::v16i32,
/*336112*/              OPC_MoveParent,
/*336113*/              OPC_MoveParent,
/*336114*/              OPC_MoveChild2,
/*336115*/              OPC_CheckImmAllZerosV,
/*336116*/              OPC_MoveParent,
/*336117*/              OPC_CheckType, MVT::v16f32,
/*336119*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*336121*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*336124*/              OPC_EmitMergeInputChains1_1,
/*336125*/              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] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                        // Dst: (VCVTUDQ2PSZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*336137*/            /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->336173
/*336140*/              OPC_RecordMemRef,
/*336141*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*336142*/              OPC_CheckFoldableChainNode,
/*336143*/              OPC_RecordChild1, // #2 = $src
/*336144*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*336146*/              OPC_CheckType, MVT::v16i32,
/*336148*/              OPC_MoveParent,
/*336149*/              OPC_MoveParent,
/*336150*/              OPC_MoveChild2,
/*336151*/              OPC_CheckImmAllZerosV,
/*336152*/              OPC_MoveParent,
/*336153*/              OPC_CheckType, MVT::v16f32,
/*336155*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*336157*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*336160*/              OPC_EmitMergeInputChains1_1,
/*336161*/              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] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                        // Dst: (VCVTUDQ2PSZrmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*336173*/            0, // EndSwitchOpcode
/*336174*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::CVTPH2PS),// ->336216
/*336177*/            OPC_MoveChild0,
/*336178*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*336181*/            OPC_RecordMemRef,
/*336182*/            OPC_RecordNode, // #1 = 'ld' chained node
/*336183*/            OPC_CheckFoldableChainNode,
/*336184*/            OPC_RecordChild1, // #2 = $src
/*336185*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*336187*/            OPC_CheckPredicate, 9, // Predicate_load
/*336189*/            OPC_CheckType, MVT::v16i16,
/*336191*/            OPC_MoveParent,
/*336192*/            OPC_MoveParent,
/*336193*/            OPC_MoveChild2,
/*336194*/            OPC_CheckImmAllZerosV,
/*336195*/            OPC_MoveParent,
/*336196*/            OPC_CheckType, MVT::v16f32,
/*336198*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*336200*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*336203*/            OPC_EmitMergeInputChains1_1,
/*336204*/            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] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                      // Dst: (VCVTPH2PSZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*336216*/          /*SwitchOpcode*/ 73, TARGET_VAL(X86ISD::RSQRT14),// ->336292
/*336219*/            OPC_MoveChild0,
/*336220*/            OPC_SwitchOpcode /*2 cases */, 33, TARGET_VAL(ISD::LOAD),// ->336257
/*336224*/              OPC_RecordMemRef,
/*336225*/              OPC_RecordNode, // #1 = 'ld' chained node
/*336226*/              OPC_CheckFoldableChainNode,
/*336227*/              OPC_RecordChild1, // #2 = $src
/*336228*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*336230*/              OPC_CheckPredicate, 9, // Predicate_load
/*336232*/              OPC_MoveParent,
/*336233*/              OPC_MoveParent,
/*336234*/              OPC_MoveChild2,
/*336235*/              OPC_CheckImmAllZerosV,
/*336236*/              OPC_MoveParent,
/*336237*/              OPC_CheckType, MVT::v16f32,
/*336239*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*336241*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*336244*/              OPC_EmitMergeInputChains1_1,
/*336245*/              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>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                        // Dst: (VRSQRT14PSZmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*336257*/            /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->336291
/*336260*/              OPC_RecordMemRef,
/*336261*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*336262*/              OPC_CheckFoldableChainNode,
/*336263*/              OPC_RecordChild1, // #2 = $src
/*336264*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*336266*/              OPC_MoveParent,
/*336267*/              OPC_MoveParent,
/*336268*/              OPC_MoveChild2,
/*336269*/              OPC_CheckImmAllZerosV,
/*336270*/              OPC_MoveParent,
/*336271*/              OPC_CheckType, MVT::v16f32,
/*336273*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*336275*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*336278*/              OPC_EmitMergeInputChains1_1,
/*336279*/              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] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                        // Dst: (VRSQRT14PSZmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*336291*/            0, // EndSwitchOpcode
/*336292*/          /*SwitchOpcode*/ 73, TARGET_VAL(X86ISD::RCP14),// ->336368
/*336295*/            OPC_MoveChild0,
/*336296*/            OPC_SwitchOpcode /*2 cases */, 33, TARGET_VAL(ISD::LOAD),// ->336333
/*336300*/              OPC_RecordMemRef,
/*336301*/              OPC_RecordNode, // #1 = 'ld' chained node
/*336302*/              OPC_CheckFoldableChainNode,
/*336303*/              OPC_RecordChild1, // #2 = $src
/*336304*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*336306*/              OPC_CheckPredicate, 9, // Predicate_load
/*336308*/              OPC_MoveParent,
/*336309*/              OPC_MoveParent,
/*336310*/              OPC_MoveChild2,
/*336311*/              OPC_CheckImmAllZerosV,
/*336312*/              OPC_MoveParent,
/*336313*/              OPC_CheckType, MVT::v16f32,
/*336315*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*336317*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*336320*/              OPC_EmitMergeInputChains1_1,
/*336321*/              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>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                        // Dst: (VRCP14PSZmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*336333*/            /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->336367
/*336336*/              OPC_RecordMemRef,
/*336337*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*336338*/              OPC_CheckFoldableChainNode,
/*336339*/              OPC_RecordChild1, // #2 = $src
/*336340*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*336342*/              OPC_MoveParent,
/*336343*/              OPC_MoveParent,
/*336344*/              OPC_MoveChild2,
/*336345*/              OPC_CheckImmAllZerosV,
/*336346*/              OPC_MoveParent,
/*336347*/              OPC_CheckType, MVT::v16f32,
/*336349*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*336351*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*336354*/              OPC_EmitMergeInputChains1_1,
/*336355*/              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] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                        // Dst: (VRCP14PSZmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*336367*/            0, // EndSwitchOpcode
/*336368*/          /*SwitchOpcode*/ 73, TARGET_VAL(X86ISD::RSQRT28),// ->336444
/*336371*/            OPC_MoveChild0,
/*336372*/            OPC_SwitchOpcode /*2 cases */, 33, TARGET_VAL(ISD::LOAD),// ->336409
/*336376*/              OPC_RecordMemRef,
/*336377*/              OPC_RecordNode, // #1 = 'ld' chained node
/*336378*/              OPC_CheckFoldableChainNode,
/*336379*/              OPC_RecordChild1, // #2 = $src
/*336380*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*336382*/              OPC_CheckPredicate, 9, // Predicate_load
/*336384*/              OPC_MoveParent,
/*336385*/              OPC_MoveParent,
/*336386*/              OPC_MoveChild2,
/*336387*/              OPC_CheckImmAllZerosV,
/*336388*/              OPC_MoveParent,
/*336389*/              OPC_CheckType, MVT::v16f32,
/*336391*/              OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*336393*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*336396*/              OPC_EmitMergeInputChains1_1,
/*336397*/              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>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                        // Dst: (VRSQRT28PSZmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*336409*/            /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->336443
/*336412*/              OPC_RecordMemRef,
/*336413*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*336414*/              OPC_CheckFoldableChainNode,
/*336415*/              OPC_RecordChild1, // #2 = $src
/*336416*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*336418*/              OPC_MoveParent,
/*336419*/              OPC_MoveParent,
/*336420*/              OPC_MoveChild2,
/*336421*/              OPC_CheckImmAllZerosV,
/*336422*/              OPC_MoveParent,
/*336423*/              OPC_CheckType, MVT::v16f32,
/*336425*/              OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*336427*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*336430*/              OPC_EmitMergeInputChains1_1,
/*336431*/              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] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                        // Dst: (VRSQRT28PSZmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*336443*/            0, // EndSwitchOpcode
/*336444*/          /*SwitchOpcode*/ 73, TARGET_VAL(X86ISD::RCP28),// ->336520
/*336447*/            OPC_MoveChild0,
/*336448*/            OPC_SwitchOpcode /*2 cases */, 33, TARGET_VAL(ISD::LOAD),// ->336485
/*336452*/              OPC_RecordMemRef,
/*336453*/              OPC_RecordNode, // #1 = 'ld' chained node
/*336454*/              OPC_CheckFoldableChainNode,
/*336455*/              OPC_RecordChild1, // #2 = $src
/*336456*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*336458*/              OPC_CheckPredicate, 9, // Predicate_load
/*336460*/              OPC_MoveParent,
/*336461*/              OPC_MoveParent,
/*336462*/              OPC_MoveChild2,
/*336463*/              OPC_CheckImmAllZerosV,
/*336464*/              OPC_MoveParent,
/*336465*/              OPC_CheckType, MVT::v16f32,
/*336467*/              OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*336469*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*336472*/              OPC_EmitMergeInputChains1_1,
/*336473*/              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>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                        // Dst: (VRCP28PSZmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*336485*/            /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->336519
/*336488*/              OPC_RecordMemRef,
/*336489*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*336490*/              OPC_CheckFoldableChainNode,
/*336491*/              OPC_RecordChild1, // #2 = $src
/*336492*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*336494*/              OPC_MoveParent,
/*336495*/              OPC_MoveParent,
/*336496*/              OPC_MoveChild2,
/*336497*/              OPC_CheckImmAllZerosV,
/*336498*/              OPC_MoveParent,
/*336499*/              OPC_CheckType, MVT::v16f32,
/*336501*/              OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*336503*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*336506*/              OPC_EmitMergeInputChains1_1,
/*336507*/              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] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                        // Dst: (VRCP28PSZmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*336519*/            0, // EndSwitchOpcode
/*336520*/          /*SwitchOpcode*/ 73, TARGET_VAL(X86ISD::EXP2),// ->336596
/*336523*/            OPC_MoveChild0,
/*336524*/            OPC_SwitchOpcode /*2 cases */, 33, TARGET_VAL(ISD::LOAD),// ->336561
/*336528*/              OPC_RecordMemRef,
/*336529*/              OPC_RecordNode, // #1 = 'ld' chained node
/*336530*/              OPC_CheckFoldableChainNode,
/*336531*/              OPC_RecordChild1, // #2 = $src
/*336532*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*336534*/              OPC_CheckPredicate, 9, // Predicate_load
/*336536*/              OPC_MoveParent,
/*336537*/              OPC_MoveParent,
/*336538*/              OPC_MoveChild2,
/*336539*/              OPC_CheckImmAllZerosV,
/*336540*/              OPC_MoveParent,
/*336541*/              OPC_CheckType, MVT::v16f32,
/*336543*/              OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*336545*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*336548*/              OPC_EmitMergeInputChains1_1,
/*336549*/              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>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                        // Dst: (VEXP2PSZmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*336561*/            /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->336595
/*336564*/              OPC_RecordMemRef,
/*336565*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*336566*/              OPC_CheckFoldableChainNode,
/*336567*/              OPC_RecordChild1, // #2 = $src
/*336568*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*336570*/              OPC_MoveParent,
/*336571*/              OPC_MoveParent,
/*336572*/              OPC_MoveChild2,
/*336573*/              OPC_CheckImmAllZerosV,
/*336574*/              OPC_MoveParent,
/*336575*/              OPC_CheckType, MVT::v16f32,
/*336577*/              OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*336579*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*336582*/              OPC_EmitMergeInputChains1_1,
/*336583*/              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] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                        // Dst: (VEXP2PSZmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*336595*/            0, // EndSwitchOpcode
/*336596*/          /*SwitchOpcode*/ 73, TARGET_VAL(X86ISD::FGETEXP),// ->336672
/*336599*/            OPC_MoveChild0,
/*336600*/            OPC_SwitchOpcode /*2 cases */, 33, TARGET_VAL(ISD::LOAD),// ->336637
/*336604*/              OPC_RecordMemRef,
/*336605*/              OPC_RecordNode, // #1 = 'ld' chained node
/*336606*/              OPC_CheckFoldableChainNode,
/*336607*/              OPC_RecordChild1, // #2 = $src
/*336608*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*336610*/              OPC_CheckPredicate, 9, // Predicate_load
/*336612*/              OPC_MoveParent,
/*336613*/              OPC_MoveParent,
/*336614*/              OPC_MoveChild2,
/*336615*/              OPC_CheckImmAllZerosV,
/*336616*/              OPC_MoveParent,
/*336617*/              OPC_CheckType, MVT::v16f32,
/*336619*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*336621*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*336624*/              OPC_EmitMergeInputChains1_1,
/*336625*/              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, (X86fgetexp:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                        // Dst: (VGETEXPPSZmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*336637*/            /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->336671
/*336640*/              OPC_RecordMemRef,
/*336641*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*336642*/              OPC_CheckFoldableChainNode,
/*336643*/              OPC_RecordChild1, // #2 = $src
/*336644*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*336646*/              OPC_MoveParent,
/*336647*/              OPC_MoveParent,
/*336648*/              OPC_MoveChild2,
/*336649*/              OPC_CheckImmAllZerosV,
/*336650*/              OPC_MoveParent,
/*336651*/              OPC_CheckType, MVT::v16f32,
/*336653*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*336655*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*336658*/              OPC_EmitMergeInputChains1_1,
/*336659*/              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, (X86fgetexp:{ *:[v16f32] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                        // Dst: (VGETEXPPSZmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*336671*/            0, // EndSwitchOpcode
/*336672*/          /*SwitchOpcode*/ 81, TARGET_VAL(ISD::STRICT_FSQRT),// ->336756
/*336675*/            OPC_RecordNode, // #1 = 'strict_fsqrt' chained node
/*336676*/            OPC_CheckFoldableChainNode,
/*336677*/            OPC_MoveChild1,
/*336678*/            OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->336718
/*336682*/              OPC_RecordMemRef,
/*336683*/              OPC_RecordNode, // #2 = 'ld' chained node
/*336684*/              OPC_CheckFoldableChainNode,
/*336685*/              OPC_RecordChild1, // #3 = $src
/*336686*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*336688*/              OPC_CheckPredicate, 9, // Predicate_load
/*336690*/              OPC_MoveParent,
/*336691*/              OPC_MoveParent,
/*336692*/              OPC_MoveChild2,
/*336693*/              OPC_CheckImmAllZerosV,
/*336694*/              OPC_MoveParent,
/*336695*/              OPC_CheckType, MVT::v16f32,
/*336697*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*336699*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*336702*/              OPC_EmitMergeInputChains, 2, 1, 2, 
/*336706*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (strict_fsqrt:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                        // Dst: (VSQRTPSZmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*336718*/            /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->336755
/*336721*/              OPC_RecordMemRef,
/*336722*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*336723*/              OPC_CheckFoldableChainNode,
/*336724*/              OPC_RecordChild1, // #3 = $src
/*336725*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*336727*/              OPC_MoveParent,
/*336728*/              OPC_MoveParent,
/*336729*/              OPC_MoveChild2,
/*336730*/              OPC_CheckImmAllZerosV,
/*336731*/              OPC_MoveParent,
/*336732*/              OPC_CheckType, MVT::v16f32,
/*336734*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*336736*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*336739*/              OPC_EmitMergeInputChains, 2, 1, 2, 
/*336743*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (strict_fsqrt:{ *:[v16f32] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                        // Dst: (VSQRTPSZmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*336755*/            0, // EndSwitchOpcode
/*336756*/          /*SwitchOpcode*/ 73, TARGET_VAL(ISD::FSQRT),// ->336832
/*336759*/            OPC_MoveChild0,
/*336760*/            OPC_SwitchOpcode /*2 cases */, 33, TARGET_VAL(ISD::LOAD),// ->336797
/*336764*/              OPC_RecordMemRef,
/*336765*/              OPC_RecordNode, // #1 = 'ld' chained node
/*336766*/              OPC_CheckFoldableChainNode,
/*336767*/              OPC_RecordChild1, // #2 = $src
/*336768*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*336770*/              OPC_CheckPredicate, 9, // Predicate_load
/*336772*/              OPC_MoveParent,
/*336773*/              OPC_MoveParent,
/*336774*/              OPC_MoveChild2,
/*336775*/              OPC_CheckImmAllZerosV,
/*336776*/              OPC_MoveParent,
/*336777*/              OPC_CheckType, MVT::v16f32,
/*336779*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*336781*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*336784*/              OPC_EmitMergeInputChains1_1,
/*336785*/              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>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                        // Dst: (VSQRTPSZmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*336797*/            /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->336831
/*336800*/              OPC_RecordMemRef,
/*336801*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*336802*/              OPC_CheckFoldableChainNode,
/*336803*/              OPC_RecordChild1, // #2 = $src
/*336804*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*336806*/              OPC_MoveParent,
/*336807*/              OPC_MoveParent,
/*336808*/              OPC_MoveChild2,
/*336809*/              OPC_CheckImmAllZerosV,
/*336810*/              OPC_MoveParent,
/*336811*/              OPC_CheckType, MVT::v16f32,
/*336813*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*336815*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*336818*/              OPC_EmitMergeInputChains1_1,
/*336819*/              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] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                        // Dst: (VSQRTPSZmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*336831*/            0, // EndSwitchOpcode
/*336832*/          /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::MOVSHDUP),// ->336872
/*336835*/            OPC_MoveChild0,
/*336836*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*336839*/            OPC_RecordMemRef,
/*336840*/            OPC_RecordNode, // #1 = 'ld' chained node
/*336841*/            OPC_CheckFoldableChainNode,
/*336842*/            OPC_RecordChild1, // #2 = $src1
/*336843*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*336845*/            OPC_CheckPredicate, 9, // Predicate_load
/*336847*/            OPC_MoveParent,
/*336848*/            OPC_MoveParent,
/*336849*/            OPC_MoveChild2,
/*336850*/            OPC_CheckImmAllZerosV,
/*336851*/            OPC_MoveParent,
/*336852*/            OPC_CheckType, MVT::v16f32,
/*336854*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*336856*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*336859*/            OPC_EmitMergeInputChains1_1,
/*336860*/            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>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                      // Dst: (VMOVSHDUPZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*336872*/          /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::MOVSLDUP),// ->336912
/*336875*/            OPC_MoveChild0,
/*336876*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*336879*/            OPC_RecordMemRef,
/*336880*/            OPC_RecordNode, // #1 = 'ld' chained node
/*336881*/            OPC_CheckFoldableChainNode,
/*336882*/            OPC_RecordChild1, // #2 = $src1
/*336883*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*336885*/            OPC_CheckPredicate, 9, // Predicate_load
/*336887*/            OPC_MoveParent,
/*336888*/            OPC_MoveParent,
/*336889*/            OPC_MoveChild2,
/*336890*/            OPC_CheckImmAllZerosV,
/*336891*/            OPC_MoveParent,
/*336892*/            OPC_CheckType, MVT::v16f32,
/*336894*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*336896*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*336899*/            OPC_EmitMergeInputChains1_1,
/*336900*/            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>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                      // Dst: (VMOVSLDUPZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*336912*/          /*SwitchOpcode*/ 76, TARGET_VAL(X86ISD::UNPCKH),// ->336991
/*336915*/            OPC_RecordChild0, // #1 = $src1
/*336916*/            OPC_MoveChild1,
/*336917*/            OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->336955
/*336921*/              OPC_RecordMemRef,
/*336922*/              OPC_RecordNode, // #2 = 'ld' chained node
/*336923*/              OPC_CheckFoldableChainNode,
/*336924*/              OPC_RecordChild1, // #3 = $src2
/*336925*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*336927*/              OPC_CheckPredicate, 9, // Predicate_load
/*336929*/              OPC_MoveParent,
/*336930*/              OPC_MoveParent,
/*336931*/              OPC_MoveChild2,
/*336932*/              OPC_CheckImmAllZerosV,
/*336933*/              OPC_MoveParent,
/*336934*/              OPC_CheckType, MVT::v16f32,
/*336936*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*336938*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*336941*/              OPC_EmitMergeInputChains1_2,
/*336942*/              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>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                        // Dst: (VUNPCKHPSZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*336955*/            /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->336990
/*336958*/              OPC_RecordMemRef,
/*336959*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*336960*/              OPC_CheckFoldableChainNode,
/*336961*/              OPC_RecordChild1, // #3 = $src2
/*336962*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*336964*/              OPC_MoveParent,
/*336965*/              OPC_MoveParent,
/*336966*/              OPC_MoveChild2,
/*336967*/              OPC_CheckImmAllZerosV,
/*336968*/              OPC_MoveParent,
/*336969*/              OPC_CheckType, MVT::v16f32,
/*336971*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*336973*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*336976*/              OPC_EmitMergeInputChains1_2,
/*336977*/              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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                        // Dst: (VUNPCKHPSZrmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*336990*/            0, // EndSwitchOpcode
/*336991*/          /*SwitchOpcode*/ 76, TARGET_VAL(X86ISD::UNPCKL),// ->337070
/*336994*/            OPC_RecordChild0, // #1 = $src1
/*336995*/            OPC_MoveChild1,
/*336996*/            OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->337034
/*337000*/              OPC_RecordMemRef,
/*337001*/              OPC_RecordNode, // #2 = 'ld' chained node
/*337002*/              OPC_CheckFoldableChainNode,
/*337003*/              OPC_RecordChild1, // #3 = $src2
/*337004*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*337006*/              OPC_CheckPredicate, 9, // Predicate_load
/*337008*/              OPC_MoveParent,
/*337009*/              OPC_MoveParent,
/*337010*/              OPC_MoveChild2,
/*337011*/              OPC_CheckImmAllZerosV,
/*337012*/              OPC_MoveParent,
/*337013*/              OPC_CheckType, MVT::v16f32,
/*337015*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*337017*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*337020*/              OPC_EmitMergeInputChains1_2,
/*337021*/              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>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                        // Dst: (VUNPCKLPSZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*337034*/            /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->337069
/*337037*/              OPC_RecordMemRef,
/*337038*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*337039*/              OPC_CheckFoldableChainNode,
/*337040*/              OPC_RecordChild1, // #3 = $src2
/*337041*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*337043*/              OPC_MoveParent,
/*337044*/              OPC_MoveParent,
/*337045*/              OPC_MoveChild2,
/*337046*/              OPC_CheckImmAllZerosV,
/*337047*/              OPC_MoveParent,
/*337048*/              OPC_CheckType, MVT::v16f32,
/*337050*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*337052*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*337055*/              OPC_EmitMergeInputChains1_2,
/*337056*/              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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                        // Dst: (VUNPCKLPSZrmbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*337069*/            0, // EndSwitchOpcode
/*337070*/          /*SwitchOpcode*/ 85, TARGET_VAL(X86ISD::DPBF16PS),// ->337158
/*337073*/            OPC_RecordChild0, // #1 = $src1
/*337074*/            OPC_RecordChild1, // #2 = $src2
/*337075*/            OPC_CheckChild1Type, MVT::v16i32,
/*337077*/            OPC_MoveChild2,
/*337078*/            OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->337119
/*337082*/              OPC_RecordMemRef,
/*337083*/              OPC_RecordNode, // #3 = 'ld' chained node
/*337084*/              OPC_CheckFoldableChainNode,
/*337085*/              OPC_RecordChild1, // #4 = $src3
/*337086*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*337088*/              OPC_CheckPredicate, 9, // Predicate_load
/*337090*/              OPC_MoveParent,
/*337091*/              OPC_MoveParent,
/*337092*/              OPC_MoveChild2,
/*337093*/              OPC_CheckImmAllZerosV,
/*337094*/              OPC_MoveParent,
/*337095*/              OPC_CheckType, MVT::v16f32,
/*337097*/              OPC_CheckPatternPredicate, 183, // (Subtarget->hasBF16())
/*337099*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*337102*/              OPC_EmitMergeInputChains, 1, 3, 
/*337105*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDPBF16PSZmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86dpbf16ps:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16i32] }:$src2, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                        // Dst: (VDPBF16PSZmkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*337119*/            /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->337157
/*337122*/              OPC_RecordMemRef,
/*337123*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*337124*/              OPC_CheckFoldableChainNode,
/*337125*/              OPC_RecordChild1, // #4 = $src3
/*337126*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*337128*/              OPC_MoveParent,
/*337129*/              OPC_MoveParent,
/*337130*/              OPC_MoveChild2,
/*337131*/              OPC_CheckImmAllZerosV,
/*337132*/              OPC_MoveParent,
/*337133*/              OPC_CheckType, MVT::v16f32,
/*337135*/              OPC_CheckPatternPredicate, 183, // (Subtarget->hasBF16())
/*337137*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*337140*/              OPC_EmitMergeInputChains, 1, 3, 
/*337143*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDPBF16PSZmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86dpbf16ps:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16i32] }:$src2, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v16f32] }) - Complexity = 32
                        // Dst: (VDPBF16PSZmbkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*337157*/            0, // EndSwitchOpcode
/*337158*/          0, // EndSwitchOpcode
/*337159*/        /*Scope*/ 100, /*->337260*/
/*337160*/          OPC_RecordChild1, // #1 = $src3
/*337161*/          OPC_MoveChild1,
/*337162*/          OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*337165*/          OPC_RecordChild0, // #2 = $src1
/*337166*/          OPC_MoveChild1,
/*337167*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*337170*/          OPC_RecordMemRef,
/*337171*/          OPC_RecordNode, // #3 = 'ld' chained node
/*337172*/          OPC_CheckFoldableChainNode,
/*337173*/          OPC_RecordChild1, // #4 = $src2
/*337174*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*337176*/          OPC_CheckPredicate, 9, // Predicate_load
/*337178*/          OPC_SwitchType /*2 cases */, 38, MVT::v4f32,// ->337219
/*337181*/            OPC_MoveParent,
/*337182*/            OPC_MoveChild2,
/*337183*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*337186*/            OPC_CheckType, MVT::iPTR,
/*337188*/            OPC_MoveParent,
/*337189*/            OPC_MoveParent,
/*337190*/            OPC_RecordChild2, // #5 = $src0
/*337191*/            OPC_CheckType, MVT::v16f32,
/*337193*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*337195*/            OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*337198*/            OPC_EmitMergeInputChains, 1, 3, 
/*337201*/            OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*337204*/            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>>, (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>>, (imm:{ *:[iPTR] })):$src3))
/*337219*/          /*SwitchType*/ 38, MVT::v8f32,// ->337259
/*337221*/            OPC_MoveParent,
/*337222*/            OPC_MoveChild2,
/*337223*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*337226*/            OPC_CheckType, MVT::iPTR,
/*337228*/            OPC_MoveParent,
/*337229*/            OPC_MoveParent,
/*337230*/            OPC_RecordChild2, // #5 = $src0
/*337231*/            OPC_CheckType, MVT::v16f32,
/*337233*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*337235*/            OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*337238*/            OPC_EmitMergeInputChains, 1, 3, 
/*337241*/            OPC_EmitNodeXForm, 16, 1, // INSERT_get_vinsert256_imm
/*337244*/            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>>, (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>>, (imm:{ *:[iPTR] })):$src3))
/*337259*/          0, // EndSwitchType
/*337260*/        /*Scope*/ 13|128,70/*8973*/, /*->346235*/
/*337262*/          OPC_MoveChild1,
/*337263*/          OPC_SwitchOpcode /*53 cases */, 127|128,10/*1407*/, TARGET_VAL(ISD::BITCAST),// ->338675
/*337268*/            OPC_Scope, 11|128,10/*1291*/, /*->338562*/ // 3 children in Scope
/*337271*/              OPC_MoveChild0,
/*337272*/              OPC_SwitchOpcode /*6 cases */, 72, TARGET_VAL(X86ISD::SUBV_BROADCAST),// ->337348
/*337276*/                OPC_MoveChild0,
/*337277*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*337280*/                OPC_RecordMemRef,
/*337281*/                OPC_RecordNode, // #1 = 'ld' chained node
/*337282*/                OPC_CheckFoldableChainNode,
/*337283*/                OPC_RecordChild1, // #2 = $src
/*337284*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*337286*/                OPC_CheckPredicate, 9, // Predicate_load
/*337288*/                OPC_SwitchType /*2 cases */, 27, MVT::v2f64,// ->337318
/*337291*/                  OPC_MoveParent,
/*337292*/                  OPC_CheckType, MVT::v8f64,
/*337294*/                  OPC_MoveParent,
/*337295*/                  OPC_MoveParent,
/*337296*/                  OPC_RecordChild2, // #3 = $src0
/*337297*/                  OPC_CheckType, MVT::v16f32,
/*337299*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*337301*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*337304*/                  OPC_EmitMergeInputChains1_1,
/*337305*/                  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>>)), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                            // Dst: (VBROADCASTF32X4rmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*337318*/                /*SwitchType*/ 27, MVT::v4f64,// ->337347
/*337320*/                  OPC_MoveParent,
/*337321*/                  OPC_CheckType, MVT::v8f64,
/*337323*/                  OPC_MoveParent,
/*337324*/                  OPC_MoveParent,
/*337325*/                  OPC_RecordChild2, // #3 = $src0
/*337326*/                  OPC_CheckType, MVT::v16f32,
/*337328*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*337330*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*337333*/                  OPC_EmitMergeInputChains1_1,
/*337334*/                  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>>)), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                            // Dst: (VBROADCASTF32X8rmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*337347*/                0, // EndSwitchType
/*337348*/              /*SwitchOpcode*/ 77|128,2/*333*/, TARGET_VAL(ISD::AND),// ->337685
/*337352*/                OPC_Scope, 35|128,1/*163*/, /*->337518*/ // 2 children in Scope
/*337355*/                  OPC_RecordChild0, // #1 = $src1
/*337356*/                  OPC_MoveChild1,
/*337357*/                  OPC_SwitchOpcode /*2 cases */, 119, TARGET_VAL(ISD::LOAD),// ->337480
/*337361*/                    OPC_RecordMemRef,
/*337362*/                    OPC_RecordNode, // #2 = 'ld' chained node
/*337363*/                    OPC_CheckFoldableChainNode,
/*337364*/                    OPC_RecordChild1, // #3 = $src2
/*337365*/                    OPC_CheckPredicate, 4, // Predicate_unindexedload
/*337367*/                    OPC_CheckPredicate, 9, // Predicate_load
/*337369*/                    OPC_MoveParent,
/*337370*/                    OPC_SwitchType /*4 cases */, 25, MVT::v8i64,// ->337398
/*337373*/                      OPC_MoveParent,
/*337374*/                      OPC_MoveParent,
/*337375*/                      OPC_RecordChild2, // #4 = $src0
/*337376*/                      OPC_CheckType, MVT::v16f32,
/*337378*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*337380*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*337383*/                      OPC_EmitMergeInputChains1_2,
/*337384*/                      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)
/*337398*/                    /*SwitchType*/ 25, MVT::v16i32,// ->337425
/*337400*/                      OPC_MoveParent,
/*337401*/                      OPC_MoveParent,
/*337402*/                      OPC_RecordChild2, // #4 = $src0
/*337403*/                      OPC_CheckType, MVT::v16f32,
/*337405*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*337407*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*337410*/                      OPC_EmitMergeInputChains1_2,
/*337411*/                      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:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                                // Dst: (VPANDDZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*337425*/                    /*SwitchType*/ 25, MVT::v32i16,// ->337452
/*337427*/                      OPC_MoveParent,
/*337428*/                      OPC_MoveParent,
/*337429*/                      OPC_RecordChild2, // #4 = $src0
/*337430*/                      OPC_CheckType, MVT::v16f32,
/*337432*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*337434*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*337437*/                      OPC_EmitMergeInputChains1_2,
/*337438*/                      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:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                                // Dst: (VPANDDZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*337452*/                    /*SwitchType*/ 25, MVT::v64i8,// ->337479
/*337454*/                      OPC_MoveParent,
/*337455*/                      OPC_MoveParent,
/*337456*/                      OPC_RecordChild2, // #4 = $src0
/*337457*/                      OPC_CheckType, MVT::v16f32,
/*337459*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*337461*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*337464*/                      OPC_EmitMergeInputChains1_2,
/*337465*/                      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:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                                // Dst: (VPANDDZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*337479*/                    0, // EndSwitchType
/*337480*/                  /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->337517
/*337483*/                    OPC_RecordMemRef,
/*337484*/                    OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*337485*/                    OPC_CheckFoldableChainNode,
/*337486*/                    OPC_RecordChild1, // #3 = $src2
/*337487*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*337489*/                    OPC_MoveParent,
/*337490*/                    OPC_CheckType, MVT::v16i32,
/*337492*/                    OPC_MoveParent,
/*337493*/                    OPC_MoveParent,
/*337494*/                    OPC_RecordChild2, // #4 = $src0
/*337495*/                    OPC_CheckType, MVT::v16f32,
/*337497*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*337499*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*337502*/                    OPC_EmitMergeInputChains1_2,
/*337503*/                    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:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>)), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                              // Dst: (VPANDDZrmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*337517*/                  0, // EndSwitchOpcode
/*337518*/                /*Scope*/ 36|128,1/*164*/, /*->337684*/
/*337520*/                  OPC_MoveChild0,
/*337521*/                  OPC_SwitchOpcode /*2 cases */, 120, TARGET_VAL(ISD::LOAD),// ->337645
/*337525*/                    OPC_RecordMemRef,
/*337526*/                    OPC_RecordNode, // #1 = 'ld' chained node
/*337527*/                    OPC_CheckFoldableChainNode,
/*337528*/                    OPC_RecordChild1, // #2 = $src2
/*337529*/                    OPC_CheckPredicate, 4, // Predicate_unindexedload
/*337531*/                    OPC_CheckPredicate, 9, // Predicate_load
/*337533*/                    OPC_MoveParent,
/*337534*/                    OPC_RecordChild1, // #3 = $src1
/*337535*/                    OPC_SwitchType /*4 cases */, 25, MVT::v8i64,// ->337563
/*337538*/                      OPC_MoveParent,
/*337539*/                      OPC_MoveParent,
/*337540*/                      OPC_RecordChild2, // #4 = $src0
/*337541*/                      OPC_CheckType, MVT::v16f32,
/*337543*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*337545*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*337548*/                      OPC_EmitMergeInputChains1_1,
/*337549*/                      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)
/*337563*/                    /*SwitchType*/ 25, MVT::v16i32,// ->337590
/*337565*/                      OPC_MoveParent,
/*337566*/                      OPC_MoveParent,
/*337567*/                      OPC_RecordChild2, // #4 = $src0
/*337568*/                      OPC_CheckType, MVT::v16f32,
/*337570*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*337572*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*337575*/                      OPC_EmitMergeInputChains1_1,
/*337576*/                      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:{ *:[v16i32] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16i32] }:$src1)), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                                // Dst: (VPANDDZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*337590*/                    /*SwitchType*/ 25, MVT::v32i16,// ->337617
/*337592*/                      OPC_MoveParent,
/*337593*/                      OPC_MoveParent,
/*337594*/                      OPC_RecordChild2, // #4 = $src0
/*337595*/                      OPC_CheckType, MVT::v16f32,
/*337597*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*337599*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*337602*/                      OPC_EmitMergeInputChains1_1,
/*337603*/                      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:{ *:[v32i16] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1)), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                                // Dst: (VPANDDZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*337617*/                    /*SwitchType*/ 25, MVT::v64i8,// ->337644
/*337619*/                      OPC_MoveParent,
/*337620*/                      OPC_MoveParent,
/*337621*/                      OPC_RecordChild2, // #4 = $src0
/*337622*/                      OPC_CheckType, MVT::v16f32,
/*337624*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*337626*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*337629*/                      OPC_EmitMergeInputChains1_1,
/*337630*/                      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:{ *:[v64i8] } (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v64i8] }:$src1)), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                                // Dst: (VPANDDZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*337644*/                    0, // EndSwitchType
/*337645*/                  /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->337683
/*337648*/                    OPC_RecordMemRef,
/*337649*/                    OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*337650*/                    OPC_CheckFoldableChainNode,
/*337651*/                    OPC_RecordChild1, // #2 = $src2
/*337652*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*337654*/                    OPC_MoveParent,
/*337655*/                    OPC_RecordChild1, // #3 = $src1
/*337656*/                    OPC_CheckType, MVT::v16i32,
/*337658*/                    OPC_MoveParent,
/*337659*/                    OPC_MoveParent,
/*337660*/                    OPC_RecordChild2, // #4 = $src0
/*337661*/                    OPC_CheckType, MVT::v16f32,
/*337663*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*337665*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*337668*/                    OPC_EmitMergeInputChains1_1,
/*337669*/                    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:{ *:[v16i32] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16i32] }:$src1)), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                              // Dst: (VPANDDZrmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*337683*/                  0, // EndSwitchOpcode
/*337684*/                0, /*End of Scope*/
/*337685*/              /*SwitchOpcode*/ 77|128,2/*333*/, TARGET_VAL(ISD::OR),// ->338022
/*337689*/                OPC_Scope, 35|128,1/*163*/, /*->337855*/ // 2 children in Scope
/*337692*/                  OPC_RecordChild0, // #1 = $src1
/*337693*/                  OPC_MoveChild1,
/*337694*/                  OPC_SwitchOpcode /*2 cases */, 119, TARGET_VAL(ISD::LOAD),// ->337817
/*337698*/                    OPC_RecordMemRef,
/*337699*/                    OPC_RecordNode, // #2 = 'ld' chained node
/*337700*/                    OPC_CheckFoldableChainNode,
/*337701*/                    OPC_RecordChild1, // #3 = $src2
/*337702*/                    OPC_CheckPredicate, 4, // Predicate_unindexedload
/*337704*/                    OPC_CheckPredicate, 9, // Predicate_load
/*337706*/                    OPC_MoveParent,
/*337707*/                    OPC_SwitchType /*4 cases */, 25, MVT::v8i64,// ->337735
/*337710*/                      OPC_MoveParent,
/*337711*/                      OPC_MoveParent,
/*337712*/                      OPC_RecordChild2, // #4 = $src0
/*337713*/                      OPC_CheckType, MVT::v16f32,
/*337715*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*337717*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*337720*/                      OPC_EmitMergeInputChains1_2,
/*337721*/                      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)
/*337735*/                    /*SwitchType*/ 25, MVT::v16i32,// ->337762
/*337737*/                      OPC_MoveParent,
/*337738*/                      OPC_MoveParent,
/*337739*/                      OPC_RecordChild2, // #4 = $src0
/*337740*/                      OPC_CheckType, MVT::v16f32,
/*337742*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*337744*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*337747*/                      OPC_EmitMergeInputChains1_2,
/*337748*/                      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:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                                // Dst: (VPORDZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*337762*/                    /*SwitchType*/ 25, MVT::v32i16,// ->337789
/*337764*/                      OPC_MoveParent,
/*337765*/                      OPC_MoveParent,
/*337766*/                      OPC_RecordChild2, // #4 = $src0
/*337767*/                      OPC_CheckType, MVT::v16f32,
/*337769*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*337771*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*337774*/                      OPC_EmitMergeInputChains1_2,
/*337775*/                      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:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                                // Dst: (VPORDZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*337789*/                    /*SwitchType*/ 25, MVT::v64i8,// ->337816
/*337791*/                      OPC_MoveParent,
/*337792*/                      OPC_MoveParent,
/*337793*/                      OPC_RecordChild2, // #4 = $src0
/*337794*/                      OPC_CheckType, MVT::v16f32,
/*337796*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*337798*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*337801*/                      OPC_EmitMergeInputChains1_2,
/*337802*/                      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:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                                // Dst: (VPORDZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*337816*/                    0, // EndSwitchType
/*337817*/                  /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->337854
/*337820*/                    OPC_RecordMemRef,
/*337821*/                    OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*337822*/                    OPC_CheckFoldableChainNode,
/*337823*/                    OPC_RecordChild1, // #3 = $src2
/*337824*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*337826*/                    OPC_MoveParent,
/*337827*/                    OPC_CheckType, MVT::v16i32,
/*337829*/                    OPC_MoveParent,
/*337830*/                    OPC_MoveParent,
/*337831*/                    OPC_RecordChild2, // #4 = $src0
/*337832*/                    OPC_CheckType, MVT::v16f32,
/*337834*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*337836*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*337839*/                    OPC_EmitMergeInputChains1_2,
/*337840*/                    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:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>)), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                              // Dst: (VPORDZrmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*337854*/                  0, // EndSwitchOpcode
/*337855*/                /*Scope*/ 36|128,1/*164*/, /*->338021*/
/*337857*/                  OPC_MoveChild0,
/*337858*/                  OPC_SwitchOpcode /*2 cases */, 120, TARGET_VAL(ISD::LOAD),// ->337982
/*337862*/                    OPC_RecordMemRef,
/*337863*/                    OPC_RecordNode, // #1 = 'ld' chained node
/*337864*/                    OPC_CheckFoldableChainNode,
/*337865*/                    OPC_RecordChild1, // #2 = $src2
/*337866*/                    OPC_CheckPredicate, 4, // Predicate_unindexedload
/*337868*/                    OPC_CheckPredicate, 9, // Predicate_load
/*337870*/                    OPC_MoveParent,
/*337871*/                    OPC_RecordChild1, // #3 = $src1
/*337872*/                    OPC_SwitchType /*4 cases */, 25, MVT::v8i64,// ->337900
/*337875*/                      OPC_MoveParent,
/*337876*/                      OPC_MoveParent,
/*337877*/                      OPC_RecordChild2, // #4 = $src0
/*337878*/                      OPC_CheckType, MVT::v16f32,
/*337880*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*337882*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*337885*/                      OPC_EmitMergeInputChains1_1,
/*337886*/                      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)
/*337900*/                    /*SwitchType*/ 25, MVT::v16i32,// ->337927
/*337902*/                      OPC_MoveParent,
/*337903*/                      OPC_MoveParent,
/*337904*/                      OPC_RecordChild2, // #4 = $src0
/*337905*/                      OPC_CheckType, MVT::v16f32,
/*337907*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*337909*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*337912*/                      OPC_EmitMergeInputChains1_1,
/*337913*/                      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:{ *:[v16i32] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16i32] }:$src1)), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                                // Dst: (VPORDZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*337927*/                    /*SwitchType*/ 25, MVT::v32i16,// ->337954
/*337929*/                      OPC_MoveParent,
/*337930*/                      OPC_MoveParent,
/*337931*/                      OPC_RecordChild2, // #4 = $src0
/*337932*/                      OPC_CheckType, MVT::v16f32,
/*337934*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*337936*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*337939*/                      OPC_EmitMergeInputChains1_1,
/*337940*/                      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:{ *:[v32i16] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1)), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                                // Dst: (VPORDZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*337954*/                    /*SwitchType*/ 25, MVT::v64i8,// ->337981
/*337956*/                      OPC_MoveParent,
/*337957*/                      OPC_MoveParent,
/*337958*/                      OPC_RecordChild2, // #4 = $src0
/*337959*/                      OPC_CheckType, MVT::v16f32,
/*337961*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*337963*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*337966*/                      OPC_EmitMergeInputChains1_1,
/*337967*/                      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:{ *:[v64i8] } (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v64i8] }:$src1)), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                                // Dst: (VPORDZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*337981*/                    0, // EndSwitchType
/*337982*/                  /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->338020
/*337985*/                    OPC_RecordMemRef,
/*337986*/                    OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*337987*/                    OPC_CheckFoldableChainNode,
/*337988*/                    OPC_RecordChild1, // #2 = $src2
/*337989*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*337991*/                    OPC_MoveParent,
/*337992*/                    OPC_RecordChild1, // #3 = $src1
/*337993*/                    OPC_CheckType, MVT::v16i32,
/*337995*/                    OPC_MoveParent,
/*337996*/                    OPC_MoveParent,
/*337997*/                    OPC_RecordChild2, // #4 = $src0
/*337998*/                    OPC_CheckType, MVT::v16f32,
/*338000*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*338002*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*338005*/                    OPC_EmitMergeInputChains1_1,
/*338006*/                    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:{ *:[v16i32] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16i32] }:$src1)), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                              // Dst: (VPORDZrmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*338020*/                  0, // EndSwitchOpcode
/*338021*/                0, /*End of Scope*/
/*338022*/              /*SwitchOpcode*/ 77|128,2/*333*/, TARGET_VAL(ISD::XOR),// ->338359
/*338026*/                OPC_Scope, 35|128,1/*163*/, /*->338192*/ // 2 children in Scope
/*338029*/                  OPC_RecordChild0, // #1 = $src1
/*338030*/                  OPC_MoveChild1,
/*338031*/                  OPC_SwitchOpcode /*2 cases */, 119, TARGET_VAL(ISD::LOAD),// ->338154
/*338035*/                    OPC_RecordMemRef,
/*338036*/                    OPC_RecordNode, // #2 = 'ld' chained node
/*338037*/                    OPC_CheckFoldableChainNode,
/*338038*/                    OPC_RecordChild1, // #3 = $src2
/*338039*/                    OPC_CheckPredicate, 4, // Predicate_unindexedload
/*338041*/                    OPC_CheckPredicate, 9, // Predicate_load
/*338043*/                    OPC_MoveParent,
/*338044*/                    OPC_SwitchType /*4 cases */, 25, MVT::v8i64,// ->338072
/*338047*/                      OPC_MoveParent,
/*338048*/                      OPC_MoveParent,
/*338049*/                      OPC_RecordChild2, // #4 = $src0
/*338050*/                      OPC_CheckType, MVT::v16f32,
/*338052*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*338054*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*338057*/                      OPC_EmitMergeInputChains1_2,
/*338058*/                      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)
/*338072*/                    /*SwitchType*/ 25, MVT::v16i32,// ->338099
/*338074*/                      OPC_MoveParent,
/*338075*/                      OPC_MoveParent,
/*338076*/                      OPC_RecordChild2, // #4 = $src0
/*338077*/                      OPC_CheckType, MVT::v16f32,
/*338079*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*338081*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*338084*/                      OPC_EmitMergeInputChains1_2,
/*338085*/                      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:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                                // Dst: (VPXORDZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*338099*/                    /*SwitchType*/ 25, MVT::v32i16,// ->338126
/*338101*/                      OPC_MoveParent,
/*338102*/                      OPC_MoveParent,
/*338103*/                      OPC_RecordChild2, // #4 = $src0
/*338104*/                      OPC_CheckType, MVT::v16f32,
/*338106*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*338108*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*338111*/                      OPC_EmitMergeInputChains1_2,
/*338112*/                      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:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                                // Dst: (VPXORDZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*338126*/                    /*SwitchType*/ 25, MVT::v64i8,// ->338153
/*338128*/                      OPC_MoveParent,
/*338129*/                      OPC_MoveParent,
/*338130*/                      OPC_RecordChild2, // #4 = $src0
/*338131*/                      OPC_CheckType, MVT::v16f32,
/*338133*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*338135*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*338138*/                      OPC_EmitMergeInputChains1_2,
/*338139*/                      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:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                                // Dst: (VPXORDZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*338153*/                    0, // EndSwitchType
/*338154*/                  /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->338191
/*338157*/                    OPC_RecordMemRef,
/*338158*/                    OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*338159*/                    OPC_CheckFoldableChainNode,
/*338160*/                    OPC_RecordChild1, // #3 = $src2
/*338161*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*338163*/                    OPC_MoveParent,
/*338164*/                    OPC_CheckType, MVT::v16i32,
/*338166*/                    OPC_MoveParent,
/*338167*/                    OPC_MoveParent,
/*338168*/                    OPC_RecordChild2, // #4 = $src0
/*338169*/                    OPC_CheckType, MVT::v16f32,
/*338171*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*338173*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*338176*/                    OPC_EmitMergeInputChains1_2,
/*338177*/                    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:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>)), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                              // Dst: (VPXORDZrmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*338191*/                  0, // EndSwitchOpcode
/*338192*/                /*Scope*/ 36|128,1/*164*/, /*->338358*/
/*338194*/                  OPC_MoveChild0,
/*338195*/                  OPC_SwitchOpcode /*2 cases */, 120, TARGET_VAL(ISD::LOAD),// ->338319
/*338199*/                    OPC_RecordMemRef,
/*338200*/                    OPC_RecordNode, // #1 = 'ld' chained node
/*338201*/                    OPC_CheckFoldableChainNode,
/*338202*/                    OPC_RecordChild1, // #2 = $src2
/*338203*/                    OPC_CheckPredicate, 4, // Predicate_unindexedload
/*338205*/                    OPC_CheckPredicate, 9, // Predicate_load
/*338207*/                    OPC_MoveParent,
/*338208*/                    OPC_RecordChild1, // #3 = $src1
/*338209*/                    OPC_SwitchType /*4 cases */, 25, MVT::v8i64,// ->338237
/*338212*/                      OPC_MoveParent,
/*338213*/                      OPC_MoveParent,
/*338214*/                      OPC_RecordChild2, // #4 = $src0
/*338215*/                      OPC_CheckType, MVT::v16f32,
/*338217*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*338219*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*338222*/                      OPC_EmitMergeInputChains1_1,
/*338223*/                      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)
/*338237*/                    /*SwitchType*/ 25, MVT::v16i32,// ->338264
/*338239*/                      OPC_MoveParent,
/*338240*/                      OPC_MoveParent,
/*338241*/                      OPC_RecordChild2, // #4 = $src0
/*338242*/                      OPC_CheckType, MVT::v16f32,
/*338244*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*338246*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*338249*/                      OPC_EmitMergeInputChains1_1,
/*338250*/                      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:{ *:[v16i32] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16i32] }:$src1)), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                                // Dst: (VPXORDZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*338264*/                    /*SwitchType*/ 25, MVT::v32i16,// ->338291
/*338266*/                      OPC_MoveParent,
/*338267*/                      OPC_MoveParent,
/*338268*/                      OPC_RecordChild2, // #4 = $src0
/*338269*/                      OPC_CheckType, MVT::v16f32,
/*338271*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*338273*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*338276*/                      OPC_EmitMergeInputChains1_1,
/*338277*/                      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:{ *:[v32i16] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1)), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                                // Dst: (VPXORDZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*338291*/                    /*SwitchType*/ 25, MVT::v64i8,// ->338318
/*338293*/                      OPC_MoveParent,
/*338294*/                      OPC_MoveParent,
/*338295*/                      OPC_RecordChild2, // #4 = $src0
/*338296*/                      OPC_CheckType, MVT::v16f32,
/*338298*/                      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*338300*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*338303*/                      OPC_EmitMergeInputChains1_1,
/*338304*/                      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:{ *:[v64i8] } (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v64i8] }:$src1)), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                                // Dst: (VPXORDZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*338318*/                    0, // EndSwitchType
/*338319*/                  /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->338357
/*338322*/                    OPC_RecordMemRef,
/*338323*/                    OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*338324*/                    OPC_CheckFoldableChainNode,
/*338325*/                    OPC_RecordChild1, // #2 = $src2
/*338326*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*338328*/                    OPC_MoveParent,
/*338329*/                    OPC_RecordChild1, // #3 = $src1
/*338330*/                    OPC_CheckType, MVT::v16i32,
/*338332*/                    OPC_MoveParent,
/*338333*/                    OPC_MoveParent,
/*338334*/                    OPC_RecordChild2, // #4 = $src0
/*338335*/                    OPC_CheckType, MVT::v16f32,
/*338337*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*338339*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*338342*/                    OPC_EmitMergeInputChains1_1,
/*338343*/                    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:{ *:[v16i32] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16i32] }:$src1)), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                              // Dst: (VPXORDZrmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*338357*/                  0, // EndSwitchOpcode
/*338358*/                0, /*End of Scope*/
/*338359*/              /*SwitchOpcode*/ 35|128,1/*163*/, TARGET_VAL(X86ISD::ANDNP),// ->338526
/*338363*/                OPC_RecordChild0, // #1 = $src1
/*338364*/                OPC_MoveChild1,
/*338365*/                OPC_SwitchOpcode /*2 cases */, 119, TARGET_VAL(ISD::LOAD),// ->338488
/*338369*/                  OPC_RecordMemRef,
/*338370*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*338371*/                  OPC_CheckFoldableChainNode,
/*338372*/                  OPC_RecordChild1, // #3 = $src2
/*338373*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*338375*/                  OPC_CheckPredicate, 9, // Predicate_load
/*338377*/                  OPC_MoveParent,
/*338378*/                  OPC_SwitchType /*4 cases */, 25, MVT::v8i64,// ->338406
/*338381*/                    OPC_MoveParent,
/*338382*/                    OPC_MoveParent,
/*338383*/                    OPC_RecordChild2, // #4 = $src0
/*338384*/                    OPC_CheckType, MVT::v16f32,
/*338386*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*338388*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*338391*/                    OPC_EmitMergeInputChains1_2,
/*338392*/                    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)
/*338406*/                  /*SwitchType*/ 25, MVT::v16i32,// ->338433
/*338408*/                    OPC_MoveParent,
/*338409*/                    OPC_MoveParent,
/*338410*/                    OPC_RecordChild2, // #4 = $src0
/*338411*/                    OPC_CheckType, MVT::v16f32,
/*338413*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*338415*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*338418*/                    OPC_EmitMergeInputChains1_2,
/*338419*/                    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:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                              // Dst: (VPANDNDZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*338433*/                  /*SwitchType*/ 25, MVT::v32i16,// ->338460
/*338435*/                    OPC_MoveParent,
/*338436*/                    OPC_MoveParent,
/*338437*/                    OPC_RecordChild2, // #4 = $src0
/*338438*/                    OPC_CheckType, MVT::v16f32,
/*338440*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*338442*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*338445*/                    OPC_EmitMergeInputChains1_2,
/*338446*/                    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:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                              // Dst: (VPANDNDZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*338460*/                  /*SwitchType*/ 25, MVT::v64i8,// ->338487
/*338462*/                    OPC_MoveParent,
/*338463*/                    OPC_MoveParent,
/*338464*/                    OPC_RecordChild2, // #4 = $src0
/*338465*/                    OPC_CheckType, MVT::v16f32,
/*338467*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*338469*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*338472*/                    OPC_EmitMergeInputChains1_2,
/*338473*/                    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:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                              // Dst: (VPANDNDZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*338487*/                  0, // EndSwitchType
/*338488*/                /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->338525
/*338491*/                  OPC_RecordMemRef,
/*338492*/                  OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*338493*/                  OPC_CheckFoldableChainNode,
/*338494*/                  OPC_RecordChild1, // #3 = $src2
/*338495*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*338497*/                  OPC_MoveParent,
/*338498*/                  OPC_CheckType, MVT::v16i32,
/*338500*/                  OPC_MoveParent,
/*338501*/                  OPC_MoveParent,
/*338502*/                  OPC_RecordChild2, // #4 = $src0
/*338503*/                  OPC_CheckType, MVT::v16f32,
/*338505*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*338507*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*338510*/                  OPC_EmitMergeInputChains1_2,
/*338511*/                  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:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>)), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                            // Dst: (VPANDNDZrmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*338525*/                0, // EndSwitchOpcode
/*338526*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->338561
/*338529*/                OPC_RecordMemRef,
/*338530*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*338531*/                OPC_CheckFoldableChainNode,
/*338532*/                OPC_RecordChild1, // #2 = $src
/*338533*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*338535*/                OPC_CheckType, MVT::v8f64,
/*338537*/                OPC_MoveParent,
/*338538*/                OPC_MoveParent,
/*338539*/                OPC_RecordChild2, // #3 = $src0
/*338540*/                OPC_CheckType, MVT::v16f32,
/*338542*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*338544*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*338547*/                OPC_EmitMergeInputChains1_1,
/*338548*/                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] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                          // Dst: (VBROADCASTF32X2Zmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*338561*/              0, // EndSwitchOpcode
/*338562*/            /*Scope*/ 77, /*->338640*/
/*338563*/              OPC_RecordChild0, // #1 = $ins
/*338564*/              OPC_MoveChild0,
/*338565*/              OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*338568*/              OPC_RecordChild0, // #2 = $src1
/*338569*/              OPC_RecordChild1, // #3 = $src2
/*338570*/              OPC_Scope, 33, /*->338605*/ // 2 children in Scope
/*338572*/                OPC_CheckChild1Type, MVT::v2f64,
/*338574*/                OPC_MoveChild2,
/*338575*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*338578*/                OPC_CheckType, MVT::iPTR,
/*338580*/                OPC_MoveParent,
/*338581*/                OPC_CheckType, MVT::v8f64,
/*338583*/                OPC_MoveParent,
/*338584*/                OPC_MoveParent,
/*338585*/                OPC_MoveChild2,
/*338586*/                OPC_CheckImmAllZerosV,
/*338587*/                OPC_MoveParent,
/*338588*/                OPC_CheckType, MVT::v16f32,
/*338590*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*338592*/                OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*338595*/                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), immAllZerosV:{ *:[v16f32] }) - Complexity = 16
                          // Dst: (VINSERTF32x4Zrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR512:{ *:[v8f64] }:$ins))
/*338605*/              /*Scope*/ 33, /*->338639*/
/*338606*/                OPC_CheckChild1Type, MVT::v4f64,
/*338608*/                OPC_MoveChild2,
/*338609*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*338612*/                OPC_CheckType, MVT::iPTR,
/*338614*/                OPC_MoveParent,
/*338615*/                OPC_CheckType, MVT::v8f64,
/*338617*/                OPC_MoveParent,
/*338618*/                OPC_MoveParent,
/*338619*/                OPC_MoveChild2,
/*338620*/                OPC_CheckImmAllZerosV,
/*338621*/                OPC_MoveParent,
/*338622*/                OPC_CheckType, MVT::v16f32,
/*338624*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*338626*/                OPC_EmitNodeXForm, 16, 1, // INSERT_get_vinsert256_imm
/*338629*/                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), immAllZerosV:{ *:[v16f32] }) - Complexity = 16
                          // Dst: (VINSERTF32x8Zrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } VR512:{ *:[v8f64] }:$ins))
/*338639*/              0, /*End of Scope*/
/*338640*/            /*Scope*/ 33, /*->338674*/
/*338641*/              OPC_MoveChild0,
/*338642*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::SHUF128),
/*338645*/              OPC_RecordChild0, // #1 = $src1
/*338646*/              OPC_RecordChild1, // #2 = $src2
/*338647*/              OPC_RecordChild2, // #3 = $src3
/*338648*/              OPC_MoveChild2,
/*338649*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*338652*/              OPC_MoveParent,
/*338653*/              OPC_CheckType, MVT::v8f64,
/*338655*/              OPC_MoveParent,
/*338656*/              OPC_MoveParent,
/*338657*/              OPC_MoveChild2,
/*338658*/              OPC_CheckImmAllZerosV,
/*338659*/              OPC_MoveParent,
/*338660*/              OPC_CheckType, MVT::v16f32,
/*338662*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*338664*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF32X4Zrrikz), 0,
                            MVT::v16f32, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (X86Shuf128:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i8] }):$src3)), immAllZerosV:{ *:[v16f32] }) - Complexity = 16
                        // Dst: (VSHUFF32X4Zrrikz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i8] }):$src3)
/*338674*/            0, /*End of Scope*/
/*338675*/          /*SwitchOpcode*/ 23|128,1/*151*/, TARGET_VAL(X86ISD::VPERMV3),// ->338830
/*338679*/            OPC_RecordChild0, // #1 = $src2
/*338680*/            OPC_RecordChild1, // #2 = $src1
/*338681*/            OPC_MoveChild2,
/*338682*/            OPC_SwitchOpcode /*2 cases */, 71, TARGET_VAL(ISD::LOAD),// ->338757
/*338686*/              OPC_RecordMemRef,
/*338687*/              OPC_RecordNode, // #3 = 'ld' chained node
/*338688*/              OPC_CheckFoldableChainNode,
/*338689*/              OPC_RecordChild1, // #4 = $src3
/*338690*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*338692*/              OPC_CheckPredicate, 9, // Predicate_load
/*338694*/              OPC_MoveParent,
/*338695*/              OPC_MoveParent,
/*338696*/              OPC_Scope, 31, /*->338729*/ // 2 children in Scope
/*338698*/                OPC_MoveChild2,
/*338699*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*338702*/                OPC_CheckChild0Same, 2,
/*338704*/                OPC_MoveParent,
/*338705*/                OPC_CheckType, MVT::v16f32,
/*338707*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*338709*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*338712*/                OPC_EmitMergeInputChains, 1, 3, 
/*338715*/                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>>), (bitconvert:{ *:[v16f32] } VR512:{ *:[v16i32] }:$src1)) - Complexity = 31
                          // Dst: (VPERMI2PSrmk:{ *:[v16f32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*338729*/              /*Scope*/ 26, /*->338756*/
/*338730*/                OPC_CheckChild2Same, 1,
/*338732*/                OPC_CheckType, MVT::v16f32,
/*338734*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*338736*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*338739*/                OPC_EmitMergeInputChains, 1, 3, 
/*338742*/                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>>), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                          // Dst: (VPERMT2PSrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*338756*/              0, /*End of Scope*/
/*338757*/            /*SwitchOpcode*/ 69, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->338829
/*338760*/              OPC_RecordMemRef,
/*338761*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*338762*/              OPC_CheckFoldableChainNode,
/*338763*/              OPC_RecordChild1, // #4 = $src3
/*338764*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*338766*/              OPC_MoveParent,
/*338767*/              OPC_MoveParent,
/*338768*/              OPC_Scope, 31, /*->338801*/ // 2 children in Scope
/*338770*/                OPC_MoveChild2,
/*338771*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*338774*/                OPC_CheckChild0Same, 2,
/*338776*/                OPC_MoveParent,
/*338777*/                OPC_CheckType, MVT::v16f32,
/*338779*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*338781*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*338784*/                OPC_EmitMergeInputChains, 1, 3, 
/*338787*/                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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), (bitconvert:{ *:[v16f32] } VR512:{ *:[v16i32] }:$src1)) - Complexity = 31
                          // Dst: (VPERMI2PSrmbk:{ *:[v16f32] } VR512:{ *:[v16i32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*338801*/              /*Scope*/ 26, /*->338828*/
/*338802*/                OPC_CheckChild2Same, 1,
/*338804*/                OPC_CheckType, MVT::v16f32,
/*338806*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*338808*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*338811*/                OPC_EmitMergeInputChains, 1, 3, 
/*338814*/                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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                          // Dst: (VPERMT2PSrmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*338828*/              0, /*End of Scope*/
/*338829*/            0, // EndSwitchOpcode
/*338830*/          /*SwitchOpcode*/ 85, TARGET_VAL(X86ISD::VPERMILPI),// ->338918
/*338833*/            OPC_MoveChild0,
/*338834*/            OPC_SwitchOpcode /*2 cases */, 39, TARGET_VAL(ISD::LOAD),// ->338877
/*338838*/              OPC_RecordMemRef,
/*338839*/              OPC_RecordNode, // #1 = 'ld' chained node
/*338840*/              OPC_CheckFoldableChainNode,
/*338841*/              OPC_RecordChild1, // #2 = $src1
/*338842*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*338844*/              OPC_CheckPredicate, 9, // Predicate_load
/*338846*/              OPC_MoveParent,
/*338847*/              OPC_RecordChild1, // #3 = $src2
/*338848*/              OPC_MoveChild1,
/*338849*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*338852*/              OPC_MoveParent,
/*338853*/              OPC_MoveParent,
/*338854*/              OPC_RecordChild2, // #4 = $src0
/*338855*/              OPC_CheckType, MVT::v16f32,
/*338857*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*338859*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*338862*/              OPC_EmitMergeInputChains1_1,
/*338863*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermilpi:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                        // Dst: (VPERMILPSZmik:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*338877*/            /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->338917
/*338880*/              OPC_RecordMemRef,
/*338881*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*338882*/              OPC_CheckFoldableChainNode,
/*338883*/              OPC_RecordChild1, // #2 = $src1
/*338884*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*338886*/              OPC_MoveParent,
/*338887*/              OPC_RecordChild1, // #3 = $src2
/*338888*/              OPC_MoveChild1,
/*338889*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*338892*/              OPC_MoveParent,
/*338893*/              OPC_MoveParent,
/*338894*/              OPC_RecordChild2, // #4 = $src0
/*338895*/              OPC_CheckType, MVT::v16f32,
/*338897*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*338899*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*338902*/              OPC_EmitMergeInputChains1_1,
/*338903*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermilpi:{ *:[v16f32] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src2), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                        // Dst: (VPERMILPSZmbik:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*338917*/            0, // EndSwitchOpcode
/*338918*/          /*SwitchOpcode*/ 85, TARGET_VAL(X86ISD::VREDUCE),// ->339006
/*338921*/            OPC_MoveChild0,
/*338922*/            OPC_SwitchOpcode /*2 cases */, 39, TARGET_VAL(ISD::LOAD),// ->338965
/*338926*/              OPC_RecordMemRef,
/*338927*/              OPC_RecordNode, // #1 = 'ld' chained node
/*338928*/              OPC_CheckFoldableChainNode,
/*338929*/              OPC_RecordChild1, // #2 = $src1
/*338930*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*338932*/              OPC_CheckPredicate, 9, // Predicate_load
/*338934*/              OPC_MoveParent,
/*338935*/              OPC_RecordChild1, // #3 = $src2
/*338936*/              OPC_MoveChild1,
/*338937*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*338940*/              OPC_MoveParent,
/*338941*/              OPC_MoveParent,
/*338942*/              OPC_RecordChild2, // #4 = $src0
/*338943*/              OPC_CheckType, MVT::v16f32,
/*338945*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*338947*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*338950*/              OPC_EmitMergeInputChains1_1,
/*338951*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPSZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VReduce:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                        // Dst: (VREDUCEPSZrmik:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*338965*/            /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->339005
/*338968*/              OPC_RecordMemRef,
/*338969*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*338970*/              OPC_CheckFoldableChainNode,
/*338971*/              OPC_RecordChild1, // #2 = $src1
/*338972*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*338974*/              OPC_MoveParent,
/*338975*/              OPC_RecordChild1, // #3 = $src2
/*338976*/              OPC_MoveChild1,
/*338977*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*338980*/              OPC_MoveParent,
/*338981*/              OPC_MoveParent,
/*338982*/              OPC_RecordChild2, // #4 = $src0
/*338983*/              OPC_CheckType, MVT::v16f32,
/*338985*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*338987*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*338990*/              OPC_EmitMergeInputChains1_1,
/*338991*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPSZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VReduce:{ *:[v16f32] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i32] }):$src2), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                        // Dst: (VREDUCEPSZrmbik:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*339005*/            0, // EndSwitchOpcode
/*339006*/          /*SwitchOpcode*/ 93, TARGET_VAL(X86ISD::STRICT_VRNDSCALE),// ->339102
/*339009*/            OPC_RecordNode, // #1 = 'X86strict_VRndScale' chained node
/*339010*/            OPC_CheckFoldableChainNode,
/*339011*/            OPC_MoveChild1,
/*339012*/            OPC_SwitchOpcode /*2 cases */, 42, TARGET_VAL(ISD::LOAD),// ->339058
/*339016*/              OPC_RecordMemRef,
/*339017*/              OPC_RecordNode, // #2 = 'ld' chained node
/*339018*/              OPC_CheckFoldableChainNode,
/*339019*/              OPC_RecordChild1, // #3 = $src1
/*339020*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*339022*/              OPC_CheckPredicate, 9, // Predicate_load
/*339024*/              OPC_MoveParent,
/*339025*/              OPC_RecordChild2, // #4 = $src2
/*339026*/              OPC_MoveChild2,
/*339027*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*339030*/              OPC_MoveParent,
/*339031*/              OPC_MoveParent,
/*339032*/              OPC_RecordChild2, // #5 = $src0
/*339033*/              OPC_CheckType, MVT::v16f32,
/*339035*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*339037*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src1 #6 #7 #8 #9 #10
/*339040*/              OPC_EmitMergeInputChains, 2, 1, 2, 
/*339044*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 5, 0, 6, 7, 8, 9, 10, 4, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86strict_VRndScale:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                        // Dst: (VRNDSCALEPSZrmik:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*339058*/            /*SwitchOpcode*/ 40, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->339101
/*339061*/              OPC_RecordMemRef,
/*339062*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*339063*/              OPC_CheckFoldableChainNode,
/*339064*/              OPC_RecordChild1, // #3 = $src1
/*339065*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*339067*/              OPC_MoveParent,
/*339068*/              OPC_RecordChild2, // #4 = $src2
/*339069*/              OPC_MoveChild2,
/*339070*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*339073*/              OPC_MoveParent,
/*339074*/              OPC_MoveParent,
/*339075*/              OPC_RecordChild2, // #5 = $src0
/*339076*/              OPC_CheckType, MVT::v16f32,
/*339078*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*339080*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src1 #6 #7 #8 #9 #10
/*339083*/              OPC_EmitMergeInputChains, 2, 1, 2, 
/*339087*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 5, 0, 6, 7, 8, 9, 10, 4, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86strict_VRndScale:{ *:[v16f32] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i32] }):$src2), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                        // Dst: (VRNDSCALEPSZrmbik:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*339101*/            0, // EndSwitchOpcode
/*339102*/          /*SwitchOpcode*/ 85, TARGET_VAL(X86ISD::VRNDSCALE),// ->339190
/*339105*/            OPC_MoveChild0,
/*339106*/            OPC_SwitchOpcode /*2 cases */, 39, TARGET_VAL(ISD::LOAD),// ->339149
/*339110*/              OPC_RecordMemRef,
/*339111*/              OPC_RecordNode, // #1 = 'ld' chained node
/*339112*/              OPC_CheckFoldableChainNode,
/*339113*/              OPC_RecordChild1, // #2 = $src1
/*339114*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*339116*/              OPC_CheckPredicate, 9, // Predicate_load
/*339118*/              OPC_MoveParent,
/*339119*/              OPC_RecordChild1, // #3 = $src2
/*339120*/              OPC_MoveChild1,
/*339121*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*339124*/              OPC_MoveParent,
/*339125*/              OPC_MoveParent,
/*339126*/              OPC_RecordChild2, // #4 = $src0
/*339127*/              OPC_CheckType, MVT::v16f32,
/*339129*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*339131*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*339134*/              OPC_EmitMergeInputChains1_1,
/*339135*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VRndScale:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                        // Dst: (VRNDSCALEPSZrmik:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*339149*/            /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->339189
/*339152*/              OPC_RecordMemRef,
/*339153*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*339154*/              OPC_CheckFoldableChainNode,
/*339155*/              OPC_RecordChild1, // #2 = $src1
/*339156*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*339158*/              OPC_MoveParent,
/*339159*/              OPC_RecordChild1, // #3 = $src2
/*339160*/              OPC_MoveChild1,
/*339161*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*339164*/              OPC_MoveParent,
/*339165*/              OPC_MoveParent,
/*339166*/              OPC_RecordChild2, // #4 = $src0
/*339167*/              OPC_CheckType, MVT::v16f32,
/*339169*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*339171*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*339174*/              OPC_EmitMergeInputChains1_1,
/*339175*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VRndScale:{ *:[v16f32] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i32] }):$src2), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                        // Dst: (VRNDSCALEPSZrmbik:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*339189*/            0, // EndSwitchOpcode
/*339190*/          /*SwitchOpcode*/ 85, TARGET_VAL(X86ISD::VGETMANT),// ->339278
/*339193*/            OPC_MoveChild0,
/*339194*/            OPC_SwitchOpcode /*2 cases */, 39, TARGET_VAL(ISD::LOAD),// ->339237
/*339198*/              OPC_RecordMemRef,
/*339199*/              OPC_RecordNode, // #1 = 'ld' chained node
/*339200*/              OPC_CheckFoldableChainNode,
/*339201*/              OPC_RecordChild1, // #2 = $src1
/*339202*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*339204*/              OPC_CheckPredicate, 9, // Predicate_load
/*339206*/              OPC_MoveParent,
/*339207*/              OPC_RecordChild1, // #3 = $src2
/*339208*/              OPC_MoveChild1,
/*339209*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*339212*/              OPC_MoveParent,
/*339213*/              OPC_MoveParent,
/*339214*/              OPC_RecordChild2, // #4 = $src0
/*339215*/              OPC_CheckType, MVT::v16f32,
/*339217*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*339219*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*339222*/              OPC_EmitMergeInputChains1_1,
/*339223*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPSZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VGetMant:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                        // Dst: (VGETMANTPSZrmik:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*339237*/            /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->339277
/*339240*/              OPC_RecordMemRef,
/*339241*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*339242*/              OPC_CheckFoldableChainNode,
/*339243*/              OPC_RecordChild1, // #2 = $src1
/*339244*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*339246*/              OPC_MoveParent,
/*339247*/              OPC_RecordChild1, // #3 = $src2
/*339248*/              OPC_MoveChild1,
/*339249*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*339252*/              OPC_MoveParent,
/*339253*/              OPC_MoveParent,
/*339254*/              OPC_RecordChild2, // #4 = $src0
/*339255*/              OPC_CheckType, MVT::v16f32,
/*339257*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*339259*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*339262*/              OPC_EmitMergeInputChains1_1,
/*339263*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPSZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VGetMant:{ *:[v16f32] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i32] }):$src2), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                        // Dst: (VGETMANTPSZrmbik:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*339277*/            0, // EndSwitchOpcode
/*339278*/          /*SwitchOpcode*/ 88, TARGET_VAL(X86ISD::VRANGE),// ->339369
/*339281*/            OPC_RecordChild0, // #1 = $src1
/*339282*/            OPC_MoveChild1,
/*339283*/            OPC_SwitchOpcode /*2 cases */, 40, TARGET_VAL(ISD::LOAD),// ->339327
/*339287*/              OPC_RecordMemRef,
/*339288*/              OPC_RecordNode, // #2 = 'ld' chained node
/*339289*/              OPC_CheckFoldableChainNode,
/*339290*/              OPC_RecordChild1, // #3 = $src2
/*339291*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*339293*/              OPC_CheckPredicate, 9, // Predicate_load
/*339295*/              OPC_MoveParent,
/*339296*/              OPC_RecordChild2, // #4 = $src3
/*339297*/              OPC_MoveChild2,
/*339298*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*339301*/              OPC_MoveParent,
/*339302*/              OPC_MoveParent,
/*339303*/              OPC_RecordChild2, // #5 = $src0
/*339304*/              OPC_CheckType, MVT::v16f32,
/*339306*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*339308*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*339311*/              OPC_EmitMergeInputChains1_2,
/*339312*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPSZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VRange:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src3), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                        // Dst: (VRANGEPSZrmik:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i32] }):$src3)
/*339327*/            /*SwitchOpcode*/ 38, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->339368
/*339330*/              OPC_RecordMemRef,
/*339331*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*339332*/              OPC_CheckFoldableChainNode,
/*339333*/              OPC_RecordChild1, // #3 = $src2
/*339334*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*339336*/              OPC_MoveParent,
/*339337*/              OPC_RecordChild2, // #4 = $src3
/*339338*/              OPC_MoveChild2,
/*339339*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*339342*/              OPC_MoveParent,
/*339343*/              OPC_MoveParent,
/*339344*/              OPC_RecordChild2, // #5 = $src0
/*339345*/              OPC_CheckType, MVT::v16f32,
/*339347*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*339349*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*339352*/              OPC_EmitMergeInputChains1_2,
/*339353*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPSZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VRange:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i32] }):$src3), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                        // Dst: (VRANGEPSZrmbik:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i32] }):$src3)
/*339368*/            0, // EndSwitchOpcode
/*339369*/          /*SwitchOpcode*/ 88, TARGET_VAL(X86ISD::SHUFP),// ->339460
/*339372*/            OPC_RecordChild0, // #1 = $src1
/*339373*/            OPC_MoveChild1,
/*339374*/            OPC_SwitchOpcode /*2 cases */, 40, TARGET_VAL(ISD::LOAD),// ->339418
/*339378*/              OPC_RecordMemRef,
/*339379*/              OPC_RecordNode, // #2 = 'ld' chained node
/*339380*/              OPC_CheckFoldableChainNode,
/*339381*/              OPC_RecordChild1, // #3 = $src2
/*339382*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*339384*/              OPC_CheckPredicate, 9, // Predicate_load
/*339386*/              OPC_MoveParent,
/*339387*/              OPC_RecordChild2, // #4 = $src3
/*339388*/              OPC_MoveChild2,
/*339389*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*339392*/              OPC_MoveParent,
/*339393*/              OPC_MoveParent,
/*339394*/              OPC_RecordChild2, // #5 = $src0
/*339395*/              OPC_CheckType, MVT::v16f32,
/*339397*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*339399*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*339402*/              OPC_EmitMergeInputChains1_2,
/*339403*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPSZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Shufp:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                        // Dst: (VSHUFPSZrmik:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*339418*/            /*SwitchOpcode*/ 38, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->339459
/*339421*/              OPC_RecordMemRef,
/*339422*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*339423*/              OPC_CheckFoldableChainNode,
/*339424*/              OPC_RecordChild1, // #3 = $src2
/*339425*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*339427*/              OPC_MoveParent,
/*339428*/              OPC_RecordChild2, // #4 = $src3
/*339429*/              OPC_MoveChild2,
/*339430*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*339433*/              OPC_MoveParent,
/*339434*/              OPC_MoveParent,
/*339435*/              OPC_RecordChild2, // #5 = $src0
/*339436*/              OPC_CheckType, MVT::v16f32,
/*339438*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*339440*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*339443*/              OPC_EmitMergeInputChains1_2,
/*339444*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPSZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Shufp:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src3), VR512:{ *:[v16f32] }:$src0) - Complexity = 31
                        // Dst: (VSHUFPSZrmbik:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*339459*/            0, // EndSwitchOpcode
/*339460*/          /*SwitchOpcode*/ 95, TARGET_VAL(X86ISD::VFIXUPIMM),// ->339558
/*339463*/            OPC_RecordChild0, // #1 = $src1
/*339464*/            OPC_RecordChild1, // #2 = $src2
/*339465*/            OPC_MoveChild2,
/*339466*/            OPC_SwitchOpcode /*2 cases */, 43, TARGET_VAL(ISD::LOAD),// ->339513
/*339470*/              OPC_RecordMemRef,
/*339471*/              OPC_RecordNode, // #3 = 'ld' chained node
/*339472*/              OPC_CheckFoldableChainNode,
/*339473*/              OPC_RecordChild1, // #4 = $src3
/*339474*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*339476*/              OPC_CheckPredicate, 9, // Predicate_load
/*339478*/              OPC_MoveParent,
/*339479*/              OPC_RecordChild3, // #5 = $src4
/*339480*/              OPC_MoveChild3,
/*339481*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*339484*/              OPC_MoveParent,
/*339485*/              OPC_MoveParent,
/*339486*/              OPC_CheckChild2Same, 1,
/*339488*/              OPC_CheckType, MVT::v16f32,
/*339490*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*339492*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*339495*/              OPC_EmitMergeInputChains, 1, 3, 
/*339498*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPSZrmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 5, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VFixupimm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src4), VR512:{ *:[v16f32] }:$src1) - Complexity = 31
                        // Dst: (VFIXUPIMMPSZrmik:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i32] }):$src4)
/*339513*/            /*SwitchOpcode*/ 41, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->339557
/*339516*/              OPC_RecordMemRef,
/*339517*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*339518*/              OPC_CheckFoldableChainNode,
/*339519*/              OPC_RecordChild1, // #4 = $src3
/*339520*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*339522*/              OPC_MoveParent,
/*339523*/              OPC_RecordChild3, // #5 = $src4
/*339524*/              OPC_MoveChild3,
/*339525*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*339528*/              OPC_MoveParent,
/*339529*/              OPC_MoveParent,
/*339530*/              OPC_CheckChild2Same, 1,
/*339532*/              OPC_CheckType, MVT::v16f32,
/*339534*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*339536*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*339539*/              OPC_EmitMergeInputChains, 1, 3, 
/*339542*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPSZrmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 5, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VFixupimm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i32] }):$src4), VR512:{ *:[v16f32] }:$src1) - Complexity = 31
                        // Dst: (VFIXUPIMMPSZrmbik:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i32] }):$src4)
/*339557*/            0, // EndSwitchOpcode
/*339558*/          /*SwitchOpcode*/ 56, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->339617
/*339561*/            OPC_RecordMemRef,
/*339562*/            OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*339563*/            OPC_CheckFoldableChainNode,
/*339564*/            OPC_RecordChild1, // #2 = $src
/*339565*/            OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*339567*/            OPC_MoveParent,
/*339568*/            OPC_Scope, 23, /*->339593*/ // 2 children in Scope
/*339570*/              OPC_MoveChild2,
/*339571*/              OPC_CheckImmAllZerosV,
/*339572*/              OPC_MoveParent,
/*339573*/              OPC_CheckType, MVT::v16f32,
/*339575*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*339577*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*339580*/              OPC_EmitMergeInputChains1_1,
/*339581*/              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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>, immAllZerosV:{ *:[v16f32] }) - Complexity = 29
                        // Dst: (VBROADCASTSSZmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*339593*/            /*Scope*/ 22, /*->339616*/
/*339594*/              OPC_RecordChild2, // #3 = $src0
/*339595*/              OPC_CheckType, MVT::v16f32,
/*339597*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*339599*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*339602*/              OPC_EmitMergeInputChains1_1,
/*339603*/              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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src0) - Complexity = 25
                        // Dst: (VBROADCASTSSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*339616*/            0, /*End of Scope*/
/*339617*/          /*SwitchOpcode*/ 112, TARGET_VAL(ISD::LOAD),// ->339732
/*339620*/            OPC_RecordMemRef,
/*339621*/            OPC_RecordNode, // #1 = 'ld' chained node
/*339622*/            OPC_CheckFoldableChainNode,
/*339623*/            OPC_RecordChild1, // #2 = $src
/*339624*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*339626*/            OPC_CheckPredicate, 9, // Predicate_load
/*339628*/            OPC_Scope, 26, /*->339656*/ // 4 children in Scope
/*339630*/              OPC_CheckPredicate, 74, // Predicate_alignedload
/*339632*/              OPC_MoveParent,
/*339633*/              OPC_MoveChild2,
/*339634*/              OPC_CheckImmAllZerosV,
/*339635*/              OPC_MoveParent,
/*339636*/              OPC_CheckType, MVT::v16f32,
/*339638*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*339640*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*339643*/              OPC_EmitMergeInputChains1_1,
/*339644*/              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_alignedload>>, immAllZerosV:{ *:[v16f32] }) - Complexity = 29
                        // Dst: (VMOVAPSZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*339656*/            /*Scope*/ 24, /*->339681*/
/*339657*/              OPC_MoveParent,
/*339658*/              OPC_MoveChild2,
/*339659*/              OPC_CheckImmAllZerosV,
/*339660*/              OPC_MoveParent,
/*339661*/              OPC_CheckType, MVT::v16f32,
/*339663*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*339665*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*339668*/              OPC_EmitMergeInputChains1_1,
/*339669*/              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>>, immAllZerosV:{ *:[v16f32] }) - Complexity = 29
                        // Dst: (VMOVUPSZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*339681*/            /*Scope*/ 25, /*->339707*/
/*339682*/              OPC_CheckPredicate, 74, // Predicate_alignedload
/*339684*/              OPC_MoveParent,
/*339685*/              OPC_RecordChild2, // #3 = $src0
/*339686*/              OPC_CheckType, MVT::v16f32,
/*339688*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*339690*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*339693*/              OPC_EmitMergeInputChains1_1,
/*339694*/              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_alignedload>>, VR512:{ *:[v16f32] }:$src0) - Complexity = 25
                        // Dst: (VMOVAPSZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*339707*/            /*Scope*/ 23, /*->339731*/
/*339708*/              OPC_MoveParent,
/*339709*/              OPC_RecordChild2, // #3 = $src0
/*339710*/              OPC_CheckType, MVT::v16f32,
/*339712*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*339714*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*339717*/              OPC_EmitMergeInputChains1_1,
/*339718*/              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>>, VR512:{ *:[v16f32] }:$src0) - Complexity = 25
                        // Dst: (VMOVUPSZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*339731*/            0, /*End of Scope*/
/*339732*/          /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::SUBV_BROADCAST),// ->339801
/*339735*/            OPC_MoveChild0,
/*339736*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*339739*/            OPC_RecordMemRef,
/*339740*/            OPC_RecordNode, // #1 = 'ld' chained node
/*339741*/            OPC_CheckFoldableChainNode,
/*339742*/            OPC_RecordChild1, // #2 = $src
/*339743*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*339745*/            OPC_CheckPredicate, 9, // Predicate_load
/*339747*/            OPC_SwitchType /*2 cases */, 24, MVT::v4f32,// ->339774
/*339750*/              OPC_MoveParent,
/*339751*/              OPC_MoveParent,
/*339752*/              OPC_RecordChild2, // #3 = $src0
/*339753*/              OPC_CheckType, MVT::v16f32,
/*339755*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*339757*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*339760*/              OPC_EmitMergeInputChains1_1,
/*339761*/              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>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VBROADCASTF32X4rmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*339774*/            /*SwitchType*/ 24, MVT::v8f32,// ->339800
/*339776*/              OPC_MoveParent,
/*339777*/              OPC_MoveParent,
/*339778*/              OPC_RecordChild2, // #3 = $src0
/*339779*/              OPC_CheckType, MVT::v16f32,
/*339781*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*339783*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*339786*/              OPC_EmitMergeInputChains1_1,
/*339787*/              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>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VBROADCASTF32X8rmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*339800*/            0, // EndSwitchType
/*339801*/          /*SwitchOpcode*/ 39|128,1/*167*/, TARGET_VAL(ISD::STRICT_FADD),// ->339972
/*339805*/            OPC_RecordNode, // #1 = 'strict_fadd' chained node
/*339806*/            OPC_CheckFoldableChainNode,
/*339807*/            OPC_Scope, 80, /*->339889*/ // 2 children in Scope
/*339809*/              OPC_RecordChild1, // #2 = $src1
/*339810*/              OPC_MoveChild2,
/*339811*/              OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->339851
/*339815*/                OPC_RecordMemRef,
/*339816*/                OPC_RecordNode, // #3 = 'ld' chained node
/*339817*/                OPC_CheckFoldableChainNode,
/*339818*/                OPC_RecordChild1, // #4 = $src2
/*339819*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*339821*/                OPC_CheckPredicate, 9, // Predicate_load
/*339823*/                OPC_MoveParent,
/*339824*/                OPC_MoveParent,
/*339825*/                OPC_RecordChild2, // #5 = $src0
/*339826*/                OPC_CheckType, MVT::v16f32,
/*339828*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*339830*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*339833*/                OPC_EmitMergeInputChains, 2, 1, 3, 
/*339837*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (strict_fadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                          // Dst: (VADDPSZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*339851*/              /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->339888
/*339854*/                OPC_RecordMemRef,
/*339855*/                OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*339856*/                OPC_CheckFoldableChainNode,
/*339857*/                OPC_RecordChild1, // #4 = $src2
/*339858*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*339860*/                OPC_MoveParent,
/*339861*/                OPC_MoveParent,
/*339862*/                OPC_RecordChild2, // #5 = $src0
/*339863*/                OPC_CheckType, MVT::v16f32,
/*339865*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*339867*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*339870*/                OPC_EmitMergeInputChains, 2, 1, 3, 
/*339874*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (strict_fadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                          // Dst: (VADDPSZrmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*339888*/              0, // EndSwitchOpcode
/*339889*/            /*Scope*/ 81, /*->339971*/
/*339890*/              OPC_MoveChild1,
/*339891*/              OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->339932
/*339895*/                OPC_RecordMemRef,
/*339896*/                OPC_RecordNode, // #2 = 'ld' chained node
/*339897*/                OPC_CheckFoldableChainNode,
/*339898*/                OPC_RecordChild1, // #3 = $src2
/*339899*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*339901*/                OPC_CheckPredicate, 9, // Predicate_load
/*339903*/                OPC_MoveParent,
/*339904*/                OPC_RecordChild2, // #4 = $src1
/*339905*/                OPC_MoveParent,
/*339906*/                OPC_RecordChild2, // #5 = $src0
/*339907*/                OPC_CheckType, MVT::v16f32,
/*339909*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*339911*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*339914*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*339918*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 5, 0, 4, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (strict_fadd:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                          // Dst: (VADDPSZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*339932*/              /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->339970
/*339935*/                OPC_RecordMemRef,
/*339936*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*339937*/                OPC_CheckFoldableChainNode,
/*339938*/                OPC_RecordChild1, // #3 = $src2
/*339939*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*339941*/                OPC_MoveParent,
/*339942*/                OPC_RecordChild2, // #4 = $src1
/*339943*/                OPC_MoveParent,
/*339944*/                OPC_RecordChild2, // #5 = $src0
/*339945*/                OPC_CheckType, MVT::v16f32,
/*339947*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*339949*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*339952*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*339956*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 5, 0, 4, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (strict_fadd:{ *:[v16f32] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                          // Dst: (VADDPSZrmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*339970*/              0, // EndSwitchOpcode
/*339971*/            0, /*End of Scope*/
/*339972*/          /*SwitchOpcode*/ 25|128,1/*153*/, TARGET_VAL(ISD::FADD),// ->340129
/*339976*/            OPC_Scope, 74, /*->340052*/ // 2 children in Scope
/*339978*/              OPC_RecordChild0, // #1 = $src1
/*339979*/              OPC_MoveChild1,
/*339980*/              OPC_SwitchOpcode /*2 cases */, 33, TARGET_VAL(ISD::LOAD),// ->340017
/*339984*/                OPC_RecordMemRef,
/*339985*/                OPC_RecordNode, // #2 = 'ld' chained node
/*339986*/                OPC_CheckFoldableChainNode,
/*339987*/                OPC_RecordChild1, // #3 = $src2
/*339988*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*339990*/                OPC_CheckPredicate, 9, // Predicate_load
/*339992*/                OPC_MoveParent,
/*339993*/                OPC_MoveParent,
/*339994*/                OPC_RecordChild2, // #4 = $src0
/*339995*/                OPC_CheckType, MVT::v16f32,
/*339997*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*339999*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*340002*/                OPC_EmitMergeInputChains1_2,
/*340003*/                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>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                          // Dst: (VADDPSZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*340017*/              /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->340051
/*340020*/                OPC_RecordMemRef,
/*340021*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*340022*/                OPC_CheckFoldableChainNode,
/*340023*/                OPC_RecordChild1, // #3 = $src2
/*340024*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*340026*/                OPC_MoveParent,
/*340027*/                OPC_MoveParent,
/*340028*/                OPC_RecordChild2, // #4 = $src0
/*340029*/                OPC_CheckType, MVT::v16f32,
/*340031*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*340033*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*340036*/                OPC_EmitMergeInputChains1_2,
/*340037*/                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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                          // Dst: (VADDPSZrmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*340051*/              0, // EndSwitchOpcode
/*340052*/            /*Scope*/ 75, /*->340128*/
/*340053*/              OPC_MoveChild0,
/*340054*/              OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->340092
/*340058*/                OPC_RecordMemRef,
/*340059*/                OPC_RecordNode, // #1 = 'ld' chained node
/*340060*/                OPC_CheckFoldableChainNode,
/*340061*/                OPC_RecordChild1, // #2 = $src2
/*340062*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*340064*/                OPC_CheckPredicate, 9, // Predicate_load
/*340066*/                OPC_MoveParent,
/*340067*/                OPC_RecordChild1, // #3 = $src1
/*340068*/                OPC_MoveParent,
/*340069*/                OPC_RecordChild2, // #4 = $src0
/*340070*/                OPC_CheckType, MVT::v16f32,
/*340072*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*340074*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*340077*/                OPC_EmitMergeInputChains1_1,
/*340078*/                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>>, VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                          // Dst: (VADDPSZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*340092*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->340127
/*340095*/                OPC_RecordMemRef,
/*340096*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*340097*/                OPC_CheckFoldableChainNode,
/*340098*/                OPC_RecordChild1, // #2 = $src2
/*340099*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*340101*/                OPC_MoveParent,
/*340102*/                OPC_RecordChild1, // #3 = $src1
/*340103*/                OPC_MoveParent,
/*340104*/                OPC_RecordChild2, // #4 = $src0
/*340105*/                OPC_CheckType, MVT::v16f32,
/*340107*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*340109*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*340112*/                OPC_EmitMergeInputChains1_1,
/*340113*/                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] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                          // Dst: (VADDPSZrmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*340127*/              0, // EndSwitchOpcode
/*340128*/            0, /*End of Scope*/
/*340129*/          /*SwitchOpcode*/ 39|128,1/*167*/, TARGET_VAL(ISD::STRICT_FMUL),// ->340300
/*340133*/            OPC_RecordNode, // #1 = 'strict_fmul' chained node
/*340134*/            OPC_CheckFoldableChainNode,
/*340135*/            OPC_Scope, 80, /*->340217*/ // 2 children in Scope
/*340137*/              OPC_RecordChild1, // #2 = $src1
/*340138*/              OPC_MoveChild2,
/*340139*/              OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->340179
/*340143*/                OPC_RecordMemRef,
/*340144*/                OPC_RecordNode, // #3 = 'ld' chained node
/*340145*/                OPC_CheckFoldableChainNode,
/*340146*/                OPC_RecordChild1, // #4 = $src2
/*340147*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*340149*/                OPC_CheckPredicate, 9, // Predicate_load
/*340151*/                OPC_MoveParent,
/*340152*/                OPC_MoveParent,
/*340153*/                OPC_RecordChild2, // #5 = $src0
/*340154*/                OPC_CheckType, MVT::v16f32,
/*340156*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*340158*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*340161*/                OPC_EmitMergeInputChains, 2, 1, 3, 
/*340165*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (strict_fmul:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                          // Dst: (VMULPSZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*340179*/              /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->340216
/*340182*/                OPC_RecordMemRef,
/*340183*/                OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*340184*/                OPC_CheckFoldableChainNode,
/*340185*/                OPC_RecordChild1, // #4 = $src2
/*340186*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*340188*/                OPC_MoveParent,
/*340189*/                OPC_MoveParent,
/*340190*/                OPC_RecordChild2, // #5 = $src0
/*340191*/                OPC_CheckType, MVT::v16f32,
/*340193*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*340195*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*340198*/                OPC_EmitMergeInputChains, 2, 1, 3, 
/*340202*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (strict_fmul:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                          // Dst: (VMULPSZrmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*340216*/              0, // EndSwitchOpcode
/*340217*/            /*Scope*/ 81, /*->340299*/
/*340218*/              OPC_MoveChild1,
/*340219*/              OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->340260
/*340223*/                OPC_RecordMemRef,
/*340224*/                OPC_RecordNode, // #2 = 'ld' chained node
/*340225*/                OPC_CheckFoldableChainNode,
/*340226*/                OPC_RecordChild1, // #3 = $src2
/*340227*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*340229*/                OPC_CheckPredicate, 9, // Predicate_load
/*340231*/                OPC_MoveParent,
/*340232*/                OPC_RecordChild2, // #4 = $src1
/*340233*/                OPC_MoveParent,
/*340234*/                OPC_RecordChild2, // #5 = $src0
/*340235*/                OPC_CheckType, MVT::v16f32,
/*340237*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*340239*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*340242*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*340246*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 5, 0, 4, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (strict_fmul:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                          // Dst: (VMULPSZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*340260*/              /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->340298
/*340263*/                OPC_RecordMemRef,
/*340264*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*340265*/                OPC_CheckFoldableChainNode,
/*340266*/                OPC_RecordChild1, // #3 = $src2
/*340267*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*340269*/                OPC_MoveParent,
/*340270*/                OPC_RecordChild2, // #4 = $src1
/*340271*/                OPC_MoveParent,
/*340272*/                OPC_RecordChild2, // #5 = $src0
/*340273*/                OPC_CheckType, MVT::v16f32,
/*340275*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*340277*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*340280*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*340284*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 5, 0, 4, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (strict_fmul:{ *:[v16f32] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                          // Dst: (VMULPSZrmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*340298*/              0, // EndSwitchOpcode
/*340299*/            0, /*End of Scope*/
/*340300*/          /*SwitchOpcode*/ 25|128,1/*153*/, TARGET_VAL(ISD::FMUL),// ->340457
/*340304*/            OPC_Scope, 74, /*->340380*/ // 2 children in Scope
/*340306*/              OPC_RecordChild0, // #1 = $src1
/*340307*/              OPC_MoveChild1,
/*340308*/              OPC_SwitchOpcode /*2 cases */, 33, TARGET_VAL(ISD::LOAD),// ->340345
/*340312*/                OPC_RecordMemRef,
/*340313*/                OPC_RecordNode, // #2 = 'ld' chained node
/*340314*/                OPC_CheckFoldableChainNode,
/*340315*/                OPC_RecordChild1, // #3 = $src2
/*340316*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*340318*/                OPC_CheckPredicate, 9, // Predicate_load
/*340320*/                OPC_MoveParent,
/*340321*/                OPC_MoveParent,
/*340322*/                OPC_RecordChild2, // #4 = $src0
/*340323*/                OPC_CheckType, MVT::v16f32,
/*340325*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*340327*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*340330*/                OPC_EmitMergeInputChains1_2,
/*340331*/                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>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                          // Dst: (VMULPSZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*340345*/              /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->340379
/*340348*/                OPC_RecordMemRef,
/*340349*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*340350*/                OPC_CheckFoldableChainNode,
/*340351*/                OPC_RecordChild1, // #3 = $src2
/*340352*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*340354*/                OPC_MoveParent,
/*340355*/                OPC_MoveParent,
/*340356*/                OPC_RecordChild2, // #4 = $src0
/*340357*/                OPC_CheckType, MVT::v16f32,
/*340359*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*340361*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*340364*/                OPC_EmitMergeInputChains1_2,
/*340365*/                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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                          // Dst: (VMULPSZrmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*340379*/              0, // EndSwitchOpcode
/*340380*/            /*Scope*/ 75, /*->340456*/
/*340381*/              OPC_MoveChild0,
/*340382*/              OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->340420
/*340386*/                OPC_RecordMemRef,
/*340387*/                OPC_RecordNode, // #1 = 'ld' chained node
/*340388*/                OPC_CheckFoldableChainNode,
/*340389*/                OPC_RecordChild1, // #2 = $src2
/*340390*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*340392*/                OPC_CheckPredicate, 9, // Predicate_load
/*340394*/                OPC_MoveParent,
/*340395*/                OPC_RecordChild1, // #3 = $src1
/*340396*/                OPC_MoveParent,
/*340397*/                OPC_RecordChild2, // #4 = $src0
/*340398*/                OPC_CheckType, MVT::v16f32,
/*340400*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*340402*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*340405*/                OPC_EmitMergeInputChains1_1,
/*340406*/                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>>, VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                          // Dst: (VMULPSZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*340420*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->340455
/*340423*/                OPC_RecordMemRef,
/*340424*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*340425*/                OPC_CheckFoldableChainNode,
/*340426*/                OPC_RecordChild1, // #2 = $src2
/*340427*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*340429*/                OPC_MoveParent,
/*340430*/                OPC_RecordChild1, // #3 = $src1
/*340431*/                OPC_MoveParent,
/*340432*/                OPC_RecordChild2, // #4 = $src0
/*340433*/                OPC_CheckType, MVT::v16f32,
/*340435*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*340437*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*340440*/                OPC_EmitMergeInputChains1_1,
/*340441*/                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] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                          // Dst: (VMULPSZrmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*340455*/              0, // EndSwitchOpcode
/*340456*/            0, /*End of Scope*/
/*340457*/          /*SwitchOpcode*/ 82, TARGET_VAL(ISD::STRICT_FSUB),// ->340542
/*340460*/            OPC_RecordNode, // #1 = 'strict_fsub' chained node
/*340461*/            OPC_CheckFoldableChainNode,
/*340462*/            OPC_RecordChild1, // #2 = $src1
/*340463*/            OPC_MoveChild2,
/*340464*/            OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->340504
/*340468*/              OPC_RecordMemRef,
/*340469*/              OPC_RecordNode, // #3 = 'ld' chained node
/*340470*/              OPC_CheckFoldableChainNode,
/*340471*/              OPC_RecordChild1, // #4 = $src2
/*340472*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*340474*/              OPC_CheckPredicate, 9, // Predicate_load
/*340476*/              OPC_MoveParent,
/*340477*/              OPC_MoveParent,
/*340478*/              OPC_RecordChild2, // #5 = $src0
/*340479*/              OPC_CheckType, MVT::v16f32,
/*340481*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*340483*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*340486*/              OPC_EmitMergeInputChains, 2, 1, 3, 
/*340490*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (strict_fsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VSUBPSZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*340504*/            /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->340541
/*340507*/              OPC_RecordMemRef,
/*340508*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*340509*/              OPC_CheckFoldableChainNode,
/*340510*/              OPC_RecordChild1, // #4 = $src2
/*340511*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*340513*/              OPC_MoveParent,
/*340514*/              OPC_MoveParent,
/*340515*/              OPC_RecordChild2, // #5 = $src0
/*340516*/              OPC_CheckType, MVT::v16f32,
/*340518*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*340520*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*340523*/              OPC_EmitMergeInputChains, 2, 1, 3, 
/*340527*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (strict_fsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VSUBPSZrmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*340541*/            0, // EndSwitchOpcode
/*340542*/          /*SwitchOpcode*/ 74, TARGET_VAL(ISD::FSUB),// ->340619
/*340545*/            OPC_RecordChild0, // #1 = $src1
/*340546*/            OPC_MoveChild1,
/*340547*/            OPC_SwitchOpcode /*2 cases */, 33, TARGET_VAL(ISD::LOAD),// ->340584
/*340551*/              OPC_RecordMemRef,
/*340552*/              OPC_RecordNode, // #2 = 'ld' chained node
/*340553*/              OPC_CheckFoldableChainNode,
/*340554*/              OPC_RecordChild1, // #3 = $src2
/*340555*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*340557*/              OPC_CheckPredicate, 9, // Predicate_load
/*340559*/              OPC_MoveParent,
/*340560*/              OPC_MoveParent,
/*340561*/              OPC_RecordChild2, // #4 = $src0
/*340562*/              OPC_CheckType, MVT::v16f32,
/*340564*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*340566*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*340569*/              OPC_EmitMergeInputChains1_2,
/*340570*/              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>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VSUBPSZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*340584*/            /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->340618
/*340587*/              OPC_RecordMemRef,
/*340588*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*340589*/              OPC_CheckFoldableChainNode,
/*340590*/              OPC_RecordChild1, // #3 = $src2
/*340591*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*340593*/              OPC_MoveParent,
/*340594*/              OPC_MoveParent,
/*340595*/              OPC_RecordChild2, // #4 = $src0
/*340596*/              OPC_CheckType, MVT::v16f32,
/*340598*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*340600*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*340603*/              OPC_EmitMergeInputChains1_2,
/*340604*/              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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VSUBPSZrmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*340618*/            0, // EndSwitchOpcode
/*340619*/          /*SwitchOpcode*/ 82, TARGET_VAL(ISD::STRICT_FDIV),// ->340704
/*340622*/            OPC_RecordNode, // #1 = 'strict_fdiv' chained node
/*340623*/            OPC_CheckFoldableChainNode,
/*340624*/            OPC_RecordChild1, // #2 = $src1
/*340625*/            OPC_MoveChild2,
/*340626*/            OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->340666
/*340630*/              OPC_RecordMemRef,
/*340631*/              OPC_RecordNode, // #3 = 'ld' chained node
/*340632*/              OPC_CheckFoldableChainNode,
/*340633*/              OPC_RecordChild1, // #4 = $src2
/*340634*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*340636*/              OPC_CheckPredicate, 9, // Predicate_load
/*340638*/              OPC_MoveParent,
/*340639*/              OPC_MoveParent,
/*340640*/              OPC_RecordChild2, // #5 = $src0
/*340641*/              OPC_CheckType, MVT::v16f32,
/*340643*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*340645*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*340648*/              OPC_EmitMergeInputChains, 2, 1, 3, 
/*340652*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (strict_fdiv:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VDIVPSZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*340666*/            /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->340703
/*340669*/              OPC_RecordMemRef,
/*340670*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*340671*/              OPC_CheckFoldableChainNode,
/*340672*/              OPC_RecordChild1, // #4 = $src2
/*340673*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*340675*/              OPC_MoveParent,
/*340676*/              OPC_MoveParent,
/*340677*/              OPC_RecordChild2, // #5 = $src0
/*340678*/              OPC_CheckType, MVT::v16f32,
/*340680*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*340682*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*340685*/              OPC_EmitMergeInputChains, 2, 1, 3, 
/*340689*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (strict_fdiv:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VDIVPSZrmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*340703*/            0, // EndSwitchOpcode
/*340704*/          /*SwitchOpcode*/ 74, TARGET_VAL(ISD::FDIV),// ->340781
/*340707*/            OPC_RecordChild0, // #1 = $src1
/*340708*/            OPC_MoveChild1,
/*340709*/            OPC_SwitchOpcode /*2 cases */, 33, TARGET_VAL(ISD::LOAD),// ->340746
/*340713*/              OPC_RecordMemRef,
/*340714*/              OPC_RecordNode, // #2 = 'ld' chained node
/*340715*/              OPC_CheckFoldableChainNode,
/*340716*/              OPC_RecordChild1, // #3 = $src2
/*340717*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*340719*/              OPC_CheckPredicate, 9, // Predicate_load
/*340721*/              OPC_MoveParent,
/*340722*/              OPC_MoveParent,
/*340723*/              OPC_RecordChild2, // #4 = $src0
/*340724*/              OPC_CheckType, MVT::v16f32,
/*340726*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*340728*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*340731*/              OPC_EmitMergeInputChains1_2,
/*340732*/              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>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VDIVPSZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*340746*/            /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->340780
/*340749*/              OPC_RecordMemRef,
/*340750*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*340751*/              OPC_CheckFoldableChainNode,
/*340752*/              OPC_RecordChild1, // #3 = $src2
/*340753*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*340755*/              OPC_MoveParent,
/*340756*/              OPC_MoveParent,
/*340757*/              OPC_RecordChild2, // #4 = $src0
/*340758*/              OPC_CheckType, MVT::v16f32,
/*340760*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*340762*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*340765*/              OPC_EmitMergeInputChains1_2,
/*340766*/              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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VDIVPSZrmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*340780*/            0, // EndSwitchOpcode
/*340781*/          /*SwitchOpcode*/ 74, TARGET_VAL(X86ISD::FMIN),// ->340858
/*340784*/            OPC_RecordChild0, // #1 = $src1
/*340785*/            OPC_MoveChild1,
/*340786*/            OPC_SwitchOpcode /*2 cases */, 33, TARGET_VAL(ISD::LOAD),// ->340823
/*340790*/              OPC_RecordMemRef,
/*340791*/              OPC_RecordNode, // #2 = 'ld' chained node
/*340792*/              OPC_CheckFoldableChainNode,
/*340793*/              OPC_RecordChild1, // #3 = $src2
/*340794*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*340796*/              OPC_CheckPredicate, 9, // Predicate_load
/*340798*/              OPC_MoveParent,
/*340799*/              OPC_MoveParent,
/*340800*/              OPC_RecordChild2, // #4 = $src0
/*340801*/              OPC_CheckType, MVT::v16f32,
/*340803*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*340805*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*340808*/              OPC_EmitMergeInputChains1_2,
/*340809*/              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>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VMINPSZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*340823*/            /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->340857
/*340826*/              OPC_RecordMemRef,
/*340827*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*340828*/              OPC_CheckFoldableChainNode,
/*340829*/              OPC_RecordChild1, // #3 = $src2
/*340830*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*340832*/              OPC_MoveParent,
/*340833*/              OPC_MoveParent,
/*340834*/              OPC_RecordChild2, // #4 = $src0
/*340835*/              OPC_CheckType, MVT::v16f32,
/*340837*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*340839*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*340842*/              OPC_EmitMergeInputChains1_2,
/*340843*/              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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VMINPSZrmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*340857*/            0, // EndSwitchOpcode
/*340858*/          /*SwitchOpcode*/ 74, TARGET_VAL(X86ISD::FMAX),// ->340935
/*340861*/            OPC_RecordChild0, // #1 = $src1
/*340862*/            OPC_MoveChild1,
/*340863*/            OPC_SwitchOpcode /*2 cases */, 33, TARGET_VAL(ISD::LOAD),// ->340900
/*340867*/              OPC_RecordMemRef,
/*340868*/              OPC_RecordNode, // #2 = 'ld' chained node
/*340869*/              OPC_CheckFoldableChainNode,
/*340870*/              OPC_RecordChild1, // #3 = $src2
/*340871*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*340873*/              OPC_CheckPredicate, 9, // Predicate_load
/*340875*/              OPC_MoveParent,
/*340876*/              OPC_MoveParent,
/*340877*/              OPC_RecordChild2, // #4 = $src0
/*340878*/              OPC_CheckType, MVT::v16f32,
/*340880*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*340882*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*340885*/              OPC_EmitMergeInputChains1_2,
/*340886*/              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>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VMAXPSZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*340900*/            /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->340934
/*340903*/              OPC_RecordMemRef,
/*340904*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*340905*/              OPC_CheckFoldableChainNode,
/*340906*/              OPC_RecordChild1, // #3 = $src2
/*340907*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*340909*/              OPC_MoveParent,
/*340910*/              OPC_MoveParent,
/*340911*/              OPC_RecordChild2, // #4 = $src0
/*340912*/              OPC_CheckType, MVT::v16f32,
/*340914*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*340916*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*340919*/              OPC_EmitMergeInputChains1_2,
/*340920*/              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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VMAXPSZrmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*340934*/            0, // EndSwitchOpcode
/*340935*/          /*SwitchOpcode*/ 25|128,1/*153*/, TARGET_VAL(X86ISD::FMINC),// ->341092
/*340939*/            OPC_Scope, 74, /*->341015*/ // 2 children in Scope
/*340941*/              OPC_RecordChild0, // #1 = $src1
/*340942*/              OPC_MoveChild1,
/*340943*/              OPC_SwitchOpcode /*2 cases */, 33, TARGET_VAL(ISD::LOAD),// ->340980
/*340947*/                OPC_RecordMemRef,
/*340948*/                OPC_RecordNode, // #2 = 'ld' chained node
/*340949*/                OPC_CheckFoldableChainNode,
/*340950*/                OPC_RecordChild1, // #3 = $src2
/*340951*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*340953*/                OPC_CheckPredicate, 9, // Predicate_load
/*340955*/                OPC_MoveParent,
/*340956*/                OPC_MoveParent,
/*340957*/                OPC_RecordChild2, // #4 = $src0
/*340958*/                OPC_CheckType, MVT::v16f32,
/*340960*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*340962*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*340965*/                OPC_EmitMergeInputChains1_2,
/*340966*/                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>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                          // Dst: (VMINCPSZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*340980*/              /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->341014
/*340983*/                OPC_RecordMemRef,
/*340984*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*340985*/                OPC_CheckFoldableChainNode,
/*340986*/                OPC_RecordChild1, // #3 = $src2
/*340987*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*340989*/                OPC_MoveParent,
/*340990*/                OPC_MoveParent,
/*340991*/                OPC_RecordChild2, // #4 = $src0
/*340992*/                OPC_CheckType, MVT::v16f32,
/*340994*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*340996*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*340999*/                OPC_EmitMergeInputChains1_2,
/*341000*/                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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                          // Dst: (VMINCPSZrmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*341014*/              0, // EndSwitchOpcode
/*341015*/            /*Scope*/ 75, /*->341091*/
/*341016*/              OPC_MoveChild0,
/*341017*/              OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->341055
/*341021*/                OPC_RecordMemRef,
/*341022*/                OPC_RecordNode, // #1 = 'ld' chained node
/*341023*/                OPC_CheckFoldableChainNode,
/*341024*/                OPC_RecordChild1, // #2 = $src2
/*341025*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*341027*/                OPC_CheckPredicate, 9, // Predicate_load
/*341029*/                OPC_MoveParent,
/*341030*/                OPC_RecordChild1, // #3 = $src1
/*341031*/                OPC_MoveParent,
/*341032*/                OPC_RecordChild2, // #4 = $src0
/*341033*/                OPC_CheckType, MVT::v16f32,
/*341035*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*341037*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*341040*/                OPC_EmitMergeInputChains1_1,
/*341041*/                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>>, VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                          // Dst: (VMINCPSZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*341055*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->341090
/*341058*/                OPC_RecordMemRef,
/*341059*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*341060*/                OPC_CheckFoldableChainNode,
/*341061*/                OPC_RecordChild1, // #2 = $src2
/*341062*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*341064*/                OPC_MoveParent,
/*341065*/                OPC_RecordChild1, // #3 = $src1
/*341066*/                OPC_MoveParent,
/*341067*/                OPC_RecordChild2, // #4 = $src0
/*341068*/                OPC_CheckType, MVT::v16f32,
/*341070*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*341072*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*341075*/                OPC_EmitMergeInputChains1_1,
/*341076*/                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] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                          // Dst: (VMINCPSZrmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*341090*/              0, // EndSwitchOpcode
/*341091*/            0, /*End of Scope*/
/*341092*/          /*SwitchOpcode*/ 25|128,1/*153*/, TARGET_VAL(X86ISD::FMAXC),// ->341249
/*341096*/            OPC_Scope, 74, /*->341172*/ // 2 children in Scope
/*341098*/              OPC_RecordChild0, // #1 = $src1
/*341099*/              OPC_MoveChild1,
/*341100*/              OPC_SwitchOpcode /*2 cases */, 33, TARGET_VAL(ISD::LOAD),// ->341137
/*341104*/                OPC_RecordMemRef,
/*341105*/                OPC_RecordNode, // #2 = 'ld' chained node
/*341106*/                OPC_CheckFoldableChainNode,
/*341107*/                OPC_RecordChild1, // #3 = $src2
/*341108*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*341110*/                OPC_CheckPredicate, 9, // Predicate_load
/*341112*/                OPC_MoveParent,
/*341113*/                OPC_MoveParent,
/*341114*/                OPC_RecordChild2, // #4 = $src0
/*341115*/                OPC_CheckType, MVT::v16f32,
/*341117*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*341119*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*341122*/                OPC_EmitMergeInputChains1_2,
/*341123*/                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>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                          // Dst: (VMAXCPSZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*341137*/              /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->341171
/*341140*/                OPC_RecordMemRef,
/*341141*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*341142*/                OPC_CheckFoldableChainNode,
/*341143*/                OPC_RecordChild1, // #3 = $src2
/*341144*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*341146*/                OPC_MoveParent,
/*341147*/                OPC_MoveParent,
/*341148*/                OPC_RecordChild2, // #4 = $src0
/*341149*/                OPC_CheckType, MVT::v16f32,
/*341151*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*341153*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*341156*/                OPC_EmitMergeInputChains1_2,
/*341157*/                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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                          // Dst: (VMAXCPSZrmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*341171*/              0, // EndSwitchOpcode
/*341172*/            /*Scope*/ 75, /*->341248*/
/*341173*/              OPC_MoveChild0,
/*341174*/              OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->341212
/*341178*/                OPC_RecordMemRef,
/*341179*/                OPC_RecordNode, // #1 = 'ld' chained node
/*341180*/                OPC_CheckFoldableChainNode,
/*341181*/                OPC_RecordChild1, // #2 = $src2
/*341182*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*341184*/                OPC_CheckPredicate, 9, // Predicate_load
/*341186*/                OPC_MoveParent,
/*341187*/                OPC_RecordChild1, // #3 = $src1
/*341188*/                OPC_MoveParent,
/*341189*/                OPC_RecordChild2, // #4 = $src0
/*341190*/                OPC_CheckType, MVT::v16f32,
/*341192*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*341194*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*341197*/                OPC_EmitMergeInputChains1_1,
/*341198*/                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>>, VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                          // Dst: (VMAXCPSZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*341212*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->341247
/*341215*/                OPC_RecordMemRef,
/*341216*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*341217*/                OPC_CheckFoldableChainNode,
/*341218*/                OPC_RecordChild1, // #2 = $src2
/*341219*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*341221*/                OPC_MoveParent,
/*341222*/                OPC_RecordChild1, // #3 = $src1
/*341223*/                OPC_MoveParent,
/*341224*/                OPC_RecordChild2, // #4 = $src0
/*341225*/                OPC_CheckType, MVT::v16f32,
/*341227*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*341229*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*341232*/                OPC_EmitMergeInputChains1_1,
/*341233*/                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] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                          // Dst: (VMAXCPSZrmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*341247*/              0, // EndSwitchOpcode
/*341248*/            0, /*End of Scope*/
/*341249*/          /*SwitchOpcode*/ 74, TARGET_VAL(X86ISD::SCALEF),// ->341326
/*341252*/            OPC_RecordChild0, // #1 = $src1
/*341253*/            OPC_MoveChild1,
/*341254*/            OPC_SwitchOpcode /*2 cases */, 33, TARGET_VAL(ISD::LOAD),// ->341291
/*341258*/              OPC_RecordMemRef,
/*341259*/              OPC_RecordNode, // #2 = 'ld' chained node
/*341260*/              OPC_CheckFoldableChainNode,
/*341261*/              OPC_RecordChild1, // #3 = $src2
/*341262*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*341264*/              OPC_CheckPredicate, 9, // Predicate_load
/*341266*/              OPC_MoveParent,
/*341267*/              OPC_MoveParent,
/*341268*/              OPC_RecordChild2, // #4 = $src0
/*341269*/              OPC_CheckType, MVT::v16f32,
/*341271*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*341273*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*341276*/              OPC_EmitMergeInputChains1_2,
/*341277*/              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>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VSCALEFPSZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*341291*/            /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->341325
/*341294*/              OPC_RecordMemRef,
/*341295*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*341296*/              OPC_CheckFoldableChainNode,
/*341297*/              OPC_RecordChild1, // #3 = $src2
/*341298*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*341300*/              OPC_MoveParent,
/*341301*/              OPC_MoveParent,
/*341302*/              OPC_RecordChild2, // #4 = $src0
/*341303*/              OPC_CheckType, MVT::v16f32,
/*341305*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*341307*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*341310*/              OPC_EmitMergeInputChains1_2,
/*341311*/              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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VSCALEFPSZrmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*341325*/            0, // EndSwitchOpcode
/*341326*/          /*SwitchOpcode*/ 74, TARGET_VAL(X86ISD::VPERMV),// ->341403
/*341329*/            OPC_RecordChild0, // #1 = $src1
/*341330*/            OPC_MoveChild1,
/*341331*/            OPC_SwitchOpcode /*2 cases */, 33, TARGET_VAL(ISD::LOAD),// ->341368
/*341335*/              OPC_RecordMemRef,
/*341336*/              OPC_RecordNode, // #2 = 'ld' chained node
/*341337*/              OPC_CheckFoldableChainNode,
/*341338*/              OPC_RecordChild1, // #3 = $src2
/*341339*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*341341*/              OPC_CheckPredicate, 9, // Predicate_load
/*341343*/              OPC_MoveParent,
/*341344*/              OPC_MoveParent,
/*341345*/              OPC_RecordChild2, // #4 = $src0
/*341346*/              OPC_CheckType, MVT::v16f32,
/*341348*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*341350*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*341353*/              OPC_EmitMergeInputChains1_2,
/*341354*/              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>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VPERMPSZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*341368*/            /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->341402
/*341371*/              OPC_RecordMemRef,
/*341372*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*341373*/              OPC_CheckFoldableChainNode,
/*341374*/              OPC_RecordChild1, // #3 = $src2
/*341375*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*341377*/              OPC_MoveParent,
/*341378*/              OPC_MoveParent,
/*341379*/              OPC_RecordChild2, // #4 = $src0
/*341380*/              OPC_CheckType, MVT::v16f32,
/*341382*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*341384*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*341387*/              OPC_EmitMergeInputChains1_2,
/*341388*/              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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VPERMPSZrmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*341402*/            0, // EndSwitchOpcode
/*341403*/          /*SwitchOpcode*/ 74, TARGET_VAL(X86ISD::VPERMILPV),// ->341480
/*341406*/            OPC_RecordChild0, // #1 = $src1
/*341407*/            OPC_MoveChild1,
/*341408*/            OPC_SwitchOpcode /*2 cases */, 33, TARGET_VAL(ISD::LOAD),// ->341445
/*341412*/              OPC_RecordMemRef,
/*341413*/              OPC_RecordNode, // #2 = 'ld' chained node
/*341414*/              OPC_CheckFoldableChainNode,
/*341415*/              OPC_RecordChild1, // #3 = $src2
/*341416*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*341418*/              OPC_CheckPredicate, 9, // Predicate_load
/*341420*/              OPC_MoveParent,
/*341421*/              OPC_MoveParent,
/*341422*/              OPC_RecordChild2, // #4 = $src0
/*341423*/              OPC_CheckType, MVT::v16f32,
/*341425*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*341427*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*341430*/              OPC_EmitMergeInputChains1_2,
/*341431*/              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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VPERMILPSZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*341445*/            /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->341479
/*341448*/              OPC_RecordMemRef,
/*341449*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*341450*/              OPC_CheckFoldableChainNode,
/*341451*/              OPC_RecordChild1, // #3 = $src2
/*341452*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*341454*/              OPC_MoveParent,
/*341455*/              OPC_MoveParent,
/*341456*/              OPC_RecordChild2, // #4 = $src0
/*341457*/              OPC_CheckType, MVT::v16f32,
/*341459*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*341461*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*341464*/              OPC_EmitMergeInputChains1_2,
/*341465*/              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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VPERMILPSZrmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*341479*/            0, // EndSwitchOpcode
/*341480*/          /*SwitchOpcode*/ 5|128,4/*517*/, TARGET_VAL(ISD::STRICT_FMA),// ->342001
/*341484*/            OPC_RecordNode, // #1 = 'X86strict_Fmadd' chained node
/*341485*/            OPC_CheckFoldableChainNode,
/*341486*/            OPC_Scope, 42|128,1/*170*/, /*->341659*/ // 5 children in Scope
/*341489*/              OPC_RecordChild1, // #2 = $src2
/*341490*/              OPC_Scope, 82, /*->341574*/ // 2 children in Scope
/*341492*/                OPC_RecordChild2, // #3 = $src1
/*341493*/                OPC_MoveChild3,
/*341494*/                OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->341535
/*341498*/                  OPC_RecordMemRef,
/*341499*/                  OPC_RecordNode, // #4 = 'ld' chained node
/*341500*/                  OPC_CheckFoldableChainNode,
/*341501*/                  OPC_RecordChild1, // #5 = $src3
/*341502*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*341504*/                  OPC_CheckPredicate, 9, // Predicate_load
/*341506*/                  OPC_MoveParent,
/*341507*/                  OPC_MoveParent,
/*341508*/                  OPC_CheckChild2Same, 3,
/*341510*/                  OPC_CheckType, MVT::v16f32,
/*341512*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*341514*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/5, // selectAddr:$src3 #6 #7 #8 #9 #10
/*341517*/                  OPC_EmitMergeInputChains, 2, 1, 4, 
/*341521*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16f32, 8/*#Ops*/, 3, 0, 2, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86strict_Fmadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                            // Dst: (VFMADD213PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*341535*/                /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->341573
/*341538*/                  OPC_RecordMemRef,
/*341539*/                  OPC_RecordNode, // #4 = 'X86VBroadcastld' chained node
/*341540*/                  OPC_CheckFoldableChainNode,
/*341541*/                  OPC_RecordChild1, // #5 = $src3
/*341542*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*341544*/                  OPC_MoveParent,
/*341545*/                  OPC_MoveParent,
/*341546*/                  OPC_CheckChild2Same, 3,
/*341548*/                  OPC_CheckType, MVT::v16f32,
/*341550*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*341552*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/5, // selectAddr:$src3 #6 #7 #8 #9 #10
/*341555*/                  OPC_EmitMergeInputChains, 2, 1, 4, 
/*341559*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16f32, 8/*#Ops*/, 3, 0, 2, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86strict_Fmadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                            // Dst: (VFMADD213PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*341573*/                0, // EndSwitchOpcode
/*341574*/              /*Scope*/ 83, /*->341658*/
/*341575*/                OPC_MoveChild2,
/*341576*/                OPC_SwitchOpcode /*2 cases */, 38, TARGET_VAL(ISD::LOAD),// ->341618
/*341580*/                  OPC_RecordMemRef,
/*341581*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*341582*/                  OPC_CheckFoldableChainNode,
/*341583*/                  OPC_RecordChild1, // #4 = $src3
/*341584*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*341586*/                  OPC_CheckPredicate, 9, // Predicate_load
/*341588*/                  OPC_MoveParent,
/*341589*/                  OPC_RecordChild3, // #5 = $src1
/*341590*/                  OPC_MoveParent,
/*341591*/                  OPC_CheckChild2Same, 5,
/*341593*/                  OPC_CheckType, MVT::v16f32,
/*341595*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*341597*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*341600*/                  OPC_EmitMergeInputChains, 2, 1, 3, 
/*341604*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PSZmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16f32, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86strict_Fmadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                            // Dst: (VFMADD231PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*341618*/                /*SwitchOpcode*/ 36, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->341657
/*341621*/                  OPC_RecordMemRef,
/*341622*/                  OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*341623*/                  OPC_CheckFoldableChainNode,
/*341624*/                  OPC_RecordChild1, // #4 = $src3
/*341625*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*341627*/                  OPC_MoveParent,
/*341628*/                  OPC_RecordChild3, // #5 = $src1
/*341629*/                  OPC_MoveParent,
/*341630*/                  OPC_CheckChild2Same, 5,
/*341632*/                  OPC_CheckType, MVT::v16f32,
/*341634*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*341636*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*341639*/                  OPC_EmitMergeInputChains, 2, 1, 3, 
/*341643*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PSZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16f32, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86strict_Fmadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                            // Dst: (VFMADD231PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*341657*/                0, // EndSwitchOpcode
/*341658*/              0, /*End of Scope*/
/*341659*/            /*Scope*/ 85, /*->341745*/
/*341660*/              OPC_MoveChild1,
/*341661*/              OPC_SwitchOpcode /*2 cases */, 39, TARGET_VAL(ISD::LOAD),// ->341704
/*341665*/                OPC_RecordMemRef,
/*341666*/                OPC_RecordNode, // #2 = 'ld' chained node
/*341667*/                OPC_CheckFoldableChainNode,
/*341668*/                OPC_RecordChild1, // #3 = $src3
/*341669*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*341671*/                OPC_CheckPredicate, 9, // Predicate_load
/*341673*/                OPC_MoveParent,
/*341674*/                OPC_RecordChild2, // #4 = $src1
/*341675*/                OPC_RecordChild3, // #5 = $src2
/*341676*/                OPC_MoveParent,
/*341677*/                OPC_CheckChild2Same, 4,
/*341679*/                OPC_CheckType, MVT::v16f32,
/*341681*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*341683*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*341686*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*341690*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PSZmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86strict_Fmadd:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, 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)
/*341704*/              /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->341744
/*341707*/                OPC_RecordMemRef,
/*341708*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*341709*/                OPC_CheckFoldableChainNode,
/*341710*/                OPC_RecordChild1, // #3 = $src3
/*341711*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*341713*/                OPC_MoveParent,
/*341714*/                OPC_RecordChild2, // #4 = $src1
/*341715*/                OPC_RecordChild3, // #5 = $src2
/*341716*/                OPC_MoveParent,
/*341717*/                OPC_CheckChild2Same, 4,
/*341719*/                OPC_CheckType, MVT::v16f32,
/*341721*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*341723*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*341726*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*341730*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PSZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86strict_Fmadd:{ *:[v16f32] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                          // Dst: (VFMADD132PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*341744*/              0, // EndSwitchOpcode
/*341745*/            /*Scope*/ 83, /*->341829*/
/*341746*/              OPC_RecordChild1, // #2 = $src1
/*341747*/              OPC_RecordChild2, // #3 = $src2
/*341748*/              OPC_MoveChild3,
/*341749*/              OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->341790
/*341753*/                OPC_RecordMemRef,
/*341754*/                OPC_RecordNode, // #4 = 'ld' chained node
/*341755*/                OPC_CheckFoldableChainNode,
/*341756*/                OPC_RecordChild1, // #5 = $src3
/*341757*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*341759*/                OPC_CheckPredicate, 9, // Predicate_load
/*341761*/                OPC_MoveParent,
/*341762*/                OPC_MoveParent,
/*341763*/                OPC_CheckChild2Same, 2,
/*341765*/                OPC_CheckType, MVT::v16f32,
/*341767*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*341769*/                OPC_CheckComplexPat, /*CP*/0, /*#*/5, // selectAddr:$src3 #6 #7 #8 #9 #10
/*341772*/                OPC_EmitMergeInputChains, 2, 1, 4, 
/*341776*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 2, 0, 3, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86strict_Fmadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                          // Dst: (VFMADD213PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*341790*/              /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->341828
/*341793*/                OPC_RecordMemRef,
/*341794*/                OPC_RecordNode, // #4 = 'X86VBroadcastld' chained node
/*341795*/                OPC_CheckFoldableChainNode,
/*341796*/                OPC_RecordChild1, // #5 = $src3
/*341797*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*341799*/                OPC_MoveParent,
/*341800*/                OPC_MoveParent,
/*341801*/                OPC_CheckChild2Same, 2,
/*341803*/                OPC_CheckType, MVT::v16f32,
/*341805*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*341807*/                OPC_CheckComplexPat, /*CP*/0, /*#*/5, // selectAddr:$src3 #6 #7 #8 #9 #10
/*341810*/                OPC_EmitMergeInputChains, 2, 1, 4, 
/*341814*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 2, 0, 3, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86strict_Fmadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                          // Dst: (VFMADD213PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*341828*/              0, // EndSwitchOpcode
/*341829*/            /*Scope*/ 85, /*->341915*/
/*341830*/              OPC_MoveChild1,
/*341831*/              OPC_SwitchOpcode /*2 cases */, 39, TARGET_VAL(ISD::LOAD),// ->341874
/*341835*/                OPC_RecordMemRef,
/*341836*/                OPC_RecordNode, // #2 = 'ld' chained node
/*341837*/                OPC_CheckFoldableChainNode,
/*341838*/                OPC_RecordChild1, // #3 = $src3
/*341839*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*341841*/                OPC_CheckPredicate, 9, // Predicate_load
/*341843*/                OPC_MoveParent,
/*341844*/                OPC_RecordChild2, // #4 = $src2
/*341845*/                OPC_RecordChild3, // #5 = $src1
/*341846*/                OPC_MoveParent,
/*341847*/                OPC_CheckChild2Same, 5,
/*341849*/                OPC_CheckType, MVT::v16f32,
/*341851*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*341853*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*341856*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*341860*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PSZmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 5, 0, 4, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86strict_Fmadd:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, 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)
/*341874*/              /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->341914
/*341877*/                OPC_RecordMemRef,
/*341878*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*341879*/                OPC_CheckFoldableChainNode,
/*341880*/                OPC_RecordChild1, // #3 = $src3
/*341881*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*341883*/                OPC_MoveParent,
/*341884*/                OPC_RecordChild2, // #4 = $src2
/*341885*/                OPC_RecordChild3, // #5 = $src1
/*341886*/                OPC_MoveParent,
/*341887*/                OPC_CheckChild2Same, 5,
/*341889*/                OPC_CheckType, MVT::v16f32,
/*341891*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*341893*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*341896*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*341900*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PSZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 5, 0, 4, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86strict_Fmadd:{ *:[v16f32] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                          // Dst: (VFMADD231PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*341914*/              0, // EndSwitchOpcode
/*341915*/            /*Scope*/ 84, /*->342000*/
/*341916*/              OPC_RecordChild1, // #2 = $src1
/*341917*/              OPC_MoveChild2,
/*341918*/              OPC_SwitchOpcode /*2 cases */, 38, TARGET_VAL(ISD::LOAD),// ->341960
/*341922*/                OPC_RecordMemRef,
/*341923*/                OPC_RecordNode, // #3 = 'ld' chained node
/*341924*/                OPC_CheckFoldableChainNode,
/*341925*/                OPC_RecordChild1, // #4 = $src3
/*341926*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*341928*/                OPC_CheckPredicate, 9, // Predicate_load
/*341930*/                OPC_MoveParent,
/*341931*/                OPC_RecordChild3, // #5 = $src2
/*341932*/                OPC_MoveParent,
/*341933*/                OPC_CheckChild2Same, 2,
/*341935*/                OPC_CheckType, MVT::v16f32,
/*341937*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*341939*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*341942*/                OPC_EmitMergeInputChains, 2, 1, 3, 
/*341946*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PSZmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 2, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86strict_Fmadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16f32] }:$src2), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                          // Dst: (VFMADD132PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*341960*/              /*SwitchOpcode*/ 36, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->341999
/*341963*/                OPC_RecordMemRef,
/*341964*/                OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*341965*/                OPC_CheckFoldableChainNode,
/*341966*/                OPC_RecordChild1, // #4 = $src3
/*341967*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*341969*/                OPC_MoveParent,
/*341970*/                OPC_RecordChild3, // #5 = $src2
/*341971*/                OPC_MoveParent,
/*341972*/                OPC_CheckChild2Same, 2,
/*341974*/                OPC_CheckType, MVT::v16f32,
/*341976*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*341978*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*341981*/                OPC_EmitMergeInputChains, 2, 1, 3, 
/*341985*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PSZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 8/*#Ops*/, 2, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86strict_Fmadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src2), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                          // Dst: (VFMADD132PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*341999*/              0, // EndSwitchOpcode
/*342000*/            0, /*End of Scope*/
/*342001*/          /*SwitchOpcode*/ 103|128,3/*487*/, TARGET_VAL(ISD::FMA),// ->342492
/*342005*/            OPC_Scope, 34|128,1/*162*/, /*->342170*/ // 5 children in Scope
/*342008*/              OPC_RecordChild0, // #1 = $src2
/*342009*/              OPC_Scope, 80, /*->342091*/ // 2 children in Scope
/*342011*/                OPC_RecordChild1, // #2 = $src1
/*342012*/                OPC_MoveChild2,
/*342013*/                OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->342053
/*342017*/                  OPC_RecordMemRef,
/*342018*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*342019*/                  OPC_CheckFoldableChainNode,
/*342020*/                  OPC_RecordChild1, // #4 = $src3
/*342021*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*342023*/                  OPC_CheckPredicate, 9, // Predicate_load
/*342025*/                  OPC_MoveParent,
/*342026*/                  OPC_MoveParent,
/*342027*/                  OPC_CheckChild2Same, 2,
/*342029*/                  OPC_CheckType, MVT::v16f32,
/*342031*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*342033*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*342036*/                  OPC_EmitMergeInputChains, 1, 3, 
/*342039*/                  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>>), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                            // Dst: (VFMADD213PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*342053*/                /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->342090
/*342056*/                  OPC_RecordMemRef,
/*342057*/                  OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*342058*/                  OPC_CheckFoldableChainNode,
/*342059*/                  OPC_RecordChild1, // #4 = $src3
/*342060*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*342062*/                  OPC_MoveParent,
/*342063*/                  OPC_MoveParent,
/*342064*/                  OPC_CheckChild2Same, 2,
/*342066*/                  OPC_CheckType, MVT::v16f32,
/*342068*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*342070*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*342073*/                  OPC_EmitMergeInputChains, 1, 3, 
/*342076*/                  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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                            // Dst: (VFMADD213PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*342090*/                0, // EndSwitchOpcode
/*342091*/              /*Scope*/ 77, /*->342169*/
/*342092*/                OPC_MoveChild1,
/*342093*/                OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->342132
/*342097*/                  OPC_RecordMemRef,
/*342098*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*342099*/                  OPC_CheckFoldableChainNode,
/*342100*/                  OPC_RecordChild1, // #3 = $src3
/*342101*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*342103*/                  OPC_CheckPredicate, 9, // Predicate_load
/*342105*/                  OPC_MoveParent,
/*342106*/                  OPC_RecordChild2, // #4 = $src1
/*342107*/                  OPC_MoveParent,
/*342108*/                  OPC_CheckChild2Same, 4,
/*342110*/                  OPC_CheckType, MVT::v16f32,
/*342112*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*342114*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*342117*/                  OPC_EmitMergeInputChains1_2,
/*342118*/                  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>>, VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                            // Dst: (VFMADD231PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*342132*/                /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->342168
/*342135*/                  OPC_RecordMemRef,
/*342136*/                  OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*342137*/                  OPC_CheckFoldableChainNode,
/*342138*/                  OPC_RecordChild1, // #3 = $src3
/*342139*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*342141*/                  OPC_MoveParent,
/*342142*/                  OPC_RecordChild2, // #4 = $src1
/*342143*/                  OPC_MoveParent,
/*342144*/                  OPC_CheckChild2Same, 4,
/*342146*/                  OPC_CheckType, MVT::v16f32,
/*342148*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*342150*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*342153*/                  OPC_EmitMergeInputChains1_2,
/*342154*/                  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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                            // Dst: (VFMADD231PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*342168*/                0, // EndSwitchOpcode
/*342169*/              0, /*End of Scope*/
/*342170*/            /*Scope*/ 79, /*->342250*/
/*342171*/              OPC_MoveChild0,
/*342172*/              OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->342212
/*342176*/                OPC_RecordMemRef,
/*342177*/                OPC_RecordNode, // #1 = 'ld' chained node
/*342178*/                OPC_CheckFoldableChainNode,
/*342179*/                OPC_RecordChild1, // #2 = $src3
/*342180*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*342182*/                OPC_CheckPredicate, 9, // Predicate_load
/*342184*/                OPC_MoveParent,
/*342185*/                OPC_RecordChild1, // #3 = $src1
/*342186*/                OPC_RecordChild2, // #4 = $src2
/*342187*/                OPC_MoveParent,
/*342188*/                OPC_CheckChild2Same, 3,
/*342190*/                OPC_CheckType, MVT::v16f32,
/*342192*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*342194*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*342197*/                OPC_EmitMergeInputChains1_1,
/*342198*/                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>>, 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)
/*342212*/              /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->342249
/*342215*/                OPC_RecordMemRef,
/*342216*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*342217*/                OPC_CheckFoldableChainNode,
/*342218*/                OPC_RecordChild1, // #2 = $src3
/*342219*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*342221*/                OPC_MoveParent,
/*342222*/                OPC_RecordChild1, // #3 = $src1
/*342223*/                OPC_RecordChild2, // #4 = $src2
/*342224*/                OPC_MoveParent,
/*342225*/                OPC_CheckChild2Same, 3,
/*342227*/                OPC_CheckType, MVT::v16f32,
/*342229*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*342231*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*342234*/                OPC_EmitMergeInputChains1_1,
/*342235*/                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] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                          // Dst: (VFMADD132PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*342249*/              0, // EndSwitchOpcode
/*342250*/            /*Scope*/ 81, /*->342332*/
/*342251*/              OPC_RecordChild0, // #1 = $src1
/*342252*/              OPC_RecordChild1, // #2 = $src2
/*342253*/              OPC_MoveChild2,
/*342254*/              OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->342294
/*342258*/                OPC_RecordMemRef,
/*342259*/                OPC_RecordNode, // #3 = 'ld' chained node
/*342260*/                OPC_CheckFoldableChainNode,
/*342261*/                OPC_RecordChild1, // #4 = $src3
/*342262*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*342264*/                OPC_CheckPredicate, 9, // Predicate_load
/*342266*/                OPC_MoveParent,
/*342267*/                OPC_MoveParent,
/*342268*/                OPC_CheckChild2Same, 1,
/*342270*/                OPC_CheckType, MVT::v16f32,
/*342272*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*342274*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*342277*/                OPC_EmitMergeInputChains, 1, 3, 
/*342280*/                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>>), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                          // Dst: (VFMADD213PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*342294*/              /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->342331
/*342297*/                OPC_RecordMemRef,
/*342298*/                OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*342299*/                OPC_CheckFoldableChainNode,
/*342300*/                OPC_RecordChild1, // #4 = $src3
/*342301*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*342303*/                OPC_MoveParent,
/*342304*/                OPC_MoveParent,
/*342305*/                OPC_CheckChild2Same, 1,
/*342307*/                OPC_CheckType, MVT::v16f32,
/*342309*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*342311*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*342314*/                OPC_EmitMergeInputChains, 1, 3, 
/*342317*/                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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                          // Dst: (VFMADD213PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*342331*/              0, // EndSwitchOpcode
/*342332*/            /*Scope*/ 79, /*->342412*/
/*342333*/              OPC_MoveChild0,
/*342334*/              OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->342374
/*342338*/                OPC_RecordMemRef,
/*342339*/                OPC_RecordNode, // #1 = 'ld' chained node
/*342340*/                OPC_CheckFoldableChainNode,
/*342341*/                OPC_RecordChild1, // #2 = $src3
/*342342*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*342344*/                OPC_CheckPredicate, 9, // Predicate_load
/*342346*/                OPC_MoveParent,
/*342347*/                OPC_RecordChild1, // #3 = $src2
/*342348*/                OPC_RecordChild2, // #4 = $src1
/*342349*/                OPC_MoveParent,
/*342350*/                OPC_CheckChild2Same, 4,
/*342352*/                OPC_CheckType, MVT::v16f32,
/*342354*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*342356*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*342359*/                OPC_EmitMergeInputChains1_1,
/*342360*/                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>>, 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)
/*342374*/              /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->342411
/*342377*/                OPC_RecordMemRef,
/*342378*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*342379*/                OPC_CheckFoldableChainNode,
/*342380*/                OPC_RecordChild1, // #2 = $src3
/*342381*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*342383*/                OPC_MoveParent,
/*342384*/                OPC_RecordChild1, // #3 = $src2
/*342385*/                OPC_RecordChild2, // #4 = $src1
/*342386*/                OPC_MoveParent,
/*342387*/                OPC_CheckChild2Same, 4,
/*342389*/                OPC_CheckType, MVT::v16f32,
/*342391*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*342393*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*342396*/                OPC_EmitMergeInputChains1_1,
/*342397*/                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] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                          // Dst: (VFMADD231PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*342411*/              0, // EndSwitchOpcode
/*342412*/            /*Scope*/ 78, /*->342491*/
/*342413*/              OPC_RecordChild0, // #1 = $src1
/*342414*/              OPC_MoveChild1,
/*342415*/              OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->342454
/*342419*/                OPC_RecordMemRef,
/*342420*/                OPC_RecordNode, // #2 = 'ld' chained node
/*342421*/                OPC_CheckFoldableChainNode,
/*342422*/                OPC_RecordChild1, // #3 = $src3
/*342423*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*342425*/                OPC_CheckPredicate, 9, // Predicate_load
/*342427*/                OPC_MoveParent,
/*342428*/                OPC_RecordChild2, // #4 = $src2
/*342429*/                OPC_MoveParent,
/*342430*/                OPC_CheckChild2Same, 1,
/*342432*/                OPC_CheckType, MVT::v16f32,
/*342434*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*342436*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*342439*/                OPC_EmitMergeInputChains1_2,
/*342440*/                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>>, VR512:{ *:[v16f32] }:$src2), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                          // Dst: (VFMADD132PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*342454*/              /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->342490
/*342457*/                OPC_RecordMemRef,
/*342458*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*342459*/                OPC_CheckFoldableChainNode,
/*342460*/                OPC_RecordChild1, // #3 = $src3
/*342461*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*342463*/                OPC_MoveParent,
/*342464*/                OPC_RecordChild2, // #4 = $src2
/*342465*/                OPC_MoveParent,
/*342466*/                OPC_CheckChild2Same, 1,
/*342468*/                OPC_CheckType, MVT::v16f32,
/*342470*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*342472*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*342475*/                OPC_EmitMergeInputChains1_2,
/*342476*/                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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src2), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                          // Dst: (VFMADD132PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*342490*/              0, // EndSwitchOpcode
/*342491*/            0, /*End of Scope*/
/*342492*/          /*SwitchOpcode*/ 103|128,3/*487*/, TARGET_VAL(X86ISD::FMSUB),// ->342983
/*342496*/            OPC_Scope, 34|128,1/*162*/, /*->342661*/ // 5 children in Scope
/*342499*/              OPC_RecordChild0, // #1 = $src2
/*342500*/              OPC_Scope, 80, /*->342582*/ // 2 children in Scope
/*342502*/                OPC_RecordChild1, // #2 = $src1
/*342503*/                OPC_MoveChild2,
/*342504*/                OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->342544
/*342508*/                  OPC_RecordMemRef,
/*342509*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*342510*/                  OPC_CheckFoldableChainNode,
/*342511*/                  OPC_RecordChild1, // #4 = $src3
/*342512*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*342514*/                  OPC_CheckPredicate, 9, // Predicate_load
/*342516*/                  OPC_MoveParent,
/*342517*/                  OPC_MoveParent,
/*342518*/                  OPC_CheckChild2Same, 2,
/*342520*/                  OPC_CheckType, MVT::v16f32,
/*342522*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*342524*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*342527*/                  OPC_EmitMergeInputChains, 1, 3, 
/*342530*/                  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>>), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                            // Dst: (VFMSUB213PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*342544*/                /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->342581
/*342547*/                  OPC_RecordMemRef,
/*342548*/                  OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*342549*/                  OPC_CheckFoldableChainNode,
/*342550*/                  OPC_RecordChild1, // #4 = $src3
/*342551*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*342553*/                  OPC_MoveParent,
/*342554*/                  OPC_MoveParent,
/*342555*/                  OPC_CheckChild2Same, 2,
/*342557*/                  OPC_CheckType, MVT::v16f32,
/*342559*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*342561*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*342564*/                  OPC_EmitMergeInputChains, 1, 3, 
/*342567*/                  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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                            // Dst: (VFMSUB213PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*342581*/                0, // EndSwitchOpcode
/*342582*/              /*Scope*/ 77, /*->342660*/
/*342583*/                OPC_MoveChild1,
/*342584*/                OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->342623
/*342588*/                  OPC_RecordMemRef,
/*342589*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*342590*/                  OPC_CheckFoldableChainNode,
/*342591*/                  OPC_RecordChild1, // #3 = $src3
/*342592*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*342594*/                  OPC_CheckPredicate, 9, // Predicate_load
/*342596*/                  OPC_MoveParent,
/*342597*/                  OPC_RecordChild2, // #4 = $src1
/*342598*/                  OPC_MoveParent,
/*342599*/                  OPC_CheckChild2Same, 4,
/*342601*/                  OPC_CheckType, MVT::v16f32,
/*342603*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*342605*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*342608*/                  OPC_EmitMergeInputChains1_2,
/*342609*/                  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>>, VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                            // Dst: (VFMSUB231PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*342623*/                /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->342659
/*342626*/                  OPC_RecordMemRef,
/*342627*/                  OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*342628*/                  OPC_CheckFoldableChainNode,
/*342629*/                  OPC_RecordChild1, // #3 = $src3
/*342630*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*342632*/                  OPC_MoveParent,
/*342633*/                  OPC_RecordChild2, // #4 = $src1
/*342634*/                  OPC_MoveParent,
/*342635*/                  OPC_CheckChild2Same, 4,
/*342637*/                  OPC_CheckType, MVT::v16f32,
/*342639*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*342641*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*342644*/                  OPC_EmitMergeInputChains1_2,
/*342645*/                  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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                            // Dst: (VFMSUB231PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*342659*/                0, // EndSwitchOpcode
/*342660*/              0, /*End of Scope*/
/*342661*/            /*Scope*/ 79, /*->342741*/
/*342662*/              OPC_MoveChild0,
/*342663*/              OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->342703
/*342667*/                OPC_RecordMemRef,
/*342668*/                OPC_RecordNode, // #1 = 'ld' chained node
/*342669*/                OPC_CheckFoldableChainNode,
/*342670*/                OPC_RecordChild1, // #2 = $src3
/*342671*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*342673*/                OPC_CheckPredicate, 9, // Predicate_load
/*342675*/                OPC_MoveParent,
/*342676*/                OPC_RecordChild1, // #3 = $src1
/*342677*/                OPC_RecordChild2, // #4 = $src2
/*342678*/                OPC_MoveParent,
/*342679*/                OPC_CheckChild2Same, 3,
/*342681*/                OPC_CheckType, MVT::v16f32,
/*342683*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*342685*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*342688*/                OPC_EmitMergeInputChains1_1,
/*342689*/                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>>, 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)
/*342703*/              /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->342740
/*342706*/                OPC_RecordMemRef,
/*342707*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*342708*/                OPC_CheckFoldableChainNode,
/*342709*/                OPC_RecordChild1, // #2 = $src3
/*342710*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*342712*/                OPC_MoveParent,
/*342713*/                OPC_RecordChild1, // #3 = $src1
/*342714*/                OPC_RecordChild2, // #4 = $src2
/*342715*/                OPC_MoveParent,
/*342716*/                OPC_CheckChild2Same, 3,
/*342718*/                OPC_CheckType, MVT::v16f32,
/*342720*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*342722*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*342725*/                OPC_EmitMergeInputChains1_1,
/*342726*/                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] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                          // Dst: (VFMSUB132PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*342740*/              0, // EndSwitchOpcode
/*342741*/            /*Scope*/ 81, /*->342823*/
/*342742*/              OPC_RecordChild0, // #1 = $src1
/*342743*/              OPC_RecordChild1, // #2 = $src2
/*342744*/              OPC_MoveChild2,
/*342745*/              OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->342785
/*342749*/                OPC_RecordMemRef,
/*342750*/                OPC_RecordNode, // #3 = 'ld' chained node
/*342751*/                OPC_CheckFoldableChainNode,
/*342752*/                OPC_RecordChild1, // #4 = $src3
/*342753*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*342755*/                OPC_CheckPredicate, 9, // Predicate_load
/*342757*/                OPC_MoveParent,
/*342758*/                OPC_MoveParent,
/*342759*/                OPC_CheckChild2Same, 1,
/*342761*/                OPC_CheckType, MVT::v16f32,
/*342763*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*342765*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*342768*/                OPC_EmitMergeInputChains, 1, 3, 
/*342771*/                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>>), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                          // Dst: (VFMSUB213PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*342785*/              /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->342822
/*342788*/                OPC_RecordMemRef,
/*342789*/                OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*342790*/                OPC_CheckFoldableChainNode,
/*342791*/                OPC_RecordChild1, // #4 = $src3
/*342792*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*342794*/                OPC_MoveParent,
/*342795*/                OPC_MoveParent,
/*342796*/                OPC_CheckChild2Same, 1,
/*342798*/                OPC_CheckType, MVT::v16f32,
/*342800*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*342802*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*342805*/                OPC_EmitMergeInputChains, 1, 3, 
/*342808*/                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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                          // Dst: (VFMSUB213PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*342822*/              0, // EndSwitchOpcode
/*342823*/            /*Scope*/ 79, /*->342903*/
/*342824*/              OPC_MoveChild0,
/*342825*/              OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->342865
/*342829*/                OPC_RecordMemRef,
/*342830*/                OPC_RecordNode, // #1 = 'ld' chained node
/*342831*/                OPC_CheckFoldableChainNode,
/*342832*/                OPC_RecordChild1, // #2 = $src3
/*342833*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*342835*/                OPC_CheckPredicate, 9, // Predicate_load
/*342837*/                OPC_MoveParent,
/*342838*/                OPC_RecordChild1, // #3 = $src2
/*342839*/                OPC_RecordChild2, // #4 = $src1
/*342840*/                OPC_MoveParent,
/*342841*/                OPC_CheckChild2Same, 4,
/*342843*/                OPC_CheckType, MVT::v16f32,
/*342845*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*342847*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*342850*/                OPC_EmitMergeInputChains1_1,
/*342851*/                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>>, 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)
/*342865*/              /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->342902
/*342868*/                OPC_RecordMemRef,
/*342869*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*342870*/                OPC_CheckFoldableChainNode,
/*342871*/                OPC_RecordChild1, // #2 = $src3
/*342872*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*342874*/                OPC_MoveParent,
/*342875*/                OPC_RecordChild1, // #3 = $src2
/*342876*/                OPC_RecordChild2, // #4 = $src1
/*342877*/                OPC_MoveParent,
/*342878*/                OPC_CheckChild2Same, 4,
/*342880*/                OPC_CheckType, MVT::v16f32,
/*342882*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*342884*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*342887*/                OPC_EmitMergeInputChains1_1,
/*342888*/                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] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                          // Dst: (VFMSUB231PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*342902*/              0, // EndSwitchOpcode
/*342903*/            /*Scope*/ 78, /*->342982*/
/*342904*/              OPC_RecordChild0, // #1 = $src1
/*342905*/              OPC_MoveChild1,
/*342906*/              OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->342945
/*342910*/                OPC_RecordMemRef,
/*342911*/                OPC_RecordNode, // #2 = 'ld' chained node
/*342912*/                OPC_CheckFoldableChainNode,
/*342913*/                OPC_RecordChild1, // #3 = $src3
/*342914*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*342916*/                OPC_CheckPredicate, 9, // Predicate_load
/*342918*/                OPC_MoveParent,
/*342919*/                OPC_RecordChild2, // #4 = $src2
/*342920*/                OPC_MoveParent,
/*342921*/                OPC_CheckChild2Same, 1,
/*342923*/                OPC_CheckType, MVT::v16f32,
/*342925*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*342927*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*342930*/                OPC_EmitMergeInputChains1_2,
/*342931*/                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>>, VR512:{ *:[v16f32] }:$src2), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                          // Dst: (VFMSUB132PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*342945*/              /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->342981
/*342948*/                OPC_RecordMemRef,
/*342949*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*342950*/                OPC_CheckFoldableChainNode,
/*342951*/                OPC_RecordChild1, // #3 = $src3
/*342952*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*342954*/                OPC_MoveParent,
/*342955*/                OPC_RecordChild2, // #4 = $src2
/*342956*/                OPC_MoveParent,
/*342957*/                OPC_CheckChild2Same, 1,
/*342959*/                OPC_CheckType, MVT::v16f32,
/*342961*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*342963*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*342966*/                OPC_EmitMergeInputChains1_2,
/*342967*/                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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src2), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                          // Dst: (VFMSUB132PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*342981*/              0, // EndSwitchOpcode
/*342982*/            0, /*End of Scope*/
/*342983*/          /*SwitchOpcode*/ 103|128,3/*487*/, TARGET_VAL(X86ISD::FMADDSUB),// ->343474
/*342987*/            OPC_Scope, 34|128,1/*162*/, /*->343152*/ // 5 children in Scope
/*342990*/              OPC_RecordChild0, // #1 = $src2
/*342991*/              OPC_Scope, 80, /*->343073*/ // 2 children in Scope
/*342993*/                OPC_RecordChild1, // #2 = $src1
/*342994*/                OPC_MoveChild2,
/*342995*/                OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->343035
/*342999*/                  OPC_RecordMemRef,
/*343000*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*343001*/                  OPC_CheckFoldableChainNode,
/*343002*/                  OPC_RecordChild1, // #4 = $src3
/*343003*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*343005*/                  OPC_CheckPredicate, 9, // Predicate_load
/*343007*/                  OPC_MoveParent,
/*343008*/                  OPC_MoveParent,
/*343009*/                  OPC_CheckChild2Same, 2,
/*343011*/                  OPC_CheckType, MVT::v16f32,
/*343013*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*343015*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*343018*/                  OPC_EmitMergeInputChains, 1, 3, 
/*343021*/                  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>>), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                            // Dst: (VFMADDSUB213PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*343035*/                /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->343072
/*343038*/                  OPC_RecordMemRef,
/*343039*/                  OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*343040*/                  OPC_CheckFoldableChainNode,
/*343041*/                  OPC_RecordChild1, // #4 = $src3
/*343042*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*343044*/                  OPC_MoveParent,
/*343045*/                  OPC_MoveParent,
/*343046*/                  OPC_CheckChild2Same, 2,
/*343048*/                  OPC_CheckType, MVT::v16f32,
/*343050*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*343052*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*343055*/                  OPC_EmitMergeInputChains, 1, 3, 
/*343058*/                  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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                            // Dst: (VFMADDSUB213PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*343072*/                0, // EndSwitchOpcode
/*343073*/              /*Scope*/ 77, /*->343151*/
/*343074*/                OPC_MoveChild1,
/*343075*/                OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->343114
/*343079*/                  OPC_RecordMemRef,
/*343080*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*343081*/                  OPC_CheckFoldableChainNode,
/*343082*/                  OPC_RecordChild1, // #3 = $src3
/*343083*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*343085*/                  OPC_CheckPredicate, 9, // Predicate_load
/*343087*/                  OPC_MoveParent,
/*343088*/                  OPC_RecordChild2, // #4 = $src1
/*343089*/                  OPC_MoveParent,
/*343090*/                  OPC_CheckChild2Same, 4,
/*343092*/                  OPC_CheckType, MVT::v16f32,
/*343094*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*343096*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*343099*/                  OPC_EmitMergeInputChains1_2,
/*343100*/                  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>>, VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                            // Dst: (VFMADDSUB231PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*343114*/                /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->343150
/*343117*/                  OPC_RecordMemRef,
/*343118*/                  OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*343119*/                  OPC_CheckFoldableChainNode,
/*343120*/                  OPC_RecordChild1, // #3 = $src3
/*343121*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*343123*/                  OPC_MoveParent,
/*343124*/                  OPC_RecordChild2, // #4 = $src1
/*343125*/                  OPC_MoveParent,
/*343126*/                  OPC_CheckChild2Same, 4,
/*343128*/                  OPC_CheckType, MVT::v16f32,
/*343130*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*343132*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*343135*/                  OPC_EmitMergeInputChains1_2,
/*343136*/                  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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                            // Dst: (VFMADDSUB231PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*343150*/                0, // EndSwitchOpcode
/*343151*/              0, /*End of Scope*/
/*343152*/            /*Scope*/ 79, /*->343232*/
/*343153*/              OPC_MoveChild0,
/*343154*/              OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->343194
/*343158*/                OPC_RecordMemRef,
/*343159*/                OPC_RecordNode, // #1 = 'ld' chained node
/*343160*/                OPC_CheckFoldableChainNode,
/*343161*/                OPC_RecordChild1, // #2 = $src3
/*343162*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*343164*/                OPC_CheckPredicate, 9, // Predicate_load
/*343166*/                OPC_MoveParent,
/*343167*/                OPC_RecordChild1, // #3 = $src1
/*343168*/                OPC_RecordChild2, // #4 = $src2
/*343169*/                OPC_MoveParent,
/*343170*/                OPC_CheckChild2Same, 3,
/*343172*/                OPC_CheckType, MVT::v16f32,
/*343174*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*343176*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*343179*/                OPC_EmitMergeInputChains1_1,
/*343180*/                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>>, 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)
/*343194*/              /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->343231
/*343197*/                OPC_RecordMemRef,
/*343198*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*343199*/                OPC_CheckFoldableChainNode,
/*343200*/                OPC_RecordChild1, // #2 = $src3
/*343201*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*343203*/                OPC_MoveParent,
/*343204*/                OPC_RecordChild1, // #3 = $src1
/*343205*/                OPC_RecordChild2, // #4 = $src2
/*343206*/                OPC_MoveParent,
/*343207*/                OPC_CheckChild2Same, 3,
/*343209*/                OPC_CheckType, MVT::v16f32,
/*343211*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*343213*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*343216*/                OPC_EmitMergeInputChains1_1,
/*343217*/                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] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                          // Dst: (VFMADDSUB132PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*343231*/              0, // EndSwitchOpcode
/*343232*/            /*Scope*/ 81, /*->343314*/
/*343233*/              OPC_RecordChild0, // #1 = $src1
/*343234*/              OPC_RecordChild1, // #2 = $src2
/*343235*/              OPC_MoveChild2,
/*343236*/              OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->343276
/*343240*/                OPC_RecordMemRef,
/*343241*/                OPC_RecordNode, // #3 = 'ld' chained node
/*343242*/                OPC_CheckFoldableChainNode,
/*343243*/                OPC_RecordChild1, // #4 = $src3
/*343244*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*343246*/                OPC_CheckPredicate, 9, // Predicate_load
/*343248*/                OPC_MoveParent,
/*343249*/                OPC_MoveParent,
/*343250*/                OPC_CheckChild2Same, 1,
/*343252*/                OPC_CheckType, MVT::v16f32,
/*343254*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*343256*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*343259*/                OPC_EmitMergeInputChains, 1, 3, 
/*343262*/                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>>), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                          // Dst: (VFMADDSUB213PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*343276*/              /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->343313
/*343279*/                OPC_RecordMemRef,
/*343280*/                OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*343281*/                OPC_CheckFoldableChainNode,
/*343282*/                OPC_RecordChild1, // #4 = $src3
/*343283*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*343285*/                OPC_MoveParent,
/*343286*/                OPC_MoveParent,
/*343287*/                OPC_CheckChild2Same, 1,
/*343289*/                OPC_CheckType, MVT::v16f32,
/*343291*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*343293*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*343296*/                OPC_EmitMergeInputChains, 1, 3, 
/*343299*/                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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                          // Dst: (VFMADDSUB213PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*343313*/              0, // EndSwitchOpcode
/*343314*/            /*Scope*/ 79, /*->343394*/
/*343315*/              OPC_MoveChild0,
/*343316*/              OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->343356
/*343320*/                OPC_RecordMemRef,
/*343321*/                OPC_RecordNode, // #1 = 'ld' chained node
/*343322*/                OPC_CheckFoldableChainNode,
/*343323*/                OPC_RecordChild1, // #2 = $src3
/*343324*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*343326*/                OPC_CheckPredicate, 9, // Predicate_load
/*343328*/                OPC_MoveParent,
/*343329*/                OPC_RecordChild1, // #3 = $src2
/*343330*/                OPC_RecordChild2, // #4 = $src1
/*343331*/                OPC_MoveParent,
/*343332*/                OPC_CheckChild2Same, 4,
/*343334*/                OPC_CheckType, MVT::v16f32,
/*343336*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*343338*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*343341*/                OPC_EmitMergeInputChains1_1,
/*343342*/                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>>, 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)
/*343356*/              /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->343393
/*343359*/                OPC_RecordMemRef,
/*343360*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*343361*/                OPC_CheckFoldableChainNode,
/*343362*/                OPC_RecordChild1, // #2 = $src3
/*343363*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*343365*/                OPC_MoveParent,
/*343366*/                OPC_RecordChild1, // #3 = $src2
/*343367*/                OPC_RecordChild2, // #4 = $src1
/*343368*/                OPC_MoveParent,
/*343369*/                OPC_CheckChild2Same, 4,
/*343371*/                OPC_CheckType, MVT::v16f32,
/*343373*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*343375*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*343378*/                OPC_EmitMergeInputChains1_1,
/*343379*/                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] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                          // Dst: (VFMADDSUB231PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*343393*/              0, // EndSwitchOpcode
/*343394*/            /*Scope*/ 78, /*->343473*/
/*343395*/              OPC_RecordChild0, // #1 = $src1
/*343396*/              OPC_MoveChild1,
/*343397*/              OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->343436
/*343401*/                OPC_RecordMemRef,
/*343402*/                OPC_RecordNode, // #2 = 'ld' chained node
/*343403*/                OPC_CheckFoldableChainNode,
/*343404*/                OPC_RecordChild1, // #3 = $src3
/*343405*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*343407*/                OPC_CheckPredicate, 9, // Predicate_load
/*343409*/                OPC_MoveParent,
/*343410*/                OPC_RecordChild2, // #4 = $src2
/*343411*/                OPC_MoveParent,
/*343412*/                OPC_CheckChild2Same, 1,
/*343414*/                OPC_CheckType, MVT::v16f32,
/*343416*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*343418*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*343421*/                OPC_EmitMergeInputChains1_2,
/*343422*/                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>>, VR512:{ *:[v16f32] }:$src2), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                          // Dst: (VFMADDSUB132PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*343436*/              /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->343472
/*343439*/                OPC_RecordMemRef,
/*343440*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*343441*/                OPC_CheckFoldableChainNode,
/*343442*/                OPC_RecordChild1, // #3 = $src3
/*343443*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*343445*/                OPC_MoveParent,
/*343446*/                OPC_RecordChild2, // #4 = $src2
/*343447*/                OPC_MoveParent,
/*343448*/                OPC_CheckChild2Same, 1,
/*343450*/                OPC_CheckType, MVT::v16f32,
/*343452*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*343454*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*343457*/                OPC_EmitMergeInputChains1_2,
/*343458*/                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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src2), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                          // Dst: (VFMADDSUB132PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*343472*/              0, // EndSwitchOpcode
/*343473*/            0, /*End of Scope*/
/*343474*/          /*SwitchOpcode*/ 103|128,3/*487*/, TARGET_VAL(X86ISD::FMSUBADD),// ->343965
/*343478*/            OPC_Scope, 34|128,1/*162*/, /*->343643*/ // 5 children in Scope
/*343481*/              OPC_RecordChild0, // #1 = $src2
/*343482*/              OPC_Scope, 80, /*->343564*/ // 2 children in Scope
/*343484*/                OPC_RecordChild1, // #2 = $src1
/*343485*/                OPC_MoveChild2,
/*343486*/                OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->343526
/*343490*/                  OPC_RecordMemRef,
/*343491*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*343492*/                  OPC_CheckFoldableChainNode,
/*343493*/                  OPC_RecordChild1, // #4 = $src3
/*343494*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*343496*/                  OPC_CheckPredicate, 9, // Predicate_load
/*343498*/                  OPC_MoveParent,
/*343499*/                  OPC_MoveParent,
/*343500*/                  OPC_CheckChild2Same, 2,
/*343502*/                  OPC_CheckType, MVT::v16f32,
/*343504*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*343506*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*343509*/                  OPC_EmitMergeInputChains, 1, 3, 
/*343512*/                  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>>), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                            // Dst: (VFMSUBADD213PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*343526*/                /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->343563
/*343529*/                  OPC_RecordMemRef,
/*343530*/                  OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*343531*/                  OPC_CheckFoldableChainNode,
/*343532*/                  OPC_RecordChild1, // #4 = $src3
/*343533*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*343535*/                  OPC_MoveParent,
/*343536*/                  OPC_MoveParent,
/*343537*/                  OPC_CheckChild2Same, 2,
/*343539*/                  OPC_CheckType, MVT::v16f32,
/*343541*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*343543*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*343546*/                  OPC_EmitMergeInputChains, 1, 3, 
/*343549*/                  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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                            // Dst: (VFMSUBADD213PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*343563*/                0, // EndSwitchOpcode
/*343564*/              /*Scope*/ 77, /*->343642*/
/*343565*/                OPC_MoveChild1,
/*343566*/                OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->343605
/*343570*/                  OPC_RecordMemRef,
/*343571*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*343572*/                  OPC_CheckFoldableChainNode,
/*343573*/                  OPC_RecordChild1, // #3 = $src3
/*343574*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*343576*/                  OPC_CheckPredicate, 9, // Predicate_load
/*343578*/                  OPC_MoveParent,
/*343579*/                  OPC_RecordChild2, // #4 = $src1
/*343580*/                  OPC_MoveParent,
/*343581*/                  OPC_CheckChild2Same, 4,
/*343583*/                  OPC_CheckType, MVT::v16f32,
/*343585*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*343587*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*343590*/                  OPC_EmitMergeInputChains1_2,
/*343591*/                  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>>, VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                            // Dst: (VFMSUBADD231PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*343605*/                /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->343641
/*343608*/                  OPC_RecordMemRef,
/*343609*/                  OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*343610*/                  OPC_CheckFoldableChainNode,
/*343611*/                  OPC_RecordChild1, // #3 = $src3
/*343612*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*343614*/                  OPC_MoveParent,
/*343615*/                  OPC_RecordChild2, // #4 = $src1
/*343616*/                  OPC_MoveParent,
/*343617*/                  OPC_CheckChild2Same, 4,
/*343619*/                  OPC_CheckType, MVT::v16f32,
/*343621*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*343623*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*343626*/                  OPC_EmitMergeInputChains1_2,
/*343627*/                  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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                            // Dst: (VFMSUBADD231PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*343641*/                0, // EndSwitchOpcode
/*343642*/              0, /*End of Scope*/
/*343643*/            /*Scope*/ 79, /*->343723*/
/*343644*/              OPC_MoveChild0,
/*343645*/              OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->343685
/*343649*/                OPC_RecordMemRef,
/*343650*/                OPC_RecordNode, // #1 = 'ld' chained node
/*343651*/                OPC_CheckFoldableChainNode,
/*343652*/                OPC_RecordChild1, // #2 = $src3
/*343653*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*343655*/                OPC_CheckPredicate, 9, // Predicate_load
/*343657*/                OPC_MoveParent,
/*343658*/                OPC_RecordChild1, // #3 = $src1
/*343659*/                OPC_RecordChild2, // #4 = $src2
/*343660*/                OPC_MoveParent,
/*343661*/                OPC_CheckChild2Same, 3,
/*343663*/                OPC_CheckType, MVT::v16f32,
/*343665*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*343667*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*343670*/                OPC_EmitMergeInputChains1_1,
/*343671*/                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>>, 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)
/*343685*/              /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->343722
/*343688*/                OPC_RecordMemRef,
/*343689*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*343690*/                OPC_CheckFoldableChainNode,
/*343691*/                OPC_RecordChild1, // #2 = $src3
/*343692*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*343694*/                OPC_MoveParent,
/*343695*/                OPC_RecordChild1, // #3 = $src1
/*343696*/                OPC_RecordChild2, // #4 = $src2
/*343697*/                OPC_MoveParent,
/*343698*/                OPC_CheckChild2Same, 3,
/*343700*/                OPC_CheckType, MVT::v16f32,
/*343702*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*343704*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*343707*/                OPC_EmitMergeInputChains1_1,
/*343708*/                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] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                          // Dst: (VFMSUBADD132PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*343722*/              0, // EndSwitchOpcode
/*343723*/            /*Scope*/ 81, /*->343805*/
/*343724*/              OPC_RecordChild0, // #1 = $src1
/*343725*/              OPC_RecordChild1, // #2 = $src2
/*343726*/              OPC_MoveChild2,
/*343727*/              OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->343767
/*343731*/                OPC_RecordMemRef,
/*343732*/                OPC_RecordNode, // #3 = 'ld' chained node
/*343733*/                OPC_CheckFoldableChainNode,
/*343734*/                OPC_RecordChild1, // #4 = $src3
/*343735*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*343737*/                OPC_CheckPredicate, 9, // Predicate_load
/*343739*/                OPC_MoveParent,
/*343740*/                OPC_MoveParent,
/*343741*/                OPC_CheckChild2Same, 1,
/*343743*/                OPC_CheckType, MVT::v16f32,
/*343745*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*343747*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*343750*/                OPC_EmitMergeInputChains, 1, 3, 
/*343753*/                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>>), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                          // Dst: (VFMSUBADD213PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*343767*/              /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->343804
/*343770*/                OPC_RecordMemRef,
/*343771*/                OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*343772*/                OPC_CheckFoldableChainNode,
/*343773*/                OPC_RecordChild1, // #4 = $src3
/*343774*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*343776*/                OPC_MoveParent,
/*343777*/                OPC_MoveParent,
/*343778*/                OPC_CheckChild2Same, 1,
/*343780*/                OPC_CheckType, MVT::v16f32,
/*343782*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*343784*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*343787*/                OPC_EmitMergeInputChains, 1, 3, 
/*343790*/                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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                          // Dst: (VFMSUBADD213PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*343804*/              0, // EndSwitchOpcode
/*343805*/            /*Scope*/ 79, /*->343885*/
/*343806*/              OPC_MoveChild0,
/*343807*/              OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->343847
/*343811*/                OPC_RecordMemRef,
/*343812*/                OPC_RecordNode, // #1 = 'ld' chained node
/*343813*/                OPC_CheckFoldableChainNode,
/*343814*/                OPC_RecordChild1, // #2 = $src3
/*343815*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*343817*/                OPC_CheckPredicate, 9, // Predicate_load
/*343819*/                OPC_MoveParent,
/*343820*/                OPC_RecordChild1, // #3 = $src2
/*343821*/                OPC_RecordChild2, // #4 = $src1
/*343822*/                OPC_MoveParent,
/*343823*/                OPC_CheckChild2Same, 4,
/*343825*/                OPC_CheckType, MVT::v16f32,
/*343827*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*343829*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*343832*/                OPC_EmitMergeInputChains1_1,
/*343833*/                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>>, 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)
/*343847*/              /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->343884
/*343850*/                OPC_RecordMemRef,
/*343851*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*343852*/                OPC_CheckFoldableChainNode,
/*343853*/                OPC_RecordChild1, // #2 = $src3
/*343854*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*343856*/                OPC_MoveParent,
/*343857*/                OPC_RecordChild1, // #3 = $src2
/*343858*/                OPC_RecordChild2, // #4 = $src1
/*343859*/                OPC_MoveParent,
/*343860*/                OPC_CheckChild2Same, 4,
/*343862*/                OPC_CheckType, MVT::v16f32,
/*343864*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*343866*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*343869*/                OPC_EmitMergeInputChains1_1,
/*343870*/                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] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                          // Dst: (VFMSUBADD231PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*343884*/              0, // EndSwitchOpcode
/*343885*/            /*Scope*/ 78, /*->343964*/
/*343886*/              OPC_RecordChild0, // #1 = $src1
/*343887*/              OPC_MoveChild1,
/*343888*/              OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->343927
/*343892*/                OPC_RecordMemRef,
/*343893*/                OPC_RecordNode, // #2 = 'ld' chained node
/*343894*/                OPC_CheckFoldableChainNode,
/*343895*/                OPC_RecordChild1, // #3 = $src3
/*343896*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*343898*/                OPC_CheckPredicate, 9, // Predicate_load
/*343900*/                OPC_MoveParent,
/*343901*/                OPC_RecordChild2, // #4 = $src2
/*343902*/                OPC_MoveParent,
/*343903*/                OPC_CheckChild2Same, 1,
/*343905*/                OPC_CheckType, MVT::v16f32,
/*343907*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*343909*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*343912*/                OPC_EmitMergeInputChains1_2,
/*343913*/                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>>, VR512:{ *:[v16f32] }:$src2), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                          // Dst: (VFMSUBADD132PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*343927*/              /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->343963
/*343930*/                OPC_RecordMemRef,
/*343931*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*343932*/                OPC_CheckFoldableChainNode,
/*343933*/                OPC_RecordChild1, // #3 = $src3
/*343934*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*343936*/                OPC_MoveParent,
/*343937*/                OPC_RecordChild2, // #4 = $src2
/*343938*/                OPC_MoveParent,
/*343939*/                OPC_CheckChild2Same, 1,
/*343941*/                OPC_CheckType, MVT::v16f32,
/*343943*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*343945*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*343948*/                OPC_EmitMergeInputChains1_2,
/*343949*/                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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src2), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                          // Dst: (VFMSUBADD132PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*343963*/              0, // EndSwitchOpcode
/*343964*/            0, /*End of Scope*/
/*343965*/          /*SwitchOpcode*/ 103|128,3/*487*/, TARGET_VAL(X86ISD::FNMADD),// ->344456
/*343969*/            OPC_Scope, 34|128,1/*162*/, /*->344134*/ // 5 children in Scope
/*343972*/              OPC_RecordChild0, // #1 = $src2
/*343973*/              OPC_Scope, 80, /*->344055*/ // 2 children in Scope
/*343975*/                OPC_RecordChild1, // #2 = $src1
/*343976*/                OPC_MoveChild2,
/*343977*/                OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->344017
/*343981*/                  OPC_RecordMemRef,
/*343982*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*343983*/                  OPC_CheckFoldableChainNode,
/*343984*/                  OPC_RecordChild1, // #4 = $src3
/*343985*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*343987*/                  OPC_CheckPredicate, 9, // Predicate_load
/*343989*/                  OPC_MoveParent,
/*343990*/                  OPC_MoveParent,
/*343991*/                  OPC_CheckChild2Same, 2,
/*343993*/                  OPC_CheckType, MVT::v16f32,
/*343995*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*343997*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*344000*/                  OPC_EmitMergeInputChains, 1, 3, 
/*344003*/                  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>>), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                            // Dst: (VFNMADD213PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*344017*/                /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->344054
/*344020*/                  OPC_RecordMemRef,
/*344021*/                  OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*344022*/                  OPC_CheckFoldableChainNode,
/*344023*/                  OPC_RecordChild1, // #4 = $src3
/*344024*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*344026*/                  OPC_MoveParent,
/*344027*/                  OPC_MoveParent,
/*344028*/                  OPC_CheckChild2Same, 2,
/*344030*/                  OPC_CheckType, MVT::v16f32,
/*344032*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*344034*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*344037*/                  OPC_EmitMergeInputChains, 1, 3, 
/*344040*/                  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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                            // Dst: (VFNMADD213PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*344054*/                0, // EndSwitchOpcode
/*344055*/              /*Scope*/ 77, /*->344133*/
/*344056*/                OPC_MoveChild1,
/*344057*/                OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->344096
/*344061*/                  OPC_RecordMemRef,
/*344062*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*344063*/                  OPC_CheckFoldableChainNode,
/*344064*/                  OPC_RecordChild1, // #3 = $src3
/*344065*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*344067*/                  OPC_CheckPredicate, 9, // Predicate_load
/*344069*/                  OPC_MoveParent,
/*344070*/                  OPC_RecordChild2, // #4 = $src1
/*344071*/                  OPC_MoveParent,
/*344072*/                  OPC_CheckChild2Same, 4,
/*344074*/                  OPC_CheckType, MVT::v16f32,
/*344076*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*344078*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*344081*/                  OPC_EmitMergeInputChains1_2,
/*344082*/                  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>>, VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                            // Dst: (VFNMADD231PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*344096*/                /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->344132
/*344099*/                  OPC_RecordMemRef,
/*344100*/                  OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*344101*/                  OPC_CheckFoldableChainNode,
/*344102*/                  OPC_RecordChild1, // #3 = $src3
/*344103*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*344105*/                  OPC_MoveParent,
/*344106*/                  OPC_RecordChild2, // #4 = $src1
/*344107*/                  OPC_MoveParent,
/*344108*/                  OPC_CheckChild2Same, 4,
/*344110*/                  OPC_CheckType, MVT::v16f32,
/*344112*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*344114*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*344117*/                  OPC_EmitMergeInputChains1_2,
/*344118*/                  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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                            // Dst: (VFNMADD231PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*344132*/                0, // EndSwitchOpcode
/*344133*/              0, /*End of Scope*/
/*344134*/            /*Scope*/ 79, /*->344214*/
/*344135*/              OPC_MoveChild0,
/*344136*/              OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->344176
/*344140*/                OPC_RecordMemRef,
/*344141*/                OPC_RecordNode, // #1 = 'ld' chained node
/*344142*/                OPC_CheckFoldableChainNode,
/*344143*/                OPC_RecordChild1, // #2 = $src3
/*344144*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*344146*/                OPC_CheckPredicate, 9, // Predicate_load
/*344148*/                OPC_MoveParent,
/*344149*/                OPC_RecordChild1, // #3 = $src1
/*344150*/                OPC_RecordChild2, // #4 = $src2
/*344151*/                OPC_MoveParent,
/*344152*/                OPC_CheckChild2Same, 3,
/*344154*/                OPC_CheckType, MVT::v16f32,
/*344156*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*344158*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*344161*/                OPC_EmitMergeInputChains1_1,
/*344162*/                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>>, 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)
/*344176*/              /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->344213
/*344179*/                OPC_RecordMemRef,
/*344180*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*344181*/                OPC_CheckFoldableChainNode,
/*344182*/                OPC_RecordChild1, // #2 = $src3
/*344183*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*344185*/                OPC_MoveParent,
/*344186*/                OPC_RecordChild1, // #3 = $src1
/*344187*/                OPC_RecordChild2, // #4 = $src2
/*344188*/                OPC_MoveParent,
/*344189*/                OPC_CheckChild2Same, 3,
/*344191*/                OPC_CheckType, MVT::v16f32,
/*344193*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*344195*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*344198*/                OPC_EmitMergeInputChains1_1,
/*344199*/                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] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                          // Dst: (VFNMADD132PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*344213*/              0, // EndSwitchOpcode
/*344214*/            /*Scope*/ 81, /*->344296*/
/*344215*/              OPC_RecordChild0, // #1 = $src1
/*344216*/              OPC_RecordChild1, // #2 = $src2
/*344217*/              OPC_MoveChild2,
/*344218*/              OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->344258
/*344222*/                OPC_RecordMemRef,
/*344223*/                OPC_RecordNode, // #3 = 'ld' chained node
/*344224*/                OPC_CheckFoldableChainNode,
/*344225*/                OPC_RecordChild1, // #4 = $src3
/*344226*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*344228*/                OPC_CheckPredicate, 9, // Predicate_load
/*344230*/                OPC_MoveParent,
/*344231*/                OPC_MoveParent,
/*344232*/                OPC_CheckChild2Same, 1,
/*344234*/                OPC_CheckType, MVT::v16f32,
/*344236*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*344238*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*344241*/                OPC_EmitMergeInputChains, 1, 3, 
/*344244*/                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>>), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                          // Dst: (VFNMADD213PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*344258*/              /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->344295
/*344261*/                OPC_RecordMemRef,
/*344262*/                OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*344263*/                OPC_CheckFoldableChainNode,
/*344264*/                OPC_RecordChild1, // #4 = $src3
/*344265*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*344267*/                OPC_MoveParent,
/*344268*/                OPC_MoveParent,
/*344269*/                OPC_CheckChild2Same, 1,
/*344271*/                OPC_CheckType, MVT::v16f32,
/*344273*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*344275*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*344278*/                OPC_EmitMergeInputChains, 1, 3, 
/*344281*/                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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                          // Dst: (VFNMADD213PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*344295*/              0, // EndSwitchOpcode
/*344296*/            /*Scope*/ 79, /*->344376*/
/*344297*/              OPC_MoveChild0,
/*344298*/              OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->344338
/*344302*/                OPC_RecordMemRef,
/*344303*/                OPC_RecordNode, // #1 = 'ld' chained node
/*344304*/                OPC_CheckFoldableChainNode,
/*344305*/                OPC_RecordChild1, // #2 = $src3
/*344306*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*344308*/                OPC_CheckPredicate, 9, // Predicate_load
/*344310*/                OPC_MoveParent,
/*344311*/                OPC_RecordChild1, // #3 = $src2
/*344312*/                OPC_RecordChild2, // #4 = $src1
/*344313*/                OPC_MoveParent,
/*344314*/                OPC_CheckChild2Same, 4,
/*344316*/                OPC_CheckType, MVT::v16f32,
/*344318*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*344320*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*344323*/                OPC_EmitMergeInputChains1_1,
/*344324*/                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>>, 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)
/*344338*/              /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->344375
/*344341*/                OPC_RecordMemRef,
/*344342*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*344343*/                OPC_CheckFoldableChainNode,
/*344344*/                OPC_RecordChild1, // #2 = $src3
/*344345*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*344347*/                OPC_MoveParent,
/*344348*/                OPC_RecordChild1, // #3 = $src2
/*344349*/                OPC_RecordChild2, // #4 = $src1
/*344350*/                OPC_MoveParent,
/*344351*/                OPC_CheckChild2Same, 4,
/*344353*/                OPC_CheckType, MVT::v16f32,
/*344355*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*344357*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*344360*/                OPC_EmitMergeInputChains1_1,
/*344361*/                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] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                          // Dst: (VFNMADD231PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*344375*/              0, // EndSwitchOpcode
/*344376*/            /*Scope*/ 78, /*->344455*/
/*344377*/              OPC_RecordChild0, // #1 = $src1
/*344378*/              OPC_MoveChild1,
/*344379*/              OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->344418
/*344383*/                OPC_RecordMemRef,
/*344384*/                OPC_RecordNode, // #2 = 'ld' chained node
/*344385*/                OPC_CheckFoldableChainNode,
/*344386*/                OPC_RecordChild1, // #3 = $src3
/*344387*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*344389*/                OPC_CheckPredicate, 9, // Predicate_load
/*344391*/                OPC_MoveParent,
/*344392*/                OPC_RecordChild2, // #4 = $src2
/*344393*/                OPC_MoveParent,
/*344394*/                OPC_CheckChild2Same, 1,
/*344396*/                OPC_CheckType, MVT::v16f32,
/*344398*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*344400*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*344403*/                OPC_EmitMergeInputChains1_2,
/*344404*/                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>>, VR512:{ *:[v16f32] }:$src2), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                          // Dst: (VFNMADD132PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*344418*/              /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->344454
/*344421*/                OPC_RecordMemRef,
/*344422*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*344423*/                OPC_CheckFoldableChainNode,
/*344424*/                OPC_RecordChild1, // #3 = $src3
/*344425*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*344427*/                OPC_MoveParent,
/*344428*/                OPC_RecordChild2, // #4 = $src2
/*344429*/                OPC_MoveParent,
/*344430*/                OPC_CheckChild2Same, 1,
/*344432*/                OPC_CheckType, MVT::v16f32,
/*344434*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*344436*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*344439*/                OPC_EmitMergeInputChains1_2,
/*344440*/                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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src2), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                          // Dst: (VFNMADD132PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*344454*/              0, // EndSwitchOpcode
/*344455*/            0, /*End of Scope*/
/*344456*/          /*SwitchOpcode*/ 103|128,3/*487*/, TARGET_VAL(X86ISD::FNMSUB),// ->344947
/*344460*/            OPC_Scope, 34|128,1/*162*/, /*->344625*/ // 5 children in Scope
/*344463*/              OPC_RecordChild0, // #1 = $src2
/*344464*/              OPC_Scope, 80, /*->344546*/ // 2 children in Scope
/*344466*/                OPC_RecordChild1, // #2 = $src1
/*344467*/                OPC_MoveChild2,
/*344468*/                OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->344508
/*344472*/                  OPC_RecordMemRef,
/*344473*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*344474*/                  OPC_CheckFoldableChainNode,
/*344475*/                  OPC_RecordChild1, // #4 = $src3
/*344476*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*344478*/                  OPC_CheckPredicate, 9, // Predicate_load
/*344480*/                  OPC_MoveParent,
/*344481*/                  OPC_MoveParent,
/*344482*/                  OPC_CheckChild2Same, 2,
/*344484*/                  OPC_CheckType, MVT::v16f32,
/*344486*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*344488*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*344491*/                  OPC_EmitMergeInputChains, 1, 3, 
/*344494*/                  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>>), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                            // Dst: (VFNMSUB213PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*344508*/                /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->344545
/*344511*/                  OPC_RecordMemRef,
/*344512*/                  OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*344513*/                  OPC_CheckFoldableChainNode,
/*344514*/                  OPC_RecordChild1, // #4 = $src3
/*344515*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*344517*/                  OPC_MoveParent,
/*344518*/                  OPC_MoveParent,
/*344519*/                  OPC_CheckChild2Same, 2,
/*344521*/                  OPC_CheckType, MVT::v16f32,
/*344523*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*344525*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*344528*/                  OPC_EmitMergeInputChains, 1, 3, 
/*344531*/                  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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                            // Dst: (VFNMSUB213PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*344545*/                0, // EndSwitchOpcode
/*344546*/              /*Scope*/ 77, /*->344624*/
/*344547*/                OPC_MoveChild1,
/*344548*/                OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->344587
/*344552*/                  OPC_RecordMemRef,
/*344553*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*344554*/                  OPC_CheckFoldableChainNode,
/*344555*/                  OPC_RecordChild1, // #3 = $src3
/*344556*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*344558*/                  OPC_CheckPredicate, 9, // Predicate_load
/*344560*/                  OPC_MoveParent,
/*344561*/                  OPC_RecordChild2, // #4 = $src1
/*344562*/                  OPC_MoveParent,
/*344563*/                  OPC_CheckChild2Same, 4,
/*344565*/                  OPC_CheckType, MVT::v16f32,
/*344567*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*344569*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*344572*/                  OPC_EmitMergeInputChains1_2,
/*344573*/                  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>>, VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                            // Dst: (VFNMSUB231PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*344587*/                /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->344623
/*344590*/                  OPC_RecordMemRef,
/*344591*/                  OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*344592*/                  OPC_CheckFoldableChainNode,
/*344593*/                  OPC_RecordChild1, // #3 = $src3
/*344594*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*344596*/                  OPC_MoveParent,
/*344597*/                  OPC_RecordChild2, // #4 = $src1
/*344598*/                  OPC_MoveParent,
/*344599*/                  OPC_CheckChild2Same, 4,
/*344601*/                  OPC_CheckType, MVT::v16f32,
/*344603*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*344605*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*344608*/                  OPC_EmitMergeInputChains1_2,
/*344609*/                  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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                            // Dst: (VFNMSUB231PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*344623*/                0, // EndSwitchOpcode
/*344624*/              0, /*End of Scope*/
/*344625*/            /*Scope*/ 79, /*->344705*/
/*344626*/              OPC_MoveChild0,
/*344627*/              OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->344667
/*344631*/                OPC_RecordMemRef,
/*344632*/                OPC_RecordNode, // #1 = 'ld' chained node
/*344633*/                OPC_CheckFoldableChainNode,
/*344634*/                OPC_RecordChild1, // #2 = $src3
/*344635*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*344637*/                OPC_CheckPredicate, 9, // Predicate_load
/*344639*/                OPC_MoveParent,
/*344640*/                OPC_RecordChild1, // #3 = $src1
/*344641*/                OPC_RecordChild2, // #4 = $src2
/*344642*/                OPC_MoveParent,
/*344643*/                OPC_CheckChild2Same, 3,
/*344645*/                OPC_CheckType, MVT::v16f32,
/*344647*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*344649*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*344652*/                OPC_EmitMergeInputChains1_1,
/*344653*/                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>>, 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)
/*344667*/              /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->344704
/*344670*/                OPC_RecordMemRef,
/*344671*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*344672*/                OPC_CheckFoldableChainNode,
/*344673*/                OPC_RecordChild1, // #2 = $src3
/*344674*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*344676*/                OPC_MoveParent,
/*344677*/                OPC_RecordChild1, // #3 = $src1
/*344678*/                OPC_RecordChild2, // #4 = $src2
/*344679*/                OPC_MoveParent,
/*344680*/                OPC_CheckChild2Same, 3,
/*344682*/                OPC_CheckType, MVT::v16f32,
/*344684*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*344686*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*344689*/                OPC_EmitMergeInputChains1_1,
/*344690*/                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] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                          // Dst: (VFNMSUB132PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*344704*/              0, // EndSwitchOpcode
/*344705*/            /*Scope*/ 81, /*->344787*/
/*344706*/              OPC_RecordChild0, // #1 = $src1
/*344707*/              OPC_RecordChild1, // #2 = $src2
/*344708*/              OPC_MoveChild2,
/*344709*/              OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->344749
/*344713*/                OPC_RecordMemRef,
/*344714*/                OPC_RecordNode, // #3 = 'ld' chained node
/*344715*/                OPC_CheckFoldableChainNode,
/*344716*/                OPC_RecordChild1, // #4 = $src3
/*344717*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*344719*/                OPC_CheckPredicate, 9, // Predicate_load
/*344721*/                OPC_MoveParent,
/*344722*/                OPC_MoveParent,
/*344723*/                OPC_CheckChild2Same, 1,
/*344725*/                OPC_CheckType, MVT::v16f32,
/*344727*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*344729*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*344732*/                OPC_EmitMergeInputChains, 1, 3, 
/*344735*/                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>>), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                          // Dst: (VFNMSUB213PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*344749*/              /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->344786
/*344752*/                OPC_RecordMemRef,
/*344753*/                OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*344754*/                OPC_CheckFoldableChainNode,
/*344755*/                OPC_RecordChild1, // #4 = $src3
/*344756*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*344758*/                OPC_MoveParent,
/*344759*/                OPC_MoveParent,
/*344760*/                OPC_CheckChild2Same, 1,
/*344762*/                OPC_CheckType, MVT::v16f32,
/*344764*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*344766*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*344769*/                OPC_EmitMergeInputChains, 1, 3, 
/*344772*/                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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                          // Dst: (VFNMSUB213PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*344786*/              0, // EndSwitchOpcode
/*344787*/            /*Scope*/ 79, /*->344867*/
/*344788*/              OPC_MoveChild0,
/*344789*/              OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->344829
/*344793*/                OPC_RecordMemRef,
/*344794*/                OPC_RecordNode, // #1 = 'ld' chained node
/*344795*/                OPC_CheckFoldableChainNode,
/*344796*/                OPC_RecordChild1, // #2 = $src3
/*344797*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*344799*/                OPC_CheckPredicate, 9, // Predicate_load
/*344801*/                OPC_MoveParent,
/*344802*/                OPC_RecordChild1, // #3 = $src2
/*344803*/                OPC_RecordChild2, // #4 = $src1
/*344804*/                OPC_MoveParent,
/*344805*/                OPC_CheckChild2Same, 4,
/*344807*/                OPC_CheckType, MVT::v16f32,
/*344809*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*344811*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*344814*/                OPC_EmitMergeInputChains1_1,
/*344815*/                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>>, 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)
/*344829*/              /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->344866
/*344832*/                OPC_RecordMemRef,
/*344833*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*344834*/                OPC_CheckFoldableChainNode,
/*344835*/                OPC_RecordChild1, // #2 = $src3
/*344836*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*344838*/                OPC_MoveParent,
/*344839*/                OPC_RecordChild1, // #3 = $src2
/*344840*/                OPC_RecordChild2, // #4 = $src1
/*344841*/                OPC_MoveParent,
/*344842*/                OPC_CheckChild2Same, 4,
/*344844*/                OPC_CheckType, MVT::v16f32,
/*344846*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*344848*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*344851*/                OPC_EmitMergeInputChains1_1,
/*344852*/                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] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                          // Dst: (VFNMSUB231PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*344866*/              0, // EndSwitchOpcode
/*344867*/            /*Scope*/ 78, /*->344946*/
/*344868*/              OPC_RecordChild0, // #1 = $src1
/*344869*/              OPC_MoveChild1,
/*344870*/              OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->344909
/*344874*/                OPC_RecordMemRef,
/*344875*/                OPC_RecordNode, // #2 = 'ld' chained node
/*344876*/                OPC_CheckFoldableChainNode,
/*344877*/                OPC_RecordChild1, // #3 = $src3
/*344878*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*344880*/                OPC_CheckPredicate, 9, // Predicate_load
/*344882*/                OPC_MoveParent,
/*344883*/                OPC_RecordChild2, // #4 = $src2
/*344884*/                OPC_MoveParent,
/*344885*/                OPC_CheckChild2Same, 1,
/*344887*/                OPC_CheckType, MVT::v16f32,
/*344889*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*344891*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*344894*/                OPC_EmitMergeInputChains1_2,
/*344895*/                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>>, VR512:{ *:[v16f32] }:$src2), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                          // Dst: (VFNMSUB132PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*344909*/              /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->344945
/*344912*/                OPC_RecordMemRef,
/*344913*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*344914*/                OPC_CheckFoldableChainNode,
/*344915*/                OPC_RecordChild1, // #3 = $src3
/*344916*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*344918*/                OPC_MoveParent,
/*344919*/                OPC_RecordChild2, // #4 = $src2
/*344920*/                OPC_MoveParent,
/*344921*/                OPC_CheckChild2Same, 1,
/*344923*/                OPC_CheckType, MVT::v16f32,
/*344925*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*344927*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*344930*/                OPC_EmitMergeInputChains1_2,
/*344931*/                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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src2), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                          // Dst: (VFNMSUB132PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*344945*/              0, // EndSwitchOpcode
/*344946*/            0, /*End of Scope*/
/*344947*/          /*SwitchOpcode*/ 83, TARGET_VAL(ISD::STRICT_SINT_TO_FP),// ->345033
/*344950*/            OPC_RecordNode, // #1 = 'strict_sint_to_fp' chained node
/*344951*/            OPC_CheckFoldableChainNode,
/*344952*/            OPC_MoveChild1,
/*344953*/            OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->344994
/*344957*/              OPC_RecordMemRef,
/*344958*/              OPC_RecordNode, // #2 = 'ld' chained node
/*344959*/              OPC_CheckFoldableChainNode,
/*344960*/              OPC_RecordChild1, // #3 = $src
/*344961*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*344963*/              OPC_CheckPredicate, 9, // Predicate_load
/*344965*/              OPC_CheckType, MVT::v16i32,
/*344967*/              OPC_MoveParent,
/*344968*/              OPC_MoveParent,
/*344969*/              OPC_RecordChild2, // #4 = $src0
/*344970*/              OPC_CheckType, MVT::v16f32,
/*344972*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*344974*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*344977*/              OPC_EmitMergeInputChains, 2, 1, 2, 
/*344981*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (strict_sint_to_fp:{ *:[v16f32] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VCVTDQ2PSZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*344994*/            /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->345032
/*344997*/              OPC_RecordMemRef,
/*344998*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*344999*/              OPC_CheckFoldableChainNode,
/*345000*/              OPC_RecordChild1, // #3 = $src
/*345001*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*345003*/              OPC_CheckType, MVT::v16i32,
/*345005*/              OPC_MoveParent,
/*345006*/              OPC_MoveParent,
/*345007*/              OPC_RecordChild2, // #4 = $src0
/*345008*/              OPC_CheckType, MVT::v16f32,
/*345010*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*345012*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*345015*/              OPC_EmitMergeInputChains, 2, 1, 2, 
/*345019*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (strict_sint_to_fp:{ *:[v16f32] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VCVTDQ2PSZrmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*345032*/            0, // EndSwitchOpcode
/*345033*/          /*SwitchOpcode*/ 75, TARGET_VAL(ISD::SINT_TO_FP),// ->345111
/*345036*/            OPC_MoveChild0,
/*345037*/            OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->345075
/*345041*/              OPC_RecordMemRef,
/*345042*/              OPC_RecordNode, // #1 = 'ld' chained node
/*345043*/              OPC_CheckFoldableChainNode,
/*345044*/              OPC_RecordChild1, // #2 = $src
/*345045*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*345047*/              OPC_CheckPredicate, 9, // Predicate_load
/*345049*/              OPC_CheckType, MVT::v16i32,
/*345051*/              OPC_MoveParent,
/*345052*/              OPC_MoveParent,
/*345053*/              OPC_RecordChild2, // #3 = $src0
/*345054*/              OPC_CheckType, MVT::v16f32,
/*345056*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*345058*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*345061*/              OPC_EmitMergeInputChains1_1,
/*345062*/              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] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VCVTDQ2PSZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*345075*/            /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->345110
/*345078*/              OPC_RecordMemRef,
/*345079*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*345080*/              OPC_CheckFoldableChainNode,
/*345081*/              OPC_RecordChild1, // #2 = $src
/*345082*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*345084*/              OPC_CheckType, MVT::v16i32,
/*345086*/              OPC_MoveParent,
/*345087*/              OPC_MoveParent,
/*345088*/              OPC_RecordChild2, // #3 = $src0
/*345089*/              OPC_CheckType, MVT::v16f32,
/*345091*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*345093*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*345096*/              OPC_EmitMergeInputChains1_1,
/*345097*/              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] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VCVTDQ2PSZrmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*345110*/            0, // EndSwitchOpcode
/*345111*/          /*SwitchOpcode*/ 83, TARGET_VAL(ISD::STRICT_UINT_TO_FP),// ->345197
/*345114*/            OPC_RecordNode, // #1 = 'strict_uint_to_fp' chained node
/*345115*/            OPC_CheckFoldableChainNode,
/*345116*/            OPC_MoveChild1,
/*345117*/            OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->345158
/*345121*/              OPC_RecordMemRef,
/*345122*/              OPC_RecordNode, // #2 = 'ld' chained node
/*345123*/              OPC_CheckFoldableChainNode,
/*345124*/              OPC_RecordChild1, // #3 = $src
/*345125*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*345127*/              OPC_CheckPredicate, 9, // Predicate_load
/*345129*/              OPC_CheckType, MVT::v16i32,
/*345131*/              OPC_MoveParent,
/*345132*/              OPC_MoveParent,
/*345133*/              OPC_RecordChild2, // #4 = $src0
/*345134*/              OPC_CheckType, MVT::v16f32,
/*345136*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*345138*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*345141*/              OPC_EmitMergeInputChains, 2, 1, 2, 
/*345145*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PSZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (strict_uint_to_fp:{ *:[v16f32] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VCVTUDQ2PSZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*345158*/            /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->345196
/*345161*/              OPC_RecordMemRef,
/*345162*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*345163*/              OPC_CheckFoldableChainNode,
/*345164*/              OPC_RecordChild1, // #3 = $src
/*345165*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*345167*/              OPC_CheckType, MVT::v16i32,
/*345169*/              OPC_MoveParent,
/*345170*/              OPC_MoveParent,
/*345171*/              OPC_RecordChild2, // #4 = $src0
/*345172*/              OPC_CheckType, MVT::v16f32,
/*345174*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*345176*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*345179*/              OPC_EmitMergeInputChains, 2, 1, 2, 
/*345183*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PSZrmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (strict_uint_to_fp:{ *:[v16f32] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VCVTUDQ2PSZrmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*345196*/            0, // EndSwitchOpcode
/*345197*/          /*SwitchOpcode*/ 75, TARGET_VAL(ISD::UINT_TO_FP),// ->345275
/*345200*/            OPC_MoveChild0,
/*345201*/            OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->345239
/*345205*/              OPC_RecordMemRef,
/*345206*/              OPC_RecordNode, // #1 = 'ld' chained node
/*345207*/              OPC_CheckFoldableChainNode,
/*345208*/              OPC_RecordChild1, // #2 = $src
/*345209*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*345211*/              OPC_CheckPredicate, 9, // Predicate_load
/*345213*/              OPC_CheckType, MVT::v16i32,
/*345215*/              OPC_MoveParent,
/*345216*/              OPC_MoveParent,
/*345217*/              OPC_RecordChild2, // #3 = $src0
/*345218*/              OPC_CheckType, MVT::v16f32,
/*345220*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*345222*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*345225*/              OPC_EmitMergeInputChains1_1,
/*345226*/              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] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VCVTUDQ2PSZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*345239*/            /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->345274
/*345242*/              OPC_RecordMemRef,
/*345243*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*345244*/              OPC_CheckFoldableChainNode,
/*345245*/              OPC_RecordChild1, // #2 = $src
/*345246*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*345248*/              OPC_CheckType, MVT::v16i32,
/*345250*/              OPC_MoveParent,
/*345251*/              OPC_MoveParent,
/*345252*/              OPC_RecordChild2, // #3 = $src0
/*345253*/              OPC_CheckType, MVT::v16f32,
/*345255*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*345257*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*345260*/              OPC_EmitMergeInputChains1_1,
/*345261*/              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] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VCVTUDQ2PSZrmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*345274*/            0, // EndSwitchOpcode
/*345275*/          /*SwitchOpcode*/ 38, TARGET_VAL(X86ISD::CVTPH2PS),// ->345316
/*345278*/            OPC_MoveChild0,
/*345279*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*345282*/            OPC_RecordMemRef,
/*345283*/            OPC_RecordNode, // #1 = 'ld' chained node
/*345284*/            OPC_CheckFoldableChainNode,
/*345285*/            OPC_RecordChild1, // #2 = $src
/*345286*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*345288*/            OPC_CheckPredicate, 9, // Predicate_load
/*345290*/            OPC_CheckType, MVT::v16i16,
/*345292*/            OPC_MoveParent,
/*345293*/            OPC_MoveParent,
/*345294*/            OPC_RecordChild2, // #3 = $src0
/*345295*/            OPC_CheckType, MVT::v16f32,
/*345297*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*345299*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*345302*/            OPC_EmitMergeInputChains1_1,
/*345303*/            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] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                      // Dst: (VCVTPH2PSZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*345316*/          /*SwitchOpcode*/ 71, TARGET_VAL(X86ISD::RSQRT14),// ->345390
/*345319*/            OPC_MoveChild0,
/*345320*/            OPC_SwitchOpcode /*2 cases */, 32, TARGET_VAL(ISD::LOAD),// ->345356
/*345324*/              OPC_RecordMemRef,
/*345325*/              OPC_RecordNode, // #1 = 'ld' chained node
/*345326*/              OPC_CheckFoldableChainNode,
/*345327*/              OPC_RecordChild1, // #2 = $src
/*345328*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*345330*/              OPC_CheckPredicate, 9, // Predicate_load
/*345332*/              OPC_MoveParent,
/*345333*/              OPC_MoveParent,
/*345334*/              OPC_RecordChild2, // #3 = $src0
/*345335*/              OPC_CheckType, MVT::v16f32,
/*345337*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*345339*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*345342*/              OPC_EmitMergeInputChains1_1,
/*345343*/              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>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VRSQRT14PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*345356*/            /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->345389
/*345359*/              OPC_RecordMemRef,
/*345360*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*345361*/              OPC_CheckFoldableChainNode,
/*345362*/              OPC_RecordChild1, // #2 = $src
/*345363*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*345365*/              OPC_MoveParent,
/*345366*/              OPC_MoveParent,
/*345367*/              OPC_RecordChild2, // #3 = $src0
/*345368*/              OPC_CheckType, MVT::v16f32,
/*345370*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*345372*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*345375*/              OPC_EmitMergeInputChains1_1,
/*345376*/              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] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VRSQRT14PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*345389*/            0, // EndSwitchOpcode
/*345390*/          /*SwitchOpcode*/ 71, TARGET_VAL(X86ISD::RCP14),// ->345464
/*345393*/            OPC_MoveChild0,
/*345394*/            OPC_SwitchOpcode /*2 cases */, 32, TARGET_VAL(ISD::LOAD),// ->345430
/*345398*/              OPC_RecordMemRef,
/*345399*/              OPC_RecordNode, // #1 = 'ld' chained node
/*345400*/              OPC_CheckFoldableChainNode,
/*345401*/              OPC_RecordChild1, // #2 = $src
/*345402*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*345404*/              OPC_CheckPredicate, 9, // Predicate_load
/*345406*/              OPC_MoveParent,
/*345407*/              OPC_MoveParent,
/*345408*/              OPC_RecordChild2, // #3 = $src0
/*345409*/              OPC_CheckType, MVT::v16f32,
/*345411*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*345413*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*345416*/              OPC_EmitMergeInputChains1_1,
/*345417*/              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>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VRCP14PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*345430*/            /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->345463
/*345433*/              OPC_RecordMemRef,
/*345434*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*345435*/              OPC_CheckFoldableChainNode,
/*345436*/              OPC_RecordChild1, // #2 = $src
/*345437*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*345439*/              OPC_MoveParent,
/*345440*/              OPC_MoveParent,
/*345441*/              OPC_RecordChild2, // #3 = $src0
/*345442*/              OPC_CheckType, MVT::v16f32,
/*345444*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*345446*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*345449*/              OPC_EmitMergeInputChains1_1,
/*345450*/              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] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VRCP14PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*345463*/            0, // EndSwitchOpcode
/*345464*/          /*SwitchOpcode*/ 71, TARGET_VAL(X86ISD::RSQRT28),// ->345538
/*345467*/            OPC_MoveChild0,
/*345468*/            OPC_SwitchOpcode /*2 cases */, 32, TARGET_VAL(ISD::LOAD),// ->345504
/*345472*/              OPC_RecordMemRef,
/*345473*/              OPC_RecordNode, // #1 = 'ld' chained node
/*345474*/              OPC_CheckFoldableChainNode,
/*345475*/              OPC_RecordChild1, // #2 = $src
/*345476*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*345478*/              OPC_CheckPredicate, 9, // Predicate_load
/*345480*/              OPC_MoveParent,
/*345481*/              OPC_MoveParent,
/*345482*/              OPC_RecordChild2, // #3 = $src0
/*345483*/              OPC_CheckType, MVT::v16f32,
/*345485*/              OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*345487*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*345490*/              OPC_EmitMergeInputChains1_1,
/*345491*/              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>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VRSQRT28PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*345504*/            /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->345537
/*345507*/              OPC_RecordMemRef,
/*345508*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*345509*/              OPC_CheckFoldableChainNode,
/*345510*/              OPC_RecordChild1, // #2 = $src
/*345511*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*345513*/              OPC_MoveParent,
/*345514*/              OPC_MoveParent,
/*345515*/              OPC_RecordChild2, // #3 = $src0
/*345516*/              OPC_CheckType, MVT::v16f32,
/*345518*/              OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*345520*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*345523*/              OPC_EmitMergeInputChains1_1,
/*345524*/              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] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VRSQRT28PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*345537*/            0, // EndSwitchOpcode
/*345538*/          /*SwitchOpcode*/ 71, TARGET_VAL(X86ISD::RCP28),// ->345612
/*345541*/            OPC_MoveChild0,
/*345542*/            OPC_SwitchOpcode /*2 cases */, 32, TARGET_VAL(ISD::LOAD),// ->345578
/*345546*/              OPC_RecordMemRef,
/*345547*/              OPC_RecordNode, // #1 = 'ld' chained node
/*345548*/              OPC_CheckFoldableChainNode,
/*345549*/              OPC_RecordChild1, // #2 = $src
/*345550*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*345552*/              OPC_CheckPredicate, 9, // Predicate_load
/*345554*/              OPC_MoveParent,
/*345555*/              OPC_MoveParent,
/*345556*/              OPC_RecordChild2, // #3 = $src0
/*345557*/              OPC_CheckType, MVT::v16f32,
/*345559*/              OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*345561*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*345564*/              OPC_EmitMergeInputChains1_1,
/*345565*/              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>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VRCP28PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*345578*/            /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->345611
/*345581*/              OPC_RecordMemRef,
/*345582*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*345583*/              OPC_CheckFoldableChainNode,
/*345584*/              OPC_RecordChild1, // #2 = $src
/*345585*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*345587*/              OPC_MoveParent,
/*345588*/              OPC_MoveParent,
/*345589*/              OPC_RecordChild2, // #3 = $src0
/*345590*/              OPC_CheckType, MVT::v16f32,
/*345592*/              OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*345594*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*345597*/              OPC_EmitMergeInputChains1_1,
/*345598*/              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] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VRCP28PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*345611*/            0, // EndSwitchOpcode
/*345612*/          /*SwitchOpcode*/ 71, TARGET_VAL(X86ISD::EXP2),// ->345686
/*345615*/            OPC_MoveChild0,
/*345616*/            OPC_SwitchOpcode /*2 cases */, 32, TARGET_VAL(ISD::LOAD),// ->345652
/*345620*/              OPC_RecordMemRef,
/*345621*/              OPC_RecordNode, // #1 = 'ld' chained node
/*345622*/              OPC_CheckFoldableChainNode,
/*345623*/              OPC_RecordChild1, // #2 = $src
/*345624*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*345626*/              OPC_CheckPredicate, 9, // Predicate_load
/*345628*/              OPC_MoveParent,
/*345629*/              OPC_MoveParent,
/*345630*/              OPC_RecordChild2, // #3 = $src0
/*345631*/              OPC_CheckType, MVT::v16f32,
/*345633*/              OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*345635*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*345638*/              OPC_EmitMergeInputChains1_1,
/*345639*/              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>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VEXP2PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*345652*/            /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->345685
/*345655*/              OPC_RecordMemRef,
/*345656*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*345657*/              OPC_CheckFoldableChainNode,
/*345658*/              OPC_RecordChild1, // #2 = $src
/*345659*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*345661*/              OPC_MoveParent,
/*345662*/              OPC_MoveParent,
/*345663*/              OPC_RecordChild2, // #3 = $src0
/*345664*/              OPC_CheckType, MVT::v16f32,
/*345666*/              OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*345668*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*345671*/              OPC_EmitMergeInputChains1_1,
/*345672*/              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] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VEXP2PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*345685*/            0, // EndSwitchOpcode
/*345686*/          /*SwitchOpcode*/ 71, TARGET_VAL(X86ISD::FGETEXP),// ->345760
/*345689*/            OPC_MoveChild0,
/*345690*/            OPC_SwitchOpcode /*2 cases */, 32, TARGET_VAL(ISD::LOAD),// ->345726
/*345694*/              OPC_RecordMemRef,
/*345695*/              OPC_RecordNode, // #1 = 'ld' chained node
/*345696*/              OPC_CheckFoldableChainNode,
/*345697*/              OPC_RecordChild1, // #2 = $src
/*345698*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*345700*/              OPC_CheckPredicate, 9, // Predicate_load
/*345702*/              OPC_MoveParent,
/*345703*/              OPC_MoveParent,
/*345704*/              OPC_RecordChild2, // #3 = $src0
/*345705*/              OPC_CheckType, MVT::v16f32,
/*345707*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*345709*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*345712*/              OPC_EmitMergeInputChains1_1,
/*345713*/              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, (X86fgetexp:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VGETEXPPSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*345726*/            /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->345759
/*345729*/              OPC_RecordMemRef,
/*345730*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*345731*/              OPC_CheckFoldableChainNode,
/*345732*/              OPC_RecordChild1, // #2 = $src
/*345733*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*345735*/              OPC_MoveParent,
/*345736*/              OPC_MoveParent,
/*345737*/              OPC_RecordChild2, // #3 = $src0
/*345738*/              OPC_CheckType, MVT::v16f32,
/*345740*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*345742*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*345745*/              OPC_EmitMergeInputChains1_1,
/*345746*/              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, (X86fgetexp:{ *:[v16f32] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VGETEXPPSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*345759*/            0, // EndSwitchOpcode
/*345760*/          /*SwitchOpcode*/ 79, TARGET_VAL(ISD::STRICT_FSQRT),// ->345842
/*345763*/            OPC_RecordNode, // #1 = 'strict_fsqrt' chained node
/*345764*/            OPC_CheckFoldableChainNode,
/*345765*/            OPC_MoveChild1,
/*345766*/            OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->345805
/*345770*/              OPC_RecordMemRef,
/*345771*/              OPC_RecordNode, // #2 = 'ld' chained node
/*345772*/              OPC_CheckFoldableChainNode,
/*345773*/              OPC_RecordChild1, // #3 = $src
/*345774*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*345776*/              OPC_CheckPredicate, 9, // Predicate_load
/*345778*/              OPC_MoveParent,
/*345779*/              OPC_MoveParent,
/*345780*/              OPC_RecordChild2, // #4 = $src0
/*345781*/              OPC_CheckType, MVT::v16f32,
/*345783*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*345785*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*345788*/              OPC_EmitMergeInputChains, 2, 1, 2, 
/*345792*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSZmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (strict_fsqrt:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VSQRTPSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*345805*/            /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->345841
/*345808*/              OPC_RecordMemRef,
/*345809*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*345810*/              OPC_CheckFoldableChainNode,
/*345811*/              OPC_RecordChild1, // #3 = $src
/*345812*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*345814*/              OPC_MoveParent,
/*345815*/              OPC_MoveParent,
/*345816*/              OPC_RecordChild2, // #4 = $src0
/*345817*/              OPC_CheckType, MVT::v16f32,
/*345819*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*345821*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*345824*/              OPC_EmitMergeInputChains, 2, 1, 2, 
/*345828*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (strict_fsqrt:{ *:[v16f32] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VSQRTPSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*345841*/            0, // EndSwitchOpcode
/*345842*/          /*SwitchOpcode*/ 71, TARGET_VAL(ISD::FSQRT),// ->345916
/*345845*/            OPC_MoveChild0,
/*345846*/            OPC_SwitchOpcode /*2 cases */, 32, TARGET_VAL(ISD::LOAD),// ->345882
/*345850*/              OPC_RecordMemRef,
/*345851*/              OPC_RecordNode, // #1 = 'ld' chained node
/*345852*/              OPC_CheckFoldableChainNode,
/*345853*/              OPC_RecordChild1, // #2 = $src
/*345854*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*345856*/              OPC_CheckPredicate, 9, // Predicate_load
/*345858*/              OPC_MoveParent,
/*345859*/              OPC_MoveParent,
/*345860*/              OPC_RecordChild2, // #3 = $src0
/*345861*/              OPC_CheckType, MVT::v16f32,
/*345863*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*345865*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*345868*/              OPC_EmitMergeInputChains1_1,
/*345869*/              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>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VSQRTPSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*345882*/            /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->345915
/*345885*/              OPC_RecordMemRef,
/*345886*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*345887*/              OPC_CheckFoldableChainNode,
/*345888*/              OPC_RecordChild1, // #2 = $src
/*345889*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*345891*/              OPC_MoveParent,
/*345892*/              OPC_MoveParent,
/*345893*/              OPC_RecordChild2, // #3 = $src0
/*345894*/              OPC_CheckType, MVT::v16f32,
/*345896*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*345898*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*345901*/              OPC_EmitMergeInputChains1_1,
/*345902*/              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] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VSQRTPSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*345915*/            0, // EndSwitchOpcode
/*345916*/          /*SwitchOpcode*/ 36, TARGET_VAL(X86ISD::MOVSHDUP),// ->345955
/*345919*/            OPC_MoveChild0,
/*345920*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*345923*/            OPC_RecordMemRef,
/*345924*/            OPC_RecordNode, // #1 = 'ld' chained node
/*345925*/            OPC_CheckFoldableChainNode,
/*345926*/            OPC_RecordChild1, // #2 = $src1
/*345927*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*345929*/            OPC_CheckPredicate, 9, // Predicate_load
/*345931*/            OPC_MoveParent,
/*345932*/            OPC_MoveParent,
/*345933*/            OPC_RecordChild2, // #3 = $src0
/*345934*/            OPC_CheckType, MVT::v16f32,
/*345936*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*345938*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*345941*/            OPC_EmitMergeInputChains1_1,
/*345942*/            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>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                      // Dst: (VMOVSHDUPZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*345955*/          /*SwitchOpcode*/ 36, TARGET_VAL(X86ISD::MOVSLDUP),// ->345994
/*345958*/            OPC_MoveChild0,
/*345959*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*345962*/            OPC_RecordMemRef,
/*345963*/            OPC_RecordNode, // #1 = 'ld' chained node
/*345964*/            OPC_CheckFoldableChainNode,
/*345965*/            OPC_RecordChild1, // #2 = $src1
/*345966*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*345968*/            OPC_CheckPredicate, 9, // Predicate_load
/*345970*/            OPC_MoveParent,
/*345971*/            OPC_MoveParent,
/*345972*/            OPC_RecordChild2, // #3 = $src0
/*345973*/            OPC_CheckType, MVT::v16f32,
/*345975*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*345977*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*345980*/            OPC_EmitMergeInputChains1_1,
/*345981*/            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>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                      // Dst: (VMOVSLDUPZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*345994*/          /*SwitchOpcode*/ 74, TARGET_VAL(X86ISD::UNPCKH),// ->346071
/*345997*/            OPC_RecordChild0, // #1 = $src1
/*345998*/            OPC_MoveChild1,
/*345999*/            OPC_SwitchOpcode /*2 cases */, 33, TARGET_VAL(ISD::LOAD),// ->346036
/*346003*/              OPC_RecordMemRef,
/*346004*/              OPC_RecordNode, // #2 = 'ld' chained node
/*346005*/              OPC_CheckFoldableChainNode,
/*346006*/              OPC_RecordChild1, // #3 = $src2
/*346007*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*346009*/              OPC_CheckPredicate, 9, // Predicate_load
/*346011*/              OPC_MoveParent,
/*346012*/              OPC_MoveParent,
/*346013*/              OPC_RecordChild2, // #4 = $src0
/*346014*/              OPC_CheckType, MVT::v16f32,
/*346016*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*346018*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*346021*/              OPC_EmitMergeInputChains1_2,
/*346022*/              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>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VUNPCKHPSZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*346036*/            /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->346070
/*346039*/              OPC_RecordMemRef,
/*346040*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*346041*/              OPC_CheckFoldableChainNode,
/*346042*/              OPC_RecordChild1, // #3 = $src2
/*346043*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*346045*/              OPC_MoveParent,
/*346046*/              OPC_MoveParent,
/*346047*/              OPC_RecordChild2, // #4 = $src0
/*346048*/              OPC_CheckType, MVT::v16f32,
/*346050*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*346052*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*346055*/              OPC_EmitMergeInputChains1_2,
/*346056*/              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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VUNPCKHPSZrmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*346070*/            0, // EndSwitchOpcode
/*346071*/          /*SwitchOpcode*/ 74, TARGET_VAL(X86ISD::UNPCKL),// ->346148
/*346074*/            OPC_RecordChild0, // #1 = $src1
/*346075*/            OPC_MoveChild1,
/*346076*/            OPC_SwitchOpcode /*2 cases */, 33, TARGET_VAL(ISD::LOAD),// ->346113
/*346080*/              OPC_RecordMemRef,
/*346081*/              OPC_RecordNode, // #2 = 'ld' chained node
/*346082*/              OPC_CheckFoldableChainNode,
/*346083*/              OPC_RecordChild1, // #3 = $src2
/*346084*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*346086*/              OPC_CheckPredicate, 9, // Predicate_load
/*346088*/              OPC_MoveParent,
/*346089*/              OPC_MoveParent,
/*346090*/              OPC_RecordChild2, // #4 = $src0
/*346091*/              OPC_CheckType, MVT::v16f32,
/*346093*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*346095*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*346098*/              OPC_EmitMergeInputChains1_2,
/*346099*/              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>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VUNPCKLPSZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*346113*/            /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->346147
/*346116*/              OPC_RecordMemRef,
/*346117*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*346118*/              OPC_CheckFoldableChainNode,
/*346119*/              OPC_RecordChild1, // #3 = $src2
/*346120*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*346122*/              OPC_MoveParent,
/*346123*/              OPC_MoveParent,
/*346124*/              OPC_RecordChild2, // #4 = $src0
/*346125*/              OPC_CheckType, MVT::v16f32,
/*346127*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*346129*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*346132*/              OPC_EmitMergeInputChains1_2,
/*346133*/              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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16f32] }:$src0) - Complexity = 28
                        // Dst: (VUNPCKLPSZrmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*346147*/            0, // EndSwitchOpcode
/*346148*/          /*SwitchOpcode*/ 83, TARGET_VAL(X86ISD::DPBF16PS),// ->346234
/*346151*/            OPC_RecordChild0, // #1 = $src1
/*346152*/            OPC_RecordChild1, // #2 = $src2
/*346153*/            OPC_CheckChild1Type, MVT::v16i32,
/*346155*/            OPC_MoveChild2,
/*346156*/            OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->346196
/*346160*/              OPC_RecordMemRef,
/*346161*/              OPC_RecordNode, // #3 = 'ld' chained node
/*346162*/              OPC_CheckFoldableChainNode,
/*346163*/              OPC_RecordChild1, // #4 = $src3
/*346164*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*346166*/              OPC_CheckPredicate, 9, // Predicate_load
/*346168*/              OPC_MoveParent,
/*346169*/              OPC_MoveParent,
/*346170*/              OPC_CheckChild2Same, 1,
/*346172*/              OPC_CheckType, MVT::v16f32,
/*346174*/              OPC_CheckPatternPredicate, 183, // (Subtarget->hasBF16())
/*346176*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*346179*/              OPC_EmitMergeInputChains, 1, 3, 
/*346182*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDPBF16PSZmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86dpbf16ps:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16i32] }:$src2, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                        // Dst: (VDPBF16PSZmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*346196*/            /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->346233
/*346199*/              OPC_RecordMemRef,
/*346200*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*346201*/              OPC_CheckFoldableChainNode,
/*346202*/              OPC_RecordChild1, // #4 = $src3
/*346203*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*346205*/              OPC_MoveParent,
/*346206*/              OPC_MoveParent,
/*346207*/              OPC_CheckChild2Same, 1,
/*346209*/              OPC_CheckType, MVT::v16f32,
/*346211*/              OPC_CheckPatternPredicate, 183, // (Subtarget->hasBF16())
/*346213*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*346216*/              OPC_EmitMergeInputChains, 1, 3, 
/*346219*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDPBF16PSZmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86dpbf16ps:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16i32] }:$src2, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR512:{ *:[v16f32] }:$src1) - Complexity = 28
                        // Dst: (VDPBF16PSZmbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*346233*/            0, // EndSwitchOpcode
/*346234*/          0, // EndSwitchOpcode
/*346235*/        /*Scope*/ 71, /*->346307*/
/*346236*/          OPC_RecordChild1, // #1 = $src3
/*346237*/          OPC_MoveChild1,
/*346238*/          OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*346241*/          OPC_RecordChild0, // #2 = $src1
/*346242*/          OPC_RecordChild1, // #3 = $src2
/*346243*/          OPC_Scope, 30, /*->346275*/ // 2 children in Scope
/*346245*/            OPC_CheckChild1Type, MVT::v4f32,
/*346247*/            OPC_MoveChild2,
/*346248*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*346251*/            OPC_CheckType, MVT::iPTR,
/*346253*/            OPC_MoveParent,
/*346254*/            OPC_MoveParent,
/*346255*/            OPC_MoveChild2,
/*346256*/            OPC_CheckImmAllZerosV,
/*346257*/            OPC_MoveParent,
/*346258*/            OPC_CheckType, MVT::v16f32,
/*346260*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*346262*/            OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*346265*/            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, immAllZerosV:{ *:[v16f32] }) - Complexity = 13
                      // 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))
/*346275*/          /*Scope*/ 30, /*->346306*/
/*346276*/            OPC_CheckChild1Type, MVT::v8f32,
/*346278*/            OPC_MoveChild2,
/*346279*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*346282*/            OPC_CheckType, MVT::iPTR,
/*346284*/            OPC_MoveParent,
/*346285*/            OPC_MoveParent,
/*346286*/            OPC_MoveChild2,
/*346287*/            OPC_CheckImmAllZerosV,
/*346288*/            OPC_MoveParent,
/*346289*/            OPC_CheckType, MVT::v16f32,
/*346291*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*346293*/            OPC_EmitNodeXForm, 16, 1, // INSERT_get_vinsert256_imm
/*346296*/            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, immAllZerosV:{ *:[v16f32] }) - Complexity = 13
                      // 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))
/*346306*/          0, /*End of Scope*/
/*346307*/        /*Scope*/ 8|128,19/*2440*/, /*->348749*/
/*346309*/          OPC_MoveChild1,
/*346310*/          OPC_SwitchOpcode /*77 cases */, 105|128,3/*489*/, TARGET_VAL(ISD::BITCAST),// ->346804
/*346315*/            OPC_Scope, 120|128,2/*376*/, /*->346694*/ // 3 children in Scope
/*346318*/              OPC_MoveChild0,
/*346319*/              OPC_SwitchOpcode /*5 cases */, 22, TARGET_VAL(X86ISD::VBROADCAST),// ->346345
/*346323*/                OPC_RecordChild0, // #1 = $src
/*346324*/                OPC_CheckChild0Type, MVT::v2f64,
/*346326*/                OPC_CheckType, MVT::v8f64,
/*346328*/                OPC_MoveParent,
/*346329*/                OPC_MoveParent,
/*346330*/                OPC_MoveChild2,
/*346331*/                OPC_CheckImmAllZerosV,
/*346332*/                OPC_MoveParent,
/*346333*/                OPC_CheckType, MVT::v16f32,
/*346335*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*346337*/                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)), immAllZerosV:{ *:[v16f32] }) - Complexity = 13
                          // Dst: (VBROADCASTF32X2Zrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*346345*/              /*SwitchOpcode*/ 84, TARGET_VAL(ISD::AND),// ->346432
/*346348*/                OPC_RecordChild0, // #1 = $src1
/*346349*/                OPC_RecordChild1, // #2 = $src2
/*346350*/                OPC_SwitchType /*4 cases */, 18, MVT::v8i64,// ->346371
/*346353*/                  OPC_MoveParent,
/*346354*/                  OPC_MoveParent,
/*346355*/                  OPC_MoveChild2,
/*346356*/                  OPC_CheckImmAllZerosV,
/*346357*/                  OPC_MoveParent,
/*346358*/                  OPC_CheckType, MVT::v16f32,
/*346360*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*346362*/                  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)), immAllZerosV:{ *:[v16f32] }) - Complexity = 13
                            // Dst: (VPANDDZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*346371*/                /*SwitchType*/ 18, MVT::v16i32,// ->346391
/*346373*/                  OPC_MoveParent,
/*346374*/                  OPC_MoveParent,
/*346375*/                  OPC_MoveChild2,
/*346376*/                  OPC_CheckImmAllZerosV,
/*346377*/                  OPC_MoveParent,
/*346378*/                  OPC_CheckType, MVT::v16f32,
/*346380*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*346382*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZrrkz), 0,
                                MVT::v16f32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (and:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)), immAllZerosV:{ *:[v16f32] }) - Complexity = 13
                            // Dst: (VPANDDZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*346391*/                /*SwitchType*/ 18, MVT::v32i16,// ->346411
/*346393*/                  OPC_MoveParent,
/*346394*/                  OPC_MoveParent,
/*346395*/                  OPC_MoveChild2,
/*346396*/                  OPC_CheckImmAllZerosV,
/*346397*/                  OPC_MoveParent,
/*346398*/                  OPC_CheckType, MVT::v16f32,
/*346400*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*346402*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZrrkz), 0,
                                MVT::v16f32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (and:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)), immAllZerosV:{ *:[v16f32] }) - Complexity = 13
                            // Dst: (VPANDDZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*346411*/                /*SwitchType*/ 18, MVT::v64i8,// ->346431
/*346413*/                  OPC_MoveParent,
/*346414*/                  OPC_MoveParent,
/*346415*/                  OPC_MoveChild2,
/*346416*/                  OPC_CheckImmAllZerosV,
/*346417*/                  OPC_MoveParent,
/*346418*/                  OPC_CheckType, MVT::v16f32,
/*346420*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*346422*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZrrkz), 0,
                                MVT::v16f32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (and:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)), immAllZerosV:{ *:[v16f32] }) - Complexity = 13
                            // Dst: (VPANDDZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*346431*/                0, // EndSwitchType
/*346432*/              /*SwitchOpcode*/ 84, TARGET_VAL(ISD::OR),// ->346519
/*346435*/                OPC_RecordChild0, // #1 = $src1
/*346436*/                OPC_RecordChild1, // #2 = $src2
/*346437*/                OPC_SwitchType /*4 cases */, 18, MVT::v8i64,// ->346458
/*346440*/                  OPC_MoveParent,
/*346441*/                  OPC_MoveParent,
/*346442*/                  OPC_MoveChild2,
/*346443*/                  OPC_CheckImmAllZerosV,
/*346444*/                  OPC_MoveParent,
/*346445*/                  OPC_CheckType, MVT::v16f32,
/*346447*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*346449*/                  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)), immAllZerosV:{ *:[v16f32] }) - Complexity = 13
                            // Dst: (VPORDZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*346458*/                /*SwitchType*/ 18, MVT::v16i32,// ->346478
/*346460*/                  OPC_MoveParent,
/*346461*/                  OPC_MoveParent,
/*346462*/                  OPC_MoveChild2,
/*346463*/                  OPC_CheckImmAllZerosV,
/*346464*/                  OPC_MoveParent,
/*346465*/                  OPC_CheckType, MVT::v16f32,
/*346467*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*346469*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZrrkz), 0,
                                MVT::v16f32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (or:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)), immAllZerosV:{ *:[v16f32] }) - Complexity = 13
                            // Dst: (VPORDZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*346478*/                /*SwitchType*/ 18, MVT::v32i16,// ->346498
/*346480*/                  OPC_MoveParent,
/*346481*/                  OPC_MoveParent,
/*346482*/                  OPC_MoveChild2,
/*346483*/                  OPC_CheckImmAllZerosV,
/*346484*/                  OPC_MoveParent,
/*346485*/                  OPC_CheckType, MVT::v16f32,
/*346487*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*346489*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZrrkz), 0,
                                MVT::v16f32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (or:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)), immAllZerosV:{ *:[v16f32] }) - Complexity = 13
                            // Dst: (VPORDZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*346498*/                /*SwitchType*/ 18, MVT::v64i8,// ->346518
/*346500*/                  OPC_MoveParent,
/*346501*/                  OPC_MoveParent,
/*346502*/                  OPC_MoveChild2,
/*346503*/                  OPC_CheckImmAllZerosV,
/*346504*/                  OPC_MoveParent,
/*346505*/                  OPC_CheckType, MVT::v16f32,
/*346507*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*346509*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZrrkz), 0,
                                MVT::v16f32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (or:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)), immAllZerosV:{ *:[v16f32] }) - Complexity = 13
                            // Dst: (VPORDZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*346518*/                0, // EndSwitchType
/*346519*/              /*SwitchOpcode*/ 84, TARGET_VAL(ISD::XOR),// ->346606
/*346522*/                OPC_RecordChild0, // #1 = $src1
/*346523*/                OPC_RecordChild1, // #2 = $src2
/*346524*/                OPC_SwitchType /*4 cases */, 18, MVT::v8i64,// ->346545
/*346527*/                  OPC_MoveParent,
/*346528*/                  OPC_MoveParent,
/*346529*/                  OPC_MoveChild2,
/*346530*/                  OPC_CheckImmAllZerosV,
/*346531*/                  OPC_MoveParent,
/*346532*/                  OPC_CheckType, MVT::v16f32,
/*346534*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*346536*/                  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)), immAllZerosV:{ *:[v16f32] }) - Complexity = 13
                            // Dst: (VPXORDZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*346545*/                /*SwitchType*/ 18, MVT::v16i32,// ->346565
/*346547*/                  OPC_MoveParent,
/*346548*/                  OPC_MoveParent,
/*346549*/                  OPC_MoveChild2,
/*346550*/                  OPC_CheckImmAllZerosV,
/*346551*/                  OPC_MoveParent,
/*346552*/                  OPC_CheckType, MVT::v16f32,
/*346554*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*346556*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZrrkz), 0,
                                MVT::v16f32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (xor:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)), immAllZerosV:{ *:[v16f32] }) - Complexity = 13
                            // Dst: (VPXORDZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*346565*/                /*SwitchType*/ 18, MVT::v32i16,// ->346585
/*346567*/                  OPC_MoveParent,
/*346568*/                  OPC_MoveParent,
/*346569*/                  OPC_MoveChild2,
/*346570*/                  OPC_CheckImmAllZerosV,
/*346571*/                  OPC_MoveParent,
/*346572*/                  OPC_CheckType, MVT::v16f32,
/*346574*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*346576*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZrrkz), 0,
                                MVT::v16f32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (xor:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)), immAllZerosV:{ *:[v16f32] }) - Complexity = 13
                            // Dst: (VPXORDZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*346585*/                /*SwitchType*/ 18, MVT::v64i8,// ->346605
/*346587*/                  OPC_MoveParent,
/*346588*/                  OPC_MoveParent,
/*346589*/                  OPC_MoveChild2,
/*346590*/                  OPC_CheckImmAllZerosV,
/*346591*/                  OPC_MoveParent,
/*346592*/                  OPC_CheckType, MVT::v16f32,
/*346594*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*346596*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZrrkz), 0,
                                MVT::v16f32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (xor:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)), immAllZerosV:{ *:[v16f32] }) - Complexity = 13
                            // Dst: (VPXORDZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*346605*/                0, // EndSwitchType
/*346606*/              /*SwitchOpcode*/ 84, TARGET_VAL(X86ISD::ANDNP),// ->346693
/*346609*/                OPC_RecordChild0, // #1 = $src1
/*346610*/                OPC_RecordChild1, // #2 = $src2
/*346611*/                OPC_SwitchType /*4 cases */, 18, MVT::v8i64,// ->346632
/*346614*/                  OPC_MoveParent,
/*346615*/                  OPC_MoveParent,
/*346616*/                  OPC_MoveChild2,
/*346617*/                  OPC_CheckImmAllZerosV,
/*346618*/                  OPC_MoveParent,
/*346619*/                  OPC_CheckType, MVT::v16f32,
/*346621*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*346623*/                  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)), immAllZerosV:{ *:[v16f32] }) - Complexity = 13
                            // Dst: (VPANDNDZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*346632*/                /*SwitchType*/ 18, MVT::v16i32,// ->346652
/*346634*/                  OPC_MoveParent,
/*346635*/                  OPC_MoveParent,
/*346636*/                  OPC_MoveChild2,
/*346637*/                  OPC_CheckImmAllZerosV,
/*346638*/                  OPC_MoveParent,
/*346639*/                  OPC_CheckType, MVT::v16f32,
/*346641*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*346643*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZrrkz), 0,
                                MVT::v16f32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (X86andnp:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)), immAllZerosV:{ *:[v16f32] }) - Complexity = 13
                            // Dst: (VPANDNDZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*346652*/                /*SwitchType*/ 18, MVT::v32i16,// ->346672
/*346654*/                  OPC_MoveParent,
/*346655*/                  OPC_MoveParent,
/*346656*/                  OPC_MoveChild2,
/*346657*/                  OPC_CheckImmAllZerosV,
/*346658*/                  OPC_MoveParent,
/*346659*/                  OPC_CheckType, MVT::v16f32,
/*346661*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*346663*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZrrkz), 0,
                                MVT::v16f32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (X86andnp:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)), immAllZerosV:{ *:[v16f32] }) - Complexity = 13
                            // Dst: (VPANDNDZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*346672*/                /*SwitchType*/ 18, MVT::v64i8,// ->346692
/*346674*/                  OPC_MoveParent,
/*346675*/                  OPC_MoveParent,
/*346676*/                  OPC_MoveChild2,
/*346677*/                  OPC_CheckImmAllZerosV,
/*346678*/                  OPC_MoveParent,
/*346679*/                  OPC_CheckType, MVT::v16f32,
/*346681*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*346683*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZrrkz), 0,
                                MVT::v16f32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (X86andnp:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)), immAllZerosV:{ *:[v16f32] }) - Complexity = 13
                            // Dst: (VPANDNDZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*346692*/                0, // EndSwitchType
/*346693*/              0, // EndSwitchOpcode
/*346694*/            /*Scope*/ 75, /*->346770*/
/*346695*/              OPC_RecordChild0, // #1 = $ins
/*346696*/              OPC_MoveChild0,
/*346697*/              OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*346700*/              OPC_RecordChild0, // #2 = $src1
/*346701*/              OPC_RecordChild1, // #3 = $src2
/*346702*/              OPC_Scope, 32, /*->346736*/ // 2 children in Scope
/*346704*/                OPC_CheckChild1Type, MVT::v2f64,
/*346706*/                OPC_MoveChild2,
/*346707*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*346710*/                OPC_CheckType, MVT::iPTR,
/*346712*/                OPC_MoveParent,
/*346713*/                OPC_CheckType, MVT::v8f64,
/*346715*/                OPC_MoveParent,
/*346716*/                OPC_MoveParent,
/*346717*/                OPC_RecordChild2, // #4 = $src0
/*346718*/                OPC_CheckType, MVT::v16f32,
/*346720*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*346722*/                OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*346725*/                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))
/*346736*/              /*Scope*/ 32, /*->346769*/
/*346737*/                OPC_CheckChild1Type, MVT::v4f64,
/*346739*/                OPC_MoveChild2,
/*346740*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*346743*/                OPC_CheckType, MVT::iPTR,
/*346745*/                OPC_MoveParent,
/*346746*/                OPC_CheckType, MVT::v8f64,
/*346748*/                OPC_MoveParent,
/*346749*/                OPC_MoveParent,
/*346750*/                OPC_RecordChild2, // #4 = $src0
/*346751*/                OPC_CheckType, MVT::v16f32,
/*346753*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*346755*/                OPC_EmitNodeXForm, 16, 1, // INSERT_get_vinsert256_imm
/*346758*/                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))
/*346769*/              0, /*End of Scope*/
/*346770*/            /*Scope*/ 32, /*->346803*/
/*346771*/              OPC_MoveChild0,
/*346772*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::SHUF128),
/*346775*/              OPC_RecordChild0, // #1 = $src1
/*346776*/              OPC_RecordChild1, // #2 = $src2
/*346777*/              OPC_RecordChild2, // #3 = $src3
/*346778*/              OPC_MoveChild2,
/*346779*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*346782*/              OPC_MoveParent,
/*346783*/              OPC_CheckType, MVT::v8f64,
/*346785*/              OPC_MoveParent,
/*346786*/              OPC_MoveParent,
/*346787*/              OPC_RecordChild2, // #4 = $src0
/*346788*/              OPC_CheckType, MVT::v16f32,
/*346790*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*346792*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF32X4Zrrik), 0,
                            MVT::v16f32, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (X86Shuf128:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i8] }):$src3)), VR512:{ *:[v16f32] }:$src0) - Complexity = 12
                        // Dst: (VSHUFF32X4Zrrik:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i8] }):$src3)
/*346803*/            0, /*End of Scope*/
/*346804*/          /*SwitchOpcode*/ 26, TARGET_VAL(X86ISD::FADD_RND),// ->346833
/*346807*/            OPC_RecordChild0, // #1 = $src1
/*346808*/            OPC_RecordChild1, // #2 = $src2
/*346809*/            OPC_RecordChild2, // #3 = $rc
/*346810*/            OPC_MoveChild2,
/*346811*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*346814*/            OPC_MoveParent,
/*346815*/            OPC_MoveParent,
/*346816*/            OPC_MoveChild2,
/*346817*/            OPC_CheckImmAllZerosV,
/*346818*/            OPC_MoveParent,
/*346819*/            OPC_CheckType, MVT::v16f32,
/*346821*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*346823*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZrrbkz), 0,
                          MVT::v16f32, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86faddRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i32] }):$rc), immAllZerosV:{ *:[v16f32] }) - Complexity = 13
                      // Dst: (VADDPSZrrbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i32] }):$rc)
/*346833*/          /*SwitchOpcode*/ 26, TARGET_VAL(X86ISD::FMUL_RND),// ->346862
/*346836*/            OPC_RecordChild0, // #1 = $src1
/*346837*/            OPC_RecordChild1, // #2 = $src2
/*346838*/            OPC_RecordChild2, // #3 = $rc
/*346839*/            OPC_MoveChild2,
/*346840*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*346843*/            OPC_MoveParent,
/*346844*/            OPC_MoveParent,
/*346845*/            OPC_MoveChild2,
/*346846*/            OPC_CheckImmAllZerosV,
/*346847*/            OPC_MoveParent,
/*346848*/            OPC_CheckType, MVT::v16f32,
/*346850*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*346852*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZrrbkz), 0,
                          MVT::v16f32, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fmulRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i32] }):$rc), immAllZerosV:{ *:[v16f32] }) - Complexity = 13
                      // Dst: (VMULPSZrrbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i32] }):$rc)
/*346862*/          /*SwitchOpcode*/ 26, TARGET_VAL(X86ISD::FSUB_RND),// ->346891
/*346865*/            OPC_RecordChild0, // #1 = $src1
/*346866*/            OPC_RecordChild1, // #2 = $src2
/*346867*/            OPC_RecordChild2, // #3 = $rc
/*346868*/            OPC_MoveChild2,
/*346869*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*346872*/            OPC_MoveParent,
/*346873*/            OPC_MoveParent,
/*346874*/            OPC_MoveChild2,
/*346875*/            OPC_CheckImmAllZerosV,
/*346876*/            OPC_MoveParent,
/*346877*/            OPC_CheckType, MVT::v16f32,
/*346879*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*346881*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSZrrbkz), 0,
                          MVT::v16f32, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fsubRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i32] }):$rc), immAllZerosV:{ *:[v16f32] }) - Complexity = 13
                      // Dst: (VSUBPSZrrbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i32] }):$rc)
/*346891*/          /*SwitchOpcode*/ 26, TARGET_VAL(X86ISD::FDIV_RND),// ->346920
/*346894*/            OPC_RecordChild0, // #1 = $src1
/*346895*/            OPC_RecordChild1, // #2 = $src2
/*346896*/            OPC_RecordChild2, // #3 = $rc
/*346897*/            OPC_MoveChild2,
/*346898*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*346901*/            OPC_MoveParent,
/*346902*/            OPC_MoveParent,
/*346903*/            OPC_MoveChild2,
/*346904*/            OPC_CheckImmAllZerosV,
/*346905*/            OPC_MoveParent,
/*346906*/            OPC_CheckType, MVT::v16f32,
/*346908*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*346910*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSZrrbkz), 0,
                          MVT::v16f32, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fdivRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i32] }):$rc), immAllZerosV:{ *:[v16f32] }) - Complexity = 13
                      // Dst: (VDIVPSZrrbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i32] }):$rc)
/*346920*/          /*SwitchOpcode*/ 26, TARGET_VAL(X86ISD::SCALEF_RND),// ->346949
/*346923*/            OPC_RecordChild0, // #1 = $src1
/*346924*/            OPC_RecordChild1, // #2 = $src2
/*346925*/            OPC_RecordChild2, // #3 = $rc
/*346926*/            OPC_MoveChild2,
/*346927*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*346930*/            OPC_MoveParent,
/*346931*/            OPC_MoveParent,
/*346932*/            OPC_MoveChild2,
/*346933*/            OPC_CheckImmAllZerosV,
/*346934*/            OPC_MoveParent,
/*346935*/            OPC_CheckType, MVT::v16f32,
/*346937*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*346939*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPSZrrbkz), 0,
                          MVT::v16f32, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86scalefRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i32] }):$rc), immAllZerosV:{ *:[v16f32] }) - Complexity = 13
                      // Dst: (VSCALEFPSZrrbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i32] }):$rc)
/*346949*/          /*SwitchOpcode*/ 24, TARGET_VAL(X86ISD::VPERMILPI),// ->346976
/*346952*/            OPC_RecordChild0, // #1 = $src1
/*346953*/            OPC_RecordChild1, // #2 = $src2
/*346954*/            OPC_MoveChild1,
/*346955*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*346958*/            OPC_MoveParent,
/*346959*/            OPC_MoveParent,
/*346960*/            OPC_MoveChild2,
/*346961*/            OPC_CheckImmAllZerosV,
/*346962*/            OPC_MoveParent,
/*346963*/            OPC_CheckType, MVT::v16f32,
/*346965*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*346967*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZrikz), 0,
                          MVT::v16f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermilpi:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v16f32] }) - Complexity = 13
                      // Dst: (VPERMILPSZrikz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i8] }):$src2)
/*346976*/          /*SwitchOpcode*/ 28, TARGET_VAL(X86ISD::FMADD_RND),// ->347007
/*346979*/            OPC_RecordChild0, // #1 = $src2
/*346980*/            OPC_RecordChild1, // #2 = $src1
/*346981*/            OPC_RecordChild2, // #3 = $src3
/*346982*/            OPC_RecordChild3, // #4 = $rc
/*346983*/            OPC_MoveChild3,
/*346984*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*346987*/            OPC_MoveParent,
/*346988*/            OPC_MoveParent,
/*346989*/            OPC_MoveChild2,
/*346990*/            OPC_CheckImmAllZerosV,
/*346991*/            OPC_MoveParent,
/*346992*/            OPC_CheckType, MVT::v16f32,
/*346994*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*346996*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZrbkz), 0,
                          MVT::v16f32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86FmaddRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3, (timm:{ *:[i32] }):$rc), immAllZerosV:{ *:[v16f32] }) - Complexity = 13
                      // Dst: (VFMADD213PSZrbkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, (timm:{ *:[i32] }):$rc)
/*347007*/          /*SwitchOpcode*/ 28, TARGET_VAL(X86ISD::FMSUB_RND),// ->347038
/*347010*/            OPC_RecordChild0, // #1 = $src2
/*347011*/            OPC_RecordChild1, // #2 = $src1
/*347012*/            OPC_RecordChild2, // #3 = $src3
/*347013*/            OPC_RecordChild3, // #4 = $rc
/*347014*/            OPC_MoveChild3,
/*347015*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*347018*/            OPC_MoveParent,
/*347019*/            OPC_MoveParent,
/*347020*/            OPC_MoveChild2,
/*347021*/            OPC_CheckImmAllZerosV,
/*347022*/            OPC_MoveParent,
/*347023*/            OPC_CheckType, MVT::v16f32,
/*347025*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*347027*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PSZrbkz), 0,
                          MVT::v16f32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86FmsubRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3, (timm:{ *:[i32] }):$rc), immAllZerosV:{ *:[v16f32] }) - Complexity = 13
                      // Dst: (VFMSUB213PSZrbkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, (timm:{ *:[i32] }):$rc)
/*347038*/          /*SwitchOpcode*/ 28, TARGET_VAL(X86ISD::FMADDSUB_RND),// ->347069
/*347041*/            OPC_RecordChild0, // #1 = $src2
/*347042*/            OPC_RecordChild1, // #2 = $src1
/*347043*/            OPC_RecordChild2, // #3 = $src3
/*347044*/            OPC_RecordChild3, // #4 = $rc
/*347045*/            OPC_MoveChild3,
/*347046*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*347049*/            OPC_MoveParent,
/*347050*/            OPC_MoveParent,
/*347051*/            OPC_MoveChild2,
/*347052*/            OPC_CheckImmAllZerosV,
/*347053*/            OPC_MoveParent,
/*347054*/            OPC_CheckType, MVT::v16f32,
/*347056*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*347058*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PSZrbkz), 0,
                          MVT::v16f32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86FmaddsubRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3, (timm:{ *:[i32] }):$rc), immAllZerosV:{ *:[v16f32] }) - Complexity = 13
                      // Dst: (VFMADDSUB213PSZrbkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, (timm:{ *:[i32] }):$rc)
/*347069*/          /*SwitchOpcode*/ 28, TARGET_VAL(X86ISD::FMSUBADD_RND),// ->347100
/*347072*/            OPC_RecordChild0, // #1 = $src2
/*347073*/            OPC_RecordChild1, // #2 = $src1
/*347074*/            OPC_RecordChild2, // #3 = $src3
/*347075*/            OPC_RecordChild3, // #4 = $rc
/*347076*/            OPC_MoveChild3,
/*347077*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*347080*/            OPC_MoveParent,
/*347081*/            OPC_MoveParent,
/*347082*/            OPC_MoveChild2,
/*347083*/            OPC_CheckImmAllZerosV,
/*347084*/            OPC_MoveParent,
/*347085*/            OPC_CheckType, MVT::v16f32,
/*347087*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*347089*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PSZrbkz), 0,
                          MVT::v16f32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86FmsubaddRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3, (timm:{ *:[i32] }):$rc), immAllZerosV:{ *:[v16f32] }) - Complexity = 13
                      // Dst: (VFMSUBADD213PSZrbkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, (timm:{ *:[i32] }):$rc)
/*347100*/          /*SwitchOpcode*/ 28, TARGET_VAL(X86ISD::FNMADD_RND),// ->347131
/*347103*/            OPC_RecordChild0, // #1 = $src2
/*347104*/            OPC_RecordChild1, // #2 = $src1
/*347105*/            OPC_RecordChild2, // #3 = $src3
/*347106*/            OPC_RecordChild3, // #4 = $rc
/*347107*/            OPC_MoveChild3,
/*347108*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*347111*/            OPC_MoveParent,
/*347112*/            OPC_MoveParent,
/*347113*/            OPC_MoveChild2,
/*347114*/            OPC_CheckImmAllZerosV,
/*347115*/            OPC_MoveParent,
/*347116*/            OPC_CheckType, MVT::v16f32,
/*347118*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*347120*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PSZrbkz), 0,
                          MVT::v16f32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86FnmaddRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3, (timm:{ *:[i32] }):$rc), immAllZerosV:{ *:[v16f32] }) - Complexity = 13
                      // Dst: (VFNMADD213PSZrbkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, (timm:{ *:[i32] }):$rc)
/*347131*/          /*SwitchOpcode*/ 28, TARGET_VAL(X86ISD::FNMSUB_RND),// ->347162
/*347134*/            OPC_RecordChild0, // #1 = $src2
/*347135*/            OPC_RecordChild1, // #2 = $src1
/*347136*/            OPC_RecordChild2, // #3 = $src3
/*347137*/            OPC_RecordChild3, // #4 = $rc
/*347138*/            OPC_MoveChild3,
/*347139*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*347142*/            OPC_MoveParent,
/*347143*/            OPC_MoveParent,
/*347144*/            OPC_MoveChild2,
/*347145*/            OPC_CheckImmAllZerosV,
/*347146*/            OPC_MoveParent,
/*347147*/            OPC_CheckType, MVT::v16f32,
/*347149*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*347151*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PSZrbkz), 0,
                          MVT::v16f32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86FnmsubRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3, (timm:{ *:[i32] }):$rc), immAllZerosV:{ *:[v16f32] }) - Complexity = 13
                      // Dst: (VFNMSUB213PSZrbkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, (timm:{ *:[i32] }):$rc)
/*347162*/          /*SwitchOpcode*/ 26, TARGET_VAL(X86ISD::SINT_TO_FP_RND),// ->347191
/*347165*/            OPC_RecordChild0, // #1 = $src
/*347166*/            OPC_CheckChild0Type, MVT::v16i32,
/*347168*/            OPC_RecordChild1, // #2 = $rc
/*347169*/            OPC_MoveChild1,
/*347170*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*347173*/            OPC_MoveParent,
/*347174*/            OPC_MoveParent,
/*347175*/            OPC_MoveChild2,
/*347176*/            OPC_CheckImmAllZerosV,
/*347177*/            OPC_MoveParent,
/*347178*/            OPC_CheckType, MVT::v16f32,
/*347180*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*347182*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSZrrbkz), 0,
                          MVT::v16f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VSintToFpRnd:{ *:[v16f32] } VR512:{ *:[v16i32] }:$src, (timm:{ *:[i32] }):$rc), immAllZerosV:{ *:[v16f32] }) - Complexity = 13
                      // Dst: (VCVTDQ2PSZrrbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src, (timm:{ *:[i32] }):$rc)
/*347191*/          /*SwitchOpcode*/ 26, TARGET_VAL(X86ISD::UINT_TO_FP_RND),// ->347220
/*347194*/            OPC_RecordChild0, // #1 = $src
/*347195*/            OPC_CheckChild0Type, MVT::v16i32,
/*347197*/            OPC_RecordChild1, // #2 = $rc
/*347198*/            OPC_MoveChild1,
/*347199*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*347202*/            OPC_MoveParent,
/*347203*/            OPC_MoveParent,
/*347204*/            OPC_MoveChild2,
/*347205*/            OPC_CheckImmAllZerosV,
/*347206*/            OPC_MoveParent,
/*347207*/            OPC_CheckType, MVT::v16f32,
/*347209*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*347211*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PSZrrbkz), 0,
                          MVT::v16f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VUintToFpRnd:{ *:[v16f32] } VR512:{ *:[v16i32] }:$src, (timm:{ *:[i32] }):$rc), immAllZerosV:{ *:[v16f32] }) - Complexity = 13
                      // Dst: (VCVTUDQ2PSZrrbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src, (timm:{ *:[i32] }):$rc)
/*347220*/          /*SwitchOpcode*/ 24, TARGET_VAL(X86ISD::FSQRT_RND),// ->347247
/*347223*/            OPC_RecordChild0, // #1 = $src
/*347224*/            OPC_RecordChild1, // #2 = $rc
/*347225*/            OPC_MoveChild1,
/*347226*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*347229*/            OPC_MoveParent,
/*347230*/            OPC_MoveParent,
/*347231*/            OPC_MoveChild2,
/*347232*/            OPC_CheckImmAllZerosV,
/*347233*/            OPC_MoveParent,
/*347234*/            OPC_CheckType, MVT::v16f32,
/*347236*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*347238*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSZrbkz), 0,
                          MVT::v16f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fsqrtRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src, (timm:{ *:[i32] }):$rc), immAllZerosV:{ *:[v16f32] }) - Complexity = 13
                      // Dst: (VSQRTPSZrbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src, (timm:{ *:[i32] }):$rc)
/*347247*/          /*SwitchOpcode*/ 24, TARGET_VAL(X86ISD::VREDUCE),// ->347274
/*347250*/            OPC_RecordChild0, // #1 = $src1
/*347251*/            OPC_RecordChild1, // #2 = $src2
/*347252*/            OPC_MoveChild1,
/*347253*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*347256*/            OPC_MoveParent,
/*347257*/            OPC_MoveParent,
/*347258*/            OPC_MoveChild2,
/*347259*/            OPC_CheckImmAllZerosV,
/*347260*/            OPC_MoveParent,
/*347261*/            OPC_CheckType, MVT::v16f32,
/*347263*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*347265*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPSZrrikz), 0,
                          MVT::v16f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VReduce:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v16f32] }) - Complexity = 13
                      // Dst: (VREDUCEPSZrrikz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*347274*/          /*SwitchOpcode*/ 24, TARGET_VAL(X86ISD::VREDUCE_SAE),// ->347301
/*347277*/            OPC_RecordChild0, // #1 = $src1
/*347278*/            OPC_RecordChild1, // #2 = $src2
/*347279*/            OPC_MoveChild1,
/*347280*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*347283*/            OPC_MoveParent,
/*347284*/            OPC_MoveParent,
/*347285*/            OPC_MoveChild2,
/*347286*/            OPC_CheckImmAllZerosV,
/*347287*/            OPC_MoveParent,
/*347288*/            OPC_CheckType, MVT::v16f32,
/*347290*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*347292*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPSZrribkz), 0,
                          MVT::v16f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VReduceSAE:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v16f32] }) - Complexity = 13
                      // Dst: (VREDUCEPSZrribkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*347301*/          /*SwitchOpcode*/ 27, TARGET_VAL(X86ISD::STRICT_VRNDSCALE),// ->347331
/*347304*/            OPC_RecordNode, // #1 = 'X86strict_VRndScale' chained node
/*347305*/            OPC_CheckFoldableChainNode,
/*347306*/            OPC_RecordChild1, // #2 = $src1
/*347307*/            OPC_RecordChild2, // #3 = $src2
/*347308*/            OPC_MoveChild2,
/*347309*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*347312*/            OPC_MoveParent,
/*347313*/            OPC_MoveParent,
/*347314*/            OPC_MoveChild2,
/*347315*/            OPC_CheckImmAllZerosV,
/*347316*/            OPC_MoveParent,
/*347317*/            OPC_CheckType, MVT::v16f32,
/*347319*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*347321*/            OPC_EmitMergeInputChains1_1,
/*347322*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrrikz), 0|OPFL_Chain,
                          MVT::v16f32, 3/*#Ops*/, 0, 2, 3, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86strict_VRndScale:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v16f32] }) - Complexity = 13
                      // Dst: (VRNDSCALEPSZrrikz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*347331*/          /*SwitchOpcode*/ 24, TARGET_VAL(X86ISD::VRNDSCALE),// ->347358
/*347334*/            OPC_RecordChild0, // #1 = $src1
/*347335*/            OPC_RecordChild1, // #2 = $src2
/*347336*/            OPC_MoveChild1,
/*347337*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*347340*/            OPC_MoveParent,
/*347341*/            OPC_MoveParent,
/*347342*/            OPC_MoveChild2,
/*347343*/            OPC_CheckImmAllZerosV,
/*347344*/            OPC_MoveParent,
/*347345*/            OPC_CheckType, MVT::v16f32,
/*347347*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*347349*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrrikz), 0,
                          MVT::v16f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VRndScale:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v16f32] }) - Complexity = 13
                      // Dst: (VRNDSCALEPSZrrikz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*347358*/          /*SwitchOpcode*/ 24, TARGET_VAL(X86ISD::VRNDSCALE_SAE),// ->347385
/*347361*/            OPC_RecordChild0, // #1 = $src1
/*347362*/            OPC_RecordChild1, // #2 = $src2
/*347363*/            OPC_MoveChild1,
/*347364*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*347367*/            OPC_MoveParent,
/*347368*/            OPC_MoveParent,
/*347369*/            OPC_MoveChild2,
/*347370*/            OPC_CheckImmAllZerosV,
/*347371*/            OPC_MoveParent,
/*347372*/            OPC_CheckType, MVT::v16f32,
/*347374*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*347376*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrribkz), 0,
                          MVT::v16f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VRndScaleSAE:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v16f32] }) - Complexity = 13
                      // Dst: (VRNDSCALEPSZrribkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*347385*/          /*SwitchOpcode*/ 24, TARGET_VAL(X86ISD::VGETMANT),// ->347412
/*347388*/            OPC_RecordChild0, // #1 = $src1
/*347389*/            OPC_RecordChild1, // #2 = $src2
/*347390*/            OPC_MoveChild1,
/*347391*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*347394*/            OPC_MoveParent,
/*347395*/            OPC_MoveParent,
/*347396*/            OPC_MoveChild2,
/*347397*/            OPC_CheckImmAllZerosV,
/*347398*/            OPC_MoveParent,
/*347399*/            OPC_CheckType, MVT::v16f32,
/*347401*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*347403*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPSZrrikz), 0,
                          MVT::v16f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VGetMant:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v16f32] }) - Complexity = 13
                      // Dst: (VGETMANTPSZrrikz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*347412*/          /*SwitchOpcode*/ 24, TARGET_VAL(X86ISD::VGETMANT_SAE),// ->347439
/*347415*/            OPC_RecordChild0, // #1 = $src1
/*347416*/            OPC_RecordChild1, // #2 = $src2
/*347417*/            OPC_MoveChild1,
/*347418*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*347421*/            OPC_MoveParent,
/*347422*/            OPC_MoveParent,
/*347423*/            OPC_MoveChild2,
/*347424*/            OPC_CheckImmAllZerosV,
/*347425*/            OPC_MoveParent,
/*347426*/            OPC_CheckType, MVT::v16f32,
/*347428*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*347430*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPSZrribkz), 0,
                          MVT::v16f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VGetMantSAE:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v16f32] }) - Complexity = 13
                      // Dst: (VGETMANTPSZrribkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*347439*/          /*SwitchOpcode*/ 26, TARGET_VAL(X86ISD::VRANGE),// ->347468
/*347442*/            OPC_RecordChild0, // #1 = $src1
/*347443*/            OPC_RecordChild1, // #2 = $src2
/*347444*/            OPC_RecordChild2, // #3 = $src3
/*347445*/            OPC_MoveChild2,
/*347446*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*347449*/            OPC_MoveParent,
/*347450*/            OPC_MoveParent,
/*347451*/            OPC_MoveChild2,
/*347452*/            OPC_CheckImmAllZerosV,
/*347453*/            OPC_MoveParent,
/*347454*/            OPC_CheckType, MVT::v16f32,
/*347456*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*347458*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPSZrrikz), 0,
                          MVT::v16f32, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VRange:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i32] }):$src3), immAllZerosV:{ *:[v16f32] }) - Complexity = 13
                      // Dst: (VRANGEPSZrrikz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i32] }):$src3)
/*347468*/          /*SwitchOpcode*/ 26, TARGET_VAL(X86ISD::VRANGE_SAE),// ->347497
/*347471*/            OPC_RecordChild0, // #1 = $src1
/*347472*/            OPC_RecordChild1, // #2 = $src2
/*347473*/            OPC_RecordChild2, // #3 = $src3
/*347474*/            OPC_MoveChild2,
/*347475*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*347478*/            OPC_MoveParent,
/*347479*/            OPC_MoveParent,
/*347480*/            OPC_MoveChild2,
/*347481*/            OPC_CheckImmAllZerosV,
/*347482*/            OPC_MoveParent,
/*347483*/            OPC_CheckType, MVT::v16f32,
/*347485*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*347487*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPSZrribkz), 0,
                          MVT::v16f32, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VRangeSAE:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i32] }):$src3), immAllZerosV:{ *:[v16f32] }) - Complexity = 13
                      // Dst: (VRANGEPSZrribkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i32] }):$src3)
/*347497*/          /*SwitchOpcode*/ 26, TARGET_VAL(X86ISD::SHUFP),// ->347526
/*347500*/            OPC_RecordChild0, // #1 = $src1
/*347501*/            OPC_RecordChild1, // #2 = $src2
/*347502*/            OPC_RecordChild2, // #3 = $src3
/*347503*/            OPC_MoveChild2,
/*347504*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*347507*/            OPC_MoveParent,
/*347508*/            OPC_MoveParent,
/*347509*/            OPC_MoveChild2,
/*347510*/            OPC_CheckImmAllZerosV,
/*347511*/            OPC_MoveParent,
/*347512*/            OPC_CheckType, MVT::v16f32,
/*347514*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*347516*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPSZrrikz), 0,
                          MVT::v16f32, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Shufp:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v16f32] }) - Complexity = 13
                      // Dst: (VSHUFPSZrrikz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i8] }):$src3)
/*347526*/          /*SwitchOpcode*/ 28, TARGET_VAL(X86ISD::VFIXUPIMM),// ->347557
/*347529*/            OPC_RecordChild0, // #1 = $src1
/*347530*/            OPC_RecordChild1, // #2 = $src2
/*347531*/            OPC_RecordChild2, // #3 = $src3
/*347532*/            OPC_RecordChild3, // #4 = $src4
/*347533*/            OPC_MoveChild3,
/*347534*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*347537*/            OPC_MoveParent,
/*347538*/            OPC_MoveParent,
/*347539*/            OPC_MoveChild2,
/*347540*/            OPC_CheckImmAllZerosV,
/*347541*/            OPC_MoveParent,
/*347542*/            OPC_CheckType, MVT::v16f32,
/*347544*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*347546*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPSZrrikz), 0,
                          MVT::v16f32, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VFixupimm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16i32] }:$src3, (timm:{ *:[i32] }):$src4), immAllZerosV:{ *:[v16f32] }) - Complexity = 13
                      // Dst: (VFIXUPIMMPSZrrikz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16i32] }:$src3, (timm:{ *:[i32] }):$src4)
/*347557*/          /*SwitchOpcode*/ 28, TARGET_VAL(X86ISD::VFIXUPIMM_SAE),// ->347588
/*347560*/            OPC_RecordChild0, // #1 = $src1
/*347561*/            OPC_RecordChild1, // #2 = $src2
/*347562*/            OPC_RecordChild2, // #3 = $src3
/*347563*/            OPC_RecordChild3, // #4 = $src4
/*347564*/            OPC_MoveChild3,
/*347565*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*347568*/            OPC_MoveParent,
/*347569*/            OPC_MoveParent,
/*347570*/            OPC_MoveChild2,
/*347571*/            OPC_CheckImmAllZerosV,
/*347572*/            OPC_MoveParent,
/*347573*/            OPC_CheckType, MVT::v16f32,
/*347575*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*347577*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPSZrribkz), 0,
                          MVT::v16f32, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VFixupimmSAE:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16i32] }:$src3, (timm:{ *:[i32] }):$src4), immAllZerosV:{ *:[v16f32] }) - Complexity = 13
                      // Dst: (VFIXUPIMMPSZrribkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16i32] }:$src3, (timm:{ *:[i32] }):$src4)
/*347588*/          /*SwitchOpcode*/ 54, TARGET_VAL(X86ISD::VPERMV3),// ->347645
/*347591*/            OPC_RecordChild0, // #1 = $src2
/*347592*/            OPC_Scope, 29, /*->347623*/ // 2 children in Scope
/*347594*/              OPC_MoveChild1,
/*347595*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*347598*/              OPC_RecordChild0, // #2 = $src1
/*347599*/              OPC_CheckChild0Type, MVT::v8i64,
/*347601*/              OPC_MoveParent,
/*347602*/              OPC_RecordChild2, // #3 = $src3
/*347603*/              OPC_MoveParent,
/*347604*/              OPC_MoveChild2,
/*347605*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*347608*/              OPC_CheckChild0Same, 2,
/*347610*/              OPC_MoveParent,
/*347611*/              OPC_CheckType, MVT::v16f32,
/*347613*/              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)
/*347623*/            /*Scope*/ 20, /*->347644*/
/*347624*/              OPC_RecordChild1, // #2 = $src2
/*347625*/              OPC_RecordChild2, // #3 = $src3
/*347626*/              OPC_MoveParent,
/*347627*/              OPC_MoveChild2,
/*347628*/              OPC_CheckImmAllZerosV,
/*347629*/              OPC_MoveParent,
/*347630*/              OPC_CheckType, MVT::v16f32,
/*347632*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*347634*/              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), immAllZerosV:{ *:[v16f32] }) - Complexity = 10
                        // Dst: (VPERMT2PSrrkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16f32] }:$src3)
/*347644*/            0, /*End of Scope*/
/*347645*/          /*SwitchOpcode*/ 52, TARGET_VAL(X86ISD::VBROADCAST),// ->347700
/*347648*/            OPC_RecordChild0, // #1 = $src
/*347649*/            OPC_Scope, 18, /*->347669*/ // 2 children in Scope
/*347651*/              OPC_CheckChild0Type, MVT::v4f32,
/*347653*/              OPC_MoveParent,
/*347654*/              OPC_MoveChild2,
/*347655*/              OPC_CheckImmAllZerosV,
/*347656*/              OPC_MoveParent,
/*347657*/              OPC_CheckType, MVT::v16f32,
/*347659*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*347661*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSSZrkz), 0,
                            MVT::v16f32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VBroadcast:{ *:[v16f32] } VR128X:{ *:[v4f32] }:$src), immAllZerosV:{ *:[v16f32] }) - Complexity = 10
                        // Dst: (VBROADCASTSSZrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*347669*/            /*Scope*/ 29, /*->347699*/
/*347670*/              OPC_CheckChild0Type, MVT::f32,
/*347672*/              OPC_MoveParent,
/*347673*/              OPC_MoveChild2,
/*347674*/              OPC_CheckImmAllZerosV,
/*347675*/              OPC_MoveParent,
/*347676*/              OPC_CheckType, MVT::v16f32,
/*347678*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*347680*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*347683*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 1, 2,  // Results = #3
/*347691*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSSZrkz), 0,
                            MVT::v16f32, 2/*#Ops*/, 0, 3, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VBroadcast:{ *:[v16f32] } FR32X:{ *:[f32] }:$src), immAllZerosV:{ *:[v16f32] }) - Complexity = 10
                        // Dst: (VBROADCASTSSZrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src, VR128X:{ *:[i32] }))
/*347699*/            0, /*End of Scope*/
/*347700*/          /*SwitchOpcode*/ 22, TARGET_VAL(ISD::STRICT_FADD),// ->347725
/*347703*/            OPC_RecordNode, // #1 = 'strict_fadd' chained node
/*347704*/            OPC_CheckFoldableChainNode,
/*347705*/            OPC_RecordChild1, // #2 = $src1
/*347706*/            OPC_RecordChild2, // #3 = $src2
/*347707*/            OPC_MoveParent,
/*347708*/            OPC_MoveChild2,
/*347709*/            OPC_CheckImmAllZerosV,
/*347710*/            OPC_MoveParent,
/*347711*/            OPC_CheckType, MVT::v16f32,
/*347713*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*347715*/            OPC_EmitMergeInputChains1_1,
/*347716*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZrrkz), 0|OPFL_Chain,
                          MVT::v16f32, 3/*#Ops*/, 0, 2, 3, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (strict_fadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), immAllZerosV:{ *:[v16f32] }) - Complexity = 10
                      // Dst: (VADDPSZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*347725*/          /*SwitchOpcode*/ 19, TARGET_VAL(ISD::FADD),// ->347747
/*347728*/            OPC_RecordChild0, // #1 = $src1
/*347729*/            OPC_RecordChild1, // #2 = $src2
/*347730*/            OPC_MoveParent,
/*347731*/            OPC_MoveChild2,
/*347732*/            OPC_CheckImmAllZerosV,
/*347733*/            OPC_MoveParent,
/*347734*/            OPC_CheckType, MVT::v16f32,
/*347736*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*347738*/            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), immAllZerosV:{ *:[v16f32] }) - Complexity = 10
                      // Dst: (VADDPSZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*347747*/          /*SwitchOpcode*/ 22, TARGET_VAL(ISD::STRICT_FMUL),// ->347772
/*347750*/            OPC_RecordNode, // #1 = 'strict_fmul' chained node
/*347751*/            OPC_CheckFoldableChainNode,
/*347752*/            OPC_RecordChild1, // #2 = $src1
/*347753*/            OPC_RecordChild2, // #3 = $src2
/*347754*/            OPC_MoveParent,
/*347755*/            OPC_MoveChild2,
/*347756*/            OPC_CheckImmAllZerosV,
/*347757*/            OPC_MoveParent,
/*347758*/            OPC_CheckType, MVT::v16f32,
/*347760*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*347762*/            OPC_EmitMergeInputChains1_1,
/*347763*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZrrkz), 0|OPFL_Chain,
                          MVT::v16f32, 3/*#Ops*/, 0, 2, 3, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (strict_fmul:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), immAllZerosV:{ *:[v16f32] }) - Complexity = 10
                      // Dst: (VMULPSZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*347772*/          /*SwitchOpcode*/ 19, TARGET_VAL(ISD::FMUL),// ->347794
/*347775*/            OPC_RecordChild0, // #1 = $src1
/*347776*/            OPC_RecordChild1, // #2 = $src2
/*347777*/            OPC_MoveParent,
/*347778*/            OPC_MoveChild2,
/*347779*/            OPC_CheckImmAllZerosV,
/*347780*/            OPC_MoveParent,
/*347781*/            OPC_CheckType, MVT::v16f32,
/*347783*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*347785*/            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), immAllZerosV:{ *:[v16f32] }) - Complexity = 10
                      // Dst: (VMULPSZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*347794*/          /*SwitchOpcode*/ 22, TARGET_VAL(ISD::STRICT_FSUB),// ->347819
/*347797*/            OPC_RecordNode, // #1 = 'strict_fsub' chained node
/*347798*/            OPC_CheckFoldableChainNode,
/*347799*/            OPC_RecordChild1, // #2 = $src1
/*347800*/            OPC_RecordChild2, // #3 = $src2
/*347801*/            OPC_MoveParent,
/*347802*/            OPC_MoveChild2,
/*347803*/            OPC_CheckImmAllZerosV,
/*347804*/            OPC_MoveParent,
/*347805*/            OPC_CheckType, MVT::v16f32,
/*347807*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*347809*/            OPC_EmitMergeInputChains1_1,
/*347810*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSZrrkz), 0|OPFL_Chain,
                          MVT::v16f32, 3/*#Ops*/, 0, 2, 3, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (strict_fsub:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), immAllZerosV:{ *:[v16f32] }) - Complexity = 10
                      // Dst: (VSUBPSZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*347819*/          /*SwitchOpcode*/ 19, TARGET_VAL(ISD::FSUB),// ->347841
/*347822*/            OPC_RecordChild0, // #1 = $src1
/*347823*/            OPC_RecordChild1, // #2 = $src2
/*347824*/            OPC_MoveParent,
/*347825*/            OPC_MoveChild2,
/*347826*/            OPC_CheckImmAllZerosV,
/*347827*/            OPC_MoveParent,
/*347828*/            OPC_CheckType, MVT::v16f32,
/*347830*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*347832*/            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), immAllZerosV:{ *:[v16f32] }) - Complexity = 10
                      // Dst: (VSUBPSZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*347841*/          /*SwitchOpcode*/ 22, TARGET_VAL(ISD::STRICT_FDIV),// ->347866
/*347844*/            OPC_RecordNode, // #1 = 'strict_fdiv' chained node
/*347845*/            OPC_CheckFoldableChainNode,
/*347846*/            OPC_RecordChild1, // #2 = $src1
/*347847*/            OPC_RecordChild2, // #3 = $src2
/*347848*/            OPC_MoveParent,
/*347849*/            OPC_MoveChild2,
/*347850*/            OPC_CheckImmAllZerosV,
/*347851*/            OPC_MoveParent,
/*347852*/            OPC_CheckType, MVT::v16f32,
/*347854*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*347856*/            OPC_EmitMergeInputChains1_1,
/*347857*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSZrrkz), 0|OPFL_Chain,
                          MVT::v16f32, 3/*#Ops*/, 0, 2, 3, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (strict_fdiv:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), immAllZerosV:{ *:[v16f32] }) - Complexity = 10
                      // Dst: (VDIVPSZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*347866*/          /*SwitchOpcode*/ 19, TARGET_VAL(ISD::FDIV),// ->347888
/*347869*/            OPC_RecordChild0, // #1 = $src1
/*347870*/            OPC_RecordChild1, // #2 = $src2
/*347871*/            OPC_MoveParent,
/*347872*/            OPC_MoveChild2,
/*347873*/            OPC_CheckImmAllZerosV,
/*347874*/            OPC_MoveParent,
/*347875*/            OPC_CheckType, MVT::v16f32,
/*347877*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*347879*/            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), immAllZerosV:{ *:[v16f32] }) - Complexity = 10
                      // Dst: (VDIVPSZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*347888*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::FMIN),// ->347910
/*347891*/            OPC_RecordChild0, // #1 = $src1
/*347892*/            OPC_RecordChild1, // #2 = $src2
/*347893*/            OPC_MoveParent,
/*347894*/            OPC_MoveChild2,
/*347895*/            OPC_CheckImmAllZerosV,
/*347896*/            OPC_MoveParent,
/*347897*/            OPC_CheckType, MVT::v16f32,
/*347899*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*347901*/            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), immAllZerosV:{ *:[v16f32] }) - Complexity = 10
                      // Dst: (VMINPSZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*347910*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::FMIN_SAE),// ->347932
/*347913*/            OPC_RecordChild0, // #1 = $src1
/*347914*/            OPC_RecordChild1, // #2 = $src2
/*347915*/            OPC_MoveParent,
/*347916*/            OPC_MoveChild2,
/*347917*/            OPC_CheckImmAllZerosV,
/*347918*/            OPC_MoveParent,
/*347919*/            OPC_CheckType, MVT::v16f32,
/*347921*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*347923*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPSZrrbkz), 0,
                          MVT::v16f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fminSAE:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), immAllZerosV:{ *:[v16f32] }) - Complexity = 10
                      // Dst: (VMINPSZrrbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*347932*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::FMAX),// ->347954
/*347935*/            OPC_RecordChild0, // #1 = $src1
/*347936*/            OPC_RecordChild1, // #2 = $src2
/*347937*/            OPC_MoveParent,
/*347938*/            OPC_MoveChild2,
/*347939*/            OPC_CheckImmAllZerosV,
/*347940*/            OPC_MoveParent,
/*347941*/            OPC_CheckType, MVT::v16f32,
/*347943*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*347945*/            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), immAllZerosV:{ *:[v16f32] }) - Complexity = 10
                      // Dst: (VMAXPSZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*347954*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::FMAX_SAE),// ->347976
/*347957*/            OPC_RecordChild0, // #1 = $src1
/*347958*/            OPC_RecordChild1, // #2 = $src2
/*347959*/            OPC_MoveParent,
/*347960*/            OPC_MoveChild2,
/*347961*/            OPC_CheckImmAllZerosV,
/*347962*/            OPC_MoveParent,
/*347963*/            OPC_CheckType, MVT::v16f32,
/*347965*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*347967*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPSZrrbkz), 0,
                          MVT::v16f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fmaxSAE:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), immAllZerosV:{ *:[v16f32] }) - Complexity = 10
                      // Dst: (VMAXPSZrrbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*347976*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::FMINC),// ->347998
/*347979*/            OPC_RecordChild0, // #1 = $src1
/*347980*/            OPC_RecordChild1, // #2 = $src2
/*347981*/            OPC_MoveParent,
/*347982*/            OPC_MoveChild2,
/*347983*/            OPC_CheckImmAllZerosV,
/*347984*/            OPC_MoveParent,
/*347985*/            OPC_CheckType, MVT::v16f32,
/*347987*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*347989*/            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), immAllZerosV:{ *:[v16f32] }) - Complexity = 10
                      // Dst: (VMINCPSZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*347998*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::FMAXC),// ->348020
/*348001*/            OPC_RecordChild0, // #1 = $src1
/*348002*/            OPC_RecordChild1, // #2 = $src2
/*348003*/            OPC_MoveParent,
/*348004*/            OPC_MoveChild2,
/*348005*/            OPC_CheckImmAllZerosV,
/*348006*/            OPC_MoveParent,
/*348007*/            OPC_CheckType, MVT::v16f32,
/*348009*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*348011*/            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), immAllZerosV:{ *:[v16f32] }) - Complexity = 10
                      // Dst: (VMAXCPSZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*348020*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::SCALEF),// ->348042
/*348023*/            OPC_RecordChild0, // #1 = $src1
/*348024*/            OPC_RecordChild1, // #2 = $src2
/*348025*/            OPC_MoveParent,
/*348026*/            OPC_MoveChild2,
/*348027*/            OPC_CheckImmAllZerosV,
/*348028*/            OPC_MoveParent,
/*348029*/            OPC_CheckType, MVT::v16f32,
/*348031*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*348033*/            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), immAllZerosV:{ *:[v16f32] }) - Complexity = 10
                      // Dst: (VSCALEFPSZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*348042*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::VPERMV),// ->348064
/*348045*/            OPC_RecordChild0, // #1 = $src1
/*348046*/            OPC_RecordChild1, // #2 = $src2
/*348047*/            OPC_MoveParent,
/*348048*/            OPC_MoveChild2,
/*348049*/            OPC_CheckImmAllZerosV,
/*348050*/            OPC_MoveParent,
/*348051*/            OPC_CheckType, MVT::v16f32,
/*348053*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*348055*/            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), immAllZerosV:{ *:[v16f32] }) - Complexity = 10
                      // Dst: (VPERMPSZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*348064*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::VPERMILPV),// ->348086
/*348067*/            OPC_RecordChild0, // #1 = $src1
/*348068*/            OPC_RecordChild1, // #2 = $src2
/*348069*/            OPC_MoveParent,
/*348070*/            OPC_MoveChild2,
/*348071*/            OPC_CheckImmAllZerosV,
/*348072*/            OPC_MoveParent,
/*348073*/            OPC_CheckType, MVT::v16f32,
/*348075*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*348077*/            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), immAllZerosV:{ *:[v16f32] }) - Complexity = 10
                      // Dst: (VPERMILPSZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*348086*/          /*SwitchOpcode*/ 24, TARGET_VAL(ISD::STRICT_FMA),// ->348113
/*348089*/            OPC_RecordNode, // #1 = 'X86strict_Fmadd' chained node
/*348090*/            OPC_CheckFoldableChainNode,
/*348091*/            OPC_RecordChild1, // #2 = $src2
/*348092*/            OPC_RecordChild2, // #3 = $src1
/*348093*/            OPC_RecordChild3, // #4 = $src3
/*348094*/            OPC_MoveParent,
/*348095*/            OPC_MoveChild2,
/*348096*/            OPC_CheckImmAllZerosV,
/*348097*/            OPC_MoveParent,
/*348098*/            OPC_CheckType, MVT::v16f32,
/*348100*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*348102*/            OPC_EmitMergeInputChains1_1,
/*348103*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZrkz), 0|OPFL_Chain,
                          MVT::v16f32, 4/*#Ops*/, 3, 0, 2, 4, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86strict_Fmadd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3), immAllZerosV:{ *:[v16f32] }) - Complexity = 10
                      // Dst: (VFMADD213PSZrkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3)
/*348113*/          /*SwitchOpcode*/ 21, TARGET_VAL(ISD::FMA),// ->348137
/*348116*/            OPC_RecordChild0, // #1 = $src2
/*348117*/            OPC_RecordChild1, // #2 = $src1
/*348118*/            OPC_RecordChild2, // #3 = $src3
/*348119*/            OPC_MoveParent,
/*348120*/            OPC_MoveChild2,
/*348121*/            OPC_CheckImmAllZerosV,
/*348122*/            OPC_MoveParent,
/*348123*/            OPC_CheckType, MVT::v16f32,
/*348125*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*348127*/            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), immAllZerosV:{ *:[v16f32] }) - Complexity = 10
                      // Dst: (VFMADD213PSZrkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3)
/*348137*/          /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::FMSUB),// ->348161
/*348140*/            OPC_RecordChild0, // #1 = $src2
/*348141*/            OPC_RecordChild1, // #2 = $src1
/*348142*/            OPC_RecordChild2, // #3 = $src3
/*348143*/            OPC_MoveParent,
/*348144*/            OPC_MoveChild2,
/*348145*/            OPC_CheckImmAllZerosV,
/*348146*/            OPC_MoveParent,
/*348147*/            OPC_CheckType, MVT::v16f32,
/*348149*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*348151*/            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), immAllZerosV:{ *:[v16f32] }) - Complexity = 10
                      // Dst: (VFMSUB213PSZrkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3)
/*348161*/          /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::FMADDSUB),// ->348185
/*348164*/            OPC_RecordChild0, // #1 = $src2
/*348165*/            OPC_RecordChild1, // #2 = $src1
/*348166*/            OPC_RecordChild2, // #3 = $src3
/*348167*/            OPC_MoveParent,
/*348168*/            OPC_MoveChild2,
/*348169*/            OPC_CheckImmAllZerosV,
/*348170*/            OPC_MoveParent,
/*348171*/            OPC_CheckType, MVT::v16f32,
/*348173*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*348175*/            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), immAllZerosV:{ *:[v16f32] }) - Complexity = 10
                      // Dst: (VFMADDSUB213PSZrkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3)
/*348185*/          /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::FMSUBADD),// ->348209
/*348188*/            OPC_RecordChild0, // #1 = $src2
/*348189*/            OPC_RecordChild1, // #2 = $src1
/*348190*/            OPC_RecordChild2, // #3 = $src3
/*348191*/            OPC_MoveParent,
/*348192*/            OPC_MoveChild2,
/*348193*/            OPC_CheckImmAllZerosV,
/*348194*/            OPC_MoveParent,
/*348195*/            OPC_CheckType, MVT::v16f32,
/*348197*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*348199*/            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), immAllZerosV:{ *:[v16f32] }) - Complexity = 10
                      // Dst: (VFMSUBADD213PSZrkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3)
/*348209*/          /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::FNMADD),// ->348233
/*348212*/            OPC_RecordChild0, // #1 = $src2
/*348213*/            OPC_RecordChild1, // #2 = $src1
/*348214*/            OPC_RecordChild2, // #3 = $src3
/*348215*/            OPC_MoveParent,
/*348216*/            OPC_MoveChild2,
/*348217*/            OPC_CheckImmAllZerosV,
/*348218*/            OPC_MoveParent,
/*348219*/            OPC_CheckType, MVT::v16f32,
/*348221*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*348223*/            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), immAllZerosV:{ *:[v16f32] }) - Complexity = 10
                      // Dst: (VFNMADD213PSZrkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3)
/*348233*/          /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::FNMSUB),// ->348257
/*348236*/            OPC_RecordChild0, // #1 = $src2
/*348237*/            OPC_RecordChild1, // #2 = $src1
/*348238*/            OPC_RecordChild2, // #3 = $src3
/*348239*/            OPC_MoveParent,
/*348240*/            OPC_MoveChild2,
/*348241*/            OPC_CheckImmAllZerosV,
/*348242*/            OPC_MoveParent,
/*348243*/            OPC_CheckType, MVT::v16f32,
/*348245*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*348247*/            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), immAllZerosV:{ *:[v16f32] }) - Complexity = 10
                      // Dst: (VFNMSUB213PSZrkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3)
/*348257*/          /*SwitchOpcode*/ 22, TARGET_VAL(ISD::STRICT_SINT_TO_FP),// ->348282
/*348260*/            OPC_RecordNode, // #1 = 'strict_sint_to_fp' chained node
/*348261*/            OPC_CheckFoldableChainNode,
/*348262*/            OPC_RecordChild1, // #2 = $src
/*348263*/            OPC_CheckChild1Type, MVT::v16i32,
/*348265*/            OPC_MoveParent,
/*348266*/            OPC_MoveChild2,
/*348267*/            OPC_CheckImmAllZerosV,
/*348268*/            OPC_MoveParent,
/*348269*/            OPC_CheckType, MVT::v16f32,
/*348271*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*348273*/            OPC_EmitMergeInputChains1_1,
/*348274*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSZrrkz), 0|OPFL_Chain,
                          MVT::v16f32, 2/*#Ops*/, 0, 2, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (strict_sint_to_fp:{ *:[v16f32] } VR512:{ *:[v16i32] }:$src), immAllZerosV:{ *:[v16f32] }) - Complexity = 10
                      // Dst: (VCVTDQ2PSZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)
/*348282*/          /*SwitchOpcode*/ 19, TARGET_VAL(ISD::SINT_TO_FP),// ->348304
/*348285*/            OPC_RecordChild0, // #1 = $src
/*348286*/            OPC_CheckChild0Type, MVT::v16i32,
/*348288*/            OPC_MoveParent,
/*348289*/            OPC_MoveChild2,
/*348290*/            OPC_CheckImmAllZerosV,
/*348291*/            OPC_MoveParent,
/*348292*/            OPC_CheckType, MVT::v16f32,
/*348294*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*348296*/            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), immAllZerosV:{ *:[v16f32] }) - Complexity = 10
                      // Dst: (VCVTDQ2PSZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)
/*348304*/          /*SwitchOpcode*/ 22, TARGET_VAL(ISD::STRICT_UINT_TO_FP),// ->348329
/*348307*/            OPC_RecordNode, // #1 = 'strict_uint_to_fp' chained node
/*348308*/            OPC_CheckFoldableChainNode,
/*348309*/            OPC_RecordChild1, // #2 = $src
/*348310*/            OPC_CheckChild1Type, MVT::v16i32,
/*348312*/            OPC_MoveParent,
/*348313*/            OPC_MoveChild2,
/*348314*/            OPC_CheckImmAllZerosV,
/*348315*/            OPC_MoveParent,
/*348316*/            OPC_CheckType, MVT::v16f32,
/*348318*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*348320*/            OPC_EmitMergeInputChains1_1,
/*348321*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PSZrrkz), 0|OPFL_Chain,
                          MVT::v16f32, 2/*#Ops*/, 0, 2, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (strict_uint_to_fp:{ *:[v16f32] } VR512:{ *:[v16i32] }:$src), immAllZerosV:{ *:[v16f32] }) - Complexity = 10
                      // Dst: (VCVTUDQ2PSZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)
/*348329*/          /*SwitchOpcode*/ 19, TARGET_VAL(ISD::UINT_TO_FP),// ->348351
/*348332*/            OPC_RecordChild0, // #1 = $src
/*348333*/            OPC_CheckChild0Type, MVT::v16i32,
/*348335*/            OPC_MoveParent,
/*348336*/            OPC_MoveChild2,
/*348337*/            OPC_CheckImmAllZerosV,
/*348338*/            OPC_MoveParent,
/*348339*/            OPC_CheckType, MVT::v16f32,
/*348341*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*348343*/            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), immAllZerosV:{ *:[v16f32] }) - Complexity = 10
                      // Dst: (VCVTUDQ2PSZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)
/*348351*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::CVTPH2PS),// ->348373
/*348354*/            OPC_RecordChild0, // #1 = $src
/*348355*/            OPC_CheckChild0Type, MVT::v16i16,
/*348357*/            OPC_MoveParent,
/*348358*/            OPC_MoveChild2,
/*348359*/            OPC_CheckImmAllZerosV,
/*348360*/            OPC_MoveParent,
/*348361*/            OPC_CheckType, MVT::v16f32,
/*348363*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*348365*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPH2PSZrrkz), 0,
                          MVT::v16f32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86cvtph2ps:{ *:[v16f32] } VR256X:{ *:[v16i16] }:$src), immAllZerosV:{ *:[v16f32] }) - Complexity = 10
                      // Dst: (VCVTPH2PSZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src)
/*348373*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::CVTPH2PS_SAE),// ->348395
/*348376*/            OPC_RecordChild0, // #1 = $src
/*348377*/            OPC_CheckChild0Type, MVT::v16i16,
/*348379*/            OPC_MoveParent,
/*348380*/            OPC_MoveChild2,
/*348381*/            OPC_CheckImmAllZerosV,
/*348382*/            OPC_MoveParent,
/*348383*/            OPC_CheckType, MVT::v16f32,
/*348385*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*348387*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPH2PSZrrbkz), 0,
                          MVT::v16f32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86cvtph2psSAE:{ *:[v16f32] } VR256X:{ *:[v16i16] }:$src), immAllZerosV:{ *:[v16f32] }) - Complexity = 10
                      // Dst: (VCVTPH2PSZrrbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src)
/*348395*/          /*SwitchOpcode*/ 17, TARGET_VAL(X86ISD::RSQRT14),// ->348415
/*348398*/            OPC_RecordChild0, // #1 = $src
/*348399*/            OPC_MoveParent,
/*348400*/            OPC_MoveChild2,
/*348401*/            OPC_CheckImmAllZerosV,
/*348402*/            OPC_MoveParent,
/*348403*/            OPC_CheckType, MVT::v16f32,
/*348405*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*348407*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14PSZrkz), 0,
                          MVT::v16f32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86rsqrt14:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src), immAllZerosV:{ *:[v16f32] }) - Complexity = 10
                      // Dst: (VRSQRT14PSZrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*348415*/          /*SwitchOpcode*/ 17, TARGET_VAL(X86ISD::RCP14),// ->348435
/*348418*/            OPC_RecordChild0, // #1 = $src
/*348419*/            OPC_MoveParent,
/*348420*/            OPC_MoveChild2,
/*348421*/            OPC_CheckImmAllZerosV,
/*348422*/            OPC_MoveParent,
/*348423*/            OPC_CheckType, MVT::v16f32,
/*348425*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*348427*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14PSZrkz), 0,
                          MVT::v16f32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86rcp14:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src), immAllZerosV:{ *:[v16f32] }) - Complexity = 10
                      // Dst: (VRCP14PSZrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*348435*/          /*SwitchOpcode*/ 17, TARGET_VAL(X86ISD::RSQRT28),// ->348455
/*348438*/            OPC_RecordChild0, // #1 = $src
/*348439*/            OPC_MoveParent,
/*348440*/            OPC_MoveChild2,
/*348441*/            OPC_CheckImmAllZerosV,
/*348442*/            OPC_MoveParent,
/*348443*/            OPC_CheckType, MVT::v16f32,
/*348445*/            OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*348447*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT28PSZrkz), 0,
                          MVT::v16f32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86rsqrt28:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src), immAllZerosV:{ *:[v16f32] }) - Complexity = 10
                      // Dst: (VRSQRT28PSZrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*348455*/          /*SwitchOpcode*/ 17, TARGET_VAL(X86ISD::RSQRT28_SAE),// ->348475
/*348458*/            OPC_RecordChild0, // #1 = $src
/*348459*/            OPC_MoveParent,
/*348460*/            OPC_MoveChild2,
/*348461*/            OPC_CheckImmAllZerosV,
/*348462*/            OPC_MoveParent,
/*348463*/            OPC_CheckType, MVT::v16f32,
/*348465*/            OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*348467*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT28PSZrbkz), 0,
                          MVT::v16f32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86rsqrt28SAE:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src), immAllZerosV:{ *:[v16f32] }) - Complexity = 10
                      // Dst: (VRSQRT28PSZrbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*348475*/          /*SwitchOpcode*/ 17, TARGET_VAL(X86ISD::RCP28),// ->348495
/*348478*/            OPC_RecordChild0, // #1 = $src
/*348479*/            OPC_MoveParent,
/*348480*/            OPC_MoveChild2,
/*348481*/            OPC_CheckImmAllZerosV,
/*348482*/            OPC_MoveParent,
/*348483*/            OPC_CheckType, MVT::v16f32,
/*348485*/            OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*348487*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP28PSZrkz), 0,
                          MVT::v16f32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86rcp28:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src), immAllZerosV:{ *:[v16f32] }) - Complexity = 10
                      // Dst: (VRCP28PSZrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*348495*/          /*SwitchOpcode*/ 17, TARGET_VAL(X86ISD::RCP28_SAE),// ->348515
/*348498*/            OPC_RecordChild0, // #1 = $src
/*348499*/            OPC_MoveParent,
/*348500*/            OPC_MoveChild2,
/*348501*/            OPC_CheckImmAllZerosV,
/*348502*/            OPC_MoveParent,
/*348503*/            OPC_CheckType, MVT::v16f32,
/*348505*/            OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*348507*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP28PSZrbkz), 0,
                          MVT::v16f32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86rcp28SAE:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src), immAllZerosV:{ *:[v16f32] }) - Complexity = 10
                      // Dst: (VRCP28PSZrbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*348515*/          /*SwitchOpcode*/ 17, TARGET_VAL(X86ISD::EXP2),// ->348535
/*348518*/            OPC_RecordChild0, // #1 = $src
/*348519*/            OPC_MoveParent,
/*348520*/            OPC_MoveChild2,
/*348521*/            OPC_CheckImmAllZerosV,
/*348522*/            OPC_MoveParent,
/*348523*/            OPC_CheckType, MVT::v16f32,
/*348525*/            OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*348527*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VEXP2PSZrkz), 0,
                          MVT::v16f32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86exp2:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src), immAllZerosV:{ *:[v16f32] }) - Complexity = 10
                      // Dst: (VEXP2PSZrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*348535*/          /*SwitchOpcode*/ 17, TARGET_VAL(X86ISD::EXP2_SAE),// ->348555
/*348538*/            OPC_RecordChild0, // #1 = $src
/*348539*/            OPC_MoveParent,
/*348540*/            OPC_MoveChild2,
/*348541*/            OPC_CheckImmAllZerosV,
/*348542*/            OPC_MoveParent,
/*348543*/            OPC_CheckType, MVT::v16f32,
/*348545*/            OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*348547*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VEXP2PSZrbkz), 0,
                          MVT::v16f32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86exp2SAE:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src), immAllZerosV:{ *:[v16f32] }) - Complexity = 10
                      // Dst: (VEXP2PSZrbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*348555*/          /*SwitchOpcode*/ 17, TARGET_VAL(X86ISD::FGETEXP),// ->348575
/*348558*/            OPC_RecordChild0, // #1 = $src
/*348559*/            OPC_MoveParent,
/*348560*/            OPC_MoveChild2,
/*348561*/            OPC_CheckImmAllZerosV,
/*348562*/            OPC_MoveParent,
/*348563*/            OPC_CheckType, MVT::v16f32,
/*348565*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*348567*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPSZrkz), 0,
                          MVT::v16f32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fgetexp:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src), immAllZerosV:{ *:[v16f32] }) - Complexity = 10
                      // Dst: (VGETEXPPSZrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*348575*/          /*SwitchOpcode*/ 17, TARGET_VAL(X86ISD::FGETEXP_SAE),// ->348595
/*348578*/            OPC_RecordChild0, // #1 = $src
/*348579*/            OPC_MoveParent,
/*348580*/            OPC_MoveChild2,
/*348581*/            OPC_CheckImmAllZerosV,
/*348582*/            OPC_MoveParent,
/*348583*/            OPC_CheckType, MVT::v16f32,
/*348585*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*348587*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPSZrbkz), 0,
                          MVT::v16f32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fgetexpSAE:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src), immAllZerosV:{ *:[v16f32] }) - Complexity = 10
                      // Dst: (VGETEXPPSZrbkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*348595*/          /*SwitchOpcode*/ 20, TARGET_VAL(ISD::STRICT_FSQRT),// ->348618
/*348598*/            OPC_RecordNode, // #1 = 'strict_fsqrt' chained node
/*348599*/            OPC_CheckFoldableChainNode,
/*348600*/            OPC_RecordChild1, // #2 = $src
/*348601*/            OPC_MoveParent,
/*348602*/            OPC_MoveChild2,
/*348603*/            OPC_CheckImmAllZerosV,
/*348604*/            OPC_MoveParent,
/*348605*/            OPC_CheckType, MVT::v16f32,
/*348607*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*348609*/            OPC_EmitMergeInputChains1_1,
/*348610*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSZrkz), 0|OPFL_Chain,
                          MVT::v16f32, 2/*#Ops*/, 0, 2, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (strict_fsqrt:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src), immAllZerosV:{ *:[v16f32] }) - Complexity = 10
                      // Dst: (VSQRTPSZrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*348618*/          /*SwitchOpcode*/ 17, TARGET_VAL(ISD::FSQRT),// ->348638
/*348621*/            OPC_RecordChild0, // #1 = $src
/*348622*/            OPC_MoveParent,
/*348623*/            OPC_MoveChild2,
/*348624*/            OPC_CheckImmAllZerosV,
/*348625*/            OPC_MoveParent,
/*348626*/            OPC_CheckType, MVT::v16f32,
/*348628*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*348630*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSZrkz), 0,
                          MVT::v16f32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (fsqrt:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src), immAllZerosV:{ *:[v16f32] }) - Complexity = 10
                      // Dst: (VSQRTPSZrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*348638*/          /*SwitchOpcode*/ 17, TARGET_VAL(X86ISD::MOVSHDUP),// ->348658
/*348641*/            OPC_RecordChild0, // #1 = $src1
/*348642*/            OPC_MoveParent,
/*348643*/            OPC_MoveChild2,
/*348644*/            OPC_CheckImmAllZerosV,
/*348645*/            OPC_MoveParent,
/*348646*/            OPC_CheckType, MVT::v16f32,
/*348648*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*348650*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSHDUPZrrkz), 0,
                          MVT::v16f32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Movshdup:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1), immAllZerosV:{ *:[v16f32] }) - Complexity = 10
                      // Dst: (VMOVSHDUPZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1)
/*348658*/          /*SwitchOpcode*/ 17, TARGET_VAL(X86ISD::MOVSLDUP),// ->348678
/*348661*/            OPC_RecordChild0, // #1 = $src1
/*348662*/            OPC_MoveParent,
/*348663*/            OPC_MoveChild2,
/*348664*/            OPC_CheckImmAllZerosV,
/*348665*/            OPC_MoveParent,
/*348666*/            OPC_CheckType, MVT::v16f32,
/*348668*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*348670*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSLDUPZrrkz), 0,
                          MVT::v16f32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Movsldup:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1), immAllZerosV:{ *:[v16f32] }) - Complexity = 10
                      // Dst: (VMOVSLDUPZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1)
/*348678*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::UNPCKH),// ->348700
/*348681*/            OPC_RecordChild0, // #1 = $src1
/*348682*/            OPC_RecordChild1, // #2 = $src2
/*348683*/            OPC_MoveParent,
/*348684*/            OPC_MoveChild2,
/*348685*/            OPC_CheckImmAllZerosV,
/*348686*/            OPC_MoveParent,
/*348687*/            OPC_CheckType, MVT::v16f32,
/*348689*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*348691*/            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), immAllZerosV:{ *:[v16f32] }) - Complexity = 10
                      // Dst: (VUNPCKHPSZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*348700*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::UNPCKL),// ->348722
/*348703*/            OPC_RecordChild0, // #1 = $src1
/*348704*/            OPC_RecordChild1, // #2 = $src2
/*348705*/            OPC_MoveParent,
/*348706*/            OPC_MoveChild2,
/*348707*/            OPC_CheckImmAllZerosV,
/*348708*/            OPC_MoveParent,
/*348709*/            OPC_CheckType, MVT::v16f32,
/*348711*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*348713*/            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), immAllZerosV:{ *:[v16f32] }) - Complexity = 10
                      // Dst: (VUNPCKLPSZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*348722*/          /*SwitchOpcode*/ 23, TARGET_VAL(X86ISD::DPBF16PS),// ->348748
/*348725*/            OPC_RecordChild0, // #1 = $src1
/*348726*/            OPC_RecordChild1, // #2 = $src2
/*348727*/            OPC_CheckChild1Type, MVT::v16i32,
/*348729*/            OPC_RecordChild2, // #3 = $src3
/*348730*/            OPC_MoveParent,
/*348731*/            OPC_MoveChild2,
/*348732*/            OPC_CheckImmAllZerosV,
/*348733*/            OPC_MoveParent,
/*348734*/            OPC_CheckType, MVT::v16f32,
/*348736*/            OPC_CheckPatternPredicate, 183, // (Subtarget->hasBF16())
/*348738*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDPBF16PSZrkz), 0,
                          MVT::v16f32, 4/*#Ops*/, 1, 0, 2, 3, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86dpbf16ps:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3), immAllZerosV:{ *:[v16f32] }) - Complexity = 10
                      // Dst: (VDPBF16PSZrkz:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3)
/*348748*/          0, // EndSwitchOpcode
/*348749*/        /*Scope*/ 69, /*->348819*/
/*348750*/          OPC_RecordChild1, // #1 = $src3
/*348751*/          OPC_MoveChild1,
/*348752*/          OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*348755*/          OPC_RecordChild0, // #2 = $src1
/*348756*/          OPC_RecordChild1, // #3 = $src2
/*348757*/          OPC_Scope, 29, /*->348788*/ // 2 children in Scope
/*348759*/            OPC_CheckChild1Type, MVT::v4f32,
/*348761*/            OPC_MoveChild2,
/*348762*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*348765*/            OPC_CheckType, MVT::iPTR,
/*348767*/            OPC_MoveParent,
/*348768*/            OPC_MoveParent,
/*348769*/            OPC_RecordChild2, // #4 = $src0
/*348770*/            OPC_CheckType, MVT::v16f32,
/*348772*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*348774*/            OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*348777*/            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))
/*348788*/          /*Scope*/ 29, /*->348818*/
/*348789*/            OPC_CheckChild1Type, MVT::v8f32,
/*348791*/            OPC_MoveChild2,
/*348792*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*348795*/            OPC_CheckType, MVT::iPTR,
/*348797*/            OPC_MoveParent,
/*348798*/            OPC_MoveParent,
/*348799*/            OPC_RecordChild2, // #4 = $src0
/*348800*/            OPC_CheckType, MVT::v16f32,
/*348802*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*348804*/            OPC_EmitNodeXForm, 16, 1, // INSERT_get_vinsert256_imm
/*348807*/            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))
/*348818*/          0, /*End of Scope*/
/*348819*/        /*Scope*/ 81|128,10/*1361*/, /*->350182*/
/*348821*/          OPC_MoveChild1,
/*348822*/          OPC_SwitchOpcode /*29 cases */, 103|128,2/*359*/, TARGET_VAL(ISD::BITCAST),// ->349186
/*348827*/            OPC_MoveChild0,
/*348828*/            OPC_SwitchOpcode /*5 cases */, 21, TARGET_VAL(X86ISD::VBROADCAST),// ->348853
/*348832*/              OPC_RecordChild0, // #1 = $src
/*348833*/              OPC_CheckChild0Type, MVT::v2f64,
/*348835*/              OPC_CheckType, MVT::v8f64,
/*348837*/              OPC_MoveParent,
/*348838*/              OPC_MoveParent,
/*348839*/              OPC_RecordChild2, // #2 = $src0
/*348840*/              OPC_CheckType, MVT::v16f32,
/*348842*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*348844*/              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)
/*348853*/            /*SwitchOpcode*/ 80, TARGET_VAL(ISD::AND),// ->348936
/*348856*/              OPC_RecordChild0, // #1 = $src1
/*348857*/              OPC_RecordChild1, // #2 = $src2
/*348858*/              OPC_SwitchType /*4 cases */, 17, MVT::v8i64,// ->348878
/*348861*/                OPC_MoveParent,
/*348862*/                OPC_MoveParent,
/*348863*/                OPC_RecordChild2, // #3 = $src0
/*348864*/                OPC_CheckType, MVT::v16f32,
/*348866*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*348868*/                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)
/*348878*/              /*SwitchType*/ 17, MVT::v16i32,// ->348897
/*348880*/                OPC_MoveParent,
/*348881*/                OPC_MoveParent,
/*348882*/                OPC_RecordChild2, // #3 = $src0
/*348883*/                OPC_CheckType, MVT::v16f32,
/*348885*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*348887*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZrrk), 0,
                              MVT::v16f32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (and:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)), VR512:{ *:[v16f32] }:$src0) - Complexity = 9
                          // Dst: (VPANDDZrrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*348897*/              /*SwitchType*/ 17, MVT::v32i16,// ->348916
/*348899*/                OPC_MoveParent,
/*348900*/                OPC_MoveParent,
/*348901*/                OPC_RecordChild2, // #3 = $src0
/*348902*/                OPC_CheckType, MVT::v16f32,
/*348904*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*348906*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZrrk), 0,
                              MVT::v16f32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (and:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)), VR512:{ *:[v16f32] }:$src0) - Complexity = 9
                          // Dst: (VPANDDZrrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*348916*/              /*SwitchType*/ 17, MVT::v64i8,// ->348935
/*348918*/                OPC_MoveParent,
/*348919*/                OPC_MoveParent,
/*348920*/                OPC_RecordChild2, // #3 = $src0
/*348921*/                OPC_CheckType, MVT::v16f32,
/*348923*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*348925*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZrrk), 0,
                              MVT::v16f32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (and:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)), VR512:{ *:[v16f32] }:$src0) - Complexity = 9
                          // Dst: (VPANDDZrrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*348935*/              0, // EndSwitchType
/*348936*/            /*SwitchOpcode*/ 80, TARGET_VAL(ISD::OR),// ->349019
/*348939*/              OPC_RecordChild0, // #1 = $src1
/*348940*/              OPC_RecordChild1, // #2 = $src2
/*348941*/              OPC_SwitchType /*4 cases */, 17, MVT::v8i64,// ->348961
/*348944*/                OPC_MoveParent,
/*348945*/                OPC_MoveParent,
/*348946*/                OPC_RecordChild2, // #3 = $src0
/*348947*/                OPC_CheckType, MVT::v16f32,
/*348949*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*348951*/                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)
/*348961*/              /*SwitchType*/ 17, MVT::v16i32,// ->348980
/*348963*/                OPC_MoveParent,
/*348964*/                OPC_MoveParent,
/*348965*/                OPC_RecordChild2, // #3 = $src0
/*348966*/                OPC_CheckType, MVT::v16f32,
/*348968*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*348970*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZrrk), 0,
                              MVT::v16f32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (or:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)), VR512:{ *:[v16f32] }:$src0) - Complexity = 9
                          // Dst: (VPORDZrrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*348980*/              /*SwitchType*/ 17, MVT::v32i16,// ->348999
/*348982*/                OPC_MoveParent,
/*348983*/                OPC_MoveParent,
/*348984*/                OPC_RecordChild2, // #3 = $src0
/*348985*/                OPC_CheckType, MVT::v16f32,
/*348987*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*348989*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZrrk), 0,
                              MVT::v16f32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (or:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)), VR512:{ *:[v16f32] }:$src0) - Complexity = 9
                          // Dst: (VPORDZrrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*348999*/              /*SwitchType*/ 17, MVT::v64i8,// ->349018
/*349001*/                OPC_MoveParent,
/*349002*/                OPC_MoveParent,
/*349003*/                OPC_RecordChild2, // #3 = $src0
/*349004*/                OPC_CheckType, MVT::v16f32,
/*349006*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*349008*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZrrk), 0,
                              MVT::v16f32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (or:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)), VR512:{ *:[v16f32] }:$src0) - Complexity = 9
                          // Dst: (VPORDZrrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*349018*/              0, // EndSwitchType
/*349019*/            /*SwitchOpcode*/ 80, TARGET_VAL(ISD::XOR),// ->349102
/*349022*/              OPC_RecordChild0, // #1 = $src1
/*349023*/              OPC_RecordChild1, // #2 = $src2
/*349024*/              OPC_SwitchType /*4 cases */, 17, MVT::v8i64,// ->349044
/*349027*/                OPC_MoveParent,
/*349028*/                OPC_MoveParent,
/*349029*/                OPC_RecordChild2, // #3 = $src0
/*349030*/                OPC_CheckType, MVT::v16f32,
/*349032*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*349034*/                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)
/*349044*/              /*SwitchType*/ 17, MVT::v16i32,// ->349063
/*349046*/                OPC_MoveParent,
/*349047*/                OPC_MoveParent,
/*349048*/                OPC_RecordChild2, // #3 = $src0
/*349049*/                OPC_CheckType, MVT::v16f32,
/*349051*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*349053*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZrrk), 0,
                              MVT::v16f32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (xor:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)), VR512:{ *:[v16f32] }:$src0) - Complexity = 9
                          // Dst: (VPXORDZrrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*349063*/              /*SwitchType*/ 17, MVT::v32i16,// ->349082
/*349065*/                OPC_MoveParent,
/*349066*/                OPC_MoveParent,
/*349067*/                OPC_RecordChild2, // #3 = $src0
/*349068*/                OPC_CheckType, MVT::v16f32,
/*349070*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*349072*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZrrk), 0,
                              MVT::v16f32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (xor:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)), VR512:{ *:[v16f32] }:$src0) - Complexity = 9
                          // Dst: (VPXORDZrrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*349082*/              /*SwitchType*/ 17, MVT::v64i8,// ->349101
/*349084*/                OPC_MoveParent,
/*349085*/                OPC_MoveParent,
/*349086*/                OPC_RecordChild2, // #3 = $src0
/*349087*/                OPC_CheckType, MVT::v16f32,
/*349089*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*349091*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZrrk), 0,
                              MVT::v16f32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (xor:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)), VR512:{ *:[v16f32] }:$src0) - Complexity = 9
                          // Dst: (VPXORDZrrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*349101*/              0, // EndSwitchType
/*349102*/            /*SwitchOpcode*/ 80, TARGET_VAL(X86ISD::ANDNP),// ->349185
/*349105*/              OPC_RecordChild0, // #1 = $src1
/*349106*/              OPC_RecordChild1, // #2 = $src2
/*349107*/              OPC_SwitchType /*4 cases */, 17, MVT::v8i64,// ->349127
/*349110*/                OPC_MoveParent,
/*349111*/                OPC_MoveParent,
/*349112*/                OPC_RecordChild2, // #3 = $src0
/*349113*/                OPC_CheckType, MVT::v16f32,
/*349115*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*349117*/                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)
/*349127*/              /*SwitchType*/ 17, MVT::v16i32,// ->349146
/*349129*/                OPC_MoveParent,
/*349130*/                OPC_MoveParent,
/*349131*/                OPC_RecordChild2, // #3 = $src0
/*349132*/                OPC_CheckType, MVT::v16f32,
/*349134*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*349136*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZrrk), 0,
                              MVT::v16f32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (X86andnp:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)), VR512:{ *:[v16f32] }:$src0) - Complexity = 9
                          // Dst: (VPANDNDZrrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*349146*/              /*SwitchType*/ 17, MVT::v32i16,// ->349165
/*349148*/                OPC_MoveParent,
/*349149*/                OPC_MoveParent,
/*349150*/                OPC_RecordChild2, // #3 = $src0
/*349151*/                OPC_CheckType, MVT::v16f32,
/*349153*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*349155*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZrrk), 0,
                              MVT::v16f32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (X86andnp:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)), VR512:{ *:[v16f32] }:$src0) - Complexity = 9
                          // Dst: (VPANDNDZrrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*349165*/              /*SwitchType*/ 17, MVT::v64i8,// ->349184
/*349167*/                OPC_MoveParent,
/*349168*/                OPC_MoveParent,
/*349169*/                OPC_RecordChild2, // #3 = $src0
/*349170*/                OPC_CheckType, MVT::v16f32,
/*349172*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*349174*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZrrk), 0,
                              MVT::v16f32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (bitconvert:{ *:[v16f32] } (X86andnp:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)), VR512:{ *:[v16f32] }:$src0) - Complexity = 9
                          // Dst: (VPANDNDZrrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*349184*/              0, // EndSwitchType
/*349185*/            0, // EndSwitchOpcode
/*349186*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::VPERMV3),// ->349214
/*349189*/            OPC_RecordChild0, // #1 = $src2
/*349190*/            OPC_RecordChild1, // #2 = $src1
/*349191*/            OPC_RecordChild2, // #3 = $src3
/*349192*/            OPC_MoveParent,
/*349193*/            OPC_MoveChild2,
/*349194*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*349197*/            OPC_CheckChild0Same, 2,
/*349199*/            OPC_MoveParent,
/*349200*/            OPC_CheckType, MVT::v16f32,
/*349202*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*349204*/            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)
/*349214*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::FADD_RND),// ->349242
/*349217*/            OPC_RecordChild0, // #1 = $src1
/*349218*/            OPC_RecordChild1, // #2 = $src2
/*349219*/            OPC_RecordChild2, // #3 = $rc
/*349220*/            OPC_MoveChild2,
/*349221*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*349224*/            OPC_MoveParent,
/*349225*/            OPC_MoveParent,
/*349226*/            OPC_RecordChild2, // #4 = $src0
/*349227*/            OPC_CheckType, MVT::v16f32,
/*349229*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*349231*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZrrbk), 0,
                          MVT::v16f32, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86faddRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i32] }):$rc), VR512:{ *:[v16f32] }:$src0) - Complexity = 9
                      // Dst: (VADDPSZrrbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i32] }):$rc)
/*349242*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::FMUL_RND),// ->349270
/*349245*/            OPC_RecordChild0, // #1 = $src1
/*349246*/            OPC_RecordChild1, // #2 = $src2
/*349247*/            OPC_RecordChild2, // #3 = $rc
/*349248*/            OPC_MoveChild2,
/*349249*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*349252*/            OPC_MoveParent,
/*349253*/            OPC_MoveParent,
/*349254*/            OPC_RecordChild2, // #4 = $src0
/*349255*/            OPC_CheckType, MVT::v16f32,
/*349257*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*349259*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZrrbk), 0,
                          MVT::v16f32, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fmulRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i32] }):$rc), VR512:{ *:[v16f32] }:$src0) - Complexity = 9
                      // Dst: (VMULPSZrrbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i32] }):$rc)
/*349270*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::FSUB_RND),// ->349298
/*349273*/            OPC_RecordChild0, // #1 = $src1
/*349274*/            OPC_RecordChild1, // #2 = $src2
/*349275*/            OPC_RecordChild2, // #3 = $rc
/*349276*/            OPC_MoveChild2,
/*349277*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*349280*/            OPC_MoveParent,
/*349281*/            OPC_MoveParent,
/*349282*/            OPC_RecordChild2, // #4 = $src0
/*349283*/            OPC_CheckType, MVT::v16f32,
/*349285*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*349287*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSZrrbk), 0,
                          MVT::v16f32, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fsubRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i32] }):$rc), VR512:{ *:[v16f32] }:$src0) - Complexity = 9
                      // Dst: (VSUBPSZrrbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i32] }):$rc)
/*349298*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::FDIV_RND),// ->349326
/*349301*/            OPC_RecordChild0, // #1 = $src1
/*349302*/            OPC_RecordChild1, // #2 = $src2
/*349303*/            OPC_RecordChild2, // #3 = $rc
/*349304*/            OPC_MoveChild2,
/*349305*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*349308*/            OPC_MoveParent,
/*349309*/            OPC_MoveParent,
/*349310*/            OPC_RecordChild2, // #4 = $src0
/*349311*/            OPC_CheckType, MVT::v16f32,
/*349313*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*349315*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSZrrbk), 0,
                          MVT::v16f32, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fdivRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i32] }):$rc), VR512:{ *:[v16f32] }:$src0) - Complexity = 9
                      // Dst: (VDIVPSZrrbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i32] }):$rc)
/*349326*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::SCALEF_RND),// ->349354
/*349329*/            OPC_RecordChild0, // #1 = $src1
/*349330*/            OPC_RecordChild1, // #2 = $src2
/*349331*/            OPC_RecordChild2, // #3 = $rc
/*349332*/            OPC_MoveChild2,
/*349333*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*349336*/            OPC_MoveParent,
/*349337*/            OPC_MoveParent,
/*349338*/            OPC_RecordChild2, // #4 = $src0
/*349339*/            OPC_CheckType, MVT::v16f32,
/*349341*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*349343*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPSZrrbk), 0,
                          MVT::v16f32, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86scalefRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i32] }):$rc), VR512:{ *:[v16f32] }:$src0) - Complexity = 9
                      // Dst: (VSCALEFPSZrrbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i32] }):$rc)
/*349354*/          /*SwitchOpcode*/ 23, TARGET_VAL(X86ISD::VPERMILPI),// ->349380
/*349357*/            OPC_RecordChild0, // #1 = $src1
/*349358*/            OPC_RecordChild1, // #2 = $src2
/*349359*/            OPC_MoveChild1,
/*349360*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*349363*/            OPC_MoveParent,
/*349364*/            OPC_MoveParent,
/*349365*/            OPC_RecordChild2, // #3 = $src0
/*349366*/            OPC_CheckType, MVT::v16f32,
/*349368*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*349370*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZrik), 0,
                          MVT::v16f32, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VPermilpi:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i8] }):$src2), VR512:{ *:[v16f32] }:$src0) - Complexity = 9
                      // Dst: (VPERMILPSZrik:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i8] }):$src2)
/*349380*/          /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::FMADD_RND),// ->349445
/*349383*/            OPC_RecordChild0, // #1 = $src2
/*349384*/            OPC_RecordChild1, // #2 = $src1
/*349385*/            OPC_RecordChild2, // #3 = $src3
/*349386*/            OPC_RecordChild3, // #4 = $rc
/*349387*/            OPC_MoveChild3,
/*349388*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*349391*/            OPC_MoveParent,
/*349392*/            OPC_MoveParent,
/*349393*/            OPC_CheckType, MVT::v16f32,
/*349395*/            OPC_Scope, 15, /*->349412*/ // 3 children in Scope
/*349397*/              OPC_CheckChild2Same, 2,
/*349399*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*349401*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZrbk), 0,
                            MVT::v16f32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86FmaddRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3, (timm:{ *:[i32] }):$rc), VR512:{ *:[v16f32] }:$src1) - Complexity = 9
                        // Dst: (VFMADD213PSZrbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, (timm:{ *:[i32] }):$rc)
/*349412*/            /*Scope*/ 15, /*->349428*/
/*349413*/              OPC_CheckChild2Same, 3,
/*349415*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*349417*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PSZrbk), 0,
                            MVT::v16f32, 5/*#Ops*/, 3, 0, 1, 2, 4, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86FmaddRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i32] }):$rc), VR512:{ *:[v16f32] }:$src1) - Complexity = 9
                        // Dst: (VFMADD231PSZrbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, (timm:{ *:[i32] }):$rc)
/*349428*/            /*Scope*/ 15, /*->349444*/
/*349429*/              OPC_CheckChild2Same, 1,
/*349431*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*349433*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PSZrbk), 0,
                            MVT::v16f32, 5/*#Ops*/, 1, 0, 3, 2, 4, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86FmaddRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i32] }):$rc), VR512:{ *:[v16f32] }:$src1) - Complexity = 9
                        // Dst: (VFMADD132PSZrbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, (timm:{ *:[i32] }):$rc)
/*349444*/            0, /*End of Scope*/
/*349445*/          /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::FMSUB_RND),// ->349510
/*349448*/            OPC_RecordChild0, // #1 = $src2
/*349449*/            OPC_RecordChild1, // #2 = $src1
/*349450*/            OPC_RecordChild2, // #3 = $src3
/*349451*/            OPC_RecordChild3, // #4 = $rc
/*349452*/            OPC_MoveChild3,
/*349453*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*349456*/            OPC_MoveParent,
/*349457*/            OPC_MoveParent,
/*349458*/            OPC_CheckType, MVT::v16f32,
/*349460*/            OPC_Scope, 15, /*->349477*/ // 3 children in Scope
/*349462*/              OPC_CheckChild2Same, 2,
/*349464*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*349466*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213PSZrbk), 0,
                            MVT::v16f32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86FmsubRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3, (timm:{ *:[i32] }):$rc), VR512:{ *:[v16f32] }:$src1) - Complexity = 9
                        // Dst: (VFMSUB213PSZrbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, (timm:{ *:[i32] }):$rc)
/*349477*/            /*Scope*/ 15, /*->349493*/
/*349478*/              OPC_CheckChild2Same, 3,
/*349480*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*349482*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231PSZrbk), 0,
                            MVT::v16f32, 5/*#Ops*/, 3, 0, 1, 2, 4, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86FmsubRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i32] }):$rc), VR512:{ *:[v16f32] }:$src1) - Complexity = 9
                        // Dst: (VFMSUB231PSZrbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, (timm:{ *:[i32] }):$rc)
/*349493*/            /*Scope*/ 15, /*->349509*/
/*349494*/              OPC_CheckChild2Same, 1,
/*349496*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*349498*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB132PSZrbk), 0,
                            MVT::v16f32, 5/*#Ops*/, 1, 0, 3, 2, 4, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86FmsubRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i32] }):$rc), VR512:{ *:[v16f32] }:$src1) - Complexity = 9
                        // Dst: (VFMSUB132PSZrbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, (timm:{ *:[i32] }):$rc)
/*349509*/            0, /*End of Scope*/
/*349510*/          /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::FMADDSUB_RND),// ->349575
/*349513*/            OPC_RecordChild0, // #1 = $src2
/*349514*/            OPC_RecordChild1, // #2 = $src1
/*349515*/            OPC_RecordChild2, // #3 = $src3
/*349516*/            OPC_RecordChild3, // #4 = $rc
/*349517*/            OPC_MoveChild3,
/*349518*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*349521*/            OPC_MoveParent,
/*349522*/            OPC_MoveParent,
/*349523*/            OPC_CheckType, MVT::v16f32,
/*349525*/            OPC_Scope, 15, /*->349542*/ // 3 children in Scope
/*349527*/              OPC_CheckChild2Same, 2,
/*349529*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*349531*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PSZrbk), 0,
                            MVT::v16f32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86FmaddsubRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3, (timm:{ *:[i32] }):$rc), VR512:{ *:[v16f32] }:$src1) - Complexity = 9
                        // Dst: (VFMADDSUB213PSZrbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, (timm:{ *:[i32] }):$rc)
/*349542*/            /*Scope*/ 15, /*->349558*/
/*349543*/              OPC_CheckChild2Same, 3,
/*349545*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*349547*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB231PSZrbk), 0,
                            MVT::v16f32, 5/*#Ops*/, 3, 0, 1, 2, 4, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86FmaddsubRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i32] }):$rc), VR512:{ *:[v16f32] }:$src1) - Complexity = 9
                        // Dst: (VFMADDSUB231PSZrbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, (timm:{ *:[i32] }):$rc)
/*349558*/            /*Scope*/ 15, /*->349574*/
/*349559*/              OPC_CheckChild2Same, 1,
/*349561*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*349563*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB132PSZrbk), 0,
                            MVT::v16f32, 5/*#Ops*/, 1, 0, 3, 2, 4, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86FmaddsubRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i32] }):$rc), VR512:{ *:[v16f32] }:$src1) - Complexity = 9
                        // Dst: (VFMADDSUB132PSZrbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, (timm:{ *:[i32] }):$rc)
/*349574*/            0, /*End of Scope*/
/*349575*/          /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::FMSUBADD_RND),// ->349640
/*349578*/            OPC_RecordChild0, // #1 = $src2
/*349579*/            OPC_RecordChild1, // #2 = $src1
/*349580*/            OPC_RecordChild2, // #3 = $src3
/*349581*/            OPC_RecordChild3, // #4 = $rc
/*349582*/            OPC_MoveChild3,
/*349583*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*349586*/            OPC_MoveParent,
/*349587*/            OPC_MoveParent,
/*349588*/            OPC_CheckType, MVT::v16f32,
/*349590*/            OPC_Scope, 15, /*->349607*/ // 3 children in Scope
/*349592*/              OPC_CheckChild2Same, 2,
/*349594*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*349596*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PSZrbk), 0,
                            MVT::v16f32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86FmsubaddRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3, (timm:{ *:[i32] }):$rc), VR512:{ *:[v16f32] }:$src1) - Complexity = 9
                        // Dst: (VFMSUBADD213PSZrbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, (timm:{ *:[i32] }):$rc)
/*349607*/            /*Scope*/ 15, /*->349623*/
/*349608*/              OPC_CheckChild2Same, 3,
/*349610*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*349612*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD231PSZrbk), 0,
                            MVT::v16f32, 5/*#Ops*/, 3, 0, 1, 2, 4, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86FmsubaddRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i32] }):$rc), VR512:{ *:[v16f32] }:$src1) - Complexity = 9
                        // Dst: (VFMSUBADD231PSZrbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, (timm:{ *:[i32] }):$rc)
/*349623*/            /*Scope*/ 15, /*->349639*/
/*349624*/              OPC_CheckChild2Same, 1,
/*349626*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*349628*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD132PSZrbk), 0,
                            MVT::v16f32, 5/*#Ops*/, 1, 0, 3, 2, 4, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86FmsubaddRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i32] }):$rc), VR512:{ *:[v16f32] }:$src1) - Complexity = 9
                        // Dst: (VFMSUBADD132PSZrbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, (timm:{ *:[i32] }):$rc)
/*349639*/            0, /*End of Scope*/
/*349640*/          /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::FNMADD_RND),// ->349705
/*349643*/            OPC_RecordChild0, // #1 = $src2
/*349644*/            OPC_RecordChild1, // #2 = $src1
/*349645*/            OPC_RecordChild2, // #3 = $src3
/*349646*/            OPC_RecordChild3, // #4 = $rc
/*349647*/            OPC_MoveChild3,
/*349648*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*349651*/            OPC_MoveParent,
/*349652*/            OPC_MoveParent,
/*349653*/            OPC_CheckType, MVT::v16f32,
/*349655*/            OPC_Scope, 15, /*->349672*/ // 3 children in Scope
/*349657*/              OPC_CheckChild2Same, 2,
/*349659*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*349661*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213PSZrbk), 0,
                            MVT::v16f32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86FnmaddRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3, (timm:{ *:[i32] }):$rc), VR512:{ *:[v16f32] }:$src1) - Complexity = 9
                        // Dst: (VFNMADD213PSZrbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, (timm:{ *:[i32] }):$rc)
/*349672*/            /*Scope*/ 15, /*->349688*/
/*349673*/              OPC_CheckChild2Same, 3,
/*349675*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*349677*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231PSZrbk), 0,
                            MVT::v16f32, 5/*#Ops*/, 3, 0, 1, 2, 4, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86FnmaddRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i32] }):$rc), VR512:{ *:[v16f32] }:$src1) - Complexity = 9
                        // Dst: (VFNMADD231PSZrbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, (timm:{ *:[i32] }):$rc)
/*349688*/            /*Scope*/ 15, /*->349704*/
/*349689*/              OPC_CheckChild2Same, 1,
/*349691*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*349693*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD132PSZrbk), 0,
                            MVT::v16f32, 5/*#Ops*/, 1, 0, 3, 2, 4, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86FnmaddRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i32] }):$rc), VR512:{ *:[v16f32] }:$src1) - Complexity = 9
                        // Dst: (VFNMADD132PSZrbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, (timm:{ *:[i32] }):$rc)
/*349704*/            0, /*End of Scope*/
/*349705*/          /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::FNMSUB_RND),// ->349770
/*349708*/            OPC_RecordChild0, // #1 = $src2
/*349709*/            OPC_RecordChild1, // #2 = $src1
/*349710*/            OPC_RecordChild2, // #3 = $src3
/*349711*/            OPC_RecordChild3, // #4 = $rc
/*349712*/            OPC_MoveChild3,
/*349713*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*349716*/            OPC_MoveParent,
/*349717*/            OPC_MoveParent,
/*349718*/            OPC_CheckType, MVT::v16f32,
/*349720*/            OPC_Scope, 15, /*->349737*/ // 3 children in Scope
/*349722*/              OPC_CheckChild2Same, 2,
/*349724*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*349726*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213PSZrbk), 0,
                            MVT::v16f32, 5/*#Ops*/, 2, 0, 1, 3, 4, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86FnmsubRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3, (timm:{ *:[i32] }):$rc), VR512:{ *:[v16f32] }:$src1) - Complexity = 9
                        // Dst: (VFNMSUB213PSZrbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, (timm:{ *:[i32] }):$rc)
/*349737*/            /*Scope*/ 15, /*->349753*/
/*349738*/              OPC_CheckChild2Same, 3,
/*349740*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*349742*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231PSZrbk), 0,
                            MVT::v16f32, 5/*#Ops*/, 3, 0, 1, 2, 4, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86FnmsubRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i32] }):$rc), VR512:{ *:[v16f32] }:$src1) - Complexity = 9
                        // Dst: (VFNMSUB231PSZrbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, (timm:{ *:[i32] }):$rc)
/*349753*/            /*Scope*/ 15, /*->349769*/
/*349754*/              OPC_CheckChild2Same, 1,
/*349756*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*349758*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB132PSZrbk), 0,
                            MVT::v16f32, 5/*#Ops*/, 1, 0, 3, 2, 4, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86FnmsubRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i32] }):$rc), VR512:{ *:[v16f32] }:$src1) - Complexity = 9
                        // Dst: (VFNMSUB132PSZrbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, (timm:{ *:[i32] }):$rc)
/*349769*/            0, /*End of Scope*/
/*349770*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::SINT_TO_FP_RND),// ->349798
/*349773*/            OPC_RecordChild0, // #1 = $src
/*349774*/            OPC_CheckChild0Type, MVT::v16i32,
/*349776*/            OPC_RecordChild1, // #2 = $rc
/*349777*/            OPC_MoveChild1,
/*349778*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*349781*/            OPC_MoveParent,
/*349782*/            OPC_MoveParent,
/*349783*/            OPC_RecordChild2, // #3 = $src0
/*349784*/            OPC_CheckType, MVT::v16f32,
/*349786*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*349788*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSZrrbk), 0,
                          MVT::v16f32, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VSintToFpRnd:{ *:[v16f32] } VR512:{ *:[v16i32] }:$src, (timm:{ *:[i32] }):$rc), VR512:{ *:[v16f32] }:$src0) - Complexity = 9
                      // Dst: (VCVTDQ2PSZrrbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src, (timm:{ *:[i32] }):$rc)
/*349798*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::UINT_TO_FP_RND),// ->349826
/*349801*/            OPC_RecordChild0, // #1 = $src
/*349802*/            OPC_CheckChild0Type, MVT::v16i32,
/*349804*/            OPC_RecordChild1, // #2 = $rc
/*349805*/            OPC_MoveChild1,
/*349806*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*349809*/            OPC_MoveParent,
/*349810*/            OPC_MoveParent,
/*349811*/            OPC_RecordChild2, // #3 = $src0
/*349812*/            OPC_CheckType, MVT::v16f32,
/*349814*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*349816*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PSZrrbk), 0,
                          MVT::v16f32, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VUintToFpRnd:{ *:[v16f32] } VR512:{ *:[v16i32] }:$src, (timm:{ *:[i32] }):$rc), VR512:{ *:[v16f32] }:$src0) - Complexity = 9
                      // Dst: (VCVTUDQ2PSZrrbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src, (timm:{ *:[i32] }):$rc)
/*349826*/          /*SwitchOpcode*/ 23, TARGET_VAL(X86ISD::FSQRT_RND),// ->349852
/*349829*/            OPC_RecordChild0, // #1 = $src
/*349830*/            OPC_RecordChild1, // #2 = $rc
/*349831*/            OPC_MoveChild1,
/*349832*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*349835*/            OPC_MoveParent,
/*349836*/            OPC_MoveParent,
/*349837*/            OPC_RecordChild2, // #3 = $src0
/*349838*/            OPC_CheckType, MVT::v16f32,
/*349840*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*349842*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSZrbk), 0,
                          MVT::v16f32, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fsqrtRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src, (timm:{ *:[i32] }):$rc), VR512:{ *:[v16f32] }:$src0) - Complexity = 9
                      // Dst: (VSQRTPSZrbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src, (timm:{ *:[i32] }):$rc)
/*349852*/          /*SwitchOpcode*/ 23, TARGET_VAL(X86ISD::VREDUCE),// ->349878
/*349855*/            OPC_RecordChild0, // #1 = $src1
/*349856*/            OPC_RecordChild1, // #2 = $src2
/*349857*/            OPC_MoveChild1,
/*349858*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*349861*/            OPC_MoveParent,
/*349862*/            OPC_MoveParent,
/*349863*/            OPC_RecordChild2, // #3 = $src0
/*349864*/            OPC_CheckType, MVT::v16f32,
/*349866*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*349868*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPSZrrik), 0,
                          MVT::v16f32, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VReduce:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i32] }):$src2), VR512:{ *:[v16f32] }:$src0) - Complexity = 9
                      // Dst: (VREDUCEPSZrrik:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*349878*/          /*SwitchOpcode*/ 23, TARGET_VAL(X86ISD::VREDUCE_SAE),// ->349904
/*349881*/            OPC_RecordChild0, // #1 = $src1
/*349882*/            OPC_RecordChild1, // #2 = $src2
/*349883*/            OPC_MoveChild1,
/*349884*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*349887*/            OPC_MoveParent,
/*349888*/            OPC_MoveParent,
/*349889*/            OPC_RecordChild2, // #3 = $src0
/*349890*/            OPC_CheckType, MVT::v16f32,
/*349892*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*349894*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPSZrribk), 0,
                          MVT::v16f32, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VReduceSAE:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i32] }):$src2), VR512:{ *:[v16f32] }:$src0) - Complexity = 9
                      // Dst: (VREDUCEPSZrribk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*349904*/          /*SwitchOpcode*/ 26, TARGET_VAL(X86ISD::STRICT_VRNDSCALE),// ->349933
/*349907*/            OPC_RecordNode, // #1 = 'X86strict_VRndScale' chained node
/*349908*/            OPC_CheckFoldableChainNode,
/*349909*/            OPC_RecordChild1, // #2 = $src1
/*349910*/            OPC_RecordChild2, // #3 = $src2
/*349911*/            OPC_MoveChild2,
/*349912*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*349915*/            OPC_MoveParent,
/*349916*/            OPC_MoveParent,
/*349917*/            OPC_RecordChild2, // #4 = $src0
/*349918*/            OPC_CheckType, MVT::v16f32,
/*349920*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*349922*/            OPC_EmitMergeInputChains1_1,
/*349923*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrrik), 0|OPFL_Chain,
                          MVT::v16f32, 4/*#Ops*/, 4, 0, 2, 3, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86strict_VRndScale:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i32] }):$src2), VR512:{ *:[v16f32] }:$src0) - Complexity = 9
                      // Dst: (VRNDSCALEPSZrrik:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*349933*/          /*SwitchOpcode*/ 23, TARGET_VAL(X86ISD::VRNDSCALE),// ->349959
/*349936*/            OPC_RecordChild0, // #1 = $src1
/*349937*/            OPC_RecordChild1, // #2 = $src2
/*349938*/            OPC_MoveChild1,
/*349939*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*349942*/            OPC_MoveParent,
/*349943*/            OPC_MoveParent,
/*349944*/            OPC_RecordChild2, // #3 = $src0
/*349945*/            OPC_CheckType, MVT::v16f32,
/*349947*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*349949*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrrik), 0,
                          MVT::v16f32, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VRndScale:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i32] }):$src2), VR512:{ *:[v16f32] }:$src0) - Complexity = 9
                      // Dst: (VRNDSCALEPSZrrik:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*349959*/          /*SwitchOpcode*/ 23, TARGET_VAL(X86ISD::VRNDSCALE_SAE),// ->349985
/*349962*/            OPC_RecordChild0, // #1 = $src1
/*349963*/            OPC_RecordChild1, // #2 = $src2
/*349964*/            OPC_MoveChild1,
/*349965*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*349968*/            OPC_MoveParent,
/*349969*/            OPC_MoveParent,
/*349970*/            OPC_RecordChild2, // #3 = $src0
/*349971*/            OPC_CheckType, MVT::v16f32,
/*349973*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*349975*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrribk), 0,
                          MVT::v16f32, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VRndScaleSAE:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i32] }):$src2), VR512:{ *:[v16f32] }:$src0) - Complexity = 9
                      // Dst: (VRNDSCALEPSZrribk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*349985*/          /*SwitchOpcode*/ 23, TARGET_VAL(X86ISD::VGETMANT),// ->350011
/*349988*/            OPC_RecordChild0, // #1 = $src1
/*349989*/            OPC_RecordChild1, // #2 = $src2
/*349990*/            OPC_MoveChild1,
/*349991*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*349994*/            OPC_MoveParent,
/*349995*/            OPC_MoveParent,
/*349996*/            OPC_RecordChild2, // #3 = $src0
/*349997*/            OPC_CheckType, MVT::v16f32,
/*349999*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*350001*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPSZrrik), 0,
                          MVT::v16f32, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VGetMant:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i32] }):$src2), VR512:{ *:[v16f32] }:$src0) - Complexity = 9
                      // Dst: (VGETMANTPSZrrik:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*350011*/          /*SwitchOpcode*/ 23, TARGET_VAL(X86ISD::VGETMANT_SAE),// ->350037
/*350014*/            OPC_RecordChild0, // #1 = $src1
/*350015*/            OPC_RecordChild1, // #2 = $src2
/*350016*/            OPC_MoveChild1,
/*350017*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*350020*/            OPC_MoveParent,
/*350021*/            OPC_MoveParent,
/*350022*/            OPC_RecordChild2, // #3 = $src0
/*350023*/            OPC_CheckType, MVT::v16f32,
/*350025*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*350027*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPSZrribk), 0,
                          MVT::v16f32, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VGetMantSAE:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i32] }):$src2), VR512:{ *:[v16f32] }:$src0) - Complexity = 9
                      // Dst: (VGETMANTPSZrribk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*350037*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::VRANGE),// ->350065
/*350040*/            OPC_RecordChild0, // #1 = $src1
/*350041*/            OPC_RecordChild1, // #2 = $src2
/*350042*/            OPC_RecordChild2, // #3 = $src3
/*350043*/            OPC_MoveChild2,
/*350044*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*350047*/            OPC_MoveParent,
/*350048*/            OPC_MoveParent,
/*350049*/            OPC_RecordChild2, // #4 = $src0
/*350050*/            OPC_CheckType, MVT::v16f32,
/*350052*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*350054*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPSZrrik), 0,
                          MVT::v16f32, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VRange:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i32] }):$src3), VR512:{ *:[v16f32] }:$src0) - Complexity = 9
                      // Dst: (VRANGEPSZrrik:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i32] }):$src3)
/*350065*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::VRANGE_SAE),// ->350093
/*350068*/            OPC_RecordChild0, // #1 = $src1
/*350069*/            OPC_RecordChild1, // #2 = $src2
/*350070*/            OPC_RecordChild2, // #3 = $src3
/*350071*/            OPC_MoveChild2,
/*350072*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*350075*/            OPC_MoveParent,
/*350076*/            OPC_MoveParent,
/*350077*/            OPC_RecordChild2, // #4 = $src0
/*350078*/            OPC_CheckType, MVT::v16f32,
/*350080*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*350082*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPSZrribk), 0,
                          MVT::v16f32, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VRangeSAE:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i32] }):$src3), VR512:{ *:[v16f32] }:$src0) - Complexity = 9
                      // Dst: (VRANGEPSZrribk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i32] }):$src3)
/*350093*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::SHUFP),// ->350121
/*350096*/            OPC_RecordChild0, // #1 = $src1
/*350097*/            OPC_RecordChild1, // #2 = $src2
/*350098*/            OPC_RecordChild2, // #3 = $src3
/*350099*/            OPC_MoveChild2,
/*350100*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*350103*/            OPC_MoveParent,
/*350104*/            OPC_MoveParent,
/*350105*/            OPC_RecordChild2, // #4 = $src0
/*350106*/            OPC_CheckType, MVT::v16f32,
/*350108*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*350110*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPSZrrik), 0,
                          MVT::v16f32, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86Shufp:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i8] }):$src3), VR512:{ *:[v16f32] }:$src0) - Complexity = 9
                      // Dst: (VSHUFPSZrrik:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i8] }):$src3)
/*350121*/          /*SwitchOpcode*/ 27, TARGET_VAL(X86ISD::VFIXUPIMM),// ->350151
/*350124*/            OPC_RecordChild0, // #1 = $src1
/*350125*/            OPC_RecordChild1, // #2 = $src2
/*350126*/            OPC_RecordChild2, // #3 = $src3
/*350127*/            OPC_RecordChild3, // #4 = $src4
/*350128*/            OPC_MoveChild3,
/*350129*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*350132*/            OPC_MoveParent,
/*350133*/            OPC_MoveParent,
/*350134*/            OPC_CheckChild2Same, 1,
/*350136*/            OPC_CheckType, MVT::v16f32,
/*350138*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*350140*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPSZrrik), 0,
                          MVT::v16f32, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VFixupimm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16i32] }:$src3, (timm:{ *:[i32] }):$src4), VR512:{ *:[v16f32] }:$src1) - Complexity = 9
                      // Dst: (VFIXUPIMMPSZrrik:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16i32] }:$src3, (timm:{ *:[i32] }):$src4)
/*350151*/          /*SwitchOpcode*/ 27, TARGET_VAL(X86ISD::VFIXUPIMM_SAE),// ->350181
/*350154*/            OPC_RecordChild0, // #1 = $src1
/*350155*/            OPC_RecordChild1, // #2 = $src2
/*350156*/            OPC_RecordChild2, // #3 = $src3
/*350157*/            OPC_RecordChild3, // #4 = $src4
/*350158*/            OPC_MoveChild3,
/*350159*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*350162*/            OPC_MoveParent,
/*350163*/            OPC_MoveParent,
/*350164*/            OPC_CheckChild2Same, 1,
/*350166*/            OPC_CheckType, MVT::v16f32,
/*350168*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*350170*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPSZrribk), 0,
                          MVT::v16f32, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86VFixupimmSAE:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16i32] }:$src3, (timm:{ *:[i32] }):$src4), VR512:{ *:[v16f32] }:$src1) - Complexity = 9
                      // Dst: (VFIXUPIMMPSZrribk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16i32] }:$src3, (timm:{ *:[i32] }):$src4)
/*350181*/          0, // EndSwitchOpcode
/*350182*/        /*Scope*/ 16, /*->350199*/
/*350183*/          OPC_RecordChild1, // #1 = $src
/*350184*/          OPC_MoveChild2,
/*350185*/          OPC_CheckImmAllZerosV,
/*350186*/          OPC_MoveParent,
/*350187*/          OPC_CheckType, MVT::v16f32,
/*350189*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*350191*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPSZrrkz), 0,
                        MVT::v16f32, 2/*#Ops*/, 0, 1, 
                    // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src, immAllZerosV:{ *:[v16f32] }) - Complexity = 7
                    // Dst: (VMOVAPSZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*350199*/        /*Scope*/ 33|128,10/*1313*/, /*->351514*/
/*350201*/          OPC_MoveChild1,
/*350202*/          OPC_SwitchOpcode /*49 cases */, 50, TARGET_VAL(X86ISD::VBROADCAST),// ->350256
/*350206*/            OPC_RecordChild0, // #1 = $src
/*350207*/            OPC_Scope, 17, /*->350226*/ // 2 children in Scope
/*350209*/              OPC_CheckChild0Type, MVT::v4f32,
/*350211*/              OPC_MoveParent,
/*350212*/              OPC_RecordChild2, // #2 = $src0
/*350213*/              OPC_CheckType, MVT::v16f32,
/*350215*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*350217*/              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)
/*350226*/            /*Scope*/ 28, /*->350255*/
/*350227*/              OPC_CheckChild0Type, MVT::f32,
/*350229*/              OPC_MoveParent,
/*350230*/              OPC_RecordChild2, // #2 = $src0
/*350231*/              OPC_CheckType, MVT::v16f32,
/*350233*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*350235*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*350238*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 1, 3,  // Results = #4
/*350246*/              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] }))
/*350255*/            0, /*End of Scope*/
/*350256*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::VPERMV3),// ->350279
/*350259*/            OPC_RecordChild0, // #1 = $src1
/*350260*/            OPC_RecordChild1, // #2 = $src2
/*350261*/            OPC_RecordChild2, // #3 = $src3
/*350262*/            OPC_MoveParent,
/*350263*/            OPC_CheckChild2Same, 1,
/*350265*/            OPC_CheckType, MVT::v16f32,
/*350267*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*350269*/            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)
/*350279*/          /*SwitchOpcode*/ 21, TARGET_VAL(ISD::STRICT_FADD),// ->350303
/*350282*/            OPC_RecordNode, // #1 = 'strict_fadd' chained node
/*350283*/            OPC_CheckFoldableChainNode,
/*350284*/            OPC_RecordChild1, // #2 = $src1
/*350285*/            OPC_RecordChild2, // #3 = $src2
/*350286*/            OPC_MoveParent,
/*350287*/            OPC_RecordChild2, // #4 = $src0
/*350288*/            OPC_CheckType, MVT::v16f32,
/*350290*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*350292*/            OPC_EmitMergeInputChains1_1,
/*350293*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZrrk), 0|OPFL_Chain,
                          MVT::v16f32, 4/*#Ops*/, 4, 0, 2, 3, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (strict_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)
/*350303*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::FADD),// ->350324
/*350306*/            OPC_RecordChild0, // #1 = $src1
/*350307*/            OPC_RecordChild1, // #2 = $src2
/*350308*/            OPC_MoveParent,
/*350309*/            OPC_RecordChild2, // #3 = $src0
/*350310*/            OPC_CheckType, MVT::v16f32,
/*350312*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*350314*/            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)
/*350324*/          /*SwitchOpcode*/ 21, TARGET_VAL(ISD::STRICT_FMUL),// ->350348
/*350327*/            OPC_RecordNode, // #1 = 'strict_fmul' chained node
/*350328*/            OPC_CheckFoldableChainNode,
/*350329*/            OPC_RecordChild1, // #2 = $src1
/*350330*/            OPC_RecordChild2, // #3 = $src2
/*350331*/            OPC_MoveParent,
/*350332*/            OPC_RecordChild2, // #4 = $src0
/*350333*/            OPC_CheckType, MVT::v16f32,
/*350335*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*350337*/            OPC_EmitMergeInputChains1_1,
/*350338*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZrrk), 0|OPFL_Chain,
                          MVT::v16f32, 4/*#Ops*/, 4, 0, 2, 3, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (strict_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)
/*350348*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::FMUL),// ->350369
/*350351*/            OPC_RecordChild0, // #1 = $src1
/*350352*/            OPC_RecordChild1, // #2 = $src2
/*350353*/            OPC_MoveParent,
/*350354*/            OPC_RecordChild2, // #3 = $src0
/*350355*/            OPC_CheckType, MVT::v16f32,
/*350357*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*350359*/            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)
/*350369*/          /*SwitchOpcode*/ 21, TARGET_VAL(ISD::STRICT_FSUB),// ->350393
/*350372*/            OPC_RecordNode, // #1 = 'strict_fsub' chained node
/*350373*/            OPC_CheckFoldableChainNode,
/*350374*/            OPC_RecordChild1, // #2 = $src1
/*350375*/            OPC_RecordChild2, // #3 = $src2
/*350376*/            OPC_MoveParent,
/*350377*/            OPC_RecordChild2, // #4 = $src0
/*350378*/            OPC_CheckType, MVT::v16f32,
/*350380*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*350382*/            OPC_EmitMergeInputChains1_1,
/*350383*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSZrrk), 0|OPFL_Chain,
                          MVT::v16f32, 4/*#Ops*/, 4, 0, 2, 3, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (strict_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)
/*350393*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::FSUB),// ->350414
/*350396*/            OPC_RecordChild0, // #1 = $src1
/*350397*/            OPC_RecordChild1, // #2 = $src2
/*350398*/            OPC_MoveParent,
/*350399*/            OPC_RecordChild2, // #3 = $src0
/*350400*/            OPC_CheckType, MVT::v16f32,
/*350402*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*350404*/            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)
/*350414*/          /*SwitchOpcode*/ 21, TARGET_VAL(ISD::STRICT_FDIV),// ->350438
/*350417*/            OPC_RecordNode, // #1 = 'strict_fdiv' chained node
/*350418*/            OPC_CheckFoldableChainNode,
/*350419*/            OPC_RecordChild1, // #2 = $src1
/*350420*/            OPC_RecordChild2, // #3 = $src2
/*350421*/            OPC_MoveParent,
/*350422*/            OPC_RecordChild2, // #4 = $src0
/*350423*/            OPC_CheckType, MVT::v16f32,
/*350425*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*350427*/            OPC_EmitMergeInputChains1_1,
/*350428*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSZrrk), 0|OPFL_Chain,
                          MVT::v16f32, 4/*#Ops*/, 4, 0, 2, 3, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (strict_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)
/*350438*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::FDIV),// ->350459
/*350441*/            OPC_RecordChild0, // #1 = $src1
/*350442*/            OPC_RecordChild1, // #2 = $src2
/*350443*/            OPC_MoveParent,
/*350444*/            OPC_RecordChild2, // #3 = $src0
/*350445*/            OPC_CheckType, MVT::v16f32,
/*350447*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*350449*/            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)
/*350459*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::FMIN),// ->350480
/*350462*/            OPC_RecordChild0, // #1 = $src1
/*350463*/            OPC_RecordChild1, // #2 = $src2
/*350464*/            OPC_MoveParent,
/*350465*/            OPC_RecordChild2, // #3 = $src0
/*350466*/            OPC_CheckType, MVT::v16f32,
/*350468*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*350470*/            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)
/*350480*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::FMIN_SAE),// ->350501
/*350483*/            OPC_RecordChild0, // #1 = $src1
/*350484*/            OPC_RecordChild1, // #2 = $src2
/*350485*/            OPC_MoveParent,
/*350486*/            OPC_RecordChild2, // #3 = $src0
/*350487*/            OPC_CheckType, MVT::v16f32,
/*350489*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*350491*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPSZrrbk), 0,
                          MVT::v16f32, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fminSAE:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), VR512:{ *:[v16f32] }:$src0) - Complexity = 6
                      // Dst: (VMINPSZrrbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*350501*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::FMAX),// ->350522
/*350504*/            OPC_RecordChild0, // #1 = $src1
/*350505*/            OPC_RecordChild1, // #2 = $src2
/*350506*/            OPC_MoveParent,
/*350507*/            OPC_RecordChild2, // #3 = $src0
/*350508*/            OPC_CheckType, MVT::v16f32,
/*350510*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*350512*/            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)
/*350522*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::FMAX_SAE),// ->350543
/*350525*/            OPC_RecordChild0, // #1 = $src1
/*350526*/            OPC_RecordChild1, // #2 = $src2
/*350527*/            OPC_MoveParent,
/*350528*/            OPC_RecordChild2, // #3 = $src0
/*350529*/            OPC_CheckType, MVT::v16f32,
/*350531*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*350533*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPSZrrbk), 0,
                          MVT::v16f32, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fmaxSAE:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), VR512:{ *:[v16f32] }:$src0) - Complexity = 6
                      // Dst: (VMAXPSZrrbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*350543*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::FMINC),// ->350564
/*350546*/            OPC_RecordChild0, // #1 = $src1
/*350547*/            OPC_RecordChild1, // #2 = $src2
/*350548*/            OPC_MoveParent,
/*350549*/            OPC_RecordChild2, // #3 = $src0
/*350550*/            OPC_CheckType, MVT::v16f32,
/*350552*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*350554*/            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)
/*350564*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::FMAXC),// ->350585
/*350567*/            OPC_RecordChild0, // #1 = $src1
/*350568*/            OPC_RecordChild1, // #2 = $src2
/*350569*/            OPC_MoveParent,
/*350570*/            OPC_RecordChild2, // #3 = $src0
/*350571*/            OPC_CheckType, MVT::v16f32,
/*350573*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*350575*/            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)
/*350585*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::SCALEF),// ->350606
/*350588*/            OPC_RecordChild0, // #1 = $src1
/*350589*/            OPC_RecordChild1, // #2 = $src2
/*350590*/            OPC_MoveParent,
/*350591*/            OPC_RecordChild2, // #3 = $src0
/*350592*/            OPC_CheckType, MVT::v16f32,
/*350594*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*350596*/            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), VR512:{ *:[v16f32] }:$src0) - Complexity = 6
                      // Dst: (VSCALEFPSZrrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*350606*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::VPERMV),// ->350627
/*350609*/            OPC_RecordChild0, // #1 = $src1
/*350610*/            OPC_RecordChild1, // #2 = $src2
/*350611*/            OPC_MoveParent,
/*350612*/            OPC_RecordChild2, // #3 = $src0
/*350613*/            OPC_CheckType, MVT::v16f32,
/*350615*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*350617*/            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)
/*350627*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::VPERMILPV),// ->350648
/*350630*/            OPC_RecordChild0, // #1 = $src1
/*350631*/            OPC_RecordChild1, // #2 = $src2
/*350632*/            OPC_MoveParent,
/*350633*/            OPC_RecordChild2, // #3 = $src0
/*350634*/            OPC_CheckType, MVT::v16f32,
/*350636*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*350638*/            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)
/*350648*/          /*SwitchOpcode*/ 58, TARGET_VAL(ISD::STRICT_FMA),// ->350709
/*350651*/            OPC_RecordNode, // #1 = 'X86strict_Fmadd' chained node
/*350652*/            OPC_CheckFoldableChainNode,
/*350653*/            OPC_RecordChild1, // #2 = $src2
/*350654*/            OPC_RecordChild2, // #3 = $src1
/*350655*/            OPC_RecordChild3, // #4 = $src3
/*350656*/            OPC_MoveParent,
/*350657*/            OPC_CheckType, MVT::v16f32,
/*350659*/            OPC_Scope, 15, /*->350676*/ // 3 children in Scope
/*350661*/              OPC_CheckChild2Same, 3,
/*350663*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*350665*/              OPC_EmitMergeInputChains1_1,
/*350666*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZrk), 0|OPFL_Chain,
                            MVT::v16f32, 4/*#Ops*/, 3, 0, 2, 4, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86strict_Fmadd:{ *:[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)
/*350676*/            /*Scope*/ 15, /*->350692*/
/*350677*/              OPC_CheckChild2Same, 4,
/*350679*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*350681*/              OPC_EmitMergeInputChains1_1,
/*350682*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PSZrk), 0|OPFL_Chain,
                            MVT::v16f32, 4/*#Ops*/, 4, 0, 2, 3, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86strict_Fmadd:{ *:[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)
/*350692*/            /*Scope*/ 15, /*->350708*/
/*350693*/              OPC_CheckChild2Same, 2,
/*350695*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*350697*/              OPC_EmitMergeInputChains1_1,
/*350698*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PSZrk), 0|OPFL_Chain,
                            MVT::v16f32, 4/*#Ops*/, 2, 0, 4, 3, 
                        // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86strict_Fmadd:{ *:[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)
/*350708*/            0, /*End of Scope*/
/*350709*/          /*SwitchOpcode*/ 53, TARGET_VAL(ISD::FMA),// ->350765
/*350712*/            OPC_RecordChild0, // #1 = $src2
/*350713*/            OPC_RecordChild1, // #2 = $src1
/*350714*/            OPC_RecordChild2, // #3 = $src3
/*350715*/            OPC_MoveParent,
/*350716*/            OPC_CheckType, MVT::v16f32,
/*350718*/            OPC_Scope, 14, /*->350734*/ // 3 children in Scope
/*350720*/              OPC_CheckChild2Same, 2,
/*350722*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*350724*/              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)
/*350734*/            /*Scope*/ 14, /*->350749*/
/*350735*/              OPC_CheckChild2Same, 3,
/*350737*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*350739*/              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)
/*350749*/            /*Scope*/ 14, /*->350764*/
/*350750*/              OPC_CheckChild2Same, 1,
/*350752*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*350754*/              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)
/*350764*/            0, /*End of Scope*/
/*350765*/          /*SwitchOpcode*/ 53, TARGET_VAL(X86ISD::FMSUB),// ->350821
/*350768*/            OPC_RecordChild0, // #1 = $src2
/*350769*/            OPC_RecordChild1, // #2 = $src1
/*350770*/            OPC_RecordChild2, // #3 = $src3
/*350771*/            OPC_MoveParent,
/*350772*/            OPC_CheckType, MVT::v16f32,
/*350774*/            OPC_Scope, 14, /*->350790*/ // 3 children in Scope
/*350776*/              OPC_CheckChild2Same, 2,
/*350778*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*350780*/              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)
/*350790*/            /*Scope*/ 14, /*->350805*/
/*350791*/              OPC_CheckChild2Same, 3,
/*350793*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*350795*/              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)
/*350805*/            /*Scope*/ 14, /*->350820*/
/*350806*/              OPC_CheckChild2Same, 1,
/*350808*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*350810*/              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)
/*350820*/            0, /*End of Scope*/
/*350821*/          /*SwitchOpcode*/ 53, TARGET_VAL(X86ISD::FMADDSUB),// ->350877
/*350824*/            OPC_RecordChild0, // #1 = $src2
/*350825*/            OPC_RecordChild1, // #2 = $src1
/*350826*/            OPC_RecordChild2, // #3 = $src3
/*350827*/            OPC_MoveParent,
/*350828*/            OPC_CheckType, MVT::v16f32,
/*350830*/            OPC_Scope, 14, /*->350846*/ // 3 children in Scope
/*350832*/              OPC_CheckChild2Same, 2,
/*350834*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*350836*/              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)
/*350846*/            /*Scope*/ 14, /*->350861*/
/*350847*/              OPC_CheckChild2Same, 3,
/*350849*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*350851*/              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)
/*350861*/            /*Scope*/ 14, /*->350876*/
/*350862*/              OPC_CheckChild2Same, 1,
/*350864*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*350866*/              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)
/*350876*/            0, /*End of Scope*/
/*350877*/          /*SwitchOpcode*/ 53, TARGET_VAL(X86ISD::FMSUBADD),// ->350933
/*350880*/            OPC_RecordChild0, // #1 = $src2
/*350881*/            OPC_RecordChild1, // #2 = $src1
/*350882*/            OPC_RecordChild2, // #3 = $src3
/*350883*/            OPC_MoveParent,
/*350884*/            OPC_CheckType, MVT::v16f32,
/*350886*/            OPC_Scope, 14, /*->350902*/ // 3 children in Scope
/*350888*/              OPC_CheckChild2Same, 2,
/*350890*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*350892*/              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)
/*350902*/            /*Scope*/ 14, /*->350917*/
/*350903*/              OPC_CheckChild2Same, 3,
/*350905*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*350907*/              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)
/*350917*/            /*Scope*/ 14, /*->350932*/
/*350918*/              OPC_CheckChild2Same, 1,
/*350920*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*350922*/              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)
/*350932*/            0, /*End of Scope*/
/*350933*/          /*SwitchOpcode*/ 53, TARGET_VAL(X86ISD::FNMADD),// ->350989
/*350936*/            OPC_RecordChild0, // #1 = $src2
/*350937*/            OPC_RecordChild1, // #2 = $src1
/*350938*/            OPC_RecordChild2, // #3 = $src3
/*350939*/            OPC_MoveParent,
/*350940*/            OPC_CheckType, MVT::v16f32,
/*350942*/            OPC_Scope, 14, /*->350958*/ // 3 children in Scope
/*350944*/              OPC_CheckChild2Same, 2,
/*350946*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*350948*/              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)
/*350958*/            /*Scope*/ 14, /*->350973*/
/*350959*/              OPC_CheckChild2Same, 3,
/*350961*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*350963*/              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)
/*350973*/            /*Scope*/ 14, /*->350988*/
/*350974*/              OPC_CheckChild2Same, 1,
/*350976*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*350978*/              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)
/*350988*/            0, /*End of Scope*/
/*350989*/          /*SwitchOpcode*/ 53, TARGET_VAL(X86ISD::FNMSUB),// ->351045
/*350992*/            OPC_RecordChild0, // #1 = $src2
/*350993*/            OPC_RecordChild1, // #2 = $src1
/*350994*/            OPC_RecordChild2, // #3 = $src3
/*350995*/            OPC_MoveParent,
/*350996*/            OPC_CheckType, MVT::v16f32,
/*350998*/            OPC_Scope, 14, /*->351014*/ // 3 children in Scope
/*351000*/              OPC_CheckChild2Same, 2,
/*351002*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*351004*/              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)
/*351014*/            /*Scope*/ 14, /*->351029*/
/*351015*/              OPC_CheckChild2Same, 3,
/*351017*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*351019*/              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)
/*351029*/            /*Scope*/ 14, /*->351044*/
/*351030*/              OPC_CheckChild2Same, 1,
/*351032*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*351034*/              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)
/*351044*/            0, /*End of Scope*/
/*351045*/          /*SwitchOpcode*/ 21, TARGET_VAL(ISD::STRICT_SINT_TO_FP),// ->351069
/*351048*/            OPC_RecordNode, // #1 = 'strict_sint_to_fp' chained node
/*351049*/            OPC_CheckFoldableChainNode,
/*351050*/            OPC_RecordChild1, // #2 = $src
/*351051*/            OPC_CheckChild1Type, MVT::v16i32,
/*351053*/            OPC_MoveParent,
/*351054*/            OPC_RecordChild2, // #3 = $src0
/*351055*/            OPC_CheckType, MVT::v16f32,
/*351057*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*351059*/            OPC_EmitMergeInputChains1_1,
/*351060*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSZrrk), 0|OPFL_Chain,
                          MVT::v16f32, 3/*#Ops*/, 3, 0, 2, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (strict_sint_to_fp:{ *:[v16f32] } VR512:{ *:[v16i32] }:$src), VR512:{ *:[v16f32] }:$src0) - Complexity = 6
                      // Dst: (VCVTDQ2PSZrrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)
/*351069*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::SINT_TO_FP),// ->351090
/*351072*/            OPC_RecordChild0, // #1 = $src
/*351073*/            OPC_CheckChild0Type, MVT::v16i32,
/*351075*/            OPC_MoveParent,
/*351076*/            OPC_RecordChild2, // #2 = $src0
/*351077*/            OPC_CheckType, MVT::v16f32,
/*351079*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*351081*/            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)
/*351090*/          /*SwitchOpcode*/ 21, TARGET_VAL(ISD::STRICT_UINT_TO_FP),// ->351114
/*351093*/            OPC_RecordNode, // #1 = 'strict_uint_to_fp' chained node
/*351094*/            OPC_CheckFoldableChainNode,
/*351095*/            OPC_RecordChild1, // #2 = $src
/*351096*/            OPC_CheckChild1Type, MVT::v16i32,
/*351098*/            OPC_MoveParent,
/*351099*/            OPC_RecordChild2, // #3 = $src0
/*351100*/            OPC_CheckType, MVT::v16f32,
/*351102*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*351104*/            OPC_EmitMergeInputChains1_1,
/*351105*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PSZrrk), 0|OPFL_Chain,
                          MVT::v16f32, 3/*#Ops*/, 3, 0, 2, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (strict_uint_to_fp:{ *:[v16f32] } VR512:{ *:[v16i32] }:$src), VR512:{ *:[v16f32] }:$src0) - Complexity = 6
                      // Dst: (VCVTUDQ2PSZrrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)
/*351114*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::UINT_TO_FP),// ->351135
/*351117*/            OPC_RecordChild0, // #1 = $src
/*351118*/            OPC_CheckChild0Type, MVT::v16i32,
/*351120*/            OPC_MoveParent,
/*351121*/            OPC_RecordChild2, // #2 = $src0
/*351122*/            OPC_CheckType, MVT::v16f32,
/*351124*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*351126*/            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)
/*351135*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::CVTPH2PS),// ->351156
/*351138*/            OPC_RecordChild0, // #1 = $src
/*351139*/            OPC_CheckChild0Type, MVT::v16i16,
/*351141*/            OPC_MoveParent,
/*351142*/            OPC_RecordChild2, // #2 = $src0
/*351143*/            OPC_CheckType, MVT::v16f32,
/*351145*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*351147*/            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)
/*351156*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::CVTPH2PS_SAE),// ->351177
/*351159*/            OPC_RecordChild0, // #1 = $src
/*351160*/            OPC_CheckChild0Type, MVT::v16i16,
/*351162*/            OPC_MoveParent,
/*351163*/            OPC_RecordChild2, // #2 = $src0
/*351164*/            OPC_CheckType, MVT::v16f32,
/*351166*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*351168*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPH2PSZrrbk), 0,
                          MVT::v16f32, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86cvtph2psSAE:{ *:[v16f32] } VR256X:{ *:[v16i16] }:$src), VR512:{ *:[v16f32] }:$src0) - Complexity = 6
                      // Dst: (VCVTPH2PSZrrbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src)
/*351177*/          /*SwitchOpcode*/ 16, TARGET_VAL(X86ISD::RSQRT14),// ->351196
/*351180*/            OPC_RecordChild0, // #1 = $src
/*351181*/            OPC_MoveParent,
/*351182*/            OPC_RecordChild2, // #2 = $src0
/*351183*/            OPC_CheckType, MVT::v16f32,
/*351185*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*351187*/            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)
/*351196*/          /*SwitchOpcode*/ 16, TARGET_VAL(X86ISD::RCP14),// ->351215
/*351199*/            OPC_RecordChild0, // #1 = $src
/*351200*/            OPC_MoveParent,
/*351201*/            OPC_RecordChild2, // #2 = $src0
/*351202*/            OPC_CheckType, MVT::v16f32,
/*351204*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*351206*/            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)
/*351215*/          /*SwitchOpcode*/ 16, TARGET_VAL(X86ISD::RSQRT28),// ->351234
/*351218*/            OPC_RecordChild0, // #1 = $src
/*351219*/            OPC_MoveParent,
/*351220*/            OPC_RecordChild2, // #2 = $src0
/*351221*/            OPC_CheckType, MVT::v16f32,
/*351223*/            OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*351225*/            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), VR512:{ *:[v16f32] }:$src0) - Complexity = 6
                      // Dst: (VRSQRT28PSZrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*351234*/          /*SwitchOpcode*/ 16, TARGET_VAL(X86ISD::RSQRT28_SAE),// ->351253
/*351237*/            OPC_RecordChild0, // #1 = $src
/*351238*/            OPC_MoveParent,
/*351239*/            OPC_RecordChild2, // #2 = $src0
/*351240*/            OPC_CheckType, MVT::v16f32,
/*351242*/            OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*351244*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT28PSZrbk), 0,
                          MVT::v16f32, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86rsqrt28SAE:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src), VR512:{ *:[v16f32] }:$src0) - Complexity = 6
                      // Dst: (VRSQRT28PSZrbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*351253*/          /*SwitchOpcode*/ 16, TARGET_VAL(X86ISD::RCP28),// ->351272
/*351256*/            OPC_RecordChild0, // #1 = $src
/*351257*/            OPC_MoveParent,
/*351258*/            OPC_RecordChild2, // #2 = $src0
/*351259*/            OPC_CheckType, MVT::v16f32,
/*351261*/            OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*351263*/            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), VR512:{ *:[v16f32] }:$src0) - Complexity = 6
                      // Dst: (VRCP28PSZrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*351272*/          /*SwitchOpcode*/ 16, TARGET_VAL(X86ISD::RCP28_SAE),// ->351291
/*351275*/            OPC_RecordChild0, // #1 = $src
/*351276*/            OPC_MoveParent,
/*351277*/            OPC_RecordChild2, // #2 = $src0
/*351278*/            OPC_CheckType, MVT::v16f32,
/*351280*/            OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*351282*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP28PSZrbk), 0,
                          MVT::v16f32, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86rcp28SAE:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src), VR512:{ *:[v16f32] }:$src0) - Complexity = 6
                      // Dst: (VRCP28PSZrbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*351291*/          /*SwitchOpcode*/ 16, TARGET_VAL(X86ISD::EXP2),// ->351310
/*351294*/            OPC_RecordChild0, // #1 = $src
/*351295*/            OPC_MoveParent,
/*351296*/            OPC_RecordChild2, // #2 = $src0
/*351297*/            OPC_CheckType, MVT::v16f32,
/*351299*/            OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*351301*/            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), VR512:{ *:[v16f32] }:$src0) - Complexity = 6
                      // Dst: (VEXP2PSZrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*351310*/          /*SwitchOpcode*/ 16, TARGET_VAL(X86ISD::EXP2_SAE),// ->351329
/*351313*/            OPC_RecordChild0, // #1 = $src
/*351314*/            OPC_MoveParent,
/*351315*/            OPC_RecordChild2, // #2 = $src0
/*351316*/            OPC_CheckType, MVT::v16f32,
/*351318*/            OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*351320*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VEXP2PSZrbk), 0,
                          MVT::v16f32, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86exp2SAE:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src), VR512:{ *:[v16f32] }:$src0) - Complexity = 6
                      // Dst: (VEXP2PSZrbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*351329*/          /*SwitchOpcode*/ 16, TARGET_VAL(X86ISD::FGETEXP),// ->351348
/*351332*/            OPC_RecordChild0, // #1 = $src
/*351333*/            OPC_MoveParent,
/*351334*/            OPC_RecordChild2, // #2 = $src0
/*351335*/            OPC_CheckType, MVT::v16f32,
/*351337*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*351339*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPSZrk), 0,
                          MVT::v16f32, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fgetexp:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src), VR512:{ *:[v16f32] }:$src0) - Complexity = 6
                      // Dst: (VGETEXPPSZrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*351348*/          /*SwitchOpcode*/ 16, TARGET_VAL(X86ISD::FGETEXP_SAE),// ->351367
/*351351*/            OPC_RecordChild0, // #1 = $src
/*351352*/            OPC_MoveParent,
/*351353*/            OPC_RecordChild2, // #2 = $src0
/*351354*/            OPC_CheckType, MVT::v16f32,
/*351356*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*351358*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPSZrbk), 0,
                          MVT::v16f32, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86fgetexpSAE:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src), VR512:{ *:[v16f32] }:$src0) - Complexity = 6
                      // Dst: (VGETEXPPSZrbk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*351367*/          /*SwitchOpcode*/ 19, TARGET_VAL(ISD::STRICT_FSQRT),// ->351389
/*351370*/            OPC_RecordNode, // #1 = 'strict_fsqrt' chained node
/*351371*/            OPC_CheckFoldableChainNode,
/*351372*/            OPC_RecordChild1, // #2 = $src
/*351373*/            OPC_MoveParent,
/*351374*/            OPC_RecordChild2, // #3 = $src0
/*351375*/            OPC_CheckType, MVT::v16f32,
/*351377*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*351379*/            OPC_EmitMergeInputChains1_1,
/*351380*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSZrk), 0|OPFL_Chain,
                          MVT::v16f32, 3/*#Ops*/, 3, 0, 2, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (strict_fsqrt:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src), VR512:{ *:[v16f32] }:$src0) - Complexity = 6
                      // Dst: (VSQRTPSZrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*351389*/          /*SwitchOpcode*/ 16, TARGET_VAL(ISD::FSQRT),// ->351408
/*351392*/            OPC_RecordChild0, // #1 = $src
/*351393*/            OPC_MoveParent,
/*351394*/            OPC_RecordChild2, // #2 = $src0
/*351395*/            OPC_CheckType, MVT::v16f32,
/*351397*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*351399*/            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)
/*351408*/          /*SwitchOpcode*/ 16, TARGET_VAL(X86ISD::MOVSHDUP),// ->351427
/*351411*/            OPC_RecordChild0, // #1 = $src1
/*351412*/            OPC_MoveParent,
/*351413*/            OPC_RecordChild2, // #2 = $src0
/*351414*/            OPC_CheckType, MVT::v16f32,
/*351416*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*351418*/            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)
/*351427*/          /*SwitchOpcode*/ 16, TARGET_VAL(X86ISD::MOVSLDUP),// ->351446
/*351430*/            OPC_RecordChild0, // #1 = $src1
/*351431*/            OPC_MoveParent,
/*351432*/            OPC_RecordChild2, // #2 = $src0
/*351433*/            OPC_CheckType, MVT::v16f32,
/*351435*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*351437*/            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)
/*351446*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::UNPCKH),// ->351467
/*351449*/            OPC_RecordChild0, // #1 = $src1
/*351450*/            OPC_RecordChild1, // #2 = $src2
/*351451*/            OPC_MoveParent,
/*351452*/            OPC_RecordChild2, // #3 = $src0
/*351453*/            OPC_CheckType, MVT::v16f32,
/*351455*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*351457*/            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)
/*351467*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::UNPCKL),// ->351488
/*351470*/            OPC_RecordChild0, // #1 = $src1
/*351471*/            OPC_RecordChild1, // #2 = $src2
/*351472*/            OPC_MoveParent,
/*351473*/            OPC_RecordChild2, // #3 = $src0
/*351474*/            OPC_CheckType, MVT::v16f32,
/*351476*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*351478*/            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)
/*351488*/          /*SwitchOpcode*/ 22, TARGET_VAL(X86ISD::DPBF16PS),// ->351513
/*351491*/            OPC_RecordChild0, // #1 = $src1
/*351492*/            OPC_RecordChild1, // #2 = $src2
/*351493*/            OPC_CheckChild1Type, MVT::v16i32,
/*351495*/            OPC_RecordChild2, // #3 = $src3
/*351496*/            OPC_MoveParent,
/*351497*/            OPC_CheckChild2Same, 1,
/*351499*/            OPC_CheckType, MVT::v16f32,
/*351501*/            OPC_CheckPatternPredicate, 183, // (Subtarget->hasBF16())
/*351503*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDPBF16PSZrk), 0,
                          MVT::v16f32, 4/*#Ops*/, 1, 0, 2, 3, 
                      // Src: (vselect:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, (X86dpbf16ps:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3), VR512:{ *:[v16f32] }:$src1) - Complexity = 6
                      // Dst: (VDPBF16PSZrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3)
/*351513*/          0, // EndSwitchOpcode
/*351514*/        /*Scope*/ 15, /*->351530*/
/*351515*/          OPC_RecordChild1, // #1 = $src1
/*351516*/          OPC_RecordChild2, // #2 = $src0
/*351517*/          OPC_CheckType, MVT::v16f32,
/*351519*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*351521*/          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)
/*351530*/        0, /*End of Scope*/
/*351531*/      /*Scope*/ 14|128,76|128,2/*42510*/, /*->394044*/
/*351534*/        OPC_CheckChild0Type, MVT::v4i1,
/*351536*/        OPC_Scope, 35, /*->351573*/ // 23 children in Scope
/*351538*/          OPC_RecordChild1, // #1 = $src3
/*351539*/          OPC_MoveChild1,
/*351540*/          OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*351543*/          OPC_RecordChild0, // #2 = $src1
/*351544*/          OPC_RecordChild1, // #3 = $src2
/*351545*/          OPC_MoveChild2,
/*351546*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*351549*/          OPC_CheckType, MVT::iPTR,
/*351551*/          OPC_MoveParent,
/*351552*/          OPC_MoveParent,
/*351553*/          OPC_MoveChild2,
/*351554*/          OPC_CheckImmAllZerosV,
/*351555*/          OPC_MoveParent,
/*351556*/          OPC_CheckType, MVT::v4i64,
/*351558*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*351560*/          OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*351563*/          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, immAllZerosV:{ *:[v4i64] }) - Complexity = 13
                    // 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))
/*351573*/        /*Scope*/ 29|128,11/*1437*/, /*->353012*/
/*351575*/          OPC_MoveChild1,
/*351576*/          OPC_SwitchOpcode /*13 cases */, 58|128,7/*954*/, TARGET_VAL(ISD::BITCAST),// ->352535
/*351581*/            OPC_Scope, 34|128,2/*290*/, /*->351874*/ // 4 children in Scope
/*351584*/              OPC_RecordChild0, // #1 = $ext
/*351585*/              OPC_MoveChild0,
/*351586*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/*351589*/              OPC_RecordChild0, // #2 = $src
/*351590*/              OPC_Scope, 33, /*->351625*/ // 7 children in Scope
/*351592*/                OPC_CheckChild0Type, MVT::v4i64,
/*351594*/                OPC_MoveChild1,
/*351595*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*351598*/                OPC_CheckType, MVT::iPTR,
/*351600*/                OPC_MoveParent,
/*351601*/                OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/*351603*/                OPC_CheckType, MVT::v2i64,
/*351605*/                OPC_MoveParent,
/*351606*/                OPC_MoveParent,
/*351607*/                OPC_RecordChild2, // #3 = $src0
/*351608*/                OPC_CheckType, MVT::v4i32,
/*351610*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*351612*/                OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*351615*/                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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext), VR128X:{ *:[v4i32] }:$src0) - Complexity = 13
                          // Dst: (VEXTRACTI32x4Z256rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v2i64] }:$ext))
/*351625*/              /*Scope*/ 33, /*->351659*/
/*351626*/                OPC_CheckChild0Type, MVT::v16i16,
/*351628*/                OPC_MoveChild1,
/*351629*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*351632*/                OPC_CheckType, MVT::iPTR,
/*351634*/                OPC_MoveParent,
/*351635*/                OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/*351637*/                OPC_CheckType, MVT::v8i16,
/*351639*/                OPC_MoveParent,
/*351640*/                OPC_MoveParent,
/*351641*/                OPC_RecordChild2, // #3 = $src0
/*351642*/                OPC_CheckType, MVT::v4i32,
/*351644*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*351646*/                OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*351649*/                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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext), VR128X:{ *:[v4i32] }:$src0) - Complexity = 13
                          // Dst: (VEXTRACTI32x4Z256rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v16i16] }:$src, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v8i16] }:$ext))
/*351659*/              /*Scope*/ 33, /*->351693*/
/*351660*/                OPC_CheckChild0Type, MVT::v32i8,
/*351662*/                OPC_MoveChild1,
/*351663*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*351666*/                OPC_CheckType, MVT::iPTR,
/*351668*/                OPC_MoveParent,
/*351669*/                OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/*351671*/                OPC_CheckType, MVT::v16i8,
/*351673*/                OPC_MoveParent,
/*351674*/                OPC_MoveParent,
/*351675*/                OPC_RecordChild2, // #3 = $src0
/*351676*/                OPC_CheckType, MVT::v4i32,
/*351678*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*351680*/                OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*351683*/                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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext), VR128X:{ *:[v4i32] }:$src0) - Complexity = 13
                          // Dst: (VEXTRACTI32x4Z256rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v32i8] }:$src, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v16i8] }:$ext))
/*351693*/              /*Scope*/ 33, /*->351727*/
/*351694*/                OPC_CheckChild0Type, MVT::v8i64,
/*351696*/                OPC_MoveChild1,
/*351697*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*351700*/                OPC_CheckType, MVT::iPTR,
/*351702*/                OPC_MoveParent,
/*351703*/                OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/*351705*/                OPC_CheckType, MVT::v2i64,
/*351707*/                OPC_MoveParent,
/*351708*/                OPC_MoveParent,
/*351709*/                OPC_RecordChild2, // #3 = $src0
/*351710*/                OPC_CheckType, MVT::v4i32,
/*351712*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*351714*/                OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*351717*/                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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext), VR128X:{ *:[v4i32] }:$src0) - Complexity = 13
                          // Dst: (VEXTRACTI32x4Zrrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR512:{ *:[v8i64] }:$src, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v2i64] }:$ext))
/*351727*/              /*Scope*/ 33, /*->351761*/
/*351728*/                OPC_CheckChild0Type, MVT::v32i16,
/*351730*/                OPC_MoveChild1,
/*351731*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*351734*/                OPC_CheckType, MVT::iPTR,
/*351736*/                OPC_MoveParent,
/*351737*/                OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/*351739*/                OPC_CheckType, MVT::v8i16,
/*351741*/                OPC_MoveParent,
/*351742*/                OPC_MoveParent,
/*351743*/                OPC_RecordChild2, // #3 = $src0
/*351744*/                OPC_CheckType, MVT::v4i32,
/*351746*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*351748*/                OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*351751*/                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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext), VR128X:{ *:[v4i32] }:$src0) - Complexity = 13
                          // Dst: (VEXTRACTI32x4Zrrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR512:{ *:[v32i16] }:$src, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v8i16] }:$ext))
/*351761*/              /*Scope*/ 33, /*->351795*/
/*351762*/                OPC_CheckChild0Type, MVT::v64i8,
/*351764*/                OPC_MoveChild1,
/*351765*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*351768*/                OPC_CheckType, MVT::iPTR,
/*351770*/                OPC_MoveParent,
/*351771*/                OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/*351773*/                OPC_CheckType, MVT::v16i8,
/*351775*/                OPC_MoveParent,
/*351776*/                OPC_MoveParent,
/*351777*/                OPC_RecordChild2, // #3 = $src0
/*351778*/                OPC_CheckType, MVT::v4i32,
/*351780*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*351782*/                OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*351785*/                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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext), VR128X:{ *:[v4i32] }:$src0) - Complexity = 13
                          // Dst: (VEXTRACTI32x4Zrrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR512:{ *:[v64i8] }:$src, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v16i8] }:$ext))
/*351795*/              /*Scope*/ 77, /*->351873*/
/*351796*/                OPC_MoveChild1,
/*351797*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*351800*/                OPC_CheckType, MVT::iPTR,
/*351802*/                OPC_MoveParent,
/*351803*/                OPC_CheckPredicate, 18, // Predicate_vextract256_extract
/*351805*/                OPC_SwitchType /*3 cases */, 20, MVT::v8i32,// ->351828
/*351808*/                  OPC_MoveParent,
/*351809*/                  OPC_MoveParent,
/*351810*/                  OPC_RecordChild2, // #3 = $src0
/*351811*/                  OPC_CheckType, MVT::v4i64,
/*351813*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*351815*/                  OPC_EmitNodeXForm, 1, 1, // EXTRACT_get_vextract256_imm
/*351818*/                  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] }))<<P:Predicate_vextract256_extract>><<X:EXTRACT_get_vextract256_imm>>:$ext), VR256X:{ *:[v4i64] }:$src0) - Complexity = 13
                            // Dst: (VEXTRACTI64x4Zrrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR512:{ *:[v16i32] }:$src, (EXTRACT_get_vextract256_imm:{ *:[i8] } VR256X:{ *:[v8i32] }:$ext))
/*351828*/                /*SwitchType*/ 20, MVT::v16i16,// ->351850
/*351830*/                  OPC_MoveParent,
/*351831*/                  OPC_MoveParent,
/*351832*/                  OPC_RecordChild2, // #3 = $src0
/*351833*/                  OPC_CheckType, MVT::v4i64,
/*351835*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*351837*/                  OPC_EmitNodeXForm, 1, 1, // EXTRACT_get_vextract256_imm
/*351840*/                  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] }))<<P:Predicate_vextract256_extract>><<X:EXTRACT_get_vextract256_imm>>:$ext), VR256X:{ *:[v4i64] }:$src0) - Complexity = 13
                            // Dst: (VEXTRACTI64x4Zrrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR512:{ *:[v32i16] }:$src, (EXTRACT_get_vextract256_imm:{ *:[i8] } VR256X:{ *:[v16i16] }:$ext))
/*351850*/                /*SwitchType*/ 20, MVT::v32i8,// ->351872
/*351852*/                  OPC_MoveParent,
/*351853*/                  OPC_MoveParent,
/*351854*/                  OPC_RecordChild2, // #3 = $src0
/*351855*/                  OPC_CheckType, MVT::v4i64,
/*351857*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*351859*/                  OPC_EmitNodeXForm, 1, 1, // EXTRACT_get_vextract256_imm
/*351862*/                  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] }))<<P:Predicate_vextract256_extract>><<X:EXTRACT_get_vextract256_imm>>:$ext), VR256X:{ *:[v4i64] }:$src0) - Complexity = 13
                            // Dst: (VEXTRACTI64x4Zrrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR512:{ *:[v64i8] }:$src, (EXTRACT_get_vextract256_imm:{ *:[i8] } VR256X:{ *:[v32i8] }:$ext))
/*351872*/                0, // EndSwitchType
/*351873*/              0, /*End of Scope*/
/*351874*/            /*Scope*/ 24|128,4/*536*/, /*->352412*/
/*351876*/              OPC_MoveChild0,
/*351877*/              OPC_SwitchOpcode /*5 cases */, 22, TARGET_VAL(X86ISD::VBROADCAST),// ->351903
/*351881*/                OPC_RecordChild0, // #1 = $src
/*351882*/                OPC_CheckChild0Type, MVT::v2i64,
/*351884*/                OPC_CheckType, MVT::v2i64,
/*351886*/                OPC_MoveParent,
/*351887*/                OPC_MoveParent,
/*351888*/                OPC_MoveChild2,
/*351889*/                OPC_CheckImmAllZerosV,
/*351890*/                OPC_MoveParent,
/*351891*/                OPC_CheckType, MVT::v4i32,
/*351893*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*351895*/                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)), immAllZerosV:{ *:[v4i32] }) - Complexity = 13
                          // Dst: (VBROADCASTI32X2Z128rkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*351903*/              /*SwitchOpcode*/ 124, TARGET_VAL(ISD::AND),// ->352030
/*351906*/                OPC_RecordChild0, // #1 = $src1
/*351907*/                OPC_RecordChild1, // #2 = $src2
/*351908*/                OPC_SwitchType /*6 cases */, 18, MVT::v8i32,// ->351929
/*351911*/                  OPC_MoveParent,
/*351912*/                  OPC_MoveParent,
/*351913*/                  OPC_MoveChild2,
/*351914*/                  OPC_CheckImmAllZerosV,
/*351915*/                  OPC_MoveParent,
/*351916*/                  OPC_CheckType, MVT::v4i64,
/*351918*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*351920*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ256rrkz), 0,
                                MVT::v4i64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i64] } (and:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)), immAllZerosV:{ *:[v4i64] }) - Complexity = 13
                            // Dst: (VPANDQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*351929*/                /*SwitchType*/ 18, MVT::v16i16,// ->351949
/*351931*/                  OPC_MoveParent,
/*351932*/                  OPC_MoveParent,
/*351933*/                  OPC_MoveChild2,
/*351934*/                  OPC_CheckImmAllZerosV,
/*351935*/                  OPC_MoveParent,
/*351936*/                  OPC_CheckType, MVT::v4i64,
/*351938*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*351940*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ256rrkz), 0,
                                MVT::v4i64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i64] } (and:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)), immAllZerosV:{ *:[v4i64] }) - Complexity = 13
                            // Dst: (VPANDQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*351949*/                /*SwitchType*/ 18, MVT::v32i8,// ->351969
/*351951*/                  OPC_MoveParent,
/*351952*/                  OPC_MoveParent,
/*351953*/                  OPC_MoveChild2,
/*351954*/                  OPC_CheckImmAllZerosV,
/*351955*/                  OPC_MoveParent,
/*351956*/                  OPC_CheckType, MVT::v4i64,
/*351958*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*351960*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ256rrkz), 0,
                                MVT::v4i64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i64] } (and:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)), immAllZerosV:{ *:[v4i64] }) - Complexity = 13
                            // Dst: (VPANDQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*351969*/                /*SwitchType*/ 18, MVT::v2i64,// ->351989
/*351971*/                  OPC_MoveParent,
/*351972*/                  OPC_MoveParent,
/*351973*/                  OPC_MoveChild2,
/*351974*/                  OPC_CheckImmAllZerosV,
/*351975*/                  OPC_MoveParent,
/*351976*/                  OPC_CheckType, MVT::v4i32,
/*351978*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*351980*/                  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)), immAllZerosV:{ *:[v4i32] }) - Complexity = 13
                            // Dst: (VPANDDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*351989*/                /*SwitchType*/ 18, MVT::v8i16,// ->352009
/*351991*/                  OPC_MoveParent,
/*351992*/                  OPC_MoveParent,
/*351993*/                  OPC_MoveChild2,
/*351994*/                  OPC_CheckImmAllZerosV,
/*351995*/                  OPC_MoveParent,
/*351996*/                  OPC_CheckType, MVT::v4i32,
/*351998*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*352000*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ128rrkz), 0,
                                MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (and:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)), immAllZerosV:{ *:[v4i32] }) - Complexity = 13
                            // Dst: (VPANDDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*352009*/                /*SwitchType*/ 18, MVT::v16i8,// ->352029
/*352011*/                  OPC_MoveParent,
/*352012*/                  OPC_MoveParent,
/*352013*/                  OPC_MoveChild2,
/*352014*/                  OPC_CheckImmAllZerosV,
/*352015*/                  OPC_MoveParent,
/*352016*/                  OPC_CheckType, MVT::v4i32,
/*352018*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*352020*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ128rrkz), 0,
                                MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (and:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)), immAllZerosV:{ *:[v4i32] }) - Complexity = 13
                            // Dst: (VPANDDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*352029*/                0, // EndSwitchType
/*352030*/              /*SwitchOpcode*/ 124, TARGET_VAL(ISD::OR),// ->352157
/*352033*/                OPC_RecordChild0, // #1 = $src1
/*352034*/                OPC_RecordChild1, // #2 = $src2
/*352035*/                OPC_SwitchType /*6 cases */, 18, MVT::v8i32,// ->352056
/*352038*/                  OPC_MoveParent,
/*352039*/                  OPC_MoveParent,
/*352040*/                  OPC_MoveChild2,
/*352041*/                  OPC_CheckImmAllZerosV,
/*352042*/                  OPC_MoveParent,
/*352043*/                  OPC_CheckType, MVT::v4i64,
/*352045*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*352047*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ256rrkz), 0,
                                MVT::v4i64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i64] } (or:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)), immAllZerosV:{ *:[v4i64] }) - Complexity = 13
                            // Dst: (VPORQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*352056*/                /*SwitchType*/ 18, MVT::v16i16,// ->352076
/*352058*/                  OPC_MoveParent,
/*352059*/                  OPC_MoveParent,
/*352060*/                  OPC_MoveChild2,
/*352061*/                  OPC_CheckImmAllZerosV,
/*352062*/                  OPC_MoveParent,
/*352063*/                  OPC_CheckType, MVT::v4i64,
/*352065*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*352067*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ256rrkz), 0,
                                MVT::v4i64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i64] } (or:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)), immAllZerosV:{ *:[v4i64] }) - Complexity = 13
                            // Dst: (VPORQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*352076*/                /*SwitchType*/ 18, MVT::v32i8,// ->352096
/*352078*/                  OPC_MoveParent,
/*352079*/                  OPC_MoveParent,
/*352080*/                  OPC_MoveChild2,
/*352081*/                  OPC_CheckImmAllZerosV,
/*352082*/                  OPC_MoveParent,
/*352083*/                  OPC_CheckType, MVT::v4i64,
/*352085*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*352087*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ256rrkz), 0,
                                MVT::v4i64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i64] } (or:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)), immAllZerosV:{ *:[v4i64] }) - Complexity = 13
                            // Dst: (VPORQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*352096*/                /*SwitchType*/ 18, MVT::v2i64,// ->352116
/*352098*/                  OPC_MoveParent,
/*352099*/                  OPC_MoveParent,
/*352100*/                  OPC_MoveChild2,
/*352101*/                  OPC_CheckImmAllZerosV,
/*352102*/                  OPC_MoveParent,
/*352103*/                  OPC_CheckType, MVT::v4i32,
/*352105*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*352107*/                  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)), immAllZerosV:{ *:[v4i32] }) - Complexity = 13
                            // Dst: (VPORDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*352116*/                /*SwitchType*/ 18, MVT::v8i16,// ->352136
/*352118*/                  OPC_MoveParent,
/*352119*/                  OPC_MoveParent,
/*352120*/                  OPC_MoveChild2,
/*352121*/                  OPC_CheckImmAllZerosV,
/*352122*/                  OPC_MoveParent,
/*352123*/                  OPC_CheckType, MVT::v4i32,
/*352125*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*352127*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ128rrkz), 0,
                                MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (or:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)), immAllZerosV:{ *:[v4i32] }) - Complexity = 13
                            // Dst: (VPORDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*352136*/                /*SwitchType*/ 18, MVT::v16i8,// ->352156
/*352138*/                  OPC_MoveParent,
/*352139*/                  OPC_MoveParent,
/*352140*/                  OPC_MoveChild2,
/*352141*/                  OPC_CheckImmAllZerosV,
/*352142*/                  OPC_MoveParent,
/*352143*/                  OPC_CheckType, MVT::v4i32,
/*352145*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*352147*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ128rrkz), 0,
                                MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (or:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)), immAllZerosV:{ *:[v4i32] }) - Complexity = 13
                            // Dst: (VPORDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*352156*/                0, // EndSwitchType
/*352157*/              /*SwitchOpcode*/ 124, TARGET_VAL(ISD::XOR),// ->352284
/*352160*/                OPC_RecordChild0, // #1 = $src1
/*352161*/                OPC_RecordChild1, // #2 = $src2
/*352162*/                OPC_SwitchType /*6 cases */, 18, MVT::v8i32,// ->352183
/*352165*/                  OPC_MoveParent,
/*352166*/                  OPC_MoveParent,
/*352167*/                  OPC_MoveChild2,
/*352168*/                  OPC_CheckImmAllZerosV,
/*352169*/                  OPC_MoveParent,
/*352170*/                  OPC_CheckType, MVT::v4i64,
/*352172*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*352174*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ256rrkz), 0,
                                MVT::v4i64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i64] } (xor:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)), immAllZerosV:{ *:[v4i64] }) - Complexity = 13
                            // Dst: (VPXORQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*352183*/                /*SwitchType*/ 18, MVT::v16i16,// ->352203
/*352185*/                  OPC_MoveParent,
/*352186*/                  OPC_MoveParent,
/*352187*/                  OPC_MoveChild2,
/*352188*/                  OPC_CheckImmAllZerosV,
/*352189*/                  OPC_MoveParent,
/*352190*/                  OPC_CheckType, MVT::v4i64,
/*352192*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*352194*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ256rrkz), 0,
                                MVT::v4i64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i64] } (xor:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)), immAllZerosV:{ *:[v4i64] }) - Complexity = 13
                            // Dst: (VPXORQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*352203*/                /*SwitchType*/ 18, MVT::v32i8,// ->352223
/*352205*/                  OPC_MoveParent,
/*352206*/                  OPC_MoveParent,
/*352207*/                  OPC_MoveChild2,
/*352208*/                  OPC_CheckImmAllZerosV,
/*352209*/                  OPC_MoveParent,
/*352210*/                  OPC_CheckType, MVT::v4i64,
/*352212*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*352214*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ256rrkz), 0,
                                MVT::v4i64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i64] } (xor:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)), immAllZerosV:{ *:[v4i64] }) - Complexity = 13
                            // Dst: (VPXORQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*352223*/                /*SwitchType*/ 18, MVT::v2i64,// ->352243
/*352225*/                  OPC_MoveParent,
/*352226*/                  OPC_MoveParent,
/*352227*/                  OPC_MoveChild2,
/*352228*/                  OPC_CheckImmAllZerosV,
/*352229*/                  OPC_MoveParent,
/*352230*/                  OPC_CheckType, MVT::v4i32,
/*352232*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*352234*/                  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)), immAllZerosV:{ *:[v4i32] }) - Complexity = 13
                            // Dst: (VPXORDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*352243*/                /*SwitchType*/ 18, MVT::v8i16,// ->352263
/*352245*/                  OPC_MoveParent,
/*352246*/                  OPC_MoveParent,
/*352247*/                  OPC_MoveChild2,
/*352248*/                  OPC_CheckImmAllZerosV,
/*352249*/                  OPC_MoveParent,
/*352250*/                  OPC_CheckType, MVT::v4i32,
/*352252*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*352254*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ128rrkz), 0,
                                MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (xor:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)), immAllZerosV:{ *:[v4i32] }) - Complexity = 13
                            // Dst: (VPXORDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*352263*/                /*SwitchType*/ 18, MVT::v16i8,// ->352283
/*352265*/                  OPC_MoveParent,
/*352266*/                  OPC_MoveParent,
/*352267*/                  OPC_MoveChild2,
/*352268*/                  OPC_CheckImmAllZerosV,
/*352269*/                  OPC_MoveParent,
/*352270*/                  OPC_CheckType, MVT::v4i32,
/*352272*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*352274*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ128rrkz), 0,
                                MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (xor:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)), immAllZerosV:{ *:[v4i32] }) - Complexity = 13
                            // Dst: (VPXORDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*352283*/                0, // EndSwitchType
/*352284*/              /*SwitchOpcode*/ 124, TARGET_VAL(X86ISD::ANDNP),// ->352411
/*352287*/                OPC_RecordChild0, // #1 = $src1
/*352288*/                OPC_RecordChild1, // #2 = $src2
/*352289*/                OPC_SwitchType /*6 cases */, 18, MVT::v8i32,// ->352310
/*352292*/                  OPC_MoveParent,
/*352293*/                  OPC_MoveParent,
/*352294*/                  OPC_MoveChild2,
/*352295*/                  OPC_CheckImmAllZerosV,
/*352296*/                  OPC_MoveParent,
/*352297*/                  OPC_CheckType, MVT::v4i64,
/*352299*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*352301*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZ256rrkz), 0,
                                MVT::v4i64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i64] } (X86andnp:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)), immAllZerosV:{ *:[v4i64] }) - Complexity = 13
                            // Dst: (VPANDNQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*352310*/                /*SwitchType*/ 18, MVT::v16i16,// ->352330
/*352312*/                  OPC_MoveParent,
/*352313*/                  OPC_MoveParent,
/*352314*/                  OPC_MoveChild2,
/*352315*/                  OPC_CheckImmAllZerosV,
/*352316*/                  OPC_MoveParent,
/*352317*/                  OPC_CheckType, MVT::v4i64,
/*352319*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*352321*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZ256rrkz), 0,
                                MVT::v4i64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i64] } (X86andnp:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)), immAllZerosV:{ *:[v4i64] }) - Complexity = 13
                            // Dst: (VPANDNQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*352330*/                /*SwitchType*/ 18, MVT::v32i8,// ->352350
/*352332*/                  OPC_MoveParent,
/*352333*/                  OPC_MoveParent,
/*352334*/                  OPC_MoveChild2,
/*352335*/                  OPC_CheckImmAllZerosV,
/*352336*/                  OPC_MoveParent,
/*352337*/                  OPC_CheckType, MVT::v4i64,
/*352339*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*352341*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZ256rrkz), 0,
                                MVT::v4i64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i64] } (X86andnp:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)), immAllZerosV:{ *:[v4i64] }) - Complexity = 13
                            // Dst: (VPANDNQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*352350*/                /*SwitchType*/ 18, MVT::v2i64,// ->352370
/*352352*/                  OPC_MoveParent,
/*352353*/                  OPC_MoveParent,
/*352354*/                  OPC_MoveChild2,
/*352355*/                  OPC_CheckImmAllZerosV,
/*352356*/                  OPC_MoveParent,
/*352357*/                  OPC_CheckType, MVT::v4i32,
/*352359*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*352361*/                  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)), immAllZerosV:{ *:[v4i32] }) - Complexity = 13
                            // Dst: (VPANDNDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*352370*/                /*SwitchType*/ 18, MVT::v8i16,// ->352390
/*352372*/                  OPC_MoveParent,
/*352373*/                  OPC_MoveParent,
/*352374*/                  OPC_MoveChild2,
/*352375*/                  OPC_CheckImmAllZerosV,
/*352376*/                  OPC_MoveParent,
/*352377*/                  OPC_CheckType, MVT::v4i32,
/*352379*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*352381*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZ128rrkz), 0,
                                MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (X86andnp:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)), immAllZerosV:{ *:[v4i32] }) - Complexity = 13
                            // Dst: (VPANDNDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*352390*/                /*SwitchType*/ 18, MVT::v16i8,// ->352410
/*352392*/                  OPC_MoveParent,
/*352393*/                  OPC_MoveParent,
/*352394*/                  OPC_MoveChild2,
/*352395*/                  OPC_CheckImmAllZerosV,
/*352396*/                  OPC_MoveParent,
/*352397*/                  OPC_CheckType, MVT::v4i32,
/*352399*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*352401*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZ128rrkz), 0,
                                MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (X86andnp:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)), immAllZerosV:{ *:[v4i32] }) - Complexity = 13
                            // Dst: (VPANDNDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*352410*/                0, // EndSwitchType
/*352411*/              0, // EndSwitchOpcode
/*352412*/            /*Scope*/ 85, /*->352498*/
/*352413*/              OPC_RecordChild0, // #1 = $ins
/*352414*/              OPC_MoveChild0,
/*352415*/              OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*352418*/              OPC_RecordChild0, // #2 = $src1
/*352419*/              OPC_RecordChild1, // #3 = $src2
/*352420*/              OPC_MoveChild2,
/*352421*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*352424*/              OPC_CheckType, MVT::iPTR,
/*352426*/              OPC_MoveParent,
/*352427*/              OPC_SwitchType /*3 cases */, 21, MVT::v8i32,// ->352451
/*352430*/                OPC_MoveParent,
/*352431*/                OPC_MoveParent,
/*352432*/                OPC_RecordChild2, // #4 = $src0
/*352433*/                OPC_CheckType, MVT::v4i64,
/*352435*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*352437*/                OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*352440*/                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))
/*352451*/              /*SwitchType*/ 21, MVT::v16i16,// ->352474
/*352453*/                OPC_MoveParent,
/*352454*/                OPC_MoveParent,
/*352455*/                OPC_RecordChild2, // #4 = $src0
/*352456*/                OPC_CheckType, MVT::v4i64,
/*352458*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*352460*/                OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*352463*/                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))
/*352474*/              /*SwitchType*/ 21, MVT::v32i8,// ->352497
/*352476*/                OPC_MoveParent,
/*352477*/                OPC_MoveParent,
/*352478*/                OPC_RecordChild2, // #4 = $src0
/*352479*/                OPC_CheckType, MVT::v4i64,
/*352481*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*352483*/                OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*352486*/                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))
/*352497*/              0, // EndSwitchType
/*352498*/            /*Scope*/ 35, /*->352534*/
/*352499*/              OPC_MoveChild0,
/*352500*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VALIGN),
/*352503*/              OPC_RecordChild0, // #1 = $src1
/*352504*/              OPC_RecordChild1, // #2 = $src2
/*352505*/              OPC_RecordChild2, // #3 = $src3
/*352506*/              OPC_MoveChild2,
/*352507*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*352510*/              OPC_MoveParent,
/*352511*/              OPC_CheckType, MVT::v2i64,
/*352513*/              OPC_MoveParent,
/*352514*/              OPC_MoveParent,
/*352515*/              OPC_RecordChild2, // #4 = $src0
/*352516*/              OPC_CheckType, MVT::v4i32,
/*352518*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*352520*/              OPC_EmitNodeXForm, 14, 3, // ValignqImm32XForm
/*352523*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZ128rrik), 0,
                            MVT::v4i32, 5/*#Ops*/, 4, 0, 1, 2, 5, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (X86VAlign:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (timm:{ *:[i8] }):$src3)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 12
                        // Dst: (VALIGNDZ128rrik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (ValignqImm32XForm:{ *:[i8] } (timm:{ *:[i8] }):$src3))
/*352534*/            0, /*End of Scope*/
/*352535*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VSRLI),// ->352577
/*352538*/            OPC_RecordChild0, // #1 = $src1
/*352539*/            OPC_RecordChild1, // #2 = $src2
/*352540*/            OPC_MoveChild1,
/*352541*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*352544*/            OPC_MoveParent,
/*352545*/            OPC_MoveParent,
/*352546*/            OPC_MoveChild2,
/*352547*/            OPC_CheckImmAllZerosV,
/*352548*/            OPC_MoveParent,
/*352549*/            OPC_SwitchType /*2 cases */, 11, MVT::v4i32,// ->352563
/*352552*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*352554*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZ128rikz), 0,
                            MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrli:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v4i32] }) - Complexity = 13
                        // Dst: (VPSRLDZ128rikz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$src2)
/*352563*/            /*SwitchType*/ 11, MVT::v4i64,// ->352576
/*352565*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*352567*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZ256rikz), 0,
                            MVT::v4i64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrli:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v4i64] }) - Complexity = 13
                        // Dst: (VPSRLQZ256rikz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, (timm:{ *:[i8] }):$src2)
/*352576*/            0, // EndSwitchType
/*352577*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VSHLI),// ->352619
/*352580*/            OPC_RecordChild0, // #1 = $src1
/*352581*/            OPC_RecordChild1, // #2 = $src2
/*352582*/            OPC_MoveChild1,
/*352583*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*352586*/            OPC_MoveParent,
/*352587*/            OPC_MoveParent,
/*352588*/            OPC_MoveChild2,
/*352589*/            OPC_CheckImmAllZerosV,
/*352590*/            OPC_MoveParent,
/*352591*/            OPC_SwitchType /*2 cases */, 11, MVT::v4i32,// ->352605
/*352594*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*352596*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZ128rikz), 0,
                            MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vshli:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v4i32] }) - Complexity = 13
                        // Dst: (VPSLLDZ128rikz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$src2)
/*352605*/            /*SwitchType*/ 11, MVT::v4i64,// ->352618
/*352607*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*352609*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZ256rikz), 0,
                            MVT::v4i64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vshli:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v4i64] }) - Complexity = 13
                        // Dst: (VPSLLQZ256rikz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, (timm:{ *:[i8] }):$src2)
/*352618*/            0, // EndSwitchType
/*352619*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VSRAI),// ->352661
/*352622*/            OPC_RecordChild0, // #1 = $src1
/*352623*/            OPC_RecordChild1, // #2 = $src2
/*352624*/            OPC_MoveChild1,
/*352625*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*352628*/            OPC_MoveParent,
/*352629*/            OPC_MoveParent,
/*352630*/            OPC_MoveChild2,
/*352631*/            OPC_CheckImmAllZerosV,
/*352632*/            OPC_MoveParent,
/*352633*/            OPC_SwitchType /*2 cases */, 11, MVT::v4i32,// ->352647
/*352636*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*352638*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZ128rikz), 0,
                            MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrai:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v4i32] }) - Complexity = 13
                        // Dst: (VPSRADZ128rikz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$src2)
/*352647*/            /*SwitchType*/ 11, MVT::v4i64,// ->352660
/*352649*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*352651*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZ256rikz), 0,
                            MVT::v4i64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrai:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v4i64] }) - Complexity = 13
                        // Dst: (VPSRAQZ256rikz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, (timm:{ *:[i8] }):$src2)
/*352660*/            0, // EndSwitchType
/*352661*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VROTRI),// ->352703
/*352664*/            OPC_RecordChild0, // #1 = $src1
/*352665*/            OPC_RecordChild1, // #2 = $src2
/*352666*/            OPC_MoveChild1,
/*352667*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*352670*/            OPC_MoveParent,
/*352671*/            OPC_MoveParent,
/*352672*/            OPC_MoveChild2,
/*352673*/            OPC_CheckImmAllZerosV,
/*352674*/            OPC_MoveParent,
/*352675*/            OPC_SwitchType /*2 cases */, 11, MVT::v4i32,// ->352689
/*352678*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*352680*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORDZ128rikz), 0,
                            MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vrotri:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v4i32] }) - Complexity = 13
                        // Dst: (VPRORDZ128rikz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$src2)
/*352689*/            /*SwitchType*/ 11, MVT::v4i64,// ->352702
/*352691*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*352693*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORQZ256rikz), 0,
                            MVT::v4i64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vrotri:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v4i64] }) - Complexity = 13
                        // Dst: (VPRORQZ256rikz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, (timm:{ *:[i8] }):$src2)
/*352702*/            0, // EndSwitchType
/*352703*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VROTLI),// ->352745
/*352706*/            OPC_RecordChild0, // #1 = $src1
/*352707*/            OPC_RecordChild1, // #2 = $src2
/*352708*/            OPC_MoveChild1,
/*352709*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*352712*/            OPC_MoveParent,
/*352713*/            OPC_MoveParent,
/*352714*/            OPC_MoveChild2,
/*352715*/            OPC_CheckImmAllZerosV,
/*352716*/            OPC_MoveParent,
/*352717*/            OPC_SwitchType /*2 cases */, 11, MVT::v4i32,// ->352731
/*352720*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*352722*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLDZ128rikz), 0,
                            MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vrotli:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v4i32] }) - Complexity = 13
                        // Dst: (VPROLDZ128rikz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$src2)
/*352731*/            /*SwitchType*/ 11, MVT::v4i64,// ->352744
/*352733*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*352735*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLQZ256rikz), 0,
                            MVT::v4i64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vrotli:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v4i64] }) - Complexity = 13
                        // Dst: (VPROLQZ256rikz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, (timm:{ *:[i8] }):$src2)
/*352744*/            0, // EndSwitchType
/*352745*/          /*SwitchOpcode*/ 24, TARGET_VAL(X86ISD::VPERMI),// ->352772
/*352748*/            OPC_RecordChild0, // #1 = $src1
/*352749*/            OPC_RecordChild1, // #2 = $src2
/*352750*/            OPC_MoveChild1,
/*352751*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*352754*/            OPC_MoveParent,
/*352755*/            OPC_MoveParent,
/*352756*/            OPC_MoveChild2,
/*352757*/            OPC_CheckImmAllZerosV,
/*352758*/            OPC_MoveParent,
/*352759*/            OPC_CheckType, MVT::v4i64,
/*352761*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*352763*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMQZ256rikz), 0,
                          MVT::v4i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermi:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v4i64] }) - Complexity = 13
                      // Dst: (VPERMQZ256rikz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, (timm:{ *:[i8] }):$src2)
/*352772*/          /*SwitchOpcode*/ 24, TARGET_VAL(X86ISD::PSHUFD),// ->352799
/*352775*/            OPC_RecordChild0, // #1 = $src1
/*352776*/            OPC_RecordChild1, // #2 = $src2
/*352777*/            OPC_MoveChild1,
/*352778*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*352781*/            OPC_MoveParent,
/*352782*/            OPC_MoveParent,
/*352783*/            OPC_MoveChild2,
/*352784*/            OPC_CheckImmAllZerosV,
/*352785*/            OPC_MoveParent,
/*352786*/            OPC_CheckType, MVT::v4i32,
/*352788*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*352790*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFDZ128rikz), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86PShufd:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v4i32] }) - Complexity = 13
                      // Dst: (VPSHUFDZ128rikz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$src2)
/*352799*/          /*SwitchOpcode*/ 26, TARGET_VAL(X86ISD::SHUF128),// ->352828
/*352802*/            OPC_RecordChild0, // #1 = $src1
/*352803*/            OPC_RecordChild1, // #2 = $src2
/*352804*/            OPC_RecordChild2, // #3 = $src3
/*352805*/            OPC_MoveChild2,
/*352806*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*352809*/            OPC_MoveParent,
/*352810*/            OPC_MoveParent,
/*352811*/            OPC_MoveChild2,
/*352812*/            OPC_CheckImmAllZerosV,
/*352813*/            OPC_MoveParent,
/*352814*/            OPC_CheckType, MVT::v4i64,
/*352816*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*352818*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI64X2Z256rrikz), 0,
                          MVT::v4i64, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86Shuf128:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v4i64] }) - Complexity = 13
                      // Dst: (VSHUFI64X2Z256rrikz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (timm:{ *:[i8] }):$src3)
/*352828*/          /*SwitchOpcode*/ 42, TARGET_VAL(X86ISD::VALIGN),// ->352873
/*352831*/            OPC_RecordChild0, // #1 = $src1
/*352832*/            OPC_RecordChild1, // #2 = $src2
/*352833*/            OPC_RecordChild2, // #3 = $src3
/*352834*/            OPC_MoveChild2,
/*352835*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*352838*/            OPC_MoveParent,
/*352839*/            OPC_MoveParent,
/*352840*/            OPC_MoveChild2,
/*352841*/            OPC_CheckImmAllZerosV,
/*352842*/            OPC_MoveParent,
/*352843*/            OPC_SwitchType /*2 cases */, 12, MVT::v4i32,// ->352858
/*352846*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*352848*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZ128rrikz), 0,
                            MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86VAlign:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v4i32] }) - Complexity = 13
                        // Dst: (VALIGNDZ128rrikz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (timm:{ *:[i8] }):$src3)
/*352858*/            /*SwitchType*/ 12, MVT::v4i64,// ->352872
/*352860*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*352862*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNQZ256rrikz), 0,
                            MVT::v4i64, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VAlign:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v4i64] }) - Complexity = 13
                        // Dst: (VALIGNQZ256rrikz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (timm:{ *:[i8] }):$src3)
/*352872*/            0, // EndSwitchType
/*352873*/          /*SwitchOpcode*/ 45, TARGET_VAL(X86ISD::VPTERNLOG),// ->352921
/*352876*/            OPC_RecordChild0, // #1 = $src1
/*352877*/            OPC_RecordChild1, // #2 = $src2
/*352878*/            OPC_RecordChild2, // #3 = $src3
/*352879*/            OPC_RecordChild3, // #4 = $src4
/*352880*/            OPC_MoveChild3,
/*352881*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*352884*/            OPC_MoveParent,
/*352885*/            OPC_MoveParent,
/*352886*/            OPC_MoveChild2,
/*352887*/            OPC_CheckImmAllZerosV,
/*352888*/            OPC_MoveParent,
/*352889*/            OPC_SwitchType /*2 cases */, 13, MVT::v4i32,// ->352905
/*352892*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*352894*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ128rrikz), 0,
                            MVT::v4i32, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3, (timm:{ *:[i8] }):$src4), immAllZerosV:{ *:[v4i32] }) - Complexity = 13
                        // Dst: (VPTERNLOGDZ128rrikz:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3, (timm:{ *:[i8] }):$src4)
/*352905*/            /*SwitchType*/ 13, MVT::v4i64,// ->352920
/*352907*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*352909*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rrikz), 0,
                            MVT::v4i64, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src3, (timm:{ *:[i8] }):$src4), immAllZerosV:{ *:[v4i64] }) - Complexity = 13
                        // Dst: (VPTERNLOGQZ256rrikz:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src3, (timm:{ *:[i8] }):$src4)
/*352920*/            0, // EndSwitchType
/*352921*/          /*SwitchOpcode*/ 42, TARGET_VAL(X86ISD::VSHLD),// ->352966
/*352924*/            OPC_RecordChild0, // #1 = $src1
/*352925*/            OPC_RecordChild1, // #2 = $src2
/*352926*/            OPC_RecordChild2, // #3 = $src3
/*352927*/            OPC_MoveChild2,
/*352928*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*352931*/            OPC_MoveParent,
/*352932*/            OPC_MoveParent,
/*352933*/            OPC_MoveChild2,
/*352934*/            OPC_CheckImmAllZerosV,
/*352935*/            OPC_MoveParent,
/*352936*/            OPC_SwitchType /*2 cases */, 12, MVT::v4i32,// ->352951
/*352939*/              OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*352941*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDDZ128rrikz), 0,
                            MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86VShld:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v4i32] }) - Complexity = 13
                        // Dst: (VPSHLDDZ128rrikz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (timm:{ *:[i8] }):$src3)
/*352951*/            /*SwitchType*/ 12, MVT::v4i64,// ->352965
/*352953*/              OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*352955*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDQZ256rrikz), 0,
                            MVT::v4i64, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VShld:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v4i64] }) - Complexity = 13
                        // Dst: (VPSHLDQZ256rrikz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (timm:{ *:[i8] }):$src3)
/*352965*/            0, // EndSwitchType
/*352966*/          /*SwitchOpcode*/ 42, TARGET_VAL(X86ISD::VSHRD),// ->353011
/*352969*/            OPC_RecordChild0, // #1 = $src1
/*352970*/            OPC_RecordChild1, // #2 = $src2
/*352971*/            OPC_RecordChild2, // #3 = $src3
/*352972*/            OPC_MoveChild2,
/*352973*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*352976*/            OPC_MoveParent,
/*352977*/            OPC_MoveParent,
/*352978*/            OPC_MoveChild2,
/*352979*/            OPC_CheckImmAllZerosV,
/*352980*/            OPC_MoveParent,
/*352981*/            OPC_SwitchType /*2 cases */, 12, MVT::v4i32,// ->352996
/*352984*/              OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*352986*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDDZ128rrikz), 0,
                            MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86VShrd:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v4i32] }) - Complexity = 13
                        // Dst: (VPSHRDDZ128rrikz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (timm:{ *:[i8] }):$src3)
/*352996*/            /*SwitchType*/ 12, MVT::v4i64,// ->353010
/*352998*/              OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*353000*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDQZ256rrikz), 0,
                            MVT::v4i64, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VShrd:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v4i64] }) - Complexity = 13
                        // Dst: (VPSHRDQZ256rrikz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (timm:{ *:[i8] }):$src3)
/*353010*/            0, // EndSwitchType
/*353011*/          0, // EndSwitchOpcode
/*353012*/        /*Scope*/ 99, /*->353112*/
/*353013*/          OPC_RecordChild1, // #1 = $idx
/*353014*/          OPC_MoveChild1,
/*353015*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/*353018*/          OPC_RecordChild0, // #2 = $src1
/*353019*/          OPC_Scope, 30, /*->353051*/ // 3 children in Scope
/*353021*/            OPC_CheckChild0Type, MVT::v16i32,
/*353023*/            OPC_MoveChild1,
/*353024*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*353027*/            OPC_CheckType, MVT::iPTR,
/*353029*/            OPC_MoveParent,
/*353030*/            OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/*353032*/            OPC_MoveParent,
/*353033*/            OPC_RecordChild2, // #3 = $src0
/*353034*/            OPC_CheckType, MVT::v4i32,
/*353036*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*353038*/            OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*353041*/            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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$idx, VR128X:{ *:[v4i32] }:$src0) - Complexity = 10
                      // 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))
/*353051*/          /*Scope*/ 28, /*->353080*/
/*353052*/            OPC_MoveChild1,
/*353053*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*353056*/            OPC_CheckType, MVT::iPTR,
/*353058*/            OPC_MoveParent,
/*353059*/            OPC_CheckPredicate, 18, // Predicate_vextract256_extract
/*353061*/            OPC_MoveParent,
/*353062*/            OPC_RecordChild2, // #3 = $src0
/*353063*/            OPC_CheckType, MVT::v4i64,
/*353065*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*353067*/            OPC_EmitNodeXForm, 1, 1, // EXTRACT_get_vextract256_imm
/*353070*/            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] }))<<P:Predicate_vextract256_extract>><<X:EXTRACT_get_vextract256_imm>>:$idx, VR256X:{ *:[v4i64] }:$src0) - Complexity = 10
                      // 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))
/*353080*/          /*Scope*/ 30, /*->353111*/
/*353081*/            OPC_CheckChild0Type, MVT::v8i32,
/*353083*/            OPC_MoveChild1,
/*353084*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*353087*/            OPC_CheckType, MVT::iPTR,
/*353089*/            OPC_MoveParent,
/*353090*/            OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/*353092*/            OPC_MoveParent,
/*353093*/            OPC_RecordChild2, // #3 = $src0
/*353094*/            OPC_CheckType, MVT::v4i32,
/*353096*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*353098*/            OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*353101*/            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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$idx, VR128X:{ *:[v4i32] }:$src0) - Complexity = 10
                      // 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))
/*353111*/          0, /*End of Scope*/
/*353112*/        /*Scope*/ 68|128,16/*2116*/, /*->355230*/
/*353114*/          OPC_MoveChild1,
/*353115*/          OPC_SwitchOpcode /*52 cases */, 79, TARGET_VAL(X86ISD::VBROADCAST),// ->353198
/*353119*/            OPC_RecordChild0, // #1 = $src
/*353120*/            OPC_Scope, 18, /*->353140*/ // 4 children in Scope
/*353122*/              OPC_CheckChild0Type, MVT::i32,
/*353124*/              OPC_MoveParent,
/*353125*/              OPC_MoveChild2,
/*353126*/              OPC_CheckImmAllZerosV,
/*353127*/              OPC_MoveParent,
/*353128*/              OPC_CheckType, MVT::v4i32,
/*353130*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*353132*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTDrZ128rkz), 0,
                            MVT::v4i32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86VBroadcast:{ *:[v4i32] } GR32:{ *:[i32] }:$src), immAllZerosV:{ *:[v4i32] }) - Complexity = 10
                        // Dst: (VPBROADCASTDrZ128rkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, GR32:{ *:[i32] }:$src)
/*353140*/            /*Scope*/ 18, /*->353159*/
/*353141*/              OPC_CheckChild0Type, MVT::i64,
/*353143*/              OPC_MoveParent,
/*353144*/              OPC_MoveChild2,
/*353145*/              OPC_CheckImmAllZerosV,
/*353146*/              OPC_MoveParent,
/*353147*/              OPC_CheckType, MVT::v4i64,
/*353149*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*353151*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQrZ256rkz), 0,
                            MVT::v4i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VBroadcast:{ *:[v4i64] } GR64:{ *:[i64] }:$src), immAllZerosV:{ *:[v4i64] }) - Complexity = 10
                        // Dst: (VPBROADCASTQrZ256rkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, GR64:{ *:[i64] }:$src)
/*353159*/            /*Scope*/ 18, /*->353178*/
/*353160*/              OPC_CheckChild0Type, MVT::v4i32,
/*353162*/              OPC_MoveParent,
/*353163*/              OPC_MoveChild2,
/*353164*/              OPC_CheckImmAllZerosV,
/*353165*/              OPC_MoveParent,
/*353166*/              OPC_CheckType, MVT::v4i32,
/*353168*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*353170*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTDZ128rkz), 0,
                            MVT::v4i32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86VBroadcast:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src), immAllZerosV:{ *:[v4i32] }) - Complexity = 10
                        // Dst: (VPBROADCASTDZ128rkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*353178*/            /*Scope*/ 18, /*->353197*/
/*353179*/              OPC_CheckChild0Type, MVT::v2i64,
/*353181*/              OPC_MoveParent,
/*353182*/              OPC_MoveChild2,
/*353183*/              OPC_CheckImmAllZerosV,
/*353184*/              OPC_MoveParent,
/*353185*/              OPC_CheckType, MVT::v4i64,
/*353187*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*353189*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQZ256rkz), 0,
                            MVT::v4i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VBroadcast:{ *:[v4i64] } VR128X:{ *:[v2i64] }:$src), immAllZerosV:{ *:[v4i64] }) - Complexity = 10
                        // Dst: (VPBROADCASTQZ256rkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*353197*/            0, /*End of Scope*/
/*353198*/          /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::VPERMV3),// ->353238
/*353201*/            OPC_RecordChild0, // #1 = $src1
/*353202*/            OPC_RecordChild1, // #2 = $src2
/*353203*/            OPC_RecordChild2, // #3 = $src3
/*353204*/            OPC_MoveParent,
/*353205*/            OPC_MoveChild2,
/*353206*/            OPC_CheckImmAllZerosV,
/*353207*/            OPC_MoveParent,
/*353208*/            OPC_SwitchType /*2 cases */, 12, MVT::v4i32,// ->353223
/*353211*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*353213*/              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), immAllZerosV:{ *:[v4i32] }) - Complexity = 10
                        // Dst: (VPERMT2D128rrkz:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3)
/*353223*/            /*SwitchType*/ 12, MVT::v4i64,// ->353237
/*353225*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*353227*/              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), immAllZerosV:{ *:[v4i64] }) - Complexity = 10
                        // Dst: (VPERMT2Q256rrkz:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src3)
/*353237*/            0, // EndSwitchType
/*353238*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::ADD),// ->353275
/*353241*/            OPC_RecordChild0, // #1 = $src1
/*353242*/            OPC_RecordChild1, // #2 = $src2
/*353243*/            OPC_MoveParent,
/*353244*/            OPC_MoveChild2,
/*353245*/            OPC_CheckImmAllZerosV,
/*353246*/            OPC_MoveParent,
/*353247*/            OPC_SwitchType /*2 cases */, 11, MVT::v4i64,// ->353261
/*353250*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*353252*/              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), immAllZerosV:{ *:[v4i64] }) - Complexity = 10
                        // Dst: (VPADDQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*353261*/            /*SwitchType*/ 11, MVT::v4i32,// ->353274
/*353263*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*353265*/              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), immAllZerosV:{ *:[v4i32] }) - Complexity = 10
                        // Dst: (VPADDDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*353274*/            0, // EndSwitchType
/*353275*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::SUB),// ->353312
/*353278*/            OPC_RecordChild0, // #1 = $src1
/*353279*/            OPC_RecordChild1, // #2 = $src2
/*353280*/            OPC_MoveParent,
/*353281*/            OPC_MoveChild2,
/*353282*/            OPC_CheckImmAllZerosV,
/*353283*/            OPC_MoveParent,
/*353284*/            OPC_SwitchType /*2 cases */, 11, MVT::v4i64,// ->353298
/*353287*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*353289*/              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), immAllZerosV:{ *:[v4i64] }) - Complexity = 10
                        // Dst: (VPSUBQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*353298*/            /*SwitchType*/ 11, MVT::v4i32,// ->353311
/*353300*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*353302*/              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), immAllZerosV:{ *:[v4i32] }) - Complexity = 10
                        // Dst: (VPSUBDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*353311*/            0, // EndSwitchType
/*353312*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::MUL),// ->353349
/*353315*/            OPC_RecordChild0, // #1 = $src1
/*353316*/            OPC_RecordChild1, // #2 = $src2
/*353317*/            OPC_MoveParent,
/*353318*/            OPC_MoveChild2,
/*353319*/            OPC_CheckImmAllZerosV,
/*353320*/            OPC_MoveParent,
/*353321*/            OPC_SwitchType /*2 cases */, 11, MVT::v4i32,// ->353335
/*353324*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*353326*/              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), immAllZerosV:{ *:[v4i32] }) - Complexity = 10
                        // Dst: (VPMULLDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*353335*/            /*SwitchType*/ 11, MVT::v4i64,// ->353348
/*353337*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*353339*/              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), immAllZerosV:{ *:[v4i64] }) - Complexity = 10
                        // Dst: (VPMULLQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*353348*/            0, // EndSwitchType
/*353349*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::PMULDQ),// ->353371
/*353352*/            OPC_RecordChild0, // #1 = $src1
/*353353*/            OPC_RecordChild1, // #2 = $src2
/*353354*/            OPC_MoveParent,
/*353355*/            OPC_MoveChild2,
/*353356*/            OPC_CheckImmAllZerosV,
/*353357*/            OPC_MoveParent,
/*353358*/            OPC_CheckType, MVT::v4i64,
/*353360*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*353362*/            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), immAllZerosV:{ *:[v4i64] }) - Complexity = 10
                      // Dst: (VPMULDQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*353371*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::PMULUDQ),// ->353393
/*353374*/            OPC_RecordChild0, // #1 = $src1
/*353375*/            OPC_RecordChild1, // #2 = $src2
/*353376*/            OPC_MoveParent,
/*353377*/            OPC_MoveChild2,
/*353378*/            OPC_CheckImmAllZerosV,
/*353379*/            OPC_MoveParent,
/*353380*/            OPC_CheckType, MVT::v4i64,
/*353382*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*353384*/            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), immAllZerosV:{ *:[v4i64] }) - Complexity = 10
                      // Dst: (VPMULUDQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*353393*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::VPMADDWD),// ->353415
/*353396*/            OPC_RecordChild0, // #1 = $src1
/*353397*/            OPC_RecordChild1, // #2 = $src2
/*353398*/            OPC_MoveParent,
/*353399*/            OPC_MoveChild2,
/*353400*/            OPC_CheckImmAllZerosV,
/*353401*/            OPC_MoveParent,
/*353402*/            OPC_CheckType, MVT::v4i32,
/*353404*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*353406*/            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), immAllZerosV:{ *:[v4i32] }) - Complexity = 10
                      // Dst: (VPMADDWDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*353415*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::SMAX),// ->353452
/*353418*/            OPC_RecordChild0, // #1 = $src1
/*353419*/            OPC_RecordChild1, // #2 = $src2
/*353420*/            OPC_MoveParent,
/*353421*/            OPC_MoveChild2,
/*353422*/            OPC_CheckImmAllZerosV,
/*353423*/            OPC_MoveParent,
/*353424*/            OPC_SwitchType /*2 cases */, 11, MVT::v4i32,// ->353438
/*353427*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*353429*/              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), immAllZerosV:{ *:[v4i32] }) - Complexity = 10
                        // Dst: (VPMAXSDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*353438*/            /*SwitchType*/ 11, MVT::v4i64,// ->353451
/*353440*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*353442*/              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), immAllZerosV:{ *:[v4i64] }) - Complexity = 10
                        // Dst: (VPMAXSQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*353451*/            0, // EndSwitchType
/*353452*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::UMAX),// ->353489
/*353455*/            OPC_RecordChild0, // #1 = $src1
/*353456*/            OPC_RecordChild1, // #2 = $src2
/*353457*/            OPC_MoveParent,
/*353458*/            OPC_MoveChild2,
/*353459*/            OPC_CheckImmAllZerosV,
/*353460*/            OPC_MoveParent,
/*353461*/            OPC_SwitchType /*2 cases */, 11, MVT::v4i32,// ->353475
/*353464*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*353466*/              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), immAllZerosV:{ *:[v4i32] }) - Complexity = 10
                        // Dst: (VPMAXUDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*353475*/            /*SwitchType*/ 11, MVT::v4i64,// ->353488
/*353477*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*353479*/              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), immAllZerosV:{ *:[v4i64] }) - Complexity = 10
                        // Dst: (VPMAXUQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*353488*/            0, // EndSwitchType
/*353489*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::SMIN),// ->353526
/*353492*/            OPC_RecordChild0, // #1 = $src1
/*353493*/            OPC_RecordChild1, // #2 = $src2
/*353494*/            OPC_MoveParent,
/*353495*/            OPC_MoveChild2,
/*353496*/            OPC_CheckImmAllZerosV,
/*353497*/            OPC_MoveParent,
/*353498*/            OPC_SwitchType /*2 cases */, 11, MVT::v4i32,// ->353512
/*353501*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*353503*/              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), immAllZerosV:{ *:[v4i32] }) - Complexity = 10
                        // Dst: (VPMINSDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*353512*/            /*SwitchType*/ 11, MVT::v4i64,// ->353525
/*353514*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*353516*/              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), immAllZerosV:{ *:[v4i64] }) - Complexity = 10
                        // Dst: (VPMINSQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*353525*/            0, // EndSwitchType
/*353526*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::UMIN),// ->353563
/*353529*/            OPC_RecordChild0, // #1 = $src1
/*353530*/            OPC_RecordChild1, // #2 = $src2
/*353531*/            OPC_MoveParent,
/*353532*/            OPC_MoveChild2,
/*353533*/            OPC_CheckImmAllZerosV,
/*353534*/            OPC_MoveParent,
/*353535*/            OPC_SwitchType /*2 cases */, 11, MVT::v4i32,// ->353549
/*353538*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*353540*/              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), immAllZerosV:{ *:[v4i32] }) - Complexity = 10
                        // Dst: (VPMINUDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*353549*/            /*SwitchType*/ 11, MVT::v4i64,// ->353562
/*353551*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*353553*/              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), immAllZerosV:{ *:[v4i64] }) - Complexity = 10
                        // Dst: (VPMINUQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*353562*/            0, // EndSwitchType
/*353563*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::AND),// ->353600
/*353566*/            OPC_RecordChild0, // #1 = $src1
/*353567*/            OPC_RecordChild1, // #2 = $src2
/*353568*/            OPC_MoveParent,
/*353569*/            OPC_MoveChild2,
/*353570*/            OPC_CheckImmAllZerosV,
/*353571*/            OPC_MoveParent,
/*353572*/            OPC_SwitchType /*2 cases */, 11, MVT::v4i64,// ->353586
/*353575*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*353577*/              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), immAllZerosV:{ *:[v4i64] }) - Complexity = 10
                        // Dst: (VPANDQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*353586*/            /*SwitchType*/ 11, MVT::v4i32,// ->353599
/*353588*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*353590*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ128rrkz), 0,
                            MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (and:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2), immAllZerosV:{ *:[v4i32] }) - Complexity = 10
                        // Dst: (VPANDDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*353599*/            0, // EndSwitchType
/*353600*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::OR),// ->353637
/*353603*/            OPC_RecordChild0, // #1 = $src1
/*353604*/            OPC_RecordChild1, // #2 = $src2
/*353605*/            OPC_MoveParent,
/*353606*/            OPC_MoveChild2,
/*353607*/            OPC_CheckImmAllZerosV,
/*353608*/            OPC_MoveParent,
/*353609*/            OPC_SwitchType /*2 cases */, 11, MVT::v4i64,// ->353623
/*353612*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*353614*/              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), immAllZerosV:{ *:[v4i64] }) - Complexity = 10
                        // Dst: (VPORQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*353623*/            /*SwitchType*/ 11, MVT::v4i32,// ->353636
/*353625*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*353627*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ128rrkz), 0,
                            MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (or:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2), immAllZerosV:{ *:[v4i32] }) - Complexity = 10
                        // Dst: (VPORDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*353636*/            0, // EndSwitchType
/*353637*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::XOR),// ->353674
/*353640*/            OPC_RecordChild0, // #1 = $src1
/*353641*/            OPC_RecordChild1, // #2 = $src2
/*353642*/            OPC_MoveParent,
/*353643*/            OPC_MoveChild2,
/*353644*/            OPC_CheckImmAllZerosV,
/*353645*/            OPC_MoveParent,
/*353646*/            OPC_SwitchType /*2 cases */, 11, MVT::v4i64,// ->353660
/*353649*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*353651*/              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), immAllZerosV:{ *:[v4i64] }) - Complexity = 10
                        // Dst: (VPXORQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*353660*/            /*SwitchType*/ 11, MVT::v4i32,// ->353673
/*353662*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*353664*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ128rrkz), 0,
                            MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (xor:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2), immAllZerosV:{ *:[v4i32] }) - Complexity = 10
                        // Dst: (VPXORDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*353673*/            0, // EndSwitchType
/*353674*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::ANDNP),// ->353711
/*353677*/            OPC_RecordChild0, // #1 = $src1
/*353678*/            OPC_RecordChild1, // #2 = $src2
/*353679*/            OPC_MoveParent,
/*353680*/            OPC_MoveChild2,
/*353681*/            OPC_CheckImmAllZerosV,
/*353682*/            OPC_MoveParent,
/*353683*/            OPC_SwitchType /*2 cases */, 11, MVT::v4i64,// ->353697
/*353686*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*353688*/              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), immAllZerosV:{ *:[v4i64] }) - Complexity = 10
                        // Dst: (VPANDNQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*353697*/            /*SwitchType*/ 11, MVT::v4i32,// ->353710
/*353699*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*353701*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZ128rrkz), 0,
                            MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86andnp:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2), immAllZerosV:{ *:[v4i32] }) - Complexity = 10
                        // Dst: (VPANDNDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*353710*/            0, // EndSwitchType
/*353711*/          /*SwitchOpcode*/ 44, TARGET_VAL(X86ISD::VSHL),// ->353758
/*353714*/            OPC_RecordChild0, // #1 = $src1
/*353715*/            OPC_RecordChild1, // #2 = $src2
/*353716*/            OPC_Scope, 19, /*->353737*/ // 2 children in Scope
/*353718*/              OPC_CheckChild1Type, MVT::v4i32,
/*353720*/              OPC_MoveParent,
/*353721*/              OPC_MoveChild2,
/*353722*/              OPC_CheckImmAllZerosV,
/*353723*/              OPC_MoveParent,
/*353724*/              OPC_CheckType, MVT::v4i32,
/*353726*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*353728*/              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), immAllZerosV:{ *:[v4i32] }) - Complexity = 10
                        // Dst: (VPSLLDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*353737*/            /*Scope*/ 19, /*->353757*/
/*353738*/              OPC_CheckChild1Type, MVT::v2i64,
/*353740*/              OPC_MoveParent,
/*353741*/              OPC_MoveChild2,
/*353742*/              OPC_CheckImmAllZerosV,
/*353743*/              OPC_MoveParent,
/*353744*/              OPC_CheckType, MVT::v4i64,
/*353746*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*353748*/              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), immAllZerosV:{ *:[v4i64] }) - Complexity = 10
                        // Dst: (VPSLLQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*353757*/            0, /*End of Scope*/
/*353758*/          /*SwitchOpcode*/ 44, TARGET_VAL(X86ISD::VSRA),// ->353805
/*353761*/            OPC_RecordChild0, // #1 = $src1
/*353762*/            OPC_RecordChild1, // #2 = $src2
/*353763*/            OPC_Scope, 19, /*->353784*/ // 2 children in Scope
/*353765*/              OPC_CheckChild1Type, MVT::v4i32,
/*353767*/              OPC_MoveParent,
/*353768*/              OPC_MoveChild2,
/*353769*/              OPC_CheckImmAllZerosV,
/*353770*/              OPC_MoveParent,
/*353771*/              OPC_CheckType, MVT::v4i32,
/*353773*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*353775*/              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), immAllZerosV:{ *:[v4i32] }) - Complexity = 10
                        // Dst: (VPSRADZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*353784*/            /*Scope*/ 19, /*->353804*/
/*353785*/              OPC_CheckChild1Type, MVT::v2i64,
/*353787*/              OPC_MoveParent,
/*353788*/              OPC_MoveChild2,
/*353789*/              OPC_CheckImmAllZerosV,
/*353790*/              OPC_MoveParent,
/*353791*/              OPC_CheckType, MVT::v4i64,
/*353793*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*353795*/              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), immAllZerosV:{ *:[v4i64] }) - Complexity = 10
                        // Dst: (VPSRAQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*353804*/            0, /*End of Scope*/
/*353805*/          /*SwitchOpcode*/ 44, TARGET_VAL(X86ISD::VSRL),// ->353852
/*353808*/            OPC_RecordChild0, // #1 = $src1
/*353809*/            OPC_RecordChild1, // #2 = $src2
/*353810*/            OPC_Scope, 19, /*->353831*/ // 2 children in Scope
/*353812*/              OPC_CheckChild1Type, MVT::v4i32,
/*353814*/              OPC_MoveParent,
/*353815*/              OPC_MoveChild2,
/*353816*/              OPC_CheckImmAllZerosV,
/*353817*/              OPC_MoveParent,
/*353818*/              OPC_CheckType, MVT::v4i32,
/*353820*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*353822*/              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), immAllZerosV:{ *:[v4i32] }) - Complexity = 10
                        // Dst: (VPSRLDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*353831*/            /*Scope*/ 19, /*->353851*/
/*353832*/              OPC_CheckChild1Type, MVT::v2i64,
/*353834*/              OPC_MoveParent,
/*353835*/              OPC_MoveChild2,
/*353836*/              OPC_CheckImmAllZerosV,
/*353837*/              OPC_MoveParent,
/*353838*/              OPC_CheckType, MVT::v4i64,
/*353840*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*353842*/              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), immAllZerosV:{ *:[v4i64] }) - Complexity = 10
                        // Dst: (VPSRLQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*353851*/            0, /*End of Scope*/
/*353852*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VSHLV),// ->353889
/*353855*/            OPC_RecordChild0, // #1 = $src1
/*353856*/            OPC_RecordChild1, // #2 = $src2
/*353857*/            OPC_MoveParent,
/*353858*/            OPC_MoveChild2,
/*353859*/            OPC_CheckImmAllZerosV,
/*353860*/            OPC_MoveParent,
/*353861*/            OPC_SwitchType /*2 cases */, 11, MVT::v4i32,// ->353875
/*353864*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*353866*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVDZ128rrkz), 0,
                            MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vshlv:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2), immAllZerosV:{ *:[v4i32] }) - Complexity = 10
                        // Dst: (VPSLLVDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*353875*/            /*SwitchType*/ 11, MVT::v4i64,// ->353888
/*353877*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*353879*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVQZ256rrkz), 0,
                            MVT::v4i64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vshlv:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2), immAllZerosV:{ *:[v4i64] }) - Complexity = 10
                        // Dst: (VPSLLVQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*353888*/            0, // EndSwitchType
/*353889*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VSRAV),// ->353926
/*353892*/            OPC_RecordChild0, // #1 = $src1
/*353893*/            OPC_RecordChild1, // #2 = $src2
/*353894*/            OPC_MoveParent,
/*353895*/            OPC_MoveChild2,
/*353896*/            OPC_CheckImmAllZerosV,
/*353897*/            OPC_MoveParent,
/*353898*/            OPC_SwitchType /*2 cases */, 11, MVT::v4i32,// ->353912
/*353901*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*353903*/              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), immAllZerosV:{ *:[v4i32] }) - Complexity = 10
                        // Dst: (VPSRAVDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*353912*/            /*SwitchType*/ 11, MVT::v4i64,// ->353925
/*353914*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*353916*/              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), immAllZerosV:{ *:[v4i64] }) - Complexity = 10
                        // Dst: (VPSRAVQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*353925*/            0, // EndSwitchType
/*353926*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VSRLV),// ->353963
/*353929*/            OPC_RecordChild0, // #1 = $src1
/*353930*/            OPC_RecordChild1, // #2 = $src2
/*353931*/            OPC_MoveParent,
/*353932*/            OPC_MoveChild2,
/*353933*/            OPC_CheckImmAllZerosV,
/*353934*/            OPC_MoveParent,
/*353935*/            OPC_SwitchType /*2 cases */, 11, MVT::v4i32,// ->353949
/*353938*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*353940*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVDZ128rrkz), 0,
                            MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrlv:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2), immAllZerosV:{ *:[v4i32] }) - Complexity = 10
                        // Dst: (VPSRLVDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*353949*/            /*SwitchType*/ 11, MVT::v4i64,// ->353962
/*353951*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*353953*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVQZ256rrkz), 0,
                            MVT::v4i64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrlv:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2), immAllZerosV:{ *:[v4i64] }) - Complexity = 10
                        // Dst: (VPSRLVQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*353962*/            0, // EndSwitchType
/*353963*/          /*SwitchOpcode*/ 44, TARGET_VAL(ISD::ROTR),// ->354010
/*353966*/            OPC_RecordChild0, // #1 = $src1
/*353967*/            OPC_RecordChild1, // #2 = $src2
/*353968*/            OPC_Scope, 19, /*->353989*/ // 2 children in Scope
/*353970*/              OPC_CheckChild1Type, MVT::v4i32,
/*353972*/              OPC_MoveParent,
/*353973*/              OPC_MoveChild2,
/*353974*/              OPC_CheckImmAllZerosV,
/*353975*/              OPC_MoveParent,
/*353976*/              OPC_CheckType, MVT::v4i32,
/*353978*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*353980*/              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), immAllZerosV:{ *:[v4i32] }) - Complexity = 10
                        // Dst: (VPRORVDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*353989*/            /*Scope*/ 19, /*->354009*/
/*353990*/              OPC_CheckChild1Type, MVT::v4i64,
/*353992*/              OPC_MoveParent,
/*353993*/              OPC_MoveChild2,
/*353994*/              OPC_CheckImmAllZerosV,
/*353995*/              OPC_MoveParent,
/*353996*/              OPC_CheckType, MVT::v4i64,
/*353998*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*354000*/              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), immAllZerosV:{ *:[v4i64] }) - Complexity = 10
                        // Dst: (VPRORVQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*354009*/            0, /*End of Scope*/
/*354010*/          /*SwitchOpcode*/ 44, TARGET_VAL(ISD::ROTL),// ->354057
/*354013*/            OPC_RecordChild0, // #1 = $src1
/*354014*/            OPC_RecordChild1, // #2 = $src2
/*354015*/            OPC_Scope, 19, /*->354036*/ // 2 children in Scope
/*354017*/              OPC_CheckChild1Type, MVT::v4i32,
/*354019*/              OPC_MoveParent,
/*354020*/              OPC_MoveChild2,
/*354021*/              OPC_CheckImmAllZerosV,
/*354022*/              OPC_MoveParent,
/*354023*/              OPC_CheckType, MVT::v4i32,
/*354025*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*354027*/              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), immAllZerosV:{ *:[v4i32] }) - Complexity = 10
                        // Dst: (VPROLVDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*354036*/            /*Scope*/ 19, /*->354056*/
/*354037*/              OPC_CheckChild1Type, MVT::v4i64,
/*354039*/              OPC_MoveParent,
/*354040*/              OPC_MoveChild2,
/*354041*/              OPC_CheckImmAllZerosV,
/*354042*/              OPC_MoveParent,
/*354043*/              OPC_CheckType, MVT::v4i64,
/*354045*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*354047*/              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), immAllZerosV:{ *:[v4i64] }) - Complexity = 10
                        // Dst: (VPROLVQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*354056*/            0, /*End of Scope*/
/*354057*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::VPERMV),// ->354079
/*354060*/            OPC_RecordChild0, // #1 = $src1
/*354061*/            OPC_RecordChild1, // #2 = $src2
/*354062*/            OPC_MoveParent,
/*354063*/            OPC_MoveChild2,
/*354064*/            OPC_CheckImmAllZerosV,
/*354065*/            OPC_MoveParent,
/*354066*/            OPC_CheckType, MVT::v4i64,
/*354068*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*354070*/            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), immAllZerosV:{ *:[v4i64] }) - Complexity = 10
                      // Dst: (VPERMQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*354079*/          /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::VPMADD52L),// ->354103
/*354082*/            OPC_RecordChild0, // #1 = $src2
/*354083*/            OPC_RecordChild1, // #2 = $src3
/*354084*/            OPC_RecordChild2, // #3 = $src1
/*354085*/            OPC_MoveParent,
/*354086*/            OPC_MoveChild2,
/*354087*/            OPC_CheckImmAllZerosV,
/*354088*/            OPC_MoveParent,
/*354089*/            OPC_CheckType, MVT::v4i64,
/*354091*/            OPC_CheckPatternPredicate, 184, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*354093*/            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), immAllZerosV:{ *:[v4i64] }) - Complexity = 10
                      // Dst: (VPMADD52LUQZ256rkz:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src3)
/*354103*/          /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::VPMADD52H),// ->354127
/*354106*/            OPC_RecordChild0, // #1 = $src2
/*354107*/            OPC_RecordChild1, // #2 = $src3
/*354108*/            OPC_RecordChild2, // #3 = $src1
/*354109*/            OPC_MoveParent,
/*354110*/            OPC_MoveChild2,
/*354111*/            OPC_CheckImmAllZerosV,
/*354112*/            OPC_MoveParent,
/*354113*/            OPC_CheckType, MVT::v4i64,
/*354115*/            OPC_CheckPatternPredicate, 184, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*354117*/            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), immAllZerosV:{ *:[v4i64] }) - Complexity = 10
                      // Dst: (VPMADD52HUQZ256rkz:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src3)
/*354127*/          /*SwitchOpcode*/ 75, TARGET_VAL(X86ISD::STRICT_CVTTP2SI),// ->354205
/*354130*/            OPC_RecordNode, // #1 = 'X86strict_cvttp2si' chained node
/*354131*/            OPC_CheckFoldableChainNode,
/*354132*/            OPC_RecordChild1, // #2 = $src
/*354133*/            OPC_Scope, 34, /*->354169*/ // 2 children in Scope
/*354135*/              OPC_CheckChild1Type, MVT::v4f32,
/*354137*/              OPC_MoveParent,
/*354138*/              OPC_MoveChild2,
/*354139*/              OPC_CheckImmAllZerosV,
/*354140*/              OPC_MoveParent,
/*354141*/              OPC_SwitchType /*2 cases */, 11, MVT::v4i32,// ->354155
/*354144*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*354146*/                OPC_EmitMergeInputChains1_1,
/*354147*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZ128rrkz), 0|OPFL_Chain,
                              MVT::v4i32, 2/*#Ops*/, 0, 2, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_cvttp2si:{ *:[v4i32] } VR128X:{ *:[v4f32] }:$src), immAllZerosV:{ *:[v4i32] }) - Complexity = 10
                          // Dst: (VCVTTPS2DQZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*354155*/              /*SwitchType*/ 11, MVT::v4i64,// ->354168
/*354157*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*354159*/                OPC_EmitMergeInputChains1_1,
/*354160*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZ256rrkz), 0|OPFL_Chain,
                              MVT::v4i64, 2/*#Ops*/, 0, 2, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_cvttp2si:{ *:[v4i64] } VR128X:{ *:[v4f32] }:$src), immAllZerosV:{ *:[v4i64] }) - Complexity = 10
                          // Dst: (VCVTTPS2QQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*354168*/              0, // EndSwitchType
/*354169*/            /*Scope*/ 34, /*->354204*/
/*354170*/              OPC_CheckChild1Type, MVT::v4f64,
/*354172*/              OPC_MoveParent,
/*354173*/              OPC_MoveChild2,
/*354174*/              OPC_CheckImmAllZerosV,
/*354175*/              OPC_MoveParent,
/*354176*/              OPC_SwitchType /*2 cases */, 11, MVT::v4i32,// ->354190
/*354179*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*354181*/                OPC_EmitMergeInputChains1_1,
/*354182*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZ256rrkz), 0|OPFL_Chain,
                              MVT::v4i32, 2/*#Ops*/, 0, 2, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_cvttp2si:{ *:[v4i32] } VR256X:{ *:[v4f64] }:$src), immAllZerosV:{ *:[v4i32] }) - Complexity = 10
                          // Dst: (VCVTTPD2DQZ256rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)
/*354190*/              /*SwitchType*/ 11, MVT::v4i64,// ->354203
/*354192*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*354194*/                OPC_EmitMergeInputChains1_1,
/*354195*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZ256rrkz), 0|OPFL_Chain,
                              MVT::v4i64, 2/*#Ops*/, 0, 2, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_cvttp2si:{ *:[v4i64] } VR256X:{ *:[v4f64] }:$src), immAllZerosV:{ *:[v4i64] }) - Complexity = 10
                          // Dst: (VCVTTPD2QQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)
/*354203*/              0, // EndSwitchType
/*354204*/            0, /*End of Scope*/
/*354205*/          /*SwitchOpcode*/ 69, TARGET_VAL(X86ISD::CVTTP2SI),// ->354277
/*354208*/            OPC_RecordChild0, // #1 = $src
/*354209*/            OPC_Scope, 32, /*->354243*/ // 2 children in Scope
/*354211*/              OPC_CheckChild0Type, MVT::v4f32,
/*354213*/              OPC_MoveParent,
/*354214*/              OPC_MoveChild2,
/*354215*/              OPC_CheckImmAllZerosV,
/*354216*/              OPC_MoveParent,
/*354217*/              OPC_SwitchType /*2 cases */, 10, MVT::v4i32,// ->354230
/*354220*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*354222*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZ128rrkz), 0,
                              MVT::v4i32, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2si:{ *:[v4i32] } VR128X:{ *:[v4f32] }:$src), immAllZerosV:{ *:[v4i32] }) - Complexity = 10
                          // Dst: (VCVTTPS2DQZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*354230*/              /*SwitchType*/ 10, MVT::v4i64,// ->354242
/*354232*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*354234*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZ256rrkz), 0,
                              MVT::v4i64, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2si:{ *:[v4i64] } VR128X:{ *:[v4f32] }:$src), immAllZerosV:{ *:[v4i64] }) - Complexity = 10
                          // Dst: (VCVTTPS2QQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*354242*/              0, // EndSwitchType
/*354243*/            /*Scope*/ 32, /*->354276*/
/*354244*/              OPC_CheckChild0Type, MVT::v4f64,
/*354246*/              OPC_MoveParent,
/*354247*/              OPC_MoveChild2,
/*354248*/              OPC_CheckImmAllZerosV,
/*354249*/              OPC_MoveParent,
/*354250*/              OPC_SwitchType /*2 cases */, 10, MVT::v4i32,// ->354263
/*354253*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*354255*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZ256rrkz), 0,
                              MVT::v4i32, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2si:{ *:[v4i32] } VR256X:{ *:[v4f64] }:$src), immAllZerosV:{ *:[v4i32] }) - Complexity = 10
                          // Dst: (VCVTTPD2DQZ256rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)
/*354263*/              /*SwitchType*/ 10, MVT::v4i64,// ->354275
/*354265*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*354267*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZ256rrkz), 0,
                              MVT::v4i64, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2si:{ *:[v4i64] } VR256X:{ *:[v4f64] }:$src), immAllZerosV:{ *:[v4i64] }) - Complexity = 10
                          // Dst: (VCVTTPD2QQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)
/*354275*/              0, // EndSwitchType
/*354276*/            0, /*End of Scope*/
/*354277*/          /*SwitchOpcode*/ 75, TARGET_VAL(X86ISD::STRICT_CVTTP2UI),// ->354355
/*354280*/            OPC_RecordNode, // #1 = 'X86strict_cvttp2ui' chained node
/*354281*/            OPC_CheckFoldableChainNode,
/*354282*/            OPC_RecordChild1, // #2 = $src
/*354283*/            OPC_Scope, 34, /*->354319*/ // 2 children in Scope
/*354285*/              OPC_CheckChild1Type, MVT::v4f32,
/*354287*/              OPC_MoveParent,
/*354288*/              OPC_MoveChild2,
/*354289*/              OPC_CheckImmAllZerosV,
/*354290*/              OPC_MoveParent,
/*354291*/              OPC_SwitchType /*2 cases */, 11, MVT::v4i32,// ->354305
/*354294*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*354296*/                OPC_EmitMergeInputChains1_1,
/*354297*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZ128rrkz), 0|OPFL_Chain,
                              MVT::v4i32, 2/*#Ops*/, 0, 2, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_cvttp2ui:{ *:[v4i32] } VR128X:{ *:[v4f32] }:$src), immAllZerosV:{ *:[v4i32] }) - Complexity = 10
                          // Dst: (VCVTTPS2UDQZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*354305*/              /*SwitchType*/ 11, MVT::v4i64,// ->354318
/*354307*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*354309*/                OPC_EmitMergeInputChains1_1,
/*354310*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZ256rrkz), 0|OPFL_Chain,
                              MVT::v4i64, 2/*#Ops*/, 0, 2, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_cvttp2ui:{ *:[v4i64] } VR128X:{ *:[v4f32] }:$src), immAllZerosV:{ *:[v4i64] }) - Complexity = 10
                          // Dst: (VCVTTPS2UQQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*354318*/              0, // EndSwitchType
/*354319*/            /*Scope*/ 34, /*->354354*/
/*354320*/              OPC_CheckChild1Type, MVT::v4f64,
/*354322*/              OPC_MoveParent,
/*354323*/              OPC_MoveChild2,
/*354324*/              OPC_CheckImmAllZerosV,
/*354325*/              OPC_MoveParent,
/*354326*/              OPC_SwitchType /*2 cases */, 11, MVT::v4i32,// ->354340
/*354329*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*354331*/                OPC_EmitMergeInputChains1_1,
/*354332*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZ256rrkz), 0|OPFL_Chain,
                              MVT::v4i32, 2/*#Ops*/, 0, 2, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_cvttp2ui:{ *:[v4i32] } VR256X:{ *:[v4f64] }:$src), immAllZerosV:{ *:[v4i32] }) - Complexity = 10
                          // Dst: (VCVTTPD2UDQZ256rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)
/*354340*/              /*SwitchType*/ 11, MVT::v4i64,// ->354353
/*354342*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*354344*/                OPC_EmitMergeInputChains1_1,
/*354345*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZ256rrkz), 0|OPFL_Chain,
                              MVT::v4i64, 2/*#Ops*/, 0, 2, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_cvttp2ui:{ *:[v4i64] } VR256X:{ *:[v4f64] }:$src), immAllZerosV:{ *:[v4i64] }) - Complexity = 10
                          // Dst: (VCVTTPD2UQQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)
/*354353*/              0, // EndSwitchType
/*354354*/            0, /*End of Scope*/
/*354355*/          /*SwitchOpcode*/ 69, TARGET_VAL(X86ISD::CVTTP2UI),// ->354427
/*354358*/            OPC_RecordChild0, // #1 = $src
/*354359*/            OPC_Scope, 32, /*->354393*/ // 2 children in Scope
/*354361*/              OPC_CheckChild0Type, MVT::v4f32,
/*354363*/              OPC_MoveParent,
/*354364*/              OPC_MoveChild2,
/*354365*/              OPC_CheckImmAllZerosV,
/*354366*/              OPC_MoveParent,
/*354367*/              OPC_SwitchType /*2 cases */, 10, MVT::v4i32,// ->354380
/*354370*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*354372*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZ128rrkz), 0,
                              MVT::v4i32, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2ui:{ *:[v4i32] } VR128X:{ *:[v4f32] }:$src), immAllZerosV:{ *:[v4i32] }) - Complexity = 10
                          // Dst: (VCVTTPS2UDQZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*354380*/              /*SwitchType*/ 10, MVT::v4i64,// ->354392
/*354382*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*354384*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZ256rrkz), 0,
                              MVT::v4i64, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2ui:{ *:[v4i64] } VR128X:{ *:[v4f32] }:$src), immAllZerosV:{ *:[v4i64] }) - Complexity = 10
                          // Dst: (VCVTTPS2UQQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*354392*/              0, // EndSwitchType
/*354393*/            /*Scope*/ 32, /*->354426*/
/*354394*/              OPC_CheckChild0Type, MVT::v4f64,
/*354396*/              OPC_MoveParent,
/*354397*/              OPC_MoveChild2,
/*354398*/              OPC_CheckImmAllZerosV,
/*354399*/              OPC_MoveParent,
/*354400*/              OPC_SwitchType /*2 cases */, 10, MVT::v4i32,// ->354413
/*354403*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*354405*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZ256rrkz), 0,
                              MVT::v4i32, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2ui:{ *:[v4i32] } VR256X:{ *:[v4f64] }:$src), immAllZerosV:{ *:[v4i32] }) - Complexity = 10
                          // Dst: (VCVTTPD2UDQZ256rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)
/*354413*/              /*SwitchType*/ 10, MVT::v4i64,// ->354425
/*354415*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*354417*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZ256rrkz), 0,
                              MVT::v4i64, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86cvttp2ui:{ *:[v4i64] } VR256X:{ *:[v4f64] }:$src), immAllZerosV:{ *:[v4i64] }) - Complexity = 10
                          // Dst: (VCVTTPD2UQQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)
/*354425*/              0, // EndSwitchType
/*354426*/            0, /*End of Scope*/
/*354427*/          /*SwitchOpcode*/ 69, TARGET_VAL(X86ISD::CVTP2SI),// ->354499
/*354430*/            OPC_RecordChild0, // #1 = $src
/*354431*/            OPC_Scope, 32, /*->354465*/ // 2 children in Scope
/*354433*/              OPC_CheckChild0Type, MVT::v4f32,
/*354435*/              OPC_MoveParent,
/*354436*/              OPC_MoveChild2,
/*354437*/              OPC_CheckImmAllZerosV,
/*354438*/              OPC_MoveParent,
/*354439*/              OPC_SwitchType /*2 cases */, 10, MVT::v4i32,// ->354452
/*354442*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*354444*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2DQZ128rrkz), 0,
                              MVT::v4i32, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2Int:{ *:[v4i32] } VR128X:{ *:[v4f32] }:$src), immAllZerosV:{ *:[v4i32] }) - Complexity = 10
                          // Dst: (VCVTPS2DQZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*354452*/              /*SwitchType*/ 10, MVT::v4i64,// ->354464
/*354454*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*354456*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2QQZ256rrkz), 0,
                              MVT::v4i64, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2Int:{ *:[v4i64] } VR128X:{ *:[v4f32] }:$src), immAllZerosV:{ *:[v4i64] }) - Complexity = 10
                          // Dst: (VCVTPS2QQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*354464*/              0, // EndSwitchType
/*354465*/            /*Scope*/ 32, /*->354498*/
/*354466*/              OPC_CheckChild0Type, MVT::v4f64,
/*354468*/              OPC_MoveParent,
/*354469*/              OPC_MoveChild2,
/*354470*/              OPC_CheckImmAllZerosV,
/*354471*/              OPC_MoveParent,
/*354472*/              OPC_SwitchType /*2 cases */, 10, MVT::v4i32,// ->354485
/*354475*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*354477*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2DQZ256rrkz), 0,
                              MVT::v4i32, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2Int:{ *:[v4i32] } VR256X:{ *:[v4f64] }:$src), immAllZerosV:{ *:[v4i32] }) - Complexity = 10
                          // Dst: (VCVTPD2DQZ256rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)
/*354485*/              /*SwitchType*/ 10, MVT::v4i64,// ->354497
/*354487*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*354489*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2QQZ256rrkz), 0,
                              MVT::v4i64, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2Int:{ *:[v4i64] } VR256X:{ *:[v4f64] }:$src), immAllZerosV:{ *:[v4i64] }) - Complexity = 10
                          // Dst: (VCVTPD2QQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)
/*354497*/              0, // EndSwitchType
/*354498*/            0, /*End of Scope*/
/*354499*/          /*SwitchOpcode*/ 69, TARGET_VAL(X86ISD::CVTP2UI),// ->354571
/*354502*/            OPC_RecordChild0, // #1 = $src
/*354503*/            OPC_Scope, 32, /*->354537*/ // 2 children in Scope
/*354505*/              OPC_CheckChild0Type, MVT::v4f32,
/*354507*/              OPC_MoveParent,
/*354508*/              OPC_MoveChild2,
/*354509*/              OPC_CheckImmAllZerosV,
/*354510*/              OPC_MoveParent,
/*354511*/              OPC_SwitchType /*2 cases */, 10, MVT::v4i32,// ->354524
/*354514*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*354516*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UDQZ128rrkz), 0,
                              MVT::v4i32, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2UInt:{ *:[v4i32] } VR128X:{ *:[v4f32] }:$src), immAllZerosV:{ *:[v4i32] }) - Complexity = 10
                          // Dst: (VCVTPS2UDQZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*354524*/              /*SwitchType*/ 10, MVT::v4i64,// ->354536
/*354526*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*354528*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UQQZ256rrkz), 0,
                              MVT::v4i64, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2UInt:{ *:[v4i64] } VR128X:{ *:[v4f32] }:$src), immAllZerosV:{ *:[v4i64] }) - Complexity = 10
                          // Dst: (VCVTPS2UQQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*354536*/              0, // EndSwitchType
/*354537*/            /*Scope*/ 32, /*->354570*/
/*354538*/              OPC_CheckChild0Type, MVT::v4f64,
/*354540*/              OPC_MoveParent,
/*354541*/              OPC_MoveChild2,
/*354542*/              OPC_CheckImmAllZerosV,
/*354543*/              OPC_MoveParent,
/*354544*/              OPC_SwitchType /*2 cases */, 10, MVT::v4i32,// ->354557
/*354547*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*354549*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UDQZ256rrkz), 0,
                              MVT::v4i32, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2UInt:{ *:[v4i32] } VR256X:{ *:[v4f64] }:$src), immAllZerosV:{ *:[v4i32] }) - Complexity = 10
                          // Dst: (VCVTPD2UDQZ256rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)
/*354557*/              /*SwitchType*/ 10, MVT::v4i64,// ->354569
/*354559*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*354561*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UQQZ256rrkz), 0,
                              MVT::v4i64, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtp2UInt:{ *:[v4i64] } VR256X:{ *:[v4f64] }:$src), immAllZerosV:{ *:[v4i64] }) - Complexity = 10
                          // Dst: (VCVTPD2UQQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)
/*354569*/              0, // EndSwitchType
/*354570*/            0, /*End of Scope*/
/*354571*/          /*SwitchOpcode*/ 17, TARGET_VAL(ISD::TRUNCATE),// ->354591
/*354574*/            OPC_RecordChild0, // #1 = $src
/*354575*/            OPC_MoveParent,
/*354576*/            OPC_MoveChild2,
/*354577*/            OPC_CheckImmAllZerosV,
/*354578*/            OPC_MoveParent,
/*354579*/            OPC_CheckType, MVT::v4i32,
/*354581*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*354583*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVQDZ256rrkz), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (trunc:{ *:[v4i32] } VR256X:{ *:[v4i64] }:$src), immAllZerosV:{ *:[v4i32] }) - Complexity = 10
                      // Dst: (VPMOVQDZ256rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/*354591*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::VTRUNCS),// ->354613
/*354594*/            OPC_RecordChild0, // #1 = $src
/*354595*/            OPC_CheckChild0Type, MVT::v4i64,
/*354597*/            OPC_MoveParent,
/*354598*/            OPC_MoveChild2,
/*354599*/            OPC_CheckImmAllZerosV,
/*354600*/            OPC_MoveParent,
/*354601*/            OPC_CheckType, MVT::v4i32,
/*354603*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*354605*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSQDZ256rrkz), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vtruncs:{ *:[v4i32] } VR256X:{ *:[v4i64] }:$src), immAllZerosV:{ *:[v4i32] }) - Complexity = 10
                      // Dst: (VPMOVSQDZ256rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/*354613*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::VTRUNCUS),// ->354635
/*354616*/            OPC_RecordChild0, // #1 = $src
/*354617*/            OPC_CheckChild0Type, MVT::v4i64,
/*354619*/            OPC_MoveParent,
/*354620*/            OPC_MoveChild2,
/*354621*/            OPC_CheckImmAllZerosV,
/*354622*/            OPC_MoveParent,
/*354623*/            OPC_CheckType, MVT::v4i32,
/*354625*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*354627*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSQDZ256rrkz), 0,
                          MVT::v4i32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vtruncus:{ *:[v4i32] } VR256X:{ *:[v4i64] }:$src), immAllZerosV:{ *:[v4i32] }) - Complexity = 10
                      // Dst: (VPMOVUSQDZ256rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/*354635*/          /*SwitchOpcode*/ 69, TARGET_VAL(ISD::ZERO_EXTEND_VECTOR_INREG),// ->354707
/*354638*/            OPC_RecordChild0, // #1 = $src
/*354639*/            OPC_Scope, 32, /*->354673*/ // 2 children in Scope
/*354641*/              OPC_CheckChild0Type, MVT::v16i8,
/*354643*/              OPC_MoveParent,
/*354644*/              OPC_MoveChild2,
/*354645*/              OPC_CheckImmAllZerosV,
/*354646*/              OPC_MoveParent,
/*354647*/              OPC_SwitchType /*2 cases */, 10, MVT::v4i32,// ->354660
/*354650*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*354652*/                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), immAllZerosV:{ *:[v4i32] }) - Complexity = 10
                          // Dst: (VPMOVZXBDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*354660*/              /*SwitchType*/ 10, MVT::v4i64,// ->354672
/*354662*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*354664*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBQZ256rrkz), 0,
                              MVT::v4i64, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (zext_invec:{ *:[v4i64] } VR128X:{ *:[v16i8] }:$src), immAllZerosV:{ *:[v4i64] }) - Complexity = 10
                          // Dst: (VPMOVZXBQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*354672*/              0, // EndSwitchType
/*354673*/            /*Scope*/ 32, /*->354706*/
/*354674*/              OPC_CheckChild0Type, MVT::v8i16,
/*354676*/              OPC_MoveParent,
/*354677*/              OPC_MoveChild2,
/*354678*/              OPC_CheckImmAllZerosV,
/*354679*/              OPC_MoveParent,
/*354680*/              OPC_SwitchType /*2 cases */, 10, MVT::v4i32,// ->354693
/*354683*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*354685*/                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), immAllZerosV:{ *:[v4i32] }) - Complexity = 10
                          // Dst: (VPMOVZXWDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/*354693*/              /*SwitchType*/ 10, MVT::v4i64,// ->354705
/*354695*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*354697*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWQZ256rrkz), 0,
                              MVT::v4i64, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (zext_invec:{ *:[v4i64] } VR128X:{ *:[v8i16] }:$src), immAllZerosV:{ *:[v4i64] }) - Complexity = 10
                          // Dst: (VPMOVZXWQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/*354705*/              0, // EndSwitchType
/*354706*/            0, /*End of Scope*/
/*354707*/          /*SwitchOpcode*/ 19, TARGET_VAL(ISD::ZERO_EXTEND),// ->354729
/*354710*/            OPC_RecordChild0, // #1 = $src
/*354711*/            OPC_CheckChild0Type, MVT::v4i32,
/*354713*/            OPC_MoveParent,
/*354714*/            OPC_MoveChild2,
/*354715*/            OPC_CheckImmAllZerosV,
/*354716*/            OPC_MoveParent,
/*354717*/            OPC_CheckType, MVT::v4i64,
/*354719*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*354721*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXDQZ256rrkz), 0,
                          MVT::v4i64, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (zext:{ *:[v4i64] } VR128X:{ *:[v4i32] }:$src), immAllZerosV:{ *:[v4i64] }) - Complexity = 10
                      // Dst: (VPMOVZXDQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*354729*/          /*SwitchOpcode*/ 69, TARGET_VAL(ISD::SIGN_EXTEND_VECTOR_INREG),// ->354801
/*354732*/            OPC_RecordChild0, // #1 = $src
/*354733*/            OPC_Scope, 32, /*->354767*/ // 2 children in Scope
/*354735*/              OPC_CheckChild0Type, MVT::v16i8,
/*354737*/              OPC_MoveParent,
/*354738*/              OPC_MoveChild2,
/*354739*/              OPC_CheckImmAllZerosV,
/*354740*/              OPC_MoveParent,
/*354741*/              OPC_SwitchType /*2 cases */, 10, MVT::v4i32,// ->354754
/*354744*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*354746*/                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), immAllZerosV:{ *:[v4i32] }) - Complexity = 10
                          // Dst: (VPMOVSXBDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*354754*/              /*SwitchType*/ 10, MVT::v4i64,// ->354766
/*354756*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*354758*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBQZ256rrkz), 0,
                              MVT::v4i64, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (sext_invec:{ *:[v4i64] } VR128X:{ *:[v16i8] }:$src), immAllZerosV:{ *:[v4i64] }) - Complexity = 10
                          // Dst: (VPMOVSXBQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*354766*/              0, // EndSwitchType
/*354767*/            /*Scope*/ 32, /*->354800*/
/*354768*/              OPC_CheckChild0Type, MVT::v8i16,
/*354770*/              OPC_MoveParent,
/*354771*/              OPC_MoveChild2,
/*354772*/              OPC_CheckImmAllZerosV,
/*354773*/              OPC_MoveParent,
/*354774*/              OPC_SwitchType /*2 cases */, 10, MVT::v4i32,// ->354787
/*354777*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*354779*/                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), immAllZerosV:{ *:[v4i32] }) - Complexity = 10
                          // Dst: (VPMOVSXWDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/*354787*/              /*SwitchType*/ 10, MVT::v4i64,// ->354799
/*354789*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*354791*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWQZ256rrkz), 0,
                              MVT::v4i64, 2/*#Ops*/, 0, 1, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (sext_invec:{ *:[v4i64] } VR128X:{ *:[v8i16] }:$src), immAllZerosV:{ *:[v4i64] }) - Complexity = 10
                          // Dst: (VPMOVSXWQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/*354799*/              0, // EndSwitchType
/*354800*/            0, /*End of Scope*/
/*354801*/          /*SwitchOpcode*/ 19, TARGET_VAL(ISD::SIGN_EXTEND),// ->354823
/*354804*/            OPC_RecordChild0, // #1 = $src
/*354805*/            OPC_CheckChild0Type, MVT::v4i32,
/*354807*/            OPC_MoveParent,
/*354808*/            OPC_MoveChild2,
/*354809*/            OPC_CheckImmAllZerosV,
/*354810*/            OPC_MoveParent,
/*354811*/            OPC_CheckType, MVT::v4i64,
/*354813*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*354815*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXDQZ256rrkz), 0,
                          MVT::v4i64, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (sext:{ *:[v4i64] } VR128X:{ *:[v4i32] }:$src), immAllZerosV:{ *:[v4i64] }) - Complexity = 10
                      // Dst: (VPMOVSXDQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*354823*/          /*SwitchOpcode*/ 31, TARGET_VAL(ISD::ABS),// ->354857
/*354826*/            OPC_RecordChild0, // #1 = $src1
/*354827*/            OPC_MoveParent,
/*354828*/            OPC_MoveChild2,
/*354829*/            OPC_CheckImmAllZerosV,
/*354830*/            OPC_MoveParent,
/*354831*/            OPC_SwitchType /*2 cases */, 10, MVT::v4i64,// ->354844
/*354834*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*354836*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSQZ256rrkz), 0,
                            MVT::v4i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (abs:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1), immAllZerosV:{ *:[v4i64] }) - Complexity = 10
                        // Dst: (VPABSQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1)
/*354844*/            /*SwitchType*/ 10, MVT::v4i32,// ->354856
/*354846*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*354848*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSDZ128rrkz), 0,
                            MVT::v4i32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (abs:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1), immAllZerosV:{ *:[v4i32] }) - Complexity = 10
                        // Dst: (VPABSDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1)
/*354856*/            0, // EndSwitchType
/*354857*/          /*SwitchOpcode*/ 41, TARGET_VAL(ISD::CTLZ),// ->354901
/*354860*/            OPC_RecordChild0, // #1 = $src1
/*354861*/            OPC_Scope, 18, /*->354881*/ // 2 children in Scope
/*354863*/              OPC_CheckChild0Type, MVT::v4i64,
/*354865*/              OPC_MoveParent,
/*354866*/              OPC_MoveChild2,
/*354867*/              OPC_CheckImmAllZerosV,
/*354868*/              OPC_MoveParent,
/*354869*/              OPC_CheckType, MVT::v4i64,
/*354871*/              OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*354873*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTQZ256rrkz), 0,
                            MVT::v4i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (ctlz:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1), immAllZerosV:{ *:[v4i64] }) - Complexity = 10
                        // Dst: (VPLZCNTQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1)
/*354881*/            /*Scope*/ 18, /*->354900*/
/*354882*/              OPC_CheckChild0Type, MVT::v4i32,
/*354884*/              OPC_MoveParent,
/*354885*/              OPC_MoveChild2,
/*354886*/              OPC_CheckImmAllZerosV,
/*354887*/              OPC_MoveParent,
/*354888*/              OPC_CheckType, MVT::v4i32,
/*354890*/              OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*354892*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTDZ128rrkz), 0,
                            MVT::v4i32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (ctlz:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1), immAllZerosV:{ *:[v4i32] }) - Complexity = 10
                        // Dst: (VPLZCNTDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1)
/*354900*/            0, /*End of Scope*/
/*354901*/          /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::CONFLICT),// ->354935
/*354904*/            OPC_RecordChild0, // #1 = $src1
/*354905*/            OPC_MoveParent,
/*354906*/            OPC_MoveChild2,
/*354907*/            OPC_CheckImmAllZerosV,
/*354908*/            OPC_MoveParent,
/*354909*/            OPC_SwitchType /*2 cases */, 10, MVT::v4i64,// ->354922
/*354912*/              OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*354914*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTQZ256rrkz), 0,
                            MVT::v4i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86Conflict:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1), immAllZerosV:{ *:[v4i64] }) - Complexity = 10
                        // Dst: (VPCONFLICTQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1)
/*354922*/            /*SwitchType*/ 10, MVT::v4i32,// ->354934
/*354924*/              OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*354926*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTDZ128rrkz), 0,
                            MVT::v4i32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86Conflict:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1), immAllZerosV:{ *:[v4i32] }) - Complexity = 10
                        // Dst: (VPCONFLICTDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1)
/*354934*/            0, // EndSwitchType
/*354935*/          /*SwitchOpcode*/ 41, TARGET_VAL(ISD::CTPOP),// ->354979
/*354938*/            OPC_RecordChild0, // #1 = $src1
/*354939*/            OPC_Scope, 18, /*->354959*/ // 2 children in Scope
/*354941*/              OPC_CheckChild0Type, MVT::v4i64,
/*354943*/              OPC_MoveParent,
/*354944*/              OPC_MoveChild2,
/*354945*/              OPC_CheckImmAllZerosV,
/*354946*/              OPC_MoveParent,
/*354947*/              OPC_CheckType, MVT::v4i64,
/*354949*/              OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/*354951*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTQZ256rrkz), 0,
                            MVT::v4i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (ctpop:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1), immAllZerosV:{ *:[v4i64] }) - Complexity = 10
                        // Dst: (VPOPCNTQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1)
/*354959*/            /*Scope*/ 18, /*->354978*/
/*354960*/              OPC_CheckChild0Type, MVT::v4i32,
/*354962*/              OPC_MoveParent,
/*354963*/              OPC_MoveChild2,
/*354964*/              OPC_CheckImmAllZerosV,
/*354965*/              OPC_MoveParent,
/*354966*/              OPC_CheckType, MVT::v4i32,
/*354968*/              OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/*354970*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTDZ128rrkz), 0,
                            MVT::v4i32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (ctpop:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1), immAllZerosV:{ *:[v4i32] }) - Complexity = 10
                        // Dst: (VPOPCNTDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1)
/*354978*/            0, /*End of Scope*/
/*354979*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::UNPCKL),// ->355016
/*354982*/            OPC_RecordChild0, // #1 = $src1
/*354983*/            OPC_RecordChild1, // #2 = $src2
/*354984*/            OPC_MoveParent,
/*354985*/            OPC_MoveChild2,
/*354986*/            OPC_CheckImmAllZerosV,
/*354987*/            OPC_MoveParent,
/*354988*/            OPC_SwitchType /*2 cases */, 11, MVT::v4i32,// ->355002
/*354991*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*354993*/              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), immAllZerosV:{ *:[v4i32] }) - Complexity = 10
                        // Dst: (VPUNPCKLDQZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*355002*/            /*SwitchType*/ 11, MVT::v4i64,// ->355015
/*355004*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*355006*/              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), immAllZerosV:{ *:[v4i64] }) - Complexity = 10
                        // Dst: (VPUNPCKLQDQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*355015*/            0, // EndSwitchType
/*355016*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::UNPCKH),// ->355053
/*355019*/            OPC_RecordChild0, // #1 = $src1
/*355020*/            OPC_RecordChild1, // #2 = $src2
/*355021*/            OPC_MoveParent,
/*355022*/            OPC_MoveChild2,
/*355023*/            OPC_CheckImmAllZerosV,
/*355024*/            OPC_MoveParent,
/*355025*/            OPC_SwitchType /*2 cases */, 11, MVT::v4i32,// ->355039
/*355028*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*355030*/              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), immAllZerosV:{ *:[v4i32] }) - Complexity = 10
                        // Dst: (VPUNPCKHDQZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*355039*/            /*SwitchType*/ 11, MVT::v4i64,// ->355052
/*355041*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*355043*/              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), immAllZerosV:{ *:[v4i64] }) - Complexity = 10
                        // Dst: (VPUNPCKHQDQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*355052*/            0, // EndSwitchType
/*355053*/          /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::VSHLDV),// ->355093
/*355056*/            OPC_RecordChild0, // #1 = $src1
/*355057*/            OPC_RecordChild1, // #2 = $src2
/*355058*/            OPC_RecordChild2, // #3 = $src3
/*355059*/            OPC_MoveParent,
/*355060*/            OPC_MoveChild2,
/*355061*/            OPC_CheckImmAllZerosV,
/*355062*/            OPC_MoveParent,
/*355063*/            OPC_SwitchType /*2 cases */, 12, MVT::v4i32,// ->355078
/*355066*/              OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*355068*/              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), immAllZerosV:{ *:[v4i32] }) - Complexity = 10
                        // Dst: (VPSHLDVDZ128rkz:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3)
/*355078*/            /*SwitchType*/ 12, MVT::v4i64,// ->355092
/*355080*/              OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*355082*/              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), immAllZerosV:{ *:[v4i64] }) - Complexity = 10
                        // Dst: (VPSHLDVQZ256rkz:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src3)
/*355092*/            0, // EndSwitchType
/*355093*/          /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::VSHRDV),// ->355133
/*355096*/            OPC_RecordChild0, // #1 = $src1
/*355097*/            OPC_RecordChild1, // #2 = $src2
/*355098*/            OPC_RecordChild2, // #3 = $src3
/*355099*/            OPC_MoveParent,
/*355100*/            OPC_MoveChild2,
/*355101*/            OPC_CheckImmAllZerosV,
/*355102*/            OPC_MoveParent,
/*355103*/            OPC_SwitchType /*2 cases */, 12, MVT::v4i32,// ->355118
/*355106*/              OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*355108*/              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), immAllZerosV:{ *:[v4i32] }) - Complexity = 10
                        // Dst: (VPSHRDVDZ128rkz:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3)
/*355118*/            /*SwitchType*/ 12, MVT::v4i64,// ->355132
/*355120*/              OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*355122*/              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), immAllZerosV:{ *:[v4i64] }) - Complexity = 10
                        // Dst: (VPSHRDVQZ256rkz:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src3)
/*355132*/            0, // EndSwitchType
/*355133*/          /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::VPDPBUSD),// ->355157
/*355136*/            OPC_RecordChild0, // #1 = $src1
/*355137*/            OPC_RecordChild1, // #2 = $src2
/*355138*/            OPC_RecordChild2, // #3 = $src3
/*355139*/            OPC_MoveParent,
/*355140*/            OPC_MoveChild2,
/*355141*/            OPC_CheckImmAllZerosV,
/*355142*/            OPC_MoveParent,
/*355143*/            OPC_CheckType, MVT::v4i32,
/*355145*/            OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*355147*/            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), immAllZerosV:{ *:[v4i32] }) - Complexity = 10
                      // Dst: (VPDPBUSDZ128rkz:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3)
/*355157*/          /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::VPDPBUSDS),// ->355181
/*355160*/            OPC_RecordChild0, // #1 = $src1
/*355161*/            OPC_RecordChild1, // #2 = $src2
/*355162*/            OPC_RecordChild2, // #3 = $src3
/*355163*/            OPC_MoveParent,
/*355164*/            OPC_MoveChild2,
/*355165*/            OPC_CheckImmAllZerosV,
/*355166*/            OPC_MoveParent,
/*355167*/            OPC_CheckType, MVT::v4i32,
/*355169*/            OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*355171*/            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), immAllZerosV:{ *:[v4i32] }) - Complexity = 10
                      // Dst: (VPDPBUSDSZ128rkz:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3)
/*355181*/          /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::VPDPWSSD),// ->355205
/*355184*/            OPC_RecordChild0, // #1 = $src1
/*355185*/            OPC_RecordChild1, // #2 = $src2
/*355186*/            OPC_RecordChild2, // #3 = $src3
/*355187*/            OPC_MoveParent,
/*355188*/            OPC_MoveChild2,
/*355189*/            OPC_CheckImmAllZerosV,
/*355190*/            OPC_MoveParent,
/*355191*/            OPC_CheckType, MVT::v4i32,
/*355193*/            OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*355195*/            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), immAllZerosV:{ *:[v4i32] }) - Complexity = 10
                      // Dst: (VPDPWSSDZ128rkz:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3)
/*355205*/          /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::VPDPWSSDS),// ->355229
/*355208*/            OPC_RecordChild0, // #1 = $src1
/*355209*/            OPC_RecordChild1, // #2 = $src2
/*355210*/            OPC_RecordChild2, // #3 = $src3
/*355211*/            OPC_MoveParent,
/*355212*/            OPC_MoveChild2,
/*355213*/            OPC_CheckImmAllZerosV,
/*355214*/            OPC_MoveParent,
/*355215*/            OPC_CheckType, MVT::v4i32,
/*355217*/            OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*355219*/            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), immAllZerosV:{ *:[v4i32] }) - Complexity = 10
                      // Dst: (VPDPWSSDSZ128rkz:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3)
/*355229*/          0, // EndSwitchOpcode
/*355230*/        /*Scope*/ 34, /*->355265*/
/*355231*/          OPC_RecordChild1, // #1 = $src3
/*355232*/          OPC_MoveChild1,
/*355233*/          OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*355236*/          OPC_RecordChild0, // #2 = $src1
/*355237*/          OPC_RecordChild1, // #3 = $src2
/*355238*/          OPC_MoveChild2,
/*355239*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*355242*/          OPC_CheckType, MVT::iPTR,
/*355244*/          OPC_MoveParent,
/*355245*/          OPC_MoveParent,
/*355246*/          OPC_RecordChild2, // #4 = $src0
/*355247*/          OPC_CheckType, MVT::v4i64,
/*355249*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*355251*/          OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*355254*/          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))
/*355265*/        /*Scope*/ 51|128,8/*1075*/, /*->356342*/
/*355267*/          OPC_MoveChild1,
/*355268*/          OPC_SwitchOpcode /*13 cases */, 127|128,3/*511*/, TARGET_VAL(ISD::BITCAST),// ->355784
/*355273*/            OPC_MoveChild0,
/*355274*/            OPC_SwitchOpcode /*5 cases */, 21, TARGET_VAL(X86ISD::VBROADCAST),// ->355299
/*355278*/              OPC_RecordChild0, // #1 = $src
/*355279*/              OPC_CheckChild0Type, MVT::v2i64,
/*355281*/              OPC_CheckType, MVT::v2i64,
/*355283*/              OPC_MoveParent,
/*355284*/              OPC_MoveParent,
/*355285*/              OPC_RecordChild2, // #2 = $src0
/*355286*/              OPC_CheckType, MVT::v4i32,
/*355288*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*355290*/              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)
/*355299*/            /*SwitchOpcode*/ 118, TARGET_VAL(ISD::AND),// ->355420
/*355302*/              OPC_RecordChild0, // #1 = $src1
/*355303*/              OPC_RecordChild1, // #2 = $src2
/*355304*/              OPC_SwitchType /*6 cases */, 17, MVT::v8i32,// ->355324
/*355307*/                OPC_MoveParent,
/*355308*/                OPC_MoveParent,
/*355309*/                OPC_RecordChild2, // #3 = $src0
/*355310*/                OPC_CheckType, MVT::v4i64,
/*355312*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*355314*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ256rrk), 0,
                              MVT::v4i64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i64] } (and:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 9
                          // Dst: (VPANDQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*355324*/              /*SwitchType*/ 17, MVT::v16i16,// ->355343
/*355326*/                OPC_MoveParent,
/*355327*/                OPC_MoveParent,
/*355328*/                OPC_RecordChild2, // #3 = $src0
/*355329*/                OPC_CheckType, MVT::v4i64,
/*355331*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*355333*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ256rrk), 0,
                              MVT::v4i64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i64] } (and:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 9
                          // Dst: (VPANDQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*355343*/              /*SwitchType*/ 17, MVT::v32i8,// ->355362
/*355345*/                OPC_MoveParent,
/*355346*/                OPC_MoveParent,
/*355347*/                OPC_RecordChild2, // #3 = $src0
/*355348*/                OPC_CheckType, MVT::v4i64,
/*355350*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*355352*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ256rrk), 0,
                              MVT::v4i64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i64] } (and:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 9
                          // Dst: (VPANDQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*355362*/              /*SwitchType*/ 17, MVT::v2i64,// ->355381
/*355364*/                OPC_MoveParent,
/*355365*/                OPC_MoveParent,
/*355366*/                OPC_RecordChild2, // #3 = $src0
/*355367*/                OPC_CheckType, MVT::v4i32,
/*355369*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*355371*/                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)
/*355381*/              /*SwitchType*/ 17, MVT::v8i16,// ->355400
/*355383*/                OPC_MoveParent,
/*355384*/                OPC_MoveParent,
/*355385*/                OPC_RecordChild2, // #3 = $src0
/*355386*/                OPC_CheckType, MVT::v4i32,
/*355388*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*355390*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ128rrk), 0,
                              MVT::v4i32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (and:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 9
                          // Dst: (VPANDDZ128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*355400*/              /*SwitchType*/ 17, MVT::v16i8,// ->355419
/*355402*/                OPC_MoveParent,
/*355403*/                OPC_MoveParent,
/*355404*/                OPC_RecordChild2, // #3 = $src0
/*355405*/                OPC_CheckType, MVT::v4i32,
/*355407*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*355409*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ128rrk), 0,
                              MVT::v4i32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (and:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 9
                          // Dst: (VPANDDZ128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*355419*/              0, // EndSwitchType
/*355420*/            /*SwitchOpcode*/ 118, TARGET_VAL(ISD::OR),// ->355541
/*355423*/              OPC_RecordChild0, // #1 = $src1
/*355424*/              OPC_RecordChild1, // #2 = $src2
/*355425*/              OPC_SwitchType /*6 cases */, 17, MVT::v8i32,// ->355445
/*355428*/                OPC_MoveParent,
/*355429*/                OPC_MoveParent,
/*355430*/                OPC_RecordChild2, // #3 = $src0
/*355431*/                OPC_CheckType, MVT::v4i64,
/*355433*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*355435*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ256rrk), 0,
                              MVT::v4i64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i64] } (or:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 9
                          // Dst: (VPORQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*355445*/              /*SwitchType*/ 17, MVT::v16i16,// ->355464
/*355447*/                OPC_MoveParent,
/*355448*/                OPC_MoveParent,
/*355449*/                OPC_RecordChild2, // #3 = $src0
/*355450*/                OPC_CheckType, MVT::v4i64,
/*355452*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*355454*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ256rrk), 0,
                              MVT::v4i64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i64] } (or:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 9
                          // Dst: (VPORQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*355464*/              /*SwitchType*/ 17, MVT::v32i8,// ->355483
/*355466*/                OPC_MoveParent,
/*355467*/                OPC_MoveParent,
/*355468*/                OPC_RecordChild2, // #3 = $src0
/*355469*/                OPC_CheckType, MVT::v4i64,
/*355471*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*355473*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ256rrk), 0,
                              MVT::v4i64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i64] } (or:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 9
                          // Dst: (VPORQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*355483*/              /*SwitchType*/ 17, MVT::v2i64,// ->355502
/*355485*/                OPC_MoveParent,
/*355486*/                OPC_MoveParent,
/*355487*/                OPC_RecordChild2, // #3 = $src0
/*355488*/                OPC_CheckType, MVT::v4i32,
/*355490*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*355492*/                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)
/*355502*/              /*SwitchType*/ 17, MVT::v8i16,// ->355521
/*355504*/                OPC_MoveParent,
/*355505*/                OPC_MoveParent,
/*355506*/                OPC_RecordChild2, // #3 = $src0
/*355507*/                OPC_CheckType, MVT::v4i32,
/*355509*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*355511*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ128rrk), 0,
                              MVT::v4i32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (or:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 9
                          // Dst: (VPORDZ128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*355521*/              /*SwitchType*/ 17, MVT::v16i8,// ->355540
/*355523*/                OPC_MoveParent,
/*355524*/                OPC_MoveParent,
/*355525*/                OPC_RecordChild2, // #3 = $src0
/*355526*/                OPC_CheckType, MVT::v4i32,
/*355528*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*355530*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ128rrk), 0,
                              MVT::v4i32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (or:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 9
                          // Dst: (VPORDZ128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*355540*/              0, // EndSwitchType
/*355541*/            /*SwitchOpcode*/ 118, TARGET_VAL(ISD::XOR),// ->355662
/*355544*/              OPC_RecordChild0, // #1 = $src1
/*355545*/              OPC_RecordChild1, // #2 = $src2
/*355546*/              OPC_SwitchType /*6 cases */, 17, MVT::v8i32,// ->355566
/*355549*/                OPC_MoveParent,
/*355550*/                OPC_MoveParent,
/*355551*/                OPC_RecordChild2, // #3 = $src0
/*355552*/                OPC_CheckType, MVT::v4i64,
/*355554*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*355556*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ256rrk), 0,
                              MVT::v4i64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i64] } (xor:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 9
                          // Dst: (VPXORQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*355566*/              /*SwitchType*/ 17, MVT::v16i16,// ->355585
/*355568*/                OPC_MoveParent,
/*355569*/                OPC_MoveParent,
/*355570*/                OPC_RecordChild2, // #3 = $src0
/*355571*/                OPC_CheckType, MVT::v4i64,
/*355573*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*355575*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ256rrk), 0,
                              MVT::v4i64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i64] } (xor:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 9
                          // Dst: (VPXORQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*355585*/              /*SwitchType*/ 17, MVT::v32i8,// ->355604
/*355587*/                OPC_MoveParent,
/*355588*/                OPC_MoveParent,
/*355589*/                OPC_RecordChild2, // #3 = $src0
/*355590*/                OPC_CheckType, MVT::v4i64,
/*355592*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*355594*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ256rrk), 0,
                              MVT::v4i64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i64] } (xor:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 9
                          // Dst: (VPXORQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*355604*/              /*SwitchType*/ 17, MVT::v2i64,// ->355623
/*355606*/                OPC_MoveParent,
/*355607*/                OPC_MoveParent,
/*355608*/                OPC_RecordChild2, // #3 = $src0
/*355609*/                OPC_CheckType, MVT::v4i32,
/*355611*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*355613*/                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)
/*355623*/              /*SwitchType*/ 17, MVT::v8i16,// ->355642
/*355625*/                OPC_MoveParent,
/*355626*/                OPC_MoveParent,
/*355627*/                OPC_RecordChild2, // #3 = $src0
/*355628*/                OPC_CheckType, MVT::v4i32,
/*355630*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*355632*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ128rrk), 0,
                              MVT::v4i32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (xor:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 9
                          // Dst: (VPXORDZ128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*355642*/              /*SwitchType*/ 17, MVT::v16i8,// ->355661
/*355644*/                OPC_MoveParent,
/*355645*/                OPC_MoveParent,
/*355646*/                OPC_RecordChild2, // #3 = $src0
/*355647*/                OPC_CheckType, MVT::v4i32,
/*355649*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*355651*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ128rrk), 0,
                              MVT::v4i32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (xor:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 9
                          // Dst: (VPXORDZ128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*355661*/              0, // EndSwitchType
/*355662*/            /*SwitchOpcode*/ 118, TARGET_VAL(X86ISD::ANDNP),// ->355783
/*355665*/              OPC_RecordChild0, // #1 = $src1
/*355666*/              OPC_RecordChild1, // #2 = $src2
/*355667*/              OPC_SwitchType /*6 cases */, 17, MVT::v8i32,// ->355687
/*355670*/                OPC_MoveParent,
/*355671*/                OPC_MoveParent,
/*355672*/                OPC_RecordChild2, // #3 = $src0
/*355673*/                OPC_CheckType, MVT::v4i64,
/*355675*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*355677*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZ256rrk), 0,
                              MVT::v4i64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i64] } (X86andnp:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 9
                          // Dst: (VPANDNQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*355687*/              /*SwitchType*/ 17, MVT::v16i16,// ->355706
/*355689*/                OPC_MoveParent,
/*355690*/                OPC_MoveParent,
/*355691*/                OPC_RecordChild2, // #3 = $src0
/*355692*/                OPC_CheckType, MVT::v4i64,
/*355694*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*355696*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZ256rrk), 0,
                              MVT::v4i64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i64] } (X86andnp:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 9
                          // Dst: (VPANDNQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*355706*/              /*SwitchType*/ 17, MVT::v32i8,// ->355725
/*355708*/                OPC_MoveParent,
/*355709*/                OPC_MoveParent,
/*355710*/                OPC_RecordChild2, // #3 = $src0
/*355711*/                OPC_CheckType, MVT::v4i64,
/*355713*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*355715*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZ256rrk), 0,
                              MVT::v4i64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i64] } (X86andnp:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)), VR256X:{ *:[v4i64] }:$src0) - Complexity = 9
                          // Dst: (VPANDNQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*355725*/              /*SwitchType*/ 17, MVT::v2i64,// ->355744
/*355727*/                OPC_MoveParent,
/*355728*/                OPC_MoveParent,
/*355729*/                OPC_RecordChild2, // #3 = $src0
/*355730*/                OPC_CheckType, MVT::v4i32,
/*355732*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*355734*/                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)
/*355744*/              /*SwitchType*/ 17, MVT::v8i16,// ->355763
/*355746*/                OPC_MoveParent,
/*355747*/                OPC_MoveParent,
/*355748*/                OPC_RecordChild2, // #3 = $src0
/*355749*/                OPC_CheckType, MVT::v4i32,
/*355751*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*355753*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZ128rrk), 0,
                              MVT::v4i32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (X86andnp:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 9
                          // Dst: (VPANDNDZ128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*355763*/              /*SwitchType*/ 17, MVT::v16i8,// ->355782
/*355765*/                OPC_MoveParent,
/*355766*/                OPC_MoveParent,
/*355767*/                OPC_RecordChild2, // #3 = $src0
/*355768*/                OPC_CheckType, MVT::v4i32,
/*355770*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*355772*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZ128rrk), 0,
                              MVT::v4i32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4i32] } (X86andnp:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)), VR128X:{ *:[v4i32] }:$src0) - Complexity = 9
                          // Dst: (VPANDNDZ128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*355782*/              0, // EndSwitchType
/*355783*/            0, // EndSwitchOpcode
/*355784*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VSRLI),// ->355826
/*355787*/            OPC_RecordChild0, // #1 = $src1
/*355788*/            OPC_RecordChild1, // #2 = $src2
/*355789*/            OPC_MoveChild1,
/*355790*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*355793*/            OPC_MoveParent,
/*355794*/            OPC_MoveParent,
/*355795*/            OPC_RecordChild2, // #3 = $src0
/*355796*/            OPC_SwitchType /*2 cases */, 12, MVT::v4i32,// ->355811
/*355799*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*355801*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZ128rik), 0,
                            MVT::v4i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrli:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$src2), VR128X:{ *:[v4i32] }:$src0) - Complexity = 9
                        // Dst: (VPSRLDZ128rik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$src2)
/*355811*/            /*SwitchType*/ 12, MVT::v4i64,// ->355825
/*355813*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*355815*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZ256rik), 0,
                            MVT::v4i64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrli:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (timm:{ *:[i8] }):$src2), VR256X:{ *:[v4i64] }:$src0) - Complexity = 9
                        // Dst: (VPSRLQZ256rik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, (timm:{ *:[i8] }):$src2)
/*355825*/            0, // EndSwitchType
/*355826*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VSHLI),// ->355868
/*355829*/            OPC_RecordChild0, // #1 = $src1
/*355830*/            OPC_RecordChild1, // #2 = $src2
/*355831*/            OPC_MoveChild1,
/*355832*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*355835*/            OPC_MoveParent,
/*355836*/            OPC_MoveParent,
/*355837*/            OPC_RecordChild2, // #3 = $src0
/*355838*/            OPC_SwitchType /*2 cases */, 12, MVT::v4i32,// ->355853
/*355841*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*355843*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZ128rik), 0,
                            MVT::v4i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vshli:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$src2), VR128X:{ *:[v4i32] }:$src0) - Complexity = 9
                        // Dst: (VPSLLDZ128rik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$src2)
/*355853*/            /*SwitchType*/ 12, MVT::v4i64,// ->355867
/*355855*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*355857*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZ256rik), 0,
                            MVT::v4i64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vshli:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (timm:{ *:[i8] }):$src2), VR256X:{ *:[v4i64] }:$src0) - Complexity = 9
                        // Dst: (VPSLLQZ256rik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, (timm:{ *:[i8] }):$src2)
/*355867*/            0, // EndSwitchType
/*355868*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VSRAI),// ->355910
/*355871*/            OPC_RecordChild0, // #1 = $src1
/*355872*/            OPC_RecordChild1, // #2 = $src2
/*355873*/            OPC_MoveChild1,
/*355874*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*355877*/            OPC_MoveParent,
/*355878*/            OPC_MoveParent,
/*355879*/            OPC_RecordChild2, // #3 = $src0
/*355880*/            OPC_SwitchType /*2 cases */, 12, MVT::v4i32,// ->355895
/*355883*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*355885*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZ128rik), 0,
                            MVT::v4i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrai:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$src2), VR128X:{ *:[v4i32] }:$src0) - Complexity = 9
                        // Dst: (VPSRADZ128rik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$src2)
/*355895*/            /*SwitchType*/ 12, MVT::v4i64,// ->355909
/*355897*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*355899*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZ256rik), 0,
                            MVT::v4i64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrai:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (timm:{ *:[i8] }):$src2), VR256X:{ *:[v4i64] }:$src0) - Complexity = 9
                        // Dst: (VPSRAQZ256rik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, (timm:{ *:[i8] }):$src2)
/*355909*/            0, // EndSwitchType
/*355910*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VROTRI),// ->355952
/*355913*/            OPC_RecordChild0, // #1 = $src1
/*355914*/            OPC_RecordChild1, // #2 = $src2
/*355915*/            OPC_MoveChild1,
/*355916*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*355919*/            OPC_MoveParent,
/*355920*/            OPC_MoveParent,
/*355921*/            OPC_RecordChild2, // #3 = $src0
/*355922*/            OPC_SwitchType /*2 cases */, 12, MVT::v4i32,// ->355937
/*355925*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*355927*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORDZ128rik), 0,
                            MVT::v4i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vrotri:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$src2), VR128X:{ *:[v4i32] }:$src0) - Complexity = 9
                        // Dst: (VPRORDZ128rik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$src2)
/*355937*/            /*SwitchType*/ 12, MVT::v4i64,// ->355951
/*355939*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*355941*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORQZ256rik), 0,
                            MVT::v4i64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vrotri:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (timm:{ *:[i8] }):$src2), VR256X:{ *:[v4i64] }:$src0) - Complexity = 9
                        // Dst: (VPRORQZ256rik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, (timm:{ *:[i8] }):$src2)
/*355951*/            0, // EndSwitchType
/*355952*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VROTLI),// ->355994
/*355955*/            OPC_RecordChild0, // #1 = $src1
/*355956*/            OPC_RecordChild1, // #2 = $src2
/*355957*/            OPC_MoveChild1,
/*355958*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*355961*/            OPC_MoveParent,
/*355962*/            OPC_MoveParent,
/*355963*/            OPC_RecordChild2, // #3 = $src0
/*355964*/            OPC_SwitchType /*2 cases */, 12, MVT::v4i32,// ->355979
/*355967*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*355969*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLDZ128rik), 0,
                            MVT::v4i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vrotli:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$src2), VR128X:{ *:[v4i32] }:$src0) - Complexity = 9
                        // Dst: (VPROLDZ128rik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$src2)
/*355979*/            /*SwitchType*/ 12, MVT::v4i64,// ->355993
/*355981*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*355983*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLQZ256rik), 0,
                            MVT::v4i64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vrotli:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (timm:{ *:[i8] }):$src2), VR256X:{ *:[v4i64] }:$src0) - Complexity = 9
                        // Dst: (VPROLQZ256rik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, (timm:{ *:[i8] }):$src2)
/*355993*/            0, // EndSwitchType
/*355994*/          /*SwitchOpcode*/ 23, TARGET_VAL(X86ISD::VPERMI),// ->356020
/*355997*/            OPC_RecordChild0, // #1 = $src1
/*355998*/            OPC_RecordChild1, // #2 = $src2
/*355999*/            OPC_MoveChild1,
/*356000*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*356003*/            OPC_MoveParent,
/*356004*/            OPC_MoveParent,
/*356005*/            OPC_RecordChild2, // #3 = $src0
/*356006*/            OPC_CheckType, MVT::v4i64,
/*356008*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*356010*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMQZ256rik), 0,
                          MVT::v4i64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermi:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (timm:{ *:[i8] }):$src2), VR256X:{ *:[v4i64] }:$src0) - Complexity = 9
                      // Dst: (VPERMQZ256rik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, (timm:{ *:[i8] }):$src2)
/*356020*/          /*SwitchOpcode*/ 23, TARGET_VAL(X86ISD::PSHUFD),// ->356046
/*356023*/            OPC_RecordChild0, // #1 = $src1
/*356024*/            OPC_RecordChild1, // #2 = $src2
/*356025*/            OPC_MoveChild1,
/*356026*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*356029*/            OPC_MoveParent,
/*356030*/            OPC_MoveParent,
/*356031*/            OPC_RecordChild2, // #3 = $src0
/*356032*/            OPC_CheckType, MVT::v4i32,
/*356034*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*356036*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFDZ128rik), 0,
                          MVT::v4i32, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86PShufd:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$src2), VR128X:{ *:[v4i32] }:$src0) - Complexity = 9
                      // Dst: (VPSHUFDZ128rik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$src2)
/*356046*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::SHUF128),// ->356074
/*356049*/            OPC_RecordChild0, // #1 = $src1
/*356050*/            OPC_RecordChild1, // #2 = $src2
/*356051*/            OPC_RecordChild2, // #3 = $src3
/*356052*/            OPC_MoveChild2,
/*356053*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*356056*/            OPC_MoveParent,
/*356057*/            OPC_MoveParent,
/*356058*/            OPC_RecordChild2, // #4 = $src0
/*356059*/            OPC_CheckType, MVT::v4i64,
/*356061*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*356063*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI64X2Z256rrik), 0,
                          MVT::v4i64, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86Shuf128:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (timm:{ *:[i8] }):$src3), VR256X:{ *:[v4i64] }:$src0) - Complexity = 9
                      // Dst: (VSHUFI64X2Z256rrik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (timm:{ *:[i8] }):$src3)
/*356074*/          /*SwitchOpcode*/ 42, TARGET_VAL(X86ISD::VALIGN),// ->356119
/*356077*/            OPC_RecordChild0, // #1 = $src1
/*356078*/            OPC_RecordChild1, // #2 = $src2
/*356079*/            OPC_RecordChild2, // #3 = $src3
/*356080*/            OPC_MoveChild2,
/*356081*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*356084*/            OPC_MoveParent,
/*356085*/            OPC_MoveParent,
/*356086*/            OPC_RecordChild2, // #4 = $src0
/*356087*/            OPC_SwitchType /*2 cases */, 13, MVT::v4i32,// ->356103
/*356090*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*356092*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZ128rrik), 0,
                            MVT::v4i32, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86VAlign:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (timm:{ *:[i8] }):$src3), VR128X:{ *:[v4i32] }:$src0) - Complexity = 9
                        // Dst: (VALIGNDZ128rrik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (timm:{ *:[i8] }):$src3)
/*356103*/            /*SwitchType*/ 13, MVT::v4i64,// ->356118
/*356105*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*356107*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNQZ256rrik), 0,
                            MVT::v4i64, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VAlign:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (timm:{ *:[i8] }):$src3), VR256X:{ *:[v4i64] }:$src0) - Complexity = 9
                        // Dst: (VALIGNQZ256rrik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (timm:{ *:[i8] }):$src3)
/*356118*/            0, // EndSwitchType
/*356119*/          /*SwitchOpcode*/ 0|128,1/*128*/, TARGET_VAL(X86ISD::VPTERNLOG),// ->356251
/*356123*/            OPC_RecordChild0, // #1 = $src1
/*356124*/            OPC_RecordChild1, // #2 = $src2
/*356125*/            OPC_RecordChild2, // #3 = $src3
/*356126*/            OPC_RecordChild3, // #4 = $src4
/*356127*/            OPC_MoveChild3,
/*356128*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*356131*/            OPC_MoveParent,
/*356132*/            OPC_MoveParent,
/*356133*/            OPC_SwitchType /*2 cases */, 56, MVT::v4i32,// ->356192
/*356136*/              OPC_Scope, 15, /*->356153*/ // 3 children in Scope
/*356138*/                OPC_CheckChild2Same, 1,
/*356140*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*356142*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ128rrik), 0,
                              MVT::v4i32, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3, (timm:{ *:[i8] }):$src4), VR128X:{ *:[v4i32] }:$src1) - Complexity = 9
                          // Dst: (VPTERNLOGDZ128rrik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3, (timm:{ *:[i8] }):$src4)
/*356153*/              /*Scope*/ 18, /*->356172*/
/*356154*/                OPC_CheckChild2Same, 3,
/*356156*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*356158*/                OPC_EmitNodeXForm, 19, 4, // VPTERNLOG321_imm8
/*356161*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ128rrik), 0,
                              MVT::v4i32, 5/*#Ops*/, 3, 0, 2, 1, 5, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src3, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src1, (timm:{ *:[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] } (timm:{ *:[i8] }):$src4))
/*356172*/              /*Scope*/ 18, /*->356191*/
/*356173*/                OPC_CheckChild2Same, 2,
/*356175*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*356177*/                OPC_EmitNodeXForm, 21, 4, // VPTERNLOG213_imm8
/*356180*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ128rrik), 0,
                              MVT::v4i32, 5/*#Ops*/, 2, 0, 1, 3, 5, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src3, (timm:{ *:[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] } (timm:{ *:[i8] }):$src4))
/*356191*/              0, /*End of Scope*/
/*356192*/            /*SwitchType*/ 56, MVT::v4i64,// ->356250
/*356194*/              OPC_Scope, 15, /*->356211*/ // 3 children in Scope
/*356196*/                OPC_CheckChild2Same, 1,
/*356198*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*356200*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rrik), 0,
                              MVT::v4i64, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src3, (timm:{ *:[i8] }):$src4), VR256X:{ *:[v4i64] }:$src1) - Complexity = 9
                          // Dst: (VPTERNLOGQZ256rrik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src3, (timm:{ *:[i8] }):$src4)
/*356211*/              /*Scope*/ 18, /*->356230*/
/*356212*/                OPC_CheckChild2Same, 3,
/*356214*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*356216*/                OPC_EmitNodeXForm, 19, 4, // VPTERNLOG321_imm8
/*356219*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rrik), 0,
                              MVT::v4i64, 5/*#Ops*/, 3, 0, 2, 1, 5, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src3, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src1, (timm:{ *:[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] } (timm:{ *:[i8] }):$src4))
/*356230*/              /*Scope*/ 18, /*->356249*/
/*356231*/                OPC_CheckChild2Same, 2,
/*356233*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*356235*/                OPC_EmitNodeXForm, 21, 4, // VPTERNLOG213_imm8
/*356238*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rrik), 0,
                              MVT::v4i64, 5/*#Ops*/, 2, 0, 1, 3, 5, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vpternlog:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src3, (timm:{ *:[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] } (timm:{ *:[i8] }):$src4))
/*356249*/              0, /*End of Scope*/
/*356250*/            0, // EndSwitchType
/*356251*/          /*SwitchOpcode*/ 42, TARGET_VAL(X86ISD::VSHLD),// ->356296
/*356254*/            OPC_RecordChild0, // #1 = $src1
/*356255*/            OPC_RecordChild1, // #2 = $src2
/*356256*/            OPC_RecordChild2, // #3 = $src3
/*356257*/            OPC_MoveChild2,
/*356258*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*356261*/            OPC_MoveParent,
/*356262*/            OPC_MoveParent,
/*356263*/            OPC_RecordChild2, // #4 = $src0
/*356264*/            OPC_SwitchType /*2 cases */, 13, MVT::v4i32,// ->356280
/*356267*/              OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*356269*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDDZ128rrik), 0,
                            MVT::v4i32, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86VShld:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (timm:{ *:[i8] }):$src3), VR128X:{ *:[v4i32] }:$src0) - Complexity = 9
                        // Dst: (VPSHLDDZ128rrik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (timm:{ *:[i8] }):$src3)
/*356280*/            /*SwitchType*/ 13, MVT::v4i64,// ->356295
/*356282*/              OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*356284*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDQZ256rrik), 0,
                            MVT::v4i64, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VShld:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (timm:{ *:[i8] }):$src3), VR256X:{ *:[v4i64] }:$src0) - Complexity = 9
                        // Dst: (VPSHLDQZ256rrik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (timm:{ *:[i8] }):$src3)
/*356295*/            0, // EndSwitchType
/*356296*/          /*SwitchOpcode*/ 42, TARGET_VAL(X86ISD::VSHRD),// ->356341
/*356299*/            OPC_RecordChild0, // #1 = $src1
/*356300*/            OPC_RecordChild1, // #2 = $src2
/*356301*/            OPC_RecordChild2, // #3 = $src3
/*356302*/            OPC_MoveChild2,
/*356303*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*356306*/            OPC_MoveParent,
/*356307*/            OPC_MoveParent,
/*356308*/            OPC_RecordChild2, // #4 = $src0
/*356309*/            OPC_SwitchType /*2 cases */, 13, MVT::v4i32,// ->356325
/*356312*/              OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*356314*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDDZ128rrik), 0,
                            MVT::v4i32, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86VShrd:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (timm:{ *:[i8] }):$src3), VR128X:{ *:[v4i32] }:$src0) - Complexity = 9
                        // Dst: (VPSHRDDZ128rrik:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (timm:{ *:[i8] }):$src3)
/*356325*/            /*SwitchType*/ 13, MVT::v4i64,// ->356340
/*356327*/              OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*356329*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDQZ256rrik), 0,
                            MVT::v4i64, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86VShrd:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (timm:{ *:[i8] }):$src3), VR256X:{ *:[v4i64] }:$src0) - Complexity = 9
                        // Dst: (VPSHRDQZ256rrik:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (timm:{ *:[i8] }):$src3)
/*356340*/            0, // EndSwitchType
/*356341*/          0, // EndSwitchOpcode
/*356342*/        /*Scope*/ 10|128,1/*138*/, /*->356482*/
/*356344*/          OPC_RecordChild1, // #1 = $src
/*356345*/          OPC_MoveChild2,
/*356346*/          OPC_CheckImmAllZerosV,
/*356347*/          OPC_MoveParent,
/*356348*/          OPC_SwitchType /*2 cases */, 64, MVT::v4i32,// ->356415
/*356351*/            OPC_Scope, 10, /*->356363*/ // 2 children in Scope
/*356353*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*356355*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA32Z128rrkz), 0,
                            MVT::v4i32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src, immAllZerosV:{ *:[v4i32] }) - Complexity = 7
                        // Dst: (VMOVDQA32Z128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*356363*/            /*Scope*/ 50, /*->356414*/
/*356364*/              OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*356366*/              OPC_EmitInteger, MVT::i32, X86::VK16WMRegClassID,
/*356369*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*356377*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v16i32, 0/*#Ops*/,  // Results = #4
/*356383*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*356386*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v16i32, 3/*#Ops*/, 4, 1, 5,  // Results = #6
/*356395*/              OPC_EmitNode1, TARGET_VAL(X86::VMOVDQA32Zrrkz), 0,
                            MVT::v16i32, 2/*#Ops*/, 3, 6,  // Results = #7
/*356403*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*356406*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::v4i32, 2/*#Ops*/, 7, 8, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, immAllZerosV:{ *:[v4i32] }) - 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] })
/*356414*/            0, /*End of Scope*/
/*356415*/          /*SwitchType*/ 64, MVT::v4i64,// ->356481
/*356417*/            OPC_Scope, 10, /*->356429*/ // 2 children in Scope
/*356419*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*356421*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Z256rrkz), 0,
                            MVT::v4i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src, immAllZerosV:{ *:[v4i64] }) - Complexity = 7
                        // Dst: (VMOVDQA64Z256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/*356429*/            /*Scope*/ 50, /*->356480*/
/*356430*/              OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*356432*/              OPC_EmitInteger, MVT::i32, X86::VK8WMRegClassID,
/*356435*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v8i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*356443*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v8i64, 0/*#Ops*/,  // Results = #4
/*356449*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*356452*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v8i64, 3/*#Ops*/, 4, 1, 5,  // Results = #6
/*356461*/              OPC_EmitNode1, TARGET_VAL(X86::VMOVDQA64Zrrkz), 0,
                            MVT::v8i64, 2/*#Ops*/, 3, 6,  // Results = #7
/*356469*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*356472*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::v4i64, 2/*#Ops*/, 7, 8, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, immAllZerosV:{ *:[v4i64] }) - Complexity = 7
                        // 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] })
/*356480*/            0, /*End of Scope*/
/*356481*/          0, // EndSwitchType
/*356482*/        /*Scope*/ 68|128,16/*2116*/, /*->358600*/
/*356484*/          OPC_MoveChild1,
/*356485*/          OPC_SwitchOpcode /*52 cases */, 75, TARGET_VAL(X86ISD::VBROADCAST),// ->356564
/*356489*/            OPC_RecordChild0, // #1 = $src
/*356490*/            OPC_Scope, 17, /*->356509*/ // 4 children in Scope
/*356492*/              OPC_CheckChild0Type, MVT::i32,
/*356494*/              OPC_MoveParent,
/*356495*/              OPC_RecordChild2, // #2 = $src0
/*356496*/              OPC_CheckType, MVT::v4i32,
/*356498*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*356500*/              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)
/*356509*/            /*Scope*/ 17, /*->356527*/
/*356510*/              OPC_CheckChild0Type, MVT::i64,
/*356512*/              OPC_MoveParent,
/*356513*/              OPC_RecordChild2, // #2 = $src0
/*356514*/              OPC_CheckType, MVT::v4i64,
/*356516*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*356518*/              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)
/*356527*/            /*Scope*/ 17, /*->356545*/
/*356528*/              OPC_CheckChild0Type, MVT::v4i32,
/*356530*/              OPC_MoveParent,
/*356531*/              OPC_RecordChild2, // #2 = $src0
/*356532*/              OPC_CheckType, MVT::v4i32,
/*356534*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*356536*/              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)
/*356545*/            /*Scope*/ 17, /*->356563*/
/*356546*/              OPC_CheckChild0Type, MVT::v2i64,
/*356548*/              OPC_MoveParent,
/*356549*/              OPC_RecordChild2, // #2 = $src0
/*356550*/              OPC_CheckType, MVT::v4i64,
/*356552*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*356554*/              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)
/*356563*/            0, /*End of Scope*/
/*356564*/          /*SwitchOpcode*/ 72, TARGET_VAL(X86ISD::VPERMV3),// ->356639
/*356567*/            OPC_RecordChild0, // #1 = $src2
/*356568*/            OPC_RecordChild1, // #2 = $src1
/*356569*/            OPC_RecordChild2, // #3 = $src3
/*356570*/            OPC_MoveParent,
/*356571*/            OPC_Scope, 32, /*->356605*/ // 2 children in Scope
/*356573*/              OPC_CheckChild2Same, 2,
/*356575*/              OPC_SwitchType /*2 cases */, 12, MVT::v4i32,// ->356590
/*356578*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*356580*/                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)
/*356590*/              /*SwitchType*/ 12, MVT::v4i64,// ->356604
/*356592*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*356594*/                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)
/*356604*/              0, // EndSwitchType
/*356605*/            /*Scope*/ 32, /*->356638*/
/*356606*/              OPC_CheckChild2Same, 1,
/*356608*/              OPC_SwitchType /*2 cases */, 12, MVT::v4i32,// ->356623
/*356611*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*356613*/                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)
/*356623*/              /*SwitchType*/ 12, MVT::v4i64,// ->356637
/*356625*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*356627*/                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)
/*356637*/              0, // EndSwitchType
/*356638*/            0, /*End of Scope*/
/*356639*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::ADD),// ->356676
/*356642*/            OPC_RecordChild0, // #1 = $src1
/*356643*/            OPC_RecordChild1, // #2 = $src2
/*356644*/            OPC_MoveParent,
/*356645*/            OPC_RecordChild2, // #3 = $src0
/*356646*/            OPC_SwitchType /*2 cases */, 12, MVT::v4i64,// ->356661
/*356649*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*356651*/              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)
/*356661*/            /*SwitchType*/ 12, MVT::v4i32,// ->356675
/*356663*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*356665*/              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)
/*356675*/            0, // EndSwitchType
/*356676*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::SUB),// ->356713
/*356679*/            OPC_RecordChild0, // #1 = $src1
/*356680*/            OPC_RecordChild1, // #2 = $src2
/*356681*/            OPC_MoveParent,
/*356682*/            OPC_RecordChild2, // #3 = $src0
/*356683*/            OPC_SwitchType /*2 cases */, 12, MVT::v4i64,// ->356698
/*356686*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*356688*/              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)
/*356698*/            /*SwitchType*/ 12, MVT::v4i32,// ->356712
/*356700*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*356702*/              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)
/*356712*/            0, // EndSwitchType
/*356713*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::MUL),// ->356750
/*356716*/            OPC_RecordChild0, // #1 = $src1
/*356717*/            OPC_RecordChild1, // #2 = $src2
/*356718*/            OPC_MoveParent,
/*356719*/            OPC_RecordChild2, // #3 = $src0
/*356720*/            OPC_SwitchType /*2 cases */, 12, MVT::v4i32,// ->356735
/*356723*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*356725*/              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)
/*356735*/            /*SwitchType*/ 12, MVT::v4i64,// ->356749
/*356737*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*356739*/              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)
/*356749*/            0, // EndSwitchType
/*356750*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::PMULDQ),// ->356771
/*356753*/            OPC_RecordChild0, // #1 = $src1
/*356754*/            OPC_RecordChild1, // #2 = $src2
/*356755*/            OPC_MoveParent,
/*356756*/            OPC_RecordChild2, // #3 = $src0
/*356757*/            OPC_CheckType, MVT::v4i64,
/*356759*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*356761*/            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)
/*356771*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::PMULUDQ),// ->356792
/*356774*/            OPC_RecordChild0, // #1 = $src1
/*356775*/            OPC_RecordChild1, // #2 = $src2
/*356776*/            OPC_MoveParent,
/*356777*/            OPC_RecordChild2, // #3 = $src0
/*356778*/            OPC_CheckType, MVT::v4i64,
/*356780*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*356782*/            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)
/*356792*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::VPMADDWD),// ->356813
/*356795*/            OPC_RecordChild0, // #1 = $src1
/*356796*/            OPC_RecordChild1, // #2 = $src2
/*356797*/            OPC_MoveParent,
/*356798*/            OPC_RecordChild2, // #3 = $src0
/*356799*/            OPC_CheckType, MVT::v4i32,
/*356801*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*356803*/            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)
/*356813*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::SMAX),// ->356850
/*356816*/            OPC_RecordChild0, // #1 = $src1
/*356817*/            OPC_RecordChild1, // #2 = $src2
/*356818*/            OPC_MoveParent,
/*356819*/            OPC_RecordChild2, // #3 = $src0
/*356820*/            OPC_SwitchType /*2 cases */, 12, MVT::v4i32,// ->356835
/*356823*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*356825*/              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)
/*356835*/            /*SwitchType*/ 12, MVT::v4i64,// ->356849
/*356837*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*356839*/              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)
/*356849*/            0, // EndSwitchType
/*356850*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::UMAX),// ->356887
/*356853*/            OPC_RecordChild0, // #1 = $src1
/*356854*/            OPC_RecordChild1, // #2 = $src2
/*356855*/            OPC_MoveParent,
/*356856*/            OPC_RecordChild2, // #3 = $src0
/*356857*/            OPC_SwitchType /*2 cases */, 12, MVT::v4i32,// ->356872
/*356860*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*356862*/              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)
/*356872*/            /*SwitchType*/ 12, MVT::v4i64,// ->356886
/*356874*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*356876*/              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)
/*356886*/            0, // EndSwitchType
/*356887*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::SMIN),// ->356924
/*356890*/            OPC_RecordChild0, // #1 = $src1
/*356891*/            OPC_RecordChild1, // #2 = $src2
/*356892*/            OPC_MoveParent,
/*356893*/            OPC_RecordChild2, // #3 = $src0
/*356894*/            OPC_SwitchType /*2 cases */, 12, MVT::v4i32,// ->356909
/*356897*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*356899*/              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)
/*356909*/            /*SwitchType*/ 12, MVT::v4i64,// ->356923
/*356911*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*356913*/              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)
/*356923*/            0, // EndSwitchType
/*356924*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::UMIN),// ->356961
/*356927*/            OPC_RecordChild0, // #1 = $src1
/*356928*/            OPC_RecordChild1, // #2 = $src2
/*356929*/            OPC_MoveParent,
/*356930*/            OPC_RecordChild2, // #3 = $src0
/*356931*/            OPC_SwitchType /*2 cases */, 12, MVT::v4i32,// ->356946
/*356934*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*356936*/              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)
/*356946*/            /*SwitchType*/ 12, MVT::v4i64,// ->356960
/*356948*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*356950*/              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)
/*356960*/            0, // EndSwitchType
/*356961*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::AND),// ->356998
/*356964*/            OPC_RecordChild0, // #1 = $src1
/*356965*/            OPC_RecordChild1, // #2 = $src2
/*356966*/            OPC_MoveParent,
/*356967*/            OPC_RecordChild2, // #3 = $src0
/*356968*/            OPC_SwitchType /*2 cases */, 12, MVT::v4i64,// ->356983
/*356971*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*356973*/              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)
/*356983*/            /*SwitchType*/ 12, MVT::v4i32,// ->356997
/*356985*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*356987*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ128rrk), 0,
                            MVT::v4i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (and:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2), VR128X:{ *:[v4i32] }:$src0) - Complexity = 6
                        // Dst: (VPANDDZ128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*356997*/            0, // EndSwitchType
/*356998*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::OR),// ->357035
/*357001*/            OPC_RecordChild0, // #1 = $src1
/*357002*/            OPC_RecordChild1, // #2 = $src2
/*357003*/            OPC_MoveParent,
/*357004*/            OPC_RecordChild2, // #3 = $src0
/*357005*/            OPC_SwitchType /*2 cases */, 12, MVT::v4i64,// ->357020
/*357008*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*357010*/              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)
/*357020*/            /*SwitchType*/ 12, MVT::v4i32,// ->357034
/*357022*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*357024*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ128rrk), 0,
                            MVT::v4i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (or:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2), VR128X:{ *:[v4i32] }:$src0) - Complexity = 6
                        // Dst: (VPORDZ128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*357034*/            0, // EndSwitchType
/*357035*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::XOR),// ->357072
/*357038*/            OPC_RecordChild0, // #1 = $src1
/*357039*/            OPC_RecordChild1, // #2 = $src2
/*357040*/            OPC_MoveParent,
/*357041*/            OPC_RecordChild2, // #3 = $src0
/*357042*/            OPC_SwitchType /*2 cases */, 12, MVT::v4i64,// ->357057
/*357045*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*357047*/              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)
/*357057*/            /*SwitchType*/ 12, MVT::v4i32,// ->357071
/*357059*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*357061*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ128rrk), 0,
                            MVT::v4i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (xor:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2), VR128X:{ *:[v4i32] }:$src0) - Complexity = 6
                        // Dst: (VPXORDZ128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*357071*/            0, // EndSwitchType
/*357072*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::ANDNP),// ->357109
/*357075*/            OPC_RecordChild0, // #1 = $src1
/*357076*/            OPC_RecordChild1, // #2 = $src2
/*357077*/            OPC_MoveParent,
/*357078*/            OPC_RecordChild2, // #3 = $src0
/*357079*/            OPC_SwitchType /*2 cases */, 12, MVT::v4i64,// ->357094
/*357082*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*357084*/              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)
/*357094*/            /*SwitchType*/ 12, MVT::v4i32,// ->357108
/*357096*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*357098*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZ128rrk), 0,
                            MVT::v4i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86andnp:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2), VR128X:{ *:[v4i32] }:$src0) - Complexity = 6
                        // Dst: (VPANDNDZ128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*357108*/            0, // EndSwitchType
/*357109*/          /*SwitchOpcode*/ 42, TARGET_VAL(X86ISD::VSHL),// ->357154
/*357112*/            OPC_RecordChild0, // #1 = $src1
/*357113*/            OPC_RecordChild1, // #2 = $src2
/*357114*/            OPC_Scope, 18, /*->357134*/ // 2 children in Scope
/*357116*/              OPC_CheckChild1Type, MVT::v4i32,
/*357118*/              OPC_MoveParent,
/*357119*/              OPC_RecordChild2, // #3 = $src0
/*357120*/              OPC_CheckType, MVT::v4i32,
/*357122*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*357124*/              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)
/*357134*/            /*Scope*/ 18, /*->357153*/
/*357135*/              OPC_CheckChild1Type, MVT::v2i64,
/*357137*/              OPC_MoveParent,
/*357138*/              OPC_RecordChild2, // #3 = $src0
/*357139*/              OPC_CheckType, MVT::v4i64,
/*357141*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*357143*/              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)
/*357153*/            0, /*End of Scope*/
/*357154*/          /*SwitchOpcode*/ 42, TARGET_VAL(X86ISD::VSRA),// ->357199
/*357157*/            OPC_RecordChild0, // #1 = $src1
/*357158*/            OPC_RecordChild1, // #2 = $src2
/*357159*/            OPC_Scope, 18, /*->357179*/ // 2 children in Scope
/*357161*/              OPC_CheckChild1Type, MVT::v4i32,
/*357163*/              OPC_MoveParent,
/*357164*/              OPC_RecordChild2, // #3 = $src0
/*357165*/              OPC_CheckType, MVT::v4i32,
/*357167*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*357169*/              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)
/*357179*/            /*Scope*/ 18, /*->357198*/
/*357180*/              OPC_CheckChild1Type, MVT::v2i64,
/*357182*/              OPC_MoveParent,
/*357183*/              OPC_RecordChild2, // #3 = $src0
/*357184*/              OPC_CheckType, MVT::v4i64,
/*357186*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*357188*/              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)
/*357198*/            0, /*End of Scope*/
/*357199*/          /*SwitchOpcode*/ 42, TARGET_VAL(X86ISD::VSRL),// ->357244
/*357202*/            OPC_RecordChild0, // #1 = $src1
/*357203*/            OPC_RecordChild1, // #2 = $src2
/*357204*/            OPC_Scope, 18, /*->357224*/ // 2 children in Scope
/*357206*/              OPC_CheckChild1Type, MVT::v4i32,
/*357208*/              OPC_MoveParent,
/*357209*/              OPC_RecordChild2, // #3 = $src0
/*357210*/              OPC_CheckType, MVT::v4i32,
/*357212*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*357214*/              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)
/*357224*/            /*Scope*/ 18, /*->357243*/
/*357225*/              OPC_CheckChild1Type, MVT::v2i64,
/*357227*/              OPC_MoveParent,
/*357228*/              OPC_RecordChild2, // #3 = $src0
/*357229*/              OPC_CheckType, MVT::v4i64,
/*357231*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*357233*/              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)
/*357243*/            0, /*End of Scope*/
/*357244*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VSHLV),// ->357281
/*357247*/            OPC_RecordChild0, // #1 = $src1
/*357248*/            OPC_RecordChild1, // #2 = $src2
/*357249*/            OPC_MoveParent,
/*357250*/            OPC_RecordChild2, // #3 = $src0
/*357251*/            OPC_SwitchType /*2 cases */, 12, MVT::v4i32,// ->357266
/*357254*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*357256*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVDZ128rrk), 0,
                            MVT::v4i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vshlv:{ *:[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)
/*357266*/            /*SwitchType*/ 12, MVT::v4i64,// ->357280
/*357268*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*357270*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVQZ256rrk), 0,
                            MVT::v4i64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vshlv:{ *:[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)
/*357280*/            0, // EndSwitchType
/*357281*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VSRAV),// ->357318
/*357284*/            OPC_RecordChild0, // #1 = $src1
/*357285*/            OPC_RecordChild1, // #2 = $src2
/*357286*/            OPC_MoveParent,
/*357287*/            OPC_RecordChild2, // #3 = $src0
/*357288*/            OPC_SwitchType /*2 cases */, 12, MVT::v4i32,// ->357303
/*357291*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*357293*/              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, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*357303*/            /*SwitchType*/ 12, MVT::v4i64,// ->357317
/*357305*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*357307*/              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, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*357317*/            0, // EndSwitchType
/*357318*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VSRLV),// ->357355
/*357321*/            OPC_RecordChild0, // #1 = $src1
/*357322*/            OPC_RecordChild1, // #2 = $src2
/*357323*/            OPC_MoveParent,
/*357324*/            OPC_RecordChild2, // #3 = $src0
/*357325*/            OPC_SwitchType /*2 cases */, 12, MVT::v4i32,// ->357340
/*357328*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*357330*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVDZ128rrk), 0,
                            MVT::v4i32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrlv:{ *:[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)
/*357340*/            /*SwitchType*/ 12, MVT::v4i64,// ->357354
/*357342*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*357344*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVQZ256rrk), 0,
                            MVT::v4i64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86vsrlv:{ *:[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)
/*357354*/            0, // EndSwitchType
/*357355*/          /*SwitchOpcode*/ 42, TARGET_VAL(ISD::ROTR),// ->357400
/*357358*/            OPC_RecordChild0, // #1 = $src1
/*357359*/            OPC_RecordChild1, // #2 = $src2
/*357360*/            OPC_Scope, 18, /*->357380*/ // 2 children in Scope
/*357362*/              OPC_CheckChild1Type, MVT::v4i32,
/*357364*/              OPC_MoveParent,
/*357365*/              OPC_RecordChild2, // #3 = $src0
/*357366*/              OPC_CheckType, MVT::v4i32,
/*357368*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*357370*/              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)
/*357380*/            /*Scope*/ 18, /*->357399*/
/*357381*/              OPC_CheckChild1Type, MVT::v4i64,
/*357383*/              OPC_MoveParent,
/*357384*/              OPC_RecordChild2, // #3 = $src0
/*357385*/              OPC_CheckType, MVT::v4i64,
/*357387*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*357389*/              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)
/*357399*/            0, /*End of Scope*/
/*357400*/          /*SwitchOpcode*/ 42, TARGET_VAL(ISD::ROTL),// ->357445
/*357403*/            OPC_RecordChild0, // #1 = $src1
/*357404*/            OPC_RecordChild1, // #2 = $src2
/*357405*/            OPC_Scope, 18, /*->357425*/ // 2 children in Scope
/*357407*/              OPC_CheckChild1Type, MVT::v4i32,
/*357409*/              OPC_MoveParent,
/*357410*/              OPC_RecordChild2, // #3 = $src0
/*357411*/              OPC_CheckType, MVT::v4i32,
/*357413*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*357415*/              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)
/*357425*/            /*Scope*/ 18, /*->357444*/
/*357426*/              OPC_CheckChild1Type, MVT::v4i64,
/*357428*/              OPC_MoveParent,
/*357429*/              OPC_RecordChild2, // #3 = $src0
/*357430*/              OPC_CheckType, MVT::v4i64,
/*357432*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*357434*/              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)
/*357444*/            0, /*End of Scope*/
/*357445*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::VPERMV),// ->357466
/*357448*/            OPC_RecordChild0, // #1 = $src1
/*357449*/            OPC_RecordChild1, // #2 = $src2
/*357450*/            OPC_MoveParent,
/*357451*/            OPC_RecordChild2, // #3 = $src0
/*357452*/            OPC_CheckType, MVT::v4i64,
/*357454*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*357456*/            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)
/*357466*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::VPMADD52L),// ->357489
/*357469*/            OPC_RecordChild0, // #1 = $src2
/*357470*/            OPC_RecordChild1, // #2 = $src3
/*357471*/            OPC_RecordChild2, // #3 = $src1
/*357472*/            OPC_MoveParent,
/*357473*/            OPC_CheckChild2Same, 3,
/*357475*/            OPC_CheckType, MVT::v4i64,
/*357477*/            OPC_CheckPatternPredicate, 184, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*357479*/            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)
/*357489*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::VPMADD52H),// ->357512
/*357492*/            OPC_RecordChild0, // #1 = $src2
/*357493*/            OPC_RecordChild1, // #2 = $src3
/*357494*/            OPC_RecordChild2, // #3 = $src1
/*357495*/            OPC_MoveParent,
/*357496*/            OPC_CheckChild2Same, 3,
/*357498*/            OPC_CheckType, MVT::v4i64,
/*357500*/            OPC_CheckPatternPredicate, 184, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*357502*/            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)
/*357512*/          /*SwitchOpcode*/ 75, TARGET_VAL(X86ISD::STRICT_CVTTP2SI),// ->357590
/*357515*/            OPC_RecordNode, // #1 = 'X86strict_cvttp2si' chained node
/*357516*/            OPC_CheckFoldableChainNode,
/*357517*/            OPC_RecordChild1, // #2 = $src
/*357518*/            OPC_Scope, 34, /*->357554*/ // 2 children in Scope
/*357520*/              OPC_CheckChild1Type, MVT::v4f32,
/*357522*/              OPC_MoveParent,
/*357523*/              OPC_RecordChild2, // #3 = $src0
/*357524*/              OPC_SwitchType /*2 cases */, 12, MVT::v4i32,// ->357539
/*357527*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*357529*/                OPC_EmitMergeInputChains1_1,
/*357530*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZ128rrk), 0|OPFL_Chain,
                              MVT::v4i32, 3/*#Ops*/, 3, 0, 2, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_cvttp2si:{ *:[v4i32] } VR128X:{ *:[v4f32] }:$src), VR128X:{ *:[v4i32] }:$src0) - Complexity = 6
                          // Dst: (VCVTTPS2DQZ128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*357539*/              /*SwitchType*/ 12, MVT::v4i64,// ->357553
/*357541*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*357543*/                OPC_EmitMergeInputChains1_1,
/*357544*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZ256rrk), 0|OPFL_Chain,
                              MVT::v4i64, 3/*#Ops*/, 3, 0, 2, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_cvttp2si:{ *:[v4i64] } VR128X:{ *:[v4f32] }:$src), VR256X:{ *:[v4i64] }:$src0) - Complexity = 6
                          // Dst: (VCVTTPS2QQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*357553*/              0, // EndSwitchType
/*357554*/            /*Scope*/ 34, /*->357589*/
/*357555*/              OPC_CheckChild1Type, MVT::v4f64,
/*357557*/              OPC_MoveParent,
/*357558*/              OPC_RecordChild2, // #3 = $src0
/*357559*/              OPC_SwitchType /*2 cases */, 12, MVT::v4i32,// ->357574
/*357562*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*357564*/                OPC_EmitMergeInputChains1_1,
/*357565*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZ256rrk), 0|OPFL_Chain,
                              MVT::v4i32, 3/*#Ops*/, 3, 0, 2, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_cvttp2si:{ *:[v4i32] } VR256X:{ *:[v4f64] }:$src), VR128X:{ *:[v4i32] }:$src0) - Complexity = 6
                          // Dst: (VCVTTPD2DQZ256rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)
/*357574*/              /*SwitchType*/ 12, MVT::v4i64,// ->357588
/*357576*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*357578*/                OPC_EmitMergeInputChains1_1,
/*357579*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZ256rrk), 0|OPFL_Chain,
                              MVT::v4i64, 3/*#Ops*/, 3, 0, 2, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_cvttp2si:{ *:[v4i64] } VR256X:{ *:[v4f64] }:$src), VR256X:{ *:[v4i64] }:$src0) - Complexity = 6
                          // Dst: (VCVTTPD2QQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)
/*357588*/              0, // EndSwitchType
/*357589*/            0, /*End of Scope*/
/*357590*/          /*SwitchOpcode*/ 69, TARGET_VAL(X86ISD::CVTTP2SI),// ->357662
/*357593*/            OPC_RecordChild0, // #1 = $src
/*357594*/            OPC_Scope, 32, /*->357628*/ // 2 children in Scope
/*357596*/              OPC_CheckChild0Type, MVT::v4f32,
/*357598*/              OPC_MoveParent,
/*357599*/              OPC_RecordChild2, // #2 = $src0
/*357600*/              OPC_SwitchType /*2 cases */, 11, MVT::v4i32,// ->357614
/*357603*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*357605*/                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)
/*357614*/              /*SwitchType*/ 11, MVT::v4i64,// ->357627
/*357616*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*357618*/                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)
/*357627*/              0, // EndSwitchType
/*357628*/            /*Scope*/ 32, /*->357661*/
/*357629*/              OPC_CheckChild0Type, MVT::v4f64,
/*357631*/              OPC_MoveParent,
/*357632*/              OPC_RecordChild2, // #2 = $src0
/*357633*/              OPC_SwitchType /*2 cases */, 11, MVT::v4i32,// ->357647
/*357636*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*357638*/                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)
/*357647*/              /*SwitchType*/ 11, MVT::v4i64,// ->357660
/*357649*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*357651*/                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)
/*357660*/              0, // EndSwitchType
/*357661*/            0, /*End of Scope*/
/*357662*/          /*SwitchOpcode*/ 75, TARGET_VAL(X86ISD::STRICT_CVTTP2UI),// ->357740
/*357665*/            OPC_RecordNode, // #1 = 'X86strict_cvttp2ui' chained node
/*357666*/            OPC_CheckFoldableChainNode,
/*357667*/            OPC_RecordChild1, // #2 = $src
/*357668*/            OPC_Scope, 34, /*->357704*/ // 2 children in Scope
/*357670*/              OPC_CheckChild1Type, MVT::v4f32,
/*357672*/              OPC_MoveParent,
/*357673*/              OPC_RecordChild2, // #3 = $src0
/*357674*/              OPC_SwitchType /*2 cases */, 12, MVT::v4i32,// ->357689
/*357677*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*357679*/                OPC_EmitMergeInputChains1_1,
/*357680*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZ128rrk), 0|OPFL_Chain,
                              MVT::v4i32, 3/*#Ops*/, 3, 0, 2, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_cvttp2ui:{ *:[v4i32] } VR128X:{ *:[v4f32] }:$src), VR128X:{ *:[v4i32] }:$src0) - Complexity = 6
                          // Dst: (VCVTTPS2UDQZ128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*357689*/              /*SwitchType*/ 12, MVT::v4i64,// ->357703
/*357691*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*357693*/                OPC_EmitMergeInputChains1_1,
/*357694*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZ256rrk), 0|OPFL_Chain,
                              MVT::v4i64, 3/*#Ops*/, 3, 0, 2, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_cvttp2ui:{ *:[v4i64] } VR128X:{ *:[v4f32] }:$src), VR256X:{ *:[v4i64] }:$src0) - Complexity = 6
                          // Dst: (VCVTTPS2UQQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*357703*/              0, // EndSwitchType
/*357704*/            /*Scope*/ 34, /*->357739*/
/*357705*/              OPC_CheckChild1Type, MVT::v4f64,
/*357707*/              OPC_MoveParent,
/*357708*/              OPC_RecordChild2, // #3 = $src0
/*357709*/              OPC_SwitchType /*2 cases */, 12, MVT::v4i32,// ->357724
/*357712*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*357714*/                OPC_EmitMergeInputChains1_1,
/*357715*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZ256rrk), 0|OPFL_Chain,
                              MVT::v4i32, 3/*#Ops*/, 3, 0, 2, 
                          // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_cvttp2ui:{ *:[v4i32] } VR256X:{ *:[v4f64] }:$src), VR128X:{ *:[v4i32] }:$src0) - Complexity = 6
                          // Dst: (VCVTTPD2UDQZ256rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)
/*357724*/              /*SwitchType*/ 12, MVT::v4i64,// ->357738
/*357726*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*357728*/                OPC_EmitMergeInputChains1_1,
/*357729*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZ256rrk), 0|OPFL_Chain,
                              MVT::v4i64, 3/*#Ops*/, 3, 0, 2, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_cvttp2ui:{ *:[v4i64] } VR256X:{ *:[v4f64] }:$src), VR256X:{ *:[v4i64] }:$src0) - Complexity = 6
                          // Dst: (VCVTTPD2UQQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)
/*357738*/              0, // EndSwitchType
/*357739*/            0, /*End of Scope*/
/*357740*/          /*SwitchOpcode*/ 69, TARGET_VAL(X86ISD::CVTTP2UI),// ->357812
/*357743*/            OPC_RecordChild0, // #1 = $src
/*357744*/            OPC_Scope, 32, /*->357778*/ // 2 children in Scope
/*357746*/              OPC_CheckChild0Type, MVT::v4f32,
/*357748*/              OPC_MoveParent,
/*357749*/              OPC_RecordChild2, // #2 = $src0
/*357750*/              OPC_SwitchType /*2 cases */, 11, MVT::v4i32,// ->357764
/*357753*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*357755*/                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)
/*357764*/              /*SwitchType*/ 11, MVT::v4i64,// ->357777
/*357766*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*357768*/                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)
/*357777*/              0, // EndSwitchType
/*357778*/            /*Scope*/ 32, /*->357811*/
/*357779*/              OPC_CheckChild0Type, MVT::v4f64,
/*357781*/              OPC_MoveParent,
/*357782*/              OPC_RecordChild2, // #2 = $src0
/*357783*/              OPC_SwitchType /*2 cases */, 11, MVT::v4i32,// ->357797
/*357786*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*357788*/                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)
/*357797*/              /*SwitchType*/ 11, MVT::v4i64,// ->357810
/*357799*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*357801*/                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)
/*357810*/              0, // EndSwitchType
/*357811*/            0, /*End of Scope*/
/*357812*/          /*SwitchOpcode*/ 69, TARGET_VAL(X86ISD::CVTP2SI),// ->357884
/*357815*/            OPC_RecordChild0, // #1 = $src
/*357816*/            OPC_Scope, 32, /*->357850*/ // 2 children in Scope
/*357818*/              OPC_CheckChild0Type, MVT::v4f32,
/*357820*/              OPC_MoveParent,
/*357821*/              OPC_RecordChild2, // #2 = $src0
/*357822*/              OPC_SwitchType /*2 cases */, 11, MVT::v4i32,// ->357836
/*357825*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*357827*/                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)
/*357836*/              /*SwitchType*/ 11, MVT::v4i64,// ->357849
/*357838*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*357840*/                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)
/*357849*/              0, // EndSwitchType
/*357850*/            /*Scope*/ 32, /*->357883*/
/*357851*/              OPC_CheckChild0Type, MVT::v4f64,
/*357853*/              OPC_MoveParent,
/*357854*/              OPC_RecordChild2, // #2 = $src0
/*357855*/              OPC_SwitchType /*2 cases */, 11, MVT::v4i32,// ->357869
/*357858*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*357860*/                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)
/*357869*/              /*SwitchType*/ 11, MVT::v4i64,// ->357882
/*357871*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*357873*/                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)
/*357882*/              0, // EndSwitchType
/*357883*/            0, /*End of Scope*/
/*357884*/          /*SwitchOpcode*/ 69, TARGET_VAL(X86ISD::CVTP2UI),// ->357956
/*357887*/            OPC_RecordChild0, // #1 = $src
/*357888*/            OPC_Scope, 32, /*->357922*/ // 2 children in Scope
/*357890*/              OPC_CheckChild0Type, MVT::v4f32,
/*357892*/              OPC_MoveParent,
/*357893*/              OPC_RecordChild2, // #2 = $src0
/*357894*/              OPC_SwitchType /*2 cases */, 11, MVT::v4i32,// ->357908
/*357897*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*357899*/                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)
/*357908*/              /*SwitchType*/ 11, MVT::v4i64,// ->357921
/*357910*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*357912*/                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)
/*357921*/              0, // EndSwitchType
/*357922*/            /*Scope*/ 32, /*->357955*/
/*357923*/              OPC_CheckChild0Type, MVT::v4f64,
/*357925*/              OPC_MoveParent,
/*357926*/              OPC_RecordChild2, // #2 = $src0
/*357927*/              OPC_SwitchType /*2 cases */, 11, MVT::v4i32,// ->357941
/*357930*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*357932*/                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)
/*357941*/              /*SwitchType*/ 11, MVT::v4i64,// ->357954
/*357943*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*357945*/                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)
/*357954*/              0, // EndSwitchType
/*357955*/            0, /*End of Scope*/
/*357956*/          /*SwitchOpcode*/ 16, TARGET_VAL(ISD::TRUNCATE),// ->357975
/*357959*/            OPC_RecordChild0, // #1 = $src
/*357960*/            OPC_MoveParent,
/*357961*/            OPC_RecordChild2, // #2 = $src0
/*357962*/            OPC_CheckType, MVT::v4i32,
/*357964*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*357966*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVQDZ256rrk), 0,
                          MVT::v4i32, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (trunc:{ *:[v4i32] } VR256X:{ *:[v4i64] }:$src), VR128X:{ *:[v4i32] }:$src0) - Complexity = 6
                      // Dst: (VPMOVQDZ256rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/*357975*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::VTRUNCS),// ->357996
/*357978*/            OPC_RecordChild0, // #1 = $src
/*357979*/            OPC_CheckChild0Type, MVT::v4i64,
/*357981*/            OPC_MoveParent,
/*357982*/            OPC_RecordChild2, // #2 = $src0
/*357983*/            OPC_CheckType, MVT::v4i32,
/*357985*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*357987*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSQDZ256rrk), 0,
                          MVT::v4i32, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vtruncs:{ *:[v4i32] } VR256X:{ *:[v4i64] }:$src), VR128X:{ *:[v4i32] }:$src0) - Complexity = 6
                      // Dst: (VPMOVSQDZ256rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/*357996*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::VTRUNCUS),// ->358017
/*357999*/            OPC_RecordChild0, // #1 = $src
/*358000*/            OPC_CheckChild0Type, MVT::v4i64,
/*358002*/            OPC_MoveParent,
/*358003*/            OPC_RecordChild2, // #2 = $src0
/*358004*/            OPC_CheckType, MVT::v4i32,
/*358006*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*358008*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSQDZ256rrk), 0,
                          MVT::v4i32, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, (X86vtruncus:{ *:[v4i32] } VR256X:{ *:[v4i64] }:$src), VR128X:{ *:[v4i32] }:$src0) - Complexity = 6
                      // Dst: (VPMOVUSQDZ256rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/*358017*/          /*SwitchOpcode*/ 69, TARGET_VAL(ISD::ZERO_EXTEND_VECTOR_INREG),// ->358089
/*358020*/            OPC_RecordChild0, // #1 = $src
/*358021*/            OPC_Scope, 32, /*->358055*/ // 2 children in Scope
/*358023*/              OPC_CheckChild0Type, MVT::v16i8,
/*358025*/              OPC_MoveParent,
/*358026*/              OPC_RecordChild2, // #2 = $src0
/*358027*/              OPC_SwitchType /*2 cases */, 11, MVT::v4i32,// ->358041
/*358030*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*358032*/                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)
/*358041*/              /*SwitchType*/ 11, MVT::v4i64,// ->358054
/*358043*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*358045*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBQZ256rrk), 0,
                              MVT::v4i64, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (zext_invec:{ *:[v4i64] } VR128X:{ *:[v16i8] }:$src), VR256X:{ *:[v4i64] }:$src0) - Complexity = 6
                          // Dst: (VPMOVZXBQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*358054*/              0, // EndSwitchType
/*358055*/            /*Scope*/ 32, /*->358088*/
/*358056*/              OPC_CheckChild0Type, MVT::v8i16,
/*358058*/              OPC_MoveParent,
/*358059*/              OPC_RecordChild2, // #2 = $src0
/*358060*/              OPC_SwitchType /*2 cases */, 11, MVT::v4i32,// ->358074
/*358063*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*358065*/                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)
/*358074*/              /*SwitchType*/ 11, MVT::v4i64,// ->358087
/*358076*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*358078*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWQZ256rrk), 0,
                              MVT::v4i64, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (zext_invec:{ *:[v4i64] } VR128X:{ *:[v8i16] }:$src), VR256X:{ *:[v4i64] }:$src0) - Complexity = 6
                          // Dst: (VPMOVZXWQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/*358087*/              0, // EndSwitchType
/*358088*/            0, /*End of Scope*/
/*358089*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::ZERO_EXTEND),// ->358110
/*358092*/            OPC_RecordChild0, // #1 = $src
/*358093*/            OPC_CheckChild0Type, MVT::v4i32,
/*358095*/            OPC_MoveParent,
/*358096*/            OPC_RecordChild2, // #2 = $src0
/*358097*/            OPC_CheckType, MVT::v4i64,
/*358099*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*358101*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXDQZ256rrk), 0,
                          MVT::v4i64, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (zext:{ *:[v4i64] } VR128X:{ *:[v4i32] }:$src), VR256X:{ *:[v4i64] }:$src0) - Complexity = 6
                      // Dst: (VPMOVZXDQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*358110*/          /*SwitchOpcode*/ 69, TARGET_VAL(ISD::SIGN_EXTEND_VECTOR_INREG),// ->358182
/*358113*/            OPC_RecordChild0, // #1 = $src
/*358114*/            OPC_Scope, 32, /*->358148*/ // 2 children in Scope
/*358116*/              OPC_CheckChild0Type, MVT::v16i8,
/*358118*/              OPC_MoveParent,
/*358119*/              OPC_RecordChild2, // #2 = $src0
/*358120*/              OPC_SwitchType /*2 cases */, 11, MVT::v4i32,// ->358134
/*358123*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*358125*/                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)
/*358134*/              /*SwitchType*/ 11, MVT::v4i64,// ->358147
/*358136*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*358138*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBQZ256rrk), 0,
                              MVT::v4i64, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (sext_invec:{ *:[v4i64] } VR128X:{ *:[v16i8] }:$src), VR256X:{ *:[v4i64] }:$src0) - Complexity = 6
                          // Dst: (VPMOVSXBQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*358147*/              0, // EndSwitchType
/*358148*/            /*Scope*/ 32, /*->358181*/
/*358149*/              OPC_CheckChild0Type, MVT::v8i16,
/*358151*/              OPC_MoveParent,
/*358152*/              OPC_RecordChild2, // #2 = $src0
/*358153*/              OPC_SwitchType /*2 cases */, 11, MVT::v4i32,// ->358167
/*358156*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*358158*/                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)
/*358167*/              /*SwitchType*/ 11, MVT::v4i64,// ->358180
/*358169*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*358171*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWQZ256rrk), 0,
                              MVT::v4i64, 3/*#Ops*/, 2, 0, 1, 
                          // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (sext_invec:{ *:[v4i64] } VR128X:{ *:[v8i16] }:$src), VR256X:{ *:[v4i64] }:$src0) - Complexity = 6
                          // Dst: (VPMOVSXWQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/*358180*/              0, // EndSwitchType
/*358181*/            0, /*End of Scope*/
/*358182*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::SIGN_EXTEND),// ->358203
/*358185*/            OPC_RecordChild0, // #1 = $src
/*358186*/            OPC_CheckChild0Type, MVT::v4i32,
/*358188*/            OPC_MoveParent,
/*358189*/            OPC_RecordChild2, // #2 = $src0
/*358190*/            OPC_CheckType, MVT::v4i64,
/*358192*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*358194*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXDQZ256rrk), 0,
                          MVT::v4i64, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, (sext:{ *:[v4i64] } VR128X:{ *:[v4i32] }:$src), VR256X:{ *:[v4i64] }:$src0) - Complexity = 6
                      // Dst: (VPMOVSXDQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*358203*/          /*SwitchOpcode*/ 31, TARGET_VAL(ISD::ABS),// ->358237
/*358206*/            OPC_RecordChild0, // #1 = $src1
/*358207*/            OPC_MoveParent,
/*358208*/            OPC_RecordChild2, // #2 = $src0
/*358209*/            OPC_SwitchType /*2 cases */, 11, MVT::v4i64,// ->358223
/*358212*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*358214*/              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)
/*358223*/            /*SwitchType*/ 11, MVT::v4i32,// ->358236
/*358225*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*358227*/              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)
/*358236*/            0, // EndSwitchType
/*358237*/          /*SwitchOpcode*/ 39, TARGET_VAL(ISD::CTLZ),// ->358279
/*358240*/            OPC_RecordChild0, // #1 = $src1
/*358241*/            OPC_Scope, 17, /*->358260*/ // 2 children in Scope
/*358243*/              OPC_CheckChild0Type, MVT::v4i64,
/*358245*/              OPC_MoveParent,
/*358246*/              OPC_RecordChild2, // #2 = $src0
/*358247*/              OPC_CheckType, MVT::v4i64,
/*358249*/              OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*358251*/              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)
/*358260*/            /*Scope*/ 17, /*->358278*/
/*358261*/              OPC_CheckChild0Type, MVT::v4i32,
/*358263*/              OPC_MoveParent,
/*358264*/              OPC_RecordChild2, // #2 = $src0
/*358265*/              OPC_CheckType, MVT::v4i32,
/*358267*/              OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*358269*/              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)
/*358278*/            0, /*End of Scope*/
/*358279*/          /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::CONFLICT),// ->358313
/*358282*/            OPC_RecordChild0, // #1 = $src1
/*358283*/            OPC_MoveParent,
/*358284*/            OPC_RecordChild2, // #2 = $src0
/*358285*/            OPC_SwitchType /*2 cases */, 11, MVT::v4i64,// ->358299
/*358288*/              OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*358290*/              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)
/*358299*/            /*SwitchType*/ 11, MVT::v4i32,// ->358312
/*358301*/              OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*358303*/              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)
/*358312*/            0, // EndSwitchType
/*358313*/          /*SwitchOpcode*/ 39, TARGET_VAL(ISD::CTPOP),// ->358355
/*358316*/            OPC_RecordChild0, // #1 = $src1
/*358317*/            OPC_Scope, 17, /*->358336*/ // 2 children in Scope
/*358319*/              OPC_CheckChild0Type, MVT::v4i64,
/*358321*/              OPC_MoveParent,
/*358322*/              OPC_RecordChild2, // #2 = $src0
/*358323*/              OPC_CheckType, MVT::v4i64,
/*358325*/              OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/*358327*/              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)
/*358336*/            /*Scope*/ 17, /*->358354*/
/*358337*/              OPC_CheckChild0Type, MVT::v4i32,
/*358339*/              OPC_MoveParent,
/*358340*/              OPC_RecordChild2, // #2 = $src0
/*358341*/              OPC_CheckType, MVT::v4i32,
/*358343*/              OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/*358345*/              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)
/*358354*/            0, /*End of Scope*/
/*358355*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::UNPCKL),// ->358392
/*358358*/            OPC_RecordChild0, // #1 = $src1
/*358359*/            OPC_RecordChild1, // #2 = $src2
/*358360*/            OPC_MoveParent,
/*358361*/            OPC_RecordChild2, // #3 = $src0
/*358362*/            OPC_SwitchType /*2 cases */, 12, MVT::v4i32,// ->358377
/*358365*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*358367*/              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)
/*358377*/            /*SwitchType*/ 12, MVT::v4i64,// ->358391
/*358379*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*358381*/              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)
/*358391*/            0, // EndSwitchType
/*358392*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::UNPCKH),// ->358429
/*358395*/            OPC_RecordChild0, // #1 = $src1
/*358396*/            OPC_RecordChild1, // #2 = $src2
/*358397*/            OPC_MoveParent,
/*358398*/            OPC_RecordChild2, // #3 = $src0
/*358399*/            OPC_SwitchType /*2 cases */, 12, MVT::v4i32,// ->358414
/*358402*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*358404*/              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)
/*358414*/            /*SwitchType*/ 12, MVT::v4i64,// ->358428
/*358416*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*358418*/              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)
/*358428*/            0, // EndSwitchType
/*358429*/          /*SwitchOpcode*/ 36, TARGET_VAL(X86ISD::VSHLDV),// ->358468
/*358432*/            OPC_RecordChild0, // #1 = $src1
/*358433*/            OPC_RecordChild1, // #2 = $src2
/*358434*/            OPC_RecordChild2, // #3 = $src3
/*358435*/            OPC_MoveParent,
/*358436*/            OPC_CheckChild2Same, 1,
/*358438*/            OPC_SwitchType /*2 cases */, 12, MVT::v4i32,// ->358453
/*358441*/              OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*358443*/              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)
/*358453*/            /*SwitchType*/ 12, MVT::v4i64,// ->358467
/*358455*/              OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*358457*/              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)
/*358467*/            0, // EndSwitchType
/*358468*/          /*SwitchOpcode*/ 36, TARGET_VAL(X86ISD::VSHRDV),// ->358507
/*358471*/            OPC_RecordChild0, // #1 = $src1
/*358472*/            OPC_RecordChild1, // #2 = $src2
/*358473*/            OPC_RecordChild2, // #3 = $src3
/*358474*/            OPC_MoveParent,
/*358475*/            OPC_CheckChild2Same, 1,
/*358477*/            OPC_SwitchType /*2 cases */, 12, MVT::v4i32,// ->358492
/*358480*/              OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*358482*/              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)
/*358492*/            /*SwitchType*/ 12, MVT::v4i64,// ->358506
/*358494*/              OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*358496*/              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)
/*358506*/            0, // EndSwitchType
/*358507*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::VPDPBUSD),// ->358530
/*358510*/            OPC_RecordChild0, // #1 = $src1
/*358511*/            OPC_RecordChild1, // #2 = $src2
/*358512*/            OPC_RecordChild2, // #3 = $src3
/*358513*/            OPC_MoveParent,
/*358514*/            OPC_CheckChild2Same, 1,
/*358516*/            OPC_CheckType, MVT::v4i32,
/*358518*/            OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*358520*/            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)
/*358530*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::VPDPBUSDS),// ->358553
/*358533*/            OPC_RecordChild0, // #1 = $src1
/*358534*/            OPC_RecordChild1, // #2 = $src2
/*358535*/            OPC_RecordChild2, // #3 = $src3
/*358536*/            OPC_MoveParent,
/*358537*/            OPC_CheckChild2Same, 1,
/*358539*/            OPC_CheckType, MVT::v4i32,
/*358541*/            OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*358543*/            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)
/*358553*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::VPDPWSSD),// ->358576
/*358556*/            OPC_RecordChild0, // #1 = $src1
/*358557*/            OPC_RecordChild1, // #2 = $src2
/*358558*/            OPC_RecordChild2, // #3 = $src3
/*358559*/            OPC_MoveParent,
/*358560*/            OPC_CheckChild2Same, 1,
/*358562*/            OPC_CheckType, MVT::v4i32,
/*358564*/            OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*358566*/            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)
/*358576*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::VPDPWSSDS),// ->358599
/*358579*/            OPC_RecordChild0, // #1 = $src1
/*358580*/            OPC_RecordChild1, // #2 = $src2
/*358581*/            OPC_RecordChild2, // #3 = $src3
/*358582*/            OPC_MoveParent,
/*358583*/            OPC_CheckChild2Same, 1,
/*358585*/            OPC_CheckType, MVT::v4i32,
/*358587*/            OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*358589*/            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)
/*358599*/          0, // EndSwitchOpcode
/*358600*/        /*Scope*/ 48|128,1/*176*/, /*->358778*/
/*358602*/          OPC_RecordChild1, // #1 = $src1
/*358603*/          OPC_RecordChild2, // #2 = $src0
/*358604*/          OPC_SwitchType /*2 cases */, 84, MVT::v4i32,// ->358691
/*358607*/            OPC_Scope, 11, /*->358620*/ // 2 children in Scope
/*358609*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*358611*/              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)
/*358620*/            /*Scope*/ 69, /*->358690*/
/*358621*/              OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*358623*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v16i32, 0/*#Ops*/,  // Results = #3
/*358629*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*358632*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v16i32, 3/*#Ops*/, 3, 2, 4,  // Results = #5
/*358641*/              OPC_EmitInteger, MVT::i32, X86::VK16WMRegClassID,
/*358644*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v16i1, 2/*#Ops*/, 0, 6,  // Results = #7
/*358652*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v16i32, 0/*#Ops*/,  // Results = #8
/*358658*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*358661*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v16i32, 3/*#Ops*/, 8, 1, 9,  // Results = #10
/*358670*/              OPC_EmitNode1, TARGET_VAL(X86::VMOVDQA32Zrrk), 0,
                            MVT::v16i32, 3/*#Ops*/, 5, 7, 10,  // Results = #11
/*358679*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*358682*/              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] })
/*358690*/            0, /*End of Scope*/
/*358691*/          /*SwitchType*/ 84, MVT::v4i64,// ->358777
/*358693*/            OPC_Scope, 11, /*->358706*/ // 2 children in Scope
/*358695*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*358697*/              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)
/*358706*/            /*Scope*/ 69, /*->358776*/
/*358707*/              OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*358709*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v8i64, 0/*#Ops*/,  // Results = #3
/*358715*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*358718*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v8i64, 3/*#Ops*/, 3, 2, 4,  // Results = #5
/*358727*/              OPC_EmitInteger, MVT::i32, X86::VK8WMRegClassID,
/*358730*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v8i1, 2/*#Ops*/, 0, 6,  // Results = #7
/*358738*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v8i64, 0/*#Ops*/,  // Results = #8
/*358744*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*358747*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v8i64, 3/*#Ops*/, 8, 1, 9,  // Results = #10
/*358756*/              OPC_EmitNode1, TARGET_VAL(X86::VMOVDQA64Zrrk), 0,
                            MVT::v8i64, 3/*#Ops*/, 5, 7, 10,  // Results = #11
/*358765*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*358768*/              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] })
/*358776*/            0, /*End of Scope*/
/*358777*/          0, // EndSwitchType
/*358778*/        /*Scope*/ 64, /*->358843*/
/*358779*/          OPC_MoveChild1,
/*358780*/          OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*358783*/          OPC_RecordChild0, // #1 = $ins
/*358784*/          OPC_MoveChild0,
/*358785*/          OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*358788*/          OPC_RecordChild0, // #2 = $src1
/*358789*/          OPC_MoveChild1,
/*358790*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*358793*/          OPC_RecordMemRef,
/*358794*/          OPC_RecordNode, // #3 = 'ld' chained node
/*358795*/          OPC_CheckFoldableChainNode,
/*358796*/          OPC_RecordChild1, // #4 = $src2
/*358797*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*358799*/          OPC_CheckPredicate, 9, // Predicate_load
/*358801*/          OPC_MoveParent,
/*358802*/          OPC_MoveChild2,
/*358803*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*358806*/          OPC_CheckType, MVT::iPTR,
/*358808*/          OPC_MoveParent,
/*358809*/          OPC_CheckType, MVT::v8f32,
/*358811*/          OPC_MoveParent,
/*358812*/          OPC_MoveParent,
/*358813*/          OPC_MoveChild2,
/*358814*/          OPC_CheckImmAllZerosV,
/*358815*/          OPC_MoveParent,
/*358816*/          OPC_CheckType, MVT::v4f64,
/*358818*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*358820*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*358823*/          OPC_EmitMergeInputChains, 1, 3, 
/*358826*/          OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*358829*/          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>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins), immAllZerosV:{ *:[v4f64] }) - Complexity = 38
                    // Dst: (VINSERTF64x2Z256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256X:{ *:[v8f32] }:$ins))
/*358843*/        /*Scope*/ 57, /*->358901*/
/*358844*/          OPC_RecordChild1, // #1 = $src3
/*358845*/          OPC_MoveChild1,
/*358846*/          OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*358849*/          OPC_RecordChild0, // #2 = $src1
/*358850*/          OPC_MoveChild1,
/*358851*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*358854*/          OPC_RecordMemRef,
/*358855*/          OPC_RecordNode, // #3 = 'ld' chained node
/*358856*/          OPC_CheckFoldableChainNode,
/*358857*/          OPC_RecordChild1, // #4 = $src2
/*358858*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*358860*/          OPC_CheckPredicate, 9, // Predicate_load
/*358862*/          OPC_MoveParent,
/*358863*/          OPC_MoveChild2,
/*358864*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*358867*/          OPC_CheckType, MVT::iPTR,
/*358869*/          OPC_MoveParent,
/*358870*/          OPC_MoveParent,
/*358871*/          OPC_MoveChild2,
/*358872*/          OPC_CheckImmAllZerosV,
/*358873*/          OPC_MoveParent,
/*358874*/          OPC_CheckType, MVT::v4f64,
/*358876*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*358878*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*358881*/          OPC_EmitMergeInputChains, 1, 3, 
/*358884*/          OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*358887*/          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>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$src3, immAllZerosV:{ *:[v4f64] }) - Complexity = 35
                    // 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>>, (imm:{ *:[iPTR] })):$src3))
/*358901*/        /*Scope*/ 49|128,97/*12465*/, /*->371368*/
/*358903*/          OPC_MoveChild1,
/*358904*/          OPC_SwitchOpcode /*55 cases */, 58|128,18/*2362*/, TARGET_VAL(ISD::BITCAST),// ->361271
/*358909*/            OPC_Scope, 122|128,17/*2298*/, /*->361210*/ // 2 children in Scope
/*358912*/              OPC_MoveChild0,
/*358913*/              OPC_SwitchOpcode /*5 cases */, 40, TARGET_VAL(X86ISD::SUBV_BROADCAST),// ->358957
/*358917*/                OPC_MoveChild0,
/*358918*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*358921*/                OPC_RecordMemRef,
/*358922*/                OPC_RecordNode, // #1 = 'ld' chained node
/*358923*/                OPC_CheckFoldableChainNode,
/*358924*/                OPC_RecordChild1, // #2 = $src
/*358925*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*358927*/                OPC_CheckPredicate, 9, // Predicate_load
/*358929*/                OPC_MoveParent,
/*358930*/                OPC_CheckType, MVT::v8f32,
/*358932*/                OPC_MoveParent,
/*358933*/                OPC_MoveParent,
/*358934*/                OPC_MoveChild2,
/*358935*/                OPC_CheckImmAllZerosV,
/*358936*/                OPC_MoveParent,
/*358937*/                OPC_CheckType, MVT::v4f64,
/*358939*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*358941*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*358944*/                OPC_EmitMergeInputChains1_1,
/*358945*/                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>>)), immAllZerosV:{ *:[v4f64] }) - Complexity = 35
                          // Dst: (VBROADCASTF64X2Z128rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*358957*/              /*SwitchOpcode*/ 0|128,5/*640*/, TARGET_VAL(ISD::AND),// ->359601
/*358961*/                OPC_Scope, 60|128,2/*316*/, /*->359280*/ // 2 children in Scope
/*358964*/                  OPC_RecordChild0, // #1 = $src1
/*358965*/                  OPC_MoveChild1,
/*358966*/                  OPC_SwitchOpcode /*2 cases */, 107|128,1/*235*/, TARGET_VAL(ISD::LOAD),// ->359206
/*358971*/                    OPC_RecordMemRef,
/*358972*/                    OPC_RecordNode, // #2 = 'ld' chained node
/*358973*/                    OPC_CheckFoldableChainNode,
/*358974*/                    OPC_RecordChild1, // #3 = $src2
/*358975*/                    OPC_CheckPredicate, 4, // Predicate_unindexedload
/*358977*/                    OPC_CheckPredicate, 9, // Predicate_load
/*358979*/                    OPC_MoveParent,
/*358980*/                    OPC_SwitchType /*8 cases */, 26, MVT::v2i64,// ->359009
/*358983*/                      OPC_MoveParent,
/*358984*/                      OPC_MoveParent,
/*358985*/                      OPC_MoveChild2,
/*358986*/                      OPC_CheckImmAllZerosV,
/*358987*/                      OPC_MoveParent,
/*358988*/                      OPC_CheckType, MVT::v4f32,
/*358990*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*358992*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*358995*/                      OPC_EmitMergeInputChains1_2,
/*358996*/                      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>>)), immAllZerosV:{ *:[v4f32] }) - Complexity = 35
                                // Dst: (VPANDDZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*359009*/                    /*SwitchType*/ 26, MVT::v4i32,// ->359037
/*359011*/                      OPC_MoveParent,
/*359012*/                      OPC_MoveParent,
/*359013*/                      OPC_MoveChild2,
/*359014*/                      OPC_CheckImmAllZerosV,
/*359015*/                      OPC_MoveParent,
/*359016*/                      OPC_CheckType, MVT::v4f32,
/*359018*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*359020*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*359023*/                      OPC_EmitMergeInputChains1_2,
/*359024*/                      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:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v4f32] }) - Complexity = 35
                                // Dst: (VPANDDZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*359037*/                    /*SwitchType*/ 26, MVT::v8i16,// ->359065
/*359039*/                      OPC_MoveParent,
/*359040*/                      OPC_MoveParent,
/*359041*/                      OPC_MoveChild2,
/*359042*/                      OPC_CheckImmAllZerosV,
/*359043*/                      OPC_MoveParent,
/*359044*/                      OPC_CheckType, MVT::v4f32,
/*359046*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*359048*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*359051*/                      OPC_EmitMergeInputChains1_2,
/*359052*/                      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:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v4f32] }) - Complexity = 35
                                // Dst: (VPANDDZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*359065*/                    /*SwitchType*/ 26, MVT::v16i8,// ->359093
/*359067*/                      OPC_MoveParent,
/*359068*/                      OPC_MoveParent,
/*359069*/                      OPC_MoveChild2,
/*359070*/                      OPC_CheckImmAllZerosV,
/*359071*/                      OPC_MoveParent,
/*359072*/                      OPC_CheckType, MVT::v4f32,
/*359074*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*359076*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*359079*/                      OPC_EmitMergeInputChains1_2,
/*359080*/                      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:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v4f32] }) - Complexity = 35
                                // Dst: (VPANDDZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*359093*/                    /*SwitchType*/ 26, MVT::v4i64,// ->359121
/*359095*/                      OPC_MoveParent,
/*359096*/                      OPC_MoveParent,
/*359097*/                      OPC_MoveChild2,
/*359098*/                      OPC_CheckImmAllZerosV,
/*359099*/                      OPC_MoveParent,
/*359100*/                      OPC_CheckType, MVT::v4f64,
/*359102*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*359104*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*359107*/                      OPC_EmitMergeInputChains1_2,
/*359108*/                      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>>)), immAllZerosV:{ *:[v4f64] }) - Complexity = 35
                                // Dst: (VPANDQZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*359121*/                    /*SwitchType*/ 26, MVT::v8i32,// ->359149
/*359123*/                      OPC_MoveParent,
/*359124*/                      OPC_MoveParent,
/*359125*/                      OPC_MoveChild2,
/*359126*/                      OPC_CheckImmAllZerosV,
/*359127*/                      OPC_MoveParent,
/*359128*/                      OPC_CheckType, MVT::v4f64,
/*359130*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*359132*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*359135*/                      OPC_EmitMergeInputChains1_2,
/*359136*/                      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:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v4f64] }) - Complexity = 35
                                // Dst: (VPANDQZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*359149*/                    /*SwitchType*/ 26, MVT::v16i16,// ->359177
/*359151*/                      OPC_MoveParent,
/*359152*/                      OPC_MoveParent,
/*359153*/                      OPC_MoveChild2,
/*359154*/                      OPC_CheckImmAllZerosV,
/*359155*/                      OPC_MoveParent,
/*359156*/                      OPC_CheckType, MVT::v4f64,
/*359158*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*359160*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*359163*/                      OPC_EmitMergeInputChains1_2,
/*359164*/                      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:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v4f64] }) - Complexity = 35
                                // Dst: (VPANDQZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*359177*/                    /*SwitchType*/ 26, MVT::v32i8,// ->359205
/*359179*/                      OPC_MoveParent,
/*359180*/                      OPC_MoveParent,
/*359181*/                      OPC_MoveChild2,
/*359182*/                      OPC_CheckImmAllZerosV,
/*359183*/                      OPC_MoveParent,
/*359184*/                      OPC_CheckType, MVT::v4f64,
/*359186*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*359188*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*359191*/                      OPC_EmitMergeInputChains1_2,
/*359192*/                      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:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v4f64] }) - Complexity = 35
                                // Dst: (VPANDQZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*359205*/                    0, // EndSwitchType
/*359206*/                  /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->359279
/*359209*/                    OPC_RecordMemRef,
/*359210*/                    OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*359211*/                    OPC_CheckFoldableChainNode,
/*359212*/                    OPC_RecordChild1, // #3 = $src2
/*359213*/                    OPC_Scope, 31, /*->359246*/ // 2 children in Scope
/*359215*/                      OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*359217*/                      OPC_MoveParent,
/*359218*/                      OPC_CheckType, MVT::v4i32,
/*359220*/                      OPC_MoveParent,
/*359221*/                      OPC_MoveParent,
/*359222*/                      OPC_MoveChild2,
/*359223*/                      OPC_CheckImmAllZerosV,
/*359224*/                      OPC_MoveParent,
/*359225*/                      OPC_CheckType, MVT::v4f32,
/*359227*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*359229*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*359232*/                      OPC_EmitMergeInputChains1_2,
/*359233*/                      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:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>)), immAllZerosV:{ *:[v4f32] }) - Complexity = 35
                                // Dst: (VPANDDZ128rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*359246*/                    /*Scope*/ 31, /*->359278*/
/*359247*/                      OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*359249*/                      OPC_MoveParent,
/*359250*/                      OPC_CheckType, MVT::v4i64,
/*359252*/                      OPC_MoveParent,
/*359253*/                      OPC_MoveParent,
/*359254*/                      OPC_MoveChild2,
/*359255*/                      OPC_CheckImmAllZerosV,
/*359256*/                      OPC_MoveParent,
/*359257*/                      OPC_CheckType, MVT::v4f64,
/*359259*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*359261*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*359264*/                      OPC_EmitMergeInputChains1_2,
/*359265*/                      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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>)), immAllZerosV:{ *:[v4f64] }) - Complexity = 35
                                // Dst: (VPANDQZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*359278*/                    0, /*End of Scope*/
/*359279*/                  0, // EndSwitchOpcode
/*359280*/                /*Scope*/ 62|128,2/*318*/, /*->359600*/
/*359282*/                  OPC_MoveChild0,
/*359283*/                  OPC_SwitchOpcode /*2 cases */, 72, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->359359
/*359287*/                    OPC_RecordMemRef,
/*359288*/                    OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*359289*/                    OPC_CheckFoldableChainNode,
/*359290*/                    OPC_RecordChild1, // #2 = $src2
/*359291*/                    OPC_Scope, 32, /*->359325*/ // 2 children in Scope
/*359293*/                      OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*359295*/                      OPC_MoveParent,
/*359296*/                      OPC_RecordChild1, // #3 = $src1
/*359297*/                      OPC_CheckType, MVT::v4i32,
/*359299*/                      OPC_MoveParent,
/*359300*/                      OPC_MoveParent,
/*359301*/                      OPC_MoveChild2,
/*359302*/                      OPC_CheckImmAllZerosV,
/*359303*/                      OPC_MoveParent,
/*359304*/                      OPC_CheckType, MVT::v4f32,
/*359306*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*359308*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*359311*/                      OPC_EmitMergeInputChains1_1,
/*359312*/                      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:{ *:[v4i32] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4i32] }:$src1)), immAllZerosV:{ *:[v4f32] }) - Complexity = 35
                                // Dst: (VPANDDZ128rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*359325*/                    /*Scope*/ 32, /*->359358*/
/*359326*/                      OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*359328*/                      OPC_MoveParent,
/*359329*/                      OPC_RecordChild1, // #3 = $src1
/*359330*/                      OPC_CheckType, MVT::v4i64,
/*359332*/                      OPC_MoveParent,
/*359333*/                      OPC_MoveParent,
/*359334*/                      OPC_MoveChild2,
/*359335*/                      OPC_CheckImmAllZerosV,
/*359336*/                      OPC_MoveParent,
/*359337*/                      OPC_CheckType, MVT::v4f64,
/*359339*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*359341*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*359344*/                      OPC_EmitMergeInputChains1_1,
/*359345*/                      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] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src1)), immAllZerosV:{ *:[v4f64] }) - Complexity = 35
                                // Dst: (VPANDQZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*359358*/                    0, /*End of Scope*/
/*359359*/                  /*SwitchOpcode*/ 108|128,1/*236*/, TARGET_VAL(ISD::LOAD),// ->359599
/*359363*/                    OPC_RecordMemRef,
/*359364*/                    OPC_RecordNode, // #1 = 'ld' chained node
/*359365*/                    OPC_CheckFoldableChainNode,
/*359366*/                    OPC_RecordChild1, // #2 = $src2
/*359367*/                    OPC_CheckPredicate, 4, // Predicate_unindexedload
/*359369*/                    OPC_CheckPredicate, 9, // Predicate_load
/*359371*/                    OPC_MoveParent,
/*359372*/                    OPC_RecordChild1, // #3 = $src1
/*359373*/                    OPC_SwitchType /*8 cases */, 26, MVT::v2i64,// ->359402
/*359376*/                      OPC_MoveParent,
/*359377*/                      OPC_MoveParent,
/*359378*/                      OPC_MoveChild2,
/*359379*/                      OPC_CheckImmAllZerosV,
/*359380*/                      OPC_MoveParent,
/*359381*/                      OPC_CheckType, MVT::v4f32,
/*359383*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*359385*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*359388*/                      OPC_EmitMergeInputChains1_1,
/*359389*/                      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)), immAllZerosV:{ *:[v4f32] }) - Complexity = 35
                                // Dst: (VPANDDZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*359402*/                    /*SwitchType*/ 26, MVT::v4i32,// ->359430
/*359404*/                      OPC_MoveParent,
/*359405*/                      OPC_MoveParent,
/*359406*/                      OPC_MoveChild2,
/*359407*/                      OPC_CheckImmAllZerosV,
/*359408*/                      OPC_MoveParent,
/*359409*/                      OPC_CheckType, MVT::v4f32,
/*359411*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*359413*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*359416*/                      OPC_EmitMergeInputChains1_1,
/*359417*/                      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:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4i32] }:$src1)), immAllZerosV:{ *:[v4f32] }) - Complexity = 35
                                // Dst: (VPANDDZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*359430*/                    /*SwitchType*/ 26, MVT::v8i16,// ->359458
/*359432*/                      OPC_MoveParent,
/*359433*/                      OPC_MoveParent,
/*359434*/                      OPC_MoveChild2,
/*359435*/                      OPC_CheckImmAllZerosV,
/*359436*/                      OPC_MoveParent,
/*359437*/                      OPC_CheckType, MVT::v4f32,
/*359439*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*359441*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*359444*/                      OPC_EmitMergeInputChains1_1,
/*359445*/                      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:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1)), immAllZerosV:{ *:[v4f32] }) - Complexity = 35
                                // Dst: (VPANDDZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*359458*/                    /*SwitchType*/ 26, MVT::v16i8,// ->359486
/*359460*/                      OPC_MoveParent,
/*359461*/                      OPC_MoveParent,
/*359462*/                      OPC_MoveChild2,
/*359463*/                      OPC_CheckImmAllZerosV,
/*359464*/                      OPC_MoveParent,
/*359465*/                      OPC_CheckType, MVT::v4f32,
/*359467*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*359469*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*359472*/                      OPC_EmitMergeInputChains1_1,
/*359473*/                      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:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v16i8] }:$src1)), immAllZerosV:{ *:[v4f32] }) - Complexity = 35
                                // Dst: (VPANDDZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*359486*/                    /*SwitchType*/ 26, MVT::v4i64,// ->359514
/*359488*/                      OPC_MoveParent,
/*359489*/                      OPC_MoveParent,
/*359490*/                      OPC_MoveChild2,
/*359491*/                      OPC_CheckImmAllZerosV,
/*359492*/                      OPC_MoveParent,
/*359493*/                      OPC_CheckType, MVT::v4f64,
/*359495*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*359497*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*359500*/                      OPC_EmitMergeInputChains1_1,
/*359501*/                      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)), immAllZerosV:{ *:[v4f64] }) - Complexity = 35
                                // Dst: (VPANDQZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*359514*/                    /*SwitchType*/ 26, MVT::v8i32,// ->359542
/*359516*/                      OPC_MoveParent,
/*359517*/                      OPC_MoveParent,
/*359518*/                      OPC_MoveChild2,
/*359519*/                      OPC_CheckImmAllZerosV,
/*359520*/                      OPC_MoveParent,
/*359521*/                      OPC_CheckType, MVT::v4f64,
/*359523*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*359525*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*359528*/                      OPC_EmitMergeInputChains1_1,
/*359529*/                      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:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8i32] }:$src1)), immAllZerosV:{ *:[v4f64] }) - Complexity = 35
                                // Dst: (VPANDQZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*359542*/                    /*SwitchType*/ 26, MVT::v16i16,// ->359570
/*359544*/                      OPC_MoveParent,
/*359545*/                      OPC_MoveParent,
/*359546*/                      OPC_MoveChild2,
/*359547*/                      OPC_CheckImmAllZerosV,
/*359548*/                      OPC_MoveParent,
/*359549*/                      OPC_CheckType, MVT::v4f64,
/*359551*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*359553*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*359556*/                      OPC_EmitMergeInputChains1_1,
/*359557*/                      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:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1)), immAllZerosV:{ *:[v4f64] }) - Complexity = 35
                                // Dst: (VPANDQZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*359570*/                    /*SwitchType*/ 26, MVT::v32i8,// ->359598
/*359572*/                      OPC_MoveParent,
/*359573*/                      OPC_MoveParent,
/*359574*/                      OPC_MoveChild2,
/*359575*/                      OPC_CheckImmAllZerosV,
/*359576*/                      OPC_MoveParent,
/*359577*/                      OPC_CheckType, MVT::v4f64,
/*359579*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*359581*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*359584*/                      OPC_EmitMergeInputChains1_1,
/*359585*/                      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:{ *:[v32i8] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v32i8] }:$src1)), immAllZerosV:{ *:[v4f64] }) - Complexity = 35
                                // Dst: (VPANDQZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*359598*/                    0, // EndSwitchType
/*359599*/                  0, // EndSwitchOpcode
/*359600*/                0, /*End of Scope*/
/*359601*/              /*SwitchOpcode*/ 0|128,5/*640*/, TARGET_VAL(ISD::OR),// ->360245
/*359605*/                OPC_Scope, 60|128,2/*316*/, /*->359924*/ // 2 children in Scope
/*359608*/                  OPC_RecordChild0, // #1 = $src1
/*359609*/                  OPC_MoveChild1,
/*359610*/                  OPC_SwitchOpcode /*2 cases */, 107|128,1/*235*/, TARGET_VAL(ISD::LOAD),// ->359850
/*359615*/                    OPC_RecordMemRef,
/*359616*/                    OPC_RecordNode, // #2 = 'ld' chained node
/*359617*/                    OPC_CheckFoldableChainNode,
/*359618*/                    OPC_RecordChild1, // #3 = $src2
/*359619*/                    OPC_CheckPredicate, 4, // Predicate_unindexedload
/*359621*/                    OPC_CheckPredicate, 9, // Predicate_load
/*359623*/                    OPC_MoveParent,
/*359624*/                    OPC_SwitchType /*8 cases */, 26, MVT::v2i64,// ->359653
/*359627*/                      OPC_MoveParent,
/*359628*/                      OPC_MoveParent,
/*359629*/                      OPC_MoveChild2,
/*359630*/                      OPC_CheckImmAllZerosV,
/*359631*/                      OPC_MoveParent,
/*359632*/                      OPC_CheckType, MVT::v4f32,
/*359634*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*359636*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*359639*/                      OPC_EmitMergeInputChains1_2,
/*359640*/                      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>>)), immAllZerosV:{ *:[v4f32] }) - Complexity = 35
                                // Dst: (VPORDZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*359653*/                    /*SwitchType*/ 26, MVT::v4i32,// ->359681
/*359655*/                      OPC_MoveParent,
/*359656*/                      OPC_MoveParent,
/*359657*/                      OPC_MoveChild2,
/*359658*/                      OPC_CheckImmAllZerosV,
/*359659*/                      OPC_MoveParent,
/*359660*/                      OPC_CheckType, MVT::v4f32,
/*359662*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*359664*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*359667*/                      OPC_EmitMergeInputChains1_2,
/*359668*/                      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:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v4f32] }) - Complexity = 35
                                // Dst: (VPORDZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*359681*/                    /*SwitchType*/ 26, MVT::v8i16,// ->359709
/*359683*/                      OPC_MoveParent,
/*359684*/                      OPC_MoveParent,
/*359685*/                      OPC_MoveChild2,
/*359686*/                      OPC_CheckImmAllZerosV,
/*359687*/                      OPC_MoveParent,
/*359688*/                      OPC_CheckType, MVT::v4f32,
/*359690*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*359692*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*359695*/                      OPC_EmitMergeInputChains1_2,
/*359696*/                      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:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v4f32] }) - Complexity = 35
                                // Dst: (VPORDZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*359709*/                    /*SwitchType*/ 26, MVT::v16i8,// ->359737
/*359711*/                      OPC_MoveParent,
/*359712*/                      OPC_MoveParent,
/*359713*/                      OPC_MoveChild2,
/*359714*/                      OPC_CheckImmAllZerosV,
/*359715*/                      OPC_MoveParent,
/*359716*/                      OPC_CheckType, MVT::v4f32,
/*359718*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*359720*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*359723*/                      OPC_EmitMergeInputChains1_2,
/*359724*/                      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:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v4f32] }) - Complexity = 35
                                // Dst: (VPORDZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*359737*/                    /*SwitchType*/ 26, MVT::v4i64,// ->359765
/*359739*/                      OPC_MoveParent,
/*359740*/                      OPC_MoveParent,
/*359741*/                      OPC_MoveChild2,
/*359742*/                      OPC_CheckImmAllZerosV,
/*359743*/                      OPC_MoveParent,
/*359744*/                      OPC_CheckType, MVT::v4f64,
/*359746*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*359748*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*359751*/                      OPC_EmitMergeInputChains1_2,
/*359752*/                      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>>)), immAllZerosV:{ *:[v4f64] }) - Complexity = 35
                                // Dst: (VPORQZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*359765*/                    /*SwitchType*/ 26, MVT::v8i32,// ->359793
/*359767*/                      OPC_MoveParent,
/*359768*/                      OPC_MoveParent,
/*359769*/                      OPC_MoveChild2,
/*359770*/                      OPC_CheckImmAllZerosV,
/*359771*/                      OPC_MoveParent,
/*359772*/                      OPC_CheckType, MVT::v4f64,
/*359774*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*359776*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*359779*/                      OPC_EmitMergeInputChains1_2,
/*359780*/                      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:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v4f64] }) - Complexity = 35
                                // Dst: (VPORQZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*359793*/                    /*SwitchType*/ 26, MVT::v16i16,// ->359821
/*359795*/                      OPC_MoveParent,
/*359796*/                      OPC_MoveParent,
/*359797*/                      OPC_MoveChild2,
/*359798*/                      OPC_CheckImmAllZerosV,
/*359799*/                      OPC_MoveParent,
/*359800*/                      OPC_CheckType, MVT::v4f64,
/*359802*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*359804*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*359807*/                      OPC_EmitMergeInputChains1_2,
/*359808*/                      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:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v4f64] }) - Complexity = 35
                                // Dst: (VPORQZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*359821*/                    /*SwitchType*/ 26, MVT::v32i8,// ->359849
/*359823*/                      OPC_MoveParent,
/*359824*/                      OPC_MoveParent,
/*359825*/                      OPC_MoveChild2,
/*359826*/                      OPC_CheckImmAllZerosV,
/*359827*/                      OPC_MoveParent,
/*359828*/                      OPC_CheckType, MVT::v4f64,
/*359830*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*359832*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*359835*/                      OPC_EmitMergeInputChains1_2,
/*359836*/                      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:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v4f64] }) - Complexity = 35
                                // Dst: (VPORQZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*359849*/                    0, // EndSwitchType
/*359850*/                  /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->359923
/*359853*/                    OPC_RecordMemRef,
/*359854*/                    OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*359855*/                    OPC_CheckFoldableChainNode,
/*359856*/                    OPC_RecordChild1, // #3 = $src2
/*359857*/                    OPC_Scope, 31, /*->359890*/ // 2 children in Scope
/*359859*/                      OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*359861*/                      OPC_MoveParent,
/*359862*/                      OPC_CheckType, MVT::v4i32,
/*359864*/                      OPC_MoveParent,
/*359865*/                      OPC_MoveParent,
/*359866*/                      OPC_MoveChild2,
/*359867*/                      OPC_CheckImmAllZerosV,
/*359868*/                      OPC_MoveParent,
/*359869*/                      OPC_CheckType, MVT::v4f32,
/*359871*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*359873*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*359876*/                      OPC_EmitMergeInputChains1_2,
/*359877*/                      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:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>)), immAllZerosV:{ *:[v4f32] }) - Complexity = 35
                                // Dst: (VPORDZ128rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*359890*/                    /*Scope*/ 31, /*->359922*/
/*359891*/                      OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*359893*/                      OPC_MoveParent,
/*359894*/                      OPC_CheckType, MVT::v4i64,
/*359896*/                      OPC_MoveParent,
/*359897*/                      OPC_MoveParent,
/*359898*/                      OPC_MoveChild2,
/*359899*/                      OPC_CheckImmAllZerosV,
/*359900*/                      OPC_MoveParent,
/*359901*/                      OPC_CheckType, MVT::v4f64,
/*359903*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*359905*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*359908*/                      OPC_EmitMergeInputChains1_2,
/*359909*/                      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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>)), immAllZerosV:{ *:[v4f64] }) - Complexity = 35
                                // Dst: (VPORQZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*359922*/                    0, /*End of Scope*/
/*359923*/                  0, // EndSwitchOpcode
/*359924*/                /*Scope*/ 62|128,2/*318*/, /*->360244*/
/*359926*/                  OPC_MoveChild0,
/*359927*/                  OPC_SwitchOpcode /*2 cases */, 108|128,1/*236*/, TARGET_VAL(ISD::LOAD),// ->360168
/*359932*/                    OPC_RecordMemRef,
/*359933*/                    OPC_RecordNode, // #1 = 'ld' chained node
/*359934*/                    OPC_CheckFoldableChainNode,
/*359935*/                    OPC_RecordChild1, // #2 = $src2
/*359936*/                    OPC_CheckPredicate, 4, // Predicate_unindexedload
/*359938*/                    OPC_CheckPredicate, 9, // Predicate_load
/*359940*/                    OPC_MoveParent,
/*359941*/                    OPC_RecordChild1, // #3 = $src1
/*359942*/                    OPC_SwitchType /*8 cases */, 26, MVT::v2i64,// ->359971
/*359945*/                      OPC_MoveParent,
/*359946*/                      OPC_MoveParent,
/*359947*/                      OPC_MoveChild2,
/*359948*/                      OPC_CheckImmAllZerosV,
/*359949*/                      OPC_MoveParent,
/*359950*/                      OPC_CheckType, MVT::v4f32,
/*359952*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*359954*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*359957*/                      OPC_EmitMergeInputChains1_1,
/*359958*/                      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)), immAllZerosV:{ *:[v4f32] }) - Complexity = 35
                                // Dst: (VPORDZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*359971*/                    /*SwitchType*/ 26, MVT::v4i32,// ->359999
/*359973*/                      OPC_MoveParent,
/*359974*/                      OPC_MoveParent,
/*359975*/                      OPC_MoveChild2,
/*359976*/                      OPC_CheckImmAllZerosV,
/*359977*/                      OPC_MoveParent,
/*359978*/                      OPC_CheckType, MVT::v4f32,
/*359980*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*359982*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*359985*/                      OPC_EmitMergeInputChains1_1,
/*359986*/                      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:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4i32] }:$src1)), immAllZerosV:{ *:[v4f32] }) - Complexity = 35
                                // Dst: (VPORDZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*359999*/                    /*SwitchType*/ 26, MVT::v8i16,// ->360027
/*360001*/                      OPC_MoveParent,
/*360002*/                      OPC_MoveParent,
/*360003*/                      OPC_MoveChild2,
/*360004*/                      OPC_CheckImmAllZerosV,
/*360005*/                      OPC_MoveParent,
/*360006*/                      OPC_CheckType, MVT::v4f32,
/*360008*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*360010*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*360013*/                      OPC_EmitMergeInputChains1_1,
/*360014*/                      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:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1)), immAllZerosV:{ *:[v4f32] }) - Complexity = 35
                                // Dst: (VPORDZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*360027*/                    /*SwitchType*/ 26, MVT::v16i8,// ->360055
/*360029*/                      OPC_MoveParent,
/*360030*/                      OPC_MoveParent,
/*360031*/                      OPC_MoveChild2,
/*360032*/                      OPC_CheckImmAllZerosV,
/*360033*/                      OPC_MoveParent,
/*360034*/                      OPC_CheckType, MVT::v4f32,
/*360036*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*360038*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*360041*/                      OPC_EmitMergeInputChains1_1,
/*360042*/                      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:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v16i8] }:$src1)), immAllZerosV:{ *:[v4f32] }) - Complexity = 35
                                // Dst: (VPORDZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*360055*/                    /*SwitchType*/ 26, MVT::v4i64,// ->360083
/*360057*/                      OPC_MoveParent,
/*360058*/                      OPC_MoveParent,
/*360059*/                      OPC_MoveChild2,
/*360060*/                      OPC_CheckImmAllZerosV,
/*360061*/                      OPC_MoveParent,
/*360062*/                      OPC_CheckType, MVT::v4f64,
/*360064*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*360066*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*360069*/                      OPC_EmitMergeInputChains1_1,
/*360070*/                      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)), immAllZerosV:{ *:[v4f64] }) - Complexity = 35
                                // Dst: (VPORQZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*360083*/                    /*SwitchType*/ 26, MVT::v8i32,// ->360111
/*360085*/                      OPC_MoveParent,
/*360086*/                      OPC_MoveParent,
/*360087*/                      OPC_MoveChild2,
/*360088*/                      OPC_CheckImmAllZerosV,
/*360089*/                      OPC_MoveParent,
/*360090*/                      OPC_CheckType, MVT::v4f64,
/*360092*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*360094*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*360097*/                      OPC_EmitMergeInputChains1_1,
/*360098*/                      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:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8i32] }:$src1)), immAllZerosV:{ *:[v4f64] }) - Complexity = 35
                                // Dst: (VPORQZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*360111*/                    /*SwitchType*/ 26, MVT::v16i16,// ->360139
/*360113*/                      OPC_MoveParent,
/*360114*/                      OPC_MoveParent,
/*360115*/                      OPC_MoveChild2,
/*360116*/                      OPC_CheckImmAllZerosV,
/*360117*/                      OPC_MoveParent,
/*360118*/                      OPC_CheckType, MVT::v4f64,
/*360120*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*360122*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*360125*/                      OPC_EmitMergeInputChains1_1,
/*360126*/                      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:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1)), immAllZerosV:{ *:[v4f64] }) - Complexity = 35
                                // Dst: (VPORQZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*360139*/                    /*SwitchType*/ 26, MVT::v32i8,// ->360167
/*360141*/                      OPC_MoveParent,
/*360142*/                      OPC_MoveParent,
/*360143*/                      OPC_MoveChild2,
/*360144*/                      OPC_CheckImmAllZerosV,
/*360145*/                      OPC_MoveParent,
/*360146*/                      OPC_CheckType, MVT::v4f64,
/*360148*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*360150*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*360153*/                      OPC_EmitMergeInputChains1_1,
/*360154*/                      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:{ *:[v32i8] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v32i8] }:$src1)), immAllZerosV:{ *:[v4f64] }) - Complexity = 35
                                // Dst: (VPORQZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*360167*/                    0, // EndSwitchType
/*360168*/                  /*SwitchOpcode*/ 72, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->360243
/*360171*/                    OPC_RecordMemRef,
/*360172*/                    OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*360173*/                    OPC_CheckFoldableChainNode,
/*360174*/                    OPC_RecordChild1, // #2 = $src2
/*360175*/                    OPC_Scope, 32, /*->360209*/ // 2 children in Scope
/*360177*/                      OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*360179*/                      OPC_MoveParent,
/*360180*/                      OPC_RecordChild1, // #3 = $src1
/*360181*/                      OPC_CheckType, MVT::v4i32,
/*360183*/                      OPC_MoveParent,
/*360184*/                      OPC_MoveParent,
/*360185*/                      OPC_MoveChild2,
/*360186*/                      OPC_CheckImmAllZerosV,
/*360187*/                      OPC_MoveParent,
/*360188*/                      OPC_CheckType, MVT::v4f32,
/*360190*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*360192*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*360195*/                      OPC_EmitMergeInputChains1_1,
/*360196*/                      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:{ *:[v4i32] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4i32] }:$src1)), immAllZerosV:{ *:[v4f32] }) - Complexity = 35
                                // Dst: (VPORDZ128rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*360209*/                    /*Scope*/ 32, /*->360242*/
/*360210*/                      OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*360212*/                      OPC_MoveParent,
/*360213*/                      OPC_RecordChild1, // #3 = $src1
/*360214*/                      OPC_CheckType, MVT::v4i64,
/*360216*/                      OPC_MoveParent,
/*360217*/                      OPC_MoveParent,
/*360218*/                      OPC_MoveChild2,
/*360219*/                      OPC_CheckImmAllZerosV,
/*360220*/                      OPC_MoveParent,
/*360221*/                      OPC_CheckType, MVT::v4f64,
/*360223*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*360225*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*360228*/                      OPC_EmitMergeInputChains1_1,
/*360229*/                      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] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src1)), immAllZerosV:{ *:[v4f64] }) - Complexity = 35
                                // Dst: (VPORQZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*360242*/                    0, /*End of Scope*/
/*360243*/                  0, // EndSwitchOpcode
/*360244*/                0, /*End of Scope*/
/*360245*/              /*SwitchOpcode*/ 0|128,5/*640*/, TARGET_VAL(ISD::XOR),// ->360889
/*360249*/                OPC_Scope, 60|128,2/*316*/, /*->360568*/ // 2 children in Scope
/*360252*/                  OPC_RecordChild0, // #1 = $src1
/*360253*/                  OPC_MoveChild1,
/*360254*/                  OPC_SwitchOpcode /*2 cases */, 107|128,1/*235*/, TARGET_VAL(ISD::LOAD),// ->360494
/*360259*/                    OPC_RecordMemRef,
/*360260*/                    OPC_RecordNode, // #2 = 'ld' chained node
/*360261*/                    OPC_CheckFoldableChainNode,
/*360262*/                    OPC_RecordChild1, // #3 = $src2
/*360263*/                    OPC_CheckPredicate, 4, // Predicate_unindexedload
/*360265*/                    OPC_CheckPredicate, 9, // Predicate_load
/*360267*/                    OPC_MoveParent,
/*360268*/                    OPC_SwitchType /*8 cases */, 26, MVT::v2i64,// ->360297
/*360271*/                      OPC_MoveParent,
/*360272*/                      OPC_MoveParent,
/*360273*/                      OPC_MoveChild2,
/*360274*/                      OPC_CheckImmAllZerosV,
/*360275*/                      OPC_MoveParent,
/*360276*/                      OPC_CheckType, MVT::v4f32,
/*360278*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*360280*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*360283*/                      OPC_EmitMergeInputChains1_2,
/*360284*/                      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>>)), immAllZerosV:{ *:[v4f32] }) - Complexity = 35
                                // Dst: (VPXORDZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*360297*/                    /*SwitchType*/ 26, MVT::v4i32,// ->360325
/*360299*/                      OPC_MoveParent,
/*360300*/                      OPC_MoveParent,
/*360301*/                      OPC_MoveChild2,
/*360302*/                      OPC_CheckImmAllZerosV,
/*360303*/                      OPC_MoveParent,
/*360304*/                      OPC_CheckType, MVT::v4f32,
/*360306*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*360308*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*360311*/                      OPC_EmitMergeInputChains1_2,
/*360312*/                      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:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v4f32] }) - Complexity = 35
                                // Dst: (VPXORDZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*360325*/                    /*SwitchType*/ 26, MVT::v8i16,// ->360353
/*360327*/                      OPC_MoveParent,
/*360328*/                      OPC_MoveParent,
/*360329*/                      OPC_MoveChild2,
/*360330*/                      OPC_CheckImmAllZerosV,
/*360331*/                      OPC_MoveParent,
/*360332*/                      OPC_CheckType, MVT::v4f32,
/*360334*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*360336*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*360339*/                      OPC_EmitMergeInputChains1_2,
/*360340*/                      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:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v4f32] }) - Complexity = 35
                                // Dst: (VPXORDZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*360353*/                    /*SwitchType*/ 26, MVT::v16i8,// ->360381
/*360355*/                      OPC_MoveParent,
/*360356*/                      OPC_MoveParent,
/*360357*/                      OPC_MoveChild2,
/*360358*/                      OPC_CheckImmAllZerosV,
/*360359*/                      OPC_MoveParent,
/*360360*/                      OPC_CheckType, MVT::v4f32,
/*360362*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*360364*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*360367*/                      OPC_EmitMergeInputChains1_2,
/*360368*/                      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:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v4f32] }) - Complexity = 35
                                // Dst: (VPXORDZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*360381*/                    /*SwitchType*/ 26, MVT::v4i64,// ->360409
/*360383*/                      OPC_MoveParent,
/*360384*/                      OPC_MoveParent,
/*360385*/                      OPC_MoveChild2,
/*360386*/                      OPC_CheckImmAllZerosV,
/*360387*/                      OPC_MoveParent,
/*360388*/                      OPC_CheckType, MVT::v4f64,
/*360390*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*360392*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*360395*/                      OPC_EmitMergeInputChains1_2,
/*360396*/                      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>>)), immAllZerosV:{ *:[v4f64] }) - Complexity = 35
                                // Dst: (VPXORQZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*360409*/                    /*SwitchType*/ 26, MVT::v8i32,// ->360437
/*360411*/                      OPC_MoveParent,
/*360412*/                      OPC_MoveParent,
/*360413*/                      OPC_MoveChild2,
/*360414*/                      OPC_CheckImmAllZerosV,
/*360415*/                      OPC_MoveParent,
/*360416*/                      OPC_CheckType, MVT::v4f64,
/*360418*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*360420*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*360423*/                      OPC_EmitMergeInputChains1_2,
/*360424*/                      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:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v4f64] }) - Complexity = 35
                                // Dst: (VPXORQZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*360437*/                    /*SwitchType*/ 26, MVT::v16i16,// ->360465
/*360439*/                      OPC_MoveParent,
/*360440*/                      OPC_MoveParent,
/*360441*/                      OPC_MoveChild2,
/*360442*/                      OPC_CheckImmAllZerosV,
/*360443*/                      OPC_MoveParent,
/*360444*/                      OPC_CheckType, MVT::v4f64,
/*360446*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*360448*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*360451*/                      OPC_EmitMergeInputChains1_2,
/*360452*/                      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:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v4f64] }) - Complexity = 35
                                // Dst: (VPXORQZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*360465*/                    /*SwitchType*/ 26, MVT::v32i8,// ->360493
/*360467*/                      OPC_MoveParent,
/*360468*/                      OPC_MoveParent,
/*360469*/                      OPC_MoveChild2,
/*360470*/                      OPC_CheckImmAllZerosV,
/*360471*/                      OPC_MoveParent,
/*360472*/                      OPC_CheckType, MVT::v4f64,
/*360474*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*360476*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*360479*/                      OPC_EmitMergeInputChains1_2,
/*360480*/                      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:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v4f64] }) - Complexity = 35
                                // Dst: (VPXORQZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*360493*/                    0, // EndSwitchType
/*360494*/                  /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->360567
/*360497*/                    OPC_RecordMemRef,
/*360498*/                    OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*360499*/                    OPC_CheckFoldableChainNode,
/*360500*/                    OPC_RecordChild1, // #3 = $src2
/*360501*/                    OPC_Scope, 31, /*->360534*/ // 2 children in Scope
/*360503*/                      OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*360505*/                      OPC_MoveParent,
/*360506*/                      OPC_CheckType, MVT::v4i32,
/*360508*/                      OPC_MoveParent,
/*360509*/                      OPC_MoveParent,
/*360510*/                      OPC_MoveChild2,
/*360511*/                      OPC_CheckImmAllZerosV,
/*360512*/                      OPC_MoveParent,
/*360513*/                      OPC_CheckType, MVT::v4f32,
/*360515*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*360517*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*360520*/                      OPC_EmitMergeInputChains1_2,
/*360521*/                      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:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>)), immAllZerosV:{ *:[v4f32] }) - Complexity = 35
                                // Dst: (VPXORDZ128rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*360534*/                    /*Scope*/ 31, /*->360566*/
/*360535*/                      OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*360537*/                      OPC_MoveParent,
/*360538*/                      OPC_CheckType, MVT::v4i64,
/*360540*/                      OPC_MoveParent,
/*360541*/                      OPC_MoveParent,
/*360542*/                      OPC_MoveChild2,
/*360543*/                      OPC_CheckImmAllZerosV,
/*360544*/                      OPC_MoveParent,
/*360545*/                      OPC_CheckType, MVT::v4f64,
/*360547*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*360549*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*360552*/                      OPC_EmitMergeInputChains1_2,
/*360553*/                      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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>)), immAllZerosV:{ *:[v4f64] }) - Complexity = 35
                                // Dst: (VPXORQZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*360566*/                    0, /*End of Scope*/
/*360567*/                  0, // EndSwitchOpcode
/*360568*/                /*Scope*/ 62|128,2/*318*/, /*->360888*/
/*360570*/                  OPC_MoveChild0,
/*360571*/                  OPC_SwitchOpcode /*2 cases */, 108|128,1/*236*/, TARGET_VAL(ISD::LOAD),// ->360812
/*360576*/                    OPC_RecordMemRef,
/*360577*/                    OPC_RecordNode, // #1 = 'ld' chained node
/*360578*/                    OPC_CheckFoldableChainNode,
/*360579*/                    OPC_RecordChild1, // #2 = $src2
/*360580*/                    OPC_CheckPredicate, 4, // Predicate_unindexedload
/*360582*/                    OPC_CheckPredicate, 9, // Predicate_load
/*360584*/                    OPC_MoveParent,
/*360585*/                    OPC_RecordChild1, // #3 = $src1
/*360586*/                    OPC_SwitchType /*8 cases */, 26, MVT::v2i64,// ->360615
/*360589*/                      OPC_MoveParent,
/*360590*/                      OPC_MoveParent,
/*360591*/                      OPC_MoveChild2,
/*360592*/                      OPC_CheckImmAllZerosV,
/*360593*/                      OPC_MoveParent,
/*360594*/                      OPC_CheckType, MVT::v4f32,
/*360596*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*360598*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*360601*/                      OPC_EmitMergeInputChains1_1,
/*360602*/                      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)), immAllZerosV:{ *:[v4f32] }) - Complexity = 35
                                // Dst: (VPXORDZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*360615*/                    /*SwitchType*/ 26, MVT::v4i32,// ->360643
/*360617*/                      OPC_MoveParent,
/*360618*/                      OPC_MoveParent,
/*360619*/                      OPC_MoveChild2,
/*360620*/                      OPC_CheckImmAllZerosV,
/*360621*/                      OPC_MoveParent,
/*360622*/                      OPC_CheckType, MVT::v4f32,
/*360624*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*360626*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*360629*/                      OPC_EmitMergeInputChains1_1,
/*360630*/                      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:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4i32] }:$src1)), immAllZerosV:{ *:[v4f32] }) - Complexity = 35
                                // Dst: (VPXORDZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*360643*/                    /*SwitchType*/ 26, MVT::v8i16,// ->360671
/*360645*/                      OPC_MoveParent,
/*360646*/                      OPC_MoveParent,
/*360647*/                      OPC_MoveChild2,
/*360648*/                      OPC_CheckImmAllZerosV,
/*360649*/                      OPC_MoveParent,
/*360650*/                      OPC_CheckType, MVT::v4f32,
/*360652*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*360654*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*360657*/                      OPC_EmitMergeInputChains1_1,
/*360658*/                      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:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1)), immAllZerosV:{ *:[v4f32] }) - Complexity = 35
                                // Dst: (VPXORDZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*360671*/                    /*SwitchType*/ 26, MVT::v16i8,// ->360699
/*360673*/                      OPC_MoveParent,
/*360674*/                      OPC_MoveParent,
/*360675*/                      OPC_MoveChild2,
/*360676*/                      OPC_CheckImmAllZerosV,
/*360677*/                      OPC_MoveParent,
/*360678*/                      OPC_CheckType, MVT::v4f32,
/*360680*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*360682*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*360685*/                      OPC_EmitMergeInputChains1_1,
/*360686*/                      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:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v16i8] }:$src1)), immAllZerosV:{ *:[v4f32] }) - Complexity = 35
                                // Dst: (VPXORDZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*360699*/                    /*SwitchType*/ 26, MVT::v4i64,// ->360727
/*360701*/                      OPC_MoveParent,
/*360702*/                      OPC_MoveParent,
/*360703*/                      OPC_MoveChild2,
/*360704*/                      OPC_CheckImmAllZerosV,
/*360705*/                      OPC_MoveParent,
/*360706*/                      OPC_CheckType, MVT::v4f64,
/*360708*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*360710*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*360713*/                      OPC_EmitMergeInputChains1_1,
/*360714*/                      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)), immAllZerosV:{ *:[v4f64] }) - Complexity = 35
                                // Dst: (VPXORQZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*360727*/                    /*SwitchType*/ 26, MVT::v8i32,// ->360755
/*360729*/                      OPC_MoveParent,
/*360730*/                      OPC_MoveParent,
/*360731*/                      OPC_MoveChild2,
/*360732*/                      OPC_CheckImmAllZerosV,
/*360733*/                      OPC_MoveParent,
/*360734*/                      OPC_CheckType, MVT::v4f64,
/*360736*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*360738*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*360741*/                      OPC_EmitMergeInputChains1_1,
/*360742*/                      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:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8i32] }:$src1)), immAllZerosV:{ *:[v4f64] }) - Complexity = 35
                                // Dst: (VPXORQZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*360755*/                    /*SwitchType*/ 26, MVT::v16i16,// ->360783
/*360757*/                      OPC_MoveParent,
/*360758*/                      OPC_MoveParent,
/*360759*/                      OPC_MoveChild2,
/*360760*/                      OPC_CheckImmAllZerosV,
/*360761*/                      OPC_MoveParent,
/*360762*/                      OPC_CheckType, MVT::v4f64,
/*360764*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*360766*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*360769*/                      OPC_EmitMergeInputChains1_1,
/*360770*/                      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:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1)), immAllZerosV:{ *:[v4f64] }) - Complexity = 35
                                // Dst: (VPXORQZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*360783*/                    /*SwitchType*/ 26, MVT::v32i8,// ->360811
/*360785*/                      OPC_MoveParent,
/*360786*/                      OPC_MoveParent,
/*360787*/                      OPC_MoveChild2,
/*360788*/                      OPC_CheckImmAllZerosV,
/*360789*/                      OPC_MoveParent,
/*360790*/                      OPC_CheckType, MVT::v4f64,
/*360792*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*360794*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*360797*/                      OPC_EmitMergeInputChains1_1,
/*360798*/                      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:{ *:[v32i8] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v32i8] }:$src1)), immAllZerosV:{ *:[v4f64] }) - Complexity = 35
                                // Dst: (VPXORQZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*360811*/                    0, // EndSwitchType
/*360812*/                  /*SwitchOpcode*/ 72, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->360887
/*360815*/                    OPC_RecordMemRef,
/*360816*/                    OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*360817*/                    OPC_CheckFoldableChainNode,
/*360818*/                    OPC_RecordChild1, // #2 = $src2
/*360819*/                    OPC_Scope, 32, /*->360853*/ // 2 children in Scope
/*360821*/                      OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*360823*/                      OPC_MoveParent,
/*360824*/                      OPC_RecordChild1, // #3 = $src1
/*360825*/                      OPC_CheckType, MVT::v4i32,
/*360827*/                      OPC_MoveParent,
/*360828*/                      OPC_MoveParent,
/*360829*/                      OPC_MoveChild2,
/*360830*/                      OPC_CheckImmAllZerosV,
/*360831*/                      OPC_MoveParent,
/*360832*/                      OPC_CheckType, MVT::v4f32,
/*360834*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*360836*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*360839*/                      OPC_EmitMergeInputChains1_1,
/*360840*/                      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:{ *:[v4i32] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4i32] }:$src1)), immAllZerosV:{ *:[v4f32] }) - Complexity = 35
                                // Dst: (VPXORDZ128rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*360853*/                    /*Scope*/ 32, /*->360886*/
/*360854*/                      OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*360856*/                      OPC_MoveParent,
/*360857*/                      OPC_RecordChild1, // #3 = $src1
/*360858*/                      OPC_CheckType, MVT::v4i64,
/*360860*/                      OPC_MoveParent,
/*360861*/                      OPC_MoveParent,
/*360862*/                      OPC_MoveChild2,
/*360863*/                      OPC_CheckImmAllZerosV,
/*360864*/                      OPC_MoveParent,
/*360865*/                      OPC_CheckType, MVT::v4f64,
/*360867*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*360869*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*360872*/                      OPC_EmitMergeInputChains1_1,
/*360873*/                      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] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src1)), immAllZerosV:{ *:[v4f64] }) - Complexity = 35
                                // Dst: (VPXORQZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*360886*/                    0, /*End of Scope*/
/*360887*/                  0, // EndSwitchOpcode
/*360888*/                0, /*End of Scope*/
/*360889*/              /*SwitchOpcode*/ 60|128,2/*316*/, TARGET_VAL(X86ISD::ANDNP),// ->361209
/*360893*/                OPC_RecordChild0, // #1 = $src1
/*360894*/                OPC_MoveChild1,
/*360895*/                OPC_SwitchOpcode /*2 cases */, 107|128,1/*235*/, TARGET_VAL(ISD::LOAD),// ->361135
/*360900*/                  OPC_RecordMemRef,
/*360901*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*360902*/                  OPC_CheckFoldableChainNode,
/*360903*/                  OPC_RecordChild1, // #3 = $src2
/*360904*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*360906*/                  OPC_CheckPredicate, 9, // Predicate_load
/*360908*/                  OPC_MoveParent,
/*360909*/                  OPC_SwitchType /*8 cases */, 26, MVT::v2i64,// ->360938
/*360912*/                    OPC_MoveParent,
/*360913*/                    OPC_MoveParent,
/*360914*/                    OPC_MoveChild2,
/*360915*/                    OPC_CheckImmAllZerosV,
/*360916*/                    OPC_MoveParent,
/*360917*/                    OPC_CheckType, MVT::v4f32,
/*360919*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*360921*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*360924*/                    OPC_EmitMergeInputChains1_2,
/*360925*/                    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>>)), immAllZerosV:{ *:[v4f32] }) - Complexity = 35
                              // Dst: (VPANDNDZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*360938*/                  /*SwitchType*/ 26, MVT::v4i32,// ->360966
/*360940*/                    OPC_MoveParent,
/*360941*/                    OPC_MoveParent,
/*360942*/                    OPC_MoveChild2,
/*360943*/                    OPC_CheckImmAllZerosV,
/*360944*/                    OPC_MoveParent,
/*360945*/                    OPC_CheckType, MVT::v4f32,
/*360947*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*360949*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*360952*/                    OPC_EmitMergeInputChains1_2,
/*360953*/                    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:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v4f32] }) - Complexity = 35
                              // Dst: (VPANDNDZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*360966*/                  /*SwitchType*/ 26, MVT::v8i16,// ->360994
/*360968*/                    OPC_MoveParent,
/*360969*/                    OPC_MoveParent,
/*360970*/                    OPC_MoveChild2,
/*360971*/                    OPC_CheckImmAllZerosV,
/*360972*/                    OPC_MoveParent,
/*360973*/                    OPC_CheckType, MVT::v4f32,
/*360975*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*360977*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*360980*/                    OPC_EmitMergeInputChains1_2,
/*360981*/                    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:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v4f32] }) - Complexity = 35
                              // Dst: (VPANDNDZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*360994*/                  /*SwitchType*/ 26, MVT::v16i8,// ->361022
/*360996*/                    OPC_MoveParent,
/*360997*/                    OPC_MoveParent,
/*360998*/                    OPC_MoveChild2,
/*360999*/                    OPC_CheckImmAllZerosV,
/*361000*/                    OPC_MoveParent,
/*361001*/                    OPC_CheckType, MVT::v4f32,
/*361003*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*361005*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*361008*/                    OPC_EmitMergeInputChains1_2,
/*361009*/                    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:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v4f32] }) - Complexity = 35
                              // Dst: (VPANDNDZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*361022*/                  /*SwitchType*/ 26, MVT::v4i64,// ->361050
/*361024*/                    OPC_MoveParent,
/*361025*/                    OPC_MoveParent,
/*361026*/                    OPC_MoveChild2,
/*361027*/                    OPC_CheckImmAllZerosV,
/*361028*/                    OPC_MoveParent,
/*361029*/                    OPC_CheckType, MVT::v4f64,
/*361031*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*361033*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*361036*/                    OPC_EmitMergeInputChains1_2,
/*361037*/                    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>>)), immAllZerosV:{ *:[v4f64] }) - Complexity = 35
                              // Dst: (VPANDNQZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*361050*/                  /*SwitchType*/ 26, MVT::v8i32,// ->361078
/*361052*/                    OPC_MoveParent,
/*361053*/                    OPC_MoveParent,
/*361054*/                    OPC_MoveChild2,
/*361055*/                    OPC_CheckImmAllZerosV,
/*361056*/                    OPC_MoveParent,
/*361057*/                    OPC_CheckType, MVT::v4f64,
/*361059*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*361061*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*361064*/                    OPC_EmitMergeInputChains1_2,
/*361065*/                    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:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v4f64] }) - Complexity = 35
                              // Dst: (VPANDNQZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*361078*/                  /*SwitchType*/ 26, MVT::v16i16,// ->361106
/*361080*/                    OPC_MoveParent,
/*361081*/                    OPC_MoveParent,
/*361082*/                    OPC_MoveChild2,
/*361083*/                    OPC_CheckImmAllZerosV,
/*361084*/                    OPC_MoveParent,
/*361085*/                    OPC_CheckType, MVT::v4f64,
/*361087*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*361089*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*361092*/                    OPC_EmitMergeInputChains1_2,
/*361093*/                    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:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v4f64] }) - Complexity = 35
                              // Dst: (VPANDNQZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*361106*/                  /*SwitchType*/ 26, MVT::v32i8,// ->361134
/*361108*/                    OPC_MoveParent,
/*361109*/                    OPC_MoveParent,
/*361110*/                    OPC_MoveChild2,
/*361111*/                    OPC_CheckImmAllZerosV,
/*361112*/                    OPC_MoveParent,
/*361113*/                    OPC_CheckType, MVT::v4f64,
/*361115*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*361117*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*361120*/                    OPC_EmitMergeInputChains1_2,
/*361121*/                    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:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v4f64] }) - Complexity = 35
                              // Dst: (VPANDNQZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*361134*/                  0, // EndSwitchType
/*361135*/                /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->361208
/*361138*/                  OPC_RecordMemRef,
/*361139*/                  OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*361140*/                  OPC_CheckFoldableChainNode,
/*361141*/                  OPC_RecordChild1, // #3 = $src2
/*361142*/                  OPC_Scope, 31, /*->361175*/ // 2 children in Scope
/*361144*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*361146*/                    OPC_MoveParent,
/*361147*/                    OPC_CheckType, MVT::v4i32,
/*361149*/                    OPC_MoveParent,
/*361150*/                    OPC_MoveParent,
/*361151*/                    OPC_MoveChild2,
/*361152*/                    OPC_CheckImmAllZerosV,
/*361153*/                    OPC_MoveParent,
/*361154*/                    OPC_CheckType, MVT::v4f32,
/*361156*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*361158*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*361161*/                    OPC_EmitMergeInputChains1_2,
/*361162*/                    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:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>)), immAllZerosV:{ *:[v4f32] }) - Complexity = 35
                              // Dst: (VPANDNDZ128rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*361175*/                  /*Scope*/ 31, /*->361207*/
/*361176*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*361178*/                    OPC_MoveParent,
/*361179*/                    OPC_CheckType, MVT::v4i64,
/*361181*/                    OPC_MoveParent,
/*361182*/                    OPC_MoveParent,
/*361183*/                    OPC_MoveChild2,
/*361184*/                    OPC_CheckImmAllZerosV,
/*361185*/                    OPC_MoveParent,
/*361186*/                    OPC_CheckType, MVT::v4f64,
/*361188*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*361190*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*361193*/                    OPC_EmitMergeInputChains1_2,
/*361194*/                    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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>)), immAllZerosV:{ *:[v4f64] }) - Complexity = 35
                              // Dst: (VPANDNQZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*361207*/                  0, /*End of Scope*/
/*361208*/                0, // EndSwitchOpcode
/*361209*/              0, // EndSwitchOpcode
/*361210*/            /*Scope*/ 59, /*->361270*/
/*361211*/              OPC_RecordChild0, // #1 = $ins
/*361212*/              OPC_MoveChild0,
/*361213*/              OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*361216*/              OPC_RecordChild0, // #2 = $src1
/*361217*/              OPC_MoveChild1,
/*361218*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*361221*/              OPC_RecordMemRef,
/*361222*/              OPC_RecordNode, // #3 = 'ld' chained node
/*361223*/              OPC_CheckFoldableChainNode,
/*361224*/              OPC_RecordChild1, // #4 = $src2
/*361225*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*361227*/              OPC_CheckPredicate, 9, // Predicate_load
/*361229*/              OPC_MoveParent,
/*361230*/              OPC_MoveChild2,
/*361231*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*361234*/              OPC_CheckType, MVT::iPTR,
/*361236*/              OPC_MoveParent,
/*361237*/              OPC_CheckType, MVT::v8f32,
/*361239*/              OPC_MoveParent,
/*361240*/              OPC_MoveParent,
/*361241*/              OPC_RecordChild2, // #5 = $src0
/*361242*/              OPC_CheckType, MVT::v4f64,
/*361244*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*361246*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*361249*/              OPC_EmitMergeInputChains, 1, 3, 
/*361252*/              OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*361255*/              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>>, (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))
/*361270*/            0, /*End of Scope*/
/*361271*/          /*SwitchOpcode*/ 87, TARGET_VAL(X86ISD::VPERMI),// ->361361
/*361274*/            OPC_MoveChild0,
/*361275*/            OPC_SwitchOpcode /*2 cases */, 40, TARGET_VAL(ISD::LOAD),// ->361319
/*361279*/              OPC_RecordMemRef,
/*361280*/              OPC_RecordNode, // #1 = 'ld' chained node
/*361281*/              OPC_CheckFoldableChainNode,
/*361282*/              OPC_RecordChild1, // #2 = $src1
/*361283*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*361285*/              OPC_CheckPredicate, 9, // Predicate_load
/*361287*/              OPC_MoveParent,
/*361288*/              OPC_RecordChild1, // #3 = $src2
/*361289*/              OPC_MoveChild1,
/*361290*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*361293*/              OPC_MoveParent,
/*361294*/              OPC_MoveParent,
/*361295*/              OPC_MoveChild2,
/*361296*/              OPC_CheckImmAllZerosV,
/*361297*/              OPC_MoveParent,
/*361298*/              OPC_CheckType, MVT::v4f64,
/*361300*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*361302*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*361305*/              OPC_EmitMergeInputChains1_1,
/*361306*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPDZ256mikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermi:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v4f64] }) - Complexity = 35
                        // Dst: (VPERMPDZ256mikz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*361319*/            /*SwitchOpcode*/ 38, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->361360
/*361322*/              OPC_RecordMemRef,
/*361323*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*361324*/              OPC_CheckFoldableChainNode,
/*361325*/              OPC_RecordChild1, // #2 = $src1
/*361326*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*361328*/              OPC_MoveParent,
/*361329*/              OPC_RecordChild1, // #3 = $src2
/*361330*/              OPC_MoveChild1,
/*361331*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*361334*/              OPC_MoveParent,
/*361335*/              OPC_MoveParent,
/*361336*/              OPC_MoveChild2,
/*361337*/              OPC_CheckImmAllZerosV,
/*361338*/              OPC_MoveParent,
/*361339*/              OPC_CheckType, MVT::v4f64,
/*361341*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*361343*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*361346*/              OPC_EmitMergeInputChains1_1,
/*361347*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPDZ256mbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermi:{ *:[v4f64] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v4f64] }) - Complexity = 35
                        // Dst: (VPERMPDZ256mbikz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*361360*/            0, // EndSwitchOpcode
/*361361*/          /*SwitchOpcode*/ 20|128,1/*148*/, TARGET_VAL(X86ISD::VPERMILPI),// ->361513
/*361365*/            OPC_MoveChild0,
/*361366*/            OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->361433
/*361370*/              OPC_RecordMemRef,
/*361371*/              OPC_RecordNode, // #1 = 'ld' chained node
/*361372*/              OPC_CheckFoldableChainNode,
/*361373*/              OPC_RecordChild1, // #2 = $src1
/*361374*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*361376*/              OPC_CheckPredicate, 9, // Predicate_load
/*361378*/              OPC_MoveParent,
/*361379*/              OPC_RecordChild1, // #3 = $src2
/*361380*/              OPC_MoveChild1,
/*361381*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*361384*/              OPC_MoveParent,
/*361385*/              OPC_MoveParent,
/*361386*/              OPC_MoveChild2,
/*361387*/              OPC_CheckImmAllZerosV,
/*361388*/              OPC_MoveParent,
/*361389*/              OPC_SwitchType /*2 cases */, 19, MVT::v4f32,// ->361411
/*361392*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*361394*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*361397*/                OPC_EmitMergeInputChains1_1,
/*361398*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZ128mikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermilpi:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v4f32] }) - Complexity = 35
                          // Dst: (VPERMILPSZ128mikz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*361411*/              /*SwitchType*/ 19, MVT::v4f64,// ->361432
/*361413*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*361415*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*361418*/                OPC_EmitMergeInputChains1_1,
/*361419*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZ256mikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermilpi:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v4f64] }) - Complexity = 35
                          // Dst: (VPERMILPDZ256mikz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*361432*/              0, // EndSwitchType
/*361433*/            /*SwitchOpcode*/ 76, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->361512
/*361436*/              OPC_RecordMemRef,
/*361437*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*361438*/              OPC_CheckFoldableChainNode,
/*361439*/              OPC_RecordChild1, // #2 = $src1
/*361440*/              OPC_Scope, 34, /*->361476*/ // 2 children in Scope
/*361442*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*361444*/                OPC_MoveParent,
/*361445*/                OPC_RecordChild1, // #3 = $src2
/*361446*/                OPC_MoveChild1,
/*361447*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*361450*/                OPC_MoveParent,
/*361451*/                OPC_MoveParent,
/*361452*/                OPC_MoveChild2,
/*361453*/                OPC_CheckImmAllZerosV,
/*361454*/                OPC_MoveParent,
/*361455*/                OPC_CheckType, MVT::v4f32,
/*361457*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*361459*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*361462*/                OPC_EmitMergeInputChains1_1,
/*361463*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZ128mbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermilpi:{ *:[v4f32] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v4f32] }) - Complexity = 35
                          // Dst: (VPERMILPSZ128mbikz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*361476*/              /*Scope*/ 34, /*->361511*/
/*361477*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*361479*/                OPC_MoveParent,
/*361480*/                OPC_RecordChild1, // #3 = $src2
/*361481*/                OPC_MoveChild1,
/*361482*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*361485*/                OPC_MoveParent,
/*361486*/                OPC_MoveParent,
/*361487*/                OPC_MoveChild2,
/*361488*/                OPC_CheckImmAllZerosV,
/*361489*/                OPC_MoveParent,
/*361490*/                OPC_CheckType, MVT::v4f64,
/*361492*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*361494*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*361497*/                OPC_EmitMergeInputChains1_1,
/*361498*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZ256mbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermilpi:{ *:[v4f64] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v4f64] }) - Complexity = 35
                          // Dst: (VPERMILPDZ256mbikz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*361511*/              0, /*End of Scope*/
/*361512*/            0, // EndSwitchOpcode
/*361513*/          /*SwitchOpcode*/ 20|128,1/*148*/, TARGET_VAL(X86ISD::VREDUCE),// ->361665
/*361517*/            OPC_MoveChild0,
/*361518*/            OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->361585
/*361522*/              OPC_RecordMemRef,
/*361523*/              OPC_RecordNode, // #1 = 'ld' chained node
/*361524*/              OPC_CheckFoldableChainNode,
/*361525*/              OPC_RecordChild1, // #2 = $src1
/*361526*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*361528*/              OPC_CheckPredicate, 9, // Predicate_load
/*361530*/              OPC_MoveParent,
/*361531*/              OPC_RecordChild1, // #3 = $src2
/*361532*/              OPC_MoveChild1,
/*361533*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*361536*/              OPC_MoveParent,
/*361537*/              OPC_MoveParent,
/*361538*/              OPC_MoveChild2,
/*361539*/              OPC_CheckImmAllZerosV,
/*361540*/              OPC_MoveParent,
/*361541*/              OPC_SwitchType /*2 cases */, 19, MVT::v4f32,// ->361563
/*361544*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*361546*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*361549*/                OPC_EmitMergeInputChains1_1,
/*361550*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPSZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VReduce:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v4f32] }) - Complexity = 35
                          // Dst: (VREDUCEPSZ128rmikz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*361563*/              /*SwitchType*/ 19, MVT::v4f64,// ->361584
/*361565*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*361567*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*361570*/                OPC_EmitMergeInputChains1_1,
/*361571*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPDZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VReduce:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v4f64] }) - Complexity = 35
                          // Dst: (VREDUCEPDZ256rmikz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*361584*/              0, // EndSwitchType
/*361585*/            /*SwitchOpcode*/ 76, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->361664
/*361588*/              OPC_RecordMemRef,
/*361589*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*361590*/              OPC_CheckFoldableChainNode,
/*361591*/              OPC_RecordChild1, // #2 = $src1
/*361592*/              OPC_Scope, 34, /*->361628*/ // 2 children in Scope
/*361594*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*361596*/                OPC_MoveParent,
/*361597*/                OPC_RecordChild1, // #3 = $src2
/*361598*/                OPC_MoveChild1,
/*361599*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*361602*/                OPC_MoveParent,
/*361603*/                OPC_MoveParent,
/*361604*/                OPC_MoveChild2,
/*361605*/                OPC_CheckImmAllZerosV,
/*361606*/                OPC_MoveParent,
/*361607*/                OPC_CheckType, MVT::v4f32,
/*361609*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*361611*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*361614*/                OPC_EmitMergeInputChains1_1,
/*361615*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPSZ128rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VReduce:{ *:[v4f32] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v4f32] }) - Complexity = 35
                          // Dst: (VREDUCEPSZ128rmbikz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*361628*/              /*Scope*/ 34, /*->361663*/
/*361629*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*361631*/                OPC_MoveParent,
/*361632*/                OPC_RecordChild1, // #3 = $src2
/*361633*/                OPC_MoveChild1,
/*361634*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*361637*/                OPC_MoveParent,
/*361638*/                OPC_MoveParent,
/*361639*/                OPC_MoveChild2,
/*361640*/                OPC_CheckImmAllZerosV,
/*361641*/                OPC_MoveParent,
/*361642*/                OPC_CheckType, MVT::v4f64,
/*361644*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*361646*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*361649*/                OPC_EmitMergeInputChains1_1,
/*361650*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPDZ256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VReduce:{ *:[v4f64] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v4f64] }) - Complexity = 35
                          // Dst: (VREDUCEPDZ256rmbikz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*361663*/              0, /*End of Scope*/
/*361664*/            0, // EndSwitchOpcode
/*361665*/          /*SwitchOpcode*/ 34|128,1/*162*/, TARGET_VAL(X86ISD::STRICT_VRNDSCALE),// ->361831
/*361669*/            OPC_RecordNode, // #1 = 'X86strict_VRndScale' chained node
/*361670*/            OPC_CheckFoldableChainNode,
/*361671*/            OPC_MoveChild1,
/*361672*/            OPC_SwitchOpcode /*2 cases */, 69, TARGET_VAL(ISD::LOAD),// ->361745
/*361676*/              OPC_RecordMemRef,
/*361677*/              OPC_RecordNode, // #2 = 'ld' chained node
/*361678*/              OPC_CheckFoldableChainNode,
/*361679*/              OPC_RecordChild1, // #3 = $src1
/*361680*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*361682*/              OPC_CheckPredicate, 9, // Predicate_load
/*361684*/              OPC_MoveParent,
/*361685*/              OPC_RecordChild2, // #4 = $src2
/*361686*/              OPC_MoveChild2,
/*361687*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*361690*/              OPC_MoveParent,
/*361691*/              OPC_MoveParent,
/*361692*/              OPC_MoveChild2,
/*361693*/              OPC_CheckImmAllZerosV,
/*361694*/              OPC_MoveParent,
/*361695*/              OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->361720
/*361698*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*361700*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src1 #5 #6 #7 #8 #9
/*361703*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*361707*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_VRndScale:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v4f32] }) - Complexity = 35
                          // Dst: (VRNDSCALEPSZ128rmikz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*361720*/              /*SwitchType*/ 22, MVT::v4f64,// ->361744
/*361722*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*361724*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src1 #5 #6 #7 #8 #9
/*361727*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*361731*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 0, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_VRndScale:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v4f64] }) - Complexity = 35
                          // Dst: (VRNDSCALEPDZ256rmikz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*361744*/              0, // EndSwitchType
/*361745*/            /*SwitchOpcode*/ 82, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->361830
/*361748*/              OPC_RecordMemRef,
/*361749*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*361750*/              OPC_CheckFoldableChainNode,
/*361751*/              OPC_RecordChild1, // #3 = $src1
/*361752*/              OPC_Scope, 37, /*->361791*/ // 2 children in Scope
/*361754*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*361756*/                OPC_MoveParent,
/*361757*/                OPC_RecordChild2, // #4 = $src2
/*361758*/                OPC_MoveChild2,
/*361759*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*361762*/                OPC_MoveParent,
/*361763*/                OPC_MoveParent,
/*361764*/                OPC_MoveChild2,
/*361765*/                OPC_CheckImmAllZerosV,
/*361766*/                OPC_MoveParent,
/*361767*/                OPC_CheckType, MVT::v4f32,
/*361769*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*361771*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src1 #5 #6 #7 #8 #9
/*361774*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*361778*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_VRndScale:{ *:[v4f32] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v4f32] }) - Complexity = 35
                          // Dst: (VRNDSCALEPSZ128rmbikz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*361791*/              /*Scope*/ 37, /*->361829*/
/*361792*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*361794*/                OPC_MoveParent,
/*361795*/                OPC_RecordChild2, // #4 = $src2
/*361796*/                OPC_MoveChild2,
/*361797*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*361800*/                OPC_MoveParent,
/*361801*/                OPC_MoveParent,
/*361802*/                OPC_MoveChild2,
/*361803*/                OPC_CheckImmAllZerosV,
/*361804*/                OPC_MoveParent,
/*361805*/                OPC_CheckType, MVT::v4f64,
/*361807*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*361809*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src1 #5 #6 #7 #8 #9
/*361812*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*361816*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 0, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_VRndScale:{ *:[v4f64] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v4f64] }) - Complexity = 35
                          // Dst: (VRNDSCALEPDZ256rmbikz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*361829*/              0, /*End of Scope*/
/*361830*/            0, // EndSwitchOpcode
/*361831*/          /*SwitchOpcode*/ 20|128,1/*148*/, TARGET_VAL(X86ISD::VRNDSCALE),// ->361983
/*361835*/            OPC_MoveChild0,
/*361836*/            OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->361903
/*361840*/              OPC_RecordMemRef,
/*361841*/              OPC_RecordNode, // #1 = 'ld' chained node
/*361842*/              OPC_CheckFoldableChainNode,
/*361843*/              OPC_RecordChild1, // #2 = $src1
/*361844*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*361846*/              OPC_CheckPredicate, 9, // Predicate_load
/*361848*/              OPC_MoveParent,
/*361849*/              OPC_RecordChild1, // #3 = $src2
/*361850*/              OPC_MoveChild1,
/*361851*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*361854*/              OPC_MoveParent,
/*361855*/              OPC_MoveParent,
/*361856*/              OPC_MoveChild2,
/*361857*/              OPC_CheckImmAllZerosV,
/*361858*/              OPC_MoveParent,
/*361859*/              OPC_SwitchType /*2 cases */, 19, MVT::v4f32,// ->361881
/*361862*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*361864*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*361867*/                OPC_EmitMergeInputChains1_1,
/*361868*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VRndScale:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v4f32] }) - Complexity = 35
                          // Dst: (VRNDSCALEPSZ128rmikz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*361881*/              /*SwitchType*/ 19, MVT::v4f64,// ->361902
/*361883*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*361885*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*361888*/                OPC_EmitMergeInputChains1_1,
/*361889*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VRndScale:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v4f64] }) - Complexity = 35
                          // Dst: (VRNDSCALEPDZ256rmikz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*361902*/              0, // EndSwitchType
/*361903*/            /*SwitchOpcode*/ 76, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->361982
/*361906*/              OPC_RecordMemRef,
/*361907*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*361908*/              OPC_CheckFoldableChainNode,
/*361909*/              OPC_RecordChild1, // #2 = $src1
/*361910*/              OPC_Scope, 34, /*->361946*/ // 2 children in Scope
/*361912*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*361914*/                OPC_MoveParent,
/*361915*/                OPC_RecordChild1, // #3 = $src2
/*361916*/                OPC_MoveChild1,
/*361917*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*361920*/                OPC_MoveParent,
/*361921*/                OPC_MoveParent,
/*361922*/                OPC_MoveChild2,
/*361923*/                OPC_CheckImmAllZerosV,
/*361924*/                OPC_MoveParent,
/*361925*/                OPC_CheckType, MVT::v4f32,
/*361927*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*361929*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*361932*/                OPC_EmitMergeInputChains1_1,
/*361933*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VRndScale:{ *:[v4f32] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v4f32] }) - Complexity = 35
                          // Dst: (VRNDSCALEPSZ128rmbikz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*361946*/              /*Scope*/ 34, /*->361981*/
/*361947*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*361949*/                OPC_MoveParent,
/*361950*/                OPC_RecordChild1, // #3 = $src2
/*361951*/                OPC_MoveChild1,
/*361952*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*361955*/                OPC_MoveParent,
/*361956*/                OPC_MoveParent,
/*361957*/                OPC_MoveChild2,
/*361958*/                OPC_CheckImmAllZerosV,
/*361959*/                OPC_MoveParent,
/*361960*/                OPC_CheckType, MVT::v4f64,
/*361962*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*361964*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*361967*/                OPC_EmitMergeInputChains1_1,
/*361968*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VRndScale:{ *:[v4f64] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v4f64] }) - Complexity = 35
                          // Dst: (VRNDSCALEPDZ256rmbikz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*361981*/              0, /*End of Scope*/
/*361982*/            0, // EndSwitchOpcode
/*361983*/          /*SwitchOpcode*/ 20|128,1/*148*/, TARGET_VAL(X86ISD::VGETMANT),// ->362135
/*361987*/            OPC_MoveChild0,
/*361988*/            OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->362055
/*361992*/              OPC_RecordMemRef,
/*361993*/              OPC_RecordNode, // #1 = 'ld' chained node
/*361994*/              OPC_CheckFoldableChainNode,
/*361995*/              OPC_RecordChild1, // #2 = $src1
/*361996*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*361998*/              OPC_CheckPredicate, 9, // Predicate_load
/*362000*/              OPC_MoveParent,
/*362001*/              OPC_RecordChild1, // #3 = $src2
/*362002*/              OPC_MoveChild1,
/*362003*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*362006*/              OPC_MoveParent,
/*362007*/              OPC_MoveParent,
/*362008*/              OPC_MoveChild2,
/*362009*/              OPC_CheckImmAllZerosV,
/*362010*/              OPC_MoveParent,
/*362011*/              OPC_SwitchType /*2 cases */, 19, MVT::v4f32,// ->362033
/*362014*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*362016*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*362019*/                OPC_EmitMergeInputChains1_1,
/*362020*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPSZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VGetMant:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v4f32] }) - Complexity = 35
                          // Dst: (VGETMANTPSZ128rmikz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*362033*/              /*SwitchType*/ 19, MVT::v4f64,// ->362054
/*362035*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*362037*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*362040*/                OPC_EmitMergeInputChains1_1,
/*362041*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPDZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VGetMant:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v4f64] }) - Complexity = 35
                          // Dst: (VGETMANTPDZ256rmikz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*362054*/              0, // EndSwitchType
/*362055*/            /*SwitchOpcode*/ 76, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->362134
/*362058*/              OPC_RecordMemRef,
/*362059*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*362060*/              OPC_CheckFoldableChainNode,
/*362061*/              OPC_RecordChild1, // #2 = $src1
/*362062*/              OPC_Scope, 34, /*->362098*/ // 2 children in Scope
/*362064*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*362066*/                OPC_MoveParent,
/*362067*/                OPC_RecordChild1, // #3 = $src2
/*362068*/                OPC_MoveChild1,
/*362069*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*362072*/                OPC_MoveParent,
/*362073*/                OPC_MoveParent,
/*362074*/                OPC_MoveChild2,
/*362075*/                OPC_CheckImmAllZerosV,
/*362076*/                OPC_MoveParent,
/*362077*/                OPC_CheckType, MVT::v4f32,
/*362079*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*362081*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*362084*/                OPC_EmitMergeInputChains1_1,
/*362085*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPSZ128rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VGetMant:{ *:[v4f32] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v4f32] }) - Complexity = 35
                          // Dst: (VGETMANTPSZ128rmbikz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*362098*/              /*Scope*/ 34, /*->362133*/
/*362099*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*362101*/                OPC_MoveParent,
/*362102*/                OPC_RecordChild1, // #3 = $src2
/*362103*/                OPC_MoveChild1,
/*362104*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*362107*/                OPC_MoveParent,
/*362108*/                OPC_MoveParent,
/*362109*/                OPC_MoveChild2,
/*362110*/                OPC_CheckImmAllZerosV,
/*362111*/                OPC_MoveParent,
/*362112*/                OPC_CheckType, MVT::v4f64,
/*362114*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*362116*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*362119*/                OPC_EmitMergeInputChains1_1,
/*362120*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPDZ256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VGetMant:{ *:[v4f64] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v4f64] }) - Complexity = 35
                          // Dst: (VGETMANTPDZ256rmbikz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*362133*/              0, /*End of Scope*/
/*362134*/            0, // EndSwitchOpcode
/*362135*/          /*SwitchOpcode*/ 25|128,1/*153*/, TARGET_VAL(X86ISD::VRANGE),// ->362292
/*362139*/            OPC_RecordChild0, // #1 = $src1
/*362140*/            OPC_MoveChild1,
/*362141*/            OPC_SwitchOpcode /*2 cases */, 65, TARGET_VAL(ISD::LOAD),// ->362210
/*362145*/              OPC_RecordMemRef,
/*362146*/              OPC_RecordNode, // #2 = 'ld' chained node
/*362147*/              OPC_CheckFoldableChainNode,
/*362148*/              OPC_RecordChild1, // #3 = $src2
/*362149*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*362151*/              OPC_CheckPredicate, 9, // Predicate_load
/*362153*/              OPC_MoveParent,
/*362154*/              OPC_RecordChild2, // #4 = $src3
/*362155*/              OPC_MoveChild2,
/*362156*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*362159*/              OPC_MoveParent,
/*362160*/              OPC_MoveParent,
/*362161*/              OPC_MoveChild2,
/*362162*/              OPC_CheckImmAllZerosV,
/*362163*/              OPC_MoveParent,
/*362164*/              OPC_SwitchType /*2 cases */, 20, MVT::v4f64,// ->362187
/*362167*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*362169*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*362172*/                OPC_EmitMergeInputChains1_2,
/*362173*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPDZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VRange:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src3), immAllZerosV:{ *:[v4f64] }) - Complexity = 35
                          // Dst: (VRANGEPDZ256rmikz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i32] }):$src3)
/*362187*/              /*SwitchType*/ 20, MVT::v4f32,// ->362209
/*362189*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*362191*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*362194*/                OPC_EmitMergeInputChains1_2,
/*362195*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPSZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VRange:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src3), immAllZerosV:{ *:[v4f32] }) - Complexity = 35
                          // Dst: (VRANGEPSZ128rmikz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i32] }):$src3)
/*362209*/              0, // EndSwitchType
/*362210*/            /*SwitchOpcode*/ 78, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->362291
/*362213*/              OPC_RecordMemRef,
/*362214*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*362215*/              OPC_CheckFoldableChainNode,
/*362216*/              OPC_RecordChild1, // #3 = $src2
/*362217*/              OPC_Scope, 35, /*->362254*/ // 2 children in Scope
/*362219*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*362221*/                OPC_MoveParent,
/*362222*/                OPC_RecordChild2, // #4 = $src3
/*362223*/                OPC_MoveChild2,
/*362224*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*362227*/                OPC_MoveParent,
/*362228*/                OPC_MoveParent,
/*362229*/                OPC_MoveChild2,
/*362230*/                OPC_CheckImmAllZerosV,
/*362231*/                OPC_MoveParent,
/*362232*/                OPC_CheckType, MVT::v4f64,
/*362234*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*362236*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*362239*/                OPC_EmitMergeInputChains1_2,
/*362240*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPDZ256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VRange:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i32] }):$src3), immAllZerosV:{ *:[v4f64] }) - Complexity = 35
                          // Dst: (VRANGEPDZ256rmbikz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i32] }):$src3)
/*362254*/              /*Scope*/ 35, /*->362290*/
/*362255*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*362257*/                OPC_MoveParent,
/*362258*/                OPC_RecordChild2, // #4 = $src3
/*362259*/                OPC_MoveChild2,
/*362260*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*362263*/                OPC_MoveParent,
/*362264*/                OPC_MoveParent,
/*362265*/                OPC_MoveChild2,
/*362266*/                OPC_CheckImmAllZerosV,
/*362267*/                OPC_MoveParent,
/*362268*/                OPC_CheckType, MVT::v4f32,
/*362270*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*362272*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*362275*/                OPC_EmitMergeInputChains1_2,
/*362276*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPSZ128rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VRange:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i32] }):$src3), immAllZerosV:{ *:[v4f32] }) - Complexity = 35
                          // Dst: (VRANGEPSZ128rmbikz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i32] }):$src3)
/*362290*/              0, /*End of Scope*/
/*362291*/            0, // EndSwitchOpcode
/*362292*/          /*SwitchOpcode*/ 90, TARGET_VAL(X86ISD::SHUF128),// ->362385
/*362295*/            OPC_RecordChild0, // #1 = $src1
/*362296*/            OPC_MoveChild1,
/*362297*/            OPC_SwitchOpcode /*2 cases */, 41, TARGET_VAL(ISD::LOAD),// ->362342
/*362301*/              OPC_RecordMemRef,
/*362302*/              OPC_RecordNode, // #2 = 'ld' chained node
/*362303*/              OPC_CheckFoldableChainNode,
/*362304*/              OPC_RecordChild1, // #3 = $src2
/*362305*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*362307*/              OPC_CheckPredicate, 9, // Predicate_load
/*362309*/              OPC_MoveParent,
/*362310*/              OPC_RecordChild2, // #4 = $src3
/*362311*/              OPC_MoveChild2,
/*362312*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*362315*/              OPC_MoveParent,
/*362316*/              OPC_MoveParent,
/*362317*/              OPC_MoveChild2,
/*362318*/              OPC_CheckImmAllZerosV,
/*362319*/              OPC_MoveParent,
/*362320*/              OPC_CheckType, MVT::v4f64,
/*362322*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*362324*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*362327*/              OPC_EmitMergeInputChains1_2,
/*362328*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF64X2Z256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Shuf128:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v4f64] }) - Complexity = 35
                        // Dst: (VSHUFF64X2Z256rmikz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*362342*/            /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->362384
/*362345*/              OPC_RecordMemRef,
/*362346*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*362347*/              OPC_CheckFoldableChainNode,
/*362348*/              OPC_RecordChild1, // #3 = $src2
/*362349*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*362351*/              OPC_MoveParent,
/*362352*/              OPC_RecordChild2, // #4 = $src3
/*362353*/              OPC_MoveChild2,
/*362354*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*362357*/              OPC_MoveParent,
/*362358*/              OPC_MoveParent,
/*362359*/              OPC_MoveChild2,
/*362360*/              OPC_CheckImmAllZerosV,
/*362361*/              OPC_MoveParent,
/*362362*/              OPC_CheckType, MVT::v4f64,
/*362364*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*362366*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*362369*/              OPC_EmitMergeInputChains1_2,
/*362370*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF64X2Z256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Shuf128:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v4f64] }) - Complexity = 35
                        // Dst: (VSHUFF64X2Z256rmbikz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*362384*/            0, // EndSwitchOpcode
/*362385*/          /*SwitchOpcode*/ 25|128,1/*153*/, TARGET_VAL(X86ISD::SHUFP),// ->362542
/*362389*/            OPC_RecordChild0, // #1 = $src1
/*362390*/            OPC_MoveChild1,
/*362391*/            OPC_SwitchOpcode /*2 cases */, 65, TARGET_VAL(ISD::LOAD),// ->362460
/*362395*/              OPC_RecordMemRef,
/*362396*/              OPC_RecordNode, // #2 = 'ld' chained node
/*362397*/              OPC_CheckFoldableChainNode,
/*362398*/              OPC_RecordChild1, // #3 = $src2
/*362399*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*362401*/              OPC_CheckPredicate, 9, // Predicate_load
/*362403*/              OPC_MoveParent,
/*362404*/              OPC_RecordChild2, // #4 = $src3
/*362405*/              OPC_MoveChild2,
/*362406*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*362409*/              OPC_MoveParent,
/*362410*/              OPC_MoveParent,
/*362411*/              OPC_MoveChild2,
/*362412*/              OPC_CheckImmAllZerosV,
/*362413*/              OPC_MoveParent,
/*362414*/              OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->362437
/*362417*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*362419*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*362422*/                OPC_EmitMergeInputChains1_2,
/*362423*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPSZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Shufp:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v4f32] }) - Complexity = 35
                          // Dst: (VSHUFPSZ128rmikz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*362437*/              /*SwitchType*/ 20, MVT::v4f64,// ->362459
/*362439*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*362441*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*362444*/                OPC_EmitMergeInputChains1_2,
/*362445*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPDZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Shufp:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v4f64] }) - Complexity = 35
                          // Dst: (VSHUFPDZ256rmikz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*362459*/              0, // EndSwitchType
/*362460*/            /*SwitchOpcode*/ 78, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->362541
/*362463*/              OPC_RecordMemRef,
/*362464*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*362465*/              OPC_CheckFoldableChainNode,
/*362466*/              OPC_RecordChild1, // #3 = $src2
/*362467*/              OPC_Scope, 35, /*->362504*/ // 2 children in Scope
/*362469*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*362471*/                OPC_MoveParent,
/*362472*/                OPC_RecordChild2, // #4 = $src3
/*362473*/                OPC_MoveChild2,
/*362474*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*362477*/                OPC_MoveParent,
/*362478*/                OPC_MoveParent,
/*362479*/                OPC_MoveChild2,
/*362480*/                OPC_CheckImmAllZerosV,
/*362481*/                OPC_MoveParent,
/*362482*/                OPC_CheckType, MVT::v4f32,
/*362484*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*362486*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*362489*/                OPC_EmitMergeInputChains1_2,
/*362490*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPSZ128rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Shufp:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v4f32] }) - Complexity = 35
                          // Dst: (VSHUFPSZ128rmbikz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*362504*/              /*Scope*/ 35, /*->362540*/
/*362505*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*362507*/                OPC_MoveParent,
/*362508*/                OPC_RecordChild2, // #4 = $src3
/*362509*/                OPC_MoveChild2,
/*362510*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*362513*/                OPC_MoveParent,
/*362514*/                OPC_MoveParent,
/*362515*/                OPC_MoveChild2,
/*362516*/                OPC_CheckImmAllZerosV,
/*362517*/                OPC_MoveParent,
/*362518*/                OPC_CheckType, MVT::v4f64,
/*362520*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*362522*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*362525*/                OPC_EmitMergeInputChains1_2,
/*362526*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPDZ256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Shufp:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v4f64] }) - Complexity = 35
                          // Dst: (VSHUFPDZ256rmbikz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*362540*/              0, /*End of Scope*/
/*362541*/            0, // EndSwitchOpcode
/*362542*/          /*SwitchOpcode*/ 38|128,1/*166*/, TARGET_VAL(X86ISD::VFIXUPIMM),// ->362712
/*362546*/            OPC_RecordChild0, // #1 = $src1
/*362547*/            OPC_RecordChild1, // #2 = $src2
/*362548*/            OPC_MoveChild2,
/*362549*/            OPC_SwitchOpcode /*2 cases */, 71, TARGET_VAL(ISD::LOAD),// ->362624
/*362553*/              OPC_RecordMemRef,
/*362554*/              OPC_RecordNode, // #3 = 'ld' chained node
/*362555*/              OPC_CheckFoldableChainNode,
/*362556*/              OPC_RecordChild1, // #4 = $src3
/*362557*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*362559*/              OPC_CheckPredicate, 9, // Predicate_load
/*362561*/              OPC_MoveParent,
/*362562*/              OPC_RecordChild3, // #5 = $src4
/*362563*/              OPC_MoveChild3,
/*362564*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*362567*/              OPC_MoveParent,
/*362568*/              OPC_MoveParent,
/*362569*/              OPC_MoveChild2,
/*362570*/              OPC_CheckImmAllZerosV,
/*362571*/              OPC_MoveParent,
/*362572*/              OPC_SwitchType /*2 cases */, 23, MVT::v4f32,// ->362598
/*362575*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*362577*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*362580*/                OPC_EmitMergeInputChains, 1, 3, 
/*362583*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPSZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 5, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VFixupimm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src4), immAllZerosV:{ *:[v4f32] }) - Complexity = 35
                          // Dst: (VFIXUPIMMPSZ128rmikz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i32] }):$src4)
/*362598*/              /*SwitchType*/ 23, MVT::v4f64,// ->362623
/*362600*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*362602*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*362605*/                OPC_EmitMergeInputChains, 1, 3, 
/*362608*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPDZ256rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 5, 
                          // 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>>, (timm:{ *:[i32] }):$src4), immAllZerosV:{ *:[v4f64] }) - Complexity = 35
                          // Dst: (VFIXUPIMMPDZ256rmikz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i32] }):$src4)
/*362623*/              0, // EndSwitchType
/*362624*/            /*SwitchOpcode*/ 84, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->362711
/*362627*/              OPC_RecordMemRef,
/*362628*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*362629*/              OPC_CheckFoldableChainNode,
/*362630*/              OPC_RecordChild1, // #4 = $src3
/*362631*/              OPC_Scope, 38, /*->362671*/ // 2 children in Scope
/*362633*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*362635*/                OPC_MoveParent,
/*362636*/                OPC_RecordChild3, // #5 = $src4
/*362637*/                OPC_MoveChild3,
/*362638*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*362641*/                OPC_MoveParent,
/*362642*/                OPC_MoveParent,
/*362643*/                OPC_MoveChild2,
/*362644*/                OPC_CheckImmAllZerosV,
/*362645*/                OPC_MoveParent,
/*362646*/                OPC_CheckType, MVT::v4f32,
/*362648*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*362650*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*362653*/                OPC_EmitMergeInputChains, 1, 3, 
/*362656*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPSZ128rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 5, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VFixupimm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i32] }):$src4), immAllZerosV:{ *:[v4f32] }) - Complexity = 35
                          // Dst: (VFIXUPIMMPSZ128rmbikz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i32] }):$src4)
/*362671*/              /*Scope*/ 38, /*->362710*/
/*362672*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*362674*/                OPC_MoveParent,
/*362675*/                OPC_RecordChild3, // #5 = $src4
/*362676*/                OPC_MoveChild3,
/*362677*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*362680*/                OPC_MoveParent,
/*362681*/                OPC_MoveParent,
/*362682*/                OPC_MoveChild2,
/*362683*/                OPC_CheckImmAllZerosV,
/*362684*/                OPC_MoveParent,
/*362685*/                OPC_CheckType, MVT::v4f64,
/*362687*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*362689*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*362692*/                OPC_EmitMergeInputChains, 1, 3, 
/*362695*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPDZ256rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 5, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VFixupimm:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i32] }):$src4), immAllZerosV:{ *:[v4f64] }) - Complexity = 35
                          // Dst: (VFIXUPIMMPDZ256rmbikz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i32] }):$src4)
/*362710*/              0, /*End of Scope*/
/*362711*/            0, // EndSwitchOpcode
/*362712*/          /*SwitchOpcode*/ 114|128,1/*242*/, TARGET_VAL(X86ISD::VPERMV3),// ->362958
/*362716*/            OPC_RecordChild0, // #1 = $src2
/*362717*/            OPC_Scope, 93, /*->362812*/ // 2 children in Scope
/*362719*/              OPC_MoveChild1,
/*362720*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*362723*/              OPC_RecordChild0, // #2 = $src1
/*362724*/              OPC_CheckChild0Type, MVT::v2i64,
/*362726*/              OPC_MoveParent,
/*362727*/              OPC_MoveChild2,
/*362728*/              OPC_SwitchOpcode /*2 cases */, 39, TARGET_VAL(ISD::LOAD),// ->362771
/*362732*/                OPC_RecordMemRef,
/*362733*/                OPC_RecordNode, // #3 = 'ld' chained node
/*362734*/                OPC_CheckFoldableChainNode,
/*362735*/                OPC_RecordChild1, // #4 = $src3
/*362736*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*362738*/                OPC_CheckPredicate, 9, // Predicate_load
/*362740*/                OPC_MoveParent,
/*362741*/                OPC_MoveParent,
/*362742*/                OPC_MoveChild2,
/*362743*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*362746*/                OPC_CheckChild0Same, 2,
/*362748*/                OPC_MoveParent,
/*362749*/                OPC_CheckType, MVT::v4f32,
/*362751*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*362754*/                OPC_EmitMergeInputChains, 1, 3, 
/*362757*/                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>>), (bitconvert:{ *:[v4f32] } VR128X:{ *:[v2i64] }:$src1)) - Complexity = 34
                          // Dst: (VPERMI2PS128rmk:{ *:[v4f32] } VR128X:{ *:[v2i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*362771*/              /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->362811
/*362774*/                OPC_RecordMemRef,
/*362775*/                OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*362776*/                OPC_CheckFoldableChainNode,
/*362777*/                OPC_RecordChild1, // #4 = $src3
/*362778*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*362780*/                OPC_MoveParent,
/*362781*/                OPC_MoveParent,
/*362782*/                OPC_MoveChild2,
/*362783*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*362786*/                OPC_CheckChild0Same, 2,
/*362788*/                OPC_MoveParent,
/*362789*/                OPC_CheckType, MVT::v4f32,
/*362791*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*362794*/                OPC_EmitMergeInputChains, 1, 3, 
/*362797*/                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), (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), (bitconvert:{ *:[v4f32] } VR128X:{ *:[v2i64] }:$src1)) - Complexity = 34
                          // Dst: (VPERMI2PS128rmbk:{ *:[v4f32] } VR128X:{ *:[v2i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*362811*/              0, // EndSwitchOpcode
/*362812*/            /*Scope*/ 15|128,1/*143*/, /*->362957*/
/*362814*/              OPC_RecordChild1, // #2 = $src2
/*362815*/              OPC_MoveChild2,
/*362816*/              OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->362883
/*362820*/                OPC_RecordMemRef,
/*362821*/                OPC_RecordNode, // #3 = 'ld' chained node
/*362822*/                OPC_CheckFoldableChainNode,
/*362823*/                OPC_RecordChild1, // #4 = $src3
/*362824*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*362826*/                OPC_CheckPredicate, 9, // Predicate_load
/*362828*/                OPC_MoveParent,
/*362829*/                OPC_MoveParent,
/*362830*/                OPC_MoveChild2,
/*362831*/                OPC_CheckImmAllZerosV,
/*362832*/                OPC_MoveParent,
/*362833*/                OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->362858
/*362836*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*362838*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*362841*/                  OPC_EmitMergeInputChains, 1, 3, 
/*362844*/                  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>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                            // Dst: (VPERMT2PS128rmkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*362858*/                /*SwitchType*/ 22, MVT::v4f64,// ->362882
/*362860*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*362862*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*362865*/                  OPC_EmitMergeInputChains, 1, 3, 
/*362868*/                  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>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                            // Dst: (VPERMT2PD256rmkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*362882*/                0, // EndSwitchType
/*362883*/              /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->362956
/*362886*/                OPC_RecordMemRef,
/*362887*/                OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*362888*/                OPC_CheckFoldableChainNode,
/*362889*/                OPC_RecordChild1, // #4 = $src3
/*362890*/                OPC_Scope, 31, /*->362923*/ // 2 children in Scope
/*362892*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*362894*/                  OPC_MoveParent,
/*362895*/                  OPC_MoveParent,
/*362896*/                  OPC_MoveChild2,
/*362897*/                  OPC_CheckImmAllZerosV,
/*362898*/                  OPC_MoveParent,
/*362899*/                  OPC_CheckType, MVT::v4f32,
/*362901*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*362903*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*362906*/                  OPC_EmitMergeInputChains, 1, 3, 
/*362909*/                  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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                            // Dst: (VPERMT2PS128rmbkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*362923*/                /*Scope*/ 31, /*->362955*/
/*362924*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*362926*/                  OPC_MoveParent,
/*362927*/                  OPC_MoveParent,
/*362928*/                  OPC_MoveChild2,
/*362929*/                  OPC_CheckImmAllZerosV,
/*362930*/                  OPC_MoveParent,
/*362931*/                  OPC_CheckType, MVT::v4f64,
/*362933*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*362935*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*362938*/                  OPC_EmitMergeInputChains, 1, 3, 
/*362941*/                  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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                            // Dst: (VPERMT2PD256rmbkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*362955*/                0, /*End of Scope*/
/*362956*/              0, // EndSwitchOpcode
/*362957*/            0, /*End of Scope*/
/*362958*/          /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::SUBV_BROADCAST),// ->362998
/*362961*/            OPC_MoveChild0,
/*362962*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*362965*/            OPC_RecordMemRef,
/*362966*/            OPC_RecordNode, // #1 = 'ld' chained node
/*362967*/            OPC_CheckFoldableChainNode,
/*362968*/            OPC_RecordChild1, // #2 = $src
/*362969*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*362971*/            OPC_CheckPredicate, 9, // Predicate_load
/*362973*/            OPC_MoveParent,
/*362974*/            OPC_MoveParent,
/*362975*/            OPC_MoveChild2,
/*362976*/            OPC_CheckImmAllZerosV,
/*362977*/            OPC_MoveParent,
/*362978*/            OPC_CheckType, MVT::v4f64,
/*362980*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*362982*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*362985*/            OPC_EmitMergeInputChains1_1,
/*362986*/            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>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                      // Dst: (VBROADCASTF64X2Z128rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*362998*/          /*SwitchOpcode*/ 40|128,2/*296*/, TARGET_VAL(ISD::STRICT_FADD),// ->363298
/*363002*/            OPC_RecordNode, // #1 = 'strict_fadd' chained node
/*363003*/            OPC_CheckFoldableChainNode,
/*363004*/            OPC_Scope, 15|128,1/*143*/, /*->363150*/ // 2 children in Scope
/*363007*/              OPC_RecordChild1, // #2 = $src1
/*363008*/              OPC_MoveChild2,
/*363009*/              OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->363076
/*363013*/                OPC_RecordMemRef,
/*363014*/                OPC_RecordNode, // #3 = 'ld' chained node
/*363015*/                OPC_CheckFoldableChainNode,
/*363016*/                OPC_RecordChild1, // #4 = $src2
/*363017*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*363019*/                OPC_CheckPredicate, 9, // Predicate_load
/*363021*/                OPC_MoveParent,
/*363022*/                OPC_MoveParent,
/*363023*/                OPC_MoveChild2,
/*363024*/                OPC_CheckImmAllZerosV,
/*363025*/                OPC_MoveParent,
/*363026*/                OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->363051
/*363029*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*363031*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*363034*/                  OPC_EmitMergeInputChains, 2, 1, 3, 
/*363038*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 7/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (strict_fadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                            // Dst: (VADDPSZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*363051*/                /*SwitchType*/ 22, MVT::v4f64,// ->363075
/*363053*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*363055*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*363058*/                  OPC_EmitMergeInputChains, 2, 1, 3, 
/*363062*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 7/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (strict_fadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                            // Dst: (VADDPDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*363075*/                0, // EndSwitchType
/*363076*/              /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->363149
/*363079*/                OPC_RecordMemRef,
/*363080*/                OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*363081*/                OPC_CheckFoldableChainNode,
/*363082*/                OPC_RecordChild1, // #4 = $src2
/*363083*/                OPC_Scope, 31, /*->363116*/ // 2 children in Scope
/*363085*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*363087*/                  OPC_MoveParent,
/*363088*/                  OPC_MoveParent,
/*363089*/                  OPC_MoveChild2,
/*363090*/                  OPC_CheckImmAllZerosV,
/*363091*/                  OPC_MoveParent,
/*363092*/                  OPC_CheckType, MVT::v4f32,
/*363094*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*363096*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*363099*/                  OPC_EmitMergeInputChains, 2, 1, 3, 
/*363103*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 7/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (strict_fadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                            // Dst: (VADDPSZ128rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*363116*/                /*Scope*/ 31, /*->363148*/
/*363117*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*363119*/                  OPC_MoveParent,
/*363120*/                  OPC_MoveParent,
/*363121*/                  OPC_MoveChild2,
/*363122*/                  OPC_CheckImmAllZerosV,
/*363123*/                  OPC_MoveParent,
/*363124*/                  OPC_CheckType, MVT::v4f64,
/*363126*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*363128*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*363131*/                  OPC_EmitMergeInputChains, 2, 1, 3, 
/*363135*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 7/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (strict_fadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                            // Dst: (VADDPDZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*363148*/                0, /*End of Scope*/
/*363149*/              0, // EndSwitchOpcode
/*363150*/            /*Scope*/ 17|128,1/*145*/, /*->363297*/
/*363152*/              OPC_MoveChild1,
/*363153*/              OPC_SwitchOpcode /*2 cases */, 64, TARGET_VAL(ISD::LOAD),// ->363221
/*363157*/                OPC_RecordMemRef,
/*363158*/                OPC_RecordNode, // #2 = 'ld' chained node
/*363159*/                OPC_CheckFoldableChainNode,
/*363160*/                OPC_RecordChild1, // #3 = $src2
/*363161*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*363163*/                OPC_CheckPredicate, 9, // Predicate_load
/*363165*/                OPC_MoveParent,
/*363166*/                OPC_RecordChild2, // #4 = $src1
/*363167*/                OPC_MoveParent,
/*363168*/                OPC_MoveChild2,
/*363169*/                OPC_CheckImmAllZerosV,
/*363170*/                OPC_MoveParent,
/*363171*/                OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->363196
/*363174*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*363176*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*363179*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*363183*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (strict_fadd:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4f32] }:$src1), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                            // Dst: (VADDPSZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*363196*/                /*SwitchType*/ 22, MVT::v4f64,// ->363220
/*363198*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*363200*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*363203*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*363207*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (strict_fadd:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v4f64] }:$src1), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                            // Dst: (VADDPDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*363220*/                0, // EndSwitchType
/*363221*/              /*SwitchOpcode*/ 72, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->363296
/*363224*/                OPC_RecordMemRef,
/*363225*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*363226*/                OPC_CheckFoldableChainNode,
/*363227*/                OPC_RecordChild1, // #3 = $src2
/*363228*/                OPC_Scope, 32, /*->363262*/ // 2 children in Scope
/*363230*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*363232*/                  OPC_MoveParent,
/*363233*/                  OPC_RecordChild2, // #4 = $src1
/*363234*/                  OPC_MoveParent,
/*363235*/                  OPC_MoveChild2,
/*363236*/                  OPC_CheckImmAllZerosV,
/*363237*/                  OPC_MoveParent,
/*363238*/                  OPC_CheckType, MVT::v4f32,
/*363240*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*363242*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*363245*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*363249*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (strict_fadd:{ *:[v4f32] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                            // Dst: (VADDPSZ128rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*363262*/                /*Scope*/ 32, /*->363295*/
/*363263*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*363265*/                  OPC_MoveParent,
/*363266*/                  OPC_RecordChild2, // #4 = $src1
/*363267*/                  OPC_MoveParent,
/*363268*/                  OPC_MoveChild2,
/*363269*/                  OPC_CheckImmAllZerosV,
/*363270*/                  OPC_MoveParent,
/*363271*/                  OPC_CheckType, MVT::v4f64,
/*363273*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*363275*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*363278*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*363282*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (strict_fadd:{ *:[v4f64] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                            // Dst: (VADDPDZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*363295*/                0, /*End of Scope*/
/*363296*/              0, // EndSwitchOpcode
/*363297*/            0, /*End of Scope*/
/*363298*/          /*SwitchOpcode*/ 14|128,2/*270*/, TARGET_VAL(ISD::FADD),// ->363572
/*363302*/            OPC_Scope, 3|128,1/*131*/, /*->363436*/ // 2 children in Scope
/*363305*/              OPC_RecordChild0, // #1 = $src1
/*363306*/              OPC_MoveChild1,
/*363307*/              OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->363368
/*363311*/                OPC_RecordMemRef,
/*363312*/                OPC_RecordNode, // #2 = 'ld' chained node
/*363313*/                OPC_CheckFoldableChainNode,
/*363314*/                OPC_RecordChild1, // #3 = $src2
/*363315*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*363317*/                OPC_CheckPredicate, 9, // Predicate_load
/*363319*/                OPC_MoveParent,
/*363320*/                OPC_MoveParent,
/*363321*/                OPC_MoveChild2,
/*363322*/                OPC_CheckImmAllZerosV,
/*363323*/                OPC_MoveParent,
/*363324*/                OPC_SwitchType /*2 cases */, 19, MVT::v4f32,// ->363346
/*363327*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*363329*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*363332*/                  OPC_EmitMergeInputChains1_2,
/*363333*/                  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>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                            // Dst: (VADDPSZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*363346*/                /*SwitchType*/ 19, MVT::v4f64,// ->363367
/*363348*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*363350*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*363353*/                  OPC_EmitMergeInputChains1_2,
/*363354*/                  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>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                            // Dst: (VADDPDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*363367*/                0, // EndSwitchType
/*363368*/              /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->363435
/*363371*/                OPC_RecordMemRef,
/*363372*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*363373*/                OPC_CheckFoldableChainNode,
/*363374*/                OPC_RecordChild1, // #3 = $src2
/*363375*/                OPC_Scope, 28, /*->363405*/ // 2 children in Scope
/*363377*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*363379*/                  OPC_MoveParent,
/*363380*/                  OPC_MoveParent,
/*363381*/                  OPC_MoveChild2,
/*363382*/                  OPC_CheckImmAllZerosV,
/*363383*/                  OPC_MoveParent,
/*363384*/                  OPC_CheckType, MVT::v4f32,
/*363386*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*363388*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*363391*/                  OPC_EmitMergeInputChains1_2,
/*363392*/                  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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                            // Dst: (VADDPSZ128rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*363405*/                /*Scope*/ 28, /*->363434*/
/*363406*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*363408*/                  OPC_MoveParent,
/*363409*/                  OPC_MoveParent,
/*363410*/                  OPC_MoveChild2,
/*363411*/                  OPC_CheckImmAllZerosV,
/*363412*/                  OPC_MoveParent,
/*363413*/                  OPC_CheckType, MVT::v4f64,
/*363415*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*363417*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*363420*/                  OPC_EmitMergeInputChains1_2,
/*363421*/                  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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                            // Dst: (VADDPDZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*363434*/                0, /*End of Scope*/
/*363435*/              0, // EndSwitchOpcode
/*363436*/            /*Scope*/ 5|128,1/*133*/, /*->363571*/
/*363438*/              OPC_MoveChild0,
/*363439*/              OPC_SwitchOpcode /*2 cases */, 58, TARGET_VAL(ISD::LOAD),// ->363501
/*363443*/                OPC_RecordMemRef,
/*363444*/                OPC_RecordNode, // #1 = 'ld' chained node
/*363445*/                OPC_CheckFoldableChainNode,
/*363446*/                OPC_RecordChild1, // #2 = $src2
/*363447*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*363449*/                OPC_CheckPredicate, 9, // Predicate_load
/*363451*/                OPC_MoveParent,
/*363452*/                OPC_RecordChild1, // #3 = $src1
/*363453*/                OPC_MoveParent,
/*363454*/                OPC_MoveChild2,
/*363455*/                OPC_CheckImmAllZerosV,
/*363456*/                OPC_MoveParent,
/*363457*/                OPC_SwitchType /*2 cases */, 19, MVT::v4f32,// ->363479
/*363460*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*363462*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*363465*/                  OPC_EmitMergeInputChains1_1,
/*363466*/                  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>>, VR128X:{ *:[v4f32] }:$src1), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                            // Dst: (VADDPSZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*363479*/                /*SwitchType*/ 19, MVT::v4f64,// ->363500
/*363481*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*363483*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*363486*/                  OPC_EmitMergeInputChains1_1,
/*363487*/                  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>>, VR256X:{ *:[v4f64] }:$src1), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                            // Dst: (VADDPDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*363500*/                0, // EndSwitchType
/*363501*/              /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->363570
/*363504*/                OPC_RecordMemRef,
/*363505*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*363506*/                OPC_CheckFoldableChainNode,
/*363507*/                OPC_RecordChild1, // #2 = $src2
/*363508*/                OPC_Scope, 29, /*->363539*/ // 2 children in Scope
/*363510*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*363512*/                  OPC_MoveParent,
/*363513*/                  OPC_RecordChild1, // #3 = $src1
/*363514*/                  OPC_MoveParent,
/*363515*/                  OPC_MoveChild2,
/*363516*/                  OPC_CheckImmAllZerosV,
/*363517*/                  OPC_MoveParent,
/*363518*/                  OPC_CheckType, MVT::v4f32,
/*363520*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*363522*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*363525*/                  OPC_EmitMergeInputChains1_1,
/*363526*/                  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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                            // Dst: (VADDPSZ128rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*363539*/                /*Scope*/ 29, /*->363569*/
/*363540*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*363542*/                  OPC_MoveParent,
/*363543*/                  OPC_RecordChild1, // #3 = $src1
/*363544*/                  OPC_MoveParent,
/*363545*/                  OPC_MoveChild2,
/*363546*/                  OPC_CheckImmAllZerosV,
/*363547*/                  OPC_MoveParent,
/*363548*/                  OPC_CheckType, MVT::v4f64,
/*363550*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*363552*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*363555*/                  OPC_EmitMergeInputChains1_1,
/*363556*/                  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] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                            // Dst: (VADDPDZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*363569*/                0, /*End of Scope*/
/*363570*/              0, // EndSwitchOpcode
/*363571*/            0, /*End of Scope*/
/*363572*/          /*SwitchOpcode*/ 40|128,2/*296*/, TARGET_VAL(ISD::STRICT_FMUL),// ->363872
/*363576*/            OPC_RecordNode, // #1 = 'strict_fmul' chained node
/*363577*/            OPC_CheckFoldableChainNode,
/*363578*/            OPC_Scope, 15|128,1/*143*/, /*->363724*/ // 2 children in Scope
/*363581*/              OPC_RecordChild1, // #2 = $src1
/*363582*/              OPC_MoveChild2,
/*363583*/              OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->363650
/*363587*/                OPC_RecordMemRef,
/*363588*/                OPC_RecordNode, // #3 = 'ld' chained node
/*363589*/                OPC_CheckFoldableChainNode,
/*363590*/                OPC_RecordChild1, // #4 = $src2
/*363591*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*363593*/                OPC_CheckPredicate, 9, // Predicate_load
/*363595*/                OPC_MoveParent,
/*363596*/                OPC_MoveParent,
/*363597*/                OPC_MoveChild2,
/*363598*/                OPC_CheckImmAllZerosV,
/*363599*/                OPC_MoveParent,
/*363600*/                OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->363625
/*363603*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*363605*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*363608*/                  OPC_EmitMergeInputChains, 2, 1, 3, 
/*363612*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 7/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (strict_fmul:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                            // Dst: (VMULPSZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*363625*/                /*SwitchType*/ 22, MVT::v4f64,// ->363649
/*363627*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*363629*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*363632*/                  OPC_EmitMergeInputChains, 2, 1, 3, 
/*363636*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 7/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (strict_fmul:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                            // Dst: (VMULPDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*363649*/                0, // EndSwitchType
/*363650*/              /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->363723
/*363653*/                OPC_RecordMemRef,
/*363654*/                OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*363655*/                OPC_CheckFoldableChainNode,
/*363656*/                OPC_RecordChild1, // #4 = $src2
/*363657*/                OPC_Scope, 31, /*->363690*/ // 2 children in Scope
/*363659*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*363661*/                  OPC_MoveParent,
/*363662*/                  OPC_MoveParent,
/*363663*/                  OPC_MoveChild2,
/*363664*/                  OPC_CheckImmAllZerosV,
/*363665*/                  OPC_MoveParent,
/*363666*/                  OPC_CheckType, MVT::v4f32,
/*363668*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*363670*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*363673*/                  OPC_EmitMergeInputChains, 2, 1, 3, 
/*363677*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 7/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (strict_fmul:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                            // Dst: (VMULPSZ128rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*363690*/                /*Scope*/ 31, /*->363722*/
/*363691*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*363693*/                  OPC_MoveParent,
/*363694*/                  OPC_MoveParent,
/*363695*/                  OPC_MoveChild2,
/*363696*/                  OPC_CheckImmAllZerosV,
/*363697*/                  OPC_MoveParent,
/*363698*/                  OPC_CheckType, MVT::v4f64,
/*363700*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*363702*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*363705*/                  OPC_EmitMergeInputChains, 2, 1, 3, 
/*363709*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 7/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (strict_fmul:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                            // Dst: (VMULPDZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*363722*/                0, /*End of Scope*/
/*363723*/              0, // EndSwitchOpcode
/*363724*/            /*Scope*/ 17|128,1/*145*/, /*->363871*/
/*363726*/              OPC_MoveChild1,
/*363727*/              OPC_SwitchOpcode /*2 cases */, 64, TARGET_VAL(ISD::LOAD),// ->363795
/*363731*/                OPC_RecordMemRef,
/*363732*/                OPC_RecordNode, // #2 = 'ld' chained node
/*363733*/                OPC_CheckFoldableChainNode,
/*363734*/                OPC_RecordChild1, // #3 = $src2
/*363735*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*363737*/                OPC_CheckPredicate, 9, // Predicate_load
/*363739*/                OPC_MoveParent,
/*363740*/                OPC_RecordChild2, // #4 = $src1
/*363741*/                OPC_MoveParent,
/*363742*/                OPC_MoveChild2,
/*363743*/                OPC_CheckImmAllZerosV,
/*363744*/                OPC_MoveParent,
/*363745*/                OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->363770
/*363748*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*363750*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*363753*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*363757*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (strict_fmul:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4f32] }:$src1), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                            // Dst: (VMULPSZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*363770*/                /*SwitchType*/ 22, MVT::v4f64,// ->363794
/*363772*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*363774*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*363777*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*363781*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (strict_fmul:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v4f64] }:$src1), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                            // Dst: (VMULPDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*363794*/                0, // EndSwitchType
/*363795*/              /*SwitchOpcode*/ 72, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->363870
/*363798*/                OPC_RecordMemRef,
/*363799*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*363800*/                OPC_CheckFoldableChainNode,
/*363801*/                OPC_RecordChild1, // #3 = $src2
/*363802*/                OPC_Scope, 32, /*->363836*/ // 2 children in Scope
/*363804*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*363806*/                  OPC_MoveParent,
/*363807*/                  OPC_RecordChild2, // #4 = $src1
/*363808*/                  OPC_MoveParent,
/*363809*/                  OPC_MoveChild2,
/*363810*/                  OPC_CheckImmAllZerosV,
/*363811*/                  OPC_MoveParent,
/*363812*/                  OPC_CheckType, MVT::v4f32,
/*363814*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*363816*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*363819*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*363823*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (strict_fmul:{ *:[v4f32] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                            // Dst: (VMULPSZ128rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*363836*/                /*Scope*/ 32, /*->363869*/
/*363837*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*363839*/                  OPC_MoveParent,
/*363840*/                  OPC_RecordChild2, // #4 = $src1
/*363841*/                  OPC_MoveParent,
/*363842*/                  OPC_MoveChild2,
/*363843*/                  OPC_CheckImmAllZerosV,
/*363844*/                  OPC_MoveParent,
/*363845*/                  OPC_CheckType, MVT::v4f64,
/*363847*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*363849*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*363852*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*363856*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (strict_fmul:{ *:[v4f64] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                            // Dst: (VMULPDZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*363869*/                0, /*End of Scope*/
/*363870*/              0, // EndSwitchOpcode
/*363871*/            0, /*End of Scope*/
/*363872*/          /*SwitchOpcode*/ 14|128,2/*270*/, TARGET_VAL(ISD::FMUL),// ->364146
/*363876*/            OPC_Scope, 3|128,1/*131*/, /*->364010*/ // 2 children in Scope
/*363879*/              OPC_RecordChild0, // #1 = $src1
/*363880*/              OPC_MoveChild1,
/*363881*/              OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->363942
/*363885*/                OPC_RecordMemRef,
/*363886*/                OPC_RecordNode, // #2 = 'ld' chained node
/*363887*/                OPC_CheckFoldableChainNode,
/*363888*/                OPC_RecordChild1, // #3 = $src2
/*363889*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*363891*/                OPC_CheckPredicate, 9, // Predicate_load
/*363893*/                OPC_MoveParent,
/*363894*/                OPC_MoveParent,
/*363895*/                OPC_MoveChild2,
/*363896*/                OPC_CheckImmAllZerosV,
/*363897*/                OPC_MoveParent,
/*363898*/                OPC_SwitchType /*2 cases */, 19, MVT::v4f32,// ->363920
/*363901*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*363903*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*363906*/                  OPC_EmitMergeInputChains1_2,
/*363907*/                  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>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                            // Dst: (VMULPSZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*363920*/                /*SwitchType*/ 19, MVT::v4f64,// ->363941
/*363922*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*363924*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*363927*/                  OPC_EmitMergeInputChains1_2,
/*363928*/                  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>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                            // Dst: (VMULPDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*363941*/                0, // EndSwitchType
/*363942*/              /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->364009
/*363945*/                OPC_RecordMemRef,
/*363946*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*363947*/                OPC_CheckFoldableChainNode,
/*363948*/                OPC_RecordChild1, // #3 = $src2
/*363949*/                OPC_Scope, 28, /*->363979*/ // 2 children in Scope
/*363951*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*363953*/                  OPC_MoveParent,
/*363954*/                  OPC_MoveParent,
/*363955*/                  OPC_MoveChild2,
/*363956*/                  OPC_CheckImmAllZerosV,
/*363957*/                  OPC_MoveParent,
/*363958*/                  OPC_CheckType, MVT::v4f32,
/*363960*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*363962*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*363965*/                  OPC_EmitMergeInputChains1_2,
/*363966*/                  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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                            // Dst: (VMULPSZ128rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*363979*/                /*Scope*/ 28, /*->364008*/
/*363980*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*363982*/                  OPC_MoveParent,
/*363983*/                  OPC_MoveParent,
/*363984*/                  OPC_MoveChild2,
/*363985*/                  OPC_CheckImmAllZerosV,
/*363986*/                  OPC_MoveParent,
/*363987*/                  OPC_CheckType, MVT::v4f64,
/*363989*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*363991*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*363994*/                  OPC_EmitMergeInputChains1_2,
/*363995*/                  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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                            // Dst: (VMULPDZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*364008*/                0, /*End of Scope*/
/*364009*/              0, // EndSwitchOpcode
/*364010*/            /*Scope*/ 5|128,1/*133*/, /*->364145*/
/*364012*/              OPC_MoveChild0,
/*364013*/              OPC_SwitchOpcode /*2 cases */, 58, TARGET_VAL(ISD::LOAD),// ->364075
/*364017*/                OPC_RecordMemRef,
/*364018*/                OPC_RecordNode, // #1 = 'ld' chained node
/*364019*/                OPC_CheckFoldableChainNode,
/*364020*/                OPC_RecordChild1, // #2 = $src2
/*364021*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*364023*/                OPC_CheckPredicate, 9, // Predicate_load
/*364025*/                OPC_MoveParent,
/*364026*/                OPC_RecordChild1, // #3 = $src1
/*364027*/                OPC_MoveParent,
/*364028*/                OPC_MoveChild2,
/*364029*/                OPC_CheckImmAllZerosV,
/*364030*/                OPC_MoveParent,
/*364031*/                OPC_SwitchType /*2 cases */, 19, MVT::v4f32,// ->364053
/*364034*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*364036*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*364039*/                  OPC_EmitMergeInputChains1_1,
/*364040*/                  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>>, VR128X:{ *:[v4f32] }:$src1), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                            // Dst: (VMULPSZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*364053*/                /*SwitchType*/ 19, MVT::v4f64,// ->364074
/*364055*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*364057*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*364060*/                  OPC_EmitMergeInputChains1_1,
/*364061*/                  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>>, VR256X:{ *:[v4f64] }:$src1), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                            // Dst: (VMULPDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*364074*/                0, // EndSwitchType
/*364075*/              /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->364144
/*364078*/                OPC_RecordMemRef,
/*364079*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*364080*/                OPC_CheckFoldableChainNode,
/*364081*/                OPC_RecordChild1, // #2 = $src2
/*364082*/                OPC_Scope, 29, /*->364113*/ // 2 children in Scope
/*364084*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*364086*/                  OPC_MoveParent,
/*364087*/                  OPC_RecordChild1, // #3 = $src1
/*364088*/                  OPC_MoveParent,
/*364089*/                  OPC_MoveChild2,
/*364090*/                  OPC_CheckImmAllZerosV,
/*364091*/                  OPC_MoveParent,
/*364092*/                  OPC_CheckType, MVT::v4f32,
/*364094*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*364096*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*364099*/                  OPC_EmitMergeInputChains1_1,
/*364100*/                  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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                            // Dst: (VMULPSZ128rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*364113*/                /*Scope*/ 29, /*->364143*/
/*364114*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*364116*/                  OPC_MoveParent,
/*364117*/                  OPC_RecordChild1, // #3 = $src1
/*364118*/                  OPC_MoveParent,
/*364119*/                  OPC_MoveChild2,
/*364120*/                  OPC_CheckImmAllZerosV,
/*364121*/                  OPC_MoveParent,
/*364122*/                  OPC_CheckType, MVT::v4f64,
/*364124*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*364126*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*364129*/                  OPC_EmitMergeInputChains1_1,
/*364130*/                  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] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                            // Dst: (VMULPDZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*364143*/                0, /*End of Scope*/
/*364144*/              0, // EndSwitchOpcode
/*364145*/            0, /*End of Scope*/
/*364146*/          /*SwitchOpcode*/ 17|128,1/*145*/, TARGET_VAL(ISD::STRICT_FSUB),// ->364295
/*364150*/            OPC_RecordNode, // #1 = 'strict_fsub' chained node
/*364151*/            OPC_CheckFoldableChainNode,
/*364152*/            OPC_RecordChild1, // #2 = $src1
/*364153*/            OPC_MoveChild2,
/*364154*/            OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->364221
/*364158*/              OPC_RecordMemRef,
/*364159*/              OPC_RecordNode, // #3 = 'ld' chained node
/*364160*/              OPC_CheckFoldableChainNode,
/*364161*/              OPC_RecordChild1, // #4 = $src2
/*364162*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*364164*/              OPC_CheckPredicate, 9, // Predicate_load
/*364166*/              OPC_MoveParent,
/*364167*/              OPC_MoveParent,
/*364168*/              OPC_MoveChild2,
/*364169*/              OPC_CheckImmAllZerosV,
/*364170*/              OPC_MoveParent,
/*364171*/              OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->364196
/*364174*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*364176*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*364179*/                OPC_EmitMergeInputChains, 2, 1, 3, 
/*364183*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (strict_fsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                          // Dst: (VSUBPSZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*364196*/              /*SwitchType*/ 22, MVT::v4f64,// ->364220
/*364198*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*364200*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*364203*/                OPC_EmitMergeInputChains, 2, 1, 3, 
/*364207*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (strict_fsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                          // Dst: (VSUBPDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*364220*/              0, // EndSwitchType
/*364221*/            /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->364294
/*364224*/              OPC_RecordMemRef,
/*364225*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*364226*/              OPC_CheckFoldableChainNode,
/*364227*/              OPC_RecordChild1, // #4 = $src2
/*364228*/              OPC_Scope, 31, /*->364261*/ // 2 children in Scope
/*364230*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*364232*/                OPC_MoveParent,
/*364233*/                OPC_MoveParent,
/*364234*/                OPC_MoveChild2,
/*364235*/                OPC_CheckImmAllZerosV,
/*364236*/                OPC_MoveParent,
/*364237*/                OPC_CheckType, MVT::v4f32,
/*364239*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*364241*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*364244*/                OPC_EmitMergeInputChains, 2, 1, 3, 
/*364248*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (strict_fsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                          // Dst: (VSUBPSZ128rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*364261*/              /*Scope*/ 31, /*->364293*/
/*364262*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*364264*/                OPC_MoveParent,
/*364265*/                OPC_MoveParent,
/*364266*/                OPC_MoveChild2,
/*364267*/                OPC_CheckImmAllZerosV,
/*364268*/                OPC_MoveParent,
/*364269*/                OPC_CheckType, MVT::v4f64,
/*364271*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*364273*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*364276*/                OPC_EmitMergeInputChains, 2, 1, 3, 
/*364280*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (strict_fsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                          // Dst: (VSUBPDZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*364293*/              0, /*End of Scope*/
/*364294*/            0, // EndSwitchOpcode
/*364295*/          /*SwitchOpcode*/ 3|128,1/*131*/, TARGET_VAL(ISD::FSUB),// ->364430
/*364299*/            OPC_RecordChild0, // #1 = $src1
/*364300*/            OPC_MoveChild1,
/*364301*/            OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->364362
/*364305*/              OPC_RecordMemRef,
/*364306*/              OPC_RecordNode, // #2 = 'ld' chained node
/*364307*/              OPC_CheckFoldableChainNode,
/*364308*/              OPC_RecordChild1, // #3 = $src2
/*364309*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*364311*/              OPC_CheckPredicate, 9, // Predicate_load
/*364313*/              OPC_MoveParent,
/*364314*/              OPC_MoveParent,
/*364315*/              OPC_MoveChild2,
/*364316*/              OPC_CheckImmAllZerosV,
/*364317*/              OPC_MoveParent,
/*364318*/              OPC_SwitchType /*2 cases */, 19, MVT::v4f32,// ->364340
/*364321*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*364323*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*364326*/                OPC_EmitMergeInputChains1_2,
/*364327*/                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>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                          // Dst: (VSUBPSZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*364340*/              /*SwitchType*/ 19, MVT::v4f64,// ->364361
/*364342*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*364344*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*364347*/                OPC_EmitMergeInputChains1_2,
/*364348*/                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>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                          // Dst: (VSUBPDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*364361*/              0, // EndSwitchType
/*364362*/            /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->364429
/*364365*/              OPC_RecordMemRef,
/*364366*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*364367*/              OPC_CheckFoldableChainNode,
/*364368*/              OPC_RecordChild1, // #3 = $src2
/*364369*/              OPC_Scope, 28, /*->364399*/ // 2 children in Scope
/*364371*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*364373*/                OPC_MoveParent,
/*364374*/                OPC_MoveParent,
/*364375*/                OPC_MoveChild2,
/*364376*/                OPC_CheckImmAllZerosV,
/*364377*/                OPC_MoveParent,
/*364378*/                OPC_CheckType, MVT::v4f32,
/*364380*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*364382*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*364385*/                OPC_EmitMergeInputChains1_2,
/*364386*/                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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                          // Dst: (VSUBPSZ128rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*364399*/              /*Scope*/ 28, /*->364428*/
/*364400*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*364402*/                OPC_MoveParent,
/*364403*/                OPC_MoveParent,
/*364404*/                OPC_MoveChild2,
/*364405*/                OPC_CheckImmAllZerosV,
/*364406*/                OPC_MoveParent,
/*364407*/                OPC_CheckType, MVT::v4f64,
/*364409*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*364411*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*364414*/                OPC_EmitMergeInputChains1_2,
/*364415*/                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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                          // Dst: (VSUBPDZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*364428*/              0, /*End of Scope*/
/*364429*/            0, // EndSwitchOpcode
/*364430*/          /*SwitchOpcode*/ 17|128,1/*145*/, TARGET_VAL(ISD::STRICT_FDIV),// ->364579
/*364434*/            OPC_RecordNode, // #1 = 'strict_fdiv' chained node
/*364435*/            OPC_CheckFoldableChainNode,
/*364436*/            OPC_RecordChild1, // #2 = $src1
/*364437*/            OPC_MoveChild2,
/*364438*/            OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->364505
/*364442*/              OPC_RecordMemRef,
/*364443*/              OPC_RecordNode, // #3 = 'ld' chained node
/*364444*/              OPC_CheckFoldableChainNode,
/*364445*/              OPC_RecordChild1, // #4 = $src2
/*364446*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*364448*/              OPC_CheckPredicate, 9, // Predicate_load
/*364450*/              OPC_MoveParent,
/*364451*/              OPC_MoveParent,
/*364452*/              OPC_MoveChild2,
/*364453*/              OPC_CheckImmAllZerosV,
/*364454*/              OPC_MoveParent,
/*364455*/              OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->364480
/*364458*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*364460*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*364463*/                OPC_EmitMergeInputChains, 2, 1, 3, 
/*364467*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (strict_fdiv:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                          // Dst: (VDIVPSZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*364480*/              /*SwitchType*/ 22, MVT::v4f64,// ->364504
/*364482*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*364484*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*364487*/                OPC_EmitMergeInputChains, 2, 1, 3, 
/*364491*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (strict_fdiv:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                          // Dst: (VDIVPDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*364504*/              0, // EndSwitchType
/*364505*/            /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->364578
/*364508*/              OPC_RecordMemRef,
/*364509*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*364510*/              OPC_CheckFoldableChainNode,
/*364511*/              OPC_RecordChild1, // #4 = $src2
/*364512*/              OPC_Scope, 31, /*->364545*/ // 2 children in Scope
/*364514*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*364516*/                OPC_MoveParent,
/*364517*/                OPC_MoveParent,
/*364518*/                OPC_MoveChild2,
/*364519*/                OPC_CheckImmAllZerosV,
/*364520*/                OPC_MoveParent,
/*364521*/                OPC_CheckType, MVT::v4f32,
/*364523*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*364525*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*364528*/                OPC_EmitMergeInputChains, 2, 1, 3, 
/*364532*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (strict_fdiv:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                          // Dst: (VDIVPSZ128rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*364545*/              /*Scope*/ 31, /*->364577*/
/*364546*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*364548*/                OPC_MoveParent,
/*364549*/                OPC_MoveParent,
/*364550*/                OPC_MoveChild2,
/*364551*/                OPC_CheckImmAllZerosV,
/*364552*/                OPC_MoveParent,
/*364553*/                OPC_CheckType, MVT::v4f64,
/*364555*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*364557*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*364560*/                OPC_EmitMergeInputChains, 2, 1, 3, 
/*364564*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (strict_fdiv:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                          // Dst: (VDIVPDZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*364577*/              0, /*End of Scope*/
/*364578*/            0, // EndSwitchOpcode
/*364579*/          /*SwitchOpcode*/ 3|128,1/*131*/, TARGET_VAL(ISD::FDIV),// ->364714
/*364583*/            OPC_RecordChild0, // #1 = $src1
/*364584*/            OPC_MoveChild1,
/*364585*/            OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->364646
/*364589*/              OPC_RecordMemRef,
/*364590*/              OPC_RecordNode, // #2 = 'ld' chained node
/*364591*/              OPC_CheckFoldableChainNode,
/*364592*/              OPC_RecordChild1, // #3 = $src2
/*364593*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*364595*/              OPC_CheckPredicate, 9, // Predicate_load
/*364597*/              OPC_MoveParent,
/*364598*/              OPC_MoveParent,
/*364599*/              OPC_MoveChild2,
/*364600*/              OPC_CheckImmAllZerosV,
/*364601*/              OPC_MoveParent,
/*364602*/              OPC_SwitchType /*2 cases */, 19, MVT::v4f32,// ->364624
/*364605*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*364607*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*364610*/                OPC_EmitMergeInputChains1_2,
/*364611*/                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>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                          // Dst: (VDIVPSZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*364624*/              /*SwitchType*/ 19, MVT::v4f64,// ->364645
/*364626*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*364628*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*364631*/                OPC_EmitMergeInputChains1_2,
/*364632*/                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>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                          // Dst: (VDIVPDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*364645*/              0, // EndSwitchType
/*364646*/            /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->364713
/*364649*/              OPC_RecordMemRef,
/*364650*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*364651*/              OPC_CheckFoldableChainNode,
/*364652*/              OPC_RecordChild1, // #3 = $src2
/*364653*/              OPC_Scope, 28, /*->364683*/ // 2 children in Scope
/*364655*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*364657*/                OPC_MoveParent,
/*364658*/                OPC_MoveParent,
/*364659*/                OPC_MoveChild2,
/*364660*/                OPC_CheckImmAllZerosV,
/*364661*/                OPC_MoveParent,
/*364662*/                OPC_CheckType, MVT::v4f32,
/*364664*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*364666*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*364669*/                OPC_EmitMergeInputChains1_2,
/*364670*/                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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                          // Dst: (VDIVPSZ128rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*364683*/              /*Scope*/ 28, /*->364712*/
/*364684*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*364686*/                OPC_MoveParent,
/*364687*/                OPC_MoveParent,
/*364688*/                OPC_MoveChild2,
/*364689*/                OPC_CheckImmAllZerosV,
/*364690*/                OPC_MoveParent,
/*364691*/                OPC_CheckType, MVT::v4f64,
/*364693*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*364695*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*364698*/                OPC_EmitMergeInputChains1_2,
/*364699*/                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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                          // Dst: (VDIVPDZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*364712*/              0, /*End of Scope*/
/*364713*/            0, // EndSwitchOpcode
/*364714*/          /*SwitchOpcode*/ 3|128,1/*131*/, TARGET_VAL(X86ISD::FMIN),// ->364849
/*364718*/            OPC_RecordChild0, // #1 = $src1
/*364719*/            OPC_MoveChild1,
/*364720*/            OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->364781
/*364724*/              OPC_RecordMemRef,
/*364725*/              OPC_RecordNode, // #2 = 'ld' chained node
/*364726*/              OPC_CheckFoldableChainNode,
/*364727*/              OPC_RecordChild1, // #3 = $src2
/*364728*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*364730*/              OPC_CheckPredicate, 9, // Predicate_load
/*364732*/              OPC_MoveParent,
/*364733*/              OPC_MoveParent,
/*364734*/              OPC_MoveChild2,
/*364735*/              OPC_CheckImmAllZerosV,
/*364736*/              OPC_MoveParent,
/*364737*/              OPC_SwitchType /*2 cases */, 19, MVT::v4f32,// ->364759
/*364740*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*364742*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*364745*/                OPC_EmitMergeInputChains1_2,
/*364746*/                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>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                          // Dst: (VMINPSZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*364759*/              /*SwitchType*/ 19, MVT::v4f64,// ->364780
/*364761*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*364763*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*364766*/                OPC_EmitMergeInputChains1_2,
/*364767*/                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>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                          // Dst: (VMINPDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*364780*/              0, // EndSwitchType
/*364781*/            /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->364848
/*364784*/              OPC_RecordMemRef,
/*364785*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*364786*/              OPC_CheckFoldableChainNode,
/*364787*/              OPC_RecordChild1, // #3 = $src2
/*364788*/              OPC_Scope, 28, /*->364818*/ // 2 children in Scope
/*364790*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*364792*/                OPC_MoveParent,
/*364793*/                OPC_MoveParent,
/*364794*/                OPC_MoveChild2,
/*364795*/                OPC_CheckImmAllZerosV,
/*364796*/                OPC_MoveParent,
/*364797*/                OPC_CheckType, MVT::v4f32,
/*364799*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*364801*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*364804*/                OPC_EmitMergeInputChains1_2,
/*364805*/                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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                          // Dst: (VMINPSZ128rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*364818*/              /*Scope*/ 28, /*->364847*/
/*364819*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*364821*/                OPC_MoveParent,
/*364822*/                OPC_MoveParent,
/*364823*/                OPC_MoveChild2,
/*364824*/                OPC_CheckImmAllZerosV,
/*364825*/                OPC_MoveParent,
/*364826*/                OPC_CheckType, MVT::v4f64,
/*364828*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*364830*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*364833*/                OPC_EmitMergeInputChains1_2,
/*364834*/                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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                          // Dst: (VMINPDZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*364847*/              0, /*End of Scope*/
/*364848*/            0, // EndSwitchOpcode
/*364849*/          /*SwitchOpcode*/ 3|128,1/*131*/, TARGET_VAL(X86ISD::FMAX),// ->364984
/*364853*/            OPC_RecordChild0, // #1 = $src1
/*364854*/            OPC_MoveChild1,
/*364855*/            OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->364916
/*364859*/              OPC_RecordMemRef,
/*364860*/              OPC_RecordNode, // #2 = 'ld' chained node
/*364861*/              OPC_CheckFoldableChainNode,
/*364862*/              OPC_RecordChild1, // #3 = $src2
/*364863*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*364865*/              OPC_CheckPredicate, 9, // Predicate_load
/*364867*/              OPC_MoveParent,
/*364868*/              OPC_MoveParent,
/*364869*/              OPC_MoveChild2,
/*364870*/              OPC_CheckImmAllZerosV,
/*364871*/              OPC_MoveParent,
/*364872*/              OPC_SwitchType /*2 cases */, 19, MVT::v4f32,// ->364894
/*364875*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*364877*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*364880*/                OPC_EmitMergeInputChains1_2,
/*364881*/                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>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                          // Dst: (VMAXPSZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*364894*/              /*SwitchType*/ 19, MVT::v4f64,// ->364915
/*364896*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*364898*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*364901*/                OPC_EmitMergeInputChains1_2,
/*364902*/                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>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                          // Dst: (VMAXPDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*364915*/              0, // EndSwitchType
/*364916*/            /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->364983
/*364919*/              OPC_RecordMemRef,
/*364920*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*364921*/              OPC_CheckFoldableChainNode,
/*364922*/              OPC_RecordChild1, // #3 = $src2
/*364923*/              OPC_Scope, 28, /*->364953*/ // 2 children in Scope
/*364925*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*364927*/                OPC_MoveParent,
/*364928*/                OPC_MoveParent,
/*364929*/                OPC_MoveChild2,
/*364930*/                OPC_CheckImmAllZerosV,
/*364931*/                OPC_MoveParent,
/*364932*/                OPC_CheckType, MVT::v4f32,
/*364934*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*364936*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*364939*/                OPC_EmitMergeInputChains1_2,
/*364940*/                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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                          // Dst: (VMAXPSZ128rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*364953*/              /*Scope*/ 28, /*->364982*/
/*364954*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*364956*/                OPC_MoveParent,
/*364957*/                OPC_MoveParent,
/*364958*/                OPC_MoveChild2,
/*364959*/                OPC_CheckImmAllZerosV,
/*364960*/                OPC_MoveParent,
/*364961*/                OPC_CheckType, MVT::v4f64,
/*364963*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*364965*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*364968*/                OPC_EmitMergeInputChains1_2,
/*364969*/                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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                          // Dst: (VMAXPDZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*364982*/              0, /*End of Scope*/
/*364983*/            0, // EndSwitchOpcode
/*364984*/          /*SwitchOpcode*/ 14|128,2/*270*/, TARGET_VAL(X86ISD::FMINC),// ->365258
/*364988*/            OPC_Scope, 3|128,1/*131*/, /*->365122*/ // 2 children in Scope
/*364991*/              OPC_RecordChild0, // #1 = $src1
/*364992*/              OPC_MoveChild1,
/*364993*/              OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->365054
/*364997*/                OPC_RecordMemRef,
/*364998*/                OPC_RecordNode, // #2 = 'ld' chained node
/*364999*/                OPC_CheckFoldableChainNode,
/*365000*/                OPC_RecordChild1, // #3 = $src2
/*365001*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*365003*/                OPC_CheckPredicate, 9, // Predicate_load
/*365005*/                OPC_MoveParent,
/*365006*/                OPC_MoveParent,
/*365007*/                OPC_MoveChild2,
/*365008*/                OPC_CheckImmAllZerosV,
/*365009*/                OPC_MoveParent,
/*365010*/                OPC_SwitchType /*2 cases */, 19, MVT::v4f32,// ->365032
/*365013*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*365015*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*365018*/                  OPC_EmitMergeInputChains1_2,
/*365019*/                  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>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                            // Dst: (VMINCPSZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*365032*/                /*SwitchType*/ 19, MVT::v4f64,// ->365053
/*365034*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*365036*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*365039*/                  OPC_EmitMergeInputChains1_2,
/*365040*/                  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>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                            // Dst: (VMINCPDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*365053*/                0, // EndSwitchType
/*365054*/              /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->365121
/*365057*/                OPC_RecordMemRef,
/*365058*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*365059*/                OPC_CheckFoldableChainNode,
/*365060*/                OPC_RecordChild1, // #3 = $src2
/*365061*/                OPC_Scope, 28, /*->365091*/ // 2 children in Scope
/*365063*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*365065*/                  OPC_MoveParent,
/*365066*/                  OPC_MoveParent,
/*365067*/                  OPC_MoveChild2,
/*365068*/                  OPC_CheckImmAllZerosV,
/*365069*/                  OPC_MoveParent,
/*365070*/                  OPC_CheckType, MVT::v4f32,
/*365072*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*365074*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*365077*/                  OPC_EmitMergeInputChains1_2,
/*365078*/                  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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                            // Dst: (VMINCPSZ128rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*365091*/                /*Scope*/ 28, /*->365120*/
/*365092*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*365094*/                  OPC_MoveParent,
/*365095*/                  OPC_MoveParent,
/*365096*/                  OPC_MoveChild2,
/*365097*/                  OPC_CheckImmAllZerosV,
/*365098*/                  OPC_MoveParent,
/*365099*/                  OPC_CheckType, MVT::v4f64,
/*365101*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*365103*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*365106*/                  OPC_EmitMergeInputChains1_2,
/*365107*/                  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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                            // Dst: (VMINCPDZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*365120*/                0, /*End of Scope*/
/*365121*/              0, // EndSwitchOpcode
/*365122*/            /*Scope*/ 5|128,1/*133*/, /*->365257*/
/*365124*/              OPC_MoveChild0,
/*365125*/              OPC_SwitchOpcode /*2 cases */, 58, TARGET_VAL(ISD::LOAD),// ->365187
/*365129*/                OPC_RecordMemRef,
/*365130*/                OPC_RecordNode, // #1 = 'ld' chained node
/*365131*/                OPC_CheckFoldableChainNode,
/*365132*/                OPC_RecordChild1, // #2 = $src2
/*365133*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*365135*/                OPC_CheckPredicate, 9, // Predicate_load
/*365137*/                OPC_MoveParent,
/*365138*/                OPC_RecordChild1, // #3 = $src1
/*365139*/                OPC_MoveParent,
/*365140*/                OPC_MoveChild2,
/*365141*/                OPC_CheckImmAllZerosV,
/*365142*/                OPC_MoveParent,
/*365143*/                OPC_SwitchType /*2 cases */, 19, MVT::v4f32,// ->365165
/*365146*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*365148*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*365151*/                  OPC_EmitMergeInputChains1_1,
/*365152*/                  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>>, VR128X:{ *:[v4f32] }:$src1), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                            // Dst: (VMINCPSZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*365165*/                /*SwitchType*/ 19, MVT::v4f64,// ->365186
/*365167*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*365169*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*365172*/                  OPC_EmitMergeInputChains1_1,
/*365173*/                  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>>, VR256X:{ *:[v4f64] }:$src1), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                            // Dst: (VMINCPDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*365186*/                0, // EndSwitchType
/*365187*/              /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->365256
/*365190*/                OPC_RecordMemRef,
/*365191*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*365192*/                OPC_CheckFoldableChainNode,
/*365193*/                OPC_RecordChild1, // #2 = $src2
/*365194*/                OPC_Scope, 29, /*->365225*/ // 2 children in Scope
/*365196*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*365198*/                  OPC_MoveParent,
/*365199*/                  OPC_RecordChild1, // #3 = $src1
/*365200*/                  OPC_MoveParent,
/*365201*/                  OPC_MoveChild2,
/*365202*/                  OPC_CheckImmAllZerosV,
/*365203*/                  OPC_MoveParent,
/*365204*/                  OPC_CheckType, MVT::v4f32,
/*365206*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*365208*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*365211*/                  OPC_EmitMergeInputChains1_1,
/*365212*/                  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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                            // Dst: (VMINCPSZ128rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*365225*/                /*Scope*/ 29, /*->365255*/
/*365226*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*365228*/                  OPC_MoveParent,
/*365229*/                  OPC_RecordChild1, // #3 = $src1
/*365230*/                  OPC_MoveParent,
/*365231*/                  OPC_MoveChild2,
/*365232*/                  OPC_CheckImmAllZerosV,
/*365233*/                  OPC_MoveParent,
/*365234*/                  OPC_CheckType, MVT::v4f64,
/*365236*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*365238*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*365241*/                  OPC_EmitMergeInputChains1_1,
/*365242*/                  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] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                            // Dst: (VMINCPDZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*365255*/                0, /*End of Scope*/
/*365256*/              0, // EndSwitchOpcode
/*365257*/            0, /*End of Scope*/
/*365258*/          /*SwitchOpcode*/ 14|128,2/*270*/, TARGET_VAL(X86ISD::FMAXC),// ->365532
/*365262*/            OPC_Scope, 3|128,1/*131*/, /*->365396*/ // 2 children in Scope
/*365265*/              OPC_RecordChild0, // #1 = $src1
/*365266*/              OPC_MoveChild1,
/*365267*/              OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->365328
/*365271*/                OPC_RecordMemRef,
/*365272*/                OPC_RecordNode, // #2 = 'ld' chained node
/*365273*/                OPC_CheckFoldableChainNode,
/*365274*/                OPC_RecordChild1, // #3 = $src2
/*365275*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*365277*/                OPC_CheckPredicate, 9, // Predicate_load
/*365279*/                OPC_MoveParent,
/*365280*/                OPC_MoveParent,
/*365281*/                OPC_MoveChild2,
/*365282*/                OPC_CheckImmAllZerosV,
/*365283*/                OPC_MoveParent,
/*365284*/                OPC_SwitchType /*2 cases */, 19, MVT::v4f32,// ->365306
/*365287*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*365289*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*365292*/                  OPC_EmitMergeInputChains1_2,
/*365293*/                  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>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                            // Dst: (VMAXCPSZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*365306*/                /*SwitchType*/ 19, MVT::v4f64,// ->365327
/*365308*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*365310*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*365313*/                  OPC_EmitMergeInputChains1_2,
/*365314*/                  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>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                            // Dst: (VMAXCPDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*365327*/                0, // EndSwitchType
/*365328*/              /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->365395
/*365331*/                OPC_RecordMemRef,
/*365332*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*365333*/                OPC_CheckFoldableChainNode,
/*365334*/                OPC_RecordChild1, // #3 = $src2
/*365335*/                OPC_Scope, 28, /*->365365*/ // 2 children in Scope
/*365337*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*365339*/                  OPC_MoveParent,
/*365340*/                  OPC_MoveParent,
/*365341*/                  OPC_MoveChild2,
/*365342*/                  OPC_CheckImmAllZerosV,
/*365343*/                  OPC_MoveParent,
/*365344*/                  OPC_CheckType, MVT::v4f32,
/*365346*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*365348*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*365351*/                  OPC_EmitMergeInputChains1_2,
/*365352*/                  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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                            // Dst: (VMAXCPSZ128rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*365365*/                /*Scope*/ 28, /*->365394*/
/*365366*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*365368*/                  OPC_MoveParent,
/*365369*/                  OPC_MoveParent,
/*365370*/                  OPC_MoveChild2,
/*365371*/                  OPC_CheckImmAllZerosV,
/*365372*/                  OPC_MoveParent,
/*365373*/                  OPC_CheckType, MVT::v4f64,
/*365375*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*365377*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*365380*/                  OPC_EmitMergeInputChains1_2,
/*365381*/                  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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                            // Dst: (VMAXCPDZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*365394*/                0, /*End of Scope*/
/*365395*/              0, // EndSwitchOpcode
/*365396*/            /*Scope*/ 5|128,1/*133*/, /*->365531*/
/*365398*/              OPC_MoveChild0,
/*365399*/              OPC_SwitchOpcode /*2 cases */, 58, TARGET_VAL(ISD::LOAD),// ->365461
/*365403*/                OPC_RecordMemRef,
/*365404*/                OPC_RecordNode, // #1 = 'ld' chained node
/*365405*/                OPC_CheckFoldableChainNode,
/*365406*/                OPC_RecordChild1, // #2 = $src2
/*365407*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*365409*/                OPC_CheckPredicate, 9, // Predicate_load
/*365411*/                OPC_MoveParent,
/*365412*/                OPC_RecordChild1, // #3 = $src1
/*365413*/                OPC_MoveParent,
/*365414*/                OPC_MoveChild2,
/*365415*/                OPC_CheckImmAllZerosV,
/*365416*/                OPC_MoveParent,
/*365417*/                OPC_SwitchType /*2 cases */, 19, MVT::v4f32,// ->365439
/*365420*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*365422*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*365425*/                  OPC_EmitMergeInputChains1_1,
/*365426*/                  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>>, VR128X:{ *:[v4f32] }:$src1), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                            // Dst: (VMAXCPSZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*365439*/                /*SwitchType*/ 19, MVT::v4f64,// ->365460
/*365441*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*365443*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*365446*/                  OPC_EmitMergeInputChains1_1,
/*365447*/                  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>>, VR256X:{ *:[v4f64] }:$src1), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                            // Dst: (VMAXCPDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*365460*/                0, // EndSwitchType
/*365461*/              /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->365530
/*365464*/                OPC_RecordMemRef,
/*365465*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*365466*/                OPC_CheckFoldableChainNode,
/*365467*/                OPC_RecordChild1, // #2 = $src2
/*365468*/                OPC_Scope, 29, /*->365499*/ // 2 children in Scope
/*365470*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*365472*/                  OPC_MoveParent,
/*365473*/                  OPC_RecordChild1, // #3 = $src1
/*365474*/                  OPC_MoveParent,
/*365475*/                  OPC_MoveChild2,
/*365476*/                  OPC_CheckImmAllZerosV,
/*365477*/                  OPC_MoveParent,
/*365478*/                  OPC_CheckType, MVT::v4f32,
/*365480*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*365482*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*365485*/                  OPC_EmitMergeInputChains1_1,
/*365486*/                  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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                            // Dst: (VMAXCPSZ128rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*365499*/                /*Scope*/ 29, /*->365529*/
/*365500*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*365502*/                  OPC_MoveParent,
/*365503*/                  OPC_RecordChild1, // #3 = $src1
/*365504*/                  OPC_MoveParent,
/*365505*/                  OPC_MoveChild2,
/*365506*/                  OPC_CheckImmAllZerosV,
/*365507*/                  OPC_MoveParent,
/*365508*/                  OPC_CheckType, MVT::v4f64,
/*365510*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*365512*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*365515*/                  OPC_EmitMergeInputChains1_1,
/*365516*/                  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] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                            // Dst: (VMAXCPDZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*365529*/                0, /*End of Scope*/
/*365530*/              0, // EndSwitchOpcode
/*365531*/            0, /*End of Scope*/
/*365532*/          /*SwitchOpcode*/ 3|128,1/*131*/, TARGET_VAL(X86ISD::SCALEF),// ->365667
/*365536*/            OPC_RecordChild0, // #1 = $src1
/*365537*/            OPC_MoveChild1,
/*365538*/            OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->365599
/*365542*/              OPC_RecordMemRef,
/*365543*/              OPC_RecordNode, // #2 = 'ld' chained node
/*365544*/              OPC_CheckFoldableChainNode,
/*365545*/              OPC_RecordChild1, // #3 = $src2
/*365546*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*365548*/              OPC_CheckPredicate, 9, // Predicate_load
/*365550*/              OPC_MoveParent,
/*365551*/              OPC_MoveParent,
/*365552*/              OPC_MoveChild2,
/*365553*/              OPC_CheckImmAllZerosV,
/*365554*/              OPC_MoveParent,
/*365555*/              OPC_SwitchType /*2 cases */, 19, MVT::v4f32,// ->365577
/*365558*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*365560*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*365563*/                OPC_EmitMergeInputChains1_2,
/*365564*/                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>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                          // Dst: (VSCALEFPSZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*365577*/              /*SwitchType*/ 19, MVT::v4f64,// ->365598
/*365579*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*365581*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*365584*/                OPC_EmitMergeInputChains1_2,
/*365585*/                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>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                          // Dst: (VSCALEFPDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*365598*/              0, // EndSwitchType
/*365599*/            /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->365666
/*365602*/              OPC_RecordMemRef,
/*365603*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*365604*/              OPC_CheckFoldableChainNode,
/*365605*/              OPC_RecordChild1, // #3 = $src2
/*365606*/              OPC_Scope, 28, /*->365636*/ // 2 children in Scope
/*365608*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*365610*/                OPC_MoveParent,
/*365611*/                OPC_MoveParent,
/*365612*/                OPC_MoveChild2,
/*365613*/                OPC_CheckImmAllZerosV,
/*365614*/                OPC_MoveParent,
/*365615*/                OPC_CheckType, MVT::v4f32,
/*365617*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*365619*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*365622*/                OPC_EmitMergeInputChains1_2,
/*365623*/                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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                          // Dst: (VSCALEFPSZ128rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*365636*/              /*Scope*/ 28, /*->365665*/
/*365637*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*365639*/                OPC_MoveParent,
/*365640*/                OPC_MoveParent,
/*365641*/                OPC_MoveChild2,
/*365642*/                OPC_CheckImmAllZerosV,
/*365643*/                OPC_MoveParent,
/*365644*/                OPC_CheckType, MVT::v4f64,
/*365646*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*365648*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*365651*/                OPC_EmitMergeInputChains1_2,
/*365652*/                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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                          // Dst: (VSCALEFPDZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*365665*/              0, /*End of Scope*/
/*365666*/            0, // EndSwitchOpcode
/*365667*/          /*SwitchOpcode*/ 76, TARGET_VAL(X86ISD::VPERMV),// ->365746
/*365670*/            OPC_RecordChild0, // #1 = $src1
/*365671*/            OPC_MoveChild1,
/*365672*/            OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->365710
/*365676*/              OPC_RecordMemRef,
/*365677*/              OPC_RecordNode, // #2 = 'ld' chained node
/*365678*/              OPC_CheckFoldableChainNode,
/*365679*/              OPC_RecordChild1, // #3 = $src2
/*365680*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*365682*/              OPC_CheckPredicate, 9, // Predicate_load
/*365684*/              OPC_MoveParent,
/*365685*/              OPC_MoveParent,
/*365686*/              OPC_MoveChild2,
/*365687*/              OPC_CheckImmAllZerosV,
/*365688*/              OPC_MoveParent,
/*365689*/              OPC_CheckType, MVT::v4f64,
/*365691*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*365693*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*365696*/              OPC_EmitMergeInputChains1_2,
/*365697*/              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>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                        // Dst: (VPERMPDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*365710*/            /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->365745
/*365713*/              OPC_RecordMemRef,
/*365714*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*365715*/              OPC_CheckFoldableChainNode,
/*365716*/              OPC_RecordChild1, // #3 = $src2
/*365717*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*365719*/              OPC_MoveParent,
/*365720*/              OPC_MoveParent,
/*365721*/              OPC_MoveChild2,
/*365722*/              OPC_CheckImmAllZerosV,
/*365723*/              OPC_MoveParent,
/*365724*/              OPC_CheckType, MVT::v4f64,
/*365726*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*365728*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*365731*/              OPC_EmitMergeInputChains1_2,
/*365732*/              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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                        // Dst: (VPERMPDZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*365745*/            0, // EndSwitchOpcode
/*365746*/          /*SwitchOpcode*/ 3|128,1/*131*/, TARGET_VAL(X86ISD::VPERMILPV),// ->365881
/*365750*/            OPC_RecordChild0, // #1 = $src1
/*365751*/            OPC_MoveChild1,
/*365752*/            OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->365813
/*365756*/              OPC_RecordMemRef,
/*365757*/              OPC_RecordNode, // #2 = 'ld' chained node
/*365758*/              OPC_CheckFoldableChainNode,
/*365759*/              OPC_RecordChild1, // #3 = $src2
/*365760*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*365762*/              OPC_CheckPredicate, 9, // Predicate_load
/*365764*/              OPC_MoveParent,
/*365765*/              OPC_MoveParent,
/*365766*/              OPC_MoveChild2,
/*365767*/              OPC_CheckImmAllZerosV,
/*365768*/              OPC_MoveParent,
/*365769*/              OPC_SwitchType /*2 cases */, 19, MVT::v4f32,// ->365791
/*365772*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*365774*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*365777*/                OPC_EmitMergeInputChains1_2,
/*365778*/                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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                          // Dst: (VPERMILPSZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*365791*/              /*SwitchType*/ 19, MVT::v4f64,// ->365812
/*365793*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*365795*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*365798*/                OPC_EmitMergeInputChains1_2,
/*365799*/                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>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                          // Dst: (VPERMILPDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*365812*/              0, // EndSwitchType
/*365813*/            /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->365880
/*365816*/              OPC_RecordMemRef,
/*365817*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*365818*/              OPC_CheckFoldableChainNode,
/*365819*/              OPC_RecordChild1, // #3 = $src2
/*365820*/              OPC_Scope, 28, /*->365850*/ // 2 children in Scope
/*365822*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*365824*/                OPC_MoveParent,
/*365825*/                OPC_MoveParent,
/*365826*/                OPC_MoveChild2,
/*365827*/                OPC_CheckImmAllZerosV,
/*365828*/                OPC_MoveParent,
/*365829*/                OPC_CheckType, MVT::v4f32,
/*365831*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*365833*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*365836*/                OPC_EmitMergeInputChains1_2,
/*365837*/                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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                          // Dst: (VPERMILPSZ128rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*365850*/              /*Scope*/ 28, /*->365879*/
/*365851*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*365853*/                OPC_MoveParent,
/*365854*/                OPC_MoveParent,
/*365855*/                OPC_MoveChild2,
/*365856*/                OPC_CheckImmAllZerosV,
/*365857*/                OPC_MoveParent,
/*365858*/                OPC_CheckType, MVT::v4f64,
/*365860*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*365862*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*365865*/                OPC_EmitMergeInputChains1_2,
/*365866*/                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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                          // Dst: (VPERMILPDZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*365879*/              0, /*End of Scope*/
/*365880*/            0, // EndSwitchOpcode
/*365881*/          /*SwitchOpcode*/ 79|128,3/*463*/, TARGET_VAL(ISD::STRICT_FMA),// ->366348
/*365885*/            OPC_RecordNode, // #1 = 'X86strict_Fmadd' chained node
/*365886*/            OPC_CheckFoldableChainNode,
/*365887*/            OPC_Scope, 47|128,2/*303*/, /*->366193*/ // 2 children in Scope
/*365890*/              OPC_RecordChild1, // #2 = $src2
/*365891*/              OPC_Scope, 19|128,1/*147*/, /*->366041*/ // 2 children in Scope
/*365894*/                OPC_RecordChild2, // #3 = $src1
/*365895*/                OPC_MoveChild3,
/*365896*/                OPC_SwitchOpcode /*2 cases */, 65, TARGET_VAL(ISD::LOAD),// ->365965
/*365900*/                  OPC_RecordMemRef,
/*365901*/                  OPC_RecordNode, // #4 = 'ld' chained node
/*365902*/                  OPC_CheckFoldableChainNode,
/*365903*/                  OPC_RecordChild1, // #5 = $src3
/*365904*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*365906*/                  OPC_CheckPredicate, 9, // Predicate_load
/*365908*/                  OPC_MoveParent,
/*365909*/                  OPC_MoveParent,
/*365910*/                  OPC_MoveChild2,
/*365911*/                  OPC_CheckImmAllZerosV,
/*365912*/                  OPC_MoveParent,
/*365913*/                  OPC_SwitchType /*2 cases */, 23, MVT::v4f32,// ->365939
/*365916*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*365918*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/5, // selectAddr:$src3 #6 #7 #8 #9 #10
/*365921*/                    OPC_EmitMergeInputChains, 2, 1, 4, 
/*365925*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f32, 8/*#Ops*/, 3, 0, 2, 6, 7, 8, 9, 10, 
                              // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_Fmadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                              // Dst: (VFMADD213PSZ128mkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*365939*/                  /*SwitchType*/ 23, MVT::v4f64,// ->365964
/*365941*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*365943*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/5, // selectAddr:$src3 #6 #7 #8 #9 #10
/*365946*/                    OPC_EmitMergeInputChains, 2, 1, 4, 
/*365950*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f64, 8/*#Ops*/, 3, 0, 2, 6, 7, 8, 9, 10, 
                              // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_Fmadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                              // Dst: (VFMADD213PDZ256mkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*365964*/                  0, // EndSwitchType
/*365965*/                /*SwitchOpcode*/ 72, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->366040
/*365968*/                  OPC_RecordMemRef,
/*365969*/                  OPC_RecordNode, // #4 = 'X86VBroadcastld' chained node
/*365970*/                  OPC_CheckFoldableChainNode,
/*365971*/                  OPC_RecordChild1, // #5 = $src3
/*365972*/                  OPC_Scope, 32, /*->366006*/ // 2 children in Scope
/*365974*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*365976*/                    OPC_MoveParent,
/*365977*/                    OPC_MoveParent,
/*365978*/                    OPC_MoveChild2,
/*365979*/                    OPC_CheckImmAllZerosV,
/*365980*/                    OPC_MoveParent,
/*365981*/                    OPC_CheckType, MVT::v4f32,
/*365983*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*365985*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/5, // selectAddr:$src3 #6 #7 #8 #9 #10
/*365988*/                    OPC_EmitMergeInputChains, 2, 1, 4, 
/*365992*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZ128mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f32, 8/*#Ops*/, 3, 0, 2, 6, 7, 8, 9, 10, 
                              // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_Fmadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                              // Dst: (VFMADD213PSZ128mbkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*366006*/                  /*Scope*/ 32, /*->366039*/
/*366007*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*366009*/                    OPC_MoveParent,
/*366010*/                    OPC_MoveParent,
/*366011*/                    OPC_MoveChild2,
/*366012*/                    OPC_CheckImmAllZerosV,
/*366013*/                    OPC_MoveParent,
/*366014*/                    OPC_CheckType, MVT::v4f64,
/*366016*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*366018*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/5, // selectAddr:$src3 #6 #7 #8 #9 #10
/*366021*/                    OPC_EmitMergeInputChains, 2, 1, 4, 
/*366025*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZ256mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f64, 8/*#Ops*/, 3, 0, 2, 6, 7, 8, 9, 10, 
                              // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_Fmadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                              // Dst: (VFMADD213PDZ256mbkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*366039*/                  0, /*End of Scope*/
/*366040*/                0, // EndSwitchOpcode
/*366041*/              /*Scope*/ 21|128,1/*149*/, /*->366192*/
/*366043*/                OPC_MoveChild2,
/*366044*/                OPC_SwitchOpcode /*2 cases */, 66, TARGET_VAL(ISD::LOAD),// ->366114
/*366048*/                  OPC_RecordMemRef,
/*366049*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*366050*/                  OPC_CheckFoldableChainNode,
/*366051*/                  OPC_RecordChild1, // #4 = $src3
/*366052*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*366054*/                  OPC_CheckPredicate, 9, // Predicate_load
/*366056*/                  OPC_MoveParent,
/*366057*/                  OPC_RecordChild3, // #5 = $src1
/*366058*/                  OPC_MoveParent,
/*366059*/                  OPC_MoveChild2,
/*366060*/                  OPC_CheckImmAllZerosV,
/*366061*/                  OPC_MoveParent,
/*366062*/                  OPC_SwitchType /*2 cases */, 23, MVT::v4f32,// ->366088
/*366065*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*366067*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*366070*/                    OPC_EmitMergeInputChains, 2, 1, 3, 
/*366074*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PSZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f32, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                              // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_Fmadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4f32] }:$src1), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                              // Dst: (VFMADD231PSZ128mkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*366088*/                  /*SwitchType*/ 23, MVT::v4f64,// ->366113
/*366090*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*366092*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*366095*/                    OPC_EmitMergeInputChains, 2, 1, 3, 
/*366099*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PDZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f64, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                              // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_Fmadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v4f64] }:$src1), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                              // Dst: (VFMADD231PDZ256mkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*366113*/                  0, // EndSwitchType
/*366114*/                /*SwitchOpcode*/ 74, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->366191
/*366117*/                  OPC_RecordMemRef,
/*366118*/                  OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*366119*/                  OPC_CheckFoldableChainNode,
/*366120*/                  OPC_RecordChild1, // #4 = $src3
/*366121*/                  OPC_Scope, 33, /*->366156*/ // 2 children in Scope
/*366123*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*366125*/                    OPC_MoveParent,
/*366126*/                    OPC_RecordChild3, // #5 = $src1
/*366127*/                    OPC_MoveParent,
/*366128*/                    OPC_MoveChild2,
/*366129*/                    OPC_CheckImmAllZerosV,
/*366130*/                    OPC_MoveParent,
/*366131*/                    OPC_CheckType, MVT::v4f32,
/*366133*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*366135*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*366138*/                    OPC_EmitMergeInputChains, 2, 1, 3, 
/*366142*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PSZ128mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f32, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                              // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_Fmadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                              // Dst: (VFMADD231PSZ128mbkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*366156*/                  /*Scope*/ 33, /*->366190*/
/*366157*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*366159*/                    OPC_MoveParent,
/*366160*/                    OPC_RecordChild3, // #5 = $src1
/*366161*/                    OPC_MoveParent,
/*366162*/                    OPC_MoveChild2,
/*366163*/                    OPC_CheckImmAllZerosV,
/*366164*/                    OPC_MoveParent,
/*366165*/                    OPC_CheckType, MVT::v4f64,
/*366167*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*366169*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*366172*/                    OPC_EmitMergeInputChains, 2, 1, 3, 
/*366176*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PDZ256mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f64, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                              // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_Fmadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                              // Dst: (VFMADD231PDZ256mbkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*366190*/                  0, /*End of Scope*/
/*366191*/                0, // EndSwitchOpcode
/*366192*/              0, /*End of Scope*/
/*366193*/            /*Scope*/ 24|128,1/*152*/, /*->366347*/
/*366195*/              OPC_MoveChild1,
/*366196*/              OPC_SwitchOpcode /*2 cases */, 67, TARGET_VAL(ISD::LOAD),// ->366267
/*366200*/                OPC_RecordMemRef,
/*366201*/                OPC_RecordNode, // #2 = 'ld' chained node
/*366202*/                OPC_CheckFoldableChainNode,
/*366203*/                OPC_RecordChild1, // #3 = $src3
/*366204*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*366206*/                OPC_CheckPredicate, 9, // Predicate_load
/*366208*/                OPC_MoveParent,
/*366209*/                OPC_RecordChild2, // #4 = $src1
/*366210*/                OPC_RecordChild3, // #5 = $src2
/*366211*/                OPC_MoveParent,
/*366212*/                OPC_MoveChild2,
/*366213*/                OPC_CheckImmAllZerosV,
/*366214*/                OPC_MoveParent,
/*366215*/                OPC_SwitchType /*2 cases */, 23, MVT::v4f32,// ->366241
/*366218*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*366220*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*366223*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*366227*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PSZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_Fmadd:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                            // Dst: (VFMADD132PSZ128mkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*366241*/                /*SwitchType*/ 23, MVT::v4f64,// ->366266
/*366243*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*366245*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*366248*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*366252*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PDZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_Fmadd:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                            // Dst: (VFMADD132PDZ256mkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*366266*/                0, // EndSwitchType
/*366267*/              /*SwitchOpcode*/ 76, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->366346
/*366270*/                OPC_RecordMemRef,
/*366271*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*366272*/                OPC_CheckFoldableChainNode,
/*366273*/                OPC_RecordChild1, // #3 = $src3
/*366274*/                OPC_Scope, 34, /*->366310*/ // 2 children in Scope
/*366276*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*366278*/                  OPC_MoveParent,
/*366279*/                  OPC_RecordChild2, // #4 = $src1
/*366280*/                  OPC_RecordChild3, // #5 = $src2
/*366281*/                  OPC_MoveParent,
/*366282*/                  OPC_MoveChild2,
/*366283*/                  OPC_CheckImmAllZerosV,
/*366284*/                  OPC_MoveParent,
/*366285*/                  OPC_CheckType, MVT::v4f32,
/*366287*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*366289*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*366292*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*366296*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PSZ128mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_Fmadd:{ *:[v4f32] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                            // Dst: (VFMADD132PSZ128mbkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*366310*/                /*Scope*/ 34, /*->366345*/
/*366311*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*366313*/                  OPC_MoveParent,
/*366314*/                  OPC_RecordChild2, // #4 = $src1
/*366315*/                  OPC_RecordChild3, // #5 = $src2
/*366316*/                  OPC_MoveParent,
/*366317*/                  OPC_MoveChild2,
/*366318*/                  OPC_CheckImmAllZerosV,
/*366319*/                  OPC_MoveParent,
/*366320*/                  OPC_CheckType, MVT::v4f64,
/*366322*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*366324*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*366327*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*366331*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PDZ256mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_Fmadd:{ *:[v4f64] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                            // Dst: (VFMADD132PDZ256mbkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*366345*/                0, /*End of Scope*/
/*366346*/              0, // EndSwitchOpcode
/*366347*/            0, /*End of Scope*/
/*366348*/          /*SwitchOpcode*/ 49|128,3/*433*/, TARGET_VAL(ISD::FMA),// ->366785
/*366352*/            OPC_Scope, 31|128,2/*287*/, /*->366642*/ // 2 children in Scope
/*366355*/              OPC_RecordChild0, // #1 = $src2
/*366356*/              OPC_Scope, 15|128,1/*143*/, /*->366502*/ // 2 children in Scope
/*366359*/                OPC_RecordChild1, // #2 = $src1
/*366360*/                OPC_MoveChild2,
/*366361*/                OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->366428
/*366365*/                  OPC_RecordMemRef,
/*366366*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*366367*/                  OPC_CheckFoldableChainNode,
/*366368*/                  OPC_RecordChild1, // #4 = $src3
/*366369*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*366371*/                  OPC_CheckPredicate, 9, // Predicate_load
/*366373*/                  OPC_MoveParent,
/*366374*/                  OPC_MoveParent,
/*366375*/                  OPC_MoveChild2,
/*366376*/                  OPC_CheckImmAllZerosV,
/*366377*/                  OPC_MoveParent,
/*366378*/                  OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->366403
/*366381*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*366383*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*366386*/                    OPC_EmitMergeInputChains, 1, 3, 
/*366389*/                    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>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                              // Dst: (VFMADD213PSZ128mkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*366403*/                  /*SwitchType*/ 22, MVT::v4f64,// ->366427
/*366405*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*366407*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*366410*/                    OPC_EmitMergeInputChains, 1, 3, 
/*366413*/                    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>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                              // Dst: (VFMADD213PDZ256mkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*366427*/                  0, // EndSwitchType
/*366428*/                /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->366501
/*366431*/                  OPC_RecordMemRef,
/*366432*/                  OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*366433*/                  OPC_CheckFoldableChainNode,
/*366434*/                  OPC_RecordChild1, // #4 = $src3
/*366435*/                  OPC_Scope, 31, /*->366468*/ // 2 children in Scope
/*366437*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*366439*/                    OPC_MoveParent,
/*366440*/                    OPC_MoveParent,
/*366441*/                    OPC_MoveChild2,
/*366442*/                    OPC_CheckImmAllZerosV,
/*366443*/                    OPC_MoveParent,
/*366444*/                    OPC_CheckType, MVT::v4f32,
/*366446*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*366448*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*366451*/                    OPC_EmitMergeInputChains, 1, 3, 
/*366454*/                    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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                              // Dst: (VFMADD213PSZ128mbkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*366468*/                  /*Scope*/ 31, /*->366500*/
/*366469*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*366471*/                    OPC_MoveParent,
/*366472*/                    OPC_MoveParent,
/*366473*/                    OPC_MoveChild2,
/*366474*/                    OPC_CheckImmAllZerosV,
/*366475*/                    OPC_MoveParent,
/*366476*/                    OPC_CheckType, MVT::v4f64,
/*366478*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*366480*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*366483*/                    OPC_EmitMergeInputChains, 1, 3, 
/*366486*/                    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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                              // Dst: (VFMADD213PDZ256mbkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*366500*/                  0, /*End of Scope*/
/*366501*/                0, // EndSwitchOpcode
/*366502*/              /*Scope*/ 9|128,1/*137*/, /*->366641*/
/*366504*/                OPC_MoveChild1,
/*366505*/                OPC_SwitchOpcode /*2 cases */, 60, TARGET_VAL(ISD::LOAD),// ->366569
/*366509*/                  OPC_RecordMemRef,
/*366510*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*366511*/                  OPC_CheckFoldableChainNode,
/*366512*/                  OPC_RecordChild1, // #3 = $src3
/*366513*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*366515*/                  OPC_CheckPredicate, 9, // Predicate_load
/*366517*/                  OPC_MoveParent,
/*366518*/                  OPC_RecordChild2, // #4 = $src1
/*366519*/                  OPC_MoveParent,
/*366520*/                  OPC_MoveChild2,
/*366521*/                  OPC_CheckImmAllZerosV,
/*366522*/                  OPC_MoveParent,
/*366523*/                  OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->366546
/*366526*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*366528*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*366531*/                    OPC_EmitMergeInputChains1_2,
/*366532*/                    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>>, VR128X:{ *:[v4f32] }:$src1), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                              // Dst: (VFMADD231PSZ128mkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*366546*/                  /*SwitchType*/ 20, MVT::v4f64,// ->366568
/*366548*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*366550*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*366553*/                    OPC_EmitMergeInputChains1_2,
/*366554*/                    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>>, VR256X:{ *:[v4f64] }:$src1), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                              // Dst: (VFMADD231PDZ256mkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*366568*/                  0, // EndSwitchType
/*366569*/                /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->366640
/*366572*/                  OPC_RecordMemRef,
/*366573*/                  OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*366574*/                  OPC_CheckFoldableChainNode,
/*366575*/                  OPC_RecordChild1, // #3 = $src3
/*366576*/                  OPC_Scope, 30, /*->366608*/ // 2 children in Scope
/*366578*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*366580*/                    OPC_MoveParent,
/*366581*/                    OPC_RecordChild2, // #4 = $src1
/*366582*/                    OPC_MoveParent,
/*366583*/                    OPC_MoveChild2,
/*366584*/                    OPC_CheckImmAllZerosV,
/*366585*/                    OPC_MoveParent,
/*366586*/                    OPC_CheckType, MVT::v4f32,
/*366588*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*366590*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*366593*/                    OPC_EmitMergeInputChains1_2,
/*366594*/                    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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                              // Dst: (VFMADD231PSZ128mbkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*366608*/                  /*Scope*/ 30, /*->366639*/
/*366609*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*366611*/                    OPC_MoveParent,
/*366612*/                    OPC_RecordChild2, // #4 = $src1
/*366613*/                    OPC_MoveParent,
/*366614*/                    OPC_MoveChild2,
/*366615*/                    OPC_CheckImmAllZerosV,
/*366616*/                    OPC_MoveParent,
/*366617*/                    OPC_CheckType, MVT::v4f64,
/*366619*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*366621*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*366624*/                    OPC_EmitMergeInputChains1_2,
/*366625*/                    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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                              // Dst: (VFMADD231PDZ256mbkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*366639*/                  0, /*End of Scope*/
/*366640*/                0, // EndSwitchOpcode
/*366641*/              0, /*End of Scope*/
/*366642*/            /*Scope*/ 12|128,1/*140*/, /*->366784*/
/*366644*/              OPC_MoveChild0,
/*366645*/              OPC_SwitchOpcode /*2 cases */, 61, TARGET_VAL(ISD::LOAD),// ->366710
/*366649*/                OPC_RecordMemRef,
/*366650*/                OPC_RecordNode, // #1 = 'ld' chained node
/*366651*/                OPC_CheckFoldableChainNode,
/*366652*/                OPC_RecordChild1, // #2 = $src3
/*366653*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*366655*/                OPC_CheckPredicate, 9, // Predicate_load
/*366657*/                OPC_MoveParent,
/*366658*/                OPC_RecordChild1, // #3 = $src1
/*366659*/                OPC_RecordChild2, // #4 = $src2
/*366660*/                OPC_MoveParent,
/*366661*/                OPC_MoveChild2,
/*366662*/                OPC_CheckImmAllZerosV,
/*366663*/                OPC_MoveParent,
/*366664*/                OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->366687
/*366667*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*366669*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*366672*/                  OPC_EmitMergeInputChains1_1,
/*366673*/                  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>>, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                            // Dst: (VFMADD132PSZ128mkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*366687*/                /*SwitchType*/ 20, MVT::v4f64,// ->366709
/*366689*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*366691*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*366694*/                  OPC_EmitMergeInputChains1_1,
/*366695*/                  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>>, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                            // Dst: (VFMADD132PDZ256mkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*366709*/                0, // EndSwitchType
/*366710*/              /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->366783
/*366713*/                OPC_RecordMemRef,
/*366714*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*366715*/                OPC_CheckFoldableChainNode,
/*366716*/                OPC_RecordChild1, // #2 = $src3
/*366717*/                OPC_Scope, 31, /*->366750*/ // 2 children in Scope
/*366719*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*366721*/                  OPC_MoveParent,
/*366722*/                  OPC_RecordChild1, // #3 = $src1
/*366723*/                  OPC_RecordChild2, // #4 = $src2
/*366724*/                  OPC_MoveParent,
/*366725*/                  OPC_MoveChild2,
/*366726*/                  OPC_CheckImmAllZerosV,
/*366727*/                  OPC_MoveParent,
/*366728*/                  OPC_CheckType, MVT::v4f32,
/*366730*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*366732*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*366735*/                  OPC_EmitMergeInputChains1_1,
/*366736*/                  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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                            // Dst: (VFMADD132PSZ128mbkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*366750*/                /*Scope*/ 31, /*->366782*/
/*366751*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*366753*/                  OPC_MoveParent,
/*366754*/                  OPC_RecordChild1, // #3 = $src1
/*366755*/                  OPC_RecordChild2, // #4 = $src2
/*366756*/                  OPC_MoveParent,
/*366757*/                  OPC_MoveChild2,
/*366758*/                  OPC_CheckImmAllZerosV,
/*366759*/                  OPC_MoveParent,
/*366760*/                  OPC_CheckType, MVT::v4f64,
/*366762*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*366764*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*366767*/                  OPC_EmitMergeInputChains1_1,
/*366768*/                  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] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                            // Dst: (VFMADD132PDZ256mbkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*366782*/                0, /*End of Scope*/
/*366783*/              0, // EndSwitchOpcode
/*366784*/            0, /*End of Scope*/
/*366785*/          /*SwitchOpcode*/ 49|128,3/*433*/, TARGET_VAL(X86ISD::FMSUB),// ->367222
/*366789*/            OPC_Scope, 31|128,2/*287*/, /*->367079*/ // 2 children in Scope
/*366792*/              OPC_RecordChild0, // #1 = $src2
/*366793*/              OPC_Scope, 15|128,1/*143*/, /*->366939*/ // 2 children in Scope
/*366796*/                OPC_RecordChild1, // #2 = $src1
/*366797*/                OPC_MoveChild2,
/*366798*/                OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->366865
/*366802*/                  OPC_RecordMemRef,
/*366803*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*366804*/                  OPC_CheckFoldableChainNode,
/*366805*/                  OPC_RecordChild1, // #4 = $src3
/*366806*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*366808*/                  OPC_CheckPredicate, 9, // Predicate_load
/*366810*/                  OPC_MoveParent,
/*366811*/                  OPC_MoveParent,
/*366812*/                  OPC_MoveChild2,
/*366813*/                  OPC_CheckImmAllZerosV,
/*366814*/                  OPC_MoveParent,
/*366815*/                  OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->366840
/*366818*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*366820*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*366823*/                    OPC_EmitMergeInputChains, 1, 3, 
/*366826*/                    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>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                              // Dst: (VFMSUB213PSZ128mkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*366840*/                  /*SwitchType*/ 22, MVT::v4f64,// ->366864
/*366842*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*366844*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*366847*/                    OPC_EmitMergeInputChains, 1, 3, 
/*366850*/                    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>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                              // Dst: (VFMSUB213PDZ256mkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*366864*/                  0, // EndSwitchType
/*366865*/                /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->366938
/*366868*/                  OPC_RecordMemRef,
/*366869*/                  OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*366870*/                  OPC_CheckFoldableChainNode,
/*366871*/                  OPC_RecordChild1, // #4 = $src3
/*366872*/                  OPC_Scope, 31, /*->366905*/ // 2 children in Scope
/*366874*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*366876*/                    OPC_MoveParent,
/*366877*/                    OPC_MoveParent,
/*366878*/                    OPC_MoveChild2,
/*366879*/                    OPC_CheckImmAllZerosV,
/*366880*/                    OPC_MoveParent,
/*366881*/                    OPC_CheckType, MVT::v4f32,
/*366883*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*366885*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*366888*/                    OPC_EmitMergeInputChains, 1, 3, 
/*366891*/                    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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                              // Dst: (VFMSUB213PSZ128mbkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*366905*/                  /*Scope*/ 31, /*->366937*/
/*366906*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*366908*/                    OPC_MoveParent,
/*366909*/                    OPC_MoveParent,
/*366910*/                    OPC_MoveChild2,
/*366911*/                    OPC_CheckImmAllZerosV,
/*366912*/                    OPC_MoveParent,
/*366913*/                    OPC_CheckType, MVT::v4f64,
/*366915*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*366917*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*366920*/                    OPC_EmitMergeInputChains, 1, 3, 
/*366923*/                    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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                              // Dst: (VFMSUB213PDZ256mbkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*366937*/                  0, /*End of Scope*/
/*366938*/                0, // EndSwitchOpcode
/*366939*/              /*Scope*/ 9|128,1/*137*/, /*->367078*/
/*366941*/                OPC_MoveChild1,
/*366942*/                OPC_SwitchOpcode /*2 cases */, 60, TARGET_VAL(ISD::LOAD),// ->367006
/*366946*/                  OPC_RecordMemRef,
/*366947*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*366948*/                  OPC_CheckFoldableChainNode,
/*366949*/                  OPC_RecordChild1, // #3 = $src3
/*366950*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*366952*/                  OPC_CheckPredicate, 9, // Predicate_load
/*366954*/                  OPC_MoveParent,
/*366955*/                  OPC_RecordChild2, // #4 = $src1
/*366956*/                  OPC_MoveParent,
/*366957*/                  OPC_MoveChild2,
/*366958*/                  OPC_CheckImmAllZerosV,
/*366959*/                  OPC_MoveParent,
/*366960*/                  OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->366983
/*366963*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*366965*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*366968*/                    OPC_EmitMergeInputChains1_2,
/*366969*/                    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>>, VR128X:{ *:[v4f32] }:$src1), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                              // Dst: (VFMSUB231PSZ128mkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*366983*/                  /*SwitchType*/ 20, MVT::v4f64,// ->367005
/*366985*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*366987*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*366990*/                    OPC_EmitMergeInputChains1_2,
/*366991*/                    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>>, VR256X:{ *:[v4f64] }:$src1), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                              // Dst: (VFMSUB231PDZ256mkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*367005*/                  0, // EndSwitchType
/*367006*/                /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->367077
/*367009*/                  OPC_RecordMemRef,
/*367010*/                  OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*367011*/                  OPC_CheckFoldableChainNode,
/*367012*/                  OPC_RecordChild1, // #3 = $src3
/*367013*/                  OPC_Scope, 30, /*->367045*/ // 2 children in Scope
/*367015*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*367017*/                    OPC_MoveParent,
/*367018*/                    OPC_RecordChild2, // #4 = $src1
/*367019*/                    OPC_MoveParent,
/*367020*/                    OPC_MoveChild2,
/*367021*/                    OPC_CheckImmAllZerosV,
/*367022*/                    OPC_MoveParent,
/*367023*/                    OPC_CheckType, MVT::v4f32,
/*367025*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*367027*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*367030*/                    OPC_EmitMergeInputChains1_2,
/*367031*/                    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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                              // Dst: (VFMSUB231PSZ128mbkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*367045*/                  /*Scope*/ 30, /*->367076*/
/*367046*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*367048*/                    OPC_MoveParent,
/*367049*/                    OPC_RecordChild2, // #4 = $src1
/*367050*/                    OPC_MoveParent,
/*367051*/                    OPC_MoveChild2,
/*367052*/                    OPC_CheckImmAllZerosV,
/*367053*/                    OPC_MoveParent,
/*367054*/                    OPC_CheckType, MVT::v4f64,
/*367056*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*367058*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*367061*/                    OPC_EmitMergeInputChains1_2,
/*367062*/                    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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                              // Dst: (VFMSUB231PDZ256mbkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*367076*/                  0, /*End of Scope*/
/*367077*/                0, // EndSwitchOpcode
/*367078*/              0, /*End of Scope*/
/*367079*/            /*Scope*/ 12|128,1/*140*/, /*->367221*/
/*367081*/              OPC_MoveChild0,
/*367082*/              OPC_SwitchOpcode /*2 cases */, 61, TARGET_VAL(ISD::LOAD),// ->367147
/*367086*/                OPC_RecordMemRef,
/*367087*/                OPC_RecordNode, // #1 = 'ld' chained node
/*367088*/                OPC_CheckFoldableChainNode,
/*367089*/                OPC_RecordChild1, // #2 = $src3
/*367090*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*367092*/                OPC_CheckPredicate, 9, // Predicate_load
/*367094*/                OPC_MoveParent,
/*367095*/                OPC_RecordChild1, // #3 = $src1
/*367096*/                OPC_RecordChild2, // #4 = $src2
/*367097*/                OPC_MoveParent,
/*367098*/                OPC_MoveChild2,
/*367099*/                OPC_CheckImmAllZerosV,
/*367100*/                OPC_MoveParent,
/*367101*/                OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->367124
/*367104*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*367106*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*367109*/                  OPC_EmitMergeInputChains1_1,
/*367110*/                  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>>, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                            // Dst: (VFMSUB132PSZ128mkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*367124*/                /*SwitchType*/ 20, MVT::v4f64,// ->367146
/*367126*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*367128*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*367131*/                  OPC_EmitMergeInputChains1_1,
/*367132*/                  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>>, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                            // Dst: (VFMSUB132PDZ256mkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*367146*/                0, // EndSwitchType
/*367147*/              /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->367220
/*367150*/                OPC_RecordMemRef,
/*367151*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*367152*/                OPC_CheckFoldableChainNode,
/*367153*/                OPC_RecordChild1, // #2 = $src3
/*367154*/                OPC_Scope, 31, /*->367187*/ // 2 children in Scope
/*367156*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*367158*/                  OPC_MoveParent,
/*367159*/                  OPC_RecordChild1, // #3 = $src1
/*367160*/                  OPC_RecordChild2, // #4 = $src2
/*367161*/                  OPC_MoveParent,
/*367162*/                  OPC_MoveChild2,
/*367163*/                  OPC_CheckImmAllZerosV,
/*367164*/                  OPC_MoveParent,
/*367165*/                  OPC_CheckType, MVT::v4f32,
/*367167*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*367169*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*367172*/                  OPC_EmitMergeInputChains1_1,
/*367173*/                  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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                            // Dst: (VFMSUB132PSZ128mbkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*367187*/                /*Scope*/ 31, /*->367219*/
/*367188*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*367190*/                  OPC_MoveParent,
/*367191*/                  OPC_RecordChild1, // #3 = $src1
/*367192*/                  OPC_RecordChild2, // #4 = $src2
/*367193*/                  OPC_MoveParent,
/*367194*/                  OPC_MoveChild2,
/*367195*/                  OPC_CheckImmAllZerosV,
/*367196*/                  OPC_MoveParent,
/*367197*/                  OPC_CheckType, MVT::v4f64,
/*367199*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*367201*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*367204*/                  OPC_EmitMergeInputChains1_1,
/*367205*/                  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] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                            // Dst: (VFMSUB132PDZ256mbkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*367219*/                0, /*End of Scope*/
/*367220*/              0, // EndSwitchOpcode
/*367221*/            0, /*End of Scope*/
/*367222*/          /*SwitchOpcode*/ 49|128,3/*433*/, TARGET_VAL(X86ISD::FMADDSUB),// ->367659
/*367226*/            OPC_Scope, 31|128,2/*287*/, /*->367516*/ // 2 children in Scope
/*367229*/              OPC_RecordChild0, // #1 = $src2
/*367230*/              OPC_Scope, 15|128,1/*143*/, /*->367376*/ // 2 children in Scope
/*367233*/                OPC_RecordChild1, // #2 = $src1
/*367234*/                OPC_MoveChild2,
/*367235*/                OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->367302
/*367239*/                  OPC_RecordMemRef,
/*367240*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*367241*/                  OPC_CheckFoldableChainNode,
/*367242*/                  OPC_RecordChild1, // #4 = $src3
/*367243*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*367245*/                  OPC_CheckPredicate, 9, // Predicate_load
/*367247*/                  OPC_MoveParent,
/*367248*/                  OPC_MoveParent,
/*367249*/                  OPC_MoveChild2,
/*367250*/                  OPC_CheckImmAllZerosV,
/*367251*/                  OPC_MoveParent,
/*367252*/                  OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->367277
/*367255*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*367257*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*367260*/                    OPC_EmitMergeInputChains, 1, 3, 
/*367263*/                    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>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                              // Dst: (VFMADDSUB213PSZ128mkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*367277*/                  /*SwitchType*/ 22, MVT::v4f64,// ->367301
/*367279*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*367281*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*367284*/                    OPC_EmitMergeInputChains, 1, 3, 
/*367287*/                    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>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                              // Dst: (VFMADDSUB213PDZ256mkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*367301*/                  0, // EndSwitchType
/*367302*/                /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->367375
/*367305*/                  OPC_RecordMemRef,
/*367306*/                  OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*367307*/                  OPC_CheckFoldableChainNode,
/*367308*/                  OPC_RecordChild1, // #4 = $src3
/*367309*/                  OPC_Scope, 31, /*->367342*/ // 2 children in Scope
/*367311*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*367313*/                    OPC_MoveParent,
/*367314*/                    OPC_MoveParent,
/*367315*/                    OPC_MoveChild2,
/*367316*/                    OPC_CheckImmAllZerosV,
/*367317*/                    OPC_MoveParent,
/*367318*/                    OPC_CheckType, MVT::v4f32,
/*367320*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*367322*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*367325*/                    OPC_EmitMergeInputChains, 1, 3, 
/*367328*/                    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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                              // Dst: (VFMADDSUB213PSZ128mbkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*367342*/                  /*Scope*/ 31, /*->367374*/
/*367343*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*367345*/                    OPC_MoveParent,
/*367346*/                    OPC_MoveParent,
/*367347*/                    OPC_MoveChild2,
/*367348*/                    OPC_CheckImmAllZerosV,
/*367349*/                    OPC_MoveParent,
/*367350*/                    OPC_CheckType, MVT::v4f64,
/*367352*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*367354*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*367357*/                    OPC_EmitMergeInputChains, 1, 3, 
/*367360*/                    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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                              // Dst: (VFMADDSUB213PDZ256mbkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*367374*/                  0, /*End of Scope*/
/*367375*/                0, // EndSwitchOpcode
/*367376*/              /*Scope*/ 9|128,1/*137*/, /*->367515*/
/*367378*/                OPC_MoveChild1,
/*367379*/                OPC_SwitchOpcode /*2 cases */, 60, TARGET_VAL(ISD::LOAD),// ->367443
/*367383*/                  OPC_RecordMemRef,
/*367384*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*367385*/                  OPC_CheckFoldableChainNode,
/*367386*/                  OPC_RecordChild1, // #3 = $src3
/*367387*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*367389*/                  OPC_CheckPredicate, 9, // Predicate_load
/*367391*/                  OPC_MoveParent,
/*367392*/                  OPC_RecordChild2, // #4 = $src1
/*367393*/                  OPC_MoveParent,
/*367394*/                  OPC_MoveChild2,
/*367395*/                  OPC_CheckImmAllZerosV,
/*367396*/                  OPC_MoveParent,
/*367397*/                  OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->367420
/*367400*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*367402*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*367405*/                    OPC_EmitMergeInputChains1_2,
/*367406*/                    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>>, VR128X:{ *:[v4f32] }:$src1), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                              // Dst: (VFMADDSUB231PSZ128mkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*367420*/                  /*SwitchType*/ 20, MVT::v4f64,// ->367442
/*367422*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*367424*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*367427*/                    OPC_EmitMergeInputChains1_2,
/*367428*/                    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>>, VR256X:{ *:[v4f64] }:$src1), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                              // Dst: (VFMADDSUB231PDZ256mkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*367442*/                  0, // EndSwitchType
/*367443*/                /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->367514
/*367446*/                  OPC_RecordMemRef,
/*367447*/                  OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*367448*/                  OPC_CheckFoldableChainNode,
/*367449*/                  OPC_RecordChild1, // #3 = $src3
/*367450*/                  OPC_Scope, 30, /*->367482*/ // 2 children in Scope
/*367452*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*367454*/                    OPC_MoveParent,
/*367455*/                    OPC_RecordChild2, // #4 = $src1
/*367456*/                    OPC_MoveParent,
/*367457*/                    OPC_MoveChild2,
/*367458*/                    OPC_CheckImmAllZerosV,
/*367459*/                    OPC_MoveParent,
/*367460*/                    OPC_CheckType, MVT::v4f32,
/*367462*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*367464*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*367467*/                    OPC_EmitMergeInputChains1_2,
/*367468*/                    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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                              // Dst: (VFMADDSUB231PSZ128mbkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*367482*/                  /*Scope*/ 30, /*->367513*/
/*367483*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*367485*/                    OPC_MoveParent,
/*367486*/                    OPC_RecordChild2, // #4 = $src1
/*367487*/                    OPC_MoveParent,
/*367488*/                    OPC_MoveChild2,
/*367489*/                    OPC_CheckImmAllZerosV,
/*367490*/                    OPC_MoveParent,
/*367491*/                    OPC_CheckType, MVT::v4f64,
/*367493*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*367495*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*367498*/                    OPC_EmitMergeInputChains1_2,
/*367499*/                    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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                              // Dst: (VFMADDSUB231PDZ256mbkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*367513*/                  0, /*End of Scope*/
/*367514*/                0, // EndSwitchOpcode
/*367515*/              0, /*End of Scope*/
/*367516*/            /*Scope*/ 12|128,1/*140*/, /*->367658*/
/*367518*/              OPC_MoveChild0,
/*367519*/              OPC_SwitchOpcode /*2 cases */, 61, TARGET_VAL(ISD::LOAD),// ->367584
/*367523*/                OPC_RecordMemRef,
/*367524*/                OPC_RecordNode, // #1 = 'ld' chained node
/*367525*/                OPC_CheckFoldableChainNode,
/*367526*/                OPC_RecordChild1, // #2 = $src3
/*367527*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*367529*/                OPC_CheckPredicate, 9, // Predicate_load
/*367531*/                OPC_MoveParent,
/*367532*/                OPC_RecordChild1, // #3 = $src1
/*367533*/                OPC_RecordChild2, // #4 = $src2
/*367534*/                OPC_MoveParent,
/*367535*/                OPC_MoveChild2,
/*367536*/                OPC_CheckImmAllZerosV,
/*367537*/                OPC_MoveParent,
/*367538*/                OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->367561
/*367541*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*367543*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*367546*/                  OPC_EmitMergeInputChains1_1,
/*367547*/                  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>>, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                            // Dst: (VFMADDSUB132PSZ128mkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*367561*/                /*SwitchType*/ 20, MVT::v4f64,// ->367583
/*367563*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*367565*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*367568*/                  OPC_EmitMergeInputChains1_1,
/*367569*/                  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>>, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                            // Dst: (VFMADDSUB132PDZ256mkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*367583*/                0, // EndSwitchType
/*367584*/              /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->367657
/*367587*/                OPC_RecordMemRef,
/*367588*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*367589*/                OPC_CheckFoldableChainNode,
/*367590*/                OPC_RecordChild1, // #2 = $src3
/*367591*/                OPC_Scope, 31, /*->367624*/ // 2 children in Scope
/*367593*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*367595*/                  OPC_MoveParent,
/*367596*/                  OPC_RecordChild1, // #3 = $src1
/*367597*/                  OPC_RecordChild2, // #4 = $src2
/*367598*/                  OPC_MoveParent,
/*367599*/                  OPC_MoveChild2,
/*367600*/                  OPC_CheckImmAllZerosV,
/*367601*/                  OPC_MoveParent,
/*367602*/                  OPC_CheckType, MVT::v4f32,
/*367604*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*367606*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*367609*/                  OPC_EmitMergeInputChains1_1,
/*367610*/                  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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                            // Dst: (VFMADDSUB132PSZ128mbkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*367624*/                /*Scope*/ 31, /*->367656*/
/*367625*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*367627*/                  OPC_MoveParent,
/*367628*/                  OPC_RecordChild1, // #3 = $src1
/*367629*/                  OPC_RecordChild2, // #4 = $src2
/*367630*/                  OPC_MoveParent,
/*367631*/                  OPC_MoveChild2,
/*367632*/                  OPC_CheckImmAllZerosV,
/*367633*/                  OPC_MoveParent,
/*367634*/                  OPC_CheckType, MVT::v4f64,
/*367636*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*367638*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*367641*/                  OPC_EmitMergeInputChains1_1,
/*367642*/                  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] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                            // Dst: (VFMADDSUB132PDZ256mbkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*367656*/                0, /*End of Scope*/
/*367657*/              0, // EndSwitchOpcode
/*367658*/            0, /*End of Scope*/
/*367659*/          /*SwitchOpcode*/ 49|128,3/*433*/, TARGET_VAL(X86ISD::FMSUBADD),// ->368096
/*367663*/            OPC_Scope, 31|128,2/*287*/, /*->367953*/ // 2 children in Scope
/*367666*/              OPC_RecordChild0, // #1 = $src2
/*367667*/              OPC_Scope, 15|128,1/*143*/, /*->367813*/ // 2 children in Scope
/*367670*/                OPC_RecordChild1, // #2 = $src1
/*367671*/                OPC_MoveChild2,
/*367672*/                OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->367739
/*367676*/                  OPC_RecordMemRef,
/*367677*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*367678*/                  OPC_CheckFoldableChainNode,
/*367679*/                  OPC_RecordChild1, // #4 = $src3
/*367680*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*367682*/                  OPC_CheckPredicate, 9, // Predicate_load
/*367684*/                  OPC_MoveParent,
/*367685*/                  OPC_MoveParent,
/*367686*/                  OPC_MoveChild2,
/*367687*/                  OPC_CheckImmAllZerosV,
/*367688*/                  OPC_MoveParent,
/*367689*/                  OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->367714
/*367692*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*367694*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*367697*/                    OPC_EmitMergeInputChains, 1, 3, 
/*367700*/                    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>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                              // Dst: (VFMSUBADD213PSZ128mkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*367714*/                  /*SwitchType*/ 22, MVT::v4f64,// ->367738
/*367716*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*367718*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*367721*/                    OPC_EmitMergeInputChains, 1, 3, 
/*367724*/                    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>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                              // Dst: (VFMSUBADD213PDZ256mkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*367738*/                  0, // EndSwitchType
/*367739*/                /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->367812
/*367742*/                  OPC_RecordMemRef,
/*367743*/                  OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*367744*/                  OPC_CheckFoldableChainNode,
/*367745*/                  OPC_RecordChild1, // #4 = $src3
/*367746*/                  OPC_Scope, 31, /*->367779*/ // 2 children in Scope
/*367748*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*367750*/                    OPC_MoveParent,
/*367751*/                    OPC_MoveParent,
/*367752*/                    OPC_MoveChild2,
/*367753*/                    OPC_CheckImmAllZerosV,
/*367754*/                    OPC_MoveParent,
/*367755*/                    OPC_CheckType, MVT::v4f32,
/*367757*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*367759*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*367762*/                    OPC_EmitMergeInputChains, 1, 3, 
/*367765*/                    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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                              // Dst: (VFMSUBADD213PSZ128mbkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*367779*/                  /*Scope*/ 31, /*->367811*/
/*367780*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*367782*/                    OPC_MoveParent,
/*367783*/                    OPC_MoveParent,
/*367784*/                    OPC_MoveChild2,
/*367785*/                    OPC_CheckImmAllZerosV,
/*367786*/                    OPC_MoveParent,
/*367787*/                    OPC_CheckType, MVT::v4f64,
/*367789*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*367791*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*367794*/                    OPC_EmitMergeInputChains, 1, 3, 
/*367797*/                    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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                              // Dst: (VFMSUBADD213PDZ256mbkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*367811*/                  0, /*End of Scope*/
/*367812*/                0, // EndSwitchOpcode
/*367813*/              /*Scope*/ 9|128,1/*137*/, /*->367952*/
/*367815*/                OPC_MoveChild1,
/*367816*/                OPC_SwitchOpcode /*2 cases */, 60, TARGET_VAL(ISD::LOAD),// ->367880
/*367820*/                  OPC_RecordMemRef,
/*367821*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*367822*/                  OPC_CheckFoldableChainNode,
/*367823*/                  OPC_RecordChild1, // #3 = $src3
/*367824*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*367826*/                  OPC_CheckPredicate, 9, // Predicate_load
/*367828*/                  OPC_MoveParent,
/*367829*/                  OPC_RecordChild2, // #4 = $src1
/*367830*/                  OPC_MoveParent,
/*367831*/                  OPC_MoveChild2,
/*367832*/                  OPC_CheckImmAllZerosV,
/*367833*/                  OPC_MoveParent,
/*367834*/                  OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->367857
/*367837*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*367839*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*367842*/                    OPC_EmitMergeInputChains1_2,
/*367843*/                    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>>, VR128X:{ *:[v4f32] }:$src1), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                              // Dst: (VFMSUBADD231PSZ128mkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*367857*/                  /*SwitchType*/ 20, MVT::v4f64,// ->367879
/*367859*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*367861*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*367864*/                    OPC_EmitMergeInputChains1_2,
/*367865*/                    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>>, VR256X:{ *:[v4f64] }:$src1), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                              // Dst: (VFMSUBADD231PDZ256mkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*367879*/                  0, // EndSwitchType
/*367880*/                /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->367951
/*367883*/                  OPC_RecordMemRef,
/*367884*/                  OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*367885*/                  OPC_CheckFoldableChainNode,
/*367886*/                  OPC_RecordChild1, // #3 = $src3
/*367887*/                  OPC_Scope, 30, /*->367919*/ // 2 children in Scope
/*367889*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*367891*/                    OPC_MoveParent,
/*367892*/                    OPC_RecordChild2, // #4 = $src1
/*367893*/                    OPC_MoveParent,
/*367894*/                    OPC_MoveChild2,
/*367895*/                    OPC_CheckImmAllZerosV,
/*367896*/                    OPC_MoveParent,
/*367897*/                    OPC_CheckType, MVT::v4f32,
/*367899*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*367901*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*367904*/                    OPC_EmitMergeInputChains1_2,
/*367905*/                    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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                              // Dst: (VFMSUBADD231PSZ128mbkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*367919*/                  /*Scope*/ 30, /*->367950*/
/*367920*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*367922*/                    OPC_MoveParent,
/*367923*/                    OPC_RecordChild2, // #4 = $src1
/*367924*/                    OPC_MoveParent,
/*367925*/                    OPC_MoveChild2,
/*367926*/                    OPC_CheckImmAllZerosV,
/*367927*/                    OPC_MoveParent,
/*367928*/                    OPC_CheckType, MVT::v4f64,
/*367930*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*367932*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*367935*/                    OPC_EmitMergeInputChains1_2,
/*367936*/                    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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                              // Dst: (VFMSUBADD231PDZ256mbkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*367950*/                  0, /*End of Scope*/
/*367951*/                0, // EndSwitchOpcode
/*367952*/              0, /*End of Scope*/
/*367953*/            /*Scope*/ 12|128,1/*140*/, /*->368095*/
/*367955*/              OPC_MoveChild0,
/*367956*/              OPC_SwitchOpcode /*2 cases */, 61, TARGET_VAL(ISD::LOAD),// ->368021
/*367960*/                OPC_RecordMemRef,
/*367961*/                OPC_RecordNode, // #1 = 'ld' chained node
/*367962*/                OPC_CheckFoldableChainNode,
/*367963*/                OPC_RecordChild1, // #2 = $src3
/*367964*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*367966*/                OPC_CheckPredicate, 9, // Predicate_load
/*367968*/                OPC_MoveParent,
/*367969*/                OPC_RecordChild1, // #3 = $src1
/*367970*/                OPC_RecordChild2, // #4 = $src2
/*367971*/                OPC_MoveParent,
/*367972*/                OPC_MoveChild2,
/*367973*/                OPC_CheckImmAllZerosV,
/*367974*/                OPC_MoveParent,
/*367975*/                OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->367998
/*367978*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*367980*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*367983*/                  OPC_EmitMergeInputChains1_1,
/*367984*/                  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>>, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                            // Dst: (VFMSUBADD132PSZ128mkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*367998*/                /*SwitchType*/ 20, MVT::v4f64,// ->368020
/*368000*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*368002*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*368005*/                  OPC_EmitMergeInputChains1_1,
/*368006*/                  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>>, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                            // Dst: (VFMSUBADD132PDZ256mkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*368020*/                0, // EndSwitchType
/*368021*/              /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->368094
/*368024*/                OPC_RecordMemRef,
/*368025*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*368026*/                OPC_CheckFoldableChainNode,
/*368027*/                OPC_RecordChild1, // #2 = $src3
/*368028*/                OPC_Scope, 31, /*->368061*/ // 2 children in Scope
/*368030*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*368032*/                  OPC_MoveParent,
/*368033*/                  OPC_RecordChild1, // #3 = $src1
/*368034*/                  OPC_RecordChild2, // #4 = $src2
/*368035*/                  OPC_MoveParent,
/*368036*/                  OPC_MoveChild2,
/*368037*/                  OPC_CheckImmAllZerosV,
/*368038*/                  OPC_MoveParent,
/*368039*/                  OPC_CheckType, MVT::v4f32,
/*368041*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*368043*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*368046*/                  OPC_EmitMergeInputChains1_1,
/*368047*/                  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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                            // Dst: (VFMSUBADD132PSZ128mbkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*368061*/                /*Scope*/ 31, /*->368093*/
/*368062*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*368064*/                  OPC_MoveParent,
/*368065*/                  OPC_RecordChild1, // #3 = $src1
/*368066*/                  OPC_RecordChild2, // #4 = $src2
/*368067*/                  OPC_MoveParent,
/*368068*/                  OPC_MoveChild2,
/*368069*/                  OPC_CheckImmAllZerosV,
/*368070*/                  OPC_MoveParent,
/*368071*/                  OPC_CheckType, MVT::v4f64,
/*368073*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*368075*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*368078*/                  OPC_EmitMergeInputChains1_1,
/*368079*/                  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] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                            // Dst: (VFMSUBADD132PDZ256mbkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*368093*/                0, /*End of Scope*/
/*368094*/              0, // EndSwitchOpcode
/*368095*/            0, /*End of Scope*/
/*368096*/          /*SwitchOpcode*/ 49|128,3/*433*/, TARGET_VAL(X86ISD::FNMADD),// ->368533
/*368100*/            OPC_Scope, 31|128,2/*287*/, /*->368390*/ // 2 children in Scope
/*368103*/              OPC_RecordChild0, // #1 = $src2
/*368104*/              OPC_Scope, 15|128,1/*143*/, /*->368250*/ // 2 children in Scope
/*368107*/                OPC_RecordChild1, // #2 = $src1
/*368108*/                OPC_MoveChild2,
/*368109*/                OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->368176
/*368113*/                  OPC_RecordMemRef,
/*368114*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*368115*/                  OPC_CheckFoldableChainNode,
/*368116*/                  OPC_RecordChild1, // #4 = $src3
/*368117*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*368119*/                  OPC_CheckPredicate, 9, // Predicate_load
/*368121*/                  OPC_MoveParent,
/*368122*/                  OPC_MoveParent,
/*368123*/                  OPC_MoveChild2,
/*368124*/                  OPC_CheckImmAllZerosV,
/*368125*/                  OPC_MoveParent,
/*368126*/                  OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->368151
/*368129*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*368131*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*368134*/                    OPC_EmitMergeInputChains, 1, 3, 
/*368137*/                    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>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                              // Dst: (VFNMADD213PSZ128mkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*368151*/                  /*SwitchType*/ 22, MVT::v4f64,// ->368175
/*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::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>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                              // Dst: (VFNMADD213PDZ256mkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*368175*/                  0, // EndSwitchType
/*368176*/                /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->368249
/*368179*/                  OPC_RecordMemRef,
/*368180*/                  OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*368181*/                  OPC_CheckFoldableChainNode,
/*368182*/                  OPC_RecordChild1, // #4 = $src3
/*368183*/                  OPC_Scope, 31, /*->368216*/ // 2 children in Scope
/*368185*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*368187*/                    OPC_MoveParent,
/*368188*/                    OPC_MoveParent,
/*368189*/                    OPC_MoveChild2,
/*368190*/                    OPC_CheckImmAllZerosV,
/*368191*/                    OPC_MoveParent,
/*368192*/                    OPC_CheckType, MVT::v4f32,
/*368194*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*368196*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*368199*/                    OPC_EmitMergeInputChains, 1, 3, 
/*368202*/                    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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                              // Dst: (VFNMADD213PSZ128mbkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*368216*/                  /*Scope*/ 31, /*->368248*/
/*368217*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*368219*/                    OPC_MoveParent,
/*368220*/                    OPC_MoveParent,
/*368221*/                    OPC_MoveChild2,
/*368222*/                    OPC_CheckImmAllZerosV,
/*368223*/                    OPC_MoveParent,
/*368224*/                    OPC_CheckType, MVT::v4f64,
/*368226*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*368228*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*368231*/                    OPC_EmitMergeInputChains, 1, 3, 
/*368234*/                    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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                              // Dst: (VFNMADD213PDZ256mbkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*368248*/                  0, /*End of Scope*/
/*368249*/                0, // EndSwitchOpcode
/*368250*/              /*Scope*/ 9|128,1/*137*/, /*->368389*/
/*368252*/                OPC_MoveChild1,
/*368253*/                OPC_SwitchOpcode /*2 cases */, 60, TARGET_VAL(ISD::LOAD),// ->368317
/*368257*/                  OPC_RecordMemRef,
/*368258*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*368259*/                  OPC_CheckFoldableChainNode,
/*368260*/                  OPC_RecordChild1, // #3 = $src3
/*368261*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*368263*/                  OPC_CheckPredicate, 9, // Predicate_load
/*368265*/                  OPC_MoveParent,
/*368266*/                  OPC_RecordChild2, // #4 = $src1
/*368267*/                  OPC_MoveParent,
/*368268*/                  OPC_MoveChild2,
/*368269*/                  OPC_CheckImmAllZerosV,
/*368270*/                  OPC_MoveParent,
/*368271*/                  OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->368294
/*368274*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*368276*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*368279*/                    OPC_EmitMergeInputChains1_2,
/*368280*/                    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>>, VR128X:{ *:[v4f32] }:$src1), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                              // Dst: (VFNMADD231PSZ128mkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*368294*/                  /*SwitchType*/ 20, MVT::v4f64,// ->368316
/*368296*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*368298*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*368301*/                    OPC_EmitMergeInputChains1_2,
/*368302*/                    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>>, VR256X:{ *:[v4f64] }:$src1), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                              // Dst: (VFNMADD231PDZ256mkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*368316*/                  0, // EndSwitchType
/*368317*/                /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->368388
/*368320*/                  OPC_RecordMemRef,
/*368321*/                  OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*368322*/                  OPC_CheckFoldableChainNode,
/*368323*/                  OPC_RecordChild1, // #3 = $src3
/*368324*/                  OPC_Scope, 30, /*->368356*/ // 2 children in Scope
/*368326*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*368328*/                    OPC_MoveParent,
/*368329*/                    OPC_RecordChild2, // #4 = $src1
/*368330*/                    OPC_MoveParent,
/*368331*/                    OPC_MoveChild2,
/*368332*/                    OPC_CheckImmAllZerosV,
/*368333*/                    OPC_MoveParent,
/*368334*/                    OPC_CheckType, MVT::v4f32,
/*368336*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*368338*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*368341*/                    OPC_EmitMergeInputChains1_2,
/*368342*/                    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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                              // Dst: (VFNMADD231PSZ128mbkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*368356*/                  /*Scope*/ 30, /*->368387*/
/*368357*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*368359*/                    OPC_MoveParent,
/*368360*/                    OPC_RecordChild2, // #4 = $src1
/*368361*/                    OPC_MoveParent,
/*368362*/                    OPC_MoveChild2,
/*368363*/                    OPC_CheckImmAllZerosV,
/*368364*/                    OPC_MoveParent,
/*368365*/                    OPC_CheckType, MVT::v4f64,
/*368367*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*368369*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*368372*/                    OPC_EmitMergeInputChains1_2,
/*368373*/                    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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                              // Dst: (VFNMADD231PDZ256mbkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*368387*/                  0, /*End of Scope*/
/*368388*/                0, // EndSwitchOpcode
/*368389*/              0, /*End of Scope*/
/*368390*/            /*Scope*/ 12|128,1/*140*/, /*->368532*/
/*368392*/              OPC_MoveChild0,
/*368393*/              OPC_SwitchOpcode /*2 cases */, 61, TARGET_VAL(ISD::LOAD),// ->368458
/*368397*/                OPC_RecordMemRef,
/*368398*/                OPC_RecordNode, // #1 = 'ld' chained node
/*368399*/                OPC_CheckFoldableChainNode,
/*368400*/                OPC_RecordChild1, // #2 = $src3
/*368401*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*368403*/                OPC_CheckPredicate, 9, // Predicate_load
/*368405*/                OPC_MoveParent,
/*368406*/                OPC_RecordChild1, // #3 = $src1
/*368407*/                OPC_RecordChild2, // #4 = $src2
/*368408*/                OPC_MoveParent,
/*368409*/                OPC_MoveChild2,
/*368410*/                OPC_CheckImmAllZerosV,
/*368411*/                OPC_MoveParent,
/*368412*/                OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->368435
/*368415*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*368417*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*368420*/                  OPC_EmitMergeInputChains1_1,
/*368421*/                  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>>, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                            // Dst: (VFNMADD132PSZ128mkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*368435*/                /*SwitchType*/ 20, MVT::v4f64,// ->368457
/*368437*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*368439*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*368442*/                  OPC_EmitMergeInputChains1_1,
/*368443*/                  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>>, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                            // Dst: (VFNMADD132PDZ256mkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*368457*/                0, // EndSwitchType
/*368458*/              /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->368531
/*368461*/                OPC_RecordMemRef,
/*368462*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*368463*/                OPC_CheckFoldableChainNode,
/*368464*/                OPC_RecordChild1, // #2 = $src3
/*368465*/                OPC_Scope, 31, /*->368498*/ // 2 children in Scope
/*368467*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*368469*/                  OPC_MoveParent,
/*368470*/                  OPC_RecordChild1, // #3 = $src1
/*368471*/                  OPC_RecordChild2, // #4 = $src2
/*368472*/                  OPC_MoveParent,
/*368473*/                  OPC_MoveChild2,
/*368474*/                  OPC_CheckImmAllZerosV,
/*368475*/                  OPC_MoveParent,
/*368476*/                  OPC_CheckType, MVT::v4f32,
/*368478*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*368480*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*368483*/                  OPC_EmitMergeInputChains1_1,
/*368484*/                  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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                            // Dst: (VFNMADD132PSZ128mbkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*368498*/                /*Scope*/ 31, /*->368530*/
/*368499*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*368501*/                  OPC_MoveParent,
/*368502*/                  OPC_RecordChild1, // #3 = $src1
/*368503*/                  OPC_RecordChild2, // #4 = $src2
/*368504*/                  OPC_MoveParent,
/*368505*/                  OPC_MoveChild2,
/*368506*/                  OPC_CheckImmAllZerosV,
/*368507*/                  OPC_MoveParent,
/*368508*/                  OPC_CheckType, MVT::v4f64,
/*368510*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*368512*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*368515*/                  OPC_EmitMergeInputChains1_1,
/*368516*/                  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] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                            // Dst: (VFNMADD132PDZ256mbkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*368530*/                0, /*End of Scope*/
/*368531*/              0, // EndSwitchOpcode
/*368532*/            0, /*End of Scope*/
/*368533*/          /*SwitchOpcode*/ 49|128,3/*433*/, TARGET_VAL(X86ISD::FNMSUB),// ->368970
/*368537*/            OPC_Scope, 31|128,2/*287*/, /*->368827*/ // 2 children in Scope
/*368540*/              OPC_RecordChild0, // #1 = $src2
/*368541*/              OPC_Scope, 15|128,1/*143*/, /*->368687*/ // 2 children in Scope
/*368544*/                OPC_RecordChild1, // #2 = $src1
/*368545*/                OPC_MoveChild2,
/*368546*/                OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->368613
/*368550*/                  OPC_RecordMemRef,
/*368551*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*368552*/                  OPC_CheckFoldableChainNode,
/*368553*/                  OPC_RecordChild1, // #4 = $src3
/*368554*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*368556*/                  OPC_CheckPredicate, 9, // Predicate_load
/*368558*/                  OPC_MoveParent,
/*368559*/                  OPC_MoveParent,
/*368560*/                  OPC_MoveChild2,
/*368561*/                  OPC_CheckImmAllZerosV,
/*368562*/                  OPC_MoveParent,
/*368563*/                  OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->368588
/*368566*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*368568*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*368571*/                    OPC_EmitMergeInputChains, 1, 3, 
/*368574*/                    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>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                              // Dst: (VFNMSUB213PSZ128mkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*368588*/                  /*SwitchType*/ 22, MVT::v4f64,// ->368612
/*368590*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*368592*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*368595*/                    OPC_EmitMergeInputChains, 1, 3, 
/*368598*/                    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>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                              // Dst: (VFNMSUB213PDZ256mkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*368612*/                  0, // EndSwitchType
/*368613*/                /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->368686
/*368616*/                  OPC_RecordMemRef,
/*368617*/                  OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*368618*/                  OPC_CheckFoldableChainNode,
/*368619*/                  OPC_RecordChild1, // #4 = $src3
/*368620*/                  OPC_Scope, 31, /*->368653*/ // 2 children in Scope
/*368622*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*368624*/                    OPC_MoveParent,
/*368625*/                    OPC_MoveParent,
/*368626*/                    OPC_MoveChild2,
/*368627*/                    OPC_CheckImmAllZerosV,
/*368628*/                    OPC_MoveParent,
/*368629*/                    OPC_CheckType, MVT::v4f32,
/*368631*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*368633*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*368636*/                    OPC_EmitMergeInputChains, 1, 3, 
/*368639*/                    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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                              // Dst: (VFNMSUB213PSZ128mbkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*368653*/                  /*Scope*/ 31, /*->368685*/
/*368654*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*368656*/                    OPC_MoveParent,
/*368657*/                    OPC_MoveParent,
/*368658*/                    OPC_MoveChild2,
/*368659*/                    OPC_CheckImmAllZerosV,
/*368660*/                    OPC_MoveParent,
/*368661*/                    OPC_CheckType, MVT::v4f64,
/*368663*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*368665*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*368668*/                    OPC_EmitMergeInputChains, 1, 3, 
/*368671*/                    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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                              // Dst: (VFNMSUB213PDZ256mbkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*368685*/                  0, /*End of Scope*/
/*368686*/                0, // EndSwitchOpcode
/*368687*/              /*Scope*/ 9|128,1/*137*/, /*->368826*/
/*368689*/                OPC_MoveChild1,
/*368690*/                OPC_SwitchOpcode /*2 cases */, 60, TARGET_VAL(ISD::LOAD),// ->368754
/*368694*/                  OPC_RecordMemRef,
/*368695*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*368696*/                  OPC_CheckFoldableChainNode,
/*368697*/                  OPC_RecordChild1, // #3 = $src3
/*368698*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*368700*/                  OPC_CheckPredicate, 9, // Predicate_load
/*368702*/                  OPC_MoveParent,
/*368703*/                  OPC_RecordChild2, // #4 = $src1
/*368704*/                  OPC_MoveParent,
/*368705*/                  OPC_MoveChild2,
/*368706*/                  OPC_CheckImmAllZerosV,
/*368707*/                  OPC_MoveParent,
/*368708*/                  OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->368731
/*368711*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*368713*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*368716*/                    OPC_EmitMergeInputChains1_2,
/*368717*/                    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>>, VR128X:{ *:[v4f32] }:$src1), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                              // Dst: (VFNMSUB231PSZ128mkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*368731*/                  /*SwitchType*/ 20, MVT::v4f64,// ->368753
/*368733*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*368735*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*368738*/                    OPC_EmitMergeInputChains1_2,
/*368739*/                    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>>, VR256X:{ *:[v4f64] }:$src1), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                              // Dst: (VFNMSUB231PDZ256mkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*368753*/                  0, // EndSwitchType
/*368754*/                /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->368825
/*368757*/                  OPC_RecordMemRef,
/*368758*/                  OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*368759*/                  OPC_CheckFoldableChainNode,
/*368760*/                  OPC_RecordChild1, // #3 = $src3
/*368761*/                  OPC_Scope, 30, /*->368793*/ // 2 children in Scope
/*368763*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*368765*/                    OPC_MoveParent,
/*368766*/                    OPC_RecordChild2, // #4 = $src1
/*368767*/                    OPC_MoveParent,
/*368768*/                    OPC_MoveChild2,
/*368769*/                    OPC_CheckImmAllZerosV,
/*368770*/                    OPC_MoveParent,
/*368771*/                    OPC_CheckType, MVT::v4f32,
/*368773*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*368775*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*368778*/                    OPC_EmitMergeInputChains1_2,
/*368779*/                    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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                              // Dst: (VFNMSUB231PSZ128mbkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*368793*/                  /*Scope*/ 30, /*->368824*/
/*368794*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*368796*/                    OPC_MoveParent,
/*368797*/                    OPC_RecordChild2, // #4 = $src1
/*368798*/                    OPC_MoveParent,
/*368799*/                    OPC_MoveChild2,
/*368800*/                    OPC_CheckImmAllZerosV,
/*368801*/                    OPC_MoveParent,
/*368802*/                    OPC_CheckType, MVT::v4f64,
/*368804*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*368806*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*368809*/                    OPC_EmitMergeInputChains1_2,
/*368810*/                    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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                              // Dst: (VFNMSUB231PDZ256mbkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*368824*/                  0, /*End of Scope*/
/*368825*/                0, // EndSwitchOpcode
/*368826*/              0, /*End of Scope*/
/*368827*/            /*Scope*/ 12|128,1/*140*/, /*->368969*/
/*368829*/              OPC_MoveChild0,
/*368830*/              OPC_SwitchOpcode /*2 cases */, 61, TARGET_VAL(ISD::LOAD),// ->368895
/*368834*/                OPC_RecordMemRef,
/*368835*/                OPC_RecordNode, // #1 = 'ld' chained node
/*368836*/                OPC_CheckFoldableChainNode,
/*368837*/                OPC_RecordChild1, // #2 = $src3
/*368838*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*368840*/                OPC_CheckPredicate, 9, // Predicate_load
/*368842*/                OPC_MoveParent,
/*368843*/                OPC_RecordChild1, // #3 = $src1
/*368844*/                OPC_RecordChild2, // #4 = $src2
/*368845*/                OPC_MoveParent,
/*368846*/                OPC_MoveChild2,
/*368847*/                OPC_CheckImmAllZerosV,
/*368848*/                OPC_MoveParent,
/*368849*/                OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->368872
/*368852*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*368854*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*368857*/                  OPC_EmitMergeInputChains1_1,
/*368858*/                  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>>, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                            // Dst: (VFNMSUB132PSZ128mkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*368872*/                /*SwitchType*/ 20, MVT::v4f64,// ->368894
/*368874*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*368876*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*368879*/                  OPC_EmitMergeInputChains1_1,
/*368880*/                  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>>, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                            // Dst: (VFNMSUB132PDZ256mkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*368894*/                0, // EndSwitchType
/*368895*/              /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->368968
/*368898*/                OPC_RecordMemRef,
/*368899*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*368900*/                OPC_CheckFoldableChainNode,
/*368901*/                OPC_RecordChild1, // #2 = $src3
/*368902*/                OPC_Scope, 31, /*->368935*/ // 2 children in Scope
/*368904*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*368906*/                  OPC_MoveParent,
/*368907*/                  OPC_RecordChild1, // #3 = $src1
/*368908*/                  OPC_RecordChild2, // #4 = $src2
/*368909*/                  OPC_MoveParent,
/*368910*/                  OPC_MoveChild2,
/*368911*/                  OPC_CheckImmAllZerosV,
/*368912*/                  OPC_MoveParent,
/*368913*/                  OPC_CheckType, MVT::v4f32,
/*368915*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*368917*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*368920*/                  OPC_EmitMergeInputChains1_1,
/*368921*/                  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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                            // Dst: (VFNMSUB132PSZ128mbkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*368935*/                /*Scope*/ 31, /*->368967*/
/*368936*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*368938*/                  OPC_MoveParent,
/*368939*/                  OPC_RecordChild1, // #3 = $src1
/*368940*/                  OPC_RecordChild2, // #4 = $src2
/*368941*/                  OPC_MoveParent,
/*368942*/                  OPC_MoveChild2,
/*368943*/                  OPC_CheckImmAllZerosV,
/*368944*/                  OPC_MoveParent,
/*368945*/                  OPC_CheckType, MVT::v4f64,
/*368947*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*368949*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*368952*/                  OPC_EmitMergeInputChains1_1,
/*368953*/                  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] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                            // Dst: (VFNMSUB132PDZ256mbkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*368967*/                0, /*End of Scope*/
/*368968*/              0, // EndSwitchOpcode
/*368969*/            0, /*End of Scope*/
/*368970*/          /*SwitchOpcode*/ 85, TARGET_VAL(X86ISD::STRICT_VFPROUND),// ->369058
/*368973*/            OPC_RecordNode, // #1 = 'X86strict_vfpround' chained node
/*368974*/            OPC_CheckFoldableChainNode,
/*368975*/            OPC_MoveChild1,
/*368976*/            OPC_SwitchOpcode /*2 cases */, 38, TARGET_VAL(ISD::LOAD),// ->369018
/*368980*/              OPC_RecordMemRef,
/*368981*/              OPC_RecordNode, // #2 = 'ld' chained node
/*368982*/              OPC_CheckFoldableChainNode,
/*368983*/              OPC_RecordChild1, // #3 = $src
/*368984*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*368986*/              OPC_CheckPredicate, 9, // Predicate_load
/*368988*/              OPC_CheckType, MVT::v4f64,
/*368990*/              OPC_MoveParent,
/*368991*/              OPC_MoveParent,
/*368992*/              OPC_MoveChild2,
/*368993*/              OPC_CheckImmAllZerosV,
/*368994*/              OPC_MoveParent,
/*368995*/              OPC_CheckType, MVT::v4f32,
/*368997*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*368999*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*369002*/              OPC_EmitMergeInputChains, 2, 1, 2, 
/*369006*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_vfpround:{ *:[v4f32] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                        // Dst: (VCVTPD2PSZ256rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*369018*/            /*SwitchOpcode*/ 36, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->369057
/*369021*/              OPC_RecordMemRef,
/*369022*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*369023*/              OPC_CheckFoldableChainNode,
/*369024*/              OPC_RecordChild1, // #3 = $src
/*369025*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*369027*/              OPC_CheckType, MVT::v4f64,
/*369029*/              OPC_MoveParent,
/*369030*/              OPC_MoveParent,
/*369031*/              OPC_MoveChild2,
/*369032*/              OPC_CheckImmAllZerosV,
/*369033*/              OPC_MoveParent,
/*369034*/              OPC_CheckType, MVT::v4f32,
/*369036*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*369038*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*369041*/              OPC_EmitMergeInputChains, 2, 1, 2, 
/*369045*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_vfpround:{ *:[v4f32] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                        // Dst: (VCVTPD2PSZ256rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*369057*/            0, // EndSwitchOpcode
/*369058*/          /*SwitchOpcode*/ 77, TARGET_VAL(X86ISD::VFPROUND),// ->369138
/*369061*/            OPC_MoveChild0,
/*369062*/            OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->369101
/*369066*/              OPC_RecordMemRef,
/*369067*/              OPC_RecordNode, // #1 = 'ld' chained node
/*369068*/              OPC_CheckFoldableChainNode,
/*369069*/              OPC_RecordChild1, // #2 = $src
/*369070*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*369072*/              OPC_CheckPredicate, 9, // Predicate_load
/*369074*/              OPC_CheckType, MVT::v4f64,
/*369076*/              OPC_MoveParent,
/*369077*/              OPC_MoveParent,
/*369078*/              OPC_MoveChild2,
/*369079*/              OPC_CheckImmAllZerosV,
/*369080*/              OPC_MoveParent,
/*369081*/              OPC_CheckType, MVT::v4f32,
/*369083*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*369085*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*369088*/              OPC_EmitMergeInputChains1_1,
/*369089*/              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, (X86vfpround:{ *:[v4f32] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                        // Dst: (VCVTPD2PSZ256rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*369101*/            /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->369137
/*369104*/              OPC_RecordMemRef,
/*369105*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*369106*/              OPC_CheckFoldableChainNode,
/*369107*/              OPC_RecordChild1, // #2 = $src
/*369108*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*369110*/              OPC_CheckType, MVT::v4f64,
/*369112*/              OPC_MoveParent,
/*369113*/              OPC_MoveParent,
/*369114*/              OPC_MoveChild2,
/*369115*/              OPC_CheckImmAllZerosV,
/*369116*/              OPC_MoveParent,
/*369117*/              OPC_CheckType, MVT::v4f32,
/*369119*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*369121*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*369124*/              OPC_EmitMergeInputChains1_1,
/*369125*/              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, (X86vfpround:{ *:[v4f32] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                        // Dst: (VCVTPD2PSZ256rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*369137*/            0, // EndSwitchOpcode
/*369138*/          /*SwitchOpcode*/ 40, TARGET_VAL(ISD::STRICT_FP_EXTEND),// ->369181
/*369141*/            OPC_RecordNode, // #1 = 'strict_fpextend' chained node
/*369142*/            OPC_CheckFoldableChainNode,
/*369143*/            OPC_MoveChild1,
/*369144*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*369147*/            OPC_RecordMemRef,
/*369148*/            OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*369149*/            OPC_CheckFoldableChainNode,
/*369150*/            OPC_RecordChild1, // #3 = $src
/*369151*/            OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*369153*/            OPC_MoveParent,
/*369154*/            OPC_MoveParent,
/*369155*/            OPC_MoveChild2,
/*369156*/            OPC_CheckImmAllZerosV,
/*369157*/            OPC_MoveParent,
/*369158*/            OPC_CheckType, MVT::v4f64,
/*369160*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*369162*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*369165*/            OPC_EmitMergeInputChains, 2, 1, 2, 
/*369169*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                      // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (strict_fpextend:{ *:[v4f64] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                      // Dst: (VCVTPS2PDZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*369181*/          /*SwitchOpcode*/ 35, TARGET_VAL(ISD::FP_EXTEND),// ->369219
/*369184*/            OPC_MoveChild0,
/*369185*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*369188*/            OPC_RecordMemRef,
/*369189*/            OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*369190*/            OPC_CheckFoldableChainNode,
/*369191*/            OPC_RecordChild1, // #2 = $src
/*369192*/            OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*369194*/            OPC_MoveParent,
/*369195*/            OPC_MoveParent,
/*369196*/            OPC_MoveChild2,
/*369197*/            OPC_CheckImmAllZerosV,
/*369198*/            OPC_MoveParent,
/*369199*/            OPC_CheckType, MVT::v4f64,
/*369201*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*369203*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*369206*/            OPC_EmitMergeInputChains1_1,
/*369207*/            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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                      // Dst: (VCVTPS2PDZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*369219*/          /*SwitchOpcode*/ 123|128,1/*251*/, TARGET_VAL(ISD::STRICT_SINT_TO_FP),// ->369474
/*369223*/            OPC_RecordNode, // #1 = 'strict_sint_to_fp' chained node
/*369224*/            OPC_CheckFoldableChainNode,
/*369225*/            OPC_MoveChild1,
/*369226*/            OPC_SwitchOpcode /*2 cases */, 120, TARGET_VAL(ISD::LOAD),// ->369350
/*369230*/              OPC_RecordMemRef,
/*369231*/              OPC_RecordNode, // #2 = 'ld' chained node
/*369232*/              OPC_CheckFoldableChainNode,
/*369233*/              OPC_RecordChild1, // #3 = $src
/*369234*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*369236*/              OPC_CheckPredicate, 9, // Predicate_load
/*369238*/              OPC_SwitchType /*2 cases */, 53, MVT::v4i32,// ->369294
/*369241*/                OPC_MoveParent,
/*369242*/                OPC_MoveParent,
/*369243*/                OPC_MoveChild2,
/*369244*/                OPC_CheckImmAllZerosV,
/*369245*/                OPC_MoveParent,
/*369246*/                OPC_SwitchType /*2 cases */, 21, MVT::v4f64,// ->369270
/*369249*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*369251*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*369254*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*369258*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (strict_sint_to_fp:{ *:[v4f64] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                            // Dst: (VCVTDQ2PDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*369270*/                /*SwitchType*/ 21, MVT::v4f32,// ->369293
/*369272*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*369274*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*369277*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*369281*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (strict_sint_to_fp:{ *:[v4f32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                            // Dst: (VCVTDQ2PSZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*369293*/                0, // EndSwitchType
/*369294*/              /*SwitchType*/ 53, MVT::v4i64,// ->369349
/*369296*/                OPC_MoveParent,
/*369297*/                OPC_MoveParent,
/*369298*/                OPC_MoveChild2,
/*369299*/                OPC_CheckImmAllZerosV,
/*369300*/                OPC_MoveParent,
/*369301*/                OPC_SwitchType /*2 cases */, 21, MVT::v4f64,// ->369325
/*369304*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*369306*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*369309*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*369313*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (strict_sint_to_fp:{ *:[v4f64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                            // Dst: (VCVTQQ2PDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*369325*/                /*SwitchType*/ 21, MVT::v4f32,// ->369348
/*369327*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*369329*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*369332*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*369336*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PSZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (strict_sint_to_fp:{ *:[v4f32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                            // Dst: (VCVTQQ2PSZ256rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*369348*/                0, // EndSwitchType
/*369349*/              0, // EndSwitchType
/*369350*/            /*SwitchOpcode*/ 120, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->369473
/*369353*/              OPC_RecordMemRef,
/*369354*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*369355*/              OPC_CheckFoldableChainNode,
/*369356*/              OPC_RecordChild1, // #3 = $src
/*369357*/              OPC_SwitchType /*2 cases */, 55, MVT::v4i32,// ->369415
/*369360*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*369362*/                OPC_MoveParent,
/*369363*/                OPC_MoveParent,
/*369364*/                OPC_MoveChild2,
/*369365*/                OPC_CheckImmAllZerosV,
/*369366*/                OPC_MoveParent,
/*369367*/                OPC_SwitchType /*2 cases */, 21, MVT::v4f64,// ->369391
/*369370*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*369372*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*369375*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*369379*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (strict_sint_to_fp:{ *:[v4f64] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                            // Dst: (VCVTDQ2PDZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*369391*/                /*SwitchType*/ 21, MVT::v4f32,// ->369414
/*369393*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*369395*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*369398*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*369402*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (strict_sint_to_fp:{ *:[v4f32] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                            // Dst: (VCVTDQ2PSZ128rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*369414*/                0, // EndSwitchType
/*369415*/              /*SwitchType*/ 55, MVT::v4i64,// ->369472
/*369417*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*369419*/                OPC_MoveParent,
/*369420*/                OPC_MoveParent,
/*369421*/                OPC_MoveChild2,
/*369422*/                OPC_CheckImmAllZerosV,
/*369423*/                OPC_MoveParent,
/*369424*/                OPC_SwitchType /*2 cases */, 21, MVT::v4f64,// ->369448
/*369427*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*369429*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*369432*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*369436*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (strict_sint_to_fp:{ *:[v4f64] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                            // Dst: (VCVTQQ2PDZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*369448*/                /*SwitchType*/ 21, MVT::v4f32,// ->369471
/*369450*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*369452*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*369455*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*369459*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PSZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (strict_sint_to_fp:{ *:[v4f32] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                            // Dst: (VCVTQQ2PSZ256rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*369471*/                0, // EndSwitchType
/*369472*/              0, // EndSwitchType
/*369473*/            0, // EndSwitchOpcode
/*369474*/          /*SwitchOpcode*/ 97|128,1/*225*/, TARGET_VAL(ISD::SINT_TO_FP),// ->369703
/*369478*/            OPC_MoveChild0,
/*369479*/            OPC_SwitchOpcode /*2 cases */, 108, TARGET_VAL(ISD::LOAD),// ->369591
/*369483*/              OPC_RecordMemRef,
/*369484*/              OPC_RecordNode, // #1 = 'ld' chained node
/*369485*/              OPC_CheckFoldableChainNode,
/*369486*/              OPC_RecordChild1, // #2 = $src
/*369487*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*369489*/              OPC_CheckPredicate, 9, // Predicate_load
/*369491*/              OPC_SwitchType /*2 cases */, 47, MVT::v4i32,// ->369541
/*369494*/                OPC_MoveParent,
/*369495*/                OPC_MoveParent,
/*369496*/                OPC_MoveChild2,
/*369497*/                OPC_CheckImmAllZerosV,
/*369498*/                OPC_MoveParent,
/*369499*/                OPC_SwitchType /*2 cases */, 18, MVT::v4f64,// ->369520
/*369502*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*369504*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*369507*/                  OPC_EmitMergeInputChains1_1,
/*369508*/                  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] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                            // Dst: (VCVTDQ2PDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*369520*/                /*SwitchType*/ 18, MVT::v4f32,// ->369540
/*369522*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*369524*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*369527*/                  OPC_EmitMergeInputChains1_1,
/*369528*/                  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] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                            // Dst: (VCVTDQ2PSZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*369540*/                0, // EndSwitchType
/*369541*/              /*SwitchType*/ 47, MVT::v4i64,// ->369590
/*369543*/                OPC_MoveParent,
/*369544*/                OPC_MoveParent,
/*369545*/                OPC_MoveChild2,
/*369546*/                OPC_CheckImmAllZerosV,
/*369547*/                OPC_MoveParent,
/*369548*/                OPC_SwitchType /*2 cases */, 18, MVT::v4f64,// ->369569
/*369551*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*369553*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*369556*/                  OPC_EmitMergeInputChains1_1,
/*369557*/                  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>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                            // Dst: (VCVTQQ2PDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*369569*/                /*SwitchType*/ 18, MVT::v4f32,// ->369589
/*369571*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*369573*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*369576*/                  OPC_EmitMergeInputChains1_1,
/*369577*/                  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>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                            // Dst: (VCVTQQ2PSZ256rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*369589*/                0, // EndSwitchType
/*369590*/              0, // EndSwitchType
/*369591*/            /*SwitchOpcode*/ 108, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->369702
/*369594*/              OPC_RecordMemRef,
/*369595*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*369596*/              OPC_CheckFoldableChainNode,
/*369597*/              OPC_RecordChild1, // #2 = $src
/*369598*/              OPC_SwitchType /*2 cases */, 49, MVT::v4i32,// ->369650
/*369601*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*369603*/                OPC_MoveParent,
/*369604*/                OPC_MoveParent,
/*369605*/                OPC_MoveChild2,
/*369606*/                OPC_CheckImmAllZerosV,
/*369607*/                OPC_MoveParent,
/*369608*/                OPC_SwitchType /*2 cases */, 18, MVT::v4f64,// ->369629
/*369611*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*369613*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*369616*/                  OPC_EmitMergeInputChains1_1,
/*369617*/                  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] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                            // Dst: (VCVTDQ2PDZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*369629*/                /*SwitchType*/ 18, MVT::v4f32,// ->369649
/*369631*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*369633*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*369636*/                  OPC_EmitMergeInputChains1_1,
/*369637*/                  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] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                            // Dst: (VCVTDQ2PSZ128rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*369649*/                0, // EndSwitchType
/*369650*/              /*SwitchType*/ 49, MVT::v4i64,// ->369701
/*369652*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*369654*/                OPC_MoveParent,
/*369655*/                OPC_MoveParent,
/*369656*/                OPC_MoveChild2,
/*369657*/                OPC_CheckImmAllZerosV,
/*369658*/                OPC_MoveParent,
/*369659*/                OPC_SwitchType /*2 cases */, 18, MVT::v4f64,// ->369680
/*369662*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*369664*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*369667*/                  OPC_EmitMergeInputChains1_1,
/*369668*/                  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] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                            // Dst: (VCVTQQ2PDZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*369680*/                /*SwitchType*/ 18, MVT::v4f32,// ->369700
/*369682*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*369684*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*369687*/                  OPC_EmitMergeInputChains1_1,
/*369688*/                  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] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                            // Dst: (VCVTQQ2PSZ256rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*369700*/                0, // EndSwitchType
/*369701*/              0, // EndSwitchType
/*369702*/            0, // EndSwitchOpcode
/*369703*/          /*SwitchOpcode*/ 123|128,1/*251*/, TARGET_VAL(ISD::STRICT_UINT_TO_FP),// ->369958
/*369707*/            OPC_RecordNode, // #1 = 'strict_uint_to_fp' chained node
/*369708*/            OPC_CheckFoldableChainNode,
/*369709*/            OPC_MoveChild1,
/*369710*/            OPC_SwitchOpcode /*2 cases */, 120, TARGET_VAL(ISD::LOAD),// ->369834
/*369714*/              OPC_RecordMemRef,
/*369715*/              OPC_RecordNode, // #2 = 'ld' chained node
/*369716*/              OPC_CheckFoldableChainNode,
/*369717*/              OPC_RecordChild1, // #3 = $src
/*369718*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*369720*/              OPC_CheckPredicate, 9, // Predicate_load
/*369722*/              OPC_SwitchType /*2 cases */, 53, MVT::v4i32,// ->369778
/*369725*/                OPC_MoveParent,
/*369726*/                OPC_MoveParent,
/*369727*/                OPC_MoveChild2,
/*369728*/                OPC_CheckImmAllZerosV,
/*369729*/                OPC_MoveParent,
/*369730*/                OPC_SwitchType /*2 cases */, 21, MVT::v4f64,// ->369754
/*369733*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*369735*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*369738*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*369742*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (strict_uint_to_fp:{ *:[v4f64] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                            // Dst: (VCVTUDQ2PDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*369754*/                /*SwitchType*/ 21, MVT::v4f32,// ->369777
/*369756*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*369758*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*369761*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*369765*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PSZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (strict_uint_to_fp:{ *:[v4f32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                            // Dst: (VCVTUDQ2PSZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*369777*/                0, // EndSwitchType
/*369778*/              /*SwitchType*/ 53, MVT::v4i64,// ->369833
/*369780*/                OPC_MoveParent,
/*369781*/                OPC_MoveParent,
/*369782*/                OPC_MoveChild2,
/*369783*/                OPC_CheckImmAllZerosV,
/*369784*/                OPC_MoveParent,
/*369785*/                OPC_SwitchType /*2 cases */, 21, MVT::v4f64,// ->369809
/*369788*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*369790*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*369793*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*369797*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (strict_uint_to_fp:{ *:[v4f64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                            // Dst: (VCVTUQQ2PDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*369809*/                /*SwitchType*/ 21, MVT::v4f32,// ->369832
/*369811*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*369813*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*369816*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*369820*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PSZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (strict_uint_to_fp:{ *:[v4f32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                            // Dst: (VCVTUQQ2PSZ256rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*369832*/                0, // EndSwitchType
/*369833*/              0, // EndSwitchType
/*369834*/            /*SwitchOpcode*/ 120, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->369957
/*369837*/              OPC_RecordMemRef,
/*369838*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*369839*/              OPC_CheckFoldableChainNode,
/*369840*/              OPC_RecordChild1, // #3 = $src
/*369841*/              OPC_SwitchType /*2 cases */, 55, MVT::v4i32,// ->369899
/*369844*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*369846*/                OPC_MoveParent,
/*369847*/                OPC_MoveParent,
/*369848*/                OPC_MoveChild2,
/*369849*/                OPC_CheckImmAllZerosV,
/*369850*/                OPC_MoveParent,
/*369851*/                OPC_SwitchType /*2 cases */, 21, MVT::v4f64,// ->369875
/*369854*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*369856*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*369859*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*369863*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (strict_uint_to_fp:{ *:[v4f64] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                            // Dst: (VCVTUDQ2PDZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*369875*/                /*SwitchType*/ 21, MVT::v4f32,// ->369898
/*369877*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*369879*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*369882*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*369886*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PSZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (strict_uint_to_fp:{ *:[v4f32] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                            // Dst: (VCVTUDQ2PSZ128rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*369898*/                0, // EndSwitchType
/*369899*/              /*SwitchType*/ 55, MVT::v4i64,// ->369956
/*369901*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*369903*/                OPC_MoveParent,
/*369904*/                OPC_MoveParent,
/*369905*/                OPC_MoveChild2,
/*369906*/                OPC_CheckImmAllZerosV,
/*369907*/                OPC_MoveParent,
/*369908*/                OPC_SwitchType /*2 cases */, 21, MVT::v4f64,// ->369932
/*369911*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*369913*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*369916*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*369920*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PDZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (strict_uint_to_fp:{ *:[v4f64] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                            // Dst: (VCVTUQQ2PDZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*369932*/                /*SwitchType*/ 21, MVT::v4f32,// ->369955
/*369934*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*369936*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*369939*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*369943*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PSZ256rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (strict_uint_to_fp:{ *:[v4f32] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                            // Dst: (VCVTUQQ2PSZ256rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*369955*/                0, // EndSwitchType
/*369956*/              0, // EndSwitchType
/*369957*/            0, // EndSwitchOpcode
/*369958*/          /*SwitchOpcode*/ 97|128,1/*225*/, TARGET_VAL(ISD::UINT_TO_FP),// ->370187
/*369962*/            OPC_MoveChild0,
/*369963*/            OPC_SwitchOpcode /*2 cases */, 108, TARGET_VAL(ISD::LOAD),// ->370075
/*369967*/              OPC_RecordMemRef,
/*369968*/              OPC_RecordNode, // #1 = 'ld' chained node
/*369969*/              OPC_CheckFoldableChainNode,
/*369970*/              OPC_RecordChild1, // #2 = $src
/*369971*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*369973*/              OPC_CheckPredicate, 9, // Predicate_load
/*369975*/              OPC_SwitchType /*2 cases */, 47, MVT::v4i32,// ->370025
/*369978*/                OPC_MoveParent,
/*369979*/                OPC_MoveParent,
/*369980*/                OPC_MoveChild2,
/*369981*/                OPC_CheckImmAllZerosV,
/*369982*/                OPC_MoveParent,
/*369983*/                OPC_SwitchType /*2 cases */, 18, MVT::v4f64,// ->370004
/*369986*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*369988*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*369991*/                  OPC_EmitMergeInputChains1_1,
/*369992*/                  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] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                            // Dst: (VCVTUDQ2PDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*370004*/                /*SwitchType*/ 18, MVT::v4f32,// ->370024
/*370006*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*370008*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*370011*/                  OPC_EmitMergeInputChains1_1,
/*370012*/                  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] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                            // Dst: (VCVTUDQ2PSZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*370024*/                0, // EndSwitchType
/*370025*/              /*SwitchType*/ 47, MVT::v4i64,// ->370074
/*370027*/                OPC_MoveParent,
/*370028*/                OPC_MoveParent,
/*370029*/                OPC_MoveChild2,
/*370030*/                OPC_CheckImmAllZerosV,
/*370031*/                OPC_MoveParent,
/*370032*/                OPC_SwitchType /*2 cases */, 18, MVT::v4f64,// ->370053
/*370035*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*370037*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*370040*/                  OPC_EmitMergeInputChains1_1,
/*370041*/                  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>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                            // Dst: (VCVTUQQ2PDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*370053*/                /*SwitchType*/ 18, MVT::v4f32,// ->370073
/*370055*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*370057*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*370060*/                  OPC_EmitMergeInputChains1_1,
/*370061*/                  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>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                            // Dst: (VCVTUQQ2PSZ256rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*370073*/                0, // EndSwitchType
/*370074*/              0, // EndSwitchType
/*370075*/            /*SwitchOpcode*/ 108, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->370186
/*370078*/              OPC_RecordMemRef,
/*370079*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*370080*/              OPC_CheckFoldableChainNode,
/*370081*/              OPC_RecordChild1, // #2 = $src
/*370082*/              OPC_SwitchType /*2 cases */, 49, MVT::v4i32,// ->370134
/*370085*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*370087*/                OPC_MoveParent,
/*370088*/                OPC_MoveParent,
/*370089*/                OPC_MoveChild2,
/*370090*/                OPC_CheckImmAllZerosV,
/*370091*/                OPC_MoveParent,
/*370092*/                OPC_SwitchType /*2 cases */, 18, MVT::v4f64,// ->370113
/*370095*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*370097*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*370100*/                  OPC_EmitMergeInputChains1_1,
/*370101*/                  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] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                            // Dst: (VCVTUDQ2PDZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*370113*/                /*SwitchType*/ 18, MVT::v4f32,// ->370133
/*370115*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*370117*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*370120*/                  OPC_EmitMergeInputChains1_1,
/*370121*/                  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] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                            // Dst: (VCVTUDQ2PSZ128rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*370133*/                0, // EndSwitchType
/*370134*/              /*SwitchType*/ 49, MVT::v4i64,// ->370185
/*370136*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*370138*/                OPC_MoveParent,
/*370139*/                OPC_MoveParent,
/*370140*/                OPC_MoveChild2,
/*370141*/                OPC_CheckImmAllZerosV,
/*370142*/                OPC_MoveParent,
/*370143*/                OPC_SwitchType /*2 cases */, 18, MVT::v4f64,// ->370164
/*370146*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*370148*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*370151*/                  OPC_EmitMergeInputChains1_1,
/*370152*/                  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] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                            // Dst: (VCVTUQQ2PDZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*370164*/                /*SwitchType*/ 18, MVT::v4f32,// ->370184
/*370166*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*370168*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*370171*/                  OPC_EmitMergeInputChains1_1,
/*370172*/                  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] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                            // Dst: (VCVTUQQ2PSZ256rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*370184*/                0, // EndSwitchType
/*370185*/              0, // EndSwitchType
/*370186*/            0, // EndSwitchOpcode
/*370187*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::CVTPH2PS),// ->370229
/*370190*/            OPC_MoveChild0,
/*370191*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*370194*/            OPC_RecordMemRef,
/*370195*/            OPC_RecordNode, // #1 = 'ld' chained node
/*370196*/            OPC_CheckFoldableChainNode,
/*370197*/            OPC_RecordChild1, // #2 = $src
/*370198*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*370200*/            OPC_CheckPredicate, 9, // Predicate_load
/*370202*/            OPC_CheckType, MVT::v8i16,
/*370204*/            OPC_MoveParent,
/*370205*/            OPC_MoveParent,
/*370206*/            OPC_MoveChild2,
/*370207*/            OPC_CheckImmAllZerosV,
/*370208*/            OPC_MoveParent,
/*370209*/            OPC_CheckType, MVT::v4f32,
/*370211*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*370213*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*370216*/            OPC_EmitMergeInputChains1_1,
/*370217*/            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] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                      // Dst: (VCVTPH2PSZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*370229*/          /*SwitchOpcode*/ 126, TARGET_VAL(X86ISD::RSQRT14),// ->370358
/*370232*/            OPC_MoveChild0,
/*370233*/            OPC_SwitchOpcode /*2 cases */, 55, TARGET_VAL(ISD::LOAD),// ->370292
/*370237*/              OPC_RecordMemRef,
/*370238*/              OPC_RecordNode, // #1 = 'ld' chained node
/*370239*/              OPC_CheckFoldableChainNode,
/*370240*/              OPC_RecordChild1, // #2 = $src
/*370241*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*370243*/              OPC_CheckPredicate, 9, // Predicate_load
/*370245*/              OPC_MoveParent,
/*370246*/              OPC_MoveParent,
/*370247*/              OPC_MoveChild2,
/*370248*/              OPC_CheckImmAllZerosV,
/*370249*/              OPC_MoveParent,
/*370250*/              OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->370271
/*370253*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*370255*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*370258*/                OPC_EmitMergeInputChains1_1,
/*370259*/                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>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                          // Dst: (VRSQRT14PSZ128mkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*370271*/              /*SwitchType*/ 18, MVT::v4f64,// ->370291
/*370273*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*370275*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*370278*/                OPC_EmitMergeInputChains1_1,
/*370279*/                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>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                          // Dst: (VRSQRT14PDZ256mkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*370291*/              0, // EndSwitchType
/*370292*/            /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->370357
/*370295*/              OPC_RecordMemRef,
/*370296*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*370297*/              OPC_CheckFoldableChainNode,
/*370298*/              OPC_RecordChild1, // #2 = $src
/*370299*/              OPC_Scope, 27, /*->370328*/ // 2 children in Scope
/*370301*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*370303*/                OPC_MoveParent,
/*370304*/                OPC_MoveParent,
/*370305*/                OPC_MoveChild2,
/*370306*/                OPC_CheckImmAllZerosV,
/*370307*/                OPC_MoveParent,
/*370308*/                OPC_CheckType, MVT::v4f32,
/*370310*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*370312*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*370315*/                OPC_EmitMergeInputChains1_1,
/*370316*/                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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                          // Dst: (VRSQRT14PSZ128mbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*370328*/              /*Scope*/ 27, /*->370356*/
/*370329*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*370331*/                OPC_MoveParent,
/*370332*/                OPC_MoveParent,
/*370333*/                OPC_MoveChild2,
/*370334*/                OPC_CheckImmAllZerosV,
/*370335*/                OPC_MoveParent,
/*370336*/                OPC_CheckType, MVT::v4f64,
/*370338*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*370340*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*370343*/                OPC_EmitMergeInputChains1_1,
/*370344*/                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] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                          // Dst: (VRSQRT14PDZ256mbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*370356*/              0, /*End of Scope*/
/*370357*/            0, // EndSwitchOpcode
/*370358*/          /*SwitchOpcode*/ 126, TARGET_VAL(X86ISD::RCP14),// ->370487
/*370361*/            OPC_MoveChild0,
/*370362*/            OPC_SwitchOpcode /*2 cases */, 55, TARGET_VAL(ISD::LOAD),// ->370421
/*370366*/              OPC_RecordMemRef,
/*370367*/              OPC_RecordNode, // #1 = 'ld' chained node
/*370368*/              OPC_CheckFoldableChainNode,
/*370369*/              OPC_RecordChild1, // #2 = $src
/*370370*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*370372*/              OPC_CheckPredicate, 9, // Predicate_load
/*370374*/              OPC_MoveParent,
/*370375*/              OPC_MoveParent,
/*370376*/              OPC_MoveChild2,
/*370377*/              OPC_CheckImmAllZerosV,
/*370378*/              OPC_MoveParent,
/*370379*/              OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->370400
/*370382*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*370384*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*370387*/                OPC_EmitMergeInputChains1_1,
/*370388*/                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>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                          // Dst: (VRCP14PSZ128mkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*370400*/              /*SwitchType*/ 18, MVT::v4f64,// ->370420
/*370402*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*370404*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*370407*/                OPC_EmitMergeInputChains1_1,
/*370408*/                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>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                          // Dst: (VRCP14PDZ256mkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*370420*/              0, // EndSwitchType
/*370421*/            /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->370486
/*370424*/              OPC_RecordMemRef,
/*370425*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*370426*/              OPC_CheckFoldableChainNode,
/*370427*/              OPC_RecordChild1, // #2 = $src
/*370428*/              OPC_Scope, 27, /*->370457*/ // 2 children in Scope
/*370430*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*370432*/                OPC_MoveParent,
/*370433*/                OPC_MoveParent,
/*370434*/                OPC_MoveChild2,
/*370435*/                OPC_CheckImmAllZerosV,
/*370436*/                OPC_MoveParent,
/*370437*/                OPC_CheckType, MVT::v4f32,
/*370439*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*370441*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*370444*/                OPC_EmitMergeInputChains1_1,
/*370445*/                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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                          // Dst: (VRCP14PSZ128mbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*370457*/              /*Scope*/ 27, /*->370485*/
/*370458*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*370460*/                OPC_MoveParent,
/*370461*/                OPC_MoveParent,
/*370462*/                OPC_MoveChild2,
/*370463*/                OPC_CheckImmAllZerosV,
/*370464*/                OPC_MoveParent,
/*370465*/                OPC_CheckType, MVT::v4f64,
/*370467*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*370469*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*370472*/                OPC_EmitMergeInputChains1_1,
/*370473*/                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] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                          // Dst: (VRCP14PDZ256mbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*370485*/              0, /*End of Scope*/
/*370486*/            0, // EndSwitchOpcode
/*370487*/          /*SwitchOpcode*/ 126, TARGET_VAL(X86ISD::FGETEXP),// ->370616
/*370490*/            OPC_MoveChild0,
/*370491*/            OPC_SwitchOpcode /*2 cases */, 55, TARGET_VAL(ISD::LOAD),// ->370550
/*370495*/              OPC_RecordMemRef,
/*370496*/              OPC_RecordNode, // #1 = 'ld' chained node
/*370497*/              OPC_CheckFoldableChainNode,
/*370498*/              OPC_RecordChild1, // #2 = $src
/*370499*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*370501*/              OPC_CheckPredicate, 9, // Predicate_load
/*370503*/              OPC_MoveParent,
/*370504*/              OPC_MoveParent,
/*370505*/              OPC_MoveChild2,
/*370506*/              OPC_CheckImmAllZerosV,
/*370507*/              OPC_MoveParent,
/*370508*/              OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->370529
/*370511*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*370513*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*370516*/                OPC_EmitMergeInputChains1_1,
/*370517*/                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, (X86fgetexp:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                          // Dst: (VGETEXPPSZ128mkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*370529*/              /*SwitchType*/ 18, MVT::v4f64,// ->370549
/*370531*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*370533*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*370536*/                OPC_EmitMergeInputChains1_1,
/*370537*/                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, (X86fgetexp:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                          // Dst: (VGETEXPPDZ256mkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*370549*/              0, // EndSwitchType
/*370550*/            /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->370615
/*370553*/              OPC_RecordMemRef,
/*370554*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*370555*/              OPC_CheckFoldableChainNode,
/*370556*/              OPC_RecordChild1, // #2 = $src
/*370557*/              OPC_Scope, 27, /*->370586*/ // 2 children in Scope
/*370559*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*370561*/                OPC_MoveParent,
/*370562*/                OPC_MoveParent,
/*370563*/                OPC_MoveChild2,
/*370564*/                OPC_CheckImmAllZerosV,
/*370565*/                OPC_MoveParent,
/*370566*/                OPC_CheckType, MVT::v4f32,
/*370568*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*370570*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*370573*/                OPC_EmitMergeInputChains1_1,
/*370574*/                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, (X86fgetexp:{ *:[v4f32] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                          // Dst: (VGETEXPPSZ128mbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*370586*/              /*Scope*/ 27, /*->370614*/
/*370587*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*370589*/                OPC_MoveParent,
/*370590*/                OPC_MoveParent,
/*370591*/                OPC_MoveChild2,
/*370592*/                OPC_CheckImmAllZerosV,
/*370593*/                OPC_MoveParent,
/*370594*/                OPC_CheckType, MVT::v4f64,
/*370596*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*370598*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*370601*/                OPC_EmitMergeInputChains1_1,
/*370602*/                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, (X86fgetexp:{ *:[v4f64] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                          // Dst: (VGETEXPPDZ256mbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*370614*/              0, /*End of Scope*/
/*370615*/            0, // EndSwitchOpcode
/*370616*/          /*SwitchOpcode*/ 12|128,1/*140*/, TARGET_VAL(ISD::STRICT_FSQRT),// ->370760
/*370620*/            OPC_RecordNode, // #1 = 'strict_fsqrt' chained node
/*370621*/            OPC_CheckFoldableChainNode,
/*370622*/            OPC_MoveChild1,
/*370623*/            OPC_SwitchOpcode /*2 cases */, 61, TARGET_VAL(ISD::LOAD),// ->370688
/*370627*/              OPC_RecordMemRef,
/*370628*/              OPC_RecordNode, // #2 = 'ld' chained node
/*370629*/              OPC_CheckFoldableChainNode,
/*370630*/              OPC_RecordChild1, // #3 = $src
/*370631*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*370633*/              OPC_CheckPredicate, 9, // Predicate_load
/*370635*/              OPC_MoveParent,
/*370636*/              OPC_MoveParent,
/*370637*/              OPC_MoveChild2,
/*370638*/              OPC_CheckImmAllZerosV,
/*370639*/              OPC_MoveParent,
/*370640*/              OPC_SwitchType /*2 cases */, 21, MVT::v4f32,// ->370664
/*370643*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*370645*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*370648*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*370652*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (strict_fsqrt:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                          // Dst: (VSQRTPSZ128mkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*370664*/              /*SwitchType*/ 21, MVT::v4f64,// ->370687
/*370666*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*370668*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*370671*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*370675*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDZ256mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (strict_fsqrt:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                          // Dst: (VSQRTPDZ256mkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*370687*/              0, // EndSwitchType
/*370688*/            /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->370759
/*370691*/              OPC_RecordMemRef,
/*370692*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*370693*/              OPC_CheckFoldableChainNode,
/*370694*/              OPC_RecordChild1, // #3 = $src
/*370695*/              OPC_Scope, 30, /*->370727*/ // 2 children in Scope
/*370697*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*370699*/                OPC_MoveParent,
/*370700*/                OPC_MoveParent,
/*370701*/                OPC_MoveChild2,
/*370702*/                OPC_CheckImmAllZerosV,
/*370703*/                OPC_MoveParent,
/*370704*/                OPC_CheckType, MVT::v4f32,
/*370706*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*370708*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*370711*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*370715*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSZ128mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (strict_fsqrt:{ *:[v4f32] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                          // Dst: (VSQRTPSZ128mbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*370727*/              /*Scope*/ 30, /*->370758*/
/*370728*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*370730*/                OPC_MoveParent,
/*370731*/                OPC_MoveParent,
/*370732*/                OPC_MoveChild2,
/*370733*/                OPC_CheckImmAllZerosV,
/*370734*/                OPC_MoveParent,
/*370735*/                OPC_CheckType, MVT::v4f64,
/*370737*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*370739*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*370742*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*370746*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDZ256mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (strict_fsqrt:{ *:[v4f64] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                          // Dst: (VSQRTPDZ256mbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*370758*/              0, /*End of Scope*/
/*370759*/            0, // EndSwitchOpcode
/*370760*/          /*SwitchOpcode*/ 126, TARGET_VAL(ISD::FSQRT),// ->370889
/*370763*/            OPC_MoveChild0,
/*370764*/            OPC_SwitchOpcode /*2 cases */, 55, TARGET_VAL(ISD::LOAD),// ->370823
/*370768*/              OPC_RecordMemRef,
/*370769*/              OPC_RecordNode, // #1 = 'ld' chained node
/*370770*/              OPC_CheckFoldableChainNode,
/*370771*/              OPC_RecordChild1, // #2 = $src
/*370772*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*370774*/              OPC_CheckPredicate, 9, // Predicate_load
/*370776*/              OPC_MoveParent,
/*370777*/              OPC_MoveParent,
/*370778*/              OPC_MoveChild2,
/*370779*/              OPC_CheckImmAllZerosV,
/*370780*/              OPC_MoveParent,
/*370781*/              OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->370802
/*370784*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*370786*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*370789*/                OPC_EmitMergeInputChains1_1,
/*370790*/                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>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                          // Dst: (VSQRTPSZ128mkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*370802*/              /*SwitchType*/ 18, MVT::v4f64,// ->370822
/*370804*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*370806*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*370809*/                OPC_EmitMergeInputChains1_1,
/*370810*/                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>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                          // Dst: (VSQRTPDZ256mkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*370822*/              0, // EndSwitchType
/*370823*/            /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->370888
/*370826*/              OPC_RecordMemRef,
/*370827*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*370828*/              OPC_CheckFoldableChainNode,
/*370829*/              OPC_RecordChild1, // #2 = $src
/*370830*/              OPC_Scope, 27, /*->370859*/ // 2 children in Scope
/*370832*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*370834*/                OPC_MoveParent,
/*370835*/                OPC_MoveParent,
/*370836*/                OPC_MoveChild2,
/*370837*/                OPC_CheckImmAllZerosV,
/*370838*/                OPC_MoveParent,
/*370839*/                OPC_CheckType, MVT::v4f32,
/*370841*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*370843*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*370846*/                OPC_EmitMergeInputChains1_1,
/*370847*/                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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                          // Dst: (VSQRTPSZ128mbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*370859*/              /*Scope*/ 27, /*->370887*/
/*370860*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*370862*/                OPC_MoveParent,
/*370863*/                OPC_MoveParent,
/*370864*/                OPC_MoveChild2,
/*370865*/                OPC_CheckImmAllZerosV,
/*370866*/                OPC_MoveParent,
/*370867*/                OPC_CheckType, MVT::v4f64,
/*370869*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*370871*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*370874*/                OPC_EmitMergeInputChains1_1,
/*370875*/                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] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                          // Dst: (VSQRTPDZ256mbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*370887*/              0, /*End of Scope*/
/*370888*/            0, // EndSwitchOpcode
/*370889*/          /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::MOVSHDUP),// ->370929
/*370892*/            OPC_MoveChild0,
/*370893*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*370896*/            OPC_RecordMemRef,
/*370897*/            OPC_RecordNode, // #1 = 'ld' chained node
/*370898*/            OPC_CheckFoldableChainNode,
/*370899*/            OPC_RecordChild1, // #2 = $src1
/*370900*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*370902*/            OPC_CheckPredicate, 9, // Predicate_load
/*370904*/            OPC_MoveParent,
/*370905*/            OPC_MoveParent,
/*370906*/            OPC_MoveChild2,
/*370907*/            OPC_CheckImmAllZerosV,
/*370908*/            OPC_MoveParent,
/*370909*/            OPC_CheckType, MVT::v4f32,
/*370911*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*370913*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*370916*/            OPC_EmitMergeInputChains1_1,
/*370917*/            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>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                      // Dst: (VMOVSHDUPZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*370929*/          /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::MOVSLDUP),// ->370969
/*370932*/            OPC_MoveChild0,
/*370933*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*370936*/            OPC_RecordMemRef,
/*370937*/            OPC_RecordNode, // #1 = 'ld' chained node
/*370938*/            OPC_CheckFoldableChainNode,
/*370939*/            OPC_RecordChild1, // #2 = $src1
/*370940*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*370942*/            OPC_CheckPredicate, 9, // Predicate_load
/*370944*/            OPC_MoveParent,
/*370945*/            OPC_MoveParent,
/*370946*/            OPC_MoveChild2,
/*370947*/            OPC_CheckImmAllZerosV,
/*370948*/            OPC_MoveParent,
/*370949*/            OPC_CheckType, MVT::v4f32,
/*370951*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*370953*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*370956*/            OPC_EmitMergeInputChains1_1,
/*370957*/            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>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                      // Dst: (VMOVSLDUPZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*370969*/          /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::MOVDDUP),// ->371009
/*370972*/            OPC_MoveChild0,
/*370973*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*370976*/            OPC_RecordMemRef,
/*370977*/            OPC_RecordNode, // #1 = 'ld' chained node
/*370978*/            OPC_CheckFoldableChainNode,
/*370979*/            OPC_RecordChild1, // #2 = $src1
/*370980*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*370982*/            OPC_CheckPredicate, 9, // Predicate_load
/*370984*/            OPC_MoveParent,
/*370985*/            OPC_MoveParent,
/*370986*/            OPC_MoveChild2,
/*370987*/            OPC_CheckImmAllZerosV,
/*370988*/            OPC_MoveParent,
/*370989*/            OPC_CheckType, MVT::v4f64,
/*370991*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*370993*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #3 #4 #5 #6 #7
/*370996*/            OPC_EmitMergeInputChains1_1,
/*370997*/            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>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                      // Dst: (VMOVDDUPZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*371009*/          /*SwitchOpcode*/ 3|128,1/*131*/, TARGET_VAL(X86ISD::UNPCKH),// ->371144
/*371013*/            OPC_RecordChild0, // #1 = $src1
/*371014*/            OPC_MoveChild1,
/*371015*/            OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->371076
/*371019*/              OPC_RecordMemRef,
/*371020*/              OPC_RecordNode, // #2 = 'ld' chained node
/*371021*/              OPC_CheckFoldableChainNode,
/*371022*/              OPC_RecordChild1, // #3 = $src2
/*371023*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*371025*/              OPC_CheckPredicate, 9, // Predicate_load
/*371027*/              OPC_MoveParent,
/*371028*/              OPC_MoveParent,
/*371029*/              OPC_MoveChild2,
/*371030*/              OPC_CheckImmAllZerosV,
/*371031*/              OPC_MoveParent,
/*371032*/              OPC_SwitchType /*2 cases */, 19, MVT::v4f32,// ->371054
/*371035*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*371037*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*371040*/                OPC_EmitMergeInputChains1_2,
/*371041*/                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>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                          // Dst: (VUNPCKHPSZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*371054*/              /*SwitchType*/ 19, MVT::v4f64,// ->371075
/*371056*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*371058*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*371061*/                OPC_EmitMergeInputChains1_2,
/*371062*/                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>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                          // Dst: (VUNPCKHPDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*371075*/              0, // EndSwitchType
/*371076*/            /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->371143
/*371079*/              OPC_RecordMemRef,
/*371080*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*371081*/              OPC_CheckFoldableChainNode,
/*371082*/              OPC_RecordChild1, // #3 = $src2
/*371083*/              OPC_Scope, 28, /*->371113*/ // 2 children in Scope
/*371085*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*371087*/                OPC_MoveParent,
/*371088*/                OPC_MoveParent,
/*371089*/                OPC_MoveChild2,
/*371090*/                OPC_CheckImmAllZerosV,
/*371091*/                OPC_MoveParent,
/*371092*/                OPC_CheckType, MVT::v4f32,
/*371094*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*371096*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*371099*/                OPC_EmitMergeInputChains1_2,
/*371100*/                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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                          // Dst: (VUNPCKHPSZ128rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*371113*/              /*Scope*/ 28, /*->371142*/
/*371114*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*371116*/                OPC_MoveParent,
/*371117*/                OPC_MoveParent,
/*371118*/                OPC_MoveChild2,
/*371119*/                OPC_CheckImmAllZerosV,
/*371120*/                OPC_MoveParent,
/*371121*/                OPC_CheckType, MVT::v4f64,
/*371123*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*371125*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*371128*/                OPC_EmitMergeInputChains1_2,
/*371129*/                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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                          // Dst: (VUNPCKHPDZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*371142*/              0, /*End of Scope*/
/*371143*/            0, // EndSwitchOpcode
/*371144*/          /*SwitchOpcode*/ 3|128,1/*131*/, TARGET_VAL(X86ISD::UNPCKL),// ->371279
/*371148*/            OPC_RecordChild0, // #1 = $src1
/*371149*/            OPC_MoveChild1,
/*371150*/            OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->371211
/*371154*/              OPC_RecordMemRef,
/*371155*/              OPC_RecordNode, // #2 = 'ld' chained node
/*371156*/              OPC_CheckFoldableChainNode,
/*371157*/              OPC_RecordChild1, // #3 = $src2
/*371158*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*371160*/              OPC_CheckPredicate, 9, // Predicate_load
/*371162*/              OPC_MoveParent,
/*371163*/              OPC_MoveParent,
/*371164*/              OPC_MoveChild2,
/*371165*/              OPC_CheckImmAllZerosV,
/*371166*/              OPC_MoveParent,
/*371167*/              OPC_SwitchType /*2 cases */, 19, MVT::v4f32,// ->371189
/*371170*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*371172*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*371175*/                OPC_EmitMergeInputChains1_2,
/*371176*/                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>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                          // Dst: (VUNPCKLPSZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*371189*/              /*SwitchType*/ 19, MVT::v4f64,// ->371210
/*371191*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*371193*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*371196*/                OPC_EmitMergeInputChains1_2,
/*371197*/                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>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                          // Dst: (VUNPCKLPDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*371210*/              0, // EndSwitchType
/*371211*/            /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->371278
/*371214*/              OPC_RecordMemRef,
/*371215*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*371216*/              OPC_CheckFoldableChainNode,
/*371217*/              OPC_RecordChild1, // #3 = $src2
/*371218*/              OPC_Scope, 28, /*->371248*/ // 2 children in Scope
/*371220*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*371222*/                OPC_MoveParent,
/*371223*/                OPC_MoveParent,
/*371224*/                OPC_MoveChild2,
/*371225*/                OPC_CheckImmAllZerosV,
/*371226*/                OPC_MoveParent,
/*371227*/                OPC_CheckType, MVT::v4f32,
/*371229*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*371231*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*371234*/                OPC_EmitMergeInputChains1_2,
/*371235*/                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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                          // Dst: (VUNPCKLPSZ128rmbkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*371248*/              /*Scope*/ 28, /*->371277*/
/*371249*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*371251*/                OPC_MoveParent,
/*371252*/                OPC_MoveParent,
/*371253*/                OPC_MoveChild2,
/*371254*/                OPC_CheckImmAllZerosV,
/*371255*/                OPC_MoveParent,
/*371256*/                OPC_CheckType, MVT::v4f64,
/*371258*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*371260*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*371263*/                OPC_EmitMergeInputChains1_2,
/*371264*/                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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v4f64] }) - Complexity = 32
                          // Dst: (VUNPCKLPDZ256rmbkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*371277*/              0, /*End of Scope*/
/*371278*/            0, // EndSwitchOpcode
/*371279*/          /*SwitchOpcode*/ 85, TARGET_VAL(X86ISD::DPBF16PS),// ->371367
/*371282*/            OPC_RecordChild0, // #1 = $src1
/*371283*/            OPC_RecordChild1, // #2 = $src2
/*371284*/            OPC_CheckChild1Type, MVT::v4i32,
/*371286*/            OPC_MoveChild2,
/*371287*/            OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->371328
/*371291*/              OPC_RecordMemRef,
/*371292*/              OPC_RecordNode, // #3 = 'ld' chained node
/*371293*/              OPC_CheckFoldableChainNode,
/*371294*/              OPC_RecordChild1, // #4 = $src3
/*371295*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*371297*/              OPC_CheckPredicate, 9, // Predicate_load
/*371299*/              OPC_MoveParent,
/*371300*/              OPC_MoveParent,
/*371301*/              OPC_MoveChild2,
/*371302*/              OPC_CheckImmAllZerosV,
/*371303*/              OPC_MoveParent,
/*371304*/              OPC_CheckType, MVT::v4f32,
/*371306*/              OPC_CheckPatternPredicate, 182, // (Subtarget->hasBF16()) && (Subtarget->hasVLX())
/*371308*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*371311*/              OPC_EmitMergeInputChains, 1, 3, 
/*371314*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDPBF16PSZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86dpbf16ps:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                        // Dst: (VDPBF16PSZ128mkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*371328*/            /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->371366
/*371331*/              OPC_RecordMemRef,
/*371332*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*371333*/              OPC_CheckFoldableChainNode,
/*371334*/              OPC_RecordChild1, // #4 = $src3
/*371335*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*371337*/              OPC_MoveParent,
/*371338*/              OPC_MoveParent,
/*371339*/              OPC_MoveChild2,
/*371340*/              OPC_CheckImmAllZerosV,
/*371341*/              OPC_MoveParent,
/*371342*/              OPC_CheckType, MVT::v4f32,
/*371344*/              OPC_CheckPatternPredicate, 182, // (Subtarget->hasBF16()) && (Subtarget->hasVLX())
/*371346*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*371349*/              OPC_EmitMergeInputChains, 1, 3, 
/*371352*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDPBF16PSZ128mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86dpbf16ps:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v4f32] }) - Complexity = 32
                        // Dst: (VDPBF16PSZ128mbkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*371366*/            0, // EndSwitchOpcode
/*371367*/          0, // EndSwitchOpcode
/*371368*/        /*Scope*/ 56, /*->371425*/
/*371369*/          OPC_RecordChild1, // #1 = $src3
/*371370*/          OPC_MoveChild1,
/*371371*/          OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*371374*/          OPC_RecordChild0, // #2 = $src1
/*371375*/          OPC_MoveChild1,
/*371376*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*371379*/          OPC_RecordMemRef,
/*371380*/          OPC_RecordNode, // #3 = 'ld' chained node
/*371381*/          OPC_CheckFoldableChainNode,
/*371382*/          OPC_RecordChild1, // #4 = $src2
/*371383*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*371385*/          OPC_CheckPredicate, 9, // Predicate_load
/*371387*/          OPC_MoveParent,
/*371388*/          OPC_MoveChild2,
/*371389*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*371392*/          OPC_CheckType, MVT::iPTR,
/*371394*/          OPC_MoveParent,
/*371395*/          OPC_MoveParent,
/*371396*/          OPC_RecordChild2, // #5 = $src0
/*371397*/          OPC_CheckType, MVT::v4f64,
/*371399*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*371401*/          OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*371404*/          OPC_EmitMergeInputChains, 1, 3, 
/*371407*/          OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*371410*/          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>>, (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>>, (imm:{ *:[iPTR] })):$src3))
/*371425*/        /*Scope*/ 96|128,122/*15712*/, /*->387139*/
/*371427*/          OPC_MoveChild1,
/*371428*/          OPC_SwitchOpcode /*57 cases */, 78|128,18/*2382*/, TARGET_VAL(ISD::BITCAST),// ->373815
/*371433*/            OPC_Scope, 51|128,17/*2227*/, /*->373663*/ // 2 children in Scope
/*371436*/              OPC_MoveChild0,
/*371437*/              OPC_SwitchOpcode /*5 cases */, 39, TARGET_VAL(X86ISD::SUBV_BROADCAST),// ->371480
/*371441*/                OPC_MoveChild0,
/*371442*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*371445*/                OPC_RecordMemRef,
/*371446*/                OPC_RecordNode, // #1 = 'ld' chained node
/*371447*/                OPC_CheckFoldableChainNode,
/*371448*/                OPC_RecordChild1, // #2 = $src
/*371449*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*371451*/                OPC_CheckPredicate, 9, // Predicate_load
/*371453*/                OPC_MoveParent,
/*371454*/                OPC_CheckType, MVT::v8f32,
/*371456*/                OPC_MoveParent,
/*371457*/                OPC_MoveParent,
/*371458*/                OPC_RecordChild2, // #3 = $src0
/*371459*/                OPC_CheckType, MVT::v4f64,
/*371461*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*371463*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*371466*/                OPC_EmitMergeInputChains1_1,
/*371467*/                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>>)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                          // Dst: (VBROADCASTF64X2Z128rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*371480*/              /*SwitchOpcode*/ 108|128,4/*620*/, TARGET_VAL(ISD::AND),// ->372104
/*371484*/                OPC_Scope, 50|128,2/*306*/, /*->371793*/ // 2 children in Scope
/*371487*/                  OPC_RecordChild0, // #1 = $src1
/*371488*/                  OPC_MoveChild1,
/*371489*/                  OPC_SwitchOpcode /*2 cases */, 99|128,1/*227*/, TARGET_VAL(ISD::LOAD),// ->371721
/*371494*/                    OPC_RecordMemRef,
/*371495*/                    OPC_RecordNode, // #2 = 'ld' chained node
/*371496*/                    OPC_CheckFoldableChainNode,
/*371497*/                    OPC_RecordChild1, // #3 = $src2
/*371498*/                    OPC_CheckPredicate, 4, // Predicate_unindexedload
/*371500*/                    OPC_CheckPredicate, 9, // Predicate_load
/*371502*/                    OPC_MoveParent,
/*371503*/                    OPC_SwitchType /*8 cases */, 25, MVT::v2i64,// ->371531
/*371506*/                      OPC_MoveParent,
/*371507*/                      OPC_MoveParent,
/*371508*/                      OPC_RecordChild2, // #4 = $src0
/*371509*/                      OPC_CheckType, MVT::v4f32,
/*371511*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*371513*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*371516*/                      OPC_EmitMergeInputChains1_2,
/*371517*/                      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)
/*371531*/                    /*SwitchType*/ 25, MVT::v4i32,// ->371558
/*371533*/                      OPC_MoveParent,
/*371534*/                      OPC_MoveParent,
/*371535*/                      OPC_RecordChild2, // #4 = $src0
/*371536*/                      OPC_CheckType, MVT::v4f32,
/*371538*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*371540*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*371543*/                      OPC_EmitMergeInputChains1_2,
/*371544*/                      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:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                                // Dst: (VPANDDZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*371558*/                    /*SwitchType*/ 25, MVT::v8i16,// ->371585
/*371560*/                      OPC_MoveParent,
/*371561*/                      OPC_MoveParent,
/*371562*/                      OPC_RecordChild2, // #4 = $src0
/*371563*/                      OPC_CheckType, MVT::v4f32,
/*371565*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*371567*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*371570*/                      OPC_EmitMergeInputChains1_2,
/*371571*/                      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:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                                // Dst: (VPANDDZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*371585*/                    /*SwitchType*/ 25, MVT::v16i8,// ->371612
/*371587*/                      OPC_MoveParent,
/*371588*/                      OPC_MoveParent,
/*371589*/                      OPC_RecordChild2, // #4 = $src0
/*371590*/                      OPC_CheckType, MVT::v4f32,
/*371592*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*371594*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*371597*/                      OPC_EmitMergeInputChains1_2,
/*371598*/                      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:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                                // Dst: (VPANDDZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*371612*/                    /*SwitchType*/ 25, MVT::v4i64,// ->371639
/*371614*/                      OPC_MoveParent,
/*371615*/                      OPC_MoveParent,
/*371616*/                      OPC_RecordChild2, // #4 = $src0
/*371617*/                      OPC_CheckType, MVT::v4f64,
/*371619*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*371621*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*371624*/                      OPC_EmitMergeInputChains1_2,
/*371625*/                      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)
/*371639*/                    /*SwitchType*/ 25, MVT::v8i32,// ->371666
/*371641*/                      OPC_MoveParent,
/*371642*/                      OPC_MoveParent,
/*371643*/                      OPC_RecordChild2, // #4 = $src0
/*371644*/                      OPC_CheckType, MVT::v4f64,
/*371646*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*371648*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*371651*/                      OPC_EmitMergeInputChains1_2,
/*371652*/                      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:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                                // Dst: (VPANDQZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*371666*/                    /*SwitchType*/ 25, MVT::v16i16,// ->371693
/*371668*/                      OPC_MoveParent,
/*371669*/                      OPC_MoveParent,
/*371670*/                      OPC_RecordChild2, // #4 = $src0
/*371671*/                      OPC_CheckType, MVT::v4f64,
/*371673*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*371675*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*371678*/                      OPC_EmitMergeInputChains1_2,
/*371679*/                      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:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                                // Dst: (VPANDQZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*371693*/                    /*SwitchType*/ 25, MVT::v32i8,// ->371720
/*371695*/                      OPC_MoveParent,
/*371696*/                      OPC_MoveParent,
/*371697*/                      OPC_RecordChild2, // #4 = $src0
/*371698*/                      OPC_CheckType, MVT::v4f64,
/*371700*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*371702*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*371705*/                      OPC_EmitMergeInputChains1_2,
/*371706*/                      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:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                                // Dst: (VPANDQZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*371720*/                    0, // EndSwitchType
/*371721*/                  /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->371792
/*371724*/                    OPC_RecordMemRef,
/*371725*/                    OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*371726*/                    OPC_CheckFoldableChainNode,
/*371727*/                    OPC_RecordChild1, // #3 = $src2
/*371728*/                    OPC_Scope, 30, /*->371760*/ // 2 children in Scope
/*371730*/                      OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*371732*/                      OPC_MoveParent,
/*371733*/                      OPC_CheckType, MVT::v4i32,
/*371735*/                      OPC_MoveParent,
/*371736*/                      OPC_MoveParent,
/*371737*/                      OPC_RecordChild2, // #4 = $src0
/*371738*/                      OPC_CheckType, MVT::v4f32,
/*371740*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*371742*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*371745*/                      OPC_EmitMergeInputChains1_2,
/*371746*/                      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:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                                // Dst: (VPANDDZ128rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*371760*/                    /*Scope*/ 30, /*->371791*/
/*371761*/                      OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*371763*/                      OPC_MoveParent,
/*371764*/                      OPC_CheckType, MVT::v4i64,
/*371766*/                      OPC_MoveParent,
/*371767*/                      OPC_MoveParent,
/*371768*/                      OPC_RecordChild2, // #4 = $src0
/*371769*/                      OPC_CheckType, MVT::v4f64,
/*371771*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*371773*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*371776*/                      OPC_EmitMergeInputChains1_2,
/*371777*/                      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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                                // Dst: (VPANDQZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*371791*/                    0, /*End of Scope*/
/*371792*/                  0, // EndSwitchOpcode
/*371793*/                /*Scope*/ 52|128,2/*308*/, /*->372103*/
/*371795*/                  OPC_MoveChild0,
/*371796*/                  OPC_SwitchOpcode /*2 cases */, 70, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->371870
/*371800*/                    OPC_RecordMemRef,
/*371801*/                    OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*371802*/                    OPC_CheckFoldableChainNode,
/*371803*/                    OPC_RecordChild1, // #2 = $src2
/*371804*/                    OPC_Scope, 31, /*->371837*/ // 2 children in Scope
/*371806*/                      OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*371808*/                      OPC_MoveParent,
/*371809*/                      OPC_RecordChild1, // #3 = $src1
/*371810*/                      OPC_CheckType, MVT::v4i32,
/*371812*/                      OPC_MoveParent,
/*371813*/                      OPC_MoveParent,
/*371814*/                      OPC_RecordChild2, // #4 = $src0
/*371815*/                      OPC_CheckType, MVT::v4f32,
/*371817*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*371819*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*371822*/                      OPC_EmitMergeInputChains1_1,
/*371823*/                      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:{ *:[v4i32] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4i32] }:$src1)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                                // Dst: (VPANDDZ128rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*371837*/                    /*Scope*/ 31, /*->371869*/
/*371838*/                      OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*371840*/                      OPC_MoveParent,
/*371841*/                      OPC_RecordChild1, // #3 = $src1
/*371842*/                      OPC_CheckType, MVT::v4i64,
/*371844*/                      OPC_MoveParent,
/*371845*/                      OPC_MoveParent,
/*371846*/                      OPC_RecordChild2, // #4 = $src0
/*371847*/                      OPC_CheckType, MVT::v4f64,
/*371849*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*371851*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*371854*/                      OPC_EmitMergeInputChains1_1,
/*371855*/                      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] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src1)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                                // Dst: (VPANDQZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*371869*/                    0, /*End of Scope*/
/*371870*/                  /*SwitchOpcode*/ 100|128,1/*228*/, TARGET_VAL(ISD::LOAD),// ->372102
/*371874*/                    OPC_RecordMemRef,
/*371875*/                    OPC_RecordNode, // #1 = 'ld' chained node
/*371876*/                    OPC_CheckFoldableChainNode,
/*371877*/                    OPC_RecordChild1, // #2 = $src2
/*371878*/                    OPC_CheckPredicate, 4, // Predicate_unindexedload
/*371880*/                    OPC_CheckPredicate, 9, // Predicate_load
/*371882*/                    OPC_MoveParent,
/*371883*/                    OPC_RecordChild1, // #3 = $src1
/*371884*/                    OPC_SwitchType /*8 cases */, 25, MVT::v2i64,// ->371912
/*371887*/                      OPC_MoveParent,
/*371888*/                      OPC_MoveParent,
/*371889*/                      OPC_RecordChild2, // #4 = $src0
/*371890*/                      OPC_CheckType, MVT::v4f32,
/*371892*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*371894*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*371897*/                      OPC_EmitMergeInputChains1_1,
/*371898*/                      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)
/*371912*/                    /*SwitchType*/ 25, MVT::v4i32,// ->371939
/*371914*/                      OPC_MoveParent,
/*371915*/                      OPC_MoveParent,
/*371916*/                      OPC_RecordChild2, // #4 = $src0
/*371917*/                      OPC_CheckType, MVT::v4f32,
/*371919*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*371921*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*371924*/                      OPC_EmitMergeInputChains1_1,
/*371925*/                      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:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4i32] }:$src1)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                                // Dst: (VPANDDZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*371939*/                    /*SwitchType*/ 25, MVT::v8i16,// ->371966
/*371941*/                      OPC_MoveParent,
/*371942*/                      OPC_MoveParent,
/*371943*/                      OPC_RecordChild2, // #4 = $src0
/*371944*/                      OPC_CheckType, MVT::v4f32,
/*371946*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*371948*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*371951*/                      OPC_EmitMergeInputChains1_1,
/*371952*/                      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:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                                // Dst: (VPANDDZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*371966*/                    /*SwitchType*/ 25, MVT::v16i8,// ->371993
/*371968*/                      OPC_MoveParent,
/*371969*/                      OPC_MoveParent,
/*371970*/                      OPC_RecordChild2, // #4 = $src0
/*371971*/                      OPC_CheckType, MVT::v4f32,
/*371973*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*371975*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*371978*/                      OPC_EmitMergeInputChains1_1,
/*371979*/                      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:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v16i8] }:$src1)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                                // Dst: (VPANDDZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*371993*/                    /*SwitchType*/ 25, MVT::v4i64,// ->372020
/*371995*/                      OPC_MoveParent,
/*371996*/                      OPC_MoveParent,
/*371997*/                      OPC_RecordChild2, // #4 = $src0
/*371998*/                      OPC_CheckType, MVT::v4f64,
/*372000*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*372002*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*372005*/                      OPC_EmitMergeInputChains1_1,
/*372006*/                      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)
/*372020*/                    /*SwitchType*/ 25, MVT::v8i32,// ->372047
/*372022*/                      OPC_MoveParent,
/*372023*/                      OPC_MoveParent,
/*372024*/                      OPC_RecordChild2, // #4 = $src0
/*372025*/                      OPC_CheckType, MVT::v4f64,
/*372027*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*372029*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*372032*/                      OPC_EmitMergeInputChains1_1,
/*372033*/                      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:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8i32] }:$src1)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                                // Dst: (VPANDQZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*372047*/                    /*SwitchType*/ 25, MVT::v16i16,// ->372074
/*372049*/                      OPC_MoveParent,
/*372050*/                      OPC_MoveParent,
/*372051*/                      OPC_RecordChild2, // #4 = $src0
/*372052*/                      OPC_CheckType, MVT::v4f64,
/*372054*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*372056*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*372059*/                      OPC_EmitMergeInputChains1_1,
/*372060*/                      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:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                                // Dst: (VPANDQZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*372074*/                    /*SwitchType*/ 25, MVT::v32i8,// ->372101
/*372076*/                      OPC_MoveParent,
/*372077*/                      OPC_MoveParent,
/*372078*/                      OPC_RecordChild2, // #4 = $src0
/*372079*/                      OPC_CheckType, MVT::v4f64,
/*372081*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*372083*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*372086*/                      OPC_EmitMergeInputChains1_1,
/*372087*/                      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:{ *:[v32i8] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v32i8] }:$src1)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                                // Dst: (VPANDQZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*372101*/                    0, // EndSwitchType
/*372102*/                  0, // EndSwitchOpcode
/*372103*/                0, /*End of Scope*/
/*372104*/              /*SwitchOpcode*/ 108|128,4/*620*/, TARGET_VAL(ISD::OR),// ->372728
/*372108*/                OPC_Scope, 50|128,2/*306*/, /*->372417*/ // 2 children in Scope
/*372111*/                  OPC_RecordChild0, // #1 = $src1
/*372112*/                  OPC_MoveChild1,
/*372113*/                  OPC_SwitchOpcode /*2 cases */, 99|128,1/*227*/, TARGET_VAL(ISD::LOAD),// ->372345
/*372118*/                    OPC_RecordMemRef,
/*372119*/                    OPC_RecordNode, // #2 = 'ld' chained node
/*372120*/                    OPC_CheckFoldableChainNode,
/*372121*/                    OPC_RecordChild1, // #3 = $src2
/*372122*/                    OPC_CheckPredicate, 4, // Predicate_unindexedload
/*372124*/                    OPC_CheckPredicate, 9, // Predicate_load
/*372126*/                    OPC_MoveParent,
/*372127*/                    OPC_SwitchType /*8 cases */, 25, MVT::v2i64,// ->372155
/*372130*/                      OPC_MoveParent,
/*372131*/                      OPC_MoveParent,
/*372132*/                      OPC_RecordChild2, // #4 = $src0
/*372133*/                      OPC_CheckType, MVT::v4f32,
/*372135*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*372137*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*372140*/                      OPC_EmitMergeInputChains1_2,
/*372141*/                      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)
/*372155*/                    /*SwitchType*/ 25, MVT::v4i32,// ->372182
/*372157*/                      OPC_MoveParent,
/*372158*/                      OPC_MoveParent,
/*372159*/                      OPC_RecordChild2, // #4 = $src0
/*372160*/                      OPC_CheckType, MVT::v4f32,
/*372162*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*372164*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*372167*/                      OPC_EmitMergeInputChains1_2,
/*372168*/                      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:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                                // Dst: (VPORDZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*372182*/                    /*SwitchType*/ 25, MVT::v8i16,// ->372209
/*372184*/                      OPC_MoveParent,
/*372185*/                      OPC_MoveParent,
/*372186*/                      OPC_RecordChild2, // #4 = $src0
/*372187*/                      OPC_CheckType, MVT::v4f32,
/*372189*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*372191*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*372194*/                      OPC_EmitMergeInputChains1_2,
/*372195*/                      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:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                                // Dst: (VPORDZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*372209*/                    /*SwitchType*/ 25, MVT::v16i8,// ->372236
/*372211*/                      OPC_MoveParent,
/*372212*/                      OPC_MoveParent,
/*372213*/                      OPC_RecordChild2, // #4 = $src0
/*372214*/                      OPC_CheckType, MVT::v4f32,
/*372216*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*372218*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*372221*/                      OPC_EmitMergeInputChains1_2,
/*372222*/                      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:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                                // Dst: (VPORDZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*372236*/                    /*SwitchType*/ 25, MVT::v4i64,// ->372263
/*372238*/                      OPC_MoveParent,
/*372239*/                      OPC_MoveParent,
/*372240*/                      OPC_RecordChild2, // #4 = $src0
/*372241*/                      OPC_CheckType, MVT::v4f64,
/*372243*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*372245*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*372248*/                      OPC_EmitMergeInputChains1_2,
/*372249*/                      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)
/*372263*/                    /*SwitchType*/ 25, MVT::v8i32,// ->372290
/*372265*/                      OPC_MoveParent,
/*372266*/                      OPC_MoveParent,
/*372267*/                      OPC_RecordChild2, // #4 = $src0
/*372268*/                      OPC_CheckType, MVT::v4f64,
/*372270*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*372272*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*372275*/                      OPC_EmitMergeInputChains1_2,
/*372276*/                      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:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                                // Dst: (VPORQZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*372290*/                    /*SwitchType*/ 25, MVT::v16i16,// ->372317
/*372292*/                      OPC_MoveParent,
/*372293*/                      OPC_MoveParent,
/*372294*/                      OPC_RecordChild2, // #4 = $src0
/*372295*/                      OPC_CheckType, MVT::v4f64,
/*372297*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*372299*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*372302*/                      OPC_EmitMergeInputChains1_2,
/*372303*/                      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:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                                // Dst: (VPORQZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*372317*/                    /*SwitchType*/ 25, MVT::v32i8,// ->372344
/*372319*/                      OPC_MoveParent,
/*372320*/                      OPC_MoveParent,
/*372321*/                      OPC_RecordChild2, // #4 = $src0
/*372322*/                      OPC_CheckType, MVT::v4f64,
/*372324*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*372326*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*372329*/                      OPC_EmitMergeInputChains1_2,
/*372330*/                      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:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                                // Dst: (VPORQZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*372344*/                    0, // EndSwitchType
/*372345*/                  /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->372416
/*372348*/                    OPC_RecordMemRef,
/*372349*/                    OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*372350*/                    OPC_CheckFoldableChainNode,
/*372351*/                    OPC_RecordChild1, // #3 = $src2
/*372352*/                    OPC_Scope, 30, /*->372384*/ // 2 children in Scope
/*372354*/                      OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*372356*/                      OPC_MoveParent,
/*372357*/                      OPC_CheckType, MVT::v4i32,
/*372359*/                      OPC_MoveParent,
/*372360*/                      OPC_MoveParent,
/*372361*/                      OPC_RecordChild2, // #4 = $src0
/*372362*/                      OPC_CheckType, MVT::v4f32,
/*372364*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*372366*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*372369*/                      OPC_EmitMergeInputChains1_2,
/*372370*/                      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:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                                // Dst: (VPORDZ128rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*372384*/                    /*Scope*/ 30, /*->372415*/
/*372385*/                      OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*372387*/                      OPC_MoveParent,
/*372388*/                      OPC_CheckType, MVT::v4i64,
/*372390*/                      OPC_MoveParent,
/*372391*/                      OPC_MoveParent,
/*372392*/                      OPC_RecordChild2, // #4 = $src0
/*372393*/                      OPC_CheckType, MVT::v4f64,
/*372395*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*372397*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*372400*/                      OPC_EmitMergeInputChains1_2,
/*372401*/                      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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                                // Dst: (VPORQZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*372415*/                    0, /*End of Scope*/
/*372416*/                  0, // EndSwitchOpcode
/*372417*/                /*Scope*/ 52|128,2/*308*/, /*->372727*/
/*372419*/                  OPC_MoveChild0,
/*372420*/                  OPC_SwitchOpcode /*2 cases */, 100|128,1/*228*/, TARGET_VAL(ISD::LOAD),// ->372653
/*372425*/                    OPC_RecordMemRef,
/*372426*/                    OPC_RecordNode, // #1 = 'ld' chained node
/*372427*/                    OPC_CheckFoldableChainNode,
/*372428*/                    OPC_RecordChild1, // #2 = $src2
/*372429*/                    OPC_CheckPredicate, 4, // Predicate_unindexedload
/*372431*/                    OPC_CheckPredicate, 9, // Predicate_load
/*372433*/                    OPC_MoveParent,
/*372434*/                    OPC_RecordChild1, // #3 = $src1
/*372435*/                    OPC_SwitchType /*8 cases */, 25, MVT::v2i64,// ->372463
/*372438*/                      OPC_MoveParent,
/*372439*/                      OPC_MoveParent,
/*372440*/                      OPC_RecordChild2, // #4 = $src0
/*372441*/                      OPC_CheckType, MVT::v4f32,
/*372443*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*372445*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*372448*/                      OPC_EmitMergeInputChains1_1,
/*372449*/                      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)
/*372463*/                    /*SwitchType*/ 25, MVT::v4i32,// ->372490
/*372465*/                      OPC_MoveParent,
/*372466*/                      OPC_MoveParent,
/*372467*/                      OPC_RecordChild2, // #4 = $src0
/*372468*/                      OPC_CheckType, MVT::v4f32,
/*372470*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*372472*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*372475*/                      OPC_EmitMergeInputChains1_1,
/*372476*/                      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:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4i32] }:$src1)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                                // Dst: (VPORDZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*372490*/                    /*SwitchType*/ 25, MVT::v8i16,// ->372517
/*372492*/                      OPC_MoveParent,
/*372493*/                      OPC_MoveParent,
/*372494*/                      OPC_RecordChild2, // #4 = $src0
/*372495*/                      OPC_CheckType, MVT::v4f32,
/*372497*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*372499*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*372502*/                      OPC_EmitMergeInputChains1_1,
/*372503*/                      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:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                                // Dst: (VPORDZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*372517*/                    /*SwitchType*/ 25, MVT::v16i8,// ->372544
/*372519*/                      OPC_MoveParent,
/*372520*/                      OPC_MoveParent,
/*372521*/                      OPC_RecordChild2, // #4 = $src0
/*372522*/                      OPC_CheckType, MVT::v4f32,
/*372524*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*372526*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*372529*/                      OPC_EmitMergeInputChains1_1,
/*372530*/                      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:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v16i8] }:$src1)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                                // Dst: (VPORDZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*372544*/                    /*SwitchType*/ 25, MVT::v4i64,// ->372571
/*372546*/                      OPC_MoveParent,
/*372547*/                      OPC_MoveParent,
/*372548*/                      OPC_RecordChild2, // #4 = $src0
/*372549*/                      OPC_CheckType, MVT::v4f64,
/*372551*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*372553*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*372556*/                      OPC_EmitMergeInputChains1_1,
/*372557*/                      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)
/*372571*/                    /*SwitchType*/ 25, MVT::v8i32,// ->372598
/*372573*/                      OPC_MoveParent,
/*372574*/                      OPC_MoveParent,
/*372575*/                      OPC_RecordChild2, // #4 = $src0
/*372576*/                      OPC_CheckType, MVT::v4f64,
/*372578*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*372580*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*372583*/                      OPC_EmitMergeInputChains1_1,
/*372584*/                      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:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8i32] }:$src1)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                                // Dst: (VPORQZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*372598*/                    /*SwitchType*/ 25, MVT::v16i16,// ->372625
/*372600*/                      OPC_MoveParent,
/*372601*/                      OPC_MoveParent,
/*372602*/                      OPC_RecordChild2, // #4 = $src0
/*372603*/                      OPC_CheckType, MVT::v4f64,
/*372605*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*372607*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*372610*/                      OPC_EmitMergeInputChains1_1,
/*372611*/                      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:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                                // Dst: (VPORQZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*372625*/                    /*SwitchType*/ 25, MVT::v32i8,// ->372652
/*372627*/                      OPC_MoveParent,
/*372628*/                      OPC_MoveParent,
/*372629*/                      OPC_RecordChild2, // #4 = $src0
/*372630*/                      OPC_CheckType, MVT::v4f64,
/*372632*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*372634*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*372637*/                      OPC_EmitMergeInputChains1_1,
/*372638*/                      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:{ *:[v32i8] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v32i8] }:$src1)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                                // Dst: (VPORQZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*372652*/                    0, // EndSwitchType
/*372653*/                  /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->372726
/*372656*/                    OPC_RecordMemRef,
/*372657*/                    OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*372658*/                    OPC_CheckFoldableChainNode,
/*372659*/                    OPC_RecordChild1, // #2 = $src2
/*372660*/                    OPC_Scope, 31, /*->372693*/ // 2 children in Scope
/*372662*/                      OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*372664*/                      OPC_MoveParent,
/*372665*/                      OPC_RecordChild1, // #3 = $src1
/*372666*/                      OPC_CheckType, MVT::v4i32,
/*372668*/                      OPC_MoveParent,
/*372669*/                      OPC_MoveParent,
/*372670*/                      OPC_RecordChild2, // #4 = $src0
/*372671*/                      OPC_CheckType, MVT::v4f32,
/*372673*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*372675*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*372678*/                      OPC_EmitMergeInputChains1_1,
/*372679*/                      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:{ *:[v4i32] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4i32] }:$src1)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                                // Dst: (VPORDZ128rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*372693*/                    /*Scope*/ 31, /*->372725*/
/*372694*/                      OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*372696*/                      OPC_MoveParent,
/*372697*/                      OPC_RecordChild1, // #3 = $src1
/*372698*/                      OPC_CheckType, MVT::v4i64,
/*372700*/                      OPC_MoveParent,
/*372701*/                      OPC_MoveParent,
/*372702*/                      OPC_RecordChild2, // #4 = $src0
/*372703*/                      OPC_CheckType, MVT::v4f64,
/*372705*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*372707*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*372710*/                      OPC_EmitMergeInputChains1_1,
/*372711*/                      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] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src1)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                                // Dst: (VPORQZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*372725*/                    0, /*End of Scope*/
/*372726*/                  0, // EndSwitchOpcode
/*372727*/                0, /*End of Scope*/
/*372728*/              /*SwitchOpcode*/ 108|128,4/*620*/, TARGET_VAL(ISD::XOR),// ->373352
/*372732*/                OPC_Scope, 50|128,2/*306*/, /*->373041*/ // 2 children in Scope
/*372735*/                  OPC_RecordChild0, // #1 = $src1
/*372736*/                  OPC_MoveChild1,
/*372737*/                  OPC_SwitchOpcode /*2 cases */, 99|128,1/*227*/, TARGET_VAL(ISD::LOAD),// ->372969
/*372742*/                    OPC_RecordMemRef,
/*372743*/                    OPC_RecordNode, // #2 = 'ld' chained node
/*372744*/                    OPC_CheckFoldableChainNode,
/*372745*/                    OPC_RecordChild1, // #3 = $src2
/*372746*/                    OPC_CheckPredicate, 4, // Predicate_unindexedload
/*372748*/                    OPC_CheckPredicate, 9, // Predicate_load
/*372750*/                    OPC_MoveParent,
/*372751*/                    OPC_SwitchType /*8 cases */, 25, MVT::v2i64,// ->372779
/*372754*/                      OPC_MoveParent,
/*372755*/                      OPC_MoveParent,
/*372756*/                      OPC_RecordChild2, // #4 = $src0
/*372757*/                      OPC_CheckType, MVT::v4f32,
/*372759*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*372761*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*372764*/                      OPC_EmitMergeInputChains1_2,
/*372765*/                      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)
/*372779*/                    /*SwitchType*/ 25, MVT::v4i32,// ->372806
/*372781*/                      OPC_MoveParent,
/*372782*/                      OPC_MoveParent,
/*372783*/                      OPC_RecordChild2, // #4 = $src0
/*372784*/                      OPC_CheckType, MVT::v4f32,
/*372786*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*372788*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*372791*/                      OPC_EmitMergeInputChains1_2,
/*372792*/                      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:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                                // Dst: (VPXORDZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*372806*/                    /*SwitchType*/ 25, MVT::v8i16,// ->372833
/*372808*/                      OPC_MoveParent,
/*372809*/                      OPC_MoveParent,
/*372810*/                      OPC_RecordChild2, // #4 = $src0
/*372811*/                      OPC_CheckType, MVT::v4f32,
/*372813*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*372815*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*372818*/                      OPC_EmitMergeInputChains1_2,
/*372819*/                      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:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                                // Dst: (VPXORDZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*372833*/                    /*SwitchType*/ 25, MVT::v16i8,// ->372860
/*372835*/                      OPC_MoveParent,
/*372836*/                      OPC_MoveParent,
/*372837*/                      OPC_RecordChild2, // #4 = $src0
/*372838*/                      OPC_CheckType, MVT::v4f32,
/*372840*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*372842*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*372845*/                      OPC_EmitMergeInputChains1_2,
/*372846*/                      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:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                                // Dst: (VPXORDZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*372860*/                    /*SwitchType*/ 25, MVT::v4i64,// ->372887
/*372862*/                      OPC_MoveParent,
/*372863*/                      OPC_MoveParent,
/*372864*/                      OPC_RecordChild2, // #4 = $src0
/*372865*/                      OPC_CheckType, MVT::v4f64,
/*372867*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*372869*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*372872*/                      OPC_EmitMergeInputChains1_2,
/*372873*/                      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)
/*372887*/                    /*SwitchType*/ 25, MVT::v8i32,// ->372914
/*372889*/                      OPC_MoveParent,
/*372890*/                      OPC_MoveParent,
/*372891*/                      OPC_RecordChild2, // #4 = $src0
/*372892*/                      OPC_CheckType, MVT::v4f64,
/*372894*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*372896*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*372899*/                      OPC_EmitMergeInputChains1_2,
/*372900*/                      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:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                                // Dst: (VPXORQZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*372914*/                    /*SwitchType*/ 25, MVT::v16i16,// ->372941
/*372916*/                      OPC_MoveParent,
/*372917*/                      OPC_MoveParent,
/*372918*/                      OPC_RecordChild2, // #4 = $src0
/*372919*/                      OPC_CheckType, MVT::v4f64,
/*372921*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*372923*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*372926*/                      OPC_EmitMergeInputChains1_2,
/*372927*/                      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:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                                // Dst: (VPXORQZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*372941*/                    /*SwitchType*/ 25, MVT::v32i8,// ->372968
/*372943*/                      OPC_MoveParent,
/*372944*/                      OPC_MoveParent,
/*372945*/                      OPC_RecordChild2, // #4 = $src0
/*372946*/                      OPC_CheckType, MVT::v4f64,
/*372948*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*372950*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*372953*/                      OPC_EmitMergeInputChains1_2,
/*372954*/                      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:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                                // Dst: (VPXORQZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*372968*/                    0, // EndSwitchType
/*372969*/                  /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->373040
/*372972*/                    OPC_RecordMemRef,
/*372973*/                    OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*372974*/                    OPC_CheckFoldableChainNode,
/*372975*/                    OPC_RecordChild1, // #3 = $src2
/*372976*/                    OPC_Scope, 30, /*->373008*/ // 2 children in Scope
/*372978*/                      OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*372980*/                      OPC_MoveParent,
/*372981*/                      OPC_CheckType, MVT::v4i32,
/*372983*/                      OPC_MoveParent,
/*372984*/                      OPC_MoveParent,
/*372985*/                      OPC_RecordChild2, // #4 = $src0
/*372986*/                      OPC_CheckType, MVT::v4f32,
/*372988*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*372990*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*372993*/                      OPC_EmitMergeInputChains1_2,
/*372994*/                      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:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                                // Dst: (VPXORDZ128rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*373008*/                    /*Scope*/ 30, /*->373039*/
/*373009*/                      OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*373011*/                      OPC_MoveParent,
/*373012*/                      OPC_CheckType, MVT::v4i64,
/*373014*/                      OPC_MoveParent,
/*373015*/                      OPC_MoveParent,
/*373016*/                      OPC_RecordChild2, // #4 = $src0
/*373017*/                      OPC_CheckType, MVT::v4f64,
/*373019*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*373021*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*373024*/                      OPC_EmitMergeInputChains1_2,
/*373025*/                      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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                                // Dst: (VPXORQZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*373039*/                    0, /*End of Scope*/
/*373040*/                  0, // EndSwitchOpcode
/*373041*/                /*Scope*/ 52|128,2/*308*/, /*->373351*/
/*373043*/                  OPC_MoveChild0,
/*373044*/                  OPC_SwitchOpcode /*2 cases */, 100|128,1/*228*/, TARGET_VAL(ISD::LOAD),// ->373277
/*373049*/                    OPC_RecordMemRef,
/*373050*/                    OPC_RecordNode, // #1 = 'ld' chained node
/*373051*/                    OPC_CheckFoldableChainNode,
/*373052*/                    OPC_RecordChild1, // #2 = $src2
/*373053*/                    OPC_CheckPredicate, 4, // Predicate_unindexedload
/*373055*/                    OPC_CheckPredicate, 9, // Predicate_load
/*373057*/                    OPC_MoveParent,
/*373058*/                    OPC_RecordChild1, // #3 = $src1
/*373059*/                    OPC_SwitchType /*8 cases */, 25, MVT::v2i64,// ->373087
/*373062*/                      OPC_MoveParent,
/*373063*/                      OPC_MoveParent,
/*373064*/                      OPC_RecordChild2, // #4 = $src0
/*373065*/                      OPC_CheckType, MVT::v4f32,
/*373067*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*373069*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*373072*/                      OPC_EmitMergeInputChains1_1,
/*373073*/                      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)
/*373087*/                    /*SwitchType*/ 25, MVT::v4i32,// ->373114
/*373089*/                      OPC_MoveParent,
/*373090*/                      OPC_MoveParent,
/*373091*/                      OPC_RecordChild2, // #4 = $src0
/*373092*/                      OPC_CheckType, MVT::v4f32,
/*373094*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*373096*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*373099*/                      OPC_EmitMergeInputChains1_1,
/*373100*/                      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:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4i32] }:$src1)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                                // Dst: (VPXORDZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*373114*/                    /*SwitchType*/ 25, MVT::v8i16,// ->373141
/*373116*/                      OPC_MoveParent,
/*373117*/                      OPC_MoveParent,
/*373118*/                      OPC_RecordChild2, // #4 = $src0
/*373119*/                      OPC_CheckType, MVT::v4f32,
/*373121*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*373123*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*373126*/                      OPC_EmitMergeInputChains1_1,
/*373127*/                      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:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                                // Dst: (VPXORDZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*373141*/                    /*SwitchType*/ 25, MVT::v16i8,// ->373168
/*373143*/                      OPC_MoveParent,
/*373144*/                      OPC_MoveParent,
/*373145*/                      OPC_RecordChild2, // #4 = $src0
/*373146*/                      OPC_CheckType, MVT::v4f32,
/*373148*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*373150*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*373153*/                      OPC_EmitMergeInputChains1_1,
/*373154*/                      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:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v16i8] }:$src1)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                                // Dst: (VPXORDZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*373168*/                    /*SwitchType*/ 25, MVT::v4i64,// ->373195
/*373170*/                      OPC_MoveParent,
/*373171*/                      OPC_MoveParent,
/*373172*/                      OPC_RecordChild2, // #4 = $src0
/*373173*/                      OPC_CheckType, MVT::v4f64,
/*373175*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*373177*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*373180*/                      OPC_EmitMergeInputChains1_1,
/*373181*/                      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)
/*373195*/                    /*SwitchType*/ 25, MVT::v8i32,// ->373222
/*373197*/                      OPC_MoveParent,
/*373198*/                      OPC_MoveParent,
/*373199*/                      OPC_RecordChild2, // #4 = $src0
/*373200*/                      OPC_CheckType, MVT::v4f64,
/*373202*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*373204*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*373207*/                      OPC_EmitMergeInputChains1_1,
/*373208*/                      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:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8i32] }:$src1)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                                // Dst: (VPXORQZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*373222*/                    /*SwitchType*/ 25, MVT::v16i16,// ->373249
/*373224*/                      OPC_MoveParent,
/*373225*/                      OPC_MoveParent,
/*373226*/                      OPC_RecordChild2, // #4 = $src0
/*373227*/                      OPC_CheckType, MVT::v4f64,
/*373229*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*373231*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*373234*/                      OPC_EmitMergeInputChains1_1,
/*373235*/                      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:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                                // Dst: (VPXORQZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*373249*/                    /*SwitchType*/ 25, MVT::v32i8,// ->373276
/*373251*/                      OPC_MoveParent,
/*373252*/                      OPC_MoveParent,
/*373253*/                      OPC_RecordChild2, // #4 = $src0
/*373254*/                      OPC_CheckType, MVT::v4f64,
/*373256*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*373258*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*373261*/                      OPC_EmitMergeInputChains1_1,
/*373262*/                      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:{ *:[v32i8] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v32i8] }:$src1)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                                // Dst: (VPXORQZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*373276*/                    0, // EndSwitchType
/*373277*/                  /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->373350
/*373280*/                    OPC_RecordMemRef,
/*373281*/                    OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*373282*/                    OPC_CheckFoldableChainNode,
/*373283*/                    OPC_RecordChild1, // #2 = $src2
/*373284*/                    OPC_Scope, 31, /*->373317*/ // 2 children in Scope
/*373286*/                      OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*373288*/                      OPC_MoveParent,
/*373289*/                      OPC_RecordChild1, // #3 = $src1
/*373290*/                      OPC_CheckType, MVT::v4i32,
/*373292*/                      OPC_MoveParent,
/*373293*/                      OPC_MoveParent,
/*373294*/                      OPC_RecordChild2, // #4 = $src0
/*373295*/                      OPC_CheckType, MVT::v4f32,
/*373297*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*373299*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*373302*/                      OPC_EmitMergeInputChains1_1,
/*373303*/                      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:{ *:[v4i32] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4i32] }:$src1)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                                // Dst: (VPXORDZ128rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*373317*/                    /*Scope*/ 31, /*->373349*/
/*373318*/                      OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*373320*/                      OPC_MoveParent,
/*373321*/                      OPC_RecordChild1, // #3 = $src1
/*373322*/                      OPC_CheckType, MVT::v4i64,
/*373324*/                      OPC_MoveParent,
/*373325*/                      OPC_MoveParent,
/*373326*/                      OPC_RecordChild2, // #4 = $src0
/*373327*/                      OPC_CheckType, MVT::v4f64,
/*373329*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*373331*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*373334*/                      OPC_EmitMergeInputChains1_1,
/*373335*/                      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] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src1)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                                // Dst: (VPXORQZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*373349*/                    0, /*End of Scope*/
/*373350*/                  0, // EndSwitchOpcode
/*373351*/                0, /*End of Scope*/
/*373352*/              /*SwitchOpcode*/ 50|128,2/*306*/, TARGET_VAL(X86ISD::ANDNP),// ->373662
/*373356*/                OPC_RecordChild0, // #1 = $src1
/*373357*/                OPC_MoveChild1,
/*373358*/                OPC_SwitchOpcode /*2 cases */, 99|128,1/*227*/, TARGET_VAL(ISD::LOAD),// ->373590
/*373363*/                  OPC_RecordMemRef,
/*373364*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*373365*/                  OPC_CheckFoldableChainNode,
/*373366*/                  OPC_RecordChild1, // #3 = $src2
/*373367*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*373369*/                  OPC_CheckPredicate, 9, // Predicate_load
/*373371*/                  OPC_MoveParent,
/*373372*/                  OPC_SwitchType /*8 cases */, 25, MVT::v2i64,// ->373400
/*373375*/                    OPC_MoveParent,
/*373376*/                    OPC_MoveParent,
/*373377*/                    OPC_RecordChild2, // #4 = $src0
/*373378*/                    OPC_CheckType, MVT::v4f32,
/*373380*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*373382*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*373385*/                    OPC_EmitMergeInputChains1_2,
/*373386*/                    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)
/*373400*/                  /*SwitchType*/ 25, MVT::v4i32,// ->373427
/*373402*/                    OPC_MoveParent,
/*373403*/                    OPC_MoveParent,
/*373404*/                    OPC_RecordChild2, // #4 = $src0
/*373405*/                    OPC_CheckType, MVT::v4f32,
/*373407*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*373409*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*373412*/                    OPC_EmitMergeInputChains1_2,
/*373413*/                    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:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                              // Dst: (VPANDNDZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*373427*/                  /*SwitchType*/ 25, MVT::v8i16,// ->373454
/*373429*/                    OPC_MoveParent,
/*373430*/                    OPC_MoveParent,
/*373431*/                    OPC_RecordChild2, // #4 = $src0
/*373432*/                    OPC_CheckType, MVT::v4f32,
/*373434*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*373436*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*373439*/                    OPC_EmitMergeInputChains1_2,
/*373440*/                    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:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                              // Dst: (VPANDNDZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*373454*/                  /*SwitchType*/ 25, MVT::v16i8,// ->373481
/*373456*/                    OPC_MoveParent,
/*373457*/                    OPC_MoveParent,
/*373458*/                    OPC_RecordChild2, // #4 = $src0
/*373459*/                    OPC_CheckType, MVT::v4f32,
/*373461*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*373463*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*373466*/                    OPC_EmitMergeInputChains1_2,
/*373467*/                    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:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                              // Dst: (VPANDNDZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*373481*/                  /*SwitchType*/ 25, MVT::v4i64,// ->373508
/*373483*/                    OPC_MoveParent,
/*373484*/                    OPC_MoveParent,
/*373485*/                    OPC_RecordChild2, // #4 = $src0
/*373486*/                    OPC_CheckType, MVT::v4f64,
/*373488*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*373490*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*373493*/                    OPC_EmitMergeInputChains1_2,
/*373494*/                    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)
/*373508*/                  /*SwitchType*/ 25, MVT::v8i32,// ->373535
/*373510*/                    OPC_MoveParent,
/*373511*/                    OPC_MoveParent,
/*373512*/                    OPC_RecordChild2, // #4 = $src0
/*373513*/                    OPC_CheckType, MVT::v4f64,
/*373515*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*373517*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*373520*/                    OPC_EmitMergeInputChains1_2,
/*373521*/                    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:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                              // Dst: (VPANDNQZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*373535*/                  /*SwitchType*/ 25, MVT::v16i16,// ->373562
/*373537*/                    OPC_MoveParent,
/*373538*/                    OPC_MoveParent,
/*373539*/                    OPC_RecordChild2, // #4 = $src0
/*373540*/                    OPC_CheckType, MVT::v4f64,
/*373542*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*373544*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*373547*/                    OPC_EmitMergeInputChains1_2,
/*373548*/                    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:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                              // Dst: (VPANDNQZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*373562*/                  /*SwitchType*/ 25, MVT::v32i8,// ->373589
/*373564*/                    OPC_MoveParent,
/*373565*/                    OPC_MoveParent,
/*373566*/                    OPC_RecordChild2, // #4 = $src0
/*373567*/                    OPC_CheckType, MVT::v4f64,
/*373569*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*373571*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*373574*/                    OPC_EmitMergeInputChains1_2,
/*373575*/                    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:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                              // Dst: (VPANDNQZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*373589*/                  0, // EndSwitchType
/*373590*/                /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->373661
/*373593*/                  OPC_RecordMemRef,
/*373594*/                  OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*373595*/                  OPC_CheckFoldableChainNode,
/*373596*/                  OPC_RecordChild1, // #3 = $src2
/*373597*/                  OPC_Scope, 30, /*->373629*/ // 2 children in Scope
/*373599*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*373601*/                    OPC_MoveParent,
/*373602*/                    OPC_CheckType, MVT::v4i32,
/*373604*/                    OPC_MoveParent,
/*373605*/                    OPC_MoveParent,
/*373606*/                    OPC_RecordChild2, // #4 = $src0
/*373607*/                    OPC_CheckType, MVT::v4f32,
/*373609*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*373611*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*373614*/                    OPC_EmitMergeInputChains1_2,
/*373615*/                    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:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                              // Dst: (VPANDNDZ128rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*373629*/                  /*Scope*/ 30, /*->373660*/
/*373630*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*373632*/                    OPC_MoveParent,
/*373633*/                    OPC_CheckType, MVT::v4i64,
/*373635*/                    OPC_MoveParent,
/*373636*/                    OPC_MoveParent,
/*373637*/                    OPC_RecordChild2, // #4 = $src0
/*373638*/                    OPC_CheckType, MVT::v4f64,
/*373640*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*373642*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*373645*/                    OPC_EmitMergeInputChains1_2,
/*373646*/                    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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                              // Dst: (VPANDNQZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*373660*/                  0, /*End of Scope*/
/*373661*/                0, // EndSwitchOpcode
/*373662*/              0, // EndSwitchOpcode
/*373663*/            /*Scope*/ 21|128,1/*149*/, /*->373814*/
/*373665*/              OPC_RecordChild0, // #1 = $ext
/*373666*/              OPC_MoveChild0,
/*373667*/              OPC_SwitchOpcode /*2 cases */, 106, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),// ->373777
/*373671*/                OPC_RecordChild0, // #2 = $src
/*373672*/                OPC_Scope, 34, /*->373708*/ // 3 children in Scope
/*373674*/                  OPC_CheckChild0Type, MVT::v4f64,
/*373676*/                  OPC_MoveChild1,
/*373677*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*373680*/                  OPC_CheckType, MVT::iPTR,
/*373682*/                  OPC_MoveParent,
/*373683*/                  OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/*373685*/                  OPC_CheckType, MVT::v2f64,
/*373687*/                  OPC_MoveParent,
/*373688*/                  OPC_MoveParent,
/*373689*/                  OPC_MoveChild2,
/*373690*/                  OPC_CheckImmAllZerosV,
/*373691*/                  OPC_MoveParent,
/*373692*/                  OPC_CheckType, MVT::v4f32,
/*373694*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*373696*/                  OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*373699*/                  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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext), immAllZerosV:{ *:[v4f32] }) - Complexity = 17
                            // Dst: (VEXTRACTF32x4Z256rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v2f64] }:$ext))
/*373708*/                /*Scope*/ 34, /*->373743*/
/*373709*/                  OPC_CheckChild0Type, MVT::v8f64,
/*373711*/                  OPC_MoveChild1,
/*373712*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*373715*/                  OPC_CheckType, MVT::iPTR,
/*373717*/                  OPC_MoveParent,
/*373718*/                  OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/*373720*/                  OPC_CheckType, MVT::v2f64,
/*373722*/                  OPC_MoveParent,
/*373723*/                  OPC_MoveParent,
/*373724*/                  OPC_MoveChild2,
/*373725*/                  OPC_CheckImmAllZerosV,
/*373726*/                  OPC_MoveParent,
/*373727*/                  OPC_CheckType, MVT::v4f32,
/*373729*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*373731*/                  OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*373734*/                  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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext), immAllZerosV:{ *:[v4f32] }) - Complexity = 17
                            // Dst: (VEXTRACTF32x4Zrrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR512:{ *:[v8f64] }:$src, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v2f64] }:$ext))
/*373743*/                /*Scope*/ 32, /*->373776*/
/*373744*/                  OPC_MoveChild1,
/*373745*/                  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*373748*/                  OPC_CheckType, MVT::iPTR,
/*373750*/                  OPC_MoveParent,
/*373751*/                  OPC_CheckPredicate, 18, // Predicate_vextract256_extract
/*373753*/                  OPC_CheckType, MVT::v8f32,
/*373755*/                  OPC_MoveParent,
/*373756*/                  OPC_MoveParent,
/*373757*/                  OPC_MoveChild2,
/*373758*/                  OPC_CheckImmAllZerosV,
/*373759*/                  OPC_MoveParent,
/*373760*/                  OPC_CheckType, MVT::v4f64,
/*373762*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*373764*/                  OPC_EmitNodeXForm, 1, 1, // EXTRACT_get_vextract256_imm
/*373767*/                  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] }))<<P:Predicate_vextract256_extract>><<X:EXTRACT_get_vextract256_imm>>:$ext), immAllZerosV:{ *:[v4f64] }) - Complexity = 17
                            // Dst: (VEXTRACTF64x4Zrrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR512:{ *:[v16f32] }:$src, (EXTRACT_get_vextract256_imm:{ *:[i8] } VR256X:{ *:[v8f32] }:$ext))
/*373776*/                0, /*End of Scope*/
/*373777*/              /*SwitchOpcode*/ 33, TARGET_VAL(ISD::INSERT_SUBVECTOR),// ->373813
/*373780*/                OPC_RecordChild0, // #2 = $src1
/*373781*/                OPC_RecordChild1, // #3 = $src2
/*373782*/                OPC_MoveChild2,
/*373783*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*373786*/                OPC_CheckType, MVT::iPTR,
/*373788*/                OPC_MoveParent,
/*373789*/                OPC_CheckType, MVT::v8f32,
/*373791*/                OPC_MoveParent,
/*373792*/                OPC_MoveParent,
/*373793*/                OPC_MoveChild2,
/*373794*/                OPC_CheckImmAllZerosV,
/*373795*/                OPC_MoveParent,
/*373796*/                OPC_CheckType, MVT::v4f64,
/*373798*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*373800*/                OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*373803*/                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), immAllZerosV:{ *:[v4f64] }) - Complexity = 16
                          // Dst: (VINSERTF64x2Z256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256X:{ *:[v8f32] }:$ins))
/*373813*/              0, // EndSwitchOpcode
/*373814*/            0, /*End of Scope*/
/*373815*/          /*SwitchOpcode*/ 19|128,2/*275*/, TARGET_VAL(X86ISD::VPERMV3),// ->374094
/*373819*/            OPC_RecordChild0, // #1 = $src2
/*373820*/            OPC_RecordChild1, // #2 = $src1
/*373821*/            OPC_MoveChild2,
/*373822*/            OPC_SwitchOpcode /*2 cases */, 123, TARGET_VAL(ISD::LOAD),// ->373949
/*373826*/              OPC_RecordMemRef,
/*373827*/              OPC_RecordNode, // #3 = 'ld' chained node
/*373828*/              OPC_CheckFoldableChainNode,
/*373829*/              OPC_RecordChild1, // #4 = $src3
/*373830*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*373832*/              OPC_CheckPredicate, 9, // Predicate_load
/*373834*/              OPC_MoveParent,
/*373835*/              OPC_MoveParent,
/*373836*/              OPC_Scope, 57, /*->373895*/ // 2 children in Scope
/*373838*/                OPC_MoveChild2,
/*373839*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*373842*/                OPC_CheckChild0Same, 2,
/*373844*/                OPC_MoveParent,
/*373845*/                OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->373870
/*373848*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*373850*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*373853*/                  OPC_EmitMergeInputChains, 1, 3, 
/*373856*/                  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>>), (bitconvert:{ *:[v4f32] } VR128X:{ *:[v4i32] }:$src1)) - Complexity = 31
                            // Dst: (VPERMI2PS128rmk:{ *:[v4f32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*373870*/                /*SwitchType*/ 22, MVT::v4f64,// ->373894
/*373872*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*373874*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*373877*/                  OPC_EmitMergeInputChains, 1, 3, 
/*373880*/                  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>>), (bitconvert:{ *:[v4f64] } VR256X:{ *:[v4i64] }:$src1)) - Complexity = 31
                            // Dst: (VPERMI2PD256rmk:{ *:[v4f64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*373894*/                0, // EndSwitchType
/*373895*/              /*Scope*/ 52, /*->373948*/
/*373896*/                OPC_CheckChild2Same, 1,
/*373898*/                OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->373923
/*373901*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*373903*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*373906*/                  OPC_EmitMergeInputChains, 1, 3, 
/*373909*/                  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>>), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                            // Dst: (VPERMT2PS128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*373923*/                /*SwitchType*/ 22, MVT::v4f64,// ->373947
/*373925*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*373927*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*373930*/                  OPC_EmitMergeInputChains, 1, 3, 
/*373933*/                  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>>), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                            // Dst: (VPERMT2PD256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*373947*/                0, // EndSwitchType
/*373948*/              0, /*End of Scope*/
/*373949*/            /*SwitchOpcode*/ 12|128,1/*140*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->374093
/*373953*/              OPC_RecordMemRef,
/*373954*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*373955*/              OPC_CheckFoldableChainNode,
/*373956*/              OPC_RecordChild1, // #4 = $src3
/*373957*/              OPC_Scope, 35, /*->373994*/ // 4 children in Scope
/*373959*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*373961*/                OPC_MoveParent,
/*373962*/                OPC_MoveParent,
/*373963*/                OPC_MoveChild2,
/*373964*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*373967*/                OPC_CheckChild0Same, 2,
/*373969*/                OPC_MoveParent,
/*373970*/                OPC_CheckType, MVT::v4f32,
/*373972*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*373974*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*373977*/                OPC_EmitMergeInputChains, 1, 3, 
/*373980*/                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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), (bitconvert:{ *:[v4f32] } VR128X:{ *:[v4i32] }:$src1)) - Complexity = 31
                          // Dst: (VPERMI2PS128rmbk:{ *:[v4f32] } VR128X:{ *:[v4i32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*373994*/              /*Scope*/ 35, /*->374030*/
/*373995*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*373997*/                OPC_MoveParent,
/*373998*/                OPC_MoveParent,
/*373999*/                OPC_MoveChild2,
/*374000*/                OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*374003*/                OPC_CheckChild0Same, 2,
/*374005*/                OPC_MoveParent,
/*374006*/                OPC_CheckType, MVT::v4f64,
/*374008*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*374010*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*374013*/                OPC_EmitMergeInputChains, 1, 3, 
/*374016*/                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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), (bitconvert:{ *:[v4f64] } VR256X:{ *:[v4i64] }:$src1)) - Complexity = 31
                          // Dst: (VPERMI2PD256rmbk:{ *:[v4f64] } VR256X:{ *:[v4i64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*374030*/              /*Scope*/ 30, /*->374061*/
/*374031*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*374033*/                OPC_MoveParent,
/*374034*/                OPC_MoveParent,
/*374035*/                OPC_CheckChild2Same, 1,
/*374037*/                OPC_CheckType, MVT::v4f32,
/*374039*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*374041*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*374044*/                OPC_EmitMergeInputChains, 1, 3, 
/*374047*/                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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                          // Dst: (VPERMT2PS128rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*374061*/              /*Scope*/ 30, /*->374092*/
/*374062*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*374064*/                OPC_MoveParent,
/*374065*/                OPC_MoveParent,
/*374066*/                OPC_CheckChild2Same, 1,
/*374068*/                OPC_CheckType, MVT::v4f64,
/*374070*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*374072*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*374075*/                OPC_EmitMergeInputChains, 1, 3, 
/*374078*/                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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                          // Dst: (VPERMT2PD256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*374092*/              0, /*End of Scope*/
/*374093*/            0, // EndSwitchOpcode
/*374094*/          /*SwitchOpcode*/ 85, TARGET_VAL(X86ISD::VPERMI),// ->374182
/*374097*/            OPC_MoveChild0,
/*374098*/            OPC_SwitchOpcode /*2 cases */, 39, TARGET_VAL(ISD::LOAD),// ->374141
/*374102*/              OPC_RecordMemRef,
/*374103*/              OPC_RecordNode, // #1 = 'ld' chained node
/*374104*/              OPC_CheckFoldableChainNode,
/*374105*/              OPC_RecordChild1, // #2 = $src1
/*374106*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*374108*/              OPC_CheckPredicate, 9, // Predicate_load
/*374110*/              OPC_MoveParent,
/*374111*/              OPC_RecordChild1, // #3 = $src2
/*374112*/              OPC_MoveChild1,
/*374113*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*374116*/              OPC_MoveParent,
/*374117*/              OPC_MoveParent,
/*374118*/              OPC_RecordChild2, // #4 = $src0
/*374119*/              OPC_CheckType, MVT::v4f64,
/*374121*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*374123*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*374126*/              OPC_EmitMergeInputChains1_1,
/*374127*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPDZ256mik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermi:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                        // Dst: (VPERMPDZ256mik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*374141*/            /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->374181
/*374144*/              OPC_RecordMemRef,
/*374145*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*374146*/              OPC_CheckFoldableChainNode,
/*374147*/              OPC_RecordChild1, // #2 = $src1
/*374148*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*374150*/              OPC_MoveParent,
/*374151*/              OPC_RecordChild1, // #3 = $src2
/*374152*/              OPC_MoveChild1,
/*374153*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*374156*/              OPC_MoveParent,
/*374157*/              OPC_MoveParent,
/*374158*/              OPC_RecordChild2, // #4 = $src0
/*374159*/              OPC_CheckType, MVT::v4f64,
/*374161*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*374163*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*374166*/              OPC_EmitMergeInputChains1_1,
/*374167*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPDZ256mbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermi:{ *:[v4f64] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src2), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                        // Dst: (VPERMPDZ256mbik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*374181*/            0, // EndSwitchOpcode
/*374182*/          /*SwitchOpcode*/ 18|128,1/*146*/, TARGET_VAL(X86ISD::VPERMILPI),// ->374332
/*374186*/            OPC_MoveChild0,
/*374187*/            OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->374254
/*374191*/              OPC_RecordMemRef,
/*374192*/              OPC_RecordNode, // #1 = 'ld' chained node
/*374193*/              OPC_CheckFoldableChainNode,
/*374194*/              OPC_RecordChild1, // #2 = $src1
/*374195*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*374197*/              OPC_CheckPredicate, 9, // Predicate_load
/*374199*/              OPC_MoveParent,
/*374200*/              OPC_RecordChild1, // #3 = $src2
/*374201*/              OPC_MoveChild1,
/*374202*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*374205*/              OPC_MoveParent,
/*374206*/              OPC_MoveParent,
/*374207*/              OPC_RecordChild2, // #4 = $src0
/*374208*/              OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->374231
/*374211*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*374213*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*374216*/                OPC_EmitMergeInputChains1_1,
/*374217*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZ128mik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermilpi:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                          // Dst: (VPERMILPSZ128mik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*374231*/              /*SwitchType*/ 20, MVT::v4f64,// ->374253
/*374233*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*374235*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*374238*/                OPC_EmitMergeInputChains1_1,
/*374239*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZ256mik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermilpi:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                          // Dst: (VPERMILPDZ256mik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*374253*/              0, // EndSwitchType
/*374254*/            /*SwitchOpcode*/ 74, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->374331
/*374257*/              OPC_RecordMemRef,
/*374258*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*374259*/              OPC_CheckFoldableChainNode,
/*374260*/              OPC_RecordChild1, // #2 = $src1
/*374261*/              OPC_Scope, 33, /*->374296*/ // 2 children in Scope
/*374263*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*374265*/                OPC_MoveParent,
/*374266*/                OPC_RecordChild1, // #3 = $src2
/*374267*/                OPC_MoveChild1,
/*374268*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*374271*/                OPC_MoveParent,
/*374272*/                OPC_MoveParent,
/*374273*/                OPC_RecordChild2, // #4 = $src0
/*374274*/                OPC_CheckType, MVT::v4f32,
/*374276*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*374278*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*374281*/                OPC_EmitMergeInputChains1_1,
/*374282*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZ128mbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermilpi:{ *:[v4f32] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src2), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                          // Dst: (VPERMILPSZ128mbik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*374296*/              /*Scope*/ 33, /*->374330*/
/*374297*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*374299*/                OPC_MoveParent,
/*374300*/                OPC_RecordChild1, // #3 = $src2
/*374301*/                OPC_MoveChild1,
/*374302*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*374305*/                OPC_MoveParent,
/*374306*/                OPC_MoveParent,
/*374307*/                OPC_RecordChild2, // #4 = $src0
/*374308*/                OPC_CheckType, MVT::v4f64,
/*374310*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*374312*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*374315*/                OPC_EmitMergeInputChains1_1,
/*374316*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZ256mbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermilpi:{ *:[v4f64] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src2), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                          // Dst: (VPERMILPDZ256mbik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*374330*/              0, /*End of Scope*/
/*374331*/            0, // EndSwitchOpcode
/*374332*/          /*SwitchOpcode*/ 18|128,1/*146*/, TARGET_VAL(X86ISD::VREDUCE),// ->374482
/*374336*/            OPC_MoveChild0,
/*374337*/            OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->374404
/*374341*/              OPC_RecordMemRef,
/*374342*/              OPC_RecordNode, // #1 = 'ld' chained node
/*374343*/              OPC_CheckFoldableChainNode,
/*374344*/              OPC_RecordChild1, // #2 = $src1
/*374345*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*374347*/              OPC_CheckPredicate, 9, // Predicate_load
/*374349*/              OPC_MoveParent,
/*374350*/              OPC_RecordChild1, // #3 = $src2
/*374351*/              OPC_MoveChild1,
/*374352*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*374355*/              OPC_MoveParent,
/*374356*/              OPC_MoveParent,
/*374357*/              OPC_RecordChild2, // #4 = $src0
/*374358*/              OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->374381
/*374361*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*374363*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*374366*/                OPC_EmitMergeInputChains1_1,
/*374367*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPSZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VReduce:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                          // Dst: (VREDUCEPSZ128rmik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*374381*/              /*SwitchType*/ 20, MVT::v4f64,// ->374403
/*374383*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*374385*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*374388*/                OPC_EmitMergeInputChains1_1,
/*374389*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPDZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VReduce:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                          // Dst: (VREDUCEPDZ256rmik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*374403*/              0, // EndSwitchType
/*374404*/            /*SwitchOpcode*/ 74, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->374481
/*374407*/              OPC_RecordMemRef,
/*374408*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*374409*/              OPC_CheckFoldableChainNode,
/*374410*/              OPC_RecordChild1, // #2 = $src1
/*374411*/              OPC_Scope, 33, /*->374446*/ // 2 children in Scope
/*374413*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*374415*/                OPC_MoveParent,
/*374416*/                OPC_RecordChild1, // #3 = $src2
/*374417*/                OPC_MoveChild1,
/*374418*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*374421*/                OPC_MoveParent,
/*374422*/                OPC_MoveParent,
/*374423*/                OPC_RecordChild2, // #4 = $src0
/*374424*/                OPC_CheckType, MVT::v4f32,
/*374426*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*374428*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*374431*/                OPC_EmitMergeInputChains1_1,
/*374432*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPSZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VReduce:{ *:[v4f32] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i32] }):$src2), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                          // Dst: (VREDUCEPSZ128rmbik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*374446*/              /*Scope*/ 33, /*->374480*/
/*374447*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*374449*/                OPC_MoveParent,
/*374450*/                OPC_RecordChild1, // #3 = $src2
/*374451*/                OPC_MoveChild1,
/*374452*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*374455*/                OPC_MoveParent,
/*374456*/                OPC_MoveParent,
/*374457*/                OPC_RecordChild2, // #4 = $src0
/*374458*/                OPC_CheckType, MVT::v4f64,
/*374460*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*374462*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*374465*/                OPC_EmitMergeInputChains1_1,
/*374466*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPDZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VReduce:{ *:[v4f64] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i32] }):$src2), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                          // Dst: (VREDUCEPDZ256rmbik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*374480*/              0, /*End of Scope*/
/*374481*/            0, // EndSwitchOpcode
/*374482*/          /*SwitchOpcode*/ 32|128,1/*160*/, TARGET_VAL(X86ISD::STRICT_VRNDSCALE),// ->374646
/*374486*/            OPC_RecordNode, // #1 = 'X86strict_VRndScale' chained node
/*374487*/            OPC_CheckFoldableChainNode,
/*374488*/            OPC_MoveChild1,
/*374489*/            OPC_SwitchOpcode /*2 cases */, 69, TARGET_VAL(ISD::LOAD),// ->374562
/*374493*/              OPC_RecordMemRef,
/*374494*/              OPC_RecordNode, // #2 = 'ld' chained node
/*374495*/              OPC_CheckFoldableChainNode,
/*374496*/              OPC_RecordChild1, // #3 = $src1
/*374497*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*374499*/              OPC_CheckPredicate, 9, // Predicate_load
/*374501*/              OPC_MoveParent,
/*374502*/              OPC_RecordChild2, // #4 = $src2
/*374503*/              OPC_MoveChild2,
/*374504*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*374507*/              OPC_MoveParent,
/*374508*/              OPC_MoveParent,
/*374509*/              OPC_RecordChild2, // #5 = $src0
/*374510*/              OPC_SwitchType /*2 cases */, 23, MVT::v4f32,// ->374536
/*374513*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*374515*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src1 #6 #7 #8 #9 #10
/*374518*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*374522*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 5, 0, 6, 7, 8, 9, 10, 4, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_VRndScale:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                          // Dst: (VRNDSCALEPSZ128rmik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*374536*/              /*SwitchType*/ 23, MVT::v4f64,// ->374561
/*374538*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*374540*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src1 #6 #7 #8 #9 #10
/*374543*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*374547*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 5, 0, 6, 7, 8, 9, 10, 4, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_VRndScale:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                          // Dst: (VRNDSCALEPDZ256rmik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*374561*/              0, // EndSwitchType
/*374562*/            /*SwitchOpcode*/ 80, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->374645
/*374565*/              OPC_RecordMemRef,
/*374566*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*374567*/              OPC_CheckFoldableChainNode,
/*374568*/              OPC_RecordChild1, // #3 = $src1
/*374569*/              OPC_Scope, 36, /*->374607*/ // 2 children in Scope
/*374571*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*374573*/                OPC_MoveParent,
/*374574*/                OPC_RecordChild2, // #4 = $src2
/*374575*/                OPC_MoveChild2,
/*374576*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*374579*/                OPC_MoveParent,
/*374580*/                OPC_MoveParent,
/*374581*/                OPC_RecordChild2, // #5 = $src0
/*374582*/                OPC_CheckType, MVT::v4f32,
/*374584*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*374586*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src1 #6 #7 #8 #9 #10
/*374589*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*374593*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 5, 0, 6, 7, 8, 9, 10, 4, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_VRndScale:{ *:[v4f32] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i32] }):$src2), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                          // Dst: (VRNDSCALEPSZ128rmbik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*374607*/              /*Scope*/ 36, /*->374644*/
/*374608*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*374610*/                OPC_MoveParent,
/*374611*/                OPC_RecordChild2, // #4 = $src2
/*374612*/                OPC_MoveChild2,
/*374613*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*374616*/                OPC_MoveParent,
/*374617*/                OPC_MoveParent,
/*374618*/                OPC_RecordChild2, // #5 = $src0
/*374619*/                OPC_CheckType, MVT::v4f64,
/*374621*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*374623*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src1 #6 #7 #8 #9 #10
/*374626*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*374630*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 5, 0, 6, 7, 8, 9, 10, 4, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_VRndScale:{ *:[v4f64] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i32] }):$src2), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                          // Dst: (VRNDSCALEPDZ256rmbik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*374644*/              0, /*End of Scope*/
/*374645*/            0, // EndSwitchOpcode
/*374646*/          /*SwitchOpcode*/ 18|128,1/*146*/, TARGET_VAL(X86ISD::VRNDSCALE),// ->374796
/*374650*/            OPC_MoveChild0,
/*374651*/            OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->374718
/*374655*/              OPC_RecordMemRef,
/*374656*/              OPC_RecordNode, // #1 = 'ld' chained node
/*374657*/              OPC_CheckFoldableChainNode,
/*374658*/              OPC_RecordChild1, // #2 = $src1
/*374659*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*374661*/              OPC_CheckPredicate, 9, // Predicate_load
/*374663*/              OPC_MoveParent,
/*374664*/              OPC_RecordChild1, // #3 = $src2
/*374665*/              OPC_MoveChild1,
/*374666*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*374669*/              OPC_MoveParent,
/*374670*/              OPC_MoveParent,
/*374671*/              OPC_RecordChild2, // #4 = $src0
/*374672*/              OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->374695
/*374675*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*374677*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*374680*/                OPC_EmitMergeInputChains1_1,
/*374681*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VRndScale:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                          // Dst: (VRNDSCALEPSZ128rmik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*374695*/              /*SwitchType*/ 20, MVT::v4f64,// ->374717
/*374697*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*374699*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*374702*/                OPC_EmitMergeInputChains1_1,
/*374703*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VRndScale:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                          // Dst: (VRNDSCALEPDZ256rmik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*374717*/              0, // EndSwitchType
/*374718*/            /*SwitchOpcode*/ 74, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->374795
/*374721*/              OPC_RecordMemRef,
/*374722*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*374723*/              OPC_CheckFoldableChainNode,
/*374724*/              OPC_RecordChild1, // #2 = $src1
/*374725*/              OPC_Scope, 33, /*->374760*/ // 2 children in Scope
/*374727*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*374729*/                OPC_MoveParent,
/*374730*/                OPC_RecordChild1, // #3 = $src2
/*374731*/                OPC_MoveChild1,
/*374732*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*374735*/                OPC_MoveParent,
/*374736*/                OPC_MoveParent,
/*374737*/                OPC_RecordChild2, // #4 = $src0
/*374738*/                OPC_CheckType, MVT::v4f32,
/*374740*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*374742*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*374745*/                OPC_EmitMergeInputChains1_1,
/*374746*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VRndScale:{ *:[v4f32] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i32] }):$src2), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                          // Dst: (VRNDSCALEPSZ128rmbik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*374760*/              /*Scope*/ 33, /*->374794*/
/*374761*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*374763*/                OPC_MoveParent,
/*374764*/                OPC_RecordChild1, // #3 = $src2
/*374765*/                OPC_MoveChild1,
/*374766*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*374769*/                OPC_MoveParent,
/*374770*/                OPC_MoveParent,
/*374771*/                OPC_RecordChild2, // #4 = $src0
/*374772*/                OPC_CheckType, MVT::v4f64,
/*374774*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*374776*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*374779*/                OPC_EmitMergeInputChains1_1,
/*374780*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VRndScale:{ *:[v4f64] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i32] }):$src2), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                          // Dst: (VRNDSCALEPDZ256rmbik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*374794*/              0, /*End of Scope*/
/*374795*/            0, // EndSwitchOpcode
/*374796*/          /*SwitchOpcode*/ 18|128,1/*146*/, TARGET_VAL(X86ISD::VGETMANT),// ->374946
/*374800*/            OPC_MoveChild0,
/*374801*/            OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->374868
/*374805*/              OPC_RecordMemRef,
/*374806*/              OPC_RecordNode, // #1 = 'ld' chained node
/*374807*/              OPC_CheckFoldableChainNode,
/*374808*/              OPC_RecordChild1, // #2 = $src1
/*374809*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*374811*/              OPC_CheckPredicate, 9, // Predicate_load
/*374813*/              OPC_MoveParent,
/*374814*/              OPC_RecordChild1, // #3 = $src2
/*374815*/              OPC_MoveChild1,
/*374816*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*374819*/              OPC_MoveParent,
/*374820*/              OPC_MoveParent,
/*374821*/              OPC_RecordChild2, // #4 = $src0
/*374822*/              OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->374845
/*374825*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*374827*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*374830*/                OPC_EmitMergeInputChains1_1,
/*374831*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPSZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VGetMant:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                          // Dst: (VGETMANTPSZ128rmik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*374845*/              /*SwitchType*/ 20, MVT::v4f64,// ->374867
/*374847*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*374849*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*374852*/                OPC_EmitMergeInputChains1_1,
/*374853*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPDZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VGetMant:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                          // Dst: (VGETMANTPDZ256rmik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*374867*/              0, // EndSwitchType
/*374868*/            /*SwitchOpcode*/ 74, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->374945
/*374871*/              OPC_RecordMemRef,
/*374872*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*374873*/              OPC_CheckFoldableChainNode,
/*374874*/              OPC_RecordChild1, // #2 = $src1
/*374875*/              OPC_Scope, 33, /*->374910*/ // 2 children in Scope
/*374877*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*374879*/                OPC_MoveParent,
/*374880*/                OPC_RecordChild1, // #3 = $src2
/*374881*/                OPC_MoveChild1,
/*374882*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*374885*/                OPC_MoveParent,
/*374886*/                OPC_MoveParent,
/*374887*/                OPC_RecordChild2, // #4 = $src0
/*374888*/                OPC_CheckType, MVT::v4f32,
/*374890*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*374892*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*374895*/                OPC_EmitMergeInputChains1_1,
/*374896*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPSZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VGetMant:{ *:[v4f32] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i32] }):$src2), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                          // Dst: (VGETMANTPSZ128rmbik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*374910*/              /*Scope*/ 33, /*->374944*/
/*374911*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*374913*/                OPC_MoveParent,
/*374914*/                OPC_RecordChild1, // #3 = $src2
/*374915*/                OPC_MoveChild1,
/*374916*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*374919*/                OPC_MoveParent,
/*374920*/                OPC_MoveParent,
/*374921*/                OPC_RecordChild2, // #4 = $src0
/*374922*/                OPC_CheckType, MVT::v4f64,
/*374924*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*374926*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*374929*/                OPC_EmitMergeInputChains1_1,
/*374930*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPDZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VGetMant:{ *:[v4f64] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i32] }):$src2), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                          // Dst: (VGETMANTPDZ256rmbik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*374944*/              0, /*End of Scope*/
/*374945*/            0, // EndSwitchOpcode
/*374946*/          /*SwitchOpcode*/ 23|128,1/*151*/, TARGET_VAL(X86ISD::VRANGE),// ->375101
/*374950*/            OPC_RecordChild0, // #1 = $src1
/*374951*/            OPC_MoveChild1,
/*374952*/            OPC_SwitchOpcode /*2 cases */, 65, TARGET_VAL(ISD::LOAD),// ->375021
/*374956*/              OPC_RecordMemRef,
/*374957*/              OPC_RecordNode, // #2 = 'ld' chained node
/*374958*/              OPC_CheckFoldableChainNode,
/*374959*/              OPC_RecordChild1, // #3 = $src2
/*374960*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*374962*/              OPC_CheckPredicate, 9, // Predicate_load
/*374964*/              OPC_MoveParent,
/*374965*/              OPC_RecordChild2, // #4 = $src3
/*374966*/              OPC_MoveChild2,
/*374967*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*374970*/              OPC_MoveParent,
/*374971*/              OPC_MoveParent,
/*374972*/              OPC_RecordChild2, // #5 = $src0
/*374973*/              OPC_SwitchType /*2 cases */, 21, MVT::v4f64,// ->374997
/*374976*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*374978*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*374981*/                OPC_EmitMergeInputChains1_2,
/*374982*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPDZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VRange:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src3), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                          // Dst: (VRANGEPDZ256rmik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i32] }):$src3)
/*374997*/              /*SwitchType*/ 21, MVT::v4f32,// ->375020
/*374999*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*375001*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*375004*/                OPC_EmitMergeInputChains1_2,
/*375005*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPSZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VRange:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src3), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                          // Dst: (VRANGEPSZ128rmik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i32] }):$src3)
/*375020*/              0, // EndSwitchType
/*375021*/            /*SwitchOpcode*/ 76, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->375100
/*375024*/              OPC_RecordMemRef,
/*375025*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*375026*/              OPC_CheckFoldableChainNode,
/*375027*/              OPC_RecordChild1, // #3 = $src2
/*375028*/              OPC_Scope, 34, /*->375064*/ // 2 children in Scope
/*375030*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*375032*/                OPC_MoveParent,
/*375033*/                OPC_RecordChild2, // #4 = $src3
/*375034*/                OPC_MoveChild2,
/*375035*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*375038*/                OPC_MoveParent,
/*375039*/                OPC_MoveParent,
/*375040*/                OPC_RecordChild2, // #5 = $src0
/*375041*/                OPC_CheckType, MVT::v4f64,
/*375043*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*375045*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*375048*/                OPC_EmitMergeInputChains1_2,
/*375049*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPDZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VRange:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i32] }):$src3), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                          // Dst: (VRANGEPDZ256rmbik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i32] }):$src3)
/*375064*/              /*Scope*/ 34, /*->375099*/
/*375065*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*375067*/                OPC_MoveParent,
/*375068*/                OPC_RecordChild2, // #4 = $src3
/*375069*/                OPC_MoveChild2,
/*375070*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*375073*/                OPC_MoveParent,
/*375074*/                OPC_MoveParent,
/*375075*/                OPC_RecordChild2, // #5 = $src0
/*375076*/                OPC_CheckType, MVT::v4f32,
/*375078*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*375080*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*375083*/                OPC_EmitMergeInputChains1_2,
/*375084*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPSZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VRange:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i32] }):$src3), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                          // Dst: (VRANGEPSZ128rmbik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i32] }):$src3)
/*375099*/              0, /*End of Scope*/
/*375100*/            0, // EndSwitchOpcode
/*375101*/          /*SwitchOpcode*/ 88, TARGET_VAL(X86ISD::SHUF128),// ->375192
/*375104*/            OPC_RecordChild0, // #1 = $src1
/*375105*/            OPC_MoveChild1,
/*375106*/            OPC_SwitchOpcode /*2 cases */, 40, TARGET_VAL(ISD::LOAD),// ->375150
/*375110*/              OPC_RecordMemRef,
/*375111*/              OPC_RecordNode, // #2 = 'ld' chained node
/*375112*/              OPC_CheckFoldableChainNode,
/*375113*/              OPC_RecordChild1, // #3 = $src2
/*375114*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*375116*/              OPC_CheckPredicate, 9, // Predicate_load
/*375118*/              OPC_MoveParent,
/*375119*/              OPC_RecordChild2, // #4 = $src3
/*375120*/              OPC_MoveChild2,
/*375121*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*375124*/              OPC_MoveParent,
/*375125*/              OPC_MoveParent,
/*375126*/              OPC_RecordChild2, // #5 = $src0
/*375127*/              OPC_CheckType, MVT::v4f64,
/*375129*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*375131*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*375134*/              OPC_EmitMergeInputChains1_2,
/*375135*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF64X2Z256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Shuf128:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                        // Dst: (VSHUFF64X2Z256rmik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*375150*/            /*SwitchOpcode*/ 38, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->375191
/*375153*/              OPC_RecordMemRef,
/*375154*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*375155*/              OPC_CheckFoldableChainNode,
/*375156*/              OPC_RecordChild1, // #3 = $src2
/*375157*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*375159*/              OPC_MoveParent,
/*375160*/              OPC_RecordChild2, // #4 = $src3
/*375161*/              OPC_MoveChild2,
/*375162*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*375165*/              OPC_MoveParent,
/*375166*/              OPC_MoveParent,
/*375167*/              OPC_RecordChild2, // #5 = $src0
/*375168*/              OPC_CheckType, MVT::v4f64,
/*375170*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*375172*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*375175*/              OPC_EmitMergeInputChains1_2,
/*375176*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF64X2Z256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Shuf128:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src3), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                        // Dst: (VSHUFF64X2Z256rmbik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*375191*/            0, // EndSwitchOpcode
/*375192*/          /*SwitchOpcode*/ 23|128,1/*151*/, TARGET_VAL(X86ISD::SHUFP),// ->375347
/*375196*/            OPC_RecordChild0, // #1 = $src1
/*375197*/            OPC_MoveChild1,
/*375198*/            OPC_SwitchOpcode /*2 cases */, 65, TARGET_VAL(ISD::LOAD),// ->375267
/*375202*/              OPC_RecordMemRef,
/*375203*/              OPC_RecordNode, // #2 = 'ld' chained node
/*375204*/              OPC_CheckFoldableChainNode,
/*375205*/              OPC_RecordChild1, // #3 = $src2
/*375206*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*375208*/              OPC_CheckPredicate, 9, // Predicate_load
/*375210*/              OPC_MoveParent,
/*375211*/              OPC_RecordChild2, // #4 = $src3
/*375212*/              OPC_MoveChild2,
/*375213*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*375216*/              OPC_MoveParent,
/*375217*/              OPC_MoveParent,
/*375218*/              OPC_RecordChild2, // #5 = $src0
/*375219*/              OPC_SwitchType /*2 cases */, 21, MVT::v4f32,// ->375243
/*375222*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*375224*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*375227*/                OPC_EmitMergeInputChains1_2,
/*375228*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPSZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Shufp:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                          // Dst: (VSHUFPSZ128rmik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*375243*/              /*SwitchType*/ 21, MVT::v4f64,// ->375266
/*375245*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*375247*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*375250*/                OPC_EmitMergeInputChains1_2,
/*375251*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPDZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Shufp:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                          // Dst: (VSHUFPDZ256rmik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*375266*/              0, // EndSwitchType
/*375267*/            /*SwitchOpcode*/ 76, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->375346
/*375270*/              OPC_RecordMemRef,
/*375271*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*375272*/              OPC_CheckFoldableChainNode,
/*375273*/              OPC_RecordChild1, // #3 = $src2
/*375274*/              OPC_Scope, 34, /*->375310*/ // 2 children in Scope
/*375276*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*375278*/                OPC_MoveParent,
/*375279*/                OPC_RecordChild2, // #4 = $src3
/*375280*/                OPC_MoveChild2,
/*375281*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*375284*/                OPC_MoveParent,
/*375285*/                OPC_MoveParent,
/*375286*/                OPC_RecordChild2, // #5 = $src0
/*375287*/                OPC_CheckType, MVT::v4f32,
/*375289*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*375291*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*375294*/                OPC_EmitMergeInputChains1_2,
/*375295*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPSZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Shufp:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src3), VR128X:{ *:[v4f32] }:$src0) - Complexity = 31
                          // Dst: (VSHUFPSZ128rmbik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*375310*/              /*Scope*/ 34, /*->375345*/
/*375311*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*375313*/                OPC_MoveParent,
/*375314*/                OPC_RecordChild2, // #4 = $src3
/*375315*/                OPC_MoveChild2,
/*375316*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*375319*/                OPC_MoveParent,
/*375320*/                OPC_MoveParent,
/*375321*/                OPC_RecordChild2, // #5 = $src0
/*375322*/                OPC_CheckType, MVT::v4f64,
/*375324*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*375326*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*375329*/                OPC_EmitMergeInputChains1_2,
/*375330*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPDZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Shufp:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src3), VR256X:{ *:[v4f64] }:$src0) - Complexity = 31
                          // Dst: (VSHUFPDZ256rmbik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*375345*/              0, /*End of Scope*/
/*375346*/            0, // EndSwitchOpcode
/*375347*/          /*SwitchOpcode*/ 35|128,1/*163*/, TARGET_VAL(X86ISD::VFIXUPIMM),// ->375514
/*375351*/            OPC_RecordChild0, // #1 = $src1
/*375352*/            OPC_RecordChild1, // #2 = $src2
/*375353*/            OPC_MoveChild2,
/*375354*/            OPC_SwitchOpcode /*2 cases */, 70, TARGET_VAL(ISD::LOAD),// ->375428
/*375358*/              OPC_RecordMemRef,
/*375359*/              OPC_RecordNode, // #3 = 'ld' chained node
/*375360*/              OPC_CheckFoldableChainNode,
/*375361*/              OPC_RecordChild1, // #4 = $src3
/*375362*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*375364*/              OPC_CheckPredicate, 9, // Predicate_load
/*375366*/              OPC_MoveParent,
/*375367*/              OPC_RecordChild3, // #5 = $src4
/*375368*/              OPC_MoveChild3,
/*375369*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*375372*/              OPC_MoveParent,
/*375373*/              OPC_MoveParent,
/*375374*/              OPC_CheckChild2Same, 1,
/*375376*/              OPC_SwitchType /*2 cases */, 23, MVT::v4f32,// ->375402
/*375379*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*375381*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*375384*/                OPC_EmitMergeInputChains, 1, 3, 
/*375387*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPSZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 5, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VFixupimm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src4), VR128X:{ *:[v4f32] }:$src1) - Complexity = 31
                          // Dst: (VFIXUPIMMPSZ128rmik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i32] }):$src4)
/*375402*/              /*SwitchType*/ 23, MVT::v4f64,// ->375427
/*375404*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*375406*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*375409*/                OPC_EmitMergeInputChains, 1, 3, 
/*375412*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPDZ256rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 5, 
                          // 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>>, (timm:{ *:[i32] }):$src4), VR256X:{ *:[v4f64] }:$src1) - Complexity = 31
                          // Dst: (VFIXUPIMMPDZ256rmik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i32] }):$src4)
/*375427*/              0, // EndSwitchType
/*375428*/            /*SwitchOpcode*/ 82, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->375513
/*375431*/              OPC_RecordMemRef,
/*375432*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*375433*/              OPC_CheckFoldableChainNode,
/*375434*/              OPC_RecordChild1, // #4 = $src3
/*375435*/              OPC_Scope, 37, /*->375474*/ // 2 children in Scope
/*375437*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*375439*/                OPC_MoveParent,
/*375440*/                OPC_RecordChild3, // #5 = $src4
/*375441*/                OPC_MoveChild3,
/*375442*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*375445*/                OPC_MoveParent,
/*375446*/                OPC_MoveParent,
/*375447*/                OPC_CheckChild2Same, 1,
/*375449*/                OPC_CheckType, MVT::v4f32,
/*375451*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*375453*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*375456*/                OPC_EmitMergeInputChains, 1, 3, 
/*375459*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPSZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 5, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VFixupimm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i32] }):$src4), VR128X:{ *:[v4f32] }:$src1) - Complexity = 31
                          // Dst: (VFIXUPIMMPSZ128rmbik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i32] }):$src4)
/*375474*/              /*Scope*/ 37, /*->375512*/
/*375475*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*375477*/                OPC_MoveParent,
/*375478*/                OPC_RecordChild3, // #5 = $src4
/*375479*/                OPC_MoveChild3,
/*375480*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*375483*/                OPC_MoveParent,
/*375484*/                OPC_MoveParent,
/*375485*/                OPC_CheckChild2Same, 1,
/*375487*/                OPC_CheckType, MVT::v4f64,
/*375489*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*375491*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*375494*/                OPC_EmitMergeInputChains, 1, 3, 
/*375497*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPDZ256rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 5, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VFixupimm:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i32] }):$src4), VR256X:{ *:[v4f64] }:$src1) - Complexity = 31
                          // Dst: (VFIXUPIMMPDZ256rmbik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i32] }):$src4)
/*375512*/              0, /*End of Scope*/
/*375513*/            0, // EndSwitchOpcode
/*375514*/          /*SwitchOpcode*/ 112, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->375629
/*375517*/            OPC_RecordMemRef,
/*375518*/            OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*375519*/            OPC_CheckFoldableChainNode,
/*375520*/            OPC_RecordChild1, // #2 = $src
/*375521*/            OPC_Scope, 26, /*->375549*/ // 4 children in Scope
/*375523*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*375525*/              OPC_MoveParent,
/*375526*/              OPC_MoveChild2,
/*375527*/              OPC_CheckImmAllZerosV,
/*375528*/              OPC_MoveParent,
/*375529*/              OPC_CheckType, MVT::v4f32,
/*375531*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*375533*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*375536*/              OPC_EmitMergeInputChains1_1,
/*375537*/              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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>, immAllZerosV:{ *:[v4f32] }) - Complexity = 29
                        // Dst: (VBROADCASTSSZ128mkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*375549*/            /*Scope*/ 26, /*->375576*/
/*375550*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*375552*/              OPC_MoveParent,
/*375553*/              OPC_MoveChild2,
/*375554*/              OPC_CheckImmAllZerosV,
/*375555*/              OPC_MoveParent,
/*375556*/              OPC_CheckType, MVT::v4f64,
/*375558*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*375560*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*375563*/              OPC_EmitMergeInputChains1_1,
/*375564*/              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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>, immAllZerosV:{ *:[v4f64] }) - Complexity = 29
                        // Dst: (VBROADCASTSDZ256mkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*375576*/            /*Scope*/ 25, /*->375602*/
/*375577*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*375579*/              OPC_MoveParent,
/*375580*/              OPC_RecordChild2, // #3 = $src0
/*375581*/              OPC_CheckType, MVT::v4f32,
/*375583*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*375585*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*375588*/              OPC_EmitMergeInputChains1_1,
/*375589*/              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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src0) - Complexity = 25
                        // Dst: (VBROADCASTSSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*375602*/            /*Scope*/ 25, /*->375628*/
/*375603*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*375605*/              OPC_MoveParent,
/*375606*/              OPC_RecordChild2, // #3 = $src0
/*375607*/              OPC_CheckType, MVT::v4f64,
/*375609*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*375611*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*375614*/              OPC_EmitMergeInputChains1_1,
/*375615*/              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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src0) - Complexity = 25
                        // Dst: (VBROADCASTSDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*375628*/            0, /*End of Scope*/
/*375629*/          /*SwitchOpcode*/ 11|128,2/*267*/, TARGET_VAL(ISD::LOAD),// ->375900
/*375633*/            OPC_RecordMemRef,
/*375634*/            OPC_RecordNode, // #1 = 'ld' chained node
/*375635*/            OPC_CheckFoldableChainNode,
/*375636*/            OPC_RecordChild1, // #2 = $src
/*375637*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*375639*/            OPC_Scope, 100, /*->375741*/ // 4 children in Scope
/*375641*/              OPC_CheckPredicate, 9, // Predicate_load
/*375643*/              OPC_Scope, 48, /*->375693*/ // 2 children in Scope
/*375645*/                OPC_CheckPredicate, 74, // Predicate_alignedload
/*375647*/                OPC_MoveParent,
/*375648*/                OPC_MoveChild2,
/*375649*/                OPC_CheckImmAllZerosV,
/*375650*/                OPC_MoveParent,
/*375651*/                OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->375672
/*375654*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*375656*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*375659*/                  OPC_EmitMergeInputChains1_1,
/*375660*/                  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_alignedload>>, immAllZerosV:{ *:[v4f32] }) - Complexity = 29
                            // Dst: (VMOVAPSZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*375672*/                /*SwitchType*/ 18, MVT::v4f64,// ->375692
/*375674*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*375676*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*375679*/                  OPC_EmitMergeInputChains1_1,
/*375680*/                  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_alignedload>>, immAllZerosV:{ *:[v4f64] }) - Complexity = 29
                            // Dst: (VMOVAPDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*375692*/                0, // EndSwitchType
/*375693*/              /*Scope*/ 46, /*->375740*/
/*375694*/                OPC_MoveParent,
/*375695*/                OPC_MoveChild2,
/*375696*/                OPC_CheckImmAllZerosV,
/*375697*/                OPC_MoveParent,
/*375698*/                OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->375719
/*375701*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*375703*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*375706*/                  OPC_EmitMergeInputChains1_1,
/*375707*/                  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>>, immAllZerosV:{ *:[v4f32] }) - Complexity = 29
                            // Dst: (VMOVUPSZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*375719*/                /*SwitchType*/ 18, MVT::v4f64,// ->375739
/*375721*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*375723*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*375726*/                  OPC_EmitMergeInputChains1_1,
/*375727*/                  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>>, immAllZerosV:{ *:[v4f64] }) - Complexity = 29
                            // Dst: (VMOVUPDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*375739*/                0, // EndSwitchType
/*375740*/              0, /*End of Scope*/
/*375741*/            /*Scope*/ 28, /*->375770*/
/*375742*/              OPC_CheckPredicate, 70, // Predicate_extload
/*375744*/              OPC_CheckPredicate, 78, // Predicate_extloadvf32
/*375746*/              OPC_MoveParent,
/*375747*/              OPC_MoveChild2,
/*375748*/              OPC_CheckImmAllZerosV,
/*375749*/              OPC_MoveParent,
/*375750*/              OPC_CheckType, MVT::v4f64,
/*375752*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*375754*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*375757*/              OPC_EmitMergeInputChains1_1,
/*375758*/              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, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadvf32>>, immAllZerosV:{ *:[v4f64] }) - Complexity = 29
                        // Dst: (VCVTPS2PDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*375770*/            /*Scope*/ 100, /*->375871*/
/*375771*/              OPC_CheckPredicate, 9, // Predicate_load
/*375773*/              OPC_Scope, 48, /*->375823*/ // 2 children in Scope
/*375775*/                OPC_CheckPredicate, 74, // Predicate_alignedload
/*375777*/                OPC_MoveParent,
/*375778*/                OPC_RecordChild2, // #3 = $src0
/*375779*/                OPC_SwitchType /*2 cases */, 19, MVT::v4f32,// ->375801
/*375782*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*375784*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*375787*/                  OPC_EmitMergeInputChains1_1,
/*375788*/                  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_alignedload>>, VR128X:{ *:[v4f32] }:$src0) - Complexity = 25
                            // Dst: (VMOVAPSZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*375801*/                /*SwitchType*/ 19, MVT::v4f64,// ->375822
/*375803*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*375805*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*375808*/                  OPC_EmitMergeInputChains1_1,
/*375809*/                  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_alignedload>>, VR256X:{ *:[v4f64] }:$src0) - Complexity = 25
                            // Dst: (VMOVAPDZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*375822*/                0, // EndSwitchType
/*375823*/              /*Scope*/ 46, /*->375870*/
/*375824*/                OPC_MoveParent,
/*375825*/                OPC_RecordChild2, // #3 = $src0
/*375826*/                OPC_SwitchType /*2 cases */, 19, MVT::v4f32,// ->375848
/*375829*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*375831*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*375834*/                  OPC_EmitMergeInputChains1_1,
/*375835*/                  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>>, VR128X:{ *:[v4f32] }:$src0) - Complexity = 25
                            // Dst: (VMOVUPSZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*375848*/                /*SwitchType*/ 19, MVT::v4f64,// ->375869
/*375850*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*375852*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*375855*/                  OPC_EmitMergeInputChains1_1,
/*375856*/                  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>>, VR256X:{ *:[v4f64] }:$src0) - Complexity = 25
                            // Dst: (VMOVUPDZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*375869*/                0, // EndSwitchType
/*375870*/              0, /*End of Scope*/
/*375871*/            /*Scope*/ 27, /*->375899*/
/*375872*/              OPC_CheckPredicate, 70, // Predicate_extload
/*375874*/              OPC_CheckPredicate, 78, // Predicate_extloadvf32
/*375876*/              OPC_MoveParent,
/*375877*/              OPC_RecordChild2, // #3 = $src0
/*375878*/              OPC_CheckType, MVT::v4f64,
/*375880*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*375882*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*375885*/              OPC_EmitMergeInputChains1_1,
/*375886*/              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, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadvf32>>, VR256X:{ *:[v4f64] }:$src0) - Complexity = 25
                        // Dst: (VCVTPS2PDZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*375899*/            0, /*End of Scope*/
/*375900*/          /*SwitchOpcode*/ 36, TARGET_VAL(X86ISD::SUBV_BROADCAST),// ->375939
/*375903*/            OPC_MoveChild0,
/*375904*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*375907*/            OPC_RecordMemRef,
/*375908*/            OPC_RecordNode, // #1 = 'ld' chained node
/*375909*/            OPC_CheckFoldableChainNode,
/*375910*/            OPC_RecordChild1, // #2 = $src
/*375911*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*375913*/            OPC_CheckPredicate, 9, // Predicate_load
/*375915*/            OPC_MoveParent,
/*375916*/            OPC_MoveParent,
/*375917*/            OPC_RecordChild2, // #3 = $src0
/*375918*/            OPC_CheckType, MVT::v4f64,
/*375920*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*375922*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*375925*/            OPC_EmitMergeInputChains1_1,
/*375926*/            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>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                      // Dst: (VBROADCASTF64X2Z128rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*375939*/          /*SwitchOpcode*/ 36|128,2/*292*/, TARGET_VAL(ISD::STRICT_FADD),// ->376235
/*375943*/            OPC_RecordNode, // #1 = 'strict_fadd' chained node
/*375944*/            OPC_CheckFoldableChainNode,
/*375945*/            OPC_Scope, 13|128,1/*141*/, /*->376089*/ // 2 children in Scope
/*375948*/              OPC_RecordChild1, // #2 = $src1
/*375949*/              OPC_MoveChild2,
/*375950*/              OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->376017
/*375954*/                OPC_RecordMemRef,
/*375955*/                OPC_RecordNode, // #3 = 'ld' chained node
/*375956*/                OPC_CheckFoldableChainNode,
/*375957*/                OPC_RecordChild1, // #4 = $src2
/*375958*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*375960*/                OPC_CheckPredicate, 9, // Predicate_load
/*375962*/                OPC_MoveParent,
/*375963*/                OPC_MoveParent,
/*375964*/                OPC_RecordChild2, // #5 = $src0
/*375965*/                OPC_SwitchType /*2 cases */, 23, MVT::v4f32,// ->375991
/*375968*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*375970*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*375973*/                  OPC_EmitMergeInputChains, 2, 1, 3, 
/*375977*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (strict_fadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                            // Dst: (VADDPSZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*375991*/                /*SwitchType*/ 23, MVT::v4f64,// ->376016
/*375993*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*375995*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*375998*/                  OPC_EmitMergeInputChains, 2, 1, 3, 
/*376002*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (strict_fadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                            // Dst: (VADDPDZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*376016*/                0, // EndSwitchType
/*376017*/              /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->376088
/*376020*/                OPC_RecordMemRef,
/*376021*/                OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*376022*/                OPC_CheckFoldableChainNode,
/*376023*/                OPC_RecordChild1, // #4 = $src2
/*376024*/                OPC_Scope, 30, /*->376056*/ // 2 children in Scope
/*376026*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*376028*/                  OPC_MoveParent,
/*376029*/                  OPC_MoveParent,
/*376030*/                  OPC_RecordChild2, // #5 = $src0
/*376031*/                  OPC_CheckType, MVT::v4f32,
/*376033*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*376035*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*376038*/                  OPC_EmitMergeInputChains, 2, 1, 3, 
/*376042*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (strict_fadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                            // Dst: (VADDPSZ128rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*376056*/                /*Scope*/ 30, /*->376087*/
/*376057*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*376059*/                  OPC_MoveParent,
/*376060*/                  OPC_MoveParent,
/*376061*/                  OPC_RecordChild2, // #5 = $src0
/*376062*/                  OPC_CheckType, MVT::v4f64,
/*376064*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*376066*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*376069*/                  OPC_EmitMergeInputChains, 2, 1, 3, 
/*376073*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (strict_fadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                            // Dst: (VADDPDZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*376087*/                0, /*End of Scope*/
/*376088*/              0, // EndSwitchOpcode
/*376089*/            /*Scope*/ 15|128,1/*143*/, /*->376234*/
/*376091*/              OPC_MoveChild1,
/*376092*/              OPC_SwitchOpcode /*2 cases */, 64, TARGET_VAL(ISD::LOAD),// ->376160
/*376096*/                OPC_RecordMemRef,
/*376097*/                OPC_RecordNode, // #2 = 'ld' chained node
/*376098*/                OPC_CheckFoldableChainNode,
/*376099*/                OPC_RecordChild1, // #3 = $src2
/*376100*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*376102*/                OPC_CheckPredicate, 9, // Predicate_load
/*376104*/                OPC_MoveParent,
/*376105*/                OPC_RecordChild2, // #4 = $src1
/*376106*/                OPC_MoveParent,
/*376107*/                OPC_RecordChild2, // #5 = $src0
/*376108*/                OPC_SwitchType /*2 cases */, 23, MVT::v4f32,// ->376134
/*376111*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*376113*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*376116*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*376120*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 5, 0, 4, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (strict_fadd:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                            // Dst: (VADDPSZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*376134*/                /*SwitchType*/ 23, MVT::v4f64,// ->376159
/*376136*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*376138*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*376141*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*376145*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 5, 0, 4, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (strict_fadd:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                            // Dst: (VADDPDZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*376159*/                0, // EndSwitchType
/*376160*/              /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->376233
/*376163*/                OPC_RecordMemRef,
/*376164*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*376165*/                OPC_CheckFoldableChainNode,
/*376166*/                OPC_RecordChild1, // #3 = $src2
/*376167*/                OPC_Scope, 31, /*->376200*/ // 2 children in Scope
/*376169*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*376171*/                  OPC_MoveParent,
/*376172*/                  OPC_RecordChild2, // #4 = $src1
/*376173*/                  OPC_MoveParent,
/*376174*/                  OPC_RecordChild2, // #5 = $src0
/*376175*/                  OPC_CheckType, MVT::v4f32,
/*376177*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*376179*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*376182*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*376186*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 5, 0, 4, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (strict_fadd:{ *:[v4f32] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                            // Dst: (VADDPSZ128rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*376200*/                /*Scope*/ 31, /*->376232*/
/*376201*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*376203*/                  OPC_MoveParent,
/*376204*/                  OPC_RecordChild2, // #4 = $src1
/*376205*/                  OPC_MoveParent,
/*376206*/                  OPC_RecordChild2, // #5 = $src0
/*376207*/                  OPC_CheckType, MVT::v4f64,
/*376209*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*376211*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*376214*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*376218*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 5, 0, 4, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (strict_fadd:{ *:[v4f64] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                            // Dst: (VADDPDZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*376232*/                0, /*End of Scope*/
/*376233*/              0, // EndSwitchOpcode
/*376234*/            0, /*End of Scope*/
/*376235*/          /*SwitchOpcode*/ 10|128,2/*266*/, TARGET_VAL(ISD::FADD),// ->376505
/*376239*/            OPC_Scope, 1|128,1/*129*/, /*->376371*/ // 2 children in Scope
/*376242*/              OPC_RecordChild0, // #1 = $src1
/*376243*/              OPC_MoveChild1,
/*376244*/              OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->376305
/*376248*/                OPC_RecordMemRef,
/*376249*/                OPC_RecordNode, // #2 = 'ld' chained node
/*376250*/                OPC_CheckFoldableChainNode,
/*376251*/                OPC_RecordChild1, // #3 = $src2
/*376252*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*376254*/                OPC_CheckPredicate, 9, // Predicate_load
/*376256*/                OPC_MoveParent,
/*376257*/                OPC_MoveParent,
/*376258*/                OPC_RecordChild2, // #4 = $src0
/*376259*/                OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->376282
/*376262*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*376264*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*376267*/                  OPC_EmitMergeInputChains1_2,
/*376268*/                  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>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                            // Dst: (VADDPSZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*376282*/                /*SwitchType*/ 20, MVT::v4f64,// ->376304
/*376284*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*376286*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*376289*/                  OPC_EmitMergeInputChains1_2,
/*376290*/                  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>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                            // Dst: (VADDPDZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*376304*/                0, // EndSwitchType
/*376305*/              /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->376370
/*376308*/                OPC_RecordMemRef,
/*376309*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*376310*/                OPC_CheckFoldableChainNode,
/*376311*/                OPC_RecordChild1, // #3 = $src2
/*376312*/                OPC_Scope, 27, /*->376341*/ // 2 children in Scope
/*376314*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*376316*/                  OPC_MoveParent,
/*376317*/                  OPC_MoveParent,
/*376318*/                  OPC_RecordChild2, // #4 = $src0
/*376319*/                  OPC_CheckType, MVT::v4f32,
/*376321*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*376323*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*376326*/                  OPC_EmitMergeInputChains1_2,
/*376327*/                  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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                            // Dst: (VADDPSZ128rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*376341*/                /*Scope*/ 27, /*->376369*/
/*376342*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*376344*/                  OPC_MoveParent,
/*376345*/                  OPC_MoveParent,
/*376346*/                  OPC_RecordChild2, // #4 = $src0
/*376347*/                  OPC_CheckType, MVT::v4f64,
/*376349*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*376351*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*376354*/                  OPC_EmitMergeInputChains1_2,
/*376355*/                  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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                            // Dst: (VADDPDZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*376369*/                0, /*End of Scope*/
/*376370*/              0, // EndSwitchOpcode
/*376371*/            /*Scope*/ 3|128,1/*131*/, /*->376504*/
/*376373*/              OPC_MoveChild0,
/*376374*/              OPC_SwitchOpcode /*2 cases */, 58, TARGET_VAL(ISD::LOAD),// ->376436
/*376378*/                OPC_RecordMemRef,
/*376379*/                OPC_RecordNode, // #1 = 'ld' chained node
/*376380*/                OPC_CheckFoldableChainNode,
/*376381*/                OPC_RecordChild1, // #2 = $src2
/*376382*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*376384*/                OPC_CheckPredicate, 9, // Predicate_load
/*376386*/                OPC_MoveParent,
/*376387*/                OPC_RecordChild1, // #3 = $src1
/*376388*/                OPC_MoveParent,
/*376389*/                OPC_RecordChild2, // #4 = $src0
/*376390*/                OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->376413
/*376393*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*376395*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*376398*/                  OPC_EmitMergeInputChains1_1,
/*376399*/                  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>>, VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                            // Dst: (VADDPSZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*376413*/                /*SwitchType*/ 20, MVT::v4f64,// ->376435
/*376415*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*376417*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*376420*/                  OPC_EmitMergeInputChains1_1,
/*376421*/                  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>>, VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                            // Dst: (VADDPDZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*376435*/                0, // EndSwitchType
/*376436*/              /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->376503
/*376439*/                OPC_RecordMemRef,
/*376440*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*376441*/                OPC_CheckFoldableChainNode,
/*376442*/                OPC_RecordChild1, // #2 = $src2
/*376443*/                OPC_Scope, 28, /*->376473*/ // 2 children in Scope
/*376445*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*376447*/                  OPC_MoveParent,
/*376448*/                  OPC_RecordChild1, // #3 = $src1
/*376449*/                  OPC_MoveParent,
/*376450*/                  OPC_RecordChild2, // #4 = $src0
/*376451*/                  OPC_CheckType, MVT::v4f32,
/*376453*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*376455*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*376458*/                  OPC_EmitMergeInputChains1_1,
/*376459*/                  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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                            // Dst: (VADDPSZ128rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*376473*/                /*Scope*/ 28, /*->376502*/
/*376474*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*376476*/                  OPC_MoveParent,
/*376477*/                  OPC_RecordChild1, // #3 = $src1
/*376478*/                  OPC_MoveParent,
/*376479*/                  OPC_RecordChild2, // #4 = $src0
/*376480*/                  OPC_CheckType, MVT::v4f64,
/*376482*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*376484*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*376487*/                  OPC_EmitMergeInputChains1_1,
/*376488*/                  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] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                            // Dst: (VADDPDZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*376502*/                0, /*End of Scope*/
/*376503*/              0, // EndSwitchOpcode
/*376504*/            0, /*End of Scope*/
/*376505*/          /*SwitchOpcode*/ 36|128,2/*292*/, TARGET_VAL(ISD::STRICT_FMUL),// ->376801
/*376509*/            OPC_RecordNode, // #1 = 'strict_fmul' chained node
/*376510*/            OPC_CheckFoldableChainNode,
/*376511*/            OPC_Scope, 13|128,1/*141*/, /*->376655*/ // 2 children in Scope
/*376514*/              OPC_RecordChild1, // #2 = $src1
/*376515*/              OPC_MoveChild2,
/*376516*/              OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->376583
/*376520*/                OPC_RecordMemRef,
/*376521*/                OPC_RecordNode, // #3 = 'ld' chained node
/*376522*/                OPC_CheckFoldableChainNode,
/*376523*/                OPC_RecordChild1, // #4 = $src2
/*376524*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*376526*/                OPC_CheckPredicate, 9, // Predicate_load
/*376528*/                OPC_MoveParent,
/*376529*/                OPC_MoveParent,
/*376530*/                OPC_RecordChild2, // #5 = $src0
/*376531*/                OPC_SwitchType /*2 cases */, 23, MVT::v4f32,// ->376557
/*376534*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*376536*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*376539*/                  OPC_EmitMergeInputChains, 2, 1, 3, 
/*376543*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (strict_fmul:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                            // Dst: (VMULPSZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*376557*/                /*SwitchType*/ 23, MVT::v4f64,// ->376582
/*376559*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*376561*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*376564*/                  OPC_EmitMergeInputChains, 2, 1, 3, 
/*376568*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (strict_fmul:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                            // Dst: (VMULPDZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*376582*/                0, // EndSwitchType
/*376583*/              /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->376654
/*376586*/                OPC_RecordMemRef,
/*376587*/                OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*376588*/                OPC_CheckFoldableChainNode,
/*376589*/                OPC_RecordChild1, // #4 = $src2
/*376590*/                OPC_Scope, 30, /*->376622*/ // 2 children in Scope
/*376592*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*376594*/                  OPC_MoveParent,
/*376595*/                  OPC_MoveParent,
/*376596*/                  OPC_RecordChild2, // #5 = $src0
/*376597*/                  OPC_CheckType, MVT::v4f32,
/*376599*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*376601*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*376604*/                  OPC_EmitMergeInputChains, 2, 1, 3, 
/*376608*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (strict_fmul:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                            // Dst: (VMULPSZ128rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*376622*/                /*Scope*/ 30, /*->376653*/
/*376623*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*376625*/                  OPC_MoveParent,
/*376626*/                  OPC_MoveParent,
/*376627*/                  OPC_RecordChild2, // #5 = $src0
/*376628*/                  OPC_CheckType, MVT::v4f64,
/*376630*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*376632*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*376635*/                  OPC_EmitMergeInputChains, 2, 1, 3, 
/*376639*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (strict_fmul:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                            // Dst: (VMULPDZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*376653*/                0, /*End of Scope*/
/*376654*/              0, // EndSwitchOpcode
/*376655*/            /*Scope*/ 15|128,1/*143*/, /*->376800*/
/*376657*/              OPC_MoveChild1,
/*376658*/              OPC_SwitchOpcode /*2 cases */, 64, TARGET_VAL(ISD::LOAD),// ->376726
/*376662*/                OPC_RecordMemRef,
/*376663*/                OPC_RecordNode, // #2 = 'ld' chained node
/*376664*/                OPC_CheckFoldableChainNode,
/*376665*/                OPC_RecordChild1, // #3 = $src2
/*376666*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*376668*/                OPC_CheckPredicate, 9, // Predicate_load
/*376670*/                OPC_MoveParent,
/*376671*/                OPC_RecordChild2, // #4 = $src1
/*376672*/                OPC_MoveParent,
/*376673*/                OPC_RecordChild2, // #5 = $src0
/*376674*/                OPC_SwitchType /*2 cases */, 23, MVT::v4f32,// ->376700
/*376677*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*376679*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*376682*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*376686*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 5, 0, 4, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (strict_fmul:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                            // Dst: (VMULPSZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*376700*/                /*SwitchType*/ 23, MVT::v4f64,// ->376725
/*376702*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*376704*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*376707*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*376711*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 5, 0, 4, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (strict_fmul:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                            // Dst: (VMULPDZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*376725*/                0, // EndSwitchType
/*376726*/              /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->376799
/*376729*/                OPC_RecordMemRef,
/*376730*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*376731*/                OPC_CheckFoldableChainNode,
/*376732*/                OPC_RecordChild1, // #3 = $src2
/*376733*/                OPC_Scope, 31, /*->376766*/ // 2 children in Scope
/*376735*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*376737*/                  OPC_MoveParent,
/*376738*/                  OPC_RecordChild2, // #4 = $src1
/*376739*/                  OPC_MoveParent,
/*376740*/                  OPC_RecordChild2, // #5 = $src0
/*376741*/                  OPC_CheckType, MVT::v4f32,
/*376743*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*376745*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*376748*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*376752*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 5, 0, 4, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (strict_fmul:{ *:[v4f32] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                            // Dst: (VMULPSZ128rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*376766*/                /*Scope*/ 31, /*->376798*/
/*376767*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*376769*/                  OPC_MoveParent,
/*376770*/                  OPC_RecordChild2, // #4 = $src1
/*376771*/                  OPC_MoveParent,
/*376772*/                  OPC_RecordChild2, // #5 = $src0
/*376773*/                  OPC_CheckType, MVT::v4f64,
/*376775*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*376777*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*376780*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*376784*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 5, 0, 4, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (strict_fmul:{ *:[v4f64] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                            // Dst: (VMULPDZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*376798*/                0, /*End of Scope*/
/*376799*/              0, // EndSwitchOpcode
/*376800*/            0, /*End of Scope*/
/*376801*/          /*SwitchOpcode*/ 10|128,2/*266*/, TARGET_VAL(ISD::FMUL),// ->377071
/*376805*/            OPC_Scope, 1|128,1/*129*/, /*->376937*/ // 2 children in Scope
/*376808*/              OPC_RecordChild0, // #1 = $src1
/*376809*/              OPC_MoveChild1,
/*376810*/              OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->376871
/*376814*/                OPC_RecordMemRef,
/*376815*/                OPC_RecordNode, // #2 = 'ld' chained node
/*376816*/                OPC_CheckFoldableChainNode,
/*376817*/                OPC_RecordChild1, // #3 = $src2
/*376818*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*376820*/                OPC_CheckPredicate, 9, // Predicate_load
/*376822*/                OPC_MoveParent,
/*376823*/                OPC_MoveParent,
/*376824*/                OPC_RecordChild2, // #4 = $src0
/*376825*/                OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->376848
/*376828*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*376830*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*376833*/                  OPC_EmitMergeInputChains1_2,
/*376834*/                  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>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                            // Dst: (VMULPSZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*376848*/                /*SwitchType*/ 20, MVT::v4f64,// ->376870
/*376850*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*376852*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*376855*/                  OPC_EmitMergeInputChains1_2,
/*376856*/                  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>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                            // Dst: (VMULPDZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*376870*/                0, // EndSwitchType
/*376871*/              /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->376936
/*376874*/                OPC_RecordMemRef,
/*376875*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*376876*/                OPC_CheckFoldableChainNode,
/*376877*/                OPC_RecordChild1, // #3 = $src2
/*376878*/                OPC_Scope, 27, /*->376907*/ // 2 children in Scope
/*376880*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*376882*/                  OPC_MoveParent,
/*376883*/                  OPC_MoveParent,
/*376884*/                  OPC_RecordChild2, // #4 = $src0
/*376885*/                  OPC_CheckType, MVT::v4f32,
/*376887*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*376889*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*376892*/                  OPC_EmitMergeInputChains1_2,
/*376893*/                  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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                            // Dst: (VMULPSZ128rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*376907*/                /*Scope*/ 27, /*->376935*/
/*376908*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*376910*/                  OPC_MoveParent,
/*376911*/                  OPC_MoveParent,
/*376912*/                  OPC_RecordChild2, // #4 = $src0
/*376913*/                  OPC_CheckType, MVT::v4f64,
/*376915*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*376917*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*376920*/                  OPC_EmitMergeInputChains1_2,
/*376921*/                  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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                            // Dst: (VMULPDZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*376935*/                0, /*End of Scope*/
/*376936*/              0, // EndSwitchOpcode
/*376937*/            /*Scope*/ 3|128,1/*131*/, /*->377070*/
/*376939*/              OPC_MoveChild0,
/*376940*/              OPC_SwitchOpcode /*2 cases */, 58, TARGET_VAL(ISD::LOAD),// ->377002
/*376944*/                OPC_RecordMemRef,
/*376945*/                OPC_RecordNode, // #1 = 'ld' chained node
/*376946*/                OPC_CheckFoldableChainNode,
/*376947*/                OPC_RecordChild1, // #2 = $src2
/*376948*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*376950*/                OPC_CheckPredicate, 9, // Predicate_load
/*376952*/                OPC_MoveParent,
/*376953*/                OPC_RecordChild1, // #3 = $src1
/*376954*/                OPC_MoveParent,
/*376955*/                OPC_RecordChild2, // #4 = $src0
/*376956*/                OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->376979
/*376959*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*376961*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*376964*/                  OPC_EmitMergeInputChains1_1,
/*376965*/                  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>>, VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                            // Dst: (VMULPSZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*376979*/                /*SwitchType*/ 20, MVT::v4f64,// ->377001
/*376981*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*376983*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*376986*/                  OPC_EmitMergeInputChains1_1,
/*376987*/                  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>>, VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                            // Dst: (VMULPDZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*377001*/                0, // EndSwitchType
/*377002*/              /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->377069
/*377005*/                OPC_RecordMemRef,
/*377006*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*377007*/                OPC_CheckFoldableChainNode,
/*377008*/                OPC_RecordChild1, // #2 = $src2
/*377009*/                OPC_Scope, 28, /*->377039*/ // 2 children in Scope
/*377011*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*377013*/                  OPC_MoveParent,
/*377014*/                  OPC_RecordChild1, // #3 = $src1
/*377015*/                  OPC_MoveParent,
/*377016*/                  OPC_RecordChild2, // #4 = $src0
/*377017*/                  OPC_CheckType, MVT::v4f32,
/*377019*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*377021*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*377024*/                  OPC_EmitMergeInputChains1_1,
/*377025*/                  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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                            // Dst: (VMULPSZ128rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*377039*/                /*Scope*/ 28, /*->377068*/
/*377040*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*377042*/                  OPC_MoveParent,
/*377043*/                  OPC_RecordChild1, // #3 = $src1
/*377044*/                  OPC_MoveParent,
/*377045*/                  OPC_RecordChild2, // #4 = $src0
/*377046*/                  OPC_CheckType, MVT::v4f64,
/*377048*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*377050*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*377053*/                  OPC_EmitMergeInputChains1_1,
/*377054*/                  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] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                            // Dst: (VMULPDZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*377068*/                0, /*End of Scope*/
/*377069*/              0, // EndSwitchOpcode
/*377070*/            0, /*End of Scope*/
/*377071*/          /*SwitchOpcode*/ 15|128,1/*143*/, TARGET_VAL(ISD::STRICT_FSUB),// ->377218
/*377075*/            OPC_RecordNode, // #1 = 'strict_fsub' chained node
/*377076*/            OPC_CheckFoldableChainNode,
/*377077*/            OPC_RecordChild1, // #2 = $src1
/*377078*/            OPC_MoveChild2,
/*377079*/            OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->377146
/*377083*/              OPC_RecordMemRef,
/*377084*/              OPC_RecordNode, // #3 = 'ld' chained node
/*377085*/              OPC_CheckFoldableChainNode,
/*377086*/              OPC_RecordChild1, // #4 = $src2
/*377087*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*377089*/              OPC_CheckPredicate, 9, // Predicate_load
/*377091*/              OPC_MoveParent,
/*377092*/              OPC_MoveParent,
/*377093*/              OPC_RecordChild2, // #5 = $src0
/*377094*/              OPC_SwitchType /*2 cases */, 23, MVT::v4f32,// ->377120
/*377097*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*377099*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*377102*/                OPC_EmitMergeInputChains, 2, 1, 3, 
/*377106*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (strict_fsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                          // Dst: (VSUBPSZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*377120*/              /*SwitchType*/ 23, MVT::v4f64,// ->377145
/*377122*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*377124*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*377127*/                OPC_EmitMergeInputChains, 2, 1, 3, 
/*377131*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (strict_fsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                          // Dst: (VSUBPDZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*377145*/              0, // EndSwitchType
/*377146*/            /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->377217
/*377149*/              OPC_RecordMemRef,
/*377150*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*377151*/              OPC_CheckFoldableChainNode,
/*377152*/              OPC_RecordChild1, // #4 = $src2
/*377153*/              OPC_Scope, 30, /*->377185*/ // 2 children in Scope
/*377155*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*377157*/                OPC_MoveParent,
/*377158*/                OPC_MoveParent,
/*377159*/                OPC_RecordChild2, // #5 = $src0
/*377160*/                OPC_CheckType, MVT::v4f32,
/*377162*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*377164*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*377167*/                OPC_EmitMergeInputChains, 2, 1, 3, 
/*377171*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (strict_fsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                          // Dst: (VSUBPSZ128rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*377185*/              /*Scope*/ 30, /*->377216*/
/*377186*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*377188*/                OPC_MoveParent,
/*377189*/                OPC_MoveParent,
/*377190*/                OPC_RecordChild2, // #5 = $src0
/*377191*/                OPC_CheckType, MVT::v4f64,
/*377193*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*377195*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*377198*/                OPC_EmitMergeInputChains, 2, 1, 3, 
/*377202*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (strict_fsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                          // Dst: (VSUBPDZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*377216*/              0, /*End of Scope*/
/*377217*/            0, // EndSwitchOpcode
/*377218*/          /*SwitchOpcode*/ 1|128,1/*129*/, TARGET_VAL(ISD::FSUB),// ->377351
/*377222*/            OPC_RecordChild0, // #1 = $src1
/*377223*/            OPC_MoveChild1,
/*377224*/            OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->377285
/*377228*/              OPC_RecordMemRef,
/*377229*/              OPC_RecordNode, // #2 = 'ld' chained node
/*377230*/              OPC_CheckFoldableChainNode,
/*377231*/              OPC_RecordChild1, // #3 = $src2
/*377232*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*377234*/              OPC_CheckPredicate, 9, // Predicate_load
/*377236*/              OPC_MoveParent,
/*377237*/              OPC_MoveParent,
/*377238*/              OPC_RecordChild2, // #4 = $src0
/*377239*/              OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->377262
/*377242*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*377244*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*377247*/                OPC_EmitMergeInputChains1_2,
/*377248*/                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>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                          // Dst: (VSUBPSZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*377262*/              /*SwitchType*/ 20, MVT::v4f64,// ->377284
/*377264*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*377266*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*377269*/                OPC_EmitMergeInputChains1_2,
/*377270*/                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>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                          // Dst: (VSUBPDZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*377284*/              0, // EndSwitchType
/*377285*/            /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->377350
/*377288*/              OPC_RecordMemRef,
/*377289*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*377290*/              OPC_CheckFoldableChainNode,
/*377291*/              OPC_RecordChild1, // #3 = $src2
/*377292*/              OPC_Scope, 27, /*->377321*/ // 2 children in Scope
/*377294*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*377296*/                OPC_MoveParent,
/*377297*/                OPC_MoveParent,
/*377298*/                OPC_RecordChild2, // #4 = $src0
/*377299*/                OPC_CheckType, MVT::v4f32,
/*377301*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*377303*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*377306*/                OPC_EmitMergeInputChains1_2,
/*377307*/                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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                          // Dst: (VSUBPSZ128rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*377321*/              /*Scope*/ 27, /*->377349*/
/*377322*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*377324*/                OPC_MoveParent,
/*377325*/                OPC_MoveParent,
/*377326*/                OPC_RecordChild2, // #4 = $src0
/*377327*/                OPC_CheckType, MVT::v4f64,
/*377329*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*377331*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*377334*/                OPC_EmitMergeInputChains1_2,
/*377335*/                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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                          // Dst: (VSUBPDZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*377349*/              0, /*End of Scope*/
/*377350*/            0, // EndSwitchOpcode
/*377351*/          /*SwitchOpcode*/ 15|128,1/*143*/, TARGET_VAL(ISD::STRICT_FDIV),// ->377498
/*377355*/            OPC_RecordNode, // #1 = 'strict_fdiv' chained node
/*377356*/            OPC_CheckFoldableChainNode,
/*377357*/            OPC_RecordChild1, // #2 = $src1
/*377358*/            OPC_MoveChild2,
/*377359*/            OPC_SwitchOpcode /*2 cases */, 63, TARGET_VAL(ISD::LOAD),// ->377426
/*377363*/              OPC_RecordMemRef,
/*377364*/              OPC_RecordNode, // #3 = 'ld' chained node
/*377365*/              OPC_CheckFoldableChainNode,
/*377366*/              OPC_RecordChild1, // #4 = $src2
/*377367*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*377369*/              OPC_CheckPredicate, 9, // Predicate_load
/*377371*/              OPC_MoveParent,
/*377372*/              OPC_MoveParent,
/*377373*/              OPC_RecordChild2, // #5 = $src0
/*377374*/              OPC_SwitchType /*2 cases */, 23, MVT::v4f32,// ->377400
/*377377*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*377379*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*377382*/                OPC_EmitMergeInputChains, 2, 1, 3, 
/*377386*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (strict_fdiv:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                          // Dst: (VDIVPSZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*377400*/              /*SwitchType*/ 23, MVT::v4f64,// ->377425
/*377402*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*377404*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*377407*/                OPC_EmitMergeInputChains, 2, 1, 3, 
/*377411*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (strict_fdiv:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                          // Dst: (VDIVPDZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*377425*/              0, // EndSwitchType
/*377426*/            /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->377497
/*377429*/              OPC_RecordMemRef,
/*377430*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*377431*/              OPC_CheckFoldableChainNode,
/*377432*/              OPC_RecordChild1, // #4 = $src2
/*377433*/              OPC_Scope, 30, /*->377465*/ // 2 children in Scope
/*377435*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*377437*/                OPC_MoveParent,
/*377438*/                OPC_MoveParent,
/*377439*/                OPC_RecordChild2, // #5 = $src0
/*377440*/                OPC_CheckType, MVT::v4f32,
/*377442*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*377444*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*377447*/                OPC_EmitMergeInputChains, 2, 1, 3, 
/*377451*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (strict_fdiv:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                          // Dst: (VDIVPSZ128rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*377465*/              /*Scope*/ 30, /*->377496*/
/*377466*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*377468*/                OPC_MoveParent,
/*377469*/                OPC_MoveParent,
/*377470*/                OPC_RecordChild2, // #5 = $src0
/*377471*/                OPC_CheckType, MVT::v4f64,
/*377473*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*377475*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*377478*/                OPC_EmitMergeInputChains, 2, 1, 3, 
/*377482*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (strict_fdiv:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                          // Dst: (VDIVPDZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*377496*/              0, /*End of Scope*/
/*377497*/            0, // EndSwitchOpcode
/*377498*/          /*SwitchOpcode*/ 1|128,1/*129*/, TARGET_VAL(ISD::FDIV),// ->377631
/*377502*/            OPC_RecordChild0, // #1 = $src1
/*377503*/            OPC_MoveChild1,
/*377504*/            OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->377565
/*377508*/              OPC_RecordMemRef,
/*377509*/              OPC_RecordNode, // #2 = 'ld' chained node
/*377510*/              OPC_CheckFoldableChainNode,
/*377511*/              OPC_RecordChild1, // #3 = $src2
/*377512*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*377514*/              OPC_CheckPredicate, 9, // Predicate_load
/*377516*/              OPC_MoveParent,
/*377517*/              OPC_MoveParent,
/*377518*/              OPC_RecordChild2, // #4 = $src0
/*377519*/              OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->377542
/*377522*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*377524*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*377527*/                OPC_EmitMergeInputChains1_2,
/*377528*/                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>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                          // Dst: (VDIVPSZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*377542*/              /*SwitchType*/ 20, MVT::v4f64,// ->377564
/*377544*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*377546*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*377549*/                OPC_EmitMergeInputChains1_2,
/*377550*/                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>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                          // Dst: (VDIVPDZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*377564*/              0, // EndSwitchType
/*377565*/            /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->377630
/*377568*/              OPC_RecordMemRef,
/*377569*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*377570*/              OPC_CheckFoldableChainNode,
/*377571*/              OPC_RecordChild1, // #3 = $src2
/*377572*/              OPC_Scope, 27, /*->377601*/ // 2 children in Scope
/*377574*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*377576*/                OPC_MoveParent,
/*377577*/                OPC_MoveParent,
/*377578*/                OPC_RecordChild2, // #4 = $src0
/*377579*/                OPC_CheckType, MVT::v4f32,
/*377581*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*377583*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*377586*/                OPC_EmitMergeInputChains1_2,
/*377587*/                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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                          // Dst: (VDIVPSZ128rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*377601*/              /*Scope*/ 27, /*->377629*/
/*377602*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*377604*/                OPC_MoveParent,
/*377605*/                OPC_MoveParent,
/*377606*/                OPC_RecordChild2, // #4 = $src0
/*377607*/                OPC_CheckType, MVT::v4f64,
/*377609*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*377611*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*377614*/                OPC_EmitMergeInputChains1_2,
/*377615*/                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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                          // Dst: (VDIVPDZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*377629*/              0, /*End of Scope*/
/*377630*/            0, // EndSwitchOpcode
/*377631*/          /*SwitchOpcode*/ 1|128,1/*129*/, TARGET_VAL(X86ISD::FMIN),// ->377764
/*377635*/            OPC_RecordChild0, // #1 = $src1
/*377636*/            OPC_MoveChild1,
/*377637*/            OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->377698
/*377641*/              OPC_RecordMemRef,
/*377642*/              OPC_RecordNode, // #2 = 'ld' chained node
/*377643*/              OPC_CheckFoldableChainNode,
/*377644*/              OPC_RecordChild1, // #3 = $src2
/*377645*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*377647*/              OPC_CheckPredicate, 9, // Predicate_load
/*377649*/              OPC_MoveParent,
/*377650*/              OPC_MoveParent,
/*377651*/              OPC_RecordChild2, // #4 = $src0
/*377652*/              OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->377675
/*377655*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*377657*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*377660*/                OPC_EmitMergeInputChains1_2,
/*377661*/                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>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                          // Dst: (VMINPSZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*377675*/              /*SwitchType*/ 20, MVT::v4f64,// ->377697
/*377677*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*377679*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*377682*/                OPC_EmitMergeInputChains1_2,
/*377683*/                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>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                          // Dst: (VMINPDZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*377697*/              0, // EndSwitchType
/*377698*/            /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->377763
/*377701*/              OPC_RecordMemRef,
/*377702*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*377703*/              OPC_CheckFoldableChainNode,
/*377704*/              OPC_RecordChild1, // #3 = $src2
/*377705*/              OPC_Scope, 27, /*->377734*/ // 2 children in Scope
/*377707*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*377709*/                OPC_MoveParent,
/*377710*/                OPC_MoveParent,
/*377711*/                OPC_RecordChild2, // #4 = $src0
/*377712*/                OPC_CheckType, MVT::v4f32,
/*377714*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*377716*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*377719*/                OPC_EmitMergeInputChains1_2,
/*377720*/                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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                          // Dst: (VMINPSZ128rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*377734*/              /*Scope*/ 27, /*->377762*/
/*377735*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*377737*/                OPC_MoveParent,
/*377738*/                OPC_MoveParent,
/*377739*/                OPC_RecordChild2, // #4 = $src0
/*377740*/                OPC_CheckType, MVT::v4f64,
/*377742*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*377744*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*377747*/                OPC_EmitMergeInputChains1_2,
/*377748*/                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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                          // Dst: (VMINPDZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*377762*/              0, /*End of Scope*/
/*377763*/            0, // EndSwitchOpcode
/*377764*/          /*SwitchOpcode*/ 1|128,1/*129*/, TARGET_VAL(X86ISD::FMAX),// ->377897
/*377768*/            OPC_RecordChild0, // #1 = $src1
/*377769*/            OPC_MoveChild1,
/*377770*/            OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->377831
/*377774*/              OPC_RecordMemRef,
/*377775*/              OPC_RecordNode, // #2 = 'ld' chained node
/*377776*/              OPC_CheckFoldableChainNode,
/*377777*/              OPC_RecordChild1, // #3 = $src2
/*377778*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*377780*/              OPC_CheckPredicate, 9, // Predicate_load
/*377782*/              OPC_MoveParent,
/*377783*/              OPC_MoveParent,
/*377784*/              OPC_RecordChild2, // #4 = $src0
/*377785*/              OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->377808
/*377788*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*377790*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*377793*/                OPC_EmitMergeInputChains1_2,
/*377794*/                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>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                          // Dst: (VMAXPSZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*377808*/              /*SwitchType*/ 20, MVT::v4f64,// ->377830
/*377810*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*377812*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*377815*/                OPC_EmitMergeInputChains1_2,
/*377816*/                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>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                          // Dst: (VMAXPDZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*377830*/              0, // EndSwitchType
/*377831*/            /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->377896
/*377834*/              OPC_RecordMemRef,
/*377835*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*377836*/              OPC_CheckFoldableChainNode,
/*377837*/              OPC_RecordChild1, // #3 = $src2
/*377838*/              OPC_Scope, 27, /*->377867*/ // 2 children in Scope
/*377840*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*377842*/                OPC_MoveParent,
/*377843*/                OPC_MoveParent,
/*377844*/                OPC_RecordChild2, // #4 = $src0
/*377845*/                OPC_CheckType, MVT::v4f32,
/*377847*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*377849*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*377852*/                OPC_EmitMergeInputChains1_2,
/*377853*/                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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                          // Dst: (VMAXPSZ128rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*377867*/              /*Scope*/ 27, /*->377895*/
/*377868*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*377870*/                OPC_MoveParent,
/*377871*/                OPC_MoveParent,
/*377872*/                OPC_RecordChild2, // #4 = $src0
/*377873*/                OPC_CheckType, MVT::v4f64,
/*377875*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*377877*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*377880*/                OPC_EmitMergeInputChains1_2,
/*377881*/                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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                          // Dst: (VMAXPDZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*377895*/              0, /*End of Scope*/
/*377896*/            0, // EndSwitchOpcode
/*377897*/          /*SwitchOpcode*/ 10|128,2/*266*/, TARGET_VAL(X86ISD::FMINC),// ->378167
/*377901*/            OPC_Scope, 1|128,1/*129*/, /*->378033*/ // 2 children in Scope
/*377904*/              OPC_RecordChild0, // #1 = $src1
/*377905*/              OPC_MoveChild1,
/*377906*/              OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->377967
/*377910*/                OPC_RecordMemRef,
/*377911*/                OPC_RecordNode, // #2 = 'ld' chained node
/*377912*/                OPC_CheckFoldableChainNode,
/*377913*/                OPC_RecordChild1, // #3 = $src2
/*377914*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*377916*/                OPC_CheckPredicate, 9, // Predicate_load
/*377918*/                OPC_MoveParent,
/*377919*/                OPC_MoveParent,
/*377920*/                OPC_RecordChild2, // #4 = $src0
/*377921*/                OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->377944
/*377924*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*377926*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*377929*/                  OPC_EmitMergeInputChains1_2,
/*377930*/                  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>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                            // Dst: (VMINCPSZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*377944*/                /*SwitchType*/ 20, MVT::v4f64,// ->377966
/*377946*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*377948*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*377951*/                  OPC_EmitMergeInputChains1_2,
/*377952*/                  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>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                            // Dst: (VMINCPDZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*377966*/                0, // EndSwitchType
/*377967*/              /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->378032
/*377970*/                OPC_RecordMemRef,
/*377971*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*377972*/                OPC_CheckFoldableChainNode,
/*377973*/                OPC_RecordChild1, // #3 = $src2
/*377974*/                OPC_Scope, 27, /*->378003*/ // 2 children in Scope
/*377976*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*377978*/                  OPC_MoveParent,
/*377979*/                  OPC_MoveParent,
/*377980*/                  OPC_RecordChild2, // #4 = $src0
/*377981*/                  OPC_CheckType, MVT::v4f32,
/*377983*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*377985*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*377988*/                  OPC_EmitMergeInputChains1_2,
/*377989*/                  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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                            // Dst: (VMINCPSZ128rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*378003*/                /*Scope*/ 27, /*->378031*/
/*378004*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*378006*/                  OPC_MoveParent,
/*378007*/                  OPC_MoveParent,
/*378008*/                  OPC_RecordChild2, // #4 = $src0
/*378009*/                  OPC_CheckType, MVT::v4f64,
/*378011*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*378013*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*378016*/                  OPC_EmitMergeInputChains1_2,
/*378017*/                  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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                            // Dst: (VMINCPDZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*378031*/                0, /*End of Scope*/
/*378032*/              0, // EndSwitchOpcode
/*378033*/            /*Scope*/ 3|128,1/*131*/, /*->378166*/
/*378035*/              OPC_MoveChild0,
/*378036*/              OPC_SwitchOpcode /*2 cases */, 58, TARGET_VAL(ISD::LOAD),// ->378098
/*378040*/                OPC_RecordMemRef,
/*378041*/                OPC_RecordNode, // #1 = 'ld' chained node
/*378042*/                OPC_CheckFoldableChainNode,
/*378043*/                OPC_RecordChild1, // #2 = $src2
/*378044*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*378046*/                OPC_CheckPredicate, 9, // Predicate_load
/*378048*/                OPC_MoveParent,
/*378049*/                OPC_RecordChild1, // #3 = $src1
/*378050*/                OPC_MoveParent,
/*378051*/                OPC_RecordChild2, // #4 = $src0
/*378052*/                OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->378075
/*378055*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*378057*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*378060*/                  OPC_EmitMergeInputChains1_1,
/*378061*/                  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>>, VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                            // Dst: (VMINCPSZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*378075*/                /*SwitchType*/ 20, MVT::v4f64,// ->378097
/*378077*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*378079*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*378082*/                  OPC_EmitMergeInputChains1_1,
/*378083*/                  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>>, VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                            // Dst: (VMINCPDZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*378097*/                0, // EndSwitchType
/*378098*/              /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->378165
/*378101*/                OPC_RecordMemRef,
/*378102*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*378103*/                OPC_CheckFoldableChainNode,
/*378104*/                OPC_RecordChild1, // #2 = $src2
/*378105*/                OPC_Scope, 28, /*->378135*/ // 2 children in Scope
/*378107*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*378109*/                  OPC_MoveParent,
/*378110*/                  OPC_RecordChild1, // #3 = $src1
/*378111*/                  OPC_MoveParent,
/*378112*/                  OPC_RecordChild2, // #4 = $src0
/*378113*/                  OPC_CheckType, MVT::v4f32,
/*378115*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*378117*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*378120*/                  OPC_EmitMergeInputChains1_1,
/*378121*/                  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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                            // Dst: (VMINCPSZ128rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*378135*/                /*Scope*/ 28, /*->378164*/
/*378136*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*378138*/                  OPC_MoveParent,
/*378139*/                  OPC_RecordChild1, // #3 = $src1
/*378140*/                  OPC_MoveParent,
/*378141*/                  OPC_RecordChild2, // #4 = $src0
/*378142*/                  OPC_CheckType, MVT::v4f64,
/*378144*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*378146*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*378149*/                  OPC_EmitMergeInputChains1_1,
/*378150*/                  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] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                            // Dst: (VMINCPDZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*378164*/                0, /*End of Scope*/
/*378165*/              0, // EndSwitchOpcode
/*378166*/            0, /*End of Scope*/
/*378167*/          /*SwitchOpcode*/ 10|128,2/*266*/, TARGET_VAL(X86ISD::FMAXC),// ->378437
/*378171*/            OPC_Scope, 1|128,1/*129*/, /*->378303*/ // 2 children in Scope
/*378174*/              OPC_RecordChild0, // #1 = $src1
/*378175*/              OPC_MoveChild1,
/*378176*/              OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->378237
/*378180*/                OPC_RecordMemRef,
/*378181*/                OPC_RecordNode, // #2 = 'ld' chained node
/*378182*/                OPC_CheckFoldableChainNode,
/*378183*/                OPC_RecordChild1, // #3 = $src2
/*378184*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*378186*/                OPC_CheckPredicate, 9, // Predicate_load
/*378188*/                OPC_MoveParent,
/*378189*/                OPC_MoveParent,
/*378190*/                OPC_RecordChild2, // #4 = $src0
/*378191*/                OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->378214
/*378194*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*378196*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*378199*/                  OPC_EmitMergeInputChains1_2,
/*378200*/                  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>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                            // Dst: (VMAXCPSZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*378214*/                /*SwitchType*/ 20, MVT::v4f64,// ->378236
/*378216*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*378218*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*378221*/                  OPC_EmitMergeInputChains1_2,
/*378222*/                  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>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                            // Dst: (VMAXCPDZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*378236*/                0, // EndSwitchType
/*378237*/              /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->378302
/*378240*/                OPC_RecordMemRef,
/*378241*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*378242*/                OPC_CheckFoldableChainNode,
/*378243*/                OPC_RecordChild1, // #3 = $src2
/*378244*/                OPC_Scope, 27, /*->378273*/ // 2 children in Scope
/*378246*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*378248*/                  OPC_MoveParent,
/*378249*/                  OPC_MoveParent,
/*378250*/                  OPC_RecordChild2, // #4 = $src0
/*378251*/                  OPC_CheckType, MVT::v4f32,
/*378253*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*378255*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*378258*/                  OPC_EmitMergeInputChains1_2,
/*378259*/                  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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                            // Dst: (VMAXCPSZ128rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*378273*/                /*Scope*/ 27, /*->378301*/
/*378274*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*378276*/                  OPC_MoveParent,
/*378277*/                  OPC_MoveParent,
/*378278*/                  OPC_RecordChild2, // #4 = $src0
/*378279*/                  OPC_CheckType, MVT::v4f64,
/*378281*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*378283*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*378286*/                  OPC_EmitMergeInputChains1_2,
/*378287*/                  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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                            // Dst: (VMAXCPDZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*378301*/                0, /*End of Scope*/
/*378302*/              0, // EndSwitchOpcode
/*378303*/            /*Scope*/ 3|128,1/*131*/, /*->378436*/
/*378305*/              OPC_MoveChild0,
/*378306*/              OPC_SwitchOpcode /*2 cases */, 58, TARGET_VAL(ISD::LOAD),// ->378368
/*378310*/                OPC_RecordMemRef,
/*378311*/                OPC_RecordNode, // #1 = 'ld' chained node
/*378312*/                OPC_CheckFoldableChainNode,
/*378313*/                OPC_RecordChild1, // #2 = $src2
/*378314*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*378316*/                OPC_CheckPredicate, 9, // Predicate_load
/*378318*/                OPC_MoveParent,
/*378319*/                OPC_RecordChild1, // #3 = $src1
/*378320*/                OPC_MoveParent,
/*378321*/                OPC_RecordChild2, // #4 = $src0
/*378322*/                OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->378345
/*378325*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*378327*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*378330*/                  OPC_EmitMergeInputChains1_1,
/*378331*/                  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>>, VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                            // Dst: (VMAXCPSZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*378345*/                /*SwitchType*/ 20, MVT::v4f64,// ->378367
/*378347*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*378349*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*378352*/                  OPC_EmitMergeInputChains1_1,
/*378353*/                  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>>, VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                            // Dst: (VMAXCPDZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*378367*/                0, // EndSwitchType
/*378368*/              /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->378435
/*378371*/                OPC_RecordMemRef,
/*378372*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*378373*/                OPC_CheckFoldableChainNode,
/*378374*/                OPC_RecordChild1, // #2 = $src2
/*378375*/                OPC_Scope, 28, /*->378405*/ // 2 children in Scope
/*378377*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*378379*/                  OPC_MoveParent,
/*378380*/                  OPC_RecordChild1, // #3 = $src1
/*378381*/                  OPC_MoveParent,
/*378382*/                  OPC_RecordChild2, // #4 = $src0
/*378383*/                  OPC_CheckType, MVT::v4f32,
/*378385*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*378387*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*378390*/                  OPC_EmitMergeInputChains1_1,
/*378391*/                  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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                            // Dst: (VMAXCPSZ128rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*378405*/                /*Scope*/ 28, /*->378434*/
/*378406*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*378408*/                  OPC_MoveParent,
/*378409*/                  OPC_RecordChild1, // #3 = $src1
/*378410*/                  OPC_MoveParent,
/*378411*/                  OPC_RecordChild2, // #4 = $src0
/*378412*/                  OPC_CheckType, MVT::v4f64,
/*378414*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*378416*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*378419*/                  OPC_EmitMergeInputChains1_1,
/*378420*/                  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] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                            // Dst: (VMAXCPDZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*378434*/                0, /*End of Scope*/
/*378435*/              0, // EndSwitchOpcode
/*378436*/            0, /*End of Scope*/
/*378437*/          /*SwitchOpcode*/ 1|128,1/*129*/, TARGET_VAL(X86ISD::SCALEF),// ->378570
/*378441*/            OPC_RecordChild0, // #1 = $src1
/*378442*/            OPC_MoveChild1,
/*378443*/            OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->378504
/*378447*/              OPC_RecordMemRef,
/*378448*/              OPC_RecordNode, // #2 = 'ld' chained node
/*378449*/              OPC_CheckFoldableChainNode,
/*378450*/              OPC_RecordChild1, // #3 = $src2
/*378451*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*378453*/              OPC_CheckPredicate, 9, // Predicate_load
/*378455*/              OPC_MoveParent,
/*378456*/              OPC_MoveParent,
/*378457*/              OPC_RecordChild2, // #4 = $src0
/*378458*/              OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->378481
/*378461*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*378463*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*378466*/                OPC_EmitMergeInputChains1_2,
/*378467*/                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>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                          // Dst: (VSCALEFPSZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*378481*/              /*SwitchType*/ 20, MVT::v4f64,// ->378503
/*378483*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*378485*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*378488*/                OPC_EmitMergeInputChains1_2,
/*378489*/                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>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                          // Dst: (VSCALEFPDZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*378503*/              0, // EndSwitchType
/*378504*/            /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->378569
/*378507*/              OPC_RecordMemRef,
/*378508*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*378509*/              OPC_CheckFoldableChainNode,
/*378510*/              OPC_RecordChild1, // #3 = $src2
/*378511*/              OPC_Scope, 27, /*->378540*/ // 2 children in Scope
/*378513*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*378515*/                OPC_MoveParent,
/*378516*/                OPC_MoveParent,
/*378517*/                OPC_RecordChild2, // #4 = $src0
/*378518*/                OPC_CheckType, MVT::v4f32,
/*378520*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*378522*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*378525*/                OPC_EmitMergeInputChains1_2,
/*378526*/                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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                          // Dst: (VSCALEFPSZ128rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*378540*/              /*Scope*/ 27, /*->378568*/
/*378541*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*378543*/                OPC_MoveParent,
/*378544*/                OPC_MoveParent,
/*378545*/                OPC_RecordChild2, // #4 = $src0
/*378546*/                OPC_CheckType, MVT::v4f64,
/*378548*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*378550*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*378553*/                OPC_EmitMergeInputChains1_2,
/*378554*/                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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                          // Dst: (VSCALEFPDZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*378568*/              0, /*End of Scope*/
/*378569*/            0, // EndSwitchOpcode
/*378570*/          /*SwitchOpcode*/ 74, TARGET_VAL(X86ISD::VPERMV),// ->378647
/*378573*/            OPC_RecordChild0, // #1 = $src1
/*378574*/            OPC_MoveChild1,
/*378575*/            OPC_SwitchOpcode /*2 cases */, 33, TARGET_VAL(ISD::LOAD),// ->378612
/*378579*/              OPC_RecordMemRef,
/*378580*/              OPC_RecordNode, // #2 = 'ld' chained node
/*378581*/              OPC_CheckFoldableChainNode,
/*378582*/              OPC_RecordChild1, // #3 = $src2
/*378583*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*378585*/              OPC_CheckPredicate, 9, // Predicate_load
/*378587*/              OPC_MoveParent,
/*378588*/              OPC_MoveParent,
/*378589*/              OPC_RecordChild2, // #4 = $src0
/*378590*/              OPC_CheckType, MVT::v4f64,
/*378592*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*378594*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*378597*/              OPC_EmitMergeInputChains1_2,
/*378598*/              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>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                        // Dst: (VPERMPDZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*378612*/            /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->378646
/*378615*/              OPC_RecordMemRef,
/*378616*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*378617*/              OPC_CheckFoldableChainNode,
/*378618*/              OPC_RecordChild1, // #3 = $src2
/*378619*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*378621*/              OPC_MoveParent,
/*378622*/              OPC_MoveParent,
/*378623*/              OPC_RecordChild2, // #4 = $src0
/*378624*/              OPC_CheckType, MVT::v4f64,
/*378626*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*378628*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*378631*/              OPC_EmitMergeInputChains1_2,
/*378632*/              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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                        // Dst: (VPERMPDZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*378646*/            0, // EndSwitchOpcode
/*378647*/          /*SwitchOpcode*/ 1|128,1/*129*/, TARGET_VAL(X86ISD::VPERMILPV),// ->378780
/*378651*/            OPC_RecordChild0, // #1 = $src1
/*378652*/            OPC_MoveChild1,
/*378653*/            OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->378714
/*378657*/              OPC_RecordMemRef,
/*378658*/              OPC_RecordNode, // #2 = 'ld' chained node
/*378659*/              OPC_CheckFoldableChainNode,
/*378660*/              OPC_RecordChild1, // #3 = $src2
/*378661*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*378663*/              OPC_CheckPredicate, 9, // Predicate_load
/*378665*/              OPC_MoveParent,
/*378666*/              OPC_MoveParent,
/*378667*/              OPC_RecordChild2, // #4 = $src0
/*378668*/              OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->378691
/*378671*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*378673*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*378676*/                OPC_EmitMergeInputChains1_2,
/*378677*/                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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                          // Dst: (VPERMILPSZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*378691*/              /*SwitchType*/ 20, MVT::v4f64,// ->378713
/*378693*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*378695*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*378698*/                OPC_EmitMergeInputChains1_2,
/*378699*/                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>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                          // Dst: (VPERMILPDZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*378713*/              0, // EndSwitchType
/*378714*/            /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->378779
/*378717*/              OPC_RecordMemRef,
/*378718*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*378719*/              OPC_CheckFoldableChainNode,
/*378720*/              OPC_RecordChild1, // #3 = $src2
/*378721*/              OPC_Scope, 27, /*->378750*/ // 2 children in Scope
/*378723*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*378725*/                OPC_MoveParent,
/*378726*/                OPC_MoveParent,
/*378727*/                OPC_RecordChild2, // #4 = $src0
/*378728*/                OPC_CheckType, MVT::v4f32,
/*378730*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*378732*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*378735*/                OPC_EmitMergeInputChains1_2,
/*378736*/                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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                          // Dst: (VPERMILPSZ128rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*378750*/              /*Scope*/ 27, /*->378778*/
/*378751*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*378753*/                OPC_MoveParent,
/*378754*/                OPC_MoveParent,
/*378755*/                OPC_RecordChild2, // #4 = $src0
/*378756*/                OPC_CheckType, MVT::v4f64,
/*378758*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*378760*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*378763*/                OPC_EmitMergeInputChains1_2,
/*378764*/                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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                          // Dst: (VPERMILPDZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*378778*/              0, /*End of Scope*/
/*378779*/            0, // EndSwitchOpcode
/*378780*/          /*SwitchOpcode*/ 5|128,7/*901*/, TARGET_VAL(ISD::STRICT_FMA),// ->379685
/*378784*/            OPC_RecordNode, // #1 = 'X86strict_Fmadd' chained node
/*378785*/            OPC_CheckFoldableChainNode,
/*378786*/            OPC_Scope, 41|128,2/*297*/, /*->379086*/ // 5 children in Scope
/*378789*/              OPC_RecordChild1, // #2 = $src2
/*378790*/              OPC_Scope, 16|128,1/*144*/, /*->378937*/ // 2 children in Scope
/*378793*/                OPC_RecordChild2, // #3 = $src1
/*378794*/                OPC_MoveChild3,
/*378795*/                OPC_SwitchOpcode /*2 cases */, 64, TARGET_VAL(ISD::LOAD),// ->378863
/*378799*/                  OPC_RecordMemRef,
/*378800*/                  OPC_RecordNode, // #4 = 'ld' chained node
/*378801*/                  OPC_CheckFoldableChainNode,
/*378802*/                  OPC_RecordChild1, // #5 = $src3
/*378803*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*378805*/                  OPC_CheckPredicate, 9, // Predicate_load
/*378807*/                  OPC_MoveParent,
/*378808*/                  OPC_MoveParent,
/*378809*/                  OPC_CheckChild2Same, 3,
/*378811*/                  OPC_SwitchType /*2 cases */, 23, MVT::v4f32,// ->378837
/*378814*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*378816*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/5, // selectAddr:$src3 #6 #7 #8 #9 #10
/*378819*/                    OPC_EmitMergeInputChains, 2, 1, 4, 
/*378823*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f32, 8/*#Ops*/, 3, 0, 2, 6, 7, 8, 9, 10, 
                              // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_Fmadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                              // Dst: (VFMADD213PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*378837*/                  /*SwitchType*/ 23, MVT::v4f64,// ->378862
/*378839*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*378841*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/5, // selectAddr:$src3 #6 #7 #8 #9 #10
/*378844*/                    OPC_EmitMergeInputChains, 2, 1, 4, 
/*378848*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f64, 8/*#Ops*/, 3, 0, 2, 6, 7, 8, 9, 10, 
                              // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_Fmadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                              // Dst: (VFMADD213PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*378862*/                  0, // EndSwitchType
/*378863*/                /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->378936
/*378866*/                  OPC_RecordMemRef,
/*378867*/                  OPC_RecordNode, // #4 = 'X86VBroadcastld' chained node
/*378868*/                  OPC_CheckFoldableChainNode,
/*378869*/                  OPC_RecordChild1, // #5 = $src3
/*378870*/                  OPC_Scope, 31, /*->378903*/ // 2 children in Scope
/*378872*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*378874*/                    OPC_MoveParent,
/*378875*/                    OPC_MoveParent,
/*378876*/                    OPC_CheckChild2Same, 3,
/*378878*/                    OPC_CheckType, MVT::v4f32,
/*378880*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*378882*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/5, // selectAddr:$src3 #6 #7 #8 #9 #10
/*378885*/                    OPC_EmitMergeInputChains, 2, 1, 4, 
/*378889*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f32, 8/*#Ops*/, 3, 0, 2, 6, 7, 8, 9, 10, 
                              // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_Fmadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                              // Dst: (VFMADD213PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*378903*/                  /*Scope*/ 31, /*->378935*/
/*378904*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*378906*/                    OPC_MoveParent,
/*378907*/                    OPC_MoveParent,
/*378908*/                    OPC_CheckChild2Same, 3,
/*378910*/                    OPC_CheckType, MVT::v4f64,
/*378912*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*378914*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/5, // selectAddr:$src3 #6 #7 #8 #9 #10
/*378917*/                    OPC_EmitMergeInputChains, 2, 1, 4, 
/*378921*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f64, 8/*#Ops*/, 3, 0, 2, 6, 7, 8, 9, 10, 
                              // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_Fmadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                              // Dst: (VFMADD213PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*378935*/                  0, /*End of Scope*/
/*378936*/                0, // EndSwitchOpcode
/*378937*/              /*Scope*/ 18|128,1/*146*/, /*->379085*/
/*378939*/                OPC_MoveChild2,
/*378940*/                OPC_SwitchOpcode /*2 cases */, 65, TARGET_VAL(ISD::LOAD),// ->379009
/*378944*/                  OPC_RecordMemRef,
/*378945*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*378946*/                  OPC_CheckFoldableChainNode,
/*378947*/                  OPC_RecordChild1, // #4 = $src3
/*378948*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*378950*/                  OPC_CheckPredicate, 9, // Predicate_load
/*378952*/                  OPC_MoveParent,
/*378953*/                  OPC_RecordChild3, // #5 = $src1
/*378954*/                  OPC_MoveParent,
/*378955*/                  OPC_CheckChild2Same, 5,
/*378957*/                  OPC_SwitchType /*2 cases */, 23, MVT::v4f32,// ->378983
/*378960*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*378962*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*378965*/                    OPC_EmitMergeInputChains, 2, 1, 3, 
/*378969*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PSZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f32, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                              // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_Fmadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                              // Dst: (VFMADD231PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*378983*/                  /*SwitchType*/ 23, MVT::v4f64,// ->379008
/*378985*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*378987*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*378990*/                    OPC_EmitMergeInputChains, 2, 1, 3, 
/*378994*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PDZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f64, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                              // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_Fmadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                              // Dst: (VFMADD231PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*379008*/                  0, // EndSwitchType
/*379009*/                /*SwitchOpcode*/ 72, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->379084
/*379012*/                  OPC_RecordMemRef,
/*379013*/                  OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*379014*/                  OPC_CheckFoldableChainNode,
/*379015*/                  OPC_RecordChild1, // #4 = $src3
/*379016*/                  OPC_Scope, 32, /*->379050*/ // 2 children in Scope
/*379018*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*379020*/                    OPC_MoveParent,
/*379021*/                    OPC_RecordChild3, // #5 = $src1
/*379022*/                    OPC_MoveParent,
/*379023*/                    OPC_CheckChild2Same, 5,
/*379025*/                    OPC_CheckType, MVT::v4f32,
/*379027*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*379029*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*379032*/                    OPC_EmitMergeInputChains, 2, 1, 3, 
/*379036*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PSZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f32, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                              // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_Fmadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                              // Dst: (VFMADD231PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*379050*/                  /*Scope*/ 32, /*->379083*/
/*379051*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*379053*/                    OPC_MoveParent,
/*379054*/                    OPC_RecordChild3, // #5 = $src1
/*379055*/                    OPC_MoveParent,
/*379056*/                    OPC_CheckChild2Same, 5,
/*379058*/                    OPC_CheckType, MVT::v4f64,
/*379060*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*379062*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*379065*/                    OPC_EmitMergeInputChains, 2, 1, 3, 
/*379069*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PDZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f64, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                              // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_Fmadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                              // Dst: (VFMADD231PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*379083*/                  0, /*End of Scope*/
/*379084*/                0, // EndSwitchOpcode
/*379085*/              0, /*End of Scope*/
/*379086*/            /*Scope*/ 21|128,1/*149*/, /*->379237*/
/*379088*/              OPC_MoveChild1,
/*379089*/              OPC_SwitchOpcode /*2 cases */, 66, TARGET_VAL(ISD::LOAD),// ->379159
/*379093*/                OPC_RecordMemRef,
/*379094*/                OPC_RecordNode, // #2 = 'ld' chained node
/*379095*/                OPC_CheckFoldableChainNode,
/*379096*/                OPC_RecordChild1, // #3 = $src3
/*379097*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*379099*/                OPC_CheckPredicate, 9, // Predicate_load
/*379101*/                OPC_MoveParent,
/*379102*/                OPC_RecordChild2, // #4 = $src1
/*379103*/                OPC_RecordChild3, // #5 = $src2
/*379104*/                OPC_MoveParent,
/*379105*/                OPC_CheckChild2Same, 4,
/*379107*/                OPC_SwitchType /*2 cases */, 23, MVT::v4f32,// ->379133
/*379110*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*379112*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*379115*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*379119*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PSZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_Fmadd:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, 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)
/*379133*/                /*SwitchType*/ 23, MVT::v4f64,// ->379158
/*379135*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*379137*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*379140*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*379144*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PDZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_Fmadd:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, 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)
/*379158*/                0, // EndSwitchType
/*379159*/              /*SwitchOpcode*/ 74, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->379236
/*379162*/                OPC_RecordMemRef,
/*379163*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*379164*/                OPC_CheckFoldableChainNode,
/*379165*/                OPC_RecordChild1, // #3 = $src3
/*379166*/                OPC_Scope, 33, /*->379201*/ // 2 children in Scope
/*379168*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*379170*/                  OPC_MoveParent,
/*379171*/                  OPC_RecordChild2, // #4 = $src1
/*379172*/                  OPC_RecordChild3, // #5 = $src2
/*379173*/                  OPC_MoveParent,
/*379174*/                  OPC_CheckChild2Same, 4,
/*379176*/                  OPC_CheckType, MVT::v4f32,
/*379178*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*379180*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*379183*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*379187*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PSZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_Fmadd:{ *:[v4f32] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                            // Dst: (VFMADD132PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*379201*/                /*Scope*/ 33, /*->379235*/
/*379202*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*379204*/                  OPC_MoveParent,
/*379205*/                  OPC_RecordChild2, // #4 = $src1
/*379206*/                  OPC_RecordChild3, // #5 = $src2
/*379207*/                  OPC_MoveParent,
/*379208*/                  OPC_CheckChild2Same, 4,
/*379210*/                  OPC_CheckType, MVT::v4f64,
/*379212*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*379214*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*379217*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*379221*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PDZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_Fmadd:{ *:[v4f64] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                            // Dst: (VFMADD132PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*379235*/                0, /*End of Scope*/
/*379236*/              0, // EndSwitchOpcode
/*379237*/            /*Scope*/ 17|128,1/*145*/, /*->379384*/
/*379239*/              OPC_RecordChild1, // #2 = $src1
/*379240*/              OPC_RecordChild2, // #3 = $src2
/*379241*/              OPC_MoveChild3,
/*379242*/              OPC_SwitchOpcode /*2 cases */, 64, TARGET_VAL(ISD::LOAD),// ->379310
/*379246*/                OPC_RecordMemRef,
/*379247*/                OPC_RecordNode, // #4 = 'ld' chained node
/*379248*/                OPC_CheckFoldableChainNode,
/*379249*/                OPC_RecordChild1, // #5 = $src3
/*379250*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*379252*/                OPC_CheckPredicate, 9, // Predicate_load
/*379254*/                OPC_MoveParent,
/*379255*/                OPC_MoveParent,
/*379256*/                OPC_CheckChild2Same, 2,
/*379258*/                OPC_SwitchType /*2 cases */, 23, MVT::v4f32,// ->379284
/*379261*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*379263*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/5, // selectAddr:$src3 #6 #7 #8 #9 #10
/*379266*/                  OPC_EmitMergeInputChains, 2, 1, 4, 
/*379270*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 2, 0, 3, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_Fmadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                            // Dst: (VFMADD213PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*379284*/                /*SwitchType*/ 23, MVT::v4f64,// ->379309
/*379286*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*379288*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/5, // selectAddr:$src3 #6 #7 #8 #9 #10
/*379291*/                  OPC_EmitMergeInputChains, 2, 1, 4, 
/*379295*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 2, 0, 3, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_Fmadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                            // Dst: (VFMADD213PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*379309*/                0, // EndSwitchType
/*379310*/              /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->379383
/*379313*/                OPC_RecordMemRef,
/*379314*/                OPC_RecordNode, // #4 = 'X86VBroadcastld' chained node
/*379315*/                OPC_CheckFoldableChainNode,
/*379316*/                OPC_RecordChild1, // #5 = $src3
/*379317*/                OPC_Scope, 31, /*->379350*/ // 2 children in Scope
/*379319*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*379321*/                  OPC_MoveParent,
/*379322*/                  OPC_MoveParent,
/*379323*/                  OPC_CheckChild2Same, 2,
/*379325*/                  OPC_CheckType, MVT::v4f32,
/*379327*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*379329*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/5, // selectAddr:$src3 #6 #7 #8 #9 #10
/*379332*/                  OPC_EmitMergeInputChains, 2, 1, 4, 
/*379336*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 2, 0, 3, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_Fmadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                            // Dst: (VFMADD213PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*379350*/                /*Scope*/ 31, /*->379382*/
/*379351*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*379353*/                  OPC_MoveParent,
/*379354*/                  OPC_MoveParent,
/*379355*/                  OPC_CheckChild2Same, 2,
/*379357*/                  OPC_CheckType, MVT::v4f64,
/*379359*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*379361*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/5, // selectAddr:$src3 #6 #7 #8 #9 #10
/*379364*/                  OPC_EmitMergeInputChains, 2, 1, 4, 
/*379368*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 2, 0, 3, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_Fmadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                            // Dst: (VFMADD213PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*379382*/                0, /*End of Scope*/
/*379383*/              0, // EndSwitchOpcode
/*379384*/            /*Scope*/ 21|128,1/*149*/, /*->379535*/
/*379386*/              OPC_MoveChild1,
/*379387*/              OPC_SwitchOpcode /*2 cases */, 66, TARGET_VAL(ISD::LOAD),// ->379457
/*379391*/                OPC_RecordMemRef,
/*379392*/                OPC_RecordNode, // #2 = 'ld' chained node
/*379393*/                OPC_CheckFoldableChainNode,
/*379394*/                OPC_RecordChild1, // #3 = $src3
/*379395*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*379397*/                OPC_CheckPredicate, 9, // Predicate_load
/*379399*/                OPC_MoveParent,
/*379400*/                OPC_RecordChild2, // #4 = $src2
/*379401*/                OPC_RecordChild3, // #5 = $src1
/*379402*/                OPC_MoveParent,
/*379403*/                OPC_CheckChild2Same, 5,
/*379405*/                OPC_SwitchType /*2 cases */, 23, MVT::v4f32,// ->379431
/*379408*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*379410*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*379413*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*379417*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PSZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 5, 0, 4, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_Fmadd:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, 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)
/*379431*/                /*SwitchType*/ 23, MVT::v4f64,// ->379456
/*379433*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*379435*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*379438*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*379442*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PDZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 5, 0, 4, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_Fmadd:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, 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)
/*379456*/                0, // EndSwitchType
/*379457*/              /*SwitchOpcode*/ 74, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->379534
/*379460*/                OPC_RecordMemRef,
/*379461*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*379462*/                OPC_CheckFoldableChainNode,
/*379463*/                OPC_RecordChild1, // #3 = $src3
/*379464*/                OPC_Scope, 33, /*->379499*/ // 2 children in Scope
/*379466*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*379468*/                  OPC_MoveParent,
/*379469*/                  OPC_RecordChild2, // #4 = $src2
/*379470*/                  OPC_RecordChild3, // #5 = $src1
/*379471*/                  OPC_MoveParent,
/*379472*/                  OPC_CheckChild2Same, 5,
/*379474*/                  OPC_CheckType, MVT::v4f32,
/*379476*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*379478*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*379481*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*379485*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PSZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 5, 0, 4, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_Fmadd:{ *:[v4f32] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                            // Dst: (VFMADD231PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*379499*/                /*Scope*/ 33, /*->379533*/
/*379500*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*379502*/                  OPC_MoveParent,
/*379503*/                  OPC_RecordChild2, // #4 = $src2
/*379504*/                  OPC_RecordChild3, // #5 = $src1
/*379505*/                  OPC_MoveParent,
/*379506*/                  OPC_CheckChild2Same, 5,
/*379508*/                  OPC_CheckType, MVT::v4f64,
/*379510*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*379512*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*379515*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*379519*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PDZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 5, 0, 4, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_Fmadd:{ *:[v4f64] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                            // Dst: (VFMADD231PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*379533*/                0, /*End of Scope*/
/*379534*/              0, // EndSwitchOpcode
/*379535*/            /*Scope*/ 19|128,1/*147*/, /*->379684*/
/*379537*/              OPC_RecordChild1, // #2 = $src1
/*379538*/              OPC_MoveChild2,
/*379539*/              OPC_SwitchOpcode /*2 cases */, 65, TARGET_VAL(ISD::LOAD),// ->379608
/*379543*/                OPC_RecordMemRef,
/*379544*/                OPC_RecordNode, // #3 = 'ld' chained node
/*379545*/                OPC_CheckFoldableChainNode,
/*379546*/                OPC_RecordChild1, // #4 = $src3
/*379547*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*379549*/                OPC_CheckPredicate, 9, // Predicate_load
/*379551*/                OPC_MoveParent,
/*379552*/                OPC_RecordChild3, // #5 = $src2
/*379553*/                OPC_MoveParent,
/*379554*/                OPC_CheckChild2Same, 2,
/*379556*/                OPC_SwitchType /*2 cases */, 23, MVT::v4f32,// ->379582
/*379559*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*379561*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*379564*/                  OPC_EmitMergeInputChains, 2, 1, 3, 
/*379568*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PSZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 2, 0, 5, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_Fmadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                            // Dst: (VFMADD132PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*379582*/                /*SwitchType*/ 23, MVT::v4f64,// ->379607
/*379584*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*379586*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*379589*/                  OPC_EmitMergeInputChains, 2, 1, 3, 
/*379593*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PDZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 2, 0, 5, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_Fmadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v4f64] }:$src2), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                            // Dst: (VFMADD132PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*379607*/                0, // EndSwitchType
/*379608*/              /*SwitchOpcode*/ 72, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->379683
/*379611*/                OPC_RecordMemRef,
/*379612*/                OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*379613*/                OPC_CheckFoldableChainNode,
/*379614*/                OPC_RecordChild1, // #4 = $src3
/*379615*/                OPC_Scope, 32, /*->379649*/ // 2 children in Scope
/*379617*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*379619*/                  OPC_MoveParent,
/*379620*/                  OPC_RecordChild3, // #5 = $src2
/*379621*/                  OPC_MoveParent,
/*379622*/                  OPC_CheckChild2Same, 2,
/*379624*/                  OPC_CheckType, MVT::v4f32,
/*379626*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*379628*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*379631*/                  OPC_EmitMergeInputChains, 2, 1, 3, 
/*379635*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PSZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 2, 0, 5, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_Fmadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                            // Dst: (VFMADD132PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*379649*/                /*Scope*/ 32, /*->379682*/
/*379650*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*379652*/                  OPC_MoveParent,
/*379653*/                  OPC_RecordChild3, // #5 = $src2
/*379654*/                  OPC_MoveParent,
/*379655*/                  OPC_CheckChild2Same, 2,
/*379657*/                  OPC_CheckType, MVT::v4f64,
/*379659*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*379661*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*379664*/                  OPC_EmitMergeInputChains, 2, 1, 3, 
/*379668*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PDZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 8/*#Ops*/, 2, 0, 5, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_Fmadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src2), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                            // Dst: (VFMADD132PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*379682*/                0, /*End of Scope*/
/*379683*/              0, // EndSwitchOpcode
/*379684*/            0, /*End of Scope*/
/*379685*/          /*SwitchOpcode*/ 75|128,6/*843*/, TARGET_VAL(ISD::FMA),// ->380532
/*379689*/            OPC_Scope, 25|128,2/*281*/, /*->379973*/ // 5 children in Scope
/*379692*/              OPC_RecordChild0, // #1 = $src2
/*379693*/              OPC_Scope, 12|128,1/*140*/, /*->379836*/ // 2 children in Scope
/*379696*/                OPC_RecordChild1, // #2 = $src1
/*379697*/                OPC_MoveChild2,
/*379698*/                OPC_SwitchOpcode /*2 cases */, 62, TARGET_VAL(ISD::LOAD),// ->379764
/*379702*/                  OPC_RecordMemRef,
/*379703*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*379704*/                  OPC_CheckFoldableChainNode,
/*379705*/                  OPC_RecordChild1, // #4 = $src3
/*379706*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*379708*/                  OPC_CheckPredicate, 9, // Predicate_load
/*379710*/                  OPC_MoveParent,
/*379711*/                  OPC_MoveParent,
/*379712*/                  OPC_CheckChild2Same, 2,
/*379714*/                  OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->379739
/*379717*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*379719*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*379722*/                    OPC_EmitMergeInputChains, 1, 3, 
/*379725*/                    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>>), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                              // Dst: (VFMADD213PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*379739*/                  /*SwitchType*/ 22, MVT::v4f64,// ->379763
/*379741*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*379743*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*379746*/                    OPC_EmitMergeInputChains, 1, 3, 
/*379749*/                    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>>), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                              // Dst: (VFMADD213PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*379763*/                  0, // EndSwitchType
/*379764*/                /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->379835
/*379767*/                  OPC_RecordMemRef,
/*379768*/                  OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*379769*/                  OPC_CheckFoldableChainNode,
/*379770*/                  OPC_RecordChild1, // #4 = $src3
/*379771*/                  OPC_Scope, 30, /*->379803*/ // 2 children in Scope
/*379773*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*379775*/                    OPC_MoveParent,
/*379776*/                    OPC_MoveParent,
/*379777*/                    OPC_CheckChild2Same, 2,
/*379779*/                    OPC_CheckType, MVT::v4f32,
/*379781*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*379783*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*379786*/                    OPC_EmitMergeInputChains, 1, 3, 
/*379789*/                    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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                              // Dst: (VFMADD213PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*379803*/                  /*Scope*/ 30, /*->379834*/
/*379804*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*379806*/                    OPC_MoveParent,
/*379807*/                    OPC_MoveParent,
/*379808*/                    OPC_CheckChild2Same, 2,
/*379810*/                    OPC_CheckType, MVT::v4f64,
/*379812*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*379814*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*379817*/                    OPC_EmitMergeInputChains, 1, 3, 
/*379820*/                    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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                              // Dst: (VFMADD213PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*379834*/                  0, /*End of Scope*/
/*379835*/                0, // EndSwitchOpcode
/*379836*/              /*Scope*/ 6|128,1/*134*/, /*->379972*/
/*379838*/                OPC_MoveChild1,
/*379839*/                OPC_SwitchOpcode /*2 cases */, 59, TARGET_VAL(ISD::LOAD),// ->379902
/*379843*/                  OPC_RecordMemRef,
/*379844*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*379845*/                  OPC_CheckFoldableChainNode,
/*379846*/                  OPC_RecordChild1, // #3 = $src3
/*379847*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*379849*/                  OPC_CheckPredicate, 9, // Predicate_load
/*379851*/                  OPC_MoveParent,
/*379852*/                  OPC_RecordChild2, // #4 = $src1
/*379853*/                  OPC_MoveParent,
/*379854*/                  OPC_CheckChild2Same, 4,
/*379856*/                  OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->379879
/*379859*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*379861*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*379864*/                    OPC_EmitMergeInputChains1_2,
/*379865*/                    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>>, VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                              // Dst: (VFMADD231PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*379879*/                  /*SwitchType*/ 20, MVT::v4f64,// ->379901
/*379881*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*379883*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*379886*/                    OPC_EmitMergeInputChains1_2,
/*379887*/                    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>>, VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                              // Dst: (VFMADD231PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*379901*/                  0, // EndSwitchType
/*379902*/                /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->379971
/*379905*/                  OPC_RecordMemRef,
/*379906*/                  OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*379907*/                  OPC_CheckFoldableChainNode,
/*379908*/                  OPC_RecordChild1, // #3 = $src3
/*379909*/                  OPC_Scope, 29, /*->379940*/ // 2 children in Scope
/*379911*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*379913*/                    OPC_MoveParent,
/*379914*/                    OPC_RecordChild2, // #4 = $src1
/*379915*/                    OPC_MoveParent,
/*379916*/                    OPC_CheckChild2Same, 4,
/*379918*/                    OPC_CheckType, MVT::v4f32,
/*379920*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*379922*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*379925*/                    OPC_EmitMergeInputChains1_2,
/*379926*/                    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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                              // Dst: (VFMADD231PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*379940*/                  /*Scope*/ 29, /*->379970*/
/*379941*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*379943*/                    OPC_MoveParent,
/*379944*/                    OPC_RecordChild2, // #4 = $src1
/*379945*/                    OPC_MoveParent,
/*379946*/                    OPC_CheckChild2Same, 4,
/*379948*/                    OPC_CheckType, MVT::v4f64,
/*379950*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*379952*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*379955*/                    OPC_EmitMergeInputChains1_2,
/*379956*/                    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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                              // Dst: (VFMADD231PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*379970*/                  0, /*End of Scope*/
/*379971*/                0, // EndSwitchOpcode
/*379972*/              0, /*End of Scope*/
/*379973*/            /*Scope*/ 9|128,1/*137*/, /*->380112*/
/*379975*/              OPC_MoveChild0,
/*379976*/              OPC_SwitchOpcode /*2 cases */, 60, TARGET_VAL(ISD::LOAD),// ->380040
/*379980*/                OPC_RecordMemRef,
/*379981*/                OPC_RecordNode, // #1 = 'ld' chained node
/*379982*/                OPC_CheckFoldableChainNode,
/*379983*/                OPC_RecordChild1, // #2 = $src3
/*379984*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*379986*/                OPC_CheckPredicate, 9, // Predicate_load
/*379988*/                OPC_MoveParent,
/*379989*/                OPC_RecordChild1, // #3 = $src1
/*379990*/                OPC_RecordChild2, // #4 = $src2
/*379991*/                OPC_MoveParent,
/*379992*/                OPC_CheckChild2Same, 3,
/*379994*/                OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->380017
/*379997*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*379999*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*380002*/                  OPC_EmitMergeInputChains1_1,
/*380003*/                  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>>, 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)
/*380017*/                /*SwitchType*/ 20, MVT::v4f64,// ->380039
/*380019*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*380021*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*380024*/                  OPC_EmitMergeInputChains1_1,
/*380025*/                  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>>, 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)
/*380039*/                0, // EndSwitchType
/*380040*/              /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->380111
/*380043*/                OPC_RecordMemRef,
/*380044*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*380045*/                OPC_CheckFoldableChainNode,
/*380046*/                OPC_RecordChild1, // #2 = $src3
/*380047*/                OPC_Scope, 30, /*->380079*/ // 2 children in Scope
/*380049*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*380051*/                  OPC_MoveParent,
/*380052*/                  OPC_RecordChild1, // #3 = $src1
/*380053*/                  OPC_RecordChild2, // #4 = $src2
/*380054*/                  OPC_MoveParent,
/*380055*/                  OPC_CheckChild2Same, 3,
/*380057*/                  OPC_CheckType, MVT::v4f32,
/*380059*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*380061*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*380064*/                  OPC_EmitMergeInputChains1_1,
/*380065*/                  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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                            // Dst: (VFMADD132PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*380079*/                /*Scope*/ 30, /*->380110*/
/*380080*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*380082*/                  OPC_MoveParent,
/*380083*/                  OPC_RecordChild1, // #3 = $src1
/*380084*/                  OPC_RecordChild2, // #4 = $src2
/*380085*/                  OPC_MoveParent,
/*380086*/                  OPC_CheckChild2Same, 3,
/*380088*/                  OPC_CheckType, MVT::v4f64,
/*380090*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*380092*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*380095*/                  OPC_EmitMergeInputChains1_1,
/*380096*/                  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] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                            // Dst: (VFMADD132PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*380110*/                0, /*End of Scope*/
/*380111*/              0, // EndSwitchOpcode
/*380112*/            /*Scope*/ 13|128,1/*141*/, /*->380255*/
/*380114*/              OPC_RecordChild0, // #1 = $src1
/*380115*/              OPC_RecordChild1, // #2 = $src2
/*380116*/              OPC_MoveChild2,
/*380117*/              OPC_SwitchOpcode /*2 cases */, 62, TARGET_VAL(ISD::LOAD),// ->380183
/*380121*/                OPC_RecordMemRef,
/*380122*/                OPC_RecordNode, // #3 = 'ld' chained node
/*380123*/                OPC_CheckFoldableChainNode,
/*380124*/                OPC_RecordChild1, // #4 = $src3
/*380125*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*380127*/                OPC_CheckPredicate, 9, // Predicate_load
/*380129*/                OPC_MoveParent,
/*380130*/                OPC_MoveParent,
/*380131*/                OPC_CheckChild2Same, 1,
/*380133*/                OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->380158
/*380136*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*380138*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*380141*/                  OPC_EmitMergeInputChains, 1, 3, 
/*380144*/                  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>>), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                            // Dst: (VFMADD213PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*380158*/                /*SwitchType*/ 22, MVT::v4f64,// ->380182
/*380160*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*380162*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*380165*/                  OPC_EmitMergeInputChains, 1, 3, 
/*380168*/                  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>>), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                            // Dst: (VFMADD213PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*380182*/                0, // EndSwitchType
/*380183*/              /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->380254
/*380186*/                OPC_RecordMemRef,
/*380187*/                OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*380188*/                OPC_CheckFoldableChainNode,
/*380189*/                OPC_RecordChild1, // #4 = $src3
/*380190*/                OPC_Scope, 30, /*->380222*/ // 2 children in Scope
/*380192*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*380194*/                  OPC_MoveParent,
/*380195*/                  OPC_MoveParent,
/*380196*/                  OPC_CheckChild2Same, 1,
/*380198*/                  OPC_CheckType, MVT::v4f32,
/*380200*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*380202*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*380205*/                  OPC_EmitMergeInputChains, 1, 3, 
/*380208*/                  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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                            // Dst: (VFMADD213PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*380222*/                /*Scope*/ 30, /*->380253*/
/*380223*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*380225*/                  OPC_MoveParent,
/*380226*/                  OPC_MoveParent,
/*380227*/                  OPC_CheckChild2Same, 1,
/*380229*/                  OPC_CheckType, MVT::v4f64,
/*380231*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*380233*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*380236*/                  OPC_EmitMergeInputChains, 1, 3, 
/*380239*/                  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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                            // Dst: (VFMADD213PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*380253*/                0, /*End of Scope*/
/*380254*/              0, // EndSwitchOpcode
/*380255*/            /*Scope*/ 9|128,1/*137*/, /*->380394*/
/*380257*/              OPC_MoveChild0,
/*380258*/              OPC_SwitchOpcode /*2 cases */, 60, TARGET_VAL(ISD::LOAD),// ->380322
/*380262*/                OPC_RecordMemRef,
/*380263*/                OPC_RecordNode, // #1 = 'ld' chained node
/*380264*/                OPC_CheckFoldableChainNode,
/*380265*/                OPC_RecordChild1, // #2 = $src3
/*380266*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*380268*/                OPC_CheckPredicate, 9, // Predicate_load
/*380270*/                OPC_MoveParent,
/*380271*/                OPC_RecordChild1, // #3 = $src2
/*380272*/                OPC_RecordChild2, // #4 = $src1
/*380273*/                OPC_MoveParent,
/*380274*/                OPC_CheckChild2Same, 4,
/*380276*/                OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->380299
/*380279*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*380281*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*380284*/                  OPC_EmitMergeInputChains1_1,
/*380285*/                  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>>, 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)
/*380299*/                /*SwitchType*/ 20, MVT::v4f64,// ->380321
/*380301*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*380303*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*380306*/                  OPC_EmitMergeInputChains1_1,
/*380307*/                  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>>, 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)
/*380321*/                0, // EndSwitchType
/*380322*/              /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->380393
/*380325*/                OPC_RecordMemRef,
/*380326*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*380327*/                OPC_CheckFoldableChainNode,
/*380328*/                OPC_RecordChild1, // #2 = $src3
/*380329*/                OPC_Scope, 30, /*->380361*/ // 2 children in Scope
/*380331*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*380333*/                  OPC_MoveParent,
/*380334*/                  OPC_RecordChild1, // #3 = $src2
/*380335*/                  OPC_RecordChild2, // #4 = $src1
/*380336*/                  OPC_MoveParent,
/*380337*/                  OPC_CheckChild2Same, 4,
/*380339*/                  OPC_CheckType, MVT::v4f32,
/*380341*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*380343*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*380346*/                  OPC_EmitMergeInputChains1_1,
/*380347*/                  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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                            // Dst: (VFMADD231PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*380361*/                /*Scope*/ 30, /*->380392*/
/*380362*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*380364*/                  OPC_MoveParent,
/*380365*/                  OPC_RecordChild1, // #3 = $src2
/*380366*/                  OPC_RecordChild2, // #4 = $src1
/*380367*/                  OPC_MoveParent,
/*380368*/                  OPC_CheckChild2Same, 4,
/*380370*/                  OPC_CheckType, MVT::v4f64,
/*380372*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*380374*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*380377*/                  OPC_EmitMergeInputChains1_1,
/*380378*/                  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] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                            // Dst: (VFMADD231PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*380392*/                0, /*End of Scope*/
/*380393*/              0, // EndSwitchOpcode
/*380394*/            /*Scope*/ 7|128,1/*135*/, /*->380531*/
/*380396*/              OPC_RecordChild0, // #1 = $src1
/*380397*/              OPC_MoveChild1,
/*380398*/              OPC_SwitchOpcode /*2 cases */, 59, TARGET_VAL(ISD::LOAD),// ->380461
/*380402*/                OPC_RecordMemRef,
/*380403*/                OPC_RecordNode, // #2 = 'ld' chained node
/*380404*/                OPC_CheckFoldableChainNode,
/*380405*/                OPC_RecordChild1, // #3 = $src3
/*380406*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*380408*/                OPC_CheckPredicate, 9, // Predicate_load
/*380410*/                OPC_MoveParent,
/*380411*/                OPC_RecordChild2, // #4 = $src2
/*380412*/                OPC_MoveParent,
/*380413*/                OPC_CheckChild2Same, 1,
/*380415*/                OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->380438
/*380418*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*380420*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*380423*/                  OPC_EmitMergeInputChains1_2,
/*380424*/                  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>>, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                            // Dst: (VFMADD132PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*380438*/                /*SwitchType*/ 20, MVT::v4f64,// ->380460
/*380440*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*380442*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*380445*/                  OPC_EmitMergeInputChains1_2,
/*380446*/                  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>>, VR256X:{ *:[v4f64] }:$src2), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                            // Dst: (VFMADD132PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*380460*/                0, // EndSwitchType
/*380461*/              /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->380530
/*380464*/                OPC_RecordMemRef,
/*380465*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*380466*/                OPC_CheckFoldableChainNode,
/*380467*/                OPC_RecordChild1, // #3 = $src3
/*380468*/                OPC_Scope, 29, /*->380499*/ // 2 children in Scope
/*380470*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*380472*/                  OPC_MoveParent,
/*380473*/                  OPC_RecordChild2, // #4 = $src2
/*380474*/                  OPC_MoveParent,
/*380475*/                  OPC_CheckChild2Same, 1,
/*380477*/                  OPC_CheckType, MVT::v4f32,
/*380479*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*380481*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*380484*/                  OPC_EmitMergeInputChains1_2,
/*380485*/                  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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                            // Dst: (VFMADD132PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*380499*/                /*Scope*/ 29, /*->380529*/
/*380500*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*380502*/                  OPC_MoveParent,
/*380503*/                  OPC_RecordChild2, // #4 = $src2
/*380504*/                  OPC_MoveParent,
/*380505*/                  OPC_CheckChild2Same, 1,
/*380507*/                  OPC_CheckType, MVT::v4f64,
/*380509*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*380511*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*380514*/                  OPC_EmitMergeInputChains1_2,
/*380515*/                  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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src2), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                            // Dst: (VFMADD132PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*380529*/                0, /*End of Scope*/
/*380530*/              0, // EndSwitchOpcode
/*380531*/            0, /*End of Scope*/
/*380532*/          /*SwitchOpcode*/ 75|128,6/*843*/, TARGET_VAL(X86ISD::FMSUB),// ->381379
/*380536*/            OPC_Scope, 25|128,2/*281*/, /*->380820*/ // 5 children in Scope
/*380539*/              OPC_RecordChild0, // #1 = $src2
/*380540*/              OPC_Scope, 12|128,1/*140*/, /*->380683*/ // 2 children in Scope
/*380543*/                OPC_RecordChild1, // #2 = $src1
/*380544*/                OPC_MoveChild2,
/*380545*/                OPC_SwitchOpcode /*2 cases */, 62, TARGET_VAL(ISD::LOAD),// ->380611
/*380549*/                  OPC_RecordMemRef,
/*380550*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*380551*/                  OPC_CheckFoldableChainNode,
/*380552*/                  OPC_RecordChild1, // #4 = $src3
/*380553*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*380555*/                  OPC_CheckPredicate, 9, // Predicate_load
/*380557*/                  OPC_MoveParent,
/*380558*/                  OPC_MoveParent,
/*380559*/                  OPC_CheckChild2Same, 2,
/*380561*/                  OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->380586
/*380564*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*380566*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*380569*/                    OPC_EmitMergeInputChains, 1, 3, 
/*380572*/                    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>>), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                              // Dst: (VFMSUB213PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*380586*/                  /*SwitchType*/ 22, MVT::v4f64,// ->380610
/*380588*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*380590*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*380593*/                    OPC_EmitMergeInputChains, 1, 3, 
/*380596*/                    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>>), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                              // Dst: (VFMSUB213PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*380610*/                  0, // EndSwitchType
/*380611*/                /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->380682
/*380614*/                  OPC_RecordMemRef,
/*380615*/                  OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*380616*/                  OPC_CheckFoldableChainNode,
/*380617*/                  OPC_RecordChild1, // #4 = $src3
/*380618*/                  OPC_Scope, 30, /*->380650*/ // 2 children in Scope
/*380620*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*380622*/                    OPC_MoveParent,
/*380623*/                    OPC_MoveParent,
/*380624*/                    OPC_CheckChild2Same, 2,
/*380626*/                    OPC_CheckType, MVT::v4f32,
/*380628*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*380630*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*380633*/                    OPC_EmitMergeInputChains, 1, 3, 
/*380636*/                    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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                              // Dst: (VFMSUB213PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*380650*/                  /*Scope*/ 30, /*->380681*/
/*380651*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*380653*/                    OPC_MoveParent,
/*380654*/                    OPC_MoveParent,
/*380655*/                    OPC_CheckChild2Same, 2,
/*380657*/                    OPC_CheckType, MVT::v4f64,
/*380659*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*380661*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*380664*/                    OPC_EmitMergeInputChains, 1, 3, 
/*380667*/                    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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                              // Dst: (VFMSUB213PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*380681*/                  0, /*End of Scope*/
/*380682*/                0, // EndSwitchOpcode
/*380683*/              /*Scope*/ 6|128,1/*134*/, /*->380819*/
/*380685*/                OPC_MoveChild1,
/*380686*/                OPC_SwitchOpcode /*2 cases */, 59, TARGET_VAL(ISD::LOAD),// ->380749
/*380690*/                  OPC_RecordMemRef,
/*380691*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*380692*/                  OPC_CheckFoldableChainNode,
/*380693*/                  OPC_RecordChild1, // #3 = $src3
/*380694*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*380696*/                  OPC_CheckPredicate, 9, // Predicate_load
/*380698*/                  OPC_MoveParent,
/*380699*/                  OPC_RecordChild2, // #4 = $src1
/*380700*/                  OPC_MoveParent,
/*380701*/                  OPC_CheckChild2Same, 4,
/*380703*/                  OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->380726
/*380706*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*380708*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*380711*/                    OPC_EmitMergeInputChains1_2,
/*380712*/                    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>>, VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                              // Dst: (VFMSUB231PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*380726*/                  /*SwitchType*/ 20, MVT::v4f64,// ->380748
/*380728*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*380730*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*380733*/                    OPC_EmitMergeInputChains1_2,
/*380734*/                    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>>, VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                              // Dst: (VFMSUB231PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*380748*/                  0, // EndSwitchType
/*380749*/                /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->380818
/*380752*/                  OPC_RecordMemRef,
/*380753*/                  OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*380754*/                  OPC_CheckFoldableChainNode,
/*380755*/                  OPC_RecordChild1, // #3 = $src3
/*380756*/                  OPC_Scope, 29, /*->380787*/ // 2 children in Scope
/*380758*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*380760*/                    OPC_MoveParent,
/*380761*/                    OPC_RecordChild2, // #4 = $src1
/*380762*/                    OPC_MoveParent,
/*380763*/                    OPC_CheckChild2Same, 4,
/*380765*/                    OPC_CheckType, MVT::v4f32,
/*380767*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*380769*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*380772*/                    OPC_EmitMergeInputChains1_2,
/*380773*/                    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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                              // Dst: (VFMSUB231PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*380787*/                  /*Scope*/ 29, /*->380817*/
/*380788*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*380790*/                    OPC_MoveParent,
/*380791*/                    OPC_RecordChild2, // #4 = $src1
/*380792*/                    OPC_MoveParent,
/*380793*/                    OPC_CheckChild2Same, 4,
/*380795*/                    OPC_CheckType, MVT::v4f64,
/*380797*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*380799*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*380802*/                    OPC_EmitMergeInputChains1_2,
/*380803*/                    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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                              // Dst: (VFMSUB231PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*380817*/                  0, /*End of Scope*/
/*380818*/                0, // EndSwitchOpcode
/*380819*/              0, /*End of Scope*/
/*380820*/            /*Scope*/ 9|128,1/*137*/, /*->380959*/
/*380822*/              OPC_MoveChild0,
/*380823*/              OPC_SwitchOpcode /*2 cases */, 60, TARGET_VAL(ISD::LOAD),// ->380887
/*380827*/                OPC_RecordMemRef,
/*380828*/                OPC_RecordNode, // #1 = 'ld' chained node
/*380829*/                OPC_CheckFoldableChainNode,
/*380830*/                OPC_RecordChild1, // #2 = $src3
/*380831*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*380833*/                OPC_CheckPredicate, 9, // Predicate_load
/*380835*/                OPC_MoveParent,
/*380836*/                OPC_RecordChild1, // #3 = $src1
/*380837*/                OPC_RecordChild2, // #4 = $src2
/*380838*/                OPC_MoveParent,
/*380839*/                OPC_CheckChild2Same, 3,
/*380841*/                OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->380864
/*380844*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*380846*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*380849*/                  OPC_EmitMergeInputChains1_1,
/*380850*/                  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>>, 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)
/*380864*/                /*SwitchType*/ 20, MVT::v4f64,// ->380886
/*380866*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*380868*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*380871*/                  OPC_EmitMergeInputChains1_1,
/*380872*/                  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>>, 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)
/*380886*/                0, // EndSwitchType
/*380887*/              /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->380958
/*380890*/                OPC_RecordMemRef,
/*380891*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*380892*/                OPC_CheckFoldableChainNode,
/*380893*/                OPC_RecordChild1, // #2 = $src3
/*380894*/                OPC_Scope, 30, /*->380926*/ // 2 children in Scope
/*380896*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*380898*/                  OPC_MoveParent,
/*380899*/                  OPC_RecordChild1, // #3 = $src1
/*380900*/                  OPC_RecordChild2, // #4 = $src2
/*380901*/                  OPC_MoveParent,
/*380902*/                  OPC_CheckChild2Same, 3,
/*380904*/                  OPC_CheckType, MVT::v4f32,
/*380906*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*380908*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*380911*/                  OPC_EmitMergeInputChains1_1,
/*380912*/                  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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                            // Dst: (VFMSUB132PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*380926*/                /*Scope*/ 30, /*->380957*/
/*380927*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*380929*/                  OPC_MoveParent,
/*380930*/                  OPC_RecordChild1, // #3 = $src1
/*380931*/                  OPC_RecordChild2, // #4 = $src2
/*380932*/                  OPC_MoveParent,
/*380933*/                  OPC_CheckChild2Same, 3,
/*380935*/                  OPC_CheckType, MVT::v4f64,
/*380937*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*380939*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*380942*/                  OPC_EmitMergeInputChains1_1,
/*380943*/                  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] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                            // Dst: (VFMSUB132PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*380957*/                0, /*End of Scope*/
/*380958*/              0, // EndSwitchOpcode
/*380959*/            /*Scope*/ 13|128,1/*141*/, /*->381102*/
/*380961*/              OPC_RecordChild0, // #1 = $src1
/*380962*/              OPC_RecordChild1, // #2 = $src2
/*380963*/              OPC_MoveChild2,
/*380964*/              OPC_SwitchOpcode /*2 cases */, 62, TARGET_VAL(ISD::LOAD),// ->381030
/*380968*/                OPC_RecordMemRef,
/*380969*/                OPC_RecordNode, // #3 = 'ld' chained node
/*380970*/                OPC_CheckFoldableChainNode,
/*380971*/                OPC_RecordChild1, // #4 = $src3
/*380972*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*380974*/                OPC_CheckPredicate, 9, // Predicate_load
/*380976*/                OPC_MoveParent,
/*380977*/                OPC_MoveParent,
/*380978*/                OPC_CheckChild2Same, 1,
/*380980*/                OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->381005
/*380983*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*380985*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*380988*/                  OPC_EmitMergeInputChains, 1, 3, 
/*380991*/                  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>>), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                            // Dst: (VFMSUB213PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*381005*/                /*SwitchType*/ 22, MVT::v4f64,// ->381029
/*381007*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*381009*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*381012*/                  OPC_EmitMergeInputChains, 1, 3, 
/*381015*/                  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>>), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                            // Dst: (VFMSUB213PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*381029*/                0, // EndSwitchType
/*381030*/              /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->381101
/*381033*/                OPC_RecordMemRef,
/*381034*/                OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*381035*/                OPC_CheckFoldableChainNode,
/*381036*/                OPC_RecordChild1, // #4 = $src3
/*381037*/                OPC_Scope, 30, /*->381069*/ // 2 children in Scope
/*381039*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*381041*/                  OPC_MoveParent,
/*381042*/                  OPC_MoveParent,
/*381043*/                  OPC_CheckChild2Same, 1,
/*381045*/                  OPC_CheckType, MVT::v4f32,
/*381047*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*381049*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*381052*/                  OPC_EmitMergeInputChains, 1, 3, 
/*381055*/                  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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                            // Dst: (VFMSUB213PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*381069*/                /*Scope*/ 30, /*->381100*/
/*381070*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*381072*/                  OPC_MoveParent,
/*381073*/                  OPC_MoveParent,
/*381074*/                  OPC_CheckChild2Same, 1,
/*381076*/                  OPC_CheckType, MVT::v4f64,
/*381078*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*381080*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*381083*/                  OPC_EmitMergeInputChains, 1, 3, 
/*381086*/                  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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                            // Dst: (VFMSUB213PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*381100*/                0, /*End of Scope*/
/*381101*/              0, // EndSwitchOpcode
/*381102*/            /*Scope*/ 9|128,1/*137*/, /*->381241*/
/*381104*/              OPC_MoveChild0,
/*381105*/              OPC_SwitchOpcode /*2 cases */, 60, TARGET_VAL(ISD::LOAD),// ->381169
/*381109*/                OPC_RecordMemRef,
/*381110*/                OPC_RecordNode, // #1 = 'ld' chained node
/*381111*/                OPC_CheckFoldableChainNode,
/*381112*/                OPC_RecordChild1, // #2 = $src3
/*381113*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*381115*/                OPC_CheckPredicate, 9, // Predicate_load
/*381117*/                OPC_MoveParent,
/*381118*/                OPC_RecordChild1, // #3 = $src2
/*381119*/                OPC_RecordChild2, // #4 = $src1
/*381120*/                OPC_MoveParent,
/*381121*/                OPC_CheckChild2Same, 4,
/*381123*/                OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->381146
/*381126*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*381128*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*381131*/                  OPC_EmitMergeInputChains1_1,
/*381132*/                  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>>, 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)
/*381146*/                /*SwitchType*/ 20, MVT::v4f64,// ->381168
/*381148*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*381150*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*381153*/                  OPC_EmitMergeInputChains1_1,
/*381154*/                  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>>, 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)
/*381168*/                0, // EndSwitchType
/*381169*/              /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->381240
/*381172*/                OPC_RecordMemRef,
/*381173*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*381174*/                OPC_CheckFoldableChainNode,
/*381175*/                OPC_RecordChild1, // #2 = $src3
/*381176*/                OPC_Scope, 30, /*->381208*/ // 2 children in Scope
/*381178*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*381180*/                  OPC_MoveParent,
/*381181*/                  OPC_RecordChild1, // #3 = $src2
/*381182*/                  OPC_RecordChild2, // #4 = $src1
/*381183*/                  OPC_MoveParent,
/*381184*/                  OPC_CheckChild2Same, 4,
/*381186*/                  OPC_CheckType, MVT::v4f32,
/*381188*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*381190*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*381193*/                  OPC_EmitMergeInputChains1_1,
/*381194*/                  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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                            // Dst: (VFMSUB231PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*381208*/                /*Scope*/ 30, /*->381239*/
/*381209*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*381211*/                  OPC_MoveParent,
/*381212*/                  OPC_RecordChild1, // #3 = $src2
/*381213*/                  OPC_RecordChild2, // #4 = $src1
/*381214*/                  OPC_MoveParent,
/*381215*/                  OPC_CheckChild2Same, 4,
/*381217*/                  OPC_CheckType, MVT::v4f64,
/*381219*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*381221*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*381224*/                  OPC_EmitMergeInputChains1_1,
/*381225*/                  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] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                            // Dst: (VFMSUB231PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*381239*/                0, /*End of Scope*/
/*381240*/              0, // EndSwitchOpcode
/*381241*/            /*Scope*/ 7|128,1/*135*/, /*->381378*/
/*381243*/              OPC_RecordChild0, // #1 = $src1
/*381244*/              OPC_MoveChild1,
/*381245*/              OPC_SwitchOpcode /*2 cases */, 59, TARGET_VAL(ISD::LOAD),// ->381308
/*381249*/                OPC_RecordMemRef,
/*381250*/                OPC_RecordNode, // #2 = 'ld' chained node
/*381251*/                OPC_CheckFoldableChainNode,
/*381252*/                OPC_RecordChild1, // #3 = $src3
/*381253*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*381255*/                OPC_CheckPredicate, 9, // Predicate_load
/*381257*/                OPC_MoveParent,
/*381258*/                OPC_RecordChild2, // #4 = $src2
/*381259*/                OPC_MoveParent,
/*381260*/                OPC_CheckChild2Same, 1,
/*381262*/                OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->381285
/*381265*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*381267*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*381270*/                  OPC_EmitMergeInputChains1_2,
/*381271*/                  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>>, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                            // Dst: (VFMSUB132PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*381285*/                /*SwitchType*/ 20, MVT::v4f64,// ->381307
/*381287*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*381289*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*381292*/                  OPC_EmitMergeInputChains1_2,
/*381293*/                  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>>, VR256X:{ *:[v4f64] }:$src2), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                            // Dst: (VFMSUB132PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*381307*/                0, // EndSwitchType
/*381308*/              /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->381377
/*381311*/                OPC_RecordMemRef,
/*381312*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*381313*/                OPC_CheckFoldableChainNode,
/*381314*/                OPC_RecordChild1, // #3 = $src3
/*381315*/                OPC_Scope, 29, /*->381346*/ // 2 children in Scope
/*381317*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*381319*/                  OPC_MoveParent,
/*381320*/                  OPC_RecordChild2, // #4 = $src2
/*381321*/                  OPC_MoveParent,
/*381322*/                  OPC_CheckChild2Same, 1,
/*381324*/                  OPC_CheckType, MVT::v4f32,
/*381326*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*381328*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*381331*/                  OPC_EmitMergeInputChains1_2,
/*381332*/                  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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                            // Dst: (VFMSUB132PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*381346*/                /*Scope*/ 29, /*->381376*/
/*381347*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*381349*/                  OPC_MoveParent,
/*381350*/                  OPC_RecordChild2, // #4 = $src2
/*381351*/                  OPC_MoveParent,
/*381352*/                  OPC_CheckChild2Same, 1,
/*381354*/                  OPC_CheckType, MVT::v4f64,
/*381356*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*381358*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*381361*/                  OPC_EmitMergeInputChains1_2,
/*381362*/                  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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src2), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                            // Dst: (VFMSUB132PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*381376*/                0, /*End of Scope*/
/*381377*/              0, // EndSwitchOpcode
/*381378*/            0, /*End of Scope*/
/*381379*/          /*SwitchOpcode*/ 75|128,6/*843*/, TARGET_VAL(X86ISD::FMADDSUB),// ->382226
/*381383*/            OPC_Scope, 25|128,2/*281*/, /*->381667*/ // 5 children in Scope
/*381386*/              OPC_RecordChild0, // #1 = $src2
/*381387*/              OPC_Scope, 12|128,1/*140*/, /*->381530*/ // 2 children in Scope
/*381390*/                OPC_RecordChild1, // #2 = $src1
/*381391*/                OPC_MoveChild2,
/*381392*/                OPC_SwitchOpcode /*2 cases */, 62, TARGET_VAL(ISD::LOAD),// ->381458
/*381396*/                  OPC_RecordMemRef,
/*381397*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*381398*/                  OPC_CheckFoldableChainNode,
/*381399*/                  OPC_RecordChild1, // #4 = $src3
/*381400*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*381402*/                  OPC_CheckPredicate, 9, // Predicate_load
/*381404*/                  OPC_MoveParent,
/*381405*/                  OPC_MoveParent,
/*381406*/                  OPC_CheckChild2Same, 2,
/*381408*/                  OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->381433
/*381411*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*381413*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*381416*/                    OPC_EmitMergeInputChains, 1, 3, 
/*381419*/                    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>>), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                              // Dst: (VFMADDSUB213PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*381433*/                  /*SwitchType*/ 22, MVT::v4f64,// ->381457
/*381435*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*381437*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*381440*/                    OPC_EmitMergeInputChains, 1, 3, 
/*381443*/                    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>>), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                              // Dst: (VFMADDSUB213PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*381457*/                  0, // EndSwitchType
/*381458*/                /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->381529
/*381461*/                  OPC_RecordMemRef,
/*381462*/                  OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*381463*/                  OPC_CheckFoldableChainNode,
/*381464*/                  OPC_RecordChild1, // #4 = $src3
/*381465*/                  OPC_Scope, 30, /*->381497*/ // 2 children in Scope
/*381467*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*381469*/                    OPC_MoveParent,
/*381470*/                    OPC_MoveParent,
/*381471*/                    OPC_CheckChild2Same, 2,
/*381473*/                    OPC_CheckType, MVT::v4f32,
/*381475*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*381477*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*381480*/                    OPC_EmitMergeInputChains, 1, 3, 
/*381483*/                    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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                              // Dst: (VFMADDSUB213PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*381497*/                  /*Scope*/ 30, /*->381528*/
/*381498*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*381500*/                    OPC_MoveParent,
/*381501*/                    OPC_MoveParent,
/*381502*/                    OPC_CheckChild2Same, 2,
/*381504*/                    OPC_CheckType, MVT::v4f64,
/*381506*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*381508*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*381511*/                    OPC_EmitMergeInputChains, 1, 3, 
/*381514*/                    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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                              // Dst: (VFMADDSUB213PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*381528*/                  0, /*End of Scope*/
/*381529*/                0, // EndSwitchOpcode
/*381530*/              /*Scope*/ 6|128,1/*134*/, /*->381666*/
/*381532*/                OPC_MoveChild1,
/*381533*/                OPC_SwitchOpcode /*2 cases */, 59, TARGET_VAL(ISD::LOAD),// ->381596
/*381537*/                  OPC_RecordMemRef,
/*381538*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*381539*/                  OPC_CheckFoldableChainNode,
/*381540*/                  OPC_RecordChild1, // #3 = $src3
/*381541*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*381543*/                  OPC_CheckPredicate, 9, // Predicate_load
/*381545*/                  OPC_MoveParent,
/*381546*/                  OPC_RecordChild2, // #4 = $src1
/*381547*/                  OPC_MoveParent,
/*381548*/                  OPC_CheckChild2Same, 4,
/*381550*/                  OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->381573
/*381553*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*381555*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*381558*/                    OPC_EmitMergeInputChains1_2,
/*381559*/                    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>>, VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                              // Dst: (VFMADDSUB231PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*381573*/                  /*SwitchType*/ 20, MVT::v4f64,// ->381595
/*381575*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*381577*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*381580*/                    OPC_EmitMergeInputChains1_2,
/*381581*/                    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>>, VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                              // Dst: (VFMADDSUB231PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*381595*/                  0, // EndSwitchType
/*381596*/                /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->381665
/*381599*/                  OPC_RecordMemRef,
/*381600*/                  OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*381601*/                  OPC_CheckFoldableChainNode,
/*381602*/                  OPC_RecordChild1, // #3 = $src3
/*381603*/                  OPC_Scope, 29, /*->381634*/ // 2 children in Scope
/*381605*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*381607*/                    OPC_MoveParent,
/*381608*/                    OPC_RecordChild2, // #4 = $src1
/*381609*/                    OPC_MoveParent,
/*381610*/                    OPC_CheckChild2Same, 4,
/*381612*/                    OPC_CheckType, MVT::v4f32,
/*381614*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*381616*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*381619*/                    OPC_EmitMergeInputChains1_2,
/*381620*/                    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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                              // Dst: (VFMADDSUB231PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*381634*/                  /*Scope*/ 29, /*->381664*/
/*381635*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*381637*/                    OPC_MoveParent,
/*381638*/                    OPC_RecordChild2, // #4 = $src1
/*381639*/                    OPC_MoveParent,
/*381640*/                    OPC_CheckChild2Same, 4,
/*381642*/                    OPC_CheckType, MVT::v4f64,
/*381644*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*381646*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*381649*/                    OPC_EmitMergeInputChains1_2,
/*381650*/                    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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                              // Dst: (VFMADDSUB231PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*381664*/                  0, /*End of Scope*/
/*381665*/                0, // EndSwitchOpcode
/*381666*/              0, /*End of Scope*/
/*381667*/            /*Scope*/ 9|128,1/*137*/, /*->381806*/
/*381669*/              OPC_MoveChild0,
/*381670*/              OPC_SwitchOpcode /*2 cases */, 60, TARGET_VAL(ISD::LOAD),// ->381734
/*381674*/                OPC_RecordMemRef,
/*381675*/                OPC_RecordNode, // #1 = 'ld' chained node
/*381676*/                OPC_CheckFoldableChainNode,
/*381677*/                OPC_RecordChild1, // #2 = $src3
/*381678*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*381680*/                OPC_CheckPredicate, 9, // Predicate_load
/*381682*/                OPC_MoveParent,
/*381683*/                OPC_RecordChild1, // #3 = $src1
/*381684*/                OPC_RecordChild2, // #4 = $src2
/*381685*/                OPC_MoveParent,
/*381686*/                OPC_CheckChild2Same, 3,
/*381688*/                OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->381711
/*381691*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*381693*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*381696*/                  OPC_EmitMergeInputChains1_1,
/*381697*/                  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>>, 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)
/*381711*/                /*SwitchType*/ 20, MVT::v4f64,// ->381733
/*381713*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*381715*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*381718*/                  OPC_EmitMergeInputChains1_1,
/*381719*/                  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>>, 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)
/*381733*/                0, // EndSwitchType
/*381734*/              /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->381805
/*381737*/                OPC_RecordMemRef,
/*381738*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*381739*/                OPC_CheckFoldableChainNode,
/*381740*/                OPC_RecordChild1, // #2 = $src3
/*381741*/                OPC_Scope, 30, /*->381773*/ // 2 children in Scope
/*381743*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*381745*/                  OPC_MoveParent,
/*381746*/                  OPC_RecordChild1, // #3 = $src1
/*381747*/                  OPC_RecordChild2, // #4 = $src2
/*381748*/                  OPC_MoveParent,
/*381749*/                  OPC_CheckChild2Same, 3,
/*381751*/                  OPC_CheckType, MVT::v4f32,
/*381753*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*381755*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*381758*/                  OPC_EmitMergeInputChains1_1,
/*381759*/                  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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                            // Dst: (VFMADDSUB132PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*381773*/                /*Scope*/ 30, /*->381804*/
/*381774*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*381776*/                  OPC_MoveParent,
/*381777*/                  OPC_RecordChild1, // #3 = $src1
/*381778*/                  OPC_RecordChild2, // #4 = $src2
/*381779*/                  OPC_MoveParent,
/*381780*/                  OPC_CheckChild2Same, 3,
/*381782*/                  OPC_CheckType, MVT::v4f64,
/*381784*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*381786*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*381789*/                  OPC_EmitMergeInputChains1_1,
/*381790*/                  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] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                            // Dst: (VFMADDSUB132PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*381804*/                0, /*End of Scope*/
/*381805*/              0, // EndSwitchOpcode
/*381806*/            /*Scope*/ 13|128,1/*141*/, /*->381949*/
/*381808*/              OPC_RecordChild0, // #1 = $src1
/*381809*/              OPC_RecordChild1, // #2 = $src2
/*381810*/              OPC_MoveChild2,
/*381811*/              OPC_SwitchOpcode /*2 cases */, 62, TARGET_VAL(ISD::LOAD),// ->381877
/*381815*/                OPC_RecordMemRef,
/*381816*/                OPC_RecordNode, // #3 = 'ld' chained node
/*381817*/                OPC_CheckFoldableChainNode,
/*381818*/                OPC_RecordChild1, // #4 = $src3
/*381819*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*381821*/                OPC_CheckPredicate, 9, // Predicate_load
/*381823*/                OPC_MoveParent,
/*381824*/                OPC_MoveParent,
/*381825*/                OPC_CheckChild2Same, 1,
/*381827*/                OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->381852
/*381830*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*381832*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*381835*/                  OPC_EmitMergeInputChains, 1, 3, 
/*381838*/                  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>>), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                            // Dst: (VFMADDSUB213PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*381852*/                /*SwitchType*/ 22, MVT::v4f64,// ->381876
/*381854*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*381856*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*381859*/                  OPC_EmitMergeInputChains, 1, 3, 
/*381862*/                  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>>), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                            // Dst: (VFMADDSUB213PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*381876*/                0, // EndSwitchType
/*381877*/              /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->381948
/*381880*/                OPC_RecordMemRef,
/*381881*/                OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*381882*/                OPC_CheckFoldableChainNode,
/*381883*/                OPC_RecordChild1, // #4 = $src3
/*381884*/                OPC_Scope, 30, /*->381916*/ // 2 children in Scope
/*381886*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*381888*/                  OPC_MoveParent,
/*381889*/                  OPC_MoveParent,
/*381890*/                  OPC_CheckChild2Same, 1,
/*381892*/                  OPC_CheckType, MVT::v4f32,
/*381894*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*381896*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*381899*/                  OPC_EmitMergeInputChains, 1, 3, 
/*381902*/                  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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                            // Dst: (VFMADDSUB213PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*381916*/                /*Scope*/ 30, /*->381947*/
/*381917*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*381919*/                  OPC_MoveParent,
/*381920*/                  OPC_MoveParent,
/*381921*/                  OPC_CheckChild2Same, 1,
/*381923*/                  OPC_CheckType, MVT::v4f64,
/*381925*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*381927*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*381930*/                  OPC_EmitMergeInputChains, 1, 3, 
/*381933*/                  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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                            // Dst: (VFMADDSUB213PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*381947*/                0, /*End of Scope*/
/*381948*/              0, // EndSwitchOpcode
/*381949*/            /*Scope*/ 9|128,1/*137*/, /*->382088*/
/*381951*/              OPC_MoveChild0,
/*381952*/              OPC_SwitchOpcode /*2 cases */, 60, TARGET_VAL(ISD::LOAD),// ->382016
/*381956*/                OPC_RecordMemRef,
/*381957*/                OPC_RecordNode, // #1 = 'ld' chained node
/*381958*/                OPC_CheckFoldableChainNode,
/*381959*/                OPC_RecordChild1, // #2 = $src3
/*381960*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*381962*/                OPC_CheckPredicate, 9, // Predicate_load
/*381964*/                OPC_MoveParent,
/*381965*/                OPC_RecordChild1, // #3 = $src2
/*381966*/                OPC_RecordChild2, // #4 = $src1
/*381967*/                OPC_MoveParent,
/*381968*/                OPC_CheckChild2Same, 4,
/*381970*/                OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->381993
/*381973*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*381975*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*381978*/                  OPC_EmitMergeInputChains1_1,
/*381979*/                  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>>, 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)
/*381993*/                /*SwitchType*/ 20, MVT::v4f64,// ->382015
/*381995*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*381997*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*382000*/                  OPC_EmitMergeInputChains1_1,
/*382001*/                  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>>, 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)
/*382015*/                0, // EndSwitchType
/*382016*/              /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->382087
/*382019*/                OPC_RecordMemRef,
/*382020*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*382021*/                OPC_CheckFoldableChainNode,
/*382022*/                OPC_RecordChild1, // #2 = $src3
/*382023*/                OPC_Scope, 30, /*->382055*/ // 2 children in Scope
/*382025*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*382027*/                  OPC_MoveParent,
/*382028*/                  OPC_RecordChild1, // #3 = $src2
/*382029*/                  OPC_RecordChild2, // #4 = $src1
/*382030*/                  OPC_MoveParent,
/*382031*/                  OPC_CheckChild2Same, 4,
/*382033*/                  OPC_CheckType, MVT::v4f32,
/*382035*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*382037*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*382040*/                  OPC_EmitMergeInputChains1_1,
/*382041*/                  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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                            // Dst: (VFMADDSUB231PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*382055*/                /*Scope*/ 30, /*->382086*/
/*382056*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*382058*/                  OPC_MoveParent,
/*382059*/                  OPC_RecordChild1, // #3 = $src2
/*382060*/                  OPC_RecordChild2, // #4 = $src1
/*382061*/                  OPC_MoveParent,
/*382062*/                  OPC_CheckChild2Same, 4,
/*382064*/                  OPC_CheckType, MVT::v4f64,
/*382066*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*382068*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*382071*/                  OPC_EmitMergeInputChains1_1,
/*382072*/                  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] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                            // Dst: (VFMADDSUB231PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*382086*/                0, /*End of Scope*/
/*382087*/              0, // EndSwitchOpcode
/*382088*/            /*Scope*/ 7|128,1/*135*/, /*->382225*/
/*382090*/              OPC_RecordChild0, // #1 = $src1
/*382091*/              OPC_MoveChild1,
/*382092*/              OPC_SwitchOpcode /*2 cases */, 59, TARGET_VAL(ISD::LOAD),// ->382155
/*382096*/                OPC_RecordMemRef,
/*382097*/                OPC_RecordNode, // #2 = 'ld' chained node
/*382098*/                OPC_CheckFoldableChainNode,
/*382099*/                OPC_RecordChild1, // #3 = $src3
/*382100*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*382102*/                OPC_CheckPredicate, 9, // Predicate_load
/*382104*/                OPC_MoveParent,
/*382105*/                OPC_RecordChild2, // #4 = $src2
/*382106*/                OPC_MoveParent,
/*382107*/                OPC_CheckChild2Same, 1,
/*382109*/                OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->382132
/*382112*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*382114*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*382117*/                  OPC_EmitMergeInputChains1_2,
/*382118*/                  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>>, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                            // Dst: (VFMADDSUB132PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*382132*/                /*SwitchType*/ 20, MVT::v4f64,// ->382154
/*382134*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*382136*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*382139*/                  OPC_EmitMergeInputChains1_2,
/*382140*/                  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>>, VR256X:{ *:[v4f64] }:$src2), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                            // Dst: (VFMADDSUB132PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*382154*/                0, // EndSwitchType
/*382155*/              /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->382224
/*382158*/                OPC_RecordMemRef,
/*382159*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*382160*/                OPC_CheckFoldableChainNode,
/*382161*/                OPC_RecordChild1, // #3 = $src3
/*382162*/                OPC_Scope, 29, /*->382193*/ // 2 children in Scope
/*382164*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*382166*/                  OPC_MoveParent,
/*382167*/                  OPC_RecordChild2, // #4 = $src2
/*382168*/                  OPC_MoveParent,
/*382169*/                  OPC_CheckChild2Same, 1,
/*382171*/                  OPC_CheckType, MVT::v4f32,
/*382173*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*382175*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*382178*/                  OPC_EmitMergeInputChains1_2,
/*382179*/                  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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                            // Dst: (VFMADDSUB132PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*382193*/                /*Scope*/ 29, /*->382223*/
/*382194*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*382196*/                  OPC_MoveParent,
/*382197*/                  OPC_RecordChild2, // #4 = $src2
/*382198*/                  OPC_MoveParent,
/*382199*/                  OPC_CheckChild2Same, 1,
/*382201*/                  OPC_CheckType, MVT::v4f64,
/*382203*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*382205*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*382208*/                  OPC_EmitMergeInputChains1_2,
/*382209*/                  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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src2), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                            // Dst: (VFMADDSUB132PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*382223*/                0, /*End of Scope*/
/*382224*/              0, // EndSwitchOpcode
/*382225*/            0, /*End of Scope*/
/*382226*/          /*SwitchOpcode*/ 75|128,6/*843*/, TARGET_VAL(X86ISD::FMSUBADD),// ->383073
/*382230*/            OPC_Scope, 25|128,2/*281*/, /*->382514*/ // 5 children in Scope
/*382233*/              OPC_RecordChild0, // #1 = $src2
/*382234*/              OPC_Scope, 12|128,1/*140*/, /*->382377*/ // 2 children in Scope
/*382237*/                OPC_RecordChild1, // #2 = $src1
/*382238*/                OPC_MoveChild2,
/*382239*/                OPC_SwitchOpcode /*2 cases */, 62, TARGET_VAL(ISD::LOAD),// ->382305
/*382243*/                  OPC_RecordMemRef,
/*382244*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*382245*/                  OPC_CheckFoldableChainNode,
/*382246*/                  OPC_RecordChild1, // #4 = $src3
/*382247*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*382249*/                  OPC_CheckPredicate, 9, // Predicate_load
/*382251*/                  OPC_MoveParent,
/*382252*/                  OPC_MoveParent,
/*382253*/                  OPC_CheckChild2Same, 2,
/*382255*/                  OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->382280
/*382258*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*382260*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*382263*/                    OPC_EmitMergeInputChains, 1, 3, 
/*382266*/                    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>>), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                              // Dst: (VFMSUBADD213PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*382280*/                  /*SwitchType*/ 22, MVT::v4f64,// ->382304
/*382282*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*382284*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*382287*/                    OPC_EmitMergeInputChains, 1, 3, 
/*382290*/                    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>>), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                              // Dst: (VFMSUBADD213PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*382304*/                  0, // EndSwitchType
/*382305*/                /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->382376
/*382308*/                  OPC_RecordMemRef,
/*382309*/                  OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*382310*/                  OPC_CheckFoldableChainNode,
/*382311*/                  OPC_RecordChild1, // #4 = $src3
/*382312*/                  OPC_Scope, 30, /*->382344*/ // 2 children in Scope
/*382314*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*382316*/                    OPC_MoveParent,
/*382317*/                    OPC_MoveParent,
/*382318*/                    OPC_CheckChild2Same, 2,
/*382320*/                    OPC_CheckType, MVT::v4f32,
/*382322*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*382324*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*382327*/                    OPC_EmitMergeInputChains, 1, 3, 
/*382330*/                    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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                              // Dst: (VFMSUBADD213PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*382344*/                  /*Scope*/ 30, /*->382375*/
/*382345*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*382347*/                    OPC_MoveParent,
/*382348*/                    OPC_MoveParent,
/*382349*/                    OPC_CheckChild2Same, 2,
/*382351*/                    OPC_CheckType, MVT::v4f64,
/*382353*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*382355*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*382358*/                    OPC_EmitMergeInputChains, 1, 3, 
/*382361*/                    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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                              // Dst: (VFMSUBADD213PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*382375*/                  0, /*End of Scope*/
/*382376*/                0, // EndSwitchOpcode
/*382377*/              /*Scope*/ 6|128,1/*134*/, /*->382513*/
/*382379*/                OPC_MoveChild1,
/*382380*/                OPC_SwitchOpcode /*2 cases */, 59, TARGET_VAL(ISD::LOAD),// ->382443
/*382384*/                  OPC_RecordMemRef,
/*382385*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*382386*/                  OPC_CheckFoldableChainNode,
/*382387*/                  OPC_RecordChild1, // #3 = $src3
/*382388*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*382390*/                  OPC_CheckPredicate, 9, // Predicate_load
/*382392*/                  OPC_MoveParent,
/*382393*/                  OPC_RecordChild2, // #4 = $src1
/*382394*/                  OPC_MoveParent,
/*382395*/                  OPC_CheckChild2Same, 4,
/*382397*/                  OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->382420
/*382400*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*382402*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*382405*/                    OPC_EmitMergeInputChains1_2,
/*382406*/                    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>>, VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                              // Dst: (VFMSUBADD231PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*382420*/                  /*SwitchType*/ 20, MVT::v4f64,// ->382442
/*382422*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*382424*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*382427*/                    OPC_EmitMergeInputChains1_2,
/*382428*/                    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>>, VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                              // Dst: (VFMSUBADD231PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*382442*/                  0, // EndSwitchType
/*382443*/                /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->382512
/*382446*/                  OPC_RecordMemRef,
/*382447*/                  OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*382448*/                  OPC_CheckFoldableChainNode,
/*382449*/                  OPC_RecordChild1, // #3 = $src3
/*382450*/                  OPC_Scope, 29, /*->382481*/ // 2 children in Scope
/*382452*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*382454*/                    OPC_MoveParent,
/*382455*/                    OPC_RecordChild2, // #4 = $src1
/*382456*/                    OPC_MoveParent,
/*382457*/                    OPC_CheckChild2Same, 4,
/*382459*/                    OPC_CheckType, MVT::v4f32,
/*382461*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*382463*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*382466*/                    OPC_EmitMergeInputChains1_2,
/*382467*/                    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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                              // Dst: (VFMSUBADD231PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*382481*/                  /*Scope*/ 29, /*->382511*/
/*382482*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*382484*/                    OPC_MoveParent,
/*382485*/                    OPC_RecordChild2, // #4 = $src1
/*382486*/                    OPC_MoveParent,
/*382487*/                    OPC_CheckChild2Same, 4,
/*382489*/                    OPC_CheckType, MVT::v4f64,
/*382491*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*382493*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*382496*/                    OPC_EmitMergeInputChains1_2,
/*382497*/                    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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                              // Dst: (VFMSUBADD231PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*382511*/                  0, /*End of Scope*/
/*382512*/                0, // EndSwitchOpcode
/*382513*/              0, /*End of Scope*/
/*382514*/            /*Scope*/ 9|128,1/*137*/, /*->382653*/
/*382516*/              OPC_MoveChild0,
/*382517*/              OPC_SwitchOpcode /*2 cases */, 60, TARGET_VAL(ISD::LOAD),// ->382581
/*382521*/                OPC_RecordMemRef,
/*382522*/                OPC_RecordNode, // #1 = 'ld' chained node
/*382523*/                OPC_CheckFoldableChainNode,
/*382524*/                OPC_RecordChild1, // #2 = $src3
/*382525*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*382527*/                OPC_CheckPredicate, 9, // Predicate_load
/*382529*/                OPC_MoveParent,
/*382530*/                OPC_RecordChild1, // #3 = $src1
/*382531*/                OPC_RecordChild2, // #4 = $src2
/*382532*/                OPC_MoveParent,
/*382533*/                OPC_CheckChild2Same, 3,
/*382535*/                OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->382558
/*382538*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*382540*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*382543*/                  OPC_EmitMergeInputChains1_1,
/*382544*/                  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>>, 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)
/*382558*/                /*SwitchType*/ 20, MVT::v4f64,// ->382580
/*382560*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*382562*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*382565*/                  OPC_EmitMergeInputChains1_1,
/*382566*/                  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>>, 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)
/*382580*/                0, // EndSwitchType
/*382581*/              /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->382652
/*382584*/                OPC_RecordMemRef,
/*382585*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*382586*/                OPC_CheckFoldableChainNode,
/*382587*/                OPC_RecordChild1, // #2 = $src3
/*382588*/                OPC_Scope, 30, /*->382620*/ // 2 children in Scope
/*382590*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*382592*/                  OPC_MoveParent,
/*382593*/                  OPC_RecordChild1, // #3 = $src1
/*382594*/                  OPC_RecordChild2, // #4 = $src2
/*382595*/                  OPC_MoveParent,
/*382596*/                  OPC_CheckChild2Same, 3,
/*382598*/                  OPC_CheckType, MVT::v4f32,
/*382600*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*382602*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*382605*/                  OPC_EmitMergeInputChains1_1,
/*382606*/                  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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                            // Dst: (VFMSUBADD132PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*382620*/                /*Scope*/ 30, /*->382651*/
/*382621*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*382623*/                  OPC_MoveParent,
/*382624*/                  OPC_RecordChild1, // #3 = $src1
/*382625*/                  OPC_RecordChild2, // #4 = $src2
/*382626*/                  OPC_MoveParent,
/*382627*/                  OPC_CheckChild2Same, 3,
/*382629*/                  OPC_CheckType, MVT::v4f64,
/*382631*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*382633*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*382636*/                  OPC_EmitMergeInputChains1_1,
/*382637*/                  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] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                            // Dst: (VFMSUBADD132PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*382651*/                0, /*End of Scope*/
/*382652*/              0, // EndSwitchOpcode
/*382653*/            /*Scope*/ 13|128,1/*141*/, /*->382796*/
/*382655*/              OPC_RecordChild0, // #1 = $src1
/*382656*/              OPC_RecordChild1, // #2 = $src2
/*382657*/              OPC_MoveChild2,
/*382658*/              OPC_SwitchOpcode /*2 cases */, 62, TARGET_VAL(ISD::LOAD),// ->382724
/*382662*/                OPC_RecordMemRef,
/*382663*/                OPC_RecordNode, // #3 = 'ld' chained node
/*382664*/                OPC_CheckFoldableChainNode,
/*382665*/                OPC_RecordChild1, // #4 = $src3
/*382666*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*382668*/                OPC_CheckPredicate, 9, // Predicate_load
/*382670*/                OPC_MoveParent,
/*382671*/                OPC_MoveParent,
/*382672*/                OPC_CheckChild2Same, 1,
/*382674*/                OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->382699
/*382677*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*382679*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*382682*/                  OPC_EmitMergeInputChains, 1, 3, 
/*382685*/                  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>>), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                            // Dst: (VFMSUBADD213PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*382699*/                /*SwitchType*/ 22, MVT::v4f64,// ->382723
/*382701*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*382703*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*382706*/                  OPC_EmitMergeInputChains, 1, 3, 
/*382709*/                  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>>), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                            // Dst: (VFMSUBADD213PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*382723*/                0, // EndSwitchType
/*382724*/              /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->382795
/*382727*/                OPC_RecordMemRef,
/*382728*/                OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*382729*/                OPC_CheckFoldableChainNode,
/*382730*/                OPC_RecordChild1, // #4 = $src3
/*382731*/                OPC_Scope, 30, /*->382763*/ // 2 children in Scope
/*382733*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*382735*/                  OPC_MoveParent,
/*382736*/                  OPC_MoveParent,
/*382737*/                  OPC_CheckChild2Same, 1,
/*382739*/                  OPC_CheckType, MVT::v4f32,
/*382741*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*382743*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*382746*/                  OPC_EmitMergeInputChains, 1, 3, 
/*382749*/                  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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                            // Dst: (VFMSUBADD213PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*382763*/                /*Scope*/ 30, /*->382794*/
/*382764*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*382766*/                  OPC_MoveParent,
/*382767*/                  OPC_MoveParent,
/*382768*/                  OPC_CheckChild2Same, 1,
/*382770*/                  OPC_CheckType, MVT::v4f64,
/*382772*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*382774*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*382777*/                  OPC_EmitMergeInputChains, 1, 3, 
/*382780*/                  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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                            // Dst: (VFMSUBADD213PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*382794*/                0, /*End of Scope*/
/*382795*/              0, // EndSwitchOpcode
/*382796*/            /*Scope*/ 9|128,1/*137*/, /*->382935*/
/*382798*/              OPC_MoveChild0,
/*382799*/              OPC_SwitchOpcode /*2 cases */, 60, TARGET_VAL(ISD::LOAD),// ->382863
/*382803*/                OPC_RecordMemRef,
/*382804*/                OPC_RecordNode, // #1 = 'ld' chained node
/*382805*/                OPC_CheckFoldableChainNode,
/*382806*/                OPC_RecordChild1, // #2 = $src3
/*382807*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*382809*/                OPC_CheckPredicate, 9, // Predicate_load
/*382811*/                OPC_MoveParent,
/*382812*/                OPC_RecordChild1, // #3 = $src2
/*382813*/                OPC_RecordChild2, // #4 = $src1
/*382814*/                OPC_MoveParent,
/*382815*/                OPC_CheckChild2Same, 4,
/*382817*/                OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->382840
/*382820*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*382822*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*382825*/                  OPC_EmitMergeInputChains1_1,
/*382826*/                  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>>, 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)
/*382840*/                /*SwitchType*/ 20, MVT::v4f64,// ->382862
/*382842*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*382844*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*382847*/                  OPC_EmitMergeInputChains1_1,
/*382848*/                  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>>, 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)
/*382862*/                0, // EndSwitchType
/*382863*/              /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->382934
/*382866*/                OPC_RecordMemRef,
/*382867*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*382868*/                OPC_CheckFoldableChainNode,
/*382869*/                OPC_RecordChild1, // #2 = $src3
/*382870*/                OPC_Scope, 30, /*->382902*/ // 2 children in Scope
/*382872*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*382874*/                  OPC_MoveParent,
/*382875*/                  OPC_RecordChild1, // #3 = $src2
/*382876*/                  OPC_RecordChild2, // #4 = $src1
/*382877*/                  OPC_MoveParent,
/*382878*/                  OPC_CheckChild2Same, 4,
/*382880*/                  OPC_CheckType, MVT::v4f32,
/*382882*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*382884*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*382887*/                  OPC_EmitMergeInputChains1_1,
/*382888*/                  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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                            // Dst: (VFMSUBADD231PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*382902*/                /*Scope*/ 30, /*->382933*/
/*382903*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*382905*/                  OPC_MoveParent,
/*382906*/                  OPC_RecordChild1, // #3 = $src2
/*382907*/                  OPC_RecordChild2, // #4 = $src1
/*382908*/                  OPC_MoveParent,
/*382909*/                  OPC_CheckChild2Same, 4,
/*382911*/                  OPC_CheckType, MVT::v4f64,
/*382913*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*382915*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*382918*/                  OPC_EmitMergeInputChains1_1,
/*382919*/                  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] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                            // Dst: (VFMSUBADD231PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*382933*/                0, /*End of Scope*/
/*382934*/              0, // EndSwitchOpcode
/*382935*/            /*Scope*/ 7|128,1/*135*/, /*->383072*/
/*382937*/              OPC_RecordChild0, // #1 = $src1
/*382938*/              OPC_MoveChild1,
/*382939*/              OPC_SwitchOpcode /*2 cases */, 59, TARGET_VAL(ISD::LOAD),// ->383002
/*382943*/                OPC_RecordMemRef,
/*382944*/                OPC_RecordNode, // #2 = 'ld' chained node
/*382945*/                OPC_CheckFoldableChainNode,
/*382946*/                OPC_RecordChild1, // #3 = $src3
/*382947*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*382949*/                OPC_CheckPredicate, 9, // Predicate_load
/*382951*/                OPC_MoveParent,
/*382952*/                OPC_RecordChild2, // #4 = $src2
/*382953*/                OPC_MoveParent,
/*382954*/                OPC_CheckChild2Same, 1,
/*382956*/                OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->382979
/*382959*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*382961*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*382964*/                  OPC_EmitMergeInputChains1_2,
/*382965*/                  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>>, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                            // Dst: (VFMSUBADD132PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*382979*/                /*SwitchType*/ 20, MVT::v4f64,// ->383001
/*382981*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*382983*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*382986*/                  OPC_EmitMergeInputChains1_2,
/*382987*/                  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>>, VR256X:{ *:[v4f64] }:$src2), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                            // Dst: (VFMSUBADD132PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*383001*/                0, // EndSwitchType
/*383002*/              /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->383071
/*383005*/                OPC_RecordMemRef,
/*383006*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*383007*/                OPC_CheckFoldableChainNode,
/*383008*/                OPC_RecordChild1, // #3 = $src3
/*383009*/                OPC_Scope, 29, /*->383040*/ // 2 children in Scope
/*383011*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*383013*/                  OPC_MoveParent,
/*383014*/                  OPC_RecordChild2, // #4 = $src2
/*383015*/                  OPC_MoveParent,
/*383016*/                  OPC_CheckChild2Same, 1,
/*383018*/                  OPC_CheckType, MVT::v4f32,
/*383020*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*383022*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*383025*/                  OPC_EmitMergeInputChains1_2,
/*383026*/                  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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                            // Dst: (VFMSUBADD132PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*383040*/                /*Scope*/ 29, /*->383070*/
/*383041*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*383043*/                  OPC_MoveParent,
/*383044*/                  OPC_RecordChild2, // #4 = $src2
/*383045*/                  OPC_MoveParent,
/*383046*/                  OPC_CheckChild2Same, 1,
/*383048*/                  OPC_CheckType, MVT::v4f64,
/*383050*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*383052*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*383055*/                  OPC_EmitMergeInputChains1_2,
/*383056*/                  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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src2), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                            // Dst: (VFMSUBADD132PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*383070*/                0, /*End of Scope*/
/*383071*/              0, // EndSwitchOpcode
/*383072*/            0, /*End of Scope*/
/*383073*/          /*SwitchOpcode*/ 75|128,6/*843*/, TARGET_VAL(X86ISD::FNMADD),// ->383920
/*383077*/            OPC_Scope, 25|128,2/*281*/, /*->383361*/ // 5 children in Scope
/*383080*/              OPC_RecordChild0, // #1 = $src2
/*383081*/              OPC_Scope, 12|128,1/*140*/, /*->383224*/ // 2 children in Scope
/*383084*/                OPC_RecordChild1, // #2 = $src1
/*383085*/                OPC_MoveChild2,
/*383086*/                OPC_SwitchOpcode /*2 cases */, 62, TARGET_VAL(ISD::LOAD),// ->383152
/*383090*/                  OPC_RecordMemRef,
/*383091*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*383092*/                  OPC_CheckFoldableChainNode,
/*383093*/                  OPC_RecordChild1, // #4 = $src3
/*383094*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*383096*/                  OPC_CheckPredicate, 9, // Predicate_load
/*383098*/                  OPC_MoveParent,
/*383099*/                  OPC_MoveParent,
/*383100*/                  OPC_CheckChild2Same, 2,
/*383102*/                  OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->383127
/*383105*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*383107*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*383110*/                    OPC_EmitMergeInputChains, 1, 3, 
/*383113*/                    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>>), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                              // Dst: (VFNMADD213PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*383127*/                  /*SwitchType*/ 22, MVT::v4f64,// ->383151
/*383129*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*383131*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*383134*/                    OPC_EmitMergeInputChains, 1, 3, 
/*383137*/                    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>>), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                              // Dst: (VFNMADD213PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*383151*/                  0, // EndSwitchType
/*383152*/                /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->383223
/*383155*/                  OPC_RecordMemRef,
/*383156*/                  OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*383157*/                  OPC_CheckFoldableChainNode,
/*383158*/                  OPC_RecordChild1, // #4 = $src3
/*383159*/                  OPC_Scope, 30, /*->383191*/ // 2 children in Scope
/*383161*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*383163*/                    OPC_MoveParent,
/*383164*/                    OPC_MoveParent,
/*383165*/                    OPC_CheckChild2Same, 2,
/*383167*/                    OPC_CheckType, MVT::v4f32,
/*383169*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*383171*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*383174*/                    OPC_EmitMergeInputChains, 1, 3, 
/*383177*/                    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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                              // Dst: (VFNMADD213PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*383191*/                  /*Scope*/ 30, /*->383222*/
/*383192*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*383194*/                    OPC_MoveParent,
/*383195*/                    OPC_MoveParent,
/*383196*/                    OPC_CheckChild2Same, 2,
/*383198*/                    OPC_CheckType, MVT::v4f64,
/*383200*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*383202*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*383205*/                    OPC_EmitMergeInputChains, 1, 3, 
/*383208*/                    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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                              // Dst: (VFNMADD213PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*383222*/                  0, /*End of Scope*/
/*383223*/                0, // EndSwitchOpcode
/*383224*/              /*Scope*/ 6|128,1/*134*/, /*->383360*/
/*383226*/                OPC_MoveChild1,
/*383227*/                OPC_SwitchOpcode /*2 cases */, 59, TARGET_VAL(ISD::LOAD),// ->383290
/*383231*/                  OPC_RecordMemRef,
/*383232*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*383233*/                  OPC_CheckFoldableChainNode,
/*383234*/                  OPC_RecordChild1, // #3 = $src3
/*383235*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*383237*/                  OPC_CheckPredicate, 9, // Predicate_load
/*383239*/                  OPC_MoveParent,
/*383240*/                  OPC_RecordChild2, // #4 = $src1
/*383241*/                  OPC_MoveParent,
/*383242*/                  OPC_CheckChild2Same, 4,
/*383244*/                  OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->383267
/*383247*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*383249*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*383252*/                    OPC_EmitMergeInputChains1_2,
/*383253*/                    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>>, VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                              // Dst: (VFNMADD231PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*383267*/                  /*SwitchType*/ 20, MVT::v4f64,// ->383289
/*383269*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*383271*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*383274*/                    OPC_EmitMergeInputChains1_2,
/*383275*/                    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>>, VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                              // Dst: (VFNMADD231PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*383289*/                  0, // EndSwitchType
/*383290*/                /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->383359
/*383293*/                  OPC_RecordMemRef,
/*383294*/                  OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*383295*/                  OPC_CheckFoldableChainNode,
/*383296*/                  OPC_RecordChild1, // #3 = $src3
/*383297*/                  OPC_Scope, 29, /*->383328*/ // 2 children in Scope
/*383299*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*383301*/                    OPC_MoveParent,
/*383302*/                    OPC_RecordChild2, // #4 = $src1
/*383303*/                    OPC_MoveParent,
/*383304*/                    OPC_CheckChild2Same, 4,
/*383306*/                    OPC_CheckType, MVT::v4f32,
/*383308*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*383310*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*383313*/                    OPC_EmitMergeInputChains1_2,
/*383314*/                    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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                              // Dst: (VFNMADD231PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*383328*/                  /*Scope*/ 29, /*->383358*/
/*383329*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*383331*/                    OPC_MoveParent,
/*383332*/                    OPC_RecordChild2, // #4 = $src1
/*383333*/                    OPC_MoveParent,
/*383334*/                    OPC_CheckChild2Same, 4,
/*383336*/                    OPC_CheckType, MVT::v4f64,
/*383338*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*383340*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*383343*/                    OPC_EmitMergeInputChains1_2,
/*383344*/                    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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                              // Dst: (VFNMADD231PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*383358*/                  0, /*End of Scope*/
/*383359*/                0, // EndSwitchOpcode
/*383360*/              0, /*End of Scope*/
/*383361*/            /*Scope*/ 9|128,1/*137*/, /*->383500*/
/*383363*/              OPC_MoveChild0,
/*383364*/              OPC_SwitchOpcode /*2 cases */, 60, TARGET_VAL(ISD::LOAD),// ->383428
/*383368*/                OPC_RecordMemRef,
/*383369*/                OPC_RecordNode, // #1 = 'ld' chained node
/*383370*/                OPC_CheckFoldableChainNode,
/*383371*/                OPC_RecordChild1, // #2 = $src3
/*383372*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*383374*/                OPC_CheckPredicate, 9, // Predicate_load
/*383376*/                OPC_MoveParent,
/*383377*/                OPC_RecordChild1, // #3 = $src1
/*383378*/                OPC_RecordChild2, // #4 = $src2
/*383379*/                OPC_MoveParent,
/*383380*/                OPC_CheckChild2Same, 3,
/*383382*/                OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->383405
/*383385*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*383387*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*383390*/                  OPC_EmitMergeInputChains1_1,
/*383391*/                  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>>, 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)
/*383405*/                /*SwitchType*/ 20, MVT::v4f64,// ->383427
/*383407*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*383409*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*383412*/                  OPC_EmitMergeInputChains1_1,
/*383413*/                  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>>, 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)
/*383427*/                0, // EndSwitchType
/*383428*/              /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->383499
/*383431*/                OPC_RecordMemRef,
/*383432*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*383433*/                OPC_CheckFoldableChainNode,
/*383434*/                OPC_RecordChild1, // #2 = $src3
/*383435*/                OPC_Scope, 30, /*->383467*/ // 2 children in Scope
/*383437*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*383439*/                  OPC_MoveParent,
/*383440*/                  OPC_RecordChild1, // #3 = $src1
/*383441*/                  OPC_RecordChild2, // #4 = $src2
/*383442*/                  OPC_MoveParent,
/*383443*/                  OPC_CheckChild2Same, 3,
/*383445*/                  OPC_CheckType, MVT::v4f32,
/*383447*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*383449*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*383452*/                  OPC_EmitMergeInputChains1_1,
/*383453*/                  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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                            // Dst: (VFNMADD132PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*383467*/                /*Scope*/ 30, /*->383498*/
/*383468*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*383470*/                  OPC_MoveParent,
/*383471*/                  OPC_RecordChild1, // #3 = $src1
/*383472*/                  OPC_RecordChild2, // #4 = $src2
/*383473*/                  OPC_MoveParent,
/*383474*/                  OPC_CheckChild2Same, 3,
/*383476*/                  OPC_CheckType, MVT::v4f64,
/*383478*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*383480*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*383483*/                  OPC_EmitMergeInputChains1_1,
/*383484*/                  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] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                            // Dst: (VFNMADD132PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*383498*/                0, /*End of Scope*/
/*383499*/              0, // EndSwitchOpcode
/*383500*/            /*Scope*/ 13|128,1/*141*/, /*->383643*/
/*383502*/              OPC_RecordChild0, // #1 = $src1
/*383503*/              OPC_RecordChild1, // #2 = $src2
/*383504*/              OPC_MoveChild2,
/*383505*/              OPC_SwitchOpcode /*2 cases */, 62, TARGET_VAL(ISD::LOAD),// ->383571
/*383509*/                OPC_RecordMemRef,
/*383510*/                OPC_RecordNode, // #3 = 'ld' chained node
/*383511*/                OPC_CheckFoldableChainNode,
/*383512*/                OPC_RecordChild1, // #4 = $src3
/*383513*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*383515*/                OPC_CheckPredicate, 9, // Predicate_load
/*383517*/                OPC_MoveParent,
/*383518*/                OPC_MoveParent,
/*383519*/                OPC_CheckChild2Same, 1,
/*383521*/                OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->383546
/*383524*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*383526*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*383529*/                  OPC_EmitMergeInputChains, 1, 3, 
/*383532*/                  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>>), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                            // Dst: (VFNMADD213PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*383546*/                /*SwitchType*/ 22, MVT::v4f64,// ->383570
/*383548*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*383550*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*383553*/                  OPC_EmitMergeInputChains, 1, 3, 
/*383556*/                  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>>), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                            // Dst: (VFNMADD213PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*383570*/                0, // EndSwitchType
/*383571*/              /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->383642
/*383574*/                OPC_RecordMemRef,
/*383575*/                OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*383576*/                OPC_CheckFoldableChainNode,
/*383577*/                OPC_RecordChild1, // #4 = $src3
/*383578*/                OPC_Scope, 30, /*->383610*/ // 2 children in Scope
/*383580*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*383582*/                  OPC_MoveParent,
/*383583*/                  OPC_MoveParent,
/*383584*/                  OPC_CheckChild2Same, 1,
/*383586*/                  OPC_CheckType, MVT::v4f32,
/*383588*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*383590*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*383593*/                  OPC_EmitMergeInputChains, 1, 3, 
/*383596*/                  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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                            // Dst: (VFNMADD213PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*383610*/                /*Scope*/ 30, /*->383641*/
/*383611*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*383613*/                  OPC_MoveParent,
/*383614*/                  OPC_MoveParent,
/*383615*/                  OPC_CheckChild2Same, 1,
/*383617*/                  OPC_CheckType, MVT::v4f64,
/*383619*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*383621*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*383624*/                  OPC_EmitMergeInputChains, 1, 3, 
/*383627*/                  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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                            // Dst: (VFNMADD213PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*383641*/                0, /*End of Scope*/
/*383642*/              0, // EndSwitchOpcode
/*383643*/            /*Scope*/ 9|128,1/*137*/, /*->383782*/
/*383645*/              OPC_MoveChild0,
/*383646*/              OPC_SwitchOpcode /*2 cases */, 60, TARGET_VAL(ISD::LOAD),// ->383710
/*383650*/                OPC_RecordMemRef,
/*383651*/                OPC_RecordNode, // #1 = 'ld' chained node
/*383652*/                OPC_CheckFoldableChainNode,
/*383653*/                OPC_RecordChild1, // #2 = $src3
/*383654*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*383656*/                OPC_CheckPredicate, 9, // Predicate_load
/*383658*/                OPC_MoveParent,
/*383659*/                OPC_RecordChild1, // #3 = $src2
/*383660*/                OPC_RecordChild2, // #4 = $src1
/*383661*/                OPC_MoveParent,
/*383662*/                OPC_CheckChild2Same, 4,
/*383664*/                OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->383687
/*383667*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*383669*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*383672*/                  OPC_EmitMergeInputChains1_1,
/*383673*/                  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>>, 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)
/*383687*/                /*SwitchType*/ 20, MVT::v4f64,// ->383709
/*383689*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*383691*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*383694*/                  OPC_EmitMergeInputChains1_1,
/*383695*/                  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>>, 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)
/*383709*/                0, // EndSwitchType
/*383710*/              /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->383781
/*383713*/                OPC_RecordMemRef,
/*383714*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*383715*/                OPC_CheckFoldableChainNode,
/*383716*/                OPC_RecordChild1, // #2 = $src3
/*383717*/                OPC_Scope, 30, /*->383749*/ // 2 children in Scope
/*383719*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*383721*/                  OPC_MoveParent,
/*383722*/                  OPC_RecordChild1, // #3 = $src2
/*383723*/                  OPC_RecordChild2, // #4 = $src1
/*383724*/                  OPC_MoveParent,
/*383725*/                  OPC_CheckChild2Same, 4,
/*383727*/                  OPC_CheckType, MVT::v4f32,
/*383729*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*383731*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*383734*/                  OPC_EmitMergeInputChains1_1,
/*383735*/                  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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                            // Dst: (VFNMADD231PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*383749*/                /*Scope*/ 30, /*->383780*/
/*383750*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*383752*/                  OPC_MoveParent,
/*383753*/                  OPC_RecordChild1, // #3 = $src2
/*383754*/                  OPC_RecordChild2, // #4 = $src1
/*383755*/                  OPC_MoveParent,
/*383756*/                  OPC_CheckChild2Same, 4,
/*383758*/                  OPC_CheckType, MVT::v4f64,
/*383760*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*383762*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*383765*/                  OPC_EmitMergeInputChains1_1,
/*383766*/                  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] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                            // Dst: (VFNMADD231PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*383780*/                0, /*End of Scope*/
/*383781*/              0, // EndSwitchOpcode
/*383782*/            /*Scope*/ 7|128,1/*135*/, /*->383919*/
/*383784*/              OPC_RecordChild0, // #1 = $src1
/*383785*/              OPC_MoveChild1,
/*383786*/              OPC_SwitchOpcode /*2 cases */, 59, TARGET_VAL(ISD::LOAD),// ->383849
/*383790*/                OPC_RecordMemRef,
/*383791*/                OPC_RecordNode, // #2 = 'ld' chained node
/*383792*/                OPC_CheckFoldableChainNode,
/*383793*/                OPC_RecordChild1, // #3 = $src3
/*383794*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*383796*/                OPC_CheckPredicate, 9, // Predicate_load
/*383798*/                OPC_MoveParent,
/*383799*/                OPC_RecordChild2, // #4 = $src2
/*383800*/                OPC_MoveParent,
/*383801*/                OPC_CheckChild2Same, 1,
/*383803*/                OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->383826
/*383806*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*383808*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*383811*/                  OPC_EmitMergeInputChains1_2,
/*383812*/                  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>>, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                            // Dst: (VFNMADD132PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*383826*/                /*SwitchType*/ 20, MVT::v4f64,// ->383848
/*383828*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*383830*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*383833*/                  OPC_EmitMergeInputChains1_2,
/*383834*/                  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>>, VR256X:{ *:[v4f64] }:$src2), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                            // Dst: (VFNMADD132PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*383848*/                0, // EndSwitchType
/*383849*/              /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->383918
/*383852*/                OPC_RecordMemRef,
/*383853*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*383854*/                OPC_CheckFoldableChainNode,
/*383855*/                OPC_RecordChild1, // #3 = $src3
/*383856*/                OPC_Scope, 29, /*->383887*/ // 2 children in Scope
/*383858*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*383860*/                  OPC_MoveParent,
/*383861*/                  OPC_RecordChild2, // #4 = $src2
/*383862*/                  OPC_MoveParent,
/*383863*/                  OPC_CheckChild2Same, 1,
/*383865*/                  OPC_CheckType, MVT::v4f32,
/*383867*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*383869*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*383872*/                  OPC_EmitMergeInputChains1_2,
/*383873*/                  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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                            // Dst: (VFNMADD132PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*383887*/                /*Scope*/ 29, /*->383917*/
/*383888*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*383890*/                  OPC_MoveParent,
/*383891*/                  OPC_RecordChild2, // #4 = $src2
/*383892*/                  OPC_MoveParent,
/*383893*/                  OPC_CheckChild2Same, 1,
/*383895*/                  OPC_CheckType, MVT::v4f64,
/*383897*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*383899*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*383902*/                  OPC_EmitMergeInputChains1_2,
/*383903*/                  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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src2), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                            // Dst: (VFNMADD132PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*383917*/                0, /*End of Scope*/
/*383918*/              0, // EndSwitchOpcode
/*383919*/            0, /*End of Scope*/
/*383920*/          /*SwitchOpcode*/ 75|128,6/*843*/, TARGET_VAL(X86ISD::FNMSUB),// ->384767
/*383924*/            OPC_Scope, 25|128,2/*281*/, /*->384208*/ // 5 children in Scope
/*383927*/              OPC_RecordChild0, // #1 = $src2
/*383928*/              OPC_Scope, 12|128,1/*140*/, /*->384071*/ // 2 children in Scope
/*383931*/                OPC_RecordChild1, // #2 = $src1
/*383932*/                OPC_MoveChild2,
/*383933*/                OPC_SwitchOpcode /*2 cases */, 62, TARGET_VAL(ISD::LOAD),// ->383999
/*383937*/                  OPC_RecordMemRef,
/*383938*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*383939*/                  OPC_CheckFoldableChainNode,
/*383940*/                  OPC_RecordChild1, // #4 = $src3
/*383941*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*383943*/                  OPC_CheckPredicate, 9, // Predicate_load
/*383945*/                  OPC_MoveParent,
/*383946*/                  OPC_MoveParent,
/*383947*/                  OPC_CheckChild2Same, 2,
/*383949*/                  OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->383974
/*383952*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*383954*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*383957*/                    OPC_EmitMergeInputChains, 1, 3, 
/*383960*/                    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>>), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                              // Dst: (VFNMSUB213PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*383974*/                  /*SwitchType*/ 22, MVT::v4f64,// ->383998
/*383976*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*383978*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*383981*/                    OPC_EmitMergeInputChains, 1, 3, 
/*383984*/                    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>>), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                              // Dst: (VFNMSUB213PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*383998*/                  0, // EndSwitchType
/*383999*/                /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->384070
/*384002*/                  OPC_RecordMemRef,
/*384003*/                  OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*384004*/                  OPC_CheckFoldableChainNode,
/*384005*/                  OPC_RecordChild1, // #4 = $src3
/*384006*/                  OPC_Scope, 30, /*->384038*/ // 2 children in Scope
/*384008*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*384010*/                    OPC_MoveParent,
/*384011*/                    OPC_MoveParent,
/*384012*/                    OPC_CheckChild2Same, 2,
/*384014*/                    OPC_CheckType, MVT::v4f32,
/*384016*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*384018*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*384021*/                    OPC_EmitMergeInputChains, 1, 3, 
/*384024*/                    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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                              // Dst: (VFNMSUB213PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*384038*/                  /*Scope*/ 30, /*->384069*/
/*384039*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*384041*/                    OPC_MoveParent,
/*384042*/                    OPC_MoveParent,
/*384043*/                    OPC_CheckChild2Same, 2,
/*384045*/                    OPC_CheckType, MVT::v4f64,
/*384047*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*384049*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*384052*/                    OPC_EmitMergeInputChains, 1, 3, 
/*384055*/                    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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                              // Dst: (VFNMSUB213PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*384069*/                  0, /*End of Scope*/
/*384070*/                0, // EndSwitchOpcode
/*384071*/              /*Scope*/ 6|128,1/*134*/, /*->384207*/
/*384073*/                OPC_MoveChild1,
/*384074*/                OPC_SwitchOpcode /*2 cases */, 59, TARGET_VAL(ISD::LOAD),// ->384137
/*384078*/                  OPC_RecordMemRef,
/*384079*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*384080*/                  OPC_CheckFoldableChainNode,
/*384081*/                  OPC_RecordChild1, // #3 = $src3
/*384082*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*384084*/                  OPC_CheckPredicate, 9, // Predicate_load
/*384086*/                  OPC_MoveParent,
/*384087*/                  OPC_RecordChild2, // #4 = $src1
/*384088*/                  OPC_MoveParent,
/*384089*/                  OPC_CheckChild2Same, 4,
/*384091*/                  OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->384114
/*384094*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*384096*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*384099*/                    OPC_EmitMergeInputChains1_2,
/*384100*/                    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>>, VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                              // Dst: (VFNMSUB231PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*384114*/                  /*SwitchType*/ 20, MVT::v4f64,// ->384136
/*384116*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*384118*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*384121*/                    OPC_EmitMergeInputChains1_2,
/*384122*/                    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>>, VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                              // Dst: (VFNMSUB231PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*384136*/                  0, // EndSwitchType
/*384137*/                /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->384206
/*384140*/                  OPC_RecordMemRef,
/*384141*/                  OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*384142*/                  OPC_CheckFoldableChainNode,
/*384143*/                  OPC_RecordChild1, // #3 = $src3
/*384144*/                  OPC_Scope, 29, /*->384175*/ // 2 children in Scope
/*384146*/                    OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*384148*/                    OPC_MoveParent,
/*384149*/                    OPC_RecordChild2, // #4 = $src1
/*384150*/                    OPC_MoveParent,
/*384151*/                    OPC_CheckChild2Same, 4,
/*384153*/                    OPC_CheckType, MVT::v4f32,
/*384155*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*384157*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*384160*/                    OPC_EmitMergeInputChains1_2,
/*384161*/                    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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                              // Dst: (VFNMSUB231PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*384175*/                  /*Scope*/ 29, /*->384205*/
/*384176*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*384178*/                    OPC_MoveParent,
/*384179*/                    OPC_RecordChild2, // #4 = $src1
/*384180*/                    OPC_MoveParent,
/*384181*/                    OPC_CheckChild2Same, 4,
/*384183*/                    OPC_CheckType, MVT::v4f64,
/*384185*/                    OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*384187*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*384190*/                    OPC_EmitMergeInputChains1_2,
/*384191*/                    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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                              // Dst: (VFNMSUB231PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*384205*/                  0, /*End of Scope*/
/*384206*/                0, // EndSwitchOpcode
/*384207*/              0, /*End of Scope*/
/*384208*/            /*Scope*/ 9|128,1/*137*/, /*->384347*/
/*384210*/              OPC_MoveChild0,
/*384211*/              OPC_SwitchOpcode /*2 cases */, 60, TARGET_VAL(ISD::LOAD),// ->384275
/*384215*/                OPC_RecordMemRef,
/*384216*/                OPC_RecordNode, // #1 = 'ld' chained node
/*384217*/                OPC_CheckFoldableChainNode,
/*384218*/                OPC_RecordChild1, // #2 = $src3
/*384219*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*384221*/                OPC_CheckPredicate, 9, // Predicate_load
/*384223*/                OPC_MoveParent,
/*384224*/                OPC_RecordChild1, // #3 = $src1
/*384225*/                OPC_RecordChild2, // #4 = $src2
/*384226*/                OPC_MoveParent,
/*384227*/                OPC_CheckChild2Same, 3,
/*384229*/                OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->384252
/*384232*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*384234*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*384237*/                  OPC_EmitMergeInputChains1_1,
/*384238*/                  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>>, 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)
/*384252*/                /*SwitchType*/ 20, MVT::v4f64,// ->384274
/*384254*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*384256*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*384259*/                  OPC_EmitMergeInputChains1_1,
/*384260*/                  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>>, 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)
/*384274*/                0, // EndSwitchType
/*384275*/              /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->384346
/*384278*/                OPC_RecordMemRef,
/*384279*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*384280*/                OPC_CheckFoldableChainNode,
/*384281*/                OPC_RecordChild1, // #2 = $src3
/*384282*/                OPC_Scope, 30, /*->384314*/ // 2 children in Scope
/*384284*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*384286*/                  OPC_MoveParent,
/*384287*/                  OPC_RecordChild1, // #3 = $src1
/*384288*/                  OPC_RecordChild2, // #4 = $src2
/*384289*/                  OPC_MoveParent,
/*384290*/                  OPC_CheckChild2Same, 3,
/*384292*/                  OPC_CheckType, MVT::v4f32,
/*384294*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*384296*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*384299*/                  OPC_EmitMergeInputChains1_1,
/*384300*/                  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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                            // Dst: (VFNMSUB132PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*384314*/                /*Scope*/ 30, /*->384345*/
/*384315*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*384317*/                  OPC_MoveParent,
/*384318*/                  OPC_RecordChild1, // #3 = $src1
/*384319*/                  OPC_RecordChild2, // #4 = $src2
/*384320*/                  OPC_MoveParent,
/*384321*/                  OPC_CheckChild2Same, 3,
/*384323*/                  OPC_CheckType, MVT::v4f64,
/*384325*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*384327*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*384330*/                  OPC_EmitMergeInputChains1_1,
/*384331*/                  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] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                            // Dst: (VFNMSUB132PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*384345*/                0, /*End of Scope*/
/*384346*/              0, // EndSwitchOpcode
/*384347*/            /*Scope*/ 13|128,1/*141*/, /*->384490*/
/*384349*/              OPC_RecordChild0, // #1 = $src1
/*384350*/              OPC_RecordChild1, // #2 = $src2
/*384351*/              OPC_MoveChild2,
/*384352*/              OPC_SwitchOpcode /*2 cases */, 62, TARGET_VAL(ISD::LOAD),// ->384418
/*384356*/                OPC_RecordMemRef,
/*384357*/                OPC_RecordNode, // #3 = 'ld' chained node
/*384358*/                OPC_CheckFoldableChainNode,
/*384359*/                OPC_RecordChild1, // #4 = $src3
/*384360*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*384362*/                OPC_CheckPredicate, 9, // Predicate_load
/*384364*/                OPC_MoveParent,
/*384365*/                OPC_MoveParent,
/*384366*/                OPC_CheckChild2Same, 1,
/*384368*/                OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->384393
/*384371*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*384373*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*384376*/                  OPC_EmitMergeInputChains, 1, 3, 
/*384379*/                  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>>), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                            // Dst: (VFNMSUB213PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*384393*/                /*SwitchType*/ 22, MVT::v4f64,// ->384417
/*384395*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*384397*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*384400*/                  OPC_EmitMergeInputChains, 1, 3, 
/*384403*/                  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>>), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                            // Dst: (VFNMSUB213PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*384417*/                0, // EndSwitchType
/*384418*/              /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->384489
/*384421*/                OPC_RecordMemRef,
/*384422*/                OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*384423*/                OPC_CheckFoldableChainNode,
/*384424*/                OPC_RecordChild1, // #4 = $src3
/*384425*/                OPC_Scope, 30, /*->384457*/ // 2 children in Scope
/*384427*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*384429*/                  OPC_MoveParent,
/*384430*/                  OPC_MoveParent,
/*384431*/                  OPC_CheckChild2Same, 1,
/*384433*/                  OPC_CheckType, MVT::v4f32,
/*384435*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*384437*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*384440*/                  OPC_EmitMergeInputChains, 1, 3, 
/*384443*/                  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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                            // Dst: (VFNMSUB213PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*384457*/                /*Scope*/ 30, /*->384488*/
/*384458*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*384460*/                  OPC_MoveParent,
/*384461*/                  OPC_MoveParent,
/*384462*/                  OPC_CheckChild2Same, 1,
/*384464*/                  OPC_CheckType, MVT::v4f64,
/*384466*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*384468*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*384471*/                  OPC_EmitMergeInputChains, 1, 3, 
/*384474*/                  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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                            // Dst: (VFNMSUB213PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*384488*/                0, /*End of Scope*/
/*384489*/              0, // EndSwitchOpcode
/*384490*/            /*Scope*/ 9|128,1/*137*/, /*->384629*/
/*384492*/              OPC_MoveChild0,
/*384493*/              OPC_SwitchOpcode /*2 cases */, 60, TARGET_VAL(ISD::LOAD),// ->384557
/*384497*/                OPC_RecordMemRef,
/*384498*/                OPC_RecordNode, // #1 = 'ld' chained node
/*384499*/                OPC_CheckFoldableChainNode,
/*384500*/                OPC_RecordChild1, // #2 = $src3
/*384501*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*384503*/                OPC_CheckPredicate, 9, // Predicate_load
/*384505*/                OPC_MoveParent,
/*384506*/                OPC_RecordChild1, // #3 = $src2
/*384507*/                OPC_RecordChild2, // #4 = $src1
/*384508*/                OPC_MoveParent,
/*384509*/                OPC_CheckChild2Same, 4,
/*384511*/                OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->384534
/*384514*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*384516*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*384519*/                  OPC_EmitMergeInputChains1_1,
/*384520*/                  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>>, 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)
/*384534*/                /*SwitchType*/ 20, MVT::v4f64,// ->384556
/*384536*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*384538*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*384541*/                  OPC_EmitMergeInputChains1_1,
/*384542*/                  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>>, 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)
/*384556*/                0, // EndSwitchType
/*384557*/              /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->384628
/*384560*/                OPC_RecordMemRef,
/*384561*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*384562*/                OPC_CheckFoldableChainNode,
/*384563*/                OPC_RecordChild1, // #2 = $src3
/*384564*/                OPC_Scope, 30, /*->384596*/ // 2 children in Scope
/*384566*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*384568*/                  OPC_MoveParent,
/*384569*/                  OPC_RecordChild1, // #3 = $src2
/*384570*/                  OPC_RecordChild2, // #4 = $src1
/*384571*/                  OPC_MoveParent,
/*384572*/                  OPC_CheckChild2Same, 4,
/*384574*/                  OPC_CheckType, MVT::v4f32,
/*384576*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*384578*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*384581*/                  OPC_EmitMergeInputChains1_1,
/*384582*/                  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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                            // Dst: (VFNMSUB231PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*384596*/                /*Scope*/ 30, /*->384627*/
/*384597*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*384599*/                  OPC_MoveParent,
/*384600*/                  OPC_RecordChild1, // #3 = $src2
/*384601*/                  OPC_RecordChild2, // #4 = $src1
/*384602*/                  OPC_MoveParent,
/*384603*/                  OPC_CheckChild2Same, 4,
/*384605*/                  OPC_CheckType, MVT::v4f64,
/*384607*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*384609*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*384612*/                  OPC_EmitMergeInputChains1_1,
/*384613*/                  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] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                            // Dst: (VFNMSUB231PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*384627*/                0, /*End of Scope*/
/*384628*/              0, // EndSwitchOpcode
/*384629*/            /*Scope*/ 7|128,1/*135*/, /*->384766*/
/*384631*/              OPC_RecordChild0, // #1 = $src1
/*384632*/              OPC_MoveChild1,
/*384633*/              OPC_SwitchOpcode /*2 cases */, 59, TARGET_VAL(ISD::LOAD),// ->384696
/*384637*/                OPC_RecordMemRef,
/*384638*/                OPC_RecordNode, // #2 = 'ld' chained node
/*384639*/                OPC_CheckFoldableChainNode,
/*384640*/                OPC_RecordChild1, // #3 = $src3
/*384641*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*384643*/                OPC_CheckPredicate, 9, // Predicate_load
/*384645*/                OPC_MoveParent,
/*384646*/                OPC_RecordChild2, // #4 = $src2
/*384647*/                OPC_MoveParent,
/*384648*/                OPC_CheckChild2Same, 1,
/*384650*/                OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->384673
/*384653*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*384655*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*384658*/                  OPC_EmitMergeInputChains1_2,
/*384659*/                  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>>, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                            // Dst: (VFNMSUB132PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*384673*/                /*SwitchType*/ 20, MVT::v4f64,// ->384695
/*384675*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*384677*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*384680*/                  OPC_EmitMergeInputChains1_2,
/*384681*/                  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>>, VR256X:{ *:[v4f64] }:$src2), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                            // Dst: (VFNMSUB132PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*384695*/                0, // EndSwitchType
/*384696*/              /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->384765
/*384699*/                OPC_RecordMemRef,
/*384700*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*384701*/                OPC_CheckFoldableChainNode,
/*384702*/                OPC_RecordChild1, // #3 = $src3
/*384703*/                OPC_Scope, 29, /*->384734*/ // 2 children in Scope
/*384705*/                  OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*384707*/                  OPC_MoveParent,
/*384708*/                  OPC_RecordChild2, // #4 = $src2
/*384709*/                  OPC_MoveParent,
/*384710*/                  OPC_CheckChild2Same, 1,
/*384712*/                  OPC_CheckType, MVT::v4f32,
/*384714*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*384716*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*384719*/                  OPC_EmitMergeInputChains1_2,
/*384720*/                  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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src2), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                            // Dst: (VFNMSUB132PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*384734*/                /*Scope*/ 29, /*->384764*/
/*384735*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*384737*/                  OPC_MoveParent,
/*384738*/                  OPC_RecordChild2, // #4 = $src2
/*384739*/                  OPC_MoveParent,
/*384740*/                  OPC_CheckChild2Same, 1,
/*384742*/                  OPC_CheckType, MVT::v4f64,
/*384744*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*384746*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*384749*/                  OPC_EmitMergeInputChains1_2,
/*384750*/                  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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src2), VR256X:{ *:[v4f64] }:$src1) - Complexity = 28
                            // Dst: (VFNMSUB132PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*384764*/                0, /*End of Scope*/
/*384765*/              0, // EndSwitchOpcode
/*384766*/            0, /*End of Scope*/
/*384767*/          /*SwitchOpcode*/ 83, TARGET_VAL(X86ISD::STRICT_VFPROUND),// ->384853
/*384770*/            OPC_RecordNode, // #1 = 'X86strict_vfpround' chained node
/*384771*/            OPC_CheckFoldableChainNode,
/*384772*/            OPC_MoveChild1,
/*384773*/            OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->384814
/*384777*/              OPC_RecordMemRef,
/*384778*/              OPC_RecordNode, // #2 = 'ld' chained node
/*384779*/              OPC_CheckFoldableChainNode,
/*384780*/              OPC_RecordChild1, // #3 = $src
/*384781*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*384783*/              OPC_CheckPredicate, 9, // Predicate_load
/*384785*/              OPC_CheckType, MVT::v4f64,
/*384787*/              OPC_MoveParent,
/*384788*/              OPC_MoveParent,
/*384789*/              OPC_RecordChild2, // #4 = $src0
/*384790*/              OPC_CheckType, MVT::v4f32,
/*384792*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*384794*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*384797*/              OPC_EmitMergeInputChains, 2, 1, 2, 
/*384801*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_vfpround:{ *:[v4f32] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                        // Dst: (VCVTPD2PSZ256rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*384814*/            /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->384852
/*384817*/              OPC_RecordMemRef,
/*384818*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*384819*/              OPC_CheckFoldableChainNode,
/*384820*/              OPC_RecordChild1, // #3 = $src
/*384821*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*384823*/              OPC_CheckType, MVT::v4f64,
/*384825*/              OPC_MoveParent,
/*384826*/              OPC_MoveParent,
/*384827*/              OPC_RecordChild2, // #4 = $src0
/*384828*/              OPC_CheckType, MVT::v4f32,
/*384830*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*384832*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*384835*/              OPC_EmitMergeInputChains, 2, 1, 2, 
/*384839*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_vfpround:{ *:[v4f32] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                        // Dst: (VCVTPD2PSZ256rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*384852*/            0, // EndSwitchOpcode
/*384853*/          /*SwitchOpcode*/ 75, TARGET_VAL(X86ISD::VFPROUND),// ->384931
/*384856*/            OPC_MoveChild0,
/*384857*/            OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->384895
/*384861*/              OPC_RecordMemRef,
/*384862*/              OPC_RecordNode, // #1 = 'ld' chained node
/*384863*/              OPC_CheckFoldableChainNode,
/*384864*/              OPC_RecordChild1, // #2 = $src
/*384865*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*384867*/              OPC_CheckPredicate, 9, // Predicate_load
/*384869*/              OPC_CheckType, MVT::v4f64,
/*384871*/              OPC_MoveParent,
/*384872*/              OPC_MoveParent,
/*384873*/              OPC_RecordChild2, // #3 = $src0
/*384874*/              OPC_CheckType, MVT::v4f32,
/*384876*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*384878*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*384881*/              OPC_EmitMergeInputChains1_1,
/*384882*/              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, (X86vfpround:{ *:[v4f32] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                        // Dst: (VCVTPD2PSZ256rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*384895*/            /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->384930
/*384898*/              OPC_RecordMemRef,
/*384899*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*384900*/              OPC_CheckFoldableChainNode,
/*384901*/              OPC_RecordChild1, // #2 = $src
/*384902*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*384904*/              OPC_CheckType, MVT::v4f64,
/*384906*/              OPC_MoveParent,
/*384907*/              OPC_MoveParent,
/*384908*/              OPC_RecordChild2, // #3 = $src0
/*384909*/              OPC_CheckType, MVT::v4f32,
/*384911*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*384913*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*384916*/              OPC_EmitMergeInputChains1_1,
/*384917*/              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, (X86vfpround:{ *:[v4f32] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                        // Dst: (VCVTPD2PSZ256rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*384930*/            0, // EndSwitchOpcode
/*384931*/          /*SwitchOpcode*/ 39, TARGET_VAL(ISD::STRICT_FP_EXTEND),// ->384973
/*384934*/            OPC_RecordNode, // #1 = 'strict_fpextend' chained node
/*384935*/            OPC_CheckFoldableChainNode,
/*384936*/            OPC_MoveChild1,
/*384937*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*384940*/            OPC_RecordMemRef,
/*384941*/            OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*384942*/            OPC_CheckFoldableChainNode,
/*384943*/            OPC_RecordChild1, // #3 = $src
/*384944*/            OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*384946*/            OPC_MoveParent,
/*384947*/            OPC_MoveParent,
/*384948*/            OPC_RecordChild2, // #4 = $src0
/*384949*/            OPC_CheckType, MVT::v4f64,
/*384951*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*384953*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*384956*/            OPC_EmitMergeInputChains, 2, 1, 2, 
/*384960*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                      // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (strict_fpextend:{ *:[v4f64] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                      // Dst: (VCVTPS2PDZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*384973*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::FP_EXTEND),// ->385010
/*384976*/            OPC_MoveChild0,
/*384977*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*384980*/            OPC_RecordMemRef,
/*384981*/            OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*384982*/            OPC_CheckFoldableChainNode,
/*384983*/            OPC_RecordChild1, // #2 = $src
/*384984*/            OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*384986*/            OPC_MoveParent,
/*384987*/            OPC_MoveParent,
/*384988*/            OPC_RecordChild2, // #3 = $src0
/*384989*/            OPC_CheckType, MVT::v4f64,
/*384991*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*384993*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*384996*/            OPC_EmitMergeInputChains1_1,
/*384997*/            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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                      // Dst: (VCVTPS2PDZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*385010*/          /*SwitchOpcode*/ 123|128,1/*251*/, TARGET_VAL(ISD::STRICT_SINT_TO_FP),// ->385265
/*385014*/            OPC_RecordNode, // #1 = 'strict_sint_to_fp' chained node
/*385015*/            OPC_CheckFoldableChainNode,
/*385016*/            OPC_MoveChild1,
/*385017*/            OPC_SwitchOpcode /*2 cases */, 120, TARGET_VAL(ISD::LOAD),// ->385141
/*385021*/              OPC_RecordMemRef,
/*385022*/              OPC_RecordNode, // #2 = 'ld' chained node
/*385023*/              OPC_CheckFoldableChainNode,
/*385024*/              OPC_RecordChild1, // #3 = $src
/*385025*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*385027*/              OPC_CheckPredicate, 9, // Predicate_load
/*385029*/              OPC_SwitchType /*2 cases */, 53, MVT::v4i32,// ->385085
/*385032*/                OPC_MoveParent,
/*385033*/                OPC_MoveParent,
/*385034*/                OPC_RecordChild2, // #4 = $src0
/*385035*/                OPC_SwitchType /*2 cases */, 22, MVT::v4f64,// ->385060
/*385038*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*385040*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*385043*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*385047*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (strict_sint_to_fp:{ *:[v4f64] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                            // Dst: (VCVTDQ2PDZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*385060*/                /*SwitchType*/ 22, MVT::v4f32,// ->385084
/*385062*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*385064*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*385067*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*385071*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (strict_sint_to_fp:{ *:[v4f32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                            // Dst: (VCVTDQ2PSZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*385084*/                0, // EndSwitchType
/*385085*/              /*SwitchType*/ 53, MVT::v4i64,// ->385140
/*385087*/                OPC_MoveParent,
/*385088*/                OPC_MoveParent,
/*385089*/                OPC_RecordChild2, // #4 = $src0
/*385090*/                OPC_SwitchType /*2 cases */, 22, MVT::v4f64,// ->385115
/*385093*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*385095*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*385098*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*385102*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (strict_sint_to_fp:{ *:[v4f64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                            // Dst: (VCVTQQ2PDZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*385115*/                /*SwitchType*/ 22, MVT::v4f32,// ->385139
/*385117*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*385119*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*385122*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*385126*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PSZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (strict_sint_to_fp:{ *:[v4f32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                            // Dst: (VCVTQQ2PSZ256rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*385139*/                0, // EndSwitchType
/*385140*/              0, // EndSwitchType
/*385141*/            /*SwitchOpcode*/ 120, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->385264
/*385144*/              OPC_RecordMemRef,
/*385145*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*385146*/              OPC_CheckFoldableChainNode,
/*385147*/              OPC_RecordChild1, // #3 = $src
/*385148*/              OPC_SwitchType /*2 cases */, 55, MVT::v4i32,// ->385206
/*385151*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*385153*/                OPC_MoveParent,
/*385154*/                OPC_MoveParent,
/*385155*/                OPC_RecordChild2, // #4 = $src0
/*385156*/                OPC_SwitchType /*2 cases */, 22, MVT::v4f64,// ->385181
/*385159*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*385161*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*385164*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*385168*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (strict_sint_to_fp:{ *:[v4f64] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                            // Dst: (VCVTDQ2PDZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*385181*/                /*SwitchType*/ 22, MVT::v4f32,// ->385205
/*385183*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*385185*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*385188*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*385192*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (strict_sint_to_fp:{ *:[v4f32] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                            // Dst: (VCVTDQ2PSZ128rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*385205*/                0, // EndSwitchType
/*385206*/              /*SwitchType*/ 55, MVT::v4i64,// ->385263
/*385208*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*385210*/                OPC_MoveParent,
/*385211*/                OPC_MoveParent,
/*385212*/                OPC_RecordChild2, // #4 = $src0
/*385213*/                OPC_SwitchType /*2 cases */, 22, MVT::v4f64,// ->385238
/*385216*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*385218*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*385221*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*385225*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (strict_sint_to_fp:{ *:[v4f64] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                            // Dst: (VCVTQQ2PDZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*385238*/                /*SwitchType*/ 22, MVT::v4f32,// ->385262
/*385240*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*385242*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*385245*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*385249*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PSZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (strict_sint_to_fp:{ *:[v4f32] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                            // Dst: (VCVTQQ2PSZ256rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*385262*/                0, // EndSwitchType
/*385263*/              0, // EndSwitchType
/*385264*/            0, // EndSwitchOpcode
/*385265*/          /*SwitchOpcode*/ 97|128,1/*225*/, TARGET_VAL(ISD::SINT_TO_FP),// ->385494
/*385269*/            OPC_MoveChild0,
/*385270*/            OPC_SwitchOpcode /*2 cases */, 108, TARGET_VAL(ISD::LOAD),// ->385382
/*385274*/              OPC_RecordMemRef,
/*385275*/              OPC_RecordNode, // #1 = 'ld' chained node
/*385276*/              OPC_CheckFoldableChainNode,
/*385277*/              OPC_RecordChild1, // #2 = $src
/*385278*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*385280*/              OPC_CheckPredicate, 9, // Predicate_load
/*385282*/              OPC_SwitchType /*2 cases */, 47, MVT::v4i32,// ->385332
/*385285*/                OPC_MoveParent,
/*385286*/                OPC_MoveParent,
/*385287*/                OPC_RecordChild2, // #3 = $src0
/*385288*/                OPC_SwitchType /*2 cases */, 19, MVT::v4f64,// ->385310
/*385291*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*385293*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*385296*/                  OPC_EmitMergeInputChains1_1,
/*385297*/                  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] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                            // Dst: (VCVTDQ2PDZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*385310*/                /*SwitchType*/ 19, MVT::v4f32,// ->385331
/*385312*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*385314*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*385317*/                  OPC_EmitMergeInputChains1_1,
/*385318*/                  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] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                            // Dst: (VCVTDQ2PSZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*385331*/                0, // EndSwitchType
/*385332*/              /*SwitchType*/ 47, MVT::v4i64,// ->385381
/*385334*/                OPC_MoveParent,
/*385335*/                OPC_MoveParent,
/*385336*/                OPC_RecordChild2, // #3 = $src0
/*385337*/                OPC_SwitchType /*2 cases */, 19, MVT::v4f64,// ->385359
/*385340*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*385342*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*385345*/                  OPC_EmitMergeInputChains1_1,
/*385346*/                  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>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                            // Dst: (VCVTQQ2PDZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*385359*/                /*SwitchType*/ 19, MVT::v4f32,// ->385380
/*385361*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*385363*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*385366*/                  OPC_EmitMergeInputChains1_1,
/*385367*/                  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>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                            // Dst: (VCVTQQ2PSZ256rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*385380*/                0, // EndSwitchType
/*385381*/              0, // EndSwitchType
/*385382*/            /*SwitchOpcode*/ 108, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->385493
/*385385*/              OPC_RecordMemRef,
/*385386*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*385387*/              OPC_CheckFoldableChainNode,
/*385388*/              OPC_RecordChild1, // #2 = $src
/*385389*/              OPC_SwitchType /*2 cases */, 49, MVT::v4i32,// ->385441
/*385392*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*385394*/                OPC_MoveParent,
/*385395*/                OPC_MoveParent,
/*385396*/                OPC_RecordChild2, // #3 = $src0
/*385397*/                OPC_SwitchType /*2 cases */, 19, MVT::v4f64,// ->385419
/*385400*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*385402*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*385405*/                  OPC_EmitMergeInputChains1_1,
/*385406*/                  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] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                            // Dst: (VCVTDQ2PDZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*385419*/                /*SwitchType*/ 19, MVT::v4f32,// ->385440
/*385421*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*385423*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*385426*/                  OPC_EmitMergeInputChains1_1,
/*385427*/                  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] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                            // Dst: (VCVTDQ2PSZ128rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*385440*/                0, // EndSwitchType
/*385441*/              /*SwitchType*/ 49, MVT::v4i64,// ->385492
/*385443*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*385445*/                OPC_MoveParent,
/*385446*/                OPC_MoveParent,
/*385447*/                OPC_RecordChild2, // #3 = $src0
/*385448*/                OPC_SwitchType /*2 cases */, 19, MVT::v4f64,// ->385470
/*385451*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*385453*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*385456*/                  OPC_EmitMergeInputChains1_1,
/*385457*/                  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] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                            // Dst: (VCVTQQ2PDZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*385470*/                /*SwitchType*/ 19, MVT::v4f32,// ->385491
/*385472*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*385474*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*385477*/                  OPC_EmitMergeInputChains1_1,
/*385478*/                  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] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                            // Dst: (VCVTQQ2PSZ256rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*385491*/                0, // EndSwitchType
/*385492*/              0, // EndSwitchType
/*385493*/            0, // EndSwitchOpcode
/*385494*/          /*SwitchOpcode*/ 123|128,1/*251*/, TARGET_VAL(ISD::STRICT_UINT_TO_FP),// ->385749
/*385498*/            OPC_RecordNode, // #1 = 'strict_uint_to_fp' chained node
/*385499*/            OPC_CheckFoldableChainNode,
/*385500*/            OPC_MoveChild1,
/*385501*/            OPC_SwitchOpcode /*2 cases */, 120, TARGET_VAL(ISD::LOAD),// ->385625
/*385505*/              OPC_RecordMemRef,
/*385506*/              OPC_RecordNode, // #2 = 'ld' chained node
/*385507*/              OPC_CheckFoldableChainNode,
/*385508*/              OPC_RecordChild1, // #3 = $src
/*385509*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*385511*/              OPC_CheckPredicate, 9, // Predicate_load
/*385513*/              OPC_SwitchType /*2 cases */, 53, MVT::v4i32,// ->385569
/*385516*/                OPC_MoveParent,
/*385517*/                OPC_MoveParent,
/*385518*/                OPC_RecordChild2, // #4 = $src0
/*385519*/                OPC_SwitchType /*2 cases */, 22, MVT::v4f64,// ->385544
/*385522*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*385524*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*385527*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*385531*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (strict_uint_to_fp:{ *:[v4f64] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                            // Dst: (VCVTUDQ2PDZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*385544*/                /*SwitchType*/ 22, MVT::v4f32,// ->385568
/*385546*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*385548*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*385551*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*385555*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PSZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (strict_uint_to_fp:{ *:[v4f32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                            // Dst: (VCVTUDQ2PSZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*385568*/                0, // EndSwitchType
/*385569*/              /*SwitchType*/ 53, MVT::v4i64,// ->385624
/*385571*/                OPC_MoveParent,
/*385572*/                OPC_MoveParent,
/*385573*/                OPC_RecordChild2, // #4 = $src0
/*385574*/                OPC_SwitchType /*2 cases */, 22, MVT::v4f64,// ->385599
/*385577*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*385579*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*385582*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*385586*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (strict_uint_to_fp:{ *:[v4f64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                            // Dst: (VCVTUQQ2PDZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*385599*/                /*SwitchType*/ 22, MVT::v4f32,// ->385623
/*385601*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*385603*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*385606*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*385610*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PSZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (strict_uint_to_fp:{ *:[v4f32] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                            // Dst: (VCVTUQQ2PSZ256rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*385623*/                0, // EndSwitchType
/*385624*/              0, // EndSwitchType
/*385625*/            /*SwitchOpcode*/ 120, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->385748
/*385628*/              OPC_RecordMemRef,
/*385629*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*385630*/              OPC_CheckFoldableChainNode,
/*385631*/              OPC_RecordChild1, // #3 = $src
/*385632*/              OPC_SwitchType /*2 cases */, 55, MVT::v4i32,// ->385690
/*385635*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*385637*/                OPC_MoveParent,
/*385638*/                OPC_MoveParent,
/*385639*/                OPC_RecordChild2, // #4 = $src0
/*385640*/                OPC_SwitchType /*2 cases */, 22, MVT::v4f64,// ->385665
/*385643*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*385645*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*385648*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*385652*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (strict_uint_to_fp:{ *:[v4f64] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                            // Dst: (VCVTUDQ2PDZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*385665*/                /*SwitchType*/ 22, MVT::v4f32,// ->385689
/*385667*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*385669*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*385672*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*385676*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PSZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (strict_uint_to_fp:{ *:[v4f32] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                            // Dst: (VCVTUDQ2PSZ128rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*385689*/                0, // EndSwitchType
/*385690*/              /*SwitchType*/ 55, MVT::v4i64,// ->385747
/*385692*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*385694*/                OPC_MoveParent,
/*385695*/                OPC_MoveParent,
/*385696*/                OPC_RecordChild2, // #4 = $src0
/*385697*/                OPC_SwitchType /*2 cases */, 22, MVT::v4f64,// ->385722
/*385700*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*385702*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*385705*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*385709*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PDZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (strict_uint_to_fp:{ *:[v4f64] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                            // Dst: (VCVTUQQ2PDZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*385722*/                /*SwitchType*/ 22, MVT::v4f32,// ->385746
/*385724*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*385726*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*385729*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*385733*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PSZ256rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (strict_uint_to_fp:{ *:[v4f32] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                            // Dst: (VCVTUQQ2PSZ256rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*385746*/                0, // EndSwitchType
/*385747*/              0, // EndSwitchType
/*385748*/            0, // EndSwitchOpcode
/*385749*/          /*SwitchOpcode*/ 97|128,1/*225*/, TARGET_VAL(ISD::UINT_TO_FP),// ->385978
/*385753*/            OPC_MoveChild0,
/*385754*/            OPC_SwitchOpcode /*2 cases */, 108, TARGET_VAL(ISD::LOAD),// ->385866
/*385758*/              OPC_RecordMemRef,
/*385759*/              OPC_RecordNode, // #1 = 'ld' chained node
/*385760*/              OPC_CheckFoldableChainNode,
/*385761*/              OPC_RecordChild1, // #2 = $src
/*385762*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*385764*/              OPC_CheckPredicate, 9, // Predicate_load
/*385766*/              OPC_SwitchType /*2 cases */, 47, MVT::v4i32,// ->385816
/*385769*/                OPC_MoveParent,
/*385770*/                OPC_MoveParent,
/*385771*/                OPC_RecordChild2, // #3 = $src0
/*385772*/                OPC_SwitchType /*2 cases */, 19, MVT::v4f64,// ->385794
/*385775*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*385777*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*385780*/                  OPC_EmitMergeInputChains1_1,
/*385781*/                  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] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                            // Dst: (VCVTUDQ2PDZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*385794*/                /*SwitchType*/ 19, MVT::v4f32,// ->385815
/*385796*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*385798*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*385801*/                  OPC_EmitMergeInputChains1_1,
/*385802*/                  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] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                            // Dst: (VCVTUDQ2PSZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*385815*/                0, // EndSwitchType
/*385816*/              /*SwitchType*/ 47, MVT::v4i64,// ->385865
/*385818*/                OPC_MoveParent,
/*385819*/                OPC_MoveParent,
/*385820*/                OPC_RecordChild2, // #3 = $src0
/*385821*/                OPC_SwitchType /*2 cases */, 19, MVT::v4f64,// ->385843
/*385824*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*385826*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*385829*/                  OPC_EmitMergeInputChains1_1,
/*385830*/                  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>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                            // Dst: (VCVTUQQ2PDZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*385843*/                /*SwitchType*/ 19, MVT::v4f32,// ->385864
/*385845*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*385847*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*385850*/                  OPC_EmitMergeInputChains1_1,
/*385851*/                  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>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                            // Dst: (VCVTUQQ2PSZ256rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*385864*/                0, // EndSwitchType
/*385865*/              0, // EndSwitchType
/*385866*/            /*SwitchOpcode*/ 108, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->385977
/*385869*/              OPC_RecordMemRef,
/*385870*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*385871*/              OPC_CheckFoldableChainNode,
/*385872*/              OPC_RecordChild1, // #2 = $src
/*385873*/              OPC_SwitchType /*2 cases */, 49, MVT::v4i32,// ->385925
/*385876*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*385878*/                OPC_MoveParent,
/*385879*/                OPC_MoveParent,
/*385880*/                OPC_RecordChild2, // #3 = $src0
/*385881*/                OPC_SwitchType /*2 cases */, 19, MVT::v4f64,// ->385903
/*385884*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*385886*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*385889*/                  OPC_EmitMergeInputChains1_1,
/*385890*/                  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] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                            // Dst: (VCVTUDQ2PDZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*385903*/                /*SwitchType*/ 19, MVT::v4f32,// ->385924
/*385905*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*385907*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*385910*/                  OPC_EmitMergeInputChains1_1,
/*385911*/                  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] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                            // Dst: (VCVTUDQ2PSZ128rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*385924*/                0, // EndSwitchType
/*385925*/              /*SwitchType*/ 49, MVT::v4i64,// ->385976
/*385927*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*385929*/                OPC_MoveParent,
/*385930*/                OPC_MoveParent,
/*385931*/                OPC_RecordChild2, // #3 = $src0
/*385932*/                OPC_SwitchType /*2 cases */, 19, MVT::v4f64,// ->385954
/*385935*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*385937*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*385940*/                  OPC_EmitMergeInputChains1_1,
/*385941*/                  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] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                            // Dst: (VCVTUQQ2PDZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*385954*/                /*SwitchType*/ 19, MVT::v4f32,// ->385975
/*385956*/                  OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*385958*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*385961*/                  OPC_EmitMergeInputChains1_1,
/*385962*/                  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] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                            // Dst: (VCVTUQQ2PSZ256rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*385975*/                0, // EndSwitchType
/*385976*/              0, // EndSwitchType
/*385977*/            0, // EndSwitchOpcode
/*385978*/          /*SwitchOpcode*/ 38, TARGET_VAL(X86ISD::CVTPH2PS),// ->386019
/*385981*/            OPC_MoveChild0,
/*385982*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*385985*/            OPC_RecordMemRef,
/*385986*/            OPC_RecordNode, // #1 = 'ld' chained node
/*385987*/            OPC_CheckFoldableChainNode,
/*385988*/            OPC_RecordChild1, // #2 = $src
/*385989*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*385991*/            OPC_CheckPredicate, 9, // Predicate_load
/*385993*/            OPC_CheckType, MVT::v8i16,
/*385995*/            OPC_MoveParent,
/*385996*/            OPC_MoveParent,
/*385997*/            OPC_RecordChild2, // #3 = $src0
/*385998*/            OPC_CheckType, MVT::v4f32,
/*386000*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*386002*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*386005*/            OPC_EmitMergeInputChains1_1,
/*386006*/            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] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                      // Dst: (VCVTPH2PSZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*386019*/          /*SwitchOpcode*/ 124, TARGET_VAL(X86ISD::RSQRT14),// ->386146
/*386022*/            OPC_MoveChild0,
/*386023*/            OPC_SwitchOpcode /*2 cases */, 55, TARGET_VAL(ISD::LOAD),// ->386082
/*386027*/              OPC_RecordMemRef,
/*386028*/              OPC_RecordNode, // #1 = 'ld' chained node
/*386029*/              OPC_CheckFoldableChainNode,
/*386030*/              OPC_RecordChild1, // #2 = $src
/*386031*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*386033*/              OPC_CheckPredicate, 9, // Predicate_load
/*386035*/              OPC_MoveParent,
/*386036*/              OPC_MoveParent,
/*386037*/              OPC_RecordChild2, // #3 = $src0
/*386038*/              OPC_SwitchType /*2 cases */, 19, MVT::v4f32,// ->386060
/*386041*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*386043*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*386046*/                OPC_EmitMergeInputChains1_1,
/*386047*/                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>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                          // Dst: (VRSQRT14PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*386060*/              /*SwitchType*/ 19, MVT::v4f64,// ->386081
/*386062*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*386064*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*386067*/                OPC_EmitMergeInputChains1_1,
/*386068*/                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>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                          // Dst: (VRSQRT14PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*386081*/              0, // EndSwitchType
/*386082*/            /*SwitchOpcode*/ 60, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->386145
/*386085*/              OPC_RecordMemRef,
/*386086*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*386087*/              OPC_CheckFoldableChainNode,
/*386088*/              OPC_RecordChild1, // #2 = $src
/*386089*/              OPC_Scope, 26, /*->386117*/ // 2 children in Scope
/*386091*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*386093*/                OPC_MoveParent,
/*386094*/                OPC_MoveParent,
/*386095*/                OPC_RecordChild2, // #3 = $src0
/*386096*/                OPC_CheckType, MVT::v4f32,
/*386098*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*386100*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*386103*/                OPC_EmitMergeInputChains1_1,
/*386104*/                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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                          // Dst: (VRSQRT14PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*386117*/              /*Scope*/ 26, /*->386144*/
/*386118*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*386120*/                OPC_MoveParent,
/*386121*/                OPC_MoveParent,
/*386122*/                OPC_RecordChild2, // #3 = $src0
/*386123*/                OPC_CheckType, MVT::v4f64,
/*386125*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*386127*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*386130*/                OPC_EmitMergeInputChains1_1,
/*386131*/                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] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                          // Dst: (VRSQRT14PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*386144*/              0, /*End of Scope*/
/*386145*/            0, // EndSwitchOpcode
/*386146*/          /*SwitchOpcode*/ 124, TARGET_VAL(X86ISD::RCP14),// ->386273
/*386149*/            OPC_MoveChild0,
/*386150*/            OPC_SwitchOpcode /*2 cases */, 55, TARGET_VAL(ISD::LOAD),// ->386209
/*386154*/              OPC_RecordMemRef,
/*386155*/              OPC_RecordNode, // #1 = 'ld' chained node
/*386156*/              OPC_CheckFoldableChainNode,
/*386157*/              OPC_RecordChild1, // #2 = $src
/*386158*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*386160*/              OPC_CheckPredicate, 9, // Predicate_load
/*386162*/              OPC_MoveParent,
/*386163*/              OPC_MoveParent,
/*386164*/              OPC_RecordChild2, // #3 = $src0
/*386165*/              OPC_SwitchType /*2 cases */, 19, MVT::v4f32,// ->386187
/*386168*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*386170*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*386173*/                OPC_EmitMergeInputChains1_1,
/*386174*/                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>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                          // Dst: (VRCP14PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*386187*/              /*SwitchType*/ 19, MVT::v4f64,// ->386208
/*386189*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*386191*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*386194*/                OPC_EmitMergeInputChains1_1,
/*386195*/                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>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                          // Dst: (VRCP14PDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*386208*/              0, // EndSwitchType
/*386209*/            /*SwitchOpcode*/ 60, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->386272
/*386212*/              OPC_RecordMemRef,
/*386213*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*386214*/              OPC_CheckFoldableChainNode,
/*386215*/              OPC_RecordChild1, // #2 = $src
/*386216*/              OPC_Scope, 26, /*->386244*/ // 2 children in Scope
/*386218*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*386220*/                OPC_MoveParent,
/*386221*/                OPC_MoveParent,
/*386222*/                OPC_RecordChild2, // #3 = $src0
/*386223*/                OPC_CheckType, MVT::v4f32,
/*386225*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*386227*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*386230*/                OPC_EmitMergeInputChains1_1,
/*386231*/                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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                          // Dst: (VRCP14PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*386244*/              /*Scope*/ 26, /*->386271*/
/*386245*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*386247*/                OPC_MoveParent,
/*386248*/                OPC_MoveParent,
/*386249*/                OPC_RecordChild2, // #3 = $src0
/*386250*/                OPC_CheckType, MVT::v4f64,
/*386252*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*386254*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*386257*/                OPC_EmitMergeInputChains1_1,
/*386258*/                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] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                          // Dst: (VRCP14PDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*386271*/              0, /*End of Scope*/
/*386272*/            0, // EndSwitchOpcode
/*386273*/          /*SwitchOpcode*/ 124, TARGET_VAL(X86ISD::FGETEXP),// ->386400
/*386276*/            OPC_MoveChild0,
/*386277*/            OPC_SwitchOpcode /*2 cases */, 55, TARGET_VAL(ISD::LOAD),// ->386336
/*386281*/              OPC_RecordMemRef,
/*386282*/              OPC_RecordNode, // #1 = 'ld' chained node
/*386283*/              OPC_CheckFoldableChainNode,
/*386284*/              OPC_RecordChild1, // #2 = $src
/*386285*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*386287*/              OPC_CheckPredicate, 9, // Predicate_load
/*386289*/              OPC_MoveParent,
/*386290*/              OPC_MoveParent,
/*386291*/              OPC_RecordChild2, // #3 = $src0
/*386292*/              OPC_SwitchType /*2 cases */, 19, MVT::v4f32,// ->386314
/*386295*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*386297*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*386300*/                OPC_EmitMergeInputChains1_1,
/*386301*/                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, (X86fgetexp:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                          // Dst: (VGETEXPPSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*386314*/              /*SwitchType*/ 19, MVT::v4f64,// ->386335
/*386316*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*386318*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*386321*/                OPC_EmitMergeInputChains1_1,
/*386322*/                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, (X86fgetexp:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                          // Dst: (VGETEXPPDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*386335*/              0, // EndSwitchType
/*386336*/            /*SwitchOpcode*/ 60, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->386399
/*386339*/              OPC_RecordMemRef,
/*386340*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*386341*/              OPC_CheckFoldableChainNode,
/*386342*/              OPC_RecordChild1, // #2 = $src
/*386343*/              OPC_Scope, 26, /*->386371*/ // 2 children in Scope
/*386345*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*386347*/                OPC_MoveParent,
/*386348*/                OPC_MoveParent,
/*386349*/                OPC_RecordChild2, // #3 = $src0
/*386350*/                OPC_CheckType, MVT::v4f32,
/*386352*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*386354*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*386357*/                OPC_EmitMergeInputChains1_1,
/*386358*/                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, (X86fgetexp:{ *:[v4f32] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                          // Dst: (VGETEXPPSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*386371*/              /*Scope*/ 26, /*->386398*/
/*386372*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*386374*/                OPC_MoveParent,
/*386375*/                OPC_MoveParent,
/*386376*/                OPC_RecordChild2, // #3 = $src0
/*386377*/                OPC_CheckType, MVT::v4f64,
/*386379*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*386381*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*386384*/                OPC_EmitMergeInputChains1_1,
/*386385*/                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, (X86fgetexp:{ *:[v4f64] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                          // Dst: (VGETEXPPDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*386398*/              0, /*End of Scope*/
/*386399*/            0, // EndSwitchOpcode
/*386400*/          /*SwitchOpcode*/ 10|128,1/*138*/, TARGET_VAL(ISD::STRICT_FSQRT),// ->386542
/*386404*/            OPC_RecordNode, // #1 = 'strict_fsqrt' chained node
/*386405*/            OPC_CheckFoldableChainNode,
/*386406*/            OPC_MoveChild1,
/*386407*/            OPC_SwitchOpcode /*2 cases */, 61, TARGET_VAL(ISD::LOAD),// ->386472
/*386411*/              OPC_RecordMemRef,
/*386412*/              OPC_RecordNode, // #2 = 'ld' chained node
/*386413*/              OPC_CheckFoldableChainNode,
/*386414*/              OPC_RecordChild1, // #3 = $src
/*386415*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*386417*/              OPC_CheckPredicate, 9, // Predicate_load
/*386419*/              OPC_MoveParent,
/*386420*/              OPC_MoveParent,
/*386421*/              OPC_RecordChild2, // #4 = $src0
/*386422*/              OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->386447
/*386425*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*386427*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*386430*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*386434*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (strict_fsqrt:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                          // Dst: (VSQRTPSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*386447*/              /*SwitchType*/ 22, MVT::v4f64,// ->386471
/*386449*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*386451*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*386454*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*386458*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDZ256mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (strict_fsqrt:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                          // Dst: (VSQRTPDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*386471*/              0, // EndSwitchType
/*386472*/            /*SwitchOpcode*/ 66, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->386541
/*386475*/              OPC_RecordMemRef,
/*386476*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*386477*/              OPC_CheckFoldableChainNode,
/*386478*/              OPC_RecordChild1, // #3 = $src
/*386479*/              OPC_Scope, 29, /*->386510*/ // 2 children in Scope
/*386481*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*386483*/                OPC_MoveParent,
/*386484*/                OPC_MoveParent,
/*386485*/                OPC_RecordChild2, // #4 = $src0
/*386486*/                OPC_CheckType, MVT::v4f32,
/*386488*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*386490*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*386493*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*386497*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (strict_fsqrt:{ *:[v4f32] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                          // Dst: (VSQRTPSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*386510*/              /*Scope*/ 29, /*->386540*/
/*386511*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*386513*/                OPC_MoveParent,
/*386514*/                OPC_MoveParent,
/*386515*/                OPC_RecordChild2, // #4 = $src0
/*386516*/                OPC_CheckType, MVT::v4f64,
/*386518*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*386520*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*386523*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*386527*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDZ256mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (strict_fsqrt:{ *:[v4f64] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                          // Dst: (VSQRTPDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*386540*/              0, /*End of Scope*/
/*386541*/            0, // EndSwitchOpcode
/*386542*/          /*SwitchOpcode*/ 124, TARGET_VAL(ISD::FSQRT),// ->386669
/*386545*/            OPC_MoveChild0,
/*386546*/            OPC_SwitchOpcode /*2 cases */, 55, TARGET_VAL(ISD::LOAD),// ->386605
/*386550*/              OPC_RecordMemRef,
/*386551*/              OPC_RecordNode, // #1 = 'ld' chained node
/*386552*/              OPC_CheckFoldableChainNode,
/*386553*/              OPC_RecordChild1, // #2 = $src
/*386554*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*386556*/              OPC_CheckPredicate, 9, // Predicate_load
/*386558*/              OPC_MoveParent,
/*386559*/              OPC_MoveParent,
/*386560*/              OPC_RecordChild2, // #3 = $src0
/*386561*/              OPC_SwitchType /*2 cases */, 19, MVT::v4f32,// ->386583
/*386564*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*386566*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*386569*/                OPC_EmitMergeInputChains1_1,
/*386570*/                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>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                          // Dst: (VSQRTPSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*386583*/              /*SwitchType*/ 19, MVT::v4f64,// ->386604
/*386585*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*386587*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*386590*/                OPC_EmitMergeInputChains1_1,
/*386591*/                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>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                          // Dst: (VSQRTPDZ256mk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*386604*/              0, // EndSwitchType
/*386605*/            /*SwitchOpcode*/ 60, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->386668
/*386608*/              OPC_RecordMemRef,
/*386609*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*386610*/              OPC_CheckFoldableChainNode,
/*386611*/              OPC_RecordChild1, // #2 = $src
/*386612*/              OPC_Scope, 26, /*->386640*/ // 2 children in Scope
/*386614*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*386616*/                OPC_MoveParent,
/*386617*/                OPC_MoveParent,
/*386618*/                OPC_RecordChild2, // #3 = $src0
/*386619*/                OPC_CheckType, MVT::v4f32,
/*386621*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*386623*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*386626*/                OPC_EmitMergeInputChains1_1,
/*386627*/                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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                          // Dst: (VSQRTPSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*386640*/              /*Scope*/ 26, /*->386667*/
/*386641*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*386643*/                OPC_MoveParent,
/*386644*/                OPC_MoveParent,
/*386645*/                OPC_RecordChild2, // #3 = $src0
/*386646*/                OPC_CheckType, MVT::v4f64,
/*386648*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*386650*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*386653*/                OPC_EmitMergeInputChains1_1,
/*386654*/                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] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                          // Dst: (VSQRTPDZ256mbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*386667*/              0, /*End of Scope*/
/*386668*/            0, // EndSwitchOpcode
/*386669*/          /*SwitchOpcode*/ 36, TARGET_VAL(X86ISD::MOVSHDUP),// ->386708
/*386672*/            OPC_MoveChild0,
/*386673*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*386676*/            OPC_RecordMemRef,
/*386677*/            OPC_RecordNode, // #1 = 'ld' chained node
/*386678*/            OPC_CheckFoldableChainNode,
/*386679*/            OPC_RecordChild1, // #2 = $src1
/*386680*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*386682*/            OPC_CheckPredicate, 9, // Predicate_load
/*386684*/            OPC_MoveParent,
/*386685*/            OPC_MoveParent,
/*386686*/            OPC_RecordChild2, // #3 = $src0
/*386687*/            OPC_CheckType, MVT::v4f32,
/*386689*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*386691*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*386694*/            OPC_EmitMergeInputChains1_1,
/*386695*/            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>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                      // Dst: (VMOVSHDUPZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*386708*/          /*SwitchOpcode*/ 36, TARGET_VAL(X86ISD::MOVSLDUP),// ->386747
/*386711*/            OPC_MoveChild0,
/*386712*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*386715*/            OPC_RecordMemRef,
/*386716*/            OPC_RecordNode, // #1 = 'ld' chained node
/*386717*/            OPC_CheckFoldableChainNode,
/*386718*/            OPC_RecordChild1, // #2 = $src1
/*386719*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*386721*/            OPC_CheckPredicate, 9, // Predicate_load
/*386723*/            OPC_MoveParent,
/*386724*/            OPC_MoveParent,
/*386725*/            OPC_RecordChild2, // #3 = $src0
/*386726*/            OPC_CheckType, MVT::v4f32,
/*386728*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*386730*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*386733*/            OPC_EmitMergeInputChains1_1,
/*386734*/            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>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                      // Dst: (VMOVSLDUPZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*386747*/          /*SwitchOpcode*/ 36, TARGET_VAL(X86ISD::MOVDDUP),// ->386786
/*386750*/            OPC_MoveChild0,
/*386751*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*386754*/            OPC_RecordMemRef,
/*386755*/            OPC_RecordNode, // #1 = 'ld' chained node
/*386756*/            OPC_CheckFoldableChainNode,
/*386757*/            OPC_RecordChild1, // #2 = $src1
/*386758*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*386760*/            OPC_CheckPredicate, 9, // Predicate_load
/*386762*/            OPC_MoveParent,
/*386763*/            OPC_MoveParent,
/*386764*/            OPC_RecordChild2, // #3 = $src0
/*386765*/            OPC_CheckType, MVT::v4f64,
/*386767*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*386769*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*386772*/            OPC_EmitMergeInputChains1_1,
/*386773*/            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>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                      // Dst: (VMOVDDUPZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*386786*/          /*SwitchOpcode*/ 1|128,1/*129*/, TARGET_VAL(X86ISD::UNPCKH),// ->386919
/*386790*/            OPC_RecordChild0, // #1 = $src1
/*386791*/            OPC_MoveChild1,
/*386792*/            OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->386853
/*386796*/              OPC_RecordMemRef,
/*386797*/              OPC_RecordNode, // #2 = 'ld' chained node
/*386798*/              OPC_CheckFoldableChainNode,
/*386799*/              OPC_RecordChild1, // #3 = $src2
/*386800*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*386802*/              OPC_CheckPredicate, 9, // Predicate_load
/*386804*/              OPC_MoveParent,
/*386805*/              OPC_MoveParent,
/*386806*/              OPC_RecordChild2, // #4 = $src0
/*386807*/              OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->386830
/*386810*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*386812*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*386815*/                OPC_EmitMergeInputChains1_2,
/*386816*/                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>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                          // Dst: (VUNPCKHPSZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*386830*/              /*SwitchType*/ 20, MVT::v4f64,// ->386852
/*386832*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*386834*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*386837*/                OPC_EmitMergeInputChains1_2,
/*386838*/                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>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                          // Dst: (VUNPCKHPDZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*386852*/              0, // EndSwitchType
/*386853*/            /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->386918
/*386856*/              OPC_RecordMemRef,
/*386857*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*386858*/              OPC_CheckFoldableChainNode,
/*386859*/              OPC_RecordChild1, // #3 = $src2
/*386860*/              OPC_Scope, 27, /*->386889*/ // 2 children in Scope
/*386862*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*386864*/                OPC_MoveParent,
/*386865*/                OPC_MoveParent,
/*386866*/                OPC_RecordChild2, // #4 = $src0
/*386867*/                OPC_CheckType, MVT::v4f32,
/*386869*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*386871*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*386874*/                OPC_EmitMergeInputChains1_2,
/*386875*/                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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                          // Dst: (VUNPCKHPSZ128rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*386889*/              /*Scope*/ 27, /*->386917*/
/*386890*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*386892*/                OPC_MoveParent,
/*386893*/                OPC_MoveParent,
/*386894*/                OPC_RecordChild2, // #4 = $src0
/*386895*/                OPC_CheckType, MVT::v4f64,
/*386897*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*386899*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*386902*/                OPC_EmitMergeInputChains1_2,
/*386903*/                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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                          // Dst: (VUNPCKHPDZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*386917*/              0, /*End of Scope*/
/*386918*/            0, // EndSwitchOpcode
/*386919*/          /*SwitchOpcode*/ 1|128,1/*129*/, TARGET_VAL(X86ISD::UNPCKL),// ->387052
/*386923*/            OPC_RecordChild0, // #1 = $src1
/*386924*/            OPC_MoveChild1,
/*386925*/            OPC_SwitchOpcode /*2 cases */, 57, TARGET_VAL(ISD::LOAD),// ->386986
/*386929*/              OPC_RecordMemRef,
/*386930*/              OPC_RecordNode, // #2 = 'ld' chained node
/*386931*/              OPC_CheckFoldableChainNode,
/*386932*/              OPC_RecordChild1, // #3 = $src2
/*386933*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*386935*/              OPC_CheckPredicate, 9, // Predicate_load
/*386937*/              OPC_MoveParent,
/*386938*/              OPC_MoveParent,
/*386939*/              OPC_RecordChild2, // #4 = $src0
/*386940*/              OPC_SwitchType /*2 cases */, 20, MVT::v4f32,// ->386963
/*386943*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*386945*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*386948*/                OPC_EmitMergeInputChains1_2,
/*386949*/                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>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                          // Dst: (VUNPCKLPSZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*386963*/              /*SwitchType*/ 20, MVT::v4f64,// ->386985
/*386965*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*386967*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*386970*/                OPC_EmitMergeInputChains1_2,
/*386971*/                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>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                          // Dst: (VUNPCKLPDZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*386985*/              0, // EndSwitchType
/*386986*/            /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->387051
/*386989*/              OPC_RecordMemRef,
/*386990*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*386991*/              OPC_CheckFoldableChainNode,
/*386992*/              OPC_RecordChild1, // #3 = $src2
/*386993*/              OPC_Scope, 27, /*->387022*/ // 2 children in Scope
/*386995*/                OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*386997*/                OPC_MoveParent,
/*386998*/                OPC_MoveParent,
/*386999*/                OPC_RecordChild2, // #4 = $src0
/*387000*/                OPC_CheckType, MVT::v4f32,
/*387002*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*387004*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*387007*/                OPC_EmitMergeInputChains1_2,
/*387008*/                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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4f32] }:$src0) - Complexity = 28
                          // Dst: (VUNPCKLPSZ128rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*387022*/              /*Scope*/ 27, /*->387050*/
/*387023*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*387025*/                OPC_MoveParent,
/*387026*/                OPC_MoveParent,
/*387027*/                OPC_RecordChild2, // #4 = $src0
/*387028*/                OPC_CheckType, MVT::v4f64,
/*387030*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*387032*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*387035*/                OPC_EmitMergeInputChains1_2,
/*387036*/                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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR256X:{ *:[v4f64] }:$src0) - Complexity = 28
                          // Dst: (VUNPCKLPDZ256rmbk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*387050*/              0, /*End of Scope*/
/*387051*/            0, // EndSwitchOpcode
/*387052*/          /*SwitchOpcode*/ 83, TARGET_VAL(X86ISD::DPBF16PS),// ->387138
/*387055*/            OPC_RecordChild0, // #1 = $src1
/*387056*/            OPC_RecordChild1, // #2 = $src2
/*387057*/            OPC_CheckChild1Type, MVT::v4i32,
/*387059*/            OPC_MoveChild2,
/*387060*/            OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->387100
/*387064*/              OPC_RecordMemRef,
/*387065*/              OPC_RecordNode, // #3 = 'ld' chained node
/*387066*/              OPC_CheckFoldableChainNode,
/*387067*/              OPC_RecordChild1, // #4 = $src3
/*387068*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*387070*/              OPC_CheckPredicate, 9, // Predicate_load
/*387072*/              OPC_MoveParent,
/*387073*/              OPC_MoveParent,
/*387074*/              OPC_CheckChild2Same, 1,
/*387076*/              OPC_CheckType, MVT::v4f32,
/*387078*/              OPC_CheckPatternPredicate, 182, // (Subtarget->hasBF16()) && (Subtarget->hasVLX())
/*387080*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*387083*/              OPC_EmitMergeInputChains, 1, 3, 
/*387086*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDPBF16PSZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86dpbf16ps:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                        // Dst: (VDPBF16PSZ128mk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*387100*/            /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->387137
/*387103*/              OPC_RecordMemRef,
/*387104*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*387105*/              OPC_CheckFoldableChainNode,
/*387106*/              OPC_RecordChild1, // #4 = $src3
/*387107*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*387109*/              OPC_MoveParent,
/*387110*/              OPC_MoveParent,
/*387111*/              OPC_CheckChild2Same, 1,
/*387113*/              OPC_CheckType, MVT::v4f32,
/*387115*/              OPC_CheckPatternPredicate, 182, // (Subtarget->hasBF16()) && (Subtarget->hasVLX())
/*387117*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*387120*/              OPC_EmitMergeInputChains, 1, 3, 
/*387123*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDPBF16PSZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 8/*#Ops*/, 1, 0, 2, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86dpbf16ps:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v4f32] }:$src1) - Complexity = 28
                        // Dst: (VDPBF16PSZ128mbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*387137*/            0, // EndSwitchOpcode
/*387138*/          0, // EndSwitchOpcode
/*387139*/        /*Scope*/ 9|128,1/*137*/, /*->387278*/
/*387141*/          OPC_RecordChild1, // #1 = $idx
/*387142*/          OPC_MoveChild1,
/*387143*/          OPC_SwitchOpcode /*2 cases */, 97, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),// ->387244
/*387147*/            OPC_RecordChild0, // #2 = $src1
/*387148*/            OPC_Scope, 31, /*->387181*/ // 3 children in Scope
/*387150*/              OPC_CheckChild0Type, MVT::v16f32,
/*387152*/              OPC_MoveChild1,
/*387153*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*387156*/              OPC_CheckType, MVT::iPTR,
/*387158*/              OPC_MoveParent,
/*387159*/              OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/*387161*/              OPC_MoveParent,
/*387162*/              OPC_MoveChild2,
/*387163*/              OPC_CheckImmAllZerosV,
/*387164*/              OPC_MoveParent,
/*387165*/              OPC_CheckType, MVT::v4f32,
/*387167*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*387169*/              OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*387172*/              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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$idx, immAllZerosV:{ *:[v4f32] }) - Complexity = 14
                        // Dst: (VEXTRACTF32x4Zrrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR512:{ *:[v16f32] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } (extract_subvector:{ *:[v4f32] } VR512:{ *:[v16f32] }:$src1, (imm:{ *:[iPTR] })):$idx))
/*387181*/            /*Scope*/ 29, /*->387211*/
/*387182*/              OPC_MoveChild1,
/*387183*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*387186*/              OPC_CheckType, MVT::iPTR,
/*387188*/              OPC_MoveParent,
/*387189*/              OPC_CheckPredicate, 18, // Predicate_vextract256_extract
/*387191*/              OPC_MoveParent,
/*387192*/              OPC_MoveChild2,
/*387193*/              OPC_CheckImmAllZerosV,
/*387194*/              OPC_MoveParent,
/*387195*/              OPC_CheckType, MVT::v4f64,
/*387197*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*387199*/              OPC_EmitNodeXForm, 1, 1, // EXTRACT_get_vextract256_imm
/*387202*/              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] }))<<P:Predicate_vextract256_extract>><<X:EXTRACT_get_vextract256_imm>>:$idx, immAllZerosV:{ *:[v4f64] }) - Complexity = 14
                        // Dst: (VEXTRACTF64x4Zrrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR512:{ *:[v8f64] }:$src1, (EXTRACT_get_vextract256_imm:{ *:[i8] } (extract_subvector:{ *:[v4f64] } VR512:{ *:[v8f64] }:$src1, (imm:{ *:[iPTR] })):$idx))
/*387211*/            /*Scope*/ 31, /*->387243*/
/*387212*/              OPC_CheckChild0Type, MVT::v8f32,
/*387214*/              OPC_MoveChild1,
/*387215*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*387218*/              OPC_CheckType, MVT::iPTR,
/*387220*/              OPC_MoveParent,
/*387221*/              OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/*387223*/              OPC_MoveParent,
/*387224*/              OPC_MoveChild2,
/*387225*/              OPC_CheckImmAllZerosV,
/*387226*/              OPC_MoveParent,
/*387227*/              OPC_CheckType, MVT::v4f32,
/*387229*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*387231*/              OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*387234*/              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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$idx, immAllZerosV:{ *:[v4f32] }) - Complexity = 14
                        // Dst: (VEXTRACTF32x4Z256rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } (extract_subvector:{ *:[v4f32] } VR256X:{ *:[v8f32] }:$src1, (imm:{ *:[iPTR] })):$idx))
/*387243*/            0, /*End of Scope*/
/*387244*/          /*SwitchOpcode*/ 30, TARGET_VAL(ISD::INSERT_SUBVECTOR),// ->387277
/*387247*/            OPC_RecordChild0, // #2 = $src1
/*387248*/            OPC_RecordChild1, // #3 = $src2
/*387249*/            OPC_MoveChild2,
/*387250*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*387253*/            OPC_CheckType, MVT::iPTR,
/*387255*/            OPC_MoveParent,
/*387256*/            OPC_MoveParent,
/*387257*/            OPC_MoveChild2,
/*387258*/            OPC_CheckImmAllZerosV,
/*387259*/            OPC_MoveParent,
/*387260*/            OPC_CheckType, MVT::v4f64,
/*387262*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*387264*/            OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*387267*/            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, immAllZerosV:{ *:[v4f64] }) - Complexity = 13
                      // 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))
/*387277*/          0, // EndSwitchOpcode
/*387278*/        /*Scope*/ 122|128,9/*1274*/, /*->388554*/
/*387280*/          OPC_MoveChild1,
/*387281*/          OPC_SwitchOpcode /*12 cases */, 58|128,6/*826*/, TARGET_VAL(ISD::BITCAST),// ->388112
/*387286*/            OPC_Scope, 108, /*->387396*/ // 3 children in Scope
/*387288*/              OPC_RecordChild0, // #1 = $ext
/*387289*/              OPC_MoveChild0,
/*387290*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/*387293*/              OPC_RecordChild0, // #2 = $src
/*387294*/              OPC_Scope, 33, /*->387329*/ // 3 children in Scope
/*387296*/                OPC_CheckChild0Type, MVT::v4f64,
/*387298*/                OPC_MoveChild1,
/*387299*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*387302*/                OPC_CheckType, MVT::iPTR,
/*387304*/                OPC_MoveParent,
/*387305*/                OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/*387307*/                OPC_CheckType, MVT::v2f64,
/*387309*/                OPC_MoveParent,
/*387310*/                OPC_MoveParent,
/*387311*/                OPC_RecordChild2, // #3 = $src0
/*387312*/                OPC_CheckType, MVT::v4f32,
/*387314*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*387316*/                OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*387319*/                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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext), VR128X:{ *:[v4f32] }:$src0) - Complexity = 13
                          // Dst: (VEXTRACTF32x4Z256rrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v2f64] }:$ext))
/*387329*/              /*Scope*/ 33, /*->387363*/
/*387330*/                OPC_CheckChild0Type, MVT::v8f64,
/*387332*/                OPC_MoveChild1,
/*387333*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*387336*/                OPC_CheckType, MVT::iPTR,
/*387338*/                OPC_MoveParent,
/*387339*/                OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/*387341*/                OPC_CheckType, MVT::v2f64,
/*387343*/                OPC_MoveParent,
/*387344*/                OPC_MoveParent,
/*387345*/                OPC_RecordChild2, // #3 = $src0
/*387346*/                OPC_CheckType, MVT::v4f32,
/*387348*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*387350*/                OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*387353*/                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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext), VR128X:{ *:[v4f32] }:$src0) - Complexity = 13
                          // Dst: (VEXTRACTF32x4Zrrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR512:{ *:[v8f64] }:$src, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v2f64] }:$ext))
/*387363*/              /*Scope*/ 31, /*->387395*/
/*387364*/                OPC_MoveChild1,
/*387365*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*387368*/                OPC_CheckType, MVT::iPTR,
/*387370*/                OPC_MoveParent,
/*387371*/                OPC_CheckPredicate, 18, // Predicate_vextract256_extract
/*387373*/                OPC_CheckType, MVT::v8f32,
/*387375*/                OPC_MoveParent,
/*387376*/                OPC_MoveParent,
/*387377*/                OPC_RecordChild2, // #3 = $src0
/*387378*/                OPC_CheckType, MVT::v4f64,
/*387380*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*387382*/                OPC_EmitNodeXForm, 1, 1, // EXTRACT_get_vextract256_imm
/*387385*/                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] }))<<P:Predicate_vextract256_extract>><<X:EXTRACT_get_vextract256_imm>>:$ext), VR256X:{ *:[v4f64] }:$src0) - Complexity = 13
                          // Dst: (VEXTRACTF64x4Zrrk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR512:{ *:[v16f32] }:$src, (EXTRACT_get_vextract256_imm:{ *:[i8] } VR256X:{ *:[v8f32] }:$ext))
/*387395*/              0, /*End of Scope*/
/*387396*/            /*Scope*/ 35|128,5/*675*/, /*->388073*/
/*387398*/              OPC_MoveChild0,
/*387399*/              OPC_SwitchOpcode /*4 cases */, 36|128,1/*164*/, TARGET_VAL(ISD::AND),// ->387568
/*387404*/                OPC_RecordChild0, // #1 = $src1
/*387405*/                OPC_RecordChild1, // #2 = $src2
/*387406*/                OPC_SwitchType /*8 cases */, 18, MVT::v2i64,// ->387427
/*387409*/                  OPC_MoveParent,
/*387410*/                  OPC_MoveParent,
/*387411*/                  OPC_MoveChild2,
/*387412*/                  OPC_CheckImmAllZerosV,
/*387413*/                  OPC_MoveParent,
/*387414*/                  OPC_CheckType, MVT::v4f32,
/*387416*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*387418*/                  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)), immAllZerosV:{ *:[v4f32] }) - Complexity = 13
                            // Dst: (VPANDDZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*387427*/                /*SwitchType*/ 18, MVT::v4i32,// ->387447
/*387429*/                  OPC_MoveParent,
/*387430*/                  OPC_MoveParent,
/*387431*/                  OPC_MoveChild2,
/*387432*/                  OPC_CheckImmAllZerosV,
/*387433*/                  OPC_MoveParent,
/*387434*/                  OPC_CheckType, MVT::v4f32,
/*387436*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*387438*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ128rrkz), 0,
                                MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (and:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)), immAllZerosV:{ *:[v4f32] }) - Complexity = 13
                            // Dst: (VPANDDZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*387447*/                /*SwitchType*/ 18, MVT::v8i16,// ->387467
/*387449*/                  OPC_MoveParent,
/*387450*/                  OPC_MoveParent,
/*387451*/                  OPC_MoveChild2,
/*387452*/                  OPC_CheckImmAllZerosV,
/*387453*/                  OPC_MoveParent,
/*387454*/                  OPC_CheckType, MVT::v4f32,
/*387456*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*387458*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ128rrkz), 0,
                                MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (and:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)), immAllZerosV:{ *:[v4f32] }) - Complexity = 13
                            // Dst: (VPANDDZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*387467*/                /*SwitchType*/ 18, MVT::v16i8,// ->387487
/*387469*/                  OPC_MoveParent,
/*387470*/                  OPC_MoveParent,
/*387471*/                  OPC_MoveChild2,
/*387472*/                  OPC_CheckImmAllZerosV,
/*387473*/                  OPC_MoveParent,
/*387474*/                  OPC_CheckType, MVT::v4f32,
/*387476*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*387478*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ128rrkz), 0,
                                MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (and:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)), immAllZerosV:{ *:[v4f32] }) - Complexity = 13
                            // Dst: (VPANDDZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*387487*/                /*SwitchType*/ 18, MVT::v4i64,// ->387507
/*387489*/                  OPC_MoveParent,
/*387490*/                  OPC_MoveParent,
/*387491*/                  OPC_MoveChild2,
/*387492*/                  OPC_CheckImmAllZerosV,
/*387493*/                  OPC_MoveParent,
/*387494*/                  OPC_CheckType, MVT::v4f64,
/*387496*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*387498*/                  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)), immAllZerosV:{ *:[v4f64] }) - Complexity = 13
                            // Dst: (VPANDQZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*387507*/                /*SwitchType*/ 18, MVT::v8i32,// ->387527
/*387509*/                  OPC_MoveParent,
/*387510*/                  OPC_MoveParent,
/*387511*/                  OPC_MoveChild2,
/*387512*/                  OPC_CheckImmAllZerosV,
/*387513*/                  OPC_MoveParent,
/*387514*/                  OPC_CheckType, MVT::v4f64,
/*387516*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*387518*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ256rrkz), 0,
                                MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (and:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)), immAllZerosV:{ *:[v4f64] }) - Complexity = 13
                            // Dst: (VPANDQZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*387527*/                /*SwitchType*/ 18, MVT::v16i16,// ->387547
/*387529*/                  OPC_MoveParent,
/*387530*/                  OPC_MoveParent,
/*387531*/                  OPC_MoveChild2,
/*387532*/                  OPC_CheckImmAllZerosV,
/*387533*/                  OPC_MoveParent,
/*387534*/                  OPC_CheckType, MVT::v4f64,
/*387536*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*387538*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ256rrkz), 0,
                                MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (and:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)), immAllZerosV:{ *:[v4f64] }) - Complexity = 13
                            // Dst: (VPANDQZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*387547*/                /*SwitchType*/ 18, MVT::v32i8,// ->387567
/*387549*/                  OPC_MoveParent,
/*387550*/                  OPC_MoveParent,
/*387551*/                  OPC_MoveChild2,
/*387552*/                  OPC_CheckImmAllZerosV,
/*387553*/                  OPC_MoveParent,
/*387554*/                  OPC_CheckType, MVT::v4f64,
/*387556*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*387558*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ256rrkz), 0,
                                MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (and:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)), immAllZerosV:{ *:[v4f64] }) - Complexity = 13
                            // Dst: (VPANDQZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*387567*/                0, // EndSwitchType
/*387568*/              /*SwitchOpcode*/ 36|128,1/*164*/, TARGET_VAL(ISD::OR),// ->387736
/*387572*/                OPC_RecordChild0, // #1 = $src1
/*387573*/                OPC_RecordChild1, // #2 = $src2
/*387574*/                OPC_SwitchType /*8 cases */, 18, MVT::v2i64,// ->387595
/*387577*/                  OPC_MoveParent,
/*387578*/                  OPC_MoveParent,
/*387579*/                  OPC_MoveChild2,
/*387580*/                  OPC_CheckImmAllZerosV,
/*387581*/                  OPC_MoveParent,
/*387582*/                  OPC_CheckType, MVT::v4f32,
/*387584*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*387586*/                  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)), immAllZerosV:{ *:[v4f32] }) - Complexity = 13
                            // Dst: (VPORDZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*387595*/                /*SwitchType*/ 18, MVT::v4i32,// ->387615
/*387597*/                  OPC_MoveParent,
/*387598*/                  OPC_MoveParent,
/*387599*/                  OPC_MoveChild2,
/*387600*/                  OPC_CheckImmAllZerosV,
/*387601*/                  OPC_MoveParent,
/*387602*/                  OPC_CheckType, MVT::v4f32,
/*387604*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*387606*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ128rrkz), 0,
                                MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (or:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)), immAllZerosV:{ *:[v4f32] }) - Complexity = 13
                            // Dst: (VPORDZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*387615*/                /*SwitchType*/ 18, MVT::v8i16,// ->387635
/*387617*/                  OPC_MoveParent,
/*387618*/                  OPC_MoveParent,
/*387619*/                  OPC_MoveChild2,
/*387620*/                  OPC_CheckImmAllZerosV,
/*387621*/                  OPC_MoveParent,
/*387622*/                  OPC_CheckType, MVT::v4f32,
/*387624*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*387626*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ128rrkz), 0,
                                MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (or:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)), immAllZerosV:{ *:[v4f32] }) - Complexity = 13
                            // Dst: (VPORDZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*387635*/                /*SwitchType*/ 18, MVT::v16i8,// ->387655
/*387637*/                  OPC_MoveParent,
/*387638*/                  OPC_MoveParent,
/*387639*/                  OPC_MoveChild2,
/*387640*/                  OPC_CheckImmAllZerosV,
/*387641*/                  OPC_MoveParent,
/*387642*/                  OPC_CheckType, MVT::v4f32,
/*387644*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*387646*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ128rrkz), 0,
                                MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (or:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)), immAllZerosV:{ *:[v4f32] }) - Complexity = 13
                            // Dst: (VPORDZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*387655*/                /*SwitchType*/ 18, MVT::v4i64,// ->387675
/*387657*/                  OPC_MoveParent,
/*387658*/                  OPC_MoveParent,
/*387659*/                  OPC_MoveChild2,
/*387660*/                  OPC_CheckImmAllZerosV,
/*387661*/                  OPC_MoveParent,
/*387662*/                  OPC_CheckType, MVT::v4f64,
/*387664*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*387666*/                  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)), immAllZerosV:{ *:[v4f64] }) - Complexity = 13
                            // Dst: (VPORQZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*387675*/                /*SwitchType*/ 18, MVT::v8i32,// ->387695
/*387677*/                  OPC_MoveParent,
/*387678*/                  OPC_MoveParent,
/*387679*/                  OPC_MoveChild2,
/*387680*/                  OPC_CheckImmAllZerosV,
/*387681*/                  OPC_MoveParent,
/*387682*/                  OPC_CheckType, MVT::v4f64,
/*387684*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*387686*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ256rrkz), 0,
                                MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (or:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)), immAllZerosV:{ *:[v4f64] }) - Complexity = 13
                            // Dst: (VPORQZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*387695*/                /*SwitchType*/ 18, MVT::v16i16,// ->387715
/*387697*/                  OPC_MoveParent,
/*387698*/                  OPC_MoveParent,
/*387699*/                  OPC_MoveChild2,
/*387700*/                  OPC_CheckImmAllZerosV,
/*387701*/                  OPC_MoveParent,
/*387702*/                  OPC_CheckType, MVT::v4f64,
/*387704*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*387706*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ256rrkz), 0,
                                MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (or:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)), immAllZerosV:{ *:[v4f64] }) - Complexity = 13
                            // Dst: (VPORQZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*387715*/                /*SwitchType*/ 18, MVT::v32i8,// ->387735
/*387717*/                  OPC_MoveParent,
/*387718*/                  OPC_MoveParent,
/*387719*/                  OPC_MoveChild2,
/*387720*/                  OPC_CheckImmAllZerosV,
/*387721*/                  OPC_MoveParent,
/*387722*/                  OPC_CheckType, MVT::v4f64,
/*387724*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*387726*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ256rrkz), 0,
                                MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (or:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)), immAllZerosV:{ *:[v4f64] }) - Complexity = 13
                            // Dst: (VPORQZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*387735*/                0, // EndSwitchType
/*387736*/              /*SwitchOpcode*/ 36|128,1/*164*/, TARGET_VAL(ISD::XOR),// ->387904
/*387740*/                OPC_RecordChild0, // #1 = $src1
/*387741*/                OPC_RecordChild1, // #2 = $src2
/*387742*/                OPC_SwitchType /*8 cases */, 18, MVT::v2i64,// ->387763
/*387745*/                  OPC_MoveParent,
/*387746*/                  OPC_MoveParent,
/*387747*/                  OPC_MoveChild2,
/*387748*/                  OPC_CheckImmAllZerosV,
/*387749*/                  OPC_MoveParent,
/*387750*/                  OPC_CheckType, MVT::v4f32,
/*387752*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*387754*/                  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)), immAllZerosV:{ *:[v4f32] }) - Complexity = 13
                            // Dst: (VPXORDZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*387763*/                /*SwitchType*/ 18, MVT::v4i32,// ->387783
/*387765*/                  OPC_MoveParent,
/*387766*/                  OPC_MoveParent,
/*387767*/                  OPC_MoveChild2,
/*387768*/                  OPC_CheckImmAllZerosV,
/*387769*/                  OPC_MoveParent,
/*387770*/                  OPC_CheckType, MVT::v4f32,
/*387772*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*387774*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ128rrkz), 0,
                                MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (xor:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)), immAllZerosV:{ *:[v4f32] }) - Complexity = 13
                            // Dst: (VPXORDZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*387783*/                /*SwitchType*/ 18, MVT::v8i16,// ->387803
/*387785*/                  OPC_MoveParent,
/*387786*/                  OPC_MoveParent,
/*387787*/                  OPC_MoveChild2,
/*387788*/                  OPC_CheckImmAllZerosV,
/*387789*/                  OPC_MoveParent,
/*387790*/                  OPC_CheckType, MVT::v4f32,
/*387792*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*387794*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ128rrkz), 0,
                                MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (xor:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)), immAllZerosV:{ *:[v4f32] }) - Complexity = 13
                            // Dst: (VPXORDZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*387803*/                /*SwitchType*/ 18, MVT::v16i8,// ->387823
/*387805*/                  OPC_MoveParent,
/*387806*/                  OPC_MoveParent,
/*387807*/                  OPC_MoveChild2,
/*387808*/                  OPC_CheckImmAllZerosV,
/*387809*/                  OPC_MoveParent,
/*387810*/                  OPC_CheckType, MVT::v4f32,
/*387812*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*387814*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ128rrkz), 0,
                                MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (xor:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)), immAllZerosV:{ *:[v4f32] }) - Complexity = 13
                            // Dst: (VPXORDZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*387823*/                /*SwitchType*/ 18, MVT::v4i64,// ->387843
/*387825*/                  OPC_MoveParent,
/*387826*/                  OPC_MoveParent,
/*387827*/                  OPC_MoveChild2,
/*387828*/                  OPC_CheckImmAllZerosV,
/*387829*/                  OPC_MoveParent,
/*387830*/                  OPC_CheckType, MVT::v4f64,
/*387832*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*387834*/                  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)), immAllZerosV:{ *:[v4f64] }) - Complexity = 13
                            // Dst: (VPXORQZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*387843*/                /*SwitchType*/ 18, MVT::v8i32,// ->387863
/*387845*/                  OPC_MoveParent,
/*387846*/                  OPC_MoveParent,
/*387847*/                  OPC_MoveChild2,
/*387848*/                  OPC_CheckImmAllZerosV,
/*387849*/                  OPC_MoveParent,
/*387850*/                  OPC_CheckType, MVT::v4f64,
/*387852*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*387854*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ256rrkz), 0,
                                MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (xor:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)), immAllZerosV:{ *:[v4f64] }) - Complexity = 13
                            // Dst: (VPXORQZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*387863*/                /*SwitchType*/ 18, MVT::v16i16,// ->387883
/*387865*/                  OPC_MoveParent,
/*387866*/                  OPC_MoveParent,
/*387867*/                  OPC_MoveChild2,
/*387868*/                  OPC_CheckImmAllZerosV,
/*387869*/                  OPC_MoveParent,
/*387870*/                  OPC_CheckType, MVT::v4f64,
/*387872*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*387874*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ256rrkz), 0,
                                MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (xor:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)), immAllZerosV:{ *:[v4f64] }) - Complexity = 13
                            // Dst: (VPXORQZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*387883*/                /*SwitchType*/ 18, MVT::v32i8,// ->387903
/*387885*/                  OPC_MoveParent,
/*387886*/                  OPC_MoveParent,
/*387887*/                  OPC_MoveChild2,
/*387888*/                  OPC_CheckImmAllZerosV,
/*387889*/                  OPC_MoveParent,
/*387890*/                  OPC_CheckType, MVT::v4f64,
/*387892*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*387894*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ256rrkz), 0,
                                MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (xor:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)), immAllZerosV:{ *:[v4f64] }) - Complexity = 13
                            // Dst: (VPXORQZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*387903*/                0, // EndSwitchType
/*387904*/              /*SwitchOpcode*/ 36|128,1/*164*/, TARGET_VAL(X86ISD::ANDNP),// ->388072
/*387908*/                OPC_RecordChild0, // #1 = $src1
/*387909*/                OPC_RecordChild1, // #2 = $src2
/*387910*/                OPC_SwitchType /*8 cases */, 18, MVT::v2i64,// ->387931
/*387913*/                  OPC_MoveParent,
/*387914*/                  OPC_MoveParent,
/*387915*/                  OPC_MoveChild2,
/*387916*/                  OPC_CheckImmAllZerosV,
/*387917*/                  OPC_MoveParent,
/*387918*/                  OPC_CheckType, MVT::v4f32,
/*387920*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*387922*/                  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)), immAllZerosV:{ *:[v4f32] }) - Complexity = 13
                            // Dst: (VPANDNDZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*387931*/                /*SwitchType*/ 18, MVT::v4i32,// ->387951
/*387933*/                  OPC_MoveParent,
/*387934*/                  OPC_MoveParent,
/*387935*/                  OPC_MoveChild2,
/*387936*/                  OPC_CheckImmAllZerosV,
/*387937*/                  OPC_MoveParent,
/*387938*/                  OPC_CheckType, MVT::v4f32,
/*387940*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*387942*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZ128rrkz), 0,
                                MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (X86andnp:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)), immAllZerosV:{ *:[v4f32] }) - Complexity = 13
                            // Dst: (VPANDNDZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*387951*/                /*SwitchType*/ 18, MVT::v8i16,// ->387971
/*387953*/                  OPC_MoveParent,
/*387954*/                  OPC_MoveParent,
/*387955*/                  OPC_MoveChild2,
/*387956*/                  OPC_CheckImmAllZerosV,
/*387957*/                  OPC_MoveParent,
/*387958*/                  OPC_CheckType, MVT::v4f32,
/*387960*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*387962*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZ128rrkz), 0,
                                MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (X86andnp:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)), immAllZerosV:{ *:[v4f32] }) - Complexity = 13
                            // Dst: (VPANDNDZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*387971*/                /*SwitchType*/ 18, MVT::v16i8,// ->387991
/*387973*/                  OPC_MoveParent,
/*387974*/                  OPC_MoveParent,
/*387975*/                  OPC_MoveChild2,
/*387976*/                  OPC_CheckImmAllZerosV,
/*387977*/                  OPC_MoveParent,
/*387978*/                  OPC_CheckType, MVT::v4f32,
/*387980*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*387982*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZ128rrkz), 0,
                                MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (X86andnp:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)), immAllZerosV:{ *:[v4f32] }) - Complexity = 13
                            // Dst: (VPANDNDZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*387991*/                /*SwitchType*/ 18, MVT::v4i64,// ->388011
/*387993*/                  OPC_MoveParent,
/*387994*/                  OPC_MoveParent,
/*387995*/                  OPC_MoveChild2,
/*387996*/                  OPC_CheckImmAllZerosV,
/*387997*/                  OPC_MoveParent,
/*387998*/                  OPC_CheckType, MVT::v4f64,
/*388000*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*388002*/                  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)), immAllZerosV:{ *:[v4f64] }) - Complexity = 13
                            // Dst: (VPANDNQZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*388011*/                /*SwitchType*/ 18, MVT::v8i32,// ->388031
/*388013*/                  OPC_MoveParent,
/*388014*/                  OPC_MoveParent,
/*388015*/                  OPC_MoveChild2,
/*388016*/                  OPC_CheckImmAllZerosV,
/*388017*/                  OPC_MoveParent,
/*388018*/                  OPC_CheckType, MVT::v4f64,
/*388020*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*388022*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZ256rrkz), 0,
                                MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (X86andnp:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)), immAllZerosV:{ *:[v4f64] }) - Complexity = 13
                            // Dst: (VPANDNQZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*388031*/                /*SwitchType*/ 18, MVT::v16i16,// ->388051
/*388033*/                  OPC_MoveParent,
/*388034*/                  OPC_MoveParent,
/*388035*/                  OPC_MoveChild2,
/*388036*/                  OPC_CheckImmAllZerosV,
/*388037*/                  OPC_MoveParent,
/*388038*/                  OPC_CheckType, MVT::v4f64,
/*388040*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*388042*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZ256rrkz), 0,
                                MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (X86andnp:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)), immAllZerosV:{ *:[v4f64] }) - Complexity = 13
                            // Dst: (VPANDNQZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*388051*/                /*SwitchType*/ 18, MVT::v32i8,// ->388071
/*388053*/                  OPC_MoveParent,
/*388054*/                  OPC_MoveParent,
/*388055*/                  OPC_MoveChild2,
/*388056*/                  OPC_CheckImmAllZerosV,
/*388057*/                  OPC_MoveParent,
/*388058*/                  OPC_CheckType, MVT::v4f64,
/*388060*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*388062*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZ256rrkz), 0,
                                MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (X86andnp:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)), immAllZerosV:{ *:[v4f64] }) - Complexity = 13
                            // Dst: (VPANDNQZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*388071*/                0, // EndSwitchType
/*388072*/              0, // EndSwitchOpcode
/*388073*/            /*Scope*/ 37, /*->388111*/
/*388074*/              OPC_RecordChild0, // #1 = $ins
/*388075*/              OPC_MoveChild0,
/*388076*/              OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*388079*/              OPC_RecordChild0, // #2 = $src1
/*388080*/              OPC_RecordChild1, // #3 = $src2
/*388081*/              OPC_MoveChild2,
/*388082*/              OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*388085*/              OPC_CheckType, MVT::iPTR,
/*388087*/              OPC_MoveParent,
/*388088*/              OPC_CheckType, MVT::v8f32,
/*388090*/              OPC_MoveParent,
/*388091*/              OPC_MoveParent,
/*388092*/              OPC_RecordChild2, // #4 = $src0
/*388093*/              OPC_CheckType, MVT::v4f64,
/*388095*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*388097*/              OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*388100*/              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))
/*388111*/            0, /*End of Scope*/
/*388112*/          /*SwitchOpcode*/ 24, TARGET_VAL(X86ISD::VPERMI),// ->388139
/*388115*/            OPC_RecordChild0, // #1 = $src1
/*388116*/            OPC_RecordChild1, // #2 = $src2
/*388117*/            OPC_MoveChild1,
/*388118*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*388121*/            OPC_MoveParent,
/*388122*/            OPC_MoveParent,
/*388123*/            OPC_MoveChild2,
/*388124*/            OPC_CheckImmAllZerosV,
/*388125*/            OPC_MoveParent,
/*388126*/            OPC_CheckType, MVT::v4f64,
/*388128*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*388130*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPDZ256rikz), 0,
                          MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermi:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v4f64] }) - Complexity = 13
                      // Dst: (VPERMPDZ256rikz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, (timm:{ *:[i8] }):$src2)
/*388139*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VPERMILPI),// ->388181
/*388142*/            OPC_RecordChild0, // #1 = $src1
/*388143*/            OPC_RecordChild1, // #2 = $src2
/*388144*/            OPC_MoveChild1,
/*388145*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*388148*/            OPC_MoveParent,
/*388149*/            OPC_MoveParent,
/*388150*/            OPC_MoveChild2,
/*388151*/            OPC_CheckImmAllZerosV,
/*388152*/            OPC_MoveParent,
/*388153*/            OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->388167
/*388156*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*388158*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZ128rikz), 0,
                            MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermilpi:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v4f32] }) - Complexity = 13
                        // Dst: (VPERMILPSZ128rikz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, (timm:{ *:[i8] }):$src2)
/*388167*/            /*SwitchType*/ 11, MVT::v4f64,// ->388180
/*388169*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*388171*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZ256rikz), 0,
                            MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermilpi:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v4f64] }) - Complexity = 13
                        // Dst: (VPERMILPDZ256rikz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, (timm:{ *:[i8] }):$src2)
/*388180*/            0, // EndSwitchType
/*388181*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VREDUCE),// ->388223
/*388184*/            OPC_RecordChild0, // #1 = $src1
/*388185*/            OPC_RecordChild1, // #2 = $src2
/*388186*/            OPC_MoveChild1,
/*388187*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*388190*/            OPC_MoveParent,
/*388191*/            OPC_MoveParent,
/*388192*/            OPC_MoveChild2,
/*388193*/            OPC_CheckImmAllZerosV,
/*388194*/            OPC_MoveParent,
/*388195*/            OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->388209
/*388198*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*388200*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPSZ128rrikz), 0,
                            MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VReduce:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v4f32] }) - Complexity = 13
                        // Dst: (VREDUCEPSZ128rrikz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*388209*/            /*SwitchType*/ 11, MVT::v4f64,// ->388222
/*388211*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*388213*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPDZ256rrikz), 0,
                            MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VReduce:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v4f64] }) - Complexity = 13
                        // Dst: (VREDUCEPDZ256rrikz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, (timm:{ *:[i32] }):$src2)
/*388222*/            0, // EndSwitchType
/*388223*/          /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::STRICT_VRNDSCALE),// ->388269
/*388226*/            OPC_RecordNode, // #1 = 'X86strict_VRndScale' chained node
/*388227*/            OPC_CheckFoldableChainNode,
/*388228*/            OPC_RecordChild1, // #2 = $src1
/*388229*/            OPC_RecordChild2, // #3 = $src2
/*388230*/            OPC_MoveChild2,
/*388231*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*388234*/            OPC_MoveParent,
/*388235*/            OPC_MoveParent,
/*388236*/            OPC_MoveChild2,
/*388237*/            OPC_CheckImmAllZerosV,
/*388238*/            OPC_MoveParent,
/*388239*/            OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->388254
/*388242*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*388244*/              OPC_EmitMergeInputChains1_1,
/*388245*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rrikz), 0|OPFL_Chain,
                            MVT::v4f32, 3/*#Ops*/, 0, 2, 3, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_VRndScale:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v4f32] }) - Complexity = 13
                        // Dst: (VRNDSCALEPSZ128rrikz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*388254*/            /*SwitchType*/ 12, MVT::v4f64,// ->388268
/*388256*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*388258*/              OPC_EmitMergeInputChains1_1,
/*388259*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rrikz), 0|OPFL_Chain,
                            MVT::v4f64, 3/*#Ops*/, 0, 2, 3, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_VRndScale:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v4f64] }) - Complexity = 13
                        // Dst: (VRNDSCALEPDZ256rrikz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, (timm:{ *:[i32] }):$src2)
/*388268*/            0, // EndSwitchType
/*388269*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VRNDSCALE),// ->388311
/*388272*/            OPC_RecordChild0, // #1 = $src1
/*388273*/            OPC_RecordChild1, // #2 = $src2
/*388274*/            OPC_MoveChild1,
/*388275*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*388278*/            OPC_MoveParent,
/*388279*/            OPC_MoveParent,
/*388280*/            OPC_MoveChild2,
/*388281*/            OPC_CheckImmAllZerosV,
/*388282*/            OPC_MoveParent,
/*388283*/            OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->388297
/*388286*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*388288*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rrikz), 0,
                            MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VRndScale:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v4f32] }) - Complexity = 13
                        // Dst: (VRNDSCALEPSZ128rrikz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*388297*/            /*SwitchType*/ 11, MVT::v4f64,// ->388310
/*388299*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*388301*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rrikz), 0,
                            MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VRndScale:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v4f64] }) - Complexity = 13
                        // Dst: (VRNDSCALEPDZ256rrikz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, (timm:{ *:[i32] }):$src2)
/*388310*/            0, // EndSwitchType
/*388311*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VGETMANT),// ->388353
/*388314*/            OPC_RecordChild0, // #1 = $src1
/*388315*/            OPC_RecordChild1, // #2 = $src2
/*388316*/            OPC_MoveChild1,
/*388317*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*388320*/            OPC_MoveParent,
/*388321*/            OPC_MoveParent,
/*388322*/            OPC_MoveChild2,
/*388323*/            OPC_CheckImmAllZerosV,
/*388324*/            OPC_MoveParent,
/*388325*/            OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->388339
/*388328*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*388330*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPSZ128rrikz), 0,
                            MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VGetMant:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v4f32] }) - Complexity = 13
                        // Dst: (VGETMANTPSZ128rrikz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*388339*/            /*SwitchType*/ 11, MVT::v4f64,// ->388352
/*388341*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*388343*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPDZ256rrikz), 0,
                            MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VGetMant:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v4f64] }) - Complexity = 13
                        // Dst: (VGETMANTPDZ256rrikz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, (timm:{ *:[i32] }):$src2)
/*388352*/            0, // EndSwitchType
/*388353*/          /*SwitchOpcode*/ 42, TARGET_VAL(X86ISD::VRANGE),// ->388398
/*388356*/            OPC_RecordChild0, // #1 = $src1
/*388357*/            OPC_RecordChild1, // #2 = $src2
/*388358*/            OPC_RecordChild2, // #3 = $src3
/*388359*/            OPC_MoveChild2,
/*388360*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*388363*/            OPC_MoveParent,
/*388364*/            OPC_MoveParent,
/*388365*/            OPC_MoveChild2,
/*388366*/            OPC_CheckImmAllZerosV,
/*388367*/            OPC_MoveParent,
/*388368*/            OPC_SwitchType /*2 cases */, 12, MVT::v4f64,// ->388383
/*388371*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*388373*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPDZ256rrikz), 0,
                            MVT::v4f64, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VRange:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (timm:{ *:[i32] }):$src3), immAllZerosV:{ *:[v4f64] }) - Complexity = 13
                        // Dst: (VRANGEPDZ256rrikz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (timm:{ *:[i32] }):$src3)
/*388383*/            /*SwitchType*/ 12, MVT::v4f32,// ->388397
/*388385*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*388387*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPSZ128rrikz), 0,
                            MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VRange:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3), immAllZerosV:{ *:[v4f32] }) - Complexity = 13
                        // Dst: (VRANGEPSZ128rrikz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3)
/*388397*/            0, // EndSwitchType
/*388398*/          /*SwitchOpcode*/ 26, TARGET_VAL(X86ISD::SHUF128),// ->388427
/*388401*/            OPC_RecordChild0, // #1 = $src1
/*388402*/            OPC_RecordChild1, // #2 = $src2
/*388403*/            OPC_RecordChild2, // #3 = $src3
/*388404*/            OPC_MoveChild2,
/*388405*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*388408*/            OPC_MoveParent,
/*388409*/            OPC_MoveParent,
/*388410*/            OPC_MoveChild2,
/*388411*/            OPC_CheckImmAllZerosV,
/*388412*/            OPC_MoveParent,
/*388413*/            OPC_CheckType, MVT::v4f64,
/*388415*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*388417*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF64X2Z256rrikz), 0,
                          MVT::v4f64, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Shuf128:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v4f64] }) - Complexity = 13
                      // Dst: (VSHUFF64X2Z256rrikz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (timm:{ *:[i8] }):$src3)
/*388427*/          /*SwitchOpcode*/ 42, TARGET_VAL(X86ISD::SHUFP),// ->388472
/*388430*/            OPC_RecordChild0, // #1 = $src1
/*388431*/            OPC_RecordChild1, // #2 = $src2
/*388432*/            OPC_RecordChild2, // #3 = $src3
/*388433*/            OPC_MoveChild2,
/*388434*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*388437*/            OPC_MoveParent,
/*388438*/            OPC_MoveParent,
/*388439*/            OPC_MoveChild2,
/*388440*/            OPC_CheckImmAllZerosV,
/*388441*/            OPC_MoveParent,
/*388442*/            OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->388457
/*388445*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*388447*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPSZ128rrikz), 0,
                            MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Shufp:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v4f32] }) - Complexity = 13
                        // Dst: (VSHUFPSZ128rrikz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i8] }):$src3)
/*388457*/            /*SwitchType*/ 12, MVT::v4f64,// ->388471
/*388459*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*388461*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPDZ256rrikz), 0,
                            MVT::v4f64, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Shufp:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v4f64] }) - Complexity = 13
                        // Dst: (VSHUFPDZ256rrikz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (timm:{ *:[i8] }):$src3)
/*388471*/            0, // EndSwitchType
/*388472*/          /*SwitchOpcode*/ 45, TARGET_VAL(X86ISD::VFIXUPIMM),// ->388520
/*388475*/            OPC_RecordChild0, // #1 = $src1
/*388476*/            OPC_RecordChild1, // #2 = $src2
/*388477*/            OPC_RecordChild2, // #3 = $src3
/*388478*/            OPC_RecordChild3, // #4 = $src4
/*388479*/            OPC_MoveChild3,
/*388480*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*388483*/            OPC_MoveParent,
/*388484*/            OPC_MoveParent,
/*388485*/            OPC_MoveChild2,
/*388486*/            OPC_CheckImmAllZerosV,
/*388487*/            OPC_MoveParent,
/*388488*/            OPC_SwitchType /*2 cases */, 13, MVT::v4f32,// ->388504
/*388491*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*388493*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPSZ128rrikz), 0,
                            MVT::v4f32, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VFixupimm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4i32] }:$src3, (timm:{ *:[i32] }):$src4), immAllZerosV:{ *:[v4f32] }) - Complexity = 13
                        // Dst: (VFIXUPIMMPSZ128rrikz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4i32] }:$src3, (timm:{ *:[i32] }):$src4)
/*388504*/            /*SwitchType*/ 13, MVT::v4f64,// ->388519
/*388506*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*388508*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPDZ256rrikz), 0,
                            MVT::v4f64, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VFixupimm:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4i64] }:$src3, (timm:{ *:[i32] }):$src4), immAllZerosV:{ *:[v4f64] }) - Complexity = 13
                        // Dst: (VFIXUPIMMPDZ256rrikz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4i64] }:$src3, (timm:{ *:[i32] }):$src4)
/*388519*/            0, // EndSwitchType
/*388520*/          /*SwitchOpcode*/ 30, TARGET_VAL(X86ISD::VPERMV3),// ->388553
/*388523*/            OPC_RecordChild0, // #1 = $src2
/*388524*/            OPC_MoveChild1,
/*388525*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*388528*/            OPC_RecordChild0, // #2 = $src1
/*388529*/            OPC_CheckChild0Type, MVT::v2i64,
/*388531*/            OPC_MoveParent,
/*388532*/            OPC_RecordChild2, // #3 = $src3
/*388533*/            OPC_MoveParent,
/*388534*/            OPC_MoveChild2,
/*388535*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*388538*/            OPC_CheckChild0Same, 2,
/*388540*/            OPC_MoveParent,
/*388541*/            OPC_CheckType, MVT::v4f32,
/*388543*/            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)
/*388553*/          0, // EndSwitchOpcode
/*388554*/        /*Scope*/ 99, /*->388654*/
/*388555*/          OPC_RecordChild1, // #1 = $idx
/*388556*/          OPC_MoveChild1,
/*388557*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/*388560*/          OPC_RecordChild0, // #2 = $src1
/*388561*/          OPC_Scope, 30, /*->388593*/ // 3 children in Scope
/*388563*/            OPC_CheckChild0Type, MVT::v16f32,
/*388565*/            OPC_MoveChild1,
/*388566*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*388569*/            OPC_CheckType, MVT::iPTR,
/*388571*/            OPC_MoveParent,
/*388572*/            OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/*388574*/            OPC_MoveParent,
/*388575*/            OPC_RecordChild2, // #3 = $src0
/*388576*/            OPC_CheckType, MVT::v4f32,
/*388578*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*388580*/            OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*388583*/            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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$idx, VR128X:{ *:[v4f32] }:$src0) - Complexity = 10
                      // 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))
/*388593*/          /*Scope*/ 28, /*->388622*/
/*388594*/            OPC_MoveChild1,
/*388595*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*388598*/            OPC_CheckType, MVT::iPTR,
/*388600*/            OPC_MoveParent,
/*388601*/            OPC_CheckPredicate, 18, // Predicate_vextract256_extract
/*388603*/            OPC_MoveParent,
/*388604*/            OPC_RecordChild2, // #3 = $src0
/*388605*/            OPC_CheckType, MVT::v4f64,
/*388607*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*388609*/            OPC_EmitNodeXForm, 1, 1, // EXTRACT_get_vextract256_imm
/*388612*/            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] }))<<P:Predicate_vextract256_extract>><<X:EXTRACT_get_vextract256_imm>>:$idx, VR256X:{ *:[v4f64] }:$src0) - Complexity = 10
                      // 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))
/*388622*/          /*Scope*/ 30, /*->388653*/
/*388623*/            OPC_CheckChild0Type, MVT::v8f32,
/*388625*/            OPC_MoveChild1,
/*388626*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*388629*/            OPC_CheckType, MVT::iPTR,
/*388631*/            OPC_MoveParent,
/*388632*/            OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/*388634*/            OPC_MoveParent,
/*388635*/            OPC_RecordChild2, // #3 = $src0
/*388636*/            OPC_CheckType, MVT::v4f32,
/*388638*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*388640*/            OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*388643*/            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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$idx, VR128X:{ *:[v4f32] }:$src0) - Complexity = 10
                      // 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))
/*388653*/          0, /*End of Scope*/
/*388654*/        /*Scope*/ 69|128,13/*1733*/, /*->390389*/
/*388656*/          OPC_MoveChild1,
/*388657*/          OPC_SwitchOpcode /*44 cases */, 101, TARGET_VAL(X86ISD::VBROADCAST),// ->388762
/*388661*/            OPC_RecordChild0, // #1 = $src
/*388662*/            OPC_Scope, 18, /*->388682*/ // 4 children in Scope
/*388664*/              OPC_CheckChild0Type, MVT::v4f32,
/*388666*/              OPC_MoveParent,
/*388667*/              OPC_MoveChild2,
/*388668*/              OPC_CheckImmAllZerosV,
/*388669*/              OPC_MoveParent,
/*388670*/              OPC_CheckType, MVT::v4f32,
/*388672*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*388674*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSSZ128rkz), 0,
                            MVT::v4f32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VBroadcast:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src), immAllZerosV:{ *:[v4f32] }) - Complexity = 10
                        // Dst: (VBROADCASTSSZ128rkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*388682*/            /*Scope*/ 18, /*->388701*/
/*388683*/              OPC_CheckChild0Type, MVT::v2f64,
/*388685*/              OPC_MoveParent,
/*388686*/              OPC_MoveChild2,
/*388687*/              OPC_CheckImmAllZerosV,
/*388688*/              OPC_MoveParent,
/*388689*/              OPC_CheckType, MVT::v4f64,
/*388691*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*388693*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSDZ256rkz), 0,
                            MVT::v4f64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VBroadcast:{ *:[v4f64] } VR128X:{ *:[v2f64] }:$src), immAllZerosV:{ *:[v4f64] }) - Complexity = 10
                        // Dst: (VBROADCASTSDZ256rkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*388701*/            /*Scope*/ 29, /*->388731*/
/*388702*/              OPC_CheckChild0Type, MVT::f32,
/*388704*/              OPC_MoveParent,
/*388705*/              OPC_MoveChild2,
/*388706*/              OPC_CheckImmAllZerosV,
/*388707*/              OPC_MoveParent,
/*388708*/              OPC_CheckType, MVT::v4f32,
/*388710*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*388712*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*388715*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 1, 2,  // Results = #3
/*388723*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSSZ128rkz), 0,
                            MVT::v4f32, 2/*#Ops*/, 0, 3, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VBroadcast:{ *:[v4f32] } FR32X:{ *:[f32] }:$src), immAllZerosV:{ *:[v4f32] }) - Complexity = 10
                        // Dst: (VBROADCASTSSZ128rkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src, VR128X:{ *:[i32] }))
/*388731*/            /*Scope*/ 29, /*->388761*/
/*388732*/              OPC_CheckChild0Type, MVT::f64,
/*388734*/              OPC_MoveParent,
/*388735*/              OPC_MoveChild2,
/*388736*/              OPC_CheckImmAllZerosV,
/*388737*/              OPC_MoveParent,
/*388738*/              OPC_CheckType, MVT::v4f64,
/*388740*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*388742*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*388745*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 2,  // Results = #3
/*388753*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSDZ256rkz), 0,
                            MVT::v4f64, 2/*#Ops*/, 0, 3, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VBroadcast:{ *:[v4f64] } FR64X:{ *:[f64] }:$src), immAllZerosV:{ *:[v4f64] }) - Complexity = 10
                        // Dst: (VBROADCASTSDZ256rkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src, VR128X:{ *:[i32] }))
/*388761*/            0, /*End of Scope*/
/*388762*/          /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::VPERMV3),// ->388802
/*388765*/            OPC_RecordChild0, // #1 = $src1
/*388766*/            OPC_RecordChild1, // #2 = $src2
/*388767*/            OPC_RecordChild2, // #3 = $src3
/*388768*/            OPC_MoveParent,
/*388769*/            OPC_MoveChild2,
/*388770*/            OPC_CheckImmAllZerosV,
/*388771*/            OPC_MoveParent,
/*388772*/            OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->388787
/*388775*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*388777*/              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), immAllZerosV:{ *:[v4f32] }) - Complexity = 10
                        // Dst: (VPERMT2PS128rrkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4f32] }:$src3)
/*388787*/            /*SwitchType*/ 12, MVT::v4f64,// ->388801
/*388789*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*388791*/              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), immAllZerosV:{ *:[v4f64] }) - Complexity = 10
                        // Dst: (VPERMT2PD256rrkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4f64] }:$src3)
/*388801*/            0, // EndSwitchType
/*388802*/          /*SwitchOpcode*/ 38, TARGET_VAL(ISD::STRICT_FADD),// ->388843
/*388805*/            OPC_RecordNode, // #1 = 'strict_fadd' chained node
/*388806*/            OPC_CheckFoldableChainNode,
/*388807*/            OPC_RecordChild1, // #2 = $src1
/*388808*/            OPC_RecordChild2, // #3 = $src2
/*388809*/            OPC_MoveParent,
/*388810*/            OPC_MoveChild2,
/*388811*/            OPC_CheckImmAllZerosV,
/*388812*/            OPC_MoveParent,
/*388813*/            OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->388828
/*388816*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*388818*/              OPC_EmitMergeInputChains1_1,
/*388819*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZ128rrkz), 0|OPFL_Chain,
                            MVT::v4f32, 3/*#Ops*/, 0, 2, 3, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (strict_fadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), immAllZerosV:{ *:[v4f32] }) - Complexity = 10
                        // Dst: (VADDPSZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*388828*/            /*SwitchType*/ 12, MVT::v4f64,// ->388842
/*388830*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*388832*/              OPC_EmitMergeInputChains1_1,
/*388833*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZ256rrkz), 0|OPFL_Chain,
                            MVT::v4f64, 3/*#Ops*/, 0, 2, 3, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (strict_fadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), immAllZerosV:{ *:[v4f64] }) - Complexity = 10
                        // Dst: (VADDPDZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2)
/*388842*/            0, // EndSwitchType
/*388843*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::FADD),// ->388880
/*388846*/            OPC_RecordChild0, // #1 = $src1
/*388847*/            OPC_RecordChild1, // #2 = $src2
/*388848*/            OPC_MoveParent,
/*388849*/            OPC_MoveChild2,
/*388850*/            OPC_CheckImmAllZerosV,
/*388851*/            OPC_MoveParent,
/*388852*/            OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->388866
/*388855*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*388857*/              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), immAllZerosV:{ *:[v4f32] }) - Complexity = 10
                        // Dst: (VADDPSZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*388866*/            /*SwitchType*/ 11, MVT::v4f64,// ->388879
/*388868*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*388870*/              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), immAllZerosV:{ *:[v4f64] }) - Complexity = 10
                        // Dst: (VADDPDZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2)
/*388879*/            0, // EndSwitchType
/*388880*/          /*SwitchOpcode*/ 38, TARGET_VAL(ISD::STRICT_FMUL),// ->388921
/*388883*/            OPC_RecordNode, // #1 = 'strict_fmul' chained node
/*388884*/            OPC_CheckFoldableChainNode,
/*388885*/            OPC_RecordChild1, // #2 = $src1
/*388886*/            OPC_RecordChild2, // #3 = $src2
/*388887*/            OPC_MoveParent,
/*388888*/            OPC_MoveChild2,
/*388889*/            OPC_CheckImmAllZerosV,
/*388890*/            OPC_MoveParent,
/*388891*/            OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->388906
/*388894*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*388896*/              OPC_EmitMergeInputChains1_1,
/*388897*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZ128rrkz), 0|OPFL_Chain,
                            MVT::v4f32, 3/*#Ops*/, 0, 2, 3, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (strict_fmul:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), immAllZerosV:{ *:[v4f32] }) - Complexity = 10
                        // Dst: (VMULPSZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*388906*/            /*SwitchType*/ 12, MVT::v4f64,// ->388920
/*388908*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*388910*/              OPC_EmitMergeInputChains1_1,
/*388911*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZ256rrkz), 0|OPFL_Chain,
                            MVT::v4f64, 3/*#Ops*/, 0, 2, 3, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (strict_fmul:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), immAllZerosV:{ *:[v4f64] }) - Complexity = 10
                        // Dst: (VMULPDZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2)
/*388920*/            0, // EndSwitchType
/*388921*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::FMUL),// ->388958
/*388924*/            OPC_RecordChild0, // #1 = $src1
/*388925*/            OPC_RecordChild1, // #2 = $src2
/*388926*/            OPC_MoveParent,
/*388927*/            OPC_MoveChild2,
/*388928*/            OPC_CheckImmAllZerosV,
/*388929*/            OPC_MoveParent,
/*388930*/            OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->388944
/*388933*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*388935*/              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), immAllZerosV:{ *:[v4f32] }) - Complexity = 10
                        // Dst: (VMULPSZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*388944*/            /*SwitchType*/ 11, MVT::v4f64,// ->388957
/*388946*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*388948*/              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), immAllZerosV:{ *:[v4f64] }) - Complexity = 10
                        // Dst: (VMULPDZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2)
/*388957*/            0, // EndSwitchType
/*388958*/          /*SwitchOpcode*/ 38, TARGET_VAL(ISD::STRICT_FSUB),// ->388999
/*388961*/            OPC_RecordNode, // #1 = 'strict_fsub' chained node
/*388962*/            OPC_CheckFoldableChainNode,
/*388963*/            OPC_RecordChild1, // #2 = $src1
/*388964*/            OPC_RecordChild2, // #3 = $src2
/*388965*/            OPC_MoveParent,
/*388966*/            OPC_MoveChild2,
/*388967*/            OPC_CheckImmAllZerosV,
/*388968*/            OPC_MoveParent,
/*388969*/            OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->388984
/*388972*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*388974*/              OPC_EmitMergeInputChains1_1,
/*388975*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSZ128rrkz), 0|OPFL_Chain,
                            MVT::v4f32, 3/*#Ops*/, 0, 2, 3, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (strict_fsub:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), immAllZerosV:{ *:[v4f32] }) - Complexity = 10
                        // Dst: (VSUBPSZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*388984*/            /*SwitchType*/ 12, MVT::v4f64,// ->388998
/*388986*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*388988*/              OPC_EmitMergeInputChains1_1,
/*388989*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDZ256rrkz), 0|OPFL_Chain,
                            MVT::v4f64, 3/*#Ops*/, 0, 2, 3, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (strict_fsub:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), immAllZerosV:{ *:[v4f64] }) - Complexity = 10
                        // Dst: (VSUBPDZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2)
/*388998*/            0, // EndSwitchType
/*388999*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::FSUB),// ->389036
/*389002*/            OPC_RecordChild0, // #1 = $src1
/*389003*/            OPC_RecordChild1, // #2 = $src2
/*389004*/            OPC_MoveParent,
/*389005*/            OPC_MoveChild2,
/*389006*/            OPC_CheckImmAllZerosV,
/*389007*/            OPC_MoveParent,
/*389008*/            OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->389022
/*389011*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*389013*/              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), immAllZerosV:{ *:[v4f32] }) - Complexity = 10
                        // Dst: (VSUBPSZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*389022*/            /*SwitchType*/ 11, MVT::v4f64,// ->389035
/*389024*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*389026*/              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), immAllZerosV:{ *:[v4f64] }) - Complexity = 10
                        // Dst: (VSUBPDZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2)
/*389035*/            0, // EndSwitchType
/*389036*/          /*SwitchOpcode*/ 38, TARGET_VAL(ISD::STRICT_FDIV),// ->389077
/*389039*/            OPC_RecordNode, // #1 = 'strict_fdiv' chained node
/*389040*/            OPC_CheckFoldableChainNode,
/*389041*/            OPC_RecordChild1, // #2 = $src1
/*389042*/            OPC_RecordChild2, // #3 = $src2
/*389043*/            OPC_MoveParent,
/*389044*/            OPC_MoveChild2,
/*389045*/            OPC_CheckImmAllZerosV,
/*389046*/            OPC_MoveParent,
/*389047*/            OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->389062
/*389050*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*389052*/              OPC_EmitMergeInputChains1_1,
/*389053*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSZ128rrkz), 0|OPFL_Chain,
                            MVT::v4f32, 3/*#Ops*/, 0, 2, 3, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (strict_fdiv:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2), immAllZerosV:{ *:[v4f32] }) - Complexity = 10
                        // Dst: (VDIVPSZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*389062*/            /*SwitchType*/ 12, MVT::v4f64,// ->389076
/*389064*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*389066*/              OPC_EmitMergeInputChains1_1,
/*389067*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDZ256rrkz), 0|OPFL_Chain,
                            MVT::v4f64, 3/*#Ops*/, 0, 2, 3, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (strict_fdiv:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2), immAllZerosV:{ *:[v4f64] }) - Complexity = 10
                        // Dst: (VDIVPDZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2)
/*389076*/            0, // EndSwitchType
/*389077*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::FDIV),// ->389114
/*389080*/            OPC_RecordChild0, // #1 = $src1
/*389081*/            OPC_RecordChild1, // #2 = $src2
/*389082*/            OPC_MoveParent,
/*389083*/            OPC_MoveChild2,
/*389084*/            OPC_CheckImmAllZerosV,
/*389085*/            OPC_MoveParent,
/*389086*/            OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->389100
/*389089*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*389091*/              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), immAllZerosV:{ *:[v4f32] }) - Complexity = 10
                        // Dst: (VDIVPSZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*389100*/            /*SwitchType*/ 11, MVT::v4f64,// ->389113
/*389102*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*389104*/              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), immAllZerosV:{ *:[v4f64] }) - Complexity = 10
                        // Dst: (VDIVPDZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2)
/*389113*/            0, // EndSwitchType
/*389114*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::FMIN),// ->389151
/*389117*/            OPC_RecordChild0, // #1 = $src1
/*389118*/            OPC_RecordChild1, // #2 = $src2
/*389119*/            OPC_MoveParent,
/*389120*/            OPC_MoveChild2,
/*389121*/            OPC_CheckImmAllZerosV,
/*389122*/            OPC_MoveParent,
/*389123*/            OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->389137
/*389126*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*389128*/              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), immAllZerosV:{ *:[v4f32] }) - Complexity = 10
                        // Dst: (VMINPSZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*389137*/            /*SwitchType*/ 11, MVT::v4f64,// ->389150
/*389139*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*389141*/              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), immAllZerosV:{ *:[v4f64] }) - Complexity = 10
                        // Dst: (VMINPDZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2)
/*389150*/            0, // EndSwitchType
/*389151*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::FMAX),// ->389188
/*389154*/            OPC_RecordChild0, // #1 = $src1
/*389155*/            OPC_RecordChild1, // #2 = $src2
/*389156*/            OPC_MoveParent,
/*389157*/            OPC_MoveChild2,
/*389158*/            OPC_CheckImmAllZerosV,
/*389159*/            OPC_MoveParent,
/*389160*/            OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->389174
/*389163*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*389165*/              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), immAllZerosV:{ *:[v4f32] }) - Complexity = 10
                        // Dst: (VMAXPSZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*389174*/            /*SwitchType*/ 11, MVT::v4f64,// ->389187
/*389176*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*389178*/              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), immAllZerosV:{ *:[v4f64] }) - Complexity = 10
                        // Dst: (VMAXPDZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2)
/*389187*/            0, // EndSwitchType
/*389188*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::FMINC),// ->389225
/*389191*/            OPC_RecordChild0, // #1 = $src1
/*389192*/            OPC_RecordChild1, // #2 = $src2
/*389193*/            OPC_MoveParent,
/*389194*/            OPC_MoveChild2,
/*389195*/            OPC_CheckImmAllZerosV,
/*389196*/            OPC_MoveParent,
/*389197*/            OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->389211
/*389200*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*389202*/              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), immAllZerosV:{ *:[v4f32] }) - Complexity = 10
                        // Dst: (VMINCPSZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*389211*/            /*SwitchType*/ 11, MVT::v4f64,// ->389224
/*389213*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*389215*/              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), immAllZerosV:{ *:[v4f64] }) - Complexity = 10
                        // Dst: (VMINCPDZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2)
/*389224*/            0, // EndSwitchType
/*389225*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::FMAXC),// ->389262
/*389228*/            OPC_RecordChild0, // #1 = $src1
/*389229*/            OPC_RecordChild1, // #2 = $src2
/*389230*/            OPC_MoveParent,
/*389231*/            OPC_MoveChild2,
/*389232*/            OPC_CheckImmAllZerosV,
/*389233*/            OPC_MoveParent,
/*389234*/            OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->389248
/*389237*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*389239*/              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), immAllZerosV:{ *:[v4f32] }) - Complexity = 10
                        // Dst: (VMAXCPSZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*389248*/            /*SwitchType*/ 11, MVT::v4f64,// ->389261
/*389250*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*389252*/              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), immAllZerosV:{ *:[v4f64] }) - Complexity = 10
                        // Dst: (VMAXCPDZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2)
/*389261*/            0, // EndSwitchType
/*389262*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::SCALEF),// ->389299
/*389265*/            OPC_RecordChild0, // #1 = $src1
/*389266*/            OPC_RecordChild1, // #2 = $src2
/*389267*/            OPC_MoveParent,
/*389268*/            OPC_MoveChild2,
/*389269*/            OPC_CheckImmAllZerosV,
/*389270*/            OPC_MoveParent,
/*389271*/            OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->389285
/*389274*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*389276*/              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), immAllZerosV:{ *:[v4f32] }) - Complexity = 10
                        // Dst: (VSCALEFPSZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*389285*/            /*SwitchType*/ 11, MVT::v4f64,// ->389298
/*389287*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*389289*/              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), immAllZerosV:{ *:[v4f64] }) - Complexity = 10
                        // Dst: (VSCALEFPDZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2)
/*389298*/            0, // EndSwitchType
/*389299*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::VPERMV),// ->389321
/*389302*/            OPC_RecordChild0, // #1 = $src1
/*389303*/            OPC_RecordChild1, // #2 = $src2
/*389304*/            OPC_MoveParent,
/*389305*/            OPC_MoveChild2,
/*389306*/            OPC_CheckImmAllZerosV,
/*389307*/            OPC_MoveParent,
/*389308*/            OPC_CheckType, MVT::v4f64,
/*389310*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*389312*/            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), immAllZerosV:{ *:[v4f64] }) - Complexity = 10
                      // Dst: (VPERMPDZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4f64] }:$src2)
/*389321*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VPERMILPV),// ->389358
/*389324*/            OPC_RecordChild0, // #1 = $src1
/*389325*/            OPC_RecordChild1, // #2 = $src2
/*389326*/            OPC_MoveParent,
/*389327*/            OPC_MoveChild2,
/*389328*/            OPC_CheckImmAllZerosV,
/*389329*/            OPC_MoveParent,
/*389330*/            OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->389344
/*389333*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*389335*/              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), immAllZerosV:{ *:[v4f32] }) - Complexity = 10
                        // Dst: (VPERMILPSZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*389344*/            /*SwitchType*/ 11, MVT::v4f64,// ->389357
/*389346*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*389348*/              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), immAllZerosV:{ *:[v4f64] }) - Complexity = 10
                        // Dst: (VPERMILPDZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*389357*/            0, // EndSwitchType
/*389358*/          /*SwitchOpcode*/ 41, TARGET_VAL(ISD::STRICT_FMA),// ->389402
/*389361*/            OPC_RecordNode, // #1 = 'X86strict_Fmadd' chained node
/*389362*/            OPC_CheckFoldableChainNode,
/*389363*/            OPC_RecordChild1, // #2 = $src2
/*389364*/            OPC_RecordChild2, // #3 = $src1
/*389365*/            OPC_RecordChild3, // #4 = $src3
/*389366*/            OPC_MoveParent,
/*389367*/            OPC_MoveChild2,
/*389368*/            OPC_CheckImmAllZerosV,
/*389369*/            OPC_MoveParent,
/*389370*/            OPC_SwitchType /*2 cases */, 13, MVT::v4f32,// ->389386
/*389373*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*389375*/              OPC_EmitMergeInputChains1_1,
/*389376*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZ128rkz), 0|OPFL_Chain,
                            MVT::v4f32, 4/*#Ops*/, 3, 0, 2, 4, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_Fmadd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src3), immAllZerosV:{ *:[v4f32] }) - Complexity = 10
                        // Dst: (VFMADD213PSZ128rkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src3)
/*389386*/            /*SwitchType*/ 13, MVT::v4f64,// ->389401
/*389388*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*389390*/              OPC_EmitMergeInputChains1_1,
/*389391*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZ256rkz), 0|OPFL_Chain,
                            MVT::v4f64, 4/*#Ops*/, 3, 0, 2, 4, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_Fmadd:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src3), immAllZerosV:{ *:[v4f64] }) - Complexity = 10
                        // Dst: (VFMADD213PDZ256rkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src3)
/*389401*/            0, // EndSwitchType
/*389402*/          /*SwitchOpcode*/ 37, TARGET_VAL(ISD::FMA),// ->389442
/*389405*/            OPC_RecordChild0, // #1 = $src2
/*389406*/            OPC_RecordChild1, // #2 = $src1
/*389407*/            OPC_RecordChild2, // #3 = $src3
/*389408*/            OPC_MoveParent,
/*389409*/            OPC_MoveChild2,
/*389410*/            OPC_CheckImmAllZerosV,
/*389411*/            OPC_MoveParent,
/*389412*/            OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->389427
/*389415*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*389417*/              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), immAllZerosV:{ *:[v4f32] }) - Complexity = 10
                        // Dst: (VFMADD213PSZ128rkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src3)
/*389427*/            /*SwitchType*/ 12, MVT::v4f64,// ->389441
/*389429*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*389431*/              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), immAllZerosV:{ *:[v4f64] }) - Complexity = 10
                        // Dst: (VFMADD213PDZ256rkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src3)
/*389441*/            0, // EndSwitchType
/*389442*/          /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::FMSUB),// ->389482
/*389445*/            OPC_RecordChild0, // #1 = $src2
/*389446*/            OPC_RecordChild1, // #2 = $src1
/*389447*/            OPC_RecordChild2, // #3 = $src3
/*389448*/            OPC_MoveParent,
/*389449*/            OPC_MoveChild2,
/*389450*/            OPC_CheckImmAllZerosV,
/*389451*/            OPC_MoveParent,
/*389452*/            OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->389467
/*389455*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*389457*/              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), immAllZerosV:{ *:[v4f32] }) - Complexity = 10
                        // Dst: (VFMSUB213PSZ128rkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src3)
/*389467*/            /*SwitchType*/ 12, MVT::v4f64,// ->389481
/*389469*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*389471*/              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), immAllZerosV:{ *:[v4f64] }) - Complexity = 10
                        // Dst: (VFMSUB213PDZ256rkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src3)
/*389481*/            0, // EndSwitchType
/*389482*/          /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::FMADDSUB),// ->389522
/*389485*/            OPC_RecordChild0, // #1 = $src2
/*389486*/            OPC_RecordChild1, // #2 = $src1
/*389487*/            OPC_RecordChild2, // #3 = $src3
/*389488*/            OPC_MoveParent,
/*389489*/            OPC_MoveChild2,
/*389490*/            OPC_CheckImmAllZerosV,
/*389491*/            OPC_MoveParent,
/*389492*/            OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->389507
/*389495*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*389497*/              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), immAllZerosV:{ *:[v4f32] }) - Complexity = 10
                        // Dst: (VFMADDSUB213PSZ128rkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src3)
/*389507*/            /*SwitchType*/ 12, MVT::v4f64,// ->389521
/*389509*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*389511*/              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), immAllZerosV:{ *:[v4f64] }) - Complexity = 10
                        // Dst: (VFMADDSUB213PDZ256rkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src3)
/*389521*/            0, // EndSwitchType
/*389522*/          /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::FMSUBADD),// ->389562
/*389525*/            OPC_RecordChild0, // #1 = $src2
/*389526*/            OPC_RecordChild1, // #2 = $src1
/*389527*/            OPC_RecordChild2, // #3 = $src3
/*389528*/            OPC_MoveParent,
/*389529*/            OPC_MoveChild2,
/*389530*/            OPC_CheckImmAllZerosV,
/*389531*/            OPC_MoveParent,
/*389532*/            OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->389547
/*389535*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*389537*/              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), immAllZerosV:{ *:[v4f32] }) - Complexity = 10
                        // Dst: (VFMSUBADD213PSZ128rkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src3)
/*389547*/            /*SwitchType*/ 12, MVT::v4f64,// ->389561
/*389549*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*389551*/              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), immAllZerosV:{ *:[v4f64] }) - Complexity = 10
                        // Dst: (VFMSUBADD213PDZ256rkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src3)
/*389561*/            0, // EndSwitchType
/*389562*/          /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::FNMADD),// ->389602
/*389565*/            OPC_RecordChild0, // #1 = $src2
/*389566*/            OPC_RecordChild1, // #2 = $src1
/*389567*/            OPC_RecordChild2, // #3 = $src3
/*389568*/            OPC_MoveParent,
/*389569*/            OPC_MoveChild2,
/*389570*/            OPC_CheckImmAllZerosV,
/*389571*/            OPC_MoveParent,
/*389572*/            OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->389587
/*389575*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*389577*/              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), immAllZerosV:{ *:[v4f32] }) - Complexity = 10
                        // Dst: (VFNMADD213PSZ128rkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src3)
/*389587*/            /*SwitchType*/ 12, MVT::v4f64,// ->389601
/*389589*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*389591*/              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), immAllZerosV:{ *:[v4f64] }) - Complexity = 10
                        // Dst: (VFNMADD213PDZ256rkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src3)
/*389601*/            0, // EndSwitchType
/*389602*/          /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::FNMSUB),// ->389642
/*389605*/            OPC_RecordChild0, // #1 = $src2
/*389606*/            OPC_RecordChild1, // #2 = $src1
/*389607*/            OPC_RecordChild2, // #3 = $src3
/*389608*/            OPC_MoveParent,
/*389609*/            OPC_MoveChild2,
/*389610*/            OPC_CheckImmAllZerosV,
/*389611*/            OPC_MoveParent,
/*389612*/            OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->389627
/*389615*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*389617*/              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), immAllZerosV:{ *:[v4f32] }) - Complexity = 10
                        // Dst: (VFNMSUB213PSZ128rkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4f32] }:$src3)
/*389627*/            /*SwitchType*/ 12, MVT::v4f64,// ->389641
/*389629*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*389631*/              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), immAllZerosV:{ *:[v4f64] }) - Complexity = 10
                        // Dst: (VFNMSUB213PDZ256rkz:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4f64] }:$src3)
/*389641*/            0, // EndSwitchType
/*389642*/          /*SwitchOpcode*/ 22, TARGET_VAL(X86ISD::STRICT_VFPROUND),// ->389667
/*389645*/            OPC_RecordNode, // #1 = 'X86strict_vfpround' chained node
/*389646*/            OPC_CheckFoldableChainNode,
/*389647*/            OPC_RecordChild1, // #2 = $src
/*389648*/            OPC_CheckChild1Type, MVT::v4f64,
/*389650*/            OPC_MoveParent,
/*389651*/            OPC_MoveChild2,
/*389652*/            OPC_CheckImmAllZerosV,
/*389653*/            OPC_MoveParent,
/*389654*/            OPC_CheckType, MVT::v4f32,
/*389656*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*389658*/            OPC_EmitMergeInputChains1_1,
/*389659*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZ256rrkz), 0|OPFL_Chain,
                          MVT::v4f32, 2/*#Ops*/, 0, 2, 
                      // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_vfpround:{ *:[v4f32] } VR256X:{ *:[v4f64] }:$src), immAllZerosV:{ *:[v4f32] }) - Complexity = 10
                      // Dst: (VCVTPD2PSZ256rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)
/*389667*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::VFPROUND),// ->389689
/*389670*/            OPC_RecordChild0, // #1 = $src
/*389671*/            OPC_CheckChild0Type, MVT::v4f64,
/*389673*/            OPC_MoveParent,
/*389674*/            OPC_MoveChild2,
/*389675*/            OPC_CheckImmAllZerosV,
/*389676*/            OPC_MoveParent,
/*389677*/            OPC_CheckType, MVT::v4f32,
/*389679*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*389681*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZ256rrkz), 0,
                          MVT::v4f32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86vfpround:{ *:[v4f32] } VR256X:{ *:[v4f64] }:$src), immAllZerosV:{ *:[v4f32] }) - Complexity = 10
                      // Dst: (VCVTPD2PSZ256rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)
/*389689*/          /*SwitchOpcode*/ 20, TARGET_VAL(ISD::STRICT_FP_EXTEND),// ->389712
/*389692*/            OPC_RecordNode, // #1 = 'strict_fpextend' chained node
/*389693*/            OPC_CheckFoldableChainNode,
/*389694*/            OPC_RecordChild1, // #2 = $src
/*389695*/            OPC_MoveParent,
/*389696*/            OPC_MoveChild2,
/*389697*/            OPC_CheckImmAllZerosV,
/*389698*/            OPC_MoveParent,
/*389699*/            OPC_CheckType, MVT::v4f64,
/*389701*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*389703*/            OPC_EmitMergeInputChains1_1,
/*389704*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PDZ256rrkz), 0|OPFL_Chain,
                          MVT::v4f64, 2/*#Ops*/, 0, 2, 
                      // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (strict_fpextend:{ *:[v4f64] } VR128X:{ *:[v4f32] }:$src), immAllZerosV:{ *:[v4f64] }) - Complexity = 10
                      // Dst: (VCVTPS2PDZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*389712*/          /*SwitchOpcode*/ 17, TARGET_VAL(ISD::FP_EXTEND),// ->389732
/*389715*/            OPC_RecordChild0, // #1 = $src
/*389716*/            OPC_MoveParent,
/*389717*/            OPC_MoveChild2,
/*389718*/            OPC_CheckImmAllZerosV,
/*389719*/            OPC_MoveParent,
/*389720*/            OPC_CheckType, MVT::v4f64,
/*389722*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*389724*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PDZ256rrkz), 0,
                          MVT::v4f64, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (fpextend:{ *:[v4f64] } VR128X:{ *:[v4f32] }:$src), immAllZerosV:{ *:[v4f64] }) - Complexity = 10
                      // Dst: (VCVTPS2PDZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*389732*/          /*SwitchOpcode*/ 75, TARGET_VAL(ISD::STRICT_SINT_TO_FP),// ->389810
/*389735*/            OPC_RecordNode, // #1 = 'strict_sint_to_fp' chained node
/*389736*/            OPC_CheckFoldableChainNode,
/*389737*/            OPC_RecordChild1, // #2 = $src
/*389738*/            OPC_Scope, 34, /*->389774*/ // 2 children in Scope
/*389740*/              OPC_CheckChild1Type, MVT::v4i32,
/*389742*/              OPC_MoveParent,
/*389743*/              OPC_MoveChild2,
/*389744*/              OPC_CheckImmAllZerosV,
/*389745*/              OPC_MoveParent,
/*389746*/              OPC_SwitchType /*2 cases */, 11, MVT::v4f64,// ->389760
/*389749*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*389751*/                OPC_EmitMergeInputChains1_1,
/*389752*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDZ256rrkz), 0|OPFL_Chain,
                              MVT::v4f64, 2/*#Ops*/, 0, 2, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (strict_sint_to_fp:{ *:[v4f64] } VR128X:{ *:[v4i32] }:$src), immAllZerosV:{ *:[v4f64] }) - Complexity = 10
                          // Dst: (VCVTDQ2PDZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*389760*/              /*SwitchType*/ 11, MVT::v4f32,// ->389773
/*389762*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*389764*/                OPC_EmitMergeInputChains1_1,
/*389765*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSZ128rrkz), 0|OPFL_Chain,
                              MVT::v4f32, 2/*#Ops*/, 0, 2, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (strict_sint_to_fp:{ *:[v4f32] } VR128X:{ *:[v4i32] }:$src), immAllZerosV:{ *:[v4f32] }) - Complexity = 10
                          // Dst: (VCVTDQ2PSZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*389773*/              0, // EndSwitchType
/*389774*/            /*Scope*/ 34, /*->389809*/
/*389775*/              OPC_CheckChild1Type, MVT::v4i64,
/*389777*/              OPC_MoveParent,
/*389778*/              OPC_MoveChild2,
/*389779*/              OPC_CheckImmAllZerosV,
/*389780*/              OPC_MoveParent,
/*389781*/              OPC_SwitchType /*2 cases */, 11, MVT::v4f64,// ->389795
/*389784*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*389786*/                OPC_EmitMergeInputChains1_1,
/*389787*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PDZ256rrkz), 0|OPFL_Chain,
                              MVT::v4f64, 2/*#Ops*/, 0, 2, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (strict_sint_to_fp:{ *:[v4f64] } VR256X:{ *:[v4i64] }:$src), immAllZerosV:{ *:[v4f64] }) - Complexity = 10
                          // Dst: (VCVTQQ2PDZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/*389795*/              /*SwitchType*/ 11, MVT::v4f32,// ->389808
/*389797*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*389799*/                OPC_EmitMergeInputChains1_1,
/*389800*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PSZ256rrkz), 0|OPFL_Chain,
                              MVT::v4f32, 2/*#Ops*/, 0, 2, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (strict_sint_to_fp:{ *:[v4f32] } VR256X:{ *:[v4i64] }:$src), immAllZerosV:{ *:[v4f32] }) - Complexity = 10
                          // Dst: (VCVTQQ2PSZ256rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/*389808*/              0, // EndSwitchType
/*389809*/            0, /*End of Scope*/
/*389810*/          /*SwitchOpcode*/ 69, TARGET_VAL(ISD::SINT_TO_FP),// ->389882
/*389813*/            OPC_RecordChild0, // #1 = $src
/*389814*/            OPC_Scope, 32, /*->389848*/ // 2 children in Scope
/*389816*/              OPC_CheckChild0Type, MVT::v4i32,
/*389818*/              OPC_MoveParent,
/*389819*/              OPC_MoveChild2,
/*389820*/              OPC_CheckImmAllZerosV,
/*389821*/              OPC_MoveParent,
/*389822*/              OPC_SwitchType /*2 cases */, 10, MVT::v4f64,// ->389835
/*389825*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*389827*/                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), immAllZerosV:{ *:[v4f64] }) - Complexity = 10
                          // Dst: (VCVTDQ2PDZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*389835*/              /*SwitchType*/ 10, MVT::v4f32,// ->389847
/*389837*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*389839*/                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), immAllZerosV:{ *:[v4f32] }) - Complexity = 10
                          // Dst: (VCVTDQ2PSZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*389847*/              0, // EndSwitchType
/*389848*/            /*Scope*/ 32, /*->389881*/
/*389849*/              OPC_CheckChild0Type, MVT::v4i64,
/*389851*/              OPC_MoveParent,
/*389852*/              OPC_MoveChild2,
/*389853*/              OPC_CheckImmAllZerosV,
/*389854*/              OPC_MoveParent,
/*389855*/              OPC_SwitchType /*2 cases */, 10, MVT::v4f64,// ->389868
/*389858*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*389860*/                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), immAllZerosV:{ *:[v4f64] }) - Complexity = 10
                          // Dst: (VCVTQQ2PDZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/*389868*/              /*SwitchType*/ 10, MVT::v4f32,// ->389880
/*389870*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*389872*/                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), immAllZerosV:{ *:[v4f32] }) - Complexity = 10
                          // Dst: (VCVTQQ2PSZ256rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/*389880*/              0, // EndSwitchType
/*389881*/            0, /*End of Scope*/
/*389882*/          /*SwitchOpcode*/ 75, TARGET_VAL(ISD::STRICT_UINT_TO_FP),// ->389960
/*389885*/            OPC_RecordNode, // #1 = 'strict_uint_to_fp' chained node
/*389886*/            OPC_CheckFoldableChainNode,
/*389887*/            OPC_RecordChild1, // #2 = $src
/*389888*/            OPC_Scope, 34, /*->389924*/ // 2 children in Scope
/*389890*/              OPC_CheckChild1Type, MVT::v4i32,
/*389892*/              OPC_MoveParent,
/*389893*/              OPC_MoveChild2,
/*389894*/              OPC_CheckImmAllZerosV,
/*389895*/              OPC_MoveParent,
/*389896*/              OPC_SwitchType /*2 cases */, 11, MVT::v4f64,// ->389910
/*389899*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*389901*/                OPC_EmitMergeInputChains1_1,
/*389902*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PDZ256rrkz), 0|OPFL_Chain,
                              MVT::v4f64, 2/*#Ops*/, 0, 2, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (strict_uint_to_fp:{ *:[v4f64] } VR128X:{ *:[v4i32] }:$src), immAllZerosV:{ *:[v4f64] }) - Complexity = 10
                          // Dst: (VCVTUDQ2PDZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*389910*/              /*SwitchType*/ 11, MVT::v4f32,// ->389923
/*389912*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*389914*/                OPC_EmitMergeInputChains1_1,
/*389915*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PSZ128rrkz), 0|OPFL_Chain,
                              MVT::v4f32, 2/*#Ops*/, 0, 2, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (strict_uint_to_fp:{ *:[v4f32] } VR128X:{ *:[v4i32] }:$src), immAllZerosV:{ *:[v4f32] }) - Complexity = 10
                          // Dst: (VCVTUDQ2PSZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*389923*/              0, // EndSwitchType
/*389924*/            /*Scope*/ 34, /*->389959*/
/*389925*/              OPC_CheckChild1Type, MVT::v4i64,
/*389927*/              OPC_MoveParent,
/*389928*/              OPC_MoveChild2,
/*389929*/              OPC_CheckImmAllZerosV,
/*389930*/              OPC_MoveParent,
/*389931*/              OPC_SwitchType /*2 cases */, 11, MVT::v4f64,// ->389945
/*389934*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*389936*/                OPC_EmitMergeInputChains1_1,
/*389937*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PDZ256rrkz), 0|OPFL_Chain,
                              MVT::v4f64, 2/*#Ops*/, 0, 2, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (strict_uint_to_fp:{ *:[v4f64] } VR256X:{ *:[v4i64] }:$src), immAllZerosV:{ *:[v4f64] }) - Complexity = 10
                          // Dst: (VCVTUQQ2PDZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/*389945*/              /*SwitchType*/ 11, MVT::v4f32,// ->389958
/*389947*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*389949*/                OPC_EmitMergeInputChains1_1,
/*389950*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PSZ256rrkz), 0|OPFL_Chain,
                              MVT::v4f32, 2/*#Ops*/, 0, 2, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (strict_uint_to_fp:{ *:[v4f32] } VR256X:{ *:[v4i64] }:$src), immAllZerosV:{ *:[v4f32] }) - Complexity = 10
                          // Dst: (VCVTUQQ2PSZ256rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/*389958*/              0, // EndSwitchType
/*389959*/            0, /*End of Scope*/
/*389960*/          /*SwitchOpcode*/ 69, TARGET_VAL(ISD::UINT_TO_FP),// ->390032
/*389963*/            OPC_RecordChild0, // #1 = $src
/*389964*/            OPC_Scope, 32, /*->389998*/ // 2 children in Scope
/*389966*/              OPC_CheckChild0Type, MVT::v4i32,
/*389968*/              OPC_MoveParent,
/*389969*/              OPC_MoveChild2,
/*389970*/              OPC_CheckImmAllZerosV,
/*389971*/              OPC_MoveParent,
/*389972*/              OPC_SwitchType /*2 cases */, 10, MVT::v4f64,// ->389985
/*389975*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*389977*/                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), immAllZerosV:{ *:[v4f64] }) - Complexity = 10
                          // Dst: (VCVTUDQ2PDZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*389985*/              /*SwitchType*/ 10, MVT::v4f32,// ->389997
/*389987*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*389989*/                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), immAllZerosV:{ *:[v4f32] }) - Complexity = 10
                          // Dst: (VCVTUDQ2PSZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*389997*/              0, // EndSwitchType
/*389998*/            /*Scope*/ 32, /*->390031*/
/*389999*/              OPC_CheckChild0Type, MVT::v4i64,
/*390001*/              OPC_MoveParent,
/*390002*/              OPC_MoveChild2,
/*390003*/              OPC_CheckImmAllZerosV,
/*390004*/              OPC_MoveParent,
/*390005*/              OPC_SwitchType /*2 cases */, 10, MVT::v4f64,// ->390018
/*390008*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*390010*/                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), immAllZerosV:{ *:[v4f64] }) - Complexity = 10
                          // Dst: (VCVTUQQ2PDZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/*390018*/              /*SwitchType*/ 10, MVT::v4f32,// ->390030
/*390020*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*390022*/                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), immAllZerosV:{ *:[v4f32] }) - Complexity = 10
                          // Dst: (VCVTUQQ2PSZ256rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/*390030*/              0, // EndSwitchType
/*390031*/            0, /*End of Scope*/
/*390032*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::CVTPH2PS),// ->390054
/*390035*/            OPC_RecordChild0, // #1 = $src
/*390036*/            OPC_CheckChild0Type, MVT::v8i16,
/*390038*/            OPC_MoveParent,
/*390039*/            OPC_MoveChild2,
/*390040*/            OPC_CheckImmAllZerosV,
/*390041*/            OPC_MoveParent,
/*390042*/            OPC_CheckType, MVT::v4f32,
/*390044*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*390046*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPH2PSZ128rrkz), 0,
                          MVT::v4f32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86cvtph2ps:{ *:[v4f32] } VR128X:{ *:[v8i16] }:$src), immAllZerosV:{ *:[v4f32] }) - Complexity = 10
                      // Dst: (VCVTPH2PSZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/*390054*/          /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::RSQRT14),// ->390088
/*390057*/            OPC_RecordChild0, // #1 = $src
/*390058*/            OPC_MoveParent,
/*390059*/            OPC_MoveChild2,
/*390060*/            OPC_CheckImmAllZerosV,
/*390061*/            OPC_MoveParent,
/*390062*/            OPC_SwitchType /*2 cases */, 10, MVT::v4f32,// ->390075
/*390065*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*390067*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14PSZ128rkz), 0,
                            MVT::v4f32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86rsqrt14:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src), immAllZerosV:{ *:[v4f32] }) - Complexity = 10
                        // Dst: (VRSQRT14PSZ128rkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*390075*/            /*SwitchType*/ 10, MVT::v4f64,// ->390087
/*390077*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*390079*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14PDZ256rkz), 0,
                            MVT::v4f64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86rsqrt14:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src), immAllZerosV:{ *:[v4f64] }) - Complexity = 10
                        // Dst: (VRSQRT14PDZ256rkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)
/*390087*/            0, // EndSwitchType
/*390088*/          /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::RCP14),// ->390122
/*390091*/            OPC_RecordChild0, // #1 = $src
/*390092*/            OPC_MoveParent,
/*390093*/            OPC_MoveChild2,
/*390094*/            OPC_CheckImmAllZerosV,
/*390095*/            OPC_MoveParent,
/*390096*/            OPC_SwitchType /*2 cases */, 10, MVT::v4f32,// ->390109
/*390099*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*390101*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14PSZ128rkz), 0,
                            MVT::v4f32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86rcp14:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src), immAllZerosV:{ *:[v4f32] }) - Complexity = 10
                        // Dst: (VRCP14PSZ128rkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*390109*/            /*SwitchType*/ 10, MVT::v4f64,// ->390121
/*390111*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*390113*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14PDZ256rkz), 0,
                            MVT::v4f64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86rcp14:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src), immAllZerosV:{ *:[v4f64] }) - Complexity = 10
                        // Dst: (VRCP14PDZ256rkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)
/*390121*/            0, // EndSwitchType
/*390122*/          /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::FGETEXP),// ->390156
/*390125*/            OPC_RecordChild0, // #1 = $src
/*390126*/            OPC_MoveParent,
/*390127*/            OPC_MoveChild2,
/*390128*/            OPC_CheckImmAllZerosV,
/*390129*/            OPC_MoveParent,
/*390130*/            OPC_SwitchType /*2 cases */, 10, MVT::v4f32,// ->390143
/*390133*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*390135*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPSZ128rkz), 0,
                            MVT::v4f32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86fgetexp:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src), immAllZerosV:{ *:[v4f32] }) - Complexity = 10
                        // Dst: (VGETEXPPSZ128rkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*390143*/            /*SwitchType*/ 10, MVT::v4f64,// ->390155
/*390145*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*390147*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPDZ256rkz), 0,
                            MVT::v4f64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86fgetexp:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src), immAllZerosV:{ *:[v4f64] }) - Complexity = 10
                        // Dst: (VGETEXPPDZ256rkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)
/*390155*/            0, // EndSwitchType
/*390156*/          /*SwitchOpcode*/ 35, TARGET_VAL(ISD::STRICT_FSQRT),// ->390194
/*390159*/            OPC_RecordNode, // #1 = 'strict_fsqrt' chained node
/*390160*/            OPC_CheckFoldableChainNode,
/*390161*/            OPC_RecordChild1, // #2 = $src
/*390162*/            OPC_MoveParent,
/*390163*/            OPC_MoveChild2,
/*390164*/            OPC_CheckImmAllZerosV,
/*390165*/            OPC_MoveParent,
/*390166*/            OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->390180
/*390169*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*390171*/              OPC_EmitMergeInputChains1_1,
/*390172*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSZ128rkz), 0|OPFL_Chain,
                            MVT::v4f32, 2/*#Ops*/, 0, 2, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (strict_fsqrt:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src), immAllZerosV:{ *:[v4f32] }) - Complexity = 10
                        // Dst: (VSQRTPSZ128rkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*390180*/            /*SwitchType*/ 11, MVT::v4f64,// ->390193
/*390182*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*390184*/              OPC_EmitMergeInputChains1_1,
/*390185*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDZ256rkz), 0|OPFL_Chain,
                            MVT::v4f64, 2/*#Ops*/, 0, 2, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (strict_fsqrt:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src), immAllZerosV:{ *:[v4f64] }) - Complexity = 10
                        // Dst: (VSQRTPDZ256rkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)
/*390193*/            0, // EndSwitchType
/*390194*/          /*SwitchOpcode*/ 31, TARGET_VAL(ISD::FSQRT),// ->390228
/*390197*/            OPC_RecordChild0, // #1 = $src
/*390198*/            OPC_MoveParent,
/*390199*/            OPC_MoveChild2,
/*390200*/            OPC_CheckImmAllZerosV,
/*390201*/            OPC_MoveParent,
/*390202*/            OPC_SwitchType /*2 cases */, 10, MVT::v4f32,// ->390215
/*390205*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*390207*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSZ128rkz), 0,
                            MVT::v4f32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (fsqrt:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src), immAllZerosV:{ *:[v4f32] }) - Complexity = 10
                        // Dst: (VSQRTPSZ128rkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*390215*/            /*SwitchType*/ 10, MVT::v4f64,// ->390227
/*390217*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*390219*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDZ256rkz), 0,
                            MVT::v4f64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (fsqrt:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src), immAllZerosV:{ *:[v4f64] }) - Complexity = 10
                        // Dst: (VSQRTPDZ256rkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)
/*390227*/            0, // EndSwitchType
/*390228*/          /*SwitchOpcode*/ 17, TARGET_VAL(X86ISD::MOVSHDUP),// ->390248
/*390231*/            OPC_RecordChild0, // #1 = $src1
/*390232*/            OPC_MoveParent,
/*390233*/            OPC_MoveChild2,
/*390234*/            OPC_CheckImmAllZerosV,
/*390235*/            OPC_MoveParent,
/*390236*/            OPC_CheckType, MVT::v4f32,
/*390238*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*390240*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSHDUPZ128rrkz), 0,
                          MVT::v4f32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Movshdup:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1), immAllZerosV:{ *:[v4f32] }) - Complexity = 10
                      // Dst: (VMOVSHDUPZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1)
/*390248*/          /*SwitchOpcode*/ 17, TARGET_VAL(X86ISD::MOVSLDUP),// ->390268
/*390251*/            OPC_RecordChild0, // #1 = $src1
/*390252*/            OPC_MoveParent,
/*390253*/            OPC_MoveChild2,
/*390254*/            OPC_CheckImmAllZerosV,
/*390255*/            OPC_MoveParent,
/*390256*/            OPC_CheckType, MVT::v4f32,
/*390258*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*390260*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSLDUPZ128rrkz), 0,
                          MVT::v4f32, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Movsldup:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1), immAllZerosV:{ *:[v4f32] }) - Complexity = 10
                      // Dst: (VMOVSLDUPZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1)
/*390268*/          /*SwitchOpcode*/ 17, TARGET_VAL(X86ISD::MOVDDUP),// ->390288
/*390271*/            OPC_RecordChild0, // #1 = $src1
/*390272*/            OPC_MoveParent,
/*390273*/            OPC_MoveChild2,
/*390274*/            OPC_CheckImmAllZerosV,
/*390275*/            OPC_MoveParent,
/*390276*/            OPC_CheckType, MVT::v4f64,
/*390278*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*390280*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDDUPZ256rrkz), 0,
                          MVT::v4f64, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Movddup:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1), immAllZerosV:{ *:[v4f64] }) - Complexity = 10
                      // Dst: (VMOVDDUPZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1)
/*390288*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::UNPCKH),// ->390325
/*390291*/            OPC_RecordChild0, // #1 = $src1
/*390292*/            OPC_RecordChild1, // #2 = $src2
/*390293*/            OPC_MoveParent,
/*390294*/            OPC_MoveChild2,
/*390295*/            OPC_CheckImmAllZerosV,
/*390296*/            OPC_MoveParent,
/*390297*/            OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->390311
/*390300*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*390302*/              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), immAllZerosV:{ *:[v4f32] }) - Complexity = 10
                        // Dst: (VUNPCKHPSZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*390311*/            /*SwitchType*/ 11, MVT::v4f64,// ->390324
/*390313*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*390315*/              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), immAllZerosV:{ *:[v4f64] }) - Complexity = 10
                        // Dst: (VUNPCKHPDZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2)
/*390324*/            0, // EndSwitchType
/*390325*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::UNPCKL),// ->390362
/*390328*/            OPC_RecordChild0, // #1 = $src1
/*390329*/            OPC_RecordChild1, // #2 = $src2
/*390330*/            OPC_MoveParent,
/*390331*/            OPC_MoveChild2,
/*390332*/            OPC_CheckImmAllZerosV,
/*390333*/            OPC_MoveParent,
/*390334*/            OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->390348
/*390337*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*390339*/              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), immAllZerosV:{ *:[v4f32] }) - Complexity = 10
                        // Dst: (VUNPCKLPSZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*390348*/            /*SwitchType*/ 11, MVT::v4f64,// ->390361
/*390350*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*390352*/              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), immAllZerosV:{ *:[v4f64] }) - Complexity = 10
                        // Dst: (VUNPCKLPDZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2)
/*390361*/            0, // EndSwitchType
/*390362*/          /*SwitchOpcode*/ 23, TARGET_VAL(X86ISD::DPBF16PS),// ->390388
/*390365*/            OPC_RecordChild0, // #1 = $src1
/*390366*/            OPC_RecordChild1, // #2 = $src2
/*390367*/            OPC_CheckChild1Type, MVT::v4i32,
/*390369*/            OPC_RecordChild2, // #3 = $src3
/*390370*/            OPC_MoveParent,
/*390371*/            OPC_MoveChild2,
/*390372*/            OPC_CheckImmAllZerosV,
/*390373*/            OPC_MoveParent,
/*390374*/            OPC_CheckType, MVT::v4f32,
/*390376*/            OPC_CheckPatternPredicate, 182, // (Subtarget->hasBF16()) && (Subtarget->hasVLX())
/*390378*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDPBF16PSZ128rkz), 0,
                          MVT::v4f32, 4/*#Ops*/, 1, 0, 2, 3, 
                      // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86dpbf16ps:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3), immAllZerosV:{ *:[v4f32] }) - Complexity = 10
                      // Dst: (VDPBF16PSZ128rkz:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3)
/*390388*/          0, // EndSwitchOpcode
/*390389*/        /*Scope*/ 34, /*->390424*/
/*390390*/          OPC_RecordChild1, // #1 = $src3
/*390391*/          OPC_MoveChild1,
/*390392*/          OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*390395*/          OPC_RecordChild0, // #2 = $src1
/*390396*/          OPC_RecordChild1, // #3 = $src2
/*390397*/          OPC_MoveChild2,
/*390398*/          OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*390401*/          OPC_CheckType, MVT::iPTR,
/*390403*/          OPC_MoveParent,
/*390404*/          OPC_MoveParent,
/*390405*/          OPC_RecordChild2, // #4 = $src0
/*390406*/          OPC_CheckType, MVT::v4f64,
/*390408*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*390410*/          OPC_EmitNodeXForm, 15, 1, // INSERT_get_vinsert128_imm
/*390413*/          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))
/*390424*/        /*Scope*/ 75|128,8/*1099*/, /*->391525*/
/*390426*/          OPC_MoveChild1,
/*390427*/          OPC_SwitchOpcode /*12 cases */, 41, TARGET_VAL(X86ISD::VPERMV3),// ->390472
/*390431*/            OPC_RecordChild0, // #1 = $src2
/*390432*/            OPC_RecordChild1, // #2 = $src1
/*390433*/            OPC_RecordChild2, // #3 = $src3
/*390434*/            OPC_MoveParent,
/*390435*/            OPC_MoveChild2,
/*390436*/            OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*390439*/            OPC_CheckChild0Same, 2,
/*390441*/            OPC_MoveParent,
/*390442*/            OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->390457
/*390445*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*390447*/              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)
/*390457*/            /*SwitchType*/ 12, MVT::v4f64,// ->390471
/*390459*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*390461*/              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)
/*390471*/            0, // EndSwitchType
/*390472*/          /*SwitchOpcode*/ 3|128,5/*643*/, TARGET_VAL(ISD::BITCAST),// ->391119
/*390476*/            OPC_MoveChild0,
/*390477*/            OPC_SwitchOpcode /*4 cases */, 28|128,1/*156*/, TARGET_VAL(ISD::AND),// ->390638
/*390482*/              OPC_RecordChild0, // #1 = $src1
/*390483*/              OPC_RecordChild1, // #2 = $src2
/*390484*/              OPC_SwitchType /*8 cases */, 17, MVT::v2i64,// ->390504
/*390487*/                OPC_MoveParent,
/*390488*/                OPC_MoveParent,
/*390489*/                OPC_RecordChild2, // #3 = $src0
/*390490*/                OPC_CheckType, MVT::v4f32,
/*390492*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*390494*/                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)
/*390504*/              /*SwitchType*/ 17, MVT::v4i32,// ->390523
/*390506*/                OPC_MoveParent,
/*390507*/                OPC_MoveParent,
/*390508*/                OPC_RecordChild2, // #3 = $src0
/*390509*/                OPC_CheckType, MVT::v4f32,
/*390511*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*390513*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ128rrk), 0,
                              MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (and:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 9
                          // Dst: (VPANDDZ128rrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*390523*/              /*SwitchType*/ 17, MVT::v8i16,// ->390542
/*390525*/                OPC_MoveParent,
/*390526*/                OPC_MoveParent,
/*390527*/                OPC_RecordChild2, // #3 = $src0
/*390528*/                OPC_CheckType, MVT::v4f32,
/*390530*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*390532*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ128rrk), 0,
                              MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (and:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 9
                          // Dst: (VPANDDZ128rrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*390542*/              /*SwitchType*/ 17, MVT::v16i8,// ->390561
/*390544*/                OPC_MoveParent,
/*390545*/                OPC_MoveParent,
/*390546*/                OPC_RecordChild2, // #3 = $src0
/*390547*/                OPC_CheckType, MVT::v4f32,
/*390549*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*390551*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDDZ128rrk), 0,
                              MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (and:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 9
                          // Dst: (VPANDDZ128rrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*390561*/              /*SwitchType*/ 17, MVT::v4i64,// ->390580
/*390563*/                OPC_MoveParent,
/*390564*/                OPC_MoveParent,
/*390565*/                OPC_RecordChild2, // #3 = $src0
/*390566*/                OPC_CheckType, MVT::v4f64,
/*390568*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*390570*/                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)
/*390580*/              /*SwitchType*/ 17, MVT::v8i32,// ->390599
/*390582*/                OPC_MoveParent,
/*390583*/                OPC_MoveParent,
/*390584*/                OPC_RecordChild2, // #3 = $src0
/*390585*/                OPC_CheckType, MVT::v4f64,
/*390587*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*390589*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ256rrk), 0,
                              MVT::v4f64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (and:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 9
                          // Dst: (VPANDQZ256rrk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*390599*/              /*SwitchType*/ 17, MVT::v16i16,// ->390618
/*390601*/                OPC_MoveParent,
/*390602*/                OPC_MoveParent,
/*390603*/                OPC_RecordChild2, // #3 = $src0
/*390604*/                OPC_CheckType, MVT::v4f64,
/*390606*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*390608*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ256rrk), 0,
                              MVT::v4f64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (and:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 9
                          // Dst: (VPANDQZ256rrk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*390618*/              /*SwitchType*/ 17, MVT::v32i8,// ->390637
/*390620*/                OPC_MoveParent,
/*390621*/                OPC_MoveParent,
/*390622*/                OPC_RecordChild2, // #3 = $src0
/*390623*/                OPC_CheckType, MVT::v4f64,
/*390625*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*390627*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ256rrk), 0,
                              MVT::v4f64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (and:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 9
                          // Dst: (VPANDQZ256rrk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*390637*/              0, // EndSwitchType
/*390638*/            /*SwitchOpcode*/ 28|128,1/*156*/, TARGET_VAL(ISD::OR),// ->390798
/*390642*/              OPC_RecordChild0, // #1 = $src1
/*390643*/              OPC_RecordChild1, // #2 = $src2
/*390644*/              OPC_SwitchType /*8 cases */, 17, MVT::v2i64,// ->390664
/*390647*/                OPC_MoveParent,
/*390648*/                OPC_MoveParent,
/*390649*/                OPC_RecordChild2, // #3 = $src0
/*390650*/                OPC_CheckType, MVT::v4f32,
/*390652*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*390654*/                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)
/*390664*/              /*SwitchType*/ 17, MVT::v4i32,// ->390683
/*390666*/                OPC_MoveParent,
/*390667*/                OPC_MoveParent,
/*390668*/                OPC_RecordChild2, // #3 = $src0
/*390669*/                OPC_CheckType, MVT::v4f32,
/*390671*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*390673*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ128rrk), 0,
                              MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (or:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 9
                          // Dst: (VPORDZ128rrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*390683*/              /*SwitchType*/ 17, MVT::v8i16,// ->390702
/*390685*/                OPC_MoveParent,
/*390686*/                OPC_MoveParent,
/*390687*/                OPC_RecordChild2, // #3 = $src0
/*390688*/                OPC_CheckType, MVT::v4f32,
/*390690*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*390692*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ128rrk), 0,
                              MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (or:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 9
                          // Dst: (VPORDZ128rrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*390702*/              /*SwitchType*/ 17, MVT::v16i8,// ->390721
/*390704*/                OPC_MoveParent,
/*390705*/                OPC_MoveParent,
/*390706*/                OPC_RecordChild2, // #3 = $src0
/*390707*/                OPC_CheckType, MVT::v4f32,
/*390709*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*390711*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPORDZ128rrk), 0,
                              MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (or:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 9
                          // Dst: (VPORDZ128rrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*390721*/              /*SwitchType*/ 17, MVT::v4i64,// ->390740
/*390723*/                OPC_MoveParent,
/*390724*/                OPC_MoveParent,
/*390725*/                OPC_RecordChild2, // #3 = $src0
/*390726*/                OPC_CheckType, MVT::v4f64,
/*390728*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*390730*/                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)
/*390740*/              /*SwitchType*/ 17, MVT::v8i32,// ->390759
/*390742*/                OPC_MoveParent,
/*390743*/                OPC_MoveParent,
/*390744*/                OPC_RecordChild2, // #3 = $src0
/*390745*/                OPC_CheckType, MVT::v4f64,
/*390747*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*390749*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ256rrk), 0,
                              MVT::v4f64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (or:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 9
                          // Dst: (VPORQZ256rrk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*390759*/              /*SwitchType*/ 17, MVT::v16i16,// ->390778
/*390761*/                OPC_MoveParent,
/*390762*/                OPC_MoveParent,
/*390763*/                OPC_RecordChild2, // #3 = $src0
/*390764*/                OPC_CheckType, MVT::v4f64,
/*390766*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*390768*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ256rrk), 0,
                              MVT::v4f64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (or:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 9
                          // Dst: (VPORQZ256rrk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*390778*/              /*SwitchType*/ 17, MVT::v32i8,// ->390797
/*390780*/                OPC_MoveParent,
/*390781*/                OPC_MoveParent,
/*390782*/                OPC_RecordChild2, // #3 = $src0
/*390783*/                OPC_CheckType, MVT::v4f64,
/*390785*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*390787*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ256rrk), 0,
                              MVT::v4f64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (or:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 9
                          // Dst: (VPORQZ256rrk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*390797*/              0, // EndSwitchType
/*390798*/            /*SwitchOpcode*/ 28|128,1/*156*/, TARGET_VAL(ISD::XOR),// ->390958
/*390802*/              OPC_RecordChild0, // #1 = $src1
/*390803*/              OPC_RecordChild1, // #2 = $src2
/*390804*/              OPC_SwitchType /*8 cases */, 17, MVT::v2i64,// ->390824
/*390807*/                OPC_MoveParent,
/*390808*/                OPC_MoveParent,
/*390809*/                OPC_RecordChild2, // #3 = $src0
/*390810*/                OPC_CheckType, MVT::v4f32,
/*390812*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*390814*/                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)
/*390824*/              /*SwitchType*/ 17, MVT::v4i32,// ->390843
/*390826*/                OPC_MoveParent,
/*390827*/                OPC_MoveParent,
/*390828*/                OPC_RecordChild2, // #3 = $src0
/*390829*/                OPC_CheckType, MVT::v4f32,
/*390831*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*390833*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ128rrk), 0,
                              MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (xor:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 9
                          // Dst: (VPXORDZ128rrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*390843*/              /*SwitchType*/ 17, MVT::v8i16,// ->390862
/*390845*/                OPC_MoveParent,
/*390846*/                OPC_MoveParent,
/*390847*/                OPC_RecordChild2, // #3 = $src0
/*390848*/                OPC_CheckType, MVT::v4f32,
/*390850*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*390852*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ128rrk), 0,
                              MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (xor:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 9
                          // Dst: (VPXORDZ128rrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*390862*/              /*SwitchType*/ 17, MVT::v16i8,// ->390881
/*390864*/                OPC_MoveParent,
/*390865*/                OPC_MoveParent,
/*390866*/                OPC_RecordChild2, // #3 = $src0
/*390867*/                OPC_CheckType, MVT::v4f32,
/*390869*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*390871*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORDZ128rrk), 0,
                              MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (xor:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 9
                          // Dst: (VPXORDZ128rrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*390881*/              /*SwitchType*/ 17, MVT::v4i64,// ->390900
/*390883*/                OPC_MoveParent,
/*390884*/                OPC_MoveParent,
/*390885*/                OPC_RecordChild2, // #3 = $src0
/*390886*/                OPC_CheckType, MVT::v4f64,
/*390888*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*390890*/                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)
/*390900*/              /*SwitchType*/ 17, MVT::v8i32,// ->390919
/*390902*/                OPC_MoveParent,
/*390903*/                OPC_MoveParent,
/*390904*/                OPC_RecordChild2, // #3 = $src0
/*390905*/                OPC_CheckType, MVT::v4f64,
/*390907*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*390909*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ256rrk), 0,
                              MVT::v4f64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (xor:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 9
                          // Dst: (VPXORQZ256rrk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*390919*/              /*SwitchType*/ 17, MVT::v16i16,// ->390938
/*390921*/                OPC_MoveParent,
/*390922*/                OPC_MoveParent,
/*390923*/                OPC_RecordChild2, // #3 = $src0
/*390924*/                OPC_CheckType, MVT::v4f64,
/*390926*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*390928*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ256rrk), 0,
                              MVT::v4f64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (xor:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 9
                          // Dst: (VPXORQZ256rrk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*390938*/              /*SwitchType*/ 17, MVT::v32i8,// ->390957
/*390940*/                OPC_MoveParent,
/*390941*/                OPC_MoveParent,
/*390942*/                OPC_RecordChild2, // #3 = $src0
/*390943*/                OPC_CheckType, MVT::v4f64,
/*390945*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*390947*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ256rrk), 0,
                              MVT::v4f64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (xor:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 9
                          // Dst: (VPXORQZ256rrk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*390957*/              0, // EndSwitchType
/*390958*/            /*SwitchOpcode*/ 28|128,1/*156*/, TARGET_VAL(X86ISD::ANDNP),// ->391118
/*390962*/              OPC_RecordChild0, // #1 = $src1
/*390963*/              OPC_RecordChild1, // #2 = $src2
/*390964*/              OPC_SwitchType /*8 cases */, 17, MVT::v2i64,// ->390984
/*390967*/                OPC_MoveParent,
/*390968*/                OPC_MoveParent,
/*390969*/                OPC_RecordChild2, // #3 = $src0
/*390970*/                OPC_CheckType, MVT::v4f32,
/*390972*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*390974*/                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)
/*390984*/              /*SwitchType*/ 17, MVT::v4i32,// ->391003
/*390986*/                OPC_MoveParent,
/*390987*/                OPC_MoveParent,
/*390988*/                OPC_RecordChild2, // #3 = $src0
/*390989*/                OPC_CheckType, MVT::v4f32,
/*390991*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*390993*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZ128rrk), 0,
                              MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (X86andnp:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 9
                          // Dst: (VPANDNDZ128rrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*391003*/              /*SwitchType*/ 17, MVT::v8i16,// ->391022
/*391005*/                OPC_MoveParent,
/*391006*/                OPC_MoveParent,
/*391007*/                OPC_RecordChild2, // #3 = $src0
/*391008*/                OPC_CheckType, MVT::v4f32,
/*391010*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*391012*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZ128rrk), 0,
                              MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (X86andnp:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 9
                          // Dst: (VPANDNDZ128rrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*391022*/              /*SwitchType*/ 17, MVT::v16i8,// ->391041
/*391024*/                OPC_MoveParent,
/*391025*/                OPC_MoveParent,
/*391026*/                OPC_RecordChild2, // #3 = $src0
/*391027*/                OPC_CheckType, MVT::v4f32,
/*391029*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*391031*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZ128rrk), 0,
                              MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f32] } (X86andnp:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)), VR128X:{ *:[v4f32] }:$src0) - Complexity = 9
                          // Dst: (VPANDNDZ128rrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*391041*/              /*SwitchType*/ 17, MVT::v4i64,// ->391060
/*391043*/                OPC_MoveParent,
/*391044*/                OPC_MoveParent,
/*391045*/                OPC_RecordChild2, // #3 = $src0
/*391046*/                OPC_CheckType, MVT::v4f64,
/*391048*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*391050*/                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)
/*391060*/              /*SwitchType*/ 17, MVT::v8i32,// ->391079
/*391062*/                OPC_MoveParent,
/*391063*/                OPC_MoveParent,
/*391064*/                OPC_RecordChild2, // #3 = $src0
/*391065*/                OPC_CheckType, MVT::v4f64,
/*391067*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*391069*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZ256rrk), 0,
                              MVT::v4f64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (X86andnp:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 9
                          // Dst: (VPANDNQZ256rrk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*391079*/              /*SwitchType*/ 17, MVT::v16i16,// ->391098
/*391081*/                OPC_MoveParent,
/*391082*/                OPC_MoveParent,
/*391083*/                OPC_RecordChild2, // #3 = $src0
/*391084*/                OPC_CheckType, MVT::v4f64,
/*391086*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*391088*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZ256rrk), 0,
                              MVT::v4f64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (X86andnp:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 9
                          // Dst: (VPANDNQZ256rrk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*391098*/              /*SwitchType*/ 17, MVT::v32i8,// ->391117
/*391100*/                OPC_MoveParent,
/*391101*/                OPC_MoveParent,
/*391102*/                OPC_RecordChild2, // #3 = $src0
/*391103*/                OPC_CheckType, MVT::v4f64,
/*391105*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*391107*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZ256rrk), 0,
                              MVT::v4f64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (bitconvert:{ *:[v4f64] } (X86andnp:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)), VR256X:{ *:[v4f64] }:$src0) - Complexity = 9
                          // Dst: (VPANDNQZ256rrk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*391117*/              0, // EndSwitchType
/*391118*/            0, // EndSwitchOpcode
/*391119*/          /*SwitchOpcode*/ 23, TARGET_VAL(X86ISD::VPERMI),// ->391145
/*391122*/            OPC_RecordChild0, // #1 = $src1
/*391123*/            OPC_RecordChild1, // #2 = $src2
/*391124*/            OPC_MoveChild1,
/*391125*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*391128*/            OPC_MoveParent,
/*391129*/            OPC_MoveParent,
/*391130*/            OPC_RecordChild2, // #3 = $src0
/*391131*/            OPC_CheckType, MVT::v4f64,
/*391133*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*391135*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPDZ256rik), 0,
                          MVT::v4f64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermi:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (timm:{ *:[i8] }):$src2), VR256X:{ *:[v4f64] }:$src0) - Complexity = 9
                      // Dst: (VPERMPDZ256rik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, (timm:{ *:[i8] }):$src2)
/*391145*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VPERMILPI),// ->391187
/*391148*/            OPC_RecordChild0, // #1 = $src1
/*391149*/            OPC_RecordChild1, // #2 = $src2
/*391150*/            OPC_MoveChild1,
/*391151*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*391154*/            OPC_MoveParent,
/*391155*/            OPC_MoveParent,
/*391156*/            OPC_RecordChild2, // #3 = $src0
/*391157*/            OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->391172
/*391160*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*391162*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZ128rik), 0,
                            MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermilpi:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (timm:{ *:[i8] }):$src2), VR128X:{ *:[v4f32] }:$src0) - Complexity = 9
                        // Dst: (VPERMILPSZ128rik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, (timm:{ *:[i8] }):$src2)
/*391172*/            /*SwitchType*/ 12, MVT::v4f64,// ->391186
/*391174*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*391176*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZ256rik), 0,
                            MVT::v4f64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VPermilpi:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (timm:{ *:[i8] }):$src2), VR256X:{ *:[v4f64] }:$src0) - Complexity = 9
                        // Dst: (VPERMILPDZ256rik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, (timm:{ *:[i8] }):$src2)
/*391186*/            0, // EndSwitchType
/*391187*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VREDUCE),// ->391229
/*391190*/            OPC_RecordChild0, // #1 = $src1
/*391191*/            OPC_RecordChild1, // #2 = $src2
/*391192*/            OPC_MoveChild1,
/*391193*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*391196*/            OPC_MoveParent,
/*391197*/            OPC_MoveParent,
/*391198*/            OPC_RecordChild2, // #3 = $src0
/*391199*/            OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->391214
/*391202*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*391204*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPSZ128rrik), 0,
                            MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VReduce:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (timm:{ *:[i32] }):$src2), VR128X:{ *:[v4f32] }:$src0) - Complexity = 9
                        // Dst: (VREDUCEPSZ128rrik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*391214*/            /*SwitchType*/ 12, MVT::v4f64,// ->391228
/*391216*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*391218*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPDZ256rrik), 0,
                            MVT::v4f64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VReduce:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (timm:{ *:[i32] }):$src2), VR256X:{ *:[v4f64] }:$src0) - Complexity = 9
                        // Dst: (VREDUCEPDZ256rrik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, (timm:{ *:[i32] }):$src2)
/*391228*/            0, // EndSwitchType
/*391229*/          /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::STRICT_VRNDSCALE),// ->391275
/*391232*/            OPC_RecordNode, // #1 = 'X86strict_VRndScale' chained node
/*391233*/            OPC_CheckFoldableChainNode,
/*391234*/            OPC_RecordChild1, // #2 = $src1
/*391235*/            OPC_RecordChild2, // #3 = $src2
/*391236*/            OPC_MoveChild2,
/*391237*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*391240*/            OPC_MoveParent,
/*391241*/            OPC_MoveParent,
/*391242*/            OPC_RecordChild2, // #4 = $src0
/*391243*/            OPC_SwitchType /*2 cases */, 13, MVT::v4f32,// ->391259
/*391246*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*391248*/              OPC_EmitMergeInputChains1_1,
/*391249*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rrik), 0|OPFL_Chain,
                            MVT::v4f32, 4/*#Ops*/, 4, 0, 2, 3, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_VRndScale:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (timm:{ *:[i32] }):$src2), VR128X:{ *:[v4f32] }:$src0) - Complexity = 9
                        // Dst: (VRNDSCALEPSZ128rrik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*391259*/            /*SwitchType*/ 13, MVT::v4f64,// ->391274
/*391261*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*391263*/              OPC_EmitMergeInputChains1_1,
/*391264*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rrik), 0|OPFL_Chain,
                            MVT::v4f64, 4/*#Ops*/, 4, 0, 2, 3, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_VRndScale:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (timm:{ *:[i32] }):$src2), VR256X:{ *:[v4f64] }:$src0) - Complexity = 9
                        // Dst: (VRNDSCALEPDZ256rrik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, (timm:{ *:[i32] }):$src2)
/*391274*/            0, // EndSwitchType
/*391275*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VRNDSCALE),// ->391317
/*391278*/            OPC_RecordChild0, // #1 = $src1
/*391279*/            OPC_RecordChild1, // #2 = $src2
/*391280*/            OPC_MoveChild1,
/*391281*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*391284*/            OPC_MoveParent,
/*391285*/            OPC_MoveParent,
/*391286*/            OPC_RecordChild2, // #3 = $src0
/*391287*/            OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->391302
/*391290*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*391292*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZ128rrik), 0,
                            MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VRndScale:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (timm:{ *:[i32] }):$src2), VR128X:{ *:[v4f32] }:$src0) - Complexity = 9
                        // Dst: (VRNDSCALEPSZ128rrik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*391302*/            /*SwitchType*/ 12, MVT::v4f64,// ->391316
/*391304*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*391306*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ256rrik), 0,
                            MVT::v4f64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VRndScale:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (timm:{ *:[i32] }):$src2), VR256X:{ *:[v4f64] }:$src0) - Complexity = 9
                        // Dst: (VRNDSCALEPDZ256rrik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, (timm:{ *:[i32] }):$src2)
/*391316*/            0, // EndSwitchType
/*391317*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VGETMANT),// ->391359
/*391320*/            OPC_RecordChild0, // #1 = $src1
/*391321*/            OPC_RecordChild1, // #2 = $src2
/*391322*/            OPC_MoveChild1,
/*391323*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*391326*/            OPC_MoveParent,
/*391327*/            OPC_MoveParent,
/*391328*/            OPC_RecordChild2, // #3 = $src0
/*391329*/            OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->391344
/*391332*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*391334*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPSZ128rrik), 0,
                            MVT::v4f32, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VGetMant:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (timm:{ *:[i32] }):$src2), VR128X:{ *:[v4f32] }:$src0) - Complexity = 9
                        // Dst: (VGETMANTPSZ128rrik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*391344*/            /*SwitchType*/ 12, MVT::v4f64,// ->391358
/*391346*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*391348*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPDZ256rrik), 0,
                            MVT::v4f64, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VGetMant:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (timm:{ *:[i32] }):$src2), VR256X:{ *:[v4f64] }:$src0) - Complexity = 9
                        // Dst: (VGETMANTPDZ256rrik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, (timm:{ *:[i32] }):$src2)
/*391358*/            0, // EndSwitchType
/*391359*/          /*SwitchOpcode*/ 42, TARGET_VAL(X86ISD::VRANGE),// ->391404
/*391362*/            OPC_RecordChild0, // #1 = $src1
/*391363*/            OPC_RecordChild1, // #2 = $src2
/*391364*/            OPC_RecordChild2, // #3 = $src3
/*391365*/            OPC_MoveChild2,
/*391366*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*391369*/            OPC_MoveParent,
/*391370*/            OPC_MoveParent,
/*391371*/            OPC_RecordChild2, // #4 = $src0
/*391372*/            OPC_SwitchType /*2 cases */, 13, MVT::v4f64,// ->391388
/*391375*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*391377*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPDZ256rrik), 0,
                            MVT::v4f64, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VRange:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (timm:{ *:[i32] }):$src3), VR256X:{ *:[v4f64] }:$src0) - Complexity = 9
                        // Dst: (VRANGEPDZ256rrik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (timm:{ *:[i32] }):$src3)
/*391388*/            /*SwitchType*/ 13, MVT::v4f32,// ->391403
/*391390*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*391392*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPSZ128rrik), 0,
                            MVT::v4f32, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VRange:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3), VR128X:{ *:[v4f32] }:$src0) - Complexity = 9
                        // Dst: (VRANGEPSZ128rrik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3)
/*391403*/            0, // EndSwitchType
/*391404*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::SHUF128),// ->391432
/*391407*/            OPC_RecordChild0, // #1 = $src1
/*391408*/            OPC_RecordChild1, // #2 = $src2
/*391409*/            OPC_RecordChild2, // #3 = $src3
/*391410*/            OPC_MoveChild2,
/*391411*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*391414*/            OPC_MoveParent,
/*391415*/            OPC_MoveParent,
/*391416*/            OPC_RecordChild2, // #4 = $src0
/*391417*/            OPC_CheckType, MVT::v4f64,
/*391419*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*391421*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF64X2Z256rrik), 0,
                          MVT::v4f64, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                      // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Shuf128:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (timm:{ *:[i8] }):$src3), VR256X:{ *:[v4f64] }:$src0) - Complexity = 9
                      // Dst: (VSHUFF64X2Z256rrik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (timm:{ *:[i8] }):$src3)
/*391432*/          /*SwitchOpcode*/ 42, TARGET_VAL(X86ISD::SHUFP),// ->391477
/*391435*/            OPC_RecordChild0, // #1 = $src1
/*391436*/            OPC_RecordChild1, // #2 = $src2
/*391437*/            OPC_RecordChild2, // #3 = $src3
/*391438*/            OPC_MoveChild2,
/*391439*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*391442*/            OPC_MoveParent,
/*391443*/            OPC_MoveParent,
/*391444*/            OPC_RecordChild2, // #4 = $src0
/*391445*/            OPC_SwitchType /*2 cases */, 13, MVT::v4f32,// ->391461
/*391448*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*391450*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPSZ128rrik), 0,
                            MVT::v4f32, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86Shufp:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i8] }):$src3), VR128X:{ *:[v4f32] }:$src0) - Complexity = 9
                        // Dst: (VSHUFPSZ128rrik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i8] }):$src3)
/*391461*/            /*SwitchType*/ 13, MVT::v4f64,// ->391476
/*391463*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*391465*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPDZ256rrik), 0,
                            MVT::v4f64, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86Shufp:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (timm:{ *:[i8] }):$src3), VR256X:{ *:[v4f64] }:$src0) - Complexity = 9
                        // Dst: (VSHUFPDZ256rrik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (timm:{ *:[i8] }):$src3)
/*391476*/            0, // EndSwitchType
/*391477*/          /*SwitchOpcode*/ 44, TARGET_VAL(X86ISD::VFIXUPIMM),// ->391524
/*391480*/            OPC_RecordChild0, // #1 = $src1
/*391481*/            OPC_RecordChild1, // #2 = $src2
/*391482*/            OPC_RecordChild2, // #3 = $src3
/*391483*/            OPC_RecordChild3, // #4 = $src4
/*391484*/            OPC_MoveChild3,
/*391485*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*391488*/            OPC_MoveParent,
/*391489*/            OPC_MoveParent,
/*391490*/            OPC_CheckChild2Same, 1,
/*391492*/            OPC_SwitchType /*2 cases */, 13, MVT::v4f32,// ->391508
/*391495*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*391497*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPSZ128rrik), 0,
                            MVT::v4f32, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86VFixupimm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4i32] }:$src3, (timm:{ *:[i32] }):$src4), VR128X:{ *:[v4f32] }:$src1) - Complexity = 9
                        // Dst: (VFIXUPIMMPSZ128rrik:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4i32] }:$src3, (timm:{ *:[i32] }):$src4)
/*391508*/            /*SwitchType*/ 13, MVT::v4f64,// ->391523
/*391510*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*391512*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPDZ256rrik), 0,
                            MVT::v4f64, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86VFixupimm:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4i64] }:$src3, (timm:{ *:[i32] }):$src4), VR256X:{ *:[v4f64] }:$src1) - Complexity = 9
                        // Dst: (VFIXUPIMMPDZ256rrik:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4i64] }:$src3, (timm:{ *:[i32] }):$src4)
/*391523*/            0, // EndSwitchType
/*391524*/          0, // EndSwitchOpcode
/*391525*/        /*Scope*/ 10|128,1/*138*/, /*->391665*/
/*391527*/          OPC_RecordChild1, // #1 = $src
/*391528*/          OPC_MoveChild2,
/*391529*/          OPC_CheckImmAllZerosV,
/*391530*/          OPC_MoveParent,
/*391531*/          OPC_SwitchType /*2 cases */, 64, MVT::v4f32,// ->391598
/*391534*/            OPC_Scope, 10, /*->391546*/ // 2 children in Scope
/*391536*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*391538*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPSZ128rrkz), 0,
                            MVT::v4f32, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src, immAllZerosV:{ *:[v4f32] }) - Complexity = 7
                        // Dst: (VMOVAPSZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*391546*/            /*Scope*/ 50, /*->391597*/
/*391547*/              OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*391549*/              OPC_EmitInteger, MVT::i32, X86::VK16WMRegClassID,
/*391552*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v16i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*391560*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v16f32, 0/*#Ops*/,  // Results = #4
/*391566*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*391569*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v16f32, 3/*#Ops*/, 4, 1, 5,  // Results = #6
/*391578*/              OPC_EmitNode1, TARGET_VAL(X86::VMOVAPSZrrkz), 0,
                            MVT::v16f32, 2/*#Ops*/, 3, 6,  // Results = #7
/*391586*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*391589*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::v4f32, 2/*#Ops*/, 7, 8, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, immAllZerosV:{ *:[v4f32] }) - Complexity = 7
                        // 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] })
/*391597*/            0, /*End of Scope*/
/*391598*/          /*SwitchType*/ 64, MVT::v4f64,// ->391664
/*391600*/            OPC_Scope, 10, /*->391612*/ // 2 children in Scope
/*391602*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*391604*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPDZ256rrkz), 0,
                            MVT::v4f64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src, immAllZerosV:{ *:[v4f64] }) - Complexity = 7
                        // Dst: (VMOVAPDZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)
/*391612*/            /*Scope*/ 50, /*->391663*/
/*391613*/              OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*391615*/              OPC_EmitInteger, MVT::i32, X86::VK8WMRegClassID,
/*391618*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v8i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*391626*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v8f64, 0/*#Ops*/,  // Results = #4
/*391632*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*391635*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v8f64, 3/*#Ops*/, 4, 1, 5,  // Results = #6
/*391644*/              OPC_EmitNode1, TARGET_VAL(X86::VMOVAPDZrrkz), 0,
                            MVT::v8f64, 2/*#Ops*/, 3, 6,  // Results = #7
/*391652*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*391655*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::v4f64, 2/*#Ops*/, 7, 8, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, immAllZerosV:{ *:[v4f64] }) - Complexity = 7
                        // 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] })
/*391663*/            0, /*End of Scope*/
/*391664*/          0, // EndSwitchType
/*391665*/        /*Scope*/ 22|128,17/*2198*/, /*->393865*/
/*391667*/          OPC_MoveChild1,
/*391668*/          OPC_SwitchOpcode /*44 cases */, 97, TARGET_VAL(X86ISD::VBROADCAST),// ->391769
/*391672*/            OPC_RecordChild0, // #1 = $src
/*391673*/            OPC_Scope, 17, /*->391692*/ // 4 children in Scope
/*391675*/              OPC_CheckChild0Type, MVT::v4f32,
/*391677*/              OPC_MoveParent,
/*391678*/              OPC_RecordChild2, // #2 = $src0
/*391679*/              OPC_CheckType, MVT::v4f32,
/*391681*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*391683*/              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)
/*391692*/            /*Scope*/ 17, /*->391710*/
/*391693*/              OPC_CheckChild0Type, MVT::v2f64,
/*391695*/              OPC_MoveParent,
/*391696*/              OPC_RecordChild2, // #2 = $src0
/*391697*/              OPC_CheckType, MVT::v4f64,
/*391699*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*391701*/              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)
/*391710*/            /*Scope*/ 28, /*->391739*/
/*391711*/              OPC_CheckChild0Type, MVT::f32,
/*391713*/              OPC_MoveParent,
/*391714*/              OPC_RecordChild2, // #2 = $src0
/*391715*/              OPC_CheckType, MVT::v4f32,
/*391717*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*391719*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*391722*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 1, 3,  // Results = #4
/*391730*/              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] }))
/*391739*/            /*Scope*/ 28, /*->391768*/
/*391740*/              OPC_CheckChild0Type, MVT::f64,
/*391742*/              OPC_MoveParent,
/*391743*/              OPC_RecordChild2, // #2 = $src0
/*391744*/              OPC_CheckType, MVT::v4f64,
/*391746*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*391748*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*391751*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 3,  // Results = #4
/*391759*/              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] }))
/*391768*/            0, /*End of Scope*/
/*391769*/          /*SwitchOpcode*/ 36, TARGET_VAL(X86ISD::VPERMV3),// ->391808
/*391772*/            OPC_RecordChild0, // #1 = $src1
/*391773*/            OPC_RecordChild1, // #2 = $src2
/*391774*/            OPC_RecordChild2, // #3 = $src3
/*391775*/            OPC_MoveParent,
/*391776*/            OPC_CheckChild2Same, 1,
/*391778*/            OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->391793
/*391781*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*391783*/              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)
/*391793*/            /*SwitchType*/ 12, MVT::v4f64,// ->391807
/*391795*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*391797*/              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)
/*391807*/            0, // EndSwitchType
/*391808*/          /*SwitchOpcode*/ 38, TARGET_VAL(ISD::STRICT_FADD),// ->391849
/*391811*/            OPC_RecordNode, // #1 = 'strict_fadd' chained node
/*391812*/            OPC_CheckFoldableChainNode,
/*391813*/            OPC_RecordChild1, // #2 = $src1
/*391814*/            OPC_RecordChild2, // #3 = $src2
/*391815*/            OPC_MoveParent,
/*391816*/            OPC_RecordChild2, // #4 = $src0
/*391817*/            OPC_SwitchType /*2 cases */, 13, MVT::v4f32,// ->391833
/*391820*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*391822*/              OPC_EmitMergeInputChains1_1,
/*391823*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZ128rrk), 0|OPFL_Chain,
                            MVT::v4f32, 4/*#Ops*/, 4, 0, 2, 3, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (strict_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)
/*391833*/            /*SwitchType*/ 13, MVT::v4f64,// ->391848
/*391835*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*391837*/              OPC_EmitMergeInputChains1_1,
/*391838*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZ256rrk), 0|OPFL_Chain,
                            MVT::v4f64, 4/*#Ops*/, 4, 0, 2, 3, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (strict_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)
/*391848*/            0, // EndSwitchType
/*391849*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::FADD),// ->391886
/*391852*/            OPC_RecordChild0, // #1 = $src1
/*391853*/            OPC_RecordChild1, // #2 = $src2
/*391854*/            OPC_MoveParent,
/*391855*/            OPC_RecordChild2, // #3 = $src0
/*391856*/            OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->391871
/*391859*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*391861*/              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)
/*391871*/            /*SwitchType*/ 12, MVT::v4f64,// ->391885
/*391873*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*391875*/              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)
/*391885*/            0, // EndSwitchType
/*391886*/          /*SwitchOpcode*/ 38, TARGET_VAL(ISD::STRICT_FMUL),// ->391927
/*391889*/            OPC_RecordNode, // #1 = 'strict_fmul' chained node
/*391890*/            OPC_CheckFoldableChainNode,
/*391891*/            OPC_RecordChild1, // #2 = $src1
/*391892*/            OPC_RecordChild2, // #3 = $src2
/*391893*/            OPC_MoveParent,
/*391894*/            OPC_RecordChild2, // #4 = $src0
/*391895*/            OPC_SwitchType /*2 cases */, 13, MVT::v4f32,// ->391911
/*391898*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*391900*/              OPC_EmitMergeInputChains1_1,
/*391901*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZ128rrk), 0|OPFL_Chain,
                            MVT::v4f32, 4/*#Ops*/, 4, 0, 2, 3, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (strict_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)
/*391911*/            /*SwitchType*/ 13, MVT::v4f64,// ->391926
/*391913*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*391915*/              OPC_EmitMergeInputChains1_1,
/*391916*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZ256rrk), 0|OPFL_Chain,
                            MVT::v4f64, 4/*#Ops*/, 4, 0, 2, 3, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (strict_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)
/*391926*/            0, // EndSwitchType
/*391927*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::FMUL),// ->391964
/*391930*/            OPC_RecordChild0, // #1 = $src1
/*391931*/            OPC_RecordChild1, // #2 = $src2
/*391932*/            OPC_MoveParent,
/*391933*/            OPC_RecordChild2, // #3 = $src0
/*391934*/            OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->391949
/*391937*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*391939*/              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)
/*391949*/            /*SwitchType*/ 12, MVT::v4f64,// ->391963
/*391951*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*391953*/              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)
/*391963*/            0, // EndSwitchType
/*391964*/          /*SwitchOpcode*/ 38, TARGET_VAL(ISD::STRICT_FSUB),// ->392005
/*391967*/            OPC_RecordNode, // #1 = 'strict_fsub' chained node
/*391968*/            OPC_CheckFoldableChainNode,
/*391969*/            OPC_RecordChild1, // #2 = $src1
/*391970*/            OPC_RecordChild2, // #3 = $src2
/*391971*/            OPC_MoveParent,
/*391972*/            OPC_RecordChild2, // #4 = $src0
/*391973*/            OPC_SwitchType /*2 cases */, 13, MVT::v4f32,// ->391989
/*391976*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*391978*/              OPC_EmitMergeInputChains1_1,
/*391979*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSZ128rrk), 0|OPFL_Chain,
                            MVT::v4f32, 4/*#Ops*/, 4, 0, 2, 3, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (strict_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)
/*391989*/            /*SwitchType*/ 13, MVT::v4f64,// ->392004
/*391991*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*391993*/              OPC_EmitMergeInputChains1_1,
/*391994*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDZ256rrk), 0|OPFL_Chain,
                            MVT::v4f64, 4/*#Ops*/, 4, 0, 2, 3, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (strict_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)
/*392004*/            0, // EndSwitchType
/*392005*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::FSUB),// ->392042
/*392008*/            OPC_RecordChild0, // #1 = $src1
/*392009*/            OPC_RecordChild1, // #2 = $src2
/*392010*/            OPC_MoveParent,
/*392011*/            OPC_RecordChild2, // #3 = $src0
/*392012*/            OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->392027
/*392015*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*392017*/              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)
/*392027*/            /*SwitchType*/ 12, MVT::v4f64,// ->392041
/*392029*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*392031*/              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)
/*392041*/            0, // EndSwitchType
/*392042*/          /*SwitchOpcode*/ 38, TARGET_VAL(ISD::STRICT_FDIV),// ->392083
/*392045*/            OPC_RecordNode, // #1 = 'strict_fdiv' chained node
/*392046*/            OPC_CheckFoldableChainNode,
/*392047*/            OPC_RecordChild1, // #2 = $src1
/*392048*/            OPC_RecordChild2, // #3 = $src2
/*392049*/            OPC_MoveParent,
/*392050*/            OPC_RecordChild2, // #4 = $src0
/*392051*/            OPC_SwitchType /*2 cases */, 13, MVT::v4f32,// ->392067
/*392054*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*392056*/              OPC_EmitMergeInputChains1_1,
/*392057*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSZ128rrk), 0|OPFL_Chain,
                            MVT::v4f32, 4/*#Ops*/, 4, 0, 2, 3, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (strict_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)
/*392067*/            /*SwitchType*/ 13, MVT::v4f64,// ->392082
/*392069*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*392071*/              OPC_EmitMergeInputChains1_1,
/*392072*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDZ256rrk), 0|OPFL_Chain,
                            MVT::v4f64, 4/*#Ops*/, 4, 0, 2, 3, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (strict_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)
/*392082*/            0, // EndSwitchType
/*392083*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::FDIV),// ->392120
/*392086*/            OPC_RecordChild0, // #1 = $src1
/*392087*/            OPC_RecordChild1, // #2 = $src2
/*392088*/            OPC_MoveParent,
/*392089*/            OPC_RecordChild2, // #3 = $src0
/*392090*/            OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->392105
/*392093*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*392095*/              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)
/*392105*/            /*SwitchType*/ 12, MVT::v4f64,// ->392119
/*392107*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*392109*/              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)
/*392119*/            0, // EndSwitchType
/*392120*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::FMIN),// ->392157
/*392123*/            OPC_RecordChild0, // #1 = $src1
/*392124*/            OPC_RecordChild1, // #2 = $src2
/*392125*/            OPC_MoveParent,
/*392126*/            OPC_RecordChild2, // #3 = $src0
/*392127*/            OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->392142
/*392130*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*392132*/              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)
/*392142*/            /*SwitchType*/ 12, MVT::v4f64,// ->392156
/*392144*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*392146*/              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)
/*392156*/            0, // EndSwitchType
/*392157*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::FMAX),// ->392194
/*392160*/            OPC_RecordChild0, // #1 = $src1
/*392161*/            OPC_RecordChild1, // #2 = $src2
/*392162*/            OPC_MoveParent,
/*392163*/            OPC_RecordChild2, // #3 = $src0
/*392164*/            OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->392179
/*392167*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*392169*/              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)
/*392179*/            /*SwitchType*/ 12, MVT::v4f64,// ->392193
/*392181*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*392183*/              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)
/*392193*/            0, // EndSwitchType
/*392194*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::FMINC),// ->392231
/*392197*/            OPC_RecordChild0, // #1 = $src1
/*392198*/            OPC_RecordChild1, // #2 = $src2
/*392199*/            OPC_MoveParent,
/*392200*/            OPC_RecordChild2, // #3 = $src0
/*392201*/            OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->392216
/*392204*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*392206*/              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)
/*392216*/            /*SwitchType*/ 12, MVT::v4f64,// ->392230
/*392218*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*392220*/              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)
/*392230*/            0, // EndSwitchType
/*392231*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::FMAXC),// ->392268
/*392234*/            OPC_RecordChild0, // #1 = $src1
/*392235*/            OPC_RecordChild1, // #2 = $src2
/*392236*/            OPC_MoveParent,
/*392237*/            OPC_RecordChild2, // #3 = $src0
/*392238*/            OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->392253
/*392241*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*392243*/              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)
/*392253*/            /*SwitchType*/ 12, MVT::v4f64,// ->392267
/*392255*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*392257*/              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)
/*392267*/            0, // EndSwitchType
/*392268*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::SCALEF),// ->392305
/*392271*/            OPC_RecordChild0, // #1 = $src1
/*392272*/            OPC_RecordChild1, // #2 = $src2
/*392273*/            OPC_MoveParent,
/*392274*/            OPC_RecordChild2, // #3 = $src0
/*392275*/            OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->392290
/*392278*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*392280*/              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), VR128X:{ *:[v4f32] }:$src0) - Complexity = 6
                        // Dst: (VSCALEFPSZ128rrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*392290*/            /*SwitchType*/ 12, MVT::v4f64,// ->392304
/*392292*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*392294*/              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), VR256X:{ *:[v4f64] }:$src0) - Complexity = 6
                        // Dst: (VSCALEFPDZ256rrk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2)
/*392304*/            0, // EndSwitchType
/*392305*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::VPERMV),// ->392326
/*392308*/            OPC_RecordChild0, // #1 = $src1
/*392309*/            OPC_RecordChild1, // #2 = $src2
/*392310*/            OPC_MoveParent,
/*392311*/            OPC_RecordChild2, // #3 = $src0
/*392312*/            OPC_CheckType, MVT::v4f64,
/*392314*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*392316*/            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)
/*392326*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VPERMILPV),// ->392363
/*392329*/            OPC_RecordChild0, // #1 = $src1
/*392330*/            OPC_RecordChild1, // #2 = $src2
/*392331*/            OPC_MoveParent,
/*392332*/            OPC_RecordChild2, // #3 = $src0
/*392333*/            OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->392348
/*392336*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*392338*/              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)
/*392348*/            /*SwitchType*/ 12, MVT::v4f64,// ->392362
/*392350*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*392352*/              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)
/*392362*/            0, // EndSwitchType
/*392363*/          /*SwitchOpcode*/ 113, TARGET_VAL(ISD::STRICT_FMA),// ->392479
/*392366*/            OPC_RecordNode, // #1 = 'X86strict_Fmadd' chained node
/*392367*/            OPC_CheckFoldableChainNode,
/*392368*/            OPC_RecordChild1, // #2 = $src2
/*392369*/            OPC_RecordChild2, // #3 = $src1
/*392370*/            OPC_RecordChild3, // #4 = $src3
/*392371*/            OPC_MoveParent,
/*392372*/            OPC_Scope, 34, /*->392408*/ // 3 children in Scope
/*392374*/              OPC_CheckChild2Same, 3,
/*392376*/              OPC_SwitchType /*2 cases */, 13, MVT::v4f32,// ->392392
/*392379*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*392381*/                OPC_EmitMergeInputChains1_1,
/*392382*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PSZ128rk), 0|OPFL_Chain,
                              MVT::v4f32, 4/*#Ops*/, 3, 0, 2, 4, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_Fmadd:{ *:[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)
/*392392*/              /*SwitchType*/ 13, MVT::v4f64,// ->392407
/*392394*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*392396*/                OPC_EmitMergeInputChains1_1,
/*392397*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZ256rk), 0|OPFL_Chain,
                              MVT::v4f64, 4/*#Ops*/, 3, 0, 2, 4, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_Fmadd:{ *:[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)
/*392407*/              0, // EndSwitchType
/*392408*/            /*Scope*/ 34, /*->392443*/
/*392409*/              OPC_CheckChild2Same, 4,
/*392411*/              OPC_SwitchType /*2 cases */, 13, MVT::v4f32,// ->392427
/*392414*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*392416*/                OPC_EmitMergeInputChains1_1,
/*392417*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PSZ128rk), 0|OPFL_Chain,
                              MVT::v4f32, 4/*#Ops*/, 4, 0, 2, 3, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_Fmadd:{ *:[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)
/*392427*/              /*SwitchType*/ 13, MVT::v4f64,// ->392442
/*392429*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*392431*/                OPC_EmitMergeInputChains1_1,
/*392432*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PDZ256rk), 0|OPFL_Chain,
                              MVT::v4f64, 4/*#Ops*/, 4, 0, 2, 3, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_Fmadd:{ *:[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)
/*392442*/              0, // EndSwitchType
/*392443*/            /*Scope*/ 34, /*->392478*/
/*392444*/              OPC_CheckChild2Same, 2,
/*392446*/              OPC_SwitchType /*2 cases */, 13, MVT::v4f32,// ->392462
/*392449*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*392451*/                OPC_EmitMergeInputChains1_1,
/*392452*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PSZ128rk), 0|OPFL_Chain,
                              MVT::v4f32, 4/*#Ops*/, 2, 0, 4, 3, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_Fmadd:{ *:[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)
/*392462*/              /*SwitchType*/ 13, MVT::v4f64,// ->392477
/*392464*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*392466*/                OPC_EmitMergeInputChains1_1,
/*392467*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PDZ256rk), 0|OPFL_Chain,
                              MVT::v4f64, 4/*#Ops*/, 2, 0, 4, 3, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_Fmadd:{ *:[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)
/*392477*/              0, // EndSwitchType
/*392478*/            0, /*End of Scope*/
/*392479*/          /*SwitchOpcode*/ 105, TARGET_VAL(ISD::FMA),// ->392587
/*392482*/            OPC_RecordChild0, // #1 = $src2
/*392483*/            OPC_RecordChild1, // #2 = $src1
/*392484*/            OPC_RecordChild2, // #3 = $src3
/*392485*/            OPC_MoveParent,
/*392486*/            OPC_Scope, 32, /*->392520*/ // 3 children in Scope
/*392488*/              OPC_CheckChild2Same, 2,
/*392490*/              OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->392505
/*392493*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*392495*/                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)
/*392505*/              /*SwitchType*/ 12, MVT::v4f64,// ->392519
/*392507*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*392509*/                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)
/*392519*/              0, // EndSwitchType
/*392520*/            /*Scope*/ 32, /*->392553*/
/*392521*/              OPC_CheckChild2Same, 3,
/*392523*/              OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->392538
/*392526*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*392528*/                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)
/*392538*/              /*SwitchType*/ 12, MVT::v4f64,// ->392552
/*392540*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*392542*/                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)
/*392552*/              0, // EndSwitchType
/*392553*/            /*Scope*/ 32, /*->392586*/
/*392554*/              OPC_CheckChild2Same, 1,
/*392556*/              OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->392571
/*392559*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*392561*/                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)
/*392571*/              /*SwitchType*/ 12, MVT::v4f64,// ->392585
/*392573*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*392575*/                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)
/*392585*/              0, // EndSwitchType
/*392586*/            0, /*End of Scope*/
/*392587*/          /*SwitchOpcode*/ 105, TARGET_VAL(X86ISD::FMSUB),// ->392695
/*392590*/            OPC_RecordChild0, // #1 = $src2
/*392591*/            OPC_RecordChild1, // #2 = $src1
/*392592*/            OPC_RecordChild2, // #3 = $src3
/*392593*/            OPC_MoveParent,
/*392594*/            OPC_Scope, 32, /*->392628*/ // 3 children in Scope
/*392596*/              OPC_CheckChild2Same, 2,
/*392598*/              OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->392613
/*392601*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*392603*/                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)
/*392613*/              /*SwitchType*/ 12, MVT::v4f64,// ->392627
/*392615*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*392617*/                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)
/*392627*/              0, // EndSwitchType
/*392628*/            /*Scope*/ 32, /*->392661*/
/*392629*/              OPC_CheckChild2Same, 3,
/*392631*/              OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->392646
/*392634*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*392636*/                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)
/*392646*/              /*SwitchType*/ 12, MVT::v4f64,// ->392660
/*392648*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*392650*/                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)
/*392660*/              0, // EndSwitchType
/*392661*/            /*Scope*/ 32, /*->392694*/
/*392662*/              OPC_CheckChild2Same, 1,
/*392664*/              OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->392679
/*392667*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*392669*/                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)
/*392679*/              /*SwitchType*/ 12, MVT::v4f64,// ->392693
/*392681*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*392683*/                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)
/*392693*/              0, // EndSwitchType
/*392694*/            0, /*End of Scope*/
/*392695*/          /*SwitchOpcode*/ 105, TARGET_VAL(X86ISD::FMADDSUB),// ->392803
/*392698*/            OPC_RecordChild0, // #1 = $src2
/*392699*/            OPC_RecordChild1, // #2 = $src1
/*392700*/            OPC_RecordChild2, // #3 = $src3
/*392701*/            OPC_MoveParent,
/*392702*/            OPC_Scope, 32, /*->392736*/ // 3 children in Scope
/*392704*/              OPC_CheckChild2Same, 2,
/*392706*/              OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->392721
/*392709*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*392711*/                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)
/*392721*/              /*SwitchType*/ 12, MVT::v4f64,// ->392735
/*392723*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*392725*/                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)
/*392735*/              0, // EndSwitchType
/*392736*/            /*Scope*/ 32, /*->392769*/
/*392737*/              OPC_CheckChild2Same, 3,
/*392739*/              OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->392754
/*392742*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*392744*/                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)
/*392754*/              /*SwitchType*/ 12, MVT::v4f64,// ->392768
/*392756*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*392758*/                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)
/*392768*/              0, // EndSwitchType
/*392769*/            /*Scope*/ 32, /*->392802*/
/*392770*/              OPC_CheckChild2Same, 1,
/*392772*/              OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->392787
/*392775*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*392777*/                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)
/*392787*/              /*SwitchType*/ 12, MVT::v4f64,// ->392801
/*392789*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*392791*/                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)
/*392801*/              0, // EndSwitchType
/*392802*/            0, /*End of Scope*/
/*392803*/          /*SwitchOpcode*/ 105, TARGET_VAL(X86ISD::FMSUBADD),// ->392911
/*392806*/            OPC_RecordChild0, // #1 = $src2
/*392807*/            OPC_RecordChild1, // #2 = $src1
/*392808*/            OPC_RecordChild2, // #3 = $src3
/*392809*/            OPC_MoveParent,
/*392810*/            OPC_Scope, 32, /*->392844*/ // 3 children in Scope
/*392812*/              OPC_CheckChild2Same, 2,
/*392814*/              OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->392829
/*392817*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*392819*/                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)
/*392829*/              /*SwitchType*/ 12, MVT::v4f64,// ->392843
/*392831*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*392833*/                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)
/*392843*/              0, // EndSwitchType
/*392844*/            /*Scope*/ 32, /*->392877*/
/*392845*/              OPC_CheckChild2Same, 3,
/*392847*/              OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->392862
/*392850*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*392852*/                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)
/*392862*/              /*SwitchType*/ 12, MVT::v4f64,// ->392876
/*392864*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*392866*/                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)
/*392876*/              0, // EndSwitchType
/*392877*/            /*Scope*/ 32, /*->392910*/
/*392878*/              OPC_CheckChild2Same, 1,
/*392880*/              OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->392895
/*392883*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*392885*/                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)
/*392895*/              /*SwitchType*/ 12, MVT::v4f64,// ->392909
/*392897*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*392899*/                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)
/*392909*/              0, // EndSwitchType
/*392910*/            0, /*End of Scope*/
/*392911*/          /*SwitchOpcode*/ 105, TARGET_VAL(X86ISD::FNMADD),// ->393019
/*392914*/            OPC_RecordChild0, // #1 = $src2
/*392915*/            OPC_RecordChild1, // #2 = $src1
/*392916*/            OPC_RecordChild2, // #3 = $src3
/*392917*/            OPC_MoveParent,
/*392918*/            OPC_Scope, 32, /*->392952*/ // 3 children in Scope
/*392920*/              OPC_CheckChild2Same, 2,
/*392922*/              OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->392937
/*392925*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*392927*/                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)
/*392937*/              /*SwitchType*/ 12, MVT::v4f64,// ->392951
/*392939*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*392941*/                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)
/*392951*/              0, // EndSwitchType
/*392952*/            /*Scope*/ 32, /*->392985*/
/*392953*/              OPC_CheckChild2Same, 3,
/*392955*/              OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->392970
/*392958*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*392960*/                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)
/*392970*/              /*SwitchType*/ 12, MVT::v4f64,// ->392984
/*392972*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*392974*/                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)
/*392984*/              0, // EndSwitchType
/*392985*/            /*Scope*/ 32, /*->393018*/
/*392986*/              OPC_CheckChild2Same, 1,
/*392988*/              OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->393003
/*392991*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*392993*/                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)
/*393003*/              /*SwitchType*/ 12, MVT::v4f64,// ->393017
/*393005*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*393007*/                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)
/*393017*/              0, // EndSwitchType
/*393018*/            0, /*End of Scope*/
/*393019*/          /*SwitchOpcode*/ 105, TARGET_VAL(X86ISD::FNMSUB),// ->393127
/*393022*/            OPC_RecordChild0, // #1 = $src2
/*393023*/            OPC_RecordChild1, // #2 = $src1
/*393024*/            OPC_RecordChild2, // #3 = $src3
/*393025*/            OPC_MoveParent,
/*393026*/            OPC_Scope, 32, /*->393060*/ // 3 children in Scope
/*393028*/              OPC_CheckChild2Same, 2,
/*393030*/              OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->393045
/*393033*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*393035*/                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)
/*393045*/              /*SwitchType*/ 12, MVT::v4f64,// ->393059
/*393047*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*393049*/                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)
/*393059*/              0, // EndSwitchType
/*393060*/            /*Scope*/ 32, /*->393093*/
/*393061*/              OPC_CheckChild2Same, 3,
/*393063*/              OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->393078
/*393066*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*393068*/                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)
/*393078*/              /*SwitchType*/ 12, MVT::v4f64,// ->393092
/*393080*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*393082*/                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)
/*393092*/              0, // EndSwitchType
/*393093*/            /*Scope*/ 32, /*->393126*/
/*393094*/              OPC_CheckChild2Same, 1,
/*393096*/              OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->393111
/*393099*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*393101*/                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)
/*393111*/              /*SwitchType*/ 12, MVT::v4f64,// ->393125
/*393113*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*393115*/                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)
/*393125*/              0, // EndSwitchType
/*393126*/            0, /*End of Scope*/
/*393127*/          /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::STRICT_VFPROUND),// ->393151
/*393130*/            OPC_RecordNode, // #1 = 'X86strict_vfpround' chained node
/*393131*/            OPC_CheckFoldableChainNode,
/*393132*/            OPC_RecordChild1, // #2 = $src
/*393133*/            OPC_CheckChild1Type, MVT::v4f64,
/*393135*/            OPC_MoveParent,
/*393136*/            OPC_RecordChild2, // #3 = $src0
/*393137*/            OPC_CheckType, MVT::v4f32,
/*393139*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*393141*/            OPC_EmitMergeInputChains1_1,
/*393142*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZ256rrk), 0|OPFL_Chain,
                          MVT::v4f32, 3/*#Ops*/, 3, 0, 2, 
                      // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86strict_vfpround:{ *:[v4f32] } VR256X:{ *:[v4f64] }:$src), VR128X:{ *:[v4f32] }:$src0) - Complexity = 6
                      // Dst: (VCVTPD2PSZ256rrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)
/*393151*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::VFPROUND),// ->393172
/*393154*/            OPC_RecordChild0, // #1 = $src
/*393155*/            OPC_CheckChild0Type, MVT::v4f64,
/*393157*/            OPC_MoveParent,
/*393158*/            OPC_RecordChild2, // #2 = $src0
/*393159*/            OPC_CheckType, MVT::v4f32,
/*393161*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*393163*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZ256rrk), 0,
                          MVT::v4f32, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86vfpround:{ *:[v4f32] } VR256X:{ *:[v4f64] }:$src), VR128X:{ *:[v4f32] }:$src0) - Complexity = 6
                      // Dst: (VCVTPD2PSZ256rrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)
/*393172*/          /*SwitchOpcode*/ 19, TARGET_VAL(ISD::STRICT_FP_EXTEND),// ->393194
/*393175*/            OPC_RecordNode, // #1 = 'strict_fpextend' chained node
/*393176*/            OPC_CheckFoldableChainNode,
/*393177*/            OPC_RecordChild1, // #2 = $src
/*393178*/            OPC_MoveParent,
/*393179*/            OPC_RecordChild2, // #3 = $src0
/*393180*/            OPC_CheckType, MVT::v4f64,
/*393182*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*393184*/            OPC_EmitMergeInputChains1_1,
/*393185*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PDZ256rrk), 0|OPFL_Chain,
                          MVT::v4f64, 3/*#Ops*/, 3, 0, 2, 
                      // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (strict_fpextend:{ *:[v4f64] } VR128X:{ *:[v4f32] }:$src), VR256X:{ *:[v4f64] }:$src0) - Complexity = 6
                      // Dst: (VCVTPS2PDZ256rrk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*393194*/          /*SwitchOpcode*/ 16, TARGET_VAL(ISD::FP_EXTEND),// ->393213
/*393197*/            OPC_RecordChild0, // #1 = $src
/*393198*/            OPC_MoveParent,
/*393199*/            OPC_RecordChild2, // #2 = $src0
/*393200*/            OPC_CheckType, MVT::v4f64,
/*393202*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*393204*/            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)
/*393213*/          /*SwitchOpcode*/ 75, TARGET_VAL(ISD::STRICT_SINT_TO_FP),// ->393291
/*393216*/            OPC_RecordNode, // #1 = 'strict_sint_to_fp' chained node
/*393217*/            OPC_CheckFoldableChainNode,
/*393218*/            OPC_RecordChild1, // #2 = $src
/*393219*/            OPC_Scope, 34, /*->393255*/ // 2 children in Scope
/*393221*/              OPC_CheckChild1Type, MVT::v4i32,
/*393223*/              OPC_MoveParent,
/*393224*/              OPC_RecordChild2, // #3 = $src0
/*393225*/              OPC_SwitchType /*2 cases */, 12, MVT::v4f64,// ->393240
/*393228*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*393230*/                OPC_EmitMergeInputChains1_1,
/*393231*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDZ256rrk), 0|OPFL_Chain,
                              MVT::v4f64, 3/*#Ops*/, 3, 0, 2, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (strict_sint_to_fp:{ *:[v4f64] } VR128X:{ *:[v4i32] }:$src), VR256X:{ *:[v4f64] }:$src0) - Complexity = 6
                          // Dst: (VCVTDQ2PDZ256rrk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*393240*/              /*SwitchType*/ 12, MVT::v4f32,// ->393254
/*393242*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*393244*/                OPC_EmitMergeInputChains1_1,
/*393245*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSZ128rrk), 0|OPFL_Chain,
                              MVT::v4f32, 3/*#Ops*/, 3, 0, 2, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (strict_sint_to_fp:{ *:[v4f32] } VR128X:{ *:[v4i32] }:$src), VR128X:{ *:[v4f32] }:$src0) - Complexity = 6
                          // Dst: (VCVTDQ2PSZ128rrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*393254*/              0, // EndSwitchType
/*393255*/            /*Scope*/ 34, /*->393290*/
/*393256*/              OPC_CheckChild1Type, MVT::v4i64,
/*393258*/              OPC_MoveParent,
/*393259*/              OPC_RecordChild2, // #3 = $src0
/*393260*/              OPC_SwitchType /*2 cases */, 12, MVT::v4f64,// ->393275
/*393263*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*393265*/                OPC_EmitMergeInputChains1_1,
/*393266*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PDZ256rrk), 0|OPFL_Chain,
                              MVT::v4f64, 3/*#Ops*/, 3, 0, 2, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (strict_sint_to_fp:{ *:[v4f64] } VR256X:{ *:[v4i64] }:$src), VR256X:{ *:[v4f64] }:$src0) - Complexity = 6
                          // Dst: (VCVTQQ2PDZ256rrk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/*393275*/              /*SwitchType*/ 12, MVT::v4f32,// ->393289
/*393277*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*393279*/                OPC_EmitMergeInputChains1_1,
/*393280*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PSZ256rrk), 0|OPFL_Chain,
                              MVT::v4f32, 3/*#Ops*/, 3, 0, 2, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (strict_sint_to_fp:{ *:[v4f32] } VR256X:{ *:[v4i64] }:$src), VR128X:{ *:[v4f32] }:$src0) - Complexity = 6
                          // Dst: (VCVTQQ2PSZ256rrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/*393289*/              0, // EndSwitchType
/*393290*/            0, /*End of Scope*/
/*393291*/          /*SwitchOpcode*/ 69, TARGET_VAL(ISD::SINT_TO_FP),// ->393363
/*393294*/            OPC_RecordChild0, // #1 = $src
/*393295*/            OPC_Scope, 32, /*->393329*/ // 2 children in Scope
/*393297*/              OPC_CheckChild0Type, MVT::v4i32,
/*393299*/              OPC_MoveParent,
/*393300*/              OPC_RecordChild2, // #2 = $src0
/*393301*/              OPC_SwitchType /*2 cases */, 11, MVT::v4f64,// ->393315
/*393304*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*393306*/                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)
/*393315*/              /*SwitchType*/ 11, MVT::v4f32,// ->393328
/*393317*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*393319*/                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)
/*393328*/              0, // EndSwitchType
/*393329*/            /*Scope*/ 32, /*->393362*/
/*393330*/              OPC_CheckChild0Type, MVT::v4i64,
/*393332*/              OPC_MoveParent,
/*393333*/              OPC_RecordChild2, // #2 = $src0
/*393334*/              OPC_SwitchType /*2 cases */, 11, MVT::v4f64,// ->393348
/*393337*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*393339*/                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)
/*393348*/              /*SwitchType*/ 11, MVT::v4f32,// ->393361
/*393350*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*393352*/                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)
/*393361*/              0, // EndSwitchType
/*393362*/            0, /*End of Scope*/
/*393363*/          /*SwitchOpcode*/ 75, TARGET_VAL(ISD::STRICT_UINT_TO_FP),// ->393441
/*393366*/            OPC_RecordNode, // #1 = 'strict_uint_to_fp' chained node
/*393367*/            OPC_CheckFoldableChainNode,
/*393368*/            OPC_RecordChild1, // #2 = $src
/*393369*/            OPC_Scope, 34, /*->393405*/ // 2 children in Scope
/*393371*/              OPC_CheckChild1Type, MVT::v4i32,
/*393373*/              OPC_MoveParent,
/*393374*/              OPC_RecordChild2, // #3 = $src0
/*393375*/              OPC_SwitchType /*2 cases */, 12, MVT::v4f64,// ->393390
/*393378*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*393380*/                OPC_EmitMergeInputChains1_1,
/*393381*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PDZ256rrk), 0|OPFL_Chain,
                              MVT::v4f64, 3/*#Ops*/, 3, 0, 2, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (strict_uint_to_fp:{ *:[v4f64] } VR128X:{ *:[v4i32] }:$src), VR256X:{ *:[v4f64] }:$src0) - Complexity = 6
                          // Dst: (VCVTUDQ2PDZ256rrk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*393390*/              /*SwitchType*/ 12, MVT::v4f32,// ->393404
/*393392*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*393394*/                OPC_EmitMergeInputChains1_1,
/*393395*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PSZ128rrk), 0|OPFL_Chain,
                              MVT::v4f32, 3/*#Ops*/, 3, 0, 2, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (strict_uint_to_fp:{ *:[v4f32] } VR128X:{ *:[v4i32] }:$src), VR128X:{ *:[v4f32] }:$src0) - Complexity = 6
                          // Dst: (VCVTUDQ2PSZ128rrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*393404*/              0, // EndSwitchType
/*393405*/            /*Scope*/ 34, /*->393440*/
/*393406*/              OPC_CheckChild1Type, MVT::v4i64,
/*393408*/              OPC_MoveParent,
/*393409*/              OPC_RecordChild2, // #3 = $src0
/*393410*/              OPC_SwitchType /*2 cases */, 12, MVT::v4f64,// ->393425
/*393413*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*393415*/                OPC_EmitMergeInputChains1_1,
/*393416*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PDZ256rrk), 0|OPFL_Chain,
                              MVT::v4f64, 3/*#Ops*/, 3, 0, 2, 
                          // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (strict_uint_to_fp:{ *:[v4f64] } VR256X:{ *:[v4i64] }:$src), VR256X:{ *:[v4f64] }:$src0) - Complexity = 6
                          // Dst: (VCVTUQQ2PDZ256rrk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/*393425*/              /*SwitchType*/ 12, MVT::v4f32,// ->393439
/*393427*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*393429*/                OPC_EmitMergeInputChains1_1,
/*393430*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PSZ256rrk), 0|OPFL_Chain,
                              MVT::v4f32, 3/*#Ops*/, 3, 0, 2, 
                          // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (strict_uint_to_fp:{ *:[v4f32] } VR256X:{ *:[v4i64] }:$src), VR128X:{ *:[v4f32] }:$src0) - Complexity = 6
                          // Dst: (VCVTUQQ2PSZ256rrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/*393439*/              0, // EndSwitchType
/*393440*/            0, /*End of Scope*/
/*393441*/          /*SwitchOpcode*/ 69, TARGET_VAL(ISD::UINT_TO_FP),// ->393513
/*393444*/            OPC_RecordChild0, // #1 = $src
/*393445*/            OPC_Scope, 32, /*->393479*/ // 2 children in Scope
/*393447*/              OPC_CheckChild0Type, MVT::v4i32,
/*393449*/              OPC_MoveParent,
/*393450*/              OPC_RecordChild2, // #2 = $src0
/*393451*/              OPC_SwitchType /*2 cases */, 11, MVT::v4f64,// ->393465
/*393454*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*393456*/                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)
/*393465*/              /*SwitchType*/ 11, MVT::v4f32,// ->393478
/*393467*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*393469*/                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)
/*393478*/              0, // EndSwitchType
/*393479*/            /*Scope*/ 32, /*->393512*/
/*393480*/              OPC_CheckChild0Type, MVT::v4i64,
/*393482*/              OPC_MoveParent,
/*393483*/              OPC_RecordChild2, // #2 = $src0
/*393484*/              OPC_SwitchType /*2 cases */, 11, MVT::v4f64,// ->393498
/*393487*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*393489*/                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)
/*393498*/              /*SwitchType*/ 11, MVT::v4f32,// ->393511
/*393500*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*393502*/                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)
/*393511*/              0, // EndSwitchType
/*393512*/            0, /*End of Scope*/
/*393513*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::CVTPH2PS),// ->393534
/*393516*/            OPC_RecordChild0, // #1 = $src
/*393517*/            OPC_CheckChild0Type, MVT::v8i16,
/*393519*/            OPC_MoveParent,
/*393520*/            OPC_RecordChild2, // #2 = $src0
/*393521*/            OPC_CheckType, MVT::v4f32,
/*393523*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*393525*/            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)
/*393534*/          /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::RSQRT14),// ->393568
/*393537*/            OPC_RecordChild0, // #1 = $src
/*393538*/            OPC_MoveParent,
/*393539*/            OPC_RecordChild2, // #2 = $src0
/*393540*/            OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->393554
/*393543*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*393545*/              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)
/*393554*/            /*SwitchType*/ 11, MVT::v4f64,// ->393567
/*393556*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*393558*/              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)
/*393567*/            0, // EndSwitchType
/*393568*/          /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::RCP14),// ->393602
/*393571*/            OPC_RecordChild0, // #1 = $src
/*393572*/            OPC_MoveParent,
/*393573*/            OPC_RecordChild2, // #2 = $src0
/*393574*/            OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->393588
/*393577*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*393579*/              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)
/*393588*/            /*SwitchType*/ 11, MVT::v4f64,// ->393601
/*393590*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*393592*/              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)
/*393601*/            0, // EndSwitchType
/*393602*/          /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::FGETEXP),// ->393636
/*393605*/            OPC_RecordChild0, // #1 = $src
/*393606*/            OPC_MoveParent,
/*393607*/            OPC_RecordChild2, // #2 = $src0
/*393608*/            OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->393622
/*393611*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*393613*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPSZ128rk), 0,
                            MVT::v4f32, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86fgetexp:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src), VR128X:{ *:[v4f32] }:$src0) - Complexity = 6
                        // Dst: (VGETEXPPSZ128rk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*393622*/            /*SwitchType*/ 11, MVT::v4f64,// ->393635
/*393624*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*393626*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPDZ256rk), 0,
                            MVT::v4f64, 3/*#Ops*/, 2, 0, 1, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (X86fgetexp:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src), VR256X:{ *:[v4f64] }:$src0) - Complexity = 6
                        // Dst: (VGETEXPPDZ256rk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)
/*393635*/            0, // EndSwitchType
/*393636*/          /*SwitchOpcode*/ 35, TARGET_VAL(ISD::STRICT_FSQRT),// ->393674
/*393639*/            OPC_RecordNode, // #1 = 'strict_fsqrt' chained node
/*393640*/            OPC_CheckFoldableChainNode,
/*393641*/            OPC_RecordChild1, // #2 = $src
/*393642*/            OPC_MoveParent,
/*393643*/            OPC_RecordChild2, // #3 = $src0
/*393644*/            OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->393659
/*393647*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*393649*/              OPC_EmitMergeInputChains1_1,
/*393650*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSZ128rk), 0|OPFL_Chain,
                            MVT::v4f32, 3/*#Ops*/, 3, 0, 2, 
                        // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (strict_fsqrt:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src), VR128X:{ *:[v4f32] }:$src0) - Complexity = 6
                        // Dst: (VSQRTPSZ128rk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*393659*/            /*SwitchType*/ 12, MVT::v4f64,// ->393673
/*393661*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*393663*/              OPC_EmitMergeInputChains1_1,
/*393664*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDZ256rk), 0|OPFL_Chain,
                            MVT::v4f64, 3/*#Ops*/, 3, 0, 2, 
                        // Src: (vselect:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, (strict_fsqrt:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src), VR256X:{ *:[v4f64] }:$src0) - Complexity = 6
                        // Dst: (VSQRTPDZ256rk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)
/*393673*/            0, // EndSwitchType
/*393674*/          /*SwitchOpcode*/ 31, TARGET_VAL(ISD::FSQRT),// ->393708
/*393677*/            OPC_RecordChild0, // #1 = $src
/*393678*/            OPC_MoveParent,
/*393679*/            OPC_RecordChild2, // #2 = $src0
/*393680*/            OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->393694
/*393683*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*393685*/              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)
/*393694*/            /*SwitchType*/ 11, MVT::v4f64,// ->393707
/*393696*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*393698*/              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)
/*393707*/            0, // EndSwitchType
/*393708*/          /*SwitchOpcode*/ 16, TARGET_VAL(X86ISD::MOVSHDUP),// ->393727
/*393711*/            OPC_RecordChild0, // #1 = $src1
/*393712*/            OPC_MoveParent,
/*393713*/            OPC_RecordChild2, // #2 = $src0
/*393714*/            OPC_CheckType, MVT::v4f32,
/*393716*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*393718*/            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)
/*393727*/          /*SwitchOpcode*/ 16, TARGET_VAL(X86ISD::MOVSLDUP),// ->393746
/*393730*/            OPC_RecordChild0, // #1 = $src1
/*393731*/            OPC_MoveParent,
/*393732*/            OPC_RecordChild2, // #2 = $src0
/*393733*/            OPC_CheckType, MVT::v4f32,
/*393735*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*393737*/            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)
/*393746*/          /*SwitchOpcode*/ 16, TARGET_VAL(X86ISD::MOVDDUP),// ->393765
/*393749*/            OPC_RecordChild0, // #1 = $src1
/*393750*/            OPC_MoveParent,
/*393751*/            OPC_RecordChild2, // #2 = $src0
/*393752*/            OPC_CheckType, MVT::v4f64,
/*393754*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*393756*/            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)
/*393765*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::UNPCKH),// ->393802
/*393768*/            OPC_RecordChild0, // #1 = $src1
/*393769*/            OPC_RecordChild1, // #2 = $src2
/*393770*/            OPC_MoveParent,
/*393771*/            OPC_RecordChild2, // #3 = $src0
/*393772*/            OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->393787
/*393775*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*393777*/              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)
/*393787*/            /*SwitchType*/ 12, MVT::v4f64,// ->393801
/*393789*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*393791*/              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)
/*393801*/            0, // EndSwitchType
/*393802*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::UNPCKL),// ->393839
/*393805*/            OPC_RecordChild0, // #1 = $src1
/*393806*/            OPC_RecordChild1, // #2 = $src2
/*393807*/            OPC_MoveParent,
/*393808*/            OPC_RecordChild2, // #3 = $src0
/*393809*/            OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->393824
/*393812*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*393814*/              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)
/*393824*/            /*SwitchType*/ 12, MVT::v4f64,// ->393838
/*393826*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*393828*/              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)
/*393838*/            0, // EndSwitchType
/*393839*/          /*SwitchOpcode*/ 22, TARGET_VAL(X86ISD::DPBF16PS),// ->393864
/*393842*/            OPC_RecordChild0, // #1 = $src1
/*393843*/            OPC_RecordChild1, // #2 = $src2
/*393844*/            OPC_CheckChild1Type, MVT::v4i32,
/*393846*/            OPC_RecordChild2, // #3 = $src3
/*393847*/            OPC_MoveParent,
/*393848*/            OPC_CheckChild2Same, 1,
/*393850*/            OPC_CheckType, MVT::v4f32,
/*393852*/            OPC_CheckPatternPredicate, 182, // (Subtarget->hasBF16()) && (Subtarget->hasVLX())
/*393854*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDPBF16PSZ128rk), 0,
                          MVT::v4f32, 4/*#Ops*/, 1, 0, 2, 3, 
                      // Src: (vselect:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, (X86dpbf16ps:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3), VR128X:{ *:[v4f32] }:$src1) - Complexity = 6
                      // Dst: (VDPBF16PSZ128rk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3)
/*393864*/          0, // EndSwitchOpcode
/*393865*/        /*Scope*/ 48|128,1/*176*/, /*->394043*/
/*393867*/          OPC_RecordChild1, // #1 = $src1
/*393868*/          OPC_RecordChild2, // #2 = $src0
/*393869*/          OPC_SwitchType /*2 cases */, 84, MVT::v4f32,// ->393956
/*393872*/            OPC_Scope, 11, /*->393885*/ // 2 children in Scope
/*393874*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*393876*/              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)
/*393885*/            /*Scope*/ 69, /*->393955*/
/*393886*/              OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*393888*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v16f32, 0/*#Ops*/,  // Results = #3
/*393894*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*393897*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v16f32, 3/*#Ops*/, 3, 2, 4,  // Results = #5
/*393906*/              OPC_EmitInteger, MVT::i32, X86::VK16WMRegClassID,
/*393909*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v16i1, 2/*#Ops*/, 0, 6,  // Results = #7
/*393917*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v16f32, 0/*#Ops*/,  // Results = #8
/*393923*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*393926*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v16f32, 3/*#Ops*/, 8, 1, 9,  // Results = #10
/*393935*/              OPC_EmitNode1, TARGET_VAL(X86::VMOVAPSZrrk), 0,
                            MVT::v16f32, 3/*#Ops*/, 5, 7, 10,  // Results = #11
/*393944*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*393947*/              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] })
/*393955*/            0, /*End of Scope*/
/*393956*/          /*SwitchType*/ 84, MVT::v4f64,// ->394042
/*393958*/            OPC_Scope, 11, /*->393971*/ // 2 children in Scope
/*393960*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*393962*/              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)
/*393971*/            /*Scope*/ 69, /*->394041*/
/*393972*/              OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*393974*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v8f64, 0/*#Ops*/,  // Results = #3
/*393980*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*393983*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v8f64, 3/*#Ops*/, 3, 2, 4,  // Results = #5
/*393992*/              OPC_EmitInteger, MVT::i32, X86::VK8WMRegClassID,
/*393995*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v8i1, 2/*#Ops*/, 0, 6,  // Results = #7
/*394003*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v8f64, 0/*#Ops*/,  // Results = #8
/*394009*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*394012*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v8f64, 3/*#Ops*/, 8, 1, 9,  // Results = #10
/*394021*/              OPC_EmitNode1, TARGET_VAL(X86::VMOVAPDZrrk), 0,
                            MVT::v8f64, 3/*#Ops*/, 5, 7, 10,  // Results = #11
/*394030*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*394033*/              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] })
/*394041*/            0, /*End of Scope*/
/*394042*/          0, // EndSwitchType
/*394043*/        0, /*End of Scope*/
/*394044*/      /*Scope*/ 69|128,47|128,1/*22469*/, /*->416516*/
/*394047*/        OPC_CheckChild0Type, MVT::v2i1,
/*394049*/        OPC_Scope, 109|128,5/*749*/, /*->394801*/ // 14 children in Scope
/*394052*/          OPC_MoveChild1,
/*394053*/          OPC_SwitchOpcode /*10 cases */, 105|128,3/*489*/, TARGET_VAL(ISD::BITCAST),// ->394547
/*394058*/            OPC_Scope, 84|128,1/*212*/, /*->394273*/ // 2 children in Scope
/*394061*/              OPC_RecordChild0, // #1 = $ext
/*394062*/              OPC_MoveChild0,
/*394063*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/*394066*/              OPC_RecordChild0, // #2 = $src
/*394067*/              OPC_Scope, 33, /*->394102*/ // 6 children in Scope
/*394069*/                OPC_CheckChild0Type, MVT::v8i32,
/*394071*/                OPC_MoveChild1,
/*394072*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*394075*/                OPC_CheckType, MVT::iPTR,
/*394077*/                OPC_MoveParent,
/*394078*/                OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/*394080*/                OPC_CheckType, MVT::v4i32,
/*394082*/                OPC_MoveParent,
/*394083*/                OPC_MoveParent,
/*394084*/                OPC_RecordChild2, // #3 = $src0
/*394085*/                OPC_CheckType, MVT::v2i64,
/*394087*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*394089*/                OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*394092*/                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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext), VR128X:{ *:[v2i64] }:$src0) - Complexity = 13
                          // Dst: (VEXTRACTI64x2Z256rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR256X:{ *:[v8i32] }:$src, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v4i32] }:$ext))
/*394102*/              /*Scope*/ 33, /*->394136*/
/*394103*/                OPC_CheckChild0Type, MVT::v16i16,
/*394105*/                OPC_MoveChild1,
/*394106*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*394109*/                OPC_CheckType, MVT::iPTR,
/*394111*/                OPC_MoveParent,
/*394112*/                OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/*394114*/                OPC_CheckType, MVT::v8i16,
/*394116*/                OPC_MoveParent,
/*394117*/                OPC_MoveParent,
/*394118*/                OPC_RecordChild2, // #3 = $src0
/*394119*/                OPC_CheckType, MVT::v2i64,
/*394121*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*394123*/                OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*394126*/                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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext), VR128X:{ *:[v2i64] }:$src0) - Complexity = 13
                          // Dst: (VEXTRACTI64x2Z256rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR256X:{ *:[v16i16] }:$src, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v8i16] }:$ext))
/*394136*/              /*Scope*/ 33, /*->394170*/
/*394137*/                OPC_CheckChild0Type, MVT::v32i8,
/*394139*/                OPC_MoveChild1,
/*394140*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*394143*/                OPC_CheckType, MVT::iPTR,
/*394145*/                OPC_MoveParent,
/*394146*/                OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/*394148*/                OPC_CheckType, MVT::v16i8,
/*394150*/                OPC_MoveParent,
/*394151*/                OPC_MoveParent,
/*394152*/                OPC_RecordChild2, // #3 = $src0
/*394153*/                OPC_CheckType, MVT::v2i64,
/*394155*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*394157*/                OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*394160*/                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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext), VR128X:{ *:[v2i64] }:$src0) - Complexity = 13
                          // Dst: (VEXTRACTI64x2Z256rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR256X:{ *:[v32i8] }:$src, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v16i8] }:$ext))
/*394170*/              /*Scope*/ 33, /*->394204*/
/*394171*/                OPC_CheckChild0Type, MVT::v16i32,
/*394173*/                OPC_MoveChild1,
/*394174*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*394177*/                OPC_CheckType, MVT::iPTR,
/*394179*/                OPC_MoveParent,
/*394180*/                OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/*394182*/                OPC_CheckType, MVT::v4i32,
/*394184*/                OPC_MoveParent,
/*394185*/                OPC_MoveParent,
/*394186*/                OPC_RecordChild2, // #3 = $src0
/*394187*/                OPC_CheckType, MVT::v2i64,
/*394189*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*394191*/                OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*394194*/                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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext), VR128X:{ *:[v2i64] }:$src0) - Complexity = 13
                          // Dst: (VEXTRACTI64x2Zrrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR512:{ *:[v16i32] }:$src, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v4i32] }:$ext))
/*394204*/              /*Scope*/ 33, /*->394238*/
/*394205*/                OPC_CheckChild0Type, MVT::v32i16,
/*394207*/                OPC_MoveChild1,
/*394208*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*394211*/                OPC_CheckType, MVT::iPTR,
/*394213*/                OPC_MoveParent,
/*394214*/                OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/*394216*/                OPC_CheckType, MVT::v8i16,
/*394218*/                OPC_MoveParent,
/*394219*/                OPC_MoveParent,
/*394220*/                OPC_RecordChild2, // #3 = $src0
/*394221*/                OPC_CheckType, MVT::v2i64,
/*394223*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*394225*/                OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*394228*/                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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext), VR128X:{ *:[v2i64] }:$src0) - Complexity = 13
                          // Dst: (VEXTRACTI64x2Zrrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR512:{ *:[v32i16] }:$src, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v8i16] }:$ext))
/*394238*/              /*Scope*/ 33, /*->394272*/
/*394239*/                OPC_CheckChild0Type, MVT::v64i8,
/*394241*/                OPC_MoveChild1,
/*394242*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*394245*/                OPC_CheckType, MVT::iPTR,
/*394247*/                OPC_MoveParent,
/*394248*/                OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/*394250*/                OPC_CheckType, MVT::v16i8,
/*394252*/                OPC_MoveParent,
/*394253*/                OPC_MoveParent,
/*394254*/                OPC_RecordChild2, // #3 = $src0
/*394255*/                OPC_CheckType, MVT::v2i64,
/*394257*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*394259*/                OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*394262*/                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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext), VR128X:{ *:[v2i64] }:$src0) - Complexity = 13
                          // Dst: (VEXTRACTI64x2Zrrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR512:{ *:[v64i8] }:$src, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v16i8] }:$ext))
/*394272*/              0, /*End of Scope*/
/*394273*/            /*Scope*/ 15|128,2/*271*/, /*->394546*/
/*394275*/              OPC_MoveChild0,
/*394276*/              OPC_SwitchOpcode /*4 cases */, 64, TARGET_VAL(ISD::AND),// ->394344
/*394280*/                OPC_RecordChild0, // #1 = $src1
/*394281*/                OPC_RecordChild1, // #2 = $src2
/*394282*/                OPC_SwitchType /*3 cases */, 18, MVT::v4i32,// ->394303
/*394285*/                  OPC_MoveParent,
/*394286*/                  OPC_MoveParent,
/*394287*/                  OPC_MoveChild2,
/*394288*/                  OPC_CheckImmAllZerosV,
/*394289*/                  OPC_MoveParent,
/*394290*/                  OPC_CheckType, MVT::v2i64,
/*394292*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*394294*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ128rrkz), 0,
                                MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2i64] } (and:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)), immAllZerosV:{ *:[v2i64] }) - Complexity = 13
                            // Dst: (VPANDQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*394303*/                /*SwitchType*/ 18, MVT::v8i16,// ->394323
/*394305*/                  OPC_MoveParent,
/*394306*/                  OPC_MoveParent,
/*394307*/                  OPC_MoveChild2,
/*394308*/                  OPC_CheckImmAllZerosV,
/*394309*/                  OPC_MoveParent,
/*394310*/                  OPC_CheckType, MVT::v2i64,
/*394312*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*394314*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ128rrkz), 0,
                                MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2i64] } (and:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)), immAllZerosV:{ *:[v2i64] }) - Complexity = 13
                            // Dst: (VPANDQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*394323*/                /*SwitchType*/ 18, MVT::v16i8,// ->394343
/*394325*/                  OPC_MoveParent,
/*394326*/                  OPC_MoveParent,
/*394327*/                  OPC_MoveChild2,
/*394328*/                  OPC_CheckImmAllZerosV,
/*394329*/                  OPC_MoveParent,
/*394330*/                  OPC_CheckType, MVT::v2i64,
/*394332*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*394334*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ128rrkz), 0,
                                MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2i64] } (and:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)), immAllZerosV:{ *:[v2i64] }) - Complexity = 13
                            // Dst: (VPANDQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*394343*/                0, // EndSwitchType
/*394344*/              /*SwitchOpcode*/ 64, TARGET_VAL(ISD::OR),// ->394411
/*394347*/                OPC_RecordChild0, // #1 = $src1
/*394348*/                OPC_RecordChild1, // #2 = $src2
/*394349*/                OPC_SwitchType /*3 cases */, 18, MVT::v4i32,// ->394370
/*394352*/                  OPC_MoveParent,
/*394353*/                  OPC_MoveParent,
/*394354*/                  OPC_MoveChild2,
/*394355*/                  OPC_CheckImmAllZerosV,
/*394356*/                  OPC_MoveParent,
/*394357*/                  OPC_CheckType, MVT::v2i64,
/*394359*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*394361*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ128rrkz), 0,
                                MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2i64] } (or:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)), immAllZerosV:{ *:[v2i64] }) - Complexity = 13
                            // Dst: (VPORQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*394370*/                /*SwitchType*/ 18, MVT::v8i16,// ->394390
/*394372*/                  OPC_MoveParent,
/*394373*/                  OPC_MoveParent,
/*394374*/                  OPC_MoveChild2,
/*394375*/                  OPC_CheckImmAllZerosV,
/*394376*/                  OPC_MoveParent,
/*394377*/                  OPC_CheckType, MVT::v2i64,
/*394379*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*394381*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ128rrkz), 0,
                                MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2i64] } (or:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)), immAllZerosV:{ *:[v2i64] }) - Complexity = 13
                            // Dst: (VPORQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*394390*/                /*SwitchType*/ 18, MVT::v16i8,// ->394410
/*394392*/                  OPC_MoveParent,
/*394393*/                  OPC_MoveParent,
/*394394*/                  OPC_MoveChild2,
/*394395*/                  OPC_CheckImmAllZerosV,
/*394396*/                  OPC_MoveParent,
/*394397*/                  OPC_CheckType, MVT::v2i64,
/*394399*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*394401*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ128rrkz), 0,
                                MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2i64] } (or:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)), immAllZerosV:{ *:[v2i64] }) - Complexity = 13
                            // Dst: (VPORQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*394410*/                0, // EndSwitchType
/*394411*/              /*SwitchOpcode*/ 64, TARGET_VAL(ISD::XOR),// ->394478
/*394414*/                OPC_RecordChild0, // #1 = $src1
/*394415*/                OPC_RecordChild1, // #2 = $src2
/*394416*/                OPC_SwitchType /*3 cases */, 18, MVT::v4i32,// ->394437
/*394419*/                  OPC_MoveParent,
/*394420*/                  OPC_MoveParent,
/*394421*/                  OPC_MoveChild2,
/*394422*/                  OPC_CheckImmAllZerosV,
/*394423*/                  OPC_MoveParent,
/*394424*/                  OPC_CheckType, MVT::v2i64,
/*394426*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*394428*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ128rrkz), 0,
                                MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2i64] } (xor:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)), immAllZerosV:{ *:[v2i64] }) - Complexity = 13
                            // Dst: (VPXORQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*394437*/                /*SwitchType*/ 18, MVT::v8i16,// ->394457
/*394439*/                  OPC_MoveParent,
/*394440*/                  OPC_MoveParent,
/*394441*/                  OPC_MoveChild2,
/*394442*/                  OPC_CheckImmAllZerosV,
/*394443*/                  OPC_MoveParent,
/*394444*/                  OPC_CheckType, MVT::v2i64,
/*394446*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*394448*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ128rrkz), 0,
                                MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2i64] } (xor:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)), immAllZerosV:{ *:[v2i64] }) - Complexity = 13
                            // Dst: (VPXORQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*394457*/                /*SwitchType*/ 18, MVT::v16i8,// ->394477
/*394459*/                  OPC_MoveParent,
/*394460*/                  OPC_MoveParent,
/*394461*/                  OPC_MoveChild2,
/*394462*/                  OPC_CheckImmAllZerosV,
/*394463*/                  OPC_MoveParent,
/*394464*/                  OPC_CheckType, MVT::v2i64,
/*394466*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*394468*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ128rrkz), 0,
                                MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2i64] } (xor:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)), immAllZerosV:{ *:[v2i64] }) - Complexity = 13
                            // Dst: (VPXORQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*394477*/                0, // EndSwitchType
/*394478*/              /*SwitchOpcode*/ 64, TARGET_VAL(X86ISD::ANDNP),// ->394545
/*394481*/                OPC_RecordChild0, // #1 = $src1
/*394482*/                OPC_RecordChild1, // #2 = $src2
/*394483*/                OPC_SwitchType /*3 cases */, 18, MVT::v4i32,// ->394504
/*394486*/                  OPC_MoveParent,
/*394487*/                  OPC_MoveParent,
/*394488*/                  OPC_MoveChild2,
/*394489*/                  OPC_CheckImmAllZerosV,
/*394490*/                  OPC_MoveParent,
/*394491*/                  OPC_CheckType, MVT::v2i64,
/*394493*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*394495*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZ128rrkz), 0,
                                MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2i64] } (X86andnp:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)), immAllZerosV:{ *:[v2i64] }) - Complexity = 13
                            // Dst: (VPANDNQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*394504*/                /*SwitchType*/ 18, MVT::v8i16,// ->394524
/*394506*/                  OPC_MoveParent,
/*394507*/                  OPC_MoveParent,
/*394508*/                  OPC_MoveChild2,
/*394509*/                  OPC_CheckImmAllZerosV,
/*394510*/                  OPC_MoveParent,
/*394511*/                  OPC_CheckType, MVT::v2i64,
/*394513*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*394515*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZ128rrkz), 0,
                                MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2i64] } (X86andnp:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)), immAllZerosV:{ *:[v2i64] }) - Complexity = 13
                            // Dst: (VPANDNQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*394524*/                /*SwitchType*/ 18, MVT::v16i8,// ->394544
/*394526*/                  OPC_MoveParent,
/*394527*/                  OPC_MoveParent,
/*394528*/                  OPC_MoveChild2,
/*394529*/                  OPC_CheckImmAllZerosV,
/*394530*/                  OPC_MoveParent,
/*394531*/                  OPC_CheckType, MVT::v2i64,
/*394533*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*394535*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZ128rrkz), 0,
                                MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2i64] } (X86andnp:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)), immAllZerosV:{ *:[v2i64] }) - Complexity = 13
                            // Dst: (VPANDNQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*394544*/                0, // EndSwitchType
/*394545*/              0, // EndSwitchOpcode
/*394546*/            0, /*End of Scope*/
/*394547*/          /*SwitchOpcode*/ 24, TARGET_VAL(X86ISD::VSRLI),// ->394574
/*394550*/            OPC_RecordChild0, // #1 = $src1
/*394551*/            OPC_RecordChild1, // #2 = $src2
/*394552*/            OPC_MoveChild1,
/*394553*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*394556*/            OPC_MoveParent,
/*394557*/            OPC_MoveParent,
/*394558*/            OPC_MoveChild2,
/*394559*/            OPC_CheckImmAllZerosV,
/*394560*/            OPC_MoveParent,
/*394561*/            OPC_CheckType, MVT::v2i64,
/*394563*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*394565*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZ128rikz), 0,
                          MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vsrli:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v2i64] }) - Complexity = 13
                      // Dst: (VPSRLQZ128rikz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, (timm:{ *:[i8] }):$src2)
/*394574*/          /*SwitchOpcode*/ 24, TARGET_VAL(X86ISD::VSHLI),// ->394601
/*394577*/            OPC_RecordChild0, // #1 = $src1
/*394578*/            OPC_RecordChild1, // #2 = $src2
/*394579*/            OPC_MoveChild1,
/*394580*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*394583*/            OPC_MoveParent,
/*394584*/            OPC_MoveParent,
/*394585*/            OPC_MoveChild2,
/*394586*/            OPC_CheckImmAllZerosV,
/*394587*/            OPC_MoveParent,
/*394588*/            OPC_CheckType, MVT::v2i64,
/*394590*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*394592*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZ128rikz), 0,
                          MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vshli:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v2i64] }) - Complexity = 13
                      // Dst: (VPSLLQZ128rikz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, (timm:{ *:[i8] }):$src2)
/*394601*/          /*SwitchOpcode*/ 24, TARGET_VAL(X86ISD::VSRAI),// ->394628
/*394604*/            OPC_RecordChild0, // #1 = $src1
/*394605*/            OPC_RecordChild1, // #2 = $src2
/*394606*/            OPC_MoveChild1,
/*394607*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*394610*/            OPC_MoveParent,
/*394611*/            OPC_MoveParent,
/*394612*/            OPC_MoveChild2,
/*394613*/            OPC_CheckImmAllZerosV,
/*394614*/            OPC_MoveParent,
/*394615*/            OPC_CheckType, MVT::v2i64,
/*394617*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*394619*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZ128rikz), 0,
                          MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vsrai:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v2i64] }) - Complexity = 13
                      // Dst: (VPSRAQZ128rikz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, (timm:{ *:[i8] }):$src2)
/*394628*/          /*SwitchOpcode*/ 24, TARGET_VAL(X86ISD::VROTRI),// ->394655
/*394631*/            OPC_RecordChild0, // #1 = $src1
/*394632*/            OPC_RecordChild1, // #2 = $src2
/*394633*/            OPC_MoveChild1,
/*394634*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*394637*/            OPC_MoveParent,
/*394638*/            OPC_MoveParent,
/*394639*/            OPC_MoveChild2,
/*394640*/            OPC_CheckImmAllZerosV,
/*394641*/            OPC_MoveParent,
/*394642*/            OPC_CheckType, MVT::v2i64,
/*394644*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*394646*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORQZ128rikz), 0,
                          MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vrotri:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v2i64] }) - Complexity = 13
                      // Dst: (VPRORQZ128rikz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, (timm:{ *:[i8] }):$src2)
/*394655*/          /*SwitchOpcode*/ 24, TARGET_VAL(X86ISD::VROTLI),// ->394682
/*394658*/            OPC_RecordChild0, // #1 = $src1
/*394659*/            OPC_RecordChild1, // #2 = $src2
/*394660*/            OPC_MoveChild1,
/*394661*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*394664*/            OPC_MoveParent,
/*394665*/            OPC_MoveParent,
/*394666*/            OPC_MoveChild2,
/*394667*/            OPC_CheckImmAllZerosV,
/*394668*/            OPC_MoveParent,
/*394669*/            OPC_CheckType, MVT::v2i64,
/*394671*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*394673*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLQZ128rikz), 0,
                          MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vrotli:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v2i64] }) - Complexity = 13
                      // Dst: (VPROLQZ128rikz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, (timm:{ *:[i8] }):$src2)
/*394682*/          /*SwitchOpcode*/ 26, TARGET_VAL(X86ISD::VALIGN),// ->394711
/*394685*/            OPC_RecordChild0, // #1 = $src1
/*394686*/            OPC_RecordChild1, // #2 = $src2
/*394687*/            OPC_RecordChild2, // #3 = $src3
/*394688*/            OPC_MoveChild2,
/*394689*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*394692*/            OPC_MoveParent,
/*394693*/            OPC_MoveParent,
/*394694*/            OPC_MoveChild2,
/*394695*/            OPC_CheckImmAllZerosV,
/*394696*/            OPC_MoveParent,
/*394697*/            OPC_CheckType, MVT::v2i64,
/*394699*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*394701*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNQZ128rrikz), 0,
                          MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86VAlign:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v2i64] }) - Complexity = 13
                      // Dst: (VALIGNQZ128rrikz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (timm:{ *:[i8] }):$src3)
/*394711*/          /*SwitchOpcode*/ 28, TARGET_VAL(X86ISD::VPTERNLOG),// ->394742
/*394714*/            OPC_RecordChild0, // #1 = $src1
/*394715*/            OPC_RecordChild1, // #2 = $src2
/*394716*/            OPC_RecordChild2, // #3 = $src3
/*394717*/            OPC_RecordChild3, // #4 = $src4
/*394718*/            OPC_MoveChild3,
/*394719*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*394722*/            OPC_MoveParent,
/*394723*/            OPC_MoveParent,
/*394724*/            OPC_MoveChild2,
/*394725*/            OPC_CheckImmAllZerosV,
/*394726*/            OPC_MoveParent,
/*394727*/            OPC_CheckType, MVT::v2i64,
/*394729*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*394731*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rrikz), 0,
                          MVT::v2i64, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vpternlog:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src3, (timm:{ *:[i8] }):$src4), immAllZerosV:{ *:[v2i64] }) - Complexity = 13
                      // Dst: (VPTERNLOGQZ128rrikz:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src3, (timm:{ *:[i8] }):$src4)
/*394742*/          /*SwitchOpcode*/ 26, TARGET_VAL(X86ISD::VSHLD),// ->394771
/*394745*/            OPC_RecordChild0, // #1 = $src1
/*394746*/            OPC_RecordChild1, // #2 = $src2
/*394747*/            OPC_RecordChild2, // #3 = $src3
/*394748*/            OPC_MoveChild2,
/*394749*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*394752*/            OPC_MoveParent,
/*394753*/            OPC_MoveParent,
/*394754*/            OPC_MoveChild2,
/*394755*/            OPC_CheckImmAllZerosV,
/*394756*/            OPC_MoveParent,
/*394757*/            OPC_CheckType, MVT::v2i64,
/*394759*/            OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*394761*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDQZ128rrikz), 0,
                          MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86VShld:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v2i64] }) - Complexity = 13
                      // Dst: (VPSHLDQZ128rrikz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (timm:{ *:[i8] }):$src3)
/*394771*/          /*SwitchOpcode*/ 26, TARGET_VAL(X86ISD::VSHRD),// ->394800
/*394774*/            OPC_RecordChild0, // #1 = $src1
/*394775*/            OPC_RecordChild1, // #2 = $src2
/*394776*/            OPC_RecordChild2, // #3 = $src3
/*394777*/            OPC_MoveChild2,
/*394778*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*394781*/            OPC_MoveParent,
/*394782*/            OPC_MoveParent,
/*394783*/            OPC_MoveChild2,
/*394784*/            OPC_CheckImmAllZerosV,
/*394785*/            OPC_MoveParent,
/*394786*/            OPC_CheckType, MVT::v2i64,
/*394788*/            OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*394790*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDQZ128rrikz), 0,
                          MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86VShrd:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v2i64] }) - Complexity = 13
                      // Dst: (VPSHRDQZ128rrikz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (timm:{ *:[i8] }):$src3)
/*394800*/          0, // EndSwitchOpcode
/*394801*/        /*Scope*/ 70, /*->394872*/
/*394802*/          OPC_RecordChild1, // #1 = $idx
/*394803*/          OPC_MoveChild1,
/*394804*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/*394807*/          OPC_RecordChild0, // #2 = $src1
/*394808*/          OPC_Scope, 30, /*->394840*/ // 2 children in Scope
/*394810*/            OPC_CheckChild0Type, MVT::v4i64,
/*394812*/            OPC_MoveChild1,
/*394813*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*394816*/            OPC_CheckType, MVT::iPTR,
/*394818*/            OPC_MoveParent,
/*394819*/            OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/*394821*/            OPC_MoveParent,
/*394822*/            OPC_RecordChild2, // #3 = $src0
/*394823*/            OPC_CheckType, MVT::v2i64,
/*394825*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*394827*/            OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*394830*/            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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$idx, VR128X:{ *:[v2i64] }:$src0) - Complexity = 10
                      // 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))
/*394840*/          /*Scope*/ 30, /*->394871*/
/*394841*/            OPC_CheckChild0Type, MVT::v8i64,
/*394843*/            OPC_MoveChild1,
/*394844*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*394847*/            OPC_CheckType, MVT::iPTR,
/*394849*/            OPC_MoveParent,
/*394850*/            OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/*394852*/            OPC_MoveParent,
/*394853*/            OPC_RecordChild2, // #3 = $src0
/*394854*/            OPC_CheckType, MVT::v2i64,
/*394856*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*394858*/            OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*394861*/            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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$idx, VR128X:{ *:[v2i64] }:$src0) - Complexity = 10
                      // 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))
/*394871*/          0, /*End of Scope*/
/*394872*/        /*Scope*/ 49|128,13/*1713*/, /*->396587*/
/*394874*/          OPC_MoveChild1,
/*394875*/          OPC_SwitchOpcode /*51 cases */, 41, TARGET_VAL(X86ISD::VBROADCAST),// ->394920
/*394879*/            OPC_RecordChild0, // #1 = $src
/*394880*/            OPC_Scope, 18, /*->394900*/ // 2 children in Scope
/*394882*/              OPC_CheckChild0Type, MVT::i64,
/*394884*/              OPC_MoveParent,
/*394885*/              OPC_MoveChild2,
/*394886*/              OPC_CheckImmAllZerosV,
/*394887*/              OPC_MoveParent,
/*394888*/              OPC_CheckType, MVT::v2i64,
/*394890*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*394892*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQrZ128rkz), 0,
                            MVT::v2i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86VBroadcast:{ *:[v2i64] } GR64:{ *:[i64] }:$src), immAllZerosV:{ *:[v2i64] }) - Complexity = 10
                        // Dst: (VPBROADCASTQrZ128rkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, GR64:{ *:[i64] }:$src)
/*394900*/            /*Scope*/ 18, /*->394919*/
/*394901*/              OPC_CheckChild0Type, MVT::v2i64,
/*394903*/              OPC_MoveParent,
/*394904*/              OPC_MoveChild2,
/*394905*/              OPC_CheckImmAllZerosV,
/*394906*/              OPC_MoveParent,
/*394907*/              OPC_CheckType, MVT::v2i64,
/*394909*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*394911*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQZ128rkz), 0,
                            MVT::v2i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86VBroadcast:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src), immAllZerosV:{ *:[v2i64] }) - Complexity = 10
                        // Dst: (VPBROADCASTQZ128rkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*394919*/            0, /*End of Scope*/
/*394920*/          /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::VPERMV3),// ->394944
/*394923*/            OPC_RecordChild0, // #1 = $src1
/*394924*/            OPC_RecordChild1, // #2 = $src2
/*394925*/            OPC_RecordChild2, // #3 = $src3
/*394926*/            OPC_MoveParent,
/*394927*/            OPC_MoveChild2,
/*394928*/            OPC_CheckImmAllZerosV,
/*394929*/            OPC_MoveParent,
/*394930*/            OPC_CheckType, MVT::v2i64,
/*394932*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*394934*/            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), immAllZerosV:{ *:[v2i64] }) - Complexity = 10
                      // Dst: (VPERMT2Q128rrkz:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src3)
/*394944*/          /*SwitchOpcode*/ 19, TARGET_VAL(ISD::ADD),// ->394966
/*394947*/            OPC_RecordChild0, // #1 = $src1
/*394948*/            OPC_RecordChild1, // #2 = $src2
/*394949*/            OPC_MoveParent,
/*394950*/            OPC_MoveChild2,
/*394951*/            OPC_CheckImmAllZerosV,
/*394952*/            OPC_MoveParent,
/*394953*/            OPC_CheckType, MVT::v2i64,
/*394955*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*394957*/            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), immAllZerosV:{ *:[v2i64] }) - Complexity = 10
                      // Dst: (VPADDQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*394966*/          /*SwitchOpcode*/ 19, TARGET_VAL(ISD::SUB),// ->394988
/*394969*/            OPC_RecordChild0, // #1 = $src1
/*394970*/            OPC_RecordChild1, // #2 = $src2
/*394971*/            OPC_MoveParent,
/*394972*/            OPC_MoveChild2,
/*394973*/            OPC_CheckImmAllZerosV,
/*394974*/            OPC_MoveParent,
/*394975*/            OPC_CheckType, MVT::v2i64,
/*394977*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*394979*/            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), immAllZerosV:{ *:[v2i64] }) - Complexity = 10
                      // Dst: (VPSUBQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*394988*/          /*SwitchOpcode*/ 19, TARGET_VAL(ISD::MUL),// ->395010
/*394991*/            OPC_RecordChild0, // #1 = $src1
/*394992*/            OPC_RecordChild1, // #2 = $src2
/*394993*/            OPC_MoveParent,
/*394994*/            OPC_MoveChild2,
/*394995*/            OPC_CheckImmAllZerosV,
/*394996*/            OPC_MoveParent,
/*394997*/            OPC_CheckType, MVT::v2i64,
/*394999*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*395001*/            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), immAllZerosV:{ *:[v2i64] }) - Complexity = 10
                      // Dst: (VPMULLQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*395010*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::PMULDQ),// ->395032
/*395013*/            OPC_RecordChild0, // #1 = $src1
/*395014*/            OPC_RecordChild1, // #2 = $src2
/*395015*/            OPC_MoveParent,
/*395016*/            OPC_MoveChild2,
/*395017*/            OPC_CheckImmAllZerosV,
/*395018*/            OPC_MoveParent,
/*395019*/            OPC_CheckType, MVT::v2i64,
/*395021*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*395023*/            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), immAllZerosV:{ *:[v2i64] }) - Complexity = 10
                      // Dst: (VPMULDQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*395032*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::PMULUDQ),// ->395054
/*395035*/            OPC_RecordChild0, // #1 = $src1
/*395036*/            OPC_RecordChild1, // #2 = $src2
/*395037*/            OPC_MoveParent,
/*395038*/            OPC_MoveChild2,
/*395039*/            OPC_CheckImmAllZerosV,
/*395040*/            OPC_MoveParent,
/*395041*/            OPC_CheckType, MVT::v2i64,
/*395043*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*395045*/            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), immAllZerosV:{ *:[v2i64] }) - Complexity = 10
                      // Dst: (VPMULUDQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*395054*/          /*SwitchOpcode*/ 19, TARGET_VAL(ISD::SMAX),// ->395076
/*395057*/            OPC_RecordChild0, // #1 = $src1
/*395058*/            OPC_RecordChild1, // #2 = $src2
/*395059*/            OPC_MoveParent,
/*395060*/            OPC_MoveChild2,
/*395061*/            OPC_CheckImmAllZerosV,
/*395062*/            OPC_MoveParent,
/*395063*/            OPC_CheckType, MVT::v2i64,
/*395065*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*395067*/            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), immAllZerosV:{ *:[v2i64] }) - Complexity = 10
                      // Dst: (VPMAXSQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*395076*/          /*SwitchOpcode*/ 19, TARGET_VAL(ISD::UMAX),// ->395098
/*395079*/            OPC_RecordChild0, // #1 = $src1
/*395080*/            OPC_RecordChild1, // #2 = $src2
/*395081*/            OPC_MoveParent,
/*395082*/            OPC_MoveChild2,
/*395083*/            OPC_CheckImmAllZerosV,
/*395084*/            OPC_MoveParent,
/*395085*/            OPC_CheckType, MVT::v2i64,
/*395087*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*395089*/            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), immAllZerosV:{ *:[v2i64] }) - Complexity = 10
                      // Dst: (VPMAXUQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*395098*/          /*SwitchOpcode*/ 19, TARGET_VAL(ISD::SMIN),// ->395120
/*395101*/            OPC_RecordChild0, // #1 = $src1
/*395102*/            OPC_RecordChild1, // #2 = $src2
/*395103*/            OPC_MoveParent,
/*395104*/            OPC_MoveChild2,
/*395105*/            OPC_CheckImmAllZerosV,
/*395106*/            OPC_MoveParent,
/*395107*/            OPC_CheckType, MVT::v2i64,
/*395109*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*395111*/            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), immAllZerosV:{ *:[v2i64] }) - Complexity = 10
                      // Dst: (VPMINSQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*395120*/          /*SwitchOpcode*/ 19, TARGET_VAL(ISD::UMIN),// ->395142
/*395123*/            OPC_RecordChild0, // #1 = $src1
/*395124*/            OPC_RecordChild1, // #2 = $src2
/*395125*/            OPC_MoveParent,
/*395126*/            OPC_MoveChild2,
/*395127*/            OPC_CheckImmAllZerosV,
/*395128*/            OPC_MoveParent,
/*395129*/            OPC_CheckType, MVT::v2i64,
/*395131*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*395133*/            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), immAllZerosV:{ *:[v2i64] }) - Complexity = 10
                      // Dst: (VPMINUQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*395142*/          /*SwitchOpcode*/ 19, TARGET_VAL(ISD::AND),// ->395164
/*395145*/            OPC_RecordChild0, // #1 = $src1
/*395146*/            OPC_RecordChild1, // #2 = $src2
/*395147*/            OPC_MoveParent,
/*395148*/            OPC_MoveChild2,
/*395149*/            OPC_CheckImmAllZerosV,
/*395150*/            OPC_MoveParent,
/*395151*/            OPC_CheckType, MVT::v2i64,
/*395153*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*395155*/            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), immAllZerosV:{ *:[v2i64] }) - Complexity = 10
                      // Dst: (VPANDQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*395164*/          /*SwitchOpcode*/ 19, TARGET_VAL(ISD::OR),// ->395186
/*395167*/            OPC_RecordChild0, // #1 = $src1
/*395168*/            OPC_RecordChild1, // #2 = $src2
/*395169*/            OPC_MoveParent,
/*395170*/            OPC_MoveChild2,
/*395171*/            OPC_CheckImmAllZerosV,
/*395172*/            OPC_MoveParent,
/*395173*/            OPC_CheckType, MVT::v2i64,
/*395175*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*395177*/            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), immAllZerosV:{ *:[v2i64] }) - Complexity = 10
                      // Dst: (VPORQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*395186*/          /*SwitchOpcode*/ 19, TARGET_VAL(ISD::XOR),// ->395208
/*395189*/            OPC_RecordChild0, // #1 = $src1
/*395190*/            OPC_RecordChild1, // #2 = $src2
/*395191*/            OPC_MoveParent,
/*395192*/            OPC_MoveChild2,
/*395193*/            OPC_CheckImmAllZerosV,
/*395194*/            OPC_MoveParent,
/*395195*/            OPC_CheckType, MVT::v2i64,
/*395197*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*395199*/            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), immAllZerosV:{ *:[v2i64] }) - Complexity = 10
                      // Dst: (VPXORQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*395208*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::ANDNP),// ->395230
/*395211*/            OPC_RecordChild0, // #1 = $src1
/*395212*/            OPC_RecordChild1, // #2 = $src2
/*395213*/            OPC_MoveParent,
/*395214*/            OPC_MoveChild2,
/*395215*/            OPC_CheckImmAllZerosV,
/*395216*/            OPC_MoveParent,
/*395217*/            OPC_CheckType, MVT::v2i64,
/*395219*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*395221*/            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), immAllZerosV:{ *:[v2i64] }) - Complexity = 10
                      // Dst: (VPANDNQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*395230*/          /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::VSHL),// ->395254
/*395233*/            OPC_RecordChild0, // #1 = $src1
/*395234*/            OPC_RecordChild1, // #2 = $src2
/*395235*/            OPC_CheckChild1Type, MVT::v2i64,
/*395237*/            OPC_MoveParent,
/*395238*/            OPC_MoveChild2,
/*395239*/            OPC_CheckImmAllZerosV,
/*395240*/            OPC_MoveParent,
/*395241*/            OPC_CheckType, MVT::v2i64,
/*395243*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*395245*/            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), immAllZerosV:{ *:[v2i64] }) - Complexity = 10
                      // Dst: (VPSLLQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*395254*/          /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::VSRA),// ->395278
/*395257*/            OPC_RecordChild0, // #1 = $src1
/*395258*/            OPC_RecordChild1, // #2 = $src2
/*395259*/            OPC_CheckChild1Type, MVT::v2i64,
/*395261*/            OPC_MoveParent,
/*395262*/            OPC_MoveChild2,
/*395263*/            OPC_CheckImmAllZerosV,
/*395264*/            OPC_MoveParent,
/*395265*/            OPC_CheckType, MVT::v2i64,
/*395267*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*395269*/            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), immAllZerosV:{ *:[v2i64] }) - Complexity = 10
                      // Dst: (VPSRAQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*395278*/          /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::VSRL),// ->395302
/*395281*/            OPC_RecordChild0, // #1 = $src1
/*395282*/            OPC_RecordChild1, // #2 = $src2
/*395283*/            OPC_CheckChild1Type, MVT::v2i64,
/*395285*/            OPC_MoveParent,
/*395286*/            OPC_MoveChild2,
/*395287*/            OPC_CheckImmAllZerosV,
/*395288*/            OPC_MoveParent,
/*395289*/            OPC_CheckType, MVT::v2i64,
/*395291*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*395293*/            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), immAllZerosV:{ *:[v2i64] }) - Complexity = 10
                      // Dst: (VPSRLQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*395302*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::VSHLV),// ->395324
/*395305*/            OPC_RecordChild0, // #1 = $src1
/*395306*/            OPC_RecordChild1, // #2 = $src2
/*395307*/            OPC_MoveParent,
/*395308*/            OPC_MoveChild2,
/*395309*/            OPC_CheckImmAllZerosV,
/*395310*/            OPC_MoveParent,
/*395311*/            OPC_CheckType, MVT::v2i64,
/*395313*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*395315*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVQZ128rrkz), 0,
                          MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vshlv:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), immAllZerosV:{ *:[v2i64] }) - Complexity = 10
                      // Dst: (VPSLLVQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*395324*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::VSRAV),// ->395346
/*395327*/            OPC_RecordChild0, // #1 = $src1
/*395328*/            OPC_RecordChild1, // #2 = $src2
/*395329*/            OPC_MoveParent,
/*395330*/            OPC_MoveChild2,
/*395331*/            OPC_CheckImmAllZerosV,
/*395332*/            OPC_MoveParent,
/*395333*/            OPC_CheckType, MVT::v2i64,
/*395335*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*395337*/            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), immAllZerosV:{ *:[v2i64] }) - Complexity = 10
                      // Dst: (VPSRAVQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*395346*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::VSRLV),// ->395368
/*395349*/            OPC_RecordChild0, // #1 = $src1
/*395350*/            OPC_RecordChild1, // #2 = $src2
/*395351*/            OPC_MoveParent,
/*395352*/            OPC_MoveChild2,
/*395353*/            OPC_CheckImmAllZerosV,
/*395354*/            OPC_MoveParent,
/*395355*/            OPC_CheckType, MVT::v2i64,
/*395357*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*395359*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVQZ128rrkz), 0,
                          MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vsrlv:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2), immAllZerosV:{ *:[v2i64] }) - Complexity = 10
                      // Dst: (VPSRLVQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*395368*/          /*SwitchOpcode*/ 21, TARGET_VAL(ISD::ROTR),// ->395392
/*395371*/            OPC_RecordChild0, // #1 = $src1
/*395372*/            OPC_RecordChild1, // #2 = $src2
/*395373*/            OPC_CheckChild1Type, MVT::v2i64,
/*395375*/            OPC_MoveParent,
/*395376*/            OPC_MoveChild2,
/*395377*/            OPC_CheckImmAllZerosV,
/*395378*/            OPC_MoveParent,
/*395379*/            OPC_CheckType, MVT::v2i64,
/*395381*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*395383*/            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), immAllZerosV:{ *:[v2i64] }) - Complexity = 10
                      // Dst: (VPRORVQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*395392*/          /*SwitchOpcode*/ 21, TARGET_VAL(ISD::ROTL),// ->395416
/*395395*/            OPC_RecordChild0, // #1 = $src1
/*395396*/            OPC_RecordChild1, // #2 = $src2
/*395397*/            OPC_CheckChild1Type, MVT::v2i64,
/*395399*/            OPC_MoveParent,
/*395400*/            OPC_MoveChild2,
/*395401*/            OPC_CheckImmAllZerosV,
/*395402*/            OPC_MoveParent,
/*395403*/            OPC_CheckType, MVT::v2i64,
/*395405*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*395407*/            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), immAllZerosV:{ *:[v2i64] }) - Complexity = 10
                      // Dst: (VPROLVQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*395416*/          /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::VPMADD52L),// ->395440
/*395419*/            OPC_RecordChild0, // #1 = $src2
/*395420*/            OPC_RecordChild1, // #2 = $src3
/*395421*/            OPC_RecordChild2, // #3 = $src1
/*395422*/            OPC_MoveParent,
/*395423*/            OPC_MoveChild2,
/*395424*/            OPC_CheckImmAllZerosV,
/*395425*/            OPC_MoveParent,
/*395426*/            OPC_CheckType, MVT::v2i64,
/*395428*/            OPC_CheckPatternPredicate, 184, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*395430*/            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), immAllZerosV:{ *:[v2i64] }) - Complexity = 10
                      // Dst: (VPMADD52LUQZ128rkz:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src3)
/*395440*/          /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::VPMADD52H),// ->395464
/*395443*/            OPC_RecordChild0, // #1 = $src2
/*395444*/            OPC_RecordChild1, // #2 = $src3
/*395445*/            OPC_RecordChild2, // #3 = $src1
/*395446*/            OPC_MoveParent,
/*395447*/            OPC_MoveChild2,
/*395448*/            OPC_CheckImmAllZerosV,
/*395449*/            OPC_MoveParent,
/*395450*/            OPC_CheckType, MVT::v2i64,
/*395452*/            OPC_CheckPatternPredicate, 184, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*395454*/            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), immAllZerosV:{ *:[v2i64] }) - Complexity = 10
                      // Dst: (VPMADD52HUQZ128rkz:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src3)
/*395464*/          /*SwitchOpcode*/ 41, TARGET_VAL(X86ISD::CVTP2SI),// ->395508
/*395467*/            OPC_RecordChild0, // #1 = $src
/*395468*/            OPC_Scope, 18, /*->395488*/ // 2 children in Scope
/*395470*/              OPC_CheckChild0Type, MVT::v2f64,
/*395472*/              OPC_MoveParent,
/*395473*/              OPC_MoveChild2,
/*395474*/              OPC_CheckImmAllZerosV,
/*395475*/              OPC_MoveParent,
/*395476*/              OPC_CheckType, MVT::v2i64,
/*395478*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*395480*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2QQZ128rrkz), 0,
                            MVT::v2i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86cvtp2Int:{ *:[v2i64] } VR128X:{ *:[v2f64] }:$src), immAllZerosV:{ *:[v2i64] }) - Complexity = 10
                        // Dst: (VCVTPD2QQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*395488*/            /*Scope*/ 18, /*->395507*/
/*395489*/              OPC_CheckChild0Type, MVT::v4f32,
/*395491*/              OPC_MoveParent,
/*395492*/              OPC_MoveChild2,
/*395493*/              OPC_CheckImmAllZerosV,
/*395494*/              OPC_MoveParent,
/*395495*/              OPC_CheckType, MVT::v2i64,
/*395497*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*395499*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2QQZ128rrkz), 0,
                            MVT::v2i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86cvtp2Int:{ *:[v2i64] } VR128X:{ *:[v4f32] }:$src), immAllZerosV:{ *:[v2i64] }) - Complexity = 10
                        // Dst: (VCVTPS2QQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*395507*/            0, /*End of Scope*/
/*395508*/          /*SwitchOpcode*/ 41, TARGET_VAL(X86ISD::CVTP2UI),// ->395552
/*395511*/            OPC_RecordChild0, // #1 = $src
/*395512*/            OPC_Scope, 18, /*->395532*/ // 2 children in Scope
/*395514*/              OPC_CheckChild0Type, MVT::v2f64,
/*395516*/              OPC_MoveParent,
/*395517*/              OPC_MoveChild2,
/*395518*/              OPC_CheckImmAllZerosV,
/*395519*/              OPC_MoveParent,
/*395520*/              OPC_CheckType, MVT::v2i64,
/*395522*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*395524*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UQQZ128rrkz), 0,
                            MVT::v2i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86cvtp2UInt:{ *:[v2i64] } VR128X:{ *:[v2f64] }:$src), immAllZerosV:{ *:[v2i64] }) - Complexity = 10
                        // Dst: (VCVTPD2UQQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*395532*/            /*Scope*/ 18, /*->395551*/
/*395533*/              OPC_CheckChild0Type, MVT::v4f32,
/*395535*/              OPC_MoveParent,
/*395536*/              OPC_MoveChild2,
/*395537*/              OPC_CheckImmAllZerosV,
/*395538*/              OPC_MoveParent,
/*395539*/              OPC_CheckType, MVT::v2i64,
/*395541*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*395543*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UQQZ128rrkz), 0,
                            MVT::v2i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86cvtp2UInt:{ *:[v2i64] } VR128X:{ *:[v4f32] }:$src), immAllZerosV:{ *:[v2i64] }) - Complexity = 10
                        // Dst: (VCVTPS2UQQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*395551*/            0, /*End of Scope*/
/*395552*/          /*SwitchOpcode*/ 45, TARGET_VAL(X86ISD::STRICT_CVTTP2SI),// ->395600
/*395555*/            OPC_RecordNode, // #1 = 'X86strict_cvttp2si' chained node
/*395556*/            OPC_CheckFoldableChainNode,
/*395557*/            OPC_RecordChild1, // #2 = $src
/*395558*/            OPC_Scope, 19, /*->395579*/ // 2 children in Scope
/*395560*/              OPC_CheckChild1Type, MVT::v2f64,
/*395562*/              OPC_MoveParent,
/*395563*/              OPC_MoveChild2,
/*395564*/              OPC_CheckImmAllZerosV,
/*395565*/              OPC_MoveParent,
/*395566*/              OPC_CheckType, MVT::v2i64,
/*395568*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*395570*/              OPC_EmitMergeInputChains1_1,
/*395571*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZ128rrkz), 0|OPFL_Chain,
                            MVT::v2i64, 2/*#Ops*/, 0, 2, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_cvttp2si:{ *:[v2i64] } VR128X:{ *:[v2f64] }:$src), immAllZerosV:{ *:[v2i64] }) - Complexity = 10
                        // Dst: (VCVTTPD2QQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*395579*/            /*Scope*/ 19, /*->395599*/
/*395580*/              OPC_CheckChild1Type, MVT::v4f32,
/*395582*/              OPC_MoveParent,
/*395583*/              OPC_MoveChild2,
/*395584*/              OPC_CheckImmAllZerosV,
/*395585*/              OPC_MoveParent,
/*395586*/              OPC_CheckType, MVT::v2i64,
/*395588*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*395590*/              OPC_EmitMergeInputChains1_1,
/*395591*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZ128rrkz), 0|OPFL_Chain,
                            MVT::v2i64, 2/*#Ops*/, 0, 2, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_cvttp2si:{ *:[v2i64] } VR128X:{ *:[v4f32] }:$src), immAllZerosV:{ *:[v2i64] }) - Complexity = 10
                        // Dst: (VCVTTPS2QQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*395599*/            0, /*End of Scope*/
/*395600*/          /*SwitchOpcode*/ 41, TARGET_VAL(X86ISD::CVTTP2SI),// ->395644
/*395603*/            OPC_RecordChild0, // #1 = $src
/*395604*/            OPC_Scope, 18, /*->395624*/ // 2 children in Scope
/*395606*/              OPC_CheckChild0Type, MVT::v2f64,
/*395608*/              OPC_MoveParent,
/*395609*/              OPC_MoveChild2,
/*395610*/              OPC_CheckImmAllZerosV,
/*395611*/              OPC_MoveParent,
/*395612*/              OPC_CheckType, MVT::v2i64,
/*395614*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*395616*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZ128rrkz), 0,
                            MVT::v2i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86cvttp2si:{ *:[v2i64] } VR128X:{ *:[v2f64] }:$src), immAllZerosV:{ *:[v2i64] }) - Complexity = 10
                        // Dst: (VCVTTPD2QQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*395624*/            /*Scope*/ 18, /*->395643*/
/*395625*/              OPC_CheckChild0Type, MVT::v4f32,
/*395627*/              OPC_MoveParent,
/*395628*/              OPC_MoveChild2,
/*395629*/              OPC_CheckImmAllZerosV,
/*395630*/              OPC_MoveParent,
/*395631*/              OPC_CheckType, MVT::v2i64,
/*395633*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*395635*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZ128rrkz), 0,
                            MVT::v2i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86cvttp2si:{ *:[v2i64] } VR128X:{ *:[v4f32] }:$src), immAllZerosV:{ *:[v2i64] }) - Complexity = 10
                        // Dst: (VCVTTPS2QQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*395643*/            0, /*End of Scope*/
/*395644*/          /*SwitchOpcode*/ 45, TARGET_VAL(X86ISD::STRICT_CVTTP2UI),// ->395692
/*395647*/            OPC_RecordNode, // #1 = 'X86strict_cvttp2ui' chained node
/*395648*/            OPC_CheckFoldableChainNode,
/*395649*/            OPC_RecordChild1, // #2 = $src
/*395650*/            OPC_Scope, 19, /*->395671*/ // 2 children in Scope
/*395652*/              OPC_CheckChild1Type, MVT::v2f64,
/*395654*/              OPC_MoveParent,
/*395655*/              OPC_MoveChild2,
/*395656*/              OPC_CheckImmAllZerosV,
/*395657*/              OPC_MoveParent,
/*395658*/              OPC_CheckType, MVT::v2i64,
/*395660*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*395662*/              OPC_EmitMergeInputChains1_1,
/*395663*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZ128rrkz), 0|OPFL_Chain,
                            MVT::v2i64, 2/*#Ops*/, 0, 2, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_cvttp2ui:{ *:[v2i64] } VR128X:{ *:[v2f64] }:$src), immAllZerosV:{ *:[v2i64] }) - Complexity = 10
                        // Dst: (VCVTTPD2UQQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*395671*/            /*Scope*/ 19, /*->395691*/
/*395672*/              OPC_CheckChild1Type, MVT::v4f32,
/*395674*/              OPC_MoveParent,
/*395675*/              OPC_MoveChild2,
/*395676*/              OPC_CheckImmAllZerosV,
/*395677*/              OPC_MoveParent,
/*395678*/              OPC_CheckType, MVT::v2i64,
/*395680*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*395682*/              OPC_EmitMergeInputChains1_1,
/*395683*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZ128rrkz), 0|OPFL_Chain,
                            MVT::v2i64, 2/*#Ops*/, 0, 2, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_cvttp2ui:{ *:[v2i64] } VR128X:{ *:[v4f32] }:$src), immAllZerosV:{ *:[v2i64] }) - Complexity = 10
                        // Dst: (VCVTTPS2UQQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*395691*/            0, /*End of Scope*/
/*395692*/          /*SwitchOpcode*/ 41, TARGET_VAL(X86ISD::CVTTP2UI),// ->395736
/*395695*/            OPC_RecordChild0, // #1 = $src
/*395696*/            OPC_Scope, 18, /*->395716*/ // 2 children in Scope
/*395698*/              OPC_CheckChild0Type, MVT::v2f64,
/*395700*/              OPC_MoveParent,
/*395701*/              OPC_MoveChild2,
/*395702*/              OPC_CheckImmAllZerosV,
/*395703*/              OPC_MoveParent,
/*395704*/              OPC_CheckType, MVT::v2i64,
/*395706*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*395708*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZ128rrkz), 0,
                            MVT::v2i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86cvttp2ui:{ *:[v2i64] } VR128X:{ *:[v2f64] }:$src), immAllZerosV:{ *:[v2i64] }) - Complexity = 10
                        // Dst: (VCVTTPD2UQQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*395716*/            /*Scope*/ 18, /*->395735*/
/*395717*/              OPC_CheckChild0Type, MVT::v4f32,
/*395719*/              OPC_MoveParent,
/*395720*/              OPC_MoveChild2,
/*395721*/              OPC_CheckImmAllZerosV,
/*395722*/              OPC_MoveParent,
/*395723*/              OPC_CheckType, MVT::v2i64,
/*395725*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*395727*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZ128rrkz), 0,
                            MVT::v2i64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86cvttp2ui:{ *:[v2i64] } VR128X:{ *:[v4f32] }:$src), immAllZerosV:{ *:[v2i64] }) - Complexity = 10
                        // Dst: (VCVTTPS2UQQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*395735*/            0, /*End of Scope*/
/*395736*/          /*SwitchOpcode*/ 60, TARGET_VAL(ISD::ZERO_EXTEND_VECTOR_INREG),// ->395799
/*395739*/            OPC_RecordChild0, // #1 = $src
/*395740*/            OPC_Scope, 18, /*->395760*/ // 3 children in Scope
/*395742*/              OPC_CheckChild0Type, MVT::v16i8,
/*395744*/              OPC_MoveParent,
/*395745*/              OPC_MoveChild2,
/*395746*/              OPC_CheckImmAllZerosV,
/*395747*/              OPC_MoveParent,
/*395748*/              OPC_CheckType, MVT::v2i64,
/*395750*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*395752*/              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), immAllZerosV:{ *:[v2i64] }) - Complexity = 10
                        // Dst: (VPMOVZXBQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*395760*/            /*Scope*/ 18, /*->395779*/
/*395761*/              OPC_CheckChild0Type, MVT::v8i16,
/*395763*/              OPC_MoveParent,
/*395764*/              OPC_MoveChild2,
/*395765*/              OPC_CheckImmAllZerosV,
/*395766*/              OPC_MoveParent,
/*395767*/              OPC_CheckType, MVT::v2i64,
/*395769*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*395771*/              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), immAllZerosV:{ *:[v2i64] }) - Complexity = 10
                        // Dst: (VPMOVZXWQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/*395779*/            /*Scope*/ 18, /*->395798*/
/*395780*/              OPC_CheckChild0Type, MVT::v4i32,
/*395782*/              OPC_MoveParent,
/*395783*/              OPC_MoveChild2,
/*395784*/              OPC_CheckImmAllZerosV,
/*395785*/              OPC_MoveParent,
/*395786*/              OPC_CheckType, MVT::v2i64,
/*395788*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*395790*/              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), immAllZerosV:{ *:[v2i64] }) - Complexity = 10
                        // Dst: (VPMOVZXDQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*395798*/            0, /*End of Scope*/
/*395799*/          /*SwitchOpcode*/ 60, TARGET_VAL(ISD::SIGN_EXTEND_VECTOR_INREG),// ->395862
/*395802*/            OPC_RecordChild0, // #1 = $src
/*395803*/            OPC_Scope, 18, /*->395823*/ // 3 children in Scope
/*395805*/              OPC_CheckChild0Type, MVT::v16i8,
/*395807*/              OPC_MoveParent,
/*395808*/              OPC_MoveChild2,
/*395809*/              OPC_CheckImmAllZerosV,
/*395810*/              OPC_MoveParent,
/*395811*/              OPC_CheckType, MVT::v2i64,
/*395813*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*395815*/              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), immAllZerosV:{ *:[v2i64] }) - Complexity = 10
                        // Dst: (VPMOVSXBQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*395823*/            /*Scope*/ 18, /*->395842*/
/*395824*/              OPC_CheckChild0Type, MVT::v8i16,
/*395826*/              OPC_MoveParent,
/*395827*/              OPC_MoveChild2,
/*395828*/              OPC_CheckImmAllZerosV,
/*395829*/              OPC_MoveParent,
/*395830*/              OPC_CheckType, MVT::v2i64,
/*395832*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*395834*/              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), immAllZerosV:{ *:[v2i64] }) - Complexity = 10
                        // Dst: (VPMOVSXWQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/*395842*/            /*Scope*/ 18, /*->395861*/
/*395843*/              OPC_CheckChild0Type, MVT::v4i32,
/*395845*/              OPC_MoveParent,
/*395846*/              OPC_MoveChild2,
/*395847*/              OPC_CheckImmAllZerosV,
/*395848*/              OPC_MoveParent,
/*395849*/              OPC_CheckType, MVT::v2i64,
/*395851*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*395853*/              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), immAllZerosV:{ *:[v2i64] }) - Complexity = 10
                        // Dst: (VPMOVSXDQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*395861*/            0, /*End of Scope*/
/*395862*/          /*SwitchOpcode*/ 17, TARGET_VAL(ISD::ABS),// ->395882
/*395865*/            OPC_RecordChild0, // #1 = $src1
/*395866*/            OPC_MoveParent,
/*395867*/            OPC_MoveChild2,
/*395868*/            OPC_CheckImmAllZerosV,
/*395869*/            OPC_MoveParent,
/*395870*/            OPC_CheckType, MVT::v2i64,
/*395872*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*395874*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSQZ128rrkz), 0,
                          MVT::v2i64, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (abs:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1), immAllZerosV:{ *:[v2i64] }) - Complexity = 10
                      // Dst: (VPABSQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1)
/*395882*/          /*SwitchOpcode*/ 19, TARGET_VAL(ISD::CTLZ),// ->395904
/*395885*/            OPC_RecordChild0, // #1 = $src1
/*395886*/            OPC_CheckChild0Type, MVT::v2i64,
/*395888*/            OPC_MoveParent,
/*395889*/            OPC_MoveChild2,
/*395890*/            OPC_CheckImmAllZerosV,
/*395891*/            OPC_MoveParent,
/*395892*/            OPC_CheckType, MVT::v2i64,
/*395894*/            OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*395896*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPLZCNTQZ128rrkz), 0,
                          MVT::v2i64, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (ctlz:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1), immAllZerosV:{ *:[v2i64] }) - Complexity = 10
                      // Dst: (VPLZCNTQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1)
/*395904*/          /*SwitchOpcode*/ 17, TARGET_VAL(X86ISD::CONFLICT),// ->395924
/*395907*/            OPC_RecordChild0, // #1 = $src1
/*395908*/            OPC_MoveParent,
/*395909*/            OPC_MoveChild2,
/*395910*/            OPC_CheckImmAllZerosV,
/*395911*/            OPC_MoveParent,
/*395912*/            OPC_CheckType, MVT::v2i64,
/*395914*/            OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*395916*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTQZ128rrkz), 0,
                          MVT::v2i64, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86Conflict:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1), immAllZerosV:{ *:[v2i64] }) - Complexity = 10
                      // Dst: (VPCONFLICTQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1)
/*395924*/          /*SwitchOpcode*/ 19, TARGET_VAL(ISD::CTPOP),// ->395946
/*395927*/            OPC_RecordChild0, // #1 = $src1
/*395928*/            OPC_CheckChild0Type, MVT::v2i64,
/*395930*/            OPC_MoveParent,
/*395931*/            OPC_MoveChild2,
/*395932*/            OPC_CheckImmAllZerosV,
/*395933*/            OPC_MoveParent,
/*395934*/            OPC_CheckType, MVT::v2i64,
/*395936*/            OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/*395938*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTQZ128rrkz), 0,
                          MVT::v2i64, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (ctpop:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1), immAllZerosV:{ *:[v2i64] }) - Complexity = 10
                      // Dst: (VPOPCNTQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1)
/*395946*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::UNPCKL),// ->395968
/*395949*/            OPC_RecordChild0, // #1 = $src1
/*395950*/            OPC_RecordChild1, // #2 = $src2
/*395951*/            OPC_MoveParent,
/*395952*/            OPC_MoveChild2,
/*395953*/            OPC_CheckImmAllZerosV,
/*395954*/            OPC_MoveParent,
/*395955*/            OPC_CheckType, MVT::v2i64,
/*395957*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*395959*/            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), immAllZerosV:{ *:[v2i64] }) - Complexity = 10
                      // Dst: (VPUNPCKLQDQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*395968*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::UNPCKH),// ->395990
/*395971*/            OPC_RecordChild0, // #1 = $src1
/*395972*/            OPC_RecordChild1, // #2 = $src2
/*395973*/            OPC_MoveParent,
/*395974*/            OPC_MoveChild2,
/*395975*/            OPC_CheckImmAllZerosV,
/*395976*/            OPC_MoveParent,
/*395977*/            OPC_CheckType, MVT::v2i64,
/*395979*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*395981*/            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), immAllZerosV:{ *:[v2i64] }) - Complexity = 10
                      // Dst: (VPUNPCKHQDQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*395990*/          /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::VSHLDV),// ->396014
/*395993*/            OPC_RecordChild0, // #1 = $src1
/*395994*/            OPC_RecordChild1, // #2 = $src2
/*395995*/            OPC_RecordChild2, // #3 = $src3
/*395996*/            OPC_MoveParent,
/*395997*/            OPC_MoveChild2,
/*395998*/            OPC_CheckImmAllZerosV,
/*395999*/            OPC_MoveParent,
/*396000*/            OPC_CheckType, MVT::v2i64,
/*396002*/            OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*396004*/            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), immAllZerosV:{ *:[v2i64] }) - Complexity = 10
                      // Dst: (VPSHLDVQZ128rkz:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src3)
/*396014*/          /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::VSHRDV),// ->396038
/*396017*/            OPC_RecordChild0, // #1 = $src1
/*396018*/            OPC_RecordChild1, // #2 = $src2
/*396019*/            OPC_RecordChild2, // #3 = $src3
/*396020*/            OPC_MoveParent,
/*396021*/            OPC_MoveChild2,
/*396022*/            OPC_CheckImmAllZerosV,
/*396023*/            OPC_MoveParent,
/*396024*/            OPC_CheckType, MVT::v2i64,
/*396026*/            OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*396028*/            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), immAllZerosV:{ *:[v2i64] }) - Complexity = 10
                      // Dst: (VPSHRDVQZ128rkz:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src3)
/*396038*/          /*SwitchOpcode*/ 3|128,2/*259*/, TARGET_VAL(ISD::BITCAST),// ->396301
/*396042*/            OPC_MoveChild0,
/*396043*/            OPC_SwitchOpcode /*4 cases */, 61, TARGET_VAL(ISD::AND),// ->396108
/*396047*/              OPC_RecordChild0, // #1 = $src1
/*396048*/              OPC_RecordChild1, // #2 = $src2
/*396049*/              OPC_SwitchType /*3 cases */, 17, MVT::v4i32,// ->396069
/*396052*/                OPC_MoveParent,
/*396053*/                OPC_MoveParent,
/*396054*/                OPC_RecordChild2, // #3 = $src0
/*396055*/                OPC_CheckType, MVT::v2i64,
/*396057*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*396059*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ128rrk), 0,
                              MVT::v2i64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2i64] } (and:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 9
                          // Dst: (VPANDQZ128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*396069*/              /*SwitchType*/ 17, MVT::v8i16,// ->396088
/*396071*/                OPC_MoveParent,
/*396072*/                OPC_MoveParent,
/*396073*/                OPC_RecordChild2, // #3 = $src0
/*396074*/                OPC_CheckType, MVT::v2i64,
/*396076*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*396078*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ128rrk), 0,
                              MVT::v2i64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2i64] } (and:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 9
                          // Dst: (VPANDQZ128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*396088*/              /*SwitchType*/ 17, MVT::v16i8,// ->396107
/*396090*/                OPC_MoveParent,
/*396091*/                OPC_MoveParent,
/*396092*/                OPC_RecordChild2, // #3 = $src0
/*396093*/                OPC_CheckType, MVT::v2i64,
/*396095*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*396097*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ128rrk), 0,
                              MVT::v2i64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2i64] } (and:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 9
                          // Dst: (VPANDQZ128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*396107*/              0, // EndSwitchType
/*396108*/            /*SwitchOpcode*/ 61, TARGET_VAL(ISD::OR),// ->396172
/*396111*/              OPC_RecordChild0, // #1 = $src1
/*396112*/              OPC_RecordChild1, // #2 = $src2
/*396113*/              OPC_SwitchType /*3 cases */, 17, MVT::v4i32,// ->396133
/*396116*/                OPC_MoveParent,
/*396117*/                OPC_MoveParent,
/*396118*/                OPC_RecordChild2, // #3 = $src0
/*396119*/                OPC_CheckType, MVT::v2i64,
/*396121*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*396123*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ128rrk), 0,
                              MVT::v2i64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2i64] } (or:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 9
                          // Dst: (VPORQZ128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*396133*/              /*SwitchType*/ 17, MVT::v8i16,// ->396152
/*396135*/                OPC_MoveParent,
/*396136*/                OPC_MoveParent,
/*396137*/                OPC_RecordChild2, // #3 = $src0
/*396138*/                OPC_CheckType, MVT::v2i64,
/*396140*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*396142*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ128rrk), 0,
                              MVT::v2i64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2i64] } (or:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 9
                          // Dst: (VPORQZ128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*396152*/              /*SwitchType*/ 17, MVT::v16i8,// ->396171
/*396154*/                OPC_MoveParent,
/*396155*/                OPC_MoveParent,
/*396156*/                OPC_RecordChild2, // #3 = $src0
/*396157*/                OPC_CheckType, MVT::v2i64,
/*396159*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*396161*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ128rrk), 0,
                              MVT::v2i64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2i64] } (or:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 9
                          // Dst: (VPORQZ128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*396171*/              0, // EndSwitchType
/*396172*/            /*SwitchOpcode*/ 61, TARGET_VAL(ISD::XOR),// ->396236
/*396175*/              OPC_RecordChild0, // #1 = $src1
/*396176*/              OPC_RecordChild1, // #2 = $src2
/*396177*/              OPC_SwitchType /*3 cases */, 17, MVT::v4i32,// ->396197
/*396180*/                OPC_MoveParent,
/*396181*/                OPC_MoveParent,
/*396182*/                OPC_RecordChild2, // #3 = $src0
/*396183*/                OPC_CheckType, MVT::v2i64,
/*396185*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*396187*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ128rrk), 0,
                              MVT::v2i64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2i64] } (xor:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 9
                          // Dst: (VPXORQZ128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*396197*/              /*SwitchType*/ 17, MVT::v8i16,// ->396216
/*396199*/                OPC_MoveParent,
/*396200*/                OPC_MoveParent,
/*396201*/                OPC_RecordChild2, // #3 = $src0
/*396202*/                OPC_CheckType, MVT::v2i64,
/*396204*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*396206*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ128rrk), 0,
                              MVT::v2i64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2i64] } (xor:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 9
                          // Dst: (VPXORQZ128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*396216*/              /*SwitchType*/ 17, MVT::v16i8,// ->396235
/*396218*/                OPC_MoveParent,
/*396219*/                OPC_MoveParent,
/*396220*/                OPC_RecordChild2, // #3 = $src0
/*396221*/                OPC_CheckType, MVT::v2i64,
/*396223*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*396225*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ128rrk), 0,
                              MVT::v2i64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2i64] } (xor:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 9
                          // Dst: (VPXORQZ128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*396235*/              0, // EndSwitchType
/*396236*/            /*SwitchOpcode*/ 61, TARGET_VAL(X86ISD::ANDNP),// ->396300
/*396239*/              OPC_RecordChild0, // #1 = $src1
/*396240*/              OPC_RecordChild1, // #2 = $src2
/*396241*/              OPC_SwitchType /*3 cases */, 17, MVT::v4i32,// ->396261
/*396244*/                OPC_MoveParent,
/*396245*/                OPC_MoveParent,
/*396246*/                OPC_RecordChild2, // #3 = $src0
/*396247*/                OPC_CheckType, MVT::v2i64,
/*396249*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*396251*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZ128rrk), 0,
                              MVT::v2i64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2i64] } (X86andnp:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 9
                          // Dst: (VPANDNQZ128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*396261*/              /*SwitchType*/ 17, MVT::v8i16,// ->396280
/*396263*/                OPC_MoveParent,
/*396264*/                OPC_MoveParent,
/*396265*/                OPC_RecordChild2, // #3 = $src0
/*396266*/                OPC_CheckType, MVT::v2i64,
/*396268*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*396270*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZ128rrk), 0,
                              MVT::v2i64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2i64] } (X86andnp:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 9
                          // Dst: (VPANDNQZ128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*396280*/              /*SwitchType*/ 17, MVT::v16i8,// ->396299
/*396282*/                OPC_MoveParent,
/*396283*/                OPC_MoveParent,
/*396284*/                OPC_RecordChild2, // #3 = $src0
/*396285*/                OPC_CheckType, MVT::v2i64,
/*396287*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*396289*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZ128rrk), 0,
                              MVT::v2i64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2i64] } (X86andnp:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)), VR128X:{ *:[v2i64] }:$src0) - Complexity = 9
                          // Dst: (VPANDNQZ128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*396299*/              0, // EndSwitchType
/*396300*/            0, // EndSwitchOpcode
/*396301*/          /*SwitchOpcode*/ 23, TARGET_VAL(X86ISD::VSRLI),// ->396327
/*396304*/            OPC_RecordChild0, // #1 = $src1
/*396305*/            OPC_RecordChild1, // #2 = $src2
/*396306*/            OPC_MoveChild1,
/*396307*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*396310*/            OPC_MoveParent,
/*396311*/            OPC_MoveParent,
/*396312*/            OPC_RecordChild2, // #3 = $src0
/*396313*/            OPC_CheckType, MVT::v2i64,
/*396315*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*396317*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZ128rik), 0,
                          MVT::v2i64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vsrli:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (timm:{ *:[i8] }):$src2), VR128X:{ *:[v2i64] }:$src0) - Complexity = 9
                      // Dst: (VPSRLQZ128rik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, (timm:{ *:[i8] }):$src2)
/*396327*/          /*SwitchOpcode*/ 23, TARGET_VAL(X86ISD::VSHLI),// ->396353
/*396330*/            OPC_RecordChild0, // #1 = $src1
/*396331*/            OPC_RecordChild1, // #2 = $src2
/*396332*/            OPC_MoveChild1,
/*396333*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*396336*/            OPC_MoveParent,
/*396337*/            OPC_MoveParent,
/*396338*/            OPC_RecordChild2, // #3 = $src0
/*396339*/            OPC_CheckType, MVT::v2i64,
/*396341*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*396343*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZ128rik), 0,
                          MVT::v2i64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vshli:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (timm:{ *:[i8] }):$src2), VR128X:{ *:[v2i64] }:$src0) - Complexity = 9
                      // Dst: (VPSLLQZ128rik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, (timm:{ *:[i8] }):$src2)
/*396353*/          /*SwitchOpcode*/ 23, TARGET_VAL(X86ISD::VSRAI),// ->396379
/*396356*/            OPC_RecordChild0, // #1 = $src1
/*396357*/            OPC_RecordChild1, // #2 = $src2
/*396358*/            OPC_MoveChild1,
/*396359*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*396362*/            OPC_MoveParent,
/*396363*/            OPC_MoveParent,
/*396364*/            OPC_RecordChild2, // #3 = $src0
/*396365*/            OPC_CheckType, MVT::v2i64,
/*396367*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*396369*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZ128rik), 0,
                          MVT::v2i64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vsrai:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (timm:{ *:[i8] }):$src2), VR128X:{ *:[v2i64] }:$src0) - Complexity = 9
                      // Dst: (VPSRAQZ128rik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, (timm:{ *:[i8] }):$src2)
/*396379*/          /*SwitchOpcode*/ 23, TARGET_VAL(X86ISD::VROTRI),// ->396405
/*396382*/            OPC_RecordChild0, // #1 = $src1
/*396383*/            OPC_RecordChild1, // #2 = $src2
/*396384*/            OPC_MoveChild1,
/*396385*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*396388*/            OPC_MoveParent,
/*396389*/            OPC_MoveParent,
/*396390*/            OPC_RecordChild2, // #3 = $src0
/*396391*/            OPC_CheckType, MVT::v2i64,
/*396393*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*396395*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORQZ128rik), 0,
                          MVT::v2i64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vrotri:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (timm:{ *:[i8] }):$src2), VR128X:{ *:[v2i64] }:$src0) - Complexity = 9
                      // Dst: (VPRORQZ128rik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, (timm:{ *:[i8] }):$src2)
/*396405*/          /*SwitchOpcode*/ 23, TARGET_VAL(X86ISD::VROTLI),// ->396431
/*396408*/            OPC_RecordChild0, // #1 = $src1
/*396409*/            OPC_RecordChild1, // #2 = $src2
/*396410*/            OPC_MoveChild1,
/*396411*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*396414*/            OPC_MoveParent,
/*396415*/            OPC_MoveParent,
/*396416*/            OPC_RecordChild2, // #3 = $src0
/*396417*/            OPC_CheckType, MVT::v2i64,
/*396419*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*396421*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLQZ128rik), 0,
                          MVT::v2i64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vrotli:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (timm:{ *:[i8] }):$src2), VR128X:{ *:[v2i64] }:$src0) - Complexity = 9
                      // Dst: (VPROLQZ128rik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, (timm:{ *:[i8] }):$src2)
/*396431*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::VALIGN),// ->396459
/*396434*/            OPC_RecordChild0, // #1 = $src1
/*396435*/            OPC_RecordChild1, // #2 = $src2
/*396436*/            OPC_RecordChild2, // #3 = $src3
/*396437*/            OPC_MoveChild2,
/*396438*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*396441*/            OPC_MoveParent,
/*396442*/            OPC_MoveParent,
/*396443*/            OPC_RecordChild2, // #4 = $src0
/*396444*/            OPC_CheckType, MVT::v2i64,
/*396446*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*396448*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNQZ128rrik), 0,
                          MVT::v2i64, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86VAlign:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (timm:{ *:[i8] }):$src3), VR128X:{ *:[v2i64] }:$src0) - Complexity = 9
                      // Dst: (VALIGNQZ128rrik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (timm:{ *:[i8] }):$src3)
/*396459*/          /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VPTERNLOG),// ->396530
/*396462*/            OPC_RecordChild0, // #1 = $src1
/*396463*/            OPC_RecordChild1, // #2 = $src2
/*396464*/            OPC_RecordChild2, // #3 = $src3
/*396465*/            OPC_RecordChild3, // #4 = $src4
/*396466*/            OPC_MoveChild3,
/*396467*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*396470*/            OPC_MoveParent,
/*396471*/            OPC_MoveParent,
/*396472*/            OPC_CheckType, MVT::v2i64,
/*396474*/            OPC_Scope, 15, /*->396491*/ // 3 children in Scope
/*396476*/              OPC_CheckChild2Same, 1,
/*396478*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*396480*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rrik), 0,
                            MVT::v2i64, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vpternlog:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src3, (timm:{ *:[i8] }):$src4), VR128X:{ *:[v2i64] }:$src1) - Complexity = 9
                        // Dst: (VPTERNLOGQZ128rrik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src3, (timm:{ *:[i8] }):$src4)
/*396491*/            /*Scope*/ 18, /*->396510*/
/*396492*/              OPC_CheckChild2Same, 3,
/*396494*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*396496*/              OPC_EmitNodeXForm, 19, 4, // VPTERNLOG321_imm8
/*396499*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rrik), 0,
                            MVT::v2i64, 5/*#Ops*/, 3, 0, 2, 1, 5, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vpternlog:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src3, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src1, (timm:{ *:[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] } (timm:{ *:[i8] }):$src4))
/*396510*/            /*Scope*/ 18, /*->396529*/
/*396511*/              OPC_CheckChild2Same, 2,
/*396513*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*396515*/              OPC_EmitNodeXForm, 21, 4, // VPTERNLOG213_imm8
/*396518*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rrik), 0,
                            MVT::v2i64, 5/*#Ops*/, 2, 0, 1, 3, 5, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vpternlog:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src3, (timm:{ *:[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] } (timm:{ *:[i8] }):$src4))
/*396529*/            0, /*End of Scope*/
/*396530*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::VSHLD),// ->396558
/*396533*/            OPC_RecordChild0, // #1 = $src1
/*396534*/            OPC_RecordChild1, // #2 = $src2
/*396535*/            OPC_RecordChild2, // #3 = $src3
/*396536*/            OPC_MoveChild2,
/*396537*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*396540*/            OPC_MoveParent,
/*396541*/            OPC_MoveParent,
/*396542*/            OPC_RecordChild2, // #4 = $src0
/*396543*/            OPC_CheckType, MVT::v2i64,
/*396545*/            OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*396547*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDQZ128rrik), 0,
                          MVT::v2i64, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86VShld:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (timm:{ *:[i8] }):$src3), VR128X:{ *:[v2i64] }:$src0) - Complexity = 9
                      // Dst: (VPSHLDQZ128rrik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (timm:{ *:[i8] }):$src3)
/*396558*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::VSHRD),// ->396586
/*396561*/            OPC_RecordChild0, // #1 = $src1
/*396562*/            OPC_RecordChild1, // #2 = $src2
/*396563*/            OPC_RecordChild2, // #3 = $src3
/*396564*/            OPC_MoveChild2,
/*396565*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*396568*/            OPC_MoveParent,
/*396569*/            OPC_MoveParent,
/*396570*/            OPC_RecordChild2, // #4 = $src0
/*396571*/            OPC_CheckType, MVT::v2i64,
/*396573*/            OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*396575*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDQZ128rrik), 0,
                          MVT::v2i64, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86VShrd:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (timm:{ *:[i8] }):$src3), VR128X:{ *:[v2i64] }:$src0) - Complexity = 9
                      // Dst: (VPSHRDQZ128rrik:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (timm:{ *:[i8] }):$src3)
/*396586*/          0, // EndSwitchOpcode
/*396587*/        /*Scope*/ 70, /*->396658*/
/*396588*/          OPC_RecordChild1, // #1 = $src
/*396589*/          OPC_MoveChild2,
/*396590*/          OPC_CheckImmAllZerosV,
/*396591*/          OPC_MoveParent,
/*396592*/          OPC_CheckType, MVT::v2i64,
/*396594*/          OPC_Scope, 10, /*->396606*/ // 2 children in Scope
/*396596*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*396598*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Z128rrkz), 0,
                          MVT::v2i64, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src, immAllZerosV:{ *:[v2i64] }) - Complexity = 7
                      // Dst: (VMOVDQA64Z128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*396606*/          /*Scope*/ 50, /*->396657*/
/*396607*/            OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*396609*/            OPC_EmitInteger, MVT::i32, X86::VK8WMRegClassID,
/*396612*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*396620*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #4
/*396626*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*396629*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 4, 1, 5,  // Results = #6
/*396638*/            OPC_EmitNode1, TARGET_VAL(X86::VMOVDQA64Zrrkz), 0,
                          MVT::v8i64, 2/*#Ops*/, 3, 6,  // Results = #7
/*396646*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*396649*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v2i64, 2/*#Ops*/, 7, 8, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, immAllZerosV:{ *:[v2i64] }) - Complexity = 7
                      // 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] })
/*396657*/          0, /*End of Scope*/
/*396658*/        /*Scope*/ 107|128,8/*1131*/, /*->397791*/
/*396660*/          OPC_MoveChild1,
/*396661*/          OPC_SwitchOpcode /*41 cases */, 39, TARGET_VAL(X86ISD::VBROADCAST),// ->396704
/*396665*/            OPC_RecordChild0, // #1 = $src
/*396666*/            OPC_Scope, 17, /*->396685*/ // 2 children in Scope
/*396668*/              OPC_CheckChild0Type, MVT::i64,
/*396670*/              OPC_MoveParent,
/*396671*/              OPC_RecordChild2, // #2 = $src0
/*396672*/              OPC_CheckType, MVT::v2i64,
/*396674*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*396676*/              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)
/*396685*/            /*Scope*/ 17, /*->396703*/
/*396686*/              OPC_CheckChild0Type, MVT::v2i64,
/*396688*/              OPC_MoveParent,
/*396689*/              OPC_RecordChild2, // #2 = $src0
/*396690*/              OPC_CheckType, MVT::v2i64,
/*396692*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*396694*/              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)
/*396703*/            0, /*End of Scope*/
/*396704*/          /*SwitchOpcode*/ 38, TARGET_VAL(X86ISD::VPERMV3),// ->396745
/*396707*/            OPC_RecordChild0, // #1 = $src2
/*396708*/            OPC_RecordChild1, // #2 = $src1
/*396709*/            OPC_RecordChild2, // #3 = $src3
/*396710*/            OPC_MoveParent,
/*396711*/            OPC_CheckType, MVT::v2i64,
/*396713*/            OPC_Scope, 14, /*->396729*/ // 2 children in Scope
/*396715*/              OPC_CheckChild2Same, 2,
/*396717*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*396719*/              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)
/*396729*/            /*Scope*/ 14, /*->396744*/
/*396730*/              OPC_CheckChild2Same, 1,
/*396732*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*396734*/              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)
/*396744*/            0, /*End of Scope*/
/*396745*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::ADD),// ->396766
/*396748*/            OPC_RecordChild0, // #1 = $src1
/*396749*/            OPC_RecordChild1, // #2 = $src2
/*396750*/            OPC_MoveParent,
/*396751*/            OPC_RecordChild2, // #3 = $src0
/*396752*/            OPC_CheckType, MVT::v2i64,
/*396754*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*396756*/            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)
/*396766*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::SUB),// ->396787
/*396769*/            OPC_RecordChild0, // #1 = $src1
/*396770*/            OPC_RecordChild1, // #2 = $src2
/*396771*/            OPC_MoveParent,
/*396772*/            OPC_RecordChild2, // #3 = $src0
/*396773*/            OPC_CheckType, MVT::v2i64,
/*396775*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*396777*/            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)
/*396787*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::MUL),// ->396808
/*396790*/            OPC_RecordChild0, // #1 = $src1
/*396791*/            OPC_RecordChild1, // #2 = $src2
/*396792*/            OPC_MoveParent,
/*396793*/            OPC_RecordChild2, // #3 = $src0
/*396794*/            OPC_CheckType, MVT::v2i64,
/*396796*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*396798*/            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)
/*396808*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::PMULDQ),// ->396829
/*396811*/            OPC_RecordChild0, // #1 = $src1
/*396812*/            OPC_RecordChild1, // #2 = $src2
/*396813*/            OPC_MoveParent,
/*396814*/            OPC_RecordChild2, // #3 = $src0
/*396815*/            OPC_CheckType, MVT::v2i64,
/*396817*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*396819*/            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)
/*396829*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::PMULUDQ),// ->396850
/*396832*/            OPC_RecordChild0, // #1 = $src1
/*396833*/            OPC_RecordChild1, // #2 = $src2
/*396834*/            OPC_MoveParent,
/*396835*/            OPC_RecordChild2, // #3 = $src0
/*396836*/            OPC_CheckType, MVT::v2i64,
/*396838*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*396840*/            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)
/*396850*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::SMAX),// ->396871
/*396853*/            OPC_RecordChild0, // #1 = $src1
/*396854*/            OPC_RecordChild1, // #2 = $src2
/*396855*/            OPC_MoveParent,
/*396856*/            OPC_RecordChild2, // #3 = $src0
/*396857*/            OPC_CheckType, MVT::v2i64,
/*396859*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*396861*/            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)
/*396871*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::UMAX),// ->396892
/*396874*/            OPC_RecordChild0, // #1 = $src1
/*396875*/            OPC_RecordChild1, // #2 = $src2
/*396876*/            OPC_MoveParent,
/*396877*/            OPC_RecordChild2, // #3 = $src0
/*396878*/            OPC_CheckType, MVT::v2i64,
/*396880*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*396882*/            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)
/*396892*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::SMIN),// ->396913
/*396895*/            OPC_RecordChild0, // #1 = $src1
/*396896*/            OPC_RecordChild1, // #2 = $src2
/*396897*/            OPC_MoveParent,
/*396898*/            OPC_RecordChild2, // #3 = $src0
/*396899*/            OPC_CheckType, MVT::v2i64,
/*396901*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*396903*/            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)
/*396913*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::UMIN),// ->396934
/*396916*/            OPC_RecordChild0, // #1 = $src1
/*396917*/            OPC_RecordChild1, // #2 = $src2
/*396918*/            OPC_MoveParent,
/*396919*/            OPC_RecordChild2, // #3 = $src0
/*396920*/            OPC_CheckType, MVT::v2i64,
/*396922*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*396924*/            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)
/*396934*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::AND),// ->396955
/*396937*/            OPC_RecordChild0, // #1 = $src1
/*396938*/            OPC_RecordChild1, // #2 = $src2
/*396939*/            OPC_MoveParent,
/*396940*/            OPC_RecordChild2, // #3 = $src0
/*396941*/            OPC_CheckType, MVT::v2i64,
/*396943*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*396945*/            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)
/*396955*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::OR),// ->396976
/*396958*/            OPC_RecordChild0, // #1 = $src1
/*396959*/            OPC_RecordChild1, // #2 = $src2
/*396960*/            OPC_MoveParent,
/*396961*/            OPC_RecordChild2, // #3 = $src0
/*396962*/            OPC_CheckType, MVT::v2i64,
/*396964*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*396966*/            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)
/*396976*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::XOR),// ->396997
/*396979*/            OPC_RecordChild0, // #1 = $src1
/*396980*/            OPC_RecordChild1, // #2 = $src2
/*396981*/            OPC_MoveParent,
/*396982*/            OPC_RecordChild2, // #3 = $src0
/*396983*/            OPC_CheckType, MVT::v2i64,
/*396985*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*396987*/            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)
/*396997*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::ANDNP),// ->397018
/*397000*/            OPC_RecordChild0, // #1 = $src1
/*397001*/            OPC_RecordChild1, // #2 = $src2
/*397002*/            OPC_MoveParent,
/*397003*/            OPC_RecordChild2, // #3 = $src0
/*397004*/            OPC_CheckType, MVT::v2i64,
/*397006*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*397008*/            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)
/*397018*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::VSHL),// ->397041
/*397021*/            OPC_RecordChild0, // #1 = $src1
/*397022*/            OPC_RecordChild1, // #2 = $src2
/*397023*/            OPC_CheckChild1Type, MVT::v2i64,
/*397025*/            OPC_MoveParent,
/*397026*/            OPC_RecordChild2, // #3 = $src0
/*397027*/            OPC_CheckType, MVT::v2i64,
/*397029*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*397031*/            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)
/*397041*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::VSRA),// ->397064
/*397044*/            OPC_RecordChild0, // #1 = $src1
/*397045*/            OPC_RecordChild1, // #2 = $src2
/*397046*/            OPC_CheckChild1Type, MVT::v2i64,
/*397048*/            OPC_MoveParent,
/*397049*/            OPC_RecordChild2, // #3 = $src0
/*397050*/            OPC_CheckType, MVT::v2i64,
/*397052*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*397054*/            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)
/*397064*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::VSRL),// ->397087
/*397067*/            OPC_RecordChild0, // #1 = $src1
/*397068*/            OPC_RecordChild1, // #2 = $src2
/*397069*/            OPC_CheckChild1Type, MVT::v2i64,
/*397071*/            OPC_MoveParent,
/*397072*/            OPC_RecordChild2, // #3 = $src0
/*397073*/            OPC_CheckType, MVT::v2i64,
/*397075*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*397077*/            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)
/*397087*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::VSHLV),// ->397108
/*397090*/            OPC_RecordChild0, // #1 = $src1
/*397091*/            OPC_RecordChild1, // #2 = $src2
/*397092*/            OPC_MoveParent,
/*397093*/            OPC_RecordChild2, // #3 = $src0
/*397094*/            OPC_CheckType, MVT::v2i64,
/*397096*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*397098*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVQZ128rrk), 0,
                          MVT::v2i64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vshlv:{ *:[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)
/*397108*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::VSRAV),// ->397129
/*397111*/            OPC_RecordChild0, // #1 = $src1
/*397112*/            OPC_RecordChild1, // #2 = $src2
/*397113*/            OPC_MoveParent,
/*397114*/            OPC_RecordChild2, // #3 = $src0
/*397115*/            OPC_CheckType, MVT::v2i64,
/*397117*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*397119*/            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, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*397129*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::VSRLV),// ->397150
/*397132*/            OPC_RecordChild0, // #1 = $src1
/*397133*/            OPC_RecordChild1, // #2 = $src2
/*397134*/            OPC_MoveParent,
/*397135*/            OPC_RecordChild2, // #3 = $src0
/*397136*/            OPC_CheckType, MVT::v2i64,
/*397138*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*397140*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVQZ128rrk), 0,
                          MVT::v2i64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86vsrlv:{ *:[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)
/*397150*/          /*SwitchOpcode*/ 20, TARGET_VAL(ISD::ROTR),// ->397173
/*397153*/            OPC_RecordChild0, // #1 = $src1
/*397154*/            OPC_RecordChild1, // #2 = $src2
/*397155*/            OPC_CheckChild1Type, MVT::v2i64,
/*397157*/            OPC_MoveParent,
/*397158*/            OPC_RecordChild2, // #3 = $src0
/*397159*/            OPC_CheckType, MVT::v2i64,
/*397161*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*397163*/            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)
/*397173*/          /*SwitchOpcode*/ 20, TARGET_VAL(ISD::ROTL),// ->397196
/*397176*/            OPC_RecordChild0, // #1 = $src1
/*397177*/            OPC_RecordChild1, // #2 = $src2
/*397178*/            OPC_CheckChild1Type, MVT::v2i64,
/*397180*/            OPC_MoveParent,
/*397181*/            OPC_RecordChild2, // #3 = $src0
/*397182*/            OPC_CheckType, MVT::v2i64,
/*397184*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*397186*/            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)
/*397196*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::VPMADD52L),// ->397219
/*397199*/            OPC_RecordChild0, // #1 = $src2
/*397200*/            OPC_RecordChild1, // #2 = $src3
/*397201*/            OPC_RecordChild2, // #3 = $src1
/*397202*/            OPC_MoveParent,
/*397203*/            OPC_CheckChild2Same, 3,
/*397205*/            OPC_CheckType, MVT::v2i64,
/*397207*/            OPC_CheckPatternPredicate, 184, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*397209*/            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)
/*397219*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::VPMADD52H),// ->397242
/*397222*/            OPC_RecordChild0, // #1 = $src2
/*397223*/            OPC_RecordChild1, // #2 = $src3
/*397224*/            OPC_RecordChild2, // #3 = $src1
/*397225*/            OPC_MoveParent,
/*397226*/            OPC_CheckChild2Same, 3,
/*397228*/            OPC_CheckType, MVT::v2i64,
/*397230*/            OPC_CheckPatternPredicate, 184, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*397232*/            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)
/*397242*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::CVTP2SI),// ->397284
/*397245*/            OPC_RecordChild0, // #1 = $src
/*397246*/            OPC_Scope, 17, /*->397265*/ // 2 children in Scope
/*397248*/              OPC_CheckChild0Type, MVT::v2f64,
/*397250*/              OPC_MoveParent,
/*397251*/              OPC_RecordChild2, // #2 = $src0
/*397252*/              OPC_CheckType, MVT::v2i64,
/*397254*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*397256*/              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)
/*397265*/            /*Scope*/ 17, /*->397283*/
/*397266*/              OPC_CheckChild0Type, MVT::v4f32,
/*397268*/              OPC_MoveParent,
/*397269*/              OPC_RecordChild2, // #2 = $src0
/*397270*/              OPC_CheckType, MVT::v2i64,
/*397272*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*397274*/              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)
/*397283*/            0, /*End of Scope*/
/*397284*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::CVTP2UI),// ->397326
/*397287*/            OPC_RecordChild0, // #1 = $src
/*397288*/            OPC_Scope, 17, /*->397307*/ // 2 children in Scope
/*397290*/              OPC_CheckChild0Type, MVT::v2f64,
/*397292*/              OPC_MoveParent,
/*397293*/              OPC_RecordChild2, // #2 = $src0
/*397294*/              OPC_CheckType, MVT::v2i64,
/*397296*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*397298*/              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)
/*397307*/            /*Scope*/ 17, /*->397325*/
/*397308*/              OPC_CheckChild0Type, MVT::v4f32,
/*397310*/              OPC_MoveParent,
/*397311*/              OPC_RecordChild2, // #2 = $src0
/*397312*/              OPC_CheckType, MVT::v2i64,
/*397314*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*397316*/              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)
/*397325*/            0, /*End of Scope*/
/*397326*/          /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::STRICT_CVTTP2SI),// ->397372
/*397329*/            OPC_RecordNode, // #1 = 'X86strict_cvttp2si' chained node
/*397330*/            OPC_CheckFoldableChainNode,
/*397331*/            OPC_RecordChild1, // #2 = $src
/*397332*/            OPC_Scope, 18, /*->397352*/ // 2 children in Scope
/*397334*/              OPC_CheckChild1Type, MVT::v2f64,
/*397336*/              OPC_MoveParent,
/*397337*/              OPC_RecordChild2, // #3 = $src0
/*397338*/              OPC_CheckType, MVT::v2i64,
/*397340*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*397342*/              OPC_EmitMergeInputChains1_1,
/*397343*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZ128rrk), 0|OPFL_Chain,
                            MVT::v2i64, 3/*#Ops*/, 3, 0, 2, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_cvttp2si:{ *:[v2i64] } VR128X:{ *:[v2f64] }:$src), VR128X:{ *:[v2i64] }:$src0) - Complexity = 6
                        // Dst: (VCVTTPD2QQZ128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*397352*/            /*Scope*/ 18, /*->397371*/
/*397353*/              OPC_CheckChild1Type, MVT::v4f32,
/*397355*/              OPC_MoveParent,
/*397356*/              OPC_RecordChild2, // #3 = $src0
/*397357*/              OPC_CheckType, MVT::v2i64,
/*397359*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*397361*/              OPC_EmitMergeInputChains1_1,
/*397362*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZ128rrk), 0|OPFL_Chain,
                            MVT::v2i64, 3/*#Ops*/, 3, 0, 2, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_cvttp2si:{ *:[v2i64] } VR128X:{ *:[v4f32] }:$src), VR128X:{ *:[v2i64] }:$src0) - Complexity = 6
                        // Dst: (VCVTTPS2QQZ128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*397371*/            0, /*End of Scope*/
/*397372*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::CVTTP2SI),// ->397414
/*397375*/            OPC_RecordChild0, // #1 = $src
/*397376*/            OPC_Scope, 17, /*->397395*/ // 2 children in Scope
/*397378*/              OPC_CheckChild0Type, MVT::v2f64,
/*397380*/              OPC_MoveParent,
/*397381*/              OPC_RecordChild2, // #2 = $src0
/*397382*/              OPC_CheckType, MVT::v2i64,
/*397384*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*397386*/              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)
/*397395*/            /*Scope*/ 17, /*->397413*/
/*397396*/              OPC_CheckChild0Type, MVT::v4f32,
/*397398*/              OPC_MoveParent,
/*397399*/              OPC_RecordChild2, // #2 = $src0
/*397400*/              OPC_CheckType, MVT::v2i64,
/*397402*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*397404*/              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)
/*397413*/            0, /*End of Scope*/
/*397414*/          /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::STRICT_CVTTP2UI),// ->397460
/*397417*/            OPC_RecordNode, // #1 = 'X86strict_cvttp2ui' chained node
/*397418*/            OPC_CheckFoldableChainNode,
/*397419*/            OPC_RecordChild1, // #2 = $src
/*397420*/            OPC_Scope, 18, /*->397440*/ // 2 children in Scope
/*397422*/              OPC_CheckChild1Type, MVT::v2f64,
/*397424*/              OPC_MoveParent,
/*397425*/              OPC_RecordChild2, // #3 = $src0
/*397426*/              OPC_CheckType, MVT::v2i64,
/*397428*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*397430*/              OPC_EmitMergeInputChains1_1,
/*397431*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZ128rrk), 0|OPFL_Chain,
                            MVT::v2i64, 3/*#Ops*/, 3, 0, 2, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_cvttp2ui:{ *:[v2i64] } VR128X:{ *:[v2f64] }:$src), VR128X:{ *:[v2i64] }:$src0) - Complexity = 6
                        // Dst: (VCVTTPD2UQQZ128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*397440*/            /*Scope*/ 18, /*->397459*/
/*397441*/              OPC_CheckChild1Type, MVT::v4f32,
/*397443*/              OPC_MoveParent,
/*397444*/              OPC_RecordChild2, // #3 = $src0
/*397445*/              OPC_CheckType, MVT::v2i64,
/*397447*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*397449*/              OPC_EmitMergeInputChains1_1,
/*397450*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZ128rrk), 0|OPFL_Chain,
                            MVT::v2i64, 3/*#Ops*/, 3, 0, 2, 
                        // Src: (vselect:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_cvttp2ui:{ *:[v2i64] } VR128X:{ *:[v4f32] }:$src), VR128X:{ *:[v2i64] }:$src0) - Complexity = 6
                        // Dst: (VCVTTPS2UQQZ128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*397459*/            0, /*End of Scope*/
/*397460*/          /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::CVTTP2UI),// ->397502
/*397463*/            OPC_RecordChild0, // #1 = $src
/*397464*/            OPC_Scope, 17, /*->397483*/ // 2 children in Scope
/*397466*/              OPC_CheckChild0Type, MVT::v2f64,
/*397468*/              OPC_MoveParent,
/*397469*/              OPC_RecordChild2, // #2 = $src0
/*397470*/              OPC_CheckType, MVT::v2i64,
/*397472*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*397474*/              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)
/*397483*/            /*Scope*/ 17, /*->397501*/
/*397484*/              OPC_CheckChild0Type, MVT::v4f32,
/*397486*/              OPC_MoveParent,
/*397487*/              OPC_RecordChild2, // #2 = $src0
/*397488*/              OPC_CheckType, MVT::v2i64,
/*397490*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*397492*/              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)
/*397501*/            0, /*End of Scope*/
/*397502*/          /*SwitchOpcode*/ 57, TARGET_VAL(ISD::ZERO_EXTEND_VECTOR_INREG),// ->397562
/*397505*/            OPC_RecordChild0, // #1 = $src
/*397506*/            OPC_Scope, 17, /*->397525*/ // 3 children in Scope
/*397508*/              OPC_CheckChild0Type, MVT::v16i8,
/*397510*/              OPC_MoveParent,
/*397511*/              OPC_RecordChild2, // #2 = $src0
/*397512*/              OPC_CheckType, MVT::v2i64,
/*397514*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*397516*/              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)
/*397525*/            /*Scope*/ 17, /*->397543*/
/*397526*/              OPC_CheckChild0Type, MVT::v8i16,
/*397528*/              OPC_MoveParent,
/*397529*/              OPC_RecordChild2, // #2 = $src0
/*397530*/              OPC_CheckType, MVT::v2i64,
/*397532*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*397534*/              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)
/*397543*/            /*Scope*/ 17, /*->397561*/
/*397544*/              OPC_CheckChild0Type, MVT::v4i32,
/*397546*/              OPC_MoveParent,
/*397547*/              OPC_RecordChild2, // #2 = $src0
/*397548*/              OPC_CheckType, MVT::v2i64,
/*397550*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*397552*/              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)
/*397561*/            0, /*End of Scope*/
/*397562*/          /*SwitchOpcode*/ 57, TARGET_VAL(ISD::SIGN_EXTEND_VECTOR_INREG),// ->397622
/*397565*/            OPC_RecordChild0, // #1 = $src
/*397566*/            OPC_Scope, 17, /*->397585*/ // 3 children in Scope
/*397568*/              OPC_CheckChild0Type, MVT::v16i8,
/*397570*/              OPC_MoveParent,
/*397571*/              OPC_RecordChild2, // #2 = $src0
/*397572*/              OPC_CheckType, MVT::v2i64,
/*397574*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*397576*/              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)
/*397585*/            /*Scope*/ 17, /*->397603*/
/*397586*/              OPC_CheckChild0Type, MVT::v8i16,
/*397588*/              OPC_MoveParent,
/*397589*/              OPC_RecordChild2, // #2 = $src0
/*397590*/              OPC_CheckType, MVT::v2i64,
/*397592*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*397594*/              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)
/*397603*/            /*Scope*/ 17, /*->397621*/
/*397604*/              OPC_CheckChild0Type, MVT::v4i32,
/*397606*/              OPC_MoveParent,
/*397607*/              OPC_RecordChild2, // #2 = $src0
/*397608*/              OPC_CheckType, MVT::v2i64,
/*397610*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*397612*/              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)
/*397621*/            0, /*End of Scope*/
/*397622*/          /*SwitchOpcode*/ 16, TARGET_VAL(ISD::ABS),// ->397641
/*397625*/            OPC_RecordChild0, // #1 = $src1
/*397626*/            OPC_MoveParent,
/*397627*/            OPC_RecordChild2, // #2 = $src0
/*397628*/            OPC_CheckType, MVT::v2i64,
/*397630*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*397632*/            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)
/*397641*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::CTLZ),// ->397662
/*397644*/            OPC_RecordChild0, // #1 = $src1
/*397645*/            OPC_CheckChild0Type, MVT::v2i64,
/*397647*/            OPC_MoveParent,
/*397648*/            OPC_RecordChild2, // #2 = $src0
/*397649*/            OPC_CheckType, MVT::v2i64,
/*397651*/            OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*397653*/            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)
/*397662*/          /*SwitchOpcode*/ 16, TARGET_VAL(X86ISD::CONFLICT),// ->397681
/*397665*/            OPC_RecordChild0, // #1 = $src1
/*397666*/            OPC_MoveParent,
/*397667*/            OPC_RecordChild2, // #2 = $src0
/*397668*/            OPC_CheckType, MVT::v2i64,
/*397670*/            OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*397672*/            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)
/*397681*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::CTPOP),// ->397702
/*397684*/            OPC_RecordChild0, // #1 = $src1
/*397685*/            OPC_CheckChild0Type, MVT::v2i64,
/*397687*/            OPC_MoveParent,
/*397688*/            OPC_RecordChild2, // #2 = $src0
/*397689*/            OPC_CheckType, MVT::v2i64,
/*397691*/            OPC_CheckPatternPredicate, 143, // (Subtarget->hasVLX()) && (Subtarget->hasVPOPCNTDQ())
/*397693*/            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)
/*397702*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::UNPCKL),// ->397723
/*397705*/            OPC_RecordChild0, // #1 = $src1
/*397706*/            OPC_RecordChild1, // #2 = $src2
/*397707*/            OPC_MoveParent,
/*397708*/            OPC_RecordChild2, // #3 = $src0
/*397709*/            OPC_CheckType, MVT::v2i64,
/*397711*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*397713*/            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)
/*397723*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::UNPCKH),// ->397744
/*397726*/            OPC_RecordChild0, // #1 = $src1
/*397727*/            OPC_RecordChild1, // #2 = $src2
/*397728*/            OPC_MoveParent,
/*397729*/            OPC_RecordChild2, // #3 = $src0
/*397730*/            OPC_CheckType, MVT::v2i64,
/*397732*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*397734*/            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)
/*397744*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::VSHLDV),// ->397767
/*397747*/            OPC_RecordChild0, // #1 = $src1
/*397748*/            OPC_RecordChild1, // #2 = $src2
/*397749*/            OPC_RecordChild2, // #3 = $src3
/*397750*/            OPC_MoveParent,
/*397751*/            OPC_CheckChild2Same, 1,
/*397753*/            OPC_CheckType, MVT::v2i64,
/*397755*/            OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*397757*/            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)
/*397767*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::VSHRDV),// ->397790
/*397770*/            OPC_RecordChild0, // #1 = $src1
/*397771*/            OPC_RecordChild1, // #2 = $src2
/*397772*/            OPC_RecordChild2, // #3 = $src3
/*397773*/            OPC_MoveParent,
/*397774*/            OPC_CheckChild2Same, 1,
/*397776*/            OPC_CheckType, MVT::v2i64,
/*397778*/            OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*397780*/            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)
/*397790*/          0, // EndSwitchOpcode
/*397791*/        /*Scope*/ 88, /*->397880*/
/*397792*/          OPC_RecordChild1, // #1 = $src1
/*397793*/          OPC_RecordChild2, // #2 = $src0
/*397794*/          OPC_CheckType, MVT::v2i64,
/*397796*/          OPC_Scope, 11, /*->397809*/ // 2 children in Scope
/*397798*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*397800*/            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)
/*397809*/          /*Scope*/ 69, /*->397879*/
/*397810*/            OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*397812*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #3
/*397818*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*397821*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 3, 2, 4,  // Results = #5
/*397830*/            OPC_EmitInteger, MVT::i32, X86::VK8WMRegClassID,
/*397833*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 0, 6,  // Results = #7
/*397841*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #8
/*397847*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*397850*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 8, 1, 9,  // Results = #10
/*397859*/            OPC_EmitNode1, TARGET_VAL(X86::VMOVDQA64Zrrk), 0,
                          MVT::v8i64, 3/*#Ops*/, 5, 7, 10,  // Results = #11
/*397868*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*397871*/            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] })
/*397879*/          0, /*End of Scope*/
/*397880*/        /*Scope*/ 5|128,117/*14981*/, /*->412863*/
/*397882*/          OPC_MoveChild1,
/*397883*/          OPC_SwitchOpcode /*51 cases */, 103|128,1/*231*/, TARGET_VAL(X86ISD::STRICT_CVTSI2P),// ->398119
/*397888*/            OPC_RecordNode, // #1 = 'X86strict_VSintToFP' chained node
/*397889*/            OPC_CheckFoldableChainNode,
/*397890*/            OPC_MoveChild1,
/*397891*/            OPC_SwitchOpcode /*2 cases */, 26|128,1/*154*/, TARGET_VAL(ISD::BITCAST),// ->398050
/*397896*/              OPC_MoveChild0,
/*397897*/              OPC_SwitchOpcode /*2 cases */, 77, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->397978
/*397901*/                OPC_MoveChild0,
/*397902*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*397905*/                OPC_RecordMemRef,
/*397906*/                OPC_RecordNode, // #2 = 'ld' chained node
/*397907*/                OPC_CheckFoldableChainNode,
/*397908*/                OPC_RecordChild1, // #3 = $src
/*397909*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*397911*/                OPC_CheckPredicate, 9, // Predicate_load
/*397913*/                OPC_CheckType, MVT::i64,
/*397915*/                OPC_MoveParent,
/*397916*/                OPC_CheckType, MVT::v2i64,
/*397918*/                OPC_MoveParent,
/*397919*/                OPC_CheckType, MVT::v4i32,
/*397921*/                OPC_MoveParent,
/*397922*/                OPC_MoveParent,
/*397923*/                OPC_Scope, 26, /*->397951*/ // 2 children in Scope
/*397925*/                  OPC_MoveChild2,
/*397926*/                  OPC_CheckImmAllZerosV,
/*397927*/                  OPC_MoveParent,
/*397928*/                  OPC_CheckType, MVT::v2f64,
/*397930*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*397932*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*397935*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*397939*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_VSintToFP:{ *:[v2f64] } (bitconvert:{ *:[v4i32] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))), immAllZerosV:{ *:[v2f64] }) - Complexity = 38
                            // Dst: (VCVTDQ2PDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*397951*/                /*Scope*/ 25, /*->397977*/
/*397952*/                  OPC_RecordChild2, // #4 = $src0
/*397953*/                  OPC_CheckType, MVT::v2f64,
/*397955*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*397957*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*397960*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*397964*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_VSintToFP:{ *:[v2f64] } (bitconvert:{ *:[v4i32] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))), VR128X:{ *:[v2f64] }:$src0) - Complexity = 34
                            // Dst: (VCVTDQ2PDZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*397977*/                0, /*End of Scope*/
/*397978*/              /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VZEXT_LOAD),// ->398049
/*397981*/                OPC_RecordMemRef,
/*397982*/                OPC_RecordNode, // #2 = 'X86vzld' chained node
/*397983*/                OPC_CheckFoldableChainNode,
/*397984*/                OPC_RecordChild1, // #3 = $src
/*397985*/                OPC_CheckPredicate, 49, // Predicate_X86vzload64
/*397987*/                OPC_CheckType, MVT::v2i64,
/*397989*/                OPC_MoveParent,
/*397990*/                OPC_CheckType, MVT::v4i32,
/*397992*/                OPC_MoveParent,
/*397993*/                OPC_MoveParent,
/*397994*/                OPC_Scope, 26, /*->398022*/ // 2 children in Scope
/*397996*/                  OPC_MoveChild2,
/*397997*/                  OPC_CheckImmAllZerosV,
/*397998*/                  OPC_MoveParent,
/*397999*/                  OPC_CheckType, MVT::v2f64,
/*398001*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*398003*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*398006*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*398010*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_VSintToFP:{ *:[v2f64] } (bitconvert:{ *:[v4i32] } (X86vzld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>)), immAllZerosV:{ *:[v2f64] }) - Complexity = 35
                            // Dst: (VCVTDQ2PDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*398022*/                /*Scope*/ 25, /*->398048*/
/*398023*/                  OPC_RecordChild2, // #4 = $src0
/*398024*/                  OPC_CheckType, MVT::v2f64,
/*398026*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*398028*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*398031*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*398035*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_VSintToFP:{ *:[v2f64] } (bitconvert:{ *:[v4i32] } (X86vzld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                            // Dst: (VCVTDQ2PDZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*398048*/                0, /*End of Scope*/
/*398049*/              0, // EndSwitchOpcode
/*398050*/            /*SwitchOpcode*/ 65, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->398118
/*398053*/              OPC_RecordMemRef,
/*398054*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*398055*/              OPC_CheckFoldableChainNode,
/*398056*/              OPC_RecordChild1, // #3 = $src
/*398057*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*398059*/              OPC_CheckType, MVT::v4i32,
/*398061*/              OPC_MoveParent,
/*398062*/              OPC_MoveParent,
/*398063*/              OPC_Scope, 26, /*->398091*/ // 2 children in Scope
/*398065*/                OPC_MoveChild2,
/*398066*/                OPC_CheckImmAllZerosV,
/*398067*/                OPC_MoveParent,
/*398068*/                OPC_CheckType, MVT::v2f64,
/*398070*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*398072*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*398075*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*398079*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_VSintToFP:{ *:[v2f64] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VCVTDQ2PDZ128rmbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*398091*/              /*Scope*/ 25, /*->398117*/
/*398092*/                OPC_RecordChild2, // #4 = $src0
/*398093*/                OPC_CheckType, MVT::v2f64,
/*398095*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*398097*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*398100*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*398104*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_VSintToFP:{ *:[v2f64] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VCVTDQ2PDZ128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*398117*/              0, /*End of Scope*/
/*398118*/            0, // EndSwitchOpcode
/*398119*/          /*SwitchOpcode*/ 83|128,1/*211*/, TARGET_VAL(X86ISD::CVTSI2P),// ->398334
/*398123*/            OPC_MoveChild0,
/*398124*/            OPC_SwitchOpcode /*2 cases */, 14|128,1/*142*/, TARGET_VAL(ISD::BITCAST),// ->398271
/*398129*/              OPC_MoveChild0,
/*398130*/              OPC_SwitchOpcode /*2 cases */, 71, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->398205
/*398134*/                OPC_MoveChild0,
/*398135*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*398138*/                OPC_RecordMemRef,
/*398139*/                OPC_RecordNode, // #1 = 'ld' chained node
/*398140*/                OPC_CheckFoldableChainNode,
/*398141*/                OPC_RecordChild1, // #2 = $src
/*398142*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*398144*/                OPC_CheckPredicate, 9, // Predicate_load
/*398146*/                OPC_CheckType, MVT::i64,
/*398148*/                OPC_MoveParent,
/*398149*/                OPC_CheckType, MVT::v2i64,
/*398151*/                OPC_MoveParent,
/*398152*/                OPC_CheckType, MVT::v4i32,
/*398154*/                OPC_MoveParent,
/*398155*/                OPC_MoveParent,
/*398156*/                OPC_Scope, 23, /*->398181*/ // 2 children in Scope
/*398158*/                  OPC_MoveChild2,
/*398159*/                  OPC_CheckImmAllZerosV,
/*398160*/                  OPC_MoveParent,
/*398161*/                  OPC_CheckType, MVT::v2f64,
/*398163*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*398165*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*398168*/                  OPC_EmitMergeInputChains1_1,
/*398169*/                  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] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))), immAllZerosV:{ *:[v2f64] }) - Complexity = 38
                            // Dst: (VCVTDQ2PDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*398181*/                /*Scope*/ 22, /*->398204*/
/*398182*/                  OPC_RecordChild2, // #3 = $src0
/*398183*/                  OPC_CheckType, MVT::v2f64,
/*398185*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*398187*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*398190*/                  OPC_EmitMergeInputChains1_1,
/*398191*/                  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] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))), VR128X:{ *:[v2f64] }:$src0) - Complexity = 34
                            // Dst: (VCVTDQ2PDZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*398204*/                0, /*End of Scope*/
/*398205*/              /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VZEXT_LOAD),// ->398270
/*398208*/                OPC_RecordMemRef,
/*398209*/                OPC_RecordNode, // #1 = 'X86vzld' chained node
/*398210*/                OPC_CheckFoldableChainNode,
/*398211*/                OPC_RecordChild1, // #2 = $src
/*398212*/                OPC_CheckPredicate, 49, // Predicate_X86vzload64
/*398214*/                OPC_CheckType, MVT::v2i64,
/*398216*/                OPC_MoveParent,
/*398217*/                OPC_CheckType, MVT::v4i32,
/*398219*/                OPC_MoveParent,
/*398220*/                OPC_MoveParent,
/*398221*/                OPC_Scope, 23, /*->398246*/ // 2 children in Scope
/*398223*/                  OPC_MoveChild2,
/*398224*/                  OPC_CheckImmAllZerosV,
/*398225*/                  OPC_MoveParent,
/*398226*/                  OPC_CheckType, MVT::v2f64,
/*398228*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*398230*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*398233*/                  OPC_EmitMergeInputChains1_1,
/*398234*/                  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] } (X86vzld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>)), immAllZerosV:{ *:[v2f64] }) - Complexity = 35
                            // Dst: (VCVTDQ2PDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*398246*/                /*Scope*/ 22, /*->398269*/
/*398247*/                  OPC_RecordChild2, // #3 = $src0
/*398248*/                  OPC_CheckType, MVT::v2f64,
/*398250*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*398252*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*398255*/                  OPC_EmitMergeInputChains1_1,
/*398256*/                  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] } (X86vzld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                            // Dst: (VCVTDQ2PDZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*398269*/                0, /*End of Scope*/
/*398270*/              0, // EndSwitchOpcode
/*398271*/            /*SwitchOpcode*/ 59, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->398333
/*398274*/              OPC_RecordMemRef,
/*398275*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*398276*/              OPC_CheckFoldableChainNode,
/*398277*/              OPC_RecordChild1, // #2 = $src
/*398278*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*398280*/              OPC_CheckType, MVT::v4i32,
/*398282*/              OPC_MoveParent,
/*398283*/              OPC_MoveParent,
/*398284*/              OPC_Scope, 23, /*->398309*/ // 2 children in Scope
/*398286*/                OPC_MoveChild2,
/*398287*/                OPC_CheckImmAllZerosV,
/*398288*/                OPC_MoveParent,
/*398289*/                OPC_CheckType, MVT::v2f64,
/*398291*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*398293*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*398296*/                OPC_EmitMergeInputChains1_1,
/*398297*/                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] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VCVTDQ2PDZ128rmbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*398309*/              /*Scope*/ 22, /*->398332*/
/*398310*/                OPC_RecordChild2, // #3 = $src0
/*398311*/                OPC_CheckType, MVT::v2f64,
/*398313*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*398315*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*398318*/                OPC_EmitMergeInputChains1_1,
/*398319*/                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] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VCVTDQ2PDZ128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*398332*/              0, /*End of Scope*/
/*398333*/            0, // EndSwitchOpcode
/*398334*/          /*SwitchOpcode*/ 103|128,1/*231*/, TARGET_VAL(X86ISD::STRICT_CVTUI2P),// ->398569
/*398338*/            OPC_RecordNode, // #1 = 'X86strict_VUintToFP' chained node
/*398339*/            OPC_CheckFoldableChainNode,
/*398340*/            OPC_MoveChild1,
/*398341*/            OPC_SwitchOpcode /*2 cases */, 26|128,1/*154*/, TARGET_VAL(ISD::BITCAST),// ->398500
/*398346*/              OPC_MoveChild0,
/*398347*/              OPC_SwitchOpcode /*2 cases */, 77, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->398428
/*398351*/                OPC_MoveChild0,
/*398352*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*398355*/                OPC_RecordMemRef,
/*398356*/                OPC_RecordNode, // #2 = 'ld' chained node
/*398357*/                OPC_CheckFoldableChainNode,
/*398358*/                OPC_RecordChild1, // #3 = $src
/*398359*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*398361*/                OPC_CheckPredicate, 9, // Predicate_load
/*398363*/                OPC_CheckType, MVT::i64,
/*398365*/                OPC_MoveParent,
/*398366*/                OPC_CheckType, MVT::v2i64,
/*398368*/                OPC_MoveParent,
/*398369*/                OPC_CheckType, MVT::v4i32,
/*398371*/                OPC_MoveParent,
/*398372*/                OPC_MoveParent,
/*398373*/                OPC_Scope, 26, /*->398401*/ // 2 children in Scope
/*398375*/                  OPC_MoveChild2,
/*398376*/                  OPC_CheckImmAllZerosV,
/*398377*/                  OPC_MoveParent,
/*398378*/                  OPC_CheckType, MVT::v2f64,
/*398380*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*398382*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*398385*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*398389*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_VUintToFP:{ *:[v2f64] } (bitconvert:{ *:[v4i32] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))), immAllZerosV:{ *:[v2f64] }) - Complexity = 38
                            // Dst: (VCVTUDQ2PDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*398401*/                /*Scope*/ 25, /*->398427*/
/*398402*/                  OPC_RecordChild2, // #4 = $src0
/*398403*/                  OPC_CheckType, MVT::v2f64,
/*398405*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*398407*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*398410*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*398414*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_VUintToFP:{ *:[v2f64] } (bitconvert:{ *:[v4i32] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))), VR128X:{ *:[v2f64] }:$src0) - Complexity = 34
                            // Dst: (VCVTUDQ2PDZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*398427*/                0, /*End of Scope*/
/*398428*/              /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VZEXT_LOAD),// ->398499
/*398431*/                OPC_RecordMemRef,
/*398432*/                OPC_RecordNode, // #2 = 'X86vzld' chained node
/*398433*/                OPC_CheckFoldableChainNode,
/*398434*/                OPC_RecordChild1, // #3 = $src
/*398435*/                OPC_CheckPredicate, 49, // Predicate_X86vzload64
/*398437*/                OPC_CheckType, MVT::v2i64,
/*398439*/                OPC_MoveParent,
/*398440*/                OPC_CheckType, MVT::v4i32,
/*398442*/                OPC_MoveParent,
/*398443*/                OPC_MoveParent,
/*398444*/                OPC_Scope, 26, /*->398472*/ // 2 children in Scope
/*398446*/                  OPC_MoveChild2,
/*398447*/                  OPC_CheckImmAllZerosV,
/*398448*/                  OPC_MoveParent,
/*398449*/                  OPC_CheckType, MVT::v2f64,
/*398451*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*398453*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*398456*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*398460*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_VUintToFP:{ *:[v2f64] } (bitconvert:{ *:[v4i32] } (X86vzld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>)), immAllZerosV:{ *:[v2f64] }) - Complexity = 35
                            // Dst: (VCVTUDQ2PDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*398472*/                /*Scope*/ 25, /*->398498*/
/*398473*/                  OPC_RecordChild2, // #4 = $src0
/*398474*/                  OPC_CheckType, MVT::v2f64,
/*398476*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*398478*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*398481*/                  OPC_EmitMergeInputChains, 2, 1, 2, 
/*398485*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_VUintToFP:{ *:[v2f64] } (bitconvert:{ *:[v4i32] } (X86vzld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                            // Dst: (VCVTUDQ2PDZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*398498*/                0, /*End of Scope*/
/*398499*/              0, // EndSwitchOpcode
/*398500*/            /*SwitchOpcode*/ 65, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->398568
/*398503*/              OPC_RecordMemRef,
/*398504*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*398505*/              OPC_CheckFoldableChainNode,
/*398506*/              OPC_RecordChild1, // #3 = $src
/*398507*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*398509*/              OPC_CheckType, MVT::v4i32,
/*398511*/              OPC_MoveParent,
/*398512*/              OPC_MoveParent,
/*398513*/              OPC_Scope, 26, /*->398541*/ // 2 children in Scope
/*398515*/                OPC_MoveChild2,
/*398516*/                OPC_CheckImmAllZerosV,
/*398517*/                OPC_MoveParent,
/*398518*/                OPC_CheckType, MVT::v2f64,
/*398520*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*398522*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*398525*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*398529*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_VUintToFP:{ *:[v2f64] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VCVTUDQ2PDZ128rmbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*398541*/              /*Scope*/ 25, /*->398567*/
/*398542*/                OPC_RecordChild2, // #4 = $src0
/*398543*/                OPC_CheckType, MVT::v2f64,
/*398545*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*398547*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*398550*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*398554*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_VUintToFP:{ *:[v2f64] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VCVTUDQ2PDZ128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*398567*/              0, /*End of Scope*/
/*398568*/            0, // EndSwitchOpcode
/*398569*/          /*SwitchOpcode*/ 83|128,1/*211*/, TARGET_VAL(X86ISD::CVTUI2P),// ->398784
/*398573*/            OPC_MoveChild0,
/*398574*/            OPC_SwitchOpcode /*2 cases */, 14|128,1/*142*/, TARGET_VAL(ISD::BITCAST),// ->398721
/*398579*/              OPC_MoveChild0,
/*398580*/              OPC_SwitchOpcode /*2 cases */, 71, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->398655
/*398584*/                OPC_MoveChild0,
/*398585*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*398588*/                OPC_RecordMemRef,
/*398589*/                OPC_RecordNode, // #1 = 'ld' chained node
/*398590*/                OPC_CheckFoldableChainNode,
/*398591*/                OPC_RecordChild1, // #2 = $src
/*398592*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*398594*/                OPC_CheckPredicate, 9, // Predicate_load
/*398596*/                OPC_CheckType, MVT::i64,
/*398598*/                OPC_MoveParent,
/*398599*/                OPC_CheckType, MVT::v2i64,
/*398601*/                OPC_MoveParent,
/*398602*/                OPC_CheckType, MVT::v4i32,
/*398604*/                OPC_MoveParent,
/*398605*/                OPC_MoveParent,
/*398606*/                OPC_Scope, 23, /*->398631*/ // 2 children in Scope
/*398608*/                  OPC_MoveChild2,
/*398609*/                  OPC_CheckImmAllZerosV,
/*398610*/                  OPC_MoveParent,
/*398611*/                  OPC_CheckType, MVT::v2f64,
/*398613*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*398615*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*398618*/                  OPC_EmitMergeInputChains1_1,
/*398619*/                  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] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))), immAllZerosV:{ *:[v2f64] }) - Complexity = 38
                            // Dst: (VCVTUDQ2PDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*398631*/                /*Scope*/ 22, /*->398654*/
/*398632*/                  OPC_RecordChild2, // #3 = $src0
/*398633*/                  OPC_CheckType, MVT::v2f64,
/*398635*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*398637*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*398640*/                  OPC_EmitMergeInputChains1_1,
/*398641*/                  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] } (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))), VR128X:{ *:[v2f64] }:$src0) - Complexity = 34
                            // Dst: (VCVTUDQ2PDZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*398654*/                0, /*End of Scope*/
/*398655*/              /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VZEXT_LOAD),// ->398720
/*398658*/                OPC_RecordMemRef,
/*398659*/                OPC_RecordNode, // #1 = 'X86vzld' chained node
/*398660*/                OPC_CheckFoldableChainNode,
/*398661*/                OPC_RecordChild1, // #2 = $src
/*398662*/                OPC_CheckPredicate, 49, // Predicate_X86vzload64
/*398664*/                OPC_CheckType, MVT::v2i64,
/*398666*/                OPC_MoveParent,
/*398667*/                OPC_CheckType, MVT::v4i32,
/*398669*/                OPC_MoveParent,
/*398670*/                OPC_MoveParent,
/*398671*/                OPC_Scope, 23, /*->398696*/ // 2 children in Scope
/*398673*/                  OPC_MoveChild2,
/*398674*/                  OPC_CheckImmAllZerosV,
/*398675*/                  OPC_MoveParent,
/*398676*/                  OPC_CheckType, MVT::v2f64,
/*398678*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*398680*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*398683*/                  OPC_EmitMergeInputChains1_1,
/*398684*/                  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] } (X86vzld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>)), immAllZerosV:{ *:[v2f64] }) - Complexity = 35
                            // Dst: (VCVTUDQ2PDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*398696*/                /*Scope*/ 22, /*->398719*/
/*398697*/                  OPC_RecordChild2, // #3 = $src0
/*398698*/                  OPC_CheckType, MVT::v2f64,
/*398700*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*398702*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*398705*/                  OPC_EmitMergeInputChains1_1,
/*398706*/                  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] } (X86vzld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                            // Dst: (VCVTUDQ2PDZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*398719*/                0, /*End of Scope*/
/*398720*/              0, // EndSwitchOpcode
/*398721*/            /*SwitchOpcode*/ 59, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->398783
/*398724*/              OPC_RecordMemRef,
/*398725*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*398726*/              OPC_CheckFoldableChainNode,
/*398727*/              OPC_RecordChild1, // #2 = $src
/*398728*/              OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*398730*/              OPC_CheckType, MVT::v4i32,
/*398732*/              OPC_MoveParent,
/*398733*/              OPC_MoveParent,
/*398734*/              OPC_Scope, 23, /*->398759*/ // 2 children in Scope
/*398736*/                OPC_MoveChild2,
/*398737*/                OPC_CheckImmAllZerosV,
/*398738*/                OPC_MoveParent,
/*398739*/                OPC_CheckType, MVT::v2f64,
/*398741*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*398743*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*398746*/                OPC_EmitMergeInputChains1_1,
/*398747*/                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] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VCVTUDQ2PDZ128rmbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*398759*/              /*Scope*/ 22, /*->398782*/
/*398760*/                OPC_RecordChild2, // #3 = $src0
/*398761*/                OPC_CheckType, MVT::v2f64,
/*398763*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*398765*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*398768*/                OPC_EmitMergeInputChains1_1,
/*398769*/                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] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VCVTUDQ2PDZ128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*398782*/              0, /*End of Scope*/
/*398783*/            0, // EndSwitchOpcode
/*398784*/          /*SwitchOpcode*/ 124|128,18/*2428*/, TARGET_VAL(ISD::BITCAST),// ->401216
/*398788*/            OPC_Scope, 41|128,18/*2345*/, /*->401136*/ // 2 children in Scope
/*398791*/              OPC_MoveChild0,
/*398792*/              OPC_SwitchOpcode /*4 cases */, 34|128,5/*674*/, TARGET_VAL(ISD::AND),// ->399471
/*398797*/                OPC_Scope, 40|128,1/*168*/, /*->398968*/ // 4 children in Scope
/*398800*/                  OPC_RecordChild0, // #1 = $src1
/*398801*/                  OPC_MoveChild1,
/*398802*/                  OPC_SwitchOpcode /*2 cases */, 123, TARGET_VAL(ISD::LOAD),// ->398929
/*398806*/                    OPC_RecordMemRef,
/*398807*/                    OPC_RecordNode, // #2 = 'ld' chained node
/*398808*/                    OPC_CheckFoldableChainNode,
/*398809*/                    OPC_RecordChild1, // #3 = $src2
/*398810*/                    OPC_CheckPredicate, 4, // Predicate_unindexedload
/*398812*/                    OPC_CheckPredicate, 9, // Predicate_load
/*398814*/                    OPC_MoveParent,
/*398815*/                    OPC_SwitchType /*4 cases */, 26, MVT::v2i64,// ->398844
/*398818*/                      OPC_MoveParent,
/*398819*/                      OPC_MoveParent,
/*398820*/                      OPC_MoveChild2,
/*398821*/                      OPC_CheckImmAllZerosV,
/*398822*/                      OPC_MoveParent,
/*398823*/                      OPC_CheckType, MVT::v2f64,
/*398825*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*398827*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*398830*/                      OPC_EmitMergeInputChains1_2,
/*398831*/                      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>>)), immAllZerosV:{ *:[v2f64] }) - Complexity = 35
                                // Dst: (VPANDQZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*398844*/                    /*SwitchType*/ 26, MVT::v4i32,// ->398872
/*398846*/                      OPC_MoveParent,
/*398847*/                      OPC_MoveParent,
/*398848*/                      OPC_MoveChild2,
/*398849*/                      OPC_CheckImmAllZerosV,
/*398850*/                      OPC_MoveParent,
/*398851*/                      OPC_CheckType, MVT::v2f64,
/*398853*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*398855*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*398858*/                      OPC_EmitMergeInputChains1_2,
/*398859*/                      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:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v2f64] }) - Complexity = 35
                                // Dst: (VPANDQZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*398872*/                    /*SwitchType*/ 26, MVT::v8i16,// ->398900
/*398874*/                      OPC_MoveParent,
/*398875*/                      OPC_MoveParent,
/*398876*/                      OPC_MoveChild2,
/*398877*/                      OPC_CheckImmAllZerosV,
/*398878*/                      OPC_MoveParent,
/*398879*/                      OPC_CheckType, MVT::v2f64,
/*398881*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*398883*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*398886*/                      OPC_EmitMergeInputChains1_2,
/*398887*/                      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:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v2f64] }) - Complexity = 35
                                // Dst: (VPANDQZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*398900*/                    /*SwitchType*/ 26, MVT::v16i8,// ->398928
/*398902*/                      OPC_MoveParent,
/*398903*/                      OPC_MoveParent,
/*398904*/                      OPC_MoveChild2,
/*398905*/                      OPC_CheckImmAllZerosV,
/*398906*/                      OPC_MoveParent,
/*398907*/                      OPC_CheckType, MVT::v2f64,
/*398909*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*398911*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*398914*/                      OPC_EmitMergeInputChains1_2,
/*398915*/                      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:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v2f64] }) - Complexity = 35
                                // Dst: (VPANDQZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*398928*/                    0, // EndSwitchType
/*398929*/                  /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->398967
/*398932*/                    OPC_RecordMemRef,
/*398933*/                    OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*398934*/                    OPC_CheckFoldableChainNode,
/*398935*/                    OPC_RecordChild1, // #3 = $src2
/*398936*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*398938*/                    OPC_MoveParent,
/*398939*/                    OPC_CheckType, MVT::v2i64,
/*398941*/                    OPC_MoveParent,
/*398942*/                    OPC_MoveParent,
/*398943*/                    OPC_MoveChild2,
/*398944*/                    OPC_CheckImmAllZerosV,
/*398945*/                    OPC_MoveParent,
/*398946*/                    OPC_CheckType, MVT::v2f64,
/*398948*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*398950*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*398953*/                    OPC_EmitMergeInputChains1_2,
/*398954*/                    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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>)), immAllZerosV:{ *:[v2f64] }) - Complexity = 35
                              // Dst: (VPANDQZ128rmbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*398967*/                  0, // EndSwitchOpcode
/*398968*/                /*Scope*/ 41|128,1/*169*/, /*->399139*/
/*398970*/                  OPC_MoveChild0,
/*398971*/                  OPC_SwitchOpcode /*2 cases */, 124, TARGET_VAL(ISD::LOAD),// ->399099
/*398975*/                    OPC_RecordMemRef,
/*398976*/                    OPC_RecordNode, // #1 = 'ld' chained node
/*398977*/                    OPC_CheckFoldableChainNode,
/*398978*/                    OPC_RecordChild1, // #2 = $src2
/*398979*/                    OPC_CheckPredicate, 4, // Predicate_unindexedload
/*398981*/                    OPC_CheckPredicate, 9, // Predicate_load
/*398983*/                    OPC_MoveParent,
/*398984*/                    OPC_RecordChild1, // #3 = $src1
/*398985*/                    OPC_SwitchType /*4 cases */, 26, MVT::v2i64,// ->399014
/*398988*/                      OPC_MoveParent,
/*398989*/                      OPC_MoveParent,
/*398990*/                      OPC_MoveChild2,
/*398991*/                      OPC_CheckImmAllZerosV,
/*398992*/                      OPC_MoveParent,
/*398993*/                      OPC_CheckType, MVT::v2f64,
/*398995*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*398997*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*399000*/                      OPC_EmitMergeInputChains1_1,
/*399001*/                      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)), immAllZerosV:{ *:[v2f64] }) - Complexity = 35
                                // Dst: (VPANDQZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*399014*/                    /*SwitchType*/ 26, MVT::v4i32,// ->399042
/*399016*/                      OPC_MoveParent,
/*399017*/                      OPC_MoveParent,
/*399018*/                      OPC_MoveChild2,
/*399019*/                      OPC_CheckImmAllZerosV,
/*399020*/                      OPC_MoveParent,
/*399021*/                      OPC_CheckType, MVT::v2f64,
/*399023*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*399025*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*399028*/                      OPC_EmitMergeInputChains1_1,
/*399029*/                      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:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4i32] }:$src1)), immAllZerosV:{ *:[v2f64] }) - Complexity = 35
                                // Dst: (VPANDQZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*399042*/                    /*SwitchType*/ 26, MVT::v8i16,// ->399070
/*399044*/                      OPC_MoveParent,
/*399045*/                      OPC_MoveParent,
/*399046*/                      OPC_MoveChild2,
/*399047*/                      OPC_CheckImmAllZerosV,
/*399048*/                      OPC_MoveParent,
/*399049*/                      OPC_CheckType, MVT::v2f64,
/*399051*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*399053*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*399056*/                      OPC_EmitMergeInputChains1_1,
/*399057*/                      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:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1)), immAllZerosV:{ *:[v2f64] }) - Complexity = 35
                                // Dst: (VPANDQZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*399070*/                    /*SwitchType*/ 26, MVT::v16i8,// ->399098
/*399072*/                      OPC_MoveParent,
/*399073*/                      OPC_MoveParent,
/*399074*/                      OPC_MoveChild2,
/*399075*/                      OPC_CheckImmAllZerosV,
/*399076*/                      OPC_MoveParent,
/*399077*/                      OPC_CheckType, MVT::v2f64,
/*399079*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*399081*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*399084*/                      OPC_EmitMergeInputChains1_1,
/*399085*/                      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:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v16i8] }:$src1)), immAllZerosV:{ *:[v2f64] }) - Complexity = 35
                                // Dst: (VPANDQZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*399098*/                    0, // EndSwitchType
/*399099*/                  /*SwitchOpcode*/ 36, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->399138
/*399102*/                    OPC_RecordMemRef,
/*399103*/                    OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*399104*/                    OPC_CheckFoldableChainNode,
/*399105*/                    OPC_RecordChild1, // #2 = $src2
/*399106*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*399108*/                    OPC_MoveParent,
/*399109*/                    OPC_RecordChild1, // #3 = $src1
/*399110*/                    OPC_CheckType, MVT::v2i64,
/*399112*/                    OPC_MoveParent,
/*399113*/                    OPC_MoveParent,
/*399114*/                    OPC_MoveChild2,
/*399115*/                    OPC_CheckImmAllZerosV,
/*399116*/                    OPC_MoveParent,
/*399117*/                    OPC_CheckType, MVT::v2f64,
/*399119*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*399121*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*399124*/                    OPC_EmitMergeInputChains1_1,
/*399125*/                    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] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src1)), immAllZerosV:{ *:[v2f64] }) - Complexity = 35
                              // Dst: (VPANDQZ128rmbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*399138*/                  0, // EndSwitchOpcode
/*399139*/                /*Scope*/ 35|128,1/*163*/, /*->399304*/
/*399141*/                  OPC_RecordChild0, // #1 = $src1
/*399142*/                  OPC_MoveChild1,
/*399143*/                  OPC_SwitchOpcode /*2 cases */, 119, TARGET_VAL(ISD::LOAD),// ->399266
/*399147*/                    OPC_RecordMemRef,
/*399148*/                    OPC_RecordNode, // #2 = 'ld' chained node
/*399149*/                    OPC_CheckFoldableChainNode,
/*399150*/                    OPC_RecordChild1, // #3 = $src2
/*399151*/                    OPC_CheckPredicate, 4, // Predicate_unindexedload
/*399153*/                    OPC_CheckPredicate, 9, // Predicate_load
/*399155*/                    OPC_MoveParent,
/*399156*/                    OPC_SwitchType /*4 cases */, 25, MVT::v2i64,// ->399184
/*399159*/                      OPC_MoveParent,
/*399160*/                      OPC_MoveParent,
/*399161*/                      OPC_RecordChild2, // #4 = $src0
/*399162*/                      OPC_CheckType, MVT::v2f64,
/*399164*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*399166*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*399169*/                      OPC_EmitMergeInputChains1_2,
/*399170*/                      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)
/*399184*/                    /*SwitchType*/ 25, MVT::v4i32,// ->399211
/*399186*/                      OPC_MoveParent,
/*399187*/                      OPC_MoveParent,
/*399188*/                      OPC_RecordChild2, // #4 = $src0
/*399189*/                      OPC_CheckType, MVT::v2f64,
/*399191*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*399193*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*399196*/                      OPC_EmitMergeInputChains1_2,
/*399197*/                      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:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                                // Dst: (VPANDQZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*399211*/                    /*SwitchType*/ 25, MVT::v8i16,// ->399238
/*399213*/                      OPC_MoveParent,
/*399214*/                      OPC_MoveParent,
/*399215*/                      OPC_RecordChild2, // #4 = $src0
/*399216*/                      OPC_CheckType, MVT::v2f64,
/*399218*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*399220*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*399223*/                      OPC_EmitMergeInputChains1_2,
/*399224*/                      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:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                                // Dst: (VPANDQZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*399238*/                    /*SwitchType*/ 25, MVT::v16i8,// ->399265
/*399240*/                      OPC_MoveParent,
/*399241*/                      OPC_MoveParent,
/*399242*/                      OPC_RecordChild2, // #4 = $src0
/*399243*/                      OPC_CheckType, MVT::v2f64,
/*399245*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*399247*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*399250*/                      OPC_EmitMergeInputChains1_2,
/*399251*/                      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:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                                // Dst: (VPANDQZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*399265*/                    0, // EndSwitchType
/*399266*/                  /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->399303
/*399269*/                    OPC_RecordMemRef,
/*399270*/                    OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*399271*/                    OPC_CheckFoldableChainNode,
/*399272*/                    OPC_RecordChild1, // #3 = $src2
/*399273*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*399275*/                    OPC_MoveParent,
/*399276*/                    OPC_CheckType, MVT::v2i64,
/*399278*/                    OPC_MoveParent,
/*399279*/                    OPC_MoveParent,
/*399280*/                    OPC_RecordChild2, // #4 = $src0
/*399281*/                    OPC_CheckType, MVT::v2f64,
/*399283*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*399285*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*399288*/                    OPC_EmitMergeInputChains1_2,
/*399289*/                    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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                              // Dst: (VPANDQZ128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*399303*/                  0, // EndSwitchOpcode
/*399304*/                /*Scope*/ 36|128,1/*164*/, /*->399470*/
/*399306*/                  OPC_MoveChild0,
/*399307*/                  OPC_SwitchOpcode /*2 cases */, 120, TARGET_VAL(ISD::LOAD),// ->399431
/*399311*/                    OPC_RecordMemRef,
/*399312*/                    OPC_RecordNode, // #1 = 'ld' chained node
/*399313*/                    OPC_CheckFoldableChainNode,
/*399314*/                    OPC_RecordChild1, // #2 = $src2
/*399315*/                    OPC_CheckPredicate, 4, // Predicate_unindexedload
/*399317*/                    OPC_CheckPredicate, 9, // Predicate_load
/*399319*/                    OPC_MoveParent,
/*399320*/                    OPC_RecordChild1, // #3 = $src1
/*399321*/                    OPC_SwitchType /*4 cases */, 25, MVT::v2i64,// ->399349
/*399324*/                      OPC_MoveParent,
/*399325*/                      OPC_MoveParent,
/*399326*/                      OPC_RecordChild2, // #4 = $src0
/*399327*/                      OPC_CheckType, MVT::v2f64,
/*399329*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*399331*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*399334*/                      OPC_EmitMergeInputChains1_1,
/*399335*/                      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)
/*399349*/                    /*SwitchType*/ 25, MVT::v4i32,// ->399376
/*399351*/                      OPC_MoveParent,
/*399352*/                      OPC_MoveParent,
/*399353*/                      OPC_RecordChild2, // #4 = $src0
/*399354*/                      OPC_CheckType, MVT::v2f64,
/*399356*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*399358*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*399361*/                      OPC_EmitMergeInputChains1_1,
/*399362*/                      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:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4i32] }:$src1)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                                // Dst: (VPANDQZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*399376*/                    /*SwitchType*/ 25, MVT::v8i16,// ->399403
/*399378*/                      OPC_MoveParent,
/*399379*/                      OPC_MoveParent,
/*399380*/                      OPC_RecordChild2, // #4 = $src0
/*399381*/                      OPC_CheckType, MVT::v2f64,
/*399383*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*399385*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*399388*/                      OPC_EmitMergeInputChains1_1,
/*399389*/                      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:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                                // Dst: (VPANDQZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*399403*/                    /*SwitchType*/ 25, MVT::v16i8,// ->399430
/*399405*/                      OPC_MoveParent,
/*399406*/                      OPC_MoveParent,
/*399407*/                      OPC_RecordChild2, // #4 = $src0
/*399408*/                      OPC_CheckType, MVT::v2f64,
/*399410*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*399412*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*399415*/                      OPC_EmitMergeInputChains1_1,
/*399416*/                      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:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v16i8] }:$src1)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                                // Dst: (VPANDQZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*399430*/                    0, // EndSwitchType
/*399431*/                  /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->399469
/*399434*/                    OPC_RecordMemRef,
/*399435*/                    OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*399436*/                    OPC_CheckFoldableChainNode,
/*399437*/                    OPC_RecordChild1, // #2 = $src2
/*399438*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*399440*/                    OPC_MoveParent,
/*399441*/                    OPC_RecordChild1, // #3 = $src1
/*399442*/                    OPC_CheckType, MVT::v2i64,
/*399444*/                    OPC_MoveParent,
/*399445*/                    OPC_MoveParent,
/*399446*/                    OPC_RecordChild2, // #4 = $src0
/*399447*/                    OPC_CheckType, MVT::v2f64,
/*399449*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*399451*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*399454*/                    OPC_EmitMergeInputChains1_1,
/*399455*/                    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] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src1)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                              // Dst: (VPANDQZ128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*399469*/                  0, // EndSwitchOpcode
/*399470*/                0, /*End of Scope*/
/*399471*/              /*SwitchOpcode*/ 34|128,5/*674*/, TARGET_VAL(ISD::OR),// ->400149
/*399475*/                OPC_Scope, 40|128,1/*168*/, /*->399646*/ // 4 children in Scope
/*399478*/                  OPC_RecordChild0, // #1 = $src1
/*399479*/                  OPC_MoveChild1,
/*399480*/                  OPC_SwitchOpcode /*2 cases */, 123, TARGET_VAL(ISD::LOAD),// ->399607
/*399484*/                    OPC_RecordMemRef,
/*399485*/                    OPC_RecordNode, // #2 = 'ld' chained node
/*399486*/                    OPC_CheckFoldableChainNode,
/*399487*/                    OPC_RecordChild1, // #3 = $src2
/*399488*/                    OPC_CheckPredicate, 4, // Predicate_unindexedload
/*399490*/                    OPC_CheckPredicate, 9, // Predicate_load
/*399492*/                    OPC_MoveParent,
/*399493*/                    OPC_SwitchType /*4 cases */, 26, MVT::v2i64,// ->399522
/*399496*/                      OPC_MoveParent,
/*399497*/                      OPC_MoveParent,
/*399498*/                      OPC_MoveChild2,
/*399499*/                      OPC_CheckImmAllZerosV,
/*399500*/                      OPC_MoveParent,
/*399501*/                      OPC_CheckType, MVT::v2f64,
/*399503*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*399505*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*399508*/                      OPC_EmitMergeInputChains1_2,
/*399509*/                      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>>)), immAllZerosV:{ *:[v2f64] }) - Complexity = 35
                                // Dst: (VPORQZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*399522*/                    /*SwitchType*/ 26, MVT::v4i32,// ->399550
/*399524*/                      OPC_MoveParent,
/*399525*/                      OPC_MoveParent,
/*399526*/                      OPC_MoveChild2,
/*399527*/                      OPC_CheckImmAllZerosV,
/*399528*/                      OPC_MoveParent,
/*399529*/                      OPC_CheckType, MVT::v2f64,
/*399531*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*399533*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*399536*/                      OPC_EmitMergeInputChains1_2,
/*399537*/                      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:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v2f64] }) - Complexity = 35
                                // Dst: (VPORQZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*399550*/                    /*SwitchType*/ 26, MVT::v8i16,// ->399578
/*399552*/                      OPC_MoveParent,
/*399553*/                      OPC_MoveParent,
/*399554*/                      OPC_MoveChild2,
/*399555*/                      OPC_CheckImmAllZerosV,
/*399556*/                      OPC_MoveParent,
/*399557*/                      OPC_CheckType, MVT::v2f64,
/*399559*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*399561*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*399564*/                      OPC_EmitMergeInputChains1_2,
/*399565*/                      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:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v2f64] }) - Complexity = 35
                                // Dst: (VPORQZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*399578*/                    /*SwitchType*/ 26, MVT::v16i8,// ->399606
/*399580*/                      OPC_MoveParent,
/*399581*/                      OPC_MoveParent,
/*399582*/                      OPC_MoveChild2,
/*399583*/                      OPC_CheckImmAllZerosV,
/*399584*/                      OPC_MoveParent,
/*399585*/                      OPC_CheckType, MVT::v2f64,
/*399587*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*399589*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*399592*/                      OPC_EmitMergeInputChains1_2,
/*399593*/                      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:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v2f64] }) - Complexity = 35
                                // Dst: (VPORQZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*399606*/                    0, // EndSwitchType
/*399607*/                  /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->399645
/*399610*/                    OPC_RecordMemRef,
/*399611*/                    OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*399612*/                    OPC_CheckFoldableChainNode,
/*399613*/                    OPC_RecordChild1, // #3 = $src2
/*399614*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*399616*/                    OPC_MoveParent,
/*399617*/                    OPC_CheckType, MVT::v2i64,
/*399619*/                    OPC_MoveParent,
/*399620*/                    OPC_MoveParent,
/*399621*/                    OPC_MoveChild2,
/*399622*/                    OPC_CheckImmAllZerosV,
/*399623*/                    OPC_MoveParent,
/*399624*/                    OPC_CheckType, MVT::v2f64,
/*399626*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*399628*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*399631*/                    OPC_EmitMergeInputChains1_2,
/*399632*/                    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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>)), immAllZerosV:{ *:[v2f64] }) - Complexity = 35
                              // Dst: (VPORQZ128rmbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*399645*/                  0, // EndSwitchOpcode
/*399646*/                /*Scope*/ 41|128,1/*169*/, /*->399817*/
/*399648*/                  OPC_MoveChild0,
/*399649*/                  OPC_SwitchOpcode /*2 cases */, 124, TARGET_VAL(ISD::LOAD),// ->399777
/*399653*/                    OPC_RecordMemRef,
/*399654*/                    OPC_RecordNode, // #1 = 'ld' chained node
/*399655*/                    OPC_CheckFoldableChainNode,
/*399656*/                    OPC_RecordChild1, // #2 = $src2
/*399657*/                    OPC_CheckPredicate, 4, // Predicate_unindexedload
/*399659*/                    OPC_CheckPredicate, 9, // Predicate_load
/*399661*/                    OPC_MoveParent,
/*399662*/                    OPC_RecordChild1, // #3 = $src1
/*399663*/                    OPC_SwitchType /*4 cases */, 26, MVT::v2i64,// ->399692
/*399666*/                      OPC_MoveParent,
/*399667*/                      OPC_MoveParent,
/*399668*/                      OPC_MoveChild2,
/*399669*/                      OPC_CheckImmAllZerosV,
/*399670*/                      OPC_MoveParent,
/*399671*/                      OPC_CheckType, MVT::v2f64,
/*399673*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*399675*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*399678*/                      OPC_EmitMergeInputChains1_1,
/*399679*/                      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)), immAllZerosV:{ *:[v2f64] }) - Complexity = 35
                                // Dst: (VPORQZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*399692*/                    /*SwitchType*/ 26, MVT::v4i32,// ->399720
/*399694*/                      OPC_MoveParent,
/*399695*/                      OPC_MoveParent,
/*399696*/                      OPC_MoveChild2,
/*399697*/                      OPC_CheckImmAllZerosV,
/*399698*/                      OPC_MoveParent,
/*399699*/                      OPC_CheckType, MVT::v2f64,
/*399701*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*399703*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*399706*/                      OPC_EmitMergeInputChains1_1,
/*399707*/                      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:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4i32] }:$src1)), immAllZerosV:{ *:[v2f64] }) - Complexity = 35
                                // Dst: (VPORQZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*399720*/                    /*SwitchType*/ 26, MVT::v8i16,// ->399748
/*399722*/                      OPC_MoveParent,
/*399723*/                      OPC_MoveParent,
/*399724*/                      OPC_MoveChild2,
/*399725*/                      OPC_CheckImmAllZerosV,
/*399726*/                      OPC_MoveParent,
/*399727*/                      OPC_CheckType, MVT::v2f64,
/*399729*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*399731*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*399734*/                      OPC_EmitMergeInputChains1_1,
/*399735*/                      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:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1)), immAllZerosV:{ *:[v2f64] }) - Complexity = 35
                                // Dst: (VPORQZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*399748*/                    /*SwitchType*/ 26, MVT::v16i8,// ->399776
/*399750*/                      OPC_MoveParent,
/*399751*/                      OPC_MoveParent,
/*399752*/                      OPC_MoveChild2,
/*399753*/                      OPC_CheckImmAllZerosV,
/*399754*/                      OPC_MoveParent,
/*399755*/                      OPC_CheckType, MVT::v2f64,
/*399757*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*399759*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*399762*/                      OPC_EmitMergeInputChains1_1,
/*399763*/                      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:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v16i8] }:$src1)), immAllZerosV:{ *:[v2f64] }) - Complexity = 35
                                // Dst: (VPORQZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*399776*/                    0, // EndSwitchType
/*399777*/                  /*SwitchOpcode*/ 36, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->399816
/*399780*/                    OPC_RecordMemRef,
/*399781*/                    OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*399782*/                    OPC_CheckFoldableChainNode,
/*399783*/                    OPC_RecordChild1, // #2 = $src2
/*399784*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*399786*/                    OPC_MoveParent,
/*399787*/                    OPC_RecordChild1, // #3 = $src1
/*399788*/                    OPC_CheckType, MVT::v2i64,
/*399790*/                    OPC_MoveParent,
/*399791*/                    OPC_MoveParent,
/*399792*/                    OPC_MoveChild2,
/*399793*/                    OPC_CheckImmAllZerosV,
/*399794*/                    OPC_MoveParent,
/*399795*/                    OPC_CheckType, MVT::v2f64,
/*399797*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*399799*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*399802*/                    OPC_EmitMergeInputChains1_1,
/*399803*/                    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] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src1)), immAllZerosV:{ *:[v2f64] }) - Complexity = 35
                              // Dst: (VPORQZ128rmbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*399816*/                  0, // EndSwitchOpcode
/*399817*/                /*Scope*/ 35|128,1/*163*/, /*->399982*/
/*399819*/                  OPC_RecordChild0, // #1 = $src1
/*399820*/                  OPC_MoveChild1,
/*399821*/                  OPC_SwitchOpcode /*2 cases */, 119, TARGET_VAL(ISD::LOAD),// ->399944
/*399825*/                    OPC_RecordMemRef,
/*399826*/                    OPC_RecordNode, // #2 = 'ld' chained node
/*399827*/                    OPC_CheckFoldableChainNode,
/*399828*/                    OPC_RecordChild1, // #3 = $src2
/*399829*/                    OPC_CheckPredicate, 4, // Predicate_unindexedload
/*399831*/                    OPC_CheckPredicate, 9, // Predicate_load
/*399833*/                    OPC_MoveParent,
/*399834*/                    OPC_SwitchType /*4 cases */, 25, MVT::v2i64,// ->399862
/*399837*/                      OPC_MoveParent,
/*399838*/                      OPC_MoveParent,
/*399839*/                      OPC_RecordChild2, // #4 = $src0
/*399840*/                      OPC_CheckType, MVT::v2f64,
/*399842*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*399844*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*399847*/                      OPC_EmitMergeInputChains1_2,
/*399848*/                      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)
/*399862*/                    /*SwitchType*/ 25, MVT::v4i32,// ->399889
/*399864*/                      OPC_MoveParent,
/*399865*/                      OPC_MoveParent,
/*399866*/                      OPC_RecordChild2, // #4 = $src0
/*399867*/                      OPC_CheckType, MVT::v2f64,
/*399869*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*399871*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*399874*/                      OPC_EmitMergeInputChains1_2,
/*399875*/                      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:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                                // Dst: (VPORQZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*399889*/                    /*SwitchType*/ 25, MVT::v8i16,// ->399916
/*399891*/                      OPC_MoveParent,
/*399892*/                      OPC_MoveParent,
/*399893*/                      OPC_RecordChild2, // #4 = $src0
/*399894*/                      OPC_CheckType, MVT::v2f64,
/*399896*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*399898*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*399901*/                      OPC_EmitMergeInputChains1_2,
/*399902*/                      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:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                                // Dst: (VPORQZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*399916*/                    /*SwitchType*/ 25, MVT::v16i8,// ->399943
/*399918*/                      OPC_MoveParent,
/*399919*/                      OPC_MoveParent,
/*399920*/                      OPC_RecordChild2, // #4 = $src0
/*399921*/                      OPC_CheckType, MVT::v2f64,
/*399923*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*399925*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*399928*/                      OPC_EmitMergeInputChains1_2,
/*399929*/                      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:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                                // Dst: (VPORQZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*399943*/                    0, // EndSwitchType
/*399944*/                  /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->399981
/*399947*/                    OPC_RecordMemRef,
/*399948*/                    OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*399949*/                    OPC_CheckFoldableChainNode,
/*399950*/                    OPC_RecordChild1, // #3 = $src2
/*399951*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*399953*/                    OPC_MoveParent,
/*399954*/                    OPC_CheckType, MVT::v2i64,
/*399956*/                    OPC_MoveParent,
/*399957*/                    OPC_MoveParent,
/*399958*/                    OPC_RecordChild2, // #4 = $src0
/*399959*/                    OPC_CheckType, MVT::v2f64,
/*399961*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*399963*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*399966*/                    OPC_EmitMergeInputChains1_2,
/*399967*/                    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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                              // Dst: (VPORQZ128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*399981*/                  0, // EndSwitchOpcode
/*399982*/                /*Scope*/ 36|128,1/*164*/, /*->400148*/
/*399984*/                  OPC_MoveChild0,
/*399985*/                  OPC_SwitchOpcode /*2 cases */, 120, TARGET_VAL(ISD::LOAD),// ->400109
/*399989*/                    OPC_RecordMemRef,
/*399990*/                    OPC_RecordNode, // #1 = 'ld' chained node
/*399991*/                    OPC_CheckFoldableChainNode,
/*399992*/                    OPC_RecordChild1, // #2 = $src2
/*399993*/                    OPC_CheckPredicate, 4, // Predicate_unindexedload
/*399995*/                    OPC_CheckPredicate, 9, // Predicate_load
/*399997*/                    OPC_MoveParent,
/*399998*/                    OPC_RecordChild1, // #3 = $src1
/*399999*/                    OPC_SwitchType /*4 cases */, 25, MVT::v2i64,// ->400027
/*400002*/                      OPC_MoveParent,
/*400003*/                      OPC_MoveParent,
/*400004*/                      OPC_RecordChild2, // #4 = $src0
/*400005*/                      OPC_CheckType, MVT::v2f64,
/*400007*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*400009*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*400012*/                      OPC_EmitMergeInputChains1_1,
/*400013*/                      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)
/*400027*/                    /*SwitchType*/ 25, MVT::v4i32,// ->400054
/*400029*/                      OPC_MoveParent,
/*400030*/                      OPC_MoveParent,
/*400031*/                      OPC_RecordChild2, // #4 = $src0
/*400032*/                      OPC_CheckType, MVT::v2f64,
/*400034*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*400036*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*400039*/                      OPC_EmitMergeInputChains1_1,
/*400040*/                      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:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4i32] }:$src1)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                                // Dst: (VPORQZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*400054*/                    /*SwitchType*/ 25, MVT::v8i16,// ->400081
/*400056*/                      OPC_MoveParent,
/*400057*/                      OPC_MoveParent,
/*400058*/                      OPC_RecordChild2, // #4 = $src0
/*400059*/                      OPC_CheckType, MVT::v2f64,
/*400061*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*400063*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*400066*/                      OPC_EmitMergeInputChains1_1,
/*400067*/                      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:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                                // Dst: (VPORQZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*400081*/                    /*SwitchType*/ 25, MVT::v16i8,// ->400108
/*400083*/                      OPC_MoveParent,
/*400084*/                      OPC_MoveParent,
/*400085*/                      OPC_RecordChild2, // #4 = $src0
/*400086*/                      OPC_CheckType, MVT::v2f64,
/*400088*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*400090*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*400093*/                      OPC_EmitMergeInputChains1_1,
/*400094*/                      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:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v16i8] }:$src1)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                                // Dst: (VPORQZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*400108*/                    0, // EndSwitchType
/*400109*/                  /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->400147
/*400112*/                    OPC_RecordMemRef,
/*400113*/                    OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*400114*/                    OPC_CheckFoldableChainNode,
/*400115*/                    OPC_RecordChild1, // #2 = $src2
/*400116*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*400118*/                    OPC_MoveParent,
/*400119*/                    OPC_RecordChild1, // #3 = $src1
/*400120*/                    OPC_CheckType, MVT::v2i64,
/*400122*/                    OPC_MoveParent,
/*400123*/                    OPC_MoveParent,
/*400124*/                    OPC_RecordChild2, // #4 = $src0
/*400125*/                    OPC_CheckType, MVT::v2f64,
/*400127*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*400129*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*400132*/                    OPC_EmitMergeInputChains1_1,
/*400133*/                    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] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src1)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                              // Dst: (VPORQZ128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*400147*/                  0, // EndSwitchOpcode
/*400148*/                0, /*End of Scope*/
/*400149*/              /*SwitchOpcode*/ 34|128,5/*674*/, TARGET_VAL(ISD::XOR),// ->400827
/*400153*/                OPC_Scope, 40|128,1/*168*/, /*->400324*/ // 4 children in Scope
/*400156*/                  OPC_RecordChild0, // #1 = $src1
/*400157*/                  OPC_MoveChild1,
/*400158*/                  OPC_SwitchOpcode /*2 cases */, 123, TARGET_VAL(ISD::LOAD),// ->400285
/*400162*/                    OPC_RecordMemRef,
/*400163*/                    OPC_RecordNode, // #2 = 'ld' chained node
/*400164*/                    OPC_CheckFoldableChainNode,
/*400165*/                    OPC_RecordChild1, // #3 = $src2
/*400166*/                    OPC_CheckPredicate, 4, // Predicate_unindexedload
/*400168*/                    OPC_CheckPredicate, 9, // Predicate_load
/*400170*/                    OPC_MoveParent,
/*400171*/                    OPC_SwitchType /*4 cases */, 26, MVT::v2i64,// ->400200
/*400174*/                      OPC_MoveParent,
/*400175*/                      OPC_MoveParent,
/*400176*/                      OPC_MoveChild2,
/*400177*/                      OPC_CheckImmAllZerosV,
/*400178*/                      OPC_MoveParent,
/*400179*/                      OPC_CheckType, MVT::v2f64,
/*400181*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*400183*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*400186*/                      OPC_EmitMergeInputChains1_2,
/*400187*/                      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>>)), immAllZerosV:{ *:[v2f64] }) - Complexity = 35
                                // Dst: (VPXORQZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*400200*/                    /*SwitchType*/ 26, MVT::v4i32,// ->400228
/*400202*/                      OPC_MoveParent,
/*400203*/                      OPC_MoveParent,
/*400204*/                      OPC_MoveChild2,
/*400205*/                      OPC_CheckImmAllZerosV,
/*400206*/                      OPC_MoveParent,
/*400207*/                      OPC_CheckType, MVT::v2f64,
/*400209*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*400211*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*400214*/                      OPC_EmitMergeInputChains1_2,
/*400215*/                      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:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v2f64] }) - Complexity = 35
                                // Dst: (VPXORQZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*400228*/                    /*SwitchType*/ 26, MVT::v8i16,// ->400256
/*400230*/                      OPC_MoveParent,
/*400231*/                      OPC_MoveParent,
/*400232*/                      OPC_MoveChild2,
/*400233*/                      OPC_CheckImmAllZerosV,
/*400234*/                      OPC_MoveParent,
/*400235*/                      OPC_CheckType, MVT::v2f64,
/*400237*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*400239*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*400242*/                      OPC_EmitMergeInputChains1_2,
/*400243*/                      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:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v2f64] }) - Complexity = 35
                                // Dst: (VPXORQZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*400256*/                    /*SwitchType*/ 26, MVT::v16i8,// ->400284
/*400258*/                      OPC_MoveParent,
/*400259*/                      OPC_MoveParent,
/*400260*/                      OPC_MoveChild2,
/*400261*/                      OPC_CheckImmAllZerosV,
/*400262*/                      OPC_MoveParent,
/*400263*/                      OPC_CheckType, MVT::v2f64,
/*400265*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*400267*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*400270*/                      OPC_EmitMergeInputChains1_2,
/*400271*/                      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:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v2f64] }) - Complexity = 35
                                // Dst: (VPXORQZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*400284*/                    0, // EndSwitchType
/*400285*/                  /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->400323
/*400288*/                    OPC_RecordMemRef,
/*400289*/                    OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*400290*/                    OPC_CheckFoldableChainNode,
/*400291*/                    OPC_RecordChild1, // #3 = $src2
/*400292*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*400294*/                    OPC_MoveParent,
/*400295*/                    OPC_CheckType, MVT::v2i64,
/*400297*/                    OPC_MoveParent,
/*400298*/                    OPC_MoveParent,
/*400299*/                    OPC_MoveChild2,
/*400300*/                    OPC_CheckImmAllZerosV,
/*400301*/                    OPC_MoveParent,
/*400302*/                    OPC_CheckType, MVT::v2f64,
/*400304*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*400306*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*400309*/                    OPC_EmitMergeInputChains1_2,
/*400310*/                    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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>)), immAllZerosV:{ *:[v2f64] }) - Complexity = 35
                              // Dst: (VPXORQZ128rmbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*400323*/                  0, // EndSwitchOpcode
/*400324*/                /*Scope*/ 41|128,1/*169*/, /*->400495*/
/*400326*/                  OPC_MoveChild0,
/*400327*/                  OPC_SwitchOpcode /*2 cases */, 124, TARGET_VAL(ISD::LOAD),// ->400455
/*400331*/                    OPC_RecordMemRef,
/*400332*/                    OPC_RecordNode, // #1 = 'ld' chained node
/*400333*/                    OPC_CheckFoldableChainNode,
/*400334*/                    OPC_RecordChild1, // #2 = $src2
/*400335*/                    OPC_CheckPredicate, 4, // Predicate_unindexedload
/*400337*/                    OPC_CheckPredicate, 9, // Predicate_load
/*400339*/                    OPC_MoveParent,
/*400340*/                    OPC_RecordChild1, // #3 = $src1
/*400341*/                    OPC_SwitchType /*4 cases */, 26, MVT::v2i64,// ->400370
/*400344*/                      OPC_MoveParent,
/*400345*/                      OPC_MoveParent,
/*400346*/                      OPC_MoveChild2,
/*400347*/                      OPC_CheckImmAllZerosV,
/*400348*/                      OPC_MoveParent,
/*400349*/                      OPC_CheckType, MVT::v2f64,
/*400351*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*400353*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*400356*/                      OPC_EmitMergeInputChains1_1,
/*400357*/                      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)), immAllZerosV:{ *:[v2f64] }) - Complexity = 35
                                // Dst: (VPXORQZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*400370*/                    /*SwitchType*/ 26, MVT::v4i32,// ->400398
/*400372*/                      OPC_MoveParent,
/*400373*/                      OPC_MoveParent,
/*400374*/                      OPC_MoveChild2,
/*400375*/                      OPC_CheckImmAllZerosV,
/*400376*/                      OPC_MoveParent,
/*400377*/                      OPC_CheckType, MVT::v2f64,
/*400379*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*400381*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*400384*/                      OPC_EmitMergeInputChains1_1,
/*400385*/                      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:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4i32] }:$src1)), immAllZerosV:{ *:[v2f64] }) - Complexity = 35
                                // Dst: (VPXORQZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*400398*/                    /*SwitchType*/ 26, MVT::v8i16,// ->400426
/*400400*/                      OPC_MoveParent,
/*400401*/                      OPC_MoveParent,
/*400402*/                      OPC_MoveChild2,
/*400403*/                      OPC_CheckImmAllZerosV,
/*400404*/                      OPC_MoveParent,
/*400405*/                      OPC_CheckType, MVT::v2f64,
/*400407*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*400409*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*400412*/                      OPC_EmitMergeInputChains1_1,
/*400413*/                      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:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1)), immAllZerosV:{ *:[v2f64] }) - Complexity = 35
                                // Dst: (VPXORQZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*400426*/                    /*SwitchType*/ 26, MVT::v16i8,// ->400454
/*400428*/                      OPC_MoveParent,
/*400429*/                      OPC_MoveParent,
/*400430*/                      OPC_MoveChild2,
/*400431*/                      OPC_CheckImmAllZerosV,
/*400432*/                      OPC_MoveParent,
/*400433*/                      OPC_CheckType, MVT::v2f64,
/*400435*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*400437*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*400440*/                      OPC_EmitMergeInputChains1_1,
/*400441*/                      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:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v16i8] }:$src1)), immAllZerosV:{ *:[v2f64] }) - Complexity = 35
                                // Dst: (VPXORQZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*400454*/                    0, // EndSwitchType
/*400455*/                  /*SwitchOpcode*/ 36, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->400494
/*400458*/                    OPC_RecordMemRef,
/*400459*/                    OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*400460*/                    OPC_CheckFoldableChainNode,
/*400461*/                    OPC_RecordChild1, // #2 = $src2
/*400462*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*400464*/                    OPC_MoveParent,
/*400465*/                    OPC_RecordChild1, // #3 = $src1
/*400466*/                    OPC_CheckType, MVT::v2i64,
/*400468*/                    OPC_MoveParent,
/*400469*/                    OPC_MoveParent,
/*400470*/                    OPC_MoveChild2,
/*400471*/                    OPC_CheckImmAllZerosV,
/*400472*/                    OPC_MoveParent,
/*400473*/                    OPC_CheckType, MVT::v2f64,
/*400475*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*400477*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*400480*/                    OPC_EmitMergeInputChains1_1,
/*400481*/                    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] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src1)), immAllZerosV:{ *:[v2f64] }) - Complexity = 35
                              // Dst: (VPXORQZ128rmbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*400494*/                  0, // EndSwitchOpcode
/*400495*/                /*Scope*/ 35|128,1/*163*/, /*->400660*/
/*400497*/                  OPC_RecordChild0, // #1 = $src1
/*400498*/                  OPC_MoveChild1,
/*400499*/                  OPC_SwitchOpcode /*2 cases */, 119, TARGET_VAL(ISD::LOAD),// ->400622
/*400503*/                    OPC_RecordMemRef,
/*400504*/                    OPC_RecordNode, // #2 = 'ld' chained node
/*400505*/                    OPC_CheckFoldableChainNode,
/*400506*/                    OPC_RecordChild1, // #3 = $src2
/*400507*/                    OPC_CheckPredicate, 4, // Predicate_unindexedload
/*400509*/                    OPC_CheckPredicate, 9, // Predicate_load
/*400511*/                    OPC_MoveParent,
/*400512*/                    OPC_SwitchType /*4 cases */, 25, MVT::v2i64,// ->400540
/*400515*/                      OPC_MoveParent,
/*400516*/                      OPC_MoveParent,
/*400517*/                      OPC_RecordChild2, // #4 = $src0
/*400518*/                      OPC_CheckType, MVT::v2f64,
/*400520*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*400522*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*400525*/                      OPC_EmitMergeInputChains1_2,
/*400526*/                      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)
/*400540*/                    /*SwitchType*/ 25, MVT::v4i32,// ->400567
/*400542*/                      OPC_MoveParent,
/*400543*/                      OPC_MoveParent,
/*400544*/                      OPC_RecordChild2, // #4 = $src0
/*400545*/                      OPC_CheckType, MVT::v2f64,
/*400547*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*400549*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*400552*/                      OPC_EmitMergeInputChains1_2,
/*400553*/                      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:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                                // Dst: (VPXORQZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*400567*/                    /*SwitchType*/ 25, MVT::v8i16,// ->400594
/*400569*/                      OPC_MoveParent,
/*400570*/                      OPC_MoveParent,
/*400571*/                      OPC_RecordChild2, // #4 = $src0
/*400572*/                      OPC_CheckType, MVT::v2f64,
/*400574*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*400576*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*400579*/                      OPC_EmitMergeInputChains1_2,
/*400580*/                      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:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                                // Dst: (VPXORQZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*400594*/                    /*SwitchType*/ 25, MVT::v16i8,// ->400621
/*400596*/                      OPC_MoveParent,
/*400597*/                      OPC_MoveParent,
/*400598*/                      OPC_RecordChild2, // #4 = $src0
/*400599*/                      OPC_CheckType, MVT::v2f64,
/*400601*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*400603*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*400606*/                      OPC_EmitMergeInputChains1_2,
/*400607*/                      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:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                                // Dst: (VPXORQZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*400621*/                    0, // EndSwitchType
/*400622*/                  /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->400659
/*400625*/                    OPC_RecordMemRef,
/*400626*/                    OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*400627*/                    OPC_CheckFoldableChainNode,
/*400628*/                    OPC_RecordChild1, // #3 = $src2
/*400629*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*400631*/                    OPC_MoveParent,
/*400632*/                    OPC_CheckType, MVT::v2i64,
/*400634*/                    OPC_MoveParent,
/*400635*/                    OPC_MoveParent,
/*400636*/                    OPC_RecordChild2, // #4 = $src0
/*400637*/                    OPC_CheckType, MVT::v2f64,
/*400639*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*400641*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*400644*/                    OPC_EmitMergeInputChains1_2,
/*400645*/                    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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                              // Dst: (VPXORQZ128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*400659*/                  0, // EndSwitchOpcode
/*400660*/                /*Scope*/ 36|128,1/*164*/, /*->400826*/
/*400662*/                  OPC_MoveChild0,
/*400663*/                  OPC_SwitchOpcode /*2 cases */, 120, TARGET_VAL(ISD::LOAD),// ->400787
/*400667*/                    OPC_RecordMemRef,
/*400668*/                    OPC_RecordNode, // #1 = 'ld' chained node
/*400669*/                    OPC_CheckFoldableChainNode,
/*400670*/                    OPC_RecordChild1, // #2 = $src2
/*400671*/                    OPC_CheckPredicate, 4, // Predicate_unindexedload
/*400673*/                    OPC_CheckPredicate, 9, // Predicate_load
/*400675*/                    OPC_MoveParent,
/*400676*/                    OPC_RecordChild1, // #3 = $src1
/*400677*/                    OPC_SwitchType /*4 cases */, 25, MVT::v2i64,// ->400705
/*400680*/                      OPC_MoveParent,
/*400681*/                      OPC_MoveParent,
/*400682*/                      OPC_RecordChild2, // #4 = $src0
/*400683*/                      OPC_CheckType, MVT::v2f64,
/*400685*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*400687*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*400690*/                      OPC_EmitMergeInputChains1_1,
/*400691*/                      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)
/*400705*/                    /*SwitchType*/ 25, MVT::v4i32,// ->400732
/*400707*/                      OPC_MoveParent,
/*400708*/                      OPC_MoveParent,
/*400709*/                      OPC_RecordChild2, // #4 = $src0
/*400710*/                      OPC_CheckType, MVT::v2f64,
/*400712*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*400714*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*400717*/                      OPC_EmitMergeInputChains1_1,
/*400718*/                      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:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4i32] }:$src1)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                                // Dst: (VPXORQZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*400732*/                    /*SwitchType*/ 25, MVT::v8i16,// ->400759
/*400734*/                      OPC_MoveParent,
/*400735*/                      OPC_MoveParent,
/*400736*/                      OPC_RecordChild2, // #4 = $src0
/*400737*/                      OPC_CheckType, MVT::v2f64,
/*400739*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*400741*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*400744*/                      OPC_EmitMergeInputChains1_1,
/*400745*/                      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:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                                // Dst: (VPXORQZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*400759*/                    /*SwitchType*/ 25, MVT::v16i8,// ->400786
/*400761*/                      OPC_MoveParent,
/*400762*/                      OPC_MoveParent,
/*400763*/                      OPC_RecordChild2, // #4 = $src0
/*400764*/                      OPC_CheckType, MVT::v2f64,
/*400766*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*400768*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*400771*/                      OPC_EmitMergeInputChains1_1,
/*400772*/                      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:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v16i8] }:$src1)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                                // Dst: (VPXORQZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*400786*/                    0, // EndSwitchType
/*400787*/                  /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->400825
/*400790*/                    OPC_RecordMemRef,
/*400791*/                    OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*400792*/                    OPC_CheckFoldableChainNode,
/*400793*/                    OPC_RecordChild1, // #2 = $src2
/*400794*/                    OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*400796*/                    OPC_MoveParent,
/*400797*/                    OPC_RecordChild1, // #3 = $src1
/*400798*/                    OPC_CheckType, MVT::v2i64,
/*400800*/                    OPC_MoveParent,
/*400801*/                    OPC_MoveParent,
/*400802*/                    OPC_RecordChild2, // #4 = $src0
/*400803*/                    OPC_CheckType, MVT::v2f64,
/*400805*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*400807*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*400810*/                    OPC_EmitMergeInputChains1_1,
/*400811*/                    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] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src1)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                              // Dst: (VPXORQZ128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*400825*/                  0, // EndSwitchOpcode
/*400826*/                0, /*End of Scope*/
/*400827*/              /*SwitchOpcode*/ 48|128,2/*304*/, TARGET_VAL(X86ISD::ANDNP),// ->401135
/*400831*/                OPC_RecordChild0, // #1 = $src1
/*400832*/                OPC_MoveChild1,
/*400833*/                OPC_SwitchOpcode /*2 cases */, 103|128,1/*231*/, TARGET_VAL(ISD::LOAD),// ->401069
/*400838*/                  OPC_RecordMemRef,
/*400839*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*400840*/                  OPC_CheckFoldableChainNode,
/*400841*/                  OPC_RecordChild1, // #3 = $src2
/*400842*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*400844*/                  OPC_CheckPredicate, 9, // Predicate_load
/*400846*/                  OPC_MoveParent,
/*400847*/                  OPC_SwitchType /*4 cases */, 53, MVT::v2i64,// ->400903
/*400850*/                    OPC_MoveParent,
/*400851*/                    OPC_MoveParent,
/*400852*/                    OPC_Scope, 24, /*->400878*/ // 2 children in Scope
/*400854*/                      OPC_MoveChild2,
/*400855*/                      OPC_CheckImmAllZerosV,
/*400856*/                      OPC_MoveParent,
/*400857*/                      OPC_CheckType, MVT::v2f64,
/*400859*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*400861*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*400864*/                      OPC_EmitMergeInputChains1_2,
/*400865*/                      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>>)), immAllZerosV:{ *:[v2f64] }) - Complexity = 35
                                // Dst: (VPANDNQZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*400878*/                    /*Scope*/ 23, /*->400902*/
/*400879*/                      OPC_RecordChild2, // #4 = $src0
/*400880*/                      OPC_CheckType, MVT::v2f64,
/*400882*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*400884*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*400887*/                      OPC_EmitMergeInputChains1_2,
/*400888*/                      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)
/*400902*/                    0, /*End of Scope*/
/*400903*/                  /*SwitchType*/ 53, MVT::v4i32,// ->400958
/*400905*/                    OPC_MoveParent,
/*400906*/                    OPC_MoveParent,
/*400907*/                    OPC_Scope, 24, /*->400933*/ // 2 children in Scope
/*400909*/                      OPC_MoveChild2,
/*400910*/                      OPC_CheckImmAllZerosV,
/*400911*/                      OPC_MoveParent,
/*400912*/                      OPC_CheckType, MVT::v2f64,
/*400914*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*400916*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*400919*/                      OPC_EmitMergeInputChains1_2,
/*400920*/                      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:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v2f64] }) - Complexity = 35
                                // Dst: (VPANDNQZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*400933*/                    /*Scope*/ 23, /*->400957*/
/*400934*/                      OPC_RecordChild2, // #4 = $src0
/*400935*/                      OPC_CheckType, MVT::v2f64,
/*400937*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*400939*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*400942*/                      OPC_EmitMergeInputChains1_2,
/*400943*/                      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:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                                // Dst: (VPANDNQZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*400957*/                    0, /*End of Scope*/
/*400958*/                  /*SwitchType*/ 53, MVT::v8i16,// ->401013
/*400960*/                    OPC_MoveParent,
/*400961*/                    OPC_MoveParent,
/*400962*/                    OPC_Scope, 24, /*->400988*/ // 2 children in Scope
/*400964*/                      OPC_MoveChild2,
/*400965*/                      OPC_CheckImmAllZerosV,
/*400966*/                      OPC_MoveParent,
/*400967*/                      OPC_CheckType, MVT::v2f64,
/*400969*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*400971*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*400974*/                      OPC_EmitMergeInputChains1_2,
/*400975*/                      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:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v2f64] }) - Complexity = 35
                                // Dst: (VPANDNQZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*400988*/                    /*Scope*/ 23, /*->401012*/
/*400989*/                      OPC_RecordChild2, // #4 = $src0
/*400990*/                      OPC_CheckType, MVT::v2f64,
/*400992*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*400994*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*400997*/                      OPC_EmitMergeInputChains1_2,
/*400998*/                      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:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                                // Dst: (VPANDNQZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*401012*/                    0, /*End of Scope*/
/*401013*/                  /*SwitchType*/ 53, MVT::v16i8,// ->401068
/*401015*/                    OPC_MoveParent,
/*401016*/                    OPC_MoveParent,
/*401017*/                    OPC_Scope, 24, /*->401043*/ // 2 children in Scope
/*401019*/                      OPC_MoveChild2,
/*401020*/                      OPC_CheckImmAllZerosV,
/*401021*/                      OPC_MoveParent,
/*401022*/                      OPC_CheckType, MVT::v2f64,
/*401024*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*401026*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*401029*/                      OPC_EmitMergeInputChains1_2,
/*401030*/                      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:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), immAllZerosV:{ *:[v2f64] }) - Complexity = 35
                                // Dst: (VPANDNQZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*401043*/                    /*Scope*/ 23, /*->401067*/
/*401044*/                      OPC_RecordChild2, // #4 = $src0
/*401045*/                      OPC_CheckType, MVT::v2f64,
/*401047*/                      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*401049*/                      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*401052*/                      OPC_EmitMergeInputChains1_2,
/*401053*/                      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:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                                // Dst: (VPANDNQZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*401067*/                    0, /*End of Scope*/
/*401068*/                  0, // EndSwitchType
/*401069*/                /*SwitchOpcode*/ 62, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->401134
/*401072*/                  OPC_RecordMemRef,
/*401073*/                  OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*401074*/                  OPC_CheckFoldableChainNode,
/*401075*/                  OPC_RecordChild1, // #3 = $src2
/*401076*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*401078*/                  OPC_MoveParent,
/*401079*/                  OPC_CheckType, MVT::v2i64,
/*401081*/                  OPC_MoveParent,
/*401082*/                  OPC_MoveParent,
/*401083*/                  OPC_Scope, 24, /*->401109*/ // 2 children in Scope
/*401085*/                    OPC_MoveChild2,
/*401086*/                    OPC_CheckImmAllZerosV,
/*401087*/                    OPC_MoveParent,
/*401088*/                    OPC_CheckType, MVT::v2f64,
/*401090*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*401092*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*401095*/                    OPC_EmitMergeInputChains1_2,
/*401096*/                    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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>)), immAllZerosV:{ *:[v2f64] }) - Complexity = 35
                              // Dst: (VPANDNQZ128rmbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*401109*/                  /*Scope*/ 23, /*->401133*/
/*401110*/                    OPC_RecordChild2, // #4 = $src0
/*401111*/                    OPC_CheckType, MVT::v2f64,
/*401113*/                    OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*401115*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*401118*/                    OPC_EmitMergeInputChains1_2,
/*401119*/                    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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                              // Dst: (VPANDNQZ128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*401133*/                  0, /*End of Scope*/
/*401134*/                0, // EndSwitchOpcode
/*401135*/              0, // EndSwitchOpcode
/*401136*/            /*Scope*/ 78, /*->401215*/
/*401137*/              OPC_RecordChild0, // #1 = $ext
/*401138*/              OPC_MoveChild0,
/*401139*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/*401142*/              OPC_RecordChild0, // #2 = $src
/*401143*/              OPC_Scope, 34, /*->401179*/ // 2 children in Scope
/*401145*/                OPC_CheckChild0Type, MVT::v8f32,
/*401147*/                OPC_MoveChild1,
/*401148*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*401151*/                OPC_CheckType, MVT::iPTR,
/*401153*/                OPC_MoveParent,
/*401154*/                OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/*401156*/                OPC_CheckType, MVT::v4f32,
/*401158*/                OPC_MoveParent,
/*401159*/                OPC_MoveParent,
/*401160*/                OPC_MoveChild2,
/*401161*/                OPC_CheckImmAllZerosV,
/*401162*/                OPC_MoveParent,
/*401163*/                OPC_CheckType, MVT::v2f64,
/*401165*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*401167*/                OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*401170*/                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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext), immAllZerosV:{ *:[v2f64] }) - Complexity = 17
                          // Dst: (VEXTRACTF64x2Z256rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR256X:{ *:[v8f32] }:$src, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v4f32] }:$ext))
/*401179*/              /*Scope*/ 34, /*->401214*/
/*401180*/                OPC_CheckChild0Type, MVT::v16f32,
/*401182*/                OPC_MoveChild1,
/*401183*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*401186*/                OPC_CheckType, MVT::iPTR,
/*401188*/                OPC_MoveParent,
/*401189*/                OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/*401191*/                OPC_CheckType, MVT::v4f32,
/*401193*/                OPC_MoveParent,
/*401194*/                OPC_MoveParent,
/*401195*/                OPC_MoveChild2,
/*401196*/                OPC_CheckImmAllZerosV,
/*401197*/                OPC_MoveParent,
/*401198*/                OPC_CheckType, MVT::v2f64,
/*401200*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*401202*/                OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*401205*/                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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext), immAllZerosV:{ *:[v2f64] }) - Complexity = 17
                          // Dst: (VEXTRACTF64x2Zrrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR512:{ *:[v16f32] }:$src, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v4f32] }:$ext))
/*401214*/              0, /*End of Scope*/
/*401215*/            0, /*End of Scope*/
/*401216*/          /*SwitchOpcode*/ 13|128,1/*141*/, TARGET_VAL(X86ISD::VPERMILPI),// ->401361
/*401220*/            OPC_MoveChild0,
/*401221*/            OPC_SwitchOpcode /*2 cases */, 67, TARGET_VAL(ISD::LOAD),// ->401292
/*401225*/              OPC_RecordMemRef,
/*401226*/              OPC_RecordNode, // #1 = 'ld' chained node
/*401227*/              OPC_CheckFoldableChainNode,
/*401228*/              OPC_RecordChild1, // #2 = $src1
/*401229*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*401231*/              OPC_CheckPredicate, 9, // Predicate_load
/*401233*/              OPC_MoveParent,
/*401234*/              OPC_RecordChild1, // #3 = $src2
/*401235*/              OPC_MoveChild1,
/*401236*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*401239*/              OPC_MoveParent,
/*401240*/              OPC_MoveParent,
/*401241*/              OPC_Scope, 24, /*->401267*/ // 2 children in Scope
/*401243*/                OPC_MoveChild2,
/*401244*/                OPC_CheckImmAllZerosV,
/*401245*/                OPC_MoveParent,
/*401246*/                OPC_CheckType, MVT::v2f64,
/*401248*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*401250*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*401253*/                OPC_EmitMergeInputChains1_1,
/*401254*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZ128mikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VPermilpi:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v2f64] }) - Complexity = 35
                          // Dst: (VPERMILPDZ128mikz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*401267*/              /*Scope*/ 23, /*->401291*/
/*401268*/                OPC_RecordChild2, // #4 = $src0
/*401269*/                OPC_CheckType, MVT::v2f64,
/*401271*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*401273*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*401276*/                OPC_EmitMergeInputChains1_1,
/*401277*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZ128mik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VPermilpi:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                          // Dst: (VPERMILPDZ128mik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*401291*/              0, /*End of Scope*/
/*401292*/            /*SwitchOpcode*/ 65, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->401360
/*401295*/              OPC_RecordMemRef,
/*401296*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*401297*/              OPC_CheckFoldableChainNode,
/*401298*/              OPC_RecordChild1, // #2 = $src1
/*401299*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*401301*/              OPC_MoveParent,
/*401302*/              OPC_RecordChild1, // #3 = $src2
/*401303*/              OPC_MoveChild1,
/*401304*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*401307*/              OPC_MoveParent,
/*401308*/              OPC_MoveParent,
/*401309*/              OPC_Scope, 24, /*->401335*/ // 2 children in Scope
/*401311*/                OPC_MoveChild2,
/*401312*/                OPC_CheckImmAllZerosV,
/*401313*/                OPC_MoveParent,
/*401314*/                OPC_CheckType, MVT::v2f64,
/*401316*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*401318*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*401321*/                OPC_EmitMergeInputChains1_1,
/*401322*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZ128mbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VPermilpi:{ *:[v2f64] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v2f64] }) - Complexity = 35
                          // Dst: (VPERMILPDZ128mbikz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*401335*/              /*Scope*/ 23, /*->401359*/
/*401336*/                OPC_RecordChild2, // #4 = $src0
/*401337*/                OPC_CheckType, MVT::v2f64,
/*401339*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*401341*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*401344*/                OPC_EmitMergeInputChains1_1,
/*401345*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZ128mbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VPermilpi:{ *:[v2f64] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src2), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                          // Dst: (VPERMILPDZ128mbik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*401359*/              0, /*End of Scope*/
/*401360*/            0, // EndSwitchOpcode
/*401361*/          /*SwitchOpcode*/ 13|128,1/*141*/, TARGET_VAL(X86ISD::VREDUCE),// ->401506
/*401365*/            OPC_MoveChild0,
/*401366*/            OPC_SwitchOpcode /*2 cases */, 67, TARGET_VAL(ISD::LOAD),// ->401437
/*401370*/              OPC_RecordMemRef,
/*401371*/              OPC_RecordNode, // #1 = 'ld' chained node
/*401372*/              OPC_CheckFoldableChainNode,
/*401373*/              OPC_RecordChild1, // #2 = $src1
/*401374*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*401376*/              OPC_CheckPredicate, 9, // Predicate_load
/*401378*/              OPC_MoveParent,
/*401379*/              OPC_RecordChild1, // #3 = $src2
/*401380*/              OPC_MoveChild1,
/*401381*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*401384*/              OPC_MoveParent,
/*401385*/              OPC_MoveParent,
/*401386*/              OPC_Scope, 24, /*->401412*/ // 2 children in Scope
/*401388*/                OPC_MoveChild2,
/*401389*/                OPC_CheckImmAllZerosV,
/*401390*/                OPC_MoveParent,
/*401391*/                OPC_CheckType, MVT::v2f64,
/*401393*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*401395*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*401398*/                OPC_EmitMergeInputChains1_1,
/*401399*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPDZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VReduce:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v2f64] }) - Complexity = 35
                          // Dst: (VREDUCEPDZ128rmikz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*401412*/              /*Scope*/ 23, /*->401436*/
/*401413*/                OPC_RecordChild2, // #4 = $src0
/*401414*/                OPC_CheckType, MVT::v2f64,
/*401416*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*401418*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*401421*/                OPC_EmitMergeInputChains1_1,
/*401422*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPDZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VReduce:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                          // Dst: (VREDUCEPDZ128rmik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*401436*/              0, /*End of Scope*/
/*401437*/            /*SwitchOpcode*/ 65, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->401505
/*401440*/              OPC_RecordMemRef,
/*401441*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*401442*/              OPC_CheckFoldableChainNode,
/*401443*/              OPC_RecordChild1, // #2 = $src1
/*401444*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*401446*/              OPC_MoveParent,
/*401447*/              OPC_RecordChild1, // #3 = $src2
/*401448*/              OPC_MoveChild1,
/*401449*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*401452*/              OPC_MoveParent,
/*401453*/              OPC_MoveParent,
/*401454*/              OPC_Scope, 24, /*->401480*/ // 2 children in Scope
/*401456*/                OPC_MoveChild2,
/*401457*/                OPC_CheckImmAllZerosV,
/*401458*/                OPC_MoveParent,
/*401459*/                OPC_CheckType, MVT::v2f64,
/*401461*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*401463*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*401466*/                OPC_EmitMergeInputChains1_1,
/*401467*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPDZ128rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VReduce:{ *:[v2f64] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v2f64] }) - Complexity = 35
                          // Dst: (VREDUCEPDZ128rmbikz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*401480*/              /*Scope*/ 23, /*->401504*/
/*401481*/                OPC_RecordChild2, // #4 = $src0
/*401482*/                OPC_CheckType, MVT::v2f64,
/*401484*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*401486*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*401489*/                OPC_EmitMergeInputChains1_1,
/*401490*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPDZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VReduce:{ *:[v2f64] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i32] }):$src2), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                          // Dst: (VREDUCEPDZ128rmbik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*401504*/              0, /*End of Scope*/
/*401505*/            0, // EndSwitchOpcode
/*401506*/          /*SwitchOpcode*/ 27|128,1/*155*/, TARGET_VAL(X86ISD::STRICT_VRNDSCALE),// ->401665
/*401510*/            OPC_RecordNode, // #1 = 'X86strict_VRndScale' chained node
/*401511*/            OPC_CheckFoldableChainNode,
/*401512*/            OPC_MoveChild1,
/*401513*/            OPC_SwitchOpcode /*2 cases */, 73, TARGET_VAL(ISD::LOAD),// ->401590
/*401517*/              OPC_RecordMemRef,
/*401518*/              OPC_RecordNode, // #2 = 'ld' chained node
/*401519*/              OPC_CheckFoldableChainNode,
/*401520*/              OPC_RecordChild1, // #3 = $src1
/*401521*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*401523*/              OPC_CheckPredicate, 9, // Predicate_load
/*401525*/              OPC_MoveParent,
/*401526*/              OPC_RecordChild2, // #4 = $src2
/*401527*/              OPC_MoveChild2,
/*401528*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*401531*/              OPC_MoveParent,
/*401532*/              OPC_MoveParent,
/*401533*/              OPC_Scope, 27, /*->401562*/ // 2 children in Scope
/*401535*/                OPC_MoveChild2,
/*401536*/                OPC_CheckImmAllZerosV,
/*401537*/                OPC_MoveParent,
/*401538*/                OPC_CheckType, MVT::v2f64,
/*401540*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*401542*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src1 #5 #6 #7 #8 #9
/*401545*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*401549*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_VRndScale:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v2f64] }) - Complexity = 35
                          // Dst: (VRNDSCALEPDZ128rmikz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*401562*/              /*Scope*/ 26, /*->401589*/
/*401563*/                OPC_RecordChild2, // #5 = $src0
/*401564*/                OPC_CheckType, MVT::v2f64,
/*401566*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*401568*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src1 #6 #7 #8 #9 #10
/*401571*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*401575*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 5, 0, 6, 7, 8, 9, 10, 4, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_VRndScale:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                          // Dst: (VRNDSCALEPDZ128rmik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*401589*/              0, /*End of Scope*/
/*401590*/            /*SwitchOpcode*/ 71, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->401664
/*401593*/              OPC_RecordMemRef,
/*401594*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*401595*/              OPC_CheckFoldableChainNode,
/*401596*/              OPC_RecordChild1, // #3 = $src1
/*401597*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*401599*/              OPC_MoveParent,
/*401600*/              OPC_RecordChild2, // #4 = $src2
/*401601*/              OPC_MoveChild2,
/*401602*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*401605*/              OPC_MoveParent,
/*401606*/              OPC_MoveParent,
/*401607*/              OPC_Scope, 27, /*->401636*/ // 2 children in Scope
/*401609*/                OPC_MoveChild2,
/*401610*/                OPC_CheckImmAllZerosV,
/*401611*/                OPC_MoveParent,
/*401612*/                OPC_CheckType, MVT::v2f64,
/*401614*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*401616*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src1 #5 #6 #7 #8 #9
/*401619*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*401623*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_VRndScale:{ *:[v2f64] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v2f64] }) - Complexity = 35
                          // Dst: (VRNDSCALEPDZ128rmbikz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*401636*/              /*Scope*/ 26, /*->401663*/
/*401637*/                OPC_RecordChild2, // #5 = $src0
/*401638*/                OPC_CheckType, MVT::v2f64,
/*401640*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*401642*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src1 #6 #7 #8 #9 #10
/*401645*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*401649*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 5, 0, 6, 7, 8, 9, 10, 4, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_VRndScale:{ *:[v2f64] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i32] }):$src2), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                          // Dst: (VRNDSCALEPDZ128rmbik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*401663*/              0, /*End of Scope*/
/*401664*/            0, // EndSwitchOpcode
/*401665*/          /*SwitchOpcode*/ 13|128,1/*141*/, TARGET_VAL(X86ISD::VRNDSCALE),// ->401810
/*401669*/            OPC_MoveChild0,
/*401670*/            OPC_SwitchOpcode /*2 cases */, 67, TARGET_VAL(ISD::LOAD),// ->401741
/*401674*/              OPC_RecordMemRef,
/*401675*/              OPC_RecordNode, // #1 = 'ld' chained node
/*401676*/              OPC_CheckFoldableChainNode,
/*401677*/              OPC_RecordChild1, // #2 = $src1
/*401678*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*401680*/              OPC_CheckPredicate, 9, // Predicate_load
/*401682*/              OPC_MoveParent,
/*401683*/              OPC_RecordChild1, // #3 = $src2
/*401684*/              OPC_MoveChild1,
/*401685*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*401688*/              OPC_MoveParent,
/*401689*/              OPC_MoveParent,
/*401690*/              OPC_Scope, 24, /*->401716*/ // 2 children in Scope
/*401692*/                OPC_MoveChild2,
/*401693*/                OPC_CheckImmAllZerosV,
/*401694*/                OPC_MoveParent,
/*401695*/                OPC_CheckType, MVT::v2f64,
/*401697*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*401699*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*401702*/                OPC_EmitMergeInputChains1_1,
/*401703*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VRndScale:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v2f64] }) - Complexity = 35
                          // Dst: (VRNDSCALEPDZ128rmikz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*401716*/              /*Scope*/ 23, /*->401740*/
/*401717*/                OPC_RecordChild2, // #4 = $src0
/*401718*/                OPC_CheckType, MVT::v2f64,
/*401720*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*401722*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*401725*/                OPC_EmitMergeInputChains1_1,
/*401726*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VRndScale:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                          // Dst: (VRNDSCALEPDZ128rmik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*401740*/              0, /*End of Scope*/
/*401741*/            /*SwitchOpcode*/ 65, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->401809
/*401744*/              OPC_RecordMemRef,
/*401745*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*401746*/              OPC_CheckFoldableChainNode,
/*401747*/              OPC_RecordChild1, // #2 = $src1
/*401748*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*401750*/              OPC_MoveParent,
/*401751*/              OPC_RecordChild1, // #3 = $src2
/*401752*/              OPC_MoveChild1,
/*401753*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*401756*/              OPC_MoveParent,
/*401757*/              OPC_MoveParent,
/*401758*/              OPC_Scope, 24, /*->401784*/ // 2 children in Scope
/*401760*/                OPC_MoveChild2,
/*401761*/                OPC_CheckImmAllZerosV,
/*401762*/                OPC_MoveParent,
/*401763*/                OPC_CheckType, MVT::v2f64,
/*401765*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*401767*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*401770*/                OPC_EmitMergeInputChains1_1,
/*401771*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VRndScale:{ *:[v2f64] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v2f64] }) - Complexity = 35
                          // Dst: (VRNDSCALEPDZ128rmbikz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*401784*/              /*Scope*/ 23, /*->401808*/
/*401785*/                OPC_RecordChild2, // #4 = $src0
/*401786*/                OPC_CheckType, MVT::v2f64,
/*401788*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*401790*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*401793*/                OPC_EmitMergeInputChains1_1,
/*401794*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VRndScale:{ *:[v2f64] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i32] }):$src2), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                          // Dst: (VRNDSCALEPDZ128rmbik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*401808*/              0, /*End of Scope*/
/*401809*/            0, // EndSwitchOpcode
/*401810*/          /*SwitchOpcode*/ 13|128,1/*141*/, TARGET_VAL(X86ISD::VGETMANT),// ->401955
/*401814*/            OPC_MoveChild0,
/*401815*/            OPC_SwitchOpcode /*2 cases */, 67, TARGET_VAL(ISD::LOAD),// ->401886
/*401819*/              OPC_RecordMemRef,
/*401820*/              OPC_RecordNode, // #1 = 'ld' chained node
/*401821*/              OPC_CheckFoldableChainNode,
/*401822*/              OPC_RecordChild1, // #2 = $src1
/*401823*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*401825*/              OPC_CheckPredicate, 9, // Predicate_load
/*401827*/              OPC_MoveParent,
/*401828*/              OPC_RecordChild1, // #3 = $src2
/*401829*/              OPC_MoveChild1,
/*401830*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*401833*/              OPC_MoveParent,
/*401834*/              OPC_MoveParent,
/*401835*/              OPC_Scope, 24, /*->401861*/ // 2 children in Scope
/*401837*/                OPC_MoveChild2,
/*401838*/                OPC_CheckImmAllZerosV,
/*401839*/                OPC_MoveParent,
/*401840*/                OPC_CheckType, MVT::v2f64,
/*401842*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*401844*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*401847*/                OPC_EmitMergeInputChains1_1,
/*401848*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPDZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VGetMant:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v2f64] }) - Complexity = 35
                          // Dst: (VGETMANTPDZ128rmikz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*401861*/              /*Scope*/ 23, /*->401885*/
/*401862*/                OPC_RecordChild2, // #4 = $src0
/*401863*/                OPC_CheckType, MVT::v2f64,
/*401865*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*401867*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*401870*/                OPC_EmitMergeInputChains1_1,
/*401871*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPDZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VGetMant:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                          // Dst: (VGETMANTPDZ128rmik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*401885*/              0, /*End of Scope*/
/*401886*/            /*SwitchOpcode*/ 65, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->401954
/*401889*/              OPC_RecordMemRef,
/*401890*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*401891*/              OPC_CheckFoldableChainNode,
/*401892*/              OPC_RecordChild1, // #2 = $src1
/*401893*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*401895*/              OPC_MoveParent,
/*401896*/              OPC_RecordChild1, // #3 = $src2
/*401897*/              OPC_MoveChild1,
/*401898*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*401901*/              OPC_MoveParent,
/*401902*/              OPC_MoveParent,
/*401903*/              OPC_Scope, 24, /*->401929*/ // 2 children in Scope
/*401905*/                OPC_MoveChild2,
/*401906*/                OPC_CheckImmAllZerosV,
/*401907*/                OPC_MoveParent,
/*401908*/                OPC_CheckType, MVT::v2f64,
/*401910*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*401912*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*401915*/                OPC_EmitMergeInputChains1_1,
/*401916*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPDZ128rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VGetMant:{ *:[v2f64] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v2f64] }) - Complexity = 35
                          // Dst: (VGETMANTPDZ128rmbikz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*401929*/              /*Scope*/ 23, /*->401953*/
/*401930*/                OPC_RecordChild2, // #4 = $src0
/*401931*/                OPC_CheckType, MVT::v2f64,
/*401933*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*401935*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #5 #6 #7 #8 #9
/*401938*/                OPC_EmitMergeInputChains1_1,
/*401939*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPDZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 3, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VGetMant:{ *:[v2f64] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i32] }):$src2), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                          // Dst: (VGETMANTPDZ128rmbik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*401953*/              0, /*End of Scope*/
/*401954*/            0, // EndSwitchOpcode
/*401955*/          /*SwitchOpcode*/ 18|128,1/*146*/, TARGET_VAL(X86ISD::VRANGE),// ->402105
/*401959*/            OPC_RecordChild0, // #1 = $src1
/*401960*/            OPC_MoveChild1,
/*401961*/            OPC_SwitchOpcode /*2 cases */, 69, TARGET_VAL(ISD::LOAD),// ->402034
/*401965*/              OPC_RecordMemRef,
/*401966*/              OPC_RecordNode, // #2 = 'ld' chained node
/*401967*/              OPC_CheckFoldableChainNode,
/*401968*/              OPC_RecordChild1, // #3 = $src2
/*401969*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*401971*/              OPC_CheckPredicate, 9, // Predicate_load
/*401973*/              OPC_MoveParent,
/*401974*/              OPC_RecordChild2, // #4 = $src3
/*401975*/              OPC_MoveChild2,
/*401976*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*401979*/              OPC_MoveParent,
/*401980*/              OPC_MoveParent,
/*401981*/              OPC_Scope, 25, /*->402008*/ // 2 children in Scope
/*401983*/                OPC_MoveChild2,
/*401984*/                OPC_CheckImmAllZerosV,
/*401985*/                OPC_MoveParent,
/*401986*/                OPC_CheckType, MVT::v2f64,
/*401988*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*401990*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*401993*/                OPC_EmitMergeInputChains1_2,
/*401994*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPDZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VRange:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src3), immAllZerosV:{ *:[v2f64] }) - Complexity = 35
                          // Dst: (VRANGEPDZ128rmikz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i32] }):$src3)
/*402008*/              /*Scope*/ 24, /*->402033*/
/*402009*/                OPC_RecordChild2, // #5 = $src0
/*402010*/                OPC_CheckType, MVT::v2f64,
/*402012*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*402014*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*402017*/                OPC_EmitMergeInputChains1_2,
/*402018*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPDZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VRange:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src3), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                          // Dst: (VRANGEPDZ128rmik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i32] }):$src3)
/*402033*/              0, /*End of Scope*/
/*402034*/            /*SwitchOpcode*/ 67, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->402104
/*402037*/              OPC_RecordMemRef,
/*402038*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*402039*/              OPC_CheckFoldableChainNode,
/*402040*/              OPC_RecordChild1, // #3 = $src2
/*402041*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*402043*/              OPC_MoveParent,
/*402044*/              OPC_RecordChild2, // #4 = $src3
/*402045*/              OPC_MoveChild2,
/*402046*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*402049*/              OPC_MoveParent,
/*402050*/              OPC_MoveParent,
/*402051*/              OPC_Scope, 25, /*->402078*/ // 2 children in Scope
/*402053*/                OPC_MoveChild2,
/*402054*/                OPC_CheckImmAllZerosV,
/*402055*/                OPC_MoveParent,
/*402056*/                OPC_CheckType, MVT::v2f64,
/*402058*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*402060*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*402063*/                OPC_EmitMergeInputChains1_2,
/*402064*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPDZ128rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VRange:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i32] }):$src3), immAllZerosV:{ *:[v2f64] }) - Complexity = 35
                          // Dst: (VRANGEPDZ128rmbikz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i32] }):$src3)
/*402078*/              /*Scope*/ 24, /*->402103*/
/*402079*/                OPC_RecordChild2, // #5 = $src0
/*402080*/                OPC_CheckType, MVT::v2f64,
/*402082*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*402084*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*402087*/                OPC_EmitMergeInputChains1_2,
/*402088*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPDZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VRange:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i32] }):$src3), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                          // Dst: (VRANGEPDZ128rmbik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i32] }):$src3)
/*402103*/              0, /*End of Scope*/
/*402104*/            0, // EndSwitchOpcode
/*402105*/          /*SwitchOpcode*/ 18|128,1/*146*/, TARGET_VAL(X86ISD::SHUFP),// ->402255
/*402109*/            OPC_RecordChild0, // #1 = $src1
/*402110*/            OPC_MoveChild1,
/*402111*/            OPC_SwitchOpcode /*2 cases */, 69, TARGET_VAL(ISD::LOAD),// ->402184
/*402115*/              OPC_RecordMemRef,
/*402116*/              OPC_RecordNode, // #2 = 'ld' chained node
/*402117*/              OPC_CheckFoldableChainNode,
/*402118*/              OPC_RecordChild1, // #3 = $src2
/*402119*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*402121*/              OPC_CheckPredicate, 9, // Predicate_load
/*402123*/              OPC_MoveParent,
/*402124*/              OPC_RecordChild2, // #4 = $src3
/*402125*/              OPC_MoveChild2,
/*402126*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*402129*/              OPC_MoveParent,
/*402130*/              OPC_MoveParent,
/*402131*/              OPC_Scope, 25, /*->402158*/ // 2 children in Scope
/*402133*/                OPC_MoveChild2,
/*402134*/                OPC_CheckImmAllZerosV,
/*402135*/                OPC_MoveParent,
/*402136*/                OPC_CheckType, MVT::v2f64,
/*402138*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*402140*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*402143*/                OPC_EmitMergeInputChains1_2,
/*402144*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPDZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Shufp:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v2f64] }) - Complexity = 35
                          // Dst: (VSHUFPDZ128rmikz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*402158*/              /*Scope*/ 24, /*->402183*/
/*402159*/                OPC_RecordChild2, // #5 = $src0
/*402160*/                OPC_CheckType, MVT::v2f64,
/*402162*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*402164*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*402167*/                OPC_EmitMergeInputChains1_2,
/*402168*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPDZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Shufp:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                          // Dst: (VSHUFPDZ128rmik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*402183*/              0, /*End of Scope*/
/*402184*/            /*SwitchOpcode*/ 67, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->402254
/*402187*/              OPC_RecordMemRef,
/*402188*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*402189*/              OPC_CheckFoldableChainNode,
/*402190*/              OPC_RecordChild1, // #3 = $src2
/*402191*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*402193*/              OPC_MoveParent,
/*402194*/              OPC_RecordChild2, // #4 = $src3
/*402195*/              OPC_MoveChild2,
/*402196*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*402199*/              OPC_MoveParent,
/*402200*/              OPC_MoveParent,
/*402201*/              OPC_Scope, 25, /*->402228*/ // 2 children in Scope
/*402203*/                OPC_MoveChild2,
/*402204*/                OPC_CheckImmAllZerosV,
/*402205*/                OPC_MoveParent,
/*402206*/                OPC_CheckType, MVT::v2f64,
/*402208*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*402210*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*402213*/                OPC_EmitMergeInputChains1_2,
/*402214*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPDZ128rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Shufp:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v2f64] }) - Complexity = 35
                          // Dst: (VSHUFPDZ128rmbikz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*402228*/              /*Scope*/ 24, /*->402253*/
/*402229*/                OPC_RecordChild2, // #5 = $src0
/*402230*/                OPC_CheckType, MVT::v2f64,
/*402232*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*402234*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*402237*/                OPC_EmitMergeInputChains1_2,
/*402238*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPDZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 9/*#Ops*/, 5, 0, 1, 6, 7, 8, 9, 10, 4, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Shufp:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src3), VR128X:{ *:[v2f64] }:$src0) - Complexity = 31
                          // Dst: (VSHUFPDZ128rmbik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*402253*/              0, /*End of Scope*/
/*402254*/            0, // EndSwitchOpcode
/*402255*/          /*SwitchOpcode*/ 31|128,1/*159*/, TARGET_VAL(X86ISD::VFIXUPIMM),// ->402418
/*402259*/            OPC_RecordChild0, // #1 = $src1
/*402260*/            OPC_RecordChild1, // #2 = $src2
/*402261*/            OPC_MoveChild2,
/*402262*/            OPC_SwitchOpcode /*2 cases */, 75, TARGET_VAL(ISD::LOAD),// ->402341
/*402266*/              OPC_RecordMemRef,
/*402267*/              OPC_RecordNode, // #3 = 'ld' chained node
/*402268*/              OPC_CheckFoldableChainNode,
/*402269*/              OPC_RecordChild1, // #4 = $src3
/*402270*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*402272*/              OPC_CheckPredicate, 9, // Predicate_load
/*402274*/              OPC_MoveParent,
/*402275*/              OPC_RecordChild3, // #5 = $src4
/*402276*/              OPC_MoveChild3,
/*402277*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*402280*/              OPC_MoveParent,
/*402281*/              OPC_MoveParent,
/*402282*/              OPC_Scope, 28, /*->402312*/ // 2 children in Scope
/*402284*/                OPC_MoveChild2,
/*402285*/                OPC_CheckImmAllZerosV,
/*402286*/                OPC_MoveParent,
/*402287*/                OPC_CheckType, MVT::v2f64,
/*402289*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*402291*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*402294*/                OPC_EmitMergeInputChains, 1, 3, 
/*402297*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPDZ128rmikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 5, 
                          // 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>>, (timm:{ *:[i32] }):$src4), immAllZerosV:{ *:[v2f64] }) - Complexity = 35
                          // Dst: (VFIXUPIMMPDZ128rmikz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i32] }):$src4)
/*402312*/              /*Scope*/ 27, /*->402340*/
/*402313*/                OPC_CheckChild2Same, 1,
/*402315*/                OPC_CheckType, MVT::v2f64,
/*402317*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*402319*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*402322*/                OPC_EmitMergeInputChains, 1, 3, 
/*402325*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPDZ128rmik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 5, 
                          // 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>>, (timm:{ *:[i32] }):$src4), VR128X:{ *:[v2f64] }:$src1) - Complexity = 31
                          // Dst: (VFIXUPIMMPDZ128rmik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i32] }):$src4)
/*402340*/              0, /*End of Scope*/
/*402341*/            /*SwitchOpcode*/ 73, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->402417
/*402344*/              OPC_RecordMemRef,
/*402345*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*402346*/              OPC_CheckFoldableChainNode,
/*402347*/              OPC_RecordChild1, // #4 = $src3
/*402348*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*402350*/              OPC_MoveParent,
/*402351*/              OPC_RecordChild3, // #5 = $src4
/*402352*/              OPC_MoveChild3,
/*402353*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*402356*/              OPC_MoveParent,
/*402357*/              OPC_MoveParent,
/*402358*/              OPC_Scope, 28, /*->402388*/ // 2 children in Scope
/*402360*/                OPC_MoveChild2,
/*402361*/                OPC_CheckImmAllZerosV,
/*402362*/                OPC_MoveParent,
/*402363*/                OPC_CheckType, MVT::v2f64,
/*402365*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*402367*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*402370*/                OPC_EmitMergeInputChains, 1, 3, 
/*402373*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPDZ128rmbikz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 5, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VFixupimm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i32] }):$src4), immAllZerosV:{ *:[v2f64] }) - Complexity = 35
                          // Dst: (VFIXUPIMMPDZ128rmbikz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i32] }):$src4)
/*402388*/              /*Scope*/ 27, /*->402416*/
/*402389*/                OPC_CheckChild2Same, 1,
/*402391*/                OPC_CheckType, MVT::v2f64,
/*402393*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*402395*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*402398*/                OPC_EmitMergeInputChains, 1, 3, 
/*402401*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPDZ128rmbik), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 9/*#Ops*/, 1, 0, 2, 6, 7, 8, 9, 10, 5, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VFixupimm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i32] }):$src4), VR128X:{ *:[v2f64] }:$src1) - Complexity = 31
                          // Dst: (VFIXUPIMMPDZ128rmbik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i32] }):$src4)
/*402416*/              0, /*End of Scope*/
/*402417*/            0, // EndSwitchOpcode
/*402418*/          /*SwitchOpcode*/ 83|128,1/*211*/, TARGET_VAL(X86ISD::VPERMV3),// ->402633
/*402422*/            OPC_RecordChild0, // #1 = $src1
/*402423*/            OPC_RecordChild1, // #2 = $src2
/*402424*/            OPC_MoveChild2,
/*402425*/            OPC_SwitchOpcode /*2 cases */, 101, TARGET_VAL(ISD::LOAD),// ->402530
/*402429*/              OPC_RecordMemRef,
/*402430*/              OPC_RecordNode, // #3 = 'ld' chained node
/*402431*/              OPC_CheckFoldableChainNode,
/*402432*/              OPC_RecordChild1, // #4 = $src3
/*402433*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*402435*/              OPC_CheckPredicate, 9, // Predicate_load
/*402437*/              OPC_MoveParent,
/*402438*/              OPC_MoveParent,
/*402439*/              OPC_Scope, 61, /*->402502*/ // 2 children in Scope
/*402441*/                OPC_MoveChild2,
/*402442*/                OPC_Scope, 26, /*->402470*/ // 2 children in Scope
/*402444*/                  OPC_CheckImmAllZerosV,
/*402445*/                  OPC_MoveParent,
/*402446*/                  OPC_CheckType, MVT::v2f64,
/*402448*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*402450*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*402453*/                  OPC_EmitMergeInputChains, 1, 3, 
/*402456*/                  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>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                            // Dst: (VPERMT2PD128rmkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*402470*/                /*Scope*/ 30, /*->402501*/
/*402471*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*402474*/                  OPC_CheckChild0Same, 2,
/*402476*/                  OPC_MoveParent,
/*402477*/                  OPC_CheckType, MVT::v2f64,
/*402479*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*402481*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*402484*/                  OPC_EmitMergeInputChains, 1, 3, 
/*402487*/                  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>>), (bitconvert:{ *:[v2f64] } VR128X:{ *:[v2i64] }:$src1)) - Complexity = 31
                            // Dst: (VPERMI2PD128rmk:{ *:[v2f64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*402501*/                0, /*End of Scope*/
/*402502*/              /*Scope*/ 26, /*->402529*/
/*402503*/                OPC_CheckChild2Same, 1,
/*402505*/                OPC_CheckType, MVT::v2f64,
/*402507*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*402509*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*402512*/                OPC_EmitMergeInputChains, 1, 3, 
/*402515*/                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>>), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                          // Dst: (VPERMT2PD128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*402529*/              0, /*End of Scope*/
/*402530*/            /*SwitchOpcode*/ 99, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->402632
/*402533*/              OPC_RecordMemRef,
/*402534*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*402535*/              OPC_CheckFoldableChainNode,
/*402536*/              OPC_RecordChild1, // #4 = $src3
/*402537*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*402539*/              OPC_MoveParent,
/*402540*/              OPC_MoveParent,
/*402541*/              OPC_Scope, 61, /*->402604*/ // 2 children in Scope
/*402543*/                OPC_MoveChild2,
/*402544*/                OPC_Scope, 26, /*->402572*/ // 2 children in Scope
/*402546*/                  OPC_CheckImmAllZerosV,
/*402547*/                  OPC_MoveParent,
/*402548*/                  OPC_CheckType, MVT::v2f64,
/*402550*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*402552*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*402555*/                  OPC_EmitMergeInputChains, 1, 3, 
/*402558*/                  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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                            // Dst: (VPERMT2PD128rmbkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*402572*/                /*Scope*/ 30, /*->402603*/
/*402573*/                  OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*402576*/                  OPC_CheckChild0Same, 2,
/*402578*/                  OPC_MoveParent,
/*402579*/                  OPC_CheckType, MVT::v2f64,
/*402581*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*402583*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*402586*/                  OPC_EmitMergeInputChains, 1, 3, 
/*402589*/                  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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), (bitconvert:{ *:[v2f64] } VR128X:{ *:[v2i64] }:$src1)) - Complexity = 31
                            // Dst: (VPERMI2PD128rmbk:{ *:[v2f64] } VR128X:{ *:[v2i64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*402603*/                0, /*End of Scope*/
/*402604*/              /*Scope*/ 26, /*->402631*/
/*402605*/                OPC_CheckChild2Same, 1,
/*402607*/                OPC_CheckType, MVT::v2f64,
/*402609*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*402611*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*402614*/                OPC_EmitMergeInputChains, 1, 3, 
/*402617*/                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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                          // Dst: (VPERMT2PD128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*402631*/              0, /*End of Scope*/
/*402632*/            0, // EndSwitchOpcode
/*402633*/          /*SwitchOpcode*/ 78|128,2/*334*/, TARGET_VAL(ISD::STRICT_FADD),// ->402971
/*402637*/            OPC_RecordNode, // #1 = 'strict_fadd' chained node
/*402638*/            OPC_CheckFoldableChainNode,
/*402639*/            OPC_Scope, 82, /*->402723*/ // 4 children in Scope
/*402641*/              OPC_RecordChild1, // #2 = $src1
/*402642*/              OPC_MoveChild2,
/*402643*/              OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->402684
/*402647*/                OPC_RecordMemRef,
/*402648*/                OPC_RecordNode, // #3 = 'ld' chained node
/*402649*/                OPC_CheckFoldableChainNode,
/*402650*/                OPC_RecordChild1, // #4 = $src2
/*402651*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*402653*/                OPC_CheckPredicate, 9, // Predicate_load
/*402655*/                OPC_MoveParent,
/*402656*/                OPC_MoveParent,
/*402657*/                OPC_MoveChild2,
/*402658*/                OPC_CheckImmAllZerosV,
/*402659*/                OPC_MoveParent,
/*402660*/                OPC_CheckType, MVT::v2f64,
/*402662*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*402664*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*402667*/                OPC_EmitMergeInputChains, 2, 1, 3, 
/*402671*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (strict_fadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VADDPDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*402684*/              /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->402722
/*402687*/                OPC_RecordMemRef,
/*402688*/                OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*402689*/                OPC_CheckFoldableChainNode,
/*402690*/                OPC_RecordChild1, // #4 = $src2
/*402691*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*402693*/                OPC_MoveParent,
/*402694*/                OPC_MoveParent,
/*402695*/                OPC_MoveChild2,
/*402696*/                OPC_CheckImmAllZerosV,
/*402697*/                OPC_MoveParent,
/*402698*/                OPC_CheckType, MVT::v2f64,
/*402700*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*402702*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*402705*/                OPC_EmitMergeInputChains, 2, 1, 3, 
/*402709*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (strict_fadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VADDPDZ128rmbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*402722*/              0, // EndSwitchOpcode
/*402723*/            /*Scope*/ 83, /*->402807*/
/*402724*/              OPC_MoveChild1,
/*402725*/              OPC_SwitchOpcode /*2 cases */, 38, TARGET_VAL(ISD::LOAD),// ->402767
/*402729*/                OPC_RecordMemRef,
/*402730*/                OPC_RecordNode, // #2 = 'ld' chained node
/*402731*/                OPC_CheckFoldableChainNode,
/*402732*/                OPC_RecordChild1, // #3 = $src2
/*402733*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*402735*/                OPC_CheckPredicate, 9, // Predicate_load
/*402737*/                OPC_MoveParent,
/*402738*/                OPC_RecordChild2, // #4 = $src1
/*402739*/                OPC_MoveParent,
/*402740*/                OPC_MoveChild2,
/*402741*/                OPC_CheckImmAllZerosV,
/*402742*/                OPC_MoveParent,
/*402743*/                OPC_CheckType, MVT::v2f64,
/*402745*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*402747*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*402750*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*402754*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (strict_fadd:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v2f64] }:$src1), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VADDPDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*402767*/              /*SwitchOpcode*/ 36, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->402806
/*402770*/                OPC_RecordMemRef,
/*402771*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*402772*/                OPC_CheckFoldableChainNode,
/*402773*/                OPC_RecordChild1, // #3 = $src2
/*402774*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*402776*/                OPC_MoveParent,
/*402777*/                OPC_RecordChild2, // #4 = $src1
/*402778*/                OPC_MoveParent,
/*402779*/                OPC_MoveChild2,
/*402780*/                OPC_CheckImmAllZerosV,
/*402781*/                OPC_MoveParent,
/*402782*/                OPC_CheckType, MVT::v2f64,
/*402784*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*402786*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*402789*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*402793*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (strict_fadd:{ *:[v2f64] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VADDPDZ128rmbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*402806*/              0, // EndSwitchOpcode
/*402807*/            /*Scope*/ 80, /*->402888*/
/*402808*/              OPC_RecordChild1, // #2 = $src1
/*402809*/              OPC_MoveChild2,
/*402810*/              OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->402850
/*402814*/                OPC_RecordMemRef,
/*402815*/                OPC_RecordNode, // #3 = 'ld' chained node
/*402816*/                OPC_CheckFoldableChainNode,
/*402817*/                OPC_RecordChild1, // #4 = $src2
/*402818*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*402820*/                OPC_CheckPredicate, 9, // Predicate_load
/*402822*/                OPC_MoveParent,
/*402823*/                OPC_MoveParent,
/*402824*/                OPC_RecordChild2, // #5 = $src0
/*402825*/                OPC_CheckType, MVT::v2f64,
/*402827*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*402829*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*402832*/                OPC_EmitMergeInputChains, 2, 1, 3, 
/*402836*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (strict_fadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VADDPDZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*402850*/              /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->402887
/*402853*/                OPC_RecordMemRef,
/*402854*/                OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*402855*/                OPC_CheckFoldableChainNode,
/*402856*/                OPC_RecordChild1, // #4 = $src2
/*402857*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*402859*/                OPC_MoveParent,
/*402860*/                OPC_MoveParent,
/*402861*/                OPC_RecordChild2, // #5 = $src0
/*402862*/                OPC_CheckType, MVT::v2f64,
/*402864*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*402866*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*402869*/                OPC_EmitMergeInputChains, 2, 1, 3, 
/*402873*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (strict_fadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VADDPDZ128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*402887*/              0, // EndSwitchOpcode
/*402888*/            /*Scope*/ 81, /*->402970*/
/*402889*/              OPC_MoveChild1,
/*402890*/              OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->402931
/*402894*/                OPC_RecordMemRef,
/*402895*/                OPC_RecordNode, // #2 = 'ld' chained node
/*402896*/                OPC_CheckFoldableChainNode,
/*402897*/                OPC_RecordChild1, // #3 = $src2
/*402898*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*402900*/                OPC_CheckPredicate, 9, // Predicate_load
/*402902*/                OPC_MoveParent,
/*402903*/                OPC_RecordChild2, // #4 = $src1
/*402904*/                OPC_MoveParent,
/*402905*/                OPC_RecordChild2, // #5 = $src0
/*402906*/                OPC_CheckType, MVT::v2f64,
/*402908*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*402910*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*402913*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*402917*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 5, 0, 4, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (strict_fadd:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VADDPDZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*402931*/              /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->402969
/*402934*/                OPC_RecordMemRef,
/*402935*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*402936*/                OPC_CheckFoldableChainNode,
/*402937*/                OPC_RecordChild1, // #3 = $src2
/*402938*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*402940*/                OPC_MoveParent,
/*402941*/                OPC_RecordChild2, // #4 = $src1
/*402942*/                OPC_MoveParent,
/*402943*/                OPC_RecordChild2, // #5 = $src0
/*402944*/                OPC_CheckType, MVT::v2f64,
/*402946*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*402948*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*402951*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*402955*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 5, 0, 4, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (strict_fadd:{ *:[v2f64] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VADDPDZ128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*402969*/              0, // EndSwitchOpcode
/*402970*/            0, /*End of Scope*/
/*402971*/          /*SwitchOpcode*/ 52|128,2/*308*/, TARGET_VAL(ISD::FADD),// ->403283
/*402975*/            OPC_Scope, 76, /*->403053*/ // 4 children in Scope
/*402977*/              OPC_RecordChild0, // #1 = $src1
/*402978*/              OPC_MoveChild1,
/*402979*/              OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->403017
/*402983*/                OPC_RecordMemRef,
/*402984*/                OPC_RecordNode, // #2 = 'ld' chained node
/*402985*/                OPC_CheckFoldableChainNode,
/*402986*/                OPC_RecordChild1, // #3 = $src2
/*402987*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*402989*/                OPC_CheckPredicate, 9, // Predicate_load
/*402991*/                OPC_MoveParent,
/*402992*/                OPC_MoveParent,
/*402993*/                OPC_MoveChild2,
/*402994*/                OPC_CheckImmAllZerosV,
/*402995*/                OPC_MoveParent,
/*402996*/                OPC_CheckType, MVT::v2f64,
/*402998*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*403000*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*403003*/                OPC_EmitMergeInputChains1_2,
/*403004*/                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>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VADDPDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*403017*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->403052
/*403020*/                OPC_RecordMemRef,
/*403021*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*403022*/                OPC_CheckFoldableChainNode,
/*403023*/                OPC_RecordChild1, // #3 = $src2
/*403024*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*403026*/                OPC_MoveParent,
/*403027*/                OPC_MoveParent,
/*403028*/                OPC_MoveChild2,
/*403029*/                OPC_CheckImmAllZerosV,
/*403030*/                OPC_MoveParent,
/*403031*/                OPC_CheckType, MVT::v2f64,
/*403033*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*403035*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*403038*/                OPC_EmitMergeInputChains1_2,
/*403039*/                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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VADDPDZ128rmbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*403052*/              0, // EndSwitchOpcode
/*403053*/            /*Scope*/ 77, /*->403131*/
/*403054*/              OPC_MoveChild0,
/*403055*/              OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->403094
/*403059*/                OPC_RecordMemRef,
/*403060*/                OPC_RecordNode, // #1 = 'ld' chained node
/*403061*/                OPC_CheckFoldableChainNode,
/*403062*/                OPC_RecordChild1, // #2 = $src2
/*403063*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*403065*/                OPC_CheckPredicate, 9, // Predicate_load
/*403067*/                OPC_MoveParent,
/*403068*/                OPC_RecordChild1, // #3 = $src1
/*403069*/                OPC_MoveParent,
/*403070*/                OPC_MoveChild2,
/*403071*/                OPC_CheckImmAllZerosV,
/*403072*/                OPC_MoveParent,
/*403073*/                OPC_CheckType, MVT::v2f64,
/*403075*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*403077*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*403080*/                OPC_EmitMergeInputChains1_1,
/*403081*/                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>>, VR128X:{ *:[v2f64] }:$src1), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VADDPDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*403094*/              /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->403130
/*403097*/                OPC_RecordMemRef,
/*403098*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*403099*/                OPC_CheckFoldableChainNode,
/*403100*/                OPC_RecordChild1, // #2 = $src2
/*403101*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*403103*/                OPC_MoveParent,
/*403104*/                OPC_RecordChild1, // #3 = $src1
/*403105*/                OPC_MoveParent,
/*403106*/                OPC_MoveChild2,
/*403107*/                OPC_CheckImmAllZerosV,
/*403108*/                OPC_MoveParent,
/*403109*/                OPC_CheckType, MVT::v2f64,
/*403111*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*403113*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*403116*/                OPC_EmitMergeInputChains1_1,
/*403117*/                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] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VADDPDZ128rmbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*403130*/              0, // EndSwitchOpcode
/*403131*/            /*Scope*/ 74, /*->403206*/
/*403132*/              OPC_RecordChild0, // #1 = $src1
/*403133*/              OPC_MoveChild1,
/*403134*/              OPC_SwitchOpcode /*2 cases */, 33, TARGET_VAL(ISD::LOAD),// ->403171
/*403138*/                OPC_RecordMemRef,
/*403139*/                OPC_RecordNode, // #2 = 'ld' chained node
/*403140*/                OPC_CheckFoldableChainNode,
/*403141*/                OPC_RecordChild1, // #3 = $src2
/*403142*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*403144*/                OPC_CheckPredicate, 9, // Predicate_load
/*403146*/                OPC_MoveParent,
/*403147*/                OPC_MoveParent,
/*403148*/                OPC_RecordChild2, // #4 = $src0
/*403149*/                OPC_CheckType, MVT::v2f64,
/*403151*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*403153*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*403156*/                OPC_EmitMergeInputChains1_2,
/*403157*/                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>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VADDPDZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*403171*/              /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->403205
/*403174*/                OPC_RecordMemRef,
/*403175*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*403176*/                OPC_CheckFoldableChainNode,
/*403177*/                OPC_RecordChild1, // #3 = $src2
/*403178*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*403180*/                OPC_MoveParent,
/*403181*/                OPC_MoveParent,
/*403182*/                OPC_RecordChild2, // #4 = $src0
/*403183*/                OPC_CheckType, MVT::v2f64,
/*403185*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*403187*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*403190*/                OPC_EmitMergeInputChains1_2,
/*403191*/                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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VADDPDZ128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*403205*/              0, // EndSwitchOpcode
/*403206*/            /*Scope*/ 75, /*->403282*/
/*403207*/              OPC_MoveChild0,
/*403208*/              OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->403246
/*403212*/                OPC_RecordMemRef,
/*403213*/                OPC_RecordNode, // #1 = 'ld' chained node
/*403214*/                OPC_CheckFoldableChainNode,
/*403215*/                OPC_RecordChild1, // #2 = $src2
/*403216*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*403218*/                OPC_CheckPredicate, 9, // Predicate_load
/*403220*/                OPC_MoveParent,
/*403221*/                OPC_RecordChild1, // #3 = $src1
/*403222*/                OPC_MoveParent,
/*403223*/                OPC_RecordChild2, // #4 = $src0
/*403224*/                OPC_CheckType, MVT::v2f64,
/*403226*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*403228*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*403231*/                OPC_EmitMergeInputChains1_1,
/*403232*/                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>>, VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VADDPDZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*403246*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->403281
/*403249*/                OPC_RecordMemRef,
/*403250*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*403251*/                OPC_CheckFoldableChainNode,
/*403252*/                OPC_RecordChild1, // #2 = $src2
/*403253*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*403255*/                OPC_MoveParent,
/*403256*/                OPC_RecordChild1, // #3 = $src1
/*403257*/                OPC_MoveParent,
/*403258*/                OPC_RecordChild2, // #4 = $src0
/*403259*/                OPC_CheckType, MVT::v2f64,
/*403261*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*403263*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*403266*/                OPC_EmitMergeInputChains1_1,
/*403267*/                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] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VADDPDZ128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*403281*/              0, // EndSwitchOpcode
/*403282*/            0, /*End of Scope*/
/*403283*/          /*SwitchOpcode*/ 78|128,2/*334*/, TARGET_VAL(ISD::STRICT_FMUL),// ->403621
/*403287*/            OPC_RecordNode, // #1 = 'strict_fmul' chained node
/*403288*/            OPC_CheckFoldableChainNode,
/*403289*/            OPC_Scope, 82, /*->403373*/ // 4 children in Scope
/*403291*/              OPC_RecordChild1, // #2 = $src1
/*403292*/              OPC_MoveChild2,
/*403293*/              OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->403334
/*403297*/                OPC_RecordMemRef,
/*403298*/                OPC_RecordNode, // #3 = 'ld' chained node
/*403299*/                OPC_CheckFoldableChainNode,
/*403300*/                OPC_RecordChild1, // #4 = $src2
/*403301*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*403303*/                OPC_CheckPredicate, 9, // Predicate_load
/*403305*/                OPC_MoveParent,
/*403306*/                OPC_MoveParent,
/*403307*/                OPC_MoveChild2,
/*403308*/                OPC_CheckImmAllZerosV,
/*403309*/                OPC_MoveParent,
/*403310*/                OPC_CheckType, MVT::v2f64,
/*403312*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*403314*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*403317*/                OPC_EmitMergeInputChains, 2, 1, 3, 
/*403321*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (strict_fmul:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VMULPDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*403334*/              /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->403372
/*403337*/                OPC_RecordMemRef,
/*403338*/                OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*403339*/                OPC_CheckFoldableChainNode,
/*403340*/                OPC_RecordChild1, // #4 = $src2
/*403341*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*403343*/                OPC_MoveParent,
/*403344*/                OPC_MoveParent,
/*403345*/                OPC_MoveChild2,
/*403346*/                OPC_CheckImmAllZerosV,
/*403347*/                OPC_MoveParent,
/*403348*/                OPC_CheckType, MVT::v2f64,
/*403350*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*403352*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*403355*/                OPC_EmitMergeInputChains, 2, 1, 3, 
/*403359*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (strict_fmul:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VMULPDZ128rmbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*403372*/              0, // EndSwitchOpcode
/*403373*/            /*Scope*/ 83, /*->403457*/
/*403374*/              OPC_MoveChild1,
/*403375*/              OPC_SwitchOpcode /*2 cases */, 38, TARGET_VAL(ISD::LOAD),// ->403417
/*403379*/                OPC_RecordMemRef,
/*403380*/                OPC_RecordNode, // #2 = 'ld' chained node
/*403381*/                OPC_CheckFoldableChainNode,
/*403382*/                OPC_RecordChild1, // #3 = $src2
/*403383*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*403385*/                OPC_CheckPredicate, 9, // Predicate_load
/*403387*/                OPC_MoveParent,
/*403388*/                OPC_RecordChild2, // #4 = $src1
/*403389*/                OPC_MoveParent,
/*403390*/                OPC_MoveChild2,
/*403391*/                OPC_CheckImmAllZerosV,
/*403392*/                OPC_MoveParent,
/*403393*/                OPC_CheckType, MVT::v2f64,
/*403395*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*403397*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*403400*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*403404*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (strict_fmul:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v2f64] }:$src1), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VMULPDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*403417*/              /*SwitchOpcode*/ 36, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->403456
/*403420*/                OPC_RecordMemRef,
/*403421*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*403422*/                OPC_CheckFoldableChainNode,
/*403423*/                OPC_RecordChild1, // #3 = $src2
/*403424*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*403426*/                OPC_MoveParent,
/*403427*/                OPC_RecordChild2, // #4 = $src1
/*403428*/                OPC_MoveParent,
/*403429*/                OPC_MoveChild2,
/*403430*/                OPC_CheckImmAllZerosV,
/*403431*/                OPC_MoveParent,
/*403432*/                OPC_CheckType, MVT::v2f64,
/*403434*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*403436*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*403439*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*403443*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (strict_fmul:{ *:[v2f64] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VMULPDZ128rmbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*403456*/              0, // EndSwitchOpcode
/*403457*/            /*Scope*/ 80, /*->403538*/
/*403458*/              OPC_RecordChild1, // #2 = $src1
/*403459*/              OPC_MoveChild2,
/*403460*/              OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->403500
/*403464*/                OPC_RecordMemRef,
/*403465*/                OPC_RecordNode, // #3 = 'ld' chained node
/*403466*/                OPC_CheckFoldableChainNode,
/*403467*/                OPC_RecordChild1, // #4 = $src2
/*403468*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*403470*/                OPC_CheckPredicate, 9, // Predicate_load
/*403472*/                OPC_MoveParent,
/*403473*/                OPC_MoveParent,
/*403474*/                OPC_RecordChild2, // #5 = $src0
/*403475*/                OPC_CheckType, MVT::v2f64,
/*403477*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*403479*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*403482*/                OPC_EmitMergeInputChains, 2, 1, 3, 
/*403486*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (strict_fmul:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VMULPDZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*403500*/              /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->403537
/*403503*/                OPC_RecordMemRef,
/*403504*/                OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*403505*/                OPC_CheckFoldableChainNode,
/*403506*/                OPC_RecordChild1, // #4 = $src2
/*403507*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*403509*/                OPC_MoveParent,
/*403510*/                OPC_MoveParent,
/*403511*/                OPC_RecordChild2, // #5 = $src0
/*403512*/                OPC_CheckType, MVT::v2f64,
/*403514*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*403516*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*403519*/                OPC_EmitMergeInputChains, 2, 1, 3, 
/*403523*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (strict_fmul:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VMULPDZ128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*403537*/              0, // EndSwitchOpcode
/*403538*/            /*Scope*/ 81, /*->403620*/
/*403539*/              OPC_MoveChild1,
/*403540*/              OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->403581
/*403544*/                OPC_RecordMemRef,
/*403545*/                OPC_RecordNode, // #2 = 'ld' chained node
/*403546*/                OPC_CheckFoldableChainNode,
/*403547*/                OPC_RecordChild1, // #3 = $src2
/*403548*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*403550*/                OPC_CheckPredicate, 9, // Predicate_load
/*403552*/                OPC_MoveParent,
/*403553*/                OPC_RecordChild2, // #4 = $src1
/*403554*/                OPC_MoveParent,
/*403555*/                OPC_RecordChild2, // #5 = $src0
/*403556*/                OPC_CheckType, MVT::v2f64,
/*403558*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*403560*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*403563*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*403567*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 5, 0, 4, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (strict_fmul:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VMULPDZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*403581*/              /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->403619
/*403584*/                OPC_RecordMemRef,
/*403585*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*403586*/                OPC_CheckFoldableChainNode,
/*403587*/                OPC_RecordChild1, // #3 = $src2
/*403588*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*403590*/                OPC_MoveParent,
/*403591*/                OPC_RecordChild2, // #4 = $src1
/*403592*/                OPC_MoveParent,
/*403593*/                OPC_RecordChild2, // #5 = $src0
/*403594*/                OPC_CheckType, MVT::v2f64,
/*403596*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*403598*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #6 #7 #8 #9 #10
/*403601*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*403605*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 5, 0, 4, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (strict_fmul:{ *:[v2f64] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VMULPDZ128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*403619*/              0, // EndSwitchOpcode
/*403620*/            0, /*End of Scope*/
/*403621*/          /*SwitchOpcode*/ 52|128,2/*308*/, TARGET_VAL(ISD::FMUL),// ->403933
/*403625*/            OPC_Scope, 76, /*->403703*/ // 4 children in Scope
/*403627*/              OPC_RecordChild0, // #1 = $src1
/*403628*/              OPC_MoveChild1,
/*403629*/              OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->403667
/*403633*/                OPC_RecordMemRef,
/*403634*/                OPC_RecordNode, // #2 = 'ld' chained node
/*403635*/                OPC_CheckFoldableChainNode,
/*403636*/                OPC_RecordChild1, // #3 = $src2
/*403637*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*403639*/                OPC_CheckPredicate, 9, // Predicate_load
/*403641*/                OPC_MoveParent,
/*403642*/                OPC_MoveParent,
/*403643*/                OPC_MoveChild2,
/*403644*/                OPC_CheckImmAllZerosV,
/*403645*/                OPC_MoveParent,
/*403646*/                OPC_CheckType, MVT::v2f64,
/*403648*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*403650*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*403653*/                OPC_EmitMergeInputChains1_2,
/*403654*/                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>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VMULPDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*403667*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->403702
/*403670*/                OPC_RecordMemRef,
/*403671*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*403672*/                OPC_CheckFoldableChainNode,
/*403673*/                OPC_RecordChild1, // #3 = $src2
/*403674*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*403676*/                OPC_MoveParent,
/*403677*/                OPC_MoveParent,
/*403678*/                OPC_MoveChild2,
/*403679*/                OPC_CheckImmAllZerosV,
/*403680*/                OPC_MoveParent,
/*403681*/                OPC_CheckType, MVT::v2f64,
/*403683*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*403685*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*403688*/                OPC_EmitMergeInputChains1_2,
/*403689*/                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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VMULPDZ128rmbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*403702*/              0, // EndSwitchOpcode
/*403703*/            /*Scope*/ 77, /*->403781*/
/*403704*/              OPC_MoveChild0,
/*403705*/              OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->403744
/*403709*/                OPC_RecordMemRef,
/*403710*/                OPC_RecordNode, // #1 = 'ld' chained node
/*403711*/                OPC_CheckFoldableChainNode,
/*403712*/                OPC_RecordChild1, // #2 = $src2
/*403713*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*403715*/                OPC_CheckPredicate, 9, // Predicate_load
/*403717*/                OPC_MoveParent,
/*403718*/                OPC_RecordChild1, // #3 = $src1
/*403719*/                OPC_MoveParent,
/*403720*/                OPC_MoveChild2,
/*403721*/                OPC_CheckImmAllZerosV,
/*403722*/                OPC_MoveParent,
/*403723*/                OPC_CheckType, MVT::v2f64,
/*403725*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*403727*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*403730*/                OPC_EmitMergeInputChains1_1,
/*403731*/                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>>, VR128X:{ *:[v2f64] }:$src1), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VMULPDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*403744*/              /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->403780
/*403747*/                OPC_RecordMemRef,
/*403748*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*403749*/                OPC_CheckFoldableChainNode,
/*403750*/                OPC_RecordChild1, // #2 = $src2
/*403751*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*403753*/                OPC_MoveParent,
/*403754*/                OPC_RecordChild1, // #3 = $src1
/*403755*/                OPC_MoveParent,
/*403756*/                OPC_MoveChild2,
/*403757*/                OPC_CheckImmAllZerosV,
/*403758*/                OPC_MoveParent,
/*403759*/                OPC_CheckType, MVT::v2f64,
/*403761*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*403763*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*403766*/                OPC_EmitMergeInputChains1_1,
/*403767*/                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] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VMULPDZ128rmbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*403780*/              0, // EndSwitchOpcode
/*403781*/            /*Scope*/ 74, /*->403856*/
/*403782*/              OPC_RecordChild0, // #1 = $src1
/*403783*/              OPC_MoveChild1,
/*403784*/              OPC_SwitchOpcode /*2 cases */, 33, TARGET_VAL(ISD::LOAD),// ->403821
/*403788*/                OPC_RecordMemRef,
/*403789*/                OPC_RecordNode, // #2 = 'ld' chained node
/*403790*/                OPC_CheckFoldableChainNode,
/*403791*/                OPC_RecordChild1, // #3 = $src2
/*403792*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*403794*/                OPC_CheckPredicate, 9, // Predicate_load
/*403796*/                OPC_MoveParent,
/*403797*/                OPC_MoveParent,
/*403798*/                OPC_RecordChild2, // #4 = $src0
/*403799*/                OPC_CheckType, MVT::v2f64,
/*403801*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*403803*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*403806*/                OPC_EmitMergeInputChains1_2,
/*403807*/                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>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VMULPDZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*403821*/              /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->403855
/*403824*/                OPC_RecordMemRef,
/*403825*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*403826*/                OPC_CheckFoldableChainNode,
/*403827*/                OPC_RecordChild1, // #3 = $src2
/*403828*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*403830*/                OPC_MoveParent,
/*403831*/                OPC_MoveParent,
/*403832*/                OPC_RecordChild2, // #4 = $src0
/*403833*/                OPC_CheckType, MVT::v2f64,
/*403835*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*403837*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*403840*/                OPC_EmitMergeInputChains1_2,
/*403841*/                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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VMULPDZ128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*403855*/              0, // EndSwitchOpcode
/*403856*/            /*Scope*/ 75, /*->403932*/
/*403857*/              OPC_MoveChild0,
/*403858*/              OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->403896
/*403862*/                OPC_RecordMemRef,
/*403863*/                OPC_RecordNode, // #1 = 'ld' chained node
/*403864*/                OPC_CheckFoldableChainNode,
/*403865*/                OPC_RecordChild1, // #2 = $src2
/*403866*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*403868*/                OPC_CheckPredicate, 9, // Predicate_load
/*403870*/                OPC_MoveParent,
/*403871*/                OPC_RecordChild1, // #3 = $src1
/*403872*/                OPC_MoveParent,
/*403873*/                OPC_RecordChild2, // #4 = $src0
/*403874*/                OPC_CheckType, MVT::v2f64,
/*403876*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*403878*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*403881*/                OPC_EmitMergeInputChains1_1,
/*403882*/                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>>, VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VMULPDZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*403896*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->403931
/*403899*/                OPC_RecordMemRef,
/*403900*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*403901*/                OPC_CheckFoldableChainNode,
/*403902*/                OPC_RecordChild1, // #2 = $src2
/*403903*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*403905*/                OPC_MoveParent,
/*403906*/                OPC_RecordChild1, // #3 = $src1
/*403907*/                OPC_MoveParent,
/*403908*/                OPC_RecordChild2, // #4 = $src0
/*403909*/                OPC_CheckType, MVT::v2f64,
/*403911*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*403913*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*403916*/                OPC_EmitMergeInputChains1_1,
/*403917*/                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] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VMULPDZ128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*403931*/              0, // EndSwitchOpcode
/*403932*/            0, /*End of Scope*/
/*403933*/          /*SwitchOpcode*/ 16|128,1/*144*/, TARGET_VAL(ISD::STRICT_FSUB),// ->404081
/*403937*/            OPC_RecordNode, // #1 = 'strict_fsub' chained node
/*403938*/            OPC_CheckFoldableChainNode,
/*403939*/            OPC_RecordChild1, // #2 = $src1
/*403940*/            OPC_MoveChild2,
/*403941*/            OPC_SwitchOpcode /*2 cases */, 67, TARGET_VAL(ISD::LOAD),// ->404012
/*403945*/              OPC_RecordMemRef,
/*403946*/              OPC_RecordNode, // #3 = 'ld' chained node
/*403947*/              OPC_CheckFoldableChainNode,
/*403948*/              OPC_RecordChild1, // #4 = $src2
/*403949*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*403951*/              OPC_CheckPredicate, 9, // Predicate_load
/*403953*/              OPC_MoveParent,
/*403954*/              OPC_MoveParent,
/*403955*/              OPC_Scope, 27, /*->403984*/ // 2 children in Scope
/*403957*/                OPC_MoveChild2,
/*403958*/                OPC_CheckImmAllZerosV,
/*403959*/                OPC_MoveParent,
/*403960*/                OPC_CheckType, MVT::v2f64,
/*403962*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*403964*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*403967*/                OPC_EmitMergeInputChains, 2, 1, 3, 
/*403971*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (strict_fsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VSUBPDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*403984*/              /*Scope*/ 26, /*->404011*/
/*403985*/                OPC_RecordChild2, // #5 = $src0
/*403986*/                OPC_CheckType, MVT::v2f64,
/*403988*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*403990*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*403993*/                OPC_EmitMergeInputChains, 2, 1, 3, 
/*403997*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (strict_fsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VSUBPDZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*404011*/              0, /*End of Scope*/
/*404012*/            /*SwitchOpcode*/ 65, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->404080
/*404015*/              OPC_RecordMemRef,
/*404016*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*404017*/              OPC_CheckFoldableChainNode,
/*404018*/              OPC_RecordChild1, // #4 = $src2
/*404019*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*404021*/              OPC_MoveParent,
/*404022*/              OPC_MoveParent,
/*404023*/              OPC_Scope, 27, /*->404052*/ // 2 children in Scope
/*404025*/                OPC_MoveChild2,
/*404026*/                OPC_CheckImmAllZerosV,
/*404027*/                OPC_MoveParent,
/*404028*/                OPC_CheckType, MVT::v2f64,
/*404030*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*404032*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*404035*/                OPC_EmitMergeInputChains, 2, 1, 3, 
/*404039*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (strict_fsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VSUBPDZ128rmbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*404052*/              /*Scope*/ 26, /*->404079*/
/*404053*/                OPC_RecordChild2, // #5 = $src0
/*404054*/                OPC_CheckType, MVT::v2f64,
/*404056*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*404058*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*404061*/                OPC_EmitMergeInputChains, 2, 1, 3, 
/*404065*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (strict_fsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VSUBPDZ128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*404079*/              0, /*End of Scope*/
/*404080*/            0, // EndSwitchOpcode
/*404081*/          /*SwitchOpcode*/ 2|128,1/*130*/, TARGET_VAL(ISD::FSUB),// ->404215
/*404085*/            OPC_RecordChild0, // #1 = $src1
/*404086*/            OPC_MoveChild1,
/*404087*/            OPC_SwitchOpcode /*2 cases */, 61, TARGET_VAL(ISD::LOAD),// ->404152
/*404091*/              OPC_RecordMemRef,
/*404092*/              OPC_RecordNode, // #2 = 'ld' chained node
/*404093*/              OPC_CheckFoldableChainNode,
/*404094*/              OPC_RecordChild1, // #3 = $src2
/*404095*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*404097*/              OPC_CheckPredicate, 9, // Predicate_load
/*404099*/              OPC_MoveParent,
/*404100*/              OPC_MoveParent,
/*404101*/              OPC_Scope, 24, /*->404127*/ // 2 children in Scope
/*404103*/                OPC_MoveChild2,
/*404104*/                OPC_CheckImmAllZerosV,
/*404105*/                OPC_MoveParent,
/*404106*/                OPC_CheckType, MVT::v2f64,
/*404108*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*404110*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*404113*/                OPC_EmitMergeInputChains1_2,
/*404114*/                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>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VSUBPDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*404127*/              /*Scope*/ 23, /*->404151*/
/*404128*/                OPC_RecordChild2, // #4 = $src0
/*404129*/                OPC_CheckType, MVT::v2f64,
/*404131*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*404133*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*404136*/                OPC_EmitMergeInputChains1_2,
/*404137*/                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>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VSUBPDZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*404151*/              0, /*End of Scope*/
/*404152*/            /*SwitchOpcode*/ 59, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->404214
/*404155*/              OPC_RecordMemRef,
/*404156*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*404157*/              OPC_CheckFoldableChainNode,
/*404158*/              OPC_RecordChild1, // #3 = $src2
/*404159*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*404161*/              OPC_MoveParent,
/*404162*/              OPC_MoveParent,
/*404163*/              OPC_Scope, 24, /*->404189*/ // 2 children in Scope
/*404165*/                OPC_MoveChild2,
/*404166*/                OPC_CheckImmAllZerosV,
/*404167*/                OPC_MoveParent,
/*404168*/                OPC_CheckType, MVT::v2f64,
/*404170*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*404172*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*404175*/                OPC_EmitMergeInputChains1_2,
/*404176*/                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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VSUBPDZ128rmbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*404189*/              /*Scope*/ 23, /*->404213*/
/*404190*/                OPC_RecordChild2, // #4 = $src0
/*404191*/                OPC_CheckType, MVT::v2f64,
/*404193*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*404195*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*404198*/                OPC_EmitMergeInputChains1_2,
/*404199*/                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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VSUBPDZ128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*404213*/              0, /*End of Scope*/
/*404214*/            0, // EndSwitchOpcode
/*404215*/          /*SwitchOpcode*/ 16|128,1/*144*/, TARGET_VAL(ISD::STRICT_FDIV),// ->404363
/*404219*/            OPC_RecordNode, // #1 = 'strict_fdiv' chained node
/*404220*/            OPC_CheckFoldableChainNode,
/*404221*/            OPC_RecordChild1, // #2 = $src1
/*404222*/            OPC_MoveChild2,
/*404223*/            OPC_SwitchOpcode /*2 cases */, 67, TARGET_VAL(ISD::LOAD),// ->404294
/*404227*/              OPC_RecordMemRef,
/*404228*/              OPC_RecordNode, // #3 = 'ld' chained node
/*404229*/              OPC_CheckFoldableChainNode,
/*404230*/              OPC_RecordChild1, // #4 = $src2
/*404231*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*404233*/              OPC_CheckPredicate, 9, // Predicate_load
/*404235*/              OPC_MoveParent,
/*404236*/              OPC_MoveParent,
/*404237*/              OPC_Scope, 27, /*->404266*/ // 2 children in Scope
/*404239*/                OPC_MoveChild2,
/*404240*/                OPC_CheckImmAllZerosV,
/*404241*/                OPC_MoveParent,
/*404242*/                OPC_CheckType, MVT::v2f64,
/*404244*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*404246*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*404249*/                OPC_EmitMergeInputChains, 2, 1, 3, 
/*404253*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (strict_fdiv:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VDIVPDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*404266*/              /*Scope*/ 26, /*->404293*/
/*404267*/                OPC_RecordChild2, // #5 = $src0
/*404268*/                OPC_CheckType, MVT::v2f64,
/*404270*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*404272*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*404275*/                OPC_EmitMergeInputChains, 2, 1, 3, 
/*404279*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (strict_fdiv:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VDIVPDZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*404293*/              0, /*End of Scope*/
/*404294*/            /*SwitchOpcode*/ 65, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->404362
/*404297*/              OPC_RecordMemRef,
/*404298*/              OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*404299*/              OPC_CheckFoldableChainNode,
/*404300*/              OPC_RecordChild1, // #4 = $src2
/*404301*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*404303*/              OPC_MoveParent,
/*404304*/              OPC_MoveParent,
/*404305*/              OPC_Scope, 27, /*->404334*/ // 2 children in Scope
/*404307*/                OPC_MoveChild2,
/*404308*/                OPC_CheckImmAllZerosV,
/*404309*/                OPC_MoveParent,
/*404310*/                OPC_CheckType, MVT::v2f64,
/*404312*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*404314*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #5 #6 #7 #8 #9
/*404317*/                OPC_EmitMergeInputChains, 2, 1, 3, 
/*404321*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 2, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (strict_fdiv:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VDIVPDZ128rmbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*404334*/              /*Scope*/ 26, /*->404361*/
/*404335*/                OPC_RecordChild2, // #5 = $src0
/*404336*/                OPC_CheckType, MVT::v2f64,
/*404338*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*404340*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src2 #6 #7 #8 #9 #10
/*404343*/                OPC_EmitMergeInputChains, 2, 1, 3, 
/*404347*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (strict_fdiv:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VDIVPDZ128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*404361*/              0, /*End of Scope*/
/*404362*/            0, // EndSwitchOpcode
/*404363*/          /*SwitchOpcode*/ 2|128,1/*130*/, TARGET_VAL(ISD::FDIV),// ->404497
/*404367*/            OPC_RecordChild0, // #1 = $src1
/*404368*/            OPC_MoveChild1,
/*404369*/            OPC_SwitchOpcode /*2 cases */, 61, TARGET_VAL(ISD::LOAD),// ->404434
/*404373*/              OPC_RecordMemRef,
/*404374*/              OPC_RecordNode, // #2 = 'ld' chained node
/*404375*/              OPC_CheckFoldableChainNode,
/*404376*/              OPC_RecordChild1, // #3 = $src2
/*404377*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*404379*/              OPC_CheckPredicate, 9, // Predicate_load
/*404381*/              OPC_MoveParent,
/*404382*/              OPC_MoveParent,
/*404383*/              OPC_Scope, 24, /*->404409*/ // 2 children in Scope
/*404385*/                OPC_MoveChild2,
/*404386*/                OPC_CheckImmAllZerosV,
/*404387*/                OPC_MoveParent,
/*404388*/                OPC_CheckType, MVT::v2f64,
/*404390*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*404392*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*404395*/                OPC_EmitMergeInputChains1_2,
/*404396*/                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>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VDIVPDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*404409*/              /*Scope*/ 23, /*->404433*/
/*404410*/                OPC_RecordChild2, // #4 = $src0
/*404411*/                OPC_CheckType, MVT::v2f64,
/*404413*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*404415*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*404418*/                OPC_EmitMergeInputChains1_2,
/*404419*/                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>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VDIVPDZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*404433*/              0, /*End of Scope*/
/*404434*/            /*SwitchOpcode*/ 59, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->404496
/*404437*/              OPC_RecordMemRef,
/*404438*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*404439*/              OPC_CheckFoldableChainNode,
/*404440*/              OPC_RecordChild1, // #3 = $src2
/*404441*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*404443*/              OPC_MoveParent,
/*404444*/              OPC_MoveParent,
/*404445*/              OPC_Scope, 24, /*->404471*/ // 2 children in Scope
/*404447*/                OPC_MoveChild2,
/*404448*/                OPC_CheckImmAllZerosV,
/*404449*/                OPC_MoveParent,
/*404450*/                OPC_CheckType, MVT::v2f64,
/*404452*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*404454*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*404457*/                OPC_EmitMergeInputChains1_2,
/*404458*/                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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VDIVPDZ128rmbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*404471*/              /*Scope*/ 23, /*->404495*/
/*404472*/                OPC_RecordChild2, // #4 = $src0
/*404473*/                OPC_CheckType, MVT::v2f64,
/*404475*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*404477*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*404480*/                OPC_EmitMergeInputChains1_2,
/*404481*/                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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VDIVPDZ128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*404495*/              0, /*End of Scope*/
/*404496*/            0, // EndSwitchOpcode
/*404497*/          /*SwitchOpcode*/ 2|128,1/*130*/, TARGET_VAL(X86ISD::FMIN),// ->404631
/*404501*/            OPC_RecordChild0, // #1 = $src1
/*404502*/            OPC_MoveChild1,
/*404503*/            OPC_SwitchOpcode /*2 cases */, 61, TARGET_VAL(ISD::LOAD),// ->404568
/*404507*/              OPC_RecordMemRef,
/*404508*/              OPC_RecordNode, // #2 = 'ld' chained node
/*404509*/              OPC_CheckFoldableChainNode,
/*404510*/              OPC_RecordChild1, // #3 = $src2
/*404511*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*404513*/              OPC_CheckPredicate, 9, // Predicate_load
/*404515*/              OPC_MoveParent,
/*404516*/              OPC_MoveParent,
/*404517*/              OPC_Scope, 24, /*->404543*/ // 2 children in Scope
/*404519*/                OPC_MoveChild2,
/*404520*/                OPC_CheckImmAllZerosV,
/*404521*/                OPC_MoveParent,
/*404522*/                OPC_CheckType, MVT::v2f64,
/*404524*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*404526*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*404529*/                OPC_EmitMergeInputChains1_2,
/*404530*/                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>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VMINPDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*404543*/              /*Scope*/ 23, /*->404567*/
/*404544*/                OPC_RecordChild2, // #4 = $src0
/*404545*/                OPC_CheckType, MVT::v2f64,
/*404547*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*404549*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*404552*/                OPC_EmitMergeInputChains1_2,
/*404553*/                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>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VMINPDZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*404567*/              0, /*End of Scope*/
/*404568*/            /*SwitchOpcode*/ 59, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->404630
/*404571*/              OPC_RecordMemRef,
/*404572*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*404573*/              OPC_CheckFoldableChainNode,
/*404574*/              OPC_RecordChild1, // #3 = $src2
/*404575*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*404577*/              OPC_MoveParent,
/*404578*/              OPC_MoveParent,
/*404579*/              OPC_Scope, 24, /*->404605*/ // 2 children in Scope
/*404581*/                OPC_MoveChild2,
/*404582*/                OPC_CheckImmAllZerosV,
/*404583*/                OPC_MoveParent,
/*404584*/                OPC_CheckType, MVT::v2f64,
/*404586*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*404588*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*404591*/                OPC_EmitMergeInputChains1_2,
/*404592*/                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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VMINPDZ128rmbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*404605*/              /*Scope*/ 23, /*->404629*/
/*404606*/                OPC_RecordChild2, // #4 = $src0
/*404607*/                OPC_CheckType, MVT::v2f64,
/*404609*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*404611*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*404614*/                OPC_EmitMergeInputChains1_2,
/*404615*/                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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VMINPDZ128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*404629*/              0, /*End of Scope*/
/*404630*/            0, // EndSwitchOpcode
/*404631*/          /*SwitchOpcode*/ 2|128,1/*130*/, TARGET_VAL(X86ISD::FMAX),// ->404765
/*404635*/            OPC_RecordChild0, // #1 = $src1
/*404636*/            OPC_MoveChild1,
/*404637*/            OPC_SwitchOpcode /*2 cases */, 61, TARGET_VAL(ISD::LOAD),// ->404702
/*404641*/              OPC_RecordMemRef,
/*404642*/              OPC_RecordNode, // #2 = 'ld' chained node
/*404643*/              OPC_CheckFoldableChainNode,
/*404644*/              OPC_RecordChild1, // #3 = $src2
/*404645*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*404647*/              OPC_CheckPredicate, 9, // Predicate_load
/*404649*/              OPC_MoveParent,
/*404650*/              OPC_MoveParent,
/*404651*/              OPC_Scope, 24, /*->404677*/ // 2 children in Scope
/*404653*/                OPC_MoveChild2,
/*404654*/                OPC_CheckImmAllZerosV,
/*404655*/                OPC_MoveParent,
/*404656*/                OPC_CheckType, MVT::v2f64,
/*404658*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*404660*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*404663*/                OPC_EmitMergeInputChains1_2,
/*404664*/                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>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VMAXPDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*404677*/              /*Scope*/ 23, /*->404701*/
/*404678*/                OPC_RecordChild2, // #4 = $src0
/*404679*/                OPC_CheckType, MVT::v2f64,
/*404681*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*404683*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*404686*/                OPC_EmitMergeInputChains1_2,
/*404687*/                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>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VMAXPDZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*404701*/              0, /*End of Scope*/
/*404702*/            /*SwitchOpcode*/ 59, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->404764
/*404705*/              OPC_RecordMemRef,
/*404706*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*404707*/              OPC_CheckFoldableChainNode,
/*404708*/              OPC_RecordChild1, // #3 = $src2
/*404709*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*404711*/              OPC_MoveParent,
/*404712*/              OPC_MoveParent,
/*404713*/              OPC_Scope, 24, /*->404739*/ // 2 children in Scope
/*404715*/                OPC_MoveChild2,
/*404716*/                OPC_CheckImmAllZerosV,
/*404717*/                OPC_MoveParent,
/*404718*/                OPC_CheckType, MVT::v2f64,
/*404720*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*404722*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*404725*/                OPC_EmitMergeInputChains1_2,
/*404726*/                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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VMAXPDZ128rmbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*404739*/              /*Scope*/ 23, /*->404763*/
/*404740*/                OPC_RecordChild2, // #4 = $src0
/*404741*/                OPC_CheckType, MVT::v2f64,
/*404743*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*404745*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*404748*/                OPC_EmitMergeInputChains1_2,
/*404749*/                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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VMAXPDZ128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*404763*/              0, /*End of Scope*/
/*404764*/            0, // EndSwitchOpcode
/*404765*/          /*SwitchOpcode*/ 52|128,2/*308*/, TARGET_VAL(X86ISD::FMINC),// ->405077
/*404769*/            OPC_Scope, 76, /*->404847*/ // 4 children in Scope
/*404771*/              OPC_RecordChild0, // #1 = $src1
/*404772*/              OPC_MoveChild1,
/*404773*/              OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->404811
/*404777*/                OPC_RecordMemRef,
/*404778*/                OPC_RecordNode, // #2 = 'ld' chained node
/*404779*/                OPC_CheckFoldableChainNode,
/*404780*/                OPC_RecordChild1, // #3 = $src2
/*404781*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*404783*/                OPC_CheckPredicate, 9, // Predicate_load
/*404785*/                OPC_MoveParent,
/*404786*/                OPC_MoveParent,
/*404787*/                OPC_MoveChild2,
/*404788*/                OPC_CheckImmAllZerosV,
/*404789*/                OPC_MoveParent,
/*404790*/                OPC_CheckType, MVT::v2f64,
/*404792*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*404794*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*404797*/                OPC_EmitMergeInputChains1_2,
/*404798*/                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>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VMINCPDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*404811*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->404846
/*404814*/                OPC_RecordMemRef,
/*404815*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*404816*/                OPC_CheckFoldableChainNode,
/*404817*/                OPC_RecordChild1, // #3 = $src2
/*404818*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*404820*/                OPC_MoveParent,
/*404821*/                OPC_MoveParent,
/*404822*/                OPC_MoveChild2,
/*404823*/                OPC_CheckImmAllZerosV,
/*404824*/                OPC_MoveParent,
/*404825*/                OPC_CheckType, MVT::v2f64,
/*404827*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*404829*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*404832*/                OPC_EmitMergeInputChains1_2,
/*404833*/                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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VMINCPDZ128rmbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*404846*/              0, // EndSwitchOpcode
/*404847*/            /*Scope*/ 77, /*->404925*/
/*404848*/              OPC_MoveChild0,
/*404849*/              OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->404888
/*404853*/                OPC_RecordMemRef,
/*404854*/                OPC_RecordNode, // #1 = 'ld' chained node
/*404855*/                OPC_CheckFoldableChainNode,
/*404856*/                OPC_RecordChild1, // #2 = $src2
/*404857*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*404859*/                OPC_CheckPredicate, 9, // Predicate_load
/*404861*/                OPC_MoveParent,
/*404862*/                OPC_RecordChild1, // #3 = $src1
/*404863*/                OPC_MoveParent,
/*404864*/                OPC_MoveChild2,
/*404865*/                OPC_CheckImmAllZerosV,
/*404866*/                OPC_MoveParent,
/*404867*/                OPC_CheckType, MVT::v2f64,
/*404869*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*404871*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*404874*/                OPC_EmitMergeInputChains1_1,
/*404875*/                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>>, VR128X:{ *:[v2f64] }:$src1), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VMINCPDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*404888*/              /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->404924
/*404891*/                OPC_RecordMemRef,
/*404892*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*404893*/                OPC_CheckFoldableChainNode,
/*404894*/                OPC_RecordChild1, // #2 = $src2
/*404895*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*404897*/                OPC_MoveParent,
/*404898*/                OPC_RecordChild1, // #3 = $src1
/*404899*/                OPC_MoveParent,
/*404900*/                OPC_MoveChild2,
/*404901*/                OPC_CheckImmAllZerosV,
/*404902*/                OPC_MoveParent,
/*404903*/                OPC_CheckType, MVT::v2f64,
/*404905*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*404907*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*404910*/                OPC_EmitMergeInputChains1_1,
/*404911*/                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] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VMINCPDZ128rmbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*404924*/              0, // EndSwitchOpcode
/*404925*/            /*Scope*/ 74, /*->405000*/
/*404926*/              OPC_RecordChild0, // #1 = $src1
/*404927*/              OPC_MoveChild1,
/*404928*/              OPC_SwitchOpcode /*2 cases */, 33, TARGET_VAL(ISD::LOAD),// ->404965
/*404932*/                OPC_RecordMemRef,
/*404933*/                OPC_RecordNode, // #2 = 'ld' chained node
/*404934*/                OPC_CheckFoldableChainNode,
/*404935*/                OPC_RecordChild1, // #3 = $src2
/*404936*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*404938*/                OPC_CheckPredicate, 9, // Predicate_load
/*404940*/                OPC_MoveParent,
/*404941*/                OPC_MoveParent,
/*404942*/                OPC_RecordChild2, // #4 = $src0
/*404943*/                OPC_CheckType, MVT::v2f64,
/*404945*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*404947*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*404950*/                OPC_EmitMergeInputChains1_2,
/*404951*/                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>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VMINCPDZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*404965*/              /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->404999
/*404968*/                OPC_RecordMemRef,
/*404969*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*404970*/                OPC_CheckFoldableChainNode,
/*404971*/                OPC_RecordChild1, // #3 = $src2
/*404972*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*404974*/                OPC_MoveParent,
/*404975*/                OPC_MoveParent,
/*404976*/                OPC_RecordChild2, // #4 = $src0
/*404977*/                OPC_CheckType, MVT::v2f64,
/*404979*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*404981*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*404984*/                OPC_EmitMergeInputChains1_2,
/*404985*/                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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VMINCPDZ128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*404999*/              0, // EndSwitchOpcode
/*405000*/            /*Scope*/ 75, /*->405076*/
/*405001*/              OPC_MoveChild0,
/*405002*/              OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->405040
/*405006*/                OPC_RecordMemRef,
/*405007*/                OPC_RecordNode, // #1 = 'ld' chained node
/*405008*/                OPC_CheckFoldableChainNode,
/*405009*/                OPC_RecordChild1, // #2 = $src2
/*405010*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*405012*/                OPC_CheckPredicate, 9, // Predicate_load
/*405014*/                OPC_MoveParent,
/*405015*/                OPC_RecordChild1, // #3 = $src1
/*405016*/                OPC_MoveParent,
/*405017*/                OPC_RecordChild2, // #4 = $src0
/*405018*/                OPC_CheckType, MVT::v2f64,
/*405020*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*405022*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*405025*/                OPC_EmitMergeInputChains1_1,
/*405026*/                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>>, VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VMINCPDZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*405040*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->405075
/*405043*/                OPC_RecordMemRef,
/*405044*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*405045*/                OPC_CheckFoldableChainNode,
/*405046*/                OPC_RecordChild1, // #2 = $src2
/*405047*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*405049*/                OPC_MoveParent,
/*405050*/                OPC_RecordChild1, // #3 = $src1
/*405051*/                OPC_MoveParent,
/*405052*/                OPC_RecordChild2, // #4 = $src0
/*405053*/                OPC_CheckType, MVT::v2f64,
/*405055*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*405057*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*405060*/                OPC_EmitMergeInputChains1_1,
/*405061*/                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] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VMINCPDZ128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*405075*/              0, // EndSwitchOpcode
/*405076*/            0, /*End of Scope*/
/*405077*/          /*SwitchOpcode*/ 52|128,2/*308*/, TARGET_VAL(X86ISD::FMAXC),// ->405389
/*405081*/            OPC_Scope, 76, /*->405159*/ // 4 children in Scope
/*405083*/              OPC_RecordChild0, // #1 = $src1
/*405084*/              OPC_MoveChild1,
/*405085*/              OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->405123
/*405089*/                OPC_RecordMemRef,
/*405090*/                OPC_RecordNode, // #2 = 'ld' chained node
/*405091*/                OPC_CheckFoldableChainNode,
/*405092*/                OPC_RecordChild1, // #3 = $src2
/*405093*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*405095*/                OPC_CheckPredicate, 9, // Predicate_load
/*405097*/                OPC_MoveParent,
/*405098*/                OPC_MoveParent,
/*405099*/                OPC_MoveChild2,
/*405100*/                OPC_CheckImmAllZerosV,
/*405101*/                OPC_MoveParent,
/*405102*/                OPC_CheckType, MVT::v2f64,
/*405104*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*405106*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*405109*/                OPC_EmitMergeInputChains1_2,
/*405110*/                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>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VMAXCPDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*405123*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->405158
/*405126*/                OPC_RecordMemRef,
/*405127*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*405128*/                OPC_CheckFoldableChainNode,
/*405129*/                OPC_RecordChild1, // #3 = $src2
/*405130*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*405132*/                OPC_MoveParent,
/*405133*/                OPC_MoveParent,
/*405134*/                OPC_MoveChild2,
/*405135*/                OPC_CheckImmAllZerosV,
/*405136*/                OPC_MoveParent,
/*405137*/                OPC_CheckType, MVT::v2f64,
/*405139*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*405141*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*405144*/                OPC_EmitMergeInputChains1_2,
/*405145*/                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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VMAXCPDZ128rmbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*405158*/              0, // EndSwitchOpcode
/*405159*/            /*Scope*/ 77, /*->405237*/
/*405160*/              OPC_MoveChild0,
/*405161*/              OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->405200
/*405165*/                OPC_RecordMemRef,
/*405166*/                OPC_RecordNode, // #1 = 'ld' chained node
/*405167*/                OPC_CheckFoldableChainNode,
/*405168*/                OPC_RecordChild1, // #2 = $src2
/*405169*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*405171*/                OPC_CheckPredicate, 9, // Predicate_load
/*405173*/                OPC_MoveParent,
/*405174*/                OPC_RecordChild1, // #3 = $src1
/*405175*/                OPC_MoveParent,
/*405176*/                OPC_MoveChild2,
/*405177*/                OPC_CheckImmAllZerosV,
/*405178*/                OPC_MoveParent,
/*405179*/                OPC_CheckType, MVT::v2f64,
/*405181*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*405183*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*405186*/                OPC_EmitMergeInputChains1_1,
/*405187*/                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>>, VR128X:{ *:[v2f64] }:$src1), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VMAXCPDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*405200*/              /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->405236
/*405203*/                OPC_RecordMemRef,
/*405204*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*405205*/                OPC_CheckFoldableChainNode,
/*405206*/                OPC_RecordChild1, // #2 = $src2
/*405207*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*405209*/                OPC_MoveParent,
/*405210*/                OPC_RecordChild1, // #3 = $src1
/*405211*/                OPC_MoveParent,
/*405212*/                OPC_MoveChild2,
/*405213*/                OPC_CheckImmAllZerosV,
/*405214*/                OPC_MoveParent,
/*405215*/                OPC_CheckType, MVT::v2f64,
/*405217*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*405219*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*405222*/                OPC_EmitMergeInputChains1_1,
/*405223*/                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] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VMAXCPDZ128rmbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*405236*/              0, // EndSwitchOpcode
/*405237*/            /*Scope*/ 74, /*->405312*/
/*405238*/              OPC_RecordChild0, // #1 = $src1
/*405239*/              OPC_MoveChild1,
/*405240*/              OPC_SwitchOpcode /*2 cases */, 33, TARGET_VAL(ISD::LOAD),// ->405277
/*405244*/                OPC_RecordMemRef,
/*405245*/                OPC_RecordNode, // #2 = 'ld' chained node
/*405246*/                OPC_CheckFoldableChainNode,
/*405247*/                OPC_RecordChild1, // #3 = $src2
/*405248*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*405250*/                OPC_CheckPredicate, 9, // Predicate_load
/*405252*/                OPC_MoveParent,
/*405253*/                OPC_MoveParent,
/*405254*/                OPC_RecordChild2, // #4 = $src0
/*405255*/                OPC_CheckType, MVT::v2f64,
/*405257*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*405259*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*405262*/                OPC_EmitMergeInputChains1_2,
/*405263*/                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>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VMAXCPDZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*405277*/              /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->405311
/*405280*/                OPC_RecordMemRef,
/*405281*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*405282*/                OPC_CheckFoldableChainNode,
/*405283*/                OPC_RecordChild1, // #3 = $src2
/*405284*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*405286*/                OPC_MoveParent,
/*405287*/                OPC_MoveParent,
/*405288*/                OPC_RecordChild2, // #4 = $src0
/*405289*/                OPC_CheckType, MVT::v2f64,
/*405291*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*405293*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*405296*/                OPC_EmitMergeInputChains1_2,
/*405297*/                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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VMAXCPDZ128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*405311*/              0, // EndSwitchOpcode
/*405312*/            /*Scope*/ 75, /*->405388*/
/*405313*/              OPC_MoveChild0,
/*405314*/              OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::LOAD),// ->405352
/*405318*/                OPC_RecordMemRef,
/*405319*/                OPC_RecordNode, // #1 = 'ld' chained node
/*405320*/                OPC_CheckFoldableChainNode,
/*405321*/                OPC_RecordChild1, // #2 = $src2
/*405322*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*405324*/                OPC_CheckPredicate, 9, // Predicate_load
/*405326*/                OPC_MoveParent,
/*405327*/                OPC_RecordChild1, // #3 = $src1
/*405328*/                OPC_MoveParent,
/*405329*/                OPC_RecordChild2, // #4 = $src0
/*405330*/                OPC_CheckType, MVT::v2f64,
/*405332*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*405334*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*405337*/                OPC_EmitMergeInputChains1_1,
/*405338*/                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>>, VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VMAXCPDZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*405352*/              /*SwitchOpcode*/ 32, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->405387
/*405355*/                OPC_RecordMemRef,
/*405356*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*405357*/                OPC_CheckFoldableChainNode,
/*405358*/                OPC_RecordChild1, // #2 = $src2
/*405359*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*405361*/                OPC_MoveParent,
/*405362*/                OPC_RecordChild1, // #3 = $src1
/*405363*/                OPC_MoveParent,
/*405364*/                OPC_RecordChild2, // #4 = $src0
/*405365*/                OPC_CheckType, MVT::v2f64,
/*405367*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*405369*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*405372*/                OPC_EmitMergeInputChains1_1,
/*405373*/                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] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VMAXCPDZ128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*405387*/              0, // EndSwitchOpcode
/*405388*/            0, /*End of Scope*/
/*405389*/          /*SwitchOpcode*/ 2|128,1/*130*/, TARGET_VAL(X86ISD::SCALEF),// ->405523
/*405393*/            OPC_RecordChild0, // #1 = $src1
/*405394*/            OPC_MoveChild1,
/*405395*/            OPC_SwitchOpcode /*2 cases */, 61, TARGET_VAL(ISD::LOAD),// ->405460
/*405399*/              OPC_RecordMemRef,
/*405400*/              OPC_RecordNode, // #2 = 'ld' chained node
/*405401*/              OPC_CheckFoldableChainNode,
/*405402*/              OPC_RecordChild1, // #3 = $src2
/*405403*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*405405*/              OPC_CheckPredicate, 9, // Predicate_load
/*405407*/              OPC_MoveParent,
/*405408*/              OPC_MoveParent,
/*405409*/              OPC_Scope, 24, /*->405435*/ // 2 children in Scope
/*405411*/                OPC_MoveChild2,
/*405412*/                OPC_CheckImmAllZerosV,
/*405413*/                OPC_MoveParent,
/*405414*/                OPC_CheckType, MVT::v2f64,
/*405416*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*405418*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*405421*/                OPC_EmitMergeInputChains1_2,
/*405422*/                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>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VSCALEFPDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*405435*/              /*Scope*/ 23, /*->405459*/
/*405436*/                OPC_RecordChild2, // #4 = $src0
/*405437*/                OPC_CheckType, MVT::v2f64,
/*405439*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*405441*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*405444*/                OPC_EmitMergeInputChains1_2,
/*405445*/                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>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VSCALEFPDZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*405459*/              0, /*End of Scope*/
/*405460*/            /*SwitchOpcode*/ 59, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->405522
/*405463*/              OPC_RecordMemRef,
/*405464*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*405465*/              OPC_CheckFoldableChainNode,
/*405466*/              OPC_RecordChild1, // #3 = $src2
/*405467*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*405469*/              OPC_MoveParent,
/*405470*/              OPC_MoveParent,
/*405471*/              OPC_Scope, 24, /*->405497*/ // 2 children in Scope
/*405473*/                OPC_MoveChild2,
/*405474*/                OPC_CheckImmAllZerosV,
/*405475*/                OPC_MoveParent,
/*405476*/                OPC_CheckType, MVT::v2f64,
/*405478*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*405480*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*405483*/                OPC_EmitMergeInputChains1_2,
/*405484*/                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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VSCALEFPDZ128rmbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*405497*/              /*Scope*/ 23, /*->405521*/
/*405498*/                OPC_RecordChild2, // #4 = $src0
/*405499*/                OPC_CheckType, MVT::v2f64,
/*405501*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*405503*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*405506*/                OPC_EmitMergeInputChains1_2,
/*405507*/                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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VSCALEFPDZ128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*405521*/              0, /*End of Scope*/
/*405522*/            0, // EndSwitchOpcode
/*405523*/          /*SwitchOpcode*/ 2|128,1/*130*/, TARGET_VAL(X86ISD::VPERMILPV),// ->405657
/*405527*/            OPC_RecordChild0, // #1 = $src1
/*405528*/            OPC_MoveChild1,
/*405529*/            OPC_SwitchOpcode /*2 cases */, 61, TARGET_VAL(ISD::LOAD),// ->405594
/*405533*/              OPC_RecordMemRef,
/*405534*/              OPC_RecordNode, // #2 = 'ld' chained node
/*405535*/              OPC_CheckFoldableChainNode,
/*405536*/              OPC_RecordChild1, // #3 = $src2
/*405537*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*405539*/              OPC_CheckPredicate, 9, // Predicate_load
/*405541*/              OPC_MoveParent,
/*405542*/              OPC_MoveParent,
/*405543*/              OPC_Scope, 24, /*->405569*/ // 2 children in Scope
/*405545*/                OPC_MoveChild2,
/*405546*/                OPC_CheckImmAllZerosV,
/*405547*/                OPC_MoveParent,
/*405548*/                OPC_CheckType, MVT::v2f64,
/*405550*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*405552*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*405555*/                OPC_EmitMergeInputChains1_2,
/*405556*/                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>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VPERMILPDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*405569*/              /*Scope*/ 23, /*->405593*/
/*405570*/                OPC_RecordChild2, // #4 = $src0
/*405571*/                OPC_CheckType, MVT::v2f64,
/*405573*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*405575*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*405578*/                OPC_EmitMergeInputChains1_2,
/*405579*/                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>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VPERMILPDZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*405593*/              0, /*End of Scope*/
/*405594*/            /*SwitchOpcode*/ 59, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->405656
/*405597*/              OPC_RecordMemRef,
/*405598*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*405599*/              OPC_CheckFoldableChainNode,
/*405600*/              OPC_RecordChild1, // #3 = $src2
/*405601*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*405603*/              OPC_MoveParent,
/*405604*/              OPC_MoveParent,
/*405605*/              OPC_Scope, 24, /*->405631*/ // 2 children in Scope
/*405607*/                OPC_MoveChild2,
/*405608*/                OPC_CheckImmAllZerosV,
/*405609*/                OPC_MoveParent,
/*405610*/                OPC_CheckType, MVT::v2f64,
/*405612*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*405614*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*405617*/                OPC_EmitMergeInputChains1_2,
/*405618*/                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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VPERMILPDZ128rmbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*405631*/              /*Scope*/ 23, /*->405655*/
/*405632*/                OPC_RecordChild2, // #4 = $src0
/*405633*/                OPC_CheckType, MVT::v2f64,
/*405635*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*405637*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*405640*/                OPC_EmitMergeInputChains1_2,
/*405641*/                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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VPERMILPDZ128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*405655*/              0, /*End of Scope*/
/*405656*/            0, // EndSwitchOpcode
/*405657*/          /*SwitchOpcode*/ 13|128,6/*781*/, TARGET_VAL(ISD::STRICT_FMA),// ->406442
/*405661*/            OPC_RecordNode, // #1 = 'X86strict_Fmadd' chained node
/*405662*/            OPC_CheckFoldableChainNode,
/*405663*/            OPC_Scope, 46|128,1/*174*/, /*->405840*/ // 7 children in Scope
/*405666*/              OPC_RecordChild1, // #2 = $src2
/*405667*/              OPC_Scope, 84, /*->405753*/ // 2 children in Scope
/*405669*/                OPC_RecordChild2, // #3 = $src1
/*405670*/                OPC_MoveChild3,
/*405671*/                OPC_SwitchOpcode /*2 cases */, 38, TARGET_VAL(ISD::LOAD),// ->405713
/*405675*/                  OPC_RecordMemRef,
/*405676*/                  OPC_RecordNode, // #4 = 'ld' chained node
/*405677*/                  OPC_CheckFoldableChainNode,
/*405678*/                  OPC_RecordChild1, // #5 = $src3
/*405679*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*405681*/                  OPC_CheckPredicate, 9, // Predicate_load
/*405683*/                  OPC_MoveParent,
/*405684*/                  OPC_MoveParent,
/*405685*/                  OPC_MoveChild2,
/*405686*/                  OPC_CheckImmAllZerosV,
/*405687*/                  OPC_MoveParent,
/*405688*/                  OPC_CheckType, MVT::v2f64,
/*405690*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*405692*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/5, // selectAddr:$src3 #6 #7 #8 #9 #10
/*405695*/                  OPC_EmitMergeInputChains, 2, 1, 4, 
/*405699*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 8/*#Ops*/, 3, 0, 2, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_Fmadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                            // Dst: (VFMADD213PDZ128mkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*405713*/                /*SwitchOpcode*/ 36, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->405752
/*405716*/                  OPC_RecordMemRef,
/*405717*/                  OPC_RecordNode, // #4 = 'X86VBroadcastld' chained node
/*405718*/                  OPC_CheckFoldableChainNode,
/*405719*/                  OPC_RecordChild1, // #5 = $src3
/*405720*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*405722*/                  OPC_MoveParent,
/*405723*/                  OPC_MoveParent,
/*405724*/                  OPC_MoveChild2,
/*405725*/                  OPC_CheckImmAllZerosV,
/*405726*/                  OPC_MoveParent,
/*405727*/                  OPC_CheckType, MVT::v2f64,
/*405729*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*405731*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/5, // selectAddr:$src3 #6 #7 #8 #9 #10
/*405734*/                  OPC_EmitMergeInputChains, 2, 1, 4, 
/*405738*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZ128mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 8/*#Ops*/, 3, 0, 2, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_Fmadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                            // Dst: (VFMADD213PDZ128mbkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*405752*/                0, // EndSwitchOpcode
/*405753*/              /*Scope*/ 85, /*->405839*/
/*405754*/                OPC_MoveChild2,
/*405755*/                OPC_SwitchOpcode /*2 cases */, 39, TARGET_VAL(ISD::LOAD),// ->405798
/*405759*/                  OPC_RecordMemRef,
/*405760*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*405761*/                  OPC_CheckFoldableChainNode,
/*405762*/                  OPC_RecordChild1, // #4 = $src3
/*405763*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*405765*/                  OPC_CheckPredicate, 9, // Predicate_load
/*405767*/                  OPC_MoveParent,
/*405768*/                  OPC_RecordChild3, // #5 = $src1
/*405769*/                  OPC_MoveParent,
/*405770*/                  OPC_MoveChild2,
/*405771*/                  OPC_CheckImmAllZerosV,
/*405772*/                  OPC_MoveParent,
/*405773*/                  OPC_CheckType, MVT::v2f64,
/*405775*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*405777*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*405780*/                  OPC_EmitMergeInputChains, 2, 1, 3, 
/*405784*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PDZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_Fmadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v2f64] }:$src1), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                            // Dst: (VFMADD231PDZ128mkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*405798*/                /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->405838
/*405801*/                  OPC_RecordMemRef,
/*405802*/                  OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*405803*/                  OPC_CheckFoldableChainNode,
/*405804*/                  OPC_RecordChild1, // #4 = $src3
/*405805*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*405807*/                  OPC_MoveParent,
/*405808*/                  OPC_RecordChild3, // #5 = $src1
/*405809*/                  OPC_MoveParent,
/*405810*/                  OPC_MoveChild2,
/*405811*/                  OPC_CheckImmAllZerosV,
/*405812*/                  OPC_MoveParent,
/*405813*/                  OPC_CheckType, MVT::v2f64,
/*405815*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*405817*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*405820*/                  OPC_EmitMergeInputChains, 2, 1, 3, 
/*405824*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PDZ128mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_Fmadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                            // Dst: (VFMADD231PDZ128mbkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*405838*/                0, // EndSwitchOpcode
/*405839*/              0, /*End of Scope*/
/*405840*/            /*Scope*/ 87, /*->405928*/
/*405841*/              OPC_MoveChild1,
/*405842*/              OPC_SwitchOpcode /*2 cases */, 40, TARGET_VAL(ISD::LOAD),// ->405886
/*405846*/                OPC_RecordMemRef,
/*405847*/                OPC_RecordNode, // #2 = 'ld' chained node
/*405848*/                OPC_CheckFoldableChainNode,
/*405849*/                OPC_RecordChild1, // #3 = $src3
/*405850*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*405852*/                OPC_CheckPredicate, 9, // Predicate_load
/*405854*/                OPC_MoveParent,
/*405855*/                OPC_RecordChild2, // #4 = $src1
/*405856*/                OPC_RecordChild3, // #5 = $src2
/*405857*/                OPC_MoveParent,
/*405858*/                OPC_MoveChild2,
/*405859*/                OPC_CheckImmAllZerosV,
/*405860*/                OPC_MoveParent,
/*405861*/                OPC_CheckType, MVT::v2f64,
/*405863*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*405865*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*405868*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*405872*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PDZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_Fmadd:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VFMADD132PDZ128mkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*405886*/              /*SwitchOpcode*/ 38, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->405927
/*405889*/                OPC_RecordMemRef,
/*405890*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*405891*/                OPC_CheckFoldableChainNode,
/*405892*/                OPC_RecordChild1, // #3 = $src3
/*405893*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*405895*/                OPC_MoveParent,
/*405896*/                OPC_RecordChild2, // #4 = $src1
/*405897*/                OPC_RecordChild3, // #5 = $src2
/*405898*/                OPC_MoveParent,
/*405899*/                OPC_MoveChild2,
/*405900*/                OPC_CheckImmAllZerosV,
/*405901*/                OPC_MoveParent,
/*405902*/                OPC_CheckType, MVT::v2f64,
/*405904*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*405906*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*405909*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*405913*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PDZ128mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_Fmadd:{ *:[v2f64] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VFMADD132PDZ128mbkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*405927*/              0, // EndSwitchOpcode
/*405928*/            /*Scope*/ 42|128,1/*170*/, /*->406100*/
/*405930*/              OPC_RecordChild1, // #2 = $src2
/*405931*/              OPC_Scope, 82, /*->406015*/ // 2 children in Scope
/*405933*/                OPC_RecordChild2, // #3 = $src1
/*405934*/                OPC_MoveChild3,
/*405935*/                OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->405976
/*405939*/                  OPC_RecordMemRef,
/*405940*/                  OPC_RecordNode, // #4 = 'ld' chained node
/*405941*/                  OPC_CheckFoldableChainNode,
/*405942*/                  OPC_RecordChild1, // #5 = $src3
/*405943*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*405945*/                  OPC_CheckPredicate, 9, // Predicate_load
/*405947*/                  OPC_MoveParent,
/*405948*/                  OPC_MoveParent,
/*405949*/                  OPC_CheckChild2Same, 3,
/*405951*/                  OPC_CheckType, MVT::v2f64,
/*405953*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*405955*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/5, // selectAddr:$src3 #6 #7 #8 #9 #10
/*405958*/                  OPC_EmitMergeInputChains, 2, 1, 4, 
/*405962*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 8/*#Ops*/, 3, 0, 2, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_Fmadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                            // Dst: (VFMADD213PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*405976*/                /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->406014
/*405979*/                  OPC_RecordMemRef,
/*405980*/                  OPC_RecordNode, // #4 = 'X86VBroadcastld' chained node
/*405981*/                  OPC_CheckFoldableChainNode,
/*405982*/                  OPC_RecordChild1, // #5 = $src3
/*405983*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*405985*/                  OPC_MoveParent,
/*405986*/                  OPC_MoveParent,
/*405987*/                  OPC_CheckChild2Same, 3,
/*405989*/                  OPC_CheckType, MVT::v2f64,
/*405991*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*405993*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/5, // selectAddr:$src3 #6 #7 #8 #9 #10
/*405996*/                  OPC_EmitMergeInputChains, 2, 1, 4, 
/*406000*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 8/*#Ops*/, 3, 0, 2, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_Fmadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                            // Dst: (VFMADD213PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*406014*/                0, // EndSwitchOpcode
/*406015*/              /*Scope*/ 83, /*->406099*/
/*406016*/                OPC_MoveChild2,
/*406017*/                OPC_SwitchOpcode /*2 cases */, 38, TARGET_VAL(ISD::LOAD),// ->406059
/*406021*/                  OPC_RecordMemRef,
/*406022*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*406023*/                  OPC_CheckFoldableChainNode,
/*406024*/                  OPC_RecordChild1, // #4 = $src3
/*406025*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*406027*/                  OPC_CheckPredicate, 9, // Predicate_load
/*406029*/                  OPC_MoveParent,
/*406030*/                  OPC_RecordChild3, // #5 = $src1
/*406031*/                  OPC_MoveParent,
/*406032*/                  OPC_CheckChild2Same, 5,
/*406034*/                  OPC_CheckType, MVT::v2f64,
/*406036*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*406038*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*406041*/                  OPC_EmitMergeInputChains, 2, 1, 3, 
/*406045*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PDZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_Fmadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                            // Dst: (VFMADD231PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*406059*/                /*SwitchOpcode*/ 36, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->406098
/*406062*/                  OPC_RecordMemRef,
/*406063*/                  OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*406064*/                  OPC_CheckFoldableChainNode,
/*406065*/                  OPC_RecordChild1, // #4 = $src3
/*406066*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*406068*/                  OPC_MoveParent,
/*406069*/                  OPC_RecordChild3, // #5 = $src1
/*406070*/                  OPC_MoveParent,
/*406071*/                  OPC_CheckChild2Same, 5,
/*406073*/                  OPC_CheckType, MVT::v2f64,
/*406075*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*406077*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*406080*/                  OPC_EmitMergeInputChains, 2, 1, 3, 
/*406084*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PDZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 8/*#Ops*/, 5, 0, 2, 6, 7, 8, 9, 10, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_Fmadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                            // Dst: (VFMADD231PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*406098*/                0, // EndSwitchOpcode
/*406099*/              0, /*End of Scope*/
/*406100*/            /*Scope*/ 85, /*->406186*/
/*406101*/              OPC_MoveChild1,
/*406102*/              OPC_SwitchOpcode /*2 cases */, 39, TARGET_VAL(ISD::LOAD),// ->406145
/*406106*/                OPC_RecordMemRef,
/*406107*/                OPC_RecordNode, // #2 = 'ld' chained node
/*406108*/                OPC_CheckFoldableChainNode,
/*406109*/                OPC_RecordChild1, // #3 = $src3
/*406110*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*406112*/                OPC_CheckPredicate, 9, // Predicate_load
/*406114*/                OPC_MoveParent,
/*406115*/                OPC_RecordChild2, // #4 = $src1
/*406116*/                OPC_RecordChild3, // #5 = $src2
/*406117*/                OPC_MoveParent,
/*406118*/                OPC_CheckChild2Same, 4,
/*406120*/                OPC_CheckType, MVT::v2f64,
/*406122*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*406124*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*406127*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*406131*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PDZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_Fmadd:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, 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)
/*406145*/              /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->406185
/*406148*/                OPC_RecordMemRef,
/*406149*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*406150*/                OPC_CheckFoldableChainNode,
/*406151*/                OPC_RecordChild1, // #3 = $src3
/*406152*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*406154*/                OPC_MoveParent,
/*406155*/                OPC_RecordChild2, // #4 = $src1
/*406156*/                OPC_RecordChild3, // #5 = $src2
/*406157*/                OPC_MoveParent,
/*406158*/                OPC_CheckChild2Same, 4,
/*406160*/                OPC_CheckType, MVT::v2f64,
/*406162*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*406164*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*406167*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*406171*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PDZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_Fmadd:{ *:[v2f64] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                          // Dst: (VFMADD132PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*406185*/              0, // EndSwitchOpcode
/*406186*/            /*Scope*/ 83, /*->406270*/
/*406187*/              OPC_RecordChild1, // #2 = $src1
/*406188*/              OPC_RecordChild2, // #3 = $src2
/*406189*/              OPC_MoveChild3,
/*406190*/              OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->406231
/*406194*/                OPC_RecordMemRef,
/*406195*/                OPC_RecordNode, // #4 = 'ld' chained node
/*406196*/                OPC_CheckFoldableChainNode,
/*406197*/                OPC_RecordChild1, // #5 = $src3
/*406198*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*406200*/                OPC_CheckPredicate, 9, // Predicate_load
/*406202*/                OPC_MoveParent,
/*406203*/                OPC_MoveParent,
/*406204*/                OPC_CheckChild2Same, 2,
/*406206*/                OPC_CheckType, MVT::v2f64,
/*406208*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*406210*/                OPC_CheckComplexPat, /*CP*/0, /*#*/5, // selectAddr:$src3 #6 #7 #8 #9 #10
/*406213*/                OPC_EmitMergeInputChains, 2, 1, 4, 
/*406217*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 2, 0, 3, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_Fmadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                          // Dst: (VFMADD213PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*406231*/              /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->406269
/*406234*/                OPC_RecordMemRef,
/*406235*/                OPC_RecordNode, // #4 = 'X86VBroadcastld' chained node
/*406236*/                OPC_CheckFoldableChainNode,
/*406237*/                OPC_RecordChild1, // #5 = $src3
/*406238*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*406240*/                OPC_MoveParent,
/*406241*/                OPC_MoveParent,
/*406242*/                OPC_CheckChild2Same, 2,
/*406244*/                OPC_CheckType, MVT::v2f64,
/*406246*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*406248*/                OPC_CheckComplexPat, /*CP*/0, /*#*/5, // selectAddr:$src3 #6 #7 #8 #9 #10
/*406251*/                OPC_EmitMergeInputChains, 2, 1, 4, 
/*406255*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 2, 0, 3, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_Fmadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                          // Dst: (VFMADD213PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*406269*/              0, // EndSwitchOpcode
/*406270*/            /*Scope*/ 85, /*->406356*/
/*406271*/              OPC_MoveChild1,
/*406272*/              OPC_SwitchOpcode /*2 cases */, 39, TARGET_VAL(ISD::LOAD),// ->406315
/*406276*/                OPC_RecordMemRef,
/*406277*/                OPC_RecordNode, // #2 = 'ld' chained node
/*406278*/                OPC_CheckFoldableChainNode,
/*406279*/                OPC_RecordChild1, // #3 = $src3
/*406280*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*406282*/                OPC_CheckPredicate, 9, // Predicate_load
/*406284*/                OPC_MoveParent,
/*406285*/                OPC_RecordChild2, // #4 = $src2
/*406286*/                OPC_RecordChild3, // #5 = $src1
/*406287*/                OPC_MoveParent,
/*406288*/                OPC_CheckChild2Same, 5,
/*406290*/                OPC_CheckType, MVT::v2f64,
/*406292*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*406294*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*406297*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*406301*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PDZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 5, 0, 4, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_Fmadd:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, 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)
/*406315*/              /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->406355
/*406318*/                OPC_RecordMemRef,
/*406319*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*406320*/                OPC_CheckFoldableChainNode,
/*406321*/                OPC_RecordChild1, // #3 = $src3
/*406322*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*406324*/                OPC_MoveParent,
/*406325*/                OPC_RecordChild2, // #4 = $src2
/*406326*/                OPC_RecordChild3, // #5 = $src1
/*406327*/                OPC_MoveParent,
/*406328*/                OPC_CheckChild2Same, 5,
/*406330*/                OPC_CheckType, MVT::v2f64,
/*406332*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*406334*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #6 #7 #8 #9 #10
/*406337*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*406341*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PDZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 5, 0, 4, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_Fmadd:{ *:[v2f64] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                          // Dst: (VFMADD231PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*406355*/              0, // EndSwitchOpcode
/*406356*/            /*Scope*/ 84, /*->406441*/
/*406357*/              OPC_RecordChild1, // #2 = $src1
/*406358*/              OPC_MoveChild2,
/*406359*/              OPC_SwitchOpcode /*2 cases */, 38, TARGET_VAL(ISD::LOAD),// ->406401
/*406363*/                OPC_RecordMemRef,
/*406364*/                OPC_RecordNode, // #3 = 'ld' chained node
/*406365*/                OPC_CheckFoldableChainNode,
/*406366*/                OPC_RecordChild1, // #4 = $src3
/*406367*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*406369*/                OPC_CheckPredicate, 9, // Predicate_load
/*406371*/                OPC_MoveParent,
/*406372*/                OPC_RecordChild3, // #5 = $src2
/*406373*/                OPC_MoveParent,
/*406374*/                OPC_CheckChild2Same, 2,
/*406376*/                OPC_CheckType, MVT::v2f64,
/*406378*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*406380*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*406383*/                OPC_EmitMergeInputChains, 2, 1, 3, 
/*406387*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PDZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 2, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_Fmadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                          // Dst: (VFMADD132PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*406401*/              /*SwitchOpcode*/ 36, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->406440
/*406404*/                OPC_RecordMemRef,
/*406405*/                OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*406406*/                OPC_CheckFoldableChainNode,
/*406407*/                OPC_RecordChild1, // #4 = $src3
/*406408*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*406410*/                OPC_MoveParent,
/*406411*/                OPC_RecordChild3, // #5 = $src2
/*406412*/                OPC_MoveParent,
/*406413*/                OPC_CheckChild2Same, 2,
/*406415*/                OPC_CheckType, MVT::v2f64,
/*406417*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*406419*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*406422*/                OPC_EmitMergeInputChains, 2, 1, 3, 
/*406426*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PDZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 2, 0, 5, 6, 7, 8, 9, 10, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_Fmadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                          // Dst: (VFMADD132PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*406440*/              0, // EndSwitchOpcode
/*406441*/            0, /*End of Scope*/
/*406442*/          /*SwitchOpcode*/ 97|128,5/*737*/, TARGET_VAL(ISD::FMA),// ->407183
/*406446*/            OPC_Scope, 38|128,1/*166*/, /*->406615*/ // 7 children in Scope
/*406449*/              OPC_RecordChild0, // #1 = $src2
/*406450*/              OPC_Scope, 82, /*->406534*/ // 2 children in Scope
/*406452*/                OPC_RecordChild1, // #2 = $src1
/*406453*/                OPC_MoveChild2,
/*406454*/                OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->406495
/*406458*/                  OPC_RecordMemRef,
/*406459*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*406460*/                  OPC_CheckFoldableChainNode,
/*406461*/                  OPC_RecordChild1, // #4 = $src3
/*406462*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*406464*/                  OPC_CheckPredicate, 9, // Predicate_load
/*406466*/                  OPC_MoveParent,
/*406467*/                  OPC_MoveParent,
/*406468*/                  OPC_MoveChild2,
/*406469*/                  OPC_CheckImmAllZerosV,
/*406470*/                  OPC_MoveParent,
/*406471*/                  OPC_CheckType, MVT::v2f64,
/*406473*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*406475*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*406478*/                  OPC_EmitMergeInputChains, 1, 3, 
/*406481*/                  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>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                            // Dst: (VFMADD213PDZ128mkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*406495*/                /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->406533
/*406498*/                  OPC_RecordMemRef,
/*406499*/                  OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*406500*/                  OPC_CheckFoldableChainNode,
/*406501*/                  OPC_RecordChild1, // #4 = $src3
/*406502*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*406504*/                  OPC_MoveParent,
/*406505*/                  OPC_MoveParent,
/*406506*/                  OPC_MoveChild2,
/*406507*/                  OPC_CheckImmAllZerosV,
/*406508*/                  OPC_MoveParent,
/*406509*/                  OPC_CheckType, MVT::v2f64,
/*406511*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*406513*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*406516*/                  OPC_EmitMergeInputChains, 1, 3, 
/*406519*/                  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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                            // Dst: (VFMADD213PDZ128mbkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*406533*/                0, // EndSwitchOpcode
/*406534*/              /*Scope*/ 79, /*->406614*/
/*406535*/                OPC_MoveChild1,
/*406536*/                OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->406576
/*406540*/                  OPC_RecordMemRef,
/*406541*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*406542*/                  OPC_CheckFoldableChainNode,
/*406543*/                  OPC_RecordChild1, // #3 = $src3
/*406544*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*406546*/                  OPC_CheckPredicate, 9, // Predicate_load
/*406548*/                  OPC_MoveParent,
/*406549*/                  OPC_RecordChild2, // #4 = $src1
/*406550*/                  OPC_MoveParent,
/*406551*/                  OPC_MoveChild2,
/*406552*/                  OPC_CheckImmAllZerosV,
/*406553*/                  OPC_MoveParent,
/*406554*/                  OPC_CheckType, MVT::v2f64,
/*406556*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*406558*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*406561*/                  OPC_EmitMergeInputChains1_2,
/*406562*/                  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>>, VR128X:{ *:[v2f64] }:$src1), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                            // Dst: (VFMADD231PDZ128mkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*406576*/                /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->406613
/*406579*/                  OPC_RecordMemRef,
/*406580*/                  OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*406581*/                  OPC_CheckFoldableChainNode,
/*406582*/                  OPC_RecordChild1, // #3 = $src3
/*406583*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*406585*/                  OPC_MoveParent,
/*406586*/                  OPC_RecordChild2, // #4 = $src1
/*406587*/                  OPC_MoveParent,
/*406588*/                  OPC_MoveChild2,
/*406589*/                  OPC_CheckImmAllZerosV,
/*406590*/                  OPC_MoveParent,
/*406591*/                  OPC_CheckType, MVT::v2f64,
/*406593*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*406595*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*406598*/                  OPC_EmitMergeInputChains1_2,
/*406599*/                  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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                            // Dst: (VFMADD231PDZ128mbkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*406613*/                0, // EndSwitchOpcode
/*406614*/              0, /*End of Scope*/
/*406615*/            /*Scope*/ 81, /*->406697*/
/*406616*/              OPC_MoveChild0,
/*406617*/              OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->406658
/*406621*/                OPC_RecordMemRef,
/*406622*/                OPC_RecordNode, // #1 = 'ld' chained node
/*406623*/                OPC_CheckFoldableChainNode,
/*406624*/                OPC_RecordChild1, // #2 = $src3
/*406625*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*406627*/                OPC_CheckPredicate, 9, // Predicate_load
/*406629*/                OPC_MoveParent,
/*406630*/                OPC_RecordChild1, // #3 = $src1
/*406631*/                OPC_RecordChild2, // #4 = $src2
/*406632*/                OPC_MoveParent,
/*406633*/                OPC_MoveChild2,
/*406634*/                OPC_CheckImmAllZerosV,
/*406635*/                OPC_MoveParent,
/*406636*/                OPC_CheckType, MVT::v2f64,
/*406638*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*406640*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*406643*/                OPC_EmitMergeInputChains1_1,
/*406644*/                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>>, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VFMADD132PDZ128mkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*406658*/              /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->406696
/*406661*/                OPC_RecordMemRef,
/*406662*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*406663*/                OPC_CheckFoldableChainNode,
/*406664*/                OPC_RecordChild1, // #2 = $src3
/*406665*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*406667*/                OPC_MoveParent,
/*406668*/                OPC_RecordChild1, // #3 = $src1
/*406669*/                OPC_RecordChild2, // #4 = $src2
/*406670*/                OPC_MoveParent,
/*406671*/                OPC_MoveChild2,
/*406672*/                OPC_CheckImmAllZerosV,
/*406673*/                OPC_MoveParent,
/*406674*/                OPC_CheckType, MVT::v2f64,
/*406676*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*406678*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*406681*/                OPC_EmitMergeInputChains1_1,
/*406682*/                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] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VFMADD132PDZ128mbkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*406696*/              0, // EndSwitchOpcode
/*406697*/            /*Scope*/ 34|128,1/*162*/, /*->406861*/
/*406699*/              OPC_RecordChild0, // #1 = $src2
/*406700*/              OPC_Scope, 80, /*->406782*/ // 2 children in Scope
/*406702*/                OPC_RecordChild1, // #2 = $src1
/*406703*/                OPC_MoveChild2,
/*406704*/                OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->406744
/*406708*/                  OPC_RecordMemRef,
/*406709*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*406710*/                  OPC_CheckFoldableChainNode,
/*406711*/                  OPC_RecordChild1, // #4 = $src3
/*406712*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*406714*/                  OPC_CheckPredicate, 9, // Predicate_load
/*406716*/                  OPC_MoveParent,
/*406717*/                  OPC_MoveParent,
/*406718*/                  OPC_CheckChild2Same, 2,
/*406720*/                  OPC_CheckType, MVT::v2f64,
/*406722*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*406724*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*406727*/                  OPC_EmitMergeInputChains, 1, 3, 
/*406730*/                  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>>), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                            // Dst: (VFMADD213PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*406744*/                /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->406781
/*406747*/                  OPC_RecordMemRef,
/*406748*/                  OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*406749*/                  OPC_CheckFoldableChainNode,
/*406750*/                  OPC_RecordChild1, // #4 = $src3
/*406751*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*406753*/                  OPC_MoveParent,
/*406754*/                  OPC_MoveParent,
/*406755*/                  OPC_CheckChild2Same, 2,
/*406757*/                  OPC_CheckType, MVT::v2f64,
/*406759*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*406761*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*406764*/                  OPC_EmitMergeInputChains, 1, 3, 
/*406767*/                  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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                            // Dst: (VFMADD213PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*406781*/                0, // EndSwitchOpcode
/*406782*/              /*Scope*/ 77, /*->406860*/
/*406783*/                OPC_MoveChild1,
/*406784*/                OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->406823
/*406788*/                  OPC_RecordMemRef,
/*406789*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*406790*/                  OPC_CheckFoldableChainNode,
/*406791*/                  OPC_RecordChild1, // #3 = $src3
/*406792*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*406794*/                  OPC_CheckPredicate, 9, // Predicate_load
/*406796*/                  OPC_MoveParent,
/*406797*/                  OPC_RecordChild2, // #4 = $src1
/*406798*/                  OPC_MoveParent,
/*406799*/                  OPC_CheckChild2Same, 4,
/*406801*/                  OPC_CheckType, MVT::v2f64,
/*406803*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*406805*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*406808*/                  OPC_EmitMergeInputChains1_2,
/*406809*/                  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>>, VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                            // Dst: (VFMADD231PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*406823*/                /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->406859
/*406826*/                  OPC_RecordMemRef,
/*406827*/                  OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*406828*/                  OPC_CheckFoldableChainNode,
/*406829*/                  OPC_RecordChild1, // #3 = $src3
/*406830*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*406832*/                  OPC_MoveParent,
/*406833*/                  OPC_RecordChild2, // #4 = $src1
/*406834*/                  OPC_MoveParent,
/*406835*/                  OPC_CheckChild2Same, 4,
/*406837*/                  OPC_CheckType, MVT::v2f64,
/*406839*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*406841*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*406844*/                  OPC_EmitMergeInputChains1_2,
/*406845*/                  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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                            // Dst: (VFMADD231PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*406859*/                0, // EndSwitchOpcode
/*406860*/              0, /*End of Scope*/
/*406861*/            /*Scope*/ 79, /*->406941*/
/*406862*/              OPC_MoveChild0,
/*406863*/              OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->406903
/*406867*/                OPC_RecordMemRef,
/*406868*/                OPC_RecordNode, // #1 = 'ld' chained node
/*406869*/                OPC_CheckFoldableChainNode,
/*406870*/                OPC_RecordChild1, // #2 = $src3
/*406871*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*406873*/                OPC_CheckPredicate, 9, // Predicate_load
/*406875*/                OPC_MoveParent,
/*406876*/                OPC_RecordChild1, // #3 = $src1
/*406877*/                OPC_RecordChild2, // #4 = $src2
/*406878*/                OPC_MoveParent,
/*406879*/                OPC_CheckChild2Same, 3,
/*406881*/                OPC_CheckType, MVT::v2f64,
/*406883*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*406885*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*406888*/                OPC_EmitMergeInputChains1_1,
/*406889*/                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>>, 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)
/*406903*/              /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->406940
/*406906*/                OPC_RecordMemRef,
/*406907*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*406908*/                OPC_CheckFoldableChainNode,
/*406909*/                OPC_RecordChild1, // #2 = $src3
/*406910*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*406912*/                OPC_MoveParent,
/*406913*/                OPC_RecordChild1, // #3 = $src1
/*406914*/                OPC_RecordChild2, // #4 = $src2
/*406915*/                OPC_MoveParent,
/*406916*/                OPC_CheckChild2Same, 3,
/*406918*/                OPC_CheckType, MVT::v2f64,
/*406920*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*406922*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*406925*/                OPC_EmitMergeInputChains1_1,
/*406926*/                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] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                          // Dst: (VFMADD132PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*406940*/              0, // EndSwitchOpcode
/*406941*/            /*Scope*/ 81, /*->407023*/
/*406942*/              OPC_RecordChild0, // #1 = $src1
/*406943*/              OPC_RecordChild1, // #2 = $src2
/*406944*/              OPC_MoveChild2,
/*406945*/              OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->406985
/*406949*/                OPC_RecordMemRef,
/*406950*/                OPC_RecordNode, // #3 = 'ld' chained node
/*406951*/                OPC_CheckFoldableChainNode,
/*406952*/                OPC_RecordChild1, // #4 = $src3
/*406953*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*406955*/                OPC_CheckPredicate, 9, // Predicate_load
/*406957*/                OPC_MoveParent,
/*406958*/                OPC_MoveParent,
/*406959*/                OPC_CheckChild2Same, 1,
/*406961*/                OPC_CheckType, MVT::v2f64,
/*406963*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*406965*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*406968*/                OPC_EmitMergeInputChains, 1, 3, 
/*406971*/                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>>), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                          // Dst: (VFMADD213PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*406985*/              /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->407022
/*406988*/                OPC_RecordMemRef,
/*406989*/                OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*406990*/                OPC_CheckFoldableChainNode,
/*406991*/                OPC_RecordChild1, // #4 = $src3
/*406992*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*406994*/                OPC_MoveParent,
/*406995*/                OPC_MoveParent,
/*406996*/                OPC_CheckChild2Same, 1,
/*406998*/                OPC_CheckType, MVT::v2f64,
/*407000*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*407002*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*407005*/                OPC_EmitMergeInputChains, 1, 3, 
/*407008*/                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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                          // Dst: (VFMADD213PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*407022*/              0, // EndSwitchOpcode
/*407023*/            /*Scope*/ 79, /*->407103*/
/*407024*/              OPC_MoveChild0,
/*407025*/              OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->407065
/*407029*/                OPC_RecordMemRef,
/*407030*/                OPC_RecordNode, // #1 = 'ld' chained node
/*407031*/                OPC_CheckFoldableChainNode,
/*407032*/                OPC_RecordChild1, // #2 = $src3
/*407033*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*407035*/                OPC_CheckPredicate, 9, // Predicate_load
/*407037*/                OPC_MoveParent,
/*407038*/                OPC_RecordChild1, // #3 = $src2
/*407039*/                OPC_RecordChild2, // #4 = $src1
/*407040*/                OPC_MoveParent,
/*407041*/                OPC_CheckChild2Same, 4,
/*407043*/                OPC_CheckType, MVT::v2f64,
/*407045*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*407047*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*407050*/                OPC_EmitMergeInputChains1_1,
/*407051*/                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>>, 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)
/*407065*/              /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->407102
/*407068*/                OPC_RecordMemRef,
/*407069*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*407070*/                OPC_CheckFoldableChainNode,
/*407071*/                OPC_RecordChild1, // #2 = $src3
/*407072*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*407074*/                OPC_MoveParent,
/*407075*/                OPC_RecordChild1, // #3 = $src2
/*407076*/                OPC_RecordChild2, // #4 = $src1
/*407077*/                OPC_MoveParent,
/*407078*/                OPC_CheckChild2Same, 4,
/*407080*/                OPC_CheckType, MVT::v2f64,
/*407082*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*407084*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*407087*/                OPC_EmitMergeInputChains1_1,
/*407088*/                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] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                          // Dst: (VFMADD231PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*407102*/              0, // EndSwitchOpcode
/*407103*/            /*Scope*/ 78, /*->407182*/
/*407104*/              OPC_RecordChild0, // #1 = $src1
/*407105*/              OPC_MoveChild1,
/*407106*/              OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->407145
/*407110*/                OPC_RecordMemRef,
/*407111*/                OPC_RecordNode, // #2 = 'ld' chained node
/*407112*/                OPC_CheckFoldableChainNode,
/*407113*/                OPC_RecordChild1, // #3 = $src3
/*407114*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*407116*/                OPC_CheckPredicate, 9, // Predicate_load
/*407118*/                OPC_MoveParent,
/*407119*/                OPC_RecordChild2, // #4 = $src2
/*407120*/                OPC_MoveParent,
/*407121*/                OPC_CheckChild2Same, 1,
/*407123*/                OPC_CheckType, MVT::v2f64,
/*407125*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*407127*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*407130*/                OPC_EmitMergeInputChains1_2,
/*407131*/                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>>, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                          // Dst: (VFMADD132PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*407145*/              /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->407181
/*407148*/                OPC_RecordMemRef,
/*407149*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*407150*/                OPC_CheckFoldableChainNode,
/*407151*/                OPC_RecordChild1, // #3 = $src3
/*407152*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*407154*/                OPC_MoveParent,
/*407155*/                OPC_RecordChild2, // #4 = $src2
/*407156*/                OPC_MoveParent,
/*407157*/                OPC_CheckChild2Same, 1,
/*407159*/                OPC_CheckType, MVT::v2f64,
/*407161*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*407163*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*407166*/                OPC_EmitMergeInputChains1_2,
/*407167*/                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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                          // Dst: (VFMADD132PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*407181*/              0, // EndSwitchOpcode
/*407182*/            0, /*End of Scope*/
/*407183*/          /*SwitchOpcode*/ 97|128,5/*737*/, TARGET_VAL(X86ISD::FMSUB),// ->407924
/*407187*/            OPC_Scope, 38|128,1/*166*/, /*->407356*/ // 7 children in Scope
/*407190*/              OPC_RecordChild0, // #1 = $src2
/*407191*/              OPC_Scope, 82, /*->407275*/ // 2 children in Scope
/*407193*/                OPC_RecordChild1, // #2 = $src1
/*407194*/                OPC_MoveChild2,
/*407195*/                OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->407236
/*407199*/                  OPC_RecordMemRef,
/*407200*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*407201*/                  OPC_CheckFoldableChainNode,
/*407202*/                  OPC_RecordChild1, // #4 = $src3
/*407203*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*407205*/                  OPC_CheckPredicate, 9, // Predicate_load
/*407207*/                  OPC_MoveParent,
/*407208*/                  OPC_MoveParent,
/*407209*/                  OPC_MoveChild2,
/*407210*/                  OPC_CheckImmAllZerosV,
/*407211*/                  OPC_MoveParent,
/*407212*/                  OPC_CheckType, MVT::v2f64,
/*407214*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*407216*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*407219*/                  OPC_EmitMergeInputChains, 1, 3, 
/*407222*/                  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>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                            // Dst: (VFMSUB213PDZ128mkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*407236*/                /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->407274
/*407239*/                  OPC_RecordMemRef,
/*407240*/                  OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*407241*/                  OPC_CheckFoldableChainNode,
/*407242*/                  OPC_RecordChild1, // #4 = $src3
/*407243*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*407245*/                  OPC_MoveParent,
/*407246*/                  OPC_MoveParent,
/*407247*/                  OPC_MoveChild2,
/*407248*/                  OPC_CheckImmAllZerosV,
/*407249*/                  OPC_MoveParent,
/*407250*/                  OPC_CheckType, MVT::v2f64,
/*407252*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*407254*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*407257*/                  OPC_EmitMergeInputChains, 1, 3, 
/*407260*/                  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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                            // Dst: (VFMSUB213PDZ128mbkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*407274*/                0, // EndSwitchOpcode
/*407275*/              /*Scope*/ 79, /*->407355*/
/*407276*/                OPC_MoveChild1,
/*407277*/                OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->407317
/*407281*/                  OPC_RecordMemRef,
/*407282*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*407283*/                  OPC_CheckFoldableChainNode,
/*407284*/                  OPC_RecordChild1, // #3 = $src3
/*407285*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*407287*/                  OPC_CheckPredicate, 9, // Predicate_load
/*407289*/                  OPC_MoveParent,
/*407290*/                  OPC_RecordChild2, // #4 = $src1
/*407291*/                  OPC_MoveParent,
/*407292*/                  OPC_MoveChild2,
/*407293*/                  OPC_CheckImmAllZerosV,
/*407294*/                  OPC_MoveParent,
/*407295*/                  OPC_CheckType, MVT::v2f64,
/*407297*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*407299*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*407302*/                  OPC_EmitMergeInputChains1_2,
/*407303*/                  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>>, VR128X:{ *:[v2f64] }:$src1), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                            // Dst: (VFMSUB231PDZ128mkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*407317*/                /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->407354
/*407320*/                  OPC_RecordMemRef,
/*407321*/                  OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*407322*/                  OPC_CheckFoldableChainNode,
/*407323*/                  OPC_RecordChild1, // #3 = $src3
/*407324*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*407326*/                  OPC_MoveParent,
/*407327*/                  OPC_RecordChild2, // #4 = $src1
/*407328*/                  OPC_MoveParent,
/*407329*/                  OPC_MoveChild2,
/*407330*/                  OPC_CheckImmAllZerosV,
/*407331*/                  OPC_MoveParent,
/*407332*/                  OPC_CheckType, MVT::v2f64,
/*407334*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*407336*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*407339*/                  OPC_EmitMergeInputChains1_2,
/*407340*/                  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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                            // Dst: (VFMSUB231PDZ128mbkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*407354*/                0, // EndSwitchOpcode
/*407355*/              0, /*End of Scope*/
/*407356*/            /*Scope*/ 81, /*->407438*/
/*407357*/              OPC_MoveChild0,
/*407358*/              OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->407399
/*407362*/                OPC_RecordMemRef,
/*407363*/                OPC_RecordNode, // #1 = 'ld' chained node
/*407364*/                OPC_CheckFoldableChainNode,
/*407365*/                OPC_RecordChild1, // #2 = $src3
/*407366*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*407368*/                OPC_CheckPredicate, 9, // Predicate_load
/*407370*/                OPC_MoveParent,
/*407371*/                OPC_RecordChild1, // #3 = $src1
/*407372*/                OPC_RecordChild2, // #4 = $src2
/*407373*/                OPC_MoveParent,
/*407374*/                OPC_MoveChild2,
/*407375*/                OPC_CheckImmAllZerosV,
/*407376*/                OPC_MoveParent,
/*407377*/                OPC_CheckType, MVT::v2f64,
/*407379*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*407381*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*407384*/                OPC_EmitMergeInputChains1_1,
/*407385*/                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>>, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VFMSUB132PDZ128mkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*407399*/              /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->407437
/*407402*/                OPC_RecordMemRef,
/*407403*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*407404*/                OPC_CheckFoldableChainNode,
/*407405*/                OPC_RecordChild1, // #2 = $src3
/*407406*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*407408*/                OPC_MoveParent,
/*407409*/                OPC_RecordChild1, // #3 = $src1
/*407410*/                OPC_RecordChild2, // #4 = $src2
/*407411*/                OPC_MoveParent,
/*407412*/                OPC_MoveChild2,
/*407413*/                OPC_CheckImmAllZerosV,
/*407414*/                OPC_MoveParent,
/*407415*/                OPC_CheckType, MVT::v2f64,
/*407417*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*407419*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*407422*/                OPC_EmitMergeInputChains1_1,
/*407423*/                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] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VFMSUB132PDZ128mbkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*407437*/              0, // EndSwitchOpcode
/*407438*/            /*Scope*/ 34|128,1/*162*/, /*->407602*/
/*407440*/              OPC_RecordChild0, // #1 = $src2
/*407441*/              OPC_Scope, 80, /*->407523*/ // 2 children in Scope
/*407443*/                OPC_RecordChild1, // #2 = $src1
/*407444*/                OPC_MoveChild2,
/*407445*/                OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->407485
/*407449*/                  OPC_RecordMemRef,
/*407450*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*407451*/                  OPC_CheckFoldableChainNode,
/*407452*/                  OPC_RecordChild1, // #4 = $src3
/*407453*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*407455*/                  OPC_CheckPredicate, 9, // Predicate_load
/*407457*/                  OPC_MoveParent,
/*407458*/                  OPC_MoveParent,
/*407459*/                  OPC_CheckChild2Same, 2,
/*407461*/                  OPC_CheckType, MVT::v2f64,
/*407463*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*407465*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*407468*/                  OPC_EmitMergeInputChains, 1, 3, 
/*407471*/                  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>>), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                            // Dst: (VFMSUB213PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*407485*/                /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->407522
/*407488*/                  OPC_RecordMemRef,
/*407489*/                  OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*407490*/                  OPC_CheckFoldableChainNode,
/*407491*/                  OPC_RecordChild1, // #4 = $src3
/*407492*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*407494*/                  OPC_MoveParent,
/*407495*/                  OPC_MoveParent,
/*407496*/                  OPC_CheckChild2Same, 2,
/*407498*/                  OPC_CheckType, MVT::v2f64,
/*407500*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*407502*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*407505*/                  OPC_EmitMergeInputChains, 1, 3, 
/*407508*/                  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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                            // Dst: (VFMSUB213PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*407522*/                0, // EndSwitchOpcode
/*407523*/              /*Scope*/ 77, /*->407601*/
/*407524*/                OPC_MoveChild1,
/*407525*/                OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->407564
/*407529*/                  OPC_RecordMemRef,
/*407530*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*407531*/                  OPC_CheckFoldableChainNode,
/*407532*/                  OPC_RecordChild1, // #3 = $src3
/*407533*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*407535*/                  OPC_CheckPredicate, 9, // Predicate_load
/*407537*/                  OPC_MoveParent,
/*407538*/                  OPC_RecordChild2, // #4 = $src1
/*407539*/                  OPC_MoveParent,
/*407540*/                  OPC_CheckChild2Same, 4,
/*407542*/                  OPC_CheckType, MVT::v2f64,
/*407544*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*407546*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*407549*/                  OPC_EmitMergeInputChains1_2,
/*407550*/                  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>>, VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                            // Dst: (VFMSUB231PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*407564*/                /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->407600
/*407567*/                  OPC_RecordMemRef,
/*407568*/                  OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*407569*/                  OPC_CheckFoldableChainNode,
/*407570*/                  OPC_RecordChild1, // #3 = $src3
/*407571*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*407573*/                  OPC_MoveParent,
/*407574*/                  OPC_RecordChild2, // #4 = $src1
/*407575*/                  OPC_MoveParent,
/*407576*/                  OPC_CheckChild2Same, 4,
/*407578*/                  OPC_CheckType, MVT::v2f64,
/*407580*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*407582*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*407585*/                  OPC_EmitMergeInputChains1_2,
/*407586*/                  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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                            // Dst: (VFMSUB231PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*407600*/                0, // EndSwitchOpcode
/*407601*/              0, /*End of Scope*/
/*407602*/            /*Scope*/ 79, /*->407682*/
/*407603*/              OPC_MoveChild0,
/*407604*/              OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->407644
/*407608*/                OPC_RecordMemRef,
/*407609*/                OPC_RecordNode, // #1 = 'ld' chained node
/*407610*/                OPC_CheckFoldableChainNode,
/*407611*/                OPC_RecordChild1, // #2 = $src3
/*407612*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*407614*/                OPC_CheckPredicate, 9, // Predicate_load
/*407616*/                OPC_MoveParent,
/*407617*/                OPC_RecordChild1, // #3 = $src1
/*407618*/                OPC_RecordChild2, // #4 = $src2
/*407619*/                OPC_MoveParent,
/*407620*/                OPC_CheckChild2Same, 3,
/*407622*/                OPC_CheckType, MVT::v2f64,
/*407624*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*407626*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*407629*/                OPC_EmitMergeInputChains1_1,
/*407630*/                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>>, 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)
/*407644*/              /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->407681
/*407647*/                OPC_RecordMemRef,
/*407648*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*407649*/                OPC_CheckFoldableChainNode,
/*407650*/                OPC_RecordChild1, // #2 = $src3
/*407651*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*407653*/                OPC_MoveParent,
/*407654*/                OPC_RecordChild1, // #3 = $src1
/*407655*/                OPC_RecordChild2, // #4 = $src2
/*407656*/                OPC_MoveParent,
/*407657*/                OPC_CheckChild2Same, 3,
/*407659*/                OPC_CheckType, MVT::v2f64,
/*407661*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*407663*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*407666*/                OPC_EmitMergeInputChains1_1,
/*407667*/                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] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                          // Dst: (VFMSUB132PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*407681*/              0, // EndSwitchOpcode
/*407682*/            /*Scope*/ 81, /*->407764*/
/*407683*/              OPC_RecordChild0, // #1 = $src1
/*407684*/              OPC_RecordChild1, // #2 = $src2
/*407685*/              OPC_MoveChild2,
/*407686*/              OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->407726
/*407690*/                OPC_RecordMemRef,
/*407691*/                OPC_RecordNode, // #3 = 'ld' chained node
/*407692*/                OPC_CheckFoldableChainNode,
/*407693*/                OPC_RecordChild1, // #4 = $src3
/*407694*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*407696*/                OPC_CheckPredicate, 9, // Predicate_load
/*407698*/                OPC_MoveParent,
/*407699*/                OPC_MoveParent,
/*407700*/                OPC_CheckChild2Same, 1,
/*407702*/                OPC_CheckType, MVT::v2f64,
/*407704*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*407706*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*407709*/                OPC_EmitMergeInputChains, 1, 3, 
/*407712*/                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>>), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                          // Dst: (VFMSUB213PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*407726*/              /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->407763
/*407729*/                OPC_RecordMemRef,
/*407730*/                OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*407731*/                OPC_CheckFoldableChainNode,
/*407732*/                OPC_RecordChild1, // #4 = $src3
/*407733*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*407735*/                OPC_MoveParent,
/*407736*/                OPC_MoveParent,
/*407737*/                OPC_CheckChild2Same, 1,
/*407739*/                OPC_CheckType, MVT::v2f64,
/*407741*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*407743*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*407746*/                OPC_EmitMergeInputChains, 1, 3, 
/*407749*/                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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                          // Dst: (VFMSUB213PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*407763*/              0, // EndSwitchOpcode
/*407764*/            /*Scope*/ 79, /*->407844*/
/*407765*/              OPC_MoveChild0,
/*407766*/              OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->407806
/*407770*/                OPC_RecordMemRef,
/*407771*/                OPC_RecordNode, // #1 = 'ld' chained node
/*407772*/                OPC_CheckFoldableChainNode,
/*407773*/                OPC_RecordChild1, // #2 = $src3
/*407774*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*407776*/                OPC_CheckPredicate, 9, // Predicate_load
/*407778*/                OPC_MoveParent,
/*407779*/                OPC_RecordChild1, // #3 = $src2
/*407780*/                OPC_RecordChild2, // #4 = $src1
/*407781*/                OPC_MoveParent,
/*407782*/                OPC_CheckChild2Same, 4,
/*407784*/                OPC_CheckType, MVT::v2f64,
/*407786*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*407788*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*407791*/                OPC_EmitMergeInputChains1_1,
/*407792*/                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>>, 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)
/*407806*/              /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->407843
/*407809*/                OPC_RecordMemRef,
/*407810*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*407811*/                OPC_CheckFoldableChainNode,
/*407812*/                OPC_RecordChild1, // #2 = $src3
/*407813*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*407815*/                OPC_MoveParent,
/*407816*/                OPC_RecordChild1, // #3 = $src2
/*407817*/                OPC_RecordChild2, // #4 = $src1
/*407818*/                OPC_MoveParent,
/*407819*/                OPC_CheckChild2Same, 4,
/*407821*/                OPC_CheckType, MVT::v2f64,
/*407823*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*407825*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*407828*/                OPC_EmitMergeInputChains1_1,
/*407829*/                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] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                          // Dst: (VFMSUB231PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*407843*/              0, // EndSwitchOpcode
/*407844*/            /*Scope*/ 78, /*->407923*/
/*407845*/              OPC_RecordChild0, // #1 = $src1
/*407846*/              OPC_MoveChild1,
/*407847*/              OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->407886
/*407851*/                OPC_RecordMemRef,
/*407852*/                OPC_RecordNode, // #2 = 'ld' chained node
/*407853*/                OPC_CheckFoldableChainNode,
/*407854*/                OPC_RecordChild1, // #3 = $src3
/*407855*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*407857*/                OPC_CheckPredicate, 9, // Predicate_load
/*407859*/                OPC_MoveParent,
/*407860*/                OPC_RecordChild2, // #4 = $src2
/*407861*/                OPC_MoveParent,
/*407862*/                OPC_CheckChild2Same, 1,
/*407864*/                OPC_CheckType, MVT::v2f64,
/*407866*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*407868*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*407871*/                OPC_EmitMergeInputChains1_2,
/*407872*/                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>>, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                          // Dst: (VFMSUB132PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*407886*/              /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->407922
/*407889*/                OPC_RecordMemRef,
/*407890*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*407891*/                OPC_CheckFoldableChainNode,
/*407892*/                OPC_RecordChild1, // #3 = $src3
/*407893*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*407895*/                OPC_MoveParent,
/*407896*/                OPC_RecordChild2, // #4 = $src2
/*407897*/                OPC_MoveParent,
/*407898*/                OPC_CheckChild2Same, 1,
/*407900*/                OPC_CheckType, MVT::v2f64,
/*407902*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*407904*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*407907*/                OPC_EmitMergeInputChains1_2,
/*407908*/                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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                          // Dst: (VFMSUB132PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*407922*/              0, // EndSwitchOpcode
/*407923*/            0, /*End of Scope*/
/*407924*/          /*SwitchOpcode*/ 97|128,5/*737*/, TARGET_VAL(X86ISD::FMADDSUB),// ->408665
/*407928*/            OPC_Scope, 38|128,1/*166*/, /*->408097*/ // 7 children in Scope
/*407931*/              OPC_RecordChild0, // #1 = $src2
/*407932*/              OPC_Scope, 82, /*->408016*/ // 2 children in Scope
/*407934*/                OPC_RecordChild1, // #2 = $src1
/*407935*/                OPC_MoveChild2,
/*407936*/                OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->407977
/*407940*/                  OPC_RecordMemRef,
/*407941*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*407942*/                  OPC_CheckFoldableChainNode,
/*407943*/                  OPC_RecordChild1, // #4 = $src3
/*407944*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*407946*/                  OPC_CheckPredicate, 9, // Predicate_load
/*407948*/                  OPC_MoveParent,
/*407949*/                  OPC_MoveParent,
/*407950*/                  OPC_MoveChild2,
/*407951*/                  OPC_CheckImmAllZerosV,
/*407952*/                  OPC_MoveParent,
/*407953*/                  OPC_CheckType, MVT::v2f64,
/*407955*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*407957*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*407960*/                  OPC_EmitMergeInputChains, 1, 3, 
/*407963*/                  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>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                            // Dst: (VFMADDSUB213PDZ128mkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*407977*/                /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->408015
/*407980*/                  OPC_RecordMemRef,
/*407981*/                  OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*407982*/                  OPC_CheckFoldableChainNode,
/*407983*/                  OPC_RecordChild1, // #4 = $src3
/*407984*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*407986*/                  OPC_MoveParent,
/*407987*/                  OPC_MoveParent,
/*407988*/                  OPC_MoveChild2,
/*407989*/                  OPC_CheckImmAllZerosV,
/*407990*/                  OPC_MoveParent,
/*407991*/                  OPC_CheckType, MVT::v2f64,
/*407993*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*407995*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*407998*/                  OPC_EmitMergeInputChains, 1, 3, 
/*408001*/                  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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                            // Dst: (VFMADDSUB213PDZ128mbkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*408015*/                0, // EndSwitchOpcode
/*408016*/              /*Scope*/ 79, /*->408096*/
/*408017*/                OPC_MoveChild1,
/*408018*/                OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->408058
/*408022*/                  OPC_RecordMemRef,
/*408023*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*408024*/                  OPC_CheckFoldableChainNode,
/*408025*/                  OPC_RecordChild1, // #3 = $src3
/*408026*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*408028*/                  OPC_CheckPredicate, 9, // Predicate_load
/*408030*/                  OPC_MoveParent,
/*408031*/                  OPC_RecordChild2, // #4 = $src1
/*408032*/                  OPC_MoveParent,
/*408033*/                  OPC_MoveChild2,
/*408034*/                  OPC_CheckImmAllZerosV,
/*408035*/                  OPC_MoveParent,
/*408036*/                  OPC_CheckType, MVT::v2f64,
/*408038*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*408040*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*408043*/                  OPC_EmitMergeInputChains1_2,
/*408044*/                  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>>, VR128X:{ *:[v2f64] }:$src1), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                            // Dst: (VFMADDSUB231PDZ128mkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*408058*/                /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->408095
/*408061*/                  OPC_RecordMemRef,
/*408062*/                  OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*408063*/                  OPC_CheckFoldableChainNode,
/*408064*/                  OPC_RecordChild1, // #3 = $src3
/*408065*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*408067*/                  OPC_MoveParent,
/*408068*/                  OPC_RecordChild2, // #4 = $src1
/*408069*/                  OPC_MoveParent,
/*408070*/                  OPC_MoveChild2,
/*408071*/                  OPC_CheckImmAllZerosV,
/*408072*/                  OPC_MoveParent,
/*408073*/                  OPC_CheckType, MVT::v2f64,
/*408075*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*408077*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*408080*/                  OPC_EmitMergeInputChains1_2,
/*408081*/                  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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                            // Dst: (VFMADDSUB231PDZ128mbkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*408095*/                0, // EndSwitchOpcode
/*408096*/              0, /*End of Scope*/
/*408097*/            /*Scope*/ 81, /*->408179*/
/*408098*/              OPC_MoveChild0,
/*408099*/              OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->408140
/*408103*/                OPC_RecordMemRef,
/*408104*/                OPC_RecordNode, // #1 = 'ld' chained node
/*408105*/                OPC_CheckFoldableChainNode,
/*408106*/                OPC_RecordChild1, // #2 = $src3
/*408107*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*408109*/                OPC_CheckPredicate, 9, // Predicate_load
/*408111*/                OPC_MoveParent,
/*408112*/                OPC_RecordChild1, // #3 = $src1
/*408113*/                OPC_RecordChild2, // #4 = $src2
/*408114*/                OPC_MoveParent,
/*408115*/                OPC_MoveChild2,
/*408116*/                OPC_CheckImmAllZerosV,
/*408117*/                OPC_MoveParent,
/*408118*/                OPC_CheckType, MVT::v2f64,
/*408120*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*408122*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*408125*/                OPC_EmitMergeInputChains1_1,
/*408126*/                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>>, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VFMADDSUB132PDZ128mkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*408140*/              /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->408178
/*408143*/                OPC_RecordMemRef,
/*408144*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*408145*/                OPC_CheckFoldableChainNode,
/*408146*/                OPC_RecordChild1, // #2 = $src3
/*408147*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*408149*/                OPC_MoveParent,
/*408150*/                OPC_RecordChild1, // #3 = $src1
/*408151*/                OPC_RecordChild2, // #4 = $src2
/*408152*/                OPC_MoveParent,
/*408153*/                OPC_MoveChild2,
/*408154*/                OPC_CheckImmAllZerosV,
/*408155*/                OPC_MoveParent,
/*408156*/                OPC_CheckType, MVT::v2f64,
/*408158*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*408160*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*408163*/                OPC_EmitMergeInputChains1_1,
/*408164*/                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] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VFMADDSUB132PDZ128mbkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*408178*/              0, // EndSwitchOpcode
/*408179*/            /*Scope*/ 34|128,1/*162*/, /*->408343*/
/*408181*/              OPC_RecordChild0, // #1 = $src2
/*408182*/              OPC_Scope, 80, /*->408264*/ // 2 children in Scope
/*408184*/                OPC_RecordChild1, // #2 = $src1
/*408185*/                OPC_MoveChild2,
/*408186*/                OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->408226
/*408190*/                  OPC_RecordMemRef,
/*408191*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*408192*/                  OPC_CheckFoldableChainNode,
/*408193*/                  OPC_RecordChild1, // #4 = $src3
/*408194*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*408196*/                  OPC_CheckPredicate, 9, // Predicate_load
/*408198*/                  OPC_MoveParent,
/*408199*/                  OPC_MoveParent,
/*408200*/                  OPC_CheckChild2Same, 2,
/*408202*/                  OPC_CheckType, MVT::v2f64,
/*408204*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*408206*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*408209*/                  OPC_EmitMergeInputChains, 1, 3, 
/*408212*/                  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>>), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                            // Dst: (VFMADDSUB213PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*408226*/                /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->408263
/*408229*/                  OPC_RecordMemRef,
/*408230*/                  OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*408231*/                  OPC_CheckFoldableChainNode,
/*408232*/                  OPC_RecordChild1, // #4 = $src3
/*408233*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*408235*/                  OPC_MoveParent,
/*408236*/                  OPC_MoveParent,
/*408237*/                  OPC_CheckChild2Same, 2,
/*408239*/                  OPC_CheckType, MVT::v2f64,
/*408241*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*408243*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*408246*/                  OPC_EmitMergeInputChains, 1, 3, 
/*408249*/                  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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                            // Dst: (VFMADDSUB213PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*408263*/                0, // EndSwitchOpcode
/*408264*/              /*Scope*/ 77, /*->408342*/
/*408265*/                OPC_MoveChild1,
/*408266*/                OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->408305
/*408270*/                  OPC_RecordMemRef,
/*408271*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*408272*/                  OPC_CheckFoldableChainNode,
/*408273*/                  OPC_RecordChild1, // #3 = $src3
/*408274*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*408276*/                  OPC_CheckPredicate, 9, // Predicate_load
/*408278*/                  OPC_MoveParent,
/*408279*/                  OPC_RecordChild2, // #4 = $src1
/*408280*/                  OPC_MoveParent,
/*408281*/                  OPC_CheckChild2Same, 4,
/*408283*/                  OPC_CheckType, MVT::v2f64,
/*408285*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*408287*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*408290*/                  OPC_EmitMergeInputChains1_2,
/*408291*/                  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>>, VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                            // Dst: (VFMADDSUB231PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*408305*/                /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->408341
/*408308*/                  OPC_RecordMemRef,
/*408309*/                  OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*408310*/                  OPC_CheckFoldableChainNode,
/*408311*/                  OPC_RecordChild1, // #3 = $src3
/*408312*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*408314*/                  OPC_MoveParent,
/*408315*/                  OPC_RecordChild2, // #4 = $src1
/*408316*/                  OPC_MoveParent,
/*408317*/                  OPC_CheckChild2Same, 4,
/*408319*/                  OPC_CheckType, MVT::v2f64,
/*408321*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*408323*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*408326*/                  OPC_EmitMergeInputChains1_2,
/*408327*/                  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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                            // Dst: (VFMADDSUB231PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*408341*/                0, // EndSwitchOpcode
/*408342*/              0, /*End of Scope*/
/*408343*/            /*Scope*/ 79, /*->408423*/
/*408344*/              OPC_MoveChild0,
/*408345*/              OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->408385
/*408349*/                OPC_RecordMemRef,
/*408350*/                OPC_RecordNode, // #1 = 'ld' chained node
/*408351*/                OPC_CheckFoldableChainNode,
/*408352*/                OPC_RecordChild1, // #2 = $src3
/*408353*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*408355*/                OPC_CheckPredicate, 9, // Predicate_load
/*408357*/                OPC_MoveParent,
/*408358*/                OPC_RecordChild1, // #3 = $src1
/*408359*/                OPC_RecordChild2, // #4 = $src2
/*408360*/                OPC_MoveParent,
/*408361*/                OPC_CheckChild2Same, 3,
/*408363*/                OPC_CheckType, MVT::v2f64,
/*408365*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*408367*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*408370*/                OPC_EmitMergeInputChains1_1,
/*408371*/                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>>, 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)
/*408385*/              /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->408422
/*408388*/                OPC_RecordMemRef,
/*408389*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*408390*/                OPC_CheckFoldableChainNode,
/*408391*/                OPC_RecordChild1, // #2 = $src3
/*408392*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*408394*/                OPC_MoveParent,
/*408395*/                OPC_RecordChild1, // #3 = $src1
/*408396*/                OPC_RecordChild2, // #4 = $src2
/*408397*/                OPC_MoveParent,
/*408398*/                OPC_CheckChild2Same, 3,
/*408400*/                OPC_CheckType, MVT::v2f64,
/*408402*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*408404*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*408407*/                OPC_EmitMergeInputChains1_1,
/*408408*/                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] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                          // Dst: (VFMADDSUB132PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*408422*/              0, // EndSwitchOpcode
/*408423*/            /*Scope*/ 81, /*->408505*/
/*408424*/              OPC_RecordChild0, // #1 = $src1
/*408425*/              OPC_RecordChild1, // #2 = $src2
/*408426*/              OPC_MoveChild2,
/*408427*/              OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->408467
/*408431*/                OPC_RecordMemRef,
/*408432*/                OPC_RecordNode, // #3 = 'ld' chained node
/*408433*/                OPC_CheckFoldableChainNode,
/*408434*/                OPC_RecordChild1, // #4 = $src3
/*408435*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*408437*/                OPC_CheckPredicate, 9, // Predicate_load
/*408439*/                OPC_MoveParent,
/*408440*/                OPC_MoveParent,
/*408441*/                OPC_CheckChild2Same, 1,
/*408443*/                OPC_CheckType, MVT::v2f64,
/*408445*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*408447*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*408450*/                OPC_EmitMergeInputChains, 1, 3, 
/*408453*/                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>>), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                          // Dst: (VFMADDSUB213PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*408467*/              /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->408504
/*408470*/                OPC_RecordMemRef,
/*408471*/                OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*408472*/                OPC_CheckFoldableChainNode,
/*408473*/                OPC_RecordChild1, // #4 = $src3
/*408474*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*408476*/                OPC_MoveParent,
/*408477*/                OPC_MoveParent,
/*408478*/                OPC_CheckChild2Same, 1,
/*408480*/                OPC_CheckType, MVT::v2f64,
/*408482*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*408484*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*408487*/                OPC_EmitMergeInputChains, 1, 3, 
/*408490*/                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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                          // Dst: (VFMADDSUB213PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*408504*/              0, // EndSwitchOpcode
/*408505*/            /*Scope*/ 79, /*->408585*/
/*408506*/              OPC_MoveChild0,
/*408507*/              OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->408547
/*408511*/                OPC_RecordMemRef,
/*408512*/                OPC_RecordNode, // #1 = 'ld' chained node
/*408513*/                OPC_CheckFoldableChainNode,
/*408514*/                OPC_RecordChild1, // #2 = $src3
/*408515*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*408517*/                OPC_CheckPredicate, 9, // Predicate_load
/*408519*/                OPC_MoveParent,
/*408520*/                OPC_RecordChild1, // #3 = $src2
/*408521*/                OPC_RecordChild2, // #4 = $src1
/*408522*/                OPC_MoveParent,
/*408523*/                OPC_CheckChild2Same, 4,
/*408525*/                OPC_CheckType, MVT::v2f64,
/*408527*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*408529*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*408532*/                OPC_EmitMergeInputChains1_1,
/*408533*/                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>>, 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)
/*408547*/              /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->408584
/*408550*/                OPC_RecordMemRef,
/*408551*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*408552*/                OPC_CheckFoldableChainNode,
/*408553*/                OPC_RecordChild1, // #2 = $src3
/*408554*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*408556*/                OPC_MoveParent,
/*408557*/                OPC_RecordChild1, // #3 = $src2
/*408558*/                OPC_RecordChild2, // #4 = $src1
/*408559*/                OPC_MoveParent,
/*408560*/                OPC_CheckChild2Same, 4,
/*408562*/                OPC_CheckType, MVT::v2f64,
/*408564*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*408566*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*408569*/                OPC_EmitMergeInputChains1_1,
/*408570*/                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] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                          // Dst: (VFMADDSUB231PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*408584*/              0, // EndSwitchOpcode
/*408585*/            /*Scope*/ 78, /*->408664*/
/*408586*/              OPC_RecordChild0, // #1 = $src1
/*408587*/              OPC_MoveChild1,
/*408588*/              OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->408627
/*408592*/                OPC_RecordMemRef,
/*408593*/                OPC_RecordNode, // #2 = 'ld' chained node
/*408594*/                OPC_CheckFoldableChainNode,
/*408595*/                OPC_RecordChild1, // #3 = $src3
/*408596*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*408598*/                OPC_CheckPredicate, 9, // Predicate_load
/*408600*/                OPC_MoveParent,
/*408601*/                OPC_RecordChild2, // #4 = $src2
/*408602*/                OPC_MoveParent,
/*408603*/                OPC_CheckChild2Same, 1,
/*408605*/                OPC_CheckType, MVT::v2f64,
/*408607*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*408609*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*408612*/                OPC_EmitMergeInputChains1_2,
/*408613*/                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>>, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                          // Dst: (VFMADDSUB132PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*408627*/              /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->408663
/*408630*/                OPC_RecordMemRef,
/*408631*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*408632*/                OPC_CheckFoldableChainNode,
/*408633*/                OPC_RecordChild1, // #3 = $src3
/*408634*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*408636*/                OPC_MoveParent,
/*408637*/                OPC_RecordChild2, // #4 = $src2
/*408638*/                OPC_MoveParent,
/*408639*/                OPC_CheckChild2Same, 1,
/*408641*/                OPC_CheckType, MVT::v2f64,
/*408643*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*408645*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*408648*/                OPC_EmitMergeInputChains1_2,
/*408649*/                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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                          // Dst: (VFMADDSUB132PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*408663*/              0, // EndSwitchOpcode
/*408664*/            0, /*End of Scope*/
/*408665*/          /*SwitchOpcode*/ 97|128,5/*737*/, TARGET_VAL(X86ISD::FMSUBADD),// ->409406
/*408669*/            OPC_Scope, 38|128,1/*166*/, /*->408838*/ // 7 children in Scope
/*408672*/              OPC_RecordChild0, // #1 = $src2
/*408673*/              OPC_Scope, 82, /*->408757*/ // 2 children in Scope
/*408675*/                OPC_RecordChild1, // #2 = $src1
/*408676*/                OPC_MoveChild2,
/*408677*/                OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->408718
/*408681*/                  OPC_RecordMemRef,
/*408682*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*408683*/                  OPC_CheckFoldableChainNode,
/*408684*/                  OPC_RecordChild1, // #4 = $src3
/*408685*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*408687*/                  OPC_CheckPredicate, 9, // Predicate_load
/*408689*/                  OPC_MoveParent,
/*408690*/                  OPC_MoveParent,
/*408691*/                  OPC_MoveChild2,
/*408692*/                  OPC_CheckImmAllZerosV,
/*408693*/                  OPC_MoveParent,
/*408694*/                  OPC_CheckType, MVT::v2f64,
/*408696*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*408698*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*408701*/                  OPC_EmitMergeInputChains, 1, 3, 
/*408704*/                  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>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                            // Dst: (VFMSUBADD213PDZ128mkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*408718*/                /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->408756
/*408721*/                  OPC_RecordMemRef,
/*408722*/                  OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*408723*/                  OPC_CheckFoldableChainNode,
/*408724*/                  OPC_RecordChild1, // #4 = $src3
/*408725*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*408727*/                  OPC_MoveParent,
/*408728*/                  OPC_MoveParent,
/*408729*/                  OPC_MoveChild2,
/*408730*/                  OPC_CheckImmAllZerosV,
/*408731*/                  OPC_MoveParent,
/*408732*/                  OPC_CheckType, MVT::v2f64,
/*408734*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*408736*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*408739*/                  OPC_EmitMergeInputChains, 1, 3, 
/*408742*/                  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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                            // Dst: (VFMSUBADD213PDZ128mbkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*408756*/                0, // EndSwitchOpcode
/*408757*/              /*Scope*/ 79, /*->408837*/
/*408758*/                OPC_MoveChild1,
/*408759*/                OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->408799
/*408763*/                  OPC_RecordMemRef,
/*408764*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*408765*/                  OPC_CheckFoldableChainNode,
/*408766*/                  OPC_RecordChild1, // #3 = $src3
/*408767*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*408769*/                  OPC_CheckPredicate, 9, // Predicate_load
/*408771*/                  OPC_MoveParent,
/*408772*/                  OPC_RecordChild2, // #4 = $src1
/*408773*/                  OPC_MoveParent,
/*408774*/                  OPC_MoveChild2,
/*408775*/                  OPC_CheckImmAllZerosV,
/*408776*/                  OPC_MoveParent,
/*408777*/                  OPC_CheckType, MVT::v2f64,
/*408779*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*408781*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*408784*/                  OPC_EmitMergeInputChains1_2,
/*408785*/                  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>>, VR128X:{ *:[v2f64] }:$src1), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                            // Dst: (VFMSUBADD231PDZ128mkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*408799*/                /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->408836
/*408802*/                  OPC_RecordMemRef,
/*408803*/                  OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*408804*/                  OPC_CheckFoldableChainNode,
/*408805*/                  OPC_RecordChild1, // #3 = $src3
/*408806*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*408808*/                  OPC_MoveParent,
/*408809*/                  OPC_RecordChild2, // #4 = $src1
/*408810*/                  OPC_MoveParent,
/*408811*/                  OPC_MoveChild2,
/*408812*/                  OPC_CheckImmAllZerosV,
/*408813*/                  OPC_MoveParent,
/*408814*/                  OPC_CheckType, MVT::v2f64,
/*408816*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*408818*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*408821*/                  OPC_EmitMergeInputChains1_2,
/*408822*/                  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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                            // Dst: (VFMSUBADD231PDZ128mbkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*408836*/                0, // EndSwitchOpcode
/*408837*/              0, /*End of Scope*/
/*408838*/            /*Scope*/ 81, /*->408920*/
/*408839*/              OPC_MoveChild0,
/*408840*/              OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->408881
/*408844*/                OPC_RecordMemRef,
/*408845*/                OPC_RecordNode, // #1 = 'ld' chained node
/*408846*/                OPC_CheckFoldableChainNode,
/*408847*/                OPC_RecordChild1, // #2 = $src3
/*408848*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*408850*/                OPC_CheckPredicate, 9, // Predicate_load
/*408852*/                OPC_MoveParent,
/*408853*/                OPC_RecordChild1, // #3 = $src1
/*408854*/                OPC_RecordChild2, // #4 = $src2
/*408855*/                OPC_MoveParent,
/*408856*/                OPC_MoveChild2,
/*408857*/                OPC_CheckImmAllZerosV,
/*408858*/                OPC_MoveParent,
/*408859*/                OPC_CheckType, MVT::v2f64,
/*408861*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*408863*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*408866*/                OPC_EmitMergeInputChains1_1,
/*408867*/                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>>, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VFMSUBADD132PDZ128mkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*408881*/              /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->408919
/*408884*/                OPC_RecordMemRef,
/*408885*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*408886*/                OPC_CheckFoldableChainNode,
/*408887*/                OPC_RecordChild1, // #2 = $src3
/*408888*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*408890*/                OPC_MoveParent,
/*408891*/                OPC_RecordChild1, // #3 = $src1
/*408892*/                OPC_RecordChild2, // #4 = $src2
/*408893*/                OPC_MoveParent,
/*408894*/                OPC_MoveChild2,
/*408895*/                OPC_CheckImmAllZerosV,
/*408896*/                OPC_MoveParent,
/*408897*/                OPC_CheckType, MVT::v2f64,
/*408899*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*408901*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*408904*/                OPC_EmitMergeInputChains1_1,
/*408905*/                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] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VFMSUBADD132PDZ128mbkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*408919*/              0, // EndSwitchOpcode
/*408920*/            /*Scope*/ 34|128,1/*162*/, /*->409084*/
/*408922*/              OPC_RecordChild0, // #1 = $src2
/*408923*/              OPC_Scope, 80, /*->409005*/ // 2 children in Scope
/*408925*/                OPC_RecordChild1, // #2 = $src1
/*408926*/                OPC_MoveChild2,
/*408927*/                OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->408967
/*408931*/                  OPC_RecordMemRef,
/*408932*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*408933*/                  OPC_CheckFoldableChainNode,
/*408934*/                  OPC_RecordChild1, // #4 = $src3
/*408935*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*408937*/                  OPC_CheckPredicate, 9, // Predicate_load
/*408939*/                  OPC_MoveParent,
/*408940*/                  OPC_MoveParent,
/*408941*/                  OPC_CheckChild2Same, 2,
/*408943*/                  OPC_CheckType, MVT::v2f64,
/*408945*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*408947*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*408950*/                  OPC_EmitMergeInputChains, 1, 3, 
/*408953*/                  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>>), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                            // Dst: (VFMSUBADD213PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*408967*/                /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->409004
/*408970*/                  OPC_RecordMemRef,
/*408971*/                  OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*408972*/                  OPC_CheckFoldableChainNode,
/*408973*/                  OPC_RecordChild1, // #4 = $src3
/*408974*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*408976*/                  OPC_MoveParent,
/*408977*/                  OPC_MoveParent,
/*408978*/                  OPC_CheckChild2Same, 2,
/*408980*/                  OPC_CheckType, MVT::v2f64,
/*408982*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*408984*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*408987*/                  OPC_EmitMergeInputChains, 1, 3, 
/*408990*/                  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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                            // Dst: (VFMSUBADD213PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*409004*/                0, // EndSwitchOpcode
/*409005*/              /*Scope*/ 77, /*->409083*/
/*409006*/                OPC_MoveChild1,
/*409007*/                OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->409046
/*409011*/                  OPC_RecordMemRef,
/*409012*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*409013*/                  OPC_CheckFoldableChainNode,
/*409014*/                  OPC_RecordChild1, // #3 = $src3
/*409015*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*409017*/                  OPC_CheckPredicate, 9, // Predicate_load
/*409019*/                  OPC_MoveParent,
/*409020*/                  OPC_RecordChild2, // #4 = $src1
/*409021*/                  OPC_MoveParent,
/*409022*/                  OPC_CheckChild2Same, 4,
/*409024*/                  OPC_CheckType, MVT::v2f64,
/*409026*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*409028*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*409031*/                  OPC_EmitMergeInputChains1_2,
/*409032*/                  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>>, VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                            // Dst: (VFMSUBADD231PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*409046*/                /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->409082
/*409049*/                  OPC_RecordMemRef,
/*409050*/                  OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*409051*/                  OPC_CheckFoldableChainNode,
/*409052*/                  OPC_RecordChild1, // #3 = $src3
/*409053*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*409055*/                  OPC_MoveParent,
/*409056*/                  OPC_RecordChild2, // #4 = $src1
/*409057*/                  OPC_MoveParent,
/*409058*/                  OPC_CheckChild2Same, 4,
/*409060*/                  OPC_CheckType, MVT::v2f64,
/*409062*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*409064*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*409067*/                  OPC_EmitMergeInputChains1_2,
/*409068*/                  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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                            // Dst: (VFMSUBADD231PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*409082*/                0, // EndSwitchOpcode
/*409083*/              0, /*End of Scope*/
/*409084*/            /*Scope*/ 79, /*->409164*/
/*409085*/              OPC_MoveChild0,
/*409086*/              OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->409126
/*409090*/                OPC_RecordMemRef,
/*409091*/                OPC_RecordNode, // #1 = 'ld' chained node
/*409092*/                OPC_CheckFoldableChainNode,
/*409093*/                OPC_RecordChild1, // #2 = $src3
/*409094*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*409096*/                OPC_CheckPredicate, 9, // Predicate_load
/*409098*/                OPC_MoveParent,
/*409099*/                OPC_RecordChild1, // #3 = $src1
/*409100*/                OPC_RecordChild2, // #4 = $src2
/*409101*/                OPC_MoveParent,
/*409102*/                OPC_CheckChild2Same, 3,
/*409104*/                OPC_CheckType, MVT::v2f64,
/*409106*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*409108*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*409111*/                OPC_EmitMergeInputChains1_1,
/*409112*/                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>>, 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)
/*409126*/              /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->409163
/*409129*/                OPC_RecordMemRef,
/*409130*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*409131*/                OPC_CheckFoldableChainNode,
/*409132*/                OPC_RecordChild1, // #2 = $src3
/*409133*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*409135*/                OPC_MoveParent,
/*409136*/                OPC_RecordChild1, // #3 = $src1
/*409137*/                OPC_RecordChild2, // #4 = $src2
/*409138*/                OPC_MoveParent,
/*409139*/                OPC_CheckChild2Same, 3,
/*409141*/                OPC_CheckType, MVT::v2f64,
/*409143*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*409145*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*409148*/                OPC_EmitMergeInputChains1_1,
/*409149*/                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] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                          // Dst: (VFMSUBADD132PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*409163*/              0, // EndSwitchOpcode
/*409164*/            /*Scope*/ 81, /*->409246*/
/*409165*/              OPC_RecordChild0, // #1 = $src1
/*409166*/              OPC_RecordChild1, // #2 = $src2
/*409167*/              OPC_MoveChild2,
/*409168*/              OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->409208
/*409172*/                OPC_RecordMemRef,
/*409173*/                OPC_RecordNode, // #3 = 'ld' chained node
/*409174*/                OPC_CheckFoldableChainNode,
/*409175*/                OPC_RecordChild1, // #4 = $src3
/*409176*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*409178*/                OPC_CheckPredicate, 9, // Predicate_load
/*409180*/                OPC_MoveParent,
/*409181*/                OPC_MoveParent,
/*409182*/                OPC_CheckChild2Same, 1,
/*409184*/                OPC_CheckType, MVT::v2f64,
/*409186*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*409188*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*409191*/                OPC_EmitMergeInputChains, 1, 3, 
/*409194*/                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>>), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                          // Dst: (VFMSUBADD213PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*409208*/              /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->409245
/*409211*/                OPC_RecordMemRef,
/*409212*/                OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*409213*/                OPC_CheckFoldableChainNode,
/*409214*/                OPC_RecordChild1, // #4 = $src3
/*409215*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*409217*/                OPC_MoveParent,
/*409218*/                OPC_MoveParent,
/*409219*/                OPC_CheckChild2Same, 1,
/*409221*/                OPC_CheckType, MVT::v2f64,
/*409223*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*409225*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*409228*/                OPC_EmitMergeInputChains, 1, 3, 
/*409231*/                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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                          // Dst: (VFMSUBADD213PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*409245*/              0, // EndSwitchOpcode
/*409246*/            /*Scope*/ 79, /*->409326*/
/*409247*/              OPC_MoveChild0,
/*409248*/              OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->409288
/*409252*/                OPC_RecordMemRef,
/*409253*/                OPC_RecordNode, // #1 = 'ld' chained node
/*409254*/                OPC_CheckFoldableChainNode,
/*409255*/                OPC_RecordChild1, // #2 = $src3
/*409256*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*409258*/                OPC_CheckPredicate, 9, // Predicate_load
/*409260*/                OPC_MoveParent,
/*409261*/                OPC_RecordChild1, // #3 = $src2
/*409262*/                OPC_RecordChild2, // #4 = $src1
/*409263*/                OPC_MoveParent,
/*409264*/                OPC_CheckChild2Same, 4,
/*409266*/                OPC_CheckType, MVT::v2f64,
/*409268*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*409270*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*409273*/                OPC_EmitMergeInputChains1_1,
/*409274*/                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>>, 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)
/*409288*/              /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->409325
/*409291*/                OPC_RecordMemRef,
/*409292*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*409293*/                OPC_CheckFoldableChainNode,
/*409294*/                OPC_RecordChild1, // #2 = $src3
/*409295*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*409297*/                OPC_MoveParent,
/*409298*/                OPC_RecordChild1, // #3 = $src2
/*409299*/                OPC_RecordChild2, // #4 = $src1
/*409300*/                OPC_MoveParent,
/*409301*/                OPC_CheckChild2Same, 4,
/*409303*/                OPC_CheckType, MVT::v2f64,
/*409305*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*409307*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*409310*/                OPC_EmitMergeInputChains1_1,
/*409311*/                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] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                          // Dst: (VFMSUBADD231PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*409325*/              0, // EndSwitchOpcode
/*409326*/            /*Scope*/ 78, /*->409405*/
/*409327*/              OPC_RecordChild0, // #1 = $src1
/*409328*/              OPC_MoveChild1,
/*409329*/              OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->409368
/*409333*/                OPC_RecordMemRef,
/*409334*/                OPC_RecordNode, // #2 = 'ld' chained node
/*409335*/                OPC_CheckFoldableChainNode,
/*409336*/                OPC_RecordChild1, // #3 = $src3
/*409337*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*409339*/                OPC_CheckPredicate, 9, // Predicate_load
/*409341*/                OPC_MoveParent,
/*409342*/                OPC_RecordChild2, // #4 = $src2
/*409343*/                OPC_MoveParent,
/*409344*/                OPC_CheckChild2Same, 1,
/*409346*/                OPC_CheckType, MVT::v2f64,
/*409348*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*409350*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*409353*/                OPC_EmitMergeInputChains1_2,
/*409354*/                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>>, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                          // Dst: (VFMSUBADD132PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*409368*/              /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->409404
/*409371*/                OPC_RecordMemRef,
/*409372*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*409373*/                OPC_CheckFoldableChainNode,
/*409374*/                OPC_RecordChild1, // #3 = $src3
/*409375*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*409377*/                OPC_MoveParent,
/*409378*/                OPC_RecordChild2, // #4 = $src2
/*409379*/                OPC_MoveParent,
/*409380*/                OPC_CheckChild2Same, 1,
/*409382*/                OPC_CheckType, MVT::v2f64,
/*409384*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*409386*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*409389*/                OPC_EmitMergeInputChains1_2,
/*409390*/                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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                          // Dst: (VFMSUBADD132PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*409404*/              0, // EndSwitchOpcode
/*409405*/            0, /*End of Scope*/
/*409406*/          /*SwitchOpcode*/ 97|128,5/*737*/, TARGET_VAL(X86ISD::FNMADD),// ->410147
/*409410*/            OPC_Scope, 38|128,1/*166*/, /*->409579*/ // 7 children in Scope
/*409413*/              OPC_RecordChild0, // #1 = $src2
/*409414*/              OPC_Scope, 82, /*->409498*/ // 2 children in Scope
/*409416*/                OPC_RecordChild1, // #2 = $src1
/*409417*/                OPC_MoveChild2,
/*409418*/                OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->409459
/*409422*/                  OPC_RecordMemRef,
/*409423*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*409424*/                  OPC_CheckFoldableChainNode,
/*409425*/                  OPC_RecordChild1, // #4 = $src3
/*409426*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*409428*/                  OPC_CheckPredicate, 9, // Predicate_load
/*409430*/                  OPC_MoveParent,
/*409431*/                  OPC_MoveParent,
/*409432*/                  OPC_MoveChild2,
/*409433*/                  OPC_CheckImmAllZerosV,
/*409434*/                  OPC_MoveParent,
/*409435*/                  OPC_CheckType, MVT::v2f64,
/*409437*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*409439*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*409442*/                  OPC_EmitMergeInputChains, 1, 3, 
/*409445*/                  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>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                            // Dst: (VFNMADD213PDZ128mkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*409459*/                /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->409497
/*409462*/                  OPC_RecordMemRef,
/*409463*/                  OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*409464*/                  OPC_CheckFoldableChainNode,
/*409465*/                  OPC_RecordChild1, // #4 = $src3
/*409466*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*409468*/                  OPC_MoveParent,
/*409469*/                  OPC_MoveParent,
/*409470*/                  OPC_MoveChild2,
/*409471*/                  OPC_CheckImmAllZerosV,
/*409472*/                  OPC_MoveParent,
/*409473*/                  OPC_CheckType, MVT::v2f64,
/*409475*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*409477*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*409480*/                  OPC_EmitMergeInputChains, 1, 3, 
/*409483*/                  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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                            // Dst: (VFNMADD213PDZ128mbkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*409497*/                0, // EndSwitchOpcode
/*409498*/              /*Scope*/ 79, /*->409578*/
/*409499*/                OPC_MoveChild1,
/*409500*/                OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->409540
/*409504*/                  OPC_RecordMemRef,
/*409505*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*409506*/                  OPC_CheckFoldableChainNode,
/*409507*/                  OPC_RecordChild1, // #3 = $src3
/*409508*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*409510*/                  OPC_CheckPredicate, 9, // Predicate_load
/*409512*/                  OPC_MoveParent,
/*409513*/                  OPC_RecordChild2, // #4 = $src1
/*409514*/                  OPC_MoveParent,
/*409515*/                  OPC_MoveChild2,
/*409516*/                  OPC_CheckImmAllZerosV,
/*409517*/                  OPC_MoveParent,
/*409518*/                  OPC_CheckType, MVT::v2f64,
/*409520*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*409522*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*409525*/                  OPC_EmitMergeInputChains1_2,
/*409526*/                  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>>, VR128X:{ *:[v2f64] }:$src1), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                            // Dst: (VFNMADD231PDZ128mkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*409540*/                /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->409577
/*409543*/                  OPC_RecordMemRef,
/*409544*/                  OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*409545*/                  OPC_CheckFoldableChainNode,
/*409546*/                  OPC_RecordChild1, // #3 = $src3
/*409547*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*409549*/                  OPC_MoveParent,
/*409550*/                  OPC_RecordChild2, // #4 = $src1
/*409551*/                  OPC_MoveParent,
/*409552*/                  OPC_MoveChild2,
/*409553*/                  OPC_CheckImmAllZerosV,
/*409554*/                  OPC_MoveParent,
/*409555*/                  OPC_CheckType, MVT::v2f64,
/*409557*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*409559*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*409562*/                  OPC_EmitMergeInputChains1_2,
/*409563*/                  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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                            // Dst: (VFNMADD231PDZ128mbkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*409577*/                0, // EndSwitchOpcode
/*409578*/              0, /*End of Scope*/
/*409579*/            /*Scope*/ 81, /*->409661*/
/*409580*/              OPC_MoveChild0,
/*409581*/              OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->409622
/*409585*/                OPC_RecordMemRef,
/*409586*/                OPC_RecordNode, // #1 = 'ld' chained node
/*409587*/                OPC_CheckFoldableChainNode,
/*409588*/                OPC_RecordChild1, // #2 = $src3
/*409589*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*409591*/                OPC_CheckPredicate, 9, // Predicate_load
/*409593*/                OPC_MoveParent,
/*409594*/                OPC_RecordChild1, // #3 = $src1
/*409595*/                OPC_RecordChild2, // #4 = $src2
/*409596*/                OPC_MoveParent,
/*409597*/                OPC_MoveChild2,
/*409598*/                OPC_CheckImmAllZerosV,
/*409599*/                OPC_MoveParent,
/*409600*/                OPC_CheckType, MVT::v2f64,
/*409602*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*409604*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*409607*/                OPC_EmitMergeInputChains1_1,
/*409608*/                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>>, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VFNMADD132PDZ128mkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*409622*/              /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->409660
/*409625*/                OPC_RecordMemRef,
/*409626*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*409627*/                OPC_CheckFoldableChainNode,
/*409628*/                OPC_RecordChild1, // #2 = $src3
/*409629*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*409631*/                OPC_MoveParent,
/*409632*/                OPC_RecordChild1, // #3 = $src1
/*409633*/                OPC_RecordChild2, // #4 = $src2
/*409634*/                OPC_MoveParent,
/*409635*/                OPC_MoveChild2,
/*409636*/                OPC_CheckImmAllZerosV,
/*409637*/                OPC_MoveParent,
/*409638*/                OPC_CheckType, MVT::v2f64,
/*409640*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*409642*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*409645*/                OPC_EmitMergeInputChains1_1,
/*409646*/                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] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VFNMADD132PDZ128mbkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*409660*/              0, // EndSwitchOpcode
/*409661*/            /*Scope*/ 34|128,1/*162*/, /*->409825*/
/*409663*/              OPC_RecordChild0, // #1 = $src2
/*409664*/              OPC_Scope, 80, /*->409746*/ // 2 children in Scope
/*409666*/                OPC_RecordChild1, // #2 = $src1
/*409667*/                OPC_MoveChild2,
/*409668*/                OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->409708
/*409672*/                  OPC_RecordMemRef,
/*409673*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*409674*/                  OPC_CheckFoldableChainNode,
/*409675*/                  OPC_RecordChild1, // #4 = $src3
/*409676*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*409678*/                  OPC_CheckPredicate, 9, // Predicate_load
/*409680*/                  OPC_MoveParent,
/*409681*/                  OPC_MoveParent,
/*409682*/                  OPC_CheckChild2Same, 2,
/*409684*/                  OPC_CheckType, MVT::v2f64,
/*409686*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*409688*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*409691*/                  OPC_EmitMergeInputChains, 1, 3, 
/*409694*/                  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>>), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                            // Dst: (VFNMADD213PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*409708*/                /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->409745
/*409711*/                  OPC_RecordMemRef,
/*409712*/                  OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*409713*/                  OPC_CheckFoldableChainNode,
/*409714*/                  OPC_RecordChild1, // #4 = $src3
/*409715*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*409717*/                  OPC_MoveParent,
/*409718*/                  OPC_MoveParent,
/*409719*/                  OPC_CheckChild2Same, 2,
/*409721*/                  OPC_CheckType, MVT::v2f64,
/*409723*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*409725*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*409728*/                  OPC_EmitMergeInputChains, 1, 3, 
/*409731*/                  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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                            // Dst: (VFNMADD213PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*409745*/                0, // EndSwitchOpcode
/*409746*/              /*Scope*/ 77, /*->409824*/
/*409747*/                OPC_MoveChild1,
/*409748*/                OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->409787
/*409752*/                  OPC_RecordMemRef,
/*409753*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*409754*/                  OPC_CheckFoldableChainNode,
/*409755*/                  OPC_RecordChild1, // #3 = $src3
/*409756*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*409758*/                  OPC_CheckPredicate, 9, // Predicate_load
/*409760*/                  OPC_MoveParent,
/*409761*/                  OPC_RecordChild2, // #4 = $src1
/*409762*/                  OPC_MoveParent,
/*409763*/                  OPC_CheckChild2Same, 4,
/*409765*/                  OPC_CheckType, MVT::v2f64,
/*409767*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*409769*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*409772*/                  OPC_EmitMergeInputChains1_2,
/*409773*/                  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>>, VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                            // Dst: (VFNMADD231PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*409787*/                /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->409823
/*409790*/                  OPC_RecordMemRef,
/*409791*/                  OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*409792*/                  OPC_CheckFoldableChainNode,
/*409793*/                  OPC_RecordChild1, // #3 = $src3
/*409794*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*409796*/                  OPC_MoveParent,
/*409797*/                  OPC_RecordChild2, // #4 = $src1
/*409798*/                  OPC_MoveParent,
/*409799*/                  OPC_CheckChild2Same, 4,
/*409801*/                  OPC_CheckType, MVT::v2f64,
/*409803*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*409805*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*409808*/                  OPC_EmitMergeInputChains1_2,
/*409809*/                  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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                            // Dst: (VFNMADD231PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*409823*/                0, // EndSwitchOpcode
/*409824*/              0, /*End of Scope*/
/*409825*/            /*Scope*/ 79, /*->409905*/
/*409826*/              OPC_MoveChild0,
/*409827*/              OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->409867
/*409831*/                OPC_RecordMemRef,
/*409832*/                OPC_RecordNode, // #1 = 'ld' chained node
/*409833*/                OPC_CheckFoldableChainNode,
/*409834*/                OPC_RecordChild1, // #2 = $src3
/*409835*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*409837*/                OPC_CheckPredicate, 9, // Predicate_load
/*409839*/                OPC_MoveParent,
/*409840*/                OPC_RecordChild1, // #3 = $src1
/*409841*/                OPC_RecordChild2, // #4 = $src2
/*409842*/                OPC_MoveParent,
/*409843*/                OPC_CheckChild2Same, 3,
/*409845*/                OPC_CheckType, MVT::v2f64,
/*409847*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*409849*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*409852*/                OPC_EmitMergeInputChains1_1,
/*409853*/                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>>, 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)
/*409867*/              /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->409904
/*409870*/                OPC_RecordMemRef,
/*409871*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*409872*/                OPC_CheckFoldableChainNode,
/*409873*/                OPC_RecordChild1, // #2 = $src3
/*409874*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*409876*/                OPC_MoveParent,
/*409877*/                OPC_RecordChild1, // #3 = $src1
/*409878*/                OPC_RecordChild2, // #4 = $src2
/*409879*/                OPC_MoveParent,
/*409880*/                OPC_CheckChild2Same, 3,
/*409882*/                OPC_CheckType, MVT::v2f64,
/*409884*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*409886*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*409889*/                OPC_EmitMergeInputChains1_1,
/*409890*/                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] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                          // Dst: (VFNMADD132PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*409904*/              0, // EndSwitchOpcode
/*409905*/            /*Scope*/ 81, /*->409987*/
/*409906*/              OPC_RecordChild0, // #1 = $src1
/*409907*/              OPC_RecordChild1, // #2 = $src2
/*409908*/              OPC_MoveChild2,
/*409909*/              OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->409949
/*409913*/                OPC_RecordMemRef,
/*409914*/                OPC_RecordNode, // #3 = 'ld' chained node
/*409915*/                OPC_CheckFoldableChainNode,
/*409916*/                OPC_RecordChild1, // #4 = $src3
/*409917*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*409919*/                OPC_CheckPredicate, 9, // Predicate_load
/*409921*/                OPC_MoveParent,
/*409922*/                OPC_MoveParent,
/*409923*/                OPC_CheckChild2Same, 1,
/*409925*/                OPC_CheckType, MVT::v2f64,
/*409927*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*409929*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*409932*/                OPC_EmitMergeInputChains, 1, 3, 
/*409935*/                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>>), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                          // Dst: (VFNMADD213PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*409949*/              /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->409986
/*409952*/                OPC_RecordMemRef,
/*409953*/                OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*409954*/                OPC_CheckFoldableChainNode,
/*409955*/                OPC_RecordChild1, // #4 = $src3
/*409956*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*409958*/                OPC_MoveParent,
/*409959*/                OPC_MoveParent,
/*409960*/                OPC_CheckChild2Same, 1,
/*409962*/                OPC_CheckType, MVT::v2f64,
/*409964*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*409966*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*409969*/                OPC_EmitMergeInputChains, 1, 3, 
/*409972*/                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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                          // Dst: (VFNMADD213PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*409986*/              0, // EndSwitchOpcode
/*409987*/            /*Scope*/ 79, /*->410067*/
/*409988*/              OPC_MoveChild0,
/*409989*/              OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->410029
/*409993*/                OPC_RecordMemRef,
/*409994*/                OPC_RecordNode, // #1 = 'ld' chained node
/*409995*/                OPC_CheckFoldableChainNode,
/*409996*/                OPC_RecordChild1, // #2 = $src3
/*409997*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*409999*/                OPC_CheckPredicate, 9, // Predicate_load
/*410001*/                OPC_MoveParent,
/*410002*/                OPC_RecordChild1, // #3 = $src2
/*410003*/                OPC_RecordChild2, // #4 = $src1
/*410004*/                OPC_MoveParent,
/*410005*/                OPC_CheckChild2Same, 4,
/*410007*/                OPC_CheckType, MVT::v2f64,
/*410009*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*410011*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*410014*/                OPC_EmitMergeInputChains1_1,
/*410015*/                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>>, 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)
/*410029*/              /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->410066
/*410032*/                OPC_RecordMemRef,
/*410033*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*410034*/                OPC_CheckFoldableChainNode,
/*410035*/                OPC_RecordChild1, // #2 = $src3
/*410036*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*410038*/                OPC_MoveParent,
/*410039*/                OPC_RecordChild1, // #3 = $src2
/*410040*/                OPC_RecordChild2, // #4 = $src1
/*410041*/                OPC_MoveParent,
/*410042*/                OPC_CheckChild2Same, 4,
/*410044*/                OPC_CheckType, MVT::v2f64,
/*410046*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*410048*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*410051*/                OPC_EmitMergeInputChains1_1,
/*410052*/                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] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                          // Dst: (VFNMADD231PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*410066*/              0, // EndSwitchOpcode
/*410067*/            /*Scope*/ 78, /*->410146*/
/*410068*/              OPC_RecordChild0, // #1 = $src1
/*410069*/              OPC_MoveChild1,
/*410070*/              OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->410109
/*410074*/                OPC_RecordMemRef,
/*410075*/                OPC_RecordNode, // #2 = 'ld' chained node
/*410076*/                OPC_CheckFoldableChainNode,
/*410077*/                OPC_RecordChild1, // #3 = $src3
/*410078*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*410080*/                OPC_CheckPredicate, 9, // Predicate_load
/*410082*/                OPC_MoveParent,
/*410083*/                OPC_RecordChild2, // #4 = $src2
/*410084*/                OPC_MoveParent,
/*410085*/                OPC_CheckChild2Same, 1,
/*410087*/                OPC_CheckType, MVT::v2f64,
/*410089*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*410091*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*410094*/                OPC_EmitMergeInputChains1_2,
/*410095*/                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>>, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                          // Dst: (VFNMADD132PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*410109*/              /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->410145
/*410112*/                OPC_RecordMemRef,
/*410113*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*410114*/                OPC_CheckFoldableChainNode,
/*410115*/                OPC_RecordChild1, // #3 = $src3
/*410116*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*410118*/                OPC_MoveParent,
/*410119*/                OPC_RecordChild2, // #4 = $src2
/*410120*/                OPC_MoveParent,
/*410121*/                OPC_CheckChild2Same, 1,
/*410123*/                OPC_CheckType, MVT::v2f64,
/*410125*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*410127*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*410130*/                OPC_EmitMergeInputChains1_2,
/*410131*/                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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                          // Dst: (VFNMADD132PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*410145*/              0, // EndSwitchOpcode
/*410146*/            0, /*End of Scope*/
/*410147*/          /*SwitchOpcode*/ 97|128,5/*737*/, TARGET_VAL(X86ISD::FNMSUB),// ->410888
/*410151*/            OPC_Scope, 38|128,1/*166*/, /*->410320*/ // 7 children in Scope
/*410154*/              OPC_RecordChild0, // #1 = $src2
/*410155*/              OPC_Scope, 82, /*->410239*/ // 2 children in Scope
/*410157*/                OPC_RecordChild1, // #2 = $src1
/*410158*/                OPC_MoveChild2,
/*410159*/                OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->410200
/*410163*/                  OPC_RecordMemRef,
/*410164*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*410165*/                  OPC_CheckFoldableChainNode,
/*410166*/                  OPC_RecordChild1, // #4 = $src3
/*410167*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*410169*/                  OPC_CheckPredicate, 9, // Predicate_load
/*410171*/                  OPC_MoveParent,
/*410172*/                  OPC_MoveParent,
/*410173*/                  OPC_MoveChild2,
/*410174*/                  OPC_CheckImmAllZerosV,
/*410175*/                  OPC_MoveParent,
/*410176*/                  OPC_CheckType, MVT::v2f64,
/*410178*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*410180*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*410183*/                  OPC_EmitMergeInputChains, 1, 3, 
/*410186*/                  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>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                            // Dst: (VFNMSUB213PDZ128mkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*410200*/                /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->410238
/*410203*/                  OPC_RecordMemRef,
/*410204*/                  OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*410205*/                  OPC_CheckFoldableChainNode,
/*410206*/                  OPC_RecordChild1, // #4 = $src3
/*410207*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*410209*/                  OPC_MoveParent,
/*410210*/                  OPC_MoveParent,
/*410211*/                  OPC_MoveChild2,
/*410212*/                  OPC_CheckImmAllZerosV,
/*410213*/                  OPC_MoveParent,
/*410214*/                  OPC_CheckType, MVT::v2f64,
/*410216*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*410218*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*410221*/                  OPC_EmitMergeInputChains, 1, 3, 
/*410224*/                  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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                            // Dst: (VFNMSUB213PDZ128mbkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*410238*/                0, // EndSwitchOpcode
/*410239*/              /*Scope*/ 79, /*->410319*/
/*410240*/                OPC_MoveChild1,
/*410241*/                OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->410281
/*410245*/                  OPC_RecordMemRef,
/*410246*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*410247*/                  OPC_CheckFoldableChainNode,
/*410248*/                  OPC_RecordChild1, // #3 = $src3
/*410249*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*410251*/                  OPC_CheckPredicate, 9, // Predicate_load
/*410253*/                  OPC_MoveParent,
/*410254*/                  OPC_RecordChild2, // #4 = $src1
/*410255*/                  OPC_MoveParent,
/*410256*/                  OPC_MoveChild2,
/*410257*/                  OPC_CheckImmAllZerosV,
/*410258*/                  OPC_MoveParent,
/*410259*/                  OPC_CheckType, MVT::v2f64,
/*410261*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*410263*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*410266*/                  OPC_EmitMergeInputChains1_2,
/*410267*/                  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>>, VR128X:{ *:[v2f64] }:$src1), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                            // Dst: (VFNMSUB231PDZ128mkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*410281*/                /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->410318
/*410284*/                  OPC_RecordMemRef,
/*410285*/                  OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*410286*/                  OPC_CheckFoldableChainNode,
/*410287*/                  OPC_RecordChild1, // #3 = $src3
/*410288*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*410290*/                  OPC_MoveParent,
/*410291*/                  OPC_RecordChild2, // #4 = $src1
/*410292*/                  OPC_MoveParent,
/*410293*/                  OPC_MoveChild2,
/*410294*/                  OPC_CheckImmAllZerosV,
/*410295*/                  OPC_MoveParent,
/*410296*/                  OPC_CheckType, MVT::v2f64,
/*410298*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*410300*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*410303*/                  OPC_EmitMergeInputChains1_2,
/*410304*/                  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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                            // Dst: (VFNMSUB231PDZ128mbkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*410318*/                0, // EndSwitchOpcode
/*410319*/              0, /*End of Scope*/
/*410320*/            /*Scope*/ 81, /*->410402*/
/*410321*/              OPC_MoveChild0,
/*410322*/              OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->410363
/*410326*/                OPC_RecordMemRef,
/*410327*/                OPC_RecordNode, // #1 = 'ld' chained node
/*410328*/                OPC_CheckFoldableChainNode,
/*410329*/                OPC_RecordChild1, // #2 = $src3
/*410330*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*410332*/                OPC_CheckPredicate, 9, // Predicate_load
/*410334*/                OPC_MoveParent,
/*410335*/                OPC_RecordChild1, // #3 = $src1
/*410336*/                OPC_RecordChild2, // #4 = $src2
/*410337*/                OPC_MoveParent,
/*410338*/                OPC_MoveChild2,
/*410339*/                OPC_CheckImmAllZerosV,
/*410340*/                OPC_MoveParent,
/*410341*/                OPC_CheckType, MVT::v2f64,
/*410343*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*410345*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*410348*/                OPC_EmitMergeInputChains1_1,
/*410349*/                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>>, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VFNMSUB132PDZ128mkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*410363*/              /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->410401
/*410366*/                OPC_RecordMemRef,
/*410367*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*410368*/                OPC_CheckFoldableChainNode,
/*410369*/                OPC_RecordChild1, // #2 = $src3
/*410370*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*410372*/                OPC_MoveParent,
/*410373*/                OPC_RecordChild1, // #3 = $src1
/*410374*/                OPC_RecordChild2, // #4 = $src2
/*410375*/                OPC_MoveParent,
/*410376*/                OPC_MoveChild2,
/*410377*/                OPC_CheckImmAllZerosV,
/*410378*/                OPC_MoveParent,
/*410379*/                OPC_CheckType, MVT::v2f64,
/*410381*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*410383*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*410386*/                OPC_EmitMergeInputChains1_1,
/*410387*/                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] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VFNMSUB132PDZ128mbkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*410401*/              0, // EndSwitchOpcode
/*410402*/            /*Scope*/ 34|128,1/*162*/, /*->410566*/
/*410404*/              OPC_RecordChild0, // #1 = $src2
/*410405*/              OPC_Scope, 80, /*->410487*/ // 2 children in Scope
/*410407*/                OPC_RecordChild1, // #2 = $src1
/*410408*/                OPC_MoveChild2,
/*410409*/                OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->410449
/*410413*/                  OPC_RecordMemRef,
/*410414*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*410415*/                  OPC_CheckFoldableChainNode,
/*410416*/                  OPC_RecordChild1, // #4 = $src3
/*410417*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*410419*/                  OPC_CheckPredicate, 9, // Predicate_load
/*410421*/                  OPC_MoveParent,
/*410422*/                  OPC_MoveParent,
/*410423*/                  OPC_CheckChild2Same, 2,
/*410425*/                  OPC_CheckType, MVT::v2f64,
/*410427*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*410429*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*410432*/                  OPC_EmitMergeInputChains, 1, 3, 
/*410435*/                  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>>), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                            // Dst: (VFNMSUB213PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*410449*/                /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->410486
/*410452*/                  OPC_RecordMemRef,
/*410453*/                  OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*410454*/                  OPC_CheckFoldableChainNode,
/*410455*/                  OPC_RecordChild1, // #4 = $src3
/*410456*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*410458*/                  OPC_MoveParent,
/*410459*/                  OPC_MoveParent,
/*410460*/                  OPC_CheckChild2Same, 2,
/*410462*/                  OPC_CheckType, MVT::v2f64,
/*410464*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*410466*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*410469*/                  OPC_EmitMergeInputChains, 1, 3, 
/*410472*/                  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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                            // Dst: (VFNMSUB213PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*410486*/                0, // EndSwitchOpcode
/*410487*/              /*Scope*/ 77, /*->410565*/
/*410488*/                OPC_MoveChild1,
/*410489*/                OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->410528
/*410493*/                  OPC_RecordMemRef,
/*410494*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*410495*/                  OPC_CheckFoldableChainNode,
/*410496*/                  OPC_RecordChild1, // #3 = $src3
/*410497*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*410499*/                  OPC_CheckPredicate, 9, // Predicate_load
/*410501*/                  OPC_MoveParent,
/*410502*/                  OPC_RecordChild2, // #4 = $src1
/*410503*/                  OPC_MoveParent,
/*410504*/                  OPC_CheckChild2Same, 4,
/*410506*/                  OPC_CheckType, MVT::v2f64,
/*410508*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*410510*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*410513*/                  OPC_EmitMergeInputChains1_2,
/*410514*/                  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>>, VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                            // Dst: (VFNMSUB231PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*410528*/                /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->410564
/*410531*/                  OPC_RecordMemRef,
/*410532*/                  OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*410533*/                  OPC_CheckFoldableChainNode,
/*410534*/                  OPC_RecordChild1, // #3 = $src3
/*410535*/                  OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*410537*/                  OPC_MoveParent,
/*410538*/                  OPC_RecordChild2, // #4 = $src1
/*410539*/                  OPC_MoveParent,
/*410540*/                  OPC_CheckChild2Same, 4,
/*410542*/                  OPC_CheckType, MVT::v2f64,
/*410544*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*410546*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*410549*/                  OPC_EmitMergeInputChains1_2,
/*410550*/                  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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                            // Dst: (VFNMSUB231PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*410564*/                0, // EndSwitchOpcode
/*410565*/              0, /*End of Scope*/
/*410566*/            /*Scope*/ 79, /*->410646*/
/*410567*/              OPC_MoveChild0,
/*410568*/              OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->410608
/*410572*/                OPC_RecordMemRef,
/*410573*/                OPC_RecordNode, // #1 = 'ld' chained node
/*410574*/                OPC_CheckFoldableChainNode,
/*410575*/                OPC_RecordChild1, // #2 = $src3
/*410576*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*410578*/                OPC_CheckPredicate, 9, // Predicate_load
/*410580*/                OPC_MoveParent,
/*410581*/                OPC_RecordChild1, // #3 = $src1
/*410582*/                OPC_RecordChild2, // #4 = $src2
/*410583*/                OPC_MoveParent,
/*410584*/                OPC_CheckChild2Same, 3,
/*410586*/                OPC_CheckType, MVT::v2f64,
/*410588*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*410590*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*410593*/                OPC_EmitMergeInputChains1_1,
/*410594*/                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>>, 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)
/*410608*/              /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->410645
/*410611*/                OPC_RecordMemRef,
/*410612*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*410613*/                OPC_CheckFoldableChainNode,
/*410614*/                OPC_RecordChild1, // #2 = $src3
/*410615*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*410617*/                OPC_MoveParent,
/*410618*/                OPC_RecordChild1, // #3 = $src1
/*410619*/                OPC_RecordChild2, // #4 = $src2
/*410620*/                OPC_MoveParent,
/*410621*/                OPC_CheckChild2Same, 3,
/*410623*/                OPC_CheckType, MVT::v2f64,
/*410625*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*410627*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*410630*/                OPC_EmitMergeInputChains1_1,
/*410631*/                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] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                          // Dst: (VFNMSUB132PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*410645*/              0, // EndSwitchOpcode
/*410646*/            /*Scope*/ 81, /*->410728*/
/*410647*/              OPC_RecordChild0, // #1 = $src1
/*410648*/              OPC_RecordChild1, // #2 = $src2
/*410649*/              OPC_MoveChild2,
/*410650*/              OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->410690
/*410654*/                OPC_RecordMemRef,
/*410655*/                OPC_RecordNode, // #3 = 'ld' chained node
/*410656*/                OPC_CheckFoldableChainNode,
/*410657*/                OPC_RecordChild1, // #4 = $src3
/*410658*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*410660*/                OPC_CheckPredicate, 9, // Predicate_load
/*410662*/                OPC_MoveParent,
/*410663*/                OPC_MoveParent,
/*410664*/                OPC_CheckChild2Same, 1,
/*410666*/                OPC_CheckType, MVT::v2f64,
/*410668*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*410670*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*410673*/                OPC_EmitMergeInputChains, 1, 3, 
/*410676*/                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>>), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                          // Dst: (VFNMSUB213PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*410690*/              /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->410727
/*410693*/                OPC_RecordMemRef,
/*410694*/                OPC_RecordNode, // #3 = 'X86VBroadcastld' chained node
/*410695*/                OPC_CheckFoldableChainNode,
/*410696*/                OPC_RecordChild1, // #4 = $src3
/*410697*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*410699*/                OPC_MoveParent,
/*410700*/                OPC_MoveParent,
/*410701*/                OPC_CheckChild2Same, 1,
/*410703*/                OPC_CheckType, MVT::v2f64,
/*410705*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*410707*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*410710*/                OPC_EmitMergeInputChains, 1, 3, 
/*410713*/                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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                          // Dst: (VFNMSUB213PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*410727*/              0, // EndSwitchOpcode
/*410728*/            /*Scope*/ 79, /*->410808*/
/*410729*/              OPC_MoveChild0,
/*410730*/              OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->410770
/*410734*/                OPC_RecordMemRef,
/*410735*/                OPC_RecordNode, // #1 = 'ld' chained node
/*410736*/                OPC_CheckFoldableChainNode,
/*410737*/                OPC_RecordChild1, // #2 = $src3
/*410738*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*410740*/                OPC_CheckPredicate, 9, // Predicate_load
/*410742*/                OPC_MoveParent,
/*410743*/                OPC_RecordChild1, // #3 = $src2
/*410744*/                OPC_RecordChild2, // #4 = $src1
/*410745*/                OPC_MoveParent,
/*410746*/                OPC_CheckChild2Same, 4,
/*410748*/                OPC_CheckType, MVT::v2f64,
/*410750*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*410752*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*410755*/                OPC_EmitMergeInputChains1_1,
/*410756*/                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>>, 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)
/*410770*/              /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->410807
/*410773*/                OPC_RecordMemRef,
/*410774*/                OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*410775*/                OPC_CheckFoldableChainNode,
/*410776*/                OPC_RecordChild1, // #2 = $src3
/*410777*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*410779*/                OPC_MoveParent,
/*410780*/                OPC_RecordChild1, // #3 = $src2
/*410781*/                OPC_RecordChild2, // #4 = $src1
/*410782*/                OPC_MoveParent,
/*410783*/                OPC_CheckChild2Same, 4,
/*410785*/                OPC_CheckType, MVT::v2f64,
/*410787*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*410789*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*410792*/                OPC_EmitMergeInputChains1_1,
/*410793*/                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] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                          // Dst: (VFNMSUB231PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*410807*/              0, // EndSwitchOpcode
/*410808*/            /*Scope*/ 78, /*->410887*/
/*410809*/              OPC_RecordChild0, // #1 = $src1
/*410810*/              OPC_MoveChild1,
/*410811*/              OPC_SwitchOpcode /*2 cases */, 35, TARGET_VAL(ISD::LOAD),// ->410850
/*410815*/                OPC_RecordMemRef,
/*410816*/                OPC_RecordNode, // #2 = 'ld' chained node
/*410817*/                OPC_CheckFoldableChainNode,
/*410818*/                OPC_RecordChild1, // #3 = $src3
/*410819*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*410821*/                OPC_CheckPredicate, 9, // Predicate_load
/*410823*/                OPC_MoveParent,
/*410824*/                OPC_RecordChild2, // #4 = $src2
/*410825*/                OPC_MoveParent,
/*410826*/                OPC_CheckChild2Same, 1,
/*410828*/                OPC_CheckType, MVT::v2f64,
/*410830*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*410832*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*410835*/                OPC_EmitMergeInputChains1_2,
/*410836*/                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>>, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                          // Dst: (VFNMSUB132PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*410850*/              /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->410886
/*410853*/                OPC_RecordMemRef,
/*410854*/                OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*410855*/                OPC_CheckFoldableChainNode,
/*410856*/                OPC_RecordChild1, // #3 = $src3
/*410857*/                OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*410859*/                OPC_MoveParent,
/*410860*/                OPC_RecordChild2, // #4 = $src2
/*410861*/                OPC_MoveParent,
/*410862*/                OPC_CheckChild2Same, 1,
/*410864*/                OPC_CheckType, MVT::v2f64,
/*410866*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*410868*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*410871*/                OPC_EmitMergeInputChains1_2,
/*410872*/                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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src2), VR128X:{ *:[v2f64] }:$src1) - Complexity = 28
                          // Dst: (VFNMSUB132PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*410886*/              0, // EndSwitchOpcode
/*410887*/            0, /*End of Scope*/
/*410888*/          /*SwitchOpcode*/ 69, TARGET_VAL(X86ISD::STRICT_VFPEXT),// ->410960
/*410891*/            OPC_RecordNode, // #1 = 'X86strict_vfpext' chained node
/*410892*/            OPC_CheckFoldableChainNode,
/*410893*/            OPC_MoveChild1,
/*410894*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*410897*/            OPC_RecordMemRef,
/*410898*/            OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*410899*/            OPC_CheckFoldableChainNode,
/*410900*/            OPC_RecordChild1, // #3 = $src
/*410901*/            OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*410903*/            OPC_MoveParent,
/*410904*/            OPC_MoveParent,
/*410905*/            OPC_Scope, 26, /*->410933*/ // 2 children in Scope
/*410907*/              OPC_MoveChild2,
/*410908*/              OPC_CheckImmAllZerosV,
/*410909*/              OPC_MoveParent,
/*410910*/              OPC_CheckType, MVT::v2f64,
/*410912*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*410914*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*410917*/              OPC_EmitMergeInputChains, 2, 1, 2, 
/*410921*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_vfpext:{ *:[v2f64] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                        // Dst: (VCVTPS2PDZ128rmbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*410933*/            /*Scope*/ 25, /*->410959*/
/*410934*/              OPC_RecordChild2, // #4 = $src0
/*410935*/              OPC_CheckType, MVT::v2f64,
/*410937*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*410939*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*410942*/              OPC_EmitMergeInputChains, 2, 1, 2, 
/*410946*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_vfpext:{ *:[v2f64] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                        // Dst: (VCVTPS2PDZ128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*410959*/            0, /*End of Scope*/
/*410960*/          /*SwitchOpcode*/ 61, TARGET_VAL(X86ISD::VFPEXT),// ->411024
/*410963*/            OPC_MoveChild0,
/*410964*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*410967*/            OPC_RecordMemRef,
/*410968*/            OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*410969*/            OPC_CheckFoldableChainNode,
/*410970*/            OPC_RecordChild1, // #2 = $src
/*410971*/            OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*410973*/            OPC_MoveParent,
/*410974*/            OPC_MoveParent,
/*410975*/            OPC_Scope, 23, /*->411000*/ // 2 children in Scope
/*410977*/              OPC_MoveChild2,
/*410978*/              OPC_CheckImmAllZerosV,
/*410979*/              OPC_MoveParent,
/*410980*/              OPC_CheckType, MVT::v2f64,
/*410982*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*410984*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*410987*/              OPC_EmitMergeInputChains1_1,
/*410988*/              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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                        // Dst: (VCVTPS2PDZ128rmbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*411000*/            /*Scope*/ 22, /*->411023*/
/*411001*/              OPC_RecordChild2, // #3 = $src0
/*411002*/              OPC_CheckType, MVT::v2f64,
/*411004*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*411006*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*411009*/              OPC_EmitMergeInputChains1_1,
/*411010*/              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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                        // Dst: (VCVTPS2PDZ128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*411023*/            0, /*End of Scope*/
/*411024*/          /*SwitchOpcode*/ 15|128,1/*143*/, TARGET_VAL(ISD::STRICT_SINT_TO_FP),// ->411171
/*411028*/            OPC_RecordNode, // #1 = 'strict_sint_to_fp' chained node
/*411029*/            OPC_CheckFoldableChainNode,
/*411030*/            OPC_MoveChild1,
/*411031*/            OPC_SwitchOpcode /*2 cases */, 67, TARGET_VAL(ISD::LOAD),// ->411102
/*411035*/              OPC_RecordMemRef,
/*411036*/              OPC_RecordNode, // #2 = 'ld' chained node
/*411037*/              OPC_CheckFoldableChainNode,
/*411038*/              OPC_RecordChild1, // #3 = $src
/*411039*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*411041*/              OPC_CheckPredicate, 9, // Predicate_load
/*411043*/              OPC_CheckType, MVT::v2i64,
/*411045*/              OPC_MoveParent,
/*411046*/              OPC_MoveParent,
/*411047*/              OPC_Scope, 26, /*->411075*/ // 2 children in Scope
/*411049*/                OPC_MoveChild2,
/*411050*/                OPC_CheckImmAllZerosV,
/*411051*/                OPC_MoveParent,
/*411052*/                OPC_CheckType, MVT::v2f64,
/*411054*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*411056*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*411059*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*411063*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (strict_sint_to_fp:{ *:[v2f64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VCVTQQ2PDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*411075*/              /*Scope*/ 25, /*->411101*/
/*411076*/                OPC_RecordChild2, // #4 = $src0
/*411077*/                OPC_CheckType, MVT::v2f64,
/*411079*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*411081*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*411084*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*411088*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (strict_sint_to_fp:{ *:[v2f64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VCVTQQ2PDZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*411101*/              0, /*End of Scope*/
/*411102*/            /*SwitchOpcode*/ 65, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->411170
/*411105*/              OPC_RecordMemRef,
/*411106*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*411107*/              OPC_CheckFoldableChainNode,
/*411108*/              OPC_RecordChild1, // #3 = $src
/*411109*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*411111*/              OPC_CheckType, MVT::v2i64,
/*411113*/              OPC_MoveParent,
/*411114*/              OPC_MoveParent,
/*411115*/              OPC_Scope, 26, /*->411143*/ // 2 children in Scope
/*411117*/                OPC_MoveChild2,
/*411118*/                OPC_CheckImmAllZerosV,
/*411119*/                OPC_MoveParent,
/*411120*/                OPC_CheckType, MVT::v2f64,
/*411122*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*411124*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*411127*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*411131*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (strict_sint_to_fp:{ *:[v2f64] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VCVTQQ2PDZ128rmbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*411143*/              /*Scope*/ 25, /*->411169*/
/*411144*/                OPC_RecordChild2, // #4 = $src0
/*411145*/                OPC_CheckType, MVT::v2f64,
/*411147*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*411149*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*411152*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*411156*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (strict_sint_to_fp:{ *:[v2f64] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VCVTQQ2PDZ128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*411169*/              0, /*End of Scope*/
/*411170*/            0, // EndSwitchOpcode
/*411171*/          /*SwitchOpcode*/ 1|128,1/*129*/, TARGET_VAL(ISD::SINT_TO_FP),// ->411304
/*411175*/            OPC_MoveChild0,
/*411176*/            OPC_SwitchOpcode /*2 cases */, 61, TARGET_VAL(ISD::LOAD),// ->411241
/*411180*/              OPC_RecordMemRef,
/*411181*/              OPC_RecordNode, // #1 = 'ld' chained node
/*411182*/              OPC_CheckFoldableChainNode,
/*411183*/              OPC_RecordChild1, // #2 = $src
/*411184*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*411186*/              OPC_CheckPredicate, 9, // Predicate_load
/*411188*/              OPC_CheckType, MVT::v2i64,
/*411190*/              OPC_MoveParent,
/*411191*/              OPC_MoveParent,
/*411192*/              OPC_Scope, 23, /*->411217*/ // 2 children in Scope
/*411194*/                OPC_MoveChild2,
/*411195*/                OPC_CheckImmAllZerosV,
/*411196*/                OPC_MoveParent,
/*411197*/                OPC_CheckType, MVT::v2f64,
/*411199*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*411201*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*411204*/                OPC_EmitMergeInputChains1_1,
/*411205*/                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>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VCVTQQ2PDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*411217*/              /*Scope*/ 22, /*->411240*/
/*411218*/                OPC_RecordChild2, // #3 = $src0
/*411219*/                OPC_CheckType, MVT::v2f64,
/*411221*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*411223*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*411226*/                OPC_EmitMergeInputChains1_1,
/*411227*/                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>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VCVTQQ2PDZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*411240*/              0, /*End of Scope*/
/*411241*/            /*SwitchOpcode*/ 59, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->411303
/*411244*/              OPC_RecordMemRef,
/*411245*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*411246*/              OPC_CheckFoldableChainNode,
/*411247*/              OPC_RecordChild1, // #2 = $src
/*411248*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*411250*/              OPC_CheckType, MVT::v2i64,
/*411252*/              OPC_MoveParent,
/*411253*/              OPC_MoveParent,
/*411254*/              OPC_Scope, 23, /*->411279*/ // 2 children in Scope
/*411256*/                OPC_MoveChild2,
/*411257*/                OPC_CheckImmAllZerosV,
/*411258*/                OPC_MoveParent,
/*411259*/                OPC_CheckType, MVT::v2f64,
/*411261*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*411263*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*411266*/                OPC_EmitMergeInputChains1_1,
/*411267*/                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] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VCVTQQ2PDZ128rmbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*411279*/              /*Scope*/ 22, /*->411302*/
/*411280*/                OPC_RecordChild2, // #3 = $src0
/*411281*/                OPC_CheckType, MVT::v2f64,
/*411283*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*411285*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*411288*/                OPC_EmitMergeInputChains1_1,
/*411289*/                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] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VCVTQQ2PDZ128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*411302*/              0, /*End of Scope*/
/*411303*/            0, // EndSwitchOpcode
/*411304*/          /*SwitchOpcode*/ 15|128,1/*143*/, TARGET_VAL(ISD::STRICT_UINT_TO_FP),// ->411451
/*411308*/            OPC_RecordNode, // #1 = 'strict_uint_to_fp' chained node
/*411309*/            OPC_CheckFoldableChainNode,
/*411310*/            OPC_MoveChild1,
/*411311*/            OPC_SwitchOpcode /*2 cases */, 67, TARGET_VAL(ISD::LOAD),// ->411382
/*411315*/              OPC_RecordMemRef,
/*411316*/              OPC_RecordNode, // #2 = 'ld' chained node
/*411317*/              OPC_CheckFoldableChainNode,
/*411318*/              OPC_RecordChild1, // #3 = $src
/*411319*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*411321*/              OPC_CheckPredicate, 9, // Predicate_load
/*411323*/              OPC_CheckType, MVT::v2i64,
/*411325*/              OPC_MoveParent,
/*411326*/              OPC_MoveParent,
/*411327*/              OPC_Scope, 26, /*->411355*/ // 2 children in Scope
/*411329*/                OPC_MoveChild2,
/*411330*/                OPC_CheckImmAllZerosV,
/*411331*/                OPC_MoveParent,
/*411332*/                OPC_CheckType, MVT::v2f64,
/*411334*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*411336*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*411339*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*411343*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (strict_uint_to_fp:{ *:[v2f64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VCVTUQQ2PDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*411355*/              /*Scope*/ 25, /*->411381*/
/*411356*/                OPC_RecordChild2, // #4 = $src0
/*411357*/                OPC_CheckType, MVT::v2f64,
/*411359*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*411361*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*411364*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*411368*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (strict_uint_to_fp:{ *:[v2f64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VCVTUQQ2PDZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*411381*/              0, /*End of Scope*/
/*411382*/            /*SwitchOpcode*/ 65, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->411450
/*411385*/              OPC_RecordMemRef,
/*411386*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*411387*/              OPC_CheckFoldableChainNode,
/*411388*/              OPC_RecordChild1, // #3 = $src
/*411389*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*411391*/              OPC_CheckType, MVT::v2i64,
/*411393*/              OPC_MoveParent,
/*411394*/              OPC_MoveParent,
/*411395*/              OPC_Scope, 26, /*->411423*/ // 2 children in Scope
/*411397*/                OPC_MoveChild2,
/*411398*/                OPC_CheckImmAllZerosV,
/*411399*/                OPC_MoveParent,
/*411400*/                OPC_CheckType, MVT::v2f64,
/*411402*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*411404*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*411407*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*411411*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PDZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (strict_uint_to_fp:{ *:[v2f64] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VCVTUQQ2PDZ128rmbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*411423*/              /*Scope*/ 25, /*->411449*/
/*411424*/                OPC_RecordChild2, // #4 = $src0
/*411425*/                OPC_CheckType, MVT::v2f64,
/*411427*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*411429*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*411432*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*411436*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PDZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (strict_uint_to_fp:{ *:[v2f64] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VCVTUQQ2PDZ128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*411449*/              0, /*End of Scope*/
/*411450*/            0, // EndSwitchOpcode
/*411451*/          /*SwitchOpcode*/ 1|128,1/*129*/, TARGET_VAL(ISD::UINT_TO_FP),// ->411584
/*411455*/            OPC_MoveChild0,
/*411456*/            OPC_SwitchOpcode /*2 cases */, 61, TARGET_VAL(ISD::LOAD),// ->411521
/*411460*/              OPC_RecordMemRef,
/*411461*/              OPC_RecordNode, // #1 = 'ld' chained node
/*411462*/              OPC_CheckFoldableChainNode,
/*411463*/              OPC_RecordChild1, // #2 = $src
/*411464*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*411466*/              OPC_CheckPredicate, 9, // Predicate_load
/*411468*/              OPC_CheckType, MVT::v2i64,
/*411470*/              OPC_MoveParent,
/*411471*/              OPC_MoveParent,
/*411472*/              OPC_Scope, 23, /*->411497*/ // 2 children in Scope
/*411474*/                OPC_MoveChild2,
/*411475*/                OPC_CheckImmAllZerosV,
/*411476*/                OPC_MoveParent,
/*411477*/                OPC_CheckType, MVT::v2f64,
/*411479*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*411481*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*411484*/                OPC_EmitMergeInputChains1_1,
/*411485*/                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>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VCVTUQQ2PDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*411497*/              /*Scope*/ 22, /*->411520*/
/*411498*/                OPC_RecordChild2, // #3 = $src0
/*411499*/                OPC_CheckType, MVT::v2f64,
/*411501*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*411503*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*411506*/                OPC_EmitMergeInputChains1_1,
/*411507*/                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>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VCVTUQQ2PDZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*411520*/              0, /*End of Scope*/
/*411521*/            /*SwitchOpcode*/ 59, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->411583
/*411524*/              OPC_RecordMemRef,
/*411525*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*411526*/              OPC_CheckFoldableChainNode,
/*411527*/              OPC_RecordChild1, // #2 = $src
/*411528*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*411530*/              OPC_CheckType, MVT::v2i64,
/*411532*/              OPC_MoveParent,
/*411533*/              OPC_MoveParent,
/*411534*/              OPC_Scope, 23, /*->411559*/ // 2 children in Scope
/*411536*/                OPC_MoveChild2,
/*411537*/                OPC_CheckImmAllZerosV,
/*411538*/                OPC_MoveParent,
/*411539*/                OPC_CheckType, MVT::v2f64,
/*411541*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*411543*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*411546*/                OPC_EmitMergeInputChains1_1,
/*411547*/                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] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VCVTUQQ2PDZ128rmbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*411559*/              /*Scope*/ 22, /*->411582*/
/*411560*/                OPC_RecordChild2, // #3 = $src0
/*411561*/                OPC_CheckType, MVT::v2f64,
/*411563*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*411565*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*411568*/                OPC_EmitMergeInputChains1_1,
/*411569*/                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] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VCVTUQQ2PDZ128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*411582*/              0, /*End of Scope*/
/*411583*/            0, // EndSwitchOpcode
/*411584*/          /*SwitchOpcode*/ 125, TARGET_VAL(X86ISD::RSQRT14),// ->411712
/*411587*/            OPC_MoveChild0,
/*411588*/            OPC_SwitchOpcode /*2 cases */, 59, TARGET_VAL(ISD::LOAD),// ->411651
/*411592*/              OPC_RecordMemRef,
/*411593*/              OPC_RecordNode, // #1 = 'ld' chained node
/*411594*/              OPC_CheckFoldableChainNode,
/*411595*/              OPC_RecordChild1, // #2 = $src
/*411596*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*411598*/              OPC_CheckPredicate, 9, // Predicate_load
/*411600*/              OPC_MoveParent,
/*411601*/              OPC_MoveParent,
/*411602*/              OPC_Scope, 23, /*->411627*/ // 2 children in Scope
/*411604*/                OPC_MoveChild2,
/*411605*/                OPC_CheckImmAllZerosV,
/*411606*/                OPC_MoveParent,
/*411607*/                OPC_CheckType, MVT::v2f64,
/*411609*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*411611*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*411614*/                OPC_EmitMergeInputChains1_1,
/*411615*/                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>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VRSQRT14PDZ128mkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*411627*/              /*Scope*/ 22, /*->411650*/
/*411628*/                OPC_RecordChild2, // #3 = $src0
/*411629*/                OPC_CheckType, MVT::v2f64,
/*411631*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*411633*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*411636*/                OPC_EmitMergeInputChains1_1,
/*411637*/                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>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VRSQRT14PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*411650*/              0, /*End of Scope*/
/*411651*/            /*SwitchOpcode*/ 57, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->411711
/*411654*/              OPC_RecordMemRef,
/*411655*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*411656*/              OPC_CheckFoldableChainNode,
/*411657*/              OPC_RecordChild1, // #2 = $src
/*411658*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*411660*/              OPC_MoveParent,
/*411661*/              OPC_MoveParent,
/*411662*/              OPC_Scope, 23, /*->411687*/ // 2 children in Scope
/*411664*/                OPC_MoveChild2,
/*411665*/                OPC_CheckImmAllZerosV,
/*411666*/                OPC_MoveParent,
/*411667*/                OPC_CheckType, MVT::v2f64,
/*411669*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*411671*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*411674*/                OPC_EmitMergeInputChains1_1,
/*411675*/                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] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VRSQRT14PDZ128mbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*411687*/              /*Scope*/ 22, /*->411710*/
/*411688*/                OPC_RecordChild2, // #3 = $src0
/*411689*/                OPC_CheckType, MVT::v2f64,
/*411691*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*411693*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*411696*/                OPC_EmitMergeInputChains1_1,
/*411697*/                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] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VRSQRT14PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*411710*/              0, /*End of Scope*/
/*411711*/            0, // EndSwitchOpcode
/*411712*/          /*SwitchOpcode*/ 125, TARGET_VAL(X86ISD::RCP14),// ->411840
/*411715*/            OPC_MoveChild0,
/*411716*/            OPC_SwitchOpcode /*2 cases */, 59, TARGET_VAL(ISD::LOAD),// ->411779
/*411720*/              OPC_RecordMemRef,
/*411721*/              OPC_RecordNode, // #1 = 'ld' chained node
/*411722*/              OPC_CheckFoldableChainNode,
/*411723*/              OPC_RecordChild1, // #2 = $src
/*411724*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*411726*/              OPC_CheckPredicate, 9, // Predicate_load
/*411728*/              OPC_MoveParent,
/*411729*/              OPC_MoveParent,
/*411730*/              OPC_Scope, 23, /*->411755*/ // 2 children in Scope
/*411732*/                OPC_MoveChild2,
/*411733*/                OPC_CheckImmAllZerosV,
/*411734*/                OPC_MoveParent,
/*411735*/                OPC_CheckType, MVT::v2f64,
/*411737*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*411739*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*411742*/                OPC_EmitMergeInputChains1_1,
/*411743*/                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>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VRCP14PDZ128mkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*411755*/              /*Scope*/ 22, /*->411778*/
/*411756*/                OPC_RecordChild2, // #3 = $src0
/*411757*/                OPC_CheckType, MVT::v2f64,
/*411759*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*411761*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*411764*/                OPC_EmitMergeInputChains1_1,
/*411765*/                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>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VRCP14PDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*411778*/              0, /*End of Scope*/
/*411779*/            /*SwitchOpcode*/ 57, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->411839
/*411782*/              OPC_RecordMemRef,
/*411783*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*411784*/              OPC_CheckFoldableChainNode,
/*411785*/              OPC_RecordChild1, // #2 = $src
/*411786*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*411788*/              OPC_MoveParent,
/*411789*/              OPC_MoveParent,
/*411790*/              OPC_Scope, 23, /*->411815*/ // 2 children in Scope
/*411792*/                OPC_MoveChild2,
/*411793*/                OPC_CheckImmAllZerosV,
/*411794*/                OPC_MoveParent,
/*411795*/                OPC_CheckType, MVT::v2f64,
/*411797*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*411799*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*411802*/                OPC_EmitMergeInputChains1_1,
/*411803*/                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] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VRCP14PDZ128mbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*411815*/              /*Scope*/ 22, /*->411838*/
/*411816*/                OPC_RecordChild2, // #3 = $src0
/*411817*/                OPC_CheckType, MVT::v2f64,
/*411819*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*411821*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*411824*/                OPC_EmitMergeInputChains1_1,
/*411825*/                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] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VRCP14PDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*411838*/              0, /*End of Scope*/
/*411839*/            0, // EndSwitchOpcode
/*411840*/          /*SwitchOpcode*/ 125, TARGET_VAL(X86ISD::FGETEXP),// ->411968
/*411843*/            OPC_MoveChild0,
/*411844*/            OPC_SwitchOpcode /*2 cases */, 59, TARGET_VAL(ISD::LOAD),// ->411907
/*411848*/              OPC_RecordMemRef,
/*411849*/              OPC_RecordNode, // #1 = 'ld' chained node
/*411850*/              OPC_CheckFoldableChainNode,
/*411851*/              OPC_RecordChild1, // #2 = $src
/*411852*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*411854*/              OPC_CheckPredicate, 9, // Predicate_load
/*411856*/              OPC_MoveParent,
/*411857*/              OPC_MoveParent,
/*411858*/              OPC_Scope, 23, /*->411883*/ // 2 children in Scope
/*411860*/                OPC_MoveChild2,
/*411861*/                OPC_CheckImmAllZerosV,
/*411862*/                OPC_MoveParent,
/*411863*/                OPC_CheckType, MVT::v2f64,
/*411865*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*411867*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*411870*/                OPC_EmitMergeInputChains1_1,
/*411871*/                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, (X86fgetexp:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VGETEXPPDZ128mkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*411883*/              /*Scope*/ 22, /*->411906*/
/*411884*/                OPC_RecordChild2, // #3 = $src0
/*411885*/                OPC_CheckType, MVT::v2f64,
/*411887*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*411889*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*411892*/                OPC_EmitMergeInputChains1_1,
/*411893*/                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, (X86fgetexp:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VGETEXPPDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*411906*/              0, /*End of Scope*/
/*411907*/            /*SwitchOpcode*/ 57, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->411967
/*411910*/              OPC_RecordMemRef,
/*411911*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*411912*/              OPC_CheckFoldableChainNode,
/*411913*/              OPC_RecordChild1, // #2 = $src
/*411914*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*411916*/              OPC_MoveParent,
/*411917*/              OPC_MoveParent,
/*411918*/              OPC_Scope, 23, /*->411943*/ // 2 children in Scope
/*411920*/                OPC_MoveChild2,
/*411921*/                OPC_CheckImmAllZerosV,
/*411922*/                OPC_MoveParent,
/*411923*/                OPC_CheckType, MVT::v2f64,
/*411925*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*411927*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*411930*/                OPC_EmitMergeInputChains1_1,
/*411931*/                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, (X86fgetexp:{ *:[v2f64] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VGETEXPPDZ128mbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*411943*/              /*Scope*/ 22, /*->411966*/
/*411944*/                OPC_RecordChild2, // #3 = $src0
/*411945*/                OPC_CheckType, MVT::v2f64,
/*411947*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*411949*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*411952*/                OPC_EmitMergeInputChains1_1,
/*411953*/                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, (X86fgetexp:{ *:[v2f64] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VGETEXPPDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*411966*/              0, /*End of Scope*/
/*411967*/            0, // EndSwitchOpcode
/*411968*/          /*SwitchOpcode*/ 11|128,1/*139*/, TARGET_VAL(ISD::STRICT_FSQRT),// ->412111
/*411972*/            OPC_RecordNode, // #1 = 'strict_fsqrt' chained node
/*411973*/            OPC_CheckFoldableChainNode,
/*411974*/            OPC_MoveChild1,
/*411975*/            OPC_SwitchOpcode /*2 cases */, 65, TARGET_VAL(ISD::LOAD),// ->412044
/*411979*/              OPC_RecordMemRef,
/*411980*/              OPC_RecordNode, // #2 = 'ld' chained node
/*411981*/              OPC_CheckFoldableChainNode,
/*411982*/              OPC_RecordChild1, // #3 = $src
/*411983*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*411985*/              OPC_CheckPredicate, 9, // Predicate_load
/*411987*/              OPC_MoveParent,
/*411988*/              OPC_MoveParent,
/*411989*/              OPC_Scope, 26, /*->412017*/ // 2 children in Scope
/*411991*/                OPC_MoveChild2,
/*411992*/                OPC_CheckImmAllZerosV,
/*411993*/                OPC_MoveParent,
/*411994*/                OPC_CheckType, MVT::v2f64,
/*411996*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*411998*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*412001*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*412005*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDZ128mkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (strict_fsqrt:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VSQRTPDZ128mkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*412017*/              /*Scope*/ 25, /*->412043*/
/*412018*/                OPC_RecordChild2, // #4 = $src0
/*412019*/                OPC_CheckType, MVT::v2f64,
/*412021*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*412023*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*412026*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*412030*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDZ128mk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (strict_fsqrt:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VSQRTPDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*412043*/              0, /*End of Scope*/
/*412044*/            /*SwitchOpcode*/ 63, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->412110
/*412047*/              OPC_RecordMemRef,
/*412048*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*412049*/              OPC_CheckFoldableChainNode,
/*412050*/              OPC_RecordChild1, // #3 = $src
/*412051*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*412053*/              OPC_MoveParent,
/*412054*/              OPC_MoveParent,
/*412055*/              OPC_Scope, 26, /*->412083*/ // 2 children in Scope
/*412057*/                OPC_MoveChild2,
/*412058*/                OPC_CheckImmAllZerosV,
/*412059*/                OPC_MoveParent,
/*412060*/                OPC_CheckType, MVT::v2f64,
/*412062*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*412064*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*412067*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*412071*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDZ128mbkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (strict_fsqrt:{ *:[v2f64] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VSQRTPDZ128mbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*412083*/              /*Scope*/ 25, /*->412109*/
/*412084*/                OPC_RecordChild2, // #4 = $src0
/*412085*/                OPC_CheckType, MVT::v2f64,
/*412087*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*412089*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #5 #6 #7 #8 #9
/*412092*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*412096*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDZ128mbk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 4, 0, 5, 6, 7, 8, 9, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (strict_fsqrt:{ *:[v2f64] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VSQRTPDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*412109*/              0, /*End of Scope*/
/*412110*/            0, // EndSwitchOpcode
/*412111*/          /*SwitchOpcode*/ 125, TARGET_VAL(ISD::FSQRT),// ->412239
/*412114*/            OPC_MoveChild0,
/*412115*/            OPC_SwitchOpcode /*2 cases */, 59, TARGET_VAL(ISD::LOAD),// ->412178
/*412119*/              OPC_RecordMemRef,
/*412120*/              OPC_RecordNode, // #1 = 'ld' chained node
/*412121*/              OPC_CheckFoldableChainNode,
/*412122*/              OPC_RecordChild1, // #2 = $src
/*412123*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*412125*/              OPC_CheckPredicate, 9, // Predicate_load
/*412127*/              OPC_MoveParent,
/*412128*/              OPC_MoveParent,
/*412129*/              OPC_Scope, 23, /*->412154*/ // 2 children in Scope
/*412131*/                OPC_MoveChild2,
/*412132*/                OPC_CheckImmAllZerosV,
/*412133*/                OPC_MoveParent,
/*412134*/                OPC_CheckType, MVT::v2f64,
/*412136*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*412138*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*412141*/                OPC_EmitMergeInputChains1_1,
/*412142*/                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>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VSQRTPDZ128mkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*412154*/              /*Scope*/ 22, /*->412177*/
/*412155*/                OPC_RecordChild2, // #3 = $src0
/*412156*/                OPC_CheckType, MVT::v2f64,
/*412158*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*412160*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*412163*/                OPC_EmitMergeInputChains1_1,
/*412164*/                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>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VSQRTPDZ128mk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*412177*/              0, /*End of Scope*/
/*412178*/            /*SwitchOpcode*/ 57, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->412238
/*412181*/              OPC_RecordMemRef,
/*412182*/              OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*412183*/              OPC_CheckFoldableChainNode,
/*412184*/              OPC_RecordChild1, // #2 = $src
/*412185*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*412187*/              OPC_MoveParent,
/*412188*/              OPC_MoveParent,
/*412189*/              OPC_Scope, 23, /*->412214*/ // 2 children in Scope
/*412191*/                OPC_MoveChild2,
/*412192*/                OPC_CheckImmAllZerosV,
/*412193*/                OPC_MoveParent,
/*412194*/                OPC_CheckType, MVT::v2f64,
/*412196*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*412198*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*412201*/                OPC_EmitMergeInputChains1_1,
/*412202*/                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] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VSQRTPDZ128mbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*412214*/              /*Scope*/ 22, /*->412237*/
/*412215*/                OPC_RecordChild2, // #3 = $src0
/*412216*/                OPC_CheckType, MVT::v2f64,
/*412218*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*412220*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*412223*/                OPC_EmitMergeInputChains1_1,
/*412224*/                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] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VSQRTPDZ128mbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*412237*/              0, /*End of Scope*/
/*412238*/            0, // EndSwitchOpcode
/*412239*/          /*SwitchOpcode*/ 67, TARGET_VAL(X86ISD::VBROADCAST),// ->412309
/*412242*/            OPC_MoveChild0,
/*412243*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*412246*/            OPC_RecordMemRef,
/*412247*/            OPC_RecordNode, // #1 = 'ld' chained node
/*412248*/            OPC_CheckFoldableChainNode,
/*412249*/            OPC_RecordChild1, // #2 = $src
/*412250*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*412252*/            OPC_CheckPredicate, 9, // Predicate_load
/*412254*/            OPC_CheckPredicate, 58, // Predicate_simple_load
/*412256*/            OPC_CheckType, MVT::v2f64,
/*412258*/            OPC_MoveParent,
/*412259*/            OPC_MoveParent,
/*412260*/            OPC_Scope, 23, /*->412285*/ // 2 children in Scope
/*412262*/              OPC_MoveChild2,
/*412263*/              OPC_CheckImmAllZerosV,
/*412264*/              OPC_MoveParent,
/*412265*/              OPC_CheckType, MVT::v2f64,
/*412267*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*412269*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*412272*/              OPC_EmitMergeInputChains1_1,
/*412273*/              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_simple_load>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                        // Dst: (VMOVDDUPZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*412285*/            /*Scope*/ 22, /*->412308*/
/*412286*/              OPC_RecordChild2, // #3 = $src0
/*412287*/              OPC_CheckType, MVT::v2f64,
/*412289*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*412291*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*412294*/              OPC_EmitMergeInputChains1_1,
/*412295*/              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_simple_load>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                        // Dst: (VMOVDDUPZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*412308*/            0, /*End of Scope*/
/*412309*/          /*SwitchOpcode*/ 2|128,1/*130*/, TARGET_VAL(X86ISD::UNPCKH),// ->412443
/*412313*/            OPC_RecordChild0, // #1 = $src1
/*412314*/            OPC_MoveChild1,
/*412315*/            OPC_SwitchOpcode /*2 cases */, 61, TARGET_VAL(ISD::LOAD),// ->412380
/*412319*/              OPC_RecordMemRef,
/*412320*/              OPC_RecordNode, // #2 = 'ld' chained node
/*412321*/              OPC_CheckFoldableChainNode,
/*412322*/              OPC_RecordChild1, // #3 = $src2
/*412323*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*412325*/              OPC_CheckPredicate, 9, // Predicate_load
/*412327*/              OPC_MoveParent,
/*412328*/              OPC_MoveParent,
/*412329*/              OPC_Scope, 24, /*->412355*/ // 2 children in Scope
/*412331*/                OPC_MoveChild2,
/*412332*/                OPC_CheckImmAllZerosV,
/*412333*/                OPC_MoveParent,
/*412334*/                OPC_CheckType, MVT::v2f64,
/*412336*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*412338*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*412341*/                OPC_EmitMergeInputChains1_2,
/*412342*/                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>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VUNPCKHPDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*412355*/              /*Scope*/ 23, /*->412379*/
/*412356*/                OPC_RecordChild2, // #4 = $src0
/*412357*/                OPC_CheckType, MVT::v2f64,
/*412359*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*412361*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*412364*/                OPC_EmitMergeInputChains1_2,
/*412365*/                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>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VUNPCKHPDZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*412379*/              0, /*End of Scope*/
/*412380*/            /*SwitchOpcode*/ 59, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->412442
/*412383*/              OPC_RecordMemRef,
/*412384*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*412385*/              OPC_CheckFoldableChainNode,
/*412386*/              OPC_RecordChild1, // #3 = $src2
/*412387*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*412389*/              OPC_MoveParent,
/*412390*/              OPC_MoveParent,
/*412391*/              OPC_Scope, 24, /*->412417*/ // 2 children in Scope
/*412393*/                OPC_MoveChild2,
/*412394*/                OPC_CheckImmAllZerosV,
/*412395*/                OPC_MoveParent,
/*412396*/                OPC_CheckType, MVT::v2f64,
/*412398*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*412400*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*412403*/                OPC_EmitMergeInputChains1_2,
/*412404*/                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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VUNPCKHPDZ128rmbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*412417*/              /*Scope*/ 23, /*->412441*/
/*412418*/                OPC_RecordChild2, // #4 = $src0
/*412419*/                OPC_CheckType, MVT::v2f64,
/*412421*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*412423*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*412426*/                OPC_EmitMergeInputChains1_2,
/*412427*/                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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VUNPCKHPDZ128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*412441*/              0, /*End of Scope*/
/*412442*/            0, // EndSwitchOpcode
/*412443*/          /*SwitchOpcode*/ 2|128,1/*130*/, TARGET_VAL(X86ISD::UNPCKL),// ->412577
/*412447*/            OPC_RecordChild0, // #1 = $src1
/*412448*/            OPC_MoveChild1,
/*412449*/            OPC_SwitchOpcode /*2 cases */, 61, TARGET_VAL(ISD::LOAD),// ->412514
/*412453*/              OPC_RecordMemRef,
/*412454*/              OPC_RecordNode, // #2 = 'ld' chained node
/*412455*/              OPC_CheckFoldableChainNode,
/*412456*/              OPC_RecordChild1, // #3 = $src2
/*412457*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*412459*/              OPC_CheckPredicate, 9, // Predicate_load
/*412461*/              OPC_MoveParent,
/*412462*/              OPC_MoveParent,
/*412463*/              OPC_Scope, 24, /*->412489*/ // 2 children in Scope
/*412465*/                OPC_MoveChild2,
/*412466*/                OPC_CheckImmAllZerosV,
/*412467*/                OPC_MoveParent,
/*412468*/                OPC_CheckType, MVT::v2f64,
/*412470*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*412472*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*412475*/                OPC_EmitMergeInputChains1_2,
/*412476*/                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>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VUNPCKLPDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*412489*/              /*Scope*/ 23, /*->412513*/
/*412490*/                OPC_RecordChild2, // #4 = $src0
/*412491*/                OPC_CheckType, MVT::v2f64,
/*412493*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*412495*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*412498*/                OPC_EmitMergeInputChains1_2,
/*412499*/                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>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VUNPCKLPDZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*412513*/              0, /*End of Scope*/
/*412514*/            /*SwitchOpcode*/ 59, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->412576
/*412517*/              OPC_RecordMemRef,
/*412518*/              OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*412519*/              OPC_CheckFoldableChainNode,
/*412520*/              OPC_RecordChild1, // #3 = $src2
/*412521*/              OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*412523*/              OPC_MoveParent,
/*412524*/              OPC_MoveParent,
/*412525*/              OPC_Scope, 24, /*->412551*/ // 2 children in Scope
/*412527*/                OPC_MoveChild2,
/*412528*/                OPC_CheckImmAllZerosV,
/*412529*/                OPC_MoveParent,
/*412530*/                OPC_CheckType, MVT::v2f64,
/*412532*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*412534*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*412537*/                OPC_EmitMergeInputChains1_2,
/*412538*/                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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), immAllZerosV:{ *:[v2f64] }) - Complexity = 32
                          // Dst: (VUNPCKLPDZ128rmbkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*412551*/              /*Scope*/ 23, /*->412575*/
/*412552*/                OPC_RecordChild2, // #4 = $src0
/*412553*/                OPC_CheckType, MVT::v2f64,
/*412555*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*412557*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*412560*/                OPC_EmitMergeInputChains1_2,
/*412561*/                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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), VR128X:{ *:[v2f64] }:$src0) - Complexity = 28
                          // Dst: (VUNPCKLPDZ128rmbk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*412575*/              0, /*End of Scope*/
/*412576*/            0, // EndSwitchOpcode
/*412577*/          /*SwitchOpcode*/ 49|128,1/*177*/, TARGET_VAL(ISD::LOAD),// ->412758
/*412581*/            OPC_RecordMemRef,
/*412582*/            OPC_RecordNode, // #1 = 'ld' chained node
/*412583*/            OPC_CheckFoldableChainNode,
/*412584*/            OPC_RecordChild1, // #2 = $src
/*412585*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*412587*/            OPC_Scope, 56, /*->412645*/ // 4 children in Scope
/*412589*/              OPC_CheckPredicate, 9, // Predicate_load
/*412591*/              OPC_Scope, 26, /*->412619*/ // 2 children in Scope
/*412593*/                OPC_CheckPredicate, 74, // Predicate_alignedload
/*412595*/                OPC_MoveParent,
/*412596*/                OPC_MoveChild2,
/*412597*/                OPC_CheckImmAllZerosV,
/*412598*/                OPC_MoveParent,
/*412599*/                OPC_CheckType, MVT::v2f64,
/*412601*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*412603*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*412606*/                OPC_EmitMergeInputChains1_1,
/*412607*/                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_alignedload>>, immAllZerosV:{ *:[v2f64] }) - Complexity = 29
                          // Dst: (VMOVAPDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*412619*/              /*Scope*/ 24, /*->412644*/
/*412620*/                OPC_MoveParent,
/*412621*/                OPC_MoveChild2,
/*412622*/                OPC_CheckImmAllZerosV,
/*412623*/                OPC_MoveParent,
/*412624*/                OPC_CheckType, MVT::v2f64,
/*412626*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*412628*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*412631*/                OPC_EmitMergeInputChains1_1,
/*412632*/                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>>, immAllZerosV:{ *:[v2f64] }) - Complexity = 29
                          // Dst: (VMOVUPDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*412644*/              0, /*End of Scope*/
/*412645*/            /*Scope*/ 28, /*->412674*/
/*412646*/              OPC_CheckPredicate, 70, // Predicate_extload
/*412648*/              OPC_CheckPredicate, 78, // Predicate_extloadvf32
/*412650*/              OPC_MoveParent,
/*412651*/              OPC_MoveChild2,
/*412652*/              OPC_CheckImmAllZerosV,
/*412653*/              OPC_MoveParent,
/*412654*/              OPC_CheckType, MVT::v2f64,
/*412656*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*412658*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*412661*/              OPC_EmitMergeInputChains1_1,
/*412662*/              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, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadvf32>>, immAllZerosV:{ *:[v2f64] }) - Complexity = 29
                        // Dst: (VCVTPS2PDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*412674*/            /*Scope*/ 54, /*->412729*/
/*412675*/              OPC_CheckPredicate, 9, // Predicate_load
/*412677*/              OPC_Scope, 25, /*->412704*/ // 2 children in Scope
/*412679*/                OPC_CheckPredicate, 74, // Predicate_alignedload
/*412681*/                OPC_MoveParent,
/*412682*/                OPC_RecordChild2, // #3 = $src0
/*412683*/                OPC_CheckType, MVT::v2f64,
/*412685*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*412687*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*412690*/                OPC_EmitMergeInputChains1_1,
/*412691*/                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_alignedload>>, VR128X:{ *:[v2f64] }:$src0) - Complexity = 25
                          // Dst: (VMOVAPDZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*412704*/              /*Scope*/ 23, /*->412728*/
/*412705*/                OPC_MoveParent,
/*412706*/                OPC_RecordChild2, // #3 = $src0
/*412707*/                OPC_CheckType, MVT::v2f64,
/*412709*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*412711*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src1 #4 #5 #6 #7 #8
/*412714*/                OPC_EmitMergeInputChains1_1,
/*412715*/                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>>, VR128X:{ *:[v2f64] }:$src0) - Complexity = 25
                          // Dst: (VMOVUPDZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src1)
/*412728*/              0, /*End of Scope*/
/*412729*/            /*Scope*/ 27, /*->412757*/
/*412730*/              OPC_CheckPredicate, 70, // Predicate_extload
/*412732*/              OPC_CheckPredicate, 78, // Predicate_extloadvf32
/*412734*/              OPC_MoveParent,
/*412735*/              OPC_RecordChild2, // #3 = $src0
/*412736*/              OPC_CheckType, MVT::v2f64,
/*412738*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*412740*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*412743*/              OPC_EmitMergeInputChains1_1,
/*412744*/              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, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadvf32>>, VR128X:{ *:[v2f64] }:$src0) - Complexity = 25
                        // Dst: (VCVTPS2PDZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*412757*/            0, /*End of Scope*/
/*412758*/          /*SwitchOpcode*/ 101, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->412862
/*412761*/            OPC_RecordMemRef,
/*412762*/            OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*412763*/            OPC_CheckFoldableChainNode,
/*412764*/            OPC_RecordChild1, // #2 = $src
/*412765*/            OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*412767*/            OPC_MoveParent,
/*412768*/            OPC_Scope, 45, /*->412815*/ // 2 children in Scope
/*412770*/              OPC_MoveChild2,
/*412771*/              OPC_CheckImmAllZerosV,
/*412772*/              OPC_MoveParent,
/*412773*/              OPC_CheckType, MVT::v2f64,
/*412775*/              OPC_Scope, 18, /*->412795*/ // 2 children in Scope
/*412777*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*412779*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*412782*/                OPC_EmitMergeInputChains1_1,
/*412783*/                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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>, immAllZerosV:{ *:[v2f64] }) - Complexity = 29
                          // Dst: (VMOVDDUPZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*412795*/              /*Scope*/ 18, /*->412814*/
/*412796*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*412798*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*412801*/                OPC_EmitMergeInputChains1_1,
/*412802*/                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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>, immAllZerosV:{ *:[v2f64] }) - Complexity = 29
                          // Dst: (VMOVDDUPZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*412814*/              0, /*End of Scope*/
/*412815*/            /*Scope*/ 45, /*->412861*/
/*412816*/              OPC_RecordChild2, // #3 = $src0
/*412817*/              OPC_CheckType, MVT::v2f64,
/*412819*/              OPC_Scope, 19, /*->412840*/ // 2 children in Scope
/*412821*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*412823*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*412826*/                OPC_EmitMergeInputChains1_1,
/*412827*/                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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src0) - Complexity = 25
                          // Dst: (VMOVDDUPZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*412840*/              /*Scope*/ 19, /*->412860*/
/*412841*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*412843*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #4 #5 #6 #7 #8
/*412846*/                OPC_EmitMergeInputChains1_1,
/*412847*/                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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src0) - Complexity = 25
                          // Dst: (VMOVDDUPZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*412860*/              0, /*End of Scope*/
/*412861*/            0, /*End of Scope*/
/*412862*/          0, // EndSwitchOpcode
/*412863*/        /*Scope*/ 72, /*->412936*/
/*412864*/          OPC_RecordChild1, // #1 = $idx
/*412865*/          OPC_MoveChild1,
/*412866*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/*412869*/          OPC_RecordChild0, // #2 = $src1
/*412870*/          OPC_Scope, 31, /*->412903*/ // 2 children in Scope
/*412872*/            OPC_CheckChild0Type, MVT::v4f64,
/*412874*/            OPC_MoveChild1,
/*412875*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*412878*/            OPC_CheckType, MVT::iPTR,
/*412880*/            OPC_MoveParent,
/*412881*/            OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/*412883*/            OPC_MoveParent,
/*412884*/            OPC_MoveChild2,
/*412885*/            OPC_CheckImmAllZerosV,
/*412886*/            OPC_MoveParent,
/*412887*/            OPC_CheckType, MVT::v2f64,
/*412889*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*412891*/            OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*412894*/            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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$idx, immAllZerosV:{ *:[v2f64] }) - Complexity = 14
                      // Dst: (VEXTRACTF64x2Z256rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR256X:{ *:[v4f64] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } (extract_subvector:{ *:[v2f64] } VR256X:{ *:[v4f64] }:$src1, (imm:{ *:[iPTR] })):$idx))
/*412903*/          /*Scope*/ 31, /*->412935*/
/*412904*/            OPC_CheckChild0Type, MVT::v8f64,
/*412906*/            OPC_MoveChild1,
/*412907*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*412910*/            OPC_CheckType, MVT::iPTR,
/*412912*/            OPC_MoveParent,
/*412913*/            OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/*412915*/            OPC_MoveParent,
/*412916*/            OPC_MoveChild2,
/*412917*/            OPC_CheckImmAllZerosV,
/*412918*/            OPC_MoveParent,
/*412919*/            OPC_CheckType, MVT::v2f64,
/*412921*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*412923*/            OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*412926*/            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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$idx, immAllZerosV:{ *:[v2f64] }) - Complexity = 14
                      // Dst: (VEXTRACTF64x2Zrrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR512:{ *:[v8f64] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } (extract_subvector:{ *:[v2f64] } VR512:{ *:[v8f64] }:$src1, (imm:{ *:[iPTR] })):$idx))
/*412935*/          0, /*End of Scope*/
/*412936*/        /*Scope*/ 26|128,5/*666*/, /*->413604*/
/*412938*/          OPC_MoveChild1,
/*412939*/          OPC_SwitchOpcode /*9 cases */, 48|128,3/*432*/, TARGET_VAL(ISD::BITCAST),// ->413376
/*412944*/            OPC_Scope, 76, /*->413022*/ // 2 children in Scope
/*412946*/              OPC_RecordChild0, // #1 = $ext
/*412947*/              OPC_MoveChild0,
/*412948*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/*412951*/              OPC_RecordChild0, // #2 = $src
/*412952*/              OPC_Scope, 33, /*->412987*/ // 2 children in Scope
/*412954*/                OPC_CheckChild0Type, MVT::v8f32,
/*412956*/                OPC_MoveChild1,
/*412957*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*412960*/                OPC_CheckType, MVT::iPTR,
/*412962*/                OPC_MoveParent,
/*412963*/                OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/*412965*/                OPC_CheckType, MVT::v4f32,
/*412967*/                OPC_MoveParent,
/*412968*/                OPC_MoveParent,
/*412969*/                OPC_RecordChild2, // #3 = $src0
/*412970*/                OPC_CheckType, MVT::v2f64,
/*412972*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*412974*/                OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*412977*/                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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext), VR128X:{ *:[v2f64] }:$src0) - Complexity = 13
                          // Dst: (VEXTRACTF64x2Z256rrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR256X:{ *:[v8f32] }:$src, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v4f32] }:$ext))
/*412987*/              /*Scope*/ 33, /*->413021*/
/*412988*/                OPC_CheckChild0Type, MVT::v16f32,
/*412990*/                OPC_MoveChild1,
/*412991*/                OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*412994*/                OPC_CheckType, MVT::iPTR,
/*412996*/                OPC_MoveParent,
/*412997*/                OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/*412999*/                OPC_CheckType, MVT::v4f32,
/*413001*/                OPC_MoveParent,
/*413002*/                OPC_MoveParent,
/*413003*/                OPC_RecordChild2, // #3 = $src0
/*413004*/                OPC_CheckType, MVT::v2f64,
/*413006*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*413008*/                OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*413011*/                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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext), VR128X:{ *:[v2f64] }:$src0) - Complexity = 13
                          // Dst: (VEXTRACTF64x2Zrrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR512:{ *:[v16f32] }:$src, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v4f32] }:$ext))
/*413021*/              0, /*End of Scope*/
/*413022*/            /*Scope*/ 95|128,2/*351*/, /*->413375*/
/*413024*/              OPC_MoveChild0,
/*413025*/              OPC_SwitchOpcode /*4 cases */, 84, TARGET_VAL(ISD::AND),// ->413113
/*413029*/                OPC_RecordChild0, // #1 = $src1
/*413030*/                OPC_RecordChild1, // #2 = $src2
/*413031*/                OPC_SwitchType /*4 cases */, 18, MVT::v2i64,// ->413052
/*413034*/                  OPC_MoveParent,
/*413035*/                  OPC_MoveParent,
/*413036*/                  OPC_MoveChild2,
/*413037*/                  OPC_CheckImmAllZerosV,
/*413038*/                  OPC_MoveParent,
/*413039*/                  OPC_CheckType, MVT::v2f64,
/*413041*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*413043*/                  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)), immAllZerosV:{ *:[v2f64] }) - Complexity = 13
                            // Dst: (VPANDQZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*413052*/                /*SwitchType*/ 18, MVT::v4i32,// ->413072
/*413054*/                  OPC_MoveParent,
/*413055*/                  OPC_MoveParent,
/*413056*/                  OPC_MoveChild2,
/*413057*/                  OPC_CheckImmAllZerosV,
/*413058*/                  OPC_MoveParent,
/*413059*/                  OPC_CheckType, MVT::v2f64,
/*413061*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*413063*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ128rrkz), 0,
                                MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (and:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)), immAllZerosV:{ *:[v2f64] }) - Complexity = 13
                            // Dst: (VPANDQZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*413072*/                /*SwitchType*/ 18, MVT::v8i16,// ->413092
/*413074*/                  OPC_MoveParent,
/*413075*/                  OPC_MoveParent,
/*413076*/                  OPC_MoveChild2,
/*413077*/                  OPC_CheckImmAllZerosV,
/*413078*/                  OPC_MoveParent,
/*413079*/                  OPC_CheckType, MVT::v2f64,
/*413081*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*413083*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ128rrkz), 0,
                                MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (and:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)), immAllZerosV:{ *:[v2f64] }) - Complexity = 13
                            // Dst: (VPANDQZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*413092*/                /*SwitchType*/ 18, MVT::v16i8,// ->413112
/*413094*/                  OPC_MoveParent,
/*413095*/                  OPC_MoveParent,
/*413096*/                  OPC_MoveChild2,
/*413097*/                  OPC_CheckImmAllZerosV,
/*413098*/                  OPC_MoveParent,
/*413099*/                  OPC_CheckType, MVT::v2f64,
/*413101*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*413103*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ128rrkz), 0,
                                MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (and:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)), immAllZerosV:{ *:[v2f64] }) - Complexity = 13
                            // Dst: (VPANDQZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*413112*/                0, // EndSwitchType
/*413113*/              /*SwitchOpcode*/ 84, TARGET_VAL(ISD::OR),// ->413200
/*413116*/                OPC_RecordChild0, // #1 = $src1
/*413117*/                OPC_RecordChild1, // #2 = $src2
/*413118*/                OPC_SwitchType /*4 cases */, 18, MVT::v2i64,// ->413139
/*413121*/                  OPC_MoveParent,
/*413122*/                  OPC_MoveParent,
/*413123*/                  OPC_MoveChild2,
/*413124*/                  OPC_CheckImmAllZerosV,
/*413125*/                  OPC_MoveParent,
/*413126*/                  OPC_CheckType, MVT::v2f64,
/*413128*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*413130*/                  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)), immAllZerosV:{ *:[v2f64] }) - Complexity = 13
                            // Dst: (VPORQZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*413139*/                /*SwitchType*/ 18, MVT::v4i32,// ->413159
/*413141*/                  OPC_MoveParent,
/*413142*/                  OPC_MoveParent,
/*413143*/                  OPC_MoveChild2,
/*413144*/                  OPC_CheckImmAllZerosV,
/*413145*/                  OPC_MoveParent,
/*413146*/                  OPC_CheckType, MVT::v2f64,
/*413148*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*413150*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ128rrkz), 0,
                                MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (or:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)), immAllZerosV:{ *:[v2f64] }) - Complexity = 13
                            // Dst: (VPORQZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*413159*/                /*SwitchType*/ 18, MVT::v8i16,// ->413179
/*413161*/                  OPC_MoveParent,
/*413162*/                  OPC_MoveParent,
/*413163*/                  OPC_MoveChild2,
/*413164*/                  OPC_CheckImmAllZerosV,
/*413165*/                  OPC_MoveParent,
/*413166*/                  OPC_CheckType, MVT::v2f64,
/*413168*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*413170*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ128rrkz), 0,
                                MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (or:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)), immAllZerosV:{ *:[v2f64] }) - Complexity = 13
                            // Dst: (VPORQZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*413179*/                /*SwitchType*/ 18, MVT::v16i8,// ->413199
/*413181*/                  OPC_MoveParent,
/*413182*/                  OPC_MoveParent,
/*413183*/                  OPC_MoveChild2,
/*413184*/                  OPC_CheckImmAllZerosV,
/*413185*/                  OPC_MoveParent,
/*413186*/                  OPC_CheckType, MVT::v2f64,
/*413188*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*413190*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ128rrkz), 0,
                                MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (or:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)), immAllZerosV:{ *:[v2f64] }) - Complexity = 13
                            // Dst: (VPORQZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*413199*/                0, // EndSwitchType
/*413200*/              /*SwitchOpcode*/ 84, TARGET_VAL(ISD::XOR),// ->413287
/*413203*/                OPC_RecordChild0, // #1 = $src1
/*413204*/                OPC_RecordChild1, // #2 = $src2
/*413205*/                OPC_SwitchType /*4 cases */, 18, MVT::v2i64,// ->413226
/*413208*/                  OPC_MoveParent,
/*413209*/                  OPC_MoveParent,
/*413210*/                  OPC_MoveChild2,
/*413211*/                  OPC_CheckImmAllZerosV,
/*413212*/                  OPC_MoveParent,
/*413213*/                  OPC_CheckType, MVT::v2f64,
/*413215*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*413217*/                  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)), immAllZerosV:{ *:[v2f64] }) - Complexity = 13
                            // Dst: (VPXORQZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*413226*/                /*SwitchType*/ 18, MVT::v4i32,// ->413246
/*413228*/                  OPC_MoveParent,
/*413229*/                  OPC_MoveParent,
/*413230*/                  OPC_MoveChild2,
/*413231*/                  OPC_CheckImmAllZerosV,
/*413232*/                  OPC_MoveParent,
/*413233*/                  OPC_CheckType, MVT::v2f64,
/*413235*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*413237*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ128rrkz), 0,
                                MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (xor:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)), immAllZerosV:{ *:[v2f64] }) - Complexity = 13
                            // Dst: (VPXORQZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*413246*/                /*SwitchType*/ 18, MVT::v8i16,// ->413266
/*413248*/                  OPC_MoveParent,
/*413249*/                  OPC_MoveParent,
/*413250*/                  OPC_MoveChild2,
/*413251*/                  OPC_CheckImmAllZerosV,
/*413252*/                  OPC_MoveParent,
/*413253*/                  OPC_CheckType, MVT::v2f64,
/*413255*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*413257*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ128rrkz), 0,
                                MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (xor:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)), immAllZerosV:{ *:[v2f64] }) - Complexity = 13
                            // Dst: (VPXORQZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*413266*/                /*SwitchType*/ 18, MVT::v16i8,// ->413286
/*413268*/                  OPC_MoveParent,
/*413269*/                  OPC_MoveParent,
/*413270*/                  OPC_MoveChild2,
/*413271*/                  OPC_CheckImmAllZerosV,
/*413272*/                  OPC_MoveParent,
/*413273*/                  OPC_CheckType, MVT::v2f64,
/*413275*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*413277*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ128rrkz), 0,
                                MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (xor:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)), immAllZerosV:{ *:[v2f64] }) - Complexity = 13
                            // Dst: (VPXORQZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*413286*/                0, // EndSwitchType
/*413287*/              /*SwitchOpcode*/ 84, TARGET_VAL(X86ISD::ANDNP),// ->413374
/*413290*/                OPC_RecordChild0, // #1 = $src1
/*413291*/                OPC_RecordChild1, // #2 = $src2
/*413292*/                OPC_SwitchType /*4 cases */, 18, MVT::v2i64,// ->413313
/*413295*/                  OPC_MoveParent,
/*413296*/                  OPC_MoveParent,
/*413297*/                  OPC_MoveChild2,
/*413298*/                  OPC_CheckImmAllZerosV,
/*413299*/                  OPC_MoveParent,
/*413300*/                  OPC_CheckType, MVT::v2f64,
/*413302*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*413304*/                  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)), immAllZerosV:{ *:[v2f64] }) - Complexity = 13
                            // Dst: (VPANDNQZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*413313*/                /*SwitchType*/ 18, MVT::v4i32,// ->413333
/*413315*/                  OPC_MoveParent,
/*413316*/                  OPC_MoveParent,
/*413317*/                  OPC_MoveChild2,
/*413318*/                  OPC_CheckImmAllZerosV,
/*413319*/                  OPC_MoveParent,
/*413320*/                  OPC_CheckType, MVT::v2f64,
/*413322*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*413324*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZ128rrkz), 0,
                                MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (X86andnp:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)), immAllZerosV:{ *:[v2f64] }) - Complexity = 13
                            // Dst: (VPANDNQZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*413333*/                /*SwitchType*/ 18, MVT::v8i16,// ->413353
/*413335*/                  OPC_MoveParent,
/*413336*/                  OPC_MoveParent,
/*413337*/                  OPC_MoveChild2,
/*413338*/                  OPC_CheckImmAllZerosV,
/*413339*/                  OPC_MoveParent,
/*413340*/                  OPC_CheckType, MVT::v2f64,
/*413342*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*413344*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZ128rrkz), 0,
                                MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (X86andnp:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)), immAllZerosV:{ *:[v2f64] }) - Complexity = 13
                            // Dst: (VPANDNQZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*413353*/                /*SwitchType*/ 18, MVT::v16i8,// ->413373
/*413355*/                  OPC_MoveParent,
/*413356*/                  OPC_MoveParent,
/*413357*/                  OPC_MoveChild2,
/*413358*/                  OPC_CheckImmAllZerosV,
/*413359*/                  OPC_MoveParent,
/*413360*/                  OPC_CheckType, MVT::v2f64,
/*413362*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*413364*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZ128rrkz), 0,
                                MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                            // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (X86andnp:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)), immAllZerosV:{ *:[v2f64] }) - Complexity = 13
                            // Dst: (VPANDNQZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*413373*/                0, // EndSwitchType
/*413374*/              0, // EndSwitchOpcode
/*413375*/            0, /*End of Scope*/
/*413376*/          /*SwitchOpcode*/ 24, TARGET_VAL(X86ISD::VPERMILPI),// ->413403
/*413379*/            OPC_RecordChild0, // #1 = $src1
/*413380*/            OPC_RecordChild1, // #2 = $src2
/*413381*/            OPC_MoveChild1,
/*413382*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*413385*/            OPC_MoveParent,
/*413386*/            OPC_MoveParent,
/*413387*/            OPC_MoveChild2,
/*413388*/            OPC_CheckImmAllZerosV,
/*413389*/            OPC_MoveParent,
/*413390*/            OPC_CheckType, MVT::v2f64,
/*413392*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*413394*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZ128rikz), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VPermilpi:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v2f64] }) - Complexity = 13
                      // Dst: (VPERMILPDZ128rikz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, (timm:{ *:[i8] }):$src2)
/*413403*/          /*SwitchOpcode*/ 24, TARGET_VAL(X86ISD::VREDUCE),// ->413430
/*413406*/            OPC_RecordChild0, // #1 = $src1
/*413407*/            OPC_RecordChild1, // #2 = $src2
/*413408*/            OPC_MoveChild1,
/*413409*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*413412*/            OPC_MoveParent,
/*413413*/            OPC_MoveParent,
/*413414*/            OPC_MoveChild2,
/*413415*/            OPC_CheckImmAllZerosV,
/*413416*/            OPC_MoveParent,
/*413417*/            OPC_CheckType, MVT::v2f64,
/*413419*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*413421*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPDZ128rrikz), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VReduce:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v2f64] }) - Complexity = 13
                      // Dst: (VREDUCEPDZ128rrikz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, (timm:{ *:[i32] }):$src2)
/*413430*/          /*SwitchOpcode*/ 27, TARGET_VAL(X86ISD::STRICT_VRNDSCALE),// ->413460
/*413433*/            OPC_RecordNode, // #1 = 'X86strict_VRndScale' chained node
/*413434*/            OPC_CheckFoldableChainNode,
/*413435*/            OPC_RecordChild1, // #2 = $src1
/*413436*/            OPC_RecordChild2, // #3 = $src2
/*413437*/            OPC_MoveChild2,
/*413438*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*413441*/            OPC_MoveParent,
/*413442*/            OPC_MoveParent,
/*413443*/            OPC_MoveChild2,
/*413444*/            OPC_CheckImmAllZerosV,
/*413445*/            OPC_MoveParent,
/*413446*/            OPC_CheckType, MVT::v2f64,
/*413448*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*413450*/            OPC_EmitMergeInputChains1_1,
/*413451*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rrikz), 0|OPFL_Chain,
                          MVT::v2f64, 3/*#Ops*/, 0, 2, 3, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_VRndScale:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v2f64] }) - Complexity = 13
                      // Dst: (VRNDSCALEPDZ128rrikz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, (timm:{ *:[i32] }):$src2)
/*413460*/          /*SwitchOpcode*/ 24, TARGET_VAL(X86ISD::VRNDSCALE),// ->413487
/*413463*/            OPC_RecordChild0, // #1 = $src1
/*413464*/            OPC_RecordChild1, // #2 = $src2
/*413465*/            OPC_MoveChild1,
/*413466*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*413469*/            OPC_MoveParent,
/*413470*/            OPC_MoveParent,
/*413471*/            OPC_MoveChild2,
/*413472*/            OPC_CheckImmAllZerosV,
/*413473*/            OPC_MoveParent,
/*413474*/            OPC_CheckType, MVT::v2f64,
/*413476*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*413478*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rrikz), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VRndScale:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v2f64] }) - Complexity = 13
                      // Dst: (VRNDSCALEPDZ128rrikz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, (timm:{ *:[i32] }):$src2)
/*413487*/          /*SwitchOpcode*/ 24, TARGET_VAL(X86ISD::VGETMANT),// ->413514
/*413490*/            OPC_RecordChild0, // #1 = $src1
/*413491*/            OPC_RecordChild1, // #2 = $src2
/*413492*/            OPC_MoveChild1,
/*413493*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*413496*/            OPC_MoveParent,
/*413497*/            OPC_MoveParent,
/*413498*/            OPC_MoveChild2,
/*413499*/            OPC_CheckImmAllZerosV,
/*413500*/            OPC_MoveParent,
/*413501*/            OPC_CheckType, MVT::v2f64,
/*413503*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*413505*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPDZ128rrikz), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VGetMant:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (timm:{ *:[i32] }):$src2), immAllZerosV:{ *:[v2f64] }) - Complexity = 13
                      // Dst: (VGETMANTPDZ128rrikz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, (timm:{ *:[i32] }):$src2)
/*413514*/          /*SwitchOpcode*/ 26, TARGET_VAL(X86ISD::VRANGE),// ->413543
/*413517*/            OPC_RecordChild0, // #1 = $src1
/*413518*/            OPC_RecordChild1, // #2 = $src2
/*413519*/            OPC_RecordChild2, // #3 = $src3
/*413520*/            OPC_MoveChild2,
/*413521*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*413524*/            OPC_MoveParent,
/*413525*/            OPC_MoveParent,
/*413526*/            OPC_MoveChild2,
/*413527*/            OPC_CheckImmAllZerosV,
/*413528*/            OPC_MoveParent,
/*413529*/            OPC_CheckType, MVT::v2f64,
/*413531*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*413533*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPDZ128rrikz), 0,
                          MVT::v2f64, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VRange:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3), immAllZerosV:{ *:[v2f64] }) - Complexity = 13
                      // Dst: (VRANGEPDZ128rrikz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3)
/*413543*/          /*SwitchOpcode*/ 26, TARGET_VAL(X86ISD::SHUFP),// ->413572
/*413546*/            OPC_RecordChild0, // #1 = $src1
/*413547*/            OPC_RecordChild1, // #2 = $src2
/*413548*/            OPC_RecordChild2, // #3 = $src3
/*413549*/            OPC_MoveChild2,
/*413550*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*413553*/            OPC_MoveParent,
/*413554*/            OPC_MoveParent,
/*413555*/            OPC_MoveChild2,
/*413556*/            OPC_CheckImmAllZerosV,
/*413557*/            OPC_MoveParent,
/*413558*/            OPC_CheckType, MVT::v2f64,
/*413560*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*413562*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPDZ128rrikz), 0,
                          MVT::v2f64, 4/*#Ops*/, 0, 1, 2, 3, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Shufp:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v2f64] }) - Complexity = 13
                      // Dst: (VSHUFPDZ128rrikz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i8] }):$src3)
/*413572*/          /*SwitchOpcode*/ 28, TARGET_VAL(X86ISD::VFIXUPIMM),// ->413603
/*413575*/            OPC_RecordChild0, // #1 = $src1
/*413576*/            OPC_RecordChild1, // #2 = $src2
/*413577*/            OPC_RecordChild2, // #3 = $src3
/*413578*/            OPC_RecordChild3, // #4 = $src4
/*413579*/            OPC_MoveChild3,
/*413580*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*413583*/            OPC_MoveParent,
/*413584*/            OPC_MoveParent,
/*413585*/            OPC_MoveChild2,
/*413586*/            OPC_CheckImmAllZerosV,
/*413587*/            OPC_MoveParent,
/*413588*/            OPC_CheckType, MVT::v2f64,
/*413590*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*413592*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPDZ128rrikz), 0,
                          MVT::v2f64, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VFixupimm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2i64] }:$src3, (timm:{ *:[i32] }):$src4), immAllZerosV:{ *:[v2f64] }) - Complexity = 13
                      // Dst: (VFIXUPIMMPDZ128rrikz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2i64] }:$src3, (timm:{ *:[i32] }):$src4)
/*413603*/          0, // EndSwitchOpcode
/*413604*/        /*Scope*/ 70, /*->413675*/
/*413605*/          OPC_RecordChild1, // #1 = $idx
/*413606*/          OPC_MoveChild1,
/*413607*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/*413610*/          OPC_RecordChild0, // #2 = $src1
/*413611*/          OPC_Scope, 30, /*->413643*/ // 2 children in Scope
/*413613*/            OPC_CheckChild0Type, MVT::v4f64,
/*413615*/            OPC_MoveChild1,
/*413616*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*413619*/            OPC_CheckType, MVT::iPTR,
/*413621*/            OPC_MoveParent,
/*413622*/            OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/*413624*/            OPC_MoveParent,
/*413625*/            OPC_RecordChild2, // #3 = $src0
/*413626*/            OPC_CheckType, MVT::v2f64,
/*413628*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*413630*/            OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*413633*/            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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$idx, VR128X:{ *:[v2f64] }:$src0) - Complexity = 10
                      // 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))
/*413643*/          /*Scope*/ 30, /*->413674*/
/*413644*/            OPC_CheckChild0Type, MVT::v8f64,
/*413646*/            OPC_MoveChild1,
/*413647*/            OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*413650*/            OPC_CheckType, MVT::iPTR,
/*413652*/            OPC_MoveParent,
/*413653*/            OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/*413655*/            OPC_MoveParent,
/*413656*/            OPC_RecordChild2, // #3 = $src0
/*413657*/            OPC_CheckType, MVT::v2f64,
/*413659*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*413661*/            OPC_EmitNodeXForm, 0, 1, // EXTRACT_get_vextract128_imm
/*413664*/            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] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$idx, VR128X:{ *:[v2f64] }:$src0) - Complexity = 10
                      // 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))
/*413674*/          0, /*End of Scope*/
/*413675*/        /*Scope*/ 125|128,11/*1533*/, /*->415210*/
/*413677*/          OPC_MoveChild1,
/*413678*/          OPC_SwitchOpcode /*49 cases */, 45, TARGET_VAL(X86ISD::VPERMV3),// ->413727
/*413682*/            OPC_RecordChild0, // #1 = $src1
/*413683*/            OPC_RecordChild1, // #2 = $src2
/*413684*/            OPC_RecordChild2, // #3 = $src3
/*413685*/            OPC_MoveParent,
/*413686*/            OPC_MoveChild2,
/*413687*/            OPC_Scope, 16, /*->413705*/ // 2 children in Scope
/*413689*/              OPC_CheckImmAllZerosV,
/*413690*/              OPC_MoveParent,
/*413691*/              OPC_CheckType, MVT::v2f64,
/*413693*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*413695*/              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), immAllZerosV:{ *:[v2f64] }) - Complexity = 10
                        // Dst: (VPERMT2PD128rrkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2f64] }:$src3)
/*413705*/            /*Scope*/ 20, /*->413726*/
/*413706*/              OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*413709*/              OPC_CheckChild0Same, 2,
/*413711*/              OPC_MoveParent,
/*413712*/              OPC_CheckType, MVT::v2f64,
/*413714*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*413716*/              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)
/*413726*/            0, /*End of Scope*/
/*413727*/          /*SwitchOpcode*/ 22, TARGET_VAL(ISD::STRICT_FADD),// ->413752
/*413730*/            OPC_RecordNode, // #1 = 'strict_fadd' chained node
/*413731*/            OPC_CheckFoldableChainNode,
/*413732*/            OPC_RecordChild1, // #2 = $src1
/*413733*/            OPC_RecordChild2, // #3 = $src2
/*413734*/            OPC_MoveParent,
/*413735*/            OPC_MoveChild2,
/*413736*/            OPC_CheckImmAllZerosV,
/*413737*/            OPC_MoveParent,
/*413738*/            OPC_CheckType, MVT::v2f64,
/*413740*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*413742*/            OPC_EmitMergeInputChains1_1,
/*413743*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZ128rrkz), 0|OPFL_Chain,
                          MVT::v2f64, 3/*#Ops*/, 0, 2, 3, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (strict_fadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), immAllZerosV:{ *:[v2f64] }) - Complexity = 10
                      // Dst: (VADDPDZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*413752*/          /*SwitchOpcode*/ 19, TARGET_VAL(ISD::FADD),// ->413774
/*413755*/            OPC_RecordChild0, // #1 = $src1
/*413756*/            OPC_RecordChild1, // #2 = $src2
/*413757*/            OPC_MoveParent,
/*413758*/            OPC_MoveChild2,
/*413759*/            OPC_CheckImmAllZerosV,
/*413760*/            OPC_MoveParent,
/*413761*/            OPC_CheckType, MVT::v2f64,
/*413763*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*413765*/            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), immAllZerosV:{ *:[v2f64] }) - Complexity = 10
                      // Dst: (VADDPDZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*413774*/          /*SwitchOpcode*/ 22, TARGET_VAL(ISD::STRICT_FMUL),// ->413799
/*413777*/            OPC_RecordNode, // #1 = 'strict_fmul' chained node
/*413778*/            OPC_CheckFoldableChainNode,
/*413779*/            OPC_RecordChild1, // #2 = $src1
/*413780*/            OPC_RecordChild2, // #3 = $src2
/*413781*/            OPC_MoveParent,
/*413782*/            OPC_MoveChild2,
/*413783*/            OPC_CheckImmAllZerosV,
/*413784*/            OPC_MoveParent,
/*413785*/            OPC_CheckType, MVT::v2f64,
/*413787*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*413789*/            OPC_EmitMergeInputChains1_1,
/*413790*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZ128rrkz), 0|OPFL_Chain,
                          MVT::v2f64, 3/*#Ops*/, 0, 2, 3, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (strict_fmul:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), immAllZerosV:{ *:[v2f64] }) - Complexity = 10
                      // Dst: (VMULPDZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*413799*/          /*SwitchOpcode*/ 19, TARGET_VAL(ISD::FMUL),// ->413821
/*413802*/            OPC_RecordChild0, // #1 = $src1
/*413803*/            OPC_RecordChild1, // #2 = $src2
/*413804*/            OPC_MoveParent,
/*413805*/            OPC_MoveChild2,
/*413806*/            OPC_CheckImmAllZerosV,
/*413807*/            OPC_MoveParent,
/*413808*/            OPC_CheckType, MVT::v2f64,
/*413810*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*413812*/            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), immAllZerosV:{ *:[v2f64] }) - Complexity = 10
                      // Dst: (VMULPDZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*413821*/          /*SwitchOpcode*/ 22, TARGET_VAL(ISD::STRICT_FSUB),// ->413846
/*413824*/            OPC_RecordNode, // #1 = 'strict_fsub' chained node
/*413825*/            OPC_CheckFoldableChainNode,
/*413826*/            OPC_RecordChild1, // #2 = $src1
/*413827*/            OPC_RecordChild2, // #3 = $src2
/*413828*/            OPC_MoveParent,
/*413829*/            OPC_MoveChild2,
/*413830*/            OPC_CheckImmAllZerosV,
/*413831*/            OPC_MoveParent,
/*413832*/            OPC_CheckType, MVT::v2f64,
/*413834*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*413836*/            OPC_EmitMergeInputChains1_1,
/*413837*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDZ128rrkz), 0|OPFL_Chain,
                          MVT::v2f64, 3/*#Ops*/, 0, 2, 3, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (strict_fsub:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), immAllZerosV:{ *:[v2f64] }) - Complexity = 10
                      // Dst: (VSUBPDZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*413846*/          /*SwitchOpcode*/ 19, TARGET_VAL(ISD::FSUB),// ->413868
/*413849*/            OPC_RecordChild0, // #1 = $src1
/*413850*/            OPC_RecordChild1, // #2 = $src2
/*413851*/            OPC_MoveParent,
/*413852*/            OPC_MoveChild2,
/*413853*/            OPC_CheckImmAllZerosV,
/*413854*/            OPC_MoveParent,
/*413855*/            OPC_CheckType, MVT::v2f64,
/*413857*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*413859*/            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), immAllZerosV:{ *:[v2f64] }) - Complexity = 10
                      // Dst: (VSUBPDZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*413868*/          /*SwitchOpcode*/ 22, TARGET_VAL(ISD::STRICT_FDIV),// ->413893
/*413871*/            OPC_RecordNode, // #1 = 'strict_fdiv' chained node
/*413872*/            OPC_CheckFoldableChainNode,
/*413873*/            OPC_RecordChild1, // #2 = $src1
/*413874*/            OPC_RecordChild2, // #3 = $src2
/*413875*/            OPC_MoveParent,
/*413876*/            OPC_MoveChild2,
/*413877*/            OPC_CheckImmAllZerosV,
/*413878*/            OPC_MoveParent,
/*413879*/            OPC_CheckType, MVT::v2f64,
/*413881*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*413883*/            OPC_EmitMergeInputChains1_1,
/*413884*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDZ128rrkz), 0|OPFL_Chain,
                          MVT::v2f64, 3/*#Ops*/, 0, 2, 3, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (strict_fdiv:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2), immAllZerosV:{ *:[v2f64] }) - Complexity = 10
                      // Dst: (VDIVPDZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*413893*/          /*SwitchOpcode*/ 19, TARGET_VAL(ISD::FDIV),// ->413915
/*413896*/            OPC_RecordChild0, // #1 = $src1
/*413897*/            OPC_RecordChild1, // #2 = $src2
/*413898*/            OPC_MoveParent,
/*413899*/            OPC_MoveChild2,
/*413900*/            OPC_CheckImmAllZerosV,
/*413901*/            OPC_MoveParent,
/*413902*/            OPC_CheckType, MVT::v2f64,
/*413904*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*413906*/            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), immAllZerosV:{ *:[v2f64] }) - Complexity = 10
                      // Dst: (VDIVPDZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*413915*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::FMIN),// ->413937
/*413918*/            OPC_RecordChild0, // #1 = $src1
/*413919*/            OPC_RecordChild1, // #2 = $src2
/*413920*/            OPC_MoveParent,
/*413921*/            OPC_MoveChild2,
/*413922*/            OPC_CheckImmAllZerosV,
/*413923*/            OPC_MoveParent,
/*413924*/            OPC_CheckType, MVT::v2f64,
/*413926*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*413928*/            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), immAllZerosV:{ *:[v2f64] }) - Complexity = 10
                      // Dst: (VMINPDZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*413937*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::FMAX),// ->413959
/*413940*/            OPC_RecordChild0, // #1 = $src1
/*413941*/            OPC_RecordChild1, // #2 = $src2
/*413942*/            OPC_MoveParent,
/*413943*/            OPC_MoveChild2,
/*413944*/            OPC_CheckImmAllZerosV,
/*413945*/            OPC_MoveParent,
/*413946*/            OPC_CheckType, MVT::v2f64,
/*413948*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*413950*/            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), immAllZerosV:{ *:[v2f64] }) - Complexity = 10
                      // Dst: (VMAXPDZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*413959*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::FMINC),// ->413981
/*413962*/            OPC_RecordChild0, // #1 = $src1
/*413963*/            OPC_RecordChild1, // #2 = $src2
/*413964*/            OPC_MoveParent,
/*413965*/            OPC_MoveChild2,
/*413966*/            OPC_CheckImmAllZerosV,
/*413967*/            OPC_MoveParent,
/*413968*/            OPC_CheckType, MVT::v2f64,
/*413970*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*413972*/            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), immAllZerosV:{ *:[v2f64] }) - Complexity = 10
                      // Dst: (VMINCPDZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*413981*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::FMAXC),// ->414003
/*413984*/            OPC_RecordChild0, // #1 = $src1
/*413985*/            OPC_RecordChild1, // #2 = $src2
/*413986*/            OPC_MoveParent,
/*413987*/            OPC_MoveChild2,
/*413988*/            OPC_CheckImmAllZerosV,
/*413989*/            OPC_MoveParent,
/*413990*/            OPC_CheckType, MVT::v2f64,
/*413992*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*413994*/            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), immAllZerosV:{ *:[v2f64] }) - Complexity = 10
                      // Dst: (VMAXCPDZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*414003*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::SCALEF),// ->414025
/*414006*/            OPC_RecordChild0, // #1 = $src1
/*414007*/            OPC_RecordChild1, // #2 = $src2
/*414008*/            OPC_MoveParent,
/*414009*/            OPC_MoveChild2,
/*414010*/            OPC_CheckImmAllZerosV,
/*414011*/            OPC_MoveParent,
/*414012*/            OPC_CheckType, MVT::v2f64,
/*414014*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*414016*/            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), immAllZerosV:{ *:[v2f64] }) - Complexity = 10
                      // Dst: (VSCALEFPDZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*414025*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::VPERMILPV),// ->414047
/*414028*/            OPC_RecordChild0, // #1 = $src1
/*414029*/            OPC_RecordChild1, // #2 = $src2
/*414030*/            OPC_MoveParent,
/*414031*/            OPC_MoveChild2,
/*414032*/            OPC_CheckImmAllZerosV,
/*414033*/            OPC_MoveParent,
/*414034*/            OPC_CheckType, MVT::v2f64,
/*414036*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*414038*/            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), immAllZerosV:{ *:[v2f64] }) - Complexity = 10
                      // Dst: (VPERMILPDZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*414047*/          /*SwitchOpcode*/ 24, TARGET_VAL(ISD::STRICT_FMA),// ->414074
/*414050*/            OPC_RecordNode, // #1 = 'X86strict_Fmadd' chained node
/*414051*/            OPC_CheckFoldableChainNode,
/*414052*/            OPC_RecordChild1, // #2 = $src2
/*414053*/            OPC_RecordChild2, // #3 = $src1
/*414054*/            OPC_RecordChild3, // #4 = $src3
/*414055*/            OPC_MoveParent,
/*414056*/            OPC_MoveChild2,
/*414057*/            OPC_CheckImmAllZerosV,
/*414058*/            OPC_MoveParent,
/*414059*/            OPC_CheckType, MVT::v2f64,
/*414061*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*414063*/            OPC_EmitMergeInputChains1_1,
/*414064*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZ128rkz), 0|OPFL_Chain,
                          MVT::v2f64, 4/*#Ops*/, 3, 0, 2, 4, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_Fmadd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src3), immAllZerosV:{ *:[v2f64] }) - Complexity = 10
                      // Dst: (VFMADD213PDZ128rkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src3)
/*414074*/          /*SwitchOpcode*/ 21, TARGET_VAL(ISD::FMA),// ->414098
/*414077*/            OPC_RecordChild0, // #1 = $src2
/*414078*/            OPC_RecordChild1, // #2 = $src1
/*414079*/            OPC_RecordChild2, // #3 = $src3
/*414080*/            OPC_MoveParent,
/*414081*/            OPC_MoveChild2,
/*414082*/            OPC_CheckImmAllZerosV,
/*414083*/            OPC_MoveParent,
/*414084*/            OPC_CheckType, MVT::v2f64,
/*414086*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*414088*/            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), immAllZerosV:{ *:[v2f64] }) - Complexity = 10
                      // Dst: (VFMADD213PDZ128rkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src3)
/*414098*/          /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::FMSUB),// ->414122
/*414101*/            OPC_RecordChild0, // #1 = $src2
/*414102*/            OPC_RecordChild1, // #2 = $src1
/*414103*/            OPC_RecordChild2, // #3 = $src3
/*414104*/            OPC_MoveParent,
/*414105*/            OPC_MoveChild2,
/*414106*/            OPC_CheckImmAllZerosV,
/*414107*/            OPC_MoveParent,
/*414108*/            OPC_CheckType, MVT::v2f64,
/*414110*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*414112*/            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), immAllZerosV:{ *:[v2f64] }) - Complexity = 10
                      // Dst: (VFMSUB213PDZ128rkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src3)
/*414122*/          /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::FMADDSUB),// ->414146
/*414125*/            OPC_RecordChild0, // #1 = $src2
/*414126*/            OPC_RecordChild1, // #2 = $src1
/*414127*/            OPC_RecordChild2, // #3 = $src3
/*414128*/            OPC_MoveParent,
/*414129*/            OPC_MoveChild2,
/*414130*/            OPC_CheckImmAllZerosV,
/*414131*/            OPC_MoveParent,
/*414132*/            OPC_CheckType, MVT::v2f64,
/*414134*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*414136*/            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), immAllZerosV:{ *:[v2f64] }) - Complexity = 10
                      // Dst: (VFMADDSUB213PDZ128rkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src3)
/*414146*/          /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::FMSUBADD),// ->414170
/*414149*/            OPC_RecordChild0, // #1 = $src2
/*414150*/            OPC_RecordChild1, // #2 = $src1
/*414151*/            OPC_RecordChild2, // #3 = $src3
/*414152*/            OPC_MoveParent,
/*414153*/            OPC_MoveChild2,
/*414154*/            OPC_CheckImmAllZerosV,
/*414155*/            OPC_MoveParent,
/*414156*/            OPC_CheckType, MVT::v2f64,
/*414158*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*414160*/            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), immAllZerosV:{ *:[v2f64] }) - Complexity = 10
                      // Dst: (VFMSUBADD213PDZ128rkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src3)
/*414170*/          /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::FNMADD),// ->414194
/*414173*/            OPC_RecordChild0, // #1 = $src2
/*414174*/            OPC_RecordChild1, // #2 = $src1
/*414175*/            OPC_RecordChild2, // #3 = $src3
/*414176*/            OPC_MoveParent,
/*414177*/            OPC_MoveChild2,
/*414178*/            OPC_CheckImmAllZerosV,
/*414179*/            OPC_MoveParent,
/*414180*/            OPC_CheckType, MVT::v2f64,
/*414182*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*414184*/            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), immAllZerosV:{ *:[v2f64] }) - Complexity = 10
                      // Dst: (VFNMADD213PDZ128rkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src3)
/*414194*/          /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::FNMSUB),// ->414218
/*414197*/            OPC_RecordChild0, // #1 = $src2
/*414198*/            OPC_RecordChild1, // #2 = $src1
/*414199*/            OPC_RecordChild2, // #3 = $src3
/*414200*/            OPC_MoveParent,
/*414201*/            OPC_MoveChild2,
/*414202*/            OPC_CheckImmAllZerosV,
/*414203*/            OPC_MoveParent,
/*414204*/            OPC_CheckType, MVT::v2f64,
/*414206*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*414208*/            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), immAllZerosV:{ *:[v2f64] }) - Complexity = 10
                      // Dst: (VFNMSUB213PDZ128rkz:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2f64] }:$src3)
/*414218*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::STRICT_VFPEXT),// ->414241
/*414221*/            OPC_RecordNode, // #1 = 'X86strict_vfpext' chained node
/*414222*/            OPC_CheckFoldableChainNode,
/*414223*/            OPC_RecordChild1, // #2 = $src
/*414224*/            OPC_MoveParent,
/*414225*/            OPC_MoveChild2,
/*414226*/            OPC_CheckImmAllZerosV,
/*414227*/            OPC_MoveParent,
/*414228*/            OPC_CheckType, MVT::v2f64,
/*414230*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*414232*/            OPC_EmitMergeInputChains1_1,
/*414233*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PDZ128rrkz), 0|OPFL_Chain,
                          MVT::v2f64, 2/*#Ops*/, 0, 2, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_vfpext:{ *:[v2f64] } VR128X:{ *:[v4f32] }:$src), immAllZerosV:{ *:[v2f64] }) - Complexity = 10
                      // Dst: (VCVTPS2PDZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*414241*/          /*SwitchOpcode*/ 17, TARGET_VAL(X86ISD::VFPEXT),// ->414261
/*414244*/            OPC_RecordChild0, // #1 = $src
/*414245*/            OPC_MoveParent,
/*414246*/            OPC_MoveChild2,
/*414247*/            OPC_CheckImmAllZerosV,
/*414248*/            OPC_MoveParent,
/*414249*/            OPC_CheckType, MVT::v2f64,
/*414251*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*414253*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PDZ128rrkz), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86vfpext:{ *:[v2f64] } VR128X:{ *:[v4f32] }:$src), immAllZerosV:{ *:[v2f64] }) - Complexity = 10
                      // Dst: (VCVTPS2PDZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*414261*/          /*SwitchOpcode*/ 22, TARGET_VAL(X86ISD::STRICT_CVTSI2P),// ->414286
/*414264*/            OPC_RecordNode, // #1 = 'X86strict_VSintToFP' chained node
/*414265*/            OPC_CheckFoldableChainNode,
/*414266*/            OPC_RecordChild1, // #2 = $src
/*414267*/            OPC_CheckChild1Type, MVT::v4i32,
/*414269*/            OPC_MoveParent,
/*414270*/            OPC_MoveChild2,
/*414271*/            OPC_CheckImmAllZerosV,
/*414272*/            OPC_MoveParent,
/*414273*/            OPC_CheckType, MVT::v2f64,
/*414275*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*414277*/            OPC_EmitMergeInputChains1_1,
/*414278*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDZ128rrkz), 0|OPFL_Chain,
                          MVT::v2f64, 2/*#Ops*/, 0, 2, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_VSintToFP:{ *:[v2f64] } VR128X:{ *:[v4i32] }:$src), immAllZerosV:{ *:[v2f64] }) - Complexity = 10
                      // Dst: (VCVTDQ2PDZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*414286*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::CVTSI2P),// ->414308
/*414289*/            OPC_RecordChild0, // #1 = $src
/*414290*/            OPC_CheckChild0Type, MVT::v4i32,
/*414292*/            OPC_MoveParent,
/*414293*/            OPC_MoveChild2,
/*414294*/            OPC_CheckImmAllZerosV,
/*414295*/            OPC_MoveParent,
/*414296*/            OPC_CheckType, MVT::v2f64,
/*414298*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*414300*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDZ128rrkz), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VSintToFP:{ *:[v2f64] } VR128X:{ *:[v4i32] }:$src), immAllZerosV:{ *:[v2f64] }) - Complexity = 10
                      // Dst: (VCVTDQ2PDZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*414308*/          /*SwitchOpcode*/ 22, TARGET_VAL(X86ISD::STRICT_CVTUI2P),// ->414333
/*414311*/            OPC_RecordNode, // #1 = 'X86strict_VUintToFP' chained node
/*414312*/            OPC_CheckFoldableChainNode,
/*414313*/            OPC_RecordChild1, // #2 = $src
/*414314*/            OPC_CheckChild1Type, MVT::v4i32,
/*414316*/            OPC_MoveParent,
/*414317*/            OPC_MoveChild2,
/*414318*/            OPC_CheckImmAllZerosV,
/*414319*/            OPC_MoveParent,
/*414320*/            OPC_CheckType, MVT::v2f64,
/*414322*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*414324*/            OPC_EmitMergeInputChains1_1,
/*414325*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PDZ128rrkz), 0|OPFL_Chain,
                          MVT::v2f64, 2/*#Ops*/, 0, 2, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_VUintToFP:{ *:[v2f64] } VR128X:{ *:[v4i32] }:$src), immAllZerosV:{ *:[v2f64] }) - Complexity = 10
                      // Dst: (VCVTUDQ2PDZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*414333*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::CVTUI2P),// ->414355
/*414336*/            OPC_RecordChild0, // #1 = $src
/*414337*/            OPC_CheckChild0Type, MVT::v4i32,
/*414339*/            OPC_MoveParent,
/*414340*/            OPC_MoveChild2,
/*414341*/            OPC_CheckImmAllZerosV,
/*414342*/            OPC_MoveParent,
/*414343*/            OPC_CheckType, MVT::v2f64,
/*414345*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*414347*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PDZ128rrkz), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VUintToFP:{ *:[v2f64] } VR128X:{ *:[v4i32] }:$src), immAllZerosV:{ *:[v2f64] }) - Complexity = 10
                      // Dst: (VCVTUDQ2PDZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*414355*/          /*SwitchOpcode*/ 22, TARGET_VAL(ISD::STRICT_SINT_TO_FP),// ->414380
/*414358*/            OPC_RecordNode, // #1 = 'strict_sint_to_fp' chained node
/*414359*/            OPC_CheckFoldableChainNode,
/*414360*/            OPC_RecordChild1, // #2 = $src
/*414361*/            OPC_CheckChild1Type, MVT::v2i64,
/*414363*/            OPC_MoveParent,
/*414364*/            OPC_MoveChild2,
/*414365*/            OPC_CheckImmAllZerosV,
/*414366*/            OPC_MoveParent,
/*414367*/            OPC_CheckType, MVT::v2f64,
/*414369*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*414371*/            OPC_EmitMergeInputChains1_1,
/*414372*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PDZ128rrkz), 0|OPFL_Chain,
                          MVT::v2f64, 2/*#Ops*/, 0, 2, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (strict_sint_to_fp:{ *:[v2f64] } VR128X:{ *:[v2i64] }:$src), immAllZerosV:{ *:[v2f64] }) - Complexity = 10
                      // Dst: (VCVTQQ2PDZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*414380*/          /*SwitchOpcode*/ 19, TARGET_VAL(ISD::SINT_TO_FP),// ->414402
/*414383*/            OPC_RecordChild0, // #1 = $src
/*414384*/            OPC_CheckChild0Type, MVT::v2i64,
/*414386*/            OPC_MoveParent,
/*414387*/            OPC_MoveChild2,
/*414388*/            OPC_CheckImmAllZerosV,
/*414389*/            OPC_MoveParent,
/*414390*/            OPC_CheckType, MVT::v2f64,
/*414392*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*414394*/            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), immAllZerosV:{ *:[v2f64] }) - Complexity = 10
                      // Dst: (VCVTQQ2PDZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*414402*/          /*SwitchOpcode*/ 22, TARGET_VAL(ISD::STRICT_UINT_TO_FP),// ->414427
/*414405*/            OPC_RecordNode, // #1 = 'strict_uint_to_fp' chained node
/*414406*/            OPC_CheckFoldableChainNode,
/*414407*/            OPC_RecordChild1, // #2 = $src
/*414408*/            OPC_CheckChild1Type, MVT::v2i64,
/*414410*/            OPC_MoveParent,
/*414411*/            OPC_MoveChild2,
/*414412*/            OPC_CheckImmAllZerosV,
/*414413*/            OPC_MoveParent,
/*414414*/            OPC_CheckType, MVT::v2f64,
/*414416*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*414418*/            OPC_EmitMergeInputChains1_1,
/*414419*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PDZ128rrkz), 0|OPFL_Chain,
                          MVT::v2f64, 2/*#Ops*/, 0, 2, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (strict_uint_to_fp:{ *:[v2f64] } VR128X:{ *:[v2i64] }:$src), immAllZerosV:{ *:[v2f64] }) - Complexity = 10
                      // Dst: (VCVTUQQ2PDZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*414427*/          /*SwitchOpcode*/ 19, TARGET_VAL(ISD::UINT_TO_FP),// ->414449
/*414430*/            OPC_RecordChild0, // #1 = $src
/*414431*/            OPC_CheckChild0Type, MVT::v2i64,
/*414433*/            OPC_MoveParent,
/*414434*/            OPC_MoveChild2,
/*414435*/            OPC_CheckImmAllZerosV,
/*414436*/            OPC_MoveParent,
/*414437*/            OPC_CheckType, MVT::v2f64,
/*414439*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*414441*/            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), immAllZerosV:{ *:[v2f64] }) - Complexity = 10
                      // Dst: (VCVTUQQ2PDZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*414449*/          /*SwitchOpcode*/ 17, TARGET_VAL(X86ISD::RSQRT14),// ->414469
/*414452*/            OPC_RecordChild0, // #1 = $src
/*414453*/            OPC_MoveParent,
/*414454*/            OPC_MoveChild2,
/*414455*/            OPC_CheckImmAllZerosV,
/*414456*/            OPC_MoveParent,
/*414457*/            OPC_CheckType, MVT::v2f64,
/*414459*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*414461*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14PDZ128rkz), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86rsqrt14:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src), immAllZerosV:{ *:[v2f64] }) - Complexity = 10
                      // Dst: (VRSQRT14PDZ128rkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*414469*/          /*SwitchOpcode*/ 17, TARGET_VAL(X86ISD::RCP14),// ->414489
/*414472*/            OPC_RecordChild0, // #1 = $src
/*414473*/            OPC_MoveParent,
/*414474*/            OPC_MoveChild2,
/*414475*/            OPC_CheckImmAllZerosV,
/*414476*/            OPC_MoveParent,
/*414477*/            OPC_CheckType, MVT::v2f64,
/*414479*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*414481*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14PDZ128rkz), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86rcp14:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src), immAllZerosV:{ *:[v2f64] }) - Complexity = 10
                      // Dst: (VRCP14PDZ128rkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*414489*/          /*SwitchOpcode*/ 17, TARGET_VAL(X86ISD::FGETEXP),// ->414509
/*414492*/            OPC_RecordChild0, // #1 = $src
/*414493*/            OPC_MoveParent,
/*414494*/            OPC_MoveChild2,
/*414495*/            OPC_CheckImmAllZerosV,
/*414496*/            OPC_MoveParent,
/*414497*/            OPC_CheckType, MVT::v2f64,
/*414499*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*414501*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPDZ128rkz), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86fgetexp:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src), immAllZerosV:{ *:[v2f64] }) - Complexity = 10
                      // Dst: (VGETEXPPDZ128rkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*414509*/          /*SwitchOpcode*/ 20, TARGET_VAL(ISD::STRICT_FSQRT),// ->414532
/*414512*/            OPC_RecordNode, // #1 = 'strict_fsqrt' chained node
/*414513*/            OPC_CheckFoldableChainNode,
/*414514*/            OPC_RecordChild1, // #2 = $src
/*414515*/            OPC_MoveParent,
/*414516*/            OPC_MoveChild2,
/*414517*/            OPC_CheckImmAllZerosV,
/*414518*/            OPC_MoveParent,
/*414519*/            OPC_CheckType, MVT::v2f64,
/*414521*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*414523*/            OPC_EmitMergeInputChains1_1,
/*414524*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDZ128rkz), 0|OPFL_Chain,
                          MVT::v2f64, 2/*#Ops*/, 0, 2, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (strict_fsqrt:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src), immAllZerosV:{ *:[v2f64] }) - Complexity = 10
                      // Dst: (VSQRTPDZ128rkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*414532*/          /*SwitchOpcode*/ 17, TARGET_VAL(ISD::FSQRT),// ->414552
/*414535*/            OPC_RecordChild0, // #1 = $src
/*414536*/            OPC_MoveParent,
/*414537*/            OPC_MoveChild2,
/*414538*/            OPC_CheckImmAllZerosV,
/*414539*/            OPC_MoveParent,
/*414540*/            OPC_CheckType, MVT::v2f64,
/*414542*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*414544*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDZ128rkz), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (fsqrt:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src), immAllZerosV:{ *:[v2f64] }) - Complexity = 10
                      // Dst: (VSQRTPDZ128rkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*414552*/          /*SwitchOpcode*/ 52, TARGET_VAL(X86ISD::VBROADCAST),// ->414607
/*414555*/            OPC_RecordChild0, // #1 = $src
/*414556*/            OPC_Scope, 18, /*->414576*/ // 2 children in Scope
/*414558*/              OPC_CheckChild0Type, MVT::v2f64,
/*414560*/              OPC_MoveParent,
/*414561*/              OPC_MoveChild2,
/*414562*/              OPC_CheckImmAllZerosV,
/*414563*/              OPC_MoveParent,
/*414564*/              OPC_CheckType, MVT::v2f64,
/*414566*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*414568*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDDUPZ128rrkz), 0,
                            MVT::v2f64, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VBroadcast:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src), immAllZerosV:{ *:[v2f64] }) - Complexity = 10
                        // Dst: (VMOVDDUPZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*414576*/            /*Scope*/ 29, /*->414606*/
/*414577*/              OPC_CheckChild0Type, MVT::f64,
/*414579*/              OPC_MoveParent,
/*414580*/              OPC_MoveChild2,
/*414581*/              OPC_CheckImmAllZerosV,
/*414582*/              OPC_MoveParent,
/*414583*/              OPC_CheckType, MVT::v2f64,
/*414585*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*414587*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*414590*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 2,  // Results = #3
/*414598*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDDUPZ128rrkz), 0,
                            MVT::v2f64, 2/*#Ops*/, 0, 3, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VBroadcast:{ *:[v2f64] } f64:{ *:[f64] }:$src), immAllZerosV:{ *:[v2f64] }) - Complexity = 10
                        // Dst: (VMOVDDUPZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src, VR128X:{ *:[i32] }))
/*414606*/            0, /*End of Scope*/
/*414607*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::UNPCKH),// ->414629
/*414610*/            OPC_RecordChild0, // #1 = $src1
/*414611*/            OPC_RecordChild1, // #2 = $src2
/*414612*/            OPC_MoveParent,
/*414613*/            OPC_MoveChild2,
/*414614*/            OPC_CheckImmAllZerosV,
/*414615*/            OPC_MoveParent,
/*414616*/            OPC_CheckType, MVT::v2f64,
/*414618*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*414620*/            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), immAllZerosV:{ *:[v2f64] }) - Complexity = 10
                      // Dst: (VUNPCKHPDZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*414629*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::UNPCKL),// ->414651
/*414632*/            OPC_RecordChild0, // #1 = $src1
/*414633*/            OPC_RecordChild1, // #2 = $src2
/*414634*/            OPC_MoveParent,
/*414635*/            OPC_MoveChild2,
/*414636*/            OPC_CheckImmAllZerosV,
/*414637*/            OPC_MoveParent,
/*414638*/            OPC_CheckType, MVT::v2f64,
/*414640*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*414642*/            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), immAllZerosV:{ *:[v2f64] }) - Complexity = 10
                      // Dst: (VUNPCKLPDZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*414651*/          /*SwitchOpcode*/ 79|128,2/*335*/, TARGET_VAL(ISD::BITCAST),// ->414990
/*414655*/            OPC_MoveChild0,
/*414656*/            OPC_SwitchOpcode /*4 cases */, 80, TARGET_VAL(ISD::AND),// ->414740
/*414660*/              OPC_RecordChild0, // #1 = $src1
/*414661*/              OPC_RecordChild1, // #2 = $src2
/*414662*/              OPC_SwitchType /*4 cases */, 17, MVT::v2i64,// ->414682
/*414665*/                OPC_MoveParent,
/*414666*/                OPC_MoveParent,
/*414667*/                OPC_RecordChild2, // #3 = $src0
/*414668*/                OPC_CheckType, MVT::v2f64,
/*414670*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*414672*/                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)
/*414682*/              /*SwitchType*/ 17, MVT::v4i32,// ->414701
/*414684*/                OPC_MoveParent,
/*414685*/                OPC_MoveParent,
/*414686*/                OPC_RecordChild2, // #3 = $src0
/*414687*/                OPC_CheckType, MVT::v2f64,
/*414689*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*414691*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ128rrk), 0,
                              MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (and:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 9
                          // Dst: (VPANDQZ128rrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*414701*/              /*SwitchType*/ 17, MVT::v8i16,// ->414720
/*414703*/                OPC_MoveParent,
/*414704*/                OPC_MoveParent,
/*414705*/                OPC_RecordChild2, // #3 = $src0
/*414706*/                OPC_CheckType, MVT::v2f64,
/*414708*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*414710*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ128rrk), 0,
                              MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (and:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 9
                          // Dst: (VPANDQZ128rrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*414720*/              /*SwitchType*/ 17, MVT::v16i8,// ->414739
/*414722*/                OPC_MoveParent,
/*414723*/                OPC_MoveParent,
/*414724*/                OPC_RecordChild2, // #3 = $src0
/*414725*/                OPC_CheckType, MVT::v2f64,
/*414727*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*414729*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDQZ128rrk), 0,
                              MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (and:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 9
                          // Dst: (VPANDQZ128rrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*414739*/              0, // EndSwitchType
/*414740*/            /*SwitchOpcode*/ 80, TARGET_VAL(ISD::OR),// ->414823
/*414743*/              OPC_RecordChild0, // #1 = $src1
/*414744*/              OPC_RecordChild1, // #2 = $src2
/*414745*/              OPC_SwitchType /*4 cases */, 17, MVT::v2i64,// ->414765
/*414748*/                OPC_MoveParent,
/*414749*/                OPC_MoveParent,
/*414750*/                OPC_RecordChild2, // #3 = $src0
/*414751*/                OPC_CheckType, MVT::v2f64,
/*414753*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*414755*/                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)
/*414765*/              /*SwitchType*/ 17, MVT::v4i32,// ->414784
/*414767*/                OPC_MoveParent,
/*414768*/                OPC_MoveParent,
/*414769*/                OPC_RecordChild2, // #3 = $src0
/*414770*/                OPC_CheckType, MVT::v2f64,
/*414772*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*414774*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ128rrk), 0,
                              MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (or:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 9
                          // Dst: (VPORQZ128rrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*414784*/              /*SwitchType*/ 17, MVT::v8i16,// ->414803
/*414786*/                OPC_MoveParent,
/*414787*/                OPC_MoveParent,
/*414788*/                OPC_RecordChild2, // #3 = $src0
/*414789*/                OPC_CheckType, MVT::v2f64,
/*414791*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*414793*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ128rrk), 0,
                              MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (or:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 9
                          // Dst: (VPORQZ128rrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*414803*/              /*SwitchType*/ 17, MVT::v16i8,// ->414822
/*414805*/                OPC_MoveParent,
/*414806*/                OPC_MoveParent,
/*414807*/                OPC_RecordChild2, // #3 = $src0
/*414808*/                OPC_CheckType, MVT::v2f64,
/*414810*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*414812*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPORQZ128rrk), 0,
                              MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (or:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 9
                          // Dst: (VPORQZ128rrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*414822*/              0, // EndSwitchType
/*414823*/            /*SwitchOpcode*/ 80, TARGET_VAL(ISD::XOR),// ->414906
/*414826*/              OPC_RecordChild0, // #1 = $src1
/*414827*/              OPC_RecordChild1, // #2 = $src2
/*414828*/              OPC_SwitchType /*4 cases */, 17, MVT::v2i64,// ->414848
/*414831*/                OPC_MoveParent,
/*414832*/                OPC_MoveParent,
/*414833*/                OPC_RecordChild2, // #3 = $src0
/*414834*/                OPC_CheckType, MVT::v2f64,
/*414836*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*414838*/                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)
/*414848*/              /*SwitchType*/ 17, MVT::v4i32,// ->414867
/*414850*/                OPC_MoveParent,
/*414851*/                OPC_MoveParent,
/*414852*/                OPC_RecordChild2, // #3 = $src0
/*414853*/                OPC_CheckType, MVT::v2f64,
/*414855*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*414857*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ128rrk), 0,
                              MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (xor:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 9
                          // Dst: (VPXORQZ128rrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*414867*/              /*SwitchType*/ 17, MVT::v8i16,// ->414886
/*414869*/                OPC_MoveParent,
/*414870*/                OPC_MoveParent,
/*414871*/                OPC_RecordChild2, // #3 = $src0
/*414872*/                OPC_CheckType, MVT::v2f64,
/*414874*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*414876*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ128rrk), 0,
                              MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (xor:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 9
                          // Dst: (VPXORQZ128rrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*414886*/              /*SwitchType*/ 17, MVT::v16i8,// ->414905
/*414888*/                OPC_MoveParent,
/*414889*/                OPC_MoveParent,
/*414890*/                OPC_RecordChild2, // #3 = $src0
/*414891*/                OPC_CheckType, MVT::v2f64,
/*414893*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*414895*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPXORQZ128rrk), 0,
                              MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (xor:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 9
                          // Dst: (VPXORQZ128rrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*414905*/              0, // EndSwitchType
/*414906*/            /*SwitchOpcode*/ 80, TARGET_VAL(X86ISD::ANDNP),// ->414989
/*414909*/              OPC_RecordChild0, // #1 = $src1
/*414910*/              OPC_RecordChild1, // #2 = $src2
/*414911*/              OPC_SwitchType /*4 cases */, 17, MVT::v2i64,// ->414931
/*414914*/                OPC_MoveParent,
/*414915*/                OPC_MoveParent,
/*414916*/                OPC_RecordChild2, // #3 = $src0
/*414917*/                OPC_CheckType, MVT::v2f64,
/*414919*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*414921*/                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)
/*414931*/              /*SwitchType*/ 17, MVT::v4i32,// ->414950
/*414933*/                OPC_MoveParent,
/*414934*/                OPC_MoveParent,
/*414935*/                OPC_RecordChild2, // #3 = $src0
/*414936*/                OPC_CheckType, MVT::v2f64,
/*414938*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*414940*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZ128rrk), 0,
                              MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (X86andnp:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 9
                          // Dst: (VPANDNQZ128rrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*414950*/              /*SwitchType*/ 17, MVT::v8i16,// ->414969
/*414952*/                OPC_MoveParent,
/*414953*/                OPC_MoveParent,
/*414954*/                OPC_RecordChild2, // #3 = $src0
/*414955*/                OPC_CheckType, MVT::v2f64,
/*414957*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*414959*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZ128rrk), 0,
                              MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (X86andnp:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 9
                          // Dst: (VPANDNQZ128rrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*414969*/              /*SwitchType*/ 17, MVT::v16i8,// ->414988
/*414971*/                OPC_MoveParent,
/*414972*/                OPC_MoveParent,
/*414973*/                OPC_RecordChild2, // #3 = $src0
/*414974*/                OPC_CheckType, MVT::v2f64,
/*414976*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*414978*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZ128rrk), 0,
                              MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                          // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (bitconvert:{ *:[v2f64] } (X86andnp:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)), VR128X:{ *:[v2f64] }:$src0) - Complexity = 9
                          // Dst: (VPANDNQZ128rrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*414988*/              0, // EndSwitchType
/*414989*/            0, // EndSwitchOpcode
/*414990*/          /*SwitchOpcode*/ 23, TARGET_VAL(X86ISD::VPERMILPI),// ->415016
/*414993*/            OPC_RecordChild0, // #1 = $src1
/*414994*/            OPC_RecordChild1, // #2 = $src2
/*414995*/            OPC_MoveChild1,
/*414996*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*414999*/            OPC_MoveParent,
/*415000*/            OPC_MoveParent,
/*415001*/            OPC_RecordChild2, // #3 = $src0
/*415002*/            OPC_CheckType, MVT::v2f64,
/*415004*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*415006*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZ128rik), 0,
                          MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VPermilpi:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (timm:{ *:[i8] }):$src2), VR128X:{ *:[v2f64] }:$src0) - Complexity = 9
                      // Dst: (VPERMILPDZ128rik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, (timm:{ *:[i8] }):$src2)
/*415016*/          /*SwitchOpcode*/ 23, TARGET_VAL(X86ISD::VREDUCE),// ->415042
/*415019*/            OPC_RecordChild0, // #1 = $src1
/*415020*/            OPC_RecordChild1, // #2 = $src2
/*415021*/            OPC_MoveChild1,
/*415022*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*415025*/            OPC_MoveParent,
/*415026*/            OPC_MoveParent,
/*415027*/            OPC_RecordChild2, // #3 = $src0
/*415028*/            OPC_CheckType, MVT::v2f64,
/*415030*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*415032*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPDZ128rrik), 0,
                          MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VReduce:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (timm:{ *:[i32] }):$src2), VR128X:{ *:[v2f64] }:$src0) - Complexity = 9
                      // Dst: (VREDUCEPDZ128rrik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, (timm:{ *:[i32] }):$src2)
/*415042*/          /*SwitchOpcode*/ 26, TARGET_VAL(X86ISD::STRICT_VRNDSCALE),// ->415071
/*415045*/            OPC_RecordNode, // #1 = 'X86strict_VRndScale' chained node
/*415046*/            OPC_CheckFoldableChainNode,
/*415047*/            OPC_RecordChild1, // #2 = $src1
/*415048*/            OPC_RecordChild2, // #3 = $src2
/*415049*/            OPC_MoveChild2,
/*415050*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*415053*/            OPC_MoveParent,
/*415054*/            OPC_MoveParent,
/*415055*/            OPC_RecordChild2, // #4 = $src0
/*415056*/            OPC_CheckType, MVT::v2f64,
/*415058*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*415060*/            OPC_EmitMergeInputChains1_1,
/*415061*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rrik), 0|OPFL_Chain,
                          MVT::v2f64, 4/*#Ops*/, 4, 0, 2, 3, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_VRndScale:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (timm:{ *:[i32] }):$src2), VR128X:{ *:[v2f64] }:$src0) - Complexity = 9
                      // Dst: (VRNDSCALEPDZ128rrik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, (timm:{ *:[i32] }):$src2)
/*415071*/          /*SwitchOpcode*/ 23, TARGET_VAL(X86ISD::VRNDSCALE),// ->415097
/*415074*/            OPC_RecordChild0, // #1 = $src1
/*415075*/            OPC_RecordChild1, // #2 = $src2
/*415076*/            OPC_MoveChild1,
/*415077*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*415080*/            OPC_MoveParent,
/*415081*/            OPC_MoveParent,
/*415082*/            OPC_RecordChild2, // #3 = $src0
/*415083*/            OPC_CheckType, MVT::v2f64,
/*415085*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*415087*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZ128rrik), 0,
                          MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VRndScale:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (timm:{ *:[i32] }):$src2), VR128X:{ *:[v2f64] }:$src0) - Complexity = 9
                      // Dst: (VRNDSCALEPDZ128rrik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, (timm:{ *:[i32] }):$src2)
/*415097*/          /*SwitchOpcode*/ 23, TARGET_VAL(X86ISD::VGETMANT),// ->415123
/*415100*/            OPC_RecordChild0, // #1 = $src1
/*415101*/            OPC_RecordChild1, // #2 = $src2
/*415102*/            OPC_MoveChild1,
/*415103*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*415106*/            OPC_MoveParent,
/*415107*/            OPC_MoveParent,
/*415108*/            OPC_RecordChild2, // #3 = $src0
/*415109*/            OPC_CheckType, MVT::v2f64,
/*415111*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*415113*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPDZ128rrik), 0,
                          MVT::v2f64, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VGetMant:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (timm:{ *:[i32] }):$src2), VR128X:{ *:[v2f64] }:$src0) - Complexity = 9
                      // Dst: (VGETMANTPDZ128rrik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, (timm:{ *:[i32] }):$src2)
/*415123*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::VRANGE),// ->415151
/*415126*/            OPC_RecordChild0, // #1 = $src1
/*415127*/            OPC_RecordChild1, // #2 = $src2
/*415128*/            OPC_RecordChild2, // #3 = $src3
/*415129*/            OPC_MoveChild2,
/*415130*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*415133*/            OPC_MoveParent,
/*415134*/            OPC_MoveParent,
/*415135*/            OPC_RecordChild2, // #4 = $src0
/*415136*/            OPC_CheckType, MVT::v2f64,
/*415138*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*415140*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPDZ128rrik), 0,
                          MVT::v2f64, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VRange:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3), VR128X:{ *:[v2f64] }:$src0) - Complexity = 9
                      // Dst: (VRANGEPDZ128rrik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3)
/*415151*/          /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::SHUFP),// ->415179
/*415154*/            OPC_RecordChild0, // #1 = $src1
/*415155*/            OPC_RecordChild1, // #2 = $src2
/*415156*/            OPC_RecordChild2, // #3 = $src3
/*415157*/            OPC_MoveChild2,
/*415158*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*415161*/            OPC_MoveParent,
/*415162*/            OPC_MoveParent,
/*415163*/            OPC_RecordChild2, // #4 = $src0
/*415164*/            OPC_CheckType, MVT::v2f64,
/*415166*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*415168*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPDZ128rrik), 0,
                          MVT::v2f64, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86Shufp:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i8] }):$src3), VR128X:{ *:[v2f64] }:$src0) - Complexity = 9
                      // Dst: (VSHUFPDZ128rrik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i8] }):$src3)
/*415179*/          /*SwitchOpcode*/ 27, TARGET_VAL(X86ISD::VFIXUPIMM),// ->415209
/*415182*/            OPC_RecordChild0, // #1 = $src1
/*415183*/            OPC_RecordChild1, // #2 = $src2
/*415184*/            OPC_RecordChild2, // #3 = $src3
/*415185*/            OPC_RecordChild3, // #4 = $src4
/*415186*/            OPC_MoveChild3,
/*415187*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*415190*/            OPC_MoveParent,
/*415191*/            OPC_MoveParent,
/*415192*/            OPC_CheckChild2Same, 1,
/*415194*/            OPC_CheckType, MVT::v2f64,
/*415196*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*415198*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPDZ128rrik), 0,
                          MVT::v2f64, 5/*#Ops*/, 1, 0, 2, 3, 4, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86VFixupimm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2i64] }:$src3, (timm:{ *:[i32] }):$src4), VR128X:{ *:[v2f64] }:$src1) - Complexity = 9
                      // Dst: (VFIXUPIMMPDZ128rrik:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2i64] }:$src3, (timm:{ *:[i32] }):$src4)
/*415209*/          0, // EndSwitchOpcode
/*415210*/        /*Scope*/ 70, /*->415281*/
/*415211*/          OPC_RecordChild1, // #1 = $src
/*415212*/          OPC_MoveChild2,
/*415213*/          OPC_CheckImmAllZerosV,
/*415214*/          OPC_MoveParent,
/*415215*/          OPC_CheckType, MVT::v2f64,
/*415217*/          OPC_Scope, 10, /*->415229*/ // 2 children in Scope
/*415219*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*415221*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPDZ128rrkz), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src, immAllZerosV:{ *:[v2f64] }) - Complexity = 7
                      // Dst: (VMOVAPDZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*415229*/          /*Scope*/ 50, /*->415280*/
/*415230*/            OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*415232*/            OPC_EmitInteger, MVT::i32, X86::VK8WMRegClassID,
/*415235*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*415243*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8f64, 0/*#Ops*/,  // Results = #4
/*415249*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*415252*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8f64, 3/*#Ops*/, 4, 1, 5,  // Results = #6
/*415261*/            OPC_EmitNode1, TARGET_VAL(X86::VMOVAPDZrrkz), 0,
                          MVT::v8f64, 2/*#Ops*/, 3, 6,  // Results = #7
/*415269*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*415272*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                          MVT::v2f64, 2/*#Ops*/, 7, 8, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, immAllZerosV:{ *:[v2f64] }) - Complexity = 7
                      // 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] })
/*415280*/          0, /*End of Scope*/
/*415281*/        /*Scope*/ 119|128,8/*1143*/, /*->416426*/
/*415283*/          OPC_MoveChild1,
/*415284*/          OPC_SwitchOpcode /*40 cases */, 20, TARGET_VAL(X86ISD::VPERMV3),// ->415308
/*415288*/            OPC_RecordChild0, // #1 = $src1
/*415289*/            OPC_RecordChild1, // #2 = $src2
/*415290*/            OPC_RecordChild2, // #3 = $src3
/*415291*/            OPC_MoveParent,
/*415292*/            OPC_CheckChild2Same, 1,
/*415294*/            OPC_CheckType, MVT::v2f64,
/*415296*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*415298*/            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)
/*415308*/          /*SwitchOpcode*/ 21, TARGET_VAL(ISD::STRICT_FADD),// ->415332
/*415311*/            OPC_RecordNode, // #1 = 'strict_fadd' chained node
/*415312*/            OPC_CheckFoldableChainNode,
/*415313*/            OPC_RecordChild1, // #2 = $src1
/*415314*/            OPC_RecordChild2, // #3 = $src2
/*415315*/            OPC_MoveParent,
/*415316*/            OPC_RecordChild2, // #4 = $src0
/*415317*/            OPC_CheckType, MVT::v2f64,
/*415319*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*415321*/            OPC_EmitMergeInputChains1_1,
/*415322*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZ128rrk), 0|OPFL_Chain,
                          MVT::v2f64, 4/*#Ops*/, 4, 0, 2, 3, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (strict_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)
/*415332*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::FADD),// ->415353
/*415335*/            OPC_RecordChild0, // #1 = $src1
/*415336*/            OPC_RecordChild1, // #2 = $src2
/*415337*/            OPC_MoveParent,
/*415338*/            OPC_RecordChild2, // #3 = $src0
/*415339*/            OPC_CheckType, MVT::v2f64,
/*415341*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*415343*/            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)
/*415353*/          /*SwitchOpcode*/ 21, TARGET_VAL(ISD::STRICT_FMUL),// ->415377
/*415356*/            OPC_RecordNode, // #1 = 'strict_fmul' chained node
/*415357*/            OPC_CheckFoldableChainNode,
/*415358*/            OPC_RecordChild1, // #2 = $src1
/*415359*/            OPC_RecordChild2, // #3 = $src2
/*415360*/            OPC_MoveParent,
/*415361*/            OPC_RecordChild2, // #4 = $src0
/*415362*/            OPC_CheckType, MVT::v2f64,
/*415364*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*415366*/            OPC_EmitMergeInputChains1_1,
/*415367*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZ128rrk), 0|OPFL_Chain,
                          MVT::v2f64, 4/*#Ops*/, 4, 0, 2, 3, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (strict_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)
/*415377*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::FMUL),// ->415398
/*415380*/            OPC_RecordChild0, // #1 = $src1
/*415381*/            OPC_RecordChild1, // #2 = $src2
/*415382*/            OPC_MoveParent,
/*415383*/            OPC_RecordChild2, // #3 = $src0
/*415384*/            OPC_CheckType, MVT::v2f64,
/*415386*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*415388*/            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)
/*415398*/          /*SwitchOpcode*/ 21, TARGET_VAL(ISD::STRICT_FSUB),// ->415422
/*415401*/            OPC_RecordNode, // #1 = 'strict_fsub' chained node
/*415402*/            OPC_CheckFoldableChainNode,
/*415403*/            OPC_RecordChild1, // #2 = $src1
/*415404*/            OPC_RecordChild2, // #3 = $src2
/*415405*/            OPC_MoveParent,
/*415406*/            OPC_RecordChild2, // #4 = $src0
/*415407*/            OPC_CheckType, MVT::v2f64,
/*415409*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*415411*/            OPC_EmitMergeInputChains1_1,
/*415412*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDZ128rrk), 0|OPFL_Chain,
                          MVT::v2f64, 4/*#Ops*/, 4, 0, 2, 3, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (strict_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)
/*415422*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::FSUB),// ->415443
/*415425*/            OPC_RecordChild0, // #1 = $src1
/*415426*/            OPC_RecordChild1, // #2 = $src2
/*415427*/            OPC_MoveParent,
/*415428*/            OPC_RecordChild2, // #3 = $src0
/*415429*/            OPC_CheckType, MVT::v2f64,
/*415431*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*415433*/            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)
/*415443*/          /*SwitchOpcode*/ 21, TARGET_VAL(ISD::STRICT_FDIV),// ->415467
/*415446*/            OPC_RecordNode, // #1 = 'strict_fdiv' chained node
/*415447*/            OPC_CheckFoldableChainNode,
/*415448*/            OPC_RecordChild1, // #2 = $src1
/*415449*/            OPC_RecordChild2, // #3 = $src2
/*415450*/            OPC_MoveParent,
/*415451*/            OPC_RecordChild2, // #4 = $src0
/*415452*/            OPC_CheckType, MVT::v2f64,
/*415454*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*415456*/            OPC_EmitMergeInputChains1_1,
/*415457*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDZ128rrk), 0|OPFL_Chain,
                          MVT::v2f64, 4/*#Ops*/, 4, 0, 2, 3, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (strict_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)
/*415467*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::FDIV),// ->415488
/*415470*/            OPC_RecordChild0, // #1 = $src1
/*415471*/            OPC_RecordChild1, // #2 = $src2
/*415472*/            OPC_MoveParent,
/*415473*/            OPC_RecordChild2, // #3 = $src0
/*415474*/            OPC_CheckType, MVT::v2f64,
/*415476*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*415478*/            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)
/*415488*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::FMIN),// ->415509
/*415491*/            OPC_RecordChild0, // #1 = $src1
/*415492*/            OPC_RecordChild1, // #2 = $src2
/*415493*/            OPC_MoveParent,
/*415494*/            OPC_RecordChild2, // #3 = $src0
/*415495*/            OPC_CheckType, MVT::v2f64,
/*415497*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*415499*/            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)
/*415509*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::FMAX),// ->415530
/*415512*/            OPC_RecordChild0, // #1 = $src1
/*415513*/            OPC_RecordChild1, // #2 = $src2
/*415514*/            OPC_MoveParent,
/*415515*/            OPC_RecordChild2, // #3 = $src0
/*415516*/            OPC_CheckType, MVT::v2f64,
/*415518*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*415520*/            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)
/*415530*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::FMINC),// ->415551
/*415533*/            OPC_RecordChild0, // #1 = $src1
/*415534*/            OPC_RecordChild1, // #2 = $src2
/*415535*/            OPC_MoveParent,
/*415536*/            OPC_RecordChild2, // #3 = $src0
/*415537*/            OPC_CheckType, MVT::v2f64,
/*415539*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*415541*/            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)
/*415551*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::FMAXC),// ->415572
/*415554*/            OPC_RecordChild0, // #1 = $src1
/*415555*/            OPC_RecordChild1, // #2 = $src2
/*415556*/            OPC_MoveParent,
/*415557*/            OPC_RecordChild2, // #3 = $src0
/*415558*/            OPC_CheckType, MVT::v2f64,
/*415560*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*415562*/            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)
/*415572*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::SCALEF),// ->415593
/*415575*/            OPC_RecordChild0, // #1 = $src1
/*415576*/            OPC_RecordChild1, // #2 = $src2
/*415577*/            OPC_MoveParent,
/*415578*/            OPC_RecordChild2, // #3 = $src0
/*415579*/            OPC_CheckType, MVT::v2f64,
/*415581*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*415583*/            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), VR128X:{ *:[v2f64] }:$src0) - Complexity = 6
                      // Dst: (VSCALEFPDZ128rrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*415593*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::VPERMILPV),// ->415614
/*415596*/            OPC_RecordChild0, // #1 = $src1
/*415597*/            OPC_RecordChild1, // #2 = $src2
/*415598*/            OPC_MoveParent,
/*415599*/            OPC_RecordChild2, // #3 = $src0
/*415600*/            OPC_CheckType, MVT::v2f64,
/*415602*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*415604*/            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)
/*415614*/          /*SwitchOpcode*/ 58, TARGET_VAL(ISD::STRICT_FMA),// ->415675
/*415617*/            OPC_RecordNode, // #1 = 'X86strict_Fmadd' chained node
/*415618*/            OPC_CheckFoldableChainNode,
/*415619*/            OPC_RecordChild1, // #2 = $src2
/*415620*/            OPC_RecordChild2, // #3 = $src1
/*415621*/            OPC_RecordChild3, // #4 = $src3
/*415622*/            OPC_MoveParent,
/*415623*/            OPC_CheckType, MVT::v2f64,
/*415625*/            OPC_Scope, 15, /*->415642*/ // 3 children in Scope
/*415627*/              OPC_CheckChild2Same, 3,
/*415629*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*415631*/              OPC_EmitMergeInputChains1_1,
/*415632*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213PDZ128rk), 0|OPFL_Chain,
                            MVT::v2f64, 4/*#Ops*/, 3, 0, 2, 4, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_Fmadd:{ *:[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)
/*415642*/            /*Scope*/ 15, /*->415658*/
/*415643*/              OPC_CheckChild2Same, 4,
/*415645*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*415647*/              OPC_EmitMergeInputChains1_1,
/*415648*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231PDZ128rk), 0|OPFL_Chain,
                            MVT::v2f64, 4/*#Ops*/, 4, 0, 2, 3, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_Fmadd:{ *:[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)
/*415658*/            /*Scope*/ 15, /*->415674*/
/*415659*/              OPC_CheckChild2Same, 2,
/*415661*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*415663*/              OPC_EmitMergeInputChains1_1,
/*415664*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132PDZ128rk), 0|OPFL_Chain,
                            MVT::v2f64, 4/*#Ops*/, 2, 0, 4, 3, 
                        // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_Fmadd:{ *:[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)
/*415674*/            0, /*End of Scope*/
/*415675*/          /*SwitchOpcode*/ 53, TARGET_VAL(ISD::FMA),// ->415731
/*415678*/            OPC_RecordChild0, // #1 = $src2
/*415679*/            OPC_RecordChild1, // #2 = $src1
/*415680*/            OPC_RecordChild2, // #3 = $src3
/*415681*/            OPC_MoveParent,
/*415682*/            OPC_CheckType, MVT::v2f64,
/*415684*/            OPC_Scope, 14, /*->415700*/ // 3 children in Scope
/*415686*/              OPC_CheckChild2Same, 2,
/*415688*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*415690*/              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)
/*415700*/            /*Scope*/ 14, /*->415715*/
/*415701*/              OPC_CheckChild2Same, 3,
/*415703*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*415705*/              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)
/*415715*/            /*Scope*/ 14, /*->415730*/
/*415716*/              OPC_CheckChild2Same, 1,
/*415718*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*415720*/              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)
/*415730*/            0, /*End of Scope*/
/*415731*/          /*SwitchOpcode*/ 53, TARGET_VAL(X86ISD::FMSUB),// ->415787
/*415734*/            OPC_RecordChild0, // #1 = $src2
/*415735*/            OPC_RecordChild1, // #2 = $src1
/*415736*/            OPC_RecordChild2, // #3 = $src3
/*415737*/            OPC_MoveParent,
/*415738*/            OPC_CheckType, MVT::v2f64,
/*415740*/            OPC_Scope, 14, /*->415756*/ // 3 children in Scope
/*415742*/              OPC_CheckChild2Same, 2,
/*415744*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*415746*/              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)
/*415756*/            /*Scope*/ 14, /*->415771*/
/*415757*/              OPC_CheckChild2Same, 3,
/*415759*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*415761*/              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)
/*415771*/            /*Scope*/ 14, /*->415786*/
/*415772*/              OPC_CheckChild2Same, 1,
/*415774*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*415776*/              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)
/*415786*/            0, /*End of Scope*/
/*415787*/          /*SwitchOpcode*/ 53, TARGET_VAL(X86ISD::FMADDSUB),// ->415843
/*415790*/            OPC_RecordChild0, // #1 = $src2
/*415791*/            OPC_RecordChild1, // #2 = $src1
/*415792*/            OPC_RecordChild2, // #3 = $src3
/*415793*/            OPC_MoveParent,
/*415794*/            OPC_CheckType, MVT::v2f64,
/*415796*/            OPC_Scope, 14, /*->415812*/ // 3 children in Scope
/*415798*/              OPC_CheckChild2Same, 2,
/*415800*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*415802*/              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)
/*415812*/            /*Scope*/ 14, /*->415827*/
/*415813*/              OPC_CheckChild2Same, 3,
/*415815*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*415817*/              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)
/*415827*/            /*Scope*/ 14, /*->415842*/
/*415828*/              OPC_CheckChild2Same, 1,
/*415830*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*415832*/              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)
/*415842*/            0, /*End of Scope*/
/*415843*/          /*SwitchOpcode*/ 53, TARGET_VAL(X86ISD::FMSUBADD),// ->415899
/*415846*/            OPC_RecordChild0, // #1 = $src2
/*415847*/            OPC_RecordChild1, // #2 = $src1
/*415848*/            OPC_RecordChild2, // #3 = $src3
/*415849*/            OPC_MoveParent,
/*415850*/            OPC_CheckType, MVT::v2f64,
/*415852*/            OPC_Scope, 14, /*->415868*/ // 3 children in Scope
/*415854*/              OPC_CheckChild2Same, 2,
/*415856*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*415858*/              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)
/*415868*/            /*Scope*/ 14, /*->415883*/
/*415869*/              OPC_CheckChild2Same, 3,
/*415871*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*415873*/              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)
/*415883*/            /*Scope*/ 14, /*->415898*/
/*415884*/              OPC_CheckChild2Same, 1,
/*415886*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*415888*/              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)
/*415898*/            0, /*End of Scope*/
/*415899*/          /*SwitchOpcode*/ 53, TARGET_VAL(X86ISD::FNMADD),// ->415955
/*415902*/            OPC_RecordChild0, // #1 = $src2
/*415903*/            OPC_RecordChild1, // #2 = $src1
/*415904*/            OPC_RecordChild2, // #3 = $src3
/*415905*/            OPC_MoveParent,
/*415906*/            OPC_CheckType, MVT::v2f64,
/*415908*/            OPC_Scope, 14, /*->415924*/ // 3 children in Scope
/*415910*/              OPC_CheckChild2Same, 2,
/*415912*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*415914*/              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)
/*415924*/            /*Scope*/ 14, /*->415939*/
/*415925*/              OPC_CheckChild2Same, 3,
/*415927*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*415929*/              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)
/*415939*/            /*Scope*/ 14, /*->415954*/
/*415940*/              OPC_CheckChild2Same, 1,
/*415942*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*415944*/              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)
/*415954*/            0, /*End of Scope*/
/*415955*/          /*SwitchOpcode*/ 53, TARGET_VAL(X86ISD::FNMSUB),// ->416011
/*415958*/            OPC_RecordChild0, // #1 = $src2
/*415959*/            OPC_RecordChild1, // #2 = $src1
/*415960*/            OPC_RecordChild2, // #3 = $src3
/*415961*/            OPC_MoveParent,
/*415962*/            OPC_CheckType, MVT::v2f64,
/*415964*/            OPC_Scope, 14, /*->415980*/ // 3 children in Scope
/*415966*/              OPC_CheckChild2Same, 2,
/*415968*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*415970*/              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)
/*415980*/            /*Scope*/ 14, /*->415995*/
/*415981*/              OPC_CheckChild2Same, 3,
/*415983*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*415985*/              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)
/*415995*/            /*Scope*/ 14, /*->416010*/
/*415996*/              OPC_CheckChild2Same, 1,
/*415998*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*416000*/              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)
/*416010*/            0, /*End of Scope*/
/*416011*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::STRICT_VFPEXT),// ->416033
/*416014*/            OPC_RecordNode, // #1 = 'X86strict_vfpext' chained node
/*416015*/            OPC_CheckFoldableChainNode,
/*416016*/            OPC_RecordChild1, // #2 = $src
/*416017*/            OPC_MoveParent,
/*416018*/            OPC_RecordChild2, // #3 = $src0
/*416019*/            OPC_CheckType, MVT::v2f64,
/*416021*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*416023*/            OPC_EmitMergeInputChains1_1,
/*416024*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PDZ128rrk), 0|OPFL_Chain,
                          MVT::v2f64, 3/*#Ops*/, 3, 0, 2, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_vfpext:{ *:[v2f64] } VR128X:{ *:[v4f32] }:$src), VR128X:{ *:[v2f64] }:$src0) - Complexity = 6
                      // Dst: (VCVTPS2PDZ128rrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*416033*/          /*SwitchOpcode*/ 16, TARGET_VAL(X86ISD::VFPEXT),// ->416052
/*416036*/            OPC_RecordChild0, // #1 = $src
/*416037*/            OPC_MoveParent,
/*416038*/            OPC_RecordChild2, // #2 = $src0
/*416039*/            OPC_CheckType, MVT::v2f64,
/*416041*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*416043*/            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)
/*416052*/          /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::STRICT_CVTSI2P),// ->416076
/*416055*/            OPC_RecordNode, // #1 = 'X86strict_VSintToFP' chained node
/*416056*/            OPC_CheckFoldableChainNode,
/*416057*/            OPC_RecordChild1, // #2 = $src
/*416058*/            OPC_CheckChild1Type, MVT::v4i32,
/*416060*/            OPC_MoveParent,
/*416061*/            OPC_RecordChild2, // #3 = $src0
/*416062*/            OPC_CheckType, MVT::v2f64,
/*416064*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*416066*/            OPC_EmitMergeInputChains1_1,
/*416067*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDZ128rrk), 0|OPFL_Chain,
                          MVT::v2f64, 3/*#Ops*/, 3, 0, 2, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_VSintToFP:{ *:[v2f64] } VR128X:{ *:[v4i32] }:$src), VR128X:{ *:[v2f64] }:$src0) - Complexity = 6
                      // Dst: (VCVTDQ2PDZ128rrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*416076*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::CVTSI2P),// ->416097
/*416079*/            OPC_RecordChild0, // #1 = $src
/*416080*/            OPC_CheckChild0Type, MVT::v4i32,
/*416082*/            OPC_MoveParent,
/*416083*/            OPC_RecordChild2, // #2 = $src0
/*416084*/            OPC_CheckType, MVT::v2f64,
/*416086*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*416088*/            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)
/*416097*/          /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::STRICT_CVTUI2P),// ->416121
/*416100*/            OPC_RecordNode, // #1 = 'X86strict_VUintToFP' chained node
/*416101*/            OPC_CheckFoldableChainNode,
/*416102*/            OPC_RecordChild1, // #2 = $src
/*416103*/            OPC_CheckChild1Type, MVT::v4i32,
/*416105*/            OPC_MoveParent,
/*416106*/            OPC_RecordChild2, // #3 = $src0
/*416107*/            OPC_CheckType, MVT::v2f64,
/*416109*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*416111*/            OPC_EmitMergeInputChains1_1,
/*416112*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PDZ128rrk), 0|OPFL_Chain,
                          MVT::v2f64, 3/*#Ops*/, 3, 0, 2, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86strict_VUintToFP:{ *:[v2f64] } VR128X:{ *:[v4i32] }:$src), VR128X:{ *:[v2f64] }:$src0) - Complexity = 6
                      // Dst: (VCVTUDQ2PDZ128rrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*416121*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::CVTUI2P),// ->416142
/*416124*/            OPC_RecordChild0, // #1 = $src
/*416125*/            OPC_CheckChild0Type, MVT::v4i32,
/*416127*/            OPC_MoveParent,
/*416128*/            OPC_RecordChild2, // #2 = $src0
/*416129*/            OPC_CheckType, MVT::v2f64,
/*416131*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*416133*/            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)
/*416142*/          /*SwitchOpcode*/ 21, TARGET_VAL(ISD::STRICT_SINT_TO_FP),// ->416166
/*416145*/            OPC_RecordNode, // #1 = 'strict_sint_to_fp' chained node
/*416146*/            OPC_CheckFoldableChainNode,
/*416147*/            OPC_RecordChild1, // #2 = $src
/*416148*/            OPC_CheckChild1Type, MVT::v2i64,
/*416150*/            OPC_MoveParent,
/*416151*/            OPC_RecordChild2, // #3 = $src0
/*416152*/            OPC_CheckType, MVT::v2f64,
/*416154*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*416156*/            OPC_EmitMergeInputChains1_1,
/*416157*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PDZ128rrk), 0|OPFL_Chain,
                          MVT::v2f64, 3/*#Ops*/, 3, 0, 2, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (strict_sint_to_fp:{ *:[v2f64] } VR128X:{ *:[v2i64] }:$src), VR128X:{ *:[v2f64] }:$src0) - Complexity = 6
                      // Dst: (VCVTQQ2PDZ128rrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*416166*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::SINT_TO_FP),// ->416187
/*416169*/            OPC_RecordChild0, // #1 = $src
/*416170*/            OPC_CheckChild0Type, MVT::v2i64,
/*416172*/            OPC_MoveParent,
/*416173*/            OPC_RecordChild2, // #2 = $src0
/*416174*/            OPC_CheckType, MVT::v2f64,
/*416176*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*416178*/            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)
/*416187*/          /*SwitchOpcode*/ 21, TARGET_VAL(ISD::STRICT_UINT_TO_FP),// ->416211
/*416190*/            OPC_RecordNode, // #1 = 'strict_uint_to_fp' chained node
/*416191*/            OPC_CheckFoldableChainNode,
/*416192*/            OPC_RecordChild1, // #2 = $src
/*416193*/            OPC_CheckChild1Type, MVT::v2i64,
/*416195*/            OPC_MoveParent,
/*416196*/            OPC_RecordChild2, // #3 = $src0
/*416197*/            OPC_CheckType, MVT::v2f64,
/*416199*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*416201*/            OPC_EmitMergeInputChains1_1,
/*416202*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PDZ128rrk), 0|OPFL_Chain,
                          MVT::v2f64, 3/*#Ops*/, 3, 0, 2, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (strict_uint_to_fp:{ *:[v2f64] } VR128X:{ *:[v2i64] }:$src), VR128X:{ *:[v2f64] }:$src0) - Complexity = 6
                      // Dst: (VCVTUQQ2PDZ128rrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*416211*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::UINT_TO_FP),// ->416232
/*416214*/            OPC_RecordChild0, // #1 = $src
/*416215*/            OPC_CheckChild0Type, MVT::v2i64,
/*416217*/            OPC_MoveParent,
/*416218*/            OPC_RecordChild2, // #2 = $src0
/*416219*/            OPC_CheckType, MVT::v2f64,
/*416221*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*416223*/            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)
/*416232*/          /*SwitchOpcode*/ 16, TARGET_VAL(X86ISD::RSQRT14),// ->416251
/*416235*/            OPC_RecordChild0, // #1 = $src
/*416236*/            OPC_MoveParent,
/*416237*/            OPC_RecordChild2, // #2 = $src0
/*416238*/            OPC_CheckType, MVT::v2f64,
/*416240*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*416242*/            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)
/*416251*/          /*SwitchOpcode*/ 16, TARGET_VAL(X86ISD::RCP14),// ->416270
/*416254*/            OPC_RecordChild0, // #1 = $src
/*416255*/            OPC_MoveParent,
/*416256*/            OPC_RecordChild2, // #2 = $src0
/*416257*/            OPC_CheckType, MVT::v2f64,
/*416259*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*416261*/            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)
/*416270*/          /*SwitchOpcode*/ 16, TARGET_VAL(X86ISD::FGETEXP),// ->416289
/*416273*/            OPC_RecordChild0, // #1 = $src
/*416274*/            OPC_MoveParent,
/*416275*/            OPC_RecordChild2, // #2 = $src0
/*416276*/            OPC_CheckType, MVT::v2f64,
/*416278*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*416280*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPDZ128rk), 0,
                          MVT::v2f64, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (X86fgetexp:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src), VR128X:{ *:[v2f64] }:$src0) - Complexity = 6
                      // Dst: (VGETEXPPDZ128rk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*416289*/          /*SwitchOpcode*/ 19, TARGET_VAL(ISD::STRICT_FSQRT),// ->416311
/*416292*/            OPC_RecordNode, // #1 = 'strict_fsqrt' chained node
/*416293*/            OPC_CheckFoldableChainNode,
/*416294*/            OPC_RecordChild1, // #2 = $src
/*416295*/            OPC_MoveParent,
/*416296*/            OPC_RecordChild2, // #3 = $src0
/*416297*/            OPC_CheckType, MVT::v2f64,
/*416299*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*416301*/            OPC_EmitMergeInputChains1_1,
/*416302*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDZ128rk), 0|OPFL_Chain,
                          MVT::v2f64, 3/*#Ops*/, 3, 0, 2, 
                      // Src: (vselect:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, (strict_fsqrt:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src), VR128X:{ *:[v2f64] }:$src0) - Complexity = 6
                      // Dst: (VSQRTPDZ128rk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*416311*/          /*SwitchOpcode*/ 16, TARGET_VAL(ISD::FSQRT),// ->416330
/*416314*/            OPC_RecordChild0, // #1 = $src
/*416315*/            OPC_MoveParent,
/*416316*/            OPC_RecordChild2, // #2 = $src0
/*416317*/            OPC_CheckType, MVT::v2f64,
/*416319*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*416321*/            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)
/*416330*/          /*SwitchOpcode*/ 50, TARGET_VAL(X86ISD::VBROADCAST),// ->416383
/*416333*/            OPC_RecordChild0, // #1 = $src
/*416334*/            OPC_Scope, 17, /*->416353*/ // 2 children in Scope
/*416336*/              OPC_CheckChild0Type, MVT::v2f64,
/*416338*/              OPC_MoveParent,
/*416339*/              OPC_RecordChild2, // #2 = $src0
/*416340*/              OPC_CheckType, MVT::v2f64,
/*416342*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*416344*/              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)
/*416353*/            /*Scope*/ 28, /*->416382*/
/*416354*/              OPC_CheckChild0Type, MVT::f64,
/*416356*/              OPC_MoveParent,
/*416357*/              OPC_RecordChild2, // #2 = $src0
/*416358*/              OPC_CheckType, MVT::v2f64,
/*416360*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*416362*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*416365*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 3,  // Results = #4
/*416373*/              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] }))
/*416382*/            0, /*End of Scope*/
/*416383*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::UNPCKH),// ->416404
/*416386*/            OPC_RecordChild0, // #1 = $src1
/*416387*/            OPC_RecordChild1, // #2 = $src2
/*416388*/            OPC_MoveParent,
/*416389*/            OPC_RecordChild2, // #3 = $src0
/*416390*/            OPC_CheckType, MVT::v2f64,
/*416392*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*416394*/            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)
/*416404*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::UNPCKL),// ->416425
/*416407*/            OPC_RecordChild0, // #1 = $src1
/*416408*/            OPC_RecordChild1, // #2 = $src2
/*416409*/            OPC_MoveParent,
/*416410*/            OPC_RecordChild2, // #3 = $src0
/*416411*/            OPC_CheckType, MVT::v2f64,
/*416413*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*416415*/            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)
/*416425*/          0, // EndSwitchOpcode
/*416426*/        /*Scope*/ 88, /*->416515*/
/*416427*/          OPC_RecordChild1, // #1 = $src1
/*416428*/          OPC_RecordChild2, // #2 = $src0
/*416429*/          OPC_CheckType, MVT::v2f64,
/*416431*/          OPC_Scope, 11, /*->416444*/ // 2 children in Scope
/*416433*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*416435*/            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)
/*416444*/          /*Scope*/ 69, /*->416514*/
/*416445*/            OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*416447*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8f64, 0/*#Ops*/,  // Results = #3
/*416453*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*416456*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8f64, 3/*#Ops*/, 3, 2, 4,  // Results = #5
/*416465*/            OPC_EmitInteger, MVT::i32, X86::VK8WMRegClassID,
/*416468*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v8i1, 2/*#Ops*/, 0, 6,  // Results = #7
/*416476*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8f64, 0/*#Ops*/,  // Results = #8
/*416482*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*416485*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8f64, 3/*#Ops*/, 8, 1, 9,  // Results = #10
/*416494*/            OPC_EmitNode1, TARGET_VAL(X86::VMOVAPDZrrk), 0,
                          MVT::v8f64, 3/*#Ops*/, 5, 7, 10,  // Results = #11
/*416503*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*416506*/            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] })
/*416514*/          0, /*End of Scope*/
/*416515*/        0, /*End of Scope*/
/*416516*/      /*Scope*/ 94|128,26/*3422*/, /*->419940*/
/*416518*/        OPC_CheckChild0Type, MVT::v32i1,
/*416520*/        OPC_Scope, 81|128,14/*1873*/, /*->418396*/ // 4 children in Scope
/*416523*/          OPC_MoveChild1,
/*416524*/          OPC_SwitchOpcode /*53 cases */, 43, TARGET_VAL(X86ISD::VSRLI),// ->416571
/*416528*/            OPC_RecordChild0, // #1 = $src1
/*416529*/            OPC_RecordChild1, // #2 = $src2
/*416530*/            OPC_MoveChild1,
/*416531*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*416534*/            OPC_MoveParent,
/*416535*/            OPC_MoveParent,
/*416536*/            OPC_Scope, 16, /*->416554*/ // 2 children in Scope
/*416538*/              OPC_MoveChild2,
/*416539*/              OPC_CheckImmAllZerosV,
/*416540*/              OPC_MoveParent,
/*416541*/              OPC_CheckType, MVT::v32i16,
/*416543*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*416545*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLWZrikz), 0,
                            MVT::v32i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86vsrli:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v32i16] }) - Complexity = 13
                        // Dst: (VPSRLWZrikz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, (timm:{ *:[i8] }):$src2)
/*416554*/            /*Scope*/ 15, /*->416570*/
/*416555*/              OPC_RecordChild2, // #3 = $src0
/*416556*/              OPC_CheckType, MVT::v32i16,
/*416558*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*416560*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLWZrik), 0,
                            MVT::v32i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86vsrli:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (timm:{ *:[i8] }):$src2), VR512:{ *:[v32i16] }:$src0) - Complexity = 9
                        // Dst: (VPSRLWZrik:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, (timm:{ *:[i8] }):$src2)
/*416570*/            0, /*End of Scope*/
/*416571*/          /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::VSHLI),// ->416617
/*416574*/            OPC_RecordChild0, // #1 = $src1
/*416575*/            OPC_RecordChild1, // #2 = $src2
/*416576*/            OPC_MoveChild1,
/*416577*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*416580*/            OPC_MoveParent,
/*416581*/            OPC_MoveParent,
/*416582*/            OPC_Scope, 16, /*->416600*/ // 2 children in Scope
/*416584*/              OPC_MoveChild2,
/*416585*/              OPC_CheckImmAllZerosV,
/*416586*/              OPC_MoveParent,
/*416587*/              OPC_CheckType, MVT::v32i16,
/*416589*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*416591*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLWZrikz), 0,
                            MVT::v32i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86vshli:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v32i16] }) - Complexity = 13
                        // Dst: (VPSLLWZrikz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, (timm:{ *:[i8] }):$src2)
/*416600*/            /*Scope*/ 15, /*->416616*/
/*416601*/              OPC_RecordChild2, // #3 = $src0
/*416602*/              OPC_CheckType, MVT::v32i16,
/*416604*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*416606*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLWZrik), 0,
                            MVT::v32i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86vshli:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (timm:{ *:[i8] }):$src2), VR512:{ *:[v32i16] }:$src0) - Complexity = 9
                        // Dst: (VPSLLWZrik:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, (timm:{ *:[i8] }):$src2)
/*416616*/            0, /*End of Scope*/
/*416617*/          /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::VSRAI),// ->416663
/*416620*/            OPC_RecordChild0, // #1 = $src1
/*416621*/            OPC_RecordChild1, // #2 = $src2
/*416622*/            OPC_MoveChild1,
/*416623*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*416626*/            OPC_MoveParent,
/*416627*/            OPC_MoveParent,
/*416628*/            OPC_Scope, 16, /*->416646*/ // 2 children in Scope
/*416630*/              OPC_MoveChild2,
/*416631*/              OPC_CheckImmAllZerosV,
/*416632*/              OPC_MoveParent,
/*416633*/              OPC_CheckType, MVT::v32i16,
/*416635*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*416637*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAWZrikz), 0,
                            MVT::v32i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86vsrai:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v32i16] }) - Complexity = 13
                        // Dst: (VPSRAWZrikz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, (timm:{ *:[i8] }):$src2)
/*416646*/            /*Scope*/ 15, /*->416662*/
/*416647*/              OPC_RecordChild2, // #3 = $src0
/*416648*/              OPC_CheckType, MVT::v32i16,
/*416650*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*416652*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAWZrik), 0,
                            MVT::v32i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86vsrai:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (timm:{ *:[i8] }):$src2), VR512:{ *:[v32i16] }:$src0) - Complexity = 9
                        // Dst: (VPSRAWZrik:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, (timm:{ *:[i8] }):$src2)
/*416662*/            0, /*End of Scope*/
/*416663*/          /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::PSHUFHW),// ->416709
/*416666*/            OPC_RecordChild0, // #1 = $src1
/*416667*/            OPC_RecordChild1, // #2 = $src2
/*416668*/            OPC_MoveChild1,
/*416669*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*416672*/            OPC_MoveParent,
/*416673*/            OPC_MoveParent,
/*416674*/            OPC_Scope, 16, /*->416692*/ // 2 children in Scope
/*416676*/              OPC_MoveChild2,
/*416677*/              OPC_CheckImmAllZerosV,
/*416678*/              OPC_MoveParent,
/*416679*/              OPC_CheckType, MVT::v32i16,
/*416681*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*416683*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFHWZrikz), 0,
                            MVT::v32i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86PShufhw:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v32i16] }) - Complexity = 13
                        // Dst: (VPSHUFHWZrikz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, (timm:{ *:[i8] }):$src2)
/*416692*/            /*Scope*/ 15, /*->416708*/
/*416693*/              OPC_RecordChild2, // #3 = $src0
/*416694*/              OPC_CheckType, MVT::v32i16,
/*416696*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*416698*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFHWZrik), 0,
                            MVT::v32i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86PShufhw:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (timm:{ *:[i8] }):$src2), VR512:{ *:[v32i16] }:$src0) - Complexity = 9
                        // Dst: (VPSHUFHWZrik:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, (timm:{ *:[i8] }):$src2)
/*416708*/            0, /*End of Scope*/
/*416709*/          /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::PSHUFLW),// ->416755
/*416712*/            OPC_RecordChild0, // #1 = $src1
/*416713*/            OPC_RecordChild1, // #2 = $src2
/*416714*/            OPC_MoveChild1,
/*416715*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*416718*/            OPC_MoveParent,
/*416719*/            OPC_MoveParent,
/*416720*/            OPC_Scope, 16, /*->416738*/ // 2 children in Scope
/*416722*/              OPC_MoveChild2,
/*416723*/              OPC_CheckImmAllZerosV,
/*416724*/              OPC_MoveParent,
/*416725*/              OPC_CheckType, MVT::v32i16,
/*416727*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*416729*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFLWZrikz), 0,
                            MVT::v32i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86PShuflw:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (timm:{ *:[i8] }):$src2), immAllZerosV:{ *:[v32i16] }) - Complexity = 13
                        // Dst: (VPSHUFLWZrikz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, (timm:{ *:[i8] }):$src2)
/*416738*/            /*Scope*/ 15, /*->416754*/
/*416739*/              OPC_RecordChild2, // #3 = $src0
/*416740*/              OPC_CheckType, MVT::v32i16,
/*416742*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*416744*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFLWZrik), 0,
                            MVT::v32i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86PShuflw:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (timm:{ *:[i8] }):$src2), VR512:{ *:[v32i16] }:$src0) - Complexity = 9
                        // Dst: (VPSHUFLWZrik:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, (timm:{ *:[i8] }):$src2)
/*416754*/            0, /*End of Scope*/
/*416755*/          /*SwitchOpcode*/ 46, TARGET_VAL(X86ISD::PALIGNR),// ->416804
/*416758*/            OPC_RecordChild0, // #1 = $src1
/*416759*/            OPC_RecordChild1, // #2 = $src2
/*416760*/            OPC_RecordChild2, // #3 = $src3
/*416761*/            OPC_MoveChild2,
/*416762*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*416765*/            OPC_MoveParent,
/*416766*/            OPC_MoveParent,
/*416767*/            OPC_Scope, 17, /*->416786*/ // 2 children in Scope
/*416769*/              OPC_MoveChild2,
/*416770*/              OPC_CheckImmAllZerosV,
/*416771*/              OPC_MoveParent,
/*416772*/              OPC_CheckType, MVT::v32i8,
/*416774*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*416776*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPALIGNRZ256rrikz), 0,
                            MVT::v32i8, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86PAlignr:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v32i8] }) - Complexity = 13
                        // Dst: (VPALIGNRZ256rrikz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (timm:{ *:[i8] }):$src3)
/*416786*/            /*Scope*/ 16, /*->416803*/
/*416787*/              OPC_RecordChild2, // #4 = $src0
/*416788*/              OPC_CheckType, MVT::v32i8,
/*416790*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*416792*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPALIGNRZ256rrik), 0,
                            MVT::v32i8, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86PAlignr:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (timm:{ *:[i8] }):$src3), VR256X:{ *:[v32i8] }:$src0) - Complexity = 9
                        // Dst: (VPALIGNRZ256rrik:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (timm:{ *:[i8] }):$src3)
/*416803*/            0, /*End of Scope*/
/*416804*/          /*SwitchOpcode*/ 46, TARGET_VAL(X86ISD::DBPSADBW),// ->416853
/*416807*/            OPC_RecordChild0, // #1 = $src1
/*416808*/            OPC_RecordChild1, // #2 = $src2
/*416809*/            OPC_RecordChild2, // #3 = $src3
/*416810*/            OPC_MoveChild2,
/*416811*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*416814*/            OPC_MoveParent,
/*416815*/            OPC_MoveParent,
/*416816*/            OPC_Scope, 17, /*->416835*/ // 2 children in Scope
/*416818*/              OPC_MoveChild2,
/*416819*/              OPC_CheckImmAllZerosV,
/*416820*/              OPC_MoveParent,
/*416821*/              OPC_CheckType, MVT::v32i16,
/*416823*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*416825*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDBPSADBWZrrikz), 0,
                            MVT::v32i16, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86dbpsadbw:{ *:[v32i16] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v32i16] }) - Complexity = 13
                        // Dst: (VDBPSADBWZrrikz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (timm:{ *:[i8] }):$src3)
/*416835*/            /*Scope*/ 16, /*->416852*/
/*416836*/              OPC_RecordChild2, // #4 = $src0
/*416837*/              OPC_CheckType, MVT::v32i16,
/*416839*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*416841*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDBPSADBWZrrik), 0,
                            MVT::v32i16, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86dbpsadbw:{ *:[v32i16] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (timm:{ *:[i8] }):$src3), VR512:{ *:[v32i16] }:$src0) - Complexity = 9
                        // Dst: (VDBPSADBWZrrik:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (timm:{ *:[i8] }):$src3)
/*416852*/            0, /*End of Scope*/
/*416853*/          /*SwitchOpcode*/ 46, TARGET_VAL(X86ISD::VSHLD),// ->416902
/*416856*/            OPC_RecordChild0, // #1 = $src1
/*416857*/            OPC_RecordChild1, // #2 = $src2
/*416858*/            OPC_RecordChild2, // #3 = $src3
/*416859*/            OPC_MoveChild2,
/*416860*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*416863*/            OPC_MoveParent,
/*416864*/            OPC_MoveParent,
/*416865*/            OPC_Scope, 17, /*->416884*/ // 2 children in Scope
/*416867*/              OPC_MoveChild2,
/*416868*/              OPC_CheckImmAllZerosV,
/*416869*/              OPC_MoveParent,
/*416870*/              OPC_CheckType, MVT::v32i16,
/*416872*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*416874*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDWZrrikz), 0,
                            MVT::v32i16, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86VShld:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v32i16] }) - Complexity = 13
                        // Dst: (VPSHLDWZrrikz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, (timm:{ *:[i8] }):$src3)
/*416884*/            /*Scope*/ 16, /*->416901*/
/*416885*/              OPC_RecordChild2, // #4 = $src0
/*416886*/              OPC_CheckType, MVT::v32i16,
/*416888*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*416890*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDWZrrik), 0,
                            MVT::v32i16, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86VShld:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, (timm:{ *:[i8] }):$src3), VR512:{ *:[v32i16] }:$src0) - Complexity = 9
                        // Dst: (VPSHLDWZrrik:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, (timm:{ *:[i8] }):$src3)
/*416901*/            0, /*End of Scope*/
/*416902*/          /*SwitchOpcode*/ 46, TARGET_VAL(X86ISD::VSHRD),// ->416951
/*416905*/            OPC_RecordChild0, // #1 = $src1
/*416906*/            OPC_RecordChild1, // #2 = $src2
/*416907*/            OPC_RecordChild2, // #3 = $src3
/*416908*/            OPC_MoveChild2,
/*416909*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*416912*/            OPC_MoveParent,
/*416913*/            OPC_MoveParent,
/*416914*/            OPC_Scope, 17, /*->416933*/ // 2 children in Scope
/*416916*/              OPC_MoveChild2,
/*416917*/              OPC_CheckImmAllZerosV,
/*416918*/              OPC_MoveParent,
/*416919*/              OPC_CheckType, MVT::v32i16,
/*416921*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*416923*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDWZrrikz), 0,
                            MVT::v32i16, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86VShrd:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v32i16] }) - Complexity = 13
                        // Dst: (VPSHRDWZrrikz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, (timm:{ *:[i8] }):$src3)
/*416933*/            /*Scope*/ 16, /*->416950*/
/*416934*/              OPC_RecordChild2, // #4 = $src0
/*416935*/              OPC_CheckType, MVT::v32i16,
/*416937*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*416939*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDWZrrik), 0,
                            MVT::v32i16, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86VShrd:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, (timm:{ *:[i8] }):$src3), VR512:{ *:[v32i16] }:$src0) - Complexity = 9
                        // Dst: (VPSHRDWZrrik:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, (timm:{ *:[i8] }):$src3)
/*416950*/            0, /*End of Scope*/
/*416951*/          /*SwitchOpcode*/ 46, TARGET_VAL(X86ISD::GF2P8AFFINEINVQB),// ->417000
/*416954*/            OPC_RecordChild0, // #1 = $src1
/*416955*/            OPC_RecordChild1, // #2 = $src2
/*416956*/            OPC_RecordChild2, // #3 = $src3
/*416957*/            OPC_MoveChild2,
/*416958*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*416961*/            OPC_MoveParent,
/*416962*/            OPC_MoveParent,
/*416963*/            OPC_Scope, 17, /*->416982*/ // 2 children in Scope
/*416965*/              OPC_MoveChild2,
/*416966*/              OPC_CheckImmAllZerosV,
/*416967*/              OPC_MoveParent,
/*416968*/              OPC_CheckType, MVT::v32i8,
/*416970*/              OPC_CheckPatternPredicate, 180, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*416972*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEINVQBZ256rrikz), 0,
                            MVT::v32i8, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86GF2P8affineinvqb:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v32i8] }) - Complexity = 13
                        // Dst: (VGF2P8AFFINEINVQBZ256rrikz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (timm:{ *:[i8] }):$src3)
/*416982*/            /*Scope*/ 16, /*->416999*/
/*416983*/              OPC_RecordChild2, // #4 = $src0
/*416984*/              OPC_CheckType, MVT::v32i8,
/*416986*/              OPC_CheckPatternPredicate, 180, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*416988*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEINVQBZ256rrik), 0,
                            MVT::v32i8, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86GF2P8affineinvqb:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (timm:{ *:[i8] }):$src3), VR256X:{ *:[v32i8] }:$src0) - Complexity = 9
                        // Dst: (VGF2P8AFFINEINVQBZ256rrik:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (timm:{ *:[i8] }):$src3)
/*416999*/            0, /*End of Scope*/
/*417000*/          /*SwitchOpcode*/ 46, TARGET_VAL(X86ISD::GF2P8AFFINEQB),// ->417049
/*417003*/            OPC_RecordChild0, // #1 = $src1
/*417004*/            OPC_RecordChild1, // #2 = $src2
/*417005*/            OPC_RecordChild2, // #3 = $src3
/*417006*/            OPC_MoveChild2,
/*417007*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*417010*/            OPC_MoveParent,
/*417011*/            OPC_MoveParent,
/*417012*/            OPC_Scope, 17, /*->417031*/ // 2 children in Scope
/*417014*/              OPC_MoveChild2,
/*417015*/              OPC_CheckImmAllZerosV,
/*417016*/              OPC_MoveParent,
/*417017*/              OPC_CheckType, MVT::v32i8,
/*417019*/              OPC_CheckPatternPredicate, 180, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*417021*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEQBZ256rrikz), 0,
                            MVT::v32i8, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86GF2P8affineqb:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v32i8] }) - Complexity = 13
                        // Dst: (VGF2P8AFFINEQBZ256rrikz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (timm:{ *:[i8] }):$src3)
/*417031*/            /*Scope*/ 16, /*->417048*/
/*417032*/              OPC_RecordChild2, // #4 = $src0
/*417033*/              OPC_CheckType, MVT::v32i8,
/*417035*/              OPC_CheckPatternPredicate, 180, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*417037*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEQBZ256rrik), 0,
                            MVT::v32i8, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86GF2P8affineqb:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (timm:{ *:[i8] }):$src3), VR256X:{ *:[v32i8] }:$src0) - Complexity = 9
                        // Dst: (VGF2P8AFFINEQBZ256rrik:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (timm:{ *:[i8] }):$src3)
/*417048*/            0, /*End of Scope*/
/*417049*/          /*SwitchOpcode*/ 115, TARGET_VAL(X86ISD::VBROADCAST),// ->417167
/*417052*/            OPC_RecordChild0, // #1 = $src
/*417053*/            OPC_Scope, 18, /*->417073*/ // 4 children in Scope
/*417055*/              OPC_CheckChild0Type, MVT::v16i8,
/*417057*/              OPC_MoveParent,
/*417058*/              OPC_MoveChild2,
/*417059*/              OPC_CheckImmAllZerosV,
/*417060*/              OPC_MoveParent,
/*417061*/              OPC_CheckType, MVT::v32i8,
/*417063*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*417065*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTBZ256rkz), 0,
                            MVT::v32i8, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86VBroadcast:{ *:[v32i8] } VR128X:{ *:[v16i8] }:$src), immAllZerosV:{ *:[v32i8] }) - Complexity = 10
                        // Dst: (VPBROADCASTBZ256rkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*417073*/            /*Scope*/ 18, /*->417092*/
/*417074*/              OPC_CheckChild0Type, MVT::v8i16,
/*417076*/              OPC_MoveParent,
/*417077*/              OPC_MoveChild2,
/*417078*/              OPC_CheckImmAllZerosV,
/*417079*/              OPC_MoveParent,
/*417080*/              OPC_CheckType, MVT::v32i16,
/*417082*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*417084*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWZrkz), 0,
                            MVT::v32i16, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86VBroadcast:{ *:[v32i16] } VR128X:{ *:[v8i16] }:$src), immAllZerosV:{ *:[v32i16] }) - Complexity = 10
                        // Dst: (VPBROADCASTWZrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/*417092*/            /*Scope*/ 36, /*->417129*/
/*417093*/              OPC_CheckChild0Type, MVT::i8,
/*417095*/              OPC_MoveParent,
/*417096*/              OPC_MoveChild2,
/*417097*/              OPC_CheckImmAllZerosV,
/*417098*/              OPC_MoveParent,
/*417099*/              OPC_CheckType, MVT::v32i8,
/*417101*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*417103*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::i32, 0/*#Ops*/,  // Results = #2
/*417109*/              OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*417112*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::i32, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/*417121*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTBrZ256rkz), 0,
                            MVT::v32i8, 2/*#Ops*/, 0, 4, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86VBroadcast:{ *:[v32i8] } GR8:{ *:[i8] }:$src), immAllZerosV:{ *:[v32i8] }) - Complexity = 10
                        // Dst: (VPBROADCASTBrZ256rkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$src, sub_8bit:{ *:[i32] }))
/*417129*/            /*Scope*/ 36, /*->417166*/
/*417130*/              OPC_CheckChild0Type, MVT::i16,
/*417132*/              OPC_MoveParent,
/*417133*/              OPC_MoveChild2,
/*417134*/              OPC_CheckImmAllZerosV,
/*417135*/              OPC_MoveParent,
/*417136*/              OPC_CheckType, MVT::v32i16,
/*417138*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*417140*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::i32, 0/*#Ops*/,  // Results = #2
/*417146*/              OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*417149*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::i32, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/*417158*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWrZrkz), 0,
                            MVT::v32i16, 2/*#Ops*/, 0, 4, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86VBroadcast:{ *:[v32i16] } GR16:{ *:[i16] }:$src), immAllZerosV:{ *:[v32i16] }) - Complexity = 10
                        // Dst: (VPBROADCASTWrZrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR16:{ *:[i16] }:$src, sub_16bit:{ *:[i32] }))
/*417166*/            0, /*End of Scope*/
/*417167*/          /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::VPERMV3),// ->417207
/*417170*/            OPC_RecordChild0, // #1 = $src1
/*417171*/            OPC_RecordChild1, // #2 = $src2
/*417172*/            OPC_RecordChild2, // #3 = $src3
/*417173*/            OPC_MoveParent,
/*417174*/            OPC_MoveChild2,
/*417175*/            OPC_CheckImmAllZerosV,
/*417176*/            OPC_MoveParent,
/*417177*/            OPC_SwitchType /*2 cases */, 12, MVT::v32i16,// ->417192
/*417180*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*417182*/              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), immAllZerosV:{ *:[v32i16] }) - Complexity = 10
                        // Dst: (VPERMT2Wrrkz:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src2, VR512:{ *:[v32i16] }:$src3)
/*417192*/            /*SwitchType*/ 12, MVT::v32i8,// ->417206
/*417194*/              OPC_CheckPatternPredicate, 181, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*417196*/              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), immAllZerosV:{ *:[v32i8] }) - Complexity = 10
                        // Dst: (VPERMT2B256rrkz:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src2, VR256X:{ *:[v32i8] }:$src3)
/*417206*/            0, // EndSwitchType
/*417207*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::ADD),// ->417244
/*417210*/            OPC_RecordChild0, // #1 = $src1
/*417211*/            OPC_RecordChild1, // #2 = $src2
/*417212*/            OPC_MoveParent,
/*417213*/            OPC_MoveChild2,
/*417214*/            OPC_CheckImmAllZerosV,
/*417215*/            OPC_MoveParent,
/*417216*/            OPC_SwitchType /*2 cases */, 11, MVT::v32i16,// ->417230
/*417219*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*417221*/              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), immAllZerosV:{ *:[v32i16] }) - Complexity = 10
                        // Dst: (VPADDWZrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*417230*/            /*SwitchType*/ 11, MVT::v32i8,// ->417243
/*417232*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*417234*/              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), immAllZerosV:{ *:[v32i8] }) - Complexity = 10
                        // Dst: (VPADDBZ256rrkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*417243*/            0, // EndSwitchType
/*417244*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::SUB),// ->417281
/*417247*/            OPC_RecordChild0, // #1 = $src1
/*417248*/            OPC_RecordChild1, // #2 = $src2
/*417249*/            OPC_MoveParent,
/*417250*/            OPC_MoveChild2,
/*417251*/            OPC_CheckImmAllZerosV,
/*417252*/            OPC_MoveParent,
/*417253*/            OPC_SwitchType /*2 cases */, 11, MVT::v32i16,// ->417267
/*417256*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*417258*/              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), immAllZerosV:{ *:[v32i16] }) - Complexity = 10
                        // Dst: (VPSUBWZrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*417267*/            /*SwitchType*/ 11, MVT::v32i8,// ->417280
/*417269*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*417271*/              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), immAllZerosV:{ *:[v32i8] }) - Complexity = 10
                        // Dst: (VPSUBBZ256rrkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*417280*/            0, // EndSwitchType
/*417281*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::SADDSAT),// ->417318
/*417284*/            OPC_RecordChild0, // #1 = $src1
/*417285*/            OPC_RecordChild1, // #2 = $src2
/*417286*/            OPC_MoveParent,
/*417287*/            OPC_MoveChild2,
/*417288*/            OPC_CheckImmAllZerosV,
/*417289*/            OPC_MoveParent,
/*417290*/            OPC_SwitchType /*2 cases */, 11, MVT::v32i16,// ->417304
/*417293*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*417295*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSWZrrkz), 0,
                            MVT::v32i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (saddsat:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2), immAllZerosV:{ *:[v32i16] }) - Complexity = 10
                        // Dst: (VPADDSWZrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*417304*/            /*SwitchType*/ 11, MVT::v32i8,// ->417317
/*417306*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*417308*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSBZ256rrkz), 0,
                            MVT::v32i8, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (saddsat:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2), immAllZerosV:{ *:[v32i8] }) - Complexity = 10
                        // Dst: (VPADDSBZ256rrkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*417317*/            0, // EndSwitchType
/*417318*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::SSUBSAT),// ->417355
/*417321*/            OPC_RecordChild0, // #1 = $src1
/*417322*/            OPC_RecordChild1, // #2 = $src2
/*417323*/            OPC_MoveParent,
/*417324*/            OPC_MoveChild2,
/*417325*/            OPC_CheckImmAllZerosV,
/*417326*/            OPC_MoveParent,
/*417327*/            OPC_SwitchType /*2 cases */, 11, MVT::v32i16,// ->417341
/*417330*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*417332*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSWZrrkz), 0,
                            MVT::v32i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (ssubsat:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2), immAllZerosV:{ *:[v32i16] }) - Complexity = 10
                        // Dst: (VPSUBSWZrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*417341*/            /*SwitchType*/ 11, MVT::v32i8,// ->417354
/*417343*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*417345*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSBZ256rrkz), 0,
                            MVT::v32i8, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (ssubsat:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2), immAllZerosV:{ *:[v32i8] }) - Complexity = 10
                        // Dst: (VPSUBSBZ256rrkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*417354*/            0, // EndSwitchType
/*417355*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::UADDSAT),// ->417392
/*417358*/            OPC_RecordChild0, // #1 = $src1
/*417359*/            OPC_RecordChild1, // #2 = $src2
/*417360*/            OPC_MoveParent,
/*417361*/            OPC_MoveChild2,
/*417362*/            OPC_CheckImmAllZerosV,
/*417363*/            OPC_MoveParent,
/*417364*/            OPC_SwitchType /*2 cases */, 11, MVT::v32i16,// ->417378
/*417367*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*417369*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSWZrrkz), 0,
                            MVT::v32i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (uaddsat:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2), immAllZerosV:{ *:[v32i16] }) - Complexity = 10
                        // Dst: (VPADDUSWZrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*417378*/            /*SwitchType*/ 11, MVT::v32i8,// ->417391
/*417380*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*417382*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSBZ256rrkz), 0,
                            MVT::v32i8, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (uaddsat:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2), immAllZerosV:{ *:[v32i8] }) - Complexity = 10
                        // Dst: (VPADDUSBZ256rrkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*417391*/            0, // EndSwitchType
/*417392*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::USUBSAT),// ->417429
/*417395*/            OPC_RecordChild0, // #1 = $src1
/*417396*/            OPC_RecordChild1, // #2 = $src2
/*417397*/            OPC_MoveParent,
/*417398*/            OPC_MoveChild2,
/*417399*/            OPC_CheckImmAllZerosV,
/*417400*/            OPC_MoveParent,
/*417401*/            OPC_SwitchType /*2 cases */, 11, MVT::v32i16,// ->417415
/*417404*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*417406*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSWZrrkz), 0,
                            MVT::v32i16, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (usubsat:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2), immAllZerosV:{ *:[v32i16] }) - Complexity = 10
                        // Dst: (VPSUBUSWZrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*417415*/            /*SwitchType*/ 11, MVT::v32i8,// ->417428
/*417417*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*417419*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSBZ256rrkz), 0,
                            MVT::v32i8, 3/*#Ops*/, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (usubsat:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2), immAllZerosV:{ *:[v32i8] }) - Complexity = 10
                        // Dst: (VPSUBUSBZ256rrkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*417428*/            0, // EndSwitchType
/*417429*/          /*SwitchOpcode*/ 19, TARGET_VAL(ISD::MUL),// ->417451
/*417432*/            OPC_RecordChild0, // #1 = $src1
/*417433*/            OPC_RecordChild1, // #2 = $src2
/*417434*/            OPC_MoveParent,
/*417435*/            OPC_MoveChild2,
/*417436*/            OPC_CheckImmAllZerosV,
/*417437*/            OPC_MoveParent,
/*417438*/            OPC_CheckType, MVT::v32i16,
/*417440*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*417442*/            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), immAllZerosV:{ *:[v32i16] }) - Complexity = 10
                      // Dst: (VPMULLWZrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*417451*/          /*SwitchOpcode*/ 19, TARGET_VAL(ISD::MULHS),// ->417473
/*417454*/            OPC_RecordChild0, // #1 = $src1
/*417455*/            OPC_RecordChild1, // #2 = $src2
/*417456*/            OPC_MoveParent,
/*417457*/            OPC_MoveChild2,
/*417458*/            OPC_CheckImmAllZerosV,
/*417459*/            OPC_MoveParent,
/*417460*/            OPC_CheckType, MVT::v32i16,
/*417462*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*417464*/            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), immAllZerosV:{ *:[v32i16] }) - Complexity = 10
                      // Dst: (VPMULHWZrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*417473*/          /*SwitchOpcode*/ 19, TARGET_VAL(ISD::MULHU),// ->417495
/*417476*/            OPC_RecordChild0, // #1 = $src1
/*417477*/            OPC_RecordChild1, // #2 = $src2
/*417478*/            OPC_MoveParent,
/*417479*/            OPC_MoveChild2,
/*417480*/            OPC_CheckImmAllZerosV,
/*417481*/            OPC_MoveParent,
/*417482*/            OPC_CheckType, MVT::v32i16,
/*417484*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*417486*/            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), immAllZerosV:{ *:[v32i16] }) - Complexity = 10
                      // Dst: (VPMULHUWZrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*417495*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::MULHRS),// ->417517
/*417498*/            OPC_RecordChild0, // #1 = $src1
/*417499*/            OPC_RecordChild1, // #2 = $src2
/*417500*/            OPC_MoveParent,
/*417501*/            OPC_MoveChild2,
/*417502*/            OPC_CheckImmAllZerosV,
/*417503*/            OPC_MoveParent,
/*417504*/            OPC_CheckType, MVT::v32i16,
/*417506*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*417508*/            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), immAllZerosV:{ *:[v32i16] }) - Complexity = 10
                      // Dst: (VPMULHRSWZrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*417517*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::AVG),// ->417554
/*417520*/            OPC_RecordChild0, // #1 = $src1
/*417521*/            OPC_RecordChild1, // #2 = $src2
/*417522*/            OPC_MoveParent,
/*417523*/            OPC_MoveChild2,
/*417524*/            OPC_CheckImmAllZerosV,
/*417525*/            OPC_MoveParent,
/*417526*/            OPC_SwitchType /*2 cases */, 11, MVT::v32i16,// ->417540
/*417529*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*417531*/              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), immAllZerosV:{ *:[v32i16] }) - Complexity = 10
                        // Dst: (VPAVGWZrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*417540*/            /*SwitchType*/ 11, MVT::v32i8,// ->417553
/*417542*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*417544*/              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), immAllZerosV:{ *:[v32i8] }) - Complexity = 10
                        // Dst: (VPAVGBZ256rrkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*417553*/            0, // EndSwitchType
/*417554*/          /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::MULTISHIFT),// ->417578
/*417557*/            OPC_RecordChild0, // #1 = $src1
/*417558*/            OPC_CheckChild0Type, MVT::v32i8,
/*417560*/            OPC_RecordChild1, // #2 = $src2
/*417561*/            OPC_MoveParent,
/*417562*/            OPC_MoveChild2,
/*417563*/            OPC_CheckImmAllZerosV,
/*417564*/            OPC_MoveParent,
/*417565*/            OPC_CheckType, MVT::v32i8,
/*417567*/            OPC_CheckPatternPredicate, 181, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*417569*/            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), immAllZerosV:{ *:[v32i8] }) - Complexity = 10
                      // Dst: (VPMULTISHIFTQBZ256rrkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*417578*/          /*SwitchOpcode*/ 45, TARGET_VAL(X86ISD::PACKSS),// ->417626
/*417581*/            OPC_RecordChild0, // #1 = $src1
/*417582*/            OPC_Scope, 20, /*->417604*/ // 2 children in Scope
/*417584*/              OPC_CheckChild0Type, MVT::v16i32,
/*417586*/              OPC_RecordChild1, // #2 = $src2
/*417587*/              OPC_MoveParent,
/*417588*/              OPC_MoveChild2,
/*417589*/              OPC_CheckImmAllZerosV,
/*417590*/              OPC_MoveParent,
/*417591*/              OPC_CheckType, MVT::v32i16,
/*417593*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*417595*/              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), immAllZerosV:{ *:[v32i16] }) - Complexity = 10
                        // Dst: (VPACKSSDWZrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*417604*/            /*Scope*/ 20, /*->417625*/
/*417605*/              OPC_CheckChild0Type, MVT::v16i16,
/*417607*/              OPC_RecordChild1, // #2 = $src2
/*417608*/              OPC_MoveParent,
/*417609*/              OPC_MoveChild2,
/*417610*/              OPC_CheckImmAllZerosV,
/*417611*/              OPC_MoveParent,
/*417612*/              OPC_CheckType, MVT::v32i8,
/*417614*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*417616*/              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), immAllZerosV:{ *:[v32i8] }) - Complexity = 10
                        // Dst: (VPACKSSWBZ256rrkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*417625*/            0, /*End of Scope*/
/*417626*/          /*SwitchOpcode*/ 45, TARGET_VAL(X86ISD::PACKUS),// ->417674
/*417629*/            OPC_RecordChild0, // #1 = $src1
/*417630*/            OPC_Scope, 20, /*->417652*/ // 2 children in Scope
/*417632*/              OPC_CheckChild0Type, MVT::v16i32,
/*417634*/              OPC_RecordChild1, // #2 = $src2
/*417635*/              OPC_MoveParent,
/*417636*/              OPC_MoveChild2,
/*417637*/              OPC_CheckImmAllZerosV,
/*417638*/              OPC_MoveParent,
/*417639*/              OPC_CheckType, MVT::v32i16,
/*417641*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*417643*/              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), immAllZerosV:{ *:[v32i16] }) - Complexity = 10
                        // Dst: (VPACKUSDWZrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*417652*/            /*Scope*/ 20, /*->417673*/
/*417653*/              OPC_CheckChild0Type, MVT::v16i16,
/*417655*/              OPC_RecordChild1, // #2 = $src2
/*417656*/              OPC_MoveParent,
/*417657*/              OPC_MoveChild2,
/*417658*/              OPC_CheckImmAllZerosV,
/*417659*/              OPC_MoveParent,
/*417660*/              OPC_CheckType, MVT::v32i8,
/*417662*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*417664*/              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), immAllZerosV:{ *:[v32i8] }) - Complexity = 10
                        // Dst: (VPACKUSWBZ256rrkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*417673*/            0, /*End of Scope*/
/*417674*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::VPMADDUBSW),// ->417696
/*417677*/            OPC_RecordChild0, // #1 = $src1
/*417678*/            OPC_RecordChild1, // #2 = $src2
/*417679*/            OPC_MoveParent,
/*417680*/            OPC_MoveChild2,
/*417681*/            OPC_CheckImmAllZerosV,
/*417682*/            OPC_MoveParent,
/*417683*/            OPC_CheckType, MVT::v32i16,
/*417685*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*417687*/            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), immAllZerosV:{ *:[v32i16] }) - Complexity = 10
                      // Dst: (VPMADDUBSWZrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*417696*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::SMAX),// ->417733
/*417699*/            OPC_RecordChild0, // #1 = $src1
/*417700*/            OPC_RecordChild1, // #2 = $src2
/*417701*/            OPC_MoveParent,
/*417702*/            OPC_MoveChild2,
/*417703*/            OPC_CheckImmAllZerosV,
/*417704*/            OPC_MoveParent,
/*417705*/            OPC_SwitchType /*2 cases */, 11, MVT::v32i8,// ->417719
/*417708*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*417710*/              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), immAllZerosV:{ *:[v32i8] }) - Complexity = 10
                        // Dst: (VPMAXSBZ256rrkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*417719*/            /*SwitchType*/ 11, MVT::v32i16,// ->417732
/*417721*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*417723*/              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), immAllZerosV:{ *:[v32i16] }) - Complexity = 10
                        // Dst: (VPMAXSWZrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*417732*/            0, // EndSwitchType
/*417733*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::UMAX),// ->417770
/*417736*/            OPC_RecordChild0, // #1 = $src1
/*417737*/            OPC_RecordChild1, // #2 = $src2
/*417738*/            OPC_MoveParent,
/*417739*/            OPC_MoveChild2,
/*417740*/            OPC_CheckImmAllZerosV,
/*417741*/            OPC_MoveParent,
/*417742*/            OPC_SwitchType /*2 cases */, 11, MVT::v32i8,// ->417756
/*417745*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*417747*/              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), immAllZerosV:{ *:[v32i8] }) - Complexity = 10
                        // Dst: (VPMAXUBZ256rrkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*417756*/            /*SwitchType*/ 11, MVT::v32i16,// ->417769
/*417758*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*417760*/              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), immAllZerosV:{ *:[v32i16] }) - Complexity = 10
                        // Dst: (VPMAXUWZrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*417769*/            0, // EndSwitchType
/*417770*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::SMIN),// ->417807
/*417773*/            OPC_RecordChild0, // #1 = $src1
/*417774*/            OPC_RecordChild1, // #2 = $src2
/*417775*/            OPC_MoveParent,
/*417776*/            OPC_MoveChild2,
/*417777*/            OPC_CheckImmAllZerosV,
/*417778*/            OPC_MoveParent,
/*417779*/            OPC_SwitchType /*2 cases */, 11, MVT::v32i8,// ->417793
/*417782*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*417784*/              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), immAllZerosV:{ *:[v32i8] }) - Complexity = 10
                        // Dst: (VPMINSBZ256rrkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*417793*/            /*SwitchType*/ 11, MVT::v32i16,// ->417806
/*417795*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*417797*/              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), immAllZerosV:{ *:[v32i16] }) - Complexity = 10
                        // Dst: (VPMINSWZrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*417806*/            0, // EndSwitchType
/*417807*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::UMIN),// ->417844
/*417810*/            OPC_RecordChild0, // #1 = $src1
/*417811*/            OPC_RecordChild1, // #2 = $src2
/*417812*/            OPC_MoveParent,
/*417813*/            OPC_MoveChild2,
/*417814*/            OPC_CheckImmAllZerosV,
/*417815*/            OPC_MoveParent,
/*417816*/            OPC_SwitchType /*2 cases */, 11, MVT::v32i8,// ->417830
/*417819*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*417821*/              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), immAllZerosV:{ *:[v32i8] }) - Complexity = 10
                        // Dst: (VPMINUBZ256rrkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*417830*/            /*SwitchType*/ 11, MVT::v32i16,// ->417843
/*417832*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*417834*/              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), immAllZerosV:{ *:[v32i16] }) - Complexity = 10
                        // Dst: (VPMINUWZrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*417843*/            0, // EndSwitchType
/*417844*/          /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::VSHL),// ->417868
/*417847*/            OPC_RecordChild0, // #1 = $src1
/*417848*/            OPC_RecordChild1, // #2 = $src2
/*417849*/            OPC_CheckChild1Type, MVT::v8i16,
/*417851*/            OPC_MoveParent,
/*417852*/            OPC_MoveChild2,
/*417853*/            OPC_CheckImmAllZerosV,
/*417854*/            OPC_MoveParent,
/*417855*/            OPC_CheckType, MVT::v32i16,
/*417857*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*417859*/            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), immAllZerosV:{ *:[v32i16] }) - Complexity = 10
                      // Dst: (VPSLLWZrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*417868*/          /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::VSRA),// ->417892
/*417871*/            OPC_RecordChild0, // #1 = $src1
/*417872*/            OPC_RecordChild1, // #2 = $src2
/*417873*/            OPC_CheckChild1Type, MVT::v8i16,
/*417875*/            OPC_MoveParent,
/*417876*/            OPC_MoveChild2,
/*417877*/            OPC_CheckImmAllZerosV,
/*417878*/            OPC_MoveParent,
/*417879*/            OPC_CheckType, MVT::v32i16,
/*417881*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*417883*/            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), immAllZerosV:{ *:[v32i16] }) - Complexity = 10
                      // Dst: (VPSRAWZrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*417892*/          /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::VSRL),// ->417916
/*417895*/            OPC_RecordChild0, // #1 = $src1
/*417896*/            OPC_RecordChild1, // #2 = $src2
/*417897*/            OPC_CheckChild1Type, MVT::v8i16,
/*417899*/            OPC_MoveParent,
/*417900*/            OPC_MoveChild2,
/*417901*/            OPC_CheckImmAllZerosV,
/*417902*/            OPC_MoveParent,
/*417903*/            OPC_CheckType, MVT::v32i16,
/*417905*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*417907*/            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), immAllZerosV:{ *:[v32i16] }) - Complexity = 10
                      // Dst: (VPSRLWZrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*417916*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::VSHLV),// ->417938
/*417919*/            OPC_RecordChild0, // #1 = $src1
/*417920*/            OPC_RecordChild1, // #2 = $src2
/*417921*/            OPC_MoveParent,
/*417922*/            OPC_MoveChild2,
/*417923*/            OPC_CheckImmAllZerosV,
/*417924*/            OPC_MoveParent,
/*417925*/            OPC_CheckType, MVT::v32i16,
/*417927*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*417929*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVWZrrkz), 0,
                          MVT::v32i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86vshlv:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2), immAllZerosV:{ *:[v32i16] }) - Complexity = 10
                      // Dst: (VPSLLVWZrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*417938*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::VSRAV),// ->417960
/*417941*/            OPC_RecordChild0, // #1 = $src1
/*417942*/            OPC_RecordChild1, // #2 = $src2
/*417943*/            OPC_MoveParent,
/*417944*/            OPC_MoveChild2,
/*417945*/            OPC_CheckImmAllZerosV,
/*417946*/            OPC_MoveParent,
/*417947*/            OPC_CheckType, MVT::v32i16,
/*417949*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*417951*/            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), immAllZerosV:{ *:[v32i16] }) - Complexity = 10
                      // Dst: (VPSRAVWZrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*417960*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::VSRLV),// ->417982
/*417963*/            OPC_RecordChild0, // #1 = $src1
/*417964*/            OPC_RecordChild1, // #2 = $src2
/*417965*/            OPC_MoveParent,
/*417966*/            OPC_MoveChild2,
/*417967*/            OPC_CheckImmAllZerosV,
/*417968*/            OPC_MoveParent,
/*417969*/            OPC_CheckType, MVT::v32i16,
/*417971*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*417973*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVWZrrkz), 0,
                          MVT::v32i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86vsrlv:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2), immAllZerosV:{ *:[v32i16] }) - Complexity = 10
                      // Dst: (VPSRLVWZrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*417982*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VPERMV),// ->418019
/*417985*/            OPC_RecordChild0, // #1 = $src1
/*417986*/            OPC_RecordChild1, // #2 = $src2
/*417987*/            OPC_MoveParent,
/*417988*/            OPC_MoveChild2,
/*417989*/            OPC_CheckImmAllZerosV,
/*417990*/            OPC_MoveParent,
/*417991*/            OPC_SwitchType /*2 cases */, 11, MVT::v32i16,// ->418005
/*417994*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*417996*/              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), immAllZerosV:{ *:[v32i16] }) - Complexity = 10
                        // Dst: (VPERMWZrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*418005*/            /*SwitchType*/ 11, MVT::v32i8,// ->418018
/*418007*/              OPC_CheckPatternPredicate, 181, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*418009*/              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), immAllZerosV:{ *:[v32i8] }) - Complexity = 10
                        // Dst: (VPERMBZ256rrkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*418018*/            0, // EndSwitchType
/*418019*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::PSHUFB),// ->418041
/*418022*/            OPC_RecordChild0, // #1 = $src1
/*418023*/            OPC_RecordChild1, // #2 = $src2
/*418024*/            OPC_MoveParent,
/*418025*/            OPC_MoveChild2,
/*418026*/            OPC_CheckImmAllZerosV,
/*418027*/            OPC_MoveParent,
/*418028*/            OPC_CheckType, MVT::v32i8,
/*418030*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*418032*/            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), immAllZerosV:{ *:[v32i8] }) - Complexity = 10
                      // Dst: (VPSHUFBZ256rrkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*418041*/          /*SwitchOpcode*/ 17, TARGET_VAL(ISD::TRUNCATE),// ->418061
/*418044*/            OPC_RecordChild0, // #1 = $src
/*418045*/            OPC_MoveParent,
/*418046*/            OPC_MoveChild2,
/*418047*/            OPC_CheckImmAllZerosV,
/*418048*/            OPC_MoveParent,
/*418049*/            OPC_CheckType, MVT::v32i8,
/*418051*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*418053*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVWBZrrkz), 0,
                          MVT::v32i8, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (trunc:{ *:[v32i8] } VR512:{ *:[v32i16] }:$src), immAllZerosV:{ *:[v32i8] }) - Complexity = 10
                      // Dst: (VPMOVWBZrrkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src)
/*418061*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::VTRUNCS),// ->418083
/*418064*/            OPC_RecordChild0, // #1 = $src
/*418065*/            OPC_CheckChild0Type, MVT::v32i16,
/*418067*/            OPC_MoveParent,
/*418068*/            OPC_MoveChild2,
/*418069*/            OPC_CheckImmAllZerosV,
/*418070*/            OPC_MoveParent,
/*418071*/            OPC_CheckType, MVT::v32i8,
/*418073*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*418075*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSWBZrrkz), 0,
                          MVT::v32i8, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86vtruncs:{ *:[v32i8] } VR512:{ *:[v32i16] }:$src), immAllZerosV:{ *:[v32i8] }) - Complexity = 10
                      // Dst: (VPMOVSWBZrrkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src)
/*418083*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::VTRUNCUS),// ->418105
/*418086*/            OPC_RecordChild0, // #1 = $src
/*418087*/            OPC_CheckChild0Type, MVT::v32i16,
/*418089*/            OPC_MoveParent,
/*418090*/            OPC_MoveChild2,
/*418091*/            OPC_CheckImmAllZerosV,
/*418092*/            OPC_MoveParent,
/*418093*/            OPC_CheckType, MVT::v32i8,
/*418095*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*418097*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSWBZrrkz), 0,
                          MVT::v32i8, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86vtruncus:{ *:[v32i8] } VR512:{ *:[v32i16] }:$src), immAllZerosV:{ *:[v32i8] }) - Complexity = 10
                      // Dst: (VPMOVUSWBZrrkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src)
/*418105*/          /*SwitchOpcode*/ 19, TARGET_VAL(ISD::ZERO_EXTEND),// ->418127
/*418108*/            OPC_RecordChild0, // #1 = $src
/*418109*/            OPC_CheckChild0Type, MVT::v32i8,
/*418111*/            OPC_MoveParent,
/*418112*/            OPC_MoveChild2,
/*418113*/            OPC_CheckImmAllZerosV,
/*418114*/            OPC_MoveParent,
/*418115*/            OPC_CheckType, MVT::v32i16,
/*418117*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*418119*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBWZrrkz), 0,
                          MVT::v32i16, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (zext:{ *:[v32i16] } VR256X:{ *:[v32i8] }:$src), immAllZerosV:{ *:[v32i16] }) - Complexity = 10
                      // Dst: (VPMOVZXBWZrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src)
/*418127*/          /*SwitchOpcode*/ 19, TARGET_VAL(ISD::SIGN_EXTEND),// ->418149
/*418130*/            OPC_RecordChild0, // #1 = $src
/*418131*/            OPC_CheckChild0Type, MVT::v32i8,
/*418133*/            OPC_MoveParent,
/*418134*/            OPC_MoveChild2,
/*418135*/            OPC_CheckImmAllZerosV,
/*418136*/            OPC_MoveParent,
/*418137*/            OPC_CheckType, MVT::v32i16,
/*418139*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*418141*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBWZrrkz), 0,
                          MVT::v32i16, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (sext:{ *:[v32i16] } VR256X:{ *:[v32i8] }:$src), immAllZerosV:{ *:[v32i16] }) - Complexity = 10
                      // Dst: (VPMOVSXBWZrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src)
/*418149*/          /*SwitchOpcode*/ 31, TARGET_VAL(ISD::ABS),// ->418183
/*418152*/            OPC_RecordChild0, // #1 = $src1
/*418153*/            OPC_MoveParent,
/*418154*/            OPC_MoveChild2,
/*418155*/            OPC_CheckImmAllZerosV,
/*418156*/            OPC_MoveParent,
/*418157*/            OPC_SwitchType /*2 cases */, 10, MVT::v32i16,// ->418170
/*418160*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*418162*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSWZrrkz), 0,
                            MVT::v32i16, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (abs:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1), immAllZerosV:{ *:[v32i16] }) - Complexity = 10
                        // Dst: (VPABSWZrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1)
/*418170*/            /*SwitchType*/ 10, MVT::v32i8,// ->418182
/*418172*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*418174*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSBZ256rrkz), 0,
                            MVT::v32i8, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (abs:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1), immAllZerosV:{ *:[v32i8] }) - Complexity = 10
                        // Dst: (VPABSBZ256rrkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1)
/*418182*/            0, // EndSwitchType
/*418183*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::UNPCKL),// ->418220
/*418186*/            OPC_RecordChild0, // #1 = $src1
/*418187*/            OPC_RecordChild1, // #2 = $src2
/*418188*/            OPC_MoveParent,
/*418189*/            OPC_MoveChild2,
/*418190*/            OPC_CheckImmAllZerosV,
/*418191*/            OPC_MoveParent,
/*418192*/            OPC_SwitchType /*2 cases */, 11, MVT::v32i8,// ->418206
/*418195*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*418197*/              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), immAllZerosV:{ *:[v32i8] }) - Complexity = 10
                        // Dst: (VPUNPCKLBWZ256rrkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*418206*/            /*SwitchType*/ 11, MVT::v32i16,// ->418219
/*418208*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*418210*/              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), immAllZerosV:{ *:[v32i16] }) - Complexity = 10
                        // Dst: (VPUNPCKLWDZrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*418219*/            0, // EndSwitchType
/*418220*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::UNPCKH),// ->418257
/*418223*/            OPC_RecordChild0, // #1 = $src1
/*418224*/            OPC_RecordChild1, // #2 = $src2
/*418225*/            OPC_MoveParent,
/*418226*/            OPC_MoveChild2,
/*418227*/            OPC_CheckImmAllZerosV,
/*418228*/            OPC_MoveParent,
/*418229*/            OPC_SwitchType /*2 cases */, 11, MVT::v32i8,// ->418243
/*418232*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*418234*/              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), immAllZerosV:{ *:[v32i8] }) - Complexity = 10
                        // Dst: (VPUNPCKHBWZ256rrkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*418243*/            /*SwitchType*/ 11, MVT::v32i16,// ->418256
/*418245*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*418247*/              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), immAllZerosV:{ *:[v32i16] }) - Complexity = 10
                        // Dst: (VPUNPCKHWDZrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*418256*/            0, // EndSwitchType
/*418257*/          /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::VSHLDV),// ->418281
/*418260*/            OPC_RecordChild0, // #1 = $src1
/*418261*/            OPC_RecordChild1, // #2 = $src2
/*418262*/            OPC_RecordChild2, // #3 = $src3
/*418263*/            OPC_MoveParent,
/*418264*/            OPC_MoveChild2,
/*418265*/            OPC_CheckImmAllZerosV,
/*418266*/            OPC_MoveParent,
/*418267*/            OPC_CheckType, MVT::v32i16,
/*418269*/            OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*418271*/            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), immAllZerosV:{ *:[v32i16] }) - Complexity = 10
                      // Dst: (VPSHLDVWZrkz:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src2, VR512:{ *:[v32i16] }:$src3)
/*418281*/          /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::VSHRDV),// ->418305
/*418284*/            OPC_RecordChild0, // #1 = $src1
/*418285*/            OPC_RecordChild1, // #2 = $src2
/*418286*/            OPC_RecordChild2, // #3 = $src3
/*418287*/            OPC_MoveParent,
/*418288*/            OPC_MoveChild2,
/*418289*/            OPC_CheckImmAllZerosV,
/*418290*/            OPC_MoveParent,
/*418291*/            OPC_CheckType, MVT::v32i16,
/*418293*/            OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*418295*/            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), immAllZerosV:{ *:[v32i16] }) - Complexity = 10
                      // Dst: (VPSHRDVWZrkz:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src2, VR512:{ *:[v32i16] }:$src3)
/*418305*/          /*SwitchOpcode*/ 41, TARGET_VAL(ISD::CTPOP),// ->418349
/*418308*/            OPC_RecordChild0, // #1 = $src1
/*418309*/            OPC_Scope, 18, /*->418329*/ // 2 children in Scope
/*418311*/              OPC_CheckChild0Type, MVT::v32i8,
/*418313*/              OPC_MoveParent,
/*418314*/              OPC_MoveChild2,
/*418315*/              OPC_CheckImmAllZerosV,
/*418316*/              OPC_MoveParent,
/*418317*/              OPC_CheckType, MVT::v32i8,
/*418319*/              OPC_CheckPatternPredicate, 115, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/*418321*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTBZ256rrkz), 0,
                            MVT::v32i8, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (ctpop:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1), immAllZerosV:{ *:[v32i8] }) - Complexity = 10
                        // Dst: (VPOPCNTBZ256rrkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1)
/*418329*/            /*Scope*/ 18, /*->418348*/
/*418330*/              OPC_CheckChild0Type, MVT::v32i16,
/*418332*/              OPC_MoveParent,
/*418333*/              OPC_MoveChild2,
/*418334*/              OPC_CheckImmAllZerosV,
/*418335*/              OPC_MoveParent,
/*418336*/              OPC_CheckType, MVT::v32i16,
/*418338*/              OPC_CheckPatternPredicate, 114, // (Subtarget->hasBITALG())
/*418340*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTWZrrkz), 0,
                            MVT::v32i16, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (ctpop:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1), immAllZerosV:{ *:[v32i16] }) - Complexity = 10
                        // Dst: (VPOPCNTWZrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1)
/*418348*/            0, /*End of Scope*/
/*418349*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::GF2P8MULB),// ->418371
/*418352*/            OPC_RecordChild0, // #1 = $src1
/*418353*/            OPC_RecordChild1, // #2 = $src2
/*418354*/            OPC_MoveParent,
/*418355*/            OPC_MoveChild2,
/*418356*/            OPC_CheckImmAllZerosV,
/*418357*/            OPC_MoveParent,
/*418358*/            OPC_CheckType, MVT::v32i8,
/*418360*/            OPC_CheckPatternPredicate, 180, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*418362*/            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), immAllZerosV:{ *:[v32i8] }) - Complexity = 10
                      // Dst: (VGF2P8MULBZ256rrkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*418371*/          /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::CVTNE2PS2BF16),// ->418395
/*418374*/            OPC_RecordChild0, // #1 = $src1
/*418375*/            OPC_CheckChild0Type, MVT::v16f32,
/*418377*/            OPC_RecordChild1, // #2 = $src2
/*418378*/            OPC_MoveParent,
/*418379*/            OPC_MoveChild2,
/*418380*/            OPC_CheckImmAllZerosV,
/*418381*/            OPC_MoveParent,
/*418382*/            OPC_CheckType, MVT::v32i16,
/*418384*/            OPC_CheckPatternPredicate, 183, // (Subtarget->hasBF16())
/*418386*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTNE2PS2BF16Zrrkz), 0,
                          MVT::v32i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86cvtne2ps2bf16:{ *:[v32i16] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), immAllZerosV:{ *:[v32i16] }) - Complexity = 10
                      // Dst: (VCVTNE2PS2BF16Zrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*418395*/          0, // EndSwitchOpcode
/*418396*/        /*Scope*/ 84, /*->418481*/
/*418397*/          OPC_RecordChild1, // #1 = $src
/*418398*/          OPC_MoveChild2,
/*418399*/          OPC_CheckImmAllZerosV,
/*418400*/          OPC_MoveParent,
/*418401*/          OPC_SwitchType /*2 cases */, 64, MVT::v32i8,// ->418468
/*418404*/            OPC_Scope, 10, /*->418416*/ // 2 children in Scope
/*418406*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*418408*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU8Z256rrkz), 0,
                            MVT::v32i8, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src, immAllZerosV:{ *:[v32i8] }) - Complexity = 7
                        // Dst: (VMOVDQU8Z256rrkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src)
/*418416*/            /*Scope*/ 50, /*->418467*/
/*418417*/              OPC_CheckPatternPredicate, 117, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/*418419*/              OPC_EmitInteger, MVT::i32, X86::VK64WMRegClassID,
/*418422*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v64i1, 2/*#Ops*/, 0, 2,  // Results = #3
/*418430*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v64i8, 0/*#Ops*/,  // Results = #4
/*418436*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*418439*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v64i8, 3/*#Ops*/, 4, 1, 5,  // Results = #6
/*418448*/              OPC_EmitNode1, TARGET_VAL(X86::VMOVDQU8Zrrkz), 0,
                            MVT::v64i8, 2/*#Ops*/, 3, 6,  // Results = #7
/*418456*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*418459*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                            MVT::v32i8, 2/*#Ops*/, 7, 8, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src1, immAllZerosV:{ *:[v32i8] }) - Complexity = 7
                        // 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] })
/*418467*/            0, /*End of Scope*/
/*418468*/          /*SwitchType*/ 10, MVT::v32i16,// ->418480
/*418470*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*418472*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU16Zrrkz), 0,
                          MVT::v32i16, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src, immAllZerosV:{ *:[v32i16] }) - Complexity = 7
                      // Dst: (VMOVDQU16Zrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src)
/*418480*/          0, // EndSwitchType
/*418481*/        /*Scope*/ 72|128,10/*1352*/, /*->419835*/
/*418483*/          OPC_MoveChild1,
/*418484*/          OPC_SwitchOpcode /*42 cases */, 111, TARGET_VAL(X86ISD::VBROADCAST),// ->418599
/*418488*/            OPC_RecordChild0, // #1 = $src
/*418489*/            OPC_Scope, 17, /*->418508*/ // 4 children in Scope
/*418491*/              OPC_CheckChild0Type, MVT::v16i8,
/*418493*/              OPC_MoveParent,
/*418494*/              OPC_RecordChild2, // #2 = $src0
/*418495*/              OPC_CheckType, MVT::v32i8,
/*418497*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*418499*/              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)
/*418508*/            /*Scope*/ 17, /*->418526*/
/*418509*/              OPC_CheckChild0Type, MVT::v8i16,
/*418511*/              OPC_MoveParent,
/*418512*/              OPC_RecordChild2, // #2 = $src0
/*418513*/              OPC_CheckType, MVT::v32i16,
/*418515*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*418517*/              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)
/*418526*/            /*Scope*/ 35, /*->418562*/
/*418527*/              OPC_CheckChild0Type, MVT::i8,
/*418529*/              OPC_MoveParent,
/*418530*/              OPC_RecordChild2, // #2 = $src0
/*418531*/              OPC_CheckType, MVT::v32i8,
/*418533*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*418535*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::i32, 0/*#Ops*/,  // Results = #3
/*418541*/              OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*418544*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::i32, 3/*#Ops*/, 3, 1, 4,  // Results = #5
/*418553*/              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] }))
/*418562*/            /*Scope*/ 35, /*->418598*/
/*418563*/              OPC_CheckChild0Type, MVT::i16,
/*418565*/              OPC_MoveParent,
/*418566*/              OPC_RecordChild2, // #2 = $src0
/*418567*/              OPC_CheckType, MVT::v32i16,
/*418569*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*418571*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::i32, 0/*#Ops*/,  // Results = #3
/*418577*/              OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*418580*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::i32, 3/*#Ops*/, 3, 1, 4,  // Results = #5
/*418589*/              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] }))
/*418598*/            0, /*End of Scope*/
/*418599*/          /*SwitchOpcode*/ 72, TARGET_VAL(X86ISD::VPERMV3),// ->418674
/*418602*/            OPC_RecordChild0, // #1 = $src2
/*418603*/            OPC_RecordChild1, // #2 = $src1
/*418604*/            OPC_RecordChild2, // #3 = $src3
/*418605*/            OPC_MoveParent,
/*418606*/            OPC_Scope, 32, /*->418640*/ // 2 children in Scope
/*418608*/              OPC_CheckChild2Same, 2,
/*418610*/              OPC_SwitchType /*2 cases */, 12, MVT::v32i16,// ->418625
/*418613*/                OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*418615*/                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)
/*418625*/              /*SwitchType*/ 12, MVT::v32i8,// ->418639
/*418627*/                OPC_CheckPatternPredicate, 181, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*418629*/                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)
/*418639*/              0, // EndSwitchType
/*418640*/            /*Scope*/ 32, /*->418673*/
/*418641*/              OPC_CheckChild2Same, 1,
/*418643*/              OPC_SwitchType /*2 cases */, 12, MVT::v32i16,// ->418658
/*418646*/                OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*418648*/                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)
/*418658*/              /*SwitchType*/ 12, MVT::v32i8,// ->418672
/*418660*/                OPC_CheckPatternPredicate, 181, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*418662*/                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)
/*418672*/              0, // EndSwitchType
/*418673*/            0, /*End of Scope*/
/*418674*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::ADD),// ->418711
/*418677*/            OPC_RecordChild0, // #1 = $src1
/*418678*/            OPC_RecordChild1, // #2 = $src2
/*418679*/            OPC_MoveParent,
/*418680*/            OPC_RecordChild2, // #3 = $src0
/*418681*/            OPC_SwitchType /*2 cases */, 12, MVT::v32i16,// ->418696
/*418684*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*418686*/              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)
/*418696*/            /*SwitchType*/ 12, MVT::v32i8,// ->418710
/*418698*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*418700*/              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)
/*418710*/            0, // EndSwitchType
/*418711*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::SUB),// ->418748
/*418714*/            OPC_RecordChild0, // #1 = $src1
/*418715*/            OPC_RecordChild1, // #2 = $src2
/*418716*/            OPC_MoveParent,
/*418717*/            OPC_RecordChild2, // #3 = $src0
/*418718*/            OPC_SwitchType /*2 cases */, 12, MVT::v32i16,// ->418733
/*418721*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*418723*/              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)
/*418733*/            /*SwitchType*/ 12, MVT::v32i8,// ->418747
/*418735*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*418737*/              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)
/*418747*/            0, // EndSwitchType
/*418748*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::SADDSAT),// ->418785
/*418751*/            OPC_RecordChild0, // #1 = $src1
/*418752*/            OPC_RecordChild1, // #2 = $src2
/*418753*/            OPC_MoveParent,
/*418754*/            OPC_RecordChild2, // #3 = $src0
/*418755*/            OPC_SwitchType /*2 cases */, 12, MVT::v32i16,// ->418770
/*418758*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*418760*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSWZrrk), 0,
                            MVT::v32i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (saddsat:{ *:[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)
/*418770*/            /*SwitchType*/ 12, MVT::v32i8,// ->418784
/*418772*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*418774*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSBZ256rrk), 0,
                            MVT::v32i8, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (saddsat:{ *:[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)
/*418784*/            0, // EndSwitchType
/*418785*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::SSUBSAT),// ->418822
/*418788*/            OPC_RecordChild0, // #1 = $src1
/*418789*/            OPC_RecordChild1, // #2 = $src2
/*418790*/            OPC_MoveParent,
/*418791*/            OPC_RecordChild2, // #3 = $src0
/*418792*/            OPC_SwitchType /*2 cases */, 12, MVT::v32i16,// ->418807
/*418795*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*418797*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSWZrrk), 0,
                            MVT::v32i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (ssubsat:{ *:[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)
/*418807*/            /*SwitchType*/ 12, MVT::v32i8,// ->418821
/*418809*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*418811*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSBZ256rrk), 0,
                            MVT::v32i8, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (ssubsat:{ *:[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)
/*418821*/            0, // EndSwitchType
/*418822*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::UADDSAT),// ->418859
/*418825*/            OPC_RecordChild0, // #1 = $src1
/*418826*/            OPC_RecordChild1, // #2 = $src2
/*418827*/            OPC_MoveParent,
/*418828*/            OPC_RecordChild2, // #3 = $src0
/*418829*/            OPC_SwitchType /*2 cases */, 12, MVT::v32i16,// ->418844
/*418832*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*418834*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSWZrrk), 0,
                            MVT::v32i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (uaddsat:{ *:[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)
/*418844*/            /*SwitchType*/ 12, MVT::v32i8,// ->418858
/*418846*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*418848*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSBZ256rrk), 0,
                            MVT::v32i8, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (uaddsat:{ *:[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)
/*418858*/            0, // EndSwitchType
/*418859*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::USUBSAT),// ->418896
/*418862*/            OPC_RecordChild0, // #1 = $src1
/*418863*/            OPC_RecordChild1, // #2 = $src2
/*418864*/            OPC_MoveParent,
/*418865*/            OPC_RecordChild2, // #3 = $src0
/*418866*/            OPC_SwitchType /*2 cases */, 12, MVT::v32i16,// ->418881
/*418869*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*418871*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSWZrrk), 0,
                            MVT::v32i16, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (usubsat:{ *:[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)
/*418881*/            /*SwitchType*/ 12, MVT::v32i8,// ->418895
/*418883*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*418885*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSBZ256rrk), 0,
                            MVT::v32i8, 4/*#Ops*/, 3, 0, 1, 2, 
                        // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (usubsat:{ *:[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)
/*418895*/            0, // EndSwitchType
/*418896*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::MUL),// ->418917
/*418899*/            OPC_RecordChild0, // #1 = $src1
/*418900*/            OPC_RecordChild1, // #2 = $src2
/*418901*/            OPC_MoveParent,
/*418902*/            OPC_RecordChild2, // #3 = $src0
/*418903*/            OPC_CheckType, MVT::v32i16,
/*418905*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*418907*/            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)
/*418917*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::MULHS),// ->418938
/*418920*/            OPC_RecordChild0, // #1 = $src1
/*418921*/            OPC_RecordChild1, // #2 = $src2
/*418922*/            OPC_MoveParent,
/*418923*/            OPC_RecordChild2, // #3 = $src0
/*418924*/            OPC_CheckType, MVT::v32i16,
/*418926*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*418928*/            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)
/*418938*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::MULHU),// ->418959
/*418941*/            OPC_RecordChild0, // #1 = $src1
/*418942*/            OPC_RecordChild1, // #2 = $src2
/*418943*/            OPC_MoveParent,
/*418944*/            OPC_RecordChild2, // #3 = $src0
/*418945*/            OPC_CheckType, MVT::v32i16,
/*418947*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*418949*/            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)
/*418959*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::MULHRS),// ->418980
/*418962*/            OPC_RecordChild0, // #1 = $src1
/*418963*/            OPC_RecordChild1, // #2 = $src2
/*418964*/            OPC_MoveParent,
/*418965*/            OPC_RecordChild2, // #3 = $src0
/*418966*/            OPC_CheckType, MVT::v32i16,
/*418968*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*418970*/            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)
/*418980*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::AVG),// ->419017
/*418983*/            OPC_RecordChild0, // #1 = $src1
/*418984*/            OPC_RecordChild1, // #2 = $src2
/*418985*/            OPC_MoveParent,
/*418986*/            OPC_RecordChild2, // #3 = $src0
/*418987*/            OPC_SwitchType /*2 cases */, 12, MVT::v32i16,// ->419002
/*418990*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*418992*/              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)
/*419002*/            /*SwitchType*/ 12, MVT::v32i8,// ->419016
/*419004*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*419006*/              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)
/*419016*/            0, // EndSwitchType
/*419017*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::MULTISHIFT),// ->419040
/*419020*/            OPC_RecordChild0, // #1 = $src1
/*419021*/            OPC_CheckChild0Type, MVT::v32i8,
/*419023*/            OPC_RecordChild1, // #2 = $src2
/*419024*/            OPC_MoveParent,
/*419025*/            OPC_RecordChild2, // #3 = $src0
/*419026*/            OPC_CheckType, MVT::v32i8,
/*419028*/            OPC_CheckPatternPredicate, 181, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*419030*/            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)
/*419040*/          /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::PACKSS),// ->419086
/*419043*/            OPC_RecordChild0, // #1 = $src1
/*419044*/            OPC_Scope, 19, /*->419065*/ // 2 children in Scope
/*419046*/              OPC_CheckChild0Type, MVT::v16i32,
/*419048*/              OPC_RecordChild1, // #2 = $src2
/*419049*/              OPC_MoveParent,
/*419050*/              OPC_RecordChild2, // #3 = $src0
/*419051*/              OPC_CheckType, MVT::v32i16,
/*419053*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*419055*/              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)
/*419065*/            /*Scope*/ 19, /*->419085*/
/*419066*/              OPC_CheckChild0Type, MVT::v16i16,
/*419068*/              OPC_RecordChild1, // #2 = $src2
/*419069*/              OPC_MoveParent,
/*419070*/              OPC_RecordChild2, // #3 = $src0
/*419071*/              OPC_CheckType, MVT::v32i8,
/*419073*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*419075*/              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)
/*419085*/            0, /*End of Scope*/
/*419086*/          /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::PACKUS),// ->419132
/*419089*/            OPC_RecordChild0, // #1 = $src1
/*419090*/            OPC_Scope, 19, /*->419111*/ // 2 children in Scope
/*419092*/              OPC_CheckChild0Type, MVT::v16i32,
/*419094*/              OPC_RecordChild1, // #2 = $src2
/*419095*/              OPC_MoveParent,
/*419096*/              OPC_RecordChild2, // #3 = $src0
/*419097*/              OPC_CheckType, MVT::v32i16,
/*419099*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*419101*/              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)
/*419111*/            /*Scope*/ 19, /*->419131*/
/*419112*/              OPC_CheckChild0Type, MVT::v16i16,
/*419114*/              OPC_RecordChild1, // #2 = $src2
/*419115*/              OPC_MoveParent,
/*419116*/              OPC_RecordChild2, // #3 = $src0
/*419117*/              OPC_CheckType, MVT::v32i8,
/*419119*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*419121*/              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)
/*419131*/            0, /*End of Scope*/
/*419132*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::VPMADDUBSW),// ->419153
/*419135*/            OPC_RecordChild0, // #1 = $src1
/*419136*/            OPC_RecordChild1, // #2 = $src2
/*419137*/            OPC_MoveParent,
/*419138*/            OPC_RecordChild2, // #3 = $src0
/*419139*/            OPC_CheckType, MVT::v32i16,
/*419141*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*419143*/            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)
/*419153*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::SMAX),// ->419190
/*419156*/            OPC_RecordChild0, // #1 = $src1
/*419157*/            OPC_RecordChild1, // #2 = $src2
/*419158*/            OPC_MoveParent,
/*419159*/            OPC_RecordChild2, // #3 = $src0
/*419160*/            OPC_SwitchType /*2 cases */, 12, MVT::v32i8,// ->419175
/*419163*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*419165*/              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)
/*419175*/            /*SwitchType*/ 12, MVT::v32i16,// ->419189
/*419177*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*419179*/              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)
/*419189*/            0, // EndSwitchType
/*419190*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::UMAX),// ->419227
/*419193*/            OPC_RecordChild0, // #1 = $src1
/*419194*/            OPC_RecordChild1, // #2 = $src2
/*419195*/            OPC_MoveParent,
/*419196*/            OPC_RecordChild2, // #3 = $src0
/*419197*/            OPC_SwitchType /*2 cases */, 12, MVT::v32i8,// ->419212
/*419200*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*419202*/              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)
/*419212*/            /*SwitchType*/ 12, MVT::v32i16,// ->419226
/*419214*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*419216*/              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)
/*419226*/            0, // EndSwitchType
/*419227*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::SMIN),// ->419264
/*419230*/            OPC_RecordChild0, // #1 = $src1
/*419231*/            OPC_RecordChild1, // #2 = $src2
/*419232*/            OPC_MoveParent,
/*419233*/            OPC_RecordChild2, // #3 = $src0
/*419234*/            OPC_SwitchType /*2 cases */, 12, MVT::v32i8,// ->419249
/*419237*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*419239*/              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)
/*419249*/            /*SwitchType*/ 12, MVT::v32i16,// ->419263
/*419251*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*419253*/              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)
/*419263*/            0, // EndSwitchType
/*419264*/          /*SwitchOpcode*/ 34, TARGET_VAL(ISD::UMIN),// ->419301
/*419267*/            OPC_RecordChild0, // #1 = $src1
/*419268*/            OPC_RecordChild1, // #2 = $src2
/*419269*/            OPC_MoveParent,
/*419270*/            OPC_RecordChild2, // #3 = $src0
/*419271*/            OPC_SwitchType /*2 cases */, 12, MVT::v32i8,// ->419286
/*419274*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*419276*/              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)
/*419286*/            /*SwitchType*/ 12, MVT::v32i16,// ->419300
/*419288*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*419290*/              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)
/*419300*/            0, // EndSwitchType
/*419301*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::VSHL),// ->419324
/*419304*/            OPC_RecordChild0, // #1 = $src1
/*419305*/            OPC_RecordChild1, // #2 = $src2
/*419306*/            OPC_CheckChild1Type, MVT::v8i16,
/*419308*/            OPC_MoveParent,
/*419309*/            OPC_RecordChild2, // #3 = $src0
/*419310*/            OPC_CheckType, MVT::v32i16,
/*419312*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*419314*/            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)
/*419324*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::VSRA),// ->419347
/*419327*/            OPC_RecordChild0, // #1 = $src1
/*419328*/            OPC_RecordChild1, // #2 = $src2
/*419329*/            OPC_CheckChild1Type, MVT::v8i16,
/*419331*/            OPC_MoveParent,
/*419332*/            OPC_RecordChild2, // #3 = $src0
/*419333*/            OPC_CheckType, MVT::v32i16,
/*419335*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*419337*/            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)
/*419347*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::VSRL),// ->419370
/*419350*/            OPC_RecordChild0, // #1 = $src1
/*419351*/            OPC_RecordChild1, // #2 = $src2
/*419352*/            OPC_CheckChild1Type, MVT::v8i16,
/*419354*/            OPC_MoveParent,
/*419355*/            OPC_RecordChild2, // #3 = $src0
/*419356*/            OPC_CheckType, MVT::v32i16,
/*419358*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*419360*/            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)
/*419370*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::VSHLV),// ->419391
/*419373*/            OPC_RecordChild0, // #1 = $src1
/*419374*/            OPC_RecordChild1, // #2 = $src2
/*419375*/            OPC_MoveParent,
/*419376*/            OPC_RecordChild2, // #3 = $src0
/*419377*/            OPC_CheckType, MVT::v32i16,
/*419379*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*419381*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVWZrrk), 0,
                          MVT::v32i16, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86vshlv:{ *:[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)
/*419391*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::VSRAV),// ->419412
/*419394*/            OPC_RecordChild0, // #1 = $src1
/*419395*/            OPC_RecordChild1, // #2 = $src2
/*419396*/            OPC_MoveParent,
/*419397*/            OPC_RecordChild2, // #3 = $src0
/*419398*/            OPC_CheckType, MVT::v32i16,
/*419400*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*419402*/            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, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*419412*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::VSRLV),// ->419433
/*419415*/            OPC_RecordChild0, // #1 = $src1
/*419416*/            OPC_RecordChild1, // #2 = $src2
/*419417*/            OPC_MoveParent,
/*419418*/            OPC_RecordChild2, // #3 = $src0
/*419419*/            OPC_CheckType, MVT::v32i16,
/*419421*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*419423*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVWZrrk), 0,
                          MVT::v32i16, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86vsrlv:{ *:[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)
/*419433*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VPERMV),// ->419470
/*419436*/            OPC_RecordChild0, // #1 = $src1
/*419437*/            OPC_RecordChild1, // #2 = $src2
/*419438*/            OPC_MoveParent,
/*419439*/            OPC_RecordChild2, // #3 = $src0
/*419440*/            OPC_SwitchType /*2 cases */, 12, MVT::v32i16,// ->419455
/*419443*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*419445*/              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)
/*419455*/            /*SwitchType*/ 12, MVT::v32i8,// ->419469
/*419457*/              OPC_CheckPatternPredicate, 181, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*419459*/              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)
/*419469*/            0, // EndSwitchType
/*419470*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::PSHUFB),// ->419491
/*419473*/            OPC_RecordChild0, // #1 = $src1
/*419474*/            OPC_RecordChild1, // #2 = $src2
/*419475*/            OPC_MoveParent,
/*419476*/            OPC_RecordChild2, // #3 = $src0
/*419477*/            OPC_CheckType, MVT::v32i8,
/*419479*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*419481*/            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)
/*419491*/          /*SwitchOpcode*/ 16, TARGET_VAL(ISD::TRUNCATE),// ->419510
/*419494*/            OPC_RecordChild0, // #1 = $src
/*419495*/            OPC_MoveParent,
/*419496*/            OPC_RecordChild2, // #2 = $src0
/*419497*/            OPC_CheckType, MVT::v32i8,
/*419499*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*419501*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVWBZrrk), 0,
                          MVT::v32i8, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (trunc:{ *:[v32i8] } VR512:{ *:[v32i16] }:$src), VR256X:{ *:[v32i8] }:$src0) - Complexity = 6
                      // Dst: (VPMOVWBZrrk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src)
/*419510*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::VTRUNCS),// ->419531
/*419513*/            OPC_RecordChild0, // #1 = $src
/*419514*/            OPC_CheckChild0Type, MVT::v32i16,
/*419516*/            OPC_MoveParent,
/*419517*/            OPC_RecordChild2, // #2 = $src0
/*419518*/            OPC_CheckType, MVT::v32i8,
/*419520*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*419522*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSWBZrrk), 0,
                          MVT::v32i8, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86vtruncs:{ *:[v32i8] } VR512:{ *:[v32i16] }:$src), VR256X:{ *:[v32i8] }:$src0) - Complexity = 6
                      // Dst: (VPMOVSWBZrrk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src)
/*419531*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::VTRUNCUS),// ->419552
/*419534*/            OPC_RecordChild0, // #1 = $src
/*419535*/            OPC_CheckChild0Type, MVT::v32i16,
/*419537*/            OPC_MoveParent,
/*419538*/            OPC_RecordChild2, // #2 = $src0
/*419539*/            OPC_CheckType, MVT::v32i8,
/*419541*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*419543*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSWBZrrk), 0,
                          MVT::v32i8, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, (X86vtruncus:{ *:[v32i8] } VR512:{ *:[v32i16] }:$src), VR256X:{ *:[v32i8] }:$src0) - Complexity = 6
                      // Dst: (VPMOVUSWBZrrk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src)
/*419552*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::ZERO_EXTEND),// ->419573
/*419555*/            OPC_RecordChild0, // #1 = $src
/*419556*/            OPC_CheckChild0Type, MVT::v32i8,
/*419558*/            OPC_MoveParent,
/*419559*/            OPC_RecordChild2, // #2 = $src0
/*419560*/            OPC_CheckType, MVT::v32i16,
/*419562*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*419564*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBWZrrk), 0,
                          MVT::v32i16, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (zext:{ *:[v32i16] } VR256X:{ *:[v32i8] }:$src), VR512:{ *:[v32i16] }:$src0) - Complexity = 6
                      // Dst: (VPMOVZXBWZrrk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src)
/*419573*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::SIGN_EXTEND),// ->419594
/*419576*/            OPC_RecordChild0, // #1 = $src
/*419577*/            OPC_CheckChild0Type, MVT::v32i8,
/*419579*/            OPC_MoveParent,
/*419580*/            OPC_RecordChild2, // #2 = $src0
/*419581*/            OPC_CheckType, MVT::v32i16,
/*419583*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*419585*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBWZrrk), 0,
                          MVT::v32i16, 3/*#Ops*/, 2, 0, 1, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (sext:{ *:[v32i16] } VR256X:{ *:[v32i8] }:$src), VR512:{ *:[v32i16] }:$src0) - Complexity = 6
                      // Dst: (VPMOVSXBWZrrk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src)
/*419594*/          /*SwitchOpcode*/ 31, TARGET_VAL(ISD::ABS),// ->419628
/*419597*/            OPC_RecordChild0, // #1 = $src1
/*419598*/            OPC_MoveParent,
/*419599*/            OPC_RecordChild2, // #2 = $src0
/*419600*/            OPC_SwitchType /*2 cases */, 11, MVT::v32i16,// ->419614
/*419603*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*419605*/              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)
/*419614*/            /*SwitchType*/ 11, MVT::v32i8,// ->419627
/*419616*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*419618*/              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)
/*419627*/            0, // EndSwitchType
/*419628*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::UNPCKL),// ->419665
/*419631*/            OPC_RecordChild0, // #1 = $src1
/*419632*/            OPC_RecordChild1, // #2 = $src2
/*419633*/            OPC_MoveParent,
/*419634*/            OPC_RecordChild2, // #3 = $src0
/*419635*/            OPC_SwitchType /*2 cases */, 12, MVT::v32i8,// ->419650
/*419638*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*419640*/              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)
/*419650*/            /*SwitchType*/ 12, MVT::v32i16,// ->419664
/*419652*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*419654*/              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)
/*419664*/            0, // EndSwitchType
/*419665*/          /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::UNPCKH),// ->419702
/*419668*/            OPC_RecordChild0, // #1 = $src1
/*419669*/            OPC_RecordChild1, // #2 = $src2
/*419670*/            OPC_MoveParent,
/*419671*/            OPC_RecordChild2, // #3 = $src0
/*419672*/            OPC_SwitchType /*2 cases */, 12, MVT::v32i8,// ->419687
/*419675*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*419677*/              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)
/*419687*/            /*SwitchType*/ 12, MVT::v32i16,// ->419701
/*419689*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*419691*/              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)
/*419701*/            0, // EndSwitchType
/*419702*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::VSHLDV),// ->419725
/*419705*/            OPC_RecordChild0, // #1 = $src1
/*419706*/            OPC_RecordChild1, // #2 = $src2
/*419707*/            OPC_RecordChild2, // #3 = $src3
/*419708*/            OPC_MoveParent,
/*419709*/            OPC_CheckChild2Same, 1,
/*419711*/            OPC_CheckType, MVT::v32i16,
/*419713*/            OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*419715*/            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)
/*419725*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::VSHRDV),// ->419748
/*419728*/            OPC_RecordChild0, // #1 = $src1
/*419729*/            OPC_RecordChild1, // #2 = $src2
/*419730*/            OPC_RecordChild2, // #3 = $src3
/*419731*/            OPC_MoveParent,
/*419732*/            OPC_CheckChild2Same, 1,
/*419734*/            OPC_CheckType, MVT::v32i16,
/*419736*/            OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*419738*/            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)
/*419748*/          /*SwitchOpcode*/ 39, TARGET_VAL(ISD::CTPOP),// ->419790
/*419751*/            OPC_RecordChild0, // #1 = $src1
/*419752*/            OPC_Scope, 17, /*->419771*/ // 2 children in Scope
/*419754*/              OPC_CheckChild0Type, MVT::v32i8,
/*419756*/              OPC_MoveParent,
/*419757*/              OPC_RecordChild2, // #2 = $src0
/*419758*/              OPC_CheckType, MVT::v32i8,
/*419760*/              OPC_CheckPatternPredicate, 115, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/*419762*/              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)
/*419771*/            /*Scope*/ 17, /*->419789*/
/*419772*/              OPC_CheckChild0Type, MVT::v32i16,
/*419774*/              OPC_MoveParent,
/*419775*/              OPC_RecordChild2, // #2 = $src0
/*419776*/              OPC_CheckType, MVT::v32i16,
/*419778*/              OPC_CheckPatternPredicate, 114, // (Subtarget->hasBITALG())
/*419780*/              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)
/*419789*/            0, /*End of Scope*/
/*419790*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::GF2P8MULB),// ->419811
/*419793*/            OPC_RecordChild0, // #1 = $src1
/*419794*/            OPC_RecordChild1, // #2 = $src2
/*419795*/            OPC_MoveParent,
/*419796*/            OPC_RecordChild2, // #3 = $src0
/*419797*/            OPC_CheckType, MVT::v32i8,
/*419799*/            OPC_CheckPatternPredicate, 180, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*419801*/            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)
/*419811*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::CVTNE2PS2BF16),// ->419834
/*419814*/            OPC_RecordChild0, // #1 = $src1
/*419815*/            OPC_CheckChild0Type, MVT::v16f32,
/*419817*/            OPC_RecordChild1, // #2 = $src2
/*419818*/            OPC_MoveParent,
/*419819*/            OPC_RecordChild2, // #3 = $src0
/*419820*/            OPC_CheckType, MVT::v32i16,
/*419822*/            OPC_CheckPatternPredicate, 183, // (Subtarget->hasBF16())
/*419824*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTNE2PS2BF16Zrrk), 0,
                          MVT::v32i16, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, (X86cvtne2ps2bf16:{ *:[v32i16] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2), VR512:{ *:[v32i16] }:$src0) - Complexity = 6
                      // Dst: (VCVTNE2PS2BF16Zrrk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*419834*/          0, // EndSwitchOpcode
/*419835*/        /*Scope*/ 103, /*->419939*/
/*419836*/          OPC_RecordChild1, // #1 = $src1
/*419837*/          OPC_RecordChild2, // #2 = $src0
/*419838*/          OPC_SwitchType /*2 cases */, 84, MVT::v32i8,// ->419925
/*419841*/            OPC_Scope, 11, /*->419854*/ // 2 children in Scope
/*419843*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*419845*/              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)
/*419854*/            /*Scope*/ 69, /*->419924*/
/*419855*/              OPC_CheckPatternPredicate, 117, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/*419857*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v64i8, 0/*#Ops*/,  // Results = #3
/*419863*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*419866*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v64i8, 3/*#Ops*/, 3, 2, 4,  // Results = #5
/*419875*/              OPC_EmitInteger, MVT::i32, X86::VK64WMRegClassID,
/*419878*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v64i1, 2/*#Ops*/, 0, 6,  // Results = #7
/*419886*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::v64i8, 0/*#Ops*/,  // Results = #8
/*419892*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*419895*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::v64i8, 3/*#Ops*/, 8, 1, 9,  // Results = #10
/*419904*/              OPC_EmitNode1, TARGET_VAL(X86::VMOVDQU8Zrrk), 0,
                            MVT::v64i8, 3/*#Ops*/, 5, 7, 10,  // Results = #11
/*419913*/              OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*419916*/              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] })
/*419924*/            0, /*End of Scope*/
/*419925*/          /*SwitchType*/ 11, MVT::v32i16,// ->419938
/*419927*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*419929*/            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)
/*419938*/          0, // EndSwitchType
/*419939*/        0, /*End of Scope*/
/*419940*/      /*Scope*/ 12|128,10/*1292*/, /*->421234*/
/*419942*/        OPC_CheckChild0Type, MVT::v64i1,
/*419944*/        OPC_Scope, 62|128,5/*702*/, /*->420649*/ // 4 children in Scope
/*419947*/          OPC_MoveChild1,
/*419948*/          OPC_SwitchOpcode /*26 cases */, 46, TARGET_VAL(X86ISD::PALIGNR),// ->419998
/*419952*/            OPC_RecordChild0, // #1 = $src1
/*419953*/            OPC_RecordChild1, // #2 = $src2
/*419954*/            OPC_RecordChild2, // #3 = $src3
/*419955*/            OPC_MoveChild2,
/*419956*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*419959*/            OPC_MoveParent,
/*419960*/            OPC_MoveParent,
/*419961*/            OPC_Scope, 17, /*->419980*/ // 2 children in Scope
/*419963*/              OPC_MoveChild2,
/*419964*/              OPC_CheckImmAllZerosV,
/*419965*/              OPC_MoveParent,
/*419966*/              OPC_CheckType, MVT::v64i8,
/*419968*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*419970*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPALIGNRZrrikz), 0,
                            MVT::v64i8, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86PAlignr:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v64i8] }) - Complexity = 13
                        // Dst: (VPALIGNRZrrikz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (timm:{ *:[i8] }):$src3)
/*419980*/            /*Scope*/ 16, /*->419997*/
/*419981*/              OPC_RecordChild2, // #4 = $src0
/*419982*/              OPC_CheckType, MVT::v64i8,
/*419984*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*419986*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPALIGNRZrrik), 0,
                            MVT::v64i8, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86PAlignr:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (timm:{ *:[i8] }):$src3), VR512:{ *:[v64i8] }:$src0) - Complexity = 9
                        // Dst: (VPALIGNRZrrik:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (timm:{ *:[i8] }):$src3)
/*419997*/            0, /*End of Scope*/
/*419998*/          /*SwitchOpcode*/ 46, TARGET_VAL(X86ISD::GF2P8AFFINEINVQB),// ->420047
/*420001*/            OPC_RecordChild0, // #1 = $src1
/*420002*/            OPC_RecordChild1, // #2 = $src2
/*420003*/            OPC_RecordChild2, // #3 = $src3
/*420004*/            OPC_MoveChild2,
/*420005*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*420008*/            OPC_MoveParent,
/*420009*/            OPC_MoveParent,
/*420010*/            OPC_Scope, 17, /*->420029*/ // 2 children in Scope
/*420012*/              OPC_MoveChild2,
/*420013*/              OPC_CheckImmAllZerosV,
/*420014*/              OPC_MoveParent,
/*420015*/              OPC_CheckType, MVT::v64i8,
/*420017*/              OPC_CheckPatternPredicate, 186, // (Subtarget->hasAVX512()) && (Subtarget->hasBWI()) && (Subtarget->hasGFNI())
/*420019*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEINVQBZrrikz), 0,
                            MVT::v64i8, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86GF2P8affineinvqb:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v64i8] }) - Complexity = 13
                        // Dst: (VGF2P8AFFINEINVQBZrrikz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (timm:{ *:[i8] }):$src3)
/*420029*/            /*Scope*/ 16, /*->420046*/
/*420030*/              OPC_RecordChild2, // #4 = $src0
/*420031*/              OPC_CheckType, MVT::v64i8,
/*420033*/              OPC_CheckPatternPredicate, 186, // (Subtarget->hasAVX512()) && (Subtarget->hasBWI()) && (Subtarget->hasGFNI())
/*420035*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEINVQBZrrik), 0,
                            MVT::v64i8, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86GF2P8affineinvqb:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (timm:{ *:[i8] }):$src3), VR512:{ *:[v64i8] }:$src0) - Complexity = 9
                        // Dst: (VGF2P8AFFINEINVQBZrrik:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (timm:{ *:[i8] }):$src3)
/*420046*/            0, /*End of Scope*/
/*420047*/          /*SwitchOpcode*/ 46, TARGET_VAL(X86ISD::GF2P8AFFINEQB),// ->420096
/*420050*/            OPC_RecordChild0, // #1 = $src1
/*420051*/            OPC_RecordChild1, // #2 = $src2
/*420052*/            OPC_RecordChild2, // #3 = $src3
/*420053*/            OPC_MoveChild2,
/*420054*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*420057*/            OPC_MoveParent,
/*420058*/            OPC_MoveParent,
/*420059*/            OPC_Scope, 17, /*->420078*/ // 2 children in Scope
/*420061*/              OPC_MoveChild2,
/*420062*/              OPC_CheckImmAllZerosV,
/*420063*/              OPC_MoveParent,
/*420064*/              OPC_CheckType, MVT::v64i8,
/*420066*/              OPC_CheckPatternPredicate, 186, // (Subtarget->hasAVX512()) && (Subtarget->hasBWI()) && (Subtarget->hasGFNI())
/*420068*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEQBZrrikz), 0,
                            MVT::v64i8, 4/*#Ops*/, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86GF2P8affineqb:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (timm:{ *:[i8] }):$src3), immAllZerosV:{ *:[v64i8] }) - Complexity = 13
                        // Dst: (VGF2P8AFFINEQBZrrikz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (timm:{ *:[i8] }):$src3)
/*420078*/            /*Scope*/ 16, /*->420095*/
/*420079*/              OPC_RecordChild2, // #4 = $src0
/*420080*/              OPC_CheckType, MVT::v64i8,
/*420082*/              OPC_CheckPatternPredicate, 186, // (Subtarget->hasAVX512()) && (Subtarget->hasBWI()) && (Subtarget->hasGFNI())
/*420084*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEQBZrrik), 0,
                            MVT::v64i8, 5/*#Ops*/, 4, 0, 1, 2, 3, 
                        // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86GF2P8affineqb:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (timm:{ *:[i8] }):$src3), VR512:{ *:[v64i8] }:$src0) - Complexity = 9
                        // Dst: (VGF2P8AFFINEQBZrrik:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (timm:{ *:[i8] }):$src3)
/*420095*/            0, /*End of Scope*/
/*420096*/          /*SwitchOpcode*/ 59, TARGET_VAL(X86ISD::VBROADCAST),// ->420158
/*420099*/            OPC_RecordChild0, // #1 = $src
/*420100*/            OPC_Scope, 18, /*->420120*/ // 2 children in Scope
/*420102*/              OPC_CheckChild0Type, MVT::v16i8,
/*420104*/              OPC_MoveParent,
/*420105*/              OPC_MoveChild2,
/*420106*/              OPC_CheckImmAllZerosV,
/*420107*/              OPC_MoveParent,
/*420108*/              OPC_CheckType, MVT::v64i8,
/*420110*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*420112*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTBZrkz), 0,
                            MVT::v64i8, 2/*#Ops*/, 0, 1, 
                        // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86VBroadcast:{ *:[v64i8] } VR128X:{ *:[v16i8] }:$src), immAllZerosV:{ *:[v64i8] }) - Complexity = 10
                        // Dst: (VPBROADCASTBZrkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*420120*/            /*Scope*/ 36, /*->420157*/
/*420121*/              OPC_CheckChild0Type, MVT::i8,
/*420123*/              OPC_MoveParent,
/*420124*/              OPC_MoveChild2,
/*420125*/              OPC_CheckImmAllZerosV,
/*420126*/              OPC_MoveParent,
/*420127*/              OPC_CheckType, MVT::v64i8,
/*420129*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*420131*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::i32, 0/*#Ops*/,  // Results = #2
/*420137*/              OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*420140*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::i32, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/*420149*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTBrZrkz), 0,
                            MVT::v64i8, 2/*#Ops*/, 0, 4, 
                        // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (X86VBroadcast:{ *:[v64i8] } GR8:{ *:[i8] }:$src), immAllZerosV:{ *:[v64i8] }) - Complexity = 10
                        // Dst: (VPBROADCASTBrZrkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$src, sub_8bit:{ *:[i32] }))
/*420157*/            0, /*End of Scope*/
/*420158*/          /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::VPERMV3),// ->420182
/*420161*/            OPC_RecordChild0, // #1 = $src1
/*420162*/            OPC_RecordChild1, // #2 = $src2
/*420163*/            OPC_RecordChild2, // #3 = $src3
/*420164*/            OPC_MoveParent,
/*420165*/            OPC_MoveChild2,
/*420166*/            OPC_CheckImmAllZerosV,
/*420167*/            OPC_MoveParent,
/*420168*/            OPC_CheckType, MVT::v64i8,
/*420170*/            OPC_CheckPatternPredicate, 187, // (Subtarget->hasVBMI())
/*420172*/            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), immAllZerosV:{ *:[v64i8] }) - Complexity = 10
                      // Dst: (VPERMT2Brrkz:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src2, VR512:{ *:[v64i8] }:$src3)
/*420182*/          /*SwitchOpcode*/ 19, TARGET_VAL(ISD::ADD),// ->420204
/*420185*/            OPC_RecordChild0, // #1 = $src1
/*420186*/            OPC_RecordChild1, // #2 = $src2
/*420187*/            OPC_MoveParent,
/*420188*/            OPC_MoveChild2,
/*420189*/            OPC_CheckImmAllZerosV,
/*420190*/            OPC_MoveParent,
/*420191*/            OPC_CheckType, MVT::v64i8,
/*420193*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*420195*/            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), immAllZerosV:{ *:[v64i8] }) - Complexity = 10
                      // Dst: (VPADDBZrrkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*420204*/          /*SwitchOpcode*/ 19, TARGET_VAL(ISD::SUB),// ->420226
/*420207*/            OPC_RecordChild0, // #1 = $src1
/*420208*/            OPC_RecordChild1, // #2 = $src2
/*420209*/            OPC_MoveParent,
/*420210*/            OPC_MoveChild2,
/*420211*/            OPC_CheckImmAllZerosV,
/*420212*/            OPC_MoveParent,
/*420213*/            OPC_CheckType, MVT::v64i8,
/*420215*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*420217*/            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), immAllZerosV:{ *:[v64i8] }) - Complexity = 10
                      // Dst: (VPSUBBZrrkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*420226*/          /*SwitchOpcode*/ 19, TARGET_VAL(ISD::SADDSAT),// ->420248
/*420229*/            OPC_RecordChild0, // #1 = $src1
/*420230*/            OPC_RecordChild1, // #2 = $src2
/*420231*/            OPC_MoveParent,
/*420232*/            OPC_MoveChild2,
/*420233*/            OPC_CheckImmAllZerosV,
/*420234*/            OPC_MoveParent,
/*420235*/            OPC_CheckType, MVT::v64i8,
/*420237*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*420239*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSBZrrkz), 0,
                          MVT::v64i8, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (saddsat:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2), immAllZerosV:{ *:[v64i8] }) - Complexity = 10
                      // Dst: (VPADDSBZrrkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*420248*/          /*SwitchOpcode*/ 19, TARGET_VAL(ISD::SSUBSAT),// ->420270
/*420251*/            OPC_RecordChild0, // #1 = $src1
/*420252*/            OPC_RecordChild1, // #2 = $src2
/*420253*/            OPC_MoveParent,
/*420254*/            OPC_MoveChild2,
/*420255*/            OPC_CheckImmAllZerosV,
/*420256*/            OPC_MoveParent,
/*420257*/            OPC_CheckType, MVT::v64i8,
/*420259*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*420261*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSBZrrkz), 0,
                          MVT::v64i8, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (ssubsat:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2), immAllZerosV:{ *:[v64i8] }) - Complexity = 10
                      // Dst: (VPSUBSBZrrkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*420270*/          /*SwitchOpcode*/ 19, TARGET_VAL(ISD::UADDSAT),// ->420292
/*420273*/            OPC_RecordChild0, // #1 = $src1
/*420274*/            OPC_RecordChild1, // #2 = $src2
/*420275*/            OPC_MoveParent,
/*420276*/            OPC_MoveChild2,
/*420277*/            OPC_CheckImmAllZerosV,
/*420278*/            OPC_MoveParent,
/*420279*/            OPC_CheckType, MVT::v64i8,
/*420281*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*420283*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSBZrrkz), 0,
                          MVT::v64i8, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (uaddsat:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2), immAllZerosV:{ *:[v64i8] }) - Complexity = 10
                      // Dst: (VPADDUSBZrrkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*420292*/          /*SwitchOpcode*/ 19, TARGET_VAL(ISD::USUBSAT),// ->420314
/*420295*/            OPC_RecordChild0, // #1 = $src1
/*420296*/            OPC_RecordChild1, // #2 = $src2
/*420297*/            OPC_MoveParent,
/*420298*/            OPC_MoveChild2,
/*420299*/            OPC_CheckImmAllZerosV,
/*420300*/            OPC_MoveParent,
/*420301*/            OPC_CheckType, MVT::v64i8,
/*420303*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*420305*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSBZrrkz), 0,
                          MVT::v64i8, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (usubsat:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2), immAllZerosV:{ *:[v64i8] }) - Complexity = 10
                      // Dst: (VPSUBUSBZrrkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*420314*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::AVG),// ->420336
/*420317*/            OPC_RecordChild0, // #1 = $src1
/*420318*/            OPC_RecordChild1, // #2 = $src2
/*420319*/            OPC_MoveParent,
/*420320*/            OPC_MoveChild2,
/*420321*/            OPC_CheckImmAllZerosV,
/*420322*/            OPC_MoveParent,
/*420323*/            OPC_CheckType, MVT::v64i8,
/*420325*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*420327*/            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), immAllZerosV:{ *:[v64i8] }) - Complexity = 10
                      // Dst: (VPAVGBZrrkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*420336*/          /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::MULTISHIFT),// ->420360
/*420339*/            OPC_RecordChild0, // #1 = $src1
/*420340*/            OPC_CheckChild0Type, MVT::v64i8,
/*420342*/            OPC_RecordChild1, // #2 = $src2
/*420343*/            OPC_MoveParent,
/*420344*/            OPC_MoveChild2,
/*420345*/            OPC_CheckImmAllZerosV,
/*420346*/            OPC_MoveParent,
/*420347*/            OPC_CheckType, MVT::v64i8,
/*420349*/            OPC_CheckPatternPredicate, 187, // (Subtarget->hasVBMI())
/*420351*/            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), immAllZerosV:{ *:[v64i8] }) - Complexity = 10
                      // Dst: (VPMULTISHIFTQBZrrkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*420360*/          /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::PACKSS),// ->420384
/*420363*/            OPC_RecordChild0, // #1 = $src1
/*420364*/            OPC_CheckChild0Type, MVT::v32i16,
/*420366*/            OPC_RecordChild1, // #2 = $src2
/*420367*/            OPC_MoveParent,
/*420368*/            OPC_MoveChild2,
/*420369*/            OPC_CheckImmAllZerosV,
/*420370*/            OPC_MoveParent,
/*420371*/            OPC_CheckType, MVT::v64i8,
/*420373*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*420375*/            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), immAllZerosV:{ *:[v64i8] }) - Complexity = 10
                      // Dst: (VPACKSSWBZrrkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*420384*/          /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::PACKUS),// ->420408
/*420387*/            OPC_RecordChild0, // #1 = $src1
/*420388*/            OPC_CheckChild0Type, MVT::v32i16,
/*420390*/            OPC_RecordChild1, // #2 = $src2
/*420391*/            OPC_MoveParent,
/*420392*/            OPC_MoveChild2,
/*420393*/            OPC_CheckImmAllZerosV,
/*420394*/            OPC_MoveParent,
/*420395*/            OPC_CheckType, MVT::v64i8,
/*420397*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*420399*/            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), immAllZerosV:{ *:[v64i8] }) - Complexity = 10
                      // Dst: (VPACKUSWBZrrkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*420408*/          /*SwitchOpcode*/ 19, TARGET_VAL(ISD::SMAX),// ->420430
/*420411*/            OPC_RecordChild0, // #1 = $src1
/*420412*/            OPC_RecordChild1, // #2 = $src2
/*420413*/            OPC_MoveParent,
/*420414*/            OPC_MoveChild2,
/*420415*/            OPC_CheckImmAllZerosV,
/*420416*/            OPC_MoveParent,
/*420417*/            OPC_CheckType, MVT::v64i8,
/*420419*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*420421*/            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), immAllZerosV:{ *:[v64i8] }) - Complexity = 10
                      // Dst: (VPMAXSBZrrkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*420430*/          /*SwitchOpcode*/ 19, TARGET_VAL(ISD::UMAX),// ->420452
/*420433*/            OPC_RecordChild0, // #1 = $src1
/*420434*/            OPC_RecordChild1, // #2 = $src2
/*420435*/            OPC_MoveParent,
/*420436*/            OPC_MoveChild2,
/*420437*/            OPC_CheckImmAllZerosV,
/*420438*/            OPC_MoveParent,
/*420439*/            OPC_CheckType, MVT::v64i8,
/*420441*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*420443*/            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), immAllZerosV:{ *:[v64i8] }) - Complexity = 10
                      // Dst: (VPMAXUBZrrkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*420452*/          /*SwitchOpcode*/ 19, TARGET_VAL(ISD::SMIN),// ->420474
/*420455*/            OPC_RecordChild0, // #1 = $src1
/*420456*/            OPC_RecordChild1, // #2 = $src2
/*420457*/            OPC_MoveParent,
/*420458*/            OPC_MoveChild2,
/*420459*/            OPC_CheckImmAllZerosV,
/*420460*/            OPC_MoveParent,
/*420461*/            OPC_CheckType, MVT::v64i8,
/*420463*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*420465*/            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), immAllZerosV:{ *:[v64i8] }) - Complexity = 10
                      // Dst: (VPMINSBZrrkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*420474*/          /*SwitchOpcode*/ 19, TARGET_VAL(ISD::UMIN),// ->420496
/*420477*/            OPC_RecordChild0, // #1 = $src1
/*420478*/            OPC_RecordChild1, // #2 = $src2
/*420479*/            OPC_MoveParent,
/*420480*/            OPC_MoveChild2,
/*420481*/            OPC_CheckImmAllZerosV,
/*420482*/            OPC_MoveParent,
/*420483*/            OPC_CheckType, MVT::v64i8,
/*420485*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*420487*/            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), immAllZerosV:{ *:[v64i8] }) - Complexity = 10
                      // Dst: (VPMINUBZrrkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*420496*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::VPERMV),// ->420518
/*420499*/            OPC_RecordChild0, // #1 = $src1
/*420500*/            OPC_RecordChild1, // #2 = $src2
/*420501*/            OPC_MoveParent,
/*420502*/            OPC_MoveChild2,
/*420503*/            OPC_CheckImmAllZerosV,
/*420504*/            OPC_MoveParent,
/*420505*/            OPC_CheckType, MVT::v64i8,
/*420507*/            OPC_CheckPatternPredicate, 187, // (Subtarget->hasVBMI())
/*420509*/            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), immAllZerosV:{ *:[v64i8] }) - Complexity = 10
                      // Dst: (VPERMBZrrkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*420518*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::PSHUFB),// ->420540
/*420521*/            OPC_RecordChild0, // #1 = $src1
/*420522*/            OPC_RecordChild1, // #2 = $src2
/*420523*/            OPC_MoveParent,
/*420524*/            OPC_MoveChild2,
/*420525*/            OPC_CheckImmAllZerosV,
/*420526*/            OPC_MoveParent,
/*420527*/            OPC_CheckType, MVT::v64i8,
/*420529*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*420531*/            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), immAllZerosV:{ *:[v64i8] }) - Complexity = 10
                      // Dst: (VPSHUFBZrrkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*420540*/          /*SwitchOpcode*/ 17, TARGET_VAL(ISD::ABS),// ->420560
/*420543*/            OPC_RecordChild0, // #1 = $src1
/*420544*/            OPC_MoveParent,
/*420545*/            OPC_MoveChild2,
/*420546*/            OPC_CheckImmAllZerosV,
/*420547*/            OPC_MoveParent,
/*420548*/            OPC_CheckType, MVT::v64i8,
/*420550*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*420552*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSBZrrkz), 0,
                          MVT::v64i8, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (abs:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1), immAllZerosV:{ *:[v64i8] }) - Complexity = 10
                      // Dst: (VPABSBZrrkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1)
/*420560*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::UNPCKL),// ->420582
/*420563*/            OPC_RecordChild0, // #1 = $src1
/*420564*/            OPC_RecordChild1, // #2 = $src2
/*420565*/            OPC_MoveParent,
/*420566*/            OPC_MoveChild2,
/*420567*/            OPC_CheckImmAllZerosV,
/*420568*/            OPC_MoveParent,
/*420569*/            OPC_CheckType, MVT::v64i8,
/*420571*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*420573*/            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), immAllZerosV:{ *:[v64i8] }) - Complexity = 10
                      // Dst: (VPUNPCKLBWZrrkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*420582*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::UNPCKH),// ->420604
/*420585*/            OPC_RecordChild0, // #1 = $src1
/*420586*/            OPC_RecordChild1, // #2 = $src2
/*420587*/            OPC_MoveParent,
/*420588*/            OPC_MoveChild2,
/*420589*/            OPC_CheckImmAllZerosV,
/*420590*/            OPC_MoveParent,
/*420591*/            OPC_CheckType, MVT::v64i8,
/*420593*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*420595*/            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), immAllZerosV:{ *:[v64i8] }) - Complexity = 10
                      // Dst: (VPUNPCKHBWZrrkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*420604*/          /*SwitchOpcode*/ 19, TARGET_VAL(ISD::CTPOP),// ->420626
/*420607*/            OPC_RecordChild0, // #1 = $src1
/*420608*/            OPC_CheckChild0Type, MVT::v64i8,
/*420610*/            OPC_MoveParent,
/*420611*/            OPC_MoveChild2,
/*420612*/            OPC_CheckImmAllZerosV,
/*420613*/            OPC_MoveParent,
/*420614*/            OPC_CheckType, MVT::v64i8,
/*420616*/            OPC_CheckPatternPredicate, 114, // (Subtarget->hasBITALG())
/*420618*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPOPCNTBZrrkz), 0,
                          MVT::v64i8, 2/*#Ops*/, 0, 1, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (ctpop:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1), immAllZerosV:{ *:[v64i8] }) - Complexity = 10
                      // Dst: (VPOPCNTBZrrkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1)
/*420626*/          /*SwitchOpcode*/ 19, TARGET_VAL(X86ISD::GF2P8MULB),// ->420648
/*420629*/            OPC_RecordChild0, // #1 = $src1
/*420630*/            OPC_RecordChild1, // #2 = $src2
/*420631*/            OPC_MoveParent,
/*420632*/            OPC_MoveChild2,
/*420633*/            OPC_CheckImmAllZerosV,
/*420634*/            OPC_MoveParent,
/*420635*/            OPC_CheckType, MVT::v64i8,
/*420637*/            OPC_CheckPatternPredicate, 186, // (Subtarget->hasAVX512()) && (Subtarget->hasBWI()) && (Subtarget->hasGFNI())
/*420639*/            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), immAllZerosV:{ *:[v64i8] }) - Complexity = 10
                      // Dst: (VGF2P8MULBZrrkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*420648*/          0, // EndSwitchOpcode
/*420649*/        /*Scope*/ 16, /*->420666*/
/*420650*/          OPC_RecordChild1, // #1 = $src
/*420651*/          OPC_MoveChild2,
/*420652*/          OPC_CheckImmAllZerosV,
/*420653*/          OPC_MoveParent,
/*420654*/          OPC_CheckType, MVT::v64i8,
/*420656*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*420658*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU8Zrrkz), 0,
                        MVT::v64i8, 2/*#Ops*/, 0, 1, 
                    // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src, immAllZerosV:{ *:[v64i8] }) - Complexity = 7
                    // Dst: (VMOVDQU8Zrrkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src)
/*420666*/        /*Scope*/ 37|128,4/*549*/, /*->421217*/
/*420668*/          OPC_MoveChild1,
/*420669*/          OPC_SwitchOpcode /*23 cases */, 57, TARGET_VAL(X86ISD::VBROADCAST),// ->420730
/*420673*/            OPC_RecordChild0, // #1 = $src
/*420674*/            OPC_Scope, 17, /*->420693*/ // 2 children in Scope
/*420676*/              OPC_CheckChild0Type, MVT::v16i8,
/*420678*/              OPC_MoveParent,
/*420679*/              OPC_RecordChild2, // #2 = $src0
/*420680*/              OPC_CheckType, MVT::v64i8,
/*420682*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*420684*/              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)
/*420693*/            /*Scope*/ 35, /*->420729*/
/*420694*/              OPC_CheckChild0Type, MVT::i8,
/*420696*/              OPC_MoveParent,
/*420697*/              OPC_RecordChild2, // #2 = $src0
/*420698*/              OPC_CheckType, MVT::v64i8,
/*420700*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*420702*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::i32, 0/*#Ops*/,  // Results = #3
/*420708*/              OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*420711*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::i32, 3/*#Ops*/, 3, 1, 4,  // Results = #5
/*420720*/              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] }))
/*420729*/            0, /*End of Scope*/
/*420730*/          /*SwitchOpcode*/ 38, TARGET_VAL(X86ISD::VPERMV3),// ->420771
/*420733*/            OPC_RecordChild0, // #1 = $src2
/*420734*/            OPC_RecordChild1, // #2 = $src1
/*420735*/            OPC_RecordChild2, // #3 = $src3
/*420736*/            OPC_MoveParent,
/*420737*/            OPC_CheckType, MVT::v64i8,
/*420739*/            OPC_Scope, 14, /*->420755*/ // 2 children in Scope
/*420741*/              OPC_CheckChild2Same, 2,
/*420743*/              OPC_CheckPatternPredicate, 187, // (Subtarget->hasVBMI())
/*420745*/              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)
/*420755*/            /*Scope*/ 14, /*->420770*/
/*420756*/              OPC_CheckChild2Same, 1,
/*420758*/              OPC_CheckPatternPredicate, 187, // (Subtarget->hasVBMI())
/*420760*/              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)
/*420770*/            0, /*End of Scope*/
/*420771*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::ADD),// ->420792
/*420774*/            OPC_RecordChild0, // #1 = $src1
/*420775*/            OPC_RecordChild1, // #2 = $src2
/*420776*/            OPC_MoveParent,
/*420777*/            OPC_RecordChild2, // #3 = $src0
/*420778*/            OPC_CheckType, MVT::v64i8,
/*420780*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*420782*/            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)
/*420792*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::SUB),// ->420813
/*420795*/            OPC_RecordChild0, // #1 = $src1
/*420796*/            OPC_RecordChild1, // #2 = $src2
/*420797*/            OPC_MoveParent,
/*420798*/            OPC_RecordChild2, // #3 = $src0
/*420799*/            OPC_CheckType, MVT::v64i8,
/*420801*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*420803*/            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)
/*420813*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::SADDSAT),// ->420834
/*420816*/            OPC_RecordChild0, // #1 = $src1
/*420817*/            OPC_RecordChild1, // #2 = $src2
/*420818*/            OPC_MoveParent,
/*420819*/            OPC_RecordChild2, // #3 = $src0
/*420820*/            OPC_CheckType, MVT::v64i8,
/*420822*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*420824*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSBZrrk), 0,
                          MVT::v64i8, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (saddsat:{ *:[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)
/*420834*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::SSUBSAT),// ->420855
/*420837*/            OPC_RecordChild0, // #1 = $src1
/*420838*/            OPC_RecordChild1, // #2 = $src2
/*420839*/            OPC_MoveParent,
/*420840*/            OPC_RecordChild2, // #3 = $src0
/*420841*/            OPC_CheckType, MVT::v64i8,
/*420843*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*420845*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSBZrrk), 0,
                          MVT::v64i8, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (ssubsat:{ *:[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)
/*420855*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::UADDSAT),// ->420876
/*420858*/            OPC_RecordChild0, // #1 = $src1
/*420859*/            OPC_RecordChild1, // #2 = $src2
/*420860*/            OPC_MoveParent,
/*420861*/            OPC_RecordChild2, // #3 = $src0
/*420862*/            OPC_CheckType, MVT::v64i8,
/*420864*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*420866*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSBZrrk), 0,
                          MVT::v64i8, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (uaddsat:{ *:[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)
/*420876*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::USUBSAT),// ->420897
/*420879*/            OPC_RecordChild0, // #1 = $src1
/*420880*/            OPC_RecordChild1, // #2 = $src2
/*420881*/            OPC_MoveParent,
/*420882*/            OPC_RecordChild2, // #3 = $src0
/*420883*/            OPC_CheckType, MVT::v64i8,
/*420885*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*420887*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSBZrrk), 0,
                          MVT::v64i8, 4/*#Ops*/, 3, 0, 1, 2, 
                      // Src: (vselect:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, (usubsat:{ *:[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)
/*420897*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::AVG),// ->420918
/*420900*/            OPC_RecordChild0, // #1 = $src1
/*420901*/            OPC_RecordChild1, // #2 = $src2
/*420902*/            OPC_MoveParent,
/*420903*/            OPC_RecordChild2, // #3 = $src0
/*420904*/            OPC_CheckType, MVT::v64i8,
/*420906*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*420908*/            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)
/*420918*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::MULTISHIFT),// ->420941
/*420921*/            OPC_RecordChild0, // #1 = $src1
/*420922*/            OPC_CheckChild0Type, MVT::v64i8,
/*420924*/            OPC_RecordChild1, // #2 = $src2
/*420925*/            OPC_MoveParent,
/*420926*/            OPC_RecordChild2, // #3 = $src0
/*420927*/            OPC_CheckType, MVT::v64i8,
/*420929*/            OPC_CheckPatternPredicate, 187, // (Subtarget->hasVBMI())
/*420931*/            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)
/*420941*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::PACKSS),// ->420964
/*420944*/            OPC_RecordChild0, // #1 = $src1
/*420945*/            OPC_CheckChild0Type, MVT::v32i16,
/*420947*/            OPC_RecordChild1, // #2 = $src2
/*420948*/            OPC_MoveParent,
/*420949*/            OPC_RecordChild2, // #3 = $src0
/*420950*/            OPC_CheckType, MVT::v64i8,
/*420952*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*420954*/            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)
/*420964*/          /*SwitchOpcode*/ 20, TARGET_VAL(X86ISD::PACKUS),// ->420987
/*420967*/            OPC_RecordChild0, // #1 = $src1
/*420968*/            OPC_CheckChild0Type, MVT::v32i16,
/*420970*/            OPC_RecordChild1, // #2 = $src2
/*420971*/            OPC_MoveParent,
/*420972*/            OPC_RecordChild2, // #3 = $src0
/*420973*/            OPC_CheckType, MVT::v64i8,
/*420975*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*420977*/            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)
/*420987*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::SMAX),// ->421008
/*420990*/            OPC_RecordChild0, // #1 = $src1
/*420991*/            OPC_RecordChild1, // #2 = $src2
/*420992*/            OPC_MoveParent,
/*420993*/            OPC_RecordChild2, // #3 = $src0
/*420994*/            OPC_CheckType, MVT::v64i8,
/*420996*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*420998*/            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)
/*421008*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::UMAX),// ->421029
/*421011*/            OPC_RecordChild0, // #1 = $src1
/*421012*/            OPC_RecordChild1, // #2 = $src2
/*421013*/            OPC_MoveParent,
/*421014*/            OPC_RecordChild2, // #3 = $src0
/*421015*/            OPC_CheckType, MVT::v64i8,
/*421017*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*421019*/            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)
/*421029*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::SMIN),// ->421050
/*421032*/            OPC_RecordChild0, // #1 = $src1
/*421033*/            OPC_RecordChild1, // #2 = $src2
/*421034*/            OPC_MoveParent,
/*421035*/            OPC_RecordChild2, // #3 = $src0
/*421036*/            OPC_CheckType, MVT::v64i8,
/*421038*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*421040*/            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)
/*421050*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::UMIN),// ->421071
/*421053*/            OPC_RecordChild0, // #1 = $src1
/*421054*/            OPC_RecordChild1, // #2 = $src2
/*421055*/            OPC_MoveParent,
/*421056*/            OPC_RecordChild2, // #3 = $src0
/*421057*/            OPC_CheckType, MVT::v64i8,
/*421059*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*421061*/            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)
/*421071*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::VPERMV),// ->421092
/*421074*/            OPC_RecordChild0, // #1 = $src1
/*421075*/            OPC_RecordChild1, // #2 = $src2
/*421076*/            OPC_MoveParent,
/*421077*/            OPC_RecordChild2, // #3 = $src0
/*421078*/            OPC_CheckType, MVT::v64i8,
/*421080*/            OPC_CheckPatternPredicate, 187, // (Subtarget->hasVBMI())
/*421082*/            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)
/*421092*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::PSHUFB),// ->421113
/*421095*/            OPC_RecordChild0, // #1 = $src1
/*421096*/            OPC_RecordChild1, // #2 = $src2
/*421097*/            OPC_MoveParent,
/*421098*/            OPC_RecordChild2, // #3 = $src0
/*421099*/            OPC_CheckType, MVT::v64i8,
/*421101*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*421103*/            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)
/*421113*/          /*SwitchOpcode*/ 16, TARGET_VAL(ISD::ABS),// ->421132
/*421116*/            OPC_RecordChild0, // #1 = $src1
/*421117*/            OPC_MoveParent,
/*421118*/            OPC_RecordChild2, // #2 = $src0
/*421119*/            OPC_CheckType, MVT::v64i8,
/*421121*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*421123*/            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)
/*421132*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::UNPCKL),// ->421153
/*421135*/            OPC_RecordChild0, // #1 = $src1
/*421136*/            OPC_RecordChild1, // #2 = $src2
/*421137*/            OPC_MoveParent,
/*421138*/            OPC_RecordChild2, // #3 = $src0
/*421139*/            OPC_CheckType, MVT::v64i8,
/*421141*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*421143*/            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)
/*421153*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::UNPCKH),// ->421174
/*421156*/            OPC_RecordChild0, // #1 = $src1
/*421157*/            OPC_RecordChild1, // #2 = $src2
/*421158*/            OPC_MoveParent,
/*421159*/            OPC_RecordChild2, // #3 = $src0
/*421160*/            OPC_CheckType, MVT::v64i8,
/*421162*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*421164*/            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)
/*421174*/          /*SwitchOpcode*/ 18, TARGET_VAL(ISD::CTPOP),// ->421195
/*421177*/            OPC_RecordChild0, // #1 = $src1
/*421178*/            OPC_CheckChild0Type, MVT::v64i8,
/*421180*/            OPC_MoveParent,
/*421181*/            OPC_RecordChild2, // #2 = $src0
/*421182*/            OPC_CheckType, MVT::v64i8,
/*421184*/            OPC_CheckPatternPredicate, 114, // (Subtarget->hasBITALG())
/*421186*/            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)
/*421195*/          /*SwitchOpcode*/ 18, TARGET_VAL(X86ISD::GF2P8MULB),// ->421216
/*421198*/            OPC_RecordChild0, // #1 = $src1
/*421199*/            OPC_RecordChild1, // #2 = $src2
/*421200*/            OPC_MoveParent,
/*421201*/            OPC_RecordChild2, // #3 = $src0
/*421202*/            OPC_CheckType, MVT::v64i8,
/*421204*/            OPC_CheckPatternPredicate, 186, // (Subtarget->hasAVX512()) && (Subtarget->hasBWI()) && (Subtarget->hasGFNI())
/*421206*/            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)
/*421216*/          0, // EndSwitchOpcode
/*421217*/        /*Scope*/ 15, /*->421233*/
/*421218*/          OPC_RecordChild1, // #1 = $src1
/*421219*/          OPC_RecordChild2, // #2 = $src0
/*421220*/          OPC_CheckType, MVT::v64i8,
/*421222*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*421224*/          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)
/*421233*/        0, /*End of Scope*/
/*421234*/      0, /*End of Scope*/
/*421235*/    0, /*End of Scope*/
/*421236*/  /*SwitchOpcode*/ 58|128,16/*2106*/, TARGET_VAL(ISD::SIGN_EXTEND_VECTOR_INREG),// ->423346
/*421240*/    OPC_Scope, 4|128,14/*1796*/, /*->423039*/ // 2 children in Scope
/*421243*/      OPC_MoveChild0,
/*421244*/      OPC_SwitchOpcode /*3 cases */, 40|128,11/*1448*/, TARGET_VAL(ISD::BITCAST),// ->422697
/*421249*/        OPC_MoveChild0,
/*421250*/        OPC_SwitchOpcode /*2 cases */, 120|128,7/*1016*/, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->422271
/*421255*/          OPC_MoveChild0,
/*421256*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*421259*/          OPC_RecordMemRef,
/*421260*/          OPC_RecordNode, // #0 = 'ld' chained node
/*421261*/          OPC_CheckFoldableChainNode,
/*421262*/          OPC_RecordChild1, // #1 = $src
/*421263*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*421265*/          OPC_Scope, 30, /*->421297*/ // 20 children in Scope
/*421267*/            OPC_CheckPredicate, 9, // Predicate_load
/*421269*/            OPC_CheckType, MVT::i64,
/*421271*/            OPC_MoveParent,
/*421272*/            OPC_CheckType, MVT::v2i64,
/*421274*/            OPC_MoveParent,
/*421275*/            OPC_CheckType, MVT::v16i8,
/*421277*/            OPC_MoveParent,
/*421278*/            OPC_CheckType, MVT::v8i32,
/*421280*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*421282*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*421285*/            OPC_EmitMergeInputChains1_0,
/*421286*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (sext_invec:{ *:[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)
/*421297*/          /*Scope*/ 30, /*->421328*/
/*421298*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/*421300*/            OPC_CheckType, MVT::i32,
/*421302*/            OPC_MoveParent,
/*421303*/            OPC_CheckType, MVT::v4i32,
/*421305*/            OPC_MoveParent,
/*421306*/            OPC_CheckType, MVT::v16i8,
/*421308*/            OPC_MoveParent,
/*421309*/            OPC_CheckType, MVT::v4i64,
/*421311*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*421313*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*421316*/            OPC_EmitMergeInputChains1_0,
/*421317*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (sext_invec:{ *:[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)
/*421328*/          /*Scope*/ 84, /*->421413*/
/*421329*/            OPC_CheckPredicate, 9, // Predicate_load
/*421331*/            OPC_SwitchType /*2 cases */, 50, MVT::i64,// ->421384
/*421334*/              OPC_MoveParent,
/*421335*/              OPC_CheckType, MVT::v2i64,
/*421337*/              OPC_MoveParent,
/*421338*/              OPC_SwitchType /*2 cases */, 20, MVT::v8i16,// ->421361
/*421341*/                OPC_MoveParent,
/*421342*/                OPC_CheckType, MVT::v4i64,
/*421344*/                OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*421346*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*421349*/                OPC_EmitMergeInputChains1_0,
/*421350*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                          // Src: (sext_invec:{ *:[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)
/*421361*/              /*SwitchType*/ 20, MVT::v16i8,// ->421383
/*421363*/                OPC_MoveParent,
/*421364*/                OPC_CheckType, MVT::v8i16,
/*421366*/                OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*421368*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*421371*/                OPC_EmitMergeInputChains1_0,
/*421372*/                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)
/*421383*/              0, // EndSwitchType
/*421384*/            /*SwitchType*/ 26, MVT::f64,// ->421412
/*421386*/              OPC_MoveParent,
/*421387*/              OPC_CheckType, MVT::v2f64,
/*421389*/              OPC_MoveParent,
/*421390*/              OPC_CheckType, MVT::v16i8,
/*421392*/              OPC_MoveParent,
/*421393*/              OPC_CheckType, MVT::v8i16,
/*421395*/              OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*421397*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*421400*/              OPC_EmitMergeInputChains1_0,
/*421401*/              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)
/*421412*/            0, // EndSwitchType
/*421413*/          /*Scope*/ 30, /*->421444*/
/*421414*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/*421416*/            OPC_CheckType, MVT::i32,
/*421418*/            OPC_MoveParent,
/*421419*/            OPC_CheckType, MVT::v4i32,
/*421421*/            OPC_MoveParent,
/*421422*/            OPC_CheckType, MVT::v16i8,
/*421424*/            OPC_MoveParent,
/*421425*/            OPC_CheckType, MVT::v4i32,
/*421427*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*421429*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*421432*/            OPC_EmitMergeInputChains1_0,
/*421433*/            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)
/*421444*/          /*Scope*/ 32, /*->421477*/
/*421445*/            OPC_CheckPredicate, 70, // Predicate_extload
/*421447*/            OPC_CheckPredicate, 35, // Predicate_extloadi16
/*421449*/            OPC_CheckType, MVT::i32,
/*421451*/            OPC_MoveParent,
/*421452*/            OPC_CheckType, MVT::v4i32,
/*421454*/            OPC_MoveParent,
/*421455*/            OPC_CheckType, MVT::v16i8,
/*421457*/            OPC_MoveParent,
/*421458*/            OPC_CheckType, MVT::v2i64,
/*421460*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*421462*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*421465*/            OPC_EmitMergeInputChains1_0,
/*421466*/            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)
/*421477*/          /*Scope*/ 60, /*->421538*/
/*421478*/            OPC_CheckPredicate, 9, // Predicate_load
/*421480*/            OPC_SwitchType /*2 cases */, 26, MVT::i64,// ->421509
/*421483*/              OPC_MoveParent,
/*421484*/              OPC_CheckType, MVT::v2i64,
/*421486*/              OPC_MoveParent,
/*421487*/              OPC_CheckType, MVT::v8i16,
/*421489*/              OPC_MoveParent,
/*421490*/              OPC_CheckType, MVT::v4i32,
/*421492*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*421494*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*421497*/              OPC_EmitMergeInputChains1_0,
/*421498*/              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)
/*421509*/            /*SwitchType*/ 26, MVT::f64,// ->421537
/*421511*/              OPC_MoveParent,
/*421512*/              OPC_CheckType, MVT::v2f64,
/*421514*/              OPC_MoveParent,
/*421515*/              OPC_CheckType, MVT::v8i16,
/*421517*/              OPC_MoveParent,
/*421518*/              OPC_CheckType, MVT::v4i32,
/*421520*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*421522*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*421525*/              OPC_EmitMergeInputChains1_0,
/*421526*/              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)
/*421537*/            0, // EndSwitchType
/*421538*/          /*Scope*/ 30, /*->421569*/
/*421539*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/*421541*/            OPC_CheckType, MVT::i32,
/*421543*/            OPC_MoveParent,
/*421544*/            OPC_CheckType, MVT::v4i32,
/*421546*/            OPC_MoveParent,
/*421547*/            OPC_CheckType, MVT::v8i16,
/*421549*/            OPC_MoveParent,
/*421550*/            OPC_CheckType, MVT::v2i64,
/*421552*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*421554*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*421557*/            OPC_EmitMergeInputChains1_0,
/*421558*/            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)
/*421569*/          /*Scope*/ 108, /*->421678*/
/*421570*/            OPC_CheckPredicate, 9, // Predicate_load
/*421572*/            OPC_SwitchType /*2 cases */, 50, MVT::i64,// ->421625
/*421575*/              OPC_MoveParent,
/*421576*/              OPC_CheckType, MVT::v2i64,
/*421578*/              OPC_MoveParent,
/*421579*/              OPC_SwitchType /*2 cases */, 20, MVT::v4i32,// ->421602
/*421582*/                OPC_MoveParent,
/*421583*/                OPC_CheckType, MVT::v2i64,
/*421585*/                OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*421587*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*421590*/                OPC_EmitMergeInputChains1_0,
/*421591*/                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)
/*421602*/              /*SwitchType*/ 20, MVT::v16i8,// ->421624
/*421604*/                OPC_MoveParent,
/*421605*/                OPC_CheckType, MVT::v8i16,
/*421607*/                OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*421609*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*421612*/                OPC_EmitMergeInputChains1_0,
/*421613*/                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)
/*421624*/              0, // EndSwitchType
/*421625*/            /*SwitchType*/ 50, MVT::f64,// ->421677
/*421627*/              OPC_MoveParent,
/*421628*/              OPC_CheckType, MVT::v2f64,
/*421630*/              OPC_MoveParent,
/*421631*/              OPC_SwitchType /*2 cases */, 20, MVT::v4i32,// ->421654
/*421634*/                OPC_MoveParent,
/*421635*/                OPC_CheckType, MVT::v2i64,
/*421637*/                OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*421639*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*421642*/                OPC_EmitMergeInputChains1_0,
/*421643*/                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)
/*421654*/              /*SwitchType*/ 20, MVT::v16i8,// ->421676
/*421656*/                OPC_MoveParent,
/*421657*/                OPC_CheckType, MVT::v8i16,
/*421659*/                OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*421661*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*421664*/                OPC_EmitMergeInputChains1_0,
/*421665*/                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)
/*421676*/              0, // EndSwitchType
/*421677*/            0, // EndSwitchType
/*421678*/          /*Scope*/ 30, /*->421709*/
/*421679*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/*421681*/            OPC_CheckType, MVT::i32,
/*421683*/            OPC_MoveParent,
/*421684*/            OPC_CheckType, MVT::v4i32,
/*421686*/            OPC_MoveParent,
/*421687*/            OPC_CheckType, MVT::v16i8,
/*421689*/            OPC_MoveParent,
/*421690*/            OPC_CheckType, MVT::v4i32,
/*421692*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*421694*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*421697*/            OPC_EmitMergeInputChains1_0,
/*421698*/            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)
/*421709*/          /*Scope*/ 32, /*->421742*/
/*421710*/            OPC_CheckPredicate, 70, // Predicate_extload
/*421712*/            OPC_CheckPredicate, 35, // Predicate_extloadi16
/*421714*/            OPC_CheckType, MVT::i32,
/*421716*/            OPC_MoveParent,
/*421717*/            OPC_CheckType, MVT::v4i32,
/*421719*/            OPC_MoveParent,
/*421720*/            OPC_CheckType, MVT::v16i8,
/*421722*/            OPC_MoveParent,
/*421723*/            OPC_CheckType, MVT::v2i64,
/*421725*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*421727*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*421730*/            OPC_EmitMergeInputChains1_0,
/*421731*/            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)
/*421742*/          /*Scope*/ 60, /*->421803*/
/*421743*/            OPC_CheckPredicate, 9, // Predicate_load
/*421745*/            OPC_SwitchType /*2 cases */, 26, MVT::i64,// ->421774
/*421748*/              OPC_MoveParent,
/*421749*/              OPC_CheckType, MVT::v2i64,
/*421751*/              OPC_MoveParent,
/*421752*/              OPC_CheckType, MVT::v8i16,
/*421754*/              OPC_MoveParent,
/*421755*/              OPC_CheckType, MVT::v4i32,
/*421757*/              OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*421759*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*421762*/              OPC_EmitMergeInputChains1_0,
/*421763*/              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)
/*421774*/            /*SwitchType*/ 26, MVT::f64,// ->421802
/*421776*/              OPC_MoveParent,
/*421777*/              OPC_CheckType, MVT::v2f64,
/*421779*/              OPC_MoveParent,
/*421780*/              OPC_CheckType, MVT::v8i16,
/*421782*/              OPC_MoveParent,
/*421783*/              OPC_CheckType, MVT::v4i32,
/*421785*/              OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*421787*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*421790*/              OPC_EmitMergeInputChains1_0,
/*421791*/              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)
/*421802*/            0, // EndSwitchType
/*421803*/          /*Scope*/ 30, /*->421834*/
/*421804*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/*421806*/            OPC_CheckType, MVT::i32,
/*421808*/            OPC_MoveParent,
/*421809*/            OPC_CheckType, MVT::v4i32,
/*421811*/            OPC_MoveParent,
/*421812*/            OPC_CheckType, MVT::v8i16,
/*421814*/            OPC_MoveParent,
/*421815*/            OPC_CheckType, MVT::v2i64,
/*421817*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*421819*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*421822*/            OPC_EmitMergeInputChains1_0,
/*421823*/            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)
/*421834*/          /*Scope*/ 108, /*->421943*/
/*421835*/            OPC_CheckPredicate, 9, // Predicate_load
/*421837*/            OPC_SwitchType /*2 cases */, 50, MVT::i64,// ->421890
/*421840*/              OPC_MoveParent,
/*421841*/              OPC_CheckType, MVT::v2i64,
/*421843*/              OPC_MoveParent,
/*421844*/              OPC_SwitchType /*2 cases */, 20, MVT::v4i32,// ->421867
/*421847*/                OPC_MoveParent,
/*421848*/                OPC_CheckType, MVT::v2i64,
/*421850*/                OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*421852*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*421855*/                OPC_EmitMergeInputChains1_0,
/*421856*/                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)
/*421867*/              /*SwitchType*/ 20, MVT::v16i8,// ->421889
/*421869*/                OPC_MoveParent,
/*421870*/                OPC_CheckType, MVT::v8i16,
/*421872*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*421874*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*421877*/                OPC_EmitMergeInputChains1_0,
/*421878*/                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)
/*421889*/              0, // EndSwitchType
/*421890*/            /*SwitchType*/ 50, MVT::f64,// ->421942
/*421892*/              OPC_MoveParent,
/*421893*/              OPC_CheckType, MVT::v2f64,
/*421895*/              OPC_MoveParent,
/*421896*/              OPC_SwitchType /*2 cases */, 20, MVT::v4i32,// ->421919
/*421899*/                OPC_MoveParent,
/*421900*/                OPC_CheckType, MVT::v2i64,
/*421902*/                OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*421904*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*421907*/                OPC_EmitMergeInputChains1_0,
/*421908*/                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)
/*421919*/              /*SwitchType*/ 20, MVT::v16i8,// ->421941
/*421921*/                OPC_MoveParent,
/*421922*/                OPC_CheckType, MVT::v8i16,
/*421924*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*421926*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*421929*/                OPC_EmitMergeInputChains1_0,
/*421930*/                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)
/*421941*/              0, // EndSwitchType
/*421942*/            0, // EndSwitchType
/*421943*/          /*Scope*/ 30, /*->421974*/
/*421944*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/*421946*/            OPC_CheckType, MVT::i32,
/*421948*/            OPC_MoveParent,
/*421949*/            OPC_CheckType, MVT::v4i32,
/*421951*/            OPC_MoveParent,
/*421952*/            OPC_CheckType, MVT::v16i8,
/*421954*/            OPC_MoveParent,
/*421955*/            OPC_CheckType, MVT::v4i32,
/*421957*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*421959*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*421962*/            OPC_EmitMergeInputChains1_0,
/*421963*/            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)
/*421974*/          /*Scope*/ 32, /*->422007*/
/*421975*/            OPC_CheckPredicate, 70, // Predicate_extload
/*421977*/            OPC_CheckPredicate, 35, // Predicate_extloadi16
/*421979*/            OPC_CheckType, MVT::i32,
/*421981*/            OPC_MoveParent,
/*421982*/            OPC_CheckType, MVT::v4i32,
/*421984*/            OPC_MoveParent,
/*421985*/            OPC_CheckType, MVT::v16i8,
/*421987*/            OPC_MoveParent,
/*421988*/            OPC_CheckType, MVT::v2i64,
/*421990*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*421992*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*421995*/            OPC_EmitMergeInputChains1_0,
/*421996*/            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)
/*422007*/          /*Scope*/ 60, /*->422068*/
/*422008*/            OPC_CheckPredicate, 9, // Predicate_load
/*422010*/            OPC_SwitchType /*2 cases */, 26, MVT::i64,// ->422039
/*422013*/              OPC_MoveParent,
/*422014*/              OPC_CheckType, MVT::v2i64,
/*422016*/              OPC_MoveParent,
/*422017*/              OPC_CheckType, MVT::v8i16,
/*422019*/              OPC_MoveParent,
/*422020*/              OPC_CheckType, MVT::v4i32,
/*422022*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*422024*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*422027*/              OPC_EmitMergeInputChains1_0,
/*422028*/              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)
/*422039*/            /*SwitchType*/ 26, MVT::f64,// ->422067
/*422041*/              OPC_MoveParent,
/*422042*/              OPC_CheckType, MVT::v2f64,
/*422044*/              OPC_MoveParent,
/*422045*/              OPC_CheckType, MVT::v8i16,
/*422047*/              OPC_MoveParent,
/*422048*/              OPC_CheckType, MVT::v4i32,
/*422050*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*422052*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*422055*/              OPC_EmitMergeInputChains1_0,
/*422056*/              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)
/*422067*/            0, // EndSwitchType
/*422068*/          /*Scope*/ 30, /*->422099*/
/*422069*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/*422071*/            OPC_CheckType, MVT::i32,
/*422073*/            OPC_MoveParent,
/*422074*/            OPC_CheckType, MVT::v4i32,
/*422076*/            OPC_MoveParent,
/*422077*/            OPC_CheckType, MVT::v8i16,
/*422079*/            OPC_MoveParent,
/*422080*/            OPC_CheckType, MVT::v2i64,
/*422082*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*422084*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*422087*/            OPC_EmitMergeInputChains1_0,
/*422088*/            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)
/*422099*/          /*Scope*/ 84, /*->422184*/
/*422100*/            OPC_CheckPredicate, 9, // Predicate_load
/*422102*/            OPC_SwitchType /*2 cases */, 50, MVT::i64,// ->422155
/*422105*/              OPC_MoveParent,
/*422106*/              OPC_CheckType, MVT::v2i64,
/*422108*/              OPC_MoveParent,
/*422109*/              OPC_SwitchType /*2 cases */, 20, MVT::v4i32,// ->422132
/*422112*/                OPC_MoveParent,
/*422113*/                OPC_CheckType, MVT::v2i64,
/*422115*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*422117*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*422120*/                OPC_EmitMergeInputChains1_0,
/*422121*/                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)
/*422132*/              /*SwitchType*/ 20, MVT::v16i8,// ->422154
/*422134*/                OPC_MoveParent,
/*422135*/                OPC_CheckType, MVT::v8i32,
/*422137*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*422139*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*422142*/                OPC_EmitMergeInputChains1_0,
/*422143*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                          // Src: (sext_invec:{ *:[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)
/*422154*/              0, // EndSwitchType
/*422155*/            /*SwitchType*/ 26, MVT::f64,// ->422183
/*422157*/              OPC_MoveParent,
/*422158*/              OPC_CheckType, MVT::v2f64,
/*422160*/              OPC_MoveParent,
/*422161*/              OPC_CheckType, MVT::v4i32,
/*422163*/              OPC_MoveParent,
/*422164*/              OPC_CheckType, MVT::v2i64,
/*422166*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*422168*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*422171*/              OPC_EmitMergeInputChains1_0,
/*422172*/              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)
/*422183*/            0, // EndSwitchType
/*422184*/          /*Scope*/ 30, /*->422215*/
/*422185*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/*422187*/            OPC_CheckType, MVT::i32,
/*422189*/            OPC_MoveParent,
/*422190*/            OPC_CheckType, MVT::v4i32,
/*422192*/            OPC_MoveParent,
/*422193*/            OPC_CheckType, MVT::v16i8,
/*422195*/            OPC_MoveParent,
/*422196*/            OPC_CheckType, MVT::v4i64,
/*422198*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*422200*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*422203*/            OPC_EmitMergeInputChains1_0,
/*422204*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (sext_invec:{ *:[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)
/*422215*/          /*Scope*/ 54, /*->422270*/
/*422216*/            OPC_CheckPredicate, 9, // Predicate_load
/*422218*/            OPC_CheckType, MVT::i64,
/*422220*/            OPC_MoveParent,
/*422221*/            OPC_CheckType, MVT::v2i64,
/*422223*/            OPC_MoveParent,
/*422224*/            OPC_SwitchType /*2 cases */, 20, MVT::v8i16,// ->422247
/*422227*/              OPC_MoveParent,
/*422228*/              OPC_CheckType, MVT::v4i64,
/*422230*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*422232*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*422235*/              OPC_EmitMergeInputChains1_0,
/*422236*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (sext_invec:{ *:[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)
/*422247*/            /*SwitchType*/ 20, MVT::v16i8,// ->422269
/*422249*/              OPC_MoveParent,
/*422250*/              OPC_CheckType, MVT::v8i64,
/*422252*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*422254*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*422257*/              OPC_EmitMergeInputChains1_0,
/*422258*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (sext_invec:{ *:[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)
/*422269*/            0, // EndSwitchType
/*422270*/          0, /*End of Scope*/
/*422271*/        /*SwitchOpcode*/ 37|128,3/*421*/, TARGET_VAL(X86ISD::VZEXT_LOAD),// ->422696
/*422275*/          OPC_RecordMemRef,
/*422276*/          OPC_RecordNode, // #0 = 'X86vzld' chained node
/*422277*/          OPC_CheckFoldableChainNode,
/*422278*/          OPC_RecordChild1, // #1 = $src
/*422279*/          OPC_SwitchType /*2 cases */, 5|128,2/*261*/, MVT::v2i64,// ->422544
/*422283*/            OPC_CheckPredicate, 49, // Predicate_X86vzload64
/*422285*/            OPC_MoveParent,
/*422286*/            OPC_Scope, 22, /*->422310*/ // 8 children in Scope
/*422288*/              OPC_CheckType, MVT::v16i8,
/*422290*/              OPC_MoveParent,
/*422291*/              OPC_CheckType, MVT::v8i16,
/*422293*/              OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*422295*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*422298*/              OPC_EmitMergeInputChains1_0,
/*422299*/              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] } (X86vzld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>)) - Complexity = 28
                        // Dst: (VPMOVSXBWrm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*422310*/            /*Scope*/ 22, /*->422333*/
/*422311*/              OPC_CheckType, MVT::v8i16,
/*422313*/              OPC_MoveParent,
/*422314*/              OPC_CheckType, MVT::v4i32,
/*422316*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*422318*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*422321*/              OPC_EmitMergeInputChains1_0,
/*422322*/              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] } (X86vzld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>)) - Complexity = 28
                        // Dst: (VPMOVSXWDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*422333*/            /*Scope*/ 46, /*->422380*/
/*422334*/              OPC_SwitchType /*2 cases */, 20, MVT::v4i32,// ->422357
/*422337*/                OPC_MoveParent,
/*422338*/                OPC_CheckType, MVT::v2i64,
/*422340*/                OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*422342*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*422345*/                OPC_EmitMergeInputChains1_0,
/*422346*/                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] } (X86vzld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>)) - Complexity = 28
                          // Dst: (VPMOVSXDQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*422357*/              /*SwitchType*/ 20, MVT::v16i8,// ->422379
/*422359*/                OPC_MoveParent,
/*422360*/                OPC_CheckType, MVT::v8i16,
/*422362*/                OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*422364*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*422367*/                OPC_EmitMergeInputChains1_0,
/*422368*/                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] } (X86vzld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>)) - Complexity = 28
                          // Dst: (PMOVSXBWrm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*422379*/              0, // EndSwitchType
/*422380*/            /*Scope*/ 22, /*->422403*/
/*422381*/              OPC_CheckType, MVT::v8i16,
/*422383*/              OPC_MoveParent,
/*422384*/              OPC_CheckType, MVT::v4i32,
/*422386*/              OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*422388*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*422391*/              OPC_EmitMergeInputChains1_0,
/*422392*/              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] } (X86vzld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>)) - Complexity = 28
                        // Dst: (PMOVSXWDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*422403*/            /*Scope*/ 46, /*->422450*/
/*422404*/              OPC_SwitchType /*2 cases */, 20, MVT::v4i32,// ->422427
/*422407*/                OPC_MoveParent,
/*422408*/                OPC_CheckType, MVT::v2i64,
/*422410*/                OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*422412*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*422415*/                OPC_EmitMergeInputChains1_0,
/*422416*/                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] } (X86vzld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>)) - Complexity = 28
                          // Dst: (PMOVSXDQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*422427*/              /*SwitchType*/ 20, MVT::v16i8,// ->422449
/*422429*/                OPC_MoveParent,
/*422430*/                OPC_CheckType, MVT::v8i16,
/*422432*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*422434*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*422437*/                OPC_EmitMergeInputChains1_0,
/*422438*/                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] } (X86vzld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>)) - Complexity = 28
                          // Dst: (VPMOVSXBWZ128rm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*422449*/              0, // EndSwitchType
/*422450*/            /*Scope*/ 22, /*->422473*/
/*422451*/              OPC_CheckType, MVT::v8i16,
/*422453*/              OPC_MoveParent,
/*422454*/              OPC_CheckType, MVT::v4i32,
/*422456*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*422458*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*422461*/              OPC_EmitMergeInputChains1_0,
/*422462*/              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] } (X86vzld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>)) - Complexity = 28
                        // Dst: (VPMOVSXWDZ128rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*422473*/            /*Scope*/ 46, /*->422520*/
/*422474*/              OPC_SwitchType /*2 cases */, 20, MVT::v4i32,// ->422497
/*422477*/                OPC_MoveParent,
/*422478*/                OPC_CheckType, MVT::v2i64,
/*422480*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*422482*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*422485*/                OPC_EmitMergeInputChains1_0,
/*422486*/                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] } (X86vzld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>)) - Complexity = 28
                          // Dst: (VPMOVSXDQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*422497*/              /*SwitchType*/ 20, MVT::v16i8,// ->422519
/*422499*/                OPC_MoveParent,
/*422500*/                OPC_CheckType, MVT::v8i32,
/*422502*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*422504*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*422507*/                OPC_EmitMergeInputChains1_0,
/*422508*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                          // Src: (sext_invec:{ *:[v8i32] } (bitconvert:{ *:[v16i8] } (X86vzld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>)) - Complexity = 28
                          // Dst: (VPMOVSXBDZ256rm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*422519*/              0, // EndSwitchType
/*422520*/            /*Scope*/ 22, /*->422543*/
/*422521*/              OPC_CheckType, MVT::v8i16,
/*422523*/              OPC_MoveParent,
/*422524*/              OPC_CheckType, MVT::v4i64,
/*422526*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*422528*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*422531*/              OPC_EmitMergeInputChains1_0,
/*422532*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (sext_invec:{ *:[v4i64] } (bitconvert:{ *:[v8i16] } (X86vzld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>)) - Complexity = 28
                        // Dst: (VPMOVSXWQZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*422543*/            0, /*End of Scope*/
/*422544*/          /*SwitchType*/ 20|128,1/*148*/, MVT::v4i32,// ->422695
/*422547*/            OPC_CheckPredicate, 50, // Predicate_X86vzload32
/*422549*/            OPC_MoveParent,
/*422550*/            OPC_SwitchType /*2 cases */, 80, MVT::v16i8,// ->422633
/*422553*/              OPC_MoveParent,
/*422554*/              OPC_SwitchType /*2 cases */, 56, MVT::v4i32,// ->422613
/*422557*/                OPC_Scope, 17, /*->422576*/ // 3 children in Scope
/*422559*/                  OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*422561*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*422564*/                  OPC_EmitMergeInputChains1_0,
/*422565*/                  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] } (X86vzld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload32>>)) - Complexity = 28
                            // Dst: (VPMOVSXBDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*422576*/                /*Scope*/ 17, /*->422594*/
/*422577*/                  OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*422579*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*422582*/                  OPC_EmitMergeInputChains1_0,
/*422583*/                  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] } (X86vzld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload32>>)) - Complexity = 28
                            // Dst: (PMOVSXBDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*422594*/                /*Scope*/ 17, /*->422612*/
/*422595*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*422597*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*422600*/                  OPC_EmitMergeInputChains1_0,
/*422601*/                  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] } (X86vzld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload32>>)) - Complexity = 28
                            // Dst: (VPMOVSXBDZ128rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*422612*/                0, /*End of Scope*/
/*422613*/              /*SwitchType*/ 17, MVT::v4i64,// ->422632
/*422615*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*422617*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*422620*/                OPC_EmitMergeInputChains1_0,
/*422621*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                          // Src: (sext_invec:{ *:[v4i64] } (bitconvert:{ *:[v16i8] } (X86vzld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload32>>)) - Complexity = 28
                          // Dst: (VPMOVSXBQZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*422632*/              0, // EndSwitchType
/*422633*/            /*SwitchType*/ 59, MVT::v8i16,// ->422694
/*422635*/              OPC_MoveParent,
/*422636*/              OPC_CheckType, MVT::v2i64,
/*422638*/              OPC_Scope, 17, /*->422657*/ // 3 children in Scope
/*422640*/                OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*422642*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*422645*/                OPC_EmitMergeInputChains1_0,
/*422646*/                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] } (X86vzld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload32>>)) - Complexity = 28
                          // Dst: (VPMOVSXWQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*422657*/              /*Scope*/ 17, /*->422675*/
/*422658*/                OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*422660*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*422663*/                OPC_EmitMergeInputChains1_0,
/*422664*/                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] } (X86vzld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload32>>)) - Complexity = 28
                          // Dst: (PMOVSXWQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*422675*/              /*Scope*/ 17, /*->422693*/
/*422676*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*422678*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*422681*/                OPC_EmitMergeInputChains1_0,
/*422682*/                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] } (X86vzld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload32>>)) - Complexity = 28
                          // Dst: (VPMOVSXWQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*422693*/              0, /*End of Scope*/
/*422694*/            0, // EndSwitchType
/*422695*/          0, // EndSwitchType
/*422696*/        0, // EndSwitchOpcode
/*422697*/      /*SwitchOpcode*/ 72, TARGET_VAL(X86ISD::VZEXT_LOAD),// ->422772
/*422700*/        OPC_RecordMemRef,
/*422701*/        OPC_RecordNode, // #0 = 'X86vzld' chained node
/*422702*/        OPC_RecordChild1, // #1 = $src
/*422703*/        OPC_CheckPredicate, 49, // Predicate_X86vzload64
/*422705*/        OPC_SwitchType /*2 cases */, 41, MVT::v16i8,// ->422749
/*422708*/          OPC_MoveParent,
/*422709*/          OPC_SwitchType /*2 cases */, 17, MVT::v8i32,// ->422729
/*422712*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*422714*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*422717*/            OPC_EmitMergeInputChains1_0,
/*422718*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (sext_invec:{ *:[v8i32] } (X86vzld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>) - Complexity = 25
                      // Dst: (VPMOVSXBDYrm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*422729*/          /*SwitchType*/ 17, MVT::v4i64,// ->422748
/*422731*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*422733*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*422736*/            OPC_EmitMergeInputChains1_0,
/*422737*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (sext_invec:{ *:[v4i64] } (X86vzld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>) - Complexity = 25
                      // Dst: (VPMOVSXBQYrm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*422748*/          0, // EndSwitchType
/*422749*/        /*SwitchType*/ 20, MVT::v8i16,// ->422771
/*422751*/          OPC_MoveParent,
/*422752*/          OPC_CheckType, MVT::v4i64,
/*422754*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*422756*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*422759*/          OPC_EmitMergeInputChains1_0,
/*422760*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (sext_invec:{ *:[v4i64] } (X86vzld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>) - Complexity = 25
                    // Dst: (VPMOVSXWQYrm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*422771*/        0, // EndSwitchType
/*422772*/      /*SwitchOpcode*/ 6|128,2/*262*/, TARGET_VAL(ISD::LOAD),// ->423038
/*422776*/        OPC_RecordMemRef,
/*422777*/        OPC_RecordNode, // #0 = 'ld' chained node
/*422778*/        OPC_RecordChild1, // #1 = $src
/*422779*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*422781*/        OPC_CheckPredicate, 9, // Predicate_load
/*422783*/        OPC_SwitchType /*3 cases */, 123, MVT::v16i8,// ->422909
/*422786*/          OPC_MoveParent,
/*422787*/          OPC_SwitchType /*3 cases */, 38, MVT::v8i16,// ->422828
/*422790*/            OPC_Scope, 17, /*->422809*/ // 2 children in Scope
/*422792*/              OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*422794*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*422797*/              OPC_EmitMergeInputChains1_0,
/*422798*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (sext_invec:{ *:[v8i16] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VPMOVSXBWrm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*422809*/            /*Scope*/ 17, /*->422827*/
/*422810*/              OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*422812*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*422815*/              OPC_EmitMergeInputChains1_0,
/*422816*/              OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVSXBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (sext_invec:{ *:[v8i16] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (PMOVSXBWrm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*422827*/            0, /*End of Scope*/
/*422828*/          /*SwitchType*/ 38, MVT::v4i32,// ->422868
/*422830*/            OPC_Scope, 17, /*->422849*/ // 2 children in Scope
/*422832*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*422834*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*422837*/              OPC_EmitMergeInputChains1_0,
/*422838*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBDrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (sext_invec:{ *:[v4i32] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VPMOVSXBDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*422849*/            /*Scope*/ 17, /*->422867*/
/*422850*/              OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*422852*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*422855*/              OPC_EmitMergeInputChains1_0,
/*422856*/              OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVSXBDrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (sext_invec:{ *:[v4i32] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (PMOVSXBDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*422867*/            0, /*End of Scope*/
/*422868*/          /*SwitchType*/ 38, MVT::v2i64,// ->422908
/*422870*/            OPC_Scope, 17, /*->422889*/ // 2 children in Scope
/*422872*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*422874*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*422877*/              OPC_EmitMergeInputChains1_0,
/*422878*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBQrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (sext_invec:{ *:[v2i64] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VPMOVSXBQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*422889*/            /*Scope*/ 17, /*->422907*/
/*422890*/              OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*422892*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*422895*/              OPC_EmitMergeInputChains1_0,
/*422896*/              OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVSXBQrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (sext_invec:{ *:[v2i64] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (PMOVSXBQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*422907*/            0, /*End of Scope*/
/*422908*/          0, // EndSwitchType
/*422909*/        /*SwitchType*/ 83, MVT::v8i16,// ->422994
/*422911*/          OPC_MoveParent,
/*422912*/          OPC_SwitchType /*2 cases */, 38, MVT::v4i32,// ->422953
/*422915*/            OPC_Scope, 17, /*->422934*/ // 2 children in Scope
/*422917*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*422919*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*422922*/              OPC_EmitMergeInputChains1_0,
/*422923*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (sext_invec:{ *:[v4i32] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VPMOVSXWDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*422934*/            /*Scope*/ 17, /*->422952*/
/*422935*/              OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*422937*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*422940*/              OPC_EmitMergeInputChains1_0,
/*422941*/              OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVSXWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (sext_invec:{ *:[v4i32] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (PMOVSXWDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*422952*/            0, /*End of Scope*/
/*422953*/          /*SwitchType*/ 38, MVT::v2i64,// ->422993
/*422955*/            OPC_Scope, 17, /*->422974*/ // 2 children in Scope
/*422957*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*422959*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*422962*/              OPC_EmitMergeInputChains1_0,
/*422963*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWQrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (sext_invec:{ *:[v2i64] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VPMOVSXWQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*422974*/            /*Scope*/ 17, /*->422992*/
/*422975*/              OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*422977*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*422980*/              OPC_EmitMergeInputChains1_0,
/*422981*/              OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVSXWQrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (sext_invec:{ *:[v2i64] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (PMOVSXWQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*422992*/            0, /*End of Scope*/
/*422993*/          0, // EndSwitchType
/*422994*/        /*SwitchType*/ 41, MVT::v4i32,// ->423037
/*422996*/          OPC_MoveParent,
/*422997*/          OPC_CheckType, MVT::v2i64,
/*422999*/          OPC_Scope, 17, /*->423018*/ // 2 children in Scope
/*423001*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*423003*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*423006*/            OPC_EmitMergeInputChains1_0,
/*423007*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (sext_invec:{ *:[v2i64] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMOVSXDQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*423018*/          /*Scope*/ 17, /*->423036*/
/*423019*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*423021*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*423024*/            OPC_EmitMergeInputChains1_0,
/*423025*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVSXDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (sext_invec:{ *:[v2i64] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (PMOVSXDQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*423036*/          0, /*End of Scope*/
/*423037*/        0, // EndSwitchType
/*423038*/      0, // EndSwitchOpcode
/*423039*/    /*Scope*/ 48|128,2/*304*/, /*->423345*/
/*423041*/      OPC_RecordChild0, // #0 = $src
/*423042*/      OPC_Scope, 37|128,1/*165*/, /*->423210*/ // 3 children in Scope
/*423045*/        OPC_CheckChild0Type, MVT::v16i8,
/*423047*/        OPC_SwitchType /*6 cases */, 22, MVT::v8i32,// ->423072
/*423050*/          OPC_Scope, 9, /*->423061*/ // 2 children in Scope
/*423052*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*423054*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBDYrr), 0,
                          MVT::v8i32, 1/*#Ops*/, 0, 
                      // Src: (sext_invec:{ *:[v8i32] } VR128:{ *:[v16i8] }:$src) - Complexity = 3
                      // Dst: (VPMOVSXBDYrr:{ *:[v8i32] } VR128:{ *:[v16i8] }:$src)
/*423061*/          /*Scope*/ 9, /*->423071*/
/*423062*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*423064*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBDZ256rr), 0,
                          MVT::v8i32, 1/*#Ops*/, 0, 
                      // Src: (sext_invec:{ *:[v8i32] } VR128X:{ *:[v16i8] }:$src) - Complexity = 3
                      // Dst: (VPMOVSXBDZ256rr:{ *:[v8i32] } VR128X:{ *:[v16i8] }:$src)
/*423071*/          0, /*End of Scope*/
/*423072*/        /*SwitchType*/ 22, MVT::v4i64,// ->423096
/*423074*/          OPC_Scope, 9, /*->423085*/ // 2 children in Scope
/*423076*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*423078*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBQYrr), 0,
                          MVT::v4i64, 1/*#Ops*/, 0, 
                      // Src: (sext_invec:{ *:[v4i64] } VR128:{ *:[v16i8] }:$src) - Complexity = 3
                      // Dst: (VPMOVSXBQYrr:{ *:[v4i64] } VR128:{ *:[v16i8] }:$src)
/*423085*/          /*Scope*/ 9, /*->423095*/
/*423086*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*423088*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBQZ256rr), 0,
                          MVT::v4i64, 1/*#Ops*/, 0, 
                      // Src: (sext_invec:{ *:[v4i64] } VR128X:{ *:[v16i8] }:$src) - Complexity = 3
                      // Dst: (VPMOVSXBQZ256rr:{ *:[v4i64] } VR128X:{ *:[v16i8] }:$src)
/*423095*/          0, /*End of Scope*/
/*423096*/        /*SwitchType*/ 32, MVT::v8i16,// ->423130
/*423098*/          OPC_Scope, 9, /*->423109*/ // 3 children in Scope
/*423100*/            OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*423102*/            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)
/*423109*/          /*Scope*/ 9, /*->423119*/
/*423110*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*423112*/            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)
/*423119*/          /*Scope*/ 9, /*->423129*/
/*423120*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*423122*/            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)
/*423129*/          0, /*End of Scope*/
/*423130*/        /*SwitchType*/ 32, MVT::v4i32,// ->423164
/*423132*/          OPC_Scope, 9, /*->423143*/ // 3 children in Scope
/*423134*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*423136*/            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)
/*423143*/          /*Scope*/ 9, /*->423153*/
/*423144*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*423146*/            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)
/*423153*/          /*Scope*/ 9, /*->423163*/
/*423154*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*423156*/            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)
/*423163*/          0, /*End of Scope*/
/*423164*/        /*SwitchType*/ 32, MVT::v2i64,// ->423198
/*423166*/          OPC_Scope, 9, /*->423177*/ // 3 children in Scope
/*423168*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*423170*/            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)
/*423177*/          /*Scope*/ 9, /*->423187*/
/*423178*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*423180*/            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)
/*423187*/          /*Scope*/ 9, /*->423197*/
/*423188*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*423190*/            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)
/*423197*/          0, /*End of Scope*/
/*423198*/        /*SwitchType*/ 9, MVT::v8i64,// ->423209
/*423200*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*423202*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXBQZrr), 0,
                        MVT::v8i64, 1/*#Ops*/, 0, 
                    // Src: (sext_invec:{ *:[v8i64] } VR128X:{ *:[v16i8] }:$src) - Complexity = 3
                    // Dst: (VPMOVSXBQZrr:{ *:[v8i64] } VR128X:{ *:[v16i8] }:$src)
/*423209*/        0, // EndSwitchType
/*423210*/      /*Scope*/ 96, /*->423307*/
/*423211*/        OPC_CheckChild0Type, MVT::v8i16,
/*423213*/        OPC_SwitchType /*3 cases */, 22, MVT::v4i64,// ->423238
/*423216*/          OPC_Scope, 9, /*->423227*/ // 2 children in Scope
/*423218*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*423220*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWQYrr), 0,
                          MVT::v4i64, 1/*#Ops*/, 0, 
                      // Src: (sext_invec:{ *:[v4i64] } VR128:{ *:[v8i16] }:$src) - Complexity = 3
                      // Dst: (VPMOVSXWQYrr:{ *:[v4i64] } VR128:{ *:[v8i16] }:$src)
/*423227*/          /*Scope*/ 9, /*->423237*/
/*423228*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*423230*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSXWQZ256rr), 0,
                          MVT::v4i64, 1/*#Ops*/, 0, 
                      // Src: (sext_invec:{ *:[v4i64] } VR128X:{ *:[v8i16] }:$src) - Complexity = 3
                      // Dst: (VPMOVSXWQZ256rr:{ *:[v4i64] } VR128X:{ *:[v8i16] }:$src)
/*423237*/          0, /*End of Scope*/
/*423238*/        /*SwitchType*/ 32, MVT::v4i32,// ->423272
/*423240*/          OPC_Scope, 9, /*->423251*/ // 3 children in Scope
/*423242*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*423244*/            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)
/*423251*/          /*Scope*/ 9, /*->423261*/
/*423252*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*423254*/            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)
/*423261*/          /*Scope*/ 9, /*->423271*/
/*423262*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*423264*/            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)
/*423271*/          0, /*End of Scope*/
/*423272*/        /*SwitchType*/ 32, MVT::v2i64,// ->423306
/*423274*/          OPC_Scope, 9, /*->423285*/ // 3 children in Scope
/*423276*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*423278*/            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)
/*423285*/          /*Scope*/ 9, /*->423295*/
/*423286*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*423288*/            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)
/*423295*/          /*Scope*/ 9, /*->423305*/
/*423296*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*423298*/            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)
/*423305*/          0, /*End of Scope*/
/*423306*/        0, // EndSwitchType
/*423307*/      /*Scope*/ 36, /*->423344*/
/*423308*/        OPC_CheckChild0Type, MVT::v4i32,
/*423310*/        OPC_CheckType, MVT::v2i64,
/*423312*/        OPC_Scope, 9, /*->423323*/ // 3 children in Scope
/*423314*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*423316*/          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)
/*423323*/        /*Scope*/ 9, /*->423333*/
/*423324*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*423326*/          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)
/*423333*/        /*Scope*/ 9, /*->423343*/
/*423334*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*423336*/          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)
/*423343*/        0, /*End of Scope*/
/*423344*/      0, /*End of Scope*/
/*423345*/    0, /*End of Scope*/
/*423346*/  /*SwitchOpcode*/ 58|128,16/*2106*/, TARGET_VAL(ISD::ZERO_EXTEND_VECTOR_INREG),// ->425456
/*423350*/    OPC_Scope, 4|128,14/*1796*/, /*->425149*/ // 2 children in Scope
/*423353*/      OPC_MoveChild0,
/*423354*/      OPC_SwitchOpcode /*3 cases */, 40|128,11/*1448*/, TARGET_VAL(ISD::BITCAST),// ->424807
/*423359*/        OPC_MoveChild0,
/*423360*/        OPC_SwitchOpcode /*2 cases */, 120|128,7/*1016*/, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->424381
/*423365*/          OPC_MoveChild0,
/*423366*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*423369*/          OPC_RecordMemRef,
/*423370*/          OPC_RecordNode, // #0 = 'ld' chained node
/*423371*/          OPC_CheckFoldableChainNode,
/*423372*/          OPC_RecordChild1, // #1 = $src
/*423373*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*423375*/          OPC_Scope, 30, /*->423407*/ // 20 children in Scope
/*423377*/            OPC_CheckPredicate, 9, // Predicate_load
/*423379*/            OPC_CheckType, MVT::i64,
/*423381*/            OPC_MoveParent,
/*423382*/            OPC_CheckType, MVT::v2i64,
/*423384*/            OPC_MoveParent,
/*423385*/            OPC_CheckType, MVT::v16i8,
/*423387*/            OPC_MoveParent,
/*423388*/            OPC_CheckType, MVT::v8i32,
/*423390*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*423392*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*423395*/            OPC_EmitMergeInputChains1_0,
/*423396*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (zext_invec:{ *:[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)
/*423407*/          /*Scope*/ 30, /*->423438*/
/*423408*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/*423410*/            OPC_CheckType, MVT::i32,
/*423412*/            OPC_MoveParent,
/*423413*/            OPC_CheckType, MVT::v4i32,
/*423415*/            OPC_MoveParent,
/*423416*/            OPC_CheckType, MVT::v16i8,
/*423418*/            OPC_MoveParent,
/*423419*/            OPC_CheckType, MVT::v4i64,
/*423421*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*423423*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*423426*/            OPC_EmitMergeInputChains1_0,
/*423427*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (zext_invec:{ *:[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)
/*423438*/          /*Scope*/ 84, /*->423523*/
/*423439*/            OPC_CheckPredicate, 9, // Predicate_load
/*423441*/            OPC_SwitchType /*2 cases */, 50, MVT::i64,// ->423494
/*423444*/              OPC_MoveParent,
/*423445*/              OPC_CheckType, MVT::v2i64,
/*423447*/              OPC_MoveParent,
/*423448*/              OPC_SwitchType /*2 cases */, 20, MVT::v8i16,// ->423471
/*423451*/                OPC_MoveParent,
/*423452*/                OPC_CheckType, MVT::v4i64,
/*423454*/                OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*423456*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*423459*/                OPC_EmitMergeInputChains1_0,
/*423460*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                          // Src: (zext_invec:{ *:[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)
/*423471*/              /*SwitchType*/ 20, MVT::v16i8,// ->423493
/*423473*/                OPC_MoveParent,
/*423474*/                OPC_CheckType, MVT::v8i16,
/*423476*/                OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*423478*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*423481*/                OPC_EmitMergeInputChains1_0,
/*423482*/                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)
/*423493*/              0, // EndSwitchType
/*423494*/            /*SwitchType*/ 26, MVT::f64,// ->423522
/*423496*/              OPC_MoveParent,
/*423497*/              OPC_CheckType, MVT::v2f64,
/*423499*/              OPC_MoveParent,
/*423500*/              OPC_CheckType, MVT::v16i8,
/*423502*/              OPC_MoveParent,
/*423503*/              OPC_CheckType, MVT::v8i16,
/*423505*/              OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*423507*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*423510*/              OPC_EmitMergeInputChains1_0,
/*423511*/              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)
/*423522*/            0, // EndSwitchType
/*423523*/          /*Scope*/ 30, /*->423554*/
/*423524*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/*423526*/            OPC_CheckType, MVT::i32,
/*423528*/            OPC_MoveParent,
/*423529*/            OPC_CheckType, MVT::v4i32,
/*423531*/            OPC_MoveParent,
/*423532*/            OPC_CheckType, MVT::v16i8,
/*423534*/            OPC_MoveParent,
/*423535*/            OPC_CheckType, MVT::v4i32,
/*423537*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*423539*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*423542*/            OPC_EmitMergeInputChains1_0,
/*423543*/            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)
/*423554*/          /*Scope*/ 32, /*->423587*/
/*423555*/            OPC_CheckPredicate, 70, // Predicate_extload
/*423557*/            OPC_CheckPredicate, 35, // Predicate_extloadi16
/*423559*/            OPC_CheckType, MVT::i32,
/*423561*/            OPC_MoveParent,
/*423562*/            OPC_CheckType, MVT::v4i32,
/*423564*/            OPC_MoveParent,
/*423565*/            OPC_CheckType, MVT::v16i8,
/*423567*/            OPC_MoveParent,
/*423568*/            OPC_CheckType, MVT::v2i64,
/*423570*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*423572*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*423575*/            OPC_EmitMergeInputChains1_0,
/*423576*/            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)
/*423587*/          /*Scope*/ 60, /*->423648*/
/*423588*/            OPC_CheckPredicate, 9, // Predicate_load
/*423590*/            OPC_SwitchType /*2 cases */, 26, MVT::i64,// ->423619
/*423593*/              OPC_MoveParent,
/*423594*/              OPC_CheckType, MVT::v2i64,
/*423596*/              OPC_MoveParent,
/*423597*/              OPC_CheckType, MVT::v8i16,
/*423599*/              OPC_MoveParent,
/*423600*/              OPC_CheckType, MVT::v4i32,
/*423602*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*423604*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*423607*/              OPC_EmitMergeInputChains1_0,
/*423608*/              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)
/*423619*/            /*SwitchType*/ 26, MVT::f64,// ->423647
/*423621*/              OPC_MoveParent,
/*423622*/              OPC_CheckType, MVT::v2f64,
/*423624*/              OPC_MoveParent,
/*423625*/              OPC_CheckType, MVT::v8i16,
/*423627*/              OPC_MoveParent,
/*423628*/              OPC_CheckType, MVT::v4i32,
/*423630*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*423632*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*423635*/              OPC_EmitMergeInputChains1_0,
/*423636*/              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)
/*423647*/            0, // EndSwitchType
/*423648*/          /*Scope*/ 30, /*->423679*/
/*423649*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/*423651*/            OPC_CheckType, MVT::i32,
/*423653*/            OPC_MoveParent,
/*423654*/            OPC_CheckType, MVT::v4i32,
/*423656*/            OPC_MoveParent,
/*423657*/            OPC_CheckType, MVT::v8i16,
/*423659*/            OPC_MoveParent,
/*423660*/            OPC_CheckType, MVT::v2i64,
/*423662*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*423664*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*423667*/            OPC_EmitMergeInputChains1_0,
/*423668*/            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)
/*423679*/          /*Scope*/ 108, /*->423788*/
/*423680*/            OPC_CheckPredicate, 9, // Predicate_load
/*423682*/            OPC_SwitchType /*2 cases */, 50, MVT::i64,// ->423735
/*423685*/              OPC_MoveParent,
/*423686*/              OPC_CheckType, MVT::v2i64,
/*423688*/              OPC_MoveParent,
/*423689*/              OPC_SwitchType /*2 cases */, 20, MVT::v4i32,// ->423712
/*423692*/                OPC_MoveParent,
/*423693*/                OPC_CheckType, MVT::v2i64,
/*423695*/                OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*423697*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*423700*/                OPC_EmitMergeInputChains1_0,
/*423701*/                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)
/*423712*/              /*SwitchType*/ 20, MVT::v16i8,// ->423734
/*423714*/                OPC_MoveParent,
/*423715*/                OPC_CheckType, MVT::v8i16,
/*423717*/                OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*423719*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*423722*/                OPC_EmitMergeInputChains1_0,
/*423723*/                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)
/*423734*/              0, // EndSwitchType
/*423735*/            /*SwitchType*/ 50, MVT::f64,// ->423787
/*423737*/              OPC_MoveParent,
/*423738*/              OPC_CheckType, MVT::v2f64,
/*423740*/              OPC_MoveParent,
/*423741*/              OPC_SwitchType /*2 cases */, 20, MVT::v4i32,// ->423764
/*423744*/                OPC_MoveParent,
/*423745*/                OPC_CheckType, MVT::v2i64,
/*423747*/                OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*423749*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*423752*/                OPC_EmitMergeInputChains1_0,
/*423753*/                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)
/*423764*/              /*SwitchType*/ 20, MVT::v16i8,// ->423786
/*423766*/                OPC_MoveParent,
/*423767*/                OPC_CheckType, MVT::v8i16,
/*423769*/                OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*423771*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*423774*/                OPC_EmitMergeInputChains1_0,
/*423775*/                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)
/*423786*/              0, // EndSwitchType
/*423787*/            0, // EndSwitchType
/*423788*/          /*Scope*/ 30, /*->423819*/
/*423789*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/*423791*/            OPC_CheckType, MVT::i32,
/*423793*/            OPC_MoveParent,
/*423794*/            OPC_CheckType, MVT::v4i32,
/*423796*/            OPC_MoveParent,
/*423797*/            OPC_CheckType, MVT::v16i8,
/*423799*/            OPC_MoveParent,
/*423800*/            OPC_CheckType, MVT::v4i32,
/*423802*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*423804*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*423807*/            OPC_EmitMergeInputChains1_0,
/*423808*/            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)
/*423819*/          /*Scope*/ 32, /*->423852*/
/*423820*/            OPC_CheckPredicate, 70, // Predicate_extload
/*423822*/            OPC_CheckPredicate, 35, // Predicate_extloadi16
/*423824*/            OPC_CheckType, MVT::i32,
/*423826*/            OPC_MoveParent,
/*423827*/            OPC_CheckType, MVT::v4i32,
/*423829*/            OPC_MoveParent,
/*423830*/            OPC_CheckType, MVT::v16i8,
/*423832*/            OPC_MoveParent,
/*423833*/            OPC_CheckType, MVT::v2i64,
/*423835*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*423837*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*423840*/            OPC_EmitMergeInputChains1_0,
/*423841*/            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)
/*423852*/          /*Scope*/ 60, /*->423913*/
/*423853*/            OPC_CheckPredicate, 9, // Predicate_load
/*423855*/            OPC_SwitchType /*2 cases */, 26, MVT::i64,// ->423884
/*423858*/              OPC_MoveParent,
/*423859*/              OPC_CheckType, MVT::v2i64,
/*423861*/              OPC_MoveParent,
/*423862*/              OPC_CheckType, MVT::v8i16,
/*423864*/              OPC_MoveParent,
/*423865*/              OPC_CheckType, MVT::v4i32,
/*423867*/              OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*423869*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*423872*/              OPC_EmitMergeInputChains1_0,
/*423873*/              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)
/*423884*/            /*SwitchType*/ 26, MVT::f64,// ->423912
/*423886*/              OPC_MoveParent,
/*423887*/              OPC_CheckType, MVT::v2f64,
/*423889*/              OPC_MoveParent,
/*423890*/              OPC_CheckType, MVT::v8i16,
/*423892*/              OPC_MoveParent,
/*423893*/              OPC_CheckType, MVT::v4i32,
/*423895*/              OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*423897*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*423900*/              OPC_EmitMergeInputChains1_0,
/*423901*/              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)
/*423912*/            0, // EndSwitchType
/*423913*/          /*Scope*/ 30, /*->423944*/
/*423914*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/*423916*/            OPC_CheckType, MVT::i32,
/*423918*/            OPC_MoveParent,
/*423919*/            OPC_CheckType, MVT::v4i32,
/*423921*/            OPC_MoveParent,
/*423922*/            OPC_CheckType, MVT::v8i16,
/*423924*/            OPC_MoveParent,
/*423925*/            OPC_CheckType, MVT::v2i64,
/*423927*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*423929*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*423932*/            OPC_EmitMergeInputChains1_0,
/*423933*/            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)
/*423944*/          /*Scope*/ 108, /*->424053*/
/*423945*/            OPC_CheckPredicate, 9, // Predicate_load
/*423947*/            OPC_SwitchType /*2 cases */, 50, MVT::i64,// ->424000
/*423950*/              OPC_MoveParent,
/*423951*/              OPC_CheckType, MVT::v2i64,
/*423953*/              OPC_MoveParent,
/*423954*/              OPC_SwitchType /*2 cases */, 20, MVT::v4i32,// ->423977
/*423957*/                OPC_MoveParent,
/*423958*/                OPC_CheckType, MVT::v2i64,
/*423960*/                OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*423962*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*423965*/                OPC_EmitMergeInputChains1_0,
/*423966*/                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)
/*423977*/              /*SwitchType*/ 20, MVT::v16i8,// ->423999
/*423979*/                OPC_MoveParent,
/*423980*/                OPC_CheckType, MVT::v8i16,
/*423982*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*423984*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*423987*/                OPC_EmitMergeInputChains1_0,
/*423988*/                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)
/*423999*/              0, // EndSwitchType
/*424000*/            /*SwitchType*/ 50, MVT::f64,// ->424052
/*424002*/              OPC_MoveParent,
/*424003*/              OPC_CheckType, MVT::v2f64,
/*424005*/              OPC_MoveParent,
/*424006*/              OPC_SwitchType /*2 cases */, 20, MVT::v4i32,// ->424029
/*424009*/                OPC_MoveParent,
/*424010*/                OPC_CheckType, MVT::v2i64,
/*424012*/                OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*424014*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*424017*/                OPC_EmitMergeInputChains1_0,
/*424018*/                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)
/*424029*/              /*SwitchType*/ 20, MVT::v16i8,// ->424051
/*424031*/                OPC_MoveParent,
/*424032*/                OPC_CheckType, MVT::v8i16,
/*424034*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*424036*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*424039*/                OPC_EmitMergeInputChains1_0,
/*424040*/                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)
/*424051*/              0, // EndSwitchType
/*424052*/            0, // EndSwitchType
/*424053*/          /*Scope*/ 30, /*->424084*/
/*424054*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/*424056*/            OPC_CheckType, MVT::i32,
/*424058*/            OPC_MoveParent,
/*424059*/            OPC_CheckType, MVT::v4i32,
/*424061*/            OPC_MoveParent,
/*424062*/            OPC_CheckType, MVT::v16i8,
/*424064*/            OPC_MoveParent,
/*424065*/            OPC_CheckType, MVT::v4i32,
/*424067*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*424069*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*424072*/            OPC_EmitMergeInputChains1_0,
/*424073*/            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)
/*424084*/          /*Scope*/ 32, /*->424117*/
/*424085*/            OPC_CheckPredicate, 70, // Predicate_extload
/*424087*/            OPC_CheckPredicate, 35, // Predicate_extloadi16
/*424089*/            OPC_CheckType, MVT::i32,
/*424091*/            OPC_MoveParent,
/*424092*/            OPC_CheckType, MVT::v4i32,
/*424094*/            OPC_MoveParent,
/*424095*/            OPC_CheckType, MVT::v16i8,
/*424097*/            OPC_MoveParent,
/*424098*/            OPC_CheckType, MVT::v2i64,
/*424100*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*424102*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*424105*/            OPC_EmitMergeInputChains1_0,
/*424106*/            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)
/*424117*/          /*Scope*/ 60, /*->424178*/
/*424118*/            OPC_CheckPredicate, 9, // Predicate_load
/*424120*/            OPC_SwitchType /*2 cases */, 26, MVT::i64,// ->424149
/*424123*/              OPC_MoveParent,
/*424124*/              OPC_CheckType, MVT::v2i64,
/*424126*/              OPC_MoveParent,
/*424127*/              OPC_CheckType, MVT::v8i16,
/*424129*/              OPC_MoveParent,
/*424130*/              OPC_CheckType, MVT::v4i32,
/*424132*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*424134*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*424137*/              OPC_EmitMergeInputChains1_0,
/*424138*/              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)
/*424149*/            /*SwitchType*/ 26, MVT::f64,// ->424177
/*424151*/              OPC_MoveParent,
/*424152*/              OPC_CheckType, MVT::v2f64,
/*424154*/              OPC_MoveParent,
/*424155*/              OPC_CheckType, MVT::v8i16,
/*424157*/              OPC_MoveParent,
/*424158*/              OPC_CheckType, MVT::v4i32,
/*424160*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*424162*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*424165*/              OPC_EmitMergeInputChains1_0,
/*424166*/              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)
/*424177*/            0, // EndSwitchType
/*424178*/          /*Scope*/ 30, /*->424209*/
/*424179*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/*424181*/            OPC_CheckType, MVT::i32,
/*424183*/            OPC_MoveParent,
/*424184*/            OPC_CheckType, MVT::v4i32,
/*424186*/            OPC_MoveParent,
/*424187*/            OPC_CheckType, MVT::v8i16,
/*424189*/            OPC_MoveParent,
/*424190*/            OPC_CheckType, MVT::v2i64,
/*424192*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*424194*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*424197*/            OPC_EmitMergeInputChains1_0,
/*424198*/            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)
/*424209*/          /*Scope*/ 84, /*->424294*/
/*424210*/            OPC_CheckPredicate, 9, // Predicate_load
/*424212*/            OPC_SwitchType /*2 cases */, 50, MVT::i64,// ->424265
/*424215*/              OPC_MoveParent,
/*424216*/              OPC_CheckType, MVT::v2i64,
/*424218*/              OPC_MoveParent,
/*424219*/              OPC_SwitchType /*2 cases */, 20, MVT::v4i32,// ->424242
/*424222*/                OPC_MoveParent,
/*424223*/                OPC_CheckType, MVT::v2i64,
/*424225*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*424227*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*424230*/                OPC_EmitMergeInputChains1_0,
/*424231*/                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)
/*424242*/              /*SwitchType*/ 20, MVT::v16i8,// ->424264
/*424244*/                OPC_MoveParent,
/*424245*/                OPC_CheckType, MVT::v8i32,
/*424247*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*424249*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*424252*/                OPC_EmitMergeInputChains1_0,
/*424253*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                          // Src: (zext_invec:{ *:[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)
/*424264*/              0, // EndSwitchType
/*424265*/            /*SwitchType*/ 26, MVT::f64,// ->424293
/*424267*/              OPC_MoveParent,
/*424268*/              OPC_CheckType, MVT::v2f64,
/*424270*/              OPC_MoveParent,
/*424271*/              OPC_CheckType, MVT::v4i32,
/*424273*/              OPC_MoveParent,
/*424274*/              OPC_CheckType, MVT::v2i64,
/*424276*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*424278*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*424281*/              OPC_EmitMergeInputChains1_0,
/*424282*/              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)
/*424293*/            0, // EndSwitchType
/*424294*/          /*Scope*/ 30, /*->424325*/
/*424295*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/*424297*/            OPC_CheckType, MVT::i32,
/*424299*/            OPC_MoveParent,
/*424300*/            OPC_CheckType, MVT::v4i32,
/*424302*/            OPC_MoveParent,
/*424303*/            OPC_CheckType, MVT::v16i8,
/*424305*/            OPC_MoveParent,
/*424306*/            OPC_CheckType, MVT::v4i64,
/*424308*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*424310*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*424313*/            OPC_EmitMergeInputChains1_0,
/*424314*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (zext_invec:{ *:[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)
/*424325*/          /*Scope*/ 54, /*->424380*/
/*424326*/            OPC_CheckPredicate, 9, // Predicate_load
/*424328*/            OPC_CheckType, MVT::i64,
/*424330*/            OPC_MoveParent,
/*424331*/            OPC_CheckType, MVT::v2i64,
/*424333*/            OPC_MoveParent,
/*424334*/            OPC_SwitchType /*2 cases */, 20, MVT::v8i16,// ->424357
/*424337*/              OPC_MoveParent,
/*424338*/              OPC_CheckType, MVT::v4i64,
/*424340*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*424342*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*424345*/              OPC_EmitMergeInputChains1_0,
/*424346*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (zext_invec:{ *:[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)
/*424357*/            /*SwitchType*/ 20, MVT::v16i8,// ->424379
/*424359*/              OPC_MoveParent,
/*424360*/              OPC_CheckType, MVT::v8i64,
/*424362*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*424364*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*424367*/              OPC_EmitMergeInputChains1_0,
/*424368*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (zext_invec:{ *:[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)
/*424379*/            0, // EndSwitchType
/*424380*/          0, /*End of Scope*/
/*424381*/        /*SwitchOpcode*/ 37|128,3/*421*/, TARGET_VAL(X86ISD::VZEXT_LOAD),// ->424806
/*424385*/          OPC_RecordMemRef,
/*424386*/          OPC_RecordNode, // #0 = 'X86vzld' chained node
/*424387*/          OPC_CheckFoldableChainNode,
/*424388*/          OPC_RecordChild1, // #1 = $src
/*424389*/          OPC_SwitchType /*2 cases */, 5|128,2/*261*/, MVT::v2i64,// ->424654
/*424393*/            OPC_CheckPredicate, 49, // Predicate_X86vzload64
/*424395*/            OPC_MoveParent,
/*424396*/            OPC_Scope, 22, /*->424420*/ // 8 children in Scope
/*424398*/              OPC_CheckType, MVT::v16i8,
/*424400*/              OPC_MoveParent,
/*424401*/              OPC_CheckType, MVT::v8i16,
/*424403*/              OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*424405*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*424408*/              OPC_EmitMergeInputChains1_0,
/*424409*/              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] } (X86vzld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>)) - Complexity = 28
                        // Dst: (VPMOVZXBWrm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*424420*/            /*Scope*/ 22, /*->424443*/
/*424421*/              OPC_CheckType, MVT::v8i16,
/*424423*/              OPC_MoveParent,
/*424424*/              OPC_CheckType, MVT::v4i32,
/*424426*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*424428*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*424431*/              OPC_EmitMergeInputChains1_0,
/*424432*/              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] } (X86vzld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>)) - Complexity = 28
                        // Dst: (VPMOVZXWDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*424443*/            /*Scope*/ 46, /*->424490*/
/*424444*/              OPC_SwitchType /*2 cases */, 20, MVT::v4i32,// ->424467
/*424447*/                OPC_MoveParent,
/*424448*/                OPC_CheckType, MVT::v2i64,
/*424450*/                OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*424452*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*424455*/                OPC_EmitMergeInputChains1_0,
/*424456*/                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] } (X86vzld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>)) - Complexity = 28
                          // Dst: (VPMOVZXDQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*424467*/              /*SwitchType*/ 20, MVT::v16i8,// ->424489
/*424469*/                OPC_MoveParent,
/*424470*/                OPC_CheckType, MVT::v8i16,
/*424472*/                OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*424474*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*424477*/                OPC_EmitMergeInputChains1_0,
/*424478*/                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] } (X86vzld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>)) - Complexity = 28
                          // Dst: (PMOVZXBWrm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*424489*/              0, // EndSwitchType
/*424490*/            /*Scope*/ 22, /*->424513*/
/*424491*/              OPC_CheckType, MVT::v8i16,
/*424493*/              OPC_MoveParent,
/*424494*/              OPC_CheckType, MVT::v4i32,
/*424496*/              OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*424498*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*424501*/              OPC_EmitMergeInputChains1_0,
/*424502*/              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] } (X86vzld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>)) - Complexity = 28
                        // Dst: (PMOVZXWDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*424513*/            /*Scope*/ 46, /*->424560*/
/*424514*/              OPC_SwitchType /*2 cases */, 20, MVT::v4i32,// ->424537
/*424517*/                OPC_MoveParent,
/*424518*/                OPC_CheckType, MVT::v2i64,
/*424520*/                OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*424522*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*424525*/                OPC_EmitMergeInputChains1_0,
/*424526*/                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] } (X86vzld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>)) - Complexity = 28
                          // Dst: (PMOVZXDQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*424537*/              /*SwitchType*/ 20, MVT::v16i8,// ->424559
/*424539*/                OPC_MoveParent,
/*424540*/                OPC_CheckType, MVT::v8i16,
/*424542*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*424544*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*424547*/                OPC_EmitMergeInputChains1_0,
/*424548*/                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] } (X86vzld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>)) - Complexity = 28
                          // Dst: (VPMOVZXBWZ128rm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*424559*/              0, // EndSwitchType
/*424560*/            /*Scope*/ 22, /*->424583*/
/*424561*/              OPC_CheckType, MVT::v8i16,
/*424563*/              OPC_MoveParent,
/*424564*/              OPC_CheckType, MVT::v4i32,
/*424566*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*424568*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*424571*/              OPC_EmitMergeInputChains1_0,
/*424572*/              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] } (X86vzld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>)) - Complexity = 28
                        // Dst: (VPMOVZXWDZ128rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*424583*/            /*Scope*/ 46, /*->424630*/
/*424584*/              OPC_SwitchType /*2 cases */, 20, MVT::v4i32,// ->424607
/*424587*/                OPC_MoveParent,
/*424588*/                OPC_CheckType, MVT::v2i64,
/*424590*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*424592*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*424595*/                OPC_EmitMergeInputChains1_0,
/*424596*/                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] } (X86vzld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>)) - Complexity = 28
                          // Dst: (VPMOVZXDQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*424607*/              /*SwitchType*/ 20, MVT::v16i8,// ->424629
/*424609*/                OPC_MoveParent,
/*424610*/                OPC_CheckType, MVT::v8i32,
/*424612*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*424614*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*424617*/                OPC_EmitMergeInputChains1_0,
/*424618*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                          // Src: (zext_invec:{ *:[v8i32] } (bitconvert:{ *:[v16i8] } (X86vzld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>)) - Complexity = 28
                          // Dst: (VPMOVZXBDZ256rm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*424629*/              0, // EndSwitchType
/*424630*/            /*Scope*/ 22, /*->424653*/
/*424631*/              OPC_CheckType, MVT::v8i16,
/*424633*/              OPC_MoveParent,
/*424634*/              OPC_CheckType, MVT::v4i64,
/*424636*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*424638*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*424641*/              OPC_EmitMergeInputChains1_0,
/*424642*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (zext_invec:{ *:[v4i64] } (bitconvert:{ *:[v8i16] } (X86vzld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>)) - Complexity = 28
                        // Dst: (VPMOVZXWQZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*424653*/            0, /*End of Scope*/
/*424654*/          /*SwitchType*/ 20|128,1/*148*/, MVT::v4i32,// ->424805
/*424657*/            OPC_CheckPredicate, 50, // Predicate_X86vzload32
/*424659*/            OPC_MoveParent,
/*424660*/            OPC_SwitchType /*2 cases */, 80, MVT::v16i8,// ->424743
/*424663*/              OPC_MoveParent,
/*424664*/              OPC_SwitchType /*2 cases */, 56, MVT::v4i32,// ->424723
/*424667*/                OPC_Scope, 17, /*->424686*/ // 3 children in Scope
/*424669*/                  OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*424671*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*424674*/                  OPC_EmitMergeInputChains1_0,
/*424675*/                  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] } (X86vzld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload32>>)) - Complexity = 28
                            // Dst: (VPMOVZXBDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*424686*/                /*Scope*/ 17, /*->424704*/
/*424687*/                  OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*424689*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*424692*/                  OPC_EmitMergeInputChains1_0,
/*424693*/                  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] } (X86vzld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload32>>)) - Complexity = 28
                            // Dst: (PMOVZXBDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*424704*/                /*Scope*/ 17, /*->424722*/
/*424705*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*424707*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*424710*/                  OPC_EmitMergeInputChains1_0,
/*424711*/                  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] } (X86vzld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload32>>)) - Complexity = 28
                            // Dst: (VPMOVZXBDZ128rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*424722*/                0, /*End of Scope*/
/*424723*/              /*SwitchType*/ 17, MVT::v4i64,// ->424742
/*424725*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*424727*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*424730*/                OPC_EmitMergeInputChains1_0,
/*424731*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                          // Src: (zext_invec:{ *:[v4i64] } (bitconvert:{ *:[v16i8] } (X86vzld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload32>>)) - Complexity = 28
                          // Dst: (VPMOVZXBQZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*424742*/              0, // EndSwitchType
/*424743*/            /*SwitchType*/ 59, MVT::v8i16,// ->424804
/*424745*/              OPC_MoveParent,
/*424746*/              OPC_CheckType, MVT::v2i64,
/*424748*/              OPC_Scope, 17, /*->424767*/ // 3 children in Scope
/*424750*/                OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*424752*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*424755*/                OPC_EmitMergeInputChains1_0,
/*424756*/                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] } (X86vzld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload32>>)) - Complexity = 28
                          // Dst: (VPMOVZXWQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*424767*/              /*Scope*/ 17, /*->424785*/
/*424768*/                OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*424770*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*424773*/                OPC_EmitMergeInputChains1_0,
/*424774*/                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] } (X86vzld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload32>>)) - Complexity = 28
                          // Dst: (PMOVZXWQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*424785*/              /*Scope*/ 17, /*->424803*/
/*424786*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*424788*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*424791*/                OPC_EmitMergeInputChains1_0,
/*424792*/                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] } (X86vzld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload32>>)) - Complexity = 28
                          // Dst: (VPMOVZXWQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*424803*/              0, /*End of Scope*/
/*424804*/            0, // EndSwitchType
/*424805*/          0, // EndSwitchType
/*424806*/        0, // EndSwitchOpcode
/*424807*/      /*SwitchOpcode*/ 72, TARGET_VAL(X86ISD::VZEXT_LOAD),// ->424882
/*424810*/        OPC_RecordMemRef,
/*424811*/        OPC_RecordNode, // #0 = 'X86vzld' chained node
/*424812*/        OPC_RecordChild1, // #1 = $src
/*424813*/        OPC_CheckPredicate, 49, // Predicate_X86vzload64
/*424815*/        OPC_SwitchType /*2 cases */, 41, MVT::v16i8,// ->424859
/*424818*/          OPC_MoveParent,
/*424819*/          OPC_SwitchType /*2 cases */, 17, MVT::v8i32,// ->424839
/*424822*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*424824*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*424827*/            OPC_EmitMergeInputChains1_0,
/*424828*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (zext_invec:{ *:[v8i32] } (X86vzld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>) - Complexity = 25
                      // Dst: (VPMOVZXBDYrm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*424839*/          /*SwitchType*/ 17, MVT::v4i64,// ->424858
/*424841*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*424843*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*424846*/            OPC_EmitMergeInputChains1_0,
/*424847*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (zext_invec:{ *:[v4i64] } (X86vzld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>) - Complexity = 25
                      // Dst: (VPMOVZXBQYrm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*424858*/          0, // EndSwitchType
/*424859*/        /*SwitchType*/ 20, MVT::v8i16,// ->424881
/*424861*/          OPC_MoveParent,
/*424862*/          OPC_CheckType, MVT::v4i64,
/*424864*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*424866*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*424869*/          OPC_EmitMergeInputChains1_0,
/*424870*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (zext_invec:{ *:[v4i64] } (X86vzld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>) - Complexity = 25
                    // Dst: (VPMOVZXWQYrm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*424881*/        0, // EndSwitchType
/*424882*/      /*SwitchOpcode*/ 6|128,2/*262*/, TARGET_VAL(ISD::LOAD),// ->425148
/*424886*/        OPC_RecordMemRef,
/*424887*/        OPC_RecordNode, // #0 = 'ld' chained node
/*424888*/        OPC_RecordChild1, // #1 = $src
/*424889*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*424891*/        OPC_CheckPredicate, 9, // Predicate_load
/*424893*/        OPC_SwitchType /*3 cases */, 123, MVT::v16i8,// ->425019
/*424896*/          OPC_MoveParent,
/*424897*/          OPC_SwitchType /*3 cases */, 38, MVT::v8i16,// ->424938
/*424900*/            OPC_Scope, 17, /*->424919*/ // 2 children in Scope
/*424902*/              OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*424904*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*424907*/              OPC_EmitMergeInputChains1_0,
/*424908*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (zext_invec:{ *:[v8i16] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VPMOVZXBWrm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*424919*/            /*Scope*/ 17, /*->424937*/
/*424920*/              OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*424922*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*424925*/              OPC_EmitMergeInputChains1_0,
/*424926*/              OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVZXBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (zext_invec:{ *:[v8i16] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (PMOVZXBWrm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*424937*/            0, /*End of Scope*/
/*424938*/          /*SwitchType*/ 38, MVT::v4i32,// ->424978
/*424940*/            OPC_Scope, 17, /*->424959*/ // 2 children in Scope
/*424942*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*424944*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*424947*/              OPC_EmitMergeInputChains1_0,
/*424948*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBDrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (zext_invec:{ *:[v4i32] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VPMOVZXBDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*424959*/            /*Scope*/ 17, /*->424977*/
/*424960*/              OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*424962*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*424965*/              OPC_EmitMergeInputChains1_0,
/*424966*/              OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVZXBDrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (zext_invec:{ *:[v4i32] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (PMOVZXBDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*424977*/            0, /*End of Scope*/
/*424978*/          /*SwitchType*/ 38, MVT::v2i64,// ->425018
/*424980*/            OPC_Scope, 17, /*->424999*/ // 2 children in Scope
/*424982*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*424984*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*424987*/              OPC_EmitMergeInputChains1_0,
/*424988*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBQrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (zext_invec:{ *:[v2i64] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VPMOVZXBQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*424999*/            /*Scope*/ 17, /*->425017*/
/*425000*/              OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*425002*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*425005*/              OPC_EmitMergeInputChains1_0,
/*425006*/              OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVZXBQrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (zext_invec:{ *:[v2i64] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (PMOVZXBQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*425017*/            0, /*End of Scope*/
/*425018*/          0, // EndSwitchType
/*425019*/        /*SwitchType*/ 83, MVT::v8i16,// ->425104
/*425021*/          OPC_MoveParent,
/*425022*/          OPC_SwitchType /*2 cases */, 38, MVT::v4i32,// ->425063
/*425025*/            OPC_Scope, 17, /*->425044*/ // 2 children in Scope
/*425027*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*425029*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*425032*/              OPC_EmitMergeInputChains1_0,
/*425033*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (zext_invec:{ *:[v4i32] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VPMOVZXWDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*425044*/            /*Scope*/ 17, /*->425062*/
/*425045*/              OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*425047*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*425050*/              OPC_EmitMergeInputChains1_0,
/*425051*/              OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVZXWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (zext_invec:{ *:[v4i32] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (PMOVZXWDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*425062*/            0, /*End of Scope*/
/*425063*/          /*SwitchType*/ 38, MVT::v2i64,// ->425103
/*425065*/            OPC_Scope, 17, /*->425084*/ // 2 children in Scope
/*425067*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*425069*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*425072*/              OPC_EmitMergeInputChains1_0,
/*425073*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWQrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (zext_invec:{ *:[v2i64] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VPMOVZXWQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*425084*/            /*Scope*/ 17, /*->425102*/
/*425085*/              OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*425087*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*425090*/              OPC_EmitMergeInputChains1_0,
/*425091*/              OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVZXWQrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (zext_invec:{ *:[v2i64] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (PMOVZXWQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*425102*/            0, /*End of Scope*/
/*425103*/          0, // EndSwitchType
/*425104*/        /*SwitchType*/ 41, MVT::v4i32,// ->425147
/*425106*/          OPC_MoveParent,
/*425107*/          OPC_CheckType, MVT::v2i64,
/*425109*/          OPC_Scope, 17, /*->425128*/ // 2 children in Scope
/*425111*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*425113*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*425116*/            OPC_EmitMergeInputChains1_0,
/*425117*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (zext_invec:{ *:[v2i64] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMOVZXDQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*425128*/          /*Scope*/ 17, /*->425146*/
/*425129*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*425131*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*425134*/            OPC_EmitMergeInputChains1_0,
/*425135*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PMOVZXDQrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (zext_invec:{ *:[v2i64] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (PMOVZXDQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*425146*/          0, /*End of Scope*/
/*425147*/        0, // EndSwitchType
/*425148*/      0, // EndSwitchOpcode
/*425149*/    /*Scope*/ 48|128,2/*304*/, /*->425455*/
/*425151*/      OPC_RecordChild0, // #0 = $src
/*425152*/      OPC_Scope, 37|128,1/*165*/, /*->425320*/ // 3 children in Scope
/*425155*/        OPC_CheckChild0Type, MVT::v16i8,
/*425157*/        OPC_SwitchType /*6 cases */, 22, MVT::v8i32,// ->425182
/*425160*/          OPC_Scope, 9, /*->425171*/ // 2 children in Scope
/*425162*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*425164*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBDYrr), 0,
                          MVT::v8i32, 1/*#Ops*/, 0, 
                      // Src: (zext_invec:{ *:[v8i32] } VR128:{ *:[v16i8] }:$src) - Complexity = 3
                      // Dst: (VPMOVZXBDYrr:{ *:[v8i32] } VR128:{ *:[v16i8] }:$src)
/*425171*/          /*Scope*/ 9, /*->425181*/
/*425172*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*425174*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBDZ256rr), 0,
                          MVT::v8i32, 1/*#Ops*/, 0, 
                      // Src: (zext_invec:{ *:[v8i32] } VR128X:{ *:[v16i8] }:$src) - Complexity = 3
                      // Dst: (VPMOVZXBDZ256rr:{ *:[v8i32] } VR128X:{ *:[v16i8] }:$src)
/*425181*/          0, /*End of Scope*/
/*425182*/        /*SwitchType*/ 22, MVT::v4i64,// ->425206
/*425184*/          OPC_Scope, 9, /*->425195*/ // 2 children in Scope
/*425186*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*425188*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBQYrr), 0,
                          MVT::v4i64, 1/*#Ops*/, 0, 
                      // Src: (zext_invec:{ *:[v4i64] } VR128:{ *:[v16i8] }:$src) - Complexity = 3
                      // Dst: (VPMOVZXBQYrr:{ *:[v4i64] } VR128:{ *:[v16i8] }:$src)
/*425195*/          /*Scope*/ 9, /*->425205*/
/*425196*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*425198*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBQZ256rr), 0,
                          MVT::v4i64, 1/*#Ops*/, 0, 
                      // Src: (zext_invec:{ *:[v4i64] } VR128X:{ *:[v16i8] }:$src) - Complexity = 3
                      // Dst: (VPMOVZXBQZ256rr:{ *:[v4i64] } VR128X:{ *:[v16i8] }:$src)
/*425205*/          0, /*End of Scope*/
/*425206*/        /*SwitchType*/ 32, MVT::v8i16,// ->425240
/*425208*/          OPC_Scope, 9, /*->425219*/ // 3 children in Scope
/*425210*/            OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*425212*/            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)
/*425219*/          /*Scope*/ 9, /*->425229*/
/*425220*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*425222*/            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)
/*425229*/          /*Scope*/ 9, /*->425239*/
/*425230*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*425232*/            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)
/*425239*/          0, /*End of Scope*/
/*425240*/        /*SwitchType*/ 32, MVT::v4i32,// ->425274
/*425242*/          OPC_Scope, 9, /*->425253*/ // 3 children in Scope
/*425244*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*425246*/            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)
/*425253*/          /*Scope*/ 9, /*->425263*/
/*425254*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*425256*/            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)
/*425263*/          /*Scope*/ 9, /*->425273*/
/*425264*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*425266*/            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)
/*425273*/          0, /*End of Scope*/
/*425274*/        /*SwitchType*/ 32, MVT::v2i64,// ->425308
/*425276*/          OPC_Scope, 9, /*->425287*/ // 3 children in Scope
/*425278*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*425280*/            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)
/*425287*/          /*Scope*/ 9, /*->425297*/
/*425288*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*425290*/            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)
/*425297*/          /*Scope*/ 9, /*->425307*/
/*425298*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*425300*/            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)
/*425307*/          0, /*End of Scope*/
/*425308*/        /*SwitchType*/ 9, MVT::v8i64,// ->425319
/*425310*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*425312*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXBQZrr), 0,
                        MVT::v8i64, 1/*#Ops*/, 0, 
                    // Src: (zext_invec:{ *:[v8i64] } VR128X:{ *:[v16i8] }:$src) - Complexity = 3
                    // Dst: (VPMOVZXBQZrr:{ *:[v8i64] } VR128X:{ *:[v16i8] }:$src)
/*425319*/        0, // EndSwitchType
/*425320*/      /*Scope*/ 96, /*->425417*/
/*425321*/        OPC_CheckChild0Type, MVT::v8i16,
/*425323*/        OPC_SwitchType /*3 cases */, 22, MVT::v4i64,// ->425348
/*425326*/          OPC_Scope, 9, /*->425337*/ // 2 children in Scope
/*425328*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*425330*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWQYrr), 0,
                          MVT::v4i64, 1/*#Ops*/, 0, 
                      // Src: (zext_invec:{ *:[v4i64] } VR128:{ *:[v8i16] }:$src) - Complexity = 3
                      // Dst: (VPMOVZXWQYrr:{ *:[v4i64] } VR128:{ *:[v8i16] }:$src)
/*425337*/          /*Scope*/ 9, /*->425347*/
/*425338*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*425340*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVZXWQZ256rr), 0,
                          MVT::v4i64, 1/*#Ops*/, 0, 
                      // Src: (zext_invec:{ *:[v4i64] } VR128X:{ *:[v8i16] }:$src) - Complexity = 3
                      // Dst: (VPMOVZXWQZ256rr:{ *:[v4i64] } VR128X:{ *:[v8i16] }:$src)
/*425347*/          0, /*End of Scope*/
/*425348*/        /*SwitchType*/ 32, MVT::v4i32,// ->425382
/*425350*/          OPC_Scope, 9, /*->425361*/ // 3 children in Scope
/*425352*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*425354*/            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)
/*425361*/          /*Scope*/ 9, /*->425371*/
/*425362*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*425364*/            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)
/*425371*/          /*Scope*/ 9, /*->425381*/
/*425372*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*425374*/            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)
/*425381*/          0, /*End of Scope*/
/*425382*/        /*SwitchType*/ 32, MVT::v2i64,// ->425416
/*425384*/          OPC_Scope, 9, /*->425395*/ // 3 children in Scope
/*425386*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*425388*/            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)
/*425395*/          /*Scope*/ 9, /*->425405*/
/*425396*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*425398*/            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)
/*425405*/          /*Scope*/ 9, /*->425415*/
/*425406*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*425408*/            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)
/*425415*/          0, /*End of Scope*/
/*425416*/        0, // EndSwitchType
/*425417*/      /*Scope*/ 36, /*->425454*/
/*425418*/        OPC_CheckChild0Type, MVT::v4i32,
/*425420*/        OPC_CheckType, MVT::v2i64,
/*425422*/        OPC_Scope, 9, /*->425433*/ // 3 children in Scope
/*425424*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*425426*/          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)
/*425433*/        /*Scope*/ 9, /*->425443*/
/*425434*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*425436*/          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)
/*425443*/        /*Scope*/ 9, /*->425453*/
/*425444*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*425446*/          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)
/*425453*/        0, /*End of Scope*/
/*425454*/      0, /*End of Scope*/
/*425455*/    0, /*End of Scope*/
/*425456*/  /*SwitchOpcode*/ 105|128,7/*1001*/, TARGET_VAL(X86ISD::CVTP2SI),// ->426461
/*425460*/    OPC_Scope, 120|128,5/*760*/, /*->426223*/ // 2 children in Scope
/*425463*/      OPC_MoveChild0,
/*425464*/      OPC_SwitchOpcode /*3 cases */, 80, TARGET_VAL(ISD::BITCAST),// ->425548
/*425468*/        OPC_MoveChild0,
/*425469*/        OPC_SwitchOpcode /*2 cases */, 40, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->425513
/*425473*/          OPC_MoveChild0,
/*425474*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*425477*/          OPC_RecordMemRef,
/*425478*/          OPC_RecordNode, // #0 = 'ld' chained node
/*425479*/          OPC_CheckFoldableChainNode,
/*425480*/          OPC_RecordChild1, // #1 = $src
/*425481*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*425483*/          OPC_CheckPredicate, 9, // Predicate_load
/*425485*/          OPC_CheckType, MVT::f64,
/*425487*/          OPC_MoveParent,
/*425488*/          OPC_CheckType, MVT::v2f64,
/*425490*/          OPC_MoveParent,
/*425491*/          OPC_CheckType, MVT::v4f32,
/*425493*/          OPC_MoveParent,
/*425494*/          OPC_CheckType, MVT::v2i64,
/*425496*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*425498*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*425501*/          OPC_EmitMergeInputChains1_0,
/*425502*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2QQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86cvtp2Int:{ *:[v2i64] } (bitconvert:{ *:[v4f32] } (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                    // Dst: (VCVTPS2QQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*425513*/        /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VZEXT_LOAD),// ->425547
/*425516*/          OPC_RecordMemRef,
/*425517*/          OPC_RecordNode, // #0 = 'X86vzld' chained node
/*425518*/          OPC_CheckFoldableChainNode,
/*425519*/          OPC_RecordChild1, // #1 = $src
/*425520*/          OPC_CheckPredicate, 49, // Predicate_X86vzload64
/*425522*/          OPC_CheckType, MVT::v2f64,
/*425524*/          OPC_MoveParent,
/*425525*/          OPC_CheckType, MVT::v4f32,
/*425527*/          OPC_MoveParent,
/*425528*/          OPC_CheckType, MVT::v2i64,
/*425530*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*425532*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*425535*/          OPC_EmitMergeInputChains1_0,
/*425536*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2QQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86cvtp2Int:{ *:[v2i64] } (bitconvert:{ *:[v4f32] } (X86vzld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>)) - Complexity = 28
                    // Dst: (VCVTPS2QQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*425547*/        0, // EndSwitchOpcode
/*425548*/      /*SwitchOpcode*/ 126|128,2/*382*/, TARGET_VAL(ISD::LOAD),// ->425934
/*425552*/        OPC_RecordMemRef,
/*425553*/        OPC_RecordNode, // #0 = 'ld' chained node
/*425554*/        OPC_RecordChild1, // #1 = $src
/*425555*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*425557*/        OPC_CheckPredicate, 9, // Predicate_load
/*425559*/        OPC_SwitchType /*6 cases */, 88, MVT::v4f32,// ->425650
/*425562*/          OPC_Scope, 20, /*->425584*/ // 3 children in Scope
/*425564*/            OPC_MoveParent,
/*425565*/            OPC_CheckType, MVT::v4i32,
/*425567*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*425569*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*425572*/            OPC_EmitMergeInputChains1_0,
/*425573*/            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>>) - Complexity = 25
                      // Dst: (VCVTPS2DQrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*425584*/          /*Scope*/ 22, /*->425607*/
/*425585*/            OPC_CheckPredicate, 39, // Predicate_memop
/*425587*/            OPC_MoveParent,
/*425588*/            OPC_CheckType, MVT::v4i32,
/*425590*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*425592*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*425595*/            OPC_EmitMergeInputChains1_0,
/*425596*/            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_memop>>) - Complexity = 25
                      // Dst: (CVTPS2DQrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*425607*/          /*Scope*/ 41, /*->425649*/
/*425608*/            OPC_MoveParent,
/*425609*/            OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->425629
/*425612*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*425614*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*425617*/              OPC_EmitMergeInputChains1_0,
/*425618*/              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>>) - Complexity = 25
                        // Dst: (VCVTPS2DQZ128rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*425629*/            /*SwitchType*/ 17, MVT::v4i64,// ->425648
/*425631*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*425633*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*425636*/              OPC_EmitMergeInputChains1_0,
/*425637*/              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>>) - Complexity = 25
                        // Dst: (VCVTPS2QQZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*425648*/            0, // EndSwitchType
/*425649*/          0, /*End of Scope*/
/*425650*/        /*SwitchType*/ 62, MVT::v8f32,// ->425714
/*425652*/          OPC_MoveParent,
/*425653*/          OPC_SwitchType /*2 cases */, 38, MVT::v8i32,// ->425694
/*425656*/            OPC_Scope, 17, /*->425675*/ // 2 children in Scope
/*425658*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*425660*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*425663*/              OPC_EmitMergeInputChains1_0,
/*425664*/              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>>) - Complexity = 25
                        // Dst: (VCVTPS2DQYrm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*425675*/            /*Scope*/ 17, /*->425693*/
/*425676*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*425678*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*425681*/              OPC_EmitMergeInputChains1_0,
/*425682*/              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>>) - Complexity = 25
                        // Dst: (VCVTPS2DQZ256rm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*425693*/            0, /*End of Scope*/
/*425694*/          /*SwitchType*/ 17, MVT::v8i64,// ->425713
/*425696*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*425698*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*425701*/            OPC_EmitMergeInputChains1_0,
/*425702*/            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>>) - Complexity = 25
                      // Dst: (VCVTPS2QQZrm:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*425713*/          0, // EndSwitchType
/*425714*/        /*SwitchType*/ 88, MVT::v2f64,// ->425804
/*425716*/          OPC_Scope, 20, /*->425738*/ // 3 children in Scope
/*425718*/            OPC_MoveParent,
/*425719*/            OPC_CheckType, MVT::v4i32,
/*425721*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*425723*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*425726*/            OPC_EmitMergeInputChains1_0,
/*425727*/            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>>) - Complexity = 25
                      // Dst: (VCVTPD2DQrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*425738*/          /*Scope*/ 22, /*->425761*/
/*425739*/            OPC_CheckPredicate, 39, // Predicate_memop
/*425741*/            OPC_MoveParent,
/*425742*/            OPC_CheckType, MVT::v4i32,
/*425744*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*425746*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*425749*/            OPC_EmitMergeInputChains1_0,
/*425750*/            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_memop>>) - Complexity = 25
                      // Dst: (CVTPD2DQrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*425761*/          /*Scope*/ 41, /*->425803*/
/*425762*/            OPC_MoveParent,
/*425763*/            OPC_SwitchType /*2 cases */, 17, MVT::v2i64,// ->425783
/*425766*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*425768*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*425771*/              OPC_EmitMergeInputChains1_0,
/*425772*/              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>>) - Complexity = 25
                        // Dst: (VCVTPD2QQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*425783*/            /*SwitchType*/ 17, MVT::v4i32,// ->425802
/*425785*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*425787*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*425790*/              OPC_EmitMergeInputChains1_0,
/*425791*/              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>>) - Complexity = 25
                        // Dst: (VCVTPD2DQZ128rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*425802*/            0, // EndSwitchType
/*425803*/          0, /*End of Scope*/
/*425804*/        /*SwitchType*/ 62, MVT::v4f64,// ->425868
/*425806*/          OPC_MoveParent,
/*425807*/          OPC_SwitchType /*2 cases */, 38, MVT::v4i32,// ->425848
/*425810*/            OPC_Scope, 17, /*->425829*/ // 2 children in Scope
/*425812*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*425814*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*425817*/              OPC_EmitMergeInputChains1_0,
/*425818*/              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>>) - Complexity = 25
                        // Dst: (VCVTPD2DQYrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*425829*/            /*Scope*/ 17, /*->425847*/
/*425830*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*425832*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*425835*/              OPC_EmitMergeInputChains1_0,
/*425836*/              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>>) - Complexity = 25
                        // Dst: (VCVTPD2DQZ256rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*425847*/            0, /*End of Scope*/
/*425848*/          /*SwitchType*/ 17, MVT::v4i64,// ->425867
/*425850*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*425852*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*425855*/            OPC_EmitMergeInputChains1_0,
/*425856*/            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>>) - Complexity = 25
                      // Dst: (VCVTPD2QQZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*425867*/          0, // EndSwitchType
/*425868*/        /*SwitchType*/ 20, MVT::v16f32,// ->425890
/*425870*/          OPC_MoveParent,
/*425871*/          OPC_CheckType, MVT::v16i32,
/*425873*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*425875*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*425878*/          OPC_EmitMergeInputChains1_0,
/*425879*/          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>>) - Complexity = 25
                    // Dst: (VCVTPS2DQZrm:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)
/*425890*/        /*SwitchType*/ 41, MVT::v8f64,// ->425933
/*425892*/          OPC_MoveParent,
/*425893*/          OPC_SwitchType /*2 cases */, 17, MVT::v8i32,// ->425913
/*425896*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*425898*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*425901*/            OPC_EmitMergeInputChains1_0,
/*425902*/            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>>) - Complexity = 25
                      // Dst: (VCVTPD2DQZrm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*425913*/          /*SwitchType*/ 17, MVT::v8i64,// ->425932
/*425915*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*425917*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*425920*/            OPC_EmitMergeInputChains1_0,
/*425921*/            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>>) - Complexity = 25
                      // Dst: (VCVTPD2QQZrm:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*425932*/          0, // EndSwitchType
/*425933*/        0, // EndSwitchType
/*425934*/      /*SwitchOpcode*/ 28|128,2/*284*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->426222
/*425938*/        OPC_RecordMemRef,
/*425939*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*425940*/        OPC_RecordChild1, // #1 = $src
/*425941*/        OPC_Scope, 70, /*->426013*/ // 4 children in Scope
/*425943*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*425945*/          OPC_SwitchType /*3 cases */, 20, MVT::v16f32,// ->425968
/*425948*/            OPC_MoveParent,
/*425949*/            OPC_CheckType, MVT::v16i32,
/*425951*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*425953*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*425956*/            OPC_EmitMergeInputChains1_0,
/*425957*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2DQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86cvtp2Int:{ *:[v16i32] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VCVTPS2DQZrmb:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)
/*425968*/          /*SwitchType*/ 20, MVT::v4f32,// ->425990
/*425970*/            OPC_MoveParent,
/*425971*/            OPC_CheckType, MVT::v4i32,
/*425973*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*425975*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*425978*/            OPC_EmitMergeInputChains1_0,
/*425979*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2DQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86cvtp2Int:{ *:[v4i32] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VCVTPS2DQZ128rmb:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*425990*/          /*SwitchType*/ 20, MVT::v8f32,// ->426012
/*425992*/            OPC_MoveParent,
/*425993*/            OPC_CheckType, MVT::v8i32,
/*425995*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*425997*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*426000*/            OPC_EmitMergeInputChains1_0,
/*426001*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2DQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86cvtp2Int:{ *:[v8i32] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VCVTPS2DQZ256rmb:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*426012*/          0, // EndSwitchType
/*426013*/        /*Scope*/ 112, /*->426126*/
/*426014*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*426016*/          OPC_SwitchType /*3 cases */, 41, MVT::v8f64,// ->426060
/*426019*/            OPC_MoveParent,
/*426020*/            OPC_SwitchType /*2 cases */, 17, MVT::v8i32,// ->426040
/*426023*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*426025*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*426028*/              OPC_EmitMergeInputChains1_0,
/*426029*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2DQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvtp2Int:{ *:[v8i32] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VCVTPD2DQZrmb:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*426040*/            /*SwitchType*/ 17, MVT::v8i64,// ->426059
/*426042*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*426044*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*426047*/              OPC_EmitMergeInputChains1_0,
/*426048*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2QQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvtp2Int:{ *:[v8i64] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VCVTPD2QQZrmb:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*426059*/            0, // EndSwitchType
/*426060*/          /*SwitchType*/ 41, MVT::v4f64,// ->426103
/*426062*/            OPC_MoveParent,
/*426063*/            OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->426083
/*426066*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*426068*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*426071*/              OPC_EmitMergeInputChains1_0,
/*426072*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2DQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvtp2Int:{ *:[v4i32] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VCVTPD2DQZ256rmb:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*426083*/            /*SwitchType*/ 17, MVT::v4i64,// ->426102
/*426085*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*426087*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*426090*/              OPC_EmitMergeInputChains1_0,
/*426091*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2QQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvtp2Int:{ *:[v4i64] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VCVTPD2QQZ256rmb:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*426102*/            0, // EndSwitchType
/*426103*/          /*SwitchType*/ 20, MVT::v2f64,// ->426125
/*426105*/            OPC_MoveParent,
/*426106*/            OPC_CheckType, MVT::v2i64,
/*426108*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*426110*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*426113*/            OPC_EmitMergeInputChains1_0,
/*426114*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2QQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86cvtp2Int:{ *:[v2i64] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VCVTPD2QQZ128rmb:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*426125*/          0, // EndSwitchType
/*426126*/        /*Scope*/ 69, /*->426196*/
/*426127*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*426129*/          OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->426152
/*426132*/            OPC_MoveParent,
/*426133*/            OPC_CheckType, MVT::v8i64,
/*426135*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*426137*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*426140*/            OPC_EmitMergeInputChains1_0,
/*426141*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2QQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86cvtp2Int:{ *:[v8i64] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VCVTPS2QQZrmb:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*426152*/          /*SwitchType*/ 41, MVT::v4f32,// ->426195
/*426154*/            OPC_MoveParent,
/*426155*/            OPC_SwitchType /*2 cases */, 17, MVT::v2i64,// ->426175
/*426158*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*426160*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*426163*/              OPC_EmitMergeInputChains1_0,
/*426164*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2QQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvtp2Int:{ *:[v2i64] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VCVTPS2QQZ128rmb:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*426175*/            /*SwitchType*/ 17, MVT::v4i64,// ->426194
/*426177*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*426179*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*426182*/              OPC_EmitMergeInputChains1_0,
/*426183*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2QQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvtp2Int:{ *:[v4i64] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VCVTPS2QQZ256rmb:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*426194*/            0, // EndSwitchType
/*426195*/          0, // EndSwitchType
/*426196*/        /*Scope*/ 24, /*->426221*/
/*426197*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*426199*/          OPC_CheckType, MVT::v2f64,
/*426201*/          OPC_MoveParent,
/*426202*/          OPC_CheckType, MVT::v4i32,
/*426204*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*426206*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*426209*/          OPC_EmitMergeInputChains1_0,
/*426210*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2DQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86cvtp2Int:{ *:[v4i32] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                    // Dst: (VCVTPD2DQZ128rmb:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*426221*/        0, /*End of Scope*/
/*426222*/      0, // EndSwitchOpcode
/*426223*/    /*Scope*/ 107|128,1/*235*/, /*->426460*/
/*426225*/      OPC_RecordChild0, // #0 = $src
/*426226*/      OPC_Scope, 60, /*->426288*/ // 6 children in Scope
/*426228*/        OPC_CheckChild0Type, MVT::v4f32,
/*426230*/        OPC_SwitchType /*3 cases */, 32, MVT::v4i32,// ->426265
/*426233*/          OPC_Scope, 9, /*->426244*/ // 3 children in Scope
/*426235*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*426237*/            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)
/*426244*/          /*Scope*/ 9, /*->426254*/
/*426245*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*426247*/            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)
/*426254*/          /*Scope*/ 9, /*->426264*/
/*426255*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*426257*/            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)
/*426264*/          0, /*End of Scope*/
/*426265*/        /*SwitchType*/ 9, MVT::v2i64,// ->426276
/*426267*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*426269*/          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)
/*426276*/        /*SwitchType*/ 9, MVT::v4i64,// ->426287
/*426278*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*426280*/          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)
/*426287*/        0, // EndSwitchType
/*426288*/      /*Scope*/ 39, /*->426328*/
/*426289*/        OPC_CheckChild0Type, MVT::v8f32,
/*426291*/        OPC_SwitchType /*2 cases */, 22, MVT::v8i32,// ->426316
/*426294*/          OPC_Scope, 9, /*->426305*/ // 2 children in Scope
/*426296*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*426298*/            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)
/*426305*/          /*Scope*/ 9, /*->426315*/
/*426306*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*426308*/            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)
/*426315*/          0, /*End of Scope*/
/*426316*/        /*SwitchType*/ 9, MVT::v8i64,// ->426327
/*426318*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*426320*/          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)
/*426327*/        0, // EndSwitchType
/*426328*/      /*Scope*/ 49, /*->426378*/
/*426329*/        OPC_CheckChild0Type, MVT::v2f64,
/*426331*/        OPC_SwitchType /*2 cases */, 32, MVT::v4i32,// ->426366
/*426334*/          OPC_Scope, 9, /*->426345*/ // 3 children in Scope
/*426336*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*426338*/            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)
/*426345*/          /*Scope*/ 9, /*->426355*/
/*426346*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*426348*/            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)
/*426355*/          /*Scope*/ 9, /*->426365*/
/*426356*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*426358*/            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)
/*426365*/          0, /*End of Scope*/
/*426366*/        /*SwitchType*/ 9, MVT::v2i64,// ->426377
/*426368*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*426370*/          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)
/*426377*/        0, // EndSwitchType
/*426378*/      /*Scope*/ 39, /*->426418*/
/*426379*/        OPC_CheckChild0Type, MVT::v4f64,
/*426381*/        OPC_SwitchType /*2 cases */, 22, MVT::v4i32,// ->426406
/*426384*/          OPC_Scope, 9, /*->426395*/ // 2 children in Scope
/*426386*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*426388*/            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)
/*426395*/          /*Scope*/ 9, /*->426405*/
/*426396*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*426398*/            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)
/*426405*/          0, /*End of Scope*/
/*426406*/        /*SwitchType*/ 9, MVT::v4i64,// ->426417
/*426408*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*426410*/          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)
/*426417*/        0, // EndSwitchType
/*426418*/      /*Scope*/ 13, /*->426432*/
/*426419*/        OPC_CheckChild0Type, MVT::v16f32,
/*426421*/        OPC_CheckType, MVT::v16i32,
/*426423*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*426425*/        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)
/*426432*/      /*Scope*/ 26, /*->426459*/
/*426433*/        OPC_CheckChild0Type, MVT::v8f64,
/*426435*/        OPC_SwitchType /*2 cases */, 9, MVT::v8i32,// ->426447
/*426438*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*426440*/          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)
/*426447*/        /*SwitchType*/ 9, MVT::v8i64,// ->426458
/*426449*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*426451*/          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)
/*426458*/        0, // EndSwitchType
/*426459*/      0, /*End of Scope*/
/*426460*/    0, /*End of Scope*/
/*426461*/  /*SwitchOpcode*/ 25|128,6/*793*/, TARGET_VAL(X86ISD::CVTP2UI),// ->427258
/*426465*/    OPC_Scope, 112|128,4/*624*/, /*->427092*/ // 2 children in Scope
/*426468*/      OPC_MoveChild0,
/*426469*/      OPC_SwitchOpcode /*3 cases */, 80, TARGET_VAL(ISD::BITCAST),// ->426553
/*426473*/        OPC_MoveChild0,
/*426474*/        OPC_SwitchOpcode /*2 cases */, 40, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->426518
/*426478*/          OPC_MoveChild0,
/*426479*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*426482*/          OPC_RecordMemRef,
/*426483*/          OPC_RecordNode, // #0 = 'ld' chained node
/*426484*/          OPC_CheckFoldableChainNode,
/*426485*/          OPC_RecordChild1, // #1 = $src
/*426486*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*426488*/          OPC_CheckPredicate, 9, // Predicate_load
/*426490*/          OPC_CheckType, MVT::f64,
/*426492*/          OPC_MoveParent,
/*426493*/          OPC_CheckType, MVT::v2f64,
/*426495*/          OPC_MoveParent,
/*426496*/          OPC_CheckType, MVT::v4f32,
/*426498*/          OPC_MoveParent,
/*426499*/          OPC_CheckType, MVT::v2i64,
/*426501*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*426503*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*426506*/          OPC_EmitMergeInputChains1_0,
/*426507*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UQQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86cvtp2UInt:{ *:[v2i64] } (bitconvert:{ *:[v4f32] } (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                    // Dst: (VCVTPS2UQQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*426518*/        /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VZEXT_LOAD),// ->426552
/*426521*/          OPC_RecordMemRef,
/*426522*/          OPC_RecordNode, // #0 = 'X86vzld' chained node
/*426523*/          OPC_CheckFoldableChainNode,
/*426524*/          OPC_RecordChild1, // #1 = $src
/*426525*/          OPC_CheckPredicate, 49, // Predicate_X86vzload64
/*426527*/          OPC_CheckType, MVT::v2f64,
/*426529*/          OPC_MoveParent,
/*426530*/          OPC_CheckType, MVT::v4f32,
/*426532*/          OPC_MoveParent,
/*426533*/          OPC_CheckType, MVT::v2i64,
/*426535*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*426537*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*426540*/          OPC_EmitMergeInputChains1_0,
/*426541*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UQQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86cvtp2UInt:{ *:[v2i64] } (bitconvert:{ *:[v4f32] } (X86vzld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>)) - Complexity = 28
                    // Dst: (VCVTPS2UQQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*426552*/        0, // EndSwitchOpcode
/*426553*/      /*SwitchOpcode*/ 118|128,1/*246*/, TARGET_VAL(ISD::LOAD),// ->426803
/*426557*/        OPC_RecordMemRef,
/*426558*/        OPC_RecordNode, // #0 = 'ld' chained node
/*426559*/        OPC_RecordChild1, // #1 = $src
/*426560*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*426562*/        OPC_CheckPredicate, 9, // Predicate_load
/*426564*/        OPC_SwitchType /*6 cases */, 20, MVT::v16f32,// ->426587
/*426567*/          OPC_MoveParent,
/*426568*/          OPC_CheckType, MVT::v16i32,
/*426570*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*426572*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*426575*/          OPC_EmitMergeInputChains1_0,
/*426576*/          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>>) - Complexity = 25
                    // Dst: (VCVTPS2UDQZrm:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)
/*426587*/        /*SwitchType*/ 41, MVT::v4f32,// ->426630
/*426589*/          OPC_MoveParent,
/*426590*/          OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->426610
/*426593*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*426595*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*426598*/            OPC_EmitMergeInputChains1_0,
/*426599*/            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>>) - Complexity = 25
                      // Dst: (VCVTPS2UDQZ128rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*426610*/          /*SwitchType*/ 17, MVT::v4i64,// ->426629
/*426612*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*426614*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*426617*/            OPC_EmitMergeInputChains1_0,
/*426618*/            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>>) - Complexity = 25
                      // Dst: (VCVTPS2UQQZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*426629*/          0, // EndSwitchType
/*426630*/        /*SwitchType*/ 41, MVT::v8f32,// ->426673
/*426632*/          OPC_MoveParent,
/*426633*/          OPC_SwitchType /*2 cases */, 17, MVT::v8i32,// ->426653
/*426636*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*426638*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*426641*/            OPC_EmitMergeInputChains1_0,
/*426642*/            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>>) - Complexity = 25
                      // Dst: (VCVTPS2UDQZ256rm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*426653*/          /*SwitchType*/ 17, MVT::v8i64,// ->426672
/*426655*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*426657*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*426660*/            OPC_EmitMergeInputChains1_0,
/*426661*/            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>>) - Complexity = 25
                      // Dst: (VCVTPS2UQQZrm:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*426672*/          0, // EndSwitchType
/*426673*/        /*SwitchType*/ 41, MVT::v8f64,// ->426716
/*426675*/          OPC_MoveParent,
/*426676*/          OPC_SwitchType /*2 cases */, 17, MVT::v8i32,// ->426696
/*426679*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*426681*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*426684*/            OPC_EmitMergeInputChains1_0,
/*426685*/            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>>) - Complexity = 25
                      // Dst: (VCVTPD2UDQZrm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*426696*/          /*SwitchType*/ 17, MVT::v8i64,// ->426715
/*426698*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*426700*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*426703*/            OPC_EmitMergeInputChains1_0,
/*426704*/            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>>) - Complexity = 25
                      // Dst: (VCVTPD2UQQZrm:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*426715*/          0, // EndSwitchType
/*426716*/        /*SwitchType*/ 41, MVT::v4f64,// ->426759
/*426718*/          OPC_MoveParent,
/*426719*/          OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->426739
/*426722*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*426724*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*426727*/            OPC_EmitMergeInputChains1_0,
/*426728*/            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>>) - Complexity = 25
                      // Dst: (VCVTPD2UDQZ256rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*426739*/          /*SwitchType*/ 17, MVT::v4i64,// ->426758
/*426741*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*426743*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*426746*/            OPC_EmitMergeInputChains1_0,
/*426747*/            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>>) - Complexity = 25
                      // Dst: (VCVTPD2UQQZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*426758*/          0, // EndSwitchType
/*426759*/        /*SwitchType*/ 41, MVT::v2f64,// ->426802
/*426761*/          OPC_MoveParent,
/*426762*/          OPC_SwitchType /*2 cases */, 17, MVT::v2i64,// ->426782
/*426765*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*426767*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*426770*/            OPC_EmitMergeInputChains1_0,
/*426771*/            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>>) - Complexity = 25
                      // Dst: (VCVTPD2UQQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*426782*/          /*SwitchType*/ 17, MVT::v4i32,// ->426801
/*426784*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*426786*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*426789*/            OPC_EmitMergeInputChains1_0,
/*426790*/            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>>) - Complexity = 25
                      // Dst: (VCVTPD2UDQZ128rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*426801*/          0, // EndSwitchType
/*426802*/        0, // EndSwitchType
/*426803*/      /*SwitchOpcode*/ 28|128,2/*284*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->427091
/*426807*/        OPC_RecordMemRef,
/*426808*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*426809*/        OPC_RecordChild1, // #1 = $src
/*426810*/        OPC_Scope, 70, /*->426882*/ // 4 children in Scope
/*426812*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*426814*/          OPC_SwitchType /*3 cases */, 20, MVT::v16f32,// ->426837
/*426817*/            OPC_MoveParent,
/*426818*/            OPC_CheckType, MVT::v16i32,
/*426820*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*426822*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*426825*/            OPC_EmitMergeInputChains1_0,
/*426826*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UDQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86cvtp2UInt:{ *:[v16i32] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VCVTPS2UDQZrmb:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)
/*426837*/          /*SwitchType*/ 20, MVT::v4f32,// ->426859
/*426839*/            OPC_MoveParent,
/*426840*/            OPC_CheckType, MVT::v4i32,
/*426842*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*426844*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*426847*/            OPC_EmitMergeInputChains1_0,
/*426848*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UDQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86cvtp2UInt:{ *:[v4i32] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VCVTPS2UDQZ128rmb:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*426859*/          /*SwitchType*/ 20, MVT::v8f32,// ->426881
/*426861*/            OPC_MoveParent,
/*426862*/            OPC_CheckType, MVT::v8i32,
/*426864*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*426866*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*426869*/            OPC_EmitMergeInputChains1_0,
/*426870*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UDQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86cvtp2UInt:{ *:[v8i32] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VCVTPS2UDQZ256rmb:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*426881*/          0, // EndSwitchType
/*426882*/        /*Scope*/ 112, /*->426995*/
/*426883*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*426885*/          OPC_SwitchType /*3 cases */, 41, MVT::v8f64,// ->426929
/*426888*/            OPC_MoveParent,
/*426889*/            OPC_SwitchType /*2 cases */, 17, MVT::v8i32,// ->426909
/*426892*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*426894*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*426897*/              OPC_EmitMergeInputChains1_0,
/*426898*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UDQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvtp2UInt:{ *:[v8i32] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VCVTPD2UDQZrmb:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*426909*/            /*SwitchType*/ 17, MVT::v8i64,// ->426928
/*426911*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*426913*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*426916*/              OPC_EmitMergeInputChains1_0,
/*426917*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UQQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvtp2UInt:{ *:[v8i64] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VCVTPD2UQQZrmb:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*426928*/            0, // EndSwitchType
/*426929*/          /*SwitchType*/ 41, MVT::v4f64,// ->426972
/*426931*/            OPC_MoveParent,
/*426932*/            OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->426952
/*426935*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*426937*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*426940*/              OPC_EmitMergeInputChains1_0,
/*426941*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UDQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvtp2UInt:{ *:[v4i32] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VCVTPD2UDQZ256rmb:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*426952*/            /*SwitchType*/ 17, MVT::v4i64,// ->426971
/*426954*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*426956*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*426959*/              OPC_EmitMergeInputChains1_0,
/*426960*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UQQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvtp2UInt:{ *:[v4i64] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VCVTPD2UQQZ256rmb:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*426971*/            0, // EndSwitchType
/*426972*/          /*SwitchType*/ 20, MVT::v2f64,// ->426994
/*426974*/            OPC_MoveParent,
/*426975*/            OPC_CheckType, MVT::v2i64,
/*426977*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*426979*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*426982*/            OPC_EmitMergeInputChains1_0,
/*426983*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UQQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86cvtp2UInt:{ *:[v2i64] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VCVTPD2UQQZ128rmb:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*426994*/          0, // EndSwitchType
/*426995*/        /*Scope*/ 69, /*->427065*/
/*426996*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*426998*/          OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->427021
/*427001*/            OPC_MoveParent,
/*427002*/            OPC_CheckType, MVT::v8i64,
/*427004*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*427006*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*427009*/            OPC_EmitMergeInputChains1_0,
/*427010*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UQQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86cvtp2UInt:{ *:[v8i64] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VCVTPS2UQQZrmb:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*427021*/          /*SwitchType*/ 41, MVT::v4f32,// ->427064
/*427023*/            OPC_MoveParent,
/*427024*/            OPC_SwitchType /*2 cases */, 17, MVT::v2i64,// ->427044
/*427027*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*427029*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*427032*/              OPC_EmitMergeInputChains1_0,
/*427033*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UQQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvtp2UInt:{ *:[v2i64] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VCVTPS2UQQZ128rmb:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*427044*/            /*SwitchType*/ 17, MVT::v4i64,// ->427063
/*427046*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*427048*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*427051*/              OPC_EmitMergeInputChains1_0,
/*427052*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UQQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvtp2UInt:{ *:[v4i64] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VCVTPS2UQQZ256rmb:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*427063*/            0, // EndSwitchType
/*427064*/          0, // EndSwitchType
/*427065*/        /*Scope*/ 24, /*->427090*/
/*427066*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*427068*/          OPC_CheckType, MVT::v2f64,
/*427070*/          OPC_MoveParent,
/*427071*/          OPC_CheckType, MVT::v4i32,
/*427073*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*427075*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*427078*/          OPC_EmitMergeInputChains1_0,
/*427079*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UDQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86cvtp2UInt:{ *:[v4i32] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                    // Dst: (VCVTPD2UDQZ128rmb:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*427090*/        0, /*End of Scope*/
/*427091*/      0, // EndSwitchOpcode
/*427092*/    /*Scope*/ 35|128,1/*163*/, /*->427257*/
/*427094*/      OPC_RecordChild0, // #0 = $src
/*427095*/      OPC_Scope, 13, /*->427110*/ // 6 children in Scope
/*427097*/        OPC_CheckChild0Type, MVT::v16f32,
/*427099*/        OPC_CheckType, MVT::v16i32,
/*427101*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*427103*/        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)
/*427110*/      /*Scope*/ 37, /*->427148*/
/*427111*/        OPC_CheckChild0Type, MVT::v4f32,
/*427113*/        OPC_SwitchType /*3 cases */, 9, MVT::v4i32,// ->427125
/*427116*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*427118*/          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)
/*427125*/        /*SwitchType*/ 9, MVT::v2i64,// ->427136
/*427127*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*427129*/          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)
/*427136*/        /*SwitchType*/ 9, MVT::v4i64,// ->427147
/*427138*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*427140*/          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)
/*427147*/        0, // EndSwitchType
/*427148*/      /*Scope*/ 26, /*->427175*/
/*427149*/        OPC_CheckChild0Type, MVT::v8f32,
/*427151*/        OPC_SwitchType /*2 cases */, 9, MVT::v8i32,// ->427163
/*427154*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*427156*/          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)
/*427163*/        /*SwitchType*/ 9, MVT::v8i64,// ->427174
/*427165*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*427167*/          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)
/*427174*/        0, // EndSwitchType
/*427175*/      /*Scope*/ 26, /*->427202*/
/*427176*/        OPC_CheckChild0Type, MVT::v8f64,
/*427178*/        OPC_SwitchType /*2 cases */, 9, MVT::v8i32,// ->427190
/*427181*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*427183*/          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)
/*427190*/        /*SwitchType*/ 9, MVT::v8i64,// ->427201
/*427192*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*427194*/          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)
/*427201*/        0, // EndSwitchType
/*427202*/      /*Scope*/ 26, /*->427229*/
/*427203*/        OPC_CheckChild0Type, MVT::v4f64,
/*427205*/        OPC_SwitchType /*2 cases */, 9, MVT::v4i32,// ->427217
/*427208*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*427210*/          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)
/*427217*/        /*SwitchType*/ 9, MVT::v4i64,// ->427228
/*427219*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*427221*/          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)
/*427228*/        0, // EndSwitchType
/*427229*/      /*Scope*/ 26, /*->427256*/
/*427230*/        OPC_CheckChild0Type, MVT::v2f64,
/*427232*/        OPC_SwitchType /*2 cases */, 9, MVT::v2i64,// ->427244
/*427235*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*427237*/          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)
/*427244*/        /*SwitchType*/ 9, MVT::v4i32,// ->427255
/*427246*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*427248*/          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)
/*427255*/        0, // EndSwitchType
/*427256*/      0, /*End of Scope*/
/*427257*/    0, /*End of Scope*/
/*427258*/  /*SwitchOpcode*/ 91|128,8/*1115*/, TARGET_VAL(X86ISD::STRICT_CVTTP2SI),// ->428377
/*427262*/    OPC_RecordNode, // #0 = 'X86strict_cvttp2si' chained node
/*427263*/    OPC_Scope, 87|128,6/*855*/, /*->428121*/ // 2 children in Scope
/*427266*/      OPC_MoveChild1,
/*427267*/      OPC_SwitchOpcode /*3 cases */, 86, TARGET_VAL(ISD::BITCAST),// ->427357
/*427271*/        OPC_MoveChild0,
/*427272*/        OPC_SwitchOpcode /*2 cases */, 43, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->427319
/*427276*/          OPC_MoveChild0,
/*427277*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*427280*/          OPC_RecordMemRef,
/*427281*/          OPC_RecordNode, // #1 = 'ld' chained node
/*427282*/          OPC_CheckFoldableChainNode,
/*427283*/          OPC_RecordChild1, // #2 = $src
/*427284*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*427286*/          OPC_CheckPredicate, 9, // Predicate_load
/*427288*/          OPC_CheckType, MVT::f64,
/*427290*/          OPC_MoveParent,
/*427291*/          OPC_CheckType, MVT::v2f64,
/*427293*/          OPC_MoveParent,
/*427294*/          OPC_CheckType, MVT::v4f32,
/*427296*/          OPC_MoveParent,
/*427297*/          OPC_CheckType, MVT::v2i64,
/*427299*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*427301*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*427304*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*427308*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (X86strict_cvttp2si:{ *:[v2i64] } (bitconvert:{ *:[v4f32] } (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                    // Dst: (VCVTTPS2QQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*427319*/        /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VZEXT_LOAD),// ->427356
/*427322*/          OPC_RecordMemRef,
/*427323*/          OPC_RecordNode, // #1 = 'X86vzld' chained node
/*427324*/          OPC_CheckFoldableChainNode,
/*427325*/          OPC_RecordChild1, // #2 = $src
/*427326*/          OPC_CheckPredicate, 49, // Predicate_X86vzload64
/*427328*/          OPC_CheckType, MVT::v2f64,
/*427330*/          OPC_MoveParent,
/*427331*/          OPC_CheckType, MVT::v4f32,
/*427333*/          OPC_MoveParent,
/*427334*/          OPC_CheckType, MVT::v2i64,
/*427336*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*427338*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*427341*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*427345*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (X86strict_cvttp2si:{ *:[v2i64] } (bitconvert:{ *:[v4f32] } (X86vzld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>)) - Complexity = 28
                    // Dst: (VCVTTPS2QQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*427356*/        0, // EndSwitchOpcode
/*427357*/      /*SwitchOpcode*/ 50|128,3/*434*/, TARGET_VAL(ISD::LOAD),// ->427795
/*427361*/        OPC_RecordMemRef,
/*427362*/        OPC_RecordNode, // #1 = 'ld' chained node
/*427363*/        OPC_CheckFoldableChainNode,
/*427364*/        OPC_RecordChild1, // #2 = $src
/*427365*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*427367*/        OPC_CheckPredicate, 9, // Predicate_load
/*427369*/        OPC_SwitchType /*6 cases */, 100, MVT::v4f32,// ->427472
/*427372*/          OPC_Scope, 23, /*->427397*/ // 3 children in Scope
/*427374*/            OPC_MoveParent,
/*427375*/            OPC_CheckType, MVT::v4i32,
/*427377*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*427379*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*427382*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*427386*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (X86strict_cvttp2si:{ *:[v4i32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VCVTTPS2DQrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*427397*/          /*Scope*/ 25, /*->427423*/
/*427398*/            OPC_CheckPredicate, 39, // Predicate_memop
/*427400*/            OPC_MoveParent,
/*427401*/            OPC_CheckType, MVT::v4i32,
/*427403*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*427405*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*427408*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*427412*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CVTTPS2DQrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (X86strict_cvttp2si:{ *:[v4i32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                      // Dst: (CVTTPS2DQrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*427423*/          /*Scope*/ 47, /*->427471*/
/*427424*/            OPC_MoveParent,
/*427425*/            OPC_SwitchType /*2 cases */, 20, MVT::v4i32,// ->427448
/*427428*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*427430*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*427433*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*427437*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                        // Src: (X86strict_cvttp2si:{ *:[v4i32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VCVTTPS2DQZ128rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*427448*/            /*SwitchType*/ 20, MVT::v4i64,// ->427470
/*427450*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*427452*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*427455*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*427459*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                        // Src: (X86strict_cvttp2si:{ *:[v4i64] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VCVTTPS2QQZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*427470*/            0, // EndSwitchType
/*427471*/          0, /*End of Scope*/
/*427472*/        /*SwitchType*/ 71, MVT::v8f32,// ->427545
/*427474*/          OPC_MoveParent,
/*427475*/          OPC_SwitchType /*2 cases */, 44, MVT::v8i32,// ->427522
/*427478*/            OPC_Scope, 20, /*->427500*/ // 2 children in Scope
/*427480*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*427482*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*427485*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*427489*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                        // Src: (X86strict_cvttp2si:{ *:[v8i32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VCVTTPS2DQYrm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*427500*/            /*Scope*/ 20, /*->427521*/
/*427501*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*427503*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*427506*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*427510*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                        // Src: (X86strict_cvttp2si:{ *:[v8i32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VCVTTPS2DQZ256rm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*427521*/            0, /*End of Scope*/
/*427522*/          /*SwitchType*/ 20, MVT::v8i64,// ->427544
/*427524*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*427526*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*427529*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*427533*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (X86strict_cvttp2si:{ *:[v8i64] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VCVTTPS2QQZrm:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*427544*/          0, // EndSwitchType
/*427545*/        /*SwitchType*/ 100, MVT::v2f64,// ->427647
/*427547*/          OPC_Scope, 23, /*->427572*/ // 3 children in Scope
/*427549*/            OPC_MoveParent,
/*427550*/            OPC_CheckType, MVT::v4i32,
/*427552*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*427554*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*427557*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*427561*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (X86strict_cvttp2si:{ *:[v4i32] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VCVTTPD2DQrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*427572*/          /*Scope*/ 25, /*->427598*/
/*427573*/            OPC_CheckPredicate, 39, // Predicate_memop
/*427575*/            OPC_MoveParent,
/*427576*/            OPC_CheckType, MVT::v4i32,
/*427578*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*427580*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*427583*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*427587*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CVTTPD2DQrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (X86strict_cvttp2si:{ *:[v4i32] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                      // Dst: (CVTTPD2DQrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*427598*/          /*Scope*/ 47, /*->427646*/
/*427599*/            OPC_MoveParent,
/*427600*/            OPC_SwitchType /*2 cases */, 20, MVT::v2i64,// ->427623
/*427603*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*427605*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*427608*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*427612*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                        // Src: (X86strict_cvttp2si:{ *:[v2i64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VCVTTPD2QQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*427623*/            /*SwitchType*/ 20, MVT::v4i32,// ->427645
/*427625*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*427627*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*427630*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*427634*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                        // Src: (X86strict_cvttp2si:{ *:[v4i32] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VCVTTPD2DQZ128rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*427645*/            0, // EndSwitchType
/*427646*/          0, /*End of Scope*/
/*427647*/        /*SwitchType*/ 71, MVT::v4f64,// ->427720
/*427649*/          OPC_MoveParent,
/*427650*/          OPC_SwitchType /*2 cases */, 44, MVT::v4i32,// ->427697
/*427653*/            OPC_Scope, 20, /*->427675*/ // 2 children in Scope
/*427655*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*427657*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*427660*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*427664*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                        // Src: (X86strict_cvttp2si:{ *:[v4i32] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VCVTTPD2DQYrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*427675*/            /*Scope*/ 20, /*->427696*/
/*427676*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*427678*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*427681*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*427685*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                        // Src: (X86strict_cvttp2si:{ *:[v4i32] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VCVTTPD2DQZ256rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*427696*/            0, /*End of Scope*/
/*427697*/          /*SwitchType*/ 20, MVT::v4i64,// ->427719
/*427699*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*427701*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*427704*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*427708*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (X86strict_cvttp2si:{ *:[v4i64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VCVTTPD2QQZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*427719*/          0, // EndSwitchType
/*427720*/        /*SwitchType*/ 23, MVT::v16f32,// ->427745
/*427722*/          OPC_MoveParent,
/*427723*/          OPC_CheckType, MVT::v16i32,
/*427725*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*427727*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*427730*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*427734*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (X86strict_cvttp2si:{ *:[v16i32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VCVTTPS2DQZrm:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)
/*427745*/        /*SwitchType*/ 47, MVT::v8f64,// ->427794
/*427747*/          OPC_MoveParent,
/*427748*/          OPC_SwitchType /*2 cases */, 20, MVT::v8i32,// ->427771
/*427751*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*427753*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*427756*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*427760*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (X86strict_cvttp2si:{ *:[v8i32] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VCVTTPD2DQZrm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*427771*/          /*SwitchType*/ 20, MVT::v8i64,// ->427793
/*427773*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*427775*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*427778*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*427782*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (X86strict_cvttp2si:{ *:[v8i64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VCVTTPD2QQZrm:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*427793*/          0, // EndSwitchType
/*427794*/        0, // EndSwitchType
/*427795*/      /*SwitchOpcode*/ 65|128,2/*321*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->428120
/*427799*/        OPC_RecordMemRef,
/*427800*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*427801*/        OPC_CheckFoldableChainNode,
/*427802*/        OPC_RecordChild1, // #2 = $src
/*427803*/        OPC_Scope, 79, /*->427884*/ // 4 children in Scope
/*427805*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*427807*/          OPC_SwitchType /*3 cases */, 23, MVT::v16f32,// ->427833
/*427810*/            OPC_MoveParent,
/*427811*/            OPC_CheckType, MVT::v16i32,
/*427813*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*427815*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*427818*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*427822*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (X86strict_cvttp2si:{ *:[v16i32] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VCVTTPS2DQZrmb:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)
/*427833*/          /*SwitchType*/ 23, MVT::v4f32,// ->427858
/*427835*/            OPC_MoveParent,
/*427836*/            OPC_CheckType, MVT::v4i32,
/*427838*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*427840*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*427843*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*427847*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (X86strict_cvttp2si:{ *:[v4i32] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VCVTTPS2DQZ128rmb:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*427858*/          /*SwitchType*/ 23, MVT::v8f32,// ->427883
/*427860*/            OPC_MoveParent,
/*427861*/            OPC_CheckType, MVT::v8i32,
/*427863*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*427865*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*427868*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*427872*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (X86strict_cvttp2si:{ *:[v8i32] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VCVTTPS2DQZ256rmb:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*427883*/          0, // EndSwitchType
/*427884*/        /*Scope*/ 127, /*->428012*/
/*427885*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*427887*/          OPC_SwitchType /*3 cases */, 47, MVT::v8f64,// ->427937
/*427890*/            OPC_MoveParent,
/*427891*/            OPC_SwitchType /*2 cases */, 20, MVT::v8i32,// ->427914
/*427894*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*427896*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*427899*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*427903*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                        // Src: (X86strict_cvttp2si:{ *:[v8i32] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VCVTTPD2DQZrmb:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*427914*/            /*SwitchType*/ 20, MVT::v8i64,// ->427936
/*427916*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*427918*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*427921*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*427925*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                        // Src: (X86strict_cvttp2si:{ *:[v8i64] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VCVTTPD2QQZrmb:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*427936*/            0, // EndSwitchType
/*427937*/          /*SwitchType*/ 47, MVT::v4f64,// ->427986
/*427939*/            OPC_MoveParent,
/*427940*/            OPC_SwitchType /*2 cases */, 20, MVT::v4i32,// ->427963
/*427943*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*427945*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*427948*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*427952*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                        // Src: (X86strict_cvttp2si:{ *:[v4i32] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VCVTTPD2DQZ256rmb:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*427963*/            /*SwitchType*/ 20, MVT::v4i64,// ->427985
/*427965*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*427967*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*427970*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*427974*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                        // Src: (X86strict_cvttp2si:{ *:[v4i64] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VCVTTPD2QQZ256rmb:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*427985*/            0, // EndSwitchType
/*427986*/          /*SwitchType*/ 23, MVT::v2f64,// ->428011
/*427988*/            OPC_MoveParent,
/*427989*/            OPC_CheckType, MVT::v2i64,
/*427991*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*427993*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*427996*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*428000*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (X86strict_cvttp2si:{ *:[v2i64] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VCVTTPD2QQZ128rmb:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*428011*/          0, // EndSwitchType
/*428012*/        /*Scope*/ 78, /*->428091*/
/*428013*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*428015*/          OPC_SwitchType /*2 cases */, 23, MVT::v8f32,// ->428041
/*428018*/            OPC_MoveParent,
/*428019*/            OPC_CheckType, MVT::v8i64,
/*428021*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*428023*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*428026*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*428030*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (X86strict_cvttp2si:{ *:[v8i64] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VCVTTPS2QQZrmb:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*428041*/          /*SwitchType*/ 47, MVT::v4f32,// ->428090
/*428043*/            OPC_MoveParent,
/*428044*/            OPC_SwitchType /*2 cases */, 20, MVT::v2i64,// ->428067
/*428047*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*428049*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*428052*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*428056*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                        // Src: (X86strict_cvttp2si:{ *:[v2i64] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VCVTTPS2QQZ128rmb:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*428067*/            /*SwitchType*/ 20, MVT::v4i64,// ->428089
/*428069*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*428071*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*428074*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*428078*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                        // Src: (X86strict_cvttp2si:{ *:[v4i64] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VCVTTPS2QQZ256rmb:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*428089*/            0, // EndSwitchType
/*428090*/          0, // EndSwitchType
/*428091*/        /*Scope*/ 27, /*->428119*/
/*428092*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*428094*/          OPC_CheckType, MVT::v2f64,
/*428096*/          OPC_MoveParent,
/*428097*/          OPC_CheckType, MVT::v4i32,
/*428099*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*428101*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*428104*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*428108*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (X86strict_cvttp2si:{ *:[v4i32] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                    // Dst: (VCVTTPD2DQZ128rmb:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*428119*/        0, /*End of Scope*/
/*428120*/      0, // EndSwitchOpcode
/*428121*/    /*Scope*/ 125|128,1/*253*/, /*->428376*/
/*428123*/      OPC_RecordChild1, // #1 = $src
/*428124*/      OPC_Scope, 65, /*->428191*/ // 6 children in Scope
/*428126*/        OPC_CheckChild1Type, MVT::v4f32,
/*428128*/        OPC_SwitchType /*3 cases */, 35, MVT::v4i32,// ->428166
/*428131*/          OPC_Scope, 10, /*->428143*/ // 3 children in Scope
/*428133*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*428135*/            OPC_EmitMergeInputChains1_0,
/*428136*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQrr), 0|OPFL_Chain,
                          MVT::v4i32, 1/*#Ops*/, 1, 
                      // Src: (X86strict_cvttp2si:{ *:[v4i32] } VR128:{ *:[v4f32] }:$src) - Complexity = 3
                      // Dst: (VCVTTPS2DQrr:{ *:[v4i32] } VR128:{ *:[v4f32] }:$src)
/*428143*/          /*Scope*/ 10, /*->428154*/
/*428144*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*428146*/            OPC_EmitMergeInputChains1_0,
/*428147*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CVTTPS2DQrr), 0|OPFL_Chain,
                          MVT::v4i32, 1/*#Ops*/, 1, 
                      // Src: (X86strict_cvttp2si:{ *:[v4i32] } VR128:{ *:[v4f32] }:$src) - Complexity = 3
                      // Dst: (CVTTPS2DQrr:{ *:[v4i32] } VR128:{ *:[v4f32] }:$src)
/*428154*/          /*Scope*/ 10, /*->428165*/
/*428155*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*428157*/            OPC_EmitMergeInputChains1_0,
/*428158*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZ128rr), 0|OPFL_Chain,
                          MVT::v4i32, 1/*#Ops*/, 1, 
                      // Src: (X86strict_cvttp2si:{ *:[v4i32] } VR128X:{ *:[v4f32] }:$src) - Complexity = 3
                      // Dst: (VCVTTPS2DQZ128rr:{ *:[v4i32] } VR128X:{ *:[v4f32] }:$src)
/*428165*/          0, /*End of Scope*/
/*428166*/        /*SwitchType*/ 10, MVT::v2i64,// ->428178
/*428168*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*428170*/          OPC_EmitMergeInputChains1_0,
/*428171*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZ128rr), 0|OPFL_Chain,
                        MVT::v2i64, 1/*#Ops*/, 1, 
                    // Src: (X86strict_cvttp2si:{ *:[v2i64] } VR128X:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (VCVTTPS2QQZ128rr:{ *:[v2i64] } VR128X:{ *:[v4f32] }:$src)
/*428178*/        /*SwitchType*/ 10, MVT::v4i64,// ->428190
/*428180*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*428182*/          OPC_EmitMergeInputChains1_0,
/*428183*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZ256rr), 0|OPFL_Chain,
                        MVT::v4i64, 1/*#Ops*/, 1, 
                    // Src: (X86strict_cvttp2si:{ *:[v4i64] } VR128X:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (VCVTTPS2QQZ256rr:{ *:[v4i64] } VR128X:{ *:[v4f32] }:$src)
/*428190*/        0, // EndSwitchType
/*428191*/      /*Scope*/ 42, /*->428234*/
/*428192*/        OPC_CheckChild1Type, MVT::v8f32,
/*428194*/        OPC_SwitchType /*2 cases */, 24, MVT::v8i32,// ->428221
/*428197*/          OPC_Scope, 10, /*->428209*/ // 2 children in Scope
/*428199*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*428201*/            OPC_EmitMergeInputChains1_0,
/*428202*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQYrr), 0|OPFL_Chain,
                          MVT::v8i32, 1/*#Ops*/, 1, 
                      // Src: (X86strict_cvttp2si:{ *:[v8i32] } VR256:{ *:[v8f32] }:$src) - Complexity = 3
                      // Dst: (VCVTTPS2DQYrr:{ *:[v8i32] } VR256:{ *:[v8f32] }:$src)
/*428209*/          /*Scope*/ 10, /*->428220*/
/*428210*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*428212*/            OPC_EmitMergeInputChains1_0,
/*428213*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZ256rr), 0|OPFL_Chain,
                          MVT::v8i32, 1/*#Ops*/, 1, 
                      // Src: (X86strict_cvttp2si:{ *:[v8i32] } VR256X:{ *:[v8f32] }:$src) - Complexity = 3
                      // Dst: (VCVTTPS2DQZ256rr:{ *:[v8i32] } VR256X:{ *:[v8f32] }:$src)
/*428220*/          0, /*End of Scope*/
/*428221*/        /*SwitchType*/ 10, MVT::v8i64,// ->428233
/*428223*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*428225*/          OPC_EmitMergeInputChains1_0,
/*428226*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZrr), 0|OPFL_Chain,
                        MVT::v8i64, 1/*#Ops*/, 1, 
                    // Src: (X86strict_cvttp2si:{ *:[v8i64] } VR256X:{ *:[v8f32] }:$src) - Complexity = 3
                    // Dst: (VCVTTPS2QQZrr:{ *:[v8i64] } VR256X:{ *:[v8f32] }:$src)
/*428233*/        0, // EndSwitchType
/*428234*/      /*Scope*/ 53, /*->428288*/
/*428235*/        OPC_CheckChild1Type, MVT::v2f64,
/*428237*/        OPC_SwitchType /*2 cases */, 35, MVT::v4i32,// ->428275
/*428240*/          OPC_Scope, 10, /*->428252*/ // 3 children in Scope
/*428242*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*428244*/            OPC_EmitMergeInputChains1_0,
/*428245*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQrr), 0|OPFL_Chain,
                          MVT::v4i32, 1/*#Ops*/, 1, 
                      // Src: (X86strict_cvttp2si:{ *:[v4i32] } VR128:{ *:[v2f64] }:$src) - Complexity = 3
                      // Dst: (VCVTTPD2DQrr:{ *:[v4i32] } VR128:{ *:[v2f64] }:$src)
/*428252*/          /*Scope*/ 10, /*->428263*/
/*428253*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*428255*/            OPC_EmitMergeInputChains1_0,
/*428256*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CVTTPD2DQrr), 0|OPFL_Chain,
                          MVT::v4i32, 1/*#Ops*/, 1, 
                      // Src: (X86strict_cvttp2si:{ *:[v4i32] } VR128:{ *:[v2f64] }:$src) - Complexity = 3
                      // Dst: (CVTTPD2DQrr:{ *:[v4i32] } VR128:{ *:[v2f64] }:$src)
/*428263*/          /*Scope*/ 10, /*->428274*/
/*428264*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*428266*/            OPC_EmitMergeInputChains1_0,
/*428267*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZ128rr), 0|OPFL_Chain,
                          MVT::v4i32, 1/*#Ops*/, 1, 
                      // Src: (X86strict_cvttp2si:{ *:[v4i32] } VR128X:{ *:[v2f64] }:$src) - Complexity = 3
                      // Dst: (VCVTTPD2DQZ128rr:{ *:[v4i32] } VR128X:{ *:[v2f64] }:$src)
/*428274*/          0, /*End of Scope*/
/*428275*/        /*SwitchType*/ 10, MVT::v2i64,// ->428287
/*428277*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*428279*/          OPC_EmitMergeInputChains1_0,
/*428280*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZ128rr), 0|OPFL_Chain,
                        MVT::v2i64, 1/*#Ops*/, 1, 
                    // Src: (X86strict_cvttp2si:{ *:[v2i64] } VR128X:{ *:[v2f64] }:$src) - Complexity = 3
                    // Dst: (VCVTTPD2QQZ128rr:{ *:[v2i64] } VR128X:{ *:[v2f64] }:$src)
/*428287*/        0, // EndSwitchType
/*428288*/      /*Scope*/ 42, /*->428331*/
/*428289*/        OPC_CheckChild1Type, MVT::v4f64,
/*428291*/        OPC_SwitchType /*2 cases */, 24, MVT::v4i32,// ->428318
/*428294*/          OPC_Scope, 10, /*->428306*/ // 2 children in Scope
/*428296*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*428298*/            OPC_EmitMergeInputChains1_0,
/*428299*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQYrr), 0|OPFL_Chain,
                          MVT::v4i32, 1/*#Ops*/, 1, 
                      // Src: (X86strict_cvttp2si:{ *:[v4i32] } VR256:{ *:[v4f64] }:$src) - Complexity = 3
                      // Dst: (VCVTTPD2DQYrr:{ *:[v4i32] } VR256:{ *:[v4f64] }:$src)
/*428306*/          /*Scope*/ 10, /*->428317*/
/*428307*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*428309*/            OPC_EmitMergeInputChains1_0,
/*428310*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZ256rr), 0|OPFL_Chain,
                          MVT::v4i32, 1/*#Ops*/, 1, 
                      // Src: (X86strict_cvttp2si:{ *:[v4i32] } VR256X:{ *:[v4f64] }:$src) - Complexity = 3
                      // Dst: (VCVTTPD2DQZ256rr:{ *:[v4i32] } VR256X:{ *:[v4f64] }:$src)
/*428317*/          0, /*End of Scope*/
/*428318*/        /*SwitchType*/ 10, MVT::v4i64,// ->428330
/*428320*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*428322*/          OPC_EmitMergeInputChains1_0,
/*428323*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZ256rr), 0|OPFL_Chain,
                        MVT::v4i64, 1/*#Ops*/, 1, 
                    // Src: (X86strict_cvttp2si:{ *:[v4i64] } VR256X:{ *:[v4f64] }:$src) - Complexity = 3
                    // Dst: (VCVTTPD2QQZ256rr:{ *:[v4i64] } VR256X:{ *:[v4f64] }:$src)
/*428330*/        0, // EndSwitchType
/*428331*/      /*Scope*/ 14, /*->428346*/
/*428332*/        OPC_CheckChild1Type, MVT::v16f32,
/*428334*/        OPC_CheckType, MVT::v16i32,
/*428336*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*428338*/        OPC_EmitMergeInputChains1_0,
/*428339*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZrr), 0|OPFL_Chain,
                      MVT::v16i32, 1/*#Ops*/, 1, 
                  // Src: (X86strict_cvttp2si:{ *:[v16i32] } VR512:{ *:[v16f32] }:$src) - Complexity = 3
                  // Dst: (VCVTTPS2DQZrr:{ *:[v16i32] } VR512:{ *:[v16f32] }:$src)
/*428346*/      /*Scope*/ 28, /*->428375*/
/*428347*/        OPC_CheckChild1Type, MVT::v8f64,
/*428349*/        OPC_SwitchType /*2 cases */, 10, MVT::v8i32,// ->428362
/*428352*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*428354*/          OPC_EmitMergeInputChains1_0,
/*428355*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZrr), 0|OPFL_Chain,
                        MVT::v8i32, 1/*#Ops*/, 1, 
                    // Src: (X86strict_cvttp2si:{ *:[v8i32] } VR512:{ *:[v8f64] }:$src) - Complexity = 3
                    // Dst: (VCVTTPD2DQZrr:{ *:[v8i32] } VR512:{ *:[v8f64] }:$src)
/*428362*/        /*SwitchType*/ 10, MVT::v8i64,// ->428374
/*428364*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*428366*/          OPC_EmitMergeInputChains1_0,
/*428367*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZrr), 0|OPFL_Chain,
                        MVT::v8i64, 1/*#Ops*/, 1, 
                    // Src: (X86strict_cvttp2si:{ *:[v8i64] } VR512:{ *:[v8f64] }:$src) - Complexity = 3
                    // Dst: (VCVTTPD2QQZrr:{ *:[v8i64] } VR512:{ *:[v8f64] }:$src)
/*428374*/        0, // EndSwitchType
/*428375*/      0, /*End of Scope*/
/*428376*/    0, /*End of Scope*/
/*428377*/  /*SwitchOpcode*/ 105|128,7/*1001*/, TARGET_VAL(X86ISD::CVTTP2SI),// ->429382
/*428381*/    OPC_Scope, 120|128,5/*760*/, /*->429144*/ // 2 children in Scope
/*428384*/      OPC_MoveChild0,
/*428385*/      OPC_SwitchOpcode /*3 cases */, 80, TARGET_VAL(ISD::BITCAST),// ->428469
/*428389*/        OPC_MoveChild0,
/*428390*/        OPC_SwitchOpcode /*2 cases */, 40, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->428434
/*428394*/          OPC_MoveChild0,
/*428395*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*428398*/          OPC_RecordMemRef,
/*428399*/          OPC_RecordNode, // #0 = 'ld' chained node
/*428400*/          OPC_CheckFoldableChainNode,
/*428401*/          OPC_RecordChild1, // #1 = $src
/*428402*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*428404*/          OPC_CheckPredicate, 9, // Predicate_load
/*428406*/          OPC_CheckType, MVT::f64,
/*428408*/          OPC_MoveParent,
/*428409*/          OPC_CheckType, MVT::v2f64,
/*428411*/          OPC_MoveParent,
/*428412*/          OPC_CheckType, MVT::v4f32,
/*428414*/          OPC_MoveParent,
/*428415*/          OPC_CheckType, MVT::v2i64,
/*428417*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*428419*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*428422*/          OPC_EmitMergeInputChains1_0,
/*428423*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86cvttp2si:{ *:[v2i64] } (bitconvert:{ *:[v4f32] } (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                    // Dst: (VCVTTPS2QQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*428434*/        /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VZEXT_LOAD),// ->428468
/*428437*/          OPC_RecordMemRef,
/*428438*/          OPC_RecordNode, // #0 = 'X86vzld' chained node
/*428439*/          OPC_CheckFoldableChainNode,
/*428440*/          OPC_RecordChild1, // #1 = $src
/*428441*/          OPC_CheckPredicate, 49, // Predicate_X86vzload64
/*428443*/          OPC_CheckType, MVT::v2f64,
/*428445*/          OPC_MoveParent,
/*428446*/          OPC_CheckType, MVT::v4f32,
/*428448*/          OPC_MoveParent,
/*428449*/          OPC_CheckType, MVT::v2i64,
/*428451*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*428453*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*428456*/          OPC_EmitMergeInputChains1_0,
/*428457*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86cvttp2si:{ *:[v2i64] } (bitconvert:{ *:[v4f32] } (X86vzld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>)) - Complexity = 28
                    // Dst: (VCVTTPS2QQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*428468*/        0, // EndSwitchOpcode
/*428469*/      /*SwitchOpcode*/ 126|128,2/*382*/, TARGET_VAL(ISD::LOAD),// ->428855
/*428473*/        OPC_RecordMemRef,
/*428474*/        OPC_RecordNode, // #0 = 'ld' chained node
/*428475*/        OPC_RecordChild1, // #1 = $src
/*428476*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*428478*/        OPC_CheckPredicate, 9, // Predicate_load
/*428480*/        OPC_SwitchType /*6 cases */, 88, MVT::v4f32,// ->428571
/*428483*/          OPC_Scope, 20, /*->428505*/ // 3 children in Scope
/*428485*/            OPC_MoveParent,
/*428486*/            OPC_CheckType, MVT::v4i32,
/*428488*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*428490*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*428493*/            OPC_EmitMergeInputChains1_0,
/*428494*/            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>>) - Complexity = 25
                      // Dst: (VCVTTPS2DQrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*428505*/          /*Scope*/ 22, /*->428528*/
/*428506*/            OPC_CheckPredicate, 39, // Predicate_memop
/*428508*/            OPC_MoveParent,
/*428509*/            OPC_CheckType, MVT::v4i32,
/*428511*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*428513*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*428516*/            OPC_EmitMergeInputChains1_0,
/*428517*/            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_memop>>) - Complexity = 25
                      // Dst: (CVTTPS2DQrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*428528*/          /*Scope*/ 41, /*->428570*/
/*428529*/            OPC_MoveParent,
/*428530*/            OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->428550
/*428533*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*428535*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*428538*/              OPC_EmitMergeInputChains1_0,
/*428539*/              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>>) - Complexity = 25
                        // Dst: (VCVTTPS2DQZ128rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*428550*/            /*SwitchType*/ 17, MVT::v4i64,// ->428569
/*428552*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*428554*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*428557*/              OPC_EmitMergeInputChains1_0,
/*428558*/              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>>) - Complexity = 25
                        // Dst: (VCVTTPS2QQZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*428569*/            0, // EndSwitchType
/*428570*/          0, /*End of Scope*/
/*428571*/        /*SwitchType*/ 62, MVT::v8f32,// ->428635
/*428573*/          OPC_MoveParent,
/*428574*/          OPC_SwitchType /*2 cases */, 38, MVT::v8i32,// ->428615
/*428577*/            OPC_Scope, 17, /*->428596*/ // 2 children in Scope
/*428579*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*428581*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*428584*/              OPC_EmitMergeInputChains1_0,
/*428585*/              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>>) - Complexity = 25
                        // Dst: (VCVTTPS2DQYrm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*428596*/            /*Scope*/ 17, /*->428614*/
/*428597*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*428599*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*428602*/              OPC_EmitMergeInputChains1_0,
/*428603*/              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>>) - Complexity = 25
                        // Dst: (VCVTTPS2DQZ256rm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*428614*/            0, /*End of Scope*/
/*428615*/          /*SwitchType*/ 17, MVT::v8i64,// ->428634
/*428617*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*428619*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*428622*/            OPC_EmitMergeInputChains1_0,
/*428623*/            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>>) - Complexity = 25
                      // Dst: (VCVTTPS2QQZrm:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*428634*/          0, // EndSwitchType
/*428635*/        /*SwitchType*/ 88, MVT::v2f64,// ->428725
/*428637*/          OPC_Scope, 20, /*->428659*/ // 3 children in Scope
/*428639*/            OPC_MoveParent,
/*428640*/            OPC_CheckType, MVT::v4i32,
/*428642*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*428644*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*428647*/            OPC_EmitMergeInputChains1_0,
/*428648*/            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>>) - Complexity = 25
                      // Dst: (VCVTTPD2DQrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*428659*/          /*Scope*/ 22, /*->428682*/
/*428660*/            OPC_CheckPredicate, 39, // Predicate_memop
/*428662*/            OPC_MoveParent,
/*428663*/            OPC_CheckType, MVT::v4i32,
/*428665*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*428667*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*428670*/            OPC_EmitMergeInputChains1_0,
/*428671*/            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_memop>>) - Complexity = 25
                      // Dst: (CVTTPD2DQrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*428682*/          /*Scope*/ 41, /*->428724*/
/*428683*/            OPC_MoveParent,
/*428684*/            OPC_SwitchType /*2 cases */, 17, MVT::v2i64,// ->428704
/*428687*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*428689*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*428692*/              OPC_EmitMergeInputChains1_0,
/*428693*/              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>>) - Complexity = 25
                        // Dst: (VCVTTPD2QQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*428704*/            /*SwitchType*/ 17, MVT::v4i32,// ->428723
/*428706*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*428708*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*428711*/              OPC_EmitMergeInputChains1_0,
/*428712*/              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>>) - Complexity = 25
                        // Dst: (VCVTTPD2DQZ128rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*428723*/            0, // EndSwitchType
/*428724*/          0, /*End of Scope*/
/*428725*/        /*SwitchType*/ 62, MVT::v4f64,// ->428789
/*428727*/          OPC_MoveParent,
/*428728*/          OPC_SwitchType /*2 cases */, 38, MVT::v4i32,// ->428769
/*428731*/            OPC_Scope, 17, /*->428750*/ // 2 children in Scope
/*428733*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*428735*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*428738*/              OPC_EmitMergeInputChains1_0,
/*428739*/              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>>) - Complexity = 25
                        // Dst: (VCVTTPD2DQYrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*428750*/            /*Scope*/ 17, /*->428768*/
/*428751*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*428753*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*428756*/              OPC_EmitMergeInputChains1_0,
/*428757*/              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>>) - Complexity = 25
                        // Dst: (VCVTTPD2DQZ256rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*428768*/            0, /*End of Scope*/
/*428769*/          /*SwitchType*/ 17, MVT::v4i64,// ->428788
/*428771*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*428773*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*428776*/            OPC_EmitMergeInputChains1_0,
/*428777*/            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>>) - Complexity = 25
                      // Dst: (VCVTTPD2QQZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*428788*/          0, // EndSwitchType
/*428789*/        /*SwitchType*/ 20, MVT::v16f32,// ->428811
/*428791*/          OPC_MoveParent,
/*428792*/          OPC_CheckType, MVT::v16i32,
/*428794*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*428796*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*428799*/          OPC_EmitMergeInputChains1_0,
/*428800*/          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>>) - Complexity = 25
                    // Dst: (VCVTTPS2DQZrm:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)
/*428811*/        /*SwitchType*/ 41, MVT::v8f64,// ->428854
/*428813*/          OPC_MoveParent,
/*428814*/          OPC_SwitchType /*2 cases */, 17, MVT::v8i32,// ->428834
/*428817*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*428819*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*428822*/            OPC_EmitMergeInputChains1_0,
/*428823*/            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>>) - Complexity = 25
                      // Dst: (VCVTTPD2DQZrm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*428834*/          /*SwitchType*/ 17, MVT::v8i64,// ->428853
/*428836*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*428838*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*428841*/            OPC_EmitMergeInputChains1_0,
/*428842*/            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>>) - Complexity = 25
                      // Dst: (VCVTTPD2QQZrm:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*428853*/          0, // EndSwitchType
/*428854*/        0, // EndSwitchType
/*428855*/      /*SwitchOpcode*/ 28|128,2/*284*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->429143
/*428859*/        OPC_RecordMemRef,
/*428860*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*428861*/        OPC_RecordChild1, // #1 = $src
/*428862*/        OPC_Scope, 70, /*->428934*/ // 4 children in Scope
/*428864*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*428866*/          OPC_SwitchType /*3 cases */, 20, MVT::v16f32,// ->428889
/*428869*/            OPC_MoveParent,
/*428870*/            OPC_CheckType, MVT::v16i32,
/*428872*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*428874*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*428877*/            OPC_EmitMergeInputChains1_0,
/*428878*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86cvttp2si:{ *:[v16i32] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VCVTTPS2DQZrmb:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)
/*428889*/          /*SwitchType*/ 20, MVT::v4f32,// ->428911
/*428891*/            OPC_MoveParent,
/*428892*/            OPC_CheckType, MVT::v4i32,
/*428894*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*428896*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*428899*/            OPC_EmitMergeInputChains1_0,
/*428900*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86cvttp2si:{ *:[v4i32] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VCVTTPS2DQZ128rmb:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*428911*/          /*SwitchType*/ 20, MVT::v8f32,// ->428933
/*428913*/            OPC_MoveParent,
/*428914*/            OPC_CheckType, MVT::v8i32,
/*428916*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*428918*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*428921*/            OPC_EmitMergeInputChains1_0,
/*428922*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86cvttp2si:{ *:[v8i32] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VCVTTPS2DQZ256rmb:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*428933*/          0, // EndSwitchType
/*428934*/        /*Scope*/ 112, /*->429047*/
/*428935*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*428937*/          OPC_SwitchType /*3 cases */, 41, MVT::v8f64,// ->428981
/*428940*/            OPC_MoveParent,
/*428941*/            OPC_SwitchType /*2 cases */, 17, MVT::v8i32,// ->428961
/*428944*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*428946*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*428949*/              OPC_EmitMergeInputChains1_0,
/*428950*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvttp2si:{ *:[v8i32] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VCVTTPD2DQZrmb:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*428961*/            /*SwitchType*/ 17, MVT::v8i64,// ->428980
/*428963*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*428965*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*428968*/              OPC_EmitMergeInputChains1_0,
/*428969*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvttp2si:{ *:[v8i64] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VCVTTPD2QQZrmb:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*428980*/            0, // EndSwitchType
/*428981*/          /*SwitchType*/ 41, MVT::v4f64,// ->429024
/*428983*/            OPC_MoveParent,
/*428984*/            OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->429004
/*428987*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*428989*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*428992*/              OPC_EmitMergeInputChains1_0,
/*428993*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvttp2si:{ *:[v4i32] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VCVTTPD2DQZ256rmb:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*429004*/            /*SwitchType*/ 17, MVT::v4i64,// ->429023
/*429006*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*429008*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*429011*/              OPC_EmitMergeInputChains1_0,
/*429012*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvttp2si:{ *:[v4i64] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VCVTTPD2QQZ256rmb:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*429023*/            0, // EndSwitchType
/*429024*/          /*SwitchType*/ 20, MVT::v2f64,// ->429046
/*429026*/            OPC_MoveParent,
/*429027*/            OPC_CheckType, MVT::v2i64,
/*429029*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*429031*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*429034*/            OPC_EmitMergeInputChains1_0,
/*429035*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86cvttp2si:{ *:[v2i64] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VCVTTPD2QQZ128rmb:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*429046*/          0, // EndSwitchType
/*429047*/        /*Scope*/ 69, /*->429117*/
/*429048*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*429050*/          OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->429073
/*429053*/            OPC_MoveParent,
/*429054*/            OPC_CheckType, MVT::v8i64,
/*429056*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*429058*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*429061*/            OPC_EmitMergeInputChains1_0,
/*429062*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86cvttp2si:{ *:[v8i64] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VCVTTPS2QQZrmb:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*429073*/          /*SwitchType*/ 41, MVT::v4f32,// ->429116
/*429075*/            OPC_MoveParent,
/*429076*/            OPC_SwitchType /*2 cases */, 17, MVT::v2i64,// ->429096
/*429079*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*429081*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*429084*/              OPC_EmitMergeInputChains1_0,
/*429085*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvttp2si:{ *:[v2i64] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VCVTTPS2QQZ128rmb:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*429096*/            /*SwitchType*/ 17, MVT::v4i64,// ->429115
/*429098*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*429100*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*429103*/              OPC_EmitMergeInputChains1_0,
/*429104*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvttp2si:{ *:[v4i64] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VCVTTPS2QQZ256rmb:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*429115*/            0, // EndSwitchType
/*429116*/          0, // EndSwitchType
/*429117*/        /*Scope*/ 24, /*->429142*/
/*429118*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*429120*/          OPC_CheckType, MVT::v2f64,
/*429122*/          OPC_MoveParent,
/*429123*/          OPC_CheckType, MVT::v4i32,
/*429125*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*429127*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*429130*/          OPC_EmitMergeInputChains1_0,
/*429131*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86cvttp2si:{ *:[v4i32] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                    // Dst: (VCVTTPD2DQZ128rmb:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*429142*/        0, /*End of Scope*/
/*429143*/      0, // EndSwitchOpcode
/*429144*/    /*Scope*/ 107|128,1/*235*/, /*->429381*/
/*429146*/      OPC_RecordChild0, // #0 = $src
/*429147*/      OPC_Scope, 60, /*->429209*/ // 6 children in Scope
/*429149*/        OPC_CheckChild0Type, MVT::v4f32,
/*429151*/        OPC_SwitchType /*3 cases */, 32, MVT::v4i32,// ->429186
/*429154*/          OPC_Scope, 9, /*->429165*/ // 3 children in Scope
/*429156*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*429158*/            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)
/*429165*/          /*Scope*/ 9, /*->429175*/
/*429166*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*429168*/            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)
/*429175*/          /*Scope*/ 9, /*->429185*/
/*429176*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*429178*/            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)
/*429185*/          0, /*End of Scope*/
/*429186*/        /*SwitchType*/ 9, MVT::v2i64,// ->429197
/*429188*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*429190*/          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)
/*429197*/        /*SwitchType*/ 9, MVT::v4i64,// ->429208
/*429199*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*429201*/          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)
/*429208*/        0, // EndSwitchType
/*429209*/      /*Scope*/ 39, /*->429249*/
/*429210*/        OPC_CheckChild0Type, MVT::v8f32,
/*429212*/        OPC_SwitchType /*2 cases */, 22, MVT::v8i32,// ->429237
/*429215*/          OPC_Scope, 9, /*->429226*/ // 2 children in Scope
/*429217*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*429219*/            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)
/*429226*/          /*Scope*/ 9, /*->429236*/
/*429227*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*429229*/            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)
/*429236*/          0, /*End of Scope*/
/*429237*/        /*SwitchType*/ 9, MVT::v8i64,// ->429248
/*429239*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*429241*/          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)
/*429248*/        0, // EndSwitchType
/*429249*/      /*Scope*/ 49, /*->429299*/
/*429250*/        OPC_CheckChild0Type, MVT::v2f64,
/*429252*/        OPC_SwitchType /*2 cases */, 32, MVT::v4i32,// ->429287
/*429255*/          OPC_Scope, 9, /*->429266*/ // 3 children in Scope
/*429257*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*429259*/            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)
/*429266*/          /*Scope*/ 9, /*->429276*/
/*429267*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*429269*/            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)
/*429276*/          /*Scope*/ 9, /*->429286*/
/*429277*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*429279*/            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)
/*429286*/          0, /*End of Scope*/
/*429287*/        /*SwitchType*/ 9, MVT::v2i64,// ->429298
/*429289*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*429291*/          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)
/*429298*/        0, // EndSwitchType
/*429299*/      /*Scope*/ 39, /*->429339*/
/*429300*/        OPC_CheckChild0Type, MVT::v4f64,
/*429302*/        OPC_SwitchType /*2 cases */, 22, MVT::v4i32,// ->429327
/*429305*/          OPC_Scope, 9, /*->429316*/ // 2 children in Scope
/*429307*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*429309*/            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)
/*429316*/          /*Scope*/ 9, /*->429326*/
/*429317*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*429319*/            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)
/*429326*/          0, /*End of Scope*/
/*429327*/        /*SwitchType*/ 9, MVT::v4i64,// ->429338
/*429329*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*429331*/          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)
/*429338*/        0, // EndSwitchType
/*429339*/      /*Scope*/ 13, /*->429353*/
/*429340*/        OPC_CheckChild0Type, MVT::v16f32,
/*429342*/        OPC_CheckType, MVT::v16i32,
/*429344*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*429346*/        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)
/*429353*/      /*Scope*/ 26, /*->429380*/
/*429354*/        OPC_CheckChild0Type, MVT::v8f64,
/*429356*/        OPC_SwitchType /*2 cases */, 9, MVT::v8i32,// ->429368
/*429359*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*429361*/          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)
/*429368*/        /*SwitchType*/ 9, MVT::v8i64,// ->429379
/*429370*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*429372*/          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)
/*429379*/        0, // EndSwitchType
/*429380*/      0, /*End of Scope*/
/*429381*/    0, /*End of Scope*/
/*429382*/  /*SwitchOpcode*/ 115|128,6/*883*/, TARGET_VAL(X86ISD::STRICT_CVTTP2UI),// ->430269
/*429386*/    OPC_RecordNode, // #0 = 'X86strict_cvttp2ui' chained node
/*429387*/    OPC_Scope, 61|128,5/*701*/, /*->430091*/ // 2 children in Scope
/*429390*/      OPC_MoveChild1,
/*429391*/      OPC_SwitchOpcode /*3 cases */, 86, TARGET_VAL(ISD::BITCAST),// ->429481
/*429395*/        OPC_MoveChild0,
/*429396*/        OPC_SwitchOpcode /*2 cases */, 43, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->429443
/*429400*/          OPC_MoveChild0,
/*429401*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*429404*/          OPC_RecordMemRef,
/*429405*/          OPC_RecordNode, // #1 = 'ld' chained node
/*429406*/          OPC_CheckFoldableChainNode,
/*429407*/          OPC_RecordChild1, // #2 = $src
/*429408*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*429410*/          OPC_CheckPredicate, 9, // Predicate_load
/*429412*/          OPC_CheckType, MVT::f64,
/*429414*/          OPC_MoveParent,
/*429415*/          OPC_CheckType, MVT::v2f64,
/*429417*/          OPC_MoveParent,
/*429418*/          OPC_CheckType, MVT::v4f32,
/*429420*/          OPC_MoveParent,
/*429421*/          OPC_CheckType, MVT::v2i64,
/*429423*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*429425*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*429428*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*429432*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (X86strict_cvttp2ui:{ *:[v2i64] } (bitconvert:{ *:[v4f32] } (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                    // Dst: (VCVTTPS2UQQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*429443*/        /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VZEXT_LOAD),// ->429480
/*429446*/          OPC_RecordMemRef,
/*429447*/          OPC_RecordNode, // #1 = 'X86vzld' chained node
/*429448*/          OPC_CheckFoldableChainNode,
/*429449*/          OPC_RecordChild1, // #2 = $src
/*429450*/          OPC_CheckPredicate, 49, // Predicate_X86vzload64
/*429452*/          OPC_CheckType, MVT::v2f64,
/*429454*/          OPC_MoveParent,
/*429455*/          OPC_CheckType, MVT::v4f32,
/*429457*/          OPC_MoveParent,
/*429458*/          OPC_CheckType, MVT::v2i64,
/*429460*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*429462*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*429465*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*429469*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (X86strict_cvttp2ui:{ *:[v2i64] } (bitconvert:{ *:[v4f32] } (X86vzld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>)) - Complexity = 28
                    // Dst: (VCVTTPS2UQQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*429480*/        0, // EndSwitchOpcode
/*429481*/      /*SwitchOpcode*/ 24|128,2/*280*/, TARGET_VAL(ISD::LOAD),// ->429765
/*429485*/        OPC_RecordMemRef,
/*429486*/        OPC_RecordNode, // #1 = 'ld' chained node
/*429487*/        OPC_CheckFoldableChainNode,
/*429488*/        OPC_RecordChild1, // #2 = $src
/*429489*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*429491*/        OPC_CheckPredicate, 9, // Predicate_load
/*429493*/        OPC_SwitchType /*6 cases */, 23, MVT::v16f32,// ->429519
/*429496*/          OPC_MoveParent,
/*429497*/          OPC_CheckType, MVT::v16i32,
/*429499*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*429501*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*429504*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*429508*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (X86strict_cvttp2ui:{ *:[v16i32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VCVTTPS2UDQZrm:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)
/*429519*/        /*SwitchType*/ 47, MVT::v4f32,// ->429568
/*429521*/          OPC_MoveParent,
/*429522*/          OPC_SwitchType /*2 cases */, 20, MVT::v4i32,// ->429545
/*429525*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*429527*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*429530*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*429534*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (X86strict_cvttp2ui:{ *:[v4i32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VCVTTPS2UDQZ128rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*429545*/          /*SwitchType*/ 20, MVT::v4i64,// ->429567
/*429547*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*429549*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*429552*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*429556*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (X86strict_cvttp2ui:{ *:[v4i64] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VCVTTPS2UQQZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*429567*/          0, // EndSwitchType
/*429568*/        /*SwitchType*/ 47, MVT::v8f32,// ->429617
/*429570*/          OPC_MoveParent,
/*429571*/          OPC_SwitchType /*2 cases */, 20, MVT::v8i32,// ->429594
/*429574*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*429576*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*429579*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*429583*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (X86strict_cvttp2ui:{ *:[v8i32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VCVTTPS2UDQZ256rm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*429594*/          /*SwitchType*/ 20, MVT::v8i64,// ->429616
/*429596*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*429598*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*429601*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*429605*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (X86strict_cvttp2ui:{ *:[v8i64] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VCVTTPS2UQQZrm:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*429616*/          0, // EndSwitchType
/*429617*/        /*SwitchType*/ 47, MVT::v8f64,// ->429666
/*429619*/          OPC_MoveParent,
/*429620*/          OPC_SwitchType /*2 cases */, 20, MVT::v8i32,// ->429643
/*429623*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*429625*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*429628*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*429632*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (X86strict_cvttp2ui:{ *:[v8i32] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VCVTTPD2UDQZrm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*429643*/          /*SwitchType*/ 20, MVT::v8i64,// ->429665
/*429645*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*429647*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*429650*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*429654*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (X86strict_cvttp2ui:{ *:[v8i64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VCVTTPD2UQQZrm:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*429665*/          0, // EndSwitchType
/*429666*/        /*SwitchType*/ 47, MVT::v4f64,// ->429715
/*429668*/          OPC_MoveParent,
/*429669*/          OPC_SwitchType /*2 cases */, 20, MVT::v4i32,// ->429692
/*429672*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*429674*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*429677*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*429681*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (X86strict_cvttp2ui:{ *:[v4i32] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VCVTTPD2UDQZ256rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*429692*/          /*SwitchType*/ 20, MVT::v4i64,// ->429714
/*429694*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*429696*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*429699*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*429703*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (X86strict_cvttp2ui:{ *:[v4i64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VCVTTPD2UQQZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*429714*/          0, // EndSwitchType
/*429715*/        /*SwitchType*/ 47, MVT::v2f64,// ->429764
/*429717*/          OPC_MoveParent,
/*429718*/          OPC_SwitchType /*2 cases */, 20, MVT::v2i64,// ->429741
/*429721*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*429723*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*429726*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*429730*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (X86strict_cvttp2ui:{ *:[v2i64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VCVTTPD2UQQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*429741*/          /*SwitchType*/ 20, MVT::v4i32,// ->429763
/*429743*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*429745*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*429748*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*429752*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (X86strict_cvttp2ui:{ *:[v4i32] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VCVTTPD2UDQZ128rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*429763*/          0, // EndSwitchType
/*429764*/        0, // EndSwitchType
/*429765*/      /*SwitchOpcode*/ 65|128,2/*321*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->430090
/*429769*/        OPC_RecordMemRef,
/*429770*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*429771*/        OPC_CheckFoldableChainNode,
/*429772*/        OPC_RecordChild1, // #2 = $src
/*429773*/        OPC_Scope, 79, /*->429854*/ // 4 children in Scope
/*429775*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*429777*/          OPC_SwitchType /*3 cases */, 23, MVT::v16f32,// ->429803
/*429780*/            OPC_MoveParent,
/*429781*/            OPC_CheckType, MVT::v16i32,
/*429783*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*429785*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*429788*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*429792*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (X86strict_cvttp2ui:{ *:[v16i32] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VCVTTPS2UDQZrmb:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)
/*429803*/          /*SwitchType*/ 23, MVT::v4f32,// ->429828
/*429805*/            OPC_MoveParent,
/*429806*/            OPC_CheckType, MVT::v4i32,
/*429808*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*429810*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*429813*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*429817*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (X86strict_cvttp2ui:{ *:[v4i32] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VCVTTPS2UDQZ128rmb:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*429828*/          /*SwitchType*/ 23, MVT::v8f32,// ->429853
/*429830*/            OPC_MoveParent,
/*429831*/            OPC_CheckType, MVT::v8i32,
/*429833*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*429835*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*429838*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*429842*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (X86strict_cvttp2ui:{ *:[v8i32] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VCVTTPS2UDQZ256rmb:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*429853*/          0, // EndSwitchType
/*429854*/        /*Scope*/ 127, /*->429982*/
/*429855*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*429857*/          OPC_SwitchType /*3 cases */, 47, MVT::v8f64,// ->429907
/*429860*/            OPC_MoveParent,
/*429861*/            OPC_SwitchType /*2 cases */, 20, MVT::v8i32,// ->429884
/*429864*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*429866*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*429869*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*429873*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                        // Src: (X86strict_cvttp2ui:{ *:[v8i32] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VCVTTPD2UDQZrmb:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*429884*/            /*SwitchType*/ 20, MVT::v8i64,// ->429906
/*429886*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*429888*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*429891*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*429895*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                        // Src: (X86strict_cvttp2ui:{ *:[v8i64] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VCVTTPD2UQQZrmb:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*429906*/            0, // EndSwitchType
/*429907*/          /*SwitchType*/ 47, MVT::v4f64,// ->429956
/*429909*/            OPC_MoveParent,
/*429910*/            OPC_SwitchType /*2 cases */, 20, MVT::v4i32,// ->429933
/*429913*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*429915*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*429918*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*429922*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                        // Src: (X86strict_cvttp2ui:{ *:[v4i32] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VCVTTPD2UDQZ256rmb:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*429933*/            /*SwitchType*/ 20, MVT::v4i64,// ->429955
/*429935*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*429937*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*429940*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*429944*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                        // Src: (X86strict_cvttp2ui:{ *:[v4i64] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VCVTTPD2UQQZ256rmb:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*429955*/            0, // EndSwitchType
/*429956*/          /*SwitchType*/ 23, MVT::v2f64,// ->429981
/*429958*/            OPC_MoveParent,
/*429959*/            OPC_CheckType, MVT::v2i64,
/*429961*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*429963*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*429966*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*429970*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (X86strict_cvttp2ui:{ *:[v2i64] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VCVTTPD2UQQZ128rmb:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*429981*/          0, // EndSwitchType
/*429982*/        /*Scope*/ 78, /*->430061*/
/*429983*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*429985*/          OPC_SwitchType /*2 cases */, 23, MVT::v8f32,// ->430011
/*429988*/            OPC_MoveParent,
/*429989*/            OPC_CheckType, MVT::v8i64,
/*429991*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*429993*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*429996*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*430000*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (X86strict_cvttp2ui:{ *:[v8i64] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VCVTTPS2UQQZrmb:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*430011*/          /*SwitchType*/ 47, MVT::v4f32,// ->430060
/*430013*/            OPC_MoveParent,
/*430014*/            OPC_SwitchType /*2 cases */, 20, MVT::v2i64,// ->430037
/*430017*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*430019*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*430022*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*430026*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                        // Src: (X86strict_cvttp2ui:{ *:[v2i64] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VCVTTPS2UQQZ128rmb:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*430037*/            /*SwitchType*/ 20, MVT::v4i64,// ->430059
/*430039*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*430041*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*430044*/              OPC_EmitMergeInputChains, 2, 0, 1, 
/*430048*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                        // Src: (X86strict_cvttp2ui:{ *:[v4i64] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VCVTTPS2UQQZ256rmb:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*430059*/            0, // EndSwitchType
/*430060*/          0, // EndSwitchType
/*430061*/        /*Scope*/ 27, /*->430089*/
/*430062*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*430064*/          OPC_CheckType, MVT::v2f64,
/*430066*/          OPC_MoveParent,
/*430067*/          OPC_CheckType, MVT::v4i32,
/*430069*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*430071*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*430074*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*430078*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (X86strict_cvttp2ui:{ *:[v4i32] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                    // Dst: (VCVTTPD2UDQZ128rmb:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*430089*/        0, /*End of Scope*/
/*430090*/      0, // EndSwitchOpcode
/*430091*/    /*Scope*/ 47|128,1/*175*/, /*->430268*/
/*430093*/      OPC_RecordChild1, // #1 = $src
/*430094*/      OPC_Scope, 14, /*->430110*/ // 6 children in Scope
/*430096*/        OPC_CheckChild1Type, MVT::v16f32,
/*430098*/        OPC_CheckType, MVT::v16i32,
/*430100*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*430102*/        OPC_EmitMergeInputChains1_0,
/*430103*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZrr), 0|OPFL_Chain,
                      MVT::v16i32, 1/*#Ops*/, 1, 
                  // Src: (X86strict_cvttp2ui:{ *:[v16i32] } VR512:{ *:[v16f32] }:$src) - Complexity = 3
                  // Dst: (VCVTTPS2UDQZrr:{ *:[v16i32] } VR512:{ *:[v16f32] }:$src)
/*430110*/      /*Scope*/ 40, /*->430151*/
/*430111*/        OPC_CheckChild1Type, MVT::v4f32,
/*430113*/        OPC_SwitchType /*3 cases */, 10, MVT::v4i32,// ->430126
/*430116*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*430118*/          OPC_EmitMergeInputChains1_0,
/*430119*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZ128rr), 0|OPFL_Chain,
                        MVT::v4i32, 1/*#Ops*/, 1, 
                    // Src: (X86strict_cvttp2ui:{ *:[v4i32] } VR128X:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (VCVTTPS2UDQZ128rr:{ *:[v4i32] } VR128X:{ *:[v4f32] }:$src)
/*430126*/        /*SwitchType*/ 10, MVT::v2i64,// ->430138
/*430128*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*430130*/          OPC_EmitMergeInputChains1_0,
/*430131*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZ128rr), 0|OPFL_Chain,
                        MVT::v2i64, 1/*#Ops*/, 1, 
                    // Src: (X86strict_cvttp2ui:{ *:[v2i64] } VR128X:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (VCVTTPS2UQQZ128rr:{ *:[v2i64] } VR128X:{ *:[v4f32] }:$src)
/*430138*/        /*SwitchType*/ 10, MVT::v4i64,// ->430150
/*430140*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*430142*/          OPC_EmitMergeInputChains1_0,
/*430143*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZ256rr), 0|OPFL_Chain,
                        MVT::v4i64, 1/*#Ops*/, 1, 
                    // Src: (X86strict_cvttp2ui:{ *:[v4i64] } VR128X:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (VCVTTPS2UQQZ256rr:{ *:[v4i64] } VR128X:{ *:[v4f32] }:$src)
/*430150*/        0, // EndSwitchType
/*430151*/      /*Scope*/ 28, /*->430180*/
/*430152*/        OPC_CheckChild1Type, MVT::v8f32,
/*430154*/        OPC_SwitchType /*2 cases */, 10, MVT::v8i32,// ->430167
/*430157*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*430159*/          OPC_EmitMergeInputChains1_0,
/*430160*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZ256rr), 0|OPFL_Chain,
                        MVT::v8i32, 1/*#Ops*/, 1, 
                    // Src: (X86strict_cvttp2ui:{ *:[v8i32] } VR256X:{ *:[v8f32] }:$src) - Complexity = 3
                    // Dst: (VCVTTPS2UDQZ256rr:{ *:[v8i32] } VR256X:{ *:[v8f32] }:$src)
/*430167*/        /*SwitchType*/ 10, MVT::v8i64,// ->430179
/*430169*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*430171*/          OPC_EmitMergeInputChains1_0,
/*430172*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZrr), 0|OPFL_Chain,
                        MVT::v8i64, 1/*#Ops*/, 1, 
                    // Src: (X86strict_cvttp2ui:{ *:[v8i64] } VR256X:{ *:[v8f32] }:$src) - Complexity = 3
                    // Dst: (VCVTTPS2UQQZrr:{ *:[v8i64] } VR256X:{ *:[v8f32] }:$src)
/*430179*/        0, // EndSwitchType
/*430180*/      /*Scope*/ 28, /*->430209*/
/*430181*/        OPC_CheckChild1Type, MVT::v8f64,
/*430183*/        OPC_SwitchType /*2 cases */, 10, MVT::v8i32,// ->430196
/*430186*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*430188*/          OPC_EmitMergeInputChains1_0,
/*430189*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZrr), 0|OPFL_Chain,
                        MVT::v8i32, 1/*#Ops*/, 1, 
                    // Src: (X86strict_cvttp2ui:{ *:[v8i32] } VR512:{ *:[v8f64] }:$src) - Complexity = 3
                    // Dst: (VCVTTPD2UDQZrr:{ *:[v8i32] } VR512:{ *:[v8f64] }:$src)
/*430196*/        /*SwitchType*/ 10, MVT::v8i64,// ->430208
/*430198*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*430200*/          OPC_EmitMergeInputChains1_0,
/*430201*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZrr), 0|OPFL_Chain,
                        MVT::v8i64, 1/*#Ops*/, 1, 
                    // Src: (X86strict_cvttp2ui:{ *:[v8i64] } VR512:{ *:[v8f64] }:$src) - Complexity = 3
                    // Dst: (VCVTTPD2UQQZrr:{ *:[v8i64] } VR512:{ *:[v8f64] }:$src)
/*430208*/        0, // EndSwitchType
/*430209*/      /*Scope*/ 28, /*->430238*/
/*430210*/        OPC_CheckChild1Type, MVT::v4f64,
/*430212*/        OPC_SwitchType /*2 cases */, 10, MVT::v4i32,// ->430225
/*430215*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*430217*/          OPC_EmitMergeInputChains1_0,
/*430218*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZ256rr), 0|OPFL_Chain,
                        MVT::v4i32, 1/*#Ops*/, 1, 
                    // Src: (X86strict_cvttp2ui:{ *:[v4i32] } VR256X:{ *:[v4f64] }:$src) - Complexity = 3
                    // Dst: (VCVTTPD2UDQZ256rr:{ *:[v4i32] } VR256X:{ *:[v4f64] }:$src)
/*430225*/        /*SwitchType*/ 10, MVT::v4i64,// ->430237
/*430227*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*430229*/          OPC_EmitMergeInputChains1_0,
/*430230*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZ256rr), 0|OPFL_Chain,
                        MVT::v4i64, 1/*#Ops*/, 1, 
                    // Src: (X86strict_cvttp2ui:{ *:[v4i64] } VR256X:{ *:[v4f64] }:$src) - Complexity = 3
                    // Dst: (VCVTTPD2UQQZ256rr:{ *:[v4i64] } VR256X:{ *:[v4f64] }:$src)
/*430237*/        0, // EndSwitchType
/*430238*/      /*Scope*/ 28, /*->430267*/
/*430239*/        OPC_CheckChild1Type, MVT::v2f64,
/*430241*/        OPC_SwitchType /*2 cases */, 10, MVT::v2i64,// ->430254
/*430244*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*430246*/          OPC_EmitMergeInputChains1_0,
/*430247*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZ128rr), 0|OPFL_Chain,
                        MVT::v2i64, 1/*#Ops*/, 1, 
                    // Src: (X86strict_cvttp2ui:{ *:[v2i64] } VR128X:{ *:[v2f64] }:$src) - Complexity = 3
                    // Dst: (VCVTTPD2UQQZ128rr:{ *:[v2i64] } VR128X:{ *:[v2f64] }:$src)
/*430254*/        /*SwitchType*/ 10, MVT::v4i32,// ->430266
/*430256*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*430258*/          OPC_EmitMergeInputChains1_0,
/*430259*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZ128rr), 0|OPFL_Chain,
                        MVT::v4i32, 1/*#Ops*/, 1, 
                    // Src: (X86strict_cvttp2ui:{ *:[v4i32] } VR128X:{ *:[v2f64] }:$src) - Complexity = 3
                    // Dst: (VCVTTPD2UDQZ128rr:{ *:[v4i32] } VR128X:{ *:[v2f64] }:$src)
/*430266*/        0, // EndSwitchType
/*430267*/      0, /*End of Scope*/
/*430268*/    0, /*End of Scope*/
/*430269*/  /*SwitchOpcode*/ 25|128,6/*793*/, TARGET_VAL(X86ISD::CVTTP2UI),// ->431066
/*430273*/    OPC_Scope, 112|128,4/*624*/, /*->430900*/ // 2 children in Scope
/*430276*/      OPC_MoveChild0,
/*430277*/      OPC_SwitchOpcode /*3 cases */, 80, TARGET_VAL(ISD::BITCAST),// ->430361
/*430281*/        OPC_MoveChild0,
/*430282*/        OPC_SwitchOpcode /*2 cases */, 40, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->430326
/*430286*/          OPC_MoveChild0,
/*430287*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*430290*/          OPC_RecordMemRef,
/*430291*/          OPC_RecordNode, // #0 = 'ld' chained node
/*430292*/          OPC_CheckFoldableChainNode,
/*430293*/          OPC_RecordChild1, // #1 = $src
/*430294*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*430296*/          OPC_CheckPredicate, 9, // Predicate_load
/*430298*/          OPC_CheckType, MVT::f64,
/*430300*/          OPC_MoveParent,
/*430301*/          OPC_CheckType, MVT::v2f64,
/*430303*/          OPC_MoveParent,
/*430304*/          OPC_CheckType, MVT::v4f32,
/*430306*/          OPC_MoveParent,
/*430307*/          OPC_CheckType, MVT::v2i64,
/*430309*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*430311*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*430314*/          OPC_EmitMergeInputChains1_0,
/*430315*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86cvttp2ui:{ *:[v2i64] } (bitconvert:{ *:[v4f32] } (scalar_to_vector:{ *:[v2f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 31
                    // Dst: (VCVTTPS2UQQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*430326*/        /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VZEXT_LOAD),// ->430360
/*430329*/          OPC_RecordMemRef,
/*430330*/          OPC_RecordNode, // #0 = 'X86vzld' chained node
/*430331*/          OPC_CheckFoldableChainNode,
/*430332*/          OPC_RecordChild1, // #1 = $src
/*430333*/          OPC_CheckPredicate, 49, // Predicate_X86vzload64
/*430335*/          OPC_CheckType, MVT::v2f64,
/*430337*/          OPC_MoveParent,
/*430338*/          OPC_CheckType, MVT::v4f32,
/*430340*/          OPC_MoveParent,
/*430341*/          OPC_CheckType, MVT::v2i64,
/*430343*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*430345*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*430348*/          OPC_EmitMergeInputChains1_0,
/*430349*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86cvttp2ui:{ *:[v2i64] } (bitconvert:{ *:[v4f32] } (X86vzld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>)) - Complexity = 28
                    // Dst: (VCVTTPS2UQQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*430360*/        0, // EndSwitchOpcode
/*430361*/      /*SwitchOpcode*/ 118|128,1/*246*/, TARGET_VAL(ISD::LOAD),// ->430611
/*430365*/        OPC_RecordMemRef,
/*430366*/        OPC_RecordNode, // #0 = 'ld' chained node
/*430367*/        OPC_RecordChild1, // #1 = $src
/*430368*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*430370*/        OPC_CheckPredicate, 9, // Predicate_load
/*430372*/        OPC_SwitchType /*6 cases */, 20, MVT::v16f32,// ->430395
/*430375*/          OPC_MoveParent,
/*430376*/          OPC_CheckType, MVT::v16i32,
/*430378*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*430380*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*430383*/          OPC_EmitMergeInputChains1_0,
/*430384*/          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>>) - Complexity = 25
                    // Dst: (VCVTTPS2UDQZrm:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)
/*430395*/        /*SwitchType*/ 41, MVT::v4f32,// ->430438
/*430397*/          OPC_MoveParent,
/*430398*/          OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->430418
/*430401*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*430403*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*430406*/            OPC_EmitMergeInputChains1_0,
/*430407*/            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>>) - Complexity = 25
                      // Dst: (VCVTTPS2UDQZ128rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*430418*/          /*SwitchType*/ 17, MVT::v4i64,// ->430437
/*430420*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*430422*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*430425*/            OPC_EmitMergeInputChains1_0,
/*430426*/            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>>) - Complexity = 25
                      // Dst: (VCVTTPS2UQQZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*430437*/          0, // EndSwitchType
/*430438*/        /*SwitchType*/ 41, MVT::v8f32,// ->430481
/*430440*/          OPC_MoveParent,
/*430441*/          OPC_SwitchType /*2 cases */, 17, MVT::v8i32,// ->430461
/*430444*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*430446*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*430449*/            OPC_EmitMergeInputChains1_0,
/*430450*/            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>>) - Complexity = 25
                      // Dst: (VCVTTPS2UDQZ256rm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*430461*/          /*SwitchType*/ 17, MVT::v8i64,// ->430480
/*430463*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*430465*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*430468*/            OPC_EmitMergeInputChains1_0,
/*430469*/            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>>) - Complexity = 25
                      // Dst: (VCVTTPS2UQQZrm:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*430480*/          0, // EndSwitchType
/*430481*/        /*SwitchType*/ 41, MVT::v8f64,// ->430524
/*430483*/          OPC_MoveParent,
/*430484*/          OPC_SwitchType /*2 cases */, 17, MVT::v8i32,// ->430504
/*430487*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*430489*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*430492*/            OPC_EmitMergeInputChains1_0,
/*430493*/            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>>) - Complexity = 25
                      // Dst: (VCVTTPD2UDQZrm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*430504*/          /*SwitchType*/ 17, MVT::v8i64,// ->430523
/*430506*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*430508*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*430511*/            OPC_EmitMergeInputChains1_0,
/*430512*/            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>>) - Complexity = 25
                      // Dst: (VCVTTPD2UQQZrm:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*430523*/          0, // EndSwitchType
/*430524*/        /*SwitchType*/ 41, MVT::v4f64,// ->430567
/*430526*/          OPC_MoveParent,
/*430527*/          OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->430547
/*430530*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*430532*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*430535*/            OPC_EmitMergeInputChains1_0,
/*430536*/            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>>) - Complexity = 25
                      // Dst: (VCVTTPD2UDQZ256rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*430547*/          /*SwitchType*/ 17, MVT::v4i64,// ->430566
/*430549*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*430551*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*430554*/            OPC_EmitMergeInputChains1_0,
/*430555*/            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>>) - Complexity = 25
                      // Dst: (VCVTTPD2UQQZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*430566*/          0, // EndSwitchType
/*430567*/        /*SwitchType*/ 41, MVT::v2f64,// ->430610
/*430569*/          OPC_MoveParent,
/*430570*/          OPC_SwitchType /*2 cases */, 17, MVT::v2i64,// ->430590
/*430573*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*430575*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*430578*/            OPC_EmitMergeInputChains1_0,
/*430579*/            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>>) - Complexity = 25
                      // Dst: (VCVTTPD2UQQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*430590*/          /*SwitchType*/ 17, MVT::v4i32,// ->430609
/*430592*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*430594*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*430597*/            OPC_EmitMergeInputChains1_0,
/*430598*/            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>>) - Complexity = 25
                      // Dst: (VCVTTPD2UDQZ128rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*430609*/          0, // EndSwitchType
/*430610*/        0, // EndSwitchType
/*430611*/      /*SwitchOpcode*/ 28|128,2/*284*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->430899
/*430615*/        OPC_RecordMemRef,
/*430616*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*430617*/        OPC_RecordChild1, // #1 = $src
/*430618*/        OPC_Scope, 70, /*->430690*/ // 4 children in Scope
/*430620*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*430622*/          OPC_SwitchType /*3 cases */, 20, MVT::v16f32,// ->430645
/*430625*/            OPC_MoveParent,
/*430626*/            OPC_CheckType, MVT::v16i32,
/*430628*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*430630*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*430633*/            OPC_EmitMergeInputChains1_0,
/*430634*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86cvttp2ui:{ *:[v16i32] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VCVTTPS2UDQZrmb:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)
/*430645*/          /*SwitchType*/ 20, MVT::v4f32,// ->430667
/*430647*/            OPC_MoveParent,
/*430648*/            OPC_CheckType, MVT::v4i32,
/*430650*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*430652*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*430655*/            OPC_EmitMergeInputChains1_0,
/*430656*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86cvttp2ui:{ *:[v4i32] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VCVTTPS2UDQZ128rmb:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*430667*/          /*SwitchType*/ 20, MVT::v8f32,// ->430689
/*430669*/            OPC_MoveParent,
/*430670*/            OPC_CheckType, MVT::v8i32,
/*430672*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*430674*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*430677*/            OPC_EmitMergeInputChains1_0,
/*430678*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86cvttp2ui:{ *:[v8i32] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VCVTTPS2UDQZ256rmb:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*430689*/          0, // EndSwitchType
/*430690*/        /*Scope*/ 112, /*->430803*/
/*430691*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*430693*/          OPC_SwitchType /*3 cases */, 41, MVT::v8f64,// ->430737
/*430696*/            OPC_MoveParent,
/*430697*/            OPC_SwitchType /*2 cases */, 17, MVT::v8i32,// ->430717
/*430700*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*430702*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*430705*/              OPC_EmitMergeInputChains1_0,
/*430706*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvttp2ui:{ *:[v8i32] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VCVTTPD2UDQZrmb:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*430717*/            /*SwitchType*/ 17, MVT::v8i64,// ->430736
/*430719*/              OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*430721*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*430724*/              OPC_EmitMergeInputChains1_0,
/*430725*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvttp2ui:{ *:[v8i64] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VCVTTPD2UQQZrmb:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*430736*/            0, // EndSwitchType
/*430737*/          /*SwitchType*/ 41, MVT::v4f64,// ->430780
/*430739*/            OPC_MoveParent,
/*430740*/            OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->430760
/*430743*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*430745*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*430748*/              OPC_EmitMergeInputChains1_0,
/*430749*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvttp2ui:{ *:[v4i32] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VCVTTPD2UDQZ256rmb:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*430760*/            /*SwitchType*/ 17, MVT::v4i64,// ->430779
/*430762*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*430764*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*430767*/              OPC_EmitMergeInputChains1_0,
/*430768*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvttp2ui:{ *:[v4i64] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VCVTTPD2UQQZ256rmb:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*430779*/            0, // EndSwitchType
/*430780*/          /*SwitchType*/ 20, MVT::v2f64,// ->430802
/*430782*/            OPC_MoveParent,
/*430783*/            OPC_CheckType, MVT::v2i64,
/*430785*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*430787*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*430790*/            OPC_EmitMergeInputChains1_0,
/*430791*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86cvttp2ui:{ *:[v2i64] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VCVTTPD2UQQZ128rmb:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*430802*/          0, // EndSwitchType
/*430803*/        /*Scope*/ 69, /*->430873*/
/*430804*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*430806*/          OPC_SwitchType /*2 cases */, 20, MVT::v8f32,// ->430829
/*430809*/            OPC_MoveParent,
/*430810*/            OPC_CheckType, MVT::v8i64,
/*430812*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*430814*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*430817*/            OPC_EmitMergeInputChains1_0,
/*430818*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86cvttp2ui:{ *:[v8i64] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VCVTTPS2UQQZrmb:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*430829*/          /*SwitchType*/ 41, MVT::v4f32,// ->430872
/*430831*/            OPC_MoveParent,
/*430832*/            OPC_SwitchType /*2 cases */, 17, MVT::v2i64,// ->430852
/*430835*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*430837*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*430840*/              OPC_EmitMergeInputChains1_0,
/*430841*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvttp2ui:{ *:[v2i64] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VCVTTPS2UQQZ128rmb:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*430852*/            /*SwitchType*/ 17, MVT::v4i64,// ->430871
/*430854*/              OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*430856*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*430859*/              OPC_EmitMergeInputChains1_0,
/*430860*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvttp2ui:{ *:[v4i64] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VCVTTPS2UQQZ256rmb:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*430871*/            0, // EndSwitchType
/*430872*/          0, // EndSwitchType
/*430873*/        /*Scope*/ 24, /*->430898*/
/*430874*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*430876*/          OPC_CheckType, MVT::v2f64,
/*430878*/          OPC_MoveParent,
/*430879*/          OPC_CheckType, MVT::v4i32,
/*430881*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*430883*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*430886*/          OPC_EmitMergeInputChains1_0,
/*430887*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86cvttp2ui:{ *:[v4i32] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                    // Dst: (VCVTTPD2UDQZ128rmb:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*430898*/        0, /*End of Scope*/
/*430899*/      0, // EndSwitchOpcode
/*430900*/    /*Scope*/ 35|128,1/*163*/, /*->431065*/
/*430902*/      OPC_RecordChild0, // #0 = $src
/*430903*/      OPC_Scope, 13, /*->430918*/ // 6 children in Scope
/*430905*/        OPC_CheckChild0Type, MVT::v16f32,
/*430907*/        OPC_CheckType, MVT::v16i32,
/*430909*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*430911*/        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)
/*430918*/      /*Scope*/ 37, /*->430956*/
/*430919*/        OPC_CheckChild0Type, MVT::v4f32,
/*430921*/        OPC_SwitchType /*3 cases */, 9, MVT::v4i32,// ->430933
/*430924*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*430926*/          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)
/*430933*/        /*SwitchType*/ 9, MVT::v2i64,// ->430944
/*430935*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*430937*/          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)
/*430944*/        /*SwitchType*/ 9, MVT::v4i64,// ->430955
/*430946*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*430948*/          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)
/*430955*/        0, // EndSwitchType
/*430956*/      /*Scope*/ 26, /*->430983*/
/*430957*/        OPC_CheckChild0Type, MVT::v8f32,
/*430959*/        OPC_SwitchType /*2 cases */, 9, MVT::v8i32,// ->430971
/*430962*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*430964*/          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)
/*430971*/        /*SwitchType*/ 9, MVT::v8i64,// ->430982
/*430973*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*430975*/          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)
/*430982*/        0, // EndSwitchType
/*430983*/      /*Scope*/ 26, /*->431010*/
/*430984*/        OPC_CheckChild0Type, MVT::v8f64,
/*430986*/        OPC_SwitchType /*2 cases */, 9, MVT::v8i32,// ->430998
/*430989*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*430991*/          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)
/*430998*/        /*SwitchType*/ 9, MVT::v8i64,// ->431009
/*431000*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*431002*/          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)
/*431009*/        0, // EndSwitchType
/*431010*/      /*Scope*/ 26, /*->431037*/
/*431011*/        OPC_CheckChild0Type, MVT::v4f64,
/*431013*/        OPC_SwitchType /*2 cases */, 9, MVT::v4i32,// ->431025
/*431016*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*431018*/          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)
/*431025*/        /*SwitchType*/ 9, MVT::v4i64,// ->431036
/*431027*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*431029*/          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)
/*431036*/        0, // EndSwitchType
/*431037*/      /*Scope*/ 26, /*->431064*/
/*431038*/        OPC_CheckChild0Type, MVT::v2f64,
/*431040*/        OPC_SwitchType /*2 cases */, 9, MVT::v2i64,// ->431052
/*431043*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*431045*/          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)
/*431052*/        /*SwitchType*/ 9, MVT::v4i32,// ->431063
/*431054*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*431056*/          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)
/*431063*/        0, // EndSwitchType
/*431064*/      0, /*End of Scope*/
/*431065*/    0, /*End of Scope*/
/*431066*/  /*SwitchOpcode*/ 8|128,4/*520*/, TARGET_VAL(X86ISD::VALIGN),// ->431590
/*431070*/    OPC_RecordChild0, // #0 = $src1
/*431071*/    OPC_Scope, 43|128,3/*427*/, /*->431501*/ // 2 children in Scope
/*431074*/      OPC_MoveChild1,
/*431075*/      OPC_SwitchOpcode /*3 cases */, 114, TARGET_VAL(ISD::BITCAST),// ->431193
/*431079*/        OPC_MoveChild0,
/*431080*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*431083*/        OPC_RecordMemRef,
/*431084*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*431085*/        OPC_CheckFoldableChainNode,
/*431086*/        OPC_RecordChild1, // #2 = $src2
/*431087*/        OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*431089*/        OPC_SwitchType /*3 cases */, 32, MVT::v16i32,// ->431124
/*431092*/          OPC_MoveParent,
/*431093*/          OPC_MoveParent,
/*431094*/          OPC_RecordChild2, // #3 = $src3
/*431095*/          OPC_MoveChild2,
/*431096*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*431099*/          OPC_MoveParent,
/*431100*/          OPC_CheckType, MVT::v8i64,
/*431102*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*431104*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*431107*/          OPC_EmitMergeInputChains1_1,
/*431108*/          OPC_EmitNodeXForm, 14, 3, // ValignqImm32XForm
/*431111*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86VAlign:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (bitconvert:{ *:[v8i64] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), (timm:{ *:[i8] }):$src3) - Complexity = 31
                    // Dst: (VALIGNDZrmbi:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (ValignqImm32XForm:{ *:[i8] } (timm:{ *:[i8] }):$src3))
/*431124*/        /*SwitchType*/ 32, MVT::v4i32,// ->431158
/*431126*/          OPC_MoveParent,
/*431127*/          OPC_MoveParent,
/*431128*/          OPC_RecordChild2, // #3 = $src3
/*431129*/          OPC_MoveChild2,
/*431130*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*431133*/          OPC_MoveParent,
/*431134*/          OPC_CheckType, MVT::v2i64,
/*431136*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*431138*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*431141*/          OPC_EmitMergeInputChains1_1,
/*431142*/          OPC_EmitNodeXForm, 14, 3, // ValignqImm32XForm
/*431145*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86VAlign:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (bitconvert:{ *:[v2i64] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), (timm:{ *:[i8] }):$src3) - Complexity = 31
                    // Dst: (VALIGNDZ128rmbi:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (ValignqImm32XForm:{ *:[i8] } (timm:{ *:[i8] }):$src3))
/*431158*/        /*SwitchType*/ 32, MVT::v8i32,// ->431192
/*431160*/          OPC_MoveParent,
/*431161*/          OPC_MoveParent,
/*431162*/          OPC_RecordChild2, // #3 = $src3
/*431163*/          OPC_MoveChild2,
/*431164*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*431167*/          OPC_MoveParent,
/*431168*/          OPC_CheckType, MVT::v4i64,
/*431170*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*431172*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*431175*/          OPC_EmitMergeInputChains1_1,
/*431176*/          OPC_EmitNodeXForm, 14, 3, // ValignqImm32XForm
/*431179*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                    // Src: (X86VAlign:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (bitconvert:{ *:[v4i64] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>), (timm:{ *:[i8] }):$src3) - Complexity = 31
                    // Dst: (VALIGNDZ256rmbi:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (ValignqImm32XForm:{ *:[i8] } (timm:{ *:[i8] }):$src3))
/*431192*/        0, // EndSwitchType
/*431193*/      /*SwitchOpcode*/ 15|128,1/*143*/, TARGET_VAL(ISD::LOAD),// ->431340
/*431197*/        OPC_RecordMemRef,
/*431198*/        OPC_RecordNode, // #1 = 'ld' chained node
/*431199*/        OPC_CheckFoldableChainNode,
/*431200*/        OPC_RecordChild1, // #2 = $src2
/*431201*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*431203*/        OPC_CheckPredicate, 9, // Predicate_load
/*431205*/        OPC_MoveParent,
/*431206*/        OPC_RecordChild2, // #3 = $src3
/*431207*/        OPC_MoveChild2,
/*431208*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*431211*/        OPC_MoveParent,
/*431212*/        OPC_SwitchType /*6 cases */, 19, MVT::v16i32,// ->431234
/*431215*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*431217*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*431220*/          OPC_EmitMergeInputChains1_1,
/*431221*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86VAlign:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                    // Dst: (VALIGNDZrmi:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*431234*/        /*SwitchType*/ 19, MVT::v4i32,// ->431255
/*431236*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*431238*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*431241*/          OPC_EmitMergeInputChains1_1,
/*431242*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86VAlign:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                    // Dst: (VALIGNDZ128rmi:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*431255*/        /*SwitchType*/ 19, MVT::v8i32,// ->431276
/*431257*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*431259*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*431262*/          OPC_EmitMergeInputChains1_1,
/*431263*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86VAlign:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                    // Dst: (VALIGNDZ256rmi:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*431276*/        /*SwitchType*/ 19, MVT::v8i64,// ->431297
/*431278*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*431280*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*431283*/          OPC_EmitMergeInputChains1_1,
/*431284*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNQZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86VAlign:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                    // Dst: (VALIGNQZrmi:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*431297*/        /*SwitchType*/ 19, MVT::v2i64,// ->431318
/*431299*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*431301*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*431304*/          OPC_EmitMergeInputChains1_1,
/*431305*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNQZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86VAlign:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                    // Dst: (VALIGNQZ128rmi:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*431318*/        /*SwitchType*/ 19, MVT::v4i64,// ->431339
/*431320*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*431322*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*431325*/          OPC_EmitMergeInputChains1_1,
/*431326*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNQZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86VAlign:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                    // Dst: (VALIGNQZ256rmi:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*431339*/        0, // EndSwitchType
/*431340*/      /*SwitchOpcode*/ 28|128,1/*156*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->431500
/*431344*/        OPC_RecordMemRef,
/*431345*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*431346*/        OPC_CheckFoldableChainNode,
/*431347*/        OPC_RecordChild1, // #2 = $src2
/*431348*/        OPC_Scope, 74, /*->431424*/ // 2 children in Scope
/*431350*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*431352*/          OPC_MoveParent,
/*431353*/          OPC_RecordChild2, // #3 = $src3
/*431354*/          OPC_MoveChild2,
/*431355*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*431358*/          OPC_MoveParent,
/*431359*/          OPC_SwitchType /*3 cases */, 19, MVT::v16i32,// ->431381
/*431362*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*431364*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*431367*/            OPC_EmitMergeInputChains1_1,
/*431368*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86VAlign:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                      // Dst: (VALIGNDZrmbi:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*431381*/          /*SwitchType*/ 19, MVT::v4i32,// ->431402
/*431383*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*431385*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*431388*/            OPC_EmitMergeInputChains1_1,
/*431389*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86VAlign:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                      // Dst: (VALIGNDZ128rmbi:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*431402*/          /*SwitchType*/ 19, MVT::v8i32,// ->431423
/*431404*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*431406*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*431409*/            OPC_EmitMergeInputChains1_1,
/*431410*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86VAlign:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                      // Dst: (VALIGNDZ256rmbi:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*431423*/          0, // EndSwitchType
/*431424*/        /*Scope*/ 74, /*->431499*/
/*431425*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*431427*/          OPC_MoveParent,
/*431428*/          OPC_RecordChild2, // #3 = $src3
/*431429*/          OPC_MoveChild2,
/*431430*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*431433*/          OPC_MoveParent,
/*431434*/          OPC_SwitchType /*3 cases */, 19, MVT::v8i64,// ->431456
/*431437*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*431439*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*431442*/            OPC_EmitMergeInputChains1_1,
/*431443*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNQZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86VAlign:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                      // Dst: (VALIGNQZrmbi:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*431456*/          /*SwitchType*/ 19, MVT::v2i64,// ->431477
/*431458*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*431460*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*431463*/            OPC_EmitMergeInputChains1_1,
/*431464*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNQZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86VAlign:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                      // Dst: (VALIGNQZ128rmbi:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*431477*/          /*SwitchType*/ 19, MVT::v4i64,// ->431498
/*431479*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*431481*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*431484*/            OPC_EmitMergeInputChains1_1,
/*431485*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNQZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86VAlign:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                      // Dst: (VALIGNQZ256rmbi:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*431498*/          0, // EndSwitchType
/*431499*/        0, /*End of Scope*/
/*431500*/      0, // EndSwitchOpcode
/*431501*/    /*Scope*/ 87, /*->431589*/
/*431502*/      OPC_RecordChild1, // #1 = $src2
/*431503*/      OPC_RecordChild2, // #2 = $src3
/*431504*/      OPC_MoveChild2,
/*431505*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*431508*/      OPC_MoveParent,
/*431509*/      OPC_SwitchType /*6 cases */, 11, MVT::v16i32,// ->431523
/*431512*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*431514*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZrri), 0,
                      MVT::v16i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86VAlign:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VALIGNDZrri:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (timm:{ *:[i8] }):$src3)
/*431523*/      /*SwitchType*/ 11, MVT::v4i32,// ->431536
/*431525*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*431527*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZ128rri), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86VAlign:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VALIGNDZ128rri:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (timm:{ *:[i8] }):$src3)
/*431536*/      /*SwitchType*/ 11, MVT::v8i32,// ->431549
/*431538*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*431540*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNDZ256rri), 0,
                      MVT::v8i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86VAlign:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VALIGNDZ256rri:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (timm:{ *:[i8] }):$src3)
/*431549*/      /*SwitchType*/ 11, MVT::v8i64,// ->431562
/*431551*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*431553*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNQZrri), 0,
                      MVT::v8i64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86VAlign:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VALIGNQZrri:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (timm:{ *:[i8] }):$src3)
/*431562*/      /*SwitchType*/ 11, MVT::v2i64,// ->431575
/*431564*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*431566*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNQZ128rri), 0,
                      MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86VAlign:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VALIGNQZ128rri:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (timm:{ *:[i8] }):$src3)
/*431575*/      /*SwitchType*/ 11, MVT::v4i64,// ->431588
/*431577*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*431579*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VALIGNQZ256rri), 0,
                      MVT::v4i64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86VAlign:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VALIGNQZ256rri:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (timm:{ *:[i8] }):$src3)
/*431588*/      0, // EndSwitchType
/*431589*/    0, /*End of Scope*/
/*431590*/  /*SwitchOpcode*/ 101|128,2/*357*/, TARGET_VAL(X86ISD::GF2P8AFFINEINVQB),// ->431951
/*431594*/    OPC_RecordChild0, // #0 = $src1
/*431595*/    OPC_Scope, 5|128,2/*261*/, /*->431859*/ // 2 children in Scope
/*431598*/      OPC_MoveChild1,
/*431599*/      OPC_SwitchOpcode /*2 cases */, 105, TARGET_VAL(ISD::BITCAST),// ->431708
/*431603*/        OPC_MoveChild0,
/*431604*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*431607*/        OPC_RecordMemRef,
/*431608*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*431609*/        OPC_CheckFoldableChainNode,
/*431610*/        OPC_RecordChild1, // #2 = $src2
/*431611*/        OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*431613*/        OPC_SwitchType /*3 cases */, 29, MVT::v8i64,// ->431645
/*431616*/          OPC_MoveParent,
/*431617*/          OPC_MoveParent,
/*431618*/          OPC_RecordChild2, // #3 = $src3
/*431619*/          OPC_MoveChild2,
/*431620*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*431623*/          OPC_MoveParent,
/*431624*/          OPC_CheckType, MVT::v64i8,
/*431626*/          OPC_CheckPatternPredicate, 186, // (Subtarget->hasAVX512()) && (Subtarget->hasBWI()) && (Subtarget->hasGFNI())
/*431628*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*431631*/          OPC_EmitMergeInputChains1_1,
/*431632*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEINVQBZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v64i8, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86GF2P8affineinvqb:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), (timm:{ *:[i8] }):$src3) - Complexity = 31
                    // Dst: (VGF2P8AFFINEINVQBZrmbi:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*431645*/        /*SwitchType*/ 29, MVT::v4i64,// ->431676
/*431647*/          OPC_MoveParent,
/*431648*/          OPC_MoveParent,
/*431649*/          OPC_RecordChild2, // #3 = $src3
/*431650*/          OPC_MoveChild2,
/*431651*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*431654*/          OPC_MoveParent,
/*431655*/          OPC_CheckType, MVT::v32i8,
/*431657*/          OPC_CheckPatternPredicate, 180, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*431659*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*431662*/          OPC_EmitMergeInputChains1_1,
/*431663*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEINVQBZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i8, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86GF2P8affineinvqb:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), (timm:{ *:[i8] }):$src3) - Complexity = 31
                    // Dst: (VGF2P8AFFINEINVQBZ256rmbi:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*431676*/        /*SwitchType*/ 29, MVT::v2i64,// ->431707
/*431678*/          OPC_MoveParent,
/*431679*/          OPC_MoveParent,
/*431680*/          OPC_RecordChild2, // #3 = $src3
/*431681*/          OPC_MoveChild2,
/*431682*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*431685*/          OPC_MoveParent,
/*431686*/          OPC_CheckType, MVT::v16i8,
/*431688*/          OPC_CheckPatternPredicate, 180, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*431690*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*431693*/          OPC_EmitMergeInputChains1_1,
/*431694*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEINVQBZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86GF2P8affineinvqb:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), (timm:{ *:[i8] }):$src3) - Complexity = 31
                    // Dst: (VGF2P8AFFINEINVQBZ128rmbi:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*431707*/        0, // EndSwitchType
/*431708*/      /*SwitchOpcode*/ 18|128,1/*146*/, TARGET_VAL(ISD::LOAD),// ->431858
/*431712*/        OPC_RecordMemRef,
/*431713*/        OPC_RecordNode, // #1 = 'ld' chained node
/*431714*/        OPC_CheckFoldableChainNode,
/*431715*/        OPC_RecordChild1, // #2 = $src2
/*431716*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*431718*/        OPC_CheckPredicate, 9, // Predicate_load
/*431720*/        OPC_MoveParent,
/*431721*/        OPC_RecordChild2, // #3 = $src3
/*431722*/        OPC_MoveChild2,
/*431723*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*431726*/        OPC_MoveParent,
/*431727*/        OPC_SwitchType /*3 cases */, 62, MVT::v16i8,// ->431792
/*431730*/          OPC_Scope, 19, /*->431751*/ // 3 children in Scope
/*431732*/            OPC_CheckPatternPredicate, 188, // (Subtarget->hasGFNI()) && (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*431734*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*431737*/            OPC_EmitMergeInputChains1_1,
/*431738*/            OPC_MorphNodeTo1, TARGET_VAL(X86::GF2P8AFFINEINVQBrmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86GF2P8affineinvqb:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                      // Dst: (GF2P8AFFINEINVQBrmi:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*431751*/          /*Scope*/ 19, /*->431771*/
/*431752*/            OPC_CheckPatternPredicate, 189, // (Subtarget->hasAVX()) && (Subtarget->hasGFNI()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*431754*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*431757*/            OPC_EmitMergeInputChains1_1,
/*431758*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEINVQBrmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86GF2P8affineinvqb:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                      // Dst: (VGF2P8AFFINEINVQBrmi:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*431771*/          /*Scope*/ 19, /*->431791*/
/*431772*/            OPC_CheckPatternPredicate, 180, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*431774*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*431777*/            OPC_EmitMergeInputChains1_1,
/*431778*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEINVQBZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86GF2P8affineinvqb:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                      // Dst: (VGF2P8AFFINEINVQBZ128rmi:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*431791*/          0, /*End of Scope*/
/*431792*/        /*SwitchType*/ 42, MVT::v32i8,// ->431836
/*431794*/          OPC_Scope, 19, /*->431815*/ // 2 children in Scope
/*431796*/            OPC_CheckPatternPredicate, 189, // (Subtarget->hasAVX()) && (Subtarget->hasGFNI()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*431798*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*431801*/            OPC_EmitMergeInputChains1_1,
/*431802*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEINVQBYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i8, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86GF2P8affineinvqb:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                      // Dst: (VGF2P8AFFINEINVQBYrmi:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*431815*/          /*Scope*/ 19, /*->431835*/
/*431816*/            OPC_CheckPatternPredicate, 180, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*431818*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*431821*/            OPC_EmitMergeInputChains1_1,
/*431822*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEINVQBZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i8, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86GF2P8affineinvqb:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                      // Dst: (VGF2P8AFFINEINVQBZ256rmi:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*431835*/          0, /*End of Scope*/
/*431836*/        /*SwitchType*/ 19, MVT::v64i8,// ->431857
/*431838*/          OPC_CheckPatternPredicate, 186, // (Subtarget->hasAVX512()) && (Subtarget->hasBWI()) && (Subtarget->hasGFNI())
/*431840*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*431843*/          OPC_EmitMergeInputChains1_1,
/*431844*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEINVQBZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v64i8, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86GF2P8affineinvqb:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                    // Dst: (VGF2P8AFFINEINVQBZrmi:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*431857*/        0, // EndSwitchType
/*431858*/      0, // EndSwitchOpcode
/*431859*/    /*Scope*/ 90, /*->431950*/
/*431860*/      OPC_RecordChild1, // #1 = $src2
/*431861*/      OPC_RecordChild2, // #2 = $src3
/*431862*/      OPC_MoveChild2,
/*431863*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*431866*/      OPC_MoveParent,
/*431867*/      OPC_SwitchType /*3 cases */, 38, MVT::v16i8,// ->431908
/*431870*/        OPC_Scope, 11, /*->431883*/ // 3 children in Scope
/*431872*/          OPC_CheckPatternPredicate, 188, // (Subtarget->hasGFNI()) && (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*431874*/          OPC_MorphNodeTo1, TARGET_VAL(X86::GF2P8AFFINEINVQBrri), 0,
                        MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86GF2P8affineinvqb:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                    // Dst: (GF2P8AFFINEINVQBrri:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2, (timm:{ *:[i8] }):$src3)
/*431883*/        /*Scope*/ 11, /*->431895*/
/*431884*/          OPC_CheckPatternPredicate, 189, // (Subtarget->hasAVX()) && (Subtarget->hasGFNI()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*431886*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEINVQBrri), 0,
                        MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86GF2P8affineinvqb:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                    // Dst: (VGF2P8AFFINEINVQBrri:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2, (timm:{ *:[i8] }):$src3)
/*431895*/        /*Scope*/ 11, /*->431907*/
/*431896*/          OPC_CheckPatternPredicate, 180, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*431898*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEINVQBZ128rri), 0,
                        MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86GF2P8affineinvqb:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                    // Dst: (VGF2P8AFFINEINVQBZ128rri:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (timm:{ *:[i8] }):$src3)
/*431907*/        0, /*End of Scope*/
/*431908*/      /*SwitchType*/ 26, MVT::v32i8,// ->431936
/*431910*/        OPC_Scope, 11, /*->431923*/ // 2 children in Scope
/*431912*/          OPC_CheckPatternPredicate, 189, // (Subtarget->hasAVX()) && (Subtarget->hasGFNI()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*431914*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEINVQBYrri), 0,
                        MVT::v32i8, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86GF2P8affineinvqb:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                    // Dst: (VGF2P8AFFINEINVQBYrri:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2, (timm:{ *:[i8] }):$src3)
/*431923*/        /*Scope*/ 11, /*->431935*/
/*431924*/          OPC_CheckPatternPredicate, 180, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*431926*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEINVQBZ256rri), 0,
                        MVT::v32i8, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86GF2P8affineinvqb:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                    // Dst: (VGF2P8AFFINEINVQBZ256rri:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (timm:{ *:[i8] }):$src3)
/*431935*/        0, /*End of Scope*/
/*431936*/      /*SwitchType*/ 11, MVT::v64i8,// ->431949
/*431938*/        OPC_CheckPatternPredicate, 186, // (Subtarget->hasAVX512()) && (Subtarget->hasBWI()) && (Subtarget->hasGFNI())
/*431940*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEINVQBZrri), 0,
                      MVT::v64i8, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86GF2P8affineinvqb:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VGF2P8AFFINEINVQBZrri:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (timm:{ *:[i8] }):$src3)
/*431949*/      0, // EndSwitchType
/*431950*/    0, /*End of Scope*/
/*431951*/  /*SwitchOpcode*/ 101|128,2/*357*/, TARGET_VAL(X86ISD::GF2P8AFFINEQB),// ->432312
/*431955*/    OPC_RecordChild0, // #0 = $src1
/*431956*/    OPC_Scope, 5|128,2/*261*/, /*->432220*/ // 2 children in Scope
/*431959*/      OPC_MoveChild1,
/*431960*/      OPC_SwitchOpcode /*2 cases */, 105, TARGET_VAL(ISD::BITCAST),// ->432069
/*431964*/        OPC_MoveChild0,
/*431965*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*431968*/        OPC_RecordMemRef,
/*431969*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*431970*/        OPC_CheckFoldableChainNode,
/*431971*/        OPC_RecordChild1, // #2 = $src2
/*431972*/        OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*431974*/        OPC_SwitchType /*3 cases */, 29, MVT::v8i64,// ->432006
/*431977*/          OPC_MoveParent,
/*431978*/          OPC_MoveParent,
/*431979*/          OPC_RecordChild2, // #3 = $src3
/*431980*/          OPC_MoveChild2,
/*431981*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*431984*/          OPC_MoveParent,
/*431985*/          OPC_CheckType, MVT::v64i8,
/*431987*/          OPC_CheckPatternPredicate, 186, // (Subtarget->hasAVX512()) && (Subtarget->hasBWI()) && (Subtarget->hasGFNI())
/*431989*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*431992*/          OPC_EmitMergeInputChains1_1,
/*431993*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEQBZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v64i8, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86GF2P8affineqb:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (bitconvert:{ *:[v64i8] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), (timm:{ *:[i8] }):$src3) - Complexity = 31
                    // Dst: (VGF2P8AFFINEQBZrmbi:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*432006*/        /*SwitchType*/ 29, MVT::v4i64,// ->432037
/*432008*/          OPC_MoveParent,
/*432009*/          OPC_MoveParent,
/*432010*/          OPC_RecordChild2, // #3 = $src3
/*432011*/          OPC_MoveChild2,
/*432012*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*432015*/          OPC_MoveParent,
/*432016*/          OPC_CheckType, MVT::v32i8,
/*432018*/          OPC_CheckPatternPredicate, 180, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*432020*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*432023*/          OPC_EmitMergeInputChains1_1,
/*432024*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEQBZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i8, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86GF2P8affineqb:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (bitconvert:{ *:[v32i8] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), (timm:{ *:[i8] }):$src3) - Complexity = 31
                    // Dst: (VGF2P8AFFINEQBZ256rmbi:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*432037*/        /*SwitchType*/ 29, MVT::v2i64,// ->432068
/*432039*/          OPC_MoveParent,
/*432040*/          OPC_MoveParent,
/*432041*/          OPC_RecordChild2, // #3 = $src3
/*432042*/          OPC_MoveChild2,
/*432043*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*432046*/          OPC_MoveParent,
/*432047*/          OPC_CheckType, MVT::v16i8,
/*432049*/          OPC_CheckPatternPredicate, 180, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*432051*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*432054*/          OPC_EmitMergeInputChains1_1,
/*432055*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEQBZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86GF2P8affineqb:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (bitconvert:{ *:[v16i8] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>), (timm:{ *:[i8] }):$src3) - Complexity = 31
                    // Dst: (VGF2P8AFFINEQBZ128rmbi:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*432068*/        0, // EndSwitchType
/*432069*/      /*SwitchOpcode*/ 18|128,1/*146*/, TARGET_VAL(ISD::LOAD),// ->432219
/*432073*/        OPC_RecordMemRef,
/*432074*/        OPC_RecordNode, // #1 = 'ld' chained node
/*432075*/        OPC_CheckFoldableChainNode,
/*432076*/        OPC_RecordChild1, // #2 = $src2
/*432077*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*432079*/        OPC_CheckPredicate, 9, // Predicate_load
/*432081*/        OPC_MoveParent,
/*432082*/        OPC_RecordChild2, // #3 = $src3
/*432083*/        OPC_MoveChild2,
/*432084*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*432087*/        OPC_MoveParent,
/*432088*/        OPC_SwitchType /*3 cases */, 62, MVT::v16i8,// ->432153
/*432091*/          OPC_Scope, 19, /*->432112*/ // 3 children in Scope
/*432093*/            OPC_CheckPatternPredicate, 188, // (Subtarget->hasGFNI()) && (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*432095*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*432098*/            OPC_EmitMergeInputChains1_1,
/*432099*/            OPC_MorphNodeTo1, TARGET_VAL(X86::GF2P8AFFINEQBrmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86GF2P8affineqb:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                      // Dst: (GF2P8AFFINEQBrmi:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*432112*/          /*Scope*/ 19, /*->432132*/
/*432113*/            OPC_CheckPatternPredicate, 189, // (Subtarget->hasAVX()) && (Subtarget->hasGFNI()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*432115*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*432118*/            OPC_EmitMergeInputChains1_1,
/*432119*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEQBrmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86GF2P8affineqb:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                      // Dst: (VGF2P8AFFINEQBrmi:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*432132*/          /*Scope*/ 19, /*->432152*/
/*432133*/            OPC_CheckPatternPredicate, 180, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*432135*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*432138*/            OPC_EmitMergeInputChains1_1,
/*432139*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEQBZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86GF2P8affineqb:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                      // Dst: (VGF2P8AFFINEQBZ128rmi:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*432152*/          0, /*End of Scope*/
/*432153*/        /*SwitchType*/ 42, MVT::v32i8,// ->432197
/*432155*/          OPC_Scope, 19, /*->432176*/ // 2 children in Scope
/*432157*/            OPC_CheckPatternPredicate, 189, // (Subtarget->hasAVX()) && (Subtarget->hasGFNI()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*432159*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*432162*/            OPC_EmitMergeInputChains1_1,
/*432163*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEQBYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i8, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86GF2P8affineqb:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                      // Dst: (VGF2P8AFFINEQBYrmi:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*432176*/          /*Scope*/ 19, /*->432196*/
/*432177*/            OPC_CheckPatternPredicate, 180, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*432179*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*432182*/            OPC_EmitMergeInputChains1_1,
/*432183*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEQBZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i8, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86GF2P8affineqb:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                      // Dst: (VGF2P8AFFINEQBZ256rmi:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*432196*/          0, /*End of Scope*/
/*432197*/        /*SwitchType*/ 19, MVT::v64i8,// ->432218
/*432199*/          OPC_CheckPatternPredicate, 186, // (Subtarget->hasAVX512()) && (Subtarget->hasBWI()) && (Subtarget->hasGFNI())
/*432201*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*432204*/          OPC_EmitMergeInputChains1_1,
/*432205*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEQBZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v64i8, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86GF2P8affineqb:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                    // Dst: (VGF2P8AFFINEQBZrmi:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*432218*/        0, // EndSwitchType
/*432219*/      0, // EndSwitchOpcode
/*432220*/    /*Scope*/ 90, /*->432311*/
/*432221*/      OPC_RecordChild1, // #1 = $src2
/*432222*/      OPC_RecordChild2, // #2 = $src3
/*432223*/      OPC_MoveChild2,
/*432224*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*432227*/      OPC_MoveParent,
/*432228*/      OPC_SwitchType /*3 cases */, 38, MVT::v16i8,// ->432269
/*432231*/        OPC_Scope, 11, /*->432244*/ // 3 children in Scope
/*432233*/          OPC_CheckPatternPredicate, 188, // (Subtarget->hasGFNI()) && (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*432235*/          OPC_MorphNodeTo1, TARGET_VAL(X86::GF2P8AFFINEQBrri), 0,
                        MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86GF2P8affineqb:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                    // Dst: (GF2P8AFFINEQBrri:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2, (timm:{ *:[i8] }):$src3)
/*432244*/        /*Scope*/ 11, /*->432256*/
/*432245*/          OPC_CheckPatternPredicate, 189, // (Subtarget->hasAVX()) && (Subtarget->hasGFNI()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*432247*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEQBrri), 0,
                        MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86GF2P8affineqb:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                    // Dst: (VGF2P8AFFINEQBrri:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2, (timm:{ *:[i8] }):$src3)
/*432256*/        /*Scope*/ 11, /*->432268*/
/*432257*/          OPC_CheckPatternPredicate, 180, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*432259*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEQBZ128rri), 0,
                        MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86GF2P8affineqb:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                    // Dst: (VGF2P8AFFINEQBZ128rri:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (timm:{ *:[i8] }):$src3)
/*432268*/        0, /*End of Scope*/
/*432269*/      /*SwitchType*/ 26, MVT::v32i8,// ->432297
/*432271*/        OPC_Scope, 11, /*->432284*/ // 2 children in Scope
/*432273*/          OPC_CheckPatternPredicate, 189, // (Subtarget->hasAVX()) && (Subtarget->hasGFNI()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*432275*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEQBYrri), 0,
                        MVT::v32i8, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86GF2P8affineqb:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                    // Dst: (VGF2P8AFFINEQBYrri:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2, (timm:{ *:[i8] }):$src3)
/*432284*/        /*Scope*/ 11, /*->432296*/
/*432285*/          OPC_CheckPatternPredicate, 180, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*432287*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEQBZ256rri), 0,
                        MVT::v32i8, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86GF2P8affineqb:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                    // Dst: (VGF2P8AFFINEQBZ256rri:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (timm:{ *:[i8] }):$src3)
/*432296*/        0, /*End of Scope*/
/*432297*/      /*SwitchType*/ 11, MVT::v64i8,// ->432310
/*432299*/        OPC_CheckPatternPredicate, 186, // (Subtarget->hasAVX512()) && (Subtarget->hasBWI()) && (Subtarget->hasGFNI())
/*432301*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VGF2P8AFFINEQBZrri), 0,
                      MVT::v64i8, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86GF2P8affineqb:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VGF2P8AFFINEQBZrri:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (timm:{ *:[i8] }):$src3)
/*432310*/      0, // EndSwitchType
/*432311*/    0, /*End of Scope*/
/*432312*/  /*SwitchOpcode*/ 62|128,39/*5054*/, TARGET_VAL(ISD::INSERT_SUBVECTOR),// ->437370
/*432316*/    OPC_Scope, 64|128,1/*192*/, /*->432511*/ // 10 children in Scope
/*432319*/      OPC_MoveChild0,
/*432320*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*432323*/      OPC_RecordMemRef,
/*432324*/      OPC_RecordNode, // #0 = 'ld' chained node
/*432325*/      OPC_CheckFoldableChainNode,
/*432326*/      OPC_RecordChild1, // #1 = $src2
/*432327*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*432329*/      OPC_CheckPredicate, 9, // Predicate_load
/*432331*/      OPC_MoveParent,
/*432332*/      OPC_RecordChild1, // #2 = $src1
/*432333*/      OPC_CheckChild2Integer, 0, 
/*432335*/      OPC_CheckChild2Type, MVT::iPTR,
/*432337*/      OPC_SwitchType /*4 cases */, 41, MVT::v8i32,// ->432381
/*432340*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*432342*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*432345*/        OPC_EmitMergeInputChains1_0,
/*432346*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i32, 0/*#Ops*/,  // Results = #8
/*432352*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*432355*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i32, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/*432364*/        OPC_EmitInteger, MVT::i8, 112|128,1/*240*/, 
/*432368*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDPSYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i32, 7/*#Ops*/, 10, 3, 4, 5, 6, 7, 11, 
                  // Src: (insert_subvector:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v4i32] }:$src1, 0:{ *:[iPTR] }) - Complexity = 30
                  // Dst: (VBLENDPSYrmi:{ *:[v8i32] } (INSERT_SUBREG:{ *:[v8i32] } (IMPLICIT_DEF:{ *:[v8i32] }), VR128:{ *:[v4i32] }:$src1, sub_xmm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, 240:{ *:[i8] })
/*432381*/      /*SwitchType*/ 41, MVT::v4i64,// ->432424
/*432383*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*432385*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*432388*/        OPC_EmitMergeInputChains1_0,
/*432389*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i32, 0/*#Ops*/,  // Results = #8
/*432395*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*432398*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i32, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/*432407*/        OPC_EmitInteger, MVT::i8, 112|128,1/*240*/, 
/*432411*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDPSYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i64, 7/*#Ops*/, 10, 3, 4, 5, 6, 7, 11, 
                  // Src: (insert_subvector:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v2i64] }:$src1, 0:{ *:[iPTR] }) - Complexity = 30
                  // Dst: (VBLENDPSYrmi:{ *:[v4i64] } (INSERT_SUBREG:{ *:[v8i32] } (IMPLICIT_DEF:{ *:[v8i32] }), VR128:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, 240:{ *:[i8] })
/*432424*/      /*SwitchType*/ 41, MVT::v16i16,// ->432467
/*432426*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*432428*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*432431*/        OPC_EmitMergeInputChains1_0,
/*432432*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i32, 0/*#Ops*/,  // Results = #8
/*432438*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*432441*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i32, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/*432450*/        OPC_EmitInteger, MVT::i8, 112|128,1/*240*/, 
/*432454*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDPSYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i16, 7/*#Ops*/, 10, 3, 4, 5, 6, 7, 11, 
                  // Src: (insert_subvector:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v8i16] }:$src1, 0:{ *:[iPTR] }) - Complexity = 30
                  // Dst: (VBLENDPSYrmi:{ *:[v16i16] } (INSERT_SUBREG:{ *:[v8i32] } (IMPLICIT_DEF:{ *:[v8i32] }), VR128:{ *:[v8i16] }:$src1, sub_xmm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, 240:{ *:[i8] })
/*432467*/      /*SwitchType*/ 41, MVT::v32i8,// ->432510
/*432469*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*432471*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*432474*/        OPC_EmitMergeInputChains1_0,
/*432475*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i32, 0/*#Ops*/,  // Results = #8
/*432481*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*432484*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i32, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/*432493*/        OPC_EmitInteger, MVT::i8, 112|128,1/*240*/, 
/*432497*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDPSYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v32i8, 7/*#Ops*/, 10, 3, 4, 5, 6, 7, 11, 
                  // Src: (insert_subvector:{ *:[v32i8] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v16i8] }:$src1, 0:{ *:[iPTR] }) - Complexity = 30
                  // Dst: (VBLENDPSYrmi:{ *:[v32i8] } (INSERT_SUBREG:{ *:[v8i32] } (IMPLICIT_DEF:{ *:[v8i32] }), VR128:{ *:[v16i8] }:$src1, sub_xmm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, 240:{ *:[i8] })
/*432510*/      0, // EndSwitchType
/*432511*/    /*Scope*/ 111|128,4/*623*/, /*->433136*/
/*432513*/      OPC_RecordNode, // #0 = $ins
/*432514*/      OPC_RecordChild0, // #1 = $src1
/*432515*/      OPC_MoveChild1,
/*432516*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*432519*/      OPC_RecordMemRef,
/*432520*/      OPC_RecordNode, // #2 = 'ld' chained node
/*432521*/      OPC_CheckFoldableChainNode,
/*432522*/      OPC_RecordChild1, // #3 = $src2
/*432523*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*432525*/      OPC_CheckPredicate, 9, // Predicate_load
/*432527*/      OPC_Scope, 105|128,1/*233*/, /*->432763*/ // 11 children in Scope
/*432530*/        OPC_MoveParent,
/*432531*/        OPC_MoveChild2,
/*432532*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*432535*/        OPC_CheckType, MVT::iPTR,
/*432537*/        OPC_MoveParent,
/*432538*/        OPC_SwitchType /*4 cases */, 48, MVT::v4i64,// ->432589
/*432541*/          OPC_Scope, 22, /*->432565*/ // 2 children in Scope
/*432543*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*432545*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*432548*/            OPC_EmitMergeInputChains1_2,
/*432549*/            OPC_EmitNodeXForm, 15, 0, // INSERT_get_vinsert128_imm
/*432552*/            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>>, (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))
/*432565*/          /*Scope*/ 22, /*->432588*/
/*432566*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*432568*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*432571*/            OPC_EmitMergeInputChains1_2,
/*432572*/            OPC_EmitNodeXForm, 15, 0, // INSERT_get_vinsert128_imm
/*432575*/            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>>, (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))
/*432588*/          0, /*End of Scope*/
/*432589*/        /*SwitchType*/ 71, MVT::v8i32,// ->432662
/*432591*/          OPC_Scope, 22, /*->432615*/ // 3 children in Scope
/*432593*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*432595*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*432598*/            OPC_EmitMergeInputChains1_2,
/*432599*/            OPC_EmitNodeXForm, 15, 0, // INSERT_get_vinsert128_imm
/*432602*/            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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins - Complexity = 28
                      // Dst: (VINSERTF128rm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256:{ *:[v8i32] }:$ins))
/*432615*/          /*Scope*/ 22, /*->432638*/
/*432616*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*432618*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*432621*/            OPC_EmitMergeInputChains1_2,
/*432622*/            OPC_EmitNodeXForm, 15, 0, // INSERT_get_vinsert128_imm
/*432625*/            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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins - Complexity = 28
                      // Dst: (VINSERTI128rm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256:{ *:[v8i32] }:$ins))
/*432638*/          /*Scope*/ 22, /*->432661*/
/*432639*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*432641*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*432644*/            OPC_EmitMergeInputChains1_2,
/*432645*/            OPC_EmitNodeXForm, 15, 0, // INSERT_get_vinsert128_imm
/*432648*/            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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$src3 - Complexity = 28
                      // Dst: (VINSERTI32x4Z256rm:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } (insert_subvector:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[iPTR] })):$src3))
/*432661*/          0, /*End of Scope*/
/*432662*/        /*SwitchType*/ 48, MVT::v16i16,// ->432712
/*432664*/          OPC_Scope, 22, /*->432688*/ // 2 children in Scope
/*432666*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*432668*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*432671*/            OPC_EmitMergeInputChains1_2,
/*432672*/            OPC_EmitNodeXForm, 15, 0, // INSERT_get_vinsert128_imm
/*432675*/            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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins - Complexity = 28
                      // Dst: (VINSERTF128rm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256:{ *:[v16i16] }:$ins))
/*432688*/          /*Scope*/ 22, /*->432711*/
/*432689*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*432691*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*432694*/            OPC_EmitMergeInputChains1_2,
/*432695*/            OPC_EmitNodeXForm, 15, 0, // INSERT_get_vinsert128_imm
/*432698*/            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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins - Complexity = 28
                      // Dst: (VINSERTI128rm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256:{ *:[v16i16] }:$ins))
/*432711*/          0, /*End of Scope*/
/*432712*/        /*SwitchType*/ 48, MVT::v32i8,// ->432762
/*432714*/          OPC_Scope, 22, /*->432738*/ // 2 children in Scope
/*432716*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*432718*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*432721*/            OPC_EmitMergeInputChains1_2,
/*432722*/            OPC_EmitNodeXForm, 15, 0, // INSERT_get_vinsert128_imm
/*432725*/            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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins - Complexity = 28
                      // Dst: (VINSERTF128rm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256:{ *:[v32i8] }:$ins))
/*432738*/          /*Scope*/ 22, /*->432761*/
/*432739*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*432741*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*432744*/            OPC_EmitMergeInputChains1_2,
/*432745*/            OPC_EmitNodeXForm, 15, 0, // INSERT_get_vinsert128_imm
/*432748*/            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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins - Complexity = 28
                      // Dst: (VINSERTI128rm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256:{ *:[v32i8] }:$ins))
/*432761*/          0, /*End of Scope*/
/*432762*/        0, // EndSwitchType
/*432763*/      /*Scope*/ 34, /*->432798*/
/*432764*/        OPC_CheckType, MVT::v4i32,
/*432766*/        OPC_MoveParent,
/*432767*/        OPC_MoveChild2,
/*432768*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*432771*/        OPC_CheckType, MVT::iPTR,
/*432773*/        OPC_MoveParent,
/*432774*/        OPC_CheckType, MVT::v16i32,
/*432776*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*432778*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*432781*/        OPC_EmitMergeInputChains1_2,
/*432782*/        OPC_EmitNodeXForm, 15, 0, // INSERT_get_vinsert128_imm
/*432785*/        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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$src3 - Complexity = 28
                  // Dst: (VINSERTI32x4Zrm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } (insert_subvector:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[iPTR] })):$src3))
/*432798*/      /*Scope*/ 34, /*->432833*/
/*432799*/        OPC_CheckType, MVT::v4i64,
/*432801*/        OPC_MoveParent,
/*432802*/        OPC_MoveChild2,
/*432803*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*432806*/        OPC_CheckType, MVT::iPTR,
/*432808*/        OPC_MoveParent,
/*432809*/        OPC_CheckType, MVT::v8i64,
/*432811*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*432813*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*432816*/        OPC_EmitMergeInputChains1_2,
/*432817*/        OPC_EmitNodeXForm, 16, 0, // INSERT_get_vinsert256_imm
/*432820*/        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>>, (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>>, (imm:{ *:[iPTR] })):$src3))
/*432833*/      /*Scope*/ 32, /*->432866*/
/*432834*/        OPC_MoveParent,
/*432835*/        OPC_MoveChild2,
/*432836*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*432839*/        OPC_CheckType, MVT::iPTR,
/*432841*/        OPC_MoveParent,
/*432842*/        OPC_CheckType, MVT::v4i64,
/*432844*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*432846*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*432849*/        OPC_EmitMergeInputChains1_2,
/*432850*/        OPC_EmitNodeXForm, 15, 0, // INSERT_get_vinsert128_imm
/*432853*/        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>>, (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))
/*432866*/      /*Scope*/ 34, /*->432901*/
/*432867*/        OPC_CheckType, MVT::v2i64,
/*432869*/        OPC_MoveParent,
/*432870*/        OPC_MoveChild2,
/*432871*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*432874*/        OPC_CheckType, MVT::iPTR,
/*432876*/        OPC_MoveParent,
/*432877*/        OPC_CheckType, MVT::v8i64,
/*432879*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*432881*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*432884*/        OPC_EmitMergeInputChains1_2,
/*432885*/        OPC_EmitNodeXForm, 15, 0, // INSERT_get_vinsert128_imm
/*432888*/        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>>, (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))
/*432901*/      /*Scope*/ 34, /*->432936*/
/*432902*/        OPC_CheckType, MVT::v8i32,
/*432904*/        OPC_MoveParent,
/*432905*/        OPC_MoveChild2,
/*432906*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*432909*/        OPC_CheckType, MVT::iPTR,
/*432911*/        OPC_MoveParent,
/*432912*/        OPC_CheckType, MVT::v16i32,
/*432914*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*432916*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*432919*/        OPC_EmitMergeInputChains1_2,
/*432920*/        OPC_EmitNodeXForm, 16, 0, // INSERT_get_vinsert256_imm
/*432923*/        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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$ins - Complexity = 28
                  // Dst: (VINSERTI64x4Zrm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } VR512:{ *:[v16i32] }:$ins))
/*432936*/      /*Scope*/ 58, /*->432995*/
/*432937*/        OPC_MoveParent,
/*432938*/        OPC_MoveChild2,
/*432939*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*432942*/        OPC_CheckType, MVT::iPTR,
/*432944*/        OPC_MoveParent,
/*432945*/        OPC_SwitchType /*2 cases */, 22, MVT::v16i16,// ->432970
/*432948*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*432950*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*432953*/          OPC_EmitMergeInputChains1_2,
/*432954*/          OPC_EmitNodeXForm, 15, 0, // INSERT_get_vinsert128_imm
/*432957*/          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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins - Complexity = 28
                    // Dst: (VINSERTI32x4Z256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256X:{ *:[v16i16] }:$ins))
/*432970*/        /*SwitchType*/ 22, MVT::v32i8,// ->432994
/*432972*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*432974*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*432977*/          OPC_EmitMergeInputChains1_2,
/*432978*/          OPC_EmitNodeXForm, 15, 0, // INSERT_get_vinsert128_imm
/*432981*/          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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins - Complexity = 28
                    // Dst: (VINSERTI32x4Z256rm:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR256X:{ *:[v32i8] }:$ins))
/*432994*/        0, // EndSwitchType
/*432995*/      /*Scope*/ 34, /*->433030*/
/*432996*/        OPC_CheckType, MVT::v8i16,
/*432998*/        OPC_MoveParent,
/*432999*/        OPC_MoveChild2,
/*433000*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*433003*/        OPC_CheckType, MVT::iPTR,
/*433005*/        OPC_MoveParent,
/*433006*/        OPC_CheckType, MVT::v32i16,
/*433008*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*433010*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*433013*/        OPC_EmitMergeInputChains1_2,
/*433014*/        OPC_EmitNodeXForm, 15, 0, // INSERT_get_vinsert128_imm
/*433017*/        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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins - Complexity = 28
                  // Dst: (VINSERTI32x4Zrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR512:{ *:[v32i16] }:$ins))
/*433030*/      /*Scope*/ 34, /*->433065*/
/*433031*/        OPC_CheckType, MVT::v16i8,
/*433033*/        OPC_MoveParent,
/*433034*/        OPC_MoveChild2,
/*433035*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*433038*/        OPC_CheckType, MVT::iPTR,
/*433040*/        OPC_MoveParent,
/*433041*/        OPC_CheckType, MVT::v64i8,
/*433043*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*433045*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*433048*/        OPC_EmitMergeInputChains1_2,
/*433049*/        OPC_EmitNodeXForm, 15, 0, // INSERT_get_vinsert128_imm
/*433052*/        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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert128_imm>>:$ins - Complexity = 28
                  // Dst: (VINSERTI32x4Zrm:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert128_imm:{ *:[i8] } VR512:{ *:[v64i8] }:$ins))
/*433065*/      /*Scope*/ 34, /*->433100*/
/*433066*/        OPC_CheckType, MVT::v16i16,
/*433068*/        OPC_MoveParent,
/*433069*/        OPC_MoveChild2,
/*433070*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*433073*/        OPC_CheckType, MVT::iPTR,
/*433075*/        OPC_MoveParent,
/*433076*/        OPC_CheckType, MVT::v32i16,
/*433078*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*433080*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*433083*/        OPC_EmitMergeInputChains1_2,
/*433084*/        OPC_EmitNodeXForm, 16, 0, // INSERT_get_vinsert256_imm
/*433087*/        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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$ins - Complexity = 28
                  // Dst: (VINSERTI64x4Zrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } VR512:{ *:[v32i16] }:$ins))
/*433100*/      /*Scope*/ 34, /*->433135*/
/*433101*/        OPC_CheckType, MVT::v32i8,
/*433103*/        OPC_MoveParent,
/*433104*/        OPC_MoveChild2,
/*433105*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*433108*/        OPC_CheckType, MVT::iPTR,
/*433110*/        OPC_MoveParent,
/*433111*/        OPC_CheckType, MVT::v64i8,
/*433113*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*433115*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*433118*/        OPC_EmitMergeInputChains1_2,
/*433119*/        OPC_EmitNodeXForm, 16, 0, // INSERT_get_vinsert256_imm
/*433122*/        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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (imm:{ *:[iPTR] }))<<X:INSERT_get_vinsert256_imm>>:$ins - Complexity = 28
                  // Dst: (VINSERTI64x4Zrm:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (INSERT_get_vinsert256_imm:{ *:[i8] } VR512:{ *:[v64i8] }:$ins))
/*433135*/      0, /*End of Scope*/
/*433136*/    /*Scope*/ 37|128,19/*2469*/, /*->435607*/
/*433138*/      OPC_MoveChild0,
/*433139*/      OPC_Scope, 60|128,14/*1852*/, /*->434994*/ // 2 children in Scope
/*433142*/        OPC_CheckImmAllZerosV,
/*433143*/        OPC_MoveParent,
/*433144*/        OPC_Scope, 66, /*->433212*/ // 2 children in Scope
/*433146*/          OPC_MoveChild1,
/*433147*/          OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*433150*/          OPC_RecordChild0, // #0 = $src
/*433151*/          OPC_CheckChild0Type, MVT::i8,
/*433153*/          OPC_CheckType, MVT::v1i1,
/*433155*/          OPC_MoveParent,
/*433156*/          OPC_CheckChild2Integer, 0, 
/*433158*/          OPC_CheckChild2Type, MVT::iPTR,
/*433160*/          OPC_CheckType, MVT::v16i1,
/*433162*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*433164*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i32, 0/*#Ops*/,  // Results = #1
/*433170*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*433173*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*433182*/          OPC_EmitInteger, MVT::i32, 1, 
/*433185*/          OPC_EmitNode2, TARGET_VAL(X86::AND32ri8), 0,
                        MVT::i32, MVT::i32, 2/*#Ops*/, 3, 4,  // Results = #5 #6
/*433194*/          OPC_EmitNode1, TARGET_VAL(X86::KMOVWkr), 0,
                        MVT::v16i1, 1/*#Ops*/, 5,  // Results = #7
/*433201*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*433204*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 7, 8, 
                    // Src: (insert_subvector:{ *:[v16i1] } immAllZerosV:{ *:[v16i1] }, (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] })
/*433212*/        /*Scope*/ 115|128,13/*1779*/, /*->434993*/
/*433214*/          OPC_RecordChild1, // #0 = $src
/*433215*/          OPC_Scope, 81|128,2/*337*/, /*->433555*/ // 2 children in Scope
/*433218*/            OPC_MoveChild1,
/*433219*/            OPC_SwitchType /*6 cases */, 69, MVT::v1i1,// ->433291
/*433222*/              OPC_CheckPredicate, 101, // Predicate_maskzeroupperv1i1
/*433224*/              OPC_MoveParent,
/*433225*/              OPC_CheckChild2Integer, 0, 
/*433227*/              OPC_CheckChild2Type, MVT::iPTR,
/*433229*/              OPC_SwitchType /*4 cases */, 13, MVT::v32i1,// ->433245
/*433232*/                OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*433234*/                OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/*433237*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v32i1, 2/*#Ops*/, 0, 1, 
                          // Src: (insert_subvector:{ *:[v32i1] } immAllZerosV:{ *:[v32i1] }, VK1:{ *:[v1i1] }<<P:Predicate_maskzeroupperv1i1>>:$src, 0:{ *:[iPTR] }) - Complexity = 13
                          // Dst: (COPY_TO_REGCLASS:{ *:[v32i1] } VK1:{ *:[v1i1] }:$src, VK32:{ *:[i32] })
/*433245*/              /*SwitchType*/ 13, MVT::v64i1,// ->433260
/*433247*/                OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*433249*/                OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/*433252*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v64i1, 2/*#Ops*/, 0, 1, 
                          // Src: (insert_subvector:{ *:[v64i1] } immAllZerosV:{ *:[v64i1] }, VK1:{ *:[v1i1] }<<P:Predicate_maskzeroupperv1i1>>:$src, 0:{ *:[iPTR] }) - Complexity = 13
                          // Dst: (COPY_TO_REGCLASS:{ *:[v64i1] } VK1:{ *:[v1i1] }:$src, VK64:{ *:[i32] })
/*433260*/              /*SwitchType*/ 13, MVT::v16i1,// ->433275
/*433262*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*433264*/                OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*433267*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v16i1, 2/*#Ops*/, 0, 1, 
                          // Src: (insert_subvector:{ *:[v16i1] } immAllZerosV:{ *:[v16i1] }, VK1:{ *:[v1i1] }<<P:Predicate_maskzeroupperv1i1>>:$src, 0:{ *:[iPTR] }) - Complexity = 13
                          // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } VK1:{ *:[v1i1] }:$src, VK16:{ *:[i32] })
/*433275*/              /*SwitchType*/ 13, MVT::v8i1,// ->433290
/*433277*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*433279*/                OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*433282*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v8i1, 2/*#Ops*/, 0, 1, 
                          // Src: (insert_subvector:{ *:[v8i1] } immAllZerosV:{ *:[v8i1] }, VK1:{ *:[v1i1] }<<P:Predicate_maskzeroupperv1i1>>:$src, 0:{ *:[iPTR] }) - Complexity = 13
                          // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } VK1:{ *:[v1i1] }:$src, VK8:{ *:[i32] })
/*433290*/              0, // EndSwitchType
/*433291*/            /*SwitchType*/ 54, MVT::v8i1,// ->433347
/*433293*/              OPC_CheckPredicate, 101, // Predicate_maskzeroupperv8i1
/*433295*/              OPC_MoveParent,
/*433296*/              OPC_CheckChild2Integer, 0, 
/*433298*/              OPC_CheckChild2Type, MVT::iPTR,
/*433300*/              OPC_SwitchType /*3 cases */, 13, MVT::v32i1,// ->433316
/*433303*/                OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*433305*/                OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/*433308*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v32i1, 2/*#Ops*/, 0, 1, 
                          // Src: (insert_subvector:{ *:[v32i1] } immAllZerosV:{ *:[v32i1] }, VK8:{ *:[v8i1] }<<P:Predicate_maskzeroupperv8i1>>:$src, 0:{ *:[iPTR] }) - Complexity = 13
                          // Dst: (COPY_TO_REGCLASS:{ *:[v32i1] } VK8:{ *:[v8i1] }:$src, VK32:{ *:[i32] })
/*433316*/              /*SwitchType*/ 13, MVT::v64i1,// ->433331
/*433318*/                OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*433320*/                OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/*433323*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v64i1, 2/*#Ops*/, 0, 1, 
                          // Src: (insert_subvector:{ *:[v64i1] } immAllZerosV:{ *:[v64i1] }, VK8:{ *:[v8i1] }<<P:Predicate_maskzeroupperv8i1>>:$src, 0:{ *:[iPTR] }) - Complexity = 13
                          // Dst: (COPY_TO_REGCLASS:{ *:[v64i1] } VK8:{ *:[v8i1] }:$src, VK64:{ *:[i32] })
/*433331*/              /*SwitchType*/ 13, MVT::v16i1,// ->433346
/*433333*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*433335*/                OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*433338*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v16i1, 2/*#Ops*/, 0, 1, 
                          // Src: (insert_subvector:{ *:[v16i1] } immAllZerosV:{ *:[v16i1] }, VK8:{ *:[v8i1] }<<P:Predicate_maskzeroupperv8i1>>:$src, 0:{ *:[iPTR] }) - Complexity = 13
                          // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } VK8:{ *:[v8i1] }:$src, VK16:{ *:[i32] })
/*433346*/              0, // EndSwitchType
/*433347*/            /*SwitchType*/ 39, MVT::v16i1,// ->433388
/*433349*/              OPC_CheckPredicate, 101, // Predicate_maskzeroupperv16i1
/*433351*/              OPC_MoveParent,
/*433352*/              OPC_CheckChild2Integer, 0, 
/*433354*/              OPC_CheckChild2Type, MVT::iPTR,
/*433356*/              OPC_SwitchType /*2 cases */, 13, MVT::v32i1,// ->433372
/*433359*/                OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*433361*/                OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/*433364*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v32i1, 2/*#Ops*/, 0, 1, 
                          // Src: (insert_subvector:{ *:[v32i1] } immAllZerosV:{ *:[v32i1] }, VK16:{ *:[v16i1] }<<P:Predicate_maskzeroupperv16i1>>:$src, 0:{ *:[iPTR] }) - Complexity = 13
                          // Dst: (COPY_TO_REGCLASS:{ *:[v32i1] } VK16:{ *:[v16i1] }:$src, VK32:{ *:[i32] })
/*433372*/              /*SwitchType*/ 13, MVT::v64i1,// ->433387
/*433374*/                OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*433376*/                OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/*433379*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v64i1, 2/*#Ops*/, 0, 1, 
                          // Src: (insert_subvector:{ *:[v64i1] } immAllZerosV:{ *:[v64i1] }, VK16:{ *:[v16i1] }<<P:Predicate_maskzeroupperv16i1>>:$src, 0:{ *:[iPTR] }) - Complexity = 13
                          // Dst: (COPY_TO_REGCLASS:{ *:[v64i1] } VK16:{ *:[v16i1] }:$src, VK64:{ *:[i32] })
/*433387*/              0, // EndSwitchType
/*433388*/            /*SwitchType*/ 22, MVT::v32i1,// ->433412
/*433390*/              OPC_CheckPredicate, 101, // Predicate_maskzeroupperv32i1
/*433392*/              OPC_MoveParent,
/*433393*/              OPC_CheckChild2Integer, 0, 
/*433395*/              OPC_CheckChild2Type, MVT::iPTR,
/*433397*/              OPC_CheckType, MVT::v64i1,
/*433399*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*433401*/              OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/*433404*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v64i1, 2/*#Ops*/, 0, 1, 
                        // Src: (insert_subvector:{ *:[v64i1] } immAllZerosV:{ *:[v64i1] }, VK32:{ *:[v32i1] }<<P:Predicate_maskzeroupperv32i1>>:$src, 0:{ *:[iPTR] }) - Complexity = 13
                        // Dst: (COPY_TO_REGCLASS:{ *:[v64i1] } VK32:{ *:[v32i1] }:$src, VK64:{ *:[i32] })
/*433412*/            /*SwitchType*/ 69, MVT::v2i1,// ->433483
/*433414*/              OPC_CheckPredicate, 101, // Predicate_maskzeroupperv2i1
/*433416*/              OPC_MoveParent,
/*433417*/              OPC_CheckChild2Integer, 0, 
/*433419*/              OPC_CheckChild2Type, MVT::iPTR,
/*433421*/              OPC_SwitchType /*4 cases */, 13, MVT::v8i1,// ->433437
/*433424*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*433426*/                OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*433429*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v8i1, 2/*#Ops*/, 0, 1, 
                          // Src: (insert_subvector:{ *:[v8i1] } immAllZerosV:{ *:[v8i1] }, VK2:{ *:[v2i1] }<<P:Predicate_maskzeroupperv2i1>>:$src, 0:{ *:[iPTR] }) - Complexity = 13
                          // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } VK2:{ *:[v2i1] }:$src, VK8:{ *:[i32] })
/*433437*/              /*SwitchType*/ 13, MVT::v16i1,// ->433452
/*433439*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*433441*/                OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*433444*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v16i1, 2/*#Ops*/, 0, 1, 
                          // Src: (insert_subvector:{ *:[v16i1] } immAllZerosV:{ *:[v16i1] }, VK2:{ *:[v2i1] }<<P:Predicate_maskzeroupperv2i1>>:$src, 0:{ *:[iPTR] }) - Complexity = 13
                          // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } VK2:{ *:[v2i1] }:$src, VK16:{ *:[i32] })
/*433452*/              /*SwitchType*/ 13, MVT::v32i1,// ->433467
/*433454*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*433456*/                OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/*433459*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v32i1, 2/*#Ops*/, 0, 1, 
                          // Src: (insert_subvector:{ *:[v32i1] } immAllZerosV:{ *:[v32i1] }, VK2:{ *:[v2i1] }<<P:Predicate_maskzeroupperv2i1>>:$src, 0:{ *:[iPTR] }) - Complexity = 13
                          // Dst: (COPY_TO_REGCLASS:{ *:[v32i1] } VK2:{ *:[v2i1] }:$src, VK32:{ *:[i32] })
/*433467*/              /*SwitchType*/ 13, MVT::v64i1,// ->433482
/*433469*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*433471*/                OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/*433474*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v64i1, 2/*#Ops*/, 0, 1, 
                          // Src: (insert_subvector:{ *:[v64i1] } immAllZerosV:{ *:[v64i1] }, VK2:{ *:[v2i1] }<<P:Predicate_maskzeroupperv2i1>>:$src, 0:{ *:[iPTR] }) - Complexity = 13
                          // Dst: (COPY_TO_REGCLASS:{ *:[v64i1] } VK2:{ *:[v2i1] }:$src, VK64:{ *:[i32] })
/*433482*/              0, // EndSwitchType
/*433483*/            /*SwitchType*/ 69, MVT::v4i1,// ->433554
/*433485*/              OPC_CheckPredicate, 101, // Predicate_maskzeroupperv4i1
/*433487*/              OPC_MoveParent,
/*433488*/              OPC_CheckChild2Integer, 0, 
/*433490*/              OPC_CheckChild2Type, MVT::iPTR,
/*433492*/              OPC_SwitchType /*4 cases */, 13, MVT::v8i1,// ->433508
/*433495*/                OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*433497*/                OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*433500*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v8i1, 2/*#Ops*/, 0, 1, 
                          // Src: (insert_subvector:{ *:[v8i1] } immAllZerosV:{ *:[v8i1] }, VK4:{ *:[v4i1] }<<P:Predicate_maskzeroupperv4i1>>:$src, 0:{ *:[iPTR] }) - Complexity = 13
                          // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } VK4:{ *:[v4i1] }:$src, VK8:{ *:[i32] })
/*433508*/              /*SwitchType*/ 13, MVT::v16i1,// ->433523
/*433510*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*433512*/                OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*433515*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v16i1, 2/*#Ops*/, 0, 1, 
                          // Src: (insert_subvector:{ *:[v16i1] } immAllZerosV:{ *:[v16i1] }, VK4:{ *:[v4i1] }<<P:Predicate_maskzeroupperv4i1>>:$src, 0:{ *:[iPTR] }) - Complexity = 13
                          // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } VK4:{ *:[v4i1] }:$src, VK16:{ *:[i32] })
/*433523*/              /*SwitchType*/ 13, MVT::v32i1,// ->433538
/*433525*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*433527*/                OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/*433530*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v32i1, 2/*#Ops*/, 0, 1, 
                          // Src: (insert_subvector:{ *:[v32i1] } immAllZerosV:{ *:[v32i1] }, VK4:{ *:[v4i1] }<<P:Predicate_maskzeroupperv4i1>>:$src, 0:{ *:[iPTR] }) - Complexity = 13
                          // Dst: (COPY_TO_REGCLASS:{ *:[v32i1] } VK4:{ *:[v4i1] }:$src, VK32:{ *:[i32] })
/*433538*/              /*SwitchType*/ 13, MVT::v64i1,// ->433553
/*433540*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*433542*/                OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/*433545*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v64i1, 2/*#Ops*/, 0, 1, 
                          // Src: (insert_subvector:{ *:[v64i1] } immAllZerosV:{ *:[v64i1] }, VK4:{ *:[v4i1] }<<P:Predicate_maskzeroupperv4i1>>:$src, 0:{ *:[iPTR] }) - Complexity = 13
                          // Dst: (COPY_TO_REGCLASS:{ *:[v64i1] } VK4:{ *:[v4i1] }:$src, VK64:{ *:[i32] })
/*433553*/              0, // EndSwitchType
/*433554*/            0, // EndSwitchType
/*433555*/          /*Scope*/ 27|128,11/*1435*/, /*->434992*/
/*433557*/            OPC_CheckChild2Integer, 0, 
/*433559*/            OPC_Scope, 92|128,1/*220*/, /*->433782*/ // 15 children in Scope
/*433562*/              OPC_CheckChild2Type, MVT::iPTR,
/*433564*/              OPC_SwitchType /*4 cases */, 52, MVT::v4i64,// ->433619
/*433567*/                OPC_Scope, 24, /*->433593*/ // 2 children in Scope
/*433569*/                  OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*433571*/                  OPC_EmitInteger, MVT::i64, 0, 
/*433574*/                  OPC_EmitNode1, TARGET_VAL(X86::VMOVDQArr), 0,
                                MVT::v2i64, 1/*#Ops*/, 0,  // Results = #2
/*433581*/                  OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*433584*/                  OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                                MVT::v4i64, 3/*#Ops*/, 1, 2, 3, 
                            // Src: (insert_subvector:{ *:[v4i64] } immAllZerosV:{ *:[v4i64] }, VR128:{ *:[v2i64] }:$src, 0:{ *:[iPTR] }) - Complexity = 12
                            // Dst: (SUBREG_TO_REG:{ *:[v4i64] } 0:{ *:[i64] }, (VMOVDQArr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src), sub_xmm:{ *:[i32] })
/*433593*/                /*Scope*/ 24, /*->433618*/
/*433594*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*433596*/                  OPC_EmitInteger, MVT::i64, 0, 
/*433599*/                  OPC_EmitNode1, TARGET_VAL(X86::VMOVDQA64Z128rr), 0,
                                MVT::v2i64, 1/*#Ops*/, 0,  // Results = #2
/*433606*/                  OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*433609*/                  OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                                MVT::v4i64, 3/*#Ops*/, 1, 2, 3, 
                            // Src: (insert_subvector:{ *:[v4i64] } immAllZerosV:{ *:[v4i64] }, VR128X:{ *:[v2i64] }:$src, 0:{ *:[iPTR] }) - Complexity = 12
                            // Dst: (SUBREG_TO_REG:{ *:[v4i64] } 0:{ *:[i64] }, (VMOVDQA64Z128rr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src), sub_xmm:{ *:[i32] })
/*433618*/                0, /*End of Scope*/
/*433619*/              /*SwitchType*/ 52, MVT::v8i32,// ->433673
/*433621*/                OPC_Scope, 24, /*->433647*/ // 2 children in Scope
/*433623*/                  OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*433625*/                  OPC_EmitInteger, MVT::i64, 0, 
/*433628*/                  OPC_EmitNode1, TARGET_VAL(X86::VMOVDQArr), 0,
                                MVT::v4i32, 1/*#Ops*/, 0,  // Results = #2
/*433635*/                  OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*433638*/                  OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                                MVT::v8i32, 3/*#Ops*/, 1, 2, 3, 
                            // Src: (insert_subvector:{ *:[v8i32] } immAllZerosV:{ *:[v8i32] }, VR128:{ *:[v4i32] }:$src, 0:{ *:[iPTR] }) - Complexity = 12
                            // Dst: (SUBREG_TO_REG:{ *:[v8i32] } 0:{ *:[i64] }, (VMOVDQArr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src), sub_xmm:{ *:[i32] })
/*433647*/                /*Scope*/ 24, /*->433672*/
/*433648*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*433650*/                  OPC_EmitInteger, MVT::i64, 0, 
/*433653*/                  OPC_EmitNode1, TARGET_VAL(X86::VMOVDQA64Z128rr), 0,
                                MVT::v4i32, 1/*#Ops*/, 0,  // Results = #2
/*433660*/                  OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*433663*/                  OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                                MVT::v8i32, 3/*#Ops*/, 1, 2, 3, 
                            // Src: (insert_subvector:{ *:[v8i32] } immAllZerosV:{ *:[v8i32] }, VR128X:{ *:[v4i32] }:$src, 0:{ *:[iPTR] }) - Complexity = 12
                            // Dst: (SUBREG_TO_REG:{ *:[v8i32] } 0:{ *:[i64] }, (VMOVDQA64Z128rr:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src), sub_xmm:{ *:[i32] })
/*433672*/                0, /*End of Scope*/
/*433673*/              /*SwitchType*/ 52, MVT::v16i16,// ->433727
/*433675*/                OPC_Scope, 24, /*->433701*/ // 2 children in Scope
/*433677*/                  OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*433679*/                  OPC_EmitInteger, MVT::i64, 0, 
/*433682*/                  OPC_EmitNode1, TARGET_VAL(X86::VMOVDQArr), 0,
                                MVT::v8i16, 1/*#Ops*/, 0,  // Results = #2
/*433689*/                  OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*433692*/                  OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                                MVT::v16i16, 3/*#Ops*/, 1, 2, 3, 
                            // Src: (insert_subvector:{ *:[v16i16] } immAllZerosV:{ *:[v16i16] }, VR128:{ *:[v8i16] }:$src, 0:{ *:[iPTR] }) - Complexity = 12
                            // Dst: (SUBREG_TO_REG:{ *:[v16i16] } 0:{ *:[i64] }, (VMOVDQArr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src), sub_xmm:{ *:[i32] })
/*433701*/                /*Scope*/ 24, /*->433726*/
/*433702*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*433704*/                  OPC_EmitInteger, MVT::i64, 0, 
/*433707*/                  OPC_EmitNode1, TARGET_VAL(X86::VMOVDQA64Z128rr), 0,
                                MVT::v8i16, 1/*#Ops*/, 0,  // Results = #2
/*433714*/                  OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*433717*/                  OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                                MVT::v16i16, 3/*#Ops*/, 1, 2, 3, 
                            // Src: (insert_subvector:{ *:[v16i16] } immAllZerosV:{ *:[v16i16] }, VR128X:{ *:[v8i16] }:$src, 0:{ *:[iPTR] }) - Complexity = 12
                            // Dst: (SUBREG_TO_REG:{ *:[v16i16] } 0:{ *:[i64] }, (VMOVDQA64Z128rr:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src), sub_xmm:{ *:[i32] })
/*433726*/                0, /*End of Scope*/
/*433727*/              /*SwitchType*/ 52, MVT::v32i8,// ->433781
/*433729*/                OPC_Scope, 24, /*->433755*/ // 2 children in Scope
/*433731*/                  OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*433733*/                  OPC_EmitInteger, MVT::i64, 0, 
/*433736*/                  OPC_EmitNode1, TARGET_VAL(X86::VMOVDQArr), 0,
                                MVT::v16i8, 1/*#Ops*/, 0,  // Results = #2
/*433743*/                  OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*433746*/                  OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                                MVT::v32i8, 3/*#Ops*/, 1, 2, 3, 
                            // Src: (insert_subvector:{ *:[v32i8] } immAllZerosV:{ *:[v32i8] }, VR128:{ *:[v16i8] }:$src, 0:{ *:[iPTR] }) - Complexity = 12
                            // Dst: (SUBREG_TO_REG:{ *:[v32i8] } 0:{ *:[i64] }, (VMOVDQArr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src), sub_xmm:{ *:[i32] })
/*433755*/                /*Scope*/ 24, /*->433780*/
/*433756*/                  OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*433758*/                  OPC_EmitInteger, MVT::i64, 0, 
/*433761*/                  OPC_EmitNode1, TARGET_VAL(X86::VMOVDQA64Z128rr), 0,
                                MVT::v16i8, 1/*#Ops*/, 0,  // Results = #2
/*433768*/                  OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*433771*/                  OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                                MVT::v32i8, 3/*#Ops*/, 1, 2, 3, 
                            // Src: (insert_subvector:{ *:[v32i8] } immAllZerosV:{ *:[v32i8] }, VR128X:{ *:[v16i8] }:$src, 0:{ *:[iPTR] }) - Complexity = 12
                            // Dst: (SUBREG_TO_REG:{ *:[v32i8] } 0:{ *:[i64] }, (VMOVDQA64Z128rr:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src), sub_xmm:{ *:[i32] })
/*433780*/                0, /*End of Scope*/
/*433781*/              0, // EndSwitchType
/*433782*/            /*Scope*/ 58, /*->433841*/
/*433783*/              OPC_CheckChild1Type, MVT::v2i64,
/*433785*/              OPC_CheckChild2Type, MVT::iPTR,
/*433787*/              OPC_CheckType, MVT::v8i64,
/*433789*/              OPC_Scope, 24, /*->433815*/ // 2 children in Scope
/*433791*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*433793*/                OPC_EmitInteger, MVT::i64, 0, 
/*433796*/                OPC_EmitNode1, TARGET_VAL(X86::VMOVDQA64Z128rr), 0,
                              MVT::v2i64, 1/*#Ops*/, 0,  // Results = #2
/*433803*/                OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*433806*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                              MVT::v8i64, 3/*#Ops*/, 1, 2, 3, 
                          // Src: (insert_subvector:{ *:[v8i64] } immAllZerosV:{ *:[v8i64] }, VR128X:{ *:[v2i64] }:$src, 0:{ *:[iPTR] }) - Complexity = 12
                          // Dst: (SUBREG_TO_REG:{ *:[v8i64] } 0:{ *:[i64] }, (VMOVDQA64Z128rr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src), sub_xmm:{ *:[i32] })
/*433815*/              /*Scope*/ 24, /*->433840*/
/*433816*/                OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*433818*/                OPC_EmitInteger, MVT::i64, 0, 
/*433821*/                OPC_EmitNode1, TARGET_VAL(X86::VMOVDQArr), 0,
                              MVT::v2i64, 1/*#Ops*/, 0,  // Results = #2
/*433828*/                OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*433831*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                              MVT::v8i64, 3/*#Ops*/, 1, 2, 3, 
                          // Src: (insert_subvector:{ *:[v8i64] } immAllZerosV:{ *:[v8i64] }, VR128:{ *:[v2i64] }:$src, 0:{ *:[iPTR] }) - Complexity = 12
                          // Dst: (SUBREG_TO_REG:{ *:[v8i64] } 0:{ *:[i64] }, (VMOVDQArr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src), sub_xmm:{ *:[i32] })
/*433840*/              0, /*End of Scope*/
/*433841*/            /*Scope*/ 58, /*->433900*/
/*433842*/              OPC_CheckChild1Type, MVT::v4i32,
/*433844*/              OPC_CheckChild2Type, MVT::iPTR,
/*433846*/              OPC_CheckType, MVT::v16i32,
/*433848*/              OPC_Scope, 24, /*->433874*/ // 2 children in Scope
/*433850*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*433852*/                OPC_EmitInteger, MVT::i64, 0, 
/*433855*/                OPC_EmitNode1, TARGET_VAL(X86::VMOVDQA64Z128rr), 0,
                              MVT::v4i32, 1/*#Ops*/, 0,  // Results = #2
/*433862*/                OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*433865*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                              MVT::v16i32, 3/*#Ops*/, 1, 2, 3, 
                          // Src: (insert_subvector:{ *:[v16i32] } immAllZerosV:{ *:[v16i32] }, VR128X:{ *:[v4i32] }:$src, 0:{ *:[iPTR] }) - Complexity = 12
                          // Dst: (SUBREG_TO_REG:{ *:[v16i32] } 0:{ *:[i64] }, (VMOVDQA64Z128rr:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src), sub_xmm:{ *:[i32] })
/*433874*/              /*Scope*/ 24, /*->433899*/
/*433875*/                OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*433877*/                OPC_EmitInteger, MVT::i64, 0, 
/*433880*/                OPC_EmitNode1, TARGET_VAL(X86::VMOVDQArr), 0,
                              MVT::v4i32, 1/*#Ops*/, 0,  // Results = #2
/*433887*/                OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*433890*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                              MVT::v16i32, 3/*#Ops*/, 1, 2, 3, 
                          // Src: (insert_subvector:{ *:[v16i32] } immAllZerosV:{ *:[v16i32] }, VR128:{ *:[v4i32] }:$src, 0:{ *:[iPTR] }) - Complexity = 12
                          // Dst: (SUBREG_TO_REG:{ *:[v16i32] } 0:{ *:[i64] }, (VMOVDQArr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src), sub_xmm:{ *:[i32] })
/*433899*/              0, /*End of Scope*/
/*433900*/            /*Scope*/ 58, /*->433959*/
/*433901*/              OPC_CheckChild1Type, MVT::v8i16,
/*433903*/              OPC_CheckChild2Type, MVT::iPTR,
/*433905*/              OPC_CheckType, MVT::v32i16,
/*433907*/              OPC_Scope, 24, /*->433933*/ // 2 children in Scope
/*433909*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*433911*/                OPC_EmitInteger, MVT::i64, 0, 
/*433914*/                OPC_EmitNode1, TARGET_VAL(X86::VMOVDQA64Z128rr), 0,
                              MVT::v8i16, 1/*#Ops*/, 0,  // Results = #2
/*433921*/                OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*433924*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                              MVT::v32i16, 3/*#Ops*/, 1, 2, 3, 
                          // Src: (insert_subvector:{ *:[v32i16] } immAllZerosV:{ *:[v32i16] }, VR128X:{ *:[v8i16] }:$src, 0:{ *:[iPTR] }) - Complexity = 12
                          // Dst: (SUBREG_TO_REG:{ *:[v32i16] } 0:{ *:[i64] }, (VMOVDQA64Z128rr:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src), sub_xmm:{ *:[i32] })
/*433933*/              /*Scope*/ 24, /*->433958*/
/*433934*/                OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*433936*/                OPC_EmitInteger, MVT::i64, 0, 
/*433939*/                OPC_EmitNode1, TARGET_VAL(X86::VMOVDQArr), 0,
                              MVT::v8i16, 1/*#Ops*/, 0,  // Results = #2
/*433946*/                OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*433949*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                              MVT::v32i16, 3/*#Ops*/, 1, 2, 3, 
                          // Src: (insert_subvector:{ *:[v32i16] } immAllZerosV:{ *:[v32i16] }, VR128:{ *:[v8i16] }:$src, 0:{ *:[iPTR] }) - Complexity = 12
                          // Dst: (SUBREG_TO_REG:{ *:[v32i16] } 0:{ *:[i64] }, (VMOVDQArr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src), sub_xmm:{ *:[i32] })
/*433958*/              0, /*End of Scope*/
/*433959*/            /*Scope*/ 58, /*->434018*/
/*433960*/              OPC_CheckChild1Type, MVT::v16i8,
/*433962*/              OPC_CheckChild2Type, MVT::iPTR,
/*433964*/              OPC_CheckType, MVT::v64i8,
/*433966*/              OPC_Scope, 24, /*->433992*/ // 2 children in Scope
/*433968*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*433970*/                OPC_EmitInteger, MVT::i64, 0, 
/*433973*/                OPC_EmitNode1, TARGET_VAL(X86::VMOVDQA64Z128rr), 0,
                              MVT::v16i8, 1/*#Ops*/, 0,  // Results = #2
/*433980*/                OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*433983*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                              MVT::v64i8, 3/*#Ops*/, 1, 2, 3, 
                          // Src: (insert_subvector:{ *:[v64i8] } immAllZerosV:{ *:[v64i8] }, VR128X:{ *:[v16i8] }:$src, 0:{ *:[iPTR] }) - Complexity = 12
                          // Dst: (SUBREG_TO_REG:{ *:[v64i8] } 0:{ *:[i64] }, (VMOVDQA64Z128rr:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src), sub_xmm:{ *:[i32] })
/*433992*/              /*Scope*/ 24, /*->434017*/
/*433993*/                OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*433995*/                OPC_EmitInteger, MVT::i64, 0, 
/*433998*/                OPC_EmitNode1, TARGET_VAL(X86::VMOVDQArr), 0,
                              MVT::v16i8, 1/*#Ops*/, 0,  // Results = #2
/*434005*/                OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*434008*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                              MVT::v64i8, 3/*#Ops*/, 1, 2, 3, 
                          // Src: (insert_subvector:{ *:[v64i8] } immAllZerosV:{ *:[v64i8] }, VR128:{ *:[v16i8] }:$src, 0:{ *:[iPTR] }) - Complexity = 12
                          // Dst: (SUBREG_TO_REG:{ *:[v64i8] } 0:{ *:[i64] }, (VMOVDQArr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src), sub_xmm:{ *:[i32] })
/*434017*/              0, /*End of Scope*/
/*434018*/            /*Scope*/ 58, /*->434077*/
/*434019*/              OPC_CheckChild1Type, MVT::v4i64,
/*434021*/              OPC_CheckChild2Type, MVT::iPTR,
/*434023*/              OPC_CheckType, MVT::v8i64,
/*434025*/              OPC_Scope, 24, /*->434051*/ // 2 children in Scope
/*434027*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*434029*/                OPC_EmitInteger, MVT::i64, 0, 
/*434032*/                OPC_EmitNode1, TARGET_VAL(X86::VMOVDQA64Z256rr), 0,
                              MVT::v4i64, 1/*#Ops*/, 0,  // Results = #2
/*434039*/                OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*434042*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                              MVT::v8i64, 3/*#Ops*/, 1, 2, 3, 
                          // Src: (insert_subvector:{ *:[v8i64] } immAllZerosV:{ *:[v8i64] }, VR256X:{ *:[v4i64] }:$src, 0:{ *:[iPTR] }) - Complexity = 12
                          // Dst: (SUBREG_TO_REG:{ *:[v8i64] } 0:{ *:[i64] }, (VMOVDQA64Z256rr:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src), sub_ymm:{ *:[i32] })
/*434051*/              /*Scope*/ 24, /*->434076*/
/*434052*/                OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*434054*/                OPC_EmitInteger, MVT::i64, 0, 
/*434057*/                OPC_EmitNode1, TARGET_VAL(X86::VMOVDQAYrr), 0,
                              MVT::v4i64, 1/*#Ops*/, 0,  // Results = #2
/*434064*/                OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*434067*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                              MVT::v8i64, 3/*#Ops*/, 1, 2, 3, 
                          // Src: (insert_subvector:{ *:[v8i64] } immAllZerosV:{ *:[v8i64] }, VR256:{ *:[v4i64] }:$src, 0:{ *:[iPTR] }) - Complexity = 12
                          // Dst: (SUBREG_TO_REG:{ *:[v8i64] } 0:{ *:[i64] }, (VMOVDQAYrr:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src), sub_ymm:{ *:[i32] })
/*434076*/              0, /*End of Scope*/
/*434077*/            /*Scope*/ 58, /*->434136*/
/*434078*/              OPC_CheckChild1Type, MVT::v8i32,
/*434080*/              OPC_CheckChild2Type, MVT::iPTR,
/*434082*/              OPC_CheckType, MVT::v16i32,
/*434084*/              OPC_Scope, 24, /*->434110*/ // 2 children in Scope
/*434086*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*434088*/                OPC_EmitInteger, MVT::i64, 0, 
/*434091*/                OPC_EmitNode1, TARGET_VAL(X86::VMOVDQA64Z256rr), 0,
                              MVT::v8i32, 1/*#Ops*/, 0,  // Results = #2
/*434098*/                OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*434101*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                              MVT::v16i32, 3/*#Ops*/, 1, 2, 3, 
                          // Src: (insert_subvector:{ *:[v16i32] } immAllZerosV:{ *:[v16i32] }, VR256X:{ *:[v8i32] }:$src, 0:{ *:[iPTR] }) - Complexity = 12
                          // Dst: (SUBREG_TO_REG:{ *:[v16i32] } 0:{ *:[i64] }, (VMOVDQA64Z256rr:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src), sub_ymm:{ *:[i32] })
/*434110*/              /*Scope*/ 24, /*->434135*/
/*434111*/                OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*434113*/                OPC_EmitInteger, MVT::i64, 0, 
/*434116*/                OPC_EmitNode1, TARGET_VAL(X86::VMOVDQAYrr), 0,
                              MVT::v8i32, 1/*#Ops*/, 0,  // Results = #2
/*434123*/                OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*434126*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                              MVT::v16i32, 3/*#Ops*/, 1, 2, 3, 
                          // Src: (insert_subvector:{ *:[v16i32] } immAllZerosV:{ *:[v16i32] }, VR256:{ *:[v8i32] }:$src, 0:{ *:[iPTR] }) - Complexity = 12
                          // Dst: (SUBREG_TO_REG:{ *:[v16i32] } 0:{ *:[i64] }, (VMOVDQAYrr:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src), sub_ymm:{ *:[i32] })
/*434135*/              0, /*End of Scope*/
/*434136*/            /*Scope*/ 58, /*->434195*/
/*434137*/              OPC_CheckChild1Type, MVT::v16i16,
/*434139*/              OPC_CheckChild2Type, MVT::iPTR,
/*434141*/              OPC_CheckType, MVT::v32i16,
/*434143*/              OPC_Scope, 24, /*->434169*/ // 2 children in Scope
/*434145*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*434147*/                OPC_EmitInteger, MVT::i64, 0, 
/*434150*/                OPC_EmitNode1, TARGET_VAL(X86::VMOVDQA64Z256rr), 0,
                              MVT::v16i16, 1/*#Ops*/, 0,  // Results = #2
/*434157*/                OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*434160*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                              MVT::v32i16, 3/*#Ops*/, 1, 2, 3, 
                          // Src: (insert_subvector:{ *:[v32i16] } immAllZerosV:{ *:[v32i16] }, VR256X:{ *:[v16i16] }:$src, 0:{ *:[iPTR] }) - Complexity = 12
                          // Dst: (SUBREG_TO_REG:{ *:[v32i16] } 0:{ *:[i64] }, (VMOVDQA64Z256rr:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src), sub_ymm:{ *:[i32] })
/*434169*/              /*Scope*/ 24, /*->434194*/
/*434170*/                OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*434172*/                OPC_EmitInteger, MVT::i64, 0, 
/*434175*/                OPC_EmitNode1, TARGET_VAL(X86::VMOVDQAYrr), 0,
                              MVT::v16i16, 1/*#Ops*/, 0,  // Results = #2
/*434182*/                OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*434185*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                              MVT::v32i16, 3/*#Ops*/, 1, 2, 3, 
                          // Src: (insert_subvector:{ *:[v32i16] } immAllZerosV:{ *:[v32i16] }, VR256:{ *:[v16i16] }:$src, 0:{ *:[iPTR] }) - Complexity = 12
                          // Dst: (SUBREG_TO_REG:{ *:[v32i16] } 0:{ *:[i64] }, (VMOVDQAYrr:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src), sub_ymm:{ *:[i32] })
/*434194*/              0, /*End of Scope*/
/*434195*/            /*Scope*/ 58, /*->434254*/
/*434196*/              OPC_CheckChild1Type, MVT::v32i8,
/*434198*/              OPC_CheckChild2Type, MVT::iPTR,
/*434200*/              OPC_CheckType, MVT::v64i8,
/*434202*/              OPC_Scope, 24, /*->434228*/ // 2 children in Scope
/*434204*/                OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*434206*/                OPC_EmitInteger, MVT::i64, 0, 
/*434209*/                OPC_EmitNode1, TARGET_VAL(X86::VMOVDQA64Z256rr), 0,
                              MVT::v32i8, 1/*#Ops*/, 0,  // Results = #2
/*434216*/                OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*434219*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                              MVT::v64i8, 3/*#Ops*/, 1, 2, 3, 
                          // Src: (insert_subvector:{ *:[v64i8] } immAllZerosV:{ *:[v64i8] }, VR256X:{ *:[v32i8] }:$src, 0:{ *:[iPTR] }) - Complexity = 12
                          // Dst: (SUBREG_TO_REG:{ *:[v64i8] } 0:{ *:[i64] }, (VMOVDQA64Z256rr:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src), sub_ymm:{ *:[i32] })
/*434228*/              /*Scope*/ 24, /*->434253*/
/*434229*/                OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*434231*/                OPC_EmitInteger, MVT::i64, 0, 
/*434234*/                OPC_EmitNode1, TARGET_VAL(X86::VMOVDQAYrr), 0,
                              MVT::v32i8, 1/*#Ops*/, 0,  // Results = #2
/*434241*/                OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*434244*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                              MVT::v64i8, 3/*#Ops*/, 1, 2, 3, 
                          // Src: (insert_subvector:{ *:[v64i8] } immAllZerosV:{ *:[v64i8] }, VR256:{ *:[v32i8] }:$src, 0:{ *:[iPTR] }) - Complexity = 12
                          // Dst: (SUBREG_TO_REG:{ *:[v64i8] } 0:{ *:[i64] }, (VMOVDQAYrr:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src), sub_ymm:{ *:[i32] })
/*434253*/              0, /*End of Scope*/
/*434254*/            /*Scope*/ 61|128,1/*189*/, /*->434445*/
/*434256*/              OPC_CheckChild1Type, MVT::v8i1,
/*434258*/              OPC_CheckChild2Type, MVT::iPTR,
/*434260*/              OPC_SwitchType /*3 cases */, 59, MVT::v16i1,// ->434322
/*434263*/                OPC_Scope, 20, /*->434285*/ // 2 children in Scope
/*434265*/                  OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*434267*/                  OPC_EmitNode1, TARGET_VAL(X86::KMOVBkk), 0,
                                MVT::v8i1, 1/*#Ops*/, 0,  // Results = #1
/*434274*/                  OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*434277*/                  OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v16i1, 2/*#Ops*/, 1, 2, 
                            // Src: (insert_subvector:{ *:[v16i1] } immAllZerosV:{ *:[v16i1] }, VK8:{ *:[v8i1] }:$mask, 0:{ *:[iPTR] }) - Complexity = 12
                            // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } (KMOVBkk:{ *:[v8i1] } VK8:{ *:[v8i1] }:$mask), VK16:{ *:[i32] })
/*434285*/                /*Scope*/ 35, /*->434321*/
/*434286*/                  OPC_CheckPatternPredicate, 150, // (Subtarget->hasAVX512()) && (!Subtarget->hasDQI())
/*434288*/                  OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*434291*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v16i1, 2/*#Ops*/, 0, 1,  // Results = #2
/*434299*/                  OPC_EmitInteger, MVT::i8, 8, 
/*434302*/                  OPC_EmitNode1, TARGET_VAL(X86::KSHIFTLWri), 0,
                                MVT::v16i1, 2/*#Ops*/, 2, 3,  // Results = #4
/*434310*/                  OPC_EmitInteger, MVT::i8, 8, 
/*434313*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::KSHIFTRWri), 0,
                                MVT::v16i1, 2/*#Ops*/, 4, 5, 
                            // Src: (insert_subvector:{ *:[v16i1] } immAllZerosV:{ *:[v16i1] }, 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] })
/*434321*/                0, /*End of Scope*/
/*434322*/              /*SwitchType*/ 59, MVT::v32i1,// ->434383
/*434324*/                OPC_Scope, 20, /*->434346*/ // 2 children in Scope
/*434326*/                  OPC_CheckPatternPredicate, 190, // (Subtarget->hasBWI()) && (Subtarget->hasDQI())
/*434328*/                  OPC_EmitNode1, TARGET_VAL(X86::KMOVBkk), 0,
                                MVT::v8i1, 1/*#Ops*/, 0,  // Results = #1
/*434335*/                  OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/*434338*/                  OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v32i1, 2/*#Ops*/, 1, 2, 
                            // Src: (insert_subvector:{ *:[v32i1] } immAllZerosV:{ *:[v32i1] }, VK8:{ *:[v8i1] }:$mask, 0:{ *:[iPTR] }) - Complexity = 12
                            // Dst: (COPY_TO_REGCLASS:{ *:[v32i1] } (KMOVBkk:{ *:[v8i1] } VK8:{ *:[v8i1] }:$mask), VK32:{ *:[i32] })
/*434346*/                /*Scope*/ 35, /*->434382*/
/*434347*/                  OPC_CheckPatternPredicate, 191, // (Subtarget->hasBWI()) && (!Subtarget->hasDQI())
/*434349*/                  OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/*434352*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v32i1, 2/*#Ops*/, 0, 1,  // Results = #2
/*434360*/                  OPC_EmitInteger, MVT::i8, 24, 
/*434363*/                  OPC_EmitNode1, TARGET_VAL(X86::KSHIFTLDri), 0,
                                MVT::v32i1, 2/*#Ops*/, 2, 3,  // Results = #4
/*434371*/                  OPC_EmitInteger, MVT::i8, 24, 
/*434374*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::KSHIFTRDri), 0,
                                MVT::v32i1, 2/*#Ops*/, 4, 5, 
                            // Src: (insert_subvector:{ *:[v32i1] } immAllZerosV:{ *:[v32i1] }, 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] })
/*434382*/                0, /*End of Scope*/
/*434383*/              /*SwitchType*/ 59, MVT::v64i1,// ->434444
/*434385*/                OPC_Scope, 20, /*->434407*/ // 2 children in Scope
/*434387*/                  OPC_CheckPatternPredicate, 190, // (Subtarget->hasBWI()) && (Subtarget->hasDQI())
/*434389*/                  OPC_EmitNode1, TARGET_VAL(X86::KMOVBkk), 0,
                                MVT::v8i1, 1/*#Ops*/, 0,  // Results = #1
/*434396*/                  OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/*434399*/                  OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v64i1, 2/*#Ops*/, 1, 2, 
                            // Src: (insert_subvector:{ *:[v64i1] } immAllZerosV:{ *:[v64i1] }, VK8:{ *:[v8i1] }:$mask, 0:{ *:[iPTR] }) - Complexity = 12
                            // Dst: (COPY_TO_REGCLASS:{ *:[v64i1] } (KMOVBkk:{ *:[v8i1] } VK8:{ *:[v8i1] }:$mask), VK64:{ *:[i32] })
/*434407*/                /*Scope*/ 35, /*->434443*/
/*434408*/                  OPC_CheckPatternPredicate, 191, // (Subtarget->hasBWI()) && (!Subtarget->hasDQI())
/*434410*/                  OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/*434413*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v64i1, 2/*#Ops*/, 0, 1,  // Results = #2
/*434421*/                  OPC_EmitInteger, MVT::i8, 56, 
/*434424*/                  OPC_EmitNode1, TARGET_VAL(X86::KSHIFTLQri), 0,
                                MVT::v64i1, 2/*#Ops*/, 2, 3,  // Results = #4
/*434432*/                  OPC_EmitInteger, MVT::i8, 56, 
/*434435*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::KSHIFTRQri), 0,
                                MVT::v64i1, 2/*#Ops*/, 4, 5, 
                            // Src: (insert_subvector:{ *:[v64i1] } immAllZerosV:{ *:[v64i1] }, 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] })
/*434443*/                0, /*End of Scope*/
/*434444*/              0, // EndSwitchType
/*434445*/            /*Scope*/ 50, /*->434496*/
/*434446*/              OPC_CheckChild1Type, MVT::v16i1,
/*434448*/              OPC_CheckChild2Type, MVT::iPTR,
/*434450*/              OPC_SwitchType /*2 cases */, 20, MVT::v32i1,// ->434473
/*434453*/                OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*434455*/                OPC_EmitNode1, TARGET_VAL(X86::KMOVWkk), 0,
                              MVT::v16i1, 1/*#Ops*/, 0,  // Results = #1
/*434462*/                OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/*434465*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v32i1, 2/*#Ops*/, 1, 2, 
                          // Src: (insert_subvector:{ *:[v32i1] } immAllZerosV:{ *:[v32i1] }, VK16:{ *:[v16i1] }:$mask, 0:{ *:[iPTR] }) - Complexity = 12
                          // Dst: (COPY_TO_REGCLASS:{ *:[v32i1] } (KMOVWkk:{ *:[v16i1] } VK16:{ *:[v16i1] }:$mask), VK32:{ *:[i32] })
/*434473*/              /*SwitchType*/ 20, MVT::v64i1,// ->434495
/*434475*/                OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*434477*/                OPC_EmitNode1, TARGET_VAL(X86::KMOVWkk), 0,
                              MVT::v16i1, 1/*#Ops*/, 0,  // Results = #1
/*434484*/                OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/*434487*/                OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v64i1, 2/*#Ops*/, 1, 2, 
                          // Src: (insert_subvector:{ *:[v64i1] } immAllZerosV:{ *:[v64i1] }, VK16:{ *:[v16i1] }:$mask, 0:{ *:[iPTR] }) - Complexity = 12
                          // Dst: (COPY_TO_REGCLASS:{ *:[v64i1] } (KMOVWkk:{ *:[v16i1] } VK16:{ *:[v16i1] }:$mask), VK64:{ *:[i32] })
/*434495*/              0, // EndSwitchType
/*434496*/            /*Scope*/ 26, /*->434523*/
/*434497*/              OPC_CheckChild1Type, MVT::v32i1,
/*434499*/              OPC_CheckChild2Type, MVT::iPTR,
/*434501*/              OPC_CheckType, MVT::v64i1,
/*434503*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*434505*/              OPC_EmitNode1, TARGET_VAL(X86::KMOVDkk), 0,
                            MVT::v32i1, 1/*#Ops*/, 0,  // Results = #1
/*434512*/              OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/*434515*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v64i1, 2/*#Ops*/, 1, 2, 
                        // Src: (insert_subvector:{ *:[v64i1] } immAllZerosV:{ *:[v64i1] }, VK32:{ *:[v32i1] }:$mask, 0:{ *:[iPTR] }) - Complexity = 12
                        // Dst: (COPY_TO_REGCLASS:{ *:[v64i1] } (KMOVDkk:{ *:[v32i1] } VK32:{ *:[v32i1] }:$mask), VK64:{ *:[i32] })
/*434523*/            /*Scope*/ 26|128,1/*154*/, /*->434679*/
/*434525*/              OPC_CheckChild1Type, MVT::v1i1,
/*434527*/              OPC_CheckChild2Type, MVT::iPTR,
/*434529*/              OPC_SwitchType /*4 cases */, 35, MVT::v16i1,// ->434567
/*434532*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*434534*/                OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*434537*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v16i1, 2/*#Ops*/, 0, 1,  // Results = #2
/*434545*/                OPC_EmitInteger, MVT::i8, 15, 
/*434548*/                OPC_EmitNode1, TARGET_VAL(X86::KSHIFTLWri), 0,
                              MVT::v16i1, 2/*#Ops*/, 2, 3,  // Results = #4
/*434556*/                OPC_EmitInteger, MVT::i8, 15, 
/*434559*/                OPC_MorphNodeTo1, TARGET_VAL(X86::KSHIFTRWri), 0,
                              MVT::v16i1, 2/*#Ops*/, 4, 5, 
                          // Src: (insert_subvector:{ *:[v16i1] } immAllZerosV:{ *:[v16i1] }, 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] })
/*434567*/              /*SwitchType*/ 35, MVT::v8i1,// ->434604
/*434569*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*434571*/                OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*434574*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v8i1, 2/*#Ops*/, 0, 1,  // Results = #2
/*434582*/                OPC_EmitInteger, MVT::i8, 7, 
/*434585*/                OPC_EmitNode1, TARGET_VAL(X86::KSHIFTLBri), 0,
                              MVT::v8i1, 2/*#Ops*/, 2, 3,  // Results = #4
/*434593*/                OPC_EmitInteger, MVT::i8, 7, 
/*434596*/                OPC_MorphNodeTo1, TARGET_VAL(X86::KSHIFTRBri), 0,
                              MVT::v8i1, 2/*#Ops*/, 4, 5, 
                          // Src: (insert_subvector:{ *:[v8i1] } immAllZerosV:{ *:[v8i1] }, 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] })
/*434604*/              /*SwitchType*/ 35, MVT::v32i1,// ->434641
/*434606*/                OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*434608*/                OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/*434611*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v32i1, 2/*#Ops*/, 0, 1,  // Results = #2
/*434619*/                OPC_EmitInteger, MVT::i8, 31, 
/*434622*/                OPC_EmitNode1, TARGET_VAL(X86::KSHIFTLDri), 0,
                              MVT::v32i1, 2/*#Ops*/, 2, 3,  // Results = #4
/*434630*/                OPC_EmitInteger, MVT::i8, 31, 
/*434633*/                OPC_MorphNodeTo1, TARGET_VAL(X86::KSHIFTRDri), 0,
                              MVT::v32i1, 2/*#Ops*/, 4, 5, 
                          // Src: (insert_subvector:{ *:[v32i1] } immAllZerosV:{ *:[v32i1] }, 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] })
/*434641*/              /*SwitchType*/ 35, MVT::v64i1,// ->434678
/*434643*/                OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*434645*/                OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/*434648*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v64i1, 2/*#Ops*/, 0, 1,  // Results = #2
/*434656*/                OPC_EmitInteger, MVT::i8, 63, 
/*434659*/                OPC_EmitNode1, TARGET_VAL(X86::KSHIFTLQri), 0,
                              MVT::v64i1, 2/*#Ops*/, 2, 3,  // Results = #4
/*434667*/                OPC_EmitInteger, MVT::i8, 63, 
/*434670*/                OPC_MorphNodeTo1, TARGET_VAL(X86::KSHIFTRQri), 0,
                              MVT::v64i1, 2/*#Ops*/, 4, 5, 
                          // Src: (insert_subvector:{ *:[v64i1] } immAllZerosV:{ *:[v64i1] }, 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] })
/*434678*/              0, // EndSwitchType
/*434679*/            /*Scope*/ 26|128,1/*154*/, /*->434835*/
/*434681*/              OPC_CheckChild1Type, MVT::v2i1,
/*434683*/              OPC_CheckChild2Type, MVT::iPTR,
/*434685*/              OPC_SwitchType /*4 cases */, 35, MVT::v16i1,// ->434723
/*434688*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*434690*/                OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*434693*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v16i1, 2/*#Ops*/, 0, 1,  // Results = #2
/*434701*/                OPC_EmitInteger, MVT::i8, 14, 
/*434704*/                OPC_EmitNode1, TARGET_VAL(X86::KSHIFTLWri), 0,
                              MVT::v16i1, 2/*#Ops*/, 2, 3,  // Results = #4
/*434712*/                OPC_EmitInteger, MVT::i8, 14, 
/*434715*/                OPC_MorphNodeTo1, TARGET_VAL(X86::KSHIFTRWri), 0,
                              MVT::v16i1, 2/*#Ops*/, 4, 5, 
                          // Src: (insert_subvector:{ *:[v16i1] } immAllZerosV:{ *:[v16i1] }, 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] })
/*434723*/              /*SwitchType*/ 35, MVT::v8i1,// ->434760
/*434725*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*434727*/                OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*434730*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v8i1, 2/*#Ops*/, 0, 1,  // Results = #2
/*434738*/                OPC_EmitInteger, MVT::i8, 6, 
/*434741*/                OPC_EmitNode1, TARGET_VAL(X86::KSHIFTLBri), 0,
                              MVT::v8i1, 2/*#Ops*/, 2, 3,  // Results = #4
/*434749*/                OPC_EmitInteger, MVT::i8, 6, 
/*434752*/                OPC_MorphNodeTo1, TARGET_VAL(X86::KSHIFTRBri), 0,
                              MVT::v8i1, 2/*#Ops*/, 4, 5, 
                          // Src: (insert_subvector:{ *:[v8i1] } immAllZerosV:{ *:[v8i1] }, 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] })
/*434760*/              /*SwitchType*/ 35, MVT::v32i1,// ->434797
/*434762*/                OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*434764*/                OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/*434767*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v32i1, 2/*#Ops*/, 0, 1,  // Results = #2
/*434775*/                OPC_EmitInteger, MVT::i8, 30, 
/*434778*/                OPC_EmitNode1, TARGET_VAL(X86::KSHIFTLDri), 0,
                              MVT::v32i1, 2/*#Ops*/, 2, 3,  // Results = #4
/*434786*/                OPC_EmitInteger, MVT::i8, 30, 
/*434789*/                OPC_MorphNodeTo1, TARGET_VAL(X86::KSHIFTRDri), 0,
                              MVT::v32i1, 2/*#Ops*/, 4, 5, 
                          // Src: (insert_subvector:{ *:[v32i1] } immAllZerosV:{ *:[v32i1] }, 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] })
/*434797*/              /*SwitchType*/ 35, MVT::v64i1,// ->434834
/*434799*/                OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*434801*/                OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/*434804*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v64i1, 2/*#Ops*/, 0, 1,  // Results = #2
/*434812*/                OPC_EmitInteger, MVT::i8, 62, 
/*434815*/                OPC_EmitNode1, TARGET_VAL(X86::KSHIFTLQri), 0,
                              MVT::v64i1, 2/*#Ops*/, 2, 3,  // Results = #4
/*434823*/                OPC_EmitInteger, MVT::i8, 62, 
/*434826*/                OPC_MorphNodeTo1, TARGET_VAL(X86::KSHIFTRQri), 0,
                              MVT::v64i1, 2/*#Ops*/, 4, 5, 
                          // Src: (insert_subvector:{ *:[v64i1] } immAllZerosV:{ *:[v64i1] }, 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] })
/*434834*/              0, // EndSwitchType
/*434835*/            /*Scope*/ 26|128,1/*154*/, /*->434991*/
/*434837*/              OPC_CheckChild1Type, MVT::v4i1,
/*434839*/              OPC_CheckChild2Type, MVT::iPTR,
/*434841*/              OPC_SwitchType /*4 cases */, 35, MVT::v16i1,// ->434879
/*434844*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*434846*/                OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*434849*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v16i1, 2/*#Ops*/, 0, 1,  // Results = #2
/*434857*/                OPC_EmitInteger, MVT::i8, 12, 
/*434860*/                OPC_EmitNode1, TARGET_VAL(X86::KSHIFTLWri), 0,
                              MVT::v16i1, 2/*#Ops*/, 2, 3,  // Results = #4
/*434868*/                OPC_EmitInteger, MVT::i8, 12, 
/*434871*/                OPC_MorphNodeTo1, TARGET_VAL(X86::KSHIFTRWri), 0,
                              MVT::v16i1, 2/*#Ops*/, 4, 5, 
                          // Src: (insert_subvector:{ *:[v16i1] } immAllZerosV:{ *:[v16i1] }, 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] })
/*434879*/              /*SwitchType*/ 35, MVT::v8i1,// ->434916
/*434881*/                OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*434883*/                OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*434886*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v8i1, 2/*#Ops*/, 0, 1,  // Results = #2
/*434894*/                OPC_EmitInteger, MVT::i8, 4, 
/*434897*/                OPC_EmitNode1, TARGET_VAL(X86::KSHIFTLBri), 0,
                              MVT::v8i1, 2/*#Ops*/, 2, 3,  // Results = #4
/*434905*/                OPC_EmitInteger, MVT::i8, 4, 
/*434908*/                OPC_MorphNodeTo1, TARGET_VAL(X86::KSHIFTRBri), 0,
                              MVT::v8i1, 2/*#Ops*/, 4, 5, 
                          // Src: (insert_subvector:{ *:[v8i1] } immAllZerosV:{ *:[v8i1] }, 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] })
/*434916*/              /*SwitchType*/ 35, MVT::v32i1,// ->434953
/*434918*/                OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*434920*/                OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/*434923*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v32i1, 2/*#Ops*/, 0, 1,  // Results = #2
/*434931*/                OPC_EmitInteger, MVT::i8, 28, 
/*434934*/                OPC_EmitNode1, TARGET_VAL(X86::KSHIFTLDri), 0,
                              MVT::v32i1, 2/*#Ops*/, 2, 3,  // Results = #4
/*434942*/                OPC_EmitInteger, MVT::i8, 28, 
/*434945*/                OPC_MorphNodeTo1, TARGET_VAL(X86::KSHIFTRDri), 0,
                              MVT::v32i1, 2/*#Ops*/, 4, 5, 
                          // Src: (insert_subvector:{ *:[v32i1] } immAllZerosV:{ *:[v32i1] }, 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] })
/*434953*/              /*SwitchType*/ 35, MVT::v64i1,// ->434990
/*434955*/                OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*434957*/                OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/*434960*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v64i1, 2/*#Ops*/, 0, 1,  // Results = #2
/*434968*/                OPC_EmitInteger, MVT::i8, 60, 
/*434971*/                OPC_EmitNode1, TARGET_VAL(X86::KSHIFTLQri), 0,
                              MVT::v64i1, 2/*#Ops*/, 2, 3,  // Results = #4
/*434979*/                OPC_EmitInteger, MVT::i8, 60, 
/*434982*/                OPC_MorphNodeTo1, TARGET_VAL(X86::KSHIFTRQri), 0,
                              MVT::v64i1, 2/*#Ops*/, 4, 5, 
                          // Src: (insert_subvector:{ *:[v64i1] } immAllZerosV:{ *:[v64i1] }, 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] })
/*434990*/              0, // EndSwitchType
/*434991*/            0, /*End of Scope*/
/*434992*/          0, /*End of Scope*/
/*434993*/        0, /*End of Scope*/
/*434994*/      /*Scope*/ 98|128,4/*610*/, /*->435606*/
/*434996*/        OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*434999*/        OPC_MoveParent,
/*435000*/        OPC_RecordChild1, // #0 = $src
/*435001*/        OPC_CheckChild2Integer, 0, 
/*435003*/        OPC_Scope, 15, /*->435020*/ // 16 children in Scope
/*435005*/          OPC_CheckChild2Type, MVT::iPTR,
/*435007*/          OPC_CheckType, MVT::v2i1,
/*435009*/          OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/*435012*/          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] })
/*435020*/        /*Scope*/ 71, /*->435092*/
/*435021*/          OPC_CheckChild1Type, MVT::v1i1,
/*435023*/          OPC_CheckChild2Type, MVT::iPTR,
/*435025*/          OPC_SwitchType /*5 cases */, 11, MVT::v4i1,// ->435039
/*435028*/            OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*435031*/            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] })
/*435039*/          /*SwitchType*/ 11, MVT::v8i1,// ->435052
/*435041*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*435044*/            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] })
/*435052*/          /*SwitchType*/ 11, MVT::v16i1,// ->435065
/*435054*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*435057*/            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] })
/*435065*/          /*SwitchType*/ 11, MVT::v32i1,// ->435078
/*435067*/            OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/*435070*/            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] })
/*435078*/          /*SwitchType*/ 11, MVT::v64i1,// ->435091
/*435080*/            OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/*435083*/            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] })
/*435091*/          0, // EndSwitchType
/*435092*/        /*Scope*/ 71, /*->435164*/
/*435093*/          OPC_CheckChild1Type, MVT::v2i1,
/*435095*/          OPC_CheckChild2Type, MVT::iPTR,
/*435097*/          OPC_SwitchType /*5 cases */, 11, MVT::v4i1,// ->435111
/*435100*/            OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*435103*/            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] })
/*435111*/          /*SwitchType*/ 11, MVT::v8i1,// ->435124
/*435113*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*435116*/            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] })
/*435124*/          /*SwitchType*/ 11, MVT::v16i1,// ->435137
/*435126*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*435129*/            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] })
/*435137*/          /*SwitchType*/ 11, MVT::v32i1,// ->435150
/*435139*/            OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/*435142*/            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] })
/*435150*/          /*SwitchType*/ 11, MVT::v64i1,// ->435163
/*435152*/            OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/*435155*/            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] })
/*435163*/          0, // EndSwitchType
/*435164*/        /*Scope*/ 58, /*->435223*/
/*435165*/          OPC_CheckChild1Type, MVT::v4i1,
/*435167*/          OPC_CheckChild2Type, MVT::iPTR,
/*435169*/          OPC_SwitchType /*4 cases */, 11, MVT::v8i1,// ->435183
/*435172*/            OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*435175*/            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] })
/*435183*/          /*SwitchType*/ 11, MVT::v16i1,// ->435196
/*435185*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*435188*/            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] })
/*435196*/          /*SwitchType*/ 11, MVT::v32i1,// ->435209
/*435198*/            OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/*435201*/            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] })
/*435209*/          /*SwitchType*/ 11, MVT::v64i1,// ->435222
/*435211*/            OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/*435214*/            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] })
/*435222*/          0, // EndSwitchType
/*435223*/        /*Scope*/ 45, /*->435269*/
/*435224*/          OPC_CheckChild1Type, MVT::v8i1,
/*435226*/          OPC_CheckChild2Type, MVT::iPTR,
/*435228*/          OPC_SwitchType /*3 cases */, 11, MVT::v16i1,// ->435242
/*435231*/            OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*435234*/            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] })
/*435242*/          /*SwitchType*/ 11, MVT::v32i1,// ->435255
/*435244*/            OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/*435247*/            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] })
/*435255*/          /*SwitchType*/ 11, MVT::v64i1,// ->435268
/*435257*/            OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/*435260*/            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] })
/*435268*/          0, // EndSwitchType
/*435269*/        /*Scope*/ 32, /*->435302*/
/*435270*/          OPC_CheckChild1Type, MVT::v16i1,
/*435272*/          OPC_CheckChild2Type, MVT::iPTR,
/*435274*/          OPC_SwitchType /*2 cases */, 11, MVT::v32i1,// ->435288
/*435277*/            OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/*435280*/            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] })
/*435288*/          /*SwitchType*/ 11, MVT::v64i1,// ->435301
/*435290*/            OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/*435293*/            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] })
/*435301*/          0, // EndSwitchType
/*435302*/        /*Scope*/ 17, /*->435320*/
/*435303*/          OPC_CheckChild1Type, MVT::v32i1,
/*435305*/          OPC_CheckChild2Type, MVT::iPTR,
/*435307*/          OPC_CheckType, MVT::v64i1,
/*435309*/          OPC_EmitInteger, MVT::i32, X86::VK64RegClassID,
/*435312*/          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] })
/*435320*/        /*Scope*/ 84, /*->435405*/
/*435321*/          OPC_CheckChild2Type, MVT::iPTR,
/*435323*/          OPC_SwitchType /*4 cases */, 18, MVT::v8i32,// ->435344
/*435326*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i32, 0/*#Ops*/,  // Results = #1
/*435332*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*435335*/            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] })
/*435344*/          /*SwitchType*/ 18, MVT::v4i64,// ->435364
/*435346*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i64, 0/*#Ops*/,  // Results = #1
/*435352*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*435355*/            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] })
/*435364*/          /*SwitchType*/ 18, MVT::v16i16,// ->435384
/*435366*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v16i16, 0/*#Ops*/,  // Results = #1
/*435372*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*435375*/            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] })
/*435384*/          /*SwitchType*/ 18, MVT::v32i8,// ->435404
/*435386*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v32i8, 0/*#Ops*/,  // Results = #1
/*435392*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*435395*/            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] })
/*435404*/          0, // EndSwitchType
/*435405*/        /*Scope*/ 24, /*->435430*/
/*435406*/          OPC_CheckChild1Type, MVT::v4i32,
/*435408*/          OPC_CheckChild2Type, MVT::iPTR,
/*435410*/          OPC_CheckType, MVT::v16i32,
/*435412*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #1
/*435418*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*435421*/          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] })
/*435430*/        /*Scope*/ 24, /*->435455*/
/*435431*/          OPC_CheckChild1Type, MVT::v2i64,
/*435433*/          OPC_CheckChild2Type, MVT::iPTR,
/*435435*/          OPC_CheckType, MVT::v8i64,
/*435437*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #1
/*435443*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*435446*/          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] })
/*435455*/        /*Scope*/ 24, /*->435480*/
/*435456*/          OPC_CheckChild1Type, MVT::v8i16,
/*435458*/          OPC_CheckChild2Type, MVT::iPTR,
/*435460*/          OPC_CheckType, MVT::v32i16,
/*435462*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #1
/*435468*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*435471*/          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] })
/*435480*/        /*Scope*/ 24, /*->435505*/
/*435481*/          OPC_CheckChild1Type, MVT::v16i8,
/*435483*/          OPC_CheckChild2Type, MVT::iPTR,
/*435485*/          OPC_CheckType, MVT::v64i8,
/*435487*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #1
/*435493*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*435496*/          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] })
/*435505*/        /*Scope*/ 24, /*->435530*/
/*435506*/          OPC_CheckChild1Type, MVT::v8i32,
/*435508*/          OPC_CheckChild2Type, MVT::iPTR,
/*435510*/          OPC_CheckType, MVT::v16i32,
/*435512*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #1
/*435518*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*435521*/          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] })
/*435530*/        /*Scope*/ 24, /*->435555*/
/*435531*/          OPC_CheckChild1Type, MVT::v4i64,
/*435533*/          OPC_CheckChild2Type, MVT::iPTR,
/*435535*/          OPC_CheckType, MVT::v8i64,
/*435537*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #1
/*435543*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*435546*/          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] })
/*435555*/        /*Scope*/ 24, /*->435580*/
/*435556*/          OPC_CheckChild1Type, MVT::v16i16,
/*435558*/          OPC_CheckChild2Type, MVT::iPTR,
/*435560*/          OPC_CheckType, MVT::v32i16,
/*435562*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #1
/*435568*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*435571*/          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] })
/*435580*/        /*Scope*/ 24, /*->435605*/
/*435581*/          OPC_CheckChild1Type, MVT::v32i8,
/*435583*/          OPC_CheckChild2Type, MVT::iPTR,
/*435585*/          OPC_CheckType, MVT::v64i8,
/*435587*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #1
/*435593*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*435596*/          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] })
/*435605*/        0, /*End of Scope*/
/*435606*/      0, /*End of Scope*/
/*435607*/    /*Scope*/ 16|128,1/*144*/, /*->435753*/
/*435609*/      OPC_RecordChild0, // #0 = $src1
/*435610*/      OPC_RecordChild1, // #1 = $src2
/*435611*/      OPC_CheckChild2Integer, 0, 
/*435613*/      OPC_CheckChild2Type, MVT::iPTR,
/*435615*/      OPC_SwitchType /*4 cases */, 32, MVT::v8i32,// ->435650
/*435618*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*435620*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i32, 0/*#Ops*/,  // Results = #2
/*435626*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*435629*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i32, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/*435638*/        OPC_EmitInteger, MVT::i8, 15, 
/*435641*/        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] })
/*435650*/      /*SwitchType*/ 32, MVT::v4i64,// ->435684
/*435652*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*435654*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i32, 0/*#Ops*/,  // Results = #2
/*435660*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*435663*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i32, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/*435672*/        OPC_EmitInteger, MVT::i8, 15, 
/*435675*/        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] })
/*435684*/      /*SwitchType*/ 32, MVT::v16i16,// ->435718
/*435686*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*435688*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i32, 0/*#Ops*/,  // Results = #2
/*435694*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*435697*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i32, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/*435706*/        OPC_EmitInteger, MVT::i8, 15, 
/*435709*/        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] })
/*435718*/      /*SwitchType*/ 32, MVT::v32i8,// ->435752
/*435720*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*435722*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i32, 0/*#Ops*/,  // Results = #2
/*435728*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*435731*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i32, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/*435740*/        OPC_EmitInteger, MVT::i8, 15, 
/*435743*/        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] })
/*435752*/      0, // EndSwitchType
/*435753*/    /*Scope*/ 57|128,3/*441*/, /*->436196*/
/*435755*/      OPC_RecordNode, // #0 = $ins
/*435756*/      OPC_RecordChild0, // #1 = $src1
/*435757*/      OPC_RecordChild1, // #2 = $src2
/*435758*/      OPC_Scope, 32|128,1/*160*/, /*->435921*/ // 11 children in Scope
/*435761*/        OPC_MoveChild2,
/*435762*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*435765*/        OPC_CheckType, MVT::iPTR,
/*435767*/        OPC_MoveParent,
/*435768*/        OPC_SwitchType /*4 cases */, 32, MVT::v4i64,// ->435803
/*435771*/          OPC_Scope, 14, /*->435787*/ // 2 children in Scope
/*435773*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*435775*/            OPC_EmitNodeXForm, 15, 0, // INSERT_get_vinsert128_imm
/*435778*/            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))
/*435787*/          /*Scope*/ 14, /*->435802*/
/*435788*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*435790*/            OPC_EmitNodeXForm, 15, 0, // INSERT_get_vinsert128_imm
/*435793*/            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))
/*435802*/          0, /*End of Scope*/
/*435803*/        /*SwitchType*/ 47, MVT::v8i32,// ->435852
/*435805*/          OPC_Scope, 14, /*->435821*/ // 3 children in Scope
/*435807*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*435809*/            OPC_EmitNodeXForm, 15, 0, // INSERT_get_vinsert128_imm
/*435812*/            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))
/*435821*/          /*Scope*/ 14, /*->435836*/
/*435822*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*435824*/            OPC_EmitNodeXForm, 15, 0, // INSERT_get_vinsert128_imm
/*435827*/            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))
/*435836*/          /*Scope*/ 14, /*->435851*/
/*435837*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*435839*/            OPC_EmitNodeXForm, 15, 0, // INSERT_get_vinsert128_imm
/*435842*/            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))
/*435851*/          0, /*End of Scope*/
/*435852*/        /*SwitchType*/ 32, MVT::v16i16,// ->435886
/*435854*/          OPC_Scope, 14, /*->435870*/ // 2 children in Scope
/*435856*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*435858*/            OPC_EmitNodeXForm, 15, 0, // INSERT_get_vinsert128_imm
/*435861*/            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))
/*435870*/          /*Scope*/ 14, /*->435885*/
/*435871*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*435873*/            OPC_EmitNodeXForm, 15, 0, // INSERT_get_vinsert128_imm
/*435876*/            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))
/*435885*/          0, /*End of Scope*/
/*435886*/        /*SwitchType*/ 32, MVT::v32i8,// ->435920
/*435888*/          OPC_Scope, 14, /*->435904*/ // 2 children in Scope
/*435890*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*435892*/            OPC_EmitNodeXForm, 15, 0, // INSERT_get_vinsert128_imm
/*435895*/            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))
/*435904*/          /*Scope*/ 14, /*->435919*/
/*435905*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*435907*/            OPC_EmitNodeXForm, 15, 0, // INSERT_get_vinsert128_imm
/*435910*/            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))
/*435919*/          0, /*End of Scope*/
/*435920*/        0, // EndSwitchType
/*435921*/      /*Scope*/ 25, /*->435947*/
/*435922*/        OPC_CheckChild1Type, MVT::v4i32,
/*435924*/        OPC_MoveChild2,
/*435925*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*435928*/        OPC_CheckType, MVT::iPTR,
/*435930*/        OPC_MoveParent,
/*435931*/        OPC_CheckType, MVT::v16i32,
/*435933*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*435935*/        OPC_EmitNodeXForm, 15, 0, // INSERT_get_vinsert128_imm
/*435938*/        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))
/*435947*/      /*Scope*/ 25, /*->435973*/
/*435948*/        OPC_CheckChild1Type, MVT::v4i64,
/*435950*/        OPC_MoveChild2,
/*435951*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*435954*/        OPC_CheckType, MVT::iPTR,
/*435956*/        OPC_MoveParent,
/*435957*/        OPC_CheckType, MVT::v8i64,
/*435959*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*435961*/        OPC_EmitNodeXForm, 16, 0, // INSERT_get_vinsert256_imm
/*435964*/        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))
/*435973*/      /*Scope*/ 23, /*->435997*/
/*435974*/        OPC_MoveChild2,
/*435975*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*435978*/        OPC_CheckType, MVT::iPTR,
/*435980*/        OPC_MoveParent,
/*435981*/        OPC_CheckType, MVT::v4i64,
/*435983*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*435985*/        OPC_EmitNodeXForm, 15, 0, // INSERT_get_vinsert128_imm
/*435988*/        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))
/*435997*/      /*Scope*/ 25, /*->436023*/
/*435998*/        OPC_CheckChild1Type, MVT::v2i64,
/*436000*/        OPC_MoveChild2,
/*436001*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*436004*/        OPC_CheckType, MVT::iPTR,
/*436006*/        OPC_MoveParent,
/*436007*/        OPC_CheckType, MVT::v8i64,
/*436009*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*436011*/        OPC_EmitNodeXForm, 15, 0, // INSERT_get_vinsert128_imm
/*436014*/        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))
/*436023*/      /*Scope*/ 25, /*->436049*/
/*436024*/        OPC_CheckChild1Type, MVT::v8i32,
/*436026*/        OPC_MoveChild2,
/*436027*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*436030*/        OPC_CheckType, MVT::iPTR,
/*436032*/        OPC_MoveParent,
/*436033*/        OPC_CheckType, MVT::v16i32,
/*436035*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*436037*/        OPC_EmitNodeXForm, 16, 0, // INSERT_get_vinsert256_imm
/*436040*/        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))
/*436049*/      /*Scope*/ 41, /*->436091*/
/*436050*/        OPC_MoveChild2,
/*436051*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*436054*/        OPC_CheckType, MVT::iPTR,
/*436056*/        OPC_MoveParent,
/*436057*/        OPC_SwitchType /*2 cases */, 14, MVT::v16i16,// ->436074
/*436060*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*436062*/          OPC_EmitNodeXForm, 15, 0, // INSERT_get_vinsert128_imm
/*436065*/          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))
/*436074*/        /*SwitchType*/ 14, MVT::v32i8,// ->436090
/*436076*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*436078*/          OPC_EmitNodeXForm, 15, 0, // INSERT_get_vinsert128_imm
/*436081*/          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))
/*436090*/        0, // EndSwitchType
/*436091*/      /*Scope*/ 25, /*->436117*/
/*436092*/        OPC_CheckChild1Type, MVT::v8i16,
/*436094*/        OPC_MoveChild2,
/*436095*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*436098*/        OPC_CheckType, MVT::iPTR,
/*436100*/        OPC_MoveParent,
/*436101*/        OPC_CheckType, MVT::v32i16,
/*436103*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*436105*/        OPC_EmitNodeXForm, 15, 0, // INSERT_get_vinsert128_imm
/*436108*/        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))
/*436117*/      /*Scope*/ 25, /*->436143*/
/*436118*/        OPC_CheckChild1Type, MVT::v16i8,
/*436120*/        OPC_MoveChild2,
/*436121*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*436124*/        OPC_CheckType, MVT::iPTR,
/*436126*/        OPC_MoveParent,
/*436127*/        OPC_CheckType, MVT::v64i8,
/*436129*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*436131*/        OPC_EmitNodeXForm, 15, 0, // INSERT_get_vinsert128_imm
/*436134*/        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))
/*436143*/      /*Scope*/ 25, /*->436169*/
/*436144*/        OPC_CheckChild1Type, MVT::v16i16,
/*436146*/        OPC_MoveChild2,
/*436147*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*436150*/        OPC_CheckType, MVT::iPTR,
/*436152*/        OPC_MoveParent,
/*436153*/        OPC_CheckType, MVT::v32i16,
/*436155*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*436157*/        OPC_EmitNodeXForm, 16, 0, // INSERT_get_vinsert256_imm
/*436160*/        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))
/*436169*/      /*Scope*/ 25, /*->436195*/
/*436170*/        OPC_CheckChild1Type, MVT::v32i8,
/*436172*/        OPC_MoveChild2,
/*436173*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*436176*/        OPC_CheckType, MVT::iPTR,
/*436178*/        OPC_MoveParent,
/*436179*/        OPC_CheckType, MVT::v64i8,
/*436181*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*436183*/        OPC_EmitNodeXForm, 16, 0, // INSERT_get_vinsert256_imm
/*436186*/        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))
/*436195*/      0, /*End of Scope*/
/*436196*/    /*Scope*/ 105, /*->436302*/
/*436197*/      OPC_MoveChild0,
/*436198*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*436201*/      OPC_RecordMemRef,
/*436202*/      OPC_RecordNode, // #0 = 'ld' chained node
/*436203*/      OPC_CheckFoldableChainNode,
/*436204*/      OPC_RecordChild1, // #1 = $src2
/*436205*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*436207*/      OPC_CheckPredicate, 9, // Predicate_load
/*436209*/      OPC_MoveParent,
/*436210*/      OPC_RecordChild1, // #2 = $src1
/*436211*/      OPC_CheckChild2Integer, 0, 
/*436213*/      OPC_CheckChild2Type, MVT::iPTR,
/*436215*/      OPC_SwitchType /*2 cases */, 40, MVT::v4f64,// ->436258
/*436218*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*436220*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*436223*/        OPC_EmitMergeInputChains1_0,
/*436224*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4f64, 0/*#Ops*/,  // Results = #8
/*436230*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*436233*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v4f64, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/*436242*/        OPC_EmitInteger, MVT::i8, 12, 
/*436245*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDPDYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f64, 7/*#Ops*/, 10, 3, 4, 5, 6, 7, 11, 
                  // Src: (insert_subvector:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }) - Complexity = 30
                  // Dst: (VBLENDPDYrmi:{ *:[v4f64] } (INSERT_SUBREG:{ *:[v4f64] } (IMPLICIT_DEF:{ *:[v4f64] }), VR128:{ *:[v2f64] }:$src1, sub_xmm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, 12:{ *:[i8] })
/*436258*/      /*SwitchType*/ 41, MVT::v8f32,// ->436301
/*436260*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*436262*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*436265*/        OPC_EmitMergeInputChains1_0,
/*436266*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8f32, 0/*#Ops*/,  // Results = #8
/*436272*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*436275*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8f32, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/*436284*/        OPC_EmitInteger, MVT::i8, 112|128,1/*240*/, 
/*436288*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDPSYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8f32, 7/*#Ops*/, 10, 3, 4, 5, 6, 7, 11, 
                  // Src: (insert_subvector:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }) - Complexity = 30
                  // Dst: (VBLENDPSYrmi:{ *:[v8f32] } (INSERT_SUBREG:{ *:[v8f32] } (IMPLICIT_DEF:{ *:[v8f32] }), VR128:{ *:[v4f32] }:$src1, sub_xmm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, 240:{ *:[i8] })
/*436301*/      0, // EndSwitchType
/*436302*/    /*Scope*/ 18|128,2/*274*/, /*->436578*/
/*436304*/      OPC_RecordNode, // #0 = $ins
/*436305*/      OPC_RecordChild0, // #1 = $src1
/*436306*/      OPC_MoveChild1,
/*436307*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*436310*/      OPC_RecordMemRef,
/*436311*/      OPC_RecordNode, // #2 = 'ld' chained node
/*436312*/      OPC_CheckFoldableChainNode,
/*436313*/      OPC_RecordChild1, // #3 = $src2
/*436314*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*436316*/      OPC_CheckPredicate, 9, // Predicate_load
/*436318*/      OPC_Scope, 84, /*->436404*/ // 6 children in Scope
/*436320*/        OPC_MoveParent,
/*436321*/        OPC_MoveChild2,
/*436322*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*436325*/        OPC_CheckType, MVT::iPTR,
/*436327*/        OPC_MoveParent,
/*436328*/        OPC_SwitchType /*2 cases */, 48, MVT::v8f32,// ->436379
/*436331*/          OPC_Scope, 22, /*->436355*/ // 2 children in Scope
/*436333*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*436335*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*436338*/            OPC_EmitMergeInputChains1_2,
/*436339*/            OPC_EmitNodeXForm, 15, 0, // INSERT_get_vinsert128_imm
/*436342*/            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>>, (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))
/*436355*/          /*Scope*/ 22, /*->436378*/
/*436356*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*436358*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*436361*/            OPC_EmitMergeInputChains1_2,
/*436362*/            OPC_EmitNodeXForm, 15, 0, // INSERT_get_vinsert128_imm
/*436365*/            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>>, (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>>, (imm:{ *:[iPTR] })):$src3))
/*436378*/          0, /*End of Scope*/
/*436379*/        /*SwitchType*/ 22, MVT::v4f64,// ->436403
/*436381*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*436383*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*436386*/          OPC_EmitMergeInputChains1_2,
/*436387*/          OPC_EmitNodeXForm, 15, 0, // INSERT_get_vinsert128_imm
/*436390*/          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>>, (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))
/*436403*/        0, // EndSwitchType
/*436404*/      /*Scope*/ 34, /*->436439*/
/*436405*/        OPC_CheckType, MVT::v4f32,
/*436407*/        OPC_MoveParent,
/*436408*/        OPC_MoveChild2,
/*436409*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*436412*/        OPC_CheckType, MVT::iPTR,
/*436414*/        OPC_MoveParent,
/*436415*/        OPC_CheckType, MVT::v16f32,
/*436417*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*436419*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*436422*/        OPC_EmitMergeInputChains1_2,
/*436423*/        OPC_EmitNodeXForm, 15, 0, // INSERT_get_vinsert128_imm
/*436426*/        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>>, (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>>, (imm:{ *:[iPTR] })):$src3))
/*436439*/      /*Scope*/ 34, /*->436474*/
/*436440*/        OPC_CheckType, MVT::v4f64,
/*436442*/        OPC_MoveParent,
/*436443*/        OPC_MoveChild2,
/*436444*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*436447*/        OPC_CheckType, MVT::iPTR,
/*436449*/        OPC_MoveParent,
/*436450*/        OPC_CheckType, MVT::v8f64,
/*436452*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*436454*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*436457*/        OPC_EmitMergeInputChains1_2,
/*436458*/        OPC_EmitNodeXForm, 16, 0, // INSERT_get_vinsert256_imm
/*436461*/        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>>, (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>>, (imm:{ *:[iPTR] })):$src3))
/*436474*/      /*Scope*/ 32, /*->436507*/
/*436475*/        OPC_MoveParent,
/*436476*/        OPC_MoveChild2,
/*436477*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*436480*/        OPC_CheckType, MVT::iPTR,
/*436482*/        OPC_MoveParent,
/*436483*/        OPC_CheckType, MVT::v4f64,
/*436485*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*436487*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*436490*/        OPC_EmitMergeInputChains1_2,
/*436491*/        OPC_EmitNodeXForm, 15, 0, // INSERT_get_vinsert128_imm
/*436494*/        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>>, (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))
/*436507*/      /*Scope*/ 34, /*->436542*/
/*436508*/        OPC_CheckType, MVT::v2f64,
/*436510*/        OPC_MoveParent,
/*436511*/        OPC_MoveChild2,
/*436512*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*436515*/        OPC_CheckType, MVT::iPTR,
/*436517*/        OPC_MoveParent,
/*436518*/        OPC_CheckType, MVT::v8f64,
/*436520*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*436522*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*436525*/        OPC_EmitMergeInputChains1_2,
/*436526*/        OPC_EmitNodeXForm, 15, 0, // INSERT_get_vinsert128_imm
/*436529*/        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>>, (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))
/*436542*/      /*Scope*/ 34, /*->436577*/
/*436543*/        OPC_CheckType, MVT::v8f32,
/*436545*/        OPC_MoveParent,
/*436546*/        OPC_MoveChild2,
/*436547*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*436550*/        OPC_CheckType, MVT::iPTR,
/*436552*/        OPC_MoveParent,
/*436553*/        OPC_CheckType, MVT::v16f32,
/*436555*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*436557*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*436560*/        OPC_EmitMergeInputChains1_2,
/*436561*/        OPC_EmitNodeXForm, 16, 0, // INSERT_get_vinsert256_imm
/*436564*/        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>>, (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))
/*436577*/      0, /*End of Scope*/
/*436578*/    /*Scope*/ 5|128,4/*517*/, /*->437097*/
/*436580*/      OPC_MoveChild0,
/*436581*/      OPC_Scope, 100|128,2/*356*/, /*->436940*/ // 2 children in Scope
/*436584*/        OPC_CheckImmAllZerosV,
/*436585*/        OPC_MoveParent,
/*436586*/        OPC_RecordChild1, // #0 = $src
/*436587*/        OPC_CheckChild2Integer, 0, 
/*436589*/        OPC_Scope, 112, /*->436703*/ // 5 children in Scope
/*436591*/          OPC_CheckChild2Type, MVT::iPTR,
/*436593*/          OPC_SwitchType /*2 cases */, 52, MVT::v4f64,// ->436648
/*436596*/            OPC_Scope, 24, /*->436622*/ // 2 children in Scope
/*436598*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*436600*/              OPC_EmitInteger, MVT::i64, 0, 
/*436603*/              OPC_EmitNode1, TARGET_VAL(X86::VMOVAPDrr), 0,
                            MVT::v2f64, 1/*#Ops*/, 0,  // Results = #2
/*436610*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*436613*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                            MVT::v4f64, 3/*#Ops*/, 1, 2, 3, 
                        // Src: (insert_subvector:{ *:[v4f64] } immAllZerosV:{ *:[v4f64] }, VR128:{ *:[v2f64] }:$src, 0:{ *:[iPTR] }) - Complexity = 12
                        // Dst: (SUBREG_TO_REG:{ *:[v4f64] } 0:{ *:[i64] }, (VMOVAPDrr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src), sub_xmm:{ *:[i32] })
/*436622*/            /*Scope*/ 24, /*->436647*/
/*436623*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*436625*/              OPC_EmitInteger, MVT::i64, 0, 
/*436628*/              OPC_EmitNode1, TARGET_VAL(X86::VMOVAPDZ128rr), 0,
                            MVT::v2f64, 1/*#Ops*/, 0,  // Results = #2
/*436635*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*436638*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                            MVT::v4f64, 3/*#Ops*/, 1, 2, 3, 
                        // Src: (insert_subvector:{ *:[v4f64] } immAllZerosV:{ *:[v4f64] }, VR128X:{ *:[v2f64] }:$src, 0:{ *:[iPTR] }) - Complexity = 12
                        // Dst: (SUBREG_TO_REG:{ *:[v4f64] } 0:{ *:[i64] }, (VMOVAPDZ128rr:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src), sub_xmm:{ *:[i32] })
/*436647*/            0, /*End of Scope*/
/*436648*/          /*SwitchType*/ 52, MVT::v8f32,// ->436702
/*436650*/            OPC_Scope, 24, /*->436676*/ // 2 children in Scope
/*436652*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*436654*/              OPC_EmitInteger, MVT::i64, 0, 
/*436657*/              OPC_EmitNode1, TARGET_VAL(X86::VMOVAPSrr), 0,
                            MVT::v4f32, 1/*#Ops*/, 0,  // Results = #2
/*436664*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*436667*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                            MVT::v8f32, 3/*#Ops*/, 1, 2, 3, 
                        // Src: (insert_subvector:{ *:[v8f32] } immAllZerosV:{ *:[v8f32] }, VR128:{ *:[v4f32] }:$src, 0:{ *:[iPTR] }) - Complexity = 12
                        // Dst: (SUBREG_TO_REG:{ *:[v8f32] } 0:{ *:[i64] }, (VMOVAPSrr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src), sub_xmm:{ *:[i32] })
/*436676*/            /*Scope*/ 24, /*->436701*/
/*436677*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*436679*/              OPC_EmitInteger, MVT::i64, 0, 
/*436682*/              OPC_EmitNode1, TARGET_VAL(X86::VMOVAPSZ128rr), 0,
                            MVT::v4f32, 1/*#Ops*/, 0,  // Results = #2
/*436689*/              OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*436692*/              OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                            MVT::v8f32, 3/*#Ops*/, 1, 2, 3, 
                        // Src: (insert_subvector:{ *:[v8f32] } immAllZerosV:{ *:[v8f32] }, VR128X:{ *:[v4f32] }:$src, 0:{ *:[iPTR] }) - Complexity = 12
                        // Dst: (SUBREG_TO_REG:{ *:[v8f32] } 0:{ *:[i64] }, (VMOVAPSZ128rr:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src), sub_xmm:{ *:[i32] })
/*436701*/            0, /*End of Scope*/
/*436702*/          0, // EndSwitchType
/*436703*/        /*Scope*/ 58, /*->436762*/
/*436704*/          OPC_CheckChild1Type, MVT::v2f64,
/*436706*/          OPC_CheckChild2Type, MVT::iPTR,
/*436708*/          OPC_CheckType, MVT::v8f64,
/*436710*/          OPC_Scope, 24, /*->436736*/ // 2 children in Scope
/*436712*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*436714*/            OPC_EmitInteger, MVT::i64, 0, 
/*436717*/            OPC_EmitNode1, TARGET_VAL(X86::VMOVAPDZ128rr), 0,
                          MVT::v2f64, 1/*#Ops*/, 0,  // Results = #2
/*436724*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*436727*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                          MVT::v8f64, 3/*#Ops*/, 1, 2, 3, 
                      // Src: (insert_subvector:{ *:[v8f64] } immAllZerosV:{ *:[v8f64] }, VR128X:{ *:[v2f64] }:$src, 0:{ *:[iPTR] }) - Complexity = 12
                      // Dst: (SUBREG_TO_REG:{ *:[v8f64] } 0:{ *:[i64] }, (VMOVAPDZ128rr:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src), sub_xmm:{ *:[i32] })
/*436736*/          /*Scope*/ 24, /*->436761*/
/*436737*/            OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*436739*/            OPC_EmitInteger, MVT::i64, 0, 
/*436742*/            OPC_EmitNode1, TARGET_VAL(X86::VMOVAPDrr), 0,
                          MVT::v2f64, 1/*#Ops*/, 0,  // Results = #2
/*436749*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*436752*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                          MVT::v8f64, 3/*#Ops*/, 1, 2, 3, 
                      // Src: (insert_subvector:{ *:[v8f64] } immAllZerosV:{ *:[v8f64] }, VR128:{ *:[v2f64] }:$src, 0:{ *:[iPTR] }) - Complexity = 12
                      // Dst: (SUBREG_TO_REG:{ *:[v8f64] } 0:{ *:[i64] }, (VMOVAPDrr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src), sub_xmm:{ *:[i32] })
/*436761*/          0, /*End of Scope*/
/*436762*/        /*Scope*/ 58, /*->436821*/
/*436763*/          OPC_CheckChild1Type, MVT::v4f32,
/*436765*/          OPC_CheckChild2Type, MVT::iPTR,
/*436767*/          OPC_CheckType, MVT::v16f32,
/*436769*/          OPC_Scope, 24, /*->436795*/ // 2 children in Scope
/*436771*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*436773*/            OPC_EmitInteger, MVT::i64, 0, 
/*436776*/            OPC_EmitNode1, TARGET_VAL(X86::VMOVAPSZ128rr), 0,
                          MVT::v4f32, 1/*#Ops*/, 0,  // Results = #2
/*436783*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*436786*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                          MVT::v16f32, 3/*#Ops*/, 1, 2, 3, 
                      // Src: (insert_subvector:{ *:[v16f32] } immAllZerosV:{ *:[v16f32] }, VR128X:{ *:[v4f32] }:$src, 0:{ *:[iPTR] }) - Complexity = 12
                      // Dst: (SUBREG_TO_REG:{ *:[v16f32] } 0:{ *:[i64] }, (VMOVAPSZ128rr:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src), sub_xmm:{ *:[i32] })
/*436795*/          /*Scope*/ 24, /*->436820*/
/*436796*/            OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*436798*/            OPC_EmitInteger, MVT::i64, 0, 
/*436801*/            OPC_EmitNode1, TARGET_VAL(X86::VMOVAPSrr), 0,
                          MVT::v4f32, 1/*#Ops*/, 0,  // Results = #2
/*436808*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*436811*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                          MVT::v16f32, 3/*#Ops*/, 1, 2, 3, 
                      // Src: (insert_subvector:{ *:[v16f32] } immAllZerosV:{ *:[v16f32] }, VR128:{ *:[v4f32] }:$src, 0:{ *:[iPTR] }) - Complexity = 12
                      // Dst: (SUBREG_TO_REG:{ *:[v16f32] } 0:{ *:[i64] }, (VMOVAPSrr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src), sub_xmm:{ *:[i32] })
/*436820*/          0, /*End of Scope*/
/*436821*/        /*Scope*/ 58, /*->436880*/
/*436822*/          OPC_CheckChild1Type, MVT::v4f64,
/*436824*/          OPC_CheckChild2Type, MVT::iPTR,
/*436826*/          OPC_CheckType, MVT::v8f64,
/*436828*/          OPC_Scope, 24, /*->436854*/ // 2 children in Scope
/*436830*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*436832*/            OPC_EmitInteger, MVT::i64, 0, 
/*436835*/            OPC_EmitNode1, TARGET_VAL(X86::VMOVAPDZ256rr), 0,
                          MVT::v4f64, 1/*#Ops*/, 0,  // Results = #2
/*436842*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*436845*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                          MVT::v8f64, 3/*#Ops*/, 1, 2, 3, 
                      // Src: (insert_subvector:{ *:[v8f64] } immAllZerosV:{ *:[v8f64] }, VR256X:{ *:[v4f64] }:$src, 0:{ *:[iPTR] }) - Complexity = 12
                      // Dst: (SUBREG_TO_REG:{ *:[v8f64] } 0:{ *:[i64] }, (VMOVAPDZ256rr:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src), sub_ymm:{ *:[i32] })
/*436854*/          /*Scope*/ 24, /*->436879*/
/*436855*/            OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*436857*/            OPC_EmitInteger, MVT::i64, 0, 
/*436860*/            OPC_EmitNode1, TARGET_VAL(X86::VMOVAPDYrr), 0,
                          MVT::v4f64, 1/*#Ops*/, 0,  // Results = #2
/*436867*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*436870*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                          MVT::v8f64, 3/*#Ops*/, 1, 2, 3, 
                      // Src: (insert_subvector:{ *:[v8f64] } immAllZerosV:{ *:[v8f64] }, VR256:{ *:[v4f64] }:$src, 0:{ *:[iPTR] }) - Complexity = 12
                      // Dst: (SUBREG_TO_REG:{ *:[v8f64] } 0:{ *:[i64] }, (VMOVAPDYrr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src), sub_ymm:{ *:[i32] })
/*436879*/          0, /*End of Scope*/
/*436880*/        /*Scope*/ 58, /*->436939*/
/*436881*/          OPC_CheckChild1Type, MVT::v8f32,
/*436883*/          OPC_CheckChild2Type, MVT::iPTR,
/*436885*/          OPC_CheckType, MVT::v16f32,
/*436887*/          OPC_Scope, 24, /*->436913*/ // 2 children in Scope
/*436889*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*436891*/            OPC_EmitInteger, MVT::i64, 0, 
/*436894*/            OPC_EmitNode1, TARGET_VAL(X86::VMOVAPSZ256rr), 0,
                          MVT::v8f32, 1/*#Ops*/, 0,  // Results = #2
/*436901*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*436904*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                          MVT::v16f32, 3/*#Ops*/, 1, 2, 3, 
                      // Src: (insert_subvector:{ *:[v16f32] } immAllZerosV:{ *:[v16f32] }, VR256X:{ *:[v8f32] }:$src, 0:{ *:[iPTR] }) - Complexity = 12
                      // Dst: (SUBREG_TO_REG:{ *:[v16f32] } 0:{ *:[i64] }, (VMOVAPSZ256rr:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src), sub_ymm:{ *:[i32] })
/*436913*/          /*Scope*/ 24, /*->436938*/
/*436914*/            OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*436916*/            OPC_EmitInteger, MVT::i64, 0, 
/*436919*/            OPC_EmitNode1, TARGET_VAL(X86::VMOVAPSYrr), 0,
                          MVT::v8f32, 1/*#Ops*/, 0,  // Results = #2
/*436926*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*436929*/            OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0,
                          MVT::v16f32, 3/*#Ops*/, 1, 2, 3, 
                      // Src: (insert_subvector:{ *:[v16f32] } immAllZerosV:{ *:[v16f32] }, VR256:{ *:[v8f32] }:$src, 0:{ *:[iPTR] }) - Complexity = 12
                      // Dst: (SUBREG_TO_REG:{ *:[v16f32] } 0:{ *:[i64] }, (VMOVAPSYrr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src), sub_ymm:{ *:[i32] })
/*436938*/          0, /*End of Scope*/
/*436939*/        0, /*End of Scope*/
/*436940*/      /*Scope*/ 26|128,1/*154*/, /*->437096*/
/*436942*/        OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*436945*/        OPC_MoveParent,
/*436946*/        OPC_RecordChild1, // #0 = $src
/*436947*/        OPC_CheckChild2Integer, 0, 
/*436949*/        OPC_Scope, 44, /*->436995*/ // 5 children in Scope
/*436951*/          OPC_CheckChild2Type, MVT::iPTR,
/*436953*/          OPC_SwitchType /*2 cases */, 18, MVT::v8f32,// ->436974
/*436956*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8f32, 0/*#Ops*/,  // Results = #1
/*436962*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*436965*/            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] })
/*436974*/          /*SwitchType*/ 18, MVT::v4f64,// ->436994
/*436976*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4f64, 0/*#Ops*/,  // Results = #1
/*436982*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*436985*/            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] })
/*436994*/          0, // EndSwitchType
/*436995*/        /*Scope*/ 24, /*->437020*/
/*436996*/          OPC_CheckChild1Type, MVT::v4f32,
/*436998*/          OPC_CheckChild2Type, MVT::iPTR,
/*437000*/          OPC_CheckType, MVT::v16f32,
/*437002*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16f32, 0/*#Ops*/,  // Results = #1
/*437008*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*437011*/          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] })
/*437020*/        /*Scope*/ 24, /*->437045*/
/*437021*/          OPC_CheckChild1Type, MVT::v2f64,
/*437023*/          OPC_CheckChild2Type, MVT::iPTR,
/*437025*/          OPC_CheckType, MVT::v8f64,
/*437027*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8f64, 0/*#Ops*/,  // Results = #1
/*437033*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*437036*/          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] })
/*437045*/        /*Scope*/ 24, /*->437070*/
/*437046*/          OPC_CheckChild1Type, MVT::v8f32,
/*437048*/          OPC_CheckChild2Type, MVT::iPTR,
/*437050*/          OPC_CheckType, MVT::v16f32,
/*437052*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16f32, 0/*#Ops*/,  // Results = #1
/*437058*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*437061*/          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] })
/*437070*/        /*Scope*/ 24, /*->437095*/
/*437071*/          OPC_CheckChild1Type, MVT::v4f64,
/*437073*/          OPC_CheckChild2Type, MVT::iPTR,
/*437075*/          OPC_CheckType, MVT::v8f64,
/*437077*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8f64, 0/*#Ops*/,  // Results = #1
/*437083*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*437086*/          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] })
/*437095*/        0, /*End of Scope*/
/*437096*/      0, /*End of Scope*/
/*437097*/    /*Scope*/ 76, /*->437174*/
/*437098*/      OPC_RecordChild0, // #0 = $src1
/*437099*/      OPC_RecordChild1, // #1 = $src2
/*437100*/      OPC_CheckChild2Integer, 0, 
/*437102*/      OPC_CheckChild2Type, MVT::iPTR,
/*437104*/      OPC_SwitchType /*2 cases */, 32, MVT::v4f64,// ->437139
/*437107*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*437109*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v4f64, 0/*#Ops*/,  // Results = #2
/*437115*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*437118*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v4f64, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/*437127*/        OPC_EmitInteger, MVT::i8, 3, 
/*437130*/        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] })
/*437139*/      /*SwitchType*/ 32, MVT::v8f32,// ->437173
/*437141*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*437143*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8f32, 0/*#Ops*/,  // Results = #2
/*437149*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*437152*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8f32, 3/*#Ops*/, 2, 1, 3,  // Results = #4
/*437161*/        OPC_EmitInteger, MVT::i8, 15, 
/*437164*/        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] })
/*437173*/      0, // EndSwitchType
/*437174*/    /*Scope*/ 65|128,1/*193*/, /*->437369*/
/*437176*/      OPC_RecordNode, // #0 = $ins
/*437177*/      OPC_RecordChild0, // #1 = $src1
/*437178*/      OPC_RecordChild1, // #2 = $src2
/*437179*/      OPC_Scope, 59, /*->437240*/ // 6 children in Scope
/*437181*/        OPC_MoveChild2,
/*437182*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*437185*/        OPC_CheckType, MVT::iPTR,
/*437187*/        OPC_MoveParent,
/*437188*/        OPC_SwitchType /*2 cases */, 32, MVT::v8f32,// ->437223
/*437191*/          OPC_Scope, 14, /*->437207*/ // 2 children in Scope
/*437193*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*437195*/            OPC_EmitNodeXForm, 15, 0, // INSERT_get_vinsert128_imm
/*437198*/            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))
/*437207*/          /*Scope*/ 14, /*->437222*/
/*437208*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*437210*/            OPC_EmitNodeXForm, 15, 0, // INSERT_get_vinsert128_imm
/*437213*/            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))
/*437222*/          0, /*End of Scope*/
/*437223*/        /*SwitchType*/ 14, MVT::v4f64,// ->437239
/*437225*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*437227*/          OPC_EmitNodeXForm, 15, 0, // INSERT_get_vinsert128_imm
/*437230*/          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))
/*437239*/        0, // EndSwitchType
/*437240*/      /*Scope*/ 25, /*->437266*/
/*437241*/        OPC_CheckChild1Type, MVT::v4f32,
/*437243*/        OPC_MoveChild2,
/*437244*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*437247*/        OPC_CheckType, MVT::iPTR,
/*437249*/        OPC_MoveParent,
/*437250*/        OPC_CheckType, MVT::v16f32,
/*437252*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*437254*/        OPC_EmitNodeXForm, 15, 0, // INSERT_get_vinsert128_imm
/*437257*/        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))
/*437266*/      /*Scope*/ 25, /*->437292*/
/*437267*/        OPC_CheckChild1Type, MVT::v4f64,
/*437269*/        OPC_MoveChild2,
/*437270*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*437273*/        OPC_CheckType, MVT::iPTR,
/*437275*/        OPC_MoveParent,
/*437276*/        OPC_CheckType, MVT::v8f64,
/*437278*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*437280*/        OPC_EmitNodeXForm, 16, 0, // INSERT_get_vinsert256_imm
/*437283*/        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))
/*437292*/      /*Scope*/ 23, /*->437316*/
/*437293*/        OPC_MoveChild2,
/*437294*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*437297*/        OPC_CheckType, MVT::iPTR,
/*437299*/        OPC_MoveParent,
/*437300*/        OPC_CheckType, MVT::v4f64,
/*437302*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*437304*/        OPC_EmitNodeXForm, 15, 0, // INSERT_get_vinsert128_imm
/*437307*/        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))
/*437316*/      /*Scope*/ 25, /*->437342*/
/*437317*/        OPC_CheckChild1Type, MVT::v2f64,
/*437319*/        OPC_MoveChild2,
/*437320*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*437323*/        OPC_CheckType, MVT::iPTR,
/*437325*/        OPC_MoveParent,
/*437326*/        OPC_CheckType, MVT::v8f64,
/*437328*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*437330*/        OPC_EmitNodeXForm, 15, 0, // INSERT_get_vinsert128_imm
/*437333*/        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))
/*437342*/      /*Scope*/ 25, /*->437368*/
/*437343*/        OPC_CheckChild1Type, MVT::v8f32,
/*437345*/        OPC_MoveChild2,
/*437346*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*437349*/        OPC_CheckType, MVT::iPTR,
/*437351*/        OPC_MoveParent,
/*437352*/        OPC_CheckType, MVT::v16f32,
/*437354*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*437356*/        OPC_EmitNodeXForm, 16, 0, // INSERT_get_vinsert256_imm
/*437359*/        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))
/*437368*/      0, /*End of Scope*/
/*437369*/    0, /*End of Scope*/
/*437370*/  /*SwitchOpcode*/ 12|128,35/*4492*/, TARGET_VAL(ISD::MLOAD),// ->441866
/*437374*/    OPC_RecordMemRef,
/*437375*/    OPC_RecordNode, // #0 = 'masked_ld' chained node
/*437376*/    OPC_RecordChild1, // #1 = $ptr
/*437377*/    OPC_MoveChild2,
/*437378*/    OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*437381*/    OPC_MoveParent,
/*437382*/    OPC_Scope, 64|128,20/*2624*/, /*->440009*/ // 3 children in Scope
/*437385*/      OPC_RecordChild3, // #2 = $mask
/*437386*/      OPC_Scope, 101, /*->437489*/ // 10 children in Scope
/*437388*/        OPC_CheckChild3Type, MVT::v8i32,
/*437390*/        OPC_MoveChild4,
/*437391*/        OPC_Scope, 46, /*->437439*/ // 2 children in Scope
/*437393*/          OPC_CheckImmAllZerosV,
/*437394*/          OPC_MoveParent,
/*437395*/          OPC_CheckPredicate, 102, // Predicate_masked_load
/*437397*/          OPC_CheckType, MVT::v8i32,
/*437399*/          OPC_Scope, 18, /*->437419*/ // 2 children in Scope
/*437401*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*437403*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*437406*/            OPC_EmitMergeInputChains1_0,
/*437407*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMASKMOVPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (masked_ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VR256:{ *:[v8i32] }:$mask, immAllZerosV:{ *:[v8i32] })<<P:Predicate_masked_load>> - Complexity = 29
                      // Dst: (VMASKMOVPSYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*437419*/          /*Scope*/ 18, /*->437438*/
/*437420*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/*437422*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*437425*/            OPC_EmitMergeInputChains1_0,
/*437426*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMASKMOVDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (masked_ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VR256:{ *:[v8i32] }:$mask, immAllZerosV:{ *:[v8i32] })<<P:Predicate_masked_load>> - Complexity = 29
                      // Dst: (VPMASKMOVDYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*437438*/          0, /*End of Scope*/
/*437439*/        /*Scope*/ 48, /*->437488*/
/*437440*/          OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*437443*/          OPC_MoveParent,
/*437444*/          OPC_CheckPredicate, 102, // Predicate_masked_load
/*437446*/          OPC_CheckType, MVT::v8i32,
/*437448*/          OPC_Scope, 18, /*->437468*/ // 2 children in Scope
/*437450*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*437452*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*437455*/            OPC_EmitMergeInputChains1_0,
/*437456*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMASKMOVPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (masked_ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VR256:{ *:[v8i32] }:$mask, (undef:{ *:[v8i32] }))<<P:Predicate_masked_load>> - Complexity = 28
                      // Dst: (VMASKMOVPSYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*437468*/          /*Scope*/ 18, /*->437487*/
/*437469*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/*437471*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*437474*/            OPC_EmitMergeInputChains1_0,
/*437475*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMASKMOVDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (masked_ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VR256:{ *:[v8i32] }:$mask, (undef:{ *:[v8i32] }))<<P:Predicate_masked_load>> - Complexity = 28
                      // Dst: (VPMASKMOVDYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*437487*/          0, /*End of Scope*/
/*437488*/        0, /*End of Scope*/
/*437489*/      /*Scope*/ 101, /*->437591*/
/*437490*/        OPC_CheckChild3Type, MVT::v4i64,
/*437492*/        OPC_MoveChild4,
/*437493*/        OPC_Scope, 46, /*->437541*/ // 2 children in Scope
/*437495*/          OPC_CheckImmAllZerosV,
/*437496*/          OPC_MoveParent,
/*437497*/          OPC_CheckPredicate, 102, // Predicate_masked_load
/*437499*/          OPC_CheckType, MVT::v4i64,
/*437501*/          OPC_Scope, 18, /*->437521*/ // 2 children in Scope
/*437503*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*437505*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*437508*/            OPC_EmitMergeInputChains1_0,
/*437509*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMASKMOVPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (masked_ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VR256:{ *:[v4i64] }:$mask, immAllZerosV:{ *:[v4i64] })<<P:Predicate_masked_load>> - Complexity = 29
                      // Dst: (VMASKMOVPDYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*437521*/          /*Scope*/ 18, /*->437540*/
/*437522*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/*437524*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*437527*/            OPC_EmitMergeInputChains1_0,
/*437528*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMASKMOVQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (masked_ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VR256:{ *:[v4i64] }:$mask, immAllZerosV:{ *:[v4i64] })<<P:Predicate_masked_load>> - Complexity = 29
                      // Dst: (VPMASKMOVQYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*437540*/          0, /*End of Scope*/
/*437541*/        /*Scope*/ 48, /*->437590*/
/*437542*/          OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*437545*/          OPC_MoveParent,
/*437546*/          OPC_CheckPredicate, 102, // Predicate_masked_load
/*437548*/          OPC_CheckType, MVT::v4i64,
/*437550*/          OPC_Scope, 18, /*->437570*/ // 2 children in Scope
/*437552*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*437554*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*437557*/            OPC_EmitMergeInputChains1_0,
/*437558*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMASKMOVPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (masked_ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VR256:{ *:[v4i64] }:$mask, (undef:{ *:[v4i64] }))<<P:Predicate_masked_load>> - Complexity = 28
                      // Dst: (VMASKMOVPDYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*437570*/          /*Scope*/ 18, /*->437589*/
/*437571*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/*437573*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*437576*/            OPC_EmitMergeInputChains1_0,
/*437577*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMASKMOVQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (masked_ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VR256:{ *:[v4i64] }:$mask, (undef:{ *:[v4i64] }))<<P:Predicate_masked_load>> - Complexity = 28
                      // Dst: (VPMASKMOVQYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*437589*/          0, /*End of Scope*/
/*437590*/        0, /*End of Scope*/
/*437591*/      /*Scope*/ 101, /*->437693*/
/*437592*/        OPC_CheckChild3Type, MVT::v4i32,
/*437594*/        OPC_MoveChild4,
/*437595*/        OPC_Scope, 46, /*->437643*/ // 2 children in Scope
/*437597*/          OPC_CheckImmAllZerosV,
/*437598*/          OPC_MoveParent,
/*437599*/          OPC_CheckPredicate, 102, // Predicate_masked_load
/*437601*/          OPC_CheckType, MVT::v4i32,
/*437603*/          OPC_Scope, 18, /*->437623*/ // 2 children in Scope
/*437605*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*437607*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*437610*/            OPC_EmitMergeInputChains1_0,
/*437611*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMASKMOVPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (masked_ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VR128:{ *:[v4i32] }:$mask, immAllZerosV:{ *:[v4i32] })<<P:Predicate_masked_load>> - Complexity = 29
                      // Dst: (VMASKMOVPSrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*437623*/          /*Scope*/ 18, /*->437642*/
/*437624*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/*437626*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*437629*/            OPC_EmitMergeInputChains1_0,
/*437630*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMASKMOVDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (masked_ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VR128:{ *:[v4i32] }:$mask, immAllZerosV:{ *:[v4i32] })<<P:Predicate_masked_load>> - Complexity = 29
                      // Dst: (VPMASKMOVDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*437642*/          0, /*End of Scope*/
/*437643*/        /*Scope*/ 48, /*->437692*/
/*437644*/          OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*437647*/          OPC_MoveParent,
/*437648*/          OPC_CheckPredicate, 102, // Predicate_masked_load
/*437650*/          OPC_CheckType, MVT::v4i32,
/*437652*/          OPC_Scope, 18, /*->437672*/ // 2 children in Scope
/*437654*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*437656*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*437659*/            OPC_EmitMergeInputChains1_0,
/*437660*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMASKMOVPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (masked_ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VR128:{ *:[v4i32] }:$mask, (undef:{ *:[v4i32] }))<<P:Predicate_masked_load>> - Complexity = 28
                      // Dst: (VMASKMOVPSrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*437672*/          /*Scope*/ 18, /*->437691*/
/*437673*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/*437675*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*437678*/            OPC_EmitMergeInputChains1_0,
/*437679*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMASKMOVDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (masked_ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VR128:{ *:[v4i32] }:$mask, (undef:{ *:[v4i32] }))<<P:Predicate_masked_load>> - Complexity = 28
                      // Dst: (VPMASKMOVDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*437691*/          0, /*End of Scope*/
/*437692*/        0, /*End of Scope*/
/*437693*/      /*Scope*/ 101, /*->437795*/
/*437694*/        OPC_CheckChild3Type, MVT::v2i64,
/*437696*/        OPC_MoveChild4,
/*437697*/        OPC_Scope, 46, /*->437745*/ // 2 children in Scope
/*437699*/          OPC_CheckImmAllZerosV,
/*437700*/          OPC_MoveParent,
/*437701*/          OPC_CheckPredicate, 102, // Predicate_masked_load
/*437703*/          OPC_CheckType, MVT::v2i64,
/*437705*/          OPC_Scope, 18, /*->437725*/ // 2 children in Scope
/*437707*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*437709*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*437712*/            OPC_EmitMergeInputChains1_0,
/*437713*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMASKMOVPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (masked_ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VR128:{ *:[v2i64] }:$mask, immAllZerosV:{ *:[v2i64] })<<P:Predicate_masked_load>> - Complexity = 29
                      // Dst: (VMASKMOVPDrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*437725*/          /*Scope*/ 18, /*->437744*/
/*437726*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/*437728*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*437731*/            OPC_EmitMergeInputChains1_0,
/*437732*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMASKMOVQrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (masked_ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VR128:{ *:[v2i64] }:$mask, immAllZerosV:{ *:[v2i64] })<<P:Predicate_masked_load>> - Complexity = 29
                      // Dst: (VPMASKMOVQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*437744*/          0, /*End of Scope*/
/*437745*/        /*Scope*/ 48, /*->437794*/
/*437746*/          OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*437749*/          OPC_MoveParent,
/*437750*/          OPC_CheckPredicate, 102, // Predicate_masked_load
/*437752*/          OPC_CheckType, MVT::v2i64,
/*437754*/          OPC_Scope, 18, /*->437774*/ // 2 children in Scope
/*437756*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*437758*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*437761*/            OPC_EmitMergeInputChains1_0,
/*437762*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMASKMOVPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (masked_ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VR128:{ *:[v2i64] }:$mask, (undef:{ *:[v2i64] }))<<P:Predicate_masked_load>> - Complexity = 28
                      // Dst: (VMASKMOVPDrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*437774*/          /*Scope*/ 18, /*->437793*/
/*437775*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/*437777*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*437780*/            OPC_EmitMergeInputChains1_0,
/*437781*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMASKMOVQrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (masked_ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VR128:{ *:[v2i64] }:$mask, (undef:{ *:[v2i64] }))<<P:Predicate_masked_load>> - Complexity = 28
                      // Dst: (VPMASKMOVQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*437793*/          0, /*End of Scope*/
/*437794*/        0, /*End of Scope*/
/*437795*/      /*Scope*/ 113|128,3/*497*/, /*->438294*/
/*437797*/        OPC_CheckChild3Type, MVT::v16i1,
/*437799*/        OPC_Scope, 69|128,2/*325*/, /*->438127*/ // 2 children in Scope
/*437802*/          OPC_MoveChild4,
/*437803*/          OPC_Scope, 30|128,1/*158*/, /*->437964*/ // 2 children in Scope
/*437806*/            OPC_CheckImmAllZerosV,
/*437807*/            OPC_MoveParent,
/*437808*/            OPC_Scope, 88, /*->437898*/ // 2 children in Scope
/*437810*/              OPC_CheckPredicate, 102, // Predicate_masked_load
/*437812*/              OPC_SwitchType /*3 cases */, 42, MVT::v16i32,// ->437857
/*437815*/                OPC_Scope, 20, /*->437837*/ // 2 children in Scope
/*437817*/                  OPC_CheckPredicate, 103, // Predicate_masked_load_aligned
/*437819*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*437821*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*437824*/                  OPC_EmitMergeInputChains1_0,
/*437825*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA32Zrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                            // Src: (masked_ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK16WM:{ *:[v16i1] }:$mask, immAllZerosV:{ *:[v16i32] })<<P:Predicate_masked_load>><<P:Predicate_masked_load_aligned>> - Complexity = 29
                            // Dst: (VMOVDQA32Zrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*437837*/                /*Scope*/ 18, /*->437856*/
/*437838*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*437840*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*437843*/                  OPC_EmitMergeInputChains1_0,
/*437844*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU32Zrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                            // Src: (masked_ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK16WM:{ *:[v16i1] }:$mask, immAllZerosV:{ *:[v16i32] })<<P:Predicate_masked_load>> - Complexity = 29
                            // Dst: (VMOVDQU32Zrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*437856*/                0, /*End of Scope*/
/*437857*/              /*SwitchType*/ 18, MVT::v16i8,// ->437877
/*437859*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*437861*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*437864*/                OPC_EmitMergeInputChains1_0,
/*437865*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU8Z128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK16WM:{ *:[v16i1] }:$mask, immAllZerosV:{ *:[v16i8] })<<P:Predicate_masked_load>> - Complexity = 29
                          // Dst: (VMOVDQU8Z128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*437877*/              /*SwitchType*/ 18, MVT::v16i16,// ->437897
/*437879*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*437881*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*437884*/                OPC_EmitMergeInputChains1_0,
/*437885*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU16Z256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK16WM:{ *:[v16i1] }:$mask, immAllZerosV:{ *:[v16i16] })<<P:Predicate_masked_load>> - Complexity = 29
                          // Dst: (VMOVDQU16Z256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*437897*/              0, // EndSwitchType
/*437898*/            /*Scope*/ 64, /*->437963*/
/*437899*/              OPC_CheckPredicate, 104, // Predicate_X86mExpandingLoad
/*437901*/              OPC_SwitchType /*3 cases */, 18, MVT::v16i32,// ->437922
/*437904*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*437906*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*437909*/                OPC_EmitMergeInputChains1_0,
/*437910*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src, (undef:{ *:[iPTR] }), VK16WM:{ *:[v16i1] }:$mask, immAllZerosV:{ *:[v16i32] })<<P:Predicate_X86mExpandingLoad>> - Complexity = 29
                          // Dst: (VPEXPANDDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*437922*/              /*SwitchType*/ 18, MVT::v16i8,// ->437942
/*437924*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*437926*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*437929*/                OPC_EmitMergeInputChains1_0,
/*437930*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDBZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src, (undef:{ *:[iPTR] }), VK16WM:{ *:[v16i1] }:$mask, immAllZerosV:{ *:[v16i8] })<<P:Predicate_X86mExpandingLoad>> - Complexity = 29
                          // Dst: (VPEXPANDBZ128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*437942*/              /*SwitchType*/ 18, MVT::v16i16,// ->437962
/*437944*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*437946*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*437949*/                OPC_EmitMergeInputChains1_0,
/*437950*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDWZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src, (undef:{ *:[iPTR] }), VK16WM:{ *:[v16i1] }:$mask, immAllZerosV:{ *:[v16i16] })<<P:Predicate_X86mExpandingLoad>> - Complexity = 29
                          // Dst: (VPEXPANDWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*437962*/              0, // EndSwitchType
/*437963*/            0, /*End of Scope*/
/*437964*/          /*Scope*/ 32|128,1/*160*/, /*->438126*/
/*437966*/            OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*437969*/            OPC_MoveParent,
/*437970*/            OPC_Scope, 88, /*->438060*/ // 2 children in Scope
/*437972*/              OPC_CheckPredicate, 102, // Predicate_masked_load
/*437974*/              OPC_SwitchType /*3 cases */, 42, MVT::v16i32,// ->438019
/*437977*/                OPC_Scope, 20, /*->437999*/ // 2 children in Scope
/*437979*/                  OPC_CheckPredicate, 103, // Predicate_masked_load_aligned
/*437981*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*437983*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*437986*/                  OPC_EmitMergeInputChains1_0,
/*437987*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA32Zrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                            // Src: (masked_ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK16WM:{ *:[v16i1] }:$mask, (undef:{ *:[v16i32] }))<<P:Predicate_masked_load>><<P:Predicate_masked_load_aligned>> - Complexity = 28
                            // Dst: (VMOVDQA32Zrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*437999*/                /*Scope*/ 18, /*->438018*/
/*438000*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*438002*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*438005*/                  OPC_EmitMergeInputChains1_0,
/*438006*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU32Zrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v16i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                            // Src: (masked_ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK16WM:{ *:[v16i1] }:$mask, (undef:{ *:[v16i32] }))<<P:Predicate_masked_load>> - Complexity = 28
                            // Dst: (VMOVDQU32Zrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*438018*/                0, /*End of Scope*/
/*438019*/              /*SwitchType*/ 18, MVT::v16i8,// ->438039
/*438021*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*438023*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*438026*/                OPC_EmitMergeInputChains1_0,
/*438027*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU8Z128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK16WM:{ *:[v16i1] }:$mask, (undef:{ *:[v16i8] }))<<P:Predicate_masked_load>> - Complexity = 28
                          // Dst: (VMOVDQU8Z128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*438039*/              /*SwitchType*/ 18, MVT::v16i16,// ->438059
/*438041*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*438043*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*438046*/                OPC_EmitMergeInputChains1_0,
/*438047*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU16Z256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK16WM:{ *:[v16i1] }:$mask, (undef:{ *:[v16i16] }))<<P:Predicate_masked_load>> - Complexity = 28
                          // Dst: (VMOVDQU16Z256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*438059*/              0, // EndSwitchType
/*438060*/            /*Scope*/ 64, /*->438125*/
/*438061*/              OPC_CheckPredicate, 104, // Predicate_X86mExpandingLoad
/*438063*/              OPC_SwitchType /*3 cases */, 18, MVT::v16i32,// ->438084
/*438066*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*438068*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*438071*/                OPC_EmitMergeInputChains1_0,
/*438072*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src, (undef:{ *:[iPTR] }), VK16WM:{ *:[v16i1] }:$mask, (undef:{ *:[v16i32] }))<<P:Predicate_X86mExpandingLoad>> - Complexity = 28
                          // Dst: (VPEXPANDDZrmkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*438084*/              /*SwitchType*/ 18, MVT::v16i8,// ->438104
/*438086*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*438088*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*438091*/                OPC_EmitMergeInputChains1_0,
/*438092*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDBZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src, (undef:{ *:[iPTR] }), VK16WM:{ *:[v16i1] }:$mask, (undef:{ *:[v16i8] }))<<P:Predicate_X86mExpandingLoad>> - Complexity = 28
                          // Dst: (VPEXPANDBZ128rmkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*438104*/              /*SwitchType*/ 18, MVT::v16i16,// ->438124
/*438106*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*438108*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*438111*/                OPC_EmitMergeInputChains1_0,
/*438112*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDWZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src, (undef:{ *:[iPTR] }), VK16WM:{ *:[v16i1] }:$mask, (undef:{ *:[v16i16] }))<<P:Predicate_X86mExpandingLoad>> - Complexity = 28
                          // Dst: (VPEXPANDWZ256rmkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*438124*/              0, // EndSwitchType
/*438125*/            0, /*End of Scope*/
/*438126*/          0, /*End of Scope*/
/*438127*/        /*Scope*/ 36|128,1/*164*/, /*->438293*/
/*438129*/          OPC_RecordChild4, // #3 = $src0
/*438130*/          OPC_Scope, 92, /*->438224*/ // 2 children in Scope
/*438132*/            OPC_CheckPredicate, 102, // Predicate_masked_load
/*438134*/            OPC_SwitchType /*3 cases */, 44, MVT::v16i32,// ->438181
/*438137*/              OPC_Scope, 21, /*->438160*/ // 2 children in Scope
/*438139*/                OPC_CheckPredicate, 103, // Predicate_masked_load_aligned
/*438141*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*438143*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*438146*/                OPC_EmitMergeInputChains1_0,
/*438147*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA32Zrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                          // Src: (masked_ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src0)<<P:Predicate_masked_load>><<P:Predicate_masked_load_aligned>> - Complexity = 25
                          // Dst: (VMOVDQA32Zrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*438160*/              /*Scope*/ 19, /*->438180*/
/*438161*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*438163*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*438166*/                OPC_EmitMergeInputChains1_0,
/*438167*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU32Zrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16i32, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                          // Src: (masked_ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src0)<<P:Predicate_masked_load>> - Complexity = 25
                          // Dst: (VMOVDQU32Zrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*438180*/              0, /*End of Scope*/
/*438181*/            /*SwitchType*/ 19, MVT::v16i8,// ->438202
/*438183*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*438185*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*438188*/              OPC_EmitMergeInputChains1_0,
/*438189*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU8Z128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i8, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src0)<<P:Predicate_masked_load>> - Complexity = 25
                        // Dst: (VMOVDQU8Z128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*438202*/            /*SwitchType*/ 19, MVT::v16i16,// ->438223
/*438204*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*438206*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*438209*/              OPC_EmitMergeInputChains1_0,
/*438210*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU16Z256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src0)<<P:Predicate_masked_load>> - Complexity = 25
                        // Dst: (VMOVDQU16Z256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*438223*/            0, // EndSwitchType
/*438224*/          /*Scope*/ 67, /*->438292*/
/*438225*/            OPC_CheckPredicate, 104, // Predicate_X86mExpandingLoad
/*438227*/            OPC_SwitchType /*3 cases */, 19, MVT::v16i32,// ->438249
/*438230*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*438232*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #4 #5 #6 #7 #8
/*438235*/              OPC_EmitMergeInputChains1_0,
/*438236*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i32, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src, (undef:{ *:[iPTR] }), VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src0)<<P:Predicate_X86mExpandingLoad>> - Complexity = 25
                        // Dst: (VPEXPANDDZrmk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*438249*/            /*SwitchType*/ 19, MVT::v16i8,// ->438270
/*438251*/              OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*438253*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #4 #5 #6 #7 #8
/*438256*/              OPC_EmitMergeInputChains1_0,
/*438257*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDBZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i8, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src, (undef:{ *:[iPTR] }), VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src0)<<P:Predicate_X86mExpandingLoad>> - Complexity = 25
                        // Dst: (VPEXPANDBZ128rmk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*438270*/            /*SwitchType*/ 19, MVT::v16i16,// ->438291
/*438272*/              OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*438274*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #4 #5 #6 #7 #8
/*438277*/              OPC_EmitMergeInputChains1_0,
/*438278*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDWZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src, (undef:{ *:[iPTR] }), VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src0)<<P:Predicate_X86mExpandingLoad>> - Complexity = 25
                        // Dst: (VPEXPANDWZ256rmk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*438291*/            0, // EndSwitchType
/*438292*/          0, /*End of Scope*/
/*438293*/        0, /*End of Scope*/
/*438294*/      /*Scope*/ 58|128,4/*570*/, /*->438866*/
/*438296*/        OPC_CheckChild3Type, MVT::v8i1,
/*438298*/        OPC_Scope, 117|128,2/*373*/, /*->438674*/ // 2 children in Scope
/*438301*/          OPC_MoveChild4,
/*438302*/          OPC_Scope, 54|128,1/*182*/, /*->438487*/ // 2 children in Scope
/*438305*/            OPC_CheckImmAllZerosV,
/*438306*/            OPC_MoveParent,
/*438307*/            OPC_Scope, 112, /*->438421*/ // 2 children in Scope
/*438309*/              OPC_CheckPredicate, 102, // Predicate_masked_load
/*438311*/              OPC_Scope, 44, /*->438357*/ // 4 children in Scope
/*438313*/                OPC_CheckPredicate, 103, // Predicate_masked_load_aligned
/*438315*/                OPC_SwitchType /*2 cases */, 18, MVT::v8i32,// ->438336
/*438318*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*438320*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*438323*/                  OPC_EmitMergeInputChains1_0,
/*438324*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA32Z256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                            // Src: (masked_ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK8WM:{ *:[v8i1] }:$mask, immAllZerosV:{ *:[v8i32] })<<P:Predicate_masked_load>><<P:Predicate_masked_load_aligned>> - Complexity = 29
                            // Dst: (VMOVDQA32Z256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*438336*/                /*SwitchType*/ 18, MVT::v8i64,// ->438356
/*438338*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*438340*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*438343*/                  OPC_EmitMergeInputChains1_0,
/*438344*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Zrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                            // Src: (masked_ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK8WM:{ *:[v8i1] }:$mask, immAllZerosV:{ *:[v8i64] })<<P:Predicate_masked_load>><<P:Predicate_masked_load_aligned>> - Complexity = 29
                            // Dst: (VMOVDQA64Zrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*438356*/                0, // EndSwitchType
/*438357*/              /*Scope*/ 20, /*->438378*/
/*438358*/                OPC_CheckType, MVT::v8i16,
/*438360*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*438362*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*438365*/                OPC_EmitMergeInputChains1_0,
/*438366*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU16Z128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK8WM:{ *:[v8i1] }:$mask, immAllZerosV:{ *:[v8i16] })<<P:Predicate_masked_load>> - Complexity = 29
                          // Dst: (VMOVDQU16Z128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*438378*/              /*Scope*/ 20, /*->438399*/
/*438379*/                OPC_CheckType, MVT::v8i32,
/*438381*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*438383*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*438386*/                OPC_EmitMergeInputChains1_0,
/*438387*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU32Z256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK8WM:{ *:[v8i1] }:$mask, immAllZerosV:{ *:[v8i32] })<<P:Predicate_masked_load>> - Complexity = 29
                          // Dst: (VMOVDQU32Z256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*438399*/              /*Scope*/ 20, /*->438420*/
/*438400*/                OPC_CheckType, MVT::v8i64,
/*438402*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*438404*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*438407*/                OPC_EmitMergeInputChains1_0,
/*438408*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU64Zrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK8WM:{ *:[v8i1] }:$mask, immAllZerosV:{ *:[v8i64] })<<P:Predicate_masked_load>> - Complexity = 29
                          // Dst: (VMOVDQU64Zrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*438420*/              0, /*End of Scope*/
/*438421*/            /*Scope*/ 64, /*->438486*/
/*438422*/              OPC_CheckPredicate, 104, // Predicate_X86mExpandingLoad
/*438424*/              OPC_SwitchType /*3 cases */, 18, MVT::v8i32,// ->438445
/*438427*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*438429*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*438432*/                OPC_EmitMergeInputChains1_0,
/*438433*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src, (undef:{ *:[iPTR] }), VK8WM:{ *:[v8i1] }:$mask, immAllZerosV:{ *:[v8i32] })<<P:Predicate_X86mExpandingLoad>> - Complexity = 29
                          // Dst: (VPEXPANDDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*438445*/              /*SwitchType*/ 18, MVT::v8i64,// ->438465
/*438447*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*438449*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*438452*/                OPC_EmitMergeInputChains1_0,
/*438453*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src, (undef:{ *:[iPTR] }), VK8WM:{ *:[v8i1] }:$mask, immAllZerosV:{ *:[v8i64] })<<P:Predicate_X86mExpandingLoad>> - Complexity = 29
                          // Dst: (VPEXPANDQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*438465*/              /*SwitchType*/ 18, MVT::v8i16,// ->438485
/*438467*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*438469*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*438472*/                OPC_EmitMergeInputChains1_0,
/*438473*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDWZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src, (undef:{ *:[iPTR] }), VK8WM:{ *:[v8i1] }:$mask, immAllZerosV:{ *:[v8i16] })<<P:Predicate_X86mExpandingLoad>> - Complexity = 29
                          // Dst: (VPEXPANDWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*438485*/              0, // EndSwitchType
/*438486*/            0, /*End of Scope*/
/*438487*/          /*Scope*/ 56|128,1/*184*/, /*->438673*/
/*438489*/            OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*438492*/            OPC_MoveParent,
/*438493*/            OPC_Scope, 112, /*->438607*/ // 2 children in Scope
/*438495*/              OPC_CheckPredicate, 102, // Predicate_masked_load
/*438497*/              OPC_Scope, 44, /*->438543*/ // 4 children in Scope
/*438499*/                OPC_CheckPredicate, 103, // Predicate_masked_load_aligned
/*438501*/                OPC_SwitchType /*2 cases */, 18, MVT::v8i32,// ->438522
/*438504*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*438506*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*438509*/                  OPC_EmitMergeInputChains1_0,
/*438510*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA32Z256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                            // Src: (masked_ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK8WM:{ *:[v8i1] }:$mask, (undef:{ *:[v8i32] }))<<P:Predicate_masked_load>><<P:Predicate_masked_load_aligned>> - Complexity = 28
                            // Dst: (VMOVDQA32Z256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*438522*/                /*SwitchType*/ 18, MVT::v8i64,// ->438542
/*438524*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*438526*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*438529*/                  OPC_EmitMergeInputChains1_0,
/*438530*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Zrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                            // Src: (masked_ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK8WM:{ *:[v8i1] }:$mask, (undef:{ *:[v8i64] }))<<P:Predicate_masked_load>><<P:Predicate_masked_load_aligned>> - Complexity = 28
                            // Dst: (VMOVDQA64Zrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*438542*/                0, // EndSwitchType
/*438543*/              /*Scope*/ 20, /*->438564*/
/*438544*/                OPC_CheckType, MVT::v8i16,
/*438546*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*438548*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*438551*/                OPC_EmitMergeInputChains1_0,
/*438552*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU16Z128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK8WM:{ *:[v8i1] }:$mask, (undef:{ *:[v8i16] }))<<P:Predicate_masked_load>> - Complexity = 28
                          // Dst: (VMOVDQU16Z128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*438564*/              /*Scope*/ 20, /*->438585*/
/*438565*/                OPC_CheckType, MVT::v8i32,
/*438567*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*438569*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*438572*/                OPC_EmitMergeInputChains1_0,
/*438573*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU32Z256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK8WM:{ *:[v8i1] }:$mask, (undef:{ *:[v8i32] }))<<P:Predicate_masked_load>> - Complexity = 28
                          // Dst: (VMOVDQU32Z256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*438585*/              /*Scope*/ 20, /*->438606*/
/*438586*/                OPC_CheckType, MVT::v8i64,
/*438588*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*438590*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*438593*/                OPC_EmitMergeInputChains1_0,
/*438594*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU64Zrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK8WM:{ *:[v8i1] }:$mask, (undef:{ *:[v8i64] }))<<P:Predicate_masked_load>> - Complexity = 28
                          // Dst: (VMOVDQU64Zrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*438606*/              0, /*End of Scope*/
/*438607*/            /*Scope*/ 64, /*->438672*/
/*438608*/              OPC_CheckPredicate, 104, // Predicate_X86mExpandingLoad
/*438610*/              OPC_SwitchType /*3 cases */, 18, MVT::v8i32,// ->438631
/*438613*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*438615*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*438618*/                OPC_EmitMergeInputChains1_0,
/*438619*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src, (undef:{ *:[iPTR] }), VK8WM:{ *:[v8i1] }:$mask, (undef:{ *:[v8i32] }))<<P:Predicate_X86mExpandingLoad>> - Complexity = 28
                          // Dst: (VPEXPANDDZ256rmkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*438631*/              /*SwitchType*/ 18, MVT::v8i64,// ->438651
/*438633*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*438635*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*438638*/                OPC_EmitMergeInputChains1_0,
/*438639*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDQZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src, (undef:{ *:[iPTR] }), VK8WM:{ *:[v8i1] }:$mask, (undef:{ *:[v8i64] }))<<P:Predicate_X86mExpandingLoad>> - Complexity = 28
                          // Dst: (VPEXPANDQZrmkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*438651*/              /*SwitchType*/ 18, MVT::v8i16,// ->438671
/*438653*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*438655*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*438658*/                OPC_EmitMergeInputChains1_0,
/*438659*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDWZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src, (undef:{ *:[iPTR] }), VK8WM:{ *:[v8i1] }:$mask, (undef:{ *:[v8i16] }))<<P:Predicate_X86mExpandingLoad>> - Complexity = 28
                          // Dst: (VPEXPANDWZ128rmkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*438671*/              0, // EndSwitchType
/*438672*/            0, /*End of Scope*/
/*438673*/          0, /*End of Scope*/
/*438674*/        /*Scope*/ 61|128,1/*189*/, /*->438865*/
/*438676*/          OPC_RecordChild4, // #3 = $src0
/*438677*/          OPC_Scope, 117, /*->438796*/ // 2 children in Scope
/*438679*/            OPC_CheckPredicate, 102, // Predicate_masked_load
/*438681*/            OPC_Scope, 46, /*->438729*/ // 4 children in Scope
/*438683*/              OPC_CheckPredicate, 103, // Predicate_masked_load_aligned
/*438685*/              OPC_SwitchType /*2 cases */, 19, MVT::v8i32,// ->438707
/*438688*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*438690*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*438693*/                OPC_EmitMergeInputChains1_0,
/*438694*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA32Z256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i32, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                          // Src: (masked_ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src0)<<P:Predicate_masked_load>><<P:Predicate_masked_load_aligned>> - Complexity = 25
                          // Dst: (VMOVDQA32Z256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*438707*/              /*SwitchType*/ 19, MVT::v8i64,// ->438728
/*438709*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*438711*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*438714*/                OPC_EmitMergeInputChains1_0,
/*438715*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Zrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8i64, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                          // Src: (masked_ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src0)<<P:Predicate_masked_load>><<P:Predicate_masked_load_aligned>> - Complexity = 25
                          // Dst: (VMOVDQA64Zrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*438728*/              0, // EndSwitchType
/*438729*/            /*Scope*/ 21, /*->438751*/
/*438730*/              OPC_CheckType, MVT::v8i16,
/*438732*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*438734*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*438737*/              OPC_EmitMergeInputChains1_0,
/*438738*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU16Z128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src0)<<P:Predicate_masked_load>> - Complexity = 25
                        // Dst: (VMOVDQU16Z128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*438751*/            /*Scope*/ 21, /*->438773*/
/*438752*/              OPC_CheckType, MVT::v8i32,
/*438754*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*438756*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*438759*/              OPC_EmitMergeInputChains1_0,
/*438760*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU32Z256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src0)<<P:Predicate_masked_load>> - Complexity = 25
                        // Dst: (VMOVDQU32Z256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*438773*/            /*Scope*/ 21, /*->438795*/
/*438774*/              OPC_CheckType, MVT::v8i64,
/*438776*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*438778*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*438781*/              OPC_EmitMergeInputChains1_0,
/*438782*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU64Zrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src0)<<P:Predicate_masked_load>> - Complexity = 25
                        // Dst: (VMOVDQU64Zrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*438795*/            0, /*End of Scope*/
/*438796*/          /*Scope*/ 67, /*->438864*/
/*438797*/            OPC_CheckPredicate, 104, // Predicate_X86mExpandingLoad
/*438799*/            OPC_SwitchType /*3 cases */, 19, MVT::v8i32,// ->438821
/*438802*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*438804*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #4 #5 #6 #7 #8
/*438807*/              OPC_EmitMergeInputChains1_0,
/*438808*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src, (undef:{ *:[iPTR] }), VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src0)<<P:Predicate_X86mExpandingLoad>> - Complexity = 25
                        // Dst: (VPEXPANDDZ256rmk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*438821*/            /*SwitchType*/ 19, MVT::v8i64,// ->438842
/*438823*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*438825*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #4 #5 #6 #7 #8
/*438828*/              OPC_EmitMergeInputChains1_0,
/*438829*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDQZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i64, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src, (undef:{ *:[iPTR] }), VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src0)<<P:Predicate_X86mExpandingLoad>> - Complexity = 25
                        // Dst: (VPEXPANDQZrmk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*438842*/            /*SwitchType*/ 19, MVT::v8i16,// ->438863
/*438844*/              OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*438846*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #4 #5 #6 #7 #8
/*438849*/              OPC_EmitMergeInputChains1_0,
/*438850*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDWZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i16, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src, (undef:{ *:[iPTR] }), VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src0)<<P:Predicate_X86mExpandingLoad>> - Complexity = 25
                        // Dst: (VPEXPANDWZ128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*438863*/            0, // EndSwitchType
/*438864*/          0, /*End of Scope*/
/*438865*/        0, /*End of Scope*/
/*438866*/      /*Scope*/ 61|128,3/*445*/, /*->439313*/
/*438868*/        OPC_CheckChild3Type, MVT::v4i1,
/*438870*/        OPC_Scope, 35|128,2/*291*/, /*->439164*/ // 2 children in Scope
/*438873*/          OPC_MoveChild4,
/*438874*/          OPC_Scope, 13|128,1/*141*/, /*->439018*/ // 2 children in Scope
/*438877*/            OPC_CheckImmAllZerosV,
/*438878*/            OPC_MoveParent,
/*438879*/            OPC_Scope, 91, /*->438972*/ // 2 children in Scope
/*438881*/              OPC_CheckPredicate, 102, // Predicate_masked_load
/*438883*/              OPC_Scope, 44, /*->438929*/ // 3 children in Scope
/*438885*/                OPC_CheckPredicate, 103, // Predicate_masked_load_aligned
/*438887*/                OPC_SwitchType /*2 cases */, 18, MVT::v4i32,// ->438908
/*438890*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*438892*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*438895*/                  OPC_EmitMergeInputChains1_0,
/*438896*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA32Z128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                            // Src: (masked_ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK4WM:{ *:[v4i1] }:$mask, immAllZerosV:{ *:[v4i32] })<<P:Predicate_masked_load>><<P:Predicate_masked_load_aligned>> - Complexity = 29
                            // Dst: (VMOVDQA32Z128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*438908*/                /*SwitchType*/ 18, MVT::v4i64,// ->438928
/*438910*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*438912*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*438915*/                  OPC_EmitMergeInputChains1_0,
/*438916*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Z256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                            // Src: (masked_ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK4WM:{ *:[v4i1] }:$mask, immAllZerosV:{ *:[v4i64] })<<P:Predicate_masked_load>><<P:Predicate_masked_load_aligned>> - Complexity = 29
                            // Dst: (VMOVDQA64Z256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*438928*/                0, // EndSwitchType
/*438929*/              /*Scope*/ 20, /*->438950*/
/*438930*/                OPC_CheckType, MVT::v4i32,
/*438932*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*438934*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*438937*/                OPC_EmitMergeInputChains1_0,
/*438938*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU32Z128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK4WM:{ *:[v4i1] }:$mask, immAllZerosV:{ *:[v4i32] })<<P:Predicate_masked_load>> - Complexity = 29
                          // Dst: (VMOVDQU32Z128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*438950*/              /*Scope*/ 20, /*->438971*/
/*438951*/                OPC_CheckType, MVT::v4i64,
/*438953*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*438955*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*438958*/                OPC_EmitMergeInputChains1_0,
/*438959*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU64Z256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK4WM:{ *:[v4i1] }:$mask, immAllZerosV:{ *:[v4i64] })<<P:Predicate_masked_load>> - Complexity = 29
                          // Dst: (VMOVDQU64Z256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*438971*/              0, /*End of Scope*/
/*438972*/            /*Scope*/ 44, /*->439017*/
/*438973*/              OPC_CheckPredicate, 104, // Predicate_X86mExpandingLoad
/*438975*/              OPC_SwitchType /*2 cases */, 18, MVT::v4i32,// ->438996
/*438978*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*438980*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*438983*/                OPC_EmitMergeInputChains1_0,
/*438984*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src, (undef:{ *:[iPTR] }), VK4WM:{ *:[v4i1] }:$mask, immAllZerosV:{ *:[v4i32] })<<P:Predicate_X86mExpandingLoad>> - Complexity = 29
                          // Dst: (VPEXPANDDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*438996*/              /*SwitchType*/ 18, MVT::v4i64,// ->439016
/*438998*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*439000*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*439003*/                OPC_EmitMergeInputChains1_0,
/*439004*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src, (undef:{ *:[iPTR] }), VK4WM:{ *:[v4i1] }:$mask, immAllZerosV:{ *:[v4i64] })<<P:Predicate_X86mExpandingLoad>> - Complexity = 29
                          // Dst: (VPEXPANDQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*439016*/              0, // EndSwitchType
/*439017*/            0, /*End of Scope*/
/*439018*/          /*Scope*/ 15|128,1/*143*/, /*->439163*/
/*439020*/            OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*439023*/            OPC_MoveParent,
/*439024*/            OPC_Scope, 91, /*->439117*/ // 2 children in Scope
/*439026*/              OPC_CheckPredicate, 102, // Predicate_masked_load
/*439028*/              OPC_Scope, 44, /*->439074*/ // 3 children in Scope
/*439030*/                OPC_CheckPredicate, 103, // Predicate_masked_load_aligned
/*439032*/                OPC_SwitchType /*2 cases */, 18, MVT::v4i32,// ->439053
/*439035*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*439037*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*439040*/                  OPC_EmitMergeInputChains1_0,
/*439041*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA32Z128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                            // Src: (masked_ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK4WM:{ *:[v4i1] }:$mask, (undef:{ *:[v4i32] }))<<P:Predicate_masked_load>><<P:Predicate_masked_load_aligned>> - Complexity = 28
                            // Dst: (VMOVDQA32Z128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*439053*/                /*SwitchType*/ 18, MVT::v4i64,// ->439073
/*439055*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*439057*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*439060*/                  OPC_EmitMergeInputChains1_0,
/*439061*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Z256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                            // Src: (masked_ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK4WM:{ *:[v4i1] }:$mask, (undef:{ *:[v4i64] }))<<P:Predicate_masked_load>><<P:Predicate_masked_load_aligned>> - Complexity = 28
                            // Dst: (VMOVDQA64Z256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*439073*/                0, // EndSwitchType
/*439074*/              /*Scope*/ 20, /*->439095*/
/*439075*/                OPC_CheckType, MVT::v4i32,
/*439077*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*439079*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*439082*/                OPC_EmitMergeInputChains1_0,
/*439083*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU32Z128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK4WM:{ *:[v4i1] }:$mask, (undef:{ *:[v4i32] }))<<P:Predicate_masked_load>> - Complexity = 28
                          // Dst: (VMOVDQU32Z128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*439095*/              /*Scope*/ 20, /*->439116*/
/*439096*/                OPC_CheckType, MVT::v4i64,
/*439098*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*439100*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*439103*/                OPC_EmitMergeInputChains1_0,
/*439104*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU64Z256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK4WM:{ *:[v4i1] }:$mask, (undef:{ *:[v4i64] }))<<P:Predicate_masked_load>> - Complexity = 28
                          // Dst: (VMOVDQU64Z256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*439116*/              0, /*End of Scope*/
/*439117*/            /*Scope*/ 44, /*->439162*/
/*439118*/              OPC_CheckPredicate, 104, // Predicate_X86mExpandingLoad
/*439120*/              OPC_SwitchType /*2 cases */, 18, MVT::v4i32,// ->439141
/*439123*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*439125*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*439128*/                OPC_EmitMergeInputChains1_0,
/*439129*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src, (undef:{ *:[iPTR] }), VK4WM:{ *:[v4i1] }:$mask, (undef:{ *:[v4i32] }))<<P:Predicate_X86mExpandingLoad>> - Complexity = 28
                          // Dst: (VPEXPANDDZ128rmkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*439141*/              /*SwitchType*/ 18, MVT::v4i64,// ->439161
/*439143*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*439145*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*439148*/                OPC_EmitMergeInputChains1_0,
/*439149*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDQZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src, (undef:{ *:[iPTR] }), VK4WM:{ *:[v4i1] }:$mask, (undef:{ *:[v4i64] }))<<P:Predicate_X86mExpandingLoad>> - Complexity = 28
                          // Dst: (VPEXPANDQZ256rmkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*439161*/              0, // EndSwitchType
/*439162*/            0, /*End of Scope*/
/*439163*/          0, /*End of Scope*/
/*439164*/        /*Scope*/ 18|128,1/*146*/, /*->439312*/
/*439166*/          OPC_RecordChild4, // #3 = $src0
/*439167*/          OPC_Scope, 95, /*->439264*/ // 2 children in Scope
/*439169*/            OPC_CheckPredicate, 102, // Predicate_masked_load
/*439171*/            OPC_Scope, 46, /*->439219*/ // 3 children in Scope
/*439173*/              OPC_CheckPredicate, 103, // Predicate_masked_load_aligned
/*439175*/              OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->439197
/*439178*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*439180*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*439183*/                OPC_EmitMergeInputChains1_0,
/*439184*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA32Z128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i32, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                          // Src: (masked_ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src0)<<P:Predicate_masked_load>><<P:Predicate_masked_load_aligned>> - Complexity = 25
                          // Dst: (VMOVDQA32Z128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*439197*/              /*SwitchType*/ 19, MVT::v4i64,// ->439218
/*439199*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*439201*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*439204*/                OPC_EmitMergeInputChains1_0,
/*439205*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Z256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4i64, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                          // Src: (masked_ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src0)<<P:Predicate_masked_load>><<P:Predicate_masked_load_aligned>> - Complexity = 25
                          // Dst: (VMOVDQA64Z256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*439218*/              0, // EndSwitchType
/*439219*/            /*Scope*/ 21, /*->439241*/
/*439220*/              OPC_CheckType, MVT::v4i32,
/*439222*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*439224*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*439227*/              OPC_EmitMergeInputChains1_0,
/*439228*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU32Z128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src0)<<P:Predicate_masked_load>> - Complexity = 25
                        // Dst: (VMOVDQU32Z128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*439241*/            /*Scope*/ 21, /*->439263*/
/*439242*/              OPC_CheckType, MVT::v4i64,
/*439244*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*439246*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*439249*/              OPC_EmitMergeInputChains1_0,
/*439250*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU64Z256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src0)<<P:Predicate_masked_load>> - Complexity = 25
                        // Dst: (VMOVDQU64Z256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*439263*/            0, /*End of Scope*/
/*439264*/          /*Scope*/ 46, /*->439311*/
/*439265*/            OPC_CheckPredicate, 104, // Predicate_X86mExpandingLoad
/*439267*/            OPC_SwitchType /*2 cases */, 19, MVT::v4i32,// ->439289
/*439270*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*439272*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #4 #5 #6 #7 #8
/*439275*/              OPC_EmitMergeInputChains1_0,
/*439276*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i32, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src, (undef:{ *:[iPTR] }), VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src0)<<P:Predicate_X86mExpandingLoad>> - Complexity = 25
                        // Dst: (VPEXPANDDZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*439289*/            /*SwitchType*/ 19, MVT::v4i64,// ->439310
/*439291*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*439293*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #4 #5 #6 #7 #8
/*439296*/              OPC_EmitMergeInputChains1_0,
/*439297*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDQZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4i64, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src, (undef:{ *:[iPTR] }), VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src0)<<P:Predicate_X86mExpandingLoad>> - Complexity = 25
                        // Dst: (VPEXPANDQZ256rmk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*439310*/            0, // EndSwitchType
/*439311*/          0, /*End of Scope*/
/*439312*/        0, /*End of Scope*/
/*439313*/      /*Scope*/ 104|128,1/*232*/, /*->439547*/
/*439315*/        OPC_CheckChild3Type, MVT::v2i1,
/*439317*/        OPC_Scope, 23|128,1/*151*/, /*->439471*/ // 2 children in Scope
/*439320*/          OPC_MoveChild4,
/*439321*/          OPC_Scope, 72, /*->439395*/ // 2 children in Scope
/*439323*/            OPC_CheckImmAllZerosV,
/*439324*/            OPC_MoveParent,
/*439325*/            OPC_CheckType, MVT::v2i64,
/*439327*/            OPC_Scope, 44, /*->439373*/ // 2 children in Scope
/*439329*/              OPC_CheckPredicate, 102, // Predicate_masked_load
/*439331*/              OPC_Scope, 20, /*->439353*/ // 2 children in Scope
/*439333*/                OPC_CheckPredicate, 103, // Predicate_masked_load_aligned
/*439335*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*439337*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*439340*/                OPC_EmitMergeInputChains1_0,
/*439341*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Z128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK2WM:{ *:[v2i1] }:$mask, immAllZerosV:{ *:[v2i64] })<<P:Predicate_masked_load>><<P:Predicate_masked_load_aligned>> - Complexity = 29
                          // Dst: (VMOVDQA64Z128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*439353*/              /*Scope*/ 18, /*->439372*/
/*439354*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*439356*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*439359*/                OPC_EmitMergeInputChains1_0,
/*439360*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU64Z128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK2WM:{ *:[v2i1] }:$mask, immAllZerosV:{ *:[v2i64] })<<P:Predicate_masked_load>> - Complexity = 29
                          // Dst: (VMOVDQU64Z128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*439372*/              0, /*End of Scope*/
/*439373*/            /*Scope*/ 20, /*->439394*/
/*439374*/              OPC_CheckPredicate, 104, // Predicate_X86mExpandingLoad
/*439376*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*439378*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*439381*/              OPC_EmitMergeInputChains1_0,
/*439382*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (masked_ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src, (undef:{ *:[iPTR] }), VK2WM:{ *:[v2i1] }:$mask, immAllZerosV:{ *:[v2i64] })<<P:Predicate_X86mExpandingLoad>> - Complexity = 29
                        // Dst: (VPEXPANDQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*439394*/            0, /*End of Scope*/
/*439395*/          /*Scope*/ 74, /*->439470*/
/*439396*/            OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*439399*/            OPC_MoveParent,
/*439400*/            OPC_CheckType, MVT::v2i64,
/*439402*/            OPC_Scope, 44, /*->439448*/ // 2 children in Scope
/*439404*/              OPC_CheckPredicate, 102, // Predicate_masked_load
/*439406*/              OPC_Scope, 20, /*->439428*/ // 2 children in Scope
/*439408*/                OPC_CheckPredicate, 103, // Predicate_masked_load_aligned
/*439410*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*439412*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*439415*/                OPC_EmitMergeInputChains1_0,
/*439416*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Z128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK2WM:{ *:[v2i1] }:$mask, (undef:{ *:[v2i64] }))<<P:Predicate_masked_load>><<P:Predicate_masked_load_aligned>> - Complexity = 28
                          // Dst: (VMOVDQA64Z128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*439428*/              /*Scope*/ 18, /*->439447*/
/*439429*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*439431*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*439434*/                OPC_EmitMergeInputChains1_0,
/*439435*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU64Z128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK2WM:{ *:[v2i1] }:$mask, (undef:{ *:[v2i64] }))<<P:Predicate_masked_load>> - Complexity = 28
                          // Dst: (VMOVDQU64Z128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*439447*/              0, /*End of Scope*/
/*439448*/            /*Scope*/ 20, /*->439469*/
/*439449*/              OPC_CheckPredicate, 104, // Predicate_X86mExpandingLoad
/*439451*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*439453*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*439456*/              OPC_EmitMergeInputChains1_0,
/*439457*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (masked_ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src, (undef:{ *:[iPTR] }), VK2WM:{ *:[v2i1] }:$mask, (undef:{ *:[v2i64] }))<<P:Predicate_X86mExpandingLoad>> - Complexity = 28
                        // Dst: (VPEXPANDQZ128rmkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*439469*/            0, /*End of Scope*/
/*439470*/          0, /*End of Scope*/
/*439471*/        /*Scope*/ 74, /*->439546*/
/*439472*/          OPC_RecordChild4, // #3 = $src0
/*439473*/          OPC_CheckType, MVT::v2i64,
/*439475*/          OPC_Scope, 46, /*->439523*/ // 2 children in Scope
/*439477*/            OPC_CheckPredicate, 102, // Predicate_masked_load
/*439479*/            OPC_Scope, 21, /*->439502*/ // 2 children in Scope
/*439481*/              OPC_CheckPredicate, 103, // Predicate_masked_load_aligned
/*439483*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*439485*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*439488*/              OPC_EmitMergeInputChains1_0,
/*439489*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQA64Z128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src0)<<P:Predicate_masked_load>><<P:Predicate_masked_load_aligned>> - Complexity = 25
                        // Dst: (VMOVDQA64Z128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*439502*/            /*Scope*/ 19, /*->439522*/
/*439503*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*439505*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*439508*/              OPC_EmitMergeInputChains1_0,
/*439509*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU64Z128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2i64, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src0)<<P:Predicate_masked_load>> - Complexity = 25
                        // Dst: (VMOVDQU64Z128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*439522*/            0, /*End of Scope*/
/*439523*/          /*Scope*/ 21, /*->439545*/
/*439524*/            OPC_CheckPredicate, 104, // Predicate_X86mExpandingLoad
/*439526*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*439528*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #4 #5 #6 #7 #8
/*439531*/            OPC_EmitMergeInputChains1_0,
/*439532*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                      // Src: (masked_ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src, (undef:{ *:[iPTR] }), VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src0)<<P:Predicate_X86mExpandingLoad>> - Complexity = 25
                      // Dst: (VPEXPANDQZ128rmk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*439545*/          0, /*End of Scope*/
/*439546*/        0, /*End of Scope*/
/*439547*/      /*Scope*/ 30|128,1/*158*/, /*->439707*/
/*439549*/        OPC_CheckChild3Type, MVT::v64i1,
/*439551*/        OPC_Scope, 103, /*->439656*/ // 2 children in Scope
/*439553*/          OPC_MoveChild4,
/*439554*/          OPC_Scope, 48, /*->439604*/ // 2 children in Scope
/*439556*/            OPC_CheckImmAllZerosV,
/*439557*/            OPC_MoveParent,
/*439558*/            OPC_CheckType, MVT::v64i8,
/*439560*/            OPC_Scope, 20, /*->439582*/ // 2 children in Scope
/*439562*/              OPC_CheckPredicate, 102, // Predicate_masked_load
/*439564*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*439566*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*439569*/              OPC_EmitMergeInputChains1_0,
/*439570*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU8Zrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v64i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (masked_ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK64WM:{ *:[v64i1] }:$mask, immAllZerosV:{ *:[v64i8] })<<P:Predicate_masked_load>> - Complexity = 29
                        // Dst: (VMOVDQU8Zrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*439582*/            /*Scope*/ 20, /*->439603*/
/*439583*/              OPC_CheckPredicate, 104, // Predicate_X86mExpandingLoad
/*439585*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*439587*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*439590*/              OPC_EmitMergeInputChains1_0,
/*439591*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDBZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v64i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (masked_ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src, (undef:{ *:[iPTR] }), VK64WM:{ *:[v64i1] }:$mask, immAllZerosV:{ *:[v64i8] })<<P:Predicate_X86mExpandingLoad>> - Complexity = 29
                        // Dst: (VPEXPANDBZrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*439603*/            0, /*End of Scope*/
/*439604*/          /*Scope*/ 50, /*->439655*/
/*439605*/            OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*439608*/            OPC_MoveParent,
/*439609*/            OPC_CheckType, MVT::v64i8,
/*439611*/            OPC_Scope, 20, /*->439633*/ // 2 children in Scope
/*439613*/              OPC_CheckPredicate, 102, // Predicate_masked_load
/*439615*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*439617*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*439620*/              OPC_EmitMergeInputChains1_0,
/*439621*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU8Zrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v64i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (masked_ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK64WM:{ *:[v64i1] }:$mask, (undef:{ *:[v64i8] }))<<P:Predicate_masked_load>> - Complexity = 28
                        // Dst: (VMOVDQU8Zrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*439633*/            /*Scope*/ 20, /*->439654*/
/*439634*/              OPC_CheckPredicate, 104, // Predicate_X86mExpandingLoad
/*439636*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*439638*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*439641*/              OPC_EmitMergeInputChains1_0,
/*439642*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDBZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v64i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (masked_ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src, (undef:{ *:[iPTR] }), VK64WM:{ *:[v64i1] }:$mask, (undef:{ *:[v64i8] }))<<P:Predicate_X86mExpandingLoad>> - Complexity = 28
                        // Dst: (VPEXPANDBZrmkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*439654*/            0, /*End of Scope*/
/*439655*/          0, /*End of Scope*/
/*439656*/        /*Scope*/ 49, /*->439706*/
/*439657*/          OPC_RecordChild4, // #3 = $src0
/*439658*/          OPC_CheckType, MVT::v64i8,
/*439660*/          OPC_Scope, 21, /*->439683*/ // 2 children in Scope
/*439662*/            OPC_CheckPredicate, 102, // Predicate_masked_load
/*439664*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*439666*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*439669*/            OPC_EmitMergeInputChains1_0,
/*439670*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU8Zrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                      // Src: (masked_ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src0)<<P:Predicate_masked_load>> - Complexity = 25
                      // Dst: (VMOVDQU8Zrmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*439683*/          /*Scope*/ 21, /*->439705*/
/*439684*/            OPC_CheckPredicate, 104, // Predicate_X86mExpandingLoad
/*439686*/            OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*439688*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #4 #5 #6 #7 #8
/*439691*/            OPC_EmitMergeInputChains1_0,
/*439692*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDBZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                      // Src: (masked_ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src, (undef:{ *:[iPTR] }), VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src0)<<P:Predicate_X86mExpandingLoad>> - Complexity = 25
                      // Dst: (VPEXPANDBZrmk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*439705*/          0, /*End of Scope*/
/*439706*/        0, /*End of Scope*/
/*439707*/      /*Scope*/ 43|128,2/*299*/, /*->440008*/
/*439709*/        OPC_CheckChild3Type, MVT::v32i1,
/*439711*/        OPC_Scope, 67|128,1/*195*/, /*->439909*/ // 2 children in Scope
/*439714*/          OPC_MoveChild4,
/*439715*/          OPC_Scope, 94, /*->439811*/ // 2 children in Scope
/*439717*/            OPC_CheckImmAllZerosV,
/*439718*/            OPC_MoveParent,
/*439719*/            OPC_Scope, 44, /*->439765*/ // 2 children in Scope
/*439721*/              OPC_CheckPredicate, 102, // Predicate_masked_load
/*439723*/              OPC_SwitchType /*2 cases */, 18, MVT::v32i8,// ->439744
/*439726*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*439728*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*439731*/                OPC_EmitMergeInputChains1_0,
/*439732*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU8Z256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v32i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK32WM:{ *:[v32i1] }:$mask, immAllZerosV:{ *:[v32i8] })<<P:Predicate_masked_load>> - Complexity = 29
                          // Dst: (VMOVDQU8Z256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*439744*/              /*SwitchType*/ 18, MVT::v32i16,// ->439764
/*439746*/                OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*439748*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*439751*/                OPC_EmitMergeInputChains1_0,
/*439752*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU16Zrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v32i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK32WM:{ *:[v32i1] }:$mask, immAllZerosV:{ *:[v32i16] })<<P:Predicate_masked_load>> - Complexity = 29
                          // Dst: (VMOVDQU16Zrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*439764*/              0, // EndSwitchType
/*439765*/            /*Scope*/ 44, /*->439810*/
/*439766*/              OPC_CheckPredicate, 104, // Predicate_X86mExpandingLoad
/*439768*/              OPC_SwitchType /*2 cases */, 18, MVT::v32i8,// ->439789
/*439771*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*439773*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*439776*/                OPC_EmitMergeInputChains1_0,
/*439777*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDBZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v32i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src, (undef:{ *:[iPTR] }), VK32WM:{ *:[v32i1] }:$mask, immAllZerosV:{ *:[v32i8] })<<P:Predicate_X86mExpandingLoad>> - Complexity = 29
                          // Dst: (VPEXPANDBZ256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*439789*/              /*SwitchType*/ 18, MVT::v32i16,// ->439809
/*439791*/                OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*439793*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*439796*/                OPC_EmitMergeInputChains1_0,
/*439797*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDWZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v32i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src, (undef:{ *:[iPTR] }), VK32WM:{ *:[v32i1] }:$mask, immAllZerosV:{ *:[v32i16] })<<P:Predicate_X86mExpandingLoad>> - Complexity = 29
                          // Dst: (VPEXPANDWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*439809*/              0, // EndSwitchType
/*439810*/            0, /*End of Scope*/
/*439811*/          /*Scope*/ 96, /*->439908*/
/*439812*/            OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*439815*/            OPC_MoveParent,
/*439816*/            OPC_Scope, 44, /*->439862*/ // 2 children in Scope
/*439818*/              OPC_CheckPredicate, 102, // Predicate_masked_load
/*439820*/              OPC_SwitchType /*2 cases */, 18, MVT::v32i8,// ->439841
/*439823*/                OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*439825*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*439828*/                OPC_EmitMergeInputChains1_0,
/*439829*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU8Z256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v32i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK32WM:{ *:[v32i1] }:$mask, (undef:{ *:[v32i8] }))<<P:Predicate_masked_load>> - Complexity = 28
                          // Dst: (VMOVDQU8Z256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*439841*/              /*SwitchType*/ 18, MVT::v32i16,// ->439861
/*439843*/                OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*439845*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*439848*/                OPC_EmitMergeInputChains1_0,
/*439849*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU16Zrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v32i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK32WM:{ *:[v32i1] }:$mask, (undef:{ *:[v32i16] }))<<P:Predicate_masked_load>> - Complexity = 28
                          // Dst: (VMOVDQU16Zrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*439861*/              0, // EndSwitchType
/*439862*/            /*Scope*/ 44, /*->439907*/
/*439863*/              OPC_CheckPredicate, 104, // Predicate_X86mExpandingLoad
/*439865*/              OPC_SwitchType /*2 cases */, 18, MVT::v32i8,// ->439886
/*439868*/                OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*439870*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*439873*/                OPC_EmitMergeInputChains1_0,
/*439874*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDBZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v32i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src, (undef:{ *:[iPTR] }), VK32WM:{ *:[v32i1] }:$mask, (undef:{ *:[v32i8] }))<<P:Predicate_X86mExpandingLoad>> - Complexity = 28
                          // Dst: (VPEXPANDBZ256rmkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*439886*/              /*SwitchType*/ 18, MVT::v32i16,// ->439906
/*439888*/                OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*439890*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*439893*/                OPC_EmitMergeInputChains1_0,
/*439894*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDWZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v32i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src, (undef:{ *:[iPTR] }), VK32WM:{ *:[v32i1] }:$mask, (undef:{ *:[v32i16] }))<<P:Predicate_X86mExpandingLoad>> - Complexity = 28
                          // Dst: (VPEXPANDWZrmkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*439906*/              0, // EndSwitchType
/*439907*/            0, /*End of Scope*/
/*439908*/          0, /*End of Scope*/
/*439909*/        /*Scope*/ 97, /*->440007*/
/*439910*/          OPC_RecordChild4, // #3 = $src0
/*439911*/          OPC_Scope, 46, /*->439959*/ // 2 children in Scope
/*439913*/            OPC_CheckPredicate, 102, // Predicate_masked_load
/*439915*/            OPC_SwitchType /*2 cases */, 19, MVT::v32i8,// ->439937
/*439918*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*439920*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*439923*/              OPC_EmitMergeInputChains1_0,
/*439924*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU8Z256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src0)<<P:Predicate_masked_load>> - Complexity = 25
                        // Dst: (VMOVDQU8Z256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*439937*/            /*SwitchType*/ 19, MVT::v32i16,// ->439958
/*439939*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*439941*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*439944*/              OPC_EmitMergeInputChains1_0,
/*439945*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDQU16Zrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src0)<<P:Predicate_masked_load>> - Complexity = 25
                        // Dst: (VMOVDQU16Zrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*439958*/            0, // EndSwitchType
/*439959*/          /*Scope*/ 46, /*->440006*/
/*439960*/            OPC_CheckPredicate, 104, // Predicate_X86mExpandingLoad
/*439962*/            OPC_SwitchType /*2 cases */, 19, MVT::v32i8,// ->439984
/*439965*/              OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*439967*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #4 #5 #6 #7 #8
/*439970*/              OPC_EmitMergeInputChains1_0,
/*439971*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDBZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src, (undef:{ *:[iPTR] }), VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src0)<<P:Predicate_X86mExpandingLoad>> - Complexity = 25
                        // Dst: (VPEXPANDBZ256rmk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*439984*/            /*SwitchType*/ 19, MVT::v32i16,// ->440005
/*439986*/              OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*439988*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #4 #5 #6 #7 #8
/*439991*/              OPC_EmitMergeInputChains1_0,
/*439992*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDWZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i16, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src, (undef:{ *:[iPTR] }), VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src0)<<P:Predicate_X86mExpandingLoad>> - Complexity = 25
                        // Dst: (VPEXPANDWZrmk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*440005*/            0, // EndSwitchType
/*440006*/          0, /*End of Scope*/
/*440007*/        0, /*End of Scope*/
/*440008*/      0, /*End of Scope*/
/*440009*/    /*Scope*/ 127|128,1/*255*/, /*->440266*/
/*440011*/      OPC_MoveChild3,
/*440012*/      OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/*440015*/      OPC_MoveChild0,
/*440016*/      OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*440019*/      OPC_MoveChild0,
/*440020*/      OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*440023*/      OPC_RecordChild0, // #2 = $mask
/*440024*/      OPC_CheckChild1Integer, 1, 
/*440026*/      OPC_CheckType, MVT::i8,
/*440028*/      OPC_MoveParent,
/*440029*/      OPC_CheckType, MVT::v8i1,
/*440031*/      OPC_MoveParent,
/*440032*/      OPC_CheckChild1Integer, 0, 
/*440034*/      OPC_CheckChild1Type, MVT::iPTR,
/*440036*/      OPC_SwitchType /*2 cases */, 112, MVT::v4i1,// ->440151
/*440039*/        OPC_MoveParent,
/*440040*/        OPC_MoveChild4,
/*440041*/        OPC_Scope, 51, /*->440094*/ // 2 children in Scope
/*440043*/          OPC_CheckImmAllZerosV,
/*440044*/          OPC_MoveParent,
/*440045*/          OPC_CheckPredicate, 102, // Predicate_masked_load
/*440047*/          OPC_CheckType, MVT::v4f32,
/*440049*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$srcAddr #3 #4 #5 #6 #7
/*440052*/          OPC_EmitMergeInputChains1_0,
/*440053*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i32, 0/*#Ops*/,  // Results = #8
/*440059*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*440062*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i32, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/*440071*/          OPC_EmitInteger, MVT::i32, X86::VK1WMRegClassID,
/*440074*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v1i1, 2/*#Ops*/, 10, 11,  // Results = #12
/*440082*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSSZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 6/*#Ops*/, 12, 3, 4, 5, 6, 7, 
                    // Src: (masked_ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$srcAddr, (undef:{ *:[iPTR] }), (extract_subvector:{ *:[v4i1] } (bitconvert:{ *:[v8i1] } (and:{ *:[i8] } GR8:{ *:[i8] }:$mask, 1:{ *:[i8] })), 0:{ *:[iPTR] }), immAllZerosV:{ *:[v4f32] })<<P:Predicate_masked_load>> - Complexity = 48
                    // Dst: (VMOVSSZrmkz:{ *:[v4f32] } (COPY_TO_REGCLASS:{ *:[v1i1] } (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$mask, sub_8bit:{ *:[i32] }), VK1WM:{ *:[i32] }), addr:{ *:[iPTR] }:$srcAddr)
/*440094*/        /*Scope*/ 55, /*->440150*/
/*440095*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VZEXT_MOVL),
/*440098*/          OPC_RecordChild0, // #3 = $src
/*440099*/          OPC_MoveParent,
/*440100*/          OPC_CheckPredicate, 102, // Predicate_masked_load
/*440102*/          OPC_CheckType, MVT::v4f32,
/*440104*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$srcAddr #4 #5 #6 #7 #8
/*440107*/          OPC_EmitMergeInputChains1_0,
/*440108*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i32, 0/*#Ops*/,  // Results = #9
/*440114*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*440117*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i32, 3/*#Ops*/, 9, 2, 10,  // Results = #11
/*440126*/          OPC_EmitInteger, MVT::i32, X86::VK1WMRegClassID,
/*440129*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v1i1, 2/*#Ops*/, 11, 12,  // Results = #13
/*440137*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSSZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 3, 13, 4, 5, 6, 7, 8, 
                    // Src: (masked_ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$srcAddr, (undef:{ *:[iPTR] }), (extract_subvector:{ *:[v4i1] } (bitconvert:{ *:[v8i1] } (and:{ *:[i8] } GR8:{ *:[i8] }:$mask, 1:{ *:[i8] })), 0:{ *:[iPTR] }), (X86vzmovl:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src))<<P:Predicate_masked_load>> - Complexity = 47
                    // 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)
/*440150*/        0, /*End of Scope*/
/*440151*/      /*SwitchType*/ 112, MVT::v2i1,// ->440265
/*440153*/        OPC_MoveParent,
/*440154*/        OPC_MoveChild4,
/*440155*/        OPC_Scope, 51, /*->440208*/ // 2 children in Scope
/*440157*/          OPC_CheckImmAllZerosV,
/*440158*/          OPC_MoveParent,
/*440159*/          OPC_CheckPredicate, 102, // Predicate_masked_load
/*440161*/          OPC_CheckType, MVT::v2f64,
/*440163*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$srcAddr #3 #4 #5 #6 #7
/*440166*/          OPC_EmitMergeInputChains1_0,
/*440167*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i32, 0/*#Ops*/,  // Results = #8
/*440173*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*440176*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i32, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/*440185*/          OPC_EmitInteger, MVT::i32, X86::VK1WMRegClassID,
/*440188*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v1i1, 2/*#Ops*/, 10, 11,  // Results = #12
/*440196*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 6/*#Ops*/, 12, 3, 4, 5, 6, 7, 
                    // Src: (masked_ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$srcAddr, (undef:{ *:[iPTR] }), (extract_subvector:{ *:[v2i1] } (bitconvert:{ *:[v8i1] } (and:{ *:[i8] } GR8:{ *:[i8] }:$mask, 1:{ *:[i8] })), 0:{ *:[iPTR] }), immAllZerosV:{ *:[v2f64] })<<P:Predicate_masked_load>> - Complexity = 48
                    // Dst: (VMOVSDZrmkz:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[v1i1] } (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$mask, sub_8bit:{ *:[i32] }), VK1WM:{ *:[i32] }), addr:{ *:[iPTR] }:$srcAddr)
/*440208*/        /*Scope*/ 55, /*->440264*/
/*440209*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VZEXT_MOVL),
/*440212*/          OPC_RecordChild0, // #3 = $src
/*440213*/          OPC_MoveParent,
/*440214*/          OPC_CheckPredicate, 102, // Predicate_masked_load
/*440216*/          OPC_CheckType, MVT::v2f64,
/*440218*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$srcAddr #4 #5 #6 #7 #8
/*440221*/          OPC_EmitMergeInputChains1_0,
/*440222*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i32, 0/*#Ops*/,  // Results = #9
/*440228*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*440231*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i32, 3/*#Ops*/, 9, 2, 10,  // Results = #11
/*440240*/          OPC_EmitInteger, MVT::i32, X86::VK1WMRegClassID,
/*440243*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v1i1, 2/*#Ops*/, 11, 12,  // Results = #13
/*440251*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 7/*#Ops*/, 3, 13, 4, 5, 6, 7, 8, 
                    // Src: (masked_ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$srcAddr, (undef:{ *:[iPTR] }), (extract_subvector:{ *:[v2i1] } (bitconvert:{ *:[v8i1] } (and:{ *:[i8] } GR8:{ *:[i8] }:$mask, 1:{ *:[i8] })), 0:{ *:[iPTR] }), (X86vzmovl:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src))<<P:Predicate_masked_load>> - Complexity = 47
                    // 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)
/*440264*/        0, /*End of Scope*/
/*440265*/      0, // EndSwitchType
/*440266*/    /*Scope*/ 61|128,12/*1597*/, /*->441865*/
/*440268*/      OPC_RecordChild3, // #2 = $mask
/*440269*/      OPC_Scope, 57, /*->440328*/ // 8 children in Scope
/*440271*/        OPC_CheckChild3Type, MVT::v4i32,
/*440273*/        OPC_MoveChild4,
/*440274*/        OPC_Scope, 24, /*->440300*/ // 2 children in Scope
/*440276*/          OPC_CheckImmAllZerosV,
/*440277*/          OPC_MoveParent,
/*440278*/          OPC_CheckPredicate, 102, // Predicate_masked_load
/*440280*/          OPC_CheckType, MVT::v4f32,
/*440282*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*440284*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*440287*/          OPC_EmitMergeInputChains1_0,
/*440288*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMASKMOVPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (masked_ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VR128:{ *:[v4i32] }:$mask, immAllZerosV:{ *:[v4f32] })<<P:Predicate_masked_load>> - Complexity = 29
                    // Dst: (VMASKMOVPSrm:{ *:[v4f32] } VR128:{ *:[v4i32] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*440300*/        /*Scope*/ 26, /*->440327*/
/*440301*/          OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*440304*/          OPC_MoveParent,
/*440305*/          OPC_CheckPredicate, 102, // Predicate_masked_load
/*440307*/          OPC_CheckType, MVT::v4f32,
/*440309*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*440311*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*440314*/          OPC_EmitMergeInputChains1_0,
/*440315*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMASKMOVPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (masked_ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VR128:{ *:[v4i32] }:$mask, (undef:{ *:[v4f32] }))<<P:Predicate_masked_load>> - Complexity = 28
                    // Dst: (VMASKMOVPSrm:{ *:[v4f32] } VR128:{ *:[v4i32] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*440327*/        0, /*End of Scope*/
/*440328*/      /*Scope*/ 57, /*->440386*/
/*440329*/        OPC_CheckChild3Type, MVT::v2i64,
/*440331*/        OPC_MoveChild4,
/*440332*/        OPC_Scope, 24, /*->440358*/ // 2 children in Scope
/*440334*/          OPC_CheckImmAllZerosV,
/*440335*/          OPC_MoveParent,
/*440336*/          OPC_CheckPredicate, 102, // Predicate_masked_load
/*440338*/          OPC_CheckType, MVT::v2f64,
/*440340*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*440342*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*440345*/          OPC_EmitMergeInputChains1_0,
/*440346*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMASKMOVPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (masked_ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VR128:{ *:[v2i64] }:$mask, immAllZerosV:{ *:[v2f64] })<<P:Predicate_masked_load>> - Complexity = 29
                    // Dst: (VMASKMOVPDrm:{ *:[v2f64] } VR128:{ *:[v2i64] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*440358*/        /*Scope*/ 26, /*->440385*/
/*440359*/          OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*440362*/          OPC_MoveParent,
/*440363*/          OPC_CheckPredicate, 102, // Predicate_masked_load
/*440365*/          OPC_CheckType, MVT::v2f64,
/*440367*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*440369*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*440372*/          OPC_EmitMergeInputChains1_0,
/*440373*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMASKMOVPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (masked_ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VR128:{ *:[v2i64] }:$mask, (undef:{ *:[v2f64] }))<<P:Predicate_masked_load>> - Complexity = 28
                    // Dst: (VMASKMOVPDrm:{ *:[v2f64] } VR128:{ *:[v2i64] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*440385*/        0, /*End of Scope*/
/*440386*/      /*Scope*/ 57, /*->440444*/
/*440387*/        OPC_CheckChild3Type, MVT::v8i32,
/*440389*/        OPC_MoveChild4,
/*440390*/        OPC_Scope, 24, /*->440416*/ // 2 children in Scope
/*440392*/          OPC_CheckImmAllZerosV,
/*440393*/          OPC_MoveParent,
/*440394*/          OPC_CheckPredicate, 102, // Predicate_masked_load
/*440396*/          OPC_CheckType, MVT::v8f32,
/*440398*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*440400*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*440403*/          OPC_EmitMergeInputChains1_0,
/*440404*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMASKMOVPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (masked_ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VR256:{ *:[v8i32] }:$mask, immAllZerosV:{ *:[v8f32] })<<P:Predicate_masked_load>> - Complexity = 29
                    // Dst: (VMASKMOVPSYrm:{ *:[v8f32] } VR256:{ *:[v8i32] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*440416*/        /*Scope*/ 26, /*->440443*/
/*440417*/          OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*440420*/          OPC_MoveParent,
/*440421*/          OPC_CheckPredicate, 102, // Predicate_masked_load
/*440423*/          OPC_CheckType, MVT::v8f32,
/*440425*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*440427*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*440430*/          OPC_EmitMergeInputChains1_0,
/*440431*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMASKMOVPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (masked_ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VR256:{ *:[v8i32] }:$mask, (undef:{ *:[v8f32] }))<<P:Predicate_masked_load>> - Complexity = 28
                    // Dst: (VMASKMOVPSYrm:{ *:[v8f32] } VR256:{ *:[v8i32] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*440443*/        0, /*End of Scope*/
/*440444*/      /*Scope*/ 57, /*->440502*/
/*440445*/        OPC_CheckChild3Type, MVT::v4i64,
/*440447*/        OPC_MoveChild4,
/*440448*/        OPC_Scope, 24, /*->440474*/ // 2 children in Scope
/*440450*/          OPC_CheckImmAllZerosV,
/*440451*/          OPC_MoveParent,
/*440452*/          OPC_CheckPredicate, 102, // Predicate_masked_load
/*440454*/          OPC_CheckType, MVT::v4f64,
/*440456*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*440458*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*440461*/          OPC_EmitMergeInputChains1_0,
/*440462*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMASKMOVPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (masked_ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VR256:{ *:[v4i64] }:$mask, immAllZerosV:{ *:[v4f64] })<<P:Predicate_masked_load>> - Complexity = 29
                    // Dst: (VMASKMOVPDYrm:{ *:[v4f64] } VR256:{ *:[v4i64] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*440474*/        /*Scope*/ 26, /*->440501*/
/*440475*/          OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*440478*/          OPC_MoveParent,
/*440479*/          OPC_CheckPredicate, 102, // Predicate_masked_load
/*440481*/          OPC_CheckType, MVT::v4f64,
/*440483*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*440485*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*440488*/          OPC_EmitMergeInputChains1_0,
/*440489*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMASKMOVPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (masked_ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VR256:{ *:[v4i64] }:$mask, (undef:{ *:[v4f64] }))<<P:Predicate_masked_load>> - Complexity = 28
                    // Dst: (VMASKMOVPDYrm:{ *:[v4f64] } VR256:{ *:[v4i64] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*440501*/        0, /*End of Scope*/
/*440502*/      /*Scope*/ 104|128,1/*232*/, /*->440736*/
/*440504*/        OPC_CheckChild3Type, MVT::v16i1,
/*440506*/        OPC_Scope, 23|128,1/*151*/, /*->440660*/ // 2 children in Scope
/*440509*/          OPC_MoveChild4,
/*440510*/          OPC_Scope, 72, /*->440584*/ // 2 children in Scope
/*440512*/            OPC_CheckImmAllZerosV,
/*440513*/            OPC_MoveParent,
/*440514*/            OPC_CheckType, MVT::v16f32,
/*440516*/            OPC_Scope, 44, /*->440562*/ // 2 children in Scope
/*440518*/              OPC_CheckPredicate, 102, // Predicate_masked_load
/*440520*/              OPC_Scope, 20, /*->440542*/ // 2 children in Scope
/*440522*/                OPC_CheckPredicate, 103, // Predicate_masked_load_aligned
/*440524*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*440526*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*440529*/                OPC_EmitMergeInputChains1_0,
/*440530*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPSZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK16WM:{ *:[v16i1] }:$mask, immAllZerosV:{ *:[v16f32] })<<P:Predicate_masked_load>><<P:Predicate_masked_load_aligned>> - Complexity = 29
                          // Dst: (VMOVAPSZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*440542*/              /*Scope*/ 18, /*->440561*/
/*440543*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*440545*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*440548*/                OPC_EmitMergeInputChains1_0,
/*440549*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVUPSZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK16WM:{ *:[v16i1] }:$mask, immAllZerosV:{ *:[v16f32] })<<P:Predicate_masked_load>> - Complexity = 29
                          // Dst: (VMOVUPSZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*440561*/              0, /*End of Scope*/
/*440562*/            /*Scope*/ 20, /*->440583*/
/*440563*/              OPC_CheckPredicate, 104, // Predicate_X86mExpandingLoad
/*440565*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*440567*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*440570*/              OPC_EmitMergeInputChains1_0,
/*440571*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPSZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (masked_ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src, (undef:{ *:[iPTR] }), VK16WM:{ *:[v16i1] }:$mask, immAllZerosV:{ *:[v16f32] })<<P:Predicate_X86mExpandingLoad>> - Complexity = 29
                        // Dst: (VEXPANDPSZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*440583*/            0, /*End of Scope*/
/*440584*/          /*Scope*/ 74, /*->440659*/
/*440585*/            OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*440588*/            OPC_MoveParent,
/*440589*/            OPC_CheckType, MVT::v16f32,
/*440591*/            OPC_Scope, 44, /*->440637*/ // 2 children in Scope
/*440593*/              OPC_CheckPredicate, 102, // Predicate_masked_load
/*440595*/              OPC_Scope, 20, /*->440617*/ // 2 children in Scope
/*440597*/                OPC_CheckPredicate, 103, // Predicate_masked_load_aligned
/*440599*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*440601*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*440604*/                OPC_EmitMergeInputChains1_0,
/*440605*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPSZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK16WM:{ *:[v16i1] }:$mask, (undef:{ *:[v16f32] }))<<P:Predicate_masked_load>><<P:Predicate_masked_load_aligned>> - Complexity = 28
                          // Dst: (VMOVAPSZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*440617*/              /*Scope*/ 18, /*->440636*/
/*440618*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*440620*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*440623*/                OPC_EmitMergeInputChains1_0,
/*440624*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVUPSZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v16f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK16WM:{ *:[v16i1] }:$mask, (undef:{ *:[v16f32] }))<<P:Predicate_masked_load>> - Complexity = 28
                          // Dst: (VMOVUPSZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*440636*/              0, /*End of Scope*/
/*440637*/            /*Scope*/ 20, /*->440658*/
/*440638*/              OPC_CheckPredicate, 104, // Predicate_X86mExpandingLoad
/*440640*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*440642*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*440645*/              OPC_EmitMergeInputChains1_0,
/*440646*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPSZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (masked_ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src, (undef:{ *:[iPTR] }), VK16WM:{ *:[v16i1] }:$mask, (undef:{ *:[v16f32] }))<<P:Predicate_X86mExpandingLoad>> - Complexity = 28
                        // Dst: (VEXPANDPSZrmkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*440658*/            0, /*End of Scope*/
/*440659*/          0, /*End of Scope*/
/*440660*/        /*Scope*/ 74, /*->440735*/
/*440661*/          OPC_RecordChild4, // #3 = $src0
/*440662*/          OPC_CheckType, MVT::v16f32,
/*440664*/          OPC_Scope, 46, /*->440712*/ // 2 children in Scope
/*440666*/            OPC_CheckPredicate, 102, // Predicate_masked_load
/*440668*/            OPC_Scope, 21, /*->440691*/ // 2 children in Scope
/*440670*/              OPC_CheckPredicate, 103, // Predicate_masked_load_aligned
/*440672*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*440674*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*440677*/              OPC_EmitMergeInputChains1_0,
/*440678*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPSZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src0)<<P:Predicate_masked_load>><<P:Predicate_masked_load_aligned>> - Complexity = 25
                        // Dst: (VMOVAPSZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*440691*/            /*Scope*/ 19, /*->440711*/
/*440692*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*440694*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*440697*/              OPC_EmitMergeInputChains1_0,
/*440698*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVUPSZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src0)<<P:Predicate_masked_load>> - Complexity = 25
                        // Dst: (VMOVUPSZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*440711*/            0, /*End of Scope*/
/*440712*/          /*Scope*/ 21, /*->440734*/
/*440713*/            OPC_CheckPredicate, 104, // Predicate_X86mExpandingLoad
/*440715*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*440717*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #4 #5 #6 #7 #8
/*440720*/            OPC_EmitMergeInputChains1_0,
/*440721*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPSZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                      // Src: (masked_ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src, (undef:{ *:[iPTR] }), VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src0)<<P:Predicate_X86mExpandingLoad>> - Complexity = 25
                      // Dst: (VEXPANDPSZrmk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*440734*/          0, /*End of Scope*/
/*440735*/        0, /*End of Scope*/
/*440736*/      /*Scope*/ 61|128,3/*445*/, /*->441183*/
/*440738*/        OPC_CheckChild3Type, MVT::v8i1,
/*440740*/        OPC_Scope, 35|128,2/*291*/, /*->441034*/ // 2 children in Scope
/*440743*/          OPC_MoveChild4,
/*440744*/          OPC_Scope, 13|128,1/*141*/, /*->440888*/ // 2 children in Scope
/*440747*/            OPC_CheckImmAllZerosV,
/*440748*/            OPC_MoveParent,
/*440749*/            OPC_Scope, 91, /*->440842*/ // 2 children in Scope
/*440751*/              OPC_CheckPredicate, 102, // Predicate_masked_load
/*440753*/              OPC_Scope, 44, /*->440799*/ // 3 children in Scope
/*440755*/                OPC_CheckPredicate, 103, // Predicate_masked_load_aligned
/*440757*/                OPC_SwitchType /*2 cases */, 18, MVT::v8f32,// ->440778
/*440760*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*440762*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*440765*/                  OPC_EmitMergeInputChains1_0,
/*440766*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPSZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                            // Src: (masked_ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK8WM:{ *:[v8i1] }:$mask, immAllZerosV:{ *:[v8f32] })<<P:Predicate_masked_load>><<P:Predicate_masked_load_aligned>> - Complexity = 29
                            // Dst: (VMOVAPSZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*440778*/                /*SwitchType*/ 18, MVT::v8f64,// ->440798
/*440780*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*440782*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*440785*/                  OPC_EmitMergeInputChains1_0,
/*440786*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                            // Src: (masked_ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK8WM:{ *:[v8i1] }:$mask, immAllZerosV:{ *:[v8f64] })<<P:Predicate_masked_load>><<P:Predicate_masked_load_aligned>> - Complexity = 29
                            // Dst: (VMOVAPDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*440798*/                0, // EndSwitchType
/*440799*/              /*Scope*/ 20, /*->440820*/
/*440800*/                OPC_CheckType, MVT::v8f32,
/*440802*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*440804*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*440807*/                OPC_EmitMergeInputChains1_0,
/*440808*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVUPSZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK8WM:{ *:[v8i1] }:$mask, immAllZerosV:{ *:[v8f32] })<<P:Predicate_masked_load>> - Complexity = 29
                          // Dst: (VMOVUPSZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*440820*/              /*Scope*/ 20, /*->440841*/
/*440821*/                OPC_CheckType, MVT::v8f64,
/*440823*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*440825*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*440828*/                OPC_EmitMergeInputChains1_0,
/*440829*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVUPDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK8WM:{ *:[v8i1] }:$mask, immAllZerosV:{ *:[v8f64] })<<P:Predicate_masked_load>> - Complexity = 29
                          // Dst: (VMOVUPDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*440841*/              0, /*End of Scope*/
/*440842*/            /*Scope*/ 44, /*->440887*/
/*440843*/              OPC_CheckPredicate, 104, // Predicate_X86mExpandingLoad
/*440845*/              OPC_SwitchType /*2 cases */, 18, MVT::v8f32,// ->440866
/*440848*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*440850*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*440853*/                OPC_EmitMergeInputChains1_0,
/*440854*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPSZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src, (undef:{ *:[iPTR] }), VK8WM:{ *:[v8i1] }:$mask, immAllZerosV:{ *:[v8f32] })<<P:Predicate_X86mExpandingLoad>> - Complexity = 29
                          // Dst: (VEXPANDPSZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*440866*/              /*SwitchType*/ 18, MVT::v8f64,// ->440886
/*440868*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*440870*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*440873*/                OPC_EmitMergeInputChains1_0,
/*440874*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src, (undef:{ *:[iPTR] }), VK8WM:{ *:[v8i1] }:$mask, immAllZerosV:{ *:[v8f64] })<<P:Predicate_X86mExpandingLoad>> - Complexity = 29
                          // Dst: (VEXPANDPDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*440886*/              0, // EndSwitchType
/*440887*/            0, /*End of Scope*/
/*440888*/          /*Scope*/ 15|128,1/*143*/, /*->441033*/
/*440890*/            OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*440893*/            OPC_MoveParent,
/*440894*/            OPC_Scope, 91, /*->440987*/ // 2 children in Scope
/*440896*/              OPC_CheckPredicate, 102, // Predicate_masked_load
/*440898*/              OPC_Scope, 44, /*->440944*/ // 3 children in Scope
/*440900*/                OPC_CheckPredicate, 103, // Predicate_masked_load_aligned
/*440902*/                OPC_SwitchType /*2 cases */, 18, MVT::v8f32,// ->440923
/*440905*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*440907*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*440910*/                  OPC_EmitMergeInputChains1_0,
/*440911*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPSZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                            // Src: (masked_ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK8WM:{ *:[v8i1] }:$mask, (undef:{ *:[v8f32] }))<<P:Predicate_masked_load>><<P:Predicate_masked_load_aligned>> - Complexity = 28
                            // Dst: (VMOVAPSZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*440923*/                /*SwitchType*/ 18, MVT::v8f64,// ->440943
/*440925*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*440927*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*440930*/                  OPC_EmitMergeInputChains1_0,
/*440931*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v8f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                            // Src: (masked_ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK8WM:{ *:[v8i1] }:$mask, (undef:{ *:[v8f64] }))<<P:Predicate_masked_load>><<P:Predicate_masked_load_aligned>> - Complexity = 28
                            // Dst: (VMOVAPDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*440943*/                0, // EndSwitchType
/*440944*/              /*Scope*/ 20, /*->440965*/
/*440945*/                OPC_CheckType, MVT::v8f32,
/*440947*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*440949*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*440952*/                OPC_EmitMergeInputChains1_0,
/*440953*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVUPSZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK8WM:{ *:[v8i1] }:$mask, (undef:{ *:[v8f32] }))<<P:Predicate_masked_load>> - Complexity = 28
                          // Dst: (VMOVUPSZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*440965*/              /*Scope*/ 20, /*->440986*/
/*440966*/                OPC_CheckType, MVT::v8f64,
/*440968*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*440970*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*440973*/                OPC_EmitMergeInputChains1_0,
/*440974*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVUPDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK8WM:{ *:[v8i1] }:$mask, (undef:{ *:[v8f64] }))<<P:Predicate_masked_load>> - Complexity = 28
                          // Dst: (VMOVUPDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*440986*/              0, /*End of Scope*/
/*440987*/            /*Scope*/ 44, /*->441032*/
/*440988*/              OPC_CheckPredicate, 104, // Predicate_X86mExpandingLoad
/*440990*/              OPC_SwitchType /*2 cases */, 18, MVT::v8f32,// ->441011
/*440993*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*440995*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*440998*/                OPC_EmitMergeInputChains1_0,
/*440999*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPSZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src, (undef:{ *:[iPTR] }), VK8WM:{ *:[v8i1] }:$mask, (undef:{ *:[v8f32] }))<<P:Predicate_X86mExpandingLoad>> - Complexity = 28
                          // Dst: (VEXPANDPSZ256rmkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*441011*/              /*SwitchType*/ 18, MVT::v8f64,// ->441031
/*441013*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*441015*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*441018*/                OPC_EmitMergeInputChains1_0,
/*441019*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPDZrmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src, (undef:{ *:[iPTR] }), VK8WM:{ *:[v8i1] }:$mask, (undef:{ *:[v8f64] }))<<P:Predicate_X86mExpandingLoad>> - Complexity = 28
                          // Dst: (VEXPANDPDZrmkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*441031*/              0, // EndSwitchType
/*441032*/            0, /*End of Scope*/
/*441033*/          0, /*End of Scope*/
/*441034*/        /*Scope*/ 18|128,1/*146*/, /*->441182*/
/*441036*/          OPC_RecordChild4, // #3 = $src0
/*441037*/          OPC_Scope, 95, /*->441134*/ // 2 children in Scope
/*441039*/            OPC_CheckPredicate, 102, // Predicate_masked_load
/*441041*/            OPC_Scope, 46, /*->441089*/ // 3 children in Scope
/*441043*/              OPC_CheckPredicate, 103, // Predicate_masked_load_aligned
/*441045*/              OPC_SwitchType /*2 cases */, 19, MVT::v8f32,// ->441067
/*441048*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*441050*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*441053*/                OPC_EmitMergeInputChains1_0,
/*441054*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPSZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f32, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                          // Src: (masked_ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src0)<<P:Predicate_masked_load>><<P:Predicate_masked_load_aligned>> - Complexity = 25
                          // Dst: (VMOVAPSZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*441067*/              /*SwitchType*/ 19, MVT::v8f64,// ->441088
/*441069*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*441071*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*441074*/                OPC_EmitMergeInputChains1_0,
/*441075*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v8f64, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                          // Src: (masked_ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src0)<<P:Predicate_masked_load>><<P:Predicate_masked_load_aligned>> - Complexity = 25
                          // Dst: (VMOVAPDZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*441088*/              0, // EndSwitchType
/*441089*/            /*Scope*/ 21, /*->441111*/
/*441090*/              OPC_CheckType, MVT::v8f32,
/*441092*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*441094*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*441097*/              OPC_EmitMergeInputChains1_0,
/*441098*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVUPSZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src0)<<P:Predicate_masked_load>> - Complexity = 25
                        // Dst: (VMOVUPSZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*441111*/            /*Scope*/ 21, /*->441133*/
/*441112*/              OPC_CheckType, MVT::v8f64,
/*441114*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*441116*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*441119*/              OPC_EmitMergeInputChains1_0,
/*441120*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVUPDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src0)<<P:Predicate_masked_load>> - Complexity = 25
                        // Dst: (VMOVUPDZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*441133*/            0, /*End of Scope*/
/*441134*/          /*Scope*/ 46, /*->441181*/
/*441135*/            OPC_CheckPredicate, 104, // Predicate_X86mExpandingLoad
/*441137*/            OPC_SwitchType /*2 cases */, 19, MVT::v8f32,// ->441159
/*441140*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*441142*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #4 #5 #6 #7 #8
/*441145*/              OPC_EmitMergeInputChains1_0,
/*441146*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPSZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src, (undef:{ *:[iPTR] }), VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src0)<<P:Predicate_X86mExpandingLoad>> - Complexity = 25
                        // Dst: (VEXPANDPSZ256rmk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*441159*/            /*SwitchType*/ 19, MVT::v8f64,// ->441180
/*441161*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*441163*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #4 #5 #6 #7 #8
/*441166*/              OPC_EmitMergeInputChains1_0,
/*441167*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPDZrmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src, (undef:{ *:[iPTR] }), VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src0)<<P:Predicate_X86mExpandingLoad>> - Complexity = 25
                        // Dst: (VEXPANDPDZrmk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*441180*/            0, // EndSwitchType
/*441181*/          0, /*End of Scope*/
/*441182*/        0, /*End of Scope*/
/*441183*/      /*Scope*/ 61|128,3/*445*/, /*->441630*/
/*441185*/        OPC_CheckChild3Type, MVT::v4i1,
/*441187*/        OPC_Scope, 35|128,2/*291*/, /*->441481*/ // 2 children in Scope
/*441190*/          OPC_MoveChild4,
/*441191*/          OPC_Scope, 13|128,1/*141*/, /*->441335*/ // 2 children in Scope
/*441194*/            OPC_CheckImmAllZerosV,
/*441195*/            OPC_MoveParent,
/*441196*/            OPC_Scope, 91, /*->441289*/ // 2 children in Scope
/*441198*/              OPC_CheckPredicate, 102, // Predicate_masked_load
/*441200*/              OPC_Scope, 44, /*->441246*/ // 3 children in Scope
/*441202*/                OPC_CheckPredicate, 103, // Predicate_masked_load_aligned
/*441204*/                OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->441225
/*441207*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*441209*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*441212*/                  OPC_EmitMergeInputChains1_0,
/*441213*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPSZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                            // Src: (masked_ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK4WM:{ *:[v4i1] }:$mask, immAllZerosV:{ *:[v4f32] })<<P:Predicate_masked_load>><<P:Predicate_masked_load_aligned>> - Complexity = 29
                            // Dst: (VMOVAPSZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*441225*/                /*SwitchType*/ 18, MVT::v4f64,// ->441245
/*441227*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*441229*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*441232*/                  OPC_EmitMergeInputChains1_0,
/*441233*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                            // Src: (masked_ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK4WM:{ *:[v4i1] }:$mask, immAllZerosV:{ *:[v4f64] })<<P:Predicate_masked_load>><<P:Predicate_masked_load_aligned>> - Complexity = 29
                            // Dst: (VMOVAPDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*441245*/                0, // EndSwitchType
/*441246*/              /*Scope*/ 20, /*->441267*/
/*441247*/                OPC_CheckType, MVT::v4f32,
/*441249*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*441251*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*441254*/                OPC_EmitMergeInputChains1_0,
/*441255*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVUPSZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK4WM:{ *:[v4i1] }:$mask, immAllZerosV:{ *:[v4f32] })<<P:Predicate_masked_load>> - Complexity = 29
                          // Dst: (VMOVUPSZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*441267*/              /*Scope*/ 20, /*->441288*/
/*441268*/                OPC_CheckType, MVT::v4f64,
/*441270*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*441272*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*441275*/                OPC_EmitMergeInputChains1_0,
/*441276*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVUPDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK4WM:{ *:[v4i1] }:$mask, immAllZerosV:{ *:[v4f64] })<<P:Predicate_masked_load>> - Complexity = 29
                          // Dst: (VMOVUPDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*441288*/              0, /*End of Scope*/
/*441289*/            /*Scope*/ 44, /*->441334*/
/*441290*/              OPC_CheckPredicate, 104, // Predicate_X86mExpandingLoad
/*441292*/              OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->441313
/*441295*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*441297*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*441300*/                OPC_EmitMergeInputChains1_0,
/*441301*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPSZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src, (undef:{ *:[iPTR] }), VK4WM:{ *:[v4i1] }:$mask, immAllZerosV:{ *:[v4f32] })<<P:Predicate_X86mExpandingLoad>> - Complexity = 29
                          // Dst: (VEXPANDPSZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*441313*/              /*SwitchType*/ 18, MVT::v4f64,// ->441333
/*441315*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*441317*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*441320*/                OPC_EmitMergeInputChains1_0,
/*441321*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src, (undef:{ *:[iPTR] }), VK4WM:{ *:[v4i1] }:$mask, immAllZerosV:{ *:[v4f64] })<<P:Predicate_X86mExpandingLoad>> - Complexity = 29
                          // Dst: (VEXPANDPDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*441333*/              0, // EndSwitchType
/*441334*/            0, /*End of Scope*/
/*441335*/          /*Scope*/ 15|128,1/*143*/, /*->441480*/
/*441337*/            OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*441340*/            OPC_MoveParent,
/*441341*/            OPC_Scope, 91, /*->441434*/ // 2 children in Scope
/*441343*/              OPC_CheckPredicate, 102, // Predicate_masked_load
/*441345*/              OPC_Scope, 44, /*->441391*/ // 3 children in Scope
/*441347*/                OPC_CheckPredicate, 103, // Predicate_masked_load_aligned
/*441349*/                OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->441370
/*441352*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*441354*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*441357*/                  OPC_EmitMergeInputChains1_0,
/*441358*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPSZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                            // Src: (masked_ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK4WM:{ *:[v4i1] }:$mask, (undef:{ *:[v4f32] }))<<P:Predicate_masked_load>><<P:Predicate_masked_load_aligned>> - Complexity = 28
                            // Dst: (VMOVAPSZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*441370*/                /*SwitchType*/ 18, MVT::v4f64,// ->441390
/*441372*/                  OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*441374*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*441377*/                  OPC_EmitMergeInputChains1_0,
/*441378*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                            // Src: (masked_ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK4WM:{ *:[v4i1] }:$mask, (undef:{ *:[v4f64] }))<<P:Predicate_masked_load>><<P:Predicate_masked_load_aligned>> - Complexity = 28
                            // Dst: (VMOVAPDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*441390*/                0, // EndSwitchType
/*441391*/              /*Scope*/ 20, /*->441412*/
/*441392*/                OPC_CheckType, MVT::v4f32,
/*441394*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*441396*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*441399*/                OPC_EmitMergeInputChains1_0,
/*441400*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVUPSZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK4WM:{ *:[v4i1] }:$mask, (undef:{ *:[v4f32] }))<<P:Predicate_masked_load>> - Complexity = 28
                          // Dst: (VMOVUPSZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*441412*/              /*Scope*/ 20, /*->441433*/
/*441413*/                OPC_CheckType, MVT::v4f64,
/*441415*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*441417*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*441420*/                OPC_EmitMergeInputChains1_0,
/*441421*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVUPDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK4WM:{ *:[v4i1] }:$mask, (undef:{ *:[v4f64] }))<<P:Predicate_masked_load>> - Complexity = 28
                          // Dst: (VMOVUPDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*441433*/              0, /*End of Scope*/
/*441434*/            /*Scope*/ 44, /*->441479*/
/*441435*/              OPC_CheckPredicate, 104, // Predicate_X86mExpandingLoad
/*441437*/              OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->441458
/*441440*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*441442*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*441445*/                OPC_EmitMergeInputChains1_0,
/*441446*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPSZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src, (undef:{ *:[iPTR] }), VK4WM:{ *:[v4i1] }:$mask, (undef:{ *:[v4f32] }))<<P:Predicate_X86mExpandingLoad>> - Complexity = 28
                          // Dst: (VEXPANDPSZ128rmkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*441458*/              /*SwitchType*/ 18, MVT::v4f64,// ->441478
/*441460*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*441462*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*441465*/                OPC_EmitMergeInputChains1_0,
/*441466*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPDZ256rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src, (undef:{ *:[iPTR] }), VK4WM:{ *:[v4i1] }:$mask, (undef:{ *:[v4f64] }))<<P:Predicate_X86mExpandingLoad>> - Complexity = 28
                          // Dst: (VEXPANDPDZ256rmkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*441478*/              0, // EndSwitchType
/*441479*/            0, /*End of Scope*/
/*441480*/          0, /*End of Scope*/
/*441481*/        /*Scope*/ 18|128,1/*146*/, /*->441629*/
/*441483*/          OPC_RecordChild4, // #3 = $src0
/*441484*/          OPC_Scope, 95, /*->441581*/ // 2 children in Scope
/*441486*/            OPC_CheckPredicate, 102, // Predicate_masked_load
/*441488*/            OPC_Scope, 46, /*->441536*/ // 3 children in Scope
/*441490*/              OPC_CheckPredicate, 103, // Predicate_masked_load_aligned
/*441492*/              OPC_SwitchType /*2 cases */, 19, MVT::v4f32,// ->441514
/*441495*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*441497*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*441500*/                OPC_EmitMergeInputChains1_0,
/*441501*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPSZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                          // Src: (masked_ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src0)<<P:Predicate_masked_load>><<P:Predicate_masked_load_aligned>> - Complexity = 25
                          // Dst: (VMOVAPSZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*441514*/              /*SwitchType*/ 19, MVT::v4f64,// ->441535
/*441516*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*441518*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*441521*/                OPC_EmitMergeInputChains1_0,
/*441522*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f64, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                          // Src: (masked_ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src0)<<P:Predicate_masked_load>><<P:Predicate_masked_load_aligned>> - Complexity = 25
                          // Dst: (VMOVAPDZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*441535*/              0, // EndSwitchType
/*441536*/            /*Scope*/ 21, /*->441558*/
/*441537*/              OPC_CheckType, MVT::v4f32,
/*441539*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*441541*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*441544*/              OPC_EmitMergeInputChains1_0,
/*441545*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVUPSZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src0)<<P:Predicate_masked_load>> - Complexity = 25
                        // Dst: (VMOVUPSZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*441558*/            /*Scope*/ 21, /*->441580*/
/*441559*/              OPC_CheckType, MVT::v4f64,
/*441561*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*441563*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*441566*/              OPC_EmitMergeInputChains1_0,
/*441567*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVUPDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src0)<<P:Predicate_masked_load>> - Complexity = 25
                        // Dst: (VMOVUPDZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*441580*/            0, /*End of Scope*/
/*441581*/          /*Scope*/ 46, /*->441628*/
/*441582*/            OPC_CheckPredicate, 104, // Predicate_X86mExpandingLoad
/*441584*/            OPC_SwitchType /*2 cases */, 19, MVT::v4f32,// ->441606
/*441587*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*441589*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #4 #5 #6 #7 #8
/*441592*/              OPC_EmitMergeInputChains1_0,
/*441593*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPSZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src, (undef:{ *:[iPTR] }), VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src0)<<P:Predicate_X86mExpandingLoad>> - Complexity = 25
                        // Dst: (VEXPANDPSZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*441606*/            /*SwitchType*/ 19, MVT::v4f64,// ->441627
/*441608*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*441610*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #4 #5 #6 #7 #8
/*441613*/              OPC_EmitMergeInputChains1_0,
/*441614*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPDZ256rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src, (undef:{ *:[iPTR] }), VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src0)<<P:Predicate_X86mExpandingLoad>> - Complexity = 25
                        // Dst: (VEXPANDPDZ256rmk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*441627*/            0, // EndSwitchType
/*441628*/          0, /*End of Scope*/
/*441629*/        0, /*End of Scope*/
/*441630*/      /*Scope*/ 104|128,1/*232*/, /*->441864*/
/*441632*/        OPC_CheckChild3Type, MVT::v2i1,
/*441634*/        OPC_Scope, 23|128,1/*151*/, /*->441788*/ // 2 children in Scope
/*441637*/          OPC_MoveChild4,
/*441638*/          OPC_Scope, 72, /*->441712*/ // 2 children in Scope
/*441640*/            OPC_CheckImmAllZerosV,
/*441641*/            OPC_MoveParent,
/*441642*/            OPC_CheckType, MVT::v2f64,
/*441644*/            OPC_Scope, 44, /*->441690*/ // 2 children in Scope
/*441646*/              OPC_CheckPredicate, 102, // Predicate_masked_load
/*441648*/              OPC_Scope, 20, /*->441670*/ // 2 children in Scope
/*441650*/                OPC_CheckPredicate, 103, // Predicate_masked_load_aligned
/*441652*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*441654*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*441657*/                OPC_EmitMergeInputChains1_0,
/*441658*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK2WM:{ *:[v2i1] }:$mask, immAllZerosV:{ *:[v2f64] })<<P:Predicate_masked_load>><<P:Predicate_masked_load_aligned>> - Complexity = 29
                          // Dst: (VMOVAPDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*441670*/              /*Scope*/ 18, /*->441689*/
/*441671*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*441673*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*441676*/                OPC_EmitMergeInputChains1_0,
/*441677*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVUPDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK2WM:{ *:[v2i1] }:$mask, immAllZerosV:{ *:[v2f64] })<<P:Predicate_masked_load>> - Complexity = 29
                          // Dst: (VMOVUPDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*441689*/              0, /*End of Scope*/
/*441690*/            /*Scope*/ 20, /*->441711*/
/*441691*/              OPC_CheckPredicate, 104, // Predicate_X86mExpandingLoad
/*441693*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*441695*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*441698*/              OPC_EmitMergeInputChains1_0,
/*441699*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (masked_ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src, (undef:{ *:[iPTR] }), VK2WM:{ *:[v2i1] }:$mask, immAllZerosV:{ *:[v2f64] })<<P:Predicate_X86mExpandingLoad>> - Complexity = 29
                        // Dst: (VEXPANDPDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*441711*/            0, /*End of Scope*/
/*441712*/          /*Scope*/ 74, /*->441787*/
/*441713*/            OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*441716*/            OPC_MoveParent,
/*441717*/            OPC_CheckType, MVT::v2f64,
/*441719*/            OPC_Scope, 44, /*->441765*/ // 2 children in Scope
/*441721*/              OPC_CheckPredicate, 102, // Predicate_masked_load
/*441723*/              OPC_Scope, 20, /*->441745*/ // 2 children in Scope
/*441725*/                OPC_CheckPredicate, 103, // Predicate_masked_load_aligned
/*441727*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*441729*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*441732*/                OPC_EmitMergeInputChains1_0,
/*441733*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK2WM:{ *:[v2i1] }:$mask, (undef:{ *:[v2f64] }))<<P:Predicate_masked_load>><<P:Predicate_masked_load_aligned>> - Complexity = 28
                          // Dst: (VMOVAPDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*441745*/              /*Scope*/ 18, /*->441764*/
/*441746*/                OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*441748*/                OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #3 #4 #5 #6 #7
/*441751*/                OPC_EmitMergeInputChains1_0,
/*441752*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVUPDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                          // Src: (masked_ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK2WM:{ *:[v2i1] }:$mask, (undef:{ *:[v2f64] }))<<P:Predicate_masked_load>> - Complexity = 28
                          // Dst: (VMOVUPDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*441764*/              0, /*End of Scope*/
/*441765*/            /*Scope*/ 20, /*->441786*/
/*441766*/              OPC_CheckPredicate, 104, // Predicate_X86mExpandingLoad
/*441768*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*441770*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*441773*/              OPC_EmitMergeInputChains1_0,
/*441774*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPDZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                        // Src: (masked_ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src, (undef:{ *:[iPTR] }), VK2WM:{ *:[v2i1] }:$mask, (undef:{ *:[v2f64] }))<<P:Predicate_X86mExpandingLoad>> - Complexity = 28
                        // Dst: (VEXPANDPDZ128rmkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*441786*/            0, /*End of Scope*/
/*441787*/          0, /*End of Scope*/
/*441788*/        /*Scope*/ 74, /*->441863*/
/*441789*/          OPC_RecordChild4, // #3 = $src0
/*441790*/          OPC_CheckType, MVT::v2f64,
/*441792*/          OPC_Scope, 46, /*->441840*/ // 2 children in Scope
/*441794*/            OPC_CheckPredicate, 102, // Predicate_masked_load
/*441796*/            OPC_Scope, 21, /*->441819*/ // 2 children in Scope
/*441798*/              OPC_CheckPredicate, 103, // Predicate_masked_load_aligned
/*441800*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*441802*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*441805*/              OPC_EmitMergeInputChains1_0,
/*441806*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVAPDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src0)<<P:Predicate_masked_load>><<P:Predicate_masked_load_aligned>> - Complexity = 25
                        // Dst: (VMOVAPDZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*441819*/            /*Scope*/ 19, /*->441839*/
/*441820*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*441822*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$ptr #4 #5 #6 #7 #8
/*441825*/              OPC_EmitMergeInputChains1_0,
/*441826*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVUPDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                        // Src: (masked_ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$ptr, (undef:{ *:[iPTR] }), VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src0)<<P:Predicate_masked_load>> - Complexity = 25
                        // Dst: (VMOVUPDZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$ptr)
/*441839*/            0, /*End of Scope*/
/*441840*/          /*Scope*/ 21, /*->441862*/
/*441841*/            OPC_CheckPredicate, 104, // Predicate_X86mExpandingLoad
/*441843*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*441845*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #4 #5 #6 #7 #8
/*441848*/            OPC_EmitMergeInputChains1_0,
/*441849*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPDZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 7/*#Ops*/, 3, 2, 4, 5, 6, 7, 8, 
                      // Src: (masked_ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src, (undef:{ *:[iPTR] }), VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src0)<<P:Predicate_X86mExpandingLoad>> - Complexity = 25
                      // Dst: (VEXPANDPDZ128rmk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*441862*/          0, /*End of Scope*/
/*441863*/        0, /*End of Scope*/
/*441864*/      0, /*End of Scope*/
/*441865*/    0, /*End of Scope*/
/*441866*/  /*SwitchOpcode*/ 46|128,1/*174*/, TARGET_VAL(X86ISD::MCVTP2SI),// ->442044
/*441870*/    OPC_Scope, 3|128,1/*131*/, /*->442004*/ // 2 children in Scope
/*441873*/      OPC_MoveChild0,
/*441874*/      OPC_SwitchOpcode /*2 cases */, 62, TARGET_VAL(ISD::LOAD),// ->441940
/*441878*/        OPC_RecordMemRef,
/*441879*/        OPC_RecordNode, // #0 = 'ld' chained node
/*441880*/        OPC_CheckFoldableChainNode,
/*441881*/        OPC_RecordChild1, // #1 = $src
/*441882*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*441884*/        OPC_CheckPredicate, 9, // Predicate_load
/*441886*/        OPC_CheckType, MVT::v2f64,
/*441888*/        OPC_MoveParent,
/*441889*/        OPC_Scope, 24, /*->441915*/ // 2 children in Scope
/*441891*/          OPC_MoveChild1,
/*441892*/          OPC_CheckImmAllZerosV,
/*441893*/          OPC_MoveParent,
/*441894*/          OPC_RecordChild2, // #2 = $mask
/*441895*/          OPC_CheckType, MVT::v4i32,
/*441897*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*441899*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*441902*/          OPC_EmitMergeInputChains1_0,
/*441903*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2DQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86mcvtp2Int:{ *:[v4i32] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>, immAllZerosV:{ *:[v4i32] }, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 29
                    // Dst: (VCVTPD2DQZ128rmkz:{ *:[v4i32] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*441915*/        /*Scope*/ 23, /*->441939*/
/*441916*/          OPC_RecordChild1, // #2 = $src0
/*441917*/          OPC_RecordChild2, // #3 = $mask
/*441918*/          OPC_CheckType, MVT::v4i32,
/*441920*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*441922*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #4 #5 #6 #7 #8
/*441925*/          OPC_EmitMergeInputChains1_0,
/*441926*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2DQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86mcvtp2Int:{ *:[v4i32] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4i32] }:$src0, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 25
                    // Dst: (VCVTPD2DQZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*441939*/        0, /*End of Scope*/
/*441940*/      /*SwitchOpcode*/ 60, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->442003
/*441943*/        OPC_RecordMemRef,
/*441944*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*441945*/        OPC_CheckFoldableChainNode,
/*441946*/        OPC_RecordChild1, // #1 = $src
/*441947*/        OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*441949*/        OPC_CheckType, MVT::v2f64,
/*441951*/        OPC_MoveParent,
/*441952*/        OPC_Scope, 24, /*->441978*/ // 2 children in Scope
/*441954*/          OPC_MoveChild1,
/*441955*/          OPC_CheckImmAllZerosV,
/*441956*/          OPC_MoveParent,
/*441957*/          OPC_RecordChild2, // #2 = $mask
/*441958*/          OPC_CheckType, MVT::v4i32,
/*441960*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*441962*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*441965*/          OPC_EmitMergeInputChains1_0,
/*441966*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2DQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86mcvtp2Int:{ *:[v4i32] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>, immAllZerosV:{ *:[v4i32] }, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 29
                    // Dst: (VCVTPD2DQZ128rmbkz:{ *:[v4i32] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*441978*/        /*Scope*/ 23, /*->442002*/
/*441979*/          OPC_RecordChild1, // #2 = $src0
/*441980*/          OPC_RecordChild2, // #3 = $mask
/*441981*/          OPC_CheckType, MVT::v4i32,
/*441983*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*441985*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #4 #5 #6 #7 #8
/*441988*/          OPC_EmitMergeInputChains1_0,
/*441989*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2DQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86mcvtp2Int:{ *:[v4i32] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v4i32] }:$src0, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 25
                    // Dst: (VCVTPD2DQZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*442002*/        0, /*End of Scope*/
/*442003*/      0, // EndSwitchOpcode
/*442004*/    /*Scope*/ 38, /*->442043*/
/*442005*/      OPC_RecordChild0, // #0 = $src
/*442006*/      OPC_CheckChild0Type, MVT::v2f64,
/*442008*/      OPC_Scope, 16, /*->442026*/ // 2 children in Scope
/*442010*/        OPC_MoveChild1,
/*442011*/        OPC_CheckImmAllZerosV,
/*442012*/        OPC_MoveParent,
/*442013*/        OPC_RecordChild2, // #1 = $mask
/*442014*/        OPC_CheckType, MVT::v4i32,
/*442016*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*442018*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2DQZ128rrkz), 0,
                      MVT::v4i32, 2/*#Ops*/, 1, 0, 
                  // Src: (X86mcvtp2Int:{ *:[v4i32] } VR128X:{ *:[v2f64] }:$src, immAllZerosV:{ *:[v4i32] }, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 7
                  // Dst: (VCVTPD2DQZ128rrkz:{ *:[v4i32] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*442026*/      /*Scope*/ 15, /*->442042*/
/*442027*/        OPC_RecordChild1, // #1 = $src0
/*442028*/        OPC_RecordChild2, // #2 = $mask
/*442029*/        OPC_CheckType, MVT::v4i32,
/*442031*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*442033*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2DQZ128rrk), 0,
                      MVT::v4i32, 3/*#Ops*/, 1, 2, 0, 
                  // Src: (X86mcvtp2Int:{ *:[v4i32] } VR128X:{ *:[v2f64] }:$src, VR128X:{ *:[v4i32] }:$src0, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 3
                  // Dst: (VCVTPD2DQZ128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*442042*/      0, /*End of Scope*/
/*442043*/    0, /*End of Scope*/
/*442044*/  /*SwitchOpcode*/ 46|128,1/*174*/, TARGET_VAL(X86ISD::MCVTTP2SI),// ->442222
/*442048*/    OPC_Scope, 3|128,1/*131*/, /*->442182*/ // 2 children in Scope
/*442051*/      OPC_MoveChild0,
/*442052*/      OPC_SwitchOpcode /*2 cases */, 62, TARGET_VAL(ISD::LOAD),// ->442118
/*442056*/        OPC_RecordMemRef,
/*442057*/        OPC_RecordNode, // #0 = 'ld' chained node
/*442058*/        OPC_CheckFoldableChainNode,
/*442059*/        OPC_RecordChild1, // #1 = $src
/*442060*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*442062*/        OPC_CheckPredicate, 9, // Predicate_load
/*442064*/        OPC_CheckType, MVT::v2f64,
/*442066*/        OPC_MoveParent,
/*442067*/        OPC_Scope, 24, /*->442093*/ // 2 children in Scope
/*442069*/          OPC_MoveChild1,
/*442070*/          OPC_CheckImmAllZerosV,
/*442071*/          OPC_MoveParent,
/*442072*/          OPC_RecordChild2, // #2 = $mask
/*442073*/          OPC_CheckType, MVT::v4i32,
/*442075*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*442077*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*442080*/          OPC_EmitMergeInputChains1_0,
/*442081*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86mcvttp2si:{ *:[v4i32] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>, immAllZerosV:{ *:[v4i32] }, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 29
                    // Dst: (VCVTTPD2DQZ128rmkz:{ *:[v4i32] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*442093*/        /*Scope*/ 23, /*->442117*/
/*442094*/          OPC_RecordChild1, // #2 = $src0
/*442095*/          OPC_RecordChild2, // #3 = $mask
/*442096*/          OPC_CheckType, MVT::v4i32,
/*442098*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*442100*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #4 #5 #6 #7 #8
/*442103*/          OPC_EmitMergeInputChains1_0,
/*442104*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86mcvttp2si:{ *:[v4i32] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4i32] }:$src0, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 25
                    // Dst: (VCVTTPD2DQZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*442117*/        0, /*End of Scope*/
/*442118*/      /*SwitchOpcode*/ 60, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->442181
/*442121*/        OPC_RecordMemRef,
/*442122*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*442123*/        OPC_CheckFoldableChainNode,
/*442124*/        OPC_RecordChild1, // #1 = $src
/*442125*/        OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*442127*/        OPC_CheckType, MVT::v2f64,
/*442129*/        OPC_MoveParent,
/*442130*/        OPC_Scope, 24, /*->442156*/ // 2 children in Scope
/*442132*/          OPC_MoveChild1,
/*442133*/          OPC_CheckImmAllZerosV,
/*442134*/          OPC_MoveParent,
/*442135*/          OPC_RecordChild2, // #2 = $mask
/*442136*/          OPC_CheckType, MVT::v4i32,
/*442138*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*442140*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*442143*/          OPC_EmitMergeInputChains1_0,
/*442144*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86mcvttp2si:{ *:[v4i32] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>, immAllZerosV:{ *:[v4i32] }, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 29
                    // Dst: (VCVTTPD2DQZ128rmbkz:{ *:[v4i32] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*442156*/        /*Scope*/ 23, /*->442180*/
/*442157*/          OPC_RecordChild1, // #2 = $src0
/*442158*/          OPC_RecordChild2, // #3 = $mask
/*442159*/          OPC_CheckType, MVT::v4i32,
/*442161*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*442163*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #4 #5 #6 #7 #8
/*442166*/          OPC_EmitMergeInputChains1_0,
/*442167*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86mcvttp2si:{ *:[v4i32] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v4i32] }:$src0, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 25
                    // Dst: (VCVTTPD2DQZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*442180*/        0, /*End of Scope*/
/*442181*/      0, // EndSwitchOpcode
/*442182*/    /*Scope*/ 38, /*->442221*/
/*442183*/      OPC_RecordChild0, // #0 = $src
/*442184*/      OPC_CheckChild0Type, MVT::v2f64,
/*442186*/      OPC_Scope, 16, /*->442204*/ // 2 children in Scope
/*442188*/        OPC_MoveChild1,
/*442189*/        OPC_CheckImmAllZerosV,
/*442190*/        OPC_MoveParent,
/*442191*/        OPC_RecordChild2, // #1 = $mask
/*442192*/        OPC_CheckType, MVT::v4i32,
/*442194*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*442196*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZ128rrkz), 0,
                      MVT::v4i32, 2/*#Ops*/, 1, 0, 
                  // Src: (X86mcvttp2si:{ *:[v4i32] } VR128X:{ *:[v2f64] }:$src, immAllZerosV:{ *:[v4i32] }, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 7
                  // Dst: (VCVTTPD2DQZ128rrkz:{ *:[v4i32] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*442204*/      /*Scope*/ 15, /*->442220*/
/*442205*/        OPC_RecordChild1, // #1 = $src0
/*442206*/        OPC_RecordChild2, // #2 = $mask
/*442207*/        OPC_CheckType, MVT::v4i32,
/*442209*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*442211*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZ128rrk), 0,
                      MVT::v4i32, 3/*#Ops*/, 1, 2, 0, 
                  // Src: (X86mcvttp2si:{ *:[v4i32] } VR128X:{ *:[v2f64] }:$src, VR128X:{ *:[v4i32] }:$src0, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 3
                  // Dst: (VCVTTPD2DQZ128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*442220*/      0, /*End of Scope*/
/*442221*/    0, /*End of Scope*/
/*442222*/  /*SwitchOpcode*/ 46|128,1/*174*/, TARGET_VAL(X86ISD::MCVTP2UI),// ->442400
/*442226*/    OPC_Scope, 3|128,1/*131*/, /*->442360*/ // 2 children in Scope
/*442229*/      OPC_MoveChild0,
/*442230*/      OPC_SwitchOpcode /*2 cases */, 62, TARGET_VAL(ISD::LOAD),// ->442296
/*442234*/        OPC_RecordMemRef,
/*442235*/        OPC_RecordNode, // #0 = 'ld' chained node
/*442236*/        OPC_CheckFoldableChainNode,
/*442237*/        OPC_RecordChild1, // #1 = $src
/*442238*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*442240*/        OPC_CheckPredicate, 9, // Predicate_load
/*442242*/        OPC_CheckType, MVT::v2f64,
/*442244*/        OPC_MoveParent,
/*442245*/        OPC_Scope, 24, /*->442271*/ // 2 children in Scope
/*442247*/          OPC_MoveChild1,
/*442248*/          OPC_CheckImmAllZerosV,
/*442249*/          OPC_MoveParent,
/*442250*/          OPC_RecordChild2, // #2 = $mask
/*442251*/          OPC_CheckType, MVT::v4i32,
/*442253*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*442255*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*442258*/          OPC_EmitMergeInputChains1_0,
/*442259*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UDQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86mcvtp2UInt:{ *:[v4i32] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>, immAllZerosV:{ *:[v4i32] }, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 29
                    // Dst: (VCVTPD2UDQZ128rmkz:{ *:[v4i32] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*442271*/        /*Scope*/ 23, /*->442295*/
/*442272*/          OPC_RecordChild1, // #2 = $src0
/*442273*/          OPC_RecordChild2, // #3 = $mask
/*442274*/          OPC_CheckType, MVT::v4i32,
/*442276*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*442278*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #4 #5 #6 #7 #8
/*442281*/          OPC_EmitMergeInputChains1_0,
/*442282*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UDQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86mcvtp2UInt:{ *:[v4i32] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4i32] }:$src0, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 25
                    // Dst: (VCVTPD2UDQZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*442295*/        0, /*End of Scope*/
/*442296*/      /*SwitchOpcode*/ 60, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->442359
/*442299*/        OPC_RecordMemRef,
/*442300*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*442301*/        OPC_CheckFoldableChainNode,
/*442302*/        OPC_RecordChild1, // #1 = $src
/*442303*/        OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*442305*/        OPC_CheckType, MVT::v2f64,
/*442307*/        OPC_MoveParent,
/*442308*/        OPC_Scope, 24, /*->442334*/ // 2 children in Scope
/*442310*/          OPC_MoveChild1,
/*442311*/          OPC_CheckImmAllZerosV,
/*442312*/          OPC_MoveParent,
/*442313*/          OPC_RecordChild2, // #2 = $mask
/*442314*/          OPC_CheckType, MVT::v4i32,
/*442316*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*442318*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*442321*/          OPC_EmitMergeInputChains1_0,
/*442322*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UDQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86mcvtp2UInt:{ *:[v4i32] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>, immAllZerosV:{ *:[v4i32] }, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 29
                    // Dst: (VCVTPD2UDQZ128rmbkz:{ *:[v4i32] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*442334*/        /*Scope*/ 23, /*->442358*/
/*442335*/          OPC_RecordChild1, // #2 = $src0
/*442336*/          OPC_RecordChild2, // #3 = $mask
/*442337*/          OPC_CheckType, MVT::v4i32,
/*442339*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*442341*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #4 #5 #6 #7 #8
/*442344*/          OPC_EmitMergeInputChains1_0,
/*442345*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UDQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86mcvtp2UInt:{ *:[v4i32] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v4i32] }:$src0, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 25
                    // Dst: (VCVTPD2UDQZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*442358*/        0, /*End of Scope*/
/*442359*/      0, // EndSwitchOpcode
/*442360*/    /*Scope*/ 38, /*->442399*/
/*442361*/      OPC_RecordChild0, // #0 = $src
/*442362*/      OPC_CheckChild0Type, MVT::v2f64,
/*442364*/      OPC_Scope, 16, /*->442382*/ // 2 children in Scope
/*442366*/        OPC_MoveChild1,
/*442367*/        OPC_CheckImmAllZerosV,
/*442368*/        OPC_MoveParent,
/*442369*/        OPC_RecordChild2, // #1 = $mask
/*442370*/        OPC_CheckType, MVT::v4i32,
/*442372*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*442374*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UDQZ128rrkz), 0,
                      MVT::v4i32, 2/*#Ops*/, 1, 0, 
                  // Src: (X86mcvtp2UInt:{ *:[v4i32] } VR128X:{ *:[v2f64] }:$src, immAllZerosV:{ *:[v4i32] }, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 7
                  // Dst: (VCVTPD2UDQZ128rrkz:{ *:[v4i32] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*442382*/      /*Scope*/ 15, /*->442398*/
/*442383*/        OPC_RecordChild1, // #1 = $src0
/*442384*/        OPC_RecordChild2, // #2 = $mask
/*442385*/        OPC_CheckType, MVT::v4i32,
/*442387*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*442389*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UDQZ128rrk), 0,
                      MVT::v4i32, 3/*#Ops*/, 1, 2, 0, 
                  // Src: (X86mcvtp2UInt:{ *:[v4i32] } VR128X:{ *:[v2f64] }:$src, VR128X:{ *:[v4i32] }:$src0, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 3
                  // Dst: (VCVTPD2UDQZ128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*442398*/      0, /*End of Scope*/
/*442399*/    0, /*End of Scope*/
/*442400*/  /*SwitchOpcode*/ 46|128,1/*174*/, TARGET_VAL(X86ISD::MCVTTP2UI),// ->442578
/*442404*/    OPC_Scope, 3|128,1/*131*/, /*->442538*/ // 2 children in Scope
/*442407*/      OPC_MoveChild0,
/*442408*/      OPC_SwitchOpcode /*2 cases */, 62, TARGET_VAL(ISD::LOAD),// ->442474
/*442412*/        OPC_RecordMemRef,
/*442413*/        OPC_RecordNode, // #0 = 'ld' chained node
/*442414*/        OPC_CheckFoldableChainNode,
/*442415*/        OPC_RecordChild1, // #1 = $src
/*442416*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*442418*/        OPC_CheckPredicate, 9, // Predicate_load
/*442420*/        OPC_CheckType, MVT::v2f64,
/*442422*/        OPC_MoveParent,
/*442423*/        OPC_Scope, 24, /*->442449*/ // 2 children in Scope
/*442425*/          OPC_MoveChild1,
/*442426*/          OPC_CheckImmAllZerosV,
/*442427*/          OPC_MoveParent,
/*442428*/          OPC_RecordChild2, // #2 = $mask
/*442429*/          OPC_CheckType, MVT::v4i32,
/*442431*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*442433*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*442436*/          OPC_EmitMergeInputChains1_0,
/*442437*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86mcvttp2ui:{ *:[v4i32] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>, immAllZerosV:{ *:[v4i32] }, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 29
                    // Dst: (VCVTTPD2UDQZ128rmkz:{ *:[v4i32] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*442449*/        /*Scope*/ 23, /*->442473*/
/*442450*/          OPC_RecordChild1, // #2 = $src0
/*442451*/          OPC_RecordChild2, // #3 = $mask
/*442452*/          OPC_CheckType, MVT::v4i32,
/*442454*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*442456*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #4 #5 #6 #7 #8
/*442459*/          OPC_EmitMergeInputChains1_0,
/*442460*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86mcvttp2ui:{ *:[v4i32] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4i32] }:$src0, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 25
                    // Dst: (VCVTTPD2UDQZ128rmk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*442473*/        0, /*End of Scope*/
/*442474*/      /*SwitchOpcode*/ 60, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->442537
/*442477*/        OPC_RecordMemRef,
/*442478*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*442479*/        OPC_CheckFoldableChainNode,
/*442480*/        OPC_RecordChild1, // #1 = $src
/*442481*/        OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*442483*/        OPC_CheckType, MVT::v2f64,
/*442485*/        OPC_MoveParent,
/*442486*/        OPC_Scope, 24, /*->442512*/ // 2 children in Scope
/*442488*/          OPC_MoveChild1,
/*442489*/          OPC_CheckImmAllZerosV,
/*442490*/          OPC_MoveParent,
/*442491*/          OPC_RecordChild2, // #2 = $mask
/*442492*/          OPC_CheckType, MVT::v4i32,
/*442494*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*442496*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*442499*/          OPC_EmitMergeInputChains1_0,
/*442500*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86mcvttp2ui:{ *:[v4i32] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>, immAllZerosV:{ *:[v4i32] }, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 29
                    // Dst: (VCVTTPD2UDQZ128rmbkz:{ *:[v4i32] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*442512*/        /*Scope*/ 23, /*->442536*/
/*442513*/          OPC_RecordChild1, // #2 = $src0
/*442514*/          OPC_RecordChild2, // #3 = $mask
/*442515*/          OPC_CheckType, MVT::v4i32,
/*442517*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*442519*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #4 #5 #6 #7 #8
/*442522*/          OPC_EmitMergeInputChains1_0,
/*442523*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86mcvttp2ui:{ *:[v4i32] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v4i32] }:$src0, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 25
                    // Dst: (VCVTTPD2UDQZ128rmbk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*442536*/        0, /*End of Scope*/
/*442537*/      0, // EndSwitchOpcode
/*442538*/    /*Scope*/ 38, /*->442577*/
/*442539*/      OPC_RecordChild0, // #0 = $src
/*442540*/      OPC_CheckChild0Type, MVT::v2f64,
/*442542*/      OPC_Scope, 16, /*->442560*/ // 2 children in Scope
/*442544*/        OPC_MoveChild1,
/*442545*/        OPC_CheckImmAllZerosV,
/*442546*/        OPC_MoveParent,
/*442547*/        OPC_RecordChild2, // #1 = $mask
/*442548*/        OPC_CheckType, MVT::v4i32,
/*442550*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*442552*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZ128rrkz), 0,
                      MVT::v4i32, 2/*#Ops*/, 1, 0, 
                  // Src: (X86mcvttp2ui:{ *:[v4i32] } VR128X:{ *:[v2f64] }:$src, immAllZerosV:{ *:[v4i32] }, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 7
                  // Dst: (VCVTTPD2UDQZ128rrkz:{ *:[v4i32] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*442560*/      /*Scope*/ 15, /*->442576*/
/*442561*/        OPC_RecordChild1, // #1 = $src0
/*442562*/        OPC_RecordChild2, // #2 = $mask
/*442563*/        OPC_CheckType, MVT::v4i32,
/*442565*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*442567*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZ128rrk), 0,
                      MVT::v4i32, 3/*#Ops*/, 1, 2, 0, 
                  // Src: (X86mcvttp2ui:{ *:[v4i32] } VR128X:{ *:[v2f64] }:$src, VR128X:{ *:[v4i32] }:$src0, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 3
                  // Dst: (VCVTTPD2UDQZ128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*442576*/      0, /*End of Scope*/
/*442577*/    0, /*End of Scope*/
/*442578*/  /*SwitchOpcode*/ 46|128,1/*174*/, TARGET_VAL(X86ISD::MCVTNEPS2BF16),// ->442756
/*442582*/    OPC_Scope, 3|128,1/*131*/, /*->442716*/ // 2 children in Scope
/*442585*/      OPC_MoveChild0,
/*442586*/      OPC_SwitchOpcode /*2 cases */, 62, TARGET_VAL(ISD::LOAD),// ->442652
/*442590*/        OPC_RecordMemRef,
/*442591*/        OPC_RecordNode, // #0 = 'ld' chained node
/*442592*/        OPC_CheckFoldableChainNode,
/*442593*/        OPC_RecordChild1, // #1 = $src
/*442594*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*442596*/        OPC_CheckPredicate, 9, // Predicate_load
/*442598*/        OPC_CheckType, MVT::v4f32,
/*442600*/        OPC_MoveParent,
/*442601*/        OPC_Scope, 24, /*->442627*/ // 2 children in Scope
/*442603*/          OPC_MoveChild1,
/*442604*/          OPC_CheckImmAllZerosV,
/*442605*/          OPC_MoveParent,
/*442606*/          OPC_RecordChild2, // #2 = $mask
/*442607*/          OPC_CheckType, MVT::v8i16,
/*442609*/          OPC_CheckPatternPredicate, 182, // (Subtarget->hasBF16()) && (Subtarget->hasVLX())
/*442611*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*442614*/          OPC_EmitMergeInputChains1_0,
/*442615*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTNEPS2BF16Z128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86mcvtneps2bf16:{ *:[v8i16] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>, immAllZerosV:{ *:[v8i16] }, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 29
                    // Dst: (VCVTNEPS2BF16Z128rmkz:{ *:[v8i16] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*442627*/        /*Scope*/ 23, /*->442651*/
/*442628*/          OPC_RecordChild1, // #2 = $src0
/*442629*/          OPC_RecordChild2, // #3 = $mask
/*442630*/          OPC_CheckType, MVT::v8i16,
/*442632*/          OPC_CheckPatternPredicate, 182, // (Subtarget->hasBF16()) && (Subtarget->hasVLX())
/*442634*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #4 #5 #6 #7 #8
/*442637*/          OPC_EmitMergeInputChains1_0,
/*442638*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTNEPS2BF16Z128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86mcvtneps2bf16:{ *:[v8i16] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src0, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 25
                    // Dst: (VCVTNEPS2BF16Z128rmk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*442651*/        0, /*End of Scope*/
/*442652*/      /*SwitchOpcode*/ 60, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->442715
/*442655*/        OPC_RecordMemRef,
/*442656*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*442657*/        OPC_CheckFoldableChainNode,
/*442658*/        OPC_RecordChild1, // #1 = $src
/*442659*/        OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*442661*/        OPC_CheckType, MVT::v4f32,
/*442663*/        OPC_MoveParent,
/*442664*/        OPC_Scope, 24, /*->442690*/ // 2 children in Scope
/*442666*/          OPC_MoveChild1,
/*442667*/          OPC_CheckImmAllZerosV,
/*442668*/          OPC_MoveParent,
/*442669*/          OPC_RecordChild2, // #2 = $mask
/*442670*/          OPC_CheckType, MVT::v8i16,
/*442672*/          OPC_CheckPatternPredicate, 182, // (Subtarget->hasBF16()) && (Subtarget->hasVLX())
/*442674*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*442677*/          OPC_EmitMergeInputChains1_0,
/*442678*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTNEPS2BF16Z128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86mcvtneps2bf16:{ *:[v8i16] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>, immAllZerosV:{ *:[v8i16] }, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 29
                    // Dst: (VCVTNEPS2BF16Z128rmbkz:{ *:[v8i16] } VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*442690*/        /*Scope*/ 23, /*->442714*/
/*442691*/          OPC_RecordChild1, // #2 = $src0
/*442692*/          OPC_RecordChild2, // #3 = $mask
/*442693*/          OPC_CheckType, MVT::v8i16,
/*442695*/          OPC_CheckPatternPredicate, 182, // (Subtarget->hasBF16()) && (Subtarget->hasVLX())
/*442697*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #4 #5 #6 #7 #8
/*442700*/          OPC_EmitMergeInputChains1_0,
/*442701*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTNEPS2BF16Z128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86mcvtneps2bf16:{ *:[v8i16] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v8i16] }:$src0, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 25
                    // Dst: (VCVTNEPS2BF16Z128rmbk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK4WM:{ *:[v4i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*442714*/        0, /*End of Scope*/
/*442715*/      0, // EndSwitchOpcode
/*442716*/    /*Scope*/ 38, /*->442755*/
/*442717*/      OPC_RecordChild0, // #0 = $src
/*442718*/      OPC_CheckChild0Type, MVT::v4f32,
/*442720*/      OPC_Scope, 16, /*->442738*/ // 2 children in Scope
/*442722*/        OPC_MoveChild1,
/*442723*/        OPC_CheckImmAllZerosV,
/*442724*/        OPC_MoveParent,
/*442725*/        OPC_RecordChild2, // #1 = $mask
/*442726*/        OPC_CheckType, MVT::v8i16,
/*442728*/        OPC_CheckPatternPredicate, 182, // (Subtarget->hasBF16()) && (Subtarget->hasVLX())
/*442730*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTNEPS2BF16Z128rrkz), 0,
                      MVT::v8i16, 2/*#Ops*/, 1, 0, 
                  // Src: (X86mcvtneps2bf16:{ *:[v8i16] } VR128X:{ *:[v4f32] }:$src, immAllZerosV:{ *:[v8i16] }, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 7
                  // Dst: (VCVTNEPS2BF16Z128rrkz:{ *:[v8i16] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*442738*/      /*Scope*/ 15, /*->442754*/
/*442739*/        OPC_RecordChild1, // #1 = $src0
/*442740*/        OPC_RecordChild2, // #2 = $mask
/*442741*/        OPC_CheckType, MVT::v8i16,
/*442743*/        OPC_CheckPatternPredicate, 182, // (Subtarget->hasBF16()) && (Subtarget->hasVLX())
/*442745*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTNEPS2BF16Z128rrk), 0,
                      MVT::v8i16, 3/*#Ops*/, 1, 2, 0, 
                  // Src: (X86mcvtneps2bf16:{ *:[v8i16] } VR128X:{ *:[v4f32] }:$src, VR128X:{ *:[v8i16] }:$src0, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 3
                  // Dst: (VCVTNEPS2BF16Z128rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*442754*/      0, /*End of Scope*/
/*442755*/    0, /*End of Scope*/
/*442756*/  /*SwitchOpcode*/ 47|128,5/*687*/, TARGET_VAL(X86ISD::VROTLI),// ->443447
/*442760*/    OPC_Scope, 126|128,2/*382*/, /*->443145*/ // 2 children in Scope
/*442763*/      OPC_MoveChild0,
/*442764*/      OPC_SwitchOpcode /*2 cases */, 93|128,1/*221*/, TARGET_VAL(ISD::LOAD),// ->442990
/*442769*/        OPC_RecordMemRef,
/*442770*/        OPC_RecordNode, // #0 = 'ld' chained node
/*442771*/        OPC_CheckFoldableChainNode,
/*442772*/        OPC_RecordChild1, // #1 = $src1
/*442773*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*442775*/        OPC_CheckPredicate, 9, // Predicate_load
/*442777*/        OPC_MoveParent,
/*442778*/        OPC_RecordChild1, // #2 = $src2
/*442779*/        OPC_MoveChild1,
/*442780*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*442783*/        OPC_MoveParent,
/*442784*/        OPC_SwitchType /*8 cases */, 18, MVT::v16i8,// ->442805
/*442787*/          OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*442789*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*442792*/          OPC_EmitMergeInputChains1_0,
/*442793*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPROTBmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86vrotli:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPROTBmi:{ *:[v16i8] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*442805*/        /*SwitchType*/ 40, MVT::v4i32,// ->442847
/*442807*/          OPC_Scope, 18, /*->442827*/ // 2 children in Scope
/*442809*/            OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*442811*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*442814*/            OPC_EmitMergeInputChains1_0,
/*442815*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPROTDmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86vrotli:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPROTDmi:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*442827*/          /*Scope*/ 18, /*->442846*/
/*442828*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*442830*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*442833*/            OPC_EmitMergeInputChains1_0,
/*442834*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLDZ128mi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86vrotli:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPROLDZ128mi:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*442846*/          0, /*End of Scope*/
/*442847*/        /*SwitchType*/ 40, MVT::v2i64,// ->442889
/*442849*/          OPC_Scope, 18, /*->442869*/ // 2 children in Scope
/*442851*/            OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*442853*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*442856*/            OPC_EmitMergeInputChains1_0,
/*442857*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPROTQmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86vrotli:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPROTQmi:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*442869*/          /*Scope*/ 18, /*->442888*/
/*442870*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*442872*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*442875*/            OPC_EmitMergeInputChains1_0,
/*442876*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLQZ128mi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86vrotli:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPROLQZ128mi:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*442888*/          0, /*End of Scope*/
/*442889*/        /*SwitchType*/ 18, MVT::v8i16,// ->442909
/*442891*/          OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*442893*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*442896*/          OPC_EmitMergeInputChains1_0,
/*442897*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPROTWmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86vrotli:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPROTWmi:{ *:[v8i16] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*442909*/        /*SwitchType*/ 18, MVT::v16i32,// ->442929
/*442911*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*442913*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*442916*/          OPC_EmitMergeInputChains1_0,
/*442917*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLDZmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86vrotli:{ *:[v16i32] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPROLDZmi:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*442929*/        /*SwitchType*/ 18, MVT::v8i32,// ->442949
/*442931*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*442933*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*442936*/          OPC_EmitMergeInputChains1_0,
/*442937*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLDZ256mi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86vrotli:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPROLDZ256mi:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*442949*/        /*SwitchType*/ 18, MVT::v8i64,// ->442969
/*442951*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*442953*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*442956*/          OPC_EmitMergeInputChains1_0,
/*442957*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLQZmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86vrotli:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPROLQZmi:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*442969*/        /*SwitchType*/ 18, MVT::v4i64,// ->442989
/*442971*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*442973*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*442976*/          OPC_EmitMergeInputChains1_0,
/*442977*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLQZ256mi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86vrotli:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPROLQZ256mi:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*442989*/        0, // EndSwitchType
/*442990*/      /*SwitchOpcode*/ 22|128,1/*150*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->443144
/*442994*/        OPC_RecordMemRef,
/*442995*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*442996*/        OPC_CheckFoldableChainNode,
/*442997*/        OPC_RecordChild1, // #1 = $src1
/*442998*/        OPC_Scope, 71, /*->443071*/ // 2 children in Scope
/*443000*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*443002*/          OPC_MoveParent,
/*443003*/          OPC_RecordChild1, // #2 = $src2
/*443004*/          OPC_MoveChild1,
/*443005*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*443008*/          OPC_MoveParent,
/*443009*/          OPC_SwitchType /*3 cases */, 18, MVT::v16i32,// ->443030
/*443012*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*443014*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*443017*/            OPC_EmitMergeInputChains1_0,
/*443018*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLDZmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86vrotli:{ *:[v16i32] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPROLDZmbi:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*443030*/          /*SwitchType*/ 18, MVT::v8i32,// ->443050
/*443032*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*443034*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*443037*/            OPC_EmitMergeInputChains1_0,
/*443038*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLDZ256mbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86vrotli:{ *:[v8i32] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPROLDZ256mbi:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*443050*/          /*SwitchType*/ 18, MVT::v4i32,// ->443070
/*443052*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*443054*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*443057*/            OPC_EmitMergeInputChains1_0,
/*443058*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLDZ128mbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86vrotli:{ *:[v4i32] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPROLDZ128mbi:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*443070*/          0, // EndSwitchType
/*443071*/        /*Scope*/ 71, /*->443143*/
/*443072*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*443074*/          OPC_MoveParent,
/*443075*/          OPC_RecordChild1, // #2 = $src2
/*443076*/          OPC_MoveChild1,
/*443077*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*443080*/          OPC_MoveParent,
/*443081*/          OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->443102
/*443084*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*443086*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*443089*/            OPC_EmitMergeInputChains1_0,
/*443090*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLQZmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86vrotli:{ *:[v8i64] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPROLQZmbi:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*443102*/          /*SwitchType*/ 18, MVT::v4i64,// ->443122
/*443104*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*443106*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*443109*/            OPC_EmitMergeInputChains1_0,
/*443110*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLQZ256mbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86vrotli:{ *:[v4i64] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPROLQZ256mbi:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*443122*/          /*SwitchType*/ 18, MVT::v2i64,// ->443142
/*443124*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*443126*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*443129*/            OPC_EmitMergeInputChains1_0,
/*443130*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLQZ128mbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86vrotli:{ *:[v2i64] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPROLQZ128mbi:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*443142*/          0, // EndSwitchType
/*443143*/        0, /*End of Scope*/
/*443144*/      0, // EndSwitchOpcode
/*443145*/    /*Scope*/ 43|128,2/*299*/, /*->443446*/
/*443147*/      OPC_RecordChild0, // #0 = $src1
/*443148*/      OPC_RecordChild1, // #1 = $src2
/*443149*/      OPC_MoveChild1,
/*443150*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*443153*/      OPC_MoveParent,
/*443154*/      OPC_SwitchType /*8 cases */, 10, MVT::v16i8,// ->443167
/*443157*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*443159*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPROTBri), 0,
                      MVT::v16i8, 2/*#Ops*/, 0, 1, 
                  // Src: (X86vrotli:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                  // Dst: (VPROTBri:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (timm:{ *:[i8] }):$src2)
/*443167*/      /*SwitchType*/ 64, MVT::v4i32,// ->443233
/*443169*/        OPC_Scope, 10, /*->443181*/ // 3 children in Scope
/*443171*/          OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*443173*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPROTDri), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vrotli:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPROTDri:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$src2)
/*443181*/        /*Scope*/ 10, /*->443192*/
/*443182*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*443184*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLDZ128ri), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vrotli:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPROLDZ128ri:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$src2)
/*443192*/        /*Scope*/ 39, /*->443232*/
/*443193*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*443195*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #2
/*443201*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*443204*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*443213*/          OPC_EmitNode1, TARGET_VAL(X86::VPROLDZri), 0,
                        MVT::v16i32, 2/*#Ops*/, 4, 1,  // Results = #5
/*443221*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*443224*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4i32, 2/*#Ops*/, 5, 6, 
                    // Src: (X86vrotli:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (EXTRACT_SUBREG:{ *:[v4i32] } (VPROLDZri:{ *:[v16i32] } (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v4i32] }:$src1, sub_xmm:{ *:[i32] }), (timm:{ *:[i8] }):$src2), sub_xmm:{ *:[i32] })
/*443232*/        0, /*End of Scope*/
/*443233*/      /*SwitchType*/ 64, MVT::v2i64,// ->443299
/*443235*/        OPC_Scope, 10, /*->443247*/ // 3 children in Scope
/*443237*/          OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*443239*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPROTQri), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vrotli:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPROTQri:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, (timm:{ *:[i8] }):$src2)
/*443247*/        /*Scope*/ 10, /*->443258*/
/*443248*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*443250*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLQZ128ri), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vrotli:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPROLQZ128ri:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (timm:{ *:[i8] }):$src2)
/*443258*/        /*Scope*/ 39, /*->443298*/
/*443259*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*443261*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #2
/*443267*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*443270*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*443279*/          OPC_EmitNode1, TARGET_VAL(X86::VPROLQZri), 0,
                        MVT::v8i64, 2/*#Ops*/, 4, 1,  // Results = #5
/*443287*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*443290*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v2i64, 2/*#Ops*/, 5, 6, 
                    // Src: (X86vrotli:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (EXTRACT_SUBREG:{ *:[v2i64] } (VPROLQZri:{ *:[v8i64] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), (timm:{ *:[i8] }):$src2), sub_xmm:{ *:[i32] })
/*443298*/        0, /*End of Scope*/
/*443299*/      /*SwitchType*/ 10, MVT::v8i16,// ->443311
/*443301*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*443303*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPROTWri), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (X86vrotli:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                  // Dst: (VPROTWri:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (timm:{ *:[i8] }):$src2)
/*443311*/      /*SwitchType*/ 10, MVT::v16i32,// ->443323
/*443313*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*443315*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLDZri), 0,
                      MVT::v16i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86vrotli:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                  // Dst: (VPROLDZri:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (timm:{ *:[i8] }):$src2)
/*443323*/      /*SwitchType*/ 53, MVT::v8i32,// ->443378
/*443325*/        OPC_Scope, 10, /*->443337*/ // 2 children in Scope
/*443327*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*443329*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLDZ256ri), 0,
                        MVT::v8i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vrotli:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPROLDZ256ri:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (timm:{ *:[i8] }):$src2)
/*443337*/        /*Scope*/ 39, /*->443377*/
/*443338*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*443340*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #2
/*443346*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*443349*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*443358*/          OPC_EmitNode1, TARGET_VAL(X86::VPROLDZri), 0,
                        MVT::v16i32, 2/*#Ops*/, 4, 1,  // Results = #5
/*443366*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*443369*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v8i32, 2/*#Ops*/, 5, 6, 
                    // Src: (X86vrotli:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (EXTRACT_SUBREG:{ *:[v8i32] } (VPROLDZri:{ *:[v16i32] } (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v8i32] }:$src1, sub_ymm:{ *:[i32] }), (timm:{ *:[i8] }):$src2), sub_ymm:{ *:[i32] })
/*443377*/        0, /*End of Scope*/
/*443378*/      /*SwitchType*/ 10, MVT::v8i64,// ->443390
/*443380*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*443382*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLQZri), 0,
                      MVT::v8i64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86vrotli:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                  // Dst: (VPROLQZri:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (timm:{ *:[i8] }):$src2)
/*443390*/      /*SwitchType*/ 53, MVT::v4i64,// ->443445
/*443392*/        OPC_Scope, 10, /*->443404*/ // 2 children in Scope
/*443394*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*443396*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPROLQZ256ri), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vrotli:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPROLQZ256ri:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (timm:{ *:[i8] }):$src2)
/*443404*/        /*Scope*/ 39, /*->443444*/
/*443405*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*443407*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #2
/*443413*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*443416*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*443425*/          OPC_EmitNode1, TARGET_VAL(X86::VPROLQZri), 0,
                        MVT::v8i64, 2/*#Ops*/, 4, 1,  // Results = #5
/*443433*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*443436*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4i64, 2/*#Ops*/, 5, 6, 
                    // Src: (X86vrotli:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (EXTRACT_SUBREG:{ *:[v4i64] } (VPROLQZri:{ *:[v8i64] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), (timm:{ *:[i8] }):$src2), sub_ymm:{ *:[i32] })
/*443444*/        0, /*End of Scope*/
/*443445*/      0, // EndSwitchType
/*443446*/    0, /*End of Scope*/
/*443447*/  /*SwitchOpcode*/ 21|128,3/*405*/, TARGET_VAL(X86ISD::VPCOM),// ->443856
/*443451*/    OPC_Scope, 41, /*->443494*/ // 9 children in Scope
/*443453*/      OPC_RecordChild0, // #0 = $src1
/*443454*/      OPC_MoveChild1,
/*443455*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*443458*/      OPC_RecordMemRef,
/*443459*/      OPC_RecordNode, // #1 = 'ld' chained node
/*443460*/      OPC_CheckFoldableChainNode,
/*443461*/      OPC_RecordChild1, // #2 = $src2
/*443462*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*443464*/      OPC_CheckPredicate, 9, // Predicate_load
/*443466*/      OPC_MoveParent,
/*443467*/      OPC_RecordChild2, // #3 = $cc
/*443468*/      OPC_MoveChild2,
/*443469*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*443472*/      OPC_MoveParent,
/*443473*/      OPC_CheckType, MVT::v16i8,
/*443475*/      OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*443477*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*443480*/      OPC_EmitMergeInputChains1_1,
/*443481*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMBmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v16i8, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                // Src: (X86vpcom:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$cc) - Complexity = 28
                // Dst: (VPCOMBmi:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/*443494*/    /*Scope*/ 42, /*->443537*/
/*443495*/      OPC_MoveChild0,
/*443496*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*443499*/      OPC_RecordMemRef,
/*443500*/      OPC_RecordNode, // #0 = 'ld' chained node
/*443501*/      OPC_CheckFoldableChainNode,
/*443502*/      OPC_RecordChild1, // #1 = $src2
/*443503*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*443505*/      OPC_CheckPredicate, 9, // Predicate_load
/*443507*/      OPC_MoveParent,
/*443508*/      OPC_RecordChild1, // #2 = $src1
/*443509*/      OPC_RecordChild2, // #3 = $cc
/*443510*/      OPC_MoveChild2,
/*443511*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*443514*/      OPC_MoveParent,
/*443515*/      OPC_CheckType, MVT::v16i8,
/*443517*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*443520*/      OPC_EmitMergeInputChains1_0,
/*443521*/      OPC_EmitNodeXForm, 24, 3, // CommuteVPCOMCC
/*443524*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMBmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v16i8, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                // Src: (X86vpcom:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v16i8] }:$src1, (timm:{ *:[i8] }):$cc) - Complexity = 28
                // Dst: (VPCOMBmi:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (CommuteVPCOMCC:{ *:[i8] } (timm:{ *:[i8] }):$cc))
/*443537*/    /*Scope*/ 41, /*->443579*/
/*443538*/      OPC_RecordChild0, // #0 = $src1
/*443539*/      OPC_MoveChild1,
/*443540*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*443543*/      OPC_RecordMemRef,
/*443544*/      OPC_RecordNode, // #1 = 'ld' chained node
/*443545*/      OPC_CheckFoldableChainNode,
/*443546*/      OPC_RecordChild1, // #2 = $src2
/*443547*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*443549*/      OPC_CheckPredicate, 9, // Predicate_load
/*443551*/      OPC_MoveParent,
/*443552*/      OPC_RecordChild2, // #3 = $cc
/*443553*/      OPC_MoveChild2,
/*443554*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*443557*/      OPC_MoveParent,
/*443558*/      OPC_CheckType, MVT::v8i16,
/*443560*/      OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*443562*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*443565*/      OPC_EmitMergeInputChains1_1,
/*443566*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMWmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                // Src: (X86vpcom:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$cc) - Complexity = 28
                // Dst: (VPCOMWmi:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/*443579*/    /*Scope*/ 42, /*->443622*/
/*443580*/      OPC_MoveChild0,
/*443581*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*443584*/      OPC_RecordMemRef,
/*443585*/      OPC_RecordNode, // #0 = 'ld' chained node
/*443586*/      OPC_CheckFoldableChainNode,
/*443587*/      OPC_RecordChild1, // #1 = $src2
/*443588*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*443590*/      OPC_CheckPredicate, 9, // Predicate_load
/*443592*/      OPC_MoveParent,
/*443593*/      OPC_RecordChild1, // #2 = $src1
/*443594*/      OPC_RecordChild2, // #3 = $cc
/*443595*/      OPC_MoveChild2,
/*443596*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*443599*/      OPC_MoveParent,
/*443600*/      OPC_CheckType, MVT::v8i16,
/*443602*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*443605*/      OPC_EmitMergeInputChains1_0,
/*443606*/      OPC_EmitNodeXForm, 24, 3, // CommuteVPCOMCC
/*443609*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMWmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i16, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                // Src: (X86vpcom:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v8i16] }:$src1, (timm:{ *:[i8] }):$cc) - Complexity = 28
                // Dst: (VPCOMWmi:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, (CommuteVPCOMCC:{ *:[i8] } (timm:{ *:[i8] }):$cc))
/*443622*/    /*Scope*/ 41, /*->443664*/
/*443623*/      OPC_RecordChild0, // #0 = $src1
/*443624*/      OPC_MoveChild1,
/*443625*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*443628*/      OPC_RecordMemRef,
/*443629*/      OPC_RecordNode, // #1 = 'ld' chained node
/*443630*/      OPC_CheckFoldableChainNode,
/*443631*/      OPC_RecordChild1, // #2 = $src2
/*443632*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*443634*/      OPC_CheckPredicate, 9, // Predicate_load
/*443636*/      OPC_MoveParent,
/*443637*/      OPC_RecordChild2, // #3 = $cc
/*443638*/      OPC_MoveChild2,
/*443639*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*443642*/      OPC_MoveParent,
/*443643*/      OPC_CheckType, MVT::v4i32,
/*443645*/      OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*443647*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*443650*/      OPC_EmitMergeInputChains1_1,
/*443651*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMDmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                // Src: (X86vpcom:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$cc) - Complexity = 28
                // Dst: (VPCOMDmi:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/*443664*/    /*Scope*/ 42, /*->443707*/
/*443665*/      OPC_MoveChild0,
/*443666*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*443669*/      OPC_RecordMemRef,
/*443670*/      OPC_RecordNode, // #0 = 'ld' chained node
/*443671*/      OPC_CheckFoldableChainNode,
/*443672*/      OPC_RecordChild1, // #1 = $src2
/*443673*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*443675*/      OPC_CheckPredicate, 9, // Predicate_load
/*443677*/      OPC_MoveParent,
/*443678*/      OPC_RecordChild1, // #2 = $src1
/*443679*/      OPC_RecordChild2, // #3 = $cc
/*443680*/      OPC_MoveChild2,
/*443681*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*443684*/      OPC_MoveParent,
/*443685*/      OPC_CheckType, MVT::v4i32,
/*443687*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*443690*/      OPC_EmitMergeInputChains1_0,
/*443691*/      OPC_EmitNodeXForm, 24, 3, // CommuteVPCOMCC
/*443694*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMDmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i32, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                // Src: (X86vpcom:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$cc) - Complexity = 28
                // Dst: (VPCOMDmi:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (CommuteVPCOMCC:{ *:[i8] } (timm:{ *:[i8] }):$cc))
/*443707*/    /*Scope*/ 41, /*->443749*/
/*443708*/      OPC_RecordChild0, // #0 = $src1
/*443709*/      OPC_MoveChild1,
/*443710*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*443713*/      OPC_RecordMemRef,
/*443714*/      OPC_RecordNode, // #1 = 'ld' chained node
/*443715*/      OPC_CheckFoldableChainNode,
/*443716*/      OPC_RecordChild1, // #2 = $src2
/*443717*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*443719*/      OPC_CheckPredicate, 9, // Predicate_load
/*443721*/      OPC_MoveParent,
/*443722*/      OPC_RecordChild2, // #3 = $cc
/*443723*/      OPC_MoveChild2,
/*443724*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*443727*/      OPC_MoveParent,
/*443728*/      OPC_CheckType, MVT::v2i64,
/*443730*/      OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*443732*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*443735*/      OPC_EmitMergeInputChains1_1,
/*443736*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMQmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                // Src: (X86vpcom:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$cc) - Complexity = 28
                // Dst: (VPCOMQmi:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/*443749*/    /*Scope*/ 42, /*->443792*/
/*443750*/      OPC_MoveChild0,
/*443751*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*443754*/      OPC_RecordMemRef,
/*443755*/      OPC_RecordNode, // #0 = 'ld' chained node
/*443756*/      OPC_CheckFoldableChainNode,
/*443757*/      OPC_RecordChild1, // #1 = $src2
/*443758*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*443760*/      OPC_CheckPredicate, 9, // Predicate_load
/*443762*/      OPC_MoveParent,
/*443763*/      OPC_RecordChild1, // #2 = $src1
/*443764*/      OPC_RecordChild2, // #3 = $cc
/*443765*/      OPC_MoveChild2,
/*443766*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*443769*/      OPC_MoveParent,
/*443770*/      OPC_CheckType, MVT::v2i64,
/*443772*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*443775*/      OPC_EmitMergeInputChains1_0,
/*443776*/      OPC_EmitNodeXForm, 24, 3, // CommuteVPCOMCC
/*443779*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMQmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2i64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                // Src: (X86vpcom:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v2i64] }:$src1, (timm:{ *:[i8] }):$cc) - Complexity = 28
                // Dst: (VPCOMQmi:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (CommuteVPCOMCC:{ *:[i8] } (timm:{ *:[i8] }):$cc))
/*443792*/    /*Scope*/ 62, /*->443855*/
/*443793*/      OPC_RecordChild0, // #0 = $src1
/*443794*/      OPC_RecordChild1, // #1 = $src2
/*443795*/      OPC_RecordChild2, // #2 = $cc
/*443796*/      OPC_MoveChild2,
/*443797*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*443800*/      OPC_MoveParent,
/*443801*/      OPC_SwitchType /*4 cases */, 11, MVT::v16i8,// ->443815
/*443804*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*443806*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMBri), 0,
                      MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86vpcom:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2, (timm:{ *:[i8] }):$cc) - Complexity = 6
                  // Dst: (VPCOMBri:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2, (timm:{ *:[i8] }):$cc)
/*443815*/      /*SwitchType*/ 11, MVT::v8i16,// ->443828
/*443817*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*443819*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMWri), 0,
                      MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86vpcom:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2, (timm:{ *:[i8] }):$cc) - Complexity = 6
                  // Dst: (VPCOMWri:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2, (timm:{ *:[i8] }):$cc)
/*443828*/      /*SwitchType*/ 11, MVT::v4i32,// ->443841
/*443830*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*443832*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMDri), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86vpcom:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2, (timm:{ *:[i8] }):$cc) - Complexity = 6
                  // Dst: (VPCOMDri:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2, (timm:{ *:[i8] }):$cc)
/*443841*/      /*SwitchType*/ 11, MVT::v2i64,// ->443854
/*443843*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*443845*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMQri), 0,
                      MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86vpcom:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2, (timm:{ *:[i8] }):$cc) - Complexity = 6
                  // Dst: (VPCOMQri:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2, (timm:{ *:[i8] }):$cc)
/*443854*/      0, // EndSwitchType
/*443855*/    0, /*End of Scope*/
/*443856*/  /*SwitchOpcode*/ 21|128,3/*405*/, TARGET_VAL(X86ISD::VPCOMU),// ->444265
/*443860*/    OPC_Scope, 41, /*->443903*/ // 9 children in Scope
/*443862*/      OPC_RecordChild0, // #0 = $src1
/*443863*/      OPC_MoveChild1,
/*443864*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*443867*/      OPC_RecordMemRef,
/*443868*/      OPC_RecordNode, // #1 = 'ld' chained node
/*443869*/      OPC_CheckFoldableChainNode,
/*443870*/      OPC_RecordChild1, // #2 = $src2
/*443871*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*443873*/      OPC_CheckPredicate, 9, // Predicate_load
/*443875*/      OPC_MoveParent,
/*443876*/      OPC_RecordChild2, // #3 = $cc
/*443877*/      OPC_MoveChild2,
/*443878*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*443881*/      OPC_MoveParent,
/*443882*/      OPC_CheckType, MVT::v16i8,
/*443884*/      OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*443886*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*443889*/      OPC_EmitMergeInputChains1_1,
/*443890*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMUBmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v16i8, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                // Src: (X86vpcomu:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$cc) - Complexity = 28
                // Dst: (VPCOMUBmi:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/*443903*/    /*Scope*/ 42, /*->443946*/
/*443904*/      OPC_MoveChild0,
/*443905*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*443908*/      OPC_RecordMemRef,
/*443909*/      OPC_RecordNode, // #0 = 'ld' chained node
/*443910*/      OPC_CheckFoldableChainNode,
/*443911*/      OPC_RecordChild1, // #1 = $src2
/*443912*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*443914*/      OPC_CheckPredicate, 9, // Predicate_load
/*443916*/      OPC_MoveParent,
/*443917*/      OPC_RecordChild1, // #2 = $src1
/*443918*/      OPC_RecordChild2, // #3 = $cc
/*443919*/      OPC_MoveChild2,
/*443920*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*443923*/      OPC_MoveParent,
/*443924*/      OPC_CheckType, MVT::v16i8,
/*443926*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*443929*/      OPC_EmitMergeInputChains1_0,
/*443930*/      OPC_EmitNodeXForm, 24, 3, // CommuteVPCOMCC
/*443933*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMUBmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v16i8, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                // Src: (X86vpcomu:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v16i8] }:$src1, (timm:{ *:[i8] }):$cc) - Complexity = 28
                // Dst: (VPCOMUBmi:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (CommuteVPCOMCC:{ *:[i8] } (timm:{ *:[i8] }):$cc))
/*443946*/    /*Scope*/ 41, /*->443988*/
/*443947*/      OPC_RecordChild0, // #0 = $src1
/*443948*/      OPC_MoveChild1,
/*443949*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*443952*/      OPC_RecordMemRef,
/*443953*/      OPC_RecordNode, // #1 = 'ld' chained node
/*443954*/      OPC_CheckFoldableChainNode,
/*443955*/      OPC_RecordChild1, // #2 = $src2
/*443956*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*443958*/      OPC_CheckPredicate, 9, // Predicate_load
/*443960*/      OPC_MoveParent,
/*443961*/      OPC_RecordChild2, // #3 = $cc
/*443962*/      OPC_MoveChild2,
/*443963*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*443966*/      OPC_MoveParent,
/*443967*/      OPC_CheckType, MVT::v8i16,
/*443969*/      OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*443971*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*443974*/      OPC_EmitMergeInputChains1_1,
/*443975*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMUWmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                // Src: (X86vpcomu:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$cc) - Complexity = 28
                // Dst: (VPCOMUWmi:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/*443988*/    /*Scope*/ 42, /*->444031*/
/*443989*/      OPC_MoveChild0,
/*443990*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*443993*/      OPC_RecordMemRef,
/*443994*/      OPC_RecordNode, // #0 = 'ld' chained node
/*443995*/      OPC_CheckFoldableChainNode,
/*443996*/      OPC_RecordChild1, // #1 = $src2
/*443997*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*443999*/      OPC_CheckPredicate, 9, // Predicate_load
/*444001*/      OPC_MoveParent,
/*444002*/      OPC_RecordChild1, // #2 = $src1
/*444003*/      OPC_RecordChild2, // #3 = $cc
/*444004*/      OPC_MoveChild2,
/*444005*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*444008*/      OPC_MoveParent,
/*444009*/      OPC_CheckType, MVT::v8i16,
/*444011*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*444014*/      OPC_EmitMergeInputChains1_0,
/*444015*/      OPC_EmitNodeXForm, 24, 3, // CommuteVPCOMCC
/*444018*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMUWmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i16, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                // Src: (X86vpcomu:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v8i16] }:$src1, (timm:{ *:[i8] }):$cc) - Complexity = 28
                // Dst: (VPCOMUWmi:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, (CommuteVPCOMCC:{ *:[i8] } (timm:{ *:[i8] }):$cc))
/*444031*/    /*Scope*/ 41, /*->444073*/
/*444032*/      OPC_RecordChild0, // #0 = $src1
/*444033*/      OPC_MoveChild1,
/*444034*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*444037*/      OPC_RecordMemRef,
/*444038*/      OPC_RecordNode, // #1 = 'ld' chained node
/*444039*/      OPC_CheckFoldableChainNode,
/*444040*/      OPC_RecordChild1, // #2 = $src2
/*444041*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*444043*/      OPC_CheckPredicate, 9, // Predicate_load
/*444045*/      OPC_MoveParent,
/*444046*/      OPC_RecordChild2, // #3 = $cc
/*444047*/      OPC_MoveChild2,
/*444048*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*444051*/      OPC_MoveParent,
/*444052*/      OPC_CheckType, MVT::v4i32,
/*444054*/      OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*444056*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*444059*/      OPC_EmitMergeInputChains1_1,
/*444060*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMUDmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                // Src: (X86vpcomu:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$cc) - Complexity = 28
                // Dst: (VPCOMUDmi:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/*444073*/    /*Scope*/ 42, /*->444116*/
/*444074*/      OPC_MoveChild0,
/*444075*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*444078*/      OPC_RecordMemRef,
/*444079*/      OPC_RecordNode, // #0 = 'ld' chained node
/*444080*/      OPC_CheckFoldableChainNode,
/*444081*/      OPC_RecordChild1, // #1 = $src2
/*444082*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*444084*/      OPC_CheckPredicate, 9, // Predicate_load
/*444086*/      OPC_MoveParent,
/*444087*/      OPC_RecordChild1, // #2 = $src1
/*444088*/      OPC_RecordChild2, // #3 = $cc
/*444089*/      OPC_MoveChild2,
/*444090*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*444093*/      OPC_MoveParent,
/*444094*/      OPC_CheckType, MVT::v4i32,
/*444096*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*444099*/      OPC_EmitMergeInputChains1_0,
/*444100*/      OPC_EmitNodeXForm, 24, 3, // CommuteVPCOMCC
/*444103*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMUDmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i32, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                // Src: (X86vpcomu:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$cc) - Complexity = 28
                // Dst: (VPCOMUDmi:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (CommuteVPCOMCC:{ *:[i8] } (timm:{ *:[i8] }):$cc))
/*444116*/    /*Scope*/ 41, /*->444158*/
/*444117*/      OPC_RecordChild0, // #0 = $src1
/*444118*/      OPC_MoveChild1,
/*444119*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*444122*/      OPC_RecordMemRef,
/*444123*/      OPC_RecordNode, // #1 = 'ld' chained node
/*444124*/      OPC_CheckFoldableChainNode,
/*444125*/      OPC_RecordChild1, // #2 = $src2
/*444126*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*444128*/      OPC_CheckPredicate, 9, // Predicate_load
/*444130*/      OPC_MoveParent,
/*444131*/      OPC_RecordChild2, // #3 = $cc
/*444132*/      OPC_MoveChild2,
/*444133*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*444136*/      OPC_MoveParent,
/*444137*/      OPC_CheckType, MVT::v2i64,
/*444139*/      OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*444141*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*444144*/      OPC_EmitMergeInputChains1_1,
/*444145*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMUQmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                // Src: (X86vpcomu:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$cc) - Complexity = 28
                // Dst: (VPCOMUQmi:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/*444158*/    /*Scope*/ 42, /*->444201*/
/*444159*/      OPC_MoveChild0,
/*444160*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*444163*/      OPC_RecordMemRef,
/*444164*/      OPC_RecordNode, // #0 = 'ld' chained node
/*444165*/      OPC_CheckFoldableChainNode,
/*444166*/      OPC_RecordChild1, // #1 = $src2
/*444167*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*444169*/      OPC_CheckPredicate, 9, // Predicate_load
/*444171*/      OPC_MoveParent,
/*444172*/      OPC_RecordChild1, // #2 = $src1
/*444173*/      OPC_RecordChild2, // #3 = $cc
/*444174*/      OPC_MoveChild2,
/*444175*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*444178*/      OPC_MoveParent,
/*444179*/      OPC_CheckType, MVT::v2i64,
/*444181*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*444184*/      OPC_EmitMergeInputChains1_0,
/*444185*/      OPC_EmitNodeXForm, 24, 3, // CommuteVPCOMCC
/*444188*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMUQmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2i64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                // Src: (X86vpcomu:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v2i64] }:$src1, (timm:{ *:[i8] }):$cc) - Complexity = 28
                // Dst: (VPCOMUQmi:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (CommuteVPCOMCC:{ *:[i8] } (timm:{ *:[i8] }):$cc))
/*444201*/    /*Scope*/ 62, /*->444264*/
/*444202*/      OPC_RecordChild0, // #0 = $src1
/*444203*/      OPC_RecordChild1, // #1 = $src2
/*444204*/      OPC_RecordChild2, // #2 = $cc
/*444205*/      OPC_MoveChild2,
/*444206*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*444209*/      OPC_MoveParent,
/*444210*/      OPC_SwitchType /*4 cases */, 11, MVT::v16i8,// ->444224
/*444213*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*444215*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMUBri), 0,
                      MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86vpcomu:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2, (timm:{ *:[i8] }):$cc) - Complexity = 6
                  // Dst: (VPCOMUBri:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2, (timm:{ *:[i8] }):$cc)
/*444224*/      /*SwitchType*/ 11, MVT::v8i16,// ->444237
/*444226*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*444228*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMUWri), 0,
                      MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86vpcomu:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2, (timm:{ *:[i8] }):$cc) - Complexity = 6
                  // Dst: (VPCOMUWri:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2, (timm:{ *:[i8] }):$cc)
/*444237*/      /*SwitchType*/ 11, MVT::v4i32,// ->444250
/*444239*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*444241*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMUDri), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86vpcomu:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2, (timm:{ *:[i8] }):$cc) - Complexity = 6
                  // Dst: (VPCOMUDri:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2, (timm:{ *:[i8] }):$cc)
/*444250*/      /*SwitchType*/ 11, MVT::v2i64,// ->444263
/*444252*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*444254*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMUQri), 0,
                      MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86vpcomu:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2, (timm:{ *:[i8] }):$cc) - Complexity = 6
                  // Dst: (VPCOMUQri:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2, (timm:{ *:[i8] }):$cc)
/*444263*/      0, // EndSwitchType
/*444264*/    0, /*End of Scope*/
/*444265*/  /*SwitchOpcode*/ 78|128,2/*334*/, TARGET_VAL(X86ISD::PSHUFD),// ->444603
/*444269*/    OPC_Scope, 117|128,1/*245*/, /*->444517*/ // 2 children in Scope
/*444272*/      OPC_MoveChild0,
/*444273*/      OPC_SwitchOpcode /*2 cases */, 32|128,1/*160*/, TARGET_VAL(ISD::LOAD),// ->444438
/*444278*/        OPC_RecordMemRef,
/*444279*/        OPC_RecordNode, // #0 = 'ld' chained node
/*444280*/        OPC_CheckFoldableChainNode,
/*444281*/        OPC_RecordChild1, // #1 = $src1
/*444282*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*444284*/        OPC_CheckPredicate, 9, // Predicate_load
/*444286*/        OPC_Scope, 49, /*->444337*/ // 3 children in Scope
/*444288*/          OPC_MoveParent,
/*444289*/          OPC_RecordChild1, // #2 = $src2
/*444290*/          OPC_MoveChild1,
/*444291*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*444294*/          OPC_MoveParent,
/*444295*/          OPC_SwitchType /*2 cases */, 18, MVT::v4i32,// ->444316
/*444298*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*444300*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*444303*/            OPC_EmitMergeInputChains1_0,
/*444304*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFDmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86PShufd:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPSHUFDmi:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*444316*/          /*SwitchType*/ 18, MVT::v8i32,// ->444336
/*444318*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*444320*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*444323*/            OPC_EmitMergeInputChains1_0,
/*444324*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFDYmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86PShufd:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPSHUFDYmi:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*444336*/          0, // EndSwitchType
/*444337*/        /*Scope*/ 29, /*->444367*/
/*444338*/          OPC_CheckPredicate, 39, // Predicate_memop
/*444340*/          OPC_MoveParent,
/*444341*/          OPC_RecordChild1, // #2 = $src2
/*444342*/          OPC_MoveChild1,
/*444343*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*444346*/          OPC_MoveParent,
/*444347*/          OPC_CheckType, MVT::v4i32,
/*444349*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*444351*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*444354*/          OPC_EmitMergeInputChains1_0,
/*444355*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PSHUFDmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86PShufd:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (PSHUFDmi:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*444367*/        /*Scope*/ 69, /*->444437*/
/*444368*/          OPC_MoveParent,
/*444369*/          OPC_RecordChild1, // #2 = $src2
/*444370*/          OPC_MoveChild1,
/*444371*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*444374*/          OPC_MoveParent,
/*444375*/          OPC_SwitchType /*3 cases */, 18, MVT::v16i32,// ->444396
/*444378*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*444380*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*444383*/            OPC_EmitMergeInputChains1_0,
/*444384*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFDZmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86PShufd:{ *:[v16i32] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPSHUFDZmi:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*444396*/          /*SwitchType*/ 18, MVT::v8i32,// ->444416
/*444398*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*444400*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*444403*/            OPC_EmitMergeInputChains1_0,
/*444404*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFDZ256mi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86PShufd:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPSHUFDZ256mi:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*444416*/          /*SwitchType*/ 18, MVT::v4i32,// ->444436
/*444418*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*444420*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*444423*/            OPC_EmitMergeInputChains1_0,
/*444424*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFDZ128mi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86PShufd:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPSHUFDZ128mi:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*444436*/          0, // EndSwitchType
/*444437*/        0, /*End of Scope*/
/*444438*/      /*SwitchOpcode*/ 75, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->444516
/*444441*/        OPC_RecordMemRef,
/*444442*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*444443*/        OPC_CheckFoldableChainNode,
/*444444*/        OPC_RecordChild1, // #1 = $src1
/*444445*/        OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*444447*/        OPC_MoveParent,
/*444448*/        OPC_RecordChild1, // #2 = $src2
/*444449*/        OPC_MoveChild1,
/*444450*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*444453*/        OPC_MoveParent,
/*444454*/        OPC_SwitchType /*3 cases */, 18, MVT::v16i32,// ->444475
/*444457*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*444459*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*444462*/          OPC_EmitMergeInputChains1_0,
/*444463*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFDZmbi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86PShufd:{ *:[v16i32] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPSHUFDZmbi:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*444475*/        /*SwitchType*/ 18, MVT::v8i32,// ->444495
/*444477*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*444479*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*444482*/          OPC_EmitMergeInputChains1_0,
/*444483*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFDZ256mbi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86PShufd:{ *:[v8i32] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPSHUFDZ256mbi:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*444495*/        /*SwitchType*/ 18, MVT::v4i32,// ->444515
/*444497*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*444499*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*444502*/          OPC_EmitMergeInputChains1_0,
/*444503*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFDZ128mbi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86PShufd:{ *:[v4i32] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPSHUFDZ128mbi:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*444515*/        0, // EndSwitchType
/*444516*/      0, // EndSwitchOpcode
/*444517*/    /*Scope*/ 84, /*->444602*/
/*444518*/      OPC_RecordChild0, // #0 = $src1
/*444519*/      OPC_RecordChild1, // #1 = $src2
/*444520*/      OPC_MoveChild1,
/*444521*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*444524*/      OPC_MoveParent,
/*444525*/      OPC_SwitchType /*3 cases */, 35, MVT::v4i32,// ->444563
/*444528*/        OPC_Scope, 10, /*->444540*/ // 3 children in Scope
/*444530*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*444532*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFDri), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86PShufd:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSHUFDri:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$src2)
/*444540*/        /*Scope*/ 10, /*->444551*/
/*444541*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*444543*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PSHUFDri), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86PShufd:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (PSHUFDri:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$src2)
/*444551*/        /*Scope*/ 10, /*->444562*/
/*444552*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*444554*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFDZ128ri), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86PShufd:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSHUFDZ128ri:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$src2)
/*444562*/        0, /*End of Scope*/
/*444563*/      /*SwitchType*/ 24, MVT::v8i32,// ->444589
/*444565*/        OPC_Scope, 10, /*->444577*/ // 2 children in Scope
/*444567*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*444569*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFDYri), 0,
                        MVT::v8i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86PShufd:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSHUFDYri:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, (timm:{ *:[i8] }):$src2)
/*444577*/        /*Scope*/ 10, /*->444588*/
/*444578*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*444580*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFDZ256ri), 0,
                        MVT::v8i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86PShufd:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSHUFDZ256ri:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (timm:{ *:[i8] }):$src2)
/*444588*/        0, /*End of Scope*/
/*444589*/      /*SwitchType*/ 10, MVT::v16i32,// ->444601
/*444591*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*444593*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFDZri), 0,
                      MVT::v16i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86PShufd:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                  // Dst: (VPSHUFDZri:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (timm:{ *:[i8] }):$src2)
/*444601*/      0, // EndSwitchType
/*444602*/    0, /*End of Scope*/
/*444603*/  /*SwitchOpcode*/ 125|128,1/*253*/, TARGET_VAL(X86ISD::PSHUFHW),// ->444860
/*444607*/    OPC_Scope, 36|128,1/*164*/, /*->444774*/ // 2 children in Scope
/*444610*/      OPC_MoveChild0,
/*444611*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*444614*/      OPC_RecordMemRef,
/*444615*/      OPC_RecordNode, // #0 = 'ld' chained node
/*444616*/      OPC_CheckFoldableChainNode,
/*444617*/      OPC_RecordChild1, // #1 = $src1
/*444618*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*444620*/      OPC_CheckPredicate, 9, // Predicate_load
/*444622*/      OPC_Scope, 49, /*->444673*/ // 3 children in Scope
/*444624*/        OPC_MoveParent,
/*444625*/        OPC_RecordChild1, // #2 = $src2
/*444626*/        OPC_MoveChild1,
/*444627*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*444630*/        OPC_MoveParent,
/*444631*/        OPC_SwitchType /*2 cases */, 18, MVT::v8i16,// ->444652
/*444634*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*444636*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*444639*/          OPC_EmitMergeInputChains1_0,
/*444640*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFHWmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86PShufhw:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPSHUFHWmi:{ *:[v8i16] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*444652*/        /*SwitchType*/ 18, MVT::v16i16,// ->444672
/*444654*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*444656*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*444659*/          OPC_EmitMergeInputChains1_0,
/*444660*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFHWYmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86PShufhw:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPSHUFHWYmi:{ *:[v16i16] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*444672*/        0, // EndSwitchType
/*444673*/      /*Scope*/ 29, /*->444703*/
/*444674*/        OPC_CheckPredicate, 39, // Predicate_memop
/*444676*/        OPC_MoveParent,
/*444677*/        OPC_RecordChild1, // #2 = $src2
/*444678*/        OPC_MoveChild1,
/*444679*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*444682*/        OPC_MoveParent,
/*444683*/        OPC_CheckType, MVT::v8i16,
/*444685*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*444687*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*444690*/        OPC_EmitMergeInputChains1_0,
/*444691*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PSHUFHWmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                  // Src: (X86PShufhw:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                  // Dst: (PSHUFHWmi:{ *:[v8i16] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*444703*/      /*Scope*/ 69, /*->444773*/
/*444704*/        OPC_MoveParent,
/*444705*/        OPC_RecordChild1, // #2 = $src2
/*444706*/        OPC_MoveChild1,
/*444707*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*444710*/        OPC_MoveParent,
/*444711*/        OPC_SwitchType /*3 cases */, 18, MVT::v32i16,// ->444732
/*444714*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*444716*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*444719*/          OPC_EmitMergeInputChains1_0,
/*444720*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFHWZmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86PShufhw:{ *:[v32i16] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPSHUFHWZmi:{ *:[v32i16] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*444732*/        /*SwitchType*/ 18, MVT::v16i16,// ->444752
/*444734*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*444736*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*444739*/          OPC_EmitMergeInputChains1_0,
/*444740*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFHWZ256mi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86PShufhw:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPSHUFHWZ256mi:{ *:[v16i16] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*444752*/        /*SwitchType*/ 18, MVT::v8i16,// ->444772
/*444754*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*444756*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*444759*/          OPC_EmitMergeInputChains1_0,
/*444760*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFHWZ128mi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86PShufhw:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPSHUFHWZ128mi:{ *:[v8i16] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*444772*/        0, // EndSwitchType
/*444773*/      0, /*End of Scope*/
/*444774*/    /*Scope*/ 84, /*->444859*/
/*444775*/      OPC_RecordChild0, // #0 = $src1
/*444776*/      OPC_RecordChild1, // #1 = $src2
/*444777*/      OPC_MoveChild1,
/*444778*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*444781*/      OPC_MoveParent,
/*444782*/      OPC_SwitchType /*3 cases */, 35, MVT::v8i16,// ->444820
/*444785*/        OPC_Scope, 10, /*->444797*/ // 3 children in Scope
/*444787*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*444789*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFHWri), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86PShufhw:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSHUFHWri:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (timm:{ *:[i8] }):$src2)
/*444797*/        /*Scope*/ 10, /*->444808*/
/*444798*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*444800*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PSHUFHWri), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86PShufhw:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (PSHUFHWri:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (timm:{ *:[i8] }):$src2)
/*444808*/        /*Scope*/ 10, /*->444819*/
/*444809*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*444811*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFHWZ128ri), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86PShufhw:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSHUFHWZ128ri:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (timm:{ *:[i8] }):$src2)
/*444819*/        0, /*End of Scope*/
/*444820*/      /*SwitchType*/ 24, MVT::v16i16,// ->444846
/*444822*/        OPC_Scope, 10, /*->444834*/ // 2 children in Scope
/*444824*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*444826*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFHWYri), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86PShufhw:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSHUFHWYri:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, (timm:{ *:[i8] }):$src2)
/*444834*/        /*Scope*/ 10, /*->444845*/
/*444835*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*444837*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFHWZ256ri), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86PShufhw:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSHUFHWZ256ri:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (timm:{ *:[i8] }):$src2)
/*444845*/        0, /*End of Scope*/
/*444846*/      /*SwitchType*/ 10, MVT::v32i16,// ->444858
/*444848*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*444850*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFHWZri), 0,
                      MVT::v32i16, 2/*#Ops*/, 0, 1, 
                  // Src: (X86PShufhw:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                  // Dst: (VPSHUFHWZri:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (timm:{ *:[i8] }):$src2)
/*444858*/      0, // EndSwitchType
/*444859*/    0, /*End of Scope*/
/*444860*/  /*SwitchOpcode*/ 125|128,1/*253*/, TARGET_VAL(X86ISD::PSHUFLW),// ->445117
/*444864*/    OPC_Scope, 36|128,1/*164*/, /*->445031*/ // 2 children in Scope
/*444867*/      OPC_MoveChild0,
/*444868*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*444871*/      OPC_RecordMemRef,
/*444872*/      OPC_RecordNode, // #0 = 'ld' chained node
/*444873*/      OPC_CheckFoldableChainNode,
/*444874*/      OPC_RecordChild1, // #1 = $src1
/*444875*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*444877*/      OPC_CheckPredicate, 9, // Predicate_load
/*444879*/      OPC_Scope, 49, /*->444930*/ // 3 children in Scope
/*444881*/        OPC_MoveParent,
/*444882*/        OPC_RecordChild1, // #2 = $src2
/*444883*/        OPC_MoveChild1,
/*444884*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*444887*/        OPC_MoveParent,
/*444888*/        OPC_SwitchType /*2 cases */, 18, MVT::v8i16,// ->444909
/*444891*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*444893*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*444896*/          OPC_EmitMergeInputChains1_0,
/*444897*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFLWmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86PShuflw:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPSHUFLWmi:{ *:[v8i16] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*444909*/        /*SwitchType*/ 18, MVT::v16i16,// ->444929
/*444911*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*444913*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*444916*/          OPC_EmitMergeInputChains1_0,
/*444917*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFLWYmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86PShuflw:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPSHUFLWYmi:{ *:[v16i16] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*444929*/        0, // EndSwitchType
/*444930*/      /*Scope*/ 29, /*->444960*/
/*444931*/        OPC_CheckPredicate, 39, // Predicate_memop
/*444933*/        OPC_MoveParent,
/*444934*/        OPC_RecordChild1, // #2 = $src2
/*444935*/        OPC_MoveChild1,
/*444936*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*444939*/        OPC_MoveParent,
/*444940*/        OPC_CheckType, MVT::v8i16,
/*444942*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*444944*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*444947*/        OPC_EmitMergeInputChains1_0,
/*444948*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PSHUFLWmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                  // Src: (X86PShuflw:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                  // Dst: (PSHUFLWmi:{ *:[v8i16] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*444960*/      /*Scope*/ 69, /*->445030*/
/*444961*/        OPC_MoveParent,
/*444962*/        OPC_RecordChild1, // #2 = $src2
/*444963*/        OPC_MoveChild1,
/*444964*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*444967*/        OPC_MoveParent,
/*444968*/        OPC_SwitchType /*3 cases */, 18, MVT::v32i16,// ->444989
/*444971*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*444973*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*444976*/          OPC_EmitMergeInputChains1_0,
/*444977*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFLWZmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86PShuflw:{ *:[v32i16] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPSHUFLWZmi:{ *:[v32i16] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*444989*/        /*SwitchType*/ 18, MVT::v16i16,// ->445009
/*444991*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*444993*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*444996*/          OPC_EmitMergeInputChains1_0,
/*444997*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFLWZ256mi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86PShuflw:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPSHUFLWZ256mi:{ *:[v16i16] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*445009*/        /*SwitchType*/ 18, MVT::v8i16,// ->445029
/*445011*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*445013*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*445016*/          OPC_EmitMergeInputChains1_0,
/*445017*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFLWZ128mi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86PShuflw:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPSHUFLWZ128mi:{ *:[v8i16] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*445029*/        0, // EndSwitchType
/*445030*/      0, /*End of Scope*/
/*445031*/    /*Scope*/ 84, /*->445116*/
/*445032*/      OPC_RecordChild0, // #0 = $src1
/*445033*/      OPC_RecordChild1, // #1 = $src2
/*445034*/      OPC_MoveChild1,
/*445035*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*445038*/      OPC_MoveParent,
/*445039*/      OPC_SwitchType /*3 cases */, 35, MVT::v8i16,// ->445077
/*445042*/        OPC_Scope, 10, /*->445054*/ // 3 children in Scope
/*445044*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*445046*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFLWri), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86PShuflw:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSHUFLWri:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (timm:{ *:[i8] }):$src2)
/*445054*/        /*Scope*/ 10, /*->445065*/
/*445055*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*445057*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PSHUFLWri), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86PShuflw:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (PSHUFLWri:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (timm:{ *:[i8] }):$src2)
/*445065*/        /*Scope*/ 10, /*->445076*/
/*445066*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*445068*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFLWZ128ri), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86PShuflw:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSHUFLWZ128ri:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (timm:{ *:[i8] }):$src2)
/*445076*/        0, /*End of Scope*/
/*445077*/      /*SwitchType*/ 24, MVT::v16i16,// ->445103
/*445079*/        OPC_Scope, 10, /*->445091*/ // 2 children in Scope
/*445081*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*445083*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFLWYri), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86PShuflw:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSHUFLWYri:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, (timm:{ *:[i8] }):$src2)
/*445091*/        /*Scope*/ 10, /*->445102*/
/*445092*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*445094*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFLWZ256ri), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86PShuflw:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSHUFLWZ256ri:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (timm:{ *:[i8] }):$src2)
/*445102*/        0, /*End of Scope*/
/*445103*/      /*SwitchType*/ 10, MVT::v32i16,// ->445115
/*445105*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*445107*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFLWZri), 0,
                      MVT::v32i16, 2/*#Ops*/, 0, 1, 
                  // Src: (X86PShuflw:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                  // Dst: (VPSHUFLWZri:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (timm:{ *:[i8] }):$src2)
/*445115*/      0, // EndSwitchType
/*445116*/    0, /*End of Scope*/
/*445117*/  /*SwitchOpcode*/ 17|128,1/*145*/, TARGET_VAL(X86ISD::PINSRW),// ->445266
/*445121*/    OPC_RecordChild0, // #0 = $src1
/*445122*/    OPC_Scope, 89, /*->445213*/ // 2 children in Scope
/*445124*/      OPC_MoveChild1,
/*445125*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*445128*/      OPC_RecordMemRef,
/*445129*/      OPC_RecordNode, // #1 = 'ld' chained node
/*445130*/      OPC_CheckFoldableChainNode,
/*445131*/      OPC_RecordChild1, // #2 = $src2
/*445132*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*445134*/      OPC_CheckPredicate, 70, // Predicate_extload
/*445136*/      OPC_CheckPredicate, 35, // Predicate_extloadi16
/*445138*/      OPC_MoveParent,
/*445139*/      OPC_RecordChild2, // #3 = $src3
/*445140*/      OPC_MoveChild2,
/*445141*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*445144*/      OPC_MoveParent,
/*445145*/      OPC_Scope, 21, /*->445168*/ // 3 children in Scope
/*445147*/        OPC_CheckPatternPredicate, 14, // (Subtarget->hasAVX()) && (!Subtarget->hasBWI())
/*445149*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*445152*/        OPC_EmitMergeInputChains1_1,
/*445153*/        OPC_EmitConvertToTarget, 3,
/*445155*/        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)
/*445168*/      /*Scope*/ 21, /*->445190*/
/*445169*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*445171*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*445174*/        OPC_EmitMergeInputChains1_1,
/*445175*/        OPC_EmitConvertToTarget, 3,
/*445177*/        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)
/*445190*/      /*Scope*/ 21, /*->445212*/
/*445191*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*445193*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*445196*/        OPC_EmitMergeInputChains1_1,
/*445197*/        OPC_EmitConvertToTarget, 3,
/*445199*/        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)
/*445212*/      0, /*End of Scope*/
/*445213*/    /*Scope*/ 51, /*->445265*/
/*445214*/      OPC_RecordChild1, // #1 = $src2
/*445215*/      OPC_RecordChild2, // #2 = $src3
/*445216*/      OPC_MoveChild2,
/*445217*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*445220*/      OPC_MoveParent,
/*445221*/      OPC_Scope, 13, /*->445236*/ // 3 children in Scope
/*445223*/        OPC_CheckPatternPredicate, 14, // (Subtarget->hasAVX()) && (!Subtarget->hasBWI())
/*445225*/        OPC_EmitConvertToTarget, 2,
/*445227*/        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)
/*445236*/      /*Scope*/ 13, /*->445250*/
/*445237*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*445239*/        OPC_EmitConvertToTarget, 2,
/*445241*/        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)
/*445250*/      /*Scope*/ 13, /*->445264*/
/*445251*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*445253*/        OPC_EmitConvertToTarget, 2,
/*445255*/        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)
/*445264*/      0, /*End of Scope*/
/*445265*/    0, /*End of Scope*/
/*445266*/  /*SwitchOpcode*/ 10|128,2/*266*/, TARGET_VAL(X86ISD::PALIGNR),// ->445536
/*445270*/    OPC_RecordChild0, // #0 = $src1
/*445271*/    OPC_Scope, 42|128,1/*170*/, /*->445444*/ // 2 children in Scope
/*445274*/      OPC_MoveChild1,
/*445275*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*445278*/      OPC_RecordMemRef,
/*445279*/      OPC_RecordNode, // #1 = 'ld' chained node
/*445280*/      OPC_CheckFoldableChainNode,
/*445281*/      OPC_RecordChild1, // #2 = $src2
/*445282*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*445284*/      OPC_CheckPredicate, 9, // Predicate_load
/*445286*/      OPC_Scope, 51, /*->445339*/ // 3 children in Scope
/*445288*/        OPC_MoveParent,
/*445289*/        OPC_RecordChild2, // #3 = $src3
/*445290*/        OPC_MoveChild2,
/*445291*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*445294*/        OPC_MoveParent,
/*445295*/        OPC_SwitchType /*2 cases */, 19, MVT::v16i8,// ->445317
/*445298*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*445300*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*445303*/          OPC_EmitMergeInputChains1_1,
/*445304*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPALIGNRrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86PAlignr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                    // Dst: (VPALIGNRrmi:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*445317*/        /*SwitchType*/ 19, MVT::v32i8,// ->445338
/*445319*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*445321*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*445324*/          OPC_EmitMergeInputChains1_1,
/*445325*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPALIGNRYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i8, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86PAlignr:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                    // Dst: (VPALIGNRYrmi:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*445338*/        0, // EndSwitchType
/*445339*/      /*Scope*/ 30, /*->445370*/
/*445340*/        OPC_CheckPredicate, 39, // Predicate_memop
/*445342*/        OPC_MoveParent,
/*445343*/        OPC_RecordChild2, // #3 = $src3
/*445344*/        OPC_MoveChild2,
/*445345*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*445348*/        OPC_MoveParent,
/*445349*/        OPC_CheckType, MVT::v16i8,
/*445351*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasSSSE3() && !Subtarget->hasAVX())
/*445353*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*445356*/        OPC_EmitMergeInputChains1_1,
/*445357*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PALIGNRrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i8, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (X86PAlignr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                  // Dst: (PALIGNRrmi:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*445370*/      /*Scope*/ 72, /*->445443*/
/*445371*/        OPC_MoveParent,
/*445372*/        OPC_RecordChild2, // #3 = $src3
/*445373*/        OPC_MoveChild2,
/*445374*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*445377*/        OPC_MoveParent,
/*445378*/        OPC_SwitchType /*3 cases */, 19, MVT::v64i8,// ->445400
/*445381*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*445383*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*445386*/          OPC_EmitMergeInputChains1_1,
/*445387*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPALIGNRZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v64i8, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86PAlignr:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                    // Dst: (VPALIGNRZrmi:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*445400*/        /*SwitchType*/ 19, MVT::v16i8,// ->445421
/*445402*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*445404*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*445407*/          OPC_EmitMergeInputChains1_1,
/*445408*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPALIGNRZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86PAlignr:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                    // Dst: (VPALIGNRZ128rmi:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*445421*/        /*SwitchType*/ 19, MVT::v32i8,// ->445442
/*445423*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*445425*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*445428*/          OPC_EmitMergeInputChains1_1,
/*445429*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPALIGNRZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i8, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86PAlignr:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                    // Dst: (VPALIGNRZ256rmi:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*445442*/        0, // EndSwitchType
/*445443*/      0, /*End of Scope*/
/*445444*/    /*Scope*/ 90, /*->445535*/
/*445445*/      OPC_RecordChild1, // #1 = $src2
/*445446*/      OPC_RecordChild2, // #2 = $src3
/*445447*/      OPC_MoveChild2,
/*445448*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*445451*/      OPC_MoveParent,
/*445452*/      OPC_SwitchType /*3 cases */, 38, MVT::v16i8,// ->445493
/*445455*/        OPC_Scope, 11, /*->445468*/ // 3 children in Scope
/*445457*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*445459*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPALIGNRrri), 0,
                        MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86PAlignr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                    // Dst: (VPALIGNRrri:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2, (timm:{ *:[i8] }):$src3)
/*445468*/        /*Scope*/ 11, /*->445480*/
/*445469*/          OPC_CheckPatternPredicate, 50, // (Subtarget->hasSSSE3() && !Subtarget->hasAVX())
/*445471*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PALIGNRrri), 0,
                        MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86PAlignr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                    // Dst: (PALIGNRrri:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2, (timm:{ *:[i8] }):$src3)
/*445480*/        /*Scope*/ 11, /*->445492*/
/*445481*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*445483*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPALIGNRZ128rri), 0,
                        MVT::v16i8, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86PAlignr:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                    // Dst: (VPALIGNRZ128rri:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (timm:{ *:[i8] }):$src3)
/*445492*/        0, /*End of Scope*/
/*445493*/      /*SwitchType*/ 26, MVT::v32i8,// ->445521
/*445495*/        OPC_Scope, 11, /*->445508*/ // 2 children in Scope
/*445497*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*445499*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPALIGNRYrri), 0,
                        MVT::v32i8, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86PAlignr:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                    // Dst: (VPALIGNRYrri:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2, (timm:{ *:[i8] }):$src3)
/*445508*/        /*Scope*/ 11, /*->445520*/
/*445509*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*445511*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPALIGNRZ256rri), 0,
                        MVT::v32i8, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86PAlignr:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                    // Dst: (VPALIGNRZ256rri:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (timm:{ *:[i8] }):$src3)
/*445520*/        0, /*End of Scope*/
/*445521*/      /*SwitchType*/ 11, MVT::v64i8,// ->445534
/*445523*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*445525*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPALIGNRZrri), 0,
                      MVT::v64i8, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86PAlignr:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VPALIGNRZrri:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (timm:{ *:[i8] }):$src3)
/*445534*/      0, // EndSwitchType
/*445535*/    0, /*End of Scope*/
/*445536*/  /*SwitchOpcode*/ 17|128,1/*145*/, TARGET_VAL(X86ISD::PINSRB),// ->445685
/*445540*/    OPC_RecordChild0, // #0 = $src1
/*445541*/    OPC_Scope, 89, /*->445632*/ // 2 children in Scope
/*445543*/      OPC_MoveChild1,
/*445544*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*445547*/      OPC_RecordMemRef,
/*445548*/      OPC_RecordNode, // #1 = 'ld' chained node
/*445549*/      OPC_CheckFoldableChainNode,
/*445550*/      OPC_RecordChild1, // #2 = $src2
/*445551*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*445553*/      OPC_CheckPredicate, 70, // Predicate_extload
/*445555*/      OPC_CheckPredicate, 34, // Predicate_extloadi8
/*445557*/      OPC_MoveParent,
/*445558*/      OPC_RecordChild2, // #3 = $src3
/*445559*/      OPC_MoveChild2,
/*445560*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*445563*/      OPC_MoveParent,
/*445564*/      OPC_Scope, 21, /*->445587*/ // 3 children in Scope
/*445566*/        OPC_CheckPatternPredicate, 14, // (Subtarget->hasAVX()) && (!Subtarget->hasBWI())
/*445568*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*445571*/        OPC_EmitMergeInputChains1_1,
/*445572*/        OPC_EmitConvertToTarget, 3,
/*445574*/        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)
/*445587*/      /*Scope*/ 21, /*->445609*/
/*445588*/        OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*445590*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*445593*/        OPC_EmitMergeInputChains1_1,
/*445594*/        OPC_EmitConvertToTarget, 3,
/*445596*/        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)
/*445609*/      /*Scope*/ 21, /*->445631*/
/*445610*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*445612*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*445615*/        OPC_EmitMergeInputChains1_1,
/*445616*/        OPC_EmitConvertToTarget, 3,
/*445618*/        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)
/*445631*/      0, /*End of Scope*/
/*445632*/    /*Scope*/ 51, /*->445684*/
/*445633*/      OPC_RecordChild1, // #1 = $src2
/*445634*/      OPC_RecordChild2, // #2 = $src3
/*445635*/      OPC_MoveChild2,
/*445636*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*445639*/      OPC_MoveParent,
/*445640*/      OPC_Scope, 13, /*->445655*/ // 3 children in Scope
/*445642*/        OPC_CheckPatternPredicate, 14, // (Subtarget->hasAVX()) && (!Subtarget->hasBWI())
/*445644*/        OPC_EmitConvertToTarget, 2,
/*445646*/        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)
/*445655*/      /*Scope*/ 13, /*->445669*/
/*445656*/        OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*445658*/        OPC_EmitConvertToTarget, 2,
/*445660*/        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)
/*445669*/      /*Scope*/ 13, /*->445683*/
/*445670*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*445672*/        OPC_EmitConvertToTarget, 2,
/*445674*/        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)
/*445683*/      0, /*End of Scope*/
/*445684*/    0, /*End of Scope*/
/*445685*/  /*SwitchOpcode*/ 45|128,2/*301*/, TARGET_VAL(ISD::INSERT_VECTOR_ELT),// ->445990
/*445689*/    OPC_RecordChild0, // #0 = $src1
/*445690*/    OPC_Scope, 66|128,1/*194*/, /*->445887*/ // 2 children in Scope
/*445693*/      OPC_MoveChild1,
/*445694*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*445697*/      OPC_RecordMemRef,
/*445698*/      OPC_RecordNode, // #1 = 'ld' chained node
/*445699*/      OPC_CheckFoldableChainNode,
/*445700*/      OPC_RecordChild1, // #2 = $src2
/*445701*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*445703*/      OPC_Scope, 57, /*->445762*/ // 4 children in Scope
/*445705*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*445707*/        OPC_MoveParent,
/*445708*/        OPC_RecordChild2, // #3 = $src3
/*445709*/        OPC_MoveChild2,
/*445710*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*445713*/        OPC_MoveParent,
/*445714*/        OPC_CheckType, MVT::v4i32,
/*445716*/        OPC_Scope, 21, /*->445739*/ // 2 children in Scope
/*445718*/          OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX()) && (!Subtarget->hasDQI())
/*445720*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*445723*/          OPC_EmitMergeInputChains1_1,
/*445724*/          OPC_EmitConvertToTarget, 3,
/*445726*/          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)
/*445739*/        /*Scope*/ 21, /*->445761*/
/*445740*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*445742*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*445745*/          OPC_EmitMergeInputChains1_1,
/*445746*/          OPC_EmitConvertToTarget, 3,
/*445748*/          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)
/*445761*/        0, /*End of Scope*/
/*445762*/      /*Scope*/ 57, /*->445820*/
/*445763*/        OPC_CheckPredicate, 9, // Predicate_load
/*445765*/        OPC_MoveParent,
/*445766*/        OPC_RecordChild2, // #3 = $src3
/*445767*/        OPC_MoveChild2,
/*445768*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*445771*/        OPC_MoveParent,
/*445772*/        OPC_CheckType, MVT::v2i64,
/*445774*/        OPC_Scope, 21, /*->445797*/ // 2 children in Scope
/*445776*/          OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX()) && (!Subtarget->hasDQI())
/*445778*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*445781*/          OPC_EmitMergeInputChains1_1,
/*445782*/          OPC_EmitConvertToTarget, 3,
/*445784*/          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)
/*445797*/        /*Scope*/ 21, /*->445819*/
/*445798*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*445800*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*445803*/          OPC_EmitMergeInputChains1_1,
/*445804*/          OPC_EmitConvertToTarget, 3,
/*445806*/          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)
/*445819*/        0, /*End of Scope*/
/*445820*/      /*Scope*/ 32, /*->445853*/
/*445821*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*445823*/        OPC_MoveParent,
/*445824*/        OPC_RecordChild2, // #3 = $src3
/*445825*/        OPC_MoveChild2,
/*445826*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*445829*/        OPC_MoveParent,
/*445830*/        OPC_CheckType, MVT::v4i32,
/*445832*/        OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*445834*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*445837*/        OPC_EmitMergeInputChains1_1,
/*445838*/        OPC_EmitConvertToTarget, 3,
/*445840*/        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)
/*445853*/      /*Scope*/ 32, /*->445886*/
/*445854*/        OPC_CheckPredicate, 9, // Predicate_load
/*445856*/        OPC_MoveParent,
/*445857*/        OPC_RecordChild2, // #3 = $src3
/*445858*/        OPC_MoveChild2,
/*445859*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*445862*/        OPC_MoveParent,
/*445863*/        OPC_CheckType, MVT::v2i64,
/*445865*/        OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*445867*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*445870*/        OPC_EmitMergeInputChains1_1,
/*445871*/        OPC_EmitConvertToTarget, 3,
/*445873*/        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)
/*445886*/      0, /*End of Scope*/
/*445887*/    /*Scope*/ 101, /*->445989*/
/*445888*/      OPC_RecordChild1, // #1 = $src2
/*445889*/      OPC_RecordChild2, // #2 = $src3
/*445890*/      OPC_MoveChild2,
/*445891*/      OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*445894*/      OPC_MoveParent,
/*445895*/      OPC_SwitchType /*2 cases */, 44, MVT::v4i32,// ->445942
/*445898*/        OPC_Scope, 13, /*->445913*/ // 3 children in Scope
/*445900*/          OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX()) && (!Subtarget->hasDQI())
/*445902*/          OPC_EmitConvertToTarget, 2,
/*445904*/          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)
/*445913*/        /*Scope*/ 13, /*->445927*/
/*445914*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*445916*/          OPC_EmitConvertToTarget, 2,
/*445918*/          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)
/*445927*/        /*Scope*/ 13, /*->445941*/
/*445928*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*445930*/          OPC_EmitConvertToTarget, 2,
/*445932*/          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)
/*445941*/        0, /*End of Scope*/
/*445942*/      /*SwitchType*/ 44, MVT::v2i64,// ->445988
/*445944*/        OPC_Scope, 13, /*->445959*/ // 3 children in Scope
/*445946*/          OPC_CheckPatternPredicate, 18, // (Subtarget->hasAVX()) && (!Subtarget->hasDQI())
/*445948*/          OPC_EmitConvertToTarget, 2,
/*445950*/          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)
/*445959*/        /*Scope*/ 13, /*->445973*/
/*445960*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*445962*/          OPC_EmitConvertToTarget, 2,
/*445964*/          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)
/*445973*/        /*Scope*/ 13, /*->445987*/
/*445974*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*445976*/          OPC_EmitConvertToTarget, 2,
/*445978*/          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)
/*445987*/        0, /*End of Scope*/
/*445988*/      0, // EndSwitchType
/*445989*/    0, /*End of Scope*/
/*445990*/  /*SwitchOpcode*/ 70|128,15/*1990*/, TARGET_VAL(X86ISD::BLENDI),// ->447984
/*445994*/    OPC_Scope, 41, /*->446037*/ // 39 children in Scope
/*445996*/      OPC_RecordChild0, // #0 = $src1
/*445997*/      OPC_MoveChild1,
/*445998*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*446001*/      OPC_RecordMemRef,
/*446002*/      OPC_RecordNode, // #1 = 'ld' chained node
/*446003*/      OPC_CheckFoldableChainNode,
/*446004*/      OPC_RecordChild1, // #2 = $src2
/*446005*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*446007*/      OPC_CheckPredicate, 9, // Predicate_load
/*446009*/      OPC_MoveParent,
/*446010*/      OPC_RecordChild2, // #3 = $src3
/*446011*/      OPC_MoveChild2,
/*446012*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*446015*/      OPC_MoveParent,
/*446016*/      OPC_CheckType, MVT::v8i16,
/*446018*/      OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*446020*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*446023*/      OPC_EmitMergeInputChains1_1,
/*446024*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPBLENDWrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                // Src: (X86Blendi:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                // Dst: (VPBLENDWrmi:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*446037*/    /*Scope*/ 44, /*->446082*/
/*446038*/      OPC_MoveChild0,
/*446039*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*446042*/      OPC_RecordMemRef,
/*446043*/      OPC_RecordNode, // #0 = 'ld' chained node
/*446044*/      OPC_CheckFoldableChainNode,
/*446045*/      OPC_RecordChild1, // #1 = $src2
/*446046*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*446048*/      OPC_CheckPredicate, 9, // Predicate_load
/*446050*/      OPC_MoveParent,
/*446051*/      OPC_RecordChild1, // #2 = $src1
/*446052*/      OPC_RecordChild2, // #3 = $src3
/*446053*/      OPC_MoveChild2,
/*446054*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*446057*/      OPC_MoveParent,
/*446058*/      OPC_CheckType, MVT::v8i16,
/*446060*/      OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*446062*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*446065*/      OPC_EmitMergeInputChains1_0,
/*446066*/      OPC_EmitNodeXForm, 25, 3, // BlendCommuteImm8
/*446069*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPBLENDWrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i16, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                // Src: (X86Blendi:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v8i16] }:$src1, (timm:{ *:[i8] }):$src3) - Complexity = 28
                // Dst: (VPBLENDWrmi:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, (BlendCommuteImm8:{ *:[i8] } (timm:{ *:[i8] }):$src3))
/*446082*/    /*Scope*/ 41, /*->446124*/
/*446083*/      OPC_RecordChild0, // #0 = $src1
/*446084*/      OPC_MoveChild1,
/*446085*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*446088*/      OPC_RecordMemRef,
/*446089*/      OPC_RecordNode, // #1 = 'ld' chained node
/*446090*/      OPC_CheckFoldableChainNode,
/*446091*/      OPC_RecordChild1, // #2 = $src2
/*446092*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*446094*/      OPC_CheckPredicate, 9, // Predicate_load
/*446096*/      OPC_MoveParent,
/*446097*/      OPC_RecordChild2, // #3 = $src3
/*446098*/      OPC_MoveChild2,
/*446099*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*446102*/      OPC_MoveParent,
/*446103*/      OPC_CheckType, MVT::v16i16,
/*446105*/      OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/*446107*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*446110*/      OPC_EmitMergeInputChains1_1,
/*446111*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPBLENDWYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v16i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                // Src: (X86Blendi:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                // Dst: (VPBLENDWYrmi:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*446124*/    /*Scope*/ 44, /*->446169*/
/*446125*/      OPC_MoveChild0,
/*446126*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*446129*/      OPC_RecordMemRef,
/*446130*/      OPC_RecordNode, // #0 = 'ld' chained node
/*446131*/      OPC_CheckFoldableChainNode,
/*446132*/      OPC_RecordChild1, // #1 = $src2
/*446133*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*446135*/      OPC_CheckPredicate, 9, // Predicate_load
/*446137*/      OPC_MoveParent,
/*446138*/      OPC_RecordChild1, // #2 = $src1
/*446139*/      OPC_RecordChild2, // #3 = $src3
/*446140*/      OPC_MoveChild2,
/*446141*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*446144*/      OPC_MoveParent,
/*446145*/      OPC_CheckType, MVT::v16i16,
/*446147*/      OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/*446149*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*446152*/      OPC_EmitMergeInputChains1_0,
/*446153*/      OPC_EmitNodeXForm, 25, 3, // BlendCommuteImm8
/*446156*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPBLENDWYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v16i16, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                // Src: (X86Blendi:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v16i16] }:$src1, (timm:{ *:[i8] }):$src3) - Complexity = 28
                // Dst: (VPBLENDWYrmi:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2, (BlendCommuteImm8:{ *:[i8] } (timm:{ *:[i8] }):$src3))
/*446169*/    /*Scope*/ 41, /*->446211*/
/*446170*/      OPC_RecordChild0, // #0 = $src1
/*446171*/      OPC_MoveChild1,
/*446172*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*446175*/      OPC_RecordMemRef,
/*446176*/      OPC_RecordNode, // #1 = 'ld' chained node
/*446177*/      OPC_CheckFoldableChainNode,
/*446178*/      OPC_RecordChild1, // #2 = $src2
/*446179*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*446181*/      OPC_CheckPredicate, 9, // Predicate_load
/*446183*/      OPC_MoveParent,
/*446184*/      OPC_RecordChild2, // #3 = $src3
/*446185*/      OPC_MoveChild2,
/*446186*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*446189*/      OPC_MoveParent,
/*446190*/      OPC_CheckType, MVT::v4i64,
/*446192*/      OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*446194*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*446197*/      OPC_EmitMergeInputChains1_1,
/*446198*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDPDYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                // Src: (X86Blendi:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                // Dst: (VBLENDPDYrmi:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*446211*/    /*Scope*/ 44, /*->446256*/
/*446212*/      OPC_MoveChild0,
/*446213*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*446216*/      OPC_RecordMemRef,
/*446217*/      OPC_RecordNode, // #0 = 'ld' chained node
/*446218*/      OPC_CheckFoldableChainNode,
/*446219*/      OPC_RecordChild1, // #1 = $src2
/*446220*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*446222*/      OPC_CheckPredicate, 9, // Predicate_load
/*446224*/      OPC_MoveParent,
/*446225*/      OPC_RecordChild1, // #2 = $src1
/*446226*/      OPC_RecordChild2, // #3 = $src3
/*446227*/      OPC_MoveChild2,
/*446228*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*446231*/      OPC_MoveParent,
/*446232*/      OPC_CheckType, MVT::v4i64,
/*446234*/      OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*446236*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*446239*/      OPC_EmitMergeInputChains1_0,
/*446240*/      OPC_EmitNodeXForm, 26, 3, // BlendCommuteImm4
/*446243*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDPDYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                // Src: (X86Blendi:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v4i64] }:$src1, (timm:{ *:[i8] }):$src3) - Complexity = 28
                // Dst: (VBLENDPDYrmi:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (BlendCommuteImm4:{ *:[i8] } (timm:{ *:[i8] }):$src3))
/*446256*/    /*Scope*/ 44, /*->446301*/
/*446257*/      OPC_RecordChild0, // #0 = $src1
/*446258*/      OPC_MoveChild1,
/*446259*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*446262*/      OPC_RecordMemRef,
/*446263*/      OPC_RecordNode, // #1 = 'ld' chained node
/*446264*/      OPC_CheckFoldableChainNode,
/*446265*/      OPC_RecordChild1, // #2 = $src2
/*446266*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*446268*/      OPC_CheckPredicate, 9, // Predicate_load
/*446270*/      OPC_MoveParent,
/*446271*/      OPC_RecordChild2, // #3 = $src3
/*446272*/      OPC_MoveChild2,
/*446273*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*446276*/      OPC_MoveParent,
/*446277*/      OPC_CheckType, MVT::v2i64,
/*446279*/      OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*446281*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*446284*/      OPC_EmitMergeInputChains1_1,
/*446285*/      OPC_EmitNodeXForm, 27, 3, // BlendScaleImm2
/*446288*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPBLENDWrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                // Src: (X86Blendi:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                // Dst: (VPBLENDWrmi:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (BlendScaleImm2:{ *:[i8] } (timm:{ *:[i8] }):$src3))
/*446301*/    /*Scope*/ 44, /*->446346*/
/*446302*/      OPC_MoveChild0,
/*446303*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*446306*/      OPC_RecordMemRef,
/*446307*/      OPC_RecordNode, // #0 = 'ld' chained node
/*446308*/      OPC_CheckFoldableChainNode,
/*446309*/      OPC_RecordChild1, // #1 = $src2
/*446310*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*446312*/      OPC_CheckPredicate, 9, // Predicate_load
/*446314*/      OPC_MoveParent,
/*446315*/      OPC_RecordChild1, // #2 = $src1
/*446316*/      OPC_RecordChild2, // #3 = $src3
/*446317*/      OPC_MoveChild2,
/*446318*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*446321*/      OPC_MoveParent,
/*446322*/      OPC_CheckType, MVT::v2i64,
/*446324*/      OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*446326*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*446329*/      OPC_EmitMergeInputChains1_0,
/*446330*/      OPC_EmitNodeXForm, 28, 3, // BlendScaleCommuteImm2
/*446333*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPBLENDWrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2i64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                // Src: (X86Blendi:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v2i64] }:$src1, (timm:{ *:[i8] }):$src3) - Complexity = 28
                // Dst: (VPBLENDWrmi:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (BlendScaleCommuteImm2:{ *:[i8] } (timm:{ *:[i8] }):$src3))
/*446346*/    /*Scope*/ 41, /*->446388*/
/*446347*/      OPC_RecordChild0, // #0 = $src1
/*446348*/      OPC_MoveChild1,
/*446349*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*446352*/      OPC_RecordMemRef,
/*446353*/      OPC_RecordNode, // #1 = 'ld' chained node
/*446354*/      OPC_CheckFoldableChainNode,
/*446355*/      OPC_RecordChild1, // #2 = $src2
/*446356*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*446358*/      OPC_CheckPredicate, 9, // Predicate_load
/*446360*/      OPC_MoveParent,
/*446361*/      OPC_RecordChild2, // #3 = $src3
/*446362*/      OPC_MoveChild2,
/*446363*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*446366*/      OPC_MoveParent,
/*446367*/      OPC_CheckType, MVT::v8i32,
/*446369*/      OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*446371*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*446374*/      OPC_EmitMergeInputChains1_1,
/*446375*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDPSYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                // Src: (X86Blendi:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                // Dst: (VBLENDPSYrmi:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*446388*/    /*Scope*/ 44, /*->446433*/
/*446389*/      OPC_MoveChild0,
/*446390*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*446393*/      OPC_RecordMemRef,
/*446394*/      OPC_RecordNode, // #0 = 'ld' chained node
/*446395*/      OPC_CheckFoldableChainNode,
/*446396*/      OPC_RecordChild1, // #1 = $src2
/*446397*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*446399*/      OPC_CheckPredicate, 9, // Predicate_load
/*446401*/      OPC_MoveParent,
/*446402*/      OPC_RecordChild1, // #2 = $src1
/*446403*/      OPC_RecordChild2, // #3 = $src3
/*446404*/      OPC_MoveChild2,
/*446405*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*446408*/      OPC_MoveParent,
/*446409*/      OPC_CheckType, MVT::v8i32,
/*446411*/      OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*446413*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*446416*/      OPC_EmitMergeInputChains1_0,
/*446417*/      OPC_EmitNodeXForm, 25, 3, // BlendCommuteImm8
/*446420*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDPSYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i32, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                // Src: (X86Blendi:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v8i32] }:$src1, (timm:{ *:[i8] }):$src3) - Complexity = 28
                // Dst: (VBLENDPSYrmi:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (BlendCommuteImm8:{ *:[i8] } (timm:{ *:[i8] }):$src3))
/*446433*/    /*Scope*/ 44, /*->446478*/
/*446434*/      OPC_RecordChild0, // #0 = $src1
/*446435*/      OPC_MoveChild1,
/*446436*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*446439*/      OPC_RecordMemRef,
/*446440*/      OPC_RecordNode, // #1 = 'ld' chained node
/*446441*/      OPC_CheckFoldableChainNode,
/*446442*/      OPC_RecordChild1, // #2 = $src2
/*446443*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*446445*/      OPC_CheckPredicate, 9, // Predicate_load
/*446447*/      OPC_MoveParent,
/*446448*/      OPC_RecordChild2, // #3 = $src3
/*446449*/      OPC_MoveChild2,
/*446450*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*446453*/      OPC_MoveParent,
/*446454*/      OPC_CheckType, MVT::v4i32,
/*446456*/      OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*446458*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*446461*/      OPC_EmitMergeInputChains1_1,
/*446462*/      OPC_EmitNodeXForm, 29, 3, // BlendScaleImm4
/*446465*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPBLENDWrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                // Src: (X86Blendi:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                // Dst: (VPBLENDWrmi:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (BlendScaleImm4:{ *:[i8] } (timm:{ *:[i8] }):$src3))
/*446478*/    /*Scope*/ 44, /*->446523*/
/*446479*/      OPC_MoveChild0,
/*446480*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*446483*/      OPC_RecordMemRef,
/*446484*/      OPC_RecordNode, // #0 = 'ld' chained node
/*446485*/      OPC_CheckFoldableChainNode,
/*446486*/      OPC_RecordChild1, // #1 = $src2
/*446487*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*446489*/      OPC_CheckPredicate, 9, // Predicate_load
/*446491*/      OPC_MoveParent,
/*446492*/      OPC_RecordChild1, // #2 = $src1
/*446493*/      OPC_RecordChild2, // #3 = $src3
/*446494*/      OPC_MoveChild2,
/*446495*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*446498*/      OPC_MoveParent,
/*446499*/      OPC_CheckType, MVT::v4i32,
/*446501*/      OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*446503*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*446506*/      OPC_EmitMergeInputChains1_0,
/*446507*/      OPC_EmitNodeXForm, 30, 3, // BlendScaleCommuteImm4
/*446510*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPBLENDWrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i32, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                // Src: (X86Blendi:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$src3) - Complexity = 28
                // Dst: (VPBLENDWrmi:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (BlendScaleCommuteImm4:{ *:[i8] } (timm:{ *:[i8] }):$src3))
/*446523*/    /*Scope*/ 43, /*->446567*/
/*446524*/      OPC_RecordChild0, // #0 = $src1
/*446525*/      OPC_MoveChild1,
/*446526*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*446529*/      OPC_RecordMemRef,
/*446530*/      OPC_RecordNode, // #1 = 'ld' chained node
/*446531*/      OPC_CheckFoldableChainNode,
/*446532*/      OPC_RecordChild1, // #2 = $src2
/*446533*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*446535*/      OPC_CheckPredicate, 9, // Predicate_load
/*446537*/      OPC_CheckPredicate, 39, // Predicate_memop
/*446539*/      OPC_MoveParent,
/*446540*/      OPC_RecordChild2, // #3 = $src3
/*446541*/      OPC_MoveChild2,
/*446542*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*446545*/      OPC_MoveParent,
/*446546*/      OPC_CheckType, MVT::v8i16,
/*446548*/      OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*446550*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*446553*/      OPC_EmitMergeInputChains1_1,
/*446554*/      OPC_MorphNodeTo1, TARGET_VAL(X86::PBLENDWrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                // Src: (X86Blendi:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                // Dst: (PBLENDWrmi:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*446567*/    /*Scope*/ 44, /*->446612*/
/*446568*/      OPC_MoveChild0,
/*446569*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*446572*/      OPC_RecordMemRef,
/*446573*/      OPC_RecordNode, // #0 = 'ld' chained node
/*446574*/      OPC_CheckFoldableChainNode,
/*446575*/      OPC_RecordChild1, // #1 = $src2
/*446576*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*446578*/      OPC_CheckPredicate, 9, // Predicate_load
/*446580*/      OPC_CheckPredicate, 39, // Predicate_memop
/*446582*/      OPC_MoveParent,
/*446583*/      OPC_RecordChild1, // #2 = $src1
/*446584*/      OPC_RecordChild2, // #3 = $src3
/*446585*/      OPC_MoveChild2,
/*446586*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*446589*/      OPC_MoveParent,
/*446590*/      OPC_CheckType, MVT::v8i16,
/*446592*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*446595*/      OPC_EmitMergeInputChains1_0,
/*446596*/      OPC_EmitNodeXForm, 25, 3, // BlendCommuteImm8
/*446599*/      OPC_MorphNodeTo1, TARGET_VAL(X86::PBLENDWrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i16, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                // Src: (X86Blendi:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:{ *:[v8i16] }:$src1, (timm:{ *:[i8] }):$src3) - Complexity = 28
                // Dst: (PBLENDWrmi:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, (BlendCommuteImm8:{ *:[i8] } (timm:{ *:[i8] }):$src3))
/*446612*/    /*Scope*/ 46, /*->446659*/
/*446613*/      OPC_RecordChild0, // #0 = $src1
/*446614*/      OPC_MoveChild1,
/*446615*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*446618*/      OPC_RecordMemRef,
/*446619*/      OPC_RecordNode, // #1 = 'ld' chained node
/*446620*/      OPC_CheckFoldableChainNode,
/*446621*/      OPC_RecordChild1, // #2 = $src2
/*446622*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*446624*/      OPC_CheckPredicate, 9, // Predicate_load
/*446626*/      OPC_CheckPredicate, 39, // Predicate_memop
/*446628*/      OPC_MoveParent,
/*446629*/      OPC_RecordChild2, // #3 = $src3
/*446630*/      OPC_MoveChild2,
/*446631*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*446634*/      OPC_MoveParent,
/*446635*/      OPC_CheckType, MVT::v2i64,
/*446637*/      OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*446639*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*446642*/      OPC_EmitMergeInputChains1_1,
/*446643*/      OPC_EmitNodeXForm, 27, 3, // BlendScaleImm2
/*446646*/      OPC_MorphNodeTo1, TARGET_VAL(X86::PBLENDWrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                // Src: (X86Blendi:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                // Dst: (PBLENDWrmi:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (BlendScaleImm2:{ *:[i8] } (timm:{ *:[i8] }):$src3))
/*446659*/    /*Scope*/ 46, /*->446706*/
/*446660*/      OPC_MoveChild0,
/*446661*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*446664*/      OPC_RecordMemRef,
/*446665*/      OPC_RecordNode, // #0 = 'ld' chained node
/*446666*/      OPC_CheckFoldableChainNode,
/*446667*/      OPC_RecordChild1, // #1 = $src2
/*446668*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*446670*/      OPC_CheckPredicate, 9, // Predicate_load
/*446672*/      OPC_CheckPredicate, 39, // Predicate_memop
/*446674*/      OPC_MoveParent,
/*446675*/      OPC_RecordChild1, // #2 = $src1
/*446676*/      OPC_RecordChild2, // #3 = $src3
/*446677*/      OPC_MoveChild2,
/*446678*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*446681*/      OPC_MoveParent,
/*446682*/      OPC_CheckType, MVT::v2i64,
/*446684*/      OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*446686*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*446689*/      OPC_EmitMergeInputChains1_0,
/*446690*/      OPC_EmitNodeXForm, 28, 3, // BlendScaleCommuteImm2
/*446693*/      OPC_MorphNodeTo1, TARGET_VAL(X86::PBLENDWrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2i64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                // Src: (X86Blendi:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:{ *:[v2i64] }:$src1, (timm:{ *:[i8] }):$src3) - Complexity = 28
                // Dst: (PBLENDWrmi:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (BlendScaleCommuteImm2:{ *:[i8] } (timm:{ *:[i8] }):$src3))
/*446706*/    /*Scope*/ 46, /*->446753*/
/*446707*/      OPC_RecordChild0, // #0 = $src1
/*446708*/      OPC_MoveChild1,
/*446709*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*446712*/      OPC_RecordMemRef,
/*446713*/      OPC_RecordNode, // #1 = 'ld' chained node
/*446714*/      OPC_CheckFoldableChainNode,
/*446715*/      OPC_RecordChild1, // #2 = $src2
/*446716*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*446718*/      OPC_CheckPredicate, 9, // Predicate_load
/*446720*/      OPC_CheckPredicate, 39, // Predicate_memop
/*446722*/      OPC_MoveParent,
/*446723*/      OPC_RecordChild2, // #3 = $src3
/*446724*/      OPC_MoveChild2,
/*446725*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*446728*/      OPC_MoveParent,
/*446729*/      OPC_CheckType, MVT::v4i32,
/*446731*/      OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*446733*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*446736*/      OPC_EmitMergeInputChains1_1,
/*446737*/      OPC_EmitNodeXForm, 29, 3, // BlendScaleImm4
/*446740*/      OPC_MorphNodeTo1, TARGET_VAL(X86::PBLENDWrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                // Src: (X86Blendi:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                // Dst: (PBLENDWrmi:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (BlendScaleImm4:{ *:[i8] } (timm:{ *:[i8] }):$src3))
/*446753*/    /*Scope*/ 46, /*->446800*/
/*446754*/      OPC_MoveChild0,
/*446755*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*446758*/      OPC_RecordMemRef,
/*446759*/      OPC_RecordNode, // #0 = 'ld' chained node
/*446760*/      OPC_CheckFoldableChainNode,
/*446761*/      OPC_RecordChild1, // #1 = $src2
/*446762*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*446764*/      OPC_CheckPredicate, 9, // Predicate_load
/*446766*/      OPC_CheckPredicate, 39, // Predicate_memop
/*446768*/      OPC_MoveParent,
/*446769*/      OPC_RecordChild1, // #2 = $src1
/*446770*/      OPC_RecordChild2, // #3 = $src3
/*446771*/      OPC_MoveChild2,
/*446772*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*446775*/      OPC_MoveParent,
/*446776*/      OPC_CheckType, MVT::v4i32,
/*446778*/      OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*446780*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*446783*/      OPC_EmitMergeInputChains1_0,
/*446784*/      OPC_EmitNodeXForm, 30, 3, // BlendScaleCommuteImm4
/*446787*/      OPC_MorphNodeTo1, TARGET_VAL(X86::PBLENDWrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i32, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                // Src: (X86Blendi:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$src3) - Complexity = 28
                // Dst: (PBLENDWrmi:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (BlendScaleCommuteImm4:{ *:[i8] } (timm:{ *:[i8] }):$src3))
/*446800*/    /*Scope*/ 41, /*->446842*/
/*446801*/      OPC_RecordChild0, // #0 = $src1
/*446802*/      OPC_MoveChild1,
/*446803*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*446806*/      OPC_RecordMemRef,
/*446807*/      OPC_RecordNode, // #1 = 'ld' chained node
/*446808*/      OPC_CheckFoldableChainNode,
/*446809*/      OPC_RecordChild1, // #2 = $src2
/*446810*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*446812*/      OPC_CheckPredicate, 9, // Predicate_load
/*446814*/      OPC_MoveParent,
/*446815*/      OPC_RecordChild2, // #3 = $src3
/*446816*/      OPC_MoveChild2,
/*446817*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*446820*/      OPC_MoveParent,
/*446821*/      OPC_CheckType, MVT::v4i32,
/*446823*/      OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/*446825*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*446828*/      OPC_EmitMergeInputChains1_1,
/*446829*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPBLENDDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                // Src: (X86Blendi:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                // Dst: (VPBLENDDrmi:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*446842*/    /*Scope*/ 44, /*->446887*/
/*446843*/      OPC_MoveChild0,
/*446844*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*446847*/      OPC_RecordMemRef,
/*446848*/      OPC_RecordNode, // #0 = 'ld' chained node
/*446849*/      OPC_CheckFoldableChainNode,
/*446850*/      OPC_RecordChild1, // #1 = $src2
/*446851*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*446853*/      OPC_CheckPredicate, 9, // Predicate_load
/*446855*/      OPC_MoveParent,
/*446856*/      OPC_RecordChild1, // #2 = $src1
/*446857*/      OPC_RecordChild2, // #3 = $src3
/*446858*/      OPC_MoveChild2,
/*446859*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*446862*/      OPC_MoveParent,
/*446863*/      OPC_CheckType, MVT::v4i32,
/*446865*/      OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/*446867*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*446870*/      OPC_EmitMergeInputChains1_0,
/*446871*/      OPC_EmitNodeXForm, 26, 3, // BlendCommuteImm4
/*446874*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPBLENDDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i32, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                // Src: (X86Blendi:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$src3) - Complexity = 28
                // Dst: (VPBLENDDrmi:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (BlendCommuteImm4:{ *:[i8] } (timm:{ *:[i8] }):$src3))
/*446887*/    /*Scope*/ 41, /*->446929*/
/*446888*/      OPC_RecordChild0, // #0 = $src1
/*446889*/      OPC_MoveChild1,
/*446890*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*446893*/      OPC_RecordMemRef,
/*446894*/      OPC_RecordNode, // #1 = 'ld' chained node
/*446895*/      OPC_CheckFoldableChainNode,
/*446896*/      OPC_RecordChild1, // #2 = $src2
/*446897*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*446899*/      OPC_CheckPredicate, 9, // Predicate_load
/*446901*/      OPC_MoveParent,
/*446902*/      OPC_RecordChild2, // #3 = $src3
/*446903*/      OPC_MoveChild2,
/*446904*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*446907*/      OPC_MoveParent,
/*446908*/      OPC_CheckType, MVT::v8i32,
/*446910*/      OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/*446912*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*446915*/      OPC_EmitMergeInputChains1_1,
/*446916*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPBLENDDYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                // Src: (X86Blendi:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                // Dst: (VPBLENDDYrmi:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*446929*/    /*Scope*/ 44, /*->446974*/
/*446930*/      OPC_MoveChild0,
/*446931*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*446934*/      OPC_RecordMemRef,
/*446935*/      OPC_RecordNode, // #0 = 'ld' chained node
/*446936*/      OPC_CheckFoldableChainNode,
/*446937*/      OPC_RecordChild1, // #1 = $src2
/*446938*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*446940*/      OPC_CheckPredicate, 9, // Predicate_load
/*446942*/      OPC_MoveParent,
/*446943*/      OPC_RecordChild1, // #2 = $src1
/*446944*/      OPC_RecordChild2, // #3 = $src3
/*446945*/      OPC_MoveChild2,
/*446946*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*446949*/      OPC_MoveParent,
/*446950*/      OPC_CheckType, MVT::v8i32,
/*446952*/      OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/*446954*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*446957*/      OPC_EmitMergeInputChains1_0,
/*446958*/      OPC_EmitNodeXForm, 25, 3, // BlendCommuteImm8
/*446961*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPBLENDDYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i32, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                // Src: (X86Blendi:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v8i32] }:$src1, (timm:{ *:[i8] }):$src3) - Complexity = 28
                // Dst: (VPBLENDDYrmi:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (BlendCommuteImm8:{ *:[i8] } (timm:{ *:[i8] }):$src3))
/*446974*/    /*Scope*/ 44, /*->447019*/
/*446975*/      OPC_RecordChild0, // #0 = $src1
/*446976*/      OPC_MoveChild1,
/*446977*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*446980*/      OPC_RecordMemRef,
/*446981*/      OPC_RecordNode, // #1 = 'ld' chained node
/*446982*/      OPC_CheckFoldableChainNode,
/*446983*/      OPC_RecordChild1, // #2 = $src2
/*446984*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*446986*/      OPC_CheckPredicate, 9, // Predicate_load
/*446988*/      OPC_MoveParent,
/*446989*/      OPC_RecordChild2, // #3 = $src3
/*446990*/      OPC_MoveChild2,
/*446991*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*446994*/      OPC_MoveParent,
/*446995*/      OPC_CheckType, MVT::v4i64,
/*446997*/      OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/*446999*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*447002*/      OPC_EmitMergeInputChains1_1,
/*447003*/      OPC_EmitNodeXForm, 29, 3, // BlendScaleImm4
/*447006*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPBLENDDYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                // Src: (X86Blendi:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                // Dst: (VPBLENDDYrmi:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (BlendScaleImm4:{ *:[i8] } (timm:{ *:[i8] }):$src3))
/*447019*/    /*Scope*/ 44, /*->447064*/
/*447020*/      OPC_MoveChild0,
/*447021*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*447024*/      OPC_RecordMemRef,
/*447025*/      OPC_RecordNode, // #0 = 'ld' chained node
/*447026*/      OPC_CheckFoldableChainNode,
/*447027*/      OPC_RecordChild1, // #1 = $src2
/*447028*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*447030*/      OPC_CheckPredicate, 9, // Predicate_load
/*447032*/      OPC_MoveParent,
/*447033*/      OPC_RecordChild1, // #2 = $src1
/*447034*/      OPC_RecordChild2, // #3 = $src3
/*447035*/      OPC_MoveChild2,
/*447036*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*447039*/      OPC_MoveParent,
/*447040*/      OPC_CheckType, MVT::v4i64,
/*447042*/      OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/*447044*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*447047*/      OPC_EmitMergeInputChains1_0,
/*447048*/      OPC_EmitNodeXForm, 30, 3, // BlendScaleCommuteImm4
/*447051*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPBLENDDYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                // Src: (X86Blendi:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v4i64] }:$src1, (timm:{ *:[i8] }):$src3) - Complexity = 28
                // Dst: (VPBLENDDYrmi:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (BlendScaleCommuteImm4:{ *:[i8] } (timm:{ *:[i8] }):$src3))
/*447064*/    /*Scope*/ 44, /*->447109*/
/*447065*/      OPC_RecordChild0, // #0 = $src1
/*447066*/      OPC_MoveChild1,
/*447067*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*447070*/      OPC_RecordMemRef,
/*447071*/      OPC_RecordNode, // #1 = 'ld' chained node
/*447072*/      OPC_CheckFoldableChainNode,
/*447073*/      OPC_RecordChild1, // #2 = $src2
/*447074*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*447076*/      OPC_CheckPredicate, 9, // Predicate_load
/*447078*/      OPC_MoveParent,
/*447079*/      OPC_RecordChild2, // #3 = $src3
/*447080*/      OPC_MoveChild2,
/*447081*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*447084*/      OPC_MoveParent,
/*447085*/      OPC_CheckType, MVT::v2i64,
/*447087*/      OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/*447089*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*447092*/      OPC_EmitMergeInputChains1_1,
/*447093*/      OPC_EmitNodeXForm, 31, 3, // BlendScaleImm2to4
/*447096*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPBLENDDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 9, 
                // Src: (X86Blendi:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                // Dst: (VPBLENDDrmi:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (BlendScaleImm2to4:{ *:[i8] } (timm:{ *:[i8] }):$src3))
/*447109*/    /*Scope*/ 44, /*->447154*/
/*447110*/      OPC_MoveChild0,
/*447111*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*447114*/      OPC_RecordMemRef,
/*447115*/      OPC_RecordNode, // #0 = 'ld' chained node
/*447116*/      OPC_CheckFoldableChainNode,
/*447117*/      OPC_RecordChild1, // #1 = $src2
/*447118*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*447120*/      OPC_CheckPredicate, 9, // Predicate_load
/*447122*/      OPC_MoveParent,
/*447123*/      OPC_RecordChild1, // #2 = $src1
/*447124*/      OPC_RecordChild2, // #3 = $src3
/*447125*/      OPC_MoveChild2,
/*447126*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*447129*/      OPC_MoveParent,
/*447130*/      OPC_CheckType, MVT::v2i64,
/*447132*/      OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/*447134*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*447137*/      OPC_EmitMergeInputChains1_0,
/*447138*/      OPC_EmitNodeXForm, 32, 3, // BlendScaleCommuteImm2to4
/*447141*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPBLENDDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2i64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                // Src: (X86Blendi:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v2i64] }:$src1, (timm:{ *:[i8] }):$src3) - Complexity = 28
                // Dst: (VPBLENDDrmi:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (BlendScaleCommuteImm2to4:{ *:[i8] } (timm:{ *:[i8] }):$src3))
/*447154*/    /*Scope*/ 122|128,1/*250*/, /*->447406*/
/*447156*/      OPC_RecordChild0, // #0 = $src1
/*447157*/      OPC_Scope, 76|128,1/*204*/, /*->447364*/ // 2 children in Scope
/*447160*/        OPC_RecordChild1, // #1 = $src2
/*447161*/        OPC_RecordChild2, // #2 = $src3
/*447162*/        OPC_MoveChild2,
/*447163*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*447166*/        OPC_MoveParent,
/*447167*/        OPC_SwitchType /*6 cases */, 26, MVT::v8i16,// ->447196
/*447170*/          OPC_Scope, 11, /*->447183*/ // 2 children in Scope
/*447172*/            OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*447174*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBLENDWrri), 0,
                          MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86Blendi:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                      // Dst: (VPBLENDWrri:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2, (timm:{ *:[i8] }):$src3)
/*447183*/          /*Scope*/ 11, /*->447195*/
/*447184*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*447186*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PBLENDWrri), 0,
                          MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86Blendi:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                      // Dst: (PBLENDWrri:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2, (timm:{ *:[i8] }):$src3)
/*447195*/          0, /*End of Scope*/
/*447196*/        /*SwitchType*/ 11, MVT::v16i16,// ->447209
/*447198*/          OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/*447200*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPBLENDWYrri), 0,
                        MVT::v16i16, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86Blendi:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                    // Dst: (VPBLENDWYrri:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2, (timm:{ *:[i8] }):$src3)
/*447209*/        /*SwitchType*/ 29, MVT::v4i64,// ->447240
/*447211*/          OPC_Scope, 11, /*->447224*/ // 2 children in Scope
/*447213*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*447215*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDPDYrri), 0,
                          MVT::v4i64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86Blendi:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                      // Dst: (VBLENDPDYrri:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2, (timm:{ *:[i8] }):$src3)
/*447224*/          /*Scope*/ 14, /*->447239*/
/*447225*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/*447227*/            OPC_EmitNodeXForm, 29, 2, // BlendScaleImm4
/*447230*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBLENDDYrri), 0,
                          MVT::v4i64, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (X86Blendi:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                      // Dst: (VPBLENDDYrri:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2, (BlendScaleImm4:{ *:[i8] } (timm:{ *:[i8] }):$src3))
/*447239*/          0, /*End of Scope*/
/*447240*/        /*SwitchType*/ 47, MVT::v2i64,// ->447289
/*447242*/          OPC_Scope, 14, /*->447258*/ // 3 children in Scope
/*447244*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*447246*/            OPC_EmitNodeXForm, 27, 2, // BlendScaleImm2
/*447249*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBLENDWrri), 0,
                          MVT::v2i64, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (X86Blendi:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                      // Dst: (VPBLENDWrri:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2, (BlendScaleImm2:{ *:[i8] } (timm:{ *:[i8] }):$src3))
/*447258*/          /*Scope*/ 14, /*->447273*/
/*447259*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*447261*/            OPC_EmitNodeXForm, 27, 2, // BlendScaleImm2
/*447264*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PBLENDWrri), 0,
                          MVT::v2i64, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (X86Blendi:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                      // Dst: (PBLENDWrri:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2, (BlendScaleImm2:{ *:[i8] } (timm:{ *:[i8] }):$src3))
/*447273*/          /*Scope*/ 14, /*->447288*/
/*447274*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/*447276*/            OPC_EmitNodeXForm, 31, 2, // BlendScaleImm2to4
/*447279*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBLENDDrri), 0,
                          MVT::v2i64, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (X86Blendi:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                      // Dst: (VPBLENDDrri:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2, (BlendScaleImm2to4:{ *:[i8] } (timm:{ *:[i8] }):$src3))
/*447288*/          0, /*End of Scope*/
/*447289*/        /*SwitchType*/ 26, MVT::v8i32,// ->447317
/*447291*/          OPC_Scope, 11, /*->447304*/ // 2 children in Scope
/*447293*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*447295*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDPSYrri), 0,
                          MVT::v8i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86Blendi:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                      // Dst: (VBLENDPSYrri:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2, (timm:{ *:[i8] }):$src3)
/*447304*/          /*Scope*/ 11, /*->447316*/
/*447305*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/*447307*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBLENDDYrri), 0,
                          MVT::v8i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86Blendi:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                      // Dst: (VPBLENDDYrri:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2, (timm:{ *:[i8] }):$src3)
/*447316*/          0, /*End of Scope*/
/*447317*/        /*SwitchType*/ 44, MVT::v4i32,// ->447363
/*447319*/          OPC_Scope, 14, /*->447335*/ // 3 children in Scope
/*447321*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*447323*/            OPC_EmitNodeXForm, 29, 2, // BlendScaleImm4
/*447326*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBLENDWrri), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (X86Blendi:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                      // Dst: (VPBLENDWrri:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2, (BlendScaleImm4:{ *:[i8] } (timm:{ *:[i8] }):$src3))
/*447335*/          /*Scope*/ 14, /*->447350*/
/*447336*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*447338*/            OPC_EmitNodeXForm, 29, 2, // BlendScaleImm4
/*447341*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PBLENDWrri), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 1, 3, 
                      // Src: (X86Blendi:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                      // Dst: (PBLENDWrri:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2, (BlendScaleImm4:{ *:[i8] } (timm:{ *:[i8] }):$src3))
/*447350*/          /*Scope*/ 11, /*->447362*/
/*447351*/            OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/*447353*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBLENDDrri), 0,
                          MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86Blendi:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                      // Dst: (VPBLENDDrri:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2, (timm:{ *:[i8] }):$src3)
/*447362*/          0, /*End of Scope*/
/*447363*/        0, // EndSwitchType
/*447364*/      /*Scope*/ 40, /*->447405*/
/*447365*/        OPC_MoveChild1,
/*447366*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*447369*/        OPC_RecordMemRef,
/*447370*/        OPC_RecordNode, // #1 = 'ld' chained node
/*447371*/        OPC_CheckFoldableChainNode,
/*447372*/        OPC_RecordChild1, // #2 = $src2
/*447373*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*447375*/        OPC_CheckPredicate, 9, // Predicate_load
/*447377*/        OPC_MoveParent,
/*447378*/        OPC_RecordChild2, // #3 = $src3
/*447379*/        OPC_MoveChild2,
/*447380*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*447383*/        OPC_MoveParent,
/*447384*/        OPC_CheckType, MVT::v4f32,
/*447386*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*447388*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*447391*/        OPC_EmitMergeInputChains1_1,
/*447392*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (X86Blendi:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                  // Dst: (VBLENDPSrmi:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*447405*/      0, /*End of Scope*/
/*447406*/    /*Scope*/ 44, /*->447451*/
/*447407*/      OPC_MoveChild0,
/*447408*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*447411*/      OPC_RecordMemRef,
/*447412*/      OPC_RecordNode, // #0 = 'ld' chained node
/*447413*/      OPC_CheckFoldableChainNode,
/*447414*/      OPC_RecordChild1, // #1 = $src2
/*447415*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*447417*/      OPC_CheckPredicate, 9, // Predicate_load
/*447419*/      OPC_MoveParent,
/*447420*/      OPC_RecordChild1, // #2 = $src1
/*447421*/      OPC_RecordChild2, // #3 = $src3
/*447422*/      OPC_MoveChild2,
/*447423*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*447426*/      OPC_MoveParent,
/*447427*/      OPC_CheckType, MVT::v4f32,
/*447429*/      OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*447431*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*447434*/      OPC_EmitMergeInputChains1_0,
/*447435*/      OPC_EmitNodeXForm, 26, 3, // BlendCommuteImm4
/*447438*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4f32, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                // Src: (X86Blendi:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v4f32] }:$src1, (timm:{ *:[i8] }):$src3) - Complexity = 28
                // Dst: (VBLENDPSrmi:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (BlendCommuteImm4:{ *:[i8] } (timm:{ *:[i8] }):$src3))
/*447451*/    /*Scope*/ 41, /*->447493*/
/*447452*/      OPC_RecordChild0, // #0 = $src1
/*447453*/      OPC_MoveChild1,
/*447454*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*447457*/      OPC_RecordMemRef,
/*447458*/      OPC_RecordNode, // #1 = 'ld' chained node
/*447459*/      OPC_CheckFoldableChainNode,
/*447460*/      OPC_RecordChild1, // #2 = $src2
/*447461*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*447463*/      OPC_CheckPredicate, 9, // Predicate_load
/*447465*/      OPC_MoveParent,
/*447466*/      OPC_RecordChild2, // #3 = $src3
/*447467*/      OPC_MoveChild2,
/*447468*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*447471*/      OPC_MoveParent,
/*447472*/      OPC_CheckType, MVT::v8f32,
/*447474*/      OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*447476*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*447479*/      OPC_EmitMergeInputChains1_1,
/*447480*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDPSYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                // Src: (X86Blendi:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                // Dst: (VBLENDPSYrmi:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*447493*/    /*Scope*/ 44, /*->447538*/
/*447494*/      OPC_MoveChild0,
/*447495*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*447498*/      OPC_RecordMemRef,
/*447499*/      OPC_RecordNode, // #0 = 'ld' chained node
/*447500*/      OPC_CheckFoldableChainNode,
/*447501*/      OPC_RecordChild1, // #1 = $src2
/*447502*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*447504*/      OPC_CheckPredicate, 9, // Predicate_load
/*447506*/      OPC_MoveParent,
/*447507*/      OPC_RecordChild1, // #2 = $src1
/*447508*/      OPC_RecordChild2, // #3 = $src3
/*447509*/      OPC_MoveChild2,
/*447510*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*447513*/      OPC_MoveParent,
/*447514*/      OPC_CheckType, MVT::v8f32,
/*447516*/      OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*447518*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*447521*/      OPC_EmitMergeInputChains1_0,
/*447522*/      OPC_EmitNodeXForm, 25, 3, // BlendCommuteImm8
/*447525*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDPSYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8f32, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                // Src: (X86Blendi:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v8f32] }:$src1, (timm:{ *:[i8] }):$src3) - Complexity = 28
                // Dst: (VBLENDPSYrmi:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (BlendCommuteImm8:{ *:[i8] } (timm:{ *:[i8] }):$src3))
/*447538*/    /*Scope*/ 41, /*->447580*/
/*447539*/      OPC_RecordChild0, // #0 = $src1
/*447540*/      OPC_MoveChild1,
/*447541*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*447544*/      OPC_RecordMemRef,
/*447545*/      OPC_RecordNode, // #1 = 'ld' chained node
/*447546*/      OPC_CheckFoldableChainNode,
/*447547*/      OPC_RecordChild1, // #2 = $src2
/*447548*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*447550*/      OPC_CheckPredicate, 9, // Predicate_load
/*447552*/      OPC_MoveParent,
/*447553*/      OPC_RecordChild2, // #3 = $src3
/*447554*/      OPC_MoveChild2,
/*447555*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*447558*/      OPC_MoveParent,
/*447559*/      OPC_CheckType, MVT::v2f64,
/*447561*/      OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*447563*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*447566*/      OPC_EmitMergeInputChains1_1,
/*447567*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                // Src: (X86Blendi:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                // Dst: (VBLENDPDrmi:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*447580*/    /*Scope*/ 44, /*->447625*/
/*447581*/      OPC_MoveChild0,
/*447582*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*447585*/      OPC_RecordMemRef,
/*447586*/      OPC_RecordNode, // #0 = 'ld' chained node
/*447587*/      OPC_CheckFoldableChainNode,
/*447588*/      OPC_RecordChild1, // #1 = $src2
/*447589*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*447591*/      OPC_CheckPredicate, 9, // Predicate_load
/*447593*/      OPC_MoveParent,
/*447594*/      OPC_RecordChild1, // #2 = $src1
/*447595*/      OPC_RecordChild2, // #3 = $src3
/*447596*/      OPC_MoveChild2,
/*447597*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*447600*/      OPC_MoveParent,
/*447601*/      OPC_CheckType, MVT::v2f64,
/*447603*/      OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*447605*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*447608*/      OPC_EmitMergeInputChains1_0,
/*447609*/      OPC_EmitNodeXForm, 33, 3, // BlendCommuteImm2
/*447612*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2f64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                // Src: (X86Blendi:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v2f64] }:$src1, (timm:{ *:[i8] }):$src3) - Complexity = 28
                // Dst: (VBLENDPDrmi:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (BlendCommuteImm2:{ *:[i8] } (timm:{ *:[i8] }):$src3))
/*447625*/    /*Scope*/ 41, /*->447667*/
/*447626*/      OPC_RecordChild0, // #0 = $src1
/*447627*/      OPC_MoveChild1,
/*447628*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*447631*/      OPC_RecordMemRef,
/*447632*/      OPC_RecordNode, // #1 = 'ld' chained node
/*447633*/      OPC_CheckFoldableChainNode,
/*447634*/      OPC_RecordChild1, // #2 = $src2
/*447635*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*447637*/      OPC_CheckPredicate, 9, // Predicate_load
/*447639*/      OPC_MoveParent,
/*447640*/      OPC_RecordChild2, // #3 = $src3
/*447641*/      OPC_MoveChild2,
/*447642*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*447645*/      OPC_MoveParent,
/*447646*/      OPC_CheckType, MVT::v4f64,
/*447648*/      OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*447650*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*447653*/      OPC_EmitMergeInputChains1_1,
/*447654*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDPDYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                // Src: (X86Blendi:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                // Dst: (VBLENDPDYrmi:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*447667*/    /*Scope*/ 44, /*->447712*/
/*447668*/      OPC_MoveChild0,
/*447669*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*447672*/      OPC_RecordMemRef,
/*447673*/      OPC_RecordNode, // #0 = 'ld' chained node
/*447674*/      OPC_CheckFoldableChainNode,
/*447675*/      OPC_RecordChild1, // #1 = $src2
/*447676*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*447678*/      OPC_CheckPredicate, 9, // Predicate_load
/*447680*/      OPC_MoveParent,
/*447681*/      OPC_RecordChild1, // #2 = $src1
/*447682*/      OPC_RecordChild2, // #3 = $src3
/*447683*/      OPC_MoveChild2,
/*447684*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*447687*/      OPC_MoveParent,
/*447688*/      OPC_CheckType, MVT::v4f64,
/*447690*/      OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*447692*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*447695*/      OPC_EmitMergeInputChains1_0,
/*447696*/      OPC_EmitNodeXForm, 26, 3, // BlendCommuteImm4
/*447699*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDPDYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4f64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                // Src: (X86Blendi:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v4f64] }:$src1, (timm:{ *:[i8] }):$src3) - Complexity = 28
                // Dst: (VBLENDPDYrmi:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (BlendCommuteImm4:{ *:[i8] } (timm:{ *:[i8] }):$src3))
/*447712*/    /*Scope*/ 43, /*->447756*/
/*447713*/      OPC_RecordChild0, // #0 = $src1
/*447714*/      OPC_MoveChild1,
/*447715*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*447718*/      OPC_RecordMemRef,
/*447719*/      OPC_RecordNode, // #1 = 'ld' chained node
/*447720*/      OPC_CheckFoldableChainNode,
/*447721*/      OPC_RecordChild1, // #2 = $src2
/*447722*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*447724*/      OPC_CheckPredicate, 9, // Predicate_load
/*447726*/      OPC_CheckPredicate, 39, // Predicate_memop
/*447728*/      OPC_MoveParent,
/*447729*/      OPC_RecordChild2, // #3 = $src3
/*447730*/      OPC_MoveChild2,
/*447731*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*447734*/      OPC_MoveParent,
/*447735*/      OPC_CheckType, MVT::v4f32,
/*447737*/      OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*447739*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*447742*/      OPC_EmitMergeInputChains1_1,
/*447743*/      OPC_MorphNodeTo1, TARGET_VAL(X86::BLENDPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                // Src: (X86Blendi:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                // Dst: (BLENDPSrmi:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*447756*/    /*Scope*/ 44, /*->447801*/
/*447757*/      OPC_MoveChild0,
/*447758*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*447761*/      OPC_RecordMemRef,
/*447762*/      OPC_RecordNode, // #0 = 'ld' chained node
/*447763*/      OPC_CheckFoldableChainNode,
/*447764*/      OPC_RecordChild1, // #1 = $src2
/*447765*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*447767*/      OPC_CheckPredicate, 9, // Predicate_load
/*447769*/      OPC_CheckPredicate, 39, // Predicate_memop
/*447771*/      OPC_MoveParent,
/*447772*/      OPC_RecordChild1, // #2 = $src1
/*447773*/      OPC_RecordChild2, // #3 = $src3
/*447774*/      OPC_MoveChild2,
/*447775*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*447778*/      OPC_MoveParent,
/*447779*/      OPC_CheckType, MVT::v4f32,
/*447781*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*447784*/      OPC_EmitMergeInputChains1_0,
/*447785*/      OPC_EmitNodeXForm, 26, 3, // BlendCommuteImm4
/*447788*/      OPC_MorphNodeTo1, TARGET_VAL(X86::BLENDPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4f32, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                // Src: (X86Blendi:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:{ *:[v4f32] }:$src1, (timm:{ *:[i8] }):$src3) - Complexity = 28
                // Dst: (BLENDPSrmi:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (BlendCommuteImm4:{ *:[i8] } (timm:{ *:[i8] }):$src3))
/*447801*/    /*Scope*/ 43, /*->447845*/
/*447802*/      OPC_RecordChild0, // #0 = $src1
/*447803*/      OPC_MoveChild1,
/*447804*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*447807*/      OPC_RecordMemRef,
/*447808*/      OPC_RecordNode, // #1 = 'ld' chained node
/*447809*/      OPC_CheckFoldableChainNode,
/*447810*/      OPC_RecordChild1, // #2 = $src2
/*447811*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*447813*/      OPC_CheckPredicate, 9, // Predicate_load
/*447815*/      OPC_CheckPredicate, 39, // Predicate_memop
/*447817*/      OPC_MoveParent,
/*447818*/      OPC_RecordChild2, // #3 = $src3
/*447819*/      OPC_MoveChild2,
/*447820*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*447823*/      OPC_MoveParent,
/*447824*/      OPC_CheckType, MVT::v2f64,
/*447826*/      OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*447828*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*447831*/      OPC_EmitMergeInputChains1_1,
/*447832*/      OPC_MorphNodeTo1, TARGET_VAL(X86::BLENDPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                // Src: (X86Blendi:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                // Dst: (BLENDPDrmi:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*447845*/    /*Scope*/ 44, /*->447890*/
/*447846*/      OPC_MoveChild0,
/*447847*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*447850*/      OPC_RecordMemRef,
/*447851*/      OPC_RecordNode, // #0 = 'ld' chained node
/*447852*/      OPC_CheckFoldableChainNode,
/*447853*/      OPC_RecordChild1, // #1 = $src2
/*447854*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*447856*/      OPC_CheckPredicate, 9, // Predicate_load
/*447858*/      OPC_CheckPredicate, 39, // Predicate_memop
/*447860*/      OPC_MoveParent,
/*447861*/      OPC_RecordChild1, // #2 = $src1
/*447862*/      OPC_RecordChild2, // #3 = $src3
/*447863*/      OPC_MoveChild2,
/*447864*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*447867*/      OPC_MoveParent,
/*447868*/      OPC_CheckType, MVT::v2f64,
/*447870*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*447873*/      OPC_EmitMergeInputChains1_0,
/*447874*/      OPC_EmitNodeXForm, 33, 3, // BlendCommuteImm2
/*447877*/      OPC_MorphNodeTo1, TARGET_VAL(X86::BLENDPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2f64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                // Src: (X86Blendi:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:{ *:[v2f64] }:$src1, (timm:{ *:[i8] }):$src3) - Complexity = 28
                // Dst: (BLENDPDrmi:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (BlendCommuteImm2:{ *:[i8] } (timm:{ *:[i8] }):$src3))
/*447890*/    /*Scope*/ 92, /*->447983*/
/*447891*/      OPC_RecordChild0, // #0 = $src1
/*447892*/      OPC_RecordChild1, // #1 = $src2
/*447893*/      OPC_RecordChild2, // #2 = $src3
/*447894*/      OPC_MoveChild2,
/*447895*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*447898*/      OPC_MoveParent,
/*447899*/      OPC_SwitchType /*4 cases */, 26, MVT::v4f32,// ->447928
/*447902*/        OPC_Scope, 11, /*->447915*/ // 2 children in Scope
/*447904*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*447906*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDPSrri), 0,
                        MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86Blendi:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                    // Dst: (VBLENDPSrri:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, (timm:{ *:[i8] }):$src3)
/*447915*/        /*Scope*/ 11, /*->447927*/
/*447916*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*447918*/          OPC_MorphNodeTo1, TARGET_VAL(X86::BLENDPSrri), 0,
                        MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86Blendi:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                    // Dst: (BLENDPSrri:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, (timm:{ *:[i8] }):$src3)
/*447927*/        0, /*End of Scope*/
/*447928*/      /*SwitchType*/ 11, MVT::v8f32,// ->447941
/*447930*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*447932*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDPSYrri), 0,
                      MVT::v8f32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86Blendi:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VBLENDPSYrri:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, (timm:{ *:[i8] }):$src3)
/*447941*/      /*SwitchType*/ 26, MVT::v2f64,// ->447969
/*447943*/        OPC_Scope, 11, /*->447956*/ // 2 children in Scope
/*447945*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*447947*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDPDrri), 0,
                        MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86Blendi:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                    // Dst: (VBLENDPDrri:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, (timm:{ *:[i8] }):$src3)
/*447956*/        /*Scope*/ 11, /*->447968*/
/*447957*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*447959*/          OPC_MorphNodeTo1, TARGET_VAL(X86::BLENDPDrri), 0,
                        MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86Blendi:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                    // Dst: (BLENDPDrri:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, (timm:{ *:[i8] }):$src3)
/*447968*/        0, /*End of Scope*/
/*447969*/      /*SwitchType*/ 11, MVT::v4f64,// ->447982
/*447971*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*447973*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDPDYrri), 0,
                      MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86Blendi:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VBLENDPDYrri:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, (timm:{ *:[i8] }):$src3)
/*447982*/      0, // EndSwitchType
/*447983*/    0, /*End of Scope*/
/*447984*/  /*SwitchOpcode*/ 68|128,2/*324*/, TARGET_VAL(X86ISD::VPERM2X128),// ->448312
/*447988*/    OPC_Scope, 41, /*->448031*/ // 7 children in Scope
/*447990*/      OPC_RecordChild0, // #0 = $src1
/*447991*/      OPC_MoveChild1,
/*447992*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*447995*/      OPC_RecordMemRef,
/*447996*/      OPC_RecordNode, // #1 = 'ld' chained node
/*447997*/      OPC_CheckFoldableChainNode,
/*447998*/      OPC_RecordChild1, // #2 = $src2
/*447999*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*448001*/      OPC_CheckPredicate, 9, // Predicate_load
/*448003*/      OPC_MoveParent,
/*448004*/      OPC_RecordChild2, // #3 = $imm
/*448005*/      OPC_MoveChild2,
/*448006*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*448009*/      OPC_MoveParent,
/*448010*/      OPC_CheckType, MVT::v4i64,
/*448012*/      OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*448014*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*448017*/      OPC_EmitMergeInputChains1_1,
/*448018*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPERM2F128rm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                // Src: (X86VPerm2x128:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$imm) - Complexity = 28
                // Dst: (VPERM2F128rm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$imm)
/*448031*/    /*Scope*/ 44, /*->448076*/
/*448032*/      OPC_MoveChild0,
/*448033*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*448036*/      OPC_RecordMemRef,
/*448037*/      OPC_RecordNode, // #0 = 'ld' chained node
/*448038*/      OPC_CheckFoldableChainNode,
/*448039*/      OPC_RecordChild1, // #1 = $src2
/*448040*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*448042*/      OPC_CheckPredicate, 9, // Predicate_load
/*448044*/      OPC_MoveParent,
/*448045*/      OPC_RecordChild1, // #2 = $src1
/*448046*/      OPC_RecordChild2, // #3 = $imm
/*448047*/      OPC_MoveChild2,
/*448048*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*448051*/      OPC_MoveParent,
/*448052*/      OPC_CheckType, MVT::v4i64,
/*448054*/      OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*448056*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*448059*/      OPC_EmitMergeInputChains1_0,
/*448060*/      OPC_EmitNodeXForm, 34, 3, // Perm2XCommuteImm
/*448063*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPERM2F128rm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                // Src: (X86VPerm2x128:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v4i64] }:$src1, (timm:{ *:[i8] }):$imm) - Complexity = 28
                // Dst: (VPERM2F128rm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (Perm2XCommuteImm:{ *:[i8] } (timm:{ *:[i8] }):$imm))
/*448076*/    /*Scope*/ 41, /*->448118*/
/*448077*/      OPC_RecordChild0, // #0 = $src1
/*448078*/      OPC_MoveChild1,
/*448079*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*448082*/      OPC_RecordMemRef,
/*448083*/      OPC_RecordNode, // #1 = 'ld' chained node
/*448084*/      OPC_CheckFoldableChainNode,
/*448085*/      OPC_RecordChild1, // #2 = $src2
/*448086*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*448088*/      OPC_CheckPredicate, 9, // Predicate_load
/*448090*/      OPC_MoveParent,
/*448091*/      OPC_RecordChild2, // #3 = $src3
/*448092*/      OPC_MoveChild2,
/*448093*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*448096*/      OPC_MoveParent,
/*448097*/      OPC_CheckType, MVT::v4i64,
/*448099*/      OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/*448101*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*448104*/      OPC_EmitMergeInputChains1_1,
/*448105*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPERM2I128rm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                // Src: (X86VPerm2x128:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                // Dst: (VPERM2I128rm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*448118*/    /*Scope*/ 44, /*->448163*/
/*448119*/      OPC_MoveChild0,
/*448120*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*448123*/      OPC_RecordMemRef,
/*448124*/      OPC_RecordNode, // #0 = 'ld' chained node
/*448125*/      OPC_CheckFoldableChainNode,
/*448126*/      OPC_RecordChild1, // #1 = $src2
/*448127*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*448129*/      OPC_CheckPredicate, 9, // Predicate_load
/*448131*/      OPC_MoveParent,
/*448132*/      OPC_RecordChild1, // #2 = $src1
/*448133*/      OPC_RecordChild2, // #3 = $imm
/*448134*/      OPC_MoveChild2,
/*448135*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*448138*/      OPC_MoveParent,
/*448139*/      OPC_CheckType, MVT::v4i64,
/*448141*/      OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/*448143*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*448146*/      OPC_EmitMergeInputChains1_0,
/*448147*/      OPC_EmitNodeXForm, 34, 3, // Perm2XCommuteImm
/*448150*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPERM2I128rm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                // Src: (X86VPerm2x128:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v4i64] }:$src1, (timm:{ *:[i8] }):$imm) - Complexity = 28
                // Dst: (VPERM2I128rm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (Perm2XCommuteImm:{ *:[i8] } (timm:{ *:[i8] }):$imm))
/*448163*/    /*Scope*/ 80, /*->448244*/
/*448164*/      OPC_RecordChild0, // #0 = $src1
/*448165*/      OPC_Scope, 35, /*->448202*/ // 2 children in Scope
/*448167*/        OPC_RecordChild1, // #1 = $src2
/*448168*/        OPC_RecordChild2, // #2 = $imm
/*448169*/        OPC_MoveChild2,
/*448170*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*448173*/        OPC_MoveParent,
/*448174*/        OPC_CheckType, MVT::v4i64,
/*448176*/        OPC_Scope, 11, /*->448189*/ // 2 children in Scope
/*448178*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*448180*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERM2F128rr), 0,
                        MVT::v4i64, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86VPerm2x128:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2, (timm:{ *:[i8] }):$imm) - Complexity = 6
                    // Dst: (VPERM2F128rr:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2, (timm:{ *:[i8] }):$imm)
/*448189*/        /*Scope*/ 11, /*->448201*/
/*448190*/          OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/*448192*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERM2I128rr), 0,
                        MVT::v4i64, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86VPerm2x128:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                    // Dst: (VPERM2I128rr:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2, (timm:{ *:[i8] }):$src3)
/*448201*/        0, /*End of Scope*/
/*448202*/      /*Scope*/ 40, /*->448243*/
/*448203*/        OPC_MoveChild1,
/*448204*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*448207*/        OPC_RecordMemRef,
/*448208*/        OPC_RecordNode, // #1 = 'ld' chained node
/*448209*/        OPC_CheckFoldableChainNode,
/*448210*/        OPC_RecordChild1, // #2 = $src2
/*448211*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*448213*/        OPC_CheckPredicate, 9, // Predicate_load
/*448215*/        OPC_MoveParent,
/*448216*/        OPC_RecordChild2, // #3 = $src3
/*448217*/        OPC_MoveChild2,
/*448218*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*448221*/        OPC_MoveParent,
/*448222*/        OPC_CheckType, MVT::v4f64,
/*448224*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*448226*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*448229*/        OPC_EmitMergeInputChains1_1,
/*448230*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPERM2F128rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (X86VPerm2x128:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                  // Dst: (VPERM2F128rm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*448243*/      0, /*End of Scope*/
/*448244*/    /*Scope*/ 44, /*->448289*/
/*448245*/      OPC_MoveChild0,
/*448246*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*448249*/      OPC_RecordMemRef,
/*448250*/      OPC_RecordNode, // #0 = 'ld' chained node
/*448251*/      OPC_CheckFoldableChainNode,
/*448252*/      OPC_RecordChild1, // #1 = $src2
/*448253*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*448255*/      OPC_CheckPredicate, 9, // Predicate_load
/*448257*/      OPC_MoveParent,
/*448258*/      OPC_RecordChild1, // #2 = $src1
/*448259*/      OPC_RecordChild2, // #3 = $imm
/*448260*/      OPC_MoveChild2,
/*448261*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*448264*/      OPC_MoveParent,
/*448265*/      OPC_CheckType, MVT::v4f64,
/*448267*/      OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*448269*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*448272*/      OPC_EmitMergeInputChains1_0,
/*448273*/      OPC_EmitNodeXForm, 34, 3, // Perm2XCommuteImm
/*448276*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPERM2F128rm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4f64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 9, 
                // Src: (X86VPerm2x128:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v4f64] }:$src1, (timm:{ *:[i8] }):$imm) - Complexity = 28
                // Dst: (VPERM2F128rm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (Perm2XCommuteImm:{ *:[i8] } (timm:{ *:[i8] }):$imm))
/*448289*/    /*Scope*/ 21, /*->448311*/
/*448290*/      OPC_RecordChild0, // #0 = $src1
/*448291*/      OPC_RecordChild1, // #1 = $src2
/*448292*/      OPC_RecordChild2, // #2 = $src3
/*448293*/      OPC_MoveChild2,
/*448294*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*448297*/      OPC_MoveParent,
/*448298*/      OPC_CheckType, MVT::v4f64,
/*448300*/      OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*448302*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPERM2F128rr), 0,
                    MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (X86VPerm2x128:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                // Dst: (VPERM2F128rr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, (timm:{ *:[i8] }):$src3)
/*448311*/    0, /*End of Scope*/
/*448312*/  /*SwitchOpcode*/ 23|128,19/*2455*/, TARGET_VAL(X86ISD::VBROADCAST),// ->450771
/*448316*/    OPC_Scope, 120|128,5/*760*/, /*->449079*/ // 4 children in Scope
/*448319*/      OPC_MoveChild0,
/*448320*/      OPC_SwitchOpcode /*3 cases */, 30|128,3/*414*/, TARGET_VAL(ISD::TRUNCATE),// ->448739
/*448325*/        OPC_MoveChild0,
/*448326*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*448329*/        OPC_RecordMemRef,
/*448330*/        OPC_RecordNode, // #0 = 'ld' chained node
/*448331*/        OPC_CheckFoldableChainNode,
/*448332*/        OPC_RecordChild1, // #1 = $src
/*448333*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*448335*/        OPC_CheckType, MVT::i32,
/*448337*/        OPC_Scope, 46, /*->448385*/ // 13 children in Scope
/*448339*/          OPC_CheckPredicate, 9, // Predicate_load
/*448341*/          OPC_MoveParent,
/*448342*/          OPC_CheckType, MVT::i16,
/*448344*/          OPC_MoveParent,
/*448345*/          OPC_SwitchType /*2 cases */, 17, MVT::v8i16,// ->448365
/*448348*/            OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*448350*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*448353*/            OPC_EmitMergeInputChains1_0,
/*448354*/            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)
/*448365*/          /*SwitchType*/ 17, MVT::v16i16,// ->448384
/*448367*/            OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*448369*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*448372*/            OPC_EmitMergeInputChains1_0,
/*448373*/            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)
/*448384*/          0, // EndSwitchType
/*448385*/        /*Scope*/ 27, /*->448413*/
/*448386*/          OPC_CheckPredicate, 70, // Predicate_extload
/*448388*/          OPC_CheckPredicate, 35, // Predicate_extloadi16
/*448390*/          OPC_MoveParent,
/*448391*/          OPC_CheckType, MVT::i16,
/*448393*/          OPC_MoveParent,
/*448394*/          OPC_CheckType, MVT::v8i16,
/*448396*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*448398*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*448401*/          OPC_EmitMergeInputChains1_0,
/*448402*/          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_extload>><<P:Predicate_extloadi16>>)) - Complexity = 28
                    // Dst: (VPBROADCASTWrm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*448413*/        /*Scope*/ 27, /*->448441*/
/*448414*/          OPC_CheckPredicate, 53, // Predicate_zextload
/*448416*/          OPC_CheckPredicate, 35, // Predicate_zextloadi16
/*448418*/          OPC_MoveParent,
/*448419*/          OPC_CheckType, MVT::i16,
/*448421*/          OPC_MoveParent,
/*448422*/          OPC_CheckType, MVT::v8i16,
/*448424*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*448426*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*448429*/          OPC_EmitMergeInputChains1_0,
/*448430*/          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)
/*448441*/        /*Scope*/ 27, /*->448469*/
/*448442*/          OPC_CheckPredicate, 70, // Predicate_extload
/*448444*/          OPC_CheckPredicate, 35, // Predicate_extloadi16
/*448446*/          OPC_MoveParent,
/*448447*/          OPC_CheckType, MVT::i16,
/*448449*/          OPC_MoveParent,
/*448450*/          OPC_CheckType, MVT::v16i16,
/*448452*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*448454*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*448457*/          OPC_EmitMergeInputChains1_0,
/*448458*/          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_extload>><<P:Predicate_extloadi16>>)) - Complexity = 28
                    // Dst: (VPBROADCASTWYrm:{ *:[v16i16] } addr:{ *:[iPTR] }:$src)
/*448469*/        /*Scope*/ 27, /*->448497*/
/*448470*/          OPC_CheckPredicate, 53, // Predicate_zextload
/*448472*/          OPC_CheckPredicate, 35, // Predicate_zextloadi16
/*448474*/          OPC_MoveParent,
/*448475*/          OPC_CheckType, MVT::i16,
/*448477*/          OPC_MoveParent,
/*448478*/          OPC_CheckType, MVT::v16i16,
/*448480*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*448482*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*448485*/          OPC_EmitMergeInputChains1_0,
/*448486*/          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)
/*448497*/        /*Scope*/ 46, /*->448544*/
/*448498*/          OPC_CheckPredicate, 9, // Predicate_load
/*448500*/          OPC_MoveParent,
/*448501*/          OPC_CheckType, MVT::i16,
/*448503*/          OPC_MoveParent,
/*448504*/          OPC_SwitchType /*2 cases */, 17, MVT::v8i16,// ->448524
/*448507*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*448509*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*448512*/            OPC_EmitMergeInputChains1_0,
/*448513*/            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)
/*448524*/          /*SwitchType*/ 17, MVT::v16i16,// ->448543
/*448526*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*448528*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*448531*/            OPC_EmitMergeInputChains1_0,
/*448532*/            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)
/*448543*/          0, // EndSwitchType
/*448544*/        /*Scope*/ 27, /*->448572*/
/*448545*/          OPC_CheckPredicate, 70, // Predicate_extload
/*448547*/          OPC_CheckPredicate, 35, // Predicate_extloadi16
/*448549*/          OPC_MoveParent,
/*448550*/          OPC_CheckType, MVT::i16,
/*448552*/          OPC_MoveParent,
/*448553*/          OPC_CheckType, MVT::v8i16,
/*448555*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*448557*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*448560*/          OPC_EmitMergeInputChains1_0,
/*448561*/          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_extload>><<P:Predicate_extloadi16>>)) - Complexity = 28
                    // Dst: (VPBROADCASTWZ128m:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*448572*/        /*Scope*/ 27, /*->448600*/
/*448573*/          OPC_CheckPredicate, 53, // Predicate_zextload
/*448575*/          OPC_CheckPredicate, 35, // Predicate_zextloadi16
/*448577*/          OPC_MoveParent,
/*448578*/          OPC_CheckType, MVT::i16,
/*448580*/          OPC_MoveParent,
/*448581*/          OPC_CheckType, MVT::v8i16,
/*448583*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*448585*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*448588*/          OPC_EmitMergeInputChains1_0,
/*448589*/          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)
/*448600*/        /*Scope*/ 27, /*->448628*/
/*448601*/          OPC_CheckPredicate, 70, // Predicate_extload
/*448603*/          OPC_CheckPredicate, 35, // Predicate_extloadi16
/*448605*/          OPC_MoveParent,
/*448606*/          OPC_CheckType, MVT::i16,
/*448608*/          OPC_MoveParent,
/*448609*/          OPC_CheckType, MVT::v16i16,
/*448611*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*448613*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*448616*/          OPC_EmitMergeInputChains1_0,
/*448617*/          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_extload>><<P:Predicate_extloadi16>>)) - Complexity = 28
                    // Dst: (VPBROADCASTWZ256m:{ *:[v16i16] } addr:{ *:[iPTR] }:$src)
/*448628*/        /*Scope*/ 27, /*->448656*/
/*448629*/          OPC_CheckPredicate, 53, // Predicate_zextload
/*448631*/          OPC_CheckPredicate, 35, // Predicate_zextloadi16
/*448633*/          OPC_MoveParent,
/*448634*/          OPC_CheckType, MVT::i16,
/*448636*/          OPC_MoveParent,
/*448637*/          OPC_CheckType, MVT::v16i16,
/*448639*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*448641*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*448644*/          OPC_EmitMergeInputChains1_0,
/*448645*/          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)
/*448656*/        /*Scope*/ 25, /*->448682*/
/*448657*/          OPC_CheckPredicate, 9, // Predicate_load
/*448659*/          OPC_MoveParent,
/*448660*/          OPC_CheckType, MVT::i16,
/*448662*/          OPC_MoveParent,
/*448663*/          OPC_CheckType, MVT::v32i16,
/*448665*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*448667*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*448670*/          OPC_EmitMergeInputChains1_0,
/*448671*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86VBroadcast:{ *:[v32i16] } (trunc:{ *:[i16] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>)) - Complexity = 28
                    // Dst: (VPBROADCASTWZm:{ *:[v32i16] } addr:{ *:[iPTR] }:$src)
/*448682*/        /*Scope*/ 27, /*->448710*/
/*448683*/          OPC_CheckPredicate, 70, // Predicate_extload
/*448685*/          OPC_CheckPredicate, 35, // Predicate_extloadi16
/*448687*/          OPC_MoveParent,
/*448688*/          OPC_CheckType, MVT::i16,
/*448690*/          OPC_MoveParent,
/*448691*/          OPC_CheckType, MVT::v32i16,
/*448693*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*448695*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*448698*/          OPC_EmitMergeInputChains1_0,
/*448699*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86VBroadcast:{ *:[v32i16] } (trunc:{ *:[i16] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>>)) - Complexity = 28
                    // Dst: (VPBROADCASTWZm:{ *:[v32i16] } addr:{ *:[iPTR] }:$src)
/*448710*/        /*Scope*/ 27, /*->448738*/
/*448711*/          OPC_CheckPredicate, 53, // Predicate_zextload
/*448713*/          OPC_CheckPredicate, 35, // Predicate_zextloadi16
/*448715*/          OPC_MoveParent,
/*448716*/          OPC_CheckType, MVT::i16,
/*448718*/          OPC_MoveParent,
/*448719*/          OPC_CheckType, MVT::v32i16,
/*448721*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*448723*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*448726*/          OPC_EmitMergeInputChains1_0,
/*448727*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86VBroadcast:{ *:[v32i16] } (trunc:{ *:[i16] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>>)) - Complexity = 28
                    // Dst: (VPBROADCASTWZm:{ *:[v32i16] } addr:{ *:[iPTR] }:$src)
/*448738*/        0, /*End of Scope*/
/*448739*/      /*SwitchOpcode*/ 109, TARGET_VAL(X86ISD::VZEXT_LOAD),// ->448851
/*448742*/        OPC_RecordMemRef,
/*448743*/        OPC_RecordNode, // #0 = 'X86vzld' chained node
/*448744*/        OPC_RecordChild1, // #1 = $src
/*448745*/        OPC_CheckPredicate, 49, // Predicate_X86vzload64
/*448747*/        OPC_CheckType, MVT::v2i64,
/*448749*/        OPC_MoveParent,
/*448750*/        OPC_SwitchType /*3 cases */, 38, MVT::v2i64,// ->448791
/*448753*/          OPC_Scope, 17, /*->448772*/ // 2 children in Scope
/*448755*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*448757*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*448760*/            OPC_EmitMergeInputChains1_0,
/*448761*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86VBroadcast:{ *:[v2i64] } (X86vzld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>) - Complexity = 25
                      // Dst: (VPBROADCASTQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*448772*/          /*Scope*/ 17, /*->448790*/
/*448773*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*448775*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*448778*/            OPC_EmitMergeInputChains1_0,
/*448779*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86VBroadcast:{ *:[v2i64] } (X86vzld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>) - Complexity = 25
                      // Dst: (VPBROADCASTQZ128m:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*448790*/          0, /*End of Scope*/
/*448791*/        /*SwitchType*/ 38, MVT::v4i64,// ->448831
/*448793*/          OPC_Scope, 17, /*->448812*/ // 2 children in Scope
/*448795*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*448797*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*448800*/            OPC_EmitMergeInputChains1_0,
/*448801*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86VBroadcast:{ *:[v4i64] } (X86vzld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>) - Complexity = 25
                      // Dst: (VPBROADCASTQYrm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*448812*/          /*Scope*/ 17, /*->448830*/
/*448813*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*448815*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*448818*/            OPC_EmitMergeInputChains1_0,
/*448819*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86VBroadcast:{ *:[v4i64] } (X86vzld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>) - Complexity = 25
                      // Dst: (VPBROADCASTQZ256m:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*448830*/          0, /*End of Scope*/
/*448831*/        /*SwitchType*/ 17, MVT::v8i64,// ->448850
/*448833*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*448835*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*448838*/          OPC_EmitMergeInputChains1_0,
/*448839*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86VBroadcast:{ *:[v8i64] } (X86vzld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>) - Complexity = 25
                    // Dst: (VPBROADCASTQZm:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*448850*/        0, // EndSwitchType
/*448851*/      /*SwitchOpcode*/ 95|128,1/*223*/, TARGET_VAL(ISD::LOAD),// ->449078
/*448855*/        OPC_RecordMemRef,
/*448856*/        OPC_RecordNode, // #0 = 'ld' chained node
/*448857*/        OPC_RecordChild1, // #1 = $src
/*448858*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*448860*/        OPC_SwitchType /*2 cases */, 106, MVT::i32,// ->448969
/*448863*/          OPC_CheckPredicate, 8, // Predicate_loadi32
/*448865*/          OPC_MoveParent,
/*448866*/          OPC_Scope, 40, /*->448908*/ // 2 children in Scope
/*448868*/            OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->448888
/*448871*/              OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*448873*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*448876*/              OPC_EmitMergeInputChains1_0,
/*448877*/              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)
/*448888*/            /*SwitchType*/ 17, MVT::v8i32,// ->448907
/*448890*/              OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*448892*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*448895*/              OPC_EmitMergeInputChains1_0,
/*448896*/              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)
/*448907*/            0, // EndSwitchType
/*448908*/          /*Scope*/ 59, /*->448968*/
/*448909*/            OPC_SwitchType /*3 cases */, 17, MVT::v16i32,// ->448929
/*448912*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*448914*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*448917*/              OPC_EmitMergeInputChains1_0,
/*448918*/              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)
/*448929*/            /*SwitchType*/ 17, MVT::v4i32,// ->448948
/*448931*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*448933*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*448936*/              OPC_EmitMergeInputChains1_0,
/*448937*/              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)
/*448948*/            /*SwitchType*/ 17, MVT::v8i32,// ->448967
/*448950*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*448952*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*448955*/              OPC_EmitMergeInputChains1_0,
/*448956*/              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)
/*448967*/            0, // EndSwitchType
/*448968*/          0, /*End of Scope*/
/*448969*/        /*SwitchType*/ 106, MVT::i16,// ->449077
/*448971*/          OPC_CheckPredicate, 7, // Predicate_loadi16
/*448973*/          OPC_MoveParent,
/*448974*/          OPC_Scope, 40, /*->449016*/ // 2 children in Scope
/*448976*/            OPC_SwitchType /*2 cases */, 17, MVT::v8i16,// ->448996
/*448979*/              OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*448981*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*448984*/              OPC_EmitMergeInputChains1_0,
/*448985*/              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)
/*448996*/            /*SwitchType*/ 17, MVT::v16i16,// ->449015
/*448998*/              OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*449000*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*449003*/              OPC_EmitMergeInputChains1_0,
/*449004*/              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)
/*449015*/            0, // EndSwitchType
/*449016*/          /*Scope*/ 59, /*->449076*/
/*449017*/            OPC_SwitchType /*3 cases */, 17, MVT::v8i16,// ->449037
/*449020*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*449022*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*449025*/              OPC_EmitMergeInputChains1_0,
/*449026*/              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)
/*449037*/            /*SwitchType*/ 17, MVT::v16i16,// ->449056
/*449039*/              OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*449041*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*449044*/              OPC_EmitMergeInputChains1_0,
/*449045*/              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)
/*449056*/            /*SwitchType*/ 17, MVT::v32i16,// ->449075
/*449058*/              OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*449060*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*449063*/              OPC_EmitMergeInputChains1_0,
/*449064*/              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)
/*449075*/            0, // EndSwitchType
/*449076*/          0, /*End of Scope*/
/*449077*/        0, // EndSwitchType
/*449078*/      0, // EndSwitchOpcode
/*449079*/    /*Scope*/ 11|128,8/*1035*/, /*->450116*/
/*449081*/      OPC_RecordChild0, // #0 = $src
/*449082*/      OPC_Scope, 63, /*->449147*/ // 12 children in Scope
/*449084*/        OPC_CheckChild0Type, MVT::v16i8,
/*449086*/        OPC_SwitchType /*3 cases */, 22, MVT::v16i8,// ->449111
/*449089*/          OPC_Scope, 9, /*->449100*/ // 2 children in Scope
/*449091*/            OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*449093*/            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)
/*449100*/          /*Scope*/ 9, /*->449110*/
/*449101*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*449103*/            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)
/*449110*/          0, /*End of Scope*/
/*449111*/        /*SwitchType*/ 22, MVT::v32i8,// ->449135
/*449113*/          OPC_Scope, 9, /*->449124*/ // 2 children in Scope
/*449115*/            OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*449117*/            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)
/*449124*/          /*Scope*/ 9, /*->449134*/
/*449125*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*449127*/            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)
/*449134*/          0, /*End of Scope*/
/*449135*/        /*SwitchType*/ 9, MVT::v64i8,// ->449146
/*449137*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*449139*/          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)
/*449146*/        0, // EndSwitchType
/*449147*/      /*Scope*/ 63, /*->449211*/
/*449148*/        OPC_CheckChild0Type, MVT::v8i16,
/*449150*/        OPC_SwitchType /*3 cases */, 22, MVT::v8i16,// ->449175
/*449153*/          OPC_Scope, 9, /*->449164*/ // 2 children in Scope
/*449155*/            OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*449157*/            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)
/*449164*/          /*Scope*/ 9, /*->449174*/
/*449165*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*449167*/            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)
/*449174*/          0, /*End of Scope*/
/*449175*/        /*SwitchType*/ 22, MVT::v16i16,// ->449199
/*449177*/          OPC_Scope, 9, /*->449188*/ // 2 children in Scope
/*449179*/            OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*449181*/            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)
/*449188*/          /*Scope*/ 9, /*->449198*/
/*449189*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*449191*/            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)
/*449198*/          0, /*End of Scope*/
/*449199*/        /*SwitchType*/ 9, MVT::v32i16,// ->449210
/*449201*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*449203*/          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)
/*449210*/        0, // EndSwitchType
/*449211*/      /*Scope*/ 63, /*->449275*/
/*449212*/        OPC_CheckChild0Type, MVT::v4i32,
/*449214*/        OPC_SwitchType /*3 cases */, 22, MVT::v4i32,// ->449239
/*449217*/          OPC_Scope, 9, /*->449228*/ // 2 children in Scope
/*449219*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*449221*/            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)
/*449228*/          /*Scope*/ 9, /*->449238*/
/*449229*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*449231*/            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)
/*449238*/          0, /*End of Scope*/
/*449239*/        /*SwitchType*/ 22, MVT::v8i32,// ->449263
/*449241*/          OPC_Scope, 9, /*->449252*/ // 2 children in Scope
/*449243*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*449245*/            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)
/*449252*/          /*Scope*/ 9, /*->449262*/
/*449253*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*449255*/            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)
/*449262*/          0, /*End of Scope*/
/*449263*/        /*SwitchType*/ 9, MVT::v16i32,// ->449274
/*449265*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*449267*/          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)
/*449274*/        0, // EndSwitchType
/*449275*/      /*Scope*/ 63, /*->449339*/
/*449276*/        OPC_CheckChild0Type, MVT::v2i64,
/*449278*/        OPC_SwitchType /*3 cases */, 22, MVT::v2i64,// ->449303
/*449281*/          OPC_Scope, 9, /*->449292*/ // 2 children in Scope
/*449283*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*449285*/            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)
/*449292*/          /*Scope*/ 9, /*->449302*/
/*449293*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*449295*/            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)
/*449302*/          0, /*End of Scope*/
/*449303*/        /*SwitchType*/ 22, MVT::v4i64,// ->449327
/*449305*/          OPC_Scope, 9, /*->449316*/ // 2 children in Scope
/*449307*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*449309*/            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)
/*449316*/          /*Scope*/ 9, /*->449326*/
/*449317*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*449319*/            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)
/*449326*/          0, /*End of Scope*/
/*449327*/        /*SwitchType*/ 9, MVT::v8i64,// ->449338
/*449329*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*449331*/          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)
/*449338*/        0, // EndSwitchType
/*449339*/      /*Scope*/ 39|128,1/*167*/, /*->449508*/
/*449341*/        OPC_CheckChild0Type, MVT::i32,
/*449343*/        OPC_SwitchType /*3 cases */, 9, MVT::v16i32,// ->449355
/*449346*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*449348*/          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)
/*449355*/        /*SwitchType*/ 98, MVT::v8i32,// ->449455
/*449357*/          OPC_Scope, 9, /*->449368*/ // 3 children in Scope
/*449359*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*449361*/            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)
/*449368*/          /*Scope*/ 16, /*->449385*/
/*449369*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*449371*/            OPC_EmitNode1, TARGET_VAL(X86::VMOVDI2PDIrr), 0,
                          MVT::f128, 1/*#Ops*/, 0,  // Results = #1
/*449378*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTDYrr), 0,
                          MVT::v8i32, 1/*#Ops*/, 1, 
                      // Src: (X86VBroadcast:{ *:[v8i32] } GR32:{ *:[i32] }:$src) - Complexity = 3
                      // Dst: (VPBROADCASTDYrr:{ *:[v8i32] } (VMOVDI2PDIrr:{ *:[f128] } GR32:{ *:[i32] }:$src))
/*449385*/          /*Scope*/ 68, /*->449454*/
/*449386*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*449388*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i32, 0/*#Ops*/,  // Results = #1
/*449394*/            OPC_EmitNode1, TARGET_VAL(X86::VMOVDI2PDIrr), 0,
                          MVT::f128, 1/*#Ops*/, 0,  // Results = #2
/*449401*/            OPC_EmitInteger, MVT::i8, 0, 
/*449404*/            OPC_EmitNode1, TARGET_VAL(X86::VPSHUFDri), 0,
                          MVT::v4i32, 2/*#Ops*/, 2, 3,  // Results = #4
/*449412*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*449415*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i32, 3/*#Ops*/, 1, 4, 5,  // Results = #6
/*449424*/            OPC_EmitNode1, TARGET_VAL(X86::VMOVDI2PDIrr), 0,
                          MVT::f128, 1/*#Ops*/, 0,  // Results = #7
/*449431*/            OPC_EmitInteger, MVT::i8, 0, 
/*449434*/            OPC_EmitNode1, TARGET_VAL(X86::VPSHUFDri), 0,
                          MVT::v4i32, 2/*#Ops*/, 7, 8,  // Results = #9
/*449442*/            OPC_EmitInteger, MVT::i8, 1, 
/*449445*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF128rr), 0,
                          MVT::v8i32, 3/*#Ops*/, 6, 9, 10, 
                      // Src: (X86VBroadcast:{ *:[v8i32] } GR32:{ *:[i32] }:$src) - Complexity = 3
                      // Dst: (VINSERTF128rr:{ *:[v8i32] } (INSERT_SUBREG:{ *:[v8i32] } (IMPLICIT_DEF:{ *:[v8i32] }), (VPSHUFDri:{ *:[v4i32] } (VMOVDI2PDIrr:{ *:[f128] } GR32:{ *:[i32] }:$src), 0:{ *:[i8] }), sub_xmm:{ *:[i32] }), (VPSHUFDri:{ *:[v4i32] } (VMOVDI2PDIrr:{ *:[f128] } GR32:{ *:[i32] }:$src), 0:{ *:[i8] }), 1:{ *:[i8] })
/*449454*/          0, /*End of Scope*/
/*449455*/        /*SwitchType*/ 50, MVT::v4i32,// ->449507
/*449457*/          OPC_Scope, 9, /*->449468*/ // 3 children in Scope
/*449459*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*449461*/            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)
/*449468*/          /*Scope*/ 16, /*->449485*/
/*449469*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*449471*/            OPC_EmitNode1, TARGET_VAL(X86::VMOVDI2PDIrr), 0,
                          MVT::f128, 1/*#Ops*/, 0,  // Results = #1
/*449478*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTDrr), 0,
                          MVT::v4i32, 1/*#Ops*/, 1, 
                      // Src: (X86VBroadcast:{ *:[v4i32] } GR32:{ *:[i32] }:$src) - Complexity = 3
                      // Dst: (VPBROADCASTDrr:{ *:[v4i32] } (VMOVDI2PDIrr:{ *:[f128] } GR32:{ *:[i32] }:$src))
/*449485*/          /*Scope*/ 20, /*->449506*/
/*449486*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*449488*/            OPC_EmitNode1, TARGET_VAL(X86::VMOVDI2PDIrr), 0,
                          MVT::f128, 1/*#Ops*/, 0,  // Results = #1
/*449495*/            OPC_EmitInteger, MVT::i8, 0, 
/*449498*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFDri), 0,
                          MVT::v4i32, 2/*#Ops*/, 1, 2, 
                      // Src: (X86VBroadcast:{ *:[v4i32] } GR32:{ *:[i32] }:$src) - Complexity = 3
                      // Dst: (VPSHUFDri:{ *:[v4i32] } (VMOVDI2PDIrr:{ *:[f128] } GR32:{ *:[i32] }:$src), 0:{ *:[i8] })
/*449506*/          0, /*End of Scope*/
/*449507*/        0, // EndSwitchType
/*449508*/      /*Scope*/ 39|128,1/*167*/, /*->449677*/
/*449510*/        OPC_CheckChild0Type, MVT::i64,
/*449512*/        OPC_SwitchType /*3 cases */, 9, MVT::v8i64,// ->449524
/*449515*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*449517*/          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)
/*449524*/        /*SwitchType*/ 98, MVT::v4i64,// ->449624
/*449526*/          OPC_Scope, 9, /*->449537*/ // 3 children in Scope
/*449528*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*449530*/            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)
/*449537*/          /*Scope*/ 16, /*->449554*/
/*449538*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*449540*/            OPC_EmitNode1, TARGET_VAL(X86::VMOV64toPQIrr), 0,
                          MVT::f128, 1/*#Ops*/, 0,  // Results = #1
/*449547*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQYrr), 0,
                          MVT::v4i64, 1/*#Ops*/, 1, 
                      // Src: (X86VBroadcast:{ *:[v4i64] } GR64:{ *:[i64] }:$src) - Complexity = 3
                      // Dst: (VPBROADCASTQYrr:{ *:[v4i64] } (VMOV64toPQIrr:{ *:[f128] } GR64:{ *:[i64] }:$src))
/*449554*/          /*Scope*/ 68, /*->449623*/
/*449555*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*449557*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4i64, 0/*#Ops*/,  // Results = #1
/*449563*/            OPC_EmitNode1, TARGET_VAL(X86::VMOV64toPQIrr), 0,
                          MVT::f128, 1/*#Ops*/, 0,  // Results = #2
/*449570*/            OPC_EmitInteger, MVT::i8, 68, 
/*449573*/            OPC_EmitNode1, TARGET_VAL(X86::VPSHUFDri), 0,
                          MVT::v4i32, 2/*#Ops*/, 2, 3,  // Results = #4
/*449581*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*449584*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v4i64, 3/*#Ops*/, 1, 4, 5,  // Results = #6
/*449593*/            OPC_EmitNode1, TARGET_VAL(X86::VMOV64toPQIrr), 0,
                          MVT::f128, 1/*#Ops*/, 0,  // Results = #7
/*449600*/            OPC_EmitInteger, MVT::i8, 68, 
/*449603*/            OPC_EmitNode1, TARGET_VAL(X86::VPSHUFDri), 0,
                          MVT::v4i32, 2/*#Ops*/, 7, 8,  // Results = #9
/*449611*/            OPC_EmitInteger, MVT::i8, 1, 
/*449614*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTF128rr), 0,
                          MVT::v4i64, 3/*#Ops*/, 6, 9, 10, 
                      // Src: (X86VBroadcast:{ *:[v4i64] } GR64:{ *:[i64] }:$src) - Complexity = 3
                      // Dst: (VINSERTF128rr:{ *:[v4i64] } (INSERT_SUBREG:{ *:[v4i64] } (IMPLICIT_DEF:{ *:[v4i64] }), (VPSHUFDri:{ *:[v4i32] } (VMOV64toPQIrr:{ *:[f128] } GR64:{ *:[i64] }:$src), 68:{ *:[i8] }), sub_xmm:{ *:[i32] }), (VPSHUFDri:{ *:[v4i32] } (VMOV64toPQIrr:{ *:[f128] } GR64:{ *:[i64] }:$src), 68:{ *:[i8] }), 1:{ *:[i8] })
/*449623*/          0, /*End of Scope*/
/*449624*/        /*SwitchType*/ 50, MVT::v2i64,// ->449676
/*449626*/          OPC_Scope, 9, /*->449637*/ // 3 children in Scope
/*449628*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*449630*/            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)
/*449637*/          /*Scope*/ 16, /*->449654*/
/*449638*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*449640*/            OPC_EmitNode1, TARGET_VAL(X86::VMOV64toPQIrr), 0,
                          MVT::f128, 1/*#Ops*/, 0,  // Results = #1
/*449647*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQrr), 0,
                          MVT::v2i64, 1/*#Ops*/, 1, 
                      // Src: (X86VBroadcast:{ *:[v2i64] } GR64:{ *:[i64] }:$src) - Complexity = 3
                      // Dst: (VPBROADCASTQrr:{ *:[v2i64] } (VMOV64toPQIrr:{ *:[f128] } GR64:{ *:[i64] }:$src))
/*449654*/          /*Scope*/ 20, /*->449675*/
/*449655*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*449657*/            OPC_EmitNode1, TARGET_VAL(X86::VMOV64toPQIrr), 0,
                          MVT::f128, 1/*#Ops*/, 0,  // Results = #1
/*449664*/            OPC_EmitInteger, MVT::i8, 68, 
/*449667*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHUFDri), 0,
                          MVT::v2i64, 2/*#Ops*/, 1, 2, 
                      // Src: (X86VBroadcast:{ *:[v2i64] } i64:{ *:[i64] }:$src) - Complexity = 3
                      // Dst: (VPSHUFDri:{ *:[v2i64] } (VMOV64toPQIrr:{ *:[f128] } GR64:{ *:[i64] }:$src), 68:{ *:[i8] })
/*449675*/          0, /*End of Scope*/
/*449676*/        0, // EndSwitchType
/*449677*/      /*Scope*/ 24, /*->449702*/
/*449678*/        OPC_CheckChild0Type, MVT::v32i8,
/*449680*/        OPC_CheckType, MVT::v32i8,
/*449682*/        OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*449684*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*449687*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v16i8, 2/*#Ops*/, 0, 1,  // Results = #2
/*449695*/        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] }))
/*449702*/      /*Scope*/ 24, /*->449727*/
/*449703*/        OPC_CheckChild0Type, MVT::v16i16,
/*449705*/        OPC_CheckType, MVT::v16i16,
/*449707*/        OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*449709*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*449712*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 1,  // Results = #2
/*449720*/        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] }))
/*449727*/      /*Scope*/ 24, /*->449752*/
/*449728*/        OPC_CheckChild0Type, MVT::v8i32,
/*449730*/        OPC_CheckType, MVT::v8i32,
/*449732*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*449734*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*449737*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v4i32, 2/*#Ops*/, 0, 1,  // Results = #2
/*449745*/        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] }))
/*449752*/      /*Scope*/ 24, /*->449777*/
/*449753*/        OPC_CheckChild0Type, MVT::v4i64,
/*449755*/        OPC_CheckType, MVT::v4i64,
/*449757*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*449759*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*449762*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                      MVT::v2i64, 2/*#Ops*/, 0, 1,  // Results = #2
/*449770*/        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] }))
/*449777*/      /*Scope*/ 39|128,1/*167*/, /*->449946*/
/*449779*/        OPC_CheckChild0Type, MVT::i8,
/*449781*/        OPC_SwitchType /*3 cases */, 27, MVT::v64i8,// ->449811
/*449784*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*449786*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i32, 0/*#Ops*/,  // Results = #1
/*449792*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*449795*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*449804*/          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] }))
/*449811*/        /*SwitchType*/ 65, MVT::v32i8,// ->449878
/*449813*/          OPC_Scope, 27, /*->449842*/ // 2 children in Scope
/*449815*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*449817*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i32, 0/*#Ops*/,  // Results = #1
/*449823*/            OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*449826*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*449835*/            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] }))
/*449842*/          /*Scope*/ 34, /*->449877*/
/*449843*/            OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*449845*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i32, 0/*#Ops*/,  // Results = #1
/*449851*/            OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*449854*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*449863*/            OPC_EmitNode1, TARGET_VAL(X86::VMOVDI2PDIrr), 0,
                          MVT::f128, 1/*#Ops*/, 3,  // Results = #4
/*449870*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTBYrr), 0,
                          MVT::v32i8, 1/*#Ops*/, 4, 
                      // Src: (X86VBroadcast:{ *:[v32i8] } GR8:{ *:[i8] }:$src) - Complexity = 3
                      // Dst: (VPBROADCASTBYrr:{ *:[v32i8] } (VMOVDI2PDIrr:{ *:[f128] } (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$src, sub_8bit:{ *:[i32] })))
/*449877*/          0, /*End of Scope*/
/*449878*/        /*SwitchType*/ 65, MVT::v16i8,// ->449945
/*449880*/          OPC_Scope, 27, /*->449909*/ // 2 children in Scope
/*449882*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*449884*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i32, 0/*#Ops*/,  // Results = #1
/*449890*/            OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*449893*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*449902*/            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] }))
/*449909*/          /*Scope*/ 34, /*->449944*/
/*449910*/            OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*449912*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i32, 0/*#Ops*/,  // Results = #1
/*449918*/            OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*449921*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*449930*/            OPC_EmitNode1, TARGET_VAL(X86::VMOVDI2PDIrr), 0,
                          MVT::f128, 1/*#Ops*/, 3,  // Results = #4
/*449937*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTBrr), 0,
                          MVT::v16i8, 1/*#Ops*/, 4, 
                      // Src: (X86VBroadcast:{ *:[v16i8] } GR8:{ *:[i8] }:$src) - Complexity = 3
                      // Dst: (VPBROADCASTBrr:{ *:[v16i8] } (VMOVDI2PDIrr:{ *:[f128] } (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$src, sub_8bit:{ *:[i32] })))
/*449944*/          0, /*End of Scope*/
/*449945*/        0, // EndSwitchType
/*449946*/      /*Scope*/ 39|128,1/*167*/, /*->450115*/
/*449948*/        OPC_CheckChild0Type, MVT::i16,
/*449950*/        OPC_SwitchType /*3 cases */, 27, MVT::v32i16,// ->449980
/*449953*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*449955*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i32, 0/*#Ops*/,  // Results = #1
/*449961*/          OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*449964*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*449973*/          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] }))
/*449980*/        /*SwitchType*/ 65, MVT::v16i16,// ->450047
/*449982*/          OPC_Scope, 27, /*->450011*/ // 2 children in Scope
/*449984*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*449986*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i32, 0/*#Ops*/,  // Results = #1
/*449992*/            OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*449995*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*450004*/            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] }))
/*450011*/          /*Scope*/ 34, /*->450046*/
/*450012*/            OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*450014*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i32, 0/*#Ops*/,  // Results = #1
/*450020*/            OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*450023*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*450032*/            OPC_EmitNode1, TARGET_VAL(X86::VMOVDI2PDIrr), 0,
                          MVT::f128, 1/*#Ops*/, 3,  // Results = #4
/*450039*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWYrr), 0,
                          MVT::v16i16, 1/*#Ops*/, 4, 
                      // Src: (X86VBroadcast:{ *:[v16i16] } GR16:{ *:[i16] }:$src) - Complexity = 3
                      // Dst: (VPBROADCASTWYrr:{ *:[v16i16] } (VMOVDI2PDIrr:{ *:[f128] } (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR16:{ *:[i16] }:$src, sub_16bit:{ *:[i32] })))
/*450046*/          0, /*End of Scope*/
/*450047*/        /*SwitchType*/ 65, MVT::v8i16,// ->450114
/*450049*/          OPC_Scope, 27, /*->450078*/ // 2 children in Scope
/*450051*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*450053*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i32, 0/*#Ops*/,  // Results = #1
/*450059*/            OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*450062*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*450071*/            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] }))
/*450078*/          /*Scope*/ 34, /*->450113*/
/*450079*/            OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*450081*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::i32, 0/*#Ops*/,  // Results = #1
/*450087*/            OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*450090*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*450099*/            OPC_EmitNode1, TARGET_VAL(X86::VMOVDI2PDIrr), 0,
                          MVT::f128, 1/*#Ops*/, 3,  // Results = #4
/*450106*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWrr), 0,
                          MVT::v8i16, 1/*#Ops*/, 4, 
                      // Src: (X86VBroadcast:{ *:[v8i16] } GR16:{ *:[i16] }:$src) - Complexity = 3
                      // Dst: (VPBROADCASTWrr:{ *:[v8i16] } (VMOVDI2PDIrr:{ *:[f128] } (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR16:{ *:[i16] }:$src, sub_16bit:{ *:[i32] })))
/*450113*/          0, /*End of Scope*/
/*450114*/        0, // EndSwitchType
/*450115*/      0, /*End of Scope*/
/*450116*/    /*Scope*/ 109, /*->450226*/
/*450117*/      OPC_MoveChild0,
/*450118*/      OPC_SwitchOpcode /*2 cases */, 52, TARGET_VAL(ISD::LOAD),// ->450174
/*450122*/        OPC_RecordMemRef,
/*450123*/        OPC_RecordNode, // #0 = 'ld' chained node
/*450124*/        OPC_RecordChild1, // #1 = $src
/*450125*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*450127*/        OPC_CheckPredicate, 9, // Predicate_load
/*450129*/        OPC_CheckPredicate, 58, // Predicate_simple_load
/*450131*/        OPC_CheckType, MVT::v2f64,
/*450133*/        OPC_MoveParent,
/*450134*/        OPC_CheckType, MVT::v2f64,
/*450136*/        OPC_Scope, 17, /*->450155*/ // 2 children in Scope
/*450138*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*450140*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*450143*/          OPC_EmitMergeInputChains1_0,
/*450144*/          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_simple_load>>) - Complexity = 25
                    // Dst: (VMOVDDUPrm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*450155*/        /*Scope*/ 17, /*->450173*/
/*450156*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*450158*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*450161*/          OPC_EmitMergeInputChains1_0,
/*450162*/          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_simple_load>>) - Complexity = 25
                    // Dst: (VMOVDDUPZ128rm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*450173*/        0, /*End of Scope*/
/*450174*/      /*SwitchOpcode*/ 48, TARGET_VAL(X86ISD::VZEXT_LOAD),// ->450225
/*450177*/        OPC_RecordMemRef,
/*450178*/        OPC_RecordNode, // #0 = 'X86vzld' chained node
/*450179*/        OPC_RecordChild1, // #1 = $src
/*450180*/        OPC_CheckPredicate, 49, // Predicate_X86vzload64
/*450182*/        OPC_CheckType, MVT::v2f64,
/*450184*/        OPC_MoveParent,
/*450185*/        OPC_CheckType, MVT::v2f64,
/*450187*/        OPC_Scope, 17, /*->450206*/ // 2 children in Scope
/*450189*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*450191*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*450194*/          OPC_EmitMergeInputChains1_0,
/*450195*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86VBroadcast:{ *:[v2f64] } (X86vzld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>) - Complexity = 25
                    // Dst: (VMOVDDUPrm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*450206*/        /*Scope*/ 17, /*->450224*/
/*450207*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*450209*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*450212*/          OPC_EmitMergeInputChains1_0,
/*450213*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDDUPZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86VBroadcast:{ *:[v2f64] } (X86vzld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>) - Complexity = 25
                    // Dst: (VMOVDDUPZ128rm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*450224*/        0, /*End of Scope*/
/*450225*/      0, // EndSwitchOpcode
/*450226*/    /*Scope*/ 30|128,4/*542*/, /*->450770*/
/*450228*/      OPC_RecordChild0, // #0 = $src
/*450229*/      OPC_Scope, 63, /*->450294*/ // 4 children in Scope
/*450231*/        OPC_CheckChild0Type, MVT::v4f32,
/*450233*/        OPC_SwitchType /*3 cases */, 22, MVT::v4f32,// ->450258
/*450236*/          OPC_Scope, 9, /*->450247*/ // 2 children in Scope
/*450238*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*450240*/            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)
/*450247*/          /*Scope*/ 9, /*->450257*/
/*450248*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*450250*/            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)
/*450257*/          0, /*End of Scope*/
/*450258*/        /*SwitchType*/ 22, MVT::v8f32,// ->450282
/*450260*/          OPC_Scope, 9, /*->450271*/ // 2 children in Scope
/*450262*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*450264*/            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)
/*450271*/          /*Scope*/ 9, /*->450281*/
/*450272*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*450274*/            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)
/*450281*/          0, /*End of Scope*/
/*450282*/        /*SwitchType*/ 9, MVT::v16f32,// ->450293
/*450284*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*450286*/          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)
/*450293*/        0, // EndSwitchType
/*450294*/      /*Scope*/ 63, /*->450358*/
/*450295*/        OPC_CheckChild0Type, MVT::v2f64,
/*450297*/        OPC_SwitchType /*3 cases */, 22, MVT::v4f64,// ->450322
/*450300*/          OPC_Scope, 9, /*->450311*/ // 2 children in Scope
/*450302*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*450304*/            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)
/*450311*/          /*Scope*/ 9, /*->450321*/
/*450312*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*450314*/            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)
/*450321*/          0, /*End of Scope*/
/*450322*/        /*SwitchType*/ 22, MVT::v2f64,// ->450346
/*450324*/          OPC_Scope, 9, /*->450335*/ // 2 children in Scope
/*450326*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*450328*/            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)
/*450335*/          /*Scope*/ 9, /*->450345*/
/*450336*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*450338*/            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)
/*450345*/          0, /*End of Scope*/
/*450346*/        /*SwitchType*/ 9, MVT::v8f64,// ->450357
/*450348*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*450350*/          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)
/*450357*/        0, // EndSwitchType
/*450358*/      /*Scope*/ 92|128,1/*220*/, /*->450580*/
/*450360*/        OPC_CheckChild0Type, MVT::f32,
/*450362*/        OPC_SwitchType /*3 cases */, 69, MVT::v4f32,// ->450434
/*450365*/          OPC_Scope, 20, /*->450387*/ // 3 children in Scope
/*450367*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*450369*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*450372*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 0, 1,  // Results = #2
/*450380*/            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] }))
/*450387*/          /*Scope*/ 24, /*->450412*/
/*450388*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*450390*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*450393*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 0, 1,  // Results = #2
/*450401*/            OPC_EmitInteger, MVT::i8, 0, 
/*450404*/            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] })
/*450412*/          /*Scope*/ 20, /*->450433*/
/*450413*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*450415*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*450418*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 0, 1,  // Results = #2
/*450426*/            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] }))
/*450433*/          0, /*End of Scope*/
/*450434*/        /*SwitchType*/ 121, MVT::v8f32,// ->450557
/*450436*/          OPC_Scope, 20, /*->450458*/ // 3 children in Scope
/*450438*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*450440*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*450443*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 0, 1,  // Results = #2
/*450451*/            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] }))
/*450458*/          /*Scope*/ 20, /*->450479*/
/*450459*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*450461*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*450464*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 0, 1,  // Results = #2
/*450472*/            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] }))
/*450479*/          /*Scope*/ 76, /*->450556*/
/*450480*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*450482*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8f32, 0/*#Ops*/,  // Results = #1
/*450488*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*450491*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 0, 2,  // Results = #3
/*450499*/            OPC_EmitInteger, MVT::i8, 0, 
/*450502*/            OPC_EmitNode1, TARGET_VAL(X86::VPERMILPSri), 0,
                          MVT::v4f32, 2/*#Ops*/, 3, 4,  // Results = #5
/*450510*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*450513*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8f32, 3/*#Ops*/, 1, 5, 6,  // Results = #7
/*450522*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*450525*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 0, 8,  // Results = #9
/*450533*/            OPC_EmitInteger, MVT::i8, 0, 
/*450536*/            OPC_EmitNode1, TARGET_VAL(X86::VPERMILPSri), 0,
                          MVT::v4f32, 2/*#Ops*/, 9, 10,  // Results = #11
/*450544*/            OPC_EmitInteger, MVT::i8, 1, 
/*450547*/            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] })
/*450556*/          0, /*End of Scope*/
/*450557*/        /*SwitchType*/ 20, MVT::v16f32,// ->450579
/*450559*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*450561*/          OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*450564*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 1,  // Results = #2
/*450572*/          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] }))
/*450579*/        0, // EndSwitchType
/*450580*/      /*Scope*/ 59|128,1/*187*/, /*->450769*/
/*450582*/        OPC_CheckChild0Type, MVT::f64,
/*450584*/        OPC_SwitchType /*3 cases */, 113, MVT::v4f64,// ->450700
/*450587*/          OPC_Scope, 20, /*->450609*/ // 3 children in Scope
/*450589*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*450591*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*450594*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 1,  // Results = #2
/*450602*/            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] }))
/*450609*/          /*Scope*/ 20, /*->450630*/
/*450610*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*450612*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*450615*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 1,  // Results = #2
/*450623*/            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] }))
/*450630*/          /*Scope*/ 68, /*->450699*/
/*450631*/            OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*450633*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v4f64, 0/*#Ops*/,  // Results = #1
/*450639*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*450642*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 2,  // Results = #3
/*450650*/            OPC_EmitNode1, TARGET_VAL(X86::VMOVDDUPrr), 0,
                          MVT::v2f64, 1/*#Ops*/, 3,  // Results = #4
/*450657*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*450660*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v4f64, 3/*#Ops*/, 1, 4, 5,  // Results = #6
/*450669*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*450672*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 7,  // Results = #8
/*450680*/            OPC_EmitNode1, TARGET_VAL(X86::VMOVDDUPrr), 0,
                          MVT::v2f64, 1/*#Ops*/, 8,  // Results = #9
/*450687*/            OPC_EmitInteger, MVT::i8, 1, 
/*450690*/            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] })
/*450699*/          0, /*End of Scope*/
/*450700*/        /*SwitchType*/ 44, MVT::v2f64,// ->450746
/*450702*/          OPC_Scope, 20, /*->450724*/ // 2 children in Scope
/*450704*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*450706*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*450709*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 1,  // Results = #2
/*450717*/            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] }))
/*450724*/          /*Scope*/ 20, /*->450745*/
/*450725*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*450727*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*450730*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 0, 1,  // Results = #2
/*450738*/            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] }))
/*450745*/          0, /*End of Scope*/
/*450746*/        /*SwitchType*/ 20, MVT::v8f64,// ->450768
/*450748*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*450750*/          OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*450753*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 1,  // Results = #2
/*450761*/          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] }))
/*450768*/        0, // EndSwitchType
/*450769*/      0, /*End of Scope*/
/*450770*/    0, /*End of Scope*/
/*450771*/  /*SwitchOpcode*/ 4|128,3/*388*/, TARGET_VAL(X86ISD::VPERMI),// ->451163
/*450775*/    OPC_Scope, 15|128,1/*143*/, /*->450921*/ // 4 children in Scope
/*450778*/      OPC_MoveChild0,
/*450779*/      OPC_SwitchOpcode /*2 cases */, 79, TARGET_VAL(ISD::LOAD),// ->450862
/*450783*/        OPC_RecordMemRef,
/*450784*/        OPC_RecordNode, // #0 = 'ld' chained node
/*450785*/        OPC_CheckFoldableChainNode,
/*450786*/        OPC_RecordChild1, // #1 = $src1
/*450787*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*450789*/        OPC_CheckPredicate, 9, // Predicate_load
/*450791*/        OPC_MoveParent,
/*450792*/        OPC_RecordChild1, // #2 = $src2
/*450793*/        OPC_MoveChild1,
/*450794*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*450797*/        OPC_MoveParent,
/*450798*/        OPC_SwitchType /*2 cases */, 40, MVT::v4i64,// ->450841
/*450801*/          OPC_Scope, 18, /*->450821*/ // 2 children in Scope
/*450803*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*450805*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*450808*/            OPC_EmitMergeInputChains1_0,
/*450809*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMQYmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86VPermi:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPERMQYmi:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*450821*/          /*Scope*/ 18, /*->450840*/
/*450822*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*450824*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*450827*/            OPC_EmitMergeInputChains1_0,
/*450828*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMQZ256mi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86VPermi:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPERMQZ256mi:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*450840*/          0, /*End of Scope*/
/*450841*/        /*SwitchType*/ 18, MVT::v8i64,// ->450861
/*450843*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*450845*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*450848*/          OPC_EmitMergeInputChains1_0,
/*450849*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMQZmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86VPermi:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPERMQZmi:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*450861*/        0, // EndSwitchType
/*450862*/      /*SwitchOpcode*/ 55, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->450920
/*450865*/        OPC_RecordMemRef,
/*450866*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*450867*/        OPC_CheckFoldableChainNode,
/*450868*/        OPC_RecordChild1, // #1 = $src1
/*450869*/        OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*450871*/        OPC_MoveParent,
/*450872*/        OPC_RecordChild1, // #2 = $src2
/*450873*/        OPC_MoveChild1,
/*450874*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*450877*/        OPC_MoveParent,
/*450878*/        OPC_SwitchType /*2 cases */, 18, MVT::v8i64,// ->450899
/*450881*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*450883*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*450886*/          OPC_EmitMergeInputChains1_0,
/*450887*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMQZmbi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86VPermi:{ *:[v8i64] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPERMQZmbi:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*450899*/        /*SwitchType*/ 18, MVT::v4i64,// ->450919
/*450901*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*450903*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*450906*/          OPC_EmitMergeInputChains1_0,
/*450907*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMQZ256mbi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86VPermi:{ *:[v4i64] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPERMQZ256mbi:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*450919*/        0, // EndSwitchType
/*450920*/      0, // EndSwitchOpcode
/*450921*/    /*Scope*/ 47, /*->450969*/
/*450922*/      OPC_RecordChild0, // #0 = $src1
/*450923*/      OPC_RecordChild1, // #1 = $src2
/*450924*/      OPC_MoveChild1,
/*450925*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*450928*/      OPC_MoveParent,
/*450929*/      OPC_SwitchType /*2 cases */, 24, MVT::v4i64,// ->450956
/*450932*/        OPC_Scope, 10, /*->450944*/ // 2 children in Scope
/*450934*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*450936*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMQYri), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86VPermi:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPERMQYri:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, (timm:{ *:[i8] }):$src2)
/*450944*/        /*Scope*/ 10, /*->450955*/
/*450945*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*450947*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMQZ256ri), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86VPermi:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPERMQZ256ri:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (timm:{ *:[i8] }):$src2)
/*450955*/        0, /*End of Scope*/
/*450956*/      /*SwitchType*/ 10, MVT::v8i64,// ->450968
/*450958*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*450960*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMQZri), 0,
                      MVT::v8i64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86VPermi:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                  // Dst: (VPERMQZri:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (timm:{ *:[i8] }):$src2)
/*450968*/      0, // EndSwitchType
/*450969*/    /*Scope*/ 15|128,1/*143*/, /*->451114*/
/*450971*/      OPC_MoveChild0,
/*450972*/      OPC_SwitchOpcode /*2 cases */, 79, TARGET_VAL(ISD::LOAD),// ->451055
/*450976*/        OPC_RecordMemRef,
/*450977*/        OPC_RecordNode, // #0 = 'ld' chained node
/*450978*/        OPC_CheckFoldableChainNode,
/*450979*/        OPC_RecordChild1, // #1 = $src1
/*450980*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*450982*/        OPC_CheckPredicate, 9, // Predicate_load
/*450984*/        OPC_MoveParent,
/*450985*/        OPC_RecordChild1, // #2 = $src2
/*450986*/        OPC_MoveChild1,
/*450987*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*450990*/        OPC_MoveParent,
/*450991*/        OPC_SwitchType /*2 cases */, 40, MVT::v4f64,// ->451034
/*450994*/          OPC_Scope, 18, /*->451014*/ // 2 children in Scope
/*450996*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*450998*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*451001*/            OPC_EmitMergeInputChains1_0,
/*451002*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPDYmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86VPermi:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPERMPDYmi:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*451014*/          /*Scope*/ 18, /*->451033*/
/*451015*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*451017*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*451020*/            OPC_EmitMergeInputChains1_0,
/*451021*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPDZ256mi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86VPermi:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPERMPDZ256mi:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*451033*/          0, /*End of Scope*/
/*451034*/        /*SwitchType*/ 18, MVT::v8f64,// ->451054
/*451036*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*451038*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*451041*/          OPC_EmitMergeInputChains1_0,
/*451042*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPDZmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86VPermi:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPERMPDZmi:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*451054*/        0, // EndSwitchType
/*451055*/      /*SwitchOpcode*/ 55, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->451113
/*451058*/        OPC_RecordMemRef,
/*451059*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*451060*/        OPC_CheckFoldableChainNode,
/*451061*/        OPC_RecordChild1, // #1 = $src1
/*451062*/        OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*451064*/        OPC_MoveParent,
/*451065*/        OPC_RecordChild1, // #2 = $src2
/*451066*/        OPC_MoveChild1,
/*451067*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*451070*/        OPC_MoveParent,
/*451071*/        OPC_SwitchType /*2 cases */, 18, MVT::v8f64,// ->451092
/*451074*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*451076*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*451079*/          OPC_EmitMergeInputChains1_0,
/*451080*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPDZmbi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86VPermi:{ *:[v8f64] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPERMPDZmbi:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*451092*/        /*SwitchType*/ 18, MVT::v4f64,// ->451112
/*451094*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*451096*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*451099*/          OPC_EmitMergeInputChains1_0,
/*451100*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPDZ256mbi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86VPermi:{ *:[v4f64] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPERMPDZ256mbi:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*451112*/        0, // EndSwitchType
/*451113*/      0, // EndSwitchOpcode
/*451114*/    /*Scope*/ 47, /*->451162*/
/*451115*/      OPC_RecordChild0, // #0 = $src1
/*451116*/      OPC_RecordChild1, // #1 = $src2
/*451117*/      OPC_MoveChild1,
/*451118*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*451121*/      OPC_MoveParent,
/*451122*/      OPC_SwitchType /*2 cases */, 24, MVT::v4f64,// ->451149
/*451125*/        OPC_Scope, 10, /*->451137*/ // 2 children in Scope
/*451127*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*451129*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPDYri), 0,
                        MVT::v4f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86VPermi:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPERMPDYri:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, (timm:{ *:[i8] }):$src2)
/*451137*/        /*Scope*/ 10, /*->451148*/
/*451138*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*451140*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPDZ256ri), 0,
                        MVT::v4f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86VPermi:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPERMPDZ256ri:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (timm:{ *:[i8] }):$src2)
/*451148*/        0, /*End of Scope*/
/*451149*/      /*SwitchType*/ 10, MVT::v8f64,// ->451161
/*451151*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*451153*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMPDZri), 0,
                      MVT::v8f64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86VPermi:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                  // Dst: (VPERMPDZri:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i8] }):$src2)
/*451161*/      0, // EndSwitchType
/*451162*/    0, /*End of Scope*/
/*451163*/  /*SwitchOpcode*/ 62|128,2/*318*/, TARGET_VAL(X86ISD::FSETCCM),// ->451485
/*451167*/    OPC_Scope, 89, /*->451258*/ // 3 children in Scope
/*451169*/      OPC_RecordChild0, // #0 = $src1
/*451170*/      OPC_Scope, 42, /*->451214*/ // 2 children in Scope
/*451172*/        OPC_CheckChild0Type, MVT::f32,
/*451174*/        OPC_MoveChild1,
/*451175*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*451178*/        OPC_RecordMemRef,
/*451179*/        OPC_RecordNode, // #1 = 'ld' chained node
/*451180*/        OPC_CheckFoldableChainNode,
/*451181*/        OPC_RecordChild1, // #2 = $src2
/*451182*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*451184*/        OPC_CheckPredicate, 9, // Predicate_load
/*451186*/        OPC_MoveParent,
/*451187*/        OPC_RecordChild2, // #3 = $cc
/*451188*/        OPC_MoveChild2,
/*451189*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*451192*/        OPC_MoveParent,
/*451193*/        OPC_CheckType, MVT::v1i1,
/*451195*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*451197*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*451200*/        OPC_EmitMergeInputChains1_1,
/*451201*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPSSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v1i1, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (X86cmpms:{ *:[v1i1] } FR32X:{ *:[f32] }:$src1, (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$cc) - Complexity = 28
                  // Dst: (VCMPSSZrm:{ *:[v1i1] } FR32X:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/*451214*/      /*Scope*/ 42, /*->451257*/
/*451215*/        OPC_CheckChild0Type, MVT::f64,
/*451217*/        OPC_MoveChild1,
/*451218*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*451221*/        OPC_RecordMemRef,
/*451222*/        OPC_RecordNode, // #1 = 'ld' chained node
/*451223*/        OPC_CheckFoldableChainNode,
/*451224*/        OPC_RecordChild1, // #2 = $src2
/*451225*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*451227*/        OPC_CheckPredicate, 9, // Predicate_load
/*451229*/        OPC_MoveParent,
/*451230*/        OPC_RecordChild2, // #3 = $cc
/*451231*/        OPC_MoveChild2,
/*451232*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*451235*/        OPC_MoveParent,
/*451236*/        OPC_CheckType, MVT::v1i1,
/*451238*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*451240*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*451243*/        OPC_EmitMergeInputChains1_1,
/*451244*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPSDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v1i1, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (X86cmpms:{ *:[v1i1] } FR64X:{ *:[f64] }:$src1, (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$cc) - Complexity = 28
                  // Dst: (VCMPSDZrm:{ *:[v1i1] } FR64X:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/*451257*/      0, /*End of Scope*/
/*451258*/    /*Scope*/ 82, /*->451341*/
/*451259*/      OPC_MoveChild0,
/*451260*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*451263*/      OPC_RecordMemRef,
/*451264*/      OPC_RecordNode, // #0 = 'ld' chained node
/*451265*/      OPC_CheckFoldableChainNode,
/*451266*/      OPC_RecordChild1, // #1 = $src2
/*451267*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*451269*/      OPC_CheckPredicate, 9, // Predicate_load
/*451271*/      OPC_SwitchType /*2 cases */, 32, MVT::f64,// ->451306
/*451274*/        OPC_MoveParent,
/*451275*/        OPC_RecordChild1, // #2 = $src1
/*451276*/        OPC_RecordChild2, // #3 = $cc
/*451277*/        OPC_MoveChild2,
/*451278*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*451281*/        OPC_MoveParent,
/*451282*/        OPC_CheckType, MVT::v1i1,
/*451284*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*451286*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*451289*/        OPC_EmitMergeInputChains1_0,
/*451290*/        OPC_EmitNodeXForm, 7, 3, // X86cmpm_imm_commute
/*451293*/        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, (timm:{ *:[i8] }):$cc) - Complexity = 28
                  // Dst: (VCMPSDZrm:{ *:[v1i1] } FR64X:{ *:[f64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86cmpm_imm_commute:{ *:[i8] } (timm:{ *:[i8] }):$cc))
/*451306*/      /*SwitchType*/ 32, MVT::f32,// ->451340
/*451308*/        OPC_MoveParent,
/*451309*/        OPC_RecordChild1, // #2 = $src1
/*451310*/        OPC_RecordChild2, // #3 = $cc
/*451311*/        OPC_MoveChild2,
/*451312*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*451315*/        OPC_MoveParent,
/*451316*/        OPC_CheckType, MVT::v1i1,
/*451318*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*451320*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*451323*/        OPC_EmitMergeInputChains1_0,
/*451324*/        OPC_EmitNodeXForm, 7, 3, // X86cmpm_imm_commute
/*451327*/        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, (timm:{ *:[i8] }):$cc) - Complexity = 28
                  // Dst: (VCMPSSZrm:{ *:[v1i1] } FR32X:{ *:[f32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86cmpm_imm_commute:{ *:[i8] } (timm:{ *:[i8] }):$cc))
/*451340*/      0, // EndSwitchType
/*451341*/    /*Scope*/ 13|128,1/*141*/, /*->451484*/
/*451343*/      OPC_RecordChild0, // #0 = $src1
/*451344*/      OPC_Scope, 45, /*->451391*/ // 4 children in Scope
/*451346*/        OPC_CheckChild0Type, MVT::v4f32,
/*451348*/        OPC_RecordChild1, // #1 = $src2
/*451349*/        OPC_RecordChild2, // #2 = $cc
/*451350*/        OPC_MoveChild2,
/*451351*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*451354*/        OPC_MoveParent,
/*451355*/        OPC_CheckType, MVT::v1i1,
/*451357*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*451359*/        OPC_Scope, 19, /*->451380*/ // 2 children in Scope
/*451361*/          OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*451364*/          OPC_EmitMergeInputChains, 1, 8, 
/*451367*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPSSZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v1i1, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86cmpms:{ *:[v1i1] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, (timm:{ *:[i8] }):$cc) - Complexity = 24
                    // Dst: (VCMPSSZrm_Int:{ *:[v1i1] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, (timm:{ *:[i8] }):$cc)
/*451380*/        /*Scope*/ 9, /*->451390*/
/*451381*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPSSZrr_Int), 0,
                        MVT::v1i1, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86cmpms:{ *:[v1i1] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i8] }):$cc) - Complexity = 6
                    // Dst: (VCMPSSZrr_Int:{ *:[v1i1] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i8] }):$cc)
/*451390*/        0, /*End of Scope*/
/*451391*/      /*Scope*/ 45, /*->451437*/
/*451392*/        OPC_CheckChild0Type, MVT::v2f64,
/*451394*/        OPC_RecordChild1, // #1 = $src2
/*451395*/        OPC_RecordChild2, // #2 = $cc
/*451396*/        OPC_MoveChild2,
/*451397*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*451400*/        OPC_MoveParent,
/*451401*/        OPC_CheckType, MVT::v1i1,
/*451403*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*451405*/        OPC_Scope, 19, /*->451426*/ // 2 children in Scope
/*451407*/          OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*451410*/          OPC_EmitMergeInputChains, 1, 8, 
/*451413*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPSDZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v1i1, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86cmpms:{ *:[v1i1] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, (timm:{ *:[i8] }):$cc) - Complexity = 24
                    // Dst: (VCMPSDZrm_Int:{ *:[v1i1] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, (timm:{ *:[i8] }):$cc)
/*451426*/        /*Scope*/ 9, /*->451436*/
/*451427*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPSDZrr_Int), 0,
                        MVT::v1i1, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86cmpms:{ *:[v1i1] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i8] }):$cc) - Complexity = 6
                    // Dst: (VCMPSDZrr_Int:{ *:[v1i1] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i8] }):$cc)
/*451436*/        0, /*End of Scope*/
/*451437*/      /*Scope*/ 22, /*->451460*/
/*451438*/        OPC_CheckChild0Type, MVT::f32,
/*451440*/        OPC_RecordChild1, // #1 = $src2
/*451441*/        OPC_RecordChild2, // #2 = $cc
/*451442*/        OPC_MoveChild2,
/*451443*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*451446*/        OPC_MoveParent,
/*451447*/        OPC_CheckType, MVT::v1i1,
/*451449*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*451451*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPSSZrr), 0,
                      MVT::v1i1, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86cmpms:{ *:[v1i1] } FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2, (timm:{ *:[i8] }):$cc) - Complexity = 6
                  // Dst: (VCMPSSZrr:{ *:[v1i1] } FR32X:{ *:[f32] }:$src1, FR32X:{ *:[f32] }:$src2, (timm:{ *:[i8] }):$cc)
/*451460*/      /*Scope*/ 22, /*->451483*/
/*451461*/        OPC_CheckChild0Type, MVT::f64,
/*451463*/        OPC_RecordChild1, // #1 = $src2
/*451464*/        OPC_RecordChild2, // #2 = $cc
/*451465*/        OPC_MoveChild2,
/*451466*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*451469*/        OPC_MoveParent,
/*451470*/        OPC_CheckType, MVT::v1i1,
/*451472*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*451474*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPSDZrr), 0,
                      MVT::v1i1, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86cmpms:{ *:[v1i1] } FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2, (timm:{ *:[i8] }):$cc) - Complexity = 6
                  // Dst: (VCMPSDZrr:{ *:[v1i1] } FR64X:{ *:[f64] }:$src1, FR64X:{ *:[f64] }:$src2, (timm:{ *:[i8] }):$cc)
/*451483*/      0, /*End of Scope*/
/*451484*/    0, /*End of Scope*/
/*451485*/  /*SwitchOpcode*/ 82|128,16/*2130*/, TARGET_VAL(X86ISD::STRICT_CMPM),// ->453619
/*451489*/    OPC_RecordNode, // #0 = 'X86strict_cmpm' chained node
/*451490*/    OPC_Scope, 88, /*->451580*/ // 21 children in Scope
/*451492*/      OPC_RecordChild1, // #1 = $src1
/*451493*/      OPC_CheckChild1Type, MVT::v8f64,
/*451495*/      OPC_MoveChild2,
/*451496*/      OPC_SwitchOpcode /*2 cases */, 39, TARGET_VAL(ISD::LOAD),// ->451539
/*451500*/        OPC_RecordMemRef,
/*451501*/        OPC_RecordNode, // #2 = 'ld' chained node
/*451502*/        OPC_CheckFoldableChainNode,
/*451503*/        OPC_RecordChild1, // #3 = $src2
/*451504*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*451506*/        OPC_CheckPredicate, 9, // Predicate_load
/*451508*/        OPC_MoveParent,
/*451509*/        OPC_RecordChild3, // #4 = $cc
/*451510*/        OPC_MoveChild3,
/*451511*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*451514*/        OPC_MoveParent,
/*451515*/        OPC_CheckType, MVT::v8i1,
/*451517*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*451519*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*451522*/        OPC_EmitMergeInputChains, 2, 0, 2, 
/*451526*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 1, 5, 6, 7, 8, 9, 4, 
                  // Src: (X86strict_cmpm:{ *:[v8i1] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$cc) - Complexity = 28
                  // Dst: (VCMPPDZrmi:{ *:[v8i1] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/*451539*/      /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->451579
/*451542*/        OPC_RecordMemRef,
/*451543*/        OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*451544*/        OPC_CheckFoldableChainNode,
/*451545*/        OPC_RecordChild1, // #3 = $src2
/*451546*/        OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*451548*/        OPC_MoveParent,
/*451549*/        OPC_RecordChild3, // #4 = $cc
/*451550*/        OPC_MoveChild3,
/*451551*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*451554*/        OPC_MoveParent,
/*451555*/        OPC_CheckType, MVT::v8i1,
/*451557*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*451559*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*451562*/        OPC_EmitMergeInputChains, 2, 0, 2, 
/*451566*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 1, 5, 6, 7, 8, 9, 4, 
                  // Src: (X86strict_cmpm:{ *:[v8i1] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$cc) - Complexity = 28
                  // Dst: (VCMPPDZrmbi:{ *:[v8i1] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/*451579*/      0, // EndSwitchOpcode
/*451580*/    /*Scope*/ 97, /*->451678*/
/*451581*/      OPC_MoveChild1,
/*451582*/      OPC_SwitchOpcode /*2 cases */, 45, TARGET_VAL(ISD::LOAD),// ->451631
/*451586*/        OPC_RecordMemRef,
/*451587*/        OPC_RecordNode, // #1 = 'ld' chained node
/*451588*/        OPC_CheckFoldableChainNode,
/*451589*/        OPC_RecordChild1, // #2 = $src2
/*451590*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*451592*/        OPC_CheckPredicate, 9, // Predicate_load
/*451594*/        OPC_CheckType, MVT::v8f64,
/*451596*/        OPC_MoveParent,
/*451597*/        OPC_RecordChild2, // #3 = $src1
/*451598*/        OPC_RecordChild3, // #4 = $cc
/*451599*/        OPC_MoveChild3,
/*451600*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*451603*/        OPC_MoveParent,
/*451604*/        OPC_CheckType, MVT::v8i1,
/*451606*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*451608*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*451611*/        OPC_EmitMergeInputChains, 2, 0, 1, 
/*451615*/        OPC_EmitNodeXForm, 7, 4, // X86cmpm_imm_commute
/*451618*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 3, 5, 6, 7, 8, 9, 10, 
                  // Src: (X86strict_cmpm:{ *:[v8i1] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i8] }):$cc) - Complexity = 28
                  // Dst: (VCMPPDZrmi:{ *:[v8i1] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86cmpm_imm_commute:{ *:[i8] } (timm:{ *:[i8] }):$cc))
/*451631*/      /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->451677
/*451634*/        OPC_RecordMemRef,
/*451635*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*451636*/        OPC_CheckFoldableChainNode,
/*451637*/        OPC_RecordChild1, // #2 = $src2
/*451638*/        OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*451640*/        OPC_CheckType, MVT::v8f64,
/*451642*/        OPC_MoveParent,
/*451643*/        OPC_RecordChild2, // #3 = $src1
/*451644*/        OPC_RecordChild3, // #4 = $cc
/*451645*/        OPC_MoveChild3,
/*451646*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*451649*/        OPC_MoveParent,
/*451650*/        OPC_CheckType, MVT::v8i1,
/*451652*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*451654*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*451657*/        OPC_EmitMergeInputChains, 2, 0, 1, 
/*451661*/        OPC_EmitNodeXForm, 7, 4, // X86cmpm_imm_commute
/*451664*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 3, 5, 6, 7, 8, 9, 10, 
                  // Src: (X86strict_cmpm:{ *:[v8i1] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i8] }):$cc) - Complexity = 28
                  // Dst: (VCMPPDZrmbi:{ *:[v8i1] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86cmpm_imm_commute:{ *:[i8] } (timm:{ *:[i8] }):$cc))
/*451677*/      0, // EndSwitchOpcode
/*451678*/    /*Scope*/ 88, /*->451767*/
/*451679*/      OPC_RecordChild1, // #1 = $src1
/*451680*/      OPC_CheckChild1Type, MVT::v2f64,
/*451682*/      OPC_MoveChild2,
/*451683*/      OPC_SwitchOpcode /*2 cases */, 39, TARGET_VAL(ISD::LOAD),// ->451726
/*451687*/        OPC_RecordMemRef,
/*451688*/        OPC_RecordNode, // #2 = 'ld' chained node
/*451689*/        OPC_CheckFoldableChainNode,
/*451690*/        OPC_RecordChild1, // #3 = $src2
/*451691*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*451693*/        OPC_CheckPredicate, 9, // Predicate_load
/*451695*/        OPC_MoveParent,
/*451696*/        OPC_RecordChild3, // #4 = $cc
/*451697*/        OPC_MoveChild3,
/*451698*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*451701*/        OPC_MoveParent,
/*451702*/        OPC_CheckType, MVT::v2i1,
/*451704*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*451706*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*451709*/        OPC_EmitMergeInputChains, 2, 0, 2, 
/*451713*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i1, 7/*#Ops*/, 1, 5, 6, 7, 8, 9, 4, 
                  // Src: (X86strict_cmpm:{ *:[v2i1] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$cc) - Complexity = 28
                  // Dst: (VCMPPDZ128rmi:{ *:[v2i1] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/*451726*/      /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->451766
/*451729*/        OPC_RecordMemRef,
/*451730*/        OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*451731*/        OPC_CheckFoldableChainNode,
/*451732*/        OPC_RecordChild1, // #3 = $src2
/*451733*/        OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*451735*/        OPC_MoveParent,
/*451736*/        OPC_RecordChild3, // #4 = $cc
/*451737*/        OPC_MoveChild3,
/*451738*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*451741*/        OPC_MoveParent,
/*451742*/        OPC_CheckType, MVT::v2i1,
/*451744*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*451746*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*451749*/        OPC_EmitMergeInputChains, 2, 0, 2, 
/*451753*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i1, 7/*#Ops*/, 1, 5, 6, 7, 8, 9, 4, 
                  // Src: (X86strict_cmpm:{ *:[v2i1] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$cc) - Complexity = 28
                  // Dst: (VCMPPDZ128rmbi:{ *:[v2i1] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/*451766*/      0, // EndSwitchOpcode
/*451767*/    /*Scope*/ 97, /*->451865*/
/*451768*/      OPC_MoveChild1,
/*451769*/      OPC_SwitchOpcode /*2 cases */, 45, TARGET_VAL(ISD::LOAD),// ->451818
/*451773*/        OPC_RecordMemRef,
/*451774*/        OPC_RecordNode, // #1 = 'ld' chained node
/*451775*/        OPC_CheckFoldableChainNode,
/*451776*/        OPC_RecordChild1, // #2 = $src2
/*451777*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*451779*/        OPC_CheckPredicate, 9, // Predicate_load
/*451781*/        OPC_CheckType, MVT::v2f64,
/*451783*/        OPC_MoveParent,
/*451784*/        OPC_RecordChild2, // #3 = $src1
/*451785*/        OPC_RecordChild3, // #4 = $cc
/*451786*/        OPC_MoveChild3,
/*451787*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*451790*/        OPC_MoveParent,
/*451791*/        OPC_CheckType, MVT::v2i1,
/*451793*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*451795*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*451798*/        OPC_EmitMergeInputChains, 2, 0, 1, 
/*451802*/        OPC_EmitNodeXForm, 7, 4, // X86cmpm_imm_commute
/*451805*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i1, 7/*#Ops*/, 3, 5, 6, 7, 8, 9, 10, 
                  // Src: (X86strict_cmpm:{ *:[v2i1] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v2f64] }:$src1, (timm:{ *:[i8] }):$cc) - Complexity = 28
                  // Dst: (VCMPPDZ128rmi:{ *:[v2i1] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86cmpm_imm_commute:{ *:[i8] } (timm:{ *:[i8] }):$cc))
/*451818*/      /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->451864
/*451821*/        OPC_RecordMemRef,
/*451822*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*451823*/        OPC_CheckFoldableChainNode,
/*451824*/        OPC_RecordChild1, // #2 = $src2
/*451825*/        OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*451827*/        OPC_CheckType, MVT::v2f64,
/*451829*/        OPC_MoveParent,
/*451830*/        OPC_RecordChild2, // #3 = $src1
/*451831*/        OPC_RecordChild3, // #4 = $cc
/*451832*/        OPC_MoveChild3,
/*451833*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*451836*/        OPC_MoveParent,
/*451837*/        OPC_CheckType, MVT::v2i1,
/*451839*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*451841*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*451844*/        OPC_EmitMergeInputChains, 2, 0, 1, 
/*451848*/        OPC_EmitNodeXForm, 7, 4, // X86cmpm_imm_commute
/*451851*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i1, 7/*#Ops*/, 3, 5, 6, 7, 8, 9, 10, 
                  // Src: (X86strict_cmpm:{ *:[v2i1] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1, (timm:{ *:[i8] }):$cc) - Complexity = 28
                  // Dst: (VCMPPDZ128rmbi:{ *:[v2i1] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86cmpm_imm_commute:{ *:[i8] } (timm:{ *:[i8] }):$cc))
/*451864*/      0, // EndSwitchOpcode
/*451865*/    /*Scope*/ 88, /*->451954*/
/*451866*/      OPC_RecordChild1, // #1 = $src1
/*451867*/      OPC_CheckChild1Type, MVT::v4f64,
/*451869*/      OPC_MoveChild2,
/*451870*/      OPC_SwitchOpcode /*2 cases */, 39, TARGET_VAL(ISD::LOAD),// ->451913
/*451874*/        OPC_RecordMemRef,
/*451875*/        OPC_RecordNode, // #2 = 'ld' chained node
/*451876*/        OPC_CheckFoldableChainNode,
/*451877*/        OPC_RecordChild1, // #3 = $src2
/*451878*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*451880*/        OPC_CheckPredicate, 9, // Predicate_load
/*451882*/        OPC_MoveParent,
/*451883*/        OPC_RecordChild3, // #4 = $cc
/*451884*/        OPC_MoveChild3,
/*451885*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*451888*/        OPC_MoveParent,
/*451889*/        OPC_CheckType, MVT::v4i1,
/*451891*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*451893*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*451896*/        OPC_EmitMergeInputChains, 2, 0, 2, 
/*451900*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i1, 7/*#Ops*/, 1, 5, 6, 7, 8, 9, 4, 
                  // Src: (X86strict_cmpm:{ *:[v4i1] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$cc) - Complexity = 28
                  // Dst: (VCMPPDZ256rmi:{ *:[v4i1] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/*451913*/      /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->451953
/*451916*/        OPC_RecordMemRef,
/*451917*/        OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*451918*/        OPC_CheckFoldableChainNode,
/*451919*/        OPC_RecordChild1, // #3 = $src2
/*451920*/        OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*451922*/        OPC_MoveParent,
/*451923*/        OPC_RecordChild3, // #4 = $cc
/*451924*/        OPC_MoveChild3,
/*451925*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*451928*/        OPC_MoveParent,
/*451929*/        OPC_CheckType, MVT::v4i1,
/*451931*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*451933*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*451936*/        OPC_EmitMergeInputChains, 2, 0, 2, 
/*451940*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i1, 7/*#Ops*/, 1, 5, 6, 7, 8, 9, 4, 
                  // Src: (X86strict_cmpm:{ *:[v4i1] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$cc) - Complexity = 28
                  // Dst: (VCMPPDZ256rmbi:{ *:[v4i1] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/*451953*/      0, // EndSwitchOpcode
/*451954*/    /*Scope*/ 97, /*->452052*/
/*451955*/      OPC_MoveChild1,
/*451956*/      OPC_SwitchOpcode /*2 cases */, 45, TARGET_VAL(ISD::LOAD),// ->452005
/*451960*/        OPC_RecordMemRef,
/*451961*/        OPC_RecordNode, // #1 = 'ld' chained node
/*451962*/        OPC_CheckFoldableChainNode,
/*451963*/        OPC_RecordChild1, // #2 = $src2
/*451964*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*451966*/        OPC_CheckPredicate, 9, // Predicate_load
/*451968*/        OPC_CheckType, MVT::v4f64,
/*451970*/        OPC_MoveParent,
/*451971*/        OPC_RecordChild2, // #3 = $src1
/*451972*/        OPC_RecordChild3, // #4 = $cc
/*451973*/        OPC_MoveChild3,
/*451974*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*451977*/        OPC_MoveParent,
/*451978*/        OPC_CheckType, MVT::v4i1,
/*451980*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*451982*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*451985*/        OPC_EmitMergeInputChains, 2, 0, 1, 
/*451989*/        OPC_EmitNodeXForm, 7, 4, // X86cmpm_imm_commute
/*451992*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i1, 7/*#Ops*/, 3, 5, 6, 7, 8, 9, 10, 
                  // Src: (X86strict_cmpm:{ *:[v4i1] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v4f64] }:$src1, (timm:{ *:[i8] }):$cc) - Complexity = 28
                  // Dst: (VCMPPDZ256rmi:{ *:[v4i1] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86cmpm_imm_commute:{ *:[i8] } (timm:{ *:[i8] }):$cc))
/*452005*/      /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->452051
/*452008*/        OPC_RecordMemRef,
/*452009*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*452010*/        OPC_CheckFoldableChainNode,
/*452011*/        OPC_RecordChild1, // #2 = $src2
/*452012*/        OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*452014*/        OPC_CheckType, MVT::v4f64,
/*452016*/        OPC_MoveParent,
/*452017*/        OPC_RecordChild2, // #3 = $src1
/*452018*/        OPC_RecordChild3, // #4 = $cc
/*452019*/        OPC_MoveChild3,
/*452020*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*452023*/        OPC_MoveParent,
/*452024*/        OPC_CheckType, MVT::v4i1,
/*452026*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*452028*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*452031*/        OPC_EmitMergeInputChains, 2, 0, 1, 
/*452035*/        OPC_EmitNodeXForm, 7, 4, // X86cmpm_imm_commute
/*452038*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i1, 7/*#Ops*/, 3, 5, 6, 7, 8, 9, 10, 
                  // Src: (X86strict_cmpm:{ *:[v4i1] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1, (timm:{ *:[i8] }):$cc) - Complexity = 28
                  // Dst: (VCMPPDZ256rmbi:{ *:[v4i1] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86cmpm_imm_commute:{ *:[i8] } (timm:{ *:[i8] }):$cc))
/*452051*/      0, // EndSwitchOpcode
/*452052*/    /*Scope*/ 88, /*->452141*/
/*452053*/      OPC_RecordChild1, // #1 = $src1
/*452054*/      OPC_CheckChild1Type, MVT::v16f32,
/*452056*/      OPC_MoveChild2,
/*452057*/      OPC_SwitchOpcode /*2 cases */, 39, TARGET_VAL(ISD::LOAD),// ->452100
/*452061*/        OPC_RecordMemRef,
/*452062*/        OPC_RecordNode, // #2 = 'ld' chained node
/*452063*/        OPC_CheckFoldableChainNode,
/*452064*/        OPC_RecordChild1, // #3 = $src2
/*452065*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*452067*/        OPC_CheckPredicate, 9, // Predicate_load
/*452069*/        OPC_MoveParent,
/*452070*/        OPC_RecordChild3, // #4 = $cc
/*452071*/        OPC_MoveChild3,
/*452072*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*452075*/        OPC_MoveParent,
/*452076*/        OPC_CheckType, MVT::v16i1,
/*452078*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*452080*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*452083*/        OPC_EmitMergeInputChains, 2, 0, 2, 
/*452087*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i1, 7/*#Ops*/, 1, 5, 6, 7, 8, 9, 4, 
                  // Src: (X86strict_cmpm:{ *:[v16i1] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$cc) - Complexity = 28
                  // Dst: (VCMPPSZrmi:{ *:[v16i1] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/*452100*/      /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->452140
/*452103*/        OPC_RecordMemRef,
/*452104*/        OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*452105*/        OPC_CheckFoldableChainNode,
/*452106*/        OPC_RecordChild1, // #3 = $src2
/*452107*/        OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*452109*/        OPC_MoveParent,
/*452110*/        OPC_RecordChild3, // #4 = $cc
/*452111*/        OPC_MoveChild3,
/*452112*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*452115*/        OPC_MoveParent,
/*452116*/        OPC_CheckType, MVT::v16i1,
/*452118*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*452120*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*452123*/        OPC_EmitMergeInputChains, 2, 0, 2, 
/*452127*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i1, 7/*#Ops*/, 1, 5, 6, 7, 8, 9, 4, 
                  // Src: (X86strict_cmpm:{ *:[v16i1] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$cc) - Complexity = 28
                  // Dst: (VCMPPSZrmbi:{ *:[v16i1] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/*452140*/      0, // EndSwitchOpcode
/*452141*/    /*Scope*/ 97, /*->452239*/
/*452142*/      OPC_MoveChild1,
/*452143*/      OPC_SwitchOpcode /*2 cases */, 45, TARGET_VAL(ISD::LOAD),// ->452192
/*452147*/        OPC_RecordMemRef,
/*452148*/        OPC_RecordNode, // #1 = 'ld' chained node
/*452149*/        OPC_CheckFoldableChainNode,
/*452150*/        OPC_RecordChild1, // #2 = $src2
/*452151*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*452153*/        OPC_CheckPredicate, 9, // Predicate_load
/*452155*/        OPC_CheckType, MVT::v16f32,
/*452157*/        OPC_MoveParent,
/*452158*/        OPC_RecordChild2, // #3 = $src1
/*452159*/        OPC_RecordChild3, // #4 = $cc
/*452160*/        OPC_MoveChild3,
/*452161*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*452164*/        OPC_MoveParent,
/*452165*/        OPC_CheckType, MVT::v16i1,
/*452167*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*452169*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*452172*/        OPC_EmitMergeInputChains, 2, 0, 1, 
/*452176*/        OPC_EmitNodeXForm, 7, 4, // X86cmpm_imm_commute
/*452179*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i1, 7/*#Ops*/, 3, 5, 6, 7, 8, 9, 10, 
                  // Src: (X86strict_cmpm:{ *:[v16i1] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i8] }):$cc) - Complexity = 28
                  // Dst: (VCMPPSZrmi:{ *:[v16i1] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86cmpm_imm_commute:{ *:[i8] } (timm:{ *:[i8] }):$cc))
/*452192*/      /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->452238
/*452195*/        OPC_RecordMemRef,
/*452196*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*452197*/        OPC_CheckFoldableChainNode,
/*452198*/        OPC_RecordChild1, // #2 = $src2
/*452199*/        OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*452201*/        OPC_CheckType, MVT::v16f32,
/*452203*/        OPC_MoveParent,
/*452204*/        OPC_RecordChild2, // #3 = $src1
/*452205*/        OPC_RecordChild3, // #4 = $cc
/*452206*/        OPC_MoveChild3,
/*452207*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*452210*/        OPC_MoveParent,
/*452211*/        OPC_CheckType, MVT::v16i1,
/*452213*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*452215*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*452218*/        OPC_EmitMergeInputChains, 2, 0, 1, 
/*452222*/        OPC_EmitNodeXForm, 7, 4, // X86cmpm_imm_commute
/*452225*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i1, 7/*#Ops*/, 3, 5, 6, 7, 8, 9, 10, 
                  // Src: (X86strict_cmpm:{ *:[v16i1] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i8] }):$cc) - Complexity = 28
                  // Dst: (VCMPPSZrmbi:{ *:[v16i1] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86cmpm_imm_commute:{ *:[i8] } (timm:{ *:[i8] }):$cc))
/*452238*/      0, // EndSwitchOpcode
/*452239*/    /*Scope*/ 88, /*->452328*/
/*452240*/      OPC_RecordChild1, // #1 = $src1
/*452241*/      OPC_CheckChild1Type, MVT::v4f32,
/*452243*/      OPC_MoveChild2,
/*452244*/      OPC_SwitchOpcode /*2 cases */, 39, TARGET_VAL(ISD::LOAD),// ->452287
/*452248*/        OPC_RecordMemRef,
/*452249*/        OPC_RecordNode, // #2 = 'ld' chained node
/*452250*/        OPC_CheckFoldableChainNode,
/*452251*/        OPC_RecordChild1, // #3 = $src2
/*452252*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*452254*/        OPC_CheckPredicate, 9, // Predicate_load
/*452256*/        OPC_MoveParent,
/*452257*/        OPC_RecordChild3, // #4 = $cc
/*452258*/        OPC_MoveChild3,
/*452259*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*452262*/        OPC_MoveParent,
/*452263*/        OPC_CheckType, MVT::v4i1,
/*452265*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*452267*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*452270*/        OPC_EmitMergeInputChains, 2, 0, 2, 
/*452274*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i1, 7/*#Ops*/, 1, 5, 6, 7, 8, 9, 4, 
                  // Src: (X86strict_cmpm:{ *:[v4i1] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$cc) - Complexity = 28
                  // Dst: (VCMPPSZ128rmi:{ *:[v4i1] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/*452287*/      /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->452327
/*452290*/        OPC_RecordMemRef,
/*452291*/        OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*452292*/        OPC_CheckFoldableChainNode,
/*452293*/        OPC_RecordChild1, // #3 = $src2
/*452294*/        OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*452296*/        OPC_MoveParent,
/*452297*/        OPC_RecordChild3, // #4 = $cc
/*452298*/        OPC_MoveChild3,
/*452299*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*452302*/        OPC_MoveParent,
/*452303*/        OPC_CheckType, MVT::v4i1,
/*452305*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*452307*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*452310*/        OPC_EmitMergeInputChains, 2, 0, 2, 
/*452314*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i1, 7/*#Ops*/, 1, 5, 6, 7, 8, 9, 4, 
                  // Src: (X86strict_cmpm:{ *:[v4i1] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$cc) - Complexity = 28
                  // Dst: (VCMPPSZ128rmbi:{ *:[v4i1] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/*452327*/      0, // EndSwitchOpcode
/*452328*/    /*Scope*/ 97, /*->452426*/
/*452329*/      OPC_MoveChild1,
/*452330*/      OPC_SwitchOpcode /*2 cases */, 45, TARGET_VAL(ISD::LOAD),// ->452379
/*452334*/        OPC_RecordMemRef,
/*452335*/        OPC_RecordNode, // #1 = 'ld' chained node
/*452336*/        OPC_CheckFoldableChainNode,
/*452337*/        OPC_RecordChild1, // #2 = $src2
/*452338*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*452340*/        OPC_CheckPredicate, 9, // Predicate_load
/*452342*/        OPC_CheckType, MVT::v4f32,
/*452344*/        OPC_MoveParent,
/*452345*/        OPC_RecordChild2, // #3 = $src1
/*452346*/        OPC_RecordChild3, // #4 = $cc
/*452347*/        OPC_MoveChild3,
/*452348*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*452351*/        OPC_MoveParent,
/*452352*/        OPC_CheckType, MVT::v4i1,
/*452354*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*452356*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*452359*/        OPC_EmitMergeInputChains, 2, 0, 1, 
/*452363*/        OPC_EmitNodeXForm, 7, 4, // X86cmpm_imm_commute
/*452366*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i1, 7/*#Ops*/, 3, 5, 6, 7, 8, 9, 10, 
                  // Src: (X86strict_cmpm:{ *:[v4i1] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4f32] }:$src1, (timm:{ *:[i8] }):$cc) - Complexity = 28
                  // Dst: (VCMPPSZ128rmi:{ *:[v4i1] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86cmpm_imm_commute:{ *:[i8] } (timm:{ *:[i8] }):$cc))
/*452379*/      /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->452425
/*452382*/        OPC_RecordMemRef,
/*452383*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*452384*/        OPC_CheckFoldableChainNode,
/*452385*/        OPC_RecordChild1, // #2 = $src2
/*452386*/        OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*452388*/        OPC_CheckType, MVT::v4f32,
/*452390*/        OPC_MoveParent,
/*452391*/        OPC_RecordChild2, // #3 = $src1
/*452392*/        OPC_RecordChild3, // #4 = $cc
/*452393*/        OPC_MoveChild3,
/*452394*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*452397*/        OPC_MoveParent,
/*452398*/        OPC_CheckType, MVT::v4i1,
/*452400*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*452402*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*452405*/        OPC_EmitMergeInputChains, 2, 0, 1, 
/*452409*/        OPC_EmitNodeXForm, 7, 4, // X86cmpm_imm_commute
/*452412*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i1, 7/*#Ops*/, 3, 5, 6, 7, 8, 9, 10, 
                  // Src: (X86strict_cmpm:{ *:[v4i1] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1, (timm:{ *:[i8] }):$cc) - Complexity = 28
                  // Dst: (VCMPPSZ128rmbi:{ *:[v4i1] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86cmpm_imm_commute:{ *:[i8] } (timm:{ *:[i8] }):$cc))
/*452425*/      0, // EndSwitchOpcode
/*452426*/    /*Scope*/ 88, /*->452515*/
/*452427*/      OPC_RecordChild1, // #1 = $src1
/*452428*/      OPC_CheckChild1Type, MVT::v8f32,
/*452430*/      OPC_MoveChild2,
/*452431*/      OPC_SwitchOpcode /*2 cases */, 39, TARGET_VAL(ISD::LOAD),// ->452474
/*452435*/        OPC_RecordMemRef,
/*452436*/        OPC_RecordNode, // #2 = 'ld' chained node
/*452437*/        OPC_CheckFoldableChainNode,
/*452438*/        OPC_RecordChild1, // #3 = $src2
/*452439*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*452441*/        OPC_CheckPredicate, 9, // Predicate_load
/*452443*/        OPC_MoveParent,
/*452444*/        OPC_RecordChild3, // #4 = $cc
/*452445*/        OPC_MoveChild3,
/*452446*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*452449*/        OPC_MoveParent,
/*452450*/        OPC_CheckType, MVT::v8i1,
/*452452*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*452454*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*452457*/        OPC_EmitMergeInputChains, 2, 0, 2, 
/*452461*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 1, 5, 6, 7, 8, 9, 4, 
                  // Src: (X86strict_cmpm:{ *:[v8i1] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$cc) - Complexity = 28
                  // Dst: (VCMPPSZ256rmi:{ *:[v8i1] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/*452474*/      /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->452514
/*452477*/        OPC_RecordMemRef,
/*452478*/        OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*452479*/        OPC_CheckFoldableChainNode,
/*452480*/        OPC_RecordChild1, // #3 = $src2
/*452481*/        OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*452483*/        OPC_MoveParent,
/*452484*/        OPC_RecordChild3, // #4 = $cc
/*452485*/        OPC_MoveChild3,
/*452486*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*452489*/        OPC_MoveParent,
/*452490*/        OPC_CheckType, MVT::v8i1,
/*452492*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*452494*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*452497*/        OPC_EmitMergeInputChains, 2, 0, 2, 
/*452501*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 1, 5, 6, 7, 8, 9, 4, 
                  // Src: (X86strict_cmpm:{ *:[v8i1] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$cc) - Complexity = 28
                  // Dst: (VCMPPSZ256rmbi:{ *:[v8i1] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/*452514*/      0, // EndSwitchOpcode
/*452515*/    /*Scope*/ 97, /*->452613*/
/*452516*/      OPC_MoveChild1,
/*452517*/      OPC_SwitchOpcode /*2 cases */, 45, TARGET_VAL(ISD::LOAD),// ->452566
/*452521*/        OPC_RecordMemRef,
/*452522*/        OPC_RecordNode, // #1 = 'ld' chained node
/*452523*/        OPC_CheckFoldableChainNode,
/*452524*/        OPC_RecordChild1, // #2 = $src2
/*452525*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*452527*/        OPC_CheckPredicate, 9, // Predicate_load
/*452529*/        OPC_CheckType, MVT::v8f32,
/*452531*/        OPC_MoveParent,
/*452532*/        OPC_RecordChild2, // #3 = $src1
/*452533*/        OPC_RecordChild3, // #4 = $cc
/*452534*/        OPC_MoveChild3,
/*452535*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*452538*/        OPC_MoveParent,
/*452539*/        OPC_CheckType, MVT::v8i1,
/*452541*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*452543*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*452546*/        OPC_EmitMergeInputChains, 2, 0, 1, 
/*452550*/        OPC_EmitNodeXForm, 7, 4, // X86cmpm_imm_commute
/*452553*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 3, 5, 6, 7, 8, 9, 10, 
                  // Src: (X86strict_cmpm:{ *:[v8i1] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8f32] }:$src1, (timm:{ *:[i8] }):$cc) - Complexity = 28
                  // Dst: (VCMPPSZ256rmi:{ *:[v8i1] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86cmpm_imm_commute:{ *:[i8] } (timm:{ *:[i8] }):$cc))
/*452566*/      /*SwitchOpcode*/ 43, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->452612
/*452569*/        OPC_RecordMemRef,
/*452570*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*452571*/        OPC_CheckFoldableChainNode,
/*452572*/        OPC_RecordChild1, // #2 = $src2
/*452573*/        OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*452575*/        OPC_CheckType, MVT::v8f32,
/*452577*/        OPC_MoveParent,
/*452578*/        OPC_RecordChild2, // #3 = $src1
/*452579*/        OPC_RecordChild3, // #4 = $cc
/*452580*/        OPC_MoveChild3,
/*452581*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*452584*/        OPC_MoveParent,
/*452585*/        OPC_CheckType, MVT::v8i1,
/*452587*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*452589*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*452592*/        OPC_EmitMergeInputChains, 2, 0, 1, 
/*452596*/        OPC_EmitNodeXForm, 7, 4, // X86cmpm_imm_commute
/*452599*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 3, 5, 6, 7, 8, 9, 10, 
                  // Src: (X86strict_cmpm:{ *:[v8i1] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1, (timm:{ *:[i8] }):$cc) - Complexity = 28
                  // Dst: (VCMPPSZ256rmbi:{ *:[v8i1] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86cmpm_imm_commute:{ *:[i8] } (timm:{ *:[i8] }):$cc))
/*452612*/      0, // EndSwitchOpcode
/*452613*/    /*Scope*/ 73, /*->452687*/
/*452614*/      OPC_RecordChild1, // #1 = $src1
/*452615*/      OPC_CheckChild1Type, MVT::v8f32,
/*452617*/      OPC_MoveChild2,
/*452618*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*452621*/      OPC_RecordMemRef,
/*452622*/      OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*452623*/      OPC_CheckFoldableChainNode,
/*452624*/      OPC_RecordChild1, // #3 = $src2
/*452625*/      OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*452627*/      OPC_MoveParent,
/*452628*/      OPC_RecordChild3, // #4 = $cc
/*452629*/      OPC_MoveChild3,
/*452630*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*452633*/      OPC_MoveParent,
/*452634*/      OPC_CheckType, MVT::v8i1,
/*452636*/      OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*452638*/      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*452641*/      OPC_EmitMergeInputChains, 2, 0, 2, 
/*452645*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v16f32, 0/*#Ops*/,  // Results = #10
/*452651*/      OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*452654*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v16f32, 3/*#Ops*/, 10, 1, 11,  // Results = #12
/*452663*/      OPC_EmitNode1, TARGET_VAL(X86::VCMPPSZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v16i1, 7/*#Ops*/, 12, 5, 6, 7, 8, 9, 4,  // Results = #13
/*452676*/      OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*452679*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                    MVT::v8i1, 2/*#Ops*/, 13, 14, 
                // Src: (X86strict_cmpm:{ *:[v8i1] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$cc) - Complexity = 28
                // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VCMPPSZrmbi:{ *:[v16i1] } (INSERT_SUBREG:{ *:[v16f32] } (IMPLICIT_DEF:{ *:[v16f32] }), VR256X:{ *:[v8f32] }:$src1, sub_ymm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc), VK8:{ *:[i32] })
/*452687*/    /*Scope*/ 76, /*->452764*/
/*452688*/      OPC_MoveChild1,
/*452689*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*452692*/      OPC_RecordMemRef,
/*452693*/      OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*452694*/      OPC_CheckFoldableChainNode,
/*452695*/      OPC_RecordChild1, // #2 = $src2
/*452696*/      OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*452698*/      OPC_CheckType, MVT::v8f32,
/*452700*/      OPC_MoveParent,
/*452701*/      OPC_RecordChild2, // #3 = $src1
/*452702*/      OPC_RecordChild3, // #4 = $cc
/*452703*/      OPC_MoveChild3,
/*452704*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*452707*/      OPC_MoveParent,
/*452708*/      OPC_CheckType, MVT::v8i1,
/*452710*/      OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*452712*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*452715*/      OPC_EmitMergeInputChains, 2, 0, 1, 
/*452719*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v16f32, 0/*#Ops*/,  // Results = #10
/*452725*/      OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*452728*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v16f32, 3/*#Ops*/, 10, 3, 11,  // Results = #12
/*452737*/      OPC_EmitNodeXForm, 7, 4, // X86cmpm_imm_commute
/*452740*/      OPC_EmitNode1, TARGET_VAL(X86::VCMPPSZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v16i1, 7/*#Ops*/, 12, 5, 6, 7, 8, 9, 13,  // Results = #14
/*452753*/      OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*452756*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                    MVT::v8i1, 2/*#Ops*/, 14, 15, 
                // Src: (X86strict_cmpm:{ *:[v8i1] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1, (timm:{ *:[i8] }):$cc) - Complexity = 28
                // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VCMPPSZrmbi:{ *:[v16i1] } (INSERT_SUBREG:{ *:[v16f32] } (IMPLICIT_DEF:{ *:[v16f32] }), VR256X:{ *:[v8f32] }:$src1, sub_ymm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (X86cmpm_imm_commute:{ *:[i8] } (timm:{ *:[i8] }):$cc)), VK8:{ *:[i32] })
/*452764*/    /*Scope*/ 73, /*->452838*/
/*452765*/      OPC_RecordChild1, // #1 = $src1
/*452766*/      OPC_CheckChild1Type, MVT::v4f32,
/*452768*/      OPC_MoveChild2,
/*452769*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*452772*/      OPC_RecordMemRef,
/*452773*/      OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*452774*/      OPC_CheckFoldableChainNode,
/*452775*/      OPC_RecordChild1, // #3 = $src2
/*452776*/      OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*452778*/      OPC_MoveParent,
/*452779*/      OPC_RecordChild3, // #4 = $cc
/*452780*/      OPC_MoveChild3,
/*452781*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*452784*/      OPC_MoveParent,
/*452785*/      OPC_CheckType, MVT::v4i1,
/*452787*/      OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*452789*/      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*452792*/      OPC_EmitMergeInputChains, 2, 0, 2, 
/*452796*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v16f32, 0/*#Ops*/,  // Results = #10
/*452802*/      OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*452805*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v16f32, 3/*#Ops*/, 10, 1, 11,  // Results = #12
/*452814*/      OPC_EmitNode1, TARGET_VAL(X86::VCMPPSZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v16i1, 7/*#Ops*/, 12, 5, 6, 7, 8, 9, 4,  // Results = #13
/*452827*/      OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*452830*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                    MVT::v4i1, 2/*#Ops*/, 13, 14, 
                // Src: (X86strict_cmpm:{ *:[v4i1] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$cc) - Complexity = 28
                // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VCMPPSZrmbi:{ *:[v16i1] } (INSERT_SUBREG:{ *:[v16f32] } (IMPLICIT_DEF:{ *:[v16f32] }), VR128X:{ *:[v4f32] }:$src1, sub_xmm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc), VK4:{ *:[i32] })
/*452838*/    /*Scope*/ 76, /*->452915*/
/*452839*/      OPC_MoveChild1,
/*452840*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*452843*/      OPC_RecordMemRef,
/*452844*/      OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*452845*/      OPC_CheckFoldableChainNode,
/*452846*/      OPC_RecordChild1, // #2 = $src2
/*452847*/      OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*452849*/      OPC_CheckType, MVT::v4f32,
/*452851*/      OPC_MoveParent,
/*452852*/      OPC_RecordChild2, // #3 = $src1
/*452853*/      OPC_RecordChild3, // #4 = $cc
/*452854*/      OPC_MoveChild3,
/*452855*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*452858*/      OPC_MoveParent,
/*452859*/      OPC_CheckType, MVT::v4i1,
/*452861*/      OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*452863*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*452866*/      OPC_EmitMergeInputChains, 2, 0, 1, 
/*452870*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v16f32, 0/*#Ops*/,  // Results = #10
/*452876*/      OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*452879*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v16f32, 3/*#Ops*/, 10, 3, 11,  // Results = #12
/*452888*/      OPC_EmitNodeXForm, 7, 4, // X86cmpm_imm_commute
/*452891*/      OPC_EmitNode1, TARGET_VAL(X86::VCMPPSZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v16i1, 7/*#Ops*/, 12, 5, 6, 7, 8, 9, 13,  // Results = #14
/*452904*/      OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*452907*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                    MVT::v4i1, 2/*#Ops*/, 14, 15, 
                // Src: (X86strict_cmpm:{ *:[v4i1] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1, (timm:{ *:[i8] }):$cc) - Complexity = 28
                // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VCMPPSZrmbi:{ *:[v16i1] } (INSERT_SUBREG:{ *:[v16f32] } (IMPLICIT_DEF:{ *:[v16f32] }), VR128X:{ *:[v4f32] }:$src1, sub_xmm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (X86cmpm_imm_commute:{ *:[i8] } (timm:{ *:[i8] }):$cc)), VK4:{ *:[i32] })
/*452915*/    /*Scope*/ 73, /*->452989*/
/*452916*/      OPC_RecordChild1, // #1 = $src1
/*452917*/      OPC_CheckChild1Type, MVT::v4f64,
/*452919*/      OPC_MoveChild2,
/*452920*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*452923*/      OPC_RecordMemRef,
/*452924*/      OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*452925*/      OPC_CheckFoldableChainNode,
/*452926*/      OPC_RecordChild1, // #3 = $src2
/*452927*/      OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*452929*/      OPC_MoveParent,
/*452930*/      OPC_RecordChild3, // #4 = $cc
/*452931*/      OPC_MoveChild3,
/*452932*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*452935*/      OPC_MoveParent,
/*452936*/      OPC_CheckType, MVT::v4i1,
/*452938*/      OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*452940*/      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*452943*/      OPC_EmitMergeInputChains, 2, 0, 2, 
/*452947*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v8f64, 0/*#Ops*/,  // Results = #10
/*452953*/      OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*452956*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v8f64, 3/*#Ops*/, 10, 1, 11,  // Results = #12
/*452965*/      OPC_EmitNode1, TARGET_VAL(X86::VCMPPDZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i1, 7/*#Ops*/, 12, 5, 6, 7, 8, 9, 4,  // Results = #13
/*452978*/      OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*452981*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                    MVT::v4i1, 2/*#Ops*/, 13, 14, 
                // Src: (X86strict_cmpm:{ *:[v4i1] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$cc) - Complexity = 28
                // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VCMPPDZrmbi:{ *:[v8i1] } (INSERT_SUBREG:{ *:[v8f64] } (IMPLICIT_DEF:{ *:[v8f64] }), VR256X:{ *:[v4f64] }:$src1, sub_ymm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc), VK4:{ *:[i32] })
/*452989*/    /*Scope*/ 76, /*->453066*/
/*452990*/      OPC_MoveChild1,
/*452991*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*452994*/      OPC_RecordMemRef,
/*452995*/      OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*452996*/      OPC_CheckFoldableChainNode,
/*452997*/      OPC_RecordChild1, // #2 = $src2
/*452998*/      OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*453000*/      OPC_CheckType, MVT::v4f64,
/*453002*/      OPC_MoveParent,
/*453003*/      OPC_RecordChild2, // #3 = $src1
/*453004*/      OPC_RecordChild3, // #4 = $cc
/*453005*/      OPC_MoveChild3,
/*453006*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*453009*/      OPC_MoveParent,
/*453010*/      OPC_CheckType, MVT::v4i1,
/*453012*/      OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*453014*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*453017*/      OPC_EmitMergeInputChains, 2, 0, 1, 
/*453021*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v8f64, 0/*#Ops*/,  // Results = #10
/*453027*/      OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*453030*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v8f64, 3/*#Ops*/, 10, 3, 11,  // Results = #12
/*453039*/      OPC_EmitNodeXForm, 7, 4, // X86cmpm_imm_commute
/*453042*/      OPC_EmitNode1, TARGET_VAL(X86::VCMPPDZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i1, 7/*#Ops*/, 12, 5, 6, 7, 8, 9, 13,  // Results = #14
/*453055*/      OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*453058*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                    MVT::v4i1, 2/*#Ops*/, 14, 15, 
                // Src: (X86strict_cmpm:{ *:[v4i1] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1, (timm:{ *:[i8] }):$cc) - Complexity = 28
                // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VCMPPDZrmbi:{ *:[v8i1] } (INSERT_SUBREG:{ *:[v8f64] } (IMPLICIT_DEF:{ *:[v8f64] }), VR256X:{ *:[v4f64] }:$src1, sub_ymm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (X86cmpm_imm_commute:{ *:[i8] } (timm:{ *:[i8] }):$cc)), VK4:{ *:[i32] })
/*453066*/    /*Scope*/ 73, /*->453140*/
/*453067*/      OPC_RecordChild1, // #1 = $src1
/*453068*/      OPC_CheckChild1Type, MVT::v2f64,
/*453070*/      OPC_MoveChild2,
/*453071*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*453074*/      OPC_RecordMemRef,
/*453075*/      OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*453076*/      OPC_CheckFoldableChainNode,
/*453077*/      OPC_RecordChild1, // #3 = $src2
/*453078*/      OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*453080*/      OPC_MoveParent,
/*453081*/      OPC_RecordChild3, // #4 = $cc
/*453082*/      OPC_MoveChild3,
/*453083*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*453086*/      OPC_MoveParent,
/*453087*/      OPC_CheckType, MVT::v2i1,
/*453089*/      OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*453091*/      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*453094*/      OPC_EmitMergeInputChains, 2, 0, 2, 
/*453098*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v8f64, 0/*#Ops*/,  // Results = #10
/*453104*/      OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*453107*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v8f64, 3/*#Ops*/, 10, 1, 11,  // Results = #12
/*453116*/      OPC_EmitNode1, TARGET_VAL(X86::VCMPPDZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i1, 7/*#Ops*/, 12, 5, 6, 7, 8, 9, 4,  // Results = #13
/*453129*/      OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/*453132*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                    MVT::v2i1, 2/*#Ops*/, 13, 14, 
                // Src: (X86strict_cmpm:{ *:[v2i1] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$cc) - Complexity = 28
                // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (VCMPPDZrmbi:{ *:[v8i1] } (INSERT_SUBREG:{ *:[v8f64] } (IMPLICIT_DEF:{ *:[v8f64] }), VR128X:{ *:[v2f64] }:$src1, sub_xmm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc), VK2:{ *:[i32] })
/*453140*/    /*Scope*/ 76, /*->453217*/
/*453141*/      OPC_MoveChild1,
/*453142*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*453145*/      OPC_RecordMemRef,
/*453146*/      OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*453147*/      OPC_CheckFoldableChainNode,
/*453148*/      OPC_RecordChild1, // #2 = $src2
/*453149*/      OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*453151*/      OPC_CheckType, MVT::v2f64,
/*453153*/      OPC_MoveParent,
/*453154*/      OPC_RecordChild2, // #3 = $src1
/*453155*/      OPC_RecordChild3, // #4 = $cc
/*453156*/      OPC_MoveChild3,
/*453157*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*453160*/      OPC_MoveParent,
/*453161*/      OPC_CheckType, MVT::v2i1,
/*453163*/      OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*453165*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*453168*/      OPC_EmitMergeInputChains, 2, 0, 1, 
/*453172*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v8f64, 0/*#Ops*/,  // Results = #10
/*453178*/      OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*453181*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v8f64, 3/*#Ops*/, 10, 3, 11,  // Results = #12
/*453190*/      OPC_EmitNodeXForm, 7, 4, // X86cmpm_imm_commute
/*453193*/      OPC_EmitNode1, TARGET_VAL(X86::VCMPPDZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i1, 7/*#Ops*/, 12, 5, 6, 7, 8, 9, 13,  // Results = #14
/*453206*/      OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/*453209*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                    MVT::v2i1, 2/*#Ops*/, 14, 15, 
                // Src: (X86strict_cmpm:{ *:[v2i1] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1, (timm:{ *:[i8] }):$cc) - Complexity = 28
                // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (VCMPPDZrmbi:{ *:[v8i1] } (INSERT_SUBREG:{ *:[v8f64] } (IMPLICIT_DEF:{ *:[v8f64] }), VR128X:{ *:[v2f64] }:$src1, sub_xmm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (X86cmpm_imm_commute:{ *:[i8] } (timm:{ *:[i8] }):$cc)), VK2:{ *:[i32] })
/*453217*/    /*Scope*/ 15|128,3/*399*/, /*->453618*/
/*453219*/      OPC_RecordChild1, // #1 = $src1
/*453220*/      OPC_Scope, 23, /*->453245*/ // 6 children in Scope
/*453222*/        OPC_CheckChild1Type, MVT::v8f64,
/*453224*/        OPC_RecordChild2, // #2 = $src2
/*453225*/        OPC_RecordChild3, // #3 = $cc
/*453226*/        OPC_MoveChild3,
/*453227*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*453230*/        OPC_MoveParent,
/*453231*/        OPC_CheckType, MVT::v8i1,
/*453233*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*453235*/        OPC_EmitMergeInputChains1_0,
/*453236*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZrri), 0|OPFL_Chain,
                      MVT::v8i1, 3/*#Ops*/, 1, 2, 3, 
                  // Src: (X86strict_cmpm:{ *:[v8i1] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i8] }):$cc) - Complexity = 6
                  // Dst: (VCMPPDZrri:{ *:[v8i1] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i8] }):$cc)
/*453245*/      /*Scope*/ 86, /*->453332*/
/*453246*/        OPC_CheckChild1Type, MVT::v2f64,
/*453248*/        OPC_RecordChild2, // #2 = $src2
/*453249*/        OPC_RecordChild3, // #3 = $cc
/*453250*/        OPC_MoveChild3,
/*453251*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*453254*/        OPC_MoveParent,
/*453255*/        OPC_CheckType, MVT::v2i1,
/*453257*/        OPC_Scope, 12, /*->453271*/ // 2 children in Scope
/*453259*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*453261*/          OPC_EmitMergeInputChains1_0,
/*453262*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZ128rri), 0|OPFL_Chain,
                        MVT::v2i1, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (X86strict_cmpm:{ *:[v2i1] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i8] }):$cc) - Complexity = 6
                    // Dst: (VCMPPDZ128rri:{ *:[v2i1] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i8] }):$cc)
/*453271*/        /*Scope*/ 59, /*->453331*/
/*453272*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*453274*/          OPC_EmitMergeInputChains1_0,
/*453275*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8f64, 0/*#Ops*/,  // Results = #4
/*453281*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*453284*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8f64, 3/*#Ops*/, 4, 1, 5,  // Results = #6
/*453293*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8f64, 0/*#Ops*/,  // Results = #7
/*453299*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*453302*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8f64, 3/*#Ops*/, 7, 2, 8,  // Results = #9
/*453311*/          OPC_EmitNode1, TARGET_VAL(X86::VCMPPDZrri), 0|OPFL_Chain,
                        MVT::v8i1, 3/*#Ops*/, 6, 9, 3,  // Results = #10
/*453320*/          OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/*453323*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                        MVT::v2i1, 2/*#Ops*/, 10, 11, 
                    // Src: (X86strict_cmpm:{ *:[v2i1] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[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] }), (timm:{ *:[i8] }):$cc), VK2:{ *:[i32] })
/*453331*/        0, /*End of Scope*/
/*453332*/      /*Scope*/ 86, /*->453419*/
/*453333*/        OPC_CheckChild1Type, MVT::v4f64,
/*453335*/        OPC_RecordChild2, // #2 = $src2
/*453336*/        OPC_RecordChild3, // #3 = $cc
/*453337*/        OPC_MoveChild3,
/*453338*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*453341*/        OPC_MoveParent,
/*453342*/        OPC_CheckType, MVT::v4i1,
/*453344*/        OPC_Scope, 12, /*->453358*/ // 2 children in Scope
/*453346*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*453348*/          OPC_EmitMergeInputChains1_0,
/*453349*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZ256rri), 0|OPFL_Chain,
                        MVT::v4i1, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (X86strict_cmpm:{ *:[v4i1] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (timm:{ *:[i8] }):$cc) - Complexity = 6
                    // Dst: (VCMPPDZ256rri:{ *:[v4i1] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (timm:{ *:[i8] }):$cc)
/*453358*/        /*Scope*/ 59, /*->453418*/
/*453359*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*453361*/          OPC_EmitMergeInputChains1_0,
/*453362*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8f64, 0/*#Ops*/,  // Results = #4
/*453368*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*453371*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8f64, 3/*#Ops*/, 4, 1, 5,  // Results = #6
/*453380*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8f64, 0/*#Ops*/,  // Results = #7
/*453386*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*453389*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8f64, 3/*#Ops*/, 7, 2, 8,  // Results = #9
/*453398*/          OPC_EmitNode1, TARGET_VAL(X86::VCMPPDZrri), 0|OPFL_Chain,
                        MVT::v8i1, 3/*#Ops*/, 6, 9, 3,  // Results = #10
/*453407*/          OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*453410*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                        MVT::v4i1, 2/*#Ops*/, 10, 11, 
                    // Src: (X86strict_cmpm:{ *:[v4i1] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (timm:{ *:[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] }), (timm:{ *:[i8] }):$cc), VK4:{ *:[i32] })
/*453418*/        0, /*End of Scope*/
/*453419*/      /*Scope*/ 23, /*->453443*/
/*453420*/        OPC_CheckChild1Type, MVT::v16f32,
/*453422*/        OPC_RecordChild2, // #2 = $src2
/*453423*/        OPC_RecordChild3, // #3 = $cc
/*453424*/        OPC_MoveChild3,
/*453425*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*453428*/        OPC_MoveParent,
/*453429*/        OPC_CheckType, MVT::v16i1,
/*453431*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*453433*/        OPC_EmitMergeInputChains1_0,
/*453434*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZrri), 0|OPFL_Chain,
                      MVT::v16i1, 3/*#Ops*/, 1, 2, 3, 
                  // Src: (X86strict_cmpm:{ *:[v16i1] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i8] }):$cc) - Complexity = 6
                  // Dst: (VCMPPSZrri:{ *:[v16i1] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i8] }):$cc)
/*453443*/      /*Scope*/ 86, /*->453530*/
/*453444*/        OPC_CheckChild1Type, MVT::v4f32,
/*453446*/        OPC_RecordChild2, // #2 = $src2
/*453447*/        OPC_RecordChild3, // #3 = $cc
/*453448*/        OPC_MoveChild3,
/*453449*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*453452*/        OPC_MoveParent,
/*453453*/        OPC_CheckType, MVT::v4i1,
/*453455*/        OPC_Scope, 12, /*->453469*/ // 2 children in Scope
/*453457*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*453459*/          OPC_EmitMergeInputChains1_0,
/*453460*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZ128rri), 0|OPFL_Chain,
                        MVT::v4i1, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (X86strict_cmpm:{ *:[v4i1] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i8] }):$cc) - Complexity = 6
                    // Dst: (VCMPPSZ128rri:{ *:[v4i1] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i8] }):$cc)
/*453469*/        /*Scope*/ 59, /*->453529*/
/*453470*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*453472*/          OPC_EmitMergeInputChains1_0,
/*453473*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16f32, 0/*#Ops*/,  // Results = #4
/*453479*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*453482*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16f32, 3/*#Ops*/, 4, 1, 5,  // Results = #6
/*453491*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16f32, 0/*#Ops*/,  // Results = #7
/*453497*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*453500*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16f32, 3/*#Ops*/, 7, 2, 8,  // Results = #9
/*453509*/          OPC_EmitNode1, TARGET_VAL(X86::VCMPPSZrri), 0|OPFL_Chain,
                        MVT::v16i1, 3/*#Ops*/, 6, 9, 3,  // Results = #10
/*453518*/          OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*453521*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                        MVT::v4i1, 2/*#Ops*/, 10, 11, 
                    // Src: (X86strict_cmpm:{ *:[v4i1] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[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] }), (timm:{ *:[i8] }):$cc), VK4:{ *:[i32] })
/*453529*/        0, /*End of Scope*/
/*453530*/      /*Scope*/ 86, /*->453617*/
/*453531*/        OPC_CheckChild1Type, MVT::v8f32,
/*453533*/        OPC_RecordChild2, // #2 = $src2
/*453534*/        OPC_RecordChild3, // #3 = $cc
/*453535*/        OPC_MoveChild3,
/*453536*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*453539*/        OPC_MoveParent,
/*453540*/        OPC_CheckType, MVT::v8i1,
/*453542*/        OPC_Scope, 12, /*->453556*/ // 2 children in Scope
/*453544*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*453546*/          OPC_EmitMergeInputChains1_0,
/*453547*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZ256rri), 0|OPFL_Chain,
                        MVT::v8i1, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (X86strict_cmpm:{ *:[v8i1] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (timm:{ *:[i8] }):$cc) - Complexity = 6
                    // Dst: (VCMPPSZ256rri:{ *:[v8i1] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (timm:{ *:[i8] }):$cc)
/*453556*/        /*Scope*/ 59, /*->453616*/
/*453557*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*453559*/          OPC_EmitMergeInputChains1_0,
/*453560*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16f32, 0/*#Ops*/,  // Results = #4
/*453566*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*453569*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16f32, 3/*#Ops*/, 4, 1, 5,  // Results = #6
/*453578*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16f32, 0/*#Ops*/,  // Results = #7
/*453584*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*453587*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16f32, 3/*#Ops*/, 7, 2, 8,  // Results = #9
/*453596*/          OPC_EmitNode1, TARGET_VAL(X86::VCMPPSZrri), 0|OPFL_Chain,
                        MVT::v16i1, 3/*#Ops*/, 6, 9, 3,  // Results = #10
/*453605*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*453608*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                        MVT::v8i1, 2/*#Ops*/, 10, 11, 
                    // Src: (X86strict_cmpm:{ *:[v8i1] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (timm:{ *:[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] }), (timm:{ *:[i8] }):$cc), VK8:{ *:[i32] })
/*453616*/        0, /*End of Scope*/
/*453617*/      0, /*End of Scope*/
/*453618*/    0, /*End of Scope*/
/*453619*/  /*SwitchOpcode*/ 103|128,15/*2023*/, TARGET_VAL(X86ISD::CMPM),// ->455646
/*453623*/    OPC_Scope, 82, /*->453707*/ // 21 children in Scope
/*453625*/      OPC_RecordChild0, // #0 = $src1
/*453626*/      OPC_CheckChild0Type, MVT::v8f64,
/*453628*/      OPC_MoveChild1,
/*453629*/      OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->453669
/*453633*/        OPC_RecordMemRef,
/*453634*/        OPC_RecordNode, // #1 = 'ld' chained node
/*453635*/        OPC_CheckFoldableChainNode,
/*453636*/        OPC_RecordChild1, // #2 = $src2
/*453637*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*453639*/        OPC_CheckPredicate, 9, // Predicate_load
/*453641*/        OPC_MoveParent,
/*453642*/        OPC_RecordChild2, // #3 = $cc
/*453643*/        OPC_MoveChild2,
/*453644*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*453647*/        OPC_MoveParent,
/*453648*/        OPC_CheckType, MVT::v8i1,
/*453650*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*453652*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*453655*/        OPC_EmitMergeInputChains1_1,
/*453656*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (X86cmpm:{ *:[v8i1] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$cc) - Complexity = 28
                  // Dst: (VCMPPDZrmi:{ *:[v8i1] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/*453669*/      /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->453706
/*453672*/        OPC_RecordMemRef,
/*453673*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*453674*/        OPC_CheckFoldableChainNode,
/*453675*/        OPC_RecordChild1, // #2 = $src2
/*453676*/        OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*453678*/        OPC_MoveParent,
/*453679*/        OPC_RecordChild2, // #3 = $cc
/*453680*/        OPC_MoveChild2,
/*453681*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*453684*/        OPC_MoveParent,
/*453685*/        OPC_CheckType, MVT::v8i1,
/*453687*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*453689*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*453692*/        OPC_EmitMergeInputChains1_1,
/*453693*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (X86cmpm:{ *:[v8i1] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$cc) - Complexity = 28
                  // Dst: (VCMPPDZrmbi:{ *:[v8i1] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/*453706*/      0, // EndSwitchOpcode
/*453707*/    /*Scope*/ 91, /*->453799*/
/*453708*/      OPC_MoveChild0,
/*453709*/      OPC_SwitchOpcode /*2 cases */, 42, TARGET_VAL(ISD::LOAD),// ->453755
/*453713*/        OPC_RecordMemRef,
/*453714*/        OPC_RecordNode, // #0 = 'ld' chained node
/*453715*/        OPC_CheckFoldableChainNode,
/*453716*/        OPC_RecordChild1, // #1 = $src2
/*453717*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*453719*/        OPC_CheckPredicate, 9, // Predicate_load
/*453721*/        OPC_CheckType, MVT::v8f64,
/*453723*/        OPC_MoveParent,
/*453724*/        OPC_RecordChild1, // #2 = $src1
/*453725*/        OPC_RecordChild2, // #3 = $cc
/*453726*/        OPC_MoveChild2,
/*453727*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*453730*/        OPC_MoveParent,
/*453731*/        OPC_CheckType, MVT::v8i1,
/*453733*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*453735*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*453738*/        OPC_EmitMergeInputChains1_0,
/*453739*/        OPC_EmitNodeXForm, 7, 3, // X86cmpm_imm_commute
/*453742*/        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>>, VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i8] }):$cc) - Complexity = 28
                  // Dst: (VCMPPDZrmi:{ *:[v8i1] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86cmpm_imm_commute:{ *:[i8] } (timm:{ *:[i8] }):$cc))
/*453755*/      /*SwitchOpcode*/ 40, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->453798
/*453758*/        OPC_RecordMemRef,
/*453759*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*453760*/        OPC_CheckFoldableChainNode,
/*453761*/        OPC_RecordChild1, // #1 = $src2
/*453762*/        OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*453764*/        OPC_CheckType, MVT::v8f64,
/*453766*/        OPC_MoveParent,
/*453767*/        OPC_RecordChild1, // #2 = $src1
/*453768*/        OPC_RecordChild2, // #3 = $cc
/*453769*/        OPC_MoveChild2,
/*453770*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*453773*/        OPC_MoveParent,
/*453774*/        OPC_CheckType, MVT::v8i1,
/*453776*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*453778*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*453781*/        OPC_EmitMergeInputChains1_0,
/*453782*/        OPC_EmitNodeXForm, 7, 3, // X86cmpm_imm_commute
/*453785*/        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] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i8] }):$cc) - Complexity = 28
                  // Dst: (VCMPPDZrmbi:{ *:[v8i1] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86cmpm_imm_commute:{ *:[i8] } (timm:{ *:[i8] }):$cc))
/*453798*/      0, // EndSwitchOpcode
/*453799*/    /*Scope*/ 82, /*->453882*/
/*453800*/      OPC_RecordChild0, // #0 = $src1
/*453801*/      OPC_CheckChild0Type, MVT::v2f64,
/*453803*/      OPC_MoveChild1,
/*453804*/      OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->453844
/*453808*/        OPC_RecordMemRef,
/*453809*/        OPC_RecordNode, // #1 = 'ld' chained node
/*453810*/        OPC_CheckFoldableChainNode,
/*453811*/        OPC_RecordChild1, // #2 = $src2
/*453812*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*453814*/        OPC_CheckPredicate, 9, // Predicate_load
/*453816*/        OPC_MoveParent,
/*453817*/        OPC_RecordChild2, // #3 = $cc
/*453818*/        OPC_MoveChild2,
/*453819*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*453822*/        OPC_MoveParent,
/*453823*/        OPC_CheckType, MVT::v2i1,
/*453825*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*453827*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*453830*/        OPC_EmitMergeInputChains1_1,
/*453831*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i1, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (X86cmpm:{ *:[v2i1] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$cc) - Complexity = 28
                  // Dst: (VCMPPDZ128rmi:{ *:[v2i1] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/*453844*/      /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->453881
/*453847*/        OPC_RecordMemRef,
/*453848*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*453849*/        OPC_CheckFoldableChainNode,
/*453850*/        OPC_RecordChild1, // #2 = $src2
/*453851*/        OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*453853*/        OPC_MoveParent,
/*453854*/        OPC_RecordChild2, // #3 = $cc
/*453855*/        OPC_MoveChild2,
/*453856*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*453859*/        OPC_MoveParent,
/*453860*/        OPC_CheckType, MVT::v2i1,
/*453862*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*453864*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*453867*/        OPC_EmitMergeInputChains1_1,
/*453868*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i1, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (X86cmpm:{ *:[v2i1] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$cc) - Complexity = 28
                  // Dst: (VCMPPDZ128rmbi:{ *:[v2i1] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/*453881*/      0, // EndSwitchOpcode
/*453882*/    /*Scope*/ 91, /*->453974*/
/*453883*/      OPC_MoveChild0,
/*453884*/      OPC_SwitchOpcode /*2 cases */, 42, TARGET_VAL(ISD::LOAD),// ->453930
/*453888*/        OPC_RecordMemRef,
/*453889*/        OPC_RecordNode, // #0 = 'ld' chained node
/*453890*/        OPC_CheckFoldableChainNode,
/*453891*/        OPC_RecordChild1, // #1 = $src2
/*453892*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*453894*/        OPC_CheckPredicate, 9, // Predicate_load
/*453896*/        OPC_CheckType, MVT::v2f64,
/*453898*/        OPC_MoveParent,
/*453899*/        OPC_RecordChild1, // #2 = $src1
/*453900*/        OPC_RecordChild2, // #3 = $cc
/*453901*/        OPC_MoveChild2,
/*453902*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*453905*/        OPC_MoveParent,
/*453906*/        OPC_CheckType, MVT::v2i1,
/*453908*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*453910*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*453913*/        OPC_EmitMergeInputChains1_0,
/*453914*/        OPC_EmitNodeXForm, 7, 3, // X86cmpm_imm_commute
/*453917*/        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>>, VR128X:{ *:[v2f64] }:$src1, (timm:{ *:[i8] }):$cc) - Complexity = 28
                  // Dst: (VCMPPDZ128rmi:{ *:[v2i1] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86cmpm_imm_commute:{ *:[i8] } (timm:{ *:[i8] }):$cc))
/*453930*/      /*SwitchOpcode*/ 40, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->453973
/*453933*/        OPC_RecordMemRef,
/*453934*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*453935*/        OPC_CheckFoldableChainNode,
/*453936*/        OPC_RecordChild1, // #1 = $src2
/*453937*/        OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*453939*/        OPC_CheckType, MVT::v2f64,
/*453941*/        OPC_MoveParent,
/*453942*/        OPC_RecordChild1, // #2 = $src1
/*453943*/        OPC_RecordChild2, // #3 = $cc
/*453944*/        OPC_MoveChild2,
/*453945*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*453948*/        OPC_MoveParent,
/*453949*/        OPC_CheckType, MVT::v2i1,
/*453951*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*453953*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*453956*/        OPC_EmitMergeInputChains1_0,
/*453957*/        OPC_EmitNodeXForm, 7, 3, // X86cmpm_imm_commute
/*453960*/        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] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1, (timm:{ *:[i8] }):$cc) - Complexity = 28
                  // Dst: (VCMPPDZ128rmbi:{ *:[v2i1] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86cmpm_imm_commute:{ *:[i8] } (timm:{ *:[i8] }):$cc))
/*453973*/      0, // EndSwitchOpcode
/*453974*/    /*Scope*/ 82, /*->454057*/
/*453975*/      OPC_RecordChild0, // #0 = $src1
/*453976*/      OPC_CheckChild0Type, MVT::v4f64,
/*453978*/      OPC_MoveChild1,
/*453979*/      OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->454019
/*453983*/        OPC_RecordMemRef,
/*453984*/        OPC_RecordNode, // #1 = 'ld' chained node
/*453985*/        OPC_CheckFoldableChainNode,
/*453986*/        OPC_RecordChild1, // #2 = $src2
/*453987*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*453989*/        OPC_CheckPredicate, 9, // Predicate_load
/*453991*/        OPC_MoveParent,
/*453992*/        OPC_RecordChild2, // #3 = $cc
/*453993*/        OPC_MoveChild2,
/*453994*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*453997*/        OPC_MoveParent,
/*453998*/        OPC_CheckType, MVT::v4i1,
/*454000*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*454002*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*454005*/        OPC_EmitMergeInputChains1_1,
/*454006*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i1, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (X86cmpm:{ *:[v4i1] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$cc) - Complexity = 28
                  // Dst: (VCMPPDZ256rmi:{ *:[v4i1] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/*454019*/      /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->454056
/*454022*/        OPC_RecordMemRef,
/*454023*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*454024*/        OPC_CheckFoldableChainNode,
/*454025*/        OPC_RecordChild1, // #2 = $src2
/*454026*/        OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*454028*/        OPC_MoveParent,
/*454029*/        OPC_RecordChild2, // #3 = $cc
/*454030*/        OPC_MoveChild2,
/*454031*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*454034*/        OPC_MoveParent,
/*454035*/        OPC_CheckType, MVT::v4i1,
/*454037*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*454039*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*454042*/        OPC_EmitMergeInputChains1_1,
/*454043*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i1, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (X86cmpm:{ *:[v4i1] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$cc) - Complexity = 28
                  // Dst: (VCMPPDZ256rmbi:{ *:[v4i1] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/*454056*/      0, // EndSwitchOpcode
/*454057*/    /*Scope*/ 91, /*->454149*/
/*454058*/      OPC_MoveChild0,
/*454059*/      OPC_SwitchOpcode /*2 cases */, 42, TARGET_VAL(ISD::LOAD),// ->454105
/*454063*/        OPC_RecordMemRef,
/*454064*/        OPC_RecordNode, // #0 = 'ld' chained node
/*454065*/        OPC_CheckFoldableChainNode,
/*454066*/        OPC_RecordChild1, // #1 = $src2
/*454067*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*454069*/        OPC_CheckPredicate, 9, // Predicate_load
/*454071*/        OPC_CheckType, MVT::v4f64,
/*454073*/        OPC_MoveParent,
/*454074*/        OPC_RecordChild1, // #2 = $src1
/*454075*/        OPC_RecordChild2, // #3 = $cc
/*454076*/        OPC_MoveChild2,
/*454077*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*454080*/        OPC_MoveParent,
/*454081*/        OPC_CheckType, MVT::v4i1,
/*454083*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*454085*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*454088*/        OPC_EmitMergeInputChains1_0,
/*454089*/        OPC_EmitNodeXForm, 7, 3, // X86cmpm_imm_commute
/*454092*/        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>>, VR256X:{ *:[v4f64] }:$src1, (timm:{ *:[i8] }):$cc) - Complexity = 28
                  // Dst: (VCMPPDZ256rmi:{ *:[v4i1] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86cmpm_imm_commute:{ *:[i8] } (timm:{ *:[i8] }):$cc))
/*454105*/      /*SwitchOpcode*/ 40, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->454148
/*454108*/        OPC_RecordMemRef,
/*454109*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*454110*/        OPC_CheckFoldableChainNode,
/*454111*/        OPC_RecordChild1, // #1 = $src2
/*454112*/        OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*454114*/        OPC_CheckType, MVT::v4f64,
/*454116*/        OPC_MoveParent,
/*454117*/        OPC_RecordChild1, // #2 = $src1
/*454118*/        OPC_RecordChild2, // #3 = $cc
/*454119*/        OPC_MoveChild2,
/*454120*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*454123*/        OPC_MoveParent,
/*454124*/        OPC_CheckType, MVT::v4i1,
/*454126*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*454128*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*454131*/        OPC_EmitMergeInputChains1_0,
/*454132*/        OPC_EmitNodeXForm, 7, 3, // X86cmpm_imm_commute
/*454135*/        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] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1, (timm:{ *:[i8] }):$cc) - Complexity = 28
                  // Dst: (VCMPPDZ256rmbi:{ *:[v4i1] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86cmpm_imm_commute:{ *:[i8] } (timm:{ *:[i8] }):$cc))
/*454148*/      0, // EndSwitchOpcode
/*454149*/    /*Scope*/ 82, /*->454232*/
/*454150*/      OPC_RecordChild0, // #0 = $src1
/*454151*/      OPC_CheckChild0Type, MVT::v16f32,
/*454153*/      OPC_MoveChild1,
/*454154*/      OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->454194
/*454158*/        OPC_RecordMemRef,
/*454159*/        OPC_RecordNode, // #1 = 'ld' chained node
/*454160*/        OPC_CheckFoldableChainNode,
/*454161*/        OPC_RecordChild1, // #2 = $src2
/*454162*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*454164*/        OPC_CheckPredicate, 9, // Predicate_load
/*454166*/        OPC_MoveParent,
/*454167*/        OPC_RecordChild2, // #3 = $cc
/*454168*/        OPC_MoveChild2,
/*454169*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*454172*/        OPC_MoveParent,
/*454173*/        OPC_CheckType, MVT::v16i1,
/*454175*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*454177*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*454180*/        OPC_EmitMergeInputChains1_1,
/*454181*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i1, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (X86cmpm:{ *:[v16i1] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$cc) - Complexity = 28
                  // Dst: (VCMPPSZrmi:{ *:[v16i1] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/*454194*/      /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->454231
/*454197*/        OPC_RecordMemRef,
/*454198*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*454199*/        OPC_CheckFoldableChainNode,
/*454200*/        OPC_RecordChild1, // #2 = $src2
/*454201*/        OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*454203*/        OPC_MoveParent,
/*454204*/        OPC_RecordChild2, // #3 = $cc
/*454205*/        OPC_MoveChild2,
/*454206*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*454209*/        OPC_MoveParent,
/*454210*/        OPC_CheckType, MVT::v16i1,
/*454212*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*454214*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*454217*/        OPC_EmitMergeInputChains1_1,
/*454218*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i1, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (X86cmpm:{ *:[v16i1] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$cc) - Complexity = 28
                  // Dst: (VCMPPSZrmbi:{ *:[v16i1] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/*454231*/      0, // EndSwitchOpcode
/*454232*/    /*Scope*/ 91, /*->454324*/
/*454233*/      OPC_MoveChild0,
/*454234*/      OPC_SwitchOpcode /*2 cases */, 42, TARGET_VAL(ISD::LOAD),// ->454280
/*454238*/        OPC_RecordMemRef,
/*454239*/        OPC_RecordNode, // #0 = 'ld' chained node
/*454240*/        OPC_CheckFoldableChainNode,
/*454241*/        OPC_RecordChild1, // #1 = $src2
/*454242*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*454244*/        OPC_CheckPredicate, 9, // Predicate_load
/*454246*/        OPC_CheckType, MVT::v16f32,
/*454248*/        OPC_MoveParent,
/*454249*/        OPC_RecordChild1, // #2 = $src1
/*454250*/        OPC_RecordChild2, // #3 = $cc
/*454251*/        OPC_MoveChild2,
/*454252*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*454255*/        OPC_MoveParent,
/*454256*/        OPC_CheckType, MVT::v16i1,
/*454258*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*454260*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*454263*/        OPC_EmitMergeInputChains1_0,
/*454264*/        OPC_EmitNodeXForm, 7, 3, // X86cmpm_imm_commute
/*454267*/        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>>, VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i8] }):$cc) - Complexity = 28
                  // Dst: (VCMPPSZrmi:{ *:[v16i1] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86cmpm_imm_commute:{ *:[i8] } (timm:{ *:[i8] }):$cc))
/*454280*/      /*SwitchOpcode*/ 40, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->454323
/*454283*/        OPC_RecordMemRef,
/*454284*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*454285*/        OPC_CheckFoldableChainNode,
/*454286*/        OPC_RecordChild1, // #1 = $src2
/*454287*/        OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*454289*/        OPC_CheckType, MVT::v16f32,
/*454291*/        OPC_MoveParent,
/*454292*/        OPC_RecordChild1, // #2 = $src1
/*454293*/        OPC_RecordChild2, // #3 = $cc
/*454294*/        OPC_MoveChild2,
/*454295*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*454298*/        OPC_MoveParent,
/*454299*/        OPC_CheckType, MVT::v16i1,
/*454301*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*454303*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*454306*/        OPC_EmitMergeInputChains1_0,
/*454307*/        OPC_EmitNodeXForm, 7, 3, // X86cmpm_imm_commute
/*454310*/        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] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i8] }):$cc) - Complexity = 28
                  // Dst: (VCMPPSZrmbi:{ *:[v16i1] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86cmpm_imm_commute:{ *:[i8] } (timm:{ *:[i8] }):$cc))
/*454323*/      0, // EndSwitchOpcode
/*454324*/    /*Scope*/ 82, /*->454407*/
/*454325*/      OPC_RecordChild0, // #0 = $src1
/*454326*/      OPC_CheckChild0Type, MVT::v4f32,
/*454328*/      OPC_MoveChild1,
/*454329*/      OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->454369
/*454333*/        OPC_RecordMemRef,
/*454334*/        OPC_RecordNode, // #1 = 'ld' chained node
/*454335*/        OPC_CheckFoldableChainNode,
/*454336*/        OPC_RecordChild1, // #2 = $src2
/*454337*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*454339*/        OPC_CheckPredicate, 9, // Predicate_load
/*454341*/        OPC_MoveParent,
/*454342*/        OPC_RecordChild2, // #3 = $cc
/*454343*/        OPC_MoveChild2,
/*454344*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*454347*/        OPC_MoveParent,
/*454348*/        OPC_CheckType, MVT::v4i1,
/*454350*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*454352*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*454355*/        OPC_EmitMergeInputChains1_1,
/*454356*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i1, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (X86cmpm:{ *:[v4i1] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$cc) - Complexity = 28
                  // Dst: (VCMPPSZ128rmi:{ *:[v4i1] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/*454369*/      /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->454406
/*454372*/        OPC_RecordMemRef,
/*454373*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*454374*/        OPC_CheckFoldableChainNode,
/*454375*/        OPC_RecordChild1, // #2 = $src2
/*454376*/        OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*454378*/        OPC_MoveParent,
/*454379*/        OPC_RecordChild2, // #3 = $cc
/*454380*/        OPC_MoveChild2,
/*454381*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*454384*/        OPC_MoveParent,
/*454385*/        OPC_CheckType, MVT::v4i1,
/*454387*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*454389*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*454392*/        OPC_EmitMergeInputChains1_1,
/*454393*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i1, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (X86cmpm:{ *:[v4i1] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$cc) - Complexity = 28
                  // Dst: (VCMPPSZ128rmbi:{ *:[v4i1] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/*454406*/      0, // EndSwitchOpcode
/*454407*/    /*Scope*/ 91, /*->454499*/
/*454408*/      OPC_MoveChild0,
/*454409*/      OPC_SwitchOpcode /*2 cases */, 42, TARGET_VAL(ISD::LOAD),// ->454455
/*454413*/        OPC_RecordMemRef,
/*454414*/        OPC_RecordNode, // #0 = 'ld' chained node
/*454415*/        OPC_CheckFoldableChainNode,
/*454416*/        OPC_RecordChild1, // #1 = $src2
/*454417*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*454419*/        OPC_CheckPredicate, 9, // Predicate_load
/*454421*/        OPC_CheckType, MVT::v4f32,
/*454423*/        OPC_MoveParent,
/*454424*/        OPC_RecordChild1, // #2 = $src1
/*454425*/        OPC_RecordChild2, // #3 = $cc
/*454426*/        OPC_MoveChild2,
/*454427*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*454430*/        OPC_MoveParent,
/*454431*/        OPC_CheckType, MVT::v4i1,
/*454433*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*454435*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*454438*/        OPC_EmitMergeInputChains1_0,
/*454439*/        OPC_EmitNodeXForm, 7, 3, // X86cmpm_imm_commute
/*454442*/        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>>, VR128X:{ *:[v4f32] }:$src1, (timm:{ *:[i8] }):$cc) - Complexity = 28
                  // Dst: (VCMPPSZ128rmi:{ *:[v4i1] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86cmpm_imm_commute:{ *:[i8] } (timm:{ *:[i8] }):$cc))
/*454455*/      /*SwitchOpcode*/ 40, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->454498
/*454458*/        OPC_RecordMemRef,
/*454459*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*454460*/        OPC_CheckFoldableChainNode,
/*454461*/        OPC_RecordChild1, // #1 = $src2
/*454462*/        OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*454464*/        OPC_CheckType, MVT::v4f32,
/*454466*/        OPC_MoveParent,
/*454467*/        OPC_RecordChild1, // #2 = $src1
/*454468*/        OPC_RecordChild2, // #3 = $cc
/*454469*/        OPC_MoveChild2,
/*454470*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*454473*/        OPC_MoveParent,
/*454474*/        OPC_CheckType, MVT::v4i1,
/*454476*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*454478*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*454481*/        OPC_EmitMergeInputChains1_0,
/*454482*/        OPC_EmitNodeXForm, 7, 3, // X86cmpm_imm_commute
/*454485*/        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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1, (timm:{ *:[i8] }):$cc) - Complexity = 28
                  // Dst: (VCMPPSZ128rmbi:{ *:[v4i1] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86cmpm_imm_commute:{ *:[i8] } (timm:{ *:[i8] }):$cc))
/*454498*/      0, // EndSwitchOpcode
/*454499*/    /*Scope*/ 82, /*->454582*/
/*454500*/      OPC_RecordChild0, // #0 = $src1
/*454501*/      OPC_CheckChild0Type, MVT::v8f32,
/*454503*/      OPC_MoveChild1,
/*454504*/      OPC_SwitchOpcode /*2 cases */, 36, TARGET_VAL(ISD::LOAD),// ->454544
/*454508*/        OPC_RecordMemRef,
/*454509*/        OPC_RecordNode, // #1 = 'ld' chained node
/*454510*/        OPC_CheckFoldableChainNode,
/*454511*/        OPC_RecordChild1, // #2 = $src2
/*454512*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*454514*/        OPC_CheckPredicate, 9, // Predicate_load
/*454516*/        OPC_MoveParent,
/*454517*/        OPC_RecordChild2, // #3 = $cc
/*454518*/        OPC_MoveChild2,
/*454519*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*454522*/        OPC_MoveParent,
/*454523*/        OPC_CheckType, MVT::v8i1,
/*454525*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*454527*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*454530*/        OPC_EmitMergeInputChains1_1,
/*454531*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (X86cmpm:{ *:[v8i1] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$cc) - Complexity = 28
                  // Dst: (VCMPPSZ256rmi:{ *:[v8i1] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/*454544*/      /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->454581
/*454547*/        OPC_RecordMemRef,
/*454548*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*454549*/        OPC_CheckFoldableChainNode,
/*454550*/        OPC_RecordChild1, // #2 = $src2
/*454551*/        OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*454553*/        OPC_MoveParent,
/*454554*/        OPC_RecordChild2, // #3 = $cc
/*454555*/        OPC_MoveChild2,
/*454556*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*454559*/        OPC_MoveParent,
/*454560*/        OPC_CheckType, MVT::v8i1,
/*454562*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*454564*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*454567*/        OPC_EmitMergeInputChains1_1,
/*454568*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (X86cmpm:{ *:[v8i1] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$cc) - Complexity = 28
                  // Dst: (VCMPPSZ256rmbi:{ *:[v8i1] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/*454581*/      0, // EndSwitchOpcode
/*454582*/    /*Scope*/ 91, /*->454674*/
/*454583*/      OPC_MoveChild0,
/*454584*/      OPC_SwitchOpcode /*2 cases */, 42, TARGET_VAL(ISD::LOAD),// ->454630
/*454588*/        OPC_RecordMemRef,
/*454589*/        OPC_RecordNode, // #0 = 'ld' chained node
/*454590*/        OPC_CheckFoldableChainNode,
/*454591*/        OPC_RecordChild1, // #1 = $src2
/*454592*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*454594*/        OPC_CheckPredicate, 9, // Predicate_load
/*454596*/        OPC_CheckType, MVT::v8f32,
/*454598*/        OPC_MoveParent,
/*454599*/        OPC_RecordChild1, // #2 = $src1
/*454600*/        OPC_RecordChild2, // #3 = $cc
/*454601*/        OPC_MoveChild2,
/*454602*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*454605*/        OPC_MoveParent,
/*454606*/        OPC_CheckType, MVT::v8i1,
/*454608*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*454610*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*454613*/        OPC_EmitMergeInputChains1_0,
/*454614*/        OPC_EmitNodeXForm, 7, 3, // X86cmpm_imm_commute
/*454617*/        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>>, VR256X:{ *:[v8f32] }:$src1, (timm:{ *:[i8] }):$cc) - Complexity = 28
                  // Dst: (VCMPPSZ256rmi:{ *:[v8i1] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86cmpm_imm_commute:{ *:[i8] } (timm:{ *:[i8] }):$cc))
/*454630*/      /*SwitchOpcode*/ 40, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->454673
/*454633*/        OPC_RecordMemRef,
/*454634*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*454635*/        OPC_CheckFoldableChainNode,
/*454636*/        OPC_RecordChild1, // #1 = $src2
/*454637*/        OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*454639*/        OPC_CheckType, MVT::v8f32,
/*454641*/        OPC_MoveParent,
/*454642*/        OPC_RecordChild1, // #2 = $src1
/*454643*/        OPC_RecordChild2, // #3 = $cc
/*454644*/        OPC_MoveChild2,
/*454645*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*454648*/        OPC_MoveParent,
/*454649*/        OPC_CheckType, MVT::v8i1,
/*454651*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*454653*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*454656*/        OPC_EmitMergeInputChains1_0,
/*454657*/        OPC_EmitNodeXForm, 7, 3, // X86cmpm_imm_commute
/*454660*/        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] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1, (timm:{ *:[i8] }):$cc) - Complexity = 28
                  // Dst: (VCMPPSZ256rmbi:{ *:[v8i1] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86cmpm_imm_commute:{ *:[i8] } (timm:{ *:[i8] }):$cc))
/*454673*/      0, // EndSwitchOpcode
/*454674*/    /*Scope*/ 70, /*->454745*/
/*454675*/      OPC_RecordChild0, // #0 = $src1
/*454676*/      OPC_CheckChild0Type, MVT::v8f32,
/*454678*/      OPC_MoveChild1,
/*454679*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*454682*/      OPC_RecordMemRef,
/*454683*/      OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*454684*/      OPC_CheckFoldableChainNode,
/*454685*/      OPC_RecordChild1, // #2 = $src2
/*454686*/      OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*454688*/      OPC_MoveParent,
/*454689*/      OPC_RecordChild2, // #3 = $cc
/*454690*/      OPC_MoveChild2,
/*454691*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*454694*/      OPC_MoveParent,
/*454695*/      OPC_CheckType, MVT::v8i1,
/*454697*/      OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*454699*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*454702*/      OPC_EmitMergeInputChains1_1,
/*454703*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v16f32, 0/*#Ops*/,  // Results = #9
/*454709*/      OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*454712*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v16f32, 3/*#Ops*/, 9, 0, 10,  // Results = #11
/*454721*/      OPC_EmitNode1, TARGET_VAL(X86::VCMPPSZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v16i1, 7/*#Ops*/, 11, 4, 5, 6, 7, 8, 3,  // Results = #12
/*454734*/      OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*454737*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                    MVT::v8i1, 2/*#Ops*/, 12, 13, 
                // Src: (X86cmpm:{ *:[v8i1] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$cc) - Complexity = 28
                // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VCMPPSZrmbi:{ *:[v16i1] } (INSERT_SUBREG:{ *:[v16f32] } (IMPLICIT_DEF:{ *:[v16f32] }), VR256X:{ *:[v8f32] }:$src1, sub_ymm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc), VK8:{ *:[i32] })
/*454745*/    /*Scope*/ 73, /*->454819*/
/*454746*/      OPC_MoveChild0,
/*454747*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*454750*/      OPC_RecordMemRef,
/*454751*/      OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*454752*/      OPC_CheckFoldableChainNode,
/*454753*/      OPC_RecordChild1, // #1 = $src2
/*454754*/      OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*454756*/      OPC_CheckType, MVT::v8f32,
/*454758*/      OPC_MoveParent,
/*454759*/      OPC_RecordChild1, // #2 = $src1
/*454760*/      OPC_RecordChild2, // #3 = $cc
/*454761*/      OPC_MoveChild2,
/*454762*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*454765*/      OPC_MoveParent,
/*454766*/      OPC_CheckType, MVT::v8i1,
/*454768*/      OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*454770*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*454773*/      OPC_EmitMergeInputChains1_0,
/*454774*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v16f32, 0/*#Ops*/,  // Results = #9
/*454780*/      OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*454783*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v16f32, 3/*#Ops*/, 9, 2, 10,  // Results = #11
/*454792*/      OPC_EmitNodeXForm, 7, 3, // X86cmpm_imm_commute
/*454795*/      OPC_EmitNode1, TARGET_VAL(X86::VCMPPSZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v16i1, 7/*#Ops*/, 11, 4, 5, 6, 7, 8, 12,  // Results = #13
/*454808*/      OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*454811*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                    MVT::v8i1, 2/*#Ops*/, 13, 14, 
                // Src: (X86cmpm:{ *:[v8i1] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1, (timm:{ *:[i8] }):$cc) - Complexity = 28
                // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VCMPPSZrmbi:{ *:[v16i1] } (INSERT_SUBREG:{ *:[v16f32] } (IMPLICIT_DEF:{ *:[v16f32] }), VR256X:{ *:[v8f32] }:$src1, sub_ymm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (X86cmpm_imm_commute:{ *:[i8] } (timm:{ *:[i8] }):$cc)), VK8:{ *:[i32] })
/*454819*/    /*Scope*/ 70, /*->454890*/
/*454820*/      OPC_RecordChild0, // #0 = $src1
/*454821*/      OPC_CheckChild0Type, MVT::v4f32,
/*454823*/      OPC_MoveChild1,
/*454824*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*454827*/      OPC_RecordMemRef,
/*454828*/      OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*454829*/      OPC_CheckFoldableChainNode,
/*454830*/      OPC_RecordChild1, // #2 = $src2
/*454831*/      OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*454833*/      OPC_MoveParent,
/*454834*/      OPC_RecordChild2, // #3 = $cc
/*454835*/      OPC_MoveChild2,
/*454836*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*454839*/      OPC_MoveParent,
/*454840*/      OPC_CheckType, MVT::v4i1,
/*454842*/      OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*454844*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*454847*/      OPC_EmitMergeInputChains1_1,
/*454848*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v16f32, 0/*#Ops*/,  // Results = #9
/*454854*/      OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*454857*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v16f32, 3/*#Ops*/, 9, 0, 10,  // Results = #11
/*454866*/      OPC_EmitNode1, TARGET_VAL(X86::VCMPPSZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v16i1, 7/*#Ops*/, 11, 4, 5, 6, 7, 8, 3,  // Results = #12
/*454879*/      OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*454882*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                    MVT::v4i1, 2/*#Ops*/, 12, 13, 
                // Src: (X86cmpm:{ *:[v4i1] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$cc) - Complexity = 28
                // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VCMPPSZrmbi:{ *:[v16i1] } (INSERT_SUBREG:{ *:[v16f32] } (IMPLICIT_DEF:{ *:[v16f32] }), VR128X:{ *:[v4f32] }:$src1, sub_xmm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc), VK4:{ *:[i32] })
/*454890*/    /*Scope*/ 73, /*->454964*/
/*454891*/      OPC_MoveChild0,
/*454892*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*454895*/      OPC_RecordMemRef,
/*454896*/      OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*454897*/      OPC_CheckFoldableChainNode,
/*454898*/      OPC_RecordChild1, // #1 = $src2
/*454899*/      OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*454901*/      OPC_CheckType, MVT::v4f32,
/*454903*/      OPC_MoveParent,
/*454904*/      OPC_RecordChild1, // #2 = $src1
/*454905*/      OPC_RecordChild2, // #3 = $cc
/*454906*/      OPC_MoveChild2,
/*454907*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*454910*/      OPC_MoveParent,
/*454911*/      OPC_CheckType, MVT::v4i1,
/*454913*/      OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*454915*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*454918*/      OPC_EmitMergeInputChains1_0,
/*454919*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v16f32, 0/*#Ops*/,  // Results = #9
/*454925*/      OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*454928*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v16f32, 3/*#Ops*/, 9, 2, 10,  // Results = #11
/*454937*/      OPC_EmitNodeXForm, 7, 3, // X86cmpm_imm_commute
/*454940*/      OPC_EmitNode1, TARGET_VAL(X86::VCMPPSZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v16i1, 7/*#Ops*/, 11, 4, 5, 6, 7, 8, 12,  // Results = #13
/*454953*/      OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*454956*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                    MVT::v4i1, 2/*#Ops*/, 13, 14, 
                // Src: (X86cmpm:{ *:[v4i1] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1, (timm:{ *:[i8] }):$cc) - Complexity = 28
                // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VCMPPSZrmbi:{ *:[v16i1] } (INSERT_SUBREG:{ *:[v16f32] } (IMPLICIT_DEF:{ *:[v16f32] }), VR128X:{ *:[v4f32] }:$src1, sub_xmm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (X86cmpm_imm_commute:{ *:[i8] } (timm:{ *:[i8] }):$cc)), VK4:{ *:[i32] })
/*454964*/    /*Scope*/ 70, /*->455035*/
/*454965*/      OPC_RecordChild0, // #0 = $src1
/*454966*/      OPC_CheckChild0Type, MVT::v4f64,
/*454968*/      OPC_MoveChild1,
/*454969*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*454972*/      OPC_RecordMemRef,
/*454973*/      OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*454974*/      OPC_CheckFoldableChainNode,
/*454975*/      OPC_RecordChild1, // #2 = $src2
/*454976*/      OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*454978*/      OPC_MoveParent,
/*454979*/      OPC_RecordChild2, // #3 = $cc
/*454980*/      OPC_MoveChild2,
/*454981*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*454984*/      OPC_MoveParent,
/*454985*/      OPC_CheckType, MVT::v4i1,
/*454987*/      OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*454989*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*454992*/      OPC_EmitMergeInputChains1_1,
/*454993*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v8f64, 0/*#Ops*/,  // Results = #9
/*454999*/      OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*455002*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v8f64, 3/*#Ops*/, 9, 0, 10,  // Results = #11
/*455011*/      OPC_EmitNode1, TARGET_VAL(X86::VCMPPDZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i1, 7/*#Ops*/, 11, 4, 5, 6, 7, 8, 3,  // Results = #12
/*455024*/      OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*455027*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                    MVT::v4i1, 2/*#Ops*/, 12, 13, 
                // Src: (X86cmpm:{ *:[v4i1] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$cc) - Complexity = 28
                // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VCMPPDZrmbi:{ *:[v8i1] } (INSERT_SUBREG:{ *:[v8f64] } (IMPLICIT_DEF:{ *:[v8f64] }), VR256X:{ *:[v4f64] }:$src1, sub_ymm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc), VK4:{ *:[i32] })
/*455035*/    /*Scope*/ 73, /*->455109*/
/*455036*/      OPC_MoveChild0,
/*455037*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*455040*/      OPC_RecordMemRef,
/*455041*/      OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*455042*/      OPC_CheckFoldableChainNode,
/*455043*/      OPC_RecordChild1, // #1 = $src2
/*455044*/      OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*455046*/      OPC_CheckType, MVT::v4f64,
/*455048*/      OPC_MoveParent,
/*455049*/      OPC_RecordChild1, // #2 = $src1
/*455050*/      OPC_RecordChild2, // #3 = $cc
/*455051*/      OPC_MoveChild2,
/*455052*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*455055*/      OPC_MoveParent,
/*455056*/      OPC_CheckType, MVT::v4i1,
/*455058*/      OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*455060*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*455063*/      OPC_EmitMergeInputChains1_0,
/*455064*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v8f64, 0/*#Ops*/,  // Results = #9
/*455070*/      OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*455073*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v8f64, 3/*#Ops*/, 9, 2, 10,  // Results = #11
/*455082*/      OPC_EmitNodeXForm, 7, 3, // X86cmpm_imm_commute
/*455085*/      OPC_EmitNode1, TARGET_VAL(X86::VCMPPDZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i1, 7/*#Ops*/, 11, 4, 5, 6, 7, 8, 12,  // Results = #13
/*455098*/      OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*455101*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                    MVT::v4i1, 2/*#Ops*/, 13, 14, 
                // Src: (X86cmpm:{ *:[v4i1] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1, (timm:{ *:[i8] }):$cc) - Complexity = 28
                // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VCMPPDZrmbi:{ *:[v8i1] } (INSERT_SUBREG:{ *:[v8f64] } (IMPLICIT_DEF:{ *:[v8f64] }), VR256X:{ *:[v4f64] }:$src1, sub_ymm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (X86cmpm_imm_commute:{ *:[i8] } (timm:{ *:[i8] }):$cc)), VK4:{ *:[i32] })
/*455109*/    /*Scope*/ 70, /*->455180*/
/*455110*/      OPC_RecordChild0, // #0 = $src1
/*455111*/      OPC_CheckChild0Type, MVT::v2f64,
/*455113*/      OPC_MoveChild1,
/*455114*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*455117*/      OPC_RecordMemRef,
/*455118*/      OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*455119*/      OPC_CheckFoldableChainNode,
/*455120*/      OPC_RecordChild1, // #2 = $src2
/*455121*/      OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*455123*/      OPC_MoveParent,
/*455124*/      OPC_RecordChild2, // #3 = $cc
/*455125*/      OPC_MoveChild2,
/*455126*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*455129*/      OPC_MoveParent,
/*455130*/      OPC_CheckType, MVT::v2i1,
/*455132*/      OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*455134*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*455137*/      OPC_EmitMergeInputChains1_1,
/*455138*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v8f64, 0/*#Ops*/,  // Results = #9
/*455144*/      OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*455147*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v8f64, 3/*#Ops*/, 9, 0, 10,  // Results = #11
/*455156*/      OPC_EmitNode1, TARGET_VAL(X86::VCMPPDZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i1, 7/*#Ops*/, 11, 4, 5, 6, 7, 8, 3,  // Results = #12
/*455169*/      OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/*455172*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                    MVT::v2i1, 2/*#Ops*/, 12, 13, 
                // Src: (X86cmpm:{ *:[v2i1] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$cc) - Complexity = 28
                // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (VCMPPDZrmbi:{ *:[v8i1] } (INSERT_SUBREG:{ *:[v8f64] } (IMPLICIT_DEF:{ *:[v8f64] }), VR128X:{ *:[v2f64] }:$src1, sub_xmm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc), VK2:{ *:[i32] })
/*455180*/    /*Scope*/ 73, /*->455254*/
/*455181*/      OPC_MoveChild0,
/*455182*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*455185*/      OPC_RecordMemRef,
/*455186*/      OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*455187*/      OPC_CheckFoldableChainNode,
/*455188*/      OPC_RecordChild1, // #1 = $src2
/*455189*/      OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*455191*/      OPC_CheckType, MVT::v2f64,
/*455193*/      OPC_MoveParent,
/*455194*/      OPC_RecordChild1, // #2 = $src1
/*455195*/      OPC_RecordChild2, // #3 = $cc
/*455196*/      OPC_MoveChild2,
/*455197*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*455200*/      OPC_MoveParent,
/*455201*/      OPC_CheckType, MVT::v2i1,
/*455203*/      OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*455205*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*455208*/      OPC_EmitMergeInputChains1_0,
/*455209*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                    MVT::v8f64, 0/*#Ops*/,  // Results = #9
/*455215*/      OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*455218*/      OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                    MVT::v8f64, 3/*#Ops*/, 9, 2, 10,  // Results = #11
/*455227*/      OPC_EmitNodeXForm, 7, 3, // X86cmpm_imm_commute
/*455230*/      OPC_EmitNode1, TARGET_VAL(X86::VCMPPDZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i1, 7/*#Ops*/, 11, 4, 5, 6, 7, 8, 12,  // Results = #13
/*455243*/      OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/*455246*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                    MVT::v2i1, 2/*#Ops*/, 13, 14, 
                // Src: (X86cmpm:{ *:[v2i1] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1, (timm:{ *:[i8] }):$cc) - Complexity = 28
                // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (VCMPPDZrmbi:{ *:[v8i1] } (INSERT_SUBREG:{ *:[v8f64] } (IMPLICIT_DEF:{ *:[v8f64] }), VR128X:{ *:[v2f64] }:$src1, sub_xmm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (X86cmpm_imm_commute:{ *:[i8] } (timm:{ *:[i8] }):$cc)), VK2:{ *:[i32] })
/*455254*/    /*Scope*/ 5|128,3/*389*/, /*->455645*/
/*455256*/      OPC_RecordChild0, // #0 = $src1
/*455257*/      OPC_Scope, 22, /*->455281*/ // 6 children in Scope
/*455259*/        OPC_CheckChild0Type, MVT::v8f64,
/*455261*/        OPC_RecordChild1, // #1 = $src2
/*455262*/        OPC_RecordChild2, // #2 = $cc
/*455263*/        OPC_MoveChild2,
/*455264*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*455267*/        OPC_MoveParent,
/*455268*/        OPC_CheckType, MVT::v8i1,
/*455270*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*455272*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZrri), 0,
                      MVT::v8i1, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86cmpm:{ *:[v8i1] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i8] }):$cc) - Complexity = 6
                  // Dst: (VCMPPDZrri:{ *:[v8i1] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i8] }):$cc)
/*455281*/      /*Scope*/ 84, /*->455366*/
/*455282*/        OPC_CheckChild0Type, MVT::v2f64,
/*455284*/        OPC_RecordChild1, // #1 = $src2
/*455285*/        OPC_RecordChild2, // #2 = $cc
/*455286*/        OPC_MoveChild2,
/*455287*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*455290*/        OPC_MoveParent,
/*455291*/        OPC_CheckType, MVT::v2i1,
/*455293*/        OPC_Scope, 11, /*->455306*/ // 2 children in Scope
/*455295*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*455297*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZ128rri), 0,
                        MVT::v2i1, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86cmpm:{ *:[v2i1] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i8] }):$cc) - Complexity = 6
                    // Dst: (VCMPPDZ128rri:{ *:[v2i1] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i8] }):$cc)
/*455306*/        /*Scope*/ 58, /*->455365*/
/*455307*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*455309*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8f64, 0/*#Ops*/,  // Results = #3
/*455315*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*455318*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8f64, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/*455327*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8f64, 0/*#Ops*/,  // Results = #6
/*455333*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*455336*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8f64, 3/*#Ops*/, 6, 1, 7,  // Results = #8
/*455345*/          OPC_EmitNode1, TARGET_VAL(X86::VCMPPDZrri), 0,
                        MVT::v8i1, 3/*#Ops*/, 5, 8, 2,  // Results = #9
/*455354*/          OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/*455357*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2i1, 2/*#Ops*/, 9, 10, 
                    // Src: (X86cmpm:{ *:[v2i1] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[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] }), (timm:{ *:[i8] }):$cc), VK2:{ *:[i32] })
/*455365*/        0, /*End of Scope*/
/*455366*/      /*Scope*/ 84, /*->455451*/
/*455367*/        OPC_CheckChild0Type, MVT::v4f64,
/*455369*/        OPC_RecordChild1, // #1 = $src2
/*455370*/        OPC_RecordChild2, // #2 = $cc
/*455371*/        OPC_MoveChild2,
/*455372*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*455375*/        OPC_MoveParent,
/*455376*/        OPC_CheckType, MVT::v4i1,
/*455378*/        OPC_Scope, 11, /*->455391*/ // 2 children in Scope
/*455380*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*455382*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZ256rri), 0,
                        MVT::v4i1, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86cmpm:{ *:[v4i1] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (timm:{ *:[i8] }):$cc) - Complexity = 6
                    // Dst: (VCMPPDZ256rri:{ *:[v4i1] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (timm:{ *:[i8] }):$cc)
/*455391*/        /*Scope*/ 58, /*->455450*/
/*455392*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*455394*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8f64, 0/*#Ops*/,  // Results = #3
/*455400*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*455403*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8f64, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/*455412*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8f64, 0/*#Ops*/,  // Results = #6
/*455418*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*455421*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8f64, 3/*#Ops*/, 6, 1, 7,  // Results = #8
/*455430*/          OPC_EmitNode1, TARGET_VAL(X86::VCMPPDZrri), 0,
                        MVT::v8i1, 3/*#Ops*/, 5, 8, 2,  // Results = #9
/*455439*/          OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*455442*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i1, 2/*#Ops*/, 9, 10, 
                    // Src: (X86cmpm:{ *:[v4i1] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (timm:{ *:[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] }), (timm:{ *:[i8] }):$cc), VK4:{ *:[i32] })
/*455450*/        0, /*End of Scope*/
/*455451*/      /*Scope*/ 22, /*->455474*/
/*455452*/        OPC_CheckChild0Type, MVT::v16f32,
/*455454*/        OPC_RecordChild1, // #1 = $src2
/*455455*/        OPC_RecordChild2, // #2 = $cc
/*455456*/        OPC_MoveChild2,
/*455457*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*455460*/        OPC_MoveParent,
/*455461*/        OPC_CheckType, MVT::v16i1,
/*455463*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*455465*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZrri), 0,
                      MVT::v16i1, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86cmpm:{ *:[v16i1] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i8] }):$cc) - Complexity = 6
                  // Dst: (VCMPPSZrri:{ *:[v16i1] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i8] }):$cc)
/*455474*/      /*Scope*/ 84, /*->455559*/
/*455475*/        OPC_CheckChild0Type, MVT::v4f32,
/*455477*/        OPC_RecordChild1, // #1 = $src2
/*455478*/        OPC_RecordChild2, // #2 = $cc
/*455479*/        OPC_MoveChild2,
/*455480*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*455483*/        OPC_MoveParent,
/*455484*/        OPC_CheckType, MVT::v4i1,
/*455486*/        OPC_Scope, 11, /*->455499*/ // 2 children in Scope
/*455488*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*455490*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZ128rri), 0,
                        MVT::v4i1, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86cmpm:{ *:[v4i1] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i8] }):$cc) - Complexity = 6
                    // Dst: (VCMPPSZ128rri:{ *:[v4i1] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i8] }):$cc)
/*455499*/        /*Scope*/ 58, /*->455558*/
/*455500*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*455502*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16f32, 0/*#Ops*/,  // Results = #3
/*455508*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*455511*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16f32, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/*455520*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16f32, 0/*#Ops*/,  // Results = #6
/*455526*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*455529*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16f32, 3/*#Ops*/, 6, 1, 7,  // Results = #8
/*455538*/          OPC_EmitNode1, TARGET_VAL(X86::VCMPPSZrri), 0,
                        MVT::v16i1, 3/*#Ops*/, 5, 8, 2,  // Results = #9
/*455547*/          OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*455550*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i1, 2/*#Ops*/, 9, 10, 
                    // Src: (X86cmpm:{ *:[v4i1] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[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] }), (timm:{ *:[i8] }):$cc), VK4:{ *:[i32] })
/*455558*/        0, /*End of Scope*/
/*455559*/      /*Scope*/ 84, /*->455644*/
/*455560*/        OPC_CheckChild0Type, MVT::v8f32,
/*455562*/        OPC_RecordChild1, // #1 = $src2
/*455563*/        OPC_RecordChild2, // #2 = $cc
/*455564*/        OPC_MoveChild2,
/*455565*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*455568*/        OPC_MoveParent,
/*455569*/        OPC_CheckType, MVT::v8i1,
/*455571*/        OPC_Scope, 11, /*->455584*/ // 2 children in Scope
/*455573*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*455575*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZ256rri), 0,
                        MVT::v8i1, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86cmpm:{ *:[v8i1] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (timm:{ *:[i8] }):$cc) - Complexity = 6
                    // Dst: (VCMPPSZ256rri:{ *:[v8i1] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (timm:{ *:[i8] }):$cc)
/*455584*/        /*Scope*/ 58, /*->455643*/
/*455585*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*455587*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16f32, 0/*#Ops*/,  // Results = #3
/*455593*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*455596*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16f32, 3/*#Ops*/, 3, 0, 4,  // Results = #5
/*455605*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16f32, 0/*#Ops*/,  // Results = #6
/*455611*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*455614*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16f32, 3/*#Ops*/, 6, 1, 7,  // Results = #8
/*455623*/          OPC_EmitNode1, TARGET_VAL(X86::VCMPPSZrri), 0,
                        MVT::v16i1, 3/*#Ops*/, 5, 8, 2,  // Results = #9
/*455632*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*455635*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 9, 10, 
                    // Src: (X86cmpm:{ *:[v8i1] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (timm:{ *:[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] }), (timm:{ *:[i8] }):$cc), VK8:{ *:[i32] })
/*455643*/        0, /*End of Scope*/
/*455644*/      0, /*End of Scope*/
/*455645*/    0, /*End of Scope*/
/*455646*/  /*SwitchOpcode*/ 7|128,4/*519*/, TARGET_VAL(X86ISD::VFPCLASS),// ->456169
/*455650*/    OPC_Scope, 5|128,3/*389*/, /*->456042*/ // 2 children in Scope
/*455653*/      OPC_MoveChild0,
/*455654*/      OPC_SwitchOpcode /*2 cases */, 58|128,1/*186*/, TARGET_VAL(ISD::LOAD),// ->455845
/*455659*/        OPC_RecordMemRef,
/*455660*/        OPC_RecordNode, // #0 = 'ld' chained node
/*455661*/        OPC_CheckFoldableChainNode,
/*455662*/        OPC_RecordChild1, // #1 = $src1
/*455663*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*455665*/        OPC_CheckPredicate, 9, // Predicate_load
/*455667*/        OPC_Scope, 27, /*->455696*/ // 6 children in Scope
/*455669*/          OPC_MoveParent,
/*455670*/          OPC_RecordChild1, // #2 = $src2
/*455671*/          OPC_MoveChild1,
/*455672*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*455675*/          OPC_MoveParent,
/*455676*/          OPC_CheckType, MVT::v16i1,
/*455678*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*455680*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*455683*/          OPC_EmitMergeInputChains1_0,
/*455684*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i1, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86Vfpclass:{ *:[v16i1] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                    // Dst: (VFPCLASSPSZrm:{ *:[v16i1] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*455696*/        /*Scope*/ 29, /*->455726*/
/*455697*/          OPC_CheckType, MVT::v4f32,
/*455699*/          OPC_MoveParent,
/*455700*/          OPC_RecordChild1, // #2 = $src2
/*455701*/          OPC_MoveChild1,
/*455702*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*455705*/          OPC_MoveParent,
/*455706*/          OPC_CheckType, MVT::v4i1,
/*455708*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*455710*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*455713*/          OPC_EmitMergeInputChains1_0,
/*455714*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPSZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i1, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86Vfpclass:{ *:[v4i1] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                    // Dst: (VFPCLASSPSZ128rm:{ *:[v4i1] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*455726*/        /*Scope*/ 29, /*->455756*/
/*455727*/          OPC_CheckType, MVT::v8f32,
/*455729*/          OPC_MoveParent,
/*455730*/          OPC_RecordChild1, // #2 = $src2
/*455731*/          OPC_MoveChild1,
/*455732*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*455735*/          OPC_MoveParent,
/*455736*/          OPC_CheckType, MVT::v8i1,
/*455738*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*455740*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*455743*/          OPC_EmitMergeInputChains1_0,
/*455744*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPSZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86Vfpclass:{ *:[v8i1] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                    // Dst: (VFPCLASSPSZ256rm:{ *:[v8i1] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*455756*/        /*Scope*/ 29, /*->455786*/
/*455757*/          OPC_CheckType, MVT::v8f64,
/*455759*/          OPC_MoveParent,
/*455760*/          OPC_RecordChild1, // #2 = $src2
/*455761*/          OPC_MoveChild1,
/*455762*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*455765*/          OPC_MoveParent,
/*455766*/          OPC_CheckType, MVT::v8i1,
/*455768*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*455770*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*455773*/          OPC_EmitMergeInputChains1_0,
/*455774*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i1, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86Vfpclass:{ *:[v8i1] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                    // Dst: (VFPCLASSPDZrm:{ *:[v8i1] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*455786*/        /*Scope*/ 27, /*->455814*/
/*455787*/          OPC_MoveParent,
/*455788*/          OPC_RecordChild1, // #2 = $src2
/*455789*/          OPC_MoveChild1,
/*455790*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*455793*/          OPC_MoveParent,
/*455794*/          OPC_CheckType, MVT::v2i1,
/*455796*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*455798*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*455801*/          OPC_EmitMergeInputChains1_0,
/*455802*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i1, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86Vfpclass:{ *:[v2i1] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                    // Dst: (VFPCLASSPDZ128rm:{ *:[v2i1] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*455814*/        /*Scope*/ 29, /*->455844*/
/*455815*/          OPC_CheckType, MVT::v4f64,
/*455817*/          OPC_MoveParent,
/*455818*/          OPC_RecordChild1, // #2 = $src2
/*455819*/          OPC_MoveChild1,
/*455820*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*455823*/          OPC_MoveParent,
/*455824*/          OPC_CheckType, MVT::v4i1,
/*455826*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*455828*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*455831*/          OPC_EmitMergeInputChains1_0,
/*455832*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i1, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86Vfpclass:{ *:[v4i1] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                    // Dst: (VFPCLASSPDZ256rm:{ *:[v4i1] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*455844*/        0, /*End of Scope*/
/*455845*/      /*SwitchOpcode*/ 64|128,1/*192*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->456041
/*455849*/        OPC_RecordMemRef,
/*455850*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*455851*/        OPC_CheckFoldableChainNode,
/*455852*/        OPC_RecordChild1, // #1 = $src1
/*455853*/        OPC_Scope, 92, /*->455947*/ // 2 children in Scope
/*455855*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*455857*/          OPC_Scope, 27, /*->455886*/ // 3 children in Scope
/*455859*/            OPC_MoveParent,
/*455860*/            OPC_RecordChild1, // #2 = $src2
/*455861*/            OPC_MoveChild1,
/*455862*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*455865*/            OPC_MoveParent,
/*455866*/            OPC_CheckType, MVT::v16i1,
/*455868*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*455870*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*455873*/            OPC_EmitMergeInputChains1_0,
/*455874*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPSZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i1, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86Vfpclass:{ *:[v16i1] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                      // Dst: (VFPCLASSPSZrmb:{ *:[v16i1] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*455886*/          /*Scope*/ 29, /*->455916*/
/*455887*/            OPC_CheckType, MVT::v4f32,
/*455889*/            OPC_MoveParent,
/*455890*/            OPC_RecordChild1, // #2 = $src2
/*455891*/            OPC_MoveChild1,
/*455892*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*455895*/            OPC_MoveParent,
/*455896*/            OPC_CheckType, MVT::v4i1,
/*455898*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*455900*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*455903*/            OPC_EmitMergeInputChains1_0,
/*455904*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPSZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i1, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86Vfpclass:{ *:[v4i1] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                      // Dst: (VFPCLASSPSZ128rmb:{ *:[v4i1] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*455916*/          /*Scope*/ 29, /*->455946*/
/*455917*/            OPC_CheckType, MVT::v8f32,
/*455919*/            OPC_MoveParent,
/*455920*/            OPC_RecordChild1, // #2 = $src2
/*455921*/            OPC_MoveChild1,
/*455922*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*455925*/            OPC_MoveParent,
/*455926*/            OPC_CheckType, MVT::v8i1,
/*455928*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*455930*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*455933*/            OPC_EmitMergeInputChains1_0,
/*455934*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPSZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i1, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86Vfpclass:{ *:[v8i1] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                      // Dst: (VFPCLASSPSZ256rmb:{ *:[v8i1] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*455946*/          0, /*End of Scope*/
/*455947*/        /*Scope*/ 92, /*->456040*/
/*455948*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*455950*/          OPC_Scope, 29, /*->455981*/ // 3 children in Scope
/*455952*/            OPC_CheckType, MVT::v8f64,
/*455954*/            OPC_MoveParent,
/*455955*/            OPC_RecordChild1, // #2 = $src2
/*455956*/            OPC_MoveChild1,
/*455957*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*455960*/            OPC_MoveParent,
/*455961*/            OPC_CheckType, MVT::v8i1,
/*455963*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*455965*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*455968*/            OPC_EmitMergeInputChains1_0,
/*455969*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i1, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86Vfpclass:{ *:[v8i1] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                      // Dst: (VFPCLASSPDZrmb:{ *:[v8i1] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*455981*/          /*Scope*/ 27, /*->456009*/
/*455982*/            OPC_MoveParent,
/*455983*/            OPC_RecordChild1, // #2 = $src2
/*455984*/            OPC_MoveChild1,
/*455985*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*455988*/            OPC_MoveParent,
/*455989*/            OPC_CheckType, MVT::v2i1,
/*455991*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*455993*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*455996*/            OPC_EmitMergeInputChains1_0,
/*455997*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i1, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86Vfpclass:{ *:[v2i1] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                      // Dst: (VFPCLASSPDZ128rmb:{ *:[v2i1] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*456009*/          /*Scope*/ 29, /*->456039*/
/*456010*/            OPC_CheckType, MVT::v4f64,
/*456012*/            OPC_MoveParent,
/*456013*/            OPC_RecordChild1, // #2 = $src2
/*456014*/            OPC_MoveChild1,
/*456015*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*456018*/            OPC_MoveParent,
/*456019*/            OPC_CheckType, MVT::v4i1,
/*456021*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*456023*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*456026*/            OPC_EmitMergeInputChains1_0,
/*456027*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i1, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86Vfpclass:{ *:[v4i1] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                      // Dst: (VFPCLASSPDZ256rmb:{ *:[v4i1] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*456039*/          0, /*End of Scope*/
/*456040*/        0, /*End of Scope*/
/*456041*/      0, // EndSwitchOpcode
/*456042*/    /*Scope*/ 125, /*->456168*/
/*456043*/      OPC_RecordChild0, // #0 = $src1
/*456044*/      OPC_Scope, 18, /*->456064*/ // 6 children in Scope
/*456046*/        OPC_RecordChild1, // #1 = $src2
/*456047*/        OPC_MoveChild1,
/*456048*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*456051*/        OPC_MoveParent,
/*456052*/        OPC_CheckType, MVT::v16i1,
/*456054*/        OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*456056*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPSZrr), 0,
                      MVT::v16i1, 2/*#Ops*/, 0, 1, 
                  // Src: (X86Vfpclass:{ *:[v16i1] } VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 6
                  // Dst: (VFPCLASSPSZrr:{ *:[v16i1] } VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*456064*/      /*Scope*/ 20, /*->456085*/
/*456065*/        OPC_CheckChild0Type, MVT::v4f32,
/*456067*/        OPC_RecordChild1, // #1 = $src2
/*456068*/        OPC_MoveChild1,
/*456069*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*456072*/        OPC_MoveParent,
/*456073*/        OPC_CheckType, MVT::v4i1,
/*456075*/        OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*456077*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPSZ128rr), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1, 
                  // Src: (X86Vfpclass:{ *:[v4i1] } VR128X:{ *:[v4f32] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 6
                  // Dst: (VFPCLASSPSZ128rr:{ *:[v4i1] } VR128X:{ *:[v4f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*456085*/      /*Scope*/ 20, /*->456106*/
/*456086*/        OPC_CheckChild0Type, MVT::v8f32,
/*456088*/        OPC_RecordChild1, // #1 = $src2
/*456089*/        OPC_MoveChild1,
/*456090*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*456093*/        OPC_MoveParent,
/*456094*/        OPC_CheckType, MVT::v8i1,
/*456096*/        OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*456098*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPSZ256rr), 0,
                      MVT::v8i1, 2/*#Ops*/, 0, 1, 
                  // Src: (X86Vfpclass:{ *:[v8i1] } VR256X:{ *:[v8f32] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 6
                  // Dst: (VFPCLASSPSZ256rr:{ *:[v8i1] } VR256X:{ *:[v8f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*456106*/      /*Scope*/ 20, /*->456127*/
/*456107*/        OPC_CheckChild0Type, MVT::v8f64,
/*456109*/        OPC_RecordChild1, // #1 = $src2
/*456110*/        OPC_MoveChild1,
/*456111*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*456114*/        OPC_MoveParent,
/*456115*/        OPC_CheckType, MVT::v8i1,
/*456117*/        OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*456119*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPDZrr), 0,
                      MVT::v8i1, 2/*#Ops*/, 0, 1, 
                  // Src: (X86Vfpclass:{ *:[v8i1] } VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 6
                  // Dst: (VFPCLASSPDZrr:{ *:[v8i1] } VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i32] }):$src2)
/*456127*/      /*Scope*/ 18, /*->456146*/
/*456128*/        OPC_RecordChild1, // #1 = $src2
/*456129*/        OPC_MoveChild1,
/*456130*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*456133*/        OPC_MoveParent,
/*456134*/        OPC_CheckType, MVT::v2i1,
/*456136*/        OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*456138*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPDZ128rr), 0,
                      MVT::v2i1, 2/*#Ops*/, 0, 1, 
                  // Src: (X86Vfpclass:{ *:[v2i1] } VR128X:{ *:[v2f64] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 6
                  // Dst: (VFPCLASSPDZ128rr:{ *:[v2i1] } VR128X:{ *:[v2f64] }:$src1, (timm:{ *:[i32] }):$src2)
/*456146*/      /*Scope*/ 20, /*->456167*/
/*456147*/        OPC_CheckChild0Type, MVT::v4f64,
/*456149*/        OPC_RecordChild1, // #1 = $src2
/*456150*/        OPC_MoveChild1,
/*456151*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*456154*/        OPC_MoveParent,
/*456155*/        OPC_CheckType, MVT::v4i1,
/*456157*/        OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*456159*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSPDZ256rr), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1, 
                  // Src: (X86Vfpclass:{ *:[v4i1] } VR256X:{ *:[v4f64] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 6
                  // Dst: (VFPCLASSPDZ256rr:{ *:[v4i1] } VR256X:{ *:[v4f64] }:$src1, (timm:{ *:[i32] }):$src2)
/*456167*/      0, /*End of Scope*/
/*456168*/    0, /*End of Scope*/
/*456169*/  /*SwitchOpcode*/ 23|128,2/*279*/, TARGET_VAL(X86ISD::MULTISHIFT),// ->456452
/*456173*/    OPC_RecordChild0, // #0 = $src1
/*456174*/    OPC_Scope, 91, /*->456267*/ // 3 children in Scope
/*456176*/      OPC_CheckChild0Type, MVT::v64i8,
/*456178*/      OPC_Scope, 72, /*->456252*/ // 2 children in Scope
/*456180*/        OPC_MoveChild1,
/*456181*/        OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::BITCAST),// ->456219
/*456185*/          OPC_MoveChild0,
/*456186*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*456189*/          OPC_RecordMemRef,
/*456190*/          OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*456191*/          OPC_CheckFoldableChainNode,
/*456192*/          OPC_RecordChild1, // #2 = $src2
/*456193*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*456195*/          OPC_CheckType, MVT::v8i64,
/*456197*/          OPC_MoveParent,
/*456198*/          OPC_MoveParent,
/*456199*/          OPC_CheckType, MVT::v64i8,
/*456201*/          OPC_CheckPatternPredicate, 187, // (Subtarget->hasVBMI())
/*456203*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*456206*/          OPC_EmitMergeInputChains1_1,
/*456207*/          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] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>)) - Complexity = 28
                    // Dst: (VPMULTISHIFTQBZrmb:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*456219*/        /*SwitchOpcode*/ 29, TARGET_VAL(ISD::LOAD),// ->456251
/*456222*/          OPC_RecordMemRef,
/*456223*/          OPC_RecordNode, // #1 = 'ld' chained node
/*456224*/          OPC_CheckFoldableChainNode,
/*456225*/          OPC_RecordChild1, // #2 = $src2
/*456226*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*456228*/          OPC_CheckPredicate, 9, // Predicate_load
/*456230*/          OPC_MoveParent,
/*456231*/          OPC_CheckType, MVT::v64i8,
/*456233*/          OPC_CheckPatternPredicate, 187, // (Subtarget->hasVBMI())
/*456235*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*456238*/          OPC_EmitMergeInputChains1_1,
/*456239*/          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, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPMULTISHIFTQBZrm:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*456251*/        0, // EndSwitchOpcode
/*456252*/      /*Scope*/ 13, /*->456266*/
/*456253*/        OPC_RecordChild1, // #1 = $src2
/*456254*/        OPC_CheckType, MVT::v64i8,
/*456256*/        OPC_CheckPatternPredicate, 187, // (Subtarget->hasVBMI())
/*456258*/        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)
/*456266*/      0, /*End of Scope*/
/*456267*/    /*Scope*/ 91, /*->456359*/
/*456268*/      OPC_CheckChild0Type, MVT::v32i8,
/*456270*/      OPC_Scope, 72, /*->456344*/ // 2 children in Scope
/*456272*/        OPC_MoveChild1,
/*456273*/        OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::BITCAST),// ->456311
/*456277*/          OPC_MoveChild0,
/*456278*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*456281*/          OPC_RecordMemRef,
/*456282*/          OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*456283*/          OPC_CheckFoldableChainNode,
/*456284*/          OPC_RecordChild1, // #2 = $src2
/*456285*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*456287*/          OPC_CheckType, MVT::v4i64,
/*456289*/          OPC_MoveParent,
/*456290*/          OPC_MoveParent,
/*456291*/          OPC_CheckType, MVT::v32i8,
/*456293*/          OPC_CheckPatternPredicate, 181, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*456295*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*456298*/          OPC_EmitMergeInputChains1_1,
/*456299*/          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] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>)) - Complexity = 28
                    // Dst: (VPMULTISHIFTQBZ256rmb:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*456311*/        /*SwitchOpcode*/ 29, TARGET_VAL(ISD::LOAD),// ->456343
/*456314*/          OPC_RecordMemRef,
/*456315*/          OPC_RecordNode, // #1 = 'ld' chained node
/*456316*/          OPC_CheckFoldableChainNode,
/*456317*/          OPC_RecordChild1, // #2 = $src2
/*456318*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*456320*/          OPC_CheckPredicate, 9, // Predicate_load
/*456322*/          OPC_MoveParent,
/*456323*/          OPC_CheckType, MVT::v32i8,
/*456325*/          OPC_CheckPatternPredicate, 181, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*456327*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*456330*/          OPC_EmitMergeInputChains1_1,
/*456331*/          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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPMULTISHIFTQBZ256rm:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*456343*/        0, // EndSwitchOpcode
/*456344*/      /*Scope*/ 13, /*->456358*/
/*456345*/        OPC_RecordChild1, // #1 = $src2
/*456346*/        OPC_CheckType, MVT::v32i8,
/*456348*/        OPC_CheckPatternPredicate, 181, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*456350*/        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)
/*456358*/      0, /*End of Scope*/
/*456359*/    /*Scope*/ 91, /*->456451*/
/*456360*/      OPC_CheckChild0Type, MVT::v16i8,
/*456362*/      OPC_Scope, 72, /*->456436*/ // 2 children in Scope
/*456364*/        OPC_MoveChild1,
/*456365*/        OPC_SwitchOpcode /*2 cases */, 34, TARGET_VAL(ISD::BITCAST),// ->456403
/*456369*/          OPC_MoveChild0,
/*456370*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*456373*/          OPC_RecordMemRef,
/*456374*/          OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*456375*/          OPC_CheckFoldableChainNode,
/*456376*/          OPC_RecordChild1, // #2 = $src2
/*456377*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*456379*/          OPC_CheckType, MVT::v2i64,
/*456381*/          OPC_MoveParent,
/*456382*/          OPC_MoveParent,
/*456383*/          OPC_CheckType, MVT::v16i8,
/*456385*/          OPC_CheckPatternPredicate, 181, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*456387*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*456390*/          OPC_EmitMergeInputChains1_1,
/*456391*/          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] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>)) - Complexity = 28
                    // Dst: (VPMULTISHIFTQBZ128rmb:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*456403*/        /*SwitchOpcode*/ 29, TARGET_VAL(ISD::LOAD),// ->456435
/*456406*/          OPC_RecordMemRef,
/*456407*/          OPC_RecordNode, // #1 = 'ld' chained node
/*456408*/          OPC_CheckFoldableChainNode,
/*456409*/          OPC_RecordChild1, // #2 = $src2
/*456410*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*456412*/          OPC_CheckPredicate, 9, // Predicate_load
/*456414*/          OPC_MoveParent,
/*456415*/          OPC_CheckType, MVT::v16i8,
/*456417*/          OPC_CheckPatternPredicate, 181, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*456419*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*456422*/          OPC_EmitMergeInputChains1_1,
/*456423*/          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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPMULTISHIFTQBZ128rm:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*456435*/        0, // EndSwitchOpcode
/*456436*/      /*Scope*/ 13, /*->456450*/
/*456437*/        OPC_RecordChild1, // #1 = $src2
/*456438*/        OPC_CheckType, MVT::v16i8,
/*456440*/        OPC_CheckPatternPredicate, 181, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*456442*/        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)
/*456450*/      0, /*End of Scope*/
/*456451*/    0, /*End of Scope*/
/*456452*/  /*SwitchOpcode*/ 86|128,4/*598*/, TARGET_VAL(X86ISD::VSRLI),// ->457054
/*456456*/    OPC_Scope, 102|128,2/*358*/, /*->456817*/ // 2 children in Scope
/*456459*/      OPC_MoveChild0,
/*456460*/      OPC_SwitchOpcode /*2 cases */, 69|128,1/*197*/, TARGET_VAL(ISD::LOAD),// ->456662
/*456465*/        OPC_RecordMemRef,
/*456466*/        OPC_RecordNode, // #0 = 'ld' chained node
/*456467*/        OPC_CheckFoldableChainNode,
/*456468*/        OPC_RecordChild1, // #1 = $src1
/*456469*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*456471*/        OPC_CheckPredicate, 9, // Predicate_load
/*456473*/        OPC_MoveParent,
/*456474*/        OPC_RecordChild1, // #2 = $src2
/*456475*/        OPC_MoveChild1,
/*456476*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*456479*/        OPC_MoveParent,
/*456480*/        OPC_SwitchType /*9 cases */, 18, MVT::v16i32,// ->456501
/*456483*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*456485*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*456488*/          OPC_EmitMergeInputChains1_0,
/*456489*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86vsrli:{ *:[v16i32] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPSRLDZmi:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*456501*/        /*SwitchType*/ 18, MVT::v8i32,// ->456521
/*456503*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*456505*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*456508*/          OPC_EmitMergeInputChains1_0,
/*456509*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZ256mi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86vsrli:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPSRLDZ256mi:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*456521*/        /*SwitchType*/ 18, MVT::v4i32,// ->456541
/*456523*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*456525*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*456528*/          OPC_EmitMergeInputChains1_0,
/*456529*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZ128mi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86vsrli:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPSRLDZ128mi:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*456541*/        /*SwitchType*/ 18, MVT::v8i64,// ->456561
/*456543*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*456545*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*456548*/          OPC_EmitMergeInputChains1_0,
/*456549*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86vsrli:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPSRLQZmi:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*456561*/        /*SwitchType*/ 18, MVT::v4i64,// ->456581
/*456563*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*456565*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*456568*/          OPC_EmitMergeInputChains1_0,
/*456569*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZ256mi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86vsrli:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPSRLQZ256mi:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*456581*/        /*SwitchType*/ 18, MVT::v2i64,// ->456601
/*456583*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*456585*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*456588*/          OPC_EmitMergeInputChains1_0,
/*456589*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZ128mi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86vsrli:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPSRLQZ128mi:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*456601*/        /*SwitchType*/ 18, MVT::v32i16,// ->456621
/*456603*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*456605*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*456608*/          OPC_EmitMergeInputChains1_0,
/*456609*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLWZmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86vsrli:{ *:[v32i16] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPSRLWZmi:{ *:[v32i16] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*456621*/        /*SwitchType*/ 18, MVT::v16i16,// ->456641
/*456623*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*456625*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*456628*/          OPC_EmitMergeInputChains1_0,
/*456629*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLWZ256mi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86vsrli:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPSRLWZ256mi:{ *:[v16i16] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*456641*/        /*SwitchType*/ 18, MVT::v8i16,// ->456661
/*456643*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*456645*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*456648*/          OPC_EmitMergeInputChains1_0,
/*456649*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLWZ128mi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86vsrli:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPSRLWZ128mi:{ *:[v8i16] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*456661*/        0, // EndSwitchType
/*456662*/      /*SwitchOpcode*/ 22|128,1/*150*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->456816
/*456666*/        OPC_RecordMemRef,
/*456667*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*456668*/        OPC_CheckFoldableChainNode,
/*456669*/        OPC_RecordChild1, // #1 = $src1
/*456670*/        OPC_Scope, 71, /*->456743*/ // 2 children in Scope
/*456672*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*456674*/          OPC_MoveParent,
/*456675*/          OPC_RecordChild1, // #2 = $src2
/*456676*/          OPC_MoveChild1,
/*456677*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*456680*/          OPC_MoveParent,
/*456681*/          OPC_SwitchType /*3 cases */, 18, MVT::v16i32,// ->456702
/*456684*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*456686*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*456689*/            OPC_EmitMergeInputChains1_0,
/*456690*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86vsrli:{ *:[v16i32] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPSRLDZmbi:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*456702*/          /*SwitchType*/ 18, MVT::v8i32,// ->456722
/*456704*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*456706*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*456709*/            OPC_EmitMergeInputChains1_0,
/*456710*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZ256mbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86vsrli:{ *:[v8i32] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPSRLDZ256mbi:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*456722*/          /*SwitchType*/ 18, MVT::v4i32,// ->456742
/*456724*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*456726*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*456729*/            OPC_EmitMergeInputChains1_0,
/*456730*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZ128mbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86vsrli:{ *:[v4i32] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPSRLDZ128mbi:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*456742*/          0, // EndSwitchType
/*456743*/        /*Scope*/ 71, /*->456815*/
/*456744*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*456746*/          OPC_MoveParent,
/*456747*/          OPC_RecordChild1, // #2 = $src2
/*456748*/          OPC_MoveChild1,
/*456749*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*456752*/          OPC_MoveParent,
/*456753*/          OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->456774
/*456756*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*456758*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*456761*/            OPC_EmitMergeInputChains1_0,
/*456762*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86vsrli:{ *:[v8i64] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPSRLQZmbi:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*456774*/          /*SwitchType*/ 18, MVT::v4i64,// ->456794
/*456776*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*456778*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*456781*/            OPC_EmitMergeInputChains1_0,
/*456782*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZ256mbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86vsrli:{ *:[v4i64] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPSRLQZ256mbi:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*456794*/          /*SwitchType*/ 18, MVT::v2i64,// ->456814
/*456796*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*456798*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*456801*/            OPC_EmitMergeInputChains1_0,
/*456802*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZ128mbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86vsrli:{ *:[v2i64] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPSRLQZ128mbi:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*456814*/          0, // EndSwitchType
/*456815*/        0, /*End of Scope*/
/*456816*/      0, // EndSwitchOpcode
/*456817*/    /*Scope*/ 106|128,1/*234*/, /*->457053*/
/*456819*/      OPC_RecordChild0, // #0 = $src1
/*456820*/      OPC_RecordChild1, // #1 = $src2
/*456821*/      OPC_MoveChild1,
/*456822*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*456825*/      OPC_MoveParent,
/*456826*/      OPC_SwitchType /*9 cases */, 35, MVT::v8i16,// ->456864
/*456829*/        OPC_Scope, 10, /*->456841*/ // 3 children in Scope
/*456831*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*456833*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLWri), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vsrli:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSRLWri:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (timm:{ *:[i8] }):$src2)
/*456841*/        /*Scope*/ 10, /*->456852*/
/*456842*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*456844*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PSRLWri), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vsrli:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (PSRLWri:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (timm:{ *:[i8] }):$src2)
/*456852*/        /*Scope*/ 10, /*->456863*/
/*456853*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*456855*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLWZ128ri), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vsrli:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSRLWZ128ri:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (timm:{ *:[i8] }):$src2)
/*456863*/        0, /*End of Scope*/
/*456864*/      /*SwitchType*/ 24, MVT::v16i16,// ->456890
/*456866*/        OPC_Scope, 10, /*->456878*/ // 2 children in Scope
/*456868*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*456870*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLWYri), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vsrli:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSRLWYri:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, (timm:{ *:[i8] }):$src2)
/*456878*/        /*Scope*/ 10, /*->456889*/
/*456879*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*456881*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLWZ256ri), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vsrli:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSRLWZ256ri:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (timm:{ *:[i8] }):$src2)
/*456889*/        0, /*End of Scope*/
/*456890*/      /*SwitchType*/ 35, MVT::v4i32,// ->456927
/*456892*/        OPC_Scope, 10, /*->456904*/ // 3 children in Scope
/*456894*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*456896*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDri), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vsrli:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSRLDri:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$src2)
/*456904*/        /*Scope*/ 10, /*->456915*/
/*456905*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*456907*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PSRLDri), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vsrli:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (PSRLDri:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$src2)
/*456915*/        /*Scope*/ 10, /*->456926*/
/*456916*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*456918*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZ128ri), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vsrli:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSRLDZ128ri:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$src2)
/*456926*/        0, /*End of Scope*/
/*456927*/      /*SwitchType*/ 24, MVT::v8i32,// ->456953
/*456929*/        OPC_Scope, 10, /*->456941*/ // 2 children in Scope
/*456931*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*456933*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDYri), 0,
                        MVT::v8i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vsrli:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSRLDYri:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, (timm:{ *:[i8] }):$src2)
/*456941*/        /*Scope*/ 10, /*->456952*/
/*456942*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*456944*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZ256ri), 0,
                        MVT::v8i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vsrli:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSRLDZ256ri:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (timm:{ *:[i8] }):$src2)
/*456952*/        0, /*End of Scope*/
/*456953*/      /*SwitchType*/ 35, MVT::v2i64,// ->456990
/*456955*/        OPC_Scope, 10, /*->456967*/ // 3 children in Scope
/*456957*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*456959*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQri), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vsrli:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSRLQri:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, (timm:{ *:[i8] }):$src2)
/*456967*/        /*Scope*/ 10, /*->456978*/
/*456968*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*456970*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PSRLQri), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vsrli:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (PSRLQri:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, (timm:{ *:[i8] }):$src2)
/*456978*/        /*Scope*/ 10, /*->456989*/
/*456979*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*456981*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZ128ri), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vsrli:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSRLQZ128ri:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (timm:{ *:[i8] }):$src2)
/*456989*/        0, /*End of Scope*/
/*456990*/      /*SwitchType*/ 24, MVT::v4i64,// ->457016
/*456992*/        OPC_Scope, 10, /*->457004*/ // 2 children in Scope
/*456994*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*456996*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQYri), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vsrli:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSRLQYri:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, (timm:{ *:[i8] }):$src2)
/*457004*/        /*Scope*/ 10, /*->457015*/
/*457005*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*457007*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZ256ri), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vsrli:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSRLQZ256ri:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (timm:{ *:[i8] }):$src2)
/*457015*/        0, /*End of Scope*/
/*457016*/      /*SwitchType*/ 10, MVT::v16i32,// ->457028
/*457018*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*457020*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDZri), 0,
                      MVT::v16i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86vsrli:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                  // Dst: (VPSRLDZri:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (timm:{ *:[i8] }):$src2)
/*457028*/      /*SwitchType*/ 10, MVT::v8i64,// ->457040
/*457030*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*457032*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLQZri), 0,
                      MVT::v8i64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86vsrli:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                  // Dst: (VPSRLQZri:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (timm:{ *:[i8] }):$src2)
/*457040*/      /*SwitchType*/ 10, MVT::v32i16,// ->457052
/*457042*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*457044*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLWZri), 0,
                      MVT::v32i16, 2/*#Ops*/, 0, 1, 
                  // Src: (X86vsrli:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                  // Dst: (VPSRLWZri:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (timm:{ *:[i8] }):$src2)
/*457052*/      0, // EndSwitchType
/*457053*/    0, /*End of Scope*/
/*457054*/  /*SwitchOpcode*/ 86|128,4/*598*/, TARGET_VAL(X86ISD::VSHLI),// ->457656
/*457058*/    OPC_Scope, 102|128,2/*358*/, /*->457419*/ // 2 children in Scope
/*457061*/      OPC_MoveChild0,
/*457062*/      OPC_SwitchOpcode /*2 cases */, 69|128,1/*197*/, TARGET_VAL(ISD::LOAD),// ->457264
/*457067*/        OPC_RecordMemRef,
/*457068*/        OPC_RecordNode, // #0 = 'ld' chained node
/*457069*/        OPC_CheckFoldableChainNode,
/*457070*/        OPC_RecordChild1, // #1 = $src1
/*457071*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*457073*/        OPC_CheckPredicate, 9, // Predicate_load
/*457075*/        OPC_MoveParent,
/*457076*/        OPC_RecordChild1, // #2 = $src2
/*457077*/        OPC_MoveChild1,
/*457078*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*457081*/        OPC_MoveParent,
/*457082*/        OPC_SwitchType /*9 cases */, 18, MVT::v16i32,// ->457103
/*457085*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*457087*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*457090*/          OPC_EmitMergeInputChains1_0,
/*457091*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86vshli:{ *:[v16i32] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPSLLDZmi:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*457103*/        /*SwitchType*/ 18, MVT::v8i32,// ->457123
/*457105*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*457107*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*457110*/          OPC_EmitMergeInputChains1_0,
/*457111*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZ256mi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86vshli:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPSLLDZ256mi:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*457123*/        /*SwitchType*/ 18, MVT::v4i32,// ->457143
/*457125*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*457127*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*457130*/          OPC_EmitMergeInputChains1_0,
/*457131*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZ128mi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86vshli:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPSLLDZ128mi:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*457143*/        /*SwitchType*/ 18, MVT::v8i64,// ->457163
/*457145*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*457147*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*457150*/          OPC_EmitMergeInputChains1_0,
/*457151*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86vshli:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPSLLQZmi:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*457163*/        /*SwitchType*/ 18, MVT::v4i64,// ->457183
/*457165*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*457167*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*457170*/          OPC_EmitMergeInputChains1_0,
/*457171*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZ256mi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86vshli:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPSLLQZ256mi:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*457183*/        /*SwitchType*/ 18, MVT::v2i64,// ->457203
/*457185*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*457187*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*457190*/          OPC_EmitMergeInputChains1_0,
/*457191*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZ128mi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86vshli:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPSLLQZ128mi:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*457203*/        /*SwitchType*/ 18, MVT::v32i16,// ->457223
/*457205*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*457207*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*457210*/          OPC_EmitMergeInputChains1_0,
/*457211*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLWZmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86vshli:{ *:[v32i16] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPSLLWZmi:{ *:[v32i16] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*457223*/        /*SwitchType*/ 18, MVT::v16i16,// ->457243
/*457225*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*457227*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*457230*/          OPC_EmitMergeInputChains1_0,
/*457231*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLWZ256mi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86vshli:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPSLLWZ256mi:{ *:[v16i16] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*457243*/        /*SwitchType*/ 18, MVT::v8i16,// ->457263
/*457245*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*457247*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*457250*/          OPC_EmitMergeInputChains1_0,
/*457251*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLWZ128mi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86vshli:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPSLLWZ128mi:{ *:[v8i16] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*457263*/        0, // EndSwitchType
/*457264*/      /*SwitchOpcode*/ 22|128,1/*150*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->457418
/*457268*/        OPC_RecordMemRef,
/*457269*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*457270*/        OPC_CheckFoldableChainNode,
/*457271*/        OPC_RecordChild1, // #1 = $src1
/*457272*/        OPC_Scope, 71, /*->457345*/ // 2 children in Scope
/*457274*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*457276*/          OPC_MoveParent,
/*457277*/          OPC_RecordChild1, // #2 = $src2
/*457278*/          OPC_MoveChild1,
/*457279*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*457282*/          OPC_MoveParent,
/*457283*/          OPC_SwitchType /*3 cases */, 18, MVT::v16i32,// ->457304
/*457286*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*457288*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*457291*/            OPC_EmitMergeInputChains1_0,
/*457292*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86vshli:{ *:[v16i32] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPSLLDZmbi:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*457304*/          /*SwitchType*/ 18, MVT::v8i32,// ->457324
/*457306*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*457308*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*457311*/            OPC_EmitMergeInputChains1_0,
/*457312*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZ256mbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86vshli:{ *:[v8i32] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPSLLDZ256mbi:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*457324*/          /*SwitchType*/ 18, MVT::v4i32,// ->457344
/*457326*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*457328*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*457331*/            OPC_EmitMergeInputChains1_0,
/*457332*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZ128mbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86vshli:{ *:[v4i32] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPSLLDZ128mbi:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*457344*/          0, // EndSwitchType
/*457345*/        /*Scope*/ 71, /*->457417*/
/*457346*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*457348*/          OPC_MoveParent,
/*457349*/          OPC_RecordChild1, // #2 = $src2
/*457350*/          OPC_MoveChild1,
/*457351*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*457354*/          OPC_MoveParent,
/*457355*/          OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->457376
/*457358*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*457360*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*457363*/            OPC_EmitMergeInputChains1_0,
/*457364*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86vshli:{ *:[v8i64] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPSLLQZmbi:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*457376*/          /*SwitchType*/ 18, MVT::v4i64,// ->457396
/*457378*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*457380*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*457383*/            OPC_EmitMergeInputChains1_0,
/*457384*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZ256mbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86vshli:{ *:[v4i64] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPSLLQZ256mbi:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*457396*/          /*SwitchType*/ 18, MVT::v2i64,// ->457416
/*457398*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*457400*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*457403*/            OPC_EmitMergeInputChains1_0,
/*457404*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZ128mbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86vshli:{ *:[v2i64] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPSLLQZ128mbi:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*457416*/          0, // EndSwitchType
/*457417*/        0, /*End of Scope*/
/*457418*/      0, // EndSwitchOpcode
/*457419*/    /*Scope*/ 106|128,1/*234*/, /*->457655*/
/*457421*/      OPC_RecordChild0, // #0 = $src1
/*457422*/      OPC_RecordChild1, // #1 = $src2
/*457423*/      OPC_MoveChild1,
/*457424*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*457427*/      OPC_MoveParent,
/*457428*/      OPC_SwitchType /*9 cases */, 35, MVT::v8i16,// ->457466
/*457431*/        OPC_Scope, 10, /*->457443*/ // 3 children in Scope
/*457433*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*457435*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLWri), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vshli:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSLLWri:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (timm:{ *:[i8] }):$src2)
/*457443*/        /*Scope*/ 10, /*->457454*/
/*457444*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*457446*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PSLLWri), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vshli:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (PSLLWri:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (timm:{ *:[i8] }):$src2)
/*457454*/        /*Scope*/ 10, /*->457465*/
/*457455*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*457457*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLWZ128ri), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vshli:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSLLWZ128ri:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (timm:{ *:[i8] }):$src2)
/*457465*/        0, /*End of Scope*/
/*457466*/      /*SwitchType*/ 24, MVT::v16i16,// ->457492
/*457468*/        OPC_Scope, 10, /*->457480*/ // 2 children in Scope
/*457470*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*457472*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLWYri), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vshli:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSLLWYri:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, (timm:{ *:[i8] }):$src2)
/*457480*/        /*Scope*/ 10, /*->457491*/
/*457481*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*457483*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLWZ256ri), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vshli:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSLLWZ256ri:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (timm:{ *:[i8] }):$src2)
/*457491*/        0, /*End of Scope*/
/*457492*/      /*SwitchType*/ 35, MVT::v4i32,// ->457529
/*457494*/        OPC_Scope, 10, /*->457506*/ // 3 children in Scope
/*457496*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*457498*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDri), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vshli:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSLLDri:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$src2)
/*457506*/        /*Scope*/ 10, /*->457517*/
/*457507*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*457509*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PSLLDri), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vshli:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (PSLLDri:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$src2)
/*457517*/        /*Scope*/ 10, /*->457528*/
/*457518*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*457520*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZ128ri), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vshli:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSLLDZ128ri:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$src2)
/*457528*/        0, /*End of Scope*/
/*457529*/      /*SwitchType*/ 24, MVT::v8i32,// ->457555
/*457531*/        OPC_Scope, 10, /*->457543*/ // 2 children in Scope
/*457533*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*457535*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDYri), 0,
                        MVT::v8i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vshli:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSLLDYri:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, (timm:{ *:[i8] }):$src2)
/*457543*/        /*Scope*/ 10, /*->457554*/
/*457544*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*457546*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZ256ri), 0,
                        MVT::v8i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vshli:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSLLDZ256ri:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (timm:{ *:[i8] }):$src2)
/*457554*/        0, /*End of Scope*/
/*457555*/      /*SwitchType*/ 35, MVT::v2i64,// ->457592
/*457557*/        OPC_Scope, 10, /*->457569*/ // 3 children in Scope
/*457559*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*457561*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQri), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vshli:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSLLQri:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, (timm:{ *:[i8] }):$src2)
/*457569*/        /*Scope*/ 10, /*->457580*/
/*457570*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*457572*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PSLLQri), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vshli:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (PSLLQri:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, (timm:{ *:[i8] }):$src2)
/*457580*/        /*Scope*/ 10, /*->457591*/
/*457581*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*457583*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZ128ri), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vshli:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSLLQZ128ri:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (timm:{ *:[i8] }):$src2)
/*457591*/        0, /*End of Scope*/
/*457592*/      /*SwitchType*/ 24, MVT::v4i64,// ->457618
/*457594*/        OPC_Scope, 10, /*->457606*/ // 2 children in Scope
/*457596*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*457598*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQYri), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vshli:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSLLQYri:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, (timm:{ *:[i8] }):$src2)
/*457606*/        /*Scope*/ 10, /*->457617*/
/*457607*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*457609*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZ256ri), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vshli:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSLLQZ256ri:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (timm:{ *:[i8] }):$src2)
/*457617*/        0, /*End of Scope*/
/*457618*/      /*SwitchType*/ 10, MVT::v16i32,// ->457630
/*457620*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*457622*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDZri), 0,
                      MVT::v16i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86vshli:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                  // Dst: (VPSLLDZri:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (timm:{ *:[i8] }):$src2)
/*457630*/      /*SwitchType*/ 10, MVT::v8i64,// ->457642
/*457632*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*457634*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLQZri), 0,
                      MVT::v8i64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86vshli:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                  // Dst: (VPSLLQZri:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (timm:{ *:[i8] }):$src2)
/*457642*/      /*SwitchType*/ 10, MVT::v32i16,// ->457654
/*457644*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*457646*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLWZri), 0,
                      MVT::v32i16, 2/*#Ops*/, 0, 1, 
                  // Src: (X86vshli:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                  // Dst: (VPSLLWZri:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (timm:{ *:[i8] }):$src2)
/*457654*/      0, // EndSwitchType
/*457655*/    0, /*End of Scope*/
/*457656*/  /*SwitchOpcode*/ 5|128,5/*645*/, TARGET_VAL(X86ISD::VSRAI),// ->458305
/*457660*/    OPC_Scope, 102|128,2/*358*/, /*->458021*/ // 2 children in Scope
/*457663*/      OPC_MoveChild0,
/*457664*/      OPC_SwitchOpcode /*2 cases */, 69|128,1/*197*/, TARGET_VAL(ISD::LOAD),// ->457866
/*457669*/        OPC_RecordMemRef,
/*457670*/        OPC_RecordNode, // #0 = 'ld' chained node
/*457671*/        OPC_CheckFoldableChainNode,
/*457672*/        OPC_RecordChild1, // #1 = $src1
/*457673*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*457675*/        OPC_CheckPredicate, 9, // Predicate_load
/*457677*/        OPC_MoveParent,
/*457678*/        OPC_RecordChild1, // #2 = $src2
/*457679*/        OPC_MoveChild1,
/*457680*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*457683*/        OPC_MoveParent,
/*457684*/        OPC_SwitchType /*9 cases */, 18, MVT::v16i32,// ->457705
/*457687*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*457689*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*457692*/          OPC_EmitMergeInputChains1_0,
/*457693*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86vsrai:{ *:[v16i32] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPSRADZmi:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*457705*/        /*SwitchType*/ 18, MVT::v8i32,// ->457725
/*457707*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*457709*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*457712*/          OPC_EmitMergeInputChains1_0,
/*457713*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZ256mi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86vsrai:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPSRADZ256mi:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*457725*/        /*SwitchType*/ 18, MVT::v4i32,// ->457745
/*457727*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*457729*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*457732*/          OPC_EmitMergeInputChains1_0,
/*457733*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZ128mi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86vsrai:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPSRADZ128mi:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*457745*/        /*SwitchType*/ 18, MVT::v8i64,// ->457765
/*457747*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*457749*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*457752*/          OPC_EmitMergeInputChains1_0,
/*457753*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86vsrai:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPSRAQZmi:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*457765*/        /*SwitchType*/ 18, MVT::v4i64,// ->457785
/*457767*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*457769*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*457772*/          OPC_EmitMergeInputChains1_0,
/*457773*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZ256mi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86vsrai:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPSRAQZ256mi:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*457785*/        /*SwitchType*/ 18, MVT::v2i64,// ->457805
/*457787*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*457789*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*457792*/          OPC_EmitMergeInputChains1_0,
/*457793*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZ128mi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86vsrai:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPSRAQZ128mi:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*457805*/        /*SwitchType*/ 18, MVT::v32i16,// ->457825
/*457807*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*457809*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*457812*/          OPC_EmitMergeInputChains1_0,
/*457813*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAWZmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86vsrai:{ *:[v32i16] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPSRAWZmi:{ *:[v32i16] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*457825*/        /*SwitchType*/ 18, MVT::v16i16,// ->457845
/*457827*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*457829*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*457832*/          OPC_EmitMergeInputChains1_0,
/*457833*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAWZ256mi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86vsrai:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPSRAWZ256mi:{ *:[v16i16] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*457845*/        /*SwitchType*/ 18, MVT::v8i16,// ->457865
/*457847*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*457849*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*457852*/          OPC_EmitMergeInputChains1_0,
/*457853*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAWZ128mi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86vsrai:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPSRAWZ128mi:{ *:[v8i16] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*457865*/        0, // EndSwitchType
/*457866*/      /*SwitchOpcode*/ 22|128,1/*150*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->458020
/*457870*/        OPC_RecordMemRef,
/*457871*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*457872*/        OPC_CheckFoldableChainNode,
/*457873*/        OPC_RecordChild1, // #1 = $src1
/*457874*/        OPC_Scope, 71, /*->457947*/ // 2 children in Scope
/*457876*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*457878*/          OPC_MoveParent,
/*457879*/          OPC_RecordChild1, // #2 = $src2
/*457880*/          OPC_MoveChild1,
/*457881*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*457884*/          OPC_MoveParent,
/*457885*/          OPC_SwitchType /*3 cases */, 18, MVT::v16i32,// ->457906
/*457888*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*457890*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*457893*/            OPC_EmitMergeInputChains1_0,
/*457894*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86vsrai:{ *:[v16i32] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPSRADZmbi:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*457906*/          /*SwitchType*/ 18, MVT::v8i32,// ->457926
/*457908*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*457910*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*457913*/            OPC_EmitMergeInputChains1_0,
/*457914*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZ256mbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86vsrai:{ *:[v8i32] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPSRADZ256mbi:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*457926*/          /*SwitchType*/ 18, MVT::v4i32,// ->457946
/*457928*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*457930*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*457933*/            OPC_EmitMergeInputChains1_0,
/*457934*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZ128mbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86vsrai:{ *:[v4i32] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPSRADZ128mbi:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*457946*/          0, // EndSwitchType
/*457947*/        /*Scope*/ 71, /*->458019*/
/*457948*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*457950*/          OPC_MoveParent,
/*457951*/          OPC_RecordChild1, // #2 = $src2
/*457952*/          OPC_MoveChild1,
/*457953*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*457956*/          OPC_MoveParent,
/*457957*/          OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->457978
/*457960*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*457962*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*457965*/            OPC_EmitMergeInputChains1_0,
/*457966*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86vsrai:{ *:[v8i64] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPSRAQZmbi:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*457978*/          /*SwitchType*/ 18, MVT::v4i64,// ->457998
/*457980*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*457982*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*457985*/            OPC_EmitMergeInputChains1_0,
/*457986*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZ256mbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86vsrai:{ *:[v4i64] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPSRAQZ256mbi:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*457998*/          /*SwitchType*/ 18, MVT::v2i64,// ->458018
/*458000*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*458002*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*458005*/            OPC_EmitMergeInputChains1_0,
/*458006*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZ128mbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86vsrai:{ *:[v2i64] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPSRAQZ128mbi:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*458018*/          0, // EndSwitchType
/*458019*/        0, /*End of Scope*/
/*458020*/      0, // EndSwitchOpcode
/*458021*/    /*Scope*/ 25|128,2/*281*/, /*->458304*/
/*458023*/      OPC_RecordChild0, // #0 = $src1
/*458024*/      OPC_RecordChild1, // #1 = $src2
/*458025*/      OPC_MoveChild1,
/*458026*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*458029*/      OPC_MoveParent,
/*458030*/      OPC_SwitchType /*9 cases */, 35, MVT::v8i16,// ->458068
/*458033*/        OPC_Scope, 10, /*->458045*/ // 3 children in Scope
/*458035*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*458037*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAWri), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vsrai:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSRAWri:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (timm:{ *:[i8] }):$src2)
/*458045*/        /*Scope*/ 10, /*->458056*/
/*458046*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*458048*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PSRAWri), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vsrai:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (PSRAWri:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (timm:{ *:[i8] }):$src2)
/*458056*/        /*Scope*/ 10, /*->458067*/
/*458057*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*458059*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAWZ128ri), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vsrai:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSRAWZ128ri:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (timm:{ *:[i8] }):$src2)
/*458067*/        0, /*End of Scope*/
/*458068*/      /*SwitchType*/ 24, MVT::v16i16,// ->458094
/*458070*/        OPC_Scope, 10, /*->458082*/ // 2 children in Scope
/*458072*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*458074*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAWYri), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vsrai:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSRAWYri:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, (timm:{ *:[i8] }):$src2)
/*458082*/        /*Scope*/ 10, /*->458093*/
/*458083*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*458085*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAWZ256ri), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vsrai:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSRAWZ256ri:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (timm:{ *:[i8] }):$src2)
/*458093*/        0, /*End of Scope*/
/*458094*/      /*SwitchType*/ 35, MVT::v4i32,// ->458131
/*458096*/        OPC_Scope, 10, /*->458108*/ // 3 children in Scope
/*458098*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*458100*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADri), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vsrai:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSRADri:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$src2)
/*458108*/        /*Scope*/ 10, /*->458119*/
/*458109*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*458111*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PSRADri), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vsrai:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (PSRADri:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$src2)
/*458119*/        /*Scope*/ 10, /*->458130*/
/*458120*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*458122*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZ128ri), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vsrai:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSRADZ128ri:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$src2)
/*458130*/        0, /*End of Scope*/
/*458131*/      /*SwitchType*/ 24, MVT::v8i32,// ->458157
/*458133*/        OPC_Scope, 10, /*->458145*/ // 2 children in Scope
/*458135*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*458137*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADYri), 0,
                        MVT::v8i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vsrai:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSRADYri:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, (timm:{ *:[i8] }):$src2)
/*458145*/        /*Scope*/ 10, /*->458156*/
/*458146*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*458148*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZ256ri), 0,
                        MVT::v8i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vsrai:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSRADZ256ri:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (timm:{ *:[i8] }):$src2)
/*458156*/        0, /*End of Scope*/
/*458157*/      /*SwitchType*/ 10, MVT::v16i32,// ->458169
/*458159*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*458161*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRADZri), 0,
                      MVT::v16i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86vsrai:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                  // Dst: (VPSRADZri:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (timm:{ *:[i8] }):$src2)
/*458169*/      /*SwitchType*/ 10, MVT::v8i64,// ->458181
/*458171*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*458173*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZri), 0,
                      MVT::v8i64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86vsrai:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                  // Dst: (VPSRAQZri:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (timm:{ *:[i8] }):$src2)
/*458181*/      /*SwitchType*/ 53, MVT::v4i64,// ->458236
/*458183*/        OPC_Scope, 10, /*->458195*/ // 2 children in Scope
/*458185*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*458187*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZ256ri), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vsrai:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSRAQZ256ri:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (timm:{ *:[i8] }):$src2)
/*458195*/        /*Scope*/ 39, /*->458235*/
/*458196*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*458198*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #2
/*458204*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*458207*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*458216*/          OPC_EmitNode1, TARGET_VAL(X86::VPSRAQZri), 0,
                        MVT::v8i64, 2/*#Ops*/, 4, 1,  // Results = #5
/*458224*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*458227*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4i64, 2/*#Ops*/, 5, 6, 
                    // Src: (X86vsrai:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (EXTRACT_SUBREG:{ *:[v4i64] } (VPSRAQZri:{ *:[v8i64] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), (timm:{ *:[i8] }):$src2), sub_ymm:{ *:[i32] })
/*458235*/        0, /*End of Scope*/
/*458236*/      /*SwitchType*/ 53, MVT::v2i64,// ->458291
/*458238*/        OPC_Scope, 10, /*->458250*/ // 2 children in Scope
/*458240*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*458242*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAQZ128ri), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vsrai:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSRAQZ128ri:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (timm:{ *:[i8] }):$src2)
/*458250*/        /*Scope*/ 39, /*->458290*/
/*458251*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*458253*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #2
/*458259*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*458262*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*458271*/          OPC_EmitNode1, TARGET_VAL(X86::VPSRAQZri), 0,
                        MVT::v8i64, 2/*#Ops*/, 4, 1,  // Results = #5
/*458279*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*458282*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v2i64, 2/*#Ops*/, 5, 6, 
                    // Src: (X86vsrai:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (EXTRACT_SUBREG:{ *:[v2i64] } (VPSRAQZri:{ *:[v8i64] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), (timm:{ *:[i8] }):$src2), sub_xmm:{ *:[i32] })
/*458290*/        0, /*End of Scope*/
/*458291*/      /*SwitchType*/ 10, MVT::v32i16,// ->458303
/*458293*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*458295*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRAWZri), 0,
                      MVT::v32i16, 2/*#Ops*/, 0, 1, 
                  // Src: (X86vsrai:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                  // Dst: (VPSRAWZri:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (timm:{ *:[i8] }):$src2)
/*458303*/      0, // EndSwitchType
/*458304*/    0, /*End of Scope*/
/*458305*/  /*SwitchOpcode*/ 45|128,4/*557*/, TARGET_VAL(X86ISD::VROTRI),// ->458866
/*458309*/    OPC_Scope, 42|128,2/*298*/, /*->458610*/ // 2 children in Scope
/*458312*/      OPC_MoveChild0,
/*458313*/      OPC_SwitchOpcode /*2 cases */, 9|128,1/*137*/, TARGET_VAL(ISD::LOAD),// ->458455
/*458318*/        OPC_RecordMemRef,
/*458319*/        OPC_RecordNode, // #0 = 'ld' chained node
/*458320*/        OPC_CheckFoldableChainNode,
/*458321*/        OPC_RecordChild1, // #1 = $src1
/*458322*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*458324*/        OPC_CheckPredicate, 9, // Predicate_load
/*458326*/        OPC_MoveParent,
/*458327*/        OPC_RecordChild1, // #2 = $src2
/*458328*/        OPC_MoveChild1,
/*458329*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*458332*/        OPC_MoveParent,
/*458333*/        OPC_SwitchType /*6 cases */, 18, MVT::v16i32,// ->458354
/*458336*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*458338*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*458341*/          OPC_EmitMergeInputChains1_0,
/*458342*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORDZmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86vrotri:{ *:[v16i32] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPRORDZmi:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*458354*/        /*SwitchType*/ 18, MVT::v8i32,// ->458374
/*458356*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*458358*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*458361*/          OPC_EmitMergeInputChains1_0,
/*458362*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORDZ256mi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86vrotri:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPRORDZ256mi:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*458374*/        /*SwitchType*/ 18, MVT::v4i32,// ->458394
/*458376*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*458378*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*458381*/          OPC_EmitMergeInputChains1_0,
/*458382*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORDZ128mi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86vrotri:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPRORDZ128mi:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*458394*/        /*SwitchType*/ 18, MVT::v8i64,// ->458414
/*458396*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*458398*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*458401*/          OPC_EmitMergeInputChains1_0,
/*458402*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORQZmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86vrotri:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPRORQZmi:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*458414*/        /*SwitchType*/ 18, MVT::v4i64,// ->458434
/*458416*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*458418*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*458421*/          OPC_EmitMergeInputChains1_0,
/*458422*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORQZ256mi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86vrotri:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPRORQZ256mi:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*458434*/        /*SwitchType*/ 18, MVT::v2i64,// ->458454
/*458436*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*458438*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*458441*/          OPC_EmitMergeInputChains1_0,
/*458442*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORQZ128mi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86vrotri:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPRORQZ128mi:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*458454*/        0, // EndSwitchType
/*458455*/      /*SwitchOpcode*/ 22|128,1/*150*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->458609
/*458459*/        OPC_RecordMemRef,
/*458460*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*458461*/        OPC_CheckFoldableChainNode,
/*458462*/        OPC_RecordChild1, // #1 = $src1
/*458463*/        OPC_Scope, 71, /*->458536*/ // 2 children in Scope
/*458465*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*458467*/          OPC_MoveParent,
/*458468*/          OPC_RecordChild1, // #2 = $src2
/*458469*/          OPC_MoveChild1,
/*458470*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*458473*/          OPC_MoveParent,
/*458474*/          OPC_SwitchType /*3 cases */, 18, MVT::v16i32,// ->458495
/*458477*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*458479*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*458482*/            OPC_EmitMergeInputChains1_0,
/*458483*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORDZmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86vrotri:{ *:[v16i32] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPRORDZmbi:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*458495*/          /*SwitchType*/ 18, MVT::v8i32,// ->458515
/*458497*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*458499*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*458502*/            OPC_EmitMergeInputChains1_0,
/*458503*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORDZ256mbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86vrotri:{ *:[v8i32] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPRORDZ256mbi:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*458515*/          /*SwitchType*/ 18, MVT::v4i32,// ->458535
/*458517*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*458519*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*458522*/            OPC_EmitMergeInputChains1_0,
/*458523*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORDZ128mbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86vrotri:{ *:[v4i32] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPRORDZ128mbi:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*458535*/          0, // EndSwitchType
/*458536*/        /*Scope*/ 71, /*->458608*/
/*458537*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*458539*/          OPC_MoveParent,
/*458540*/          OPC_RecordChild1, // #2 = $src2
/*458541*/          OPC_MoveChild1,
/*458542*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*458545*/          OPC_MoveParent,
/*458546*/          OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->458567
/*458549*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*458551*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*458554*/            OPC_EmitMergeInputChains1_0,
/*458555*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORQZmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86vrotri:{ *:[v8i64] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPRORQZmbi:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*458567*/          /*SwitchType*/ 18, MVT::v4i64,// ->458587
/*458569*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*458571*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*458574*/            OPC_EmitMergeInputChains1_0,
/*458575*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORQZ256mbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86vrotri:{ *:[v4i64] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPRORQZ256mbi:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*458587*/          /*SwitchType*/ 18, MVT::v2i64,// ->458607
/*458589*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*458591*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*458594*/            OPC_EmitMergeInputChains1_0,
/*458595*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORQZ128mbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86vrotri:{ *:[v2i64] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPRORQZ128mbi:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*458607*/          0, // EndSwitchType
/*458608*/        0, /*End of Scope*/
/*458609*/      0, // EndSwitchOpcode
/*458610*/    /*Scope*/ 125|128,1/*253*/, /*->458865*/
/*458612*/      OPC_RecordChild0, // #0 = $src1
/*458613*/      OPC_RecordChild1, // #1 = $src2
/*458614*/      OPC_MoveChild1,
/*458615*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*458618*/      OPC_MoveParent,
/*458619*/      OPC_SwitchType /*6 cases */, 10, MVT::v16i32,// ->458632
/*458622*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*458624*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORDZri), 0,
                      MVT::v16i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86vrotri:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                  // Dst: (VPRORDZri:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (timm:{ *:[i8] }):$src2)
/*458632*/      /*SwitchType*/ 53, MVT::v8i32,// ->458687
/*458634*/        OPC_Scope, 10, /*->458646*/ // 2 children in Scope
/*458636*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*458638*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORDZ256ri), 0,
                        MVT::v8i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vrotri:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPRORDZ256ri:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (timm:{ *:[i8] }):$src2)
/*458646*/        /*Scope*/ 39, /*->458686*/
/*458647*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*458649*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #2
/*458655*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*458658*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*458667*/          OPC_EmitNode1, TARGET_VAL(X86::VPRORDZri), 0,
                        MVT::v16i32, 2/*#Ops*/, 4, 1,  // Results = #5
/*458675*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*458678*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v8i32, 2/*#Ops*/, 5, 6, 
                    // Src: (X86vrotri:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (EXTRACT_SUBREG:{ *:[v8i32] } (VPRORDZri:{ *:[v16i32] } (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v8i32] }:$src1, sub_ymm:{ *:[i32] }), (timm:{ *:[i8] }):$src2), sub_ymm:{ *:[i32] })
/*458686*/        0, /*End of Scope*/
/*458687*/      /*SwitchType*/ 53, MVT::v4i32,// ->458742
/*458689*/        OPC_Scope, 10, /*->458701*/ // 2 children in Scope
/*458691*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*458693*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORDZ128ri), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vrotri:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPRORDZ128ri:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$src2)
/*458701*/        /*Scope*/ 39, /*->458741*/
/*458702*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*458704*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #2
/*458710*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*458713*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*458722*/          OPC_EmitNode1, TARGET_VAL(X86::VPRORDZri), 0,
                        MVT::v16i32, 2/*#Ops*/, 4, 1,  // Results = #5
/*458730*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*458733*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4i32, 2/*#Ops*/, 5, 6, 
                    // Src: (X86vrotri:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (EXTRACT_SUBREG:{ *:[v4i32] } (VPRORDZri:{ *:[v16i32] } (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v4i32] }:$src1, sub_xmm:{ *:[i32] }), (timm:{ *:[i8] }):$src2), sub_xmm:{ *:[i32] })
/*458741*/        0, /*End of Scope*/
/*458742*/      /*SwitchType*/ 10, MVT::v8i64,// ->458754
/*458744*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*458746*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORQZri), 0,
                      MVT::v8i64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86vrotri:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                  // Dst: (VPRORQZri:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (timm:{ *:[i8] }):$src2)
/*458754*/      /*SwitchType*/ 53, MVT::v4i64,// ->458809
/*458756*/        OPC_Scope, 10, /*->458768*/ // 2 children in Scope
/*458758*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*458760*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORQZ256ri), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vrotri:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPRORQZ256ri:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (timm:{ *:[i8] }):$src2)
/*458768*/        /*Scope*/ 39, /*->458808*/
/*458769*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*458771*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #2
/*458777*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*458780*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*458789*/          OPC_EmitNode1, TARGET_VAL(X86::VPRORQZri), 0,
                        MVT::v8i64, 2/*#Ops*/, 4, 1,  // Results = #5
/*458797*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*458800*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4i64, 2/*#Ops*/, 5, 6, 
                    // Src: (X86vrotri:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (EXTRACT_SUBREG:{ *:[v4i64] } (VPRORQZri:{ *:[v8i64] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), (timm:{ *:[i8] }):$src2), sub_ymm:{ *:[i32] })
/*458808*/        0, /*End of Scope*/
/*458809*/      /*SwitchType*/ 53, MVT::v2i64,// ->458864
/*458811*/        OPC_Scope, 10, /*->458823*/ // 2 children in Scope
/*458813*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*458815*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPRORQZ128ri), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vrotri:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPRORQZ128ri:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (timm:{ *:[i8] }):$src2)
/*458823*/        /*Scope*/ 39, /*->458863*/
/*458824*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*458826*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #2
/*458832*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*458835*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*458844*/          OPC_EmitNode1, TARGET_VAL(X86::VPRORQZri), 0,
                        MVT::v8i64, 2/*#Ops*/, 4, 1,  // Results = #5
/*458852*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*458855*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v2i64, 2/*#Ops*/, 5, 6, 
                    // Src: (X86vrotri:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (EXTRACT_SUBREG:{ *:[v2i64] } (VPRORQZri:{ *:[v8i64] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), (timm:{ *:[i8] }):$src2), sub_xmm:{ *:[i32] })
/*458863*/        0, /*End of Scope*/
/*458864*/      0, // EndSwitchType
/*458865*/    0, /*End of Scope*/
/*458866*/  /*SwitchOpcode*/ 71|128,2/*327*/, TARGET_VAL(X86ISD::SHUF128),// ->459197
/*458870*/    OPC_RecordChild0, // #0 = $src1
/*458871*/    OPC_Scope, 125, /*->458998*/ // 4 children in Scope
/*458873*/      OPC_MoveChild1,
/*458874*/      OPC_SwitchOpcode /*2 cases */, 59, TARGET_VAL(ISD::LOAD),// ->458937
/*458878*/        OPC_RecordMemRef,
/*458879*/        OPC_RecordNode, // #1 = 'ld' chained node
/*458880*/        OPC_CheckFoldableChainNode,
/*458881*/        OPC_RecordChild1, // #2 = $src2
/*458882*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*458884*/        OPC_CheckPredicate, 9, // Predicate_load
/*458886*/        OPC_MoveParent,
/*458887*/        OPC_RecordChild2, // #3 = $src3
/*458888*/        OPC_MoveChild2,
/*458889*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*458892*/        OPC_MoveParent,
/*458893*/        OPC_SwitchType /*2 cases */, 19, MVT::v8i64,// ->458915
/*458896*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*458898*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*458901*/          OPC_EmitMergeInputChains1_1,
/*458902*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI64X2Zrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86Shuf128:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                    // Dst: (VSHUFI64X2Zrmi:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*458915*/        /*SwitchType*/ 19, MVT::v4i64,// ->458936
/*458917*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*458919*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*458922*/          OPC_EmitMergeInputChains1_1,
/*458923*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI64X2Z256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86Shuf128:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                    // Dst: (VSHUFI64X2Z256rmi:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*458936*/        0, // EndSwitchType
/*458937*/      /*SwitchOpcode*/ 57, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->458997
/*458940*/        OPC_RecordMemRef,
/*458941*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*458942*/        OPC_CheckFoldableChainNode,
/*458943*/        OPC_RecordChild1, // #2 = $src2
/*458944*/        OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*458946*/        OPC_MoveParent,
/*458947*/        OPC_RecordChild2, // #3 = $src3
/*458948*/        OPC_MoveChild2,
/*458949*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*458952*/        OPC_MoveParent,
/*458953*/        OPC_SwitchType /*2 cases */, 19, MVT::v8i64,// ->458975
/*458956*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*458958*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*458961*/          OPC_EmitMergeInputChains1_1,
/*458962*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI64X2Zrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86Shuf128:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                    // Dst: (VSHUFI64X2Zrmbi:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*458975*/        /*SwitchType*/ 19, MVT::v4i64,// ->458996
/*458977*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*458979*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*458982*/          OPC_EmitMergeInputChains1_1,
/*458983*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI64X2Z256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86Shuf128:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                    // Dst: (VSHUFI64X2Z256rmbi:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*458996*/        0, // EndSwitchType
/*458997*/      0, // EndSwitchOpcode
/*458998*/    /*Scope*/ 35, /*->459034*/
/*458999*/      OPC_RecordChild1, // #1 = $src2
/*459000*/      OPC_RecordChild2, // #2 = $src3
/*459001*/      OPC_MoveChild2,
/*459002*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*459005*/      OPC_MoveParent,
/*459006*/      OPC_SwitchType /*2 cases */, 11, MVT::v8i64,// ->459020
/*459009*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*459011*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI64X2Zrri), 0,
                      MVT::v8i64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86Shuf128:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VSHUFI64X2Zrri:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (timm:{ *:[i8] }):$src3)
/*459020*/      /*SwitchType*/ 11, MVT::v4i64,// ->459033
/*459022*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*459024*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFI64X2Z256rri), 0,
                      MVT::v4i64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86Shuf128:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VSHUFI64X2Z256rri:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (timm:{ *:[i8] }):$src3)
/*459033*/      0, // EndSwitchType
/*459034*/    /*Scope*/ 125, /*->459160*/
/*459035*/      OPC_MoveChild1,
/*459036*/      OPC_SwitchOpcode /*2 cases */, 59, TARGET_VAL(ISD::LOAD),// ->459099
/*459040*/        OPC_RecordMemRef,
/*459041*/        OPC_RecordNode, // #1 = 'ld' chained node
/*459042*/        OPC_CheckFoldableChainNode,
/*459043*/        OPC_RecordChild1, // #2 = $src2
/*459044*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*459046*/        OPC_CheckPredicate, 9, // Predicate_load
/*459048*/        OPC_MoveParent,
/*459049*/        OPC_RecordChild2, // #3 = $src3
/*459050*/        OPC_MoveChild2,
/*459051*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*459054*/        OPC_MoveParent,
/*459055*/        OPC_SwitchType /*2 cases */, 19, MVT::v8f64,// ->459077
/*459058*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*459060*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*459063*/          OPC_EmitMergeInputChains1_1,
/*459064*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF64X2Zrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86Shuf128:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                    // Dst: (VSHUFF64X2Zrmi:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*459077*/        /*SwitchType*/ 19, MVT::v4f64,// ->459098
/*459079*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*459081*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*459084*/          OPC_EmitMergeInputChains1_1,
/*459085*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF64X2Z256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86Shuf128:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                    // Dst: (VSHUFF64X2Z256rmi:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*459098*/        0, // EndSwitchType
/*459099*/      /*SwitchOpcode*/ 57, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->459159
/*459102*/        OPC_RecordMemRef,
/*459103*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*459104*/        OPC_CheckFoldableChainNode,
/*459105*/        OPC_RecordChild1, // #2 = $src2
/*459106*/        OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*459108*/        OPC_MoveParent,
/*459109*/        OPC_RecordChild2, // #3 = $src3
/*459110*/        OPC_MoveChild2,
/*459111*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*459114*/        OPC_MoveParent,
/*459115*/        OPC_SwitchType /*2 cases */, 19, MVT::v8f64,// ->459137
/*459118*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*459120*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*459123*/          OPC_EmitMergeInputChains1_1,
/*459124*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF64X2Zrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86Shuf128:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                    // Dst: (VSHUFF64X2Zrmbi:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*459137*/        /*SwitchType*/ 19, MVT::v4f64,// ->459158
/*459139*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*459141*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*459144*/          OPC_EmitMergeInputChains1_1,
/*459145*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF64X2Z256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86Shuf128:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                    // Dst: (VSHUFF64X2Z256rmbi:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*459158*/        0, // EndSwitchType
/*459159*/      0, // EndSwitchOpcode
/*459160*/    /*Scope*/ 35, /*->459196*/
/*459161*/      OPC_RecordChild1, // #1 = $src2
/*459162*/      OPC_RecordChild2, // #2 = $src3
/*459163*/      OPC_MoveChild2,
/*459164*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*459167*/      OPC_MoveParent,
/*459168*/      OPC_SwitchType /*2 cases */, 11, MVT::v8f64,// ->459182
/*459171*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*459173*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF64X2Zrri), 0,
                      MVT::v8f64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86Shuf128:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VSHUFF64X2Zrri:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i8] }):$src3)
/*459182*/      /*SwitchType*/ 11, MVT::v4f64,// ->459195
/*459184*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*459186*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFF64X2Z256rri), 0,
                      MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86Shuf128:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VSHUFF64X2Z256rri:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (timm:{ *:[i8] }):$src3)
/*459195*/      0, // EndSwitchType
/*459196*/    0, /*End of Scope*/
/*459197*/  /*SwitchOpcode*/ 9|128,1/*137*/, TARGET_VAL(X86ISD::DBPSADBW),// ->459338
/*459201*/    OPC_RecordChild0, // #0 = $src1
/*459202*/    OPC_Scope, 84, /*->459288*/ // 2 children in Scope
/*459204*/      OPC_MoveChild1,
/*459205*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*459208*/      OPC_RecordMemRef,
/*459209*/      OPC_RecordNode, // #1 = 'ld' chained node
/*459210*/      OPC_CheckFoldableChainNode,
/*459211*/      OPC_RecordChild1, // #2 = $src2
/*459212*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*459214*/      OPC_CheckPredicate, 9, // Predicate_load
/*459216*/      OPC_MoveParent,
/*459217*/      OPC_RecordChild2, // #3 = $src3
/*459218*/      OPC_MoveChild2,
/*459219*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*459222*/      OPC_MoveParent,
/*459223*/      OPC_SwitchType /*3 cases */, 19, MVT::v32i16,// ->459245
/*459226*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*459228*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*459231*/        OPC_EmitMergeInputChains1_1,
/*459232*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VDBPSADBWZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v32i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (X86dbpsadbw:{ *:[v32i16] } VR512:{ *:[v64i8] }:$src1, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                  // Dst: (VDBPSADBWZrmi:{ *:[v32i16] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*459245*/      /*SwitchType*/ 19, MVT::v8i16,// ->459266
/*459247*/        OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*459249*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*459252*/        OPC_EmitMergeInputChains1_1,
/*459253*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VDBPSADBWZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (X86dbpsadbw:{ *:[v8i16] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                  // Dst: (VDBPSADBWZ128rmi:{ *:[v8i16] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*459266*/      /*SwitchType*/ 19, MVT::v16i16,// ->459287
/*459268*/        OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*459270*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*459273*/        OPC_EmitMergeInputChains1_1,
/*459274*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VDBPSADBWZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (X86dbpsadbw:{ *:[v16i16] } VR256X:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                  // Dst: (VDBPSADBWZ256rmi:{ *:[v16i16] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*459287*/      0, // EndSwitchType
/*459288*/    /*Scope*/ 48, /*->459337*/
/*459289*/      OPC_RecordChild1, // #1 = $src2
/*459290*/      OPC_RecordChild2, // #2 = $src3
/*459291*/      OPC_MoveChild2,
/*459292*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*459295*/      OPC_MoveParent,
/*459296*/      OPC_SwitchType /*3 cases */, 11, MVT::v32i16,// ->459310
/*459299*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*459301*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VDBPSADBWZrri), 0,
                      MVT::v32i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86dbpsadbw:{ *:[v32i16] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VDBPSADBWZrri:{ *:[v32i16] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (timm:{ *:[i8] }):$src3)
/*459310*/      /*SwitchType*/ 11, MVT::v8i16,// ->459323
/*459312*/        OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*459314*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VDBPSADBWZ128rri), 0,
                      MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86dbpsadbw:{ *:[v8i16] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VDBPSADBWZ128rri:{ *:[v8i16] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (timm:{ *:[i8] }):$src3)
/*459323*/      /*SwitchType*/ 11, MVT::v16i16,// ->459336
/*459325*/        OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*459327*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VDBPSADBWZ256rri), 0,
                      MVT::v16i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86dbpsadbw:{ *:[v16i16] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VDBPSADBWZ256rri:{ *:[v16i16] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (timm:{ *:[i8] }):$src3)
/*459336*/      0, // EndSwitchType
/*459337*/    0, /*End of Scope*/
/*459338*/  /*SwitchOpcode*/ 41|128,1/*169*/, TARGET_VAL(X86ISD::VSHLDQ),// ->459511
/*459342*/    OPC_Scope, 81, /*->459425*/ // 2 children in Scope
/*459344*/      OPC_MoveChild0,
/*459345*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*459348*/      OPC_RecordMemRef,
/*459349*/      OPC_RecordNode, // #0 = 'ld' chained node
/*459350*/      OPC_CheckFoldableChainNode,
/*459351*/      OPC_RecordChild1, // #1 = $src1
/*459352*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*459354*/      OPC_CheckPredicate, 9, // Predicate_load
/*459356*/      OPC_MoveParent,
/*459357*/      OPC_RecordChild1, // #2 = $src2
/*459358*/      OPC_MoveChild1,
/*459359*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*459362*/      OPC_MoveParent,
/*459363*/      OPC_SwitchType /*3 cases */, 18, MVT::v64i8,// ->459384
/*459366*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*459368*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*459371*/        OPC_EmitMergeInputChains1_0,
/*459372*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v64i8, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                  // Src: (X86vshldq:{ *:[v64i8] } (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                  // Dst: (VPSLLDQZrm:{ *:[v64i8] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*459384*/      /*SwitchType*/ 18, MVT::v32i8,// ->459404
/*459386*/        OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*459388*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*459391*/        OPC_EmitMergeInputChains1_0,
/*459392*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v32i8, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                  // Src: (X86vshldq:{ *:[v32i8] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                  // Dst: (VPSLLDQZ256rm:{ *:[v32i8] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*459404*/      /*SwitchType*/ 18, MVT::v16i8,// ->459424
/*459406*/        OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*459408*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*459411*/        OPC_EmitMergeInputChains1_0,
/*459412*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i8, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                  // Src: (X86vshldq:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                  // Dst: (VPSLLDQZ128rm:{ *:[v16i8] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*459424*/      0, // EndSwitchType
/*459425*/    /*Scope*/ 84, /*->459510*/
/*459426*/      OPC_RecordChild0, // #0 = $src1
/*459427*/      OPC_RecordChild1, // #1 = $src2
/*459428*/      OPC_MoveChild1,
/*459429*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*459432*/      OPC_MoveParent,
/*459433*/      OPC_SwitchType /*3 cases */, 35, MVT::v16i8,// ->459471
/*459436*/        OPC_Scope, 10, /*->459448*/ // 3 children in Scope
/*459438*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*459440*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDQri), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vshldq:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSLLDQri:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (timm:{ *:[i8] }):$src2)
/*459448*/        /*Scope*/ 10, /*->459459*/
/*459449*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*459451*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PSLLDQri), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vshldq:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (PSLLDQri:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (timm:{ *:[i8] }):$src2)
/*459459*/        /*Scope*/ 10, /*->459470*/
/*459460*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*459462*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDQZ128rr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vshldq:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSLLDQZ128rr:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (timm:{ *:[i8] }):$src2)
/*459470*/        0, /*End of Scope*/
/*459471*/      /*SwitchType*/ 24, MVT::v32i8,// ->459497
/*459473*/        OPC_Scope, 10, /*->459485*/ // 2 children in Scope
/*459475*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*459477*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDQYri), 0,
                        MVT::v32i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vshldq:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSLLDQYri:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, (timm:{ *:[i8] }):$src2)
/*459485*/        /*Scope*/ 10, /*->459496*/
/*459486*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*459488*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDQZ256rr), 0,
                        MVT::v32i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vshldq:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSLLDQZ256rr:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (timm:{ *:[i8] }):$src2)
/*459496*/        0, /*End of Scope*/
/*459497*/      /*SwitchType*/ 10, MVT::v64i8,// ->459509
/*459499*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*459501*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLDQZrr), 0,
                      MVT::v64i8, 2/*#Ops*/, 0, 1, 
                  // Src: (X86vshldq:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                  // Dst: (VPSLLDQZrr:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (timm:{ *:[i8] }):$src2)
/*459509*/      0, // EndSwitchType
/*459510*/    0, /*End of Scope*/
/*459511*/  /*SwitchOpcode*/ 41|128,1/*169*/, TARGET_VAL(X86ISD::VSRLDQ),// ->459684
/*459515*/    OPC_Scope, 81, /*->459598*/ // 2 children in Scope
/*459517*/      OPC_MoveChild0,
/*459518*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*459521*/      OPC_RecordMemRef,
/*459522*/      OPC_RecordNode, // #0 = 'ld' chained node
/*459523*/      OPC_CheckFoldableChainNode,
/*459524*/      OPC_RecordChild1, // #1 = $src1
/*459525*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*459527*/      OPC_CheckPredicate, 9, // Predicate_load
/*459529*/      OPC_MoveParent,
/*459530*/      OPC_RecordChild1, // #2 = $src2
/*459531*/      OPC_MoveChild1,
/*459532*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*459535*/      OPC_MoveParent,
/*459536*/      OPC_SwitchType /*3 cases */, 18, MVT::v64i8,// ->459557
/*459539*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*459541*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*459544*/        OPC_EmitMergeInputChains1_0,
/*459545*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v64i8, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                  // Src: (X86vshrdq:{ *:[v64i8] } (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                  // Dst: (VPSRLDQZrm:{ *:[v64i8] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*459557*/      /*SwitchType*/ 18, MVT::v32i8,// ->459577
/*459559*/        OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*459561*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*459564*/        OPC_EmitMergeInputChains1_0,
/*459565*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v32i8, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                  // Src: (X86vshrdq:{ *:[v32i8] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                  // Dst: (VPSRLDQZ256rm:{ *:[v32i8] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*459577*/      /*SwitchType*/ 18, MVT::v16i8,// ->459597
/*459579*/        OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*459581*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*459584*/        OPC_EmitMergeInputChains1_0,
/*459585*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i8, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                  // Src: (X86vshrdq:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                  // Dst: (VPSRLDQZ128rm:{ *:[v16i8] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*459597*/      0, // EndSwitchType
/*459598*/    /*Scope*/ 84, /*->459683*/
/*459599*/      OPC_RecordChild0, // #0 = $src1
/*459600*/      OPC_RecordChild1, // #1 = $src2
/*459601*/      OPC_MoveChild1,
/*459602*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*459605*/      OPC_MoveParent,
/*459606*/      OPC_SwitchType /*3 cases */, 35, MVT::v16i8,// ->459644
/*459609*/        OPC_Scope, 10, /*->459621*/ // 3 children in Scope
/*459611*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*459613*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDQri), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vshrdq:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSRLDQri:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (timm:{ *:[i8] }):$src2)
/*459621*/        /*Scope*/ 10, /*->459632*/
/*459622*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*459624*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PSRLDQri), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vshrdq:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (PSRLDQri:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (timm:{ *:[i8] }):$src2)
/*459632*/        /*Scope*/ 10, /*->459643*/
/*459633*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*459635*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDQZ128rr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vshrdq:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSRLDQZ128rr:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (timm:{ *:[i8] }):$src2)
/*459643*/        0, /*End of Scope*/
/*459644*/      /*SwitchType*/ 24, MVT::v32i8,// ->459670
/*459646*/        OPC_Scope, 10, /*->459658*/ // 2 children in Scope
/*459648*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*459650*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDQYri), 0,
                        MVT::v32i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vshrdq:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSRLDQYri:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, (timm:{ *:[i8] }):$src2)
/*459658*/        /*Scope*/ 10, /*->459669*/
/*459659*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*459661*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDQZ256rr), 0,
                        MVT::v32i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vshrdq:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPSRLDQZ256rr:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (timm:{ *:[i8] }):$src2)
/*459669*/        0, /*End of Scope*/
/*459670*/      /*SwitchType*/ 10, MVT::v64i8,// ->459682
/*459672*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*459674*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLDQZrr), 0,
                      MVT::v64i8, 2/*#Ops*/, 0, 1, 
                  // Src: (X86vshrdq:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                  // Dst: (VPSRLDQZrr:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (timm:{ *:[i8] }):$src2)
/*459682*/      0, // EndSwitchType
/*459683*/    0, /*End of Scope*/
/*459684*/  /*SwitchOpcode*/ 89|128,20/*2649*/, TARGET_VAL(X86ISD::VPTERNLOG),// ->462337
/*459688*/    OPC_Scope, 83, /*->459773*/ // 37 children in Scope
/*459690*/      OPC_RecordChild0, // #0 = $src1
/*459691*/      OPC_RecordChild1, // #1 = $src2
/*459692*/      OPC_MoveChild2,
/*459693*/      OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->459734
/*459697*/        OPC_RecordMemRef,
/*459698*/        OPC_RecordNode, // #2 = 'ld' chained node
/*459699*/        OPC_CheckFoldableChainNode,
/*459700*/        OPC_RecordChild1, // #3 = $src3
/*459701*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*459703*/        OPC_CheckPredicate, 9, // Predicate_load
/*459705*/        OPC_MoveParent,
/*459706*/        OPC_RecordChild3, // #4 = $src4
/*459707*/        OPC_MoveChild3,
/*459708*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*459711*/        OPC_MoveParent,
/*459712*/        OPC_CheckType, MVT::v16i32,
/*459714*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*459716*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*459719*/        OPC_EmitMergeInputChains1_2,
/*459720*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                  // Src: (X86vpternlog:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src4) - Complexity = 28
                  // Dst: (VPTERNLOGDZrmi:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i8] }):$src4)
/*459734*/      /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->459772
/*459737*/        OPC_RecordMemRef,
/*459738*/        OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*459739*/        OPC_CheckFoldableChainNode,
/*459740*/        OPC_RecordChild1, // #3 = $src3
/*459741*/        OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*459743*/        OPC_MoveParent,
/*459744*/        OPC_RecordChild3, // #4 = $src4
/*459745*/        OPC_MoveChild3,
/*459746*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*459749*/        OPC_MoveParent,
/*459750*/        OPC_CheckType, MVT::v16i32,
/*459752*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*459754*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*459757*/        OPC_EmitMergeInputChains1_2,
/*459758*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                  // Src: (X86vpternlog:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src4) - Complexity = 28
                  // Dst: (VPTERNLOGDZrmbi:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i8] }):$src4)
/*459772*/      0, // EndSwitchOpcode
/*459773*/    /*Scope*/ 46, /*->459820*/
/*459774*/      OPC_MoveChild0,
/*459775*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*459778*/      OPC_RecordMemRef,
/*459779*/      OPC_RecordNode, // #0 = 'ld' chained node
/*459780*/      OPC_CheckFoldableChainNode,
/*459781*/      OPC_RecordChild1, // #1 = $src3
/*459782*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*459784*/      OPC_CheckPredicate, 9, // Predicate_load
/*459786*/      OPC_MoveParent,
/*459787*/      OPC_RecordChild1, // #2 = $src2
/*459788*/      OPC_RecordChild2, // #3 = $src1
/*459789*/      OPC_RecordChild3, // #4 = $src4
/*459790*/      OPC_MoveChild3,
/*459791*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*459794*/      OPC_MoveParent,
/*459795*/      OPC_CheckType, MVT::v16i32,
/*459797*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*459799*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #5 #6 #7 #8 #9
/*459802*/      OPC_EmitMergeInputChains1_0,
/*459803*/      OPC_EmitNodeXForm, 19, 4, // VPTERNLOG321_imm8
/*459806*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v16i32, 8/*#Ops*/, 3, 2, 5, 6, 7, 8, 9, 10, 
                // Src: (X86vpternlog:{ *:[v16i32] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src1, (timm:{ *:[i8] }):$src4) - Complexity = 28
                // Dst: (VPTERNLOGDZrmi:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*459820*/    /*Scope*/ 46, /*->459867*/
/*459821*/      OPC_RecordChild0, // #0 = $src1
/*459822*/      OPC_MoveChild1,
/*459823*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*459826*/      OPC_RecordMemRef,
/*459827*/      OPC_RecordNode, // #1 = 'ld' chained node
/*459828*/      OPC_CheckFoldableChainNode,
/*459829*/      OPC_RecordChild1, // #2 = $src3
/*459830*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*459832*/      OPC_CheckPredicate, 9, // Predicate_load
/*459834*/      OPC_MoveParent,
/*459835*/      OPC_RecordChild2, // #3 = $src2
/*459836*/      OPC_RecordChild3, // #4 = $src4
/*459837*/      OPC_MoveChild3,
/*459838*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*459841*/      OPC_MoveParent,
/*459842*/      OPC_CheckType, MVT::v16i32,
/*459844*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*459846*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*459849*/      OPC_EmitMergeInputChains1_1,
/*459850*/      OPC_EmitNodeXForm, 20, 4, // VPTERNLOG132_imm8
/*459853*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v16i32, 8/*#Ops*/, 0, 3, 5, 6, 7, 8, 9, 10, 
                // Src: (X86vpternlog:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16i32] }:$src2, (timm:{ *:[i8] }):$src4) - Complexity = 28
                // Dst: (VPTERNLOGDZrmi:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*459867*/    /*Scope*/ 44, /*->459912*/
/*459868*/      OPC_MoveChild0,
/*459869*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*459872*/      OPC_RecordMemRef,
/*459873*/      OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*459874*/      OPC_CheckFoldableChainNode,
/*459875*/      OPC_RecordChild1, // #1 = $src3
/*459876*/      OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*459878*/      OPC_MoveParent,
/*459879*/      OPC_RecordChild1, // #2 = $src2
/*459880*/      OPC_RecordChild2, // #3 = $src1
/*459881*/      OPC_RecordChild3, // #4 = $src4
/*459882*/      OPC_MoveChild3,
/*459883*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*459886*/      OPC_MoveParent,
/*459887*/      OPC_CheckType, MVT::v16i32,
/*459889*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*459891*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #5 #6 #7 #8 #9
/*459894*/      OPC_EmitMergeInputChains1_0,
/*459895*/      OPC_EmitNodeXForm, 19, 4, // VPTERNLOG321_imm8
/*459898*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v16i32, 8/*#Ops*/, 3, 2, 5, 6, 7, 8, 9, 10, 
                // Src: (X86vpternlog:{ *:[v16i32] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src1, (timm:{ *:[i8] }):$src4) - Complexity = 28
                // Dst: (VPTERNLOGDZrmbi:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*459912*/    /*Scope*/ 2|128,1/*130*/, /*->460044*/
/*459914*/      OPC_RecordChild0, // #0 = $src1
/*459915*/      OPC_Scope, 43, /*->459960*/ // 2 children in Scope
/*459917*/        OPC_MoveChild1,
/*459918*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*459921*/        OPC_RecordMemRef,
/*459922*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*459923*/        OPC_CheckFoldableChainNode,
/*459924*/        OPC_RecordChild1, // #2 = $src3
/*459925*/        OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*459927*/        OPC_MoveParent,
/*459928*/        OPC_RecordChild2, // #3 = $src2
/*459929*/        OPC_RecordChild3, // #4 = $src4
/*459930*/        OPC_MoveChild3,
/*459931*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*459934*/        OPC_MoveParent,
/*459935*/        OPC_CheckType, MVT::v16i32,
/*459937*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*459939*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*459942*/        OPC_EmitMergeInputChains1_1,
/*459943*/        OPC_EmitNodeXForm, 20, 4, // VPTERNLOG132_imm8
/*459946*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i32, 8/*#Ops*/, 0, 3, 5, 6, 7, 8, 9, 10, 
                  // Src: (X86vpternlog:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16i32] }:$src2, (timm:{ *:[i8] }):$src4) - Complexity = 28
                  // Dst: (VPTERNLOGDZrmbi:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*459960*/      /*Scope*/ 82, /*->460043*/
/*459961*/        OPC_RecordChild1, // #1 = $src2
/*459962*/        OPC_MoveChild2,
/*459963*/        OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->460004
/*459967*/          OPC_RecordMemRef,
/*459968*/          OPC_RecordNode, // #2 = 'ld' chained node
/*459969*/          OPC_CheckFoldableChainNode,
/*459970*/          OPC_RecordChild1, // #3 = $src3
/*459971*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*459973*/          OPC_CheckPredicate, 9, // Predicate_load
/*459975*/          OPC_MoveParent,
/*459976*/          OPC_RecordChild3, // #4 = $src4
/*459977*/          OPC_MoveChild3,
/*459978*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*459981*/          OPC_MoveParent,
/*459982*/          OPC_CheckType, MVT::v4i32,
/*459984*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*459986*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*459989*/          OPC_EmitMergeInputChains1_2,
/*459990*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                    // Src: (X86vpternlog:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src4) - Complexity = 28
                    // Dst: (VPTERNLOGDZ128rmi:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i8] }):$src4)
/*460004*/        /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->460042
/*460007*/          OPC_RecordMemRef,
/*460008*/          OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*460009*/          OPC_CheckFoldableChainNode,
/*460010*/          OPC_RecordChild1, // #3 = $src3
/*460011*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*460013*/          OPC_MoveParent,
/*460014*/          OPC_RecordChild3, // #4 = $src4
/*460015*/          OPC_MoveChild3,
/*460016*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*460019*/          OPC_MoveParent,
/*460020*/          OPC_CheckType, MVT::v4i32,
/*460022*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*460024*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*460027*/          OPC_EmitMergeInputChains1_2,
/*460028*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                    // Src: (X86vpternlog:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src4) - Complexity = 28
                    // Dst: (VPTERNLOGDZ128rmbi:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i8] }):$src4)
/*460042*/        0, // EndSwitchOpcode
/*460043*/      0, /*End of Scope*/
/*460044*/    /*Scope*/ 46, /*->460091*/
/*460045*/      OPC_MoveChild0,
/*460046*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*460049*/      OPC_RecordMemRef,
/*460050*/      OPC_RecordNode, // #0 = 'ld' chained node
/*460051*/      OPC_CheckFoldableChainNode,
/*460052*/      OPC_RecordChild1, // #1 = $src3
/*460053*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*460055*/      OPC_CheckPredicate, 9, // Predicate_load
/*460057*/      OPC_MoveParent,
/*460058*/      OPC_RecordChild1, // #2 = $src2
/*460059*/      OPC_RecordChild2, // #3 = $src1
/*460060*/      OPC_RecordChild3, // #4 = $src4
/*460061*/      OPC_MoveChild3,
/*460062*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*460065*/      OPC_MoveParent,
/*460066*/      OPC_CheckType, MVT::v4i32,
/*460068*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*460070*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #5 #6 #7 #8 #9
/*460073*/      OPC_EmitMergeInputChains1_0,
/*460074*/      OPC_EmitNodeXForm, 19, 4, // VPTERNLOG321_imm8
/*460077*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i32, 8/*#Ops*/, 3, 2, 5, 6, 7, 8, 9, 10, 
                // Src: (X86vpternlog:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$src4) - Complexity = 28
                // Dst: (VPTERNLOGDZ128rmi:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*460091*/    /*Scope*/ 46, /*->460138*/
/*460092*/      OPC_RecordChild0, // #0 = $src1
/*460093*/      OPC_MoveChild1,
/*460094*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*460097*/      OPC_RecordMemRef,
/*460098*/      OPC_RecordNode, // #1 = 'ld' chained node
/*460099*/      OPC_CheckFoldableChainNode,
/*460100*/      OPC_RecordChild1, // #2 = $src3
/*460101*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*460103*/      OPC_CheckPredicate, 9, // Predicate_load
/*460105*/      OPC_MoveParent,
/*460106*/      OPC_RecordChild2, // #3 = $src2
/*460107*/      OPC_RecordChild3, // #4 = $src4
/*460108*/      OPC_MoveChild3,
/*460109*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*460112*/      OPC_MoveParent,
/*460113*/      OPC_CheckType, MVT::v4i32,
/*460115*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*460117*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*460120*/      OPC_EmitMergeInputChains1_1,
/*460121*/      OPC_EmitNodeXForm, 20, 4, // VPTERNLOG132_imm8
/*460124*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i32, 8/*#Ops*/, 0, 3, 5, 6, 7, 8, 9, 10, 
                // Src: (X86vpternlog:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4i32] }:$src2, (timm:{ *:[i8] }):$src4) - Complexity = 28
                // Dst: (VPTERNLOGDZ128rmi:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*460138*/    /*Scope*/ 44, /*->460183*/
/*460139*/      OPC_MoveChild0,
/*460140*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*460143*/      OPC_RecordMemRef,
/*460144*/      OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*460145*/      OPC_CheckFoldableChainNode,
/*460146*/      OPC_RecordChild1, // #1 = $src3
/*460147*/      OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*460149*/      OPC_MoveParent,
/*460150*/      OPC_RecordChild1, // #2 = $src2
/*460151*/      OPC_RecordChild2, // #3 = $src1
/*460152*/      OPC_RecordChild3, // #4 = $src4
/*460153*/      OPC_MoveChild3,
/*460154*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*460157*/      OPC_MoveParent,
/*460158*/      OPC_CheckType, MVT::v4i32,
/*460160*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*460162*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #5 #6 #7 #8 #9
/*460165*/      OPC_EmitMergeInputChains1_0,
/*460166*/      OPC_EmitNodeXForm, 19, 4, // VPTERNLOG321_imm8
/*460169*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i32, 8/*#Ops*/, 3, 2, 5, 6, 7, 8, 9, 10, 
                // Src: (X86vpternlog:{ *:[v4i32] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src1, (timm:{ *:[i8] }):$src4) - Complexity = 28
                // Dst: (VPTERNLOGDZ128rmbi:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*460183*/    /*Scope*/ 2|128,1/*130*/, /*->460315*/
/*460185*/      OPC_RecordChild0, // #0 = $src1
/*460186*/      OPC_Scope, 43, /*->460231*/ // 2 children in Scope
/*460188*/        OPC_MoveChild1,
/*460189*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*460192*/        OPC_RecordMemRef,
/*460193*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*460194*/        OPC_CheckFoldableChainNode,
/*460195*/        OPC_RecordChild1, // #2 = $src3
/*460196*/        OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*460198*/        OPC_MoveParent,
/*460199*/        OPC_RecordChild2, // #3 = $src2
/*460200*/        OPC_RecordChild3, // #4 = $src4
/*460201*/        OPC_MoveChild3,
/*460202*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*460205*/        OPC_MoveParent,
/*460206*/        OPC_CheckType, MVT::v4i32,
/*460208*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*460210*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*460213*/        OPC_EmitMergeInputChains1_1,
/*460214*/        OPC_EmitNodeXForm, 20, 4, // VPTERNLOG132_imm8
/*460217*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i32, 8/*#Ops*/, 0, 3, 5, 6, 7, 8, 9, 10, 
                  // Src: (X86vpternlog:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4i32] }:$src2, (timm:{ *:[i8] }):$src4) - Complexity = 28
                  // Dst: (VPTERNLOGDZ128rmbi:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*460231*/      /*Scope*/ 82, /*->460314*/
/*460232*/        OPC_RecordChild1, // #1 = $src2
/*460233*/        OPC_MoveChild2,
/*460234*/        OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->460275
/*460238*/          OPC_RecordMemRef,
/*460239*/          OPC_RecordNode, // #2 = 'ld' chained node
/*460240*/          OPC_CheckFoldableChainNode,
/*460241*/          OPC_RecordChild1, // #3 = $src3
/*460242*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*460244*/          OPC_CheckPredicate, 9, // Predicate_load
/*460246*/          OPC_MoveParent,
/*460247*/          OPC_RecordChild3, // #4 = $src4
/*460248*/          OPC_MoveChild3,
/*460249*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*460252*/          OPC_MoveParent,
/*460253*/          OPC_CheckType, MVT::v8i32,
/*460255*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*460257*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*460260*/          OPC_EmitMergeInputChains1_2,
/*460261*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                    // Src: (X86vpternlog:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src4) - Complexity = 28
                    // Dst: (VPTERNLOGDZ256rmi:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i8] }):$src4)
/*460275*/        /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->460313
/*460278*/          OPC_RecordMemRef,
/*460279*/          OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*460280*/          OPC_CheckFoldableChainNode,
/*460281*/          OPC_RecordChild1, // #3 = $src3
/*460282*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*460284*/          OPC_MoveParent,
/*460285*/          OPC_RecordChild3, // #4 = $src4
/*460286*/          OPC_MoveChild3,
/*460287*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*460290*/          OPC_MoveParent,
/*460291*/          OPC_CheckType, MVT::v8i32,
/*460293*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*460295*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*460298*/          OPC_EmitMergeInputChains1_2,
/*460299*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                    // Src: (X86vpternlog:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src4) - Complexity = 28
                    // Dst: (VPTERNLOGDZ256rmbi:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i8] }):$src4)
/*460313*/        0, // EndSwitchOpcode
/*460314*/      0, /*End of Scope*/
/*460315*/    /*Scope*/ 46, /*->460362*/
/*460316*/      OPC_MoveChild0,
/*460317*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*460320*/      OPC_RecordMemRef,
/*460321*/      OPC_RecordNode, // #0 = 'ld' chained node
/*460322*/      OPC_CheckFoldableChainNode,
/*460323*/      OPC_RecordChild1, // #1 = $src3
/*460324*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*460326*/      OPC_CheckPredicate, 9, // Predicate_load
/*460328*/      OPC_MoveParent,
/*460329*/      OPC_RecordChild1, // #2 = $src2
/*460330*/      OPC_RecordChild2, // #3 = $src1
/*460331*/      OPC_RecordChild3, // #4 = $src4
/*460332*/      OPC_MoveChild3,
/*460333*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*460336*/      OPC_MoveParent,
/*460337*/      OPC_CheckType, MVT::v8i32,
/*460339*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*460341*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #5 #6 #7 #8 #9
/*460344*/      OPC_EmitMergeInputChains1_0,
/*460345*/      OPC_EmitNodeXForm, 19, 4, // VPTERNLOG321_imm8
/*460348*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i32, 8/*#Ops*/, 3, 2, 5, 6, 7, 8, 9, 10, 
                // Src: (X86vpternlog:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src1, (timm:{ *:[i8] }):$src4) - Complexity = 28
                // Dst: (VPTERNLOGDZ256rmi:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*460362*/    /*Scope*/ 46, /*->460409*/
/*460363*/      OPC_RecordChild0, // #0 = $src1
/*460364*/      OPC_MoveChild1,
/*460365*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*460368*/      OPC_RecordMemRef,
/*460369*/      OPC_RecordNode, // #1 = 'ld' chained node
/*460370*/      OPC_CheckFoldableChainNode,
/*460371*/      OPC_RecordChild1, // #2 = $src3
/*460372*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*460374*/      OPC_CheckPredicate, 9, // Predicate_load
/*460376*/      OPC_MoveParent,
/*460377*/      OPC_RecordChild2, // #3 = $src2
/*460378*/      OPC_RecordChild3, // #4 = $src4
/*460379*/      OPC_MoveChild3,
/*460380*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*460383*/      OPC_MoveParent,
/*460384*/      OPC_CheckType, MVT::v8i32,
/*460386*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*460388*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*460391*/      OPC_EmitMergeInputChains1_1,
/*460392*/      OPC_EmitNodeXForm, 20, 4, // VPTERNLOG132_imm8
/*460395*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i32, 8/*#Ops*/, 0, 3, 5, 6, 7, 8, 9, 10, 
                // Src: (X86vpternlog:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8i32] }:$src2, (timm:{ *:[i8] }):$src4) - Complexity = 28
                // Dst: (VPTERNLOGDZ256rmi:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*460409*/    /*Scope*/ 44, /*->460454*/
/*460410*/      OPC_MoveChild0,
/*460411*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*460414*/      OPC_RecordMemRef,
/*460415*/      OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*460416*/      OPC_CheckFoldableChainNode,
/*460417*/      OPC_RecordChild1, // #1 = $src3
/*460418*/      OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*460420*/      OPC_MoveParent,
/*460421*/      OPC_RecordChild1, // #2 = $src2
/*460422*/      OPC_RecordChild2, // #3 = $src1
/*460423*/      OPC_RecordChild3, // #4 = $src4
/*460424*/      OPC_MoveChild3,
/*460425*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*460428*/      OPC_MoveParent,
/*460429*/      OPC_CheckType, MVT::v8i32,
/*460431*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*460433*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #5 #6 #7 #8 #9
/*460436*/      OPC_EmitMergeInputChains1_0,
/*460437*/      OPC_EmitNodeXForm, 19, 4, // VPTERNLOG321_imm8
/*460440*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i32, 8/*#Ops*/, 3, 2, 5, 6, 7, 8, 9, 10, 
                // Src: (X86vpternlog:{ *:[v8i32] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src1, (timm:{ *:[i8] }):$src4) - Complexity = 28
                // Dst: (VPTERNLOGDZ256rmbi:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*460454*/    /*Scope*/ 2|128,1/*130*/, /*->460586*/
/*460456*/      OPC_RecordChild0, // #0 = $src1
/*460457*/      OPC_Scope, 43, /*->460502*/ // 2 children in Scope
/*460459*/        OPC_MoveChild1,
/*460460*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*460463*/        OPC_RecordMemRef,
/*460464*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*460465*/        OPC_CheckFoldableChainNode,
/*460466*/        OPC_RecordChild1, // #2 = $src3
/*460467*/        OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*460469*/        OPC_MoveParent,
/*460470*/        OPC_RecordChild2, // #3 = $src2
/*460471*/        OPC_RecordChild3, // #4 = $src4
/*460472*/        OPC_MoveChild3,
/*460473*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*460476*/        OPC_MoveParent,
/*460477*/        OPC_CheckType, MVT::v8i32,
/*460479*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*460481*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*460484*/        OPC_EmitMergeInputChains1_1,
/*460485*/        OPC_EmitNodeXForm, 20, 4, // VPTERNLOG132_imm8
/*460488*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i32, 8/*#Ops*/, 0, 3, 5, 6, 7, 8, 9, 10, 
                  // Src: (X86vpternlog:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8i32] }:$src2, (timm:{ *:[i8] }):$src4) - Complexity = 28
                  // Dst: (VPTERNLOGDZ256rmbi:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*460502*/      /*Scope*/ 82, /*->460585*/
/*460503*/        OPC_RecordChild1, // #1 = $src2
/*460504*/        OPC_MoveChild2,
/*460505*/        OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->460546
/*460509*/          OPC_RecordMemRef,
/*460510*/          OPC_RecordNode, // #2 = 'ld' chained node
/*460511*/          OPC_CheckFoldableChainNode,
/*460512*/          OPC_RecordChild1, // #3 = $src3
/*460513*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*460515*/          OPC_CheckPredicate, 9, // Predicate_load
/*460517*/          OPC_MoveParent,
/*460518*/          OPC_RecordChild3, // #4 = $src4
/*460519*/          OPC_MoveChild3,
/*460520*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*460523*/          OPC_MoveParent,
/*460524*/          OPC_CheckType, MVT::v8i64,
/*460526*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*460528*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*460531*/          OPC_EmitMergeInputChains1_2,
/*460532*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                    // Src: (X86vpternlog:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src4) - Complexity = 28
                    // Dst: (VPTERNLOGQZrmi:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i8] }):$src4)
/*460546*/        /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->460584
/*460549*/          OPC_RecordMemRef,
/*460550*/          OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*460551*/          OPC_CheckFoldableChainNode,
/*460552*/          OPC_RecordChild1, // #3 = $src3
/*460553*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*460555*/          OPC_MoveParent,
/*460556*/          OPC_RecordChild3, // #4 = $src4
/*460557*/          OPC_MoveChild3,
/*460558*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*460561*/          OPC_MoveParent,
/*460562*/          OPC_CheckType, MVT::v8i64,
/*460564*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*460566*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*460569*/          OPC_EmitMergeInputChains1_2,
/*460570*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                    // Src: (X86vpternlog:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src4) - Complexity = 28
                    // Dst: (VPTERNLOGQZrmbi:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i8] }):$src4)
/*460584*/        0, // EndSwitchOpcode
/*460585*/      0, /*End of Scope*/
/*460586*/    /*Scope*/ 46, /*->460633*/
/*460587*/      OPC_MoveChild0,
/*460588*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*460591*/      OPC_RecordMemRef,
/*460592*/      OPC_RecordNode, // #0 = 'ld' chained node
/*460593*/      OPC_CheckFoldableChainNode,
/*460594*/      OPC_RecordChild1, // #1 = $src3
/*460595*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*460597*/      OPC_CheckPredicate, 9, // Predicate_load
/*460599*/      OPC_MoveParent,
/*460600*/      OPC_RecordChild1, // #2 = $src2
/*460601*/      OPC_RecordChild2, // #3 = $src1
/*460602*/      OPC_RecordChild3, // #4 = $src4
/*460603*/      OPC_MoveChild3,
/*460604*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*460607*/      OPC_MoveParent,
/*460608*/      OPC_CheckType, MVT::v8i64,
/*460610*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*460612*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #5 #6 #7 #8 #9
/*460615*/      OPC_EmitMergeInputChains1_0,
/*460616*/      OPC_EmitNodeXForm, 19, 4, // VPTERNLOG321_imm8
/*460619*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i64, 8/*#Ops*/, 3, 2, 5, 6, 7, 8, 9, 10, 
                // Src: (X86vpternlog:{ *:[v8i64] } (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src1, (timm:{ *:[i8] }):$src4) - Complexity = 28
                // Dst: (VPTERNLOGQZrmi:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*460633*/    /*Scope*/ 46, /*->460680*/
/*460634*/      OPC_RecordChild0, // #0 = $src1
/*460635*/      OPC_MoveChild1,
/*460636*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*460639*/      OPC_RecordMemRef,
/*460640*/      OPC_RecordNode, // #1 = 'ld' chained node
/*460641*/      OPC_CheckFoldableChainNode,
/*460642*/      OPC_RecordChild1, // #2 = $src3
/*460643*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*460645*/      OPC_CheckPredicate, 9, // Predicate_load
/*460647*/      OPC_MoveParent,
/*460648*/      OPC_RecordChild2, // #3 = $src2
/*460649*/      OPC_RecordChild3, // #4 = $src4
/*460650*/      OPC_MoveChild3,
/*460651*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*460654*/      OPC_MoveParent,
/*460655*/      OPC_CheckType, MVT::v8i64,
/*460657*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*460659*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*460662*/      OPC_EmitMergeInputChains1_1,
/*460663*/      OPC_EmitNodeXForm, 20, 4, // VPTERNLOG132_imm8
/*460666*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i64, 8/*#Ops*/, 0, 3, 5, 6, 7, 8, 9, 10, 
                // Src: (X86vpternlog:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v8i64] }:$src2, (timm:{ *:[i8] }):$src4) - Complexity = 28
                // Dst: (VPTERNLOGQZrmi:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*460680*/    /*Scope*/ 44, /*->460725*/
/*460681*/      OPC_MoveChild0,
/*460682*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*460685*/      OPC_RecordMemRef,
/*460686*/      OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*460687*/      OPC_CheckFoldableChainNode,
/*460688*/      OPC_RecordChild1, // #1 = $src3
/*460689*/      OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*460691*/      OPC_MoveParent,
/*460692*/      OPC_RecordChild1, // #2 = $src2
/*460693*/      OPC_RecordChild2, // #3 = $src1
/*460694*/      OPC_RecordChild3, // #4 = $src4
/*460695*/      OPC_MoveChild3,
/*460696*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*460699*/      OPC_MoveParent,
/*460700*/      OPC_CheckType, MVT::v8i64,
/*460702*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*460704*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #5 #6 #7 #8 #9
/*460707*/      OPC_EmitMergeInputChains1_0,
/*460708*/      OPC_EmitNodeXForm, 19, 4, // VPTERNLOG321_imm8
/*460711*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i64, 8/*#Ops*/, 3, 2, 5, 6, 7, 8, 9, 10, 
                // Src: (X86vpternlog:{ *:[v8i64] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src1, (timm:{ *:[i8] }):$src4) - Complexity = 28
                // Dst: (VPTERNLOGQZrmbi:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*460725*/    /*Scope*/ 2|128,1/*130*/, /*->460857*/
/*460727*/      OPC_RecordChild0, // #0 = $src1
/*460728*/      OPC_Scope, 43, /*->460773*/ // 2 children in Scope
/*460730*/        OPC_MoveChild1,
/*460731*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*460734*/        OPC_RecordMemRef,
/*460735*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*460736*/        OPC_CheckFoldableChainNode,
/*460737*/        OPC_RecordChild1, // #2 = $src3
/*460738*/        OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*460740*/        OPC_MoveParent,
/*460741*/        OPC_RecordChild2, // #3 = $src2
/*460742*/        OPC_RecordChild3, // #4 = $src4
/*460743*/        OPC_MoveChild3,
/*460744*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*460747*/        OPC_MoveParent,
/*460748*/        OPC_CheckType, MVT::v8i64,
/*460750*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*460752*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*460755*/        OPC_EmitMergeInputChains1_1,
/*460756*/        OPC_EmitNodeXForm, 20, 4, // VPTERNLOG132_imm8
/*460759*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i64, 8/*#Ops*/, 0, 3, 5, 6, 7, 8, 9, 10, 
                  // Src: (X86vpternlog:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8i64] }:$src2, (timm:{ *:[i8] }):$src4) - Complexity = 28
                  // Dst: (VPTERNLOGQZrmbi:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*460773*/      /*Scope*/ 82, /*->460856*/
/*460774*/        OPC_RecordChild1, // #1 = $src2
/*460775*/        OPC_MoveChild2,
/*460776*/        OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->460817
/*460780*/          OPC_RecordMemRef,
/*460781*/          OPC_RecordNode, // #2 = 'ld' chained node
/*460782*/          OPC_CheckFoldableChainNode,
/*460783*/          OPC_RecordChild1, // #3 = $src3
/*460784*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*460786*/          OPC_CheckPredicate, 9, // Predicate_load
/*460788*/          OPC_MoveParent,
/*460789*/          OPC_RecordChild3, // #4 = $src4
/*460790*/          OPC_MoveChild3,
/*460791*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*460794*/          OPC_MoveParent,
/*460795*/          OPC_CheckType, MVT::v2i64,
/*460797*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*460799*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*460802*/          OPC_EmitMergeInputChains1_2,
/*460803*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                    // Src: (X86vpternlog:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src4) - Complexity = 28
                    // Dst: (VPTERNLOGQZ128rmi:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i8] }):$src4)
/*460817*/        /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->460855
/*460820*/          OPC_RecordMemRef,
/*460821*/          OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*460822*/          OPC_CheckFoldableChainNode,
/*460823*/          OPC_RecordChild1, // #3 = $src3
/*460824*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*460826*/          OPC_MoveParent,
/*460827*/          OPC_RecordChild3, // #4 = $src4
/*460828*/          OPC_MoveChild3,
/*460829*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*460832*/          OPC_MoveParent,
/*460833*/          OPC_CheckType, MVT::v2i64,
/*460835*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*460837*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*460840*/          OPC_EmitMergeInputChains1_2,
/*460841*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                    // Src: (X86vpternlog:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src4) - Complexity = 28
                    // Dst: (VPTERNLOGQZ128rmbi:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i8] }):$src4)
/*460855*/        0, // EndSwitchOpcode
/*460856*/      0, /*End of Scope*/
/*460857*/    /*Scope*/ 46, /*->460904*/
/*460858*/      OPC_MoveChild0,
/*460859*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*460862*/      OPC_RecordMemRef,
/*460863*/      OPC_RecordNode, // #0 = 'ld' chained node
/*460864*/      OPC_CheckFoldableChainNode,
/*460865*/      OPC_RecordChild1, // #1 = $src3
/*460866*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*460868*/      OPC_CheckPredicate, 9, // Predicate_load
/*460870*/      OPC_MoveParent,
/*460871*/      OPC_RecordChild1, // #2 = $src2
/*460872*/      OPC_RecordChild2, // #3 = $src1
/*460873*/      OPC_RecordChild3, // #4 = $src4
/*460874*/      OPC_MoveChild3,
/*460875*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*460878*/      OPC_MoveParent,
/*460879*/      OPC_CheckType, MVT::v2i64,
/*460881*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*460883*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #5 #6 #7 #8 #9
/*460886*/      OPC_EmitMergeInputChains1_0,
/*460887*/      OPC_EmitNodeXForm, 19, 4, // VPTERNLOG321_imm8
/*460890*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2i64, 8/*#Ops*/, 3, 2, 5, 6, 7, 8, 9, 10, 
                // Src: (X86vpternlog:{ *:[v2i64] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src1, (timm:{ *:[i8] }):$src4) - Complexity = 28
                // Dst: (VPTERNLOGQZ128rmi:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*460904*/    /*Scope*/ 46, /*->460951*/
/*460905*/      OPC_RecordChild0, // #0 = $src1
/*460906*/      OPC_MoveChild1,
/*460907*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*460910*/      OPC_RecordMemRef,
/*460911*/      OPC_RecordNode, // #1 = 'ld' chained node
/*460912*/      OPC_CheckFoldableChainNode,
/*460913*/      OPC_RecordChild1, // #2 = $src3
/*460914*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*460916*/      OPC_CheckPredicate, 9, // Predicate_load
/*460918*/      OPC_MoveParent,
/*460919*/      OPC_RecordChild2, // #3 = $src2
/*460920*/      OPC_RecordChild3, // #4 = $src4
/*460921*/      OPC_MoveChild3,
/*460922*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*460925*/      OPC_MoveParent,
/*460926*/      OPC_CheckType, MVT::v2i64,
/*460928*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*460930*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*460933*/      OPC_EmitMergeInputChains1_1,
/*460934*/      OPC_EmitNodeXForm, 20, 4, // VPTERNLOG132_imm8
/*460937*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2i64, 8/*#Ops*/, 0, 3, 5, 6, 7, 8, 9, 10, 
                // Src: (X86vpternlog:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v2i64] }:$src2, (timm:{ *:[i8] }):$src4) - Complexity = 28
                // Dst: (VPTERNLOGQZ128rmi:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*460951*/    /*Scope*/ 44, /*->460996*/
/*460952*/      OPC_MoveChild0,
/*460953*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*460956*/      OPC_RecordMemRef,
/*460957*/      OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*460958*/      OPC_CheckFoldableChainNode,
/*460959*/      OPC_RecordChild1, // #1 = $src3
/*460960*/      OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*460962*/      OPC_MoveParent,
/*460963*/      OPC_RecordChild1, // #2 = $src2
/*460964*/      OPC_RecordChild2, // #3 = $src1
/*460965*/      OPC_RecordChild3, // #4 = $src4
/*460966*/      OPC_MoveChild3,
/*460967*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*460970*/      OPC_MoveParent,
/*460971*/      OPC_CheckType, MVT::v2i64,
/*460973*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*460975*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #5 #6 #7 #8 #9
/*460978*/      OPC_EmitMergeInputChains1_0,
/*460979*/      OPC_EmitNodeXForm, 19, 4, // VPTERNLOG321_imm8
/*460982*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2i64, 8/*#Ops*/, 3, 2, 5, 6, 7, 8, 9, 10, 
                // Src: (X86vpternlog:{ *:[v2i64] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src1, (timm:{ *:[i8] }):$src4) - Complexity = 28
                // Dst: (VPTERNLOGQZ128rmbi:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*460996*/    /*Scope*/ 2|128,1/*130*/, /*->461128*/
/*460998*/      OPC_RecordChild0, // #0 = $src1
/*460999*/      OPC_Scope, 43, /*->461044*/ // 2 children in Scope
/*461001*/        OPC_MoveChild1,
/*461002*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*461005*/        OPC_RecordMemRef,
/*461006*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*461007*/        OPC_CheckFoldableChainNode,
/*461008*/        OPC_RecordChild1, // #2 = $src3
/*461009*/        OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*461011*/        OPC_MoveParent,
/*461012*/        OPC_RecordChild2, // #3 = $src2
/*461013*/        OPC_RecordChild3, // #4 = $src4
/*461014*/        OPC_MoveChild3,
/*461015*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*461018*/        OPC_MoveParent,
/*461019*/        OPC_CheckType, MVT::v2i64,
/*461021*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*461023*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*461026*/        OPC_EmitMergeInputChains1_1,
/*461027*/        OPC_EmitNodeXForm, 20, 4, // VPTERNLOG132_imm8
/*461030*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 8/*#Ops*/, 0, 3, 5, 6, 7, 8, 9, 10, 
                  // Src: (X86vpternlog:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src2, (timm:{ *:[i8] }):$src4) - Complexity = 28
                  // Dst: (VPTERNLOGQZ128rmbi:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*461044*/      /*Scope*/ 82, /*->461127*/
/*461045*/        OPC_RecordChild1, // #1 = $src2
/*461046*/        OPC_MoveChild2,
/*461047*/        OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::LOAD),// ->461088
/*461051*/          OPC_RecordMemRef,
/*461052*/          OPC_RecordNode, // #2 = 'ld' chained node
/*461053*/          OPC_CheckFoldableChainNode,
/*461054*/          OPC_RecordChild1, // #3 = $src3
/*461055*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*461057*/          OPC_CheckPredicate, 9, // Predicate_load
/*461059*/          OPC_MoveParent,
/*461060*/          OPC_RecordChild3, // #4 = $src4
/*461061*/          OPC_MoveChild3,
/*461062*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*461065*/          OPC_MoveParent,
/*461066*/          OPC_CheckType, MVT::v4i64,
/*461068*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*461070*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*461073*/          OPC_EmitMergeInputChains1_2,
/*461074*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                    // Src: (X86vpternlog:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src4) - Complexity = 28
                    // Dst: (VPTERNLOGQZ256rmi:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i8] }):$src4)
/*461088*/        /*SwitchOpcode*/ 35, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->461126
/*461091*/          OPC_RecordMemRef,
/*461092*/          OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*461093*/          OPC_CheckFoldableChainNode,
/*461094*/          OPC_RecordChild1, // #3 = $src3
/*461095*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*461097*/          OPC_MoveParent,
/*461098*/          OPC_RecordChild3, // #4 = $src4
/*461099*/          OPC_MoveChild3,
/*461100*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*461103*/          OPC_MoveParent,
/*461104*/          OPC_CheckType, MVT::v4i64,
/*461106*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*461108*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*461111*/          OPC_EmitMergeInputChains1_2,
/*461112*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                    // Src: (X86vpternlog:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src4) - Complexity = 28
                    // Dst: (VPTERNLOGQZ256rmbi:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i8] }):$src4)
/*461126*/        0, // EndSwitchOpcode
/*461127*/      0, /*End of Scope*/
/*461128*/    /*Scope*/ 46, /*->461175*/
/*461129*/      OPC_MoveChild0,
/*461130*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*461133*/      OPC_RecordMemRef,
/*461134*/      OPC_RecordNode, // #0 = 'ld' chained node
/*461135*/      OPC_CheckFoldableChainNode,
/*461136*/      OPC_RecordChild1, // #1 = $src3
/*461137*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*461139*/      OPC_CheckPredicate, 9, // Predicate_load
/*461141*/      OPC_MoveParent,
/*461142*/      OPC_RecordChild1, // #2 = $src2
/*461143*/      OPC_RecordChild2, // #3 = $src1
/*461144*/      OPC_RecordChild3, // #4 = $src4
/*461145*/      OPC_MoveChild3,
/*461146*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*461149*/      OPC_MoveParent,
/*461150*/      OPC_CheckType, MVT::v4i64,
/*461152*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*461154*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #5 #6 #7 #8 #9
/*461157*/      OPC_EmitMergeInputChains1_0,
/*461158*/      OPC_EmitNodeXForm, 19, 4, // VPTERNLOG321_imm8
/*461161*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i64, 8/*#Ops*/, 3, 2, 5, 6, 7, 8, 9, 10, 
                // Src: (X86vpternlog:{ *:[v4i64] } (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src1, (timm:{ *:[i8] }):$src4) - Complexity = 28
                // Dst: (VPTERNLOGQZ256rmi:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*461175*/    /*Scope*/ 46, /*->461222*/
/*461176*/      OPC_RecordChild0, // #0 = $src1
/*461177*/      OPC_MoveChild1,
/*461178*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*461181*/      OPC_RecordMemRef,
/*461182*/      OPC_RecordNode, // #1 = 'ld' chained node
/*461183*/      OPC_CheckFoldableChainNode,
/*461184*/      OPC_RecordChild1, // #2 = $src3
/*461185*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*461187*/      OPC_CheckPredicate, 9, // Predicate_load
/*461189*/      OPC_MoveParent,
/*461190*/      OPC_RecordChild2, // #3 = $src2
/*461191*/      OPC_RecordChild3, // #4 = $src4
/*461192*/      OPC_MoveChild3,
/*461193*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*461196*/      OPC_MoveParent,
/*461197*/      OPC_CheckType, MVT::v4i64,
/*461199*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*461201*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*461204*/      OPC_EmitMergeInputChains1_1,
/*461205*/      OPC_EmitNodeXForm, 20, 4, // VPTERNLOG132_imm8
/*461208*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i64, 8/*#Ops*/, 0, 3, 5, 6, 7, 8, 9, 10, 
                // Src: (X86vpternlog:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v4i64] }:$src2, (timm:{ *:[i8] }):$src4) - Complexity = 28
                // Dst: (VPTERNLOGQZ256rmi:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*461222*/    /*Scope*/ 44, /*->461267*/
/*461223*/      OPC_MoveChild0,
/*461224*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*461227*/      OPC_RecordMemRef,
/*461228*/      OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*461229*/      OPC_CheckFoldableChainNode,
/*461230*/      OPC_RecordChild1, // #1 = $src3
/*461231*/      OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*461233*/      OPC_MoveParent,
/*461234*/      OPC_RecordChild1, // #2 = $src2
/*461235*/      OPC_RecordChild2, // #3 = $src1
/*461236*/      OPC_RecordChild3, // #4 = $src4
/*461237*/      OPC_MoveChild3,
/*461238*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*461241*/      OPC_MoveParent,
/*461242*/      OPC_CheckType, MVT::v4i64,
/*461244*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*461246*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #5 #6 #7 #8 #9
/*461249*/      OPC_EmitMergeInputChains1_0,
/*461250*/      OPC_EmitNodeXForm, 19, 4, // VPTERNLOG321_imm8
/*461253*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i64, 8/*#Ops*/, 3, 2, 5, 6, 7, 8, 9, 10, 
                // Src: (X86vpternlog:{ *:[v4i64] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src1, (timm:{ *:[i8] }):$src4) - Complexity = 28
                // Dst: (VPTERNLOGQZ256rmbi:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*461267*/    /*Scope*/ 90, /*->461358*/
/*461268*/      OPC_RecordChild0, // #0 = $src1
/*461269*/      OPC_Scope, 43, /*->461314*/ // 2 children in Scope
/*461271*/        OPC_MoveChild1,
/*461272*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*461275*/        OPC_RecordMemRef,
/*461276*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*461277*/        OPC_CheckFoldableChainNode,
/*461278*/        OPC_RecordChild1, // #2 = $src3
/*461279*/        OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*461281*/        OPC_MoveParent,
/*461282*/        OPC_RecordChild2, // #3 = $src2
/*461283*/        OPC_RecordChild3, // #4 = $src4
/*461284*/        OPC_MoveChild3,
/*461285*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*461288*/        OPC_MoveParent,
/*461289*/        OPC_CheckType, MVT::v4i64,
/*461291*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*461293*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*461296*/        OPC_EmitMergeInputChains1_1,
/*461297*/        OPC_EmitNodeXForm, 20, 4, // VPTERNLOG132_imm8
/*461300*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i64, 8/*#Ops*/, 0, 3, 5, 6, 7, 8, 9, 10, 
                  // Src: (X86vpternlog:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src2, (timm:{ *:[i8] }):$src4) - Complexity = 28
                  // Dst: (VPTERNLOGQZ256rmbi:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*461314*/      /*Scope*/ 42, /*->461357*/
/*461315*/        OPC_RecordChild1, // #1 = $src2
/*461316*/        OPC_MoveChild2,
/*461317*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*461320*/        OPC_RecordMemRef,
/*461321*/        OPC_RecordNode, // #2 = 'ld' chained node
/*461322*/        OPC_CheckFoldableChainNode,
/*461323*/        OPC_RecordChild1, // #3 = $src3
/*461324*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*461326*/        OPC_CheckPredicate, 9, // Predicate_load
/*461328*/        OPC_MoveParent,
/*461329*/        OPC_RecordChild3, // #4 = $src4
/*461330*/        OPC_MoveChild3,
/*461331*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*461334*/        OPC_MoveParent,
/*461335*/        OPC_CheckType, MVT::v16i8,
/*461337*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*461339*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*461342*/        OPC_EmitMergeInputChains1_2,
/*461343*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i8, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                  // Src: (X86vpternlog:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src4) - Complexity = 28
                  // Dst: (VPTERNLOGQZ128rmi:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i8] }):$src4)
/*461357*/      0, /*End of Scope*/
/*461358*/    /*Scope*/ 46, /*->461405*/
/*461359*/      OPC_MoveChild0,
/*461360*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*461363*/      OPC_RecordMemRef,
/*461364*/      OPC_RecordNode, // #0 = 'ld' chained node
/*461365*/      OPC_CheckFoldableChainNode,
/*461366*/      OPC_RecordChild1, // #1 = $src3
/*461367*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*461369*/      OPC_CheckPredicate, 9, // Predicate_load
/*461371*/      OPC_MoveParent,
/*461372*/      OPC_RecordChild1, // #2 = $src2
/*461373*/      OPC_RecordChild2, // #3 = $src1
/*461374*/      OPC_RecordChild3, // #4 = $src4
/*461375*/      OPC_MoveChild3,
/*461376*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*461379*/      OPC_MoveParent,
/*461380*/      OPC_CheckType, MVT::v16i8,
/*461382*/      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*461384*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #5 #6 #7 #8 #9
/*461387*/      OPC_EmitMergeInputChains1_0,
/*461388*/      OPC_EmitNodeXForm, 19, 4, // VPTERNLOG321_imm8
/*461391*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v16i8, 8/*#Ops*/, 3, 2, 5, 6, 7, 8, 9, 10, 
                // Src: (X86vpternlog:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v16i8] }:$src2, VR128X:{ *:[v16i8] }:$src1, (timm:{ *:[i8] }):$src4) - Complexity = 28
                // Dst: (VPTERNLOGQZ128rmi:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*461405*/    /*Scope*/ 92, /*->461498*/
/*461406*/      OPC_RecordChild0, // #0 = $src1
/*461407*/      OPC_Scope, 45, /*->461454*/ // 2 children in Scope
/*461409*/        OPC_MoveChild1,
/*461410*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*461413*/        OPC_RecordMemRef,
/*461414*/        OPC_RecordNode, // #1 = 'ld' chained node
/*461415*/        OPC_CheckFoldableChainNode,
/*461416*/        OPC_RecordChild1, // #2 = $src3
/*461417*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*461419*/        OPC_CheckPredicate, 9, // Predicate_load
/*461421*/        OPC_MoveParent,
/*461422*/        OPC_RecordChild2, // #3 = $src2
/*461423*/        OPC_RecordChild3, // #4 = $src4
/*461424*/        OPC_MoveChild3,
/*461425*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*461428*/        OPC_MoveParent,
/*461429*/        OPC_CheckType, MVT::v16i8,
/*461431*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*461433*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*461436*/        OPC_EmitMergeInputChains1_1,
/*461437*/        OPC_EmitNodeXForm, 20, 4, // VPTERNLOG132_imm8
/*461440*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i8, 8/*#Ops*/, 0, 3, 5, 6, 7, 8, 9, 10, 
                  // Src: (X86vpternlog:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v16i8] }:$src2, (timm:{ *:[i8] }):$src4) - Complexity = 28
                  // Dst: (VPTERNLOGQZ128rmi:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*461454*/      /*Scope*/ 42, /*->461497*/
/*461455*/        OPC_RecordChild1, // #1 = $src2
/*461456*/        OPC_MoveChild2,
/*461457*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*461460*/        OPC_RecordMemRef,
/*461461*/        OPC_RecordNode, // #2 = 'ld' chained node
/*461462*/        OPC_CheckFoldableChainNode,
/*461463*/        OPC_RecordChild1, // #3 = $src3
/*461464*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*461466*/        OPC_CheckPredicate, 9, // Predicate_load
/*461468*/        OPC_MoveParent,
/*461469*/        OPC_RecordChild3, // #4 = $src4
/*461470*/        OPC_MoveChild3,
/*461471*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*461474*/        OPC_MoveParent,
/*461475*/        OPC_CheckType, MVT::v8i16,
/*461477*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*461479*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*461482*/        OPC_EmitMergeInputChains1_2,
/*461483*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i16, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                  // Src: (X86vpternlog:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src4) - Complexity = 28
                  // Dst: (VPTERNLOGQZ128rmi:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i8] }):$src4)
/*461497*/      0, /*End of Scope*/
/*461498*/    /*Scope*/ 46, /*->461545*/
/*461499*/      OPC_MoveChild0,
/*461500*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*461503*/      OPC_RecordMemRef,
/*461504*/      OPC_RecordNode, // #0 = 'ld' chained node
/*461505*/      OPC_CheckFoldableChainNode,
/*461506*/      OPC_RecordChild1, // #1 = $src3
/*461507*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*461509*/      OPC_CheckPredicate, 9, // Predicate_load
/*461511*/      OPC_MoveParent,
/*461512*/      OPC_RecordChild1, // #2 = $src2
/*461513*/      OPC_RecordChild2, // #3 = $src1
/*461514*/      OPC_RecordChild3, // #4 = $src4
/*461515*/      OPC_MoveChild3,
/*461516*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*461519*/      OPC_MoveParent,
/*461520*/      OPC_CheckType, MVT::v8i16,
/*461522*/      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*461524*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #5 #6 #7 #8 #9
/*461527*/      OPC_EmitMergeInputChains1_0,
/*461528*/      OPC_EmitNodeXForm, 19, 4, // VPTERNLOG321_imm8
/*461531*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i16, 8/*#Ops*/, 3, 2, 5, 6, 7, 8, 9, 10, 
                // Src: (X86vpternlog:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src2, VR128X:{ *:[v8i16] }:$src1, (timm:{ *:[i8] }):$src4) - Complexity = 28
                // Dst: (VPTERNLOGQZ128rmi:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*461545*/    /*Scope*/ 92, /*->461638*/
/*461546*/      OPC_RecordChild0, // #0 = $src1
/*461547*/      OPC_Scope, 45, /*->461594*/ // 2 children in Scope
/*461549*/        OPC_MoveChild1,
/*461550*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*461553*/        OPC_RecordMemRef,
/*461554*/        OPC_RecordNode, // #1 = 'ld' chained node
/*461555*/        OPC_CheckFoldableChainNode,
/*461556*/        OPC_RecordChild1, // #2 = $src3
/*461557*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*461559*/        OPC_CheckPredicate, 9, // Predicate_load
/*461561*/        OPC_MoveParent,
/*461562*/        OPC_RecordChild2, // #3 = $src2
/*461563*/        OPC_RecordChild3, // #4 = $src4
/*461564*/        OPC_MoveChild3,
/*461565*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*461568*/        OPC_MoveParent,
/*461569*/        OPC_CheckType, MVT::v8i16,
/*461571*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*461573*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*461576*/        OPC_EmitMergeInputChains1_1,
/*461577*/        OPC_EmitNodeXForm, 20, 4, // VPTERNLOG132_imm8
/*461580*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i16, 8/*#Ops*/, 0, 3, 5, 6, 7, 8, 9, 10, 
                  // Src: (X86vpternlog:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src2, (timm:{ *:[i8] }):$src4) - Complexity = 28
                  // Dst: (VPTERNLOGQZ128rmi:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*461594*/      /*Scope*/ 42, /*->461637*/
/*461595*/        OPC_RecordChild1, // #1 = $src2
/*461596*/        OPC_MoveChild2,
/*461597*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*461600*/        OPC_RecordMemRef,
/*461601*/        OPC_RecordNode, // #2 = 'ld' chained node
/*461602*/        OPC_CheckFoldableChainNode,
/*461603*/        OPC_RecordChild1, // #3 = $src3
/*461604*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*461606*/        OPC_CheckPredicate, 9, // Predicate_load
/*461608*/        OPC_MoveParent,
/*461609*/        OPC_RecordChild3, // #4 = $src4
/*461610*/        OPC_MoveChild3,
/*461611*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*461614*/        OPC_MoveParent,
/*461615*/        OPC_CheckType, MVT::v32i8,
/*461617*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*461619*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*461622*/        OPC_EmitMergeInputChains1_2,
/*461623*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v32i8, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                  // Src: (X86vpternlog:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src4) - Complexity = 28
                  // Dst: (VPTERNLOGQZ256rmi:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i8] }):$src4)
/*461637*/      0, /*End of Scope*/
/*461638*/    /*Scope*/ 46, /*->461685*/
/*461639*/      OPC_MoveChild0,
/*461640*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*461643*/      OPC_RecordMemRef,
/*461644*/      OPC_RecordNode, // #0 = 'ld' chained node
/*461645*/      OPC_CheckFoldableChainNode,
/*461646*/      OPC_RecordChild1, // #1 = $src3
/*461647*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*461649*/      OPC_CheckPredicate, 9, // Predicate_load
/*461651*/      OPC_MoveParent,
/*461652*/      OPC_RecordChild1, // #2 = $src2
/*461653*/      OPC_RecordChild2, // #3 = $src1
/*461654*/      OPC_RecordChild3, // #4 = $src4
/*461655*/      OPC_MoveChild3,
/*461656*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*461659*/      OPC_MoveParent,
/*461660*/      OPC_CheckType, MVT::v32i8,
/*461662*/      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*461664*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #5 #6 #7 #8 #9
/*461667*/      OPC_EmitMergeInputChains1_0,
/*461668*/      OPC_EmitNodeXForm, 19, 4, // VPTERNLOG321_imm8
/*461671*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v32i8, 8/*#Ops*/, 3, 2, 5, 6, 7, 8, 9, 10, 
                // Src: (X86vpternlog:{ *:[v32i8] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v32i8] }:$src2, VR256X:{ *:[v32i8] }:$src1, (timm:{ *:[i8] }):$src4) - Complexity = 28
                // Dst: (VPTERNLOGQZ256rmi:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*461685*/    /*Scope*/ 92, /*->461778*/
/*461686*/      OPC_RecordChild0, // #0 = $src1
/*461687*/      OPC_Scope, 45, /*->461734*/ // 2 children in Scope
/*461689*/        OPC_MoveChild1,
/*461690*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*461693*/        OPC_RecordMemRef,
/*461694*/        OPC_RecordNode, // #1 = 'ld' chained node
/*461695*/        OPC_CheckFoldableChainNode,
/*461696*/        OPC_RecordChild1, // #2 = $src3
/*461697*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*461699*/        OPC_CheckPredicate, 9, // Predicate_load
/*461701*/        OPC_MoveParent,
/*461702*/        OPC_RecordChild2, // #3 = $src2
/*461703*/        OPC_RecordChild3, // #4 = $src4
/*461704*/        OPC_MoveChild3,
/*461705*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*461708*/        OPC_MoveParent,
/*461709*/        OPC_CheckType, MVT::v32i8,
/*461711*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*461713*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*461716*/        OPC_EmitMergeInputChains1_1,
/*461717*/        OPC_EmitNodeXForm, 20, 4, // VPTERNLOG132_imm8
/*461720*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v32i8, 8/*#Ops*/, 0, 3, 5, 6, 7, 8, 9, 10, 
                  // Src: (X86vpternlog:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v32i8] }:$src2, (timm:{ *:[i8] }):$src4) - Complexity = 28
                  // Dst: (VPTERNLOGQZ256rmi:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*461734*/      /*Scope*/ 42, /*->461777*/
/*461735*/        OPC_RecordChild1, // #1 = $src2
/*461736*/        OPC_MoveChild2,
/*461737*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*461740*/        OPC_RecordMemRef,
/*461741*/        OPC_RecordNode, // #2 = 'ld' chained node
/*461742*/        OPC_CheckFoldableChainNode,
/*461743*/        OPC_RecordChild1, // #3 = $src3
/*461744*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*461746*/        OPC_CheckPredicate, 9, // Predicate_load
/*461748*/        OPC_MoveParent,
/*461749*/        OPC_RecordChild3, // #4 = $src4
/*461750*/        OPC_MoveChild3,
/*461751*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*461754*/        OPC_MoveParent,
/*461755*/        OPC_CheckType, MVT::v16i16,
/*461757*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*461759*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*461762*/        OPC_EmitMergeInputChains1_2,
/*461763*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i16, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                  // Src: (X86vpternlog:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src4) - Complexity = 28
                  // Dst: (VPTERNLOGQZ256rmi:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i8] }):$src4)
/*461777*/      0, /*End of Scope*/
/*461778*/    /*Scope*/ 46, /*->461825*/
/*461779*/      OPC_MoveChild0,
/*461780*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*461783*/      OPC_RecordMemRef,
/*461784*/      OPC_RecordNode, // #0 = 'ld' chained node
/*461785*/      OPC_CheckFoldableChainNode,
/*461786*/      OPC_RecordChild1, // #1 = $src3
/*461787*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*461789*/      OPC_CheckPredicate, 9, // Predicate_load
/*461791*/      OPC_MoveParent,
/*461792*/      OPC_RecordChild1, // #2 = $src2
/*461793*/      OPC_RecordChild2, // #3 = $src1
/*461794*/      OPC_RecordChild3, // #4 = $src4
/*461795*/      OPC_MoveChild3,
/*461796*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*461799*/      OPC_MoveParent,
/*461800*/      OPC_CheckType, MVT::v16i16,
/*461802*/      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*461804*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #5 #6 #7 #8 #9
/*461807*/      OPC_EmitMergeInputChains1_0,
/*461808*/      OPC_EmitNodeXForm, 19, 4, // VPTERNLOG321_imm8
/*461811*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v16i16, 8/*#Ops*/, 3, 2, 5, 6, 7, 8, 9, 10, 
                // Src: (X86vpternlog:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src2, VR256X:{ *:[v16i16] }:$src1, (timm:{ *:[i8] }):$src4) - Complexity = 28
                // Dst: (VPTERNLOGQZ256rmi:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*461825*/    /*Scope*/ 92, /*->461918*/
/*461826*/      OPC_RecordChild0, // #0 = $src1
/*461827*/      OPC_Scope, 45, /*->461874*/ // 2 children in Scope
/*461829*/        OPC_MoveChild1,
/*461830*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*461833*/        OPC_RecordMemRef,
/*461834*/        OPC_RecordNode, // #1 = 'ld' chained node
/*461835*/        OPC_CheckFoldableChainNode,
/*461836*/        OPC_RecordChild1, // #2 = $src3
/*461837*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*461839*/        OPC_CheckPredicate, 9, // Predicate_load
/*461841*/        OPC_MoveParent,
/*461842*/        OPC_RecordChild2, // #3 = $src2
/*461843*/        OPC_RecordChild3, // #4 = $src4
/*461844*/        OPC_MoveChild3,
/*461845*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*461848*/        OPC_MoveParent,
/*461849*/        OPC_CheckType, MVT::v16i16,
/*461851*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*461853*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*461856*/        OPC_EmitMergeInputChains1_1,
/*461857*/        OPC_EmitNodeXForm, 20, 4, // VPTERNLOG132_imm8
/*461860*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i16, 8/*#Ops*/, 0, 3, 5, 6, 7, 8, 9, 10, 
                  // Src: (X86vpternlog:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src2, (timm:{ *:[i8] }):$src4) - Complexity = 28
                  // Dst: (VPTERNLOGQZ256rmi:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*461874*/      /*Scope*/ 42, /*->461917*/
/*461875*/        OPC_RecordChild1, // #1 = $src2
/*461876*/        OPC_MoveChild2,
/*461877*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*461880*/        OPC_RecordMemRef,
/*461881*/        OPC_RecordNode, // #2 = 'ld' chained node
/*461882*/        OPC_CheckFoldableChainNode,
/*461883*/        OPC_RecordChild1, // #3 = $src3
/*461884*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*461886*/        OPC_CheckPredicate, 9, // Predicate_load
/*461888*/        OPC_MoveParent,
/*461889*/        OPC_RecordChild3, // #4 = $src4
/*461890*/        OPC_MoveChild3,
/*461891*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*461894*/        OPC_MoveParent,
/*461895*/        OPC_CheckType, MVT::v64i8,
/*461897*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*461899*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*461902*/        OPC_EmitMergeInputChains1_2,
/*461903*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v64i8, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                  // Src: (X86vpternlog:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src4) - Complexity = 28
                  // Dst: (VPTERNLOGQZrmi:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i8] }):$src4)
/*461917*/      0, /*End of Scope*/
/*461918*/    /*Scope*/ 46, /*->461965*/
/*461919*/      OPC_MoveChild0,
/*461920*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*461923*/      OPC_RecordMemRef,
/*461924*/      OPC_RecordNode, // #0 = 'ld' chained node
/*461925*/      OPC_CheckFoldableChainNode,
/*461926*/      OPC_RecordChild1, // #1 = $src3
/*461927*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*461929*/      OPC_CheckPredicate, 9, // Predicate_load
/*461931*/      OPC_MoveParent,
/*461932*/      OPC_RecordChild1, // #2 = $src2
/*461933*/      OPC_RecordChild2, // #3 = $src1
/*461934*/      OPC_RecordChild3, // #4 = $src4
/*461935*/      OPC_MoveChild3,
/*461936*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*461939*/      OPC_MoveParent,
/*461940*/      OPC_CheckType, MVT::v64i8,
/*461942*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*461944*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #5 #6 #7 #8 #9
/*461947*/      OPC_EmitMergeInputChains1_0,
/*461948*/      OPC_EmitNodeXForm, 19, 4, // VPTERNLOG321_imm8
/*461951*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v64i8, 8/*#Ops*/, 3, 2, 5, 6, 7, 8, 9, 10, 
                // Src: (X86vpternlog:{ *:[v64i8] } (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v64i8] }:$src2, VR512:{ *:[v64i8] }:$src1, (timm:{ *:[i8] }):$src4) - Complexity = 28
                // Dst: (VPTERNLOGQZrmi:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*461965*/    /*Scope*/ 92, /*->462058*/
/*461966*/      OPC_RecordChild0, // #0 = $src1
/*461967*/      OPC_Scope, 45, /*->462014*/ // 2 children in Scope
/*461969*/        OPC_MoveChild1,
/*461970*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*461973*/        OPC_RecordMemRef,
/*461974*/        OPC_RecordNode, // #1 = 'ld' chained node
/*461975*/        OPC_CheckFoldableChainNode,
/*461976*/        OPC_RecordChild1, // #2 = $src3
/*461977*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*461979*/        OPC_CheckPredicate, 9, // Predicate_load
/*461981*/        OPC_MoveParent,
/*461982*/        OPC_RecordChild2, // #3 = $src2
/*461983*/        OPC_RecordChild3, // #4 = $src4
/*461984*/        OPC_MoveChild3,
/*461985*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*461988*/        OPC_MoveParent,
/*461989*/        OPC_CheckType, MVT::v64i8,
/*461991*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*461993*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*461996*/        OPC_EmitMergeInputChains1_1,
/*461997*/        OPC_EmitNodeXForm, 20, 4, // VPTERNLOG132_imm8
/*462000*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v64i8, 8/*#Ops*/, 0, 3, 5, 6, 7, 8, 9, 10, 
                  // Src: (X86vpternlog:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v64i8] }:$src2, (timm:{ *:[i8] }):$src4) - Complexity = 28
                  // Dst: (VPTERNLOGQZrmi:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*462014*/      /*Scope*/ 42, /*->462057*/
/*462015*/        OPC_RecordChild1, // #1 = $src2
/*462016*/        OPC_MoveChild2,
/*462017*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*462020*/        OPC_RecordMemRef,
/*462021*/        OPC_RecordNode, // #2 = 'ld' chained node
/*462022*/        OPC_CheckFoldableChainNode,
/*462023*/        OPC_RecordChild1, // #3 = $src3
/*462024*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*462026*/        OPC_CheckPredicate, 9, // Predicate_load
/*462028*/        OPC_MoveParent,
/*462029*/        OPC_RecordChild3, // #4 = $src4
/*462030*/        OPC_MoveChild3,
/*462031*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*462034*/        OPC_MoveParent,
/*462035*/        OPC_CheckType, MVT::v32i16,
/*462037*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*462039*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*462042*/        OPC_EmitMergeInputChains1_2,
/*462043*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v32i16, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                  // Src: (X86vpternlog:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src4) - Complexity = 28
                  // Dst: (VPTERNLOGQZrmi:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i8] }):$src4)
/*462057*/      0, /*End of Scope*/
/*462058*/    /*Scope*/ 46, /*->462105*/
/*462059*/      OPC_MoveChild0,
/*462060*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*462063*/      OPC_RecordMemRef,
/*462064*/      OPC_RecordNode, // #0 = 'ld' chained node
/*462065*/      OPC_CheckFoldableChainNode,
/*462066*/      OPC_RecordChild1, // #1 = $src3
/*462067*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*462069*/      OPC_CheckPredicate, 9, // Predicate_load
/*462071*/      OPC_MoveParent,
/*462072*/      OPC_RecordChild1, // #2 = $src2
/*462073*/      OPC_RecordChild2, // #3 = $src1
/*462074*/      OPC_RecordChild3, // #4 = $src4
/*462075*/      OPC_MoveChild3,
/*462076*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*462079*/      OPC_MoveParent,
/*462080*/      OPC_CheckType, MVT::v32i16,
/*462082*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*462084*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #5 #6 #7 #8 #9
/*462087*/      OPC_EmitMergeInputChains1_0,
/*462088*/      OPC_EmitNodeXForm, 19, 4, // VPTERNLOG321_imm8
/*462091*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v32i16, 8/*#Ops*/, 3, 2, 5, 6, 7, 8, 9, 10, 
                // Src: (X86vpternlog:{ *:[v32i16] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src2, VR512:{ *:[v32i16] }:$src1, (timm:{ *:[i8] }):$src4) - Complexity = 28
                // Dst: (VPTERNLOGQZrmi:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG321_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*462105*/    /*Scope*/ 101|128,1/*229*/, /*->462336*/
/*462107*/      OPC_RecordChild0, // #0 = $src1
/*462108*/      OPC_Scope, 45, /*->462155*/ // 2 children in Scope
/*462110*/        OPC_MoveChild1,
/*462111*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*462114*/        OPC_RecordMemRef,
/*462115*/        OPC_RecordNode, // #1 = 'ld' chained node
/*462116*/        OPC_CheckFoldableChainNode,
/*462117*/        OPC_RecordChild1, // #2 = $src3
/*462118*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*462120*/        OPC_CheckPredicate, 9, // Predicate_load
/*462122*/        OPC_MoveParent,
/*462123*/        OPC_RecordChild2, // #3 = $src2
/*462124*/        OPC_RecordChild3, // #4 = $src4
/*462125*/        OPC_MoveChild3,
/*462126*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*462129*/        OPC_MoveParent,
/*462130*/        OPC_CheckType, MVT::v32i16,
/*462132*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*462134*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #5 #6 #7 #8 #9
/*462137*/        OPC_EmitMergeInputChains1_1,
/*462138*/        OPC_EmitNodeXForm, 20, 4, // VPTERNLOG132_imm8
/*462141*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v32i16, 8/*#Ops*/, 0, 3, 5, 6, 7, 8, 9, 10, 
                  // Src: (X86vpternlog:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src2, (timm:{ *:[i8] }):$src4) - Complexity = 28
                  // Dst: (VPTERNLOGQZrmi:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, addr:{ *:[iPTR] }:$src3, (VPTERNLOG132_imm8:{ *:[i8] } (timm:{ *:[i8] }):$src4))
/*462155*/      /*Scope*/ 50|128,1/*178*/, /*->462335*/
/*462157*/        OPC_RecordChild1, // #1 = $src2
/*462158*/        OPC_RecordChild2, // #2 = $src3
/*462159*/        OPC_RecordChild3, // #3 = $src4
/*462160*/        OPC_MoveChild3,
/*462161*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*462164*/        OPC_MoveParent,
/*462165*/        OPC_SwitchType /*12 cases */, 12, MVT::v16i32,// ->462180
/*462168*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*462170*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZrri), 0,
                        MVT::v16i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (X86vpternlog:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3, (timm:{ *:[i8] }):$src4) - Complexity = 6
                    // Dst: (VPTERNLOGDZrri:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3, (timm:{ *:[i8] }):$src4)
/*462180*/        /*SwitchType*/ 12, MVT::v4i32,// ->462194
/*462182*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*462184*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ128rri), 0,
                        MVT::v4i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (X86vpternlog:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3, (timm:{ *:[i8] }):$src4) - Complexity = 6
                    // Dst: (VPTERNLOGDZ128rri:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3, (timm:{ *:[i8] }):$src4)
/*462194*/        /*SwitchType*/ 12, MVT::v8i32,// ->462208
/*462196*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*462198*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGDZ256rri), 0,
                        MVT::v8i32, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (X86vpternlog:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3, (timm:{ *:[i8] }):$src4) - Complexity = 6
                    // Dst: (VPTERNLOGDZ256rri:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3, (timm:{ *:[i8] }):$src4)
/*462208*/        /*SwitchType*/ 12, MVT::v8i64,// ->462222
/*462210*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*462212*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrri), 0,
                        MVT::v8i64, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (X86vpternlog:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src3, (timm:{ *:[i8] }):$src4) - Complexity = 6
                    // Dst: (VPTERNLOGQZrri:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src3, (timm:{ *:[i8] }):$src4)
/*462222*/        /*SwitchType*/ 12, MVT::v2i64,// ->462236
/*462224*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*462226*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rri), 0,
                        MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (X86vpternlog:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src3, (timm:{ *:[i8] }):$src4) - Complexity = 6
                    // Dst: (VPTERNLOGQZ128rri:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src3, (timm:{ *:[i8] }):$src4)
/*462236*/        /*SwitchType*/ 12, MVT::v4i64,// ->462250
/*462238*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*462240*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rri), 0,
                        MVT::v4i64, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (X86vpternlog:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src3, (timm:{ *:[i8] }):$src4) - Complexity = 6
                    // Dst: (VPTERNLOGQZ256rri:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src3, (timm:{ *:[i8] }):$src4)
/*462250*/        /*SwitchType*/ 12, MVT::v16i8,// ->462264
/*462252*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*462254*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rri), 0,
                        MVT::v16i8, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (X86vpternlog:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, VR128X:{ *:[v16i8] }:$src3, (timm:{ *:[i8] }):$src4) - Complexity = 6
                    // Dst: (VPTERNLOGQZ128rri:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, VR128X:{ *:[v16i8] }:$src3, (timm:{ *:[i8] }):$src4)
/*462264*/        /*SwitchType*/ 12, MVT::v8i16,// ->462278
/*462266*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*462268*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ128rri), 0,
                        MVT::v8i16, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (X86vpternlog:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, VR128X:{ *:[v8i16] }:$src3, (timm:{ *:[i8] }):$src4) - Complexity = 6
                    // Dst: (VPTERNLOGQZ128rri:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, VR128X:{ *:[v8i16] }:$src3, (timm:{ *:[i8] }):$src4)
/*462278*/        /*SwitchType*/ 12, MVT::v32i8,// ->462292
/*462280*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*462282*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rri), 0,
                        MVT::v32i8, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (X86vpternlog:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, VR256X:{ *:[v32i8] }:$src3, (timm:{ *:[i8] }):$src4) - Complexity = 6
                    // Dst: (VPTERNLOGQZ256rri:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, VR256X:{ *:[v32i8] }:$src3, (timm:{ *:[i8] }):$src4)
/*462292*/        /*SwitchType*/ 12, MVT::v16i16,// ->462306
/*462294*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*462296*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZ256rri), 0,
                        MVT::v16i16, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (X86vpternlog:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, VR256X:{ *:[v16i16] }:$src3, (timm:{ *:[i8] }):$src4) - Complexity = 6
                    // Dst: (VPTERNLOGQZ256rri:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, VR256X:{ *:[v16i16] }:$src3, (timm:{ *:[i8] }):$src4)
/*462306*/        /*SwitchType*/ 12, MVT::v64i8,// ->462320
/*462308*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*462310*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrri), 0,
                        MVT::v64i8, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (X86vpternlog:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, VR512:{ *:[v64i8] }:$src3, (timm:{ *:[i8] }):$src4) - Complexity = 6
                    // Dst: (VPTERNLOGQZrri:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, VR512:{ *:[v64i8] }:$src3, (timm:{ *:[i8] }):$src4)
/*462320*/        /*SwitchType*/ 12, MVT::v32i16,// ->462334
/*462322*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*462324*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPTERNLOGQZrri), 0,
                        MVT::v32i16, 4/*#Ops*/, 0, 1, 2, 3, 
                    // Src: (X86vpternlog:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, VR512:{ *:[v32i16] }:$src3, (timm:{ *:[i8] }):$src4) - Complexity = 6
                    // Dst: (VPTERNLOGQZrri:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, VR512:{ *:[v32i16] }:$src3, (timm:{ *:[i8] }):$src4)
/*462334*/        0, // EndSwitchType
/*462335*/      0, /*End of Scope*/
/*462336*/    0, /*End of Scope*/
/*462337*/  /*SwitchOpcode*/ 121|128,3/*505*/, TARGET_VAL(X86ISD::VSHLD),// ->462846
/*462341*/    OPC_RecordChild0, // #0 = $src1
/*462342*/    OPC_Scope, 117|128,2/*373*/, /*->462718*/ // 2 children in Scope
/*462345*/      OPC_MoveChild1,
/*462346*/      OPC_SwitchOpcode /*2 cases */, 78|128,1/*206*/, TARGET_VAL(ISD::LOAD),// ->462557
/*462351*/        OPC_RecordMemRef,
/*462352*/        OPC_RecordNode, // #1 = 'ld' chained node
/*462353*/        OPC_CheckFoldableChainNode,
/*462354*/        OPC_RecordChild1, // #2 = $src2
/*462355*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*462357*/        OPC_CheckPredicate, 9, // Predicate_load
/*462359*/        OPC_MoveParent,
/*462360*/        OPC_RecordChild2, // #3 = $src3
/*462361*/        OPC_MoveChild2,
/*462362*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*462365*/        OPC_MoveParent,
/*462366*/        OPC_SwitchType /*9 cases */, 19, MVT::v32i16,// ->462388
/*462369*/          OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*462371*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*462374*/          OPC_EmitMergeInputChains1_1,
/*462375*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDWZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86VShld:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                    // Dst: (VPSHLDWZrmi:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*462388*/        /*SwitchType*/ 19, MVT::v8i16,// ->462409
/*462390*/          OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*462392*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*462395*/          OPC_EmitMergeInputChains1_1,
/*462396*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDWZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86VShld:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                    // Dst: (VPSHLDWZ128rmi:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*462409*/        /*SwitchType*/ 19, MVT::v16i16,// ->462430
/*462411*/          OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*462413*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*462416*/          OPC_EmitMergeInputChains1_1,
/*462417*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDWZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86VShld:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                    // Dst: (VPSHLDWZ256rmi:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*462430*/        /*SwitchType*/ 19, MVT::v16i32,// ->462451
/*462432*/          OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*462434*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*462437*/          OPC_EmitMergeInputChains1_1,
/*462438*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDDZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86VShld:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                    // Dst: (VPSHLDDZrmi:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*462451*/        /*SwitchType*/ 19, MVT::v4i32,// ->462472
/*462453*/          OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*462455*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*462458*/          OPC_EmitMergeInputChains1_1,
/*462459*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDDZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86VShld:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                    // Dst: (VPSHLDDZ128rmi:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*462472*/        /*SwitchType*/ 19, MVT::v8i32,// ->462493
/*462474*/          OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*462476*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*462479*/          OPC_EmitMergeInputChains1_1,
/*462480*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDDZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86VShld:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                    // Dst: (VPSHLDDZ256rmi:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*462493*/        /*SwitchType*/ 19, MVT::v8i64,// ->462514
/*462495*/          OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*462497*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*462500*/          OPC_EmitMergeInputChains1_1,
/*462501*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDQZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86VShld:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                    // Dst: (VPSHLDQZrmi:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*462514*/        /*SwitchType*/ 19, MVT::v2i64,// ->462535
/*462516*/          OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*462518*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*462521*/          OPC_EmitMergeInputChains1_1,
/*462522*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDQZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86VShld:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                    // Dst: (VPSHLDQZ128rmi:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*462535*/        /*SwitchType*/ 19, MVT::v4i64,// ->462556
/*462537*/          OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*462539*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*462542*/          OPC_EmitMergeInputChains1_1,
/*462543*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDQZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86VShld:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                    // Dst: (VPSHLDQZ256rmi:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*462556*/        0, // EndSwitchType
/*462557*/      /*SwitchOpcode*/ 28|128,1/*156*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->462717
/*462561*/        OPC_RecordMemRef,
/*462562*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*462563*/        OPC_CheckFoldableChainNode,
/*462564*/        OPC_RecordChild1, // #2 = $src2
/*462565*/        OPC_Scope, 74, /*->462641*/ // 2 children in Scope
/*462567*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*462569*/          OPC_MoveParent,
/*462570*/          OPC_RecordChild2, // #3 = $src3
/*462571*/          OPC_MoveChild2,
/*462572*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*462575*/          OPC_MoveParent,
/*462576*/          OPC_SwitchType /*3 cases */, 19, MVT::v16i32,// ->462598
/*462579*/            OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*462581*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*462584*/            OPC_EmitMergeInputChains1_1,
/*462585*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDDZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86VShld:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                      // Dst: (VPSHLDDZrmbi:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*462598*/          /*SwitchType*/ 19, MVT::v4i32,// ->462619
/*462600*/            OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*462602*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*462605*/            OPC_EmitMergeInputChains1_1,
/*462606*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDDZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86VShld:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                      // Dst: (VPSHLDDZ128rmbi:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*462619*/          /*SwitchType*/ 19, MVT::v8i32,// ->462640
/*462621*/            OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*462623*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*462626*/            OPC_EmitMergeInputChains1_1,
/*462627*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDDZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86VShld:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                      // Dst: (VPSHLDDZ256rmbi:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*462640*/          0, // EndSwitchType
/*462641*/        /*Scope*/ 74, /*->462716*/
/*462642*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*462644*/          OPC_MoveParent,
/*462645*/          OPC_RecordChild2, // #3 = $src3
/*462646*/          OPC_MoveChild2,
/*462647*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*462650*/          OPC_MoveParent,
/*462651*/          OPC_SwitchType /*3 cases */, 19, MVT::v8i64,// ->462673
/*462654*/            OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*462656*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*462659*/            OPC_EmitMergeInputChains1_1,
/*462660*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDQZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86VShld:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                      // Dst: (VPSHLDQZrmbi:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*462673*/          /*SwitchType*/ 19, MVT::v2i64,// ->462694
/*462675*/            OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*462677*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*462680*/            OPC_EmitMergeInputChains1_1,
/*462681*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDQZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86VShld:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                      // Dst: (VPSHLDQZ128rmbi:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*462694*/          /*SwitchType*/ 19, MVT::v4i64,// ->462715
/*462696*/            OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*462698*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*462701*/            OPC_EmitMergeInputChains1_1,
/*462702*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDQZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86VShld:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                      // Dst: (VPSHLDQZ256rmbi:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*462715*/          0, // EndSwitchType
/*462716*/        0, /*End of Scope*/
/*462717*/      0, // EndSwitchOpcode
/*462718*/    /*Scope*/ 126, /*->462845*/
/*462719*/      OPC_RecordChild1, // #1 = $src2
/*462720*/      OPC_RecordChild2, // #2 = $src3
/*462721*/      OPC_MoveChild2,
/*462722*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*462725*/      OPC_MoveParent,
/*462726*/      OPC_SwitchType /*9 cases */, 11, MVT::v32i16,// ->462740
/*462729*/        OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*462731*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDWZrri), 0,
                      MVT::v32i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86VShld:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VPSHLDWZrri:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, (timm:{ *:[i8] }):$src3)
/*462740*/      /*SwitchType*/ 11, MVT::v8i16,// ->462753
/*462742*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*462744*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDWZ128rri), 0,
                      MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86VShld:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VPSHLDWZ128rri:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (timm:{ *:[i8] }):$src3)
/*462753*/      /*SwitchType*/ 11, MVT::v16i16,// ->462766
/*462755*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*462757*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDWZ256rri), 0,
                      MVT::v16i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86VShld:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VPSHLDWZ256rri:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (timm:{ *:[i8] }):$src3)
/*462766*/      /*SwitchType*/ 11, MVT::v16i32,// ->462779
/*462768*/        OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*462770*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDDZrri), 0,
                      MVT::v16i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86VShld:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VPSHLDDZrri:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (timm:{ *:[i8] }):$src3)
/*462779*/      /*SwitchType*/ 11, MVT::v4i32,// ->462792
/*462781*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*462783*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDDZ128rri), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86VShld:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VPSHLDDZ128rri:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (timm:{ *:[i8] }):$src3)
/*462792*/      /*SwitchType*/ 11, MVT::v8i32,// ->462805
/*462794*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*462796*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDDZ256rri), 0,
                      MVT::v8i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86VShld:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VPSHLDDZ256rri:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (timm:{ *:[i8] }):$src3)
/*462805*/      /*SwitchType*/ 11, MVT::v8i64,// ->462818
/*462807*/        OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*462809*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDQZrri), 0,
                      MVT::v8i64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86VShld:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VPSHLDQZrri:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (timm:{ *:[i8] }):$src3)
/*462818*/      /*SwitchType*/ 11, MVT::v2i64,// ->462831
/*462820*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*462822*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDQZ128rri), 0,
                      MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86VShld:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VPSHLDQZ128rri:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (timm:{ *:[i8] }):$src3)
/*462831*/      /*SwitchType*/ 11, MVT::v4i64,// ->462844
/*462833*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*462835*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDQZ256rri), 0,
                      MVT::v4i64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86VShld:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VPSHLDQZ256rri:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (timm:{ *:[i8] }):$src3)
/*462844*/      0, // EndSwitchType
/*462845*/    0, /*End of Scope*/
/*462846*/  /*SwitchOpcode*/ 121|128,3/*505*/, TARGET_VAL(X86ISD::VSHRD),// ->463355
/*462850*/    OPC_RecordChild0, // #0 = $src1
/*462851*/    OPC_Scope, 117|128,2/*373*/, /*->463227*/ // 2 children in Scope
/*462854*/      OPC_MoveChild1,
/*462855*/      OPC_SwitchOpcode /*2 cases */, 78|128,1/*206*/, TARGET_VAL(ISD::LOAD),// ->463066
/*462860*/        OPC_RecordMemRef,
/*462861*/        OPC_RecordNode, // #1 = 'ld' chained node
/*462862*/        OPC_CheckFoldableChainNode,
/*462863*/        OPC_RecordChild1, // #2 = $src2
/*462864*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*462866*/        OPC_CheckPredicate, 9, // Predicate_load
/*462868*/        OPC_MoveParent,
/*462869*/        OPC_RecordChild2, // #3 = $src3
/*462870*/        OPC_MoveChild2,
/*462871*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*462874*/        OPC_MoveParent,
/*462875*/        OPC_SwitchType /*9 cases */, 19, MVT::v32i16,// ->462897
/*462878*/          OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*462880*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*462883*/          OPC_EmitMergeInputChains1_1,
/*462884*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDWZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86VShrd:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                    // Dst: (VPSHRDWZrmi:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*462897*/        /*SwitchType*/ 19, MVT::v8i16,// ->462918
/*462899*/          OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*462901*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*462904*/          OPC_EmitMergeInputChains1_1,
/*462905*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDWZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86VShrd:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                    // Dst: (VPSHRDWZ128rmi:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*462918*/        /*SwitchType*/ 19, MVT::v16i16,// ->462939
/*462920*/          OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*462922*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*462925*/          OPC_EmitMergeInputChains1_1,
/*462926*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDWZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i16, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86VShrd:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                    // Dst: (VPSHRDWZ256rmi:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*462939*/        /*SwitchType*/ 19, MVT::v16i32,// ->462960
/*462941*/          OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*462943*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*462946*/          OPC_EmitMergeInputChains1_1,
/*462947*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDDZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86VShrd:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                    // Dst: (VPSHRDDZrmi:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*462960*/        /*SwitchType*/ 19, MVT::v4i32,// ->462981
/*462962*/          OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*462964*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*462967*/          OPC_EmitMergeInputChains1_1,
/*462968*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDDZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86VShrd:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                    // Dst: (VPSHRDDZ128rmi:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*462981*/        /*SwitchType*/ 19, MVT::v8i32,// ->463002
/*462983*/          OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*462985*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*462988*/          OPC_EmitMergeInputChains1_1,
/*462989*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDDZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86VShrd:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                    // Dst: (VPSHRDDZ256rmi:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*463002*/        /*SwitchType*/ 19, MVT::v8i64,// ->463023
/*463004*/          OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*463006*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*463009*/          OPC_EmitMergeInputChains1_1,
/*463010*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDQZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86VShrd:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                    // Dst: (VPSHRDQZrmi:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*463023*/        /*SwitchType*/ 19, MVT::v2i64,// ->463044
/*463025*/          OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*463027*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*463030*/          OPC_EmitMergeInputChains1_1,
/*463031*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDQZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86VShrd:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                    // Dst: (VPSHRDQZ128rmi:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*463044*/        /*SwitchType*/ 19, MVT::v4i64,// ->463065
/*463046*/          OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*463048*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*463051*/          OPC_EmitMergeInputChains1_1,
/*463052*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDQZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86VShrd:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                    // Dst: (VPSHRDQZ256rmi:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*463065*/        0, // EndSwitchType
/*463066*/      /*SwitchOpcode*/ 28|128,1/*156*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->463226
/*463070*/        OPC_RecordMemRef,
/*463071*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*463072*/        OPC_CheckFoldableChainNode,
/*463073*/        OPC_RecordChild1, // #2 = $src2
/*463074*/        OPC_Scope, 74, /*->463150*/ // 2 children in Scope
/*463076*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*463078*/          OPC_MoveParent,
/*463079*/          OPC_RecordChild2, // #3 = $src3
/*463080*/          OPC_MoveChild2,
/*463081*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*463084*/          OPC_MoveParent,
/*463085*/          OPC_SwitchType /*3 cases */, 19, MVT::v16i32,// ->463107
/*463088*/            OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*463090*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*463093*/            OPC_EmitMergeInputChains1_1,
/*463094*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDDZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86VShrd:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                      // Dst: (VPSHRDDZrmbi:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*463107*/          /*SwitchType*/ 19, MVT::v4i32,// ->463128
/*463109*/            OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*463111*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*463114*/            OPC_EmitMergeInputChains1_1,
/*463115*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDDZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86VShrd:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                      // Dst: (VPSHRDDZ128rmbi:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*463128*/          /*SwitchType*/ 19, MVT::v8i32,// ->463149
/*463130*/            OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*463132*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*463135*/            OPC_EmitMergeInputChains1_1,
/*463136*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDDZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86VShrd:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                      // Dst: (VPSHRDDZ256rmbi:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*463149*/          0, // EndSwitchType
/*463150*/        /*Scope*/ 74, /*->463225*/
/*463151*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*463153*/          OPC_MoveParent,
/*463154*/          OPC_RecordChild2, // #3 = $src3
/*463155*/          OPC_MoveChild2,
/*463156*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*463159*/          OPC_MoveParent,
/*463160*/          OPC_SwitchType /*3 cases */, 19, MVT::v8i64,// ->463182
/*463163*/            OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*463165*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*463168*/            OPC_EmitMergeInputChains1_1,
/*463169*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDQZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86VShrd:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                      // Dst: (VPSHRDQZrmbi:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*463182*/          /*SwitchType*/ 19, MVT::v2i64,// ->463203
/*463184*/            OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*463186*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*463189*/            OPC_EmitMergeInputChains1_1,
/*463190*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDQZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86VShrd:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                      // Dst: (VPSHRDQZ128rmbi:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*463203*/          /*SwitchType*/ 19, MVT::v4i64,// ->463224
/*463205*/            OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*463207*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*463210*/            OPC_EmitMergeInputChains1_1,
/*463211*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDQZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86VShrd:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                      // Dst: (VPSHRDQZ256rmbi:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*463224*/          0, // EndSwitchType
/*463225*/        0, /*End of Scope*/
/*463226*/      0, // EndSwitchOpcode
/*463227*/    /*Scope*/ 126, /*->463354*/
/*463228*/      OPC_RecordChild1, // #1 = $src2
/*463229*/      OPC_RecordChild2, // #2 = $src3
/*463230*/      OPC_MoveChild2,
/*463231*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*463234*/      OPC_MoveParent,
/*463235*/      OPC_SwitchType /*9 cases */, 11, MVT::v32i16,// ->463249
/*463238*/        OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*463240*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDWZrri), 0,
                      MVT::v32i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86VShrd:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VPSHRDWZrri:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, (timm:{ *:[i8] }):$src3)
/*463249*/      /*SwitchType*/ 11, MVT::v8i16,// ->463262
/*463251*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*463253*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDWZ128rri), 0,
                      MVT::v8i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86VShrd:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VPSHRDWZ128rri:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, (timm:{ *:[i8] }):$src3)
/*463262*/      /*SwitchType*/ 11, MVT::v16i16,// ->463275
/*463264*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*463266*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDWZ256rri), 0,
                      MVT::v16i16, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86VShrd:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VPSHRDWZ256rri:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, (timm:{ *:[i8] }):$src3)
/*463275*/      /*SwitchType*/ 11, MVT::v16i32,// ->463288
/*463277*/        OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*463279*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDDZrri), 0,
                      MVT::v16i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86VShrd:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VPSHRDDZrri:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, (timm:{ *:[i8] }):$src3)
/*463288*/      /*SwitchType*/ 11, MVT::v4i32,// ->463301
/*463290*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*463292*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDDZ128rri), 0,
                      MVT::v4i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86VShrd:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VPSHRDDZ128rri:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (timm:{ *:[i8] }):$src3)
/*463301*/      /*SwitchType*/ 11, MVT::v8i32,// ->463314
/*463303*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*463305*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDDZ256rri), 0,
                      MVT::v8i32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86VShrd:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VPSHRDDZ256rri:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (timm:{ *:[i8] }):$src3)
/*463314*/      /*SwitchType*/ 11, MVT::v8i64,// ->463327
/*463316*/        OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*463318*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDQZrri), 0,
                      MVT::v8i64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86VShrd:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VPSHRDQZrri:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, (timm:{ *:[i8] }):$src3)
/*463327*/      /*SwitchType*/ 11, MVT::v2i64,// ->463340
/*463329*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*463331*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDQZ128rri), 0,
                      MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86VShrd:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VPSHRDQZ128rri:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, (timm:{ *:[i8] }):$src3)
/*463340*/      /*SwitchType*/ 11, MVT::v4i64,// ->463353
/*463342*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*463344*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHRDQZ256rri), 0,
                      MVT::v4i64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86VShrd:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VPSHRDQZ256rri:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, (timm:{ *:[i8] }):$src3)
/*463353*/      0, // EndSwitchType
/*463354*/    0, /*End of Scope*/
/*463355*/  /*SwitchOpcode*/ 107|128,52/*6763*/, TARGET_VAL(ISD::SETCC),// ->470122
/*463359*/    OPC_Scope, 3|128,36/*4611*/, /*->467973*/ // 3 children in Scope
/*463362*/      OPC_RecordNode, // #0 = $cc
/*463363*/      OPC_Scope, 47, /*->463412*/ // 88 children in Scope
/*463365*/        OPC_RecordChild0, // #1 = $src1
/*463366*/        OPC_CheckChild0Type, MVT::v64i8,
/*463368*/        OPC_MoveChild1,
/*463369*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*463372*/        OPC_RecordMemRef,
/*463373*/        OPC_RecordNode, // #2 = 'ld' chained node
/*463374*/        OPC_CheckFoldableChainNode,
/*463375*/        OPC_RecordChild1, // #3 = $src2
/*463376*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*463378*/        OPC_CheckPredicate, 9, // Predicate_load
/*463380*/        OPC_MoveParent,
/*463381*/        OPC_MoveChild2,
/*463382*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*463385*/        OPC_MoveParent,
/*463386*/        OPC_CheckPredicate, 105, // Predicate_X86pcmpm
/*463388*/        OPC_CheckType, MVT::v64i1,
/*463390*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*463392*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*463395*/        OPC_EmitMergeInputChains1_2,
/*463396*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*463399*/        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, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc - Complexity = 26
                  // Dst: (VPCMPBZrmi:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src1, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] })):$cc))
/*463412*/      /*Scope*/ 47, /*->463460*/
/*463413*/        OPC_MoveChild0,
/*463414*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*463417*/        OPC_RecordMemRef,
/*463418*/        OPC_RecordNode, // #1 = 'ld' chained node
/*463419*/        OPC_CheckFoldableChainNode,
/*463420*/        OPC_RecordChild1, // #2 = $src2
/*463421*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*463423*/        OPC_CheckPredicate, 9, // Predicate_load
/*463425*/        OPC_CheckType, MVT::v64i8,
/*463427*/        OPC_MoveParent,
/*463428*/        OPC_RecordChild1, // #3 = $src1
/*463429*/        OPC_MoveChild2,
/*463430*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*463433*/        OPC_MoveParent,
/*463434*/        OPC_CheckPredicate, 105, // Predicate_X86pcmpm_commute
/*463436*/        OPC_CheckType, MVT::v64i1,
/*463438*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*463440*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*463443*/        OPC_EmitMergeInputChains1_1,
/*463444*/        OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/*463447*/        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] } (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v64i8] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 26
                  // Dst: (VPCMPBZrmi:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v64i1] }:$cc))
/*463460*/      /*Scope*/ 47, /*->463508*/
/*463461*/        OPC_RecordChild0, // #1 = $src1
/*463462*/        OPC_CheckChild0Type, MVT::v32i8,
/*463464*/        OPC_MoveChild1,
/*463465*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*463468*/        OPC_RecordMemRef,
/*463469*/        OPC_RecordNode, // #2 = 'ld' chained node
/*463470*/        OPC_CheckFoldableChainNode,
/*463471*/        OPC_RecordChild1, // #3 = $src2
/*463472*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*463474*/        OPC_CheckPredicate, 9, // Predicate_load
/*463476*/        OPC_MoveParent,
/*463477*/        OPC_MoveChild2,
/*463478*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*463481*/        OPC_MoveParent,
/*463482*/        OPC_CheckPredicate, 105, // Predicate_X86pcmpm
/*463484*/        OPC_CheckType, MVT::v32i1,
/*463486*/        OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*463488*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*463491*/        OPC_EmitMergeInputChains1_2,
/*463492*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*463495*/        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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc - Complexity = 26
                  // Dst: (VPCMPBZ256rmi:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] })):$cc))
/*463508*/      /*Scope*/ 47, /*->463556*/
/*463509*/        OPC_MoveChild0,
/*463510*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*463513*/        OPC_RecordMemRef,
/*463514*/        OPC_RecordNode, // #1 = 'ld' chained node
/*463515*/        OPC_CheckFoldableChainNode,
/*463516*/        OPC_RecordChild1, // #2 = $src2
/*463517*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*463519*/        OPC_CheckPredicate, 9, // Predicate_load
/*463521*/        OPC_CheckType, MVT::v32i8,
/*463523*/        OPC_MoveParent,
/*463524*/        OPC_RecordChild1, // #3 = $src1
/*463525*/        OPC_MoveChild2,
/*463526*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*463529*/        OPC_MoveParent,
/*463530*/        OPC_CheckPredicate, 105, // Predicate_X86pcmpm_commute
/*463532*/        OPC_CheckType, MVT::v32i1,
/*463534*/        OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*463536*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*463539*/        OPC_EmitMergeInputChains1_1,
/*463540*/        OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/*463543*/        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] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v32i8] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 26
                  // Dst: (VPCMPBZ256rmi:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v32i1] }:$cc))
/*463556*/      /*Scope*/ 47, /*->463604*/
/*463557*/        OPC_RecordChild0, // #1 = $src1
/*463558*/        OPC_CheckChild0Type, MVT::v16i8,
/*463560*/        OPC_MoveChild1,
/*463561*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*463564*/        OPC_RecordMemRef,
/*463565*/        OPC_RecordNode, // #2 = 'ld' chained node
/*463566*/        OPC_CheckFoldableChainNode,
/*463567*/        OPC_RecordChild1, // #3 = $src2
/*463568*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*463570*/        OPC_CheckPredicate, 9, // Predicate_load
/*463572*/        OPC_MoveParent,
/*463573*/        OPC_MoveChild2,
/*463574*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*463577*/        OPC_MoveParent,
/*463578*/        OPC_CheckPredicate, 105, // Predicate_X86pcmpm
/*463580*/        OPC_CheckType, MVT::v16i1,
/*463582*/        OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*463584*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*463587*/        OPC_EmitMergeInputChains1_2,
/*463588*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*463591*/        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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc - Complexity = 26
                  // Dst: (VPCMPBZ128rmi:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] })):$cc))
/*463604*/      /*Scope*/ 47, /*->463652*/
/*463605*/        OPC_MoveChild0,
/*463606*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*463609*/        OPC_RecordMemRef,
/*463610*/        OPC_RecordNode, // #1 = 'ld' chained node
/*463611*/        OPC_CheckFoldableChainNode,
/*463612*/        OPC_RecordChild1, // #2 = $src2
/*463613*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*463615*/        OPC_CheckPredicate, 9, // Predicate_load
/*463617*/        OPC_CheckType, MVT::v16i8,
/*463619*/        OPC_MoveParent,
/*463620*/        OPC_RecordChild1, // #3 = $src1
/*463621*/        OPC_MoveChild2,
/*463622*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*463625*/        OPC_MoveParent,
/*463626*/        OPC_CheckPredicate, 105, // Predicate_X86pcmpm_commute
/*463628*/        OPC_CheckType, MVT::v16i1,
/*463630*/        OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*463632*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*463635*/        OPC_EmitMergeInputChains1_1,
/*463636*/        OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/*463639*/        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] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v16i8] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 26
                  // Dst: (VPCMPBZ128rmi:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v16i1] }:$cc))
/*463652*/      /*Scope*/ 47, /*->463700*/
/*463653*/        OPC_RecordChild0, // #1 = $src1
/*463654*/        OPC_CheckChild0Type, MVT::v64i8,
/*463656*/        OPC_MoveChild1,
/*463657*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*463660*/        OPC_RecordMemRef,
/*463661*/        OPC_RecordNode, // #2 = 'ld' chained node
/*463662*/        OPC_CheckFoldableChainNode,
/*463663*/        OPC_RecordChild1, // #3 = $src2
/*463664*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*463666*/        OPC_CheckPredicate, 9, // Predicate_load
/*463668*/        OPC_MoveParent,
/*463669*/        OPC_MoveChild2,
/*463670*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*463673*/        OPC_MoveParent,
/*463674*/        OPC_CheckPredicate, 106, // Predicate_X86pcmpum
/*463676*/        OPC_CheckType, MVT::v64i1,
/*463678*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*463680*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*463683*/        OPC_EmitMergeInputChains1_2,
/*463684*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*463687*/        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, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc - Complexity = 26
                  // Dst: (VPCMPUBZrmi:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src1, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] })):$cc))
/*463700*/      /*Scope*/ 47, /*->463748*/
/*463701*/        OPC_MoveChild0,
/*463702*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*463705*/        OPC_RecordMemRef,
/*463706*/        OPC_RecordNode, // #1 = 'ld' chained node
/*463707*/        OPC_CheckFoldableChainNode,
/*463708*/        OPC_RecordChild1, // #2 = $src2
/*463709*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*463711*/        OPC_CheckPredicate, 9, // Predicate_load
/*463713*/        OPC_CheckType, MVT::v64i8,
/*463715*/        OPC_MoveParent,
/*463716*/        OPC_RecordChild1, // #3 = $src1
/*463717*/        OPC_MoveChild2,
/*463718*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*463721*/        OPC_MoveParent,
/*463722*/        OPC_CheckPredicate, 106, // Predicate_X86pcmpum_commute
/*463724*/        OPC_CheckType, MVT::v64i1,
/*463726*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*463728*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*463731*/        OPC_EmitMergeInputChains1_1,
/*463732*/        OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/*463735*/        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] } (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v64i8] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 26
                  // Dst: (VPCMPUBZrmi:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v64i1] }:$cc))
/*463748*/      /*Scope*/ 47, /*->463796*/
/*463749*/        OPC_RecordChild0, // #1 = $src1
/*463750*/        OPC_CheckChild0Type, MVT::v32i8,
/*463752*/        OPC_MoveChild1,
/*463753*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*463756*/        OPC_RecordMemRef,
/*463757*/        OPC_RecordNode, // #2 = 'ld' chained node
/*463758*/        OPC_CheckFoldableChainNode,
/*463759*/        OPC_RecordChild1, // #3 = $src2
/*463760*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*463762*/        OPC_CheckPredicate, 9, // Predicate_load
/*463764*/        OPC_MoveParent,
/*463765*/        OPC_MoveChild2,
/*463766*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*463769*/        OPC_MoveParent,
/*463770*/        OPC_CheckPredicate, 106, // Predicate_X86pcmpum
/*463772*/        OPC_CheckType, MVT::v32i1,
/*463774*/        OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*463776*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*463779*/        OPC_EmitMergeInputChains1_2,
/*463780*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*463783*/        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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc - Complexity = 26
                  // Dst: (VPCMPUBZ256rmi:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] })):$cc))
/*463796*/      /*Scope*/ 47, /*->463844*/
/*463797*/        OPC_MoveChild0,
/*463798*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*463801*/        OPC_RecordMemRef,
/*463802*/        OPC_RecordNode, // #1 = 'ld' chained node
/*463803*/        OPC_CheckFoldableChainNode,
/*463804*/        OPC_RecordChild1, // #2 = $src2
/*463805*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*463807*/        OPC_CheckPredicate, 9, // Predicate_load
/*463809*/        OPC_CheckType, MVT::v32i8,
/*463811*/        OPC_MoveParent,
/*463812*/        OPC_RecordChild1, // #3 = $src1
/*463813*/        OPC_MoveChild2,
/*463814*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*463817*/        OPC_MoveParent,
/*463818*/        OPC_CheckPredicate, 106, // Predicate_X86pcmpum_commute
/*463820*/        OPC_CheckType, MVT::v32i1,
/*463822*/        OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*463824*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*463827*/        OPC_EmitMergeInputChains1_1,
/*463828*/        OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/*463831*/        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] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v32i8] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 26
                  // Dst: (VPCMPUBZ256rmi:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v32i1] }:$cc))
/*463844*/      /*Scope*/ 47, /*->463892*/
/*463845*/        OPC_RecordChild0, // #1 = $src1
/*463846*/        OPC_CheckChild0Type, MVT::v16i8,
/*463848*/        OPC_MoveChild1,
/*463849*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*463852*/        OPC_RecordMemRef,
/*463853*/        OPC_RecordNode, // #2 = 'ld' chained node
/*463854*/        OPC_CheckFoldableChainNode,
/*463855*/        OPC_RecordChild1, // #3 = $src2
/*463856*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*463858*/        OPC_CheckPredicate, 9, // Predicate_load
/*463860*/        OPC_MoveParent,
/*463861*/        OPC_MoveChild2,
/*463862*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*463865*/        OPC_MoveParent,
/*463866*/        OPC_CheckPredicate, 106, // Predicate_X86pcmpum
/*463868*/        OPC_CheckType, MVT::v16i1,
/*463870*/        OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*463872*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*463875*/        OPC_EmitMergeInputChains1_2,
/*463876*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*463879*/        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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc - Complexity = 26
                  // Dst: (VPCMPUBZ128rmi:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] })):$cc))
/*463892*/      /*Scope*/ 47, /*->463940*/
/*463893*/        OPC_MoveChild0,
/*463894*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*463897*/        OPC_RecordMemRef,
/*463898*/        OPC_RecordNode, // #1 = 'ld' chained node
/*463899*/        OPC_CheckFoldableChainNode,
/*463900*/        OPC_RecordChild1, // #2 = $src2
/*463901*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*463903*/        OPC_CheckPredicate, 9, // Predicate_load
/*463905*/        OPC_CheckType, MVT::v16i8,
/*463907*/        OPC_MoveParent,
/*463908*/        OPC_RecordChild1, // #3 = $src1
/*463909*/        OPC_MoveChild2,
/*463910*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*463913*/        OPC_MoveParent,
/*463914*/        OPC_CheckPredicate, 106, // Predicate_X86pcmpum_commute
/*463916*/        OPC_CheckType, MVT::v16i1,
/*463918*/        OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*463920*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*463923*/        OPC_EmitMergeInputChains1_1,
/*463924*/        OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/*463927*/        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] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v16i8] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 26
                  // Dst: (VPCMPUBZ128rmi:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v16i1] }:$cc))
/*463940*/      /*Scope*/ 47, /*->463988*/
/*463941*/        OPC_RecordChild0, // #1 = $src1
/*463942*/        OPC_CheckChild0Type, MVT::v32i16,
/*463944*/        OPC_MoveChild1,
/*463945*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*463948*/        OPC_RecordMemRef,
/*463949*/        OPC_RecordNode, // #2 = 'ld' chained node
/*463950*/        OPC_CheckFoldableChainNode,
/*463951*/        OPC_RecordChild1, // #3 = $src2
/*463952*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*463954*/        OPC_CheckPredicate, 9, // Predicate_load
/*463956*/        OPC_MoveParent,
/*463957*/        OPC_MoveChild2,
/*463958*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*463961*/        OPC_MoveParent,
/*463962*/        OPC_CheckPredicate, 105, // Predicate_X86pcmpm
/*463964*/        OPC_CheckType, MVT::v32i1,
/*463966*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*463968*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*463971*/        OPC_EmitMergeInputChains1_2,
/*463972*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*463975*/        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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc - Complexity = 26
                  // Dst: (VPCMPWZrmi:{ *:[v32i1] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v32i1] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] })):$cc))
/*463988*/      /*Scope*/ 47, /*->464036*/
/*463989*/        OPC_MoveChild0,
/*463990*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*463993*/        OPC_RecordMemRef,
/*463994*/        OPC_RecordNode, // #1 = 'ld' chained node
/*463995*/        OPC_CheckFoldableChainNode,
/*463996*/        OPC_RecordChild1, // #2 = $src2
/*463997*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*463999*/        OPC_CheckPredicate, 9, // Predicate_load
/*464001*/        OPC_CheckType, MVT::v32i16,
/*464003*/        OPC_MoveParent,
/*464004*/        OPC_RecordChild1, // #3 = $src1
/*464005*/        OPC_MoveChild2,
/*464006*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*464009*/        OPC_MoveParent,
/*464010*/        OPC_CheckPredicate, 105, // Predicate_X86pcmpm_commute
/*464012*/        OPC_CheckType, MVT::v32i1,
/*464014*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*464016*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*464019*/        OPC_EmitMergeInputChains1_1,
/*464020*/        OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/*464023*/        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] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 26
                  // Dst: (VPCMPWZrmi:{ *:[v32i1] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v32i1] }:$cc))
/*464036*/      /*Scope*/ 47, /*->464084*/
/*464037*/        OPC_RecordChild0, // #1 = $src1
/*464038*/        OPC_CheckChild0Type, MVT::v16i16,
/*464040*/        OPC_MoveChild1,
/*464041*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*464044*/        OPC_RecordMemRef,
/*464045*/        OPC_RecordNode, // #2 = 'ld' chained node
/*464046*/        OPC_CheckFoldableChainNode,
/*464047*/        OPC_RecordChild1, // #3 = $src2
/*464048*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*464050*/        OPC_CheckPredicate, 9, // Predicate_load
/*464052*/        OPC_MoveParent,
/*464053*/        OPC_MoveChild2,
/*464054*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*464057*/        OPC_MoveParent,
/*464058*/        OPC_CheckPredicate, 105, // Predicate_X86pcmpm
/*464060*/        OPC_CheckType, MVT::v16i1,
/*464062*/        OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*464064*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*464067*/        OPC_EmitMergeInputChains1_2,
/*464068*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*464071*/        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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc - Complexity = 26
                  // Dst: (VPCMPWZ256rmi:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] })):$cc))
/*464084*/      /*Scope*/ 47, /*->464132*/
/*464085*/        OPC_MoveChild0,
/*464086*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*464089*/        OPC_RecordMemRef,
/*464090*/        OPC_RecordNode, // #1 = 'ld' chained node
/*464091*/        OPC_CheckFoldableChainNode,
/*464092*/        OPC_RecordChild1, // #2 = $src2
/*464093*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*464095*/        OPC_CheckPredicate, 9, // Predicate_load
/*464097*/        OPC_CheckType, MVT::v16i16,
/*464099*/        OPC_MoveParent,
/*464100*/        OPC_RecordChild1, // #3 = $src1
/*464101*/        OPC_MoveChild2,
/*464102*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*464105*/        OPC_MoveParent,
/*464106*/        OPC_CheckPredicate, 105, // Predicate_X86pcmpm_commute
/*464108*/        OPC_CheckType, MVT::v16i1,
/*464110*/        OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*464112*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*464115*/        OPC_EmitMergeInputChains1_1,
/*464116*/        OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/*464119*/        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] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 26
                  // Dst: (VPCMPWZ256rmi:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v16i1] }:$cc))
/*464132*/      /*Scope*/ 47, /*->464180*/
/*464133*/        OPC_RecordChild0, // #1 = $src1
/*464134*/        OPC_CheckChild0Type, MVT::v8i16,
/*464136*/        OPC_MoveChild1,
/*464137*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*464140*/        OPC_RecordMemRef,
/*464141*/        OPC_RecordNode, // #2 = 'ld' chained node
/*464142*/        OPC_CheckFoldableChainNode,
/*464143*/        OPC_RecordChild1, // #3 = $src2
/*464144*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*464146*/        OPC_CheckPredicate, 9, // Predicate_load
/*464148*/        OPC_MoveParent,
/*464149*/        OPC_MoveChild2,
/*464150*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*464153*/        OPC_MoveParent,
/*464154*/        OPC_CheckPredicate, 105, // Predicate_X86pcmpm
/*464156*/        OPC_CheckType, MVT::v8i1,
/*464158*/        OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*464160*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*464163*/        OPC_EmitMergeInputChains1_2,
/*464164*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*464167*/        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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc - Complexity = 26
                  // Dst: (VPCMPWZ128rmi:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] })):$cc))
/*464180*/      /*Scope*/ 47, /*->464228*/
/*464181*/        OPC_MoveChild0,
/*464182*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*464185*/        OPC_RecordMemRef,
/*464186*/        OPC_RecordNode, // #1 = 'ld' chained node
/*464187*/        OPC_CheckFoldableChainNode,
/*464188*/        OPC_RecordChild1, // #2 = $src2
/*464189*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*464191*/        OPC_CheckPredicate, 9, // Predicate_load
/*464193*/        OPC_CheckType, MVT::v8i16,
/*464195*/        OPC_MoveParent,
/*464196*/        OPC_RecordChild1, // #3 = $src1
/*464197*/        OPC_MoveChild2,
/*464198*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*464201*/        OPC_MoveParent,
/*464202*/        OPC_CheckPredicate, 105, // Predicate_X86pcmpm_commute
/*464204*/        OPC_CheckType, MVT::v8i1,
/*464206*/        OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*464208*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*464211*/        OPC_EmitMergeInputChains1_1,
/*464212*/        OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/*464215*/        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] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 26
                  // Dst: (VPCMPWZ128rmi:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v8i1] }:$cc))
/*464228*/      /*Scope*/ 47, /*->464276*/
/*464229*/        OPC_RecordChild0, // #1 = $src1
/*464230*/        OPC_CheckChild0Type, MVT::v32i16,
/*464232*/        OPC_MoveChild1,
/*464233*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*464236*/        OPC_RecordMemRef,
/*464237*/        OPC_RecordNode, // #2 = 'ld' chained node
/*464238*/        OPC_CheckFoldableChainNode,
/*464239*/        OPC_RecordChild1, // #3 = $src2
/*464240*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*464242*/        OPC_CheckPredicate, 9, // Predicate_load
/*464244*/        OPC_MoveParent,
/*464245*/        OPC_MoveChild2,
/*464246*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*464249*/        OPC_MoveParent,
/*464250*/        OPC_CheckPredicate, 106, // Predicate_X86pcmpum
/*464252*/        OPC_CheckType, MVT::v32i1,
/*464254*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*464256*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*464259*/        OPC_EmitMergeInputChains1_2,
/*464260*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*464263*/        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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc - Complexity = 26
                  // Dst: (VPCMPUWZrmi:{ *:[v32i1] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v32i1] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] })):$cc))
/*464276*/      /*Scope*/ 47, /*->464324*/
/*464277*/        OPC_MoveChild0,
/*464278*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*464281*/        OPC_RecordMemRef,
/*464282*/        OPC_RecordNode, // #1 = 'ld' chained node
/*464283*/        OPC_CheckFoldableChainNode,
/*464284*/        OPC_RecordChild1, // #2 = $src2
/*464285*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*464287*/        OPC_CheckPredicate, 9, // Predicate_load
/*464289*/        OPC_CheckType, MVT::v32i16,
/*464291*/        OPC_MoveParent,
/*464292*/        OPC_RecordChild1, // #3 = $src1
/*464293*/        OPC_MoveChild2,
/*464294*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*464297*/        OPC_MoveParent,
/*464298*/        OPC_CheckPredicate, 106, // Predicate_X86pcmpum_commute
/*464300*/        OPC_CheckType, MVT::v32i1,
/*464302*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*464304*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*464307*/        OPC_EmitMergeInputChains1_1,
/*464308*/        OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/*464311*/        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] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 26
                  // Dst: (VPCMPUWZrmi:{ *:[v32i1] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v32i1] }:$cc))
/*464324*/      /*Scope*/ 47, /*->464372*/
/*464325*/        OPC_RecordChild0, // #1 = $src1
/*464326*/        OPC_CheckChild0Type, MVT::v16i16,
/*464328*/        OPC_MoveChild1,
/*464329*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*464332*/        OPC_RecordMemRef,
/*464333*/        OPC_RecordNode, // #2 = 'ld' chained node
/*464334*/        OPC_CheckFoldableChainNode,
/*464335*/        OPC_RecordChild1, // #3 = $src2
/*464336*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*464338*/        OPC_CheckPredicate, 9, // Predicate_load
/*464340*/        OPC_MoveParent,
/*464341*/        OPC_MoveChild2,
/*464342*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*464345*/        OPC_MoveParent,
/*464346*/        OPC_CheckPredicate, 106, // Predicate_X86pcmpum
/*464348*/        OPC_CheckType, MVT::v16i1,
/*464350*/        OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*464352*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*464355*/        OPC_EmitMergeInputChains1_2,
/*464356*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*464359*/        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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc - Complexity = 26
                  // Dst: (VPCMPUWZ256rmi:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] })):$cc))
/*464372*/      /*Scope*/ 47, /*->464420*/
/*464373*/        OPC_MoveChild0,
/*464374*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*464377*/        OPC_RecordMemRef,
/*464378*/        OPC_RecordNode, // #1 = 'ld' chained node
/*464379*/        OPC_CheckFoldableChainNode,
/*464380*/        OPC_RecordChild1, // #2 = $src2
/*464381*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*464383*/        OPC_CheckPredicate, 9, // Predicate_load
/*464385*/        OPC_CheckType, MVT::v16i16,
/*464387*/        OPC_MoveParent,
/*464388*/        OPC_RecordChild1, // #3 = $src1
/*464389*/        OPC_MoveChild2,
/*464390*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*464393*/        OPC_MoveParent,
/*464394*/        OPC_CheckPredicate, 106, // Predicate_X86pcmpum_commute
/*464396*/        OPC_CheckType, MVT::v16i1,
/*464398*/        OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*464400*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*464403*/        OPC_EmitMergeInputChains1_1,
/*464404*/        OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/*464407*/        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] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 26
                  // Dst: (VPCMPUWZ256rmi:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v16i1] }:$cc))
/*464420*/      /*Scope*/ 47, /*->464468*/
/*464421*/        OPC_RecordChild0, // #1 = $src1
/*464422*/        OPC_CheckChild0Type, MVT::v8i16,
/*464424*/        OPC_MoveChild1,
/*464425*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*464428*/        OPC_RecordMemRef,
/*464429*/        OPC_RecordNode, // #2 = 'ld' chained node
/*464430*/        OPC_CheckFoldableChainNode,
/*464431*/        OPC_RecordChild1, // #3 = $src2
/*464432*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*464434*/        OPC_CheckPredicate, 9, // Predicate_load
/*464436*/        OPC_MoveParent,
/*464437*/        OPC_MoveChild2,
/*464438*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*464441*/        OPC_MoveParent,
/*464442*/        OPC_CheckPredicate, 106, // Predicate_X86pcmpum
/*464444*/        OPC_CheckType, MVT::v8i1,
/*464446*/        OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*464448*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*464451*/        OPC_EmitMergeInputChains1_2,
/*464452*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*464455*/        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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc - Complexity = 26
                  // Dst: (VPCMPUWZ128rmi:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] })):$cc))
/*464468*/      /*Scope*/ 47, /*->464516*/
/*464469*/        OPC_MoveChild0,
/*464470*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*464473*/        OPC_RecordMemRef,
/*464474*/        OPC_RecordNode, // #1 = 'ld' chained node
/*464475*/        OPC_CheckFoldableChainNode,
/*464476*/        OPC_RecordChild1, // #2 = $src2
/*464477*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*464479*/        OPC_CheckPredicate, 9, // Predicate_load
/*464481*/        OPC_CheckType, MVT::v8i16,
/*464483*/        OPC_MoveParent,
/*464484*/        OPC_RecordChild1, // #3 = $src1
/*464485*/        OPC_MoveChild2,
/*464486*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*464489*/        OPC_MoveParent,
/*464490*/        OPC_CheckPredicate, 106, // Predicate_X86pcmpum_commute
/*464492*/        OPC_CheckType, MVT::v8i1,
/*464494*/        OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*464496*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*464499*/        OPC_EmitMergeInputChains1_1,
/*464500*/        OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/*464503*/        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] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 26
                  // Dst: (VPCMPUWZ128rmi:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v8i1] }:$cc))
/*464516*/      /*Scope*/ 47, /*->464564*/
/*464517*/        OPC_RecordChild0, // #1 = $src1
/*464518*/        OPC_CheckChild0Type, MVT::v16i32,
/*464520*/        OPC_MoveChild1,
/*464521*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*464524*/        OPC_RecordMemRef,
/*464525*/        OPC_RecordNode, // #2 = 'ld' chained node
/*464526*/        OPC_CheckFoldableChainNode,
/*464527*/        OPC_RecordChild1, // #3 = $src2
/*464528*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*464530*/        OPC_CheckPredicate, 9, // Predicate_load
/*464532*/        OPC_MoveParent,
/*464533*/        OPC_MoveChild2,
/*464534*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*464537*/        OPC_MoveParent,
/*464538*/        OPC_CheckPredicate, 105, // Predicate_X86pcmpm
/*464540*/        OPC_CheckType, MVT::v16i1,
/*464542*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*464544*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*464547*/        OPC_EmitMergeInputChains1_2,
/*464548*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*464551*/        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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc - Complexity = 26
                  // Dst: (VPCMPDZrmi:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] })):$cc))
/*464564*/      /*Scope*/ 47, /*->464612*/
/*464565*/        OPC_MoveChild0,
/*464566*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*464569*/        OPC_RecordMemRef,
/*464570*/        OPC_RecordNode, // #1 = 'ld' chained node
/*464571*/        OPC_CheckFoldableChainNode,
/*464572*/        OPC_RecordChild1, // #2 = $src2
/*464573*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*464575*/        OPC_CheckPredicate, 9, // Predicate_load
/*464577*/        OPC_CheckType, MVT::v16i32,
/*464579*/        OPC_MoveParent,
/*464580*/        OPC_RecordChild1, // #3 = $src1
/*464581*/        OPC_MoveChild2,
/*464582*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*464585*/        OPC_MoveParent,
/*464586*/        OPC_CheckPredicate, 105, // Predicate_X86pcmpm_commute
/*464588*/        OPC_CheckType, MVT::v16i1,
/*464590*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*464592*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*464595*/        OPC_EmitMergeInputChains1_1,
/*464596*/        OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/*464599*/        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] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 26
                  // Dst: (VPCMPDZrmi:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v16i1] }:$cc))
/*464612*/      /*Scope*/ 45, /*->464658*/
/*464613*/        OPC_RecordChild0, // #1 = $src1
/*464614*/        OPC_CheckChild0Type, MVT::v16i32,
/*464616*/        OPC_MoveChild1,
/*464617*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*464620*/        OPC_RecordMemRef,
/*464621*/        OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*464622*/        OPC_CheckFoldableChainNode,
/*464623*/        OPC_RecordChild1, // #3 = $src2
/*464624*/        OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*464626*/        OPC_MoveParent,
/*464627*/        OPC_MoveChild2,
/*464628*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*464631*/        OPC_MoveParent,
/*464632*/        OPC_CheckPredicate, 105, // Predicate_X86pcmpm
/*464634*/        OPC_CheckType, MVT::v16i1,
/*464636*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*464638*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*464641*/        OPC_EmitMergeInputChains1_2,
/*464642*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*464645*/        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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc - Complexity = 26
                  // Dst: (VPCMPDZrmib:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (cond:{ *:[Other] })):$cc))
/*464658*/      /*Scope*/ 45, /*->464704*/
/*464659*/        OPC_MoveChild0,
/*464660*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*464663*/        OPC_RecordMemRef,
/*464664*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*464665*/        OPC_CheckFoldableChainNode,
/*464666*/        OPC_RecordChild1, // #2 = $src2
/*464667*/        OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*464669*/        OPC_CheckType, MVT::v16i32,
/*464671*/        OPC_MoveParent,
/*464672*/        OPC_RecordChild1, // #3 = $src1
/*464673*/        OPC_MoveChild2,
/*464674*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*464677*/        OPC_MoveParent,
/*464678*/        OPC_CheckPredicate, 105, // Predicate_X86pcmpm_commute
/*464680*/        OPC_CheckType, MVT::v16i1,
/*464682*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*464684*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*464687*/        OPC_EmitMergeInputChains1_1,
/*464688*/        OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/*464691*/        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] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 26
                  // Dst: (VPCMPDZrmib:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v16i1] }:$cc))
/*464704*/      /*Scope*/ 47, /*->464752*/
/*464705*/        OPC_RecordChild0, // #1 = $src1
/*464706*/        OPC_CheckChild0Type, MVT::v8i32,
/*464708*/        OPC_MoveChild1,
/*464709*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*464712*/        OPC_RecordMemRef,
/*464713*/        OPC_RecordNode, // #2 = 'ld' chained node
/*464714*/        OPC_CheckFoldableChainNode,
/*464715*/        OPC_RecordChild1, // #3 = $src2
/*464716*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*464718*/        OPC_CheckPredicate, 9, // Predicate_load
/*464720*/        OPC_MoveParent,
/*464721*/        OPC_MoveChild2,
/*464722*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*464725*/        OPC_MoveParent,
/*464726*/        OPC_CheckPredicate, 105, // Predicate_X86pcmpm
/*464728*/        OPC_CheckType, MVT::v8i1,
/*464730*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*464732*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*464735*/        OPC_EmitMergeInputChains1_2,
/*464736*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*464739*/        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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc - Complexity = 26
                  // Dst: (VPCMPDZ256rmi:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] })):$cc))
/*464752*/      /*Scope*/ 47, /*->464800*/
/*464753*/        OPC_MoveChild0,
/*464754*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*464757*/        OPC_RecordMemRef,
/*464758*/        OPC_RecordNode, // #1 = 'ld' chained node
/*464759*/        OPC_CheckFoldableChainNode,
/*464760*/        OPC_RecordChild1, // #2 = $src2
/*464761*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*464763*/        OPC_CheckPredicate, 9, // Predicate_load
/*464765*/        OPC_CheckType, MVT::v8i32,
/*464767*/        OPC_MoveParent,
/*464768*/        OPC_RecordChild1, // #3 = $src1
/*464769*/        OPC_MoveChild2,
/*464770*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*464773*/        OPC_MoveParent,
/*464774*/        OPC_CheckPredicate, 105, // Predicate_X86pcmpm_commute
/*464776*/        OPC_CheckType, MVT::v8i1,
/*464778*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*464780*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*464783*/        OPC_EmitMergeInputChains1_1,
/*464784*/        OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/*464787*/        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] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 26
                  // Dst: (VPCMPDZ256rmi:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v8i1] }:$cc))
/*464800*/      /*Scope*/ 45, /*->464846*/
/*464801*/        OPC_RecordChild0, // #1 = $src1
/*464802*/        OPC_CheckChild0Type, MVT::v8i32,
/*464804*/        OPC_MoveChild1,
/*464805*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*464808*/        OPC_RecordMemRef,
/*464809*/        OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*464810*/        OPC_CheckFoldableChainNode,
/*464811*/        OPC_RecordChild1, // #3 = $src2
/*464812*/        OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*464814*/        OPC_MoveParent,
/*464815*/        OPC_MoveChild2,
/*464816*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*464819*/        OPC_MoveParent,
/*464820*/        OPC_CheckPredicate, 105, // Predicate_X86pcmpm
/*464822*/        OPC_CheckType, MVT::v8i1,
/*464824*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*464826*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*464829*/        OPC_EmitMergeInputChains1_2,
/*464830*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*464833*/        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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc - Complexity = 26
                  // Dst: (VPCMPDZ256rmib:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (cond:{ *:[Other] })):$cc))
/*464846*/      /*Scope*/ 45, /*->464892*/
/*464847*/        OPC_MoveChild0,
/*464848*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*464851*/        OPC_RecordMemRef,
/*464852*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*464853*/        OPC_CheckFoldableChainNode,
/*464854*/        OPC_RecordChild1, // #2 = $src2
/*464855*/        OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*464857*/        OPC_CheckType, MVT::v8i32,
/*464859*/        OPC_MoveParent,
/*464860*/        OPC_RecordChild1, // #3 = $src1
/*464861*/        OPC_MoveChild2,
/*464862*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*464865*/        OPC_MoveParent,
/*464866*/        OPC_CheckPredicate, 105, // Predicate_X86pcmpm_commute
/*464868*/        OPC_CheckType, MVT::v8i1,
/*464870*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*464872*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*464875*/        OPC_EmitMergeInputChains1_1,
/*464876*/        OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/*464879*/        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] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 26
                  // Dst: (VPCMPDZ256rmib:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v8i1] }:$cc))
/*464892*/      /*Scope*/ 47, /*->464940*/
/*464893*/        OPC_RecordChild0, // #1 = $src1
/*464894*/        OPC_CheckChild0Type, MVT::v4i32,
/*464896*/        OPC_MoveChild1,
/*464897*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*464900*/        OPC_RecordMemRef,
/*464901*/        OPC_RecordNode, // #2 = 'ld' chained node
/*464902*/        OPC_CheckFoldableChainNode,
/*464903*/        OPC_RecordChild1, // #3 = $src2
/*464904*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*464906*/        OPC_CheckPredicate, 9, // Predicate_load
/*464908*/        OPC_MoveParent,
/*464909*/        OPC_MoveChild2,
/*464910*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*464913*/        OPC_MoveParent,
/*464914*/        OPC_CheckPredicate, 105, // Predicate_X86pcmpm
/*464916*/        OPC_CheckType, MVT::v4i1,
/*464918*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*464920*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*464923*/        OPC_EmitMergeInputChains1_2,
/*464924*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*464927*/        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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc - Complexity = 26
                  // Dst: (VPCMPDZ128rmi:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] })):$cc))
/*464940*/      /*Scope*/ 47, /*->464988*/
/*464941*/        OPC_MoveChild0,
/*464942*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*464945*/        OPC_RecordMemRef,
/*464946*/        OPC_RecordNode, // #1 = 'ld' chained node
/*464947*/        OPC_CheckFoldableChainNode,
/*464948*/        OPC_RecordChild1, // #2 = $src2
/*464949*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*464951*/        OPC_CheckPredicate, 9, // Predicate_load
/*464953*/        OPC_CheckType, MVT::v4i32,
/*464955*/        OPC_MoveParent,
/*464956*/        OPC_RecordChild1, // #3 = $src1
/*464957*/        OPC_MoveChild2,
/*464958*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*464961*/        OPC_MoveParent,
/*464962*/        OPC_CheckPredicate, 105, // Predicate_X86pcmpm_commute
/*464964*/        OPC_CheckType, MVT::v4i1,
/*464966*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*464968*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*464971*/        OPC_EmitMergeInputChains1_1,
/*464972*/        OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/*464975*/        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] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 26
                  // Dst: (VPCMPDZ128rmi:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v4i1] }:$cc))
/*464988*/      /*Scope*/ 45, /*->465034*/
/*464989*/        OPC_RecordChild0, // #1 = $src1
/*464990*/        OPC_CheckChild0Type, MVT::v4i32,
/*464992*/        OPC_MoveChild1,
/*464993*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*464996*/        OPC_RecordMemRef,
/*464997*/        OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*464998*/        OPC_CheckFoldableChainNode,
/*464999*/        OPC_RecordChild1, // #3 = $src2
/*465000*/        OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*465002*/        OPC_MoveParent,
/*465003*/        OPC_MoveChild2,
/*465004*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*465007*/        OPC_MoveParent,
/*465008*/        OPC_CheckPredicate, 105, // Predicate_X86pcmpm
/*465010*/        OPC_CheckType, MVT::v4i1,
/*465012*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*465014*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*465017*/        OPC_EmitMergeInputChains1_2,
/*465018*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*465021*/        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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc - Complexity = 26
                  // Dst: (VPCMPDZ128rmib:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (cond:{ *:[Other] })):$cc))
/*465034*/      /*Scope*/ 45, /*->465080*/
/*465035*/        OPC_MoveChild0,
/*465036*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*465039*/        OPC_RecordMemRef,
/*465040*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*465041*/        OPC_CheckFoldableChainNode,
/*465042*/        OPC_RecordChild1, // #2 = $src2
/*465043*/        OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*465045*/        OPC_CheckType, MVT::v4i32,
/*465047*/        OPC_MoveParent,
/*465048*/        OPC_RecordChild1, // #3 = $src1
/*465049*/        OPC_MoveChild2,
/*465050*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*465053*/        OPC_MoveParent,
/*465054*/        OPC_CheckPredicate, 105, // Predicate_X86pcmpm_commute
/*465056*/        OPC_CheckType, MVT::v4i1,
/*465058*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*465060*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*465063*/        OPC_EmitMergeInputChains1_1,
/*465064*/        OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/*465067*/        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] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 26
                  // Dst: (VPCMPDZ128rmib:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v4i1] }:$cc))
/*465080*/      /*Scope*/ 47, /*->465128*/
/*465081*/        OPC_RecordChild0, // #1 = $src1
/*465082*/        OPC_CheckChild0Type, MVT::v16i32,
/*465084*/        OPC_MoveChild1,
/*465085*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*465088*/        OPC_RecordMemRef,
/*465089*/        OPC_RecordNode, // #2 = 'ld' chained node
/*465090*/        OPC_CheckFoldableChainNode,
/*465091*/        OPC_RecordChild1, // #3 = $src2
/*465092*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*465094*/        OPC_CheckPredicate, 9, // Predicate_load
/*465096*/        OPC_MoveParent,
/*465097*/        OPC_MoveChild2,
/*465098*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*465101*/        OPC_MoveParent,
/*465102*/        OPC_CheckPredicate, 106, // Predicate_X86pcmpum
/*465104*/        OPC_CheckType, MVT::v16i1,
/*465106*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*465108*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*465111*/        OPC_EmitMergeInputChains1_2,
/*465112*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*465115*/        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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc - Complexity = 26
                  // Dst: (VPCMPUDZrmi:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] })):$cc))
/*465128*/      /*Scope*/ 47, /*->465176*/
/*465129*/        OPC_MoveChild0,
/*465130*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*465133*/        OPC_RecordMemRef,
/*465134*/        OPC_RecordNode, // #1 = 'ld' chained node
/*465135*/        OPC_CheckFoldableChainNode,
/*465136*/        OPC_RecordChild1, // #2 = $src2
/*465137*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*465139*/        OPC_CheckPredicate, 9, // Predicate_load
/*465141*/        OPC_CheckType, MVT::v16i32,
/*465143*/        OPC_MoveParent,
/*465144*/        OPC_RecordChild1, // #3 = $src1
/*465145*/        OPC_MoveChild2,
/*465146*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*465149*/        OPC_MoveParent,
/*465150*/        OPC_CheckPredicate, 106, // Predicate_X86pcmpum_commute
/*465152*/        OPC_CheckType, MVT::v16i1,
/*465154*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*465156*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*465159*/        OPC_EmitMergeInputChains1_1,
/*465160*/        OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/*465163*/        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] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 26
                  // Dst: (VPCMPUDZrmi:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v16i1] }:$cc))
/*465176*/      /*Scope*/ 45, /*->465222*/
/*465177*/        OPC_RecordChild0, // #1 = $src1
/*465178*/        OPC_CheckChild0Type, MVT::v16i32,
/*465180*/        OPC_MoveChild1,
/*465181*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*465184*/        OPC_RecordMemRef,
/*465185*/        OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*465186*/        OPC_CheckFoldableChainNode,
/*465187*/        OPC_RecordChild1, // #3 = $src2
/*465188*/        OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*465190*/        OPC_MoveParent,
/*465191*/        OPC_MoveChild2,
/*465192*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*465195*/        OPC_MoveParent,
/*465196*/        OPC_CheckPredicate, 106, // Predicate_X86pcmpum
/*465198*/        OPC_CheckType, MVT::v16i1,
/*465200*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*465202*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*465205*/        OPC_EmitMergeInputChains1_2,
/*465206*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*465209*/        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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc - Complexity = 26
                  // Dst: (VPCMPUDZrmib:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (cond:{ *:[Other] })):$cc))
/*465222*/      /*Scope*/ 45, /*->465268*/
/*465223*/        OPC_MoveChild0,
/*465224*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*465227*/        OPC_RecordMemRef,
/*465228*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*465229*/        OPC_CheckFoldableChainNode,
/*465230*/        OPC_RecordChild1, // #2 = $src2
/*465231*/        OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*465233*/        OPC_CheckType, MVT::v16i32,
/*465235*/        OPC_MoveParent,
/*465236*/        OPC_RecordChild1, // #3 = $src1
/*465237*/        OPC_MoveChild2,
/*465238*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*465241*/        OPC_MoveParent,
/*465242*/        OPC_CheckPredicate, 106, // Predicate_X86pcmpum_commute
/*465244*/        OPC_CheckType, MVT::v16i1,
/*465246*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*465248*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*465251*/        OPC_EmitMergeInputChains1_1,
/*465252*/        OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/*465255*/        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] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 26
                  // Dst: (VPCMPUDZrmib:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v16i1] }:$cc))
/*465268*/      /*Scope*/ 47, /*->465316*/
/*465269*/        OPC_RecordChild0, // #1 = $src1
/*465270*/        OPC_CheckChild0Type, MVT::v8i32,
/*465272*/        OPC_MoveChild1,
/*465273*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*465276*/        OPC_RecordMemRef,
/*465277*/        OPC_RecordNode, // #2 = 'ld' chained node
/*465278*/        OPC_CheckFoldableChainNode,
/*465279*/        OPC_RecordChild1, // #3 = $src2
/*465280*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*465282*/        OPC_CheckPredicate, 9, // Predicate_load
/*465284*/        OPC_MoveParent,
/*465285*/        OPC_MoveChild2,
/*465286*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*465289*/        OPC_MoveParent,
/*465290*/        OPC_CheckPredicate, 106, // Predicate_X86pcmpum
/*465292*/        OPC_CheckType, MVT::v8i1,
/*465294*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*465296*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*465299*/        OPC_EmitMergeInputChains1_2,
/*465300*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*465303*/        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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc - Complexity = 26
                  // Dst: (VPCMPUDZ256rmi:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] })):$cc))
/*465316*/      /*Scope*/ 47, /*->465364*/
/*465317*/        OPC_MoveChild0,
/*465318*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*465321*/        OPC_RecordMemRef,
/*465322*/        OPC_RecordNode, // #1 = 'ld' chained node
/*465323*/        OPC_CheckFoldableChainNode,
/*465324*/        OPC_RecordChild1, // #2 = $src2
/*465325*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*465327*/        OPC_CheckPredicate, 9, // Predicate_load
/*465329*/        OPC_CheckType, MVT::v8i32,
/*465331*/        OPC_MoveParent,
/*465332*/        OPC_RecordChild1, // #3 = $src1
/*465333*/        OPC_MoveChild2,
/*465334*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*465337*/        OPC_MoveParent,
/*465338*/        OPC_CheckPredicate, 106, // Predicate_X86pcmpum_commute
/*465340*/        OPC_CheckType, MVT::v8i1,
/*465342*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*465344*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*465347*/        OPC_EmitMergeInputChains1_1,
/*465348*/        OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/*465351*/        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] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 26
                  // Dst: (VPCMPUDZ256rmi:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v8i1] }:$cc))
/*465364*/      /*Scope*/ 45, /*->465410*/
/*465365*/        OPC_RecordChild0, // #1 = $src1
/*465366*/        OPC_CheckChild0Type, MVT::v8i32,
/*465368*/        OPC_MoveChild1,
/*465369*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*465372*/        OPC_RecordMemRef,
/*465373*/        OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*465374*/        OPC_CheckFoldableChainNode,
/*465375*/        OPC_RecordChild1, // #3 = $src2
/*465376*/        OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*465378*/        OPC_MoveParent,
/*465379*/        OPC_MoveChild2,
/*465380*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*465383*/        OPC_MoveParent,
/*465384*/        OPC_CheckPredicate, 106, // Predicate_X86pcmpum
/*465386*/        OPC_CheckType, MVT::v8i1,
/*465388*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*465390*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*465393*/        OPC_EmitMergeInputChains1_2,
/*465394*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*465397*/        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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc - Complexity = 26
                  // Dst: (VPCMPUDZ256rmib:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (cond:{ *:[Other] })):$cc))
/*465410*/      /*Scope*/ 45, /*->465456*/
/*465411*/        OPC_MoveChild0,
/*465412*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*465415*/        OPC_RecordMemRef,
/*465416*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*465417*/        OPC_CheckFoldableChainNode,
/*465418*/        OPC_RecordChild1, // #2 = $src2
/*465419*/        OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*465421*/        OPC_CheckType, MVT::v8i32,
/*465423*/        OPC_MoveParent,
/*465424*/        OPC_RecordChild1, // #3 = $src1
/*465425*/        OPC_MoveChild2,
/*465426*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*465429*/        OPC_MoveParent,
/*465430*/        OPC_CheckPredicate, 106, // Predicate_X86pcmpum_commute
/*465432*/        OPC_CheckType, MVT::v8i1,
/*465434*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*465436*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*465439*/        OPC_EmitMergeInputChains1_1,
/*465440*/        OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/*465443*/        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] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 26
                  // Dst: (VPCMPUDZ256rmib:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v8i1] }:$cc))
/*465456*/      /*Scope*/ 47, /*->465504*/
/*465457*/        OPC_RecordChild0, // #1 = $src1
/*465458*/        OPC_CheckChild0Type, MVT::v4i32,
/*465460*/        OPC_MoveChild1,
/*465461*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*465464*/        OPC_RecordMemRef,
/*465465*/        OPC_RecordNode, // #2 = 'ld' chained node
/*465466*/        OPC_CheckFoldableChainNode,
/*465467*/        OPC_RecordChild1, // #3 = $src2
/*465468*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*465470*/        OPC_CheckPredicate, 9, // Predicate_load
/*465472*/        OPC_MoveParent,
/*465473*/        OPC_MoveChild2,
/*465474*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*465477*/        OPC_MoveParent,
/*465478*/        OPC_CheckPredicate, 106, // Predicate_X86pcmpum
/*465480*/        OPC_CheckType, MVT::v4i1,
/*465482*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*465484*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*465487*/        OPC_EmitMergeInputChains1_2,
/*465488*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*465491*/        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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc - Complexity = 26
                  // Dst: (VPCMPUDZ128rmi:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (cond:{ *:[Other] })):$cc))
/*465504*/      /*Scope*/ 47, /*->465552*/
/*465505*/        OPC_MoveChild0,
/*465506*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*465509*/        OPC_RecordMemRef,
/*465510*/        OPC_RecordNode, // #1 = 'ld' chained node
/*465511*/        OPC_CheckFoldableChainNode,
/*465512*/        OPC_RecordChild1, // #2 = $src2
/*465513*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*465515*/        OPC_CheckPredicate, 9, // Predicate_load
/*465517*/        OPC_CheckType, MVT::v4i32,
/*465519*/        OPC_MoveParent,
/*465520*/        OPC_RecordChild1, // #3 = $src1
/*465521*/        OPC_MoveChild2,
/*465522*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*465525*/        OPC_MoveParent,
/*465526*/        OPC_CheckPredicate, 106, // Predicate_X86pcmpum_commute
/*465528*/        OPC_CheckType, MVT::v4i1,
/*465530*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*465532*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*465535*/        OPC_EmitMergeInputChains1_1,
/*465536*/        OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/*465539*/        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] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 26
                  // Dst: (VPCMPUDZ128rmi:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v4i1] }:$cc))
/*465552*/      /*Scope*/ 45, /*->465598*/
/*465553*/        OPC_RecordChild0, // #1 = $src1
/*465554*/        OPC_CheckChild0Type, MVT::v4i32,
/*465556*/        OPC_MoveChild1,
/*465557*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*465560*/        OPC_RecordMemRef,
/*465561*/        OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*465562*/        OPC_CheckFoldableChainNode,
/*465563*/        OPC_RecordChild1, // #3 = $src2
/*465564*/        OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*465566*/        OPC_MoveParent,
/*465567*/        OPC_MoveChild2,
/*465568*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*465571*/        OPC_MoveParent,
/*465572*/        OPC_CheckPredicate, 106, // Predicate_X86pcmpum
/*465574*/        OPC_CheckType, MVT::v4i1,
/*465576*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*465578*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*465581*/        OPC_EmitMergeInputChains1_2,
/*465582*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*465585*/        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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc - Complexity = 26
                  // Dst: (VPCMPUDZ128rmib:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (cond:{ *:[Other] })):$cc))
/*465598*/      /*Scope*/ 45, /*->465644*/
/*465599*/        OPC_MoveChild0,
/*465600*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*465603*/        OPC_RecordMemRef,
/*465604*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*465605*/        OPC_CheckFoldableChainNode,
/*465606*/        OPC_RecordChild1, // #2 = $src2
/*465607*/        OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*465609*/        OPC_CheckType, MVT::v4i32,
/*465611*/        OPC_MoveParent,
/*465612*/        OPC_RecordChild1, // #3 = $src1
/*465613*/        OPC_MoveChild2,
/*465614*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*465617*/        OPC_MoveParent,
/*465618*/        OPC_CheckPredicate, 106, // Predicate_X86pcmpum_commute
/*465620*/        OPC_CheckType, MVT::v4i1,
/*465622*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*465624*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*465627*/        OPC_EmitMergeInputChains1_1,
/*465628*/        OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/*465631*/        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] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 26
                  // Dst: (VPCMPUDZ128rmib:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v4i1] }:$cc))
/*465644*/      /*Scope*/ 47, /*->465692*/
/*465645*/        OPC_RecordChild0, // #1 = $src1
/*465646*/        OPC_CheckChild0Type, MVT::v8i64,
/*465648*/        OPC_MoveChild1,
/*465649*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*465652*/        OPC_RecordMemRef,
/*465653*/        OPC_RecordNode, // #2 = 'ld' chained node
/*465654*/        OPC_CheckFoldableChainNode,
/*465655*/        OPC_RecordChild1, // #3 = $src2
/*465656*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*465658*/        OPC_CheckPredicate, 9, // Predicate_load
/*465660*/        OPC_MoveParent,
/*465661*/        OPC_MoveChild2,
/*465662*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*465665*/        OPC_MoveParent,
/*465666*/        OPC_CheckPredicate, 105, // Predicate_X86pcmpm
/*465668*/        OPC_CheckType, MVT::v8i1,
/*465670*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*465672*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*465675*/        OPC_EmitMergeInputChains1_2,
/*465676*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*465679*/        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>>, (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>>, (cond:{ *:[Other] })):$cc))
/*465692*/      /*Scope*/ 47, /*->465740*/
/*465693*/        OPC_MoveChild0,
/*465694*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*465697*/        OPC_RecordMemRef,
/*465698*/        OPC_RecordNode, // #1 = 'ld' chained node
/*465699*/        OPC_CheckFoldableChainNode,
/*465700*/        OPC_RecordChild1, // #2 = $src2
/*465701*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*465703*/        OPC_CheckPredicate, 9, // Predicate_load
/*465705*/        OPC_CheckType, MVT::v8i64,
/*465707*/        OPC_MoveParent,
/*465708*/        OPC_RecordChild1, // #3 = $src1
/*465709*/        OPC_MoveChild2,
/*465710*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*465713*/        OPC_MoveParent,
/*465714*/        OPC_CheckPredicate, 105, // Predicate_X86pcmpm_commute
/*465716*/        OPC_CheckType, MVT::v8i1,
/*465718*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*465720*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*465723*/        OPC_EmitMergeInputChains1_1,
/*465724*/        OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/*465727*/        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>>, 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))
/*465740*/      /*Scope*/ 45, /*->465786*/
/*465741*/        OPC_RecordChild0, // #1 = $src1
/*465742*/        OPC_CheckChild0Type, MVT::v8i64,
/*465744*/        OPC_MoveChild1,
/*465745*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*465748*/        OPC_RecordMemRef,
/*465749*/        OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*465750*/        OPC_CheckFoldableChainNode,
/*465751*/        OPC_RecordChild1, // #3 = $src2
/*465752*/        OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*465754*/        OPC_MoveParent,
/*465755*/        OPC_MoveChild2,
/*465756*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*465759*/        OPC_MoveParent,
/*465760*/        OPC_CheckPredicate, 105, // Predicate_X86pcmpm
/*465762*/        OPC_CheckType, MVT::v8i1,
/*465764*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*465766*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*465769*/        OPC_EmitMergeInputChains1_2,
/*465770*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*465773*/        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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc - Complexity = 26
                  // Dst: (VPCMPQZrmib:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (cond:{ *:[Other] })):$cc))
/*465786*/      /*Scope*/ 45, /*->465832*/
/*465787*/        OPC_MoveChild0,
/*465788*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*465791*/        OPC_RecordMemRef,
/*465792*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*465793*/        OPC_CheckFoldableChainNode,
/*465794*/        OPC_RecordChild1, // #2 = $src2
/*465795*/        OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*465797*/        OPC_CheckType, MVT::v8i64,
/*465799*/        OPC_MoveParent,
/*465800*/        OPC_RecordChild1, // #3 = $src1
/*465801*/        OPC_MoveChild2,
/*465802*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*465805*/        OPC_MoveParent,
/*465806*/        OPC_CheckPredicate, 105, // Predicate_X86pcmpm_commute
/*465808*/        OPC_CheckType, MVT::v8i1,
/*465810*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*465812*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*465815*/        OPC_EmitMergeInputChains1_1,
/*465816*/        OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/*465819*/        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] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 26
                  // Dst: (VPCMPQZrmib:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v8i1] }:$cc))
/*465832*/      /*Scope*/ 47, /*->465880*/
/*465833*/        OPC_RecordChild0, // #1 = $src1
/*465834*/        OPC_CheckChild0Type, MVT::v4i64,
/*465836*/        OPC_MoveChild1,
/*465837*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*465840*/        OPC_RecordMemRef,
/*465841*/        OPC_RecordNode, // #2 = 'ld' chained node
/*465842*/        OPC_CheckFoldableChainNode,
/*465843*/        OPC_RecordChild1, // #3 = $src2
/*465844*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*465846*/        OPC_CheckPredicate, 9, // Predicate_load
/*465848*/        OPC_MoveParent,
/*465849*/        OPC_MoveChild2,
/*465850*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*465853*/        OPC_MoveParent,
/*465854*/        OPC_CheckPredicate, 105, // Predicate_X86pcmpm
/*465856*/        OPC_CheckType, MVT::v4i1,
/*465858*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*465860*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*465863*/        OPC_EmitMergeInputChains1_2,
/*465864*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*465867*/        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>>, (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>>, (cond:{ *:[Other] })):$cc))
/*465880*/      /*Scope*/ 47, /*->465928*/
/*465881*/        OPC_MoveChild0,
/*465882*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*465885*/        OPC_RecordMemRef,
/*465886*/        OPC_RecordNode, // #1 = 'ld' chained node
/*465887*/        OPC_CheckFoldableChainNode,
/*465888*/        OPC_RecordChild1, // #2 = $src2
/*465889*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*465891*/        OPC_CheckPredicate, 9, // Predicate_load
/*465893*/        OPC_CheckType, MVT::v4i64,
/*465895*/        OPC_MoveParent,
/*465896*/        OPC_RecordChild1, // #3 = $src1
/*465897*/        OPC_MoveChild2,
/*465898*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*465901*/        OPC_MoveParent,
/*465902*/        OPC_CheckPredicate, 105, // Predicate_X86pcmpm_commute
/*465904*/        OPC_CheckType, MVT::v4i1,
/*465906*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*465908*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*465911*/        OPC_EmitMergeInputChains1_1,
/*465912*/        OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/*465915*/        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>>, 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))
/*465928*/      /*Scope*/ 45, /*->465974*/
/*465929*/        OPC_RecordChild0, // #1 = $src1
/*465930*/        OPC_CheckChild0Type, MVT::v4i64,
/*465932*/        OPC_MoveChild1,
/*465933*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*465936*/        OPC_RecordMemRef,
/*465937*/        OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*465938*/        OPC_CheckFoldableChainNode,
/*465939*/        OPC_RecordChild1, // #3 = $src2
/*465940*/        OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*465942*/        OPC_MoveParent,
/*465943*/        OPC_MoveChild2,
/*465944*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*465947*/        OPC_MoveParent,
/*465948*/        OPC_CheckPredicate, 105, // Predicate_X86pcmpm
/*465950*/        OPC_CheckType, MVT::v4i1,
/*465952*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*465954*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*465957*/        OPC_EmitMergeInputChains1_2,
/*465958*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*465961*/        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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc - Complexity = 26
                  // Dst: (VPCMPQZ256rmib:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (cond:{ *:[Other] })):$cc))
/*465974*/      /*Scope*/ 45, /*->466020*/
/*465975*/        OPC_MoveChild0,
/*465976*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*465979*/        OPC_RecordMemRef,
/*465980*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*465981*/        OPC_CheckFoldableChainNode,
/*465982*/        OPC_RecordChild1, // #2 = $src2
/*465983*/        OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*465985*/        OPC_CheckType, MVT::v4i64,
/*465987*/        OPC_MoveParent,
/*465988*/        OPC_RecordChild1, // #3 = $src1
/*465989*/        OPC_MoveChild2,
/*465990*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*465993*/        OPC_MoveParent,
/*465994*/        OPC_CheckPredicate, 105, // Predicate_X86pcmpm_commute
/*465996*/        OPC_CheckType, MVT::v4i1,
/*465998*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*466000*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*466003*/        OPC_EmitMergeInputChains1_1,
/*466004*/        OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/*466007*/        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] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 26
                  // Dst: (VPCMPQZ256rmib:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v4i1] }:$cc))
/*466020*/      /*Scope*/ 47, /*->466068*/
/*466021*/        OPC_RecordChild0, // #1 = $src1
/*466022*/        OPC_CheckChild0Type, MVT::v2i64,
/*466024*/        OPC_MoveChild1,
/*466025*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*466028*/        OPC_RecordMemRef,
/*466029*/        OPC_RecordNode, // #2 = 'ld' chained node
/*466030*/        OPC_CheckFoldableChainNode,
/*466031*/        OPC_RecordChild1, // #3 = $src2
/*466032*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*466034*/        OPC_CheckPredicate, 9, // Predicate_load
/*466036*/        OPC_MoveParent,
/*466037*/        OPC_MoveChild2,
/*466038*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*466041*/        OPC_MoveParent,
/*466042*/        OPC_CheckPredicate, 105, // Predicate_X86pcmpm
/*466044*/        OPC_CheckType, MVT::v2i1,
/*466046*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*466048*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*466051*/        OPC_EmitMergeInputChains1_2,
/*466052*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*466055*/        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>>, (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>>, (cond:{ *:[Other] })):$cc))
/*466068*/      /*Scope*/ 47, /*->466116*/
/*466069*/        OPC_MoveChild0,
/*466070*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*466073*/        OPC_RecordMemRef,
/*466074*/        OPC_RecordNode, // #1 = 'ld' chained node
/*466075*/        OPC_CheckFoldableChainNode,
/*466076*/        OPC_RecordChild1, // #2 = $src2
/*466077*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*466079*/        OPC_CheckPredicate, 9, // Predicate_load
/*466081*/        OPC_CheckType, MVT::v2i64,
/*466083*/        OPC_MoveParent,
/*466084*/        OPC_RecordChild1, // #3 = $src1
/*466085*/        OPC_MoveChild2,
/*466086*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*466089*/        OPC_MoveParent,
/*466090*/        OPC_CheckPredicate, 105, // Predicate_X86pcmpm_commute
/*466092*/        OPC_CheckType, MVT::v2i1,
/*466094*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*466096*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*466099*/        OPC_EmitMergeInputChains1_1,
/*466100*/        OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/*466103*/        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>>, 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))
/*466116*/      /*Scope*/ 45, /*->466162*/
/*466117*/        OPC_RecordChild0, // #1 = $src1
/*466118*/        OPC_CheckChild0Type, MVT::v2i64,
/*466120*/        OPC_MoveChild1,
/*466121*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*466124*/        OPC_RecordMemRef,
/*466125*/        OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*466126*/        OPC_CheckFoldableChainNode,
/*466127*/        OPC_RecordChild1, // #3 = $src2
/*466128*/        OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*466130*/        OPC_MoveParent,
/*466131*/        OPC_MoveChild2,
/*466132*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*466135*/        OPC_MoveParent,
/*466136*/        OPC_CheckPredicate, 105, // Predicate_X86pcmpm
/*466138*/        OPC_CheckType, MVT::v2i1,
/*466140*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*466142*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*466145*/        OPC_EmitMergeInputChains1_2,
/*466146*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*466149*/        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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc - Complexity = 26
                  // Dst: (VPCMPQZ128rmib:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (cond:{ *:[Other] })):$cc))
/*466162*/      /*Scope*/ 45, /*->466208*/
/*466163*/        OPC_MoveChild0,
/*466164*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*466167*/        OPC_RecordMemRef,
/*466168*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*466169*/        OPC_CheckFoldableChainNode,
/*466170*/        OPC_RecordChild1, // #2 = $src2
/*466171*/        OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*466173*/        OPC_CheckType, MVT::v2i64,
/*466175*/        OPC_MoveParent,
/*466176*/        OPC_RecordChild1, // #3 = $src1
/*466177*/        OPC_MoveChild2,
/*466178*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*466181*/        OPC_MoveParent,
/*466182*/        OPC_CheckPredicate, 105, // Predicate_X86pcmpm_commute
/*466184*/        OPC_CheckType, MVT::v2i1,
/*466186*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*466188*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*466191*/        OPC_EmitMergeInputChains1_1,
/*466192*/        OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/*466195*/        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] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 26
                  // Dst: (VPCMPQZ128rmib:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v2i1] }:$cc))
/*466208*/      /*Scope*/ 47, /*->466256*/
/*466209*/        OPC_RecordChild0, // #1 = $src1
/*466210*/        OPC_CheckChild0Type, MVT::v8i64,
/*466212*/        OPC_MoveChild1,
/*466213*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*466216*/        OPC_RecordMemRef,
/*466217*/        OPC_RecordNode, // #2 = 'ld' chained node
/*466218*/        OPC_CheckFoldableChainNode,
/*466219*/        OPC_RecordChild1, // #3 = $src2
/*466220*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*466222*/        OPC_CheckPredicate, 9, // Predicate_load
/*466224*/        OPC_MoveParent,
/*466225*/        OPC_MoveChild2,
/*466226*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*466229*/        OPC_MoveParent,
/*466230*/        OPC_CheckPredicate, 106, // Predicate_X86pcmpum
/*466232*/        OPC_CheckType, MVT::v8i1,
/*466234*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*466236*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*466239*/        OPC_EmitMergeInputChains1_2,
/*466240*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*466243*/        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>>, (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>>, (cond:{ *:[Other] })):$cc))
/*466256*/      /*Scope*/ 47, /*->466304*/
/*466257*/        OPC_MoveChild0,
/*466258*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*466261*/        OPC_RecordMemRef,
/*466262*/        OPC_RecordNode, // #1 = 'ld' chained node
/*466263*/        OPC_CheckFoldableChainNode,
/*466264*/        OPC_RecordChild1, // #2 = $src2
/*466265*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*466267*/        OPC_CheckPredicate, 9, // Predicate_load
/*466269*/        OPC_CheckType, MVT::v8i64,
/*466271*/        OPC_MoveParent,
/*466272*/        OPC_RecordChild1, // #3 = $src1
/*466273*/        OPC_MoveChild2,
/*466274*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*466277*/        OPC_MoveParent,
/*466278*/        OPC_CheckPredicate, 106, // Predicate_X86pcmpum_commute
/*466280*/        OPC_CheckType, MVT::v8i1,
/*466282*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*466284*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*466287*/        OPC_EmitMergeInputChains1_1,
/*466288*/        OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/*466291*/        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>>, 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))
/*466304*/      /*Scope*/ 45, /*->466350*/
/*466305*/        OPC_RecordChild0, // #1 = $src1
/*466306*/        OPC_CheckChild0Type, MVT::v8i64,
/*466308*/        OPC_MoveChild1,
/*466309*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*466312*/        OPC_RecordMemRef,
/*466313*/        OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*466314*/        OPC_CheckFoldableChainNode,
/*466315*/        OPC_RecordChild1, // #3 = $src2
/*466316*/        OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*466318*/        OPC_MoveParent,
/*466319*/        OPC_MoveChild2,
/*466320*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*466323*/        OPC_MoveParent,
/*466324*/        OPC_CheckPredicate, 106, // Predicate_X86pcmpum
/*466326*/        OPC_CheckType, MVT::v8i1,
/*466328*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*466330*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*466333*/        OPC_EmitMergeInputChains1_2,
/*466334*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*466337*/        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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc - Complexity = 26
                  // Dst: (VPCMPUQZrmib:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (cond:{ *:[Other] })):$cc))
/*466350*/      /*Scope*/ 45, /*->466396*/
/*466351*/        OPC_MoveChild0,
/*466352*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*466355*/        OPC_RecordMemRef,
/*466356*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*466357*/        OPC_CheckFoldableChainNode,
/*466358*/        OPC_RecordChild1, // #2 = $src2
/*466359*/        OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*466361*/        OPC_CheckType, MVT::v8i64,
/*466363*/        OPC_MoveParent,
/*466364*/        OPC_RecordChild1, // #3 = $src1
/*466365*/        OPC_MoveChild2,
/*466366*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*466369*/        OPC_MoveParent,
/*466370*/        OPC_CheckPredicate, 106, // Predicate_X86pcmpum_commute
/*466372*/        OPC_CheckType, MVT::v8i1,
/*466374*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*466376*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*466379*/        OPC_EmitMergeInputChains1_1,
/*466380*/        OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/*466383*/        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] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 26
                  // Dst: (VPCMPUQZrmib:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v8i1] }:$cc))
/*466396*/      /*Scope*/ 47, /*->466444*/
/*466397*/        OPC_RecordChild0, // #1 = $src1
/*466398*/        OPC_CheckChild0Type, MVT::v4i64,
/*466400*/        OPC_MoveChild1,
/*466401*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*466404*/        OPC_RecordMemRef,
/*466405*/        OPC_RecordNode, // #2 = 'ld' chained node
/*466406*/        OPC_CheckFoldableChainNode,
/*466407*/        OPC_RecordChild1, // #3 = $src2
/*466408*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*466410*/        OPC_CheckPredicate, 9, // Predicate_load
/*466412*/        OPC_MoveParent,
/*466413*/        OPC_MoveChild2,
/*466414*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*466417*/        OPC_MoveParent,
/*466418*/        OPC_CheckPredicate, 106, // Predicate_X86pcmpum
/*466420*/        OPC_CheckType, MVT::v4i1,
/*466422*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*466424*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*466427*/        OPC_EmitMergeInputChains1_2,
/*466428*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*466431*/        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>>, (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>>, (cond:{ *:[Other] })):$cc))
/*466444*/      /*Scope*/ 47, /*->466492*/
/*466445*/        OPC_MoveChild0,
/*466446*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*466449*/        OPC_RecordMemRef,
/*466450*/        OPC_RecordNode, // #1 = 'ld' chained node
/*466451*/        OPC_CheckFoldableChainNode,
/*466452*/        OPC_RecordChild1, // #2 = $src2
/*466453*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*466455*/        OPC_CheckPredicate, 9, // Predicate_load
/*466457*/        OPC_CheckType, MVT::v4i64,
/*466459*/        OPC_MoveParent,
/*466460*/        OPC_RecordChild1, // #3 = $src1
/*466461*/        OPC_MoveChild2,
/*466462*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*466465*/        OPC_MoveParent,
/*466466*/        OPC_CheckPredicate, 106, // Predicate_X86pcmpum_commute
/*466468*/        OPC_CheckType, MVT::v4i1,
/*466470*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*466472*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*466475*/        OPC_EmitMergeInputChains1_1,
/*466476*/        OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/*466479*/        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>>, 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))
/*466492*/      /*Scope*/ 45, /*->466538*/
/*466493*/        OPC_RecordChild0, // #1 = $src1
/*466494*/        OPC_CheckChild0Type, MVT::v4i64,
/*466496*/        OPC_MoveChild1,
/*466497*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*466500*/        OPC_RecordMemRef,
/*466501*/        OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*466502*/        OPC_CheckFoldableChainNode,
/*466503*/        OPC_RecordChild1, // #3 = $src2
/*466504*/        OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*466506*/        OPC_MoveParent,
/*466507*/        OPC_MoveChild2,
/*466508*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*466511*/        OPC_MoveParent,
/*466512*/        OPC_CheckPredicate, 106, // Predicate_X86pcmpum
/*466514*/        OPC_CheckType, MVT::v4i1,
/*466516*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*466518*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*466521*/        OPC_EmitMergeInputChains1_2,
/*466522*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*466525*/        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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc - Complexity = 26
                  // Dst: (VPCMPUQZ256rmib:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (cond:{ *:[Other] })):$cc))
/*466538*/      /*Scope*/ 45, /*->466584*/
/*466539*/        OPC_MoveChild0,
/*466540*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*466543*/        OPC_RecordMemRef,
/*466544*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*466545*/        OPC_CheckFoldableChainNode,
/*466546*/        OPC_RecordChild1, // #2 = $src2
/*466547*/        OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*466549*/        OPC_CheckType, MVT::v4i64,
/*466551*/        OPC_MoveParent,
/*466552*/        OPC_RecordChild1, // #3 = $src1
/*466553*/        OPC_MoveChild2,
/*466554*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*466557*/        OPC_MoveParent,
/*466558*/        OPC_CheckPredicate, 106, // Predicate_X86pcmpum_commute
/*466560*/        OPC_CheckType, MVT::v4i1,
/*466562*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*466564*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*466567*/        OPC_EmitMergeInputChains1_1,
/*466568*/        OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/*466571*/        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] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 26
                  // Dst: (VPCMPUQZ256rmib:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v4i1] }:$cc))
/*466584*/      /*Scope*/ 47, /*->466632*/
/*466585*/        OPC_RecordChild0, // #1 = $src1
/*466586*/        OPC_CheckChild0Type, MVT::v2i64,
/*466588*/        OPC_MoveChild1,
/*466589*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*466592*/        OPC_RecordMemRef,
/*466593*/        OPC_RecordNode, // #2 = 'ld' chained node
/*466594*/        OPC_CheckFoldableChainNode,
/*466595*/        OPC_RecordChild1, // #3 = $src2
/*466596*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*466598*/        OPC_CheckPredicate, 9, // Predicate_load
/*466600*/        OPC_MoveParent,
/*466601*/        OPC_MoveChild2,
/*466602*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*466605*/        OPC_MoveParent,
/*466606*/        OPC_CheckPredicate, 106, // Predicate_X86pcmpum
/*466608*/        OPC_CheckType, MVT::v2i1,
/*466610*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*466612*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*466615*/        OPC_EmitMergeInputChains1_2,
/*466616*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*466619*/        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>>, (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>>, (cond:{ *:[Other] })):$cc))
/*466632*/      /*Scope*/ 47, /*->466680*/
/*466633*/        OPC_MoveChild0,
/*466634*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*466637*/        OPC_RecordMemRef,
/*466638*/        OPC_RecordNode, // #1 = 'ld' chained node
/*466639*/        OPC_CheckFoldableChainNode,
/*466640*/        OPC_RecordChild1, // #2 = $src2
/*466641*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*466643*/        OPC_CheckPredicate, 9, // Predicate_load
/*466645*/        OPC_CheckType, MVT::v2i64,
/*466647*/        OPC_MoveParent,
/*466648*/        OPC_RecordChild1, // #3 = $src1
/*466649*/        OPC_MoveChild2,
/*466650*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*466653*/        OPC_MoveParent,
/*466654*/        OPC_CheckPredicate, 106, // Predicate_X86pcmpum_commute
/*466656*/        OPC_CheckType, MVT::v2i1,
/*466658*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*466660*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*466663*/        OPC_EmitMergeInputChains1_1,
/*466664*/        OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/*466667*/        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>>, 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))
/*466680*/      /*Scope*/ 45, /*->466726*/
/*466681*/        OPC_RecordChild0, // #1 = $src1
/*466682*/        OPC_CheckChild0Type, MVT::v2i64,
/*466684*/        OPC_MoveChild1,
/*466685*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*466688*/        OPC_RecordMemRef,
/*466689*/        OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*466690*/        OPC_CheckFoldableChainNode,
/*466691*/        OPC_RecordChild1, // #3 = $src2
/*466692*/        OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*466694*/        OPC_MoveParent,
/*466695*/        OPC_MoveChild2,
/*466696*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*466699*/        OPC_MoveParent,
/*466700*/        OPC_CheckPredicate, 106, // Predicate_X86pcmpum
/*466702*/        OPC_CheckType, MVT::v2i1,
/*466704*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*466706*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*466709*/        OPC_EmitMergeInputChains1_2,
/*466710*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*466713*/        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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc - Complexity = 26
                  // Dst: (VPCMPUQZ128rmib:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (cond:{ *:[Other] })):$cc))
/*466726*/      /*Scope*/ 45, /*->466772*/
/*466727*/        OPC_MoveChild0,
/*466728*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*466731*/        OPC_RecordMemRef,
/*466732*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*466733*/        OPC_CheckFoldableChainNode,
/*466734*/        OPC_RecordChild1, // #2 = $src2
/*466735*/        OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*466737*/        OPC_CheckType, MVT::v2i64,
/*466739*/        OPC_MoveParent,
/*466740*/        OPC_RecordChild1, // #3 = $src1
/*466741*/        OPC_MoveChild2,
/*466742*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*466745*/        OPC_MoveParent,
/*466746*/        OPC_CheckPredicate, 106, // Predicate_X86pcmpum_commute
/*466748*/        OPC_CheckType, MVT::v2i1,
/*466750*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*466752*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*466755*/        OPC_EmitMergeInputChains1_1,
/*466756*/        OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/*466759*/        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] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 26
                  // Dst: (VPCMPUQZ128rmib:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v2i1] }:$cc))
/*466772*/      /*Scope*/ 74, /*->466847*/
/*466773*/        OPC_RecordChild0, // #1 = $src1
/*466774*/        OPC_CheckChild0Type, MVT::v8i32,
/*466776*/        OPC_MoveChild1,
/*466777*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*466780*/        OPC_RecordMemRef,
/*466781*/        OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*466782*/        OPC_CheckFoldableChainNode,
/*466783*/        OPC_RecordChild1, // #3 = $src2
/*466784*/        OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*466786*/        OPC_MoveParent,
/*466787*/        OPC_MoveChild2,
/*466788*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*466791*/        OPC_MoveParent,
/*466792*/        OPC_CheckPredicate, 105, // Predicate_X86pcmpm
/*466794*/        OPC_CheckType, MVT::v8i1,
/*466796*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*466798*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*466801*/        OPC_EmitMergeInputChains1_2,
/*466802*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v16i32, 0/*#Ops*/,  // Results = #9
/*466808*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*466811*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v16i32, 3/*#Ops*/, 9, 1, 10,  // Results = #11
/*466820*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*466823*/        OPC_EmitNode1, TARGET_VAL(X86::VPCMPDZrmib), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i1, 7/*#Ops*/, 11, 4, 5, 6, 7, 8, 12,  // Results = #13
/*466836*/        OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*466839*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                      MVT::v8i1, 2/*#Ops*/, 13, 14, 
                  // Src: (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc - Complexity = 26
                  // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VPCMPDZrmib:{ *:[v16i1] } (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v8i32] }:$src1, sub_ymm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v8i1] }:$cc)), VK8:{ *:[i32] })
/*466847*/      /*Scope*/ 74, /*->466922*/
/*466848*/        OPC_MoveChild0,
/*466849*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*466852*/        OPC_RecordMemRef,
/*466853*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*466854*/        OPC_CheckFoldableChainNode,
/*466855*/        OPC_RecordChild1, // #2 = $src2
/*466856*/        OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*466858*/        OPC_CheckType, MVT::v8i32,
/*466860*/        OPC_MoveParent,
/*466861*/        OPC_RecordChild1, // #3 = $src1
/*466862*/        OPC_MoveChild2,
/*466863*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*466866*/        OPC_MoveParent,
/*466867*/        OPC_CheckPredicate, 105, // Predicate_X86pcmpm_commute
/*466869*/        OPC_CheckType, MVT::v8i1,
/*466871*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*466873*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*466876*/        OPC_EmitMergeInputChains1_1,
/*466877*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v16i32, 0/*#Ops*/,  // Results = #9
/*466883*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*466886*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v16i32, 3/*#Ops*/, 9, 3, 10,  // Results = #11
/*466895*/        OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/*466898*/        OPC_EmitNode1, TARGET_VAL(X86::VPCMPDZrmib), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i1, 7/*#Ops*/, 11, 4, 5, 6, 7, 8, 12,  // Results = #13
/*466911*/        OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*466914*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                      MVT::v8i1, 2/*#Ops*/, 13, 14, 
                  // Src: (setcc:{ *:[v8i1] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 26
                  // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VPCMPDZrmib:{ *:[v16i1] } (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v8i32] }:$src1, sub_ymm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v8i1] }:$cc)), VK8:{ *:[i32] })
/*466922*/      /*Scope*/ 74, /*->466997*/
/*466923*/        OPC_RecordChild0, // #1 = $src1
/*466924*/        OPC_CheckChild0Type, MVT::v8i32,
/*466926*/        OPC_MoveChild1,
/*466927*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*466930*/        OPC_RecordMemRef,
/*466931*/        OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*466932*/        OPC_CheckFoldableChainNode,
/*466933*/        OPC_RecordChild1, // #3 = $src2
/*466934*/        OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*466936*/        OPC_MoveParent,
/*466937*/        OPC_MoveChild2,
/*466938*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*466941*/        OPC_MoveParent,
/*466942*/        OPC_CheckPredicate, 106, // Predicate_X86pcmpum
/*466944*/        OPC_CheckType, MVT::v8i1,
/*466946*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*466948*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*466951*/        OPC_EmitMergeInputChains1_2,
/*466952*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v16i32, 0/*#Ops*/,  // Results = #9
/*466958*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*466961*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v16i32, 3/*#Ops*/, 9, 1, 10,  // Results = #11
/*466970*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*466973*/        OPC_EmitNode1, TARGET_VAL(X86::VPCMPUDZrmib), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i1, 7/*#Ops*/, 11, 4, 5, 6, 7, 8, 12,  // Results = #13
/*466986*/        OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*466989*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                      MVT::v8i1, 2/*#Ops*/, 13, 14, 
                  // Src: (setcc:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc - Complexity = 26
                  // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VPCMPUDZrmib:{ *:[v16i1] } (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v8i32] }:$src1, sub_ymm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v8i1] }:$cc)), VK8:{ *:[i32] })
/*466997*/      /*Scope*/ 74, /*->467072*/
/*466998*/        OPC_MoveChild0,
/*466999*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*467002*/        OPC_RecordMemRef,
/*467003*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*467004*/        OPC_CheckFoldableChainNode,
/*467005*/        OPC_RecordChild1, // #2 = $src2
/*467006*/        OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*467008*/        OPC_CheckType, MVT::v8i32,
/*467010*/        OPC_MoveParent,
/*467011*/        OPC_RecordChild1, // #3 = $src1
/*467012*/        OPC_MoveChild2,
/*467013*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*467016*/        OPC_MoveParent,
/*467017*/        OPC_CheckPredicate, 106, // Predicate_X86pcmpum_commute
/*467019*/        OPC_CheckType, MVT::v8i1,
/*467021*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*467023*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*467026*/        OPC_EmitMergeInputChains1_1,
/*467027*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v16i32, 0/*#Ops*/,  // Results = #9
/*467033*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*467036*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v16i32, 3/*#Ops*/, 9, 3, 10,  // Results = #11
/*467045*/        OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/*467048*/        OPC_EmitNode1, TARGET_VAL(X86::VPCMPUDZrmib), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i1, 7/*#Ops*/, 11, 4, 5, 6, 7, 8, 12,  // Results = #13
/*467061*/        OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*467064*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                      MVT::v8i1, 2/*#Ops*/, 13, 14, 
                  // Src: (setcc:{ *:[v8i1] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 26
                  // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VPCMPUDZrmib:{ *:[v16i1] } (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR256X:{ *:[v8i32] }:$src1, sub_ymm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v8i1] }:$cc)), VK8:{ *:[i32] })
/*467072*/      /*Scope*/ 74, /*->467147*/
/*467073*/        OPC_RecordChild0, // #1 = $src1
/*467074*/        OPC_CheckChild0Type, MVT::v4i32,
/*467076*/        OPC_MoveChild1,
/*467077*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*467080*/        OPC_RecordMemRef,
/*467081*/        OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*467082*/        OPC_CheckFoldableChainNode,
/*467083*/        OPC_RecordChild1, // #3 = $src2
/*467084*/        OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*467086*/        OPC_MoveParent,
/*467087*/        OPC_MoveChild2,
/*467088*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*467091*/        OPC_MoveParent,
/*467092*/        OPC_CheckPredicate, 105, // Predicate_X86pcmpm
/*467094*/        OPC_CheckType, MVT::v4i1,
/*467096*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*467098*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*467101*/        OPC_EmitMergeInputChains1_2,
/*467102*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v16i32, 0/*#Ops*/,  // Results = #9
/*467108*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*467111*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v16i32, 3/*#Ops*/, 9, 1, 10,  // Results = #11
/*467120*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*467123*/        OPC_EmitNode1, TARGET_VAL(X86::VPCMPDZrmib), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i1, 7/*#Ops*/, 11, 4, 5, 6, 7, 8, 12,  // Results = #13
/*467136*/        OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*467139*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                      MVT::v4i1, 2/*#Ops*/, 13, 14, 
                  // Src: (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc - Complexity = 26
                  // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPCMPDZrmib:{ *:[v16i1] } (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v4i32] }:$src1, sub_xmm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v4i1] }:$cc)), VK4:{ *:[i32] })
/*467147*/      /*Scope*/ 74, /*->467222*/
/*467148*/        OPC_MoveChild0,
/*467149*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*467152*/        OPC_RecordMemRef,
/*467153*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*467154*/        OPC_CheckFoldableChainNode,
/*467155*/        OPC_RecordChild1, // #2 = $src2
/*467156*/        OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*467158*/        OPC_CheckType, MVT::v4i32,
/*467160*/        OPC_MoveParent,
/*467161*/        OPC_RecordChild1, // #3 = $src1
/*467162*/        OPC_MoveChild2,
/*467163*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*467166*/        OPC_MoveParent,
/*467167*/        OPC_CheckPredicate, 105, // Predicate_X86pcmpm_commute
/*467169*/        OPC_CheckType, MVT::v4i1,
/*467171*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*467173*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*467176*/        OPC_EmitMergeInputChains1_1,
/*467177*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v16i32, 0/*#Ops*/,  // Results = #9
/*467183*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*467186*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v16i32, 3/*#Ops*/, 9, 3, 10,  // Results = #11
/*467195*/        OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/*467198*/        OPC_EmitNode1, TARGET_VAL(X86::VPCMPDZrmib), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i1, 7/*#Ops*/, 11, 4, 5, 6, 7, 8, 12,  // Results = #13
/*467211*/        OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*467214*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                      MVT::v4i1, 2/*#Ops*/, 13, 14, 
                  // Src: (setcc:{ *:[v4i1] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 26
                  // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPCMPDZrmib:{ *:[v16i1] } (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v4i32] }:$src1, sub_xmm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v4i1] }:$cc)), VK4:{ *:[i32] })
/*467222*/      /*Scope*/ 74, /*->467297*/
/*467223*/        OPC_RecordChild0, // #1 = $src1
/*467224*/        OPC_CheckChild0Type, MVT::v4i32,
/*467226*/        OPC_MoveChild1,
/*467227*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*467230*/        OPC_RecordMemRef,
/*467231*/        OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*467232*/        OPC_CheckFoldableChainNode,
/*467233*/        OPC_RecordChild1, // #3 = $src2
/*467234*/        OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*467236*/        OPC_MoveParent,
/*467237*/        OPC_MoveChild2,
/*467238*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*467241*/        OPC_MoveParent,
/*467242*/        OPC_CheckPredicate, 106, // Predicate_X86pcmpum
/*467244*/        OPC_CheckType, MVT::v4i1,
/*467246*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*467248*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*467251*/        OPC_EmitMergeInputChains1_2,
/*467252*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v16i32, 0/*#Ops*/,  // Results = #9
/*467258*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*467261*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v16i32, 3/*#Ops*/, 9, 1, 10,  // Results = #11
/*467270*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*467273*/        OPC_EmitNode1, TARGET_VAL(X86::VPCMPUDZrmib), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i1, 7/*#Ops*/, 11, 4, 5, 6, 7, 8, 12,  // Results = #13
/*467286*/        OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*467289*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                      MVT::v4i1, 2/*#Ops*/, 13, 14, 
                  // Src: (setcc:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc - Complexity = 26
                  // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPCMPUDZrmib:{ *:[v16i1] } (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v4i32] }:$src1, sub_xmm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v4i1] }:$cc)), VK4:{ *:[i32] })
/*467297*/      /*Scope*/ 74, /*->467372*/
/*467298*/        OPC_MoveChild0,
/*467299*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*467302*/        OPC_RecordMemRef,
/*467303*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*467304*/        OPC_CheckFoldableChainNode,
/*467305*/        OPC_RecordChild1, // #2 = $src2
/*467306*/        OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*467308*/        OPC_CheckType, MVT::v4i32,
/*467310*/        OPC_MoveParent,
/*467311*/        OPC_RecordChild1, // #3 = $src1
/*467312*/        OPC_MoveChild2,
/*467313*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*467316*/        OPC_MoveParent,
/*467317*/        OPC_CheckPredicate, 106, // Predicate_X86pcmpum_commute
/*467319*/        OPC_CheckType, MVT::v4i1,
/*467321*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*467323*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*467326*/        OPC_EmitMergeInputChains1_1,
/*467327*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v16i32, 0/*#Ops*/,  // Results = #9
/*467333*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*467336*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v16i32, 3/*#Ops*/, 9, 3, 10,  // Results = #11
/*467345*/        OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/*467348*/        OPC_EmitNode1, TARGET_VAL(X86::VPCMPUDZrmib), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i1, 7/*#Ops*/, 11, 4, 5, 6, 7, 8, 12,  // Results = #13
/*467361*/        OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*467364*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                      MVT::v4i1, 2/*#Ops*/, 13, 14, 
                  // Src: (setcc:{ *:[v4i1] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4i32] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 26
                  // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPCMPUDZrmib:{ *:[v16i1] } (INSERT_SUBREG:{ *:[v16i32] } (IMPLICIT_DEF:{ *:[v16i32] }), VR128X:{ *:[v4i32] }:$src1, sub_xmm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v4i1] }:$cc)), VK4:{ *:[i32] })
/*467372*/      /*Scope*/ 74, /*->467447*/
/*467373*/        OPC_RecordChild0, // #1 = $src1
/*467374*/        OPC_CheckChild0Type, MVT::v4i64,
/*467376*/        OPC_MoveChild1,
/*467377*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*467380*/        OPC_RecordMemRef,
/*467381*/        OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*467382*/        OPC_CheckFoldableChainNode,
/*467383*/        OPC_RecordChild1, // #3 = $src2
/*467384*/        OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*467386*/        OPC_MoveParent,
/*467387*/        OPC_MoveChild2,
/*467388*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*467391*/        OPC_MoveParent,
/*467392*/        OPC_CheckPredicate, 105, // Predicate_X86pcmpm
/*467394*/        OPC_CheckType, MVT::v4i1,
/*467396*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*467398*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*467401*/        OPC_EmitMergeInputChains1_2,
/*467402*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #9
/*467408*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*467411*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 9, 1, 10,  // Results = #11
/*467420*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*467423*/        OPC_EmitNode1, TARGET_VAL(X86::VPCMPQZrmib), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 11, 4, 5, 6, 7, 8, 12,  // Results = #13
/*467436*/        OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*467439*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                      MVT::v4i1, 2/*#Ops*/, 13, 14, 
                  // Src: (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc - Complexity = 26
                  // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPCMPQZrmib:{ *:[v8i1] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v4i1] }:$cc)), VK4:{ *:[i32] })
/*467447*/      /*Scope*/ 74, /*->467522*/
/*467448*/        OPC_MoveChild0,
/*467449*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*467452*/        OPC_RecordMemRef,
/*467453*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*467454*/        OPC_CheckFoldableChainNode,
/*467455*/        OPC_RecordChild1, // #2 = $src2
/*467456*/        OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*467458*/        OPC_CheckType, MVT::v4i64,
/*467460*/        OPC_MoveParent,
/*467461*/        OPC_RecordChild1, // #3 = $src1
/*467462*/        OPC_MoveChild2,
/*467463*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*467466*/        OPC_MoveParent,
/*467467*/        OPC_CheckPredicate, 105, // Predicate_X86pcmpm_commute
/*467469*/        OPC_CheckType, MVT::v4i1,
/*467471*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*467473*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*467476*/        OPC_EmitMergeInputChains1_1,
/*467477*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #9
/*467483*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*467486*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 9, 3, 10,  // Results = #11
/*467495*/        OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/*467498*/        OPC_EmitNode1, TARGET_VAL(X86::VPCMPQZrmib), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 11, 4, 5, 6, 7, 8, 12,  // Results = #13
/*467511*/        OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*467514*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                      MVT::v4i1, 2/*#Ops*/, 13, 14, 
                  // Src: (setcc:{ *:[v4i1] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 26
                  // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPCMPQZrmib:{ *:[v8i1] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v4i1] }:$cc)), VK4:{ *:[i32] })
/*467522*/      /*Scope*/ 74, /*->467597*/
/*467523*/        OPC_RecordChild0, // #1 = $src1
/*467524*/        OPC_CheckChild0Type, MVT::v4i64,
/*467526*/        OPC_MoveChild1,
/*467527*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*467530*/        OPC_RecordMemRef,
/*467531*/        OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*467532*/        OPC_CheckFoldableChainNode,
/*467533*/        OPC_RecordChild1, // #3 = $src2
/*467534*/        OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*467536*/        OPC_MoveParent,
/*467537*/        OPC_MoveChild2,
/*467538*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*467541*/        OPC_MoveParent,
/*467542*/        OPC_CheckPredicate, 106, // Predicate_X86pcmpum
/*467544*/        OPC_CheckType, MVT::v4i1,
/*467546*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*467548*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*467551*/        OPC_EmitMergeInputChains1_2,
/*467552*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #9
/*467558*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*467561*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 9, 1, 10,  // Results = #11
/*467570*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*467573*/        OPC_EmitNode1, TARGET_VAL(X86::VPCMPUQZrmib), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 11, 4, 5, 6, 7, 8, 12,  // Results = #13
/*467586*/        OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*467589*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                      MVT::v4i1, 2/*#Ops*/, 13, 14, 
                  // Src: (setcc:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc - Complexity = 26
                  // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPCMPUQZrmib:{ *:[v8i1] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v4i1] }:$cc)), VK4:{ *:[i32] })
/*467597*/      /*Scope*/ 74, /*->467672*/
/*467598*/        OPC_MoveChild0,
/*467599*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*467602*/        OPC_RecordMemRef,
/*467603*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*467604*/        OPC_CheckFoldableChainNode,
/*467605*/        OPC_RecordChild1, // #2 = $src2
/*467606*/        OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*467608*/        OPC_CheckType, MVT::v4i64,
/*467610*/        OPC_MoveParent,
/*467611*/        OPC_RecordChild1, // #3 = $src1
/*467612*/        OPC_MoveChild2,
/*467613*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*467616*/        OPC_MoveParent,
/*467617*/        OPC_CheckPredicate, 106, // Predicate_X86pcmpum_commute
/*467619*/        OPC_CheckType, MVT::v4i1,
/*467621*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*467623*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*467626*/        OPC_EmitMergeInputChains1_1,
/*467627*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #9
/*467633*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*467636*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 9, 3, 10,  // Results = #11
/*467645*/        OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/*467648*/        OPC_EmitNode1, TARGET_VAL(X86::VPCMPUQZrmib), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 11, 4, 5, 6, 7, 8, 12,  // Results = #13
/*467661*/        OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*467664*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                      MVT::v4i1, 2/*#Ops*/, 13, 14, 
                  // Src: (setcc:{ *:[v4i1] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 26
                  // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPCMPUQZrmib:{ *:[v8i1] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v4i1] }:$cc)), VK4:{ *:[i32] })
/*467672*/      /*Scope*/ 74, /*->467747*/
/*467673*/        OPC_RecordChild0, // #1 = $src1
/*467674*/        OPC_CheckChild0Type, MVT::v2i64,
/*467676*/        OPC_MoveChild1,
/*467677*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*467680*/        OPC_RecordMemRef,
/*467681*/        OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*467682*/        OPC_CheckFoldableChainNode,
/*467683*/        OPC_RecordChild1, // #3 = $src2
/*467684*/        OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*467686*/        OPC_MoveParent,
/*467687*/        OPC_MoveChild2,
/*467688*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*467691*/        OPC_MoveParent,
/*467692*/        OPC_CheckPredicate, 105, // Predicate_X86pcmpm
/*467694*/        OPC_CheckType, MVT::v2i1,
/*467696*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*467698*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*467701*/        OPC_EmitMergeInputChains1_2,
/*467702*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #9
/*467708*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*467711*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 9, 1, 10,  // Results = #11
/*467720*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*467723*/        OPC_EmitNode1, TARGET_VAL(X86::VPCMPQZrmib), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 11, 4, 5, 6, 7, 8, 12,  // Results = #13
/*467736*/        OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/*467739*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                      MVT::v2i1, 2/*#Ops*/, 13, 14, 
                  // Src: (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm>><<X:X86pcmpm_imm>>:$cc - Complexity = 26
                  // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (VPCMPQZrmib:{ *:[v8i1] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v2i1] }:$cc)), VK2:{ *:[i32] })
/*467747*/      /*Scope*/ 74, /*->467822*/
/*467748*/        OPC_MoveChild0,
/*467749*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*467752*/        OPC_RecordMemRef,
/*467753*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*467754*/        OPC_CheckFoldableChainNode,
/*467755*/        OPC_RecordChild1, // #2 = $src2
/*467756*/        OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*467758*/        OPC_CheckType, MVT::v2i64,
/*467760*/        OPC_MoveParent,
/*467761*/        OPC_RecordChild1, // #3 = $src1
/*467762*/        OPC_MoveChild2,
/*467763*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*467766*/        OPC_MoveParent,
/*467767*/        OPC_CheckPredicate, 105, // Predicate_X86pcmpm_commute
/*467769*/        OPC_CheckType, MVT::v2i1,
/*467771*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*467773*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*467776*/        OPC_EmitMergeInputChains1_1,
/*467777*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #9
/*467783*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*467786*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 9, 3, 10,  // Results = #11
/*467795*/        OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/*467798*/        OPC_EmitNode1, TARGET_VAL(X86::VPCMPQZrmib), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 11, 4, 5, 6, 7, 8, 12,  // Results = #13
/*467811*/        OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/*467814*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                      MVT::v2i1, 2/*#Ops*/, 13, 14, 
                  // Src: (setcc:{ *:[v2i1] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpm_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 26
                  // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (VPCMPQZrmib:{ *:[v8i1] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v2i1] }:$cc)), VK2:{ *:[i32] })
/*467822*/      /*Scope*/ 74, /*->467897*/
/*467823*/        OPC_RecordChild0, // #1 = $src1
/*467824*/        OPC_CheckChild0Type, MVT::v2i64,
/*467826*/        OPC_MoveChild1,
/*467827*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*467830*/        OPC_RecordMemRef,
/*467831*/        OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*467832*/        OPC_CheckFoldableChainNode,
/*467833*/        OPC_RecordChild1, // #3 = $src2
/*467834*/        OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*467836*/        OPC_MoveParent,
/*467837*/        OPC_MoveChild2,
/*467838*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*467841*/        OPC_MoveParent,
/*467842*/        OPC_CheckPredicate, 106, // Predicate_X86pcmpum
/*467844*/        OPC_CheckType, MVT::v2i1,
/*467846*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*467848*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*467851*/        OPC_EmitMergeInputChains1_2,
/*467852*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #9
/*467858*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*467861*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 9, 1, 10,  // Results = #11
/*467870*/        OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*467873*/        OPC_EmitNode1, TARGET_VAL(X86::VPCMPUQZrmib), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 11, 4, 5, 6, 7, 8, 12,  // Results = #13
/*467886*/        OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/*467889*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                      MVT::v2i1, 2/*#Ops*/, 13, 14, 
                  // Src: (setcc:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum>><<X:X86pcmpm_imm>>:$cc - Complexity = 26
                  // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (VPCMPUQZrmib:{ *:[v8i1] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm:{ *:[i8] } ?:{ *:[v2i1] }:$cc)), VK2:{ *:[i32] })
/*467897*/      /*Scope*/ 74, /*->467972*/
/*467898*/        OPC_MoveChild0,
/*467899*/        OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*467902*/        OPC_RecordMemRef,
/*467903*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*467904*/        OPC_CheckFoldableChainNode,
/*467905*/        OPC_RecordChild1, // #2 = $src2
/*467906*/        OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*467908*/        OPC_CheckType, MVT::v2i64,
/*467910*/        OPC_MoveParent,
/*467911*/        OPC_RecordChild1, // #3 = $src1
/*467912*/        OPC_MoveChild2,
/*467913*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*467916*/        OPC_MoveParent,
/*467917*/        OPC_CheckPredicate, 106, // Predicate_X86pcmpum_commute
/*467919*/        OPC_CheckType, MVT::v2i1,
/*467921*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*467923*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*467926*/        OPC_EmitMergeInputChains1_1,
/*467927*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #9
/*467933*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*467936*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 9, 3, 10,  // Results = #11
/*467945*/        OPC_EmitNodeXForm, 9, 0, // X86pcmpm_imm_commute
/*467948*/        OPC_EmitNode1, TARGET_VAL(X86::VPCMPUQZrmib), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i1, 7/*#Ops*/, 11, 4, 5, 6, 7, 8, 12,  // Results = #13
/*467961*/        OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/*467964*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0|OPFL_Chain,
                      MVT::v2i1, 2/*#Ops*/, 13, 14, 
                  // Src: (setcc:{ *:[v2i1] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src1, (cond:{ *:[Other] }))<<P:Predicate_X86pcmpum_commute>><<X:X86pcmpm_imm_commute>>:$cc - Complexity = 26
                  // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (VPCMPUQZrmib:{ *:[v8i1] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2, (X86pcmpm_imm_commute:{ *:[i8] } ?:{ *:[v2i1] }:$cc)), VK2:{ *:[i32] })
/*467972*/      0, /*End of Scope*/
/*467973*/    /*Scope*/ 32|128,4/*544*/, /*->468519*/
/*467975*/      OPC_MoveChild0,
/*467976*/      OPC_CheckImmAllZerosV,
/*467977*/      OPC_SwitchType /*12 cases */, 15, MVT::v64i8,// ->467995
/*467980*/        OPC_MoveParent,
/*467981*/        OPC_RecordChild1, // #0 = $src
/*467982*/        OPC_CheckChild2CondCode, ISD::SETGT,
/*467984*/        OPC_CheckType, MVT::v64i1,
/*467986*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*467988*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVB2MZrr), 0,
                      MVT::v64i1, 1/*#Ops*/, 0, 
                  // Src: (setcc:{ *:[v64i1] } immAllZerosV:{ *:[v64i8] }, VR512:{ *:[v64i8] }:$src, SETGT:{ *:[Other] }) - Complexity = 7
                  // Dst: (VPMOVB2MZrr:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src)
/*467995*/      /*SwitchType*/ 57, MVT::v32i8,// ->468054
/*467997*/        OPC_MoveParent,
/*467998*/        OPC_RecordChild1, // #0 = $src
/*467999*/        OPC_CheckChild2CondCode, ISD::SETGT,
/*468001*/        OPC_CheckType, MVT::v32i1,
/*468003*/        OPC_Scope, 9, /*->468014*/ // 2 children in Scope
/*468005*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*468007*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVB2MZ256rr), 0,
                        MVT::v32i1, 1/*#Ops*/, 0, 
                    // Src: (setcc:{ *:[v32i1] } immAllZerosV:{ *:[v32i8] }, VR256X:{ *:[v32i8] }:$src, SETGT:{ *:[Other] }) - Complexity = 7
                    // Dst: (VPMOVB2MZ256rr:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src)
/*468014*/        /*Scope*/ 38, /*->468053*/
/*468015*/          OPC_CheckPatternPredicate, 117, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/*468017*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #1
/*468023*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*468026*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v64i8, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*468035*/          OPC_EmitNode1, TARGET_VAL(X86::VPMOVB2MZrr), 0,
                        MVT::v64i1, 1/*#Ops*/, 3,  // Results = #4
/*468042*/          OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/*468045*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v32i1, 2/*#Ops*/, 4, 5, 
                    // Src: (setcc:{ *:[v32i1] } immAllZerosV:{ *:[v32i8] }, VR256X:{ *:[v32i8] }:$src, SETGT:{ *:[Other] }) - Complexity = 7
                    // Dst: (COPY_TO_REGCLASS:{ *:[v32i1] } (VPMOVB2MZrr:{ *:[v64i1] } (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR256X:{ *:[v32i8] }:$src, sub_ymm:{ *:[i32] })), VK32:{ *:[i32] })
/*468053*/        0, /*End of Scope*/
/*468054*/      /*SwitchType*/ 57, MVT::v16i8,// ->468113
/*468056*/        OPC_MoveParent,
/*468057*/        OPC_RecordChild1, // #0 = $src
/*468058*/        OPC_CheckChild2CondCode, ISD::SETGT,
/*468060*/        OPC_CheckType, MVT::v16i1,
/*468062*/        OPC_Scope, 9, /*->468073*/ // 2 children in Scope
/*468064*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*468066*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVB2MZ128rr), 0,
                        MVT::v16i1, 1/*#Ops*/, 0, 
                    // Src: (setcc:{ *:[v16i1] } immAllZerosV:{ *:[v16i8] }, VR128X:{ *:[v16i8] }:$src, SETGT:{ *:[Other] }) - Complexity = 7
                    // Dst: (VPMOVB2MZ128rr:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src)
/*468073*/        /*Scope*/ 38, /*->468112*/
/*468074*/          OPC_CheckPatternPredicate, 117, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/*468076*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #1
/*468082*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*468085*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v64i8, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*468094*/          OPC_EmitNode1, TARGET_VAL(X86::VPMOVB2MZrr), 0,
                        MVT::v64i1, 1/*#Ops*/, 3,  // Results = #4
/*468101*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*468104*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 4, 5, 
                    // Src: (setcc:{ *:[v16i1] } immAllZerosV:{ *:[v16i8] }, VR128X:{ *:[v16i8] }:$src, SETGT:{ *:[Other] }) - Complexity = 7
                    // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } (VPMOVB2MZrr:{ *:[v64i1] } (INSERT_SUBREG:{ *:[v64i8] } (IMPLICIT_DEF:{ *:[v64i8] }), VR128X:{ *:[v16i8] }:$src, sub_xmm:{ *:[i32] })), VK16:{ *:[i32] })
/*468112*/        0, /*End of Scope*/
/*468113*/      /*SwitchType*/ 15, MVT::v32i16,// ->468130
/*468115*/        OPC_MoveParent,
/*468116*/        OPC_RecordChild1, // #0 = $src
/*468117*/        OPC_CheckChild2CondCode, ISD::SETGT,
/*468119*/        OPC_CheckType, MVT::v32i1,
/*468121*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*468123*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVW2MZrr), 0,
                      MVT::v32i1, 1/*#Ops*/, 0, 
                  // Src: (setcc:{ *:[v32i1] } immAllZerosV:{ *:[v32i16] }, VR512:{ *:[v32i16] }:$src, SETGT:{ *:[Other] }) - Complexity = 7
                  // Dst: (VPMOVW2MZrr:{ *:[v32i1] } VR512:{ *:[v32i16] }:$src)
/*468130*/      /*SwitchType*/ 57, MVT::v16i16,// ->468189
/*468132*/        OPC_MoveParent,
/*468133*/        OPC_RecordChild1, // #0 = $src
/*468134*/        OPC_CheckChild2CondCode, ISD::SETGT,
/*468136*/        OPC_CheckType, MVT::v16i1,
/*468138*/        OPC_Scope, 9, /*->468149*/ // 2 children in Scope
/*468140*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*468142*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVW2MZ256rr), 0,
                        MVT::v16i1, 1/*#Ops*/, 0, 
                    // Src: (setcc:{ *:[v16i1] } immAllZerosV:{ *:[v16i16] }, VR256X:{ *:[v16i16] }:$src, SETGT:{ *:[Other] }) - Complexity = 7
                    // Dst: (VPMOVW2MZ256rr:{ *:[v16i1] } VR256X:{ *:[v16i16] }:$src)
/*468149*/        /*Scope*/ 38, /*->468188*/
/*468150*/          OPC_CheckPatternPredicate, 117, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/*468152*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #1
/*468158*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*468161*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*468170*/          OPC_EmitNode1, TARGET_VAL(X86::VPMOVW2MZrr), 0,
                        MVT::v32i1, 1/*#Ops*/, 3,  // Results = #4
/*468177*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*468180*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v16i1, 2/*#Ops*/, 4, 5, 
                    // Src: (setcc:{ *:[v16i1] } immAllZerosV:{ *:[v16i16] }, VR256X:{ *:[v16i16] }:$src, SETGT:{ *:[Other] }) - Complexity = 7
                    // Dst: (COPY_TO_REGCLASS:{ *:[v16i1] } (VPMOVW2MZrr:{ *:[v32i1] } (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR256X:{ *:[v16i16] }:$src, sub_ymm:{ *:[i32] })), VK16:{ *:[i32] })
/*468188*/        0, /*End of Scope*/
/*468189*/      /*SwitchType*/ 57, MVT::v8i16,// ->468248
/*468191*/        OPC_MoveParent,
/*468192*/        OPC_RecordChild1, // #0 = $src
/*468193*/        OPC_CheckChild2CondCode, ISD::SETGT,
/*468195*/        OPC_CheckType, MVT::v8i1,
/*468197*/        OPC_Scope, 9, /*->468208*/ // 2 children in Scope
/*468199*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*468201*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVW2MZ128rr), 0,
                        MVT::v8i1, 1/*#Ops*/, 0, 
                    // Src: (setcc:{ *:[v8i1] } immAllZerosV:{ *:[v8i16] }, VR128X:{ *:[v8i16] }:$src, SETGT:{ *:[Other] }) - Complexity = 7
                    // Dst: (VPMOVW2MZ128rr:{ *:[v8i1] } VR128X:{ *:[v8i16] }:$src)
/*468208*/        /*Scope*/ 38, /*->468247*/
/*468209*/          OPC_CheckPatternPredicate, 117, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/*468211*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #1
/*468217*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*468220*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*468229*/          OPC_EmitNode1, TARGET_VAL(X86::VPMOVW2MZrr), 0,
                        MVT::v32i1, 1/*#Ops*/, 3,  // Results = #4
/*468236*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*468239*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 4, 5, 
                    // Src: (setcc:{ *:[v8i1] } immAllZerosV:{ *:[v8i16] }, VR128X:{ *:[v8i16] }:$src, SETGT:{ *:[Other] }) - Complexity = 7
                    // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (VPMOVW2MZrr:{ *:[v32i1] } (INSERT_SUBREG:{ *:[v32i16] } (IMPLICIT_DEF:{ *:[v32i16] }), VR128X:{ *:[v8i16] }:$src, sub_xmm:{ *:[i32] })), VK8:{ *:[i32] })
/*468247*/        0, /*End of Scope*/
/*468248*/      /*SwitchType*/ 15, MVT::v16i32,// ->468265
/*468250*/        OPC_MoveParent,
/*468251*/        OPC_RecordChild1, // #0 = $src
/*468252*/        OPC_CheckChild2CondCode, ISD::SETGT,
/*468254*/        OPC_CheckType, MVT::v16i1,
/*468256*/        OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*468258*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVD2MZrr), 0,
                      MVT::v16i1, 1/*#Ops*/, 0, 
                  // Src: (setcc:{ *:[v16i1] } immAllZerosV:{ *:[v16i32] }, VR512:{ *:[v16i32] }:$src, SETGT:{ *:[Other] }) - Complexity = 7
                  // Dst: (VPMOVD2MZrr:{ *:[v16i1] } VR512:{ *:[v16i32] }:$src)
/*468265*/      /*SwitchType*/ 57, MVT::v8i32,// ->468324
/*468267*/        OPC_MoveParent,
/*468268*/        OPC_RecordChild1, // #0 = $src
/*468269*/        OPC_CheckChild2CondCode, ISD::SETGT,
/*468271*/        OPC_CheckType, MVT::v8i1,
/*468273*/        OPC_Scope, 9, /*->468284*/ // 2 children in Scope
/*468275*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*468277*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVD2MZ256rr), 0,
                        MVT::v8i1, 1/*#Ops*/, 0, 
                    // Src: (setcc:{ *:[v8i1] } immAllZerosV:{ *:[v8i32] }, VR256X:{ *:[v8i32] }:$src, SETGT:{ *:[Other] }) - Complexity = 7
                    // Dst: (VPMOVD2MZ256rr:{ *:[v8i1] } VR256X:{ *:[v8i32] }:$src)
/*468284*/        /*Scope*/ 38, /*->468323*/
/*468285*/          OPC_CheckPatternPredicate, 120, // (Subtarget->hasDQI()) && (!Subtarget->hasVLX())
/*468287*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #1
/*468293*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*468296*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*468305*/          OPC_EmitNode1, TARGET_VAL(X86::VPMOVD2MZrr), 0,
                        MVT::v16i1, 1/*#Ops*/, 3,  // Results = #4
/*468312*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*468315*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v8i1, 2/*#Ops*/, 4, 5, 
                    // Src: (setcc:{ *:[v8i1] } immAllZerosV:{ *:[v8i32] }, 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] })
/*468323*/        0, /*End of Scope*/
/*468324*/      /*SwitchType*/ 57, MVT::v4i32,// ->468383
/*468326*/        OPC_MoveParent,
/*468327*/        OPC_RecordChild1, // #0 = $src
/*468328*/        OPC_CheckChild2CondCode, ISD::SETGT,
/*468330*/        OPC_CheckType, MVT::v4i1,
/*468332*/        OPC_Scope, 9, /*->468343*/ // 2 children in Scope
/*468334*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*468336*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVD2MZ128rr), 0,
                        MVT::v4i1, 1/*#Ops*/, 0, 
                    // Src: (setcc:{ *:[v4i1] } immAllZerosV:{ *:[v4i32] }, VR128X:{ *:[v4i32] }:$src, SETGT:{ *:[Other] }) - Complexity = 7
                    // Dst: (VPMOVD2MZ128rr:{ *:[v4i1] } VR128X:{ *:[v4i32] }:$src)
/*468343*/        /*Scope*/ 38, /*->468382*/
/*468344*/          OPC_CheckPatternPredicate, 120, // (Subtarget->hasDQI()) && (!Subtarget->hasVLX())
/*468346*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #1
/*468352*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*468355*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*468364*/          OPC_EmitNode1, TARGET_VAL(X86::VPMOVD2MZrr), 0,
                        MVT::v16i1, 1/*#Ops*/, 3,  // Results = #4
/*468371*/          OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*468374*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i1, 2/*#Ops*/, 4, 5, 
                    // Src: (setcc:{ *:[v4i1] } immAllZerosV:{ *:[v4i32] }, 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] })
/*468382*/        0, /*End of Scope*/
/*468383*/      /*SwitchType*/ 15, MVT::v8i64,// ->468400
/*468385*/        OPC_MoveParent,
/*468386*/        OPC_RecordChild1, // #0 = $src
/*468387*/        OPC_CheckChild2CondCode, ISD::SETGT,
/*468389*/        OPC_CheckType, MVT::v8i1,
/*468391*/        OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*468393*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVQ2MZrr), 0,
                      MVT::v8i1, 1/*#Ops*/, 0, 
                  // Src: (setcc:{ *:[v8i1] } immAllZerosV:{ *:[v8i64] }, VR512:{ *:[v8i64] }:$src, SETGT:{ *:[Other] }) - Complexity = 7
                  // Dst: (VPMOVQ2MZrr:{ *:[v8i1] } VR512:{ *:[v8i64] }:$src)
/*468400*/      /*SwitchType*/ 57, MVT::v4i64,// ->468459
/*468402*/        OPC_MoveParent,
/*468403*/        OPC_RecordChild1, // #0 = $src
/*468404*/        OPC_CheckChild2CondCode, ISD::SETGT,
/*468406*/        OPC_CheckType, MVT::v4i1,
/*468408*/        OPC_Scope, 9, /*->468419*/ // 2 children in Scope
/*468410*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*468412*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVQ2MZ256rr), 0,
                        MVT::v4i1, 1/*#Ops*/, 0, 
                    // Src: (setcc:{ *:[v4i1] } immAllZerosV:{ *:[v4i64] }, VR256X:{ *:[v4i64] }:$src, SETGT:{ *:[Other] }) - Complexity = 7
                    // Dst: (VPMOVQ2MZ256rr:{ *:[v4i1] } VR256X:{ *:[v4i64] }:$src)
/*468419*/        /*Scope*/ 38, /*->468458*/
/*468420*/          OPC_CheckPatternPredicate, 120, // (Subtarget->hasDQI()) && (!Subtarget->hasVLX())
/*468422*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #1
/*468428*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*468431*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*468440*/          OPC_EmitNode1, TARGET_VAL(X86::VPMOVQ2MZrr), 0,
                        MVT::v8i1, 1/*#Ops*/, 3,  // Results = #4
/*468447*/          OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*468450*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v4i1, 2/*#Ops*/, 4, 5, 
                    // Src: (setcc:{ *:[v4i1] } immAllZerosV:{ *:[v4i64] }, VR256X:{ *:[v4i64] }:$src, SETGT:{ *:[Other] }) - Complexity = 7
                    // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (VPMOVQ2MZrr:{ *:[v8i1] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src, sub_ymm:{ *:[i32] })), VK4:{ *:[i32] })
/*468458*/        0, /*End of Scope*/
/*468459*/      /*SwitchType*/ 57, MVT::v2i64,// ->468518
/*468461*/        OPC_MoveParent,
/*468462*/        OPC_RecordChild1, // #0 = $src
/*468463*/        OPC_CheckChild2CondCode, ISD::SETGT,
/*468465*/        OPC_CheckType, MVT::v2i1,
/*468467*/        OPC_Scope, 9, /*->468478*/ // 2 children in Scope
/*468469*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*468471*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVQ2MZ128rr), 0,
                        MVT::v2i1, 1/*#Ops*/, 0, 
                    // Src: (setcc:{ *:[v2i1] } immAllZerosV:{ *:[v2i64] }, VR128X:{ *:[v2i64] }:$src, SETGT:{ *:[Other] }) - Complexity = 7
                    // Dst: (VPMOVQ2MZ128rr:{ *:[v2i1] } VR128X:{ *:[v2i64] }:$src)
/*468478*/        /*Scope*/ 38, /*->468517*/
/*468479*/          OPC_CheckPatternPredicate, 120, // (Subtarget->hasDQI()) && (!Subtarget->hasVLX())
/*468481*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #1
/*468487*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*468490*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*468499*/          OPC_EmitNode1, TARGET_VAL(X86::VPMOVQ2MZrr), 0,
                        MVT::v8i1, 1/*#Ops*/, 3,  // Results = #4
/*468506*/          OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/*468509*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v2i1, 2/*#Ops*/, 4, 5, 
                    // Src: (setcc:{ *:[v2i1] } immAllZerosV:{ *:[v2i64] }, VR128X:{ *:[v2i64] }:$src, SETGT:{ *:[Other] }) - Complexity = 7
                    // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (VPMOVQ2MZrr:{ *:[v8i1] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src, sub_xmm:{ *:[i32] })), VK2:{ *:[i32] })
/*468517*/        0, /*End of Scope*/
/*468518*/      0, // EndSwitchType
/*468519*/    /*Scope*/ 64|128,12/*1600*/, /*->470121*/
/*468521*/      OPC_RecordNode, // #0 = $cc
/*468522*/      OPC_RecordChild0, // #1 = $src1
/*468523*/      OPC_Scope, 46, /*->468571*/ // 12 children in Scope
/*468525*/        OPC_CheckChild0Type, MVT::v64i8,
/*468527*/        OPC_RecordChild1, // #2 = $src2
/*468528*/        OPC_MoveChild2,
/*468529*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*468532*/        OPC_MoveParent,
/*468533*/        OPC_CheckType, MVT::v64i1,
/*468535*/        OPC_Scope, 16, /*->468553*/ // 2 children in Scope
/*468537*/          OPC_CheckPredicate, 105, // Predicate_X86pcmpm
/*468539*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*468541*/          OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*468544*/          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))
/*468553*/        /*Scope*/ 16, /*->468570*/
/*468554*/          OPC_CheckPredicate, 106, // Predicate_X86pcmpum
/*468556*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*468558*/          OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*468561*/          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))
/*468570*/        0, /*End of Scope*/
/*468571*/      /*Scope*/ 46|128,1/*174*/, /*->468747*/
/*468573*/        OPC_CheckChild0Type, MVT::v32i8,
/*468575*/        OPC_RecordChild1, // #2 = $src2
/*468576*/        OPC_MoveChild2,
/*468577*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*468580*/        OPC_MoveParent,
/*468581*/        OPC_CheckType, MVT::v32i1,
/*468583*/        OPC_Scope, 16, /*->468601*/ // 4 children in Scope
/*468585*/          OPC_CheckPredicate, 105, // Predicate_X86pcmpm
/*468587*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*468589*/          OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*468592*/          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))
/*468601*/        /*Scope*/ 16, /*->468618*/
/*468602*/          OPC_CheckPredicate, 106, // Predicate_X86pcmpum
/*468604*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*468606*/          OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*468609*/          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))
/*468618*/        /*Scope*/ 63, /*->468682*/
/*468619*/          OPC_CheckPredicate, 105, // Predicate_X86pcmpm
/*468621*/          OPC_CheckPatternPredicate, 117, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/*468623*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #3
/*468629*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*468632*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v64i8, 3/*#Ops*/, 3, 1, 4,  // Results = #5
/*468641*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #6
/*468647*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*468650*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v64i8, 3/*#Ops*/, 6, 2, 7,  // Results = #8
/*468659*/          OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*468662*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPBZrri), 0,
                        MVT::v64i1, 3/*#Ops*/, 5, 8, 9,  // Results = #10
/*468671*/          OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/*468674*/          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] })
/*468682*/        /*Scope*/ 63, /*->468746*/
/*468683*/          OPC_CheckPredicate, 106, // Predicate_X86pcmpum
/*468685*/          OPC_CheckPatternPredicate, 117, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/*468687*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #3
/*468693*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*468696*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v64i8, 3/*#Ops*/, 3, 1, 4,  // Results = #5
/*468705*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #6
/*468711*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*468714*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v64i8, 3/*#Ops*/, 6, 2, 7,  // Results = #8
/*468723*/          OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*468726*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPUBZrri), 0,
                        MVT::v64i1, 3/*#Ops*/, 5, 8, 9,  // Results = #10
/*468735*/          OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/*468738*/          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] })
/*468746*/        0, /*End of Scope*/
/*468747*/      /*Scope*/ 46|128,1/*174*/, /*->468923*/
/*468749*/        OPC_CheckChild0Type, MVT::v16i8,
/*468751*/        OPC_RecordChild1, // #2 = $src2
/*468752*/        OPC_MoveChild2,
/*468753*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*468756*/        OPC_MoveParent,
/*468757*/        OPC_CheckType, MVT::v16i1,
/*468759*/        OPC_Scope, 16, /*->468777*/ // 4 children in Scope
/*468761*/          OPC_CheckPredicate, 105, // Predicate_X86pcmpm
/*468763*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*468765*/          OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*468768*/          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))
/*468777*/        /*Scope*/ 16, /*->468794*/
/*468778*/          OPC_CheckPredicate, 106, // Predicate_X86pcmpum
/*468780*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*468782*/          OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*468785*/          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))
/*468794*/        /*Scope*/ 63, /*->468858*/
/*468795*/          OPC_CheckPredicate, 105, // Predicate_X86pcmpm
/*468797*/          OPC_CheckPatternPredicate, 117, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/*468799*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #3
/*468805*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*468808*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v64i8, 3/*#Ops*/, 3, 1, 4,  // Results = #5
/*468817*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #6
/*468823*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*468826*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v64i8, 3/*#Ops*/, 6, 2, 7,  // Results = #8
/*468835*/          OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*468838*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPBZrri), 0,
                        MVT::v64i1, 3/*#Ops*/, 5, 8, 9,  // Results = #10
/*468847*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*468850*/          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] })
/*468858*/        /*Scope*/ 63, /*->468922*/
/*468859*/          OPC_CheckPredicate, 106, // Predicate_X86pcmpum
/*468861*/          OPC_CheckPatternPredicate, 117, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/*468863*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #3
/*468869*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*468872*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v64i8, 3/*#Ops*/, 3, 1, 4,  // Results = #5
/*468881*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #6
/*468887*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*468890*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v64i8, 3/*#Ops*/, 6, 2, 7,  // Results = #8
/*468899*/          OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*468902*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPUBZrri), 0,
                        MVT::v64i1, 3/*#Ops*/, 5, 8, 9,  // Results = #10
/*468911*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*468914*/          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] })
/*468922*/        0, /*End of Scope*/
/*468923*/      /*Scope*/ 46, /*->468970*/
/*468924*/        OPC_CheckChild0Type, MVT::v32i16,
/*468926*/        OPC_RecordChild1, // #2 = $src2
/*468927*/        OPC_MoveChild2,
/*468928*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*468931*/        OPC_MoveParent,
/*468932*/        OPC_CheckType, MVT::v32i1,
/*468934*/        OPC_Scope, 16, /*->468952*/ // 2 children in Scope
/*468936*/          OPC_CheckPredicate, 105, // Predicate_X86pcmpm
/*468938*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*468940*/          OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*468943*/          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))
/*468952*/        /*Scope*/ 16, /*->468969*/
/*468953*/          OPC_CheckPredicate, 106, // Predicate_X86pcmpum
/*468955*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*468957*/          OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*468960*/          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))
/*468969*/        0, /*End of Scope*/
/*468970*/      /*Scope*/ 46|128,1/*174*/, /*->469146*/
/*468972*/        OPC_CheckChild0Type, MVT::v16i16,
/*468974*/        OPC_RecordChild1, // #2 = $src2
/*468975*/        OPC_MoveChild2,
/*468976*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*468979*/        OPC_MoveParent,
/*468980*/        OPC_CheckType, MVT::v16i1,
/*468982*/        OPC_Scope, 16, /*->469000*/ // 4 children in Scope
/*468984*/          OPC_CheckPredicate, 105, // Predicate_X86pcmpm
/*468986*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*468988*/          OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*468991*/          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))
/*469000*/        /*Scope*/ 16, /*->469017*/
/*469001*/          OPC_CheckPredicate, 106, // Predicate_X86pcmpum
/*469003*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*469005*/          OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*469008*/          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))
/*469017*/        /*Scope*/ 63, /*->469081*/
/*469018*/          OPC_CheckPredicate, 105, // Predicate_X86pcmpm
/*469020*/          OPC_CheckPatternPredicate, 117, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/*469022*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #3
/*469028*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*469031*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 3, 1, 4,  // Results = #5
/*469040*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #6
/*469046*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*469049*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 6, 2, 7,  // Results = #8
/*469058*/          OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*469061*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPWZrri), 0,
                        MVT::v32i1, 3/*#Ops*/, 5, 8, 9,  // Results = #10
/*469070*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*469073*/          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] })
/*469081*/        /*Scope*/ 63, /*->469145*/
/*469082*/          OPC_CheckPredicate, 106, // Predicate_X86pcmpum
/*469084*/          OPC_CheckPatternPredicate, 117, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/*469086*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #3
/*469092*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*469095*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 3, 1, 4,  // Results = #5
/*469104*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #6
/*469110*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*469113*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 6, 2, 7,  // Results = #8
/*469122*/          OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*469125*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPUWZrri), 0,
                        MVT::v32i1, 3/*#Ops*/, 5, 8, 9,  // Results = #10
/*469134*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*469137*/          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] })
/*469145*/        0, /*End of Scope*/
/*469146*/      /*Scope*/ 46|128,1/*174*/, /*->469322*/
/*469148*/        OPC_CheckChild0Type, MVT::v8i16,
/*469150*/        OPC_RecordChild1, // #2 = $src2
/*469151*/        OPC_MoveChild2,
/*469152*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*469155*/        OPC_MoveParent,
/*469156*/        OPC_CheckType, MVT::v8i1,
/*469158*/        OPC_Scope, 16, /*->469176*/ // 4 children in Scope
/*469160*/          OPC_CheckPredicate, 105, // Predicate_X86pcmpm
/*469162*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*469164*/          OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*469167*/          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))
/*469176*/        /*Scope*/ 16, /*->469193*/
/*469177*/          OPC_CheckPredicate, 106, // Predicate_X86pcmpum
/*469179*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*469181*/          OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*469184*/          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))
/*469193*/        /*Scope*/ 63, /*->469257*/
/*469194*/          OPC_CheckPredicate, 105, // Predicate_X86pcmpm
/*469196*/          OPC_CheckPatternPredicate, 117, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/*469198*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #3
/*469204*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*469207*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 3, 1, 4,  // Results = #5
/*469216*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #6
/*469222*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*469225*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 6, 2, 7,  // Results = #8
/*469234*/          OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*469237*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPWZrri), 0,
                        MVT::v32i1, 3/*#Ops*/, 5, 8, 9,  // Results = #10
/*469246*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*469249*/          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] })
/*469257*/        /*Scope*/ 63, /*->469321*/
/*469258*/          OPC_CheckPredicate, 106, // Predicate_X86pcmpum
/*469260*/          OPC_CheckPatternPredicate, 117, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/*469262*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #3
/*469268*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*469271*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 3, 1, 4,  // Results = #5
/*469280*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #6
/*469286*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*469289*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 6, 2, 7,  // Results = #8
/*469298*/          OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*469301*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPUWZrri), 0,
                        MVT::v32i1, 3/*#Ops*/, 5, 8, 9,  // Results = #10
/*469310*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*469313*/          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] })
/*469321*/        0, /*End of Scope*/
/*469322*/      /*Scope*/ 46, /*->469369*/
/*469323*/        OPC_CheckChild0Type, MVT::v16i32,
/*469325*/        OPC_RecordChild1, // #2 = $src2
/*469326*/        OPC_MoveChild2,
/*469327*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*469330*/        OPC_MoveParent,
/*469331*/        OPC_CheckType, MVT::v16i1,
/*469333*/        OPC_Scope, 16, /*->469351*/ // 2 children in Scope
/*469335*/          OPC_CheckPredicate, 105, // Predicate_X86pcmpm
/*469337*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*469339*/          OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*469342*/          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))
/*469351*/        /*Scope*/ 16, /*->469368*/
/*469352*/          OPC_CheckPredicate, 106, // Predicate_X86pcmpum
/*469354*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*469356*/          OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*469359*/          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))
/*469368*/        0, /*End of Scope*/
/*469369*/      /*Scope*/ 46|128,1/*174*/, /*->469545*/
/*469371*/        OPC_CheckChild0Type, MVT::v8i32,
/*469373*/        OPC_RecordChild1, // #2 = $src2
/*469374*/        OPC_MoveChild2,
/*469375*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*469378*/        OPC_MoveParent,
/*469379*/        OPC_CheckType, MVT::v8i1,
/*469381*/        OPC_Scope, 16, /*->469399*/ // 4 children in Scope
/*469383*/          OPC_CheckPredicate, 105, // Predicate_X86pcmpm
/*469385*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*469387*/          OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*469390*/          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))
/*469399*/        /*Scope*/ 16, /*->469416*/
/*469400*/          OPC_CheckPredicate, 106, // Predicate_X86pcmpum
/*469402*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*469404*/          OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*469407*/          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))
/*469416*/        /*Scope*/ 63, /*->469480*/
/*469417*/          OPC_CheckPredicate, 105, // Predicate_X86pcmpm
/*469419*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*469421*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #3
/*469427*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*469430*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 3, 1, 4,  // Results = #5
/*469439*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #6
/*469445*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*469448*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 6, 2, 7,  // Results = #8
/*469457*/          OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*469460*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPDZrri), 0,
                        MVT::v16i1, 3/*#Ops*/, 5, 8, 9,  // Results = #10
/*469469*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*469472*/          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] })
/*469480*/        /*Scope*/ 63, /*->469544*/
/*469481*/          OPC_CheckPredicate, 106, // Predicate_X86pcmpum
/*469483*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*469485*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #3
/*469491*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*469494*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 3, 1, 4,  // Results = #5
/*469503*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #6
/*469509*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*469512*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 6, 2, 7,  // Results = #8
/*469521*/          OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*469524*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPUDZrri), 0,
                        MVT::v16i1, 3/*#Ops*/, 5, 8, 9,  // Results = #10
/*469533*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*469536*/          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] })
/*469544*/        0, /*End of Scope*/
/*469545*/      /*Scope*/ 46|128,1/*174*/, /*->469721*/
/*469547*/        OPC_CheckChild0Type, MVT::v4i32,
/*469549*/        OPC_RecordChild1, // #2 = $src2
/*469550*/        OPC_MoveChild2,
/*469551*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*469554*/        OPC_MoveParent,
/*469555*/        OPC_CheckType, MVT::v4i1,
/*469557*/        OPC_Scope, 16, /*->469575*/ // 4 children in Scope
/*469559*/          OPC_CheckPredicate, 105, // Predicate_X86pcmpm
/*469561*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*469563*/          OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*469566*/          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))
/*469575*/        /*Scope*/ 16, /*->469592*/
/*469576*/          OPC_CheckPredicate, 106, // Predicate_X86pcmpum
/*469578*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*469580*/          OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*469583*/          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))
/*469592*/        /*Scope*/ 63, /*->469656*/
/*469593*/          OPC_CheckPredicate, 105, // Predicate_X86pcmpm
/*469595*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*469597*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #3
/*469603*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*469606*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 3, 1, 4,  // Results = #5
/*469615*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #6
/*469621*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*469624*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 6, 2, 7,  // Results = #8
/*469633*/          OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*469636*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPDZrri), 0,
                        MVT::v16i1, 3/*#Ops*/, 5, 8, 9,  // Results = #10
/*469645*/          OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*469648*/          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] })
/*469656*/        /*Scope*/ 63, /*->469720*/
/*469657*/          OPC_CheckPredicate, 106, // Predicate_X86pcmpum
/*469659*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*469661*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #3
/*469667*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*469670*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 3, 1, 4,  // Results = #5
/*469679*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #6
/*469685*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*469688*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 6, 2, 7,  // Results = #8
/*469697*/          OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*469700*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPUDZrri), 0,
                        MVT::v16i1, 3/*#Ops*/, 5, 8, 9,  // Results = #10
/*469709*/          OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*469712*/          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] })
/*469720*/        0, /*End of Scope*/
/*469721*/      /*Scope*/ 46, /*->469768*/
/*469722*/        OPC_CheckChild0Type, MVT::v8i64,
/*469724*/        OPC_RecordChild1, // #2 = $src2
/*469725*/        OPC_MoveChild2,
/*469726*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*469729*/        OPC_MoveParent,
/*469730*/        OPC_CheckType, MVT::v8i1,
/*469732*/        OPC_Scope, 16, /*->469750*/ // 2 children in Scope
/*469734*/          OPC_CheckPredicate, 105, // Predicate_X86pcmpm
/*469736*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*469738*/          OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*469741*/          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))
/*469750*/        /*Scope*/ 16, /*->469767*/
/*469751*/          OPC_CheckPredicate, 106, // Predicate_X86pcmpum
/*469753*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*469755*/          OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*469758*/          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))
/*469767*/        0, /*End of Scope*/
/*469768*/      /*Scope*/ 46|128,1/*174*/, /*->469944*/
/*469770*/        OPC_CheckChild0Type, MVT::v4i64,
/*469772*/        OPC_RecordChild1, // #2 = $src2
/*469773*/        OPC_MoveChild2,
/*469774*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*469777*/        OPC_MoveParent,
/*469778*/        OPC_CheckType, MVT::v4i1,
/*469780*/        OPC_Scope, 16, /*->469798*/ // 4 children in Scope
/*469782*/          OPC_CheckPredicate, 105, // Predicate_X86pcmpm
/*469784*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*469786*/          OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*469789*/          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))
/*469798*/        /*Scope*/ 16, /*->469815*/
/*469799*/          OPC_CheckPredicate, 106, // Predicate_X86pcmpum
/*469801*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*469803*/          OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*469806*/          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))
/*469815*/        /*Scope*/ 63, /*->469879*/
/*469816*/          OPC_CheckPredicate, 105, // Predicate_X86pcmpm
/*469818*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*469820*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #3
/*469826*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*469829*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 3, 1, 4,  // Results = #5
/*469838*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #6
/*469844*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*469847*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 6, 2, 7,  // Results = #8
/*469856*/          OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*469859*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPQZrri), 0,
                        MVT::v8i1, 3/*#Ops*/, 5, 8, 9,  // Results = #10
/*469868*/          OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*469871*/          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] })
/*469879*/        /*Scope*/ 63, /*->469943*/
/*469880*/          OPC_CheckPredicate, 106, // Predicate_X86pcmpum
/*469882*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*469884*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #3
/*469890*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*469893*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 3, 1, 4,  // Results = #5
/*469902*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #6
/*469908*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*469911*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 6, 2, 7,  // Results = #8
/*469920*/          OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*469923*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPUQZrri), 0,
                        MVT::v8i1, 3/*#Ops*/, 5, 8, 9,  // Results = #10
/*469932*/          OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*469935*/          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] })
/*469943*/        0, /*End of Scope*/
/*469944*/      /*Scope*/ 46|128,1/*174*/, /*->470120*/
/*469946*/        OPC_CheckChild0Type, MVT::v2i64,
/*469948*/        OPC_RecordChild1, // #2 = $src2
/*469949*/        OPC_MoveChild2,
/*469950*/        OPC_CheckOpcode, TARGET_VAL(ISD::CONDCODE),
/*469953*/        OPC_MoveParent,
/*469954*/        OPC_CheckType, MVT::v2i1,
/*469956*/        OPC_Scope, 16, /*->469974*/ // 4 children in Scope
/*469958*/          OPC_CheckPredicate, 105, // Predicate_X86pcmpm
/*469960*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*469962*/          OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*469965*/          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))
/*469974*/        /*Scope*/ 16, /*->469991*/
/*469975*/          OPC_CheckPredicate, 106, // Predicate_X86pcmpum
/*469977*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*469979*/          OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*469982*/          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))
/*469991*/        /*Scope*/ 63, /*->470055*/
/*469992*/          OPC_CheckPredicate, 105, // Predicate_X86pcmpm
/*469994*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*469996*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #3
/*470002*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*470005*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 3, 1, 4,  // Results = #5
/*470014*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #6
/*470020*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*470023*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 6, 2, 7,  // Results = #8
/*470032*/          OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*470035*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPQZrri), 0,
                        MVT::v8i1, 3/*#Ops*/, 5, 8, 9,  // Results = #10
/*470044*/          OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/*470047*/          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] })
/*470055*/        /*Scope*/ 63, /*->470119*/
/*470056*/          OPC_CheckPredicate, 106, // Predicate_X86pcmpum
/*470058*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*470060*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #3
/*470066*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*470069*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 3, 1, 4,  // Results = #5
/*470078*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #6
/*470084*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*470087*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 6, 2, 7,  // Results = #8
/*470096*/          OPC_EmitNodeXForm, 8, 0, // X86pcmpm_imm
/*470099*/          OPC_EmitNode1, TARGET_VAL(X86::VPCMPUQZrri), 0,
                        MVT::v8i1, 3/*#Ops*/, 5, 8, 9,  // Results = #10
/*470108*/          OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/*470111*/          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] })
/*470119*/        0, /*End of Scope*/
/*470120*/      0, /*End of Scope*/
/*470121*/    0, /*End of Scope*/
/*470122*/  /*SwitchOpcode*/ 79|128,2/*335*/, TARGET_VAL(X86ISD::VPSHA),// ->470461
/*470126*/    OPC_Scope, 34, /*->470162*/ // 9 children in Scope
/*470128*/      OPC_RecordChild0, // #0 = $src1
/*470129*/      OPC_MoveChild1,
/*470130*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*470133*/      OPC_RecordMemRef,
/*470134*/      OPC_RecordNode, // #1 = 'ld' chained node
/*470135*/      OPC_CheckFoldableChainNode,
/*470136*/      OPC_RecordChild1, // #2 = $src2
/*470137*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*470139*/      OPC_CheckPredicate, 9, // Predicate_load
/*470141*/      OPC_MoveParent,
/*470142*/      OPC_CheckType, MVT::v16i8,
/*470144*/      OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*470146*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*470149*/      OPC_EmitMergeInputChains1_1,
/*470150*/      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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                // Dst: (VPSHABrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*470162*/    /*Scope*/ 34, /*->470197*/
/*470163*/      OPC_MoveChild0,
/*470164*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*470167*/      OPC_RecordMemRef,
/*470168*/      OPC_RecordNode, // #0 = 'ld' chained node
/*470169*/      OPC_CheckFoldableChainNode,
/*470170*/      OPC_RecordChild1, // #1 = $src1
/*470171*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*470173*/      OPC_CheckPredicate, 9, // Predicate_load
/*470175*/      OPC_MoveParent,
/*470176*/      OPC_RecordChild1, // #2 = $src2
/*470177*/      OPC_CheckType, MVT::v16i8,
/*470179*/      OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*470181*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*470184*/      OPC_EmitMergeInputChains1_0,
/*470185*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHABmr), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v16i8, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                // Src: (X86vpsha:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v16i8] }:$src2) - Complexity = 25
                // Dst: (VPSHABmr:{ *:[v16i8] } addr:{ *:[iPTR] }:$src1, VR128:{ *:[v16i8] }:$src2)
/*470197*/    /*Scope*/ 34, /*->470232*/
/*470198*/      OPC_RecordChild0, // #0 = $src1
/*470199*/      OPC_MoveChild1,
/*470200*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*470203*/      OPC_RecordMemRef,
/*470204*/      OPC_RecordNode, // #1 = 'ld' chained node
/*470205*/      OPC_CheckFoldableChainNode,
/*470206*/      OPC_RecordChild1, // #2 = $src2
/*470207*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*470209*/      OPC_CheckPredicate, 9, // Predicate_load
/*470211*/      OPC_MoveParent,
/*470212*/      OPC_CheckType, MVT::v4i32,
/*470214*/      OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*470216*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*470219*/      OPC_EmitMergeInputChains1_1,
/*470220*/      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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                // Dst: (VPSHADrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*470232*/    /*Scope*/ 34, /*->470267*/
/*470233*/      OPC_MoveChild0,
/*470234*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*470237*/      OPC_RecordMemRef,
/*470238*/      OPC_RecordNode, // #0 = 'ld' chained node
/*470239*/      OPC_CheckFoldableChainNode,
/*470240*/      OPC_RecordChild1, // #1 = $src1
/*470241*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*470243*/      OPC_CheckPredicate, 9, // Predicate_load
/*470245*/      OPC_MoveParent,
/*470246*/      OPC_RecordChild1, // #2 = $src2
/*470247*/      OPC_CheckType, MVT::v4i32,
/*470249*/      OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*470251*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*470254*/      OPC_EmitMergeInputChains1_0,
/*470255*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHADmr), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                // Src: (X86vpsha:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v4i32] }:$src2) - Complexity = 25
                // Dst: (VPSHADmr:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1, VR128:{ *:[v4i32] }:$src2)
/*470267*/    /*Scope*/ 34, /*->470302*/
/*470268*/      OPC_RecordChild0, // #0 = $src1
/*470269*/      OPC_MoveChild1,
/*470270*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*470273*/      OPC_RecordMemRef,
/*470274*/      OPC_RecordNode, // #1 = 'ld' chained node
/*470275*/      OPC_CheckFoldableChainNode,
/*470276*/      OPC_RecordChild1, // #2 = $src2
/*470277*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*470279*/      OPC_CheckPredicate, 9, // Predicate_load
/*470281*/      OPC_MoveParent,
/*470282*/      OPC_CheckType, MVT::v2i64,
/*470284*/      OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*470286*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*470289*/      OPC_EmitMergeInputChains1_1,
/*470290*/      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>>) - Complexity = 25
                // Dst: (VPSHAQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*470302*/    /*Scope*/ 34, /*->470337*/
/*470303*/      OPC_MoveChild0,
/*470304*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*470307*/      OPC_RecordMemRef,
/*470308*/      OPC_RecordNode, // #0 = 'ld' chained node
/*470309*/      OPC_CheckFoldableChainNode,
/*470310*/      OPC_RecordChild1, // #1 = $src1
/*470311*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*470313*/      OPC_CheckPredicate, 9, // Predicate_load
/*470315*/      OPC_MoveParent,
/*470316*/      OPC_RecordChild1, // #2 = $src2
/*470317*/      OPC_CheckType, MVT::v2i64,
/*470319*/      OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*470321*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*470324*/      OPC_EmitMergeInputChains1_0,
/*470325*/      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>>, VR128:{ *:[v2i64] }:$src2) - Complexity = 25
                // Dst: (VPSHAQmr:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1, VR128:{ *:[v2i64] }:$src2)
/*470337*/    /*Scope*/ 34, /*->470372*/
/*470338*/      OPC_RecordChild0, // #0 = $src1
/*470339*/      OPC_MoveChild1,
/*470340*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*470343*/      OPC_RecordMemRef,
/*470344*/      OPC_RecordNode, // #1 = 'ld' chained node
/*470345*/      OPC_CheckFoldableChainNode,
/*470346*/      OPC_RecordChild1, // #2 = $src2
/*470347*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*470349*/      OPC_CheckPredicate, 9, // Predicate_load
/*470351*/      OPC_MoveParent,
/*470352*/      OPC_CheckType, MVT::v8i16,
/*470354*/      OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*470356*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*470359*/      OPC_EmitMergeInputChains1_1,
/*470360*/      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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                // Dst: (VPSHAWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*470372*/    /*Scope*/ 34, /*->470407*/
/*470373*/      OPC_MoveChild0,
/*470374*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*470377*/      OPC_RecordMemRef,
/*470378*/      OPC_RecordNode, // #0 = 'ld' chained node
/*470379*/      OPC_CheckFoldableChainNode,
/*470380*/      OPC_RecordChild1, // #1 = $src1
/*470381*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*470383*/      OPC_CheckPredicate, 9, // Predicate_load
/*470385*/      OPC_MoveParent,
/*470386*/      OPC_RecordChild1, // #2 = $src2
/*470387*/      OPC_CheckType, MVT::v8i16,
/*470389*/      OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*470391*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*470394*/      OPC_EmitMergeInputChains1_0,
/*470395*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHAWmr), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                // Src: (X86vpsha:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v8i16] }:$src2) - Complexity = 25
                // Dst: (VPSHAWmr:{ *:[v8i16] } addr:{ *:[iPTR] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*470407*/    /*Scope*/ 52, /*->470460*/
/*470408*/      OPC_RecordChild0, // #0 = $src1
/*470409*/      OPC_RecordChild1, // #1 = $src2
/*470410*/      OPC_SwitchType /*4 cases */, 10, MVT::v16i8,// ->470423
/*470413*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*470415*/        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)
/*470423*/      /*SwitchType*/ 10, MVT::v4i32,// ->470435
/*470425*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*470427*/        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)
/*470435*/      /*SwitchType*/ 10, MVT::v2i64,// ->470447
/*470437*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*470439*/        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)
/*470447*/      /*SwitchType*/ 10, MVT::v8i16,// ->470459
/*470449*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*470451*/        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)
/*470459*/      0, // EndSwitchType
/*470460*/    0, /*End of Scope*/
/*470461*/  /*SwitchOpcode*/ 79|128,2/*335*/, TARGET_VAL(X86ISD::VPSHL),// ->470800
/*470465*/    OPC_Scope, 34, /*->470501*/ // 9 children in Scope
/*470467*/      OPC_RecordChild0, // #0 = $src1
/*470468*/      OPC_MoveChild1,
/*470469*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*470472*/      OPC_RecordMemRef,
/*470473*/      OPC_RecordNode, // #1 = 'ld' chained node
/*470474*/      OPC_CheckFoldableChainNode,
/*470475*/      OPC_RecordChild1, // #2 = $src2
/*470476*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*470478*/      OPC_CheckPredicate, 9, // Predicate_load
/*470480*/      OPC_MoveParent,
/*470481*/      OPC_CheckType, MVT::v16i8,
/*470483*/      OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*470485*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*470488*/      OPC_EmitMergeInputChains1_1,
/*470489*/      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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                // Dst: (VPSHLBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*470501*/    /*Scope*/ 34, /*->470536*/
/*470502*/      OPC_MoveChild0,
/*470503*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*470506*/      OPC_RecordMemRef,
/*470507*/      OPC_RecordNode, // #0 = 'ld' chained node
/*470508*/      OPC_CheckFoldableChainNode,
/*470509*/      OPC_RecordChild1, // #1 = $src1
/*470510*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*470512*/      OPC_CheckPredicate, 9, // Predicate_load
/*470514*/      OPC_MoveParent,
/*470515*/      OPC_RecordChild1, // #2 = $src2
/*470516*/      OPC_CheckType, MVT::v16i8,
/*470518*/      OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*470520*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*470523*/      OPC_EmitMergeInputChains1_0,
/*470524*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLBmr), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v16i8, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                // Src: (X86vpshl:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v16i8] }:$src2) - Complexity = 25
                // Dst: (VPSHLBmr:{ *:[v16i8] } addr:{ *:[iPTR] }:$src1, VR128:{ *:[v16i8] }:$src2)
/*470536*/    /*Scope*/ 34, /*->470571*/
/*470537*/      OPC_RecordChild0, // #0 = $src1
/*470538*/      OPC_MoveChild1,
/*470539*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*470542*/      OPC_RecordMemRef,
/*470543*/      OPC_RecordNode, // #1 = 'ld' chained node
/*470544*/      OPC_CheckFoldableChainNode,
/*470545*/      OPC_RecordChild1, // #2 = $src2
/*470546*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*470548*/      OPC_CheckPredicate, 9, // Predicate_load
/*470550*/      OPC_MoveParent,
/*470551*/      OPC_CheckType, MVT::v4i32,
/*470553*/      OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*470555*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*470558*/      OPC_EmitMergeInputChains1_1,
/*470559*/      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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                // Dst: (VPSHLDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*470571*/    /*Scope*/ 34, /*->470606*/
/*470572*/      OPC_MoveChild0,
/*470573*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*470576*/      OPC_RecordMemRef,
/*470577*/      OPC_RecordNode, // #0 = 'ld' chained node
/*470578*/      OPC_CheckFoldableChainNode,
/*470579*/      OPC_RecordChild1, // #1 = $src1
/*470580*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*470582*/      OPC_CheckPredicate, 9, // Predicate_load
/*470584*/      OPC_MoveParent,
/*470585*/      OPC_RecordChild1, // #2 = $src2
/*470586*/      OPC_CheckType, MVT::v4i32,
/*470588*/      OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*470590*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*470593*/      OPC_EmitMergeInputChains1_0,
/*470594*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLDmr), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                // Src: (X86vpshl:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v4i32] }:$src2) - Complexity = 25
                // Dst: (VPSHLDmr:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1, VR128:{ *:[v4i32] }:$src2)
/*470606*/    /*Scope*/ 34, /*->470641*/
/*470607*/      OPC_RecordChild0, // #0 = $src1
/*470608*/      OPC_MoveChild1,
/*470609*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*470612*/      OPC_RecordMemRef,
/*470613*/      OPC_RecordNode, // #1 = 'ld' chained node
/*470614*/      OPC_CheckFoldableChainNode,
/*470615*/      OPC_RecordChild1, // #2 = $src2
/*470616*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*470618*/      OPC_CheckPredicate, 9, // Predicate_load
/*470620*/      OPC_MoveParent,
/*470621*/      OPC_CheckType, MVT::v2i64,
/*470623*/      OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*470625*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*470628*/      OPC_EmitMergeInputChains1_1,
/*470629*/      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>>) - Complexity = 25
                // Dst: (VPSHLQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*470641*/    /*Scope*/ 34, /*->470676*/
/*470642*/      OPC_MoveChild0,
/*470643*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*470646*/      OPC_RecordMemRef,
/*470647*/      OPC_RecordNode, // #0 = 'ld' chained node
/*470648*/      OPC_CheckFoldableChainNode,
/*470649*/      OPC_RecordChild1, // #1 = $src1
/*470650*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*470652*/      OPC_CheckPredicate, 9, // Predicate_load
/*470654*/      OPC_MoveParent,
/*470655*/      OPC_RecordChild1, // #2 = $src2
/*470656*/      OPC_CheckType, MVT::v2i64,
/*470658*/      OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*470660*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*470663*/      OPC_EmitMergeInputChains1_0,
/*470664*/      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>>, VR128:{ *:[v2i64] }:$src2) - Complexity = 25
                // Dst: (VPSHLQmr:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1, VR128:{ *:[v2i64] }:$src2)
/*470676*/    /*Scope*/ 34, /*->470711*/
/*470677*/      OPC_RecordChild0, // #0 = $src1
/*470678*/      OPC_MoveChild1,
/*470679*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*470682*/      OPC_RecordMemRef,
/*470683*/      OPC_RecordNode, // #1 = 'ld' chained node
/*470684*/      OPC_CheckFoldableChainNode,
/*470685*/      OPC_RecordChild1, // #2 = $src2
/*470686*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*470688*/      OPC_CheckPredicate, 9, // Predicate_load
/*470690*/      OPC_MoveParent,
/*470691*/      OPC_CheckType, MVT::v8i16,
/*470693*/      OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*470695*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*470698*/      OPC_EmitMergeInputChains1_1,
/*470699*/      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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                // Dst: (VPSHLWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*470711*/    /*Scope*/ 34, /*->470746*/
/*470712*/      OPC_MoveChild0,
/*470713*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*470716*/      OPC_RecordMemRef,
/*470717*/      OPC_RecordNode, // #0 = 'ld' chained node
/*470718*/      OPC_CheckFoldableChainNode,
/*470719*/      OPC_RecordChild1, // #1 = $src1
/*470720*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*470722*/      OPC_CheckPredicate, 9, // Predicate_load
/*470724*/      OPC_MoveParent,
/*470725*/      OPC_RecordChild1, // #2 = $src2
/*470726*/      OPC_CheckType, MVT::v8i16,
/*470728*/      OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*470730*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*470733*/      OPC_EmitMergeInputChains1_0,
/*470734*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPSHLWmr), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i16, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                // Src: (X86vpshl:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v8i16] }:$src2) - Complexity = 25
                // Dst: (VPSHLWmr:{ *:[v8i16] } addr:{ *:[iPTR] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*470746*/    /*Scope*/ 52, /*->470799*/
/*470747*/      OPC_RecordChild0, // #0 = $src1
/*470748*/      OPC_RecordChild1, // #1 = $src2
/*470749*/      OPC_SwitchType /*4 cases */, 10, MVT::v16i8,// ->470762
/*470752*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*470754*/        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)
/*470762*/      /*SwitchType*/ 10, MVT::v4i32,// ->470774
/*470764*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*470766*/        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)
/*470774*/      /*SwitchType*/ 10, MVT::v2i64,// ->470786
/*470776*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*470778*/        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)
/*470786*/      /*SwitchType*/ 10, MVT::v8i16,// ->470798
/*470788*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*470790*/        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)
/*470798*/      0, // EndSwitchType
/*470799*/    0, /*End of Scope*/
/*470800*/  /*SwitchOpcode*/ 85, TARGET_VAL(X86ISD::VPPERM),// ->470888
/*470803*/    OPC_RecordChild0, // #0 = $src1
/*470804*/    OPC_Scope, 33, /*->470839*/ // 3 children in Scope
/*470806*/      OPC_RecordChild1, // #1 = $src2
/*470807*/      OPC_MoveChild2,
/*470808*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*470811*/      OPC_RecordMemRef,
/*470812*/      OPC_RecordNode, // #2 = 'ld' chained node
/*470813*/      OPC_CheckFoldableChainNode,
/*470814*/      OPC_RecordChild1, // #3 = $src3
/*470815*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*470817*/      OPC_CheckPredicate, 9, // Predicate_load
/*470819*/      OPC_MoveParent,
/*470820*/      OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*470822*/      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*470825*/      OPC_EmitMergeInputChains1_2,
/*470826*/      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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                // Dst: (VPPERMrrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2, addr:{ *:[iPTR] }:$src3)
/*470839*/    /*Scope*/ 33, /*->470873*/
/*470840*/      OPC_MoveChild1,
/*470841*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*470844*/      OPC_RecordMemRef,
/*470845*/      OPC_RecordNode, // #1 = 'ld' chained node
/*470846*/      OPC_CheckFoldableChainNode,
/*470847*/      OPC_RecordChild1, // #2 = $src2
/*470848*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*470850*/      OPC_CheckPredicate, 9, // Predicate_load
/*470852*/      OPC_MoveParent,
/*470853*/      OPC_RecordChild2, // #3 = $src3
/*470854*/      OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*470856*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*470859*/      OPC_EmitMergeInputChains1_1,
/*470860*/      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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v16i8] }:$src3) - Complexity = 25
                // Dst: (VPPERMrmr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v16i8] }:$src3)
/*470873*/    /*Scope*/ 13, /*->470887*/
/*470874*/      OPC_RecordChild1, // #1 = $src2
/*470875*/      OPC_RecordChild2, // #2 = $src3
/*470876*/      OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*470878*/      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)
/*470887*/    0, /*End of Scope*/
/*470888*/  /*SwitchOpcode*/ 79|128,14/*1871*/, TARGET_VAL(X86ISD::UNPCKL),// ->472763
/*470892*/    OPC_RecordChild0, // #0 = $src1
/*470893*/    OPC_Scope, 59|128,5/*699*/, /*->471595*/ // 4 children in Scope
/*470896*/      OPC_MoveChild1,
/*470897*/      OPC_SwitchOpcode /*2 cases */, 38|128,4/*550*/, TARGET_VAL(ISD::LOAD),// ->471452
/*470902*/        OPC_RecordMemRef,
/*470903*/        OPC_RecordNode, // #1 = 'ld' chained node
/*470904*/        OPC_CheckFoldableChainNode,
/*470905*/        OPC_RecordChild1, // #2 = $src2
/*470906*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*470908*/        OPC_CheckPredicate, 9, // Predicate_load
/*470910*/        OPC_Scope, 79|128,1/*207*/, /*->471120*/ // 3 children in Scope
/*470913*/          OPC_MoveParent,
/*470914*/          OPC_SwitchType /*8 cases */, 40, MVT::v8i32,// ->470957
/*470917*/            OPC_Scope, 18, /*->470937*/ // 2 children in Scope
/*470919*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*470921*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*470924*/              OPC_EmitMergeInputChains1_1,
/*470925*/              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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VUNPCKLPSYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*470937*/            /*Scope*/ 18, /*->470956*/
/*470938*/              OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*470940*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*470943*/              OPC_EmitMergeInputChains1_1,
/*470944*/              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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VPUNPCKLDQYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*470956*/            0, /*End of Scope*/
/*470957*/          /*SwitchType*/ 40, MVT::v4i64,// ->470999
/*470959*/            OPC_Scope, 18, /*->470979*/ // 2 children in Scope
/*470961*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*470963*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*470966*/              OPC_EmitMergeInputChains1_1,
/*470967*/              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>>) - Complexity = 25
                        // Dst: (VUNPCKLPDYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*470979*/            /*Scope*/ 18, /*->470998*/
/*470980*/              OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*470982*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*470985*/              OPC_EmitMergeInputChains1_1,
/*470986*/              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>>) - Complexity = 25
                        // Dst: (VPUNPCKLQDQYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*470998*/            0, /*End of Scope*/
/*470999*/          /*SwitchType*/ 18, MVT::v16i8,// ->471019
/*471001*/            OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*471003*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*471006*/            OPC_EmitMergeInputChains1_1,
/*471007*/            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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPUNPCKLBWrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*471019*/          /*SwitchType*/ 18, MVT::v8i16,// ->471039
/*471021*/            OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*471023*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*471026*/            OPC_EmitMergeInputChains1_1,
/*471027*/            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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPUNPCKLWDrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*471039*/          /*SwitchType*/ 18, MVT::v4i32,// ->471059
/*471041*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*471043*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*471046*/            OPC_EmitMergeInputChains1_1,
/*471047*/            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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPUNPCKLDQrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*471059*/          /*SwitchType*/ 18, MVT::v2i64,// ->471079
/*471061*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*471063*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*471066*/            OPC_EmitMergeInputChains1_1,
/*471067*/            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>>) - Complexity = 25
                      // Dst: (VPUNPCKLQDQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*471079*/          /*SwitchType*/ 18, MVT::v32i8,// ->471099
/*471081*/            OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*471083*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*471086*/            OPC_EmitMergeInputChains1_1,
/*471087*/            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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPUNPCKLBWYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*471099*/          /*SwitchType*/ 18, MVT::v16i16,// ->471119
/*471101*/            OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*471103*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*471106*/            OPC_EmitMergeInputChains1_1,
/*471107*/            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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPUNPCKLWDYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*471119*/          0, // EndSwitchType
/*471120*/        /*Scope*/ 85, /*->471206*/
/*471121*/          OPC_CheckPredicate, 39, // Predicate_memop
/*471123*/          OPC_MoveParent,
/*471124*/          OPC_SwitchType /*4 cases */, 18, MVT::v16i8,// ->471145
/*471127*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*471129*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*471132*/            OPC_EmitMergeInputChains1_1,
/*471133*/            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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                      // Dst: (PUNPCKLBWrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*471145*/          /*SwitchType*/ 18, MVT::v8i16,// ->471165
/*471147*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*471149*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*471152*/            OPC_EmitMergeInputChains1_1,
/*471153*/            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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                      // Dst: (PUNPCKLWDrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*471165*/          /*SwitchType*/ 18, MVT::v4i32,// ->471185
/*471167*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*471169*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*471172*/            OPC_EmitMergeInputChains1_1,
/*471173*/            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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                      // Dst: (PUNPCKLDQrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*471185*/          /*SwitchType*/ 18, MVT::v2i64,// ->471205
/*471187*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*471189*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*471192*/            OPC_EmitMergeInputChains1_1,
/*471193*/            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_memop>>) - Complexity = 25
                      // Dst: (PUNPCKLQDQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*471205*/          0, // EndSwitchType
/*471206*/        /*Scope*/ 115|128,1/*243*/, /*->471451*/
/*471208*/          OPC_MoveParent,
/*471209*/          OPC_SwitchType /*12 cases */, 18, MVT::v64i8,// ->471230
/*471212*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*471214*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*471217*/            OPC_EmitMergeInputChains1_1,
/*471218*/            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, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPUNPCKLBWZrm:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*471230*/          /*SwitchType*/ 18, MVT::v32i8,// ->471250
/*471232*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*471234*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*471237*/            OPC_EmitMergeInputChains1_1,
/*471238*/            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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPUNPCKLBWZ256rm:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*471250*/          /*SwitchType*/ 18, MVT::v16i8,// ->471270
/*471252*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*471254*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*471257*/            OPC_EmitMergeInputChains1_1,
/*471258*/            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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPUNPCKLBWZ128rm:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*471270*/          /*SwitchType*/ 18, MVT::v32i16,// ->471290
/*471272*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*471274*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*471277*/            OPC_EmitMergeInputChains1_1,
/*471278*/            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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPUNPCKLWDZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*471290*/          /*SwitchType*/ 18, MVT::v16i16,// ->471310
/*471292*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*471294*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*471297*/            OPC_EmitMergeInputChains1_1,
/*471298*/            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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPUNPCKLWDZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*471310*/          /*SwitchType*/ 18, MVT::v8i16,// ->471330
/*471312*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*471314*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*471317*/            OPC_EmitMergeInputChains1_1,
/*471318*/            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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPUNPCKLWDZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*471330*/          /*SwitchType*/ 18, MVT::v16i32,// ->471350
/*471332*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*471334*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*471337*/            OPC_EmitMergeInputChains1_1,
/*471338*/            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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPUNPCKLDQZrm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*471350*/          /*SwitchType*/ 18, MVT::v8i32,// ->471370
/*471352*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*471354*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*471357*/            OPC_EmitMergeInputChains1_1,
/*471358*/            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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPUNPCKLDQZ256rm:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*471370*/          /*SwitchType*/ 18, MVT::v4i32,// ->471390
/*471372*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*471374*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*471377*/            OPC_EmitMergeInputChains1_1,
/*471378*/            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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPUNPCKLDQZ128rm:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*471390*/          /*SwitchType*/ 18, MVT::v8i64,// ->471410
/*471392*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*471394*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*471397*/            OPC_EmitMergeInputChains1_1,
/*471398*/            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>>) - Complexity = 25
                      // Dst: (VPUNPCKLQDQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*471410*/          /*SwitchType*/ 18, MVT::v4i64,// ->471430
/*471412*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*471414*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*471417*/            OPC_EmitMergeInputChains1_1,
/*471418*/            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>>) - Complexity = 25
                      // Dst: (VPUNPCKLQDQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*471430*/          /*SwitchType*/ 18, MVT::v2i64,// ->471450
/*471432*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*471434*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*471437*/            OPC_EmitMergeInputChains1_1,
/*471438*/            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>>) - Complexity = 25
                      // Dst: (VPUNPCKLQDQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*471450*/          0, // EndSwitchType
/*471451*/        0, /*End of Scope*/
/*471452*/      /*SwitchOpcode*/ 10|128,1/*138*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->471594
/*471456*/        OPC_RecordMemRef,
/*471457*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*471458*/        OPC_CheckFoldableChainNode,
/*471459*/        OPC_RecordChild1, // #2 = $src2
/*471460*/        OPC_Scope, 65, /*->471527*/ // 2 children in Scope
/*471462*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*471464*/          OPC_MoveParent,
/*471465*/          OPC_SwitchType /*3 cases */, 18, MVT::v16i32,// ->471486
/*471468*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*471470*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*471473*/            OPC_EmitMergeInputChains1_1,
/*471474*/            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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPUNPCKLDQZrmb:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*471486*/          /*SwitchType*/ 18, MVT::v8i32,// ->471506
/*471488*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*471490*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*471493*/            OPC_EmitMergeInputChains1_1,
/*471494*/            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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPUNPCKLDQZ256rmb:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*471506*/          /*SwitchType*/ 18, MVT::v4i32,// ->471526
/*471508*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*471510*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*471513*/            OPC_EmitMergeInputChains1_1,
/*471514*/            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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPUNPCKLDQZ128rmb:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*471526*/          0, // EndSwitchType
/*471527*/        /*Scope*/ 65, /*->471593*/
/*471528*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*471530*/          OPC_MoveParent,
/*471531*/          OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->471552
/*471534*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*471536*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*471539*/            OPC_EmitMergeInputChains1_1,
/*471540*/            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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPUNPCKLQDQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*471552*/          /*SwitchType*/ 18, MVT::v4i64,// ->471572
/*471554*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*471556*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*471559*/            OPC_EmitMergeInputChains1_1,
/*471560*/            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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPUNPCKLQDQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*471572*/          /*SwitchType*/ 18, MVT::v2i64,// ->471592
/*471574*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*471576*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*471579*/            OPC_EmitMergeInputChains1_1,
/*471580*/            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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPUNPCKLQDQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*471592*/          0, // EndSwitchType
/*471593*/        0, /*End of Scope*/
/*471594*/      0, // EndSwitchOpcode
/*471595*/    /*Scope*/ 69|128,2/*325*/, /*->471922*/
/*471597*/      OPC_RecordChild1, // #1 = $src2
/*471598*/      OPC_SwitchType /*12 cases */, 35, MVT::v8i32,// ->471636
/*471601*/        OPC_Scope, 10, /*->471613*/ // 3 children in Scope
/*471603*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*471605*/          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)
/*471613*/        /*Scope*/ 10, /*->471624*/
/*471614*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*471616*/          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)
/*471624*/        /*Scope*/ 10, /*->471635*/
/*471625*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*471627*/          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)
/*471635*/        0, /*End of Scope*/
/*471636*/      /*SwitchType*/ 35, MVT::v4i64,// ->471673
/*471638*/        OPC_Scope, 10, /*->471650*/ // 3 children in Scope
/*471640*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*471642*/          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)
/*471650*/        /*Scope*/ 10, /*->471661*/
/*471651*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*471653*/          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)
/*471661*/        /*Scope*/ 10, /*->471672*/
/*471662*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*471664*/          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)
/*471672*/        0, /*End of Scope*/
/*471673*/      /*SwitchType*/ 35, MVT::v16i8,// ->471710
/*471675*/        OPC_Scope, 10, /*->471687*/ // 3 children in Scope
/*471677*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*471679*/          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)
/*471687*/        /*Scope*/ 10, /*->471698*/
/*471688*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*471690*/          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)
/*471698*/        /*Scope*/ 10, /*->471709*/
/*471699*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*471701*/          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)
/*471709*/        0, /*End of Scope*/
/*471710*/      /*SwitchType*/ 35, MVT::v8i16,// ->471747
/*471712*/        OPC_Scope, 10, /*->471724*/ // 3 children in Scope
/*471714*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*471716*/          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)
/*471724*/        /*Scope*/ 10, /*->471735*/
/*471725*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*471727*/          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)
/*471735*/        /*Scope*/ 10, /*->471746*/
/*471736*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*471738*/          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)
/*471746*/        0, /*End of Scope*/
/*471747*/      /*SwitchType*/ 35, MVT::v4i32,// ->471784
/*471749*/        OPC_Scope, 10, /*->471761*/ // 3 children in Scope
/*471751*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*471753*/          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)
/*471761*/        /*Scope*/ 10, /*->471772*/
/*471762*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*471764*/          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)
/*471772*/        /*Scope*/ 10, /*->471783*/
/*471773*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*471775*/          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)
/*471783*/        0, /*End of Scope*/
/*471784*/      /*SwitchType*/ 35, MVT::v2i64,// ->471821
/*471786*/        OPC_Scope, 10, /*->471798*/ // 3 children in Scope
/*471788*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*471790*/          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)
/*471798*/        /*Scope*/ 10, /*->471809*/
/*471799*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*471801*/          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)
/*471809*/        /*Scope*/ 10, /*->471820*/
/*471810*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*471812*/          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)
/*471820*/        0, /*End of Scope*/
/*471821*/      /*SwitchType*/ 24, MVT::v32i8,// ->471847
/*471823*/        OPC_Scope, 10, /*->471835*/ // 2 children in Scope
/*471825*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*471827*/          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)
/*471835*/        /*Scope*/ 10, /*->471846*/
/*471836*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*471838*/          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)
/*471846*/        0, /*End of Scope*/
/*471847*/      /*SwitchType*/ 24, MVT::v16i16,// ->471873
/*471849*/        OPC_Scope, 10, /*->471861*/ // 2 children in Scope
/*471851*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*471853*/          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)
/*471861*/        /*Scope*/ 10, /*->471872*/
/*471862*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*471864*/          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)
/*471872*/        0, /*End of Scope*/
/*471873*/      /*SwitchType*/ 10, MVT::v64i8,// ->471885
/*471875*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*471877*/        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)
/*471885*/      /*SwitchType*/ 10, MVT::v32i16,// ->471897
/*471887*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*471889*/        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)
/*471897*/      /*SwitchType*/ 10, MVT::v16i32,// ->471909
/*471899*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*471901*/        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)
/*471909*/      /*SwitchType*/ 10, MVT::v8i64,// ->471921
/*471911*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*471913*/        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)
/*471921*/      0, // EndSwitchType
/*471922*/    /*Scope*/ 43|128,5/*683*/, /*->472607*/
/*471924*/      OPC_MoveChild1,
/*471925*/      OPC_SwitchOpcode /*5 cases */, 84, TARGET_VAL(ISD::BITCAST),// ->472013
/*471929*/        OPC_MoveChild0,
/*471930*/        OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*471933*/        OPC_MoveChild0,
/*471934*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*471937*/        OPC_RecordMemRef,
/*471938*/        OPC_RecordNode, // #1 = 'ld' chained node
/*471939*/        OPC_CheckFoldableChainNode,
/*471940*/        OPC_RecordChild1, // #2 = $src2
/*471941*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*471943*/        OPC_CheckPredicate, 9, // Predicate_load
/*471945*/        OPC_CheckType, MVT::i64,
/*471947*/        OPC_MoveParent,
/*471948*/        OPC_CheckType, MVT::v2i64,
/*471950*/        OPC_MoveParent,
/*471951*/        OPC_MoveParent,
/*471952*/        OPC_CheckType, MVT::v2f64,
/*471954*/        OPC_Scope, 18, /*->471974*/ // 3 children in Scope
/*471956*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*471958*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*471961*/          OPC_EmitMergeInputChains1_1,
/*471962*/          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)
/*471974*/        /*Scope*/ 18, /*->471993*/
/*471975*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*471977*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*471980*/          OPC_EmitMergeInputChains1_1,
/*471981*/          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)
/*471993*/        /*Scope*/ 18, /*->472012*/
/*471994*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*471996*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*471999*/          OPC_EmitMergeInputChains1_1,
/*472000*/          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)
/*472012*/        0, /*End of Scope*/
/*472013*/      /*SwitchOpcode*/ 77, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->472093
/*472016*/        OPC_MoveChild0,
/*472017*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*472020*/        OPC_RecordMemRef,
/*472021*/        OPC_RecordNode, // #1 = 'ld' chained node
/*472022*/        OPC_CheckFoldableChainNode,
/*472023*/        OPC_RecordChild1, // #2 = $src2
/*472024*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*472026*/        OPC_CheckPredicate, 9, // Predicate_load
/*472028*/        OPC_CheckType, MVT::f64,
/*472030*/        OPC_MoveParent,
/*472031*/        OPC_MoveParent,
/*472032*/        OPC_CheckType, MVT::v2f64,
/*472034*/        OPC_Scope, 18, /*->472054*/ // 3 children in Scope
/*472036*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*472038*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*472041*/          OPC_EmitMergeInputChains1_1,
/*472042*/          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)
/*472054*/        /*Scope*/ 18, /*->472073*/
/*472055*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*472057*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*472060*/          OPC_EmitMergeInputChains1_1,
/*472061*/          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)
/*472073*/        /*Scope*/ 18, /*->472092*/
/*472074*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*472076*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*472079*/          OPC_EmitMergeInputChains1_1,
/*472080*/          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)
/*472092*/        0, /*End of Scope*/
/*472093*/      /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VZEXT_LOAD),// ->472164
/*472096*/        OPC_RecordMemRef,
/*472097*/        OPC_RecordNode, // #1 = 'X86vzld' chained node
/*472098*/        OPC_CheckFoldableChainNode,
/*472099*/        OPC_RecordChild1, // #2 = $src2
/*472100*/        OPC_CheckPredicate, 49, // Predicate_X86vzload64
/*472102*/        OPC_MoveParent,
/*472103*/        OPC_CheckType, MVT::v2f64,
/*472105*/        OPC_Scope, 18, /*->472125*/ // 3 children in Scope
/*472107*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*472109*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*472112*/          OPC_EmitMergeInputChains1_1,
/*472113*/          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, (X86vzld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86vzload64>>) - Complexity = 25
                    // Dst: (VMOVHPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*472125*/        /*Scope*/ 18, /*->472144*/
/*472126*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*472128*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*472131*/          OPC_EmitMergeInputChains1_1,
/*472132*/          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, (X86vzld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86vzload64>>) - Complexity = 25
                    // Dst: (MOVHPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*472144*/        /*Scope*/ 18, /*->472163*/
/*472145*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*472147*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*472150*/          OPC_EmitMergeInputChains1_1,
/*472151*/          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, (X86vzld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86vzload64>>) - Complexity = 25
                    // Dst: (VMOVHPDZ128rm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*472163*/        0, /*End of Scope*/
/*472164*/      /*SwitchOpcode*/ 32|128,2/*288*/, TARGET_VAL(ISD::LOAD),// ->472456
/*472168*/        OPC_RecordMemRef,
/*472169*/        OPC_RecordNode, // #1 = 'ld' chained node
/*472170*/        OPC_CheckFoldableChainNode,
/*472171*/        OPC_RecordChild1, // #2 = $src2
/*472172*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*472174*/        OPC_CheckPredicate, 9, // Predicate_load
/*472176*/        OPC_Scope, 83, /*->472261*/ // 4 children in Scope
/*472178*/          OPC_MoveParent,
/*472179*/          OPC_SwitchType /*4 cases */, 18, MVT::v4f32,// ->472200
/*472182*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*472184*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*472187*/            OPC_EmitMergeInputChains1_1,
/*472188*/            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>>) - Complexity = 25
                      // Dst: (VUNPCKLPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*472200*/          /*SwitchType*/ 18, MVT::v2f64,// ->472220
/*472202*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*472204*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*472207*/            OPC_EmitMergeInputChains1_1,
/*472208*/            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>>) - Complexity = 25
                      // Dst: (VUNPCKLPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*472220*/          /*SwitchType*/ 18, MVT::v8f32,// ->472240
/*472222*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*472224*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*472227*/            OPC_EmitMergeInputChains1_1,
/*472228*/            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>>) - Complexity = 25
                      // Dst: (VUNPCKLPSYrm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*472240*/          /*SwitchType*/ 18, MVT::v4f64,// ->472260
/*472242*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*472244*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*472247*/            OPC_EmitMergeInputChains1_1,
/*472248*/            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>>) - Complexity = 25
                      // Dst: (VUNPCKLPDYrm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*472260*/          0, // EndSwitchType
/*472261*/        /*Scope*/ 45, /*->472307*/
/*472262*/          OPC_CheckPredicate, 39, // Predicate_memop
/*472264*/          OPC_MoveParent,
/*472265*/          OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->472286
/*472268*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*472270*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*472273*/            OPC_EmitMergeInputChains1_1,
/*472274*/            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_memop>>) - Complexity = 25
                      // Dst: (UNPCKLPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*472286*/          /*SwitchType*/ 18, MVT::v2f64,// ->472306
/*472288*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*472290*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*472293*/            OPC_EmitMergeInputChains1_1,
/*472294*/            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_memop>>) - Complexity = 25
                      // Dst: (UNPCKLPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*472306*/          0, // EndSwitchType
/*472307*/        /*Scope*/ 23, /*->472331*/
/*472308*/          OPC_CheckPredicate, 58, // Predicate_simple_load
/*472310*/          OPC_MoveParent,
/*472311*/          OPC_CheckType, MVT::v2f64,
/*472313*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*472315*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*472318*/          OPC_EmitMergeInputChains1_1,
/*472319*/          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, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_simple_load>>) - Complexity = 25
                    // Dst: (MOVHPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*472331*/        /*Scope*/ 123, /*->472455*/
/*472332*/          OPC_MoveParent,
/*472333*/          OPC_SwitchType /*6 cases */, 18, MVT::v16f32,// ->472354
/*472336*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*472338*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*472341*/            OPC_EmitMergeInputChains1_1,
/*472342*/            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>>) - Complexity = 25
                      // Dst: (VUNPCKLPSZrm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*472354*/          /*SwitchType*/ 18, MVT::v8f64,// ->472374
/*472356*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*472358*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*472361*/            OPC_EmitMergeInputChains1_1,
/*472362*/            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>>) - Complexity = 25
                      // Dst: (VUNPCKLPDZrm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*472374*/          /*SwitchType*/ 18, MVT::v4f32,// ->472394
/*472376*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*472378*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*472381*/            OPC_EmitMergeInputChains1_1,
/*472382*/            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>>) - Complexity = 25
                      // Dst: (VUNPCKLPSZ128rm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*472394*/          /*SwitchType*/ 18, MVT::v8f32,// ->472414
/*472396*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*472398*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*472401*/            OPC_EmitMergeInputChains1_1,
/*472402*/            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>>) - Complexity = 25
                      // Dst: (VUNPCKLPSZ256rm:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*472414*/          /*SwitchType*/ 18, MVT::v2f64,// ->472434
/*472416*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*472418*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*472421*/            OPC_EmitMergeInputChains1_1,
/*472422*/            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>>) - Complexity = 25
                      // Dst: (VUNPCKLPDZ128rm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*472434*/          /*SwitchType*/ 18, MVT::v4f64,// ->472454
/*472436*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*472438*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*472441*/            OPC_EmitMergeInputChains1_1,
/*472442*/            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>>) - Complexity = 25
                      // Dst: (VUNPCKLPDZ256rm:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*472454*/          0, // EndSwitchType
/*472455*/        0, /*End of Scope*/
/*472456*/      /*SwitchOpcode*/ 18|128,1/*146*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->472606
/*472460*/        OPC_RecordMemRef,
/*472461*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*472462*/        OPC_CheckFoldableChainNode,
/*472463*/        OPC_RecordChild1, // #2 = $src2
/*472464*/        OPC_Scope, 23, /*->472489*/ // 4 children in Scope
/*472466*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*472468*/          OPC_MoveParent,
/*472469*/          OPC_CheckType, MVT::v16f32,
/*472471*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*472473*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*472476*/          OPC_EmitMergeInputChains1_1,
/*472477*/          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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                    // Dst: (VUNPCKLPSZrmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*472489*/        /*Scope*/ 23, /*->472513*/
/*472490*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*472492*/          OPC_MoveParent,
/*472493*/          OPC_CheckType, MVT::v8f64,
/*472495*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*472497*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*472500*/          OPC_EmitMergeInputChains1_1,
/*472501*/          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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                    // Dst: (VUNPCKLPDZrmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*472513*/        /*Scope*/ 45, /*->472559*/
/*472514*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*472516*/          OPC_MoveParent,
/*472517*/          OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->472538
/*472520*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*472522*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*472525*/            OPC_EmitMergeInputChains1_1,
/*472526*/            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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VUNPCKLPSZ128rmb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*472538*/          /*SwitchType*/ 18, MVT::v8f32,// ->472558
/*472540*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*472542*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*472545*/            OPC_EmitMergeInputChains1_1,
/*472546*/            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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VUNPCKLPSZ256rmb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*472558*/          0, // EndSwitchType
/*472559*/        /*Scope*/ 45, /*->472605*/
/*472560*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*472562*/          OPC_MoveParent,
/*472563*/          OPC_SwitchType /*2 cases */, 18, MVT::v2f64,// ->472584
/*472566*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*472568*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*472571*/            OPC_EmitMergeInputChains1_1,
/*472572*/            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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VUNPCKLPDZ128rmb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*472584*/          /*SwitchType*/ 18, MVT::v4f64,// ->472604
/*472586*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*472588*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*472591*/            OPC_EmitMergeInputChains1_1,
/*472592*/            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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VUNPCKLPDZ256rmb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*472604*/          0, // EndSwitchType
/*472605*/        0, /*End of Scope*/
/*472606*/      0, // EndSwitchOpcode
/*472607*/    /*Scope*/ 25|128,1/*153*/, /*->472762*/
/*472609*/      OPC_RecordChild1, // #1 = $src2
/*472610*/      OPC_SwitchType /*6 cases */, 35, MVT::v4f32,// ->472648
/*472613*/        OPC_Scope, 10, /*->472625*/ // 3 children in Scope
/*472615*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*472617*/          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)
/*472625*/        /*Scope*/ 10, /*->472636*/
/*472626*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*472628*/          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)
/*472636*/        /*Scope*/ 10, /*->472647*/
/*472637*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*472639*/          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)
/*472647*/        0, /*End of Scope*/
/*472648*/      /*SwitchType*/ 35, MVT::v2f64,// ->472685
/*472650*/        OPC_Scope, 10, /*->472662*/ // 3 children in Scope
/*472652*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*472654*/          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)
/*472662*/        /*Scope*/ 10, /*->472673*/
/*472663*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*472665*/          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)
/*472673*/        /*Scope*/ 10, /*->472684*/
/*472674*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*472676*/          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)
/*472684*/        0, /*End of Scope*/
/*472685*/      /*SwitchType*/ 24, MVT::v8f32,// ->472711
/*472687*/        OPC_Scope, 10, /*->472699*/ // 2 children in Scope
/*472689*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*472691*/          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)
/*472699*/        /*Scope*/ 10, /*->472710*/
/*472700*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*472702*/          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)
/*472710*/        0, /*End of Scope*/
/*472711*/      /*SwitchType*/ 24, MVT::v4f64,// ->472737
/*472713*/        OPC_Scope, 10, /*->472725*/ // 2 children in Scope
/*472715*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*472717*/          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)
/*472725*/        /*Scope*/ 10, /*->472736*/
/*472726*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*472728*/          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)
/*472736*/        0, /*End of Scope*/
/*472737*/      /*SwitchType*/ 10, MVT::v16f32,// ->472749
/*472739*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*472741*/        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)
/*472749*/      /*SwitchType*/ 10, MVT::v8f64,// ->472761
/*472751*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*472753*/        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)
/*472761*/      0, // EndSwitchType
/*472762*/    0, /*End of Scope*/
/*472763*/  /*SwitchOpcode*/ 73|128,12/*1609*/, TARGET_VAL(X86ISD::UNPCKH),// ->474376
/*472767*/    OPC_RecordChild0, // #0 = $src1
/*472768*/    OPC_Scope, 59|128,5/*699*/, /*->473470*/ // 4 children in Scope
/*472771*/      OPC_MoveChild1,
/*472772*/      OPC_SwitchOpcode /*2 cases */, 38|128,4/*550*/, TARGET_VAL(ISD::LOAD),// ->473327
/*472777*/        OPC_RecordMemRef,
/*472778*/        OPC_RecordNode, // #1 = 'ld' chained node
/*472779*/        OPC_CheckFoldableChainNode,
/*472780*/        OPC_RecordChild1, // #2 = $src2
/*472781*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*472783*/        OPC_CheckPredicate, 9, // Predicate_load
/*472785*/        OPC_Scope, 79|128,1/*207*/, /*->472995*/ // 3 children in Scope
/*472788*/          OPC_MoveParent,
/*472789*/          OPC_SwitchType /*8 cases */, 40, MVT::v8i32,// ->472832
/*472792*/            OPC_Scope, 18, /*->472812*/ // 2 children in Scope
/*472794*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*472796*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*472799*/              OPC_EmitMergeInputChains1_1,
/*472800*/              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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VUNPCKHPSYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*472812*/            /*Scope*/ 18, /*->472831*/
/*472813*/              OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*472815*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*472818*/              OPC_EmitMergeInputChains1_1,
/*472819*/              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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VPUNPCKHDQYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*472831*/            0, /*End of Scope*/
/*472832*/          /*SwitchType*/ 40, MVT::v4i64,// ->472874
/*472834*/            OPC_Scope, 18, /*->472854*/ // 2 children in Scope
/*472836*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*472838*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*472841*/              OPC_EmitMergeInputChains1_1,
/*472842*/              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>>) - Complexity = 25
                        // Dst: (VUNPCKHPDYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*472854*/            /*Scope*/ 18, /*->472873*/
/*472855*/              OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*472857*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*472860*/              OPC_EmitMergeInputChains1_1,
/*472861*/              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>>) - Complexity = 25
                        // Dst: (VPUNPCKHQDQYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*472873*/            0, /*End of Scope*/
/*472874*/          /*SwitchType*/ 18, MVT::v16i8,// ->472894
/*472876*/            OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*472878*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*472881*/            OPC_EmitMergeInputChains1_1,
/*472882*/            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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPUNPCKHBWrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*472894*/          /*SwitchType*/ 18, MVT::v8i16,// ->472914
/*472896*/            OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*472898*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*472901*/            OPC_EmitMergeInputChains1_1,
/*472902*/            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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPUNPCKHWDrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*472914*/          /*SwitchType*/ 18, MVT::v4i32,// ->472934
/*472916*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*472918*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*472921*/            OPC_EmitMergeInputChains1_1,
/*472922*/            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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPUNPCKHDQrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*472934*/          /*SwitchType*/ 18, MVT::v2i64,// ->472954
/*472936*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*472938*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*472941*/            OPC_EmitMergeInputChains1_1,
/*472942*/            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>>) - Complexity = 25
                      // Dst: (VPUNPCKHQDQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*472954*/          /*SwitchType*/ 18, MVT::v32i8,// ->472974
/*472956*/            OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*472958*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*472961*/            OPC_EmitMergeInputChains1_1,
/*472962*/            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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPUNPCKHBWYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*472974*/          /*SwitchType*/ 18, MVT::v16i16,// ->472994
/*472976*/            OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*472978*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*472981*/            OPC_EmitMergeInputChains1_1,
/*472982*/            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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPUNPCKHWDYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*472994*/          0, // EndSwitchType
/*472995*/        /*Scope*/ 85, /*->473081*/
/*472996*/          OPC_CheckPredicate, 39, // Predicate_memop
/*472998*/          OPC_MoveParent,
/*472999*/          OPC_SwitchType /*4 cases */, 18, MVT::v16i8,// ->473020
/*473002*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*473004*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*473007*/            OPC_EmitMergeInputChains1_1,
/*473008*/            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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                      // Dst: (PUNPCKHBWrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*473020*/          /*SwitchType*/ 18, MVT::v8i16,// ->473040
/*473022*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*473024*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*473027*/            OPC_EmitMergeInputChains1_1,
/*473028*/            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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                      // Dst: (PUNPCKHWDrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*473040*/          /*SwitchType*/ 18, MVT::v4i32,// ->473060
/*473042*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*473044*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*473047*/            OPC_EmitMergeInputChains1_1,
/*473048*/            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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                      // Dst: (PUNPCKHDQrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*473060*/          /*SwitchType*/ 18, MVT::v2i64,// ->473080
/*473062*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*473064*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*473067*/            OPC_EmitMergeInputChains1_1,
/*473068*/            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_memop>>) - Complexity = 25
                      // Dst: (PUNPCKHQDQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*473080*/          0, // EndSwitchType
/*473081*/        /*Scope*/ 115|128,1/*243*/, /*->473326*/
/*473083*/          OPC_MoveParent,
/*473084*/          OPC_SwitchType /*12 cases */, 18, MVT::v64i8,// ->473105
/*473087*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*473089*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*473092*/            OPC_EmitMergeInputChains1_1,
/*473093*/            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, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPUNPCKHBWZrm:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*473105*/          /*SwitchType*/ 18, MVT::v32i8,// ->473125
/*473107*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*473109*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*473112*/            OPC_EmitMergeInputChains1_1,
/*473113*/            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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPUNPCKHBWZ256rm:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*473125*/          /*SwitchType*/ 18, MVT::v16i8,// ->473145
/*473127*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*473129*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*473132*/            OPC_EmitMergeInputChains1_1,
/*473133*/            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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPUNPCKHBWZ128rm:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*473145*/          /*SwitchType*/ 18, MVT::v32i16,// ->473165
/*473147*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*473149*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*473152*/            OPC_EmitMergeInputChains1_1,
/*473153*/            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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPUNPCKHWDZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*473165*/          /*SwitchType*/ 18, MVT::v16i16,// ->473185
/*473167*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*473169*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*473172*/            OPC_EmitMergeInputChains1_1,
/*473173*/            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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPUNPCKHWDZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*473185*/          /*SwitchType*/ 18, MVT::v8i16,// ->473205
/*473187*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*473189*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*473192*/            OPC_EmitMergeInputChains1_1,
/*473193*/            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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPUNPCKHWDZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*473205*/          /*SwitchType*/ 18, MVT::v16i32,// ->473225
/*473207*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*473209*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*473212*/            OPC_EmitMergeInputChains1_1,
/*473213*/            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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPUNPCKHDQZrm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*473225*/          /*SwitchType*/ 18, MVT::v8i32,// ->473245
/*473227*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*473229*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*473232*/            OPC_EmitMergeInputChains1_1,
/*473233*/            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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPUNPCKHDQZ256rm:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*473245*/          /*SwitchType*/ 18, MVT::v4i32,// ->473265
/*473247*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*473249*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*473252*/            OPC_EmitMergeInputChains1_1,
/*473253*/            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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPUNPCKHDQZ128rm:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*473265*/          /*SwitchType*/ 18, MVT::v8i64,// ->473285
/*473267*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*473269*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*473272*/            OPC_EmitMergeInputChains1_1,
/*473273*/            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>>) - Complexity = 25
                      // Dst: (VPUNPCKHQDQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*473285*/          /*SwitchType*/ 18, MVT::v4i64,// ->473305
/*473287*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*473289*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*473292*/            OPC_EmitMergeInputChains1_1,
/*473293*/            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>>) - Complexity = 25
                      // Dst: (VPUNPCKHQDQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*473305*/          /*SwitchType*/ 18, MVT::v2i64,// ->473325
/*473307*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*473309*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*473312*/            OPC_EmitMergeInputChains1_1,
/*473313*/            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>>) - Complexity = 25
                      // Dst: (VPUNPCKHQDQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*473325*/          0, // EndSwitchType
/*473326*/        0, /*End of Scope*/
/*473327*/      /*SwitchOpcode*/ 10|128,1/*138*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->473469
/*473331*/        OPC_RecordMemRef,
/*473332*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*473333*/        OPC_CheckFoldableChainNode,
/*473334*/        OPC_RecordChild1, // #2 = $src2
/*473335*/        OPC_Scope, 65, /*->473402*/ // 2 children in Scope
/*473337*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*473339*/          OPC_MoveParent,
/*473340*/          OPC_SwitchType /*3 cases */, 18, MVT::v16i32,// ->473361
/*473343*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*473345*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*473348*/            OPC_EmitMergeInputChains1_1,
/*473349*/            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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPUNPCKHDQZrmb:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*473361*/          /*SwitchType*/ 18, MVT::v8i32,// ->473381
/*473363*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*473365*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*473368*/            OPC_EmitMergeInputChains1_1,
/*473369*/            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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPUNPCKHDQZ256rmb:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*473381*/          /*SwitchType*/ 18, MVT::v4i32,// ->473401
/*473383*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*473385*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*473388*/            OPC_EmitMergeInputChains1_1,
/*473389*/            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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPUNPCKHDQZ128rmb:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*473401*/          0, // EndSwitchType
/*473402*/        /*Scope*/ 65, /*->473468*/
/*473403*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*473405*/          OPC_MoveParent,
/*473406*/          OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->473427
/*473409*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*473411*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*473414*/            OPC_EmitMergeInputChains1_1,
/*473415*/            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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPUNPCKHQDQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*473427*/          /*SwitchType*/ 18, MVT::v4i64,// ->473447
/*473429*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*473431*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*473434*/            OPC_EmitMergeInputChains1_1,
/*473435*/            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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPUNPCKHQDQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*473447*/          /*SwitchType*/ 18, MVT::v2i64,// ->473467
/*473449*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*473451*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*473454*/            OPC_EmitMergeInputChains1_1,
/*473455*/            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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPUNPCKHQDQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*473467*/          0, // EndSwitchType
/*473468*/        0, /*End of Scope*/
/*473469*/      0, // EndSwitchOpcode
/*473470*/    /*Scope*/ 69|128,2/*325*/, /*->473797*/
/*473472*/      OPC_RecordChild1, // #1 = $src2
/*473473*/      OPC_SwitchType /*12 cases */, 35, MVT::v8i32,// ->473511
/*473476*/        OPC_Scope, 10, /*->473488*/ // 3 children in Scope
/*473478*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*473480*/          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)
/*473488*/        /*Scope*/ 10, /*->473499*/
/*473489*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*473491*/          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)
/*473499*/        /*Scope*/ 10, /*->473510*/
/*473500*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*473502*/          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)
/*473510*/        0, /*End of Scope*/
/*473511*/      /*SwitchType*/ 35, MVT::v4i64,// ->473548
/*473513*/        OPC_Scope, 10, /*->473525*/ // 3 children in Scope
/*473515*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*473517*/          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)
/*473525*/        /*Scope*/ 10, /*->473536*/
/*473526*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*473528*/          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)
/*473536*/        /*Scope*/ 10, /*->473547*/
/*473537*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*473539*/          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)
/*473547*/        0, /*End of Scope*/
/*473548*/      /*SwitchType*/ 35, MVT::v16i8,// ->473585
/*473550*/        OPC_Scope, 10, /*->473562*/ // 3 children in Scope
/*473552*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*473554*/          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)
/*473562*/        /*Scope*/ 10, /*->473573*/
/*473563*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*473565*/          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)
/*473573*/        /*Scope*/ 10, /*->473584*/
/*473574*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*473576*/          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)
/*473584*/        0, /*End of Scope*/
/*473585*/      /*SwitchType*/ 35, MVT::v8i16,// ->473622
/*473587*/        OPC_Scope, 10, /*->473599*/ // 3 children in Scope
/*473589*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*473591*/          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)
/*473599*/        /*Scope*/ 10, /*->473610*/
/*473600*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*473602*/          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)
/*473610*/        /*Scope*/ 10, /*->473621*/
/*473611*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*473613*/          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)
/*473621*/        0, /*End of Scope*/
/*473622*/      /*SwitchType*/ 35, MVT::v4i32,// ->473659
/*473624*/        OPC_Scope, 10, /*->473636*/ // 3 children in Scope
/*473626*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*473628*/          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)
/*473636*/        /*Scope*/ 10, /*->473647*/
/*473637*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*473639*/          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)
/*473647*/        /*Scope*/ 10, /*->473658*/
/*473648*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*473650*/          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)
/*473658*/        0, /*End of Scope*/
/*473659*/      /*SwitchType*/ 35, MVT::v2i64,// ->473696
/*473661*/        OPC_Scope, 10, /*->473673*/ // 3 children in Scope
/*473663*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*473665*/          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)
/*473673*/        /*Scope*/ 10, /*->473684*/
/*473674*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*473676*/          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)
/*473684*/        /*Scope*/ 10, /*->473695*/
/*473685*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*473687*/          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)
/*473695*/        0, /*End of Scope*/
/*473696*/      /*SwitchType*/ 24, MVT::v32i8,// ->473722
/*473698*/        OPC_Scope, 10, /*->473710*/ // 2 children in Scope
/*473700*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*473702*/          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)
/*473710*/        /*Scope*/ 10, /*->473721*/
/*473711*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*473713*/          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)
/*473721*/        0, /*End of Scope*/
/*473722*/      /*SwitchType*/ 24, MVT::v16i16,// ->473748
/*473724*/        OPC_Scope, 10, /*->473736*/ // 2 children in Scope
/*473726*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*473728*/          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)
/*473736*/        /*Scope*/ 10, /*->473747*/
/*473737*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*473739*/          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)
/*473747*/        0, /*End of Scope*/
/*473748*/      /*SwitchType*/ 10, MVT::v64i8,// ->473760
/*473750*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*473752*/        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)
/*473760*/      /*SwitchType*/ 10, MVT::v32i16,// ->473772
/*473762*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*473764*/        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)
/*473772*/      /*SwitchType*/ 10, MVT::v16i32,// ->473784
/*473774*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*473776*/        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)
/*473784*/      /*SwitchType*/ 10, MVT::v8i64,// ->473796
/*473786*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*473788*/        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)
/*473796*/      0, // EndSwitchType
/*473797*/    /*Scope*/ 37|128,3/*421*/, /*->474220*/
/*473799*/      OPC_MoveChild1,
/*473800*/      OPC_SwitchOpcode /*2 cases */, 8|128,2/*264*/, TARGET_VAL(ISD::LOAD),// ->474069
/*473805*/        OPC_RecordMemRef,
/*473806*/        OPC_RecordNode, // #1 = 'ld' chained node
/*473807*/        OPC_CheckFoldableChainNode,
/*473808*/        OPC_RecordChild1, // #2 = $src2
/*473809*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*473811*/        OPC_CheckPredicate, 9, // Predicate_load
/*473813*/        OPC_Scope, 83, /*->473898*/ // 3 children in Scope
/*473815*/          OPC_MoveParent,
/*473816*/          OPC_SwitchType /*4 cases */, 18, MVT::v4f32,// ->473837
/*473819*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*473821*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*473824*/            OPC_EmitMergeInputChains1_1,
/*473825*/            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>>) - Complexity = 25
                      // Dst: (VUNPCKHPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*473837*/          /*SwitchType*/ 18, MVT::v2f64,// ->473857
/*473839*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*473841*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*473844*/            OPC_EmitMergeInputChains1_1,
/*473845*/            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>>) - Complexity = 25
                      // Dst: (VUNPCKHPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*473857*/          /*SwitchType*/ 18, MVT::v8f32,// ->473877
/*473859*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*473861*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*473864*/            OPC_EmitMergeInputChains1_1,
/*473865*/            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>>) - Complexity = 25
                      // Dst: (VUNPCKHPSYrm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*473877*/          /*SwitchType*/ 18, MVT::v4f64,// ->473897
/*473879*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*473881*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*473884*/            OPC_EmitMergeInputChains1_1,
/*473885*/            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>>) - Complexity = 25
                      // Dst: (VUNPCKHPDYrm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*473897*/          0, // EndSwitchType
/*473898*/        /*Scope*/ 45, /*->473944*/
/*473899*/          OPC_CheckPredicate, 39, // Predicate_memop
/*473901*/          OPC_MoveParent,
/*473902*/          OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->473923
/*473905*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*473907*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*473910*/            OPC_EmitMergeInputChains1_1,
/*473911*/            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_memop>>) - Complexity = 25
                      // Dst: (UNPCKHPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*473923*/          /*SwitchType*/ 18, MVT::v2f64,// ->473943
/*473925*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*473927*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*473930*/            OPC_EmitMergeInputChains1_1,
/*473931*/            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_memop>>) - Complexity = 25
                      // Dst: (UNPCKHPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*473943*/          0, // EndSwitchType
/*473944*/        /*Scope*/ 123, /*->474068*/
/*473945*/          OPC_MoveParent,
/*473946*/          OPC_SwitchType /*6 cases */, 18, MVT::v16f32,// ->473967
/*473949*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*473951*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*473954*/            OPC_EmitMergeInputChains1_1,
/*473955*/            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>>) - Complexity = 25
                      // Dst: (VUNPCKHPSZrm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*473967*/          /*SwitchType*/ 18, MVT::v8f64,// ->473987
/*473969*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*473971*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*473974*/            OPC_EmitMergeInputChains1_1,
/*473975*/            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>>) - Complexity = 25
                      // Dst: (VUNPCKHPDZrm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*473987*/          /*SwitchType*/ 18, MVT::v4f32,// ->474007
/*473989*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*473991*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*473994*/            OPC_EmitMergeInputChains1_1,
/*473995*/            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>>) - Complexity = 25
                      // Dst: (VUNPCKHPSZ128rm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*474007*/          /*SwitchType*/ 18, MVT::v8f32,// ->474027
/*474009*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*474011*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*474014*/            OPC_EmitMergeInputChains1_1,
/*474015*/            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>>) - Complexity = 25
                      // Dst: (VUNPCKHPSZ256rm:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*474027*/          /*SwitchType*/ 18, MVT::v2f64,// ->474047
/*474029*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*474031*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*474034*/            OPC_EmitMergeInputChains1_1,
/*474035*/            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>>) - Complexity = 25
                      // Dst: (VUNPCKHPDZ128rm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*474047*/          /*SwitchType*/ 18, MVT::v4f64,// ->474067
/*474049*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*474051*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*474054*/            OPC_EmitMergeInputChains1_1,
/*474055*/            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>>) - Complexity = 25
                      // Dst: (VUNPCKHPDZ256rm:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*474067*/          0, // EndSwitchType
/*474068*/        0, /*End of Scope*/
/*474069*/      /*SwitchOpcode*/ 18|128,1/*146*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->474219
/*474073*/        OPC_RecordMemRef,
/*474074*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*474075*/        OPC_CheckFoldableChainNode,
/*474076*/        OPC_RecordChild1, // #2 = $src2
/*474077*/        OPC_Scope, 23, /*->474102*/ // 4 children in Scope
/*474079*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*474081*/          OPC_MoveParent,
/*474082*/          OPC_CheckType, MVT::v16f32,
/*474084*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*474086*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*474089*/          OPC_EmitMergeInputChains1_1,
/*474090*/          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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                    // Dst: (VUNPCKHPSZrmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*474102*/        /*Scope*/ 23, /*->474126*/
/*474103*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*474105*/          OPC_MoveParent,
/*474106*/          OPC_CheckType, MVT::v8f64,
/*474108*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*474110*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*474113*/          OPC_EmitMergeInputChains1_1,
/*474114*/          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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                    // Dst: (VUNPCKHPDZrmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*474126*/        /*Scope*/ 45, /*->474172*/
/*474127*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*474129*/          OPC_MoveParent,
/*474130*/          OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->474151
/*474133*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*474135*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*474138*/            OPC_EmitMergeInputChains1_1,
/*474139*/            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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VUNPCKHPSZ128rmb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*474151*/          /*SwitchType*/ 18, MVT::v8f32,// ->474171
/*474153*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*474155*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*474158*/            OPC_EmitMergeInputChains1_1,
/*474159*/            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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VUNPCKHPSZ256rmb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*474171*/          0, // EndSwitchType
/*474172*/        /*Scope*/ 45, /*->474218*/
/*474173*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*474175*/          OPC_MoveParent,
/*474176*/          OPC_SwitchType /*2 cases */, 18, MVT::v2f64,// ->474197
/*474179*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*474181*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*474184*/            OPC_EmitMergeInputChains1_1,
/*474185*/            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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VUNPCKHPDZ128rmb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*474197*/          /*SwitchType*/ 18, MVT::v4f64,// ->474217
/*474199*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*474201*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*474204*/            OPC_EmitMergeInputChains1_1,
/*474205*/            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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VUNPCKHPDZ256rmb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*474217*/          0, // EndSwitchType
/*474218*/        0, /*End of Scope*/
/*474219*/      0, // EndSwitchOpcode
/*474220*/    /*Scope*/ 25|128,1/*153*/, /*->474375*/
/*474222*/      OPC_RecordChild1, // #1 = $src2
/*474223*/      OPC_SwitchType /*6 cases */, 35, MVT::v4f32,// ->474261
/*474226*/        OPC_Scope, 10, /*->474238*/ // 3 children in Scope
/*474228*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*474230*/          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)
/*474238*/        /*Scope*/ 10, /*->474249*/
/*474239*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*474241*/          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)
/*474249*/        /*Scope*/ 10, /*->474260*/
/*474250*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*474252*/          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)
/*474260*/        0, /*End of Scope*/
/*474261*/      /*SwitchType*/ 35, MVT::v2f64,// ->474298
/*474263*/        OPC_Scope, 10, /*->474275*/ // 3 children in Scope
/*474265*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*474267*/          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)
/*474275*/        /*Scope*/ 10, /*->474286*/
/*474276*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*474278*/          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)
/*474286*/        /*Scope*/ 10, /*->474297*/
/*474287*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*474289*/          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)
/*474297*/        0, /*End of Scope*/
/*474298*/      /*SwitchType*/ 24, MVT::v8f32,// ->474324
/*474300*/        OPC_Scope, 10, /*->474312*/ // 2 children in Scope
/*474302*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*474304*/          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)
/*474312*/        /*Scope*/ 10, /*->474323*/
/*474313*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*474315*/          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)
/*474323*/        0, /*End of Scope*/
/*474324*/      /*SwitchType*/ 24, MVT::v4f64,// ->474350
/*474326*/        OPC_Scope, 10, /*->474338*/ // 2 children in Scope
/*474328*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*474330*/          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)
/*474338*/        /*Scope*/ 10, /*->474349*/
/*474339*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*474341*/          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)
/*474349*/        0, /*End of Scope*/
/*474350*/      /*SwitchType*/ 10, MVT::v16f32,// ->474362
/*474352*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*474354*/        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)
/*474362*/      /*SwitchType*/ 10, MVT::v8f64,// ->474374
/*474364*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*474366*/        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)
/*474374*/      0, // EndSwitchType
/*474375*/    0, /*End of Scope*/
/*474376*/  /*SwitchOpcode*/ 79|128,8/*1103*/, TARGET_VAL(X86ISD::ANDNP),// ->475483
/*474380*/    OPC_RecordChild0, // #0 = $src1
/*474381*/    OPC_Scope, 109|128,5/*749*/, /*->475133*/ // 2 children in Scope
/*474384*/      OPC_MoveChild1,
/*474385*/      OPC_SwitchOpcode /*2 cases */, 88|128,4/*600*/, TARGET_VAL(ISD::LOAD),// ->474990
/*474390*/        OPC_RecordMemRef,
/*474391*/        OPC_RecordNode, // #1 = 'ld' chained node
/*474392*/        OPC_CheckFoldableChainNode,
/*474393*/        OPC_RecordChild1, // #2 = $src2
/*474394*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*474396*/        OPC_CheckPredicate, 9, // Predicate_load
/*474398*/        OPC_Scope, 21, /*->474421*/ // 5 children in Scope
/*474400*/          OPC_MoveParent,
/*474401*/          OPC_CheckType, MVT::v2i64,
/*474403*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*474405*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*474408*/          OPC_EmitMergeInputChains1_1,
/*474409*/          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>>) - Complexity = 25
                    // Dst: (VPANDNrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*474421*/        /*Scope*/ 23, /*->474445*/
/*474422*/          OPC_CheckPredicate, 39, // Predicate_memop
/*474424*/          OPC_MoveParent,
/*474425*/          OPC_CheckType, MVT::v2i64,
/*474427*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*474429*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*474432*/          OPC_EmitMergeInputChains1_1,
/*474433*/          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_memop>>) - Complexity = 25
                    // Dst: (PANDNrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*474445*/        /*Scope*/ 103|128,1/*231*/, /*->474678*/
/*474447*/          OPC_MoveParent,
/*474448*/          OPC_SwitchType /*7 cases */, 40, MVT::v4i64,// ->474491
/*474451*/            OPC_Scope, 18, /*->474471*/ // 2 children in Scope
/*474453*/              OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*474455*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*474458*/              OPC_EmitMergeInputChains1_1,
/*474459*/              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>>) - Complexity = 25
                        // Dst: (VPANDNYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*474471*/            /*Scope*/ 18, /*->474490*/
/*474472*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*474474*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*474477*/              OPC_EmitMergeInputChains1_1,
/*474478*/              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>>) - Complexity = 25
                        // Dst: (VANDNPSYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*474490*/            0, /*End of Scope*/
/*474491*/          /*SwitchType*/ 40, MVT::v32i8,// ->474533
/*474493*/            OPC_Scope, 18, /*->474513*/ // 2 children in Scope
/*474495*/              OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*474497*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*474500*/              OPC_EmitMergeInputChains1_1,
/*474501*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86andnp:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VPANDNYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*474513*/            /*Scope*/ 18, /*->474532*/
/*474514*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*474516*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*474519*/              OPC_EmitMergeInputChains1_1,
/*474520*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VANDNPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v32i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86andnp:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VANDNPSYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*474532*/            0, /*End of Scope*/
/*474533*/          /*SwitchType*/ 40, MVT::v16i16,// ->474575
/*474535*/            OPC_Scope, 18, /*->474555*/ // 2 children in Scope
/*474537*/              OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*474539*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*474542*/              OPC_EmitMergeInputChains1_1,
/*474543*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86andnp:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VPANDNYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*474555*/            /*Scope*/ 18, /*->474574*/
/*474556*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*474558*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*474561*/              OPC_EmitMergeInputChains1_1,
/*474562*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VANDNPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86andnp:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VANDNPSYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*474574*/            0, /*End of Scope*/
/*474575*/          /*SwitchType*/ 40, MVT::v8i32,// ->474617
/*474577*/            OPC_Scope, 18, /*->474597*/ // 2 children in Scope
/*474579*/              OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*474581*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*474584*/              OPC_EmitMergeInputChains1_1,
/*474585*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86andnp:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VPANDNYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*474597*/            /*Scope*/ 18, /*->474616*/
/*474598*/              OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*474600*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*474603*/              OPC_EmitMergeInputChains1_1,
/*474604*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VANDNPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                        // Src: (X86andnp:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VANDNPSYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*474616*/            0, /*End of Scope*/
/*474617*/          /*SwitchType*/ 18, MVT::v16i8,// ->474637
/*474619*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*474621*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*474624*/            OPC_EmitMergeInputChains1_1,
/*474625*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86andnp:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPANDNrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*474637*/          /*SwitchType*/ 18, MVT::v8i16,// ->474657
/*474639*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*474641*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*474644*/            OPC_EmitMergeInputChains1_1,
/*474645*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86andnp:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPANDNrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*474657*/          /*SwitchType*/ 18, MVT::v4i32,// ->474677
/*474659*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*474661*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*474664*/            OPC_EmitMergeInputChains1_1,
/*474665*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86andnp:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPANDNrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*474677*/          0, // EndSwitchType
/*474678*/        /*Scope*/ 65, /*->474744*/
/*474679*/          OPC_CheckPredicate, 39, // Predicate_memop
/*474681*/          OPC_MoveParent,
/*474682*/          OPC_SwitchType /*3 cases */, 18, MVT::v16i8,// ->474703
/*474685*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*474687*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*474690*/            OPC_EmitMergeInputChains1_1,
/*474691*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86andnp:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                      // Dst: (PANDNrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*474703*/          /*SwitchType*/ 18, MVT::v8i16,// ->474723
/*474705*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*474707*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*474710*/            OPC_EmitMergeInputChains1_1,
/*474711*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86andnp:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                      // Dst: (PANDNrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*474723*/          /*SwitchType*/ 18, MVT::v4i32,// ->474743
/*474725*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*474727*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*474730*/            OPC_EmitMergeInputChains1_1,
/*474731*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PANDNrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86andnp:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                      // Dst: (PANDNrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*474743*/          0, // EndSwitchType
/*474744*/        /*Scope*/ 115|128,1/*243*/, /*->474989*/
/*474746*/          OPC_MoveParent,
/*474747*/          OPC_SwitchType /*12 cases */, 18, MVT::v8i64,// ->474768
/*474750*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*474752*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*474755*/            OPC_EmitMergeInputChains1_1,
/*474756*/            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>>) - Complexity = 25
                      // Dst: (VPANDNQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*474768*/          /*SwitchType*/ 18, MVT::v4i64,// ->474788
/*474770*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*474772*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*474775*/            OPC_EmitMergeInputChains1_1,
/*474776*/            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>>) - Complexity = 25
                      // Dst: (VPANDNQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*474788*/          /*SwitchType*/ 18, MVT::v2i64,// ->474808
/*474790*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*474792*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*474795*/            OPC_EmitMergeInputChains1_1,
/*474796*/            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>>) - Complexity = 25
                      // Dst: (VPANDNQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*474808*/          /*SwitchType*/ 18, MVT::v16i32,// ->474828
/*474810*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*474812*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*474815*/            OPC_EmitMergeInputChains1_1,
/*474816*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86andnp:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPANDNDZrm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*474828*/          /*SwitchType*/ 18, MVT::v8i32,// ->474848
/*474830*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*474832*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*474835*/            OPC_EmitMergeInputChains1_1,
/*474836*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86andnp:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPANDNDZ256rm:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*474848*/          /*SwitchType*/ 18, MVT::v4i32,// ->474868
/*474850*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*474852*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*474855*/            OPC_EmitMergeInputChains1_1,
/*474856*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86andnp:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPANDNDZ128rm:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*474868*/          /*SwitchType*/ 18, MVT::v16i8,// ->474888
/*474870*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*474872*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*474875*/            OPC_EmitMergeInputChains1_1,
/*474876*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86andnp:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPANDNQZ128rm:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*474888*/          /*SwitchType*/ 18, MVT::v8i16,// ->474908
/*474890*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*474892*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*474895*/            OPC_EmitMergeInputChains1_1,
/*474896*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86andnp:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPANDNQZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*474908*/          /*SwitchType*/ 18, MVT::v32i8,// ->474928
/*474910*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*474912*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*474915*/            OPC_EmitMergeInputChains1_1,
/*474916*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86andnp:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPANDNQZ256rm:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*474928*/          /*SwitchType*/ 18, MVT::v16i16,// ->474948
/*474930*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*474932*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*474935*/            OPC_EmitMergeInputChains1_1,
/*474936*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86andnp:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPANDNQZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*474948*/          /*SwitchType*/ 18, MVT::v64i8,// ->474968
/*474950*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*474952*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*474955*/            OPC_EmitMergeInputChains1_1,
/*474956*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86andnp:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPANDNQZrm:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*474968*/          /*SwitchType*/ 18, MVT::v32i16,// ->474988
/*474970*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*474972*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*474975*/            OPC_EmitMergeInputChains1_1,
/*474976*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86andnp:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPANDNQZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*474988*/          0, // EndSwitchType
/*474989*/        0, /*End of Scope*/
/*474990*/      /*SwitchOpcode*/ 10|128,1/*138*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->475132
/*474994*/        OPC_RecordMemRef,
/*474995*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*474996*/        OPC_CheckFoldableChainNode,
/*474997*/        OPC_RecordChild1, // #2 = $src2
/*474998*/        OPC_Scope, 65, /*->475065*/ // 2 children in Scope
/*475000*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*475002*/          OPC_MoveParent,
/*475003*/          OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->475024
/*475006*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*475008*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*475011*/            OPC_EmitMergeInputChains1_1,
/*475012*/            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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPANDNQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*475024*/          /*SwitchType*/ 18, MVT::v4i64,// ->475044
/*475026*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*475028*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*475031*/            OPC_EmitMergeInputChains1_1,
/*475032*/            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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPANDNQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*475044*/          /*SwitchType*/ 18, MVT::v2i64,// ->475064
/*475046*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*475048*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*475051*/            OPC_EmitMergeInputChains1_1,
/*475052*/            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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPANDNQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*475064*/          0, // EndSwitchType
/*475065*/        /*Scope*/ 65, /*->475131*/
/*475066*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*475068*/          OPC_MoveParent,
/*475069*/          OPC_SwitchType /*3 cases */, 18, MVT::v16i32,// ->475090
/*475072*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*475074*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*475077*/            OPC_EmitMergeInputChains1_1,
/*475078*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86andnp:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPANDNDZrmb:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*475090*/          /*SwitchType*/ 18, MVT::v8i32,// ->475110
/*475092*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*475094*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*475097*/            OPC_EmitMergeInputChains1_1,
/*475098*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86andnp:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPANDNDZ256rmb:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*475110*/          /*SwitchType*/ 18, MVT::v4i32,// ->475130
/*475112*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*475114*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*475117*/            OPC_EmitMergeInputChains1_1,
/*475118*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86andnp:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPANDNDZ128rmb:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*475130*/          0, // EndSwitchType
/*475131*/        0, /*End of Scope*/
/*475132*/      0, // EndSwitchOpcode
/*475133*/    /*Scope*/ 91|128,2/*347*/, /*->475482*/
/*475135*/      OPC_RecordChild1, // #1 = $src2
/*475136*/      OPC_SwitchType /*12 cases */, 35, MVT::v2i64,// ->475174
/*475139*/        OPC_Scope, 10, /*->475151*/ // 3 children in Scope
/*475141*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*475143*/          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)
/*475151*/        /*Scope*/ 10, /*->475162*/
/*475152*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*475154*/          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)
/*475162*/        /*Scope*/ 10, /*->475173*/
/*475163*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*475165*/          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)
/*475173*/        0, /*End of Scope*/
/*475174*/      /*SwitchType*/ 35, MVT::v4i64,// ->475211
/*475176*/        OPC_Scope, 10, /*->475188*/ // 3 children in Scope
/*475178*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*475180*/          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)
/*475188*/        /*Scope*/ 10, /*->475199*/
/*475189*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*475191*/          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)
/*475199*/        /*Scope*/ 10, /*->475210*/
/*475200*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*475202*/          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)
/*475210*/        0, /*End of Scope*/
/*475211*/      /*SwitchType*/ 35, MVT::v32i8,// ->475248
/*475213*/        OPC_Scope, 10, /*->475225*/ // 3 children in Scope
/*475215*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*475217*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNYrr), 0,
                        MVT::v32i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86andnp:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2) - Complexity = 3
                    // Dst: (VPANDNYrr:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2)
/*475225*/        /*Scope*/ 10, /*->475236*/
/*475226*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*475228*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VANDNPSYrr), 0,
                        MVT::v32i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86andnp:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2) - Complexity = 3
                    // Dst: (VANDNPSYrr:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2)
/*475236*/        /*Scope*/ 10, /*->475247*/
/*475237*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*475239*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZ256rr), 0,
                        MVT::v32i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86andnp:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2) - Complexity = 3
                    // Dst: (VPANDNQZ256rr:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*475247*/        0, /*End of Scope*/
/*475248*/      /*SwitchType*/ 35, MVT::v16i16,// ->475285
/*475250*/        OPC_Scope, 10, /*->475262*/ // 3 children in Scope
/*475252*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*475254*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNYrr), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86andnp:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2) - Complexity = 3
                    // Dst: (VPANDNYrr:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2)
/*475262*/        /*Scope*/ 10, /*->475273*/
/*475263*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*475265*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VANDNPSYrr), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86andnp:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2) - Complexity = 3
                    // Dst: (VANDNPSYrr:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2)
/*475273*/        /*Scope*/ 10, /*->475284*/
/*475274*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*475276*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZ256rr), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86andnp:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2) - Complexity = 3
                    // Dst: (VPANDNQZ256rr:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*475284*/        0, /*End of Scope*/
/*475285*/      /*SwitchType*/ 35, MVT::v8i32,// ->475322
/*475287*/        OPC_Scope, 10, /*->475299*/ // 3 children in Scope
/*475289*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*475291*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNYrr), 0,
                        MVT::v8i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86andnp:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2) - Complexity = 3
                    // Dst: (VPANDNYrr:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2)
/*475299*/        /*Scope*/ 10, /*->475310*/
/*475300*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*475302*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VANDNPSYrr), 0,
                        MVT::v8i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86andnp:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2) - Complexity = 3
                    // Dst: (VANDNPSYrr:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2)
/*475310*/        /*Scope*/ 10, /*->475321*/
/*475311*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*475313*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZ256rr), 0,
                        MVT::v8i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86andnp:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2) - Complexity = 3
                    // Dst: (VPANDNDZ256rr:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*475321*/        0, /*End of Scope*/
/*475322*/      /*SwitchType*/ 35, MVT::v16i8,// ->475359
/*475324*/        OPC_Scope, 10, /*->475336*/ // 3 children in Scope
/*475326*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*475328*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNrr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86andnp:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (VPANDNrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)
/*475336*/        /*Scope*/ 10, /*->475347*/
/*475337*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*475339*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PANDNrr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86andnp:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (PANDNrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)
/*475347*/        /*Scope*/ 10, /*->475358*/
/*475348*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*475350*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZ128rr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (X86andnp:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (VPANDNQZ128rr:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*475358*/        0, /*End of Scope*/
/*475359*/      /*SwitchType*/ 35, MVT::v8i16,// ->475396
/*475361*/        OPC_Scope, 10, /*->475373*/ // 3 children in Scope
/*475363*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*475365*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86andnp:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (VPANDNrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*475373*/        /*Scope*/ 10, /*->475384*/
/*475374*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*475376*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PANDNrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86andnp:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (PANDNrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*475384*/        /*Scope*/ 10, /*->475395*/
/*475385*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*475387*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZ128rr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86andnp:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (VPANDNQZ128rr:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*475395*/        0, /*End of Scope*/
/*475396*/      /*SwitchType*/ 35, MVT::v4i32,// ->475433
/*475398*/        OPC_Scope, 10, /*->475410*/ // 3 children in Scope
/*475400*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*475402*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNrr), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86andnp:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 3
                    // Dst: (VPANDNrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/*475410*/        /*Scope*/ 10, /*->475421*/
/*475411*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*475413*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PANDNrr), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86andnp:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 3
                    // Dst: (PANDNrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/*475421*/        /*Scope*/ 10, /*->475432*/
/*475422*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*475424*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZ128rr), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86andnp:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2) - Complexity = 3
                    // Dst: (VPANDNDZ128rr:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*475432*/        0, /*End of Scope*/
/*475433*/      /*SwitchType*/ 10, MVT::v8i64,// ->475445
/*475435*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*475437*/        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)
/*475445*/      /*SwitchType*/ 10, MVT::v16i32,// ->475457
/*475447*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*475449*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNDZrr), 0,
                      MVT::v16i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86andnp:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2) - Complexity = 3
                  // Dst: (VPANDNDZrr:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*475457*/      /*SwitchType*/ 10, MVT::v64i8,// ->475469
/*475459*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*475461*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZrr), 0,
                      MVT::v64i8, 2/*#Ops*/, 0, 1, 
                  // Src: (X86andnp:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2) - Complexity = 3
                  // Dst: (VPANDNQZrr:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*475469*/      /*SwitchType*/ 10, MVT::v32i16,// ->475481
/*475471*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*475473*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPANDNQZrr), 0,
                      MVT::v32i16, 2/*#Ops*/, 0, 1, 
                  // Src: (X86andnp:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2) - Complexity = 3
                  // Dst: (VPANDNQZrr:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*475481*/      0, // EndSwitchType
/*475482*/    0, /*End of Scope*/
/*475483*/  /*SwitchOpcode*/ 78|128,5/*718*/, TARGET_VAL(ISD::SADDSAT),// ->476205
/*475487*/    OPC_Scope, 20|128,2/*276*/, /*->475766*/ // 3 children in Scope
/*475490*/      OPC_RecordChild0, // #0 = $src1
/*475491*/      OPC_MoveChild1,
/*475492*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*475495*/      OPC_RecordMemRef,
/*475496*/      OPC_RecordNode, // #1 = 'ld' chained node
/*475497*/      OPC_CheckFoldableChainNode,
/*475498*/      OPC_RecordChild1, // #2 = $src2
/*475499*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*475501*/      OPC_CheckPredicate, 9, // Predicate_load
/*475503*/      OPC_Scope, 21, /*->475526*/ // 5 children in Scope
/*475505*/        OPC_MoveParent,
/*475506*/        OPC_CheckType, MVT::v16i8,
/*475508*/        OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*475510*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*475513*/        OPC_EmitMergeInputChains1_1,
/*475514*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (saddsat:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VPADDSBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*475526*/      /*Scope*/ 23, /*->475550*/
/*475527*/        OPC_CheckPredicate, 39, // Predicate_memop
/*475529*/        OPC_MoveParent,
/*475530*/        OPC_CheckType, MVT::v16i8,
/*475532*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*475534*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*475537*/        OPC_EmitMergeInputChains1_1,
/*475538*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PADDSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (saddsat:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (PADDSBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*475550*/      /*Scope*/ 43, /*->475594*/
/*475551*/        OPC_MoveParent,
/*475552*/        OPC_SwitchType /*2 cases */, 18, MVT::v32i8,// ->475573
/*475555*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*475557*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*475560*/          OPC_EmitMergeInputChains1_1,
/*475561*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSBYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (saddsat:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPADDSBYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*475573*/        /*SwitchType*/ 18, MVT::v8i16,// ->475593
/*475575*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*475577*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*475580*/          OPC_EmitMergeInputChains1_1,
/*475581*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (saddsat:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPADDSWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*475593*/        0, // EndSwitchType
/*475594*/      /*Scope*/ 23, /*->475618*/
/*475595*/        OPC_CheckPredicate, 39, // Predicate_memop
/*475597*/        OPC_MoveParent,
/*475598*/        OPC_CheckType, MVT::v8i16,
/*475600*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*475602*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*475605*/        OPC_EmitMergeInputChains1_1,
/*475606*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PADDSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (saddsat:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (PADDSWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*475618*/      /*Scope*/ 17|128,1/*145*/, /*->475765*/
/*475620*/        OPC_MoveParent,
/*475621*/        OPC_SwitchType /*6 cases */, 40, MVT::v16i16,// ->475664
/*475624*/          OPC_Scope, 18, /*->475644*/ // 2 children in Scope
/*475626*/            OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*475628*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*475631*/            OPC_EmitMergeInputChains1_1,
/*475632*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (saddsat:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPADDSWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*475644*/          /*Scope*/ 18, /*->475663*/
/*475645*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*475647*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*475650*/            OPC_EmitMergeInputChains1_1,
/*475651*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (saddsat:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPADDSWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*475663*/          0, /*End of Scope*/
/*475664*/        /*SwitchType*/ 18, MVT::v32i16,// ->475684
/*475666*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*475668*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*475671*/          OPC_EmitMergeInputChains1_1,
/*475672*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (saddsat:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPADDSWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*475684*/        /*SwitchType*/ 18, MVT::v8i16,// ->475704
/*475686*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*475688*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*475691*/          OPC_EmitMergeInputChains1_1,
/*475692*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (saddsat:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPADDSWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*475704*/        /*SwitchType*/ 18, MVT::v64i8,// ->475724
/*475706*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*475708*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*475711*/          OPC_EmitMergeInputChains1_1,
/*475712*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSBZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v64i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (saddsat:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPADDSBZrm:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*475724*/        /*SwitchType*/ 18, MVT::v32i8,// ->475744
/*475726*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*475728*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*475731*/          OPC_EmitMergeInputChains1_1,
/*475732*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSBZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (saddsat:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPADDSBZ256rm:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*475744*/        /*SwitchType*/ 18, MVT::v16i8,// ->475764
/*475746*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*475748*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*475751*/          OPC_EmitMergeInputChains1_1,
/*475752*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSBZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (saddsat:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPADDSBZ128rm:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*475764*/        0, // EndSwitchType
/*475765*/      0, /*End of Scope*/
/*475766*/    /*Scope*/ 24|128,2/*280*/, /*->476048*/
/*475768*/      OPC_MoveChild0,
/*475769*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*475772*/      OPC_RecordMemRef,
/*475773*/      OPC_RecordNode, // #0 = 'ld' chained node
/*475774*/      OPC_CheckFoldableChainNode,
/*475775*/      OPC_RecordChild1, // #1 = $src2
/*475776*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*475778*/      OPC_CheckPredicate, 9, // Predicate_load
/*475780*/      OPC_Scope, 22, /*->475804*/ // 5 children in Scope
/*475782*/        OPC_MoveParent,
/*475783*/        OPC_RecordChild1, // #2 = $src1
/*475784*/        OPC_CheckType, MVT::v16i8,
/*475786*/        OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*475788*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*475791*/        OPC_EmitMergeInputChains1_0,
/*475792*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (saddsat:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v16i8] }:$src1) - Complexity = 25
                  // Dst: (VPADDSBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*475804*/      /*Scope*/ 24, /*->475829*/
/*475805*/        OPC_CheckPredicate, 39, // Predicate_memop
/*475807*/        OPC_MoveParent,
/*475808*/        OPC_RecordChild1, // #2 = $src1
/*475809*/        OPC_CheckType, MVT::v16i8,
/*475811*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*475813*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*475816*/        OPC_EmitMergeInputChains1_0,
/*475817*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PADDSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (saddsat:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:{ *:[v16i8] }:$src1) - Complexity = 25
                  // Dst: (PADDSBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*475829*/      /*Scope*/ 44, /*->475874*/
/*475830*/        OPC_MoveParent,
/*475831*/        OPC_RecordChild1, // #2 = $src1
/*475832*/        OPC_SwitchType /*2 cases */, 18, MVT::v32i8,// ->475853
/*475835*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*475837*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*475840*/          OPC_EmitMergeInputChains1_0,
/*475841*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSBYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (saddsat:{ *:[v32i8] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v32i8] }:$src1) - Complexity = 25
                    // Dst: (VPADDSBYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*475853*/        /*SwitchType*/ 18, MVT::v8i16,// ->475873
/*475855*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*475857*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*475860*/          OPC_EmitMergeInputChains1_0,
/*475861*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (saddsat:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v8i16] }:$src1) - Complexity = 25
                    // Dst: (VPADDSWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*475873*/        0, // EndSwitchType
/*475874*/      /*Scope*/ 24, /*->475899*/
/*475875*/        OPC_CheckPredicate, 39, // Predicate_memop
/*475877*/        OPC_MoveParent,
/*475878*/        OPC_RecordChild1, // #2 = $src1
/*475879*/        OPC_CheckType, MVT::v8i16,
/*475881*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*475883*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*475886*/        OPC_EmitMergeInputChains1_0,
/*475887*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PADDSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (saddsat:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:{ *:[v8i16] }:$src1) - Complexity = 25
                  // Dst: (PADDSWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*475899*/      /*Scope*/ 18|128,1/*146*/, /*->476047*/
/*475901*/        OPC_MoveParent,
/*475902*/        OPC_RecordChild1, // #2 = $src1
/*475903*/        OPC_SwitchType /*6 cases */, 40, MVT::v16i16,// ->475946
/*475906*/          OPC_Scope, 18, /*->475926*/ // 2 children in Scope
/*475908*/            OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*475910*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*475913*/            OPC_EmitMergeInputChains1_0,
/*475914*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (saddsat:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v16i16] }:$src1) - Complexity = 25
                      // Dst: (VPADDSWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*475926*/          /*Scope*/ 18, /*->475945*/
/*475927*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*475929*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*475932*/            OPC_EmitMergeInputChains1_0,
/*475933*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (saddsat:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1) - Complexity = 25
                      // Dst: (VPADDSWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*475945*/          0, /*End of Scope*/
/*475946*/        /*SwitchType*/ 18, MVT::v32i16,// ->475966
/*475948*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*475950*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*475953*/          OPC_EmitMergeInputChains1_0,
/*475954*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (saddsat:{ *:[v32i16] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1) - Complexity = 25
                    // Dst: (VPADDSWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*475966*/        /*SwitchType*/ 18, MVT::v8i16,// ->475986
/*475968*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*475970*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*475973*/          OPC_EmitMergeInputChains1_0,
/*475974*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (saddsat:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1) - Complexity = 25
                    // Dst: (VPADDSWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*475986*/        /*SwitchType*/ 18, MVT::v64i8,// ->476006
/*475988*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*475990*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*475993*/          OPC_EmitMergeInputChains1_0,
/*475994*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSBZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v64i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (saddsat:{ *:[v64i8] } (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v64i8] }:$src1) - Complexity = 25
                    // Dst: (VPADDSBZrm:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*476006*/        /*SwitchType*/ 18, MVT::v32i8,// ->476026
/*476008*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*476010*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*476013*/          OPC_EmitMergeInputChains1_0,
/*476014*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSBZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (saddsat:{ *:[v32i8] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v32i8] }:$src1) - Complexity = 25
                    // Dst: (VPADDSBZ256rm:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*476026*/        /*SwitchType*/ 18, MVT::v16i8,// ->476046
/*476028*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*476030*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*476033*/          OPC_EmitMergeInputChains1_0,
/*476034*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSBZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (saddsat:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v16i8] }:$src1) - Complexity = 25
                    // Dst: (VPADDSBZ128rm:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*476046*/        0, // EndSwitchType
/*476047*/      0, /*End of Scope*/
/*476048*/    /*Scope*/ 26|128,1/*154*/, /*->476204*/
/*476050*/      OPC_RecordChild0, // #0 = $src1
/*476051*/      OPC_RecordChild1, // #1 = $src2
/*476052*/      OPC_SwitchType /*6 cases */, 35, MVT::v16i8,// ->476090
/*476055*/        OPC_Scope, 10, /*->476067*/ // 3 children in Scope
/*476057*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*476059*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSBrr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (saddsat:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (VPADDSBrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)
/*476067*/        /*Scope*/ 10, /*->476078*/
/*476068*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*476070*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PADDSBrr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (saddsat:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (PADDSBrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)
/*476078*/        /*Scope*/ 10, /*->476089*/
/*476079*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*476081*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSBZ128rr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (saddsat:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (VPADDSBZ128rr:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*476089*/        0, /*End of Scope*/
/*476090*/      /*SwitchType*/ 24, MVT::v32i8,// ->476116
/*476092*/        OPC_Scope, 10, /*->476104*/ // 2 children in Scope
/*476094*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*476096*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSBYrr), 0,
                        MVT::v32i8, 2/*#Ops*/, 0, 1, 
                    // Src: (saddsat:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2) - Complexity = 3
                    // Dst: (VPADDSBYrr:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2)
/*476104*/        /*Scope*/ 10, /*->476115*/
/*476105*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*476107*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSBZ256rr), 0,
                        MVT::v32i8, 2/*#Ops*/, 0, 1, 
                    // Src: (saddsat:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2) - Complexity = 3
                    // Dst: (VPADDSBZ256rr:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*476115*/        0, /*End of Scope*/
/*476116*/      /*SwitchType*/ 35, MVT::v8i16,// ->476153
/*476118*/        OPC_Scope, 10, /*->476130*/ // 3 children in Scope
/*476120*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*476122*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSWrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (saddsat:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (VPADDSWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*476130*/        /*Scope*/ 10, /*->476141*/
/*476131*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*476133*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PADDSWrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (saddsat:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (PADDSWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*476141*/        /*Scope*/ 10, /*->476152*/
/*476142*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*476144*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSWZ128rr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (saddsat:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (VPADDSWZ128rr:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*476152*/        0, /*End of Scope*/
/*476153*/      /*SwitchType*/ 24, MVT::v16i16,// ->476179
/*476155*/        OPC_Scope, 10, /*->476167*/ // 2 children in Scope
/*476157*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*476159*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSWYrr), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1, 
                    // Src: (saddsat:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2) - Complexity = 3
                    // Dst: (VPADDSWYrr:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2)
/*476167*/        /*Scope*/ 10, /*->476178*/
/*476168*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*476170*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSWZ256rr), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1, 
                    // Src: (saddsat:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2) - Complexity = 3
                    // Dst: (VPADDSWZ256rr:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*476178*/        0, /*End of Scope*/
/*476179*/      /*SwitchType*/ 10, MVT::v32i16,// ->476191
/*476181*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*476183*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSWZrr), 0,
                      MVT::v32i16, 2/*#Ops*/, 0, 1, 
                  // Src: (saddsat:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2) - Complexity = 3
                  // Dst: (VPADDSWZrr:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*476191*/      /*SwitchType*/ 10, MVT::v64i8,// ->476203
/*476193*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*476195*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDSBZrr), 0,
                      MVT::v64i8, 2/*#Ops*/, 0, 1, 
                  // Src: (saddsat:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2) - Complexity = 3
                  // Dst: (VPADDSBZrr:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*476203*/      0, // EndSwitchType
/*476204*/    0, /*End of Scope*/
/*476205*/  /*SwitchOpcode*/ 78|128,5/*718*/, TARGET_VAL(ISD::UADDSAT),// ->476927
/*476209*/    OPC_Scope, 20|128,2/*276*/, /*->476488*/ // 3 children in Scope
/*476212*/      OPC_RecordChild0, // #0 = $src1
/*476213*/      OPC_MoveChild1,
/*476214*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*476217*/      OPC_RecordMemRef,
/*476218*/      OPC_RecordNode, // #1 = 'ld' chained node
/*476219*/      OPC_CheckFoldableChainNode,
/*476220*/      OPC_RecordChild1, // #2 = $src2
/*476221*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*476223*/      OPC_CheckPredicate, 9, // Predicate_load
/*476225*/      OPC_Scope, 21, /*->476248*/ // 5 children in Scope
/*476227*/        OPC_MoveParent,
/*476228*/        OPC_CheckType, MVT::v16i8,
/*476230*/        OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*476232*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*476235*/        OPC_EmitMergeInputChains1_1,
/*476236*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (uaddsat:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VPADDUSBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*476248*/      /*Scope*/ 23, /*->476272*/
/*476249*/        OPC_CheckPredicate, 39, // Predicate_memop
/*476251*/        OPC_MoveParent,
/*476252*/        OPC_CheckType, MVT::v16i8,
/*476254*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*476256*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*476259*/        OPC_EmitMergeInputChains1_1,
/*476260*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PADDUSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (uaddsat:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (PADDUSBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*476272*/      /*Scope*/ 43, /*->476316*/
/*476273*/        OPC_MoveParent,
/*476274*/        OPC_SwitchType /*2 cases */, 18, MVT::v32i8,// ->476295
/*476277*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*476279*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*476282*/          OPC_EmitMergeInputChains1_1,
/*476283*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSBYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (uaddsat:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPADDUSBYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*476295*/        /*SwitchType*/ 18, MVT::v8i16,// ->476315
/*476297*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*476299*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*476302*/          OPC_EmitMergeInputChains1_1,
/*476303*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (uaddsat:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPADDUSWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*476315*/        0, // EndSwitchType
/*476316*/      /*Scope*/ 23, /*->476340*/
/*476317*/        OPC_CheckPredicate, 39, // Predicate_memop
/*476319*/        OPC_MoveParent,
/*476320*/        OPC_CheckType, MVT::v8i16,
/*476322*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*476324*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*476327*/        OPC_EmitMergeInputChains1_1,
/*476328*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PADDUSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (uaddsat:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (PADDUSWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*476340*/      /*Scope*/ 17|128,1/*145*/, /*->476487*/
/*476342*/        OPC_MoveParent,
/*476343*/        OPC_SwitchType /*6 cases */, 40, MVT::v16i16,// ->476386
/*476346*/          OPC_Scope, 18, /*->476366*/ // 2 children in Scope
/*476348*/            OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*476350*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*476353*/            OPC_EmitMergeInputChains1_1,
/*476354*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (uaddsat:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPADDUSWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*476366*/          /*Scope*/ 18, /*->476385*/
/*476367*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*476369*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*476372*/            OPC_EmitMergeInputChains1_1,
/*476373*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (uaddsat:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPADDUSWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*476385*/          0, /*End of Scope*/
/*476386*/        /*SwitchType*/ 18, MVT::v32i16,// ->476406
/*476388*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*476390*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*476393*/          OPC_EmitMergeInputChains1_1,
/*476394*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (uaddsat:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPADDUSWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*476406*/        /*SwitchType*/ 18, MVT::v8i16,// ->476426
/*476408*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*476410*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*476413*/          OPC_EmitMergeInputChains1_1,
/*476414*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (uaddsat:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPADDUSWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*476426*/        /*SwitchType*/ 18, MVT::v64i8,// ->476446
/*476428*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*476430*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*476433*/          OPC_EmitMergeInputChains1_1,
/*476434*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSBZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v64i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (uaddsat:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPADDUSBZrm:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*476446*/        /*SwitchType*/ 18, MVT::v32i8,// ->476466
/*476448*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*476450*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*476453*/          OPC_EmitMergeInputChains1_1,
/*476454*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSBZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (uaddsat:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPADDUSBZ256rm:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*476466*/        /*SwitchType*/ 18, MVT::v16i8,// ->476486
/*476468*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*476470*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*476473*/          OPC_EmitMergeInputChains1_1,
/*476474*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSBZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (uaddsat:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPADDUSBZ128rm:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*476486*/        0, // EndSwitchType
/*476487*/      0, /*End of Scope*/
/*476488*/    /*Scope*/ 24|128,2/*280*/, /*->476770*/
/*476490*/      OPC_MoveChild0,
/*476491*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*476494*/      OPC_RecordMemRef,
/*476495*/      OPC_RecordNode, // #0 = 'ld' chained node
/*476496*/      OPC_CheckFoldableChainNode,
/*476497*/      OPC_RecordChild1, // #1 = $src2
/*476498*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*476500*/      OPC_CheckPredicate, 9, // Predicate_load
/*476502*/      OPC_Scope, 22, /*->476526*/ // 5 children in Scope
/*476504*/        OPC_MoveParent,
/*476505*/        OPC_RecordChild1, // #2 = $src1
/*476506*/        OPC_CheckType, MVT::v16i8,
/*476508*/        OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*476510*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*476513*/        OPC_EmitMergeInputChains1_0,
/*476514*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (uaddsat:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v16i8] }:$src1) - Complexity = 25
                  // Dst: (VPADDUSBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*476526*/      /*Scope*/ 24, /*->476551*/
/*476527*/        OPC_CheckPredicate, 39, // Predicate_memop
/*476529*/        OPC_MoveParent,
/*476530*/        OPC_RecordChild1, // #2 = $src1
/*476531*/        OPC_CheckType, MVT::v16i8,
/*476533*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*476535*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*476538*/        OPC_EmitMergeInputChains1_0,
/*476539*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PADDUSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (uaddsat:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:{ *:[v16i8] }:$src1) - Complexity = 25
                  // Dst: (PADDUSBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*476551*/      /*Scope*/ 44, /*->476596*/
/*476552*/        OPC_MoveParent,
/*476553*/        OPC_RecordChild1, // #2 = $src1
/*476554*/        OPC_SwitchType /*2 cases */, 18, MVT::v32i8,// ->476575
/*476557*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*476559*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*476562*/          OPC_EmitMergeInputChains1_0,
/*476563*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSBYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (uaddsat:{ *:[v32i8] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v32i8] }:$src1) - Complexity = 25
                    // Dst: (VPADDUSBYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*476575*/        /*SwitchType*/ 18, MVT::v8i16,// ->476595
/*476577*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*476579*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*476582*/          OPC_EmitMergeInputChains1_0,
/*476583*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (uaddsat:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v8i16] }:$src1) - Complexity = 25
                    // Dst: (VPADDUSWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*476595*/        0, // EndSwitchType
/*476596*/      /*Scope*/ 24, /*->476621*/
/*476597*/        OPC_CheckPredicate, 39, // Predicate_memop
/*476599*/        OPC_MoveParent,
/*476600*/        OPC_RecordChild1, // #2 = $src1
/*476601*/        OPC_CheckType, MVT::v8i16,
/*476603*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*476605*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*476608*/        OPC_EmitMergeInputChains1_0,
/*476609*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PADDUSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (uaddsat:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:{ *:[v8i16] }:$src1) - Complexity = 25
                  // Dst: (PADDUSWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*476621*/      /*Scope*/ 18|128,1/*146*/, /*->476769*/
/*476623*/        OPC_MoveParent,
/*476624*/        OPC_RecordChild1, // #2 = $src1
/*476625*/        OPC_SwitchType /*6 cases */, 40, MVT::v16i16,// ->476668
/*476628*/          OPC_Scope, 18, /*->476648*/ // 2 children in Scope
/*476630*/            OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*476632*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*476635*/            OPC_EmitMergeInputChains1_0,
/*476636*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (uaddsat:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v16i16] }:$src1) - Complexity = 25
                      // Dst: (VPADDUSWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*476648*/          /*Scope*/ 18, /*->476667*/
/*476649*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*476651*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*476654*/            OPC_EmitMergeInputChains1_0,
/*476655*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (uaddsat:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1) - Complexity = 25
                      // Dst: (VPADDUSWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*476667*/          0, /*End of Scope*/
/*476668*/        /*SwitchType*/ 18, MVT::v32i16,// ->476688
/*476670*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*476672*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*476675*/          OPC_EmitMergeInputChains1_0,
/*476676*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (uaddsat:{ *:[v32i16] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1) - Complexity = 25
                    // Dst: (VPADDUSWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*476688*/        /*SwitchType*/ 18, MVT::v8i16,// ->476708
/*476690*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*476692*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*476695*/          OPC_EmitMergeInputChains1_0,
/*476696*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (uaddsat:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1) - Complexity = 25
                    // Dst: (VPADDUSWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*476708*/        /*SwitchType*/ 18, MVT::v64i8,// ->476728
/*476710*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*476712*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*476715*/          OPC_EmitMergeInputChains1_0,
/*476716*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSBZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v64i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (uaddsat:{ *:[v64i8] } (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v64i8] }:$src1) - Complexity = 25
                    // Dst: (VPADDUSBZrm:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*476728*/        /*SwitchType*/ 18, MVT::v32i8,// ->476748
/*476730*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*476732*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*476735*/          OPC_EmitMergeInputChains1_0,
/*476736*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSBZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (uaddsat:{ *:[v32i8] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v32i8] }:$src1) - Complexity = 25
                    // Dst: (VPADDUSBZ256rm:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*476748*/        /*SwitchType*/ 18, MVT::v16i8,// ->476768
/*476750*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*476752*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*476755*/          OPC_EmitMergeInputChains1_0,
/*476756*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSBZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (uaddsat:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v16i8] }:$src1) - Complexity = 25
                    // Dst: (VPADDUSBZ128rm:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*476768*/        0, // EndSwitchType
/*476769*/      0, /*End of Scope*/
/*476770*/    /*Scope*/ 26|128,1/*154*/, /*->476926*/
/*476772*/      OPC_RecordChild0, // #0 = $src1
/*476773*/      OPC_RecordChild1, // #1 = $src2
/*476774*/      OPC_SwitchType /*6 cases */, 35, MVT::v16i8,// ->476812
/*476777*/        OPC_Scope, 10, /*->476789*/ // 3 children in Scope
/*476779*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*476781*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSBrr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (uaddsat:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (VPADDUSBrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)
/*476789*/        /*Scope*/ 10, /*->476800*/
/*476790*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*476792*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PADDUSBrr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (uaddsat:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (PADDUSBrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)
/*476800*/        /*Scope*/ 10, /*->476811*/
/*476801*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*476803*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSBZ128rr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (uaddsat:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (VPADDUSBZ128rr:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*476811*/        0, /*End of Scope*/
/*476812*/      /*SwitchType*/ 24, MVT::v32i8,// ->476838
/*476814*/        OPC_Scope, 10, /*->476826*/ // 2 children in Scope
/*476816*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*476818*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSBYrr), 0,
                        MVT::v32i8, 2/*#Ops*/, 0, 1, 
                    // Src: (uaddsat:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2) - Complexity = 3
                    // Dst: (VPADDUSBYrr:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2)
/*476826*/        /*Scope*/ 10, /*->476837*/
/*476827*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*476829*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSBZ256rr), 0,
                        MVT::v32i8, 2/*#Ops*/, 0, 1, 
                    // Src: (uaddsat:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2) - Complexity = 3
                    // Dst: (VPADDUSBZ256rr:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*476837*/        0, /*End of Scope*/
/*476838*/      /*SwitchType*/ 35, MVT::v8i16,// ->476875
/*476840*/        OPC_Scope, 10, /*->476852*/ // 3 children in Scope
/*476842*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*476844*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSWrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (uaddsat:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (VPADDUSWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*476852*/        /*Scope*/ 10, /*->476863*/
/*476853*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*476855*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PADDUSWrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (uaddsat:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (PADDUSWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*476863*/        /*Scope*/ 10, /*->476874*/
/*476864*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*476866*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSWZ128rr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (uaddsat:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (VPADDUSWZ128rr:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*476874*/        0, /*End of Scope*/
/*476875*/      /*SwitchType*/ 24, MVT::v16i16,// ->476901
/*476877*/        OPC_Scope, 10, /*->476889*/ // 2 children in Scope
/*476879*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*476881*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSWYrr), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1, 
                    // Src: (uaddsat:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2) - Complexity = 3
                    // Dst: (VPADDUSWYrr:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2)
/*476889*/        /*Scope*/ 10, /*->476900*/
/*476890*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*476892*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSWZ256rr), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1, 
                    // Src: (uaddsat:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2) - Complexity = 3
                    // Dst: (VPADDUSWZ256rr:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*476900*/        0, /*End of Scope*/
/*476901*/      /*SwitchType*/ 10, MVT::v32i16,// ->476913
/*476903*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*476905*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSWZrr), 0,
                      MVT::v32i16, 2/*#Ops*/, 0, 1, 
                  // Src: (uaddsat:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2) - Complexity = 3
                  // Dst: (VPADDUSWZrr:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*476913*/      /*SwitchType*/ 10, MVT::v64i8,// ->476925
/*476915*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*476917*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPADDUSBZrr), 0,
                      MVT::v64i8, 2/*#Ops*/, 0, 1, 
                  // Src: (uaddsat:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2) - Complexity = 3
                  // Dst: (VPADDUSBZrr:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*476925*/      0, // EndSwitchType
/*476926*/    0, /*End of Scope*/
/*476927*/  /*SwitchOpcode*/ 126|128,2/*382*/, TARGET_VAL(ISD::MULHU),// ->477313
/*476931*/    OPC_Scope, 19|128,1/*147*/, /*->477081*/ // 3 children in Scope
/*476934*/      OPC_RecordChild0, // #0 = $src1
/*476935*/      OPC_MoveChild1,
/*476936*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*476939*/      OPC_RecordMemRef,
/*476940*/      OPC_RecordNode, // #1 = 'ld' chained node
/*476941*/      OPC_CheckFoldableChainNode,
/*476942*/      OPC_RecordChild1, // #2 = $src2
/*476943*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*476945*/      OPC_CheckPredicate, 9, // Predicate_load
/*476947*/      OPC_Scope, 21, /*->476970*/ // 3 children in Scope
/*476949*/        OPC_MoveParent,
/*476950*/        OPC_CheckType, MVT::v8i16,
/*476952*/        OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*476954*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*476957*/        OPC_EmitMergeInputChains1_1,
/*476958*/        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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VPMULHUWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*476970*/      /*Scope*/ 23, /*->476994*/
/*476971*/        OPC_CheckPredicate, 39, // Predicate_memop
/*476973*/        OPC_MoveParent,
/*476974*/        OPC_CheckType, MVT::v8i16,
/*476976*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*476978*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*476981*/        OPC_EmitMergeInputChains1_1,
/*476982*/        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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (PMULHUWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*476994*/      /*Scope*/ 85, /*->477080*/
/*476995*/        OPC_MoveParent,
/*476996*/        OPC_SwitchType /*3 cases */, 40, MVT::v16i16,// ->477039
/*476999*/          OPC_Scope, 18, /*->477019*/ // 2 children in Scope
/*477001*/            OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*477003*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*477006*/            OPC_EmitMergeInputChains1_1,
/*477007*/            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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMULHUWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*477019*/          /*Scope*/ 18, /*->477038*/
/*477020*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*477022*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*477025*/            OPC_EmitMergeInputChains1_1,
/*477026*/            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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMULHUWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*477038*/          0, /*End of Scope*/
/*477039*/        /*SwitchType*/ 18, MVT::v32i16,// ->477059
/*477041*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*477043*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*477046*/          OPC_EmitMergeInputChains1_1,
/*477047*/          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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPMULHUWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*477059*/        /*SwitchType*/ 18, MVT::v8i16,// ->477079
/*477061*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*477063*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*477066*/          OPC_EmitMergeInputChains1_1,
/*477067*/          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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPMULHUWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*477079*/        0, // EndSwitchType
/*477080*/      0, /*End of Scope*/
/*477081*/    /*Scope*/ 21|128,1/*149*/, /*->477232*/
/*477083*/      OPC_MoveChild0,
/*477084*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*477087*/      OPC_RecordMemRef,
/*477088*/      OPC_RecordNode, // #0 = 'ld' chained node
/*477089*/      OPC_CheckFoldableChainNode,
/*477090*/      OPC_RecordChild1, // #1 = $src2
/*477091*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*477093*/      OPC_CheckPredicate, 9, // Predicate_load
/*477095*/      OPC_Scope, 22, /*->477119*/ // 3 children in Scope
/*477097*/        OPC_MoveParent,
/*477098*/        OPC_RecordChild1, // #2 = $src1
/*477099*/        OPC_CheckType, MVT::v8i16,
/*477101*/        OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*477103*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*477106*/        OPC_EmitMergeInputChains1_0,
/*477107*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHUWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (mulhu:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v8i16] }:$src1) - Complexity = 25
                  // Dst: (VPMULHUWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*477119*/      /*Scope*/ 24, /*->477144*/
/*477120*/        OPC_CheckPredicate, 39, // Predicate_memop
/*477122*/        OPC_MoveParent,
/*477123*/        OPC_RecordChild1, // #2 = $src1
/*477124*/        OPC_CheckType, MVT::v8i16,
/*477126*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*477128*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*477131*/        OPC_EmitMergeInputChains1_0,
/*477132*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PMULHUWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (mulhu:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:{ *:[v8i16] }:$src1) - Complexity = 25
                  // Dst: (PMULHUWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*477144*/      /*Scope*/ 86, /*->477231*/
/*477145*/        OPC_MoveParent,
/*477146*/        OPC_RecordChild1, // #2 = $src1
/*477147*/        OPC_SwitchType /*3 cases */, 40, MVT::v16i16,// ->477190
/*477150*/          OPC_Scope, 18, /*->477170*/ // 2 children in Scope
/*477152*/            OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*477154*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*477157*/            OPC_EmitMergeInputChains1_0,
/*477158*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHUWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (mulhu:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v16i16] }:$src1) - Complexity = 25
                      // Dst: (VPMULHUWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*477170*/          /*Scope*/ 18, /*->477189*/
/*477171*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*477173*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*477176*/            OPC_EmitMergeInputChains1_0,
/*477177*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHUWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (mulhu:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1) - Complexity = 25
                      // Dst: (VPMULHUWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*477189*/          0, /*End of Scope*/
/*477190*/        /*SwitchType*/ 18, MVT::v32i16,// ->477210
/*477192*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*477194*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*477197*/          OPC_EmitMergeInputChains1_0,
/*477198*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHUWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (mulhu:{ *:[v32i16] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1) - Complexity = 25
                    // Dst: (VPMULHUWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*477210*/        /*SwitchType*/ 18, MVT::v8i16,// ->477230
/*477212*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*477214*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*477217*/          OPC_EmitMergeInputChains1_0,
/*477218*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHUWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (mulhu:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1) - Complexity = 25
                    // Dst: (VPMULHUWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*477230*/        0, // EndSwitchType
/*477231*/      0, /*End of Scope*/
/*477232*/    /*Scope*/ 79, /*->477312*/
/*477233*/      OPC_RecordChild0, // #0 = $src1
/*477234*/      OPC_RecordChild1, // #1 = $src2
/*477235*/      OPC_SwitchType /*3 cases */, 35, MVT::v8i16,// ->477273
/*477238*/        OPC_Scope, 10, /*->477250*/ // 3 children in Scope
/*477240*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*477242*/          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)
/*477250*/        /*Scope*/ 10, /*->477261*/
/*477251*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*477253*/          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)
/*477261*/        /*Scope*/ 10, /*->477272*/
/*477262*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*477264*/          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)
/*477272*/        0, /*End of Scope*/
/*477273*/      /*SwitchType*/ 24, MVT::v16i16,// ->477299
/*477275*/        OPC_Scope, 10, /*->477287*/ // 2 children in Scope
/*477277*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*477279*/          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)
/*477287*/        /*Scope*/ 10, /*->477298*/
/*477288*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*477290*/          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)
/*477298*/        0, /*End of Scope*/
/*477299*/      /*SwitchType*/ 10, MVT::v32i16,// ->477311
/*477301*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*477303*/        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)
/*477311*/      0, // EndSwitchType
/*477312*/    0, /*End of Scope*/
/*477313*/  /*SwitchOpcode*/ 126|128,2/*382*/, TARGET_VAL(ISD::MULHS),// ->477699
/*477317*/    OPC_Scope, 19|128,1/*147*/, /*->477467*/ // 3 children in Scope
/*477320*/      OPC_RecordChild0, // #0 = $src1
/*477321*/      OPC_MoveChild1,
/*477322*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*477325*/      OPC_RecordMemRef,
/*477326*/      OPC_RecordNode, // #1 = 'ld' chained node
/*477327*/      OPC_CheckFoldableChainNode,
/*477328*/      OPC_RecordChild1, // #2 = $src2
/*477329*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*477331*/      OPC_CheckPredicate, 9, // Predicate_load
/*477333*/      OPC_Scope, 21, /*->477356*/ // 3 children in Scope
/*477335*/        OPC_MoveParent,
/*477336*/        OPC_CheckType, MVT::v8i16,
/*477338*/        OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*477340*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*477343*/        OPC_EmitMergeInputChains1_1,
/*477344*/        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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VPMULHWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*477356*/      /*Scope*/ 23, /*->477380*/
/*477357*/        OPC_CheckPredicate, 39, // Predicate_memop
/*477359*/        OPC_MoveParent,
/*477360*/        OPC_CheckType, MVT::v8i16,
/*477362*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*477364*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*477367*/        OPC_EmitMergeInputChains1_1,
/*477368*/        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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (PMULHWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*477380*/      /*Scope*/ 85, /*->477466*/
/*477381*/        OPC_MoveParent,
/*477382*/        OPC_SwitchType /*3 cases */, 40, MVT::v16i16,// ->477425
/*477385*/          OPC_Scope, 18, /*->477405*/ // 2 children in Scope
/*477387*/            OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*477389*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*477392*/            OPC_EmitMergeInputChains1_1,
/*477393*/            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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMULHWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*477405*/          /*Scope*/ 18, /*->477424*/
/*477406*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*477408*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*477411*/            OPC_EmitMergeInputChains1_1,
/*477412*/            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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMULHWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*477424*/          0, /*End of Scope*/
/*477425*/        /*SwitchType*/ 18, MVT::v32i16,// ->477445
/*477427*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*477429*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*477432*/          OPC_EmitMergeInputChains1_1,
/*477433*/          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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPMULHWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*477445*/        /*SwitchType*/ 18, MVT::v8i16,// ->477465
/*477447*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*477449*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*477452*/          OPC_EmitMergeInputChains1_1,
/*477453*/          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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPMULHWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*477465*/        0, // EndSwitchType
/*477466*/      0, /*End of Scope*/
/*477467*/    /*Scope*/ 21|128,1/*149*/, /*->477618*/
/*477469*/      OPC_MoveChild0,
/*477470*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*477473*/      OPC_RecordMemRef,
/*477474*/      OPC_RecordNode, // #0 = 'ld' chained node
/*477475*/      OPC_CheckFoldableChainNode,
/*477476*/      OPC_RecordChild1, // #1 = $src2
/*477477*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*477479*/      OPC_CheckPredicate, 9, // Predicate_load
/*477481*/      OPC_Scope, 22, /*->477505*/ // 3 children in Scope
/*477483*/        OPC_MoveParent,
/*477484*/        OPC_RecordChild1, // #2 = $src1
/*477485*/        OPC_CheckType, MVT::v8i16,
/*477487*/        OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*477489*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*477492*/        OPC_EmitMergeInputChains1_0,
/*477493*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (mulhs:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v8i16] }:$src1) - Complexity = 25
                  // Dst: (VPMULHWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*477505*/      /*Scope*/ 24, /*->477530*/
/*477506*/        OPC_CheckPredicate, 39, // Predicate_memop
/*477508*/        OPC_MoveParent,
/*477509*/        OPC_RecordChild1, // #2 = $src1
/*477510*/        OPC_CheckType, MVT::v8i16,
/*477512*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*477514*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*477517*/        OPC_EmitMergeInputChains1_0,
/*477518*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PMULHWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (mulhs:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:{ *:[v8i16] }:$src1) - Complexity = 25
                  // Dst: (PMULHWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*477530*/      /*Scope*/ 86, /*->477617*/
/*477531*/        OPC_MoveParent,
/*477532*/        OPC_RecordChild1, // #2 = $src1
/*477533*/        OPC_SwitchType /*3 cases */, 40, MVT::v16i16,// ->477576
/*477536*/          OPC_Scope, 18, /*->477556*/ // 2 children in Scope
/*477538*/            OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*477540*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*477543*/            OPC_EmitMergeInputChains1_0,
/*477544*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (mulhs:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v16i16] }:$src1) - Complexity = 25
                      // Dst: (VPMULHWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*477556*/          /*Scope*/ 18, /*->477575*/
/*477557*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*477559*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*477562*/            OPC_EmitMergeInputChains1_0,
/*477563*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (mulhs:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1) - Complexity = 25
                      // Dst: (VPMULHWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*477575*/          0, /*End of Scope*/
/*477576*/        /*SwitchType*/ 18, MVT::v32i16,// ->477596
/*477578*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*477580*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*477583*/          OPC_EmitMergeInputChains1_0,
/*477584*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (mulhs:{ *:[v32i16] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1) - Complexity = 25
                    // Dst: (VPMULHWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*477596*/        /*SwitchType*/ 18, MVT::v8i16,// ->477616
/*477598*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*477600*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*477603*/          OPC_EmitMergeInputChains1_0,
/*477604*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (mulhs:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1) - Complexity = 25
                    // Dst: (VPMULHWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*477616*/        0, // EndSwitchType
/*477617*/      0, /*End of Scope*/
/*477618*/    /*Scope*/ 79, /*->477698*/
/*477619*/      OPC_RecordChild0, // #0 = $src1
/*477620*/      OPC_RecordChild1, // #1 = $src2
/*477621*/      OPC_SwitchType /*3 cases */, 35, MVT::v8i16,// ->477659
/*477624*/        OPC_Scope, 10, /*->477636*/ // 3 children in Scope
/*477626*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*477628*/          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)
/*477636*/        /*Scope*/ 10, /*->477647*/
/*477637*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*477639*/          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)
/*477647*/        /*Scope*/ 10, /*->477658*/
/*477648*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*477650*/          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)
/*477658*/        0, /*End of Scope*/
/*477659*/      /*SwitchType*/ 24, MVT::v16i16,// ->477685
/*477661*/        OPC_Scope, 10, /*->477673*/ // 2 children in Scope
/*477663*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*477665*/          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)
/*477673*/        /*Scope*/ 10, /*->477684*/
/*477674*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*477676*/          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)
/*477684*/        0, /*End of Scope*/
/*477685*/      /*SwitchType*/ 10, MVT::v32i16,// ->477697
/*477687*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*477689*/        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)
/*477697*/      0, // EndSwitchType
/*477698*/    0, /*End of Scope*/
/*477699*/  /*SwitchOpcode*/ 51|128,3/*435*/, TARGET_VAL(ISD::SSUBSAT),// ->478138
/*477703*/    OPC_RecordChild0, // #0 = $src1
/*477704*/    OPC_Scope, 19|128,2/*275*/, /*->477982*/ // 2 children in Scope
/*477707*/      OPC_MoveChild1,
/*477708*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*477711*/      OPC_RecordMemRef,
/*477712*/      OPC_RecordNode, // #1 = 'ld' chained node
/*477713*/      OPC_CheckFoldableChainNode,
/*477714*/      OPC_RecordChild1, // #2 = $src2
/*477715*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*477717*/      OPC_CheckPredicate, 9, // Predicate_load
/*477719*/      OPC_Scope, 21, /*->477742*/ // 5 children in Scope
/*477721*/        OPC_MoveParent,
/*477722*/        OPC_CheckType, MVT::v16i8,
/*477724*/        OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*477726*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*477729*/        OPC_EmitMergeInputChains1_1,
/*477730*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (ssubsat:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VPSUBSBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*477742*/      /*Scope*/ 23, /*->477766*/
/*477743*/        OPC_CheckPredicate, 39, // Predicate_memop
/*477745*/        OPC_MoveParent,
/*477746*/        OPC_CheckType, MVT::v16i8,
/*477748*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*477750*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*477753*/        OPC_EmitMergeInputChains1_1,
/*477754*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PSUBSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (ssubsat:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (PSUBSBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*477766*/      /*Scope*/ 43, /*->477810*/
/*477767*/        OPC_MoveParent,
/*477768*/        OPC_SwitchType /*2 cases */, 18, MVT::v32i8,// ->477789
/*477771*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*477773*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*477776*/          OPC_EmitMergeInputChains1_1,
/*477777*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSBYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (ssubsat:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPSUBSBYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*477789*/        /*SwitchType*/ 18, MVT::v8i16,// ->477809
/*477791*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*477793*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*477796*/          OPC_EmitMergeInputChains1_1,
/*477797*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (ssubsat:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPSUBSWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*477809*/        0, // EndSwitchType
/*477810*/      /*Scope*/ 23, /*->477834*/
/*477811*/        OPC_CheckPredicate, 39, // Predicate_memop
/*477813*/        OPC_MoveParent,
/*477814*/        OPC_CheckType, MVT::v8i16,
/*477816*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*477818*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*477821*/        OPC_EmitMergeInputChains1_1,
/*477822*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PSUBSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (ssubsat:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (PSUBSWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*477834*/      /*Scope*/ 17|128,1/*145*/, /*->477981*/
/*477836*/        OPC_MoveParent,
/*477837*/        OPC_SwitchType /*6 cases */, 40, MVT::v16i16,// ->477880
/*477840*/          OPC_Scope, 18, /*->477860*/ // 2 children in Scope
/*477842*/            OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*477844*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*477847*/            OPC_EmitMergeInputChains1_1,
/*477848*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (ssubsat:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPSUBSWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*477860*/          /*Scope*/ 18, /*->477879*/
/*477861*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*477863*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*477866*/            OPC_EmitMergeInputChains1_1,
/*477867*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (ssubsat:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPSUBSWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*477879*/          0, /*End of Scope*/
/*477880*/        /*SwitchType*/ 18, MVT::v32i16,// ->477900
/*477882*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*477884*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*477887*/          OPC_EmitMergeInputChains1_1,
/*477888*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (ssubsat:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPSUBSWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*477900*/        /*SwitchType*/ 18, MVT::v8i16,// ->477920
/*477902*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*477904*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*477907*/          OPC_EmitMergeInputChains1_1,
/*477908*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (ssubsat:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPSUBSWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*477920*/        /*SwitchType*/ 18, MVT::v64i8,// ->477940
/*477922*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*477924*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*477927*/          OPC_EmitMergeInputChains1_1,
/*477928*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSBZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v64i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (ssubsat:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPSUBSBZrm:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*477940*/        /*SwitchType*/ 18, MVT::v32i8,// ->477960
/*477942*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*477944*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*477947*/          OPC_EmitMergeInputChains1_1,
/*477948*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSBZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (ssubsat:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPSUBSBZ256rm:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*477960*/        /*SwitchType*/ 18, MVT::v16i8,// ->477980
/*477962*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*477964*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*477967*/          OPC_EmitMergeInputChains1_1,
/*477968*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSBZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (ssubsat:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPSUBSBZ128rm:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*477980*/        0, // EndSwitchType
/*477981*/      0, /*End of Scope*/
/*477982*/    /*Scope*/ 25|128,1/*153*/, /*->478137*/
/*477984*/      OPC_RecordChild1, // #1 = $src2
/*477985*/      OPC_SwitchType /*6 cases */, 35, MVT::v16i8,// ->478023
/*477988*/        OPC_Scope, 10, /*->478000*/ // 3 children in Scope
/*477990*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*477992*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSBrr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (ssubsat:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (VPSUBSBrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)
/*478000*/        /*Scope*/ 10, /*->478011*/
/*478001*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*478003*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PSUBSBrr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (ssubsat:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (PSUBSBrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)
/*478011*/        /*Scope*/ 10, /*->478022*/
/*478012*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*478014*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSBZ128rr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (ssubsat:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (VPSUBSBZ128rr:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*478022*/        0, /*End of Scope*/
/*478023*/      /*SwitchType*/ 24, MVT::v32i8,// ->478049
/*478025*/        OPC_Scope, 10, /*->478037*/ // 2 children in Scope
/*478027*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*478029*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSBYrr), 0,
                        MVT::v32i8, 2/*#Ops*/, 0, 1, 
                    // Src: (ssubsat:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2) - Complexity = 3
                    // Dst: (VPSUBSBYrr:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2)
/*478037*/        /*Scope*/ 10, /*->478048*/
/*478038*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*478040*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSBZ256rr), 0,
                        MVT::v32i8, 2/*#Ops*/, 0, 1, 
                    // Src: (ssubsat:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2) - Complexity = 3
                    // Dst: (VPSUBSBZ256rr:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*478048*/        0, /*End of Scope*/
/*478049*/      /*SwitchType*/ 35, MVT::v8i16,// ->478086
/*478051*/        OPC_Scope, 10, /*->478063*/ // 3 children in Scope
/*478053*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*478055*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSWrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (ssubsat:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (VPSUBSWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*478063*/        /*Scope*/ 10, /*->478074*/
/*478064*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*478066*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PSUBSWrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (ssubsat:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (PSUBSWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*478074*/        /*Scope*/ 10, /*->478085*/
/*478075*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*478077*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSWZ128rr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (ssubsat:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (VPSUBSWZ128rr:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*478085*/        0, /*End of Scope*/
/*478086*/      /*SwitchType*/ 24, MVT::v16i16,// ->478112
/*478088*/        OPC_Scope, 10, /*->478100*/ // 2 children in Scope
/*478090*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*478092*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSWYrr), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1, 
                    // Src: (ssubsat:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2) - Complexity = 3
                    // Dst: (VPSUBSWYrr:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2)
/*478100*/        /*Scope*/ 10, /*->478111*/
/*478101*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*478103*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSWZ256rr), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1, 
                    // Src: (ssubsat:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2) - Complexity = 3
                    // Dst: (VPSUBSWZ256rr:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*478111*/        0, /*End of Scope*/
/*478112*/      /*SwitchType*/ 10, MVT::v32i16,// ->478124
/*478114*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*478116*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSWZrr), 0,
                      MVT::v32i16, 2/*#Ops*/, 0, 1, 
                  // Src: (ssubsat:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2) - Complexity = 3
                  // Dst: (VPSUBSWZrr:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*478124*/      /*SwitchType*/ 10, MVT::v64i8,// ->478136
/*478126*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*478128*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBSBZrr), 0,
                      MVT::v64i8, 2/*#Ops*/, 0, 1, 
                  // Src: (ssubsat:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2) - Complexity = 3
                  // Dst: (VPSUBSBZrr:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*478136*/      0, // EndSwitchType
/*478137*/    0, /*End of Scope*/
/*478138*/  /*SwitchOpcode*/ 51|128,3/*435*/, TARGET_VAL(ISD::USUBSAT),// ->478577
/*478142*/    OPC_RecordChild0, // #0 = $src1
/*478143*/    OPC_Scope, 19|128,2/*275*/, /*->478421*/ // 2 children in Scope
/*478146*/      OPC_MoveChild1,
/*478147*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*478150*/      OPC_RecordMemRef,
/*478151*/      OPC_RecordNode, // #1 = 'ld' chained node
/*478152*/      OPC_CheckFoldableChainNode,
/*478153*/      OPC_RecordChild1, // #2 = $src2
/*478154*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*478156*/      OPC_CheckPredicate, 9, // Predicate_load
/*478158*/      OPC_Scope, 21, /*->478181*/ // 5 children in Scope
/*478160*/        OPC_MoveParent,
/*478161*/        OPC_CheckType, MVT::v16i8,
/*478163*/        OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*478165*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*478168*/        OPC_EmitMergeInputChains1_1,
/*478169*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (usubsat:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VPSUBUSBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*478181*/      /*Scope*/ 23, /*->478205*/
/*478182*/        OPC_CheckPredicate, 39, // Predicate_memop
/*478184*/        OPC_MoveParent,
/*478185*/        OPC_CheckType, MVT::v16i8,
/*478187*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*478189*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*478192*/        OPC_EmitMergeInputChains1_1,
/*478193*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PSUBUSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (usubsat:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (PSUBUSBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*478205*/      /*Scope*/ 43, /*->478249*/
/*478206*/        OPC_MoveParent,
/*478207*/        OPC_SwitchType /*2 cases */, 18, MVT::v32i8,// ->478228
/*478210*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*478212*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*478215*/          OPC_EmitMergeInputChains1_1,
/*478216*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSBYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (usubsat:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPSUBUSBYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*478228*/        /*SwitchType*/ 18, MVT::v8i16,// ->478248
/*478230*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*478232*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*478235*/          OPC_EmitMergeInputChains1_1,
/*478236*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (usubsat:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPSUBUSWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*478248*/        0, // EndSwitchType
/*478249*/      /*Scope*/ 23, /*->478273*/
/*478250*/        OPC_CheckPredicate, 39, // Predicate_memop
/*478252*/        OPC_MoveParent,
/*478253*/        OPC_CheckType, MVT::v8i16,
/*478255*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*478257*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*478260*/        OPC_EmitMergeInputChains1_1,
/*478261*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PSUBUSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (usubsat:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (PSUBUSWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*478273*/      /*Scope*/ 17|128,1/*145*/, /*->478420*/
/*478275*/        OPC_MoveParent,
/*478276*/        OPC_SwitchType /*6 cases */, 40, MVT::v16i16,// ->478319
/*478279*/          OPC_Scope, 18, /*->478299*/ // 2 children in Scope
/*478281*/            OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*478283*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*478286*/            OPC_EmitMergeInputChains1_1,
/*478287*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (usubsat:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPSUBUSWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*478299*/          /*Scope*/ 18, /*->478318*/
/*478300*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*478302*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*478305*/            OPC_EmitMergeInputChains1_1,
/*478306*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (usubsat:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPSUBUSWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*478318*/          0, /*End of Scope*/
/*478319*/        /*SwitchType*/ 18, MVT::v32i16,// ->478339
/*478321*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*478323*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*478326*/          OPC_EmitMergeInputChains1_1,
/*478327*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (usubsat:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPSUBUSWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*478339*/        /*SwitchType*/ 18, MVT::v8i16,// ->478359
/*478341*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*478343*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*478346*/          OPC_EmitMergeInputChains1_1,
/*478347*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (usubsat:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPSUBUSWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*478359*/        /*SwitchType*/ 18, MVT::v64i8,// ->478379
/*478361*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*478363*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*478366*/          OPC_EmitMergeInputChains1_1,
/*478367*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSBZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v64i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (usubsat:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPSUBUSBZrm:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*478379*/        /*SwitchType*/ 18, MVT::v32i8,// ->478399
/*478381*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*478383*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*478386*/          OPC_EmitMergeInputChains1_1,
/*478387*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSBZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (usubsat:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPSUBUSBZ256rm:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*478399*/        /*SwitchType*/ 18, MVT::v16i8,// ->478419
/*478401*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*478403*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*478406*/          OPC_EmitMergeInputChains1_1,
/*478407*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSBZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (usubsat:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPSUBUSBZ128rm:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*478419*/        0, // EndSwitchType
/*478420*/      0, /*End of Scope*/
/*478421*/    /*Scope*/ 25|128,1/*153*/, /*->478576*/
/*478423*/      OPC_RecordChild1, // #1 = $src2
/*478424*/      OPC_SwitchType /*6 cases */, 35, MVT::v16i8,// ->478462
/*478427*/        OPC_Scope, 10, /*->478439*/ // 3 children in Scope
/*478429*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*478431*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSBrr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (usubsat:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (VPSUBUSBrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)
/*478439*/        /*Scope*/ 10, /*->478450*/
/*478440*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*478442*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PSUBUSBrr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (usubsat:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (PSUBUSBrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)
/*478450*/        /*Scope*/ 10, /*->478461*/
/*478451*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*478453*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSBZ128rr), 0,
                        MVT::v16i8, 2/*#Ops*/, 0, 1, 
                    // Src: (usubsat:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2) - Complexity = 3
                    // Dst: (VPSUBUSBZ128rr:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2)
/*478461*/        0, /*End of Scope*/
/*478462*/      /*SwitchType*/ 24, MVT::v32i8,// ->478488
/*478464*/        OPC_Scope, 10, /*->478476*/ // 2 children in Scope
/*478466*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*478468*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSBYrr), 0,
                        MVT::v32i8, 2/*#Ops*/, 0, 1, 
                    // Src: (usubsat:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2) - Complexity = 3
                    // Dst: (VPSUBUSBYrr:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2)
/*478476*/        /*Scope*/ 10, /*->478487*/
/*478477*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*478479*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSBZ256rr), 0,
                        MVT::v32i8, 2/*#Ops*/, 0, 1, 
                    // Src: (usubsat:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2) - Complexity = 3
                    // Dst: (VPSUBUSBZ256rr:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2)
/*478487*/        0, /*End of Scope*/
/*478488*/      /*SwitchType*/ 35, MVT::v8i16,// ->478525
/*478490*/        OPC_Scope, 10, /*->478502*/ // 3 children in Scope
/*478492*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*478494*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSWrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (usubsat:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (VPSUBUSWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*478502*/        /*Scope*/ 10, /*->478513*/
/*478503*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*478505*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PSUBUSWrr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (usubsat:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (PSUBUSWrr:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, VR128:{ *:[v8i16] }:$src2)
/*478513*/        /*Scope*/ 10, /*->478524*/
/*478514*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*478516*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSWZ128rr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (usubsat:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (VPSUBUSWZ128rr:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*478524*/        0, /*End of Scope*/
/*478525*/      /*SwitchType*/ 24, MVT::v16i16,// ->478551
/*478527*/        OPC_Scope, 10, /*->478539*/ // 2 children in Scope
/*478529*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*478531*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSWYrr), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1, 
                    // Src: (usubsat:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2) - Complexity = 3
                    // Dst: (VPSUBUSWYrr:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, VR256:{ *:[v16i16] }:$src2)
/*478539*/        /*Scope*/ 10, /*->478550*/
/*478540*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*478542*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSWZ256rr), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1, 
                    // Src: (usubsat:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2) - Complexity = 3
                    // Dst: (VPSUBUSWZ256rr:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*478550*/        0, /*End of Scope*/
/*478551*/      /*SwitchType*/ 10, MVT::v32i16,// ->478563
/*478553*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*478555*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSWZrr), 0,
                      MVT::v32i16, 2/*#Ops*/, 0, 1, 
                  // Src: (usubsat:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2) - Complexity = 3
                  // Dst: (VPSUBUSWZrr:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*478563*/      /*SwitchType*/ 10, MVT::v64i8,// ->478575
/*478565*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*478567*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSUBUSBZrr), 0,
                      MVT::v64i8, 2/*#Ops*/, 0, 1, 
                  // Src: (usubsat:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2) - Complexity = 3
                  // Dst: (VPSUBUSBZrr:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2)
/*478575*/      0, // EndSwitchType
/*478576*/    0, /*End of Scope*/
/*478577*/  /*SwitchOpcode*/ 37|128,14/*1829*/, TARGET_VAL(ISD::UMIN),// ->480410
/*478581*/    OPC_Scope, 89|128,4/*601*/, /*->479185*/ // 5 children in Scope
/*478584*/      OPC_RecordChild0, // #0 = $src1
/*478585*/      OPC_MoveChild1,
/*478586*/      OPC_SwitchOpcode /*2 cases */, 67|128,3/*451*/, TARGET_VAL(ISD::LOAD),// ->479042
/*478591*/        OPC_RecordMemRef,
/*478592*/        OPC_RecordNode, // #1 = 'ld' chained node
/*478593*/        OPC_CheckFoldableChainNode,
/*478594*/        OPC_RecordChild1, // #2 = $src2
/*478595*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*478597*/        OPC_CheckPredicate, 9, // Predicate_load
/*478599*/        OPC_Scope, 21, /*->478622*/ // 5 children in Scope
/*478601*/          OPC_MoveParent,
/*478602*/          OPC_CheckType, MVT::v16i8,
/*478604*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*478606*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*478609*/          OPC_EmitMergeInputChains1_1,
/*478610*/          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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPMINUBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*478622*/        /*Scope*/ 23, /*->478646*/
/*478623*/          OPC_CheckPredicate, 39, // Predicate_memop
/*478625*/          OPC_MoveParent,
/*478626*/          OPC_CheckType, MVT::v16i8,
/*478628*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*478630*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*478633*/          OPC_EmitMergeInputChains1_1,
/*478634*/          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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                    // Dst: (PMINUBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*478646*/        /*Scope*/ 103, /*->478750*/
/*478647*/          OPC_MoveParent,
/*478648*/          OPC_SwitchType /*5 cases */, 18, MVT::v32i8,// ->478669
/*478651*/            OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*478653*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*478656*/            OPC_EmitMergeInputChains1_1,
/*478657*/            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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMINUBYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*478669*/          /*SwitchType*/ 18, MVT::v4i32,// ->478689
/*478671*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*478673*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*478676*/            OPC_EmitMergeInputChains1_1,
/*478677*/            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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMINUDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*478689*/          /*SwitchType*/ 18, MVT::v8i16,// ->478709
/*478691*/            OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*478693*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*478696*/            OPC_EmitMergeInputChains1_1,
/*478697*/            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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMINUWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*478709*/          /*SwitchType*/ 18, MVT::v8i32,// ->478729
/*478711*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*478713*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*478716*/            OPC_EmitMergeInputChains1_1,
/*478717*/            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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMINUDYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*478729*/          /*SwitchType*/ 18, MVT::v16i16,// ->478749
/*478731*/            OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*478733*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*478736*/            OPC_EmitMergeInputChains1_1,
/*478737*/            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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMINUWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*478749*/          0, // EndSwitchType
/*478750*/        /*Scope*/ 45, /*->478796*/
/*478751*/          OPC_CheckPredicate, 39, // Predicate_memop
/*478753*/          OPC_MoveParent,
/*478754*/          OPC_SwitchType /*2 cases */, 18, MVT::v4i32,// ->478775
/*478757*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*478759*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*478762*/            OPC_EmitMergeInputChains1_1,
/*478763*/            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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                      // Dst: (PMINUDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*478775*/          /*SwitchType*/ 18, MVT::v8i16,// ->478795
/*478777*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*478779*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*478782*/            OPC_EmitMergeInputChains1_1,
/*478783*/            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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                      // Dst: (PMINUWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*478795*/          0, // EndSwitchType
/*478796*/        /*Scope*/ 115|128,1/*243*/, /*->479041*/
/*478798*/          OPC_MoveParent,
/*478799*/          OPC_SwitchType /*12 cases */, 18, MVT::v64i8,// ->478820
/*478802*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*478804*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*478807*/            OPC_EmitMergeInputChains1_1,
/*478808*/            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, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMINUBZrm:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*478820*/          /*SwitchType*/ 18, MVT::v32i8,// ->478840
/*478822*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*478824*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*478827*/            OPC_EmitMergeInputChains1_1,
/*478828*/            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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMINUBZ256rm:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*478840*/          /*SwitchType*/ 18, MVT::v16i8,// ->478860
/*478842*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*478844*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*478847*/            OPC_EmitMergeInputChains1_1,
/*478848*/            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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMINUBZ128rm:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*478860*/          /*SwitchType*/ 18, MVT::v32i16,// ->478880
/*478862*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*478864*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*478867*/            OPC_EmitMergeInputChains1_1,
/*478868*/            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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMINUWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*478880*/          /*SwitchType*/ 18, MVT::v16i16,// ->478900
/*478882*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*478884*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*478887*/            OPC_EmitMergeInputChains1_1,
/*478888*/            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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMINUWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*478900*/          /*SwitchType*/ 18, MVT::v8i16,// ->478920
/*478902*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*478904*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*478907*/            OPC_EmitMergeInputChains1_1,
/*478908*/            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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMINUWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*478920*/          /*SwitchType*/ 18, MVT::v16i32,// ->478940
/*478922*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*478924*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*478927*/            OPC_EmitMergeInputChains1_1,
/*478928*/            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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMINUDZrm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*478940*/          /*SwitchType*/ 18, MVT::v8i32,// ->478960
/*478942*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*478944*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*478947*/            OPC_EmitMergeInputChains1_1,
/*478948*/            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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMINUDZ256rm:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*478960*/          /*SwitchType*/ 18, MVT::v4i32,// ->478980
/*478962*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*478964*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*478967*/            OPC_EmitMergeInputChains1_1,
/*478968*/            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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMINUDZ128rm:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*478980*/          /*SwitchType*/ 18, MVT::v8i64,// ->479000
/*478982*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*478984*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*478987*/            OPC_EmitMergeInputChains1_1,
/*478988*/            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>>) - Complexity = 25
                      // Dst: (VPMINUQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*479000*/          /*SwitchType*/ 18, MVT::v4i64,// ->479020
/*479002*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*479004*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*479007*/            OPC_EmitMergeInputChains1_1,
/*479008*/            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>>) - Complexity = 25
                      // Dst: (VPMINUQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*479020*/          /*SwitchType*/ 18, MVT::v2i64,// ->479040
/*479022*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*479024*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*479027*/            OPC_EmitMergeInputChains1_1,
/*479028*/            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>>) - Complexity = 25
                      // Dst: (VPMINUQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*479040*/          0, // EndSwitchType
/*479041*/        0, /*End of Scope*/
/*479042*/      /*SwitchOpcode*/ 10|128,1/*138*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->479184
/*479046*/        OPC_RecordMemRef,
/*479047*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*479048*/        OPC_CheckFoldableChainNode,
/*479049*/        OPC_RecordChild1, // #2 = $src2
/*479050*/        OPC_Scope, 65, /*->479117*/ // 2 children in Scope
/*479052*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*479054*/          OPC_MoveParent,
/*479055*/          OPC_SwitchType /*3 cases */, 18, MVT::v16i32,// ->479076
/*479058*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*479060*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*479063*/            OPC_EmitMergeInputChains1_1,
/*479064*/            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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPMINUDZrmb:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*479076*/          /*SwitchType*/ 18, MVT::v8i32,// ->479096
/*479078*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*479080*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*479083*/            OPC_EmitMergeInputChains1_1,
/*479084*/            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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPMINUDZ256rmb:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*479096*/          /*SwitchType*/ 18, MVT::v4i32,// ->479116
/*479098*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*479100*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*479103*/            OPC_EmitMergeInputChains1_1,
/*479104*/            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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPMINUDZ128rmb:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*479116*/          0, // EndSwitchType
/*479117*/        /*Scope*/ 65, /*->479183*/
/*479118*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*479120*/          OPC_MoveParent,
/*479121*/          OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->479142
/*479124*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*479126*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*479129*/            OPC_EmitMergeInputChains1_1,
/*479130*/            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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPMINUQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*479142*/          /*SwitchType*/ 18, MVT::v4i64,// ->479162
/*479144*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*479146*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*479149*/            OPC_EmitMergeInputChains1_1,
/*479150*/            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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPMINUQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*479162*/          /*SwitchType*/ 18, MVT::v2i64,// ->479182
/*479164*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*479166*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*479169*/            OPC_EmitMergeInputChains1_1,
/*479170*/            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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPMINUQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*479182*/          0, // EndSwitchType
/*479183*/        0, /*End of Scope*/
/*479184*/      0, // EndSwitchOpcode
/*479185*/    /*Scope*/ 95|128,4/*607*/, /*->479794*/
/*479187*/      OPC_MoveChild0,
/*479188*/      OPC_SwitchOpcode /*2 cases */, 72|128,3/*456*/, TARGET_VAL(ISD::LOAD),// ->479649
/*479193*/        OPC_RecordMemRef,
/*479194*/        OPC_RecordNode, // #0 = 'ld' chained node
/*479195*/        OPC_CheckFoldableChainNode,
/*479196*/        OPC_RecordChild1, // #1 = $src2
/*479197*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*479199*/        OPC_CheckPredicate, 9, // Predicate_load
/*479201*/        OPC_Scope, 22, /*->479225*/ // 5 children in Scope
/*479203*/          OPC_MoveParent,
/*479204*/          OPC_RecordChild1, // #2 = $src1
/*479205*/          OPC_CheckType, MVT::v16i8,
/*479207*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*479209*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*479212*/          OPC_EmitMergeInputChains1_0,
/*479213*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUBrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (umin:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v16i8] }:$src1) - Complexity = 25
                    // Dst: (VPMINUBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*479225*/        /*Scope*/ 24, /*->479250*/
/*479226*/          OPC_CheckPredicate, 39, // Predicate_memop
/*479228*/          OPC_MoveParent,
/*479229*/          OPC_RecordChild1, // #2 = $src1
/*479230*/          OPC_CheckType, MVT::v16i8,
/*479232*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*479234*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*479237*/          OPC_EmitMergeInputChains1_0,
/*479238*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PMINUBrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (umin:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:{ *:[v16i8] }:$src1) - Complexity = 25
                    // Dst: (PMINUBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*479250*/        /*Scope*/ 104, /*->479355*/
/*479251*/          OPC_MoveParent,
/*479252*/          OPC_RecordChild1, // #2 = $src1
/*479253*/          OPC_SwitchType /*5 cases */, 18, MVT::v32i8,// ->479274
/*479256*/            OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*479258*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*479261*/            OPC_EmitMergeInputChains1_0,
/*479262*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUBYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (umin:{ *:[v32i8] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v32i8] }:$src1) - Complexity = 25
                      // Dst: (VPMINUBYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*479274*/          /*SwitchType*/ 18, MVT::v4i32,// ->479294
/*479276*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*479278*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*479281*/            OPC_EmitMergeInputChains1_0,
/*479282*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (umin:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v4i32] }:$src1) - Complexity = 25
                      // Dst: (VPMINUDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*479294*/          /*SwitchType*/ 18, MVT::v8i16,// ->479314
/*479296*/            OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*479298*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*479301*/            OPC_EmitMergeInputChains1_0,
/*479302*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUWrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (umin:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v8i16] }:$src1) - Complexity = 25
                      // Dst: (VPMINUWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*479314*/          /*SwitchType*/ 18, MVT::v8i32,// ->479334
/*479316*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*479318*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*479321*/            OPC_EmitMergeInputChains1_0,
/*479322*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (umin:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v8i32] }:$src1) - Complexity = 25
                      // Dst: (VPMINUDYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*479334*/          /*SwitchType*/ 18, MVT::v16i16,// ->479354
/*479336*/            OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*479338*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*479341*/            OPC_EmitMergeInputChains1_0,
/*479342*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (umin:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v16i16] }:$src1) - Complexity = 25
                      // Dst: (VPMINUWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*479354*/          0, // EndSwitchType
/*479355*/        /*Scope*/ 46, /*->479402*/
/*479356*/          OPC_CheckPredicate, 39, // Predicate_memop
/*479358*/          OPC_MoveParent,
/*479359*/          OPC_RecordChild1, // #2 = $src1
/*479360*/          OPC_SwitchType /*2 cases */, 18, MVT::v4i32,// ->479381
/*479363*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*479365*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*479368*/            OPC_EmitMergeInputChains1_0,
/*479369*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PMINUDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (umin:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:{ *:[v4i32] }:$src1) - Complexity = 25
                      // Dst: (PMINUDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*479381*/          /*SwitchType*/ 18, MVT::v8i16,// ->479401
/*479383*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*479385*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*479388*/            OPC_EmitMergeInputChains1_0,
/*479389*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PMINUWrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (umin:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:{ *:[v8i16] }:$src1) - Complexity = 25
                      // Dst: (PMINUWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*479401*/          0, // EndSwitchType
/*479402*/        /*Scope*/ 116|128,1/*244*/, /*->479648*/
/*479404*/          OPC_MoveParent,
/*479405*/          OPC_RecordChild1, // #2 = $src1
/*479406*/          OPC_SwitchType /*12 cases */, 18, MVT::v64i8,// ->479427
/*479409*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*479411*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*479414*/            OPC_EmitMergeInputChains1_0,
/*479415*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUBZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (umin:{ *:[v64i8] } (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v64i8] }:$src1) - Complexity = 25
                      // Dst: (VPMINUBZrm:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*479427*/          /*SwitchType*/ 18, MVT::v32i8,// ->479447
/*479429*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*479431*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*479434*/            OPC_EmitMergeInputChains1_0,
/*479435*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUBZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (umin:{ *:[v32i8] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v32i8] }:$src1) - Complexity = 25
                      // Dst: (VPMINUBZ256rm:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*479447*/          /*SwitchType*/ 18, MVT::v16i8,// ->479467
/*479449*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*479451*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*479454*/            OPC_EmitMergeInputChains1_0,
/*479455*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUBZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (umin:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v16i8] }:$src1) - Complexity = 25
                      // Dst: (VPMINUBZ128rm:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*479467*/          /*SwitchType*/ 18, MVT::v32i16,// ->479487
/*479469*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*479471*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*479474*/            OPC_EmitMergeInputChains1_0,
/*479475*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (umin:{ *:[v32i16] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1) - Complexity = 25
                      // Dst: (VPMINUWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*479487*/          /*SwitchType*/ 18, MVT::v16i16,// ->479507
/*479489*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*479491*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*479494*/            OPC_EmitMergeInputChains1_0,
/*479495*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (umin:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1) - Complexity = 25
                      // Dst: (VPMINUWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*479507*/          /*SwitchType*/ 18, MVT::v8i16,// ->479527
/*479509*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*479511*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*479514*/            OPC_EmitMergeInputChains1_0,
/*479515*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (umin:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1) - Complexity = 25
                      // Dst: (VPMINUWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*479527*/          /*SwitchType*/ 18, MVT::v16i32,// ->479547
/*479529*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*479531*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*479534*/            OPC_EmitMergeInputChains1_0,
/*479535*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (umin:{ *:[v16i32] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16i32] }:$src1) - Complexity = 25
                      // Dst: (VPMINUDZrm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*479547*/          /*SwitchType*/ 18, MVT::v8i32,// ->479567
/*479549*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*479551*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*479554*/            OPC_EmitMergeInputChains1_0,
/*479555*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (umin:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8i32] }:$src1) - Complexity = 25
                      // Dst: (VPMINUDZ256rm:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*479567*/          /*SwitchType*/ 18, MVT::v4i32,// ->479587
/*479569*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*479571*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*479574*/            OPC_EmitMergeInputChains1_0,
/*479575*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (umin:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4i32] }:$src1) - Complexity = 25
                      // Dst: (VPMINUDZ128rm:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*479587*/          /*SwitchType*/ 18, MVT::v8i64,// ->479607
/*479589*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*479591*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*479594*/            OPC_EmitMergeInputChains1_0,
/*479595*/            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>>, VR512:{ *:[v8i64] }:$src1) - Complexity = 25
                      // Dst: (VPMINUQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*479607*/          /*SwitchType*/ 18, MVT::v4i64,// ->479627
/*479609*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*479611*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*479614*/            OPC_EmitMergeInputChains1_0,
/*479615*/            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>>, VR256X:{ *:[v4i64] }:$src1) - Complexity = 25
                      // Dst: (VPMINUQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*479627*/          /*SwitchType*/ 18, MVT::v2i64,// ->479647
/*479629*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*479631*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*479634*/            OPC_EmitMergeInputChains1_0,
/*479635*/            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>>, VR128X:{ *:[v2i64] }:$src1) - Complexity = 25
                      // Dst: (VPMINUQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*479647*/          0, // EndSwitchType
/*479648*/        0, /*End of Scope*/
/*479649*/      /*SwitchOpcode*/ 12|128,1/*140*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->479793
/*479653*/        OPC_RecordMemRef,
/*479654*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*479655*/        OPC_CheckFoldableChainNode,
/*479656*/        OPC_RecordChild1, // #1 = $src2
/*479657*/        OPC_Scope, 66, /*->479725*/ // 2 children in Scope
/*479659*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*479661*/          OPC_MoveParent,
/*479662*/          OPC_RecordChild1, // #2 = $src1
/*479663*/          OPC_SwitchType /*3 cases */, 18, MVT::v16i32,// ->479684
/*479666*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*479668*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*479671*/            OPC_EmitMergeInputChains1_0,
/*479672*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (umin:{ *:[v16i32] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16i32] }:$src1) - Complexity = 25
                      // Dst: (VPMINUDZrmb:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*479684*/          /*SwitchType*/ 18, MVT::v8i32,// ->479704
/*479686*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*479688*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*479691*/            OPC_EmitMergeInputChains1_0,
/*479692*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (umin:{ *:[v8i32] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8i32] }:$src1) - Complexity = 25
                      // Dst: (VPMINUDZ256rmb:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*479704*/          /*SwitchType*/ 18, MVT::v4i32,// ->479724
/*479706*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*479708*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*479711*/            OPC_EmitMergeInputChains1_0,
/*479712*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (umin:{ *:[v4i32] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4i32] }:$src1) - Complexity = 25
                      // Dst: (VPMINUDZ128rmb:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*479724*/          0, // EndSwitchType
/*479725*/        /*Scope*/ 66, /*->479792*/
/*479726*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*479728*/          OPC_MoveParent,
/*479729*/          OPC_RecordChild1, // #2 = $src1
/*479730*/          OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->479751
/*479733*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*479735*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*479738*/            OPC_EmitMergeInputChains1_0,
/*479739*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (umin:{ *:[v8i64] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8i64] }:$src1) - Complexity = 25
                      // Dst: (VPMINUQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*479751*/          /*SwitchType*/ 18, MVT::v4i64,// ->479771
/*479753*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*479755*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*479758*/            OPC_EmitMergeInputChains1_0,
/*479759*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (umin:{ *:[v4i64] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src1) - Complexity = 25
                      // Dst: (VPMINUQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*479771*/          /*SwitchType*/ 18, MVT::v2i64,// ->479791
/*479773*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*479775*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*479778*/            OPC_EmitMergeInputChains1_0,
/*479779*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINUQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (umin:{ *:[v2i64] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src1) - Complexity = 25
                      // Dst: (VPMINUQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*479791*/          0, // EndSwitchType
/*479792*/        0, /*End of Scope*/
/*479793*/      0, // EndSwitchOpcode
/*479794*/    /*Scope*/ 112, /*->479907*/
/*479795*/      OPC_RecordChild0, // #0 = $src1
/*479796*/      OPC_MoveChild1,
/*479797*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*479800*/      OPC_RecordMemRef,
/*479801*/      OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*479802*/      OPC_CheckFoldableChainNode,
/*479803*/      OPC_RecordChild1, // #2 = $src2
/*479804*/      OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*479806*/      OPC_MoveParent,
/*479807*/      OPC_SwitchType /*2 cases */, 47, MVT::v4i64,// ->479857
/*479810*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*479812*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*479815*/        OPC_EmitMergeInputChains1_1,
/*479816*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #8
/*479822*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*479825*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 8, 0, 9,  // Results = #10
/*479834*/        OPC_EmitNode1, TARGET_VAL(X86::VPMINUQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v64i8, 6/*#Ops*/, 10, 3, 4, 5, 6, 7,  // Results = #11
/*479846*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*479849*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0|OPFL_Chain,
                      MVT::v4i64, 2/*#Ops*/, 11, 12, 
                  // Src: (umin:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                  // Dst: (EXTRACT_SUBREG:{ *:[v4i64] } (VPMINUQZrmb:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2), sub_ymm:{ *:[i32] })
/*479857*/      /*SwitchType*/ 47, MVT::v2i64,// ->479906
/*479859*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*479861*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*479864*/        OPC_EmitMergeInputChains1_1,
/*479865*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #8
/*479871*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*479874*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 8, 0, 9,  // Results = #10
/*479883*/        OPC_EmitNode1, TARGET_VAL(X86::VPMINUQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v64i8, 6/*#Ops*/, 10, 3, 4, 5, 6, 7,  // Results = #11
/*479895*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*479898*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0|OPFL_Chain,
                      MVT::v2i64, 2/*#Ops*/, 11, 12, 
                  // Src: (umin:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                  // Dst: (EXTRACT_SUBREG:{ *:[v2i64] } (VPMINUQZrmb:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2), sub_xmm:{ *:[i32] })
/*479906*/      0, // EndSwitchType
/*479907*/    /*Scope*/ 112, /*->480020*/
/*479908*/      OPC_MoveChild0,
/*479909*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*479912*/      OPC_RecordMemRef,
/*479913*/      OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*479914*/      OPC_CheckFoldableChainNode,
/*479915*/      OPC_RecordChild1, // #1 = $src2
/*479916*/      OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*479918*/      OPC_MoveParent,
/*479919*/      OPC_RecordChild1, // #2 = $src1
/*479920*/      OPC_SwitchType /*2 cases */, 47, MVT::v4i64,// ->479970
/*479923*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*479925*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*479928*/        OPC_EmitMergeInputChains1_0,
/*479929*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #8
/*479935*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*479938*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/*479947*/        OPC_EmitNode1, TARGET_VAL(X86::VPMINUQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v64i8, 6/*#Ops*/, 10, 3, 4, 5, 6, 7,  // Results = #11
/*479959*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*479962*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0|OPFL_Chain,
                      MVT::v4i64, 2/*#Ops*/, 11, 12, 
                  // Src: (umin:{ *:[v4i64] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src1) - Complexity = 25
                  // Dst: (EXTRACT_SUBREG:{ *:[v4i64] } (VPMINUQZrmb:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2), sub_ymm:{ *:[i32] })
/*479970*/      /*SwitchType*/ 47, MVT::v2i64,// ->480019
/*479972*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*479974*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*479977*/        OPC_EmitMergeInputChains1_0,
/*479978*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #8
/*479984*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*479987*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/*479996*/        OPC_EmitNode1, TARGET_VAL(X86::VPMINUQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v64i8, 6/*#Ops*/, 10, 3, 4, 5, 6, 7,  // Results = #11
/*480008*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*480011*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0|OPFL_Chain,
                      MVT::v2i64, 2/*#Ops*/, 11, 12, 
                  // Src: (umin:{ *:[v2i64] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src1) - Complexity = 25
                  // Dst: (EXTRACT_SUBREG:{ *:[v2i64] } (VPMINUQZrmb:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2), sub_xmm:{ *:[i32] })
/*480019*/      0, // EndSwitchType
/*480020*/    /*Scope*/ 3|128,3/*387*/, /*->480409*/
/*480022*/      OPC_RecordChild0, // #0 = $src1
/*480023*/      OPC_RecordChild1, // #1 = $src2
/*480024*/      OPC_SwitchType /*12 cases */, 35, MVT::v16i8,// ->480062
/*480027*/        OPC_Scope, 10, /*->480039*/ // 3 children in Scope
/*480029*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*480031*/          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)
/*480039*/        /*Scope*/ 10, /*->480050*/
/*480040*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*480042*/          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)
/*480050*/        /*Scope*/ 10, /*->480061*/
/*480051*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*480053*/          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)
/*480061*/        0, /*End of Scope*/
/*480062*/      /*SwitchType*/ 24, MVT::v32i8,// ->480088
/*480064*/        OPC_Scope, 10, /*->480076*/ // 2 children in Scope
/*480066*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*480068*/          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)
/*480076*/        /*Scope*/ 10, /*->480087*/
/*480077*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*480079*/          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)
/*480087*/        0, /*End of Scope*/
/*480088*/      /*SwitchType*/ 35, MVT::v4i32,// ->480125
/*480090*/        OPC_Scope, 10, /*->480102*/ // 3 children in Scope
/*480092*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*480094*/          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)
/*480102*/        /*Scope*/ 10, /*->480113*/
/*480103*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*480105*/          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)
/*480113*/        /*Scope*/ 10, /*->480124*/
/*480114*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*480116*/          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)
/*480124*/        0, /*End of Scope*/
/*480125*/      /*SwitchType*/ 35, MVT::v8i16,// ->480162
/*480127*/        OPC_Scope, 10, /*->480139*/ // 3 children in Scope
/*480129*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*480131*/          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)
/*480139*/        /*Scope*/ 10, /*->480150*/
/*480140*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*480142*/          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)
/*480150*/        /*Scope*/ 10, /*->480161*/
/*480151*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*480153*/          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)
/*480161*/        0, /*End of Scope*/
/*480162*/      /*SwitchType*/ 24, MVT::v8i32,// ->480188
/*480164*/        OPC_Scope, 10, /*->480176*/ // 2 children in Scope
/*480166*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*480168*/          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)
/*480176*/        /*Scope*/ 10, /*->480187*/
/*480177*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*480179*/          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)
/*480187*/        0, /*End of Scope*/
/*480188*/      /*SwitchType*/ 24, MVT::v16i16,// ->480214
/*480190*/        OPC_Scope, 10, /*->480202*/ // 2 children in Scope
/*480192*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*480194*/          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)
/*480202*/        /*Scope*/ 10, /*->480213*/
/*480203*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*480205*/          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)
/*480213*/        0, /*End of Scope*/
/*480214*/      /*SwitchType*/ 10, MVT::v64i8,// ->480226
/*480216*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*480218*/        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)
/*480226*/      /*SwitchType*/ 10, MVT::v32i16,// ->480238
/*480228*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*480230*/        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)
/*480238*/      /*SwitchType*/ 10, MVT::v16i32,// ->480250
/*480240*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*480242*/        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)
/*480250*/      /*SwitchType*/ 10, MVT::v8i64,// ->480262
/*480252*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*480254*/        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)
/*480262*/      /*SwitchType*/ 71, MVT::v4i64,// ->480335
/*480264*/        OPC_Scope, 10, /*->480276*/ // 2 children in Scope
/*480266*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*480268*/          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)
/*480276*/        /*Scope*/ 57, /*->480334*/
/*480277*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*480279*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #2
/*480285*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*480288*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*480297*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #5
/*480303*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*480306*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*480315*/          OPC_EmitNode1, TARGET_VAL(X86::VPMINUQZrr), 0,
                        MVT::v64i8, 2/*#Ops*/, 4, 7,  // Results = #8
/*480323*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*480326*/          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] })
/*480334*/        0, /*End of Scope*/
/*480335*/      /*SwitchType*/ 71, MVT::v2i64,// ->480408
/*480337*/        OPC_Scope, 10, /*->480349*/ // 2 children in Scope
/*480339*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*480341*/          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)
/*480349*/        /*Scope*/ 57, /*->480407*/
/*480350*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*480352*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #2
/*480358*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*480361*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*480370*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #5
/*480376*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*480379*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*480388*/          OPC_EmitNode1, TARGET_VAL(X86::VPMINUQZrr), 0,
                        MVT::v64i8, 2/*#Ops*/, 4, 7,  // Results = #8
/*480396*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*480399*/          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] })
/*480407*/        0, /*End of Scope*/
/*480408*/      0, // EndSwitchType
/*480409*/    0, /*End of Scope*/
/*480410*/  /*SwitchOpcode*/ 37|128,14/*1829*/, TARGET_VAL(ISD::SMIN),// ->482243
/*480414*/    OPC_Scope, 89|128,4/*601*/, /*->481018*/ // 5 children in Scope
/*480417*/      OPC_RecordChild0, // #0 = $src1
/*480418*/      OPC_MoveChild1,
/*480419*/      OPC_SwitchOpcode /*2 cases */, 67|128,3/*451*/, TARGET_VAL(ISD::LOAD),// ->480875
/*480424*/        OPC_RecordMemRef,
/*480425*/        OPC_RecordNode, // #1 = 'ld' chained node
/*480426*/        OPC_CheckFoldableChainNode,
/*480427*/        OPC_RecordChild1, // #2 = $src2
/*480428*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*480430*/        OPC_CheckPredicate, 9, // Predicate_load
/*480432*/        OPC_Scope, 21, /*->480455*/ // 5 children in Scope
/*480434*/          OPC_MoveParent,
/*480435*/          OPC_CheckType, MVT::v8i16,
/*480437*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*480439*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*480442*/          OPC_EmitMergeInputChains1_1,
/*480443*/          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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPMINSWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*480455*/        /*Scope*/ 23, /*->480479*/
/*480456*/          OPC_CheckPredicate, 39, // Predicate_memop
/*480458*/          OPC_MoveParent,
/*480459*/          OPC_CheckType, MVT::v8i16,
/*480461*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*480463*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*480466*/          OPC_EmitMergeInputChains1_1,
/*480467*/          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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                    // Dst: (PMINSWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*480479*/        /*Scope*/ 103, /*->480583*/
/*480480*/          OPC_MoveParent,
/*480481*/          OPC_SwitchType /*5 cases */, 18, MVT::v16i16,// ->480502
/*480484*/            OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*480486*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*480489*/            OPC_EmitMergeInputChains1_1,
/*480490*/            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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMINSWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*480502*/          /*SwitchType*/ 18, MVT::v4i32,// ->480522
/*480504*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*480506*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*480509*/            OPC_EmitMergeInputChains1_1,
/*480510*/            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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMINSDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*480522*/          /*SwitchType*/ 18, MVT::v16i8,// ->480542
/*480524*/            OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*480526*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*480529*/            OPC_EmitMergeInputChains1_1,
/*480530*/            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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMINSBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*480542*/          /*SwitchType*/ 18, MVT::v8i32,// ->480562
/*480544*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*480546*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*480549*/            OPC_EmitMergeInputChains1_1,
/*480550*/            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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMINSDYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*480562*/          /*SwitchType*/ 18, MVT::v32i8,// ->480582
/*480564*/            OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*480566*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*480569*/            OPC_EmitMergeInputChains1_1,
/*480570*/            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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMINSBYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*480582*/          0, // EndSwitchType
/*480583*/        /*Scope*/ 45, /*->480629*/
/*480584*/          OPC_CheckPredicate, 39, // Predicate_memop
/*480586*/          OPC_MoveParent,
/*480587*/          OPC_SwitchType /*2 cases */, 18, MVT::v16i8,// ->480608
/*480590*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*480592*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*480595*/            OPC_EmitMergeInputChains1_1,
/*480596*/            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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                      // Dst: (PMINSBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*480608*/          /*SwitchType*/ 18, MVT::v4i32,// ->480628
/*480610*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*480612*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*480615*/            OPC_EmitMergeInputChains1_1,
/*480616*/            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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                      // Dst: (PMINSDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*480628*/          0, // EndSwitchType
/*480629*/        /*Scope*/ 115|128,1/*243*/, /*->480874*/
/*480631*/          OPC_MoveParent,
/*480632*/          OPC_SwitchType /*12 cases */, 18, MVT::v64i8,// ->480653
/*480635*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*480637*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*480640*/            OPC_EmitMergeInputChains1_1,
/*480641*/            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, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMINSBZrm:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*480653*/          /*SwitchType*/ 18, MVT::v32i8,// ->480673
/*480655*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*480657*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*480660*/            OPC_EmitMergeInputChains1_1,
/*480661*/            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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMINSBZ256rm:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*480673*/          /*SwitchType*/ 18, MVT::v16i8,// ->480693
/*480675*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*480677*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*480680*/            OPC_EmitMergeInputChains1_1,
/*480681*/            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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMINSBZ128rm:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*480693*/          /*SwitchType*/ 18, MVT::v32i16,// ->480713
/*480695*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*480697*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*480700*/            OPC_EmitMergeInputChains1_1,
/*480701*/            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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMINSWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*480713*/          /*SwitchType*/ 18, MVT::v16i16,// ->480733
/*480715*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*480717*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*480720*/            OPC_EmitMergeInputChains1_1,
/*480721*/            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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMINSWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*480733*/          /*SwitchType*/ 18, MVT::v8i16,// ->480753
/*480735*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*480737*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*480740*/            OPC_EmitMergeInputChains1_1,
/*480741*/            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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMINSWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*480753*/          /*SwitchType*/ 18, MVT::v16i32,// ->480773
/*480755*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*480757*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*480760*/            OPC_EmitMergeInputChains1_1,
/*480761*/            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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMINSDZrm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*480773*/          /*SwitchType*/ 18, MVT::v8i32,// ->480793
/*480775*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*480777*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*480780*/            OPC_EmitMergeInputChains1_1,
/*480781*/            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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMINSDZ256rm:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*480793*/          /*SwitchType*/ 18, MVT::v4i32,// ->480813
/*480795*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*480797*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*480800*/            OPC_EmitMergeInputChains1_1,
/*480801*/            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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMINSDZ128rm:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*480813*/          /*SwitchType*/ 18, MVT::v8i64,// ->480833
/*480815*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*480817*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*480820*/            OPC_EmitMergeInputChains1_1,
/*480821*/            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>>) - Complexity = 25
                      // Dst: (VPMINSQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*480833*/          /*SwitchType*/ 18, MVT::v4i64,// ->480853
/*480835*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*480837*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*480840*/            OPC_EmitMergeInputChains1_1,
/*480841*/            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>>) - Complexity = 25
                      // Dst: (VPMINSQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*480853*/          /*SwitchType*/ 18, MVT::v2i64,// ->480873
/*480855*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*480857*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*480860*/            OPC_EmitMergeInputChains1_1,
/*480861*/            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>>) - Complexity = 25
                      // Dst: (VPMINSQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*480873*/          0, // EndSwitchType
/*480874*/        0, /*End of Scope*/
/*480875*/      /*SwitchOpcode*/ 10|128,1/*138*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->481017
/*480879*/        OPC_RecordMemRef,
/*480880*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*480881*/        OPC_CheckFoldableChainNode,
/*480882*/        OPC_RecordChild1, // #2 = $src2
/*480883*/        OPC_Scope, 65, /*->480950*/ // 2 children in Scope
/*480885*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*480887*/          OPC_MoveParent,
/*480888*/          OPC_SwitchType /*3 cases */, 18, MVT::v16i32,// ->480909
/*480891*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*480893*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*480896*/            OPC_EmitMergeInputChains1_1,
/*480897*/            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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPMINSDZrmb:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*480909*/          /*SwitchType*/ 18, MVT::v8i32,// ->480929
/*480911*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*480913*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*480916*/            OPC_EmitMergeInputChains1_1,
/*480917*/            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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPMINSDZ256rmb:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*480929*/          /*SwitchType*/ 18, MVT::v4i32,// ->480949
/*480931*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*480933*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*480936*/            OPC_EmitMergeInputChains1_1,
/*480937*/            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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPMINSDZ128rmb:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*480949*/          0, // EndSwitchType
/*480950*/        /*Scope*/ 65, /*->481016*/
/*480951*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*480953*/          OPC_MoveParent,
/*480954*/          OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->480975
/*480957*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*480959*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*480962*/            OPC_EmitMergeInputChains1_1,
/*480963*/            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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPMINSQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*480975*/          /*SwitchType*/ 18, MVT::v4i64,// ->480995
/*480977*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*480979*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*480982*/            OPC_EmitMergeInputChains1_1,
/*480983*/            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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPMINSQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*480995*/          /*SwitchType*/ 18, MVT::v2i64,// ->481015
/*480997*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*480999*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*481002*/            OPC_EmitMergeInputChains1_1,
/*481003*/            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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPMINSQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*481015*/          0, // EndSwitchType
/*481016*/        0, /*End of Scope*/
/*481017*/      0, // EndSwitchOpcode
/*481018*/    /*Scope*/ 95|128,4/*607*/, /*->481627*/
/*481020*/      OPC_MoveChild0,
/*481021*/      OPC_SwitchOpcode /*2 cases */, 72|128,3/*456*/, TARGET_VAL(ISD::LOAD),// ->481482
/*481026*/        OPC_RecordMemRef,
/*481027*/        OPC_RecordNode, // #0 = 'ld' chained node
/*481028*/        OPC_CheckFoldableChainNode,
/*481029*/        OPC_RecordChild1, // #1 = $src2
/*481030*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*481032*/        OPC_CheckPredicate, 9, // Predicate_load
/*481034*/        OPC_Scope, 22, /*->481058*/ // 5 children in Scope
/*481036*/          OPC_MoveParent,
/*481037*/          OPC_RecordChild1, // #2 = $src1
/*481038*/          OPC_CheckType, MVT::v8i16,
/*481040*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*481042*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*481045*/          OPC_EmitMergeInputChains1_0,
/*481046*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (smin:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v8i16] }:$src1) - Complexity = 25
                    // Dst: (VPMINSWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*481058*/        /*Scope*/ 24, /*->481083*/
/*481059*/          OPC_CheckPredicate, 39, // Predicate_memop
/*481061*/          OPC_MoveParent,
/*481062*/          OPC_RecordChild1, // #2 = $src1
/*481063*/          OPC_CheckType, MVT::v8i16,
/*481065*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*481067*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*481070*/          OPC_EmitMergeInputChains1_0,
/*481071*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PMINSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (smin:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:{ *:[v8i16] }:$src1) - Complexity = 25
                    // Dst: (PMINSWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*481083*/        /*Scope*/ 104, /*->481188*/
/*481084*/          OPC_MoveParent,
/*481085*/          OPC_RecordChild1, // #2 = $src1
/*481086*/          OPC_SwitchType /*5 cases */, 18, MVT::v16i16,// ->481107
/*481089*/            OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*481091*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*481094*/            OPC_EmitMergeInputChains1_0,
/*481095*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (smin:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v16i16] }:$src1) - Complexity = 25
                      // Dst: (VPMINSWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*481107*/          /*SwitchType*/ 18, MVT::v4i32,// ->481127
/*481109*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*481111*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*481114*/            OPC_EmitMergeInputChains1_0,
/*481115*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (smin:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v4i32] }:$src1) - Complexity = 25
                      // Dst: (VPMINSDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*481127*/          /*SwitchType*/ 18, MVT::v16i8,// ->481147
/*481129*/            OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*481131*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*481134*/            OPC_EmitMergeInputChains1_0,
/*481135*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (smin:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v16i8] }:$src1) - Complexity = 25
                      // Dst: (VPMINSBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*481147*/          /*SwitchType*/ 18, MVT::v8i32,// ->481167
/*481149*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*481151*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*481154*/            OPC_EmitMergeInputChains1_0,
/*481155*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (smin:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v8i32] }:$src1) - Complexity = 25
                      // Dst: (VPMINSDYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*481167*/          /*SwitchType*/ 18, MVT::v32i8,// ->481187
/*481169*/            OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*481171*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*481174*/            OPC_EmitMergeInputChains1_0,
/*481175*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSBYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (smin:{ *:[v32i8] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v32i8] }:$src1) - Complexity = 25
                      // Dst: (VPMINSBYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*481187*/          0, // EndSwitchType
/*481188*/        /*Scope*/ 46, /*->481235*/
/*481189*/          OPC_CheckPredicate, 39, // Predicate_memop
/*481191*/          OPC_MoveParent,
/*481192*/          OPC_RecordChild1, // #2 = $src1
/*481193*/          OPC_SwitchType /*2 cases */, 18, MVT::v16i8,// ->481214
/*481196*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*481198*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*481201*/            OPC_EmitMergeInputChains1_0,
/*481202*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PMINSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (smin:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:{ *:[v16i8] }:$src1) - Complexity = 25
                      // Dst: (PMINSBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*481214*/          /*SwitchType*/ 18, MVT::v4i32,// ->481234
/*481216*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*481218*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*481221*/            OPC_EmitMergeInputChains1_0,
/*481222*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PMINSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (smin:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:{ *:[v4i32] }:$src1) - Complexity = 25
                      // Dst: (PMINSDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*481234*/          0, // EndSwitchType
/*481235*/        /*Scope*/ 116|128,1/*244*/, /*->481481*/
/*481237*/          OPC_MoveParent,
/*481238*/          OPC_RecordChild1, // #2 = $src1
/*481239*/          OPC_SwitchType /*12 cases */, 18, MVT::v64i8,// ->481260
/*481242*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*481244*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*481247*/            OPC_EmitMergeInputChains1_0,
/*481248*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSBZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (smin:{ *:[v64i8] } (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v64i8] }:$src1) - Complexity = 25
                      // Dst: (VPMINSBZrm:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*481260*/          /*SwitchType*/ 18, MVT::v32i8,// ->481280
/*481262*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*481264*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*481267*/            OPC_EmitMergeInputChains1_0,
/*481268*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSBZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (smin:{ *:[v32i8] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v32i8] }:$src1) - Complexity = 25
                      // Dst: (VPMINSBZ256rm:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*481280*/          /*SwitchType*/ 18, MVT::v16i8,// ->481300
/*481282*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*481284*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*481287*/            OPC_EmitMergeInputChains1_0,
/*481288*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSBZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (smin:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v16i8] }:$src1) - Complexity = 25
                      // Dst: (VPMINSBZ128rm:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*481300*/          /*SwitchType*/ 18, MVT::v32i16,// ->481320
/*481302*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*481304*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*481307*/            OPC_EmitMergeInputChains1_0,
/*481308*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (smin:{ *:[v32i16] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1) - Complexity = 25
                      // Dst: (VPMINSWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*481320*/          /*SwitchType*/ 18, MVT::v16i16,// ->481340
/*481322*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*481324*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*481327*/            OPC_EmitMergeInputChains1_0,
/*481328*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (smin:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1) - Complexity = 25
                      // Dst: (VPMINSWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*481340*/          /*SwitchType*/ 18, MVT::v8i16,// ->481360
/*481342*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*481344*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*481347*/            OPC_EmitMergeInputChains1_0,
/*481348*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (smin:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1) - Complexity = 25
                      // Dst: (VPMINSWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*481360*/          /*SwitchType*/ 18, MVT::v16i32,// ->481380
/*481362*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*481364*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*481367*/            OPC_EmitMergeInputChains1_0,
/*481368*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (smin:{ *:[v16i32] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16i32] }:$src1) - Complexity = 25
                      // Dst: (VPMINSDZrm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*481380*/          /*SwitchType*/ 18, MVT::v8i32,// ->481400
/*481382*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*481384*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*481387*/            OPC_EmitMergeInputChains1_0,
/*481388*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (smin:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8i32] }:$src1) - Complexity = 25
                      // Dst: (VPMINSDZ256rm:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*481400*/          /*SwitchType*/ 18, MVT::v4i32,// ->481420
/*481402*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*481404*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*481407*/            OPC_EmitMergeInputChains1_0,
/*481408*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (smin:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4i32] }:$src1) - Complexity = 25
                      // Dst: (VPMINSDZ128rm:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*481420*/          /*SwitchType*/ 18, MVT::v8i64,// ->481440
/*481422*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*481424*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*481427*/            OPC_EmitMergeInputChains1_0,
/*481428*/            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>>, VR512:{ *:[v8i64] }:$src1) - Complexity = 25
                      // Dst: (VPMINSQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*481440*/          /*SwitchType*/ 18, MVT::v4i64,// ->481460
/*481442*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*481444*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*481447*/            OPC_EmitMergeInputChains1_0,
/*481448*/            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>>, VR256X:{ *:[v4i64] }:$src1) - Complexity = 25
                      // Dst: (VPMINSQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*481460*/          /*SwitchType*/ 18, MVT::v2i64,// ->481480
/*481462*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*481464*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*481467*/            OPC_EmitMergeInputChains1_0,
/*481468*/            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>>, VR128X:{ *:[v2i64] }:$src1) - Complexity = 25
                      // Dst: (VPMINSQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*481480*/          0, // EndSwitchType
/*481481*/        0, /*End of Scope*/
/*481482*/      /*SwitchOpcode*/ 12|128,1/*140*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->481626
/*481486*/        OPC_RecordMemRef,
/*481487*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*481488*/        OPC_CheckFoldableChainNode,
/*481489*/        OPC_RecordChild1, // #1 = $src2
/*481490*/        OPC_Scope, 66, /*->481558*/ // 2 children in Scope
/*481492*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*481494*/          OPC_MoveParent,
/*481495*/          OPC_RecordChild1, // #2 = $src1
/*481496*/          OPC_SwitchType /*3 cases */, 18, MVT::v16i32,// ->481517
/*481499*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*481501*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*481504*/            OPC_EmitMergeInputChains1_0,
/*481505*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (smin:{ *:[v16i32] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16i32] }:$src1) - Complexity = 25
                      // Dst: (VPMINSDZrmb:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*481517*/          /*SwitchType*/ 18, MVT::v8i32,// ->481537
/*481519*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*481521*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*481524*/            OPC_EmitMergeInputChains1_0,
/*481525*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (smin:{ *:[v8i32] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8i32] }:$src1) - Complexity = 25
                      // Dst: (VPMINSDZ256rmb:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*481537*/          /*SwitchType*/ 18, MVT::v4i32,// ->481557
/*481539*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*481541*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*481544*/            OPC_EmitMergeInputChains1_0,
/*481545*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (smin:{ *:[v4i32] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4i32] }:$src1) - Complexity = 25
                      // Dst: (VPMINSDZ128rmb:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*481557*/          0, // EndSwitchType
/*481558*/        /*Scope*/ 66, /*->481625*/
/*481559*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*481561*/          OPC_MoveParent,
/*481562*/          OPC_RecordChild1, // #2 = $src1
/*481563*/          OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->481584
/*481566*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*481568*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*481571*/            OPC_EmitMergeInputChains1_0,
/*481572*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (smin:{ *:[v8i64] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8i64] }:$src1) - Complexity = 25
                      // Dst: (VPMINSQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*481584*/          /*SwitchType*/ 18, MVT::v4i64,// ->481604
/*481586*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*481588*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*481591*/            OPC_EmitMergeInputChains1_0,
/*481592*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (smin:{ *:[v4i64] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src1) - Complexity = 25
                      // Dst: (VPMINSQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*481604*/          /*SwitchType*/ 18, MVT::v2i64,// ->481624
/*481606*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*481608*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*481611*/            OPC_EmitMergeInputChains1_0,
/*481612*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMINSQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (smin:{ *:[v2i64] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src1) - Complexity = 25
                      // Dst: (VPMINSQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*481624*/          0, // EndSwitchType
/*481625*/        0, /*End of Scope*/
/*481626*/      0, // EndSwitchOpcode
/*481627*/    /*Scope*/ 112, /*->481740*/
/*481628*/      OPC_RecordChild0, // #0 = $src1
/*481629*/      OPC_MoveChild1,
/*481630*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*481633*/      OPC_RecordMemRef,
/*481634*/      OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*481635*/      OPC_CheckFoldableChainNode,
/*481636*/      OPC_RecordChild1, // #2 = $src2
/*481637*/      OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*481639*/      OPC_MoveParent,
/*481640*/      OPC_SwitchType /*2 cases */, 47, MVT::v4i64,// ->481690
/*481643*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*481645*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*481648*/        OPC_EmitMergeInputChains1_1,
/*481649*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #8
/*481655*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*481658*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 8, 0, 9,  // Results = #10
/*481667*/        OPC_EmitNode1, TARGET_VAL(X86::VPMINSQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v64i8, 6/*#Ops*/, 10, 3, 4, 5, 6, 7,  // Results = #11
/*481679*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*481682*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0|OPFL_Chain,
                      MVT::v4i64, 2/*#Ops*/, 11, 12, 
                  // Src: (smin:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                  // Dst: (EXTRACT_SUBREG:{ *:[v4i64] } (VPMINSQZrmb:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2), sub_ymm:{ *:[i32] })
/*481690*/      /*SwitchType*/ 47, MVT::v2i64,// ->481739
/*481692*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*481694*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*481697*/        OPC_EmitMergeInputChains1_1,
/*481698*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #8
/*481704*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*481707*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 8, 0, 9,  // Results = #10
/*481716*/        OPC_EmitNode1, TARGET_VAL(X86::VPMINSQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v64i8, 6/*#Ops*/, 10, 3, 4, 5, 6, 7,  // Results = #11
/*481728*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*481731*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0|OPFL_Chain,
                      MVT::v2i64, 2/*#Ops*/, 11, 12, 
                  // Src: (smin:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                  // Dst: (EXTRACT_SUBREG:{ *:[v2i64] } (VPMINSQZrmb:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2), sub_xmm:{ *:[i32] })
/*481739*/      0, // EndSwitchType
/*481740*/    /*Scope*/ 112, /*->481853*/
/*481741*/      OPC_MoveChild0,
/*481742*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*481745*/      OPC_RecordMemRef,
/*481746*/      OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*481747*/      OPC_CheckFoldableChainNode,
/*481748*/      OPC_RecordChild1, // #1 = $src2
/*481749*/      OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*481751*/      OPC_MoveParent,
/*481752*/      OPC_RecordChild1, // #2 = $src1
/*481753*/      OPC_SwitchType /*2 cases */, 47, MVT::v4i64,// ->481803
/*481756*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*481758*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*481761*/        OPC_EmitMergeInputChains1_0,
/*481762*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #8
/*481768*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*481771*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/*481780*/        OPC_EmitNode1, TARGET_VAL(X86::VPMINSQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v64i8, 6/*#Ops*/, 10, 3, 4, 5, 6, 7,  // Results = #11
/*481792*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*481795*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0|OPFL_Chain,
                      MVT::v4i64, 2/*#Ops*/, 11, 12, 
                  // Src: (smin:{ *:[v4i64] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src1) - Complexity = 25
                  // Dst: (EXTRACT_SUBREG:{ *:[v4i64] } (VPMINSQZrmb:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2), sub_ymm:{ *:[i32] })
/*481803*/      /*SwitchType*/ 47, MVT::v2i64,// ->481852
/*481805*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*481807*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*481810*/        OPC_EmitMergeInputChains1_0,
/*481811*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #8
/*481817*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*481820*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/*481829*/        OPC_EmitNode1, TARGET_VAL(X86::VPMINSQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v64i8, 6/*#Ops*/, 10, 3, 4, 5, 6, 7,  // Results = #11
/*481841*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*481844*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0|OPFL_Chain,
                      MVT::v2i64, 2/*#Ops*/, 11, 12, 
                  // Src: (smin:{ *:[v2i64] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src1) - Complexity = 25
                  // Dst: (EXTRACT_SUBREG:{ *:[v2i64] } (VPMINSQZrmb:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2), sub_xmm:{ *:[i32] })
/*481852*/      0, // EndSwitchType
/*481853*/    /*Scope*/ 3|128,3/*387*/, /*->482242*/
/*481855*/      OPC_RecordChild0, // #0 = $src1
/*481856*/      OPC_RecordChild1, // #1 = $src2
/*481857*/      OPC_SwitchType /*12 cases */, 35, MVT::v8i16,// ->481895
/*481860*/        OPC_Scope, 10, /*->481872*/ // 3 children in Scope
/*481862*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*481864*/          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)
/*481872*/        /*Scope*/ 10, /*->481883*/
/*481873*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*481875*/          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)
/*481883*/        /*Scope*/ 10, /*->481894*/
/*481884*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*481886*/          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)
/*481894*/        0, /*End of Scope*/
/*481895*/      /*SwitchType*/ 24, MVT::v16i16,// ->481921
/*481897*/        OPC_Scope, 10, /*->481909*/ // 2 children in Scope
/*481899*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*481901*/          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)
/*481909*/        /*Scope*/ 10, /*->481920*/
/*481910*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*481912*/          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)
/*481920*/        0, /*End of Scope*/
/*481921*/      /*SwitchType*/ 35, MVT::v4i32,// ->481958
/*481923*/        OPC_Scope, 10, /*->481935*/ // 3 children in Scope
/*481925*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*481927*/          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)
/*481935*/        /*Scope*/ 10, /*->481946*/
/*481936*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*481938*/          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)
/*481946*/        /*Scope*/ 10, /*->481957*/
/*481947*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*481949*/          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)
/*481957*/        0, /*End of Scope*/
/*481958*/      /*SwitchType*/ 35, MVT::v16i8,// ->481995
/*481960*/        OPC_Scope, 10, /*->481972*/ // 3 children in Scope
/*481962*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*481964*/          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)
/*481972*/        /*Scope*/ 10, /*->481983*/
/*481973*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*481975*/          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)
/*481983*/        /*Scope*/ 10, /*->481994*/
/*481984*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*481986*/          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)
/*481994*/        0, /*End of Scope*/
/*481995*/      /*SwitchType*/ 24, MVT::v8i32,// ->482021
/*481997*/        OPC_Scope, 10, /*->482009*/ // 2 children in Scope
/*481999*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*482001*/          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)
/*482009*/        /*Scope*/ 10, /*->482020*/
/*482010*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*482012*/          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)
/*482020*/        0, /*End of Scope*/
/*482021*/      /*SwitchType*/ 24, MVT::v32i8,// ->482047
/*482023*/        OPC_Scope, 10, /*->482035*/ // 2 children in Scope
/*482025*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*482027*/          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)
/*482035*/        /*Scope*/ 10, /*->482046*/
/*482036*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*482038*/          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)
/*482046*/        0, /*End of Scope*/
/*482047*/      /*SwitchType*/ 10, MVT::v64i8,// ->482059
/*482049*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*482051*/        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)
/*482059*/      /*SwitchType*/ 10, MVT::v32i16,// ->482071
/*482061*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*482063*/        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)
/*482071*/      /*SwitchType*/ 10, MVT::v16i32,// ->482083
/*482073*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*482075*/        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)
/*482083*/      /*SwitchType*/ 10, MVT::v8i64,// ->482095
/*482085*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*482087*/        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)
/*482095*/      /*SwitchType*/ 71, MVT::v4i64,// ->482168
/*482097*/        OPC_Scope, 10, /*->482109*/ // 2 children in Scope
/*482099*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*482101*/          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)
/*482109*/        /*Scope*/ 57, /*->482167*/
/*482110*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*482112*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #2
/*482118*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*482121*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*482130*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #5
/*482136*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*482139*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*482148*/          OPC_EmitNode1, TARGET_VAL(X86::VPMINSQZrr), 0,
                        MVT::v64i8, 2/*#Ops*/, 4, 7,  // Results = #8
/*482156*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*482159*/          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] })
/*482167*/        0, /*End of Scope*/
/*482168*/      /*SwitchType*/ 71, MVT::v2i64,// ->482241
/*482170*/        OPC_Scope, 10, /*->482182*/ // 2 children in Scope
/*482172*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*482174*/          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)
/*482182*/        /*Scope*/ 57, /*->482240*/
/*482183*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*482185*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #2
/*482191*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*482194*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*482203*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #5
/*482209*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*482212*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*482221*/          OPC_EmitNode1, TARGET_VAL(X86::VPMINSQZrr), 0,
                        MVT::v64i8, 2/*#Ops*/, 4, 7,  // Results = #8
/*482229*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*482232*/          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] })
/*482240*/        0, /*End of Scope*/
/*482241*/      0, // EndSwitchType
/*482242*/    0, /*End of Scope*/
/*482243*/  /*SwitchOpcode*/ 37|128,14/*1829*/, TARGET_VAL(ISD::UMAX),// ->484076
/*482247*/    OPC_Scope, 89|128,4/*601*/, /*->482851*/ // 5 children in Scope
/*482250*/      OPC_RecordChild0, // #0 = $src1
/*482251*/      OPC_MoveChild1,
/*482252*/      OPC_SwitchOpcode /*2 cases */, 67|128,3/*451*/, TARGET_VAL(ISD::LOAD),// ->482708
/*482257*/        OPC_RecordMemRef,
/*482258*/        OPC_RecordNode, // #1 = 'ld' chained node
/*482259*/        OPC_CheckFoldableChainNode,
/*482260*/        OPC_RecordChild1, // #2 = $src2
/*482261*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*482263*/        OPC_CheckPredicate, 9, // Predicate_load
/*482265*/        OPC_Scope, 21, /*->482288*/ // 5 children in Scope
/*482267*/          OPC_MoveParent,
/*482268*/          OPC_CheckType, MVT::v16i8,
/*482270*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*482272*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*482275*/          OPC_EmitMergeInputChains1_1,
/*482276*/          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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPMAXUBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*482288*/        /*Scope*/ 23, /*->482312*/
/*482289*/          OPC_CheckPredicate, 39, // Predicate_memop
/*482291*/          OPC_MoveParent,
/*482292*/          OPC_CheckType, MVT::v16i8,
/*482294*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*482296*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*482299*/          OPC_EmitMergeInputChains1_1,
/*482300*/          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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                    // Dst: (PMAXUBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*482312*/        /*Scope*/ 103, /*->482416*/
/*482313*/          OPC_MoveParent,
/*482314*/          OPC_SwitchType /*5 cases */, 18, MVT::v32i8,// ->482335
/*482317*/            OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*482319*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*482322*/            OPC_EmitMergeInputChains1_1,
/*482323*/            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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMAXUBYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*482335*/          /*SwitchType*/ 18, MVT::v4i32,// ->482355
/*482337*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*482339*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*482342*/            OPC_EmitMergeInputChains1_1,
/*482343*/            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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMAXUDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*482355*/          /*SwitchType*/ 18, MVT::v8i16,// ->482375
/*482357*/            OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*482359*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*482362*/            OPC_EmitMergeInputChains1_1,
/*482363*/            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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMAXUWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*482375*/          /*SwitchType*/ 18, MVT::v8i32,// ->482395
/*482377*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*482379*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*482382*/            OPC_EmitMergeInputChains1_1,
/*482383*/            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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMAXUDYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*482395*/          /*SwitchType*/ 18, MVT::v16i16,// ->482415
/*482397*/            OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*482399*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*482402*/            OPC_EmitMergeInputChains1_1,
/*482403*/            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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMAXUWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*482415*/          0, // EndSwitchType
/*482416*/        /*Scope*/ 45, /*->482462*/
/*482417*/          OPC_CheckPredicate, 39, // Predicate_memop
/*482419*/          OPC_MoveParent,
/*482420*/          OPC_SwitchType /*2 cases */, 18, MVT::v4i32,// ->482441
/*482423*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*482425*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*482428*/            OPC_EmitMergeInputChains1_1,
/*482429*/            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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                      // Dst: (PMAXUDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*482441*/          /*SwitchType*/ 18, MVT::v8i16,// ->482461
/*482443*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*482445*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*482448*/            OPC_EmitMergeInputChains1_1,
/*482449*/            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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                      // Dst: (PMAXUWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*482461*/          0, // EndSwitchType
/*482462*/        /*Scope*/ 115|128,1/*243*/, /*->482707*/
/*482464*/          OPC_MoveParent,
/*482465*/          OPC_SwitchType /*12 cases */, 18, MVT::v64i8,// ->482486
/*482468*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*482470*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*482473*/            OPC_EmitMergeInputChains1_1,
/*482474*/            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, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMAXUBZrm:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*482486*/          /*SwitchType*/ 18, MVT::v32i8,// ->482506
/*482488*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*482490*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*482493*/            OPC_EmitMergeInputChains1_1,
/*482494*/            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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMAXUBZ256rm:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*482506*/          /*SwitchType*/ 18, MVT::v16i8,// ->482526
/*482508*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*482510*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*482513*/            OPC_EmitMergeInputChains1_1,
/*482514*/            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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMAXUBZ128rm:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*482526*/          /*SwitchType*/ 18, MVT::v32i16,// ->482546
/*482528*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*482530*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*482533*/            OPC_EmitMergeInputChains1_1,
/*482534*/            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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMAXUWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*482546*/          /*SwitchType*/ 18, MVT::v16i16,// ->482566
/*482548*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*482550*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*482553*/            OPC_EmitMergeInputChains1_1,
/*482554*/            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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMAXUWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*482566*/          /*SwitchType*/ 18, MVT::v8i16,// ->482586
/*482568*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*482570*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*482573*/            OPC_EmitMergeInputChains1_1,
/*482574*/            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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMAXUWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*482586*/          /*SwitchType*/ 18, MVT::v16i32,// ->482606
/*482588*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*482590*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*482593*/            OPC_EmitMergeInputChains1_1,
/*482594*/            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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMAXUDZrm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*482606*/          /*SwitchType*/ 18, MVT::v8i32,// ->482626
/*482608*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*482610*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*482613*/            OPC_EmitMergeInputChains1_1,
/*482614*/            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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMAXUDZ256rm:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*482626*/          /*SwitchType*/ 18, MVT::v4i32,// ->482646
/*482628*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*482630*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*482633*/            OPC_EmitMergeInputChains1_1,
/*482634*/            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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMAXUDZ128rm:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*482646*/          /*SwitchType*/ 18, MVT::v8i64,// ->482666
/*482648*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*482650*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*482653*/            OPC_EmitMergeInputChains1_1,
/*482654*/            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>>) - Complexity = 25
                      // Dst: (VPMAXUQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*482666*/          /*SwitchType*/ 18, MVT::v4i64,// ->482686
/*482668*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*482670*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*482673*/            OPC_EmitMergeInputChains1_1,
/*482674*/            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>>) - Complexity = 25
                      // Dst: (VPMAXUQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*482686*/          /*SwitchType*/ 18, MVT::v2i64,// ->482706
/*482688*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*482690*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*482693*/            OPC_EmitMergeInputChains1_1,
/*482694*/            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>>) - Complexity = 25
                      // Dst: (VPMAXUQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*482706*/          0, // EndSwitchType
/*482707*/        0, /*End of Scope*/
/*482708*/      /*SwitchOpcode*/ 10|128,1/*138*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->482850
/*482712*/        OPC_RecordMemRef,
/*482713*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*482714*/        OPC_CheckFoldableChainNode,
/*482715*/        OPC_RecordChild1, // #2 = $src2
/*482716*/        OPC_Scope, 65, /*->482783*/ // 2 children in Scope
/*482718*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*482720*/          OPC_MoveParent,
/*482721*/          OPC_SwitchType /*3 cases */, 18, MVT::v16i32,// ->482742
/*482724*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*482726*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*482729*/            OPC_EmitMergeInputChains1_1,
/*482730*/            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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPMAXUDZrmb:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*482742*/          /*SwitchType*/ 18, MVT::v8i32,// ->482762
/*482744*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*482746*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*482749*/            OPC_EmitMergeInputChains1_1,
/*482750*/            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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPMAXUDZ256rmb:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*482762*/          /*SwitchType*/ 18, MVT::v4i32,// ->482782
/*482764*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*482766*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*482769*/            OPC_EmitMergeInputChains1_1,
/*482770*/            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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPMAXUDZ128rmb:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*482782*/          0, // EndSwitchType
/*482783*/        /*Scope*/ 65, /*->482849*/
/*482784*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*482786*/          OPC_MoveParent,
/*482787*/          OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->482808
/*482790*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*482792*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*482795*/            OPC_EmitMergeInputChains1_1,
/*482796*/            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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPMAXUQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*482808*/          /*SwitchType*/ 18, MVT::v4i64,// ->482828
/*482810*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*482812*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*482815*/            OPC_EmitMergeInputChains1_1,
/*482816*/            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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPMAXUQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*482828*/          /*SwitchType*/ 18, MVT::v2i64,// ->482848
/*482830*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*482832*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*482835*/            OPC_EmitMergeInputChains1_1,
/*482836*/            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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPMAXUQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*482848*/          0, // EndSwitchType
/*482849*/        0, /*End of Scope*/
/*482850*/      0, // EndSwitchOpcode
/*482851*/    /*Scope*/ 95|128,4/*607*/, /*->483460*/
/*482853*/      OPC_MoveChild0,
/*482854*/      OPC_SwitchOpcode /*2 cases */, 72|128,3/*456*/, TARGET_VAL(ISD::LOAD),// ->483315
/*482859*/        OPC_RecordMemRef,
/*482860*/        OPC_RecordNode, // #0 = 'ld' chained node
/*482861*/        OPC_CheckFoldableChainNode,
/*482862*/        OPC_RecordChild1, // #1 = $src2
/*482863*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*482865*/        OPC_CheckPredicate, 9, // Predicate_load
/*482867*/        OPC_Scope, 22, /*->482891*/ // 5 children in Scope
/*482869*/          OPC_MoveParent,
/*482870*/          OPC_RecordChild1, // #2 = $src1
/*482871*/          OPC_CheckType, MVT::v16i8,
/*482873*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*482875*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*482878*/          OPC_EmitMergeInputChains1_0,
/*482879*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUBrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (umax:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v16i8] }:$src1) - Complexity = 25
                    // Dst: (VPMAXUBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*482891*/        /*Scope*/ 24, /*->482916*/
/*482892*/          OPC_CheckPredicate, 39, // Predicate_memop
/*482894*/          OPC_MoveParent,
/*482895*/          OPC_RecordChild1, // #2 = $src1
/*482896*/          OPC_CheckType, MVT::v16i8,
/*482898*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*482900*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*482903*/          OPC_EmitMergeInputChains1_0,
/*482904*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PMAXUBrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (umax:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:{ *:[v16i8] }:$src1) - Complexity = 25
                    // Dst: (PMAXUBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*482916*/        /*Scope*/ 104, /*->483021*/
/*482917*/          OPC_MoveParent,
/*482918*/          OPC_RecordChild1, // #2 = $src1
/*482919*/          OPC_SwitchType /*5 cases */, 18, MVT::v32i8,// ->482940
/*482922*/            OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*482924*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*482927*/            OPC_EmitMergeInputChains1_0,
/*482928*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUBYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (umax:{ *:[v32i8] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v32i8] }:$src1) - Complexity = 25
                      // Dst: (VPMAXUBYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*482940*/          /*SwitchType*/ 18, MVT::v4i32,// ->482960
/*482942*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*482944*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*482947*/            OPC_EmitMergeInputChains1_0,
/*482948*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (umax:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v4i32] }:$src1) - Complexity = 25
                      // Dst: (VPMAXUDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*482960*/          /*SwitchType*/ 18, MVT::v8i16,// ->482980
/*482962*/            OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*482964*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*482967*/            OPC_EmitMergeInputChains1_0,
/*482968*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUWrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (umax:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v8i16] }:$src1) - Complexity = 25
                      // Dst: (VPMAXUWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*482980*/          /*SwitchType*/ 18, MVT::v8i32,// ->483000
/*482982*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*482984*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*482987*/            OPC_EmitMergeInputChains1_0,
/*482988*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (umax:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v8i32] }:$src1) - Complexity = 25
                      // Dst: (VPMAXUDYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*483000*/          /*SwitchType*/ 18, MVT::v16i16,// ->483020
/*483002*/            OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*483004*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*483007*/            OPC_EmitMergeInputChains1_0,
/*483008*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (umax:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v16i16] }:$src1) - Complexity = 25
                      // Dst: (VPMAXUWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*483020*/          0, // EndSwitchType
/*483021*/        /*Scope*/ 46, /*->483068*/
/*483022*/          OPC_CheckPredicate, 39, // Predicate_memop
/*483024*/          OPC_MoveParent,
/*483025*/          OPC_RecordChild1, // #2 = $src1
/*483026*/          OPC_SwitchType /*2 cases */, 18, MVT::v4i32,// ->483047
/*483029*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*483031*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*483034*/            OPC_EmitMergeInputChains1_0,
/*483035*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PMAXUDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (umax:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:{ *:[v4i32] }:$src1) - Complexity = 25
                      // Dst: (PMAXUDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*483047*/          /*SwitchType*/ 18, MVT::v8i16,// ->483067
/*483049*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*483051*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*483054*/            OPC_EmitMergeInputChains1_0,
/*483055*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PMAXUWrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (umax:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:{ *:[v8i16] }:$src1) - Complexity = 25
                      // Dst: (PMAXUWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*483067*/          0, // EndSwitchType
/*483068*/        /*Scope*/ 116|128,1/*244*/, /*->483314*/
/*483070*/          OPC_MoveParent,
/*483071*/          OPC_RecordChild1, // #2 = $src1
/*483072*/          OPC_SwitchType /*12 cases */, 18, MVT::v64i8,// ->483093
/*483075*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*483077*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*483080*/            OPC_EmitMergeInputChains1_0,
/*483081*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUBZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (umax:{ *:[v64i8] } (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v64i8] }:$src1) - Complexity = 25
                      // Dst: (VPMAXUBZrm:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*483093*/          /*SwitchType*/ 18, MVT::v32i8,// ->483113
/*483095*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*483097*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*483100*/            OPC_EmitMergeInputChains1_0,
/*483101*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUBZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (umax:{ *:[v32i8] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v32i8] }:$src1) - Complexity = 25
                      // Dst: (VPMAXUBZ256rm:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*483113*/          /*SwitchType*/ 18, MVT::v16i8,// ->483133
/*483115*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*483117*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*483120*/            OPC_EmitMergeInputChains1_0,
/*483121*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUBZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (umax:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v16i8] }:$src1) - Complexity = 25
                      // Dst: (VPMAXUBZ128rm:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*483133*/          /*SwitchType*/ 18, MVT::v32i16,// ->483153
/*483135*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*483137*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*483140*/            OPC_EmitMergeInputChains1_0,
/*483141*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (umax:{ *:[v32i16] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1) - Complexity = 25
                      // Dst: (VPMAXUWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*483153*/          /*SwitchType*/ 18, MVT::v16i16,// ->483173
/*483155*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*483157*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*483160*/            OPC_EmitMergeInputChains1_0,
/*483161*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (umax:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1) - Complexity = 25
                      // Dst: (VPMAXUWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*483173*/          /*SwitchType*/ 18, MVT::v8i16,// ->483193
/*483175*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*483177*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*483180*/            OPC_EmitMergeInputChains1_0,
/*483181*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (umax:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1) - Complexity = 25
                      // Dst: (VPMAXUWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*483193*/          /*SwitchType*/ 18, MVT::v16i32,// ->483213
/*483195*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*483197*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*483200*/            OPC_EmitMergeInputChains1_0,
/*483201*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (umax:{ *:[v16i32] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16i32] }:$src1) - Complexity = 25
                      // Dst: (VPMAXUDZrm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*483213*/          /*SwitchType*/ 18, MVT::v8i32,// ->483233
/*483215*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*483217*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*483220*/            OPC_EmitMergeInputChains1_0,
/*483221*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (umax:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8i32] }:$src1) - Complexity = 25
                      // Dst: (VPMAXUDZ256rm:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*483233*/          /*SwitchType*/ 18, MVT::v4i32,// ->483253
/*483235*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*483237*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*483240*/            OPC_EmitMergeInputChains1_0,
/*483241*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (umax:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4i32] }:$src1) - Complexity = 25
                      // Dst: (VPMAXUDZ128rm:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*483253*/          /*SwitchType*/ 18, MVT::v8i64,// ->483273
/*483255*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*483257*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*483260*/            OPC_EmitMergeInputChains1_0,
/*483261*/            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>>, VR512:{ *:[v8i64] }:$src1) - Complexity = 25
                      // Dst: (VPMAXUQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*483273*/          /*SwitchType*/ 18, MVT::v4i64,// ->483293
/*483275*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*483277*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*483280*/            OPC_EmitMergeInputChains1_0,
/*483281*/            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>>, VR256X:{ *:[v4i64] }:$src1) - Complexity = 25
                      // Dst: (VPMAXUQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*483293*/          /*SwitchType*/ 18, MVT::v2i64,// ->483313
/*483295*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*483297*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*483300*/            OPC_EmitMergeInputChains1_0,
/*483301*/            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>>, VR128X:{ *:[v2i64] }:$src1) - Complexity = 25
                      // Dst: (VPMAXUQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*483313*/          0, // EndSwitchType
/*483314*/        0, /*End of Scope*/
/*483315*/      /*SwitchOpcode*/ 12|128,1/*140*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->483459
/*483319*/        OPC_RecordMemRef,
/*483320*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*483321*/        OPC_CheckFoldableChainNode,
/*483322*/        OPC_RecordChild1, // #1 = $src2
/*483323*/        OPC_Scope, 66, /*->483391*/ // 2 children in Scope
/*483325*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*483327*/          OPC_MoveParent,
/*483328*/          OPC_RecordChild1, // #2 = $src1
/*483329*/          OPC_SwitchType /*3 cases */, 18, MVT::v16i32,// ->483350
/*483332*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*483334*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*483337*/            OPC_EmitMergeInputChains1_0,
/*483338*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (umax:{ *:[v16i32] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16i32] }:$src1) - Complexity = 25
                      // Dst: (VPMAXUDZrmb:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*483350*/          /*SwitchType*/ 18, MVT::v8i32,// ->483370
/*483352*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*483354*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*483357*/            OPC_EmitMergeInputChains1_0,
/*483358*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (umax:{ *:[v8i32] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8i32] }:$src1) - Complexity = 25
                      // Dst: (VPMAXUDZ256rmb:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*483370*/          /*SwitchType*/ 18, MVT::v4i32,// ->483390
/*483372*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*483374*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*483377*/            OPC_EmitMergeInputChains1_0,
/*483378*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (umax:{ *:[v4i32] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4i32] }:$src1) - Complexity = 25
                      // Dst: (VPMAXUDZ128rmb:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*483390*/          0, // EndSwitchType
/*483391*/        /*Scope*/ 66, /*->483458*/
/*483392*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*483394*/          OPC_MoveParent,
/*483395*/          OPC_RecordChild1, // #2 = $src1
/*483396*/          OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->483417
/*483399*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*483401*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*483404*/            OPC_EmitMergeInputChains1_0,
/*483405*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (umax:{ *:[v8i64] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8i64] }:$src1) - Complexity = 25
                      // Dst: (VPMAXUQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*483417*/          /*SwitchType*/ 18, MVT::v4i64,// ->483437
/*483419*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*483421*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*483424*/            OPC_EmitMergeInputChains1_0,
/*483425*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (umax:{ *:[v4i64] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src1) - Complexity = 25
                      // Dst: (VPMAXUQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*483437*/          /*SwitchType*/ 18, MVT::v2i64,// ->483457
/*483439*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*483441*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*483444*/            OPC_EmitMergeInputChains1_0,
/*483445*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXUQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (umax:{ *:[v2i64] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src1) - Complexity = 25
                      // Dst: (VPMAXUQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*483457*/          0, // EndSwitchType
/*483458*/        0, /*End of Scope*/
/*483459*/      0, // EndSwitchOpcode
/*483460*/    /*Scope*/ 112, /*->483573*/
/*483461*/      OPC_RecordChild0, // #0 = $src1
/*483462*/      OPC_MoveChild1,
/*483463*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*483466*/      OPC_RecordMemRef,
/*483467*/      OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*483468*/      OPC_CheckFoldableChainNode,
/*483469*/      OPC_RecordChild1, // #2 = $src2
/*483470*/      OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*483472*/      OPC_MoveParent,
/*483473*/      OPC_SwitchType /*2 cases */, 47, MVT::v4i64,// ->483523
/*483476*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*483478*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*483481*/        OPC_EmitMergeInputChains1_1,
/*483482*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #8
/*483488*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*483491*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 8, 0, 9,  // Results = #10
/*483500*/        OPC_EmitNode1, TARGET_VAL(X86::VPMAXUQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v64i8, 6/*#Ops*/, 10, 3, 4, 5, 6, 7,  // Results = #11
/*483512*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*483515*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0|OPFL_Chain,
                      MVT::v4i64, 2/*#Ops*/, 11, 12, 
                  // Src: (umax:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                  // Dst: (EXTRACT_SUBREG:{ *:[v4i64] } (VPMAXUQZrmb:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2), sub_ymm:{ *:[i32] })
/*483523*/      /*SwitchType*/ 47, MVT::v2i64,// ->483572
/*483525*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*483527*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*483530*/        OPC_EmitMergeInputChains1_1,
/*483531*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #8
/*483537*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*483540*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 8, 0, 9,  // Results = #10
/*483549*/        OPC_EmitNode1, TARGET_VAL(X86::VPMAXUQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v64i8, 6/*#Ops*/, 10, 3, 4, 5, 6, 7,  // Results = #11
/*483561*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*483564*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0|OPFL_Chain,
                      MVT::v2i64, 2/*#Ops*/, 11, 12, 
                  // Src: (umax:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                  // Dst: (EXTRACT_SUBREG:{ *:[v2i64] } (VPMAXUQZrmb:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2), sub_xmm:{ *:[i32] })
/*483572*/      0, // EndSwitchType
/*483573*/    /*Scope*/ 112, /*->483686*/
/*483574*/      OPC_MoveChild0,
/*483575*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*483578*/      OPC_RecordMemRef,
/*483579*/      OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*483580*/      OPC_CheckFoldableChainNode,
/*483581*/      OPC_RecordChild1, // #1 = $src2
/*483582*/      OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*483584*/      OPC_MoveParent,
/*483585*/      OPC_RecordChild1, // #2 = $src1
/*483586*/      OPC_SwitchType /*2 cases */, 47, MVT::v4i64,// ->483636
/*483589*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*483591*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*483594*/        OPC_EmitMergeInputChains1_0,
/*483595*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #8
/*483601*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*483604*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/*483613*/        OPC_EmitNode1, TARGET_VAL(X86::VPMAXUQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v64i8, 6/*#Ops*/, 10, 3, 4, 5, 6, 7,  // Results = #11
/*483625*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*483628*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0|OPFL_Chain,
                      MVT::v4i64, 2/*#Ops*/, 11, 12, 
                  // Src: (umax:{ *:[v4i64] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src1) - Complexity = 25
                  // Dst: (EXTRACT_SUBREG:{ *:[v4i64] } (VPMAXUQZrmb:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2), sub_ymm:{ *:[i32] })
/*483636*/      /*SwitchType*/ 47, MVT::v2i64,// ->483685
/*483638*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*483640*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*483643*/        OPC_EmitMergeInputChains1_0,
/*483644*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #8
/*483650*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*483653*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/*483662*/        OPC_EmitNode1, TARGET_VAL(X86::VPMAXUQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v64i8, 6/*#Ops*/, 10, 3, 4, 5, 6, 7,  // Results = #11
/*483674*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*483677*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0|OPFL_Chain,
                      MVT::v2i64, 2/*#Ops*/, 11, 12, 
                  // Src: (umax:{ *:[v2i64] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src1) - Complexity = 25
                  // Dst: (EXTRACT_SUBREG:{ *:[v2i64] } (VPMAXUQZrmb:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2), sub_xmm:{ *:[i32] })
/*483685*/      0, // EndSwitchType
/*483686*/    /*Scope*/ 3|128,3/*387*/, /*->484075*/
/*483688*/      OPC_RecordChild0, // #0 = $src1
/*483689*/      OPC_RecordChild1, // #1 = $src2
/*483690*/      OPC_SwitchType /*12 cases */, 35, MVT::v16i8,// ->483728
/*483693*/        OPC_Scope, 10, /*->483705*/ // 3 children in Scope
/*483695*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*483697*/          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)
/*483705*/        /*Scope*/ 10, /*->483716*/
/*483706*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*483708*/          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)
/*483716*/        /*Scope*/ 10, /*->483727*/
/*483717*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*483719*/          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)
/*483727*/        0, /*End of Scope*/
/*483728*/      /*SwitchType*/ 24, MVT::v32i8,// ->483754
/*483730*/        OPC_Scope, 10, /*->483742*/ // 2 children in Scope
/*483732*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*483734*/          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)
/*483742*/        /*Scope*/ 10, /*->483753*/
/*483743*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*483745*/          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)
/*483753*/        0, /*End of Scope*/
/*483754*/      /*SwitchType*/ 35, MVT::v4i32,// ->483791
/*483756*/        OPC_Scope, 10, /*->483768*/ // 3 children in Scope
/*483758*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*483760*/          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)
/*483768*/        /*Scope*/ 10, /*->483779*/
/*483769*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*483771*/          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)
/*483779*/        /*Scope*/ 10, /*->483790*/
/*483780*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*483782*/          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)
/*483790*/        0, /*End of Scope*/
/*483791*/      /*SwitchType*/ 35, MVT::v8i16,// ->483828
/*483793*/        OPC_Scope, 10, /*->483805*/ // 3 children in Scope
/*483795*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*483797*/          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)
/*483805*/        /*Scope*/ 10, /*->483816*/
/*483806*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*483808*/          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)
/*483816*/        /*Scope*/ 10, /*->483827*/
/*483817*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*483819*/          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)
/*483827*/        0, /*End of Scope*/
/*483828*/      /*SwitchType*/ 24, MVT::v8i32,// ->483854
/*483830*/        OPC_Scope, 10, /*->483842*/ // 2 children in Scope
/*483832*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*483834*/          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)
/*483842*/        /*Scope*/ 10, /*->483853*/
/*483843*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*483845*/          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)
/*483853*/        0, /*End of Scope*/
/*483854*/      /*SwitchType*/ 24, MVT::v16i16,// ->483880
/*483856*/        OPC_Scope, 10, /*->483868*/ // 2 children in Scope
/*483858*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*483860*/          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)
/*483868*/        /*Scope*/ 10, /*->483879*/
/*483869*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*483871*/          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)
/*483879*/        0, /*End of Scope*/
/*483880*/      /*SwitchType*/ 10, MVT::v64i8,// ->483892
/*483882*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*483884*/        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)
/*483892*/      /*SwitchType*/ 10, MVT::v32i16,// ->483904
/*483894*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*483896*/        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)
/*483904*/      /*SwitchType*/ 10, MVT::v16i32,// ->483916
/*483906*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*483908*/        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)
/*483916*/      /*SwitchType*/ 10, MVT::v8i64,// ->483928
/*483918*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*483920*/        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)
/*483928*/      /*SwitchType*/ 71, MVT::v4i64,// ->484001
/*483930*/        OPC_Scope, 10, /*->483942*/ // 2 children in Scope
/*483932*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*483934*/          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)
/*483942*/        /*Scope*/ 57, /*->484000*/
/*483943*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*483945*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #2
/*483951*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*483954*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*483963*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #5
/*483969*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*483972*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*483981*/          OPC_EmitNode1, TARGET_VAL(X86::VPMAXUQZrr), 0,
                        MVT::v64i8, 2/*#Ops*/, 4, 7,  // Results = #8
/*483989*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*483992*/          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] })
/*484000*/        0, /*End of Scope*/
/*484001*/      /*SwitchType*/ 71, MVT::v2i64,// ->484074
/*484003*/        OPC_Scope, 10, /*->484015*/ // 2 children in Scope
/*484005*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*484007*/          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)
/*484015*/        /*Scope*/ 57, /*->484073*/
/*484016*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*484018*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #2
/*484024*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*484027*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*484036*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #5
/*484042*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*484045*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*484054*/          OPC_EmitNode1, TARGET_VAL(X86::VPMAXUQZrr), 0,
                        MVT::v64i8, 2/*#Ops*/, 4, 7,  // Results = #8
/*484062*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*484065*/          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] })
/*484073*/        0, /*End of Scope*/
/*484074*/      0, // EndSwitchType
/*484075*/    0, /*End of Scope*/
/*484076*/  /*SwitchOpcode*/ 37|128,14/*1829*/, TARGET_VAL(ISD::SMAX),// ->485909
/*484080*/    OPC_Scope, 89|128,4/*601*/, /*->484684*/ // 5 children in Scope
/*484083*/      OPC_RecordChild0, // #0 = $src1
/*484084*/      OPC_MoveChild1,
/*484085*/      OPC_SwitchOpcode /*2 cases */, 67|128,3/*451*/, TARGET_VAL(ISD::LOAD),// ->484541
/*484090*/        OPC_RecordMemRef,
/*484091*/        OPC_RecordNode, // #1 = 'ld' chained node
/*484092*/        OPC_CheckFoldableChainNode,
/*484093*/        OPC_RecordChild1, // #2 = $src2
/*484094*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*484096*/        OPC_CheckPredicate, 9, // Predicate_load
/*484098*/        OPC_Scope, 21, /*->484121*/ // 5 children in Scope
/*484100*/          OPC_MoveParent,
/*484101*/          OPC_CheckType, MVT::v8i16,
/*484103*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*484105*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*484108*/          OPC_EmitMergeInputChains1_1,
/*484109*/          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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPMAXSWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*484121*/        /*Scope*/ 23, /*->484145*/
/*484122*/          OPC_CheckPredicate, 39, // Predicate_memop
/*484124*/          OPC_MoveParent,
/*484125*/          OPC_CheckType, MVT::v8i16,
/*484127*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*484129*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*484132*/          OPC_EmitMergeInputChains1_1,
/*484133*/          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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                    // Dst: (PMAXSWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*484145*/        /*Scope*/ 103, /*->484249*/
/*484146*/          OPC_MoveParent,
/*484147*/          OPC_SwitchType /*5 cases */, 18, MVT::v16i16,// ->484168
/*484150*/            OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*484152*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*484155*/            OPC_EmitMergeInputChains1_1,
/*484156*/            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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMAXSWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*484168*/          /*SwitchType*/ 18, MVT::v4i32,// ->484188
/*484170*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*484172*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*484175*/            OPC_EmitMergeInputChains1_1,
/*484176*/            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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMAXSDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*484188*/          /*SwitchType*/ 18, MVT::v16i8,// ->484208
/*484190*/            OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*484192*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*484195*/            OPC_EmitMergeInputChains1_1,
/*484196*/            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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMAXSBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*484208*/          /*SwitchType*/ 18, MVT::v8i32,// ->484228
/*484210*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*484212*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*484215*/            OPC_EmitMergeInputChains1_1,
/*484216*/            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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMAXSDYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*484228*/          /*SwitchType*/ 18, MVT::v32i8,// ->484248
/*484230*/            OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*484232*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*484235*/            OPC_EmitMergeInputChains1_1,
/*484236*/            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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMAXSBYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*484248*/          0, // EndSwitchType
/*484249*/        /*Scope*/ 45, /*->484295*/
/*484250*/          OPC_CheckPredicate, 39, // Predicate_memop
/*484252*/          OPC_MoveParent,
/*484253*/          OPC_SwitchType /*2 cases */, 18, MVT::v16i8,// ->484274
/*484256*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*484258*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*484261*/            OPC_EmitMergeInputChains1_1,
/*484262*/            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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                      // Dst: (PMAXSBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*484274*/          /*SwitchType*/ 18, MVT::v4i32,// ->484294
/*484276*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*484278*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*484281*/            OPC_EmitMergeInputChains1_1,
/*484282*/            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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                      // Dst: (PMAXSDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*484294*/          0, // EndSwitchType
/*484295*/        /*Scope*/ 115|128,1/*243*/, /*->484540*/
/*484297*/          OPC_MoveParent,
/*484298*/          OPC_SwitchType /*12 cases */, 18, MVT::v64i8,// ->484319
/*484301*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*484303*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*484306*/            OPC_EmitMergeInputChains1_1,
/*484307*/            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, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMAXSBZrm:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*484319*/          /*SwitchType*/ 18, MVT::v32i8,// ->484339
/*484321*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*484323*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*484326*/            OPC_EmitMergeInputChains1_1,
/*484327*/            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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMAXSBZ256rm:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*484339*/          /*SwitchType*/ 18, MVT::v16i8,// ->484359
/*484341*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*484343*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*484346*/            OPC_EmitMergeInputChains1_1,
/*484347*/            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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMAXSBZ128rm:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*484359*/          /*SwitchType*/ 18, MVT::v32i16,// ->484379
/*484361*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*484363*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*484366*/            OPC_EmitMergeInputChains1_1,
/*484367*/            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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMAXSWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*484379*/          /*SwitchType*/ 18, MVT::v16i16,// ->484399
/*484381*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*484383*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*484386*/            OPC_EmitMergeInputChains1_1,
/*484387*/            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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMAXSWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*484399*/          /*SwitchType*/ 18, MVT::v8i16,// ->484419
/*484401*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*484403*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*484406*/            OPC_EmitMergeInputChains1_1,
/*484407*/            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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMAXSWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*484419*/          /*SwitchType*/ 18, MVT::v16i32,// ->484439
/*484421*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*484423*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*484426*/            OPC_EmitMergeInputChains1_1,
/*484427*/            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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMAXSDZrm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*484439*/          /*SwitchType*/ 18, MVT::v8i32,// ->484459
/*484441*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*484443*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*484446*/            OPC_EmitMergeInputChains1_1,
/*484447*/            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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMAXSDZ256rm:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*484459*/          /*SwitchType*/ 18, MVT::v4i32,// ->484479
/*484461*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*484463*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*484466*/            OPC_EmitMergeInputChains1_1,
/*484467*/            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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPMAXSDZ128rm:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*484479*/          /*SwitchType*/ 18, MVT::v8i64,// ->484499
/*484481*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*484483*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*484486*/            OPC_EmitMergeInputChains1_1,
/*484487*/            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>>) - Complexity = 25
                      // Dst: (VPMAXSQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*484499*/          /*SwitchType*/ 18, MVT::v4i64,// ->484519
/*484501*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*484503*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*484506*/            OPC_EmitMergeInputChains1_1,
/*484507*/            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>>) - Complexity = 25
                      // Dst: (VPMAXSQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*484519*/          /*SwitchType*/ 18, MVT::v2i64,// ->484539
/*484521*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*484523*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*484526*/            OPC_EmitMergeInputChains1_1,
/*484527*/            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>>) - Complexity = 25
                      // Dst: (VPMAXSQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*484539*/          0, // EndSwitchType
/*484540*/        0, /*End of Scope*/
/*484541*/      /*SwitchOpcode*/ 10|128,1/*138*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->484683
/*484545*/        OPC_RecordMemRef,
/*484546*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*484547*/        OPC_CheckFoldableChainNode,
/*484548*/        OPC_RecordChild1, // #2 = $src2
/*484549*/        OPC_Scope, 65, /*->484616*/ // 2 children in Scope
/*484551*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*484553*/          OPC_MoveParent,
/*484554*/          OPC_SwitchType /*3 cases */, 18, MVT::v16i32,// ->484575
/*484557*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*484559*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*484562*/            OPC_EmitMergeInputChains1_1,
/*484563*/            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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPMAXSDZrmb:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*484575*/          /*SwitchType*/ 18, MVT::v8i32,// ->484595
/*484577*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*484579*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*484582*/            OPC_EmitMergeInputChains1_1,
/*484583*/            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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPMAXSDZ256rmb:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*484595*/          /*SwitchType*/ 18, MVT::v4i32,// ->484615
/*484597*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*484599*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*484602*/            OPC_EmitMergeInputChains1_1,
/*484603*/            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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPMAXSDZ128rmb:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*484615*/          0, // EndSwitchType
/*484616*/        /*Scope*/ 65, /*->484682*/
/*484617*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*484619*/          OPC_MoveParent,
/*484620*/          OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->484641
/*484623*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*484625*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*484628*/            OPC_EmitMergeInputChains1_1,
/*484629*/            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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPMAXSQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*484641*/          /*SwitchType*/ 18, MVT::v4i64,// ->484661
/*484643*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*484645*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*484648*/            OPC_EmitMergeInputChains1_1,
/*484649*/            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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPMAXSQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*484661*/          /*SwitchType*/ 18, MVT::v2i64,// ->484681
/*484663*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*484665*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*484668*/            OPC_EmitMergeInputChains1_1,
/*484669*/            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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPMAXSQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*484681*/          0, // EndSwitchType
/*484682*/        0, /*End of Scope*/
/*484683*/      0, // EndSwitchOpcode
/*484684*/    /*Scope*/ 95|128,4/*607*/, /*->485293*/
/*484686*/      OPC_MoveChild0,
/*484687*/      OPC_SwitchOpcode /*2 cases */, 72|128,3/*456*/, TARGET_VAL(ISD::LOAD),// ->485148
/*484692*/        OPC_RecordMemRef,
/*484693*/        OPC_RecordNode, // #0 = 'ld' chained node
/*484694*/        OPC_CheckFoldableChainNode,
/*484695*/        OPC_RecordChild1, // #1 = $src2
/*484696*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*484698*/        OPC_CheckPredicate, 9, // Predicate_load
/*484700*/        OPC_Scope, 22, /*->484724*/ // 5 children in Scope
/*484702*/          OPC_MoveParent,
/*484703*/          OPC_RecordChild1, // #2 = $src1
/*484704*/          OPC_CheckType, MVT::v8i16,
/*484706*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*484708*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*484711*/          OPC_EmitMergeInputChains1_0,
/*484712*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (smax:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v8i16] }:$src1) - Complexity = 25
                    // Dst: (VPMAXSWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*484724*/        /*Scope*/ 24, /*->484749*/
/*484725*/          OPC_CheckPredicate, 39, // Predicate_memop
/*484727*/          OPC_MoveParent,
/*484728*/          OPC_RecordChild1, // #2 = $src1
/*484729*/          OPC_CheckType, MVT::v8i16,
/*484731*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*484733*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*484736*/          OPC_EmitMergeInputChains1_0,
/*484737*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PMAXSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (smax:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:{ *:[v8i16] }:$src1) - Complexity = 25
                    // Dst: (PMAXSWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*484749*/        /*Scope*/ 104, /*->484854*/
/*484750*/          OPC_MoveParent,
/*484751*/          OPC_RecordChild1, // #2 = $src1
/*484752*/          OPC_SwitchType /*5 cases */, 18, MVT::v16i16,// ->484773
/*484755*/            OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*484757*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*484760*/            OPC_EmitMergeInputChains1_0,
/*484761*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (smax:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v16i16] }:$src1) - Complexity = 25
                      // Dst: (VPMAXSWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*484773*/          /*SwitchType*/ 18, MVT::v4i32,// ->484793
/*484775*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*484777*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*484780*/            OPC_EmitMergeInputChains1_0,
/*484781*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (smax:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v4i32] }:$src1) - Complexity = 25
                      // Dst: (VPMAXSDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*484793*/          /*SwitchType*/ 18, MVT::v16i8,// ->484813
/*484795*/            OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*484797*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*484800*/            OPC_EmitMergeInputChains1_0,
/*484801*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (smax:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v16i8] }:$src1) - Complexity = 25
                      // Dst: (VPMAXSBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*484813*/          /*SwitchType*/ 18, MVT::v8i32,// ->484833
/*484815*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*484817*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*484820*/            OPC_EmitMergeInputChains1_0,
/*484821*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (smax:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v8i32] }:$src1) - Complexity = 25
                      // Dst: (VPMAXSDYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*484833*/          /*SwitchType*/ 18, MVT::v32i8,// ->484853
/*484835*/            OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*484837*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*484840*/            OPC_EmitMergeInputChains1_0,
/*484841*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSBYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (smax:{ *:[v32i8] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v32i8] }:$src1) - Complexity = 25
                      // Dst: (VPMAXSBYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*484853*/          0, // EndSwitchType
/*484854*/        /*Scope*/ 46, /*->484901*/
/*484855*/          OPC_CheckPredicate, 39, // Predicate_memop
/*484857*/          OPC_MoveParent,
/*484858*/          OPC_RecordChild1, // #2 = $src1
/*484859*/          OPC_SwitchType /*2 cases */, 18, MVT::v16i8,// ->484880
/*484862*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*484864*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*484867*/            OPC_EmitMergeInputChains1_0,
/*484868*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PMAXSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (smax:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:{ *:[v16i8] }:$src1) - Complexity = 25
                      // Dst: (PMAXSBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*484880*/          /*SwitchType*/ 18, MVT::v4i32,// ->484900
/*484882*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*484884*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*484887*/            OPC_EmitMergeInputChains1_0,
/*484888*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PMAXSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (smax:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:{ *:[v4i32] }:$src1) - Complexity = 25
                      // Dst: (PMAXSDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*484900*/          0, // EndSwitchType
/*484901*/        /*Scope*/ 116|128,1/*244*/, /*->485147*/
/*484903*/          OPC_MoveParent,
/*484904*/          OPC_RecordChild1, // #2 = $src1
/*484905*/          OPC_SwitchType /*12 cases */, 18, MVT::v64i8,// ->484926
/*484908*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*484910*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*484913*/            OPC_EmitMergeInputChains1_0,
/*484914*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSBZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (smax:{ *:[v64i8] } (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v64i8] }:$src1) - Complexity = 25
                      // Dst: (VPMAXSBZrm:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*484926*/          /*SwitchType*/ 18, MVT::v32i8,// ->484946
/*484928*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*484930*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*484933*/            OPC_EmitMergeInputChains1_0,
/*484934*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSBZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (smax:{ *:[v32i8] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v32i8] }:$src1) - Complexity = 25
                      // Dst: (VPMAXSBZ256rm:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*484946*/          /*SwitchType*/ 18, MVT::v16i8,// ->484966
/*484948*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*484950*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*484953*/            OPC_EmitMergeInputChains1_0,
/*484954*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSBZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (smax:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v16i8] }:$src1) - Complexity = 25
                      // Dst: (VPMAXSBZ128rm:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*484966*/          /*SwitchType*/ 18, MVT::v32i16,// ->484986
/*484968*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*484970*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*484973*/            OPC_EmitMergeInputChains1_0,
/*484974*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (smax:{ *:[v32i16] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1) - Complexity = 25
                      // Dst: (VPMAXSWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*484986*/          /*SwitchType*/ 18, MVT::v16i16,// ->485006
/*484988*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*484990*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*484993*/            OPC_EmitMergeInputChains1_0,
/*484994*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (smax:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1) - Complexity = 25
                      // Dst: (VPMAXSWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*485006*/          /*SwitchType*/ 18, MVT::v8i16,// ->485026
/*485008*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*485010*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*485013*/            OPC_EmitMergeInputChains1_0,
/*485014*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (smax:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1) - Complexity = 25
                      // Dst: (VPMAXSWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*485026*/          /*SwitchType*/ 18, MVT::v16i32,// ->485046
/*485028*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*485030*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*485033*/            OPC_EmitMergeInputChains1_0,
/*485034*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (smax:{ *:[v16i32] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v16i32] }:$src1) - Complexity = 25
                      // Dst: (VPMAXSDZrm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*485046*/          /*SwitchType*/ 18, MVT::v8i32,// ->485066
/*485048*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*485050*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*485053*/            OPC_EmitMergeInputChains1_0,
/*485054*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (smax:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v8i32] }:$src1) - Complexity = 25
                      // Dst: (VPMAXSDZ256rm:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*485066*/          /*SwitchType*/ 18, MVT::v4i32,// ->485086
/*485068*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*485070*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*485073*/            OPC_EmitMergeInputChains1_0,
/*485074*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (smax:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4i32] }:$src1) - Complexity = 25
                      // Dst: (VPMAXSDZ128rm:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*485086*/          /*SwitchType*/ 18, MVT::v8i64,// ->485106
/*485088*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*485090*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*485093*/            OPC_EmitMergeInputChains1_0,
/*485094*/            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>>, VR512:{ *:[v8i64] }:$src1) - Complexity = 25
                      // Dst: (VPMAXSQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*485106*/          /*SwitchType*/ 18, MVT::v4i64,// ->485126
/*485108*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*485110*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*485113*/            OPC_EmitMergeInputChains1_0,
/*485114*/            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>>, VR256X:{ *:[v4i64] }:$src1) - Complexity = 25
                      // Dst: (VPMAXSQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*485126*/          /*SwitchType*/ 18, MVT::v2i64,// ->485146
/*485128*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*485130*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*485133*/            OPC_EmitMergeInputChains1_0,
/*485134*/            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>>, VR128X:{ *:[v2i64] }:$src1) - Complexity = 25
                      // Dst: (VPMAXSQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*485146*/          0, // EndSwitchType
/*485147*/        0, /*End of Scope*/
/*485148*/      /*SwitchOpcode*/ 12|128,1/*140*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->485292
/*485152*/        OPC_RecordMemRef,
/*485153*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*485154*/        OPC_CheckFoldableChainNode,
/*485155*/        OPC_RecordChild1, // #1 = $src2
/*485156*/        OPC_Scope, 66, /*->485224*/ // 2 children in Scope
/*485158*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*485160*/          OPC_MoveParent,
/*485161*/          OPC_RecordChild1, // #2 = $src1
/*485162*/          OPC_SwitchType /*3 cases */, 18, MVT::v16i32,// ->485183
/*485165*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*485167*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*485170*/            OPC_EmitMergeInputChains1_0,
/*485171*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (smax:{ *:[v16i32] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16i32] }:$src1) - Complexity = 25
                      // Dst: (VPMAXSDZrmb:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*485183*/          /*SwitchType*/ 18, MVT::v8i32,// ->485203
/*485185*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*485187*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*485190*/            OPC_EmitMergeInputChains1_0,
/*485191*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (smax:{ *:[v8i32] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8i32] }:$src1) - Complexity = 25
                      // Dst: (VPMAXSDZ256rmb:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*485203*/          /*SwitchType*/ 18, MVT::v4i32,// ->485223
/*485205*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*485207*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*485210*/            OPC_EmitMergeInputChains1_0,
/*485211*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (smax:{ *:[v4i32] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4i32] }:$src1) - Complexity = 25
                      // Dst: (VPMAXSDZ128rmb:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*485223*/          0, // EndSwitchType
/*485224*/        /*Scope*/ 66, /*->485291*/
/*485225*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*485227*/          OPC_MoveParent,
/*485228*/          OPC_RecordChild1, // #2 = $src1
/*485229*/          OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->485250
/*485232*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*485234*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*485237*/            OPC_EmitMergeInputChains1_0,
/*485238*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (smax:{ *:[v8i64] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8i64] }:$src1) - Complexity = 25
                      // Dst: (VPMAXSQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*485250*/          /*SwitchType*/ 18, MVT::v4i64,// ->485270
/*485252*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*485254*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*485257*/            OPC_EmitMergeInputChains1_0,
/*485258*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (smax:{ *:[v4i64] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src1) - Complexity = 25
                      // Dst: (VPMAXSQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*485270*/          /*SwitchType*/ 18, MVT::v2i64,// ->485290
/*485272*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*485274*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*485277*/            OPC_EmitMergeInputChains1_0,
/*485278*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPMAXSQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (smax:{ *:[v2i64] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src1) - Complexity = 25
                      // Dst: (VPMAXSQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*485290*/          0, // EndSwitchType
/*485291*/        0, /*End of Scope*/
/*485292*/      0, // EndSwitchOpcode
/*485293*/    /*Scope*/ 112, /*->485406*/
/*485294*/      OPC_RecordChild0, // #0 = $src1
/*485295*/      OPC_MoveChild1,
/*485296*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*485299*/      OPC_RecordMemRef,
/*485300*/      OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*485301*/      OPC_CheckFoldableChainNode,
/*485302*/      OPC_RecordChild1, // #2 = $src2
/*485303*/      OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*485305*/      OPC_MoveParent,
/*485306*/      OPC_SwitchType /*2 cases */, 47, MVT::v4i64,// ->485356
/*485309*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*485311*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*485314*/        OPC_EmitMergeInputChains1_1,
/*485315*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #8
/*485321*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*485324*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 8, 0, 9,  // Results = #10
/*485333*/        OPC_EmitNode1, TARGET_VAL(X86::VPMAXSQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v64i8, 6/*#Ops*/, 10, 3, 4, 5, 6, 7,  // Results = #11
/*485345*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*485348*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0|OPFL_Chain,
                      MVT::v4i64, 2/*#Ops*/, 11, 12, 
                  // Src: (smax:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                  // Dst: (EXTRACT_SUBREG:{ *:[v4i64] } (VPMAXSQZrmb:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2), sub_ymm:{ *:[i32] })
/*485356*/      /*SwitchType*/ 47, MVT::v2i64,// ->485405
/*485358*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*485360*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*485363*/        OPC_EmitMergeInputChains1_1,
/*485364*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #8
/*485370*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*485373*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 8, 0, 9,  // Results = #10
/*485382*/        OPC_EmitNode1, TARGET_VAL(X86::VPMAXSQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v64i8, 6/*#Ops*/, 10, 3, 4, 5, 6, 7,  // Results = #11
/*485394*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*485397*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0|OPFL_Chain,
                      MVT::v2i64, 2/*#Ops*/, 11, 12, 
                  // Src: (smax:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                  // Dst: (EXTRACT_SUBREG:{ *:[v2i64] } (VPMAXSQZrmb:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2), sub_xmm:{ *:[i32] })
/*485405*/      0, // EndSwitchType
/*485406*/    /*Scope*/ 112, /*->485519*/
/*485407*/      OPC_MoveChild0,
/*485408*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*485411*/      OPC_RecordMemRef,
/*485412*/      OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*485413*/      OPC_CheckFoldableChainNode,
/*485414*/      OPC_RecordChild1, // #1 = $src2
/*485415*/      OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*485417*/      OPC_MoveParent,
/*485418*/      OPC_RecordChild1, // #2 = $src1
/*485419*/      OPC_SwitchType /*2 cases */, 47, MVT::v4i64,// ->485469
/*485422*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*485424*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*485427*/        OPC_EmitMergeInputChains1_0,
/*485428*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #8
/*485434*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*485437*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/*485446*/        OPC_EmitNode1, TARGET_VAL(X86::VPMAXSQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v64i8, 6/*#Ops*/, 10, 3, 4, 5, 6, 7,  // Results = #11
/*485458*/        OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*485461*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0|OPFL_Chain,
                      MVT::v4i64, 2/*#Ops*/, 11, 12, 
                  // Src: (smax:{ *:[v4i64] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src1) - Complexity = 25
                  // Dst: (EXTRACT_SUBREG:{ *:[v4i64] } (VPMAXSQZrmb:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR256X:{ *:[v4i64] }:$src1, sub_ymm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2), sub_ymm:{ *:[i32] })
/*485469*/      /*SwitchType*/ 47, MVT::v2i64,// ->485518
/*485471*/        OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*485473*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*485476*/        OPC_EmitMergeInputChains1_0,
/*485477*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                      MVT::v8i64, 0/*#Ops*/,  // Results = #8
/*485483*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*485486*/        OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                      MVT::v8i64, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/*485495*/        OPC_EmitNode1, TARGET_VAL(X86::VPMAXSQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v64i8, 6/*#Ops*/, 10, 3, 4, 5, 6, 7,  // Results = #11
/*485507*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*485510*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0|OPFL_Chain,
                      MVT::v2i64, 2/*#Ops*/, 11, 12, 
                  // Src: (smax:{ *:[v2i64] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src1) - Complexity = 25
                  // Dst: (EXTRACT_SUBREG:{ *:[v2i64] } (VPMAXSQZrmb:{ *:[v64i8] } (INSERT_SUBREG:{ *:[v8i64] } (IMPLICIT_DEF:{ *:[v8i64] }), VR128X:{ *:[v2i64] }:$src1, sub_xmm:{ *:[i32] }), addr:{ *:[iPTR] }:$src2), sub_xmm:{ *:[i32] })
/*485518*/      0, // EndSwitchType
/*485519*/    /*Scope*/ 3|128,3/*387*/, /*->485908*/
/*485521*/      OPC_RecordChild0, // #0 = $src1
/*485522*/      OPC_RecordChild1, // #1 = $src2
/*485523*/      OPC_SwitchType /*12 cases */, 35, MVT::v8i16,// ->485561
/*485526*/        OPC_Scope, 10, /*->485538*/ // 3 children in Scope
/*485528*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*485530*/          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)
/*485538*/        /*Scope*/ 10, /*->485549*/
/*485539*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*485541*/          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)
/*485549*/        /*Scope*/ 10, /*->485560*/
/*485550*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*485552*/          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)
/*485560*/        0, /*End of Scope*/
/*485561*/      /*SwitchType*/ 24, MVT::v16i16,// ->485587
/*485563*/        OPC_Scope, 10, /*->485575*/ // 2 children in Scope
/*485565*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*485567*/          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)
/*485575*/        /*Scope*/ 10, /*->485586*/
/*485576*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*485578*/          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)
/*485586*/        0, /*End of Scope*/
/*485587*/      /*SwitchType*/ 35, MVT::v4i32,// ->485624
/*485589*/        OPC_Scope, 10, /*->485601*/ // 3 children in Scope
/*485591*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*485593*/          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)
/*485601*/        /*Scope*/ 10, /*->485612*/
/*485602*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*485604*/          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)
/*485612*/        /*Scope*/ 10, /*->485623*/
/*485613*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*485615*/          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)
/*485623*/        0, /*End of Scope*/
/*485624*/      /*SwitchType*/ 35, MVT::v16i8,// ->485661
/*485626*/        OPC_Scope, 10, /*->485638*/ // 3 children in Scope
/*485628*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*485630*/          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)
/*485638*/        /*Scope*/ 10, /*->485649*/
/*485639*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*485641*/          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)
/*485649*/        /*Scope*/ 10, /*->485660*/
/*485650*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*485652*/          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)
/*485660*/        0, /*End of Scope*/
/*485661*/      /*SwitchType*/ 24, MVT::v8i32,// ->485687
/*485663*/        OPC_Scope, 10, /*->485675*/ // 2 children in Scope
/*485665*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*485667*/          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)
/*485675*/        /*Scope*/ 10, /*->485686*/
/*485676*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*485678*/          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)
/*485686*/        0, /*End of Scope*/
/*485687*/      /*SwitchType*/ 24, MVT::v32i8,// ->485713
/*485689*/        OPC_Scope, 10, /*->485701*/ // 2 children in Scope
/*485691*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*485693*/          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)
/*485701*/        /*Scope*/ 10, /*->485712*/
/*485702*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*485704*/          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)
/*485712*/        0, /*End of Scope*/
/*485713*/      /*SwitchType*/ 10, MVT::v64i8,// ->485725
/*485715*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*485717*/        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)
/*485725*/      /*SwitchType*/ 10, MVT::v32i16,// ->485737
/*485727*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*485729*/        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)
/*485737*/      /*SwitchType*/ 10, MVT::v16i32,// ->485749
/*485739*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*485741*/        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)
/*485749*/      /*SwitchType*/ 10, MVT::v8i64,// ->485761
/*485751*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*485753*/        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)
/*485761*/      /*SwitchType*/ 71, MVT::v4i64,// ->485834
/*485763*/        OPC_Scope, 10, /*->485775*/ // 2 children in Scope
/*485765*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*485767*/          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)
/*485775*/        /*Scope*/ 57, /*->485833*/
/*485776*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*485778*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #2
/*485784*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*485787*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*485796*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #5
/*485802*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*485805*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*485814*/          OPC_EmitNode1, TARGET_VAL(X86::VPMAXSQZrr), 0,
                        MVT::v64i8, 2/*#Ops*/, 4, 7,  // Results = #8
/*485822*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*485825*/          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] })
/*485833*/        0, /*End of Scope*/
/*485834*/      /*SwitchType*/ 71, MVT::v2i64,// ->485907
/*485836*/        OPC_Scope, 10, /*->485848*/ // 2 children in Scope
/*485838*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*485840*/          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)
/*485848*/        /*Scope*/ 57, /*->485906*/
/*485849*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*485851*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #2
/*485857*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*485860*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*485869*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #5
/*485875*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*485878*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*485887*/          OPC_EmitNode1, TARGET_VAL(X86::VPMAXSQZrr), 0,
                        MVT::v64i8, 2/*#Ops*/, 4, 7,  // Results = #8
/*485895*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*485898*/          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] })
/*485906*/        0, /*End of Scope*/
/*485907*/      0, // EndSwitchType
/*485908*/    0, /*End of Scope*/
/*485909*/  /*SwitchOpcode*/ 78|128,5/*718*/, TARGET_VAL(X86ISD::AVG),// ->486631
/*485913*/    OPC_Scope, 20|128,2/*276*/, /*->486192*/ // 3 children in Scope
/*485916*/      OPC_RecordChild0, // #0 = $src1
/*485917*/      OPC_MoveChild1,
/*485918*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*485921*/      OPC_RecordMemRef,
/*485922*/      OPC_RecordNode, // #1 = 'ld' chained node
/*485923*/      OPC_CheckFoldableChainNode,
/*485924*/      OPC_RecordChild1, // #2 = $src2
/*485925*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*485927*/      OPC_CheckPredicate, 9, // Predicate_load
/*485929*/      OPC_Scope, 21, /*->485952*/ // 5 children in Scope
/*485931*/        OPC_MoveParent,
/*485932*/        OPC_CheckType, MVT::v16i8,
/*485934*/        OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*485936*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*485939*/        OPC_EmitMergeInputChains1_1,
/*485940*/        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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VPAVGBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*485952*/      /*Scope*/ 23, /*->485976*/
/*485953*/        OPC_CheckPredicate, 39, // Predicate_memop
/*485955*/        OPC_MoveParent,
/*485956*/        OPC_CheckType, MVT::v16i8,
/*485958*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*485960*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*485963*/        OPC_EmitMergeInputChains1_1,
/*485964*/        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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (PAVGBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*485976*/      /*Scope*/ 43, /*->486020*/
/*485977*/        OPC_MoveParent,
/*485978*/        OPC_SwitchType /*2 cases */, 18, MVT::v32i8,// ->485999
/*485981*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*485983*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*485986*/          OPC_EmitMergeInputChains1_1,
/*485987*/          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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPAVGBYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*485999*/        /*SwitchType*/ 18, MVT::v8i16,// ->486019
/*486001*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*486003*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*486006*/          OPC_EmitMergeInputChains1_1,
/*486007*/          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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPAVGWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*486019*/        0, // EndSwitchType
/*486020*/      /*Scope*/ 23, /*->486044*/
/*486021*/        OPC_CheckPredicate, 39, // Predicate_memop
/*486023*/        OPC_MoveParent,
/*486024*/        OPC_CheckType, MVT::v8i16,
/*486026*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*486028*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*486031*/        OPC_EmitMergeInputChains1_1,
/*486032*/        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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (PAVGWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*486044*/      /*Scope*/ 17|128,1/*145*/, /*->486191*/
/*486046*/        OPC_MoveParent,
/*486047*/        OPC_SwitchType /*6 cases */, 40, MVT::v16i16,// ->486090
/*486050*/          OPC_Scope, 18, /*->486070*/ // 2 children in Scope
/*486052*/            OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*486054*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*486057*/            OPC_EmitMergeInputChains1_1,
/*486058*/            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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPAVGWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*486070*/          /*Scope*/ 18, /*->486089*/
/*486071*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*486073*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*486076*/            OPC_EmitMergeInputChains1_1,
/*486077*/            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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPAVGWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*486089*/          0, /*End of Scope*/
/*486090*/        /*SwitchType*/ 18, MVT::v32i16,// ->486110
/*486092*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*486094*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*486097*/          OPC_EmitMergeInputChains1_1,
/*486098*/          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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPAVGWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*486110*/        /*SwitchType*/ 18, MVT::v8i16,// ->486130
/*486112*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*486114*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*486117*/          OPC_EmitMergeInputChains1_1,
/*486118*/          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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPAVGWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*486130*/        /*SwitchType*/ 18, MVT::v64i8,// ->486150
/*486132*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*486134*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*486137*/          OPC_EmitMergeInputChains1_1,
/*486138*/          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, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPAVGBZrm:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*486150*/        /*SwitchType*/ 18, MVT::v32i8,// ->486170
/*486152*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*486154*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*486157*/          OPC_EmitMergeInputChains1_1,
/*486158*/          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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPAVGBZ256rm:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*486170*/        /*SwitchType*/ 18, MVT::v16i8,// ->486190
/*486172*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*486174*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*486177*/          OPC_EmitMergeInputChains1_1,
/*486178*/          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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPAVGBZ128rm:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*486190*/        0, // EndSwitchType
/*486191*/      0, /*End of Scope*/
/*486192*/    /*Scope*/ 24|128,2/*280*/, /*->486474*/
/*486194*/      OPC_MoveChild0,
/*486195*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*486198*/      OPC_RecordMemRef,
/*486199*/      OPC_RecordNode, // #0 = 'ld' chained node
/*486200*/      OPC_CheckFoldableChainNode,
/*486201*/      OPC_RecordChild1, // #1 = $src2
/*486202*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*486204*/      OPC_CheckPredicate, 9, // Predicate_load
/*486206*/      OPC_Scope, 22, /*->486230*/ // 5 children in Scope
/*486208*/        OPC_MoveParent,
/*486209*/        OPC_RecordChild1, // #2 = $src1
/*486210*/        OPC_CheckType, MVT::v16i8,
/*486212*/        OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*486214*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*486217*/        OPC_EmitMergeInputChains1_0,
/*486218*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (X86avg:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v16i8] }:$src1) - Complexity = 25
                  // Dst: (VPAVGBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*486230*/      /*Scope*/ 24, /*->486255*/
/*486231*/        OPC_CheckPredicate, 39, // Predicate_memop
/*486233*/        OPC_MoveParent,
/*486234*/        OPC_RecordChild1, // #2 = $src1
/*486235*/        OPC_CheckType, MVT::v16i8,
/*486237*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*486239*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*486242*/        OPC_EmitMergeInputChains1_0,
/*486243*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PAVGBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (X86avg:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:{ *:[v16i8] }:$src1) - Complexity = 25
                  // Dst: (PAVGBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*486255*/      /*Scope*/ 44, /*->486300*/
/*486256*/        OPC_MoveParent,
/*486257*/        OPC_RecordChild1, // #2 = $src1
/*486258*/        OPC_SwitchType /*2 cases */, 18, MVT::v32i8,// ->486279
/*486261*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*486263*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*486266*/          OPC_EmitMergeInputChains1_0,
/*486267*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGBYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86avg:{ *:[v32i8] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v32i8] }:$src1) - Complexity = 25
                    // Dst: (VPAVGBYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*486279*/        /*SwitchType*/ 18, MVT::v8i16,// ->486299
/*486281*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*486283*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*486286*/          OPC_EmitMergeInputChains1_0,
/*486287*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86avg:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v8i16] }:$src1) - Complexity = 25
                    // Dst: (VPAVGWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*486299*/        0, // EndSwitchType
/*486300*/      /*Scope*/ 24, /*->486325*/
/*486301*/        OPC_CheckPredicate, 39, // Predicate_memop
/*486303*/        OPC_MoveParent,
/*486304*/        OPC_RecordChild1, // #2 = $src1
/*486305*/        OPC_CheckType, MVT::v8i16,
/*486307*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*486309*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*486312*/        OPC_EmitMergeInputChains1_0,
/*486313*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PAVGWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (X86avg:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:{ *:[v8i16] }:$src1) - Complexity = 25
                  // Dst: (PAVGWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*486325*/      /*Scope*/ 18|128,1/*146*/, /*->486473*/
/*486327*/        OPC_MoveParent,
/*486328*/        OPC_RecordChild1, // #2 = $src1
/*486329*/        OPC_SwitchType /*6 cases */, 40, MVT::v16i16,// ->486372
/*486332*/          OPC_Scope, 18, /*->486352*/ // 2 children in Scope
/*486334*/            OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*486336*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*486339*/            OPC_EmitMergeInputChains1_0,
/*486340*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (X86avg:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v16i16] }:$src1) - Complexity = 25
                      // Dst: (VPAVGWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*486352*/          /*Scope*/ 18, /*->486371*/
/*486353*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*486355*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*486358*/            OPC_EmitMergeInputChains1_0,
/*486359*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                      // Src: (X86avg:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1) - Complexity = 25
                      // Dst: (VPAVGWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*486371*/          0, /*End of Scope*/
/*486372*/        /*SwitchType*/ 18, MVT::v32i16,// ->486392
/*486374*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*486376*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*486379*/          OPC_EmitMergeInputChains1_0,
/*486380*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86avg:{ *:[v32i16] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1) - Complexity = 25
                    // Dst: (VPAVGWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*486392*/        /*SwitchType*/ 18, MVT::v8i16,// ->486412
/*486394*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*486396*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*486399*/          OPC_EmitMergeInputChains1_0,
/*486400*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86avg:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1) - Complexity = 25
                    // Dst: (VPAVGWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*486412*/        /*SwitchType*/ 18, MVT::v64i8,// ->486432
/*486414*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*486416*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*486419*/          OPC_EmitMergeInputChains1_0,
/*486420*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGBZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v64i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86avg:{ *:[v64i8] } (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v64i8] }:$src1) - Complexity = 25
                    // Dst: (VPAVGBZrm:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*486432*/        /*SwitchType*/ 18, MVT::v32i8,// ->486452
/*486434*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*486436*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*486439*/          OPC_EmitMergeInputChains1_0,
/*486440*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGBZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86avg:{ *:[v32i8] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v32i8] }:$src1) - Complexity = 25
                    // Dst: (VPAVGBZ256rm:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*486452*/        /*SwitchType*/ 18, MVT::v16i8,// ->486472
/*486454*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*486456*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*486459*/          OPC_EmitMergeInputChains1_0,
/*486460*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPAVGBZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86avg:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v16i8] }:$src1) - Complexity = 25
                    // Dst: (VPAVGBZ128rm:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*486472*/        0, // EndSwitchType
/*486473*/      0, /*End of Scope*/
/*486474*/    /*Scope*/ 26|128,1/*154*/, /*->486630*/
/*486476*/      OPC_RecordChild0, // #0 = $src1
/*486477*/      OPC_RecordChild1, // #1 = $src2
/*486478*/      OPC_SwitchType /*6 cases */, 35, MVT::v16i8,// ->486516
/*486481*/        OPC_Scope, 10, /*->486493*/ // 3 children in Scope
/*486483*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*486485*/          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)
/*486493*/        /*Scope*/ 10, /*->486504*/
/*486494*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*486496*/          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)
/*486504*/        /*Scope*/ 10, /*->486515*/
/*486505*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*486507*/          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)
/*486515*/        0, /*End of Scope*/
/*486516*/      /*SwitchType*/ 24, MVT::v32i8,// ->486542
/*486518*/        OPC_Scope, 10, /*->486530*/ // 2 children in Scope
/*486520*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*486522*/          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)
/*486530*/        /*Scope*/ 10, /*->486541*/
/*486531*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*486533*/          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)
/*486541*/        0, /*End of Scope*/
/*486542*/      /*SwitchType*/ 35, MVT::v8i16,// ->486579
/*486544*/        OPC_Scope, 10, /*->486556*/ // 3 children in Scope
/*486546*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*486548*/          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)
/*486556*/        /*Scope*/ 10, /*->486567*/
/*486557*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*486559*/          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)
/*486567*/        /*Scope*/ 10, /*->486578*/
/*486568*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*486570*/          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)
/*486578*/        0, /*End of Scope*/
/*486579*/      /*SwitchType*/ 24, MVT::v16i16,// ->486605
/*486581*/        OPC_Scope, 10, /*->486593*/ // 2 children in Scope
/*486583*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*486585*/          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)
/*486593*/        /*Scope*/ 10, /*->486604*/
/*486594*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*486596*/          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)
/*486604*/        0, /*End of Scope*/
/*486605*/      /*SwitchType*/ 10, MVT::v32i16,// ->486617
/*486607*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*486609*/        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)
/*486617*/      /*SwitchType*/ 10, MVT::v64i8,// ->486629
/*486619*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*486621*/        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)
/*486629*/      0, // EndSwitchType
/*486630*/    0, /*End of Scope*/
/*486631*/  /*SwitchOpcode*/ 21|128,4/*533*/, TARGET_VAL(X86ISD::PMULUDQ),// ->487168
/*486635*/    OPC_Scope, 94|128,1/*222*/, /*->486860*/ // 3 children in Scope
/*486638*/      OPC_RecordChild0, // #0 = $src1
/*486639*/      OPC_MoveChild1,
/*486640*/      OPC_SwitchOpcode /*2 cases */, 14|128,1/*142*/, TARGET_VAL(ISD::LOAD),// ->486787
/*486645*/        OPC_RecordMemRef,
/*486646*/        OPC_RecordNode, // #1 = 'ld' chained node
/*486647*/        OPC_CheckFoldableChainNode,
/*486648*/        OPC_RecordChild1, // #2 = $src2
/*486649*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*486651*/        OPC_CheckPredicate, 9, // Predicate_load
/*486653*/        OPC_Scope, 21, /*->486676*/ // 3 children in Scope
/*486655*/          OPC_MoveParent,
/*486656*/          OPC_CheckType, MVT::v2i64,
/*486658*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*486660*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*486663*/          OPC_EmitMergeInputChains1_1,
/*486664*/          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>>) - Complexity = 25
                    // Dst: (VPMULUDQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*486676*/        /*Scope*/ 23, /*->486700*/
/*486677*/          OPC_CheckPredicate, 39, // Predicate_memop
/*486679*/          OPC_MoveParent,
/*486680*/          OPC_CheckType, MVT::v2i64,
/*486682*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*486684*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*486687*/          OPC_EmitMergeInputChains1_1,
/*486688*/          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_memop>>) - Complexity = 25
                    // Dst: (PMULUDQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*486700*/        /*Scope*/ 85, /*->486786*/
/*486701*/          OPC_MoveParent,
/*486702*/          OPC_SwitchType /*3 cases */, 40, MVT::v4i64,// ->486745
/*486705*/            OPC_Scope, 18, /*->486725*/ // 2 children in Scope
/*486707*/              OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*486709*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*486712*/              OPC_EmitMergeInputChains1_1,
/*486713*/              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>>) - Complexity = 25
                        // Dst: (VPMULUDQYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*486725*/            /*Scope*/ 18, /*->486744*/
/*486726*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*486728*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*486731*/              OPC_EmitMergeInputChains1_1,
/*486732*/              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>>) - Complexity = 25
                        // Dst: (VPMULUDQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*486744*/            0, /*End of Scope*/
/*486745*/          /*SwitchType*/ 18, MVT::v8i64,// ->486765
/*486747*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*486749*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*486752*/            OPC_EmitMergeInputChains1_1,
/*486753*/            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>>) - Complexity = 25
                      // Dst: (VPMULUDQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*486765*/          /*SwitchType*/ 18, MVT::v2i64,// ->486785
/*486767*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*486769*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*486772*/            OPC_EmitMergeInputChains1_1,
/*486773*/            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>>) - Complexity = 25
                      // Dst: (VPMULUDQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*486785*/          0, // EndSwitchType
/*486786*/        0, /*End of Scope*/
/*486787*/      /*SwitchOpcode*/ 69, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->486859
/*486790*/        OPC_RecordMemRef,
/*486791*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*486792*/        OPC_CheckFoldableChainNode,
/*486793*/        OPC_RecordChild1, // #2 = $src2
/*486794*/        OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*486796*/        OPC_MoveParent,
/*486797*/        OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->486818
/*486800*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*486802*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*486805*/          OPC_EmitMergeInputChains1_1,
/*486806*/          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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                    // Dst: (VPMULUDQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*486818*/        /*SwitchType*/ 18, MVT::v4i64,// ->486838
/*486820*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*486822*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*486825*/          OPC_EmitMergeInputChains1_1,
/*486826*/          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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                    // Dst: (VPMULUDQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*486838*/        /*SwitchType*/ 18, MVT::v2i64,// ->486858
/*486840*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*486842*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*486845*/          OPC_EmitMergeInputChains1_1,
/*486846*/          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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                    // Dst: (VPMULUDQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*486858*/        0, // EndSwitchType
/*486859*/      0, // EndSwitchOpcode
/*486860*/    /*Scope*/ 97|128,1/*225*/, /*->487087*/
/*486862*/      OPC_MoveChild0,
/*486863*/      OPC_SwitchOpcode /*2 cases */, 17|128,1/*145*/, TARGET_VAL(ISD::LOAD),// ->487013
/*486868*/        OPC_RecordMemRef,
/*486869*/        OPC_RecordNode, // #0 = 'ld' chained node
/*486870*/        OPC_CheckFoldableChainNode,
/*486871*/        OPC_RecordChild1, // #1 = $src2
/*486872*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*486874*/        OPC_CheckPredicate, 9, // Predicate_load
/*486876*/        OPC_Scope, 22, /*->486900*/ // 3 children in Scope
/*486878*/          OPC_MoveParent,
/*486879*/          OPC_RecordChild1, // #2 = $src1
/*486880*/          OPC_CheckType, MVT::v2i64,
/*486882*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*486884*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*486887*/          OPC_EmitMergeInputChains1_0,
/*486888*/          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>>, VR128:{ *:[v2i64] }:$src1) - Complexity = 25
                    // Dst: (VPMULUDQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*486900*/        /*Scope*/ 24, /*->486925*/
/*486901*/          OPC_CheckPredicate, 39, // Predicate_memop
/*486903*/          OPC_MoveParent,
/*486904*/          OPC_RecordChild1, // #2 = $src1
/*486905*/          OPC_CheckType, MVT::v2i64,
/*486907*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*486909*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*486912*/          OPC_EmitMergeInputChains1_0,
/*486913*/          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_memop>>, VR128:{ *:[v2i64] }:$src1) - Complexity = 25
                    // Dst: (PMULUDQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*486925*/        /*Scope*/ 86, /*->487012*/
/*486926*/          OPC_MoveParent,
/*486927*/          OPC_RecordChild1, // #2 = $src1
/*486928*/          OPC_SwitchType /*3 cases */, 40, MVT::v4i64,// ->486971
/*486931*/            OPC_Scope, 18, /*->486951*/ // 2 children in Scope
/*486933*/              OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*486935*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*486938*/              OPC_EmitMergeInputChains1_0,
/*486939*/              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>>, VR256:{ *:[v4i64] }:$src1) - Complexity = 25
                        // Dst: (VPMULUDQYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*486951*/            /*Scope*/ 18, /*->486970*/
/*486952*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*486954*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*486957*/              OPC_EmitMergeInputChains1_0,
/*486958*/              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>>, VR256X:{ *:[v4i64] }:$src1) - Complexity = 25
                        // Dst: (VPMULUDQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*486970*/            0, /*End of Scope*/
/*486971*/          /*SwitchType*/ 18, MVT::v8i64,// ->486991
/*486973*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*486975*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*486978*/            OPC_EmitMergeInputChains1_0,
/*486979*/            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>>, VR512:{ *:[v8i64] }:$src1) - Complexity = 25
                      // Dst: (VPMULUDQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*486991*/          /*SwitchType*/ 18, MVT::v2i64,// ->487011
/*486993*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*486995*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*486998*/            OPC_EmitMergeInputChains1_0,
/*486999*/            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>>, VR128X:{ *:[v2i64] }:$src1) - Complexity = 25
                      // Dst: (VPMULUDQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*487011*/          0, // EndSwitchType
/*487012*/        0, /*End of Scope*/
/*487013*/      /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->487086
/*487016*/        OPC_RecordMemRef,
/*487017*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*487018*/        OPC_CheckFoldableChainNode,
/*487019*/        OPC_RecordChild1, // #1 = $src2
/*487020*/        OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*487022*/        OPC_MoveParent,
/*487023*/        OPC_RecordChild1, // #2 = $src1
/*487024*/        OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->487045
/*487027*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*487029*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*487032*/          OPC_EmitMergeInputChains1_0,
/*487033*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULUDQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86pmuludq:{ *:[v8i64] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8i64] }:$src1) - Complexity = 25
                    // Dst: (VPMULUDQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*487045*/        /*SwitchType*/ 18, MVT::v4i64,// ->487065
/*487047*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*487049*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*487052*/          OPC_EmitMergeInputChains1_0,
/*487053*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULUDQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86pmuludq:{ *:[v4i64] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src1) - Complexity = 25
                    // Dst: (VPMULUDQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*487065*/        /*SwitchType*/ 18, MVT::v2i64,// ->487085
/*487067*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*487069*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*487072*/          OPC_EmitMergeInputChains1_0,
/*487073*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULUDQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86pmuludq:{ *:[v2i64] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src1) - Complexity = 25
                    // Dst: (VPMULUDQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*487085*/        0, // EndSwitchType
/*487086*/      0, // EndSwitchOpcode
/*487087*/    /*Scope*/ 79, /*->487167*/
/*487088*/      OPC_RecordChild0, // #0 = $src1
/*487089*/      OPC_RecordChild1, // #1 = $src2
/*487090*/      OPC_SwitchType /*3 cases */, 35, MVT::v2i64,// ->487128
/*487093*/        OPC_Scope, 10, /*->487105*/ // 3 children in Scope
/*487095*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*487097*/          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)
/*487105*/        /*Scope*/ 10, /*->487116*/
/*487106*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*487108*/          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)
/*487116*/        /*Scope*/ 10, /*->487127*/
/*487117*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*487119*/          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)
/*487127*/        0, /*End of Scope*/
/*487128*/      /*SwitchType*/ 24, MVT::v4i64,// ->487154
/*487130*/        OPC_Scope, 10, /*->487142*/ // 2 children in Scope
/*487132*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*487134*/          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)
/*487142*/        /*Scope*/ 10, /*->487153*/
/*487143*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*487145*/          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)
/*487153*/        0, /*End of Scope*/
/*487154*/      /*SwitchType*/ 10, MVT::v8i64,// ->487166
/*487156*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*487158*/        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)
/*487166*/      0, // EndSwitchType
/*487167*/    0, /*End of Scope*/
/*487168*/  /*SwitchOpcode*/ 126|128,2/*382*/, TARGET_VAL(X86ISD::VPMADDWD),// ->487554
/*487172*/    OPC_Scope, 19|128,1/*147*/, /*->487322*/ // 3 children in Scope
/*487175*/      OPC_RecordChild0, // #0 = $src1
/*487176*/      OPC_MoveChild1,
/*487177*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*487180*/      OPC_RecordMemRef,
/*487181*/      OPC_RecordNode, // #1 = 'ld' chained node
/*487182*/      OPC_CheckFoldableChainNode,
/*487183*/      OPC_RecordChild1, // #2 = $src2
/*487184*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*487186*/      OPC_CheckPredicate, 9, // Predicate_load
/*487188*/      OPC_Scope, 43, /*->487233*/ // 3 children in Scope
/*487190*/        OPC_MoveParent,
/*487191*/        OPC_SwitchType /*2 cases */, 18, MVT::v4i32,// ->487212
/*487194*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*487196*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*487199*/          OPC_EmitMergeInputChains1_1,
/*487200*/          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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPMADDWDrm:{ *:[v4i32] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*487212*/        /*SwitchType*/ 18, MVT::v8i32,// ->487232
/*487214*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*487216*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*487219*/          OPC_EmitMergeInputChains1_1,
/*487220*/          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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPMADDWDYrm:{ *:[v8i32] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*487232*/        0, // EndSwitchType
/*487233*/      /*Scope*/ 23, /*->487257*/
/*487234*/        OPC_CheckPredicate, 39, // Predicate_memop
/*487236*/        OPC_MoveParent,
/*487237*/        OPC_CheckType, MVT::v4i32,
/*487239*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*487241*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*487244*/        OPC_EmitMergeInputChains1_1,
/*487245*/        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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (PMADDWDrm:{ *:[v4i32] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*487257*/      /*Scope*/ 63, /*->487321*/
/*487258*/        OPC_MoveParent,
/*487259*/        OPC_SwitchType /*3 cases */, 18, MVT::v16i32,// ->487280
/*487262*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*487264*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*487267*/          OPC_EmitMergeInputChains1_1,
/*487268*/          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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPMADDWDZrm:{ *:[v16i32] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*487280*/        /*SwitchType*/ 18, MVT::v8i32,// ->487300
/*487282*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*487284*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*487287*/          OPC_EmitMergeInputChains1_1,
/*487288*/          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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPMADDWDZ256rm:{ *:[v8i32] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*487300*/        /*SwitchType*/ 18, MVT::v4i32,// ->487320
/*487302*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*487304*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*487307*/          OPC_EmitMergeInputChains1_1,
/*487308*/          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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPMADDWDZ128rm:{ *:[v4i32] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*487320*/        0, // EndSwitchType
/*487321*/      0, /*End of Scope*/
/*487322*/    /*Scope*/ 21|128,1/*149*/, /*->487473*/
/*487324*/      OPC_MoveChild0,
/*487325*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*487328*/      OPC_RecordMemRef,
/*487329*/      OPC_RecordNode, // #0 = 'ld' chained node
/*487330*/      OPC_CheckFoldableChainNode,
/*487331*/      OPC_RecordChild1, // #1 = $src2
/*487332*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*487334*/      OPC_CheckPredicate, 9, // Predicate_load
/*487336*/      OPC_Scope, 44, /*->487382*/ // 3 children in Scope
/*487338*/        OPC_MoveParent,
/*487339*/        OPC_RecordChild1, // #2 = $src1
/*487340*/        OPC_SwitchType /*2 cases */, 18, MVT::v4i32,// ->487361
/*487343*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*487345*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*487348*/          OPC_EmitMergeInputChains1_0,
/*487349*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADDWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86vpmaddwd:{ *:[v4i32] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v8i16] }:$src1) - Complexity = 25
                    // Dst: (VPMADDWDrm:{ *:[v4i32] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*487361*/        /*SwitchType*/ 18, MVT::v8i32,// ->487381
/*487363*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*487365*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*487368*/          OPC_EmitMergeInputChains1_0,
/*487369*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADDWDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86vpmaddwd:{ *:[v8i32] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v16i16] }:$src1) - Complexity = 25
                    // Dst: (VPMADDWDYrm:{ *:[v8i32] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*487381*/        0, // EndSwitchType
/*487382*/      /*Scope*/ 24, /*->487407*/
/*487383*/        OPC_CheckPredicate, 39, // Predicate_memop
/*487385*/        OPC_MoveParent,
/*487386*/        OPC_RecordChild1, // #2 = $src1
/*487387*/        OPC_CheckType, MVT::v4i32,
/*487389*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*487391*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*487394*/        OPC_EmitMergeInputChains1_0,
/*487395*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PMADDWDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (X86vpmaddwd:{ *:[v4i32] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:{ *:[v8i16] }:$src1) - Complexity = 25
                  // Dst: (PMADDWDrm:{ *:[v4i32] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*487407*/      /*Scope*/ 64, /*->487472*/
/*487408*/        OPC_MoveParent,
/*487409*/        OPC_RecordChild1, // #2 = $src1
/*487410*/        OPC_SwitchType /*3 cases */, 18, MVT::v16i32,// ->487431
/*487413*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*487415*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*487418*/          OPC_EmitMergeInputChains1_0,
/*487419*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADDWDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86vpmaddwd:{ *:[v16i32] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1) - Complexity = 25
                    // Dst: (VPMADDWDZrm:{ *:[v16i32] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*487431*/        /*SwitchType*/ 18, MVT::v8i32,// ->487451
/*487433*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*487435*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*487438*/          OPC_EmitMergeInputChains1_0,
/*487439*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADDWDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86vpmaddwd:{ *:[v8i32] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1) - Complexity = 25
                    // Dst: (VPMADDWDZ256rm:{ *:[v8i32] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*487451*/        /*SwitchType*/ 18, MVT::v4i32,// ->487471
/*487453*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*487455*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*487458*/          OPC_EmitMergeInputChains1_0,
/*487459*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMADDWDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86vpmaddwd:{ *:[v4i32] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1) - Complexity = 25
                    // Dst: (VPMADDWDZ128rm:{ *:[v4i32] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*487471*/        0, // EndSwitchType
/*487472*/      0, /*End of Scope*/
/*487473*/    /*Scope*/ 79, /*->487553*/
/*487474*/      OPC_RecordChild0, // #0 = $src1
/*487475*/      OPC_RecordChild1, // #1 = $src2
/*487476*/      OPC_SwitchType /*3 cases */, 35, MVT::v4i32,// ->487514
/*487479*/        OPC_Scope, 10, /*->487491*/ // 3 children in Scope
/*487481*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*487483*/          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)
/*487491*/        /*Scope*/ 10, /*->487502*/
/*487492*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*487494*/          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)
/*487502*/        /*Scope*/ 10, /*->487513*/
/*487503*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*487505*/          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)
/*487513*/        0, /*End of Scope*/
/*487514*/      /*SwitchType*/ 24, MVT::v8i32,// ->487540
/*487516*/        OPC_Scope, 10, /*->487528*/ // 2 children in Scope
/*487518*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*487520*/          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)
/*487528*/        /*Scope*/ 10, /*->487539*/
/*487529*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*487531*/          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)
/*487539*/        0, /*End of Scope*/
/*487540*/      /*SwitchType*/ 10, MVT::v16i32,// ->487552
/*487542*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*487544*/        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)
/*487552*/      0, // EndSwitchType
/*487553*/    0, /*End of Scope*/
/*487554*/  /*SwitchOpcode*/ 126|128,2/*382*/, TARGET_VAL(X86ISD::PSADBW),// ->487940
/*487558*/    OPC_Scope, 19|128,1/*147*/, /*->487708*/ // 3 children in Scope
/*487561*/      OPC_RecordChild0, // #0 = $src1
/*487562*/      OPC_MoveChild1,
/*487563*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*487566*/      OPC_RecordMemRef,
/*487567*/      OPC_RecordNode, // #1 = 'ld' chained node
/*487568*/      OPC_CheckFoldableChainNode,
/*487569*/      OPC_RecordChild1, // #2 = $src2
/*487570*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*487572*/      OPC_CheckPredicate, 9, // Predicate_load
/*487574*/      OPC_Scope, 43, /*->487619*/ // 3 children in Scope
/*487576*/        OPC_MoveParent,
/*487577*/        OPC_SwitchType /*2 cases */, 18, MVT::v2i64,// ->487598
/*487580*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*487582*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*487585*/          OPC_EmitMergeInputChains1_1,
/*487586*/          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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPSADBWrm:{ *:[v2i64] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*487598*/        /*SwitchType*/ 18, MVT::v4i64,// ->487618
/*487600*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*487602*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*487605*/          OPC_EmitMergeInputChains1_1,
/*487606*/          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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPSADBWYrm:{ *:[v4i64] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*487618*/        0, // EndSwitchType
/*487619*/      /*Scope*/ 23, /*->487643*/
/*487620*/        OPC_CheckPredicate, 39, // Predicate_memop
/*487622*/        OPC_MoveParent,
/*487623*/        OPC_CheckType, MVT::v2i64,
/*487625*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*487627*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*487630*/        OPC_EmitMergeInputChains1_1,
/*487631*/        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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (PSADBWrm:{ *:[v2i64] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*487643*/      /*Scope*/ 63, /*->487707*/
/*487644*/        OPC_MoveParent,
/*487645*/        OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->487666
/*487648*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*487650*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*487653*/          OPC_EmitMergeInputChains1_1,
/*487654*/          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, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPSADBWZrm:{ *:[v8i64] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*487666*/        /*SwitchType*/ 18, MVT::v4i64,// ->487686
/*487668*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*487670*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*487673*/          OPC_EmitMergeInputChains1_1,
/*487674*/          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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPSADBWZ256rm:{ *:[v4i64] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*487686*/        /*SwitchType*/ 18, MVT::v2i64,// ->487706
/*487688*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*487690*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*487693*/          OPC_EmitMergeInputChains1_1,
/*487694*/          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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPSADBWZ128rm:{ *:[v2i64] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*487706*/        0, // EndSwitchType
/*487707*/      0, /*End of Scope*/
/*487708*/    /*Scope*/ 21|128,1/*149*/, /*->487859*/
/*487710*/      OPC_MoveChild0,
/*487711*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*487714*/      OPC_RecordMemRef,
/*487715*/      OPC_RecordNode, // #0 = 'ld' chained node
/*487716*/      OPC_CheckFoldableChainNode,
/*487717*/      OPC_RecordChild1, // #1 = $src2
/*487718*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*487720*/      OPC_CheckPredicate, 9, // Predicate_load
/*487722*/      OPC_Scope, 44, /*->487768*/ // 3 children in Scope
/*487724*/        OPC_MoveParent,
/*487725*/        OPC_RecordChild1, // #2 = $src1
/*487726*/        OPC_SwitchType /*2 cases */, 18, MVT::v2i64,// ->487747
/*487729*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*487731*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*487734*/          OPC_EmitMergeInputChains1_0,
/*487735*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSADBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86psadbw:{ *:[v2i64] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v16i8] }:$src1) - Complexity = 25
                    // Dst: (VPSADBWrm:{ *:[v2i64] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*487747*/        /*SwitchType*/ 18, MVT::v4i64,// ->487767
/*487749*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*487751*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*487754*/          OPC_EmitMergeInputChains1_0,
/*487755*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSADBWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86psadbw:{ *:[v4i64] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v32i8] }:$src1) - Complexity = 25
                    // Dst: (VPSADBWYrm:{ *:[v4i64] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*487767*/        0, // EndSwitchType
/*487768*/      /*Scope*/ 24, /*->487793*/
/*487769*/        OPC_CheckPredicate, 39, // Predicate_memop
/*487771*/        OPC_MoveParent,
/*487772*/        OPC_RecordChild1, // #2 = $src1
/*487773*/        OPC_CheckType, MVT::v2i64,
/*487775*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*487777*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*487780*/        OPC_EmitMergeInputChains1_0,
/*487781*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PSADBWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (X86psadbw:{ *:[v2i64] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:{ *:[v16i8] }:$src1) - Complexity = 25
                  // Dst: (PSADBWrm:{ *:[v2i64] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*487793*/      /*Scope*/ 64, /*->487858*/
/*487794*/        OPC_MoveParent,
/*487795*/        OPC_RecordChild1, // #2 = $src1
/*487796*/        OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->487817
/*487799*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*487801*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*487804*/          OPC_EmitMergeInputChains1_0,
/*487805*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSADBWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86psadbw:{ *:[v8i64] } (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v64i8] }:$src1) - Complexity = 25
                    // Dst: (VPSADBWZrm:{ *:[v8i64] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*487817*/        /*SwitchType*/ 18, MVT::v4i64,// ->487837
/*487819*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*487821*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*487824*/          OPC_EmitMergeInputChains1_0,
/*487825*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSADBWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86psadbw:{ *:[v4i64] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v32i8] }:$src1) - Complexity = 25
                    // Dst: (VPSADBWZ256rm:{ *:[v4i64] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*487837*/        /*SwitchType*/ 18, MVT::v2i64,// ->487857
/*487839*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*487841*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*487844*/          OPC_EmitMergeInputChains1_0,
/*487845*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSADBWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86psadbw:{ *:[v2i64] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v16i8] }:$src1) - Complexity = 25
                    // Dst: (VPSADBWZ128rm:{ *:[v2i64] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*487857*/        0, // EndSwitchType
/*487858*/      0, /*End of Scope*/
/*487859*/    /*Scope*/ 79, /*->487939*/
/*487860*/      OPC_RecordChild0, // #0 = $src1
/*487861*/      OPC_RecordChild1, // #1 = $src2
/*487862*/      OPC_SwitchType /*3 cases */, 35, MVT::v2i64,// ->487900
/*487865*/        OPC_Scope, 10, /*->487877*/ // 3 children in Scope
/*487867*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*487869*/          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)
/*487877*/        /*Scope*/ 10, /*->487888*/
/*487878*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*487880*/          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)
/*487888*/        /*Scope*/ 10, /*->487899*/
/*487889*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*487891*/          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)
/*487899*/        0, /*End of Scope*/
/*487900*/      /*SwitchType*/ 24, MVT::v4i64,// ->487926
/*487902*/        OPC_Scope, 10, /*->487914*/ // 2 children in Scope
/*487904*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*487906*/          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)
/*487914*/        /*Scope*/ 10, /*->487925*/
/*487915*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*487917*/          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)
/*487925*/        0, /*End of Scope*/
/*487926*/      /*SwitchType*/ 10, MVT::v8i64,// ->487938
/*487928*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*487930*/        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)
/*487938*/      0, // EndSwitchType
/*487939*/    0, /*End of Scope*/
/*487940*/  /*SwitchOpcode*/ 35|128,5/*675*/, TARGET_VAL(X86ISD::VSHL),// ->488619
/*487944*/    OPC_RecordChild0, // #0 = $src1
/*487945*/    OPC_Scope, 41|128,3/*425*/, /*->488373*/ // 2 children in Scope
/*487948*/      OPC_MoveChild1,
/*487949*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*487952*/      OPC_RecordMemRef,
/*487953*/      OPC_RecordNode, // #1 = 'ld' chained node
/*487954*/      OPC_CheckFoldableChainNode,
/*487955*/      OPC_RecordChild1, // #2 = $src2
/*487956*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*487958*/      OPC_CheckPredicate, 9, // Predicate_load
/*487960*/      OPC_SwitchType /*3 cases */, 6|128,1/*134*/, MVT::v8i16,// ->488098
/*487964*/        OPC_Scope, 43, /*->488009*/ // 3 children in Scope
/*487966*/          OPC_MoveParent,
/*487967*/          OPC_SwitchType /*2 cases */, 18, MVT::v8i16,// ->487988
/*487970*/            OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*487972*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*487975*/            OPC_EmitMergeInputChains1_1,
/*487976*/            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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPSLLWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*487988*/          /*SwitchType*/ 18, MVT::v16i16,// ->488008
/*487990*/            OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*487992*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*487995*/            OPC_EmitMergeInputChains1_1,
/*487996*/            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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPSLLWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*488008*/          0, // EndSwitchType
/*488009*/        /*Scope*/ 23, /*->488033*/
/*488010*/          OPC_CheckPredicate, 39, // Predicate_memop
/*488012*/          OPC_MoveParent,
/*488013*/          OPC_CheckType, MVT::v8i16,
/*488015*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*488017*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*488020*/          OPC_EmitMergeInputChains1_1,
/*488021*/          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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                    // Dst: (PSLLWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*488033*/        /*Scope*/ 63, /*->488097*/
/*488034*/          OPC_MoveParent,
/*488035*/          OPC_SwitchType /*3 cases */, 18, MVT::v32i16,// ->488056
/*488038*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*488040*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*488043*/            OPC_EmitMergeInputChains1_1,
/*488044*/            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:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPSLLWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*488056*/          /*SwitchType*/ 18, MVT::v16i16,// ->488076
/*488058*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*488060*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*488063*/            OPC_EmitMergeInputChains1_1,
/*488064*/            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:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPSLLWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*488076*/          /*SwitchType*/ 18, MVT::v8i16,// ->488096
/*488078*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*488080*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*488083*/            OPC_EmitMergeInputChains1_1,
/*488084*/            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:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPSLLWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*488096*/          0, // EndSwitchType
/*488097*/        0, /*End of Scope*/
/*488098*/      /*SwitchType*/ 6|128,1/*134*/, MVT::v4i32,// ->488235
/*488101*/        OPC_Scope, 43, /*->488146*/ // 3 children in Scope
/*488103*/          OPC_MoveParent,
/*488104*/          OPC_SwitchType /*2 cases */, 18, MVT::v4i32,// ->488125
/*488107*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*488109*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*488112*/            OPC_EmitMergeInputChains1_1,
/*488113*/            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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPSLLDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*488125*/          /*SwitchType*/ 18, MVT::v8i32,// ->488145
/*488127*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*488129*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*488132*/            OPC_EmitMergeInputChains1_1,
/*488133*/            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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPSLLDYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*488145*/          0, // EndSwitchType
/*488146*/        /*Scope*/ 23, /*->488170*/
/*488147*/          OPC_CheckPredicate, 39, // Predicate_memop
/*488149*/          OPC_MoveParent,
/*488150*/          OPC_CheckType, MVT::v4i32,
/*488152*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*488154*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*488157*/          OPC_EmitMergeInputChains1_1,
/*488158*/          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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                    // Dst: (PSLLDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*488170*/        /*Scope*/ 63, /*->488234*/
/*488171*/          OPC_MoveParent,
/*488172*/          OPC_SwitchType /*3 cases */, 18, MVT::v16i32,// ->488193
/*488175*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*488177*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*488180*/            OPC_EmitMergeInputChains1_1,
/*488181*/            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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPSLLDZrm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*488193*/          /*SwitchType*/ 18, MVT::v8i32,// ->488213
/*488195*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*488197*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*488200*/            OPC_EmitMergeInputChains1_1,
/*488201*/            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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPSLLDZ256rm:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*488213*/          /*SwitchType*/ 18, MVT::v4i32,// ->488233
/*488215*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*488217*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*488220*/            OPC_EmitMergeInputChains1_1,
/*488221*/            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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPSLLDZ128rm:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*488233*/          0, // EndSwitchType
/*488234*/        0, /*End of Scope*/
/*488235*/      /*SwitchType*/ 6|128,1/*134*/, MVT::v2i64,// ->488372
/*488238*/        OPC_Scope, 43, /*->488283*/ // 3 children in Scope
/*488240*/          OPC_MoveParent,
/*488241*/          OPC_SwitchType /*2 cases */, 18, MVT::v2i64,// ->488262
/*488244*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*488246*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*488249*/            OPC_EmitMergeInputChains1_1,
/*488250*/            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>>) - Complexity = 25
                      // Dst: (VPSLLQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*488262*/          /*SwitchType*/ 18, MVT::v4i64,// ->488282
/*488264*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*488266*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*488269*/            OPC_EmitMergeInputChains1_1,
/*488270*/            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>>) - Complexity = 25
                      // Dst: (VPSLLQYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*488282*/          0, // EndSwitchType
/*488283*/        /*Scope*/ 23, /*->488307*/
/*488284*/          OPC_CheckPredicate, 39, // Predicate_memop
/*488286*/          OPC_MoveParent,
/*488287*/          OPC_CheckType, MVT::v2i64,
/*488289*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*488291*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*488294*/          OPC_EmitMergeInputChains1_1,
/*488295*/          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_memop>>) - Complexity = 25
                    // Dst: (PSLLQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*488307*/        /*Scope*/ 63, /*->488371*/
/*488308*/          OPC_MoveParent,
/*488309*/          OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->488330
/*488312*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*488314*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*488317*/            OPC_EmitMergeInputChains1_1,
/*488318*/            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>>) - Complexity = 25
                      // Dst: (VPSLLQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*488330*/          /*SwitchType*/ 18, MVT::v4i64,// ->488350
/*488332*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*488334*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*488337*/            OPC_EmitMergeInputChains1_1,
/*488338*/            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>>) - Complexity = 25
                      // Dst: (VPSLLQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*488350*/          /*SwitchType*/ 18, MVT::v2i64,// ->488370
/*488352*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*488354*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*488357*/            OPC_EmitMergeInputChains1_1,
/*488358*/            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>>) - Complexity = 25
                      // Dst: (VPSLLQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*488370*/          0, // EndSwitchType
/*488371*/        0, /*End of Scope*/
/*488372*/      0, // EndSwitchType
/*488373*/    /*Scope*/ 115|128,1/*243*/, /*->488618*/
/*488375*/      OPC_RecordChild1, // #1 = $src2
/*488376*/      OPC_Scope, 79, /*->488457*/ // 3 children in Scope
/*488378*/        OPC_CheckChild1Type, MVT::v8i16,
/*488380*/        OPC_SwitchType /*3 cases */, 35, MVT::v8i16,// ->488418
/*488383*/          OPC_Scope, 10, /*->488395*/ // 3 children in Scope
/*488385*/            OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*488387*/            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)
/*488395*/          /*Scope*/ 10, /*->488406*/
/*488396*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*488398*/            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)
/*488406*/          /*Scope*/ 10, /*->488417*/
/*488407*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*488409*/            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)
/*488417*/          0, /*End of Scope*/
/*488418*/        /*SwitchType*/ 24, MVT::v16i16,// ->488444
/*488420*/          OPC_Scope, 10, /*->488432*/ // 2 children in Scope
/*488422*/            OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*488424*/            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)
/*488432*/          /*Scope*/ 10, /*->488443*/
/*488433*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*488435*/            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)
/*488443*/          0, /*End of Scope*/
/*488444*/        /*SwitchType*/ 10, MVT::v32i16,// ->488456
/*488446*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*488448*/          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)
/*488456*/        0, // EndSwitchType
/*488457*/      /*Scope*/ 79, /*->488537*/
/*488458*/        OPC_CheckChild1Type, MVT::v4i32,
/*488460*/        OPC_SwitchType /*3 cases */, 35, MVT::v4i32,// ->488498
/*488463*/          OPC_Scope, 10, /*->488475*/ // 3 children in Scope
/*488465*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*488467*/            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)
/*488475*/          /*Scope*/ 10, /*->488486*/
/*488476*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*488478*/            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)
/*488486*/          /*Scope*/ 10, /*->488497*/
/*488487*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*488489*/            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)
/*488497*/          0, /*End of Scope*/
/*488498*/        /*SwitchType*/ 24, MVT::v8i32,// ->488524
/*488500*/          OPC_Scope, 10, /*->488512*/ // 2 children in Scope
/*488502*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*488504*/            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)
/*488512*/          /*Scope*/ 10, /*->488523*/
/*488513*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*488515*/            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)
/*488523*/          0, /*End of Scope*/
/*488524*/        /*SwitchType*/ 10, MVT::v16i32,// ->488536
/*488526*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*488528*/          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)
/*488536*/        0, // EndSwitchType
/*488537*/      /*Scope*/ 79, /*->488617*/
/*488538*/        OPC_CheckChild1Type, MVT::v2i64,
/*488540*/        OPC_SwitchType /*3 cases */, 35, MVT::v2i64,// ->488578
/*488543*/          OPC_Scope, 10, /*->488555*/ // 3 children in Scope
/*488545*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*488547*/            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)
/*488555*/          /*Scope*/ 10, /*->488566*/
/*488556*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*488558*/            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)
/*488566*/          /*Scope*/ 10, /*->488577*/
/*488567*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*488569*/            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)
/*488577*/          0, /*End of Scope*/
/*488578*/        /*SwitchType*/ 24, MVT::v4i64,// ->488604
/*488580*/          OPC_Scope, 10, /*->488592*/ // 2 children in Scope
/*488582*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*488584*/            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)
/*488592*/          /*Scope*/ 10, /*->488603*/
/*488593*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*488595*/            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)
/*488603*/          0, /*End of Scope*/
/*488604*/        /*SwitchType*/ 10, MVT::v8i64,// ->488616
/*488606*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*488608*/          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)
/*488616*/        0, // EndSwitchType
/*488617*/      0, /*End of Scope*/
/*488618*/    0, /*End of Scope*/
/*488619*/  /*SwitchOpcode*/ 35|128,5/*675*/, TARGET_VAL(X86ISD::VSRL),// ->489298
/*488623*/    OPC_RecordChild0, // #0 = $src1
/*488624*/    OPC_Scope, 41|128,3/*425*/, /*->489052*/ // 2 children in Scope
/*488627*/      OPC_MoveChild1,
/*488628*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*488631*/      OPC_RecordMemRef,
/*488632*/      OPC_RecordNode, // #1 = 'ld' chained node
/*488633*/      OPC_CheckFoldableChainNode,
/*488634*/      OPC_RecordChild1, // #2 = $src2
/*488635*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*488637*/      OPC_CheckPredicate, 9, // Predicate_load
/*488639*/      OPC_SwitchType /*3 cases */, 6|128,1/*134*/, MVT::v8i16,// ->488777
/*488643*/        OPC_Scope, 43, /*->488688*/ // 3 children in Scope
/*488645*/          OPC_MoveParent,
/*488646*/          OPC_SwitchType /*2 cases */, 18, MVT::v8i16,// ->488667
/*488649*/            OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*488651*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*488654*/            OPC_EmitMergeInputChains1_1,
/*488655*/            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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPSRLWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*488667*/          /*SwitchType*/ 18, MVT::v16i16,// ->488687
/*488669*/            OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*488671*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*488674*/            OPC_EmitMergeInputChains1_1,
/*488675*/            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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPSRLWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*488687*/          0, // EndSwitchType
/*488688*/        /*Scope*/ 23, /*->488712*/
/*488689*/          OPC_CheckPredicate, 39, // Predicate_memop
/*488691*/          OPC_MoveParent,
/*488692*/          OPC_CheckType, MVT::v8i16,
/*488694*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*488696*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*488699*/          OPC_EmitMergeInputChains1_1,
/*488700*/          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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                    // Dst: (PSRLWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*488712*/        /*Scope*/ 63, /*->488776*/
/*488713*/          OPC_MoveParent,
/*488714*/          OPC_SwitchType /*3 cases */, 18, MVT::v32i16,// ->488735
/*488717*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*488719*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*488722*/            OPC_EmitMergeInputChains1_1,
/*488723*/            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:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPSRLWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*488735*/          /*SwitchType*/ 18, MVT::v16i16,// ->488755
/*488737*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*488739*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*488742*/            OPC_EmitMergeInputChains1_1,
/*488743*/            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:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPSRLWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*488755*/          /*SwitchType*/ 18, MVT::v8i16,// ->488775
/*488757*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*488759*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*488762*/            OPC_EmitMergeInputChains1_1,
/*488763*/            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:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPSRLWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*488775*/          0, // EndSwitchType
/*488776*/        0, /*End of Scope*/
/*488777*/      /*SwitchType*/ 6|128,1/*134*/, MVT::v4i32,// ->488914
/*488780*/        OPC_Scope, 43, /*->488825*/ // 3 children in Scope
/*488782*/          OPC_MoveParent,
/*488783*/          OPC_SwitchType /*2 cases */, 18, MVT::v4i32,// ->488804
/*488786*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*488788*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*488791*/            OPC_EmitMergeInputChains1_1,
/*488792*/            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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPSRLDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*488804*/          /*SwitchType*/ 18, MVT::v8i32,// ->488824
/*488806*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*488808*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*488811*/            OPC_EmitMergeInputChains1_1,
/*488812*/            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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPSRLDYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*488824*/          0, // EndSwitchType
/*488825*/        /*Scope*/ 23, /*->488849*/
/*488826*/          OPC_CheckPredicate, 39, // Predicate_memop
/*488828*/          OPC_MoveParent,
/*488829*/          OPC_CheckType, MVT::v4i32,
/*488831*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*488833*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*488836*/          OPC_EmitMergeInputChains1_1,
/*488837*/          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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                    // Dst: (PSRLDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*488849*/        /*Scope*/ 63, /*->488913*/
/*488850*/          OPC_MoveParent,
/*488851*/          OPC_SwitchType /*3 cases */, 18, MVT::v16i32,// ->488872
/*488854*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*488856*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*488859*/            OPC_EmitMergeInputChains1_1,
/*488860*/            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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPSRLDZrm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*488872*/          /*SwitchType*/ 18, MVT::v8i32,// ->488892
/*488874*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*488876*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*488879*/            OPC_EmitMergeInputChains1_1,
/*488880*/            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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPSRLDZ256rm:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*488892*/          /*SwitchType*/ 18, MVT::v4i32,// ->488912
/*488894*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*488896*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*488899*/            OPC_EmitMergeInputChains1_1,
/*488900*/            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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPSRLDZ128rm:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*488912*/          0, // EndSwitchType
/*488913*/        0, /*End of Scope*/
/*488914*/      /*SwitchType*/ 6|128,1/*134*/, MVT::v2i64,// ->489051
/*488917*/        OPC_Scope, 43, /*->488962*/ // 3 children in Scope
/*488919*/          OPC_MoveParent,
/*488920*/          OPC_SwitchType /*2 cases */, 18, MVT::v2i64,// ->488941
/*488923*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*488925*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*488928*/            OPC_EmitMergeInputChains1_1,
/*488929*/            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>>) - Complexity = 25
                      // Dst: (VPSRLQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*488941*/          /*SwitchType*/ 18, MVT::v4i64,// ->488961
/*488943*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*488945*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*488948*/            OPC_EmitMergeInputChains1_1,
/*488949*/            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>>) - Complexity = 25
                      // Dst: (VPSRLQYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*488961*/          0, // EndSwitchType
/*488962*/        /*Scope*/ 23, /*->488986*/
/*488963*/          OPC_CheckPredicate, 39, // Predicate_memop
/*488965*/          OPC_MoveParent,
/*488966*/          OPC_CheckType, MVT::v2i64,
/*488968*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*488970*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*488973*/          OPC_EmitMergeInputChains1_1,
/*488974*/          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_memop>>) - Complexity = 25
                    // Dst: (PSRLQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*488986*/        /*Scope*/ 63, /*->489050*/
/*488987*/          OPC_MoveParent,
/*488988*/          OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->489009
/*488991*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*488993*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*488996*/            OPC_EmitMergeInputChains1_1,
/*488997*/            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>>) - Complexity = 25
                      // Dst: (VPSRLQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*489009*/          /*SwitchType*/ 18, MVT::v4i64,// ->489029
/*489011*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*489013*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*489016*/            OPC_EmitMergeInputChains1_1,
/*489017*/            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>>) - Complexity = 25
                      // Dst: (VPSRLQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*489029*/          /*SwitchType*/ 18, MVT::v2i64,// ->489049
/*489031*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*489033*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*489036*/            OPC_EmitMergeInputChains1_1,
/*489037*/            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>>) - Complexity = 25
                      // Dst: (VPSRLQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*489049*/          0, // EndSwitchType
/*489050*/        0, /*End of Scope*/
/*489051*/      0, // EndSwitchType
/*489052*/    /*Scope*/ 115|128,1/*243*/, /*->489297*/
/*489054*/      OPC_RecordChild1, // #1 = $src2
/*489055*/      OPC_Scope, 79, /*->489136*/ // 3 children in Scope
/*489057*/        OPC_CheckChild1Type, MVT::v8i16,
/*489059*/        OPC_SwitchType /*3 cases */, 35, MVT::v8i16,// ->489097
/*489062*/          OPC_Scope, 10, /*->489074*/ // 3 children in Scope
/*489064*/            OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*489066*/            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)
/*489074*/          /*Scope*/ 10, /*->489085*/
/*489075*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*489077*/            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)
/*489085*/          /*Scope*/ 10, /*->489096*/
/*489086*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*489088*/            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)
/*489096*/          0, /*End of Scope*/
/*489097*/        /*SwitchType*/ 24, MVT::v16i16,// ->489123
/*489099*/          OPC_Scope, 10, /*->489111*/ // 2 children in Scope
/*489101*/            OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*489103*/            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)
/*489111*/          /*Scope*/ 10, /*->489122*/
/*489112*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*489114*/            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)
/*489122*/          0, /*End of Scope*/
/*489123*/        /*SwitchType*/ 10, MVT::v32i16,// ->489135
/*489125*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*489127*/          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)
/*489135*/        0, // EndSwitchType
/*489136*/      /*Scope*/ 79, /*->489216*/
/*489137*/        OPC_CheckChild1Type, MVT::v4i32,
/*489139*/        OPC_SwitchType /*3 cases */, 35, MVT::v4i32,// ->489177
/*489142*/          OPC_Scope, 10, /*->489154*/ // 3 children in Scope
/*489144*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*489146*/            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)
/*489154*/          /*Scope*/ 10, /*->489165*/
/*489155*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*489157*/            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)
/*489165*/          /*Scope*/ 10, /*->489176*/
/*489166*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*489168*/            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)
/*489176*/          0, /*End of Scope*/
/*489177*/        /*SwitchType*/ 24, MVT::v8i32,// ->489203
/*489179*/          OPC_Scope, 10, /*->489191*/ // 2 children in Scope
/*489181*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*489183*/            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)
/*489191*/          /*Scope*/ 10, /*->489202*/
/*489192*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*489194*/            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)
/*489202*/          0, /*End of Scope*/
/*489203*/        /*SwitchType*/ 10, MVT::v16i32,// ->489215
/*489205*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*489207*/          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)
/*489215*/        0, // EndSwitchType
/*489216*/      /*Scope*/ 79, /*->489296*/
/*489217*/        OPC_CheckChild1Type, MVT::v2i64,
/*489219*/        OPC_SwitchType /*3 cases */, 35, MVT::v2i64,// ->489257
/*489222*/          OPC_Scope, 10, /*->489234*/ // 3 children in Scope
/*489224*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*489226*/            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)
/*489234*/          /*Scope*/ 10, /*->489245*/
/*489235*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*489237*/            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)
/*489245*/          /*Scope*/ 10, /*->489256*/
/*489246*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*489248*/            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)
/*489256*/          0, /*End of Scope*/
/*489257*/        /*SwitchType*/ 24, MVT::v4i64,// ->489283
/*489259*/          OPC_Scope, 10, /*->489271*/ // 2 children in Scope
/*489261*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*489263*/            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)
/*489271*/          /*Scope*/ 10, /*->489282*/
/*489272*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*489274*/            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)
/*489282*/          0, /*End of Scope*/
/*489283*/        /*SwitchType*/ 10, MVT::v8i64,// ->489295
/*489285*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*489287*/          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)
/*489295*/        0, // EndSwitchType
/*489296*/      0, /*End of Scope*/
/*489297*/    0, /*End of Scope*/
/*489298*/  /*SwitchOpcode*/ 10|128,5/*650*/, TARGET_VAL(X86ISD::VSRA),// ->489952
/*489302*/    OPC_RecordChild0, // #0 = $src1
/*489303*/    OPC_Scope, 97|128,2/*353*/, /*->489659*/ // 2 children in Scope
/*489306*/      OPC_MoveChild1,
/*489307*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*489310*/      OPC_RecordMemRef,
/*489311*/      OPC_RecordNode, // #1 = 'ld' chained node
/*489312*/      OPC_CheckFoldableChainNode,
/*489313*/      OPC_RecordChild1, // #2 = $src2
/*489314*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*489316*/      OPC_CheckPredicate, 9, // Predicate_load
/*489318*/      OPC_SwitchType /*3 cases */, 6|128,1/*134*/, MVT::v8i16,// ->489456
/*489322*/        OPC_Scope, 43, /*->489367*/ // 3 children in Scope
/*489324*/          OPC_MoveParent,
/*489325*/          OPC_SwitchType /*2 cases */, 18, MVT::v8i16,// ->489346
/*489328*/            OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*489330*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*489333*/            OPC_EmitMergeInputChains1_1,
/*489334*/            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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPSRAWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*489346*/          /*SwitchType*/ 18, MVT::v16i16,// ->489366
/*489348*/            OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*489350*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*489353*/            OPC_EmitMergeInputChains1_1,
/*489354*/            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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPSRAWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*489366*/          0, // EndSwitchType
/*489367*/        /*Scope*/ 23, /*->489391*/
/*489368*/          OPC_CheckPredicate, 39, // Predicate_memop
/*489370*/          OPC_MoveParent,
/*489371*/          OPC_CheckType, MVT::v8i16,
/*489373*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*489375*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*489378*/          OPC_EmitMergeInputChains1_1,
/*489379*/          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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                    // Dst: (PSRAWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*489391*/        /*Scope*/ 63, /*->489455*/
/*489392*/          OPC_MoveParent,
/*489393*/          OPC_SwitchType /*3 cases */, 18, MVT::v32i16,// ->489414
/*489396*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*489398*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*489401*/            OPC_EmitMergeInputChains1_1,
/*489402*/            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:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPSRAWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*489414*/          /*SwitchType*/ 18, MVT::v16i16,// ->489434
/*489416*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*489418*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*489421*/            OPC_EmitMergeInputChains1_1,
/*489422*/            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:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPSRAWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*489434*/          /*SwitchType*/ 18, MVT::v8i16,// ->489454
/*489436*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*489438*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*489441*/            OPC_EmitMergeInputChains1_1,
/*489442*/            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:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPSRAWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*489454*/          0, // EndSwitchType
/*489455*/        0, /*End of Scope*/
/*489456*/      /*SwitchType*/ 6|128,1/*134*/, MVT::v4i32,// ->489593
/*489459*/        OPC_Scope, 43, /*->489504*/ // 3 children in Scope
/*489461*/          OPC_MoveParent,
/*489462*/          OPC_SwitchType /*2 cases */, 18, MVT::v4i32,// ->489483
/*489465*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*489467*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*489470*/            OPC_EmitMergeInputChains1_1,
/*489471*/            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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPSRADrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*489483*/          /*SwitchType*/ 18, MVT::v8i32,// ->489503
/*489485*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*489487*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*489490*/            OPC_EmitMergeInputChains1_1,
/*489491*/            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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPSRADYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*489503*/          0, // EndSwitchType
/*489504*/        /*Scope*/ 23, /*->489528*/
/*489505*/          OPC_CheckPredicate, 39, // Predicate_memop
/*489507*/          OPC_MoveParent,
/*489508*/          OPC_CheckType, MVT::v4i32,
/*489510*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*489512*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*489515*/          OPC_EmitMergeInputChains1_1,
/*489516*/          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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                    // Dst: (PSRADrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*489528*/        /*Scope*/ 63, /*->489592*/
/*489529*/          OPC_MoveParent,
/*489530*/          OPC_SwitchType /*3 cases */, 18, MVT::v16i32,// ->489551
/*489533*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*489535*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*489538*/            OPC_EmitMergeInputChains1_1,
/*489539*/            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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPSRADZrm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*489551*/          /*SwitchType*/ 18, MVT::v8i32,// ->489571
/*489553*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*489555*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*489558*/            OPC_EmitMergeInputChains1_1,
/*489559*/            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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPSRADZ256rm:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*489571*/          /*SwitchType*/ 18, MVT::v4i32,// ->489591
/*489573*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*489575*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*489578*/            OPC_EmitMergeInputChains1_1,
/*489579*/            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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPSRADZ128rm:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*489591*/          0, // EndSwitchType
/*489592*/        0, /*End of Scope*/
/*489593*/      /*SwitchType*/ 63, MVT::v2i64,// ->489658
/*489595*/        OPC_MoveParent,
/*489596*/        OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->489617
/*489599*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*489601*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*489604*/          OPC_EmitMergeInputChains1_1,
/*489605*/          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>>) - Complexity = 25
                    // Dst: (VPSRAQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*489617*/        /*SwitchType*/ 18, MVT::v4i64,// ->489637
/*489619*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*489621*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*489624*/          OPC_EmitMergeInputChains1_1,
/*489625*/          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>>) - Complexity = 25
                    // Dst: (VPSRAQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*489637*/        /*SwitchType*/ 18, MVT::v2i64,// ->489657
/*489639*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*489641*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*489644*/          OPC_EmitMergeInputChains1_1,
/*489645*/          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>>) - Complexity = 25
                    // Dst: (VPSRAQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*489657*/        0, // EndSwitchType
/*489658*/      0, // EndSwitchType
/*489659*/    /*Scope*/ 34|128,2/*290*/, /*->489951*/
/*489661*/      OPC_RecordChild1, // #1 = $src2
/*489662*/      OPC_Scope, 79, /*->489743*/ // 3 children in Scope
/*489664*/        OPC_CheckChild1Type, MVT::v8i16,
/*489666*/        OPC_SwitchType /*3 cases */, 35, MVT::v8i16,// ->489704
/*489669*/          OPC_Scope, 10, /*->489681*/ // 3 children in Scope
/*489671*/            OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*489673*/            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)
/*489681*/          /*Scope*/ 10, /*->489692*/
/*489682*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*489684*/            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)
/*489692*/          /*Scope*/ 10, /*->489703*/
/*489693*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*489695*/            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)
/*489703*/          0, /*End of Scope*/
/*489704*/        /*SwitchType*/ 24, MVT::v16i16,// ->489730
/*489706*/          OPC_Scope, 10, /*->489718*/ // 2 children in Scope
/*489708*/            OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*489710*/            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)
/*489718*/          /*Scope*/ 10, /*->489729*/
/*489719*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*489721*/            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)
/*489729*/          0, /*End of Scope*/
/*489730*/        /*SwitchType*/ 10, MVT::v32i16,// ->489742
/*489732*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*489734*/          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)
/*489742*/        0, // EndSwitchType
/*489743*/      /*Scope*/ 79, /*->489823*/
/*489744*/        OPC_CheckChild1Type, MVT::v4i32,
/*489746*/        OPC_SwitchType /*3 cases */, 35, MVT::v4i32,// ->489784
/*489749*/          OPC_Scope, 10, /*->489761*/ // 3 children in Scope
/*489751*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*489753*/            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)
/*489761*/          /*Scope*/ 10, /*->489772*/
/*489762*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*489764*/            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)
/*489772*/          /*Scope*/ 10, /*->489783*/
/*489773*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*489775*/            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)
/*489783*/          0, /*End of Scope*/
/*489784*/        /*SwitchType*/ 24, MVT::v8i32,// ->489810
/*489786*/          OPC_Scope, 10, /*->489798*/ // 2 children in Scope
/*489788*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*489790*/            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)
/*489798*/          /*Scope*/ 10, /*->489809*/
/*489799*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*489801*/            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)
/*489809*/          0, /*End of Scope*/
/*489810*/        /*SwitchType*/ 10, MVT::v16i32,// ->489822
/*489812*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*489814*/          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)
/*489822*/        0, // EndSwitchType
/*489823*/      /*Scope*/ 126, /*->489950*/
/*489824*/        OPC_CheckChild1Type, MVT::v2i64,
/*489826*/        OPC_SwitchType /*3 cases */, 10, MVT::v8i64,// ->489839
/*489829*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*489831*/          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)
/*489839*/        /*SwitchType*/ 53, MVT::v4i64,// ->489894
/*489841*/          OPC_Scope, 10, /*->489853*/ // 2 children in Scope
/*489843*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*489845*/            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)
/*489853*/          /*Scope*/ 39, /*->489893*/
/*489854*/            OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*489856*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #2
/*489862*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*489865*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*489874*/            OPC_EmitNode1, TARGET_VAL(X86::VPSRAQZrr), 0,
                          MVT::v8i64, 2/*#Ops*/, 4, 1,  // Results = #5
/*489882*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*489885*/            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] })
/*489893*/          0, /*End of Scope*/
/*489894*/        /*SwitchType*/ 53, MVT::v2i64,// ->489949
/*489896*/          OPC_Scope, 10, /*->489908*/ // 2 children in Scope
/*489898*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*489900*/            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)
/*489908*/          /*Scope*/ 39, /*->489948*/
/*489909*/            OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*489911*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                          MVT::v8i64, 0/*#Ops*/,  // Results = #2
/*489917*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*489920*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                          MVT::v8i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*489929*/            OPC_EmitNode1, TARGET_VAL(X86::VPSRAQZrr), 0,
                          MVT::v8i64, 2/*#Ops*/, 4, 1,  // Results = #5
/*489937*/            OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*489940*/            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] })
/*489948*/          0, /*End of Scope*/
/*489949*/        0, // EndSwitchType
/*489950*/      0, /*End of Scope*/
/*489951*/    0, /*End of Scope*/
/*489952*/  /*SwitchOpcode*/ 101|128,5/*741*/, TARGET_VAL(X86ISD::PCMPEQ),// ->490697
/*489956*/    OPC_Scope, 29|128,2/*285*/, /*->490244*/ // 3 children in Scope
/*489959*/      OPC_RecordChild0, // #0 = $src1
/*489960*/      OPC_MoveChild1,
/*489961*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*489964*/      OPC_RecordMemRef,
/*489965*/      OPC_RecordNode, // #1 = 'ld' chained node
/*489966*/      OPC_CheckFoldableChainNode,
/*489967*/      OPC_RecordChild1, // #2 = $src2
/*489968*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*489970*/      OPC_CheckPredicate, 9, // Predicate_load
/*489972*/      OPC_Scope, 21, /*->489995*/ // 8 children in Scope
/*489974*/        OPC_MoveParent,
/*489975*/        OPC_CheckType, MVT::v16i8,
/*489977*/        OPC_CheckPatternPredicate, 192, // (Subtarget->hasAVX()) && (true)
/*489979*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*489982*/        OPC_EmitMergeInputChains1_1,
/*489983*/        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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VPCMPEQBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*489995*/      /*Scope*/ 23, /*->490019*/
/*489996*/        OPC_CheckPredicate, 39, // Predicate_memop
/*489998*/        OPC_MoveParent,
/*489999*/        OPC_CheckType, MVT::v16i8,
/*490001*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*490003*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*490006*/        OPC_EmitMergeInputChains1_1,
/*490007*/        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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (PCMPEQBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*490019*/      /*Scope*/ 43, /*->490063*/
/*490020*/        OPC_MoveParent,
/*490021*/        OPC_SwitchType /*2 cases */, 18, MVT::v32i8,// ->490042
/*490024*/          OPC_CheckPatternPredicate, 193, // (Subtarget->hasAVX2()) && (true)
/*490026*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*490029*/          OPC_EmitMergeInputChains1_1,
/*490030*/          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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPCMPEQBYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*490042*/        /*SwitchType*/ 18, MVT::v8i16,// ->490062
/*490044*/          OPC_CheckPatternPredicate, 192, // (Subtarget->hasAVX()) && (true)
/*490046*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*490049*/          OPC_EmitMergeInputChains1_1,
/*490050*/          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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPCMPEQWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*490062*/        0, // EndSwitchType
/*490063*/      /*Scope*/ 23, /*->490087*/
/*490064*/        OPC_CheckPredicate, 39, // Predicate_memop
/*490066*/        OPC_MoveParent,
/*490067*/        OPC_CheckType, MVT::v8i16,
/*490069*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*490071*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*490074*/        OPC_EmitMergeInputChains1_1,
/*490075*/        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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (PCMPEQWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*490087*/      /*Scope*/ 43, /*->490131*/
/*490088*/        OPC_MoveParent,
/*490089*/        OPC_SwitchType /*2 cases */, 18, MVT::v16i16,// ->490110
/*490092*/          OPC_CheckPatternPredicate, 193, // (Subtarget->hasAVX2()) && (true)
/*490094*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*490097*/          OPC_EmitMergeInputChains1_1,
/*490098*/          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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPCMPEQWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*490110*/        /*SwitchType*/ 18, MVT::v4i32,// ->490130
/*490112*/          OPC_CheckPatternPredicate, 192, // (Subtarget->hasAVX()) && (true)
/*490114*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*490117*/          OPC_EmitMergeInputChains1_1,
/*490118*/          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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPCMPEQDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*490130*/        0, // EndSwitchType
/*490131*/      /*Scope*/ 23, /*->490155*/
/*490132*/        OPC_CheckPredicate, 39, // Predicate_memop
/*490134*/        OPC_MoveParent,
/*490135*/        OPC_CheckType, MVT::v4i32,
/*490137*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*490139*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*490142*/        OPC_EmitMergeInputChains1_1,
/*490143*/        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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (PCMPEQDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*490155*/      /*Scope*/ 63, /*->490219*/
/*490156*/        OPC_MoveParent,
/*490157*/        OPC_SwitchType /*3 cases */, 18, MVT::v8i32,// ->490178
/*490160*/          OPC_CheckPatternPredicate, 193, // (Subtarget->hasAVX2()) && (true)
/*490162*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*490165*/          OPC_EmitMergeInputChains1_1,
/*490166*/          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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPCMPEQDYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*490178*/        /*SwitchType*/ 18, MVT::v2i64,// ->490198
/*490180*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*490182*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*490185*/          OPC_EmitMergeInputChains1_1,
/*490186*/          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>>) - Complexity = 25
                    // Dst: (VPCMPEQQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*490198*/        /*SwitchType*/ 18, MVT::v4i64,// ->490218
/*490200*/          OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/*490202*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*490205*/          OPC_EmitMergeInputChains1_1,
/*490206*/          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>>) - Complexity = 25
                    // Dst: (VPCMPEQQYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*490218*/        0, // EndSwitchType
/*490219*/      /*Scope*/ 23, /*->490243*/
/*490220*/        OPC_CheckPredicate, 39, // Predicate_memop
/*490222*/        OPC_MoveParent,
/*490223*/        OPC_CheckType, MVT::v2i64,
/*490225*/        OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*490227*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*490230*/        OPC_EmitMergeInputChains1_1,
/*490231*/        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_memop>>) - Complexity = 25
                  // Dst: (PCMPEQQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*490243*/      0, /*End of Scope*/
/*490244*/    /*Scope*/ 36|128,2/*292*/, /*->490538*/
/*490246*/      OPC_MoveChild0,
/*490247*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*490250*/      OPC_RecordMemRef,
/*490251*/      OPC_RecordNode, // #0 = 'ld' chained node
/*490252*/      OPC_CheckFoldableChainNode,
/*490253*/      OPC_RecordChild1, // #1 = $src2
/*490254*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*490256*/      OPC_CheckPredicate, 9, // Predicate_load
/*490258*/      OPC_Scope, 22, /*->490282*/ // 8 children in Scope
/*490260*/        OPC_MoveParent,
/*490261*/        OPC_RecordChild1, // #2 = $src1
/*490262*/        OPC_CheckType, MVT::v16i8,
/*490264*/        OPC_CheckPatternPredicate, 192, // (Subtarget->hasAVX()) && (true)
/*490266*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*490269*/        OPC_EmitMergeInputChains1_0,
/*490270*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (X86pcmpeq:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v16i8] }:$src1) - Complexity = 25
                  // Dst: (VPCMPEQBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*490282*/      /*Scope*/ 24, /*->490307*/
/*490283*/        OPC_CheckPredicate, 39, // Predicate_memop
/*490285*/        OPC_MoveParent,
/*490286*/        OPC_RecordChild1, // #2 = $src1
/*490287*/        OPC_CheckType, MVT::v16i8,
/*490289*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*490291*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*490294*/        OPC_EmitMergeInputChains1_0,
/*490295*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PCMPEQBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (X86pcmpeq:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:{ *:[v16i8] }:$src1) - Complexity = 25
                  // Dst: (PCMPEQBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*490307*/      /*Scope*/ 44, /*->490352*/
/*490308*/        OPC_MoveParent,
/*490309*/        OPC_RecordChild1, // #2 = $src1
/*490310*/        OPC_SwitchType /*2 cases */, 18, MVT::v32i8,// ->490331
/*490313*/          OPC_CheckPatternPredicate, 193, // (Subtarget->hasAVX2()) && (true)
/*490315*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*490318*/          OPC_EmitMergeInputChains1_0,
/*490319*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQBYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i8, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86pcmpeq:{ *:[v32i8] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v32i8] }:$src1) - Complexity = 25
                    // Dst: (VPCMPEQBYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*490331*/        /*SwitchType*/ 18, MVT::v8i16,// ->490351
/*490333*/          OPC_CheckPatternPredicate, 192, // (Subtarget->hasAVX()) && (true)
/*490335*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*490338*/          OPC_EmitMergeInputChains1_0,
/*490339*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86pcmpeq:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v8i16] }:$src1) - Complexity = 25
                    // Dst: (VPCMPEQWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*490351*/        0, // EndSwitchType
/*490352*/      /*Scope*/ 24, /*->490377*/
/*490353*/        OPC_CheckPredicate, 39, // Predicate_memop
/*490355*/        OPC_MoveParent,
/*490356*/        OPC_RecordChild1, // #2 = $src1
/*490357*/        OPC_CheckType, MVT::v8i16,
/*490359*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*490361*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*490364*/        OPC_EmitMergeInputChains1_0,
/*490365*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PCMPEQWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (X86pcmpeq:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:{ *:[v8i16] }:$src1) - Complexity = 25
                  // Dst: (PCMPEQWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*490377*/      /*Scope*/ 44, /*->490422*/
/*490378*/        OPC_MoveParent,
/*490379*/        OPC_RecordChild1, // #2 = $src1
/*490380*/        OPC_SwitchType /*2 cases */, 18, MVT::v16i16,// ->490401
/*490383*/          OPC_CheckPatternPredicate, 193, // (Subtarget->hasAVX2()) && (true)
/*490385*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*490388*/          OPC_EmitMergeInputChains1_0,
/*490389*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86pcmpeq:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v16i16] }:$src1) - Complexity = 25
                    // Dst: (VPCMPEQWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*490401*/        /*SwitchType*/ 18, MVT::v4i32,// ->490421
/*490403*/          OPC_CheckPatternPredicate, 192, // (Subtarget->hasAVX()) && (true)
/*490405*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*490408*/          OPC_EmitMergeInputChains1_0,
/*490409*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86pcmpeq:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v4i32] }:$src1) - Complexity = 25
                    // Dst: (VPCMPEQDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*490421*/        0, // EndSwitchType
/*490422*/      /*Scope*/ 24, /*->490447*/
/*490423*/        OPC_CheckPredicate, 39, // Predicate_memop
/*490425*/        OPC_MoveParent,
/*490426*/        OPC_RecordChild1, // #2 = $src1
/*490427*/        OPC_CheckType, MVT::v4i32,
/*490429*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*490431*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*490434*/        OPC_EmitMergeInputChains1_0,
/*490435*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PCMPEQDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (X86pcmpeq:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:{ *:[v4i32] }:$src1) - Complexity = 25
                  // Dst: (PCMPEQDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*490447*/      /*Scope*/ 64, /*->490512*/
/*490448*/        OPC_MoveParent,
/*490449*/        OPC_RecordChild1, // #2 = $src1
/*490450*/        OPC_SwitchType /*3 cases */, 18, MVT::v8i32,// ->490471
/*490453*/          OPC_CheckPatternPredicate, 193, // (Subtarget->hasAVX2()) && (true)
/*490455*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*490458*/          OPC_EmitMergeInputChains1_0,
/*490459*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCMPEQDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86pcmpeq:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v8i32] }:$src1) - Complexity = 25
                    // Dst: (VPCMPEQDYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*490471*/        /*SwitchType*/ 18, MVT::v2i64,// ->490491
/*490473*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*490475*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*490478*/          OPC_EmitMergeInputChains1_0,
/*490479*/          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>>, VR128:{ *:[v2i64] }:$src1) - Complexity = 25
                    // Dst: (VPCMPEQQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*490491*/        /*SwitchType*/ 18, MVT::v4i64,// ->490511
/*490493*/          OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/*490495*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*490498*/          OPC_EmitMergeInputChains1_0,
/*490499*/          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>>, VR256:{ *:[v4i64] }:$src1) - Complexity = 25
                    // Dst: (VPCMPEQQYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*490511*/        0, // EndSwitchType
/*490512*/      /*Scope*/ 24, /*->490537*/
/*490513*/        OPC_CheckPredicate, 39, // Predicate_memop
/*490515*/        OPC_MoveParent,
/*490516*/        OPC_RecordChild1, // #2 = $src1
/*490517*/        OPC_CheckType, MVT::v2i64,
/*490519*/        OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*490521*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*490524*/        OPC_EmitMergeInputChains1_0,
/*490525*/        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_memop>>, VR128:{ *:[v2i64] }:$src1) - Complexity = 25
                  // Dst: (PCMPEQQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*490537*/      0, /*End of Scope*/
/*490538*/    /*Scope*/ 28|128,1/*156*/, /*->490696*/
/*490540*/      OPC_RecordChild0, // #0 = $src1
/*490541*/      OPC_RecordChild1, // #1 = $src2
/*490542*/      OPC_SwitchType /*8 cases */, 24, MVT::v16i8,// ->490569
/*490545*/        OPC_Scope, 10, /*->490557*/ // 2 children in Scope
/*490547*/          OPC_CheckPatternPredicate, 192, // (Subtarget->hasAVX()) && (true)
/*490549*/          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)
/*490557*/        /*Scope*/ 10, /*->490568*/
/*490558*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*490560*/          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)
/*490568*/        0, /*End of Scope*/
/*490569*/      /*SwitchType*/ 10, MVT::v32i8,// ->490581
/*490571*/        OPC_CheckPatternPredicate, 193, // (Subtarget->hasAVX2()) && (true)
/*490573*/        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)
/*490581*/      /*SwitchType*/ 24, MVT::v8i16,// ->490607
/*490583*/        OPC_Scope, 10, /*->490595*/ // 2 children in Scope
/*490585*/          OPC_CheckPatternPredicate, 192, // (Subtarget->hasAVX()) && (true)
/*490587*/          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)
/*490595*/        /*Scope*/ 10, /*->490606*/
/*490596*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*490598*/          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)
/*490606*/        0, /*End of Scope*/
/*490607*/      /*SwitchType*/ 10, MVT::v16i16,// ->490619
/*490609*/        OPC_CheckPatternPredicate, 193, // (Subtarget->hasAVX2()) && (true)
/*490611*/        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)
/*490619*/      /*SwitchType*/ 24, MVT::v4i32,// ->490645
/*490621*/        OPC_Scope, 10, /*->490633*/ // 2 children in Scope
/*490623*/          OPC_CheckPatternPredicate, 192, // (Subtarget->hasAVX()) && (true)
/*490625*/          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)
/*490633*/        /*Scope*/ 10, /*->490644*/
/*490634*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*490636*/          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)
/*490644*/        0, /*End of Scope*/
/*490645*/      /*SwitchType*/ 10, MVT::v8i32,// ->490657
/*490647*/        OPC_CheckPatternPredicate, 193, // (Subtarget->hasAVX2()) && (true)
/*490649*/        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)
/*490657*/      /*SwitchType*/ 24, MVT::v2i64,// ->490683
/*490659*/        OPC_Scope, 10, /*->490671*/ // 2 children in Scope
/*490661*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*490663*/          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)
/*490671*/        /*Scope*/ 10, /*->490682*/
/*490672*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*490674*/          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)
/*490682*/        0, /*End of Scope*/
/*490683*/      /*SwitchType*/ 10, MVT::v4i64,// ->490695
/*490685*/        OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/*490687*/        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)
/*490695*/      0, // EndSwitchType
/*490696*/    0, /*End of Scope*/
/*490697*/  /*SwitchOpcode*/ 62|128,3/*446*/, TARGET_VAL(X86ISD::PCMPGT),// ->491147
/*490701*/    OPC_RecordChild0, // #0 = $src1
/*490702*/    OPC_Scope, 28|128,2/*284*/, /*->490989*/ // 2 children in Scope
/*490705*/      OPC_MoveChild1,
/*490706*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*490709*/      OPC_RecordMemRef,
/*490710*/      OPC_RecordNode, // #1 = 'ld' chained node
/*490711*/      OPC_CheckFoldableChainNode,
/*490712*/      OPC_RecordChild1, // #2 = $src2
/*490713*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*490715*/      OPC_CheckPredicate, 9, // Predicate_load
/*490717*/      OPC_Scope, 21, /*->490740*/ // 8 children in Scope
/*490719*/        OPC_MoveParent,
/*490720*/        OPC_CheckType, MVT::v16i8,
/*490722*/        OPC_CheckPatternPredicate, 192, // (Subtarget->hasAVX()) && (true)
/*490724*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*490727*/        OPC_EmitMergeInputChains1_1,
/*490728*/        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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VPCMPGTBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*490740*/      /*Scope*/ 23, /*->490764*/
/*490741*/        OPC_CheckPredicate, 39, // Predicate_memop
/*490743*/        OPC_MoveParent,
/*490744*/        OPC_CheckType, MVT::v16i8,
/*490746*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*490748*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*490751*/        OPC_EmitMergeInputChains1_1,
/*490752*/        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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (PCMPGTBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*490764*/      /*Scope*/ 43, /*->490808*/
/*490765*/        OPC_MoveParent,
/*490766*/        OPC_SwitchType /*2 cases */, 18, MVT::v32i8,// ->490787
/*490769*/          OPC_CheckPatternPredicate, 193, // (Subtarget->hasAVX2()) && (true)
/*490771*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*490774*/          OPC_EmitMergeInputChains1_1,
/*490775*/          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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPCMPGTBYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*490787*/        /*SwitchType*/ 18, MVT::v8i16,// ->490807
/*490789*/          OPC_CheckPatternPredicate, 192, // (Subtarget->hasAVX()) && (true)
/*490791*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*490794*/          OPC_EmitMergeInputChains1_1,
/*490795*/          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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPCMPGTWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*490807*/        0, // EndSwitchType
/*490808*/      /*Scope*/ 23, /*->490832*/
/*490809*/        OPC_CheckPredicate, 39, // Predicate_memop
/*490811*/        OPC_MoveParent,
/*490812*/        OPC_CheckType, MVT::v8i16,
/*490814*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*490816*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*490819*/        OPC_EmitMergeInputChains1_1,
/*490820*/        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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (PCMPGTWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*490832*/      /*Scope*/ 43, /*->490876*/
/*490833*/        OPC_MoveParent,
/*490834*/        OPC_SwitchType /*2 cases */, 18, MVT::v16i16,// ->490855
/*490837*/          OPC_CheckPatternPredicate, 193, // (Subtarget->hasAVX2()) && (true)
/*490839*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*490842*/          OPC_EmitMergeInputChains1_1,
/*490843*/          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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPCMPGTWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*490855*/        /*SwitchType*/ 18, MVT::v4i32,// ->490875
/*490857*/          OPC_CheckPatternPredicate, 192, // (Subtarget->hasAVX()) && (true)
/*490859*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*490862*/          OPC_EmitMergeInputChains1_1,
/*490863*/          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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPCMPGTDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*490875*/        0, // EndSwitchType
/*490876*/      /*Scope*/ 23, /*->490900*/
/*490877*/        OPC_CheckPredicate, 39, // Predicate_memop
/*490879*/        OPC_MoveParent,
/*490880*/        OPC_CheckType, MVT::v4i32,
/*490882*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*490884*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*490887*/        OPC_EmitMergeInputChains1_1,
/*490888*/        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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (PCMPGTDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*490900*/      /*Scope*/ 63, /*->490964*/
/*490901*/        OPC_MoveParent,
/*490902*/        OPC_SwitchType /*3 cases */, 18, MVT::v8i32,// ->490923
/*490905*/          OPC_CheckPatternPredicate, 193, // (Subtarget->hasAVX2()) && (true)
/*490907*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*490910*/          OPC_EmitMergeInputChains1_1,
/*490911*/          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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPCMPGTDYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*490923*/        /*SwitchType*/ 18, MVT::v2i64,// ->490943
/*490925*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*490927*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*490930*/          OPC_EmitMergeInputChains1_1,
/*490931*/          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>>) - Complexity = 25
                    // Dst: (VPCMPGTQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*490943*/        /*SwitchType*/ 18, MVT::v4i64,// ->490963
/*490945*/          OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/*490947*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*490950*/          OPC_EmitMergeInputChains1_1,
/*490951*/          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>>) - Complexity = 25
                    // Dst: (VPCMPGTQYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*490963*/        0, // EndSwitchType
/*490964*/      /*Scope*/ 23, /*->490988*/
/*490965*/        OPC_CheckPredicate, 39, // Predicate_memop
/*490967*/        OPC_MoveParent,
/*490968*/        OPC_CheckType, MVT::v2i64,
/*490970*/        OPC_CheckPatternPredicate, 194, // (Subtarget->hasSSE42() && !Subtarget->hasAVX())
/*490972*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*490975*/        OPC_EmitMergeInputChains1_1,
/*490976*/        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_memop>>) - Complexity = 25
                  // Dst: (PCMPGTQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*490988*/      0, /*End of Scope*/
/*490989*/    /*Scope*/ 27|128,1/*155*/, /*->491146*/
/*490991*/      OPC_RecordChild1, // #1 = $src2
/*490992*/      OPC_SwitchType /*8 cases */, 24, MVT::v16i8,// ->491019
/*490995*/        OPC_Scope, 10, /*->491007*/ // 2 children in Scope
/*490997*/          OPC_CheckPatternPredicate, 192, // (Subtarget->hasAVX()) && (true)
/*490999*/          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)
/*491007*/        /*Scope*/ 10, /*->491018*/
/*491008*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*491010*/          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)
/*491018*/        0, /*End of Scope*/
/*491019*/      /*SwitchType*/ 10, MVT::v32i8,// ->491031
/*491021*/        OPC_CheckPatternPredicate, 193, // (Subtarget->hasAVX2()) && (true)
/*491023*/        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)
/*491031*/      /*SwitchType*/ 24, MVT::v8i16,// ->491057
/*491033*/        OPC_Scope, 10, /*->491045*/ // 2 children in Scope
/*491035*/          OPC_CheckPatternPredicate, 192, // (Subtarget->hasAVX()) && (true)
/*491037*/          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)
/*491045*/        /*Scope*/ 10, /*->491056*/
/*491046*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*491048*/          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)
/*491056*/        0, /*End of Scope*/
/*491057*/      /*SwitchType*/ 10, MVT::v16i16,// ->491069
/*491059*/        OPC_CheckPatternPredicate, 193, // (Subtarget->hasAVX2()) && (true)
/*491061*/        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)
/*491069*/      /*SwitchType*/ 24, MVT::v4i32,// ->491095
/*491071*/        OPC_Scope, 10, /*->491083*/ // 2 children in Scope
/*491073*/          OPC_CheckPatternPredicate, 192, // (Subtarget->hasAVX()) && (true)
/*491075*/          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)
/*491083*/        /*Scope*/ 10, /*->491094*/
/*491084*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*491086*/          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)
/*491094*/        0, /*End of Scope*/
/*491095*/      /*SwitchType*/ 10, MVT::v8i32,// ->491107
/*491097*/        OPC_CheckPatternPredicate, 193, // (Subtarget->hasAVX2()) && (true)
/*491099*/        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)
/*491107*/      /*SwitchType*/ 24, MVT::v2i64,// ->491133
/*491109*/        OPC_Scope, 10, /*->491121*/ // 2 children in Scope
/*491111*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*491113*/          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)
/*491121*/        /*Scope*/ 10, /*->491132*/
/*491122*/          OPC_CheckPatternPredicate, 194, // (Subtarget->hasSSE42() && !Subtarget->hasAVX())
/*491124*/          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)
/*491132*/        0, /*End of Scope*/
/*491133*/      /*SwitchType*/ 10, MVT::v4i64,// ->491145
/*491135*/        OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/*491137*/        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)
/*491145*/      0, // EndSwitchType
/*491146*/    0, /*End of Scope*/
/*491147*/  /*SwitchOpcode*/ 126|128,4/*638*/, TARGET_VAL(X86ISD::PACKSS),// ->491789
/*491151*/    OPC_RecordChild0, // #0 = $src1
/*491152*/    OPC_Scope, 126, /*->491280*/ // 6 children in Scope
/*491154*/      OPC_CheckChild0Type, MVT::v8i16,
/*491156*/      OPC_Scope, 82, /*->491240*/ // 2 children in Scope
/*491158*/        OPC_MoveChild1,
/*491159*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*491162*/        OPC_RecordMemRef,
/*491163*/        OPC_RecordNode, // #1 = 'ld' chained node
/*491164*/        OPC_CheckFoldableChainNode,
/*491165*/        OPC_RecordChild1, // #2 = $src2
/*491166*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*491168*/        OPC_CheckPredicate, 9, // Predicate_load
/*491170*/        OPC_Scope, 21, /*->491193*/ // 3 children in Scope
/*491172*/          OPC_MoveParent,
/*491173*/          OPC_CheckType, MVT::v16i8,
/*491175*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*491177*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*491180*/          OPC_EmitMergeInputChains1_1,
/*491181*/          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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPACKSSWBrm:{ *:[v16i8] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*491193*/        /*Scope*/ 23, /*->491217*/
/*491194*/          OPC_CheckPredicate, 39, // Predicate_memop
/*491196*/          OPC_MoveParent,
/*491197*/          OPC_CheckType, MVT::v16i8,
/*491199*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*491201*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*491204*/          OPC_EmitMergeInputChains1_1,
/*491205*/          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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                    // Dst: (PACKSSWBrm:{ *:[v16i8] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*491217*/        /*Scope*/ 21, /*->491239*/
/*491218*/          OPC_MoveParent,
/*491219*/          OPC_CheckType, MVT::v16i8,
/*491221*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*491223*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*491226*/          OPC_EmitMergeInputChains1_1,
/*491227*/          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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPACKSSWBZ128rm:{ *:[v16i8] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*491239*/        0, /*End of Scope*/
/*491240*/      /*Scope*/ 38, /*->491279*/
/*491241*/        OPC_RecordChild1, // #1 = $src2
/*491242*/        OPC_CheckType, MVT::v16i8,
/*491244*/        OPC_Scope, 10, /*->491256*/ // 3 children in Scope
/*491246*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*491248*/          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)
/*491256*/        /*Scope*/ 10, /*->491267*/
/*491257*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*491259*/          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)
/*491267*/        /*Scope*/ 10, /*->491278*/
/*491268*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*491270*/          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)
/*491278*/        0, /*End of Scope*/
/*491279*/      0, /*End of Scope*/
/*491280*/    /*Scope*/ 30|128,1/*158*/, /*->491440*/
/*491282*/      OPC_CheckChild0Type, MVT::v4i32,
/*491284*/      OPC_Scope, 114, /*->491400*/ // 2 children in Scope
/*491286*/        OPC_MoveChild1,
/*491287*/        OPC_SwitchOpcode /*2 cases */, 78, TARGET_VAL(ISD::LOAD),// ->491369
/*491291*/          OPC_RecordMemRef,
/*491292*/          OPC_RecordNode, // #1 = 'ld' chained node
/*491293*/          OPC_CheckFoldableChainNode,
/*491294*/          OPC_RecordChild1, // #2 = $src2
/*491295*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*491297*/          OPC_CheckPredicate, 9, // Predicate_load
/*491299*/          OPC_Scope, 21, /*->491322*/ // 3 children in Scope
/*491301*/            OPC_MoveParent,
/*491302*/            OPC_CheckType, MVT::v8i16,
/*491304*/            OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*491306*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*491309*/            OPC_EmitMergeInputChains1_1,
/*491310*/            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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPACKSSDWrm:{ *:[v8i16] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*491322*/          /*Scope*/ 23, /*->491346*/
/*491323*/            OPC_CheckPredicate, 39, // Predicate_memop
/*491325*/            OPC_MoveParent,
/*491326*/            OPC_CheckType, MVT::v8i16,
/*491328*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*491330*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*491333*/            OPC_EmitMergeInputChains1_1,
/*491334*/            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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                      // Dst: (PACKSSDWrm:{ *:[v8i16] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*491346*/          /*Scope*/ 21, /*->491368*/
/*491347*/            OPC_MoveParent,
/*491348*/            OPC_CheckType, MVT::v8i16,
/*491350*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*491352*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*491355*/            OPC_EmitMergeInputChains1_1,
/*491356*/            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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPACKSSDWZ128rm:{ *:[v8i16] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*491368*/          0, /*End of Scope*/
/*491369*/        /*SwitchOpcode*/ 27, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->491399
/*491372*/          OPC_RecordMemRef,
/*491373*/          OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*491374*/          OPC_CheckFoldableChainNode,
/*491375*/          OPC_RecordChild1, // #2 = $src2
/*491376*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*491378*/          OPC_MoveParent,
/*491379*/          OPC_CheckType, MVT::v8i16,
/*491381*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*491383*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*491386*/          OPC_EmitMergeInputChains1_1,
/*491387*/          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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                    // Dst: (VPACKSSDWZ128rmb:{ *:[v8i16] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*491399*/        0, // EndSwitchOpcode
/*491400*/      /*Scope*/ 38, /*->491439*/
/*491401*/        OPC_RecordChild1, // #1 = $src2
/*491402*/        OPC_CheckType, MVT::v8i16,
/*491404*/        OPC_Scope, 10, /*->491416*/ // 3 children in Scope
/*491406*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*491408*/          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)
/*491416*/        /*Scope*/ 10, /*->491427*/
/*491417*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*491419*/          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)
/*491427*/        /*Scope*/ 10, /*->491438*/
/*491428*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*491430*/          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)
/*491438*/        0, /*End of Scope*/
/*491439*/      0, /*End of Scope*/
/*491440*/    /*Scope*/ 88, /*->491529*/
/*491441*/      OPC_CheckChild0Type, MVT::v16i16,
/*491443*/      OPC_Scope, 55, /*->491500*/ // 2 children in Scope
/*491445*/        OPC_MoveChild1,
/*491446*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*491449*/        OPC_RecordMemRef,
/*491450*/        OPC_RecordNode, // #1 = 'ld' chained node
/*491451*/        OPC_CheckFoldableChainNode,
/*491452*/        OPC_RecordChild1, // #2 = $src2
/*491453*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*491455*/        OPC_CheckPredicate, 9, // Predicate_load
/*491457*/        OPC_MoveParent,
/*491458*/        OPC_CheckType, MVT::v32i8,
/*491460*/        OPC_Scope, 18, /*->491480*/ // 2 children in Scope
/*491462*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*491464*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*491467*/          OPC_EmitMergeInputChains1_1,
/*491468*/          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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPACKSSWBYrm:{ *:[v32i8] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*491480*/        /*Scope*/ 18, /*->491499*/
/*491481*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*491483*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*491486*/          OPC_EmitMergeInputChains1_1,
/*491487*/          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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPACKSSWBZ256rm:{ *:[v32i8] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*491499*/        0, /*End of Scope*/
/*491500*/      /*Scope*/ 27, /*->491528*/
/*491501*/        OPC_RecordChild1, // #1 = $src2
/*491502*/        OPC_CheckType, MVT::v32i8,
/*491504*/        OPC_Scope, 10, /*->491516*/ // 2 children in Scope
/*491506*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*491508*/          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)
/*491516*/        /*Scope*/ 10, /*->491527*/
/*491517*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*491519*/          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)
/*491527*/        0, /*End of Scope*/
/*491528*/      0, /*End of Scope*/
/*491529*/    /*Scope*/ 120, /*->491650*/
/*491530*/      OPC_CheckChild0Type, MVT::v8i32,
/*491532*/      OPC_Scope, 87, /*->491621*/ // 2 children in Scope
/*491534*/        OPC_MoveChild1,
/*491535*/        OPC_SwitchOpcode /*2 cases */, 51, TARGET_VAL(ISD::LOAD),// ->491590
/*491539*/          OPC_RecordMemRef,
/*491540*/          OPC_RecordNode, // #1 = 'ld' chained node
/*491541*/          OPC_CheckFoldableChainNode,
/*491542*/          OPC_RecordChild1, // #2 = $src2
/*491543*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*491545*/          OPC_CheckPredicate, 9, // Predicate_load
/*491547*/          OPC_MoveParent,
/*491548*/          OPC_CheckType, MVT::v16i16,
/*491550*/          OPC_Scope, 18, /*->491570*/ // 2 children in Scope
/*491552*/            OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*491554*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*491557*/            OPC_EmitMergeInputChains1_1,
/*491558*/            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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPACKSSDWYrm:{ *:[v16i16] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*491570*/          /*Scope*/ 18, /*->491589*/
/*491571*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*491573*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*491576*/            OPC_EmitMergeInputChains1_1,
/*491577*/            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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPACKSSDWZ256rm:{ *:[v16i16] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*491589*/          0, /*End of Scope*/
/*491590*/        /*SwitchOpcode*/ 27, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->491620
/*491593*/          OPC_RecordMemRef,
/*491594*/          OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*491595*/          OPC_CheckFoldableChainNode,
/*491596*/          OPC_RecordChild1, // #2 = $src2
/*491597*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*491599*/          OPC_MoveParent,
/*491600*/          OPC_CheckType, MVT::v16i16,
/*491602*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*491604*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*491607*/          OPC_EmitMergeInputChains1_1,
/*491608*/          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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                    // Dst: (VPACKSSDWZ256rmb:{ *:[v16i16] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*491620*/        0, // EndSwitchOpcode
/*491621*/      /*Scope*/ 27, /*->491649*/
/*491622*/        OPC_RecordChild1, // #1 = $src2
/*491623*/        OPC_CheckType, MVT::v16i16,
/*491625*/        OPC_Scope, 10, /*->491637*/ // 2 children in Scope
/*491627*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*491629*/          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)
/*491637*/        /*Scope*/ 10, /*->491648*/
/*491638*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*491640*/          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)
/*491648*/        0, /*End of Scope*/
/*491649*/      0, /*End of Scope*/
/*491650*/    /*Scope*/ 84, /*->491735*/
/*491651*/      OPC_CheckChild0Type, MVT::v16i32,
/*491653*/      OPC_Scope, 65, /*->491720*/ // 2 children in Scope
/*491655*/        OPC_MoveChild1,
/*491656*/        OPC_SwitchOpcode /*2 cases */, 29, TARGET_VAL(ISD::LOAD),// ->491689
/*491660*/          OPC_RecordMemRef,
/*491661*/          OPC_RecordNode, // #1 = 'ld' chained node
/*491662*/          OPC_CheckFoldableChainNode,
/*491663*/          OPC_RecordChild1, // #2 = $src2
/*491664*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*491666*/          OPC_CheckPredicate, 9, // Predicate_load
/*491668*/          OPC_MoveParent,
/*491669*/          OPC_CheckType, MVT::v32i16,
/*491671*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*491673*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*491676*/          OPC_EmitMergeInputChains1_1,
/*491677*/          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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPACKSSDWZrm:{ *:[v32i16] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*491689*/        /*SwitchOpcode*/ 27, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->491719
/*491692*/          OPC_RecordMemRef,
/*491693*/          OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*491694*/          OPC_CheckFoldableChainNode,
/*491695*/          OPC_RecordChild1, // #2 = $src2
/*491696*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*491698*/          OPC_MoveParent,
/*491699*/          OPC_CheckType, MVT::v32i16,
/*491701*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*491703*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*491706*/          OPC_EmitMergeInputChains1_1,
/*491707*/          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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                    // Dst: (VPACKSSDWZrmb:{ *:[v32i16] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*491719*/        0, // EndSwitchOpcode
/*491720*/      /*Scope*/ 13, /*->491734*/
/*491721*/        OPC_RecordChild1, // #1 = $src2
/*491722*/        OPC_CheckType, MVT::v32i16,
/*491724*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*491726*/        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)
/*491734*/      0, /*End of Scope*/
/*491735*/    /*Scope*/ 52, /*->491788*/
/*491736*/      OPC_CheckChild0Type, MVT::v32i16,
/*491738*/      OPC_Scope, 33, /*->491773*/ // 2 children in Scope
/*491740*/        OPC_MoveChild1,
/*491741*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*491744*/        OPC_RecordMemRef,
/*491745*/        OPC_RecordNode, // #1 = 'ld' chained node
/*491746*/        OPC_CheckFoldableChainNode,
/*491747*/        OPC_RecordChild1, // #2 = $src2
/*491748*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*491750*/        OPC_CheckPredicate, 9, // Predicate_load
/*491752*/        OPC_MoveParent,
/*491753*/        OPC_CheckType, MVT::v64i8,
/*491755*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*491757*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*491760*/        OPC_EmitMergeInputChains1_1,
/*491761*/        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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VPACKSSWBZrm:{ *:[v64i8] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*491773*/      /*Scope*/ 13, /*->491787*/
/*491774*/        OPC_RecordChild1, // #1 = $src2
/*491775*/        OPC_CheckType, MVT::v64i8,
/*491777*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*491779*/        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)
/*491787*/      0, /*End of Scope*/
/*491788*/    0, /*End of Scope*/
/*491789*/  /*SwitchOpcode*/ 126|128,4/*638*/, TARGET_VAL(X86ISD::PACKUS),// ->492431
/*491793*/    OPC_RecordChild0, // #0 = $src1
/*491794*/    OPC_Scope, 126, /*->491922*/ // 6 children in Scope
/*491796*/      OPC_CheckChild0Type, MVT::v8i16,
/*491798*/      OPC_Scope, 82, /*->491882*/ // 2 children in Scope
/*491800*/        OPC_MoveChild1,
/*491801*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*491804*/        OPC_RecordMemRef,
/*491805*/        OPC_RecordNode, // #1 = 'ld' chained node
/*491806*/        OPC_CheckFoldableChainNode,
/*491807*/        OPC_RecordChild1, // #2 = $src2
/*491808*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*491810*/        OPC_CheckPredicate, 9, // Predicate_load
/*491812*/        OPC_Scope, 21, /*->491835*/ // 3 children in Scope
/*491814*/          OPC_MoveParent,
/*491815*/          OPC_CheckType, MVT::v16i8,
/*491817*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*491819*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*491822*/          OPC_EmitMergeInputChains1_1,
/*491823*/          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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPACKUSWBrm:{ *:[v16i8] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*491835*/        /*Scope*/ 23, /*->491859*/
/*491836*/          OPC_CheckPredicate, 39, // Predicate_memop
/*491838*/          OPC_MoveParent,
/*491839*/          OPC_CheckType, MVT::v16i8,
/*491841*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*491843*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*491846*/          OPC_EmitMergeInputChains1_1,
/*491847*/          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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                    // Dst: (PACKUSWBrm:{ *:[v16i8] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*491859*/        /*Scope*/ 21, /*->491881*/
/*491860*/          OPC_MoveParent,
/*491861*/          OPC_CheckType, MVT::v16i8,
/*491863*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*491865*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*491868*/          OPC_EmitMergeInputChains1_1,
/*491869*/          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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPACKUSWBZ128rm:{ *:[v16i8] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*491881*/        0, /*End of Scope*/
/*491882*/      /*Scope*/ 38, /*->491921*/
/*491883*/        OPC_RecordChild1, // #1 = $src2
/*491884*/        OPC_CheckType, MVT::v16i8,
/*491886*/        OPC_Scope, 10, /*->491898*/ // 3 children in Scope
/*491888*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*491890*/          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)
/*491898*/        /*Scope*/ 10, /*->491909*/
/*491899*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*491901*/          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)
/*491909*/        /*Scope*/ 10, /*->491920*/
/*491910*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*491912*/          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)
/*491920*/        0, /*End of Scope*/
/*491921*/      0, /*End of Scope*/
/*491922*/    /*Scope*/ 30|128,1/*158*/, /*->492082*/
/*491924*/      OPC_CheckChild0Type, MVT::v4i32,
/*491926*/      OPC_Scope, 114, /*->492042*/ // 2 children in Scope
/*491928*/        OPC_MoveChild1,
/*491929*/        OPC_SwitchOpcode /*2 cases */, 78, TARGET_VAL(ISD::LOAD),// ->492011
/*491933*/          OPC_RecordMemRef,
/*491934*/          OPC_RecordNode, // #1 = 'ld' chained node
/*491935*/          OPC_CheckFoldableChainNode,
/*491936*/          OPC_RecordChild1, // #2 = $src2
/*491937*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*491939*/          OPC_CheckPredicate, 9, // Predicate_load
/*491941*/          OPC_Scope, 21, /*->491964*/ // 3 children in Scope
/*491943*/            OPC_MoveParent,
/*491944*/            OPC_CheckType, MVT::v8i16,
/*491946*/            OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*491948*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*491951*/            OPC_EmitMergeInputChains1_1,
/*491952*/            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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPACKUSDWrm:{ *:[v8i16] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*491964*/          /*Scope*/ 23, /*->491988*/
/*491965*/            OPC_CheckPredicate, 39, // Predicate_memop
/*491967*/            OPC_MoveParent,
/*491968*/            OPC_CheckType, MVT::v8i16,
/*491970*/            OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*491972*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*491975*/            OPC_EmitMergeInputChains1_1,
/*491976*/            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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                      // Dst: (PACKUSDWrm:{ *:[v8i16] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*491988*/          /*Scope*/ 21, /*->492010*/
/*491989*/            OPC_MoveParent,
/*491990*/            OPC_CheckType, MVT::v8i16,
/*491992*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*491994*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*491997*/            OPC_EmitMergeInputChains1_1,
/*491998*/            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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPACKUSDWZ128rm:{ *:[v8i16] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*492010*/          0, /*End of Scope*/
/*492011*/        /*SwitchOpcode*/ 27, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->492041
/*492014*/          OPC_RecordMemRef,
/*492015*/          OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*492016*/          OPC_CheckFoldableChainNode,
/*492017*/          OPC_RecordChild1, // #2 = $src2
/*492018*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*492020*/          OPC_MoveParent,
/*492021*/          OPC_CheckType, MVT::v8i16,
/*492023*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*492025*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*492028*/          OPC_EmitMergeInputChains1_1,
/*492029*/          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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                    // Dst: (VPACKUSDWZ128rmb:{ *:[v8i16] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*492041*/        0, // EndSwitchOpcode
/*492042*/      /*Scope*/ 38, /*->492081*/
/*492043*/        OPC_RecordChild1, // #1 = $src2
/*492044*/        OPC_CheckType, MVT::v8i16,
/*492046*/        OPC_Scope, 10, /*->492058*/ // 3 children in Scope
/*492048*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*492050*/          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)
/*492058*/        /*Scope*/ 10, /*->492069*/
/*492059*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*492061*/          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)
/*492069*/        /*Scope*/ 10, /*->492080*/
/*492070*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*492072*/          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)
/*492080*/        0, /*End of Scope*/
/*492081*/      0, /*End of Scope*/
/*492082*/    /*Scope*/ 88, /*->492171*/
/*492083*/      OPC_CheckChild0Type, MVT::v16i16,
/*492085*/      OPC_Scope, 55, /*->492142*/ // 2 children in Scope
/*492087*/        OPC_MoveChild1,
/*492088*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*492091*/        OPC_RecordMemRef,
/*492092*/        OPC_RecordNode, // #1 = 'ld' chained node
/*492093*/        OPC_CheckFoldableChainNode,
/*492094*/        OPC_RecordChild1, // #2 = $src2
/*492095*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*492097*/        OPC_CheckPredicate, 9, // Predicate_load
/*492099*/        OPC_MoveParent,
/*492100*/        OPC_CheckType, MVT::v32i8,
/*492102*/        OPC_Scope, 18, /*->492122*/ // 2 children in Scope
/*492104*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*492106*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*492109*/          OPC_EmitMergeInputChains1_1,
/*492110*/          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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPACKUSWBYrm:{ *:[v32i8] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*492122*/        /*Scope*/ 18, /*->492141*/
/*492123*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*492125*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*492128*/          OPC_EmitMergeInputChains1_1,
/*492129*/          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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPACKUSWBZ256rm:{ *:[v32i8] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*492141*/        0, /*End of Scope*/
/*492142*/      /*Scope*/ 27, /*->492170*/
/*492143*/        OPC_RecordChild1, // #1 = $src2
/*492144*/        OPC_CheckType, MVT::v32i8,
/*492146*/        OPC_Scope, 10, /*->492158*/ // 2 children in Scope
/*492148*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*492150*/          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)
/*492158*/        /*Scope*/ 10, /*->492169*/
/*492159*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*492161*/          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)
/*492169*/        0, /*End of Scope*/
/*492170*/      0, /*End of Scope*/
/*492171*/    /*Scope*/ 120, /*->492292*/
/*492172*/      OPC_CheckChild0Type, MVT::v8i32,
/*492174*/      OPC_Scope, 87, /*->492263*/ // 2 children in Scope
/*492176*/        OPC_MoveChild1,
/*492177*/        OPC_SwitchOpcode /*2 cases */, 51, TARGET_VAL(ISD::LOAD),// ->492232
/*492181*/          OPC_RecordMemRef,
/*492182*/          OPC_RecordNode, // #1 = 'ld' chained node
/*492183*/          OPC_CheckFoldableChainNode,
/*492184*/          OPC_RecordChild1, // #2 = $src2
/*492185*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*492187*/          OPC_CheckPredicate, 9, // Predicate_load
/*492189*/          OPC_MoveParent,
/*492190*/          OPC_CheckType, MVT::v16i16,
/*492192*/          OPC_Scope, 18, /*->492212*/ // 2 children in Scope
/*492194*/            OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*492196*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*492199*/            OPC_EmitMergeInputChains1_1,
/*492200*/            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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPACKUSDWYrm:{ *:[v16i16] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*492212*/          /*Scope*/ 18, /*->492231*/
/*492213*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*492215*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*492218*/            OPC_EmitMergeInputChains1_1,
/*492219*/            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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPACKUSDWZ256rm:{ *:[v16i16] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*492231*/          0, /*End of Scope*/
/*492232*/        /*SwitchOpcode*/ 27, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->492262
/*492235*/          OPC_RecordMemRef,
/*492236*/          OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*492237*/          OPC_CheckFoldableChainNode,
/*492238*/          OPC_RecordChild1, // #2 = $src2
/*492239*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*492241*/          OPC_MoveParent,
/*492242*/          OPC_CheckType, MVT::v16i16,
/*492244*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*492246*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*492249*/          OPC_EmitMergeInputChains1_1,
/*492250*/          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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                    // Dst: (VPACKUSDWZ256rmb:{ *:[v16i16] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*492262*/        0, // EndSwitchOpcode
/*492263*/      /*Scope*/ 27, /*->492291*/
/*492264*/        OPC_RecordChild1, // #1 = $src2
/*492265*/        OPC_CheckType, MVT::v16i16,
/*492267*/        OPC_Scope, 10, /*->492279*/ // 2 children in Scope
/*492269*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*492271*/          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)
/*492279*/        /*Scope*/ 10, /*->492290*/
/*492280*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*492282*/          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)
/*492290*/        0, /*End of Scope*/
/*492291*/      0, /*End of Scope*/
/*492292*/    /*Scope*/ 84, /*->492377*/
/*492293*/      OPC_CheckChild0Type, MVT::v16i32,
/*492295*/      OPC_Scope, 65, /*->492362*/ // 2 children in Scope
/*492297*/        OPC_MoveChild1,
/*492298*/        OPC_SwitchOpcode /*2 cases */, 29, TARGET_VAL(ISD::LOAD),// ->492331
/*492302*/          OPC_RecordMemRef,
/*492303*/          OPC_RecordNode, // #1 = 'ld' chained node
/*492304*/          OPC_CheckFoldableChainNode,
/*492305*/          OPC_RecordChild1, // #2 = $src2
/*492306*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*492308*/          OPC_CheckPredicate, 9, // Predicate_load
/*492310*/          OPC_MoveParent,
/*492311*/          OPC_CheckType, MVT::v32i16,
/*492313*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*492315*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*492318*/          OPC_EmitMergeInputChains1_1,
/*492319*/          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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPACKUSDWZrm:{ *:[v32i16] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*492331*/        /*SwitchOpcode*/ 27, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->492361
/*492334*/          OPC_RecordMemRef,
/*492335*/          OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*492336*/          OPC_CheckFoldableChainNode,
/*492337*/          OPC_RecordChild1, // #2 = $src2
/*492338*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*492340*/          OPC_MoveParent,
/*492341*/          OPC_CheckType, MVT::v32i16,
/*492343*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*492345*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*492348*/          OPC_EmitMergeInputChains1_1,
/*492349*/          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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                    // Dst: (VPACKUSDWZrmb:{ *:[v32i16] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*492361*/        0, // EndSwitchOpcode
/*492362*/      /*Scope*/ 13, /*->492376*/
/*492363*/        OPC_RecordChild1, // #1 = $src2
/*492364*/        OPC_CheckType, MVT::v32i16,
/*492366*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*492368*/        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)
/*492376*/      0, /*End of Scope*/
/*492377*/    /*Scope*/ 52, /*->492430*/
/*492378*/      OPC_CheckChild0Type, MVT::v32i16,
/*492380*/      OPC_Scope, 33, /*->492415*/ // 2 children in Scope
/*492382*/        OPC_MoveChild1,
/*492383*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*492386*/        OPC_RecordMemRef,
/*492387*/        OPC_RecordNode, // #1 = 'ld' chained node
/*492388*/        OPC_CheckFoldableChainNode,
/*492389*/        OPC_RecordChild1, // #2 = $src2
/*492390*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*492392*/        OPC_CheckPredicate, 9, // Predicate_load
/*492394*/        OPC_MoveParent,
/*492395*/        OPC_CheckType, MVT::v64i8,
/*492397*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*492399*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*492402*/        OPC_EmitMergeInputChains1_1,
/*492403*/        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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VPACKUSWBZrm:{ *:[v64i8] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*492415*/      /*Scope*/ 13, /*->492429*/
/*492416*/        OPC_RecordChild1, // #1 = $src2
/*492417*/        OPC_CheckType, MVT::v64i8,
/*492419*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*492421*/        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)
/*492429*/      0, /*End of Scope*/
/*492430*/    0, /*End of Scope*/
/*492431*/  /*SwitchOpcode*/ 78|128,2/*334*/, TARGET_VAL(X86ISD::MOVSHDUP),// ->492769
/*492435*/    OPC_Scope, 78, /*->492515*/ // 4 children in Scope
/*492437*/      OPC_MoveChild0,
/*492438*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*492441*/      OPC_RecordMemRef,
/*492442*/      OPC_RecordNode, // #0 = 'ld' chained node
/*492443*/      OPC_RecordChild1, // #1 = $src
/*492444*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*492446*/      OPC_CheckPredicate, 9, // Predicate_load
/*492448*/      OPC_Scope, 41, /*->492491*/ // 2 children in Scope
/*492450*/        OPC_MoveParent,
/*492451*/        OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->492471
/*492454*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*492456*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*492459*/          OPC_EmitMergeInputChains1_0,
/*492460*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSHDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86Movshdup:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VMOVSHDUPrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*492471*/        /*SwitchType*/ 17, MVT::v8i32,// ->492490
/*492473*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*492475*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*492478*/          OPC_EmitMergeInputChains1_0,
/*492479*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSHDUPYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86Movshdup:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VMOVSHDUPYrm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*492490*/        0, // EndSwitchType
/*492491*/      /*Scope*/ 22, /*->492514*/
/*492492*/        OPC_CheckPredicate, 39, // Predicate_memop
/*492494*/        OPC_MoveParent,
/*492495*/        OPC_CheckType, MVT::v4i32,
/*492497*/        OPC_CheckPatternPredicate, 163, // (Subtarget->hasSSE3() && !Subtarget->hasAVX())
/*492499*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*492502*/        OPC_EmitMergeInputChains1_0,
/*492503*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MOVSHDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86Movshdup:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (MOVSHDUPrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*492514*/      0, /*End of Scope*/
/*492515*/    /*Scope*/ 38, /*->492554*/
/*492516*/      OPC_RecordChild0, // #0 = $src
/*492517*/      OPC_SwitchType /*2 cases */, 22, MVT::v4i32,// ->492542
/*492520*/        OPC_Scope, 9, /*->492531*/ // 2 children in Scope
/*492522*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*492524*/          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)
/*492531*/        /*Scope*/ 9, /*->492541*/
/*492532*/          OPC_CheckPatternPredicate, 163, // (Subtarget->hasSSE3() && !Subtarget->hasAVX())
/*492534*/          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)
/*492541*/        0, /*End of Scope*/
/*492542*/      /*SwitchType*/ 9, MVT::v8i32,// ->492553
/*492544*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*492546*/        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)
/*492553*/      0, // EndSwitchType
/*492554*/    /*Scope*/ 11|128,1/*139*/, /*->492695*/
/*492556*/      OPC_MoveChild0,
/*492557*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*492560*/      OPC_RecordMemRef,
/*492561*/      OPC_RecordNode, // #0 = 'ld' chained node
/*492562*/      OPC_RecordChild1, // #1 = $src
/*492563*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*492565*/      OPC_CheckPredicate, 9, // Predicate_load
/*492567*/      OPC_Scope, 41, /*->492610*/ // 3 children in Scope
/*492569*/        OPC_MoveParent,
/*492570*/        OPC_SwitchType /*2 cases */, 17, MVT::v4f32,// ->492590
/*492573*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*492575*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*492578*/          OPC_EmitMergeInputChains1_0,
/*492579*/          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>>) - Complexity = 25
                    // Dst: (VMOVSHDUPrm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*492590*/        /*SwitchType*/ 17, MVT::v8f32,// ->492609
/*492592*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*492594*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*492597*/          OPC_EmitMergeInputChains1_0,
/*492598*/          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>>) - Complexity = 25
                    // Dst: (VMOVSHDUPYrm:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*492609*/        0, // EndSwitchType
/*492610*/      /*Scope*/ 22, /*->492633*/
/*492611*/        OPC_CheckPredicate, 39, // Predicate_memop
/*492613*/        OPC_MoveParent,
/*492614*/        OPC_CheckType, MVT::v4f32,
/*492616*/        OPC_CheckPatternPredicate, 163, // (Subtarget->hasSSE3() && !Subtarget->hasAVX())
/*492618*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*492621*/        OPC_EmitMergeInputChains1_0,
/*492622*/        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_memop>>) - Complexity = 25
                  // Dst: (MOVSHDUPrm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*492633*/      /*Scope*/ 60, /*->492694*/
/*492634*/        OPC_MoveParent,
/*492635*/        OPC_SwitchType /*3 cases */, 17, MVT::v16f32,// ->492655
/*492638*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*492640*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*492643*/          OPC_EmitMergeInputChains1_0,
/*492644*/          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>>) - Complexity = 25
                    // Dst: (VMOVSHDUPZrm:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1)
/*492655*/        /*SwitchType*/ 17, MVT::v8f32,// ->492674
/*492657*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*492659*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*492662*/          OPC_EmitMergeInputChains1_0,
/*492663*/          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>>) - Complexity = 25
                    // Dst: (VMOVSHDUPZ256rm:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)
/*492674*/        /*SwitchType*/ 17, MVT::v4f32,// ->492693
/*492676*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*492678*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*492681*/          OPC_EmitMergeInputChains1_0,
/*492682*/          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>>) - Complexity = 25
                    // Dst: (VMOVSHDUPZ128rm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)
/*492693*/        0, // EndSwitchType
/*492694*/      0, /*End of Scope*/
/*492695*/    /*Scope*/ 72, /*->492768*/
/*492696*/      OPC_RecordChild0, // #0 = $src
/*492697*/      OPC_SwitchType /*3 cases */, 32, MVT::v4f32,// ->492732
/*492700*/        OPC_Scope, 9, /*->492711*/ // 3 children in Scope
/*492702*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*492704*/          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)
/*492711*/        /*Scope*/ 9, /*->492721*/
/*492712*/          OPC_CheckPatternPredicate, 163, // (Subtarget->hasSSE3() && !Subtarget->hasAVX())
/*492714*/          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)
/*492721*/        /*Scope*/ 9, /*->492731*/
/*492722*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*492724*/          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)
/*492731*/        0, /*End of Scope*/
/*492732*/      /*SwitchType*/ 22, MVT::v8f32,// ->492756
/*492734*/        OPC_Scope, 9, /*->492745*/ // 2 children in Scope
/*492736*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*492738*/          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)
/*492745*/        /*Scope*/ 9, /*->492755*/
/*492746*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*492748*/          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)
/*492755*/        0, /*End of Scope*/
/*492756*/      /*SwitchType*/ 9, MVT::v16f32,// ->492767
/*492758*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*492760*/        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)
/*492767*/      0, // EndSwitchType
/*492768*/    0, /*End of Scope*/
/*492769*/  /*SwitchOpcode*/ 78|128,2/*334*/, TARGET_VAL(X86ISD::MOVSLDUP),// ->493107
/*492773*/    OPC_Scope, 78, /*->492853*/ // 4 children in Scope
/*492775*/      OPC_MoveChild0,
/*492776*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*492779*/      OPC_RecordMemRef,
/*492780*/      OPC_RecordNode, // #0 = 'ld' chained node
/*492781*/      OPC_RecordChild1, // #1 = $src
/*492782*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*492784*/      OPC_CheckPredicate, 9, // Predicate_load
/*492786*/      OPC_Scope, 41, /*->492829*/ // 2 children in Scope
/*492788*/        OPC_MoveParent,
/*492789*/        OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->492809
/*492792*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*492794*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*492797*/          OPC_EmitMergeInputChains1_0,
/*492798*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSLDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86Movsldup:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VMOVSLDUPrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*492809*/        /*SwitchType*/ 17, MVT::v8i32,// ->492828
/*492811*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*492813*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*492816*/          OPC_EmitMergeInputChains1_0,
/*492817*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSLDUPYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86Movsldup:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VMOVSLDUPYrm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*492828*/        0, // EndSwitchType
/*492829*/      /*Scope*/ 22, /*->492852*/
/*492830*/        OPC_CheckPredicate, 39, // Predicate_memop
/*492832*/        OPC_MoveParent,
/*492833*/        OPC_CheckType, MVT::v4i32,
/*492835*/        OPC_CheckPatternPredicate, 163, // (Subtarget->hasSSE3() && !Subtarget->hasAVX())
/*492837*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*492840*/        OPC_EmitMergeInputChains1_0,
/*492841*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MOVSLDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86Movsldup:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (MOVSLDUPrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*492852*/      0, /*End of Scope*/
/*492853*/    /*Scope*/ 38, /*->492892*/
/*492854*/      OPC_RecordChild0, // #0 = $src
/*492855*/      OPC_SwitchType /*2 cases */, 22, MVT::v4i32,// ->492880
/*492858*/        OPC_Scope, 9, /*->492869*/ // 2 children in Scope
/*492860*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*492862*/          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)
/*492869*/        /*Scope*/ 9, /*->492879*/
/*492870*/          OPC_CheckPatternPredicate, 163, // (Subtarget->hasSSE3() && !Subtarget->hasAVX())
/*492872*/          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)
/*492879*/        0, /*End of Scope*/
/*492880*/      /*SwitchType*/ 9, MVT::v8i32,// ->492891
/*492882*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*492884*/        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)
/*492891*/      0, // EndSwitchType
/*492892*/    /*Scope*/ 11|128,1/*139*/, /*->493033*/
/*492894*/      OPC_MoveChild0,
/*492895*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*492898*/      OPC_RecordMemRef,
/*492899*/      OPC_RecordNode, // #0 = 'ld' chained node
/*492900*/      OPC_RecordChild1, // #1 = $src
/*492901*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*492903*/      OPC_CheckPredicate, 9, // Predicate_load
/*492905*/      OPC_Scope, 41, /*->492948*/ // 3 children in Scope
/*492907*/        OPC_MoveParent,
/*492908*/        OPC_SwitchType /*2 cases */, 17, MVT::v4f32,// ->492928
/*492911*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*492913*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*492916*/          OPC_EmitMergeInputChains1_0,
/*492917*/          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>>) - Complexity = 25
                    // Dst: (VMOVSLDUPrm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*492928*/        /*SwitchType*/ 17, MVT::v8f32,// ->492947
/*492930*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*492932*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*492935*/          OPC_EmitMergeInputChains1_0,
/*492936*/          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>>) - Complexity = 25
                    // Dst: (VMOVSLDUPYrm:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*492947*/        0, // EndSwitchType
/*492948*/      /*Scope*/ 22, /*->492971*/
/*492949*/        OPC_CheckPredicate, 39, // Predicate_memop
/*492951*/        OPC_MoveParent,
/*492952*/        OPC_CheckType, MVT::v4f32,
/*492954*/        OPC_CheckPatternPredicate, 163, // (Subtarget->hasSSE3() && !Subtarget->hasAVX())
/*492956*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*492959*/        OPC_EmitMergeInputChains1_0,
/*492960*/        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_memop>>) - Complexity = 25
                  // Dst: (MOVSLDUPrm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*492971*/      /*Scope*/ 60, /*->493032*/
/*492972*/        OPC_MoveParent,
/*492973*/        OPC_SwitchType /*3 cases */, 17, MVT::v16f32,// ->492993
/*492976*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*492978*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*492981*/          OPC_EmitMergeInputChains1_0,
/*492982*/          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>>) - Complexity = 25
                    // Dst: (VMOVSLDUPZrm:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1)
/*492993*/        /*SwitchType*/ 17, MVT::v8f32,// ->493012
/*492995*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*492997*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*493000*/          OPC_EmitMergeInputChains1_0,
/*493001*/          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>>) - Complexity = 25
                    // Dst: (VMOVSLDUPZ256rm:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)
/*493012*/        /*SwitchType*/ 17, MVT::v4f32,// ->493031
/*493014*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*493016*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*493019*/          OPC_EmitMergeInputChains1_0,
/*493020*/          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>>) - Complexity = 25
                    // Dst: (VMOVSLDUPZ128rm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)
/*493031*/        0, // EndSwitchType
/*493032*/      0, /*End of Scope*/
/*493033*/    /*Scope*/ 72, /*->493106*/
/*493034*/      OPC_RecordChild0, // #0 = $src
/*493035*/      OPC_SwitchType /*3 cases */, 32, MVT::v4f32,// ->493070
/*493038*/        OPC_Scope, 9, /*->493049*/ // 3 children in Scope
/*493040*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*493042*/          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)
/*493049*/        /*Scope*/ 9, /*->493059*/
/*493050*/          OPC_CheckPatternPredicate, 163, // (Subtarget->hasSSE3() && !Subtarget->hasAVX())
/*493052*/          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)
/*493059*/        /*Scope*/ 9, /*->493069*/
/*493060*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*493062*/          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)
/*493069*/        0, /*End of Scope*/
/*493070*/      /*SwitchType*/ 22, MVT::v8f32,// ->493094
/*493072*/        OPC_Scope, 9, /*->493083*/ // 2 children in Scope
/*493074*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*493076*/          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)
/*493083*/        /*Scope*/ 9, /*->493093*/
/*493084*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*493086*/          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)
/*493093*/        0, /*End of Scope*/
/*493094*/      /*SwitchType*/ 9, MVT::v16f32,// ->493105
/*493096*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*493098*/        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)
/*493105*/      0, // EndSwitchType
/*493106*/    0, /*End of Scope*/
/*493107*/  /*SwitchOpcode*/ 2|128,7/*898*/, TARGET_VAL(ISD::ABS),// ->494009
/*493111*/    OPC_Scope, 53|128,4/*565*/, /*->493679*/ // 2 children in Scope
/*493114*/      OPC_MoveChild0,
/*493115*/      OPC_SwitchOpcode /*2 cases */, 39|128,3/*423*/, TARGET_VAL(ISD::LOAD),// ->493543
/*493120*/        OPC_RecordMemRef,
/*493121*/        OPC_RecordNode, // #0 = 'ld' chained node
/*493122*/        OPC_RecordChild1, // #1 = $src
/*493123*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*493125*/        OPC_CheckPredicate, 9, // Predicate_load
/*493127*/        OPC_Scope, 117, /*->493246*/ // 3 children in Scope
/*493129*/          OPC_MoveParent,
/*493130*/          OPC_SwitchType /*6 cases */, 17, MVT::v16i8,// ->493150
/*493133*/            OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*493135*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*493138*/            OPC_EmitMergeInputChains1_0,
/*493139*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (abs:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPABSBrm:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)
/*493150*/          /*SwitchType*/ 17, MVT::v8i16,// ->493169
/*493152*/            OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*493154*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*493157*/            OPC_EmitMergeInputChains1_0,
/*493158*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (abs:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPABSWrm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*493169*/          /*SwitchType*/ 17, MVT::v4i32,// ->493188
/*493171*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*493173*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*493176*/            OPC_EmitMergeInputChains1_0,
/*493177*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (abs:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPABSDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*493188*/          /*SwitchType*/ 17, MVT::v32i8,// ->493207
/*493190*/            OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*493192*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*493195*/            OPC_EmitMergeInputChains1_0,
/*493196*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSBYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (abs:{ *:[v32i8] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPABSBYrm:{ *:[v32i8] } addr:{ *:[iPTR] }:$src)
/*493207*/          /*SwitchType*/ 17, MVT::v16i16,// ->493226
/*493209*/            OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*493211*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*493214*/            OPC_EmitMergeInputChains1_0,
/*493215*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (abs:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPABSWYrm:{ *:[v16i16] } addr:{ *:[iPTR] }:$src)
/*493226*/          /*SwitchType*/ 17, MVT::v8i32,// ->493245
/*493228*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*493230*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*493233*/            OPC_EmitMergeInputChains1_0,
/*493234*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (abs:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPABSDYrm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*493245*/          0, // EndSwitchType
/*493246*/        /*Scope*/ 62, /*->493309*/
/*493247*/          OPC_CheckPredicate, 39, // Predicate_memop
/*493249*/          OPC_MoveParent,
/*493250*/          OPC_SwitchType /*3 cases */, 17, MVT::v16i8,// ->493270
/*493253*/            OPC_CheckPatternPredicate, 50, // (Subtarget->hasSSSE3() && !Subtarget->hasAVX())
/*493255*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*493258*/            OPC_EmitMergeInputChains1_0,
/*493259*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PABSBrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (abs:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                      // Dst: (PABSBrm:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)
/*493270*/          /*SwitchType*/ 17, MVT::v8i16,// ->493289
/*493272*/            OPC_CheckPatternPredicate, 50, // (Subtarget->hasSSSE3() && !Subtarget->hasAVX())
/*493274*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*493277*/            OPC_EmitMergeInputChains1_0,
/*493278*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PABSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (abs:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                      // Dst: (PABSWrm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*493289*/          /*SwitchType*/ 17, MVT::v4i32,// ->493308
/*493291*/            OPC_CheckPatternPredicate, 50, // (Subtarget->hasSSSE3() && !Subtarget->hasAVX())
/*493293*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*493296*/            OPC_EmitMergeInputChains1_0,
/*493297*/            OPC_MorphNodeTo1, TARGET_VAL(X86::PABSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (abs:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                      // Dst: (PABSDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*493308*/          0, // EndSwitchType
/*493309*/        /*Scope*/ 103|128,1/*231*/, /*->493542*/
/*493311*/          OPC_MoveParent,
/*493312*/          OPC_SwitchType /*12 cases */, 17, MVT::v8i64,// ->493332
/*493315*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*493317*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*493320*/            OPC_EmitMergeInputChains1_0,
/*493321*/            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>>) - Complexity = 25
                      // Dst: (VPABSQZrm:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)
/*493332*/          /*SwitchType*/ 17, MVT::v4i64,// ->493351
/*493334*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*493336*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*493339*/            OPC_EmitMergeInputChains1_0,
/*493340*/            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>>) - Complexity = 25
                      // Dst: (VPABSQZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)
/*493351*/          /*SwitchType*/ 17, MVT::v2i64,// ->493370
/*493353*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*493355*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*493358*/            OPC_EmitMergeInputChains1_0,
/*493359*/            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>>) - Complexity = 25
                      // Dst: (VPABSQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)
/*493370*/          /*SwitchType*/ 17, MVT::v16i32,// ->493389
/*493372*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*493374*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*493377*/            OPC_EmitMergeInputChains1_0,
/*493378*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (abs:{ *:[v16i32] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPABSDZrm:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)
/*493389*/          /*SwitchType*/ 17, MVT::v8i32,// ->493408
/*493391*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*493393*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*493396*/            OPC_EmitMergeInputChains1_0,
/*493397*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (abs:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPABSDZ256rm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)
/*493408*/          /*SwitchType*/ 17, MVT::v4i32,// ->493427
/*493410*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*493412*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*493415*/            OPC_EmitMergeInputChains1_0,
/*493416*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (abs:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPABSDZ128rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)
/*493427*/          /*SwitchType*/ 17, MVT::v32i16,// ->493446
/*493429*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*493431*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*493434*/            OPC_EmitMergeInputChains1_0,
/*493435*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (abs:{ *:[v32i16] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPABSWZrm:{ *:[v32i16] } addr:{ *:[iPTR] }:$src1)
/*493446*/          /*SwitchType*/ 17, MVT::v16i16,// ->493465
/*493448*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*493450*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*493453*/            OPC_EmitMergeInputChains1_0,
/*493454*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (abs:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPABSWZ256rm:{ *:[v16i16] } addr:{ *:[iPTR] }:$src1)
/*493465*/          /*SwitchType*/ 17, MVT::v8i16,// ->493484
/*493467*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*493469*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*493472*/            OPC_EmitMergeInputChains1_0,
/*493473*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (abs:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPABSWZ128rm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src1)
/*493484*/          /*SwitchType*/ 17, MVT::v64i8,// ->493503
/*493486*/            OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*493488*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*493491*/            OPC_EmitMergeInputChains1_0,
/*493492*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSBZrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v64i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (abs:{ *:[v64i8] } (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPABSBZrm:{ *:[v64i8] } addr:{ *:[iPTR] }:$src1)
/*493503*/          /*SwitchType*/ 17, MVT::v32i8,// ->493522
/*493505*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*493507*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*493510*/            OPC_EmitMergeInputChains1_0,
/*493511*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSBZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v32i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (abs:{ *:[v32i8] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPABSBZ256rm:{ *:[v32i8] } addr:{ *:[iPTR] }:$src1)
/*493522*/          /*SwitchType*/ 17, MVT::v16i8,// ->493541
/*493524*/            OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*493526*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*493529*/            OPC_EmitMergeInputChains1_0,
/*493530*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSBZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (abs:{ *:[v16i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPABSBZ128rm:{ *:[v16i8] } addr:{ *:[iPTR] }:$src1)
/*493541*/          0, // EndSwitchType
/*493542*/        0, /*End of Scope*/
/*493543*/      /*SwitchOpcode*/ 3|128,1/*131*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->493678
/*493547*/        OPC_RecordMemRef,
/*493548*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*493549*/        OPC_RecordChild1, // #1 = $src1
/*493550*/        OPC_Scope, 62, /*->493614*/ // 2 children in Scope
/*493552*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*493554*/          OPC_MoveParent,
/*493555*/          OPC_SwitchType /*3 cases */, 17, MVT::v8i64,// ->493575
/*493558*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*493560*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*493563*/            OPC_EmitMergeInputChains1_0,
/*493564*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (abs:{ *:[v8i64] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPABSQZrmb:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)
/*493575*/          /*SwitchType*/ 17, MVT::v4i64,// ->493594
/*493577*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*493579*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*493582*/            OPC_EmitMergeInputChains1_0,
/*493583*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (abs:{ *:[v4i64] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPABSQZ256rmb:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)
/*493594*/          /*SwitchType*/ 17, MVT::v2i64,// ->493613
/*493596*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*493598*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*493601*/            OPC_EmitMergeInputChains1_0,
/*493602*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (abs:{ *:[v2i64] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPABSQZ128rmb:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)
/*493613*/          0, // EndSwitchType
/*493614*/        /*Scope*/ 62, /*->493677*/
/*493615*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*493617*/          OPC_MoveParent,
/*493618*/          OPC_SwitchType /*3 cases */, 17, MVT::v16i32,// ->493638
/*493621*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*493623*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*493626*/            OPC_EmitMergeInputChains1_0,
/*493627*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (abs:{ *:[v16i32] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPABSDZrmb:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)
/*493638*/          /*SwitchType*/ 17, MVT::v8i32,// ->493657
/*493640*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*493642*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*493645*/            OPC_EmitMergeInputChains1_0,
/*493646*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (abs:{ *:[v8i32] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPABSDZ256rmb:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)
/*493657*/          /*SwitchType*/ 17, MVT::v4i32,// ->493676
/*493659*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*493661*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*493664*/            OPC_EmitMergeInputChains1_0,
/*493665*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPABSDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (abs:{ *:[v4i32] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPABSDZ128rmb:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)
/*493676*/          0, // EndSwitchType
/*493677*/        0, /*End of Scope*/
/*493678*/      0, // EndSwitchOpcode
/*493679*/    /*Scope*/ 71|128,2/*327*/, /*->494008*/
/*493681*/      OPC_RecordChild0, // #0 = $src
/*493682*/      OPC_SwitchType /*12 cases */, 32, MVT::v16i8,// ->493717
/*493685*/        OPC_Scope, 9, /*->493696*/ // 3 children in Scope
/*493687*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*493689*/          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)
/*493696*/        /*Scope*/ 9, /*->493706*/
/*493697*/          OPC_CheckPatternPredicate, 50, // (Subtarget->hasSSSE3() && !Subtarget->hasAVX())
/*493699*/          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)
/*493706*/        /*Scope*/ 9, /*->493716*/
/*493707*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*493709*/          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)
/*493716*/        0, /*End of Scope*/
/*493717*/      /*SwitchType*/ 32, MVT::v8i16,// ->493751
/*493719*/        OPC_Scope, 9, /*->493730*/ // 3 children in Scope
/*493721*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*493723*/          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)
/*493730*/        /*Scope*/ 9, /*->493740*/
/*493731*/          OPC_CheckPatternPredicate, 50, // (Subtarget->hasSSSE3() && !Subtarget->hasAVX())
/*493733*/          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)
/*493740*/        /*Scope*/ 9, /*->493750*/
/*493741*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*493743*/          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)
/*493750*/        0, /*End of Scope*/
/*493751*/      /*SwitchType*/ 32, MVT::v4i32,// ->493785
/*493753*/        OPC_Scope, 9, /*->493764*/ // 3 children in Scope
/*493755*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*493757*/          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)
/*493764*/        /*Scope*/ 9, /*->493774*/
/*493765*/          OPC_CheckPatternPredicate, 50, // (Subtarget->hasSSSE3() && !Subtarget->hasAVX())
/*493767*/          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)
/*493774*/        /*Scope*/ 9, /*->493784*/
/*493775*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*493777*/          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)
/*493784*/        0, /*End of Scope*/
/*493785*/      /*SwitchType*/ 22, MVT::v32i8,// ->493809
/*493787*/        OPC_Scope, 9, /*->493798*/ // 2 children in Scope
/*493789*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*493791*/          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)
/*493798*/        /*Scope*/ 9, /*->493808*/
/*493799*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*493801*/          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)
/*493808*/        0, /*End of Scope*/
/*493809*/      /*SwitchType*/ 22, MVT::v16i16,// ->493833
/*493811*/        OPC_Scope, 9, /*->493822*/ // 2 children in Scope
/*493813*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*493815*/          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)
/*493822*/        /*Scope*/ 9, /*->493832*/
/*493823*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*493825*/          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)
/*493832*/        0, /*End of Scope*/
/*493833*/      /*SwitchType*/ 22, MVT::v8i32,// ->493857
/*493835*/        OPC_Scope, 9, /*->493846*/ // 2 children in Scope
/*493837*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*493839*/          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)
/*493846*/        /*Scope*/ 9, /*->493856*/
/*493847*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*493849*/          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)
/*493856*/        0, /*End of Scope*/
/*493857*/      /*SwitchType*/ 9, MVT::v8i64,// ->493868
/*493859*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*493861*/        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)
/*493868*/      /*SwitchType*/ 51, MVT::v4i64,// ->493921
/*493870*/        OPC_Scope, 9, /*->493881*/ // 2 children in Scope
/*493872*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*493874*/          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)
/*493881*/        /*Scope*/ 38, /*->493920*/
/*493882*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*493884*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #1
/*493890*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*493893*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*493902*/          OPC_EmitNode1, TARGET_VAL(X86::VPABSQZrr), 0,
                        MVT::v64i8, 1/*#Ops*/, 3,  // Results = #4
/*493909*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*493912*/          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] })
/*493920*/        0, /*End of Scope*/
/*493921*/      /*SwitchType*/ 51, MVT::v2i64,// ->493974
/*493923*/        OPC_Scope, 9, /*->493934*/ // 2 children in Scope
/*493925*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*493927*/          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)
/*493934*/        /*Scope*/ 38, /*->493973*/
/*493935*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*493937*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #1
/*493943*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*493946*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*493955*/          OPC_EmitNode1, TARGET_VAL(X86::VPABSQZrr), 0,
                        MVT::v64i8, 1/*#Ops*/, 3,  // Results = #4
/*493962*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*493965*/          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] })
/*493973*/        0, /*End of Scope*/
/*493974*/      /*SwitchType*/ 9, MVT::v16i32,// ->493985
/*493976*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*493978*/        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)
/*493985*/      /*SwitchType*/ 9, MVT::v32i16,// ->493996
/*493987*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*493989*/        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)
/*493996*/      /*SwitchType*/ 9, MVT::v64i8,// ->494007
/*493998*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*494000*/        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)
/*494007*/      0, // EndSwitchType
/*494008*/    0, /*End of Scope*/
/*494009*/  /*SwitchOpcode*/ 102|128,1/*230*/, TARGET_VAL(X86ISD::PSHUFB),// ->494243
/*494013*/    OPC_RecordChild0, // #0 = $src1
/*494014*/    OPC_Scope, 18|128,1/*146*/, /*->494163*/ // 2 children in Scope
/*494017*/      OPC_MoveChild1,
/*494018*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*494021*/      OPC_RecordMemRef,
/*494022*/      OPC_RecordNode, // #1 = 'ld' chained node
/*494023*/      OPC_CheckFoldableChainNode,
/*494024*/      OPC_RecordChild1, // #2 = $src2
/*494025*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*494027*/      OPC_CheckPredicate, 9, // Predicate_load
/*494029*/      OPC_Scope, 43, /*->494074*/ // 3 children in Scope
/*494031*/        OPC_MoveParent,
/*494032*/        OPC_SwitchType /*2 cases */, 18, MVT::v16i8,// ->494053
/*494035*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*494037*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*494040*/          OPC_EmitMergeInputChains1_1,
/*494041*/          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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPSHUFBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*494053*/        /*SwitchType*/ 18, MVT::v32i8,// ->494073
/*494055*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*494057*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*494060*/          OPC_EmitMergeInputChains1_1,
/*494061*/          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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPSHUFBYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*494073*/        0, // EndSwitchType
/*494074*/      /*Scope*/ 23, /*->494098*/
/*494075*/        OPC_CheckPredicate, 39, // Predicate_memop
/*494077*/        OPC_MoveParent,
/*494078*/        OPC_CheckType, MVT::v16i8,
/*494080*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasSSSE3() && !Subtarget->hasAVX())
/*494082*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*494085*/        OPC_EmitMergeInputChains1_1,
/*494086*/        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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (PSHUFBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*494098*/      /*Scope*/ 63, /*->494162*/
/*494099*/        OPC_MoveParent,
/*494100*/        OPC_SwitchType /*3 cases */, 18, MVT::v64i8,// ->494121
/*494103*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*494105*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*494108*/          OPC_EmitMergeInputChains1_1,
/*494109*/          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, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPSHUFBZrm:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*494121*/        /*SwitchType*/ 18, MVT::v32i8,// ->494141
/*494123*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*494125*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*494128*/          OPC_EmitMergeInputChains1_1,
/*494129*/          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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPSHUFBZ256rm:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*494141*/        /*SwitchType*/ 18, MVT::v16i8,// ->494161
/*494143*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*494145*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*494148*/          OPC_EmitMergeInputChains1_1,
/*494149*/          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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPSHUFBZ128rm:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*494161*/        0, // EndSwitchType
/*494162*/      0, /*End of Scope*/
/*494163*/    /*Scope*/ 78, /*->494242*/
/*494164*/      OPC_RecordChild1, // #1 = $src2
/*494165*/      OPC_SwitchType /*3 cases */, 35, MVT::v16i8,// ->494203
/*494168*/        OPC_Scope, 10, /*->494180*/ // 3 children in Scope
/*494170*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*494172*/          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)
/*494180*/        /*Scope*/ 10, /*->494191*/
/*494181*/          OPC_CheckPatternPredicate, 50, // (Subtarget->hasSSSE3() && !Subtarget->hasAVX())
/*494183*/          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)
/*494191*/        /*Scope*/ 10, /*->494202*/
/*494192*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*494194*/          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)
/*494202*/        0, /*End of Scope*/
/*494203*/      /*SwitchType*/ 24, MVT::v32i8,// ->494229
/*494205*/        OPC_Scope, 10, /*->494217*/ // 2 children in Scope
/*494207*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*494209*/          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)
/*494217*/        /*Scope*/ 10, /*->494228*/
/*494218*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*494220*/          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)
/*494228*/        0, /*End of Scope*/
/*494229*/      /*SwitchType*/ 10, MVT::v64i8,// ->494241
/*494231*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*494233*/        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)
/*494241*/      0, // EndSwitchType
/*494242*/    0, /*End of Scope*/
/*494243*/  /*SwitchOpcode*/ 102|128,1/*230*/, TARGET_VAL(X86ISD::VPMADDUBSW),// ->494477
/*494247*/    OPC_RecordChild0, // #0 = $src1
/*494248*/    OPC_Scope, 18|128,1/*146*/, /*->494397*/ // 2 children in Scope
/*494251*/      OPC_MoveChild1,
/*494252*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*494255*/      OPC_RecordMemRef,
/*494256*/      OPC_RecordNode, // #1 = 'ld' chained node
/*494257*/      OPC_CheckFoldableChainNode,
/*494258*/      OPC_RecordChild1, // #2 = $src2
/*494259*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*494261*/      OPC_CheckPredicate, 9, // Predicate_load
/*494263*/      OPC_Scope, 43, /*->494308*/ // 3 children in Scope
/*494265*/        OPC_MoveParent,
/*494266*/        OPC_SwitchType /*2 cases */, 18, MVT::v8i16,// ->494287
/*494269*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*494271*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*494274*/          OPC_EmitMergeInputChains1_1,
/*494275*/          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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPMADDUBSWrm:{ *:[v8i16] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*494287*/        /*SwitchType*/ 18, MVT::v16i16,// ->494307
/*494289*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*494291*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*494294*/          OPC_EmitMergeInputChains1_1,
/*494295*/          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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPMADDUBSWYrm:{ *:[v16i16] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*494307*/        0, // EndSwitchType
/*494308*/      /*Scope*/ 23, /*->494332*/
/*494309*/        OPC_CheckPredicate, 39, // Predicate_memop
/*494311*/        OPC_MoveParent,
/*494312*/        OPC_CheckType, MVT::v8i16,
/*494314*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasSSSE3() && !Subtarget->hasAVX())
/*494316*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*494319*/        OPC_EmitMergeInputChains1_1,
/*494320*/        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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (PMADDUBSWrm:{ *:[v8i16] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*494332*/      /*Scope*/ 63, /*->494396*/
/*494333*/        OPC_MoveParent,
/*494334*/        OPC_SwitchType /*3 cases */, 18, MVT::v32i16,// ->494355
/*494337*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*494339*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*494342*/          OPC_EmitMergeInputChains1_1,
/*494343*/          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, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPMADDUBSWZrm:{ *:[v32i16] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*494355*/        /*SwitchType*/ 18, MVT::v16i16,// ->494375
/*494357*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*494359*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*494362*/          OPC_EmitMergeInputChains1_1,
/*494363*/          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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPMADDUBSWZ256rm:{ *:[v16i16] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*494375*/        /*SwitchType*/ 18, MVT::v8i16,// ->494395
/*494377*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*494379*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*494382*/          OPC_EmitMergeInputChains1_1,
/*494383*/          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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPMADDUBSWZ128rm:{ *:[v8i16] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*494395*/        0, // EndSwitchType
/*494396*/      0, /*End of Scope*/
/*494397*/    /*Scope*/ 78, /*->494476*/
/*494398*/      OPC_RecordChild1, // #1 = $src2
/*494399*/      OPC_SwitchType /*3 cases */, 35, MVT::v8i16,// ->494437
/*494402*/        OPC_Scope, 10, /*->494414*/ // 3 children in Scope
/*494404*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*494406*/          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)
/*494414*/        /*Scope*/ 10, /*->494425*/
/*494415*/          OPC_CheckPatternPredicate, 50, // (Subtarget->hasSSSE3() && !Subtarget->hasAVX())
/*494417*/          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)
/*494425*/        /*Scope*/ 10, /*->494436*/
/*494426*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*494428*/          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)
/*494436*/        0, /*End of Scope*/
/*494437*/      /*SwitchType*/ 24, MVT::v16i16,// ->494463
/*494439*/        OPC_Scope, 10, /*->494451*/ // 2 children in Scope
/*494441*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*494443*/          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)
/*494451*/        /*Scope*/ 10, /*->494462*/
/*494452*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*494454*/          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)
/*494462*/        0, /*End of Scope*/
/*494463*/      /*SwitchType*/ 10, MVT::v32i16,// ->494475
/*494465*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*494467*/        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)
/*494475*/      0, // EndSwitchType
/*494476*/    0, /*End of Scope*/
/*494477*/  /*SwitchOpcode*/ 126|128,2/*382*/, TARGET_VAL(X86ISD::MULHRS),// ->494863
/*494481*/    OPC_Scope, 19|128,1/*147*/, /*->494631*/ // 3 children in Scope
/*494484*/      OPC_RecordChild0, // #0 = $src1
/*494485*/      OPC_MoveChild1,
/*494486*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*494489*/      OPC_RecordMemRef,
/*494490*/      OPC_RecordNode, // #1 = 'ld' chained node
/*494491*/      OPC_CheckFoldableChainNode,
/*494492*/      OPC_RecordChild1, // #2 = $src2
/*494493*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*494495*/      OPC_CheckPredicate, 9, // Predicate_load
/*494497*/      OPC_Scope, 43, /*->494542*/ // 3 children in Scope
/*494499*/        OPC_MoveParent,
/*494500*/        OPC_SwitchType /*2 cases */, 18, MVT::v8i16,// ->494521
/*494503*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*494505*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*494508*/          OPC_EmitMergeInputChains1_1,
/*494509*/          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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPMULHRSWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*494521*/        /*SwitchType*/ 18, MVT::v16i16,// ->494541
/*494523*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*494525*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*494528*/          OPC_EmitMergeInputChains1_1,
/*494529*/          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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPMULHRSWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*494541*/        0, // EndSwitchType
/*494542*/      /*Scope*/ 23, /*->494566*/
/*494543*/        OPC_CheckPredicate, 39, // Predicate_memop
/*494545*/        OPC_MoveParent,
/*494546*/        OPC_CheckType, MVT::v8i16,
/*494548*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasSSSE3() && !Subtarget->hasAVX())
/*494550*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*494553*/        OPC_EmitMergeInputChains1_1,
/*494554*/        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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (PMULHRSWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*494566*/      /*Scope*/ 63, /*->494630*/
/*494567*/        OPC_MoveParent,
/*494568*/        OPC_SwitchType /*3 cases */, 18, MVT::v32i16,// ->494589
/*494571*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*494573*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*494576*/          OPC_EmitMergeInputChains1_1,
/*494577*/          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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPMULHRSWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*494589*/        /*SwitchType*/ 18, MVT::v16i16,// ->494609
/*494591*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*494593*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*494596*/          OPC_EmitMergeInputChains1_1,
/*494597*/          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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPMULHRSWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*494609*/        /*SwitchType*/ 18, MVT::v8i16,// ->494629
/*494611*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*494613*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*494616*/          OPC_EmitMergeInputChains1_1,
/*494617*/          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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPMULHRSWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*494629*/        0, // EndSwitchType
/*494630*/      0, /*End of Scope*/
/*494631*/    /*Scope*/ 21|128,1/*149*/, /*->494782*/
/*494633*/      OPC_MoveChild0,
/*494634*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*494637*/      OPC_RecordMemRef,
/*494638*/      OPC_RecordNode, // #0 = 'ld' chained node
/*494639*/      OPC_CheckFoldableChainNode,
/*494640*/      OPC_RecordChild1, // #1 = $src2
/*494641*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*494643*/      OPC_CheckPredicate, 9, // Predicate_load
/*494645*/      OPC_Scope, 44, /*->494691*/ // 3 children in Scope
/*494647*/        OPC_MoveParent,
/*494648*/        OPC_RecordChild1, // #2 = $src1
/*494649*/        OPC_SwitchType /*2 cases */, 18, MVT::v8i16,// ->494670
/*494652*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*494654*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*494657*/          OPC_EmitMergeInputChains1_0,
/*494658*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHRSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86mulhrs:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v8i16] }:$src1) - Complexity = 25
                    // Dst: (VPMULHRSWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*494670*/        /*SwitchType*/ 18, MVT::v16i16,// ->494690
/*494672*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*494674*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*494677*/          OPC_EmitMergeInputChains1_0,
/*494678*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHRSWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86mulhrs:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v16i16] }:$src1) - Complexity = 25
                    // Dst: (VPMULHRSWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*494690*/        0, // EndSwitchType
/*494691*/      /*Scope*/ 24, /*->494716*/
/*494692*/        OPC_CheckPredicate, 39, // Predicate_memop
/*494694*/        OPC_MoveParent,
/*494695*/        OPC_RecordChild1, // #2 = $src1
/*494696*/        OPC_CheckType, MVT::v8i16,
/*494698*/        OPC_CheckPatternPredicate, 50, // (Subtarget->hasSSSE3() && !Subtarget->hasAVX())
/*494700*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*494703*/        OPC_EmitMergeInputChains1_0,
/*494704*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PMULHRSWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (X86mulhrs:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:{ *:[v8i16] }:$src1) - Complexity = 25
                  // Dst: (PMULHRSWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*494716*/      /*Scope*/ 64, /*->494781*/
/*494717*/        OPC_MoveParent,
/*494718*/        OPC_RecordChild1, // #2 = $src1
/*494719*/        OPC_SwitchType /*3 cases */, 18, MVT::v32i16,// ->494740
/*494722*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*494724*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*494727*/          OPC_EmitMergeInputChains1_0,
/*494728*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHRSWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86mulhrs:{ *:[v32i16] } (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR512:{ *:[v32i16] }:$src1) - Complexity = 25
                    // Dst: (VPMULHRSWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*494740*/        /*SwitchType*/ 18, MVT::v16i16,// ->494760
/*494742*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*494744*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*494747*/          OPC_EmitMergeInputChains1_0,
/*494748*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHRSWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86mulhrs:{ *:[v16i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256X:{ *:[v16i16] }:$src1) - Complexity = 25
                    // Dst: (VPMULHRSWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*494760*/        /*SwitchType*/ 18, MVT::v8i16,// ->494780
/*494762*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*494764*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*494767*/          OPC_EmitMergeInputChains1_0,
/*494768*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULHRSWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86mulhrs:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v8i16] }:$src1) - Complexity = 25
                    // Dst: (VPMULHRSWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*494780*/        0, // EndSwitchType
/*494781*/      0, /*End of Scope*/
/*494782*/    /*Scope*/ 79, /*->494862*/
/*494783*/      OPC_RecordChild0, // #0 = $src1
/*494784*/      OPC_RecordChild1, // #1 = $src2
/*494785*/      OPC_SwitchType /*3 cases */, 35, MVT::v8i16,// ->494823
/*494788*/        OPC_Scope, 10, /*->494800*/ // 3 children in Scope
/*494790*/          OPC_CheckPatternPredicate, 118, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*494792*/          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)
/*494800*/        /*Scope*/ 10, /*->494811*/
/*494801*/          OPC_CheckPatternPredicate, 50, // (Subtarget->hasSSSE3() && !Subtarget->hasAVX())
/*494803*/          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)
/*494811*/        /*Scope*/ 10, /*->494822*/
/*494812*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*494814*/          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)
/*494822*/        0, /*End of Scope*/
/*494823*/      /*SwitchType*/ 24, MVT::v16i16,// ->494849
/*494825*/        OPC_Scope, 10, /*->494837*/ // 2 children in Scope
/*494827*/          OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*494829*/          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)
/*494837*/        /*Scope*/ 10, /*->494848*/
/*494838*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*494840*/          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)
/*494848*/        0, /*End of Scope*/
/*494849*/      /*SwitchType*/ 10, MVT::v32i16,// ->494861
/*494851*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*494853*/        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)
/*494861*/      0, // EndSwitchType
/*494862*/    0, /*End of Scope*/
/*494863*/  /*SwitchOpcode*/ 101|128,1/*229*/, TARGET_VAL(X86ISD::HADD),// ->495096
/*494867*/    OPC_RecordChild0, // #0 = $src1
/*494868*/    OPC_Scope, 16|128,1/*144*/, /*->495015*/ // 2 children in Scope
/*494871*/      OPC_MoveChild1,
/*494872*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*494875*/      OPC_RecordMemRef,
/*494876*/      OPC_RecordNode, // #1 = 'ld' chained node
/*494877*/      OPC_CheckFoldableChainNode,
/*494878*/      OPC_RecordChild1, // #2 = $src2
/*494879*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*494881*/      OPC_CheckPredicate, 9, // Predicate_load
/*494883*/      OPC_Scope, 83, /*->494968*/ // 2 children in Scope
/*494885*/        OPC_MoveParent,
/*494886*/        OPC_SwitchType /*4 cases */, 18, MVT::v8i16,// ->494907
/*494889*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*494891*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*494894*/          OPC_EmitMergeInputChains1_1,
/*494895*/          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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPHADDWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*494907*/        /*SwitchType*/ 18, MVT::v4i32,// ->494927
/*494909*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*494911*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*494914*/          OPC_EmitMergeInputChains1_1,
/*494915*/          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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPHADDDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*494927*/        /*SwitchType*/ 18, MVT::v16i16,// ->494947
/*494929*/          OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/*494931*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*494934*/          OPC_EmitMergeInputChains1_1,
/*494935*/          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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPHADDWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*494947*/        /*SwitchType*/ 18, MVT::v8i32,// ->494967
/*494949*/          OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/*494951*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*494954*/          OPC_EmitMergeInputChains1_1,
/*494955*/          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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPHADDDYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*494967*/        0, // EndSwitchType
/*494968*/      /*Scope*/ 45, /*->495014*/
/*494969*/        OPC_CheckPredicate, 39, // Predicate_memop
/*494971*/        OPC_MoveParent,
/*494972*/        OPC_SwitchType /*2 cases */, 18, MVT::v8i16,// ->494993
/*494975*/          OPC_CheckPatternPredicate, 50, // (Subtarget->hasSSSE3() && !Subtarget->hasAVX())
/*494977*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*494980*/          OPC_EmitMergeInputChains1_1,
/*494981*/          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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                    // Dst: (PHADDWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*494993*/        /*SwitchType*/ 18, MVT::v4i32,// ->495013
/*494995*/          OPC_CheckPatternPredicate, 50, // (Subtarget->hasSSSE3() && !Subtarget->hasAVX())
/*494997*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*495000*/          OPC_EmitMergeInputChains1_1,
/*495001*/          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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                    // Dst: (PHADDDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*495013*/        0, // EndSwitchType
/*495014*/      0, /*End of Scope*/
/*495015*/    /*Scope*/ 79, /*->495095*/
/*495016*/      OPC_RecordChild1, // #1 = $src2
/*495017*/      OPC_SwitchType /*4 cases */, 24, MVT::v8i16,// ->495044
/*495020*/        OPC_Scope, 10, /*->495032*/ // 2 children in Scope
/*495022*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*495024*/          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)
/*495032*/        /*Scope*/ 10, /*->495043*/
/*495033*/          OPC_CheckPatternPredicate, 50, // (Subtarget->hasSSSE3() && !Subtarget->hasAVX())
/*495035*/          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)
/*495043*/        0, /*End of Scope*/
/*495044*/      /*SwitchType*/ 24, MVT::v4i32,// ->495070
/*495046*/        OPC_Scope, 10, /*->495058*/ // 2 children in Scope
/*495048*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*495050*/          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)
/*495058*/        /*Scope*/ 10, /*->495069*/
/*495059*/          OPC_CheckPatternPredicate, 50, // (Subtarget->hasSSSE3() && !Subtarget->hasAVX())
/*495061*/          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)
/*495069*/        0, /*End of Scope*/
/*495070*/      /*SwitchType*/ 10, MVT::v16i16,// ->495082
/*495072*/        OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/*495074*/        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)
/*495082*/      /*SwitchType*/ 10, MVT::v8i32,// ->495094
/*495084*/        OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/*495086*/        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)
/*495094*/      0, // EndSwitchType
/*495095*/    0, /*End of Scope*/
/*495096*/  /*SwitchOpcode*/ 101|128,1/*229*/, TARGET_VAL(X86ISD::HSUB),// ->495329
/*495100*/    OPC_RecordChild0, // #0 = $src1
/*495101*/    OPC_Scope, 16|128,1/*144*/, /*->495248*/ // 2 children in Scope
/*495104*/      OPC_MoveChild1,
/*495105*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*495108*/      OPC_RecordMemRef,
/*495109*/      OPC_RecordNode, // #1 = 'ld' chained node
/*495110*/      OPC_CheckFoldableChainNode,
/*495111*/      OPC_RecordChild1, // #2 = $src2
/*495112*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*495114*/      OPC_CheckPredicate, 9, // Predicate_load
/*495116*/      OPC_Scope, 83, /*->495201*/ // 2 children in Scope
/*495118*/        OPC_MoveParent,
/*495119*/        OPC_SwitchType /*4 cases */, 18, MVT::v8i16,// ->495140
/*495122*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*495124*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*495127*/          OPC_EmitMergeInputChains1_1,
/*495128*/          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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPHSUBWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*495140*/        /*SwitchType*/ 18, MVT::v4i32,// ->495160
/*495142*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*495144*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*495147*/          OPC_EmitMergeInputChains1_1,
/*495148*/          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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPHSUBDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*495160*/        /*SwitchType*/ 18, MVT::v16i16,// ->495180
/*495162*/          OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/*495164*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*495167*/          OPC_EmitMergeInputChains1_1,
/*495168*/          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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPHSUBWYrm:{ *:[v16i16] } VR256:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*495180*/        /*SwitchType*/ 18, MVT::v8i32,// ->495200
/*495182*/          OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/*495184*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*495187*/          OPC_EmitMergeInputChains1_1,
/*495188*/          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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPHSUBDYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*495200*/        0, // EndSwitchType
/*495201*/      /*Scope*/ 45, /*->495247*/
/*495202*/        OPC_CheckPredicate, 39, // Predicate_memop
/*495204*/        OPC_MoveParent,
/*495205*/        OPC_SwitchType /*2 cases */, 18, MVT::v8i16,// ->495226
/*495208*/          OPC_CheckPatternPredicate, 50, // (Subtarget->hasSSSE3() && !Subtarget->hasAVX())
/*495210*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*495213*/          OPC_EmitMergeInputChains1_1,
/*495214*/          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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                    // Dst: (PHSUBWrm:{ *:[v8i16] } VR128:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*495226*/        /*SwitchType*/ 18, MVT::v4i32,// ->495246
/*495228*/          OPC_CheckPatternPredicate, 50, // (Subtarget->hasSSSE3() && !Subtarget->hasAVX())
/*495230*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*495233*/          OPC_EmitMergeInputChains1_1,
/*495234*/          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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                    // Dst: (PHSUBDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*495246*/        0, // EndSwitchType
/*495247*/      0, /*End of Scope*/
/*495248*/    /*Scope*/ 79, /*->495328*/
/*495249*/      OPC_RecordChild1, // #1 = $src2
/*495250*/      OPC_SwitchType /*4 cases */, 24, MVT::v8i16,// ->495277
/*495253*/        OPC_Scope, 10, /*->495265*/ // 2 children in Scope
/*495255*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*495257*/          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)
/*495265*/        /*Scope*/ 10, /*->495276*/
/*495266*/          OPC_CheckPatternPredicate, 50, // (Subtarget->hasSSSE3() && !Subtarget->hasAVX())
/*495268*/          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)
/*495276*/        0, /*End of Scope*/
/*495277*/      /*SwitchType*/ 24, MVT::v4i32,// ->495303
/*495279*/        OPC_Scope, 10, /*->495291*/ // 2 children in Scope
/*495281*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*495283*/          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)
/*495291*/        /*Scope*/ 10, /*->495302*/
/*495292*/          OPC_CheckPatternPredicate, 50, // (Subtarget->hasSSSE3() && !Subtarget->hasAVX())
/*495294*/          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)
/*495302*/        0, /*End of Scope*/
/*495303*/      /*SwitchType*/ 10, MVT::v16i16,// ->495315
/*495305*/        OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/*495307*/        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)
/*495315*/      /*SwitchType*/ 10, MVT::v8i32,// ->495327
/*495317*/        OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/*495319*/        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)
/*495327*/      0, // EndSwitchType
/*495328*/    0, /*End of Scope*/
/*495329*/  /*SwitchOpcode*/ 80, TARGET_VAL(X86ISD::PHMINPOS),// ->495412
/*495332*/    OPC_Scope, 53, /*->495387*/ // 2 children in Scope
/*495334*/      OPC_MoveChild0,
/*495335*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*495338*/      OPC_RecordMemRef,
/*495339*/      OPC_RecordNode, // #0 = 'ld' chained node
/*495340*/      OPC_RecordChild1, // #1 = $src
/*495341*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*495343*/      OPC_CheckPredicate, 9, // Predicate_load
/*495345*/      OPC_Scope, 18, /*->495365*/ // 2 children in Scope
/*495347*/        OPC_MoveParent,
/*495348*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*495350*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*495353*/        OPC_EmitMergeInputChains1_0,
/*495354*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPHMINPOSUWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86phminpos:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VPHMINPOSUWrm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*495365*/      /*Scope*/ 20, /*->495386*/
/*495366*/        OPC_CheckPredicate, 39, // Predicate_memop
/*495368*/        OPC_MoveParent,
/*495369*/        OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*495371*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*495374*/        OPC_EmitMergeInputChains1_0,
/*495375*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PHMINPOSUWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86phminpos:{ *:[v8i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (PHMINPOSUWrm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*495386*/      0, /*End of Scope*/
/*495387*/    /*Scope*/ 23, /*->495411*/
/*495388*/      OPC_RecordChild0, // #0 = $src
/*495389*/      OPC_Scope, 9, /*->495400*/ // 2 children in Scope
/*495391*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*495393*/        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)
/*495400*/      /*Scope*/ 9, /*->495410*/
/*495401*/        OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*495403*/        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)
/*495410*/      0, /*End of Scope*/
/*495411*/    0, /*End of Scope*/
/*495412*/  /*SwitchOpcode*/ 21|128,4/*533*/, TARGET_VAL(X86ISD::PMULDQ),// ->495949
/*495416*/    OPC_Scope, 94|128,1/*222*/, /*->495641*/ // 3 children in Scope
/*495419*/      OPC_RecordChild0, // #0 = $src1
/*495420*/      OPC_MoveChild1,
/*495421*/      OPC_SwitchOpcode /*2 cases */, 14|128,1/*142*/, TARGET_VAL(ISD::LOAD),// ->495568
/*495426*/        OPC_RecordMemRef,
/*495427*/        OPC_RecordNode, // #1 = 'ld' chained node
/*495428*/        OPC_CheckFoldableChainNode,
/*495429*/        OPC_RecordChild1, // #2 = $src2
/*495430*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*495432*/        OPC_CheckPredicate, 9, // Predicate_load
/*495434*/        OPC_Scope, 43, /*->495479*/ // 3 children in Scope
/*495436*/          OPC_MoveParent,
/*495437*/          OPC_SwitchType /*2 cases */, 18, MVT::v2i64,// ->495458
/*495440*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*495442*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*495445*/            OPC_EmitMergeInputChains1_1,
/*495446*/            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>>) - Complexity = 25
                      // Dst: (VPMULDQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*495458*/          /*SwitchType*/ 18, MVT::v4i64,// ->495478
/*495460*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*495462*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*495465*/            OPC_EmitMergeInputChains1_1,
/*495466*/            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>>) - Complexity = 25
                      // Dst: (VPMULDQYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*495478*/          0, // EndSwitchType
/*495479*/        /*Scope*/ 23, /*->495503*/
/*495480*/          OPC_CheckPredicate, 39, // Predicate_memop
/*495482*/          OPC_MoveParent,
/*495483*/          OPC_CheckType, MVT::v2i64,
/*495485*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*495487*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*495490*/          OPC_EmitMergeInputChains1_1,
/*495491*/          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_memop>>) - Complexity = 25
                    // Dst: (PMULDQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*495503*/        /*Scope*/ 63, /*->495567*/
/*495504*/          OPC_MoveParent,
/*495505*/          OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->495526
/*495508*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*495510*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*495513*/            OPC_EmitMergeInputChains1_1,
/*495514*/            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>>) - Complexity = 25
                      // Dst: (VPMULDQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*495526*/          /*SwitchType*/ 18, MVT::v4i64,// ->495546
/*495528*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*495530*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*495533*/            OPC_EmitMergeInputChains1_1,
/*495534*/            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>>) - Complexity = 25
                      // Dst: (VPMULDQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*495546*/          /*SwitchType*/ 18, MVT::v2i64,// ->495566
/*495548*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*495550*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*495553*/            OPC_EmitMergeInputChains1_1,
/*495554*/            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>>) - Complexity = 25
                      // Dst: (VPMULDQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*495566*/          0, // EndSwitchType
/*495567*/        0, /*End of Scope*/
/*495568*/      /*SwitchOpcode*/ 69, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->495640
/*495571*/        OPC_RecordMemRef,
/*495572*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*495573*/        OPC_CheckFoldableChainNode,
/*495574*/        OPC_RecordChild1, // #2 = $src2
/*495575*/        OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*495577*/        OPC_MoveParent,
/*495578*/        OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->495599
/*495581*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*495583*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*495586*/          OPC_EmitMergeInputChains1_1,
/*495587*/          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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                    // Dst: (VPMULDQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*495599*/        /*SwitchType*/ 18, MVT::v4i64,// ->495619
/*495601*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*495603*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*495606*/          OPC_EmitMergeInputChains1_1,
/*495607*/          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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                    // Dst: (VPMULDQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*495619*/        /*SwitchType*/ 18, MVT::v2i64,// ->495639
/*495621*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*495623*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*495626*/          OPC_EmitMergeInputChains1_1,
/*495627*/          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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                    // Dst: (VPMULDQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*495639*/        0, // EndSwitchType
/*495640*/      0, // EndSwitchOpcode
/*495641*/    /*Scope*/ 97|128,1/*225*/, /*->495868*/
/*495643*/      OPC_MoveChild0,
/*495644*/      OPC_SwitchOpcode /*2 cases */, 17|128,1/*145*/, TARGET_VAL(ISD::LOAD),// ->495794
/*495649*/        OPC_RecordMemRef,
/*495650*/        OPC_RecordNode, // #0 = 'ld' chained node
/*495651*/        OPC_CheckFoldableChainNode,
/*495652*/        OPC_RecordChild1, // #1 = $src2
/*495653*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*495655*/        OPC_CheckPredicate, 9, // Predicate_load
/*495657*/        OPC_Scope, 44, /*->495703*/ // 3 children in Scope
/*495659*/          OPC_MoveParent,
/*495660*/          OPC_RecordChild1, // #2 = $src1
/*495661*/          OPC_SwitchType /*2 cases */, 18, MVT::v2i64,// ->495682
/*495664*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*495666*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*495669*/            OPC_EmitMergeInputChains1_0,
/*495670*/            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>>, VR128:{ *:[v2i64] }:$src1) - Complexity = 25
                      // Dst: (VPMULDQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*495682*/          /*SwitchType*/ 18, MVT::v4i64,// ->495702
/*495684*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*495686*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*495689*/            OPC_EmitMergeInputChains1_0,
/*495690*/            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>>, VR256:{ *:[v4i64] }:$src1) - Complexity = 25
                      // Dst: (VPMULDQYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*495702*/          0, // EndSwitchType
/*495703*/        /*Scope*/ 24, /*->495728*/
/*495704*/          OPC_CheckPredicate, 39, // Predicate_memop
/*495706*/          OPC_MoveParent,
/*495707*/          OPC_RecordChild1, // #2 = $src1
/*495708*/          OPC_CheckType, MVT::v2i64,
/*495710*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*495712*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*495715*/          OPC_EmitMergeInputChains1_0,
/*495716*/          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_memop>>, VR128:{ *:[v2i64] }:$src1) - Complexity = 25
                    // Dst: (PMULDQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*495728*/        /*Scope*/ 64, /*->495793*/
/*495729*/          OPC_MoveParent,
/*495730*/          OPC_RecordChild1, // #2 = $src1
/*495731*/          OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->495752
/*495734*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*495736*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*495739*/            OPC_EmitMergeInputChains1_0,
/*495740*/            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>>, VR512:{ *:[v8i64] }:$src1) - Complexity = 25
                      // Dst: (VPMULDQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*495752*/          /*SwitchType*/ 18, MVT::v4i64,// ->495772
/*495754*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*495756*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*495759*/            OPC_EmitMergeInputChains1_0,
/*495760*/            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>>, VR256X:{ *:[v4i64] }:$src1) - Complexity = 25
                      // Dst: (VPMULDQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*495772*/          /*SwitchType*/ 18, MVT::v2i64,// ->495792
/*495774*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*495776*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*495779*/            OPC_EmitMergeInputChains1_0,
/*495780*/            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>>, VR128X:{ *:[v2i64] }:$src1) - Complexity = 25
                      // Dst: (VPMULDQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*495792*/          0, // EndSwitchType
/*495793*/        0, /*End of Scope*/
/*495794*/      /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->495867
/*495797*/        OPC_RecordMemRef,
/*495798*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*495799*/        OPC_CheckFoldableChainNode,
/*495800*/        OPC_RecordChild1, // #1 = $src2
/*495801*/        OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*495803*/        OPC_MoveParent,
/*495804*/        OPC_RecordChild1, // #2 = $src1
/*495805*/        OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->495826
/*495808*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*495810*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*495813*/          OPC_EmitMergeInputChains1_0,
/*495814*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULDQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86pmuldq:{ *:[v8i64] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8i64] }:$src1) - Complexity = 25
                    // Dst: (VPMULDQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*495826*/        /*SwitchType*/ 18, MVT::v4i64,// ->495846
/*495828*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*495830*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*495833*/          OPC_EmitMergeInputChains1_0,
/*495834*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULDQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86pmuldq:{ *:[v4i64] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src1) - Complexity = 25
                    // Dst: (VPMULDQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*495846*/        /*SwitchType*/ 18, MVT::v2i64,// ->495866
/*495848*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*495850*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*495853*/          OPC_EmitMergeInputChains1_0,
/*495854*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMULDQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2i64, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86pmuldq:{ *:[v2i64] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src1) - Complexity = 25
                    // Dst: (VPMULDQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*495866*/        0, // EndSwitchType
/*495867*/      0, // EndSwitchOpcode
/*495868*/    /*Scope*/ 79, /*->495948*/
/*495869*/      OPC_RecordChild0, // #0 = $src1
/*495870*/      OPC_RecordChild1, // #1 = $src2
/*495871*/      OPC_SwitchType /*3 cases */, 35, MVT::v2i64,// ->495909
/*495874*/        OPC_Scope, 10, /*->495886*/ // 3 children in Scope
/*495876*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*495878*/          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)
/*495886*/        /*Scope*/ 10, /*->495897*/
/*495887*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*495889*/          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)
/*495897*/        /*Scope*/ 10, /*->495908*/
/*495898*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*495900*/          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)
/*495908*/        0, /*End of Scope*/
/*495909*/      /*SwitchType*/ 24, MVT::v4i64,// ->495935
/*495911*/        OPC_Scope, 10, /*->495923*/ // 2 children in Scope
/*495913*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*495915*/          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)
/*495923*/        /*Scope*/ 10, /*->495934*/
/*495924*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*495926*/          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)
/*495934*/        0, /*End of Scope*/
/*495935*/      /*SwitchType*/ 10, MVT::v8i64,// ->495947
/*495937*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*495939*/        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)
/*495947*/      0, // EndSwitchType
/*495948*/    0, /*End of Scope*/
/*495949*/  /*SwitchOpcode*/ 93|128,3/*477*/, TARGET_VAL(X86ISD::BLENDV),// ->496430
/*495953*/    OPC_RecordChild0, // #0 = $src3
/*495954*/    OPC_Scope, 89, /*->496045*/ // 4 children in Scope
/*495956*/      OPC_MoveChild1,
/*495957*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*495960*/      OPC_RecordMemRef,
/*495961*/      OPC_RecordNode, // #1 = 'ld' chained node
/*495962*/      OPC_CheckFoldableChainNode,
/*495963*/      OPC_RecordChild1, // #2 = $src2
/*495964*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*495966*/      OPC_CheckPredicate, 9, // Predicate_load
/*495968*/      OPC_Scope, 46, /*->496016*/ // 2 children in Scope
/*495970*/        OPC_MoveParent,
/*495971*/        OPC_RecordChild2, // #3 = $src1
/*495972*/        OPC_SwitchType /*2 cases */, 19, MVT::v16i8,// ->495994
/*495975*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*495977*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*495980*/          OPC_EmitMergeInputChains1_1,
/*495981*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPBLENDVBrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i8, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 0, 
                    // Src: (X86Blendv:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src3, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v16i8] }:$src1) - Complexity = 25
                    // Dst: (VPBLENDVBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v16i8] }:$src3)
/*495994*/        /*SwitchType*/ 19, MVT::v32i8,// ->496015
/*495996*/          OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/*495998*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*496001*/          OPC_EmitMergeInputChains1_1,
/*496002*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPBLENDVBYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i8, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 0, 
                    // Src: (X86Blendv:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src3, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v32i8] }:$src1) - Complexity = 25
                    // Dst: (VPBLENDVBYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v32i8] }:$src3)
/*496015*/        0, // EndSwitchType
/*496016*/      /*Scope*/ 27, /*->496044*/
/*496017*/        OPC_CheckPredicate, 39, // Predicate_memop
/*496019*/        OPC_MoveParent,
/*496020*/        OPC_RecordChild2, // #3 = $src1
/*496021*/        OPC_CheckType, MVT::v16i8,
/*496023*/        OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*496025*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*496028*/        OPC_EmitMergeInputChains1_1,
/*496029*/        OPC_EmitCopyToReg, 0, X86::XMM0,
/*496032*/        OPC_MorphNodeTo1, TARGET_VAL(X86::PBLENDVBrm0), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                      MVT::v16i8, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                  // Src: (X86Blendv:{ *:[v16i8] } XMM0:{ *:[v16i8] }, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:{ *:[v16i8] }:$src1) - Complexity = 25
                  // Dst: (PBLENDVBrm0:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*496044*/      0, /*End of Scope*/
/*496045*/    /*Scope*/ 5|128,1/*133*/, /*->496180*/
/*496047*/      OPC_RecordChild1, // #1 = $src2
/*496048*/      OPC_RecordChild2, // #2 = $src1
/*496049*/      OPC_SwitchType /*6 cases */, 28, MVT::v16i8,// ->496080
/*496052*/        OPC_Scope, 11, /*->496065*/ // 2 children in Scope
/*496054*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*496056*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPBLENDVBrr), 0,
                        MVT::v16i8, 3/*#Ops*/, 2, 1, 0, 
                    // Src: (X86Blendv:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src3, VR128:{ *:[v16i8] }:$src2, VR128:{ *:[v16i8] }:$src1) - Complexity = 3
                    // Dst: (VPBLENDVBrr:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2, VR128:{ *:[v16i8] }:$src3)
/*496065*/        /*Scope*/ 13, /*->496079*/
/*496066*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*496068*/          OPC_EmitCopyToReg, 0, X86::XMM0,
/*496071*/          OPC_MorphNodeTo1, TARGET_VAL(X86::PBLENDVBrr0), 0|OPFL_GlueInput,
                        MVT::v16i8, 2/*#Ops*/, 2, 1, 
                    // Src: (X86Blendv:{ *:[v16i8] } XMM0:{ *:[v16i8] }, VR128:{ *:[v16i8] }:$src2, VR128:{ *:[v16i8] }:$src1) - Complexity = 3
                    // Dst: (PBLENDVBrr0:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, VR128:{ *:[v16i8] }:$src2)
/*496079*/        0, /*End of Scope*/
/*496080*/      /*SwitchType*/ 11, MVT::v32i8,// ->496093
/*496082*/        OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/*496084*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPBLENDVBYrr), 0,
                      MVT::v32i8, 3/*#Ops*/, 2, 1, 0, 
                  // Src: (X86Blendv:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src3, VR256:{ *:[v32i8] }:$src2, VR256:{ *:[v32i8] }:$src1) - Complexity = 3
                  // Dst: (VPBLENDVBYrr:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, VR256:{ *:[v32i8] }:$src2, VR256:{ *:[v32i8] }:$src3)
/*496093*/      /*SwitchType*/ 28, MVT::v4i32,// ->496123
/*496095*/        OPC_Scope, 11, /*->496108*/ // 2 children in Scope
/*496097*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*496099*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDVPSrr), 0,
                        MVT::v4i32, 3/*#Ops*/, 2, 1, 0, 
                    // Src: (X86Blendv:{ *:[v4i32] } VR128:{ *:[v4i32] }:$mask, VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 3
                    // Dst: (VBLENDVPSrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src2, VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$mask)
/*496108*/        /*Scope*/ 13, /*->496122*/
/*496109*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*496111*/          OPC_EmitCopyToReg, 0, X86::XMM0,
/*496114*/          OPC_MorphNodeTo1, TARGET_VAL(X86::BLENDVPSrr0), 0|OPFL_GlueInput,
                        MVT::v4i32, 2/*#Ops*/, 2, 1, 
                    // Src: (X86Blendv:{ *:[v4i32] } XMM0:{ *:[v4i32] }, VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 3
                    // Dst: (BLENDVPSrr0:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src2, VR128:{ *:[v4i32] }:$src1)
/*496122*/        0, /*End of Scope*/
/*496123*/      /*SwitchType*/ 28, MVT::v2i64,// ->496153
/*496125*/        OPC_Scope, 11, /*->496138*/ // 2 children in Scope
/*496127*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*496129*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDVPDrr), 0,
                        MVT::v2i64, 3/*#Ops*/, 2, 1, 0, 
                    // Src: (X86Blendv:{ *:[v2i64] } VR128:{ *:[v2i64] }:$mask, VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2) - Complexity = 3
                    // Dst: (VBLENDVPDrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src2, VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$mask)
/*496138*/        /*Scope*/ 13, /*->496152*/
/*496139*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*496141*/          OPC_EmitCopyToReg, 0, X86::XMM0,
/*496144*/          OPC_MorphNodeTo1, TARGET_VAL(X86::BLENDVPDrr0), 0|OPFL_GlueInput,
                        MVT::v2i64, 2/*#Ops*/, 2, 1, 
                    // Src: (X86Blendv:{ *:[v2i64] } XMM0:{ *:[v2i64] }, VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2) - Complexity = 3
                    // Dst: (BLENDVPDrr0:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src2, VR128:{ *:[v2i64] }:$src1)
/*496152*/        0, /*End of Scope*/
/*496153*/      /*SwitchType*/ 11, MVT::v8i32,// ->496166
/*496155*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*496157*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDVPSYrr), 0,
                      MVT::v8i32, 3/*#Ops*/, 2, 1, 0, 
                  // Src: (X86Blendv:{ *:[v8i32] } VR256:{ *:[v8i32] }:$mask, VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2) - Complexity = 3
                  // Dst: (VBLENDVPSYrr:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src2, VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$mask)
/*496166*/      /*SwitchType*/ 11, MVT::v4i64,// ->496179
/*496168*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*496170*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDVPDYrr), 0,
                      MVT::v4i64, 3/*#Ops*/, 2, 1, 0, 
                  // Src: (X86Blendv:{ *:[v4i64] } VR256:{ *:[v4i64] }:$mask, VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2) - Complexity = 3
                  // Dst: (VBLENDVPDYrr:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src2, VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$mask)
/*496179*/      0, // EndSwitchType
/*496180*/    /*Scope*/ 28|128,1/*156*/, /*->496338*/
/*496182*/      OPC_MoveChild1,
/*496183*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*496186*/      OPC_RecordMemRef,
/*496187*/      OPC_RecordNode, // #1 = 'ld' chained node
/*496188*/      OPC_CheckFoldableChainNode,
/*496189*/      OPC_RecordChild1, // #2 = $src2
/*496190*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*496192*/      OPC_CheckPredicate, 9, // Predicate_load
/*496194*/      OPC_Scope, 88, /*->496284*/ // 2 children in Scope
/*496196*/        OPC_MoveParent,
/*496197*/        OPC_RecordChild2, // #3 = $src1
/*496198*/        OPC_SwitchType /*4 cases */, 19, MVT::v2f64,// ->496220
/*496201*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*496203*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*496206*/          OPC_EmitMergeInputChains1_1,
/*496207*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDVPDrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 0, 
                    // Src: (X86Blendv:{ *:[v2f64] } VR128:{ *:[v2i64] }:$src3, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v2f64] }:$src1) - Complexity = 25
                    // Dst: (VBLENDVPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v2i64] }:$src3)
/*496220*/        /*SwitchType*/ 19, MVT::v4f64,// ->496241
/*496222*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*496224*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*496227*/          OPC_EmitMergeInputChains1_1,
/*496228*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDVPDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 0, 
                    // Src: (X86Blendv:{ *:[v4f64] } VR256:{ *:[v4i64] }:$src3, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v4f64] }:$src1) - Complexity = 25
                    // Dst: (VBLENDVPDYrm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v4i64] }:$src3)
/*496241*/        /*SwitchType*/ 19, MVT::v4f32,// ->496262
/*496243*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*496245*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*496248*/          OPC_EmitMergeInputChains1_1,
/*496249*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDVPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 0, 
                    // Src: (X86Blendv:{ *:[v4f32] } VR128:{ *:[v4i32] }:$src3, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v4f32] }:$src1) - Complexity = 25
                    // Dst: (VBLENDVPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v4i32] }:$src3)
/*496262*/        /*SwitchType*/ 19, MVT::v8f32,// ->496283
/*496264*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*496266*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*496269*/          OPC_EmitMergeInputChains1_1,
/*496270*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDVPSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 7/*#Ops*/, 3, 4, 5, 6, 7, 8, 0, 
                    // Src: (X86Blendv:{ *:[v8f32] } VR256:{ *:[v8i32] }:$src3, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v8f32] }:$src1) - Complexity = 25
                    // Dst: (VBLENDVPSYrm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v8i32] }:$src3)
/*496283*/        0, // EndSwitchType
/*496284*/      /*Scope*/ 52, /*->496337*/
/*496285*/        OPC_CheckPredicate, 39, // Predicate_memop
/*496287*/        OPC_MoveParent,
/*496288*/        OPC_RecordChild2, // #3 = $src1
/*496289*/        OPC_SwitchType /*2 cases */, 21, MVT::v2f64,// ->496313
/*496292*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*496294*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*496297*/          OPC_EmitMergeInputChains1_1,
/*496298*/          OPC_EmitCopyToReg, 0, X86::XMM0,
/*496301*/          OPC_MorphNodeTo1, TARGET_VAL(X86::BLENDVPDrm0), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        MVT::v2f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Blendv:{ *:[v2f64] } XMM0:{ *:[v2i64] }, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:{ *:[v2f64] }:$src1) - Complexity = 25
                    // Dst: (BLENDVPDrm0:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*496313*/        /*SwitchType*/ 21, MVT::v4f32,// ->496336
/*496315*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*496317*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*496320*/          OPC_EmitMergeInputChains1_1,
/*496321*/          OPC_EmitCopyToReg, 0, X86::XMM0,
/*496324*/          OPC_MorphNodeTo1, TARGET_VAL(X86::BLENDVPSrm0), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                        MVT::v4f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86Blendv:{ *:[v4f32] } XMM0:{ *:[v4i32] }, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:{ *:[v4f32] }:$src1) - Complexity = 25
                    // Dst: (BLENDVPSrm0:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*496336*/        0, // EndSwitchType
/*496337*/      0, /*End of Scope*/
/*496338*/    /*Scope*/ 90, /*->496429*/
/*496339*/      OPC_RecordChild1, // #1 = $src2
/*496340*/      OPC_RecordChild2, // #2 = $src1
/*496341*/      OPC_SwitchType /*4 cases */, 28, MVT::v2f64,// ->496372
/*496344*/        OPC_Scope, 11, /*->496357*/ // 2 children in Scope
/*496346*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*496348*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDVPDrr), 0,
                        MVT::v2f64, 3/*#Ops*/, 2, 1, 0, 
                    // Src: (X86Blendv:{ *:[v2f64] } VR128:{ *:[v2i64] }:$src3, VR128:{ *:[v2f64] }:$src2, VR128:{ *:[v2f64] }:$src1) - Complexity = 3
                    // Dst: (VBLENDVPDrr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, VR128:{ *:[v2i64] }:$src3)
/*496357*/        /*Scope*/ 13, /*->496371*/
/*496358*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*496360*/          OPC_EmitCopyToReg, 0, X86::XMM0,
/*496363*/          OPC_MorphNodeTo1, TARGET_VAL(X86::BLENDVPDrr0), 0|OPFL_GlueInput,
                        MVT::v2f64, 2/*#Ops*/, 2, 1, 
                    // Src: (X86Blendv:{ *:[v2f64] } XMM0:{ *:[v2i64] }, VR128:{ *:[v2f64] }:$src2, VR128:{ *:[v2f64] }:$src1) - Complexity = 3
                    // Dst: (BLENDVPDrr0:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2)
/*496371*/        0, /*End of Scope*/
/*496372*/      /*SwitchType*/ 11, MVT::v4f64,// ->496385
/*496374*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*496376*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDVPDYrr), 0,
                      MVT::v4f64, 3/*#Ops*/, 2, 1, 0, 
                  // Src: (X86Blendv:{ *:[v4f64] } VR256:{ *:[v4i64] }:$src3, VR256:{ *:[v4f64] }:$src2, VR256:{ *:[v4f64] }:$src1) - Complexity = 3
                  // Dst: (VBLENDVPDYrr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, VR256:{ *:[v4i64] }:$src3)
/*496385*/      /*SwitchType*/ 28, MVT::v4f32,// ->496415
/*496387*/        OPC_Scope, 11, /*->496400*/ // 2 children in Scope
/*496389*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*496391*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDVPSrr), 0,
                        MVT::v4f32, 3/*#Ops*/, 2, 1, 0, 
                    // Src: (X86Blendv:{ *:[v4f32] } VR128:{ *:[v4i32] }:$src3, VR128:{ *:[v4f32] }:$src2, VR128:{ *:[v4f32] }:$src1) - Complexity = 3
                    // Dst: (VBLENDVPSrr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, VR128:{ *:[v4i32] }:$src3)
/*496400*/        /*Scope*/ 13, /*->496414*/
/*496401*/          OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*496403*/          OPC_EmitCopyToReg, 0, X86::XMM0,
/*496406*/          OPC_MorphNodeTo1, TARGET_VAL(X86::BLENDVPSrr0), 0|OPFL_GlueInput,
                        MVT::v4f32, 2/*#Ops*/, 2, 1, 
                    // Src: (X86Blendv:{ *:[v4f32] } XMM0:{ *:[v4i32] }, VR128:{ *:[v4f32] }:$src2, VR128:{ *:[v4f32] }:$src1) - Complexity = 3
                    // Dst: (BLENDVPSrr0:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2)
/*496414*/        0, /*End of Scope*/
/*496415*/      /*SwitchType*/ 11, MVT::v8f32,// ->496428
/*496417*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*496419*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VBLENDVPSYrr), 0,
                      MVT::v8f32, 3/*#Ops*/, 2, 1, 0, 
                  // Src: (X86Blendv:{ *:[v8f32] } VR256:{ *:[v8i32] }:$src3, VR256:{ *:[v8f32] }:$src2, VR256:{ *:[v8f32] }:$src1) - Complexity = 3
                  // Dst: (VBLENDVPSYrr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, VR256:{ *:[v8i32] }:$src3)
/*496428*/      0, // EndSwitchType
/*496429*/    0, /*End of Scope*/
/*496430*/  /*SwitchOpcode*/ 126|128,11/*1534*/, TARGET_VAL(X86ISD::SUBV_BROADCAST),// ->497968
/*496434*/    OPC_Scope, 101|128,2/*357*/, /*->496794*/ // 4 children in Scope
/*496437*/      OPC_MoveChild0,
/*496438*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*496441*/      OPC_RecordMemRef,
/*496442*/      OPC_RecordNode, // #0 = 'ld' chained node
/*496443*/      OPC_RecordChild1, // #1 = $src
/*496444*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*496446*/      OPC_CheckPredicate, 9, // Predicate_load
/*496448*/      OPC_Scope, 79, /*->496529*/ // 10 children in Scope
/*496450*/        OPC_MoveParent,
/*496451*/        OPC_SwitchType /*4 cases */, 17, MVT::v4i64,// ->496471
/*496454*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*496456*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*496459*/          OPC_EmitMergeInputChains1_0,
/*496460*/          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>>) - Complexity = 25
                    // Dst: (VBROADCASTF128:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*496471*/        /*SwitchType*/ 17, MVT::v8i32,// ->496490
/*496473*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*496475*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*496478*/          OPC_EmitMergeInputChains1_0,
/*496479*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTF128), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86SubVBroadcast:{ *:[v8i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VBROADCASTF128:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*496490*/        /*SwitchType*/ 17, MVT::v16i16,// ->496509
/*496492*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*496494*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*496497*/          OPC_EmitMergeInputChains1_0,
/*496498*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTF128), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86SubVBroadcast:{ *:[v16i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VBROADCASTF128:{ *:[v16i16] } addr:{ *:[iPTR] }:$src)
/*496509*/        /*SwitchType*/ 17, MVT::v32i8,// ->496528
/*496511*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*496513*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*496516*/          OPC_EmitMergeInputChains1_0,
/*496517*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTF128), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86SubVBroadcast:{ *:[v32i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VBROADCASTF128:{ *:[v32i8] } addr:{ *:[iPTR] }:$src)
/*496528*/        0, // EndSwitchType
/*496529*/      /*Scope*/ 22, /*->496552*/
/*496530*/        OPC_CheckType, MVT::v4i32,
/*496532*/        OPC_MoveParent,
/*496533*/        OPC_CheckType, MVT::v16i32,
/*496535*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*496537*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*496540*/        OPC_EmitMergeInputChains1_0,
/*496541*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTI32X4rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86SubVBroadcast:{ *:[v16i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VBROADCASTI32X4rm:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)
/*496552*/      /*Scope*/ 22, /*->496575*/
/*496553*/        OPC_CheckType, MVT::v4i64,
/*496555*/        OPC_MoveParent,
/*496556*/        OPC_CheckType, MVT::v8i64,
/*496558*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*496560*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*496563*/        OPC_EmitMergeInputChains1_0,
/*496564*/        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>>) - Complexity = 25
                  // Dst: (VBROADCASTI64X4rm:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*496575*/      /*Scope*/ 22, /*->496598*/
/*496576*/        OPC_CheckType, MVT::v8i32,
/*496578*/        OPC_MoveParent,
/*496579*/        OPC_CheckType, MVT::v16i32,
/*496581*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*496583*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*496586*/        OPC_EmitMergeInputChains1_0,
/*496587*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTI64X4rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86SubVBroadcast:{ *:[v16i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VBROADCASTI64X4rm:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)
/*496598*/      /*Scope*/ 22, /*->496621*/
/*496599*/        OPC_CheckType, MVT::v16i16,
/*496601*/        OPC_MoveParent,
/*496602*/        OPC_CheckType, MVT::v32i16,
/*496604*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*496606*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*496609*/        OPC_EmitMergeInputChains1_0,
/*496610*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTI64X4rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v32i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86SubVBroadcast:{ *:[v32i16] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VBROADCASTI64X4rm:{ *:[v32i16] } addr:{ *:[iPTR] }:$src)
/*496621*/      /*Scope*/ 22, /*->496644*/
/*496622*/        OPC_CheckType, MVT::v32i8,
/*496624*/        OPC_MoveParent,
/*496625*/        OPC_CheckType, MVT::v64i8,
/*496627*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*496629*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*496632*/        OPC_EmitMergeInputChains1_0,
/*496633*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTI64X4rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v64i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86SubVBroadcast:{ *:[v64i8] } (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VBROADCASTI64X4rm:{ *:[v64i8] } addr:{ *:[iPTR] }:$src)
/*496644*/      /*Scope*/ 22, /*->496667*/
/*496645*/        OPC_CheckType, MVT::v2i64,
/*496647*/        OPC_MoveParent,
/*496648*/        OPC_CheckType, MVT::v8i64,
/*496650*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*496652*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*496655*/        OPC_EmitMergeInputChains1_0,
/*496656*/        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>>) - Complexity = 25
                  // Dst: (VBROADCASTI32X4rm:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*496667*/      /*Scope*/ 22, /*->496690*/
/*496668*/        OPC_CheckType, MVT::v8i16,
/*496670*/        OPC_MoveParent,
/*496671*/        OPC_CheckType, MVT::v32i16,
/*496673*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*496675*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*496678*/        OPC_EmitMergeInputChains1_0,
/*496679*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTI32X4rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v32i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86SubVBroadcast:{ *:[v32i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VBROADCASTI32X4rm:{ *:[v32i16] } addr:{ *:[iPTR] }:$src)
/*496690*/      /*Scope*/ 22, /*->496713*/
/*496691*/        OPC_CheckType, MVT::v16i8,
/*496693*/        OPC_MoveParent,
/*496694*/        OPC_CheckType, MVT::v64i8,
/*496696*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*496698*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*496701*/        OPC_EmitMergeInputChains1_0,
/*496702*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTI32X4rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v64i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86SubVBroadcast:{ *:[v64i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VBROADCASTI32X4rm:{ *:[v64i8] } addr:{ *:[iPTR] }:$src)
/*496713*/      /*Scope*/ 79, /*->496793*/
/*496714*/        OPC_MoveParent,
/*496715*/        OPC_SwitchType /*4 cases */, 17, MVT::v8i32,// ->496735
/*496718*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*496720*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*496723*/          OPC_EmitMergeInputChains1_0,
/*496724*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTI32X4Z256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86SubVBroadcast:{ *:[v8i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VBROADCASTI32X4Z256rm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*496735*/        /*SwitchType*/ 17, MVT::v4i64,// ->496754
/*496737*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*496739*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*496742*/          OPC_EmitMergeInputChains1_0,
/*496743*/          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>>) - Complexity = 25
                    // Dst: (VBROADCASTI32X4Z256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*496754*/        /*SwitchType*/ 17, MVT::v16i16,// ->496773
/*496756*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*496758*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*496761*/          OPC_EmitMergeInputChains1_0,
/*496762*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTI32X4Z256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86SubVBroadcast:{ *:[v16i16] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VBROADCASTI32X4Z256rm:{ *:[v16i16] } addr:{ *:[iPTR] }:$src)
/*496773*/        /*SwitchType*/ 17, MVT::v32i8,// ->496792
/*496775*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*496777*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*496780*/          OPC_EmitMergeInputChains1_0,
/*496781*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTI32X4Z256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86SubVBroadcast:{ *:[v32i8] } (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VBROADCASTI32X4Z256rm:{ *:[v32i8] } addr:{ *:[iPTR] }:$src)
/*496792*/        0, // EndSwitchType
/*496793*/      0, /*End of Scope*/
/*496794*/    /*Scope*/ 11|128,5/*651*/, /*->497447*/
/*496796*/      OPC_RecordChild0, // #0 = $src
/*496797*/      OPC_SwitchType /*8 cases */, 68, MVT::v4i64,// ->496868
/*496800*/        OPC_Scope, 32, /*->496834*/ // 2 children in Scope
/*496802*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*496804*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i64, 0/*#Ops*/,  // Results = #1
/*496810*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*496813*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v4i64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*496822*/          OPC_EmitInteger, MVT::i8, 1, 
/*496825*/          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] })
/*496834*/        /*Scope*/ 32, /*->496867*/
/*496835*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*496837*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4i64, 0/*#Ops*/,  // Results = #1
/*496843*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*496846*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v4i64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*496855*/          OPC_EmitInteger, MVT::i8, 1, 
/*496858*/          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] })
/*496867*/        0, /*End of Scope*/
/*496868*/      /*SwitchType*/ 68, MVT::v8i32,// ->496938
/*496870*/        OPC_Scope, 32, /*->496904*/ // 2 children in Scope
/*496872*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*496874*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i32, 0/*#Ops*/,  // Results = #1
/*496880*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*496883*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*496892*/          OPC_EmitInteger, MVT::i8, 1, 
/*496895*/          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] })
/*496904*/        /*Scope*/ 32, /*->496937*/
/*496905*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*496907*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i32, 0/*#Ops*/,  // Results = #1
/*496913*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*496916*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*496925*/          OPC_EmitInteger, MVT::i8, 1, 
/*496928*/          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] })
/*496937*/        0, /*End of Scope*/
/*496938*/      /*SwitchType*/ 68, MVT::v16i16,// ->497008
/*496940*/        OPC_Scope, 32, /*->496974*/ // 2 children in Scope
/*496942*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*496944*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i16, 0/*#Ops*/,  // Results = #1
/*496950*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*496953*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i16, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*496962*/          OPC_EmitInteger, MVT::i8, 1, 
/*496965*/          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] })
/*496974*/        /*Scope*/ 32, /*->497007*/
/*496975*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*496977*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i16, 0/*#Ops*/,  // Results = #1
/*496983*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*496986*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i16, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*496995*/          OPC_EmitInteger, MVT::i8, 1, 
/*496998*/          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] })
/*497007*/        0, /*End of Scope*/
/*497008*/      /*SwitchType*/ 68, MVT::v32i8,// ->497078
/*497010*/        OPC_Scope, 32, /*->497044*/ // 2 children in Scope
/*497012*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*497014*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i8, 0/*#Ops*/,  // Results = #1
/*497020*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*497023*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i8, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*497032*/          OPC_EmitInteger, MVT::i8, 1, 
/*497035*/          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] })
/*497044*/        /*Scope*/ 32, /*->497077*/
/*497045*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*497047*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i8, 0/*#Ops*/,  // Results = #1
/*497053*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*497056*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i8, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*497065*/          OPC_EmitInteger, MVT::i8, 1, 
/*497068*/          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] })
/*497077*/        0, /*End of Scope*/
/*497078*/      /*SwitchType*/ 90, MVT::v8i64,// ->497170
/*497080*/        OPC_Scope, 34, /*->497116*/ // 2 children in Scope
/*497082*/          OPC_CheckChild0Type, MVT::v4i64,
/*497084*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*497086*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #1
/*497092*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*497095*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*497104*/          OPC_EmitInteger, MVT::i8, 1, 
/*497107*/          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] })
/*497116*/        /*Scope*/ 52, /*->497169*/
/*497117*/          OPC_CheckChild0Type, MVT::v2i64,
/*497119*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*497121*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #1
/*497127*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*497130*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*497139*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #4
/*497145*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*497148*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/*497157*/          OPC_EmitInteger, MVT::i8, 0, 
/*497160*/          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] })
/*497169*/        0, /*End of Scope*/
/*497170*/      /*SwitchType*/ 90, MVT::v16i32,// ->497262
/*497172*/        OPC_Scope, 34, /*->497208*/ // 2 children in Scope
/*497174*/          OPC_CheckChild0Type, MVT::v8i32,
/*497176*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*497178*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #1
/*497184*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*497187*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*497196*/          OPC_EmitInteger, MVT::i8, 1, 
/*497199*/          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] })
/*497208*/        /*Scope*/ 52, /*->497261*/
/*497209*/          OPC_CheckChild0Type, MVT::v4i32,
/*497211*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*497213*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #1
/*497219*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*497222*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*497231*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16i32, 0/*#Ops*/,  // Results = #4
/*497237*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*497240*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16i32, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/*497249*/          OPC_EmitInteger, MVT::i8, 0, 
/*497252*/          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] })
/*497261*/        0, /*End of Scope*/
/*497262*/      /*SwitchType*/ 90, MVT::v32i16,// ->497354
/*497264*/        OPC_Scope, 34, /*->497300*/ // 2 children in Scope
/*497266*/          OPC_CheckChild0Type, MVT::v16i16,
/*497268*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*497270*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #1
/*497276*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*497279*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*497288*/          OPC_EmitInteger, MVT::i8, 1, 
/*497291*/          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] })
/*497300*/        /*Scope*/ 52, /*->497353*/
/*497301*/          OPC_CheckChild0Type, MVT::v8i16,
/*497303*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*497305*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #1
/*497311*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*497314*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*497323*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #4
/*497329*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*497332*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/*497341*/          OPC_EmitInteger, MVT::i8, 0, 
/*497344*/          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] })
/*497353*/        0, /*End of Scope*/
/*497354*/      /*SwitchType*/ 90, MVT::v64i8,// ->497446
/*497356*/        OPC_Scope, 34, /*->497392*/ // 2 children in Scope
/*497358*/          OPC_CheckChild0Type, MVT::v32i8,
/*497360*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*497362*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #1
/*497368*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*497371*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v64i8, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*497380*/          OPC_EmitInteger, MVT::i8, 1, 
/*497383*/          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] })
/*497392*/        /*Scope*/ 52, /*->497445*/
/*497393*/          OPC_CheckChild0Type, MVT::v16i8,
/*497395*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*497397*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #1
/*497403*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*497406*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v64i8, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*497415*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v64i8, 0/*#Ops*/,  // Results = #4
/*497421*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*497424*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v64i8, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/*497433*/          OPC_EmitInteger, MVT::i8, 0, 
/*497436*/          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] })
/*497445*/        0, /*End of Scope*/
/*497446*/      0, // EndSwitchType
/*497447*/    /*Scope*/ 61|128,1/*189*/, /*->497638*/
/*497449*/      OPC_MoveChild0,
/*497450*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*497453*/      OPC_RecordMemRef,
/*497454*/      OPC_RecordNode, // #0 = 'ld' chained node
/*497455*/      OPC_RecordChild1, // #1 = $src
/*497456*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*497458*/      OPC_CheckPredicate, 9, // Predicate_load
/*497460*/      OPC_Scope, 41, /*->497503*/ // 6 children in Scope
/*497462*/        OPC_MoveParent,
/*497463*/        OPC_SwitchType /*2 cases */, 17, MVT::v4f64,// ->497483
/*497466*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*497468*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*497471*/          OPC_EmitMergeInputChains1_0,
/*497472*/          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>>) - Complexity = 25
                    // Dst: (VBROADCASTF128:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*497483*/        /*SwitchType*/ 17, MVT::v8f32,// ->497502
/*497485*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*497487*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*497490*/          OPC_EmitMergeInputChains1_0,
/*497491*/          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>>) - Complexity = 25
                    // Dst: (VBROADCASTF128:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*497502*/        0, // EndSwitchType
/*497503*/      /*Scope*/ 22, /*->497526*/
/*497504*/        OPC_CheckType, MVT::v4f32,
/*497506*/        OPC_MoveParent,
/*497507*/        OPC_CheckType, MVT::v16f32,
/*497509*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*497511*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*497514*/        OPC_EmitMergeInputChains1_0,
/*497515*/        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>>) - Complexity = 25
                  // Dst: (VBROADCASTF32X4rm:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)
/*497526*/      /*Scope*/ 22, /*->497549*/
/*497527*/        OPC_CheckType, MVT::v4f64,
/*497529*/        OPC_MoveParent,
/*497530*/        OPC_CheckType, MVT::v8f64,
/*497532*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*497534*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*497537*/        OPC_EmitMergeInputChains1_0,
/*497538*/        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>>) - Complexity = 25
                  // Dst: (VBROADCASTF64X4rm:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*497549*/      /*Scope*/ 22, /*->497572*/
/*497550*/        OPC_CheckType, MVT::v8f32,
/*497552*/        OPC_MoveParent,
/*497553*/        OPC_CheckType, MVT::v16f32,
/*497555*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*497557*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*497560*/        OPC_EmitMergeInputChains1_0,
/*497561*/        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>>) - Complexity = 25
                  // Dst: (VBROADCASTF64X4rm:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)
/*497572*/      /*Scope*/ 22, /*->497595*/
/*497573*/        OPC_CheckType, MVT::v2f64,
/*497575*/        OPC_MoveParent,
/*497576*/        OPC_CheckType, MVT::v8f64,
/*497578*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*497580*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*497583*/        OPC_EmitMergeInputChains1_0,
/*497584*/        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>>) - Complexity = 25
                  // Dst: (VBROADCASTF32X4rm:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*497595*/      /*Scope*/ 41, /*->497637*/
/*497596*/        OPC_MoveParent,
/*497597*/        OPC_SwitchType /*2 cases */, 17, MVT::v8f32,// ->497617
/*497600*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*497602*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*497605*/          OPC_EmitMergeInputChains1_0,
/*497606*/          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>>) - Complexity = 25
                    // Dst: (VBROADCASTF32X4Z256rm:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*497617*/        /*SwitchType*/ 17, MVT::v4f64,// ->497636
/*497619*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*497621*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*497624*/          OPC_EmitMergeInputChains1_0,
/*497625*/          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>>) - Complexity = 25
                    // Dst: (VBROADCASTF32X4Z256rm:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*497636*/        0, // EndSwitchType
/*497637*/      0, /*End of Scope*/
/*497638*/    /*Scope*/ 71|128,2/*327*/, /*->497967*/
/*497640*/      OPC_RecordChild0, // #0 = $src
/*497641*/      OPC_SwitchType /*4 cases */, 68, MVT::v4f64,// ->497712
/*497644*/        OPC_Scope, 32, /*->497678*/ // 2 children in Scope
/*497646*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*497648*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4f64, 0/*#Ops*/,  // Results = #1
/*497654*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*497657*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v4f64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*497666*/          OPC_EmitInteger, MVT::i8, 1, 
/*497669*/          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] })
/*497678*/        /*Scope*/ 32, /*->497711*/
/*497679*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*497681*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v4f64, 0/*#Ops*/,  // Results = #1
/*497687*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*497690*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v4f64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*497699*/          OPC_EmitInteger, MVT::i8, 1, 
/*497702*/          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] })
/*497711*/        0, /*End of Scope*/
/*497712*/      /*SwitchType*/ 68, MVT::v8f32,// ->497782
/*497714*/        OPC_Scope, 32, /*->497748*/ // 2 children in Scope
/*497716*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*497718*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8f32, 0/*#Ops*/,  // Results = #1
/*497724*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*497727*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8f32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*497736*/          OPC_EmitInteger, MVT::i8, 1, 
/*497739*/          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] })
/*497748*/        /*Scope*/ 32, /*->497781*/
/*497749*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*497751*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8f32, 0/*#Ops*/,  // Results = #1
/*497757*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*497760*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8f32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*497769*/          OPC_EmitInteger, MVT::i8, 1, 
/*497772*/          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] })
/*497781*/        0, /*End of Scope*/
/*497782*/      /*SwitchType*/ 90, MVT::v8f64,// ->497874
/*497784*/        OPC_Scope, 34, /*->497820*/ // 2 children in Scope
/*497786*/          OPC_CheckChild0Type, MVT::v4f64,
/*497788*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*497790*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8f64, 0/*#Ops*/,  // Results = #1
/*497796*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*497799*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8f64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*497808*/          OPC_EmitInteger, MVT::i8, 1, 
/*497811*/          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] })
/*497820*/        /*Scope*/ 52, /*->497873*/
/*497821*/          OPC_CheckChild0Type, MVT::v2f64,
/*497823*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*497825*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8f64, 0/*#Ops*/,  // Results = #1
/*497831*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*497834*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8f64, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*497843*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8f64, 0/*#Ops*/,  // Results = #4
/*497849*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*497852*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8f64, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/*497861*/          OPC_EmitInteger, MVT::i8, 0, 
/*497864*/          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] })
/*497873*/        0, /*End of Scope*/
/*497874*/      /*SwitchType*/ 90, MVT::v16f32,// ->497966
/*497876*/        OPC_Scope, 34, /*->497912*/ // 2 children in Scope
/*497878*/          OPC_CheckChild0Type, MVT::v8f32,
/*497880*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*497882*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16f32, 0/*#Ops*/,  // Results = #1
/*497888*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*497891*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16f32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*497900*/          OPC_EmitInteger, MVT::i8, 1, 
/*497903*/          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] })
/*497912*/        /*Scope*/ 52, /*->497965*/
/*497913*/          OPC_CheckChild0Type, MVT::v4f32,
/*497915*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*497917*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16f32, 0/*#Ops*/,  // Results = #1
/*497923*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*497926*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16f32, 3/*#Ops*/, 1, 0, 2,  // Results = #3
/*497935*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v16f32, 0/*#Ops*/,  // Results = #4
/*497941*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*497944*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v16f32, 3/*#Ops*/, 4, 0, 5,  // Results = #6
/*497953*/          OPC_EmitInteger, MVT::i8, 0, 
/*497956*/          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] })
/*497965*/        0, /*End of Scope*/
/*497966*/      0, // EndSwitchType
/*497967*/    0, /*End of Scope*/
/*497968*/  /*SwitchOpcode*/ 5|128,6/*773*/, TARGET_VAL(X86ISD::VPERMV),// ->498745
/*497972*/    OPC_RecordChild0, // #0 = $src1
/*497973*/    OPC_Scope, 85|128,2/*341*/, /*->498317*/ // 4 children in Scope
/*497976*/      OPC_MoveChild1,
/*497977*/      OPC_SwitchOpcode /*2 cases */, 105|128,1/*233*/, TARGET_VAL(ISD::LOAD),// ->498215
/*497982*/        OPC_RecordMemRef,
/*497983*/        OPC_RecordNode, // #1 = 'ld' chained node
/*497984*/        OPC_CheckFoldableChainNode,
/*497985*/        OPC_RecordChild1, // #2 = $src2
/*497986*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*497988*/        OPC_CheckPredicate, 9, // Predicate_load
/*497990*/        OPC_MoveParent,
/*497991*/        OPC_SwitchType /*10 cases */, 40, MVT::v8i32,// ->498034
/*497994*/          OPC_Scope, 18, /*->498014*/ // 2 children in Scope
/*497996*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*497998*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*498001*/            OPC_EmitMergeInputChains1_1,
/*498002*/            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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPERMDYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*498014*/          /*Scope*/ 18, /*->498033*/
/*498015*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*498017*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*498020*/            OPC_EmitMergeInputChains1_1,
/*498021*/            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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPERMDZ256rm:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*498033*/          0, /*End of Scope*/
/*498034*/        /*SwitchType*/ 18, MVT::v32i16,// ->498054
/*498036*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*498038*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*498041*/          OPC_EmitMergeInputChains1_1,
/*498042*/          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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPERMWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*498054*/        /*SwitchType*/ 18, MVT::v16i16,// ->498074
/*498056*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*498058*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*498061*/          OPC_EmitMergeInputChains1_1,
/*498062*/          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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPERMWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*498074*/        /*SwitchType*/ 18, MVT::v8i16,// ->498094
/*498076*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*498078*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*498081*/          OPC_EmitMergeInputChains1_1,
/*498082*/          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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPERMWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*498094*/        /*SwitchType*/ 18, MVT::v64i8,// ->498114
/*498096*/          OPC_CheckPatternPredicate, 187, // (Subtarget->hasVBMI())
/*498098*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*498101*/          OPC_EmitMergeInputChains1_1,
/*498102*/          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, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPERMBZrm:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*498114*/        /*SwitchType*/ 18, MVT::v32i8,// ->498134
/*498116*/          OPC_CheckPatternPredicate, 181, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*498118*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*498121*/          OPC_EmitMergeInputChains1_1,
/*498122*/          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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPERMBZ256rm:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*498134*/        /*SwitchType*/ 18, MVT::v16i8,// ->498154
/*498136*/          OPC_CheckPatternPredicate, 181, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*498138*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*498141*/          OPC_EmitMergeInputChains1_1,
/*498142*/          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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPERMBZ128rm:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*498154*/        /*SwitchType*/ 18, MVT::v16i32,// ->498174
/*498156*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*498158*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*498161*/          OPC_EmitMergeInputChains1_1,
/*498162*/          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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPERMDZrm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*498174*/        /*SwitchType*/ 18, MVT::v8i64,// ->498194
/*498176*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*498178*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*498181*/          OPC_EmitMergeInputChains1_1,
/*498182*/          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>>) - Complexity = 25
                    // Dst: (VPERMQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*498194*/        /*SwitchType*/ 18, MVT::v4i64,// ->498214
/*498196*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*498198*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*498201*/          OPC_EmitMergeInputChains1_1,
/*498202*/          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>>) - Complexity = 25
                    // Dst: (VPERMQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*498214*/        0, // EndSwitchType
/*498215*/      /*SwitchOpcode*/ 98, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->498316
/*498218*/        OPC_RecordMemRef,
/*498219*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*498220*/        OPC_CheckFoldableChainNode,
/*498221*/        OPC_RecordChild1, // #2 = $src2
/*498222*/        OPC_Scope, 45, /*->498269*/ // 2 children in Scope
/*498224*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*498226*/          OPC_MoveParent,
/*498227*/          OPC_SwitchType /*2 cases */, 18, MVT::v16i32,// ->498248
/*498230*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*498232*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*498235*/            OPC_EmitMergeInputChains1_1,
/*498236*/            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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPERMDZrmb:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*498248*/          /*SwitchType*/ 18, MVT::v8i32,// ->498268
/*498250*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*498252*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*498255*/            OPC_EmitMergeInputChains1_1,
/*498256*/            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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPERMDZ256rmb:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*498268*/          0, // EndSwitchType
/*498269*/        /*Scope*/ 45, /*->498315*/
/*498270*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*498272*/          OPC_MoveParent,
/*498273*/          OPC_SwitchType /*2 cases */, 18, MVT::v8i64,// ->498294
/*498276*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*498278*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*498281*/            OPC_EmitMergeInputChains1_1,
/*498282*/            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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPERMQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*498294*/          /*SwitchType*/ 18, MVT::v4i64,// ->498314
/*498296*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*498298*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*498301*/            OPC_EmitMergeInputChains1_1,
/*498302*/            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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPERMQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*498314*/          0, // EndSwitchType
/*498315*/        0, /*End of Scope*/
/*498316*/      0, // EndSwitchOpcode
/*498317*/    /*Scope*/ 9|128,1/*137*/, /*->498456*/
/*498319*/      OPC_RecordChild1, // #1 = $src2
/*498320*/      OPC_SwitchType /*10 cases */, 24, MVT::v8i32,// ->498347
/*498323*/        OPC_Scope, 10, /*->498335*/ // 2 children in Scope
/*498325*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*498327*/          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)
/*498335*/        /*Scope*/ 10, /*->498346*/
/*498336*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*498338*/          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)
/*498346*/        0, /*End of Scope*/
/*498347*/      /*SwitchType*/ 10, MVT::v32i16,// ->498359
/*498349*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*498351*/        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)
/*498359*/      /*SwitchType*/ 10, MVT::v16i16,// ->498371
/*498361*/        OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*498363*/        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)
/*498371*/      /*SwitchType*/ 10, MVT::v8i16,// ->498383
/*498373*/        OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*498375*/        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)
/*498383*/      /*SwitchType*/ 10, MVT::v64i8,// ->498395
/*498385*/        OPC_CheckPatternPredicate, 187, // (Subtarget->hasVBMI())
/*498387*/        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)
/*498395*/      /*SwitchType*/ 10, MVT::v32i8,// ->498407
/*498397*/        OPC_CheckPatternPredicate, 181, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*498399*/        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)
/*498407*/      /*SwitchType*/ 10, MVT::v16i8,// ->498419
/*498409*/        OPC_CheckPatternPredicate, 181, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*498411*/        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)
/*498419*/      /*SwitchType*/ 10, MVT::v16i32,// ->498431
/*498421*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*498423*/        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)
/*498431*/      /*SwitchType*/ 10, MVT::v8i64,// ->498443
/*498433*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*498435*/        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)
/*498443*/      /*SwitchType*/ 10, MVT::v4i64,// ->498455
/*498445*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*498447*/        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)
/*498455*/      0, // EndSwitchType
/*498456*/    /*Scope*/ 92|128,1/*220*/, /*->498678*/
/*498458*/      OPC_MoveChild1,
/*498459*/      OPC_SwitchOpcode /*2 cases */, 113, TARGET_VAL(ISD::LOAD),// ->498576
/*498463*/        OPC_RecordMemRef,
/*498464*/        OPC_RecordNode, // #1 = 'ld' chained node
/*498465*/        OPC_CheckFoldableChainNode,
/*498466*/        OPC_RecordChild1, // #2 = $src2
/*498467*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*498469*/        OPC_CheckPredicate, 9, // Predicate_load
/*498471*/        OPC_MoveParent,
/*498472*/        OPC_SwitchType /*4 cases */, 40, MVT::v8f32,// ->498515
/*498475*/          OPC_Scope, 18, /*->498495*/ // 2 children in Scope
/*498477*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*498479*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*498482*/            OPC_EmitMergeInputChains1_1,
/*498483*/            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>>) - Complexity = 25
                      // Dst: (VPERMPSYrm:{ *:[v8f32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*498495*/          /*Scope*/ 18, /*->498514*/
/*498496*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*498498*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*498501*/            OPC_EmitMergeInputChains1_1,
/*498502*/            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>>) - Complexity = 25
                      // Dst: (VPERMPSZ256rm:{ *:[v8f32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*498514*/          0, /*End of Scope*/
/*498515*/        /*SwitchType*/ 18, MVT::v16f32,// ->498535
/*498517*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*498519*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*498522*/          OPC_EmitMergeInputChains1_1,
/*498523*/          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>>) - Complexity = 25
                    // Dst: (VPERMPSZrm:{ *:[v16f32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*498535*/        /*SwitchType*/ 18, MVT::v8f64,// ->498555
/*498537*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*498539*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*498542*/          OPC_EmitMergeInputChains1_1,
/*498543*/          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>>) - Complexity = 25
                    // Dst: (VPERMPDZrm:{ *:[v8f64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*498555*/        /*SwitchType*/ 18, MVT::v4f64,// ->498575
/*498557*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*498559*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*498562*/          OPC_EmitMergeInputChains1_1,
/*498563*/          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>>) - Complexity = 25
                    // Dst: (VPERMPDZ256rm:{ *:[v4f64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*498575*/        0, // EndSwitchType
/*498576*/      /*SwitchOpcode*/ 98, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->498677
/*498579*/        OPC_RecordMemRef,
/*498580*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*498581*/        OPC_CheckFoldableChainNode,
/*498582*/        OPC_RecordChild1, // #2 = $src2
/*498583*/        OPC_Scope, 45, /*->498630*/ // 2 children in Scope
/*498585*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*498587*/          OPC_MoveParent,
/*498588*/          OPC_SwitchType /*2 cases */, 18, MVT::v16f32,// ->498609
/*498591*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*498593*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*498596*/            OPC_EmitMergeInputChains1_1,
/*498597*/            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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPERMPSZrmb:{ *:[v16f32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*498609*/          /*SwitchType*/ 18, MVT::v8f32,// ->498629
/*498611*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*498613*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*498616*/            OPC_EmitMergeInputChains1_1,
/*498617*/            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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPERMPSZ256rmb:{ *:[v8f32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*498629*/          0, // EndSwitchType
/*498630*/        /*Scope*/ 45, /*->498676*/
/*498631*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*498633*/          OPC_MoveParent,
/*498634*/          OPC_SwitchType /*2 cases */, 18, MVT::v8f64,// ->498655
/*498637*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*498639*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*498642*/            OPC_EmitMergeInputChains1_1,
/*498643*/            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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPERMPDZrmb:{ *:[v8f64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*498655*/          /*SwitchType*/ 18, MVT::v4f64,// ->498675
/*498657*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*498659*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*498662*/            OPC_EmitMergeInputChains1_1,
/*498663*/            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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPERMPDZ256rmb:{ *:[v4f64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*498675*/          0, // EndSwitchType
/*498676*/        0, /*End of Scope*/
/*498677*/      0, // EndSwitchOpcode
/*498678*/    /*Scope*/ 65, /*->498744*/
/*498679*/      OPC_RecordChild1, // #1 = $src2
/*498680*/      OPC_SwitchType /*4 cases */, 24, MVT::v8f32,// ->498707
/*498683*/        OPC_Scope, 10, /*->498695*/ // 2 children in Scope
/*498685*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*498687*/          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)
/*498695*/        /*Scope*/ 10, /*->498706*/
/*498696*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*498698*/          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)
/*498706*/        0, /*End of Scope*/
/*498707*/      /*SwitchType*/ 10, MVT::v16f32,// ->498719
/*498709*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*498711*/        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)
/*498719*/      /*SwitchType*/ 10, MVT::v8f64,// ->498731
/*498721*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*498723*/        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)
/*498731*/      /*SwitchType*/ 10, MVT::v4f64,// ->498743
/*498733*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*498735*/        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)
/*498743*/      0, // EndSwitchType
/*498744*/    0, /*End of Scope*/
/*498745*/  /*SwitchOpcode*/ 84|128,5/*724*/, TARGET_VAL(X86ISD::VSHLV),// ->499473
/*498749*/    OPC_RecordChild0, // #0 = $src1
/*498750*/    OPC_Scope, 44|128,3/*428*/, /*->499181*/ // 2 children in Scope
/*498753*/      OPC_MoveChild1,
/*498754*/      OPC_SwitchOpcode /*2 cases */, 23|128,2/*279*/, TARGET_VAL(ISD::LOAD),// ->499038
/*498759*/        OPC_RecordMemRef,
/*498760*/        OPC_RecordNode, // #1 = 'ld' chained node
/*498761*/        OPC_CheckFoldableChainNode,
/*498762*/        OPC_RecordChild1, // #2 = $src2
/*498763*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*498765*/        OPC_CheckPredicate, 9, // Predicate_load
/*498767*/        OPC_MoveParent,
/*498768*/        OPC_SwitchType /*9 cases */, 40, MVT::v4i32,// ->498811
/*498771*/          OPC_Scope, 18, /*->498791*/ // 2 children in Scope
/*498773*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*498775*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*498778*/            OPC_EmitMergeInputChains1_1,
/*498779*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vshlv:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPSLLVDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*498791*/          /*Scope*/ 18, /*->498810*/
/*498792*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*498794*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*498797*/            OPC_EmitMergeInputChains1_1,
/*498798*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vshlv:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPSLLVDZ128rm:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*498810*/          0, /*End of Scope*/
/*498811*/        /*SwitchType*/ 40, MVT::v8i32,// ->498853
/*498813*/          OPC_Scope, 18, /*->498833*/ // 2 children in Scope
/*498815*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*498817*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*498820*/            OPC_EmitMergeInputChains1_1,
/*498821*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vshlv:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPSLLVDYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*498833*/          /*Scope*/ 18, /*->498852*/
/*498834*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*498836*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*498839*/            OPC_EmitMergeInputChains1_1,
/*498840*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vshlv:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPSLLVDZ256rm:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*498852*/          0, /*End of Scope*/
/*498853*/        /*SwitchType*/ 40, MVT::v2i64,// ->498895
/*498855*/          OPC_Scope, 18, /*->498875*/ // 2 children in Scope
/*498857*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*498859*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*498862*/            OPC_EmitMergeInputChains1_1,
/*498863*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVQrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vshlv:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPSLLVQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*498875*/          /*Scope*/ 18, /*->498894*/
/*498876*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*498878*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*498881*/            OPC_EmitMergeInputChains1_1,
/*498882*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vshlv:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPSLLVQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*498894*/          0, /*End of Scope*/
/*498895*/        /*SwitchType*/ 40, MVT::v4i64,// ->498937
/*498897*/          OPC_Scope, 18, /*->498917*/ // 2 children in Scope
/*498899*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*498901*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*498904*/            OPC_EmitMergeInputChains1_1,
/*498905*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vshlv:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPSLLVQYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*498917*/          /*Scope*/ 18, /*->498936*/
/*498918*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*498920*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*498923*/            OPC_EmitMergeInputChains1_1,
/*498924*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vshlv:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPSLLVQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*498936*/          0, /*End of Scope*/
/*498937*/        /*SwitchType*/ 18, MVT::v16i32,// ->498957
/*498939*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*498941*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*498944*/          OPC_EmitMergeInputChains1_1,
/*498945*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86vshlv:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPSLLVDZrm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*498957*/        /*SwitchType*/ 18, MVT::v8i64,// ->498977
/*498959*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*498961*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*498964*/          OPC_EmitMergeInputChains1_1,
/*498965*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86vshlv:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPSLLVQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*498977*/        /*SwitchType*/ 18, MVT::v32i16,// ->498997
/*498979*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*498981*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*498984*/          OPC_EmitMergeInputChains1_1,
/*498985*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86vshlv:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPSLLVWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*498997*/        /*SwitchType*/ 18, MVT::v16i16,// ->499017
/*498999*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*499001*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*499004*/          OPC_EmitMergeInputChains1_1,
/*499005*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86vshlv:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPSLLVWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*499017*/        /*SwitchType*/ 18, MVT::v8i16,// ->499037
/*499019*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*499021*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*499024*/          OPC_EmitMergeInputChains1_1,
/*499025*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86vshlv:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPSLLVWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*499037*/        0, // EndSwitchType
/*499038*/      /*SwitchOpcode*/ 10|128,1/*138*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->499180
/*499042*/        OPC_RecordMemRef,
/*499043*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*499044*/        OPC_CheckFoldableChainNode,
/*499045*/        OPC_RecordChild1, // #2 = $src2
/*499046*/        OPC_Scope, 65, /*->499113*/ // 2 children in Scope
/*499048*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*499050*/          OPC_MoveParent,
/*499051*/          OPC_SwitchType /*3 cases */, 18, MVT::v16i32,// ->499072
/*499054*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*499056*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*499059*/            OPC_EmitMergeInputChains1_1,
/*499060*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vshlv:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPSLLVDZrmb:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*499072*/          /*SwitchType*/ 18, MVT::v8i32,// ->499092
/*499074*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*499076*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*499079*/            OPC_EmitMergeInputChains1_1,
/*499080*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vshlv:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPSLLVDZ256rmb:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*499092*/          /*SwitchType*/ 18, MVT::v4i32,// ->499112
/*499094*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*499096*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*499099*/            OPC_EmitMergeInputChains1_1,
/*499100*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vshlv:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPSLLVDZ128rmb:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*499112*/          0, // EndSwitchType
/*499113*/        /*Scope*/ 65, /*->499179*/
/*499114*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*499116*/          OPC_MoveParent,
/*499117*/          OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->499138
/*499120*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*499122*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*499125*/            OPC_EmitMergeInputChains1_1,
/*499126*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vshlv:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPSLLVQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*499138*/          /*SwitchType*/ 18, MVT::v4i64,// ->499158
/*499140*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*499142*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*499145*/            OPC_EmitMergeInputChains1_1,
/*499146*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vshlv:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPSLLVQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*499158*/          /*SwitchType*/ 18, MVT::v2i64,// ->499178
/*499160*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*499162*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*499165*/            OPC_EmitMergeInputChains1_1,
/*499166*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vshlv:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPSLLVQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*499178*/          0, // EndSwitchType
/*499179*/        0, /*End of Scope*/
/*499180*/      0, // EndSwitchOpcode
/*499181*/    /*Scope*/ 33|128,2/*289*/, /*->499472*/
/*499183*/      OPC_RecordChild1, // #1 = $src2
/*499184*/      OPC_SwitchType /*9 cases */, 24, MVT::v4i32,// ->499211
/*499187*/        OPC_Scope, 10, /*->499199*/ // 2 children in Scope
/*499189*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*499191*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVDrr), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vshlv:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 3
                    // Dst: (VPSLLVDrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/*499199*/        /*Scope*/ 10, /*->499210*/
/*499200*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*499202*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVDZ128rr), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vshlv:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2) - Complexity = 3
                    // Dst: (VPSLLVDZ128rr:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*499210*/        0, /*End of Scope*/
/*499211*/      /*SwitchType*/ 24, MVT::v8i32,// ->499237
/*499213*/        OPC_Scope, 10, /*->499225*/ // 2 children in Scope
/*499215*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*499217*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVDYrr), 0,
                        MVT::v8i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vshlv:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2) - Complexity = 3
                    // Dst: (VPSLLVDYrr:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2)
/*499225*/        /*Scope*/ 10, /*->499236*/
/*499226*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*499228*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVDZ256rr), 0,
                        MVT::v8i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vshlv:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2) - Complexity = 3
                    // Dst: (VPSLLVDZ256rr:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*499236*/        0, /*End of Scope*/
/*499237*/      /*SwitchType*/ 24, MVT::v2i64,// ->499263
/*499239*/        OPC_Scope, 10, /*->499251*/ // 2 children in Scope
/*499241*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*499243*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVQrr), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vshlv:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2) - Complexity = 3
                    // Dst: (VPSLLVQrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)
/*499251*/        /*Scope*/ 10, /*->499262*/
/*499252*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*499254*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVQZ128rr), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vshlv:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2) - Complexity = 3
                    // Dst: (VPSLLVQZ128rr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*499262*/        0, /*End of Scope*/
/*499263*/      /*SwitchType*/ 24, MVT::v4i64,// ->499289
/*499265*/        OPC_Scope, 10, /*->499277*/ // 2 children in Scope
/*499267*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*499269*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVQYrr), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vshlv:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2) - Complexity = 3
                    // Dst: (VPSLLVQYrr:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2)
/*499277*/        /*Scope*/ 10, /*->499288*/
/*499278*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*499280*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVQZ256rr), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vshlv:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2) - Complexity = 3
                    // Dst: (VPSLLVQZ256rr:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*499288*/        0, /*End of Scope*/
/*499289*/      /*SwitchType*/ 10, MVT::v16i32,// ->499301
/*499291*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*499293*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVDZrr), 0,
                      MVT::v16i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86vshlv:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2) - Complexity = 3
                  // Dst: (VPSLLVDZrr:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*499301*/      /*SwitchType*/ 10, MVT::v8i64,// ->499313
/*499303*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*499305*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVQZrr), 0,
                      MVT::v8i64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86vshlv:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2) - Complexity = 3
                  // Dst: (VPSLLVQZrr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*499313*/      /*SwitchType*/ 10, MVT::v32i16,// ->499325
/*499315*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*499317*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVWZrr), 0,
                      MVT::v32i16, 2/*#Ops*/, 0, 1, 
                  // Src: (X86vshlv:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2) - Complexity = 3
                  // Dst: (VPSLLVWZrr:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*499325*/      /*SwitchType*/ 71, MVT::v16i16,// ->499398
/*499327*/        OPC_Scope, 10, /*->499339*/ // 2 children in Scope
/*499329*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*499331*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVWZ256rr), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vshlv:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2) - Complexity = 3
                    // Dst: (VPSLLVWZ256rr:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*499339*/        /*Scope*/ 57, /*->499397*/
/*499340*/          OPC_CheckPatternPredicate, 117, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/*499342*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #2
/*499348*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*499351*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*499360*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #5
/*499366*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*499369*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*499378*/          OPC_EmitNode1, TARGET_VAL(X86::VPSLLVWZrr), 0,
                        MVT::v64i8, 2/*#Ops*/, 4, 7,  // Results = #8
/*499386*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*499389*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v16i16, 2/*#Ops*/, 8, 9, 
                    // Src: (X86vshlv:{ *:[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] })
/*499397*/        0, /*End of Scope*/
/*499398*/      /*SwitchType*/ 71, MVT::v8i16,// ->499471
/*499400*/        OPC_Scope, 10, /*->499412*/ // 2 children in Scope
/*499402*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*499404*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSLLVWZ128rr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vshlv:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (VPSLLVWZ128rr:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*499412*/        /*Scope*/ 57, /*->499470*/
/*499413*/          OPC_CheckPatternPredicate, 117, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/*499415*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #2
/*499421*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*499424*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*499433*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #5
/*499439*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*499442*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*499451*/          OPC_EmitNode1, TARGET_VAL(X86::VPSLLVWZrr), 0,
                        MVT::v64i8, 2/*#Ops*/, 4, 7,  // Results = #8
/*499459*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*499462*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v8i16, 2/*#Ops*/, 8, 9, 
                    // Src: (X86vshlv:{ *:[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] })
/*499470*/        0, /*End of Scope*/
/*499471*/      0, // EndSwitchType
/*499472*/    0, /*End of Scope*/
/*499473*/  /*SwitchOpcode*/ 84|128,5/*724*/, TARGET_VAL(X86ISD::VSRLV),// ->500201
/*499477*/    OPC_RecordChild0, // #0 = $src1
/*499478*/    OPC_Scope, 44|128,3/*428*/, /*->499909*/ // 2 children in Scope
/*499481*/      OPC_MoveChild1,
/*499482*/      OPC_SwitchOpcode /*2 cases */, 23|128,2/*279*/, TARGET_VAL(ISD::LOAD),// ->499766
/*499487*/        OPC_RecordMemRef,
/*499488*/        OPC_RecordNode, // #1 = 'ld' chained node
/*499489*/        OPC_CheckFoldableChainNode,
/*499490*/        OPC_RecordChild1, // #2 = $src2
/*499491*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*499493*/        OPC_CheckPredicate, 9, // Predicate_load
/*499495*/        OPC_MoveParent,
/*499496*/        OPC_SwitchType /*9 cases */, 40, MVT::v4i32,// ->499539
/*499499*/          OPC_Scope, 18, /*->499519*/ // 2 children in Scope
/*499501*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*499503*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*499506*/            OPC_EmitMergeInputChains1_1,
/*499507*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vsrlv:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPSRLVDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*499519*/          /*Scope*/ 18, /*->499538*/
/*499520*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*499522*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*499525*/            OPC_EmitMergeInputChains1_1,
/*499526*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vsrlv:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPSRLVDZ128rm:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*499538*/          0, /*End of Scope*/
/*499539*/        /*SwitchType*/ 40, MVT::v8i32,// ->499581
/*499541*/          OPC_Scope, 18, /*->499561*/ // 2 children in Scope
/*499543*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*499545*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*499548*/            OPC_EmitMergeInputChains1_1,
/*499549*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vsrlv:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPSRLVDYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*499561*/          /*Scope*/ 18, /*->499580*/
/*499562*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*499564*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*499567*/            OPC_EmitMergeInputChains1_1,
/*499568*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vsrlv:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPSRLVDZ256rm:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*499580*/          0, /*End of Scope*/
/*499581*/        /*SwitchType*/ 40, MVT::v2i64,// ->499623
/*499583*/          OPC_Scope, 18, /*->499603*/ // 2 children in Scope
/*499585*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*499587*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*499590*/            OPC_EmitMergeInputChains1_1,
/*499591*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVQrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vsrlv:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPSRLVQrm:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*499603*/          /*Scope*/ 18, /*->499622*/
/*499604*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*499606*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*499609*/            OPC_EmitMergeInputChains1_1,
/*499610*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVQZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vsrlv:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPSRLVQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*499622*/          0, /*End of Scope*/
/*499623*/        /*SwitchType*/ 40, MVT::v4i64,// ->499665
/*499625*/          OPC_Scope, 18, /*->499645*/ // 2 children in Scope
/*499627*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*499629*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*499632*/            OPC_EmitMergeInputChains1_1,
/*499633*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vsrlv:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPSRLVQYrm:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*499645*/          /*Scope*/ 18, /*->499664*/
/*499646*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*499648*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*499651*/            OPC_EmitMergeInputChains1_1,
/*499652*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVQZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vsrlv:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPSRLVQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*499664*/          0, /*End of Scope*/
/*499665*/        /*SwitchType*/ 18, MVT::v16i32,// ->499685
/*499667*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*499669*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*499672*/          OPC_EmitMergeInputChains1_1,
/*499673*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86vsrlv:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPSRLVDZrm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*499685*/        /*SwitchType*/ 18, MVT::v8i64,// ->499705
/*499687*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*499689*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*499692*/          OPC_EmitMergeInputChains1_1,
/*499693*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVQZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86vsrlv:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPSRLVQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*499705*/        /*SwitchType*/ 18, MVT::v32i16,// ->499725
/*499707*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*499709*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*499712*/          OPC_EmitMergeInputChains1_1,
/*499713*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVWZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86vsrlv:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPSRLVWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*499725*/        /*SwitchType*/ 18, MVT::v16i16,// ->499745
/*499727*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*499729*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*499732*/          OPC_EmitMergeInputChains1_1,
/*499733*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVWZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86vsrlv:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPSRLVWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*499745*/        /*SwitchType*/ 18, MVT::v8i16,// ->499765
/*499747*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*499749*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*499752*/          OPC_EmitMergeInputChains1_1,
/*499753*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVWZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86vsrlv:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPSRLVWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*499765*/        0, // EndSwitchType
/*499766*/      /*SwitchOpcode*/ 10|128,1/*138*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->499908
/*499770*/        OPC_RecordMemRef,
/*499771*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*499772*/        OPC_CheckFoldableChainNode,
/*499773*/        OPC_RecordChild1, // #2 = $src2
/*499774*/        OPC_Scope, 65, /*->499841*/ // 2 children in Scope
/*499776*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*499778*/          OPC_MoveParent,
/*499779*/          OPC_SwitchType /*3 cases */, 18, MVT::v16i32,// ->499800
/*499782*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*499784*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*499787*/            OPC_EmitMergeInputChains1_1,
/*499788*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vsrlv:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPSRLVDZrmb:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*499800*/          /*SwitchType*/ 18, MVT::v8i32,// ->499820
/*499802*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*499804*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*499807*/            OPC_EmitMergeInputChains1_1,
/*499808*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vsrlv:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPSRLVDZ256rmb:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*499820*/          /*SwitchType*/ 18, MVT::v4i32,// ->499840
/*499822*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*499824*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*499827*/            OPC_EmitMergeInputChains1_1,
/*499828*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vsrlv:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPSRLVDZ128rmb:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*499840*/          0, // EndSwitchType
/*499841*/        /*Scope*/ 65, /*->499907*/
/*499842*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*499844*/          OPC_MoveParent,
/*499845*/          OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->499866
/*499848*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*499850*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*499853*/            OPC_EmitMergeInputChains1_1,
/*499854*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vsrlv:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPSRLVQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*499866*/          /*SwitchType*/ 18, MVT::v4i64,// ->499886
/*499868*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*499870*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*499873*/            OPC_EmitMergeInputChains1_1,
/*499874*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vsrlv:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPSRLVQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*499886*/          /*SwitchType*/ 18, MVT::v2i64,// ->499906
/*499888*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*499890*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*499893*/            OPC_EmitMergeInputChains1_1,
/*499894*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                      // Src: (X86vsrlv:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPSRLVQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*499906*/          0, // EndSwitchType
/*499907*/        0, /*End of Scope*/
/*499908*/      0, // EndSwitchOpcode
/*499909*/    /*Scope*/ 33|128,2/*289*/, /*->500200*/
/*499911*/      OPC_RecordChild1, // #1 = $src2
/*499912*/      OPC_SwitchType /*9 cases */, 24, MVT::v4i32,// ->499939
/*499915*/        OPC_Scope, 10, /*->499927*/ // 2 children in Scope
/*499917*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*499919*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVDrr), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vsrlv:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2) - Complexity = 3
                    // Dst: (VPSRLVDrr:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, VR128:{ *:[v4i32] }:$src2)
/*499927*/        /*Scope*/ 10, /*->499938*/
/*499928*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*499930*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVDZ128rr), 0,
                        MVT::v4i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vsrlv:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2) - Complexity = 3
                    // Dst: (VPSRLVDZ128rr:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2)
/*499938*/        0, /*End of Scope*/
/*499939*/      /*SwitchType*/ 24, MVT::v8i32,// ->499965
/*499941*/        OPC_Scope, 10, /*->499953*/ // 2 children in Scope
/*499943*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*499945*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVDYrr), 0,
                        MVT::v8i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vsrlv:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2) - Complexity = 3
                    // Dst: (VPSRLVDYrr:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, VR256:{ *:[v8i32] }:$src2)
/*499953*/        /*Scope*/ 10, /*->499964*/
/*499954*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*499956*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVDZ256rr), 0,
                        MVT::v8i32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vsrlv:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2) - Complexity = 3
                    // Dst: (VPSRLVDZ256rr:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2)
/*499964*/        0, /*End of Scope*/
/*499965*/      /*SwitchType*/ 24, MVT::v2i64,// ->499991
/*499967*/        OPC_Scope, 10, /*->499979*/ // 2 children in Scope
/*499969*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*499971*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVQrr), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vsrlv:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2) - Complexity = 3
                    // Dst: (VPSRLVQrr:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src1, VR128:{ *:[v2i64] }:$src2)
/*499979*/        /*Scope*/ 10, /*->499990*/
/*499980*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*499982*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVQZ128rr), 0,
                        MVT::v2i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vsrlv:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2) - Complexity = 3
                    // Dst: (VPSRLVQZ128rr:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2)
/*499990*/        0, /*End of Scope*/
/*499991*/      /*SwitchType*/ 24, MVT::v4i64,// ->500017
/*499993*/        OPC_Scope, 10, /*->500005*/ // 2 children in Scope
/*499995*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*499997*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVQYrr), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vsrlv:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2) - Complexity = 3
                    // Dst: (VPSRLVQYrr:{ *:[v4i64] } VR256:{ *:[v4i64] }:$src1, VR256:{ *:[v4i64] }:$src2)
/*500005*/        /*Scope*/ 10, /*->500016*/
/*500006*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*500008*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVQZ256rr), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vsrlv:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2) - Complexity = 3
                    // Dst: (VPSRLVQZ256rr:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2)
/*500016*/        0, /*End of Scope*/
/*500017*/      /*SwitchType*/ 10, MVT::v16i32,// ->500029
/*500019*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*500021*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVDZrr), 0,
                      MVT::v16i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86vsrlv:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2) - Complexity = 3
                  // Dst: (VPSRLVDZrr:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2)
/*500029*/      /*SwitchType*/ 10, MVT::v8i64,// ->500041
/*500031*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*500033*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVQZrr), 0,
                      MVT::v8i64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86vsrlv:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2) - Complexity = 3
                  // Dst: (VPSRLVQZrr:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2)
/*500041*/      /*SwitchType*/ 10, MVT::v32i16,// ->500053
/*500043*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*500045*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVWZrr), 0,
                      MVT::v32i16, 2/*#Ops*/, 0, 1, 
                  // Src: (X86vsrlv:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2) - Complexity = 3
                  // Dst: (VPSRLVWZrr:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2)
/*500053*/      /*SwitchType*/ 71, MVT::v16i16,// ->500126
/*500055*/        OPC_Scope, 10, /*->500067*/ // 2 children in Scope
/*500057*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*500059*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVWZ256rr), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vsrlv:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2) - Complexity = 3
                    // Dst: (VPSRLVWZ256rr:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2)
/*500067*/        /*Scope*/ 57, /*->500125*/
/*500068*/          OPC_CheckPatternPredicate, 117, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/*500070*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #2
/*500076*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*500079*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*500088*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #5
/*500094*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*500097*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*500106*/          OPC_EmitNode1, TARGET_VAL(X86::VPSRLVWZrr), 0,
                        MVT::v64i8, 2/*#Ops*/, 4, 7,  // Results = #8
/*500114*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*500117*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v16i16, 2/*#Ops*/, 8, 9, 
                    // Src: (X86vsrlv:{ *:[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] })
/*500125*/        0, /*End of Scope*/
/*500126*/      /*SwitchType*/ 71, MVT::v8i16,// ->500199
/*500128*/        OPC_Scope, 10, /*->500140*/ // 2 children in Scope
/*500130*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*500132*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPSRLVWZ128rr), 0,
                        MVT::v8i16, 2/*#Ops*/, 0, 1, 
                    // Src: (X86vsrlv:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2) - Complexity = 3
                    // Dst: (VPSRLVWZ128rr:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2)
/*500140*/        /*Scope*/ 57, /*->500198*/
/*500141*/          OPC_CheckPatternPredicate, 117, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/*500143*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #2
/*500149*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*500152*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*500161*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #5
/*500167*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*500170*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*500179*/          OPC_EmitNode1, TARGET_VAL(X86::VPSRLVWZrr), 0,
                        MVT::v64i8, 2/*#Ops*/, 4, 7,  // Results = #8
/*500187*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*500190*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v8i16, 2/*#Ops*/, 8, 9, 
                    // Src: (X86vsrlv:{ *:[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] })
/*500198*/        0, /*End of Scope*/
/*500199*/      0, // EndSwitchType
/*500200*/    0, /*End of Scope*/
/*500201*/  /*SwitchOpcode*/ 6|128,6/*774*/, TARGET_VAL(X86ISD::VSRAV),// ->500979
/*500205*/    OPC_RecordChild0, // #0 = $src1
/*500206*/    OPC_Scope, 0|128,3/*384*/, /*->500593*/ // 2 children in Scope
/*500209*/      OPC_MoveChild1,
/*500210*/      OPC_SwitchOpcode /*2 cases */, 107|128,1/*235*/, TARGET_VAL(ISD::LOAD),// ->500450
/*500215*/        OPC_RecordMemRef,
/*500216*/        OPC_RecordNode, // #1 = 'ld' chained node
/*500217*/        OPC_CheckFoldableChainNode,
/*500218*/        OPC_RecordChild1, // #2 = $src2
/*500219*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*500221*/        OPC_CheckPredicate, 9, // Predicate_load
/*500223*/        OPC_MoveParent,
/*500224*/        OPC_SwitchType /*9 cases */, 40, MVT::v4i32,// ->500267
/*500227*/          OPC_Scope, 18, /*->500247*/ // 2 children in Scope
/*500229*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*500231*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*500234*/            OPC_EmitMergeInputChains1_1,
/*500235*/            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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPSRAVDrm:{ *:[v4i32] } VR128:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*500247*/          /*Scope*/ 18, /*->500266*/
/*500248*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*500250*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*500253*/            OPC_EmitMergeInputChains1_1,
/*500254*/            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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPSRAVDZ128rm:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*500266*/          0, /*End of Scope*/
/*500267*/        /*SwitchType*/ 40, MVT::v8i32,// ->500309
/*500269*/          OPC_Scope, 18, /*->500289*/ // 2 children in Scope
/*500271*/            OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*500273*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*500276*/            OPC_EmitMergeInputChains1_1,
/*500277*/            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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPSRAVDYrm:{ *:[v8i32] } VR256:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*500289*/          /*Scope*/ 18, /*->500308*/
/*500290*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*500292*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*500295*/            OPC_EmitMergeInputChains1_1,
/*500296*/            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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPSRAVDZ256rm:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*500308*/          0, /*End of Scope*/
/*500309*/        /*SwitchType*/ 18, MVT::v16i32,// ->500329
/*500311*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*500313*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*500316*/          OPC_EmitMergeInputChains1_1,
/*500317*/          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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPSRAVDZrm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*500329*/        /*SwitchType*/ 18, MVT::v8i64,// ->500349
/*500331*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*500333*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*500336*/          OPC_EmitMergeInputChains1_1,
/*500337*/          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>>) - Complexity = 25
                    // Dst: (VPSRAVQZrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*500349*/        /*SwitchType*/ 18, MVT::v4i64,// ->500369
/*500351*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*500353*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*500356*/          OPC_EmitMergeInputChains1_1,
/*500357*/          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>>) - Complexity = 25
                    // Dst: (VPSRAVQZ256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*500369*/        /*SwitchType*/ 18, MVT::v2i64,// ->500389
/*500371*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*500373*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*500376*/          OPC_EmitMergeInputChains1_1,
/*500377*/          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>>) - Complexity = 25
                    // Dst: (VPSRAVQZ128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*500389*/        /*SwitchType*/ 18, MVT::v32i16,// ->500409
/*500391*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*500393*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*500396*/          OPC_EmitMergeInputChains1_1,
/*500397*/          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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPSRAVWZrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*500409*/        /*SwitchType*/ 18, MVT::v16i16,// ->500429
/*500411*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*500413*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*500416*/          OPC_EmitMergeInputChains1_1,
/*500417*/          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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPSRAVWZ256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*500429*/        /*SwitchType*/ 18, MVT::v8i16,// ->500449
/*500431*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*500433*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*500436*/          OPC_EmitMergeInputChains1_1,
/*500437*/          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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPSRAVWZ128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, addr:{ *:[iPTR] }:$src2)
/*500449*/        0, // EndSwitchType
/*500450*/      /*SwitchOpcode*/ 10|128,1/*138*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->500592
/*500454*/        OPC_RecordMemRef,
/*500455*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*500456*/        OPC_CheckFoldableChainNode,
/*500457*/        OPC_RecordChild1, // #2 = $src2
/*500458*/        OPC_Scope, 65, /*->500525*/ // 2 children in Scope
/*500460*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*500462*/          OPC_MoveParent,
/*500463*/          OPC_SwitchType /*3 cases */, 18, MVT::v16i32,// ->500484
/*500466*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*500468*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*500471*/            OPC_EmitMergeInputChains1_1,
/*500472*/            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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPSRAVDZrmb:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*500484*/          /*SwitchType*/ 18, MVT::v8i32,// ->500504
/*500486*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*500488*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*500491*/            OPC_EmitMergeInputChains1_1,
/*500492*/            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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPSRAVDZ256rmb:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*500504*/          /*SwitchType*/ 18, MVT::v4i32,// ->500524
/*500506*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*500508*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*500511*/            OPC_EmitMergeInputChains1_1,
/*500512*/            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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPSRAVDZ128rmb:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*500524*/          0, // EndSwitchType
/*500525*/        /*Scope*/ 65, /*->500591*/
/*500526*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*500528*/          OPC_MoveParent,
/*500529*/          OPC_SwitchType /*3 cases */, 18, MVT::v8i64,// ->500550
/*500532*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*500534*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*500537*/            OPC_EmitMergeInputChains1_1,
/*500538*/            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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPSRAVQZrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*500550*/          /*SwitchType*/ 18, MVT::v4i64,// ->500570
/*500552*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*500554*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*500557*/            OPC_EmitMergeInputChains1_1,
/*500558*/            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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPSRAVQZ256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*500570*/          /*SwitchType*/ 18, MVT::v2i64,// ->500590
/*500572*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*500574*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*500577*/            OPC_EmitMergeInputChains1_1,
/*500578*/            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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPSRAVQZ128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*500590*/          0, // EndSwitchType
/*500591*/        0, /*End of Scope*/
/*500592*/      0, // EndSwitchOpcode
/*500593*/    /*Scope*/ 127|128,2/*383*/, /*->500978*/
/*500595*/      OPC_RecordChild1, // #1 = $src2
/*500596*/      OPC_SwitchType /*9 cases */, 24, MVT::v4i32,// ->500623
/*500599*/        OPC_Scope, 10, /*->500611*/ // 2 children in Scope
/*500601*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*500603*/          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)
/*500611*/        /*Scope*/ 10, /*->500622*/
/*500612*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*500614*/          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)
/*500622*/        0, /*End of Scope*/
/*500623*/      /*SwitchType*/ 24, MVT::v8i32,// ->500649
/*500625*/        OPC_Scope, 10, /*->500637*/ // 2 children in Scope
/*500627*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*500629*/          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)
/*500637*/        /*Scope*/ 10, /*->500648*/
/*500638*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*500640*/          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)
/*500648*/        0, /*End of Scope*/
/*500649*/      /*SwitchType*/ 10, MVT::v16i32,// ->500661
/*500651*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*500653*/        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)
/*500661*/      /*SwitchType*/ 10, MVT::v8i64,// ->500673
/*500663*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*500665*/        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)
/*500673*/      /*SwitchType*/ 71, MVT::v4i64,// ->500746
/*500675*/        OPC_Scope, 10, /*->500687*/ // 2 children in Scope
/*500677*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*500679*/          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)
/*500687*/        /*Scope*/ 57, /*->500745*/
/*500688*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*500690*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #2
/*500696*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*500699*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*500708*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #5
/*500714*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*500717*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*500726*/          OPC_EmitNode1, TARGET_VAL(X86::VPSRAVQZrr), 0,
                        MVT::v64i8, 2/*#Ops*/, 4, 7,  // Results = #8
/*500734*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*500737*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4i64, 2/*#Ops*/, 8, 9, 
                    // Src: (X86vsrav:{ *:[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] })
/*500745*/        0, /*End of Scope*/
/*500746*/      /*SwitchType*/ 71, MVT::v2i64,// ->500819
/*500748*/        OPC_Scope, 10, /*->500760*/ // 2 children in Scope
/*500750*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*500752*/          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)
/*500760*/        /*Scope*/ 57, /*->500818*/
/*500761*/          OPC_CheckPatternPredicate, 113, // (Subtarget->hasAVX512()) && (!Subtarget->hasVLX())
/*500763*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #2
/*500769*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*500772*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*500781*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v8i64, 0/*#Ops*/,  // Results = #5
/*500787*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*500790*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v8i64, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*500799*/          OPC_EmitNode1, TARGET_VAL(X86::VPSRAVQZrr), 0,
                        MVT::v64i8, 2/*#Ops*/, 4, 7,  // Results = #8
/*500807*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*500810*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v2i64, 2/*#Ops*/, 8, 9, 
                    // Src: (X86vsrav:{ *:[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] })
/*500818*/        0, /*End of Scope*/
/*500819*/      /*SwitchType*/ 10, MVT::v32i16,// ->500831
/*500821*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*500823*/        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)
/*500831*/      /*SwitchType*/ 71, MVT::v16i16,// ->500904
/*500833*/        OPC_Scope, 10, /*->500845*/ // 2 children in Scope
/*500835*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*500837*/          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)
/*500845*/        /*Scope*/ 57, /*->500903*/
/*500846*/          OPC_CheckPatternPredicate, 117, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/*500848*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #2
/*500854*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*500857*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*500866*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #5
/*500872*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*500875*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*500884*/          OPC_EmitNode1, TARGET_VAL(X86::VPSRAVWZrr), 0,
                        MVT::v64i8, 2/*#Ops*/, 4, 7,  // Results = #8
/*500892*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*500895*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v16i16, 2/*#Ops*/, 8, 9, 
                    // Src: (X86vsrav:{ *:[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] })
/*500903*/        0, /*End of Scope*/
/*500904*/      /*SwitchType*/ 71, MVT::v8i16,// ->500977
/*500906*/        OPC_Scope, 10, /*->500918*/ // 2 children in Scope
/*500908*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*500910*/          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)
/*500918*/        /*Scope*/ 57, /*->500976*/
/*500919*/          OPC_CheckPatternPredicate, 117, // (Subtarget->hasBWI()) && (!Subtarget->hasVLX())
/*500921*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #2
/*500927*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*500930*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 2, 0, 3,  // Results = #4
/*500939*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::v32i16, 0/*#Ops*/,  // Results = #5
/*500945*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*500948*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::v32i16, 3/*#Ops*/, 5, 1, 6,  // Results = #7
/*500957*/          OPC_EmitNode1, TARGET_VAL(X86::VPSRAVWZrr), 0,
                        MVT::v64i8, 2/*#Ops*/, 4, 7,  // Results = #8
/*500965*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*500968*/          OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v8i16, 2/*#Ops*/, 8, 9, 
                    // Src: (X86vsrav:{ *:[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] })
/*500976*/        0, /*End of Scope*/
/*500977*/      0, // EndSwitchType
/*500978*/    0, /*End of Scope*/
/*500979*/  /*SwitchOpcode*/ 102|128,1/*230*/, TARGET_VAL(X86ISD::GF2P8MULB),// ->501213
/*500983*/    OPC_RecordChild0, // #0 = $src1
/*500984*/    OPC_Scope, 18|128,1/*146*/, /*->501133*/ // 2 children in Scope
/*500987*/      OPC_MoveChild1,
/*500988*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*500991*/      OPC_RecordMemRef,
/*500992*/      OPC_RecordNode, // #1 = 'ld' chained node
/*500993*/      OPC_CheckFoldableChainNode,
/*500994*/      OPC_RecordChild1, // #2 = $src2
/*500995*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*500997*/      OPC_CheckPredicate, 9, // Predicate_load
/*500999*/      OPC_Scope, 23, /*->501024*/ // 2 children in Scope
/*501001*/        OPC_CheckPredicate, 39, // Predicate_memop
/*501003*/        OPC_MoveParent,
/*501004*/        OPC_CheckType, MVT::v16i8,
/*501006*/        OPC_CheckPatternPredicate, 188, // (Subtarget->hasGFNI()) && (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*501008*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*501011*/        OPC_EmitMergeInputChains1_1,
/*501012*/        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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                  // Dst: (GF2P8MULBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*501024*/      /*Scope*/ 107, /*->501132*/
/*501025*/        OPC_MoveParent,
/*501026*/        OPC_SwitchType /*3 cases */, 40, MVT::v16i8,// ->501069
/*501029*/          OPC_Scope, 18, /*->501049*/ // 2 children in Scope
/*501031*/            OPC_CheckPatternPredicate, 189, // (Subtarget->hasAVX()) && (Subtarget->hasGFNI()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*501033*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*501036*/            OPC_EmitMergeInputChains1_1,
/*501037*/            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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VGF2P8MULBrm:{ *:[v16i8] } VR128:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*501049*/          /*Scope*/ 18, /*->501068*/
/*501050*/            OPC_CheckPatternPredicate, 180, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*501052*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*501055*/            OPC_EmitMergeInputChains1_1,
/*501056*/            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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VGF2P8MULBZ128rm:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*501068*/          0, /*End of Scope*/
/*501069*/        /*SwitchType*/ 40, MVT::v32i8,// ->501111
/*501071*/          OPC_Scope, 18, /*->501091*/ // 2 children in Scope
/*501073*/            OPC_CheckPatternPredicate, 189, // (Subtarget->hasAVX()) && (Subtarget->hasGFNI()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*501075*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*501078*/            OPC_EmitMergeInputChains1_1,
/*501079*/            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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VGF2P8MULBYrm:{ *:[v32i8] } VR256:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*501091*/          /*Scope*/ 18, /*->501110*/
/*501092*/            OPC_CheckPatternPredicate, 180, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*501094*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*501097*/            OPC_EmitMergeInputChains1_1,
/*501098*/            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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VGF2P8MULBZ256rm:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*501110*/          0, /*End of Scope*/
/*501111*/        /*SwitchType*/ 18, MVT::v64i8,// ->501131
/*501113*/          OPC_CheckPatternPredicate, 186, // (Subtarget->hasAVX512()) && (Subtarget->hasBWI()) && (Subtarget->hasGFNI())
/*501115*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*501118*/          OPC_EmitMergeInputChains1_1,
/*501119*/          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, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VGF2P8MULBZrm:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*501131*/        0, // EndSwitchType
/*501132*/      0, /*End of Scope*/
/*501133*/    /*Scope*/ 78, /*->501212*/
/*501134*/      OPC_RecordChild1, // #1 = $src2
/*501135*/      OPC_SwitchType /*3 cases */, 35, MVT::v16i8,// ->501173
/*501138*/        OPC_Scope, 10, /*->501150*/ // 3 children in Scope
/*501140*/          OPC_CheckPatternPredicate, 188, // (Subtarget->hasGFNI()) && (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*501142*/          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)
/*501150*/        /*Scope*/ 10, /*->501161*/
/*501151*/          OPC_CheckPatternPredicate, 189, // (Subtarget->hasAVX()) && (Subtarget->hasGFNI()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*501153*/          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)
/*501161*/        /*Scope*/ 10, /*->501172*/
/*501162*/          OPC_CheckPatternPredicate, 180, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*501164*/          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)
/*501172*/        0, /*End of Scope*/
/*501173*/      /*SwitchType*/ 24, MVT::v32i8,// ->501199
/*501175*/        OPC_Scope, 10, /*->501187*/ // 2 children in Scope
/*501177*/          OPC_CheckPatternPredicate, 189, // (Subtarget->hasAVX()) && (Subtarget->hasGFNI()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*501179*/          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)
/*501187*/        /*Scope*/ 10, /*->501198*/
/*501188*/          OPC_CheckPatternPredicate, 180, // (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX())
/*501190*/          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)
/*501198*/        0, /*End of Scope*/
/*501199*/      /*SwitchType*/ 10, MVT::v64i8,// ->501211
/*501201*/        OPC_CheckPatternPredicate, 186, // (Subtarget->hasAVX512()) && (Subtarget->hasBWI()) && (Subtarget->hasGFNI())
/*501203*/        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)
/*501211*/      0, // EndSwitchType
/*501212*/    0, /*End of Scope*/
/*501213*/  /*SwitchOpcode*/ 65|128,7/*961*/, TARGET_VAL(X86ISD::VPERMV3),// ->502178
/*501217*/    OPC_RecordChild0, // #0 = $src1
/*501218*/    OPC_RecordChild1, // #1 = $src2
/*501219*/    OPC_Scope, 34|128,3/*418*/, /*->501640*/ // 4 children in Scope
/*501222*/      OPC_MoveChild2,
/*501223*/      OPC_SwitchOpcode /*2 cases */, 7|128,2/*263*/, TARGET_VAL(ISD::LOAD),// ->501491
/*501228*/        OPC_RecordMemRef,
/*501229*/        OPC_RecordNode, // #2 = 'ld' chained node
/*501230*/        OPC_CheckFoldableChainNode,
/*501231*/        OPC_RecordChild1, // #3 = $src3
/*501232*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*501234*/        OPC_CheckPredicate, 9, // Predicate_load
/*501236*/        OPC_MoveParent,
/*501237*/        OPC_SwitchType /*12 cases */, 19, MVT::v16i32,// ->501259
/*501240*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*501242*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*501245*/          OPC_EmitMergeInputChains1_2,
/*501246*/          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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPERMT2Drm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*501259*/        /*SwitchType*/ 19, MVT::v4i32,// ->501280
/*501261*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*501263*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*501266*/          OPC_EmitMergeInputChains1_2,
/*501267*/          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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPERMT2D128rm:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*501280*/        /*SwitchType*/ 19, MVT::v8i32,// ->501301
/*501282*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*501284*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*501287*/          OPC_EmitMergeInputChains1_2,
/*501288*/          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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPERMT2D256rm:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*501301*/        /*SwitchType*/ 19, MVT::v8i64,// ->501322
/*501303*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*501305*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*501308*/          OPC_EmitMergeInputChains1_2,
/*501309*/          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>>) - Complexity = 25
                    // Dst: (VPERMT2Qrm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*501322*/        /*SwitchType*/ 19, MVT::v2i64,// ->501343
/*501324*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*501326*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*501329*/          OPC_EmitMergeInputChains1_2,
/*501330*/          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>>) - Complexity = 25
                    // Dst: (VPERMT2Q128rm:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*501343*/        /*SwitchType*/ 19, MVT::v4i64,// ->501364
/*501345*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*501347*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*501350*/          OPC_EmitMergeInputChains1_2,
/*501351*/          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>>) - Complexity = 25
                    // Dst: (VPERMT2Q256rm:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*501364*/        /*SwitchType*/ 19, MVT::v32i16,// ->501385
/*501366*/          OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*501368*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*501371*/          OPC_EmitMergeInputChains1_2,
/*501372*/          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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPERMT2Wrm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/*501385*/        /*SwitchType*/ 19, MVT::v8i16,// ->501406
/*501387*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*501389*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*501392*/          OPC_EmitMergeInputChains1_2,
/*501393*/          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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPERMT2W128rm:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/*501406*/        /*SwitchType*/ 19, MVT::v16i16,// ->501427
/*501408*/          OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*501410*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*501413*/          OPC_EmitMergeInputChains1_2,
/*501414*/          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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPERMT2W256rm:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/*501427*/        /*SwitchType*/ 19, MVT::v64i8,// ->501448
/*501429*/          OPC_CheckPatternPredicate, 187, // (Subtarget->hasVBMI())
/*501431*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*501434*/          OPC_EmitMergeInputChains1_2,
/*501435*/          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, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPERMT2Brm:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src1, VR512:{ *:[v64i8] }:$src2, addr:{ *:[iPTR] }:$src3)
/*501448*/        /*SwitchType*/ 19, MVT::v16i8,// ->501469
/*501450*/          OPC_CheckPatternPredicate, 181, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*501452*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*501455*/          OPC_EmitMergeInputChains1_2,
/*501456*/          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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPERMT2B128rm:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src1, VR128X:{ *:[v16i8] }:$src2, addr:{ *:[iPTR] }:$src3)
/*501469*/        /*SwitchType*/ 19, MVT::v32i8,// ->501490
/*501471*/          OPC_CheckPatternPredicate, 181, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*501473*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*501476*/          OPC_EmitMergeInputChains1_2,
/*501477*/          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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPERMT2B256rm:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src1, VR256X:{ *:[v32i8] }:$src2, addr:{ *:[iPTR] }:$src3)
/*501490*/        0, // EndSwitchType
/*501491*/      /*SwitchOpcode*/ 16|128,1/*144*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->501639
/*501495*/        OPC_RecordMemRef,
/*501496*/        OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*501497*/        OPC_CheckFoldableChainNode,
/*501498*/        OPC_RecordChild1, // #3 = $src3
/*501499*/        OPC_Scope, 68, /*->501569*/ // 2 children in Scope
/*501501*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*501503*/          OPC_MoveParent,
/*501504*/          OPC_SwitchType /*3 cases */, 19, MVT::v16i32,// ->501526
/*501507*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*501509*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*501512*/            OPC_EmitMergeInputChains1_2,
/*501513*/            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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPERMT2Drmb:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*501526*/          /*SwitchType*/ 19, MVT::v4i32,// ->501547
/*501528*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*501530*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*501533*/            OPC_EmitMergeInputChains1_2,
/*501534*/            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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPERMT2D128rmb:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*501547*/          /*SwitchType*/ 19, MVT::v8i32,// ->501568
/*501549*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*501551*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*501554*/            OPC_EmitMergeInputChains1_2,
/*501555*/            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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPERMT2D256rmb:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*501568*/          0, // EndSwitchType
/*501569*/        /*Scope*/ 68, /*->501638*/
/*501570*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*501572*/          OPC_MoveParent,
/*501573*/          OPC_SwitchType /*3 cases */, 19, MVT::v8i64,// ->501595
/*501576*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*501578*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*501581*/            OPC_EmitMergeInputChains1_2,
/*501582*/            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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPERMT2Qrmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*501595*/          /*SwitchType*/ 19, MVT::v2i64,// ->501616
/*501597*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*501599*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*501602*/            OPC_EmitMergeInputChains1_2,
/*501603*/            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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPERMT2Q128rmb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*501616*/          /*SwitchType*/ 19, MVT::v4i64,// ->501637
/*501618*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*501620*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*501623*/            OPC_EmitMergeInputChains1_2,
/*501624*/            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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPERMT2Q256rmb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*501637*/          0, // EndSwitchType
/*501638*/        0, /*End of Scope*/
/*501639*/      0, // EndSwitchOpcode
/*501640*/    /*Scope*/ 31|128,1/*159*/, /*->501801*/
/*501642*/      OPC_RecordChild2, // #2 = $src3
/*501643*/      OPC_SwitchType /*12 cases */, 11, MVT::v16i32,// ->501657
/*501646*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*501648*/        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)
/*501657*/      /*SwitchType*/ 11, MVT::v4i32,// ->501670
/*501659*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*501661*/        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)
/*501670*/      /*SwitchType*/ 11, MVT::v8i32,// ->501683
/*501672*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*501674*/        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)
/*501683*/      /*SwitchType*/ 11, MVT::v8i64,// ->501696
/*501685*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*501687*/        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)
/*501696*/      /*SwitchType*/ 11, MVT::v2i64,// ->501709
/*501698*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*501700*/        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)
/*501709*/      /*SwitchType*/ 11, MVT::v4i64,// ->501722
/*501711*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*501713*/        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)
/*501722*/      /*SwitchType*/ 11, MVT::v32i16,// ->501735
/*501724*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*501726*/        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)
/*501735*/      /*SwitchType*/ 11, MVT::v8i16,// ->501748
/*501737*/        OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*501739*/        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)
/*501748*/      /*SwitchType*/ 11, MVT::v16i16,// ->501761
/*501750*/        OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*501752*/        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)
/*501761*/      /*SwitchType*/ 11, MVT::v64i8,// ->501774
/*501763*/        OPC_CheckPatternPredicate, 187, // (Subtarget->hasVBMI())
/*501765*/        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)
/*501774*/      /*SwitchType*/ 11, MVT::v16i8,// ->501787
/*501776*/        OPC_CheckPatternPredicate, 181, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*501778*/        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)
/*501787*/      /*SwitchType*/ 11, MVT::v32i8,// ->501800
/*501789*/        OPC_CheckPatternPredicate, 181, // (Subtarget->hasVBMI()) && (Subtarget->hasVLX())
/*501791*/        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)
/*501800*/      0, // EndSwitchType
/*501801*/    /*Scope*/ 36|128,2/*292*/, /*->502095*/
/*501803*/      OPC_MoveChild2,
/*501804*/      OPC_SwitchOpcode /*2 cases */, 9|128,1/*137*/, TARGET_VAL(ISD::LOAD),// ->501946
/*501809*/        OPC_RecordMemRef,
/*501810*/        OPC_RecordNode, // #2 = 'ld' chained node
/*501811*/        OPC_CheckFoldableChainNode,
/*501812*/        OPC_RecordChild1, // #3 = $src3
/*501813*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*501815*/        OPC_CheckPredicate, 9, // Predicate_load
/*501817*/        OPC_MoveParent,
/*501818*/        OPC_SwitchType /*6 cases */, 19, MVT::v16f32,// ->501840
/*501821*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*501823*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*501826*/          OPC_EmitMergeInputChains1_2,
/*501827*/          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>>) - Complexity = 25
                    // Dst: (VPERMT2PSrm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*501840*/        /*SwitchType*/ 19, MVT::v4f32,// ->501861
/*501842*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*501844*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*501847*/          OPC_EmitMergeInputChains1_2,
/*501848*/          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>>) - Complexity = 25
                    // Dst: (VPERMT2PS128rm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*501861*/        /*SwitchType*/ 19, MVT::v8f32,// ->501882
/*501863*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*501865*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*501868*/          OPC_EmitMergeInputChains1_2,
/*501869*/          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>>) - Complexity = 25
                    // Dst: (VPERMT2PS256rm:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*501882*/        /*SwitchType*/ 19, MVT::v8f64,// ->501903
/*501884*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*501886*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*501889*/          OPC_EmitMergeInputChains1_2,
/*501890*/          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>>) - Complexity = 25
                    // Dst: (VPERMT2PDrm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*501903*/        /*SwitchType*/ 19, MVT::v2f64,// ->501924
/*501905*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*501907*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*501910*/          OPC_EmitMergeInputChains1_2,
/*501911*/          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>>) - Complexity = 25
                    // Dst: (VPERMT2PD128rm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*501924*/        /*SwitchType*/ 19, MVT::v4f64,// ->501945
/*501926*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*501928*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*501931*/          OPC_EmitMergeInputChains1_2,
/*501932*/          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>>) - Complexity = 25
                    // Dst: (VPERMT2PD256rm:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*501945*/        0, // EndSwitchType
/*501946*/      /*SwitchOpcode*/ 16|128,1/*144*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->502094
/*501950*/        OPC_RecordMemRef,
/*501951*/        OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*501952*/        OPC_CheckFoldableChainNode,
/*501953*/        OPC_RecordChild1, // #3 = $src3
/*501954*/        OPC_Scope, 68, /*->502024*/ // 2 children in Scope
/*501956*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*501958*/          OPC_MoveParent,
/*501959*/          OPC_SwitchType /*3 cases */, 19, MVT::v16f32,// ->501981
/*501962*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*501964*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*501967*/            OPC_EmitMergeInputChains1_2,
/*501968*/            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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPERMT2PSrmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*501981*/          /*SwitchType*/ 19, MVT::v4f32,// ->502002
/*501983*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*501985*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*501988*/            OPC_EmitMergeInputChains1_2,
/*501989*/            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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPERMT2PS128rmb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*502002*/          /*SwitchType*/ 19, MVT::v8f32,// ->502023
/*502004*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*502006*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*502009*/            OPC_EmitMergeInputChains1_2,
/*502010*/            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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPERMT2PS256rmb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*502023*/          0, // EndSwitchType
/*502024*/        /*Scope*/ 68, /*->502093*/
/*502025*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*502027*/          OPC_MoveParent,
/*502028*/          OPC_SwitchType /*3 cases */, 19, MVT::v8f64,// ->502050
/*502031*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*502033*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*502036*/            OPC_EmitMergeInputChains1_2,
/*502037*/            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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPERMT2PDrmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*502050*/          /*SwitchType*/ 19, MVT::v2f64,// ->502071
/*502052*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*502054*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*502057*/            OPC_EmitMergeInputChains1_2,
/*502058*/            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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPERMT2PD128rmb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*502071*/          /*SwitchType*/ 19, MVT::v4f64,// ->502092
/*502073*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*502075*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*502078*/            OPC_EmitMergeInputChains1_2,
/*502079*/            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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPERMT2PD256rmb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*502092*/          0, // EndSwitchType
/*502093*/        0, /*End of Scope*/
/*502094*/      0, // EndSwitchOpcode
/*502095*/    /*Scope*/ 81, /*->502177*/
/*502096*/      OPC_RecordChild2, // #2 = $src3
/*502097*/      OPC_SwitchType /*6 cases */, 11, MVT::v16f32,// ->502111
/*502100*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*502102*/        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)
/*502111*/      /*SwitchType*/ 11, MVT::v4f32,// ->502124
/*502113*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*502115*/        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)
/*502124*/      /*SwitchType*/ 11, MVT::v8f32,// ->502137
/*502126*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*502128*/        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)
/*502137*/      /*SwitchType*/ 11, MVT::v8f64,// ->502150
/*502139*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*502141*/        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)
/*502150*/      /*SwitchType*/ 11, MVT::v2f64,// ->502163
/*502152*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*502154*/        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)
/*502163*/      /*SwitchType*/ 11, MVT::v4f64,// ->502176
/*502165*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*502167*/        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)
/*502176*/      0, // EndSwitchType
/*502177*/    0, /*End of Scope*/
/*502178*/  /*SwitchOpcode*/ 112|128,2/*368*/, TARGET_VAL(X86ISD::VPMADD52L),// ->502550
/*502182*/    OPC_Scope, 30|128,1/*158*/, /*->502343*/ // 3 children in Scope
/*502185*/      OPC_RecordChild0, // #0 = $src2
/*502186*/      OPC_MoveChild1,
/*502187*/      OPC_SwitchOpcode /*2 cases */, 75, TARGET_VAL(ISD::LOAD),// ->502266
/*502191*/        OPC_RecordMemRef,
/*502192*/        OPC_RecordNode, // #1 = 'ld' chained node
/*502193*/        OPC_CheckFoldableChainNode,
/*502194*/        OPC_RecordChild1, // #2 = $src3
/*502195*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*502197*/        OPC_CheckPredicate, 9, // Predicate_load
/*502199*/        OPC_MoveParent,
/*502200*/        OPC_RecordChild2, // #3 = $src1
/*502201*/        OPC_SwitchType /*3 cases */, 19, MVT::v8i64,// ->502223
/*502204*/          OPC_CheckPatternPredicate, 185, // (Subtarget->hasIFMA())
/*502206*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*502209*/          OPC_EmitMergeInputChains1_1,
/*502210*/          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>>, VR512:{ *:[v8i64] }:$src1) - Complexity = 25
                    // Dst: (VPMADD52LUQZm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*502223*/        /*SwitchType*/ 19, MVT::v4i64,// ->502244
/*502225*/          OPC_CheckPatternPredicate, 184, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*502227*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*502230*/          OPC_EmitMergeInputChains1_1,
/*502231*/          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>>, VR256X:{ *:[v4i64] }:$src1) - Complexity = 25
                    // Dst: (VPMADD52LUQZ256m:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*502244*/        /*SwitchType*/ 19, MVT::v2i64,// ->502265
/*502246*/          OPC_CheckPatternPredicate, 184, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*502248*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*502251*/          OPC_EmitMergeInputChains1_1,
/*502252*/          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>>, VR128X:{ *:[v2i64] }:$src1) - Complexity = 25
                    // Dst: (VPMADD52LUQZ128m:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*502265*/        0, // EndSwitchType
/*502266*/      /*SwitchOpcode*/ 73, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->502342
/*502269*/        OPC_RecordMemRef,
/*502270*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*502271*/        OPC_CheckFoldableChainNode,
/*502272*/        OPC_RecordChild1, // #2 = $src3
/*502273*/        OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*502275*/        OPC_MoveParent,
/*502276*/        OPC_RecordChild2, // #3 = $src1
/*502277*/        OPC_SwitchType /*3 cases */, 19, MVT::v8i64,// ->502299
/*502280*/          OPC_CheckPatternPredicate, 185, // (Subtarget->hasIFMA())
/*502282*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*502285*/          OPC_EmitMergeInputChains1_1,
/*502286*/          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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8i64] }:$src1) - Complexity = 25
                    // Dst: (VPMADD52LUQZmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*502299*/        /*SwitchType*/ 19, MVT::v4i64,// ->502320
/*502301*/          OPC_CheckPatternPredicate, 184, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*502303*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*502306*/          OPC_EmitMergeInputChains1_1,
/*502307*/          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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src1) - Complexity = 25
                    // Dst: (VPMADD52LUQZ256mb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*502320*/        /*SwitchType*/ 19, MVT::v2i64,// ->502341
/*502322*/          OPC_CheckPatternPredicate, 184, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*502324*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*502327*/          OPC_EmitMergeInputChains1_1,
/*502328*/          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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src1) - Complexity = 25
                    // Dst: (VPMADD52LUQZ128mb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*502341*/        0, // EndSwitchType
/*502342*/      0, // EndSwitchOpcode
/*502343*/    /*Scope*/ 31|128,1/*159*/, /*->502504*/
/*502345*/      OPC_MoveChild0,
/*502346*/      OPC_SwitchOpcode /*2 cases */, 76, TARGET_VAL(ISD::LOAD),// ->502426
/*502350*/        OPC_RecordMemRef,
/*502351*/        OPC_RecordNode, // #0 = 'ld' chained node
/*502352*/        OPC_CheckFoldableChainNode,
/*502353*/        OPC_RecordChild1, // #1 = $src3
/*502354*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*502356*/        OPC_CheckPredicate, 9, // Predicate_load
/*502358*/        OPC_MoveParent,
/*502359*/        OPC_RecordChild1, // #2 = $src2
/*502360*/        OPC_RecordChild2, // #3 = $src1
/*502361*/        OPC_SwitchType /*3 cases */, 19, MVT::v8i64,// ->502383
/*502364*/          OPC_CheckPatternPredicate, 185, // (Subtarget->hasIFMA())
/*502366*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*502369*/          OPC_EmitMergeInputChains1_0,
/*502370*/          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>>, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src1) - Complexity = 25
                    // Dst: (VPMADD52LUQZm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*502383*/        /*SwitchType*/ 19, MVT::v4i64,// ->502404
/*502385*/          OPC_CheckPatternPredicate, 184, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*502387*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*502390*/          OPC_EmitMergeInputChains1_0,
/*502391*/          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>>, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src1) - Complexity = 25
                    // Dst: (VPMADD52LUQZ256m:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*502404*/        /*SwitchType*/ 19, MVT::v2i64,// ->502425
/*502406*/          OPC_CheckPatternPredicate, 184, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*502408*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*502411*/          OPC_EmitMergeInputChains1_0,
/*502412*/          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>>, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src1) - Complexity = 25
                    // Dst: (VPMADD52LUQZ128m:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*502425*/        0, // EndSwitchType
/*502426*/      /*SwitchOpcode*/ 74, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->502503
/*502429*/        OPC_RecordMemRef,
/*502430*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*502431*/        OPC_CheckFoldableChainNode,
/*502432*/        OPC_RecordChild1, // #1 = $src3
/*502433*/        OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*502435*/        OPC_MoveParent,
/*502436*/        OPC_RecordChild1, // #2 = $src2
/*502437*/        OPC_RecordChild2, // #3 = $src1
/*502438*/        OPC_SwitchType /*3 cases */, 19, MVT::v8i64,// ->502460
/*502441*/          OPC_CheckPatternPredicate, 185, // (Subtarget->hasIFMA())
/*502443*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*502446*/          OPC_EmitMergeInputChains1_0,
/*502447*/          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] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src1) - Complexity = 25
                    // Dst: (VPMADD52LUQZmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*502460*/        /*SwitchType*/ 19, MVT::v4i64,// ->502481
/*502462*/          OPC_CheckPatternPredicate, 184, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*502464*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*502467*/          OPC_EmitMergeInputChains1_0,
/*502468*/          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] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src1) - Complexity = 25
                    // Dst: (VPMADD52LUQZ256mb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*502481*/        /*SwitchType*/ 19, MVT::v2i64,// ->502502
/*502483*/          OPC_CheckPatternPredicate, 184, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*502485*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*502488*/          OPC_EmitMergeInputChains1_0,
/*502489*/          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] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src1) - Complexity = 25
                    // Dst: (VPMADD52LUQZ128mb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*502502*/        0, // EndSwitchType
/*502503*/      0, // EndSwitchOpcode
/*502504*/    /*Scope*/ 44, /*->502549*/
/*502505*/      OPC_RecordChild0, // #0 = $src2
/*502506*/      OPC_RecordChild1, // #1 = $src3
/*502507*/      OPC_RecordChild2, // #2 = $src1
/*502508*/      OPC_SwitchType /*3 cases */, 11, MVT::v8i64,// ->502522
/*502511*/        OPC_CheckPatternPredicate, 185, // (Subtarget->hasIFMA())
/*502513*/        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)
/*502522*/      /*SwitchType*/ 11, MVT::v4i64,// ->502535
/*502524*/        OPC_CheckPatternPredicate, 184, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*502526*/        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)
/*502535*/      /*SwitchType*/ 11, MVT::v2i64,// ->502548
/*502537*/        OPC_CheckPatternPredicate, 184, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*502539*/        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)
/*502548*/      0, // EndSwitchType
/*502549*/    0, /*End of Scope*/
/*502550*/  /*SwitchOpcode*/ 112|128,2/*368*/, TARGET_VAL(X86ISD::VPMADD52H),// ->502922
/*502554*/    OPC_Scope, 30|128,1/*158*/, /*->502715*/ // 3 children in Scope
/*502557*/      OPC_RecordChild0, // #0 = $src2
/*502558*/      OPC_MoveChild1,
/*502559*/      OPC_SwitchOpcode /*2 cases */, 75, TARGET_VAL(ISD::LOAD),// ->502638
/*502563*/        OPC_RecordMemRef,
/*502564*/        OPC_RecordNode, // #1 = 'ld' chained node
/*502565*/        OPC_CheckFoldableChainNode,
/*502566*/        OPC_RecordChild1, // #2 = $src3
/*502567*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*502569*/        OPC_CheckPredicate, 9, // Predicate_load
/*502571*/        OPC_MoveParent,
/*502572*/        OPC_RecordChild2, // #3 = $src1
/*502573*/        OPC_SwitchType /*3 cases */, 19, MVT::v8i64,// ->502595
/*502576*/          OPC_CheckPatternPredicate, 185, // (Subtarget->hasIFMA())
/*502578*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*502581*/          OPC_EmitMergeInputChains1_1,
/*502582*/          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>>, VR512:{ *:[v8i64] }:$src1) - Complexity = 25
                    // Dst: (VPMADD52HUQZm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*502595*/        /*SwitchType*/ 19, MVT::v4i64,// ->502616
/*502597*/          OPC_CheckPatternPredicate, 184, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*502599*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*502602*/          OPC_EmitMergeInputChains1_1,
/*502603*/          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>>, VR256X:{ *:[v4i64] }:$src1) - Complexity = 25
                    // Dst: (VPMADD52HUQZ256m:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*502616*/        /*SwitchType*/ 19, MVT::v2i64,// ->502637
/*502618*/          OPC_CheckPatternPredicate, 184, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*502620*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*502623*/          OPC_EmitMergeInputChains1_1,
/*502624*/          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>>, VR128X:{ *:[v2i64] }:$src1) - Complexity = 25
                    // Dst: (VPMADD52HUQZ128m:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*502637*/        0, // EndSwitchType
/*502638*/      /*SwitchOpcode*/ 73, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->502714
/*502641*/        OPC_RecordMemRef,
/*502642*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*502643*/        OPC_CheckFoldableChainNode,
/*502644*/        OPC_RecordChild1, // #2 = $src3
/*502645*/        OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*502647*/        OPC_MoveParent,
/*502648*/        OPC_RecordChild2, // #3 = $src1
/*502649*/        OPC_SwitchType /*3 cases */, 19, MVT::v8i64,// ->502671
/*502652*/          OPC_CheckPatternPredicate, 185, // (Subtarget->hasIFMA())
/*502654*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*502657*/          OPC_EmitMergeInputChains1_1,
/*502658*/          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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8i64] }:$src1) - Complexity = 25
                    // Dst: (VPMADD52HUQZmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*502671*/        /*SwitchType*/ 19, MVT::v4i64,// ->502692
/*502673*/          OPC_CheckPatternPredicate, 184, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*502675*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*502678*/          OPC_EmitMergeInputChains1_1,
/*502679*/          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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src1) - Complexity = 25
                    // Dst: (VPMADD52HUQZ256mb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*502692*/        /*SwitchType*/ 19, MVT::v2i64,// ->502713
/*502694*/          OPC_CheckPatternPredicate, 184, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*502696*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*502699*/          OPC_EmitMergeInputChains1_1,
/*502700*/          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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src1) - Complexity = 25
                    // Dst: (VPMADD52HUQZ128mb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*502713*/        0, // EndSwitchType
/*502714*/      0, // EndSwitchOpcode
/*502715*/    /*Scope*/ 31|128,1/*159*/, /*->502876*/
/*502717*/      OPC_MoveChild0,
/*502718*/      OPC_SwitchOpcode /*2 cases */, 76, TARGET_VAL(ISD::LOAD),// ->502798
/*502722*/        OPC_RecordMemRef,
/*502723*/        OPC_RecordNode, // #0 = 'ld' chained node
/*502724*/        OPC_CheckFoldableChainNode,
/*502725*/        OPC_RecordChild1, // #1 = $src3
/*502726*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*502728*/        OPC_CheckPredicate, 9, // Predicate_load
/*502730*/        OPC_MoveParent,
/*502731*/        OPC_RecordChild1, // #2 = $src2
/*502732*/        OPC_RecordChild2, // #3 = $src1
/*502733*/        OPC_SwitchType /*3 cases */, 19, MVT::v8i64,// ->502755
/*502736*/          OPC_CheckPatternPredicate, 185, // (Subtarget->hasIFMA())
/*502738*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*502741*/          OPC_EmitMergeInputChains1_0,
/*502742*/          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>>, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src1) - Complexity = 25
                    // Dst: (VPMADD52HUQZm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*502755*/        /*SwitchType*/ 19, MVT::v4i64,// ->502776
/*502757*/          OPC_CheckPatternPredicate, 184, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*502759*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*502762*/          OPC_EmitMergeInputChains1_0,
/*502763*/          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>>, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src1) - Complexity = 25
                    // Dst: (VPMADD52HUQZ256m:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*502776*/        /*SwitchType*/ 19, MVT::v2i64,// ->502797
/*502778*/          OPC_CheckPatternPredicate, 184, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*502780*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*502783*/          OPC_EmitMergeInputChains1_0,
/*502784*/          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>>, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src1) - Complexity = 25
                    // Dst: (VPMADD52HUQZ128m:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*502797*/        0, // EndSwitchType
/*502798*/      /*SwitchOpcode*/ 74, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->502875
/*502801*/        OPC_RecordMemRef,
/*502802*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*502803*/        OPC_CheckFoldableChainNode,
/*502804*/        OPC_RecordChild1, // #1 = $src3
/*502805*/        OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*502807*/        OPC_MoveParent,
/*502808*/        OPC_RecordChild1, // #2 = $src2
/*502809*/        OPC_RecordChild2, // #3 = $src1
/*502810*/        OPC_SwitchType /*3 cases */, 19, MVT::v8i64,// ->502832
/*502813*/          OPC_CheckPatternPredicate, 185, // (Subtarget->hasIFMA())
/*502815*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*502818*/          OPC_EmitMergeInputChains1_0,
/*502819*/          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] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8i64] }:$src2, VR512:{ *:[v8i64] }:$src1) - Complexity = 25
                    // Dst: (VPMADD52HUQZmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*502832*/        /*SwitchType*/ 19, MVT::v4i64,// ->502853
/*502834*/          OPC_CheckPatternPredicate, 184, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*502836*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*502839*/          OPC_EmitMergeInputChains1_0,
/*502840*/          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] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4i64] }:$src2, VR256X:{ *:[v4i64] }:$src1) - Complexity = 25
                    // Dst: (VPMADD52HUQZ256mb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*502853*/        /*SwitchType*/ 19, MVT::v2i64,// ->502874
/*502855*/          OPC_CheckPatternPredicate, 184, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*502857*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*502860*/          OPC_EmitMergeInputChains1_0,
/*502861*/          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] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2i64] }:$src2, VR128X:{ *:[v2i64] }:$src1) - Complexity = 25
                    // Dst: (VPMADD52HUQZ128mb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*502874*/        0, // EndSwitchType
/*502875*/      0, // EndSwitchOpcode
/*502876*/    /*Scope*/ 44, /*->502921*/
/*502877*/      OPC_RecordChild0, // #0 = $src2
/*502878*/      OPC_RecordChild1, // #1 = $src3
/*502879*/      OPC_RecordChild2, // #2 = $src1
/*502880*/      OPC_SwitchType /*3 cases */, 11, MVT::v8i64,// ->502894
/*502883*/        OPC_CheckPatternPredicate, 185, // (Subtarget->hasIFMA())
/*502885*/        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)
/*502894*/      /*SwitchType*/ 11, MVT::v4i64,// ->502907
/*502896*/        OPC_CheckPatternPredicate, 184, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*502898*/        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)
/*502907*/      /*SwitchType*/ 11, MVT::v2i64,// ->502920
/*502909*/        OPC_CheckPatternPredicate, 184, // (Subtarget->hasIFMA()) && (Subtarget->hasVLX())
/*502911*/        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)
/*502920*/      0, // EndSwitchType
/*502921*/    0, /*End of Scope*/
/*502922*/  /*SwitchOpcode*/ 83|128,2/*339*/, TARGET_VAL(X86ISD::CONFLICT),// ->503265
/*502926*/    OPC_Scope, 9|128,2/*265*/, /*->503194*/ // 2 children in Scope
/*502929*/      OPC_MoveChild0,
/*502930*/      OPC_SwitchOpcode /*2 cases */, 124, TARGET_VAL(ISD::LOAD),// ->503058
/*502934*/        OPC_RecordMemRef,
/*502935*/        OPC_RecordNode, // #0 = 'ld' chained node
/*502936*/        OPC_RecordChild1, // #1 = $src1
/*502937*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*502939*/        OPC_CheckPredicate, 9, // Predicate_load
/*502941*/        OPC_MoveParent,
/*502942*/        OPC_SwitchType /*6 cases */, 17, MVT::v8i64,// ->502962
/*502945*/          OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*502947*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*502950*/          OPC_EmitMergeInputChains1_0,
/*502951*/          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>>) - Complexity = 25
                    // Dst: (VPCONFLICTQZrm:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)
/*502962*/        /*SwitchType*/ 17, MVT::v4i64,// ->502981
/*502964*/          OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*502966*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*502969*/          OPC_EmitMergeInputChains1_0,
/*502970*/          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>>) - Complexity = 25
                    // Dst: (VPCONFLICTQZ256rm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)
/*502981*/        /*SwitchType*/ 17, MVT::v2i64,// ->503000
/*502983*/          OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*502985*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*502988*/          OPC_EmitMergeInputChains1_0,
/*502989*/          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>>) - Complexity = 25
                    // Dst: (VPCONFLICTQZ128rm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)
/*503000*/        /*SwitchType*/ 17, MVT::v16i32,// ->503019
/*503002*/          OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*503004*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*503007*/          OPC_EmitMergeInputChains1_0,
/*503008*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86Conflict:{ *:[v16i32] } (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPCONFLICTDZrm:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)
/*503019*/        /*SwitchType*/ 17, MVT::v8i32,// ->503038
/*503021*/          OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*503023*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*503026*/          OPC_EmitMergeInputChains1_0,
/*503027*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTDZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86Conflict:{ *:[v8i32] } (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPCONFLICTDZ256rm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)
/*503038*/        /*SwitchType*/ 17, MVT::v4i32,// ->503057
/*503040*/          OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*503042*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*503045*/          OPC_EmitMergeInputChains1_0,
/*503046*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86Conflict:{ *:[v4i32] } (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPCONFLICTDZ128rm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)
/*503057*/        0, // EndSwitchType
/*503058*/      /*SwitchOpcode*/ 3|128,1/*131*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->503193
/*503062*/        OPC_RecordMemRef,
/*503063*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*503064*/        OPC_RecordChild1, // #1 = $src1
/*503065*/        OPC_Scope, 62, /*->503129*/ // 2 children in Scope
/*503067*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*503069*/          OPC_MoveParent,
/*503070*/          OPC_SwitchType /*3 cases */, 17, MVT::v8i64,// ->503090
/*503073*/            OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*503075*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*503078*/            OPC_EmitMergeInputChains1_0,
/*503079*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTQZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86Conflict:{ *:[v8i64] } (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPCONFLICTQZrmb:{ *:[v8i64] } addr:{ *:[iPTR] }:$src1)
/*503090*/          /*SwitchType*/ 17, MVT::v4i64,// ->503109
/*503092*/            OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*503094*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*503097*/            OPC_EmitMergeInputChains1_0,
/*503098*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTQZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86Conflict:{ *:[v4i64] } (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPCONFLICTQZ256rmb:{ *:[v4i64] } addr:{ *:[iPTR] }:$src1)
/*503109*/          /*SwitchType*/ 17, MVT::v2i64,// ->503128
/*503111*/            OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*503113*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*503116*/            OPC_EmitMergeInputChains1_0,
/*503117*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTQZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86Conflict:{ *:[v2i64] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPCONFLICTQZ128rmb:{ *:[v2i64] } addr:{ *:[iPTR] }:$src1)
/*503128*/          0, // EndSwitchType
/*503129*/        /*Scope*/ 62, /*->503192*/
/*503130*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*503132*/          OPC_MoveParent,
/*503133*/          OPC_SwitchType /*3 cases */, 17, MVT::v16i32,// ->503153
/*503136*/            OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*503138*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*503141*/            OPC_EmitMergeInputChains1_0,
/*503142*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTDZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86Conflict:{ *:[v16i32] } (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPCONFLICTDZrmb:{ *:[v16i32] } addr:{ *:[iPTR] }:$src1)
/*503153*/          /*SwitchType*/ 17, MVT::v8i32,// ->503172
/*503155*/            OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*503157*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*503160*/            OPC_EmitMergeInputChains1_0,
/*503161*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTDZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86Conflict:{ *:[v8i32] } (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPCONFLICTDZ256rmb:{ *:[v8i32] } addr:{ *:[iPTR] }:$src1)
/*503172*/          /*SwitchType*/ 17, MVT::v4i32,// ->503191
/*503174*/            OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*503176*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*503179*/            OPC_EmitMergeInputChains1_0,
/*503180*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPCONFLICTDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86Conflict:{ *:[v4i32] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPCONFLICTDZ128rmb:{ *:[v4i32] } addr:{ *:[iPTR] }:$src1)
/*503191*/          0, // EndSwitchType
/*503192*/        0, /*End of Scope*/
/*503193*/      0, // EndSwitchOpcode
/*503194*/    /*Scope*/ 69, /*->503264*/
/*503195*/      OPC_RecordChild0, // #0 = $src1
/*503196*/      OPC_SwitchType /*6 cases */, 9, MVT::v8i64,// ->503208
/*503199*/        OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*503201*/        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)
/*503208*/      /*SwitchType*/ 9, MVT::v4i64,// ->503219
/*503210*/        OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*503212*/        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)
/*503219*/      /*SwitchType*/ 9, MVT::v2i64,// ->503230
/*503221*/        OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*503223*/        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)
/*503230*/      /*SwitchType*/ 9, MVT::v16i32,// ->503241
/*503232*/        OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*503234*/        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)
/*503241*/      /*SwitchType*/ 9, MVT::v8i32,// ->503252
/*503243*/        OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*503245*/        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)
/*503252*/      /*SwitchType*/ 9, MVT::v4i32,// ->503263
/*503254*/        OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*503256*/        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)
/*503263*/      0, // EndSwitchType
/*503264*/    0, /*End of Scope*/
/*503265*/  /*SwitchOpcode*/ 98|128,3/*482*/, TARGET_VAL(X86ISD::VSHLDV),// ->503751
/*503269*/    OPC_RecordChild0, // #0 = $src1
/*503270*/    OPC_RecordChild1, // #1 = $src2
/*503271*/    OPC_Scope, 99|128,2/*355*/, /*->503629*/ // 2 children in Scope
/*503274*/      OPC_MoveChild2,
/*503275*/      OPC_SwitchOpcode /*2 cases */, 72|128,1/*200*/, TARGET_VAL(ISD::LOAD),// ->503480
/*503280*/        OPC_RecordMemRef,
/*503281*/        OPC_RecordNode, // #2 = 'ld' chained node
/*503282*/        OPC_CheckFoldableChainNode,
/*503283*/        OPC_RecordChild1, // #3 = $src3
/*503284*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*503286*/        OPC_CheckPredicate, 9, // Predicate_load
/*503288*/        OPC_MoveParent,
/*503289*/        OPC_SwitchType /*9 cases */, 19, MVT::v32i16,// ->503311
/*503292*/          OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*503294*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*503297*/          OPC_EmitMergeInputChains1_2,
/*503298*/          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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPSHLDVWZm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/*503311*/        /*SwitchType*/ 19, MVT::v16i16,// ->503332
/*503313*/          OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*503315*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*503318*/          OPC_EmitMergeInputChains1_2,
/*503319*/          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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPSHLDVWZ256m:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/*503332*/        /*SwitchType*/ 19, MVT::v8i16,// ->503353
/*503334*/          OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*503336*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*503339*/          OPC_EmitMergeInputChains1_2,
/*503340*/          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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPSHLDVWZ128m:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/*503353*/        /*SwitchType*/ 19, MVT::v16i32,// ->503374
/*503355*/          OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*503357*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*503360*/          OPC_EmitMergeInputChains1_2,
/*503361*/          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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPSHLDVDZm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*503374*/        /*SwitchType*/ 19, MVT::v8i32,// ->503395
/*503376*/          OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*503378*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*503381*/          OPC_EmitMergeInputChains1_2,
/*503382*/          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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPSHLDVDZ256m:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*503395*/        /*SwitchType*/ 19, MVT::v4i32,// ->503416
/*503397*/          OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*503399*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*503402*/          OPC_EmitMergeInputChains1_2,
/*503403*/          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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPSHLDVDZ128m:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*503416*/        /*SwitchType*/ 19, MVT::v8i64,// ->503437
/*503418*/          OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*503420*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*503423*/          OPC_EmitMergeInputChains1_2,
/*503424*/          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>>) - Complexity = 25
                    // Dst: (VPSHLDVQZm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*503437*/        /*SwitchType*/ 19, MVT::v4i64,// ->503458
/*503439*/          OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*503441*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*503444*/          OPC_EmitMergeInputChains1_2,
/*503445*/          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>>) - Complexity = 25
                    // Dst: (VPSHLDVQZ256m:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*503458*/        /*SwitchType*/ 19, MVT::v2i64,// ->503479
/*503460*/          OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*503462*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*503465*/          OPC_EmitMergeInputChains1_2,
/*503466*/          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>>) - Complexity = 25
                    // Dst: (VPSHLDVQZ128m:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*503479*/        0, // EndSwitchType
/*503480*/      /*SwitchOpcode*/ 16|128,1/*144*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->503628
/*503484*/        OPC_RecordMemRef,
/*503485*/        OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*503486*/        OPC_CheckFoldableChainNode,
/*503487*/        OPC_RecordChild1, // #3 = $src3
/*503488*/        OPC_Scope, 68, /*->503558*/ // 2 children in Scope
/*503490*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*503492*/          OPC_MoveParent,
/*503493*/          OPC_SwitchType /*3 cases */, 19, MVT::v16i32,// ->503515
/*503496*/            OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*503498*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*503501*/            OPC_EmitMergeInputChains1_2,
/*503502*/            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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPSHLDVDZmb:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*503515*/          /*SwitchType*/ 19, MVT::v8i32,// ->503536
/*503517*/            OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*503519*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*503522*/            OPC_EmitMergeInputChains1_2,
/*503523*/            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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPSHLDVDZ256mb:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*503536*/          /*SwitchType*/ 19, MVT::v4i32,// ->503557
/*503538*/            OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*503540*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*503543*/            OPC_EmitMergeInputChains1_2,
/*503544*/            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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPSHLDVDZ128mb:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*503557*/          0, // EndSwitchType
/*503558*/        /*Scope*/ 68, /*->503627*/
/*503559*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*503561*/          OPC_MoveParent,
/*503562*/          OPC_SwitchType /*3 cases */, 19, MVT::v8i64,// ->503584
/*503565*/            OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*503567*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*503570*/            OPC_EmitMergeInputChains1_2,
/*503571*/            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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPSHLDVQZmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*503584*/          /*SwitchType*/ 19, MVT::v4i64,// ->503605
/*503586*/            OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*503588*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*503591*/            OPC_EmitMergeInputChains1_2,
/*503592*/            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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPSHLDVQZ256mb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*503605*/          /*SwitchType*/ 19, MVT::v2i64,// ->503626
/*503607*/            OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*503609*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*503612*/            OPC_EmitMergeInputChains1_2,
/*503613*/            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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPSHLDVQZ128mb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*503626*/          0, // EndSwitchType
/*503627*/        0, /*End of Scope*/
/*503628*/      0, // EndSwitchOpcode
/*503629*/    /*Scope*/ 120, /*->503750*/
/*503630*/      OPC_RecordChild2, // #2 = $src3
/*503631*/      OPC_SwitchType /*9 cases */, 11, MVT::v32i16,// ->503645
/*503634*/        OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*503636*/        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)
/*503645*/      /*SwitchType*/ 11, MVT::v16i16,// ->503658
/*503647*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*503649*/        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)
/*503658*/      /*SwitchType*/ 11, MVT::v8i16,// ->503671
/*503660*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*503662*/        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)
/*503671*/      /*SwitchType*/ 11, MVT::v16i32,// ->503684
/*503673*/        OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*503675*/        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)
/*503684*/      /*SwitchType*/ 11, MVT::v8i32,// ->503697
/*503686*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*503688*/        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)
/*503697*/      /*SwitchType*/ 11, MVT::v4i32,// ->503710
/*503699*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*503701*/        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)
/*503710*/      /*SwitchType*/ 11, MVT::v8i64,// ->503723
/*503712*/        OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*503714*/        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)
/*503723*/      /*SwitchType*/ 11, MVT::v4i64,// ->503736
/*503725*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*503727*/        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)
/*503736*/      /*SwitchType*/ 11, MVT::v2i64,// ->503749
/*503738*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*503740*/        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)
/*503749*/      0, // EndSwitchType
/*503750*/    0, /*End of Scope*/
/*503751*/  /*SwitchOpcode*/ 98|128,3/*482*/, TARGET_VAL(X86ISD::VSHRDV),// ->504237
/*503755*/    OPC_RecordChild0, // #0 = $src1
/*503756*/    OPC_RecordChild1, // #1 = $src2
/*503757*/    OPC_Scope, 99|128,2/*355*/, /*->504115*/ // 2 children in Scope
/*503760*/      OPC_MoveChild2,
/*503761*/      OPC_SwitchOpcode /*2 cases */, 72|128,1/*200*/, TARGET_VAL(ISD::LOAD),// ->503966
/*503766*/        OPC_RecordMemRef,
/*503767*/        OPC_RecordNode, // #2 = 'ld' chained node
/*503768*/        OPC_CheckFoldableChainNode,
/*503769*/        OPC_RecordChild1, // #3 = $src3
/*503770*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*503772*/        OPC_CheckPredicate, 9, // Predicate_load
/*503774*/        OPC_MoveParent,
/*503775*/        OPC_SwitchType /*9 cases */, 19, MVT::v32i16,// ->503797
/*503778*/          OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*503780*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*503783*/          OPC_EmitMergeInputChains1_2,
/*503784*/          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, (ld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPSHRDVWZm:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src1, VR512:{ *:[v32i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/*503797*/        /*SwitchType*/ 19, MVT::v16i16,// ->503818
/*503799*/          OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*503801*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*503804*/          OPC_EmitMergeInputChains1_2,
/*503805*/          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, (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPSHRDVWZ256m:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src1, VR256X:{ *:[v16i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/*503818*/        /*SwitchType*/ 19, MVT::v8i16,// ->503839
/*503820*/          OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*503822*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*503825*/          OPC_EmitMergeInputChains1_2,
/*503826*/          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, (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPSHRDVWZ128m:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src1, VR128X:{ *:[v8i16] }:$src2, addr:{ *:[iPTR] }:$src3)
/*503839*/        /*SwitchType*/ 19, MVT::v16i32,// ->503860
/*503841*/          OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*503843*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*503846*/          OPC_EmitMergeInputChains1_2,
/*503847*/          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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPSHRDVDZm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*503860*/        /*SwitchType*/ 19, MVT::v8i32,// ->503881
/*503862*/          OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*503864*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*503867*/          OPC_EmitMergeInputChains1_2,
/*503868*/          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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPSHRDVDZ256m:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*503881*/        /*SwitchType*/ 19, MVT::v4i32,// ->503902
/*503883*/          OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*503885*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*503888*/          OPC_EmitMergeInputChains1_2,
/*503889*/          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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPSHRDVDZ128m:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*503902*/        /*SwitchType*/ 19, MVT::v8i64,// ->503923
/*503904*/          OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*503906*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*503909*/          OPC_EmitMergeInputChains1_2,
/*503910*/          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>>) - Complexity = 25
                    // Dst: (VPSHRDVQZm:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*503923*/        /*SwitchType*/ 19, MVT::v4i64,// ->503944
/*503925*/          OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*503927*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*503930*/          OPC_EmitMergeInputChains1_2,
/*503931*/          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>>) - Complexity = 25
                    // Dst: (VPSHRDVQZ256m:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*503944*/        /*SwitchType*/ 19, MVT::v2i64,// ->503965
/*503946*/          OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*503948*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*503951*/          OPC_EmitMergeInputChains1_2,
/*503952*/          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>>) - Complexity = 25
                    // Dst: (VPSHRDVQZ128m:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*503965*/        0, // EndSwitchType
/*503966*/      /*SwitchOpcode*/ 16|128,1/*144*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->504114
/*503970*/        OPC_RecordMemRef,
/*503971*/        OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*503972*/        OPC_CheckFoldableChainNode,
/*503973*/        OPC_RecordChild1, // #3 = $src3
/*503974*/        OPC_Scope, 68, /*->504044*/ // 2 children in Scope
/*503976*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*503978*/          OPC_MoveParent,
/*503979*/          OPC_SwitchType /*3 cases */, 19, MVT::v16i32,// ->504001
/*503982*/            OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*503984*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*503987*/            OPC_EmitMergeInputChains1_2,
/*503988*/            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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPSHRDVDZmb:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*504001*/          /*SwitchType*/ 19, MVT::v8i32,// ->504022
/*504003*/            OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*504005*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*504008*/            OPC_EmitMergeInputChains1_2,
/*504009*/            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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPSHRDVDZ256mb:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*504022*/          /*SwitchType*/ 19, MVT::v4i32,// ->504043
/*504024*/            OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*504026*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*504029*/            OPC_EmitMergeInputChains1_2,
/*504030*/            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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPSHRDVDZ128mb:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*504043*/          0, // EndSwitchType
/*504044*/        /*Scope*/ 68, /*->504113*/
/*504045*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*504047*/          OPC_MoveParent,
/*504048*/          OPC_SwitchType /*3 cases */, 19, MVT::v8i64,// ->504070
/*504051*/            OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*504053*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*504056*/            OPC_EmitMergeInputChains1_2,
/*504057*/            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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPSHRDVQZmb:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src1, VR512:{ *:[v8i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*504070*/          /*SwitchType*/ 19, MVT::v4i64,// ->504091
/*504072*/            OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*504074*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*504077*/            OPC_EmitMergeInputChains1_2,
/*504078*/            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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPSHRDVQZ256mb:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src1, VR256X:{ *:[v4i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*504091*/          /*SwitchType*/ 19, MVT::v2i64,// ->504112
/*504093*/            OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*504095*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*504098*/            OPC_EmitMergeInputChains1_2,
/*504099*/            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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPSHRDVQZ128mb:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src1, VR128X:{ *:[v2i64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*504112*/          0, // EndSwitchType
/*504113*/        0, /*End of Scope*/
/*504114*/      0, // EndSwitchOpcode
/*504115*/    /*Scope*/ 120, /*->504236*/
/*504116*/      OPC_RecordChild2, // #2 = $src3
/*504117*/      OPC_SwitchType /*9 cases */, 11, MVT::v32i16,// ->504131
/*504120*/        OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*504122*/        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)
/*504131*/      /*SwitchType*/ 11, MVT::v16i16,// ->504144
/*504133*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*504135*/        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)
/*504144*/      /*SwitchType*/ 11, MVT::v8i16,// ->504157
/*504146*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*504148*/        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)
/*504157*/      /*SwitchType*/ 11, MVT::v16i32,// ->504170
/*504159*/        OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*504161*/        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)
/*504170*/      /*SwitchType*/ 11, MVT::v8i32,// ->504183
/*504172*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*504174*/        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)
/*504183*/      /*SwitchType*/ 11, MVT::v4i32,// ->504196
/*504185*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*504187*/        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)
/*504196*/      /*SwitchType*/ 11, MVT::v8i64,// ->504209
/*504198*/        OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*504200*/        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)
/*504209*/      /*SwitchType*/ 11, MVT::v4i64,// ->504222
/*504211*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*504213*/        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)
/*504222*/      /*SwitchType*/ 11, MVT::v2i64,// ->504235
/*504224*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*504226*/        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)
/*504235*/      0, // EndSwitchType
/*504236*/    0, /*End of Scope*/
/*504237*/  /*SwitchOpcode*/ 76|128,1/*204*/, TARGET_VAL(X86ISD::VPDPBUSD),// ->504445
/*504241*/    OPC_RecordChild0, // #0 = $src1
/*504242*/    OPC_RecordChild1, // #1 = $src2
/*504243*/    OPC_Scope, 27|128,1/*155*/, /*->504401*/ // 2 children in Scope
/*504246*/      OPC_MoveChild2,
/*504247*/      OPC_SwitchOpcode /*2 cases */, 74, TARGET_VAL(ISD::LOAD),// ->504325
/*504251*/        OPC_RecordMemRef,
/*504252*/        OPC_RecordNode, // #2 = 'ld' chained node
/*504253*/        OPC_CheckFoldableChainNode,
/*504254*/        OPC_RecordChild1, // #3 = $src3
/*504255*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*504257*/        OPC_CheckPredicate, 9, // Predicate_load
/*504259*/        OPC_MoveParent,
/*504260*/        OPC_SwitchType /*3 cases */, 19, MVT::v16i32,// ->504282
/*504263*/          OPC_CheckPatternPredicate, 148, // (Subtarget->hasVNNI())
/*504265*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*504268*/          OPC_EmitMergeInputChains1_2,
/*504269*/          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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPDPBUSDZm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*504282*/        /*SwitchType*/ 19, MVT::v8i32,// ->504303
/*504284*/          OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*504286*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*504289*/          OPC_EmitMergeInputChains1_2,
/*504290*/          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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPDPBUSDZ256m:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*504303*/        /*SwitchType*/ 19, MVT::v4i32,// ->504324
/*504305*/          OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*504307*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*504310*/          OPC_EmitMergeInputChains1_2,
/*504311*/          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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPDPBUSDZ128m:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*504324*/        0, // EndSwitchType
/*504325*/      /*SwitchOpcode*/ 72, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->504400
/*504328*/        OPC_RecordMemRef,
/*504329*/        OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*504330*/        OPC_CheckFoldableChainNode,
/*504331*/        OPC_RecordChild1, // #3 = $src3
/*504332*/        OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*504334*/        OPC_MoveParent,
/*504335*/        OPC_SwitchType /*3 cases */, 19, MVT::v16i32,// ->504357
/*504338*/          OPC_CheckPatternPredicate, 148, // (Subtarget->hasVNNI())
/*504340*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*504343*/          OPC_EmitMergeInputChains1_2,
/*504344*/          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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                    // Dst: (VPDPBUSDZmb:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*504357*/        /*SwitchType*/ 19, MVT::v8i32,// ->504378
/*504359*/          OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*504361*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*504364*/          OPC_EmitMergeInputChains1_2,
/*504365*/          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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                    // Dst: (VPDPBUSDZ256mb:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*504378*/        /*SwitchType*/ 19, MVT::v4i32,// ->504399
/*504380*/          OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*504382*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*504385*/          OPC_EmitMergeInputChains1_2,
/*504386*/          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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                    // Dst: (VPDPBUSDZ128mb:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*504399*/        0, // EndSwitchType
/*504400*/      0, // EndSwitchOpcode
/*504401*/    /*Scope*/ 42, /*->504444*/
/*504402*/      OPC_RecordChild2, // #2 = $src3
/*504403*/      OPC_SwitchType /*3 cases */, 11, MVT::v16i32,// ->504417
/*504406*/        OPC_CheckPatternPredicate, 148, // (Subtarget->hasVNNI())
/*504408*/        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)
/*504417*/      /*SwitchType*/ 11, MVT::v8i32,// ->504430
/*504419*/        OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*504421*/        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)
/*504430*/      /*SwitchType*/ 11, MVT::v4i32,// ->504443
/*504432*/        OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*504434*/        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)
/*504443*/      0, // EndSwitchType
/*504444*/    0, /*End of Scope*/
/*504445*/  /*SwitchOpcode*/ 76|128,1/*204*/, TARGET_VAL(X86ISD::VPDPBUSDS),// ->504653
/*504449*/    OPC_RecordChild0, // #0 = $src1
/*504450*/    OPC_RecordChild1, // #1 = $src2
/*504451*/    OPC_Scope, 27|128,1/*155*/, /*->504609*/ // 2 children in Scope
/*504454*/      OPC_MoveChild2,
/*504455*/      OPC_SwitchOpcode /*2 cases */, 74, TARGET_VAL(ISD::LOAD),// ->504533
/*504459*/        OPC_RecordMemRef,
/*504460*/        OPC_RecordNode, // #2 = 'ld' chained node
/*504461*/        OPC_CheckFoldableChainNode,
/*504462*/        OPC_RecordChild1, // #3 = $src3
/*504463*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*504465*/        OPC_CheckPredicate, 9, // Predicate_load
/*504467*/        OPC_MoveParent,
/*504468*/        OPC_SwitchType /*3 cases */, 19, MVT::v16i32,// ->504490
/*504471*/          OPC_CheckPatternPredicate, 148, // (Subtarget->hasVNNI())
/*504473*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*504476*/          OPC_EmitMergeInputChains1_2,
/*504477*/          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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPDPBUSDSZm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*504490*/        /*SwitchType*/ 19, MVT::v8i32,// ->504511
/*504492*/          OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*504494*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*504497*/          OPC_EmitMergeInputChains1_2,
/*504498*/          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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPDPBUSDSZ256m:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*504511*/        /*SwitchType*/ 19, MVT::v4i32,// ->504532
/*504513*/          OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*504515*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*504518*/          OPC_EmitMergeInputChains1_2,
/*504519*/          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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPDPBUSDSZ128m:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*504532*/        0, // EndSwitchType
/*504533*/      /*SwitchOpcode*/ 72, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->504608
/*504536*/        OPC_RecordMemRef,
/*504537*/        OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*504538*/        OPC_CheckFoldableChainNode,
/*504539*/        OPC_RecordChild1, // #3 = $src3
/*504540*/        OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*504542*/        OPC_MoveParent,
/*504543*/        OPC_SwitchType /*3 cases */, 19, MVT::v16i32,// ->504565
/*504546*/          OPC_CheckPatternPredicate, 148, // (Subtarget->hasVNNI())
/*504548*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*504551*/          OPC_EmitMergeInputChains1_2,
/*504552*/          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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                    // Dst: (VPDPBUSDSZmb:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*504565*/        /*SwitchType*/ 19, MVT::v8i32,// ->504586
/*504567*/          OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*504569*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*504572*/          OPC_EmitMergeInputChains1_2,
/*504573*/          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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                    // Dst: (VPDPBUSDSZ256mb:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*504586*/        /*SwitchType*/ 19, MVT::v4i32,// ->504607
/*504588*/          OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*504590*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*504593*/          OPC_EmitMergeInputChains1_2,
/*504594*/          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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                    // Dst: (VPDPBUSDSZ128mb:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*504607*/        0, // EndSwitchType
/*504608*/      0, // EndSwitchOpcode
/*504609*/    /*Scope*/ 42, /*->504652*/
/*504610*/      OPC_RecordChild2, // #2 = $src3
/*504611*/      OPC_SwitchType /*3 cases */, 11, MVT::v16i32,// ->504625
/*504614*/        OPC_CheckPatternPredicate, 148, // (Subtarget->hasVNNI())
/*504616*/        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)
/*504625*/      /*SwitchType*/ 11, MVT::v8i32,// ->504638
/*504627*/        OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*504629*/        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)
/*504638*/      /*SwitchType*/ 11, MVT::v4i32,// ->504651
/*504640*/        OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*504642*/        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)
/*504651*/      0, // EndSwitchType
/*504652*/    0, /*End of Scope*/
/*504653*/  /*SwitchOpcode*/ 76|128,1/*204*/, TARGET_VAL(X86ISD::VPDPWSSD),// ->504861
/*504657*/    OPC_RecordChild0, // #0 = $src1
/*504658*/    OPC_RecordChild1, // #1 = $src2
/*504659*/    OPC_Scope, 27|128,1/*155*/, /*->504817*/ // 2 children in Scope
/*504662*/      OPC_MoveChild2,
/*504663*/      OPC_SwitchOpcode /*2 cases */, 74, TARGET_VAL(ISD::LOAD),// ->504741
/*504667*/        OPC_RecordMemRef,
/*504668*/        OPC_RecordNode, // #2 = 'ld' chained node
/*504669*/        OPC_CheckFoldableChainNode,
/*504670*/        OPC_RecordChild1, // #3 = $src3
/*504671*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*504673*/        OPC_CheckPredicate, 9, // Predicate_load
/*504675*/        OPC_MoveParent,
/*504676*/        OPC_SwitchType /*3 cases */, 19, MVT::v16i32,// ->504698
/*504679*/          OPC_CheckPatternPredicate, 148, // (Subtarget->hasVNNI())
/*504681*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*504684*/          OPC_EmitMergeInputChains1_2,
/*504685*/          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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPDPWSSDZm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*504698*/        /*SwitchType*/ 19, MVT::v8i32,// ->504719
/*504700*/          OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*504702*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*504705*/          OPC_EmitMergeInputChains1_2,
/*504706*/          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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPDPWSSDZ256m:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*504719*/        /*SwitchType*/ 19, MVT::v4i32,// ->504740
/*504721*/          OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*504723*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*504726*/          OPC_EmitMergeInputChains1_2,
/*504727*/          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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPDPWSSDZ128m:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*504740*/        0, // EndSwitchType
/*504741*/      /*SwitchOpcode*/ 72, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->504816
/*504744*/        OPC_RecordMemRef,
/*504745*/        OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*504746*/        OPC_CheckFoldableChainNode,
/*504747*/        OPC_RecordChild1, // #3 = $src3
/*504748*/        OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*504750*/        OPC_MoveParent,
/*504751*/        OPC_SwitchType /*3 cases */, 19, MVT::v16i32,// ->504773
/*504754*/          OPC_CheckPatternPredicate, 148, // (Subtarget->hasVNNI())
/*504756*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*504759*/          OPC_EmitMergeInputChains1_2,
/*504760*/          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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                    // Dst: (VPDPWSSDZmb:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*504773*/        /*SwitchType*/ 19, MVT::v8i32,// ->504794
/*504775*/          OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*504777*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*504780*/          OPC_EmitMergeInputChains1_2,
/*504781*/          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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                    // Dst: (VPDPWSSDZ256mb:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*504794*/        /*SwitchType*/ 19, MVT::v4i32,// ->504815
/*504796*/          OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*504798*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*504801*/          OPC_EmitMergeInputChains1_2,
/*504802*/          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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                    // Dst: (VPDPWSSDZ128mb:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*504815*/        0, // EndSwitchType
/*504816*/      0, // EndSwitchOpcode
/*504817*/    /*Scope*/ 42, /*->504860*/
/*504818*/      OPC_RecordChild2, // #2 = $src3
/*504819*/      OPC_SwitchType /*3 cases */, 11, MVT::v16i32,// ->504833
/*504822*/        OPC_CheckPatternPredicate, 148, // (Subtarget->hasVNNI())
/*504824*/        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)
/*504833*/      /*SwitchType*/ 11, MVT::v8i32,// ->504846
/*504835*/        OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*504837*/        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)
/*504846*/      /*SwitchType*/ 11, MVT::v4i32,// ->504859
/*504848*/        OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*504850*/        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)
/*504859*/      0, // EndSwitchType
/*504860*/    0, /*End of Scope*/
/*504861*/  /*SwitchOpcode*/ 76|128,1/*204*/, TARGET_VAL(X86ISD::VPDPWSSDS),// ->505069
/*504865*/    OPC_RecordChild0, // #0 = $src1
/*504866*/    OPC_RecordChild1, // #1 = $src2
/*504867*/    OPC_Scope, 27|128,1/*155*/, /*->505025*/ // 2 children in Scope
/*504870*/      OPC_MoveChild2,
/*504871*/      OPC_SwitchOpcode /*2 cases */, 74, TARGET_VAL(ISD::LOAD),// ->504949
/*504875*/        OPC_RecordMemRef,
/*504876*/        OPC_RecordNode, // #2 = 'ld' chained node
/*504877*/        OPC_CheckFoldableChainNode,
/*504878*/        OPC_RecordChild1, // #3 = $src3
/*504879*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*504881*/        OPC_CheckPredicate, 9, // Predicate_load
/*504883*/        OPC_MoveParent,
/*504884*/        OPC_SwitchType /*3 cases */, 19, MVT::v16i32,// ->504906
/*504887*/          OPC_CheckPatternPredicate, 148, // (Subtarget->hasVNNI())
/*504889*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*504892*/          OPC_EmitMergeInputChains1_2,
/*504893*/          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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPDPWSSDSZm:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*504906*/        /*SwitchType*/ 19, MVT::v8i32,// ->504927
/*504908*/          OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*504910*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*504913*/          OPC_EmitMergeInputChains1_2,
/*504914*/          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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPDPWSSDSZ256m:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*504927*/        /*SwitchType*/ 19, MVT::v4i32,// ->504948
/*504929*/          OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*504931*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*504934*/          OPC_EmitMergeInputChains1_2,
/*504935*/          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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPDPWSSDSZ128m:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*504948*/        0, // EndSwitchType
/*504949*/      /*SwitchOpcode*/ 72, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->505024
/*504952*/        OPC_RecordMemRef,
/*504953*/        OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*504954*/        OPC_CheckFoldableChainNode,
/*504955*/        OPC_RecordChild1, // #3 = $src3
/*504956*/        OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*504958*/        OPC_MoveParent,
/*504959*/        OPC_SwitchType /*3 cases */, 19, MVT::v16i32,// ->504981
/*504962*/          OPC_CheckPatternPredicate, 148, // (Subtarget->hasVNNI())
/*504964*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*504967*/          OPC_EmitMergeInputChains1_2,
/*504968*/          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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                    // Dst: (VPDPWSSDSZmb:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src1, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*504981*/        /*SwitchType*/ 19, MVT::v8i32,// ->505002
/*504983*/          OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*504985*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*504988*/          OPC_EmitMergeInputChains1_2,
/*504989*/          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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                    // Dst: (VPDPWSSDSZ256mb:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src1, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*505002*/        /*SwitchType*/ 19, MVT::v4i32,// ->505023
/*505004*/          OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*505006*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*505009*/          OPC_EmitMergeInputChains1_2,
/*505010*/          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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                    // Dst: (VPDPWSSDSZ128mb:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src1, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*505023*/        0, // EndSwitchType
/*505024*/      0, // EndSwitchOpcode
/*505025*/    /*Scope*/ 42, /*->505068*/
/*505026*/      OPC_RecordChild2, // #2 = $src3
/*505027*/      OPC_SwitchType /*3 cases */, 11, MVT::v16i32,// ->505041
/*505030*/        OPC_CheckPatternPredicate, 148, // (Subtarget->hasVNNI())
/*505032*/        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)
/*505041*/      /*SwitchType*/ 11, MVT::v8i32,// ->505054
/*505043*/        OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*505045*/        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)
/*505054*/      /*SwitchType*/ 11, MVT::v4i32,// ->505067
/*505056*/        OPC_CheckPatternPredicate, 149, // (Subtarget->hasVLX()) && (Subtarget->hasVNNI())
/*505058*/        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)
/*505067*/      0, // EndSwitchType
/*505068*/    0, /*End of Scope*/
/*505069*/  /*SwitchOpcode*/ 34|128,1/*162*/, TARGET_VAL(X86ISD::VPSHUFBITQMB),// ->505235
/*505073*/    OPC_RecordChild0, // #0 = $src1
/*505074*/    OPC_Scope, 52, /*->505128*/ // 3 children in Scope
/*505076*/      OPC_CheckChild0Type, MVT::v64i8,
/*505078*/      OPC_Scope, 33, /*->505113*/ // 2 children in Scope
/*505080*/        OPC_MoveChild1,
/*505081*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*505084*/        OPC_RecordMemRef,
/*505085*/        OPC_RecordNode, // #1 = 'ld' chained node
/*505086*/        OPC_CheckFoldableChainNode,
/*505087*/        OPC_RecordChild1, // #2 = $src2
/*505088*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*505090*/        OPC_CheckPredicate, 9, // Predicate_load
/*505092*/        OPC_MoveParent,
/*505093*/        OPC_CheckType, MVT::v64i1,
/*505095*/        OPC_CheckPatternPredicate, 114, // (Subtarget->hasBITALG())
/*505097*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*505100*/        OPC_EmitMergeInputChains1_1,
/*505101*/        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, (ld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VPSHUFBITQMBZrm:{ *:[v64i1] } VR512:{ *:[v64i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*505113*/      /*Scope*/ 13, /*->505127*/
/*505114*/        OPC_RecordChild1, // #1 = $src2
/*505115*/        OPC_CheckType, MVT::v64i1,
/*505117*/        OPC_CheckPatternPredicate, 114, // (Subtarget->hasBITALG())
/*505119*/        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)
/*505127*/      0, /*End of Scope*/
/*505128*/    /*Scope*/ 52, /*->505181*/
/*505129*/      OPC_CheckChild0Type, MVT::v32i8,
/*505131*/      OPC_Scope, 33, /*->505166*/ // 2 children in Scope
/*505133*/        OPC_MoveChild1,
/*505134*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*505137*/        OPC_RecordMemRef,
/*505138*/        OPC_RecordNode, // #1 = 'ld' chained node
/*505139*/        OPC_CheckFoldableChainNode,
/*505140*/        OPC_RecordChild1, // #2 = $src2
/*505141*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*505143*/        OPC_CheckPredicate, 9, // Predicate_load
/*505145*/        OPC_MoveParent,
/*505146*/        OPC_CheckType, MVT::v32i1,
/*505148*/        OPC_CheckPatternPredicate, 115, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/*505150*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*505153*/        OPC_EmitMergeInputChains1_1,
/*505154*/        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, (ld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VPSHUFBITQMBZ256rm:{ *:[v32i1] } VR256X:{ *:[v32i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*505166*/      /*Scope*/ 13, /*->505180*/
/*505167*/        OPC_RecordChild1, // #1 = $src2
/*505168*/        OPC_CheckType, MVT::v32i1,
/*505170*/        OPC_CheckPatternPredicate, 115, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/*505172*/        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)
/*505180*/      0, /*End of Scope*/
/*505181*/    /*Scope*/ 52, /*->505234*/
/*505182*/      OPC_CheckChild0Type, MVT::v16i8,
/*505184*/      OPC_Scope, 33, /*->505219*/ // 2 children in Scope
/*505186*/        OPC_MoveChild1,
/*505187*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*505190*/        OPC_RecordMemRef,
/*505191*/        OPC_RecordNode, // #1 = 'ld' chained node
/*505192*/        OPC_CheckFoldableChainNode,
/*505193*/        OPC_RecordChild1, // #2 = $src2
/*505194*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*505196*/        OPC_CheckPredicate, 9, // Predicate_load
/*505198*/        OPC_MoveParent,
/*505199*/        OPC_CheckType, MVT::v16i1,
/*505201*/        OPC_CheckPatternPredicate, 115, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/*505203*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*505206*/        OPC_EmitMergeInputChains1_1,
/*505207*/        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, (ld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VPSHUFBITQMBZ128rm:{ *:[v16i1] } VR128X:{ *:[v16i8] }:$src1, addr:{ *:[iPTR] }:$src2)
/*505219*/      /*Scope*/ 13, /*->505233*/
/*505220*/        OPC_RecordChild1, // #1 = $src2
/*505221*/        OPC_CheckType, MVT::v16i1,
/*505223*/        OPC_CheckPatternPredicate, 115, // (Subtarget->hasBITALG()) && (Subtarget->hasVLX())
/*505225*/        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)
/*505233*/      0, /*End of Scope*/
/*505234*/    0, /*End of Scope*/
/*505235*/  /*SwitchOpcode*/ 2|128,2/*258*/, TARGET_VAL(X86ISD::CVTNE2PS2BF16),// ->505497
/*505239*/    OPC_RecordChild0, // #0 = $src1
/*505240*/    OPC_Scope, 84, /*->505326*/ // 3 children in Scope
/*505242*/      OPC_CheckChild0Type, MVT::v16f32,
/*505244*/      OPC_Scope, 65, /*->505311*/ // 2 children in Scope
/*505246*/        OPC_MoveChild1,
/*505247*/        OPC_SwitchOpcode /*2 cases */, 29, TARGET_VAL(ISD::LOAD),// ->505280
/*505251*/          OPC_RecordMemRef,
/*505252*/          OPC_RecordNode, // #1 = 'ld' chained node
/*505253*/          OPC_CheckFoldableChainNode,
/*505254*/          OPC_RecordChild1, // #2 = $src2
/*505255*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*505257*/          OPC_CheckPredicate, 9, // Predicate_load
/*505259*/          OPC_MoveParent,
/*505260*/          OPC_CheckType, MVT::v32i16,
/*505262*/          OPC_CheckPatternPredicate, 183, // (Subtarget->hasBF16())
/*505264*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*505267*/          OPC_EmitMergeInputChains1_1,
/*505268*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTNE2PS2BF16Zrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86cvtne2ps2bf16:{ *:[v32i16] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VCVTNE2PS2BF16Zrm:{ *:[v32i16] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*505280*/        /*SwitchOpcode*/ 27, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->505310
/*505283*/          OPC_RecordMemRef,
/*505284*/          OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*505285*/          OPC_CheckFoldableChainNode,
/*505286*/          OPC_RecordChild1, // #2 = $src2
/*505287*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*505289*/          OPC_MoveParent,
/*505290*/          OPC_CheckType, MVT::v32i16,
/*505292*/          OPC_CheckPatternPredicate, 183, // (Subtarget->hasBF16())
/*505294*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*505297*/          OPC_EmitMergeInputChains1_1,
/*505298*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTNE2PS2BF16Zrmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v32i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86cvtne2ps2bf16:{ *:[v32i16] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                    // Dst: (VCVTNE2PS2BF16Zrmb:{ *:[v32i16] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*505310*/        0, // EndSwitchOpcode
/*505311*/      /*Scope*/ 13, /*->505325*/
/*505312*/        OPC_RecordChild1, // #1 = $src2
/*505313*/        OPC_CheckType, MVT::v32i16,
/*505315*/        OPC_CheckPatternPredicate, 183, // (Subtarget->hasBF16())
/*505317*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTNE2PS2BF16Zrr), 0,
                      MVT::v32i16, 2/*#Ops*/, 0, 1, 
                  // Src: (X86cvtne2ps2bf16:{ *:[v32i16] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2) - Complexity = 3
                  // Dst: (VCVTNE2PS2BF16Zrr:{ *:[v32i16] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*505325*/      0, /*End of Scope*/
/*505326*/    /*Scope*/ 84, /*->505411*/
/*505327*/      OPC_CheckChild0Type, MVT::v8f32,
/*505329*/      OPC_Scope, 65, /*->505396*/ // 2 children in Scope
/*505331*/        OPC_MoveChild1,
/*505332*/        OPC_SwitchOpcode /*2 cases */, 29, TARGET_VAL(ISD::LOAD),// ->505365
/*505336*/          OPC_RecordMemRef,
/*505337*/          OPC_RecordNode, // #1 = 'ld' chained node
/*505338*/          OPC_CheckFoldableChainNode,
/*505339*/          OPC_RecordChild1, // #2 = $src2
/*505340*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*505342*/          OPC_CheckPredicate, 9, // Predicate_load
/*505344*/          OPC_MoveParent,
/*505345*/          OPC_CheckType, MVT::v16i16,
/*505347*/          OPC_CheckPatternPredicate, 182, // (Subtarget->hasBF16()) && (Subtarget->hasVLX())
/*505349*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*505352*/          OPC_EmitMergeInputChains1_1,
/*505353*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTNE2PS2BF16Z256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86cvtne2ps2bf16:{ *:[v16i16] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VCVTNE2PS2BF16Z256rm:{ *:[v16i16] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*505365*/        /*SwitchOpcode*/ 27, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->505395
/*505368*/          OPC_RecordMemRef,
/*505369*/          OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*505370*/          OPC_CheckFoldableChainNode,
/*505371*/          OPC_RecordChild1, // #2 = $src2
/*505372*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*505374*/          OPC_MoveParent,
/*505375*/          OPC_CheckType, MVT::v16i16,
/*505377*/          OPC_CheckPatternPredicate, 182, // (Subtarget->hasBF16()) && (Subtarget->hasVLX())
/*505379*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*505382*/          OPC_EmitMergeInputChains1_1,
/*505383*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTNE2PS2BF16Z256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86cvtne2ps2bf16:{ *:[v16i16] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                    // Dst: (VCVTNE2PS2BF16Z256rmb:{ *:[v16i16] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*505395*/        0, // EndSwitchOpcode
/*505396*/      /*Scope*/ 13, /*->505410*/
/*505397*/        OPC_RecordChild1, // #1 = $src2
/*505398*/        OPC_CheckType, MVT::v16i16,
/*505400*/        OPC_CheckPatternPredicate, 182, // (Subtarget->hasBF16()) && (Subtarget->hasVLX())
/*505402*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTNE2PS2BF16Z256rr), 0,
                      MVT::v16i16, 2/*#Ops*/, 0, 1, 
                  // Src: (X86cvtne2ps2bf16:{ *:[v16i16] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2) - Complexity = 3
                  // Dst: (VCVTNE2PS2BF16Z256rr:{ *:[v16i16] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2)
/*505410*/      0, /*End of Scope*/
/*505411*/    /*Scope*/ 84, /*->505496*/
/*505412*/      OPC_CheckChild0Type, MVT::v4f32,
/*505414*/      OPC_Scope, 65, /*->505481*/ // 2 children in Scope
/*505416*/        OPC_MoveChild1,
/*505417*/        OPC_SwitchOpcode /*2 cases */, 29, TARGET_VAL(ISD::LOAD),// ->505450
/*505421*/          OPC_RecordMemRef,
/*505422*/          OPC_RecordNode, // #1 = 'ld' chained node
/*505423*/          OPC_CheckFoldableChainNode,
/*505424*/          OPC_RecordChild1, // #2 = $src2
/*505425*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*505427*/          OPC_CheckPredicate, 9, // Predicate_load
/*505429*/          OPC_MoveParent,
/*505430*/          OPC_CheckType, MVT::v8i16,
/*505432*/          OPC_CheckPatternPredicate, 182, // (Subtarget->hasBF16()) && (Subtarget->hasVLX())
/*505434*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*505437*/          OPC_EmitMergeInputChains1_1,
/*505438*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTNE2PS2BF16Z128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86cvtne2ps2bf16:{ *:[v8i16] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VCVTNE2PS2BF16Z128rm:{ *:[v8i16] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*505450*/        /*SwitchOpcode*/ 27, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->505480
/*505453*/          OPC_RecordMemRef,
/*505454*/          OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*505455*/          OPC_CheckFoldableChainNode,
/*505456*/          OPC_RecordChild1, // #2 = $src2
/*505457*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*505459*/          OPC_MoveParent,
/*505460*/          OPC_CheckType, MVT::v8i16,
/*505462*/          OPC_CheckPatternPredicate, 182, // (Subtarget->hasBF16()) && (Subtarget->hasVLX())
/*505464*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*505467*/          OPC_EmitMergeInputChains1_1,
/*505468*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTNE2PS2BF16Z128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86cvtne2ps2bf16:{ *:[v8i16] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                    // Dst: (VCVTNE2PS2BF16Z128rmb:{ *:[v8i16] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*505480*/        0, // EndSwitchOpcode
/*505481*/      /*Scope*/ 13, /*->505495*/
/*505482*/        OPC_RecordChild1, // #1 = $src2
/*505483*/        OPC_CheckType, MVT::v8i16,
/*505485*/        OPC_CheckPatternPredicate, 182, // (Subtarget->hasBF16()) && (Subtarget->hasVLX())
/*505487*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTNE2PS2BF16Z128rr), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (X86cvtne2ps2bf16:{ *:[v8i16] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2) - Complexity = 3
                  // Dst: (VCVTNE2PS2BF16Z128rr:{ *:[v8i16] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*505495*/      0, /*End of Scope*/
/*505496*/    0, /*End of Scope*/
/*505497*/  /*SwitchOpcode*/ 78|128,1/*206*/, TARGET_VAL(X86ISD::CVTNEPS2BF16),// ->505707
/*505501*/    OPC_Scope, 29|128,1/*157*/, /*->505661*/ // 2 children in Scope
/*505504*/      OPC_MoveChild0,
/*505505*/      OPC_SwitchOpcode /*2 cases */, 75, TARGET_VAL(ISD::LOAD),// ->505584
/*505509*/        OPC_RecordMemRef,
/*505510*/        OPC_RecordNode, // #0 = 'ld' chained node
/*505511*/        OPC_RecordChild1, // #1 = $src
/*505512*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*505514*/        OPC_CheckPredicate, 9, // Predicate_load
/*505516*/        OPC_SwitchType /*3 cases */, 20, MVT::v16f32,// ->505539
/*505519*/          OPC_MoveParent,
/*505520*/          OPC_CheckType, MVT::v16i16,
/*505522*/          OPC_CheckPatternPredicate, 183, // (Subtarget->hasBF16())
/*505524*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*505527*/          OPC_EmitMergeInputChains1_0,
/*505528*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTNEPS2BF16Zrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86cvtneps2bf16:{ *:[v16i16] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VCVTNEPS2BF16Zrm:{ *:[v16i16] } addr:{ *:[iPTR] }:$src)
/*505539*/        /*SwitchType*/ 20, MVT::v8f32,// ->505561
/*505541*/          OPC_MoveParent,
/*505542*/          OPC_CheckType, MVT::v8i16,
/*505544*/          OPC_CheckPatternPredicate, 182, // (Subtarget->hasBF16()) && (Subtarget->hasVLX())
/*505546*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*505549*/          OPC_EmitMergeInputChains1_0,
/*505550*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTNEPS2BF16Z256rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86cvtneps2bf16:{ *:[v8i16] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VCVTNEPS2BF16Z256rm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*505561*/        /*SwitchType*/ 20, MVT::v4f32,// ->505583
/*505563*/          OPC_MoveParent,
/*505564*/          OPC_CheckType, MVT::v8i16,
/*505566*/          OPC_CheckPatternPredicate, 182, // (Subtarget->hasBF16()) && (Subtarget->hasVLX())
/*505568*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*505571*/          OPC_EmitMergeInputChains1_0,
/*505572*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTNEPS2BF16Z128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86cvtneps2bf16:{ *:[v8i16] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VCVTNEPS2BF16Z128rm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*505583*/        0, // EndSwitchType
/*505584*/      /*SwitchOpcode*/ 73, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->505660
/*505587*/        OPC_RecordMemRef,
/*505588*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*505589*/        OPC_RecordChild1, // #1 = $src
/*505590*/        OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*505592*/        OPC_SwitchType /*3 cases */, 20, MVT::v16f32,// ->505615
/*505595*/          OPC_MoveParent,
/*505596*/          OPC_CheckType, MVT::v16i16,
/*505598*/          OPC_CheckPatternPredicate, 183, // (Subtarget->hasBF16())
/*505600*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*505603*/          OPC_EmitMergeInputChains1_0,
/*505604*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTNEPS2BF16Zrmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86cvtneps2bf16:{ *:[v16i16] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                    // Dst: (VCVTNEPS2BF16Zrmb:{ *:[v16i16] } addr:{ *:[iPTR] }:$src)
/*505615*/        /*SwitchType*/ 20, MVT::v8f32,// ->505637
/*505617*/          OPC_MoveParent,
/*505618*/          OPC_CheckType, MVT::v8i16,
/*505620*/          OPC_CheckPatternPredicate, 182, // (Subtarget->hasBF16()) && (Subtarget->hasVLX())
/*505622*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*505625*/          OPC_EmitMergeInputChains1_0,
/*505626*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTNEPS2BF16Z256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86cvtneps2bf16:{ *:[v8i16] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                    // Dst: (VCVTNEPS2BF16Z256rmb:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*505637*/        /*SwitchType*/ 20, MVT::v4f32,// ->505659
/*505639*/          OPC_MoveParent,
/*505640*/          OPC_CheckType, MVT::v8i16,
/*505642*/          OPC_CheckPatternPredicate, 182, // (Subtarget->hasBF16()) && (Subtarget->hasVLX())
/*505644*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*505647*/          OPC_EmitMergeInputChains1_0,
/*505648*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTNEPS2BF16Z128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86cvtneps2bf16:{ *:[v8i16] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                    // Dst: (VCVTNEPS2BF16Z128rmb:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*505659*/        0, // EndSwitchType
/*505660*/      0, // EndSwitchOpcode
/*505661*/    /*Scope*/ 44, /*->505706*/
/*505662*/      OPC_RecordChild0, // #0 = $src
/*505663*/      OPC_SwitchType /*2 cases */, 11, MVT::v16i16,// ->505677
/*505666*/        OPC_CheckChild0Type, MVT::v16f32,
/*505668*/        OPC_CheckPatternPredicate, 183, // (Subtarget->hasBF16())
/*505670*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTNEPS2BF16Zrr), 0,
                      MVT::v16i16, 1/*#Ops*/, 0, 
                  // Src: (X86cvtneps2bf16:{ *:[v16i16] } VR512:{ *:[v16f32] }:$src) - Complexity = 3
                  // Dst: (VCVTNEPS2BF16Zrr:{ *:[v16i16] } VR512:{ *:[v16f32] }:$src)
/*505677*/      /*SwitchType*/ 26, MVT::v8i16,// ->505705
/*505679*/        OPC_Scope, 11, /*->505692*/ // 2 children in Scope
/*505681*/          OPC_CheckChild0Type, MVT::v8f32,
/*505683*/          OPC_CheckPatternPredicate, 182, // (Subtarget->hasBF16()) && (Subtarget->hasVLX())
/*505685*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTNEPS2BF16Z256rr), 0,
                        MVT::v8i16, 1/*#Ops*/, 0, 
                    // Src: (X86cvtneps2bf16:{ *:[v8i16] } VR256X:{ *:[v8f32] }:$src) - Complexity = 3
                    // Dst: (VCVTNEPS2BF16Z256rr:{ *:[v8i16] } VR256X:{ *:[v8f32] }:$src)
/*505692*/        /*Scope*/ 11, /*->505704*/
/*505693*/          OPC_CheckChild0Type, MVT::v4f32,
/*505695*/          OPC_CheckPatternPredicate, 182, // (Subtarget->hasBF16()) && (Subtarget->hasVLX())
/*505697*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTNEPS2BF16Z128rr), 0,
                        MVT::v8i16, 1/*#Ops*/, 0, 
                    // Src: (X86cvtneps2bf16:{ *:[v8i16] } VR128X:{ *:[v4f32] }:$src) - Complexity = 3
                    // Dst: (VCVTNEPS2BF16Z128rr:{ *:[v8i16] } VR128X:{ *:[v4f32] }:$src)
/*505704*/        0, /*End of Scope*/
/*505705*/      0, // EndSwitchType
/*505706*/    0, /*End of Scope*/
/*505707*/  /*SwitchOpcode*/ 85, TARGET_VAL(X86ISD::VFPCLASSS),// ->505795
/*505710*/    OPC_RecordChild0, // #0 = $src1
/*505711*/    OPC_Scope, 40, /*->505753*/ // 2 children in Scope
/*505713*/      OPC_CheckChild0Type, MVT::v4f32,
/*505715*/      OPC_RecordChild1, // #1 = $src2
/*505716*/      OPC_MoveChild1,
/*505717*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*505720*/      OPC_MoveParent,
/*505721*/      OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*505723*/      OPC_Scope, 18, /*->505743*/ // 2 children in Scope
/*505725*/        OPC_CheckComplexPat, /*CP*/2, /*#*/0, // selectScalarSSELoad:$src1 #2 #3 #4 #5 #6 + chain result
/*505728*/        OPC_EmitMergeInputChains, 1, 7, 
/*505731*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSSSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v1i1, 6/*#Ops*/, 2, 3, 4, 5, 6, 1, 
                  // Src: (X86Vfpclasss:{ *:[v1i1] } sse_load_f32:{ *:[v4f32] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 24
                  // Dst: (VFPCLASSSSZrm:{ *:[v1i1] } sse_load_f32:{ *:[v4f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*505743*/      /*Scope*/ 8, /*->505752*/
/*505744*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSSSZrr), 0,
                      MVT::v1i1, 2/*#Ops*/, 0, 1, 
                  // Src: (X86Vfpclasss:{ *:[v1i1] } VR128X:{ *:[v4f32] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 6
                  // Dst: (VFPCLASSSSZrr:{ *:[v1i1] } VR128X:{ *:[v4f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*505752*/      0, /*End of Scope*/
/*505753*/    /*Scope*/ 40, /*->505794*/
/*505754*/      OPC_CheckChild0Type, MVT::v2f64,
/*505756*/      OPC_RecordChild1, // #1 = $src2
/*505757*/      OPC_MoveChild1,
/*505758*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*505761*/      OPC_MoveParent,
/*505762*/      OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*505764*/      OPC_Scope, 18, /*->505784*/ // 2 children in Scope
/*505766*/        OPC_CheckComplexPat, /*CP*/3, /*#*/0, // selectScalarSSELoad:$src1 #2 #3 #4 #5 #6 + chain result
/*505769*/        OPC_EmitMergeInputChains, 1, 7, 
/*505772*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSSDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v1i1, 6/*#Ops*/, 2, 3, 4, 5, 6, 1, 
                  // Src: (X86Vfpclasss:{ *:[v1i1] } sse_load_f64:{ *:[v2f64] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 24
                  // Dst: (VFPCLASSSDZrm:{ *:[v1i1] } sse_load_f64:{ *:[v2f64] }:$src1, (timm:{ *:[i32] }):$src2)
/*505784*/      /*Scope*/ 8, /*->505793*/
/*505785*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFPCLASSSDZrr), 0,
                      MVT::v1i1, 2/*#Ops*/, 0, 1, 
                  // Src: (X86Vfpclasss:{ *:[v1i1] } VR128X:{ *:[v2f64] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 6
                  // Dst: (VFPCLASSSDZrr:{ *:[v1i1] } VR128X:{ *:[v2f64] }:$src1, (timm:{ *:[i32] }):$src2)
/*505793*/      0, /*End of Scope*/
/*505794*/    0, /*End of Scope*/
/*505795*/  /*SwitchOpcode*/ 97|128,5/*737*/, TARGET_VAL(X86ISD::VZEXT_LOAD),// ->506536
/*505799*/    OPC_RecordMemRef,
/*505800*/    OPC_RecordNode, // #0 = 'X86vzld' chained node
/*505801*/    OPC_RecordChild1, // #1 = $src
/*505802*/    OPC_Scope, 42, /*->505846*/ // 20 children in Scope
/*505804*/      OPC_CheckPredicate, 50, // Predicate_X86vzload32
/*505806*/      OPC_CheckType, MVT::v4i32,
/*505808*/      OPC_Scope, 17, /*->505827*/ // 2 children in Scope
/*505810*/        OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*505812*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*505815*/        OPC_EmitMergeInputChains1_0,
/*505816*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDI2PDIrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86vzld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload32>> - Complexity = 22
                  // Dst: (VMOVDI2PDIrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*505827*/      /*Scope*/ 17, /*->505845*/
/*505828*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*505830*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*505833*/        OPC_EmitMergeInputChains1_0,
/*505834*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MOVDI2PDIrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86vzld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload32>> - Complexity = 22
                  // Dst: (MOVDI2PDIrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*505845*/      0, /*End of Scope*/
/*505846*/    /*Scope*/ 42, /*->505889*/
/*505847*/      OPC_CheckPredicate, 49, // Predicate_X86vzload64
/*505849*/      OPC_CheckType, MVT::v2i64,
/*505851*/      OPC_Scope, 17, /*->505870*/ // 2 children in Scope
/*505853*/        OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*505855*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*505858*/        OPC_EmitMergeInputChains1_0,
/*505859*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVQI2PQIrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86vzld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>> - Complexity = 22
                  // Dst: (VMOVQI2PQIrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*505870*/      /*Scope*/ 17, /*->505888*/
/*505871*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*505873*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*505876*/        OPC_EmitMergeInputChains1_0,
/*505877*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MOVQI2PQIrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86vzld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>> - Complexity = 22
                  // Dst: (MOVQI2PQIrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*505888*/      0, /*End of Scope*/
/*505889*/    /*Scope*/ 21, /*->505911*/
/*505890*/      OPC_CheckPredicate, 50, // Predicate_X86vzload32
/*505892*/      OPC_CheckType, MVT::v4i32,
/*505894*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*505896*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*505899*/      OPC_EmitMergeInputChains1_0,
/*505900*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDI2PDIZrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (X86vzld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload32>> - Complexity = 22
                // Dst: (VMOVDI2PDIZrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*505911*/    /*Scope*/ 21, /*->505933*/
/*505912*/      OPC_CheckPredicate, 49, // Predicate_X86vzload64
/*505914*/      OPC_CheckType, MVT::v2i64,
/*505916*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*505918*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*505921*/      OPC_EmitMergeInputChains1_0,
/*505922*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVQI2PQIZrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (X86vzld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>> - Complexity = 22
                // Dst: (VMOVQI2PQIZrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*505933*/    /*Scope*/ 36, /*->505970*/
/*505934*/      OPC_CheckPredicate, 50, // Predicate_X86vzload32
/*505936*/      OPC_CheckType, MVT::v8i32,
/*505938*/      OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*505940*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*505943*/      OPC_EmitMergeInputChains1_0,
/*505944*/      OPC_EmitInteger, MVT::i64, 0, 
/*505947*/      OPC_EmitNode1, TARGET_VAL(X86::VMOVDI2PDIrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8
/*505958*/      OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*505961*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                    MVT::v8i32, 3/*#Ops*/, 7, 8, 9, 
                // Src: (X86vzld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload32>> - Complexity = 22
                // Dst: (SUBREG_TO_REG:{ *:[v8i32] } 0:{ *:[i64] }, (VMOVDI2PDIrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src), sub_xmm:{ *:[i32] })
/*505970*/    /*Scope*/ 36, /*->506007*/
/*505971*/      OPC_CheckPredicate, 49, // Predicate_X86vzload64
/*505973*/      OPC_CheckType, MVT::v4i64,
/*505975*/      OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*505977*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*505980*/      OPC_EmitMergeInputChains1_0,
/*505981*/      OPC_EmitInteger, MVT::i64, 0, 
/*505984*/      OPC_EmitNode1, TARGET_VAL(X86::VMOVQI2PQIrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8
/*505995*/      OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*505998*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                    MVT::v4i64, 3/*#Ops*/, 7, 8, 9, 
                // Src: (X86vzld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>> - Complexity = 22
                // Dst: (SUBREG_TO_REG:{ *:[v4i64] } 0:{ *:[i64] }, (VMOVQI2PQIrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src), sub_xmm:{ *:[i32] })
/*506007*/    /*Scope*/ 36, /*->506044*/
/*506008*/      OPC_CheckPredicate, 50, // Predicate_X86vzload32
/*506010*/      OPC_CheckType, MVT::v8i32,
/*506012*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*506014*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*506017*/      OPC_EmitMergeInputChains1_0,
/*506018*/      OPC_EmitInteger, MVT::i32, 0, 
/*506021*/      OPC_EmitNode1, TARGET_VAL(X86::VMOVDI2PDIZrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8
/*506032*/      OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*506035*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                    MVT::v8i32, 3/*#Ops*/, 7, 8, 9, 
                // Src: (X86vzld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload32>> - Complexity = 22
                // Dst: (SUBREG_TO_REG:{ *:[v8i32] } 0:{ *:[i32] }, (VMOVDI2PDIZrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src), sub_xmm:{ *:[i32] })
/*506044*/    /*Scope*/ 36, /*->506081*/
/*506045*/      OPC_CheckPredicate, 49, // Predicate_X86vzload64
/*506047*/      OPC_CheckType, MVT::v4i64,
/*506049*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*506051*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*506054*/      OPC_EmitMergeInputChains1_0,
/*506055*/      OPC_EmitInteger, MVT::i64, 0, 
/*506058*/      OPC_EmitNode1, TARGET_VAL(X86::VMOVQI2PQIZrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8
/*506069*/      OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*506072*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                    MVT::v4i64, 3/*#Ops*/, 7, 8, 9, 
                // Src: (X86vzld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>> - Complexity = 22
                // Dst: (SUBREG_TO_REG:{ *:[v4i64] } 0:{ *:[i64] }, (VMOVQI2PQIZrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src), sub_xmm:{ *:[i32] })
/*506081*/    /*Scope*/ 36, /*->506118*/
/*506082*/      OPC_CheckPredicate, 50, // Predicate_X86vzload32
/*506084*/      OPC_CheckType, MVT::v16i32,
/*506086*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*506088*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*506091*/      OPC_EmitMergeInputChains1_0,
/*506092*/      OPC_EmitInteger, MVT::i32, 0, 
/*506095*/      OPC_EmitNode1, TARGET_VAL(X86::VMOVDI2PDIZrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8
/*506106*/      OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*506109*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                    MVT::v16i32, 3/*#Ops*/, 7, 8, 9, 
                // Src: (X86vzld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload32>> - Complexity = 22
                // Dst: (SUBREG_TO_REG:{ *:[v16i32] } 0:{ *:[i32] }, (VMOVDI2PDIZrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src), sub_xmm:{ *:[i32] })
/*506118*/    /*Scope*/ 36, /*->506155*/
/*506119*/      OPC_CheckPredicate, 49, // Predicate_X86vzload64
/*506121*/      OPC_CheckType, MVT::v8i64,
/*506123*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*506125*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*506128*/      OPC_EmitMergeInputChains1_0,
/*506129*/      OPC_EmitInteger, MVT::i64, 0, 
/*506132*/      OPC_EmitNode1, TARGET_VAL(X86::VMOVQI2PQIZrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8
/*506143*/      OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*506146*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                    MVT::v8i64, 3/*#Ops*/, 7, 8, 9, 
                // Src: (X86vzld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>> - Complexity = 22
                // Dst: (SUBREG_TO_REG:{ *:[v8i64] } 0:{ *:[i64] }, (VMOVQI2PQIZrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src), sub_xmm:{ *:[i32] })
/*506155*/    /*Scope*/ 42, /*->506198*/
/*506156*/      OPC_CheckPredicate, 50, // Predicate_X86vzload32
/*506158*/      OPC_CheckType, MVT::v4f32,
/*506160*/      OPC_Scope, 17, /*->506179*/ // 2 children in Scope
/*506162*/        OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*506164*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*506167*/        OPC_EmitMergeInputChains1_0,
/*506168*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86vzld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload32>> - Complexity = 22
                  // Dst: (VMOVSSrm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*506179*/      /*Scope*/ 17, /*->506197*/
/*506180*/        OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*506182*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*506185*/        OPC_EmitMergeInputChains1_0,
/*506186*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MOVSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86vzld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload32>> - Complexity = 22
                  // Dst: (MOVSSrm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*506197*/      0, /*End of Scope*/
/*506198*/    /*Scope*/ 42, /*->506241*/
/*506199*/      OPC_CheckPredicate, 49, // Predicate_X86vzload64
/*506201*/      OPC_CheckType, MVT::v2f64,
/*506203*/      OPC_Scope, 17, /*->506222*/ // 2 children in Scope
/*506205*/        OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*506207*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*506210*/        OPC_EmitMergeInputChains1_0,
/*506211*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86vzld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>> - Complexity = 22
                  // Dst: (VMOVSDrm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*506222*/      /*Scope*/ 17, /*->506240*/
/*506223*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*506225*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*506228*/        OPC_EmitMergeInputChains1_0,
/*506229*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MOVSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86vzld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>> - Complexity = 22
                  // Dst: (MOVSDrm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*506240*/      0, /*End of Scope*/
/*506241*/    /*Scope*/ 21, /*->506263*/
/*506242*/      OPC_CheckPredicate, 50, // Predicate_X86vzload32
/*506244*/      OPC_CheckType, MVT::v4f32,
/*506246*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*506248*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*506251*/      OPC_EmitMergeInputChains1_0,
/*506252*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (X86vzld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload32>> - Complexity = 22
                // Dst: (VMOVSSZrm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*506263*/    /*Scope*/ 21, /*->506285*/
/*506264*/      OPC_CheckPredicate, 49, // Predicate_X86vzload64
/*506266*/      OPC_CheckType, MVT::v2f64,
/*506268*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*506270*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*506273*/      OPC_EmitMergeInputChains1_0,
/*506274*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVSDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (X86vzld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>> - Complexity = 22
                // Dst: (VMOVSDZrm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*506285*/    /*Scope*/ 36, /*->506322*/
/*506286*/      OPC_CheckPredicate, 50, // Predicate_X86vzload32
/*506288*/      OPC_CheckType, MVT::v8f32,
/*506290*/      OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*506292*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*506295*/      OPC_EmitMergeInputChains1_0,
/*506296*/      OPC_EmitInteger, MVT::i32, 0, 
/*506299*/      OPC_EmitNode1, TARGET_VAL(X86::VMOVSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::f128, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8
/*506310*/      OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*506313*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                    MVT::v8f32, 3/*#Ops*/, 7, 8, 9, 
                // Src: (X86vzld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload32>> - Complexity = 22
                // Dst: (SUBREG_TO_REG:{ *:[v8f32] } 0:{ *:[i32] }, (VMOVSSrm:{ *:[f128] } addr:{ *:[iPTR] }:$src), sub_xmm:{ *:[i32] })
/*506322*/    /*Scope*/ 36, /*->506359*/
/*506323*/      OPC_CheckPredicate, 49, // Predicate_X86vzload64
/*506325*/      OPC_CheckType, MVT::v4f64,
/*506327*/      OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*506329*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*506332*/      OPC_EmitMergeInputChains1_0,
/*506333*/      OPC_EmitInteger, MVT::i32, 0, 
/*506336*/      OPC_EmitNode1, TARGET_VAL(X86::VMOVSDrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::f128, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8
/*506347*/      OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*506350*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                    MVT::v4f64, 3/*#Ops*/, 7, 8, 9, 
                // Src: (X86vzld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>> - Complexity = 22
                // Dst: (SUBREG_TO_REG:{ *:[v4f64] } 0:{ *:[i32] }, (VMOVSDrm:{ *:[f128] } addr:{ *:[iPTR] }:$src), sub_xmm:{ *:[i32] })
/*506359*/    /*Scope*/ 36, /*->506396*/
/*506360*/      OPC_CheckPredicate, 50, // Predicate_X86vzload32
/*506362*/      OPC_CheckType, MVT::v8f32,
/*506364*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*506366*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*506369*/      OPC_EmitMergeInputChains1_0,
/*506370*/      OPC_EmitInteger, MVT::i32, 0, 
/*506373*/      OPC_EmitNode1, TARGET_VAL(X86::VMOVSSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::f128, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8
/*506384*/      OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*506387*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                    MVT::v8f32, 3/*#Ops*/, 7, 8, 9, 
                // Src: (X86vzld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload32>> - Complexity = 22
                // Dst: (SUBREG_TO_REG:{ *:[v8f32] } 0:{ *:[i32] }, (VMOVSSZrm:{ *:[f128] } addr:{ *:[iPTR] }:$src), sub_xmm:{ *:[i32] })
/*506396*/    /*Scope*/ 36, /*->506433*/
/*506397*/      OPC_CheckPredicate, 49, // Predicate_X86vzload64
/*506399*/      OPC_CheckType, MVT::v4f64,
/*506401*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*506403*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*506406*/      OPC_EmitMergeInputChains1_0,
/*506407*/      OPC_EmitInteger, MVT::i32, 0, 
/*506410*/      OPC_EmitNode1, TARGET_VAL(X86::VMOVSDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::f128, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8
/*506421*/      OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*506424*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                    MVT::v4f64, 3/*#Ops*/, 7, 8, 9, 
                // Src: (X86vzld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>> - Complexity = 22
                // Dst: (SUBREG_TO_REG:{ *:[v4f64] } 0:{ *:[i32] }, (VMOVSDZrm:{ *:[f128] } addr:{ *:[iPTR] }:$src), sub_xmm:{ *:[i32] })
/*506433*/    /*Scope*/ 36, /*->506470*/
/*506434*/      OPC_CheckPredicate, 50, // Predicate_X86vzload32
/*506436*/      OPC_CheckType, MVT::v16f32,
/*506438*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*506440*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*506443*/      OPC_EmitMergeInputChains1_0,
/*506444*/      OPC_EmitInteger, MVT::i32, 0, 
/*506447*/      OPC_EmitNode1, TARGET_VAL(X86::VMOVSSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::f128, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8
/*506458*/      OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*506461*/      OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                    MVT::v16f32, 3/*#Ops*/, 7, 8, 9, 
                // Src: (X86vzld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload32>> - Complexity = 22
                // Dst: (SUBREG_TO_REG:{ *:[v16f32] } 0:{ *:[i32] }, (VMOVSSZrm:{ *:[f128] } addr:{ *:[iPTR] }:$src), sub_xmm:{ *:[i32] })
/*506470*/    /*Scope*/ 64, /*->506535*/
/*506471*/      OPC_CheckPredicate, 49, // Predicate_X86vzload64
/*506473*/      OPC_SwitchType /*2 cases */, 32, MVT::v8f64,// ->506508
/*506476*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*506478*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*506481*/        OPC_EmitMergeInputChains1_0,
/*506482*/        OPC_EmitInteger, MVT::i32, 0, 
/*506485*/        OPC_EmitNode1, TARGET_VAL(X86::VMOVSDZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::f128, 5/*#Ops*/, 2, 3, 4, 5, 6,  // Results = #8
/*506496*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*506499*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::SUBREG_TO_REG), 0|OPFL_Chain,
                      MVT::v8f64, 3/*#Ops*/, 7, 8, 9, 
                  // Src: (X86vzld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>> - Complexity = 22
                  // Dst: (SUBREG_TO_REG:{ *:[v8f64] } 0:{ *:[i32] }, (VMOVSDZrm:{ *:[f128] } addr:{ *:[iPTR] }:$src), sub_xmm:{ *:[i32] })
/*506508*/      /*SwitchType*/ 24, MVT::v4f32,// ->506534
/*506510*/        OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*506512*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*506515*/        OPC_EmitMergeInputChains1_0,
/*506516*/        OPC_EmitNode1, TARGET_VAL(X86::V_SET0), 0|OPFL_Chain,
                      MVT::v4f32, 0/*#Ops*/,  // Results = #7
/*506522*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MOVLPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 6/*#Ops*/, 7, 2, 3, 4, 5, 6, 
                  // Src: (X86vzld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>> - Complexity = 22
                  // Dst: (MOVLPSrm:{ *:[v4f32] } (V_SET0:{ *:[v4f32] }), addr:{ *:[iPTR] }:$src)
/*506534*/      0, // EndSwitchType
/*506535*/    0, /*End of Scope*/
/*506536*/  /*SwitchOpcode*/ 83|128,5/*723*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->507263
/*506540*/    OPC_RecordMemRef,
/*506541*/    OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*506542*/    OPC_RecordChild1, // #1 = $src
/*506543*/    OPC_Scope, 42, /*->506587*/ // 16 children in Scope
/*506545*/      OPC_CheckPredicate, 99, // Predicate_X86VBroadcastld8
/*506547*/      OPC_SwitchType /*2 cases */, 17, MVT::v16i8,// ->506567
/*506550*/        OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*506552*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*506555*/        OPC_EmitMergeInputChains1_0,
/*506556*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTBrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86VBroadcastld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld8>> - Complexity = 22
                  // Dst: (VPBROADCASTBrm:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)
/*506567*/      /*SwitchType*/ 17, MVT::v32i8,// ->506586
/*506569*/        OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*506571*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*506574*/        OPC_EmitMergeInputChains1_0,
/*506575*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTBYrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v32i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86VBroadcastld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld8>> - Complexity = 22
                  // Dst: (VPBROADCASTBYrm:{ *:[v32i8] } addr:{ *:[iPTR] }:$src)
/*506586*/      0, // EndSwitchType
/*506587*/    /*Scope*/ 42, /*->506630*/
/*506588*/      OPC_CheckPredicate, 100, // Predicate_X86VBroadcastld16
/*506590*/      OPC_SwitchType /*2 cases */, 17, MVT::v8i16,// ->506610
/*506593*/        OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*506595*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*506598*/        OPC_EmitMergeInputChains1_0,
/*506599*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86VBroadcastld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld16>> - Complexity = 22
                  // Dst: (VPBROADCASTWrm:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*506610*/      /*SwitchType*/ 17, MVT::v16i16,// ->506629
/*506612*/        OPC_CheckPatternPredicate, 119, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI())
/*506614*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*506617*/        OPC_EmitMergeInputChains1_0,
/*506618*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWYrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86VBroadcastld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld16>> - Complexity = 22
                  // Dst: (VPBROADCASTWYrm:{ *:[v16i16] } addr:{ *:[iPTR] }:$src)
/*506629*/      0, // EndSwitchType
/*506630*/    /*Scope*/ 42, /*->506673*/
/*506631*/      OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*506633*/      OPC_SwitchType /*2 cases */, 17, MVT::v4i32,// ->506653
/*506636*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*506638*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*506641*/        OPC_EmitMergeInputChains1_0,
/*506642*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTDrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>> - Complexity = 22
                  // Dst: (VPBROADCASTDrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*506653*/      /*SwitchType*/ 17, MVT::v8i32,// ->506672
/*506655*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*506657*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*506660*/        OPC_EmitMergeInputChains1_0,
/*506661*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>> - Complexity = 22
                  // Dst: (VPBROADCASTDYrm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*506672*/      0, // EndSwitchType
/*506673*/    /*Scope*/ 42, /*->506716*/
/*506674*/      OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*506676*/      OPC_SwitchType /*2 cases */, 17, MVT::v2i64,// ->506696
/*506679*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*506681*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*506684*/        OPC_EmitMergeInputChains1_0,
/*506685*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>> - Complexity = 22
                  // Dst: (VPBROADCASTQrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*506696*/      /*SwitchType*/ 17, MVT::v4i64,// ->506715
/*506698*/        OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*506700*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*506703*/        OPC_EmitMergeInputChains1_0,
/*506704*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQYrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>> - Complexity = 22
                  // Dst: (VPBROADCASTQYrm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*506715*/      0, // EndSwitchType
/*506716*/    /*Scope*/ 21, /*->506738*/
/*506717*/      OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*506719*/      OPC_CheckType, MVT::v8i32,
/*506721*/      OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*506723*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*506726*/      OPC_EmitMergeInputChains1_0,
/*506727*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>> - Complexity = 22
                // Dst: (VBROADCASTSSYrm:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*506738*/    /*Scope*/ 21, /*->506760*/
/*506739*/      OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*506741*/      OPC_CheckType, MVT::v4i64,
/*506743*/      OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*506745*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*506748*/      OPC_EmitMergeInputChains1_0,
/*506749*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>> - Complexity = 22
                // Dst: (VBROADCASTSDYrm:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*506760*/    /*Scope*/ 21, /*->506782*/
/*506761*/      OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*506763*/      OPC_CheckType, MVT::v4i32,
/*506765*/      OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*506767*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*506770*/      OPC_EmitMergeInputChains1_0,
/*506771*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>> - Complexity = 22
                // Dst: (VBROADCASTSSrm:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*506782*/    /*Scope*/ 21, /*->506804*/
/*506783*/      OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*506785*/      OPC_CheckType, MVT::v2i64,
/*506787*/      OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*506789*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*506792*/      OPC_EmitMergeInputChains1_0,
/*506793*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>> - Complexity = 22
                // Dst: (VMOVDDUPrm:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*506804*/    /*Scope*/ 61, /*->506866*/
/*506805*/      OPC_CheckPredicate, 99, // Predicate_X86VBroadcastld8
/*506807*/      OPC_SwitchType /*3 cases */, 17, MVT::v64i8,// ->506827
/*506810*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*506812*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*506815*/        OPC_EmitMergeInputChains1_0,
/*506816*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTBZm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v64i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86VBroadcastld:{ *:[v64i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld8>> - Complexity = 22
                  // Dst: (VPBROADCASTBZm:{ *:[v64i8] } addr:{ *:[iPTR] }:$src)
/*506827*/      /*SwitchType*/ 17, MVT::v32i8,// ->506846
/*506829*/        OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*506831*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*506834*/        OPC_EmitMergeInputChains1_0,
/*506835*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTBZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v32i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86VBroadcastld:{ *:[v32i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld8>> - Complexity = 22
                  // Dst: (VPBROADCASTBZ256m:{ *:[v32i8] } addr:{ *:[iPTR] }:$src)
/*506846*/      /*SwitchType*/ 17, MVT::v16i8,// ->506865
/*506848*/        OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*506850*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*506853*/        OPC_EmitMergeInputChains1_0,
/*506854*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTBZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i8, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86VBroadcastld:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld8>> - Complexity = 22
                  // Dst: (VPBROADCASTBZ128m:{ *:[v16i8] } addr:{ *:[iPTR] }:$src)
/*506865*/      0, // EndSwitchType
/*506866*/    /*Scope*/ 61, /*->506928*/
/*506867*/      OPC_CheckPredicate, 100, // Predicate_X86VBroadcastld16
/*506869*/      OPC_SwitchType /*3 cases */, 17, MVT::v32i16,// ->506889
/*506872*/        OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*506874*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*506877*/        OPC_EmitMergeInputChains1_0,
/*506878*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWZm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v32i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86VBroadcastld:{ *:[v32i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld16>> - Complexity = 22
                  // Dst: (VPBROADCASTWZm:{ *:[v32i16] } addr:{ *:[iPTR] }:$src)
/*506889*/      /*SwitchType*/ 17, MVT::v16i16,// ->506908
/*506891*/        OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*506893*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*506896*/        OPC_EmitMergeInputChains1_0,
/*506897*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86VBroadcastld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld16>> - Complexity = 22
                  // Dst: (VPBROADCASTWZ256m:{ *:[v16i16] } addr:{ *:[iPTR] }:$src)
/*506908*/      /*SwitchType*/ 17, MVT::v8i16,// ->506927
/*506910*/        OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*506912*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*506915*/        OPC_EmitMergeInputChains1_0,
/*506916*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTWZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i16, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86VBroadcastld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld16>> - Complexity = 22
                  // Dst: (VPBROADCASTWZ128m:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)
/*506927*/      0, // EndSwitchType
/*506928*/    /*Scope*/ 61, /*->506990*/
/*506929*/      OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*506931*/      OPC_SwitchType /*3 cases */, 17, MVT::v16i32,// ->506951
/*506934*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*506936*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*506939*/        OPC_EmitMergeInputChains1_0,
/*506940*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTDZm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>> - Complexity = 22
                  // Dst: (VPBROADCASTDZm:{ *:[v16i32] } addr:{ *:[iPTR] }:$src)
/*506951*/      /*SwitchType*/ 17, MVT::v8i32,// ->506970
/*506953*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*506955*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*506958*/        OPC_EmitMergeInputChains1_0,
/*506959*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTDZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>> - Complexity = 22
                  // Dst: (VPBROADCASTDZ256m:{ *:[v8i32] } addr:{ *:[iPTR] }:$src)
/*506970*/      /*SwitchType*/ 17, MVT::v4i32,// ->506989
/*506972*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*506974*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*506977*/        OPC_EmitMergeInputChains1_0,
/*506978*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTDZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>> - Complexity = 22
                  // Dst: (VPBROADCASTDZ128m:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)
/*506989*/      0, // EndSwitchType
/*506990*/    /*Scope*/ 61, /*->507052*/
/*506991*/      OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*506993*/      OPC_SwitchType /*3 cases */, 17, MVT::v8i64,// ->507013
/*506996*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*506998*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*507001*/        OPC_EmitMergeInputChains1_0,
/*507002*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQZm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>> - Complexity = 22
                  // Dst: (VPBROADCASTQZm:{ *:[v8i64] } addr:{ *:[iPTR] }:$src)
/*507013*/      /*SwitchType*/ 17, MVT::v4i64,// ->507032
/*507015*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*507017*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*507020*/        OPC_EmitMergeInputChains1_0,
/*507021*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>> - Complexity = 22
                  // Dst: (VPBROADCASTQZ256m:{ *:[v4i64] } addr:{ *:[iPTR] }:$src)
/*507032*/      /*SwitchType*/ 17, MVT::v2i64,// ->507051
/*507034*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*507036*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*507039*/        OPC_EmitMergeInputChains1_0,
/*507040*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPBROADCASTQZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2i64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>> - Complexity = 22
                  // Dst: (VPBROADCASTQZ128m:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)
/*507051*/      0, // EndSwitchType
/*507052*/    /*Scope*/ 42, /*->507095*/
/*507053*/      OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*507055*/      OPC_SwitchType /*2 cases */, 17, MVT::v4f32,// ->507075
/*507058*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*507060*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*507063*/        OPC_EmitMergeInputChains1_0,
/*507064*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>> - Complexity = 22
                  // Dst: (VBROADCASTSSrm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*507075*/      /*SwitchType*/ 17, MVT::v8f32,// ->507094
/*507077*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*507079*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*507082*/        OPC_EmitMergeInputChains1_0,
/*507083*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>> - Complexity = 22
                  // Dst: (VBROADCASTSSYrm:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*507094*/      0, // EndSwitchType
/*507095*/    /*Scope*/ 42, /*->507138*/
/*507096*/      OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*507098*/      OPC_SwitchType /*2 cases */, 17, MVT::v4f64,// ->507118
/*507101*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*507103*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*507106*/        OPC_EmitMergeInputChains1_0,
/*507107*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>> - Complexity = 22
                  // Dst: (VBROADCASTSDYrm:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*507118*/      /*SwitchType*/ 17, MVT::v2f64,// ->507137
/*507120*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*507122*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*507125*/        OPC_EmitMergeInputChains1_0,
/*507126*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>> - Complexity = 22
                  // Dst: (VMOVDDUPrm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*507137*/      0, // EndSwitchType
/*507138*/    /*Scope*/ 61, /*->507200*/
/*507139*/      OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*507141*/      OPC_SwitchType /*3 cases */, 17, MVT::v16f32,// ->507161
/*507144*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*507146*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*507149*/        OPC_EmitMergeInputChains1_0,
/*507150*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSSZm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v16f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>> - Complexity = 22
                  // Dst: (VBROADCASTSSZm:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)
/*507161*/      /*SwitchType*/ 17, MVT::v8f32,// ->507180
/*507163*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*507165*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*507168*/        OPC_EmitMergeInputChains1_0,
/*507169*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSSZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>> - Complexity = 22
                  // Dst: (VBROADCASTSSZ256m:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*507180*/      /*SwitchType*/ 17, MVT::v4f32,// ->507199
/*507182*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*507184*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*507187*/        OPC_EmitMergeInputChains1_0,
/*507188*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSSZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>> - Complexity = 22
                  // Dst: (VBROADCASTSSZ128m:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*507199*/      0, // EndSwitchType
/*507200*/    /*Scope*/ 61, /*->507262*/
/*507201*/      OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*507203*/      OPC_SwitchType /*3 cases */, 17, MVT::v8f64,// ->507223
/*507206*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*507208*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*507211*/        OPC_EmitMergeInputChains1_0,
/*507212*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSDZm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v8f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>> - Complexity = 22
                  // Dst: (VBROADCASTSDZm:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*507223*/      /*SwitchType*/ 17, MVT::v4f64,// ->507242
/*507225*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*507227*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*507230*/        OPC_EmitMergeInputChains1_0,
/*507231*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VBROADCASTSDZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>> - Complexity = 22
                  // Dst: (VBROADCASTSDZ256m:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*507242*/      /*SwitchType*/ 17, MVT::v2f64,// ->507261
/*507244*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*507246*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*507249*/        OPC_EmitMergeInputChains1_0,
/*507250*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDDUPZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                  // Src: (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>> - Complexity = 22
                  // Dst: (VMOVDDUPZ128rm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*507261*/      0, // EndSwitchType
/*507262*/    0, /*End of Scope*/
/*507263*/  /*SwitchOpcode*/ 101|128,8/*1125*/, TARGET_VAL(X86ISD::MGATHER),// ->508392
/*507267*/    OPC_RecordMemRef,
/*507268*/    OPC_RecordNode, // #0 = 'X86masked_gather' chained node
/*507269*/    OPC_RecordChild1, // #1 = $src1
/*507270*/    OPC_RecordChild2, // #2 = $mask
/*507271*/    OPC_RecordChild3, // #3 = $src2
/*507272*/    OPC_Scope, 54, /*->507328*/ // 38 children in Scope
/*507274*/      OPC_CheckPredicate, 107, // Predicate_mgatherv4i32
/*507276*/      OPC_SwitchType /*2 cases */, 23, MVT::v2i64,// ->507302
/*507279*/        OPC_CheckTypeRes, 1, MVT::v2i64,
/*507282*/        OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/*507284*/        OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*507287*/        OPC_EmitMergeInputChains1_0,
/*507288*/        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)
/*507302*/      /*SwitchType*/ 23, MVT::v4i64,// ->507327
/*507304*/        OPC_CheckTypeRes, 1, MVT::v4i64,
/*507307*/        OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/*507309*/        OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*507312*/        OPC_EmitMergeInputChains1_0,
/*507313*/        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)
/*507327*/      0, // EndSwitchType
/*507328*/    /*Scope*/ 27, /*->507356*/
/*507329*/      OPC_CheckPredicate, 108, // Predicate_mgatherv2i64
/*507331*/      OPC_CheckType, MVT::v2i64,
/*507333*/      OPC_CheckTypeRes, 1, MVT::v2i64,
/*507336*/      OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/*507338*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*507341*/      OPC_EmitMergeInputChains1_0,
/*507342*/      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)
/*507356*/    /*Scope*/ 27, /*->507384*/
/*507357*/      OPC_CheckPredicate, 109, // Predicate_mgatherv4i64
/*507359*/      OPC_CheckType, MVT::v4i64,
/*507361*/      OPC_CheckTypeRes, 1, MVT::v4i64,
/*507364*/      OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/*507366*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*507369*/      OPC_EmitMergeInputChains1_0,
/*507370*/      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)
/*507384*/    /*Scope*/ 27, /*->507412*/
/*507385*/      OPC_CheckPredicate, 107, // Predicate_mgatherv4i32
/*507387*/      OPC_CheckType, MVT::v4i32,
/*507389*/      OPC_CheckTypeRes, 1, MVT::v4i32,
/*507392*/      OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/*507394*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*507397*/      OPC_EmitMergeInputChains1_0,
/*507398*/      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)
/*507412*/    /*Scope*/ 27, /*->507440*/
/*507413*/      OPC_CheckPredicate, 110, // Predicate_mgatherv8i32
/*507415*/      OPC_CheckType, MVT::v8i32,
/*507417*/      OPC_CheckTypeRes, 1, MVT::v8i32,
/*507420*/      OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/*507422*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*507425*/      OPC_EmitMergeInputChains1_0,
/*507426*/      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)
/*507440*/    /*Scope*/ 27, /*->507468*/
/*507441*/      OPC_CheckPredicate, 108, // Predicate_mgatherv2i64
/*507443*/      OPC_CheckType, MVT::v4i32,
/*507445*/      OPC_CheckTypeRes, 1, MVT::v4i32,
/*507448*/      OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/*507450*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*507453*/      OPC_EmitMergeInputChains1_0,
/*507454*/      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)
/*507468*/    /*Scope*/ 27, /*->507496*/
/*507469*/      OPC_CheckPredicate, 109, // Predicate_mgatherv4i64
/*507471*/      OPC_CheckType, MVT::v4i32,
/*507473*/      OPC_CheckTypeRes, 1, MVT::v4i32,
/*507476*/      OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/*507478*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*507481*/      OPC_EmitMergeInputChains1_0,
/*507482*/      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)
/*507496*/    /*Scope*/ 27, /*->507524*/
/*507497*/      OPC_CheckPredicate, 110, // Predicate_mgatherv8i32
/*507499*/      OPC_CheckType, MVT::v8i64,
/*507501*/      OPC_CheckTypeRes, 1, MVT::v8i1,
/*507504*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*507506*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*507509*/      OPC_EmitMergeInputChains1_0,
/*507510*/      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)
/*507524*/    /*Scope*/ 27, /*->507552*/
/*507525*/      OPC_CheckPredicate, 111, // Predicate_mgatherv8i64
/*507527*/      OPC_CheckType, MVT::v8i64,
/*507529*/      OPC_CheckTypeRes, 1, MVT::v8i1,
/*507532*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*507534*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*507537*/      OPC_EmitMergeInputChains1_0,
/*507538*/      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)
/*507552*/    /*Scope*/ 27, /*->507580*/
/*507553*/      OPC_CheckPredicate, 107, // Predicate_mgatherv4i32
/*507555*/      OPC_CheckType, MVT::v4i64,
/*507557*/      OPC_CheckTypeRes, 1, MVT::v4i1,
/*507560*/      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*507562*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*507565*/      OPC_EmitMergeInputChains1_0,
/*507566*/      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)
/*507580*/    /*Scope*/ 27, /*->507608*/
/*507581*/      OPC_CheckPredicate, 109, // Predicate_mgatherv4i64
/*507583*/      OPC_CheckType, MVT::v4i64,
/*507585*/      OPC_CheckTypeRes, 1, MVT::v4i1,
/*507588*/      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*507590*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*507593*/      OPC_EmitMergeInputChains1_0,
/*507594*/      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)
/*507608*/    /*Scope*/ 27, /*->507636*/
/*507609*/      OPC_CheckPredicate, 107, // Predicate_mgatherv4i32
/*507611*/      OPC_CheckType, MVT::v2i64,
/*507613*/      OPC_CheckTypeRes, 1, MVT::v2i1,
/*507616*/      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*507618*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*507621*/      OPC_EmitMergeInputChains1_0,
/*507622*/      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)
/*507636*/    /*Scope*/ 27, /*->507664*/
/*507637*/      OPC_CheckPredicate, 108, // Predicate_mgatherv2i64
/*507639*/      OPC_CheckType, MVT::v2i64,
/*507641*/      OPC_CheckTypeRes, 1, MVT::v2i1,
/*507644*/      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*507646*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*507649*/      OPC_EmitMergeInputChains1_0,
/*507650*/      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)
/*507664*/    /*Scope*/ 27, /*->507692*/
/*507665*/      OPC_CheckPredicate, 112, // Predicate_mgatherv16i32
/*507667*/      OPC_CheckType, MVT::v16i32,
/*507669*/      OPC_CheckTypeRes, 1, MVT::v16i1,
/*507672*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*507674*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*507677*/      OPC_EmitMergeInputChains1_0,
/*507678*/      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)
/*507692*/    /*Scope*/ 27, /*->507720*/
/*507693*/      OPC_CheckPredicate, 111, // Predicate_mgatherv8i64
/*507695*/      OPC_CheckType, MVT::v8i32,
/*507697*/      OPC_CheckTypeRes, 1, MVT::v8i1,
/*507700*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*507702*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*507705*/      OPC_EmitMergeInputChains1_0,
/*507706*/      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)
/*507720*/    /*Scope*/ 27, /*->507748*/
/*507721*/      OPC_CheckPredicate, 110, // Predicate_mgatherv8i32
/*507723*/      OPC_CheckType, MVT::v8i32,
/*507725*/      OPC_CheckTypeRes, 1, MVT::v8i1,
/*507728*/      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*507730*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*507733*/      OPC_EmitMergeInputChains1_0,
/*507734*/      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)
/*507748*/    /*Scope*/ 27, /*->507776*/
/*507749*/      OPC_CheckPredicate, 109, // Predicate_mgatherv4i64
/*507751*/      OPC_CheckType, MVT::v4i32,
/*507753*/      OPC_CheckTypeRes, 1, MVT::v4i1,
/*507756*/      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*507758*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*507761*/      OPC_EmitMergeInputChains1_0,
/*507762*/      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)
/*507776*/    /*Scope*/ 27, /*->507804*/
/*507777*/      OPC_CheckPredicate, 107, // Predicate_mgatherv4i32
/*507779*/      OPC_CheckType, MVT::v4i32,
/*507781*/      OPC_CheckTypeRes, 1, MVT::v4i1,
/*507784*/      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*507786*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*507789*/      OPC_EmitMergeInputChains1_0,
/*507790*/      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)
/*507804*/    /*Scope*/ 27, /*->507832*/
/*507805*/      OPC_CheckPredicate, 108, // Predicate_mgatherv2i64
/*507807*/      OPC_CheckType, MVT::v4i32,
/*507809*/      OPC_CheckTypeRes, 1, MVT::v2i1,
/*507812*/      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*507814*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*507817*/      OPC_EmitMergeInputChains1_0,
/*507818*/      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)
/*507832*/    /*Scope*/ 54, /*->507887*/
/*507833*/      OPC_CheckPredicate, 107, // Predicate_mgatherv4i32
/*507835*/      OPC_SwitchType /*2 cases */, 23, MVT::v2f64,// ->507861
/*507838*/        OPC_CheckTypeRes, 1, MVT::v2i64,
/*507841*/        OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/*507843*/        OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*507846*/        OPC_EmitMergeInputChains1_0,
/*507847*/        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)
/*507861*/      /*SwitchType*/ 23, MVT::v4f64,// ->507886
/*507863*/        OPC_CheckTypeRes, 1, MVT::v4i64,
/*507866*/        OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/*507868*/        OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*507871*/        OPC_EmitMergeInputChains1_0,
/*507872*/        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)
/*507886*/      0, // EndSwitchType
/*507887*/    /*Scope*/ 27, /*->507915*/
/*507888*/      OPC_CheckPredicate, 108, // Predicate_mgatherv2i64
/*507890*/      OPC_CheckType, MVT::v2f64,
/*507892*/      OPC_CheckTypeRes, 1, MVT::v2i64,
/*507895*/      OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/*507897*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*507900*/      OPC_EmitMergeInputChains1_0,
/*507901*/      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)
/*507915*/    /*Scope*/ 27, /*->507943*/
/*507916*/      OPC_CheckPredicate, 109, // Predicate_mgatherv4i64
/*507918*/      OPC_CheckType, MVT::v4f64,
/*507920*/      OPC_CheckTypeRes, 1, MVT::v4i64,
/*507923*/      OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/*507925*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*507928*/      OPC_EmitMergeInputChains1_0,
/*507929*/      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)
/*507943*/    /*Scope*/ 27, /*->507971*/
/*507944*/      OPC_CheckPredicate, 107, // Predicate_mgatherv4i32
/*507946*/      OPC_CheckType, MVT::v4f32,
/*507948*/      OPC_CheckTypeRes, 1, MVT::v4i32,
/*507951*/      OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/*507953*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*507956*/      OPC_EmitMergeInputChains1_0,
/*507957*/      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)
/*507971*/    /*Scope*/ 27, /*->507999*/
/*507972*/      OPC_CheckPredicate, 110, // Predicate_mgatherv8i32
/*507974*/      OPC_CheckType, MVT::v8f32,
/*507976*/      OPC_CheckTypeRes, 1, MVT::v8i32,
/*507979*/      OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/*507981*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*507984*/      OPC_EmitMergeInputChains1_0,
/*507985*/      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)
/*507999*/    /*Scope*/ 27, /*->508027*/
/*508000*/      OPC_CheckPredicate, 108, // Predicate_mgatherv2i64
/*508002*/      OPC_CheckType, MVT::v4f32,
/*508004*/      OPC_CheckTypeRes, 1, MVT::v4i32,
/*508007*/      OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/*508009*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*508012*/      OPC_EmitMergeInputChains1_0,
/*508013*/      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)
/*508027*/    /*Scope*/ 27, /*->508055*/
/*508028*/      OPC_CheckPredicate, 109, // Predicate_mgatherv4i64
/*508030*/      OPC_CheckType, MVT::v4f32,
/*508032*/      OPC_CheckTypeRes, 1, MVT::v4i32,
/*508035*/      OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/*508037*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*508040*/      OPC_EmitMergeInputChains1_0,
/*508041*/      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)
/*508055*/    /*Scope*/ 27, /*->508083*/
/*508056*/      OPC_CheckPredicate, 110, // Predicate_mgatherv8i32
/*508058*/      OPC_CheckType, MVT::v8f64,
/*508060*/      OPC_CheckTypeRes, 1, MVT::v8i1,
/*508063*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*508065*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*508068*/      OPC_EmitMergeInputChains1_0,
/*508069*/      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)
/*508083*/    /*Scope*/ 27, /*->508111*/
/*508084*/      OPC_CheckPredicate, 111, // Predicate_mgatherv8i64
/*508086*/      OPC_CheckType, MVT::v8f64,
/*508088*/      OPC_CheckTypeRes, 1, MVT::v8i1,
/*508091*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*508093*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*508096*/      OPC_EmitMergeInputChains1_0,
/*508097*/      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)
/*508111*/    /*Scope*/ 27, /*->508139*/
/*508112*/      OPC_CheckPredicate, 107, // Predicate_mgatherv4i32
/*508114*/      OPC_CheckType, MVT::v4f64,
/*508116*/      OPC_CheckTypeRes, 1, MVT::v4i1,
/*508119*/      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*508121*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*508124*/      OPC_EmitMergeInputChains1_0,
/*508125*/      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)
/*508139*/    /*Scope*/ 27, /*->508167*/
/*508140*/      OPC_CheckPredicate, 109, // Predicate_mgatherv4i64
/*508142*/      OPC_CheckType, MVT::v4f64,
/*508144*/      OPC_CheckTypeRes, 1, MVT::v4i1,
/*508147*/      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*508149*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*508152*/      OPC_EmitMergeInputChains1_0,
/*508153*/      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)
/*508167*/    /*Scope*/ 27, /*->508195*/
/*508168*/      OPC_CheckPredicate, 107, // Predicate_mgatherv4i32
/*508170*/      OPC_CheckType, MVT::v2f64,
/*508172*/      OPC_CheckTypeRes, 1, MVT::v2i1,
/*508175*/      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*508177*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*508180*/      OPC_EmitMergeInputChains1_0,
/*508181*/      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)
/*508195*/    /*Scope*/ 27, /*->508223*/
/*508196*/      OPC_CheckPredicate, 108, // Predicate_mgatherv2i64
/*508198*/      OPC_CheckType, MVT::v2f64,
/*508200*/      OPC_CheckTypeRes, 1, MVT::v2i1,
/*508203*/      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*508205*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*508208*/      OPC_EmitMergeInputChains1_0,
/*508209*/      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)
/*508223*/    /*Scope*/ 27, /*->508251*/
/*508224*/      OPC_CheckPredicate, 112, // Predicate_mgatherv16i32
/*508226*/      OPC_CheckType, MVT::v16f32,
/*508228*/      OPC_CheckTypeRes, 1, MVT::v16i1,
/*508231*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*508233*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*508236*/      OPC_EmitMergeInputChains1_0,
/*508237*/      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)
/*508251*/    /*Scope*/ 27, /*->508279*/
/*508252*/      OPC_CheckPredicate, 111, // Predicate_mgatherv8i64
/*508254*/      OPC_CheckType, MVT::v8f32,
/*508256*/      OPC_CheckTypeRes, 1, MVT::v8i1,
/*508259*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*508261*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*508264*/      OPC_EmitMergeInputChains1_0,
/*508265*/      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)
/*508279*/    /*Scope*/ 27, /*->508307*/
/*508280*/      OPC_CheckPredicate, 110, // Predicate_mgatherv8i32
/*508282*/      OPC_CheckType, MVT::v8f32,
/*508284*/      OPC_CheckTypeRes, 1, MVT::v8i1,
/*508287*/      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*508289*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*508292*/      OPC_EmitMergeInputChains1_0,
/*508293*/      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)
/*508307*/    /*Scope*/ 27, /*->508335*/
/*508308*/      OPC_CheckPredicate, 109, // Predicate_mgatherv4i64
/*508310*/      OPC_CheckType, MVT::v4f32,
/*508312*/      OPC_CheckTypeRes, 1, MVT::v4i1,
/*508315*/      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*508317*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*508320*/      OPC_EmitMergeInputChains1_0,
/*508321*/      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)
/*508335*/    /*Scope*/ 27, /*->508363*/
/*508336*/      OPC_CheckPredicate, 107, // Predicate_mgatherv4i32
/*508338*/      OPC_CheckType, MVT::v4f32,
/*508340*/      OPC_CheckTypeRes, 1, MVT::v4i1,
/*508343*/      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*508345*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*508348*/      OPC_EmitMergeInputChains1_0,
/*508349*/      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)
/*508363*/    /*Scope*/ 27, /*->508391*/
/*508364*/      OPC_CheckPredicate, 108, // Predicate_mgatherv2i64
/*508366*/      OPC_CheckType, MVT::v4f32,
/*508368*/      OPC_CheckTypeRes, 1, MVT::v2i1,
/*508371*/      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*508373*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$src2 #4 #5 #6 #7 #8
/*508376*/      OPC_EmitMergeInputChains1_0,
/*508377*/      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)
/*508391*/    0, /*End of Scope*/
/*508392*/  /*SwitchOpcode*/ 1|128,5/*641*/, TARGET_VAL(X86ISD::MSCATTER),// ->509037
/*508396*/    OPC_RecordMemRef,
/*508397*/    OPC_RecordNode, // #0 = 'X86masked_scatter' chained node
/*508398*/    OPC_RecordChild1, // #1 = $src
/*508399*/    OPC_Scope, 52, /*->508453*/ // 12 children in Scope
/*508401*/      OPC_CheckChild1Type, MVT::v8f64,
/*508403*/      OPC_RecordChild2, // #2 = $mask
/*508404*/      OPC_RecordChild3, // #3 = $dst
/*508405*/      OPC_CheckType, MVT::v8i1,
/*508407*/      OPC_Scope, 21, /*->508430*/ // 2 children in Scope
/*508409*/        OPC_CheckPredicate, 113, // Predicate_mscatterv8i32
/*508411*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*508413*/        OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$dst #4 #5 #6 #7 #8
/*508416*/        OPC_EmitMergeInputChains1_0,
/*508417*/        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)
/*508430*/      /*Scope*/ 21, /*->508452*/
/*508431*/        OPC_CheckPredicate, 114, // Predicate_mscatterv8i64
/*508433*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*508435*/        OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$dst #4 #5 #6 #7 #8
/*508438*/        OPC_EmitMergeInputChains1_0,
/*508439*/        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)
/*508452*/      0, /*End of Scope*/
/*508453*/    /*Scope*/ 52, /*->508506*/
/*508454*/      OPC_CheckChild1Type, MVT::v4f64,
/*508456*/      OPC_RecordChild2, // #2 = $mask
/*508457*/      OPC_RecordChild3, // #3 = $dst
/*508458*/      OPC_CheckType, MVT::v4i1,
/*508460*/      OPC_Scope, 21, /*->508483*/ // 2 children in Scope
/*508462*/        OPC_CheckPredicate, 115, // Predicate_mscatterv4i32
/*508464*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*508466*/        OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$dst #4 #5 #6 #7 #8
/*508469*/        OPC_EmitMergeInputChains1_0,
/*508470*/        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)
/*508483*/      /*Scope*/ 21, /*->508505*/
/*508484*/        OPC_CheckPredicate, 116, // Predicate_mscatterv4i64
/*508486*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*508488*/        OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$dst #4 #5 #6 #7 #8
/*508491*/        OPC_EmitMergeInputChains1_0,
/*508492*/        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)
/*508505*/      0, /*End of Scope*/
/*508506*/    /*Scope*/ 52, /*->508559*/
/*508507*/      OPC_CheckChild1Type, MVT::v2f64,
/*508509*/      OPC_RecordChild2, // #2 = $mask
/*508510*/      OPC_RecordChild3, // #3 = $dst
/*508511*/      OPC_CheckType, MVT::v2i1,
/*508513*/      OPC_Scope, 21, /*->508536*/ // 2 children in Scope
/*508515*/        OPC_CheckPredicate, 115, // Predicate_mscatterv4i32
/*508517*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*508519*/        OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$dst #4 #5 #6 #7 #8
/*508522*/        OPC_EmitMergeInputChains1_0,
/*508523*/        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)
/*508536*/      /*Scope*/ 21, /*->508558*/
/*508537*/        OPC_CheckPredicate, 117, // Predicate_mscatterv2i64
/*508539*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*508541*/        OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$dst #4 #5 #6 #7 #8
/*508544*/        OPC_EmitMergeInputChains1_0,
/*508545*/        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)
/*508558*/      0, /*End of Scope*/
/*508559*/    /*Scope*/ 27, /*->508587*/
/*508560*/      OPC_CheckChild1Type, MVT::v16f32,
/*508562*/      OPC_RecordChild2, // #2 = $mask
/*508563*/      OPC_RecordChild3, // #3 = $dst
/*508564*/      OPC_CheckPredicate, 118, // Predicate_mscatterv16i32
/*508566*/      OPC_CheckType, MVT::v16i1,
/*508568*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*508570*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$dst #4 #5 #6 #7 #8
/*508573*/      OPC_EmitMergeInputChains1_0,
/*508574*/      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)
/*508587*/    /*Scope*/ 52, /*->508640*/
/*508588*/      OPC_CheckChild1Type, MVT::v8f32,
/*508590*/      OPC_RecordChild2, // #2 = $mask
/*508591*/      OPC_RecordChild3, // #3 = $dst
/*508592*/      OPC_CheckType, MVT::v8i1,
/*508594*/      OPC_Scope, 21, /*->508617*/ // 2 children in Scope
/*508596*/        OPC_CheckPredicate, 114, // Predicate_mscatterv8i64
/*508598*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*508600*/        OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$dst #4 #5 #6 #7 #8
/*508603*/        OPC_EmitMergeInputChains1_0,
/*508604*/        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)
/*508617*/      /*Scope*/ 21, /*->508639*/
/*508618*/        OPC_CheckPredicate, 113, // Predicate_mscatterv8i32
/*508620*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*508622*/        OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$dst #4 #5 #6 #7 #8
/*508625*/        OPC_EmitMergeInputChains1_0,
/*508626*/        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)
/*508639*/      0, /*End of Scope*/
/*508640*/    /*Scope*/ 77, /*->508718*/
/*508641*/      OPC_CheckChild1Type, MVT::v4f32,
/*508643*/      OPC_RecordChild2, // #2 = $mask
/*508644*/      OPC_RecordChild3, // #3 = $dst
/*508645*/      OPC_SwitchType /*2 cases */, 46, MVT::v4i1,// ->508694
/*508648*/        OPC_Scope, 21, /*->508671*/ // 2 children in Scope
/*508650*/          OPC_CheckPredicate, 116, // Predicate_mscatterv4i64
/*508652*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*508654*/          OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$dst #4 #5 #6 #7 #8
/*508657*/          OPC_EmitMergeInputChains1_0,
/*508658*/          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)
/*508671*/        /*Scope*/ 21, /*->508693*/
/*508672*/          OPC_CheckPredicate, 115, // Predicate_mscatterv4i32
/*508674*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*508676*/          OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$dst #4 #5 #6 #7 #8
/*508679*/          OPC_EmitMergeInputChains1_0,
/*508680*/          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)
/*508693*/        0, /*End of Scope*/
/*508694*/      /*SwitchType*/ 21, MVT::v2i1,// ->508717
/*508696*/        OPC_CheckPredicate, 117, // Predicate_mscatterv2i64
/*508698*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*508700*/        OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$dst #4 #5 #6 #7 #8
/*508703*/        OPC_EmitMergeInputChains1_0,
/*508704*/        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)
/*508717*/      0, // EndSwitchType
/*508718*/    /*Scope*/ 52, /*->508771*/
/*508719*/      OPC_CheckChild1Type, MVT::v8i64,
/*508721*/      OPC_RecordChild2, // #2 = $mask
/*508722*/      OPC_RecordChild3, // #3 = $dst
/*508723*/      OPC_CheckType, MVT::v8i1,
/*508725*/      OPC_Scope, 21, /*->508748*/ // 2 children in Scope
/*508727*/        OPC_CheckPredicate, 113, // Predicate_mscatterv8i32
/*508729*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*508731*/        OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$dst #4 #5 #6 #7 #8
/*508734*/        OPC_EmitMergeInputChains1_0,
/*508735*/        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)
/*508748*/      /*Scope*/ 21, /*->508770*/
/*508749*/        OPC_CheckPredicate, 114, // Predicate_mscatterv8i64
/*508751*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*508753*/        OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$dst #4 #5 #6 #7 #8
/*508756*/        OPC_EmitMergeInputChains1_0,
/*508757*/        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)
/*508770*/      0, /*End of Scope*/
/*508771*/    /*Scope*/ 52, /*->508824*/
/*508772*/      OPC_CheckChild1Type, MVT::v4i64,
/*508774*/      OPC_RecordChild2, // #2 = $mask
/*508775*/      OPC_RecordChild3, // #3 = $dst
/*508776*/      OPC_CheckType, MVT::v4i1,
/*508778*/      OPC_Scope, 21, /*->508801*/ // 2 children in Scope
/*508780*/        OPC_CheckPredicate, 115, // Predicate_mscatterv4i32
/*508782*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*508784*/        OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$dst #4 #5 #6 #7 #8
/*508787*/        OPC_EmitMergeInputChains1_0,
/*508788*/        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)
/*508801*/      /*Scope*/ 21, /*->508823*/
/*508802*/        OPC_CheckPredicate, 116, // Predicate_mscatterv4i64
/*508804*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*508806*/        OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$dst #4 #5 #6 #7 #8
/*508809*/        OPC_EmitMergeInputChains1_0,
/*508810*/        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)
/*508823*/      0, /*End of Scope*/
/*508824*/    /*Scope*/ 52, /*->508877*/
/*508825*/      OPC_CheckChild1Type, MVT::v2i64,
/*508827*/      OPC_RecordChild2, // #2 = $mask
/*508828*/      OPC_RecordChild3, // #3 = $dst
/*508829*/      OPC_CheckType, MVT::v2i1,
/*508831*/      OPC_Scope, 21, /*->508854*/ // 2 children in Scope
/*508833*/        OPC_CheckPredicate, 115, // Predicate_mscatterv4i32
/*508835*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*508837*/        OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$dst #4 #5 #6 #7 #8
/*508840*/        OPC_EmitMergeInputChains1_0,
/*508841*/        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)
/*508854*/      /*Scope*/ 21, /*->508876*/
/*508855*/        OPC_CheckPredicate, 117, // Predicate_mscatterv2i64
/*508857*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*508859*/        OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$dst #4 #5 #6 #7 #8
/*508862*/        OPC_EmitMergeInputChains1_0,
/*508863*/        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)
/*508876*/      0, /*End of Scope*/
/*508877*/    /*Scope*/ 27, /*->508905*/
/*508878*/      OPC_CheckChild1Type, MVT::v16i32,
/*508880*/      OPC_RecordChild2, // #2 = $mask
/*508881*/      OPC_RecordChild3, // #3 = $dst
/*508882*/      OPC_CheckPredicate, 118, // Predicate_mscatterv16i32
/*508884*/      OPC_CheckType, MVT::v16i1,
/*508886*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*508888*/      OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$dst #4 #5 #6 #7 #8
/*508891*/      OPC_EmitMergeInputChains1_0,
/*508892*/      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)
/*508905*/    /*Scope*/ 52, /*->508958*/
/*508906*/      OPC_CheckChild1Type, MVT::v8i32,
/*508908*/      OPC_RecordChild2, // #2 = $mask
/*508909*/      OPC_RecordChild3, // #3 = $dst
/*508910*/      OPC_CheckType, MVT::v8i1,
/*508912*/      OPC_Scope, 21, /*->508935*/ // 2 children in Scope
/*508914*/        OPC_CheckPredicate, 114, // Predicate_mscatterv8i64
/*508916*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*508918*/        OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$dst #4 #5 #6 #7 #8
/*508921*/        OPC_EmitMergeInputChains1_0,
/*508922*/        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)
/*508935*/      /*Scope*/ 21, /*->508957*/
/*508936*/        OPC_CheckPredicate, 113, // Predicate_mscatterv8i32
/*508938*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*508940*/        OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$dst #4 #5 #6 #7 #8
/*508943*/        OPC_EmitMergeInputChains1_0,
/*508944*/        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)
/*508957*/      0, /*End of Scope*/
/*508958*/    /*Scope*/ 77, /*->509036*/
/*508959*/      OPC_CheckChild1Type, MVT::v4i32,
/*508961*/      OPC_RecordChild2, // #2 = $mask
/*508962*/      OPC_RecordChild3, // #3 = $dst
/*508963*/      OPC_SwitchType /*2 cases */, 46, MVT::v4i1,// ->509012
/*508966*/        OPC_Scope, 21, /*->508989*/ // 2 children in Scope
/*508968*/          OPC_CheckPredicate, 116, // Predicate_mscatterv4i64
/*508970*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*508972*/          OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$dst #4 #5 #6 #7 #8
/*508975*/          OPC_EmitMergeInputChains1_0,
/*508976*/          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)
/*508989*/        /*Scope*/ 21, /*->509011*/
/*508990*/          OPC_CheckPredicate, 115, // Predicate_mscatterv4i32
/*508992*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*508994*/          OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$dst #4 #5 #6 #7 #8
/*508997*/          OPC_EmitMergeInputChains1_0,
/*508998*/          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)
/*509011*/        0, /*End of Scope*/
/*509012*/      /*SwitchType*/ 21, MVT::v2i1,// ->509035
/*509014*/        OPC_CheckPredicate, 117, // Predicate_mscatterv2i64
/*509016*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*509018*/        OPC_CheckComplexPat, /*CP*/12, /*#*/3, // selectVectorAddr:$dst #4 #5 #6 #7 #8
/*509021*/        OPC_EmitMergeInputChains1_0,
/*509022*/        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)
/*509035*/      0, // EndSwitchType
/*509036*/    0, /*End of Scope*/
/*509037*/  /*SwitchOpcode*/ 13|128,1/*141*/, TARGET_VAL(X86ISD::MCVTPS2PH),// ->509182
/*509041*/    OPC_RecordChild0, // #0 = $src1
/*509042*/    OPC_Scope, 45, /*->509089*/ // 3 children in Scope
/*509044*/      OPC_CheckChild0Type, MVT::v16f32,
/*509046*/      OPC_RecordChild1, // #1 = $src2
/*509047*/      OPC_MoveChild1,
/*509048*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*509051*/      OPC_MoveParent,
/*509052*/      OPC_Scope, 17, /*->509071*/ // 2 children in Scope
/*509054*/        OPC_MoveChild2,
/*509055*/        OPC_CheckImmAllZerosV,
/*509056*/        OPC_MoveParent,
/*509057*/        OPC_RecordChild3, // #2 = $mask
/*509058*/        OPC_CheckType, MVT::v16i16,
/*509060*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*509062*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PHZrrkz), 0,
                      MVT::v16i16, 3/*#Ops*/, 2, 0, 1, 
                  // Src: (X86mcvtps2ph:{ *:[v16i16] } VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i32] }):$src2, immAllZerosV:{ *:[v16i16] }, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 10
                  // Dst: (VCVTPS2PHZrrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*509071*/      /*Scope*/ 16, /*->509088*/
/*509072*/        OPC_RecordChild2, // #2 = $src0
/*509073*/        OPC_RecordChild3, // #3 = $mask
/*509074*/        OPC_CheckType, MVT::v16i16,
/*509076*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*509078*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PHZrrk), 0,
                      MVT::v16i16, 4/*#Ops*/, 2, 3, 0, 1, 
                  // Src: (X86mcvtps2ph:{ *:[v16i16] } VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i32] }):$src2, VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 6
                  // Dst: (VCVTPS2PHZrrk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*509088*/      0, /*End of Scope*/
/*509089*/    /*Scope*/ 45, /*->509135*/
/*509090*/      OPC_CheckChild0Type, MVT::v8f32,
/*509092*/      OPC_RecordChild1, // #1 = $src2
/*509093*/      OPC_MoveChild1,
/*509094*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*509097*/      OPC_MoveParent,
/*509098*/      OPC_Scope, 17, /*->509117*/ // 2 children in Scope
/*509100*/        OPC_MoveChild2,
/*509101*/        OPC_CheckImmAllZerosV,
/*509102*/        OPC_MoveParent,
/*509103*/        OPC_RecordChild3, // #2 = $mask
/*509104*/        OPC_CheckType, MVT::v8i16,
/*509106*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*509108*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PHZ256rrkz), 0,
                      MVT::v8i16, 3/*#Ops*/, 2, 0, 1, 
                  // Src: (X86mcvtps2ph:{ *:[v8i16] } VR256X:{ *:[v8f32] }:$src1, (timm:{ *:[i32] }):$src2, immAllZerosV:{ *:[v8i16] }, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 10
                  // Dst: (VCVTPS2PHZ256rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*509117*/      /*Scope*/ 16, /*->509134*/
/*509118*/        OPC_RecordChild2, // #2 = $src0
/*509119*/        OPC_RecordChild3, // #3 = $mask
/*509120*/        OPC_CheckType, MVT::v8i16,
/*509122*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*509124*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PHZ256rrk), 0,
                      MVT::v8i16, 4/*#Ops*/, 2, 3, 0, 1, 
                  // Src: (X86mcvtps2ph:{ *:[v8i16] } VR256X:{ *:[v8f32] }:$src1, (timm:{ *:[i32] }):$src2, VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 6
                  // Dst: (VCVTPS2PHZ256rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*509134*/      0, /*End of Scope*/
/*509135*/    /*Scope*/ 45, /*->509181*/
/*509136*/      OPC_CheckChild0Type, MVT::v4f32,
/*509138*/      OPC_RecordChild1, // #1 = $src2
/*509139*/      OPC_MoveChild1,
/*509140*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*509143*/      OPC_MoveParent,
/*509144*/      OPC_Scope, 17, /*->509163*/ // 2 children in Scope
/*509146*/        OPC_MoveChild2,
/*509147*/        OPC_CheckImmAllZerosV,
/*509148*/        OPC_MoveParent,
/*509149*/        OPC_RecordChild3, // #2 = $mask
/*509150*/        OPC_CheckType, MVT::v8i16,
/*509152*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*509154*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PHZ128rrkz), 0,
                      MVT::v8i16, 3/*#Ops*/, 2, 0, 1, 
                  // Src: (X86mcvtps2ph:{ *:[v8i16] } VR128X:{ *:[v4f32] }:$src1, (timm:{ *:[i32] }):$src2, immAllZerosV:{ *:[v8i16] }, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 10
                  // Dst: (VCVTPS2PHZ128rrkz:{ *:[v8i16] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*509163*/      /*Scope*/ 16, /*->509180*/
/*509164*/        OPC_RecordChild2, // #2 = $src0
/*509165*/        OPC_RecordChild3, // #3 = $mask
/*509166*/        OPC_CheckType, MVT::v8i16,
/*509168*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*509170*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PHZ128rrk), 0,
                      MVT::v8i16, 4/*#Ops*/, 2, 3, 0, 1, 
                  // Src: (X86mcvtps2ph:{ *:[v8i16] } VR128X:{ *:[v4f32] }:$src1, (timm:{ *:[i32] }):$src2, VR128X:{ *:[v8i16] }:$src0, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 6
                  // Dst: (VCVTPS2PHZ128rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*509180*/      0, /*End of Scope*/
/*509181*/    0, /*End of Scope*/
/*509182*/  /*SwitchOpcode*/ 24, TARGET_VAL(X86ISD::EXTRQI),// ->509209
/*509185*/    OPC_RecordChild0, // #0 = $src
/*509186*/    OPC_RecordChild1, // #1 = $len
/*509187*/    OPC_MoveChild1,
/*509188*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*509191*/    OPC_MoveParent,
/*509192*/    OPC_RecordChild2, // #2 = $idx
/*509193*/    OPC_MoveChild2,
/*509194*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*509197*/    OPC_MoveParent,
/*509198*/    OPC_CheckPatternPredicate, 7, // (Subtarget->hasSSE4A())
/*509200*/    OPC_MorphNodeTo1, TARGET_VAL(X86::EXTRQI), 0,
                  MVT::v2i64, 3/*#Ops*/, 0, 1, 2, 
              // Src: (X86extrqi:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src, (timm:{ *:[i8] }):$len, (timm:{ *:[i8] }):$idx) - Complexity = 9
              // Dst: (EXTRQI:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src, (timm:{ *:[i8] }):$len, (timm:{ *:[i8] }):$idx)
/*509209*/  /*SwitchOpcode*/ 26, TARGET_VAL(X86ISD::INSERTQI),// ->509238
/*509212*/    OPC_RecordChild0, // #0 = $src
/*509213*/    OPC_RecordChild1, // #1 = $src2
/*509214*/    OPC_RecordChild2, // #2 = $len
/*509215*/    OPC_MoveChild2,
/*509216*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*509219*/    OPC_MoveParent,
/*509220*/    OPC_RecordChild3, // #3 = $idx
/*509221*/    OPC_MoveChild3,
/*509222*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*509225*/    OPC_MoveParent,
/*509226*/    OPC_CheckPatternPredicate, 7, // (Subtarget->hasSSE4A())
/*509228*/    OPC_MorphNodeTo1, TARGET_VAL(X86::INSERTQI), 0,
                  MVT::v2i64, 4/*#Ops*/, 0, 1, 2, 3, 
              // Src: (X86insertqi:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src, VR128:{ *:[v2i64] }:$src2, (timm:{ *:[i8] }):$len, (timm:{ *:[i8] }):$idx) - Complexity = 9
              // Dst: (INSERTQI:{ *:[v2i64] } VR128:{ *:[v2i64] }:$src, VR128:{ *:[v2i64] }:$src2, (timm:{ *:[i8] }):$len, (timm:{ *:[i8] }):$idx)
/*509238*/  /*SwitchOpcode*/ 5|128,20/*2565*/, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),// ->511807
/*509242*/    OPC_Scope, 14|128,6/*782*/, /*->510027*/ // 5 children in Scope
/*509245*/      OPC_RecordChild0, // #0 = $src
/*509246*/      OPC_Scope, 19, /*->509267*/ // 11 children in Scope
/*509248*/        OPC_CheckChild0Type, MVT::v2i1,
/*509250*/        OPC_CheckChild1Integer, 0, 
/*509252*/        OPC_CheckChild1Type, MVT::iPTR,
/*509254*/        OPC_CheckType, MVT::v1i1,
/*509256*/        OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/*509259*/        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] })
/*509267*/      /*Scope*/ 34, /*->509302*/
/*509268*/        OPC_CheckChild0Type, MVT::v4i1,
/*509270*/        OPC_CheckChild1Integer, 0, 
/*509272*/        OPC_CheckChild1Type, MVT::iPTR,
/*509274*/        OPC_SwitchType /*2 cases */, 11, MVT::v1i1,// ->509288
/*509277*/          OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/*509280*/          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] })
/*509288*/        /*SwitchType*/ 11, MVT::v2i1,// ->509301
/*509290*/          OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/*509293*/          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] })
/*509301*/        0, // EndSwitchType
/*509302*/      /*Scope*/ 47, /*->509350*/
/*509303*/        OPC_CheckChild0Type, MVT::v8i1,
/*509305*/        OPC_CheckChild1Integer, 0, 
/*509307*/        OPC_CheckChild1Type, MVT::iPTR,
/*509309*/        OPC_SwitchType /*3 cases */, 11, MVT::v1i1,// ->509323
/*509312*/          OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/*509315*/          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] })
/*509323*/        /*SwitchType*/ 11, MVT::v2i1,// ->509336
/*509325*/          OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/*509328*/          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] })
/*509336*/        /*SwitchType*/ 11, MVT::v4i1,// ->509349
/*509338*/          OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*509341*/          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] })
/*509349*/        0, // EndSwitchType
/*509350*/      /*Scope*/ 60, /*->509411*/
/*509351*/        OPC_CheckChild0Type, MVT::v16i1,
/*509353*/        OPC_CheckChild1Integer, 0, 
/*509355*/        OPC_CheckChild1Type, MVT::iPTR,
/*509357*/        OPC_SwitchType /*4 cases */, 11, MVT::v1i1,// ->509371
/*509360*/          OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/*509363*/          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] })
/*509371*/        /*SwitchType*/ 11, MVT::v2i1,// ->509384
/*509373*/          OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/*509376*/          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] })
/*509384*/        /*SwitchType*/ 11, MVT::v4i1,// ->509397
/*509386*/          OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*509389*/          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] })
/*509397*/        /*SwitchType*/ 11, MVT::v8i1,// ->509410
/*509399*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*509402*/          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] })
/*509410*/        0, // EndSwitchType
/*509411*/      /*Scope*/ 73, /*->509485*/
/*509412*/        OPC_CheckChild0Type, MVT::v32i1,
/*509414*/        OPC_CheckChild1Integer, 0, 
/*509416*/        OPC_CheckChild1Type, MVT::iPTR,
/*509418*/        OPC_SwitchType /*5 cases */, 11, MVT::v1i1,// ->509432
/*509421*/          OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/*509424*/          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] })
/*509432*/        /*SwitchType*/ 11, MVT::v2i1,// ->509445
/*509434*/          OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/*509437*/          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] })
/*509445*/        /*SwitchType*/ 11, MVT::v4i1,// ->509458
/*509447*/          OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*509450*/          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] })
/*509458*/        /*SwitchType*/ 11, MVT::v8i1,// ->509471
/*509460*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*509463*/          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] })
/*509471*/        /*SwitchType*/ 11, MVT::v16i1,// ->509484
/*509473*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*509476*/          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] })
/*509484*/        0, // EndSwitchType
/*509485*/      /*Scope*/ 73, /*->509559*/
/*509486*/        OPC_CheckChild0Type, MVT::v64i1,
/*509488*/        OPC_CheckChild1Integer, 0, 
/*509490*/        OPC_CheckChild1Type, MVT::iPTR,
/*509492*/        OPC_SwitchType /*5 cases */, 11, MVT::v1i1,// ->509506
/*509495*/          OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/*509498*/          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] })
/*509506*/        /*SwitchType*/ 11, MVT::v2i1,// ->509519
/*509508*/          OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/*509511*/          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] })
/*509519*/        /*SwitchType*/ 11, MVT::v4i1,// ->509532
/*509521*/          OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*509524*/          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] })
/*509532*/        /*SwitchType*/ 11, MVT::v8i1,// ->509545
/*509534*/          OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*509537*/          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] })
/*509545*/        /*SwitchType*/ 11, MVT::v16i1,// ->509558
/*509547*/          OPC_EmitInteger, MVT::i32, X86::VK16RegClassID,
/*509550*/          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] })
/*509558*/        0, // EndSwitchType
/*509559*/      /*Scope*/ 93|128,1/*221*/, /*->509782*/
/*509561*/        OPC_CheckChild1Integer, 0, 
/*509563*/        OPC_Scope, 15, /*->509580*/ // 10 children in Scope
/*509565*/          OPC_CheckChild1Type, MVT::iPTR,
/*509567*/          OPC_CheckType, MVT::v32i1,
/*509569*/          OPC_EmitInteger, MVT::i32, X86::VK32RegClassID,
/*509572*/          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] })
/*509580*/        /*Scope*/ 17, /*->509598*/
/*509581*/          OPC_CheckChild0Type, MVT::v8i32,
/*509583*/          OPC_CheckChild1Type, MVT::iPTR,
/*509585*/          OPC_CheckType, MVT::v4i32,
/*509587*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*509590*/          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] })
/*509598*/        /*Scope*/ 17, /*->509616*/
/*509599*/          OPC_CheckChild0Type, MVT::v4i64,
/*509601*/          OPC_CheckChild1Type, MVT::iPTR,
/*509603*/          OPC_CheckType, MVT::v2i64,
/*509605*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*509608*/          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] })
/*509616*/        /*Scope*/ 17, /*->509634*/
/*509617*/          OPC_CheckChild0Type, MVT::v16i16,
/*509619*/          OPC_CheckChild1Type, MVT::iPTR,
/*509621*/          OPC_CheckType, MVT::v8i16,
/*509623*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*509626*/          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] })
/*509634*/        /*Scope*/ 17, /*->509652*/
/*509635*/          OPC_CheckChild0Type, MVT::v32i8,
/*509637*/          OPC_CheckChild1Type, MVT::iPTR,
/*509639*/          OPC_CheckType, MVT::v16i8,
/*509641*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*509644*/          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] })
/*509652*/        /*Scope*/ 17, /*->509670*/
/*509653*/          OPC_CheckChild0Type, MVT::v16i32,
/*509655*/          OPC_CheckChild1Type, MVT::iPTR,
/*509657*/          OPC_CheckType, MVT::v4i32,
/*509659*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*509662*/          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] })
/*509670*/        /*Scope*/ 17, /*->509688*/
/*509671*/          OPC_CheckChild0Type, MVT::v8i64,
/*509673*/          OPC_CheckChild1Type, MVT::iPTR,
/*509675*/          OPC_CheckType, MVT::v2i64,
/*509677*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*509680*/          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] })
/*509688*/        /*Scope*/ 17, /*->509706*/
/*509689*/          OPC_CheckChild0Type, MVT::v32i16,
/*509691*/          OPC_CheckChild1Type, MVT::iPTR,
/*509693*/          OPC_CheckType, MVT::v8i16,
/*509695*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*509698*/          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] })
/*509706*/        /*Scope*/ 17, /*->509724*/
/*509707*/          OPC_CheckChild0Type, MVT::v64i8,
/*509709*/          OPC_CheckChild1Type, MVT::iPTR,
/*509711*/          OPC_CheckType, MVT::v16i8,
/*509713*/          OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*509716*/          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] })
/*509724*/        /*Scope*/ 56, /*->509781*/
/*509725*/          OPC_CheckChild1Type, MVT::iPTR,
/*509727*/          OPC_SwitchType /*4 cases */, 11, MVT::v8i32,// ->509741
/*509730*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*509733*/            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] })
/*509741*/          /*SwitchType*/ 11, MVT::v4i64,// ->509754
/*509743*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*509746*/            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] })
/*509754*/          /*SwitchType*/ 11, MVT::v16i16,// ->509767
/*509756*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*509759*/            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] })
/*509767*/          /*SwitchType*/ 11, MVT::v32i8,// ->509780
/*509769*/            OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*509772*/            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] })
/*509780*/          0, // EndSwitchType
/*509781*/        0, /*End of Scope*/
/*509782*/      /*Scope*/ 60, /*->509843*/
/*509783*/        OPC_CheckChild1Integer, 2, 
/*509785*/        OPC_CheckChild0Type, MVT::v8i64,
/*509787*/        OPC_CheckChild1Type, MVT::iPTR,
/*509789*/        OPC_CheckType, MVT::v2i64,
/*509791*/        OPC_Scope, 24, /*->509817*/ // 2 children in Scope
/*509793*/          OPC_CheckPatternPredicate, 123, // (!Subtarget->hasVLX())
/*509795*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*509798*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 1,  // Results = #2
/*509806*/          OPC_EmitInteger, MVT::i8, 1, 
/*509809*/          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] })
/*509817*/        /*Scope*/ 24, /*->509842*/
/*509818*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*509820*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*509823*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4i64, 2/*#Ops*/, 0, 1,  // Results = #2
/*509831*/          OPC_EmitInteger, MVT::i8, 1, 
/*509834*/          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] })
/*509842*/        0, /*End of Scope*/
/*509843*/      /*Scope*/ 60, /*->509904*/
/*509844*/        OPC_CheckChild1Integer, 4, 
/*509846*/        OPC_CheckChild0Type, MVT::v16i32,
/*509848*/        OPC_CheckChild1Type, MVT::iPTR,
/*509850*/        OPC_CheckType, MVT::v4i32,
/*509852*/        OPC_Scope, 24, /*->509878*/ // 2 children in Scope
/*509854*/          OPC_CheckPatternPredicate, 123, // (!Subtarget->hasVLX())
/*509856*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*509859*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v8i32, 2/*#Ops*/, 0, 1,  // Results = #2
/*509867*/          OPC_EmitInteger, MVT::i8, 1, 
/*509870*/          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] })
/*509878*/        /*Scope*/ 24, /*->509903*/
/*509879*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*509881*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*509884*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v8i32, 2/*#Ops*/, 0, 1,  // Results = #2
/*509892*/          OPC_EmitInteger, MVT::i8, 1, 
/*509895*/          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] })
/*509903*/        0, /*End of Scope*/
/*509904*/      /*Scope*/ 60, /*->509965*/
/*509905*/        OPC_CheckChild1Integer, 8, 
/*509907*/        OPC_CheckChild0Type, MVT::v32i16,
/*509909*/        OPC_CheckChild1Type, MVT::iPTR,
/*509911*/        OPC_CheckType, MVT::v8i16,
/*509913*/        OPC_Scope, 24, /*->509939*/ // 2 children in Scope
/*509915*/          OPC_CheckPatternPredicate, 123, // (!Subtarget->hasVLX())
/*509917*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*509920*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1,  // Results = #2
/*509928*/          OPC_EmitInteger, MVT::i8, 1, 
/*509931*/          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] })
/*509939*/        /*Scope*/ 24, /*->509964*/
/*509940*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*509942*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*509945*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v16i16, 2/*#Ops*/, 0, 1,  // Results = #2
/*509953*/          OPC_EmitInteger, MVT::i8, 1, 
/*509956*/          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] })
/*509964*/        0, /*End of Scope*/
/*509965*/      /*Scope*/ 60, /*->510026*/
/*509966*/        OPC_CheckChild1Integer, 16, 
/*509968*/        OPC_CheckChild0Type, MVT::v64i8,
/*509970*/        OPC_CheckChild1Type, MVT::iPTR,
/*509972*/        OPC_CheckType, MVT::v16i8,
/*509974*/        OPC_Scope, 24, /*->510000*/ // 2 children in Scope
/*509976*/          OPC_CheckPatternPredicate, 123, // (!Subtarget->hasVLX())
/*509978*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*509981*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v32i8, 2/*#Ops*/, 0, 1,  // Results = #2
/*509989*/          OPC_EmitInteger, MVT::i8, 1, 
/*509992*/          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] })
/*510000*/        /*Scope*/ 24, /*->510025*/
/*510001*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*510003*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*510006*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v32i8, 2/*#Ops*/, 0, 1,  // Results = #2
/*510014*/          OPC_EmitInteger, MVT::i8, 1, 
/*510017*/          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] })
/*510025*/        0, /*End of Scope*/
/*510026*/      0, /*End of Scope*/
/*510027*/    /*Scope*/ 104|128,3/*488*/, /*->510517*/
/*510029*/      OPC_RecordNode, // #0 = $ext
/*510030*/      OPC_RecordChild0, // #1 = $src1
/*510031*/      OPC_Scope, 43, /*->510076*/ // 15 children in Scope
/*510033*/        OPC_CheckChild0Type, MVT::v4i64,
/*510035*/        OPC_MoveChild1,
/*510036*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*510039*/        OPC_CheckType, MVT::iPTR,
/*510041*/        OPC_MoveParent,
/*510042*/        OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/*510044*/        OPC_CheckType, MVT::v2i64,
/*510046*/        OPC_Scope, 13, /*->510061*/ // 2 children in Scope
/*510048*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*510050*/          OPC_EmitNodeXForm, 0, 0, // EXTRACT_get_vextract128_imm
/*510053*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTF128rr), 0,
                        MVT::v2i64, 2/*#Ops*/, 1, 2, 
                    // Src: (extract_subvector:{ *:[v2i64] } VR256:{ *:[v4i64] }:$src1, (imm:{ *:[iPTR] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext - Complexity = 7
                    // Dst: (VEXTRACTF128rr:{ *:[v2i64] } VR256:{ *:[v4i64] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128:{ *:[v2i64] }:$ext))
/*510061*/        /*Scope*/ 13, /*->510075*/
/*510062*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*510064*/          OPC_EmitNodeXForm, 0, 0, // EXTRACT_get_vextract128_imm
/*510067*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI128rr), 0,
                        MVT::v2i64, 2/*#Ops*/, 1, 2, 
                    // Src: (extract_subvector:{ *:[v2i64] } VR256:{ *:[v4i64] }:$src1, (imm:{ *:[iPTR] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext - Complexity = 7
                    // Dst: (VEXTRACTI128rr:{ *:[v2i64] } VR256:{ *:[v4i64] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128:{ *:[v2i64] }:$ext))
/*510075*/        0, /*End of Scope*/
/*510076*/      /*Scope*/ 43, /*->510120*/
/*510077*/        OPC_CheckChild0Type, MVT::v8i32,
/*510079*/        OPC_MoveChild1,
/*510080*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*510083*/        OPC_CheckType, MVT::iPTR,
/*510085*/        OPC_MoveParent,
/*510086*/        OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/*510088*/        OPC_CheckType, MVT::v4i32,
/*510090*/        OPC_Scope, 13, /*->510105*/ // 2 children in Scope
/*510092*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*510094*/          OPC_EmitNodeXForm, 0, 0, // EXTRACT_get_vextract128_imm
/*510097*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTF128rr), 0,
                        MVT::v4i32, 2/*#Ops*/, 1, 2, 
                    // Src: (extract_subvector:{ *:[v4i32] } VR256:{ *:[v8i32] }:$src1, (imm:{ *:[iPTR] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext - Complexity = 7
                    // Dst: (VEXTRACTF128rr:{ *:[v4i32] } VR256:{ *:[v8i32] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128:{ *:[v4i32] }:$ext))
/*510105*/        /*Scope*/ 13, /*->510119*/
/*510106*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*510108*/          OPC_EmitNodeXForm, 0, 0, // EXTRACT_get_vextract128_imm
/*510111*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI128rr), 0,
                        MVT::v4i32, 2/*#Ops*/, 1, 2, 
                    // Src: (extract_subvector:{ *:[v4i32] } VR256:{ *:[v8i32] }:$src1, (imm:{ *:[iPTR] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext - Complexity = 7
                    // Dst: (VEXTRACTI128rr:{ *:[v4i32] } VR256:{ *:[v8i32] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128:{ *:[v4i32] }:$ext))
/*510119*/        0, /*End of Scope*/
/*510120*/      /*Scope*/ 43, /*->510164*/
/*510121*/        OPC_CheckChild0Type, MVT::v16i16,
/*510123*/        OPC_MoveChild1,
/*510124*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*510127*/        OPC_CheckType, MVT::iPTR,
/*510129*/        OPC_MoveParent,
/*510130*/        OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/*510132*/        OPC_CheckType, MVT::v8i16,
/*510134*/        OPC_Scope, 13, /*->510149*/ // 2 children in Scope
/*510136*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*510138*/          OPC_EmitNodeXForm, 0, 0, // EXTRACT_get_vextract128_imm
/*510141*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTF128rr), 0,
                        MVT::v8i16, 2/*#Ops*/, 1, 2, 
                    // Src: (extract_subvector:{ *:[v8i16] } VR256:{ *:[v16i16] }:$src1, (imm:{ *:[iPTR] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext - Complexity = 7
                    // Dst: (VEXTRACTF128rr:{ *:[v8i16] } VR256:{ *:[v16i16] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128:{ *:[v8i16] }:$ext))
/*510149*/        /*Scope*/ 13, /*->510163*/
/*510150*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*510152*/          OPC_EmitNodeXForm, 0, 0, // EXTRACT_get_vextract128_imm
/*510155*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI128rr), 0,
                        MVT::v8i16, 2/*#Ops*/, 1, 2, 
                    // Src: (extract_subvector:{ *:[v8i16] } VR256:{ *:[v16i16] }:$src1, (imm:{ *:[iPTR] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext - Complexity = 7
                    // Dst: (VEXTRACTI128rr:{ *:[v8i16] } VR256:{ *:[v16i16] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128:{ *:[v8i16] }:$ext))
/*510163*/        0, /*End of Scope*/
/*510164*/      /*Scope*/ 43, /*->510208*/
/*510165*/        OPC_CheckChild0Type, MVT::v32i8,
/*510167*/        OPC_MoveChild1,
/*510168*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*510171*/        OPC_CheckType, MVT::iPTR,
/*510173*/        OPC_MoveParent,
/*510174*/        OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/*510176*/        OPC_CheckType, MVT::v16i8,
/*510178*/        OPC_Scope, 13, /*->510193*/ // 2 children in Scope
/*510180*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*510182*/          OPC_EmitNodeXForm, 0, 0, // EXTRACT_get_vextract128_imm
/*510185*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTF128rr), 0,
                        MVT::v16i8, 2/*#Ops*/, 1, 2, 
                    // Src: (extract_subvector:{ *:[v16i8] } VR256:{ *:[v32i8] }:$src1, (imm:{ *:[iPTR] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext - Complexity = 7
                    // Dst: (VEXTRACTF128rr:{ *:[v16i8] } VR256:{ *:[v32i8] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128:{ *:[v16i8] }:$ext))
/*510193*/        /*Scope*/ 13, /*->510207*/
/*510194*/          OPC_CheckPatternPredicate, 17, // (Subtarget->hasAVX2()) && (!Subtarget->hasVLX())
/*510196*/          OPC_EmitNodeXForm, 0, 0, // EXTRACT_get_vextract128_imm
/*510199*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI128rr), 0,
                        MVT::v16i8, 2/*#Ops*/, 1, 2, 
                    // Src: (extract_subvector:{ *:[v16i8] } VR256:{ *:[v32i8] }:$src1, (imm:{ *:[iPTR] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext - Complexity = 7
                    // Dst: (VEXTRACTI128rr:{ *:[v16i8] } VR256:{ *:[v32i8] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128:{ *:[v16i8] }:$ext))
/*510207*/        0, /*End of Scope*/
/*510208*/      /*Scope*/ 26, /*->510235*/
/*510209*/        OPC_CheckChild0Type, MVT::v16i32,
/*510211*/        OPC_MoveChild1,
/*510212*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*510215*/        OPC_CheckType, MVT::iPTR,
/*510217*/        OPC_MoveParent,
/*510218*/        OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/*510220*/        OPC_CheckType, MVT::v4i32,
/*510222*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*510224*/        OPC_EmitNodeXForm, 0, 0, // EXTRACT_get_vextract128_imm
/*510227*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI32x4Zrr), 0,
                      MVT::v4i32, 2/*#Ops*/, 1, 2, 
                  // Src: (extract_subvector:{ *:[v4i32] } VR512:{ *:[v16i32] }:$src1, (imm:{ *:[iPTR] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$idx - Complexity = 7
                  // Dst: (VEXTRACTI32x4Zrr:{ *:[v4i32] } VR512:{ *:[v16i32] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } (extract_subvector:{ *:[v4i32] } VR512:{ *:[v16i32] }:$src1, (imm:{ *:[iPTR] })):$idx))
/*510235*/      /*Scope*/ 24, /*->510260*/
/*510236*/        OPC_MoveChild1,
/*510237*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*510240*/        OPC_CheckType, MVT::iPTR,
/*510242*/        OPC_MoveParent,
/*510243*/        OPC_CheckPredicate, 18, // Predicate_vextract256_extract
/*510245*/        OPC_CheckType, MVT::v4i64,
/*510247*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*510249*/        OPC_EmitNodeXForm, 1, 0, // EXTRACT_get_vextract256_imm
/*510252*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI64x4Zrr), 0,
                      MVT::v4i64, 2/*#Ops*/, 1, 2, 
                  // Src: (extract_subvector:{ *:[v4i64] } VR512:{ *:[v8i64] }:$src1, (imm:{ *:[iPTR] }))<<P:Predicate_vextract256_extract>><<X:EXTRACT_get_vextract256_imm>>:$idx - Complexity = 7
                  // Dst: (VEXTRACTI64x4Zrr:{ *:[v4i64] } VR512:{ *:[v8i64] }:$src1, (EXTRACT_get_vextract256_imm:{ *:[i8] } (extract_subvector:{ *:[v4i64] } VR512:{ *:[v8i64] }:$src1, (imm:{ *:[iPTR] })):$idx))
/*510260*/      /*Scope*/ 26, /*->510287*/
/*510261*/        OPC_CheckChild0Type, MVT::v8i32,
/*510263*/        OPC_MoveChild1,
/*510264*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*510267*/        OPC_CheckType, MVT::iPTR,
/*510269*/        OPC_MoveParent,
/*510270*/        OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/*510272*/        OPC_CheckType, MVT::v4i32,
/*510274*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*510276*/        OPC_EmitNodeXForm, 0, 0, // EXTRACT_get_vextract128_imm
/*510279*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI32x4Z256rr), 0,
                      MVT::v4i32, 2/*#Ops*/, 1, 2, 
                  // Src: (extract_subvector:{ *:[v4i32] } VR256X:{ *:[v8i32] }:$src1, (imm:{ *:[iPTR] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$idx - Complexity = 7
                  // Dst: (VEXTRACTI32x4Z256rr:{ *:[v4i32] } VR256X:{ *:[v8i32] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } (extract_subvector:{ *:[v4i32] } VR256X:{ *:[v8i32] }:$src1, (imm:{ *:[iPTR] })):$idx))
/*510287*/      /*Scope*/ 26, /*->510314*/
/*510288*/        OPC_CheckChild0Type, MVT::v8i64,
/*510290*/        OPC_MoveChild1,
/*510291*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*510294*/        OPC_CheckType, MVT::iPTR,
/*510296*/        OPC_MoveParent,
/*510297*/        OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/*510299*/        OPC_CheckType, MVT::v2i64,
/*510301*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*510303*/        OPC_EmitNodeXForm, 0, 0, // EXTRACT_get_vextract128_imm
/*510306*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI32x4Zrr), 0,
                      MVT::v2i64, 2/*#Ops*/, 1, 2, 
                  // Src: (extract_subvector:{ *:[v2i64] } VR512:{ *:[v8i64] }:$src1, (imm:{ *:[iPTR] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext - Complexity = 7
                  // Dst: (VEXTRACTI32x4Zrr:{ *:[v2i64] } VR512:{ *:[v8i64] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v2i64] }:$ext))
/*510314*/      /*Scope*/ 24, /*->510339*/
/*510315*/        OPC_MoveChild1,
/*510316*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*510319*/        OPC_CheckType, MVT::iPTR,
/*510321*/        OPC_MoveParent,
/*510322*/        OPC_CheckPredicate, 18, // Predicate_vextract256_extract
/*510324*/        OPC_CheckType, MVT::v8i32,
/*510326*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*510328*/        OPC_EmitNodeXForm, 1, 0, // EXTRACT_get_vextract256_imm
/*510331*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI64x4Zrr), 0,
                      MVT::v8i32, 2/*#Ops*/, 1, 2, 
                  // Src: (extract_subvector:{ *:[v8i32] } VR512:{ *:[v16i32] }:$src1, (imm:{ *:[iPTR] }))<<P:Predicate_vextract256_extract>><<X:EXTRACT_get_vextract256_imm>>:$ext - Complexity = 7
                  // Dst: (VEXTRACTI64x4Zrr:{ *:[v8i32] } VR512:{ *:[v16i32] }:$src1, (EXTRACT_get_vextract256_imm:{ *:[i8] } VR256X:{ *:[v8i32] }:$ext))
/*510339*/      /*Scope*/ 26, /*->510366*/
/*510340*/        OPC_CheckChild0Type, MVT::v4i64,
/*510342*/        OPC_MoveChild1,
/*510343*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*510346*/        OPC_CheckType, MVT::iPTR,
/*510348*/        OPC_MoveParent,
/*510349*/        OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/*510351*/        OPC_CheckType, MVT::v2i64,
/*510353*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*510355*/        OPC_EmitNodeXForm, 0, 0, // EXTRACT_get_vextract128_imm
/*510358*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI32x4Z256rr), 0,
                      MVT::v2i64, 2/*#Ops*/, 1, 2, 
                  // Src: (extract_subvector:{ *:[v2i64] } VR256X:{ *:[v4i64] }:$src1, (imm:{ *:[iPTR] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext - Complexity = 7
                  // Dst: (VEXTRACTI32x4Z256rr:{ *:[v2i64] } VR256X:{ *:[v4i64] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v2i64] }:$ext))
/*510366*/      /*Scope*/ 26, /*->510393*/
/*510367*/        OPC_CheckChild0Type, MVT::v16i16,
/*510369*/        OPC_MoveChild1,
/*510370*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*510373*/        OPC_CheckType, MVT::iPTR,
/*510375*/        OPC_MoveParent,
/*510376*/        OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/*510378*/        OPC_CheckType, MVT::v8i16,
/*510380*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*510382*/        OPC_EmitNodeXForm, 0, 0, // EXTRACT_get_vextract128_imm
/*510385*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI32x4Z256rr), 0,
                      MVT::v8i16, 2/*#Ops*/, 1, 2, 
                  // Src: (extract_subvector:{ *:[v8i16] } VR256X:{ *:[v16i16] }:$src1, (imm:{ *:[iPTR] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext - Complexity = 7
                  // Dst: (VEXTRACTI32x4Z256rr:{ *:[v8i16] } VR256X:{ *:[v16i16] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v8i16] }:$ext))
/*510393*/      /*Scope*/ 26, /*->510420*/
/*510394*/        OPC_CheckChild0Type, MVT::v32i8,
/*510396*/        OPC_MoveChild1,
/*510397*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*510400*/        OPC_CheckType, MVT::iPTR,
/*510402*/        OPC_MoveParent,
/*510403*/        OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/*510405*/        OPC_CheckType, MVT::v16i8,
/*510407*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*510409*/        OPC_EmitNodeXForm, 0, 0, // EXTRACT_get_vextract128_imm
/*510412*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI32x4Z256rr), 0,
                      MVT::v16i8, 2/*#Ops*/, 1, 2, 
                  // Src: (extract_subvector:{ *:[v16i8] } VR256X:{ *:[v32i8] }:$src1, (imm:{ *:[iPTR] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext - Complexity = 7
                  // Dst: (VEXTRACTI32x4Z256rr:{ *:[v16i8] } VR256X:{ *:[v32i8] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v16i8] }:$ext))
/*510420*/      /*Scope*/ 26, /*->510447*/
/*510421*/        OPC_CheckChild0Type, MVT::v32i16,
/*510423*/        OPC_MoveChild1,
/*510424*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*510427*/        OPC_CheckType, MVT::iPTR,
/*510429*/        OPC_MoveParent,
/*510430*/        OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/*510432*/        OPC_CheckType, MVT::v8i16,
/*510434*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*510436*/        OPC_EmitNodeXForm, 0, 0, // EXTRACT_get_vextract128_imm
/*510439*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI32x4Zrr), 0,
                      MVT::v8i16, 2/*#Ops*/, 1, 2, 
                  // Src: (extract_subvector:{ *:[v8i16] } VR512:{ *:[v32i16] }:$src1, (imm:{ *:[iPTR] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext - Complexity = 7
                  // Dst: (VEXTRACTI32x4Zrr:{ *:[v8i16] } VR512:{ *:[v32i16] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v8i16] }:$ext))
/*510447*/      /*Scope*/ 26, /*->510474*/
/*510448*/        OPC_CheckChild0Type, MVT::v64i8,
/*510450*/        OPC_MoveChild1,
/*510451*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*510454*/        OPC_CheckType, MVT::iPTR,
/*510456*/        OPC_MoveParent,
/*510457*/        OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/*510459*/        OPC_CheckType, MVT::v16i8,
/*510461*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*510463*/        OPC_EmitNodeXForm, 0, 0, // EXTRACT_get_vextract128_imm
/*510466*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI32x4Zrr), 0,
                      MVT::v16i8, 2/*#Ops*/, 1, 2, 
                  // Src: (extract_subvector:{ *:[v16i8] } VR512:{ *:[v64i8] }:$src1, (imm:{ *:[iPTR] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext - Complexity = 7
                  // Dst: (VEXTRACTI32x4Zrr:{ *:[v16i8] } VR512:{ *:[v64i8] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v16i8] }:$ext))
/*510474*/      /*Scope*/ 41, /*->510516*/
/*510475*/        OPC_MoveChild1,
/*510476*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*510479*/        OPC_CheckType, MVT::iPTR,
/*510481*/        OPC_MoveParent,
/*510482*/        OPC_CheckPredicate, 18, // Predicate_vextract256_extract
/*510484*/        OPC_SwitchType /*2 cases */, 13, MVT::v16i16,// ->510500
/*510487*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*510489*/          OPC_EmitNodeXForm, 1, 0, // EXTRACT_get_vextract256_imm
/*510492*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI64x4Zrr), 0,
                        MVT::v16i16, 2/*#Ops*/, 1, 2, 
                    // Src: (extract_subvector:{ *:[v16i16] } VR512:{ *:[v32i16] }:$src1, (imm:{ *:[iPTR] }))<<P:Predicate_vextract256_extract>><<X:EXTRACT_get_vextract256_imm>>:$ext - Complexity = 7
                    // Dst: (VEXTRACTI64x4Zrr:{ *:[v16i16] } VR512:{ *:[v32i16] }:$src1, (EXTRACT_get_vextract256_imm:{ *:[i8] } VR256X:{ *:[v16i16] }:$ext))
/*510500*/        /*SwitchType*/ 13, MVT::v32i8,// ->510515
/*510502*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*510504*/          OPC_EmitNodeXForm, 1, 0, // EXTRACT_get_vextract256_imm
/*510507*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTI64x4Zrr), 0,
                        MVT::v32i8, 2/*#Ops*/, 1, 2, 
                    // Src: (extract_subvector:{ *:[v32i8] } VR512:{ *:[v64i8] }:$src1, (imm:{ *:[iPTR] }))<<P:Predicate_vextract256_extract>><<X:EXTRACT_get_vextract256_imm>>:$ext - Complexity = 7
                    // Dst: (VEXTRACTI64x4Zrr:{ *:[v32i8] } VR512:{ *:[v64i8] }:$src1, (EXTRACT_get_vextract256_imm:{ *:[i8] } VR256X:{ *:[v32i8] }:$ext))
/*510515*/        0, // EndSwitchType
/*510516*/      0, /*End of Scope*/
/*510517*/    /*Scope*/ 61|128,6/*829*/, /*->511348*/
/*510519*/      OPC_MoveChild0,
/*510520*/      OPC_CheckOpcode, TARGET_VAL(ISD::MLOAD),
/*510523*/      OPC_RecordMemRef,
/*510524*/      OPC_RecordNode, // #0 = 'masked_ld' chained node
/*510525*/      OPC_CheckFoldableChainNode,
/*510526*/      OPC_RecordChild1, // #1 = $srcAddr
/*510527*/      OPC_MoveChild2,
/*510528*/      OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*510531*/      OPC_MoveParent,
/*510532*/      OPC_MoveChild3,
/*510533*/      OPC_SwitchOpcode /*3 cases */, 62|128,1/*190*/, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),// ->510728
/*510538*/        OPC_MoveChild0,
/*510539*/        OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*510542*/        OPC_MoveChild0,
/*510543*/        OPC_CheckImmAllZerosV,
/*510544*/        OPC_MoveParent,
/*510545*/        OPC_MoveChild1,
/*510546*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/*510549*/        OPC_MoveChild0,
/*510550*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*510553*/        OPC_MoveChild0,
/*510554*/        OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*510557*/        OPC_RecordChild0, // #2 = $mask
/*510558*/        OPC_CheckChild1Integer, 1, 
/*510560*/        OPC_CheckType, MVT::i8,
/*510562*/        OPC_MoveParent,
/*510563*/        OPC_CheckType, MVT::v8i1,
/*510565*/        OPC_MoveParent,
/*510566*/        OPC_CheckChild1Integer, 0, 
/*510568*/        OPC_CheckChild1Type, MVT::iPTR,
/*510570*/        OPC_CheckType, MVT::v2i1,
/*510572*/        OPC_MoveParent,
/*510573*/        OPC_CheckChild2Integer, 0, 
/*510575*/        OPC_CheckChild2Type, MVT::iPTR,
/*510577*/        OPC_CheckType, MVT::v16i1,
/*510579*/        OPC_MoveParent,
/*510580*/        OPC_CheckChild1Integer, 0, 
/*510582*/        OPC_CheckChild1Type, MVT::iPTR,
/*510584*/        OPC_CheckType, MVT::v8i1,
/*510586*/        OPC_MoveParent,
/*510587*/        OPC_MoveChild4,
/*510588*/        OPC_Scope, 78, /*->510668*/ // 2 children in Scope
/*510590*/          OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*510593*/          OPC_MoveChild0,
/*510594*/          OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*510597*/          OPC_MoveParent,
/*510598*/          OPC_MoveChild1,
/*510599*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VZEXT_MOVL),
/*510602*/          OPC_RecordChild0, // #3 = $src
/*510603*/          OPC_CheckType, MVT::v2f64,
/*510605*/          OPC_MoveParent,
/*510606*/          OPC_CheckChild2Integer, 0, 
/*510608*/          OPC_CheckChild2Type, MVT::iPTR,
/*510610*/          OPC_MoveParent,
/*510611*/          OPC_CheckPredicate, 102, // Predicate_masked_load
/*510613*/          OPC_CheckType, MVT::v8f64,
/*510615*/          OPC_MoveParent,
/*510616*/          OPC_CheckChild1Integer, 0, 
/*510618*/          OPC_CheckChild1Type, MVT::iPTR,
/*510620*/          OPC_CheckType, MVT::v2f64,
/*510622*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$srcAddr #4 #5 #6 #7 #8
/*510625*/          OPC_EmitMergeInputChains1_0,
/*510626*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i32, 0/*#Ops*/,  // Results = #9
/*510632*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*510635*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i32, 3/*#Ops*/, 9, 2, 10,  // Results = #11
/*510644*/          OPC_EmitInteger, MVT::i32, X86::VK1WMRegClassID,
/*510647*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v1i1, 2/*#Ops*/, 11, 12,  // Results = #13
/*510655*/          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_ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$srcAddr, (undef:{ *:[iPTR] }), (extract_subvector:{ *:[v8i1] } (insert_subvector:{ *:[v16i1] } immAllZerosV:{ *:[v16i1] }, (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] }))<<P:Predicate_masked_load>>, 0:{ *:[iPTR] }) - Complexity = 86
                    // 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)
/*510668*/        /*Scope*/ 58, /*->510727*/
/*510669*/          OPC_CheckImmAllZerosV,
/*510670*/          OPC_MoveParent,
/*510671*/          OPC_CheckPredicate, 102, // Predicate_masked_load
/*510673*/          OPC_CheckType, MVT::v8f64,
/*510675*/          OPC_MoveParent,
/*510676*/          OPC_CheckChild1Integer, 0, 
/*510678*/          OPC_CheckChild1Type, MVT::iPTR,
/*510680*/          OPC_CheckType, MVT::v2f64,
/*510682*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$srcAddr #3 #4 #5 #6 #7
/*510685*/          OPC_EmitMergeInputChains1_0,
/*510686*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i32, 0/*#Ops*/,  // Results = #8
/*510692*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*510695*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i32, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/*510704*/          OPC_EmitInteger, MVT::i32, X86::VK1WMRegClassID,
/*510707*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v1i1, 2/*#Ops*/, 10, 11,  // Results = #12
/*510715*/          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_ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$srcAddr, (undef:{ *:[iPTR] }), (extract_subvector:{ *:[v8i1] } (insert_subvector:{ *:[v16i1] } immAllZerosV:{ *:[v16i1] }, (extract_subvector:{ *:[v2i1] } (bitconvert:{ *:[v8i1] } (and:{ *:[i8] } GR8:{ *:[i8] }:$mask, 1:{ *:[i8] })), 0:{ *:[iPTR] }), 0:{ *:[iPTR] }), 0:{ *:[iPTR] }), immAllZerosV:{ *:[v8f64] })<<P:Predicate_masked_load>>, 0:{ *:[iPTR] }) - Complexity = 76
                    // Dst: (VMOVSDZrmkz:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[v1i1] } (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$mask, sub_8bit:{ *:[i32] }), VK1WM:{ *:[i32] }), addr:{ *:[iPTR] }:$srcAddr)
/*510727*/        0, /*End of Scope*/
/*510728*/      /*SwitchOpcode*/ 51|128,1/*179*/, TARGET_VAL(ISD::INSERT_SUBVECTOR),// ->510911
/*510732*/        OPC_MoveChild0,
/*510733*/        OPC_CheckImmAllZerosV,
/*510734*/        OPC_MoveParent,
/*510735*/        OPC_MoveChild1,
/*510736*/        OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_SUBVECTOR),
/*510739*/        OPC_MoveChild0,
/*510740*/        OPC_CheckOpcode, TARGET_VAL(ISD::BITCAST),
/*510743*/        OPC_MoveChild0,
/*510744*/        OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*510747*/        OPC_RecordChild0, // #2 = $mask
/*510748*/        OPC_CheckChild1Integer, 1, 
/*510750*/        OPC_CheckType, MVT::i8,
/*510752*/        OPC_MoveParent,
/*510753*/        OPC_CheckType, MVT::v8i1,
/*510755*/        OPC_MoveParent,
/*510756*/        OPC_CheckChild1Integer, 0, 
/*510758*/        OPC_CheckChild1Type, MVT::iPTR,
/*510760*/        OPC_CheckType, MVT::v4i1,
/*510762*/        OPC_MoveParent,
/*510763*/        OPC_CheckChild2Integer, 0, 
/*510765*/        OPC_CheckChild2Type, MVT::iPTR,
/*510767*/        OPC_CheckType, MVT::v16i1,
/*510769*/        OPC_MoveParent,
/*510770*/        OPC_MoveChild4,
/*510771*/        OPC_Scope, 78, /*->510851*/ // 2 children in Scope
/*510773*/          OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*510776*/          OPC_MoveChild0,
/*510777*/          OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*510780*/          OPC_MoveParent,
/*510781*/          OPC_MoveChild1,
/*510782*/          OPC_CheckOpcode, TARGET_VAL(X86ISD::VZEXT_MOVL),
/*510785*/          OPC_RecordChild0, // #3 = $src
/*510786*/          OPC_CheckType, MVT::v4f32,
/*510788*/          OPC_MoveParent,
/*510789*/          OPC_CheckChild2Integer, 0, 
/*510791*/          OPC_CheckChild2Type, MVT::iPTR,
/*510793*/          OPC_MoveParent,
/*510794*/          OPC_CheckPredicate, 102, // Predicate_masked_load
/*510796*/          OPC_CheckType, MVT::v16f32,
/*510798*/          OPC_MoveParent,
/*510799*/          OPC_CheckChild1Integer, 0, 
/*510801*/          OPC_CheckChild1Type, MVT::iPTR,
/*510803*/          OPC_CheckType, MVT::v4f32,
/*510805*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$srcAddr #4 #5 #6 #7 #8
/*510808*/          OPC_EmitMergeInputChains1_0,
/*510809*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i32, 0/*#Ops*/,  // Results = #9
/*510815*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*510818*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i32, 3/*#Ops*/, 9, 2, 10,  // Results = #11
/*510827*/          OPC_EmitInteger, MVT::i32, X86::VK1WMRegClassID,
/*510830*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v1i1, 2/*#Ops*/, 11, 12,  // Results = #13
/*510838*/          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_ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$srcAddr, (undef:{ *:[iPTR] }), (insert_subvector:{ *:[v16i1] } immAllZerosV:{ *:[v16i1] }, (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] }))<<P:Predicate_masked_load>>, 0:{ *:[iPTR] }) - Complexity = 78
                    // 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)
/*510851*/        /*Scope*/ 58, /*->510910*/
/*510852*/          OPC_CheckImmAllZerosV,
/*510853*/          OPC_MoveParent,
/*510854*/          OPC_CheckPredicate, 102, // Predicate_masked_load
/*510856*/          OPC_CheckType, MVT::v16f32,
/*510858*/          OPC_MoveParent,
/*510859*/          OPC_CheckChild1Integer, 0, 
/*510861*/          OPC_CheckChild1Type, MVT::iPTR,
/*510863*/          OPC_CheckType, MVT::v4f32,
/*510865*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$srcAddr #3 #4 #5 #6 #7
/*510868*/          OPC_EmitMergeInputChains1_0,
/*510869*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                        MVT::i32, 0/*#Ops*/,  // Results = #8
/*510875*/          OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*510878*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                        MVT::i32, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/*510887*/          OPC_EmitInteger, MVT::i32, X86::VK1WMRegClassID,
/*510890*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                        MVT::v1i1, 2/*#Ops*/, 10, 11,  // Results = #12
/*510898*/          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_ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$srcAddr, (undef:{ *:[iPTR] }), (insert_subvector:{ *:[v16i1] } immAllZerosV:{ *:[v16i1] }, (extract_subvector:{ *:[v4i1] } (bitconvert:{ *:[v8i1] } (and:{ *:[i8] } GR8:{ *:[i8] }:$mask, 1:{ *:[i8] })), 0:{ *:[iPTR] }), 0:{ *:[iPTR] }), immAllZerosV:{ *:[v16f32] })<<P:Predicate_masked_load>>, 0:{ *:[iPTR] }) - Complexity = 68
                    // Dst: (VMOVSSZrmkz:{ *:[v4f32] } (COPY_TO_REGCLASS:{ *:[v1i1] } (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$mask, sub_8bit:{ *:[i32] }), VK1WM:{ *:[i32] }), addr:{ *:[iPTR] }:$srcAddr)
/*510910*/        0, /*End of Scope*/
/*510911*/      /*SwitchOpcode*/ 48|128,3/*432*/, TARGET_VAL(ISD::BITCAST),// ->511347
/*510915*/        OPC_MoveChild0,
/*510916*/        OPC_SwitchOpcode /*2 cases */, 121, TARGET_VAL(ISD::TRUNCATE),// ->511041
/*510920*/          OPC_MoveChild0,
/*510921*/          OPC_CheckOpcode, TARGET_VAL(ISD::AND),
/*510924*/          OPC_RecordChild0, // #2 = $mask
/*510925*/          OPC_CheckChild1Integer, 1, 
/*510927*/          OPC_CheckType, MVT::i32,
/*510929*/          OPC_MoveParent,
/*510930*/          OPC_CheckType, MVT::i16,
/*510932*/          OPC_MoveParent,
/*510933*/          OPC_CheckType, MVT::v16i1,
/*510935*/          OPC_MoveParent,
/*510936*/          OPC_MoveChild4,
/*510937*/          OPC_Scope, 60, /*->510999*/ // 2 children in Scope
/*510939*/            OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*510942*/            OPC_MoveChild0,
/*510943*/            OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*510946*/            OPC_MoveParent,
/*510947*/            OPC_MoveChild1,
/*510948*/            OPC_CheckOpcode, TARGET_VAL(X86ISD::VZEXT_MOVL),
/*510951*/            OPC_RecordChild0, // #3 = $src
/*510952*/            OPC_CheckType, MVT::v4f32,
/*510954*/            OPC_MoveParent,
/*510955*/            OPC_CheckChild2Integer, 0, 
/*510957*/            OPC_CheckChild2Type, MVT::iPTR,
/*510959*/            OPC_MoveParent,
/*510960*/            OPC_CheckPredicate, 102, // Predicate_masked_load
/*510962*/            OPC_CheckType, MVT::v16f32,
/*510964*/            OPC_MoveParent,
/*510965*/            OPC_CheckChild1Integer, 0, 
/*510967*/            OPC_CheckChild1Type, MVT::iPTR,
/*510969*/            OPC_CheckType, MVT::v4f32,
/*510971*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$srcAddr #4 #5 #6 #7 #8
/*510974*/            OPC_EmitMergeInputChains1_0,
/*510975*/            OPC_EmitInteger, MVT::i32, X86::VK1WMRegClassID,
/*510978*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v1i1, 2/*#Ops*/, 2, 9,  // Results = #10
/*510986*/            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_ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$srcAddr, (undef:{ *:[iPTR] }), (bitconvert:{ *:[v16i1] } (trunc:{ *:[i16] } (and:{ *:[i32] } GR32:{ *:[i32] }:$mask, 1:{ *:[i32] }))), (insert_subvector:{ *:[v16f32] } (undef:{ *:[v16f32] }), (X86vzmovl:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src), 0:{ *:[iPTR] }))<<P:Predicate_masked_load>>, 0:{ *:[iPTR] }) - Complexity = 61
                      // Dst: (VMOVSSZrmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src, (COPY_TO_REGCLASS:{ *:[v1i1] } GR32:{ *:[i32] }:$mask, VK1WM:{ *:[i32] }), addr:{ *:[iPTR] }:$srcAddr)
/*510999*/          /*Scope*/ 40, /*->511040*/
/*511000*/            OPC_CheckImmAllZerosV,
/*511001*/            OPC_MoveParent,
/*511002*/            OPC_CheckPredicate, 102, // Predicate_masked_load
/*511004*/            OPC_CheckType, MVT::v16f32,
/*511006*/            OPC_MoveParent,
/*511007*/            OPC_CheckChild1Integer, 0, 
/*511009*/            OPC_CheckChild1Type, MVT::iPTR,
/*511011*/            OPC_CheckType, MVT::v4f32,
/*511013*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$srcAddr #3 #4 #5 #6 #7
/*511016*/            OPC_EmitMergeInputChains1_0,
/*511017*/            OPC_EmitInteger, MVT::i32, X86::VK1WMRegClassID,
/*511020*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v1i1, 2/*#Ops*/, 2, 8,  // Results = #9
/*511028*/            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_ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$srcAddr, (undef:{ *:[iPTR] }), (bitconvert:{ *:[v16i1] } (trunc:{ *:[i16] } (and:{ *:[i32] } GR32:{ *:[i32] }:$mask, 1:{ *:[i32] }))), immAllZerosV:{ *:[v16f32] })<<P:Predicate_masked_load>>, 0:{ *:[iPTR] }) - Complexity = 51
                      // Dst: (VMOVSSZrmkz:{ *:[v4f32] } (COPY_TO_REGCLASS:{ *:[v1i1] } GR32:{ *:[i32] }:$mask, VK1WM:{ *:[i32] }), addr:{ *:[iPTR] }:$srcAddr)
/*511040*/          0, /*End of Scope*/
/*511041*/        /*SwitchOpcode*/ 45|128,2/*301*/, TARGET_VAL(ISD::AND),// ->511346
/*511045*/          OPC_RecordChild0, // #2 = $mask
/*511046*/          OPC_CheckChild1Integer, 1, 
/*511048*/          OPC_SwitchType /*2 cases */, 17|128,1/*145*/, MVT::i16,// ->511197
/*511052*/            OPC_MoveParent,
/*511053*/            OPC_CheckType, MVT::v16i1,
/*511055*/            OPC_MoveParent,
/*511056*/            OPC_MoveChild4,
/*511057*/            OPC_Scope, 78, /*->511137*/ // 2 children in Scope
/*511059*/              OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*511062*/              OPC_MoveChild0,
/*511063*/              OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*511066*/              OPC_MoveParent,
/*511067*/              OPC_MoveChild1,
/*511068*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VZEXT_MOVL),
/*511071*/              OPC_RecordChild0, // #3 = $src
/*511072*/              OPC_CheckType, MVT::v4f32,
/*511074*/              OPC_MoveParent,
/*511075*/              OPC_CheckChild2Integer, 0, 
/*511077*/              OPC_CheckChild2Type, MVT::iPTR,
/*511079*/              OPC_MoveParent,
/*511080*/              OPC_CheckPredicate, 102, // Predicate_masked_load
/*511082*/              OPC_CheckType, MVT::v16f32,
/*511084*/              OPC_MoveParent,
/*511085*/              OPC_CheckChild1Integer, 0, 
/*511087*/              OPC_CheckChild1Type, MVT::iPTR,
/*511089*/              OPC_CheckType, MVT::v4f32,
/*511091*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$srcAddr #4 #5 #6 #7 #8
/*511094*/              OPC_EmitMergeInputChains1_0,
/*511095*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::i32, 0/*#Ops*/,  // Results = #9
/*511101*/              OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*511104*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::i32, 3/*#Ops*/, 9, 2, 10,  // Results = #11
/*511113*/              OPC_EmitInteger, MVT::i32, X86::VK1WMRegClassID,
/*511116*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v1i1, 2/*#Ops*/, 11, 12,  // Results = #13
/*511124*/              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_ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$srcAddr, (undef:{ *:[iPTR] }), (bitconvert:{ *:[v16i1] } (and:{ *:[i16] } GR16:{ *:[i16] }:$mask, 1:{ *:[i16] })), (insert_subvector:{ *:[v16f32] } (undef:{ *:[v16f32] }), (X86vzmovl:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src), 0:{ *:[iPTR] }))<<P:Predicate_masked_load>>, 0:{ *:[iPTR] }) - Complexity = 58
                        // 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)
/*511137*/            /*Scope*/ 58, /*->511196*/
/*511138*/              OPC_CheckImmAllZerosV,
/*511139*/              OPC_MoveParent,
/*511140*/              OPC_CheckPredicate, 102, // Predicate_masked_load
/*511142*/              OPC_CheckType, MVT::v16f32,
/*511144*/              OPC_MoveParent,
/*511145*/              OPC_CheckChild1Integer, 0, 
/*511147*/              OPC_CheckChild1Type, MVT::iPTR,
/*511149*/              OPC_CheckType, MVT::v4f32,
/*511151*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$srcAddr #3 #4 #5 #6 #7
/*511154*/              OPC_EmitMergeInputChains1_0,
/*511155*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::i32, 0/*#Ops*/,  // Results = #8
/*511161*/              OPC_EmitInteger, MVT::i32, X86::sub_16bit,
/*511164*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::i32, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/*511173*/              OPC_EmitInteger, MVT::i32, X86::VK1WMRegClassID,
/*511176*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v1i1, 2/*#Ops*/, 10, 11,  // Results = #12
/*511184*/              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_ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$srcAddr, (undef:{ *:[iPTR] }), (bitconvert:{ *:[v16i1] } (and:{ *:[i16] } GR16:{ *:[i16] }:$mask, 1:{ *:[i16] })), immAllZerosV:{ *:[v16f32] })<<P:Predicate_masked_load>>, 0:{ *:[iPTR] }) - Complexity = 48
                        // Dst: (VMOVSSZrmkz:{ *:[v4f32] } (COPY_TO_REGCLASS:{ *:[v1i1] } (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR16:{ *:[i16] }:$mask, sub_16bit:{ *:[i32] }), VK1WM:{ *:[i32] }), addr:{ *:[iPTR] }:$srcAddr)
/*511196*/            0, /*End of Scope*/
/*511197*/          /*SwitchType*/ 17|128,1/*145*/, MVT::i8,// ->511345
/*511200*/            OPC_MoveParent,
/*511201*/            OPC_CheckType, MVT::v8i1,
/*511203*/            OPC_MoveParent,
/*511204*/            OPC_MoveChild4,
/*511205*/            OPC_Scope, 78, /*->511285*/ // 2 children in Scope
/*511207*/              OPC_CheckOpcode, TARGET_VAL(ISD::INSERT_SUBVECTOR),
/*511210*/              OPC_MoveChild0,
/*511211*/              OPC_CheckOpcode, TARGET_VAL(ISD::UNDEF),
/*511214*/              OPC_MoveParent,
/*511215*/              OPC_MoveChild1,
/*511216*/              OPC_CheckOpcode, TARGET_VAL(X86ISD::VZEXT_MOVL),
/*511219*/              OPC_RecordChild0, // #3 = $src
/*511220*/              OPC_CheckType, MVT::v2f64,
/*511222*/              OPC_MoveParent,
/*511223*/              OPC_CheckChild2Integer, 0, 
/*511225*/              OPC_CheckChild2Type, MVT::iPTR,
/*511227*/              OPC_MoveParent,
/*511228*/              OPC_CheckPredicate, 102, // Predicate_masked_load
/*511230*/              OPC_CheckType, MVT::v8f64,
/*511232*/              OPC_MoveParent,
/*511233*/              OPC_CheckChild1Integer, 0, 
/*511235*/              OPC_CheckChild1Type, MVT::iPTR,
/*511237*/              OPC_CheckType, MVT::v2f64,
/*511239*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$srcAddr #4 #5 #6 #7 #8
/*511242*/              OPC_EmitMergeInputChains1_0,
/*511243*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::i32, 0/*#Ops*/,  // Results = #9
/*511249*/              OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*511252*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::i32, 3/*#Ops*/, 9, 2, 10,  // Results = #11
/*511261*/              OPC_EmitInteger, MVT::i32, X86::VK1WMRegClassID,
/*511264*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v1i1, 2/*#Ops*/, 11, 12,  // Results = #13
/*511272*/              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_ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$srcAddr, (undef:{ *:[iPTR] }), (bitconvert:{ *:[v8i1] } (and:{ *:[i8] } GR8:{ *:[i8] }:$mask, 1:{ *:[i8] })), (insert_subvector:{ *:[v8f64] } (undef:{ *:[v8f64] }), (X86vzmovl:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src), 0:{ *:[iPTR] }))<<P:Predicate_masked_load>>, 0:{ *:[iPTR] }) - Complexity = 58
                        // 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)
/*511285*/            /*Scope*/ 58, /*->511344*/
/*511286*/              OPC_CheckImmAllZerosV,
/*511287*/              OPC_MoveParent,
/*511288*/              OPC_CheckPredicate, 102, // Predicate_masked_load
/*511290*/              OPC_CheckType, MVT::v8f64,
/*511292*/              OPC_MoveParent,
/*511293*/              OPC_CheckChild1Integer, 0, 
/*511295*/              OPC_CheckChild1Type, MVT::iPTR,
/*511297*/              OPC_CheckType, MVT::v2f64,
/*511299*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$srcAddr #3 #4 #5 #6 #7
/*511302*/              OPC_EmitMergeInputChains1_0,
/*511303*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::IMPLICIT_DEF), 0,
                            MVT::i32, 0/*#Ops*/,  // Results = #8
/*511309*/              OPC_EmitInteger, MVT::i32, X86::sub_8bit,
/*511312*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::INSERT_SUBREG), 0,
                            MVT::i32, 3/*#Ops*/, 8, 2, 9,  // Results = #10
/*511321*/              OPC_EmitInteger, MVT::i32, X86::VK1WMRegClassID,
/*511324*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v1i1, 2/*#Ops*/, 10, 11,  // Results = #12
/*511332*/              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_ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$srcAddr, (undef:{ *:[iPTR] }), (bitconvert:{ *:[v8i1] } (and:{ *:[i8] } GR8:{ *:[i8] }:$mask, 1:{ *:[i8] })), immAllZerosV:{ *:[v8f64] })<<P:Predicate_masked_load>>, 0:{ *:[iPTR] }) - Complexity = 48
                        // Dst: (VMOVSDZrmkz:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[v1i1] } (INSERT_SUBREG:{ *:[i32] } (IMPLICIT_DEF:{ *:[i32] }), GR8:{ *:[i8] }:$mask, sub_8bit:{ *:[i32] }), VK1WM:{ *:[i32] }), addr:{ *:[iPTR] }:$srcAddr)
/*511344*/            0, /*End of Scope*/
/*511345*/          0, // EndSwitchType
/*511346*/        0, // EndSwitchOpcode
/*511347*/      0, // EndSwitchOpcode
/*511348*/    /*Scope*/ 110|128,1/*238*/, /*->511588*/
/*511350*/      OPC_RecordChild0, // #0 = $src
/*511351*/      OPC_Scope, 19, /*->511372*/ // 7 children in Scope
/*511353*/        OPC_CheckChild0Type, MVT::v8f32,
/*511355*/        OPC_CheckChild1Integer, 0, 
/*511357*/        OPC_CheckChild1Type, MVT::iPTR,
/*511359*/        OPC_CheckType, MVT::v4f32,
/*511361*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*511364*/        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] })
/*511372*/      /*Scope*/ 19, /*->511392*/
/*511373*/        OPC_CheckChild0Type, MVT::v4f64,
/*511375*/        OPC_CheckChild1Integer, 0, 
/*511377*/        OPC_CheckChild1Type, MVT::iPTR,
/*511379*/        OPC_CheckType, MVT::v2f64,
/*511381*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*511384*/        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] })
/*511392*/      /*Scope*/ 19, /*->511412*/
/*511393*/        OPC_CheckChild0Type, MVT::v16f32,
/*511395*/        OPC_CheckChild1Integer, 0, 
/*511397*/        OPC_CheckChild1Type, MVT::iPTR,
/*511399*/        OPC_CheckType, MVT::v4f32,
/*511401*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*511404*/        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] })
/*511412*/      /*Scope*/ 19, /*->511432*/
/*511413*/        OPC_CheckChild0Type, MVT::v8f64,
/*511415*/        OPC_CheckChild1Integer, 0, 
/*511417*/        OPC_CheckChild1Type, MVT::iPTR,
/*511419*/        OPC_CheckType, MVT::v2f64,
/*511421*/        OPC_EmitInteger, MVT::i32, X86::sub_xmm,
/*511424*/        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] })
/*511432*/      /*Scope*/ 32, /*->511465*/
/*511433*/        OPC_CheckChild1Integer, 0, 
/*511435*/        OPC_CheckChild1Type, MVT::iPTR,
/*511437*/        OPC_SwitchType /*2 cases */, 11, MVT::v8f32,// ->511451
/*511440*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*511443*/          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] })
/*511451*/        /*SwitchType*/ 11, MVT::v4f64,// ->511464
/*511453*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*511456*/          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] })
/*511464*/        0, // EndSwitchType
/*511465*/      /*Scope*/ 60, /*->511526*/
/*511466*/        OPC_CheckChild1Integer, 2, 
/*511468*/        OPC_CheckChild0Type, MVT::v8f64,
/*511470*/        OPC_CheckChild1Type, MVT::iPTR,
/*511472*/        OPC_CheckType, MVT::v2f64,
/*511474*/        OPC_Scope, 24, /*->511500*/ // 2 children in Scope
/*511476*/          OPC_CheckPatternPredicate, 123, // (!Subtarget->hasVLX())
/*511478*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*511481*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4f64, 2/*#Ops*/, 0, 1,  // Results = #2
/*511489*/          OPC_EmitInteger, MVT::i8, 1, 
/*511492*/          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] })
/*511500*/        /*Scope*/ 24, /*->511525*/
/*511501*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*511503*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*511506*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v4f64, 2/*#Ops*/, 0, 1,  // Results = #2
/*511514*/          OPC_EmitInteger, MVT::i8, 1, 
/*511517*/          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] })
/*511525*/        0, /*End of Scope*/
/*511526*/      /*Scope*/ 60, /*->511587*/
/*511527*/        OPC_CheckChild1Integer, 4, 
/*511529*/        OPC_CheckChild0Type, MVT::v16f32,
/*511531*/        OPC_CheckChild1Type, MVT::iPTR,
/*511533*/        OPC_CheckType, MVT::v4f32,
/*511535*/        OPC_Scope, 24, /*->511561*/ // 2 children in Scope
/*511537*/          OPC_CheckPatternPredicate, 123, // (!Subtarget->hasVLX())
/*511539*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*511542*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v8f32, 2/*#Ops*/, 0, 1,  // Results = #2
/*511550*/          OPC_EmitInteger, MVT::i8, 1, 
/*511553*/          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] })
/*511561*/        /*Scope*/ 24, /*->511586*/
/*511562*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*511564*/          OPC_EmitInteger, MVT::i32, X86::sub_ymm,
/*511567*/          OPC_EmitNode1, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG), 0,
                        MVT::v8f32, 2/*#Ops*/, 0, 1,  // Results = #2
/*511575*/          OPC_EmitInteger, MVT::i8, 1, 
/*511578*/          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] })
/*511586*/        0, /*End of Scope*/
/*511587*/      0, /*End of Scope*/
/*511588*/    /*Scope*/ 88|128,1/*216*/, /*->511806*/
/*511590*/      OPC_RecordNode, // #0 = $ext
/*511591*/      OPC_RecordChild0, // #1 = $src1
/*511592*/      OPC_Scope, 26, /*->511620*/ // 8 children in Scope
/*511594*/        OPC_CheckChild0Type, MVT::v8f32,
/*511596*/        OPC_MoveChild1,
/*511597*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*511600*/        OPC_CheckType, MVT::iPTR,
/*511602*/        OPC_MoveParent,
/*511603*/        OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/*511605*/        OPC_CheckType, MVT::v4f32,
/*511607*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*511609*/        OPC_EmitNodeXForm, 0, 0, // EXTRACT_get_vextract128_imm
/*511612*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTF128rr), 0,
                      MVT::v4f32, 2/*#Ops*/, 1, 2, 
                  // Src: (extract_subvector:{ *:[v4f32] } VR256:{ *:[v8f32] }:$src1, (imm:{ *:[iPTR] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext - Complexity = 7
                  // Dst: (VEXTRACTF128rr:{ *:[v4f32] } VR256:{ *:[v8f32] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128:{ *:[v4f32] }:$ext))
/*511620*/      /*Scope*/ 26, /*->511647*/
/*511621*/        OPC_CheckChild0Type, MVT::v4f64,
/*511623*/        OPC_MoveChild1,
/*511624*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*511627*/        OPC_CheckType, MVT::iPTR,
/*511629*/        OPC_MoveParent,
/*511630*/        OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/*511632*/        OPC_CheckType, MVT::v2f64,
/*511634*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*511636*/        OPC_EmitNodeXForm, 0, 0, // EXTRACT_get_vextract128_imm
/*511639*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTF128rr), 0,
                      MVT::v2f64, 2/*#Ops*/, 1, 2, 
                  // Src: (extract_subvector:{ *:[v2f64] } VR256:{ *:[v4f64] }:$src1, (imm:{ *:[iPTR] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext - Complexity = 7
                  // Dst: (VEXTRACTF128rr:{ *:[v2f64] } VR256:{ *:[v4f64] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128:{ *:[v2f64] }:$ext))
/*511647*/      /*Scope*/ 26, /*->511674*/
/*511648*/        OPC_CheckChild0Type, MVT::v16f32,
/*511650*/        OPC_MoveChild1,
/*511651*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*511654*/        OPC_CheckType, MVT::iPTR,
/*511656*/        OPC_MoveParent,
/*511657*/        OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/*511659*/        OPC_CheckType, MVT::v4f32,
/*511661*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*511663*/        OPC_EmitNodeXForm, 0, 0, // EXTRACT_get_vextract128_imm
/*511666*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTF32x4Zrr), 0,
                      MVT::v4f32, 2/*#Ops*/, 1, 2, 
                  // Src: (extract_subvector:{ *:[v4f32] } VR512:{ *:[v16f32] }:$src1, (imm:{ *:[iPTR] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$idx - Complexity = 7
                  // Dst: (VEXTRACTF32x4Zrr:{ *:[v4f32] } VR512:{ *:[v16f32] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } (extract_subvector:{ *:[v4f32] } VR512:{ *:[v16f32] }:$src1, (imm:{ *:[iPTR] })):$idx))
/*511674*/      /*Scope*/ 24, /*->511699*/
/*511675*/        OPC_MoveChild1,
/*511676*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*511679*/        OPC_CheckType, MVT::iPTR,
/*511681*/        OPC_MoveParent,
/*511682*/        OPC_CheckPredicate, 18, // Predicate_vextract256_extract
/*511684*/        OPC_CheckType, MVT::v4f64,
/*511686*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*511688*/        OPC_EmitNodeXForm, 1, 0, // EXTRACT_get_vextract256_imm
/*511691*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTF64x4Zrr), 0,
                      MVT::v4f64, 2/*#Ops*/, 1, 2, 
                  // Src: (extract_subvector:{ *:[v4f64] } VR512:{ *:[v8f64] }:$src1, (imm:{ *:[iPTR] }))<<P:Predicate_vextract256_extract>><<X:EXTRACT_get_vextract256_imm>>:$idx - Complexity = 7
                  // Dst: (VEXTRACTF64x4Zrr:{ *:[v4f64] } VR512:{ *:[v8f64] }:$src1, (EXTRACT_get_vextract256_imm:{ *:[i8] } (extract_subvector:{ *:[v4f64] } VR512:{ *:[v8f64] }:$src1, (imm:{ *:[iPTR] })):$idx))
/*511699*/      /*Scope*/ 26, /*->511726*/
/*511700*/        OPC_CheckChild0Type, MVT::v8f32,
/*511702*/        OPC_MoveChild1,
/*511703*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*511706*/        OPC_CheckType, MVT::iPTR,
/*511708*/        OPC_MoveParent,
/*511709*/        OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/*511711*/        OPC_CheckType, MVT::v4f32,
/*511713*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*511715*/        OPC_EmitNodeXForm, 0, 0, // EXTRACT_get_vextract128_imm
/*511718*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTF32x4Z256rr), 0,
                      MVT::v4f32, 2/*#Ops*/, 1, 2, 
                  // Src: (extract_subvector:{ *:[v4f32] } VR256X:{ *:[v8f32] }:$src1, (imm:{ *:[iPTR] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$idx - Complexity = 7
                  // Dst: (VEXTRACTF32x4Z256rr:{ *:[v4f32] } VR256X:{ *:[v8f32] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } (extract_subvector:{ *:[v4f32] } VR256X:{ *:[v8f32] }:$src1, (imm:{ *:[iPTR] })):$idx))
/*511726*/      /*Scope*/ 26, /*->511753*/
/*511727*/        OPC_CheckChild0Type, MVT::v8f64,
/*511729*/        OPC_MoveChild1,
/*511730*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*511733*/        OPC_CheckType, MVT::iPTR,
/*511735*/        OPC_MoveParent,
/*511736*/        OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/*511738*/        OPC_CheckType, MVT::v2f64,
/*511740*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*511742*/        OPC_EmitNodeXForm, 0, 0, // EXTRACT_get_vextract128_imm
/*511745*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTF32x4Zrr), 0,
                      MVT::v2f64, 2/*#Ops*/, 1, 2, 
                  // Src: (extract_subvector:{ *:[v2f64] } VR512:{ *:[v8f64] }:$src1, (imm:{ *:[iPTR] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext - Complexity = 7
                  // Dst: (VEXTRACTF32x4Zrr:{ *:[v2f64] } VR512:{ *:[v8f64] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v2f64] }:$ext))
/*511753*/      /*Scope*/ 24, /*->511778*/
/*511754*/        OPC_MoveChild1,
/*511755*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*511758*/        OPC_CheckType, MVT::iPTR,
/*511760*/        OPC_MoveParent,
/*511761*/        OPC_CheckPredicate, 18, // Predicate_vextract256_extract
/*511763*/        OPC_CheckType, MVT::v8f32,
/*511765*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*511767*/        OPC_EmitNodeXForm, 1, 0, // EXTRACT_get_vextract256_imm
/*511770*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTF64x4Zrr), 0,
                      MVT::v8f32, 2/*#Ops*/, 1, 2, 
                  // Src: (extract_subvector:{ *:[v8f32] } VR512:{ *:[v16f32] }:$src1, (imm:{ *:[iPTR] }))<<P:Predicate_vextract256_extract>><<X:EXTRACT_get_vextract256_imm>>:$ext - Complexity = 7
                  // Dst: (VEXTRACTF64x4Zrr:{ *:[v8f32] } VR512:{ *:[v16f32] }:$src1, (EXTRACT_get_vextract256_imm:{ *:[i8] } VR256X:{ *:[v8f32] }:$ext))
/*511778*/      /*Scope*/ 26, /*->511805*/
/*511779*/        OPC_CheckChild0Type, MVT::v4f64,
/*511781*/        OPC_MoveChild1,
/*511782*/        OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
/*511785*/        OPC_CheckType, MVT::iPTR,
/*511787*/        OPC_MoveParent,
/*511788*/        OPC_CheckPredicate, 18, // Predicate_vextract128_extract
/*511790*/        OPC_CheckType, MVT::v2f64,
/*511792*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*511794*/        OPC_EmitNodeXForm, 0, 0, // EXTRACT_get_vextract128_imm
/*511797*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VEXTRACTF32x4Z256rr), 0,
                      MVT::v2f64, 2/*#Ops*/, 1, 2, 
                  // Src: (extract_subvector:{ *:[v2f64] } VR256X:{ *:[v4f64] }:$src1, (imm:{ *:[iPTR] }))<<P:Predicate_vextract128_extract>><<X:EXTRACT_get_vextract128_imm>>:$ext - Complexity = 7
                  // Dst: (VEXTRACTF32x4Z256rr:{ *:[v2f64] } VR256X:{ *:[v4f64] }:$src1, (EXTRACT_get_vextract128_imm:{ *:[i8] } VR128X:{ *:[v2f64] }:$ext))
/*511805*/      0, /*End of Scope*/
/*511806*/    0, /*End of Scope*/
/*511807*/  /*SwitchOpcode*/ 84|128,3/*468*/, TARGET_VAL(X86ISD::VMTRUNC),// ->512279
/*511811*/    OPC_RecordChild0, // #0 = $src
/*511812*/    OPC_Scope, 91, /*->511905*/ // 7 children in Scope
/*511814*/      OPC_CheckChild0Type, MVT::v2i64,
/*511816*/      OPC_Scope, 42, /*->511860*/ // 2 children in Scope
/*511818*/        OPC_MoveChild1,
/*511819*/        OPC_CheckImmAllZerosV,
/*511820*/        OPC_MoveParent,
/*511821*/        OPC_RecordChild2, // #1 = $mask
/*511822*/        OPC_SwitchType /*3 cases */, 10, MVT::v16i8,// ->511835
/*511825*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*511827*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVQBZ128rrkz), 0,
                        MVT::v16i8, 2/*#Ops*/, 1, 0, 
                    // Src: (X86vmtrunc:{ *:[v16i8] } VR128X:{ *:[v2i64] }:$src, immAllZerosV:{ *:[v16i8] }, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 7
                    // Dst: (VPMOVQBZ128rrkz:{ *:[v16i8] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*511835*/        /*SwitchType*/ 10, MVT::v8i16,// ->511847
/*511837*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*511839*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVQWZ128rrkz), 0,
                        MVT::v8i16, 2/*#Ops*/, 1, 0, 
                    // Src: (X86vmtrunc:{ *:[v8i16] } VR128X:{ *:[v2i64] }:$src, immAllZerosV:{ *:[v8i16] }, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 7
                    // Dst: (VPMOVQWZ128rrkz:{ *:[v8i16] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*511847*/        /*SwitchType*/ 10, MVT::v4i32,// ->511859
/*511849*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*511851*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVQDZ128rrkz), 0,
                        MVT::v4i32, 2/*#Ops*/, 1, 0, 
                    // Src: (X86vmtrunc:{ *:[v4i32] } VR128X:{ *:[v2i64] }:$src, immAllZerosV:{ *:[v4i32] }, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 7
                    // Dst: (VPMOVQDZ128rrkz:{ *:[v4i32] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*511859*/        0, // EndSwitchType
/*511860*/      /*Scope*/ 43, /*->511904*/
/*511861*/        OPC_RecordChild1, // #1 = $src0
/*511862*/        OPC_RecordChild2, // #2 = $mask
/*511863*/        OPC_SwitchType /*3 cases */, 11, MVT::v16i8,// ->511877
/*511866*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*511868*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVQBZ128rrk), 0,
                        MVT::v16i8, 3/*#Ops*/, 1, 2, 0, 
                    // Src: (X86vmtrunc:{ *:[v16i8] } VR128X:{ *:[v2i64] }:$src, VR128X:{ *:[v16i8] }:$src0, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 3
                    // Dst: (VPMOVQBZ128rrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*511877*/        /*SwitchType*/ 11, MVT::v8i16,// ->511890
/*511879*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*511881*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVQWZ128rrk), 0,
                        MVT::v8i16, 3/*#Ops*/, 1, 2, 0, 
                    // Src: (X86vmtrunc:{ *:[v8i16] } VR128X:{ *:[v2i64] }:$src, VR128X:{ *:[v8i16] }:$src0, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 3
                    // Dst: (VPMOVQWZ128rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*511890*/        /*SwitchType*/ 11, MVT::v4i32,// ->511903
/*511892*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*511894*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVQDZ128rrk), 0,
                        MVT::v4i32, 3/*#Ops*/, 1, 2, 0, 
                    // Src: (X86vmtrunc:{ *:[v4i32] } VR128X:{ *:[v2i64] }:$src, VR128X:{ *:[v4i32] }:$src0, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 3
                    // Dst: (VPMOVQDZ128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*511903*/        0, // EndSwitchType
/*511904*/      0, /*End of Scope*/
/*511905*/    /*Scope*/ 66, /*->511972*/
/*511906*/      OPC_CheckChild0Type, MVT::v4i64,
/*511908*/      OPC_Scope, 30, /*->511940*/ // 2 children in Scope
/*511910*/        OPC_MoveChild1,
/*511911*/        OPC_CheckImmAllZerosV,
/*511912*/        OPC_MoveParent,
/*511913*/        OPC_RecordChild2, // #1 = $mask
/*511914*/        OPC_SwitchType /*2 cases */, 10, MVT::v16i8,// ->511927
/*511917*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*511919*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVQBZ256rrkz), 0,
                        MVT::v16i8, 2/*#Ops*/, 1, 0, 
                    // Src: (X86vmtrunc:{ *:[v16i8] } VR256X:{ *:[v4i64] }:$src, immAllZerosV:{ *:[v16i8] }, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 7
                    // Dst: (VPMOVQBZ256rrkz:{ *:[v16i8] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/*511927*/        /*SwitchType*/ 10, MVT::v8i16,// ->511939
/*511929*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*511931*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVQWZ256rrkz), 0,
                        MVT::v8i16, 2/*#Ops*/, 1, 0, 
                    // Src: (X86vmtrunc:{ *:[v8i16] } VR256X:{ *:[v4i64] }:$src, immAllZerosV:{ *:[v8i16] }, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 7
                    // Dst: (VPMOVQWZ256rrkz:{ *:[v8i16] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/*511939*/        0, // EndSwitchType
/*511940*/      /*Scope*/ 30, /*->511971*/
/*511941*/        OPC_RecordChild1, // #1 = $src0
/*511942*/        OPC_RecordChild2, // #2 = $mask
/*511943*/        OPC_SwitchType /*2 cases */, 11, MVT::v16i8,// ->511957
/*511946*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*511948*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVQBZ256rrk), 0,
                        MVT::v16i8, 3/*#Ops*/, 1, 2, 0, 
                    // Src: (X86vmtrunc:{ *:[v16i8] } VR256X:{ *:[v4i64] }:$src, VR128X:{ *:[v16i8] }:$src0, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 3
                    // Dst: (VPMOVQBZ256rrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/*511957*/        /*SwitchType*/ 11, MVT::v8i16,// ->511970
/*511959*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*511961*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVQWZ256rrk), 0,
                        MVT::v8i16, 3/*#Ops*/, 1, 2, 0, 
                    // Src: (X86vmtrunc:{ *:[v8i16] } VR256X:{ *:[v4i64] }:$src, VR128X:{ *:[v8i16] }:$src0, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 3
                    // Dst: (VPMOVQWZ256rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/*511970*/        0, // EndSwitchType
/*511971*/      0, /*End of Scope*/
/*511972*/    /*Scope*/ 66, /*->512039*/
/*511973*/      OPC_CheckChild0Type, MVT::v8i64,
/*511975*/      OPC_Scope, 30, /*->512007*/ // 2 children in Scope
/*511977*/        OPC_MoveChild1,
/*511978*/        OPC_CheckImmAllZerosV,
/*511979*/        OPC_MoveParent,
/*511980*/        OPC_RecordChild2, // #1 = $mask
/*511981*/        OPC_SwitchType /*2 cases */, 10, MVT::v16i8,// ->511994
/*511984*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*511986*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVQBZrrkz), 0,
                        MVT::v16i8, 2/*#Ops*/, 1, 0, 
                    // Src: (X86vmtrunc:{ *:[v16i8] } VR512:{ *:[v8i64] }:$src, immAllZerosV:{ *:[v16i8] }, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 7
                    // Dst: (VPMOVQBZrrkz:{ *:[v16i8] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*511994*/        /*SwitchType*/ 10, MVT::v8i16,// ->512006
/*511996*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*511998*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVQWZrrkz), 0,
                        MVT::v8i16, 2/*#Ops*/, 1, 0, 
                    // Src: (X86vmtrunc:{ *:[v8i16] } VR512:{ *:[v8i64] }:$src, immAllZerosV:{ *:[v8i16] }, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 7
                    // Dst: (VPMOVQWZrrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*512006*/        0, // EndSwitchType
/*512007*/      /*Scope*/ 30, /*->512038*/
/*512008*/        OPC_RecordChild1, // #1 = $src0
/*512009*/        OPC_RecordChild2, // #2 = $mask
/*512010*/        OPC_SwitchType /*2 cases */, 11, MVT::v16i8,// ->512024
/*512013*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*512015*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVQBZrrk), 0,
                        MVT::v16i8, 3/*#Ops*/, 1, 2, 0, 
                    // Src: (X86vmtrunc:{ *:[v16i8] } VR512:{ *:[v8i64] }:$src, VR128X:{ *:[v16i8] }:$src0, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 3
                    // Dst: (VPMOVQBZrrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*512024*/        /*SwitchType*/ 11, MVT::v8i16,// ->512037
/*512026*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*512028*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVQWZrrk), 0,
                        MVT::v8i16, 3/*#Ops*/, 1, 2, 0, 
                    // Src: (X86vmtrunc:{ *:[v8i16] } VR512:{ *:[v8i64] }:$src, VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 3
                    // Dst: (VPMOVQWZrrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*512037*/        0, // EndSwitchType
/*512038*/      0, /*End of Scope*/
/*512039*/    /*Scope*/ 66, /*->512106*/
/*512040*/      OPC_CheckChild0Type, MVT::v4i32,
/*512042*/      OPC_Scope, 30, /*->512074*/ // 2 children in Scope
/*512044*/        OPC_MoveChild1,
/*512045*/        OPC_CheckImmAllZerosV,
/*512046*/        OPC_MoveParent,
/*512047*/        OPC_RecordChild2, // #1 = $mask
/*512048*/        OPC_SwitchType /*2 cases */, 10, MVT::v16i8,// ->512061
/*512051*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*512053*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVDBZ128rrkz), 0,
                        MVT::v16i8, 2/*#Ops*/, 1, 0, 
                    // Src: (X86vmtrunc:{ *:[v16i8] } VR128X:{ *:[v4i32] }:$src, immAllZerosV:{ *:[v16i8] }, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 7
                    // Dst: (VPMOVDBZ128rrkz:{ *:[v16i8] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*512061*/        /*SwitchType*/ 10, MVT::v8i16,// ->512073
/*512063*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*512065*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVDWZ128rrkz), 0,
                        MVT::v8i16, 2/*#Ops*/, 1, 0, 
                    // Src: (X86vmtrunc:{ *:[v8i16] } VR128X:{ *:[v4i32] }:$src, immAllZerosV:{ *:[v8i16] }, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 7
                    // Dst: (VPMOVDWZ128rrkz:{ *:[v8i16] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*512073*/        0, // EndSwitchType
/*512074*/      /*Scope*/ 30, /*->512105*/
/*512075*/        OPC_RecordChild1, // #1 = $src0
/*512076*/        OPC_RecordChild2, // #2 = $mask
/*512077*/        OPC_SwitchType /*2 cases */, 11, MVT::v16i8,// ->512091
/*512080*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*512082*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVDBZ128rrk), 0,
                        MVT::v16i8, 3/*#Ops*/, 1, 2, 0, 
                    // Src: (X86vmtrunc:{ *:[v16i8] } VR128X:{ *:[v4i32] }:$src, VR128X:{ *:[v16i8] }:$src0, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 3
                    // Dst: (VPMOVDBZ128rrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*512091*/        /*SwitchType*/ 11, MVT::v8i16,// ->512104
/*512093*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*512095*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVDWZ128rrk), 0,
                        MVT::v8i16, 3/*#Ops*/, 1, 2, 0, 
                    // Src: (X86vmtrunc:{ *:[v8i16] } VR128X:{ *:[v4i32] }:$src, VR128X:{ *:[v8i16] }:$src0, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 3
                    // Dst: (VPMOVDWZ128rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*512104*/        0, // EndSwitchType
/*512105*/      0, /*End of Scope*/
/*512106*/    /*Scope*/ 66, /*->512173*/
/*512107*/      OPC_CheckChild0Type, MVT::v8i32,
/*512109*/      OPC_Scope, 30, /*->512141*/ // 2 children in Scope
/*512111*/        OPC_MoveChild1,
/*512112*/        OPC_CheckImmAllZerosV,
/*512113*/        OPC_MoveParent,
/*512114*/        OPC_RecordChild2, // #1 = $mask
/*512115*/        OPC_SwitchType /*2 cases */, 10, MVT::v16i8,// ->512128
/*512118*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*512120*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVDBZ256rrkz), 0,
                        MVT::v16i8, 2/*#Ops*/, 1, 0, 
                    // Src: (X86vmtrunc:{ *:[v16i8] } VR256X:{ *:[v8i32] }:$src, immAllZerosV:{ *:[v16i8] }, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 7
                    // Dst: (VPMOVDBZ256rrkz:{ *:[v16i8] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/*512128*/        /*SwitchType*/ 10, MVT::v8i16,// ->512140
/*512130*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*512132*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVDWZ256rrkz), 0,
                        MVT::v8i16, 2/*#Ops*/, 1, 0, 
                    // Src: (X86vmtrunc:{ *:[v8i16] } VR256X:{ *:[v8i32] }:$src, immAllZerosV:{ *:[v8i16] }, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 7
                    // Dst: (VPMOVDWZ256rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/*512140*/        0, // EndSwitchType
/*512141*/      /*Scope*/ 30, /*->512172*/
/*512142*/        OPC_RecordChild1, // #1 = $src0
/*512143*/        OPC_RecordChild2, // #2 = $mask
/*512144*/        OPC_SwitchType /*2 cases */, 11, MVT::v16i8,// ->512158
/*512147*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*512149*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVDBZ256rrk), 0,
                        MVT::v16i8, 3/*#Ops*/, 1, 2, 0, 
                    // Src: (X86vmtrunc:{ *:[v16i8] } VR256X:{ *:[v8i32] }:$src, VR128X:{ *:[v16i8] }:$src0, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 3
                    // Dst: (VPMOVDBZ256rrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/*512158*/        /*SwitchType*/ 11, MVT::v8i16,// ->512171
/*512160*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*512162*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVDWZ256rrk), 0,
                        MVT::v8i16, 3/*#Ops*/, 1, 2, 0, 
                    // Src: (X86vmtrunc:{ *:[v8i16] } VR256X:{ *:[v8i32] }:$src, VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 3
                    // Dst: (VPMOVDWZ256rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/*512171*/        0, // EndSwitchType
/*512172*/      0, /*End of Scope*/
/*512173*/    /*Scope*/ 37, /*->512211*/
/*512174*/      OPC_CheckChild0Type, MVT::v8i16,
/*512176*/      OPC_Scope, 16, /*->512194*/ // 2 children in Scope
/*512178*/        OPC_MoveChild1,
/*512179*/        OPC_CheckImmAllZerosV,
/*512180*/        OPC_MoveParent,
/*512181*/        OPC_RecordChild2, // #1 = $mask
/*512182*/        OPC_CheckType, MVT::v16i8,
/*512184*/        OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*512186*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVWBZ128rrkz), 0,
                      MVT::v16i8, 2/*#Ops*/, 1, 0, 
                  // Src: (X86vmtrunc:{ *:[v16i8] } VR128X:{ *:[v8i16] }:$src, immAllZerosV:{ *:[v16i8] }, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 7
                  // Dst: (VPMOVWBZ128rrkz:{ *:[v16i8] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/*512194*/      /*Scope*/ 15, /*->512210*/
/*512195*/        OPC_RecordChild1, // #1 = $src0
/*512196*/        OPC_RecordChild2, // #2 = $mask
/*512197*/        OPC_CheckType, MVT::v16i8,
/*512199*/        OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*512201*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVWBZ128rrk), 0,
                      MVT::v16i8, 3/*#Ops*/, 1, 2, 0, 
                  // Src: (X86vmtrunc:{ *:[v16i8] } VR128X:{ *:[v8i16] }:$src, VR128X:{ *:[v16i8] }:$src0, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 3
                  // Dst: (VPMOVWBZ128rrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/*512210*/      0, /*End of Scope*/
/*512211*/    /*Scope*/ 66, /*->512278*/
/*512212*/      OPC_CheckChild0Type, MVT::v16i32,
/*512214*/      OPC_Scope, 30, /*->512246*/ // 2 children in Scope
/*512216*/        OPC_MoveChild1,
/*512217*/        OPC_CheckImmAllZerosV,
/*512218*/        OPC_MoveParent,
/*512219*/        OPC_RecordChild2, // #1 = $mask
/*512220*/        OPC_SwitchType /*2 cases */, 10, MVT::v16i16,// ->512233
/*512223*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*512225*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVDWZrrkz), 0,
                        MVT::v16i16, 2/*#Ops*/, 1, 0, 
                    // Src: (X86vmtrunc:{ *:[v16i16] } VR512:{ *:[v16i32] }:$src, immAllZerosV:{ *:[v16i16] }, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 7
                    // Dst: (VPMOVDWZrrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)
/*512233*/        /*SwitchType*/ 10, MVT::v16i8,// ->512245
/*512235*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*512237*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVDBZrrkz), 0,
                        MVT::v16i8, 2/*#Ops*/, 1, 0, 
                    // Src: (X86vmtrunc:{ *:[v16i8] } VR512:{ *:[v16i32] }:$src, immAllZerosV:{ *:[v16i8] }, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 7
                    // Dst: (VPMOVDBZrrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)
/*512245*/        0, // EndSwitchType
/*512246*/      /*Scope*/ 30, /*->512277*/
/*512247*/        OPC_RecordChild1, // #1 = $src0
/*512248*/        OPC_RecordChild2, // #2 = $mask
/*512249*/        OPC_SwitchType /*2 cases */, 11, MVT::v16i16,// ->512263
/*512252*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*512254*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVDWZrrk), 0,
                        MVT::v16i16, 3/*#Ops*/, 1, 2, 0, 
                    // Src: (X86vmtrunc:{ *:[v16i16] } VR512:{ *:[v16i32] }:$src, VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 3
                    // Dst: (VPMOVDWZrrk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)
/*512263*/        /*SwitchType*/ 11, MVT::v16i8,// ->512276
/*512265*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*512267*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVDBZrrk), 0,
                        MVT::v16i8, 3/*#Ops*/, 1, 2, 0, 
                    // Src: (X86vmtrunc:{ *:[v16i8] } VR512:{ *:[v16i32] }:$src, VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 3
                    // Dst: (VPMOVDBZrrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)
/*512276*/        0, // EndSwitchType
/*512277*/      0, /*End of Scope*/
/*512278*/    0, /*End of Scope*/
/*512279*/  /*SwitchOpcode*/ 84|128,3/*468*/, TARGET_VAL(X86ISD::VMTRUNCS),// ->512751
/*512283*/    OPC_RecordChild0, // #0 = $src
/*512284*/    OPC_Scope, 91, /*->512377*/ // 7 children in Scope
/*512286*/      OPC_CheckChild0Type, MVT::v2i64,
/*512288*/      OPC_Scope, 42, /*->512332*/ // 2 children in Scope
/*512290*/        OPC_MoveChild1,
/*512291*/        OPC_CheckImmAllZerosV,
/*512292*/        OPC_MoveParent,
/*512293*/        OPC_RecordChild2, // #1 = $mask
/*512294*/        OPC_SwitchType /*3 cases */, 10, MVT::v16i8,// ->512307
/*512297*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*512299*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSQBZ128rrkz), 0,
                        MVT::v16i8, 2/*#Ops*/, 1, 0, 
                    // Src: (X86vmtruncs:{ *:[v16i8] } VR128X:{ *:[v2i64] }:$src, immAllZerosV:{ *:[v16i8] }, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 7
                    // Dst: (VPMOVSQBZ128rrkz:{ *:[v16i8] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*512307*/        /*SwitchType*/ 10, MVT::v8i16,// ->512319
/*512309*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*512311*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSQWZ128rrkz), 0,
                        MVT::v8i16, 2/*#Ops*/, 1, 0, 
                    // Src: (X86vmtruncs:{ *:[v8i16] } VR128X:{ *:[v2i64] }:$src, immAllZerosV:{ *:[v8i16] }, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 7
                    // Dst: (VPMOVSQWZ128rrkz:{ *:[v8i16] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*512319*/        /*SwitchType*/ 10, MVT::v4i32,// ->512331
/*512321*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*512323*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSQDZ128rrkz), 0,
                        MVT::v4i32, 2/*#Ops*/, 1, 0, 
                    // Src: (X86vmtruncs:{ *:[v4i32] } VR128X:{ *:[v2i64] }:$src, immAllZerosV:{ *:[v4i32] }, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 7
                    // Dst: (VPMOVSQDZ128rrkz:{ *:[v4i32] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*512331*/        0, // EndSwitchType
/*512332*/      /*Scope*/ 43, /*->512376*/
/*512333*/        OPC_RecordChild1, // #1 = $src0
/*512334*/        OPC_RecordChild2, // #2 = $mask
/*512335*/        OPC_SwitchType /*3 cases */, 11, MVT::v16i8,// ->512349
/*512338*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*512340*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSQBZ128rrk), 0,
                        MVT::v16i8, 3/*#Ops*/, 1, 2, 0, 
                    // Src: (X86vmtruncs:{ *:[v16i8] } VR128X:{ *:[v2i64] }:$src, VR128X:{ *:[v16i8] }:$src0, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 3
                    // Dst: (VPMOVSQBZ128rrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*512349*/        /*SwitchType*/ 11, MVT::v8i16,// ->512362
/*512351*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*512353*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSQWZ128rrk), 0,
                        MVT::v8i16, 3/*#Ops*/, 1, 2, 0, 
                    // Src: (X86vmtruncs:{ *:[v8i16] } VR128X:{ *:[v2i64] }:$src, VR128X:{ *:[v8i16] }:$src0, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 3
                    // Dst: (VPMOVSQWZ128rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*512362*/        /*SwitchType*/ 11, MVT::v4i32,// ->512375
/*512364*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*512366*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSQDZ128rrk), 0,
                        MVT::v4i32, 3/*#Ops*/, 1, 2, 0, 
                    // Src: (X86vmtruncs:{ *:[v4i32] } VR128X:{ *:[v2i64] }:$src, VR128X:{ *:[v4i32] }:$src0, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 3
                    // Dst: (VPMOVSQDZ128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*512375*/        0, // EndSwitchType
/*512376*/      0, /*End of Scope*/
/*512377*/    /*Scope*/ 66, /*->512444*/
/*512378*/      OPC_CheckChild0Type, MVT::v4i64,
/*512380*/      OPC_Scope, 30, /*->512412*/ // 2 children in Scope
/*512382*/        OPC_MoveChild1,
/*512383*/        OPC_CheckImmAllZerosV,
/*512384*/        OPC_MoveParent,
/*512385*/        OPC_RecordChild2, // #1 = $mask
/*512386*/        OPC_SwitchType /*2 cases */, 10, MVT::v16i8,// ->512399
/*512389*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*512391*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSQBZ256rrkz), 0,
                        MVT::v16i8, 2/*#Ops*/, 1, 0, 
                    // Src: (X86vmtruncs:{ *:[v16i8] } VR256X:{ *:[v4i64] }:$src, immAllZerosV:{ *:[v16i8] }, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 7
                    // Dst: (VPMOVSQBZ256rrkz:{ *:[v16i8] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/*512399*/        /*SwitchType*/ 10, MVT::v8i16,// ->512411
/*512401*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*512403*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSQWZ256rrkz), 0,
                        MVT::v8i16, 2/*#Ops*/, 1, 0, 
                    // Src: (X86vmtruncs:{ *:[v8i16] } VR256X:{ *:[v4i64] }:$src, immAllZerosV:{ *:[v8i16] }, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 7
                    // Dst: (VPMOVSQWZ256rrkz:{ *:[v8i16] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/*512411*/        0, // EndSwitchType
/*512412*/      /*Scope*/ 30, /*->512443*/
/*512413*/        OPC_RecordChild1, // #1 = $src0
/*512414*/        OPC_RecordChild2, // #2 = $mask
/*512415*/        OPC_SwitchType /*2 cases */, 11, MVT::v16i8,// ->512429
/*512418*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*512420*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSQBZ256rrk), 0,
                        MVT::v16i8, 3/*#Ops*/, 1, 2, 0, 
                    // Src: (X86vmtruncs:{ *:[v16i8] } VR256X:{ *:[v4i64] }:$src, VR128X:{ *:[v16i8] }:$src0, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 3
                    // Dst: (VPMOVSQBZ256rrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/*512429*/        /*SwitchType*/ 11, MVT::v8i16,// ->512442
/*512431*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*512433*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSQWZ256rrk), 0,
                        MVT::v8i16, 3/*#Ops*/, 1, 2, 0, 
                    // Src: (X86vmtruncs:{ *:[v8i16] } VR256X:{ *:[v4i64] }:$src, VR128X:{ *:[v8i16] }:$src0, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 3
                    // Dst: (VPMOVSQWZ256rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/*512442*/        0, // EndSwitchType
/*512443*/      0, /*End of Scope*/
/*512444*/    /*Scope*/ 66, /*->512511*/
/*512445*/      OPC_CheckChild0Type, MVT::v8i64,
/*512447*/      OPC_Scope, 30, /*->512479*/ // 2 children in Scope
/*512449*/        OPC_MoveChild1,
/*512450*/        OPC_CheckImmAllZerosV,
/*512451*/        OPC_MoveParent,
/*512452*/        OPC_RecordChild2, // #1 = $mask
/*512453*/        OPC_SwitchType /*2 cases */, 10, MVT::v16i8,// ->512466
/*512456*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*512458*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSQBZrrkz), 0,
                        MVT::v16i8, 2/*#Ops*/, 1, 0, 
                    // Src: (X86vmtruncs:{ *:[v16i8] } VR512:{ *:[v8i64] }:$src, immAllZerosV:{ *:[v16i8] }, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 7
                    // Dst: (VPMOVSQBZrrkz:{ *:[v16i8] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*512466*/        /*SwitchType*/ 10, MVT::v8i16,// ->512478
/*512468*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*512470*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSQWZrrkz), 0,
                        MVT::v8i16, 2/*#Ops*/, 1, 0, 
                    // Src: (X86vmtruncs:{ *:[v8i16] } VR512:{ *:[v8i64] }:$src, immAllZerosV:{ *:[v8i16] }, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 7
                    // Dst: (VPMOVSQWZrrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*512478*/        0, // EndSwitchType
/*512479*/      /*Scope*/ 30, /*->512510*/
/*512480*/        OPC_RecordChild1, // #1 = $src0
/*512481*/        OPC_RecordChild2, // #2 = $mask
/*512482*/        OPC_SwitchType /*2 cases */, 11, MVT::v16i8,// ->512496
/*512485*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*512487*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSQBZrrk), 0,
                        MVT::v16i8, 3/*#Ops*/, 1, 2, 0, 
                    // Src: (X86vmtruncs:{ *:[v16i8] } VR512:{ *:[v8i64] }:$src, VR128X:{ *:[v16i8] }:$src0, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 3
                    // Dst: (VPMOVSQBZrrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*512496*/        /*SwitchType*/ 11, MVT::v8i16,// ->512509
/*512498*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*512500*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSQWZrrk), 0,
                        MVT::v8i16, 3/*#Ops*/, 1, 2, 0, 
                    // Src: (X86vmtruncs:{ *:[v8i16] } VR512:{ *:[v8i64] }:$src, VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 3
                    // Dst: (VPMOVSQWZrrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*512509*/        0, // EndSwitchType
/*512510*/      0, /*End of Scope*/
/*512511*/    /*Scope*/ 66, /*->512578*/
/*512512*/      OPC_CheckChild0Type, MVT::v4i32,
/*512514*/      OPC_Scope, 30, /*->512546*/ // 2 children in Scope
/*512516*/        OPC_MoveChild1,
/*512517*/        OPC_CheckImmAllZerosV,
/*512518*/        OPC_MoveParent,
/*512519*/        OPC_RecordChild2, // #1 = $mask
/*512520*/        OPC_SwitchType /*2 cases */, 10, MVT::v16i8,// ->512533
/*512523*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*512525*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSDBZ128rrkz), 0,
                        MVT::v16i8, 2/*#Ops*/, 1, 0, 
                    // Src: (X86vmtruncs:{ *:[v16i8] } VR128X:{ *:[v4i32] }:$src, immAllZerosV:{ *:[v16i8] }, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 7
                    // Dst: (VPMOVSDBZ128rrkz:{ *:[v16i8] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*512533*/        /*SwitchType*/ 10, MVT::v8i16,// ->512545
/*512535*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*512537*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSDWZ128rrkz), 0,
                        MVT::v8i16, 2/*#Ops*/, 1, 0, 
                    // Src: (X86vmtruncs:{ *:[v8i16] } VR128X:{ *:[v4i32] }:$src, immAllZerosV:{ *:[v8i16] }, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 7
                    // Dst: (VPMOVSDWZ128rrkz:{ *:[v8i16] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*512545*/        0, // EndSwitchType
/*512546*/      /*Scope*/ 30, /*->512577*/
/*512547*/        OPC_RecordChild1, // #1 = $src0
/*512548*/        OPC_RecordChild2, // #2 = $mask
/*512549*/        OPC_SwitchType /*2 cases */, 11, MVT::v16i8,// ->512563
/*512552*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*512554*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSDBZ128rrk), 0,
                        MVT::v16i8, 3/*#Ops*/, 1, 2, 0, 
                    // Src: (X86vmtruncs:{ *:[v16i8] } VR128X:{ *:[v4i32] }:$src, VR128X:{ *:[v16i8] }:$src0, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 3
                    // Dst: (VPMOVSDBZ128rrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*512563*/        /*SwitchType*/ 11, MVT::v8i16,// ->512576
/*512565*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*512567*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSDWZ128rrk), 0,
                        MVT::v8i16, 3/*#Ops*/, 1, 2, 0, 
                    // Src: (X86vmtruncs:{ *:[v8i16] } VR128X:{ *:[v4i32] }:$src, VR128X:{ *:[v8i16] }:$src0, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 3
                    // Dst: (VPMOVSDWZ128rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*512576*/        0, // EndSwitchType
/*512577*/      0, /*End of Scope*/
/*512578*/    /*Scope*/ 66, /*->512645*/
/*512579*/      OPC_CheckChild0Type, MVT::v8i32,
/*512581*/      OPC_Scope, 30, /*->512613*/ // 2 children in Scope
/*512583*/        OPC_MoveChild1,
/*512584*/        OPC_CheckImmAllZerosV,
/*512585*/        OPC_MoveParent,
/*512586*/        OPC_RecordChild2, // #1 = $mask
/*512587*/        OPC_SwitchType /*2 cases */, 10, MVT::v16i8,// ->512600
/*512590*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*512592*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSDBZ256rrkz), 0,
                        MVT::v16i8, 2/*#Ops*/, 1, 0, 
                    // Src: (X86vmtruncs:{ *:[v16i8] } VR256X:{ *:[v8i32] }:$src, immAllZerosV:{ *:[v16i8] }, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 7
                    // Dst: (VPMOVSDBZ256rrkz:{ *:[v16i8] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/*512600*/        /*SwitchType*/ 10, MVT::v8i16,// ->512612
/*512602*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*512604*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSDWZ256rrkz), 0,
                        MVT::v8i16, 2/*#Ops*/, 1, 0, 
                    // Src: (X86vmtruncs:{ *:[v8i16] } VR256X:{ *:[v8i32] }:$src, immAllZerosV:{ *:[v8i16] }, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 7
                    // Dst: (VPMOVSDWZ256rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/*512612*/        0, // EndSwitchType
/*512613*/      /*Scope*/ 30, /*->512644*/
/*512614*/        OPC_RecordChild1, // #1 = $src0
/*512615*/        OPC_RecordChild2, // #2 = $mask
/*512616*/        OPC_SwitchType /*2 cases */, 11, MVT::v16i8,// ->512630
/*512619*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*512621*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSDBZ256rrk), 0,
                        MVT::v16i8, 3/*#Ops*/, 1, 2, 0, 
                    // Src: (X86vmtruncs:{ *:[v16i8] } VR256X:{ *:[v8i32] }:$src, VR128X:{ *:[v16i8] }:$src0, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 3
                    // Dst: (VPMOVSDBZ256rrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/*512630*/        /*SwitchType*/ 11, MVT::v8i16,// ->512643
/*512632*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*512634*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSDWZ256rrk), 0,
                        MVT::v8i16, 3/*#Ops*/, 1, 2, 0, 
                    // Src: (X86vmtruncs:{ *:[v8i16] } VR256X:{ *:[v8i32] }:$src, VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 3
                    // Dst: (VPMOVSDWZ256rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/*512643*/        0, // EndSwitchType
/*512644*/      0, /*End of Scope*/
/*512645*/    /*Scope*/ 37, /*->512683*/
/*512646*/      OPC_CheckChild0Type, MVT::v8i16,
/*512648*/      OPC_Scope, 16, /*->512666*/ // 2 children in Scope
/*512650*/        OPC_MoveChild1,
/*512651*/        OPC_CheckImmAllZerosV,
/*512652*/        OPC_MoveParent,
/*512653*/        OPC_RecordChild2, // #1 = $mask
/*512654*/        OPC_CheckType, MVT::v16i8,
/*512656*/        OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*512658*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSWBZ128rrkz), 0,
                      MVT::v16i8, 2/*#Ops*/, 1, 0, 
                  // Src: (X86vmtruncs:{ *:[v16i8] } VR128X:{ *:[v8i16] }:$src, immAllZerosV:{ *:[v16i8] }, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 7
                  // Dst: (VPMOVSWBZ128rrkz:{ *:[v16i8] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/*512666*/      /*Scope*/ 15, /*->512682*/
/*512667*/        OPC_RecordChild1, // #1 = $src0
/*512668*/        OPC_RecordChild2, // #2 = $mask
/*512669*/        OPC_CheckType, MVT::v16i8,
/*512671*/        OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*512673*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSWBZ128rrk), 0,
                      MVT::v16i8, 3/*#Ops*/, 1, 2, 0, 
                  // Src: (X86vmtruncs:{ *:[v16i8] } VR128X:{ *:[v8i16] }:$src, VR128X:{ *:[v16i8] }:$src0, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 3
                  // Dst: (VPMOVSWBZ128rrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/*512682*/      0, /*End of Scope*/
/*512683*/    /*Scope*/ 66, /*->512750*/
/*512684*/      OPC_CheckChild0Type, MVT::v16i32,
/*512686*/      OPC_Scope, 30, /*->512718*/ // 2 children in Scope
/*512688*/        OPC_MoveChild1,
/*512689*/        OPC_CheckImmAllZerosV,
/*512690*/        OPC_MoveParent,
/*512691*/        OPC_RecordChild2, // #1 = $mask
/*512692*/        OPC_SwitchType /*2 cases */, 10, MVT::v16i16,// ->512705
/*512695*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*512697*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSDWZrrkz), 0,
                        MVT::v16i16, 2/*#Ops*/, 1, 0, 
                    // Src: (X86vmtruncs:{ *:[v16i16] } VR512:{ *:[v16i32] }:$src, immAllZerosV:{ *:[v16i16] }, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 7
                    // Dst: (VPMOVSDWZrrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)
/*512705*/        /*SwitchType*/ 10, MVT::v16i8,// ->512717
/*512707*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*512709*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSDBZrrkz), 0,
                        MVT::v16i8, 2/*#Ops*/, 1, 0, 
                    // Src: (X86vmtruncs:{ *:[v16i8] } VR512:{ *:[v16i32] }:$src, immAllZerosV:{ *:[v16i8] }, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 7
                    // Dst: (VPMOVSDBZrrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)
/*512717*/        0, // EndSwitchType
/*512718*/      /*Scope*/ 30, /*->512749*/
/*512719*/        OPC_RecordChild1, // #1 = $src0
/*512720*/        OPC_RecordChild2, // #2 = $mask
/*512721*/        OPC_SwitchType /*2 cases */, 11, MVT::v16i16,// ->512735
/*512724*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*512726*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSDWZrrk), 0,
                        MVT::v16i16, 3/*#Ops*/, 1, 2, 0, 
                    // Src: (X86vmtruncs:{ *:[v16i16] } VR512:{ *:[v16i32] }:$src, VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 3
                    // Dst: (VPMOVSDWZrrk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)
/*512735*/        /*SwitchType*/ 11, MVT::v16i8,// ->512748
/*512737*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*512739*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSDBZrrk), 0,
                        MVT::v16i8, 3/*#Ops*/, 1, 2, 0, 
                    // Src: (X86vmtruncs:{ *:[v16i8] } VR512:{ *:[v16i32] }:$src, VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 3
                    // Dst: (VPMOVSDBZrrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)
/*512748*/        0, // EndSwitchType
/*512749*/      0, /*End of Scope*/
/*512750*/    0, /*End of Scope*/
/*512751*/  /*SwitchOpcode*/ 84|128,3/*468*/, TARGET_VAL(X86ISD::VMTRUNCUS),// ->513223
/*512755*/    OPC_RecordChild0, // #0 = $src
/*512756*/    OPC_Scope, 91, /*->512849*/ // 7 children in Scope
/*512758*/      OPC_CheckChild0Type, MVT::v2i64,
/*512760*/      OPC_Scope, 42, /*->512804*/ // 2 children in Scope
/*512762*/        OPC_MoveChild1,
/*512763*/        OPC_CheckImmAllZerosV,
/*512764*/        OPC_MoveParent,
/*512765*/        OPC_RecordChild2, // #1 = $mask
/*512766*/        OPC_SwitchType /*3 cases */, 10, MVT::v16i8,// ->512779
/*512769*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*512771*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSQBZ128rrkz), 0,
                        MVT::v16i8, 2/*#Ops*/, 1, 0, 
                    // Src: (X86vmtruncus:{ *:[v16i8] } VR128X:{ *:[v2i64] }:$src, immAllZerosV:{ *:[v16i8] }, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 7
                    // Dst: (VPMOVUSQBZ128rrkz:{ *:[v16i8] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*512779*/        /*SwitchType*/ 10, MVT::v8i16,// ->512791
/*512781*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*512783*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSQWZ128rrkz), 0,
                        MVT::v8i16, 2/*#Ops*/, 1, 0, 
                    // Src: (X86vmtruncus:{ *:[v8i16] } VR128X:{ *:[v2i64] }:$src, immAllZerosV:{ *:[v8i16] }, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 7
                    // Dst: (VPMOVUSQWZ128rrkz:{ *:[v8i16] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*512791*/        /*SwitchType*/ 10, MVT::v4i32,// ->512803
/*512793*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*512795*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSQDZ128rrkz), 0,
                        MVT::v4i32, 2/*#Ops*/, 1, 0, 
                    // Src: (X86vmtruncus:{ *:[v4i32] } VR128X:{ *:[v2i64] }:$src, immAllZerosV:{ *:[v4i32] }, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 7
                    // Dst: (VPMOVUSQDZ128rrkz:{ *:[v4i32] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*512803*/        0, // EndSwitchType
/*512804*/      /*Scope*/ 43, /*->512848*/
/*512805*/        OPC_RecordChild1, // #1 = $src0
/*512806*/        OPC_RecordChild2, // #2 = $mask
/*512807*/        OPC_SwitchType /*3 cases */, 11, MVT::v16i8,// ->512821
/*512810*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*512812*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSQBZ128rrk), 0,
                        MVT::v16i8, 3/*#Ops*/, 1, 2, 0, 
                    // Src: (X86vmtruncus:{ *:[v16i8] } VR128X:{ *:[v2i64] }:$src, VR128X:{ *:[v16i8] }:$src0, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 3
                    // Dst: (VPMOVUSQBZ128rrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*512821*/        /*SwitchType*/ 11, MVT::v8i16,// ->512834
/*512823*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*512825*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSQWZ128rrk), 0,
                        MVT::v8i16, 3/*#Ops*/, 1, 2, 0, 
                    // Src: (X86vmtruncus:{ *:[v8i16] } VR128X:{ *:[v2i64] }:$src, VR128X:{ *:[v8i16] }:$src0, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 3
                    // Dst: (VPMOVUSQWZ128rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*512834*/        /*SwitchType*/ 11, MVT::v4i32,// ->512847
/*512836*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*512838*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSQDZ128rrk), 0,
                        MVT::v4i32, 3/*#Ops*/, 1, 2, 0, 
                    // Src: (X86vmtruncus:{ *:[v4i32] } VR128X:{ *:[v2i64] }:$src, VR128X:{ *:[v4i32] }:$src0, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 3
                    // Dst: (VPMOVUSQDZ128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*512847*/        0, // EndSwitchType
/*512848*/      0, /*End of Scope*/
/*512849*/    /*Scope*/ 66, /*->512916*/
/*512850*/      OPC_CheckChild0Type, MVT::v4i64,
/*512852*/      OPC_Scope, 30, /*->512884*/ // 2 children in Scope
/*512854*/        OPC_MoveChild1,
/*512855*/        OPC_CheckImmAllZerosV,
/*512856*/        OPC_MoveParent,
/*512857*/        OPC_RecordChild2, // #1 = $mask
/*512858*/        OPC_SwitchType /*2 cases */, 10, MVT::v16i8,// ->512871
/*512861*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*512863*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSQBZ256rrkz), 0,
                        MVT::v16i8, 2/*#Ops*/, 1, 0, 
                    // Src: (X86vmtruncus:{ *:[v16i8] } VR256X:{ *:[v4i64] }:$src, immAllZerosV:{ *:[v16i8] }, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 7
                    // Dst: (VPMOVUSQBZ256rrkz:{ *:[v16i8] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/*512871*/        /*SwitchType*/ 10, MVT::v8i16,// ->512883
/*512873*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*512875*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSQWZ256rrkz), 0,
                        MVT::v8i16, 2/*#Ops*/, 1, 0, 
                    // Src: (X86vmtruncus:{ *:[v8i16] } VR256X:{ *:[v4i64] }:$src, immAllZerosV:{ *:[v8i16] }, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 7
                    // Dst: (VPMOVUSQWZ256rrkz:{ *:[v8i16] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/*512883*/        0, // EndSwitchType
/*512884*/      /*Scope*/ 30, /*->512915*/
/*512885*/        OPC_RecordChild1, // #1 = $src0
/*512886*/        OPC_RecordChild2, // #2 = $mask
/*512887*/        OPC_SwitchType /*2 cases */, 11, MVT::v16i8,// ->512901
/*512890*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*512892*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSQBZ256rrk), 0,
                        MVT::v16i8, 3/*#Ops*/, 1, 2, 0, 
                    // Src: (X86vmtruncus:{ *:[v16i8] } VR256X:{ *:[v4i64] }:$src, VR128X:{ *:[v16i8] }:$src0, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 3
                    // Dst: (VPMOVUSQBZ256rrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/*512901*/        /*SwitchType*/ 11, MVT::v8i16,// ->512914
/*512903*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*512905*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSQWZ256rrk), 0,
                        MVT::v8i16, 3/*#Ops*/, 1, 2, 0, 
                    // Src: (X86vmtruncus:{ *:[v8i16] } VR256X:{ *:[v4i64] }:$src, VR128X:{ *:[v8i16] }:$src0, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 3
                    // Dst: (VPMOVUSQWZ256rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/*512914*/        0, // EndSwitchType
/*512915*/      0, /*End of Scope*/
/*512916*/    /*Scope*/ 66, /*->512983*/
/*512917*/      OPC_CheckChild0Type, MVT::v8i64,
/*512919*/      OPC_Scope, 30, /*->512951*/ // 2 children in Scope
/*512921*/        OPC_MoveChild1,
/*512922*/        OPC_CheckImmAllZerosV,
/*512923*/        OPC_MoveParent,
/*512924*/        OPC_RecordChild2, // #1 = $mask
/*512925*/        OPC_SwitchType /*2 cases */, 10, MVT::v16i8,// ->512938
/*512928*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*512930*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSQBZrrkz), 0,
                        MVT::v16i8, 2/*#Ops*/, 1, 0, 
                    // Src: (X86vmtruncus:{ *:[v16i8] } VR512:{ *:[v8i64] }:$src, immAllZerosV:{ *:[v16i8] }, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 7
                    // Dst: (VPMOVUSQBZrrkz:{ *:[v16i8] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*512938*/        /*SwitchType*/ 10, MVT::v8i16,// ->512950
/*512940*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*512942*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSQWZrrkz), 0,
                        MVT::v8i16, 2/*#Ops*/, 1, 0, 
                    // Src: (X86vmtruncus:{ *:[v8i16] } VR512:{ *:[v8i64] }:$src, immAllZerosV:{ *:[v8i16] }, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 7
                    // Dst: (VPMOVUSQWZrrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*512950*/        0, // EndSwitchType
/*512951*/      /*Scope*/ 30, /*->512982*/
/*512952*/        OPC_RecordChild1, // #1 = $src0
/*512953*/        OPC_RecordChild2, // #2 = $mask
/*512954*/        OPC_SwitchType /*2 cases */, 11, MVT::v16i8,// ->512968
/*512957*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*512959*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSQBZrrk), 0,
                        MVT::v16i8, 3/*#Ops*/, 1, 2, 0, 
                    // Src: (X86vmtruncus:{ *:[v16i8] } VR512:{ *:[v8i64] }:$src, VR128X:{ *:[v16i8] }:$src0, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 3
                    // Dst: (VPMOVUSQBZrrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*512968*/        /*SwitchType*/ 11, MVT::v8i16,// ->512981
/*512970*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*512972*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSQWZrrk), 0,
                        MVT::v8i16, 3/*#Ops*/, 1, 2, 0, 
                    // Src: (X86vmtruncus:{ *:[v8i16] } VR512:{ *:[v8i64] }:$src, VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 3
                    // Dst: (VPMOVUSQWZrrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*512981*/        0, // EndSwitchType
/*512982*/      0, /*End of Scope*/
/*512983*/    /*Scope*/ 66, /*->513050*/
/*512984*/      OPC_CheckChild0Type, MVT::v4i32,
/*512986*/      OPC_Scope, 30, /*->513018*/ // 2 children in Scope
/*512988*/        OPC_MoveChild1,
/*512989*/        OPC_CheckImmAllZerosV,
/*512990*/        OPC_MoveParent,
/*512991*/        OPC_RecordChild2, // #1 = $mask
/*512992*/        OPC_SwitchType /*2 cases */, 10, MVT::v16i8,// ->513005
/*512995*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*512997*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSDBZ128rrkz), 0,
                        MVT::v16i8, 2/*#Ops*/, 1, 0, 
                    // Src: (X86vmtruncus:{ *:[v16i8] } VR128X:{ *:[v4i32] }:$src, immAllZerosV:{ *:[v16i8] }, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 7
                    // Dst: (VPMOVUSDBZ128rrkz:{ *:[v16i8] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*513005*/        /*SwitchType*/ 10, MVT::v8i16,// ->513017
/*513007*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*513009*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSDWZ128rrkz), 0,
                        MVT::v8i16, 2/*#Ops*/, 1, 0, 
                    // Src: (X86vmtruncus:{ *:[v8i16] } VR128X:{ *:[v4i32] }:$src, immAllZerosV:{ *:[v8i16] }, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 7
                    // Dst: (VPMOVUSDWZ128rrkz:{ *:[v8i16] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*513017*/        0, // EndSwitchType
/*513018*/      /*Scope*/ 30, /*->513049*/
/*513019*/        OPC_RecordChild1, // #1 = $src0
/*513020*/        OPC_RecordChild2, // #2 = $mask
/*513021*/        OPC_SwitchType /*2 cases */, 11, MVT::v16i8,// ->513035
/*513024*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*513026*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSDBZ128rrk), 0,
                        MVT::v16i8, 3/*#Ops*/, 1, 2, 0, 
                    // Src: (X86vmtruncus:{ *:[v16i8] } VR128X:{ *:[v4i32] }:$src, VR128X:{ *:[v16i8] }:$src0, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 3
                    // Dst: (VPMOVUSDBZ128rrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*513035*/        /*SwitchType*/ 11, MVT::v8i16,// ->513048
/*513037*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*513039*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSDWZ128rrk), 0,
                        MVT::v8i16, 3/*#Ops*/, 1, 2, 0, 
                    // Src: (X86vmtruncus:{ *:[v8i16] } VR128X:{ *:[v4i32] }:$src, VR128X:{ *:[v8i16] }:$src0, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 3
                    // Dst: (VPMOVUSDWZ128rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*513048*/        0, // EndSwitchType
/*513049*/      0, /*End of Scope*/
/*513050*/    /*Scope*/ 66, /*->513117*/
/*513051*/      OPC_CheckChild0Type, MVT::v8i32,
/*513053*/      OPC_Scope, 30, /*->513085*/ // 2 children in Scope
/*513055*/        OPC_MoveChild1,
/*513056*/        OPC_CheckImmAllZerosV,
/*513057*/        OPC_MoveParent,
/*513058*/        OPC_RecordChild2, // #1 = $mask
/*513059*/        OPC_SwitchType /*2 cases */, 10, MVT::v16i8,// ->513072
/*513062*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*513064*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSDBZ256rrkz), 0,
                        MVT::v16i8, 2/*#Ops*/, 1, 0, 
                    // Src: (X86vmtruncus:{ *:[v16i8] } VR256X:{ *:[v8i32] }:$src, immAllZerosV:{ *:[v16i8] }, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 7
                    // Dst: (VPMOVUSDBZ256rrkz:{ *:[v16i8] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/*513072*/        /*SwitchType*/ 10, MVT::v8i16,// ->513084
/*513074*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*513076*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSDWZ256rrkz), 0,
                        MVT::v8i16, 2/*#Ops*/, 1, 0, 
                    // Src: (X86vmtruncus:{ *:[v8i16] } VR256X:{ *:[v8i32] }:$src, immAllZerosV:{ *:[v8i16] }, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 7
                    // Dst: (VPMOVUSDWZ256rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/*513084*/        0, // EndSwitchType
/*513085*/      /*Scope*/ 30, /*->513116*/
/*513086*/        OPC_RecordChild1, // #1 = $src0
/*513087*/        OPC_RecordChild2, // #2 = $mask
/*513088*/        OPC_SwitchType /*2 cases */, 11, MVT::v16i8,// ->513102
/*513091*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*513093*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSDBZ256rrk), 0,
                        MVT::v16i8, 3/*#Ops*/, 1, 2, 0, 
                    // Src: (X86vmtruncus:{ *:[v16i8] } VR256X:{ *:[v8i32] }:$src, VR128X:{ *:[v16i8] }:$src0, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 3
                    // Dst: (VPMOVUSDBZ256rrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/*513102*/        /*SwitchType*/ 11, MVT::v8i16,// ->513115
/*513104*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*513106*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSDWZ256rrk), 0,
                        MVT::v8i16, 3/*#Ops*/, 1, 2, 0, 
                    // Src: (X86vmtruncus:{ *:[v8i16] } VR256X:{ *:[v8i32] }:$src, VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 3
                    // Dst: (VPMOVUSDWZ256rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/*513115*/        0, // EndSwitchType
/*513116*/      0, /*End of Scope*/
/*513117*/    /*Scope*/ 37, /*->513155*/
/*513118*/      OPC_CheckChild0Type, MVT::v8i16,
/*513120*/      OPC_Scope, 16, /*->513138*/ // 2 children in Scope
/*513122*/        OPC_MoveChild1,
/*513123*/        OPC_CheckImmAllZerosV,
/*513124*/        OPC_MoveParent,
/*513125*/        OPC_RecordChild2, // #1 = $mask
/*513126*/        OPC_CheckType, MVT::v16i8,
/*513128*/        OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*513130*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSWBZ128rrkz), 0,
                      MVT::v16i8, 2/*#Ops*/, 1, 0, 
                  // Src: (X86vmtruncus:{ *:[v16i8] } VR128X:{ *:[v8i16] }:$src, immAllZerosV:{ *:[v16i8] }, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 7
                  // Dst: (VPMOVUSWBZ128rrkz:{ *:[v16i8] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/*513138*/      /*Scope*/ 15, /*->513154*/
/*513139*/        OPC_RecordChild1, // #1 = $src0
/*513140*/        OPC_RecordChild2, // #2 = $mask
/*513141*/        OPC_CheckType, MVT::v16i8,
/*513143*/        OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*513145*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSWBZ128rrk), 0,
                      MVT::v16i8, 3/*#Ops*/, 1, 2, 0, 
                  // Src: (X86vmtruncus:{ *:[v16i8] } VR128X:{ *:[v8i16] }:$src, VR128X:{ *:[v16i8] }:$src0, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 3
                  // Dst: (VPMOVUSWBZ128rrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/*513154*/      0, /*End of Scope*/
/*513155*/    /*Scope*/ 66, /*->513222*/
/*513156*/      OPC_CheckChild0Type, MVT::v16i32,
/*513158*/      OPC_Scope, 30, /*->513190*/ // 2 children in Scope
/*513160*/        OPC_MoveChild1,
/*513161*/        OPC_CheckImmAllZerosV,
/*513162*/        OPC_MoveParent,
/*513163*/        OPC_RecordChild2, // #1 = $mask
/*513164*/        OPC_SwitchType /*2 cases */, 10, MVT::v16i16,// ->513177
/*513167*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*513169*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSDWZrrkz), 0,
                        MVT::v16i16, 2/*#Ops*/, 1, 0, 
                    // Src: (X86vmtruncus:{ *:[v16i16] } VR512:{ *:[v16i32] }:$src, immAllZerosV:{ *:[v16i16] }, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 7
                    // Dst: (VPMOVUSDWZrrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)
/*513177*/        /*SwitchType*/ 10, MVT::v16i8,// ->513189
/*513179*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*513181*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSDBZrrkz), 0,
                        MVT::v16i8, 2/*#Ops*/, 1, 0, 
                    // Src: (X86vmtruncus:{ *:[v16i8] } VR512:{ *:[v16i32] }:$src, immAllZerosV:{ *:[v16i8] }, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 7
                    // Dst: (VPMOVUSDBZrrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)
/*513189*/        0, // EndSwitchType
/*513190*/      /*Scope*/ 30, /*->513221*/
/*513191*/        OPC_RecordChild1, // #1 = $src0
/*513192*/        OPC_RecordChild2, // #2 = $mask
/*513193*/        OPC_SwitchType /*2 cases */, 11, MVT::v16i16,// ->513207
/*513196*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*513198*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSDWZrrk), 0,
                        MVT::v16i16, 3/*#Ops*/, 1, 2, 0, 
                    // Src: (X86vmtruncus:{ *:[v16i16] } VR512:{ *:[v16i32] }:$src, VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 3
                    // Dst: (VPMOVUSDWZrrk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)
/*513207*/        /*SwitchType*/ 11, MVT::v16i8,// ->513220
/*513209*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*513211*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSDBZrrk), 0,
                        MVT::v16i8, 3/*#Ops*/, 1, 2, 0, 
                    // Src: (X86vmtruncus:{ *:[v16i8] } VR512:{ *:[v16i32] }:$src, VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 3
                    // Dst: (VPMOVUSDBZrrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)
/*513220*/        0, // EndSwitchType
/*513221*/      0, /*End of Scope*/
/*513222*/    0, /*End of Scope*/
/*513223*/  /*SwitchOpcode*/ 95|128,3/*479*/, TARGET_VAL(X86ISD::COMPRESS),// ->513706
/*513227*/    OPC_RecordChild0, // #0 = $src
/*513228*/    OPC_Scope, 22|128,1/*150*/, /*->513381*/ // 4 children in Scope
/*513231*/      OPC_MoveChild1,
/*513232*/      OPC_CheckImmAllZerosV,
/*513233*/      OPC_MoveParent,
/*513234*/      OPC_RecordChild2, // #1 = $mask
/*513235*/      OPC_SwitchType /*12 cases */, 10, MVT::v16i32,// ->513248
/*513238*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*513240*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMPRESSDZrrkz), 0,
                      MVT::v16i32, 2/*#Ops*/, 1, 0, 
                  // Src: (X86compress:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src, immAllZerosV:{ *:[v16i32] }, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 7
                  // Dst: (VPCOMPRESSDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)
/*513248*/      /*SwitchType*/ 10, MVT::v8i32,// ->513260
/*513250*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*513252*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMPRESSDZ256rrkz), 0,
                      MVT::v8i32, 2/*#Ops*/, 1, 0, 
                  // Src: (X86compress:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src, immAllZerosV:{ *:[v8i32] }, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 7
                  // Dst: (VPCOMPRESSDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/*513260*/      /*SwitchType*/ 10, MVT::v4i32,// ->513272
/*513262*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*513264*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMPRESSDZ128rrkz), 0,
                      MVT::v4i32, 2/*#Ops*/, 1, 0, 
                  // Src: (X86compress:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src, immAllZerosV:{ *:[v4i32] }, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 7
                  // Dst: (VPCOMPRESSDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*513272*/      /*SwitchType*/ 10, MVT::v8i64,// ->513284
/*513274*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*513276*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMPRESSQZrrkz), 0,
                      MVT::v8i64, 2/*#Ops*/, 1, 0, 
                  // Src: (X86compress:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src, immAllZerosV:{ *:[v8i64] }, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 7
                  // Dst: (VPCOMPRESSQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*513284*/      /*SwitchType*/ 10, MVT::v4i64,// ->513296
/*513286*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*513288*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMPRESSQZ256rrkz), 0,
                      MVT::v4i64, 2/*#Ops*/, 1, 0, 
                  // Src: (X86compress:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src, immAllZerosV:{ *:[v4i64] }, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 7
                  // Dst: (VPCOMPRESSQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/*513296*/      /*SwitchType*/ 10, MVT::v2i64,// ->513308
/*513298*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*513300*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMPRESSQZ128rrkz), 0,
                      MVT::v2i64, 2/*#Ops*/, 1, 0, 
                  // Src: (X86compress:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src, immAllZerosV:{ *:[v2i64] }, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 7
                  // Dst: (VPCOMPRESSQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*513308*/      /*SwitchType*/ 10, MVT::v64i8,// ->513320
/*513310*/        OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*513312*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMPRESSBZrrkz), 0,
                      MVT::v64i8, 2/*#Ops*/, 1, 0, 
                  // Src: (X86compress:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src, immAllZerosV:{ *:[v64i8] }, VK64WM:{ *:[v64i1] }:$mask) - Complexity = 7
                  // Dst: (VPCOMPRESSBZrrkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src)
/*513320*/      /*SwitchType*/ 10, MVT::v32i8,// ->513332
/*513322*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*513324*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMPRESSBZ256rrkz), 0,
                      MVT::v32i8, 2/*#Ops*/, 1, 0, 
                  // Src: (X86compress:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src, immAllZerosV:{ *:[v32i8] }, VK32WM:{ *:[v32i1] }:$mask) - Complexity = 7
                  // Dst: (VPCOMPRESSBZ256rrkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src)
/*513332*/      /*SwitchType*/ 10, MVT::v16i8,// ->513344
/*513334*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*513336*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMPRESSBZ128rrkz), 0,
                      MVT::v16i8, 2/*#Ops*/, 1, 0, 
                  // Src: (X86compress:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src, immAllZerosV:{ *:[v16i8] }, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 7
                  // Dst: (VPCOMPRESSBZ128rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*513344*/      /*SwitchType*/ 10, MVT::v32i16,// ->513356
/*513346*/        OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*513348*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMPRESSWZrrkz), 0,
                      MVT::v32i16, 2/*#Ops*/, 1, 0, 
                  // Src: (X86compress:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src, immAllZerosV:{ *:[v32i16] }, VK32WM:{ *:[v32i1] }:$mask) - Complexity = 7
                  // Dst: (VPCOMPRESSWZrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src)
/*513356*/      /*SwitchType*/ 10, MVT::v16i16,// ->513368
/*513358*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*513360*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMPRESSWZ256rrkz), 0,
                      MVT::v16i16, 2/*#Ops*/, 1, 0, 
                  // Src: (X86compress:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src, immAllZerosV:{ *:[v16i16] }, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 7
                  // Dst: (VPCOMPRESSWZ256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src)
/*513368*/      /*SwitchType*/ 10, MVT::v8i16,// ->513380
/*513370*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*513372*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMPRESSWZ128rrkz), 0,
                      MVT::v8i16, 2/*#Ops*/, 1, 0, 
                  // Src: (X86compress:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src, immAllZerosV:{ *:[v8i16] }, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 7
                  // Dst: (VPCOMPRESSWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/*513380*/      0, // EndSwitchType
/*513381*/    /*Scope*/ 32|128,1/*160*/, /*->513543*/
/*513383*/      OPC_RecordChild1, // #1 = $src0
/*513384*/      OPC_RecordChild2, // #2 = $mask
/*513385*/      OPC_SwitchType /*12 cases */, 11, MVT::v16i32,// ->513399
/*513388*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*513390*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMPRESSDZrrk), 0,
                      MVT::v16i32, 3/*#Ops*/, 1, 2, 0, 
                  // Src: (X86compress:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src, VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 3
                  // Dst: (VPCOMPRESSDZrrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)
/*513399*/      /*SwitchType*/ 11, MVT::v8i32,// ->513412
/*513401*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*513403*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMPRESSDZ256rrk), 0,
                      MVT::v8i32, 3/*#Ops*/, 1, 2, 0, 
                  // Src: (X86compress:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src, VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 3
                  // Dst: (VPCOMPRESSDZ256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/*513412*/      /*SwitchType*/ 11, MVT::v4i32,// ->513425
/*513414*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*513416*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMPRESSDZ128rrk), 0,
                      MVT::v4i32, 3/*#Ops*/, 1, 2, 0, 
                  // Src: (X86compress:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src, VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 3
                  // Dst: (VPCOMPRESSDZ128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*513425*/      /*SwitchType*/ 11, MVT::v8i64,// ->513438
/*513427*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*513429*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMPRESSQZrrk), 0,
                      MVT::v8i64, 3/*#Ops*/, 1, 2, 0, 
                  // Src: (X86compress:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src, VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 3
                  // Dst: (VPCOMPRESSQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*513438*/      /*SwitchType*/ 11, MVT::v4i64,// ->513451
/*513440*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*513442*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMPRESSQZ256rrk), 0,
                      MVT::v4i64, 3/*#Ops*/, 1, 2, 0, 
                  // Src: (X86compress:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src, VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 3
                  // Dst: (VPCOMPRESSQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/*513451*/      /*SwitchType*/ 11, MVT::v2i64,// ->513464
/*513453*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*513455*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMPRESSQZ128rrk), 0,
                      MVT::v2i64, 3/*#Ops*/, 1, 2, 0, 
                  // Src: (X86compress:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src, VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 3
                  // Dst: (VPCOMPRESSQZ128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*513464*/      /*SwitchType*/ 11, MVT::v64i8,// ->513477
/*513466*/        OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*513468*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMPRESSBZrrk), 0,
                      MVT::v64i8, 3/*#Ops*/, 1, 2, 0, 
                  // Src: (X86compress:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src, VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask) - Complexity = 3
                  // Dst: (VPCOMPRESSBZrrk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src)
/*513477*/      /*SwitchType*/ 11, MVT::v32i8,// ->513490
/*513479*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*513481*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMPRESSBZ256rrk), 0,
                      MVT::v32i8, 3/*#Ops*/, 1, 2, 0, 
                  // Src: (X86compress:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src, VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask) - Complexity = 3
                  // Dst: (VPCOMPRESSBZ256rrk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src)
/*513490*/      /*SwitchType*/ 11, MVT::v16i8,// ->513503
/*513492*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*513494*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMPRESSBZ128rrk), 0,
                      MVT::v16i8, 3/*#Ops*/, 1, 2, 0, 
                  // Src: (X86compress:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src, VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 3
                  // Dst: (VPCOMPRESSBZ128rrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*513503*/      /*SwitchType*/ 11, MVT::v32i16,// ->513516
/*513505*/        OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*513507*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMPRESSWZrrk), 0,
                      MVT::v32i16, 3/*#Ops*/, 1, 2, 0, 
                  // Src: (X86compress:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src, VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask) - Complexity = 3
                  // Dst: (VPCOMPRESSWZrrk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src)
/*513516*/      /*SwitchType*/ 11, MVT::v16i16,// ->513529
/*513518*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*513520*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMPRESSWZ256rrk), 0,
                      MVT::v16i16, 3/*#Ops*/, 1, 2, 0, 
                  // Src: (X86compress:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src, VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 3
                  // Dst: (VPCOMPRESSWZ256rrk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src)
/*513529*/      /*SwitchType*/ 11, MVT::v8i16,// ->513542
/*513531*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*513533*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPCOMPRESSWZ128rrk), 0,
                      MVT::v8i16, 3/*#Ops*/, 1, 2, 0, 
                  // Src: (X86compress:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src, VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 3
                  // Dst: (VPCOMPRESSWZ128rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/*513542*/      0, // EndSwitchType
/*513543*/    /*Scope*/ 78, /*->513622*/
/*513544*/      OPC_MoveChild1,
/*513545*/      OPC_CheckImmAllZerosV,
/*513546*/      OPC_MoveParent,
/*513547*/      OPC_RecordChild2, // #1 = $mask
/*513548*/      OPC_SwitchType /*6 cases */, 10, MVT::v16f32,// ->513561
/*513551*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*513553*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCOMPRESSPSZrrkz), 0,
                      MVT::v16f32, 2/*#Ops*/, 1, 0, 
                  // Src: (X86compress:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src, immAllZerosV:{ *:[v16f32] }, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 7
                  // Dst: (VCOMPRESSPSZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*513561*/      /*SwitchType*/ 10, MVT::v8f32,// ->513573
/*513563*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*513565*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCOMPRESSPSZ256rrkz), 0,
                      MVT::v8f32, 2/*#Ops*/, 1, 0, 
                  // Src: (X86compress:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src, immAllZerosV:{ *:[v8f32] }, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 7
                  // Dst: (VCOMPRESSPSZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*513573*/      /*SwitchType*/ 10, MVT::v4f32,// ->513585
/*513575*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*513577*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCOMPRESSPSZ128rrkz), 0,
                      MVT::v4f32, 2/*#Ops*/, 1, 0, 
                  // Src: (X86compress:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src, immAllZerosV:{ *:[v4f32] }, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 7
                  // Dst: (VCOMPRESSPSZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*513585*/      /*SwitchType*/ 10, MVT::v8f64,// ->513597
/*513587*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*513589*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCOMPRESSPDZrrkz), 0,
                      MVT::v8f64, 2/*#Ops*/, 1, 0, 
                  // Src: (X86compress:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src, immAllZerosV:{ *:[v8f64] }, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 7
                  // Dst: (VCOMPRESSPDZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*513597*/      /*SwitchType*/ 10, MVT::v4f64,// ->513609
/*513599*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*513601*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCOMPRESSPDZ256rrkz), 0,
                      MVT::v4f64, 2/*#Ops*/, 1, 0, 
                  // Src: (X86compress:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src, immAllZerosV:{ *:[v4f64] }, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 7
                  // Dst: (VCOMPRESSPDZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)
/*513609*/      /*SwitchType*/ 10, MVT::v2f64,// ->513621
/*513611*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*513613*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCOMPRESSPDZ128rrkz), 0,
                      MVT::v2f64, 2/*#Ops*/, 1, 0, 
                  // Src: (X86compress:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src, immAllZerosV:{ *:[v2f64] }, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 7
                  // Dst: (VCOMPRESSPDZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*513621*/      0, // EndSwitchType
/*513622*/    /*Scope*/ 82, /*->513705*/
/*513623*/      OPC_RecordChild1, // #1 = $src0
/*513624*/      OPC_RecordChild2, // #2 = $mask
/*513625*/      OPC_SwitchType /*6 cases */, 11, MVT::v16f32,// ->513639
/*513628*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*513630*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCOMPRESSPSZrrk), 0,
                      MVT::v16f32, 3/*#Ops*/, 1, 2, 0, 
                  // Src: (X86compress:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src, VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 3
                  // Dst: (VCOMPRESSPSZrrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*513639*/      /*SwitchType*/ 11, MVT::v8f32,// ->513652
/*513641*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*513643*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCOMPRESSPSZ256rrk), 0,
                      MVT::v8f32, 3/*#Ops*/, 1, 2, 0, 
                  // Src: (X86compress:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src, VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 3
                  // Dst: (VCOMPRESSPSZ256rrk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*513652*/      /*SwitchType*/ 11, MVT::v4f32,// ->513665
/*513654*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*513656*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCOMPRESSPSZ128rrk), 0,
                      MVT::v4f32, 3/*#Ops*/, 1, 2, 0, 
                  // Src: (X86compress:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src, VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 3
                  // Dst: (VCOMPRESSPSZ128rrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*513665*/      /*SwitchType*/ 11, MVT::v8f64,// ->513678
/*513667*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*513669*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCOMPRESSPDZrrk), 0,
                      MVT::v8f64, 3/*#Ops*/, 1, 2, 0, 
                  // Src: (X86compress:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src, VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 3
                  // Dst: (VCOMPRESSPDZrrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*513678*/      /*SwitchType*/ 11, MVT::v4f64,// ->513691
/*513680*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*513682*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCOMPRESSPDZ256rrk), 0,
                      MVT::v4f64, 3/*#Ops*/, 1, 2, 0, 
                  // Src: (X86compress:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src, VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 3
                  // Dst: (VCOMPRESSPDZ256rrk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)
/*513691*/      /*SwitchType*/ 11, MVT::v2f64,// ->513704
/*513693*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*513695*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCOMPRESSPDZ128rrk), 0,
                      MVT::v2f64, 3/*#Ops*/, 1, 2, 0, 
                  // Src: (X86compress:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src, VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 3
                  // Dst: (VCOMPRESSPDZ128rrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*513704*/      0, // EndSwitchType
/*513705*/    0, /*End of Scope*/
/*513706*/  /*SwitchOpcode*/ 95|128,3/*479*/, TARGET_VAL(X86ISD::EXPAND),// ->514189
/*513710*/    OPC_RecordChild0, // #0 = $src
/*513711*/    OPC_Scope, 22|128,1/*150*/, /*->513864*/ // 4 children in Scope
/*513714*/      OPC_MoveChild1,
/*513715*/      OPC_CheckImmAllZerosV,
/*513716*/      OPC_MoveParent,
/*513717*/      OPC_RecordChild2, // #1 = $mask
/*513718*/      OPC_SwitchType /*12 cases */, 10, MVT::v16i32,// ->513731
/*513721*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*513723*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDDZrrkz), 0,
                      MVT::v16i32, 2/*#Ops*/, 1, 0, 
                  // Src: (X86expand:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src, immAllZerosV:{ *:[v16i32] }, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 7
                  // Dst: (VPEXPANDDZrrkz:{ *:[v16i32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)
/*513731*/      /*SwitchType*/ 10, MVT::v8i32,// ->513743
/*513733*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*513735*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDDZ256rrkz), 0,
                      MVT::v8i32, 2/*#Ops*/, 1, 0, 
                  // Src: (X86expand:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src, immAllZerosV:{ *:[v8i32] }, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 7
                  // Dst: (VPEXPANDDZ256rrkz:{ *:[v8i32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/*513743*/      /*SwitchType*/ 10, MVT::v4i32,// ->513755
/*513745*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*513747*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDDZ128rrkz), 0,
                      MVT::v4i32, 2/*#Ops*/, 1, 0, 
                  // Src: (X86expand:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src, immAllZerosV:{ *:[v4i32] }, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 7
                  // Dst: (VPEXPANDDZ128rrkz:{ *:[v4i32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*513755*/      /*SwitchType*/ 10, MVT::v8i64,// ->513767
/*513757*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*513759*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDQZrrkz), 0,
                      MVT::v8i64, 2/*#Ops*/, 1, 0, 
                  // Src: (X86expand:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src, immAllZerosV:{ *:[v8i64] }, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 7
                  // Dst: (VPEXPANDQZrrkz:{ *:[v8i64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*513767*/      /*SwitchType*/ 10, MVT::v4i64,// ->513779
/*513769*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*513771*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDQZ256rrkz), 0,
                      MVT::v4i64, 2/*#Ops*/, 1, 0, 
                  // Src: (X86expand:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src, immAllZerosV:{ *:[v4i64] }, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 7
                  // Dst: (VPEXPANDQZ256rrkz:{ *:[v4i64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/*513779*/      /*SwitchType*/ 10, MVT::v2i64,// ->513791
/*513781*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*513783*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDQZ128rrkz), 0,
                      MVT::v2i64, 2/*#Ops*/, 1, 0, 
                  // Src: (X86expand:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src, immAllZerosV:{ *:[v2i64] }, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 7
                  // Dst: (VPEXPANDQZ128rrkz:{ *:[v2i64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*513791*/      /*SwitchType*/ 10, MVT::v64i8,// ->513803
/*513793*/        OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*513795*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDBZrrkz), 0,
                      MVT::v64i8, 2/*#Ops*/, 1, 0, 
                  // Src: (X86expand:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src, immAllZerosV:{ *:[v64i8] }, VK64WM:{ *:[v64i1] }:$mask) - Complexity = 7
                  // Dst: (VPEXPANDBZrrkz:{ *:[v64i8] } VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src)
/*513803*/      /*SwitchType*/ 10, MVT::v32i8,// ->513815
/*513805*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*513807*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDBZ256rrkz), 0,
                      MVT::v32i8, 2/*#Ops*/, 1, 0, 
                  // Src: (X86expand:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src, immAllZerosV:{ *:[v32i8] }, VK32WM:{ *:[v32i1] }:$mask) - Complexity = 7
                  // Dst: (VPEXPANDBZ256rrkz:{ *:[v32i8] } VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src)
/*513815*/      /*SwitchType*/ 10, MVT::v16i8,// ->513827
/*513817*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*513819*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDBZ128rrkz), 0,
                      MVT::v16i8, 2/*#Ops*/, 1, 0, 
                  // Src: (X86expand:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src, immAllZerosV:{ *:[v16i8] }, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 7
                  // Dst: (VPEXPANDBZ128rrkz:{ *:[v16i8] } VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*513827*/      /*SwitchType*/ 10, MVT::v32i16,// ->513839
/*513829*/        OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*513831*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDWZrrkz), 0,
                      MVT::v32i16, 2/*#Ops*/, 1, 0, 
                  // Src: (X86expand:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src, immAllZerosV:{ *:[v32i16] }, VK32WM:{ *:[v32i1] }:$mask) - Complexity = 7
                  // Dst: (VPEXPANDWZrrkz:{ *:[v32i16] } VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src)
/*513839*/      /*SwitchType*/ 10, MVT::v16i16,// ->513851
/*513841*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*513843*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDWZ256rrkz), 0,
                      MVT::v16i16, 2/*#Ops*/, 1, 0, 
                  // Src: (X86expand:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src, immAllZerosV:{ *:[v16i16] }, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 7
                  // Dst: (VPEXPANDWZ256rrkz:{ *:[v16i16] } VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src)
/*513851*/      /*SwitchType*/ 10, MVT::v8i16,// ->513863
/*513853*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*513855*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDWZ128rrkz), 0,
                      MVT::v8i16, 2/*#Ops*/, 1, 0, 
                  // Src: (X86expand:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src, immAllZerosV:{ *:[v8i16] }, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 7
                  // Dst: (VPEXPANDWZ128rrkz:{ *:[v8i16] } VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/*513863*/      0, // EndSwitchType
/*513864*/    /*Scope*/ 32|128,1/*160*/, /*->514026*/
/*513866*/      OPC_RecordChild1, // #1 = $src0
/*513867*/      OPC_RecordChild2, // #2 = $mask
/*513868*/      OPC_SwitchType /*12 cases */, 11, MVT::v16i32,// ->513882
/*513871*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*513873*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDDZrrk), 0,
                      MVT::v16i32, 3/*#Ops*/, 1, 2, 0, 
                  // Src: (X86expand:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src, VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 3
                  // Dst: (VPEXPANDDZrrk:{ *:[v16i32] } VR512:{ *:[v16i32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16i32] }:$src)
/*513882*/      /*SwitchType*/ 11, MVT::v8i32,// ->513895
/*513884*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*513886*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDDZ256rrk), 0,
                      MVT::v8i32, 3/*#Ops*/, 1, 2, 0, 
                  // Src: (X86expand:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src, VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 3
                  // Dst: (VPEXPANDDZ256rrk:{ *:[v8i32] } VR256X:{ *:[v8i32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8i32] }:$src)
/*513895*/      /*SwitchType*/ 11, MVT::v4i32,// ->513908
/*513897*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*513899*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDDZ128rrk), 0,
                      MVT::v4i32, 3/*#Ops*/, 1, 2, 0, 
                  // Src: (X86expand:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src, VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 3
                  // Dst: (VPEXPANDDZ128rrk:{ *:[v4i32] } VR128X:{ *:[v4i32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4i32] }:$src)
/*513908*/      /*SwitchType*/ 11, MVT::v8i64,// ->513921
/*513910*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*513912*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDQZrrk), 0,
                      MVT::v8i64, 3/*#Ops*/, 1, 2, 0, 
                  // Src: (X86expand:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src, VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 3
                  // Dst: (VPEXPANDQZrrk:{ *:[v8i64] } VR512:{ *:[v8i64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8i64] }:$src)
/*513921*/      /*SwitchType*/ 11, MVT::v4i64,// ->513934
/*513923*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*513925*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDQZ256rrk), 0,
                      MVT::v4i64, 3/*#Ops*/, 1, 2, 0, 
                  // Src: (X86expand:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src, VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 3
                  // Dst: (VPEXPANDQZ256rrk:{ *:[v4i64] } VR256X:{ *:[v4i64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4i64] }:$src)
/*513934*/      /*SwitchType*/ 11, MVT::v2i64,// ->513947
/*513936*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*513938*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDQZ128rrk), 0,
                      MVT::v2i64, 3/*#Ops*/, 1, 2, 0, 
                  // Src: (X86expand:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src, VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 3
                  // Dst: (VPEXPANDQZ128rrk:{ *:[v2i64] } VR128X:{ *:[v2i64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*513947*/      /*SwitchType*/ 11, MVT::v64i8,// ->513960
/*513949*/        OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*513951*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDBZrrk), 0,
                      MVT::v64i8, 3/*#Ops*/, 1, 2, 0, 
                  // Src: (X86expand:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src, VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask) - Complexity = 3
                  // Dst: (VPEXPANDBZrrk:{ *:[v64i8] } VR512:{ *:[v64i8] }:$src0, VK64WM:{ *:[v64i1] }:$mask, VR512:{ *:[v64i8] }:$src)
/*513960*/      /*SwitchType*/ 11, MVT::v32i8,// ->513973
/*513962*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*513964*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDBZ256rrk), 0,
                      MVT::v32i8, 3/*#Ops*/, 1, 2, 0, 
                  // Src: (X86expand:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src, VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask) - Complexity = 3
                  // Dst: (VPEXPANDBZ256rrk:{ *:[v32i8] } VR256X:{ *:[v32i8] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR256X:{ *:[v32i8] }:$src)
/*513973*/      /*SwitchType*/ 11, MVT::v16i8,// ->513986
/*513975*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*513977*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDBZ128rrk), 0,
                      MVT::v16i8, 3/*#Ops*/, 1, 2, 0, 
                  // Src: (X86expand:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src, VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 3
                  // Dst: (VPEXPANDBZ128rrk:{ *:[v16i8] } VR128X:{ *:[v16i8] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR128X:{ *:[v16i8] }:$src)
/*513986*/      /*SwitchType*/ 11, MVT::v32i16,// ->513999
/*513988*/        OPC_CheckPatternPredicate, 30, // (Subtarget->hasVBMI2())
/*513990*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDWZrrk), 0,
                      MVT::v32i16, 3/*#Ops*/, 1, 2, 0, 
                  // Src: (X86expand:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src, VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask) - Complexity = 3
                  // Dst: (VPEXPANDWZrrk:{ *:[v32i16] } VR512:{ *:[v32i16] }:$src0, VK32WM:{ *:[v32i1] }:$mask, VR512:{ *:[v32i16] }:$src)
/*513999*/      /*SwitchType*/ 11, MVT::v16i16,// ->514012
/*514001*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*514003*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDWZ256rrk), 0,
                      MVT::v16i16, 3/*#Ops*/, 1, 2, 0, 
                  // Src: (X86expand:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src, VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 3
                  // Dst: (VPEXPANDWZ256rrk:{ *:[v16i16] } VR256X:{ *:[v16i16] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR256X:{ *:[v16i16] }:$src)
/*514012*/      /*SwitchType*/ 11, MVT::v8i16,// ->514025
/*514014*/        OPC_CheckPatternPredicate, 31, // (Subtarget->hasVBMI2()) && (Subtarget->hasVLX())
/*514016*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPEXPANDWZ128rrk), 0,
                      MVT::v8i16, 3/*#Ops*/, 1, 2, 0, 
                  // Src: (X86expand:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src, VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 3
                  // Dst: (VPEXPANDWZ128rrk:{ *:[v8i16] } VR128X:{ *:[v8i16] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR128X:{ *:[v8i16] }:$src)
/*514025*/      0, // EndSwitchType
/*514026*/    /*Scope*/ 78, /*->514105*/
/*514027*/      OPC_MoveChild1,
/*514028*/      OPC_CheckImmAllZerosV,
/*514029*/      OPC_MoveParent,
/*514030*/      OPC_RecordChild2, // #1 = $mask
/*514031*/      OPC_SwitchType /*6 cases */, 10, MVT::v16f32,// ->514044
/*514034*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*514036*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPSZrrkz), 0,
                      MVT::v16f32, 2/*#Ops*/, 1, 0, 
                  // Src: (X86expand:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src, immAllZerosV:{ *:[v16f32] }, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 7
                  // Dst: (VEXPANDPSZrrkz:{ *:[v16f32] } VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*514044*/      /*SwitchType*/ 10, MVT::v8f32,// ->514056
/*514046*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*514048*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPSZ256rrkz), 0,
                      MVT::v8f32, 2/*#Ops*/, 1, 0, 
                  // Src: (X86expand:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src, immAllZerosV:{ *:[v8f32] }, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 7
                  // Dst: (VEXPANDPSZ256rrkz:{ *:[v8f32] } VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*514056*/      /*SwitchType*/ 10, MVT::v4f32,// ->514068
/*514058*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*514060*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPSZ128rrkz), 0,
                      MVT::v4f32, 2/*#Ops*/, 1, 0, 
                  // Src: (X86expand:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src, immAllZerosV:{ *:[v4f32] }, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 7
                  // Dst: (VEXPANDPSZ128rrkz:{ *:[v4f32] } VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*514068*/      /*SwitchType*/ 10, MVT::v8f64,// ->514080
/*514070*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*514072*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPDZrrkz), 0,
                      MVT::v8f64, 2/*#Ops*/, 1, 0, 
                  // Src: (X86expand:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src, immAllZerosV:{ *:[v8f64] }, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 7
                  // Dst: (VEXPANDPDZrrkz:{ *:[v8f64] } VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*514080*/      /*SwitchType*/ 10, MVT::v4f64,// ->514092
/*514082*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*514084*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPDZ256rrkz), 0,
                      MVT::v4f64, 2/*#Ops*/, 1, 0, 
                  // Src: (X86expand:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src, immAllZerosV:{ *:[v4f64] }, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 7
                  // Dst: (VEXPANDPDZ256rrkz:{ *:[v4f64] } VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)
/*514092*/      /*SwitchType*/ 10, MVT::v2f64,// ->514104
/*514094*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*514096*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPDZ128rrkz), 0,
                      MVT::v2f64, 2/*#Ops*/, 1, 0, 
                  // Src: (X86expand:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src, immAllZerosV:{ *:[v2f64] }, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 7
                  // Dst: (VEXPANDPDZ128rrkz:{ *:[v2f64] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*514104*/      0, // EndSwitchType
/*514105*/    /*Scope*/ 82, /*->514188*/
/*514106*/      OPC_RecordChild1, // #1 = $src0
/*514107*/      OPC_RecordChild2, // #2 = $mask
/*514108*/      OPC_SwitchType /*6 cases */, 11, MVT::v16f32,// ->514122
/*514111*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*514113*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPSZrrk), 0,
                      MVT::v16f32, 3/*#Ops*/, 1, 2, 0, 
                  // Src: (X86expand:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src, VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask) - Complexity = 3
                  // Dst: (VEXPANDPSZrrk:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src0, VK16WM:{ *:[v16i1] }:$mask, VR512:{ *:[v16f32] }:$src)
/*514122*/      /*SwitchType*/ 11, MVT::v8f32,// ->514135
/*514124*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*514126*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPSZ256rrk), 0,
                      MVT::v8f32, 3/*#Ops*/, 1, 2, 0, 
                  // Src: (X86expand:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src, VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 3
                  // Dst: (VEXPANDPSZ256rrk:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR256X:{ *:[v8f32] }:$src)
/*514135*/      /*SwitchType*/ 11, MVT::v4f32,// ->514148
/*514137*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*514139*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPSZ128rrk), 0,
                      MVT::v4f32, 3/*#Ops*/, 1, 2, 0, 
                  // Src: (X86expand:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src, VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 3
                  // Dst: (VEXPANDPSZ128rrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR128X:{ *:[v4f32] }:$src)
/*514148*/      /*SwitchType*/ 11, MVT::v8f64,// ->514161
/*514150*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*514152*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPDZrrk), 0,
                      MVT::v8f64, 3/*#Ops*/, 1, 2, 0, 
                  // Src: (X86expand:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src, VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask) - Complexity = 3
                  // Dst: (VEXPANDPDZrrk:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src0, VK8WM:{ *:[v8i1] }:$mask, VR512:{ *:[v8f64] }:$src)
/*514161*/      /*SwitchType*/ 11, MVT::v4f64,// ->514174
/*514163*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*514165*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPDZ256rrk), 0,
                      MVT::v4f64, 3/*#Ops*/, 1, 2, 0, 
                  // Src: (X86expand:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src, VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask) - Complexity = 3
                  // Dst: (VEXPANDPDZ256rrk:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src0, VK4WM:{ *:[v4i1] }:$mask, VR256X:{ *:[v4f64] }:$src)
/*514174*/      /*SwitchType*/ 11, MVT::v2f64,// ->514187
/*514176*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*514178*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VEXPANDPDZ128rrk), 0,
                      MVT::v2f64, 3/*#Ops*/, 1, 2, 0, 
                  // Src: (X86expand:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src, VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 3
                  // Dst: (VEXPANDPDZ128rrk:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*514187*/      0, // EndSwitchType
/*514188*/    0, /*End of Scope*/
/*514189*/  /*SwitchOpcode*/ 94, TARGET_VAL(X86ISD::CVTPS2PH),// ->514286
/*514192*/    OPC_RecordChild0, // #0 = $src1
/*514193*/    OPC_Scope, 34, /*->514229*/ // 3 children in Scope
/*514195*/      OPC_CheckChild0Type, MVT::v4f32,
/*514197*/      OPC_RecordChild1, // #1 = $src2
/*514198*/      OPC_MoveChild1,
/*514199*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*514202*/      OPC_MoveParent,
/*514203*/      OPC_CheckType, MVT::v8i16,
/*514205*/      OPC_Scope, 10, /*->514217*/ // 2 children in Scope
/*514207*/        OPC_CheckPatternPredicate, 11, // (Subtarget->hasF16C()) && (!Subtarget->hasVLX())
/*514209*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PHrr), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (X86cvtps2ph:{ *:[v8i16] } VR128:{ *:[v4f32] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 6
                  // Dst: (VCVTPS2PHrr:{ *:[v8i16] } VR128:{ *:[v4f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*514217*/      /*Scope*/ 10, /*->514228*/
/*514218*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*514220*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PHZ128rr), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (X86cvtps2ph:{ *:[v8i16] } VR128X:{ *:[v4f32] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 6
                  // Dst: (VCVTPS2PHZ128rr:{ *:[v8i16] } VR128X:{ *:[v4f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*514228*/      0, /*End of Scope*/
/*514229*/    /*Scope*/ 34, /*->514264*/
/*514230*/      OPC_CheckChild0Type, MVT::v8f32,
/*514232*/      OPC_RecordChild1, // #1 = $src2
/*514233*/      OPC_MoveChild1,
/*514234*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*514237*/      OPC_MoveParent,
/*514238*/      OPC_CheckType, MVT::v8i16,
/*514240*/      OPC_Scope, 10, /*->514252*/ // 2 children in Scope
/*514242*/        OPC_CheckPatternPredicate, 11, // (Subtarget->hasF16C()) && (!Subtarget->hasVLX())
/*514244*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PHYrr), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (X86cvtps2ph:{ *:[v8i16] } VR256:{ *:[v8f32] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 6
                  // Dst: (VCVTPS2PHYrr:{ *:[v8i16] } VR256:{ *:[v8f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*514252*/      /*Scope*/ 10, /*->514263*/
/*514253*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*514255*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PHZ256rr), 0,
                      MVT::v8i16, 2/*#Ops*/, 0, 1, 
                  // Src: (X86cvtps2ph:{ *:[v8i16] } VR256X:{ *:[v8f32] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 6
                  // Dst: (VCVTPS2PHZ256rr:{ *:[v8i16] } VR256X:{ *:[v8f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*514263*/      0, /*End of Scope*/
/*514264*/    /*Scope*/ 20, /*->514285*/
/*514265*/      OPC_CheckChild0Type, MVT::v16f32,
/*514267*/      OPC_RecordChild1, // #1 = $src2
/*514268*/      OPC_MoveChild1,
/*514269*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*514272*/      OPC_MoveParent,
/*514273*/      OPC_CheckType, MVT::v16i16,
/*514275*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*514277*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PHZrr), 0,
                    MVT::v16i16, 2/*#Ops*/, 0, 1, 
                // Src: (X86cvtps2ph:{ *:[v16i16] } VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 6
                // Dst: (VCVTPS2PHZrr:{ *:[v16i16] } VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*514285*/    0, /*End of Scope*/
/*514286*/  /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::FSETCCM_SAE),// ->514338
/*514289*/    OPC_RecordChild0, // #0 = $src1
/*514290*/    OPC_Scope, 22, /*->514314*/ // 2 children in Scope
/*514292*/      OPC_CheckChild0Type, MVT::v4f32,
/*514294*/      OPC_RecordChild1, // #1 = $src2
/*514295*/      OPC_RecordChild2, // #2 = $cc
/*514296*/      OPC_MoveChild2,
/*514297*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*514300*/      OPC_MoveParent,
/*514301*/      OPC_CheckType, MVT::v1i1,
/*514303*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*514305*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPSSZrrb_Int), 0,
                    MVT::v1i1, 3/*#Ops*/, 0, 1, 2, 
                // Src: (X86cmpmsSAE:{ *:[v1i1] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i8] }):$cc) - Complexity = 6
                // Dst: (VCMPSSZrrb_Int:{ *:[v1i1] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i8] }):$cc)
/*514314*/    /*Scope*/ 22, /*->514337*/
/*514315*/      OPC_CheckChild0Type, MVT::v2f64,
/*514317*/      OPC_RecordChild1, // #1 = $src2
/*514318*/      OPC_RecordChild2, // #2 = $cc
/*514319*/      OPC_MoveChild2,
/*514320*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*514323*/      OPC_MoveParent,
/*514324*/      OPC_CheckType, MVT::v1i1,
/*514326*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*514328*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPSDZrrb_Int), 0,
                    MVT::v1i1, 3/*#Ops*/, 0, 1, 2, 
                // Src: (X86cmpmsSAE:{ *:[v1i1] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i8] }):$cc) - Complexity = 6
                // Dst: (VCMPSDZrrb_Int:{ *:[v1i1] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i8] }):$cc)
/*514337*/    0, /*End of Scope*/
/*514338*/  /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::CMPM_SAE),// ->514390
/*514341*/    OPC_RecordChild0, // #0 = $src1
/*514342*/    OPC_Scope, 22, /*->514366*/ // 2 children in Scope
/*514344*/      OPC_CheckChild0Type, MVT::v8f64,
/*514346*/      OPC_RecordChild1, // #1 = $src2
/*514347*/      OPC_RecordChild2, // #2 = $cc
/*514348*/      OPC_MoveChild2,
/*514349*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*514352*/      OPC_MoveParent,
/*514353*/      OPC_CheckType, MVT::v8i1,
/*514355*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*514357*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDZrrib), 0,
                    MVT::v8i1, 3/*#Ops*/, 0, 1, 2, 
                // Src: (X86cmpmSAE:{ *:[v8i1] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i8] }):$cc) - Complexity = 6
                // Dst: (VCMPPDZrrib:{ *:[v8i1] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i8] }):$cc)
/*514366*/    /*Scope*/ 22, /*->514389*/
/*514367*/      OPC_CheckChild0Type, MVT::v16f32,
/*514369*/      OPC_RecordChild1, // #1 = $src2
/*514370*/      OPC_RecordChild2, // #2 = $cc
/*514371*/      OPC_MoveChild2,
/*514372*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*514375*/      OPC_MoveParent,
/*514376*/      OPC_CheckType, MVT::v16i1,
/*514378*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*514380*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSZrrib), 0,
                    MVT::v16i1, 3/*#Ops*/, 0, 1, 2, 
                // Src: (X86cmpmSAE:{ *:[v16i1] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i8] }):$cc) - Complexity = 6
                // Dst: (VCMPPSZrrib:{ *:[v16i1] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i8] }):$cc)
/*514389*/    0, /*End of Scope*/
/*514390*/  /*SwitchOpcode*/ 57, TARGET_VAL(X86ISD::KSHIFTL),// ->514450
/*514393*/    OPC_RecordChild0, // #0 = $src
/*514394*/    OPC_RecordChild1, // #1 = $imm
/*514395*/    OPC_MoveChild1,
/*514396*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*514399*/    OPC_MoveParent,
/*514400*/    OPC_SwitchType /*4 cases */, 10, MVT::v16i1,// ->514413
/*514403*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*514405*/      OPC_MorphNodeTo1, TARGET_VAL(X86::KSHIFTLWri), 0,
                    MVT::v16i1, 2/*#Ops*/, 0, 1, 
                // Src: (X86kshiftl:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src, (timm:{ *:[i8] }):$imm) - Complexity = 6
                // Dst: (KSHIFTLWri:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src, (timm:{ *:[i8] }):$imm)
/*514413*/    /*SwitchType*/ 10, MVT::v8i1,// ->514425
/*514415*/      OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*514417*/      OPC_MorphNodeTo1, TARGET_VAL(X86::KSHIFTLBri), 0,
                    MVT::v8i1, 2/*#Ops*/, 0, 1, 
                // Src: (X86kshiftl:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src, (timm:{ *:[i8] }):$imm) - Complexity = 6
                // Dst: (KSHIFTLBri:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src, (timm:{ *:[i8] }):$imm)
/*514425*/    /*SwitchType*/ 10, MVT::v64i1,// ->514437
/*514427*/      OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*514429*/      OPC_MorphNodeTo1, TARGET_VAL(X86::KSHIFTLQri), 0,
                    MVT::v64i1, 2/*#Ops*/, 0, 1, 
                // Src: (X86kshiftl:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src, (timm:{ *:[i8] }):$imm) - Complexity = 6
                // Dst: (KSHIFTLQri:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src, (timm:{ *:[i8] }):$imm)
/*514437*/    /*SwitchType*/ 10, MVT::v32i1,// ->514449
/*514439*/      OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*514441*/      OPC_MorphNodeTo1, TARGET_VAL(X86::KSHIFTLDri), 0,
                    MVT::v32i1, 2/*#Ops*/, 0, 1, 
                // Src: (X86kshiftl:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src, (timm:{ *:[i8] }):$imm) - Complexity = 6
                // Dst: (KSHIFTLDri:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src, (timm:{ *:[i8] }):$imm)
/*514449*/    0, // EndSwitchType
/*514450*/  /*SwitchOpcode*/ 57, TARGET_VAL(X86ISD::KSHIFTR),// ->514510
/*514453*/    OPC_RecordChild0, // #0 = $src
/*514454*/    OPC_RecordChild1, // #1 = $imm
/*514455*/    OPC_MoveChild1,
/*514456*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*514459*/    OPC_MoveParent,
/*514460*/    OPC_SwitchType /*4 cases */, 10, MVT::v16i1,// ->514473
/*514463*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*514465*/      OPC_MorphNodeTo1, TARGET_VAL(X86::KSHIFTRWri), 0,
                    MVT::v16i1, 2/*#Ops*/, 0, 1, 
                // Src: (X86kshiftr:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src, (timm:{ *:[i8] }):$imm) - Complexity = 6
                // Dst: (KSHIFTRWri:{ *:[v16i1] } VK16:{ *:[v16i1] }:$src, (timm:{ *:[i8] }):$imm)
/*514473*/    /*SwitchType*/ 10, MVT::v8i1,// ->514485
/*514475*/      OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*514477*/      OPC_MorphNodeTo1, TARGET_VAL(X86::KSHIFTRBri), 0,
                    MVT::v8i1, 2/*#Ops*/, 0, 1, 
                // Src: (X86kshiftr:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src, (timm:{ *:[i8] }):$imm) - Complexity = 6
                // Dst: (KSHIFTRBri:{ *:[v8i1] } VK8:{ *:[v8i1] }:$src, (timm:{ *:[i8] }):$imm)
/*514485*/    /*SwitchType*/ 10, MVT::v64i1,// ->514497
/*514487*/      OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*514489*/      OPC_MorphNodeTo1, TARGET_VAL(X86::KSHIFTRQri), 0,
                    MVT::v64i1, 2/*#Ops*/, 0, 1, 
                // Src: (X86kshiftr:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src, (timm:{ *:[i8] }):$imm) - Complexity = 6
                // Dst: (KSHIFTRQri:{ *:[v64i1] } VK64:{ *:[v64i1] }:$src, (timm:{ *:[i8] }):$imm)
/*514497*/    /*SwitchType*/ 10, MVT::v32i1,// ->514509
/*514499*/      OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*514501*/      OPC_MorphNodeTo1, TARGET_VAL(X86::KSHIFTRDri), 0,
                    MVT::v32i1, 2/*#Ops*/, 0, 1, 
                // Src: (X86kshiftr:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src, (timm:{ *:[i8] }):$imm) - Complexity = 6
                // Dst: (KSHIFTRDri:{ *:[v32i1] } VK32:{ *:[v32i1] }:$src, (timm:{ *:[i8] }):$imm)
/*514509*/    0, // EndSwitchType
/*514510*/  /*SwitchOpcode*/ 80, TARGET_VAL(X86ISD::CVTP2SI_RND),// ->514593
/*514513*/    OPC_RecordChild0, // #0 = $src
/*514514*/    OPC_Scope, 20, /*->514536*/ // 3 children in Scope
/*514516*/      OPC_CheckChild0Type, MVT::v16f32,
/*514518*/      OPC_RecordChild1, // #1 = $rc
/*514519*/      OPC_MoveChild1,
/*514520*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*514523*/      OPC_MoveParent,
/*514524*/      OPC_CheckType, MVT::v16i32,
/*514526*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*514528*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2DQZrrb), 0,
                    MVT::v16i32, 2/*#Ops*/, 0, 1, 
                // Src: (X86cvtp2IntRnd:{ *:[v16i32] } VR512:{ *:[v16f32] }:$src, (timm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VCVTPS2DQZrrb:{ *:[v16i32] } VR512:{ *:[v16f32] }:$src, (timm:{ *:[i32] }):$rc)
/*514536*/    /*Scope*/ 34, /*->514571*/
/*514537*/      OPC_CheckChild0Type, MVT::v8f64,
/*514539*/      OPC_RecordChild1, // #1 = $rc
/*514540*/      OPC_MoveChild1,
/*514541*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*514544*/      OPC_MoveParent,
/*514545*/      OPC_SwitchType /*2 cases */, 10, MVT::v8i32,// ->514558
/*514548*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*514550*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2DQZrrb), 0,
                      MVT::v8i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86cvtp2IntRnd:{ *:[v8i32] } VR512:{ *:[v8f64] }:$src, (timm:{ *:[i32] }):$rc) - Complexity = 6
                  // Dst: (VCVTPD2DQZrrb:{ *:[v8i32] } VR512:{ *:[v8f64] }:$src, (timm:{ *:[i32] }):$rc)
/*514558*/      /*SwitchType*/ 10, MVT::v8i64,// ->514570
/*514560*/        OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*514562*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2QQZrrb), 0,
                      MVT::v8i64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86cvtp2IntRnd:{ *:[v8i64] } VR512:{ *:[v8f64] }:$src, (timm:{ *:[i32] }):$rc) - Complexity = 6
                  // Dst: (VCVTPD2QQZrrb:{ *:[v8i64] } VR512:{ *:[v8f64] }:$src, (timm:{ *:[i32] }):$rc)
/*514570*/      0, // EndSwitchType
/*514571*/    /*Scope*/ 20, /*->514592*/
/*514572*/      OPC_CheckChild0Type, MVT::v8f32,
/*514574*/      OPC_RecordChild1, // #1 = $rc
/*514575*/      OPC_MoveChild1,
/*514576*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*514579*/      OPC_MoveParent,
/*514580*/      OPC_CheckType, MVT::v8i64,
/*514582*/      OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*514584*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2QQZrrb), 0,
                    MVT::v8i64, 2/*#Ops*/, 0, 1, 
                // Src: (X86cvtp2IntRnd:{ *:[v8i64] } VR256X:{ *:[v8f32] }:$src, (timm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VCVTPS2QQZrrb:{ *:[v8i64] } VR256X:{ *:[v8f32] }:$src, (timm:{ *:[i32] }):$rc)
/*514592*/    0, /*End of Scope*/
/*514593*/  /*SwitchOpcode*/ 80, TARGET_VAL(X86ISD::CVTP2UI_RND),// ->514676
/*514596*/    OPC_RecordChild0, // #0 = $src
/*514597*/    OPC_Scope, 20, /*->514619*/ // 3 children in Scope
/*514599*/      OPC_CheckChild0Type, MVT::v16f32,
/*514601*/      OPC_RecordChild1, // #1 = $rc
/*514602*/      OPC_MoveChild1,
/*514603*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*514606*/      OPC_MoveParent,
/*514607*/      OPC_CheckType, MVT::v16i32,
/*514609*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*514611*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UDQZrrb), 0,
                    MVT::v16i32, 2/*#Ops*/, 0, 1, 
                // Src: (X86cvtp2UIntRnd:{ *:[v16i32] } VR512:{ *:[v16f32] }:$src, (timm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VCVTPS2UDQZrrb:{ *:[v16i32] } VR512:{ *:[v16f32] }:$src, (timm:{ *:[i32] }):$rc)
/*514619*/    /*Scope*/ 34, /*->514654*/
/*514620*/      OPC_CheckChild0Type, MVT::v8f64,
/*514622*/      OPC_RecordChild1, // #1 = $rc
/*514623*/      OPC_MoveChild1,
/*514624*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*514627*/      OPC_MoveParent,
/*514628*/      OPC_SwitchType /*2 cases */, 10, MVT::v8i32,// ->514641
/*514631*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*514633*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UDQZrrb), 0,
                      MVT::v8i32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86cvtp2UIntRnd:{ *:[v8i32] } VR512:{ *:[v8f64] }:$src, (timm:{ *:[i32] }):$rc) - Complexity = 6
                  // Dst: (VCVTPD2UDQZrrb:{ *:[v8i32] } VR512:{ *:[v8f64] }:$src, (timm:{ *:[i32] }):$rc)
/*514641*/      /*SwitchType*/ 10, MVT::v8i64,// ->514653
/*514643*/        OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*514645*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2UQQZrrb), 0,
                      MVT::v8i64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86cvtp2UIntRnd:{ *:[v8i64] } VR512:{ *:[v8f64] }:$src, (timm:{ *:[i32] }):$rc) - Complexity = 6
                  // Dst: (VCVTPD2UQQZrrb:{ *:[v8i64] } VR512:{ *:[v8f64] }:$src, (timm:{ *:[i32] }):$rc)
/*514653*/      0, // EndSwitchType
/*514654*/    /*Scope*/ 20, /*->514675*/
/*514655*/      OPC_CheckChild0Type, MVT::v8f32,
/*514657*/      OPC_RecordChild1, // #1 = $rc
/*514658*/      OPC_MoveChild1,
/*514659*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*514662*/      OPC_MoveParent,
/*514663*/      OPC_CheckType, MVT::v8i64,
/*514665*/      OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*514667*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2UQQZrrb), 0,
                    MVT::v8i64, 2/*#Ops*/, 0, 1, 
                // Src: (X86cvtp2UIntRnd:{ *:[v8i64] } VR256X:{ *:[v8f32] }:$src, (timm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VCVTPS2UQQZrrb:{ *:[v8i64] } VR256X:{ *:[v8f32] }:$src, (timm:{ *:[i32] }):$rc)
/*514675*/    0, /*End of Scope*/
/*514676*/  /*SwitchOpcode*/ 119|128,4/*631*/, TARGET_VAL(ISD::BUILD_VECTOR),// ->515311
/*514680*/    OPC_Scope, 57|128,3/*441*/, /*->515124*/ // 2 children in Scope
/*514683*/      OPC_CheckImmAllZerosV,
/*514684*/      OPC_SwitchType /*25 cases */, 20, MVT::v16i8,// ->514707
/*514687*/        OPC_Scope, 8, /*->514697*/ // 2 children in Scope
/*514689*/          OPC_CheckPatternPredicate, 122, // (!Subtarget->hasAVX512())
/*514691*/          OPC_MorphNodeTo1, TARGET_VAL(X86::V_SET0), 0,
                        MVT::v16i8, 0/*#Ops*/, 
                    // Src: immAllZerosV:{ *:[v16i8] } - Complexity = 3
                    // Dst: (V_SET0:{ *:[v16i8] })
/*514697*/        /*Scope*/ 8, /*->514706*/
/*514698*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*514700*/          OPC_MorphNodeTo1, TARGET_VAL(X86::AVX512_128_SET0), 0,
                        MVT::v16i8, 0/*#Ops*/, 
                    // Src: immAllZerosV:{ *:[v16i8] } - Complexity = 3
                    // Dst: (AVX512_128_SET0:{ *:[v16i8] })
/*514706*/        0, /*End of Scope*/
/*514707*/      /*SwitchType*/ 20, MVT::v8i16,// ->514729
/*514709*/        OPC_Scope, 8, /*->514719*/ // 2 children in Scope
/*514711*/          OPC_CheckPatternPredicate, 122, // (!Subtarget->hasAVX512())
/*514713*/          OPC_MorphNodeTo1, TARGET_VAL(X86::V_SET0), 0,
                        MVT::v8i16, 0/*#Ops*/, 
                    // Src: immAllZerosV:{ *:[v8i16] } - Complexity = 3
                    // Dst: (V_SET0:{ *:[v8i16] })
/*514719*/        /*Scope*/ 8, /*->514728*/
/*514720*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*514722*/          OPC_MorphNodeTo1, TARGET_VAL(X86::AVX512_128_SET0), 0,
                        MVT::v8i16, 0/*#Ops*/, 
                    // Src: immAllZerosV:{ *:[v8i16] } - Complexity = 3
                    // Dst: (AVX512_128_SET0:{ *:[v8i16] })
/*514728*/        0, /*End of Scope*/
/*514729*/      /*SwitchType*/ 20, MVT::v4i32,// ->514751
/*514731*/        OPC_Scope, 8, /*->514741*/ // 2 children in Scope
/*514733*/          OPC_CheckPatternPredicate, 122, // (!Subtarget->hasAVX512())
/*514735*/          OPC_MorphNodeTo1, TARGET_VAL(X86::V_SET0), 0,
                        MVT::v4i32, 0/*#Ops*/, 
                    // Src: immAllZerosV:{ *:[v4i32] } - Complexity = 3
                    // Dst: (V_SET0:{ *:[v4i32] })
/*514741*/        /*Scope*/ 8, /*->514750*/
/*514742*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*514744*/          OPC_MorphNodeTo1, TARGET_VAL(X86::AVX512_128_SET0), 0,
                        MVT::v4i32, 0/*#Ops*/, 
                    // Src: immAllZerosV:{ *:[v4i32] } - Complexity = 3
                    // Dst: (AVX512_128_SET0:{ *:[v4i32] })
/*514750*/        0, /*End of Scope*/
/*514751*/      /*SwitchType*/ 20, MVT::v2i64,// ->514773
/*514753*/        OPC_Scope, 8, /*->514763*/ // 2 children in Scope
/*514755*/          OPC_CheckPatternPredicate, 122, // (!Subtarget->hasAVX512())
/*514757*/          OPC_MorphNodeTo1, TARGET_VAL(X86::V_SET0), 0,
                        MVT::v2i64, 0/*#Ops*/, 
                    // Src: immAllZerosV:{ *:[v2i64] } - Complexity = 3
                    // Dst: (V_SET0:{ *:[v2i64] })
/*514763*/        /*Scope*/ 8, /*->514772*/
/*514764*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*514766*/          OPC_MorphNodeTo1, TARGET_VAL(X86::AVX512_128_SET0), 0,
                        MVT::v2i64, 0/*#Ops*/, 
                    // Src: immAllZerosV:{ *:[v2i64] } - Complexity = 3
                    // Dst: (AVX512_128_SET0:{ *:[v2i64] })
/*514772*/        0, /*End of Scope*/
/*514773*/      /*SwitchType*/ 20, MVT::v8i32,// ->514795
/*514775*/        OPC_Scope, 8, /*->514785*/ // 2 children in Scope
/*514777*/          OPC_CheckPatternPredicate, 122, // (!Subtarget->hasAVX512())
/*514779*/          OPC_MorphNodeTo1, TARGET_VAL(X86::AVX_SET0), 0,
                        MVT::v8i32, 0/*#Ops*/, 
                    // Src: immAllZerosV:{ *:[v8i32] } - Complexity = 3
                    // Dst: (AVX_SET0:{ *:[v8i32] })
/*514785*/        /*Scope*/ 8, /*->514794*/
/*514786*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*514788*/          OPC_MorphNodeTo1, TARGET_VAL(X86::AVX512_256_SET0), 0,
                        MVT::v8i32, 0/*#Ops*/, 
                    // Src: immAllZerosV:{ *:[v8i32] } - Complexity = 3
                    // Dst: (AVX512_256_SET0:{ *:[v8i32] })
/*514794*/        0, /*End of Scope*/
/*514795*/      /*SwitchType*/ 20, MVT::v32i8,// ->514817
/*514797*/        OPC_Scope, 8, /*->514807*/ // 2 children in Scope
/*514799*/          OPC_CheckPatternPredicate, 122, // (!Subtarget->hasAVX512())
/*514801*/          OPC_MorphNodeTo1, TARGET_VAL(X86::AVX_SET0), 0,
                        MVT::v32i8, 0/*#Ops*/, 
                    // Src: immAllZerosV:{ *:[v32i8] } - Complexity = 3
                    // Dst: (AVX_SET0:{ *:[v32i8] })
/*514807*/        /*Scope*/ 8, /*->514816*/
/*514808*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*514810*/          OPC_MorphNodeTo1, TARGET_VAL(X86::AVX512_256_SET0), 0,
                        MVT::v32i8, 0/*#Ops*/, 
                    // Src: immAllZerosV:{ *:[v32i8] } - Complexity = 3
                    // Dst: (AVX512_256_SET0:{ *:[v32i8] })
/*514816*/        0, /*End of Scope*/
/*514817*/      /*SwitchType*/ 20, MVT::v16i16,// ->514839
/*514819*/        OPC_Scope, 8, /*->514829*/ // 2 children in Scope
/*514821*/          OPC_CheckPatternPredicate, 122, // (!Subtarget->hasAVX512())
/*514823*/          OPC_MorphNodeTo1, TARGET_VAL(X86::AVX_SET0), 0,
                        MVT::v16i16, 0/*#Ops*/, 
                    // Src: immAllZerosV:{ *:[v16i16] } - Complexity = 3
                    // Dst: (AVX_SET0:{ *:[v16i16] })
/*514829*/        /*Scope*/ 8, /*->514838*/
/*514830*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*514832*/          OPC_MorphNodeTo1, TARGET_VAL(X86::AVX512_256_SET0), 0,
                        MVT::v16i16, 0/*#Ops*/, 
                    // Src: immAllZerosV:{ *:[v16i16] } - Complexity = 3
                    // Dst: (AVX512_256_SET0:{ *:[v16i16] })
/*514838*/        0, /*End of Scope*/
/*514839*/      /*SwitchType*/ 20, MVT::v4i64,// ->514861
/*514841*/        OPC_Scope, 8, /*->514851*/ // 2 children in Scope
/*514843*/          OPC_CheckPatternPredicate, 122, // (!Subtarget->hasAVX512())
/*514845*/          OPC_MorphNodeTo1, TARGET_VAL(X86::AVX_SET0), 0,
                        MVT::v4i64, 0/*#Ops*/, 
                    // Src: immAllZerosV:{ *:[v4i64] } - Complexity = 3
                    // Dst: (AVX_SET0:{ *:[v4i64] })
/*514851*/        /*Scope*/ 8, /*->514860*/
/*514852*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*514854*/          OPC_MorphNodeTo1, TARGET_VAL(X86::AVX512_256_SET0), 0,
                        MVT::v4i64, 0/*#Ops*/, 
                    // Src: immAllZerosV:{ *:[v4i64] } - Complexity = 3
                    // Dst: (AVX512_256_SET0:{ *:[v4i64] })
/*514860*/        0, /*End of Scope*/
/*514861*/      /*SwitchType*/ 8, MVT::v16i32,// ->514871
/*514863*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*514865*/        OPC_MorphNodeTo1, TARGET_VAL(X86::AVX512_512_SET0), 0,
                      MVT::v16i32, 0/*#Ops*/, 
                  // Src: immAllZerosV:{ *:[v16i32] } - Complexity = 3
                  // Dst: (AVX512_512_SET0:{ *:[v16i32] })
/*514871*/      /*SwitchType*/ 8, MVT::v64i8,// ->514881
/*514873*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*514875*/        OPC_MorphNodeTo1, TARGET_VAL(X86::AVX512_512_SET0), 0,
                      MVT::v64i8, 0/*#Ops*/, 
                  // Src: immAllZerosV:{ *:[v64i8] } - Complexity = 3
                  // Dst: (AVX512_512_SET0:{ *:[v64i8] })
/*514881*/      /*SwitchType*/ 8, MVT::v32i16,// ->514891
/*514883*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*514885*/        OPC_MorphNodeTo1, TARGET_VAL(X86::AVX512_512_SET0), 0,
                      MVT::v32i16, 0/*#Ops*/, 
                  // Src: immAllZerosV:{ *:[v32i16] } - Complexity = 3
                  // Dst: (AVX512_512_SET0:{ *:[v32i16] })
/*514891*/      /*SwitchType*/ 8, MVT::v8i64,// ->514901
/*514893*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*514895*/        OPC_MorphNodeTo1, TARGET_VAL(X86::AVX512_512_SET0), 0,
                      MVT::v8i64, 0/*#Ops*/, 
                  // Src: immAllZerosV:{ *:[v8i64] } - Complexity = 3
                  // Dst: (AVX512_512_SET0:{ *:[v8i64] })
/*514901*/      /*SwitchType*/ 8, MVT::v16i1,// ->514911
/*514903*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*514905*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KSET0W), 0,
                      MVT::v16i1, 0/*#Ops*/, 
                  // Src: immAllZerosV:{ *:[v16i1] } - Complexity = 3
                  // Dst: (KSET0W:{ *:[v16i1] })
/*514911*/      /*SwitchType*/ 8, MVT::v32i1,// ->514921
/*514913*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*514915*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KSET0D), 0,
                      MVT::v32i1, 0/*#Ops*/, 
                  // Src: immAllZerosV:{ *:[v32i1] } - Complexity = 3
                  // Dst: (KSET0D:{ *:[v32i1] })
/*514921*/      /*SwitchType*/ 8, MVT::v64i1,// ->514931
/*514923*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*514925*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KSET0Q), 0,
                      MVT::v64i1, 0/*#Ops*/, 
                  // Src: immAllZerosV:{ *:[v64i1] } - Complexity = 3
                  // Dst: (KSET0Q:{ *:[v64i1] })
/*514931*/      /*SwitchType*/ 19, MVT::v8i1,// ->514952
/*514933*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*514935*/        OPC_EmitNode1, TARGET_VAL(X86::KSET0W), 0,
                      MVT::v16i1, 0/*#Ops*/,  // Results = #0
/*514941*/        OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*514944*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v8i1, 2/*#Ops*/, 0, 1, 
                  // Src: immAllZerosV:{ *:[v8i1] } - Complexity = 3
                  // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (KSET0W:{ *:[v16i1] }), VK8:{ *:[i32] })
/*514952*/      /*SwitchType*/ 19, MVT::v4i1,// ->514973
/*514954*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*514956*/        OPC_EmitNode1, TARGET_VAL(X86::KSET0W), 0,
                      MVT::v16i1, 0/*#Ops*/,  // Results = #0
/*514962*/        OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*514965*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1, 
                  // Src: immAllZerosV:{ *:[v4i1] } - Complexity = 3
                  // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (KSET0W:{ *:[v16i1] }), VK4:{ *:[i32] })
/*514973*/      /*SwitchType*/ 19, MVT::v2i1,// ->514994
/*514975*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*514977*/        OPC_EmitNode1, TARGET_VAL(X86::KSET0W), 0,
                      MVT::v16i1, 0/*#Ops*/,  // Results = #0
/*514983*/        OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/*514986*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2i1, 2/*#Ops*/, 0, 1, 
                  // Src: immAllZerosV:{ *:[v2i1] } - Complexity = 3
                  // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (KSET0W:{ *:[v16i1] }), VK2:{ *:[i32] })
/*514994*/      /*SwitchType*/ 19, MVT::v1i1,// ->515015
/*514996*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*514998*/        OPC_EmitNode1, TARGET_VAL(X86::KSET0W), 0,
                      MVT::v16i1, 0/*#Ops*/,  // Results = #0
/*515004*/        OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/*515007*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v1i1, 2/*#Ops*/, 0, 1, 
                  // Src: immAllZerosV:{ *:[v1i1] } - Complexity = 3
                  // Dst: (COPY_TO_REGCLASS:{ *:[v1i1] } (KSET0W:{ *:[v16i1] }), VK1:{ *:[i32] })
/*515015*/      /*SwitchType*/ 20, MVT::v4f32,// ->515037
/*515017*/        OPC_Scope, 8, /*->515027*/ // 2 children in Scope
/*515019*/          OPC_CheckPatternPredicate, 122, // (!Subtarget->hasAVX512())
/*515021*/          OPC_MorphNodeTo1, TARGET_VAL(X86::V_SET0), 0,
                        MVT::v4f32, 0/*#Ops*/, 
                    // Src: immAllZerosV:{ *:[v4f32] } - Complexity = 3
                    // Dst: (V_SET0:{ *:[v4f32] })
/*515027*/        /*Scope*/ 8, /*->515036*/
/*515028*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*515030*/          OPC_MorphNodeTo1, TARGET_VAL(X86::AVX512_128_SET0), 0,
                        MVT::v4f32, 0/*#Ops*/, 
                    // Src: immAllZerosV:{ *:[v4f32] } - Complexity = 3
                    // Dst: (AVX512_128_SET0:{ *:[v4f32] })
/*515036*/        0, /*End of Scope*/
/*515037*/      /*SwitchType*/ 20, MVT::v2f64,// ->515059
/*515039*/        OPC_Scope, 8, /*->515049*/ // 2 children in Scope
/*515041*/          OPC_CheckPatternPredicate, 122, // (!Subtarget->hasAVX512())
/*515043*/          OPC_MorphNodeTo1, TARGET_VAL(X86::V_SET0), 0,
                        MVT::v2f64, 0/*#Ops*/, 
                    // Src: immAllZerosV:{ *:[v2f64] } - Complexity = 3
                    // Dst: (V_SET0:{ *:[v2f64] })
/*515049*/        /*Scope*/ 8, /*->515058*/
/*515050*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*515052*/          OPC_MorphNodeTo1, TARGET_VAL(X86::AVX512_128_SET0), 0,
                        MVT::v2f64, 0/*#Ops*/, 
                    // Src: immAllZerosV:{ *:[v2f64] } - Complexity = 3
                    // Dst: (AVX512_128_SET0:{ *:[v2f64] })
/*515058*/        0, /*End of Scope*/
/*515059*/      /*SwitchType*/ 20, MVT::v8f32,// ->515081
/*515061*/        OPC_Scope, 8, /*->515071*/ // 2 children in Scope
/*515063*/          OPC_CheckPatternPredicate, 122, // (!Subtarget->hasAVX512())
/*515065*/          OPC_MorphNodeTo1, TARGET_VAL(X86::AVX_SET0), 0,
                        MVT::v8f32, 0/*#Ops*/, 
                    // Src: immAllZerosV:{ *:[v8f32] } - Complexity = 3
                    // Dst: (AVX_SET0:{ *:[v8f32] })
/*515071*/        /*Scope*/ 8, /*->515080*/
/*515072*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*515074*/          OPC_MorphNodeTo1, TARGET_VAL(X86::AVX512_256_SET0), 0,
                        MVT::v8f32, 0/*#Ops*/, 
                    // Src: immAllZerosV:{ *:[v8f32] } - Complexity = 3
                    // Dst: (AVX512_256_SET0:{ *:[v8f32] })
/*515080*/        0, /*End of Scope*/
/*515081*/      /*SwitchType*/ 20, MVT::v4f64,// ->515103
/*515083*/        OPC_Scope, 8, /*->515093*/ // 2 children in Scope
/*515085*/          OPC_CheckPatternPredicate, 122, // (!Subtarget->hasAVX512())
/*515087*/          OPC_MorphNodeTo1, TARGET_VAL(X86::AVX_SET0), 0,
                        MVT::v4f64, 0/*#Ops*/, 
                    // Src: immAllZerosV:{ *:[v4f64] } - Complexity = 3
                    // Dst: (AVX_SET0:{ *:[v4f64] })
/*515093*/        /*Scope*/ 8, /*->515102*/
/*515094*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*515096*/          OPC_MorphNodeTo1, TARGET_VAL(X86::AVX512_256_SET0), 0,
                        MVT::v4f64, 0/*#Ops*/, 
                    // Src: immAllZerosV:{ *:[v4f64] } - Complexity = 3
                    // Dst: (AVX512_256_SET0:{ *:[v4f64] })
/*515102*/        0, /*End of Scope*/
/*515103*/      /*SwitchType*/ 8, MVT::v16f32,// ->515113
/*515105*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*515107*/        OPC_MorphNodeTo1, TARGET_VAL(X86::AVX512_512_SET0), 0,
                      MVT::v16f32, 0/*#Ops*/, 
                  // Src: immAllZerosV:{ *:[v16f32] } - Complexity = 3
                  // Dst: (AVX512_512_SET0:{ *:[v16f32] })
/*515113*/      /*SwitchType*/ 8, MVT::v8f64,// ->515123
/*515115*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*515117*/        OPC_MorphNodeTo1, TARGET_VAL(X86::AVX512_512_SET0), 0,
                      MVT::v8f64, 0/*#Ops*/, 
                  // Src: immAllZerosV:{ *:[v8f64] } - Complexity = 3
                  // Dst: (AVX512_512_SET0:{ *:[v8f64] })
/*515123*/      0, // EndSwitchType
/*515124*/    /*Scope*/ 56|128,1/*184*/, /*->515310*/
/*515126*/      OPC_CheckImmAllOnesV,
/*515127*/      OPC_SwitchType /*10 cases */, 6, MVT::v4i32,// ->515136
/*515130*/        OPC_MorphNodeTo1, TARGET_VAL(X86::V_SETALLONES), 0,
                      MVT::v4i32, 0/*#Ops*/, 
                  // Src: immAllOnesV:{ *:[v4i32] } - Complexity = 3
                  // Dst: (V_SETALLONES:{ *:[v4i32] })
/*515136*/      /*SwitchType*/ 47, MVT::v8i32,// ->515185
/*515138*/        OPC_Scope, 8, /*->515148*/ // 3 children in Scope
/*515140*/          OPC_CheckPatternPredicate, 195, // (Subtarget->hasAVX() && !Subtarget->hasAVX2()) && (MF->getFunction().hasMinSize())
/*515142*/          OPC_MorphNodeTo1, TARGET_VAL(X86::AVX1_SETALLONES), 0,
                        MVT::v8i32, 0/*#Ops*/, 
                    // Src: immAllOnesV:{ *:[v8i32] } - Complexity = 3
                    // Dst: (AVX1_SETALLONES:{ *:[v8i32] })
/*515148*/        /*Scope*/ 8, /*->515157*/
/*515149*/          OPC_CheckPatternPredicate, 29, // (Subtarget->hasAVX2())
/*515151*/          OPC_MorphNodeTo1, TARGET_VAL(X86::AVX2_SETALLONES), 0,
                        MVT::v8i32, 0/*#Ops*/, 
                    // Src: immAllOnesV:{ *:[v8i32] } - Complexity = 3
                    // Dst: (AVX2_SETALLONES:{ *:[v8i32] })
/*515157*/        /*Scope*/ 26, /*->515184*/
/*515158*/          OPC_CheckPatternPredicate, 16, // (Subtarget->hasAVX() && !Subtarget->hasAVX2())
/*515160*/          OPC_EmitNode1, TARGET_VAL(X86::AVX_SET0), 0,
                        MVT::v32i8, 0/*#Ops*/,  // Results = #0
/*515166*/          OPC_EmitNode1, TARGET_VAL(X86::AVX_SET0), 0,
                        MVT::v32i8, 0/*#Ops*/,  // Results = #1
/*515172*/          OPC_EmitInteger, MVT::i8, 15, 
/*515175*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSYrri), 0,
                        MVT::v8i32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: immAllOnesV:{ *:[v8i32] } - Complexity = 3
                    // Dst: (VCMPPSYrri:{ *:[v8i32] } (AVX_SET0:{ *:[v32i8] }), (AVX_SET0:{ *:[v32i8] }), 15:{ *:[i8] })
/*515184*/        0, /*End of Scope*/
/*515185*/      /*SwitchType*/ 8, MVT::v16i32,// ->515195
/*515187*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*515189*/        OPC_MorphNodeTo1, TARGET_VAL(X86::AVX512_512_SETALLONES), 0,
                      MVT::v16i32, 0/*#Ops*/, 
                  // Src: immAllOnesV:{ *:[v16i32] } - Complexity = 3
                  // Dst: (AVX512_512_SETALLONES:{ *:[v16i32] })
/*515195*/      /*SwitchType*/ 8, MVT::v16i1,// ->515205
/*515197*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*515199*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KSET1W), 0,
                      MVT::v16i1, 0/*#Ops*/, 
                  // Src: immAllOnesV:{ *:[v16i1] } - Complexity = 3
                  // Dst: (KSET1W:{ *:[v16i1] })
/*515205*/      /*SwitchType*/ 8, MVT::v32i1,// ->515215
/*515207*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*515209*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KSET1D), 0,
                      MVT::v32i1, 0/*#Ops*/, 
                  // Src: immAllOnesV:{ *:[v32i1] } - Complexity = 3
                  // Dst: (KSET1D:{ *:[v32i1] })
/*515215*/      /*SwitchType*/ 8, MVT::v64i1,// ->515225
/*515217*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*515219*/        OPC_MorphNodeTo1, TARGET_VAL(X86::KSET1Q), 0,
                      MVT::v64i1, 0/*#Ops*/, 
                  // Src: immAllOnesV:{ *:[v64i1] } - Complexity = 3
                  // Dst: (KSET1Q:{ *:[v64i1] })
/*515225*/      /*SwitchType*/ 19, MVT::v8i1,// ->515246
/*515227*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*515229*/        OPC_EmitNode1, TARGET_VAL(X86::KSET1W), 0,
                      MVT::v16i1, 0/*#Ops*/,  // Results = #0
/*515235*/        OPC_EmitInteger, MVT::i32, X86::VK8RegClassID,
/*515238*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v8i1, 2/*#Ops*/, 0, 1, 
                  // Src: immAllOnesV:{ *:[v8i1] } - Complexity = 3
                  // Dst: (COPY_TO_REGCLASS:{ *:[v8i1] } (KSET1W:{ *:[v16i1] }), VK8:{ *:[i32] })
/*515246*/      /*SwitchType*/ 19, MVT::v4i1,// ->515267
/*515248*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*515250*/        OPC_EmitNode1, TARGET_VAL(X86::KSET1W), 0,
                      MVT::v16i1, 0/*#Ops*/,  // Results = #0
/*515256*/        OPC_EmitInteger, MVT::i32, X86::VK4RegClassID,
/*515259*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v4i1, 2/*#Ops*/, 0, 1, 
                  // Src: immAllOnesV:{ *:[v4i1] } - Complexity = 3
                  // Dst: (COPY_TO_REGCLASS:{ *:[v4i1] } (KSET1W:{ *:[v16i1] }), VK4:{ *:[i32] })
/*515267*/      /*SwitchType*/ 19, MVT::v2i1,// ->515288
/*515269*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*515271*/        OPC_EmitNode1, TARGET_VAL(X86::KSET1W), 0,
                      MVT::v16i1, 0/*#Ops*/,  // Results = #0
/*515277*/        OPC_EmitInteger, MVT::i32, X86::VK2RegClassID,
/*515280*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v2i1, 2/*#Ops*/, 0, 1, 
                  // Src: immAllOnesV:{ *:[v2i1] } - Complexity = 3
                  // Dst: (COPY_TO_REGCLASS:{ *:[v2i1] } (KSET1W:{ *:[v16i1] }), VK2:{ *:[i32] })
/*515288*/      /*SwitchType*/ 19, MVT::v1i1,// ->515309
/*515290*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*515292*/        OPC_EmitNode1, TARGET_VAL(X86::KSET1W), 0,
                      MVT::v16i1, 0/*#Ops*/,  // Results = #0
/*515298*/        OPC_EmitInteger, MVT::i32, X86::VK1RegClassID,
/*515301*/        OPC_MorphNodeTo1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                      MVT::v1i1, 2/*#Ops*/, 0, 1, 
                  // Src: immAllOnesV:{ *:[v1i1] } - Complexity = 3
                  // Dst: (COPY_TO_REGCLASS:{ *:[v1i1] } (KSET1W:{ *:[v16i1] }), VK1:{ *:[i32] })
/*515309*/      0, // EndSwitchType
/*515310*/    0, /*End of Scope*/
/*515311*/  /*SwitchOpcode*/ 79, TARGET_VAL(X86ISD::VBROADCASTM),// ->515393
/*515314*/    OPC_RecordChild0, // #0 = $src
/*515315*/    OPC_Scope, 37, /*->515354*/ // 2 children in Scope
/*515317*/      OPC_CheckChild0Type, MVT::v16i1,
/*515319*/      OPC_SwitchType /*3 cases */, 9, MVT::v16i32,// ->515331
/*515322*/        OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*515324*/        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)
/*515331*/      /*SwitchType*/ 9, MVT::v8i32,// ->515342
/*515333*/        OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*515335*/        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)
/*515342*/      /*SwitchType*/ 9, MVT::v4i32,// ->515353
/*515344*/        OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*515346*/        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)
/*515353*/      0, // EndSwitchType
/*515354*/    /*Scope*/ 37, /*->515392*/
/*515355*/      OPC_CheckChild0Type, MVT::v8i1,
/*515357*/      OPC_SwitchType /*3 cases */, 9, MVT::v8i64,// ->515369
/*515360*/        OPC_CheckPatternPredicate, 133, // (Subtarget->hasCDI())
/*515362*/        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)
/*515369*/      /*SwitchType*/ 9, MVT::v4i64,// ->515380
/*515371*/        OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*515373*/        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)
/*515380*/      /*SwitchType*/ 9, MVT::v2i64,// ->515391
/*515382*/        OPC_CheckPatternPredicate, 134, // (Subtarget->hasCDI()) && (Subtarget->hasVLX())
/*515384*/        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)
/*515391*/      0, // EndSwitchType
/*515392*/    0, /*End of Scope*/
/*515393*/  /*SwitchOpcode*/ 52, TARGET_VAL(X86ISD::KADD),// ->515448
/*515396*/    OPC_RecordChild0, // #0 = $src1
/*515397*/    OPC_RecordChild1, // #1 = $src2
/*515398*/    OPC_SwitchType /*4 cases */, 10, MVT::v8i1,// ->515411
/*515401*/      OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*515403*/      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)
/*515411*/    /*SwitchType*/ 10, MVT::v16i1,// ->515423
/*515413*/      OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*515415*/      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)
/*515423*/    /*SwitchType*/ 10, MVT::v32i1,// ->515435
/*515425*/      OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*515427*/      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)
/*515435*/    /*SwitchType*/ 10, MVT::v64i1,// ->515447
/*515437*/      OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*515439*/      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)
/*515447*/    0, // EndSwitchType
/*515448*/  /*SwitchOpcode*/ 48, TARGET_VAL(ISD::CONCAT_VECTORS),// ->515499
/*515451*/    OPC_RecordChild0, // #0 = $src1
/*515452*/    OPC_SwitchType /*3 cases */, 13, MVT::v16i1,// ->515468
/*515455*/      OPC_CheckChild0Type, MVT::v8i1,
/*515457*/      OPC_RecordChild1, // #1 = $src2
/*515458*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*515460*/      OPC_MorphNodeTo1, TARGET_VAL(X86::KUNPCKBWrr), 0,
                    MVT::v16i1, 2/*#Ops*/, 1, 0, 
                // Src: (concat_vectors:{ *:[v16i1] } VK8:{ *:[v8i1] }:$src1, VK8:{ *:[v8i1] }:$src2) - Complexity = 3
                // Dst: (KUNPCKBWrr:{ *:[v16i1] } VK8:{ *:[v8i1] }:$src2, VK8:{ *:[v8i1] }:$src1)
/*515468*/    /*SwitchType*/ 13, MVT::v32i1,// ->515483
/*515470*/      OPC_CheckChild0Type, MVT::v16i1,
/*515472*/      OPC_RecordChild1, // #1 = $src2
/*515473*/      OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*515475*/      OPC_MorphNodeTo1, TARGET_VAL(X86::KUNPCKWDrr), 0,
                    MVT::v32i1, 2/*#Ops*/, 1, 0, 
                // Src: (concat_vectors:{ *:[v32i1] } VK16:{ *:[v16i1] }:$src1, VK16:{ *:[v16i1] }:$src2) - Complexity = 3
                // Dst: (KUNPCKWDrr:{ *:[v32i1] } VK16:{ *:[v16i1] }:$src2, VK16:{ *:[v16i1] }:$src1)
/*515483*/    /*SwitchType*/ 13, MVT::v64i1,// ->515498
/*515485*/      OPC_CheckChild0Type, MVT::v32i1,
/*515487*/      OPC_RecordChild1, // #1 = $src2
/*515488*/      OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*515490*/      OPC_MorphNodeTo1, TARGET_VAL(X86::KUNPCKDQrr), 0,
                    MVT::v64i1, 2/*#Ops*/, 1, 0, 
                // Src: (concat_vectors:{ *:[v64i1] } VK32:{ *:[v32i1] }:$src1, VK32:{ *:[v32i1] }:$src2) - Complexity = 3
                // Dst: (KUNPCKDQrr:{ *:[v64i1] } VK32:{ *:[v32i1] }:$src2, VK32:{ *:[v32i1] }:$src1)
/*515498*/    0, // EndSwitchType
/*515499*/  /*SwitchOpcode*/ 58, TARGET_VAL(X86ISD::CVTTP2SI_SAE),// ->515560
/*515502*/    OPC_RecordChild0, // #0 = $src
/*515503*/    OPC_Scope, 13, /*->515518*/ // 3 children in Scope
/*515505*/      OPC_CheckChild0Type, MVT::v16f32,
/*515507*/      OPC_CheckType, MVT::v16i32,
/*515509*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*515511*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2DQZrrb), 0,
                    MVT::v16i32, 1/*#Ops*/, 0, 
                // Src: (X86cvttp2siSAE:{ *:[v16i32] } VR512:{ *:[v16f32] }:$src) - Complexity = 3
                // Dst: (VCVTTPS2DQZrrb:{ *:[v16i32] } VR512:{ *:[v16f32] }:$src)
/*515518*/    /*Scope*/ 26, /*->515545*/
/*515519*/      OPC_CheckChild0Type, MVT::v8f64,
/*515521*/      OPC_SwitchType /*2 cases */, 9, MVT::v8i32,// ->515533
/*515524*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*515526*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2DQZrrb), 0,
                      MVT::v8i32, 1/*#Ops*/, 0, 
                  // Src: (X86cvttp2siSAE:{ *:[v8i32] } VR512:{ *:[v8f64] }:$src) - Complexity = 3
                  // Dst: (VCVTTPD2DQZrrb:{ *:[v8i32] } VR512:{ *:[v8f64] }:$src)
/*515533*/      /*SwitchType*/ 9, MVT::v8i64,// ->515544
/*515535*/        OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*515537*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2QQZrrb), 0,
                      MVT::v8i64, 1/*#Ops*/, 0, 
                  // Src: (X86cvttp2siSAE:{ *:[v8i64] } VR512:{ *:[v8f64] }:$src) - Complexity = 3
                  // Dst: (VCVTTPD2QQZrrb:{ *:[v8i64] } VR512:{ *:[v8f64] }:$src)
/*515544*/      0, // EndSwitchType
/*515545*/    /*Scope*/ 13, /*->515559*/
/*515546*/      OPC_CheckChild0Type, MVT::v8f32,
/*515548*/      OPC_CheckType, MVT::v8i64,
/*515550*/      OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*515552*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2QQZrrb), 0,
                    MVT::v8i64, 1/*#Ops*/, 0, 
                // Src: (X86cvttp2siSAE:{ *:[v8i64] } VR256X:{ *:[v8f32] }:$src) - Complexity = 3
                // Dst: (VCVTTPS2QQZrrb:{ *:[v8i64] } VR256X:{ *:[v8f32] }:$src)
/*515559*/    0, /*End of Scope*/
/*515560*/  /*SwitchOpcode*/ 58, TARGET_VAL(X86ISD::CVTTP2UI_SAE),// ->515621
/*515563*/    OPC_RecordChild0, // #0 = $src
/*515564*/    OPC_Scope, 13, /*->515579*/ // 3 children in Scope
/*515566*/      OPC_CheckChild0Type, MVT::v16f32,
/*515568*/      OPC_CheckType, MVT::v16i32,
/*515570*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*515572*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UDQZrrb), 0,
                    MVT::v16i32, 1/*#Ops*/, 0, 
                // Src: (X86cvttp2uiSAE:{ *:[v16i32] } VR512:{ *:[v16f32] }:$src) - Complexity = 3
                // Dst: (VCVTTPS2UDQZrrb:{ *:[v16i32] } VR512:{ *:[v16f32] }:$src)
/*515579*/    /*Scope*/ 26, /*->515606*/
/*515580*/      OPC_CheckChild0Type, MVT::v8f64,
/*515582*/      OPC_SwitchType /*2 cases */, 9, MVT::v8i32,// ->515594
/*515585*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*515587*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UDQZrrb), 0,
                      MVT::v8i32, 1/*#Ops*/, 0, 
                  // Src: (X86cvttp2uiSAE:{ *:[v8i32] } VR512:{ *:[v8f64] }:$src) - Complexity = 3
                  // Dst: (VCVTTPD2UDQZrrb:{ *:[v8i32] } VR512:{ *:[v8f64] }:$src)
/*515594*/      /*SwitchType*/ 9, MVT::v8i64,// ->515605
/*515596*/        OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*515598*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPD2UQQZrrb), 0,
                      MVT::v8i64, 1/*#Ops*/, 0, 
                  // Src: (X86cvttp2uiSAE:{ *:[v8i64] } VR512:{ *:[v8f64] }:$src) - Complexity = 3
                  // Dst: (VCVTTPD2UQQZrrb:{ *:[v8i64] } VR512:{ *:[v8f64] }:$src)
/*515605*/      0, // EndSwitchType
/*515606*/    /*Scope*/ 13, /*->515620*/
/*515607*/      OPC_CheckChild0Type, MVT::v8f32,
/*515609*/      OPC_CheckType, MVT::v8i64,
/*515611*/      OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*515613*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTTPS2UQQZrrb), 0,
                    MVT::v8i64, 1/*#Ops*/, 0, 
                // Src: (X86cvttp2uiSAE:{ *:[v8i64] } VR256X:{ *:[v8f32] }:$src) - Complexity = 3
                // Dst: (VCVTTPS2UQQZrrb:{ *:[v8i64] } VR256X:{ *:[v8f32] }:$src)
/*515620*/    0, /*End of Scope*/
/*515621*/  /*SwitchOpcode*/ 9|128,1/*137*/, TARGET_VAL(X86ISD::VTRUNC),// ->515762
/*515625*/    OPC_RecordChild0, // #0 = $src
/*515626*/    OPC_Scope, 37, /*->515665*/ // 6 children in Scope
/*515628*/      OPC_CheckChild0Type, MVT::v2i64,
/*515630*/      OPC_SwitchType /*3 cases */, 9, MVT::v16i8,// ->515642
/*515633*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*515635*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVQBZ128rr), 0,
                      MVT::v16i8, 1/*#Ops*/, 0, 
                  // Src: (X86vtrunc:{ *:[v16i8] } VR128X:{ *:[v2i64] }:$src) - Complexity = 3
                  // Dst: (VPMOVQBZ128rr:{ *:[v16i8] } VR128X:{ *:[v2i64] }:$src)
/*515642*/      /*SwitchType*/ 9, MVT::v8i16,// ->515653
/*515644*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*515646*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVQWZ128rr), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (X86vtrunc:{ *:[v8i16] } VR128X:{ *:[v2i64] }:$src) - Complexity = 3
                  // Dst: (VPMOVQWZ128rr:{ *:[v8i16] } VR128X:{ *:[v2i64] }:$src)
/*515653*/      /*SwitchType*/ 9, MVT::v4i32,// ->515664
/*515655*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*515657*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVQDZ128rr), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (X86vtrunc:{ *:[v4i32] } VR128X:{ *:[v2i64] }:$src) - Complexity = 3
                  // Dst: (VPMOVQDZ128rr:{ *:[v4i32] } VR128X:{ *:[v2i64] }:$src)
/*515664*/      0, // EndSwitchType
/*515665*/    /*Scope*/ 26, /*->515692*/
/*515666*/      OPC_CheckChild0Type, MVT::v4i64,
/*515668*/      OPC_SwitchType /*2 cases */, 9, MVT::v16i8,// ->515680
/*515671*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*515673*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVQBZ256rr), 0,
                      MVT::v16i8, 1/*#Ops*/, 0, 
                  // Src: (X86vtrunc:{ *:[v16i8] } VR256X:{ *:[v4i64] }:$src) - Complexity = 3
                  // Dst: (VPMOVQBZ256rr:{ *:[v16i8] } VR256X:{ *:[v4i64] }:$src)
/*515680*/      /*SwitchType*/ 9, MVT::v8i16,// ->515691
/*515682*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*515684*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVQWZ256rr), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (X86vtrunc:{ *:[v8i16] } VR256X:{ *:[v4i64] }:$src) - Complexity = 3
                  // Dst: (VPMOVQWZ256rr:{ *:[v8i16] } VR256X:{ *:[v4i64] }:$src)
/*515691*/      0, // EndSwitchType
/*515692*/    /*Scope*/ 13, /*->515706*/
/*515693*/      OPC_CheckChild0Type, MVT::v8i64,
/*515695*/      OPC_CheckType, MVT::v16i8,
/*515697*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*515699*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVQBZrr), 0,
                    MVT::v16i8, 1/*#Ops*/, 0, 
                // Src: (X86vtrunc:{ *:[v16i8] } VR512:{ *:[v8i64] }:$src) - Complexity = 3
                // Dst: (VPMOVQBZrr:{ *:[v16i8] } VR512:{ *:[v8i64] }:$src)
/*515706*/    /*Scope*/ 26, /*->515733*/
/*515707*/      OPC_CheckChild0Type, MVT::v4i32,
/*515709*/      OPC_SwitchType /*2 cases */, 9, MVT::v16i8,// ->515721
/*515712*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*515714*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVDBZ128rr), 0,
                      MVT::v16i8, 1/*#Ops*/, 0, 
                  // Src: (X86vtrunc:{ *:[v16i8] } VR128X:{ *:[v4i32] }:$src) - Complexity = 3
                  // Dst: (VPMOVDBZ128rr:{ *:[v16i8] } VR128X:{ *:[v4i32] }:$src)
/*515721*/      /*SwitchType*/ 9, MVT::v8i16,// ->515732
/*515723*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*515725*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVDWZ128rr), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (X86vtrunc:{ *:[v8i16] } VR128X:{ *:[v4i32] }:$src) - Complexity = 3
                  // Dst: (VPMOVDWZ128rr:{ *:[v8i16] } VR128X:{ *:[v4i32] }:$src)
/*515732*/      0, // EndSwitchType
/*515733*/    /*Scope*/ 13, /*->515747*/
/*515734*/      OPC_CheckChild0Type, MVT::v8i32,
/*515736*/      OPC_CheckType, MVT::v16i8,
/*515738*/      OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*515740*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVDBZ256rr), 0,
                    MVT::v16i8, 1/*#Ops*/, 0, 
                // Src: (X86vtrunc:{ *:[v16i8] } VR256X:{ *:[v8i32] }:$src) - Complexity = 3
                // Dst: (VPMOVDBZ256rr:{ *:[v16i8] } VR256X:{ *:[v8i32] }:$src)
/*515747*/    /*Scope*/ 13, /*->515761*/
/*515748*/      OPC_CheckChild0Type, MVT::v8i16,
/*515750*/      OPC_CheckType, MVT::v16i8,
/*515752*/      OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*515754*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVWBZ128rr), 0,
                    MVT::v16i8, 1/*#Ops*/, 0, 
                // Src: (X86vtrunc:{ *:[v16i8] } VR128X:{ *:[v8i16] }:$src) - Complexity = 3
                // Dst: (VPMOVWBZ128rr:{ *:[v16i8] } VR128X:{ *:[v8i16] }:$src)
/*515761*/    0, /*End of Scope*/
/*515762*/  /*SwitchOpcode*/ 112|128,1/*240*/, TARGET_VAL(X86ISD::VTRUNCS),// ->516006
/*515766*/    OPC_RecordChild0, // #0 = $src
/*515767*/    OPC_Scope, 37, /*->515806*/ // 9 children in Scope
/*515769*/      OPC_CheckChild0Type, MVT::v2i64,
/*515771*/      OPC_SwitchType /*3 cases */, 9, MVT::v16i8,// ->515783
/*515774*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*515776*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSQBZ128rr), 0,
                      MVT::v16i8, 1/*#Ops*/, 0, 
                  // Src: (X86vtruncs:{ *:[v16i8] } VR128X:{ *:[v2i64] }:$src) - Complexity = 3
                  // Dst: (VPMOVSQBZ128rr:{ *:[v16i8] } VR128X:{ *:[v2i64] }:$src)
/*515783*/      /*SwitchType*/ 9, MVT::v8i16,// ->515794
/*515785*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*515787*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSQWZ128rr), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (X86vtruncs:{ *:[v8i16] } VR128X:{ *:[v2i64] }:$src) - Complexity = 3
                  // Dst: (VPMOVSQWZ128rr:{ *:[v8i16] } VR128X:{ *:[v2i64] }:$src)
/*515794*/      /*SwitchType*/ 9, MVT::v4i32,// ->515805
/*515796*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*515798*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSQDZ128rr), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (X86vtruncs:{ *:[v4i32] } VR128X:{ *:[v2i64] }:$src) - Complexity = 3
                  // Dst: (VPMOVSQDZ128rr:{ *:[v4i32] } VR128X:{ *:[v2i64] }:$src)
/*515805*/      0, // EndSwitchType
/*515806*/    /*Scope*/ 37, /*->515844*/
/*515807*/      OPC_CheckChild0Type, MVT::v4i64,
/*515809*/      OPC_SwitchType /*3 cases */, 9, MVT::v16i8,// ->515821
/*515812*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*515814*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSQBZ256rr), 0,
                      MVT::v16i8, 1/*#Ops*/, 0, 
                  // Src: (X86vtruncs:{ *:[v16i8] } VR256X:{ *:[v4i64] }:$src) - Complexity = 3
                  // Dst: (VPMOVSQBZ256rr:{ *:[v16i8] } VR256X:{ *:[v4i64] }:$src)
/*515821*/      /*SwitchType*/ 9, MVT::v8i16,// ->515832
/*515823*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*515825*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSQWZ256rr), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (X86vtruncs:{ *:[v8i16] } VR256X:{ *:[v4i64] }:$src) - Complexity = 3
                  // Dst: (VPMOVSQWZ256rr:{ *:[v8i16] } VR256X:{ *:[v4i64] }:$src)
/*515832*/      /*SwitchType*/ 9, MVT::v4i32,// ->515843
/*515834*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*515836*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSQDZ256rr), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (X86vtruncs:{ *:[v4i32] } VR256X:{ *:[v4i64] }:$src) - Complexity = 3
                  // Dst: (VPMOVSQDZ256rr:{ *:[v4i32] } VR256X:{ *:[v4i64] }:$src)
/*515843*/      0, // EndSwitchType
/*515844*/    /*Scope*/ 37, /*->515882*/
/*515845*/      OPC_CheckChild0Type, MVT::v8i64,
/*515847*/      OPC_SwitchType /*3 cases */, 9, MVT::v16i8,// ->515859
/*515850*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*515852*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSQBZrr), 0,
                      MVT::v16i8, 1/*#Ops*/, 0, 
                  // Src: (X86vtruncs:{ *:[v16i8] } VR512:{ *:[v8i64] }:$src) - Complexity = 3
                  // Dst: (VPMOVSQBZrr:{ *:[v16i8] } VR512:{ *:[v8i64] }:$src)
/*515859*/      /*SwitchType*/ 9, MVT::v8i16,// ->515870
/*515861*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*515863*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSQWZrr), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (X86vtruncs:{ *:[v8i16] } VR512:{ *:[v8i64] }:$src) - Complexity = 3
                  // Dst: (VPMOVSQWZrr:{ *:[v8i16] } VR512:{ *:[v8i64] }:$src)
/*515870*/      /*SwitchType*/ 9, MVT::v8i32,// ->515881
/*515872*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*515874*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSQDZrr), 0,
                      MVT::v8i32, 1/*#Ops*/, 0, 
                  // Src: (X86vtruncs:{ *:[v8i32] } VR512:{ *:[v8i64] }:$src) - Complexity = 3
                  // Dst: (VPMOVSQDZrr:{ *:[v8i32] } VR512:{ *:[v8i64] }:$src)
/*515881*/      0, // EndSwitchType
/*515882*/    /*Scope*/ 26, /*->515909*/
/*515883*/      OPC_CheckChild0Type, MVT::v4i32,
/*515885*/      OPC_SwitchType /*2 cases */, 9, MVT::v16i8,// ->515897
/*515888*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*515890*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSDBZ128rr), 0,
                      MVT::v16i8, 1/*#Ops*/, 0, 
                  // Src: (X86vtruncs:{ *:[v16i8] } VR128X:{ *:[v4i32] }:$src) - Complexity = 3
                  // Dst: (VPMOVSDBZ128rr:{ *:[v16i8] } VR128X:{ *:[v4i32] }:$src)
/*515897*/      /*SwitchType*/ 9, MVT::v8i16,// ->515908
/*515899*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*515901*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSDWZ128rr), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (X86vtruncs:{ *:[v8i16] } VR128X:{ *:[v4i32] }:$src) - Complexity = 3
                  // Dst: (VPMOVSDWZ128rr:{ *:[v8i16] } VR128X:{ *:[v4i32] }:$src)
/*515908*/      0, // EndSwitchType
/*515909*/    /*Scope*/ 26, /*->515936*/
/*515910*/      OPC_CheckChild0Type, MVT::v8i32,
/*515912*/      OPC_SwitchType /*2 cases */, 9, MVT::v16i8,// ->515924
/*515915*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*515917*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSDBZ256rr), 0,
                      MVT::v16i8, 1/*#Ops*/, 0, 
                  // Src: (X86vtruncs:{ *:[v16i8] } VR256X:{ *:[v8i32] }:$src) - Complexity = 3
                  // Dst: (VPMOVSDBZ256rr:{ *:[v16i8] } VR256X:{ *:[v8i32] }:$src)
/*515924*/      /*SwitchType*/ 9, MVT::v8i16,// ->515935
/*515926*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*515928*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSDWZ256rr), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (X86vtruncs:{ *:[v8i16] } VR256X:{ *:[v8i32] }:$src) - Complexity = 3
                  // Dst: (VPMOVSDWZ256rr:{ *:[v8i16] } VR256X:{ *:[v8i32] }:$src)
/*515935*/      0, // EndSwitchType
/*515936*/    /*Scope*/ 26, /*->515963*/
/*515937*/      OPC_CheckChild0Type, MVT::v16i32,
/*515939*/      OPC_SwitchType /*2 cases */, 9, MVT::v16i8,// ->515951
/*515942*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*515944*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSDBZrr), 0,
                      MVT::v16i8, 1/*#Ops*/, 0, 
                  // Src: (X86vtruncs:{ *:[v16i8] } VR512:{ *:[v16i32] }:$src) - Complexity = 3
                  // Dst: (VPMOVSDBZrr:{ *:[v16i8] } VR512:{ *:[v16i32] }:$src)
/*515951*/      /*SwitchType*/ 9, MVT::v16i16,// ->515962
/*515953*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*515955*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSDWZrr), 0,
                      MVT::v16i16, 1/*#Ops*/, 0, 
                  // Src: (X86vtruncs:{ *:[v16i16] } VR512:{ *:[v16i32] }:$src) - Complexity = 3
                  // Dst: (VPMOVSDWZrr:{ *:[v16i16] } VR512:{ *:[v16i32] }:$src)
/*515962*/      0, // EndSwitchType
/*515963*/    /*Scope*/ 13, /*->515977*/
/*515964*/      OPC_CheckChild0Type, MVT::v8i16,
/*515966*/      OPC_CheckType, MVT::v16i8,
/*515968*/      OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*515970*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSWBZ128rr), 0,
                    MVT::v16i8, 1/*#Ops*/, 0, 
                // Src: (X86vtruncs:{ *:[v16i8] } VR128X:{ *:[v8i16] }:$src) - Complexity = 3
                // Dst: (VPMOVSWBZ128rr:{ *:[v16i8] } VR128X:{ *:[v8i16] }:$src)
/*515977*/    /*Scope*/ 13, /*->515991*/
/*515978*/      OPC_CheckChild0Type, MVT::v16i16,
/*515980*/      OPC_CheckType, MVT::v16i8,
/*515982*/      OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*515984*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSWBZ256rr), 0,
                    MVT::v16i8, 1/*#Ops*/, 0, 
                // Src: (X86vtruncs:{ *:[v16i8] } VR256X:{ *:[v16i16] }:$src) - Complexity = 3
                // Dst: (VPMOVSWBZ256rr:{ *:[v16i8] } VR256X:{ *:[v16i16] }:$src)
/*515991*/    /*Scope*/ 13, /*->516005*/
/*515992*/      OPC_CheckChild0Type, MVT::v32i16,
/*515994*/      OPC_CheckType, MVT::v32i8,
/*515996*/      OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*515998*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVSWBZrr), 0,
                    MVT::v32i8, 1/*#Ops*/, 0, 
                // Src: (X86vtruncs:{ *:[v32i8] } VR512:{ *:[v32i16] }:$src) - Complexity = 3
                // Dst: (VPMOVSWBZrr:{ *:[v32i8] } VR512:{ *:[v32i16] }:$src)
/*516005*/    0, /*End of Scope*/
/*516006*/  /*SwitchOpcode*/ 112|128,1/*240*/, TARGET_VAL(X86ISD::VTRUNCUS),// ->516250
/*516010*/    OPC_RecordChild0, // #0 = $src
/*516011*/    OPC_Scope, 37, /*->516050*/ // 9 children in Scope
/*516013*/      OPC_CheckChild0Type, MVT::v2i64,
/*516015*/      OPC_SwitchType /*3 cases */, 9, MVT::v16i8,// ->516027
/*516018*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*516020*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSQBZ128rr), 0,
                      MVT::v16i8, 1/*#Ops*/, 0, 
                  // Src: (X86vtruncus:{ *:[v16i8] } VR128X:{ *:[v2i64] }:$src) - Complexity = 3
                  // Dst: (VPMOVUSQBZ128rr:{ *:[v16i8] } VR128X:{ *:[v2i64] }:$src)
/*516027*/      /*SwitchType*/ 9, MVT::v8i16,// ->516038
/*516029*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*516031*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSQWZ128rr), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (X86vtruncus:{ *:[v8i16] } VR128X:{ *:[v2i64] }:$src) - Complexity = 3
                  // Dst: (VPMOVUSQWZ128rr:{ *:[v8i16] } VR128X:{ *:[v2i64] }:$src)
/*516038*/      /*SwitchType*/ 9, MVT::v4i32,// ->516049
/*516040*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*516042*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSQDZ128rr), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (X86vtruncus:{ *:[v4i32] } VR128X:{ *:[v2i64] }:$src) - Complexity = 3
                  // Dst: (VPMOVUSQDZ128rr:{ *:[v4i32] } VR128X:{ *:[v2i64] }:$src)
/*516049*/      0, // EndSwitchType
/*516050*/    /*Scope*/ 37, /*->516088*/
/*516051*/      OPC_CheckChild0Type, MVT::v4i64,
/*516053*/      OPC_SwitchType /*3 cases */, 9, MVT::v16i8,// ->516065
/*516056*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*516058*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSQBZ256rr), 0,
                      MVT::v16i8, 1/*#Ops*/, 0, 
                  // Src: (X86vtruncus:{ *:[v16i8] } VR256X:{ *:[v4i64] }:$src) - Complexity = 3
                  // Dst: (VPMOVUSQBZ256rr:{ *:[v16i8] } VR256X:{ *:[v4i64] }:$src)
/*516065*/      /*SwitchType*/ 9, MVT::v8i16,// ->516076
/*516067*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*516069*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSQWZ256rr), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (X86vtruncus:{ *:[v8i16] } VR256X:{ *:[v4i64] }:$src) - Complexity = 3
                  // Dst: (VPMOVUSQWZ256rr:{ *:[v8i16] } VR256X:{ *:[v4i64] }:$src)
/*516076*/      /*SwitchType*/ 9, MVT::v4i32,// ->516087
/*516078*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*516080*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSQDZ256rr), 0,
                      MVT::v4i32, 1/*#Ops*/, 0, 
                  // Src: (X86vtruncus:{ *:[v4i32] } VR256X:{ *:[v4i64] }:$src) - Complexity = 3
                  // Dst: (VPMOVUSQDZ256rr:{ *:[v4i32] } VR256X:{ *:[v4i64] }:$src)
/*516087*/      0, // EndSwitchType
/*516088*/    /*Scope*/ 37, /*->516126*/
/*516089*/      OPC_CheckChild0Type, MVT::v8i64,
/*516091*/      OPC_SwitchType /*3 cases */, 9, MVT::v16i8,// ->516103
/*516094*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*516096*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSQBZrr), 0,
                      MVT::v16i8, 1/*#Ops*/, 0, 
                  // Src: (X86vtruncus:{ *:[v16i8] } VR512:{ *:[v8i64] }:$src) - Complexity = 3
                  // Dst: (VPMOVUSQBZrr:{ *:[v16i8] } VR512:{ *:[v8i64] }:$src)
/*516103*/      /*SwitchType*/ 9, MVT::v8i16,// ->516114
/*516105*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*516107*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSQWZrr), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (X86vtruncus:{ *:[v8i16] } VR512:{ *:[v8i64] }:$src) - Complexity = 3
                  // Dst: (VPMOVUSQWZrr:{ *:[v8i16] } VR512:{ *:[v8i64] }:$src)
/*516114*/      /*SwitchType*/ 9, MVT::v8i32,// ->516125
/*516116*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*516118*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSQDZrr), 0,
                      MVT::v8i32, 1/*#Ops*/, 0, 
                  // Src: (X86vtruncus:{ *:[v8i32] } VR512:{ *:[v8i64] }:$src) - Complexity = 3
                  // Dst: (VPMOVUSQDZrr:{ *:[v8i32] } VR512:{ *:[v8i64] }:$src)
/*516125*/      0, // EndSwitchType
/*516126*/    /*Scope*/ 26, /*->516153*/
/*516127*/      OPC_CheckChild0Type, MVT::v4i32,
/*516129*/      OPC_SwitchType /*2 cases */, 9, MVT::v16i8,// ->516141
/*516132*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*516134*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSDBZ128rr), 0,
                      MVT::v16i8, 1/*#Ops*/, 0, 
                  // Src: (X86vtruncus:{ *:[v16i8] } VR128X:{ *:[v4i32] }:$src) - Complexity = 3
                  // Dst: (VPMOVUSDBZ128rr:{ *:[v16i8] } VR128X:{ *:[v4i32] }:$src)
/*516141*/      /*SwitchType*/ 9, MVT::v8i16,// ->516152
/*516143*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*516145*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSDWZ128rr), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (X86vtruncus:{ *:[v8i16] } VR128X:{ *:[v4i32] }:$src) - Complexity = 3
                  // Dst: (VPMOVUSDWZ128rr:{ *:[v8i16] } VR128X:{ *:[v4i32] }:$src)
/*516152*/      0, // EndSwitchType
/*516153*/    /*Scope*/ 26, /*->516180*/
/*516154*/      OPC_CheckChild0Type, MVT::v8i32,
/*516156*/      OPC_SwitchType /*2 cases */, 9, MVT::v16i8,// ->516168
/*516159*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*516161*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSDBZ256rr), 0,
                      MVT::v16i8, 1/*#Ops*/, 0, 
                  // Src: (X86vtruncus:{ *:[v16i8] } VR256X:{ *:[v8i32] }:$src) - Complexity = 3
                  // Dst: (VPMOVUSDBZ256rr:{ *:[v16i8] } VR256X:{ *:[v8i32] }:$src)
/*516168*/      /*SwitchType*/ 9, MVT::v8i16,// ->516179
/*516170*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*516172*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSDWZ256rr), 0,
                      MVT::v8i16, 1/*#Ops*/, 0, 
                  // Src: (X86vtruncus:{ *:[v8i16] } VR256X:{ *:[v8i32] }:$src) - Complexity = 3
                  // Dst: (VPMOVUSDWZ256rr:{ *:[v8i16] } VR256X:{ *:[v8i32] }:$src)
/*516179*/      0, // EndSwitchType
/*516180*/    /*Scope*/ 26, /*->516207*/
/*516181*/      OPC_CheckChild0Type, MVT::v16i32,
/*516183*/      OPC_SwitchType /*2 cases */, 9, MVT::v16i8,// ->516195
/*516186*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*516188*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSDBZrr), 0,
                      MVT::v16i8, 1/*#Ops*/, 0, 
                  // Src: (X86vtruncus:{ *:[v16i8] } VR512:{ *:[v16i32] }:$src) - Complexity = 3
                  // Dst: (VPMOVUSDBZrr:{ *:[v16i8] } VR512:{ *:[v16i32] }:$src)
/*516195*/      /*SwitchType*/ 9, MVT::v16i16,// ->516206
/*516197*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*516199*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSDWZrr), 0,
                      MVT::v16i16, 1/*#Ops*/, 0, 
                  // Src: (X86vtruncus:{ *:[v16i16] } VR512:{ *:[v16i32] }:$src) - Complexity = 3
                  // Dst: (VPMOVUSDWZrr:{ *:[v16i16] } VR512:{ *:[v16i32] }:$src)
/*516206*/      0, // EndSwitchType
/*516207*/    /*Scope*/ 13, /*->516221*/
/*516208*/      OPC_CheckChild0Type, MVT::v8i16,
/*516210*/      OPC_CheckType, MVT::v16i8,
/*516212*/      OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*516214*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSWBZ128rr), 0,
                    MVT::v16i8, 1/*#Ops*/, 0, 
                // Src: (X86vtruncus:{ *:[v16i8] } VR128X:{ *:[v8i16] }:$src) - Complexity = 3
                // Dst: (VPMOVUSWBZ128rr:{ *:[v16i8] } VR128X:{ *:[v8i16] }:$src)
/*516221*/    /*Scope*/ 13, /*->516235*/
/*516222*/      OPC_CheckChild0Type, MVT::v16i16,
/*516224*/      OPC_CheckType, MVT::v16i8,
/*516226*/      OPC_CheckPatternPredicate, 25, // (Subtarget->hasBWI()) && (Subtarget->hasVLX())
/*516228*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSWBZ256rr), 0,
                    MVT::v16i8, 1/*#Ops*/, 0, 
                // Src: (X86vtruncus:{ *:[v16i8] } VR256X:{ *:[v16i16] }:$src) - Complexity = 3
                // Dst: (VPMOVUSWBZ256rr:{ *:[v16i8] } VR256X:{ *:[v16i16] }:$src)
/*516235*/    /*Scope*/ 13, /*->516249*/
/*516236*/      OPC_CheckChild0Type, MVT::v32i16,
/*516238*/      OPC_CheckType, MVT::v32i8,
/*516240*/      OPC_CheckPatternPredicate, 15, // (Subtarget->hasBWI())
/*516242*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPMOVUSWBZrr), 0,
                    MVT::v32i8, 1/*#Ops*/, 0, 
                // Src: (X86vtruncus:{ *:[v32i8] } VR512:{ *:[v32i16] }:$src) - Complexity = 3
                // Dst: (VPMOVUSWBZrr:{ *:[v32i8] } VR512:{ *:[v32i16] }:$src)
/*516249*/    0, /*End of Scope*/
/*516250*/  /*SwitchOpcode*/ 8, TARGET_VAL(X86ISD::MOVQ2DQ),// ->516261
/*516253*/    OPC_RecordChild0, // #0 = $src
/*516254*/    OPC_MorphNodeTo1, TARGET_VAL(X86::MMX_MOVQ2DQrr), 0,
                  MVT::v2i64, 1/*#Ops*/, 0, 
              // Src: (MMX_X86movq2dq:{ *:[v2i64] } VR64:{ *:[x86mmx] }:$src) - Complexity = 3
              // Dst: (MMX_MOVQ2DQrr:{ *:[v2i64] } VR64:{ *:[x86mmx] }:$src)
/*516261*/  /*SwitchOpcode*/ 45|128,4|128,1/*16941*/, TARGET_VAL(X86ISD::MOVSS),// ->533207
/*516266*/    OPC_Scope, 37|128,90/*11557*/, /*->527826*/ // 5 children in Scope
/*516269*/      OPC_RecordChild0, // #0 = $src1
/*516270*/      OPC_MoveChild1,
/*516271*/      OPC_SwitchOpcode /*2 cases */, 123|128,89/*11515*/, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->527791
/*516276*/        OPC_MoveChild0,
/*516277*/        OPC_SwitchOpcode /*18 cases */, 19|128,53/*6803*/, TARGET_VAL(X86ISD::SELECTS),// ->523085
/*516282*/          OPC_Scope, 86|128,31/*4054*/, /*->520339*/ // 5 children in Scope
/*516285*/            OPC_RecordChild0, // #1 = $mask
/*516286*/            OPC_MoveChild1,
/*516287*/            OPC_SwitchOpcode /*9 cases */, 68|128,5/*708*/, TARGET_VAL(ISD::STRICT_FMA),// ->517000
/*516292*/              OPC_RecordNode, // #2 = 'X86strict_Fmadd' chained node
/*516293*/              OPC_CheckFoldableChainNode,
/*516294*/              OPC_Scope, 71, /*->516367*/ // 8 children in Scope
/*516296*/                OPC_RecordChild1, // #3 = $src2
/*516297*/                OPC_MoveChild2,
/*516298*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*516301*/                OPC_CheckChild0Same, 0,
/*516303*/                OPC_CheckChild1Integer, 0, 
/*516305*/                OPC_MoveParent,
/*516306*/                OPC_MoveChild3,
/*516307*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*516310*/                OPC_RecordMemRef,
/*516311*/                OPC_RecordNode, // #4 = 'ld' chained node
/*516312*/                OPC_CheckFoldableChainNode,
/*516313*/                OPC_RecordChild1, // #5 = $src3
/*516314*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*516316*/                OPC_CheckPredicate, 9, // Predicate_load
/*516318*/                OPC_MoveParent,
/*516319*/                OPC_MoveParent,
/*516320*/                OPC_MoveChild2,
/*516321*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*516324*/                OPC_CheckChild0Same, 0,
/*516326*/                OPC_CheckChild1Integer, 0, 
/*516328*/                OPC_MoveParent,
/*516329*/                OPC_CheckType, MVT::f32,
/*516331*/                OPC_MoveParent,
/*516332*/                OPC_MoveParent,
/*516333*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*516335*/                OPC_CheckComplexPat, /*CP*/0, /*#*/5, // selectAddr:$src3 #6 #7 #8 #9 #10
/*516338*/                OPC_EmitMergeInputChains, 2, 2, 4, 
/*516342*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*516345*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 11,  // Results = #12
/*516353*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SSZm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 0, 1, 12, 6, 7, 8, 9, 10, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86strict_Fmadd:{ *:[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:{ *:[iPTR] }:$src3)
/*516367*/              /*Scope*/ 71, /*->516439*/
/*516368*/                OPC_MoveChild1,
/*516369*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*516372*/                OPC_CheckChild0Same, 0,
/*516374*/                OPC_CheckChild1Integer, 0, 
/*516376*/                OPC_MoveParent,
/*516377*/                OPC_MoveChild2,
/*516378*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*516381*/                OPC_RecordMemRef,
/*516382*/                OPC_RecordNode, // #3 = 'ld' chained node
/*516383*/                OPC_CheckFoldableChainNode,
/*516384*/                OPC_RecordChild1, // #4 = $src3
/*516385*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*516387*/                OPC_CheckPredicate, 9, // Predicate_load
/*516389*/                OPC_MoveParent,
/*516390*/                OPC_RecordChild3, // #5 = $src2
/*516391*/                OPC_MoveParent,
/*516392*/                OPC_MoveChild2,
/*516393*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*516396*/                OPC_CheckChild0Same, 0,
/*516398*/                OPC_CheckChild1Integer, 0, 
/*516400*/                OPC_MoveParent,
/*516401*/                OPC_CheckType, MVT::f32,
/*516403*/                OPC_MoveParent,
/*516404*/                OPC_MoveParent,
/*516405*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*516407*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*516410*/                OPC_EmitMergeInputChains, 2, 2, 3, 
/*516414*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*516417*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 5, 11,  // Results = #12
/*516425*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132SSZm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 0, 1, 12, 6, 7, 8, 9, 10, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86strict_Fmadd:{ *:[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:{ *:[iPTR] }:$src3)
/*516439*/              /*Scope*/ 71, /*->516511*/
/*516440*/                OPC_RecordChild1, // #3 = $src2
/*516441*/                OPC_MoveChild2,
/*516442*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*516445*/                OPC_RecordMemRef,
/*516446*/                OPC_RecordNode, // #4 = 'ld' chained node
/*516447*/                OPC_CheckFoldableChainNode,
/*516448*/                OPC_RecordChild1, // #5 = $src3
/*516449*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*516451*/                OPC_CheckPredicate, 9, // Predicate_load
/*516453*/                OPC_MoveParent,
/*516454*/                OPC_MoveChild3,
/*516455*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*516458*/                OPC_CheckChild0Same, 0,
/*516460*/                OPC_CheckChild1Integer, 0, 
/*516462*/                OPC_MoveParent,
/*516463*/                OPC_MoveParent,
/*516464*/                OPC_MoveChild2,
/*516465*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*516468*/                OPC_CheckChild0Same, 0,
/*516470*/                OPC_CheckChild1Integer, 0, 
/*516472*/                OPC_MoveParent,
/*516473*/                OPC_CheckType, MVT::f32,
/*516475*/                OPC_MoveParent,
/*516476*/                OPC_MoveParent,
/*516477*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*516479*/                OPC_CheckComplexPat, /*CP*/0, /*#*/5, // selectAddr:$src3 #6 #7 #8 #9 #10
/*516482*/                OPC_EmitMergeInputChains, 2, 2, 4, 
/*516486*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*516489*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 11,  // Results = #12
/*516497*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SSZm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 0, 1, 12, 6, 7, 8, 9, 10, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86strict_Fmadd:{ *:[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:{ *:[iPTR] }:$src3)
/*516511*/              /*Scope*/ 78|128,1/*206*/, /*->516719*/
/*516513*/                OPC_MoveChild1,
/*516514*/                OPC_SwitchOpcode /*2 cases */, 67, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->516585
/*516518*/                  OPC_CheckChild0Same, 0,
/*516520*/                  OPC_CheckChild1Integer, 0, 
/*516522*/                  OPC_MoveParent,
/*516523*/                  OPC_RecordChild2, // #3 = $src2
/*516524*/                  OPC_MoveChild3,
/*516525*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*516528*/                  OPC_RecordMemRef,
/*516529*/                  OPC_RecordNode, // #4 = 'ld' chained node
/*516530*/                  OPC_CheckFoldableChainNode,
/*516531*/                  OPC_RecordChild1, // #5 = $src3
/*516532*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*516534*/                  OPC_CheckPredicate, 9, // Predicate_load
/*516536*/                  OPC_MoveParent,
/*516537*/                  OPC_MoveParent,
/*516538*/                  OPC_MoveChild2,
/*516539*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*516542*/                  OPC_CheckChild0Same, 0,
/*516544*/                  OPC_CheckChild1Integer, 0, 
/*516546*/                  OPC_MoveParent,
/*516547*/                  OPC_CheckType, MVT::f32,
/*516549*/                  OPC_MoveParent,
/*516550*/                  OPC_MoveParent,
/*516551*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*516553*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/5, // selectAddr:$src3 #6 #7 #8 #9 #10
/*516556*/                  OPC_EmitMergeInputChains, 2, 2, 4, 
/*516560*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*516563*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 11,  // Results = #12
/*516571*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SSZm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 0, 1, 12, 6, 7, 8, 9, 10, 
                            // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86strict_Fmadd:{ *:[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:{ *:[iPTR] }:$src3)
/*516585*/                /*SwitchOpcode*/ 1|128,1/*129*/, TARGET_VAL(ISD::LOAD),// ->516718
/*516589*/                  OPC_RecordMemRef,
/*516590*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*516591*/                  OPC_CheckFoldableChainNode,
/*516592*/                  OPC_RecordChild1, // #4 = $src3
/*516593*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*516595*/                  OPC_CheckPredicate, 9, // Predicate_load
/*516597*/                  OPC_MoveParent,
/*516598*/                  OPC_Scope, 58, /*->516658*/ // 2 children in Scope
/*516600*/                    OPC_MoveChild2,
/*516601*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*516604*/                    OPC_CheckChild0Same, 0,
/*516606*/                    OPC_CheckChild1Integer, 0, 
/*516608*/                    OPC_MoveParent,
/*516609*/                    OPC_RecordChild3, // #5 = $src2
/*516610*/                    OPC_MoveParent,
/*516611*/                    OPC_MoveChild2,
/*516612*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*516615*/                    OPC_CheckChild0Same, 0,
/*516617*/                    OPC_CheckChild1Integer, 0, 
/*516619*/                    OPC_MoveParent,
/*516620*/                    OPC_CheckType, MVT::f32,
/*516622*/                    OPC_MoveParent,
/*516623*/                    OPC_MoveParent,
/*516624*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*516626*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*516629*/                    OPC_EmitMergeInputChains, 2, 2, 3, 
/*516633*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*516636*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v4f32, 2/*#Ops*/, 5, 11,  // Results = #12
/*516644*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132SSZm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f32, 8/*#Ops*/, 0, 1, 12, 6, 7, 8, 9, 10, 
                              // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86strict_Fmadd:{ *:[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:{ *:[iPTR] }:$src3)
/*516658*/                  /*Scope*/ 58, /*->516717*/
/*516659*/                    OPC_RecordChild2, // #5 = $src2
/*516660*/                    OPC_MoveChild3,
/*516661*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*516664*/                    OPC_CheckChild0Same, 0,
/*516666*/                    OPC_CheckChild1Integer, 0, 
/*516668*/                    OPC_MoveParent,
/*516669*/                    OPC_MoveParent,
/*516670*/                    OPC_MoveChild2,
/*516671*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*516674*/                    OPC_CheckChild0Same, 0,
/*516676*/                    OPC_CheckChild1Integer, 0, 
/*516678*/                    OPC_MoveParent,
/*516679*/                    OPC_CheckType, MVT::f32,
/*516681*/                    OPC_MoveParent,
/*516682*/                    OPC_MoveParent,
/*516683*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*516685*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*516688*/                    OPC_EmitMergeInputChains, 2, 2, 3, 
/*516692*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*516695*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v4f32, 2/*#Ops*/, 5, 11,  // Results = #12
/*516703*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SSZm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v4f32, 8/*#Ops*/, 0, 1, 12, 6, 7, 8, 9, 10, 
                              // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86strict_Fmadd:{ *:[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:{ *:[iPTR] }:$src3)
/*516717*/                  0, /*End of Scope*/
/*516718*/                0, // EndSwitchOpcode
/*516719*/              /*Scope*/ 69, /*->516789*/
/*516720*/                OPC_RecordChild1, // #3 = $src2
/*516721*/                OPC_MoveChild2,
/*516722*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*516725*/                OPC_CheckChild0Same, 0,
/*516727*/                OPC_CheckChild1Integer, 0, 
/*516729*/                OPC_MoveParent,
/*516730*/                OPC_MoveChild3,
/*516731*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*516734*/                OPC_RecordMemRef,
/*516735*/                OPC_RecordNode, // #4 = 'ld' chained node
/*516736*/                OPC_CheckFoldableChainNode,
/*516737*/                OPC_RecordChild1, // #5 = $src3
/*516738*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*516740*/                OPC_CheckPredicate, 9, // Predicate_load
/*516742*/                OPC_MoveParent,
/*516743*/                OPC_MoveParent,
/*516744*/                OPC_MoveChild2,
/*516745*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*516748*/                OPC_CheckPredicate, 93, // Predicate_fp32imm0
/*516750*/                OPC_MoveParent,
/*516751*/                OPC_CheckType, MVT::f32,
/*516753*/                OPC_MoveParent,
/*516754*/                OPC_MoveParent,
/*516755*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*516757*/                OPC_CheckComplexPat, /*CP*/0, /*#*/5, // selectAddr:$src3 #6 #7 #8 #9 #10
/*516760*/                OPC_EmitMergeInputChains, 2, 2, 4, 
/*516764*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*516767*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 11,  // Results = #12
/*516775*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SSZm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 0, 1, 12, 6, 7, 8, 9, 10, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86strict_Fmadd:{ *:[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:{ *:[iPTR] }:$src3)
/*516789*/              /*Scope*/ 69, /*->516859*/
/*516790*/                OPC_MoveChild1,
/*516791*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*516794*/                OPC_CheckChild0Same, 0,
/*516796*/                OPC_CheckChild1Integer, 0, 
/*516798*/                OPC_MoveParent,
/*516799*/                OPC_RecordChild2, // #3 = $src2
/*516800*/                OPC_MoveChild3,
/*516801*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*516804*/                OPC_RecordMemRef,
/*516805*/                OPC_RecordNode, // #4 = 'ld' chained node
/*516806*/                OPC_CheckFoldableChainNode,
/*516807*/                OPC_RecordChild1, // #5 = $src3
/*516808*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*516810*/                OPC_CheckPredicate, 9, // Predicate_load
/*516812*/                OPC_MoveParent,
/*516813*/                OPC_MoveParent,
/*516814*/                OPC_MoveChild2,
/*516815*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*516818*/                OPC_CheckPredicate, 93, // Predicate_fp32imm0
/*516820*/                OPC_MoveParent,
/*516821*/                OPC_CheckType, MVT::f32,
/*516823*/                OPC_MoveParent,
/*516824*/                OPC_MoveParent,
/*516825*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*516827*/                OPC_CheckComplexPat, /*CP*/0, /*#*/5, // selectAddr:$src3 #6 #7 #8 #9 #10
/*516830*/                OPC_EmitMergeInputChains, 2, 2, 4, 
/*516834*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*516837*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 11,  // Results = #12
/*516845*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132SSZm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 0, 1, 12, 6, 7, 8, 9, 10, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86strict_Fmadd:{ *:[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:{ *:[iPTR] }:$src3)
/*516859*/              /*Scope*/ 69, /*->516929*/
/*516860*/                OPC_RecordChild1, // #3 = $src2
/*516861*/                OPC_MoveChild2,
/*516862*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*516865*/                OPC_RecordMemRef,
/*516866*/                OPC_RecordNode, // #4 = 'ld' chained node
/*516867*/                OPC_CheckFoldableChainNode,
/*516868*/                OPC_RecordChild1, // #5 = $src3
/*516869*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*516871*/                OPC_CheckPredicate, 9, // Predicate_load
/*516873*/                OPC_MoveParent,
/*516874*/                OPC_MoveChild3,
/*516875*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*516878*/                OPC_CheckChild0Same, 0,
/*516880*/                OPC_CheckChild1Integer, 0, 
/*516882*/                OPC_MoveParent,
/*516883*/                OPC_MoveParent,
/*516884*/                OPC_MoveChild2,
/*516885*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*516888*/                OPC_CheckPredicate, 93, // Predicate_fp32imm0
/*516890*/                OPC_MoveParent,
/*516891*/                OPC_CheckType, MVT::f32,
/*516893*/                OPC_MoveParent,
/*516894*/                OPC_MoveParent,
/*516895*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*516897*/                OPC_CheckComplexPat, /*CP*/0, /*#*/5, // selectAddr:$src3 #6 #7 #8 #9 #10
/*516900*/                OPC_EmitMergeInputChains, 2, 2, 4, 
/*516904*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*516907*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 11,  // Results = #12
/*516915*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SSZm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 0, 1, 12, 6, 7, 8, 9, 10, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86strict_Fmadd:{ *:[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:{ *:[iPTR] }:$src3)
/*516929*/              /*Scope*/ 69, /*->516999*/
/*516930*/                OPC_MoveChild1,
/*516931*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*516934*/                OPC_RecordMemRef,
/*516935*/                OPC_RecordNode, // #3 = 'ld' chained node
/*516936*/                OPC_CheckFoldableChainNode,
/*516937*/                OPC_RecordChild1, // #4 = $src3
/*516938*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*516940*/                OPC_CheckPredicate, 9, // Predicate_load
/*516942*/                OPC_MoveParent,
/*516943*/                OPC_RecordChild2, // #5 = $src2
/*516944*/                OPC_MoveChild3,
/*516945*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*516948*/                OPC_CheckChild0Same, 0,
/*516950*/                OPC_CheckChild1Integer, 0, 
/*516952*/                OPC_MoveParent,
/*516953*/                OPC_MoveParent,
/*516954*/                OPC_MoveChild2,
/*516955*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*516958*/                OPC_CheckPredicate, 93, // Predicate_fp32imm0
/*516960*/                OPC_MoveParent,
/*516961*/                OPC_CheckType, MVT::f32,
/*516963*/                OPC_MoveParent,
/*516964*/                OPC_MoveParent,
/*516965*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*516967*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*516970*/                OPC_EmitMergeInputChains, 2, 2, 3, 
/*516974*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*516977*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 5, 11,  // Results = #12
/*516985*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SSZm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 0, 1, 12, 6, 7, 8, 9, 10, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86strict_Fmadd:{ *:[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:{ *:[iPTR] }:$src3)
/*516999*/              0, /*End of Scope*/
/*517000*/            /*SwitchOpcode*/ 47|128,5/*687*/, TARGET_VAL(ISD::FMA),// ->517691
/*517004*/              OPC_Scope, 70, /*->517076*/ // 8 children in Scope
/*517006*/                OPC_RecordChild0, // #2 = $src2
/*517007*/                OPC_MoveChild1,
/*517008*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*517011*/                OPC_CheckChild0Same, 0,
/*517013*/                OPC_CheckChild1Integer, 0, 
/*517015*/                OPC_MoveParent,
/*517016*/                OPC_MoveChild2,
/*517017*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*517020*/                OPC_RecordMemRef,
/*517021*/                OPC_RecordNode, // #3 = 'ld' chained node
/*517022*/                OPC_CheckFoldableChainNode,
/*517023*/                OPC_RecordChild1, // #4 = $src3
/*517024*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*517026*/                OPC_CheckPredicate, 9, // Predicate_load
/*517028*/                OPC_MoveParent,
/*517029*/                OPC_MoveParent,
/*517030*/                OPC_MoveChild2,
/*517031*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*517034*/                OPC_CheckChild0Same, 0,
/*517036*/                OPC_CheckChild1Integer, 0, 
/*517038*/                OPC_MoveParent,
/*517039*/                OPC_CheckType, MVT::f32,
/*517041*/                OPC_MoveParent,
/*517042*/                OPC_MoveParent,
/*517043*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*517045*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*517048*/                OPC_EmitMergeInputChains, 1, 3, 
/*517051*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*517054*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 10,  // Results = #11
/*517062*/                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:{ *:[iPTR] }:$src3)
/*517076*/              /*Scope*/ 68, /*->517145*/
/*517077*/                OPC_MoveChild0,
/*517078*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*517081*/                OPC_CheckChild0Same, 0,
/*517083*/                OPC_CheckChild1Integer, 0, 
/*517085*/                OPC_MoveParent,
/*517086*/                OPC_MoveChild1,
/*517087*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*517090*/                OPC_RecordMemRef,
/*517091*/                OPC_RecordNode, // #2 = 'ld' chained node
/*517092*/                OPC_CheckFoldableChainNode,
/*517093*/                OPC_RecordChild1, // #3 = $src3
/*517094*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*517096*/                OPC_CheckPredicate, 9, // Predicate_load
/*517098*/                OPC_MoveParent,
/*517099*/                OPC_RecordChild2, // #4 = $src2
/*517100*/                OPC_MoveParent,
/*517101*/                OPC_MoveChild2,
/*517102*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*517105*/                OPC_CheckChild0Same, 0,
/*517107*/                OPC_CheckChild1Integer, 0, 
/*517109*/                OPC_MoveParent,
/*517110*/                OPC_CheckType, MVT::f32,
/*517112*/                OPC_MoveParent,
/*517113*/                OPC_MoveParent,
/*517114*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*517116*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*517119*/                OPC_EmitMergeInputChains1_2,
/*517120*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*517123*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 4, 10,  // Results = #11
/*517131*/                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:{ *:[iPTR] }:$src3)
/*517145*/              /*Scope*/ 70, /*->517216*/
/*517146*/                OPC_RecordChild0, // #2 = $src2
/*517147*/                OPC_MoveChild1,
/*517148*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*517151*/                OPC_RecordMemRef,
/*517152*/                OPC_RecordNode, // #3 = 'ld' chained node
/*517153*/                OPC_CheckFoldableChainNode,
/*517154*/                OPC_RecordChild1, // #4 = $src3
/*517155*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*517157*/                OPC_CheckPredicate, 9, // Predicate_load
/*517159*/                OPC_MoveParent,
/*517160*/                OPC_MoveChild2,
/*517161*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*517164*/                OPC_CheckChild0Same, 0,
/*517166*/                OPC_CheckChild1Integer, 0, 
/*517168*/                OPC_MoveParent,
/*517169*/                OPC_MoveParent,
/*517170*/                OPC_MoveChild2,
/*517171*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*517174*/                OPC_CheckChild0Same, 0,
/*517176*/                OPC_CheckChild1Integer, 0, 
/*517178*/                OPC_MoveParent,
/*517179*/                OPC_CheckType, MVT::f32,
/*517181*/                OPC_MoveParent,
/*517182*/                OPC_MoveParent,
/*517183*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*517185*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*517188*/                OPC_EmitMergeInputChains, 1, 3, 
/*517191*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*517194*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 10,  // Results = #11
/*517202*/                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:{ *:[iPTR] }:$src3)
/*517216*/              /*Scope*/ 70|128,1/*198*/, /*->517416*/
/*517218*/                OPC_MoveChild0,
/*517219*/                OPC_SwitchOpcode /*2 cases */, 66, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->517289
/*517223*/                  OPC_CheckChild0Same, 0,
/*517225*/                  OPC_CheckChild1Integer, 0, 
/*517227*/                  OPC_MoveParent,
/*517228*/                  OPC_RecordChild1, // #2 = $src2
/*517229*/                  OPC_MoveChild2,
/*517230*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*517233*/                  OPC_RecordMemRef,
/*517234*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*517235*/                  OPC_CheckFoldableChainNode,
/*517236*/                  OPC_RecordChild1, // #4 = $src3
/*517237*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*517239*/                  OPC_CheckPredicate, 9, // Predicate_load
/*517241*/                  OPC_MoveParent,
/*517242*/                  OPC_MoveParent,
/*517243*/                  OPC_MoveChild2,
/*517244*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*517247*/                  OPC_CheckChild0Same, 0,
/*517249*/                  OPC_CheckChild1Integer, 0, 
/*517251*/                  OPC_MoveParent,
/*517252*/                  OPC_CheckType, MVT::f32,
/*517254*/                  OPC_MoveParent,
/*517255*/                  OPC_MoveParent,
/*517256*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*517258*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*517261*/                  OPC_EmitMergeInputChains, 1, 3, 
/*517264*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*517267*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 10,  // Results = #11
/*517275*/                  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:{ *:[iPTR] }:$src3)
/*517289*/                /*SwitchOpcode*/ 123, TARGET_VAL(ISD::LOAD),// ->517415
/*517292*/                  OPC_RecordMemRef,
/*517293*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*517294*/                  OPC_CheckFoldableChainNode,
/*517295*/                  OPC_RecordChild1, // #3 = $src3
/*517296*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*517298*/                  OPC_CheckPredicate, 9, // Predicate_load
/*517300*/                  OPC_MoveParent,
/*517301*/                  OPC_Scope, 55, /*->517358*/ // 2 children in Scope
/*517303*/                    OPC_MoveChild1,
/*517304*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*517307*/                    OPC_CheckChild0Same, 0,
/*517309*/                    OPC_CheckChild1Integer, 0, 
/*517311*/                    OPC_MoveParent,
/*517312*/                    OPC_RecordChild2, // #4 = $src2
/*517313*/                    OPC_MoveParent,
/*517314*/                    OPC_MoveChild2,
/*517315*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*517318*/                    OPC_CheckChild0Same, 0,
/*517320*/                    OPC_CheckChild1Integer, 0, 
/*517322*/                    OPC_MoveParent,
/*517323*/                    OPC_CheckType, MVT::f32,
/*517325*/                    OPC_MoveParent,
/*517326*/                    OPC_MoveParent,
/*517327*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*517329*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*517332*/                    OPC_EmitMergeInputChains1_2,
/*517333*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*517336*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v4f32, 2/*#Ops*/, 4, 10,  // Results = #11
/*517344*/                    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:{ *:[iPTR] }:$src3)
/*517358*/                  /*Scope*/ 55, /*->517414*/
/*517359*/                    OPC_RecordChild1, // #4 = $src2
/*517360*/                    OPC_MoveChild2,
/*517361*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*517364*/                    OPC_CheckChild0Same, 0,
/*517366*/                    OPC_CheckChild1Integer, 0, 
/*517368*/                    OPC_MoveParent,
/*517369*/                    OPC_MoveParent,
/*517370*/                    OPC_MoveChild2,
/*517371*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*517374*/                    OPC_CheckChild0Same, 0,
/*517376*/                    OPC_CheckChild1Integer, 0, 
/*517378*/                    OPC_MoveParent,
/*517379*/                    OPC_CheckType, MVT::f32,
/*517381*/                    OPC_MoveParent,
/*517382*/                    OPC_MoveParent,
/*517383*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*517385*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*517388*/                    OPC_EmitMergeInputChains1_2,
/*517389*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*517392*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v4f32, 2/*#Ops*/, 4, 10,  // Results = #11
/*517400*/                    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:{ *:[iPTR] }:$src3)
/*517414*/                  0, /*End of Scope*/
/*517415*/                0, // EndSwitchOpcode
/*517416*/              /*Scope*/ 68, /*->517485*/
/*517417*/                OPC_RecordChild0, // #2 = $src2
/*517418*/                OPC_MoveChild1,
/*517419*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*517422*/                OPC_CheckChild0Same, 0,
/*517424*/                OPC_CheckChild1Integer, 0, 
/*517426*/                OPC_MoveParent,
/*517427*/                OPC_MoveChild2,
/*517428*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*517431*/                OPC_RecordMemRef,
/*517432*/                OPC_RecordNode, // #3 = 'ld' chained node
/*517433*/                OPC_CheckFoldableChainNode,
/*517434*/                OPC_RecordChild1, // #4 = $src3
/*517435*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*517437*/                OPC_CheckPredicate, 9, // Predicate_load
/*517439*/                OPC_MoveParent,
/*517440*/                OPC_MoveParent,
/*517441*/                OPC_MoveChild2,
/*517442*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*517445*/                OPC_CheckPredicate, 93, // Predicate_fp32imm0
/*517447*/                OPC_MoveParent,
/*517448*/                OPC_CheckType, MVT::f32,
/*517450*/                OPC_MoveParent,
/*517451*/                OPC_MoveParent,
/*517452*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*517454*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*517457*/                OPC_EmitMergeInputChains, 1, 3, 
/*517460*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*517463*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 10,  // Results = #11
/*517471*/                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:{ *:[iPTR] }:$src3)
/*517485*/              /*Scope*/ 68, /*->517554*/
/*517486*/                OPC_MoveChild0,
/*517487*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*517490*/                OPC_CheckChild0Same, 0,
/*517492*/                OPC_CheckChild1Integer, 0, 
/*517494*/                OPC_MoveParent,
/*517495*/                OPC_RecordChild1, // #2 = $src2
/*517496*/                OPC_MoveChild2,
/*517497*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*517500*/                OPC_RecordMemRef,
/*517501*/                OPC_RecordNode, // #3 = 'ld' chained node
/*517502*/                OPC_CheckFoldableChainNode,
/*517503*/                OPC_RecordChild1, // #4 = $src3
/*517504*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*517506*/                OPC_CheckPredicate, 9, // Predicate_load
/*517508*/                OPC_MoveParent,
/*517509*/                OPC_MoveParent,
/*517510*/                OPC_MoveChild2,
/*517511*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*517514*/                OPC_CheckPredicate, 93, // Predicate_fp32imm0
/*517516*/                OPC_MoveParent,
/*517517*/                OPC_CheckType, MVT::f32,
/*517519*/                OPC_MoveParent,
/*517520*/                OPC_MoveParent,
/*517521*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*517523*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*517526*/                OPC_EmitMergeInputChains, 1, 3, 
/*517529*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*517532*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 10,  // Results = #11
/*517540*/                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:{ *:[iPTR] }:$src3)
/*517554*/              /*Scope*/ 68, /*->517623*/
/*517555*/                OPC_RecordChild0, // #2 = $src2
/*517556*/                OPC_MoveChild1,
/*517557*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*517560*/                OPC_RecordMemRef,
/*517561*/                OPC_RecordNode, // #3 = 'ld' chained node
/*517562*/                OPC_CheckFoldableChainNode,
/*517563*/                OPC_RecordChild1, // #4 = $src3
/*517564*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*517566*/                OPC_CheckPredicate, 9, // Predicate_load
/*517568*/                OPC_MoveParent,
/*517569*/                OPC_MoveChild2,
/*517570*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*517573*/                OPC_CheckChild0Same, 0,
/*517575*/                OPC_CheckChild1Integer, 0, 
/*517577*/                OPC_MoveParent,
/*517578*/                OPC_MoveParent,
/*517579*/                OPC_MoveChild2,
/*517580*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*517583*/                OPC_CheckPredicate, 93, // Predicate_fp32imm0
/*517585*/                OPC_MoveParent,
/*517586*/                OPC_CheckType, MVT::f32,
/*517588*/                OPC_MoveParent,
/*517589*/                OPC_MoveParent,
/*517590*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*517592*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*517595*/                OPC_EmitMergeInputChains, 1, 3, 
/*517598*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*517601*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 10,  // Results = #11
/*517609*/                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:{ *:[iPTR] }:$src3)
/*517623*/              /*Scope*/ 66, /*->517690*/
/*517624*/                OPC_MoveChild0,
/*517625*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*517628*/                OPC_RecordMemRef,
/*517629*/                OPC_RecordNode, // #2 = 'ld' chained node
/*517630*/                OPC_CheckFoldableChainNode,
/*517631*/                OPC_RecordChild1, // #3 = $src3
/*517632*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*517634*/                OPC_CheckPredicate, 9, // Predicate_load
/*517636*/                OPC_MoveParent,
/*517637*/                OPC_RecordChild1, // #4 = $src2
/*517638*/                OPC_MoveChild2,
/*517639*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*517642*/                OPC_CheckChild0Same, 0,
/*517644*/                OPC_CheckChild1Integer, 0, 
/*517646*/                OPC_MoveParent,
/*517647*/                OPC_MoveParent,
/*517648*/                OPC_MoveChild2,
/*517649*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*517652*/                OPC_CheckPredicate, 93, // Predicate_fp32imm0
/*517654*/                OPC_MoveParent,
/*517655*/                OPC_CheckType, MVT::f32,
/*517657*/                OPC_MoveParent,
/*517658*/                OPC_MoveParent,
/*517659*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*517661*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*517664*/                OPC_EmitMergeInputChains1_2,
/*517665*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*517668*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 4, 10,  // Results = #11
/*517676*/                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:{ *:[iPTR] }:$src3)
/*517690*/              0, /*End of Scope*/
/*517691*/            /*SwitchOpcode*/ 47|128,5/*687*/, TARGET_VAL(X86ISD::FMSUB),// ->518382
/*517695*/              OPC_Scope, 70, /*->517767*/ // 8 children in Scope
/*517697*/                OPC_RecordChild0, // #2 = $src2
/*517698*/                OPC_MoveChild1,
/*517699*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*517702*/                OPC_CheckChild0Same, 0,
/*517704*/                OPC_CheckChild1Integer, 0, 
/*517706*/                OPC_MoveParent,
/*517707*/                OPC_MoveChild2,
/*517708*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*517711*/                OPC_RecordMemRef,
/*517712*/                OPC_RecordNode, // #3 = 'ld' chained node
/*517713*/                OPC_CheckFoldableChainNode,
/*517714*/                OPC_RecordChild1, // #4 = $src3
/*517715*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*517717*/                OPC_CheckPredicate, 9, // Predicate_load
/*517719*/                OPC_MoveParent,
/*517720*/                OPC_MoveParent,
/*517721*/                OPC_MoveChild2,
/*517722*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*517725*/                OPC_CheckChild0Same, 0,
/*517727*/                OPC_CheckChild1Integer, 0, 
/*517729*/                OPC_MoveParent,
/*517730*/                OPC_CheckType, MVT::f32,
/*517732*/                OPC_MoveParent,
/*517733*/                OPC_MoveParent,
/*517734*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*517736*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*517739*/                OPC_EmitMergeInputChains, 1, 3, 
/*517742*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*517745*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 10,  // Results = #11
/*517753*/                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:{ *:[iPTR] }:$src3)
/*517767*/              /*Scope*/ 68, /*->517836*/
/*517768*/                OPC_MoveChild0,
/*517769*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*517772*/                OPC_CheckChild0Same, 0,
/*517774*/                OPC_CheckChild1Integer, 0, 
/*517776*/                OPC_MoveParent,
/*517777*/                OPC_MoveChild1,
/*517778*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*517781*/                OPC_RecordMemRef,
/*517782*/                OPC_RecordNode, // #2 = 'ld' chained node
/*517783*/                OPC_CheckFoldableChainNode,
/*517784*/                OPC_RecordChild1, // #3 = $src3
/*517785*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*517787*/                OPC_CheckPredicate, 9, // Predicate_load
/*517789*/                OPC_MoveParent,
/*517790*/                OPC_RecordChild2, // #4 = $src2
/*517791*/                OPC_MoveParent,
/*517792*/                OPC_MoveChild2,
/*517793*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*517796*/                OPC_CheckChild0Same, 0,
/*517798*/                OPC_CheckChild1Integer, 0, 
/*517800*/                OPC_MoveParent,
/*517801*/                OPC_CheckType, MVT::f32,
/*517803*/                OPC_MoveParent,
/*517804*/                OPC_MoveParent,
/*517805*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*517807*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*517810*/                OPC_EmitMergeInputChains1_2,
/*517811*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*517814*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 4, 10,  // Results = #11
/*517822*/                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:{ *:[iPTR] }:$src3)
/*517836*/              /*Scope*/ 70, /*->517907*/
/*517837*/                OPC_RecordChild0, // #2 = $src2
/*517838*/                OPC_MoveChild1,
/*517839*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*517842*/                OPC_RecordMemRef,
/*517843*/                OPC_RecordNode, // #3 = 'ld' chained node
/*517844*/                OPC_CheckFoldableChainNode,
/*517845*/                OPC_RecordChild1, // #4 = $src3
/*517846*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*517848*/                OPC_CheckPredicate, 9, // Predicate_load
/*517850*/                OPC_MoveParent,
/*517851*/                OPC_MoveChild2,
/*517852*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*517855*/                OPC_CheckChild0Same, 0,
/*517857*/                OPC_CheckChild1Integer, 0, 
/*517859*/                OPC_MoveParent,
/*517860*/                OPC_MoveParent,
/*517861*/                OPC_MoveChild2,
/*517862*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*517865*/                OPC_CheckChild0Same, 0,
/*517867*/                OPC_CheckChild1Integer, 0, 
/*517869*/                OPC_MoveParent,
/*517870*/                OPC_CheckType, MVT::f32,
/*517872*/                OPC_MoveParent,
/*517873*/                OPC_MoveParent,
/*517874*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*517876*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*517879*/                OPC_EmitMergeInputChains, 1, 3, 
/*517882*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*517885*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 10,  // Results = #11
/*517893*/                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:{ *:[iPTR] }:$src3)
/*517907*/              /*Scope*/ 70|128,1/*198*/, /*->518107*/
/*517909*/                OPC_MoveChild0,
/*517910*/                OPC_SwitchOpcode /*2 cases */, 66, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->517980
/*517914*/                  OPC_CheckChild0Same, 0,
/*517916*/                  OPC_CheckChild1Integer, 0, 
/*517918*/                  OPC_MoveParent,
/*517919*/                  OPC_RecordChild1, // #2 = $src2
/*517920*/                  OPC_MoveChild2,
/*517921*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*517924*/                  OPC_RecordMemRef,
/*517925*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*517926*/                  OPC_CheckFoldableChainNode,
/*517927*/                  OPC_RecordChild1, // #4 = $src3
/*517928*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*517930*/                  OPC_CheckPredicate, 9, // Predicate_load
/*517932*/                  OPC_MoveParent,
/*517933*/                  OPC_MoveParent,
/*517934*/                  OPC_MoveChild2,
/*517935*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*517938*/                  OPC_CheckChild0Same, 0,
/*517940*/                  OPC_CheckChild1Integer, 0, 
/*517942*/                  OPC_MoveParent,
/*517943*/                  OPC_CheckType, MVT::f32,
/*517945*/                  OPC_MoveParent,
/*517946*/                  OPC_MoveParent,
/*517947*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*517949*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*517952*/                  OPC_EmitMergeInputChains, 1, 3, 
/*517955*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*517958*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 10,  // Results = #11
/*517966*/                  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:{ *:[iPTR] }:$src3)
/*517980*/                /*SwitchOpcode*/ 123, TARGET_VAL(ISD::LOAD),// ->518106
/*517983*/                  OPC_RecordMemRef,
/*517984*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*517985*/                  OPC_CheckFoldableChainNode,
/*517986*/                  OPC_RecordChild1, // #3 = $src3
/*517987*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*517989*/                  OPC_CheckPredicate, 9, // Predicate_load
/*517991*/                  OPC_MoveParent,
/*517992*/                  OPC_Scope, 55, /*->518049*/ // 2 children in Scope
/*517994*/                    OPC_MoveChild1,
/*517995*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*517998*/                    OPC_CheckChild0Same, 0,
/*518000*/                    OPC_CheckChild1Integer, 0, 
/*518002*/                    OPC_MoveParent,
/*518003*/                    OPC_RecordChild2, // #4 = $src2
/*518004*/                    OPC_MoveParent,
/*518005*/                    OPC_MoveChild2,
/*518006*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*518009*/                    OPC_CheckChild0Same, 0,
/*518011*/                    OPC_CheckChild1Integer, 0, 
/*518013*/                    OPC_MoveParent,
/*518014*/                    OPC_CheckType, MVT::f32,
/*518016*/                    OPC_MoveParent,
/*518017*/                    OPC_MoveParent,
/*518018*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*518020*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*518023*/                    OPC_EmitMergeInputChains1_2,
/*518024*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*518027*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v4f32, 2/*#Ops*/, 4, 10,  // Results = #11
/*518035*/                    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:{ *:[iPTR] }:$src3)
/*518049*/                  /*Scope*/ 55, /*->518105*/
/*518050*/                    OPC_RecordChild1, // #4 = $src2
/*518051*/                    OPC_MoveChild2,
/*518052*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*518055*/                    OPC_CheckChild0Same, 0,
/*518057*/                    OPC_CheckChild1Integer, 0, 
/*518059*/                    OPC_MoveParent,
/*518060*/                    OPC_MoveParent,
/*518061*/                    OPC_MoveChild2,
/*518062*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*518065*/                    OPC_CheckChild0Same, 0,
/*518067*/                    OPC_CheckChild1Integer, 0, 
/*518069*/                    OPC_MoveParent,
/*518070*/                    OPC_CheckType, MVT::f32,
/*518072*/                    OPC_MoveParent,
/*518073*/                    OPC_MoveParent,
/*518074*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*518076*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*518079*/                    OPC_EmitMergeInputChains1_2,
/*518080*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*518083*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v4f32, 2/*#Ops*/, 4, 10,  // Results = #11
/*518091*/                    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:{ *:[iPTR] }:$src3)
/*518105*/                  0, /*End of Scope*/
/*518106*/                0, // EndSwitchOpcode
/*518107*/              /*Scope*/ 68, /*->518176*/
/*518108*/                OPC_RecordChild0, // #2 = $src2
/*518109*/                OPC_MoveChild1,
/*518110*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*518113*/                OPC_CheckChild0Same, 0,
/*518115*/                OPC_CheckChild1Integer, 0, 
/*518117*/                OPC_MoveParent,
/*518118*/                OPC_MoveChild2,
/*518119*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*518122*/                OPC_RecordMemRef,
/*518123*/                OPC_RecordNode, // #3 = 'ld' chained node
/*518124*/                OPC_CheckFoldableChainNode,
/*518125*/                OPC_RecordChild1, // #4 = $src3
/*518126*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*518128*/                OPC_CheckPredicate, 9, // Predicate_load
/*518130*/                OPC_MoveParent,
/*518131*/                OPC_MoveParent,
/*518132*/                OPC_MoveChild2,
/*518133*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*518136*/                OPC_CheckPredicate, 93, // Predicate_fp32imm0
/*518138*/                OPC_MoveParent,
/*518139*/                OPC_CheckType, MVT::f32,
/*518141*/                OPC_MoveParent,
/*518142*/                OPC_MoveParent,
/*518143*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*518145*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*518148*/                OPC_EmitMergeInputChains, 1, 3, 
/*518151*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*518154*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 10,  // Results = #11
/*518162*/                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:{ *:[iPTR] }:$src3)
/*518176*/              /*Scope*/ 68, /*->518245*/
/*518177*/                OPC_MoveChild0,
/*518178*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*518181*/                OPC_CheckChild0Same, 0,
/*518183*/                OPC_CheckChild1Integer, 0, 
/*518185*/                OPC_MoveParent,
/*518186*/                OPC_RecordChild1, // #2 = $src2
/*518187*/                OPC_MoveChild2,
/*518188*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*518191*/                OPC_RecordMemRef,
/*518192*/                OPC_RecordNode, // #3 = 'ld' chained node
/*518193*/                OPC_CheckFoldableChainNode,
/*518194*/                OPC_RecordChild1, // #4 = $src3
/*518195*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*518197*/                OPC_CheckPredicate, 9, // Predicate_load
/*518199*/                OPC_MoveParent,
/*518200*/                OPC_MoveParent,
/*518201*/                OPC_MoveChild2,
/*518202*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*518205*/                OPC_CheckPredicate, 93, // Predicate_fp32imm0
/*518207*/                OPC_MoveParent,
/*518208*/                OPC_CheckType, MVT::f32,
/*518210*/                OPC_MoveParent,
/*518211*/                OPC_MoveParent,
/*518212*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*518214*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*518217*/                OPC_EmitMergeInputChains, 1, 3, 
/*518220*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*518223*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 10,  // Results = #11
/*518231*/                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:{ *:[iPTR] }:$src3)
/*518245*/              /*Scope*/ 68, /*->518314*/
/*518246*/                OPC_RecordChild0, // #2 = $src2
/*518247*/                OPC_MoveChild1,
/*518248*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*518251*/                OPC_RecordMemRef,
/*518252*/                OPC_RecordNode, // #3 = 'ld' chained node
/*518253*/                OPC_CheckFoldableChainNode,
/*518254*/                OPC_RecordChild1, // #4 = $src3
/*518255*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*518257*/                OPC_CheckPredicate, 9, // Predicate_load
/*518259*/                OPC_MoveParent,
/*518260*/                OPC_MoveChild2,
/*518261*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*518264*/                OPC_CheckChild0Same, 0,
/*518266*/                OPC_CheckChild1Integer, 0, 
/*518268*/                OPC_MoveParent,
/*518269*/                OPC_MoveParent,
/*518270*/                OPC_MoveChild2,
/*518271*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*518274*/                OPC_CheckPredicate, 93, // Predicate_fp32imm0
/*518276*/                OPC_MoveParent,
/*518277*/                OPC_CheckType, MVT::f32,
/*518279*/                OPC_MoveParent,
/*518280*/                OPC_MoveParent,
/*518281*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*518283*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*518286*/                OPC_EmitMergeInputChains, 1, 3, 
/*518289*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*518292*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 10,  // Results = #11
/*518300*/                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:{ *:[iPTR] }:$src3)
/*518314*/              /*Scope*/ 66, /*->518381*/
/*518315*/                OPC_MoveChild0,
/*518316*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*518319*/                OPC_RecordMemRef,
/*518320*/                OPC_RecordNode, // #2 = 'ld' chained node
/*518321*/                OPC_CheckFoldableChainNode,
/*518322*/                OPC_RecordChild1, // #3 = $src3
/*518323*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*518325*/                OPC_CheckPredicate, 9, // Predicate_load
/*518327*/                OPC_MoveParent,
/*518328*/                OPC_RecordChild1, // #4 = $src2
/*518329*/                OPC_MoveChild2,
/*518330*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*518333*/                OPC_CheckChild0Same, 0,
/*518335*/                OPC_CheckChild1Integer, 0, 
/*518337*/                OPC_MoveParent,
/*518338*/                OPC_MoveParent,
/*518339*/                OPC_MoveChild2,
/*518340*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*518343*/                OPC_CheckPredicate, 93, // Predicate_fp32imm0
/*518345*/                OPC_MoveParent,
/*518346*/                OPC_CheckType, MVT::f32,
/*518348*/                OPC_MoveParent,
/*518349*/                OPC_MoveParent,
/*518350*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*518352*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*518355*/                OPC_EmitMergeInputChains1_2,
/*518356*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*518359*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 4, 10,  // Results = #11
/*518367*/                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:{ *:[iPTR] }:$src3)
/*518381*/              0, /*End of Scope*/
/*518382*/            /*SwitchOpcode*/ 47|128,5/*687*/, TARGET_VAL(X86ISD::FNMADD),// ->519073
/*518386*/              OPC_Scope, 70, /*->518458*/ // 8 children in Scope
/*518388*/                OPC_RecordChild0, // #2 = $src2
/*518389*/                OPC_MoveChild1,
/*518390*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*518393*/                OPC_CheckChild0Same, 0,
/*518395*/                OPC_CheckChild1Integer, 0, 
/*518397*/                OPC_MoveParent,
/*518398*/                OPC_MoveChild2,
/*518399*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*518402*/                OPC_RecordMemRef,
/*518403*/                OPC_RecordNode, // #3 = 'ld' chained node
/*518404*/                OPC_CheckFoldableChainNode,
/*518405*/                OPC_RecordChild1, // #4 = $src3
/*518406*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*518408*/                OPC_CheckPredicate, 9, // Predicate_load
/*518410*/                OPC_MoveParent,
/*518411*/                OPC_MoveParent,
/*518412*/                OPC_MoveChild2,
/*518413*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*518416*/                OPC_CheckChild0Same, 0,
/*518418*/                OPC_CheckChild1Integer, 0, 
/*518420*/                OPC_MoveParent,
/*518421*/                OPC_CheckType, MVT::f32,
/*518423*/                OPC_MoveParent,
/*518424*/                OPC_MoveParent,
/*518425*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*518427*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*518430*/                OPC_EmitMergeInputChains, 1, 3, 
/*518433*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*518436*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 10,  // Results = #11
/*518444*/                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:{ *:[iPTR] }:$src3)
/*518458*/              /*Scope*/ 68, /*->518527*/
/*518459*/                OPC_MoveChild0,
/*518460*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*518463*/                OPC_CheckChild0Same, 0,
/*518465*/                OPC_CheckChild1Integer, 0, 
/*518467*/                OPC_MoveParent,
/*518468*/                OPC_MoveChild1,
/*518469*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*518472*/                OPC_RecordMemRef,
/*518473*/                OPC_RecordNode, // #2 = 'ld' chained node
/*518474*/                OPC_CheckFoldableChainNode,
/*518475*/                OPC_RecordChild1, // #3 = $src3
/*518476*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*518478*/                OPC_CheckPredicate, 9, // Predicate_load
/*518480*/                OPC_MoveParent,
/*518481*/                OPC_RecordChild2, // #4 = $src2
/*518482*/                OPC_MoveParent,
/*518483*/                OPC_MoveChild2,
/*518484*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*518487*/                OPC_CheckChild0Same, 0,
/*518489*/                OPC_CheckChild1Integer, 0, 
/*518491*/                OPC_MoveParent,
/*518492*/                OPC_CheckType, MVT::f32,
/*518494*/                OPC_MoveParent,
/*518495*/                OPC_MoveParent,
/*518496*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*518498*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*518501*/                OPC_EmitMergeInputChains1_2,
/*518502*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*518505*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 4, 10,  // Results = #11
/*518513*/                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:{ *:[iPTR] }:$src3)
/*518527*/              /*Scope*/ 70, /*->518598*/
/*518528*/                OPC_RecordChild0, // #2 = $src2
/*518529*/                OPC_MoveChild1,
/*518530*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*518533*/                OPC_RecordMemRef,
/*518534*/                OPC_RecordNode, // #3 = 'ld' chained node
/*518535*/                OPC_CheckFoldableChainNode,
/*518536*/                OPC_RecordChild1, // #4 = $src3
/*518537*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*518539*/                OPC_CheckPredicate, 9, // Predicate_load
/*518541*/                OPC_MoveParent,
/*518542*/                OPC_MoveChild2,
/*518543*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*518546*/                OPC_CheckChild0Same, 0,
/*518548*/                OPC_CheckChild1Integer, 0, 
/*518550*/                OPC_MoveParent,
/*518551*/                OPC_MoveParent,
/*518552*/                OPC_MoveChild2,
/*518553*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*518556*/                OPC_CheckChild0Same, 0,
/*518558*/                OPC_CheckChild1Integer, 0, 
/*518560*/                OPC_MoveParent,
/*518561*/                OPC_CheckType, MVT::f32,
/*518563*/                OPC_MoveParent,
/*518564*/                OPC_MoveParent,
/*518565*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*518567*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*518570*/                OPC_EmitMergeInputChains, 1, 3, 
/*518573*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*518576*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 10,  // Results = #11
/*518584*/                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:{ *:[iPTR] }:$src3)
/*518598*/              /*Scope*/ 70|128,1/*198*/, /*->518798*/
/*518600*/                OPC_MoveChild0,
/*518601*/                OPC_SwitchOpcode /*2 cases */, 66, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->518671
/*518605*/                  OPC_CheckChild0Same, 0,
/*518607*/                  OPC_CheckChild1Integer, 0, 
/*518609*/                  OPC_MoveParent,
/*518610*/                  OPC_RecordChild1, // #2 = $src2
/*518611*/                  OPC_MoveChild2,
/*518612*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*518615*/                  OPC_RecordMemRef,
/*518616*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*518617*/                  OPC_CheckFoldableChainNode,
/*518618*/                  OPC_RecordChild1, // #4 = $src3
/*518619*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*518621*/                  OPC_CheckPredicate, 9, // Predicate_load
/*518623*/                  OPC_MoveParent,
/*518624*/                  OPC_MoveParent,
/*518625*/                  OPC_MoveChild2,
/*518626*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*518629*/                  OPC_CheckChild0Same, 0,
/*518631*/                  OPC_CheckChild1Integer, 0, 
/*518633*/                  OPC_MoveParent,
/*518634*/                  OPC_CheckType, MVT::f32,
/*518636*/                  OPC_MoveParent,
/*518637*/                  OPC_MoveParent,
/*518638*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*518640*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*518643*/                  OPC_EmitMergeInputChains, 1, 3, 
/*518646*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*518649*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 10,  // Results = #11
/*518657*/                  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:{ *:[iPTR] }:$src3)
/*518671*/                /*SwitchOpcode*/ 123, TARGET_VAL(ISD::LOAD),// ->518797
/*518674*/                  OPC_RecordMemRef,
/*518675*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*518676*/                  OPC_CheckFoldableChainNode,
/*518677*/                  OPC_RecordChild1, // #3 = $src3
/*518678*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*518680*/                  OPC_CheckPredicate, 9, // Predicate_load
/*518682*/                  OPC_MoveParent,
/*518683*/                  OPC_Scope, 55, /*->518740*/ // 2 children in Scope
/*518685*/                    OPC_MoveChild1,
/*518686*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*518689*/                    OPC_CheckChild0Same, 0,
/*518691*/                    OPC_CheckChild1Integer, 0, 
/*518693*/                    OPC_MoveParent,
/*518694*/                    OPC_RecordChild2, // #4 = $src2
/*518695*/                    OPC_MoveParent,
/*518696*/                    OPC_MoveChild2,
/*518697*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*518700*/                    OPC_CheckChild0Same, 0,
/*518702*/                    OPC_CheckChild1Integer, 0, 
/*518704*/                    OPC_MoveParent,
/*518705*/                    OPC_CheckType, MVT::f32,
/*518707*/                    OPC_MoveParent,
/*518708*/                    OPC_MoveParent,
/*518709*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*518711*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*518714*/                    OPC_EmitMergeInputChains1_2,
/*518715*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*518718*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v4f32, 2/*#Ops*/, 4, 10,  // Results = #11
/*518726*/                    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:{ *:[iPTR] }:$src3)
/*518740*/                  /*Scope*/ 55, /*->518796*/
/*518741*/                    OPC_RecordChild1, // #4 = $src2
/*518742*/                    OPC_MoveChild2,
/*518743*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*518746*/                    OPC_CheckChild0Same, 0,
/*518748*/                    OPC_CheckChild1Integer, 0, 
/*518750*/                    OPC_MoveParent,
/*518751*/                    OPC_MoveParent,
/*518752*/                    OPC_MoveChild2,
/*518753*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*518756*/                    OPC_CheckChild0Same, 0,
/*518758*/                    OPC_CheckChild1Integer, 0, 
/*518760*/                    OPC_MoveParent,
/*518761*/                    OPC_CheckType, MVT::f32,
/*518763*/                    OPC_MoveParent,
/*518764*/                    OPC_MoveParent,
/*518765*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*518767*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*518770*/                    OPC_EmitMergeInputChains1_2,
/*518771*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*518774*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v4f32, 2/*#Ops*/, 4, 10,  // Results = #11
/*518782*/                    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:{ *:[iPTR] }:$src3)
/*518796*/                  0, /*End of Scope*/
/*518797*/                0, // EndSwitchOpcode
/*518798*/              /*Scope*/ 68, /*->518867*/
/*518799*/                OPC_RecordChild0, // #2 = $src2
/*518800*/                OPC_MoveChild1,
/*518801*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*518804*/                OPC_CheckChild0Same, 0,
/*518806*/                OPC_CheckChild1Integer, 0, 
/*518808*/                OPC_MoveParent,
/*518809*/                OPC_MoveChild2,
/*518810*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*518813*/                OPC_RecordMemRef,
/*518814*/                OPC_RecordNode, // #3 = 'ld' chained node
/*518815*/                OPC_CheckFoldableChainNode,
/*518816*/                OPC_RecordChild1, // #4 = $src3
/*518817*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*518819*/                OPC_CheckPredicate, 9, // Predicate_load
/*518821*/                OPC_MoveParent,
/*518822*/                OPC_MoveParent,
/*518823*/                OPC_MoveChild2,
/*518824*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*518827*/                OPC_CheckPredicate, 93, // Predicate_fp32imm0
/*518829*/                OPC_MoveParent,
/*518830*/                OPC_CheckType, MVT::f32,
/*518832*/                OPC_MoveParent,
/*518833*/                OPC_MoveParent,
/*518834*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*518836*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*518839*/                OPC_EmitMergeInputChains, 1, 3, 
/*518842*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*518845*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 10,  // Results = #11
/*518853*/                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:{ *:[iPTR] }:$src3)
/*518867*/              /*Scope*/ 68, /*->518936*/
/*518868*/                OPC_MoveChild0,
/*518869*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*518872*/                OPC_CheckChild0Same, 0,
/*518874*/                OPC_CheckChild1Integer, 0, 
/*518876*/                OPC_MoveParent,
/*518877*/                OPC_RecordChild1, // #2 = $src2
/*518878*/                OPC_MoveChild2,
/*518879*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*518882*/                OPC_RecordMemRef,
/*518883*/                OPC_RecordNode, // #3 = 'ld' chained node
/*518884*/                OPC_CheckFoldableChainNode,
/*518885*/                OPC_RecordChild1, // #4 = $src3
/*518886*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*518888*/                OPC_CheckPredicate, 9, // Predicate_load
/*518890*/                OPC_MoveParent,
/*518891*/                OPC_MoveParent,
/*518892*/                OPC_MoveChild2,
/*518893*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*518896*/                OPC_CheckPredicate, 93, // Predicate_fp32imm0
/*518898*/                OPC_MoveParent,
/*518899*/                OPC_CheckType, MVT::f32,
/*518901*/                OPC_MoveParent,
/*518902*/                OPC_MoveParent,
/*518903*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*518905*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*518908*/                OPC_EmitMergeInputChains, 1, 3, 
/*518911*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*518914*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 10,  // Results = #11
/*518922*/                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:{ *:[iPTR] }:$src3)
/*518936*/              /*Scope*/ 68, /*->519005*/
/*518937*/                OPC_RecordChild0, // #2 = $src2
/*518938*/                OPC_MoveChild1,
/*518939*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*518942*/                OPC_RecordMemRef,
/*518943*/                OPC_RecordNode, // #3 = 'ld' chained node
/*518944*/                OPC_CheckFoldableChainNode,
/*518945*/                OPC_RecordChild1, // #4 = $src3
/*518946*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*518948*/                OPC_CheckPredicate, 9, // Predicate_load
/*518950*/                OPC_MoveParent,
/*518951*/                OPC_MoveChild2,
/*518952*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*518955*/                OPC_CheckChild0Same, 0,
/*518957*/                OPC_CheckChild1Integer, 0, 
/*518959*/                OPC_MoveParent,
/*518960*/                OPC_MoveParent,
/*518961*/                OPC_MoveChild2,
/*518962*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*518965*/                OPC_CheckPredicate, 93, // Predicate_fp32imm0
/*518967*/                OPC_MoveParent,
/*518968*/                OPC_CheckType, MVT::f32,
/*518970*/                OPC_MoveParent,
/*518971*/                OPC_MoveParent,
/*518972*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*518974*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*518977*/                OPC_EmitMergeInputChains, 1, 3, 
/*518980*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*518983*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 10,  // Results = #11
/*518991*/                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:{ *:[iPTR] }:$src3)
/*519005*/              /*Scope*/ 66, /*->519072*/
/*519006*/                OPC_MoveChild0,
/*519007*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*519010*/                OPC_RecordMemRef,
/*519011*/                OPC_RecordNode, // #2 = 'ld' chained node
/*519012*/                OPC_CheckFoldableChainNode,
/*519013*/                OPC_RecordChild1, // #3 = $src3
/*519014*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*519016*/                OPC_CheckPredicate, 9, // Predicate_load
/*519018*/                OPC_MoveParent,
/*519019*/                OPC_RecordChild1, // #4 = $src2
/*519020*/                OPC_MoveChild2,
/*519021*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*519024*/                OPC_CheckChild0Same, 0,
/*519026*/                OPC_CheckChild1Integer, 0, 
/*519028*/                OPC_MoveParent,
/*519029*/                OPC_MoveParent,
/*519030*/                OPC_MoveChild2,
/*519031*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*519034*/                OPC_CheckPredicate, 93, // Predicate_fp32imm0
/*519036*/                OPC_MoveParent,
/*519037*/                OPC_CheckType, MVT::f32,
/*519039*/                OPC_MoveParent,
/*519040*/                OPC_MoveParent,
/*519041*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*519043*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*519046*/                OPC_EmitMergeInputChains1_2,
/*519047*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*519050*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 4, 10,  // Results = #11
/*519058*/                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:{ *:[iPTR] }:$src3)
/*519072*/              0, /*End of Scope*/
/*519073*/            /*SwitchOpcode*/ 47|128,5/*687*/, TARGET_VAL(X86ISD::FNMSUB),// ->519764
/*519077*/              OPC_Scope, 70, /*->519149*/ // 8 children in Scope
/*519079*/                OPC_RecordChild0, // #2 = $src2
/*519080*/                OPC_MoveChild1,
/*519081*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*519084*/                OPC_CheckChild0Same, 0,
/*519086*/                OPC_CheckChild1Integer, 0, 
/*519088*/                OPC_MoveParent,
/*519089*/                OPC_MoveChild2,
/*519090*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*519093*/                OPC_RecordMemRef,
/*519094*/                OPC_RecordNode, // #3 = 'ld' chained node
/*519095*/                OPC_CheckFoldableChainNode,
/*519096*/                OPC_RecordChild1, // #4 = $src3
/*519097*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*519099*/                OPC_CheckPredicate, 9, // Predicate_load
/*519101*/                OPC_MoveParent,
/*519102*/                OPC_MoveParent,
/*519103*/                OPC_MoveChild2,
/*519104*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*519107*/                OPC_CheckChild0Same, 0,
/*519109*/                OPC_CheckChild1Integer, 0, 
/*519111*/                OPC_MoveParent,
/*519112*/                OPC_CheckType, MVT::f32,
/*519114*/                OPC_MoveParent,
/*519115*/                OPC_MoveParent,
/*519116*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*519118*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*519121*/                OPC_EmitMergeInputChains, 1, 3, 
/*519124*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*519127*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 10,  // Results = #11
/*519135*/                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:{ *:[iPTR] }:$src3)
/*519149*/              /*Scope*/ 68, /*->519218*/
/*519150*/                OPC_MoveChild0,
/*519151*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*519154*/                OPC_CheckChild0Same, 0,
/*519156*/                OPC_CheckChild1Integer, 0, 
/*519158*/                OPC_MoveParent,
/*519159*/                OPC_MoveChild1,
/*519160*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*519163*/                OPC_RecordMemRef,
/*519164*/                OPC_RecordNode, // #2 = 'ld' chained node
/*519165*/                OPC_CheckFoldableChainNode,
/*519166*/                OPC_RecordChild1, // #3 = $src3
/*519167*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*519169*/                OPC_CheckPredicate, 9, // Predicate_load
/*519171*/                OPC_MoveParent,
/*519172*/                OPC_RecordChild2, // #4 = $src2
/*519173*/                OPC_MoveParent,
/*519174*/                OPC_MoveChild2,
/*519175*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*519178*/                OPC_CheckChild0Same, 0,
/*519180*/                OPC_CheckChild1Integer, 0, 
/*519182*/                OPC_MoveParent,
/*519183*/                OPC_CheckType, MVT::f32,
/*519185*/                OPC_MoveParent,
/*519186*/                OPC_MoveParent,
/*519187*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*519189*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*519192*/                OPC_EmitMergeInputChains1_2,
/*519193*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*519196*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 4, 10,  // Results = #11
/*519204*/                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:{ *:[iPTR] }:$src3)
/*519218*/              /*Scope*/ 70, /*->519289*/
/*519219*/                OPC_RecordChild0, // #2 = $src2
/*519220*/                OPC_MoveChild1,
/*519221*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*519224*/                OPC_RecordMemRef,
/*519225*/                OPC_RecordNode, // #3 = 'ld' chained node
/*519226*/                OPC_CheckFoldableChainNode,
/*519227*/                OPC_RecordChild1, // #4 = $src3
/*519228*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*519230*/                OPC_CheckPredicate, 9, // Predicate_load
/*519232*/                OPC_MoveParent,
/*519233*/                OPC_MoveChild2,
/*519234*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*519237*/                OPC_CheckChild0Same, 0,
/*519239*/                OPC_CheckChild1Integer, 0, 
/*519241*/                OPC_MoveParent,
/*519242*/                OPC_MoveParent,
/*519243*/                OPC_MoveChild2,
/*519244*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*519247*/                OPC_CheckChild0Same, 0,
/*519249*/                OPC_CheckChild1Integer, 0, 
/*519251*/                OPC_MoveParent,
/*519252*/                OPC_CheckType, MVT::f32,
/*519254*/                OPC_MoveParent,
/*519255*/                OPC_MoveParent,
/*519256*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*519258*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*519261*/                OPC_EmitMergeInputChains, 1, 3, 
/*519264*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*519267*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 10,  // Results = #11
/*519275*/                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:{ *:[iPTR] }:$src3)
/*519289*/              /*Scope*/ 70|128,1/*198*/, /*->519489*/
/*519291*/                OPC_MoveChild0,
/*519292*/                OPC_SwitchOpcode /*2 cases */, 66, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->519362
/*519296*/                  OPC_CheckChild0Same, 0,
/*519298*/                  OPC_CheckChild1Integer, 0, 
/*519300*/                  OPC_MoveParent,
/*519301*/                  OPC_RecordChild1, // #2 = $src2
/*519302*/                  OPC_MoveChild2,
/*519303*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*519306*/                  OPC_RecordMemRef,
/*519307*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*519308*/                  OPC_CheckFoldableChainNode,
/*519309*/                  OPC_RecordChild1, // #4 = $src3
/*519310*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*519312*/                  OPC_CheckPredicate, 9, // Predicate_load
/*519314*/                  OPC_MoveParent,
/*519315*/                  OPC_MoveParent,
/*519316*/                  OPC_MoveChild2,
/*519317*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*519320*/                  OPC_CheckChild0Same, 0,
/*519322*/                  OPC_CheckChild1Integer, 0, 
/*519324*/                  OPC_MoveParent,
/*519325*/                  OPC_CheckType, MVT::f32,
/*519327*/                  OPC_MoveParent,
/*519328*/                  OPC_MoveParent,
/*519329*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*519331*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*519334*/                  OPC_EmitMergeInputChains, 1, 3, 
/*519337*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*519340*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 10,  // Results = #11
/*519348*/                  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:{ *:[iPTR] }:$src3)
/*519362*/                /*SwitchOpcode*/ 123, TARGET_VAL(ISD::LOAD),// ->519488
/*519365*/                  OPC_RecordMemRef,
/*519366*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*519367*/                  OPC_CheckFoldableChainNode,
/*519368*/                  OPC_RecordChild1, // #3 = $src3
/*519369*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*519371*/                  OPC_CheckPredicate, 9, // Predicate_load
/*519373*/                  OPC_MoveParent,
/*519374*/                  OPC_Scope, 55, /*->519431*/ // 2 children in Scope
/*519376*/                    OPC_MoveChild1,
/*519377*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*519380*/                    OPC_CheckChild0Same, 0,
/*519382*/                    OPC_CheckChild1Integer, 0, 
/*519384*/                    OPC_MoveParent,
/*519385*/                    OPC_RecordChild2, // #4 = $src2
/*519386*/                    OPC_MoveParent,
/*519387*/                    OPC_MoveChild2,
/*519388*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*519391*/                    OPC_CheckChild0Same, 0,
/*519393*/                    OPC_CheckChild1Integer, 0, 
/*519395*/                    OPC_MoveParent,
/*519396*/                    OPC_CheckType, MVT::f32,
/*519398*/                    OPC_MoveParent,
/*519399*/                    OPC_MoveParent,
/*519400*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*519402*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*519405*/                    OPC_EmitMergeInputChains1_2,
/*519406*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*519409*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v4f32, 2/*#Ops*/, 4, 10,  // Results = #11
/*519417*/                    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:{ *:[iPTR] }:$src3)
/*519431*/                  /*Scope*/ 55, /*->519487*/
/*519432*/                    OPC_RecordChild1, // #4 = $src2
/*519433*/                    OPC_MoveChild2,
/*519434*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*519437*/                    OPC_CheckChild0Same, 0,
/*519439*/                    OPC_CheckChild1Integer, 0, 
/*519441*/                    OPC_MoveParent,
/*519442*/                    OPC_MoveParent,
/*519443*/                    OPC_MoveChild2,
/*519444*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*519447*/                    OPC_CheckChild0Same, 0,
/*519449*/                    OPC_CheckChild1Integer, 0, 
/*519451*/                    OPC_MoveParent,
/*519452*/                    OPC_CheckType, MVT::f32,
/*519454*/                    OPC_MoveParent,
/*519455*/                    OPC_MoveParent,
/*519456*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*519458*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*519461*/                    OPC_EmitMergeInputChains1_2,
/*519462*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*519465*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v4f32, 2/*#Ops*/, 4, 10,  // Results = #11
/*519473*/                    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:{ *:[iPTR] }:$src3)
/*519487*/                  0, /*End of Scope*/
/*519488*/                0, // EndSwitchOpcode
/*519489*/              /*Scope*/ 68, /*->519558*/
/*519490*/                OPC_RecordChild0, // #2 = $src2
/*519491*/                OPC_MoveChild1,
/*519492*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*519495*/                OPC_CheckChild0Same, 0,
/*519497*/                OPC_CheckChild1Integer, 0, 
/*519499*/                OPC_MoveParent,
/*519500*/                OPC_MoveChild2,
/*519501*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*519504*/                OPC_RecordMemRef,
/*519505*/                OPC_RecordNode, // #3 = 'ld' chained node
/*519506*/                OPC_CheckFoldableChainNode,
/*519507*/                OPC_RecordChild1, // #4 = $src3
/*519508*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*519510*/                OPC_CheckPredicate, 9, // Predicate_load
/*519512*/                OPC_MoveParent,
/*519513*/                OPC_MoveParent,
/*519514*/                OPC_MoveChild2,
/*519515*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*519518*/                OPC_CheckPredicate, 93, // Predicate_fp32imm0
/*519520*/                OPC_MoveParent,
/*519521*/                OPC_CheckType, MVT::f32,
/*519523*/                OPC_MoveParent,
/*519524*/                OPC_MoveParent,
/*519525*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*519527*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*519530*/                OPC_EmitMergeInputChains, 1, 3, 
/*519533*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*519536*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 10,  // Results = #11
/*519544*/                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:{ *:[iPTR] }:$src3)
/*519558*/              /*Scope*/ 68, /*->519627*/
/*519559*/                OPC_MoveChild0,
/*519560*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*519563*/                OPC_CheckChild0Same, 0,
/*519565*/                OPC_CheckChild1Integer, 0, 
/*519567*/                OPC_MoveParent,
/*519568*/                OPC_RecordChild1, // #2 = $src2
/*519569*/                OPC_MoveChild2,
/*519570*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*519573*/                OPC_RecordMemRef,
/*519574*/                OPC_RecordNode, // #3 = 'ld' chained node
/*519575*/                OPC_CheckFoldableChainNode,
/*519576*/                OPC_RecordChild1, // #4 = $src3
/*519577*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*519579*/                OPC_CheckPredicate, 9, // Predicate_load
/*519581*/                OPC_MoveParent,
/*519582*/                OPC_MoveParent,
/*519583*/                OPC_MoveChild2,
/*519584*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*519587*/                OPC_CheckPredicate, 93, // Predicate_fp32imm0
/*519589*/                OPC_MoveParent,
/*519590*/                OPC_CheckType, MVT::f32,
/*519592*/                OPC_MoveParent,
/*519593*/                OPC_MoveParent,
/*519594*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*519596*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*519599*/                OPC_EmitMergeInputChains, 1, 3, 
/*519602*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*519605*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 10,  // Results = #11
/*519613*/                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:{ *:[iPTR] }:$src3)
/*519627*/              /*Scope*/ 68, /*->519696*/
/*519628*/                OPC_RecordChild0, // #2 = $src2
/*519629*/                OPC_MoveChild1,
/*519630*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*519633*/                OPC_RecordMemRef,
/*519634*/                OPC_RecordNode, // #3 = 'ld' chained node
/*519635*/                OPC_CheckFoldableChainNode,
/*519636*/                OPC_RecordChild1, // #4 = $src3
/*519637*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*519639*/                OPC_CheckPredicate, 9, // Predicate_load
/*519641*/                OPC_MoveParent,
/*519642*/                OPC_MoveChild2,
/*519643*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*519646*/                OPC_CheckChild0Same, 0,
/*519648*/                OPC_CheckChild1Integer, 0, 
/*519650*/                OPC_MoveParent,
/*519651*/                OPC_MoveParent,
/*519652*/                OPC_MoveChild2,
/*519653*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*519656*/                OPC_CheckPredicate, 93, // Predicate_fp32imm0
/*519658*/                OPC_MoveParent,
/*519659*/                OPC_CheckType, MVT::f32,
/*519661*/                OPC_MoveParent,
/*519662*/                OPC_MoveParent,
/*519663*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*519665*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*519668*/                OPC_EmitMergeInputChains, 1, 3, 
/*519671*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*519674*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 10,  // Results = #11
/*519682*/                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:{ *:[iPTR] }:$src3)
/*519696*/              /*Scope*/ 66, /*->519763*/
/*519697*/                OPC_MoveChild0,
/*519698*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*519701*/                OPC_RecordMemRef,
/*519702*/                OPC_RecordNode, // #2 = 'ld' chained node
/*519703*/                OPC_CheckFoldableChainNode,
/*519704*/                OPC_RecordChild1, // #3 = $src3
/*519705*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*519707*/                OPC_CheckPredicate, 9, // Predicate_load
/*519709*/                OPC_MoveParent,
/*519710*/                OPC_RecordChild1, // #4 = $src2
/*519711*/                OPC_MoveChild2,
/*519712*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*519715*/                OPC_CheckChild0Same, 0,
/*519717*/                OPC_CheckChild1Integer, 0, 
/*519719*/                OPC_MoveParent,
/*519720*/                OPC_MoveParent,
/*519721*/                OPC_MoveChild2,
/*519722*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*519725*/                OPC_CheckPredicate, 93, // Predicate_fp32imm0
/*519727*/                OPC_MoveParent,
/*519728*/                OPC_CheckType, MVT::f32,
/*519730*/                OPC_MoveParent,
/*519731*/                OPC_MoveParent,
/*519732*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*519734*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*519737*/                OPC_EmitMergeInputChains1_2,
/*519738*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*519741*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 4, 10,  // Results = #11
/*519749*/                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:{ *:[iPTR] }:$src3)
/*519763*/              0, /*End of Scope*/
/*519764*/            /*SwitchOpcode*/ 59|128,1/*187*/, TARGET_VAL(ISD::FADD),// ->519955
/*519768*/              OPC_MoveChild0,
/*519769*/              OPC_SwitchOpcode /*2 cases */, 89, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->519862
/*519773*/                OPC_CheckChild0Same, 0,
/*519775*/                OPC_CheckChild1Integer, 0, 
/*519777*/                OPC_MoveParent,
/*519778*/                OPC_MoveChild1,
/*519779*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*519782*/                OPC_RecordMemRef,
/*519783*/                OPC_RecordNode, // #2 = 'ld' chained node
/*519784*/                OPC_CheckFoldableChainNode,
/*519785*/                OPC_RecordChild1, // #3 = $src2
/*519786*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*519788*/                OPC_CheckPredicate, 9, // Predicate_load
/*519790*/                OPC_MoveParent,
/*519791*/                OPC_MoveParent,
/*519792*/                OPC_Scope, 30, /*->519824*/ // 2 children in Scope
/*519794*/                  OPC_MoveChild2,
/*519795*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*519798*/                  OPC_CheckPredicate, 93, // Predicate_fp32imm0
/*519800*/                  OPC_MoveParent,
/*519801*/                  OPC_CheckType, MVT::f32,
/*519803*/                  OPC_MoveParent,
/*519804*/                  OPC_MoveParent,
/*519805*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*519807*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*519810*/                  OPC_EmitMergeInputChains1_2,
/*519811*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSSZrm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                            // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (fadd:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (fpimm:{ *:[f32] })<<P:Predicate_fp32imm0>>))) - Complexity = 46
                            // Dst: (VADDSSZrm_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, v4f32:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*519824*/                /*Scope*/ 36, /*->519861*/
/*519825*/                  OPC_RecordChild2, // #4 = $src0
/*519826*/                  OPC_CheckType, MVT::f32,
/*519828*/                  OPC_MoveParent,
/*519829*/                  OPC_MoveParent,
/*519830*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*519832*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*519835*/                  OPC_EmitMergeInputChains1_2,
/*519836*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*519839*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 4, 10,  // Results = #11
/*519847*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSSZrm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 11, 1, 0, 5, 6, 7, 8, 9, 
                            // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (fadd:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), FR32X:{ *:[f32] }:$src0))) - Complexity = 42
                            // Dst: (VADDSSZrm_Intk:{ *:[v4f32] } (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src0, VR128X:{ *:[i32] }), VK1WM:{ *:[v1i1] }:$mask, v4f32:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*519861*/                0, /*End of Scope*/
/*519862*/              /*SwitchOpcode*/ 89, TARGET_VAL(ISD::LOAD),// ->519954
/*519865*/                OPC_RecordMemRef,
/*519866*/                OPC_RecordNode, // #2 = 'ld' chained node
/*519867*/                OPC_CheckFoldableChainNode,
/*519868*/                OPC_RecordChild1, // #3 = $src2
/*519869*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*519871*/                OPC_CheckPredicate, 9, // Predicate_load
/*519873*/                OPC_MoveParent,
/*519874*/                OPC_MoveChild1,
/*519875*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*519878*/                OPC_CheckChild0Same, 0,
/*519880*/                OPC_CheckChild1Integer, 0, 
/*519882*/                OPC_MoveParent,
/*519883*/                OPC_MoveParent,
/*519884*/                OPC_Scope, 30, /*->519916*/ // 2 children in Scope
/*519886*/                  OPC_MoveChild2,
/*519887*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*519890*/                  OPC_CheckPredicate, 93, // Predicate_fp32imm0
/*519892*/                  OPC_MoveParent,
/*519893*/                  OPC_CheckType, MVT::f32,
/*519895*/                  OPC_MoveParent,
/*519896*/                  OPC_MoveParent,
/*519897*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*519899*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*519902*/                  OPC_EmitMergeInputChains1_2,
/*519903*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSSZrm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                            // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (fadd:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })), (fpimm:{ *:[f32] })<<P:Predicate_fp32imm0>>))) - Complexity = 46
                            // Dst: (VADDSSZrm_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, v4f32:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*519916*/                /*Scope*/ 36, /*->519953*/
/*519917*/                  OPC_RecordChild2, // #4 = $src0
/*519918*/                  OPC_CheckType, MVT::f32,
/*519920*/                  OPC_MoveParent,
/*519921*/                  OPC_MoveParent,
/*519922*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*519924*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*519927*/                  OPC_EmitMergeInputChains1_2,
/*519928*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*519931*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 4, 10,  // Results = #11
/*519939*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSSZrm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 11, 1, 0, 5, 6, 7, 8, 9, 
                            // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (fadd:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })), FR32X:{ *:[f32] }:$src0))) - Complexity = 42
                            // Dst: (VADDSSZrm_Intk:{ *:[v4f32] } (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src0, VR128X:{ *:[i32] }), VK1WM:{ *:[v1i1] }:$mask, v4f32:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*519953*/                0, /*End of Scope*/
/*519954*/              0, // EndSwitchOpcode
/*519955*/            /*SwitchOpcode*/ 93, TARGET_VAL(ISD::FSUB),// ->520051
/*519958*/              OPC_MoveChild0,
/*519959*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*519962*/              OPC_CheckChild0Same, 0,
/*519964*/              OPC_CheckChild1Integer, 0, 
/*519966*/              OPC_MoveParent,
/*519967*/              OPC_MoveChild1,
/*519968*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*519971*/              OPC_RecordMemRef,
/*519972*/              OPC_RecordNode, // #2 = 'ld' chained node
/*519973*/              OPC_CheckFoldableChainNode,
/*519974*/              OPC_RecordChild1, // #3 = $src2
/*519975*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*519977*/              OPC_CheckPredicate, 9, // Predicate_load
/*519979*/              OPC_MoveParent,
/*519980*/              OPC_MoveParent,
/*519981*/              OPC_Scope, 30, /*->520013*/ // 2 children in Scope
/*519983*/                OPC_MoveChild2,
/*519984*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*519987*/                OPC_CheckPredicate, 93, // Predicate_fp32imm0
/*519989*/                OPC_MoveParent,
/*519990*/                OPC_CheckType, MVT::f32,
/*519992*/                OPC_MoveParent,
/*519993*/                OPC_MoveParent,
/*519994*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*519996*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*519999*/                OPC_EmitMergeInputChains1_2,
/*520000*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSSZrm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (fsub:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (fpimm:{ *:[f32] })<<P:Predicate_fp32imm0>>))) - Complexity = 46
                          // Dst: (VSUBSSZrm_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, v4f32:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*520013*/              /*Scope*/ 36, /*->520050*/
/*520014*/                OPC_RecordChild2, // #4 = $src0
/*520015*/                OPC_CheckType, MVT::f32,
/*520017*/                OPC_MoveParent,
/*520018*/                OPC_MoveParent,
/*520019*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*520021*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*520024*/                OPC_EmitMergeInputChains1_2,
/*520025*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*520028*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 4, 10,  // Results = #11
/*520036*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSSZrm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 11, 1, 0, 5, 6, 7, 8, 9, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (fsub:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), FR32X:{ *:[f32] }:$src0))) - Complexity = 42
                          // Dst: (VSUBSSZrm_Intk:{ *:[v4f32] } (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src0, VR128X:{ *:[i32] }), VK1WM:{ *:[v1i1] }:$mask, v4f32:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*520050*/              0, /*End of Scope*/
/*520051*/            /*SwitchOpcode*/ 59|128,1/*187*/, TARGET_VAL(ISD::FMUL),// ->520242
/*520055*/              OPC_MoveChild0,
/*520056*/              OPC_SwitchOpcode /*2 cases */, 89, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->520149
/*520060*/                OPC_CheckChild0Same, 0,
/*520062*/                OPC_CheckChild1Integer, 0, 
/*520064*/                OPC_MoveParent,
/*520065*/                OPC_MoveChild1,
/*520066*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*520069*/                OPC_RecordMemRef,
/*520070*/                OPC_RecordNode, // #2 = 'ld' chained node
/*520071*/                OPC_CheckFoldableChainNode,
/*520072*/                OPC_RecordChild1, // #3 = $src2
/*520073*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*520075*/                OPC_CheckPredicate, 9, // Predicate_load
/*520077*/                OPC_MoveParent,
/*520078*/                OPC_MoveParent,
/*520079*/                OPC_Scope, 30, /*->520111*/ // 2 children in Scope
/*520081*/                  OPC_MoveChild2,
/*520082*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*520085*/                  OPC_CheckPredicate, 93, // Predicate_fp32imm0
/*520087*/                  OPC_MoveParent,
/*520088*/                  OPC_CheckType, MVT::f32,
/*520090*/                  OPC_MoveParent,
/*520091*/                  OPC_MoveParent,
/*520092*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*520094*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*520097*/                  OPC_EmitMergeInputChains1_2,
/*520098*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSSZrm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                            // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (fmul:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (fpimm:{ *:[f32] })<<P:Predicate_fp32imm0>>))) - Complexity = 46
                            // Dst: (VMULSSZrm_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, v4f32:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*520111*/                /*Scope*/ 36, /*->520148*/
/*520112*/                  OPC_RecordChild2, // #4 = $src0
/*520113*/                  OPC_CheckType, MVT::f32,
/*520115*/                  OPC_MoveParent,
/*520116*/                  OPC_MoveParent,
/*520117*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*520119*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*520122*/                  OPC_EmitMergeInputChains1_2,
/*520123*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*520126*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 4, 10,  // Results = #11
/*520134*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSSZrm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 11, 1, 0, 5, 6, 7, 8, 9, 
                            // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (fmul:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), FR32X:{ *:[f32] }:$src0))) - Complexity = 42
                            // Dst: (VMULSSZrm_Intk:{ *:[v4f32] } (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src0, VR128X:{ *:[i32] }), VK1WM:{ *:[v1i1] }:$mask, v4f32:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*520148*/                0, /*End of Scope*/
/*520149*/              /*SwitchOpcode*/ 89, TARGET_VAL(ISD::LOAD),// ->520241
/*520152*/                OPC_RecordMemRef,
/*520153*/                OPC_RecordNode, // #2 = 'ld' chained node
/*520154*/                OPC_CheckFoldableChainNode,
/*520155*/                OPC_RecordChild1, // #3 = $src2
/*520156*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*520158*/                OPC_CheckPredicate, 9, // Predicate_load
/*520160*/                OPC_MoveParent,
/*520161*/                OPC_MoveChild1,
/*520162*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*520165*/                OPC_CheckChild0Same, 0,
/*520167*/                OPC_CheckChild1Integer, 0, 
/*520169*/                OPC_MoveParent,
/*520170*/                OPC_MoveParent,
/*520171*/                OPC_Scope, 30, /*->520203*/ // 2 children in Scope
/*520173*/                  OPC_MoveChild2,
/*520174*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*520177*/                  OPC_CheckPredicate, 93, // Predicate_fp32imm0
/*520179*/                  OPC_MoveParent,
/*520180*/                  OPC_CheckType, MVT::f32,
/*520182*/                  OPC_MoveParent,
/*520183*/                  OPC_MoveParent,
/*520184*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*520186*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*520189*/                  OPC_EmitMergeInputChains1_2,
/*520190*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSSZrm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                            // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (fmul:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })), (fpimm:{ *:[f32] })<<P:Predicate_fp32imm0>>))) - Complexity = 46
                            // Dst: (VMULSSZrm_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, v4f32:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*520203*/                /*Scope*/ 36, /*->520240*/
/*520204*/                  OPC_RecordChild2, // #4 = $src0
/*520205*/                  OPC_CheckType, MVT::f32,
/*520207*/                  OPC_MoveParent,
/*520208*/                  OPC_MoveParent,
/*520209*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*520211*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*520214*/                  OPC_EmitMergeInputChains1_2,
/*520215*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*520218*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 4, 10,  // Results = #11
/*520226*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSSZrm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v4f32, 8/*#Ops*/, 11, 1, 0, 5, 6, 7, 8, 9, 
                            // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (fmul:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] })), FR32X:{ *:[f32] }:$src0))) - Complexity = 42
                            // Dst: (VMULSSZrm_Intk:{ *:[v4f32] } (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src0, VR128X:{ *:[i32] }), VK1WM:{ *:[v1i1] }:$mask, v4f32:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*520240*/                0, /*End of Scope*/
/*520241*/              0, // EndSwitchOpcode
/*520242*/            /*SwitchOpcode*/ 93, TARGET_VAL(ISD::FDIV),// ->520338
/*520245*/              OPC_MoveChild0,
/*520246*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*520249*/              OPC_CheckChild0Same, 0,
/*520251*/              OPC_CheckChild1Integer, 0, 
/*520253*/              OPC_MoveParent,
/*520254*/              OPC_MoveChild1,
/*520255*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*520258*/              OPC_RecordMemRef,
/*520259*/              OPC_RecordNode, // #2 = 'ld' chained node
/*520260*/              OPC_CheckFoldableChainNode,
/*520261*/              OPC_RecordChild1, // #3 = $src2
/*520262*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*520264*/              OPC_CheckPredicate, 9, // Predicate_load
/*520266*/              OPC_MoveParent,
/*520267*/              OPC_MoveParent,
/*520268*/              OPC_Scope, 30, /*->520300*/ // 2 children in Scope
/*520270*/                OPC_MoveChild2,
/*520271*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*520274*/                OPC_CheckPredicate, 93, // Predicate_fp32imm0
/*520276*/                OPC_MoveParent,
/*520277*/                OPC_CheckType, MVT::f32,
/*520279*/                OPC_MoveParent,
/*520280*/                OPC_MoveParent,
/*520281*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*520283*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*520286*/                OPC_EmitMergeInputChains1_2,
/*520287*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSSZrm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (fdiv:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (fpimm:{ *:[f32] })<<P:Predicate_fp32imm0>>))) - Complexity = 46
                          // Dst: (VDIVSSZrm_Intkz:{ *:[v4f32] } VK1WM:{ *:[v1i1] }:$mask, v4f32:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*520300*/              /*Scope*/ 36, /*->520337*/
/*520301*/                OPC_RecordChild2, // #4 = $src0
/*520302*/                OPC_CheckType, MVT::f32,
/*520304*/                OPC_MoveParent,
/*520305*/                OPC_MoveParent,
/*520306*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*520308*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*520311*/                OPC_EmitMergeInputChains1_2,
/*520312*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*520315*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 4, 10,  // Results = #11
/*520323*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSSZrm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 8/*#Ops*/, 11, 1, 0, 5, 6, 7, 8, 9, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (fdiv:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), FR32X:{ *:[f32] }:$src0))) - Complexity = 42
                          // Dst: (VDIVSSZrm_Intk:{ *:[v4f32] } (COPY_TO_REGCLASS:{ *:[v4f32] } FR32X:{ *:[f32] }:$src0, VR128X:{ *:[i32] }), VK1WM:{ *:[v1i1] }:$mask, v4f32:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*520337*/              0, /*End of Scope*/
/*520338*/            0, // EndSwitchOpcode
/*520339*/          /*Scope*/ 67, /*->520407*/
/*520340*/            OPC_MoveChild0,
/*520341*/            OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*520344*/            OPC_MoveChild0,
/*520345*/            OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE),
/*520348*/            OPC_RecordChild0, // #1 = $mask
/*520349*/            OPC_CheckChild0Type, MVT::i32,
/*520351*/            OPC_CheckType, MVT::i8,
/*520353*/            OPC_MoveParent,
/*520354*/            OPC_MoveParent,
/*520355*/            OPC_MoveChild1,
/*520356*/            OPC_CheckOpcode, TARGET_VAL(ISD::FSQRT),
/*520359*/            OPC_MoveChild0,
/*520360*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*520363*/            OPC_RecordChild0, // #2 = $src2
/*520364*/            OPC_CheckChild0Type, MVT::v4f32,
/*520366*/            OPC_CheckChild1Integer, 0, 
/*520368*/            OPC_MoveParent,
/*520369*/            OPC_MoveParent,
/*520370*/            OPC_MoveChild2,
/*520371*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*520374*/            OPC_RecordChild0, // #3 = $dst
/*520375*/            OPC_CheckChild0Type, MVT::v4f32,
/*520377*/            OPC_CheckChild1Integer, 0, 
/*520379*/            OPC_MoveParent,
/*520380*/            OPC_CheckType, MVT::f32,
/*520382*/            OPC_MoveParent,
/*520383*/            OPC_MoveParent,
/*520384*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*520386*/            OPC_EmitInteger, MVT::i32, X86::VK1WMRegClassID,
/*520389*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v1i1, 2/*#Ops*/, 1, 4,  // Results = #5
/*520397*/            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)
/*520407*/          /*Scope*/ 76|128,6/*844*/, /*->521253*/
/*520409*/            OPC_RecordChild0, // #1 = $mask
/*520410*/            OPC_MoveChild1,
/*520411*/            OPC_SwitchOpcode /*4 cases */, 78|128,1/*206*/, TARGET_VAL(X86ISD::FMADD_RND),// ->520622
/*520416*/              OPC_Scope, 7|128,1/*135*/, /*->520554*/ // 2 children in Scope
/*520419*/                OPC_RecordChild0, // #2 = $src2
/*520420*/                OPC_Scope, 65, /*->520487*/ // 2 children in Scope
/*520422*/                  OPC_MoveChild1,
/*520423*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*520426*/                  OPC_CheckChild0Same, 0,
/*520428*/                  OPC_CheckChild1Integer, 0, 
/*520430*/                  OPC_MoveParent,
/*520431*/                  OPC_RecordChild2, // #3 = $src3
/*520432*/                  OPC_RecordChild3, // #4 = $rc
/*520433*/                  OPC_MoveChild3,
/*520434*/                  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*520437*/                  OPC_MoveParent,
/*520438*/                  OPC_MoveParent,
/*520439*/                  OPC_MoveChild2,
/*520440*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*520443*/                  OPC_CheckChild0Same, 0,
/*520445*/                  OPC_CheckChild1Integer, 0, 
/*520447*/                  OPC_MoveParent,
/*520448*/                  OPC_CheckType, MVT::f32,
/*520450*/                  OPC_MoveParent,
/*520451*/                  OPC_MoveParent,
/*520452*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*520454*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*520457*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*520465*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*520468*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 7,  // Results = #8
/*520476*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SSZrb_Intk), 0,
                                MVT::v4f32, 5/*#Ops*/, 0, 1, 6, 8, 4, 
                            // 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, (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*520487*/                /*Scope*/ 65, /*->520553*/
/*520488*/                  OPC_RecordChild1, // #3 = $src3
/*520489*/                  OPC_MoveChild2,
/*520490*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*520493*/                  OPC_CheckChild0Same, 0,
/*520495*/                  OPC_CheckChild1Integer, 0, 
/*520497*/                  OPC_MoveParent,
/*520498*/                  OPC_RecordChild3, // #4 = $rc
/*520499*/                  OPC_MoveChild3,
/*520500*/                  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*520503*/                  OPC_MoveParent,
/*520504*/                  OPC_MoveParent,
/*520505*/                  OPC_MoveChild2,
/*520506*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*520509*/                  OPC_CheckChild0Same, 0,
/*520511*/                  OPC_CheckChild1Integer, 0, 
/*520513*/                  OPC_MoveParent,
/*520514*/                  OPC_CheckType, MVT::f32,
/*520516*/                  OPC_MoveParent,
/*520517*/                  OPC_MoveParent,
/*520518*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*520520*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*520523*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*520531*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*520534*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 7,  // Results = #8
/*520542*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SSZrb_Intk), 0,
                                MVT::v4f32, 5/*#Ops*/, 0, 1, 6, 8, 4, 
                            // 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] }), (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*520553*/                0, /*End of Scope*/
/*520554*/              /*Scope*/ 66, /*->520621*/
/*520555*/                OPC_MoveChild0,
/*520556*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*520559*/                OPC_CheckChild0Same, 0,
/*520561*/                OPC_CheckChild1Integer, 0, 
/*520563*/                OPC_MoveParent,
/*520564*/                OPC_RecordChild1, // #2 = $src2
/*520565*/                OPC_RecordChild2, // #3 = $src3
/*520566*/                OPC_RecordChild3, // #4 = $rc
/*520567*/                OPC_MoveChild3,
/*520568*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*520571*/                OPC_MoveParent,
/*520572*/                OPC_MoveParent,
/*520573*/                OPC_MoveChild2,
/*520574*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*520577*/                OPC_CheckChild0Same, 0,
/*520579*/                OPC_CheckChild1Integer, 0, 
/*520581*/                OPC_MoveParent,
/*520582*/                OPC_CheckType, MVT::f32,
/*520584*/                OPC_MoveParent,
/*520585*/                OPC_MoveParent,
/*520586*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*520588*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*520591*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*520599*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*520602*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 7,  // Results = #8
/*520610*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SSZrb_Intk), 0,
                              MVT::v4f32, 5/*#Ops*/, 0, 1, 6, 8, 4, 
                          // 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, (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*520621*/              0, /*End of Scope*/
/*520622*/            /*SwitchOpcode*/ 78|128,1/*206*/, TARGET_VAL(X86ISD::FMSUB_RND),// ->520832
/*520626*/              OPC_Scope, 7|128,1/*135*/, /*->520764*/ // 2 children in Scope
/*520629*/                OPC_RecordChild0, // #2 = $src2
/*520630*/                OPC_Scope, 65, /*->520697*/ // 2 children in Scope
/*520632*/                  OPC_MoveChild1,
/*520633*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*520636*/                  OPC_CheckChild0Same, 0,
/*520638*/                  OPC_CheckChild1Integer, 0, 
/*520640*/                  OPC_MoveParent,
/*520641*/                  OPC_RecordChild2, // #3 = $src3
/*520642*/                  OPC_RecordChild3, // #4 = $rc
/*520643*/                  OPC_MoveChild3,
/*520644*/                  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*520647*/                  OPC_MoveParent,
/*520648*/                  OPC_MoveParent,
/*520649*/                  OPC_MoveChild2,
/*520650*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*520653*/                  OPC_CheckChild0Same, 0,
/*520655*/                  OPC_CheckChild1Integer, 0, 
/*520657*/                  OPC_MoveParent,
/*520658*/                  OPC_CheckType, MVT::f32,
/*520660*/                  OPC_MoveParent,
/*520661*/                  OPC_MoveParent,
/*520662*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*520664*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*520667*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*520675*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*520678*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 7,  // Results = #8
/*520686*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213SSZrb_Intk), 0,
                                MVT::v4f32, 5/*#Ops*/, 0, 1, 6, 8, 4, 
                            // 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, (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*520697*/                /*Scope*/ 65, /*->520763*/
/*520698*/                  OPC_RecordChild1, // #3 = $src3
/*520699*/                  OPC_MoveChild2,
/*520700*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*520703*/                  OPC_CheckChild0Same, 0,
/*520705*/                  OPC_CheckChild1Integer, 0, 
/*520707*/                  OPC_MoveParent,
/*520708*/                  OPC_RecordChild3, // #4 = $rc
/*520709*/                  OPC_MoveChild3,
/*520710*/                  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*520713*/                  OPC_MoveParent,
/*520714*/                  OPC_MoveParent,
/*520715*/                  OPC_MoveChild2,
/*520716*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*520719*/                  OPC_CheckChild0Same, 0,
/*520721*/                  OPC_CheckChild1Integer, 0, 
/*520723*/                  OPC_MoveParent,
/*520724*/                  OPC_CheckType, MVT::f32,
/*520726*/                  OPC_MoveParent,
/*520727*/                  OPC_MoveParent,
/*520728*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*520730*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*520733*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*520741*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*520744*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 7,  // Results = #8
/*520752*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231SSZrb_Intk), 0,
                                MVT::v4f32, 5/*#Ops*/, 0, 1, 6, 8, 4, 
                            // 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] }), (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*520763*/                0, /*End of Scope*/
/*520764*/              /*Scope*/ 66, /*->520831*/
/*520765*/                OPC_MoveChild0,
/*520766*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*520769*/                OPC_CheckChild0Same, 0,
/*520771*/                OPC_CheckChild1Integer, 0, 
/*520773*/                OPC_MoveParent,
/*520774*/                OPC_RecordChild1, // #2 = $src2
/*520775*/                OPC_RecordChild2, // #3 = $src3
/*520776*/                OPC_RecordChild3, // #4 = $rc
/*520777*/                OPC_MoveChild3,
/*520778*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*520781*/                OPC_MoveParent,
/*520782*/                OPC_MoveParent,
/*520783*/                OPC_MoveChild2,
/*520784*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*520787*/                OPC_CheckChild0Same, 0,
/*520789*/                OPC_CheckChild1Integer, 0, 
/*520791*/                OPC_MoveParent,
/*520792*/                OPC_CheckType, MVT::f32,
/*520794*/                OPC_MoveParent,
/*520795*/                OPC_MoveParent,
/*520796*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*520798*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*520801*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*520809*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*520812*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 7,  // Results = #8
/*520820*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213SSZrb_Intk), 0,
                              MVT::v4f32, 5/*#Ops*/, 0, 1, 6, 8, 4, 
                          // 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, (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*520831*/              0, /*End of Scope*/
/*520832*/            /*SwitchOpcode*/ 78|128,1/*206*/, TARGET_VAL(X86ISD::FNMADD_RND),// ->521042
/*520836*/              OPC_Scope, 7|128,1/*135*/, /*->520974*/ // 2 children in Scope
/*520839*/                OPC_RecordChild0, // #2 = $src2
/*520840*/                OPC_Scope, 65, /*->520907*/ // 2 children in Scope
/*520842*/                  OPC_MoveChild1,
/*520843*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*520846*/                  OPC_CheckChild0Same, 0,
/*520848*/                  OPC_CheckChild1Integer, 0, 
/*520850*/                  OPC_MoveParent,
/*520851*/                  OPC_RecordChild2, // #3 = $src3
/*520852*/                  OPC_RecordChild3, // #4 = $rc
/*520853*/                  OPC_MoveChild3,
/*520854*/                  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*520857*/                  OPC_MoveParent,
/*520858*/                  OPC_MoveParent,
/*520859*/                  OPC_MoveChild2,
/*520860*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*520863*/                  OPC_CheckChild0Same, 0,
/*520865*/                  OPC_CheckChild1Integer, 0, 
/*520867*/                  OPC_MoveParent,
/*520868*/                  OPC_CheckType, MVT::f32,
/*520870*/                  OPC_MoveParent,
/*520871*/                  OPC_MoveParent,
/*520872*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*520874*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*520877*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*520885*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*520888*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 7,  // Results = #8
/*520896*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213SSZrb_Intk), 0,
                                MVT::v4f32, 5/*#Ops*/, 0, 1, 6, 8, 4, 
                            // 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, (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*520907*/                /*Scope*/ 65, /*->520973*/
/*520908*/                  OPC_RecordChild1, // #3 = $src3
/*520909*/                  OPC_MoveChild2,
/*520910*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*520913*/                  OPC_CheckChild0Same, 0,
/*520915*/                  OPC_CheckChild1Integer, 0, 
/*520917*/                  OPC_MoveParent,
/*520918*/                  OPC_RecordChild3, // #4 = $rc
/*520919*/                  OPC_MoveChild3,
/*520920*/                  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*520923*/                  OPC_MoveParent,
/*520924*/                  OPC_MoveParent,
/*520925*/                  OPC_MoveChild2,
/*520926*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*520929*/                  OPC_CheckChild0Same, 0,
/*520931*/                  OPC_CheckChild1Integer, 0, 
/*520933*/                  OPC_MoveParent,
/*520934*/                  OPC_CheckType, MVT::f32,
/*520936*/                  OPC_MoveParent,
/*520937*/                  OPC_MoveParent,
/*520938*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*520940*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*520943*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*520951*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*520954*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 7,  // Results = #8
/*520962*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231SSZrb_Intk), 0,
                                MVT::v4f32, 5/*#Ops*/, 0, 1, 6, 8, 4, 
                            // 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] }), (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*520973*/                0, /*End of Scope*/
/*520974*/              /*Scope*/ 66, /*->521041*/
/*520975*/                OPC_MoveChild0,
/*520976*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*520979*/                OPC_CheckChild0Same, 0,
/*520981*/                OPC_CheckChild1Integer, 0, 
/*520983*/                OPC_MoveParent,
/*520984*/                OPC_RecordChild1, // #2 = $src2
/*520985*/                OPC_RecordChild2, // #3 = $src3
/*520986*/                OPC_RecordChild3, // #4 = $rc
/*520987*/                OPC_MoveChild3,
/*520988*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*520991*/                OPC_MoveParent,
/*520992*/                OPC_MoveParent,
/*520993*/                OPC_MoveChild2,
/*520994*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*520997*/                OPC_CheckChild0Same, 0,
/*520999*/                OPC_CheckChild1Integer, 0, 
/*521001*/                OPC_MoveParent,
/*521002*/                OPC_CheckType, MVT::f32,
/*521004*/                OPC_MoveParent,
/*521005*/                OPC_MoveParent,
/*521006*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*521008*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*521011*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*521019*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*521022*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 7,  // Results = #8
/*521030*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213SSZrb_Intk), 0,
                              MVT::v4f32, 5/*#Ops*/, 0, 1, 6, 8, 4, 
                          // 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, (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*521041*/              0, /*End of Scope*/
/*521042*/            /*SwitchOpcode*/ 78|128,1/*206*/, TARGET_VAL(X86ISD::FNMSUB_RND),// ->521252
/*521046*/              OPC_Scope, 7|128,1/*135*/, /*->521184*/ // 2 children in Scope
/*521049*/                OPC_RecordChild0, // #2 = $src2
/*521050*/                OPC_Scope, 65, /*->521117*/ // 2 children in Scope
/*521052*/                  OPC_MoveChild1,
/*521053*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*521056*/                  OPC_CheckChild0Same, 0,
/*521058*/                  OPC_CheckChild1Integer, 0, 
/*521060*/                  OPC_MoveParent,
/*521061*/                  OPC_RecordChild2, // #3 = $src3
/*521062*/                  OPC_RecordChild3, // #4 = $rc
/*521063*/                  OPC_MoveChild3,
/*521064*/                  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*521067*/                  OPC_MoveParent,
/*521068*/                  OPC_MoveParent,
/*521069*/                  OPC_MoveChild2,
/*521070*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*521073*/                  OPC_CheckChild0Same, 0,
/*521075*/                  OPC_CheckChild1Integer, 0, 
/*521077*/                  OPC_MoveParent,
/*521078*/                  OPC_CheckType, MVT::f32,
/*521080*/                  OPC_MoveParent,
/*521081*/                  OPC_MoveParent,
/*521082*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*521084*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*521087*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*521095*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*521098*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 7,  // Results = #8
/*521106*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213SSZrb_Intk), 0,
                                MVT::v4f32, 5/*#Ops*/, 0, 1, 6, 8, 4, 
                            // 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, (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*521117*/                /*Scope*/ 65, /*->521183*/
/*521118*/                  OPC_RecordChild1, // #3 = $src3
/*521119*/                  OPC_MoveChild2,
/*521120*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*521123*/                  OPC_CheckChild0Same, 0,
/*521125*/                  OPC_CheckChild1Integer, 0, 
/*521127*/                  OPC_MoveParent,
/*521128*/                  OPC_RecordChild3, // #4 = $rc
/*521129*/                  OPC_MoveChild3,
/*521130*/                  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*521133*/                  OPC_MoveParent,
/*521134*/                  OPC_MoveParent,
/*521135*/                  OPC_MoveChild2,
/*521136*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*521139*/                  OPC_CheckChild0Same, 0,
/*521141*/                  OPC_CheckChild1Integer, 0, 
/*521143*/                  OPC_MoveParent,
/*521144*/                  OPC_CheckType, MVT::f32,
/*521146*/                  OPC_MoveParent,
/*521147*/                  OPC_MoveParent,
/*521148*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*521150*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*521153*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*521161*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*521164*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 7,  // Results = #8
/*521172*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231SSZrb_Intk), 0,
                                MVT::v4f32, 5/*#Ops*/, 0, 1, 6, 8, 4, 
                            // 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] }), (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*521183*/                0, /*End of Scope*/
/*521184*/              /*Scope*/ 66, /*->521251*/
/*521185*/                OPC_MoveChild0,
/*521186*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*521189*/                OPC_CheckChild0Same, 0,
/*521191*/                OPC_CheckChild1Integer, 0, 
/*521193*/                OPC_MoveParent,
/*521194*/                OPC_RecordChild1, // #2 = $src2
/*521195*/                OPC_RecordChild2, // #3 = $src3
/*521196*/                OPC_RecordChild3, // #4 = $rc
/*521197*/                OPC_MoveChild3,
/*521198*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*521201*/                OPC_MoveParent,
/*521202*/                OPC_MoveParent,
/*521203*/                OPC_MoveChild2,
/*521204*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*521207*/                OPC_CheckChild0Same, 0,
/*521209*/                OPC_CheckChild1Integer, 0, 
/*521211*/                OPC_MoveParent,
/*521212*/                OPC_CheckType, MVT::f32,
/*521214*/                OPC_MoveParent,
/*521215*/                OPC_MoveParent,
/*521216*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*521218*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*521221*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*521229*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*521232*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 7,  // Results = #8
/*521240*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213SSZrb_Intk), 0,
                              MVT::v4f32, 5/*#Ops*/, 0, 1, 6, 8, 4, 
                          // 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, (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*521251*/              0, /*End of Scope*/
/*521252*/            0, // EndSwitchOpcode
/*521253*/          /*Scope*/ 63, /*->521317*/
/*521254*/            OPC_MoveChild0,
/*521255*/            OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*521258*/            OPC_MoveChild0,
/*521259*/            OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE),
/*521262*/            OPC_RecordChild0, // #1 = $mask
/*521263*/            OPC_CheckChild0Type, MVT::i32,
/*521265*/            OPC_CheckType, MVT::i8,
/*521267*/            OPC_MoveParent,
/*521268*/            OPC_MoveParent,
/*521269*/            OPC_MoveChild1,
/*521270*/            OPC_CheckOpcode, TARGET_VAL(ISD::FSQRT),
/*521273*/            OPC_MoveChild0,
/*521274*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*521277*/            OPC_RecordChild0, // #2 = $src2
/*521278*/            OPC_CheckChild0Type, MVT::v4f32,
/*521280*/            OPC_CheckChild1Integer, 0, 
/*521282*/            OPC_MoveParent,
/*521283*/            OPC_MoveParent,
/*521284*/            OPC_MoveChild2,
/*521285*/            OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*521288*/            OPC_CheckPredicate, 93, // Predicate_fp32imm0
/*521290*/            OPC_MoveParent,
/*521291*/            OPC_CheckType, MVT::f32,
/*521293*/            OPC_MoveParent,
/*521294*/            OPC_MoveParent,
/*521295*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*521297*/            OPC_EmitInteger, MVT::i32, X86::VK1WMRegClassID,
/*521300*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v1i1, 2/*#Ops*/, 1, 3,  // Results = #4
/*521308*/            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)
/*521317*/          /*Scope*/ 101|128,13/*1765*/, /*->523084*/
/*521319*/            OPC_RecordChild0, // #1 = $mask
/*521320*/            OPC_MoveChild1,
/*521321*/            OPC_SwitchOpcode /*9 cases */, 61|128,1/*189*/, TARGET_VAL(ISD::STRICT_FMA),// ->521515
/*521326*/              OPC_RecordNode, // #2 = 'X86strict_Fmadd' chained node
/*521327*/              OPC_CheckFoldableChainNode,
/*521328*/              OPC_Scope, 123, /*->521453*/ // 2 children in Scope
/*521330*/                OPC_RecordChild1, // #3 = $src2
/*521331*/                OPC_Scope, 59, /*->521392*/ // 2 children in Scope
/*521333*/                  OPC_MoveChild2,
/*521334*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*521337*/                  OPC_CheckChild0Same, 0,
/*521339*/                  OPC_CheckChild1Integer, 0, 
/*521341*/                  OPC_MoveParent,
/*521342*/                  OPC_RecordChild3, // #4 = $src3
/*521343*/                  OPC_MoveParent,
/*521344*/                  OPC_MoveChild2,
/*521345*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*521348*/                  OPC_CheckChild0Same, 0,
/*521350*/                  OPC_CheckChild1Integer, 0, 
/*521352*/                  OPC_MoveParent,
/*521353*/                  OPC_CheckType, MVT::f32,
/*521355*/                  OPC_MoveParent,
/*521356*/                  OPC_MoveParent,
/*521357*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*521359*/                  OPC_EmitMergeInputChains1_2,
/*521360*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*521363*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 5,  // Results = #6
/*521371*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*521374*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 4, 7,  // Results = #8
/*521382*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SSZr_Intk), 0|OPFL_Chain,
                                MVT::v4f32, 4/*#Ops*/, 0, 1, 6, 8, 
                            // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86strict_Fmadd:{ *:[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] }))
/*521392*/                /*Scope*/ 59, /*->521452*/
/*521393*/                  OPC_RecordChild2, // #4 = $src3
/*521394*/                  OPC_MoveChild3,
/*521395*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*521398*/                  OPC_CheckChild0Same, 0,
/*521400*/                  OPC_CheckChild1Integer, 0, 
/*521402*/                  OPC_MoveParent,
/*521403*/                  OPC_MoveParent,
/*521404*/                  OPC_MoveChild2,
/*521405*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*521408*/                  OPC_CheckChild0Same, 0,
/*521410*/                  OPC_CheckChild1Integer, 0, 
/*521412*/                  OPC_MoveParent,
/*521413*/                  OPC_CheckType, MVT::f32,
/*521415*/                  OPC_MoveParent,
/*521416*/                  OPC_MoveParent,
/*521417*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*521419*/                  OPC_EmitMergeInputChains1_2,
/*521420*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*521423*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 5,  // Results = #6
/*521431*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*521434*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 4, 7,  // Results = #8
/*521442*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SSZr_Intk), 0|OPFL_Chain,
                                MVT::v4f32, 4/*#Ops*/, 0, 1, 6, 8, 
                            // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86strict_Fmadd:{ *:[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] }))
/*521452*/                0, /*End of Scope*/
/*521453*/              /*Scope*/ 60, /*->521514*/
/*521454*/                OPC_MoveChild1,
/*521455*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*521458*/                OPC_CheckChild0Same, 0,
/*521460*/                OPC_CheckChild1Integer, 0, 
/*521462*/                OPC_MoveParent,
/*521463*/                OPC_RecordChild2, // #3 = $src2
/*521464*/                OPC_RecordChild3, // #4 = $src3
/*521465*/                OPC_MoveParent,
/*521466*/                OPC_MoveChild2,
/*521467*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*521470*/                OPC_CheckChild0Same, 0,
/*521472*/                OPC_CheckChild1Integer, 0, 
/*521474*/                OPC_MoveParent,
/*521475*/                OPC_CheckType, MVT::f32,
/*521477*/                OPC_MoveParent,
/*521478*/                OPC_MoveParent,
/*521479*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*521481*/                OPC_EmitMergeInputChains1_2,
/*521482*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*521485*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 5,  // Results = #6
/*521493*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*521496*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 4, 7,  // Results = #8
/*521504*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SSZr_Intk), 0|OPFL_Chain,
                              MVT::v4f32, 4/*#Ops*/, 0, 1, 6, 8, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86strict_Fmadd:{ *:[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] }))
/*521514*/              0, /*End of Scope*/
/*521515*/            /*SwitchOpcode*/ 56|128,1/*184*/, TARGET_VAL(ISD::FMA),// ->521703
/*521519*/              OPC_Scope, 121, /*->521642*/ // 2 children in Scope
/*521521*/                OPC_RecordChild0, // #2 = $src2
/*521522*/                OPC_Scope, 58, /*->521582*/ // 2 children in Scope
/*521524*/                  OPC_MoveChild1,
/*521525*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*521528*/                  OPC_CheckChild0Same, 0,
/*521530*/                  OPC_CheckChild1Integer, 0, 
/*521532*/                  OPC_MoveParent,
/*521533*/                  OPC_RecordChild2, // #3 = $src3
/*521534*/                  OPC_MoveParent,
/*521535*/                  OPC_MoveChild2,
/*521536*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*521539*/                  OPC_CheckChild0Same, 0,
/*521541*/                  OPC_CheckChild1Integer, 0, 
/*521543*/                  OPC_MoveParent,
/*521544*/                  OPC_CheckType, MVT::f32,
/*521546*/                  OPC_MoveParent,
/*521547*/                  OPC_MoveParent,
/*521548*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*521550*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*521553*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 4,  // Results = #5
/*521561*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*521564*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 6,  // Results = #7
/*521572*/                  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] }))
/*521582*/                /*Scope*/ 58, /*->521641*/
/*521583*/                  OPC_RecordChild1, // #3 = $src3
/*521584*/                  OPC_MoveChild2,
/*521585*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*521588*/                  OPC_CheckChild0Same, 0,
/*521590*/                  OPC_CheckChild1Integer, 0, 
/*521592*/                  OPC_MoveParent,
/*521593*/                  OPC_MoveParent,
/*521594*/                  OPC_MoveChild2,
/*521595*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*521598*/                  OPC_CheckChild0Same, 0,
/*521600*/                  OPC_CheckChild1Integer, 0, 
/*521602*/                  OPC_MoveParent,
/*521603*/                  OPC_CheckType, MVT::f32,
/*521605*/                  OPC_MoveParent,
/*521606*/                  OPC_MoveParent,
/*521607*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*521609*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*521612*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 4,  // Results = #5
/*521620*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*521623*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 6,  // Results = #7
/*521631*/                  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] }))
/*521641*/                0, /*End of Scope*/
/*521642*/              /*Scope*/ 59, /*->521702*/
/*521643*/                OPC_MoveChild0,
/*521644*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*521647*/                OPC_CheckChild0Same, 0,
/*521649*/                OPC_CheckChild1Integer, 0, 
/*521651*/                OPC_MoveParent,
/*521652*/                OPC_RecordChild1, // #2 = $src2
/*521653*/                OPC_RecordChild2, // #3 = $src3
/*521654*/                OPC_MoveParent,
/*521655*/                OPC_MoveChild2,
/*521656*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*521659*/                OPC_CheckChild0Same, 0,
/*521661*/                OPC_CheckChild1Integer, 0, 
/*521663*/                OPC_MoveParent,
/*521664*/                OPC_CheckType, MVT::f32,
/*521666*/                OPC_MoveParent,
/*521667*/                OPC_MoveParent,
/*521668*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*521670*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*521673*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 4,  // Results = #5
/*521681*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*521684*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 6,  // Results = #7
/*521692*/                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] }))
/*521702*/              0, /*End of Scope*/
/*521703*/            /*SwitchOpcode*/ 56|128,1/*184*/, TARGET_VAL(X86ISD::FMSUB),// ->521891
/*521707*/              OPC_Scope, 121, /*->521830*/ // 2 children in Scope
/*521709*/                OPC_RecordChild0, // #2 = $src2
/*521710*/                OPC_Scope, 58, /*->521770*/ // 2 children in Scope
/*521712*/                  OPC_MoveChild1,
/*521713*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*521716*/                  OPC_CheckChild0Same, 0,
/*521718*/                  OPC_CheckChild1Integer, 0, 
/*521720*/                  OPC_MoveParent,
/*521721*/                  OPC_RecordChild2, // #3 = $src3
/*521722*/                  OPC_MoveParent,
/*521723*/                  OPC_MoveChild2,
/*521724*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*521727*/                  OPC_CheckChild0Same, 0,
/*521729*/                  OPC_CheckChild1Integer, 0, 
/*521731*/                  OPC_MoveParent,
/*521732*/                  OPC_CheckType, MVT::f32,
/*521734*/                  OPC_MoveParent,
/*521735*/                  OPC_MoveParent,
/*521736*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*521738*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*521741*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 4,  // Results = #5
/*521749*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*521752*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 6,  // Results = #7
/*521760*/                  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] }))
/*521770*/                /*Scope*/ 58, /*->521829*/
/*521771*/                  OPC_RecordChild1, // #3 = $src3
/*521772*/                  OPC_MoveChild2,
/*521773*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*521776*/                  OPC_CheckChild0Same, 0,
/*521778*/                  OPC_CheckChild1Integer, 0, 
/*521780*/                  OPC_MoveParent,
/*521781*/                  OPC_MoveParent,
/*521782*/                  OPC_MoveChild2,
/*521783*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*521786*/                  OPC_CheckChild0Same, 0,
/*521788*/                  OPC_CheckChild1Integer, 0, 
/*521790*/                  OPC_MoveParent,
/*521791*/                  OPC_CheckType, MVT::f32,
/*521793*/                  OPC_MoveParent,
/*521794*/                  OPC_MoveParent,
/*521795*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*521797*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*521800*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 4,  // Results = #5
/*521808*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*521811*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 6,  // Results = #7
/*521819*/                  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] }))
/*521829*/                0, /*End of Scope*/
/*521830*/              /*Scope*/ 59, /*->521890*/
/*521831*/                OPC_MoveChild0,
/*521832*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*521835*/                OPC_CheckChild0Same, 0,
/*521837*/                OPC_CheckChild1Integer, 0, 
/*521839*/                OPC_MoveParent,
/*521840*/                OPC_RecordChild1, // #2 = $src2
/*521841*/                OPC_RecordChild2, // #3 = $src3
/*521842*/                OPC_MoveParent,
/*521843*/                OPC_MoveChild2,
/*521844*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*521847*/                OPC_CheckChild0Same, 0,
/*521849*/                OPC_CheckChild1Integer, 0, 
/*521851*/                OPC_MoveParent,
/*521852*/                OPC_CheckType, MVT::f32,
/*521854*/                OPC_MoveParent,
/*521855*/                OPC_MoveParent,
/*521856*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*521858*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*521861*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 4,  // Results = #5
/*521869*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*521872*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 6,  // Results = #7
/*521880*/                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] }))
/*521890*/              0, /*End of Scope*/
/*521891*/            /*SwitchOpcode*/ 56|128,1/*184*/, TARGET_VAL(X86ISD::FNMADD),// ->522079
/*521895*/              OPC_Scope, 121, /*->522018*/ // 2 children in Scope
/*521897*/                OPC_RecordChild0, // #2 = $src2
/*521898*/                OPC_Scope, 58, /*->521958*/ // 2 children in Scope
/*521900*/                  OPC_MoveChild1,
/*521901*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*521904*/                  OPC_CheckChild0Same, 0,
/*521906*/                  OPC_CheckChild1Integer, 0, 
/*521908*/                  OPC_MoveParent,
/*521909*/                  OPC_RecordChild2, // #3 = $src3
/*521910*/                  OPC_MoveParent,
/*521911*/                  OPC_MoveChild2,
/*521912*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*521915*/                  OPC_CheckChild0Same, 0,
/*521917*/                  OPC_CheckChild1Integer, 0, 
/*521919*/                  OPC_MoveParent,
/*521920*/                  OPC_CheckType, MVT::f32,
/*521922*/                  OPC_MoveParent,
/*521923*/                  OPC_MoveParent,
/*521924*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*521926*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*521929*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 4,  // Results = #5
/*521937*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*521940*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 6,  // Results = #7
/*521948*/                  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] }))
/*521958*/                /*Scope*/ 58, /*->522017*/
/*521959*/                  OPC_RecordChild1, // #3 = $src3
/*521960*/                  OPC_MoveChild2,
/*521961*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*521964*/                  OPC_CheckChild0Same, 0,
/*521966*/                  OPC_CheckChild1Integer, 0, 
/*521968*/                  OPC_MoveParent,
/*521969*/                  OPC_MoveParent,
/*521970*/                  OPC_MoveChild2,
/*521971*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*521974*/                  OPC_CheckChild0Same, 0,
/*521976*/                  OPC_CheckChild1Integer, 0, 
/*521978*/                  OPC_MoveParent,
/*521979*/                  OPC_CheckType, MVT::f32,
/*521981*/                  OPC_MoveParent,
/*521982*/                  OPC_MoveParent,
/*521983*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*521985*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*521988*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 4,  // Results = #5
/*521996*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*521999*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 6,  // Results = #7
/*522007*/                  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] }))
/*522017*/                0, /*End of Scope*/
/*522018*/              /*Scope*/ 59, /*->522078*/
/*522019*/                OPC_MoveChild0,
/*522020*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*522023*/                OPC_CheckChild0Same, 0,
/*522025*/                OPC_CheckChild1Integer, 0, 
/*522027*/                OPC_MoveParent,
/*522028*/                OPC_RecordChild1, // #2 = $src2
/*522029*/                OPC_RecordChild2, // #3 = $src3
/*522030*/                OPC_MoveParent,
/*522031*/                OPC_MoveChild2,
/*522032*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*522035*/                OPC_CheckChild0Same, 0,
/*522037*/                OPC_CheckChild1Integer, 0, 
/*522039*/                OPC_MoveParent,
/*522040*/                OPC_CheckType, MVT::f32,
/*522042*/                OPC_MoveParent,
/*522043*/                OPC_MoveParent,
/*522044*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*522046*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*522049*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 4,  // Results = #5
/*522057*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*522060*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 6,  // Results = #7
/*522068*/                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] }))
/*522078*/              0, /*End of Scope*/
/*522079*/            /*SwitchOpcode*/ 56|128,1/*184*/, TARGET_VAL(X86ISD::FNMSUB),// ->522267
/*522083*/              OPC_Scope, 121, /*->522206*/ // 2 children in Scope
/*522085*/                OPC_RecordChild0, // #2 = $src2
/*522086*/                OPC_Scope, 58, /*->522146*/ // 2 children in Scope
/*522088*/                  OPC_MoveChild1,
/*522089*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*522092*/                  OPC_CheckChild0Same, 0,
/*522094*/                  OPC_CheckChild1Integer, 0, 
/*522096*/                  OPC_MoveParent,
/*522097*/                  OPC_RecordChild2, // #3 = $src3
/*522098*/                  OPC_MoveParent,
/*522099*/                  OPC_MoveChild2,
/*522100*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*522103*/                  OPC_CheckChild0Same, 0,
/*522105*/                  OPC_CheckChild1Integer, 0, 
/*522107*/                  OPC_MoveParent,
/*522108*/                  OPC_CheckType, MVT::f32,
/*522110*/                  OPC_MoveParent,
/*522111*/                  OPC_MoveParent,
/*522112*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*522114*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*522117*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 4,  // Results = #5
/*522125*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*522128*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 6,  // Results = #7
/*522136*/                  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] }))
/*522146*/                /*Scope*/ 58, /*->522205*/
/*522147*/                  OPC_RecordChild1, // #3 = $src3
/*522148*/                  OPC_MoveChild2,
/*522149*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*522152*/                  OPC_CheckChild0Same, 0,
/*522154*/                  OPC_CheckChild1Integer, 0, 
/*522156*/                  OPC_MoveParent,
/*522157*/                  OPC_MoveParent,
/*522158*/                  OPC_MoveChild2,
/*522159*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*522162*/                  OPC_CheckChild0Same, 0,
/*522164*/                  OPC_CheckChild1Integer, 0, 
/*522166*/                  OPC_MoveParent,
/*522167*/                  OPC_CheckType, MVT::f32,
/*522169*/                  OPC_MoveParent,
/*522170*/                  OPC_MoveParent,
/*522171*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*522173*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*522176*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 4,  // Results = #5
/*522184*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*522187*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 6,  // Results = #7
/*522195*/                  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] }))
/*522205*/                0, /*End of Scope*/
/*522206*/              /*Scope*/ 59, /*->522266*/
/*522207*/                OPC_MoveChild0,
/*522208*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*522211*/                OPC_CheckChild0Same, 0,
/*522213*/                OPC_CheckChild1Integer, 0, 
/*522215*/                OPC_MoveParent,
/*522216*/                OPC_RecordChild1, // #2 = $src2
/*522217*/                OPC_RecordChild2, // #3 = $src3
/*522218*/                OPC_MoveParent,
/*522219*/                OPC_MoveChild2,
/*522220*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*522223*/                OPC_CheckChild0Same, 0,
/*522225*/                OPC_CheckChild1Integer, 0, 
/*522227*/                OPC_MoveParent,
/*522228*/                OPC_CheckType, MVT::f32,
/*522230*/                OPC_MoveParent,
/*522231*/                OPC_MoveParent,
/*522232*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*522234*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*522237*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 4,  // Results = #5
/*522245*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*522248*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 6,  // Results = #7
/*522256*/                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] }))
/*522266*/              0, /*End of Scope*/
/*522267*/            /*SwitchOpcode*/ 72|128,1/*200*/, TARGET_VAL(X86ISD::FMADD_RND),// ->522471
/*522271*/              OPC_Scope, 3|128,1/*131*/, /*->522405*/ // 2 children in Scope
/*522274*/                OPC_RecordChild0, // #2 = $src2
/*522275*/                OPC_Scope, 63, /*->522340*/ // 2 children in Scope
/*522277*/                  OPC_MoveChild1,
/*522278*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*522281*/                  OPC_CheckChild0Same, 0,
/*522283*/                  OPC_CheckChild1Integer, 0, 
/*522285*/                  OPC_MoveParent,
/*522286*/                  OPC_RecordChild2, // #3 = $src3
/*522287*/                  OPC_RecordChild3, // #4 = $rc
/*522288*/                  OPC_MoveChild3,
/*522289*/                  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*522292*/                  OPC_MoveParent,
/*522293*/                  OPC_MoveParent,
/*522294*/                  OPC_MoveChild2,
/*522295*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*522298*/                  OPC_CheckPredicate, 93, // Predicate_fp32imm0
/*522300*/                  OPC_MoveParent,
/*522301*/                  OPC_CheckType, MVT::f32,
/*522303*/                  OPC_MoveParent,
/*522304*/                  OPC_MoveParent,
/*522305*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*522307*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*522310*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*522318*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*522321*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 7,  // Results = #8
/*522329*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SSZrb_Intkz), 0,
                                MVT::v4f32, 5/*#Ops*/, 0, 1, 6, 8, 4, 
                            // 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, (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*522340*/                /*Scope*/ 63, /*->522404*/
/*522341*/                  OPC_RecordChild1, // #3 = $src3
/*522342*/                  OPC_MoveChild2,
/*522343*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*522346*/                  OPC_CheckChild0Same, 0,
/*522348*/                  OPC_CheckChild1Integer, 0, 
/*522350*/                  OPC_MoveParent,
/*522351*/                  OPC_RecordChild3, // #4 = $rc
/*522352*/                  OPC_MoveChild3,
/*522353*/                  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*522356*/                  OPC_MoveParent,
/*522357*/                  OPC_MoveParent,
/*522358*/                  OPC_MoveChild2,
/*522359*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*522362*/                  OPC_CheckPredicate, 93, // Predicate_fp32imm0
/*522364*/                  OPC_MoveParent,
/*522365*/                  OPC_CheckType, MVT::f32,
/*522367*/                  OPC_MoveParent,
/*522368*/                  OPC_MoveParent,
/*522369*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*522371*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*522374*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*522382*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*522385*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 7,  // Results = #8
/*522393*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SSZrb_Intkz), 0,
                                MVT::v4f32, 5/*#Ops*/, 0, 1, 6, 8, 4, 
                            // 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] }), (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*522404*/                0, /*End of Scope*/
/*522405*/              /*Scope*/ 64, /*->522470*/
/*522406*/                OPC_MoveChild0,
/*522407*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*522410*/                OPC_CheckChild0Same, 0,
/*522412*/                OPC_CheckChild1Integer, 0, 
/*522414*/                OPC_MoveParent,
/*522415*/                OPC_RecordChild1, // #2 = $src2
/*522416*/                OPC_RecordChild2, // #3 = $src3
/*522417*/                OPC_RecordChild3, // #4 = $rc
/*522418*/                OPC_MoveChild3,
/*522419*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*522422*/                OPC_MoveParent,
/*522423*/                OPC_MoveParent,
/*522424*/                OPC_MoveChild2,
/*522425*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*522428*/                OPC_CheckPredicate, 93, // Predicate_fp32imm0
/*522430*/                OPC_MoveParent,
/*522431*/                OPC_CheckType, MVT::f32,
/*522433*/                OPC_MoveParent,
/*522434*/                OPC_MoveParent,
/*522435*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*522437*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*522440*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*522448*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*522451*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 7,  // Results = #8
/*522459*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SSZrb_Intkz), 0,
                              MVT::v4f32, 5/*#Ops*/, 0, 1, 6, 8, 4, 
                          // 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, (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*522470*/              0, /*End of Scope*/
/*522471*/            /*SwitchOpcode*/ 72|128,1/*200*/, TARGET_VAL(X86ISD::FMSUB_RND),// ->522675
/*522475*/              OPC_Scope, 3|128,1/*131*/, /*->522609*/ // 2 children in Scope
/*522478*/                OPC_RecordChild0, // #2 = $src2
/*522479*/                OPC_Scope, 63, /*->522544*/ // 2 children in Scope
/*522481*/                  OPC_MoveChild1,
/*522482*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*522485*/                  OPC_CheckChild0Same, 0,
/*522487*/                  OPC_CheckChild1Integer, 0, 
/*522489*/                  OPC_MoveParent,
/*522490*/                  OPC_RecordChild2, // #3 = $src3
/*522491*/                  OPC_RecordChild3, // #4 = $rc
/*522492*/                  OPC_MoveChild3,
/*522493*/                  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*522496*/                  OPC_MoveParent,
/*522497*/                  OPC_MoveParent,
/*522498*/                  OPC_MoveChild2,
/*522499*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*522502*/                  OPC_CheckPredicate, 93, // Predicate_fp32imm0
/*522504*/                  OPC_MoveParent,
/*522505*/                  OPC_CheckType, MVT::f32,
/*522507*/                  OPC_MoveParent,
/*522508*/                  OPC_MoveParent,
/*522509*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*522511*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*522514*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*522522*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*522525*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 7,  // Results = #8
/*522533*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213SSZrb_Intkz), 0,
                                MVT::v4f32, 5/*#Ops*/, 0, 1, 6, 8, 4, 
                            // 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, (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*522544*/                /*Scope*/ 63, /*->522608*/
/*522545*/                  OPC_RecordChild1, // #3 = $src3
/*522546*/                  OPC_MoveChild2,
/*522547*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*522550*/                  OPC_CheckChild0Same, 0,
/*522552*/                  OPC_CheckChild1Integer, 0, 
/*522554*/                  OPC_MoveParent,
/*522555*/                  OPC_RecordChild3, // #4 = $rc
/*522556*/                  OPC_MoveChild3,
/*522557*/                  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*522560*/                  OPC_MoveParent,
/*522561*/                  OPC_MoveParent,
/*522562*/                  OPC_MoveChild2,
/*522563*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*522566*/                  OPC_CheckPredicate, 93, // Predicate_fp32imm0
/*522568*/                  OPC_MoveParent,
/*522569*/                  OPC_CheckType, MVT::f32,
/*522571*/                  OPC_MoveParent,
/*522572*/                  OPC_MoveParent,
/*522573*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*522575*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*522578*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*522586*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*522589*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 7,  // Results = #8
/*522597*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231SSZrb_Intkz), 0,
                                MVT::v4f32, 5/*#Ops*/, 0, 1, 6, 8, 4, 
                            // 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] }), (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*522608*/                0, /*End of Scope*/
/*522609*/              /*Scope*/ 64, /*->522674*/
/*522610*/                OPC_MoveChild0,
/*522611*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*522614*/                OPC_CheckChild0Same, 0,
/*522616*/                OPC_CheckChild1Integer, 0, 
/*522618*/                OPC_MoveParent,
/*522619*/                OPC_RecordChild1, // #2 = $src2
/*522620*/                OPC_RecordChild2, // #3 = $src3
/*522621*/                OPC_RecordChild3, // #4 = $rc
/*522622*/                OPC_MoveChild3,
/*522623*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*522626*/                OPC_MoveParent,
/*522627*/                OPC_MoveParent,
/*522628*/                OPC_MoveChild2,
/*522629*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*522632*/                OPC_CheckPredicate, 93, // Predicate_fp32imm0
/*522634*/                OPC_MoveParent,
/*522635*/                OPC_CheckType, MVT::f32,
/*522637*/                OPC_MoveParent,
/*522638*/                OPC_MoveParent,
/*522639*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*522641*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*522644*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*522652*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*522655*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 7,  // Results = #8
/*522663*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213SSZrb_Intkz), 0,
                              MVT::v4f32, 5/*#Ops*/, 0, 1, 6, 8, 4, 
                          // 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, (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*522674*/              0, /*End of Scope*/
/*522675*/            /*SwitchOpcode*/ 72|128,1/*200*/, TARGET_VAL(X86ISD::FNMADD_RND),// ->522879
/*522679*/              OPC_Scope, 3|128,1/*131*/, /*->522813*/ // 2 children in Scope
/*522682*/                OPC_RecordChild0, // #2 = $src2
/*522683*/                OPC_Scope, 63, /*->522748*/ // 2 children in Scope
/*522685*/                  OPC_MoveChild1,
/*522686*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*522689*/                  OPC_CheckChild0Same, 0,
/*522691*/                  OPC_CheckChild1Integer, 0, 
/*522693*/                  OPC_MoveParent,
/*522694*/                  OPC_RecordChild2, // #3 = $src3
/*522695*/                  OPC_RecordChild3, // #4 = $rc
/*522696*/                  OPC_MoveChild3,
/*522697*/                  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*522700*/                  OPC_MoveParent,
/*522701*/                  OPC_MoveParent,
/*522702*/                  OPC_MoveChild2,
/*522703*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*522706*/                  OPC_CheckPredicate, 93, // Predicate_fp32imm0
/*522708*/                  OPC_MoveParent,
/*522709*/                  OPC_CheckType, MVT::f32,
/*522711*/                  OPC_MoveParent,
/*522712*/                  OPC_MoveParent,
/*522713*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*522715*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*522718*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*522726*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*522729*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 7,  // Results = #8
/*522737*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213SSZrb_Intkz), 0,
                                MVT::v4f32, 5/*#Ops*/, 0, 1, 6, 8, 4, 
                            // 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, (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*522748*/                /*Scope*/ 63, /*->522812*/
/*522749*/                  OPC_RecordChild1, // #3 = $src3
/*522750*/                  OPC_MoveChild2,
/*522751*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*522754*/                  OPC_CheckChild0Same, 0,
/*522756*/                  OPC_CheckChild1Integer, 0, 
/*522758*/                  OPC_MoveParent,
/*522759*/                  OPC_RecordChild3, // #4 = $rc
/*522760*/                  OPC_MoveChild3,
/*522761*/                  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*522764*/                  OPC_MoveParent,
/*522765*/                  OPC_MoveParent,
/*522766*/                  OPC_MoveChild2,
/*522767*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*522770*/                  OPC_CheckPredicate, 93, // Predicate_fp32imm0
/*522772*/                  OPC_MoveParent,
/*522773*/                  OPC_CheckType, MVT::f32,
/*522775*/                  OPC_MoveParent,
/*522776*/                  OPC_MoveParent,
/*522777*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*522779*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*522782*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*522790*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*522793*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 7,  // Results = #8
/*522801*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231SSZrb_Intkz), 0,
                                MVT::v4f32, 5/*#Ops*/, 0, 1, 6, 8, 4, 
                            // 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] }), (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*522812*/                0, /*End of Scope*/
/*522813*/              /*Scope*/ 64, /*->522878*/
/*522814*/                OPC_MoveChild0,
/*522815*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*522818*/                OPC_CheckChild0Same, 0,
/*522820*/                OPC_CheckChild1Integer, 0, 
/*522822*/                OPC_MoveParent,
/*522823*/                OPC_RecordChild1, // #2 = $src2
/*522824*/                OPC_RecordChild2, // #3 = $src3
/*522825*/                OPC_RecordChild3, // #4 = $rc
/*522826*/                OPC_MoveChild3,
/*522827*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*522830*/                OPC_MoveParent,
/*522831*/                OPC_MoveParent,
/*522832*/                OPC_MoveChild2,
/*522833*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*522836*/                OPC_CheckPredicate, 93, // Predicate_fp32imm0
/*522838*/                OPC_MoveParent,
/*522839*/                OPC_CheckType, MVT::f32,
/*522841*/                OPC_MoveParent,
/*522842*/                OPC_MoveParent,
/*522843*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*522845*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*522848*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*522856*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*522859*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 7,  // Results = #8
/*522867*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213SSZrb_Intkz), 0,
                              MVT::v4f32, 5/*#Ops*/, 0, 1, 6, 8, 4, 
                          // 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, (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*522878*/              0, /*End of Scope*/
/*522879*/            /*SwitchOpcode*/ 72|128,1/*200*/, TARGET_VAL(X86ISD::FNMSUB_RND),// ->523083
/*522883*/              OPC_Scope, 3|128,1/*131*/, /*->523017*/ // 2 children in Scope
/*522886*/                OPC_RecordChild0, // #2 = $src2
/*522887*/                OPC_Scope, 63, /*->522952*/ // 2 children in Scope
/*522889*/                  OPC_MoveChild1,
/*522890*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*522893*/                  OPC_CheckChild0Same, 0,
/*522895*/                  OPC_CheckChild1Integer, 0, 
/*522897*/                  OPC_MoveParent,
/*522898*/                  OPC_RecordChild2, // #3 = $src3
/*522899*/                  OPC_RecordChild3, // #4 = $rc
/*522900*/                  OPC_MoveChild3,
/*522901*/                  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*522904*/                  OPC_MoveParent,
/*522905*/                  OPC_MoveParent,
/*522906*/                  OPC_MoveChild2,
/*522907*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*522910*/                  OPC_CheckPredicate, 93, // Predicate_fp32imm0
/*522912*/                  OPC_MoveParent,
/*522913*/                  OPC_CheckType, MVT::f32,
/*522915*/                  OPC_MoveParent,
/*522916*/                  OPC_MoveParent,
/*522917*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*522919*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*522922*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*522930*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*522933*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 7,  // Results = #8
/*522941*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213SSZrb_Intkz), 0,
                                MVT::v4f32, 5/*#Ops*/, 0, 1, 6, 8, 4, 
                            // 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, (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*522952*/                /*Scope*/ 63, /*->523016*/
/*522953*/                  OPC_RecordChild1, // #3 = $src3
/*522954*/                  OPC_MoveChild2,
/*522955*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*522958*/                  OPC_CheckChild0Same, 0,
/*522960*/                  OPC_CheckChild1Integer, 0, 
/*522962*/                  OPC_MoveParent,
/*522963*/                  OPC_RecordChild3, // #4 = $rc
/*522964*/                  OPC_MoveChild3,
/*522965*/                  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*522968*/                  OPC_MoveParent,
/*522969*/                  OPC_MoveParent,
/*522970*/                  OPC_MoveChild2,
/*522971*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*522974*/                  OPC_CheckPredicate, 93, // Predicate_fp32imm0
/*522976*/                  OPC_MoveParent,
/*522977*/                  OPC_CheckType, MVT::f32,
/*522979*/                  OPC_MoveParent,
/*522980*/                  OPC_MoveParent,
/*522981*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*522983*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*522986*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*522994*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*522997*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 7,  // Results = #8
/*523005*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231SSZrb_Intkz), 0,
                                MVT::v4f32, 5/*#Ops*/, 0, 1, 6, 8, 4, 
                            // 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] }), (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*523016*/                0, /*End of Scope*/
/*523017*/              /*Scope*/ 64, /*->523082*/
/*523018*/                OPC_MoveChild0,
/*523019*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*523022*/                OPC_CheckChild0Same, 0,
/*523024*/                OPC_CheckChild1Integer, 0, 
/*523026*/                OPC_MoveParent,
/*523027*/                OPC_RecordChild1, // #2 = $src2
/*523028*/                OPC_RecordChild2, // #3 = $src3
/*523029*/                OPC_RecordChild3, // #4 = $rc
/*523030*/                OPC_MoveChild3,
/*523031*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*523034*/                OPC_MoveParent,
/*523035*/                OPC_MoveParent,
/*523036*/                OPC_MoveChild2,
/*523037*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*523040*/                OPC_CheckPredicate, 93, // Predicate_fp32imm0
/*523042*/                OPC_MoveParent,
/*523043*/                OPC_CheckType, MVT::f32,
/*523045*/                OPC_MoveParent,
/*523046*/                OPC_MoveParent,
/*523047*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*523049*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*523052*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*523060*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*523063*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 7,  // Results = #8
/*523071*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213SSZrb_Intkz), 0,
                              MVT::v4f32, 5/*#Ops*/, 0, 1, 6, 8, 4, 
                          // 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, (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*523082*/              0, /*End of Scope*/
/*523083*/            0, // EndSwitchOpcode
/*523084*/          0, /*End of Scope*/
/*523085*/        /*SwitchOpcode*/ 19|128,1/*147*/, TARGET_VAL(ISD::STRICT_FADD),// ->523236
/*523089*/          OPC_RecordNode, // #1 = 'strict_fadd' chained node
/*523090*/          OPC_CheckFoldableChainNode,
/*523091*/          OPC_MoveChild1,
/*523092*/          OPC_SwitchOpcode /*2 cases */, 68, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->523164
/*523096*/            OPC_CheckChild0Same, 0,
/*523098*/            OPC_CheckChild1Integer, 0, 
/*523100*/            OPC_MoveParent,
/*523101*/            OPC_MoveChild2,
/*523102*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*523105*/            OPC_RecordMemRef,
/*523106*/            OPC_RecordNode, // #2 = 'ld' chained node
/*523107*/            OPC_CheckFoldableChainNode,
/*523108*/            OPC_RecordChild1, // #3 = $src
/*523109*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*523111*/            OPC_CheckPredicate, 9, // Predicate_load
/*523113*/            OPC_MoveParent,
/*523114*/            OPC_CheckType, MVT::f32,
/*523116*/            OPC_MoveParent,
/*523117*/            OPC_MoveParent,
/*523118*/            OPC_Scope, 21, /*->523141*/ // 2 children in Scope
/*523120*/              OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*523122*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*523125*/              OPC_EmitMergeInputChains, 2, 1, 2, 
/*523129*/              OPC_MorphNodeTo1, TARGET_VAL(X86::ADDSSrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                        // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (strict_fadd:{ *:[f32] } (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$dst, 0:{ *:[iPTR] }), (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                        // Dst: (ADDSSrm_Int:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, addr:{ *:[iPTR] }:$src)
/*523141*/            /*Scope*/ 21, /*->523163*/
/*523142*/              OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*523144*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*523147*/              OPC_EmitMergeInputChains, 2, 1, 2, 
/*523151*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSSrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                        // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (strict_fadd:{ *:[f32] } (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$dst, 0:{ *:[iPTR] }), (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                        // Dst: (VADDSSrm_Int:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, addr:{ *:[iPTR] }:$src)
/*523163*/            0, /*End of Scope*/
/*523164*/          /*SwitchOpcode*/ 68, TARGET_VAL(ISD::LOAD),// ->523235
/*523167*/            OPC_RecordMemRef,
/*523168*/            OPC_RecordNode, // #2 = 'ld' chained node
/*523169*/            OPC_CheckFoldableChainNode,
/*523170*/            OPC_RecordChild1, // #3 = $src
/*523171*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*523173*/            OPC_CheckPredicate, 9, // Predicate_load
/*523175*/            OPC_MoveParent,
/*523176*/            OPC_MoveChild2,
/*523177*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*523180*/            OPC_CheckChild0Same, 0,
/*523182*/            OPC_CheckChild1Integer, 0, 
/*523184*/            OPC_MoveParent,
/*523185*/            OPC_CheckType, MVT::f32,
/*523187*/            OPC_MoveParent,
/*523188*/            OPC_MoveParent,
/*523189*/            OPC_Scope, 21, /*->523212*/ // 2 children in Scope
/*523191*/              OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*523193*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*523196*/              OPC_EmitMergeInputChains, 2, 1, 2, 
/*523200*/              OPC_MorphNodeTo1, TARGET_VAL(X86::ADDSSrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                        // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (strict_fadd:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$dst, 0:{ *:[iPTR] })))) - Complexity = 39
                        // Dst: (ADDSSrm_Int:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, addr:{ *:[iPTR] }:$src)
/*523212*/            /*Scope*/ 21, /*->523234*/
/*523213*/              OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*523215*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*523218*/              OPC_EmitMergeInputChains, 2, 1, 2, 
/*523222*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSSrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                        // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (strict_fadd:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$dst, 0:{ *:[iPTR] })))) - Complexity = 39
                        // Dst: (VADDSSrm_Int:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, addr:{ *:[iPTR] }:$src)
/*523234*/            0, /*End of Scope*/
/*523235*/          0, // EndSwitchOpcode
/*523236*/        /*SwitchOpcode*/ 43|128,1/*171*/, TARGET_VAL(ISD::FADD),// ->523411
/*523240*/          OPC_MoveChild0,
/*523241*/          OPC_SwitchOpcode /*2 cases */, 81, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->523326
/*523245*/            OPC_CheckChild0Same, 0,
/*523247*/            OPC_CheckChild1Integer, 0, 
/*523249*/            OPC_MoveParent,
/*523250*/            OPC_MoveChild1,
/*523251*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*523254*/            OPC_RecordMemRef,
/*523255*/            OPC_RecordNode, // #1 = 'ld' chained node
/*523256*/            OPC_CheckFoldableChainNode,
/*523257*/            OPC_RecordChild1, // #2 = $src
/*523258*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*523260*/            OPC_CheckPredicate, 9, // Predicate_load
/*523262*/            OPC_MoveParent,
/*523263*/            OPC_CheckType, MVT::f32,
/*523265*/            OPC_MoveParent,
/*523266*/            OPC_MoveParent,
/*523267*/            OPC_Scope, 18, /*->523287*/ // 3 children in Scope
/*523269*/              OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*523271*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*523274*/              OPC_EmitMergeInputChains1_1,
/*523275*/              OPC_MorphNodeTo1, TARGET_VAL(X86::ADDSSrm_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] } (fadd:{ *:[f32] } (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$dst, 0:{ *:[iPTR] }), (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                        // Dst: (ADDSSrm_Int:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, addr:{ *:[iPTR] }:$src)
/*523287*/            /*Scope*/ 18, /*->523306*/
/*523288*/              OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*523290*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*523293*/              OPC_EmitMergeInputChains1_1,
/*523294*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSSrm_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] } (fadd:{ *:[f32] } (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$dst, 0:{ *:[iPTR] }), (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                        // Dst: (VADDSSrm_Int:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, addr:{ *:[iPTR] }:$src)
/*523306*/            /*Scope*/ 18, /*->523325*/
/*523307*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*523309*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*523312*/              OPC_EmitMergeInputChains1_1,
/*523313*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSSZrm_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] } (fadd:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$dst, 0:{ *:[iPTR] }), (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                        // Dst: (VADDSSZrm_Int:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, addr:{ *:[iPTR] }:$src)
/*523325*/            0, /*End of Scope*/
/*523326*/          /*SwitchOpcode*/ 81, TARGET_VAL(ISD::LOAD),// ->523410
/*523329*/            OPC_RecordMemRef,
/*523330*/            OPC_RecordNode, // #1 = 'ld' chained node
/*523331*/            OPC_CheckFoldableChainNode,
/*523332*/            OPC_RecordChild1, // #2 = $src
/*523333*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*523335*/            OPC_CheckPredicate, 9, // Predicate_load
/*523337*/            OPC_MoveParent,
/*523338*/            OPC_MoveChild1,
/*523339*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*523342*/            OPC_CheckChild0Same, 0,
/*523344*/            OPC_CheckChild1Integer, 0, 
/*523346*/            OPC_MoveParent,
/*523347*/            OPC_CheckType, MVT::f32,
/*523349*/            OPC_MoveParent,
/*523350*/            OPC_MoveParent,
/*523351*/            OPC_Scope, 18, /*->523371*/ // 3 children in Scope
/*523353*/              OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*523355*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*523358*/              OPC_EmitMergeInputChains1_1,
/*523359*/              OPC_MorphNodeTo1, TARGET_VAL(X86::ADDSSrm_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] } (fadd:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$dst, 0:{ *:[iPTR] })))) - Complexity = 39
                        // Dst: (ADDSSrm_Int:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, addr:{ *:[iPTR] }:$src)
/*523371*/            /*Scope*/ 18, /*->523390*/
/*523372*/              OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*523374*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*523377*/              OPC_EmitMergeInputChains1_1,
/*523378*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSSrm_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] } (fadd:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$dst, 0:{ *:[iPTR] })))) - Complexity = 39
                        // Dst: (VADDSSrm_Int:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, addr:{ *:[iPTR] }:$src)
/*523390*/            /*Scope*/ 18, /*->523409*/
/*523391*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*523393*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*523396*/              OPC_EmitMergeInputChains1_1,
/*523397*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSSZrm_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] } (fadd:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$dst, 0:{ *:[iPTR] })))) - Complexity = 39
                        // Dst: (VADDSSZrm_Int:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, addr:{ *:[iPTR] }:$src)
/*523409*/            0, /*End of Scope*/
/*523410*/          0, // EndSwitchOpcode
/*523411*/        /*SwitchOpcode*/ 74, TARGET_VAL(ISD::STRICT_FSUB),// ->523488
/*523414*/          OPC_RecordNode, // #1 = 'strict_fsub' chained node
/*523415*/          OPC_CheckFoldableChainNode,
/*523416*/          OPC_MoveChild1,
/*523417*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*523420*/          OPC_CheckChild0Same, 0,
/*523422*/          OPC_CheckChild1Integer, 0, 
/*523424*/          OPC_MoveParent,
/*523425*/          OPC_MoveChild2,
/*523426*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*523429*/          OPC_RecordMemRef,
/*523430*/          OPC_RecordNode, // #2 = 'ld' chained node
/*523431*/          OPC_CheckFoldableChainNode,
/*523432*/          OPC_RecordChild1, // #3 = $src
/*523433*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*523435*/          OPC_CheckPredicate, 9, // Predicate_load
/*523437*/          OPC_MoveParent,
/*523438*/          OPC_CheckType, MVT::f32,
/*523440*/          OPC_MoveParent,
/*523441*/          OPC_MoveParent,
/*523442*/          OPC_Scope, 21, /*->523465*/ // 2 children in Scope
/*523444*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*523446*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*523449*/            OPC_EmitMergeInputChains, 2, 1, 2, 
/*523453*/            OPC_MorphNodeTo1, TARGET_VAL(X86::SUBSSrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                      // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (strict_fsub:{ *:[f32] } (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$dst, 0:{ *:[iPTR] }), (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                      // Dst: (SUBSSrm_Int:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, addr:{ *:[iPTR] }:$src)
/*523465*/          /*Scope*/ 21, /*->523487*/
/*523466*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*523468*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*523471*/            OPC_EmitMergeInputChains, 2, 1, 2, 
/*523475*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSSrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                      // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (strict_fsub:{ *:[f32] } (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$dst, 0:{ *:[iPTR] }), (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                      // Dst: (VSUBSSrm_Int:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, addr:{ *:[iPTR] }:$src)
/*523487*/          0, /*End of Scope*/
/*523488*/        /*SwitchOpcode*/ 85, TARGET_VAL(ISD::FSUB),// ->523576
/*523491*/          OPC_MoveChild0,
/*523492*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*523495*/          OPC_CheckChild0Same, 0,
/*523497*/          OPC_CheckChild1Integer, 0, 
/*523499*/          OPC_MoveParent,
/*523500*/          OPC_MoveChild1,
/*523501*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*523504*/          OPC_RecordMemRef,
/*523505*/          OPC_RecordNode, // #1 = 'ld' chained node
/*523506*/          OPC_CheckFoldableChainNode,
/*523507*/          OPC_RecordChild1, // #2 = $src
/*523508*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*523510*/          OPC_CheckPredicate, 9, // Predicate_load
/*523512*/          OPC_MoveParent,
/*523513*/          OPC_CheckType, MVT::f32,
/*523515*/          OPC_MoveParent,
/*523516*/          OPC_MoveParent,
/*523517*/          OPC_Scope, 18, /*->523537*/ // 3 children in Scope
/*523519*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*523521*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*523524*/            OPC_EmitMergeInputChains1_1,
/*523525*/            OPC_MorphNodeTo1, TARGET_VAL(X86::SUBSSrm_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] } (fsub:{ *:[f32] } (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$dst, 0:{ *:[iPTR] }), (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                      // Dst: (SUBSSrm_Int:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, addr:{ *:[iPTR] }:$src)
/*523537*/          /*Scope*/ 18, /*->523556*/
/*523538*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*523540*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*523543*/            OPC_EmitMergeInputChains1_1,
/*523544*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSSrm_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] } (fsub:{ *:[f32] } (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$dst, 0:{ *:[iPTR] }), (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                      // Dst: (VSUBSSrm_Int:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, addr:{ *:[iPTR] }:$src)
/*523556*/          /*Scope*/ 18, /*->523575*/
/*523557*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*523559*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*523562*/            OPC_EmitMergeInputChains1_1,
/*523563*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSSZrm_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] } (fsub:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$dst, 0:{ *:[iPTR] }), (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                      // Dst: (VSUBSSZrm_Int:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, addr:{ *:[iPTR] }:$src)
/*523575*/          0, /*End of Scope*/
/*523576*/        /*SwitchOpcode*/ 19|128,1/*147*/, TARGET_VAL(ISD::STRICT_FMUL),// ->523727
/*523580*/          OPC_RecordNode, // #1 = 'strict_fmul' chained node
/*523581*/          OPC_CheckFoldableChainNode,
/*523582*/          OPC_MoveChild1,
/*523583*/          OPC_SwitchOpcode /*2 cases */, 68, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->523655
/*523587*/            OPC_CheckChild0Same, 0,
/*523589*/            OPC_CheckChild1Integer, 0, 
/*523591*/            OPC_MoveParent,
/*523592*/            OPC_MoveChild2,
/*523593*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*523596*/            OPC_RecordMemRef,
/*523597*/            OPC_RecordNode, // #2 = 'ld' chained node
/*523598*/            OPC_CheckFoldableChainNode,
/*523599*/            OPC_RecordChild1, // #3 = $src
/*523600*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*523602*/            OPC_CheckPredicate, 9, // Predicate_load
/*523604*/            OPC_MoveParent,
/*523605*/            OPC_CheckType, MVT::f32,
/*523607*/            OPC_MoveParent,
/*523608*/            OPC_MoveParent,
/*523609*/            OPC_Scope, 21, /*->523632*/ // 2 children in Scope
/*523611*/              OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*523613*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*523616*/              OPC_EmitMergeInputChains, 2, 1, 2, 
/*523620*/              OPC_MorphNodeTo1, TARGET_VAL(X86::MULSSrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                        // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (strict_fmul:{ *:[f32] } (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$dst, 0:{ *:[iPTR] }), (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                        // Dst: (MULSSrm_Int:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, addr:{ *:[iPTR] }:$src)
/*523632*/            /*Scope*/ 21, /*->523654*/
/*523633*/              OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*523635*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*523638*/              OPC_EmitMergeInputChains, 2, 1, 2, 
/*523642*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSSrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                        // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (strict_fmul:{ *:[f32] } (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$dst, 0:{ *:[iPTR] }), (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                        // Dst: (VMULSSrm_Int:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, addr:{ *:[iPTR] }:$src)
/*523654*/            0, /*End of Scope*/
/*523655*/          /*SwitchOpcode*/ 68, TARGET_VAL(ISD::LOAD),// ->523726
/*523658*/            OPC_RecordMemRef,
/*523659*/            OPC_RecordNode, // #2 = 'ld' chained node
/*523660*/            OPC_CheckFoldableChainNode,
/*523661*/            OPC_RecordChild1, // #3 = $src
/*523662*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*523664*/            OPC_CheckPredicate, 9, // Predicate_load
/*523666*/            OPC_MoveParent,
/*523667*/            OPC_MoveChild2,
/*523668*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*523671*/            OPC_CheckChild0Same, 0,
/*523673*/            OPC_CheckChild1Integer, 0, 
/*523675*/            OPC_MoveParent,
/*523676*/            OPC_CheckType, MVT::f32,
/*523678*/            OPC_MoveParent,
/*523679*/            OPC_MoveParent,
/*523680*/            OPC_Scope, 21, /*->523703*/ // 2 children in Scope
/*523682*/              OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*523684*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*523687*/              OPC_EmitMergeInputChains, 2, 1, 2, 
/*523691*/              OPC_MorphNodeTo1, TARGET_VAL(X86::MULSSrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                        // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (strict_fmul:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$dst, 0:{ *:[iPTR] })))) - Complexity = 39
                        // Dst: (MULSSrm_Int:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, addr:{ *:[iPTR] }:$src)
/*523703*/            /*Scope*/ 21, /*->523725*/
/*523704*/              OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*523706*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*523709*/              OPC_EmitMergeInputChains, 2, 1, 2, 
/*523713*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSSrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                        // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (strict_fmul:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$dst, 0:{ *:[iPTR] })))) - Complexity = 39
                        // Dst: (VMULSSrm_Int:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, addr:{ *:[iPTR] }:$src)
/*523725*/            0, /*End of Scope*/
/*523726*/          0, // EndSwitchOpcode
/*523727*/        /*SwitchOpcode*/ 43|128,1/*171*/, TARGET_VAL(ISD::FMUL),// ->523902
/*523731*/          OPC_MoveChild0,
/*523732*/          OPC_SwitchOpcode /*2 cases */, 81, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->523817
/*523736*/            OPC_CheckChild0Same, 0,
/*523738*/            OPC_CheckChild1Integer, 0, 
/*523740*/            OPC_MoveParent,
/*523741*/            OPC_MoveChild1,
/*523742*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*523745*/            OPC_RecordMemRef,
/*523746*/            OPC_RecordNode, // #1 = 'ld' chained node
/*523747*/            OPC_CheckFoldableChainNode,
/*523748*/            OPC_RecordChild1, // #2 = $src
/*523749*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*523751*/            OPC_CheckPredicate, 9, // Predicate_load
/*523753*/            OPC_MoveParent,
/*523754*/            OPC_CheckType, MVT::f32,
/*523756*/            OPC_MoveParent,
/*523757*/            OPC_MoveParent,
/*523758*/            OPC_Scope, 18, /*->523778*/ // 3 children in Scope
/*523760*/              OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*523762*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*523765*/              OPC_EmitMergeInputChains1_1,
/*523766*/              OPC_MorphNodeTo1, TARGET_VAL(X86::MULSSrm_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] } (fmul:{ *:[f32] } (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$dst, 0:{ *:[iPTR] }), (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                        // Dst: (MULSSrm_Int:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, addr:{ *:[iPTR] }:$src)
/*523778*/            /*Scope*/ 18, /*->523797*/
/*523779*/              OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*523781*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*523784*/              OPC_EmitMergeInputChains1_1,
/*523785*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSSrm_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] } (fmul:{ *:[f32] } (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$dst, 0:{ *:[iPTR] }), (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                        // Dst: (VMULSSrm_Int:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, addr:{ *:[iPTR] }:$src)
/*523797*/            /*Scope*/ 18, /*->523816*/
/*523798*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*523800*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*523803*/              OPC_EmitMergeInputChains1_1,
/*523804*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSSZrm_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] } (fmul:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$dst, 0:{ *:[iPTR] }), (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                        // Dst: (VMULSSZrm_Int:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, addr:{ *:[iPTR] }:$src)
/*523816*/            0, /*End of Scope*/
/*523817*/          /*SwitchOpcode*/ 81, TARGET_VAL(ISD::LOAD),// ->523901
/*523820*/            OPC_RecordMemRef,
/*523821*/            OPC_RecordNode, // #1 = 'ld' chained node
/*523822*/            OPC_CheckFoldableChainNode,
/*523823*/            OPC_RecordChild1, // #2 = $src
/*523824*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*523826*/            OPC_CheckPredicate, 9, // Predicate_load
/*523828*/            OPC_MoveParent,
/*523829*/            OPC_MoveChild1,
/*523830*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*523833*/            OPC_CheckChild0Same, 0,
/*523835*/            OPC_CheckChild1Integer, 0, 
/*523837*/            OPC_MoveParent,
/*523838*/            OPC_CheckType, MVT::f32,
/*523840*/            OPC_MoveParent,
/*523841*/            OPC_MoveParent,
/*523842*/            OPC_Scope, 18, /*->523862*/ // 3 children in Scope
/*523844*/              OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*523846*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*523849*/              OPC_EmitMergeInputChains1_1,
/*523850*/              OPC_MorphNodeTo1, TARGET_VAL(X86::MULSSrm_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] } (fmul:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$dst, 0:{ *:[iPTR] })))) - Complexity = 39
                        // Dst: (MULSSrm_Int:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, addr:{ *:[iPTR] }:$src)
/*523862*/            /*Scope*/ 18, /*->523881*/
/*523863*/              OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*523865*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*523868*/              OPC_EmitMergeInputChains1_1,
/*523869*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSSrm_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] } (fmul:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$dst, 0:{ *:[iPTR] })))) - Complexity = 39
                        // Dst: (VMULSSrm_Int:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, addr:{ *:[iPTR] }:$src)
/*523881*/            /*Scope*/ 18, /*->523900*/
/*523882*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*523884*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*523887*/              OPC_EmitMergeInputChains1_1,
/*523888*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSSZrm_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] } (fmul:{ *:[f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$dst, 0:{ *:[iPTR] })))) - Complexity = 39
                        // Dst: (VMULSSZrm_Int:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, addr:{ *:[iPTR] }:$src)
/*523900*/            0, /*End of Scope*/
/*523901*/          0, // EndSwitchOpcode
/*523902*/        /*SwitchOpcode*/ 74, TARGET_VAL(ISD::STRICT_FDIV),// ->523979
/*523905*/          OPC_RecordNode, // #1 = 'strict_fdiv' chained node
/*523906*/          OPC_CheckFoldableChainNode,
/*523907*/          OPC_MoveChild1,
/*523908*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*523911*/          OPC_CheckChild0Same, 0,
/*523913*/          OPC_CheckChild1Integer, 0, 
/*523915*/          OPC_MoveParent,
/*523916*/          OPC_MoveChild2,
/*523917*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*523920*/          OPC_RecordMemRef,
/*523921*/          OPC_RecordNode, // #2 = 'ld' chained node
/*523922*/          OPC_CheckFoldableChainNode,
/*523923*/          OPC_RecordChild1, // #3 = $src
/*523924*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*523926*/          OPC_CheckPredicate, 9, // Predicate_load
/*523928*/          OPC_MoveParent,
/*523929*/          OPC_CheckType, MVT::f32,
/*523931*/          OPC_MoveParent,
/*523932*/          OPC_MoveParent,
/*523933*/          OPC_Scope, 21, /*->523956*/ // 2 children in Scope
/*523935*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*523937*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*523940*/            OPC_EmitMergeInputChains, 2, 1, 2, 
/*523944*/            OPC_MorphNodeTo1, TARGET_VAL(X86::DIVSSrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                      // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (strict_fdiv:{ *:[f32] } (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$dst, 0:{ *:[iPTR] }), (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                      // Dst: (DIVSSrm_Int:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, addr:{ *:[iPTR] }:$src)
/*523956*/          /*Scope*/ 21, /*->523978*/
/*523957*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*523959*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*523962*/            OPC_EmitMergeInputChains, 2, 1, 2, 
/*523966*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSSrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                      // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (strict_fdiv:{ *:[f32] } (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$dst, 0:{ *:[iPTR] }), (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                      // Dst: (VDIVSSrm_Int:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, addr:{ *:[iPTR] }:$src)
/*523978*/          0, /*End of Scope*/
/*523979*/        /*SwitchOpcode*/ 85, TARGET_VAL(ISD::FDIV),// ->524067
/*523982*/          OPC_MoveChild0,
/*523983*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*523986*/          OPC_CheckChild0Same, 0,
/*523988*/          OPC_CheckChild1Integer, 0, 
/*523990*/          OPC_MoveParent,
/*523991*/          OPC_MoveChild1,
/*523992*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*523995*/          OPC_RecordMemRef,
/*523996*/          OPC_RecordNode, // #1 = 'ld' chained node
/*523997*/          OPC_CheckFoldableChainNode,
/*523998*/          OPC_RecordChild1, // #2 = $src
/*523999*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*524001*/          OPC_CheckPredicate, 9, // Predicate_load
/*524003*/          OPC_MoveParent,
/*524004*/          OPC_CheckType, MVT::f32,
/*524006*/          OPC_MoveParent,
/*524007*/          OPC_MoveParent,
/*524008*/          OPC_Scope, 18, /*->524028*/ // 3 children in Scope
/*524010*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*524012*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*524015*/            OPC_EmitMergeInputChains1_1,
/*524016*/            OPC_MorphNodeTo1, TARGET_VAL(X86::DIVSSrm_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] } (fdiv:{ *:[f32] } (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$dst, 0:{ *:[iPTR] }), (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                      // Dst: (DIVSSrm_Int:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, addr:{ *:[iPTR] }:$src)
/*524028*/          /*Scope*/ 18, /*->524047*/
/*524029*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*524031*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*524034*/            OPC_EmitMergeInputChains1_1,
/*524035*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSSrm_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] } (fdiv:{ *:[f32] } (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$dst, 0:{ *:[iPTR] }), (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                      // Dst: (VDIVSSrm_Int:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, addr:{ *:[iPTR] }:$src)
/*524047*/          /*Scope*/ 18, /*->524066*/
/*524048*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*524050*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*524053*/            OPC_EmitMergeInputChains1_1,
/*524054*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSSZrm_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] } (fdiv:{ *:[f32] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$dst, 0:{ *:[iPTR] }), (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                      // Dst: (VDIVSSZrm_Int:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, addr:{ *:[iPTR] }:$src)
/*524066*/          0, /*End of Scope*/
/*524067*/        /*SwitchOpcode*/ 37|128,5/*677*/, TARGET_VAL(ISD::STRICT_FMA),// ->524748
/*524071*/          OPC_RecordNode, // #1 = 'X86strict_Fmadd' chained node
/*524072*/          OPC_CheckFoldableChainNode,
/*524073*/          OPC_Scope, 60, /*->524135*/ // 6 children in Scope
/*524075*/            OPC_RecordChild1, // #2 = $src2
/*524076*/            OPC_MoveChild2,
/*524077*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*524080*/            OPC_CheckChild0Same, 0,
/*524082*/            OPC_CheckChild1Integer, 0, 
/*524084*/            OPC_MoveParent,
/*524085*/            OPC_MoveChild3,
/*524086*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*524089*/            OPC_RecordMemRef,
/*524090*/            OPC_RecordNode, // #3 = 'ld' chained node
/*524091*/            OPC_CheckFoldableChainNode,
/*524092*/            OPC_RecordChild1, // #4 = $src3
/*524093*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*524095*/            OPC_CheckPredicate, 9, // Predicate_load
/*524097*/            OPC_MoveParent,
/*524098*/            OPC_CheckType, MVT::f32,
/*524100*/            OPC_MoveParent,
/*524101*/            OPC_MoveParent,
/*524102*/            OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*524104*/            OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*524107*/            OPC_EmitMergeInputChains, 2, 1, 3, 
/*524111*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*524114*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 2, 10,  // Results = #11
/*524122*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SSm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 7/*#Ops*/, 0, 11, 5, 6, 7, 8, 9, 
                      // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86strict_Fmadd:{ *:[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:{ *:[iPTR] }:$src3)
/*524135*/          /*Scope*/ 60, /*->524196*/
/*524136*/            OPC_MoveChild1,
/*524137*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*524140*/            OPC_CheckChild0Same, 0,
/*524142*/            OPC_CheckChild1Integer, 0, 
/*524144*/            OPC_MoveParent,
/*524145*/            OPC_MoveChild2,
/*524146*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*524149*/            OPC_RecordMemRef,
/*524150*/            OPC_RecordNode, // #2 = 'ld' chained node
/*524151*/            OPC_CheckFoldableChainNode,
/*524152*/            OPC_RecordChild1, // #3 = $src3
/*524153*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*524155*/            OPC_CheckPredicate, 9, // Predicate_load
/*524157*/            OPC_MoveParent,
/*524158*/            OPC_RecordChild3, // #4 = $src2
/*524159*/            OPC_CheckType, MVT::f32,
/*524161*/            OPC_MoveParent,
/*524162*/            OPC_MoveParent,
/*524163*/            OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*524165*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*524168*/            OPC_EmitMergeInputChains, 2, 1, 2, 
/*524172*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*524175*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 4, 10,  // Results = #11
/*524183*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132SSm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 7/*#Ops*/, 0, 11, 5, 6, 7, 8, 9, 
                      // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86strict_Fmadd:{ *:[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:{ *:[iPTR] }:$src3)
/*524196*/          /*Scope*/ 120, /*->524317*/
/*524197*/            OPC_RecordChild1, // #2 = $src2
/*524198*/            OPC_MoveChild2,
/*524199*/            OPC_SwitchOpcode /*2 cases */, 55, TARGET_VAL(ISD::LOAD),// ->524258
/*524203*/              OPC_RecordMemRef,
/*524204*/              OPC_RecordNode, // #3 = 'ld' chained node
/*524205*/              OPC_CheckFoldableChainNode,
/*524206*/              OPC_RecordChild1, // #4 = $src3
/*524207*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*524209*/              OPC_CheckPredicate, 9, // Predicate_load
/*524211*/              OPC_MoveParent,
/*524212*/              OPC_MoveChild3,
/*524213*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*524216*/              OPC_CheckChild0Same, 0,
/*524218*/              OPC_CheckChild1Integer, 0, 
/*524220*/              OPC_MoveParent,
/*524221*/              OPC_CheckType, MVT::f32,
/*524223*/              OPC_MoveParent,
/*524224*/              OPC_MoveParent,
/*524225*/              OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*524227*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*524230*/              OPC_EmitMergeInputChains, 2, 1, 3, 
/*524234*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*524237*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 2, 10,  // Results = #11
/*524245*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SSm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 7/*#Ops*/, 0, 11, 5, 6, 7, 8, 9, 
                        // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86strict_Fmadd:{ *:[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:{ *:[iPTR] }:$src3)
/*524258*/            /*SwitchOpcode*/ 55, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->524316
/*524261*/              OPC_CheckChild0Same, 0,
/*524263*/              OPC_CheckChild1Integer, 0, 
/*524265*/              OPC_MoveParent,
/*524266*/              OPC_MoveChild3,
/*524267*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*524270*/              OPC_RecordMemRef,
/*524271*/              OPC_RecordNode, // #3 = 'ld' chained node
/*524272*/              OPC_CheckFoldableChainNode,
/*524273*/              OPC_RecordChild1, // #4 = $src3
/*524274*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*524276*/              OPC_CheckPredicate, 9, // Predicate_load
/*524278*/              OPC_MoveParent,
/*524279*/              OPC_CheckType, MVT::f32,
/*524281*/              OPC_MoveParent,
/*524282*/              OPC_MoveParent,
/*524283*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*524285*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*524288*/              OPC_EmitMergeInputChains, 2, 1, 3, 
/*524292*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*524295*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 2, 10,  // Results = #11
/*524303*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SSZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 7/*#Ops*/, 0, 11, 5, 6, 7, 8, 9, 
                        // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86strict_Fmadd:{ *:[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:{ *:[iPTR] }:$src3)
/*524316*/            0, // EndSwitchOpcode
/*524317*/          /*Scope*/ 60, /*->524378*/
/*524318*/            OPC_MoveChild1,
/*524319*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*524322*/            OPC_CheckChild0Same, 0,
/*524324*/            OPC_CheckChild1Integer, 0, 
/*524326*/            OPC_MoveParent,
/*524327*/            OPC_MoveChild2,
/*524328*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*524331*/            OPC_RecordMemRef,
/*524332*/            OPC_RecordNode, // #2 = 'ld' chained node
/*524333*/            OPC_CheckFoldableChainNode,
/*524334*/            OPC_RecordChild1, // #3 = $src3
/*524335*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*524337*/            OPC_CheckPredicate, 9, // Predicate_load
/*524339*/            OPC_MoveParent,
/*524340*/            OPC_RecordChild3, // #4 = $src2
/*524341*/            OPC_CheckType, MVT::f32,
/*524343*/            OPC_MoveParent,
/*524344*/            OPC_MoveParent,
/*524345*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*524347*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*524350*/            OPC_EmitMergeInputChains, 2, 1, 2, 
/*524354*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*524357*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 4, 10,  // Results = #11
/*524365*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132SSZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 7/*#Ops*/, 0, 11, 5, 6, 7, 8, 9, 
                      // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86strict_Fmadd:{ *:[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:{ *:[iPTR] }:$src3)
/*524378*/          /*Scope*/ 60, /*->524439*/
/*524379*/            OPC_RecordChild1, // #2 = $src2
/*524380*/            OPC_MoveChild2,
/*524381*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*524384*/            OPC_RecordMemRef,
/*524385*/            OPC_RecordNode, // #3 = 'ld' chained node
/*524386*/            OPC_CheckFoldableChainNode,
/*524387*/            OPC_RecordChild1, // #4 = $src3
/*524388*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*524390*/            OPC_CheckPredicate, 9, // Predicate_load
/*524392*/            OPC_MoveParent,
/*524393*/            OPC_MoveChild3,
/*524394*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*524397*/            OPC_CheckChild0Same, 0,
/*524399*/            OPC_CheckChild1Integer, 0, 
/*524401*/            OPC_MoveParent,
/*524402*/            OPC_CheckType, MVT::f32,
/*524404*/            OPC_MoveParent,
/*524405*/            OPC_MoveParent,
/*524406*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*524408*/            OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*524411*/            OPC_EmitMergeInputChains, 2, 1, 3, 
/*524415*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*524418*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 2, 10,  // Results = #11
/*524426*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SSZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 7/*#Ops*/, 0, 11, 5, 6, 7, 8, 9, 
                      // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86strict_Fmadd:{ *:[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:{ *:[iPTR] }:$src3)
/*524439*/          /*Scope*/ 50|128,2/*306*/, /*->524747*/
/*524441*/            OPC_MoveChild1,
/*524442*/            OPC_SwitchOpcode /*2 cases */, 93, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->524539
/*524446*/              OPC_CheckChild0Same, 0,
/*524448*/              OPC_CheckChild1Integer, 0, 
/*524450*/              OPC_MoveParent,
/*524451*/              OPC_RecordChild2, // #2 = $src2
/*524452*/              OPC_MoveChild3,
/*524453*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*524456*/              OPC_RecordMemRef,
/*524457*/              OPC_RecordNode, // #3 = 'ld' chained node
/*524458*/              OPC_CheckFoldableChainNode,
/*524459*/              OPC_RecordChild1, // #4 = $src3
/*524460*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*524462*/              OPC_CheckPredicate, 9, // Predicate_load
/*524464*/              OPC_MoveParent,
/*524465*/              OPC_CheckType, MVT::f32,
/*524467*/              OPC_MoveParent,
/*524468*/              OPC_MoveParent,
/*524469*/              OPC_Scope, 33, /*->524504*/ // 2 children in Scope
/*524471*/                OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*524473*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*524476*/                OPC_EmitMergeInputChains, 2, 1, 3, 
/*524480*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*524483*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 10,  // Results = #11
/*524491*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SSm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86strict_Fmadd:{ *:[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:{ *:[iPTR] }:$src3)
/*524504*/              /*Scope*/ 33, /*->524538*/
/*524505*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*524507*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*524510*/                OPC_EmitMergeInputChains, 2, 1, 3, 
/*524514*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*524517*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 10,  // Results = #11
/*524525*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SSZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86strict_Fmadd:{ *:[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:{ *:[iPTR] }:$src3)
/*524538*/              0, /*End of Scope*/
/*524539*/            /*SwitchOpcode*/ 75|128,1/*203*/, TARGET_VAL(ISD::LOAD),// ->524746
/*524543*/              OPC_RecordMemRef,
/*524544*/              OPC_RecordNode, // #2 = 'ld' chained node
/*524545*/              OPC_CheckFoldableChainNode,
/*524546*/              OPC_RecordChild1, // #3 = $src3
/*524547*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*524549*/              OPC_CheckPredicate, 9, // Predicate_load
/*524551*/              OPC_MoveParent,
/*524552*/              OPC_Scope, 47, /*->524601*/ // 4 children in Scope
/*524554*/                OPC_MoveChild2,
/*524555*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*524558*/                OPC_CheckChild0Same, 0,
/*524560*/                OPC_CheckChild1Integer, 0, 
/*524562*/                OPC_MoveParent,
/*524563*/                OPC_RecordChild3, // #4 = $src2
/*524564*/                OPC_CheckType, MVT::f32,
/*524566*/                OPC_MoveParent,
/*524567*/                OPC_MoveParent,
/*524568*/                OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*524570*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*524573*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*524577*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*524580*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 4, 10,  // Results = #11
/*524588*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132SSm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86strict_Fmadd:{ *:[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:{ *:[iPTR] }:$src3)
/*524601*/              /*Scope*/ 47, /*->524649*/
/*524602*/                OPC_RecordChild2, // #4 = $src2
/*524603*/                OPC_MoveChild3,
/*524604*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*524607*/                OPC_CheckChild0Same, 0,
/*524609*/                OPC_CheckChild1Integer, 0, 
/*524611*/                OPC_MoveParent,
/*524612*/                OPC_CheckType, MVT::f32,
/*524614*/                OPC_MoveParent,
/*524615*/                OPC_MoveParent,
/*524616*/                OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*524618*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*524621*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*524625*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*524628*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 4, 10,  // Results = #11
/*524636*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SSm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86strict_Fmadd:{ *:[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:{ *:[iPTR] }:$src3)
/*524649*/              /*Scope*/ 47, /*->524697*/
/*524650*/                OPC_MoveChild2,
/*524651*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*524654*/                OPC_CheckChild0Same, 0,
/*524656*/                OPC_CheckChild1Integer, 0, 
/*524658*/                OPC_MoveParent,
/*524659*/                OPC_RecordChild3, // #4 = $src2
/*524660*/                OPC_CheckType, MVT::f32,
/*524662*/                OPC_MoveParent,
/*524663*/                OPC_MoveParent,
/*524664*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*524666*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*524669*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*524673*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*524676*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 4, 10,  // Results = #11
/*524684*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132SSZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86strict_Fmadd:{ *:[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:{ *:[iPTR] }:$src3)
/*524697*/              /*Scope*/ 47, /*->524745*/
/*524698*/                OPC_RecordChild2, // #4 = $src2
/*524699*/                OPC_MoveChild3,
/*524700*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*524703*/                OPC_CheckChild0Same, 0,
/*524705*/                OPC_CheckChild1Integer, 0, 
/*524707*/                OPC_MoveParent,
/*524708*/                OPC_CheckType, MVT::f32,
/*524710*/                OPC_MoveParent,
/*524711*/                OPC_MoveParent,
/*524712*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*524714*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*524717*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*524721*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*524724*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 4, 10,  // Results = #11
/*524732*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SSZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v4f32, 7/*#Ops*/, 0, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86strict_Fmadd:{ *:[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:{ *:[iPTR] }:$src3)
/*524745*/              0, /*End of Scope*/
/*524746*/            0, // EndSwitchOpcode
/*524747*/          0, /*End of Scope*/
/*524748*/        /*SwitchOpcode*/ 127|128,4/*639*/, TARGET_VAL(ISD::FMA),// ->525391
/*524752*/          OPC_Scope, 57, /*->524811*/ // 6 children in Scope
/*524754*/            OPC_RecordChild0, // #1 = $src2
/*524755*/            OPC_MoveChild1,
/*524756*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*524759*/            OPC_CheckChild0Same, 0,
/*524761*/            OPC_CheckChild1Integer, 0, 
/*524763*/            OPC_MoveParent,
/*524764*/            OPC_MoveChild2,
/*524765*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*524768*/            OPC_RecordMemRef,
/*524769*/            OPC_RecordNode, // #2 = 'ld' chained node
/*524770*/            OPC_CheckFoldableChainNode,
/*524771*/            OPC_RecordChild1, // #3 = $src3
/*524772*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*524774*/            OPC_CheckPredicate, 9, // Predicate_load
/*524776*/            OPC_MoveParent,
/*524777*/            OPC_CheckType, MVT::f32,
/*524779*/            OPC_MoveParent,
/*524780*/            OPC_MoveParent,
/*524781*/            OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*524783*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*524786*/            OPC_EmitMergeInputChains1_2,
/*524787*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*524790*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 1, 9,  // Results = #10
/*524798*/            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:{ *:[iPTR] }:$src3)
/*524811*/          /*Scope*/ 57, /*->524869*/
/*524812*/            OPC_MoveChild0,
/*524813*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*524816*/            OPC_CheckChild0Same, 0,
/*524818*/            OPC_CheckChild1Integer, 0, 
/*524820*/            OPC_MoveParent,
/*524821*/            OPC_MoveChild1,
/*524822*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*524825*/            OPC_RecordMemRef,
/*524826*/            OPC_RecordNode, // #1 = 'ld' chained node
/*524827*/            OPC_CheckFoldableChainNode,
/*524828*/            OPC_RecordChild1, // #2 = $src3
/*524829*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*524831*/            OPC_CheckPredicate, 9, // Predicate_load
/*524833*/            OPC_MoveParent,
/*524834*/            OPC_RecordChild2, // #3 = $src2
/*524835*/            OPC_CheckType, MVT::f32,
/*524837*/            OPC_MoveParent,
/*524838*/            OPC_MoveParent,
/*524839*/            OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*524841*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*524844*/            OPC_EmitMergeInputChains1_1,
/*524845*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*524848*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 3, 9,  // Results = #10
/*524856*/            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:{ *:[iPTR] }:$src3)
/*524869*/          /*Scope*/ 114, /*->524984*/
/*524870*/            OPC_RecordChild0, // #1 = $src2
/*524871*/            OPC_MoveChild1,
/*524872*/            OPC_SwitchOpcode /*2 cases */, 52, TARGET_VAL(ISD::LOAD),// ->524928
/*524876*/              OPC_RecordMemRef,
/*524877*/              OPC_RecordNode, // #2 = 'ld' chained node
/*524878*/              OPC_CheckFoldableChainNode,
/*524879*/              OPC_RecordChild1, // #3 = $src3
/*524880*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*524882*/              OPC_CheckPredicate, 9, // Predicate_load
/*524884*/              OPC_MoveParent,
/*524885*/              OPC_MoveChild2,
/*524886*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*524889*/              OPC_CheckChild0Same, 0,
/*524891*/              OPC_CheckChild1Integer, 0, 
/*524893*/              OPC_MoveParent,
/*524894*/              OPC_CheckType, MVT::f32,
/*524896*/              OPC_MoveParent,
/*524897*/              OPC_MoveParent,
/*524898*/              OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*524900*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*524903*/              OPC_EmitMergeInputChains1_2,
/*524904*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*524907*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 1, 9,  // Results = #10
/*524915*/              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:{ *:[iPTR] }:$src3)
/*524928*/            /*SwitchOpcode*/ 52, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->524983
/*524931*/              OPC_CheckChild0Same, 0,
/*524933*/              OPC_CheckChild1Integer, 0, 
/*524935*/              OPC_MoveParent,
/*524936*/              OPC_MoveChild2,
/*524937*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*524940*/              OPC_RecordMemRef,
/*524941*/              OPC_RecordNode, // #2 = 'ld' chained node
/*524942*/              OPC_CheckFoldableChainNode,
/*524943*/              OPC_RecordChild1, // #3 = $src3
/*524944*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*524946*/              OPC_CheckPredicate, 9, // Predicate_load
/*524948*/              OPC_MoveParent,
/*524949*/              OPC_CheckType, MVT::f32,
/*524951*/              OPC_MoveParent,
/*524952*/              OPC_MoveParent,
/*524953*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*524955*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*524958*/              OPC_EmitMergeInputChains1_2,
/*524959*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*524962*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 1, 9,  // Results = #10
/*524970*/              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:{ *:[iPTR] }:$src3)
/*524983*/            0, // EndSwitchOpcode
/*524984*/          /*Scope*/ 57, /*->525042*/
/*524985*/            OPC_MoveChild0,
/*524986*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*524989*/            OPC_CheckChild0Same, 0,
/*524991*/            OPC_CheckChild1Integer, 0, 
/*524993*/            OPC_MoveParent,
/*524994*/            OPC_MoveChild1,
/*524995*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*524998*/            OPC_RecordMemRef,
/*524999*/            OPC_RecordNode, // #1 = 'ld' chained node
/*525000*/            OPC_CheckFoldableChainNode,
/*525001*/            OPC_RecordChild1, // #2 = $src3
/*525002*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*525004*/            OPC_CheckPredicate, 9, // Predicate_load
/*525006*/            OPC_MoveParent,
/*525007*/            OPC_RecordChild2, // #3 = $src2
/*525008*/            OPC_CheckType, MVT::f32,
/*525010*/            OPC_MoveParent,
/*525011*/            OPC_MoveParent,
/*525012*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*525014*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*525017*/            OPC_EmitMergeInputChains1_1,
/*525018*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*525021*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 3, 9,  // Results = #10
/*525029*/            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:{ *:[iPTR] }:$src3)
/*525042*/          /*Scope*/ 57, /*->525100*/
/*525043*/            OPC_RecordChild0, // #1 = $src2
/*525044*/            OPC_MoveChild1,
/*525045*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*525048*/            OPC_RecordMemRef,
/*525049*/            OPC_RecordNode, // #2 = 'ld' chained node
/*525050*/            OPC_CheckFoldableChainNode,
/*525051*/            OPC_RecordChild1, // #3 = $src3
/*525052*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*525054*/            OPC_CheckPredicate, 9, // Predicate_load
/*525056*/            OPC_MoveParent,
/*525057*/            OPC_MoveChild2,
/*525058*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*525061*/            OPC_CheckChild0Same, 0,
/*525063*/            OPC_CheckChild1Integer, 0, 
/*525065*/            OPC_MoveParent,
/*525066*/            OPC_CheckType, MVT::f32,
/*525068*/            OPC_MoveParent,
/*525069*/            OPC_MoveParent,
/*525070*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*525072*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*525075*/            OPC_EmitMergeInputChains1_2,
/*525076*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*525079*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 1, 9,  // Results = #10
/*525087*/            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:{ *:[iPTR] }:$src3)
/*525100*/          /*Scope*/ 32|128,2/*288*/, /*->525390*/
/*525102*/            OPC_MoveChild0,
/*525103*/            OPC_SwitchOpcode /*2 cases */, 87, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->525194
/*525107*/              OPC_CheckChild0Same, 0,
/*525109*/              OPC_CheckChild1Integer, 0, 
/*525111*/              OPC_MoveParent,
/*525112*/              OPC_RecordChild1, // #1 = $src2
/*525113*/              OPC_MoveChild2,
/*525114*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*525117*/              OPC_RecordMemRef,
/*525118*/              OPC_RecordNode, // #2 = 'ld' chained node
/*525119*/              OPC_CheckFoldableChainNode,
/*525120*/              OPC_RecordChild1, // #3 = $src3
/*525121*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*525123*/              OPC_CheckPredicate, 9, // Predicate_load
/*525125*/              OPC_MoveParent,
/*525126*/              OPC_CheckType, MVT::f32,
/*525128*/              OPC_MoveParent,
/*525129*/              OPC_MoveParent,
/*525130*/              OPC_Scope, 30, /*->525162*/ // 2 children in Scope
/*525132*/                OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*525134*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*525137*/                OPC_EmitMergeInputChains1_2,
/*525138*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*525141*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 9,  // Results = #10
/*525149*/                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:{ *:[iPTR] }:$src3)
/*525162*/              /*Scope*/ 30, /*->525193*/
/*525163*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*525165*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*525168*/                OPC_EmitMergeInputChains1_2,
/*525169*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*525172*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 9,  // Results = #10
/*525180*/                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:{ *:[iPTR] }:$src3)
/*525193*/              0, /*End of Scope*/
/*525194*/            /*SwitchOpcode*/ 63|128,1/*191*/, TARGET_VAL(ISD::LOAD),// ->525389
/*525198*/              OPC_RecordMemRef,
/*525199*/              OPC_RecordNode, // #1 = 'ld' chained node
/*525200*/              OPC_CheckFoldableChainNode,
/*525201*/              OPC_RecordChild1, // #2 = $src3
/*525202*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*525204*/              OPC_CheckPredicate, 9, // Predicate_load
/*525206*/              OPC_MoveParent,
/*525207*/              OPC_Scope, 44, /*->525253*/ // 4 children in Scope
/*525209*/                OPC_MoveChild1,
/*525210*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*525213*/                OPC_CheckChild0Same, 0,
/*525215*/                OPC_CheckChild1Integer, 0, 
/*525217*/                OPC_MoveParent,
/*525218*/                OPC_RecordChild2, // #3 = $src2
/*525219*/                OPC_CheckType, MVT::f32,
/*525221*/                OPC_MoveParent,
/*525222*/                OPC_MoveParent,
/*525223*/                OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*525225*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*525228*/                OPC_EmitMergeInputChains1_1,
/*525229*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*525232*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 9,  // Results = #10
/*525240*/                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:{ *:[iPTR] }:$src3)
/*525253*/              /*Scope*/ 44, /*->525298*/
/*525254*/                OPC_RecordChild1, // #3 = $src2
/*525255*/                OPC_MoveChild2,
/*525256*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*525259*/                OPC_CheckChild0Same, 0,
/*525261*/                OPC_CheckChild1Integer, 0, 
/*525263*/                OPC_MoveParent,
/*525264*/                OPC_CheckType, MVT::f32,
/*525266*/                OPC_MoveParent,
/*525267*/                OPC_MoveParent,
/*525268*/                OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*525270*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*525273*/                OPC_EmitMergeInputChains1_1,
/*525274*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*525277*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 9,  // Results = #10
/*525285*/                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:{ *:[iPTR] }:$src3)
/*525298*/              /*Scope*/ 44, /*->525343*/
/*525299*/                OPC_MoveChild1,
/*525300*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*525303*/                OPC_CheckChild0Same, 0,
/*525305*/                OPC_CheckChild1Integer, 0, 
/*525307*/                OPC_MoveParent,
/*525308*/                OPC_RecordChild2, // #3 = $src2
/*525309*/                OPC_CheckType, MVT::f32,
/*525311*/                OPC_MoveParent,
/*525312*/                OPC_MoveParent,
/*525313*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*525315*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*525318*/                OPC_EmitMergeInputChains1_1,
/*525319*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*525322*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 9,  // Results = #10
/*525330*/                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:{ *:[iPTR] }:$src3)
/*525343*/              /*Scope*/ 44, /*->525388*/
/*525344*/                OPC_RecordChild1, // #3 = $src2
/*525345*/                OPC_MoveChild2,
/*525346*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*525349*/                OPC_CheckChild0Same, 0,
/*525351*/                OPC_CheckChild1Integer, 0, 
/*525353*/                OPC_MoveParent,
/*525354*/                OPC_CheckType, MVT::f32,
/*525356*/                OPC_MoveParent,
/*525357*/                OPC_MoveParent,
/*525358*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*525360*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*525363*/                OPC_EmitMergeInputChains1_1,
/*525364*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*525367*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 9,  // Results = #10
/*525375*/                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:{ *:[iPTR] }:$src3)
/*525388*/              0, /*End of Scope*/
/*525389*/            0, // EndSwitchOpcode
/*525390*/          0, /*End of Scope*/
/*525391*/        /*SwitchOpcode*/ 127|128,4/*639*/, TARGET_VAL(X86ISD::FMSUB),// ->526034
/*525395*/          OPC_Scope, 57, /*->525454*/ // 6 children in Scope
/*525397*/            OPC_RecordChild0, // #1 = $src2
/*525398*/            OPC_MoveChild1,
/*525399*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*525402*/            OPC_CheckChild0Same, 0,
/*525404*/            OPC_CheckChild1Integer, 0, 
/*525406*/            OPC_MoveParent,
/*525407*/            OPC_MoveChild2,
/*525408*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*525411*/            OPC_RecordMemRef,
/*525412*/            OPC_RecordNode, // #2 = 'ld' chained node
/*525413*/            OPC_CheckFoldableChainNode,
/*525414*/            OPC_RecordChild1, // #3 = $src3
/*525415*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*525417*/            OPC_CheckPredicate, 9, // Predicate_load
/*525419*/            OPC_MoveParent,
/*525420*/            OPC_CheckType, MVT::f32,
/*525422*/            OPC_MoveParent,
/*525423*/            OPC_MoveParent,
/*525424*/            OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*525426*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*525429*/            OPC_EmitMergeInputChains1_2,
/*525430*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*525433*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 1, 9,  // Results = #10
/*525441*/            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:{ *:[iPTR] }:$src3)
/*525454*/          /*Scope*/ 57, /*->525512*/
/*525455*/            OPC_MoveChild0,
/*525456*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*525459*/            OPC_CheckChild0Same, 0,
/*525461*/            OPC_CheckChild1Integer, 0, 
/*525463*/            OPC_MoveParent,
/*525464*/            OPC_MoveChild1,
/*525465*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*525468*/            OPC_RecordMemRef,
/*525469*/            OPC_RecordNode, // #1 = 'ld' chained node
/*525470*/            OPC_CheckFoldableChainNode,
/*525471*/            OPC_RecordChild1, // #2 = $src3
/*525472*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*525474*/            OPC_CheckPredicate, 9, // Predicate_load
/*525476*/            OPC_MoveParent,
/*525477*/            OPC_RecordChild2, // #3 = $src2
/*525478*/            OPC_CheckType, MVT::f32,
/*525480*/            OPC_MoveParent,
/*525481*/            OPC_MoveParent,
/*525482*/            OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*525484*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*525487*/            OPC_EmitMergeInputChains1_1,
/*525488*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*525491*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 3, 9,  // Results = #10
/*525499*/            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:{ *:[iPTR] }:$src3)
/*525512*/          /*Scope*/ 114, /*->525627*/
/*525513*/            OPC_RecordChild0, // #1 = $src2
/*525514*/            OPC_MoveChild1,
/*525515*/            OPC_SwitchOpcode /*2 cases */, 52, TARGET_VAL(ISD::LOAD),// ->525571
/*525519*/              OPC_RecordMemRef,
/*525520*/              OPC_RecordNode, // #2 = 'ld' chained node
/*525521*/              OPC_CheckFoldableChainNode,
/*525522*/              OPC_RecordChild1, // #3 = $src3
/*525523*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*525525*/              OPC_CheckPredicate, 9, // Predicate_load
/*525527*/              OPC_MoveParent,
/*525528*/              OPC_MoveChild2,
/*525529*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*525532*/              OPC_CheckChild0Same, 0,
/*525534*/              OPC_CheckChild1Integer, 0, 
/*525536*/              OPC_MoveParent,
/*525537*/              OPC_CheckType, MVT::f32,
/*525539*/              OPC_MoveParent,
/*525540*/              OPC_MoveParent,
/*525541*/              OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*525543*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*525546*/              OPC_EmitMergeInputChains1_2,
/*525547*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*525550*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 1, 9,  // Results = #10
/*525558*/              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:{ *:[iPTR] }:$src3)
/*525571*/            /*SwitchOpcode*/ 52, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->525626
/*525574*/              OPC_CheckChild0Same, 0,
/*525576*/              OPC_CheckChild1Integer, 0, 
/*525578*/              OPC_MoveParent,
/*525579*/              OPC_MoveChild2,
/*525580*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*525583*/              OPC_RecordMemRef,
/*525584*/              OPC_RecordNode, // #2 = 'ld' chained node
/*525585*/              OPC_CheckFoldableChainNode,
/*525586*/              OPC_RecordChild1, // #3 = $src3
/*525587*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*525589*/              OPC_CheckPredicate, 9, // Predicate_load
/*525591*/              OPC_MoveParent,
/*525592*/              OPC_CheckType, MVT::f32,
/*525594*/              OPC_MoveParent,
/*525595*/              OPC_MoveParent,
/*525596*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*525598*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*525601*/              OPC_EmitMergeInputChains1_2,
/*525602*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*525605*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 1, 9,  // Results = #10
/*525613*/              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:{ *:[iPTR] }:$src3)
/*525626*/            0, // EndSwitchOpcode
/*525627*/          /*Scope*/ 57, /*->525685*/
/*525628*/            OPC_MoveChild0,
/*525629*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*525632*/            OPC_CheckChild0Same, 0,
/*525634*/            OPC_CheckChild1Integer, 0, 
/*525636*/            OPC_MoveParent,
/*525637*/            OPC_MoveChild1,
/*525638*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*525641*/            OPC_RecordMemRef,
/*525642*/            OPC_RecordNode, // #1 = 'ld' chained node
/*525643*/            OPC_CheckFoldableChainNode,
/*525644*/            OPC_RecordChild1, // #2 = $src3
/*525645*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*525647*/            OPC_CheckPredicate, 9, // Predicate_load
/*525649*/            OPC_MoveParent,
/*525650*/            OPC_RecordChild2, // #3 = $src2
/*525651*/            OPC_CheckType, MVT::f32,
/*525653*/            OPC_MoveParent,
/*525654*/            OPC_MoveParent,
/*525655*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*525657*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*525660*/            OPC_EmitMergeInputChains1_1,
/*525661*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*525664*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 3, 9,  // Results = #10
/*525672*/            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:{ *:[iPTR] }:$src3)
/*525685*/          /*Scope*/ 57, /*->525743*/
/*525686*/            OPC_RecordChild0, // #1 = $src2
/*525687*/            OPC_MoveChild1,
/*525688*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*525691*/            OPC_RecordMemRef,
/*525692*/            OPC_RecordNode, // #2 = 'ld' chained node
/*525693*/            OPC_CheckFoldableChainNode,
/*525694*/            OPC_RecordChild1, // #3 = $src3
/*525695*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*525697*/            OPC_CheckPredicate, 9, // Predicate_load
/*525699*/            OPC_MoveParent,
/*525700*/            OPC_MoveChild2,
/*525701*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*525704*/            OPC_CheckChild0Same, 0,
/*525706*/            OPC_CheckChild1Integer, 0, 
/*525708*/            OPC_MoveParent,
/*525709*/            OPC_CheckType, MVT::f32,
/*525711*/            OPC_MoveParent,
/*525712*/            OPC_MoveParent,
/*525713*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*525715*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*525718*/            OPC_EmitMergeInputChains1_2,
/*525719*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*525722*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 1, 9,  // Results = #10
/*525730*/            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:{ *:[iPTR] }:$src3)
/*525743*/          /*Scope*/ 32|128,2/*288*/, /*->526033*/
/*525745*/            OPC_MoveChild0,
/*525746*/            OPC_SwitchOpcode /*2 cases */, 87, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->525837
/*525750*/              OPC_CheckChild0Same, 0,
/*525752*/              OPC_CheckChild1Integer, 0, 
/*525754*/              OPC_MoveParent,
/*525755*/              OPC_RecordChild1, // #1 = $src2
/*525756*/              OPC_MoveChild2,
/*525757*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*525760*/              OPC_RecordMemRef,
/*525761*/              OPC_RecordNode, // #2 = 'ld' chained node
/*525762*/              OPC_CheckFoldableChainNode,
/*525763*/              OPC_RecordChild1, // #3 = $src3
/*525764*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*525766*/              OPC_CheckPredicate, 9, // Predicate_load
/*525768*/              OPC_MoveParent,
/*525769*/              OPC_CheckType, MVT::f32,
/*525771*/              OPC_MoveParent,
/*525772*/              OPC_MoveParent,
/*525773*/              OPC_Scope, 30, /*->525805*/ // 2 children in Scope
/*525775*/                OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*525777*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*525780*/                OPC_EmitMergeInputChains1_2,
/*525781*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*525784*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 9,  // Results = #10
/*525792*/                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:{ *:[iPTR] }:$src3)
/*525805*/              /*Scope*/ 30, /*->525836*/
/*525806*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*525808*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*525811*/                OPC_EmitMergeInputChains1_2,
/*525812*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*525815*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 9,  // Results = #10
/*525823*/                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:{ *:[iPTR] }:$src3)
/*525836*/              0, /*End of Scope*/
/*525837*/            /*SwitchOpcode*/ 63|128,1/*191*/, TARGET_VAL(ISD::LOAD),// ->526032
/*525841*/              OPC_RecordMemRef,
/*525842*/              OPC_RecordNode, // #1 = 'ld' chained node
/*525843*/              OPC_CheckFoldableChainNode,
/*525844*/              OPC_RecordChild1, // #2 = $src3
/*525845*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*525847*/              OPC_CheckPredicate, 9, // Predicate_load
/*525849*/              OPC_MoveParent,
/*525850*/              OPC_Scope, 44, /*->525896*/ // 4 children in Scope
/*525852*/                OPC_MoveChild1,
/*525853*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*525856*/                OPC_CheckChild0Same, 0,
/*525858*/                OPC_CheckChild1Integer, 0, 
/*525860*/                OPC_MoveParent,
/*525861*/                OPC_RecordChild2, // #3 = $src2
/*525862*/                OPC_CheckType, MVT::f32,
/*525864*/                OPC_MoveParent,
/*525865*/                OPC_MoveParent,
/*525866*/                OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*525868*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*525871*/                OPC_EmitMergeInputChains1_1,
/*525872*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*525875*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 9,  // Results = #10
/*525883*/                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:{ *:[iPTR] }:$src3)
/*525896*/              /*Scope*/ 44, /*->525941*/
/*525897*/                OPC_RecordChild1, // #3 = $src2
/*525898*/                OPC_MoveChild2,
/*525899*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*525902*/                OPC_CheckChild0Same, 0,
/*525904*/                OPC_CheckChild1Integer, 0, 
/*525906*/                OPC_MoveParent,
/*525907*/                OPC_CheckType, MVT::f32,
/*525909*/                OPC_MoveParent,
/*525910*/                OPC_MoveParent,
/*525911*/                OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*525913*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*525916*/                OPC_EmitMergeInputChains1_1,
/*525917*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*525920*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 9,  // Results = #10
/*525928*/                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:{ *:[iPTR] }:$src3)
/*525941*/              /*Scope*/ 44, /*->525986*/
/*525942*/                OPC_MoveChild1,
/*525943*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*525946*/                OPC_CheckChild0Same, 0,
/*525948*/                OPC_CheckChild1Integer, 0, 
/*525950*/                OPC_MoveParent,
/*525951*/                OPC_RecordChild2, // #3 = $src2
/*525952*/                OPC_CheckType, MVT::f32,
/*525954*/                OPC_MoveParent,
/*525955*/                OPC_MoveParent,
/*525956*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*525958*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*525961*/                OPC_EmitMergeInputChains1_1,
/*525962*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*525965*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 9,  // Results = #10
/*525973*/                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:{ *:[iPTR] }:$src3)
/*525986*/              /*Scope*/ 44, /*->526031*/
/*525987*/                OPC_RecordChild1, // #3 = $src2
/*525988*/                OPC_MoveChild2,
/*525989*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*525992*/                OPC_CheckChild0Same, 0,
/*525994*/                OPC_CheckChild1Integer, 0, 
/*525996*/                OPC_MoveParent,
/*525997*/                OPC_CheckType, MVT::f32,
/*525999*/                OPC_MoveParent,
/*526000*/                OPC_MoveParent,
/*526001*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*526003*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*526006*/                OPC_EmitMergeInputChains1_1,
/*526007*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*526010*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 9,  // Results = #10
/*526018*/                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:{ *:[iPTR] }:$src3)
/*526031*/              0, /*End of Scope*/
/*526032*/            0, // EndSwitchOpcode
/*526033*/          0, /*End of Scope*/
/*526034*/        /*SwitchOpcode*/ 127|128,4/*639*/, TARGET_VAL(X86ISD::FNMADD),// ->526677
/*526038*/          OPC_Scope, 57, /*->526097*/ // 6 children in Scope
/*526040*/            OPC_RecordChild0, // #1 = $src2
/*526041*/            OPC_MoveChild1,
/*526042*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*526045*/            OPC_CheckChild0Same, 0,
/*526047*/            OPC_CheckChild1Integer, 0, 
/*526049*/            OPC_MoveParent,
/*526050*/            OPC_MoveChild2,
/*526051*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*526054*/            OPC_RecordMemRef,
/*526055*/            OPC_RecordNode, // #2 = 'ld' chained node
/*526056*/            OPC_CheckFoldableChainNode,
/*526057*/            OPC_RecordChild1, // #3 = $src3
/*526058*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*526060*/            OPC_CheckPredicate, 9, // Predicate_load
/*526062*/            OPC_MoveParent,
/*526063*/            OPC_CheckType, MVT::f32,
/*526065*/            OPC_MoveParent,
/*526066*/            OPC_MoveParent,
/*526067*/            OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*526069*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*526072*/            OPC_EmitMergeInputChains1_2,
/*526073*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*526076*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 1, 9,  // Results = #10
/*526084*/            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:{ *:[iPTR] }:$src3)
/*526097*/          /*Scope*/ 57, /*->526155*/
/*526098*/            OPC_MoveChild0,
/*526099*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*526102*/            OPC_CheckChild0Same, 0,
/*526104*/            OPC_CheckChild1Integer, 0, 
/*526106*/            OPC_MoveParent,
/*526107*/            OPC_MoveChild1,
/*526108*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*526111*/            OPC_RecordMemRef,
/*526112*/            OPC_RecordNode, // #1 = 'ld' chained node
/*526113*/            OPC_CheckFoldableChainNode,
/*526114*/            OPC_RecordChild1, // #2 = $src3
/*526115*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*526117*/            OPC_CheckPredicate, 9, // Predicate_load
/*526119*/            OPC_MoveParent,
/*526120*/            OPC_RecordChild2, // #3 = $src2
/*526121*/            OPC_CheckType, MVT::f32,
/*526123*/            OPC_MoveParent,
/*526124*/            OPC_MoveParent,
/*526125*/            OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*526127*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*526130*/            OPC_EmitMergeInputChains1_1,
/*526131*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*526134*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 3, 9,  // Results = #10
/*526142*/            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:{ *:[iPTR] }:$src3)
/*526155*/          /*Scope*/ 114, /*->526270*/
/*526156*/            OPC_RecordChild0, // #1 = $src2
/*526157*/            OPC_MoveChild1,
/*526158*/            OPC_SwitchOpcode /*2 cases */, 52, TARGET_VAL(ISD::LOAD),// ->526214
/*526162*/              OPC_RecordMemRef,
/*526163*/              OPC_RecordNode, // #2 = 'ld' chained node
/*526164*/              OPC_CheckFoldableChainNode,
/*526165*/              OPC_RecordChild1, // #3 = $src3
/*526166*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*526168*/              OPC_CheckPredicate, 9, // Predicate_load
/*526170*/              OPC_MoveParent,
/*526171*/              OPC_MoveChild2,
/*526172*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*526175*/              OPC_CheckChild0Same, 0,
/*526177*/              OPC_CheckChild1Integer, 0, 
/*526179*/              OPC_MoveParent,
/*526180*/              OPC_CheckType, MVT::f32,
/*526182*/              OPC_MoveParent,
/*526183*/              OPC_MoveParent,
/*526184*/              OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*526186*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*526189*/              OPC_EmitMergeInputChains1_2,
/*526190*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*526193*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 1, 9,  // Results = #10
/*526201*/              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:{ *:[iPTR] }:$src3)
/*526214*/            /*SwitchOpcode*/ 52, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->526269
/*526217*/              OPC_CheckChild0Same, 0,
/*526219*/              OPC_CheckChild1Integer, 0, 
/*526221*/              OPC_MoveParent,
/*526222*/              OPC_MoveChild2,
/*526223*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*526226*/              OPC_RecordMemRef,
/*526227*/              OPC_RecordNode, // #2 = 'ld' chained node
/*526228*/              OPC_CheckFoldableChainNode,
/*526229*/              OPC_RecordChild1, // #3 = $src3
/*526230*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*526232*/              OPC_CheckPredicate, 9, // Predicate_load
/*526234*/              OPC_MoveParent,
/*526235*/              OPC_CheckType, MVT::f32,
/*526237*/              OPC_MoveParent,
/*526238*/              OPC_MoveParent,
/*526239*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*526241*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*526244*/              OPC_EmitMergeInputChains1_2,
/*526245*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*526248*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 1, 9,  // Results = #10
/*526256*/              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:{ *:[iPTR] }:$src3)
/*526269*/            0, // EndSwitchOpcode
/*526270*/          /*Scope*/ 57, /*->526328*/
/*526271*/            OPC_MoveChild0,
/*526272*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*526275*/            OPC_CheckChild0Same, 0,
/*526277*/            OPC_CheckChild1Integer, 0, 
/*526279*/            OPC_MoveParent,
/*526280*/            OPC_MoveChild1,
/*526281*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*526284*/            OPC_RecordMemRef,
/*526285*/            OPC_RecordNode, // #1 = 'ld' chained node
/*526286*/            OPC_CheckFoldableChainNode,
/*526287*/            OPC_RecordChild1, // #2 = $src3
/*526288*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*526290*/            OPC_CheckPredicate, 9, // Predicate_load
/*526292*/            OPC_MoveParent,
/*526293*/            OPC_RecordChild2, // #3 = $src2
/*526294*/            OPC_CheckType, MVT::f32,
/*526296*/            OPC_MoveParent,
/*526297*/            OPC_MoveParent,
/*526298*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*526300*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*526303*/            OPC_EmitMergeInputChains1_1,
/*526304*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*526307*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 3, 9,  // Results = #10
/*526315*/            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:{ *:[iPTR] }:$src3)
/*526328*/          /*Scope*/ 57, /*->526386*/
/*526329*/            OPC_RecordChild0, // #1 = $src2
/*526330*/            OPC_MoveChild1,
/*526331*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*526334*/            OPC_RecordMemRef,
/*526335*/            OPC_RecordNode, // #2 = 'ld' chained node
/*526336*/            OPC_CheckFoldableChainNode,
/*526337*/            OPC_RecordChild1, // #3 = $src3
/*526338*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*526340*/            OPC_CheckPredicate, 9, // Predicate_load
/*526342*/            OPC_MoveParent,
/*526343*/            OPC_MoveChild2,
/*526344*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*526347*/            OPC_CheckChild0Same, 0,
/*526349*/            OPC_CheckChild1Integer, 0, 
/*526351*/            OPC_MoveParent,
/*526352*/            OPC_CheckType, MVT::f32,
/*526354*/            OPC_MoveParent,
/*526355*/            OPC_MoveParent,
/*526356*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*526358*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*526361*/            OPC_EmitMergeInputChains1_2,
/*526362*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*526365*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 1, 9,  // Results = #10
/*526373*/            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:{ *:[iPTR] }:$src3)
/*526386*/          /*Scope*/ 32|128,2/*288*/, /*->526676*/
/*526388*/            OPC_MoveChild0,
/*526389*/            OPC_SwitchOpcode /*2 cases */, 87, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->526480
/*526393*/              OPC_CheckChild0Same, 0,
/*526395*/              OPC_CheckChild1Integer, 0, 
/*526397*/              OPC_MoveParent,
/*526398*/              OPC_RecordChild1, // #1 = $src2
/*526399*/              OPC_MoveChild2,
/*526400*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*526403*/              OPC_RecordMemRef,
/*526404*/              OPC_RecordNode, // #2 = 'ld' chained node
/*526405*/              OPC_CheckFoldableChainNode,
/*526406*/              OPC_RecordChild1, // #3 = $src3
/*526407*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*526409*/              OPC_CheckPredicate, 9, // Predicate_load
/*526411*/              OPC_MoveParent,
/*526412*/              OPC_CheckType, MVT::f32,
/*526414*/              OPC_MoveParent,
/*526415*/              OPC_MoveParent,
/*526416*/              OPC_Scope, 30, /*->526448*/ // 2 children in Scope
/*526418*/                OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*526420*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*526423*/                OPC_EmitMergeInputChains1_2,
/*526424*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*526427*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 9,  // Results = #10
/*526435*/                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:{ *:[iPTR] }:$src3)
/*526448*/              /*Scope*/ 30, /*->526479*/
/*526449*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*526451*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*526454*/                OPC_EmitMergeInputChains1_2,
/*526455*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*526458*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 9,  // Results = #10
/*526466*/                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:{ *:[iPTR] }:$src3)
/*526479*/              0, /*End of Scope*/
/*526480*/            /*SwitchOpcode*/ 63|128,1/*191*/, TARGET_VAL(ISD::LOAD),// ->526675
/*526484*/              OPC_RecordMemRef,
/*526485*/              OPC_RecordNode, // #1 = 'ld' chained node
/*526486*/              OPC_CheckFoldableChainNode,
/*526487*/              OPC_RecordChild1, // #2 = $src3
/*526488*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*526490*/              OPC_CheckPredicate, 9, // Predicate_load
/*526492*/              OPC_MoveParent,
/*526493*/              OPC_Scope, 44, /*->526539*/ // 4 children in Scope
/*526495*/                OPC_MoveChild1,
/*526496*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*526499*/                OPC_CheckChild0Same, 0,
/*526501*/                OPC_CheckChild1Integer, 0, 
/*526503*/                OPC_MoveParent,
/*526504*/                OPC_RecordChild2, // #3 = $src2
/*526505*/                OPC_CheckType, MVT::f32,
/*526507*/                OPC_MoveParent,
/*526508*/                OPC_MoveParent,
/*526509*/                OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*526511*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*526514*/                OPC_EmitMergeInputChains1_1,
/*526515*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*526518*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 9,  // Results = #10
/*526526*/                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:{ *:[iPTR] }:$src3)
/*526539*/              /*Scope*/ 44, /*->526584*/
/*526540*/                OPC_RecordChild1, // #3 = $src2
/*526541*/                OPC_MoveChild2,
/*526542*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*526545*/                OPC_CheckChild0Same, 0,
/*526547*/                OPC_CheckChild1Integer, 0, 
/*526549*/                OPC_MoveParent,
/*526550*/                OPC_CheckType, MVT::f32,
/*526552*/                OPC_MoveParent,
/*526553*/                OPC_MoveParent,
/*526554*/                OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*526556*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*526559*/                OPC_EmitMergeInputChains1_1,
/*526560*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*526563*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 9,  // Results = #10
/*526571*/                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:{ *:[iPTR] }:$src3)
/*526584*/              /*Scope*/ 44, /*->526629*/
/*526585*/                OPC_MoveChild1,
/*526586*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*526589*/                OPC_CheckChild0Same, 0,
/*526591*/                OPC_CheckChild1Integer, 0, 
/*526593*/                OPC_MoveParent,
/*526594*/                OPC_RecordChild2, // #3 = $src2
/*526595*/                OPC_CheckType, MVT::f32,
/*526597*/                OPC_MoveParent,
/*526598*/                OPC_MoveParent,
/*526599*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*526601*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*526604*/                OPC_EmitMergeInputChains1_1,
/*526605*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*526608*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 9,  // Results = #10
/*526616*/                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:{ *:[iPTR] }:$src3)
/*526629*/              /*Scope*/ 44, /*->526674*/
/*526630*/                OPC_RecordChild1, // #3 = $src2
/*526631*/                OPC_MoveChild2,
/*526632*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*526635*/                OPC_CheckChild0Same, 0,
/*526637*/                OPC_CheckChild1Integer, 0, 
/*526639*/                OPC_MoveParent,
/*526640*/                OPC_CheckType, MVT::f32,
/*526642*/                OPC_MoveParent,
/*526643*/                OPC_MoveParent,
/*526644*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*526646*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*526649*/                OPC_EmitMergeInputChains1_1,
/*526650*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*526653*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 9,  // Results = #10
/*526661*/                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:{ *:[iPTR] }:$src3)
/*526674*/              0, /*End of Scope*/
/*526675*/            0, // EndSwitchOpcode
/*526676*/          0, /*End of Scope*/
/*526677*/        /*SwitchOpcode*/ 127|128,4/*639*/, TARGET_VAL(X86ISD::FNMSUB),// ->527320
/*526681*/          OPC_Scope, 57, /*->526740*/ // 6 children in Scope
/*526683*/            OPC_RecordChild0, // #1 = $src2
/*526684*/            OPC_MoveChild1,
/*526685*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*526688*/            OPC_CheckChild0Same, 0,
/*526690*/            OPC_CheckChild1Integer, 0, 
/*526692*/            OPC_MoveParent,
/*526693*/            OPC_MoveChild2,
/*526694*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*526697*/            OPC_RecordMemRef,
/*526698*/            OPC_RecordNode, // #2 = 'ld' chained node
/*526699*/            OPC_CheckFoldableChainNode,
/*526700*/            OPC_RecordChild1, // #3 = $src3
/*526701*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*526703*/            OPC_CheckPredicate, 9, // Predicate_load
/*526705*/            OPC_MoveParent,
/*526706*/            OPC_CheckType, MVT::f32,
/*526708*/            OPC_MoveParent,
/*526709*/            OPC_MoveParent,
/*526710*/            OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*526712*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*526715*/            OPC_EmitMergeInputChains1_2,
/*526716*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*526719*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 1, 9,  // Results = #10
/*526727*/            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:{ *:[iPTR] }:$src3)
/*526740*/          /*Scope*/ 57, /*->526798*/
/*526741*/            OPC_MoveChild0,
/*526742*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*526745*/            OPC_CheckChild0Same, 0,
/*526747*/            OPC_CheckChild1Integer, 0, 
/*526749*/            OPC_MoveParent,
/*526750*/            OPC_MoveChild1,
/*526751*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*526754*/            OPC_RecordMemRef,
/*526755*/            OPC_RecordNode, // #1 = 'ld' chained node
/*526756*/            OPC_CheckFoldableChainNode,
/*526757*/            OPC_RecordChild1, // #2 = $src3
/*526758*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*526760*/            OPC_CheckPredicate, 9, // Predicate_load
/*526762*/            OPC_MoveParent,
/*526763*/            OPC_RecordChild2, // #3 = $src2
/*526764*/            OPC_CheckType, MVT::f32,
/*526766*/            OPC_MoveParent,
/*526767*/            OPC_MoveParent,
/*526768*/            OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*526770*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*526773*/            OPC_EmitMergeInputChains1_1,
/*526774*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*526777*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 3, 9,  // Results = #10
/*526785*/            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:{ *:[iPTR] }:$src3)
/*526798*/          /*Scope*/ 114, /*->526913*/
/*526799*/            OPC_RecordChild0, // #1 = $src2
/*526800*/            OPC_MoveChild1,
/*526801*/            OPC_SwitchOpcode /*2 cases */, 52, TARGET_VAL(ISD::LOAD),// ->526857
/*526805*/              OPC_RecordMemRef,
/*526806*/              OPC_RecordNode, // #2 = 'ld' chained node
/*526807*/              OPC_CheckFoldableChainNode,
/*526808*/              OPC_RecordChild1, // #3 = $src3
/*526809*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*526811*/              OPC_CheckPredicate, 9, // Predicate_load
/*526813*/              OPC_MoveParent,
/*526814*/              OPC_MoveChild2,
/*526815*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*526818*/              OPC_CheckChild0Same, 0,
/*526820*/              OPC_CheckChild1Integer, 0, 
/*526822*/              OPC_MoveParent,
/*526823*/              OPC_CheckType, MVT::f32,
/*526825*/              OPC_MoveParent,
/*526826*/              OPC_MoveParent,
/*526827*/              OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*526829*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*526832*/              OPC_EmitMergeInputChains1_2,
/*526833*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*526836*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 1, 9,  // Results = #10
/*526844*/              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:{ *:[iPTR] }:$src3)
/*526857*/            /*SwitchOpcode*/ 52, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->526912
/*526860*/              OPC_CheckChild0Same, 0,
/*526862*/              OPC_CheckChild1Integer, 0, 
/*526864*/              OPC_MoveParent,
/*526865*/              OPC_MoveChild2,
/*526866*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*526869*/              OPC_RecordMemRef,
/*526870*/              OPC_RecordNode, // #2 = 'ld' chained node
/*526871*/              OPC_CheckFoldableChainNode,
/*526872*/              OPC_RecordChild1, // #3 = $src3
/*526873*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*526875*/              OPC_CheckPredicate, 9, // Predicate_load
/*526877*/              OPC_MoveParent,
/*526878*/              OPC_CheckType, MVT::f32,
/*526880*/              OPC_MoveParent,
/*526881*/              OPC_MoveParent,
/*526882*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*526884*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*526887*/              OPC_EmitMergeInputChains1_2,
/*526888*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*526891*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 1, 9,  // Results = #10
/*526899*/              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:{ *:[iPTR] }:$src3)
/*526912*/            0, // EndSwitchOpcode
/*526913*/          /*Scope*/ 57, /*->526971*/
/*526914*/            OPC_MoveChild0,
/*526915*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*526918*/            OPC_CheckChild0Same, 0,
/*526920*/            OPC_CheckChild1Integer, 0, 
/*526922*/            OPC_MoveParent,
/*526923*/            OPC_MoveChild1,
/*526924*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*526927*/            OPC_RecordMemRef,
/*526928*/            OPC_RecordNode, // #1 = 'ld' chained node
/*526929*/            OPC_CheckFoldableChainNode,
/*526930*/            OPC_RecordChild1, // #2 = $src3
/*526931*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*526933*/            OPC_CheckPredicate, 9, // Predicate_load
/*526935*/            OPC_MoveParent,
/*526936*/            OPC_RecordChild2, // #3 = $src2
/*526937*/            OPC_CheckType, MVT::f32,
/*526939*/            OPC_MoveParent,
/*526940*/            OPC_MoveParent,
/*526941*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*526943*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*526946*/            OPC_EmitMergeInputChains1_1,
/*526947*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*526950*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 3, 9,  // Results = #10
/*526958*/            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:{ *:[iPTR] }:$src3)
/*526971*/          /*Scope*/ 57, /*->527029*/
/*526972*/            OPC_RecordChild0, // #1 = $src2
/*526973*/            OPC_MoveChild1,
/*526974*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*526977*/            OPC_RecordMemRef,
/*526978*/            OPC_RecordNode, // #2 = 'ld' chained node
/*526979*/            OPC_CheckFoldableChainNode,
/*526980*/            OPC_RecordChild1, // #3 = $src3
/*526981*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*526983*/            OPC_CheckPredicate, 9, // Predicate_load
/*526985*/            OPC_MoveParent,
/*526986*/            OPC_MoveChild2,
/*526987*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*526990*/            OPC_CheckChild0Same, 0,
/*526992*/            OPC_CheckChild1Integer, 0, 
/*526994*/            OPC_MoveParent,
/*526995*/            OPC_CheckType, MVT::f32,
/*526997*/            OPC_MoveParent,
/*526998*/            OPC_MoveParent,
/*526999*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*527001*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*527004*/            OPC_EmitMergeInputChains1_2,
/*527005*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*527008*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v4f32, 2/*#Ops*/, 1, 9,  // Results = #10
/*527016*/            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:{ *:[iPTR] }:$src3)
/*527029*/          /*Scope*/ 32|128,2/*288*/, /*->527319*/
/*527031*/            OPC_MoveChild0,
/*527032*/            OPC_SwitchOpcode /*2 cases */, 87, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->527123
/*527036*/              OPC_CheckChild0Same, 0,
/*527038*/              OPC_CheckChild1Integer, 0, 
/*527040*/              OPC_MoveParent,
/*527041*/              OPC_RecordChild1, // #1 = $src2
/*527042*/              OPC_MoveChild2,
/*527043*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*527046*/              OPC_RecordMemRef,
/*527047*/              OPC_RecordNode, // #2 = 'ld' chained node
/*527048*/              OPC_CheckFoldableChainNode,
/*527049*/              OPC_RecordChild1, // #3 = $src3
/*527050*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*527052*/              OPC_CheckPredicate, 9, // Predicate_load
/*527054*/              OPC_MoveParent,
/*527055*/              OPC_CheckType, MVT::f32,
/*527057*/              OPC_MoveParent,
/*527058*/              OPC_MoveParent,
/*527059*/              OPC_Scope, 30, /*->527091*/ // 2 children in Scope
/*527061*/                OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*527063*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*527066*/                OPC_EmitMergeInputChains1_2,
/*527067*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*527070*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 9,  // Results = #10
/*527078*/                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:{ *:[iPTR] }:$src3)
/*527091*/              /*Scope*/ 30, /*->527122*/
/*527092*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*527094*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*527097*/                OPC_EmitMergeInputChains1_2,
/*527098*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*527101*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 9,  // Results = #10
/*527109*/                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:{ *:[iPTR] }:$src3)
/*527122*/              0, /*End of Scope*/
/*527123*/            /*SwitchOpcode*/ 63|128,1/*191*/, TARGET_VAL(ISD::LOAD),// ->527318
/*527127*/              OPC_RecordMemRef,
/*527128*/              OPC_RecordNode, // #1 = 'ld' chained node
/*527129*/              OPC_CheckFoldableChainNode,
/*527130*/              OPC_RecordChild1, // #2 = $src3
/*527131*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*527133*/              OPC_CheckPredicate, 9, // Predicate_load
/*527135*/              OPC_MoveParent,
/*527136*/              OPC_Scope, 44, /*->527182*/ // 4 children in Scope
/*527138*/                OPC_MoveChild1,
/*527139*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*527142*/                OPC_CheckChild0Same, 0,
/*527144*/                OPC_CheckChild1Integer, 0, 
/*527146*/                OPC_MoveParent,
/*527147*/                OPC_RecordChild2, // #3 = $src2
/*527148*/                OPC_CheckType, MVT::f32,
/*527150*/                OPC_MoveParent,
/*527151*/                OPC_MoveParent,
/*527152*/                OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*527154*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*527157*/                OPC_EmitMergeInputChains1_1,
/*527158*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*527161*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 9,  // Results = #10
/*527169*/                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:{ *:[iPTR] }:$src3)
/*527182*/              /*Scope*/ 44, /*->527227*/
/*527183*/                OPC_RecordChild1, // #3 = $src2
/*527184*/                OPC_MoveChild2,
/*527185*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*527188*/                OPC_CheckChild0Same, 0,
/*527190*/                OPC_CheckChild1Integer, 0, 
/*527192*/                OPC_MoveParent,
/*527193*/                OPC_CheckType, MVT::f32,
/*527195*/                OPC_MoveParent,
/*527196*/                OPC_MoveParent,
/*527197*/                OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*527199*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*527202*/                OPC_EmitMergeInputChains1_1,
/*527203*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*527206*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 9,  // Results = #10
/*527214*/                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:{ *:[iPTR] }:$src3)
/*527227*/              /*Scope*/ 44, /*->527272*/
/*527228*/                OPC_MoveChild1,
/*527229*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*527232*/                OPC_CheckChild0Same, 0,
/*527234*/                OPC_CheckChild1Integer, 0, 
/*527236*/                OPC_MoveParent,
/*527237*/                OPC_RecordChild2, // #3 = $src2
/*527238*/                OPC_CheckType, MVT::f32,
/*527240*/                OPC_MoveParent,
/*527241*/                OPC_MoveParent,
/*527242*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*527244*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*527247*/                OPC_EmitMergeInputChains1_1,
/*527248*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*527251*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 9,  // Results = #10
/*527259*/                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:{ *:[iPTR] }:$src3)
/*527272*/              /*Scope*/ 44, /*->527317*/
/*527273*/                OPC_RecordChild1, // #3 = $src2
/*527274*/                OPC_MoveChild2,
/*527275*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*527278*/                OPC_CheckChild0Same, 0,
/*527280*/                OPC_CheckChild1Integer, 0, 
/*527282*/                OPC_MoveParent,
/*527283*/                OPC_CheckType, MVT::f32,
/*527285*/                OPC_MoveParent,
/*527286*/                OPC_MoveParent,
/*527287*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*527289*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*527292*/                OPC_EmitMergeInputChains1_1,
/*527293*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*527296*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 9,  // Results = #10
/*527304*/                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:{ *:[iPTR] }:$src3)
/*527317*/              0, /*End of Scope*/
/*527318*/            0, // EndSwitchOpcode
/*527319*/          0, /*End of Scope*/
/*527320*/        /*SwitchOpcode*/ 40|128,1/*168*/, TARGET_VAL(ISD::STRICT_SINT_TO_FP),// ->527492
/*527324*/          OPC_RecordNode, // #1 = 'strict_sint_to_fp' chained node
/*527325*/          OPC_CheckFoldableChainNode,
/*527326*/          OPC_MoveChild1,
/*527327*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*527330*/          OPC_RecordMemRef,
/*527331*/          OPC_RecordNode, // #2 = 'ld' chained node
/*527332*/          OPC_CheckFoldableChainNode,
/*527333*/          OPC_RecordChild1, // #3 = $src
/*527334*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*527336*/          OPC_SwitchType /*2 cases */, 75, MVT::i64,// ->527414
/*527339*/            OPC_CheckPredicate, 9, // Predicate_load
/*527341*/            OPC_MoveParent,
/*527342*/            OPC_CheckType, MVT::f32,
/*527344*/            OPC_MoveParent,
/*527345*/            OPC_MoveParent,
/*527346*/            OPC_Scope, 21, /*->527369*/ // 3 children in Scope
/*527348*/              OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*527350*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*527353*/              OPC_EmitMergeInputChains, 2, 1, 2, 
/*527357*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI642SSrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                        // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (strict_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)
/*527369*/            /*Scope*/ 21, /*->527391*/
/*527370*/              OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*527372*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*527375*/              OPC_EmitMergeInputChains, 2, 1, 2, 
/*527379*/              OPC_MorphNodeTo1, TARGET_VAL(X86::CVTSI642SSrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                        // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (strict_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)
/*527391*/            /*Scope*/ 21, /*->527413*/
/*527392*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*527394*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*527397*/              OPC_EmitMergeInputChains, 2, 1, 2, 
/*527401*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI642SSZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                        // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (strict_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)
/*527413*/            0, /*End of Scope*/
/*527414*/          /*SwitchType*/ 75, MVT::i32,// ->527491
/*527416*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/*527418*/            OPC_MoveParent,
/*527419*/            OPC_CheckType, MVT::f32,
/*527421*/            OPC_MoveParent,
/*527422*/            OPC_MoveParent,
/*527423*/            OPC_Scope, 21, /*->527446*/ // 3 children in Scope
/*527425*/              OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*527427*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*527430*/              OPC_EmitMergeInputChains, 2, 1, 2, 
/*527434*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI2SSrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                        // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (strict_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)
/*527446*/            /*Scope*/ 21, /*->527468*/
/*527447*/              OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*527449*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*527452*/              OPC_EmitMergeInputChains, 2, 1, 2, 
/*527456*/              OPC_MorphNodeTo1, TARGET_VAL(X86::CVTSI2SSrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                        // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (strict_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)
/*527468*/            /*Scope*/ 21, /*->527490*/
/*527469*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*527471*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*527474*/              OPC_EmitMergeInputChains, 2, 1, 2, 
/*527478*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI2SSZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                        // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (strict_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)
/*527490*/            0, /*End of Scope*/
/*527491*/          0, // EndSwitchType
/*527492*/        /*SwitchOpcode*/ 20|128,1/*148*/, TARGET_VAL(ISD::SINT_TO_FP),// ->527644
/*527496*/          OPC_MoveChild0,
/*527497*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*527500*/          OPC_RecordMemRef,
/*527501*/          OPC_RecordNode, // #1 = 'ld' chained node
/*527502*/          OPC_CheckFoldableChainNode,
/*527503*/          OPC_RecordChild1, // #2 = $src
/*527504*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*527506*/          OPC_SwitchType /*2 cases */, 66, MVT::i64,// ->527575
/*527509*/            OPC_CheckPredicate, 9, // Predicate_load
/*527511*/            OPC_MoveParent,
/*527512*/            OPC_CheckType, MVT::f32,
/*527514*/            OPC_MoveParent,
/*527515*/            OPC_MoveParent,
/*527516*/            OPC_Scope, 18, /*->527536*/ // 3 children in Scope
/*527518*/              OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*527520*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*527523*/              OPC_EmitMergeInputChains1_1,
/*527524*/              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)
/*527536*/            /*Scope*/ 18, /*->527555*/
/*527537*/              OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*527539*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*527542*/              OPC_EmitMergeInputChains1_1,
/*527543*/              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)
/*527555*/            /*Scope*/ 18, /*->527574*/
/*527556*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*527558*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*527561*/              OPC_EmitMergeInputChains1_1,
/*527562*/              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)
/*527574*/            0, /*End of Scope*/
/*527575*/          /*SwitchType*/ 66, MVT::i32,// ->527643
/*527577*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/*527579*/            OPC_MoveParent,
/*527580*/            OPC_CheckType, MVT::f32,
/*527582*/            OPC_MoveParent,
/*527583*/            OPC_MoveParent,
/*527584*/            OPC_Scope, 18, /*->527604*/ // 3 children in Scope
/*527586*/              OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*527588*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*527591*/              OPC_EmitMergeInputChains1_1,
/*527592*/              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)
/*527604*/            /*Scope*/ 18, /*->527623*/
/*527605*/              OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*527607*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*527610*/              OPC_EmitMergeInputChains1_1,
/*527611*/              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)
/*527623*/            /*Scope*/ 18, /*->527642*/
/*527624*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*527626*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*527629*/              OPC_EmitMergeInputChains1_1,
/*527630*/              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)
/*527642*/            0, /*End of Scope*/
/*527643*/          0, // EndSwitchType
/*527644*/        /*SwitchOpcode*/ 74, TARGET_VAL(ISD::STRICT_UINT_TO_FP),// ->527721
/*527647*/          OPC_RecordNode, // #1 = 'strict_uint_to_fp' chained node
/*527648*/          OPC_CheckFoldableChainNode,
/*527649*/          OPC_MoveChild1,
/*527650*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*527653*/          OPC_RecordMemRef,
/*527654*/          OPC_RecordNode, // #2 = 'ld' chained node
/*527655*/          OPC_CheckFoldableChainNode,
/*527656*/          OPC_RecordChild1, // #3 = $src
/*527657*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*527659*/          OPC_SwitchType /*2 cases */, 28, MVT::i64,// ->527690
/*527662*/            OPC_CheckPredicate, 9, // Predicate_load
/*527664*/            OPC_MoveParent,
/*527665*/            OPC_CheckType, MVT::f32,
/*527667*/            OPC_MoveParent,
/*527668*/            OPC_MoveParent,
/*527669*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*527671*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*527674*/            OPC_EmitMergeInputChains, 2, 1, 2, 
/*527678*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUSI642SSZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                      // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (strict_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)
/*527690*/          /*SwitchType*/ 28, MVT::i32,// ->527720
/*527692*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/*527694*/            OPC_MoveParent,
/*527695*/            OPC_CheckType, MVT::f32,
/*527697*/            OPC_MoveParent,
/*527698*/            OPC_MoveParent,
/*527699*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*527701*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*527704*/            OPC_EmitMergeInputChains, 2, 1, 2, 
/*527708*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUSI2SSZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                      // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (strict_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)
/*527720*/          0, // EndSwitchType
/*527721*/        /*SwitchOpcode*/ 66, TARGET_VAL(ISD::UINT_TO_FP),// ->527790
/*527724*/          OPC_MoveChild0,
/*527725*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*527728*/          OPC_RecordMemRef,
/*527729*/          OPC_RecordNode, // #1 = 'ld' chained node
/*527730*/          OPC_CheckFoldableChainNode,
/*527731*/          OPC_RecordChild1, // #2 = $src
/*527732*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*527734*/          OPC_SwitchType /*2 cases */, 25, MVT::i64,// ->527762
/*527737*/            OPC_CheckPredicate, 9, // Predicate_load
/*527739*/            OPC_MoveParent,
/*527740*/            OPC_CheckType, MVT::f32,
/*527742*/            OPC_MoveParent,
/*527743*/            OPC_MoveParent,
/*527744*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*527746*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*527749*/            OPC_EmitMergeInputChains1_1,
/*527750*/            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)
/*527762*/          /*SwitchType*/ 25, MVT::i32,// ->527789
/*527764*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/*527766*/            OPC_MoveParent,
/*527767*/            OPC_CheckType, MVT::f32,
/*527769*/            OPC_MoveParent,
/*527770*/            OPC_MoveParent,
/*527771*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*527773*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*527776*/            OPC_EmitMergeInputChains1_1,
/*527777*/            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)
/*527789*/          0, // EndSwitchType
/*527790*/        0, // EndSwitchOpcode
/*527791*/      /*SwitchOpcode*/ 31, TARGET_VAL(ISD::LOAD),// ->527825
/*527794*/        OPC_RecordMemRef,
/*527795*/        OPC_RecordNode, // #1 = 'ld' chained node
/*527796*/        OPC_CheckFoldableChainNode,
/*527797*/        OPC_RecordChild1, // #2 = $src2
/*527798*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*527800*/        OPC_CheckPredicate, 9, // Predicate_load
/*527802*/        OPC_MoveParent,
/*527803*/        OPC_CheckPatternPredicate, 127, // (Subtarget->hasAVX()) && (!shouldOptForSize(MF))
/*527805*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*527808*/        OPC_EmitMergeInputChains1_1,
/*527809*/        OPC_EmitInteger, MVT::i8, 1, 
/*527812*/        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>>) - Complexity = 25
                  // Dst: (VBLENDPSrmi:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, 1:{ *:[i8] })
/*527825*/      0, // EndSwitchOpcode
/*527826*/    /*Scope*/ 36, /*->527863*/
/*527827*/      OPC_MoveChild0,
/*527828*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*527831*/      OPC_RecordMemRef,
/*527832*/      OPC_RecordNode, // #0 = 'ld' chained node
/*527833*/      OPC_CheckFoldableChainNode,
/*527834*/      OPC_RecordChild1, // #1 = $src2
/*527835*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*527837*/      OPC_CheckPredicate, 9, // Predicate_load
/*527839*/      OPC_MoveParent,
/*527840*/      OPC_RecordChild1, // #2 = $src1
/*527841*/      OPC_CheckPatternPredicate, 127, // (Subtarget->hasAVX()) && (!shouldOptForSize(MF))
/*527843*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*527846*/      OPC_EmitMergeInputChains1_0,
/*527847*/      OPC_EmitInteger, MVT::i8, 14, 
/*527850*/      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>>, VR128:{ *:[v4f32] }:$src1) - Complexity = 25
                // Dst: (VBLENDPSrmi:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, 14:{ *:[i8] })
/*527863*/    /*Scope*/ 38, /*->527902*/
/*527864*/      OPC_RecordChild0, // #0 = $src1
/*527865*/      OPC_MoveChild1,
/*527866*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*527869*/      OPC_RecordMemRef,
/*527870*/      OPC_RecordNode, // #1 = 'ld' chained node
/*527871*/      OPC_CheckFoldableChainNode,
/*527872*/      OPC_RecordChild1, // #2 = $src2
/*527873*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*527875*/      OPC_CheckPredicate, 9, // Predicate_load
/*527877*/      OPC_CheckPredicate, 39, // Predicate_memop
/*527879*/      OPC_MoveParent,
/*527880*/      OPC_CheckPatternPredicate, 128, // (!shouldOptForSize(MF)) && (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*527882*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*527885*/      OPC_EmitMergeInputChains1_1,
/*527886*/      OPC_EmitInteger, MVT::i8, 1, 
/*527889*/      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_memop>>) - Complexity = 25
                // Dst: (BLENDPSrmi:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, 1:{ *:[i8] })
/*527902*/    /*Scope*/ 38, /*->527941*/
/*527903*/      OPC_MoveChild0,
/*527904*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*527907*/      OPC_RecordMemRef,
/*527908*/      OPC_RecordNode, // #0 = 'ld' chained node
/*527909*/      OPC_CheckFoldableChainNode,
/*527910*/      OPC_RecordChild1, // #1 = $src2
/*527911*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*527913*/      OPC_CheckPredicate, 9, // Predicate_load
/*527915*/      OPC_CheckPredicate, 39, // Predicate_memop
/*527917*/      OPC_MoveParent,
/*527918*/      OPC_RecordChild1, // #2 = $src1
/*527919*/      OPC_CheckPatternPredicate, 128, // (!shouldOptForSize(MF)) && (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*527921*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*527924*/      OPC_EmitMergeInputChains1_0,
/*527925*/      OPC_EmitInteger, MVT::i8, 14, 
/*527928*/      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_memop>>, VR128:{ *:[v4f32] }:$src1) - Complexity = 25
                // Dst: (BLENDPSrmi:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, 14:{ *:[i8] })
/*527941*/    /*Scope*/ 15|128,41/*5263*/, /*->533206*/
/*527943*/      OPC_RecordChild0, // #0 = $src1
/*527944*/      OPC_Scope, 71|128,40/*5191*/, /*->533138*/ // 2 children in Scope
/*527947*/        OPC_MoveChild1,
/*527948*/        OPC_SwitchOpcode /*2 cases */, 127|128,39/*5119*/, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->533072
/*527953*/          OPC_MoveChild0,
/*527954*/          OPC_SwitchOpcode /*26 cases */, 37|128,12/*1573*/, TARGET_VAL(X86ISD::SELECTS),// ->529532
/*527959*/            OPC_RecordChild0, // #1 = $mask
/*527960*/            OPC_Scope, 86|128,11/*1494*/, /*->529457*/ // 2 children in Scope
/*527963*/              OPC_MoveChild1,
/*527964*/              OPC_SwitchOpcode /*9 cases */, 66|128,1/*194*/, TARGET_VAL(ISD::FADD),// ->528163
/*527969*/                OPC_Scope, 44, /*->528015*/ // 4 children in Scope
/*527971*/                  OPC_MoveChild0,
/*527972*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*527975*/                  OPC_CheckChild0Same, 0,
/*527977*/                  OPC_CheckChild1Integer, 0, 
/*527979*/                  OPC_MoveParent,
/*527980*/                  OPC_RecordChild1, // #2 = $src2
/*527981*/                  OPC_MoveParent,
/*527982*/                  OPC_MoveChild2,
/*527983*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*527986*/                  OPC_CheckPredicate, 93, // Predicate_fp32imm0
/*527988*/                  OPC_MoveParent,
/*527989*/                  OPC_CheckType, MVT::f32,
/*527991*/                  OPC_MoveParent,
/*527992*/                  OPC_MoveParent,
/*527993*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*527995*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*527998*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 3,  // Results = #4
/*528006*/                  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] }))
/*528015*/                /*Scope*/ 44, /*->528060*/
/*528016*/                  OPC_RecordChild0, // #2 = $src2
/*528017*/                  OPC_MoveChild1,
/*528018*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*528021*/                  OPC_CheckChild0Same, 0,
/*528023*/                  OPC_CheckChild1Integer, 0, 
/*528025*/                  OPC_MoveParent,
/*528026*/                  OPC_MoveParent,
/*528027*/                  OPC_MoveChild2,
/*528028*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*528031*/                  OPC_CheckPredicate, 93, // Predicate_fp32imm0
/*528033*/                  OPC_MoveParent,
/*528034*/                  OPC_CheckType, MVT::f32,
/*528036*/                  OPC_MoveParent,
/*528037*/                  OPC_MoveParent,
/*528038*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*528040*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*528043*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 3,  // Results = #4
/*528051*/                  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] }))
/*528060*/                /*Scope*/ 50, /*->528111*/
/*528061*/                  OPC_MoveChild0,
/*528062*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*528065*/                  OPC_CheckChild0Same, 0,
/*528067*/                  OPC_CheckChild1Integer, 0, 
/*528069*/                  OPC_MoveParent,
/*528070*/                  OPC_RecordChild1, // #2 = $src2
/*528071*/                  OPC_MoveParent,
/*528072*/                  OPC_RecordChild2, // #3 = $src0
/*528073*/                  OPC_CheckType, MVT::f32,
/*528075*/                  OPC_MoveParent,
/*528076*/                  OPC_MoveParent,
/*528077*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*528079*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*528082*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 4,  // Results = #5
/*528090*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*528093*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 6,  // Results = #7
/*528101*/                  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] }))
/*528111*/                /*Scope*/ 50, /*->528162*/
/*528112*/                  OPC_RecordChild0, // #2 = $src2
/*528113*/                  OPC_MoveChild1,
/*528114*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*528117*/                  OPC_CheckChild0Same, 0,
/*528119*/                  OPC_CheckChild1Integer, 0, 
/*528121*/                  OPC_MoveParent,
/*528122*/                  OPC_MoveParent,
/*528123*/                  OPC_RecordChild2, // #3 = $src0
/*528124*/                  OPC_CheckType, MVT::f32,
/*528126*/                  OPC_MoveParent,
/*528127*/                  OPC_MoveParent,
/*528128*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*528130*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*528133*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 4,  // Results = #5
/*528141*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*528144*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 6,  // Results = #7
/*528152*/                  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] }))
/*528162*/                0, /*End of Scope*/
/*528163*/              /*SwitchOpcode*/ 87, TARGET_VAL(ISD::FSUB),// ->528253
/*528166*/                OPC_MoveChild0,
/*528167*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*528170*/                OPC_CheckChild0Same, 0,
/*528172*/                OPC_CheckChild1Integer, 0, 
/*528174*/                OPC_MoveParent,
/*528175*/                OPC_RecordChild1, // #2 = $src2
/*528176*/                OPC_MoveParent,
/*528177*/                OPC_Scope, 33, /*->528212*/ // 2 children in Scope
/*528179*/                  OPC_MoveChild2,
/*528180*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*528183*/                  OPC_CheckPredicate, 93, // Predicate_fp32imm0
/*528185*/                  OPC_MoveParent,
/*528186*/                  OPC_CheckType, MVT::f32,
/*528188*/                  OPC_MoveParent,
/*528189*/                  OPC_MoveParent,
/*528190*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*528192*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*528195*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 3,  // Results = #4
/*528203*/                  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] }))
/*528212*/                /*Scope*/ 39, /*->528252*/
/*528213*/                  OPC_RecordChild2, // #3 = $src0
/*528214*/                  OPC_CheckType, MVT::f32,
/*528216*/                  OPC_MoveParent,
/*528217*/                  OPC_MoveParent,
/*528218*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*528220*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*528223*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 4,  // Results = #5
/*528231*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*528234*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 6,  // Results = #7
/*528242*/                  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] }))
/*528252*/                0, /*End of Scope*/
/*528253*/              /*SwitchOpcode*/ 66|128,1/*194*/, TARGET_VAL(ISD::FMUL),// ->528451
/*528257*/                OPC_Scope, 44, /*->528303*/ // 4 children in Scope
/*528259*/                  OPC_MoveChild0,
/*528260*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*528263*/                  OPC_CheckChild0Same, 0,
/*528265*/                  OPC_CheckChild1Integer, 0, 
/*528267*/                  OPC_MoveParent,
/*528268*/                  OPC_RecordChild1, // #2 = $src2
/*528269*/                  OPC_MoveParent,
/*528270*/                  OPC_MoveChild2,
/*528271*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*528274*/                  OPC_CheckPredicate, 93, // Predicate_fp32imm0
/*528276*/                  OPC_MoveParent,
/*528277*/                  OPC_CheckType, MVT::f32,
/*528279*/                  OPC_MoveParent,
/*528280*/                  OPC_MoveParent,
/*528281*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*528283*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*528286*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 3,  // Results = #4
/*528294*/                  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] }))
/*528303*/                /*Scope*/ 44, /*->528348*/
/*528304*/                  OPC_RecordChild0, // #2 = $src2
/*528305*/                  OPC_MoveChild1,
/*528306*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*528309*/                  OPC_CheckChild0Same, 0,
/*528311*/                  OPC_CheckChild1Integer, 0, 
/*528313*/                  OPC_MoveParent,
/*528314*/                  OPC_MoveParent,
/*528315*/                  OPC_MoveChild2,
/*528316*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*528319*/                  OPC_CheckPredicate, 93, // Predicate_fp32imm0
/*528321*/                  OPC_MoveParent,
/*528322*/                  OPC_CheckType, MVT::f32,
/*528324*/                  OPC_MoveParent,
/*528325*/                  OPC_MoveParent,
/*528326*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*528328*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*528331*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 3,  // Results = #4
/*528339*/                  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] }))
/*528348*/                /*Scope*/ 50, /*->528399*/
/*528349*/                  OPC_MoveChild0,
/*528350*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*528353*/                  OPC_CheckChild0Same, 0,
/*528355*/                  OPC_CheckChild1Integer, 0, 
/*528357*/                  OPC_MoveParent,
/*528358*/                  OPC_RecordChild1, // #2 = $src2
/*528359*/                  OPC_MoveParent,
/*528360*/                  OPC_RecordChild2, // #3 = $src0
/*528361*/                  OPC_CheckType, MVT::f32,
/*528363*/                  OPC_MoveParent,
/*528364*/                  OPC_MoveParent,
/*528365*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*528367*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*528370*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 4,  // Results = #5
/*528378*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*528381*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 6,  // Results = #7
/*528389*/                  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] }))
/*528399*/                /*Scope*/ 50, /*->528450*/
/*528400*/                  OPC_RecordChild0, // #2 = $src2
/*528401*/                  OPC_MoveChild1,
/*528402*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*528405*/                  OPC_CheckChild0Same, 0,
/*528407*/                  OPC_CheckChild1Integer, 0, 
/*528409*/                  OPC_MoveParent,
/*528410*/                  OPC_MoveParent,
/*528411*/                  OPC_RecordChild2, // #3 = $src0
/*528412*/                  OPC_CheckType, MVT::f32,
/*528414*/                  OPC_MoveParent,
/*528415*/                  OPC_MoveParent,
/*528416*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*528418*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*528421*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 4,  // Results = #5
/*528429*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*528432*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 6,  // Results = #7
/*528440*/                  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] }))
/*528450*/                0, /*End of Scope*/
/*528451*/              /*SwitchOpcode*/ 87, TARGET_VAL(ISD::FDIV),// ->528541
/*528454*/                OPC_MoveChild0,
/*528455*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*528458*/                OPC_CheckChild0Same, 0,
/*528460*/                OPC_CheckChild1Integer, 0, 
/*528462*/                OPC_MoveParent,
/*528463*/                OPC_RecordChild1, // #2 = $src2
/*528464*/                OPC_MoveParent,
/*528465*/                OPC_Scope, 33, /*->528500*/ // 2 children in Scope
/*528467*/                  OPC_MoveChild2,
/*528468*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*528471*/                  OPC_CheckPredicate, 93, // Predicate_fp32imm0
/*528473*/                  OPC_MoveParent,
/*528474*/                  OPC_CheckType, MVT::f32,
/*528476*/                  OPC_MoveParent,
/*528477*/                  OPC_MoveParent,
/*528478*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*528480*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*528483*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 3,  // Results = #4
/*528491*/                  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] }))
/*528500*/                /*Scope*/ 39, /*->528540*/
/*528501*/                  OPC_RecordChild2, // #3 = $src0
/*528502*/                  OPC_CheckType, MVT::f32,
/*528504*/                  OPC_MoveParent,
/*528505*/                  OPC_MoveParent,
/*528506*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*528508*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*528511*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 4,  // Results = #5
/*528519*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*528522*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 6,  // Results = #7
/*528530*/                  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] }))
/*528540*/                0, /*End of Scope*/
/*528541*/              /*SwitchOpcode*/ 55|128,1/*183*/, TARGET_VAL(ISD::STRICT_FMA),// ->528728
/*528545*/                OPC_RecordNode, // #2 = 'X86strict_Fmadd' chained node
/*528546*/                OPC_CheckFoldableChainNode,
/*528547*/                OPC_Scope, 119, /*->528668*/ // 2 children in Scope
/*528549*/                  OPC_RecordChild1, // #3 = $src2
/*528550*/                  OPC_Scope, 57, /*->528609*/ // 2 children in Scope
/*528552*/                    OPC_MoveChild2,
/*528553*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*528556*/                    OPC_CheckChild0Same, 0,
/*528558*/                    OPC_CheckChild1Integer, 0, 
/*528560*/                    OPC_MoveParent,
/*528561*/                    OPC_RecordChild3, // #4 = $src3
/*528562*/                    OPC_MoveParent,
/*528563*/                    OPC_MoveChild2,
/*528564*/                    OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*528567*/                    OPC_CheckPredicate, 93, // Predicate_fp32imm0
/*528569*/                    OPC_MoveParent,
/*528570*/                    OPC_CheckType, MVT::f32,
/*528572*/                    OPC_MoveParent,
/*528573*/                    OPC_MoveParent,
/*528574*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*528576*/                    OPC_EmitMergeInputChains1_2,
/*528577*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*528580*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v4f32, 2/*#Ops*/, 3, 5,  // Results = #6
/*528588*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*528591*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v4f32, 2/*#Ops*/, 4, 7,  // Results = #8
/*528599*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SSZr_Intkz), 0|OPFL_Chain,
                                  MVT::v4f32, 4/*#Ops*/, 0, 1, 6, 8, 
                              // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86strict_Fmadd:{ *:[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] }))
/*528609*/                  /*Scope*/ 57, /*->528667*/
/*528610*/                    OPC_RecordChild2, // #4 = $src3
/*528611*/                    OPC_MoveChild3,
/*528612*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*528615*/                    OPC_CheckChild0Same, 0,
/*528617*/                    OPC_CheckChild1Integer, 0, 
/*528619*/                    OPC_MoveParent,
/*528620*/                    OPC_MoveParent,
/*528621*/                    OPC_MoveChild2,
/*528622*/                    OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*528625*/                    OPC_CheckPredicate, 93, // Predicate_fp32imm0
/*528627*/                    OPC_MoveParent,
/*528628*/                    OPC_CheckType, MVT::f32,
/*528630*/                    OPC_MoveParent,
/*528631*/                    OPC_MoveParent,
/*528632*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*528634*/                    OPC_EmitMergeInputChains1_2,
/*528635*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*528638*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v4f32, 2/*#Ops*/, 3, 5,  // Results = #6
/*528646*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*528649*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v4f32, 2/*#Ops*/, 4, 7,  // Results = #8
/*528657*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SSZr_Intkz), 0|OPFL_Chain,
                                  MVT::v4f32, 4/*#Ops*/, 0, 1, 6, 8, 
                              // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86strict_Fmadd:{ *:[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] }))
/*528667*/                  0, /*End of Scope*/
/*528668*/                /*Scope*/ 58, /*->528727*/
/*528669*/                  OPC_MoveChild1,
/*528670*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*528673*/                  OPC_CheckChild0Same, 0,
/*528675*/                  OPC_CheckChild1Integer, 0, 
/*528677*/                  OPC_MoveParent,
/*528678*/                  OPC_RecordChild2, // #3 = $src2
/*528679*/                  OPC_RecordChild3, // #4 = $src3
/*528680*/                  OPC_MoveParent,
/*528681*/                  OPC_MoveChild2,
/*528682*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*528685*/                  OPC_CheckPredicate, 93, // Predicate_fp32imm0
/*528687*/                  OPC_MoveParent,
/*528688*/                  OPC_CheckType, MVT::f32,
/*528690*/                  OPC_MoveParent,
/*528691*/                  OPC_MoveParent,
/*528692*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*528694*/                  OPC_EmitMergeInputChains1_2,
/*528695*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*528698*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 5,  // Results = #6
/*528706*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*528709*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 4, 7,  // Results = #8
/*528717*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SSZr_Intkz), 0|OPFL_Chain,
                                MVT::v4f32, 4/*#Ops*/, 0, 1, 6, 8, 
                            // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86selects:{ *:[f32] } VK1WM:{ *:[v1i1] }:$mask, (X86strict_Fmadd:{ *:[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] }))
/*528727*/                0, /*End of Scope*/
/*528728*/              /*SwitchOpcode*/ 50|128,1/*178*/, TARGET_VAL(ISD::FMA),// ->528910
/*528732*/                OPC_Scope, 117, /*->528851*/ // 2 children in Scope
/*528734*/                  OPC_RecordChild0, // #2 = $src2
/*528735*/                  OPC_Scope, 56, /*->528793*/ // 2 children in Scope
/*528737*/                    OPC_MoveChild1,
/*528738*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*528741*/                    OPC_CheckChild0Same, 0,
/*528743*/                    OPC_CheckChild1Integer, 0, 
/*528745*/                    OPC_MoveParent,
/*528746*/                    OPC_RecordChild2, // #3 = $src3
/*528747*/                    OPC_MoveParent,
/*528748*/                    OPC_MoveChild2,
/*528749*/                    OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*528752*/                    OPC_CheckPredicate, 93, // Predicate_fp32imm0
/*528754*/                    OPC_MoveParent,
/*528755*/                    OPC_CheckType, MVT::f32,
/*528757*/                    OPC_MoveParent,
/*528758*/                    OPC_MoveParent,
/*528759*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*528761*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*528764*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v4f32, 2/*#Ops*/, 2, 4,  // Results = #5
/*528772*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*528775*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v4f32, 2/*#Ops*/, 3, 6,  // Results = #7
/*528783*/                    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] }))
/*528793*/                  /*Scope*/ 56, /*->528850*/
/*528794*/                    OPC_RecordChild1, // #3 = $src3
/*528795*/                    OPC_MoveChild2,
/*528796*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*528799*/                    OPC_CheckChild0Same, 0,
/*528801*/                    OPC_CheckChild1Integer, 0, 
/*528803*/                    OPC_MoveParent,
/*528804*/                    OPC_MoveParent,
/*528805*/                    OPC_MoveChild2,
/*528806*/                    OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*528809*/                    OPC_CheckPredicate, 93, // Predicate_fp32imm0
/*528811*/                    OPC_MoveParent,
/*528812*/                    OPC_CheckType, MVT::f32,
/*528814*/                    OPC_MoveParent,
/*528815*/                    OPC_MoveParent,
/*528816*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*528818*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*528821*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v4f32, 2/*#Ops*/, 2, 4,  // Results = #5
/*528829*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*528832*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v4f32, 2/*#Ops*/, 3, 6,  // Results = #7
/*528840*/                    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] }))
/*528850*/                  0, /*End of Scope*/
/*528851*/                /*Scope*/ 57, /*->528909*/
/*528852*/                  OPC_MoveChild0,
/*528853*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*528856*/                  OPC_CheckChild0Same, 0,
/*528858*/                  OPC_CheckChild1Integer, 0, 
/*528860*/                  OPC_MoveParent,
/*528861*/                  OPC_RecordChild1, // #2 = $src2
/*528862*/                  OPC_RecordChild2, // #3 = $src3
/*528863*/                  OPC_MoveParent,
/*528864*/                  OPC_MoveChild2,
/*528865*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*528868*/                  OPC_CheckPredicate, 93, // Predicate_fp32imm0
/*528870*/                  OPC_MoveParent,
/*528871*/                  OPC_CheckType, MVT::f32,
/*528873*/                  OPC_MoveParent,
/*528874*/                  OPC_MoveParent,
/*528875*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*528877*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*528880*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 4,  // Results = #5
/*528888*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*528891*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 6,  // Results = #7
/*528899*/                  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] }))
/*528909*/                0, /*End of Scope*/
/*528910*/              /*SwitchOpcode*/ 50|128,1/*178*/, TARGET_VAL(X86ISD::FMSUB),// ->529092
/*528914*/                OPC_Scope, 117, /*->529033*/ // 2 children in Scope
/*528916*/                  OPC_RecordChild0, // #2 = $src2
/*528917*/                  OPC_Scope, 56, /*->528975*/ // 2 children in Scope
/*528919*/                    OPC_MoveChild1,
/*528920*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*528923*/                    OPC_CheckChild0Same, 0,
/*528925*/                    OPC_CheckChild1Integer, 0, 
/*528927*/                    OPC_MoveParent,
/*528928*/                    OPC_RecordChild2, // #3 = $src3
/*528929*/                    OPC_MoveParent,
/*528930*/                    OPC_MoveChild2,
/*528931*/                    OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*528934*/                    OPC_CheckPredicate, 93, // Predicate_fp32imm0
/*528936*/                    OPC_MoveParent,
/*528937*/                    OPC_CheckType, MVT::f32,
/*528939*/                    OPC_MoveParent,
/*528940*/                    OPC_MoveParent,
/*528941*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*528943*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*528946*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v4f32, 2/*#Ops*/, 2, 4,  // Results = #5
/*528954*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*528957*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v4f32, 2/*#Ops*/, 3, 6,  // Results = #7
/*528965*/                    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] }))
/*528975*/                  /*Scope*/ 56, /*->529032*/
/*528976*/                    OPC_RecordChild1, // #3 = $src3
/*528977*/                    OPC_MoveChild2,
/*528978*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*528981*/                    OPC_CheckChild0Same, 0,
/*528983*/                    OPC_CheckChild1Integer, 0, 
/*528985*/                    OPC_MoveParent,
/*528986*/                    OPC_MoveParent,
/*528987*/                    OPC_MoveChild2,
/*528988*/                    OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*528991*/                    OPC_CheckPredicate, 93, // Predicate_fp32imm0
/*528993*/                    OPC_MoveParent,
/*528994*/                    OPC_CheckType, MVT::f32,
/*528996*/                    OPC_MoveParent,
/*528997*/                    OPC_MoveParent,
/*528998*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*529000*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*529003*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v4f32, 2/*#Ops*/, 2, 4,  // Results = #5
/*529011*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*529014*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v4f32, 2/*#Ops*/, 3, 6,  // Results = #7
/*529022*/                    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] }))
/*529032*/                  0, /*End of Scope*/
/*529033*/                /*Scope*/ 57, /*->529091*/
/*529034*/                  OPC_MoveChild0,
/*529035*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*529038*/                  OPC_CheckChild0Same, 0,
/*529040*/                  OPC_CheckChild1Integer, 0, 
/*529042*/                  OPC_MoveParent,
/*529043*/                  OPC_RecordChild1, // #2 = $src2
/*529044*/                  OPC_RecordChild2, // #3 = $src3
/*529045*/                  OPC_MoveParent,
/*529046*/                  OPC_MoveChild2,
/*529047*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*529050*/                  OPC_CheckPredicate, 93, // Predicate_fp32imm0
/*529052*/                  OPC_MoveParent,
/*529053*/                  OPC_CheckType, MVT::f32,
/*529055*/                  OPC_MoveParent,
/*529056*/                  OPC_MoveParent,
/*529057*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*529059*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*529062*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 4,  // Results = #5
/*529070*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*529073*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 6,  // Results = #7
/*529081*/                  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] }))
/*529091*/                0, /*End of Scope*/
/*529092*/              /*SwitchOpcode*/ 50|128,1/*178*/, TARGET_VAL(X86ISD::FNMADD),// ->529274
/*529096*/                OPC_Scope, 117, /*->529215*/ // 2 children in Scope
/*529098*/                  OPC_RecordChild0, // #2 = $src2
/*529099*/                  OPC_Scope, 56, /*->529157*/ // 2 children in Scope
/*529101*/                    OPC_MoveChild1,
/*529102*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*529105*/                    OPC_CheckChild0Same, 0,
/*529107*/                    OPC_CheckChild1Integer, 0, 
/*529109*/                    OPC_MoveParent,
/*529110*/                    OPC_RecordChild2, // #3 = $src3
/*529111*/                    OPC_MoveParent,
/*529112*/                    OPC_MoveChild2,
/*529113*/                    OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*529116*/                    OPC_CheckPredicate, 93, // Predicate_fp32imm0
/*529118*/                    OPC_MoveParent,
/*529119*/                    OPC_CheckType, MVT::f32,
/*529121*/                    OPC_MoveParent,
/*529122*/                    OPC_MoveParent,
/*529123*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*529125*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*529128*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v4f32, 2/*#Ops*/, 2, 4,  // Results = #5
/*529136*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*529139*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v4f32, 2/*#Ops*/, 3, 6,  // Results = #7
/*529147*/                    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] }))
/*529157*/                  /*Scope*/ 56, /*->529214*/
/*529158*/                    OPC_RecordChild1, // #3 = $src3
/*529159*/                    OPC_MoveChild2,
/*529160*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*529163*/                    OPC_CheckChild0Same, 0,
/*529165*/                    OPC_CheckChild1Integer, 0, 
/*529167*/                    OPC_MoveParent,
/*529168*/                    OPC_MoveParent,
/*529169*/                    OPC_MoveChild2,
/*529170*/                    OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*529173*/                    OPC_CheckPredicate, 93, // Predicate_fp32imm0
/*529175*/                    OPC_MoveParent,
/*529176*/                    OPC_CheckType, MVT::f32,
/*529178*/                    OPC_MoveParent,
/*529179*/                    OPC_MoveParent,
/*529180*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*529182*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*529185*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v4f32, 2/*#Ops*/, 2, 4,  // Results = #5
/*529193*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*529196*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v4f32, 2/*#Ops*/, 3, 6,  // Results = #7
/*529204*/                    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] }))
/*529214*/                  0, /*End of Scope*/
/*529215*/                /*Scope*/ 57, /*->529273*/
/*529216*/                  OPC_MoveChild0,
/*529217*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*529220*/                  OPC_CheckChild0Same, 0,
/*529222*/                  OPC_CheckChild1Integer, 0, 
/*529224*/                  OPC_MoveParent,
/*529225*/                  OPC_RecordChild1, // #2 = $src2
/*529226*/                  OPC_RecordChild2, // #3 = $src3
/*529227*/                  OPC_MoveParent,
/*529228*/                  OPC_MoveChild2,
/*529229*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*529232*/                  OPC_CheckPredicate, 93, // Predicate_fp32imm0
/*529234*/                  OPC_MoveParent,
/*529235*/                  OPC_CheckType, MVT::f32,
/*529237*/                  OPC_MoveParent,
/*529238*/                  OPC_MoveParent,
/*529239*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*529241*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*529244*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 4,  // Results = #5
/*529252*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*529255*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 6,  // Results = #7
/*529263*/                  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] }))
/*529273*/                0, /*End of Scope*/
/*529274*/              /*SwitchOpcode*/ 50|128,1/*178*/, TARGET_VAL(X86ISD::FNMSUB),// ->529456
/*529278*/                OPC_Scope, 117, /*->529397*/ // 2 children in Scope
/*529280*/                  OPC_RecordChild0, // #2 = $src2
/*529281*/                  OPC_Scope, 56, /*->529339*/ // 2 children in Scope
/*529283*/                    OPC_MoveChild1,
/*529284*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*529287*/                    OPC_CheckChild0Same, 0,
/*529289*/                    OPC_CheckChild1Integer, 0, 
/*529291*/                    OPC_MoveParent,
/*529292*/                    OPC_RecordChild2, // #3 = $src3
/*529293*/                    OPC_MoveParent,
/*529294*/                    OPC_MoveChild2,
/*529295*/                    OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*529298*/                    OPC_CheckPredicate, 93, // Predicate_fp32imm0
/*529300*/                    OPC_MoveParent,
/*529301*/                    OPC_CheckType, MVT::f32,
/*529303*/                    OPC_MoveParent,
/*529304*/                    OPC_MoveParent,
/*529305*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*529307*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*529310*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v4f32, 2/*#Ops*/, 2, 4,  // Results = #5
/*529318*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*529321*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v4f32, 2/*#Ops*/, 3, 6,  // Results = #7
/*529329*/                    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] }))
/*529339*/                  /*Scope*/ 56, /*->529396*/
/*529340*/                    OPC_RecordChild1, // #3 = $src3
/*529341*/                    OPC_MoveChild2,
/*529342*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*529345*/                    OPC_CheckChild0Same, 0,
/*529347*/                    OPC_CheckChild1Integer, 0, 
/*529349*/                    OPC_MoveParent,
/*529350*/                    OPC_MoveParent,
/*529351*/                    OPC_MoveChild2,
/*529352*/                    OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*529355*/                    OPC_CheckPredicate, 93, // Predicate_fp32imm0
/*529357*/                    OPC_MoveParent,
/*529358*/                    OPC_CheckType, MVT::f32,
/*529360*/                    OPC_MoveParent,
/*529361*/                    OPC_MoveParent,
/*529362*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*529364*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*529367*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v4f32, 2/*#Ops*/, 2, 4,  // Results = #5
/*529375*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*529378*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v4f32, 2/*#Ops*/, 3, 6,  // Results = #7
/*529386*/                    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] }))
/*529396*/                  0, /*End of Scope*/
/*529397*/                /*Scope*/ 57, /*->529455*/
/*529398*/                  OPC_MoveChild0,
/*529399*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*529402*/                  OPC_CheckChild0Same, 0,
/*529404*/                  OPC_CheckChild1Integer, 0, 
/*529406*/                  OPC_MoveParent,
/*529407*/                  OPC_RecordChild1, // #2 = $src2
/*529408*/                  OPC_RecordChild2, // #3 = $src3
/*529409*/                  OPC_MoveParent,
/*529410*/                  OPC_MoveChild2,
/*529411*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*529414*/                  OPC_CheckPredicate, 93, // Predicate_fp32imm0
/*529416*/                  OPC_MoveParent,
/*529417*/                  OPC_CheckType, MVT::f32,
/*529419*/                  OPC_MoveParent,
/*529420*/                  OPC_MoveParent,
/*529421*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*529423*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*529426*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 2, 4,  // Results = #5
/*529434*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*529437*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v4f32, 2/*#Ops*/, 3, 6,  // Results = #7
/*529445*/                  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] }))
/*529455*/                0, /*End of Scope*/
/*529456*/              0, // EndSwitchOpcode
/*529457*/            /*Scope*/ 73, /*->529531*/
/*529458*/              OPC_RecordChild1, // #2 = $src1
/*529459*/              OPC_Scope, 31, /*->529492*/ // 2 children in Scope
/*529461*/                OPC_MoveChild2,
/*529462*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*529465*/                OPC_CheckPredicate, 93, // Predicate_fp32imm0
/*529467*/                OPC_MoveParent,
/*529468*/                OPC_CheckType, MVT::f32,
/*529470*/                OPC_MoveParent,
/*529471*/                OPC_MoveParent,
/*529472*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*529475*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 3,  // Results = #4
/*529483*/                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] }))
/*529492*/              /*Scope*/ 37, /*->529530*/
/*529493*/                OPC_RecordChild2, // #3 = $src2
/*529494*/                OPC_CheckType, MVT::f32,
/*529496*/                OPC_MoveParent,
/*529497*/                OPC_MoveParent,
/*529498*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*529501*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 4,  // Results = #5
/*529509*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*529512*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 6,  // Results = #7
/*529520*/                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] }))
/*529530*/              0, /*End of Scope*/
/*529531*/            0, /*End of Scope*/
/*529532*/          /*SwitchOpcode*/ 44|128,1/*172*/, TARGET_VAL(X86ISD::FMADD_RND),// ->529708
/*529536*/            OPC_Scope, 113, /*->529651*/ // 2 children in Scope
/*529538*/              OPC_RecordChild0, // #1 = $src2
/*529539*/              OPC_Scope, 54, /*->529595*/ // 2 children in Scope
/*529541*/                OPC_MoveChild1,
/*529542*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*529545*/                OPC_CheckChild0Same, 0,
/*529547*/                OPC_CheckChild1Integer, 0, 
/*529549*/                OPC_MoveParent,
/*529550*/                OPC_RecordChild2, // #2 = $src3
/*529551*/                OPC_RecordChild3, // #3 = $rc
/*529552*/                OPC_MoveChild3,
/*529553*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*529556*/                OPC_MoveParent,
/*529557*/                OPC_CheckType, MVT::f32,
/*529559*/                OPC_MoveParent,
/*529560*/                OPC_MoveParent,
/*529561*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*529563*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*529566*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 4,  // Results = #5
/*529574*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*529577*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 6,  // Results = #7
/*529585*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SSZrb_Int), 0,
                              MVT::v4f32, 4/*#Ops*/, 0, 5, 7, 3, 
                          // 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, (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*529595*/              /*Scope*/ 54, /*->529650*/
/*529596*/                OPC_RecordChild1, // #2 = $src3
/*529597*/                OPC_MoveChild2,
/*529598*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*529601*/                OPC_CheckChild0Same, 0,
/*529603*/                OPC_CheckChild1Integer, 0, 
/*529605*/                OPC_MoveParent,
/*529606*/                OPC_RecordChild3, // #3 = $rc
/*529607*/                OPC_MoveChild3,
/*529608*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*529611*/                OPC_MoveParent,
/*529612*/                OPC_CheckType, MVT::f32,
/*529614*/                OPC_MoveParent,
/*529615*/                OPC_MoveParent,
/*529616*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*529618*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*529621*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 4,  // Results = #5
/*529629*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*529632*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 6,  // Results = #7
/*529640*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SSZrb_Int), 0,
                              MVT::v4f32, 4/*#Ops*/, 0, 5, 7, 3, 
                          // 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] }), (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*529650*/              0, /*End of Scope*/
/*529651*/            /*Scope*/ 55, /*->529707*/
/*529652*/              OPC_MoveChild0,
/*529653*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*529656*/              OPC_CheckChild0Same, 0,
/*529658*/              OPC_CheckChild1Integer, 0, 
/*529660*/              OPC_MoveParent,
/*529661*/              OPC_RecordChild1, // #1 = $src2
/*529662*/              OPC_RecordChild2, // #2 = $src3
/*529663*/              OPC_RecordChild3, // #3 = $rc
/*529664*/              OPC_MoveChild3,
/*529665*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*529668*/              OPC_MoveParent,
/*529669*/              OPC_CheckType, MVT::f32,
/*529671*/              OPC_MoveParent,
/*529672*/              OPC_MoveParent,
/*529673*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*529675*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*529678*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 1, 4,  // Results = #5
/*529686*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*529689*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 2, 6,  // Results = #7
/*529697*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SSZrb_Int), 0,
                            MVT::v4f32, 4/*#Ops*/, 0, 5, 7, 3, 
                        // 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, (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*529707*/            0, /*End of Scope*/
/*529708*/          /*SwitchOpcode*/ 44|128,1/*172*/, TARGET_VAL(X86ISD::FMSUB_RND),// ->529884
/*529712*/            OPC_Scope, 113, /*->529827*/ // 2 children in Scope
/*529714*/              OPC_RecordChild0, // #1 = $src2
/*529715*/              OPC_Scope, 54, /*->529771*/ // 2 children in Scope
/*529717*/                OPC_MoveChild1,
/*529718*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*529721*/                OPC_CheckChild0Same, 0,
/*529723*/                OPC_CheckChild1Integer, 0, 
/*529725*/                OPC_MoveParent,
/*529726*/                OPC_RecordChild2, // #2 = $src3
/*529727*/                OPC_RecordChild3, // #3 = $rc
/*529728*/                OPC_MoveChild3,
/*529729*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*529732*/                OPC_MoveParent,
/*529733*/                OPC_CheckType, MVT::f32,
/*529735*/                OPC_MoveParent,
/*529736*/                OPC_MoveParent,
/*529737*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*529739*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*529742*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 4,  // Results = #5
/*529750*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*529753*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 6,  // Results = #7
/*529761*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213SSZrb_Int), 0,
                              MVT::v4f32, 4/*#Ops*/, 0, 5, 7, 3, 
                          // 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, (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*529771*/              /*Scope*/ 54, /*->529826*/
/*529772*/                OPC_RecordChild1, // #2 = $src3
/*529773*/                OPC_MoveChild2,
/*529774*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*529777*/                OPC_CheckChild0Same, 0,
/*529779*/                OPC_CheckChild1Integer, 0, 
/*529781*/                OPC_MoveParent,
/*529782*/                OPC_RecordChild3, // #3 = $rc
/*529783*/                OPC_MoveChild3,
/*529784*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*529787*/                OPC_MoveParent,
/*529788*/                OPC_CheckType, MVT::f32,
/*529790*/                OPC_MoveParent,
/*529791*/                OPC_MoveParent,
/*529792*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*529794*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*529797*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 4,  // Results = #5
/*529805*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*529808*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 6,  // Results = #7
/*529816*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231SSZrb_Int), 0,
                              MVT::v4f32, 4/*#Ops*/, 0, 5, 7, 3, 
                          // 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] }), (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*529826*/              0, /*End of Scope*/
/*529827*/            /*Scope*/ 55, /*->529883*/
/*529828*/              OPC_MoveChild0,
/*529829*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*529832*/              OPC_CheckChild0Same, 0,
/*529834*/              OPC_CheckChild1Integer, 0, 
/*529836*/              OPC_MoveParent,
/*529837*/              OPC_RecordChild1, // #1 = $src2
/*529838*/              OPC_RecordChild2, // #2 = $src3
/*529839*/              OPC_RecordChild3, // #3 = $rc
/*529840*/              OPC_MoveChild3,
/*529841*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*529844*/              OPC_MoveParent,
/*529845*/              OPC_CheckType, MVT::f32,
/*529847*/              OPC_MoveParent,
/*529848*/              OPC_MoveParent,
/*529849*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*529851*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*529854*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 1, 4,  // Results = #5
/*529862*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*529865*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 2, 6,  // Results = #7
/*529873*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213SSZrb_Int), 0,
                            MVT::v4f32, 4/*#Ops*/, 0, 5, 7, 3, 
                        // 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, (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*529883*/            0, /*End of Scope*/
/*529884*/          /*SwitchOpcode*/ 44|128,1/*172*/, TARGET_VAL(X86ISD::FNMADD_RND),// ->530060
/*529888*/            OPC_Scope, 113, /*->530003*/ // 2 children in Scope
/*529890*/              OPC_RecordChild0, // #1 = $src2
/*529891*/              OPC_Scope, 54, /*->529947*/ // 2 children in Scope
/*529893*/                OPC_MoveChild1,
/*529894*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*529897*/                OPC_CheckChild0Same, 0,
/*529899*/                OPC_CheckChild1Integer, 0, 
/*529901*/                OPC_MoveParent,
/*529902*/                OPC_RecordChild2, // #2 = $src3
/*529903*/                OPC_RecordChild3, // #3 = $rc
/*529904*/                OPC_MoveChild3,
/*529905*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*529908*/                OPC_MoveParent,
/*529909*/                OPC_CheckType, MVT::f32,
/*529911*/                OPC_MoveParent,
/*529912*/                OPC_MoveParent,
/*529913*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*529915*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*529918*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 4,  // Results = #5
/*529926*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*529929*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 6,  // Results = #7
/*529937*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213SSZrb_Int), 0,
                              MVT::v4f32, 4/*#Ops*/, 0, 5, 7, 3, 
                          // 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, (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*529947*/              /*Scope*/ 54, /*->530002*/
/*529948*/                OPC_RecordChild1, // #2 = $src3
/*529949*/                OPC_MoveChild2,
/*529950*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*529953*/                OPC_CheckChild0Same, 0,
/*529955*/                OPC_CheckChild1Integer, 0, 
/*529957*/                OPC_MoveParent,
/*529958*/                OPC_RecordChild3, // #3 = $rc
/*529959*/                OPC_MoveChild3,
/*529960*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*529963*/                OPC_MoveParent,
/*529964*/                OPC_CheckType, MVT::f32,
/*529966*/                OPC_MoveParent,
/*529967*/                OPC_MoveParent,
/*529968*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*529970*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*529973*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 4,  // Results = #5
/*529981*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*529984*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 6,  // Results = #7
/*529992*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231SSZrb_Int), 0,
                              MVT::v4f32, 4/*#Ops*/, 0, 5, 7, 3, 
                          // 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] }), (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*530002*/              0, /*End of Scope*/
/*530003*/            /*Scope*/ 55, /*->530059*/
/*530004*/              OPC_MoveChild0,
/*530005*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*530008*/              OPC_CheckChild0Same, 0,
/*530010*/              OPC_CheckChild1Integer, 0, 
/*530012*/              OPC_MoveParent,
/*530013*/              OPC_RecordChild1, // #1 = $src2
/*530014*/              OPC_RecordChild2, // #2 = $src3
/*530015*/              OPC_RecordChild3, // #3 = $rc
/*530016*/              OPC_MoveChild3,
/*530017*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*530020*/              OPC_MoveParent,
/*530021*/              OPC_CheckType, MVT::f32,
/*530023*/              OPC_MoveParent,
/*530024*/              OPC_MoveParent,
/*530025*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*530027*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*530030*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 1, 4,  // Results = #5
/*530038*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*530041*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 2, 6,  // Results = #7
/*530049*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213SSZrb_Int), 0,
                            MVT::v4f32, 4/*#Ops*/, 0, 5, 7, 3, 
                        // 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, (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*530059*/            0, /*End of Scope*/
/*530060*/          /*SwitchOpcode*/ 44|128,1/*172*/, TARGET_VAL(X86ISD::FNMSUB_RND),// ->530236
/*530064*/            OPC_Scope, 113, /*->530179*/ // 2 children in Scope
/*530066*/              OPC_RecordChild0, // #1 = $src2
/*530067*/              OPC_Scope, 54, /*->530123*/ // 2 children in Scope
/*530069*/                OPC_MoveChild1,
/*530070*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*530073*/                OPC_CheckChild0Same, 0,
/*530075*/                OPC_CheckChild1Integer, 0, 
/*530077*/                OPC_MoveParent,
/*530078*/                OPC_RecordChild2, // #2 = $src3
/*530079*/                OPC_RecordChild3, // #3 = $rc
/*530080*/                OPC_MoveChild3,
/*530081*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*530084*/                OPC_MoveParent,
/*530085*/                OPC_CheckType, MVT::f32,
/*530087*/                OPC_MoveParent,
/*530088*/                OPC_MoveParent,
/*530089*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*530091*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*530094*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 4,  // Results = #5
/*530102*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*530105*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 6,  // Results = #7
/*530113*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213SSZrb_Int), 0,
                              MVT::v4f32, 4/*#Ops*/, 0, 5, 7, 3, 
                          // 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, (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*530123*/              /*Scope*/ 54, /*->530178*/
/*530124*/                OPC_RecordChild1, // #2 = $src3
/*530125*/                OPC_MoveChild2,
/*530126*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*530129*/                OPC_CheckChild0Same, 0,
/*530131*/                OPC_CheckChild1Integer, 0, 
/*530133*/                OPC_MoveParent,
/*530134*/                OPC_RecordChild3, // #3 = $rc
/*530135*/                OPC_MoveChild3,
/*530136*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*530139*/                OPC_MoveParent,
/*530140*/                OPC_CheckType, MVT::f32,
/*530142*/                OPC_MoveParent,
/*530143*/                OPC_MoveParent,
/*530144*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*530146*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*530149*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 4,  // Results = #5
/*530157*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*530160*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 6,  // Results = #7
/*530168*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231SSZrb_Int), 0,
                              MVT::v4f32, 4/*#Ops*/, 0, 5, 7, 3, 
                          // 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] }), (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*530178*/              0, /*End of Scope*/
/*530179*/            /*Scope*/ 55, /*->530235*/
/*530180*/              OPC_MoveChild0,
/*530181*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*530184*/              OPC_CheckChild0Same, 0,
/*530186*/              OPC_CheckChild1Integer, 0, 
/*530188*/              OPC_MoveParent,
/*530189*/              OPC_RecordChild1, // #1 = $src2
/*530190*/              OPC_RecordChild2, // #2 = $src3
/*530191*/              OPC_RecordChild3, // #3 = $rc
/*530192*/              OPC_MoveChild3,
/*530193*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*530196*/              OPC_MoveParent,
/*530197*/              OPC_CheckType, MVT::f32,
/*530199*/              OPC_MoveParent,
/*530200*/              OPC_MoveParent,
/*530201*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*530203*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*530206*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 1, 4,  // Results = #5
/*530214*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*530217*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 2, 6,  // Results = #7
/*530225*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213SSZrb_Int), 0,
                            MVT::v4f32, 4/*#Ops*/, 0, 5, 7, 3, 
                        // 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, (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*530235*/            0, /*End of Scope*/
/*530236*/          /*SwitchOpcode*/ 52, TARGET_VAL(ISD::STRICT_FP_ROUND),// ->530291
/*530239*/            OPC_RecordNode, // #1 = 'strict_fpround' chained node
/*530240*/            OPC_CheckFoldableChainNode,
/*530241*/            OPC_MoveChild1,
/*530242*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*530245*/            OPC_RecordChild0, // #2 = $src
/*530246*/            OPC_CheckChild0Type, MVT::v2f64,
/*530248*/            OPC_CheckChild1Integer, 0, 
/*530250*/            OPC_MoveParent,
/*530251*/            OPC_MoveParent,
/*530252*/            OPC_MoveParent,
/*530253*/            OPC_Scope, 11, /*->530266*/ // 3 children in Scope
/*530255*/              OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*530257*/              OPC_EmitMergeInputChains1_1,
/*530258*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSD2SSrr_Int), 0,
                            MVT::v4f32, 2/*#Ops*/, 0, 2, 
                        // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (strict_fpround:{ *:[f32] } (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$src, 0:{ *:[iPTR] })))) - Complexity = 17
                        // Dst: (VCVTSD2SSrr_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, VR128:{ *:[v2f64] }:$src)
/*530266*/            /*Scope*/ 11, /*->530278*/
/*530267*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*530269*/              OPC_EmitMergeInputChains1_1,
/*530270*/              OPC_MorphNodeTo1, TARGET_VAL(X86::CVTSD2SSrr_Int), 0,
                            MVT::v4f32, 2/*#Ops*/, 0, 2, 
                        // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (strict_fpround:{ *:[f32] } (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$src, 0:{ *:[iPTR] })))) - Complexity = 17
                        // Dst: (CVTSD2SSrr_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, VR128:{ *:[v2f64] }:$src)
/*530278*/            /*Scope*/ 11, /*->530290*/
/*530279*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*530281*/              OPC_EmitMergeInputChains1_1,
/*530282*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSD2SSZrr_Int), 0,
                            MVT::v4f32, 2/*#Ops*/, 0, 2, 
                        // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (strict_fpround:{ *:[f32] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src, 0:{ *:[iPTR] })))) - Complexity = 17
                        // Dst: (VCVTSD2SSZrr_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$dst, VR128X:{ *:[v2f64] }:$src)
/*530290*/            0, /*End of Scope*/
/*530291*/          /*SwitchOpcode*/ 47, TARGET_VAL(ISD::FP_ROUND),// ->530341
/*530294*/            OPC_MoveChild0,
/*530295*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*530298*/            OPC_RecordChild0, // #1 = $src
/*530299*/            OPC_CheckChild0Type, MVT::v2f64,
/*530301*/            OPC_CheckChild1Integer, 0, 
/*530303*/            OPC_MoveParent,
/*530304*/            OPC_MoveParent,
/*530305*/            OPC_MoveParent,
/*530306*/            OPC_Scope, 10, /*->530318*/ // 3 children in Scope
/*530308*/              OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*530310*/              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)
/*530318*/            /*Scope*/ 10, /*->530329*/
/*530319*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*530321*/              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)
/*530329*/            /*Scope*/ 10, /*->530340*/
/*530330*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*530332*/              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)
/*530340*/            0, /*End of Scope*/
/*530341*/          /*SwitchOpcode*/ 42, TARGET_VAL(ISD::STRICT_FSQRT),// ->530386
/*530344*/            OPC_RecordNode, // #1 = 'strict_fsqrt' chained node
/*530345*/            OPC_CheckFoldableChainNode,
/*530346*/            OPC_MoveChild1,
/*530347*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*530350*/            OPC_RecordChild0, // #2 = $src
/*530351*/            OPC_CheckChild0Type, MVT::v4f32,
/*530353*/            OPC_CheckChild1Integer, 0, 
/*530355*/            OPC_MoveParent,
/*530356*/            OPC_CheckType, MVT::f32,
/*530358*/            OPC_MoveParent,
/*530359*/            OPC_MoveParent,
/*530360*/            OPC_Scope, 11, /*->530373*/ // 2 children in Scope
/*530362*/              OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*530364*/              OPC_EmitMergeInputChains1_1,
/*530365*/              OPC_MorphNodeTo1, TARGET_VAL(X86::SQRTSSr_Int), 0|OPFL_Chain,
                            MVT::v4f32, 2/*#Ops*/, 0, 2, 
                        // Src: (X86Movss:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (strict_fsqrt:{ *:[f32] } (extractelt:{ *:[f32] } v4f32:{ *:[v4f32] }:$src, 0:{ *:[iPTR] })))) - Complexity = 17
                        // Dst: (SQRTSSr_Int:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, v4f32:{ *:[v4f32] }:$src)
/*530373*/            /*Scope*/ 11, /*->530385*/
/*530374*/              OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*530376*/              OPC_EmitMergeInputChains1_1,
/*530377*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTSSr_Int), 0|OPFL_Chain,
                            MVT::v4f32, 2/*#Ops*/, 0, 2, 
                        // Src: (X86Movss:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (strict_fsqrt:{ *:[f32] } (extractelt:{ *:[f32] } v4f32:{ *:[v4f32] }:$src, 0:{ *:[iPTR] })))) - Complexity = 17
                        // Dst: (VSQRTSSr_Int:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, v4f32:{ *:[v4f32] }:$src)
/*530385*/            0, /*End of Scope*/
/*530386*/          /*SwitchOpcode*/ 49, TARGET_VAL(ISD::FSQRT),// ->530438
/*530389*/            OPC_MoveChild0,
/*530390*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*530393*/            OPC_RecordChild0, // #1 = $src
/*530394*/            OPC_CheckChild0Type, MVT::v4f32,
/*530396*/            OPC_CheckChild1Integer, 0, 
/*530398*/            OPC_MoveParent,
/*530399*/            OPC_CheckType, MVT::f32,
/*530401*/            OPC_MoveParent,
/*530402*/            OPC_MoveParent,
/*530403*/            OPC_Scope, 10, /*->530415*/ // 3 children in Scope
/*530405*/              OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*530407*/              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)
/*530415*/            /*Scope*/ 10, /*->530426*/
/*530416*/              OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*530418*/              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)
/*530426*/            /*Scope*/ 10, /*->530437*/
/*530427*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*530429*/              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)
/*530437*/            0, /*End of Scope*/
/*530438*/          /*SwitchOpcode*/ 2|128,1/*130*/, TARGET_VAL(ISD::STRICT_FADD),// ->530572
/*530442*/            OPC_RecordNode, // #1 = 'strict_fadd' chained node
/*530443*/            OPC_CheckFoldableChainNode,
/*530444*/            OPC_Scope, 62, /*->530508*/ // 2 children in Scope
/*530446*/              OPC_MoveChild1,
/*530447*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*530450*/              OPC_CheckChild0Same, 0,
/*530452*/              OPC_CheckChild1Integer, 0, 
/*530454*/              OPC_MoveParent,
/*530455*/              OPC_RecordChild2, // #2 = $src
/*530456*/              OPC_CheckType, MVT::f32,
/*530458*/              OPC_MoveParent,
/*530459*/              OPC_MoveParent,
/*530460*/              OPC_Scope, 22, /*->530484*/ // 2 children in Scope
/*530462*/                OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*530464*/                OPC_EmitMergeInputChains1_1,
/*530465*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*530468*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 3,  // Results = #4
/*530476*/                OPC_MorphNodeTo1, TARGET_VAL(X86::ADDSSrr_Int), 0|OPFL_Chain,
                              MVT::v4f32, 2/*#Ops*/, 0, 4, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (strict_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] }))
/*530484*/              /*Scope*/ 22, /*->530507*/
/*530485*/                OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*530487*/                OPC_EmitMergeInputChains1_1,
/*530488*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*530491*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 3,  // Results = #4
/*530499*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSSrr_Int), 0|OPFL_Chain,
                              MVT::v4f32, 2/*#Ops*/, 0, 4, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (strict_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] }))
/*530507*/              0, /*End of Scope*/
/*530508*/            /*Scope*/ 62, /*->530571*/
/*530509*/              OPC_RecordChild1, // #2 = $src
/*530510*/              OPC_MoveChild2,
/*530511*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*530514*/              OPC_CheckChild0Same, 0,
/*530516*/              OPC_CheckChild1Integer, 0, 
/*530518*/              OPC_MoveParent,
/*530519*/              OPC_CheckType, MVT::f32,
/*530521*/              OPC_MoveParent,
/*530522*/              OPC_MoveParent,
/*530523*/              OPC_Scope, 22, /*->530547*/ // 2 children in Scope
/*530525*/                OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*530527*/                OPC_EmitMergeInputChains1_1,
/*530528*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*530531*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 3,  // Results = #4
/*530539*/                OPC_MorphNodeTo1, TARGET_VAL(X86::ADDSSrr_Int), 0|OPFL_Chain,
                              MVT::v4f32, 2/*#Ops*/, 0, 4, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (strict_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] }))
/*530547*/              /*Scope*/ 22, /*->530570*/
/*530548*/                OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*530550*/                OPC_EmitMergeInputChains1_1,
/*530551*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*530554*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 3,  // Results = #4
/*530562*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSSrr_Int), 0|OPFL_Chain,
                              MVT::v4f32, 2/*#Ops*/, 0, 4, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (strict_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] }))
/*530570*/              0, /*End of Scope*/
/*530571*/            0, /*End of Scope*/
/*530572*/          /*SwitchOpcode*/ 40|128,1/*168*/, TARGET_VAL(ISD::FADD),// ->530744
/*530576*/            OPC_Scope, 82, /*->530660*/ // 2 children in Scope
/*530578*/              OPC_MoveChild0,
/*530579*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*530582*/              OPC_CheckChild0Same, 0,
/*530584*/              OPC_CheckChild1Integer, 0, 
/*530586*/              OPC_MoveParent,
/*530587*/              OPC_RecordChild1, // #1 = $src
/*530588*/              OPC_CheckType, MVT::f32,
/*530590*/              OPC_MoveParent,
/*530591*/              OPC_MoveParent,
/*530592*/              OPC_Scope, 21, /*->530615*/ // 3 children in Scope
/*530594*/                OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*530596*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*530599*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 2,  // Results = #3
/*530607*/                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] }))
/*530615*/              /*Scope*/ 21, /*->530637*/
/*530616*/                OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*530618*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*530621*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 2,  // Results = #3
/*530629*/                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] }))
/*530637*/              /*Scope*/ 21, /*->530659*/
/*530638*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*530640*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*530643*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 2,  // Results = #3
/*530651*/                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] }))
/*530659*/              0, /*End of Scope*/
/*530660*/            /*Scope*/ 82, /*->530743*/
/*530661*/              OPC_RecordChild0, // #1 = $src
/*530662*/              OPC_MoveChild1,
/*530663*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*530666*/              OPC_CheckChild0Same, 0,
/*530668*/              OPC_CheckChild1Integer, 0, 
/*530670*/              OPC_MoveParent,
/*530671*/              OPC_CheckType, MVT::f32,
/*530673*/              OPC_MoveParent,
/*530674*/              OPC_MoveParent,
/*530675*/              OPC_Scope, 21, /*->530698*/ // 3 children in Scope
/*530677*/                OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*530679*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*530682*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 2,  // Results = #3
/*530690*/                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] }))
/*530698*/              /*Scope*/ 21, /*->530720*/
/*530699*/                OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*530701*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*530704*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 2,  // Results = #3
/*530712*/                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] }))
/*530720*/              /*Scope*/ 21, /*->530742*/
/*530721*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*530723*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*530726*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 2,  // Results = #3
/*530734*/                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] }))
/*530742*/              0, /*End of Scope*/
/*530743*/            0, /*End of Scope*/
/*530744*/          /*SwitchOpcode*/ 64, TARGET_VAL(ISD::STRICT_FSUB),// ->530811
/*530747*/            OPC_RecordNode, // #1 = 'strict_fsub' chained node
/*530748*/            OPC_CheckFoldableChainNode,
/*530749*/            OPC_MoveChild1,
/*530750*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*530753*/            OPC_CheckChild0Same, 0,
/*530755*/            OPC_CheckChild1Integer, 0, 
/*530757*/            OPC_MoveParent,
/*530758*/            OPC_RecordChild2, // #2 = $src
/*530759*/            OPC_CheckType, MVT::f32,
/*530761*/            OPC_MoveParent,
/*530762*/            OPC_MoveParent,
/*530763*/            OPC_Scope, 22, /*->530787*/ // 2 children in Scope
/*530765*/              OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*530767*/              OPC_EmitMergeInputChains1_1,
/*530768*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*530771*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 2, 3,  // Results = #4
/*530779*/              OPC_MorphNodeTo1, TARGET_VAL(X86::SUBSSrr_Int), 0|OPFL_Chain,
                            MVT::v4f32, 2/*#Ops*/, 0, 4, 
                        // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (strict_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] }))
/*530787*/            /*Scope*/ 22, /*->530810*/
/*530788*/              OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*530790*/              OPC_EmitMergeInputChains1_1,
/*530791*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*530794*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 2, 3,  // Results = #4
/*530802*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSSrr_Int), 0|OPFL_Chain,
                            MVT::v4f32, 2/*#Ops*/, 0, 4, 
                        // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (strict_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] }))
/*530810*/            0, /*End of Scope*/
/*530811*/          /*SwitchOpcode*/ 82, TARGET_VAL(ISD::FSUB),// ->530896
/*530814*/            OPC_MoveChild0,
/*530815*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*530818*/            OPC_CheckChild0Same, 0,
/*530820*/            OPC_CheckChild1Integer, 0, 
/*530822*/            OPC_MoveParent,
/*530823*/            OPC_RecordChild1, // #1 = $src
/*530824*/            OPC_CheckType, MVT::f32,
/*530826*/            OPC_MoveParent,
/*530827*/            OPC_MoveParent,
/*530828*/            OPC_Scope, 21, /*->530851*/ // 3 children in Scope
/*530830*/              OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*530832*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*530835*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 1, 2,  // Results = #3
/*530843*/              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] }))
/*530851*/            /*Scope*/ 21, /*->530873*/
/*530852*/              OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*530854*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*530857*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 1, 2,  // Results = #3
/*530865*/              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] }))
/*530873*/            /*Scope*/ 21, /*->530895*/
/*530874*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*530876*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*530879*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 1, 2,  // Results = #3
/*530887*/              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] }))
/*530895*/            0, /*End of Scope*/
/*530896*/          /*SwitchOpcode*/ 2|128,1/*130*/, TARGET_VAL(ISD::STRICT_FMUL),// ->531030
/*530900*/            OPC_RecordNode, // #1 = 'strict_fmul' chained node
/*530901*/            OPC_CheckFoldableChainNode,
/*530902*/            OPC_Scope, 62, /*->530966*/ // 2 children in Scope
/*530904*/              OPC_MoveChild1,
/*530905*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*530908*/              OPC_CheckChild0Same, 0,
/*530910*/              OPC_CheckChild1Integer, 0, 
/*530912*/              OPC_MoveParent,
/*530913*/              OPC_RecordChild2, // #2 = $src
/*530914*/              OPC_CheckType, MVT::f32,
/*530916*/              OPC_MoveParent,
/*530917*/              OPC_MoveParent,
/*530918*/              OPC_Scope, 22, /*->530942*/ // 2 children in Scope
/*530920*/                OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*530922*/                OPC_EmitMergeInputChains1_1,
/*530923*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*530926*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 3,  // Results = #4
/*530934*/                OPC_MorphNodeTo1, TARGET_VAL(X86::MULSSrr_Int), 0|OPFL_Chain,
                              MVT::v4f32, 2/*#Ops*/, 0, 4, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (strict_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] }))
/*530942*/              /*Scope*/ 22, /*->530965*/
/*530943*/                OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*530945*/                OPC_EmitMergeInputChains1_1,
/*530946*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*530949*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 3,  // Results = #4
/*530957*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSSrr_Int), 0|OPFL_Chain,
                              MVT::v4f32, 2/*#Ops*/, 0, 4, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (strict_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] }))
/*530965*/              0, /*End of Scope*/
/*530966*/            /*Scope*/ 62, /*->531029*/
/*530967*/              OPC_RecordChild1, // #2 = $src
/*530968*/              OPC_MoveChild2,
/*530969*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*530972*/              OPC_CheckChild0Same, 0,
/*530974*/              OPC_CheckChild1Integer, 0, 
/*530976*/              OPC_MoveParent,
/*530977*/              OPC_CheckType, MVT::f32,
/*530979*/              OPC_MoveParent,
/*530980*/              OPC_MoveParent,
/*530981*/              OPC_Scope, 22, /*->531005*/ // 2 children in Scope
/*530983*/                OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*530985*/                OPC_EmitMergeInputChains1_1,
/*530986*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*530989*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 3,  // Results = #4
/*530997*/                OPC_MorphNodeTo1, TARGET_VAL(X86::MULSSrr_Int), 0|OPFL_Chain,
                              MVT::v4f32, 2/*#Ops*/, 0, 4, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (strict_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] }))
/*531005*/              /*Scope*/ 22, /*->531028*/
/*531006*/                OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*531008*/                OPC_EmitMergeInputChains1_1,
/*531009*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*531012*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 3,  // Results = #4
/*531020*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSSrr_Int), 0|OPFL_Chain,
                              MVT::v4f32, 2/*#Ops*/, 0, 4, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (strict_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] }))
/*531028*/              0, /*End of Scope*/
/*531029*/            0, /*End of Scope*/
/*531030*/          /*SwitchOpcode*/ 40|128,1/*168*/, TARGET_VAL(ISD::FMUL),// ->531202
/*531034*/            OPC_Scope, 82, /*->531118*/ // 2 children in Scope
/*531036*/              OPC_MoveChild0,
/*531037*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*531040*/              OPC_CheckChild0Same, 0,
/*531042*/              OPC_CheckChild1Integer, 0, 
/*531044*/              OPC_MoveParent,
/*531045*/              OPC_RecordChild1, // #1 = $src
/*531046*/              OPC_CheckType, MVT::f32,
/*531048*/              OPC_MoveParent,
/*531049*/              OPC_MoveParent,
/*531050*/              OPC_Scope, 21, /*->531073*/ // 3 children in Scope
/*531052*/                OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*531054*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*531057*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 2,  // Results = #3
/*531065*/                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] }))
/*531073*/              /*Scope*/ 21, /*->531095*/
/*531074*/                OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*531076*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*531079*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 2,  // Results = #3
/*531087*/                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] }))
/*531095*/              /*Scope*/ 21, /*->531117*/
/*531096*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*531098*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*531101*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 2,  // Results = #3
/*531109*/                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] }))
/*531117*/              0, /*End of Scope*/
/*531118*/            /*Scope*/ 82, /*->531201*/
/*531119*/              OPC_RecordChild0, // #1 = $src
/*531120*/              OPC_MoveChild1,
/*531121*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*531124*/              OPC_CheckChild0Same, 0,
/*531126*/              OPC_CheckChild1Integer, 0, 
/*531128*/              OPC_MoveParent,
/*531129*/              OPC_CheckType, MVT::f32,
/*531131*/              OPC_MoveParent,
/*531132*/              OPC_MoveParent,
/*531133*/              OPC_Scope, 21, /*->531156*/ // 3 children in Scope
/*531135*/                OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*531137*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*531140*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 2,  // Results = #3
/*531148*/                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] }))
/*531156*/              /*Scope*/ 21, /*->531178*/
/*531157*/                OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*531159*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*531162*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 2,  // Results = #3
/*531170*/                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] }))
/*531178*/              /*Scope*/ 21, /*->531200*/
/*531179*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*531181*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*531184*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 2,  // Results = #3
/*531192*/                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] }))
/*531200*/              0, /*End of Scope*/
/*531201*/            0, /*End of Scope*/
/*531202*/          /*SwitchOpcode*/ 64, TARGET_VAL(ISD::STRICT_FDIV),// ->531269
/*531205*/            OPC_RecordNode, // #1 = 'strict_fdiv' chained node
/*531206*/            OPC_CheckFoldableChainNode,
/*531207*/            OPC_MoveChild1,
/*531208*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*531211*/            OPC_CheckChild0Same, 0,
/*531213*/            OPC_CheckChild1Integer, 0, 
/*531215*/            OPC_MoveParent,
/*531216*/            OPC_RecordChild2, // #2 = $src
/*531217*/            OPC_CheckType, MVT::f32,
/*531219*/            OPC_MoveParent,
/*531220*/            OPC_MoveParent,
/*531221*/            OPC_Scope, 22, /*->531245*/ // 2 children in Scope
/*531223*/              OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*531225*/              OPC_EmitMergeInputChains1_1,
/*531226*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*531229*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 2, 3,  // Results = #4
/*531237*/              OPC_MorphNodeTo1, TARGET_VAL(X86::DIVSSrr_Int), 0|OPFL_Chain,
                            MVT::v4f32, 2/*#Ops*/, 0, 4, 
                        // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (strict_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] }))
/*531245*/            /*Scope*/ 22, /*->531268*/
/*531246*/              OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*531248*/              OPC_EmitMergeInputChains1_1,
/*531249*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*531252*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 2, 3,  // Results = #4
/*531260*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSSrr_Int), 0|OPFL_Chain,
                            MVT::v4f32, 2/*#Ops*/, 0, 4, 
                        // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (strict_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] }))
/*531268*/            0, /*End of Scope*/
/*531269*/          /*SwitchOpcode*/ 82, TARGET_VAL(ISD::FDIV),// ->531354
/*531272*/            OPC_MoveChild0,
/*531273*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*531276*/            OPC_CheckChild0Same, 0,
/*531278*/            OPC_CheckChild1Integer, 0, 
/*531280*/            OPC_MoveParent,
/*531281*/            OPC_RecordChild1, // #1 = $src
/*531282*/            OPC_CheckType, MVT::f32,
/*531284*/            OPC_MoveParent,
/*531285*/            OPC_MoveParent,
/*531286*/            OPC_Scope, 21, /*->531309*/ // 3 children in Scope
/*531288*/              OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*531290*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*531293*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 1, 2,  // Results = #3
/*531301*/              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] }))
/*531309*/            /*Scope*/ 21, /*->531331*/
/*531310*/              OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*531312*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*531315*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 1, 2,  // Results = #3
/*531323*/              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] }))
/*531331*/            /*Scope*/ 21, /*->531353*/
/*531332*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*531334*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*531337*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v4f32, 2/*#Ops*/, 1, 2,  // Results = #3
/*531345*/              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] }))
/*531353*/            0, /*End of Scope*/
/*531354*/          /*SwitchOpcode*/ 37|128,2/*293*/, TARGET_VAL(ISD::STRICT_FMA),// ->531651
/*531358*/            OPC_RecordNode, // #1 = 'X86strict_Fmadd' chained node
/*531359*/            OPC_CheckFoldableChainNode,
/*531360*/            OPC_Scope, 71|128,1/*199*/, /*->531562*/ // 2 children in Scope
/*531363*/              OPC_RecordChild1, // #2 = $src2
/*531364*/              OPC_Scope, 48, /*->531414*/ // 4 children in Scope
/*531366*/                OPC_MoveChild2,
/*531367*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*531370*/                OPC_CheckChild0Same, 0,
/*531372*/                OPC_CheckChild1Integer, 0, 
/*531374*/                OPC_MoveParent,
/*531375*/                OPC_RecordChild3, // #3 = $src3
/*531376*/                OPC_CheckType, MVT::f32,
/*531378*/                OPC_MoveParent,
/*531379*/                OPC_MoveParent,
/*531380*/                OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*531382*/                OPC_EmitMergeInputChains1_1,
/*531383*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*531386*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 4,  // Results = #5
/*531394*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*531397*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 6,  // Results = #7
/*531405*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SSr_Int), 0|OPFL_Chain,
                              MVT::v4f32, 3/*#Ops*/, 0, 5, 7, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86strict_Fmadd:{ *:[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] }))
/*531414*/              /*Scope*/ 48, /*->531463*/
/*531415*/                OPC_RecordChild2, // #3 = $src3
/*531416*/                OPC_MoveChild3,
/*531417*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*531420*/                OPC_CheckChild0Same, 0,
/*531422*/                OPC_CheckChild1Integer, 0, 
/*531424*/                OPC_MoveParent,
/*531425*/                OPC_CheckType, MVT::f32,
/*531427*/                OPC_MoveParent,
/*531428*/                OPC_MoveParent,
/*531429*/                OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*531431*/                OPC_EmitMergeInputChains1_1,
/*531432*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*531435*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 4,  // Results = #5
/*531443*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*531446*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 6,  // Results = #7
/*531454*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SSr_Int), 0|OPFL_Chain,
                              MVT::v4f32, 3/*#Ops*/, 0, 5, 7, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86strict_Fmadd:{ *:[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] }))
/*531463*/              /*Scope*/ 48, /*->531512*/
/*531464*/                OPC_MoveChild2,
/*531465*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*531468*/                OPC_CheckChild0Same, 0,
/*531470*/                OPC_CheckChild1Integer, 0, 
/*531472*/                OPC_MoveParent,
/*531473*/                OPC_RecordChild3, // #3 = $src3
/*531474*/                OPC_CheckType, MVT::f32,
/*531476*/                OPC_MoveParent,
/*531477*/                OPC_MoveParent,
/*531478*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*531480*/                OPC_EmitMergeInputChains1_1,
/*531481*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*531484*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 4,  // Results = #5
/*531492*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*531495*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 6,  // Results = #7
/*531503*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SSZr_Int), 0|OPFL_Chain,
                              MVT::v4f32, 3/*#Ops*/, 0, 5, 7, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86strict_Fmadd:{ *:[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] }))
/*531512*/              /*Scope*/ 48, /*->531561*/
/*531513*/                OPC_RecordChild2, // #3 = $src3
/*531514*/                OPC_MoveChild3,
/*531515*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*531518*/                OPC_CheckChild0Same, 0,
/*531520*/                OPC_CheckChild1Integer, 0, 
/*531522*/                OPC_MoveParent,
/*531523*/                OPC_CheckType, MVT::f32,
/*531525*/                OPC_MoveParent,
/*531526*/                OPC_MoveParent,
/*531527*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*531529*/                OPC_EmitMergeInputChains1_1,
/*531530*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*531533*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 4,  // Results = #5
/*531541*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*531544*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 6,  // Results = #7
/*531552*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SSZr_Int), 0|OPFL_Chain,
                              MVT::v4f32, 3/*#Ops*/, 0, 5, 7, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86strict_Fmadd:{ *:[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] }))
/*531561*/              0, /*End of Scope*/
/*531562*/            /*Scope*/ 87, /*->531650*/
/*531563*/              OPC_MoveChild1,
/*531564*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*531567*/              OPC_CheckChild0Same, 0,
/*531569*/              OPC_CheckChild1Integer, 0, 
/*531571*/              OPC_MoveParent,
/*531572*/              OPC_RecordChild2, // #2 = $src2
/*531573*/              OPC_RecordChild3, // #3 = $src3
/*531574*/              OPC_CheckType, MVT::f32,
/*531576*/              OPC_MoveParent,
/*531577*/              OPC_MoveParent,
/*531578*/              OPC_Scope, 34, /*->531614*/ // 2 children in Scope
/*531580*/                OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*531582*/                OPC_EmitMergeInputChains1_1,
/*531583*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*531586*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 4,  // Results = #5
/*531594*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*531597*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 6,  // Results = #7
/*531605*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SSr_Int), 0|OPFL_Chain,
                              MVT::v4f32, 3/*#Ops*/, 0, 5, 7, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86strict_Fmadd:{ *:[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] }))
/*531614*/              /*Scope*/ 34, /*->531649*/
/*531615*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*531617*/                OPC_EmitMergeInputChains1_1,
/*531618*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*531621*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 4,  // Results = #5
/*531629*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*531632*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 3, 6,  // Results = #7
/*531640*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SSZr_Int), 0|OPFL_Chain,
                              MVT::v4f32, 3/*#Ops*/, 0, 5, 7, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (X86strict_Fmadd:{ *:[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] }))
/*531649*/              0, /*End of Scope*/
/*531650*/            0, /*End of Scope*/
/*531651*/          /*SwitchOpcode*/ 29|128,2/*285*/, TARGET_VAL(ISD::FMA),// ->531940
/*531655*/            OPC_Scope, 67|128,1/*195*/, /*->531853*/ // 2 children in Scope
/*531658*/              OPC_RecordChild0, // #1 = $src2
/*531659*/              OPC_Scope, 47, /*->531708*/ // 4 children in Scope
/*531661*/                OPC_MoveChild1,
/*531662*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*531665*/                OPC_CheckChild0Same, 0,
/*531667*/                OPC_CheckChild1Integer, 0, 
/*531669*/                OPC_MoveParent,
/*531670*/                OPC_RecordChild2, // #2 = $src3
/*531671*/                OPC_CheckType, MVT::f32,
/*531673*/                OPC_MoveParent,
/*531674*/                OPC_MoveParent,
/*531675*/                OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*531677*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*531680*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 3,  // Results = #4
/*531688*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*531691*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*531699*/                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] }))
/*531708*/              /*Scope*/ 47, /*->531756*/
/*531709*/                OPC_RecordChild1, // #2 = $src3
/*531710*/                OPC_MoveChild2,
/*531711*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*531714*/                OPC_CheckChild0Same, 0,
/*531716*/                OPC_CheckChild1Integer, 0, 
/*531718*/                OPC_MoveParent,
/*531719*/                OPC_CheckType, MVT::f32,
/*531721*/                OPC_MoveParent,
/*531722*/                OPC_MoveParent,
/*531723*/                OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*531725*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*531728*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 3,  // Results = #4
/*531736*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*531739*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*531747*/                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] }))
/*531756*/              /*Scope*/ 47, /*->531804*/
/*531757*/                OPC_MoveChild1,
/*531758*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*531761*/                OPC_CheckChild0Same, 0,
/*531763*/                OPC_CheckChild1Integer, 0, 
/*531765*/                OPC_MoveParent,
/*531766*/                OPC_RecordChild2, // #2 = $src3
/*531767*/                OPC_CheckType, MVT::f32,
/*531769*/                OPC_MoveParent,
/*531770*/                OPC_MoveParent,
/*531771*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*531773*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*531776*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 3,  // Results = #4
/*531784*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*531787*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*531795*/                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] }))
/*531804*/              /*Scope*/ 47, /*->531852*/
/*531805*/                OPC_RecordChild1, // #2 = $src3
/*531806*/                OPC_MoveChild2,
/*531807*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*531810*/                OPC_CheckChild0Same, 0,
/*531812*/                OPC_CheckChild1Integer, 0, 
/*531814*/                OPC_MoveParent,
/*531815*/                OPC_CheckType, MVT::f32,
/*531817*/                OPC_MoveParent,
/*531818*/                OPC_MoveParent,
/*531819*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*531821*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*531824*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 3,  // Results = #4
/*531832*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*531835*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*531843*/                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] }))
/*531852*/              0, /*End of Scope*/
/*531853*/            /*Scope*/ 85, /*->531939*/
/*531854*/              OPC_MoveChild0,
/*531855*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*531858*/              OPC_CheckChild0Same, 0,
/*531860*/              OPC_CheckChild1Integer, 0, 
/*531862*/              OPC_MoveParent,
/*531863*/              OPC_RecordChild1, // #1 = $src2
/*531864*/              OPC_RecordChild2, // #2 = $src3
/*531865*/              OPC_CheckType, MVT::f32,
/*531867*/              OPC_MoveParent,
/*531868*/              OPC_MoveParent,
/*531869*/              OPC_Scope, 33, /*->531904*/ // 2 children in Scope
/*531871*/                OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*531873*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*531876*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 3,  // Results = #4
/*531884*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*531887*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*531895*/                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] }))
/*531904*/              /*Scope*/ 33, /*->531938*/
/*531905*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*531907*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*531910*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 3,  // Results = #4
/*531918*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*531921*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*531929*/                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] }))
/*531938*/              0, /*End of Scope*/
/*531939*/            0, /*End of Scope*/
/*531940*/          /*SwitchOpcode*/ 29|128,2/*285*/, TARGET_VAL(X86ISD::FMSUB),// ->532229
/*531944*/            OPC_Scope, 67|128,1/*195*/, /*->532142*/ // 2 children in Scope
/*531947*/              OPC_RecordChild0, // #1 = $src2
/*531948*/              OPC_Scope, 47, /*->531997*/ // 4 children in Scope
/*531950*/                OPC_MoveChild1,
/*531951*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*531954*/                OPC_CheckChild0Same, 0,
/*531956*/                OPC_CheckChild1Integer, 0, 
/*531958*/                OPC_MoveParent,
/*531959*/                OPC_RecordChild2, // #2 = $src3
/*531960*/                OPC_CheckType, MVT::f32,
/*531962*/                OPC_MoveParent,
/*531963*/                OPC_MoveParent,
/*531964*/                OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*531966*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*531969*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 3,  // Results = #4
/*531977*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*531980*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*531988*/                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] }))
/*531997*/              /*Scope*/ 47, /*->532045*/
/*531998*/                OPC_RecordChild1, // #2 = $src3
/*531999*/                OPC_MoveChild2,
/*532000*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*532003*/                OPC_CheckChild0Same, 0,
/*532005*/                OPC_CheckChild1Integer, 0, 
/*532007*/                OPC_MoveParent,
/*532008*/                OPC_CheckType, MVT::f32,
/*532010*/                OPC_MoveParent,
/*532011*/                OPC_MoveParent,
/*532012*/                OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*532014*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*532017*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 3,  // Results = #4
/*532025*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*532028*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*532036*/                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] }))
/*532045*/              /*Scope*/ 47, /*->532093*/
/*532046*/                OPC_MoveChild1,
/*532047*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*532050*/                OPC_CheckChild0Same, 0,
/*532052*/                OPC_CheckChild1Integer, 0, 
/*532054*/                OPC_MoveParent,
/*532055*/                OPC_RecordChild2, // #2 = $src3
/*532056*/                OPC_CheckType, MVT::f32,
/*532058*/                OPC_MoveParent,
/*532059*/                OPC_MoveParent,
/*532060*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*532062*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*532065*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 3,  // Results = #4
/*532073*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*532076*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*532084*/                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] }))
/*532093*/              /*Scope*/ 47, /*->532141*/
/*532094*/                OPC_RecordChild1, // #2 = $src3
/*532095*/                OPC_MoveChild2,
/*532096*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*532099*/                OPC_CheckChild0Same, 0,
/*532101*/                OPC_CheckChild1Integer, 0, 
/*532103*/                OPC_MoveParent,
/*532104*/                OPC_CheckType, MVT::f32,
/*532106*/                OPC_MoveParent,
/*532107*/                OPC_MoveParent,
/*532108*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*532110*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*532113*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 3,  // Results = #4
/*532121*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*532124*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*532132*/                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] }))
/*532141*/              0, /*End of Scope*/
/*532142*/            /*Scope*/ 85, /*->532228*/
/*532143*/              OPC_MoveChild0,
/*532144*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*532147*/              OPC_CheckChild0Same, 0,
/*532149*/              OPC_CheckChild1Integer, 0, 
/*532151*/              OPC_MoveParent,
/*532152*/              OPC_RecordChild1, // #1 = $src2
/*532153*/              OPC_RecordChild2, // #2 = $src3
/*532154*/              OPC_CheckType, MVT::f32,
/*532156*/              OPC_MoveParent,
/*532157*/              OPC_MoveParent,
/*532158*/              OPC_Scope, 33, /*->532193*/ // 2 children in Scope
/*532160*/                OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*532162*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*532165*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 3,  // Results = #4
/*532173*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*532176*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*532184*/                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] }))
/*532193*/              /*Scope*/ 33, /*->532227*/
/*532194*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*532196*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*532199*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 3,  // Results = #4
/*532207*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*532210*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*532218*/                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] }))
/*532227*/              0, /*End of Scope*/
/*532228*/            0, /*End of Scope*/
/*532229*/          /*SwitchOpcode*/ 29|128,2/*285*/, TARGET_VAL(X86ISD::FNMADD),// ->532518
/*532233*/            OPC_Scope, 67|128,1/*195*/, /*->532431*/ // 2 children in Scope
/*532236*/              OPC_RecordChild0, // #1 = $src2
/*532237*/              OPC_Scope, 47, /*->532286*/ // 4 children in Scope
/*532239*/                OPC_MoveChild1,
/*532240*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*532243*/                OPC_CheckChild0Same, 0,
/*532245*/                OPC_CheckChild1Integer, 0, 
/*532247*/                OPC_MoveParent,
/*532248*/                OPC_RecordChild2, // #2 = $src3
/*532249*/                OPC_CheckType, MVT::f32,
/*532251*/                OPC_MoveParent,
/*532252*/                OPC_MoveParent,
/*532253*/                OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*532255*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*532258*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 3,  // Results = #4
/*532266*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*532269*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*532277*/                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] }))
/*532286*/              /*Scope*/ 47, /*->532334*/
/*532287*/                OPC_RecordChild1, // #2 = $src3
/*532288*/                OPC_MoveChild2,
/*532289*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*532292*/                OPC_CheckChild0Same, 0,
/*532294*/                OPC_CheckChild1Integer, 0, 
/*532296*/                OPC_MoveParent,
/*532297*/                OPC_CheckType, MVT::f32,
/*532299*/                OPC_MoveParent,
/*532300*/                OPC_MoveParent,
/*532301*/                OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*532303*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*532306*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 3,  // Results = #4
/*532314*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*532317*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*532325*/                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] }))
/*532334*/              /*Scope*/ 47, /*->532382*/
/*532335*/                OPC_MoveChild1,
/*532336*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*532339*/                OPC_CheckChild0Same, 0,
/*532341*/                OPC_CheckChild1Integer, 0, 
/*532343*/                OPC_MoveParent,
/*532344*/                OPC_RecordChild2, // #2 = $src3
/*532345*/                OPC_CheckType, MVT::f32,
/*532347*/                OPC_MoveParent,
/*532348*/                OPC_MoveParent,
/*532349*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*532351*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*532354*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 3,  // Results = #4
/*532362*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*532365*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*532373*/                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] }))
/*532382*/              /*Scope*/ 47, /*->532430*/
/*532383*/                OPC_RecordChild1, // #2 = $src3
/*532384*/                OPC_MoveChild2,
/*532385*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*532388*/                OPC_CheckChild0Same, 0,
/*532390*/                OPC_CheckChild1Integer, 0, 
/*532392*/                OPC_MoveParent,
/*532393*/                OPC_CheckType, MVT::f32,
/*532395*/                OPC_MoveParent,
/*532396*/                OPC_MoveParent,
/*532397*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*532399*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*532402*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 3,  // Results = #4
/*532410*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*532413*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*532421*/                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] }))
/*532430*/              0, /*End of Scope*/
/*532431*/            /*Scope*/ 85, /*->532517*/
/*532432*/              OPC_MoveChild0,
/*532433*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*532436*/              OPC_CheckChild0Same, 0,
/*532438*/              OPC_CheckChild1Integer, 0, 
/*532440*/              OPC_MoveParent,
/*532441*/              OPC_RecordChild1, // #1 = $src2
/*532442*/              OPC_RecordChild2, // #2 = $src3
/*532443*/              OPC_CheckType, MVT::f32,
/*532445*/              OPC_MoveParent,
/*532446*/              OPC_MoveParent,
/*532447*/              OPC_Scope, 33, /*->532482*/ // 2 children in Scope
/*532449*/                OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*532451*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*532454*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 3,  // Results = #4
/*532462*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*532465*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*532473*/                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] }))
/*532482*/              /*Scope*/ 33, /*->532516*/
/*532483*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*532485*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*532488*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 3,  // Results = #4
/*532496*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*532499*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*532507*/                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] }))
/*532516*/              0, /*End of Scope*/
/*532517*/            0, /*End of Scope*/
/*532518*/          /*SwitchOpcode*/ 29|128,2/*285*/, TARGET_VAL(X86ISD::FNMSUB),// ->532807
/*532522*/            OPC_Scope, 67|128,1/*195*/, /*->532720*/ // 2 children in Scope
/*532525*/              OPC_RecordChild0, // #1 = $src2
/*532526*/              OPC_Scope, 47, /*->532575*/ // 4 children in Scope
/*532528*/                OPC_MoveChild1,
/*532529*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*532532*/                OPC_CheckChild0Same, 0,
/*532534*/                OPC_CheckChild1Integer, 0, 
/*532536*/                OPC_MoveParent,
/*532537*/                OPC_RecordChild2, // #2 = $src3
/*532538*/                OPC_CheckType, MVT::f32,
/*532540*/                OPC_MoveParent,
/*532541*/                OPC_MoveParent,
/*532542*/                OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*532544*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*532547*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 3,  // Results = #4
/*532555*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*532558*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*532566*/                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] }))
/*532575*/              /*Scope*/ 47, /*->532623*/
/*532576*/                OPC_RecordChild1, // #2 = $src3
/*532577*/                OPC_MoveChild2,
/*532578*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*532581*/                OPC_CheckChild0Same, 0,
/*532583*/                OPC_CheckChild1Integer, 0, 
/*532585*/                OPC_MoveParent,
/*532586*/                OPC_CheckType, MVT::f32,
/*532588*/                OPC_MoveParent,
/*532589*/                OPC_MoveParent,
/*532590*/                OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*532592*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*532595*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 3,  // Results = #4
/*532603*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*532606*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*532614*/                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] }))
/*532623*/              /*Scope*/ 47, /*->532671*/
/*532624*/                OPC_MoveChild1,
/*532625*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*532628*/                OPC_CheckChild0Same, 0,
/*532630*/                OPC_CheckChild1Integer, 0, 
/*532632*/                OPC_MoveParent,
/*532633*/                OPC_RecordChild2, // #2 = $src3
/*532634*/                OPC_CheckType, MVT::f32,
/*532636*/                OPC_MoveParent,
/*532637*/                OPC_MoveParent,
/*532638*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*532640*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*532643*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 3,  // Results = #4
/*532651*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*532654*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*532662*/                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] }))
/*532671*/              /*Scope*/ 47, /*->532719*/
/*532672*/                OPC_RecordChild1, // #2 = $src3
/*532673*/                OPC_MoveChild2,
/*532674*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*532677*/                OPC_CheckChild0Same, 0,
/*532679*/                OPC_CheckChild1Integer, 0, 
/*532681*/                OPC_MoveParent,
/*532682*/                OPC_CheckType, MVT::f32,
/*532684*/                OPC_MoveParent,
/*532685*/                OPC_MoveParent,
/*532686*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*532688*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*532691*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 3,  // Results = #4
/*532699*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*532702*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*532710*/                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] }))
/*532719*/              0, /*End of Scope*/
/*532720*/            /*Scope*/ 85, /*->532806*/
/*532721*/              OPC_MoveChild0,
/*532722*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*532725*/              OPC_CheckChild0Same, 0,
/*532727*/              OPC_CheckChild1Integer, 0, 
/*532729*/              OPC_MoveParent,
/*532730*/              OPC_RecordChild1, // #1 = $src2
/*532731*/              OPC_RecordChild2, // #2 = $src3
/*532732*/              OPC_CheckType, MVT::f32,
/*532734*/              OPC_MoveParent,
/*532735*/              OPC_MoveParent,
/*532736*/              OPC_Scope, 33, /*->532771*/ // 2 children in Scope
/*532738*/                OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*532740*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*532743*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 3,  // Results = #4
/*532751*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*532754*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*532762*/                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] }))
/*532771*/              /*Scope*/ 33, /*->532805*/
/*532772*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*532774*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*532777*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 1, 3,  // Results = #4
/*532785*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*532788*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v4f32, 2/*#Ops*/, 2, 5,  // Results = #6
/*532796*/                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] }))
/*532805*/              0, /*End of Scope*/
/*532806*/            0, /*End of Scope*/
/*532807*/          /*SwitchOpcode*/ 93, TARGET_VAL(ISD::STRICT_SINT_TO_FP),// ->532903
/*532810*/            OPC_RecordNode, // #1 = 'strict_sint_to_fp' chained node
/*532811*/            OPC_CheckFoldableChainNode,
/*532812*/            OPC_RecordChild1, // #2 = $src
/*532813*/            OPC_CheckType, MVT::f32,
/*532815*/            OPC_Scope, 42, /*->532859*/ // 2 children in Scope
/*532817*/              OPC_CheckChild1Type, MVT::i64,
/*532819*/              OPC_MoveParent,
/*532820*/              OPC_MoveParent,
/*532821*/              OPC_Scope, 11, /*->532834*/ // 3 children in Scope
/*532823*/                OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*532825*/                OPC_EmitMergeInputChains1_1,
/*532826*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI642SSrr_Int), 0|OPFL_Chain,
                              MVT::v4f32, 2/*#Ops*/, 0, 2, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (strict_sint_to_fp:{ *:[f32] } GR64:{ *:[i64] }:$src))) - Complexity = 9
                          // Dst: (VCVTSI642SSrr_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, GR64:{ *:[i64] }:$src)
/*532834*/              /*Scope*/ 11, /*->532846*/
/*532835*/                OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*532837*/                OPC_EmitMergeInputChains1_1,
/*532838*/                OPC_MorphNodeTo1, TARGET_VAL(X86::CVTSI642SSrr_Int), 0|OPFL_Chain,
                              MVT::v4f32, 2/*#Ops*/, 0, 2, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (strict_sint_to_fp:{ *:[f32] } GR64:{ *:[i64] }:$src))) - Complexity = 9
                          // Dst: (CVTSI642SSrr_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, GR64:{ *:[i64] }:$src)
/*532846*/              /*Scope*/ 11, /*->532858*/
/*532847*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*532849*/                OPC_EmitMergeInputChains1_1,
/*532850*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI642SSZrr_Int), 0,
                              MVT::v4f32, 2/*#Ops*/, 0, 2, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (strict_sint_to_fp:{ *:[f32] } GR64:{ *:[i64] }:$src))) - Complexity = 9
                          // Dst: (VCVTSI642SSZrr_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$dst, GR64:{ *:[i64] }:$src)
/*532858*/              0, /*End of Scope*/
/*532859*/            /*Scope*/ 42, /*->532902*/
/*532860*/              OPC_CheckChild1Type, MVT::i32,
/*532862*/              OPC_MoveParent,
/*532863*/              OPC_MoveParent,
/*532864*/              OPC_Scope, 11, /*->532877*/ // 3 children in Scope
/*532866*/                OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*532868*/                OPC_EmitMergeInputChains1_1,
/*532869*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI2SSrr_Int), 0|OPFL_Chain,
                              MVT::v4f32, 2/*#Ops*/, 0, 2, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (strict_sint_to_fp:{ *:[f32] } GR32:{ *:[i32] }:$src))) - Complexity = 9
                          // Dst: (VCVTSI2SSrr_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, GR32:{ *:[i32] }:$src)
/*532877*/              /*Scope*/ 11, /*->532889*/
/*532878*/                OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*532880*/                OPC_EmitMergeInputChains1_1,
/*532881*/                OPC_MorphNodeTo1, TARGET_VAL(X86::CVTSI2SSrr_Int), 0|OPFL_Chain,
                              MVT::v4f32, 2/*#Ops*/, 0, 2, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (strict_sint_to_fp:{ *:[f32] } GR32:{ *:[i32] }:$src))) - Complexity = 9
                          // Dst: (CVTSI2SSrr_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$dst, GR32:{ *:[i32] }:$src)
/*532889*/              /*Scope*/ 11, /*->532901*/
/*532890*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*532892*/                OPC_EmitMergeInputChains1_1,
/*532893*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI2SSZrr_Int), 0,
                              MVT::v4f32, 2/*#Ops*/, 0, 2, 
                          // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (strict_sint_to_fp:{ *:[f32] } GR32:{ *:[i32] }:$src))) - Complexity = 9
                          // Dst: (VCVTSI2SSZrr_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$dst, GR32:{ *:[i32] }:$src)
/*532901*/              0, /*End of Scope*/
/*532902*/            0, /*End of Scope*/
/*532903*/          /*SwitchOpcode*/ 85, TARGET_VAL(ISD::SINT_TO_FP),// ->532991
/*532906*/            OPC_RecordChild0, // #1 = $src
/*532907*/            OPC_CheckType, MVT::f32,
/*532909*/            OPC_Scope, 39, /*->532950*/ // 2 children in Scope
/*532911*/              OPC_CheckChild0Type, MVT::i64,
/*532913*/              OPC_MoveParent,
/*532914*/              OPC_MoveParent,
/*532915*/              OPC_Scope, 10, /*->532927*/ // 3 children in Scope
/*532917*/                OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*532919*/                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)
/*532927*/              /*Scope*/ 10, /*->532938*/
/*532928*/                OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*532930*/                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)
/*532938*/              /*Scope*/ 10, /*->532949*/
/*532939*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*532941*/                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)
/*532949*/              0, /*End of Scope*/
/*532950*/            /*Scope*/ 39, /*->532990*/
/*532951*/              OPC_CheckChild0Type, MVT::i32,
/*532953*/              OPC_MoveParent,
/*532954*/              OPC_MoveParent,
/*532955*/              OPC_Scope, 10, /*->532967*/ // 3 children in Scope
/*532957*/                OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*532959*/                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)
/*532967*/              /*Scope*/ 10, /*->532978*/
/*532968*/                OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*532970*/                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)
/*532978*/              /*Scope*/ 10, /*->532989*/
/*532979*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*532981*/                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)
/*532989*/              0, /*End of Scope*/
/*532990*/            0, /*End of Scope*/
/*532991*/          /*SwitchOpcode*/ 39, TARGET_VAL(ISD::STRICT_UINT_TO_FP),// ->533033
/*532994*/            OPC_RecordNode, // #1 = 'strict_uint_to_fp' chained node
/*532995*/            OPC_CheckFoldableChainNode,
/*532996*/            OPC_RecordChild1, // #2 = $src
/*532997*/            OPC_CheckType, MVT::f32,
/*532999*/            OPC_Scope, 15, /*->533016*/ // 2 children in Scope
/*533001*/              OPC_CheckChild1Type, MVT::i64,
/*533003*/              OPC_MoveParent,
/*533004*/              OPC_MoveParent,
/*533005*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*533007*/              OPC_EmitMergeInputChains1_1,
/*533008*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUSI642SSZrr_Int), 0,
                            MVT::v4f32, 2/*#Ops*/, 0, 2, 
                        // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (strict_uint_to_fp:{ *:[f32] } GR64:{ *:[i64] }:$src))) - Complexity = 9
                        // Dst: (VCVTUSI642SSZrr_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$dst, GR64:{ *:[i64] }:$src)
/*533016*/            /*Scope*/ 15, /*->533032*/
/*533017*/              OPC_CheckChild1Type, MVT::i32,
/*533019*/              OPC_MoveParent,
/*533020*/              OPC_MoveParent,
/*533021*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*533023*/              OPC_EmitMergeInputChains1_1,
/*533024*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUSI2SSZrr_Int), 0,
                            MVT::v4f32, 2/*#Ops*/, 0, 2, 
                        // Src: (X86Movss:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$dst, (scalar_to_vector:{ *:[v4f32] } (strict_uint_to_fp:{ *:[f32] } GR32:{ *:[i32] }:$src))) - Complexity = 9
                        // Dst: (VCVTUSI2SSZrr_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$dst, GR32:{ *:[i32] }:$src)
/*533032*/            0, /*End of Scope*/
/*533033*/          /*SwitchOpcode*/ 35, TARGET_VAL(ISD::UINT_TO_FP),// ->533071
/*533036*/            OPC_RecordChild0, // #1 = $src
/*533037*/            OPC_CheckType, MVT::f32,
/*533039*/            OPC_Scope, 14, /*->533055*/ // 2 children in Scope
/*533041*/              OPC_CheckChild0Type, MVT::i64,
/*533043*/              OPC_MoveParent,
/*533044*/              OPC_MoveParent,
/*533045*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*533047*/              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)
/*533055*/            /*Scope*/ 14, /*->533070*/
/*533056*/              OPC_CheckChild0Type, MVT::i32,
/*533058*/              OPC_MoveParent,
/*533059*/              OPC_MoveParent,
/*533060*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*533062*/              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)
/*533070*/            0, /*End of Scope*/
/*533071*/          0, // EndSwitchOpcode
/*533072*/        /*SwitchOpcode*/ 62, TARGET_VAL(ISD::INTRINSIC_WO_CHAIN),// ->533137
/*533075*/          OPC_Scope, 29, /*->533106*/ // 2 children in Scope
/*533077*/            OPC_CheckChild0Integer, 86|128,56/*7254*/, 
/*533080*/            OPC_RecordChild1, // #1 = $src
/*533081*/            OPC_MoveParent,
/*533082*/            OPC_Scope, 10, /*->533094*/ // 2 children in Scope
/*533084*/              OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*533086*/              OPC_MorphNodeTo1, TARGET_VAL(X86::RCPSSr_Int), 0,
                            MVT::v4f32, 2/*#Ops*/, 0, 1, 
                        // Src: (X86Movss:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, (intrinsic_wo_chain:{ *:[v4f32] } 7254:{ *:[iPTR] }, v4f32:{ *:[v4f32] }:$src)) - Complexity = 11
                        // Dst: (RCPSSr_Int:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, v4f32:{ *:[v4f32] }:$src)
/*533094*/            /*Scope*/ 10, /*->533105*/
/*533095*/              OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*533097*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRCPSSr_Int), 0,
                            MVT::v4f32, 2/*#Ops*/, 0, 1, 
                        // Src: (X86Movss:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, (intrinsic_wo_chain:{ *:[v4f32] } 7254:{ *:[iPTR] }, v4f32:{ *:[v4f32] }:$src)) - Complexity = 11
                        // Dst: (VRCPSSr_Int:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, v4f32:{ *:[v4f32] }:$src)
/*533105*/            0, /*End of Scope*/
/*533106*/          /*Scope*/ 29, /*->533136*/
/*533107*/            OPC_CheckChild0Integer, 88|128,56/*7256*/, 
/*533110*/            OPC_RecordChild1, // #1 = $src
/*533111*/            OPC_MoveParent,
/*533112*/            OPC_Scope, 10, /*->533124*/ // 2 children in Scope
/*533114*/              OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*533116*/              OPC_MorphNodeTo1, TARGET_VAL(X86::RSQRTSSr_Int), 0,
                            MVT::v4f32, 2/*#Ops*/, 0, 1, 
                        // Src: (X86Movss:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, (intrinsic_wo_chain:{ *:[v4f32] } 7256:{ *:[iPTR] }, v4f32:{ *:[v4f32] }:$src)) - Complexity = 11
                        // Dst: (RSQRTSSr_Int:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, v4f32:{ *:[v4f32] }:$src)
/*533124*/            /*Scope*/ 10, /*->533135*/
/*533125*/              OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*533127*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRTSSr_Int), 0,
                            MVT::v4f32, 2/*#Ops*/, 0, 1, 
                        // Src: (X86Movss:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, (intrinsic_wo_chain:{ *:[v4f32] } 7256:{ *:[iPTR] }, v4f32:{ *:[v4f32] }:$src)) - Complexity = 11
                        // Dst: (VRSQRTSSr_Int:{ *:[v4f32] } v4f32:{ *:[v4f32] }:$dst, v4f32:{ *:[v4f32] }:$src)
/*533135*/            0, /*End of Scope*/
/*533136*/          0, /*End of Scope*/
/*533137*/        0, // EndSwitchOpcode
/*533138*/      /*Scope*/ 66, /*->533205*/
/*533139*/        OPC_RecordChild1, // #1 = $src2
/*533140*/        OPC_Scope, 10, /*->533152*/ // 5 children in Scope
/*533142*/          OPC_CheckPatternPredicate, 125, // (shouldOptForSize(MF)) && (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*533144*/          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)
/*533152*/        /*Scope*/ 10, /*->533163*/
/*533153*/          OPC_CheckPatternPredicate, 126, // (shouldOptForSize(MF) || !Subtarget->hasSSE41()) && (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*533155*/          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)
/*533163*/        /*Scope*/ 14, /*->533178*/
/*533164*/          OPC_CheckPatternPredicate, 127, // (Subtarget->hasAVX()) && (!shouldOptForSize(MF))
/*533166*/          OPC_EmitInteger, MVT::i8, 1, 
/*533169*/          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] })
/*533178*/        /*Scope*/ 14, /*->533193*/
/*533179*/          OPC_CheckPatternPredicate, 128, // (!shouldOptForSize(MF)) && (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*533181*/          OPC_EmitInteger, MVT::i8, 1, 
/*533184*/          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] })
/*533193*/        /*Scope*/ 10, /*->533204*/
/*533194*/          OPC_CheckPatternPredicate, 129, // (Subtarget->hasAVX512()) && (shouldOptForSize(MF))
/*533196*/          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)
/*533204*/        0, /*End of Scope*/
/*533205*/      0, /*End of Scope*/
/*533206*/    0, /*End of Scope*/
/*533207*/  /*SwitchOpcode*/ 33|128,5|128,1/*17057*/, TARGET_VAL(X86ISD::MOVSD),// ->550269
/*533212*/    OPC_Scope, 58|128,91/*11706*/, /*->544921*/ // 5 children in Scope
/*533215*/      OPC_RecordChild0, // #0 = $src1
/*533216*/      OPC_MoveChild1,
/*533217*/      OPC_SwitchOpcode /*3 cases */, 69|128,90/*11589*/, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->544811
/*533222*/        OPC_MoveChild0,
/*533223*/        OPC_SwitchOpcode /*19 cases */, 19|128,53/*6803*/, TARGET_VAL(X86ISD::SELECTS),// ->540031
/*533228*/          OPC_Scope, 86|128,31/*4054*/, /*->537285*/ // 5 children in Scope
/*533231*/            OPC_RecordChild0, // #1 = $mask
/*533232*/            OPC_MoveChild1,
/*533233*/            OPC_SwitchOpcode /*9 cases */, 68|128,5/*708*/, TARGET_VAL(ISD::STRICT_FMA),// ->533946
/*533238*/              OPC_RecordNode, // #2 = 'X86strict_Fmadd' chained node
/*533239*/              OPC_CheckFoldableChainNode,
/*533240*/              OPC_Scope, 71, /*->533313*/ // 8 children in Scope
/*533242*/                OPC_RecordChild1, // #3 = $src2
/*533243*/                OPC_MoveChild2,
/*533244*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*533247*/                OPC_CheckChild0Same, 0,
/*533249*/                OPC_CheckChild1Integer, 0, 
/*533251*/                OPC_MoveParent,
/*533252*/                OPC_MoveChild3,
/*533253*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*533256*/                OPC_RecordMemRef,
/*533257*/                OPC_RecordNode, // #4 = 'ld' chained node
/*533258*/                OPC_CheckFoldableChainNode,
/*533259*/                OPC_RecordChild1, // #5 = $src3
/*533260*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*533262*/                OPC_CheckPredicate, 9, // Predicate_load
/*533264*/                OPC_MoveParent,
/*533265*/                OPC_MoveParent,
/*533266*/                OPC_MoveChild2,
/*533267*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*533270*/                OPC_CheckChild0Same, 0,
/*533272*/                OPC_CheckChild1Integer, 0, 
/*533274*/                OPC_MoveParent,
/*533275*/                OPC_CheckType, MVT::f64,
/*533277*/                OPC_MoveParent,
/*533278*/                OPC_MoveParent,
/*533279*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*533281*/                OPC_CheckComplexPat, /*CP*/0, /*#*/5, // selectAddr:$src3 #6 #7 #8 #9 #10
/*533284*/                OPC_EmitMergeInputChains, 2, 2, 4, 
/*533288*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*533291*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 11,  // Results = #12
/*533299*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SDZm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 0, 1, 12, 6, 7, 8, 9, 10, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86strict_Fmadd:{ *:[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:{ *:[iPTR] }:$src3)
/*533313*/              /*Scope*/ 71, /*->533385*/
/*533314*/                OPC_MoveChild1,
/*533315*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*533318*/                OPC_CheckChild0Same, 0,
/*533320*/                OPC_CheckChild1Integer, 0, 
/*533322*/                OPC_MoveParent,
/*533323*/                OPC_MoveChild2,
/*533324*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*533327*/                OPC_RecordMemRef,
/*533328*/                OPC_RecordNode, // #3 = 'ld' chained node
/*533329*/                OPC_CheckFoldableChainNode,
/*533330*/                OPC_RecordChild1, // #4 = $src3
/*533331*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*533333*/                OPC_CheckPredicate, 9, // Predicate_load
/*533335*/                OPC_MoveParent,
/*533336*/                OPC_RecordChild3, // #5 = $src2
/*533337*/                OPC_MoveParent,
/*533338*/                OPC_MoveChild2,
/*533339*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*533342*/                OPC_CheckChild0Same, 0,
/*533344*/                OPC_CheckChild1Integer, 0, 
/*533346*/                OPC_MoveParent,
/*533347*/                OPC_CheckType, MVT::f64,
/*533349*/                OPC_MoveParent,
/*533350*/                OPC_MoveParent,
/*533351*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*533353*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*533356*/                OPC_EmitMergeInputChains, 2, 2, 3, 
/*533360*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*533363*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 5, 11,  // Results = #12
/*533371*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132SDZm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 0, 1, 12, 6, 7, 8, 9, 10, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86strict_Fmadd:{ *:[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:{ *:[iPTR] }:$src3)
/*533385*/              /*Scope*/ 71, /*->533457*/
/*533386*/                OPC_RecordChild1, // #3 = $src2
/*533387*/                OPC_MoveChild2,
/*533388*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*533391*/                OPC_RecordMemRef,
/*533392*/                OPC_RecordNode, // #4 = 'ld' chained node
/*533393*/                OPC_CheckFoldableChainNode,
/*533394*/                OPC_RecordChild1, // #5 = $src3
/*533395*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*533397*/                OPC_CheckPredicate, 9, // Predicate_load
/*533399*/                OPC_MoveParent,
/*533400*/                OPC_MoveChild3,
/*533401*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*533404*/                OPC_CheckChild0Same, 0,
/*533406*/                OPC_CheckChild1Integer, 0, 
/*533408*/                OPC_MoveParent,
/*533409*/                OPC_MoveParent,
/*533410*/                OPC_MoveChild2,
/*533411*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*533414*/                OPC_CheckChild0Same, 0,
/*533416*/                OPC_CheckChild1Integer, 0, 
/*533418*/                OPC_MoveParent,
/*533419*/                OPC_CheckType, MVT::f64,
/*533421*/                OPC_MoveParent,
/*533422*/                OPC_MoveParent,
/*533423*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*533425*/                OPC_CheckComplexPat, /*CP*/0, /*#*/5, // selectAddr:$src3 #6 #7 #8 #9 #10
/*533428*/                OPC_EmitMergeInputChains, 2, 2, 4, 
/*533432*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*533435*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 11,  // Results = #12
/*533443*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SDZm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 0, 1, 12, 6, 7, 8, 9, 10, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86strict_Fmadd:{ *:[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:{ *:[iPTR] }:$src3)
/*533457*/              /*Scope*/ 78|128,1/*206*/, /*->533665*/
/*533459*/                OPC_MoveChild1,
/*533460*/                OPC_SwitchOpcode /*2 cases */, 67, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->533531
/*533464*/                  OPC_CheckChild0Same, 0,
/*533466*/                  OPC_CheckChild1Integer, 0, 
/*533468*/                  OPC_MoveParent,
/*533469*/                  OPC_RecordChild2, // #3 = $src2
/*533470*/                  OPC_MoveChild3,
/*533471*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*533474*/                  OPC_RecordMemRef,
/*533475*/                  OPC_RecordNode, // #4 = 'ld' chained node
/*533476*/                  OPC_CheckFoldableChainNode,
/*533477*/                  OPC_RecordChild1, // #5 = $src3
/*533478*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*533480*/                  OPC_CheckPredicate, 9, // Predicate_load
/*533482*/                  OPC_MoveParent,
/*533483*/                  OPC_MoveParent,
/*533484*/                  OPC_MoveChild2,
/*533485*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*533488*/                  OPC_CheckChild0Same, 0,
/*533490*/                  OPC_CheckChild1Integer, 0, 
/*533492*/                  OPC_MoveParent,
/*533493*/                  OPC_CheckType, MVT::f64,
/*533495*/                  OPC_MoveParent,
/*533496*/                  OPC_MoveParent,
/*533497*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*533499*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/5, // selectAddr:$src3 #6 #7 #8 #9 #10
/*533502*/                  OPC_EmitMergeInputChains, 2, 2, 4, 
/*533506*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*533509*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 11,  // Results = #12
/*533517*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SDZm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 8/*#Ops*/, 0, 1, 12, 6, 7, 8, 9, 10, 
                            // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86strict_Fmadd:{ *:[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:{ *:[iPTR] }:$src3)
/*533531*/                /*SwitchOpcode*/ 1|128,1/*129*/, TARGET_VAL(ISD::LOAD),// ->533664
/*533535*/                  OPC_RecordMemRef,
/*533536*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*533537*/                  OPC_CheckFoldableChainNode,
/*533538*/                  OPC_RecordChild1, // #4 = $src3
/*533539*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*533541*/                  OPC_CheckPredicate, 9, // Predicate_load
/*533543*/                  OPC_MoveParent,
/*533544*/                  OPC_Scope, 58, /*->533604*/ // 2 children in Scope
/*533546*/                    OPC_MoveChild2,
/*533547*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*533550*/                    OPC_CheckChild0Same, 0,
/*533552*/                    OPC_CheckChild1Integer, 0, 
/*533554*/                    OPC_MoveParent,
/*533555*/                    OPC_RecordChild3, // #5 = $src2
/*533556*/                    OPC_MoveParent,
/*533557*/                    OPC_MoveChild2,
/*533558*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*533561*/                    OPC_CheckChild0Same, 0,
/*533563*/                    OPC_CheckChild1Integer, 0, 
/*533565*/                    OPC_MoveParent,
/*533566*/                    OPC_CheckType, MVT::f64,
/*533568*/                    OPC_MoveParent,
/*533569*/                    OPC_MoveParent,
/*533570*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*533572*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*533575*/                    OPC_EmitMergeInputChains, 2, 2, 3, 
/*533579*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*533582*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v2f64, 2/*#Ops*/, 5, 11,  // Results = #12
/*533590*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132SDZm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v2f64, 8/*#Ops*/, 0, 1, 12, 6, 7, 8, 9, 10, 
                              // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86strict_Fmadd:{ *:[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:{ *:[iPTR] }:$src3)
/*533604*/                  /*Scope*/ 58, /*->533663*/
/*533605*/                    OPC_RecordChild2, // #5 = $src2
/*533606*/                    OPC_MoveChild3,
/*533607*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*533610*/                    OPC_CheckChild0Same, 0,
/*533612*/                    OPC_CheckChild1Integer, 0, 
/*533614*/                    OPC_MoveParent,
/*533615*/                    OPC_MoveParent,
/*533616*/                    OPC_MoveChild2,
/*533617*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*533620*/                    OPC_CheckChild0Same, 0,
/*533622*/                    OPC_CheckChild1Integer, 0, 
/*533624*/                    OPC_MoveParent,
/*533625*/                    OPC_CheckType, MVT::f64,
/*533627*/                    OPC_MoveParent,
/*533628*/                    OPC_MoveParent,
/*533629*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*533631*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*533634*/                    OPC_EmitMergeInputChains, 2, 2, 3, 
/*533638*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*533641*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v2f64, 2/*#Ops*/, 5, 11,  // Results = #12
/*533649*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SDZm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                                  MVT::v2f64, 8/*#Ops*/, 0, 1, 12, 6, 7, 8, 9, 10, 
                              // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86strict_Fmadd:{ *:[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:{ *:[iPTR] }:$src3)
/*533663*/                  0, /*End of Scope*/
/*533664*/                0, // EndSwitchOpcode
/*533665*/              /*Scope*/ 69, /*->533735*/
/*533666*/                OPC_RecordChild1, // #3 = $src2
/*533667*/                OPC_MoveChild2,
/*533668*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*533671*/                OPC_CheckChild0Same, 0,
/*533673*/                OPC_CheckChild1Integer, 0, 
/*533675*/                OPC_MoveParent,
/*533676*/                OPC_MoveChild3,
/*533677*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*533680*/                OPC_RecordMemRef,
/*533681*/                OPC_RecordNode, // #4 = 'ld' chained node
/*533682*/                OPC_CheckFoldableChainNode,
/*533683*/                OPC_RecordChild1, // #5 = $src3
/*533684*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*533686*/                OPC_CheckPredicate, 9, // Predicate_load
/*533688*/                OPC_MoveParent,
/*533689*/                OPC_MoveParent,
/*533690*/                OPC_MoveChild2,
/*533691*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*533694*/                OPC_CheckPredicate, 93, // Predicate_fp64imm0
/*533696*/                OPC_MoveParent,
/*533697*/                OPC_CheckType, MVT::f64,
/*533699*/                OPC_MoveParent,
/*533700*/                OPC_MoveParent,
/*533701*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*533703*/                OPC_CheckComplexPat, /*CP*/0, /*#*/5, // selectAddr:$src3 #6 #7 #8 #9 #10
/*533706*/                OPC_EmitMergeInputChains, 2, 2, 4, 
/*533710*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*533713*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 11,  // Results = #12
/*533721*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SDZm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 0, 1, 12, 6, 7, 8, 9, 10, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86strict_Fmadd:{ *:[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:{ *:[iPTR] }:$src3)
/*533735*/              /*Scope*/ 69, /*->533805*/
/*533736*/                OPC_MoveChild1,
/*533737*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*533740*/                OPC_CheckChild0Same, 0,
/*533742*/                OPC_CheckChild1Integer, 0, 
/*533744*/                OPC_MoveParent,
/*533745*/                OPC_RecordChild2, // #3 = $src2
/*533746*/                OPC_MoveChild3,
/*533747*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*533750*/                OPC_RecordMemRef,
/*533751*/                OPC_RecordNode, // #4 = 'ld' chained node
/*533752*/                OPC_CheckFoldableChainNode,
/*533753*/                OPC_RecordChild1, // #5 = $src3
/*533754*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*533756*/                OPC_CheckPredicate, 9, // Predicate_load
/*533758*/                OPC_MoveParent,
/*533759*/                OPC_MoveParent,
/*533760*/                OPC_MoveChild2,
/*533761*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*533764*/                OPC_CheckPredicate, 93, // Predicate_fp64imm0
/*533766*/                OPC_MoveParent,
/*533767*/                OPC_CheckType, MVT::f64,
/*533769*/                OPC_MoveParent,
/*533770*/                OPC_MoveParent,
/*533771*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*533773*/                OPC_CheckComplexPat, /*CP*/0, /*#*/5, // selectAddr:$src3 #6 #7 #8 #9 #10
/*533776*/                OPC_EmitMergeInputChains, 2, 2, 4, 
/*533780*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*533783*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 11,  // Results = #12
/*533791*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132SDZm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 0, 1, 12, 6, 7, 8, 9, 10, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86strict_Fmadd:{ *:[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:{ *:[iPTR] }:$src3)
/*533805*/              /*Scope*/ 69, /*->533875*/
/*533806*/                OPC_RecordChild1, // #3 = $src2
/*533807*/                OPC_MoveChild2,
/*533808*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*533811*/                OPC_RecordMemRef,
/*533812*/                OPC_RecordNode, // #4 = 'ld' chained node
/*533813*/                OPC_CheckFoldableChainNode,
/*533814*/                OPC_RecordChild1, // #5 = $src3
/*533815*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*533817*/                OPC_CheckPredicate, 9, // Predicate_load
/*533819*/                OPC_MoveParent,
/*533820*/                OPC_MoveChild3,
/*533821*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*533824*/                OPC_CheckChild0Same, 0,
/*533826*/                OPC_CheckChild1Integer, 0, 
/*533828*/                OPC_MoveParent,
/*533829*/                OPC_MoveParent,
/*533830*/                OPC_MoveChild2,
/*533831*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*533834*/                OPC_CheckPredicate, 93, // Predicate_fp64imm0
/*533836*/                OPC_MoveParent,
/*533837*/                OPC_CheckType, MVT::f64,
/*533839*/                OPC_MoveParent,
/*533840*/                OPC_MoveParent,
/*533841*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*533843*/                OPC_CheckComplexPat, /*CP*/0, /*#*/5, // selectAddr:$src3 #6 #7 #8 #9 #10
/*533846*/                OPC_EmitMergeInputChains, 2, 2, 4, 
/*533850*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*533853*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 11,  // Results = #12
/*533861*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SDZm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 0, 1, 12, 6, 7, 8, 9, 10, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86strict_Fmadd:{ *:[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:{ *:[iPTR] }:$src3)
/*533875*/              /*Scope*/ 69, /*->533945*/
/*533876*/                OPC_MoveChild1,
/*533877*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*533880*/                OPC_RecordMemRef,
/*533881*/                OPC_RecordNode, // #3 = 'ld' chained node
/*533882*/                OPC_CheckFoldableChainNode,
/*533883*/                OPC_RecordChild1, // #4 = $src3
/*533884*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*533886*/                OPC_CheckPredicate, 9, // Predicate_load
/*533888*/                OPC_MoveParent,
/*533889*/                OPC_RecordChild2, // #5 = $src2
/*533890*/                OPC_MoveChild3,
/*533891*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*533894*/                OPC_CheckChild0Same, 0,
/*533896*/                OPC_CheckChild1Integer, 0, 
/*533898*/                OPC_MoveParent,
/*533899*/                OPC_MoveParent,
/*533900*/                OPC_MoveChild2,
/*533901*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*533904*/                OPC_CheckPredicate, 93, // Predicate_fp64imm0
/*533906*/                OPC_MoveParent,
/*533907*/                OPC_CheckType, MVT::f64,
/*533909*/                OPC_MoveParent,
/*533910*/                OPC_MoveParent,
/*533911*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*533913*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #6 #7 #8 #9 #10
/*533916*/                OPC_EmitMergeInputChains, 2, 2, 3, 
/*533920*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*533923*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 5, 11,  // Results = #12
/*533931*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SDZm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 0, 1, 12, 6, 7, 8, 9, 10, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86strict_Fmadd:{ *:[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:{ *:[iPTR] }:$src3)
/*533945*/              0, /*End of Scope*/
/*533946*/            /*SwitchOpcode*/ 47|128,5/*687*/, TARGET_VAL(ISD::FMA),// ->534637
/*533950*/              OPC_Scope, 70, /*->534022*/ // 8 children in Scope
/*533952*/                OPC_RecordChild0, // #2 = $src2
/*533953*/                OPC_MoveChild1,
/*533954*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*533957*/                OPC_CheckChild0Same, 0,
/*533959*/                OPC_CheckChild1Integer, 0, 
/*533961*/                OPC_MoveParent,
/*533962*/                OPC_MoveChild2,
/*533963*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*533966*/                OPC_RecordMemRef,
/*533967*/                OPC_RecordNode, // #3 = 'ld' chained node
/*533968*/                OPC_CheckFoldableChainNode,
/*533969*/                OPC_RecordChild1, // #4 = $src3
/*533970*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*533972*/                OPC_CheckPredicate, 9, // Predicate_load
/*533974*/                OPC_MoveParent,
/*533975*/                OPC_MoveParent,
/*533976*/                OPC_MoveChild2,
/*533977*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*533980*/                OPC_CheckChild0Same, 0,
/*533982*/                OPC_CheckChild1Integer, 0, 
/*533984*/                OPC_MoveParent,
/*533985*/                OPC_CheckType, MVT::f64,
/*533987*/                OPC_MoveParent,
/*533988*/                OPC_MoveParent,
/*533989*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*533991*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*533994*/                OPC_EmitMergeInputChains, 1, 3, 
/*533997*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*534000*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 10,  // Results = #11
/*534008*/                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:{ *:[iPTR] }:$src3)
/*534022*/              /*Scope*/ 68, /*->534091*/
/*534023*/                OPC_MoveChild0,
/*534024*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*534027*/                OPC_CheckChild0Same, 0,
/*534029*/                OPC_CheckChild1Integer, 0, 
/*534031*/                OPC_MoveParent,
/*534032*/                OPC_MoveChild1,
/*534033*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*534036*/                OPC_RecordMemRef,
/*534037*/                OPC_RecordNode, // #2 = 'ld' chained node
/*534038*/                OPC_CheckFoldableChainNode,
/*534039*/                OPC_RecordChild1, // #3 = $src3
/*534040*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*534042*/                OPC_CheckPredicate, 9, // Predicate_load
/*534044*/                OPC_MoveParent,
/*534045*/                OPC_RecordChild2, // #4 = $src2
/*534046*/                OPC_MoveParent,
/*534047*/                OPC_MoveChild2,
/*534048*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*534051*/                OPC_CheckChild0Same, 0,
/*534053*/                OPC_CheckChild1Integer, 0, 
/*534055*/                OPC_MoveParent,
/*534056*/                OPC_CheckType, MVT::f64,
/*534058*/                OPC_MoveParent,
/*534059*/                OPC_MoveParent,
/*534060*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*534062*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*534065*/                OPC_EmitMergeInputChains1_2,
/*534066*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*534069*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 4, 10,  // Results = #11
/*534077*/                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:{ *:[iPTR] }:$src3)
/*534091*/              /*Scope*/ 70, /*->534162*/
/*534092*/                OPC_RecordChild0, // #2 = $src2
/*534093*/                OPC_MoveChild1,
/*534094*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*534097*/                OPC_RecordMemRef,
/*534098*/                OPC_RecordNode, // #3 = 'ld' chained node
/*534099*/                OPC_CheckFoldableChainNode,
/*534100*/                OPC_RecordChild1, // #4 = $src3
/*534101*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*534103*/                OPC_CheckPredicate, 9, // Predicate_load
/*534105*/                OPC_MoveParent,
/*534106*/                OPC_MoveChild2,
/*534107*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*534110*/                OPC_CheckChild0Same, 0,
/*534112*/                OPC_CheckChild1Integer, 0, 
/*534114*/                OPC_MoveParent,
/*534115*/                OPC_MoveParent,
/*534116*/                OPC_MoveChild2,
/*534117*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*534120*/                OPC_CheckChild0Same, 0,
/*534122*/                OPC_CheckChild1Integer, 0, 
/*534124*/                OPC_MoveParent,
/*534125*/                OPC_CheckType, MVT::f64,
/*534127*/                OPC_MoveParent,
/*534128*/                OPC_MoveParent,
/*534129*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*534131*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*534134*/                OPC_EmitMergeInputChains, 1, 3, 
/*534137*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*534140*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 10,  // Results = #11
/*534148*/                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:{ *:[iPTR] }:$src3)
/*534162*/              /*Scope*/ 70|128,1/*198*/, /*->534362*/
/*534164*/                OPC_MoveChild0,
/*534165*/                OPC_SwitchOpcode /*2 cases */, 66, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->534235
/*534169*/                  OPC_CheckChild0Same, 0,
/*534171*/                  OPC_CheckChild1Integer, 0, 
/*534173*/                  OPC_MoveParent,
/*534174*/                  OPC_RecordChild1, // #2 = $src2
/*534175*/                  OPC_MoveChild2,
/*534176*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*534179*/                  OPC_RecordMemRef,
/*534180*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*534181*/                  OPC_CheckFoldableChainNode,
/*534182*/                  OPC_RecordChild1, // #4 = $src3
/*534183*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*534185*/                  OPC_CheckPredicate, 9, // Predicate_load
/*534187*/                  OPC_MoveParent,
/*534188*/                  OPC_MoveParent,
/*534189*/                  OPC_MoveChild2,
/*534190*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*534193*/                  OPC_CheckChild0Same, 0,
/*534195*/                  OPC_CheckChild1Integer, 0, 
/*534197*/                  OPC_MoveParent,
/*534198*/                  OPC_CheckType, MVT::f64,
/*534200*/                  OPC_MoveParent,
/*534201*/                  OPC_MoveParent,
/*534202*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*534204*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*534207*/                  OPC_EmitMergeInputChains, 1, 3, 
/*534210*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*534213*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 10,  // Results = #11
/*534221*/                  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:{ *:[iPTR] }:$src3)
/*534235*/                /*SwitchOpcode*/ 123, TARGET_VAL(ISD::LOAD),// ->534361
/*534238*/                  OPC_RecordMemRef,
/*534239*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*534240*/                  OPC_CheckFoldableChainNode,
/*534241*/                  OPC_RecordChild1, // #3 = $src3
/*534242*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*534244*/                  OPC_CheckPredicate, 9, // Predicate_load
/*534246*/                  OPC_MoveParent,
/*534247*/                  OPC_Scope, 55, /*->534304*/ // 2 children in Scope
/*534249*/                    OPC_MoveChild1,
/*534250*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*534253*/                    OPC_CheckChild0Same, 0,
/*534255*/                    OPC_CheckChild1Integer, 0, 
/*534257*/                    OPC_MoveParent,
/*534258*/                    OPC_RecordChild2, // #4 = $src2
/*534259*/                    OPC_MoveParent,
/*534260*/                    OPC_MoveChild2,
/*534261*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*534264*/                    OPC_CheckChild0Same, 0,
/*534266*/                    OPC_CheckChild1Integer, 0, 
/*534268*/                    OPC_MoveParent,
/*534269*/                    OPC_CheckType, MVT::f64,
/*534271*/                    OPC_MoveParent,
/*534272*/                    OPC_MoveParent,
/*534273*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*534275*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*534278*/                    OPC_EmitMergeInputChains1_2,
/*534279*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*534282*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v2f64, 2/*#Ops*/, 4, 10,  // Results = #11
/*534290*/                    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:{ *:[iPTR] }:$src3)
/*534304*/                  /*Scope*/ 55, /*->534360*/
/*534305*/                    OPC_RecordChild1, // #4 = $src2
/*534306*/                    OPC_MoveChild2,
/*534307*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*534310*/                    OPC_CheckChild0Same, 0,
/*534312*/                    OPC_CheckChild1Integer, 0, 
/*534314*/                    OPC_MoveParent,
/*534315*/                    OPC_MoveParent,
/*534316*/                    OPC_MoveChild2,
/*534317*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*534320*/                    OPC_CheckChild0Same, 0,
/*534322*/                    OPC_CheckChild1Integer, 0, 
/*534324*/                    OPC_MoveParent,
/*534325*/                    OPC_CheckType, MVT::f64,
/*534327*/                    OPC_MoveParent,
/*534328*/                    OPC_MoveParent,
/*534329*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*534331*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*534334*/                    OPC_EmitMergeInputChains1_2,
/*534335*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*534338*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v2f64, 2/*#Ops*/, 4, 10,  // Results = #11
/*534346*/                    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:{ *:[iPTR] }:$src3)
/*534360*/                  0, /*End of Scope*/
/*534361*/                0, // EndSwitchOpcode
/*534362*/              /*Scope*/ 68, /*->534431*/
/*534363*/                OPC_RecordChild0, // #2 = $src2
/*534364*/                OPC_MoveChild1,
/*534365*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*534368*/                OPC_CheckChild0Same, 0,
/*534370*/                OPC_CheckChild1Integer, 0, 
/*534372*/                OPC_MoveParent,
/*534373*/                OPC_MoveChild2,
/*534374*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*534377*/                OPC_RecordMemRef,
/*534378*/                OPC_RecordNode, // #3 = 'ld' chained node
/*534379*/                OPC_CheckFoldableChainNode,
/*534380*/                OPC_RecordChild1, // #4 = $src3
/*534381*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*534383*/                OPC_CheckPredicate, 9, // Predicate_load
/*534385*/                OPC_MoveParent,
/*534386*/                OPC_MoveParent,
/*534387*/                OPC_MoveChild2,
/*534388*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*534391*/                OPC_CheckPredicate, 93, // Predicate_fp64imm0
/*534393*/                OPC_MoveParent,
/*534394*/                OPC_CheckType, MVT::f64,
/*534396*/                OPC_MoveParent,
/*534397*/                OPC_MoveParent,
/*534398*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*534400*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*534403*/                OPC_EmitMergeInputChains, 1, 3, 
/*534406*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*534409*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 10,  // Results = #11
/*534417*/                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:{ *:[iPTR] }:$src3)
/*534431*/              /*Scope*/ 68, /*->534500*/
/*534432*/                OPC_MoveChild0,
/*534433*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*534436*/                OPC_CheckChild0Same, 0,
/*534438*/                OPC_CheckChild1Integer, 0, 
/*534440*/                OPC_MoveParent,
/*534441*/                OPC_RecordChild1, // #2 = $src2
/*534442*/                OPC_MoveChild2,
/*534443*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*534446*/                OPC_RecordMemRef,
/*534447*/                OPC_RecordNode, // #3 = 'ld' chained node
/*534448*/                OPC_CheckFoldableChainNode,
/*534449*/                OPC_RecordChild1, // #4 = $src3
/*534450*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*534452*/                OPC_CheckPredicate, 9, // Predicate_load
/*534454*/                OPC_MoveParent,
/*534455*/                OPC_MoveParent,
/*534456*/                OPC_MoveChild2,
/*534457*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*534460*/                OPC_CheckPredicate, 93, // Predicate_fp64imm0
/*534462*/                OPC_MoveParent,
/*534463*/                OPC_CheckType, MVT::f64,
/*534465*/                OPC_MoveParent,
/*534466*/                OPC_MoveParent,
/*534467*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*534469*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*534472*/                OPC_EmitMergeInputChains, 1, 3, 
/*534475*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*534478*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 10,  // Results = #11
/*534486*/                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:{ *:[iPTR] }:$src3)
/*534500*/              /*Scope*/ 68, /*->534569*/
/*534501*/                OPC_RecordChild0, // #2 = $src2
/*534502*/                OPC_MoveChild1,
/*534503*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*534506*/                OPC_RecordMemRef,
/*534507*/                OPC_RecordNode, // #3 = 'ld' chained node
/*534508*/                OPC_CheckFoldableChainNode,
/*534509*/                OPC_RecordChild1, // #4 = $src3
/*534510*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*534512*/                OPC_CheckPredicate, 9, // Predicate_load
/*534514*/                OPC_MoveParent,
/*534515*/                OPC_MoveChild2,
/*534516*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*534519*/                OPC_CheckChild0Same, 0,
/*534521*/                OPC_CheckChild1Integer, 0, 
/*534523*/                OPC_MoveParent,
/*534524*/                OPC_MoveParent,
/*534525*/                OPC_MoveChild2,
/*534526*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*534529*/                OPC_CheckPredicate, 93, // Predicate_fp64imm0
/*534531*/                OPC_MoveParent,
/*534532*/                OPC_CheckType, MVT::f64,
/*534534*/                OPC_MoveParent,
/*534535*/                OPC_MoveParent,
/*534536*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*534538*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*534541*/                OPC_EmitMergeInputChains, 1, 3, 
/*534544*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*534547*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 10,  // Results = #11
/*534555*/                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:{ *:[iPTR] }:$src3)
/*534569*/              /*Scope*/ 66, /*->534636*/
/*534570*/                OPC_MoveChild0,
/*534571*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*534574*/                OPC_RecordMemRef,
/*534575*/                OPC_RecordNode, // #2 = 'ld' chained node
/*534576*/                OPC_CheckFoldableChainNode,
/*534577*/                OPC_RecordChild1, // #3 = $src3
/*534578*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*534580*/                OPC_CheckPredicate, 9, // Predicate_load
/*534582*/                OPC_MoveParent,
/*534583*/                OPC_RecordChild1, // #4 = $src2
/*534584*/                OPC_MoveChild2,
/*534585*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*534588*/                OPC_CheckChild0Same, 0,
/*534590*/                OPC_CheckChild1Integer, 0, 
/*534592*/                OPC_MoveParent,
/*534593*/                OPC_MoveParent,
/*534594*/                OPC_MoveChild2,
/*534595*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*534598*/                OPC_CheckPredicate, 93, // Predicate_fp64imm0
/*534600*/                OPC_MoveParent,
/*534601*/                OPC_CheckType, MVT::f64,
/*534603*/                OPC_MoveParent,
/*534604*/                OPC_MoveParent,
/*534605*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*534607*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*534610*/                OPC_EmitMergeInputChains1_2,
/*534611*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*534614*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 4, 10,  // Results = #11
/*534622*/                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:{ *:[iPTR] }:$src3)
/*534636*/              0, /*End of Scope*/
/*534637*/            /*SwitchOpcode*/ 47|128,5/*687*/, TARGET_VAL(X86ISD::FMSUB),// ->535328
/*534641*/              OPC_Scope, 70, /*->534713*/ // 8 children in Scope
/*534643*/                OPC_RecordChild0, // #2 = $src2
/*534644*/                OPC_MoveChild1,
/*534645*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*534648*/                OPC_CheckChild0Same, 0,
/*534650*/                OPC_CheckChild1Integer, 0, 
/*534652*/                OPC_MoveParent,
/*534653*/                OPC_MoveChild2,
/*534654*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*534657*/                OPC_RecordMemRef,
/*534658*/                OPC_RecordNode, // #3 = 'ld' chained node
/*534659*/                OPC_CheckFoldableChainNode,
/*534660*/                OPC_RecordChild1, // #4 = $src3
/*534661*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*534663*/                OPC_CheckPredicate, 9, // Predicate_load
/*534665*/                OPC_MoveParent,
/*534666*/                OPC_MoveParent,
/*534667*/                OPC_MoveChild2,
/*534668*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*534671*/                OPC_CheckChild0Same, 0,
/*534673*/                OPC_CheckChild1Integer, 0, 
/*534675*/                OPC_MoveParent,
/*534676*/                OPC_CheckType, MVT::f64,
/*534678*/                OPC_MoveParent,
/*534679*/                OPC_MoveParent,
/*534680*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*534682*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*534685*/                OPC_EmitMergeInputChains, 1, 3, 
/*534688*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*534691*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 10,  // Results = #11
/*534699*/                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:{ *:[iPTR] }:$src3)
/*534713*/              /*Scope*/ 68, /*->534782*/
/*534714*/                OPC_MoveChild0,
/*534715*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*534718*/                OPC_CheckChild0Same, 0,
/*534720*/                OPC_CheckChild1Integer, 0, 
/*534722*/                OPC_MoveParent,
/*534723*/                OPC_MoveChild1,
/*534724*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*534727*/                OPC_RecordMemRef,
/*534728*/                OPC_RecordNode, // #2 = 'ld' chained node
/*534729*/                OPC_CheckFoldableChainNode,
/*534730*/                OPC_RecordChild1, // #3 = $src3
/*534731*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*534733*/                OPC_CheckPredicate, 9, // Predicate_load
/*534735*/                OPC_MoveParent,
/*534736*/                OPC_RecordChild2, // #4 = $src2
/*534737*/                OPC_MoveParent,
/*534738*/                OPC_MoveChild2,
/*534739*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*534742*/                OPC_CheckChild0Same, 0,
/*534744*/                OPC_CheckChild1Integer, 0, 
/*534746*/                OPC_MoveParent,
/*534747*/                OPC_CheckType, MVT::f64,
/*534749*/                OPC_MoveParent,
/*534750*/                OPC_MoveParent,
/*534751*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*534753*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*534756*/                OPC_EmitMergeInputChains1_2,
/*534757*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*534760*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 4, 10,  // Results = #11
/*534768*/                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:{ *:[iPTR] }:$src3)
/*534782*/              /*Scope*/ 70, /*->534853*/
/*534783*/                OPC_RecordChild0, // #2 = $src2
/*534784*/                OPC_MoveChild1,
/*534785*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*534788*/                OPC_RecordMemRef,
/*534789*/                OPC_RecordNode, // #3 = 'ld' chained node
/*534790*/                OPC_CheckFoldableChainNode,
/*534791*/                OPC_RecordChild1, // #4 = $src3
/*534792*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*534794*/                OPC_CheckPredicate, 9, // Predicate_load
/*534796*/                OPC_MoveParent,
/*534797*/                OPC_MoveChild2,
/*534798*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*534801*/                OPC_CheckChild0Same, 0,
/*534803*/                OPC_CheckChild1Integer, 0, 
/*534805*/                OPC_MoveParent,
/*534806*/                OPC_MoveParent,
/*534807*/                OPC_MoveChild2,
/*534808*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*534811*/                OPC_CheckChild0Same, 0,
/*534813*/                OPC_CheckChild1Integer, 0, 
/*534815*/                OPC_MoveParent,
/*534816*/                OPC_CheckType, MVT::f64,
/*534818*/                OPC_MoveParent,
/*534819*/                OPC_MoveParent,
/*534820*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*534822*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*534825*/                OPC_EmitMergeInputChains, 1, 3, 
/*534828*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*534831*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 10,  // Results = #11
/*534839*/                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:{ *:[iPTR] }:$src3)
/*534853*/              /*Scope*/ 70|128,1/*198*/, /*->535053*/
/*534855*/                OPC_MoveChild0,
/*534856*/                OPC_SwitchOpcode /*2 cases */, 66, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->534926
/*534860*/                  OPC_CheckChild0Same, 0,
/*534862*/                  OPC_CheckChild1Integer, 0, 
/*534864*/                  OPC_MoveParent,
/*534865*/                  OPC_RecordChild1, // #2 = $src2
/*534866*/                  OPC_MoveChild2,
/*534867*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*534870*/                  OPC_RecordMemRef,
/*534871*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*534872*/                  OPC_CheckFoldableChainNode,
/*534873*/                  OPC_RecordChild1, // #4 = $src3
/*534874*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*534876*/                  OPC_CheckPredicate, 9, // Predicate_load
/*534878*/                  OPC_MoveParent,
/*534879*/                  OPC_MoveParent,
/*534880*/                  OPC_MoveChild2,
/*534881*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*534884*/                  OPC_CheckChild0Same, 0,
/*534886*/                  OPC_CheckChild1Integer, 0, 
/*534888*/                  OPC_MoveParent,
/*534889*/                  OPC_CheckType, MVT::f64,
/*534891*/                  OPC_MoveParent,
/*534892*/                  OPC_MoveParent,
/*534893*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*534895*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*534898*/                  OPC_EmitMergeInputChains, 1, 3, 
/*534901*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*534904*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 10,  // Results = #11
/*534912*/                  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:{ *:[iPTR] }:$src3)
/*534926*/                /*SwitchOpcode*/ 123, TARGET_VAL(ISD::LOAD),// ->535052
/*534929*/                  OPC_RecordMemRef,
/*534930*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*534931*/                  OPC_CheckFoldableChainNode,
/*534932*/                  OPC_RecordChild1, // #3 = $src3
/*534933*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*534935*/                  OPC_CheckPredicate, 9, // Predicate_load
/*534937*/                  OPC_MoveParent,
/*534938*/                  OPC_Scope, 55, /*->534995*/ // 2 children in Scope
/*534940*/                    OPC_MoveChild1,
/*534941*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*534944*/                    OPC_CheckChild0Same, 0,
/*534946*/                    OPC_CheckChild1Integer, 0, 
/*534948*/                    OPC_MoveParent,
/*534949*/                    OPC_RecordChild2, // #4 = $src2
/*534950*/                    OPC_MoveParent,
/*534951*/                    OPC_MoveChild2,
/*534952*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*534955*/                    OPC_CheckChild0Same, 0,
/*534957*/                    OPC_CheckChild1Integer, 0, 
/*534959*/                    OPC_MoveParent,
/*534960*/                    OPC_CheckType, MVT::f64,
/*534962*/                    OPC_MoveParent,
/*534963*/                    OPC_MoveParent,
/*534964*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*534966*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*534969*/                    OPC_EmitMergeInputChains1_2,
/*534970*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*534973*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v2f64, 2/*#Ops*/, 4, 10,  // Results = #11
/*534981*/                    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:{ *:[iPTR] }:$src3)
/*534995*/                  /*Scope*/ 55, /*->535051*/
/*534996*/                    OPC_RecordChild1, // #4 = $src2
/*534997*/                    OPC_MoveChild2,
/*534998*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*535001*/                    OPC_CheckChild0Same, 0,
/*535003*/                    OPC_CheckChild1Integer, 0, 
/*535005*/                    OPC_MoveParent,
/*535006*/                    OPC_MoveParent,
/*535007*/                    OPC_MoveChild2,
/*535008*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*535011*/                    OPC_CheckChild0Same, 0,
/*535013*/                    OPC_CheckChild1Integer, 0, 
/*535015*/                    OPC_MoveParent,
/*535016*/                    OPC_CheckType, MVT::f64,
/*535018*/                    OPC_MoveParent,
/*535019*/                    OPC_MoveParent,
/*535020*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*535022*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*535025*/                    OPC_EmitMergeInputChains1_2,
/*535026*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*535029*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v2f64, 2/*#Ops*/, 4, 10,  // Results = #11
/*535037*/                    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:{ *:[iPTR] }:$src3)
/*535051*/                  0, /*End of Scope*/
/*535052*/                0, // EndSwitchOpcode
/*535053*/              /*Scope*/ 68, /*->535122*/
/*535054*/                OPC_RecordChild0, // #2 = $src2
/*535055*/                OPC_MoveChild1,
/*535056*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*535059*/                OPC_CheckChild0Same, 0,
/*535061*/                OPC_CheckChild1Integer, 0, 
/*535063*/                OPC_MoveParent,
/*535064*/                OPC_MoveChild2,
/*535065*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*535068*/                OPC_RecordMemRef,
/*535069*/                OPC_RecordNode, // #3 = 'ld' chained node
/*535070*/                OPC_CheckFoldableChainNode,
/*535071*/                OPC_RecordChild1, // #4 = $src3
/*535072*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*535074*/                OPC_CheckPredicate, 9, // Predicate_load
/*535076*/                OPC_MoveParent,
/*535077*/                OPC_MoveParent,
/*535078*/                OPC_MoveChild2,
/*535079*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*535082*/                OPC_CheckPredicate, 93, // Predicate_fp64imm0
/*535084*/                OPC_MoveParent,
/*535085*/                OPC_CheckType, MVT::f64,
/*535087*/                OPC_MoveParent,
/*535088*/                OPC_MoveParent,
/*535089*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*535091*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*535094*/                OPC_EmitMergeInputChains, 1, 3, 
/*535097*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*535100*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 10,  // Results = #11
/*535108*/                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:{ *:[iPTR] }:$src3)
/*535122*/              /*Scope*/ 68, /*->535191*/
/*535123*/                OPC_MoveChild0,
/*535124*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*535127*/                OPC_CheckChild0Same, 0,
/*535129*/                OPC_CheckChild1Integer, 0, 
/*535131*/                OPC_MoveParent,
/*535132*/                OPC_RecordChild1, // #2 = $src2
/*535133*/                OPC_MoveChild2,
/*535134*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*535137*/                OPC_RecordMemRef,
/*535138*/                OPC_RecordNode, // #3 = 'ld' chained node
/*535139*/                OPC_CheckFoldableChainNode,
/*535140*/                OPC_RecordChild1, // #4 = $src3
/*535141*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*535143*/                OPC_CheckPredicate, 9, // Predicate_load
/*535145*/                OPC_MoveParent,
/*535146*/                OPC_MoveParent,
/*535147*/                OPC_MoveChild2,
/*535148*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*535151*/                OPC_CheckPredicate, 93, // Predicate_fp64imm0
/*535153*/                OPC_MoveParent,
/*535154*/                OPC_CheckType, MVT::f64,
/*535156*/                OPC_MoveParent,
/*535157*/                OPC_MoveParent,
/*535158*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*535160*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*535163*/                OPC_EmitMergeInputChains, 1, 3, 
/*535166*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*535169*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 10,  // Results = #11
/*535177*/                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:{ *:[iPTR] }:$src3)
/*535191*/              /*Scope*/ 68, /*->535260*/
/*535192*/                OPC_RecordChild0, // #2 = $src2
/*535193*/                OPC_MoveChild1,
/*535194*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*535197*/                OPC_RecordMemRef,
/*535198*/                OPC_RecordNode, // #3 = 'ld' chained node
/*535199*/                OPC_CheckFoldableChainNode,
/*535200*/                OPC_RecordChild1, // #4 = $src3
/*535201*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*535203*/                OPC_CheckPredicate, 9, // Predicate_load
/*535205*/                OPC_MoveParent,
/*535206*/                OPC_MoveChild2,
/*535207*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*535210*/                OPC_CheckChild0Same, 0,
/*535212*/                OPC_CheckChild1Integer, 0, 
/*535214*/                OPC_MoveParent,
/*535215*/                OPC_MoveParent,
/*535216*/                OPC_MoveChild2,
/*535217*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*535220*/                OPC_CheckPredicate, 93, // Predicate_fp64imm0
/*535222*/                OPC_MoveParent,
/*535223*/                OPC_CheckType, MVT::f64,
/*535225*/                OPC_MoveParent,
/*535226*/                OPC_MoveParent,
/*535227*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*535229*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*535232*/                OPC_EmitMergeInputChains, 1, 3, 
/*535235*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*535238*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 10,  // Results = #11
/*535246*/                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:{ *:[iPTR] }:$src3)
/*535260*/              /*Scope*/ 66, /*->535327*/
/*535261*/                OPC_MoveChild0,
/*535262*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*535265*/                OPC_RecordMemRef,
/*535266*/                OPC_RecordNode, // #2 = 'ld' chained node
/*535267*/                OPC_CheckFoldableChainNode,
/*535268*/                OPC_RecordChild1, // #3 = $src3
/*535269*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*535271*/                OPC_CheckPredicate, 9, // Predicate_load
/*535273*/                OPC_MoveParent,
/*535274*/                OPC_RecordChild1, // #4 = $src2
/*535275*/                OPC_MoveChild2,
/*535276*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*535279*/                OPC_CheckChild0Same, 0,
/*535281*/                OPC_CheckChild1Integer, 0, 
/*535283*/                OPC_MoveParent,
/*535284*/                OPC_MoveParent,
/*535285*/                OPC_MoveChild2,
/*535286*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*535289*/                OPC_CheckPredicate, 93, // Predicate_fp64imm0
/*535291*/                OPC_MoveParent,
/*535292*/                OPC_CheckType, MVT::f64,
/*535294*/                OPC_MoveParent,
/*535295*/                OPC_MoveParent,
/*535296*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*535298*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*535301*/                OPC_EmitMergeInputChains1_2,
/*535302*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*535305*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 4, 10,  // Results = #11
/*535313*/                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:{ *:[iPTR] }:$src3)
/*535327*/              0, /*End of Scope*/
/*535328*/            /*SwitchOpcode*/ 47|128,5/*687*/, TARGET_VAL(X86ISD::FNMADD),// ->536019
/*535332*/              OPC_Scope, 70, /*->535404*/ // 8 children in Scope
/*535334*/                OPC_RecordChild0, // #2 = $src2
/*535335*/                OPC_MoveChild1,
/*535336*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*535339*/                OPC_CheckChild0Same, 0,
/*535341*/                OPC_CheckChild1Integer, 0, 
/*535343*/                OPC_MoveParent,
/*535344*/                OPC_MoveChild2,
/*535345*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*535348*/                OPC_RecordMemRef,
/*535349*/                OPC_RecordNode, // #3 = 'ld' chained node
/*535350*/                OPC_CheckFoldableChainNode,
/*535351*/                OPC_RecordChild1, // #4 = $src3
/*535352*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*535354*/                OPC_CheckPredicate, 9, // Predicate_load
/*535356*/                OPC_MoveParent,
/*535357*/                OPC_MoveParent,
/*535358*/                OPC_MoveChild2,
/*535359*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*535362*/                OPC_CheckChild0Same, 0,
/*535364*/                OPC_CheckChild1Integer, 0, 
/*535366*/                OPC_MoveParent,
/*535367*/                OPC_CheckType, MVT::f64,
/*535369*/                OPC_MoveParent,
/*535370*/                OPC_MoveParent,
/*535371*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*535373*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*535376*/                OPC_EmitMergeInputChains, 1, 3, 
/*535379*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*535382*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 10,  // Results = #11
/*535390*/                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:{ *:[iPTR] }:$src3)
/*535404*/              /*Scope*/ 68, /*->535473*/
/*535405*/                OPC_MoveChild0,
/*535406*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*535409*/                OPC_CheckChild0Same, 0,
/*535411*/                OPC_CheckChild1Integer, 0, 
/*535413*/                OPC_MoveParent,
/*535414*/                OPC_MoveChild1,
/*535415*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*535418*/                OPC_RecordMemRef,
/*535419*/                OPC_RecordNode, // #2 = 'ld' chained node
/*535420*/                OPC_CheckFoldableChainNode,
/*535421*/                OPC_RecordChild1, // #3 = $src3
/*535422*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*535424*/                OPC_CheckPredicate, 9, // Predicate_load
/*535426*/                OPC_MoveParent,
/*535427*/                OPC_RecordChild2, // #4 = $src2
/*535428*/                OPC_MoveParent,
/*535429*/                OPC_MoveChild2,
/*535430*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*535433*/                OPC_CheckChild0Same, 0,
/*535435*/                OPC_CheckChild1Integer, 0, 
/*535437*/                OPC_MoveParent,
/*535438*/                OPC_CheckType, MVT::f64,
/*535440*/                OPC_MoveParent,
/*535441*/                OPC_MoveParent,
/*535442*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*535444*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*535447*/                OPC_EmitMergeInputChains1_2,
/*535448*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*535451*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 4, 10,  // Results = #11
/*535459*/                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:{ *:[iPTR] }:$src3)
/*535473*/              /*Scope*/ 70, /*->535544*/
/*535474*/                OPC_RecordChild0, // #2 = $src2
/*535475*/                OPC_MoveChild1,
/*535476*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*535479*/                OPC_RecordMemRef,
/*535480*/                OPC_RecordNode, // #3 = 'ld' chained node
/*535481*/                OPC_CheckFoldableChainNode,
/*535482*/                OPC_RecordChild1, // #4 = $src3
/*535483*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*535485*/                OPC_CheckPredicate, 9, // Predicate_load
/*535487*/                OPC_MoveParent,
/*535488*/                OPC_MoveChild2,
/*535489*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*535492*/                OPC_CheckChild0Same, 0,
/*535494*/                OPC_CheckChild1Integer, 0, 
/*535496*/                OPC_MoveParent,
/*535497*/                OPC_MoveParent,
/*535498*/                OPC_MoveChild2,
/*535499*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*535502*/                OPC_CheckChild0Same, 0,
/*535504*/                OPC_CheckChild1Integer, 0, 
/*535506*/                OPC_MoveParent,
/*535507*/                OPC_CheckType, MVT::f64,
/*535509*/                OPC_MoveParent,
/*535510*/                OPC_MoveParent,
/*535511*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*535513*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*535516*/                OPC_EmitMergeInputChains, 1, 3, 
/*535519*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*535522*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 10,  // Results = #11
/*535530*/                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:{ *:[iPTR] }:$src3)
/*535544*/              /*Scope*/ 70|128,1/*198*/, /*->535744*/
/*535546*/                OPC_MoveChild0,
/*535547*/                OPC_SwitchOpcode /*2 cases */, 66, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->535617
/*535551*/                  OPC_CheckChild0Same, 0,
/*535553*/                  OPC_CheckChild1Integer, 0, 
/*535555*/                  OPC_MoveParent,
/*535556*/                  OPC_RecordChild1, // #2 = $src2
/*535557*/                  OPC_MoveChild2,
/*535558*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*535561*/                  OPC_RecordMemRef,
/*535562*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*535563*/                  OPC_CheckFoldableChainNode,
/*535564*/                  OPC_RecordChild1, // #4 = $src3
/*535565*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*535567*/                  OPC_CheckPredicate, 9, // Predicate_load
/*535569*/                  OPC_MoveParent,
/*535570*/                  OPC_MoveParent,
/*535571*/                  OPC_MoveChild2,
/*535572*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*535575*/                  OPC_CheckChild0Same, 0,
/*535577*/                  OPC_CheckChild1Integer, 0, 
/*535579*/                  OPC_MoveParent,
/*535580*/                  OPC_CheckType, MVT::f64,
/*535582*/                  OPC_MoveParent,
/*535583*/                  OPC_MoveParent,
/*535584*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*535586*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*535589*/                  OPC_EmitMergeInputChains, 1, 3, 
/*535592*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*535595*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 10,  // Results = #11
/*535603*/                  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:{ *:[iPTR] }:$src3)
/*535617*/                /*SwitchOpcode*/ 123, TARGET_VAL(ISD::LOAD),// ->535743
/*535620*/                  OPC_RecordMemRef,
/*535621*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*535622*/                  OPC_CheckFoldableChainNode,
/*535623*/                  OPC_RecordChild1, // #3 = $src3
/*535624*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*535626*/                  OPC_CheckPredicate, 9, // Predicate_load
/*535628*/                  OPC_MoveParent,
/*535629*/                  OPC_Scope, 55, /*->535686*/ // 2 children in Scope
/*535631*/                    OPC_MoveChild1,
/*535632*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*535635*/                    OPC_CheckChild0Same, 0,
/*535637*/                    OPC_CheckChild1Integer, 0, 
/*535639*/                    OPC_MoveParent,
/*535640*/                    OPC_RecordChild2, // #4 = $src2
/*535641*/                    OPC_MoveParent,
/*535642*/                    OPC_MoveChild2,
/*535643*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*535646*/                    OPC_CheckChild0Same, 0,
/*535648*/                    OPC_CheckChild1Integer, 0, 
/*535650*/                    OPC_MoveParent,
/*535651*/                    OPC_CheckType, MVT::f64,
/*535653*/                    OPC_MoveParent,
/*535654*/                    OPC_MoveParent,
/*535655*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*535657*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*535660*/                    OPC_EmitMergeInputChains1_2,
/*535661*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*535664*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v2f64, 2/*#Ops*/, 4, 10,  // Results = #11
/*535672*/                    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:{ *:[iPTR] }:$src3)
/*535686*/                  /*Scope*/ 55, /*->535742*/
/*535687*/                    OPC_RecordChild1, // #4 = $src2
/*535688*/                    OPC_MoveChild2,
/*535689*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*535692*/                    OPC_CheckChild0Same, 0,
/*535694*/                    OPC_CheckChild1Integer, 0, 
/*535696*/                    OPC_MoveParent,
/*535697*/                    OPC_MoveParent,
/*535698*/                    OPC_MoveChild2,
/*535699*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*535702*/                    OPC_CheckChild0Same, 0,
/*535704*/                    OPC_CheckChild1Integer, 0, 
/*535706*/                    OPC_MoveParent,
/*535707*/                    OPC_CheckType, MVT::f64,
/*535709*/                    OPC_MoveParent,
/*535710*/                    OPC_MoveParent,
/*535711*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*535713*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*535716*/                    OPC_EmitMergeInputChains1_2,
/*535717*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*535720*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v2f64, 2/*#Ops*/, 4, 10,  // Results = #11
/*535728*/                    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:{ *:[iPTR] }:$src3)
/*535742*/                  0, /*End of Scope*/
/*535743*/                0, // EndSwitchOpcode
/*535744*/              /*Scope*/ 68, /*->535813*/
/*535745*/                OPC_RecordChild0, // #2 = $src2
/*535746*/                OPC_MoveChild1,
/*535747*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*535750*/                OPC_CheckChild0Same, 0,
/*535752*/                OPC_CheckChild1Integer, 0, 
/*535754*/                OPC_MoveParent,
/*535755*/                OPC_MoveChild2,
/*535756*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*535759*/                OPC_RecordMemRef,
/*535760*/                OPC_RecordNode, // #3 = 'ld' chained node
/*535761*/                OPC_CheckFoldableChainNode,
/*535762*/                OPC_RecordChild1, // #4 = $src3
/*535763*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*535765*/                OPC_CheckPredicate, 9, // Predicate_load
/*535767*/                OPC_MoveParent,
/*535768*/                OPC_MoveParent,
/*535769*/                OPC_MoveChild2,
/*535770*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*535773*/                OPC_CheckPredicate, 93, // Predicate_fp64imm0
/*535775*/                OPC_MoveParent,
/*535776*/                OPC_CheckType, MVT::f64,
/*535778*/                OPC_MoveParent,
/*535779*/                OPC_MoveParent,
/*535780*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*535782*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*535785*/                OPC_EmitMergeInputChains, 1, 3, 
/*535788*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*535791*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 10,  // Results = #11
/*535799*/                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:{ *:[iPTR] }:$src3)
/*535813*/              /*Scope*/ 68, /*->535882*/
/*535814*/                OPC_MoveChild0,
/*535815*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*535818*/                OPC_CheckChild0Same, 0,
/*535820*/                OPC_CheckChild1Integer, 0, 
/*535822*/                OPC_MoveParent,
/*535823*/                OPC_RecordChild1, // #2 = $src2
/*535824*/                OPC_MoveChild2,
/*535825*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*535828*/                OPC_RecordMemRef,
/*535829*/                OPC_RecordNode, // #3 = 'ld' chained node
/*535830*/                OPC_CheckFoldableChainNode,
/*535831*/                OPC_RecordChild1, // #4 = $src3
/*535832*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*535834*/                OPC_CheckPredicate, 9, // Predicate_load
/*535836*/                OPC_MoveParent,
/*535837*/                OPC_MoveParent,
/*535838*/                OPC_MoveChild2,
/*535839*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*535842*/                OPC_CheckPredicate, 93, // Predicate_fp64imm0
/*535844*/                OPC_MoveParent,
/*535845*/                OPC_CheckType, MVT::f64,
/*535847*/                OPC_MoveParent,
/*535848*/                OPC_MoveParent,
/*535849*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*535851*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*535854*/                OPC_EmitMergeInputChains, 1, 3, 
/*535857*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*535860*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 10,  // Results = #11
/*535868*/                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:{ *:[iPTR] }:$src3)
/*535882*/              /*Scope*/ 68, /*->535951*/
/*535883*/                OPC_RecordChild0, // #2 = $src2
/*535884*/                OPC_MoveChild1,
/*535885*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*535888*/                OPC_RecordMemRef,
/*535889*/                OPC_RecordNode, // #3 = 'ld' chained node
/*535890*/                OPC_CheckFoldableChainNode,
/*535891*/                OPC_RecordChild1, // #4 = $src3
/*535892*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*535894*/                OPC_CheckPredicate, 9, // Predicate_load
/*535896*/                OPC_MoveParent,
/*535897*/                OPC_MoveChild2,
/*535898*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*535901*/                OPC_CheckChild0Same, 0,
/*535903*/                OPC_CheckChild1Integer, 0, 
/*535905*/                OPC_MoveParent,
/*535906*/                OPC_MoveParent,
/*535907*/                OPC_MoveChild2,
/*535908*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*535911*/                OPC_CheckPredicate, 93, // Predicate_fp64imm0
/*535913*/                OPC_MoveParent,
/*535914*/                OPC_CheckType, MVT::f64,
/*535916*/                OPC_MoveParent,
/*535917*/                OPC_MoveParent,
/*535918*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*535920*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*535923*/                OPC_EmitMergeInputChains, 1, 3, 
/*535926*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*535929*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 10,  // Results = #11
/*535937*/                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:{ *:[iPTR] }:$src3)
/*535951*/              /*Scope*/ 66, /*->536018*/
/*535952*/                OPC_MoveChild0,
/*535953*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*535956*/                OPC_RecordMemRef,
/*535957*/                OPC_RecordNode, // #2 = 'ld' chained node
/*535958*/                OPC_CheckFoldableChainNode,
/*535959*/                OPC_RecordChild1, // #3 = $src3
/*535960*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*535962*/                OPC_CheckPredicate, 9, // Predicate_load
/*535964*/                OPC_MoveParent,
/*535965*/                OPC_RecordChild1, // #4 = $src2
/*535966*/                OPC_MoveChild2,
/*535967*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*535970*/                OPC_CheckChild0Same, 0,
/*535972*/                OPC_CheckChild1Integer, 0, 
/*535974*/                OPC_MoveParent,
/*535975*/                OPC_MoveParent,
/*535976*/                OPC_MoveChild2,
/*535977*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*535980*/                OPC_CheckPredicate, 93, // Predicate_fp64imm0
/*535982*/                OPC_MoveParent,
/*535983*/                OPC_CheckType, MVT::f64,
/*535985*/                OPC_MoveParent,
/*535986*/                OPC_MoveParent,
/*535987*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*535989*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*535992*/                OPC_EmitMergeInputChains1_2,
/*535993*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*535996*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 4, 10,  // Results = #11
/*536004*/                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:{ *:[iPTR] }:$src3)
/*536018*/              0, /*End of Scope*/
/*536019*/            /*SwitchOpcode*/ 47|128,5/*687*/, TARGET_VAL(X86ISD::FNMSUB),// ->536710
/*536023*/              OPC_Scope, 70, /*->536095*/ // 8 children in Scope
/*536025*/                OPC_RecordChild0, // #2 = $src2
/*536026*/                OPC_MoveChild1,
/*536027*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*536030*/                OPC_CheckChild0Same, 0,
/*536032*/                OPC_CheckChild1Integer, 0, 
/*536034*/                OPC_MoveParent,
/*536035*/                OPC_MoveChild2,
/*536036*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*536039*/                OPC_RecordMemRef,
/*536040*/                OPC_RecordNode, // #3 = 'ld' chained node
/*536041*/                OPC_CheckFoldableChainNode,
/*536042*/                OPC_RecordChild1, // #4 = $src3
/*536043*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*536045*/                OPC_CheckPredicate, 9, // Predicate_load
/*536047*/                OPC_MoveParent,
/*536048*/                OPC_MoveParent,
/*536049*/                OPC_MoveChild2,
/*536050*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*536053*/                OPC_CheckChild0Same, 0,
/*536055*/                OPC_CheckChild1Integer, 0, 
/*536057*/                OPC_MoveParent,
/*536058*/                OPC_CheckType, MVT::f64,
/*536060*/                OPC_MoveParent,
/*536061*/                OPC_MoveParent,
/*536062*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*536064*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*536067*/                OPC_EmitMergeInputChains, 1, 3, 
/*536070*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*536073*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 10,  // Results = #11
/*536081*/                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:{ *:[iPTR] }:$src3)
/*536095*/              /*Scope*/ 68, /*->536164*/
/*536096*/                OPC_MoveChild0,
/*536097*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*536100*/                OPC_CheckChild0Same, 0,
/*536102*/                OPC_CheckChild1Integer, 0, 
/*536104*/                OPC_MoveParent,
/*536105*/                OPC_MoveChild1,
/*536106*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*536109*/                OPC_RecordMemRef,
/*536110*/                OPC_RecordNode, // #2 = 'ld' chained node
/*536111*/                OPC_CheckFoldableChainNode,
/*536112*/                OPC_RecordChild1, // #3 = $src3
/*536113*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*536115*/                OPC_CheckPredicate, 9, // Predicate_load
/*536117*/                OPC_MoveParent,
/*536118*/                OPC_RecordChild2, // #4 = $src2
/*536119*/                OPC_MoveParent,
/*536120*/                OPC_MoveChild2,
/*536121*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*536124*/                OPC_CheckChild0Same, 0,
/*536126*/                OPC_CheckChild1Integer, 0, 
/*536128*/                OPC_MoveParent,
/*536129*/                OPC_CheckType, MVT::f64,
/*536131*/                OPC_MoveParent,
/*536132*/                OPC_MoveParent,
/*536133*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*536135*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*536138*/                OPC_EmitMergeInputChains1_2,
/*536139*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*536142*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 4, 10,  // Results = #11
/*536150*/                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:{ *:[iPTR] }:$src3)
/*536164*/              /*Scope*/ 70, /*->536235*/
/*536165*/                OPC_RecordChild0, // #2 = $src2
/*536166*/                OPC_MoveChild1,
/*536167*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*536170*/                OPC_RecordMemRef,
/*536171*/                OPC_RecordNode, // #3 = 'ld' chained node
/*536172*/                OPC_CheckFoldableChainNode,
/*536173*/                OPC_RecordChild1, // #4 = $src3
/*536174*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*536176*/                OPC_CheckPredicate, 9, // Predicate_load
/*536178*/                OPC_MoveParent,
/*536179*/                OPC_MoveChild2,
/*536180*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*536183*/                OPC_CheckChild0Same, 0,
/*536185*/                OPC_CheckChild1Integer, 0, 
/*536187*/                OPC_MoveParent,
/*536188*/                OPC_MoveParent,
/*536189*/                OPC_MoveChild2,
/*536190*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*536193*/                OPC_CheckChild0Same, 0,
/*536195*/                OPC_CheckChild1Integer, 0, 
/*536197*/                OPC_MoveParent,
/*536198*/                OPC_CheckType, MVT::f64,
/*536200*/                OPC_MoveParent,
/*536201*/                OPC_MoveParent,
/*536202*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*536204*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*536207*/                OPC_EmitMergeInputChains, 1, 3, 
/*536210*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*536213*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 10,  // Results = #11
/*536221*/                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:{ *:[iPTR] }:$src3)
/*536235*/              /*Scope*/ 70|128,1/*198*/, /*->536435*/
/*536237*/                OPC_MoveChild0,
/*536238*/                OPC_SwitchOpcode /*2 cases */, 66, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->536308
/*536242*/                  OPC_CheckChild0Same, 0,
/*536244*/                  OPC_CheckChild1Integer, 0, 
/*536246*/                  OPC_MoveParent,
/*536247*/                  OPC_RecordChild1, // #2 = $src2
/*536248*/                  OPC_MoveChild2,
/*536249*/                  OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*536252*/                  OPC_RecordMemRef,
/*536253*/                  OPC_RecordNode, // #3 = 'ld' chained node
/*536254*/                  OPC_CheckFoldableChainNode,
/*536255*/                  OPC_RecordChild1, // #4 = $src3
/*536256*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*536258*/                  OPC_CheckPredicate, 9, // Predicate_load
/*536260*/                  OPC_MoveParent,
/*536261*/                  OPC_MoveParent,
/*536262*/                  OPC_MoveChild2,
/*536263*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*536266*/                  OPC_CheckChild0Same, 0,
/*536268*/                  OPC_CheckChild1Integer, 0, 
/*536270*/                  OPC_MoveParent,
/*536271*/                  OPC_CheckType, MVT::f64,
/*536273*/                  OPC_MoveParent,
/*536274*/                  OPC_MoveParent,
/*536275*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*536277*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*536280*/                  OPC_EmitMergeInputChains, 1, 3, 
/*536283*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*536286*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 10,  // Results = #11
/*536294*/                  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:{ *:[iPTR] }:$src3)
/*536308*/                /*SwitchOpcode*/ 123, TARGET_VAL(ISD::LOAD),// ->536434
/*536311*/                  OPC_RecordMemRef,
/*536312*/                  OPC_RecordNode, // #2 = 'ld' chained node
/*536313*/                  OPC_CheckFoldableChainNode,
/*536314*/                  OPC_RecordChild1, // #3 = $src3
/*536315*/                  OPC_CheckPredicate, 4, // Predicate_unindexedload
/*536317*/                  OPC_CheckPredicate, 9, // Predicate_load
/*536319*/                  OPC_MoveParent,
/*536320*/                  OPC_Scope, 55, /*->536377*/ // 2 children in Scope
/*536322*/                    OPC_MoveChild1,
/*536323*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*536326*/                    OPC_CheckChild0Same, 0,
/*536328*/                    OPC_CheckChild1Integer, 0, 
/*536330*/                    OPC_MoveParent,
/*536331*/                    OPC_RecordChild2, // #4 = $src2
/*536332*/                    OPC_MoveParent,
/*536333*/                    OPC_MoveChild2,
/*536334*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*536337*/                    OPC_CheckChild0Same, 0,
/*536339*/                    OPC_CheckChild1Integer, 0, 
/*536341*/                    OPC_MoveParent,
/*536342*/                    OPC_CheckType, MVT::f64,
/*536344*/                    OPC_MoveParent,
/*536345*/                    OPC_MoveParent,
/*536346*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*536348*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*536351*/                    OPC_EmitMergeInputChains1_2,
/*536352*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*536355*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v2f64, 2/*#Ops*/, 4, 10,  // Results = #11
/*536363*/                    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:{ *:[iPTR] }:$src3)
/*536377*/                  /*Scope*/ 55, /*->536433*/
/*536378*/                    OPC_RecordChild1, // #4 = $src2
/*536379*/                    OPC_MoveChild2,
/*536380*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*536383*/                    OPC_CheckChild0Same, 0,
/*536385*/                    OPC_CheckChild1Integer, 0, 
/*536387*/                    OPC_MoveParent,
/*536388*/                    OPC_MoveParent,
/*536389*/                    OPC_MoveChild2,
/*536390*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*536393*/                    OPC_CheckChild0Same, 0,
/*536395*/                    OPC_CheckChild1Integer, 0, 
/*536397*/                    OPC_MoveParent,
/*536398*/                    OPC_CheckType, MVT::f64,
/*536400*/                    OPC_MoveParent,
/*536401*/                    OPC_MoveParent,
/*536402*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*536404*/                    OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*536407*/                    OPC_EmitMergeInputChains1_2,
/*536408*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*536411*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v2f64, 2/*#Ops*/, 4, 10,  // Results = #11
/*536419*/                    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:{ *:[iPTR] }:$src3)
/*536433*/                  0, /*End of Scope*/
/*536434*/                0, // EndSwitchOpcode
/*536435*/              /*Scope*/ 68, /*->536504*/
/*536436*/                OPC_RecordChild0, // #2 = $src2
/*536437*/                OPC_MoveChild1,
/*536438*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*536441*/                OPC_CheckChild0Same, 0,
/*536443*/                OPC_CheckChild1Integer, 0, 
/*536445*/                OPC_MoveParent,
/*536446*/                OPC_MoveChild2,
/*536447*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*536450*/                OPC_RecordMemRef,
/*536451*/                OPC_RecordNode, // #3 = 'ld' chained node
/*536452*/                OPC_CheckFoldableChainNode,
/*536453*/                OPC_RecordChild1, // #4 = $src3
/*536454*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*536456*/                OPC_CheckPredicate, 9, // Predicate_load
/*536458*/                OPC_MoveParent,
/*536459*/                OPC_MoveParent,
/*536460*/                OPC_MoveChild2,
/*536461*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*536464*/                OPC_CheckPredicate, 93, // Predicate_fp64imm0
/*536466*/                OPC_MoveParent,
/*536467*/                OPC_CheckType, MVT::f64,
/*536469*/                OPC_MoveParent,
/*536470*/                OPC_MoveParent,
/*536471*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*536473*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*536476*/                OPC_EmitMergeInputChains, 1, 3, 
/*536479*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*536482*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 10,  // Results = #11
/*536490*/                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:{ *:[iPTR] }:$src3)
/*536504*/              /*Scope*/ 68, /*->536573*/
/*536505*/                OPC_MoveChild0,
/*536506*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*536509*/                OPC_CheckChild0Same, 0,
/*536511*/                OPC_CheckChild1Integer, 0, 
/*536513*/                OPC_MoveParent,
/*536514*/                OPC_RecordChild1, // #2 = $src2
/*536515*/                OPC_MoveChild2,
/*536516*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*536519*/                OPC_RecordMemRef,
/*536520*/                OPC_RecordNode, // #3 = 'ld' chained node
/*536521*/                OPC_CheckFoldableChainNode,
/*536522*/                OPC_RecordChild1, // #4 = $src3
/*536523*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*536525*/                OPC_CheckPredicate, 9, // Predicate_load
/*536527*/                OPC_MoveParent,
/*536528*/                OPC_MoveParent,
/*536529*/                OPC_MoveChild2,
/*536530*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*536533*/                OPC_CheckPredicate, 93, // Predicate_fp64imm0
/*536535*/                OPC_MoveParent,
/*536536*/                OPC_CheckType, MVT::f64,
/*536538*/                OPC_MoveParent,
/*536539*/                OPC_MoveParent,
/*536540*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*536542*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*536545*/                OPC_EmitMergeInputChains, 1, 3, 
/*536548*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*536551*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 10,  // Results = #11
/*536559*/                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:{ *:[iPTR] }:$src3)
/*536573*/              /*Scope*/ 68, /*->536642*/
/*536574*/                OPC_RecordChild0, // #2 = $src2
/*536575*/                OPC_MoveChild1,
/*536576*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*536579*/                OPC_RecordMemRef,
/*536580*/                OPC_RecordNode, // #3 = 'ld' chained node
/*536581*/                OPC_CheckFoldableChainNode,
/*536582*/                OPC_RecordChild1, // #4 = $src3
/*536583*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*536585*/                OPC_CheckPredicate, 9, // Predicate_load
/*536587*/                OPC_MoveParent,
/*536588*/                OPC_MoveChild2,
/*536589*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*536592*/                OPC_CheckChild0Same, 0,
/*536594*/                OPC_CheckChild1Integer, 0, 
/*536596*/                OPC_MoveParent,
/*536597*/                OPC_MoveParent,
/*536598*/                OPC_MoveChild2,
/*536599*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*536602*/                OPC_CheckPredicate, 93, // Predicate_fp64imm0
/*536604*/                OPC_MoveParent,
/*536605*/                OPC_CheckType, MVT::f64,
/*536607*/                OPC_MoveParent,
/*536608*/                OPC_MoveParent,
/*536609*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*536611*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*536614*/                OPC_EmitMergeInputChains, 1, 3, 
/*536617*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*536620*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 10,  // Results = #11
/*536628*/                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:{ *:[iPTR] }:$src3)
/*536642*/              /*Scope*/ 66, /*->536709*/
/*536643*/                OPC_MoveChild0,
/*536644*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*536647*/                OPC_RecordMemRef,
/*536648*/                OPC_RecordNode, // #2 = 'ld' chained node
/*536649*/                OPC_CheckFoldableChainNode,
/*536650*/                OPC_RecordChild1, // #3 = $src3
/*536651*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*536653*/                OPC_CheckPredicate, 9, // Predicate_load
/*536655*/                OPC_MoveParent,
/*536656*/                OPC_RecordChild1, // #4 = $src2
/*536657*/                OPC_MoveChild2,
/*536658*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*536661*/                OPC_CheckChild0Same, 0,
/*536663*/                OPC_CheckChild1Integer, 0, 
/*536665*/                OPC_MoveParent,
/*536666*/                OPC_MoveParent,
/*536667*/                OPC_MoveChild2,
/*536668*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*536671*/                OPC_CheckPredicate, 93, // Predicate_fp64imm0
/*536673*/                OPC_MoveParent,
/*536674*/                OPC_CheckType, MVT::f64,
/*536676*/                OPC_MoveParent,
/*536677*/                OPC_MoveParent,
/*536678*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*536680*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*536683*/                OPC_EmitMergeInputChains1_2,
/*536684*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*536687*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 4, 10,  // Results = #11
/*536695*/                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:{ *:[iPTR] }:$src3)
/*536709*/              0, /*End of Scope*/
/*536710*/            /*SwitchOpcode*/ 59|128,1/*187*/, TARGET_VAL(ISD::FADD),// ->536901
/*536714*/              OPC_MoveChild0,
/*536715*/              OPC_SwitchOpcode /*2 cases */, 89, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->536808
/*536719*/                OPC_CheckChild0Same, 0,
/*536721*/                OPC_CheckChild1Integer, 0, 
/*536723*/                OPC_MoveParent,
/*536724*/                OPC_MoveChild1,
/*536725*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*536728*/                OPC_RecordMemRef,
/*536729*/                OPC_RecordNode, // #2 = 'ld' chained node
/*536730*/                OPC_CheckFoldableChainNode,
/*536731*/                OPC_RecordChild1, // #3 = $src2
/*536732*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*536734*/                OPC_CheckPredicate, 9, // Predicate_load
/*536736*/                OPC_MoveParent,
/*536737*/                OPC_MoveParent,
/*536738*/                OPC_Scope, 30, /*->536770*/ // 2 children in Scope
/*536740*/                  OPC_MoveChild2,
/*536741*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*536744*/                  OPC_CheckPredicate, 93, // Predicate_fp64imm0
/*536746*/                  OPC_MoveParent,
/*536747*/                  OPC_CheckType, MVT::f64,
/*536749*/                  OPC_MoveParent,
/*536750*/                  OPC_MoveParent,
/*536751*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*536753*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*536756*/                  OPC_EmitMergeInputChains1_2,
/*536757*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSDZrm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                            // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (fadd:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (fpimm:{ *:[f64] })<<P:Predicate_fp64imm0>>))) - Complexity = 46
                            // Dst: (VADDSDZrm_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, v2f64:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*536770*/                /*Scope*/ 36, /*->536807*/
/*536771*/                  OPC_RecordChild2, // #4 = $src0
/*536772*/                  OPC_CheckType, MVT::f64,
/*536774*/                  OPC_MoveParent,
/*536775*/                  OPC_MoveParent,
/*536776*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*536778*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*536781*/                  OPC_EmitMergeInputChains1_2,
/*536782*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*536785*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 4, 10,  // Results = #11
/*536793*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSDZrm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 8/*#Ops*/, 11, 1, 0, 5, 6, 7, 8, 9, 
                            // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (fadd:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), FR64X:{ *:[f64] }:$src0))) - Complexity = 42
                            // Dst: (VADDSDZrm_Intk:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src0, VR128X:{ *:[i32] }), VK1WM:{ *:[v1i1] }:$mask, v2f64:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*536807*/                0, /*End of Scope*/
/*536808*/              /*SwitchOpcode*/ 89, TARGET_VAL(ISD::LOAD),// ->536900
/*536811*/                OPC_RecordMemRef,
/*536812*/                OPC_RecordNode, // #2 = 'ld' chained node
/*536813*/                OPC_CheckFoldableChainNode,
/*536814*/                OPC_RecordChild1, // #3 = $src2
/*536815*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*536817*/                OPC_CheckPredicate, 9, // Predicate_load
/*536819*/                OPC_MoveParent,
/*536820*/                OPC_MoveChild1,
/*536821*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*536824*/                OPC_CheckChild0Same, 0,
/*536826*/                OPC_CheckChild1Integer, 0, 
/*536828*/                OPC_MoveParent,
/*536829*/                OPC_MoveParent,
/*536830*/                OPC_Scope, 30, /*->536862*/ // 2 children in Scope
/*536832*/                  OPC_MoveChild2,
/*536833*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*536836*/                  OPC_CheckPredicate, 93, // Predicate_fp64imm0
/*536838*/                  OPC_MoveParent,
/*536839*/                  OPC_CheckType, MVT::f64,
/*536841*/                  OPC_MoveParent,
/*536842*/                  OPC_MoveParent,
/*536843*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*536845*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*536848*/                  OPC_EmitMergeInputChains1_2,
/*536849*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSDZrm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                            // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (fadd:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })), (fpimm:{ *:[f64] })<<P:Predicate_fp64imm0>>))) - Complexity = 46
                            // Dst: (VADDSDZrm_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, v2f64:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*536862*/                /*Scope*/ 36, /*->536899*/
/*536863*/                  OPC_RecordChild2, // #4 = $src0
/*536864*/                  OPC_CheckType, MVT::f64,
/*536866*/                  OPC_MoveParent,
/*536867*/                  OPC_MoveParent,
/*536868*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*536870*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*536873*/                  OPC_EmitMergeInputChains1_2,
/*536874*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*536877*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 4, 10,  // Results = #11
/*536885*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSDZrm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 8/*#Ops*/, 11, 1, 0, 5, 6, 7, 8, 9, 
                            // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (fadd:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })), FR64X:{ *:[f64] }:$src0))) - Complexity = 42
                            // Dst: (VADDSDZrm_Intk:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src0, VR128X:{ *:[i32] }), VK1WM:{ *:[v1i1] }:$mask, v2f64:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*536899*/                0, /*End of Scope*/
/*536900*/              0, // EndSwitchOpcode
/*536901*/            /*SwitchOpcode*/ 93, TARGET_VAL(ISD::FSUB),// ->536997
/*536904*/              OPC_MoveChild0,
/*536905*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*536908*/              OPC_CheckChild0Same, 0,
/*536910*/              OPC_CheckChild1Integer, 0, 
/*536912*/              OPC_MoveParent,
/*536913*/              OPC_MoveChild1,
/*536914*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*536917*/              OPC_RecordMemRef,
/*536918*/              OPC_RecordNode, // #2 = 'ld' chained node
/*536919*/              OPC_CheckFoldableChainNode,
/*536920*/              OPC_RecordChild1, // #3 = $src2
/*536921*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*536923*/              OPC_CheckPredicate, 9, // Predicate_load
/*536925*/              OPC_MoveParent,
/*536926*/              OPC_MoveParent,
/*536927*/              OPC_Scope, 30, /*->536959*/ // 2 children in Scope
/*536929*/                OPC_MoveChild2,
/*536930*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*536933*/                OPC_CheckPredicate, 93, // Predicate_fp64imm0
/*536935*/                OPC_MoveParent,
/*536936*/                OPC_CheckType, MVT::f64,
/*536938*/                OPC_MoveParent,
/*536939*/                OPC_MoveParent,
/*536940*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*536942*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*536945*/                OPC_EmitMergeInputChains1_2,
/*536946*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSDZrm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (fsub:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (fpimm:{ *:[f64] })<<P:Predicate_fp64imm0>>))) - Complexity = 46
                          // Dst: (VSUBSDZrm_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, v2f64:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*536959*/              /*Scope*/ 36, /*->536996*/
/*536960*/                OPC_RecordChild2, // #4 = $src0
/*536961*/                OPC_CheckType, MVT::f64,
/*536963*/                OPC_MoveParent,
/*536964*/                OPC_MoveParent,
/*536965*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*536967*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*536970*/                OPC_EmitMergeInputChains1_2,
/*536971*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*536974*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 4, 10,  // Results = #11
/*536982*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSDZrm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 11, 1, 0, 5, 6, 7, 8, 9, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (fsub:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), FR64X:{ *:[f64] }:$src0))) - Complexity = 42
                          // Dst: (VSUBSDZrm_Intk:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src0, VR128X:{ *:[i32] }), VK1WM:{ *:[v1i1] }:$mask, v2f64:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*536996*/              0, /*End of Scope*/
/*536997*/            /*SwitchOpcode*/ 59|128,1/*187*/, TARGET_VAL(ISD::FMUL),// ->537188
/*537001*/              OPC_MoveChild0,
/*537002*/              OPC_SwitchOpcode /*2 cases */, 89, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->537095
/*537006*/                OPC_CheckChild0Same, 0,
/*537008*/                OPC_CheckChild1Integer, 0, 
/*537010*/                OPC_MoveParent,
/*537011*/                OPC_MoveChild1,
/*537012*/                OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*537015*/                OPC_RecordMemRef,
/*537016*/                OPC_RecordNode, // #2 = 'ld' chained node
/*537017*/                OPC_CheckFoldableChainNode,
/*537018*/                OPC_RecordChild1, // #3 = $src2
/*537019*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*537021*/                OPC_CheckPredicate, 9, // Predicate_load
/*537023*/                OPC_MoveParent,
/*537024*/                OPC_MoveParent,
/*537025*/                OPC_Scope, 30, /*->537057*/ // 2 children in Scope
/*537027*/                  OPC_MoveChild2,
/*537028*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*537031*/                  OPC_CheckPredicate, 93, // Predicate_fp64imm0
/*537033*/                  OPC_MoveParent,
/*537034*/                  OPC_CheckType, MVT::f64,
/*537036*/                  OPC_MoveParent,
/*537037*/                  OPC_MoveParent,
/*537038*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*537040*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*537043*/                  OPC_EmitMergeInputChains1_2,
/*537044*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSDZrm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                            // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (fmul:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (fpimm:{ *:[f64] })<<P:Predicate_fp64imm0>>))) - Complexity = 46
                            // Dst: (VMULSDZrm_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, v2f64:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*537057*/                /*Scope*/ 36, /*->537094*/
/*537058*/                  OPC_RecordChild2, // #4 = $src0
/*537059*/                  OPC_CheckType, MVT::f64,
/*537061*/                  OPC_MoveParent,
/*537062*/                  OPC_MoveParent,
/*537063*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*537065*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*537068*/                  OPC_EmitMergeInputChains1_2,
/*537069*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*537072*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 4, 10,  // Results = #11
/*537080*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSDZrm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 8/*#Ops*/, 11, 1, 0, 5, 6, 7, 8, 9, 
                            // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (fmul:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), FR64X:{ *:[f64] }:$src0))) - Complexity = 42
                            // Dst: (VMULSDZrm_Intk:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src0, VR128X:{ *:[i32] }), VK1WM:{ *:[v1i1] }:$mask, v2f64:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*537094*/                0, /*End of Scope*/
/*537095*/              /*SwitchOpcode*/ 89, TARGET_VAL(ISD::LOAD),// ->537187
/*537098*/                OPC_RecordMemRef,
/*537099*/                OPC_RecordNode, // #2 = 'ld' chained node
/*537100*/                OPC_CheckFoldableChainNode,
/*537101*/                OPC_RecordChild1, // #3 = $src2
/*537102*/                OPC_CheckPredicate, 4, // Predicate_unindexedload
/*537104*/                OPC_CheckPredicate, 9, // Predicate_load
/*537106*/                OPC_MoveParent,
/*537107*/                OPC_MoveChild1,
/*537108*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*537111*/                OPC_CheckChild0Same, 0,
/*537113*/                OPC_CheckChild1Integer, 0, 
/*537115*/                OPC_MoveParent,
/*537116*/                OPC_MoveParent,
/*537117*/                OPC_Scope, 30, /*->537149*/ // 2 children in Scope
/*537119*/                  OPC_MoveChild2,
/*537120*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*537123*/                  OPC_CheckPredicate, 93, // Predicate_fp64imm0
/*537125*/                  OPC_MoveParent,
/*537126*/                  OPC_CheckType, MVT::f64,
/*537128*/                  OPC_MoveParent,
/*537129*/                  OPC_MoveParent,
/*537130*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*537132*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*537135*/                  OPC_EmitMergeInputChains1_2,
/*537136*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSDZrm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                            // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (fmul:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })), (fpimm:{ *:[f64] })<<P:Predicate_fp64imm0>>))) - Complexity = 46
                            // Dst: (VMULSDZrm_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, v2f64:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*537149*/                /*Scope*/ 36, /*->537186*/
/*537150*/                  OPC_RecordChild2, // #4 = $src0
/*537151*/                  OPC_CheckType, MVT::f64,
/*537153*/                  OPC_MoveParent,
/*537154*/                  OPC_MoveParent,
/*537155*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*537157*/                  OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*537160*/                  OPC_EmitMergeInputChains1_2,
/*537161*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*537164*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 4, 10,  // Results = #11
/*537172*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSDZrm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                                MVT::v2f64, 8/*#Ops*/, 11, 1, 0, 5, 6, 7, 8, 9, 
                            // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (fmul:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] })), FR64X:{ *:[f64] }:$src0))) - Complexity = 42
                            // Dst: (VMULSDZrm_Intk:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src0, VR128X:{ *:[i32] }), VK1WM:{ *:[v1i1] }:$mask, v2f64:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*537186*/                0, /*End of Scope*/
/*537187*/              0, // EndSwitchOpcode
/*537188*/            /*SwitchOpcode*/ 93, TARGET_VAL(ISD::FDIV),// ->537284
/*537191*/              OPC_MoveChild0,
/*537192*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*537195*/              OPC_CheckChild0Same, 0,
/*537197*/              OPC_CheckChild1Integer, 0, 
/*537199*/              OPC_MoveParent,
/*537200*/              OPC_MoveChild1,
/*537201*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*537204*/              OPC_RecordMemRef,
/*537205*/              OPC_RecordNode, // #2 = 'ld' chained node
/*537206*/              OPC_CheckFoldableChainNode,
/*537207*/              OPC_RecordChild1, // #3 = $src2
/*537208*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*537210*/              OPC_CheckPredicate, 9, // Predicate_load
/*537212*/              OPC_MoveParent,
/*537213*/              OPC_MoveParent,
/*537214*/              OPC_Scope, 30, /*->537246*/ // 2 children in Scope
/*537216*/                OPC_MoveChild2,
/*537217*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*537220*/                OPC_CheckPredicate, 93, // Predicate_fp64imm0
/*537222*/                OPC_MoveParent,
/*537223*/                OPC_CheckType, MVT::f64,
/*537225*/                OPC_MoveParent,
/*537226*/                OPC_MoveParent,
/*537227*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*537229*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #4 #5 #6 #7 #8
/*537232*/                OPC_EmitMergeInputChains1_2,
/*537233*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSDZrm_Intkz), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 1, 0, 4, 5, 6, 7, 8, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (fdiv:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (fpimm:{ *:[f64] })<<P:Predicate_fp64imm0>>))) - Complexity = 46
                          // Dst: (VDIVSDZrm_Intkz:{ *:[v2f64] } VK1WM:{ *:[v1i1] }:$mask, v2f64:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*537246*/              /*Scope*/ 36, /*->537283*/
/*537247*/                OPC_RecordChild2, // #4 = $src0
/*537248*/                OPC_CheckType, MVT::f64,
/*537250*/                OPC_MoveParent,
/*537251*/                OPC_MoveParent,
/*537252*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*537254*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*537257*/                OPC_EmitMergeInputChains1_2,
/*537258*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*537261*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 4, 10,  // Results = #11
/*537269*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSDZrm_Intk), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 8/*#Ops*/, 11, 1, 0, 5, 6, 7, 8, 9, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (fdiv:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$src1, 0:{ *:[iPTR] }), (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), FR64X:{ *:[f64] }:$src0))) - Complexity = 42
                          // Dst: (VDIVSDZrm_Intk:{ *:[v2f64] } (COPY_TO_REGCLASS:{ *:[v2f64] } FR64X:{ *:[f64] }:$src0, VR128X:{ *:[i32] }), VK1WM:{ *:[v1i1] }:$mask, v2f64:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*537283*/              0, /*End of Scope*/
/*537284*/            0, // EndSwitchOpcode
/*537285*/          /*Scope*/ 67, /*->537353*/
/*537286*/            OPC_MoveChild0,
/*537287*/            OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*537290*/            OPC_MoveChild0,
/*537291*/            OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE),
/*537294*/            OPC_RecordChild0, // #1 = $mask
/*537295*/            OPC_CheckChild0Type, MVT::i32,
/*537297*/            OPC_CheckType, MVT::i8,
/*537299*/            OPC_MoveParent,
/*537300*/            OPC_MoveParent,
/*537301*/            OPC_MoveChild1,
/*537302*/            OPC_CheckOpcode, TARGET_VAL(ISD::FSQRT),
/*537305*/            OPC_MoveChild0,
/*537306*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*537309*/            OPC_RecordChild0, // #2 = $src2
/*537310*/            OPC_CheckChild0Type, MVT::v2f64,
/*537312*/            OPC_CheckChild1Integer, 0, 
/*537314*/            OPC_MoveParent,
/*537315*/            OPC_MoveParent,
/*537316*/            OPC_MoveChild2,
/*537317*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*537320*/            OPC_RecordChild0, // #3 = $dst
/*537321*/            OPC_CheckChild0Type, MVT::v2f64,
/*537323*/            OPC_CheckChild1Integer, 0, 
/*537325*/            OPC_MoveParent,
/*537326*/            OPC_CheckType, MVT::f64,
/*537328*/            OPC_MoveParent,
/*537329*/            OPC_MoveParent,
/*537330*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*537332*/            OPC_EmitInteger, MVT::i32, X86::VK1WMRegClassID,
/*537335*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v1i1, 2/*#Ops*/, 1, 4,  // Results = #5
/*537343*/            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)
/*537353*/          /*Scope*/ 76|128,6/*844*/, /*->538199*/
/*537355*/            OPC_RecordChild0, // #1 = $mask
/*537356*/            OPC_MoveChild1,
/*537357*/            OPC_SwitchOpcode /*4 cases */, 78|128,1/*206*/, TARGET_VAL(X86ISD::FMADD_RND),// ->537568
/*537362*/              OPC_Scope, 7|128,1/*135*/, /*->537500*/ // 2 children in Scope
/*537365*/                OPC_RecordChild0, // #2 = $src2
/*537366*/                OPC_Scope, 65, /*->537433*/ // 2 children in Scope
/*537368*/                  OPC_MoveChild1,
/*537369*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*537372*/                  OPC_CheckChild0Same, 0,
/*537374*/                  OPC_CheckChild1Integer, 0, 
/*537376*/                  OPC_MoveParent,
/*537377*/                  OPC_RecordChild2, // #3 = $src3
/*537378*/                  OPC_RecordChild3, // #4 = $rc
/*537379*/                  OPC_MoveChild3,
/*537380*/                  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*537383*/                  OPC_MoveParent,
/*537384*/                  OPC_MoveParent,
/*537385*/                  OPC_MoveChild2,
/*537386*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*537389*/                  OPC_CheckChild0Same, 0,
/*537391*/                  OPC_CheckChild1Integer, 0, 
/*537393*/                  OPC_MoveParent,
/*537394*/                  OPC_CheckType, MVT::f64,
/*537396*/                  OPC_MoveParent,
/*537397*/                  OPC_MoveParent,
/*537398*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*537400*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*537403*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*537411*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*537414*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 7,  // Results = #8
/*537422*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SDZrb_Intk), 0,
                                MVT::v2f64, 5/*#Ops*/, 0, 1, 6, 8, 4, 
                            // 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, (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*537433*/                /*Scope*/ 65, /*->537499*/
/*537434*/                  OPC_RecordChild1, // #3 = $src3
/*537435*/                  OPC_MoveChild2,
/*537436*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*537439*/                  OPC_CheckChild0Same, 0,
/*537441*/                  OPC_CheckChild1Integer, 0, 
/*537443*/                  OPC_MoveParent,
/*537444*/                  OPC_RecordChild3, // #4 = $rc
/*537445*/                  OPC_MoveChild3,
/*537446*/                  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*537449*/                  OPC_MoveParent,
/*537450*/                  OPC_MoveParent,
/*537451*/                  OPC_MoveChild2,
/*537452*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*537455*/                  OPC_CheckChild0Same, 0,
/*537457*/                  OPC_CheckChild1Integer, 0, 
/*537459*/                  OPC_MoveParent,
/*537460*/                  OPC_CheckType, MVT::f64,
/*537462*/                  OPC_MoveParent,
/*537463*/                  OPC_MoveParent,
/*537464*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*537466*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*537469*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*537477*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*537480*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 7,  // Results = #8
/*537488*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SDZrb_Intk), 0,
                                MVT::v2f64, 5/*#Ops*/, 0, 1, 6, 8, 4, 
                            // 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] }), (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*537499*/                0, /*End of Scope*/
/*537500*/              /*Scope*/ 66, /*->537567*/
/*537501*/                OPC_MoveChild0,
/*537502*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*537505*/                OPC_CheckChild0Same, 0,
/*537507*/                OPC_CheckChild1Integer, 0, 
/*537509*/                OPC_MoveParent,
/*537510*/                OPC_RecordChild1, // #2 = $src2
/*537511*/                OPC_RecordChild2, // #3 = $src3
/*537512*/                OPC_RecordChild3, // #4 = $rc
/*537513*/                OPC_MoveChild3,
/*537514*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*537517*/                OPC_MoveParent,
/*537518*/                OPC_MoveParent,
/*537519*/                OPC_MoveChild2,
/*537520*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*537523*/                OPC_CheckChild0Same, 0,
/*537525*/                OPC_CheckChild1Integer, 0, 
/*537527*/                OPC_MoveParent,
/*537528*/                OPC_CheckType, MVT::f64,
/*537530*/                OPC_MoveParent,
/*537531*/                OPC_MoveParent,
/*537532*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*537534*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*537537*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*537545*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*537548*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 7,  // Results = #8
/*537556*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SDZrb_Intk), 0,
                              MVT::v2f64, 5/*#Ops*/, 0, 1, 6, 8, 4, 
                          // 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, (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*537567*/              0, /*End of Scope*/
/*537568*/            /*SwitchOpcode*/ 78|128,1/*206*/, TARGET_VAL(X86ISD::FMSUB_RND),// ->537778
/*537572*/              OPC_Scope, 7|128,1/*135*/, /*->537710*/ // 2 children in Scope
/*537575*/                OPC_RecordChild0, // #2 = $src2
/*537576*/                OPC_Scope, 65, /*->537643*/ // 2 children in Scope
/*537578*/                  OPC_MoveChild1,
/*537579*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*537582*/                  OPC_CheckChild0Same, 0,
/*537584*/                  OPC_CheckChild1Integer, 0, 
/*537586*/                  OPC_MoveParent,
/*537587*/                  OPC_RecordChild2, // #3 = $src3
/*537588*/                  OPC_RecordChild3, // #4 = $rc
/*537589*/                  OPC_MoveChild3,
/*537590*/                  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*537593*/                  OPC_MoveParent,
/*537594*/                  OPC_MoveParent,
/*537595*/                  OPC_MoveChild2,
/*537596*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*537599*/                  OPC_CheckChild0Same, 0,
/*537601*/                  OPC_CheckChild1Integer, 0, 
/*537603*/                  OPC_MoveParent,
/*537604*/                  OPC_CheckType, MVT::f64,
/*537606*/                  OPC_MoveParent,
/*537607*/                  OPC_MoveParent,
/*537608*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*537610*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*537613*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*537621*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*537624*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 7,  // Results = #8
/*537632*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213SDZrb_Intk), 0,
                                MVT::v2f64, 5/*#Ops*/, 0, 1, 6, 8, 4, 
                            // 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, (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*537643*/                /*Scope*/ 65, /*->537709*/
/*537644*/                  OPC_RecordChild1, // #3 = $src3
/*537645*/                  OPC_MoveChild2,
/*537646*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*537649*/                  OPC_CheckChild0Same, 0,
/*537651*/                  OPC_CheckChild1Integer, 0, 
/*537653*/                  OPC_MoveParent,
/*537654*/                  OPC_RecordChild3, // #4 = $rc
/*537655*/                  OPC_MoveChild3,
/*537656*/                  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*537659*/                  OPC_MoveParent,
/*537660*/                  OPC_MoveParent,
/*537661*/                  OPC_MoveChild2,
/*537662*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*537665*/                  OPC_CheckChild0Same, 0,
/*537667*/                  OPC_CheckChild1Integer, 0, 
/*537669*/                  OPC_MoveParent,
/*537670*/                  OPC_CheckType, MVT::f64,
/*537672*/                  OPC_MoveParent,
/*537673*/                  OPC_MoveParent,
/*537674*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*537676*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*537679*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*537687*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*537690*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 7,  // Results = #8
/*537698*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231SDZrb_Intk), 0,
                                MVT::v2f64, 5/*#Ops*/, 0, 1, 6, 8, 4, 
                            // 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] }), (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*537709*/                0, /*End of Scope*/
/*537710*/              /*Scope*/ 66, /*->537777*/
/*537711*/                OPC_MoveChild0,
/*537712*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*537715*/                OPC_CheckChild0Same, 0,
/*537717*/                OPC_CheckChild1Integer, 0, 
/*537719*/                OPC_MoveParent,
/*537720*/                OPC_RecordChild1, // #2 = $src2
/*537721*/                OPC_RecordChild2, // #3 = $src3
/*537722*/                OPC_RecordChild3, // #4 = $rc
/*537723*/                OPC_MoveChild3,
/*537724*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*537727*/                OPC_MoveParent,
/*537728*/                OPC_MoveParent,
/*537729*/                OPC_MoveChild2,
/*537730*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*537733*/                OPC_CheckChild0Same, 0,
/*537735*/                OPC_CheckChild1Integer, 0, 
/*537737*/                OPC_MoveParent,
/*537738*/                OPC_CheckType, MVT::f64,
/*537740*/                OPC_MoveParent,
/*537741*/                OPC_MoveParent,
/*537742*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*537744*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*537747*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*537755*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*537758*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 7,  // Results = #8
/*537766*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213SDZrb_Intk), 0,
                              MVT::v2f64, 5/*#Ops*/, 0, 1, 6, 8, 4, 
                          // 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, (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*537777*/              0, /*End of Scope*/
/*537778*/            /*SwitchOpcode*/ 78|128,1/*206*/, TARGET_VAL(X86ISD::FNMADD_RND),// ->537988
/*537782*/              OPC_Scope, 7|128,1/*135*/, /*->537920*/ // 2 children in Scope
/*537785*/                OPC_RecordChild0, // #2 = $src2
/*537786*/                OPC_Scope, 65, /*->537853*/ // 2 children in Scope
/*537788*/                  OPC_MoveChild1,
/*537789*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*537792*/                  OPC_CheckChild0Same, 0,
/*537794*/                  OPC_CheckChild1Integer, 0, 
/*537796*/                  OPC_MoveParent,
/*537797*/                  OPC_RecordChild2, // #3 = $src3
/*537798*/                  OPC_RecordChild3, // #4 = $rc
/*537799*/                  OPC_MoveChild3,
/*537800*/                  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*537803*/                  OPC_MoveParent,
/*537804*/                  OPC_MoveParent,
/*537805*/                  OPC_MoveChild2,
/*537806*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*537809*/                  OPC_CheckChild0Same, 0,
/*537811*/                  OPC_CheckChild1Integer, 0, 
/*537813*/                  OPC_MoveParent,
/*537814*/                  OPC_CheckType, MVT::f64,
/*537816*/                  OPC_MoveParent,
/*537817*/                  OPC_MoveParent,
/*537818*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*537820*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*537823*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*537831*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*537834*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 7,  // Results = #8
/*537842*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213SDZrb_Intk), 0,
                                MVT::v2f64, 5/*#Ops*/, 0, 1, 6, 8, 4, 
                            // 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, (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*537853*/                /*Scope*/ 65, /*->537919*/
/*537854*/                  OPC_RecordChild1, // #3 = $src3
/*537855*/                  OPC_MoveChild2,
/*537856*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*537859*/                  OPC_CheckChild0Same, 0,
/*537861*/                  OPC_CheckChild1Integer, 0, 
/*537863*/                  OPC_MoveParent,
/*537864*/                  OPC_RecordChild3, // #4 = $rc
/*537865*/                  OPC_MoveChild3,
/*537866*/                  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*537869*/                  OPC_MoveParent,
/*537870*/                  OPC_MoveParent,
/*537871*/                  OPC_MoveChild2,
/*537872*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*537875*/                  OPC_CheckChild0Same, 0,
/*537877*/                  OPC_CheckChild1Integer, 0, 
/*537879*/                  OPC_MoveParent,
/*537880*/                  OPC_CheckType, MVT::f64,
/*537882*/                  OPC_MoveParent,
/*537883*/                  OPC_MoveParent,
/*537884*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*537886*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*537889*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*537897*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*537900*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 7,  // Results = #8
/*537908*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231SDZrb_Intk), 0,
                                MVT::v2f64, 5/*#Ops*/, 0, 1, 6, 8, 4, 
                            // 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] }), (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*537919*/                0, /*End of Scope*/
/*537920*/              /*Scope*/ 66, /*->537987*/
/*537921*/                OPC_MoveChild0,
/*537922*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*537925*/                OPC_CheckChild0Same, 0,
/*537927*/                OPC_CheckChild1Integer, 0, 
/*537929*/                OPC_MoveParent,
/*537930*/                OPC_RecordChild1, // #2 = $src2
/*537931*/                OPC_RecordChild2, // #3 = $src3
/*537932*/                OPC_RecordChild3, // #4 = $rc
/*537933*/                OPC_MoveChild3,
/*537934*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*537937*/                OPC_MoveParent,
/*537938*/                OPC_MoveParent,
/*537939*/                OPC_MoveChild2,
/*537940*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*537943*/                OPC_CheckChild0Same, 0,
/*537945*/                OPC_CheckChild1Integer, 0, 
/*537947*/                OPC_MoveParent,
/*537948*/                OPC_CheckType, MVT::f64,
/*537950*/                OPC_MoveParent,
/*537951*/                OPC_MoveParent,
/*537952*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*537954*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*537957*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*537965*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*537968*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 7,  // Results = #8
/*537976*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213SDZrb_Intk), 0,
                              MVT::v2f64, 5/*#Ops*/, 0, 1, 6, 8, 4, 
                          // 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, (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*537987*/              0, /*End of Scope*/
/*537988*/            /*SwitchOpcode*/ 78|128,1/*206*/, TARGET_VAL(X86ISD::FNMSUB_RND),// ->538198
/*537992*/              OPC_Scope, 7|128,1/*135*/, /*->538130*/ // 2 children in Scope
/*537995*/                OPC_RecordChild0, // #2 = $src2
/*537996*/                OPC_Scope, 65, /*->538063*/ // 2 children in Scope
/*537998*/                  OPC_MoveChild1,
/*537999*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*538002*/                  OPC_CheckChild0Same, 0,
/*538004*/                  OPC_CheckChild1Integer, 0, 
/*538006*/                  OPC_MoveParent,
/*538007*/                  OPC_RecordChild2, // #3 = $src3
/*538008*/                  OPC_RecordChild3, // #4 = $rc
/*538009*/                  OPC_MoveChild3,
/*538010*/                  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*538013*/                  OPC_MoveParent,
/*538014*/                  OPC_MoveParent,
/*538015*/                  OPC_MoveChild2,
/*538016*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*538019*/                  OPC_CheckChild0Same, 0,
/*538021*/                  OPC_CheckChild1Integer, 0, 
/*538023*/                  OPC_MoveParent,
/*538024*/                  OPC_CheckType, MVT::f64,
/*538026*/                  OPC_MoveParent,
/*538027*/                  OPC_MoveParent,
/*538028*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*538030*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*538033*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*538041*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*538044*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 7,  // Results = #8
/*538052*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213SDZrb_Intk), 0,
                                MVT::v2f64, 5/*#Ops*/, 0, 1, 6, 8, 4, 
                            // 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, (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*538063*/                /*Scope*/ 65, /*->538129*/
/*538064*/                  OPC_RecordChild1, // #3 = $src3
/*538065*/                  OPC_MoveChild2,
/*538066*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*538069*/                  OPC_CheckChild0Same, 0,
/*538071*/                  OPC_CheckChild1Integer, 0, 
/*538073*/                  OPC_MoveParent,
/*538074*/                  OPC_RecordChild3, // #4 = $rc
/*538075*/                  OPC_MoveChild3,
/*538076*/                  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*538079*/                  OPC_MoveParent,
/*538080*/                  OPC_MoveParent,
/*538081*/                  OPC_MoveChild2,
/*538082*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*538085*/                  OPC_CheckChild0Same, 0,
/*538087*/                  OPC_CheckChild1Integer, 0, 
/*538089*/                  OPC_MoveParent,
/*538090*/                  OPC_CheckType, MVT::f64,
/*538092*/                  OPC_MoveParent,
/*538093*/                  OPC_MoveParent,
/*538094*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*538096*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*538099*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*538107*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*538110*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 7,  // Results = #8
/*538118*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231SDZrb_Intk), 0,
                                MVT::v2f64, 5/*#Ops*/, 0, 1, 6, 8, 4, 
                            // 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] }), (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*538129*/                0, /*End of Scope*/
/*538130*/              /*Scope*/ 66, /*->538197*/
/*538131*/                OPC_MoveChild0,
/*538132*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*538135*/                OPC_CheckChild0Same, 0,
/*538137*/                OPC_CheckChild1Integer, 0, 
/*538139*/                OPC_MoveParent,
/*538140*/                OPC_RecordChild1, // #2 = $src2
/*538141*/                OPC_RecordChild2, // #3 = $src3
/*538142*/                OPC_RecordChild3, // #4 = $rc
/*538143*/                OPC_MoveChild3,
/*538144*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*538147*/                OPC_MoveParent,
/*538148*/                OPC_MoveParent,
/*538149*/                OPC_MoveChild2,
/*538150*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*538153*/                OPC_CheckChild0Same, 0,
/*538155*/                OPC_CheckChild1Integer, 0, 
/*538157*/                OPC_MoveParent,
/*538158*/                OPC_CheckType, MVT::f64,
/*538160*/                OPC_MoveParent,
/*538161*/                OPC_MoveParent,
/*538162*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*538164*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*538167*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*538175*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*538178*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 7,  // Results = #8
/*538186*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213SDZrb_Intk), 0,
                              MVT::v2f64, 5/*#Ops*/, 0, 1, 6, 8, 4, 
                          // 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, (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*538197*/              0, /*End of Scope*/
/*538198*/            0, // EndSwitchOpcode
/*538199*/          /*Scope*/ 63, /*->538263*/
/*538200*/            OPC_MoveChild0,
/*538201*/            OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*538204*/            OPC_MoveChild0,
/*538205*/            OPC_CheckOpcode, TARGET_VAL(ISD::TRUNCATE),
/*538208*/            OPC_RecordChild0, // #1 = $mask
/*538209*/            OPC_CheckChild0Type, MVT::i32,
/*538211*/            OPC_CheckType, MVT::i8,
/*538213*/            OPC_MoveParent,
/*538214*/            OPC_MoveParent,
/*538215*/            OPC_MoveChild1,
/*538216*/            OPC_CheckOpcode, TARGET_VAL(ISD::FSQRT),
/*538219*/            OPC_MoveChild0,
/*538220*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*538223*/            OPC_RecordChild0, // #2 = $src2
/*538224*/            OPC_CheckChild0Type, MVT::v2f64,
/*538226*/            OPC_CheckChild1Integer, 0, 
/*538228*/            OPC_MoveParent,
/*538229*/            OPC_MoveParent,
/*538230*/            OPC_MoveChild2,
/*538231*/            OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*538234*/            OPC_CheckPredicate, 93, // Predicate_fp64imm0
/*538236*/            OPC_MoveParent,
/*538237*/            OPC_CheckType, MVT::f64,
/*538239*/            OPC_MoveParent,
/*538240*/            OPC_MoveParent,
/*538241*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*538243*/            OPC_EmitInteger, MVT::i32, X86::VK1WMRegClassID,
/*538246*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v1i1, 2/*#Ops*/, 1, 3,  // Results = #4
/*538254*/            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)
/*538263*/          /*Scope*/ 101|128,13/*1765*/, /*->540030*/
/*538265*/            OPC_RecordChild0, // #1 = $mask
/*538266*/            OPC_MoveChild1,
/*538267*/            OPC_SwitchOpcode /*9 cases */, 61|128,1/*189*/, TARGET_VAL(ISD::STRICT_FMA),// ->538461
/*538272*/              OPC_RecordNode, // #2 = 'X86strict_Fmadd' chained node
/*538273*/              OPC_CheckFoldableChainNode,
/*538274*/              OPC_Scope, 123, /*->538399*/ // 2 children in Scope
/*538276*/                OPC_RecordChild1, // #3 = $src2
/*538277*/                OPC_Scope, 59, /*->538338*/ // 2 children in Scope
/*538279*/                  OPC_MoveChild2,
/*538280*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*538283*/                  OPC_CheckChild0Same, 0,
/*538285*/                  OPC_CheckChild1Integer, 0, 
/*538287*/                  OPC_MoveParent,
/*538288*/                  OPC_RecordChild3, // #4 = $src3
/*538289*/                  OPC_MoveParent,
/*538290*/                  OPC_MoveChild2,
/*538291*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*538294*/                  OPC_CheckChild0Same, 0,
/*538296*/                  OPC_CheckChild1Integer, 0, 
/*538298*/                  OPC_MoveParent,
/*538299*/                  OPC_CheckType, MVT::f64,
/*538301*/                  OPC_MoveParent,
/*538302*/                  OPC_MoveParent,
/*538303*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*538305*/                  OPC_EmitMergeInputChains1_2,
/*538306*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*538309*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 5,  // Results = #6
/*538317*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*538320*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 4, 7,  // Results = #8
/*538328*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SDZr_Intk), 0|OPFL_Chain,
                                MVT::v2f64, 4/*#Ops*/, 0, 1, 6, 8, 
                            // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86strict_Fmadd:{ *:[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] }))
/*538338*/                /*Scope*/ 59, /*->538398*/
/*538339*/                  OPC_RecordChild2, // #4 = $src3
/*538340*/                  OPC_MoveChild3,
/*538341*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*538344*/                  OPC_CheckChild0Same, 0,
/*538346*/                  OPC_CheckChild1Integer, 0, 
/*538348*/                  OPC_MoveParent,
/*538349*/                  OPC_MoveParent,
/*538350*/                  OPC_MoveChild2,
/*538351*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*538354*/                  OPC_CheckChild0Same, 0,
/*538356*/                  OPC_CheckChild1Integer, 0, 
/*538358*/                  OPC_MoveParent,
/*538359*/                  OPC_CheckType, MVT::f64,
/*538361*/                  OPC_MoveParent,
/*538362*/                  OPC_MoveParent,
/*538363*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*538365*/                  OPC_EmitMergeInputChains1_2,
/*538366*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*538369*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 5,  // Results = #6
/*538377*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*538380*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 4, 7,  // Results = #8
/*538388*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SDZr_Intk), 0|OPFL_Chain,
                                MVT::v2f64, 4/*#Ops*/, 0, 1, 6, 8, 
                            // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86strict_Fmadd:{ *:[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] }))
/*538398*/                0, /*End of Scope*/
/*538399*/              /*Scope*/ 60, /*->538460*/
/*538400*/                OPC_MoveChild1,
/*538401*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*538404*/                OPC_CheckChild0Same, 0,
/*538406*/                OPC_CheckChild1Integer, 0, 
/*538408*/                OPC_MoveParent,
/*538409*/                OPC_RecordChild2, // #3 = $src2
/*538410*/                OPC_RecordChild3, // #4 = $src3
/*538411*/                OPC_MoveParent,
/*538412*/                OPC_MoveChild2,
/*538413*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*538416*/                OPC_CheckChild0Same, 0,
/*538418*/                OPC_CheckChild1Integer, 0, 
/*538420*/                OPC_MoveParent,
/*538421*/                OPC_CheckType, MVT::f64,
/*538423*/                OPC_MoveParent,
/*538424*/                OPC_MoveParent,
/*538425*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*538427*/                OPC_EmitMergeInputChains1_2,
/*538428*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*538431*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 5,  // Results = #6
/*538439*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*538442*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 4, 7,  // Results = #8
/*538450*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SDZr_Intk), 0|OPFL_Chain,
                              MVT::v2f64, 4/*#Ops*/, 0, 1, 6, 8, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86strict_Fmadd:{ *:[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] }))
/*538460*/              0, /*End of Scope*/
/*538461*/            /*SwitchOpcode*/ 56|128,1/*184*/, TARGET_VAL(ISD::FMA),// ->538649
/*538465*/              OPC_Scope, 121, /*->538588*/ // 2 children in Scope
/*538467*/                OPC_RecordChild0, // #2 = $src2
/*538468*/                OPC_Scope, 58, /*->538528*/ // 2 children in Scope
/*538470*/                  OPC_MoveChild1,
/*538471*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*538474*/                  OPC_CheckChild0Same, 0,
/*538476*/                  OPC_CheckChild1Integer, 0, 
/*538478*/                  OPC_MoveParent,
/*538479*/                  OPC_RecordChild2, // #3 = $src3
/*538480*/                  OPC_MoveParent,
/*538481*/                  OPC_MoveChild2,
/*538482*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*538485*/                  OPC_CheckChild0Same, 0,
/*538487*/                  OPC_CheckChild1Integer, 0, 
/*538489*/                  OPC_MoveParent,
/*538490*/                  OPC_CheckType, MVT::f64,
/*538492*/                  OPC_MoveParent,
/*538493*/                  OPC_MoveParent,
/*538494*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*538496*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*538499*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 4,  // Results = #5
/*538507*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*538510*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 6,  // Results = #7
/*538518*/                  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] }))
/*538528*/                /*Scope*/ 58, /*->538587*/
/*538529*/                  OPC_RecordChild1, // #3 = $src3
/*538530*/                  OPC_MoveChild2,
/*538531*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*538534*/                  OPC_CheckChild0Same, 0,
/*538536*/                  OPC_CheckChild1Integer, 0, 
/*538538*/                  OPC_MoveParent,
/*538539*/                  OPC_MoveParent,
/*538540*/                  OPC_MoveChild2,
/*538541*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*538544*/                  OPC_CheckChild0Same, 0,
/*538546*/                  OPC_CheckChild1Integer, 0, 
/*538548*/                  OPC_MoveParent,
/*538549*/                  OPC_CheckType, MVT::f64,
/*538551*/                  OPC_MoveParent,
/*538552*/                  OPC_MoveParent,
/*538553*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*538555*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*538558*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 4,  // Results = #5
/*538566*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*538569*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 6,  // Results = #7
/*538577*/                  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] }))
/*538587*/                0, /*End of Scope*/
/*538588*/              /*Scope*/ 59, /*->538648*/
/*538589*/                OPC_MoveChild0,
/*538590*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*538593*/                OPC_CheckChild0Same, 0,
/*538595*/                OPC_CheckChild1Integer, 0, 
/*538597*/                OPC_MoveParent,
/*538598*/                OPC_RecordChild1, // #2 = $src2
/*538599*/                OPC_RecordChild2, // #3 = $src3
/*538600*/                OPC_MoveParent,
/*538601*/                OPC_MoveChild2,
/*538602*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*538605*/                OPC_CheckChild0Same, 0,
/*538607*/                OPC_CheckChild1Integer, 0, 
/*538609*/                OPC_MoveParent,
/*538610*/                OPC_CheckType, MVT::f64,
/*538612*/                OPC_MoveParent,
/*538613*/                OPC_MoveParent,
/*538614*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*538616*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*538619*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 4,  // Results = #5
/*538627*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*538630*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 6,  // Results = #7
/*538638*/                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] }))
/*538648*/              0, /*End of Scope*/
/*538649*/            /*SwitchOpcode*/ 56|128,1/*184*/, TARGET_VAL(X86ISD::FMSUB),// ->538837
/*538653*/              OPC_Scope, 121, /*->538776*/ // 2 children in Scope
/*538655*/                OPC_RecordChild0, // #2 = $src2
/*538656*/                OPC_Scope, 58, /*->538716*/ // 2 children in Scope
/*538658*/                  OPC_MoveChild1,
/*538659*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*538662*/                  OPC_CheckChild0Same, 0,
/*538664*/                  OPC_CheckChild1Integer, 0, 
/*538666*/                  OPC_MoveParent,
/*538667*/                  OPC_RecordChild2, // #3 = $src3
/*538668*/                  OPC_MoveParent,
/*538669*/                  OPC_MoveChild2,
/*538670*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*538673*/                  OPC_CheckChild0Same, 0,
/*538675*/                  OPC_CheckChild1Integer, 0, 
/*538677*/                  OPC_MoveParent,
/*538678*/                  OPC_CheckType, MVT::f64,
/*538680*/                  OPC_MoveParent,
/*538681*/                  OPC_MoveParent,
/*538682*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*538684*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*538687*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 4,  // Results = #5
/*538695*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*538698*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 6,  // Results = #7
/*538706*/                  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] }))
/*538716*/                /*Scope*/ 58, /*->538775*/
/*538717*/                  OPC_RecordChild1, // #3 = $src3
/*538718*/                  OPC_MoveChild2,
/*538719*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*538722*/                  OPC_CheckChild0Same, 0,
/*538724*/                  OPC_CheckChild1Integer, 0, 
/*538726*/                  OPC_MoveParent,
/*538727*/                  OPC_MoveParent,
/*538728*/                  OPC_MoveChild2,
/*538729*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*538732*/                  OPC_CheckChild0Same, 0,
/*538734*/                  OPC_CheckChild1Integer, 0, 
/*538736*/                  OPC_MoveParent,
/*538737*/                  OPC_CheckType, MVT::f64,
/*538739*/                  OPC_MoveParent,
/*538740*/                  OPC_MoveParent,
/*538741*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*538743*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*538746*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 4,  // Results = #5
/*538754*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*538757*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 6,  // Results = #7
/*538765*/                  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] }))
/*538775*/                0, /*End of Scope*/
/*538776*/              /*Scope*/ 59, /*->538836*/
/*538777*/                OPC_MoveChild0,
/*538778*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*538781*/                OPC_CheckChild0Same, 0,
/*538783*/                OPC_CheckChild1Integer, 0, 
/*538785*/                OPC_MoveParent,
/*538786*/                OPC_RecordChild1, // #2 = $src2
/*538787*/                OPC_RecordChild2, // #3 = $src3
/*538788*/                OPC_MoveParent,
/*538789*/                OPC_MoveChild2,
/*538790*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*538793*/                OPC_CheckChild0Same, 0,
/*538795*/                OPC_CheckChild1Integer, 0, 
/*538797*/                OPC_MoveParent,
/*538798*/                OPC_CheckType, MVT::f64,
/*538800*/                OPC_MoveParent,
/*538801*/                OPC_MoveParent,
/*538802*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*538804*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*538807*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 4,  // Results = #5
/*538815*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*538818*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 6,  // Results = #7
/*538826*/                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] }))
/*538836*/              0, /*End of Scope*/
/*538837*/            /*SwitchOpcode*/ 56|128,1/*184*/, TARGET_VAL(X86ISD::FNMADD),// ->539025
/*538841*/              OPC_Scope, 121, /*->538964*/ // 2 children in Scope
/*538843*/                OPC_RecordChild0, // #2 = $src2
/*538844*/                OPC_Scope, 58, /*->538904*/ // 2 children in Scope
/*538846*/                  OPC_MoveChild1,
/*538847*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*538850*/                  OPC_CheckChild0Same, 0,
/*538852*/                  OPC_CheckChild1Integer, 0, 
/*538854*/                  OPC_MoveParent,
/*538855*/                  OPC_RecordChild2, // #3 = $src3
/*538856*/                  OPC_MoveParent,
/*538857*/                  OPC_MoveChild2,
/*538858*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*538861*/                  OPC_CheckChild0Same, 0,
/*538863*/                  OPC_CheckChild1Integer, 0, 
/*538865*/                  OPC_MoveParent,
/*538866*/                  OPC_CheckType, MVT::f64,
/*538868*/                  OPC_MoveParent,
/*538869*/                  OPC_MoveParent,
/*538870*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*538872*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*538875*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 4,  // Results = #5
/*538883*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*538886*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 6,  // Results = #7
/*538894*/                  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] }))
/*538904*/                /*Scope*/ 58, /*->538963*/
/*538905*/                  OPC_RecordChild1, // #3 = $src3
/*538906*/                  OPC_MoveChild2,
/*538907*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*538910*/                  OPC_CheckChild0Same, 0,
/*538912*/                  OPC_CheckChild1Integer, 0, 
/*538914*/                  OPC_MoveParent,
/*538915*/                  OPC_MoveParent,
/*538916*/                  OPC_MoveChild2,
/*538917*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*538920*/                  OPC_CheckChild0Same, 0,
/*538922*/                  OPC_CheckChild1Integer, 0, 
/*538924*/                  OPC_MoveParent,
/*538925*/                  OPC_CheckType, MVT::f64,
/*538927*/                  OPC_MoveParent,
/*538928*/                  OPC_MoveParent,
/*538929*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*538931*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*538934*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 4,  // Results = #5
/*538942*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*538945*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 6,  // Results = #7
/*538953*/                  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] }))
/*538963*/                0, /*End of Scope*/
/*538964*/              /*Scope*/ 59, /*->539024*/
/*538965*/                OPC_MoveChild0,
/*538966*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*538969*/                OPC_CheckChild0Same, 0,
/*538971*/                OPC_CheckChild1Integer, 0, 
/*538973*/                OPC_MoveParent,
/*538974*/                OPC_RecordChild1, // #2 = $src2
/*538975*/                OPC_RecordChild2, // #3 = $src3
/*538976*/                OPC_MoveParent,
/*538977*/                OPC_MoveChild2,
/*538978*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*538981*/                OPC_CheckChild0Same, 0,
/*538983*/                OPC_CheckChild1Integer, 0, 
/*538985*/                OPC_MoveParent,
/*538986*/                OPC_CheckType, MVT::f64,
/*538988*/                OPC_MoveParent,
/*538989*/                OPC_MoveParent,
/*538990*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*538992*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*538995*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 4,  // Results = #5
/*539003*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*539006*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 6,  // Results = #7
/*539014*/                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] }))
/*539024*/              0, /*End of Scope*/
/*539025*/            /*SwitchOpcode*/ 56|128,1/*184*/, TARGET_VAL(X86ISD::FNMSUB),// ->539213
/*539029*/              OPC_Scope, 121, /*->539152*/ // 2 children in Scope
/*539031*/                OPC_RecordChild0, // #2 = $src2
/*539032*/                OPC_Scope, 58, /*->539092*/ // 2 children in Scope
/*539034*/                  OPC_MoveChild1,
/*539035*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*539038*/                  OPC_CheckChild0Same, 0,
/*539040*/                  OPC_CheckChild1Integer, 0, 
/*539042*/                  OPC_MoveParent,
/*539043*/                  OPC_RecordChild2, // #3 = $src3
/*539044*/                  OPC_MoveParent,
/*539045*/                  OPC_MoveChild2,
/*539046*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*539049*/                  OPC_CheckChild0Same, 0,
/*539051*/                  OPC_CheckChild1Integer, 0, 
/*539053*/                  OPC_MoveParent,
/*539054*/                  OPC_CheckType, MVT::f64,
/*539056*/                  OPC_MoveParent,
/*539057*/                  OPC_MoveParent,
/*539058*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*539060*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*539063*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 4,  // Results = #5
/*539071*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*539074*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 6,  // Results = #7
/*539082*/                  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] }))
/*539092*/                /*Scope*/ 58, /*->539151*/
/*539093*/                  OPC_RecordChild1, // #3 = $src3
/*539094*/                  OPC_MoveChild2,
/*539095*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*539098*/                  OPC_CheckChild0Same, 0,
/*539100*/                  OPC_CheckChild1Integer, 0, 
/*539102*/                  OPC_MoveParent,
/*539103*/                  OPC_MoveParent,
/*539104*/                  OPC_MoveChild2,
/*539105*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*539108*/                  OPC_CheckChild0Same, 0,
/*539110*/                  OPC_CheckChild1Integer, 0, 
/*539112*/                  OPC_MoveParent,
/*539113*/                  OPC_CheckType, MVT::f64,
/*539115*/                  OPC_MoveParent,
/*539116*/                  OPC_MoveParent,
/*539117*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*539119*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*539122*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 4,  // Results = #5
/*539130*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*539133*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 6,  // Results = #7
/*539141*/                  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] }))
/*539151*/                0, /*End of Scope*/
/*539152*/              /*Scope*/ 59, /*->539212*/
/*539153*/                OPC_MoveChild0,
/*539154*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*539157*/                OPC_CheckChild0Same, 0,
/*539159*/                OPC_CheckChild1Integer, 0, 
/*539161*/                OPC_MoveParent,
/*539162*/                OPC_RecordChild1, // #2 = $src2
/*539163*/                OPC_RecordChild2, // #3 = $src3
/*539164*/                OPC_MoveParent,
/*539165*/                OPC_MoveChild2,
/*539166*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*539169*/                OPC_CheckChild0Same, 0,
/*539171*/                OPC_CheckChild1Integer, 0, 
/*539173*/                OPC_MoveParent,
/*539174*/                OPC_CheckType, MVT::f64,
/*539176*/                OPC_MoveParent,
/*539177*/                OPC_MoveParent,
/*539178*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*539180*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*539183*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 4,  // Results = #5
/*539191*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*539194*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 6,  // Results = #7
/*539202*/                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] }))
/*539212*/              0, /*End of Scope*/
/*539213*/            /*SwitchOpcode*/ 72|128,1/*200*/, TARGET_VAL(X86ISD::FMADD_RND),// ->539417
/*539217*/              OPC_Scope, 3|128,1/*131*/, /*->539351*/ // 2 children in Scope
/*539220*/                OPC_RecordChild0, // #2 = $src2
/*539221*/                OPC_Scope, 63, /*->539286*/ // 2 children in Scope
/*539223*/                  OPC_MoveChild1,
/*539224*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*539227*/                  OPC_CheckChild0Same, 0,
/*539229*/                  OPC_CheckChild1Integer, 0, 
/*539231*/                  OPC_MoveParent,
/*539232*/                  OPC_RecordChild2, // #3 = $src3
/*539233*/                  OPC_RecordChild3, // #4 = $rc
/*539234*/                  OPC_MoveChild3,
/*539235*/                  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*539238*/                  OPC_MoveParent,
/*539239*/                  OPC_MoveParent,
/*539240*/                  OPC_MoveChild2,
/*539241*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*539244*/                  OPC_CheckPredicate, 93, // Predicate_fp64imm0
/*539246*/                  OPC_MoveParent,
/*539247*/                  OPC_CheckType, MVT::f64,
/*539249*/                  OPC_MoveParent,
/*539250*/                  OPC_MoveParent,
/*539251*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*539253*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*539256*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*539264*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*539267*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 7,  // Results = #8
/*539275*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SDZrb_Intkz), 0,
                                MVT::v2f64, 5/*#Ops*/, 0, 1, 6, 8, 4, 
                            // 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, (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*539286*/                /*Scope*/ 63, /*->539350*/
/*539287*/                  OPC_RecordChild1, // #3 = $src3
/*539288*/                  OPC_MoveChild2,
/*539289*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*539292*/                  OPC_CheckChild0Same, 0,
/*539294*/                  OPC_CheckChild1Integer, 0, 
/*539296*/                  OPC_MoveParent,
/*539297*/                  OPC_RecordChild3, // #4 = $rc
/*539298*/                  OPC_MoveChild3,
/*539299*/                  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*539302*/                  OPC_MoveParent,
/*539303*/                  OPC_MoveParent,
/*539304*/                  OPC_MoveChild2,
/*539305*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*539308*/                  OPC_CheckPredicate, 93, // Predicate_fp64imm0
/*539310*/                  OPC_MoveParent,
/*539311*/                  OPC_CheckType, MVT::f64,
/*539313*/                  OPC_MoveParent,
/*539314*/                  OPC_MoveParent,
/*539315*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*539317*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*539320*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*539328*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*539331*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 7,  // Results = #8
/*539339*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SDZrb_Intkz), 0,
                                MVT::v2f64, 5/*#Ops*/, 0, 1, 6, 8, 4, 
                            // 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] }), (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*539350*/                0, /*End of Scope*/
/*539351*/              /*Scope*/ 64, /*->539416*/
/*539352*/                OPC_MoveChild0,
/*539353*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*539356*/                OPC_CheckChild0Same, 0,
/*539358*/                OPC_CheckChild1Integer, 0, 
/*539360*/                OPC_MoveParent,
/*539361*/                OPC_RecordChild1, // #2 = $src2
/*539362*/                OPC_RecordChild2, // #3 = $src3
/*539363*/                OPC_RecordChild3, // #4 = $rc
/*539364*/                OPC_MoveChild3,
/*539365*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*539368*/                OPC_MoveParent,
/*539369*/                OPC_MoveParent,
/*539370*/                OPC_MoveChild2,
/*539371*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*539374*/                OPC_CheckPredicate, 93, // Predicate_fp64imm0
/*539376*/                OPC_MoveParent,
/*539377*/                OPC_CheckType, MVT::f64,
/*539379*/                OPC_MoveParent,
/*539380*/                OPC_MoveParent,
/*539381*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*539383*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*539386*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*539394*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*539397*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 7,  // Results = #8
/*539405*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SDZrb_Intkz), 0,
                              MVT::v2f64, 5/*#Ops*/, 0, 1, 6, 8, 4, 
                          // 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, (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*539416*/              0, /*End of Scope*/
/*539417*/            /*SwitchOpcode*/ 72|128,1/*200*/, TARGET_VAL(X86ISD::FMSUB_RND),// ->539621
/*539421*/              OPC_Scope, 3|128,1/*131*/, /*->539555*/ // 2 children in Scope
/*539424*/                OPC_RecordChild0, // #2 = $src2
/*539425*/                OPC_Scope, 63, /*->539490*/ // 2 children in Scope
/*539427*/                  OPC_MoveChild1,
/*539428*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*539431*/                  OPC_CheckChild0Same, 0,
/*539433*/                  OPC_CheckChild1Integer, 0, 
/*539435*/                  OPC_MoveParent,
/*539436*/                  OPC_RecordChild2, // #3 = $src3
/*539437*/                  OPC_RecordChild3, // #4 = $rc
/*539438*/                  OPC_MoveChild3,
/*539439*/                  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*539442*/                  OPC_MoveParent,
/*539443*/                  OPC_MoveParent,
/*539444*/                  OPC_MoveChild2,
/*539445*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*539448*/                  OPC_CheckPredicate, 93, // Predicate_fp64imm0
/*539450*/                  OPC_MoveParent,
/*539451*/                  OPC_CheckType, MVT::f64,
/*539453*/                  OPC_MoveParent,
/*539454*/                  OPC_MoveParent,
/*539455*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*539457*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*539460*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*539468*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*539471*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 7,  // Results = #8
/*539479*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213SDZrb_Intkz), 0,
                                MVT::v2f64, 5/*#Ops*/, 0, 1, 6, 8, 4, 
                            // 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, (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*539490*/                /*Scope*/ 63, /*->539554*/
/*539491*/                  OPC_RecordChild1, // #3 = $src3
/*539492*/                  OPC_MoveChild2,
/*539493*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*539496*/                  OPC_CheckChild0Same, 0,
/*539498*/                  OPC_CheckChild1Integer, 0, 
/*539500*/                  OPC_MoveParent,
/*539501*/                  OPC_RecordChild3, // #4 = $rc
/*539502*/                  OPC_MoveChild3,
/*539503*/                  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*539506*/                  OPC_MoveParent,
/*539507*/                  OPC_MoveParent,
/*539508*/                  OPC_MoveChild2,
/*539509*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*539512*/                  OPC_CheckPredicate, 93, // Predicate_fp64imm0
/*539514*/                  OPC_MoveParent,
/*539515*/                  OPC_CheckType, MVT::f64,
/*539517*/                  OPC_MoveParent,
/*539518*/                  OPC_MoveParent,
/*539519*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*539521*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*539524*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*539532*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*539535*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 7,  // Results = #8
/*539543*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231SDZrb_Intkz), 0,
                                MVT::v2f64, 5/*#Ops*/, 0, 1, 6, 8, 4, 
                            // 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] }), (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*539554*/                0, /*End of Scope*/
/*539555*/              /*Scope*/ 64, /*->539620*/
/*539556*/                OPC_MoveChild0,
/*539557*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*539560*/                OPC_CheckChild0Same, 0,
/*539562*/                OPC_CheckChild1Integer, 0, 
/*539564*/                OPC_MoveParent,
/*539565*/                OPC_RecordChild1, // #2 = $src2
/*539566*/                OPC_RecordChild2, // #3 = $src3
/*539567*/                OPC_RecordChild3, // #4 = $rc
/*539568*/                OPC_MoveChild3,
/*539569*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*539572*/                OPC_MoveParent,
/*539573*/                OPC_MoveParent,
/*539574*/                OPC_MoveChild2,
/*539575*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*539578*/                OPC_CheckPredicate, 93, // Predicate_fp64imm0
/*539580*/                OPC_MoveParent,
/*539581*/                OPC_CheckType, MVT::f64,
/*539583*/                OPC_MoveParent,
/*539584*/                OPC_MoveParent,
/*539585*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*539587*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*539590*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*539598*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*539601*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 7,  // Results = #8
/*539609*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213SDZrb_Intkz), 0,
                              MVT::v2f64, 5/*#Ops*/, 0, 1, 6, 8, 4, 
                          // 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, (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*539620*/              0, /*End of Scope*/
/*539621*/            /*SwitchOpcode*/ 72|128,1/*200*/, TARGET_VAL(X86ISD::FNMADD_RND),// ->539825
/*539625*/              OPC_Scope, 3|128,1/*131*/, /*->539759*/ // 2 children in Scope
/*539628*/                OPC_RecordChild0, // #2 = $src2
/*539629*/                OPC_Scope, 63, /*->539694*/ // 2 children in Scope
/*539631*/                  OPC_MoveChild1,
/*539632*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*539635*/                  OPC_CheckChild0Same, 0,
/*539637*/                  OPC_CheckChild1Integer, 0, 
/*539639*/                  OPC_MoveParent,
/*539640*/                  OPC_RecordChild2, // #3 = $src3
/*539641*/                  OPC_RecordChild3, // #4 = $rc
/*539642*/                  OPC_MoveChild3,
/*539643*/                  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*539646*/                  OPC_MoveParent,
/*539647*/                  OPC_MoveParent,
/*539648*/                  OPC_MoveChild2,
/*539649*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*539652*/                  OPC_CheckPredicate, 93, // Predicate_fp64imm0
/*539654*/                  OPC_MoveParent,
/*539655*/                  OPC_CheckType, MVT::f64,
/*539657*/                  OPC_MoveParent,
/*539658*/                  OPC_MoveParent,
/*539659*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*539661*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*539664*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*539672*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*539675*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 7,  // Results = #8
/*539683*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213SDZrb_Intkz), 0,
                                MVT::v2f64, 5/*#Ops*/, 0, 1, 6, 8, 4, 
                            // 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, (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*539694*/                /*Scope*/ 63, /*->539758*/
/*539695*/                  OPC_RecordChild1, // #3 = $src3
/*539696*/                  OPC_MoveChild2,
/*539697*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*539700*/                  OPC_CheckChild0Same, 0,
/*539702*/                  OPC_CheckChild1Integer, 0, 
/*539704*/                  OPC_MoveParent,
/*539705*/                  OPC_RecordChild3, // #4 = $rc
/*539706*/                  OPC_MoveChild3,
/*539707*/                  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*539710*/                  OPC_MoveParent,
/*539711*/                  OPC_MoveParent,
/*539712*/                  OPC_MoveChild2,
/*539713*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*539716*/                  OPC_CheckPredicate, 93, // Predicate_fp64imm0
/*539718*/                  OPC_MoveParent,
/*539719*/                  OPC_CheckType, MVT::f64,
/*539721*/                  OPC_MoveParent,
/*539722*/                  OPC_MoveParent,
/*539723*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*539725*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*539728*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*539736*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*539739*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 7,  // Results = #8
/*539747*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231SDZrb_Intkz), 0,
                                MVT::v2f64, 5/*#Ops*/, 0, 1, 6, 8, 4, 
                            // 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] }), (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*539758*/                0, /*End of Scope*/
/*539759*/              /*Scope*/ 64, /*->539824*/
/*539760*/                OPC_MoveChild0,
/*539761*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*539764*/                OPC_CheckChild0Same, 0,
/*539766*/                OPC_CheckChild1Integer, 0, 
/*539768*/                OPC_MoveParent,
/*539769*/                OPC_RecordChild1, // #2 = $src2
/*539770*/                OPC_RecordChild2, // #3 = $src3
/*539771*/                OPC_RecordChild3, // #4 = $rc
/*539772*/                OPC_MoveChild3,
/*539773*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*539776*/                OPC_MoveParent,
/*539777*/                OPC_MoveParent,
/*539778*/                OPC_MoveChild2,
/*539779*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*539782*/                OPC_CheckPredicate, 93, // Predicate_fp64imm0
/*539784*/                OPC_MoveParent,
/*539785*/                OPC_CheckType, MVT::f64,
/*539787*/                OPC_MoveParent,
/*539788*/                OPC_MoveParent,
/*539789*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*539791*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*539794*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*539802*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*539805*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 7,  // Results = #8
/*539813*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213SDZrb_Intkz), 0,
                              MVT::v2f64, 5/*#Ops*/, 0, 1, 6, 8, 4, 
                          // 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, (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*539824*/              0, /*End of Scope*/
/*539825*/            /*SwitchOpcode*/ 72|128,1/*200*/, TARGET_VAL(X86ISD::FNMSUB_RND),// ->540029
/*539829*/              OPC_Scope, 3|128,1/*131*/, /*->539963*/ // 2 children in Scope
/*539832*/                OPC_RecordChild0, // #2 = $src2
/*539833*/                OPC_Scope, 63, /*->539898*/ // 2 children in Scope
/*539835*/                  OPC_MoveChild1,
/*539836*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*539839*/                  OPC_CheckChild0Same, 0,
/*539841*/                  OPC_CheckChild1Integer, 0, 
/*539843*/                  OPC_MoveParent,
/*539844*/                  OPC_RecordChild2, // #3 = $src3
/*539845*/                  OPC_RecordChild3, // #4 = $rc
/*539846*/                  OPC_MoveChild3,
/*539847*/                  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*539850*/                  OPC_MoveParent,
/*539851*/                  OPC_MoveParent,
/*539852*/                  OPC_MoveChild2,
/*539853*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*539856*/                  OPC_CheckPredicate, 93, // Predicate_fp64imm0
/*539858*/                  OPC_MoveParent,
/*539859*/                  OPC_CheckType, MVT::f64,
/*539861*/                  OPC_MoveParent,
/*539862*/                  OPC_MoveParent,
/*539863*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*539865*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*539868*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*539876*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*539879*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 7,  // Results = #8
/*539887*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213SDZrb_Intkz), 0,
                                MVT::v2f64, 5/*#Ops*/, 0, 1, 6, 8, 4, 
                            // 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, (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*539898*/                /*Scope*/ 63, /*->539962*/
/*539899*/                  OPC_RecordChild1, // #3 = $src3
/*539900*/                  OPC_MoveChild2,
/*539901*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*539904*/                  OPC_CheckChild0Same, 0,
/*539906*/                  OPC_CheckChild1Integer, 0, 
/*539908*/                  OPC_MoveParent,
/*539909*/                  OPC_RecordChild3, // #4 = $rc
/*539910*/                  OPC_MoveChild3,
/*539911*/                  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*539914*/                  OPC_MoveParent,
/*539915*/                  OPC_MoveParent,
/*539916*/                  OPC_MoveChild2,
/*539917*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*539920*/                  OPC_CheckPredicate, 93, // Predicate_fp64imm0
/*539922*/                  OPC_MoveParent,
/*539923*/                  OPC_CheckType, MVT::f64,
/*539925*/                  OPC_MoveParent,
/*539926*/                  OPC_MoveParent,
/*539927*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*539929*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*539932*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*539940*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*539943*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 7,  // Results = #8
/*539951*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231SDZrb_Intkz), 0,
                                MVT::v2f64, 5/*#Ops*/, 0, 1, 6, 8, 4, 
                            // 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] }), (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*539962*/                0, /*End of Scope*/
/*539963*/              /*Scope*/ 64, /*->540028*/
/*539964*/                OPC_MoveChild0,
/*539965*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*539968*/                OPC_CheckChild0Same, 0,
/*539970*/                OPC_CheckChild1Integer, 0, 
/*539972*/                OPC_MoveParent,
/*539973*/                OPC_RecordChild1, // #2 = $src2
/*539974*/                OPC_RecordChild2, // #3 = $src3
/*539975*/                OPC_RecordChild3, // #4 = $rc
/*539976*/                OPC_MoveChild3,
/*539977*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*539980*/                OPC_MoveParent,
/*539981*/                OPC_MoveParent,
/*539982*/                OPC_MoveChild2,
/*539983*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*539986*/                OPC_CheckPredicate, 93, // Predicate_fp64imm0
/*539988*/                OPC_MoveParent,
/*539989*/                OPC_CheckType, MVT::f64,
/*539991*/                OPC_MoveParent,
/*539992*/                OPC_MoveParent,
/*539993*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*539995*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*539998*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*540006*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*540009*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 7,  // Results = #8
/*540017*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213SDZrb_Intkz), 0,
                              MVT::v2f64, 5/*#Ops*/, 0, 1, 6, 8, 4, 
                          // 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, (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*540028*/              0, /*End of Scope*/
/*540029*/            0, // EndSwitchOpcode
/*540030*/          0, /*End of Scope*/
/*540031*/        /*SwitchOpcode*/ 19|128,1/*147*/, TARGET_VAL(ISD::STRICT_FADD),// ->540182
/*540035*/          OPC_RecordNode, // #1 = 'strict_fadd' chained node
/*540036*/          OPC_CheckFoldableChainNode,
/*540037*/          OPC_MoveChild1,
/*540038*/          OPC_SwitchOpcode /*2 cases */, 68, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->540110
/*540042*/            OPC_CheckChild0Same, 0,
/*540044*/            OPC_CheckChild1Integer, 0, 
/*540046*/            OPC_MoveParent,
/*540047*/            OPC_MoveChild2,
/*540048*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*540051*/            OPC_RecordMemRef,
/*540052*/            OPC_RecordNode, // #2 = 'ld' chained node
/*540053*/            OPC_CheckFoldableChainNode,
/*540054*/            OPC_RecordChild1, // #3 = $src
/*540055*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*540057*/            OPC_CheckPredicate, 9, // Predicate_load
/*540059*/            OPC_MoveParent,
/*540060*/            OPC_CheckType, MVT::f64,
/*540062*/            OPC_MoveParent,
/*540063*/            OPC_MoveParent,
/*540064*/            OPC_Scope, 21, /*->540087*/ // 2 children in Scope
/*540066*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*540068*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*540071*/              OPC_EmitMergeInputChains, 2, 1, 2, 
/*540075*/              OPC_MorphNodeTo1, TARGET_VAL(X86::ADDSDrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (strict_fadd:{ *:[f64] } (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$dst, 0:{ *:[iPTR] }), (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                        // Dst: (ADDSDrm_Int:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, addr:{ *:[iPTR] }:$src)
/*540087*/            /*Scope*/ 21, /*->540109*/
/*540088*/              OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*540090*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*540093*/              OPC_EmitMergeInputChains, 2, 1, 2, 
/*540097*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSDrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (strict_fadd:{ *:[f64] } (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$dst, 0:{ *:[iPTR] }), (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                        // Dst: (VADDSDrm_Int:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, addr:{ *:[iPTR] }:$src)
/*540109*/            0, /*End of Scope*/
/*540110*/          /*SwitchOpcode*/ 68, TARGET_VAL(ISD::LOAD),// ->540181
/*540113*/            OPC_RecordMemRef,
/*540114*/            OPC_RecordNode, // #2 = 'ld' chained node
/*540115*/            OPC_CheckFoldableChainNode,
/*540116*/            OPC_RecordChild1, // #3 = $src
/*540117*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*540119*/            OPC_CheckPredicate, 9, // Predicate_load
/*540121*/            OPC_MoveParent,
/*540122*/            OPC_MoveChild2,
/*540123*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*540126*/            OPC_CheckChild0Same, 0,
/*540128*/            OPC_CheckChild1Integer, 0, 
/*540130*/            OPC_MoveParent,
/*540131*/            OPC_CheckType, MVT::f64,
/*540133*/            OPC_MoveParent,
/*540134*/            OPC_MoveParent,
/*540135*/            OPC_Scope, 21, /*->540158*/ // 2 children in Scope
/*540137*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*540139*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*540142*/              OPC_EmitMergeInputChains, 2, 1, 2, 
/*540146*/              OPC_MorphNodeTo1, TARGET_VAL(X86::ADDSDrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (strict_fadd:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$dst, 0:{ *:[iPTR] })))) - Complexity = 39
                        // Dst: (ADDSDrm_Int:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, addr:{ *:[iPTR] }:$src)
/*540158*/            /*Scope*/ 21, /*->540180*/
/*540159*/              OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*540161*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*540164*/              OPC_EmitMergeInputChains, 2, 1, 2, 
/*540168*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSDrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (strict_fadd:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$dst, 0:{ *:[iPTR] })))) - Complexity = 39
                        // Dst: (VADDSDrm_Int:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, addr:{ *:[iPTR] }:$src)
/*540180*/            0, /*End of Scope*/
/*540181*/          0, // EndSwitchOpcode
/*540182*/        /*SwitchOpcode*/ 43|128,1/*171*/, TARGET_VAL(ISD::FADD),// ->540357
/*540186*/          OPC_MoveChild0,
/*540187*/          OPC_SwitchOpcode /*2 cases */, 81, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->540272
/*540191*/            OPC_CheckChild0Same, 0,
/*540193*/            OPC_CheckChild1Integer, 0, 
/*540195*/            OPC_MoveParent,
/*540196*/            OPC_MoveChild1,
/*540197*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*540200*/            OPC_RecordMemRef,
/*540201*/            OPC_RecordNode, // #1 = 'ld' chained node
/*540202*/            OPC_CheckFoldableChainNode,
/*540203*/            OPC_RecordChild1, // #2 = $src
/*540204*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*540206*/            OPC_CheckPredicate, 9, // Predicate_load
/*540208*/            OPC_MoveParent,
/*540209*/            OPC_CheckType, MVT::f64,
/*540211*/            OPC_MoveParent,
/*540212*/            OPC_MoveParent,
/*540213*/            OPC_Scope, 18, /*->540233*/ // 3 children in Scope
/*540215*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*540217*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*540220*/              OPC_EmitMergeInputChains1_1,
/*540221*/              OPC_MorphNodeTo1, TARGET_VAL(X86::ADDSDrm_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] } (fadd:{ *:[f64] } (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$dst, 0:{ *:[iPTR] }), (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                        // Dst: (ADDSDrm_Int:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, addr:{ *:[iPTR] }:$src)
/*540233*/            /*Scope*/ 18, /*->540252*/
/*540234*/              OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*540236*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*540239*/              OPC_EmitMergeInputChains1_1,
/*540240*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSDrm_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] } (fadd:{ *:[f64] } (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$dst, 0:{ *:[iPTR] }), (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                        // Dst: (VADDSDrm_Int:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, addr:{ *:[iPTR] }:$src)
/*540252*/            /*Scope*/ 18, /*->540271*/
/*540253*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*540255*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*540258*/              OPC_EmitMergeInputChains1_1,
/*540259*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSDZrm_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] } (fadd:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$dst, 0:{ *:[iPTR] }), (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                        // Dst: (VADDSDZrm_Int:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, addr:{ *:[iPTR] }:$src)
/*540271*/            0, /*End of Scope*/
/*540272*/          /*SwitchOpcode*/ 81, TARGET_VAL(ISD::LOAD),// ->540356
/*540275*/            OPC_RecordMemRef,
/*540276*/            OPC_RecordNode, // #1 = 'ld' chained node
/*540277*/            OPC_CheckFoldableChainNode,
/*540278*/            OPC_RecordChild1, // #2 = $src
/*540279*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*540281*/            OPC_CheckPredicate, 9, // Predicate_load
/*540283*/            OPC_MoveParent,
/*540284*/            OPC_MoveChild1,
/*540285*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*540288*/            OPC_CheckChild0Same, 0,
/*540290*/            OPC_CheckChild1Integer, 0, 
/*540292*/            OPC_MoveParent,
/*540293*/            OPC_CheckType, MVT::f64,
/*540295*/            OPC_MoveParent,
/*540296*/            OPC_MoveParent,
/*540297*/            OPC_Scope, 18, /*->540317*/ // 3 children in Scope
/*540299*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*540301*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*540304*/              OPC_EmitMergeInputChains1_1,
/*540305*/              OPC_MorphNodeTo1, TARGET_VAL(X86::ADDSDrm_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] } (fadd:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$dst, 0:{ *:[iPTR] })))) - Complexity = 39
                        // Dst: (ADDSDrm_Int:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, addr:{ *:[iPTR] }:$src)
/*540317*/            /*Scope*/ 18, /*->540336*/
/*540318*/              OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*540320*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*540323*/              OPC_EmitMergeInputChains1_1,
/*540324*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSDrm_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] } (fadd:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$dst, 0:{ *:[iPTR] })))) - Complexity = 39
                        // Dst: (VADDSDrm_Int:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, addr:{ *:[iPTR] }:$src)
/*540336*/            /*Scope*/ 18, /*->540355*/
/*540337*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*540339*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*540342*/              OPC_EmitMergeInputChains1_1,
/*540343*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSDZrm_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] } (fadd:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$dst, 0:{ *:[iPTR] })))) - Complexity = 39
                        // Dst: (VADDSDZrm_Int:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, addr:{ *:[iPTR] }:$src)
/*540355*/            0, /*End of Scope*/
/*540356*/          0, // EndSwitchOpcode
/*540357*/        /*SwitchOpcode*/ 74, TARGET_VAL(ISD::STRICT_FSUB),// ->540434
/*540360*/          OPC_RecordNode, // #1 = 'strict_fsub' chained node
/*540361*/          OPC_CheckFoldableChainNode,
/*540362*/          OPC_MoveChild1,
/*540363*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*540366*/          OPC_CheckChild0Same, 0,
/*540368*/          OPC_CheckChild1Integer, 0, 
/*540370*/          OPC_MoveParent,
/*540371*/          OPC_MoveChild2,
/*540372*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*540375*/          OPC_RecordMemRef,
/*540376*/          OPC_RecordNode, // #2 = 'ld' chained node
/*540377*/          OPC_CheckFoldableChainNode,
/*540378*/          OPC_RecordChild1, // #3 = $src
/*540379*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*540381*/          OPC_CheckPredicate, 9, // Predicate_load
/*540383*/          OPC_MoveParent,
/*540384*/          OPC_CheckType, MVT::f64,
/*540386*/          OPC_MoveParent,
/*540387*/          OPC_MoveParent,
/*540388*/          OPC_Scope, 21, /*->540411*/ // 2 children in Scope
/*540390*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*540392*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*540395*/            OPC_EmitMergeInputChains, 2, 1, 2, 
/*540399*/            OPC_MorphNodeTo1, TARGET_VAL(X86::SUBSDrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                      // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (strict_fsub:{ *:[f64] } (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$dst, 0:{ *:[iPTR] }), (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                      // Dst: (SUBSDrm_Int:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, addr:{ *:[iPTR] }:$src)
/*540411*/          /*Scope*/ 21, /*->540433*/
/*540412*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*540414*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*540417*/            OPC_EmitMergeInputChains, 2, 1, 2, 
/*540421*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSDrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                      // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (strict_fsub:{ *:[f64] } (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$dst, 0:{ *:[iPTR] }), (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                      // Dst: (VSUBSDrm_Int:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, addr:{ *:[iPTR] }:$src)
/*540433*/          0, /*End of Scope*/
/*540434*/        /*SwitchOpcode*/ 85, TARGET_VAL(ISD::FSUB),// ->540522
/*540437*/          OPC_MoveChild0,
/*540438*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*540441*/          OPC_CheckChild0Same, 0,
/*540443*/          OPC_CheckChild1Integer, 0, 
/*540445*/          OPC_MoveParent,
/*540446*/          OPC_MoveChild1,
/*540447*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*540450*/          OPC_RecordMemRef,
/*540451*/          OPC_RecordNode, // #1 = 'ld' chained node
/*540452*/          OPC_CheckFoldableChainNode,
/*540453*/          OPC_RecordChild1, // #2 = $src
/*540454*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*540456*/          OPC_CheckPredicate, 9, // Predicate_load
/*540458*/          OPC_MoveParent,
/*540459*/          OPC_CheckType, MVT::f64,
/*540461*/          OPC_MoveParent,
/*540462*/          OPC_MoveParent,
/*540463*/          OPC_Scope, 18, /*->540483*/ // 3 children in Scope
/*540465*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*540467*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*540470*/            OPC_EmitMergeInputChains1_1,
/*540471*/            OPC_MorphNodeTo1, TARGET_VAL(X86::SUBSDrm_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] } (fsub:{ *:[f64] } (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$dst, 0:{ *:[iPTR] }), (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                      // Dst: (SUBSDrm_Int:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, addr:{ *:[iPTR] }:$src)
/*540483*/          /*Scope*/ 18, /*->540502*/
/*540484*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*540486*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*540489*/            OPC_EmitMergeInputChains1_1,
/*540490*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSDrm_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] } (fsub:{ *:[f64] } (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$dst, 0:{ *:[iPTR] }), (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                      // Dst: (VSUBSDrm_Int:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, addr:{ *:[iPTR] }:$src)
/*540502*/          /*Scope*/ 18, /*->540521*/
/*540503*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*540505*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*540508*/            OPC_EmitMergeInputChains1_1,
/*540509*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSDZrm_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] } (fsub:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$dst, 0:{ *:[iPTR] }), (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                      // Dst: (VSUBSDZrm_Int:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, addr:{ *:[iPTR] }:$src)
/*540521*/          0, /*End of Scope*/
/*540522*/        /*SwitchOpcode*/ 19|128,1/*147*/, TARGET_VAL(ISD::STRICT_FMUL),// ->540673
/*540526*/          OPC_RecordNode, // #1 = 'strict_fmul' chained node
/*540527*/          OPC_CheckFoldableChainNode,
/*540528*/          OPC_MoveChild1,
/*540529*/          OPC_SwitchOpcode /*2 cases */, 68, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->540601
/*540533*/            OPC_CheckChild0Same, 0,
/*540535*/            OPC_CheckChild1Integer, 0, 
/*540537*/            OPC_MoveParent,
/*540538*/            OPC_MoveChild2,
/*540539*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*540542*/            OPC_RecordMemRef,
/*540543*/            OPC_RecordNode, // #2 = 'ld' chained node
/*540544*/            OPC_CheckFoldableChainNode,
/*540545*/            OPC_RecordChild1, // #3 = $src
/*540546*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*540548*/            OPC_CheckPredicate, 9, // Predicate_load
/*540550*/            OPC_MoveParent,
/*540551*/            OPC_CheckType, MVT::f64,
/*540553*/            OPC_MoveParent,
/*540554*/            OPC_MoveParent,
/*540555*/            OPC_Scope, 21, /*->540578*/ // 2 children in Scope
/*540557*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*540559*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*540562*/              OPC_EmitMergeInputChains, 2, 1, 2, 
/*540566*/              OPC_MorphNodeTo1, TARGET_VAL(X86::MULSDrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (strict_fmul:{ *:[f64] } (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$dst, 0:{ *:[iPTR] }), (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                        // Dst: (MULSDrm_Int:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, addr:{ *:[iPTR] }:$src)
/*540578*/            /*Scope*/ 21, /*->540600*/
/*540579*/              OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*540581*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*540584*/              OPC_EmitMergeInputChains, 2, 1, 2, 
/*540588*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSDrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (strict_fmul:{ *:[f64] } (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$dst, 0:{ *:[iPTR] }), (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                        // Dst: (VMULSDrm_Int:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, addr:{ *:[iPTR] }:$src)
/*540600*/            0, /*End of Scope*/
/*540601*/          /*SwitchOpcode*/ 68, TARGET_VAL(ISD::LOAD),// ->540672
/*540604*/            OPC_RecordMemRef,
/*540605*/            OPC_RecordNode, // #2 = 'ld' chained node
/*540606*/            OPC_CheckFoldableChainNode,
/*540607*/            OPC_RecordChild1, // #3 = $src
/*540608*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*540610*/            OPC_CheckPredicate, 9, // Predicate_load
/*540612*/            OPC_MoveParent,
/*540613*/            OPC_MoveChild2,
/*540614*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*540617*/            OPC_CheckChild0Same, 0,
/*540619*/            OPC_CheckChild1Integer, 0, 
/*540621*/            OPC_MoveParent,
/*540622*/            OPC_CheckType, MVT::f64,
/*540624*/            OPC_MoveParent,
/*540625*/            OPC_MoveParent,
/*540626*/            OPC_Scope, 21, /*->540649*/ // 2 children in Scope
/*540628*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*540630*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*540633*/              OPC_EmitMergeInputChains, 2, 1, 2, 
/*540637*/              OPC_MorphNodeTo1, TARGET_VAL(X86::MULSDrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (strict_fmul:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$dst, 0:{ *:[iPTR] })))) - Complexity = 39
                        // Dst: (MULSDrm_Int:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, addr:{ *:[iPTR] }:$src)
/*540649*/            /*Scope*/ 21, /*->540671*/
/*540650*/              OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*540652*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*540655*/              OPC_EmitMergeInputChains, 2, 1, 2, 
/*540659*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSDrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (strict_fmul:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$dst, 0:{ *:[iPTR] })))) - Complexity = 39
                        // Dst: (VMULSDrm_Int:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, addr:{ *:[iPTR] }:$src)
/*540671*/            0, /*End of Scope*/
/*540672*/          0, // EndSwitchOpcode
/*540673*/        /*SwitchOpcode*/ 43|128,1/*171*/, TARGET_VAL(ISD::FMUL),// ->540848
/*540677*/          OPC_MoveChild0,
/*540678*/          OPC_SwitchOpcode /*2 cases */, 81, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->540763
/*540682*/            OPC_CheckChild0Same, 0,
/*540684*/            OPC_CheckChild1Integer, 0, 
/*540686*/            OPC_MoveParent,
/*540687*/            OPC_MoveChild1,
/*540688*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*540691*/            OPC_RecordMemRef,
/*540692*/            OPC_RecordNode, // #1 = 'ld' chained node
/*540693*/            OPC_CheckFoldableChainNode,
/*540694*/            OPC_RecordChild1, // #2 = $src
/*540695*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*540697*/            OPC_CheckPredicate, 9, // Predicate_load
/*540699*/            OPC_MoveParent,
/*540700*/            OPC_CheckType, MVT::f64,
/*540702*/            OPC_MoveParent,
/*540703*/            OPC_MoveParent,
/*540704*/            OPC_Scope, 18, /*->540724*/ // 3 children in Scope
/*540706*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*540708*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*540711*/              OPC_EmitMergeInputChains1_1,
/*540712*/              OPC_MorphNodeTo1, TARGET_VAL(X86::MULSDrm_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] } (fmul:{ *:[f64] } (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$dst, 0:{ *:[iPTR] }), (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                        // Dst: (MULSDrm_Int:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, addr:{ *:[iPTR] }:$src)
/*540724*/            /*Scope*/ 18, /*->540743*/
/*540725*/              OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*540727*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*540730*/              OPC_EmitMergeInputChains1_1,
/*540731*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSDrm_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] } (fmul:{ *:[f64] } (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$dst, 0:{ *:[iPTR] }), (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                        // Dst: (VMULSDrm_Int:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, addr:{ *:[iPTR] }:$src)
/*540743*/            /*Scope*/ 18, /*->540762*/
/*540744*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*540746*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*540749*/              OPC_EmitMergeInputChains1_1,
/*540750*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSDZrm_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] } (fmul:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$dst, 0:{ *:[iPTR] }), (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                        // Dst: (VMULSDZrm_Int:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, addr:{ *:[iPTR] }:$src)
/*540762*/            0, /*End of Scope*/
/*540763*/          /*SwitchOpcode*/ 81, TARGET_VAL(ISD::LOAD),// ->540847
/*540766*/            OPC_RecordMemRef,
/*540767*/            OPC_RecordNode, // #1 = 'ld' chained node
/*540768*/            OPC_CheckFoldableChainNode,
/*540769*/            OPC_RecordChild1, // #2 = $src
/*540770*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*540772*/            OPC_CheckPredicate, 9, // Predicate_load
/*540774*/            OPC_MoveParent,
/*540775*/            OPC_MoveChild1,
/*540776*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*540779*/            OPC_CheckChild0Same, 0,
/*540781*/            OPC_CheckChild1Integer, 0, 
/*540783*/            OPC_MoveParent,
/*540784*/            OPC_CheckType, MVT::f64,
/*540786*/            OPC_MoveParent,
/*540787*/            OPC_MoveParent,
/*540788*/            OPC_Scope, 18, /*->540808*/ // 3 children in Scope
/*540790*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*540792*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*540795*/              OPC_EmitMergeInputChains1_1,
/*540796*/              OPC_MorphNodeTo1, TARGET_VAL(X86::MULSDrm_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] } (fmul:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$dst, 0:{ *:[iPTR] })))) - Complexity = 39
                        // Dst: (MULSDrm_Int:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, addr:{ *:[iPTR] }:$src)
/*540808*/            /*Scope*/ 18, /*->540827*/
/*540809*/              OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*540811*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*540814*/              OPC_EmitMergeInputChains1_1,
/*540815*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSDrm_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] } (fmul:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$dst, 0:{ *:[iPTR] })))) - Complexity = 39
                        // Dst: (VMULSDrm_Int:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, addr:{ *:[iPTR] }:$src)
/*540827*/            /*Scope*/ 18, /*->540846*/
/*540828*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*540830*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*540833*/              OPC_EmitMergeInputChains1_1,
/*540834*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSDZrm_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] } (fmul:{ *:[f64] } (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$dst, 0:{ *:[iPTR] })))) - Complexity = 39
                        // Dst: (VMULSDZrm_Int:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, addr:{ *:[iPTR] }:$src)
/*540846*/            0, /*End of Scope*/
/*540847*/          0, // EndSwitchOpcode
/*540848*/        /*SwitchOpcode*/ 74, TARGET_VAL(ISD::STRICT_FDIV),// ->540925
/*540851*/          OPC_RecordNode, // #1 = 'strict_fdiv' chained node
/*540852*/          OPC_CheckFoldableChainNode,
/*540853*/          OPC_MoveChild1,
/*540854*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*540857*/          OPC_CheckChild0Same, 0,
/*540859*/          OPC_CheckChild1Integer, 0, 
/*540861*/          OPC_MoveParent,
/*540862*/          OPC_MoveChild2,
/*540863*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*540866*/          OPC_RecordMemRef,
/*540867*/          OPC_RecordNode, // #2 = 'ld' chained node
/*540868*/          OPC_CheckFoldableChainNode,
/*540869*/          OPC_RecordChild1, // #3 = $src
/*540870*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*540872*/          OPC_CheckPredicate, 9, // Predicate_load
/*540874*/          OPC_MoveParent,
/*540875*/          OPC_CheckType, MVT::f64,
/*540877*/          OPC_MoveParent,
/*540878*/          OPC_MoveParent,
/*540879*/          OPC_Scope, 21, /*->540902*/ // 2 children in Scope
/*540881*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*540883*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*540886*/            OPC_EmitMergeInputChains, 2, 1, 2, 
/*540890*/            OPC_MorphNodeTo1, TARGET_VAL(X86::DIVSDrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                      // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (strict_fdiv:{ *:[f64] } (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$dst, 0:{ *:[iPTR] }), (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                      // Dst: (DIVSDrm_Int:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, addr:{ *:[iPTR] }:$src)
/*540902*/          /*Scope*/ 21, /*->540924*/
/*540903*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*540905*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*540908*/            OPC_EmitMergeInputChains, 2, 1, 2, 
/*540912*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSDrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                      // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (strict_fdiv:{ *:[f64] } (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$dst, 0:{ *:[iPTR] }), (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                      // Dst: (VDIVSDrm_Int:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, addr:{ *:[iPTR] }:$src)
/*540924*/          0, /*End of Scope*/
/*540925*/        /*SwitchOpcode*/ 85, TARGET_VAL(ISD::FDIV),// ->541013
/*540928*/          OPC_MoveChild0,
/*540929*/          OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*540932*/          OPC_CheckChild0Same, 0,
/*540934*/          OPC_CheckChild1Integer, 0, 
/*540936*/          OPC_MoveParent,
/*540937*/          OPC_MoveChild1,
/*540938*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*540941*/          OPC_RecordMemRef,
/*540942*/          OPC_RecordNode, // #1 = 'ld' chained node
/*540943*/          OPC_CheckFoldableChainNode,
/*540944*/          OPC_RecordChild1, // #2 = $src
/*540945*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*540947*/          OPC_CheckPredicate, 9, // Predicate_load
/*540949*/          OPC_MoveParent,
/*540950*/          OPC_CheckType, MVT::f64,
/*540952*/          OPC_MoveParent,
/*540953*/          OPC_MoveParent,
/*540954*/          OPC_Scope, 18, /*->540974*/ // 3 children in Scope
/*540956*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*540958*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*540961*/            OPC_EmitMergeInputChains1_1,
/*540962*/            OPC_MorphNodeTo1, TARGET_VAL(X86::DIVSDrm_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] } (fdiv:{ *:[f64] } (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$dst, 0:{ *:[iPTR] }), (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                      // Dst: (DIVSDrm_Int:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, addr:{ *:[iPTR] }:$src)
/*540974*/          /*Scope*/ 18, /*->540993*/
/*540975*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*540977*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*540980*/            OPC_EmitMergeInputChains1_1,
/*540981*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSDrm_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] } (fdiv:{ *:[f64] } (extractelt:{ *:[f64] } VR128:{ *:[v2f64] }:$dst, 0:{ *:[iPTR] }), (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                      // Dst: (VDIVSDrm_Int:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, addr:{ *:[iPTR] }:$src)
/*540993*/          /*Scope*/ 18, /*->541012*/
/*540994*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*540996*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*540999*/            OPC_EmitMergeInputChains1_1,
/*541000*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSDZrm_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] } (fdiv:{ *:[f64] } (extractelt:{ *:[f64] } VR128X:{ *:[v2f64] }:$dst, 0:{ *:[iPTR] }), (ld:{ *:[f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>))) - Complexity = 39
                      // Dst: (VDIVSDZrm_Int:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, addr:{ *:[iPTR] }:$src)
/*541012*/          0, /*End of Scope*/
/*541013*/        /*SwitchOpcode*/ 37|128,5/*677*/, TARGET_VAL(ISD::STRICT_FMA),// ->541694
/*541017*/          OPC_RecordNode, // #1 = 'X86strict_Fmadd' chained node
/*541018*/          OPC_CheckFoldableChainNode,
/*541019*/          OPC_Scope, 60, /*->541081*/ // 6 children in Scope
/*541021*/            OPC_RecordChild1, // #2 = $src2
/*541022*/            OPC_MoveChild2,
/*541023*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*541026*/            OPC_CheckChild0Same, 0,
/*541028*/            OPC_CheckChild1Integer, 0, 
/*541030*/            OPC_MoveParent,
/*541031*/            OPC_MoveChild3,
/*541032*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*541035*/            OPC_RecordMemRef,
/*541036*/            OPC_RecordNode, // #3 = 'ld' chained node
/*541037*/            OPC_CheckFoldableChainNode,
/*541038*/            OPC_RecordChild1, // #4 = $src3
/*541039*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*541041*/            OPC_CheckPredicate, 9, // Predicate_load
/*541043*/            OPC_MoveParent,
/*541044*/            OPC_CheckType, MVT::f64,
/*541046*/            OPC_MoveParent,
/*541047*/            OPC_MoveParent,
/*541048*/            OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*541050*/            OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*541053*/            OPC_EmitMergeInputChains, 2, 1, 3, 
/*541057*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*541060*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 2, 10,  // Results = #11
/*541068*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SDm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 7/*#Ops*/, 0, 11, 5, 6, 7, 8, 9, 
                      // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86strict_Fmadd:{ *:[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:{ *:[iPTR] }:$src3)
/*541081*/          /*Scope*/ 60, /*->541142*/
/*541082*/            OPC_MoveChild1,
/*541083*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*541086*/            OPC_CheckChild0Same, 0,
/*541088*/            OPC_CheckChild1Integer, 0, 
/*541090*/            OPC_MoveParent,
/*541091*/            OPC_MoveChild2,
/*541092*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*541095*/            OPC_RecordMemRef,
/*541096*/            OPC_RecordNode, // #2 = 'ld' chained node
/*541097*/            OPC_CheckFoldableChainNode,
/*541098*/            OPC_RecordChild1, // #3 = $src3
/*541099*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*541101*/            OPC_CheckPredicate, 9, // Predicate_load
/*541103*/            OPC_MoveParent,
/*541104*/            OPC_RecordChild3, // #4 = $src2
/*541105*/            OPC_CheckType, MVT::f64,
/*541107*/            OPC_MoveParent,
/*541108*/            OPC_MoveParent,
/*541109*/            OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*541111*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*541114*/            OPC_EmitMergeInputChains, 2, 1, 2, 
/*541118*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*541121*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 4, 10,  // Results = #11
/*541129*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132SDm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 7/*#Ops*/, 0, 11, 5, 6, 7, 8, 9, 
                      // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86strict_Fmadd:{ *:[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:{ *:[iPTR] }:$src3)
/*541142*/          /*Scope*/ 120, /*->541263*/
/*541143*/            OPC_RecordChild1, // #2 = $src2
/*541144*/            OPC_MoveChild2,
/*541145*/            OPC_SwitchOpcode /*2 cases */, 55, TARGET_VAL(ISD::LOAD),// ->541204
/*541149*/              OPC_RecordMemRef,
/*541150*/              OPC_RecordNode, // #3 = 'ld' chained node
/*541151*/              OPC_CheckFoldableChainNode,
/*541152*/              OPC_RecordChild1, // #4 = $src3
/*541153*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*541155*/              OPC_CheckPredicate, 9, // Predicate_load
/*541157*/              OPC_MoveParent,
/*541158*/              OPC_MoveChild3,
/*541159*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*541162*/              OPC_CheckChild0Same, 0,
/*541164*/              OPC_CheckChild1Integer, 0, 
/*541166*/              OPC_MoveParent,
/*541167*/              OPC_CheckType, MVT::f64,
/*541169*/              OPC_MoveParent,
/*541170*/              OPC_MoveParent,
/*541171*/              OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*541173*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*541176*/              OPC_EmitMergeInputChains, 2, 1, 3, 
/*541180*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*541183*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 2, 10,  // Results = #11
/*541191*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SDm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 7/*#Ops*/, 0, 11, 5, 6, 7, 8, 9, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86strict_Fmadd:{ *:[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:{ *:[iPTR] }:$src3)
/*541204*/            /*SwitchOpcode*/ 55, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->541262
/*541207*/              OPC_CheckChild0Same, 0,
/*541209*/              OPC_CheckChild1Integer, 0, 
/*541211*/              OPC_MoveParent,
/*541212*/              OPC_MoveChild3,
/*541213*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*541216*/              OPC_RecordMemRef,
/*541217*/              OPC_RecordNode, // #3 = 'ld' chained node
/*541218*/              OPC_CheckFoldableChainNode,
/*541219*/              OPC_RecordChild1, // #4 = $src3
/*541220*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*541222*/              OPC_CheckPredicate, 9, // Predicate_load
/*541224*/              OPC_MoveParent,
/*541225*/              OPC_CheckType, MVT::f64,
/*541227*/              OPC_MoveParent,
/*541228*/              OPC_MoveParent,
/*541229*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*541231*/              OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*541234*/              OPC_EmitMergeInputChains, 2, 1, 3, 
/*541238*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*541241*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 2, 10,  // Results = #11
/*541249*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SDZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 7/*#Ops*/, 0, 11, 5, 6, 7, 8, 9, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86strict_Fmadd:{ *:[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:{ *:[iPTR] }:$src3)
/*541262*/            0, // EndSwitchOpcode
/*541263*/          /*Scope*/ 60, /*->541324*/
/*541264*/            OPC_MoveChild1,
/*541265*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*541268*/            OPC_CheckChild0Same, 0,
/*541270*/            OPC_CheckChild1Integer, 0, 
/*541272*/            OPC_MoveParent,
/*541273*/            OPC_MoveChild2,
/*541274*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*541277*/            OPC_RecordMemRef,
/*541278*/            OPC_RecordNode, // #2 = 'ld' chained node
/*541279*/            OPC_CheckFoldableChainNode,
/*541280*/            OPC_RecordChild1, // #3 = $src3
/*541281*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*541283*/            OPC_CheckPredicate, 9, // Predicate_load
/*541285*/            OPC_MoveParent,
/*541286*/            OPC_RecordChild3, // #4 = $src2
/*541287*/            OPC_CheckType, MVT::f64,
/*541289*/            OPC_MoveParent,
/*541290*/            OPC_MoveParent,
/*541291*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*541293*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*541296*/            OPC_EmitMergeInputChains, 2, 1, 2, 
/*541300*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*541303*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 4, 10,  // Results = #11
/*541311*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132SDZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 7/*#Ops*/, 0, 11, 5, 6, 7, 8, 9, 
                      // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86strict_Fmadd:{ *:[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:{ *:[iPTR] }:$src3)
/*541324*/          /*Scope*/ 60, /*->541385*/
/*541325*/            OPC_RecordChild1, // #2 = $src2
/*541326*/            OPC_MoveChild2,
/*541327*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*541330*/            OPC_RecordMemRef,
/*541331*/            OPC_RecordNode, // #3 = 'ld' chained node
/*541332*/            OPC_CheckFoldableChainNode,
/*541333*/            OPC_RecordChild1, // #4 = $src3
/*541334*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*541336*/            OPC_CheckPredicate, 9, // Predicate_load
/*541338*/            OPC_MoveParent,
/*541339*/            OPC_MoveChild3,
/*541340*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*541343*/            OPC_CheckChild0Same, 0,
/*541345*/            OPC_CheckChild1Integer, 0, 
/*541347*/            OPC_MoveParent,
/*541348*/            OPC_CheckType, MVT::f64,
/*541350*/            OPC_MoveParent,
/*541351*/            OPC_MoveParent,
/*541352*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*541354*/            OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*541357*/            OPC_EmitMergeInputChains, 2, 1, 3, 
/*541361*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*541364*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 2, 10,  // Results = #11
/*541372*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SDZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 7/*#Ops*/, 0, 11, 5, 6, 7, 8, 9, 
                      // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86strict_Fmadd:{ *:[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:{ *:[iPTR] }:$src3)
/*541385*/          /*Scope*/ 50|128,2/*306*/, /*->541693*/
/*541387*/            OPC_MoveChild1,
/*541388*/            OPC_SwitchOpcode /*2 cases */, 93, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->541485
/*541392*/              OPC_CheckChild0Same, 0,
/*541394*/              OPC_CheckChild1Integer, 0, 
/*541396*/              OPC_MoveParent,
/*541397*/              OPC_RecordChild2, // #2 = $src2
/*541398*/              OPC_MoveChild3,
/*541399*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*541402*/              OPC_RecordMemRef,
/*541403*/              OPC_RecordNode, // #3 = 'ld' chained node
/*541404*/              OPC_CheckFoldableChainNode,
/*541405*/              OPC_RecordChild1, // #4 = $src3
/*541406*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*541408*/              OPC_CheckPredicate, 9, // Predicate_load
/*541410*/              OPC_MoveParent,
/*541411*/              OPC_CheckType, MVT::f64,
/*541413*/              OPC_MoveParent,
/*541414*/              OPC_MoveParent,
/*541415*/              OPC_Scope, 33, /*->541450*/ // 2 children in Scope
/*541417*/                OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*541419*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*541422*/                OPC_EmitMergeInputChains, 2, 1, 3, 
/*541426*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*541429*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 10,  // Results = #11
/*541437*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SDm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86strict_Fmadd:{ *:[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:{ *:[iPTR] }:$src3)
/*541450*/              /*Scope*/ 33, /*->541484*/
/*541451*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*541453*/                OPC_CheckComplexPat, /*CP*/0, /*#*/4, // selectAddr:$src3 #5 #6 #7 #8 #9
/*541456*/                OPC_EmitMergeInputChains, 2, 1, 3, 
/*541460*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*541463*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 10,  // Results = #11
/*541471*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SDZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86strict_Fmadd:{ *:[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:{ *:[iPTR] }:$src3)
/*541484*/              0, /*End of Scope*/
/*541485*/            /*SwitchOpcode*/ 75|128,1/*203*/, TARGET_VAL(ISD::LOAD),// ->541692
/*541489*/              OPC_RecordMemRef,
/*541490*/              OPC_RecordNode, // #2 = 'ld' chained node
/*541491*/              OPC_CheckFoldableChainNode,
/*541492*/              OPC_RecordChild1, // #3 = $src3
/*541493*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*541495*/              OPC_CheckPredicate, 9, // Predicate_load
/*541497*/              OPC_MoveParent,
/*541498*/              OPC_Scope, 47, /*->541547*/ // 4 children in Scope
/*541500*/                OPC_MoveChild2,
/*541501*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*541504*/                OPC_CheckChild0Same, 0,
/*541506*/                OPC_CheckChild1Integer, 0, 
/*541508*/                OPC_MoveParent,
/*541509*/                OPC_RecordChild3, // #4 = $src2
/*541510*/                OPC_CheckType, MVT::f64,
/*541512*/                OPC_MoveParent,
/*541513*/                OPC_MoveParent,
/*541514*/                OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*541516*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*541519*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*541523*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*541526*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 4, 10,  // Results = #11
/*541534*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132SDm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86strict_Fmadd:{ *:[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:{ *:[iPTR] }:$src3)
/*541547*/              /*Scope*/ 47, /*->541595*/
/*541548*/                OPC_RecordChild2, // #4 = $src2
/*541549*/                OPC_MoveChild3,
/*541550*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*541553*/                OPC_CheckChild0Same, 0,
/*541555*/                OPC_CheckChild1Integer, 0, 
/*541557*/                OPC_MoveParent,
/*541558*/                OPC_CheckType, MVT::f64,
/*541560*/                OPC_MoveParent,
/*541561*/                OPC_MoveParent,
/*541562*/                OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*541564*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*541567*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*541571*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*541574*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 4, 10,  // Results = #11
/*541582*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SDm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86strict_Fmadd:{ *:[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:{ *:[iPTR] }:$src3)
/*541595*/              /*Scope*/ 47, /*->541643*/
/*541596*/                OPC_MoveChild2,
/*541597*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*541600*/                OPC_CheckChild0Same, 0,
/*541602*/                OPC_CheckChild1Integer, 0, 
/*541604*/                OPC_MoveParent,
/*541605*/                OPC_RecordChild3, // #4 = $src2
/*541606*/                OPC_CheckType, MVT::f64,
/*541608*/                OPC_MoveParent,
/*541609*/                OPC_MoveParent,
/*541610*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*541612*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*541615*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*541619*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*541622*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 4, 10,  // Results = #11
/*541630*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD132SDZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86strict_Fmadd:{ *:[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:{ *:[iPTR] }:$src3)
/*541643*/              /*Scope*/ 47, /*->541691*/
/*541644*/                OPC_RecordChild2, // #4 = $src2
/*541645*/                OPC_MoveChild3,
/*541646*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*541649*/                OPC_CheckChild0Same, 0,
/*541651*/                OPC_CheckChild1Integer, 0, 
/*541653*/                OPC_MoveParent,
/*541654*/                OPC_CheckType, MVT::f64,
/*541656*/                OPC_MoveParent,
/*541657*/                OPC_MoveParent,
/*541658*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*541660*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*541663*/                OPC_EmitMergeInputChains, 2, 1, 2, 
/*541667*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*541670*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 4, 10,  // Results = #11
/*541678*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SDZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                              MVT::v2f64, 7/*#Ops*/, 0, 11, 5, 6, 7, 8, 9, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86strict_Fmadd:{ *:[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:{ *:[iPTR] }:$src3)
/*541691*/              0, /*End of Scope*/
/*541692*/            0, // EndSwitchOpcode
/*541693*/          0, /*End of Scope*/
/*541694*/        /*SwitchOpcode*/ 127|128,4/*639*/, TARGET_VAL(ISD::FMA),// ->542337
/*541698*/          OPC_Scope, 57, /*->541757*/ // 6 children in Scope
/*541700*/            OPC_RecordChild0, // #1 = $src2
/*541701*/            OPC_MoveChild1,
/*541702*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*541705*/            OPC_CheckChild0Same, 0,
/*541707*/            OPC_CheckChild1Integer, 0, 
/*541709*/            OPC_MoveParent,
/*541710*/            OPC_MoveChild2,
/*541711*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*541714*/            OPC_RecordMemRef,
/*541715*/            OPC_RecordNode, // #2 = 'ld' chained node
/*541716*/            OPC_CheckFoldableChainNode,
/*541717*/            OPC_RecordChild1, // #3 = $src3
/*541718*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*541720*/            OPC_CheckPredicate, 9, // Predicate_load
/*541722*/            OPC_MoveParent,
/*541723*/            OPC_CheckType, MVT::f64,
/*541725*/            OPC_MoveParent,
/*541726*/            OPC_MoveParent,
/*541727*/            OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*541729*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*541732*/            OPC_EmitMergeInputChains1_2,
/*541733*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*541736*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 1, 9,  // Results = #10
/*541744*/            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:{ *:[iPTR] }:$src3)
/*541757*/          /*Scope*/ 57, /*->541815*/
/*541758*/            OPC_MoveChild0,
/*541759*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*541762*/            OPC_CheckChild0Same, 0,
/*541764*/            OPC_CheckChild1Integer, 0, 
/*541766*/            OPC_MoveParent,
/*541767*/            OPC_MoveChild1,
/*541768*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*541771*/            OPC_RecordMemRef,
/*541772*/            OPC_RecordNode, // #1 = 'ld' chained node
/*541773*/            OPC_CheckFoldableChainNode,
/*541774*/            OPC_RecordChild1, // #2 = $src3
/*541775*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*541777*/            OPC_CheckPredicate, 9, // Predicate_load
/*541779*/            OPC_MoveParent,
/*541780*/            OPC_RecordChild2, // #3 = $src2
/*541781*/            OPC_CheckType, MVT::f64,
/*541783*/            OPC_MoveParent,
/*541784*/            OPC_MoveParent,
/*541785*/            OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*541787*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*541790*/            OPC_EmitMergeInputChains1_1,
/*541791*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*541794*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 3, 9,  // Results = #10
/*541802*/            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:{ *:[iPTR] }:$src3)
/*541815*/          /*Scope*/ 114, /*->541930*/
/*541816*/            OPC_RecordChild0, // #1 = $src2
/*541817*/            OPC_MoveChild1,
/*541818*/            OPC_SwitchOpcode /*2 cases */, 52, TARGET_VAL(ISD::LOAD),// ->541874
/*541822*/              OPC_RecordMemRef,
/*541823*/              OPC_RecordNode, // #2 = 'ld' chained node
/*541824*/              OPC_CheckFoldableChainNode,
/*541825*/              OPC_RecordChild1, // #3 = $src3
/*541826*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*541828*/              OPC_CheckPredicate, 9, // Predicate_load
/*541830*/              OPC_MoveParent,
/*541831*/              OPC_MoveChild2,
/*541832*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*541835*/              OPC_CheckChild0Same, 0,
/*541837*/              OPC_CheckChild1Integer, 0, 
/*541839*/              OPC_MoveParent,
/*541840*/              OPC_CheckType, MVT::f64,
/*541842*/              OPC_MoveParent,
/*541843*/              OPC_MoveParent,
/*541844*/              OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*541846*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*541849*/              OPC_EmitMergeInputChains1_2,
/*541850*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*541853*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 9,  // Results = #10
/*541861*/              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:{ *:[iPTR] }:$src3)
/*541874*/            /*SwitchOpcode*/ 52, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->541929
/*541877*/              OPC_CheckChild0Same, 0,
/*541879*/              OPC_CheckChild1Integer, 0, 
/*541881*/              OPC_MoveParent,
/*541882*/              OPC_MoveChild2,
/*541883*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*541886*/              OPC_RecordMemRef,
/*541887*/              OPC_RecordNode, // #2 = 'ld' chained node
/*541888*/              OPC_CheckFoldableChainNode,
/*541889*/              OPC_RecordChild1, // #3 = $src3
/*541890*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*541892*/              OPC_CheckPredicate, 9, // Predicate_load
/*541894*/              OPC_MoveParent,
/*541895*/              OPC_CheckType, MVT::f64,
/*541897*/              OPC_MoveParent,
/*541898*/              OPC_MoveParent,
/*541899*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*541901*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*541904*/              OPC_EmitMergeInputChains1_2,
/*541905*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*541908*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 9,  // Results = #10
/*541916*/              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:{ *:[iPTR] }:$src3)
/*541929*/            0, // EndSwitchOpcode
/*541930*/          /*Scope*/ 57, /*->541988*/
/*541931*/            OPC_MoveChild0,
/*541932*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*541935*/            OPC_CheckChild0Same, 0,
/*541937*/            OPC_CheckChild1Integer, 0, 
/*541939*/            OPC_MoveParent,
/*541940*/            OPC_MoveChild1,
/*541941*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*541944*/            OPC_RecordMemRef,
/*541945*/            OPC_RecordNode, // #1 = 'ld' chained node
/*541946*/            OPC_CheckFoldableChainNode,
/*541947*/            OPC_RecordChild1, // #2 = $src3
/*541948*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*541950*/            OPC_CheckPredicate, 9, // Predicate_load
/*541952*/            OPC_MoveParent,
/*541953*/            OPC_RecordChild2, // #3 = $src2
/*541954*/            OPC_CheckType, MVT::f64,
/*541956*/            OPC_MoveParent,
/*541957*/            OPC_MoveParent,
/*541958*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*541960*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*541963*/            OPC_EmitMergeInputChains1_1,
/*541964*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*541967*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 3, 9,  // Results = #10
/*541975*/            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:{ *:[iPTR] }:$src3)
/*541988*/          /*Scope*/ 57, /*->542046*/
/*541989*/            OPC_RecordChild0, // #1 = $src2
/*541990*/            OPC_MoveChild1,
/*541991*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*541994*/            OPC_RecordMemRef,
/*541995*/            OPC_RecordNode, // #2 = 'ld' chained node
/*541996*/            OPC_CheckFoldableChainNode,
/*541997*/            OPC_RecordChild1, // #3 = $src3
/*541998*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*542000*/            OPC_CheckPredicate, 9, // Predicate_load
/*542002*/            OPC_MoveParent,
/*542003*/            OPC_MoveChild2,
/*542004*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*542007*/            OPC_CheckChild0Same, 0,
/*542009*/            OPC_CheckChild1Integer, 0, 
/*542011*/            OPC_MoveParent,
/*542012*/            OPC_CheckType, MVT::f64,
/*542014*/            OPC_MoveParent,
/*542015*/            OPC_MoveParent,
/*542016*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*542018*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*542021*/            OPC_EmitMergeInputChains1_2,
/*542022*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*542025*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 1, 9,  // Results = #10
/*542033*/            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:{ *:[iPTR] }:$src3)
/*542046*/          /*Scope*/ 32|128,2/*288*/, /*->542336*/
/*542048*/            OPC_MoveChild0,
/*542049*/            OPC_SwitchOpcode /*2 cases */, 87, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->542140
/*542053*/              OPC_CheckChild0Same, 0,
/*542055*/              OPC_CheckChild1Integer, 0, 
/*542057*/              OPC_MoveParent,
/*542058*/              OPC_RecordChild1, // #1 = $src2
/*542059*/              OPC_MoveChild2,
/*542060*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*542063*/              OPC_RecordMemRef,
/*542064*/              OPC_RecordNode, // #2 = 'ld' chained node
/*542065*/              OPC_CheckFoldableChainNode,
/*542066*/              OPC_RecordChild1, // #3 = $src3
/*542067*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*542069*/              OPC_CheckPredicate, 9, // Predicate_load
/*542071*/              OPC_MoveParent,
/*542072*/              OPC_CheckType, MVT::f64,
/*542074*/              OPC_MoveParent,
/*542075*/              OPC_MoveParent,
/*542076*/              OPC_Scope, 30, /*->542108*/ // 2 children in Scope
/*542078*/                OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*542080*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*542083*/                OPC_EmitMergeInputChains1_2,
/*542084*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*542087*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 1, 9,  // Results = #10
/*542095*/                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:{ *:[iPTR] }:$src3)
/*542108*/              /*Scope*/ 30, /*->542139*/
/*542109*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*542111*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*542114*/                OPC_EmitMergeInputChains1_2,
/*542115*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*542118*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 1, 9,  // Results = #10
/*542126*/                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:{ *:[iPTR] }:$src3)
/*542139*/              0, /*End of Scope*/
/*542140*/            /*SwitchOpcode*/ 63|128,1/*191*/, TARGET_VAL(ISD::LOAD),// ->542335
/*542144*/              OPC_RecordMemRef,
/*542145*/              OPC_RecordNode, // #1 = 'ld' chained node
/*542146*/              OPC_CheckFoldableChainNode,
/*542147*/              OPC_RecordChild1, // #2 = $src3
/*542148*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*542150*/              OPC_CheckPredicate, 9, // Predicate_load
/*542152*/              OPC_MoveParent,
/*542153*/              OPC_Scope, 44, /*->542199*/ // 4 children in Scope
/*542155*/                OPC_MoveChild1,
/*542156*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*542159*/                OPC_CheckChild0Same, 0,
/*542161*/                OPC_CheckChild1Integer, 0, 
/*542163*/                OPC_MoveParent,
/*542164*/                OPC_RecordChild2, // #3 = $src2
/*542165*/                OPC_CheckType, MVT::f64,
/*542167*/                OPC_MoveParent,
/*542168*/                OPC_MoveParent,
/*542169*/                OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*542171*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*542174*/                OPC_EmitMergeInputChains1_1,
/*542175*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*542178*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 9,  // Results = #10
/*542186*/                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:{ *:[iPTR] }:$src3)
/*542199*/              /*Scope*/ 44, /*->542244*/
/*542200*/                OPC_RecordChild1, // #3 = $src2
/*542201*/                OPC_MoveChild2,
/*542202*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*542205*/                OPC_CheckChild0Same, 0,
/*542207*/                OPC_CheckChild1Integer, 0, 
/*542209*/                OPC_MoveParent,
/*542210*/                OPC_CheckType, MVT::f64,
/*542212*/                OPC_MoveParent,
/*542213*/                OPC_MoveParent,
/*542214*/                OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*542216*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*542219*/                OPC_EmitMergeInputChains1_1,
/*542220*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*542223*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 9,  // Results = #10
/*542231*/                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:{ *:[iPTR] }:$src3)
/*542244*/              /*Scope*/ 44, /*->542289*/
/*542245*/                OPC_MoveChild1,
/*542246*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*542249*/                OPC_CheckChild0Same, 0,
/*542251*/                OPC_CheckChild1Integer, 0, 
/*542253*/                OPC_MoveParent,
/*542254*/                OPC_RecordChild2, // #3 = $src2
/*542255*/                OPC_CheckType, MVT::f64,
/*542257*/                OPC_MoveParent,
/*542258*/                OPC_MoveParent,
/*542259*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*542261*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*542264*/                OPC_EmitMergeInputChains1_1,
/*542265*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*542268*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 9,  // Results = #10
/*542276*/                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:{ *:[iPTR] }:$src3)
/*542289*/              /*Scope*/ 44, /*->542334*/
/*542290*/                OPC_RecordChild1, // #3 = $src2
/*542291*/                OPC_MoveChild2,
/*542292*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*542295*/                OPC_CheckChild0Same, 0,
/*542297*/                OPC_CheckChild1Integer, 0, 
/*542299*/                OPC_MoveParent,
/*542300*/                OPC_CheckType, MVT::f64,
/*542302*/                OPC_MoveParent,
/*542303*/                OPC_MoveParent,
/*542304*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*542306*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*542309*/                OPC_EmitMergeInputChains1_1,
/*542310*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*542313*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 9,  // Results = #10
/*542321*/                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:{ *:[iPTR] }:$src3)
/*542334*/              0, /*End of Scope*/
/*542335*/            0, // EndSwitchOpcode
/*542336*/          0, /*End of Scope*/
/*542337*/        /*SwitchOpcode*/ 127|128,4/*639*/, TARGET_VAL(X86ISD::FMSUB),// ->542980
/*542341*/          OPC_Scope, 57, /*->542400*/ // 6 children in Scope
/*542343*/            OPC_RecordChild0, // #1 = $src2
/*542344*/            OPC_MoveChild1,
/*542345*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*542348*/            OPC_CheckChild0Same, 0,
/*542350*/            OPC_CheckChild1Integer, 0, 
/*542352*/            OPC_MoveParent,
/*542353*/            OPC_MoveChild2,
/*542354*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*542357*/            OPC_RecordMemRef,
/*542358*/            OPC_RecordNode, // #2 = 'ld' chained node
/*542359*/            OPC_CheckFoldableChainNode,
/*542360*/            OPC_RecordChild1, // #3 = $src3
/*542361*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*542363*/            OPC_CheckPredicate, 9, // Predicate_load
/*542365*/            OPC_MoveParent,
/*542366*/            OPC_CheckType, MVT::f64,
/*542368*/            OPC_MoveParent,
/*542369*/            OPC_MoveParent,
/*542370*/            OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*542372*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*542375*/            OPC_EmitMergeInputChains1_2,
/*542376*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*542379*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 1, 9,  // Results = #10
/*542387*/            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:{ *:[iPTR] }:$src3)
/*542400*/          /*Scope*/ 57, /*->542458*/
/*542401*/            OPC_MoveChild0,
/*542402*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*542405*/            OPC_CheckChild0Same, 0,
/*542407*/            OPC_CheckChild1Integer, 0, 
/*542409*/            OPC_MoveParent,
/*542410*/            OPC_MoveChild1,
/*542411*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*542414*/            OPC_RecordMemRef,
/*542415*/            OPC_RecordNode, // #1 = 'ld' chained node
/*542416*/            OPC_CheckFoldableChainNode,
/*542417*/            OPC_RecordChild1, // #2 = $src3
/*542418*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*542420*/            OPC_CheckPredicate, 9, // Predicate_load
/*542422*/            OPC_MoveParent,
/*542423*/            OPC_RecordChild2, // #3 = $src2
/*542424*/            OPC_CheckType, MVT::f64,
/*542426*/            OPC_MoveParent,
/*542427*/            OPC_MoveParent,
/*542428*/            OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*542430*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*542433*/            OPC_EmitMergeInputChains1_1,
/*542434*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*542437*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 3, 9,  // Results = #10
/*542445*/            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:{ *:[iPTR] }:$src3)
/*542458*/          /*Scope*/ 114, /*->542573*/
/*542459*/            OPC_RecordChild0, // #1 = $src2
/*542460*/            OPC_MoveChild1,
/*542461*/            OPC_SwitchOpcode /*2 cases */, 52, TARGET_VAL(ISD::LOAD),// ->542517
/*542465*/              OPC_RecordMemRef,
/*542466*/              OPC_RecordNode, // #2 = 'ld' chained node
/*542467*/              OPC_CheckFoldableChainNode,
/*542468*/              OPC_RecordChild1, // #3 = $src3
/*542469*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*542471*/              OPC_CheckPredicate, 9, // Predicate_load
/*542473*/              OPC_MoveParent,
/*542474*/              OPC_MoveChild2,
/*542475*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*542478*/              OPC_CheckChild0Same, 0,
/*542480*/              OPC_CheckChild1Integer, 0, 
/*542482*/              OPC_MoveParent,
/*542483*/              OPC_CheckType, MVT::f64,
/*542485*/              OPC_MoveParent,
/*542486*/              OPC_MoveParent,
/*542487*/              OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*542489*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*542492*/              OPC_EmitMergeInputChains1_2,
/*542493*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*542496*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 9,  // Results = #10
/*542504*/              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:{ *:[iPTR] }:$src3)
/*542517*/            /*SwitchOpcode*/ 52, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->542572
/*542520*/              OPC_CheckChild0Same, 0,
/*542522*/              OPC_CheckChild1Integer, 0, 
/*542524*/              OPC_MoveParent,
/*542525*/              OPC_MoveChild2,
/*542526*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*542529*/              OPC_RecordMemRef,
/*542530*/              OPC_RecordNode, // #2 = 'ld' chained node
/*542531*/              OPC_CheckFoldableChainNode,
/*542532*/              OPC_RecordChild1, // #3 = $src3
/*542533*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*542535*/              OPC_CheckPredicate, 9, // Predicate_load
/*542537*/              OPC_MoveParent,
/*542538*/              OPC_CheckType, MVT::f64,
/*542540*/              OPC_MoveParent,
/*542541*/              OPC_MoveParent,
/*542542*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*542544*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*542547*/              OPC_EmitMergeInputChains1_2,
/*542548*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*542551*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 9,  // Results = #10
/*542559*/              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:{ *:[iPTR] }:$src3)
/*542572*/            0, // EndSwitchOpcode
/*542573*/          /*Scope*/ 57, /*->542631*/
/*542574*/            OPC_MoveChild0,
/*542575*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*542578*/            OPC_CheckChild0Same, 0,
/*542580*/            OPC_CheckChild1Integer, 0, 
/*542582*/            OPC_MoveParent,
/*542583*/            OPC_MoveChild1,
/*542584*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*542587*/            OPC_RecordMemRef,
/*542588*/            OPC_RecordNode, // #1 = 'ld' chained node
/*542589*/            OPC_CheckFoldableChainNode,
/*542590*/            OPC_RecordChild1, // #2 = $src3
/*542591*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*542593*/            OPC_CheckPredicate, 9, // Predicate_load
/*542595*/            OPC_MoveParent,
/*542596*/            OPC_RecordChild2, // #3 = $src2
/*542597*/            OPC_CheckType, MVT::f64,
/*542599*/            OPC_MoveParent,
/*542600*/            OPC_MoveParent,
/*542601*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*542603*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*542606*/            OPC_EmitMergeInputChains1_1,
/*542607*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*542610*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 3, 9,  // Results = #10
/*542618*/            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:{ *:[iPTR] }:$src3)
/*542631*/          /*Scope*/ 57, /*->542689*/
/*542632*/            OPC_RecordChild0, // #1 = $src2
/*542633*/            OPC_MoveChild1,
/*542634*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*542637*/            OPC_RecordMemRef,
/*542638*/            OPC_RecordNode, // #2 = 'ld' chained node
/*542639*/            OPC_CheckFoldableChainNode,
/*542640*/            OPC_RecordChild1, // #3 = $src3
/*542641*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*542643*/            OPC_CheckPredicate, 9, // Predicate_load
/*542645*/            OPC_MoveParent,
/*542646*/            OPC_MoveChild2,
/*542647*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*542650*/            OPC_CheckChild0Same, 0,
/*542652*/            OPC_CheckChild1Integer, 0, 
/*542654*/            OPC_MoveParent,
/*542655*/            OPC_CheckType, MVT::f64,
/*542657*/            OPC_MoveParent,
/*542658*/            OPC_MoveParent,
/*542659*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*542661*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*542664*/            OPC_EmitMergeInputChains1_2,
/*542665*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*542668*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 1, 9,  // Results = #10
/*542676*/            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:{ *:[iPTR] }:$src3)
/*542689*/          /*Scope*/ 32|128,2/*288*/, /*->542979*/
/*542691*/            OPC_MoveChild0,
/*542692*/            OPC_SwitchOpcode /*2 cases */, 87, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->542783
/*542696*/              OPC_CheckChild0Same, 0,
/*542698*/              OPC_CheckChild1Integer, 0, 
/*542700*/              OPC_MoveParent,
/*542701*/              OPC_RecordChild1, // #1 = $src2
/*542702*/              OPC_MoveChild2,
/*542703*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*542706*/              OPC_RecordMemRef,
/*542707*/              OPC_RecordNode, // #2 = 'ld' chained node
/*542708*/              OPC_CheckFoldableChainNode,
/*542709*/              OPC_RecordChild1, // #3 = $src3
/*542710*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*542712*/              OPC_CheckPredicate, 9, // Predicate_load
/*542714*/              OPC_MoveParent,
/*542715*/              OPC_CheckType, MVT::f64,
/*542717*/              OPC_MoveParent,
/*542718*/              OPC_MoveParent,
/*542719*/              OPC_Scope, 30, /*->542751*/ // 2 children in Scope
/*542721*/                OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*542723*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*542726*/                OPC_EmitMergeInputChains1_2,
/*542727*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*542730*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 1, 9,  // Results = #10
/*542738*/                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:{ *:[iPTR] }:$src3)
/*542751*/              /*Scope*/ 30, /*->542782*/
/*542752*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*542754*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*542757*/                OPC_EmitMergeInputChains1_2,
/*542758*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*542761*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 1, 9,  // Results = #10
/*542769*/                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:{ *:[iPTR] }:$src3)
/*542782*/              0, /*End of Scope*/
/*542783*/            /*SwitchOpcode*/ 63|128,1/*191*/, TARGET_VAL(ISD::LOAD),// ->542978
/*542787*/              OPC_RecordMemRef,
/*542788*/              OPC_RecordNode, // #1 = 'ld' chained node
/*542789*/              OPC_CheckFoldableChainNode,
/*542790*/              OPC_RecordChild1, // #2 = $src3
/*542791*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*542793*/              OPC_CheckPredicate, 9, // Predicate_load
/*542795*/              OPC_MoveParent,
/*542796*/              OPC_Scope, 44, /*->542842*/ // 4 children in Scope
/*542798*/                OPC_MoveChild1,
/*542799*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*542802*/                OPC_CheckChild0Same, 0,
/*542804*/                OPC_CheckChild1Integer, 0, 
/*542806*/                OPC_MoveParent,
/*542807*/                OPC_RecordChild2, // #3 = $src2
/*542808*/                OPC_CheckType, MVT::f64,
/*542810*/                OPC_MoveParent,
/*542811*/                OPC_MoveParent,
/*542812*/                OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*542814*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*542817*/                OPC_EmitMergeInputChains1_1,
/*542818*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*542821*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 9,  // Results = #10
/*542829*/                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:{ *:[iPTR] }:$src3)
/*542842*/              /*Scope*/ 44, /*->542887*/
/*542843*/                OPC_RecordChild1, // #3 = $src2
/*542844*/                OPC_MoveChild2,
/*542845*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*542848*/                OPC_CheckChild0Same, 0,
/*542850*/                OPC_CheckChild1Integer, 0, 
/*542852*/                OPC_MoveParent,
/*542853*/                OPC_CheckType, MVT::f64,
/*542855*/                OPC_MoveParent,
/*542856*/                OPC_MoveParent,
/*542857*/                OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*542859*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*542862*/                OPC_EmitMergeInputChains1_1,
/*542863*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*542866*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 9,  // Results = #10
/*542874*/                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:{ *:[iPTR] }:$src3)
/*542887*/              /*Scope*/ 44, /*->542932*/
/*542888*/                OPC_MoveChild1,
/*542889*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*542892*/                OPC_CheckChild0Same, 0,
/*542894*/                OPC_CheckChild1Integer, 0, 
/*542896*/                OPC_MoveParent,
/*542897*/                OPC_RecordChild2, // #3 = $src2
/*542898*/                OPC_CheckType, MVT::f64,
/*542900*/                OPC_MoveParent,
/*542901*/                OPC_MoveParent,
/*542902*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*542904*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*542907*/                OPC_EmitMergeInputChains1_1,
/*542908*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*542911*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 9,  // Results = #10
/*542919*/                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:{ *:[iPTR] }:$src3)
/*542932*/              /*Scope*/ 44, /*->542977*/
/*542933*/                OPC_RecordChild1, // #3 = $src2
/*542934*/                OPC_MoveChild2,
/*542935*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*542938*/                OPC_CheckChild0Same, 0,
/*542940*/                OPC_CheckChild1Integer, 0, 
/*542942*/                OPC_MoveParent,
/*542943*/                OPC_CheckType, MVT::f64,
/*542945*/                OPC_MoveParent,
/*542946*/                OPC_MoveParent,
/*542947*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*542949*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*542952*/                OPC_EmitMergeInputChains1_1,
/*542953*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*542956*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 9,  // Results = #10
/*542964*/                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:{ *:[iPTR] }:$src3)
/*542977*/              0, /*End of Scope*/
/*542978*/            0, // EndSwitchOpcode
/*542979*/          0, /*End of Scope*/
/*542980*/        /*SwitchOpcode*/ 127|128,4/*639*/, TARGET_VAL(X86ISD::FNMADD),// ->543623
/*542984*/          OPC_Scope, 57, /*->543043*/ // 6 children in Scope
/*542986*/            OPC_RecordChild0, // #1 = $src2
/*542987*/            OPC_MoveChild1,
/*542988*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*542991*/            OPC_CheckChild0Same, 0,
/*542993*/            OPC_CheckChild1Integer, 0, 
/*542995*/            OPC_MoveParent,
/*542996*/            OPC_MoveChild2,
/*542997*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*543000*/            OPC_RecordMemRef,
/*543001*/            OPC_RecordNode, // #2 = 'ld' chained node
/*543002*/            OPC_CheckFoldableChainNode,
/*543003*/            OPC_RecordChild1, // #3 = $src3
/*543004*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*543006*/            OPC_CheckPredicate, 9, // Predicate_load
/*543008*/            OPC_MoveParent,
/*543009*/            OPC_CheckType, MVT::f64,
/*543011*/            OPC_MoveParent,
/*543012*/            OPC_MoveParent,
/*543013*/            OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*543015*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*543018*/            OPC_EmitMergeInputChains1_2,
/*543019*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*543022*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 1, 9,  // Results = #10
/*543030*/            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:{ *:[iPTR] }:$src3)
/*543043*/          /*Scope*/ 57, /*->543101*/
/*543044*/            OPC_MoveChild0,
/*543045*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*543048*/            OPC_CheckChild0Same, 0,
/*543050*/            OPC_CheckChild1Integer, 0, 
/*543052*/            OPC_MoveParent,
/*543053*/            OPC_MoveChild1,
/*543054*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*543057*/            OPC_RecordMemRef,
/*543058*/            OPC_RecordNode, // #1 = 'ld' chained node
/*543059*/            OPC_CheckFoldableChainNode,
/*543060*/            OPC_RecordChild1, // #2 = $src3
/*543061*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*543063*/            OPC_CheckPredicate, 9, // Predicate_load
/*543065*/            OPC_MoveParent,
/*543066*/            OPC_RecordChild2, // #3 = $src2
/*543067*/            OPC_CheckType, MVT::f64,
/*543069*/            OPC_MoveParent,
/*543070*/            OPC_MoveParent,
/*543071*/            OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*543073*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*543076*/            OPC_EmitMergeInputChains1_1,
/*543077*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*543080*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 3, 9,  // Results = #10
/*543088*/            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:{ *:[iPTR] }:$src3)
/*543101*/          /*Scope*/ 114, /*->543216*/
/*543102*/            OPC_RecordChild0, // #1 = $src2
/*543103*/            OPC_MoveChild1,
/*543104*/            OPC_SwitchOpcode /*2 cases */, 52, TARGET_VAL(ISD::LOAD),// ->543160
/*543108*/              OPC_RecordMemRef,
/*543109*/              OPC_RecordNode, // #2 = 'ld' chained node
/*543110*/              OPC_CheckFoldableChainNode,
/*543111*/              OPC_RecordChild1, // #3 = $src3
/*543112*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*543114*/              OPC_CheckPredicate, 9, // Predicate_load
/*543116*/              OPC_MoveParent,
/*543117*/              OPC_MoveChild2,
/*543118*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*543121*/              OPC_CheckChild0Same, 0,
/*543123*/              OPC_CheckChild1Integer, 0, 
/*543125*/              OPC_MoveParent,
/*543126*/              OPC_CheckType, MVT::f64,
/*543128*/              OPC_MoveParent,
/*543129*/              OPC_MoveParent,
/*543130*/              OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*543132*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*543135*/              OPC_EmitMergeInputChains1_2,
/*543136*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*543139*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 9,  // Results = #10
/*543147*/              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:{ *:[iPTR] }:$src3)
/*543160*/            /*SwitchOpcode*/ 52, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->543215
/*543163*/              OPC_CheckChild0Same, 0,
/*543165*/              OPC_CheckChild1Integer, 0, 
/*543167*/              OPC_MoveParent,
/*543168*/              OPC_MoveChild2,
/*543169*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*543172*/              OPC_RecordMemRef,
/*543173*/              OPC_RecordNode, // #2 = 'ld' chained node
/*543174*/              OPC_CheckFoldableChainNode,
/*543175*/              OPC_RecordChild1, // #3 = $src3
/*543176*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*543178*/              OPC_CheckPredicate, 9, // Predicate_load
/*543180*/              OPC_MoveParent,
/*543181*/              OPC_CheckType, MVT::f64,
/*543183*/              OPC_MoveParent,
/*543184*/              OPC_MoveParent,
/*543185*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*543187*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*543190*/              OPC_EmitMergeInputChains1_2,
/*543191*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*543194*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 9,  // Results = #10
/*543202*/              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:{ *:[iPTR] }:$src3)
/*543215*/            0, // EndSwitchOpcode
/*543216*/          /*Scope*/ 57, /*->543274*/
/*543217*/            OPC_MoveChild0,
/*543218*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*543221*/            OPC_CheckChild0Same, 0,
/*543223*/            OPC_CheckChild1Integer, 0, 
/*543225*/            OPC_MoveParent,
/*543226*/            OPC_MoveChild1,
/*543227*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*543230*/            OPC_RecordMemRef,
/*543231*/            OPC_RecordNode, // #1 = 'ld' chained node
/*543232*/            OPC_CheckFoldableChainNode,
/*543233*/            OPC_RecordChild1, // #2 = $src3
/*543234*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*543236*/            OPC_CheckPredicate, 9, // Predicate_load
/*543238*/            OPC_MoveParent,
/*543239*/            OPC_RecordChild2, // #3 = $src2
/*543240*/            OPC_CheckType, MVT::f64,
/*543242*/            OPC_MoveParent,
/*543243*/            OPC_MoveParent,
/*543244*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*543246*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*543249*/            OPC_EmitMergeInputChains1_1,
/*543250*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*543253*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 3, 9,  // Results = #10
/*543261*/            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:{ *:[iPTR] }:$src3)
/*543274*/          /*Scope*/ 57, /*->543332*/
/*543275*/            OPC_RecordChild0, // #1 = $src2
/*543276*/            OPC_MoveChild1,
/*543277*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*543280*/            OPC_RecordMemRef,
/*543281*/            OPC_RecordNode, // #2 = 'ld' chained node
/*543282*/            OPC_CheckFoldableChainNode,
/*543283*/            OPC_RecordChild1, // #3 = $src3
/*543284*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*543286*/            OPC_CheckPredicate, 9, // Predicate_load
/*543288*/            OPC_MoveParent,
/*543289*/            OPC_MoveChild2,
/*543290*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*543293*/            OPC_CheckChild0Same, 0,
/*543295*/            OPC_CheckChild1Integer, 0, 
/*543297*/            OPC_MoveParent,
/*543298*/            OPC_CheckType, MVT::f64,
/*543300*/            OPC_MoveParent,
/*543301*/            OPC_MoveParent,
/*543302*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*543304*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*543307*/            OPC_EmitMergeInputChains1_2,
/*543308*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*543311*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 1, 9,  // Results = #10
/*543319*/            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:{ *:[iPTR] }:$src3)
/*543332*/          /*Scope*/ 32|128,2/*288*/, /*->543622*/
/*543334*/            OPC_MoveChild0,
/*543335*/            OPC_SwitchOpcode /*2 cases */, 87, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->543426
/*543339*/              OPC_CheckChild0Same, 0,
/*543341*/              OPC_CheckChild1Integer, 0, 
/*543343*/              OPC_MoveParent,
/*543344*/              OPC_RecordChild1, // #1 = $src2
/*543345*/              OPC_MoveChild2,
/*543346*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*543349*/              OPC_RecordMemRef,
/*543350*/              OPC_RecordNode, // #2 = 'ld' chained node
/*543351*/              OPC_CheckFoldableChainNode,
/*543352*/              OPC_RecordChild1, // #3 = $src3
/*543353*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*543355*/              OPC_CheckPredicate, 9, // Predicate_load
/*543357*/              OPC_MoveParent,
/*543358*/              OPC_CheckType, MVT::f64,
/*543360*/              OPC_MoveParent,
/*543361*/              OPC_MoveParent,
/*543362*/              OPC_Scope, 30, /*->543394*/ // 2 children in Scope
/*543364*/                OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*543366*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*543369*/                OPC_EmitMergeInputChains1_2,
/*543370*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*543373*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 1, 9,  // Results = #10
/*543381*/                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:{ *:[iPTR] }:$src3)
/*543394*/              /*Scope*/ 30, /*->543425*/
/*543395*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*543397*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*543400*/                OPC_EmitMergeInputChains1_2,
/*543401*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*543404*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 1, 9,  // Results = #10
/*543412*/                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:{ *:[iPTR] }:$src3)
/*543425*/              0, /*End of Scope*/
/*543426*/            /*SwitchOpcode*/ 63|128,1/*191*/, TARGET_VAL(ISD::LOAD),// ->543621
/*543430*/              OPC_RecordMemRef,
/*543431*/              OPC_RecordNode, // #1 = 'ld' chained node
/*543432*/              OPC_CheckFoldableChainNode,
/*543433*/              OPC_RecordChild1, // #2 = $src3
/*543434*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*543436*/              OPC_CheckPredicate, 9, // Predicate_load
/*543438*/              OPC_MoveParent,
/*543439*/              OPC_Scope, 44, /*->543485*/ // 4 children in Scope
/*543441*/                OPC_MoveChild1,
/*543442*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*543445*/                OPC_CheckChild0Same, 0,
/*543447*/                OPC_CheckChild1Integer, 0, 
/*543449*/                OPC_MoveParent,
/*543450*/                OPC_RecordChild2, // #3 = $src2
/*543451*/                OPC_CheckType, MVT::f64,
/*543453*/                OPC_MoveParent,
/*543454*/                OPC_MoveParent,
/*543455*/                OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*543457*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*543460*/                OPC_EmitMergeInputChains1_1,
/*543461*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*543464*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 9,  // Results = #10
/*543472*/                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:{ *:[iPTR] }:$src3)
/*543485*/              /*Scope*/ 44, /*->543530*/
/*543486*/                OPC_RecordChild1, // #3 = $src2
/*543487*/                OPC_MoveChild2,
/*543488*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*543491*/                OPC_CheckChild0Same, 0,
/*543493*/                OPC_CheckChild1Integer, 0, 
/*543495*/                OPC_MoveParent,
/*543496*/                OPC_CheckType, MVT::f64,
/*543498*/                OPC_MoveParent,
/*543499*/                OPC_MoveParent,
/*543500*/                OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*543502*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*543505*/                OPC_EmitMergeInputChains1_1,
/*543506*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*543509*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 9,  // Results = #10
/*543517*/                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:{ *:[iPTR] }:$src3)
/*543530*/              /*Scope*/ 44, /*->543575*/
/*543531*/                OPC_MoveChild1,
/*543532*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*543535*/                OPC_CheckChild0Same, 0,
/*543537*/                OPC_CheckChild1Integer, 0, 
/*543539*/                OPC_MoveParent,
/*543540*/                OPC_RecordChild2, // #3 = $src2
/*543541*/                OPC_CheckType, MVT::f64,
/*543543*/                OPC_MoveParent,
/*543544*/                OPC_MoveParent,
/*543545*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*543547*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*543550*/                OPC_EmitMergeInputChains1_1,
/*543551*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*543554*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 9,  // Results = #10
/*543562*/                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:{ *:[iPTR] }:$src3)
/*543575*/              /*Scope*/ 44, /*->543620*/
/*543576*/                OPC_RecordChild1, // #3 = $src2
/*543577*/                OPC_MoveChild2,
/*543578*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*543581*/                OPC_CheckChild0Same, 0,
/*543583*/                OPC_CheckChild1Integer, 0, 
/*543585*/                OPC_MoveParent,
/*543586*/                OPC_CheckType, MVT::f64,
/*543588*/                OPC_MoveParent,
/*543589*/                OPC_MoveParent,
/*543590*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*543592*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*543595*/                OPC_EmitMergeInputChains1_1,
/*543596*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*543599*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 9,  // Results = #10
/*543607*/                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:{ *:[iPTR] }:$src3)
/*543620*/              0, /*End of Scope*/
/*543621*/            0, // EndSwitchOpcode
/*543622*/          0, /*End of Scope*/
/*543623*/        /*SwitchOpcode*/ 127|128,4/*639*/, TARGET_VAL(X86ISD::FNMSUB),// ->544266
/*543627*/          OPC_Scope, 57, /*->543686*/ // 6 children in Scope
/*543629*/            OPC_RecordChild0, // #1 = $src2
/*543630*/            OPC_MoveChild1,
/*543631*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*543634*/            OPC_CheckChild0Same, 0,
/*543636*/            OPC_CheckChild1Integer, 0, 
/*543638*/            OPC_MoveParent,
/*543639*/            OPC_MoveChild2,
/*543640*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*543643*/            OPC_RecordMemRef,
/*543644*/            OPC_RecordNode, // #2 = 'ld' chained node
/*543645*/            OPC_CheckFoldableChainNode,
/*543646*/            OPC_RecordChild1, // #3 = $src3
/*543647*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*543649*/            OPC_CheckPredicate, 9, // Predicate_load
/*543651*/            OPC_MoveParent,
/*543652*/            OPC_CheckType, MVT::f64,
/*543654*/            OPC_MoveParent,
/*543655*/            OPC_MoveParent,
/*543656*/            OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*543658*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*543661*/            OPC_EmitMergeInputChains1_2,
/*543662*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*543665*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 1, 9,  // Results = #10
/*543673*/            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:{ *:[iPTR] }:$src3)
/*543686*/          /*Scope*/ 57, /*->543744*/
/*543687*/            OPC_MoveChild0,
/*543688*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*543691*/            OPC_CheckChild0Same, 0,
/*543693*/            OPC_CheckChild1Integer, 0, 
/*543695*/            OPC_MoveParent,
/*543696*/            OPC_MoveChild1,
/*543697*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*543700*/            OPC_RecordMemRef,
/*543701*/            OPC_RecordNode, // #1 = 'ld' chained node
/*543702*/            OPC_CheckFoldableChainNode,
/*543703*/            OPC_RecordChild1, // #2 = $src3
/*543704*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*543706*/            OPC_CheckPredicate, 9, // Predicate_load
/*543708*/            OPC_MoveParent,
/*543709*/            OPC_RecordChild2, // #3 = $src2
/*543710*/            OPC_CheckType, MVT::f64,
/*543712*/            OPC_MoveParent,
/*543713*/            OPC_MoveParent,
/*543714*/            OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*543716*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*543719*/            OPC_EmitMergeInputChains1_1,
/*543720*/            OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*543723*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 3, 9,  // Results = #10
/*543731*/            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:{ *:[iPTR] }:$src3)
/*543744*/          /*Scope*/ 114, /*->543859*/
/*543745*/            OPC_RecordChild0, // #1 = $src2
/*543746*/            OPC_MoveChild1,
/*543747*/            OPC_SwitchOpcode /*2 cases */, 52, TARGET_VAL(ISD::LOAD),// ->543803
/*543751*/              OPC_RecordMemRef,
/*543752*/              OPC_RecordNode, // #2 = 'ld' chained node
/*543753*/              OPC_CheckFoldableChainNode,
/*543754*/              OPC_RecordChild1, // #3 = $src3
/*543755*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*543757*/              OPC_CheckPredicate, 9, // Predicate_load
/*543759*/              OPC_MoveParent,
/*543760*/              OPC_MoveChild2,
/*543761*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*543764*/              OPC_CheckChild0Same, 0,
/*543766*/              OPC_CheckChild1Integer, 0, 
/*543768*/              OPC_MoveParent,
/*543769*/              OPC_CheckType, MVT::f64,
/*543771*/              OPC_MoveParent,
/*543772*/              OPC_MoveParent,
/*543773*/              OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*543775*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*543778*/              OPC_EmitMergeInputChains1_2,
/*543779*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*543782*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 9,  // Results = #10
/*543790*/              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:{ *:[iPTR] }:$src3)
/*543803*/            /*SwitchOpcode*/ 52, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->543858
/*543806*/              OPC_CheckChild0Same, 0,
/*543808*/              OPC_CheckChild1Integer, 0, 
/*543810*/              OPC_MoveParent,
/*543811*/              OPC_MoveChild2,
/*543812*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*543815*/              OPC_RecordMemRef,
/*543816*/              OPC_RecordNode, // #2 = 'ld' chained node
/*543817*/              OPC_CheckFoldableChainNode,
/*543818*/              OPC_RecordChild1, // #3 = $src3
/*543819*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*543821*/              OPC_CheckPredicate, 9, // Predicate_load
/*543823*/              OPC_MoveParent,
/*543824*/              OPC_CheckType, MVT::f64,
/*543826*/              OPC_MoveParent,
/*543827*/              OPC_MoveParent,
/*543828*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*543830*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*543833*/              OPC_EmitMergeInputChains1_2,
/*543834*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*543837*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 9,  // Results = #10
/*543845*/              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:{ *:[iPTR] }:$src3)
/*543858*/            0, // EndSwitchOpcode
/*543859*/          /*Scope*/ 57, /*->543917*/
/*543860*/            OPC_MoveChild0,
/*543861*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*543864*/            OPC_CheckChild0Same, 0,
/*543866*/            OPC_CheckChild1Integer, 0, 
/*543868*/            OPC_MoveParent,
/*543869*/            OPC_MoveChild1,
/*543870*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*543873*/            OPC_RecordMemRef,
/*543874*/            OPC_RecordNode, // #1 = 'ld' chained node
/*543875*/            OPC_CheckFoldableChainNode,
/*543876*/            OPC_RecordChild1, // #2 = $src3
/*543877*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*543879*/            OPC_CheckPredicate, 9, // Predicate_load
/*543881*/            OPC_MoveParent,
/*543882*/            OPC_RecordChild2, // #3 = $src2
/*543883*/            OPC_CheckType, MVT::f64,
/*543885*/            OPC_MoveParent,
/*543886*/            OPC_MoveParent,
/*543887*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*543889*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*543892*/            OPC_EmitMergeInputChains1_1,
/*543893*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*543896*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 3, 9,  // Results = #10
/*543904*/            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:{ *:[iPTR] }:$src3)
/*543917*/          /*Scope*/ 57, /*->543975*/
/*543918*/            OPC_RecordChild0, // #1 = $src2
/*543919*/            OPC_MoveChild1,
/*543920*/            OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*543923*/            OPC_RecordMemRef,
/*543924*/            OPC_RecordNode, // #2 = 'ld' chained node
/*543925*/            OPC_CheckFoldableChainNode,
/*543926*/            OPC_RecordChild1, // #3 = $src3
/*543927*/            OPC_CheckPredicate, 4, // Predicate_unindexedload
/*543929*/            OPC_CheckPredicate, 9, // Predicate_load
/*543931*/            OPC_MoveParent,
/*543932*/            OPC_MoveChild2,
/*543933*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*543936*/            OPC_CheckChild0Same, 0,
/*543938*/            OPC_CheckChild1Integer, 0, 
/*543940*/            OPC_MoveParent,
/*543941*/            OPC_CheckType, MVT::f64,
/*543943*/            OPC_MoveParent,
/*543944*/            OPC_MoveParent,
/*543945*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*543947*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*543950*/            OPC_EmitMergeInputChains1_2,
/*543951*/            OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*543954*/            OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                          MVT::v2f64, 2/*#Ops*/, 1, 9,  // Results = #10
/*543962*/            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:{ *:[iPTR] }:$src3)
/*543975*/          /*Scope*/ 32|128,2/*288*/, /*->544265*/
/*543977*/            OPC_MoveChild0,
/*543978*/            OPC_SwitchOpcode /*2 cases */, 87, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),// ->544069
/*543982*/              OPC_CheckChild0Same, 0,
/*543984*/              OPC_CheckChild1Integer, 0, 
/*543986*/              OPC_MoveParent,
/*543987*/              OPC_RecordChild1, // #1 = $src2
/*543988*/              OPC_MoveChild2,
/*543989*/              OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*543992*/              OPC_RecordMemRef,
/*543993*/              OPC_RecordNode, // #2 = 'ld' chained node
/*543994*/              OPC_CheckFoldableChainNode,
/*543995*/              OPC_RecordChild1, // #3 = $src3
/*543996*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*543998*/              OPC_CheckPredicate, 9, // Predicate_load
/*544000*/              OPC_MoveParent,
/*544001*/              OPC_CheckType, MVT::f64,
/*544003*/              OPC_MoveParent,
/*544004*/              OPC_MoveParent,
/*544005*/              OPC_Scope, 30, /*->544037*/ // 2 children in Scope
/*544007*/                OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*544009*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*544012*/                OPC_EmitMergeInputChains1_2,
/*544013*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*544016*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 1, 9,  // Results = #10
/*544024*/                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:{ *:[iPTR] }:$src3)
/*544037*/              /*Scope*/ 30, /*->544068*/
/*544038*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*544040*/                OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*544043*/                OPC_EmitMergeInputChains1_2,
/*544044*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*544047*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 1, 9,  // Results = #10
/*544055*/                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:{ *:[iPTR] }:$src3)
/*544068*/              0, /*End of Scope*/
/*544069*/            /*SwitchOpcode*/ 63|128,1/*191*/, TARGET_VAL(ISD::LOAD),// ->544264
/*544073*/              OPC_RecordMemRef,
/*544074*/              OPC_RecordNode, // #1 = 'ld' chained node
/*544075*/              OPC_CheckFoldableChainNode,
/*544076*/              OPC_RecordChild1, // #2 = $src3
/*544077*/              OPC_CheckPredicate, 4, // Predicate_unindexedload
/*544079*/              OPC_CheckPredicate, 9, // Predicate_load
/*544081*/              OPC_MoveParent,
/*544082*/              OPC_Scope, 44, /*->544128*/ // 4 children in Scope
/*544084*/                OPC_MoveChild1,
/*544085*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*544088*/                OPC_CheckChild0Same, 0,
/*544090*/                OPC_CheckChild1Integer, 0, 
/*544092*/                OPC_MoveParent,
/*544093*/                OPC_RecordChild2, // #3 = $src2
/*544094*/                OPC_CheckType, MVT::f64,
/*544096*/                OPC_MoveParent,
/*544097*/                OPC_MoveParent,
/*544098*/                OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*544100*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*544103*/                OPC_EmitMergeInputChains1_1,
/*544104*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*544107*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 9,  // Results = #10
/*544115*/                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:{ *:[iPTR] }:$src3)
/*544128*/              /*Scope*/ 44, /*->544173*/
/*544129*/                OPC_RecordChild1, // #3 = $src2
/*544130*/                OPC_MoveChild2,
/*544131*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*544134*/                OPC_CheckChild0Same, 0,
/*544136*/                OPC_CheckChild1Integer, 0, 
/*544138*/                OPC_MoveParent,
/*544139*/                OPC_CheckType, MVT::f64,
/*544141*/                OPC_MoveParent,
/*544142*/                OPC_MoveParent,
/*544143*/                OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*544145*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*544148*/                OPC_EmitMergeInputChains1_1,
/*544149*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*544152*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 9,  // Results = #10
/*544160*/                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:{ *:[iPTR] }:$src3)
/*544173*/              /*Scope*/ 44, /*->544218*/
/*544174*/                OPC_MoveChild1,
/*544175*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*544178*/                OPC_CheckChild0Same, 0,
/*544180*/                OPC_CheckChild1Integer, 0, 
/*544182*/                OPC_MoveParent,
/*544183*/                OPC_RecordChild2, // #3 = $src2
/*544184*/                OPC_CheckType, MVT::f64,
/*544186*/                OPC_MoveParent,
/*544187*/                OPC_MoveParent,
/*544188*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*544190*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*544193*/                OPC_EmitMergeInputChains1_1,
/*544194*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*544197*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 9,  // Results = #10
/*544205*/                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:{ *:[iPTR] }:$src3)
/*544218*/              /*Scope*/ 44, /*->544263*/
/*544219*/                OPC_RecordChild1, // #3 = $src2
/*544220*/                OPC_MoveChild2,
/*544221*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*544224*/                OPC_CheckChild0Same, 0,
/*544226*/                OPC_CheckChild1Integer, 0, 
/*544228*/                OPC_MoveParent,
/*544229*/                OPC_CheckType, MVT::f64,
/*544231*/                OPC_MoveParent,
/*544232*/                OPC_MoveParent,
/*544233*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*544235*/                OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*544238*/                OPC_EmitMergeInputChains1_1,
/*544239*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*544242*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 9,  // Results = #10
/*544250*/                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:{ *:[iPTR] }:$src3)
/*544263*/              0, /*End of Scope*/
/*544264*/            0, // EndSwitchOpcode
/*544265*/          0, /*End of Scope*/
/*544266*/        /*SwitchOpcode*/ 40|128,1/*168*/, TARGET_VAL(ISD::STRICT_SINT_TO_FP),// ->544438
/*544270*/          OPC_RecordNode, // #1 = 'strict_sint_to_fp' chained node
/*544271*/          OPC_CheckFoldableChainNode,
/*544272*/          OPC_MoveChild1,
/*544273*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*544276*/          OPC_RecordMemRef,
/*544277*/          OPC_RecordNode, // #2 = 'ld' chained node
/*544278*/          OPC_CheckFoldableChainNode,
/*544279*/          OPC_RecordChild1, // #3 = $src
/*544280*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*544282*/          OPC_SwitchType /*2 cases */, 75, MVT::i64,// ->544360
/*544285*/            OPC_CheckPredicate, 9, // Predicate_load
/*544287*/            OPC_MoveParent,
/*544288*/            OPC_CheckType, MVT::f64,
/*544290*/            OPC_MoveParent,
/*544291*/            OPC_MoveParent,
/*544292*/            OPC_Scope, 21, /*->544315*/ // 3 children in Scope
/*544294*/              OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*544296*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*544299*/              OPC_EmitMergeInputChains, 2, 1, 2, 
/*544303*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI642SDrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (strict_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)
/*544315*/            /*Scope*/ 21, /*->544337*/
/*544316*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*544318*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*544321*/              OPC_EmitMergeInputChains, 2, 1, 2, 
/*544325*/              OPC_MorphNodeTo1, TARGET_VAL(X86::CVTSI642SDrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (strict_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)
/*544337*/            /*Scope*/ 21, /*->544359*/
/*544338*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*544340*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*544343*/              OPC_EmitMergeInputChains, 2, 1, 2, 
/*544347*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI642SDZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (strict_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)
/*544359*/            0, /*End of Scope*/
/*544360*/          /*SwitchType*/ 75, MVT::i32,// ->544437
/*544362*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/*544364*/            OPC_MoveParent,
/*544365*/            OPC_CheckType, MVT::f64,
/*544367*/            OPC_MoveParent,
/*544368*/            OPC_MoveParent,
/*544369*/            OPC_Scope, 21, /*->544392*/ // 3 children in Scope
/*544371*/              OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*544373*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*544376*/              OPC_EmitMergeInputChains, 2, 1, 2, 
/*544380*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI2SDrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (strict_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)
/*544392*/            /*Scope*/ 21, /*->544414*/
/*544393*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*544395*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*544398*/              OPC_EmitMergeInputChains, 2, 1, 2, 
/*544402*/              OPC_MorphNodeTo1, TARGET_VAL(X86::CVTSI2SDrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (strict_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)
/*544414*/            /*Scope*/ 21, /*->544436*/
/*544415*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*544417*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*544420*/              OPC_EmitMergeInputChains, 2, 1, 2, 
/*544424*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI2SDZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (strict_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)
/*544436*/            0, /*End of Scope*/
/*544437*/          0, // EndSwitchType
/*544438*/        /*SwitchOpcode*/ 20|128,1/*148*/, TARGET_VAL(ISD::SINT_TO_FP),// ->544590
/*544442*/          OPC_MoveChild0,
/*544443*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*544446*/          OPC_RecordMemRef,
/*544447*/          OPC_RecordNode, // #1 = 'ld' chained node
/*544448*/          OPC_CheckFoldableChainNode,
/*544449*/          OPC_RecordChild1, // #2 = $src
/*544450*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*544452*/          OPC_SwitchType /*2 cases */, 66, MVT::i64,// ->544521
/*544455*/            OPC_CheckPredicate, 9, // Predicate_load
/*544457*/            OPC_MoveParent,
/*544458*/            OPC_CheckType, MVT::f64,
/*544460*/            OPC_MoveParent,
/*544461*/            OPC_MoveParent,
/*544462*/            OPC_Scope, 18, /*->544482*/ // 3 children in Scope
/*544464*/              OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*544466*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*544469*/              OPC_EmitMergeInputChains1_1,
/*544470*/              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)
/*544482*/            /*Scope*/ 18, /*->544501*/
/*544483*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*544485*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*544488*/              OPC_EmitMergeInputChains1_1,
/*544489*/              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)
/*544501*/            /*Scope*/ 18, /*->544520*/
/*544502*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*544504*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*544507*/              OPC_EmitMergeInputChains1_1,
/*544508*/              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)
/*544520*/            0, /*End of Scope*/
/*544521*/          /*SwitchType*/ 66, MVT::i32,// ->544589
/*544523*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/*544525*/            OPC_MoveParent,
/*544526*/            OPC_CheckType, MVT::f64,
/*544528*/            OPC_MoveParent,
/*544529*/            OPC_MoveParent,
/*544530*/            OPC_Scope, 18, /*->544550*/ // 3 children in Scope
/*544532*/              OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*544534*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*544537*/              OPC_EmitMergeInputChains1_1,
/*544538*/              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)
/*544550*/            /*Scope*/ 18, /*->544569*/
/*544551*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*544553*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*544556*/              OPC_EmitMergeInputChains1_1,
/*544557*/              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)
/*544569*/            /*Scope*/ 18, /*->544588*/
/*544570*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*544572*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*544575*/              OPC_EmitMergeInputChains1_1,
/*544576*/              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)
/*544588*/            0, /*End of Scope*/
/*544589*/          0, // EndSwitchType
/*544590*/        /*SwitchOpcode*/ 74, TARGET_VAL(ISD::STRICT_UINT_TO_FP),// ->544667
/*544593*/          OPC_RecordNode, // #1 = 'strict_uint_to_fp' chained node
/*544594*/          OPC_CheckFoldableChainNode,
/*544595*/          OPC_MoveChild1,
/*544596*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*544599*/          OPC_RecordMemRef,
/*544600*/          OPC_RecordNode, // #2 = 'ld' chained node
/*544601*/          OPC_CheckFoldableChainNode,
/*544602*/          OPC_RecordChild1, // #3 = $src
/*544603*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*544605*/          OPC_SwitchType /*2 cases */, 28, MVT::i64,// ->544636
/*544608*/            OPC_CheckPredicate, 9, // Predicate_load
/*544610*/            OPC_MoveParent,
/*544611*/            OPC_CheckType, MVT::f64,
/*544613*/            OPC_MoveParent,
/*544614*/            OPC_MoveParent,
/*544615*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*544617*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*544620*/            OPC_EmitMergeInputChains, 2, 1, 2, 
/*544624*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUSI642SDZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                      // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (strict_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)
/*544636*/          /*SwitchType*/ 28, MVT::i32,// ->544666
/*544638*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/*544640*/            OPC_MoveParent,
/*544641*/            OPC_CheckType, MVT::f64,
/*544643*/            OPC_MoveParent,
/*544644*/            OPC_MoveParent,
/*544645*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*544647*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src #4 #5 #6 #7 #8
/*544650*/            OPC_EmitMergeInputChains, 2, 1, 2, 
/*544654*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUSI2SDZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 0, 4, 5, 6, 7, 8, 
                      // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (strict_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)
/*544666*/          0, // EndSwitchType
/*544667*/        /*SwitchOpcode*/ 66, TARGET_VAL(ISD::UINT_TO_FP),// ->544736
/*544670*/          OPC_MoveChild0,
/*544671*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*544674*/          OPC_RecordMemRef,
/*544675*/          OPC_RecordNode, // #1 = 'ld' chained node
/*544676*/          OPC_CheckFoldableChainNode,
/*544677*/          OPC_RecordChild1, // #2 = $src
/*544678*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*544680*/          OPC_SwitchType /*2 cases */, 25, MVT::i64,// ->544708
/*544683*/            OPC_CheckPredicate, 9, // Predicate_load
/*544685*/            OPC_MoveParent,
/*544686*/            OPC_CheckType, MVT::f64,
/*544688*/            OPC_MoveParent,
/*544689*/            OPC_MoveParent,
/*544690*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*544692*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*544695*/            OPC_EmitMergeInputChains1_1,
/*544696*/            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)
/*544708*/          /*SwitchType*/ 25, MVT::i32,// ->544735
/*544710*/            OPC_CheckPredicate, 8, // Predicate_loadi32
/*544712*/            OPC_MoveParent,
/*544713*/            OPC_CheckType, MVT::f64,
/*544715*/            OPC_MoveParent,
/*544716*/            OPC_MoveParent,
/*544717*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*544719*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*544722*/            OPC_EmitMergeInputChains1_1,
/*544723*/            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)
/*544735*/          0, // EndSwitchType
/*544736*/        /*SwitchOpcode*/ 71, TARGET_VAL(ISD::LOAD),// ->544810
/*544739*/          OPC_RecordMemRef,
/*544740*/          OPC_RecordNode, // #1 = 'ld' chained node
/*544741*/          OPC_CheckFoldableChainNode,
/*544742*/          OPC_RecordChild1, // #2 = $src2
/*544743*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*544745*/          OPC_CheckPredicate, 9, // Predicate_load
/*544747*/          OPC_CheckType, MVT::f64,
/*544749*/          OPC_MoveParent,
/*544750*/          OPC_MoveParent,
/*544751*/          OPC_Scope, 18, /*->544771*/ // 3 children in Scope
/*544753*/            OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*544755*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*544758*/            OPC_EmitMergeInputChains1_1,
/*544759*/            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)
/*544771*/          /*Scope*/ 18, /*->544790*/
/*544772*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*544774*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*544777*/            OPC_EmitMergeInputChains1_1,
/*544778*/            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)
/*544790*/          /*Scope*/ 18, /*->544809*/
/*544791*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*544793*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*544796*/            OPC_EmitMergeInputChains1_1,
/*544797*/            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)
/*544809*/          0, /*End of Scope*/
/*544810*/        0, // EndSwitchOpcode
/*544811*/      /*SwitchOpcode*/ 47, TARGET_VAL(X86ISD::VZEXT_LOAD),// ->544861
/*544814*/        OPC_RecordMemRef,
/*544815*/        OPC_RecordNode, // #1 = 'X86vzld' chained node
/*544816*/        OPC_CheckFoldableChainNode,
/*544817*/        OPC_RecordChild1, // #2 = $src2
/*544818*/        OPC_CheckPredicate, 49, // Predicate_X86vzload64
/*544820*/        OPC_MoveParent,
/*544821*/        OPC_Scope, 18, /*->544841*/ // 2 children in Scope
/*544823*/          OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*544825*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*544828*/          OPC_EmitMergeInputChains1_1,
/*544829*/          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, (X86vzld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86vzload64>>) - Complexity = 25
                    // Dst: (VMOVLPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*544841*/        /*Scope*/ 18, /*->544860*/
/*544842*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*544844*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*544847*/          OPC_EmitMergeInputChains1_1,
/*544848*/          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, (X86vzld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86vzload64>>) - Complexity = 25
                    // Dst: (MOVLPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*544860*/        0, /*End of Scope*/
/*544861*/      /*SwitchOpcode*/ 56, TARGET_VAL(ISD::LOAD),// ->544920
/*544864*/        OPC_RecordMemRef,
/*544865*/        OPC_RecordNode, // #1 = 'ld' chained node
/*544866*/        OPC_CheckFoldableChainNode,
/*544867*/        OPC_RecordChild1, // #2 = $src2
/*544868*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*544870*/        OPC_CheckPredicate, 9, // Predicate_load
/*544872*/        OPC_Scope, 21, /*->544895*/ // 2 children in Scope
/*544874*/          OPC_CheckPredicate, 58, // Predicate_simple_load
/*544876*/          OPC_MoveParent,
/*544877*/          OPC_CheckPatternPredicate, 197, // (shouldOptForSize(MF) || !Subtarget->hasSSE41()) && (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*544879*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*544882*/          OPC_EmitMergeInputChains1_1,
/*544883*/          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, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_simple_load>>) - Complexity = 25
                    // Dst: (MOVLPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*544895*/        /*Scope*/ 23, /*->544919*/
/*544896*/          OPC_MoveParent,
/*544897*/          OPC_CheckPatternPredicate, 127, // (Subtarget->hasAVX()) && (!shouldOptForSize(MF))
/*544899*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*544902*/          OPC_EmitMergeInputChains1_1,
/*544903*/          OPC_EmitInteger, MVT::i8, 1, 
/*544906*/          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>>) - Complexity = 25
                    // Dst: (VBLENDPDrmi:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, 1:{ *:[i8] })
/*544919*/        0, /*End of Scope*/
/*544920*/      0, // EndSwitchOpcode
/*544921*/    /*Scope*/ 36, /*->544958*/
/*544922*/      OPC_MoveChild0,
/*544923*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*544926*/      OPC_RecordMemRef,
/*544927*/      OPC_RecordNode, // #0 = 'ld' chained node
/*544928*/      OPC_CheckFoldableChainNode,
/*544929*/      OPC_RecordChild1, // #1 = $src2
/*544930*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*544932*/      OPC_CheckPredicate, 9, // Predicate_load
/*544934*/      OPC_MoveParent,
/*544935*/      OPC_RecordChild1, // #2 = $src1
/*544936*/      OPC_CheckPatternPredicate, 127, // (Subtarget->hasAVX()) && (!shouldOptForSize(MF))
/*544938*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*544941*/      OPC_EmitMergeInputChains1_0,
/*544942*/      OPC_EmitInteger, MVT::i8, 2, 
/*544945*/      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>>, VR128:{ *:[v2f64] }:$src1) - Complexity = 25
                // Dst: (VBLENDPDrmi:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, 2:{ *:[i8] })
/*544958*/    /*Scope*/ 38, /*->544997*/
/*544959*/      OPC_RecordChild0, // #0 = $src1
/*544960*/      OPC_MoveChild1,
/*544961*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*544964*/      OPC_RecordMemRef,
/*544965*/      OPC_RecordNode, // #1 = 'ld' chained node
/*544966*/      OPC_CheckFoldableChainNode,
/*544967*/      OPC_RecordChild1, // #2 = $src2
/*544968*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*544970*/      OPC_CheckPredicate, 9, // Predicate_load
/*544972*/      OPC_CheckPredicate, 39, // Predicate_memop
/*544974*/      OPC_MoveParent,
/*544975*/      OPC_CheckPatternPredicate, 128, // (!shouldOptForSize(MF)) && (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*544977*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*544980*/      OPC_EmitMergeInputChains1_1,
/*544981*/      OPC_EmitInteger, MVT::i8, 1, 
/*544984*/      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_memop>>) - Complexity = 25
                // Dst: (BLENDPDrmi:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, 1:{ *:[i8] })
/*544997*/    /*Scope*/ 38, /*->545036*/
/*544998*/      OPC_MoveChild0,
/*544999*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*545002*/      OPC_RecordMemRef,
/*545003*/      OPC_RecordNode, // #0 = 'ld' chained node
/*545004*/      OPC_CheckFoldableChainNode,
/*545005*/      OPC_RecordChild1, // #1 = $src2
/*545006*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*545008*/      OPC_CheckPredicate, 9, // Predicate_load
/*545010*/      OPC_CheckPredicate, 39, // Predicate_memop
/*545012*/      OPC_MoveParent,
/*545013*/      OPC_RecordChild1, // #2 = $src1
/*545014*/      OPC_CheckPatternPredicate, 128, // (!shouldOptForSize(MF)) && (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*545016*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*545019*/      OPC_EmitMergeInputChains1_0,
/*545020*/      OPC_EmitInteger, MVT::i8, 2, 
/*545023*/      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_memop>>, VR128:{ *:[v2f64] }:$src1) - Complexity = 25
                // Dst: (BLENDPDrmi:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, 2:{ *:[i8] })
/*545036*/    /*Scope*/ 110|128,40/*5230*/, /*->550268*/
/*545038*/      OPC_RecordChild0, // #0 = $src1
/*545039*/      OPC_Scope, 38|128,40/*5158*/, /*->550200*/ // 2 children in Scope
/*545042*/        OPC_MoveChild1,
/*545043*/        OPC_SwitchOpcode /*2 cases */, 25, TARGET_VAL(X86ISD::VZEXT_LOAD),// ->545072
/*545047*/          OPC_RecordMemRef,
/*545048*/          OPC_RecordNode, // #1 = 'X86vzld' chained node
/*545049*/          OPC_CheckFoldableChainNode,
/*545050*/          OPC_RecordChild1, // #2 = $src2
/*545051*/          OPC_CheckPredicate, 49, // Predicate_X86vzload64
/*545053*/          OPC_MoveParent,
/*545054*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*545056*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*545059*/          OPC_EmitMergeInputChains1_1,
/*545060*/          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, (X86vzld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86vzload64>>) - Complexity = 25
                    // Dst: (VMOVLPDZ128rm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*545072*/        /*SwitchOpcode*/ 3|128,40/*5123*/, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->550199
/*545076*/          OPC_MoveChild0,
/*545077*/          OPC_SwitchOpcode /*26 cases */, 37|128,12/*1573*/, TARGET_VAL(X86ISD::SELECTS),// ->546655
/*545082*/            OPC_RecordChild0, // #1 = $mask
/*545083*/            OPC_Scope, 86|128,11/*1494*/, /*->546580*/ // 2 children in Scope
/*545086*/              OPC_MoveChild1,
/*545087*/              OPC_SwitchOpcode /*9 cases */, 66|128,1/*194*/, TARGET_VAL(ISD::FADD),// ->545286
/*545092*/                OPC_Scope, 44, /*->545138*/ // 4 children in Scope
/*545094*/                  OPC_MoveChild0,
/*545095*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*545098*/                  OPC_CheckChild0Same, 0,
/*545100*/                  OPC_CheckChild1Integer, 0, 
/*545102*/                  OPC_MoveParent,
/*545103*/                  OPC_RecordChild1, // #2 = $src2
/*545104*/                  OPC_MoveParent,
/*545105*/                  OPC_MoveChild2,
/*545106*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*545109*/                  OPC_CheckPredicate, 93, // Predicate_fp64imm0
/*545111*/                  OPC_MoveParent,
/*545112*/                  OPC_CheckType, MVT::f64,
/*545114*/                  OPC_MoveParent,
/*545115*/                  OPC_MoveParent,
/*545116*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*545118*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*545121*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*545129*/                  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] }))
/*545138*/                /*Scope*/ 44, /*->545183*/
/*545139*/                  OPC_RecordChild0, // #2 = $src2
/*545140*/                  OPC_MoveChild1,
/*545141*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*545144*/                  OPC_CheckChild0Same, 0,
/*545146*/                  OPC_CheckChild1Integer, 0, 
/*545148*/                  OPC_MoveParent,
/*545149*/                  OPC_MoveParent,
/*545150*/                  OPC_MoveChild2,
/*545151*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*545154*/                  OPC_CheckPredicate, 93, // Predicate_fp64imm0
/*545156*/                  OPC_MoveParent,
/*545157*/                  OPC_CheckType, MVT::f64,
/*545159*/                  OPC_MoveParent,
/*545160*/                  OPC_MoveParent,
/*545161*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*545163*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*545166*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*545174*/                  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] }))
/*545183*/                /*Scope*/ 50, /*->545234*/
/*545184*/                  OPC_MoveChild0,
/*545185*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*545188*/                  OPC_CheckChild0Same, 0,
/*545190*/                  OPC_CheckChild1Integer, 0, 
/*545192*/                  OPC_MoveParent,
/*545193*/                  OPC_RecordChild1, // #2 = $src2
/*545194*/                  OPC_MoveParent,
/*545195*/                  OPC_RecordChild2, // #3 = $src0
/*545196*/                  OPC_CheckType, MVT::f64,
/*545198*/                  OPC_MoveParent,
/*545199*/                  OPC_MoveParent,
/*545200*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*545202*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*545205*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 4,  // Results = #5
/*545213*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*545216*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 6,  // Results = #7
/*545224*/                  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] }))
/*545234*/                /*Scope*/ 50, /*->545285*/
/*545235*/                  OPC_RecordChild0, // #2 = $src2
/*545236*/                  OPC_MoveChild1,
/*545237*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*545240*/                  OPC_CheckChild0Same, 0,
/*545242*/                  OPC_CheckChild1Integer, 0, 
/*545244*/                  OPC_MoveParent,
/*545245*/                  OPC_MoveParent,
/*545246*/                  OPC_RecordChild2, // #3 = $src0
/*545247*/                  OPC_CheckType, MVT::f64,
/*545249*/                  OPC_MoveParent,
/*545250*/                  OPC_MoveParent,
/*545251*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*545253*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*545256*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 4,  // Results = #5
/*545264*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*545267*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 6,  // Results = #7
/*545275*/                  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] }))
/*545285*/                0, /*End of Scope*/
/*545286*/              /*SwitchOpcode*/ 87, TARGET_VAL(ISD::FSUB),// ->545376
/*545289*/                OPC_MoveChild0,
/*545290*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*545293*/                OPC_CheckChild0Same, 0,
/*545295*/                OPC_CheckChild1Integer, 0, 
/*545297*/                OPC_MoveParent,
/*545298*/                OPC_RecordChild1, // #2 = $src2
/*545299*/                OPC_MoveParent,
/*545300*/                OPC_Scope, 33, /*->545335*/ // 2 children in Scope
/*545302*/                  OPC_MoveChild2,
/*545303*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*545306*/                  OPC_CheckPredicate, 93, // Predicate_fp64imm0
/*545308*/                  OPC_MoveParent,
/*545309*/                  OPC_CheckType, MVT::f64,
/*545311*/                  OPC_MoveParent,
/*545312*/                  OPC_MoveParent,
/*545313*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*545315*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*545318*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*545326*/                  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] }))
/*545335*/                /*Scope*/ 39, /*->545375*/
/*545336*/                  OPC_RecordChild2, // #3 = $src0
/*545337*/                  OPC_CheckType, MVT::f64,
/*545339*/                  OPC_MoveParent,
/*545340*/                  OPC_MoveParent,
/*545341*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*545343*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*545346*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 4,  // Results = #5
/*545354*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*545357*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 6,  // Results = #7
/*545365*/                  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] }))
/*545375*/                0, /*End of Scope*/
/*545376*/              /*SwitchOpcode*/ 66|128,1/*194*/, TARGET_VAL(ISD::FMUL),// ->545574
/*545380*/                OPC_Scope, 44, /*->545426*/ // 4 children in Scope
/*545382*/                  OPC_MoveChild0,
/*545383*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*545386*/                  OPC_CheckChild0Same, 0,
/*545388*/                  OPC_CheckChild1Integer, 0, 
/*545390*/                  OPC_MoveParent,
/*545391*/                  OPC_RecordChild1, // #2 = $src2
/*545392*/                  OPC_MoveParent,
/*545393*/                  OPC_MoveChild2,
/*545394*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*545397*/                  OPC_CheckPredicate, 93, // Predicate_fp64imm0
/*545399*/                  OPC_MoveParent,
/*545400*/                  OPC_CheckType, MVT::f64,
/*545402*/                  OPC_MoveParent,
/*545403*/                  OPC_MoveParent,
/*545404*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*545406*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*545409*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*545417*/                  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] }))
/*545426*/                /*Scope*/ 44, /*->545471*/
/*545427*/                  OPC_RecordChild0, // #2 = $src2
/*545428*/                  OPC_MoveChild1,
/*545429*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*545432*/                  OPC_CheckChild0Same, 0,
/*545434*/                  OPC_CheckChild1Integer, 0, 
/*545436*/                  OPC_MoveParent,
/*545437*/                  OPC_MoveParent,
/*545438*/                  OPC_MoveChild2,
/*545439*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*545442*/                  OPC_CheckPredicate, 93, // Predicate_fp64imm0
/*545444*/                  OPC_MoveParent,
/*545445*/                  OPC_CheckType, MVT::f64,
/*545447*/                  OPC_MoveParent,
/*545448*/                  OPC_MoveParent,
/*545449*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*545451*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*545454*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*545462*/                  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] }))
/*545471*/                /*Scope*/ 50, /*->545522*/
/*545472*/                  OPC_MoveChild0,
/*545473*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*545476*/                  OPC_CheckChild0Same, 0,
/*545478*/                  OPC_CheckChild1Integer, 0, 
/*545480*/                  OPC_MoveParent,
/*545481*/                  OPC_RecordChild1, // #2 = $src2
/*545482*/                  OPC_MoveParent,
/*545483*/                  OPC_RecordChild2, // #3 = $src0
/*545484*/                  OPC_CheckType, MVT::f64,
/*545486*/                  OPC_MoveParent,
/*545487*/                  OPC_MoveParent,
/*545488*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*545490*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*545493*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 4,  // Results = #5
/*545501*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*545504*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 6,  // Results = #7
/*545512*/                  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] }))
/*545522*/                /*Scope*/ 50, /*->545573*/
/*545523*/                  OPC_RecordChild0, // #2 = $src2
/*545524*/                  OPC_MoveChild1,
/*545525*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*545528*/                  OPC_CheckChild0Same, 0,
/*545530*/                  OPC_CheckChild1Integer, 0, 
/*545532*/                  OPC_MoveParent,
/*545533*/                  OPC_MoveParent,
/*545534*/                  OPC_RecordChild2, // #3 = $src0
/*545535*/                  OPC_CheckType, MVT::f64,
/*545537*/                  OPC_MoveParent,
/*545538*/                  OPC_MoveParent,
/*545539*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*545541*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*545544*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 4,  // Results = #5
/*545552*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*545555*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 6,  // Results = #7
/*545563*/                  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] }))
/*545573*/                0, /*End of Scope*/
/*545574*/              /*SwitchOpcode*/ 87, TARGET_VAL(ISD::FDIV),// ->545664
/*545577*/                OPC_MoveChild0,
/*545578*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*545581*/                OPC_CheckChild0Same, 0,
/*545583*/                OPC_CheckChild1Integer, 0, 
/*545585*/                OPC_MoveParent,
/*545586*/                OPC_RecordChild1, // #2 = $src2
/*545587*/                OPC_MoveParent,
/*545588*/                OPC_Scope, 33, /*->545623*/ // 2 children in Scope
/*545590*/                  OPC_MoveChild2,
/*545591*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*545594*/                  OPC_CheckPredicate, 93, // Predicate_fp64imm0
/*545596*/                  OPC_MoveParent,
/*545597*/                  OPC_CheckType, MVT::f64,
/*545599*/                  OPC_MoveParent,
/*545600*/                  OPC_MoveParent,
/*545601*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*545603*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*545606*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*545614*/                  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] }))
/*545623*/                /*Scope*/ 39, /*->545663*/
/*545624*/                  OPC_RecordChild2, // #3 = $src0
/*545625*/                  OPC_CheckType, MVT::f64,
/*545627*/                  OPC_MoveParent,
/*545628*/                  OPC_MoveParent,
/*545629*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*545631*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*545634*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 4,  // Results = #5
/*545642*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*545645*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 6,  // Results = #7
/*545653*/                  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] }))
/*545663*/                0, /*End of Scope*/
/*545664*/              /*SwitchOpcode*/ 55|128,1/*183*/, TARGET_VAL(ISD::STRICT_FMA),// ->545851
/*545668*/                OPC_RecordNode, // #2 = 'X86strict_Fmadd' chained node
/*545669*/                OPC_CheckFoldableChainNode,
/*545670*/                OPC_Scope, 119, /*->545791*/ // 2 children in Scope
/*545672*/                  OPC_RecordChild1, // #3 = $src2
/*545673*/                  OPC_Scope, 57, /*->545732*/ // 2 children in Scope
/*545675*/                    OPC_MoveChild2,
/*545676*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*545679*/                    OPC_CheckChild0Same, 0,
/*545681*/                    OPC_CheckChild1Integer, 0, 
/*545683*/                    OPC_MoveParent,
/*545684*/                    OPC_RecordChild3, // #4 = $src3
/*545685*/                    OPC_MoveParent,
/*545686*/                    OPC_MoveChild2,
/*545687*/                    OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*545690*/                    OPC_CheckPredicate, 93, // Predicate_fp64imm0
/*545692*/                    OPC_MoveParent,
/*545693*/                    OPC_CheckType, MVT::f64,
/*545695*/                    OPC_MoveParent,
/*545696*/                    OPC_MoveParent,
/*545697*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*545699*/                    OPC_EmitMergeInputChains1_2,
/*545700*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*545703*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v2f64, 2/*#Ops*/, 3, 5,  // Results = #6
/*545711*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*545714*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v2f64, 2/*#Ops*/, 4, 7,  // Results = #8
/*545722*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SDZr_Intkz), 0|OPFL_Chain,
                                  MVT::v2f64, 4/*#Ops*/, 0, 1, 6, 8, 
                              // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86strict_Fmadd:{ *:[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] }))
/*545732*/                  /*Scope*/ 57, /*->545790*/
/*545733*/                    OPC_RecordChild2, // #4 = $src3
/*545734*/                    OPC_MoveChild3,
/*545735*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*545738*/                    OPC_CheckChild0Same, 0,
/*545740*/                    OPC_CheckChild1Integer, 0, 
/*545742*/                    OPC_MoveParent,
/*545743*/                    OPC_MoveParent,
/*545744*/                    OPC_MoveChild2,
/*545745*/                    OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*545748*/                    OPC_CheckPredicate, 93, // Predicate_fp64imm0
/*545750*/                    OPC_MoveParent,
/*545751*/                    OPC_CheckType, MVT::f64,
/*545753*/                    OPC_MoveParent,
/*545754*/                    OPC_MoveParent,
/*545755*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*545757*/                    OPC_EmitMergeInputChains1_2,
/*545758*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*545761*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v2f64, 2/*#Ops*/, 3, 5,  // Results = #6
/*545769*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*545772*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v2f64, 2/*#Ops*/, 4, 7,  // Results = #8
/*545780*/                    OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SDZr_Intkz), 0|OPFL_Chain,
                                  MVT::v2f64, 4/*#Ops*/, 0, 1, 6, 8, 
                              // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86strict_Fmadd:{ *:[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] }))
/*545790*/                  0, /*End of Scope*/
/*545791*/                /*Scope*/ 58, /*->545850*/
/*545792*/                  OPC_MoveChild1,
/*545793*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*545796*/                  OPC_CheckChild0Same, 0,
/*545798*/                  OPC_CheckChild1Integer, 0, 
/*545800*/                  OPC_MoveParent,
/*545801*/                  OPC_RecordChild2, // #3 = $src2
/*545802*/                  OPC_RecordChild3, // #4 = $src3
/*545803*/                  OPC_MoveParent,
/*545804*/                  OPC_MoveChild2,
/*545805*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*545808*/                  OPC_CheckPredicate, 93, // Predicate_fp64imm0
/*545810*/                  OPC_MoveParent,
/*545811*/                  OPC_CheckType, MVT::f64,
/*545813*/                  OPC_MoveParent,
/*545814*/                  OPC_MoveParent,
/*545815*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*545817*/                  OPC_EmitMergeInputChains1_2,
/*545818*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*545821*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 5,  // Results = #6
/*545829*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*545832*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 4, 7,  // Results = #8
/*545840*/                  OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SDZr_Intkz), 0|OPFL_Chain,
                                MVT::v2f64, 4/*#Ops*/, 0, 1, 6, 8, 
                            // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86selects:{ *:[f64] } VK1WM:{ *:[v1i1] }:$mask, (X86strict_Fmadd:{ *:[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] }))
/*545850*/                0, /*End of Scope*/
/*545851*/              /*SwitchOpcode*/ 50|128,1/*178*/, TARGET_VAL(ISD::FMA),// ->546033
/*545855*/                OPC_Scope, 117, /*->545974*/ // 2 children in Scope
/*545857*/                  OPC_RecordChild0, // #2 = $src2
/*545858*/                  OPC_Scope, 56, /*->545916*/ // 2 children in Scope
/*545860*/                    OPC_MoveChild1,
/*545861*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*545864*/                    OPC_CheckChild0Same, 0,
/*545866*/                    OPC_CheckChild1Integer, 0, 
/*545868*/                    OPC_MoveParent,
/*545869*/                    OPC_RecordChild2, // #3 = $src3
/*545870*/                    OPC_MoveParent,
/*545871*/                    OPC_MoveChild2,
/*545872*/                    OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*545875*/                    OPC_CheckPredicate, 93, // Predicate_fp64imm0
/*545877*/                    OPC_MoveParent,
/*545878*/                    OPC_CheckType, MVT::f64,
/*545880*/                    OPC_MoveParent,
/*545881*/                    OPC_MoveParent,
/*545882*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*545884*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*545887*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v2f64, 2/*#Ops*/, 2, 4,  // Results = #5
/*545895*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*545898*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v2f64, 2/*#Ops*/, 3, 6,  // Results = #7
/*545906*/                    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] }))
/*545916*/                  /*Scope*/ 56, /*->545973*/
/*545917*/                    OPC_RecordChild1, // #3 = $src3
/*545918*/                    OPC_MoveChild2,
/*545919*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*545922*/                    OPC_CheckChild0Same, 0,
/*545924*/                    OPC_CheckChild1Integer, 0, 
/*545926*/                    OPC_MoveParent,
/*545927*/                    OPC_MoveParent,
/*545928*/                    OPC_MoveChild2,
/*545929*/                    OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*545932*/                    OPC_CheckPredicate, 93, // Predicate_fp64imm0
/*545934*/                    OPC_MoveParent,
/*545935*/                    OPC_CheckType, MVT::f64,
/*545937*/                    OPC_MoveParent,
/*545938*/                    OPC_MoveParent,
/*545939*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*545941*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*545944*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v2f64, 2/*#Ops*/, 2, 4,  // Results = #5
/*545952*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*545955*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v2f64, 2/*#Ops*/, 3, 6,  // Results = #7
/*545963*/                    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] }))
/*545973*/                  0, /*End of Scope*/
/*545974*/                /*Scope*/ 57, /*->546032*/
/*545975*/                  OPC_MoveChild0,
/*545976*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*545979*/                  OPC_CheckChild0Same, 0,
/*545981*/                  OPC_CheckChild1Integer, 0, 
/*545983*/                  OPC_MoveParent,
/*545984*/                  OPC_RecordChild1, // #2 = $src2
/*545985*/                  OPC_RecordChild2, // #3 = $src3
/*545986*/                  OPC_MoveParent,
/*545987*/                  OPC_MoveChild2,
/*545988*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*545991*/                  OPC_CheckPredicate, 93, // Predicate_fp64imm0
/*545993*/                  OPC_MoveParent,
/*545994*/                  OPC_CheckType, MVT::f64,
/*545996*/                  OPC_MoveParent,
/*545997*/                  OPC_MoveParent,
/*545998*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*546000*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*546003*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 4,  // Results = #5
/*546011*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*546014*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 6,  // Results = #7
/*546022*/                  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] }))
/*546032*/                0, /*End of Scope*/
/*546033*/              /*SwitchOpcode*/ 50|128,1/*178*/, TARGET_VAL(X86ISD::FMSUB),// ->546215
/*546037*/                OPC_Scope, 117, /*->546156*/ // 2 children in Scope
/*546039*/                  OPC_RecordChild0, // #2 = $src2
/*546040*/                  OPC_Scope, 56, /*->546098*/ // 2 children in Scope
/*546042*/                    OPC_MoveChild1,
/*546043*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*546046*/                    OPC_CheckChild0Same, 0,
/*546048*/                    OPC_CheckChild1Integer, 0, 
/*546050*/                    OPC_MoveParent,
/*546051*/                    OPC_RecordChild2, // #3 = $src3
/*546052*/                    OPC_MoveParent,
/*546053*/                    OPC_MoveChild2,
/*546054*/                    OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*546057*/                    OPC_CheckPredicate, 93, // Predicate_fp64imm0
/*546059*/                    OPC_MoveParent,
/*546060*/                    OPC_CheckType, MVT::f64,
/*546062*/                    OPC_MoveParent,
/*546063*/                    OPC_MoveParent,
/*546064*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*546066*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*546069*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v2f64, 2/*#Ops*/, 2, 4,  // Results = #5
/*546077*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*546080*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v2f64, 2/*#Ops*/, 3, 6,  // Results = #7
/*546088*/                    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] }))
/*546098*/                  /*Scope*/ 56, /*->546155*/
/*546099*/                    OPC_RecordChild1, // #3 = $src3
/*546100*/                    OPC_MoveChild2,
/*546101*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*546104*/                    OPC_CheckChild0Same, 0,
/*546106*/                    OPC_CheckChild1Integer, 0, 
/*546108*/                    OPC_MoveParent,
/*546109*/                    OPC_MoveParent,
/*546110*/                    OPC_MoveChild2,
/*546111*/                    OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*546114*/                    OPC_CheckPredicate, 93, // Predicate_fp64imm0
/*546116*/                    OPC_MoveParent,
/*546117*/                    OPC_CheckType, MVT::f64,
/*546119*/                    OPC_MoveParent,
/*546120*/                    OPC_MoveParent,
/*546121*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*546123*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*546126*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v2f64, 2/*#Ops*/, 2, 4,  // Results = #5
/*546134*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*546137*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v2f64, 2/*#Ops*/, 3, 6,  // Results = #7
/*546145*/                    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] }))
/*546155*/                  0, /*End of Scope*/
/*546156*/                /*Scope*/ 57, /*->546214*/
/*546157*/                  OPC_MoveChild0,
/*546158*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*546161*/                  OPC_CheckChild0Same, 0,
/*546163*/                  OPC_CheckChild1Integer, 0, 
/*546165*/                  OPC_MoveParent,
/*546166*/                  OPC_RecordChild1, // #2 = $src2
/*546167*/                  OPC_RecordChild2, // #3 = $src3
/*546168*/                  OPC_MoveParent,
/*546169*/                  OPC_MoveChild2,
/*546170*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*546173*/                  OPC_CheckPredicate, 93, // Predicate_fp64imm0
/*546175*/                  OPC_MoveParent,
/*546176*/                  OPC_CheckType, MVT::f64,
/*546178*/                  OPC_MoveParent,
/*546179*/                  OPC_MoveParent,
/*546180*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*546182*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*546185*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 4,  // Results = #5
/*546193*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*546196*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 6,  // Results = #7
/*546204*/                  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] }))
/*546214*/                0, /*End of Scope*/
/*546215*/              /*SwitchOpcode*/ 50|128,1/*178*/, TARGET_VAL(X86ISD::FNMADD),// ->546397
/*546219*/                OPC_Scope, 117, /*->546338*/ // 2 children in Scope
/*546221*/                  OPC_RecordChild0, // #2 = $src2
/*546222*/                  OPC_Scope, 56, /*->546280*/ // 2 children in Scope
/*546224*/                    OPC_MoveChild1,
/*546225*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*546228*/                    OPC_CheckChild0Same, 0,
/*546230*/                    OPC_CheckChild1Integer, 0, 
/*546232*/                    OPC_MoveParent,
/*546233*/                    OPC_RecordChild2, // #3 = $src3
/*546234*/                    OPC_MoveParent,
/*546235*/                    OPC_MoveChild2,
/*546236*/                    OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*546239*/                    OPC_CheckPredicate, 93, // Predicate_fp64imm0
/*546241*/                    OPC_MoveParent,
/*546242*/                    OPC_CheckType, MVT::f64,
/*546244*/                    OPC_MoveParent,
/*546245*/                    OPC_MoveParent,
/*546246*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*546248*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*546251*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v2f64, 2/*#Ops*/, 2, 4,  // Results = #5
/*546259*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*546262*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v2f64, 2/*#Ops*/, 3, 6,  // Results = #7
/*546270*/                    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] }))
/*546280*/                  /*Scope*/ 56, /*->546337*/
/*546281*/                    OPC_RecordChild1, // #3 = $src3
/*546282*/                    OPC_MoveChild2,
/*546283*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*546286*/                    OPC_CheckChild0Same, 0,
/*546288*/                    OPC_CheckChild1Integer, 0, 
/*546290*/                    OPC_MoveParent,
/*546291*/                    OPC_MoveParent,
/*546292*/                    OPC_MoveChild2,
/*546293*/                    OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*546296*/                    OPC_CheckPredicate, 93, // Predicate_fp64imm0
/*546298*/                    OPC_MoveParent,
/*546299*/                    OPC_CheckType, MVT::f64,
/*546301*/                    OPC_MoveParent,
/*546302*/                    OPC_MoveParent,
/*546303*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*546305*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*546308*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v2f64, 2/*#Ops*/, 2, 4,  // Results = #5
/*546316*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*546319*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v2f64, 2/*#Ops*/, 3, 6,  // Results = #7
/*546327*/                    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] }))
/*546337*/                  0, /*End of Scope*/
/*546338*/                /*Scope*/ 57, /*->546396*/
/*546339*/                  OPC_MoveChild0,
/*546340*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*546343*/                  OPC_CheckChild0Same, 0,
/*546345*/                  OPC_CheckChild1Integer, 0, 
/*546347*/                  OPC_MoveParent,
/*546348*/                  OPC_RecordChild1, // #2 = $src2
/*546349*/                  OPC_RecordChild2, // #3 = $src3
/*546350*/                  OPC_MoveParent,
/*546351*/                  OPC_MoveChild2,
/*546352*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*546355*/                  OPC_CheckPredicate, 93, // Predicate_fp64imm0
/*546357*/                  OPC_MoveParent,
/*546358*/                  OPC_CheckType, MVT::f64,
/*546360*/                  OPC_MoveParent,
/*546361*/                  OPC_MoveParent,
/*546362*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*546364*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*546367*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 4,  // Results = #5
/*546375*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*546378*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 6,  // Results = #7
/*546386*/                  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] }))
/*546396*/                0, /*End of Scope*/
/*546397*/              /*SwitchOpcode*/ 50|128,1/*178*/, TARGET_VAL(X86ISD::FNMSUB),// ->546579
/*546401*/                OPC_Scope, 117, /*->546520*/ // 2 children in Scope
/*546403*/                  OPC_RecordChild0, // #2 = $src2
/*546404*/                  OPC_Scope, 56, /*->546462*/ // 2 children in Scope
/*546406*/                    OPC_MoveChild1,
/*546407*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*546410*/                    OPC_CheckChild0Same, 0,
/*546412*/                    OPC_CheckChild1Integer, 0, 
/*546414*/                    OPC_MoveParent,
/*546415*/                    OPC_RecordChild2, // #3 = $src3
/*546416*/                    OPC_MoveParent,
/*546417*/                    OPC_MoveChild2,
/*546418*/                    OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*546421*/                    OPC_CheckPredicate, 93, // Predicate_fp64imm0
/*546423*/                    OPC_MoveParent,
/*546424*/                    OPC_CheckType, MVT::f64,
/*546426*/                    OPC_MoveParent,
/*546427*/                    OPC_MoveParent,
/*546428*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*546430*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*546433*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v2f64, 2/*#Ops*/, 2, 4,  // Results = #5
/*546441*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*546444*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v2f64, 2/*#Ops*/, 3, 6,  // Results = #7
/*546452*/                    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] }))
/*546462*/                  /*Scope*/ 56, /*->546519*/
/*546463*/                    OPC_RecordChild1, // #3 = $src3
/*546464*/                    OPC_MoveChild2,
/*546465*/                    OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*546468*/                    OPC_CheckChild0Same, 0,
/*546470*/                    OPC_CheckChild1Integer, 0, 
/*546472*/                    OPC_MoveParent,
/*546473*/                    OPC_MoveParent,
/*546474*/                    OPC_MoveChild2,
/*546475*/                    OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*546478*/                    OPC_CheckPredicate, 93, // Predicate_fp64imm0
/*546480*/                    OPC_MoveParent,
/*546481*/                    OPC_CheckType, MVT::f64,
/*546483*/                    OPC_MoveParent,
/*546484*/                    OPC_MoveParent,
/*546485*/                    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*546487*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*546490*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v2f64, 2/*#Ops*/, 2, 4,  // Results = #5
/*546498*/                    OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*546501*/                    OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                  MVT::v2f64, 2/*#Ops*/, 3, 6,  // Results = #7
/*546509*/                    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] }))
/*546519*/                  0, /*End of Scope*/
/*546520*/                /*Scope*/ 57, /*->546578*/
/*546521*/                  OPC_MoveChild0,
/*546522*/                  OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*546525*/                  OPC_CheckChild0Same, 0,
/*546527*/                  OPC_CheckChild1Integer, 0, 
/*546529*/                  OPC_MoveParent,
/*546530*/                  OPC_RecordChild1, // #2 = $src2
/*546531*/                  OPC_RecordChild2, // #3 = $src3
/*546532*/                  OPC_MoveParent,
/*546533*/                  OPC_MoveChild2,
/*546534*/                  OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*546537*/                  OPC_CheckPredicate, 93, // Predicate_fp64imm0
/*546539*/                  OPC_MoveParent,
/*546540*/                  OPC_CheckType, MVT::f64,
/*546542*/                  OPC_MoveParent,
/*546543*/                  OPC_MoveParent,
/*546544*/                  OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*546546*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*546549*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 2, 4,  // Results = #5
/*546557*/                  OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*546560*/                  OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                                MVT::v2f64, 2/*#Ops*/, 3, 6,  // Results = #7
/*546568*/                  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] }))
/*546578*/                0, /*End of Scope*/
/*546579*/              0, // EndSwitchOpcode
/*546580*/            /*Scope*/ 73, /*->546654*/
/*546581*/              OPC_RecordChild1, // #2 = $src1
/*546582*/              OPC_Scope, 31, /*->546615*/ // 2 children in Scope
/*546584*/                OPC_MoveChild2,
/*546585*/                OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP),
/*546588*/                OPC_CheckPredicate, 93, // Predicate_fp64imm0
/*546590*/                OPC_MoveParent,
/*546591*/                OPC_CheckType, MVT::f64,
/*546593*/                OPC_MoveParent,
/*546594*/                OPC_MoveParent,
/*546595*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*546598*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*546606*/                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] }))
/*546615*/              /*Scope*/ 37, /*->546653*/
/*546616*/                OPC_RecordChild2, // #3 = $src2
/*546617*/                OPC_CheckType, MVT::f64,
/*546619*/                OPC_MoveParent,
/*546620*/                OPC_MoveParent,
/*546621*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*546624*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 4,  // Results = #5
/*546632*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*546635*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 6,  // Results = #7
/*546643*/                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] }))
/*546653*/              0, /*End of Scope*/
/*546654*/            0, /*End of Scope*/
/*546655*/          /*SwitchOpcode*/ 44|128,1/*172*/, TARGET_VAL(X86ISD::FMADD_RND),// ->546831
/*546659*/            OPC_Scope, 113, /*->546774*/ // 2 children in Scope
/*546661*/              OPC_RecordChild0, // #1 = $src2
/*546662*/              OPC_Scope, 54, /*->546718*/ // 2 children in Scope
/*546664*/                OPC_MoveChild1,
/*546665*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*546668*/                OPC_CheckChild0Same, 0,
/*546670*/                OPC_CheckChild1Integer, 0, 
/*546672*/                OPC_MoveParent,
/*546673*/                OPC_RecordChild2, // #2 = $src3
/*546674*/                OPC_RecordChild3, // #3 = $rc
/*546675*/                OPC_MoveChild3,
/*546676*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*546679*/                OPC_MoveParent,
/*546680*/                OPC_CheckType, MVT::f64,
/*546682*/                OPC_MoveParent,
/*546683*/                OPC_MoveParent,
/*546684*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*546686*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*546689*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 1, 4,  // Results = #5
/*546697*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*546700*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 6,  // Results = #7
/*546708*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SDZrb_Int), 0,
                              MVT::v2f64, 4/*#Ops*/, 0, 5, 7, 3, 
                          // 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, (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*546718*/              /*Scope*/ 54, /*->546773*/
/*546719*/                OPC_RecordChild1, // #2 = $src3
/*546720*/                OPC_MoveChild2,
/*546721*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*546724*/                OPC_CheckChild0Same, 0,
/*546726*/                OPC_CheckChild1Integer, 0, 
/*546728*/                OPC_MoveParent,
/*546729*/                OPC_RecordChild3, // #3 = $rc
/*546730*/                OPC_MoveChild3,
/*546731*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*546734*/                OPC_MoveParent,
/*546735*/                OPC_CheckType, MVT::f64,
/*546737*/                OPC_MoveParent,
/*546738*/                OPC_MoveParent,
/*546739*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*546741*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*546744*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 1, 4,  // Results = #5
/*546752*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*546755*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 6,  // Results = #7
/*546763*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SDZrb_Int), 0,
                              MVT::v2f64, 4/*#Ops*/, 0, 5, 7, 3, 
                          // 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] }), (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*546773*/              0, /*End of Scope*/
/*546774*/            /*Scope*/ 55, /*->546830*/
/*546775*/              OPC_MoveChild0,
/*546776*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*546779*/              OPC_CheckChild0Same, 0,
/*546781*/              OPC_CheckChild1Integer, 0, 
/*546783*/              OPC_MoveParent,
/*546784*/              OPC_RecordChild1, // #1 = $src2
/*546785*/              OPC_RecordChild2, // #2 = $src3
/*546786*/              OPC_RecordChild3, // #3 = $rc
/*546787*/              OPC_MoveChild3,
/*546788*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*546791*/              OPC_MoveParent,
/*546792*/              OPC_CheckType, MVT::f64,
/*546794*/              OPC_MoveParent,
/*546795*/              OPC_MoveParent,
/*546796*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*546798*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*546801*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 4,  // Results = #5
/*546809*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*546812*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 2, 6,  // Results = #7
/*546820*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SDZrb_Int), 0,
                            MVT::v2f64, 4/*#Ops*/, 0, 5, 7, 3, 
                        // 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, (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*546830*/            0, /*End of Scope*/
/*546831*/          /*SwitchOpcode*/ 44|128,1/*172*/, TARGET_VAL(X86ISD::FMSUB_RND),// ->547007
/*546835*/            OPC_Scope, 113, /*->546950*/ // 2 children in Scope
/*546837*/              OPC_RecordChild0, // #1 = $src2
/*546838*/              OPC_Scope, 54, /*->546894*/ // 2 children in Scope
/*546840*/                OPC_MoveChild1,
/*546841*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*546844*/                OPC_CheckChild0Same, 0,
/*546846*/                OPC_CheckChild1Integer, 0, 
/*546848*/                OPC_MoveParent,
/*546849*/                OPC_RecordChild2, // #2 = $src3
/*546850*/                OPC_RecordChild3, // #3 = $rc
/*546851*/                OPC_MoveChild3,
/*546852*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*546855*/                OPC_MoveParent,
/*546856*/                OPC_CheckType, MVT::f64,
/*546858*/                OPC_MoveParent,
/*546859*/                OPC_MoveParent,
/*546860*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*546862*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*546865*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 1, 4,  // Results = #5
/*546873*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*546876*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 6,  // Results = #7
/*546884*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213SDZrb_Int), 0,
                              MVT::v2f64, 4/*#Ops*/, 0, 5, 7, 3, 
                          // 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, (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*546894*/              /*Scope*/ 54, /*->546949*/
/*546895*/                OPC_RecordChild1, // #2 = $src3
/*546896*/                OPC_MoveChild2,
/*546897*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*546900*/                OPC_CheckChild0Same, 0,
/*546902*/                OPC_CheckChild1Integer, 0, 
/*546904*/                OPC_MoveParent,
/*546905*/                OPC_RecordChild3, // #3 = $rc
/*546906*/                OPC_MoveChild3,
/*546907*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*546910*/                OPC_MoveParent,
/*546911*/                OPC_CheckType, MVT::f64,
/*546913*/                OPC_MoveParent,
/*546914*/                OPC_MoveParent,
/*546915*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*546917*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*546920*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 1, 4,  // Results = #5
/*546928*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*546931*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 6,  // Results = #7
/*546939*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB231SDZrb_Int), 0,
                              MVT::v2f64, 4/*#Ops*/, 0, 5, 7, 3, 
                          // 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] }), (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*546949*/              0, /*End of Scope*/
/*546950*/            /*Scope*/ 55, /*->547006*/
/*546951*/              OPC_MoveChild0,
/*546952*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*546955*/              OPC_CheckChild0Same, 0,
/*546957*/              OPC_CheckChild1Integer, 0, 
/*546959*/              OPC_MoveParent,
/*546960*/              OPC_RecordChild1, // #1 = $src2
/*546961*/              OPC_RecordChild2, // #2 = $src3
/*546962*/              OPC_RecordChild3, // #3 = $rc
/*546963*/              OPC_MoveChild3,
/*546964*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*546967*/              OPC_MoveParent,
/*546968*/              OPC_CheckType, MVT::f64,
/*546970*/              OPC_MoveParent,
/*546971*/              OPC_MoveParent,
/*546972*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*546974*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*546977*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 4,  // Results = #5
/*546985*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*546988*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 2, 6,  // Results = #7
/*546996*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUB213SDZrb_Int), 0,
                            MVT::v2f64, 4/*#Ops*/, 0, 5, 7, 3, 
                        // 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, (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*547006*/            0, /*End of Scope*/
/*547007*/          /*SwitchOpcode*/ 44|128,1/*172*/, TARGET_VAL(X86ISD::FNMADD_RND),// ->547183
/*547011*/            OPC_Scope, 113, /*->547126*/ // 2 children in Scope
/*547013*/              OPC_RecordChild0, // #1 = $src2
/*547014*/              OPC_Scope, 54, /*->547070*/ // 2 children in Scope
/*547016*/                OPC_MoveChild1,
/*547017*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*547020*/                OPC_CheckChild0Same, 0,
/*547022*/                OPC_CheckChild1Integer, 0, 
/*547024*/                OPC_MoveParent,
/*547025*/                OPC_RecordChild2, // #2 = $src3
/*547026*/                OPC_RecordChild3, // #3 = $rc
/*547027*/                OPC_MoveChild3,
/*547028*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*547031*/                OPC_MoveParent,
/*547032*/                OPC_CheckType, MVT::f64,
/*547034*/                OPC_MoveParent,
/*547035*/                OPC_MoveParent,
/*547036*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*547038*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*547041*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 1, 4,  // Results = #5
/*547049*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*547052*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 6,  // Results = #7
/*547060*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213SDZrb_Int), 0,
                              MVT::v2f64, 4/*#Ops*/, 0, 5, 7, 3, 
                          // 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, (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*547070*/              /*Scope*/ 54, /*->547125*/
/*547071*/                OPC_RecordChild1, // #2 = $src3
/*547072*/                OPC_MoveChild2,
/*547073*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*547076*/                OPC_CheckChild0Same, 0,
/*547078*/                OPC_CheckChild1Integer, 0, 
/*547080*/                OPC_MoveParent,
/*547081*/                OPC_RecordChild3, // #3 = $rc
/*547082*/                OPC_MoveChild3,
/*547083*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*547086*/                OPC_MoveParent,
/*547087*/                OPC_CheckType, MVT::f64,
/*547089*/                OPC_MoveParent,
/*547090*/                OPC_MoveParent,
/*547091*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*547093*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*547096*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 1, 4,  // Results = #5
/*547104*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*547107*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 6,  // Results = #7
/*547115*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD231SDZrb_Int), 0,
                              MVT::v2f64, 4/*#Ops*/, 0, 5, 7, 3, 
                          // 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] }), (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*547125*/              0, /*End of Scope*/
/*547126*/            /*Scope*/ 55, /*->547182*/
/*547127*/              OPC_MoveChild0,
/*547128*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*547131*/              OPC_CheckChild0Same, 0,
/*547133*/              OPC_CheckChild1Integer, 0, 
/*547135*/              OPC_MoveParent,
/*547136*/              OPC_RecordChild1, // #1 = $src2
/*547137*/              OPC_RecordChild2, // #2 = $src3
/*547138*/              OPC_RecordChild3, // #3 = $rc
/*547139*/              OPC_MoveChild3,
/*547140*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*547143*/              OPC_MoveParent,
/*547144*/              OPC_CheckType, MVT::f64,
/*547146*/              OPC_MoveParent,
/*547147*/              OPC_MoveParent,
/*547148*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*547150*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*547153*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 4,  // Results = #5
/*547161*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*547164*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 2, 6,  // Results = #7
/*547172*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMADD213SDZrb_Int), 0,
                            MVT::v2f64, 4/*#Ops*/, 0, 5, 7, 3, 
                        // 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, (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*547182*/            0, /*End of Scope*/
/*547183*/          /*SwitchOpcode*/ 44|128,1/*172*/, TARGET_VAL(X86ISD::FNMSUB_RND),// ->547359
/*547187*/            OPC_Scope, 113, /*->547302*/ // 2 children in Scope
/*547189*/              OPC_RecordChild0, // #1 = $src2
/*547190*/              OPC_Scope, 54, /*->547246*/ // 2 children in Scope
/*547192*/                OPC_MoveChild1,
/*547193*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*547196*/                OPC_CheckChild0Same, 0,
/*547198*/                OPC_CheckChild1Integer, 0, 
/*547200*/                OPC_MoveParent,
/*547201*/                OPC_RecordChild2, // #2 = $src3
/*547202*/                OPC_RecordChild3, // #3 = $rc
/*547203*/                OPC_MoveChild3,
/*547204*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*547207*/                OPC_MoveParent,
/*547208*/                OPC_CheckType, MVT::f64,
/*547210*/                OPC_MoveParent,
/*547211*/                OPC_MoveParent,
/*547212*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*547214*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*547217*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 1, 4,  // Results = #5
/*547225*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*547228*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 6,  // Results = #7
/*547236*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213SDZrb_Int), 0,
                              MVT::v2f64, 4/*#Ops*/, 0, 5, 7, 3, 
                          // 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, (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*547246*/              /*Scope*/ 54, /*->547301*/
/*547247*/                OPC_RecordChild1, // #2 = $src3
/*547248*/                OPC_MoveChild2,
/*547249*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*547252*/                OPC_CheckChild0Same, 0,
/*547254*/                OPC_CheckChild1Integer, 0, 
/*547256*/                OPC_MoveParent,
/*547257*/                OPC_RecordChild3, // #3 = $rc
/*547258*/                OPC_MoveChild3,
/*547259*/                OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*547262*/                OPC_MoveParent,
/*547263*/                OPC_CheckType, MVT::f64,
/*547265*/                OPC_MoveParent,
/*547266*/                OPC_MoveParent,
/*547267*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*547269*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*547272*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 1, 4,  // Results = #5
/*547280*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*547283*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 6,  // Results = #7
/*547291*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB231SDZrb_Int), 0,
                              MVT::v2f64, 4/*#Ops*/, 0, 5, 7, 3, 
                          // 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] }), (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*547301*/              0, /*End of Scope*/
/*547302*/            /*Scope*/ 55, /*->547358*/
/*547303*/              OPC_MoveChild0,
/*547304*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*547307*/              OPC_CheckChild0Same, 0,
/*547309*/              OPC_CheckChild1Integer, 0, 
/*547311*/              OPC_MoveParent,
/*547312*/              OPC_RecordChild1, // #1 = $src2
/*547313*/              OPC_RecordChild2, // #2 = $src3
/*547314*/              OPC_RecordChild3, // #3 = $rc
/*547315*/              OPC_MoveChild3,
/*547316*/              OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*547319*/              OPC_MoveParent,
/*547320*/              OPC_CheckType, MVT::f64,
/*547322*/              OPC_MoveParent,
/*547323*/              OPC_MoveParent,
/*547324*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*547326*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*547329*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 4,  // Results = #5
/*547337*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*547340*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 2, 6,  // Results = #7
/*547348*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VFNMSUB213SDZrb_Int), 0,
                            MVT::v2f64, 4/*#Ops*/, 0, 5, 7, 3, 
                        // 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, (timm:{ *:[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] }), AVX512RC:{ *:[i32] }:$rc)
/*547358*/            0, /*End of Scope*/
/*547359*/          /*SwitchOpcode*/ 54, TARGET_VAL(ISD::STRICT_FP_EXTEND),// ->547416
/*547362*/            OPC_RecordNode, // #1 = 'strict_fpextend' chained node
/*547363*/            OPC_CheckFoldableChainNode,
/*547364*/            OPC_MoveChild1,
/*547365*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*547368*/            OPC_RecordChild0, // #2 = $src
/*547369*/            OPC_CheckChild0Type, MVT::v4f32,
/*547371*/            OPC_CheckChild1Integer, 0, 
/*547373*/            OPC_MoveParent,
/*547374*/            OPC_CheckType, MVT::f64,
/*547376*/            OPC_MoveParent,
/*547377*/            OPC_MoveParent,
/*547378*/            OPC_Scope, 11, /*->547391*/ // 3 children in Scope
/*547380*/              OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*547382*/              OPC_EmitMergeInputChains1_1,
/*547383*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSS2SDrr_Int), 0|OPFL_Chain,
                            MVT::v2f64, 2/*#Ops*/, 0, 2, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (strict_fpextend:{ *:[f64] } (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$src, 0:{ *:[iPTR] })))) - Complexity = 17
                        // Dst: (VCVTSS2SDrr_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, VR128:{ *:[v4f32] }:$src)
/*547391*/            /*Scope*/ 11, /*->547403*/
/*547392*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*547394*/              OPC_EmitMergeInputChains1_1,
/*547395*/              OPC_MorphNodeTo1, TARGET_VAL(X86::CVTSS2SDrr_Int), 0|OPFL_Chain,
                            MVT::v2f64, 2/*#Ops*/, 0, 2, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (strict_fpextend:{ *:[f64] } (extractelt:{ *:[f32] } VR128:{ *:[v4f32] }:$src, 0:{ *:[iPTR] })))) - Complexity = 17
                        // Dst: (CVTSS2SDrr_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, VR128:{ *:[v4f32] }:$src)
/*547403*/            /*Scope*/ 11, /*->547415*/
/*547404*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*547406*/              OPC_EmitMergeInputChains1_1,
/*547407*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSS2SDZrr_Int), 0,
                            MVT::v2f64, 2/*#Ops*/, 0, 2, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (strict_fpextend:{ *:[f64] } (extractelt:{ *:[f32] } VR128X:{ *:[v4f32] }:$src, 0:{ *:[iPTR] })))) - Complexity = 17
                        // Dst: (VCVTSS2SDZrr_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$dst, VR128X:{ *:[v4f32] }:$src)
/*547415*/            0, /*End of Scope*/
/*547416*/          /*SwitchOpcode*/ 49, TARGET_VAL(ISD::FP_EXTEND),// ->547468
/*547419*/            OPC_MoveChild0,
/*547420*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*547423*/            OPC_RecordChild0, // #1 = $src
/*547424*/            OPC_CheckChild0Type, MVT::v4f32,
/*547426*/            OPC_CheckChild1Integer, 0, 
/*547428*/            OPC_MoveParent,
/*547429*/            OPC_CheckType, MVT::f64,
/*547431*/            OPC_MoveParent,
/*547432*/            OPC_MoveParent,
/*547433*/            OPC_Scope, 10, /*->547445*/ // 3 children in Scope
/*547435*/              OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*547437*/              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)
/*547445*/            /*Scope*/ 10, /*->547456*/
/*547446*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*547448*/              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)
/*547456*/            /*Scope*/ 10, /*->547467*/
/*547457*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*547459*/              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)
/*547467*/            0, /*End of Scope*/
/*547468*/          /*SwitchOpcode*/ 42, TARGET_VAL(ISD::STRICT_FSQRT),// ->547513
/*547471*/            OPC_RecordNode, // #1 = 'strict_fsqrt' chained node
/*547472*/            OPC_CheckFoldableChainNode,
/*547473*/            OPC_MoveChild1,
/*547474*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*547477*/            OPC_RecordChild0, // #2 = $src
/*547478*/            OPC_CheckChild0Type, MVT::v2f64,
/*547480*/            OPC_CheckChild1Integer, 0, 
/*547482*/            OPC_MoveParent,
/*547483*/            OPC_CheckType, MVT::f64,
/*547485*/            OPC_MoveParent,
/*547486*/            OPC_MoveParent,
/*547487*/            OPC_Scope, 11, /*->547500*/ // 2 children in Scope
/*547489*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*547491*/              OPC_EmitMergeInputChains1_1,
/*547492*/              OPC_MorphNodeTo1, TARGET_VAL(X86::SQRTSDr_Int), 0|OPFL_Chain,
                            MVT::v2f64, 2/*#Ops*/, 0, 2, 
                        // Src: (X86Movsd:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (strict_fsqrt:{ *:[f64] } (extractelt:{ *:[f64] } v2f64:{ *:[v2f64] }:$src, 0:{ *:[iPTR] })))) - Complexity = 17
                        // Dst: (SQRTSDr_Int:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, v2f64:{ *:[v2f64] }:$src)
/*547500*/            /*Scope*/ 11, /*->547512*/
/*547501*/              OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*547503*/              OPC_EmitMergeInputChains1_1,
/*547504*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTSDr_Int), 0|OPFL_Chain,
                            MVT::v2f64, 2/*#Ops*/, 0, 2, 
                        // Src: (X86Movsd:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (strict_fsqrt:{ *:[f64] } (extractelt:{ *:[f64] } v2f64:{ *:[v2f64] }:$src, 0:{ *:[iPTR] })))) - Complexity = 17
                        // Dst: (VSQRTSDr_Int:{ *:[v2f64] } v2f64:{ *:[v2f64] }:$dst, v2f64:{ *:[v2f64] }:$src)
/*547512*/            0, /*End of Scope*/
/*547513*/          /*SwitchOpcode*/ 49, TARGET_VAL(ISD::FSQRT),// ->547565
/*547516*/            OPC_MoveChild0,
/*547517*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*547520*/            OPC_RecordChild0, // #1 = $src
/*547521*/            OPC_CheckChild0Type, MVT::v2f64,
/*547523*/            OPC_CheckChild1Integer, 0, 
/*547525*/            OPC_MoveParent,
/*547526*/            OPC_CheckType, MVT::f64,
/*547528*/            OPC_MoveParent,
/*547529*/            OPC_MoveParent,
/*547530*/            OPC_Scope, 10, /*->547542*/ // 3 children in Scope
/*547532*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*547534*/              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)
/*547542*/            /*Scope*/ 10, /*->547553*/
/*547543*/              OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*547545*/              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)
/*547553*/            /*Scope*/ 10, /*->547564*/
/*547554*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*547556*/              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)
/*547564*/            0, /*End of Scope*/
/*547565*/          /*SwitchOpcode*/ 2|128,1/*130*/, TARGET_VAL(ISD::STRICT_FADD),// ->547699
/*547569*/            OPC_RecordNode, // #1 = 'strict_fadd' chained node
/*547570*/            OPC_CheckFoldableChainNode,
/*547571*/            OPC_Scope, 62, /*->547635*/ // 2 children in Scope
/*547573*/              OPC_MoveChild1,
/*547574*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*547577*/              OPC_CheckChild0Same, 0,
/*547579*/              OPC_CheckChild1Integer, 0, 
/*547581*/              OPC_MoveParent,
/*547582*/              OPC_RecordChild2, // #2 = $src
/*547583*/              OPC_CheckType, MVT::f64,
/*547585*/              OPC_MoveParent,
/*547586*/              OPC_MoveParent,
/*547587*/              OPC_Scope, 22, /*->547611*/ // 2 children in Scope
/*547589*/                OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*547591*/                OPC_EmitMergeInputChains1_1,
/*547592*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*547595*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*547603*/                OPC_MorphNodeTo1, TARGET_VAL(X86::ADDSDrr_Int), 0|OPFL_Chain,
                              MVT::v2f64, 2/*#Ops*/, 0, 4, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (strict_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] }))
/*547611*/              /*Scope*/ 22, /*->547634*/
/*547612*/                OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*547614*/                OPC_EmitMergeInputChains1_1,
/*547615*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*547618*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*547626*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSDrr_Int), 0|OPFL_Chain,
                              MVT::v2f64, 2/*#Ops*/, 0, 4, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (strict_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] }))
/*547634*/              0, /*End of Scope*/
/*547635*/            /*Scope*/ 62, /*->547698*/
/*547636*/              OPC_RecordChild1, // #2 = $src
/*547637*/              OPC_MoveChild2,
/*547638*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*547641*/              OPC_CheckChild0Same, 0,
/*547643*/              OPC_CheckChild1Integer, 0, 
/*547645*/              OPC_MoveParent,
/*547646*/              OPC_CheckType, MVT::f64,
/*547648*/              OPC_MoveParent,
/*547649*/              OPC_MoveParent,
/*547650*/              OPC_Scope, 22, /*->547674*/ // 2 children in Scope
/*547652*/                OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*547654*/                OPC_EmitMergeInputChains1_1,
/*547655*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*547658*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*547666*/                OPC_MorphNodeTo1, TARGET_VAL(X86::ADDSDrr_Int), 0|OPFL_Chain,
                              MVT::v2f64, 2/*#Ops*/, 0, 4, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (strict_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] }))
/*547674*/              /*Scope*/ 22, /*->547697*/
/*547675*/                OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*547677*/                OPC_EmitMergeInputChains1_1,
/*547678*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*547681*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*547689*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSDrr_Int), 0|OPFL_Chain,
                              MVT::v2f64, 2/*#Ops*/, 0, 4, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (strict_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] }))
/*547697*/              0, /*End of Scope*/
/*547698*/            0, /*End of Scope*/
/*547699*/          /*SwitchOpcode*/ 40|128,1/*168*/, TARGET_VAL(ISD::FADD),// ->547871
/*547703*/            OPC_Scope, 82, /*->547787*/ // 2 children in Scope
/*547705*/              OPC_MoveChild0,
/*547706*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*547709*/              OPC_CheckChild0Same, 0,
/*547711*/              OPC_CheckChild1Integer, 0, 
/*547713*/              OPC_MoveParent,
/*547714*/              OPC_RecordChild1, // #1 = $src
/*547715*/              OPC_CheckType, MVT::f64,
/*547717*/              OPC_MoveParent,
/*547718*/              OPC_MoveParent,
/*547719*/              OPC_Scope, 21, /*->547742*/ // 3 children in Scope
/*547721*/                OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*547723*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*547726*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 1, 2,  // Results = #3
/*547734*/                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] }))
/*547742*/              /*Scope*/ 21, /*->547764*/
/*547743*/                OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*547745*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*547748*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 1, 2,  // Results = #3
/*547756*/                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] }))
/*547764*/              /*Scope*/ 21, /*->547786*/
/*547765*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*547767*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*547770*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 1, 2,  // Results = #3
/*547778*/                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] }))
/*547786*/              0, /*End of Scope*/
/*547787*/            /*Scope*/ 82, /*->547870*/
/*547788*/              OPC_RecordChild0, // #1 = $src
/*547789*/              OPC_MoveChild1,
/*547790*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*547793*/              OPC_CheckChild0Same, 0,
/*547795*/              OPC_CheckChild1Integer, 0, 
/*547797*/              OPC_MoveParent,
/*547798*/              OPC_CheckType, MVT::f64,
/*547800*/              OPC_MoveParent,
/*547801*/              OPC_MoveParent,
/*547802*/              OPC_Scope, 21, /*->547825*/ // 3 children in Scope
/*547804*/                OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*547806*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*547809*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 1, 2,  // Results = #3
/*547817*/                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] }))
/*547825*/              /*Scope*/ 21, /*->547847*/
/*547826*/                OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*547828*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*547831*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 1, 2,  // Results = #3
/*547839*/                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] }))
/*547847*/              /*Scope*/ 21, /*->547869*/
/*547848*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*547850*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*547853*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 1, 2,  // Results = #3
/*547861*/                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] }))
/*547869*/              0, /*End of Scope*/
/*547870*/            0, /*End of Scope*/
/*547871*/          /*SwitchOpcode*/ 64, TARGET_VAL(ISD::STRICT_FSUB),// ->547938
/*547874*/            OPC_RecordNode, // #1 = 'strict_fsub' chained node
/*547875*/            OPC_CheckFoldableChainNode,
/*547876*/            OPC_MoveChild1,
/*547877*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*547880*/            OPC_CheckChild0Same, 0,
/*547882*/            OPC_CheckChild1Integer, 0, 
/*547884*/            OPC_MoveParent,
/*547885*/            OPC_RecordChild2, // #2 = $src
/*547886*/            OPC_CheckType, MVT::f64,
/*547888*/            OPC_MoveParent,
/*547889*/            OPC_MoveParent,
/*547890*/            OPC_Scope, 22, /*->547914*/ // 2 children in Scope
/*547892*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*547894*/              OPC_EmitMergeInputChains1_1,
/*547895*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*547898*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*547906*/              OPC_MorphNodeTo1, TARGET_VAL(X86::SUBSDrr_Int), 0|OPFL_Chain,
                            MVT::v2f64, 2/*#Ops*/, 0, 4, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (strict_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] }))
/*547914*/            /*Scope*/ 22, /*->547937*/
/*547915*/              OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*547917*/              OPC_EmitMergeInputChains1_1,
/*547918*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*547921*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*547929*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSDrr_Int), 0|OPFL_Chain,
                            MVT::v2f64, 2/*#Ops*/, 0, 4, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (strict_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] }))
/*547937*/            0, /*End of Scope*/
/*547938*/          /*SwitchOpcode*/ 82, TARGET_VAL(ISD::FSUB),// ->548023
/*547941*/            OPC_MoveChild0,
/*547942*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*547945*/            OPC_CheckChild0Same, 0,
/*547947*/            OPC_CheckChild1Integer, 0, 
/*547949*/            OPC_MoveParent,
/*547950*/            OPC_RecordChild1, // #1 = $src
/*547951*/            OPC_CheckType, MVT::f64,
/*547953*/            OPC_MoveParent,
/*547954*/            OPC_MoveParent,
/*547955*/            OPC_Scope, 21, /*->547978*/ // 3 children in Scope
/*547957*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*547959*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*547962*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 2,  // Results = #3
/*547970*/              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] }))
/*547978*/            /*Scope*/ 21, /*->548000*/
/*547979*/              OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*547981*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*547984*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 2,  // Results = #3
/*547992*/              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] }))
/*548000*/            /*Scope*/ 21, /*->548022*/
/*548001*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*548003*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*548006*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 2,  // Results = #3
/*548014*/              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] }))
/*548022*/            0, /*End of Scope*/
/*548023*/          /*SwitchOpcode*/ 2|128,1/*130*/, TARGET_VAL(ISD::STRICT_FMUL),// ->548157
/*548027*/            OPC_RecordNode, // #1 = 'strict_fmul' chained node
/*548028*/            OPC_CheckFoldableChainNode,
/*548029*/            OPC_Scope, 62, /*->548093*/ // 2 children in Scope
/*548031*/              OPC_MoveChild1,
/*548032*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*548035*/              OPC_CheckChild0Same, 0,
/*548037*/              OPC_CheckChild1Integer, 0, 
/*548039*/              OPC_MoveParent,
/*548040*/              OPC_RecordChild2, // #2 = $src
/*548041*/              OPC_CheckType, MVT::f64,
/*548043*/              OPC_MoveParent,
/*548044*/              OPC_MoveParent,
/*548045*/              OPC_Scope, 22, /*->548069*/ // 2 children in Scope
/*548047*/                OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*548049*/                OPC_EmitMergeInputChains1_1,
/*548050*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*548053*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*548061*/                OPC_MorphNodeTo1, TARGET_VAL(X86::MULSDrr_Int), 0|OPFL_Chain,
                              MVT::v2f64, 2/*#Ops*/, 0, 4, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (strict_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] }))
/*548069*/              /*Scope*/ 22, /*->548092*/
/*548070*/                OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*548072*/                OPC_EmitMergeInputChains1_1,
/*548073*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*548076*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*548084*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSDrr_Int), 0|OPFL_Chain,
                              MVT::v2f64, 2/*#Ops*/, 0, 4, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (strict_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] }))
/*548092*/              0, /*End of Scope*/
/*548093*/            /*Scope*/ 62, /*->548156*/
/*548094*/              OPC_RecordChild1, // #2 = $src
/*548095*/              OPC_MoveChild2,
/*548096*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*548099*/              OPC_CheckChild0Same, 0,
/*548101*/              OPC_CheckChild1Integer, 0, 
/*548103*/              OPC_MoveParent,
/*548104*/              OPC_CheckType, MVT::f64,
/*548106*/              OPC_MoveParent,
/*548107*/              OPC_MoveParent,
/*548108*/              OPC_Scope, 22, /*->548132*/ // 2 children in Scope
/*548110*/                OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*548112*/                OPC_EmitMergeInputChains1_1,
/*548113*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*548116*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*548124*/                OPC_MorphNodeTo1, TARGET_VAL(X86::MULSDrr_Int), 0|OPFL_Chain,
                              MVT::v2f64, 2/*#Ops*/, 0, 4, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (strict_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] }))
/*548132*/              /*Scope*/ 22, /*->548155*/
/*548133*/                OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*548135*/                OPC_EmitMergeInputChains1_1,
/*548136*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*548139*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*548147*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSDrr_Int), 0|OPFL_Chain,
                              MVT::v2f64, 2/*#Ops*/, 0, 4, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (strict_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] }))
/*548155*/              0, /*End of Scope*/
/*548156*/            0, /*End of Scope*/
/*548157*/          /*SwitchOpcode*/ 40|128,1/*168*/, TARGET_VAL(ISD::FMUL),// ->548329
/*548161*/            OPC_Scope, 82, /*->548245*/ // 2 children in Scope
/*548163*/              OPC_MoveChild0,
/*548164*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*548167*/              OPC_CheckChild0Same, 0,
/*548169*/              OPC_CheckChild1Integer, 0, 
/*548171*/              OPC_MoveParent,
/*548172*/              OPC_RecordChild1, // #1 = $src
/*548173*/              OPC_CheckType, MVT::f64,
/*548175*/              OPC_MoveParent,
/*548176*/              OPC_MoveParent,
/*548177*/              OPC_Scope, 21, /*->548200*/ // 3 children in Scope
/*548179*/                OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*548181*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*548184*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 1, 2,  // Results = #3
/*548192*/                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] }))
/*548200*/              /*Scope*/ 21, /*->548222*/
/*548201*/                OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*548203*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*548206*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 1, 2,  // Results = #3
/*548214*/                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] }))
/*548222*/              /*Scope*/ 21, /*->548244*/
/*548223*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*548225*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*548228*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 1, 2,  // Results = #3
/*548236*/                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] }))
/*548244*/              0, /*End of Scope*/
/*548245*/            /*Scope*/ 82, /*->548328*/
/*548246*/              OPC_RecordChild0, // #1 = $src
/*548247*/              OPC_MoveChild1,
/*548248*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*548251*/              OPC_CheckChild0Same, 0,
/*548253*/              OPC_CheckChild1Integer, 0, 
/*548255*/              OPC_MoveParent,
/*548256*/              OPC_CheckType, MVT::f64,
/*548258*/              OPC_MoveParent,
/*548259*/              OPC_MoveParent,
/*548260*/              OPC_Scope, 21, /*->548283*/ // 3 children in Scope
/*548262*/                OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*548264*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*548267*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 1, 2,  // Results = #3
/*548275*/                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] }))
/*548283*/              /*Scope*/ 21, /*->548305*/
/*548284*/                OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*548286*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*548289*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 1, 2,  // Results = #3
/*548297*/                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] }))
/*548305*/              /*Scope*/ 21, /*->548327*/
/*548306*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*548308*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*548311*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 1, 2,  // Results = #3
/*548319*/                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] }))
/*548327*/              0, /*End of Scope*/
/*548328*/            0, /*End of Scope*/
/*548329*/          /*SwitchOpcode*/ 64, TARGET_VAL(ISD::STRICT_FDIV),// ->548396
/*548332*/            OPC_RecordNode, // #1 = 'strict_fdiv' chained node
/*548333*/            OPC_CheckFoldableChainNode,
/*548334*/            OPC_MoveChild1,
/*548335*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*548338*/            OPC_CheckChild0Same, 0,
/*548340*/            OPC_CheckChild1Integer, 0, 
/*548342*/            OPC_MoveParent,
/*548343*/            OPC_RecordChild2, // #2 = $src
/*548344*/            OPC_CheckType, MVT::f64,
/*548346*/            OPC_MoveParent,
/*548347*/            OPC_MoveParent,
/*548348*/            OPC_Scope, 22, /*->548372*/ // 2 children in Scope
/*548350*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*548352*/              OPC_EmitMergeInputChains1_1,
/*548353*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*548356*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*548364*/              OPC_MorphNodeTo1, TARGET_VAL(X86::DIVSDrr_Int), 0|OPFL_Chain,
                            MVT::v2f64, 2/*#Ops*/, 0, 4, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (strict_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] }))
/*548372*/            /*Scope*/ 22, /*->548395*/
/*548373*/              OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*548375*/              OPC_EmitMergeInputChains1_1,
/*548376*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*548379*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 2, 3,  // Results = #4
/*548387*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSDrr_Int), 0|OPFL_Chain,
                            MVT::v2f64, 2/*#Ops*/, 0, 4, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (strict_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] }))
/*548395*/            0, /*End of Scope*/
/*548396*/          /*SwitchOpcode*/ 82, TARGET_VAL(ISD::FDIV),// ->548481
/*548399*/            OPC_MoveChild0,
/*548400*/            OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*548403*/            OPC_CheckChild0Same, 0,
/*548405*/            OPC_CheckChild1Integer, 0, 
/*548407*/            OPC_MoveParent,
/*548408*/            OPC_RecordChild1, // #1 = $src
/*548409*/            OPC_CheckType, MVT::f64,
/*548411*/            OPC_MoveParent,
/*548412*/            OPC_MoveParent,
/*548413*/            OPC_Scope, 21, /*->548436*/ // 3 children in Scope
/*548415*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*548417*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*548420*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 2,  // Results = #3
/*548428*/              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] }))
/*548436*/            /*Scope*/ 21, /*->548458*/
/*548437*/              OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*548439*/              OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*548442*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 2,  // Results = #3
/*548450*/              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] }))
/*548458*/            /*Scope*/ 21, /*->548480*/
/*548459*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*548461*/              OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*548464*/              OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                            MVT::v2f64, 2/*#Ops*/, 1, 2,  // Results = #3
/*548472*/              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] }))
/*548480*/            0, /*End of Scope*/
/*548481*/          /*SwitchOpcode*/ 37|128,2/*293*/, TARGET_VAL(ISD::STRICT_FMA),// ->548778
/*548485*/            OPC_RecordNode, // #1 = 'X86strict_Fmadd' chained node
/*548486*/            OPC_CheckFoldableChainNode,
/*548487*/            OPC_Scope, 71|128,1/*199*/, /*->548689*/ // 2 children in Scope
/*548490*/              OPC_RecordChild1, // #2 = $src2
/*548491*/              OPC_Scope, 48, /*->548541*/ // 4 children in Scope
/*548493*/                OPC_MoveChild2,
/*548494*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*548497*/                OPC_CheckChild0Same, 0,
/*548499*/                OPC_CheckChild1Integer, 0, 
/*548501*/                OPC_MoveParent,
/*548502*/                OPC_RecordChild3, // #3 = $src3
/*548503*/                OPC_CheckType, MVT::f64,
/*548505*/                OPC_MoveParent,
/*548506*/                OPC_MoveParent,
/*548507*/                OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*548509*/                OPC_EmitMergeInputChains1_1,
/*548510*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*548513*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 4,  // Results = #5
/*548521*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*548524*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 6,  // Results = #7
/*548532*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SDr_Int), 0|OPFL_Chain,
                              MVT::v2f64, 3/*#Ops*/, 0, 5, 7, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86strict_Fmadd:{ *:[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] }))
/*548541*/              /*Scope*/ 48, /*->548590*/
/*548542*/                OPC_RecordChild2, // #3 = $src3
/*548543*/                OPC_MoveChild3,
/*548544*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*548547*/                OPC_CheckChild0Same, 0,
/*548549*/                OPC_CheckChild1Integer, 0, 
/*548551*/                OPC_MoveParent,
/*548552*/                OPC_CheckType, MVT::f64,
/*548554*/                OPC_MoveParent,
/*548555*/                OPC_MoveParent,
/*548556*/                OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*548558*/                OPC_EmitMergeInputChains1_1,
/*548559*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*548562*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 4,  // Results = #5
/*548570*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*548573*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 6,  // Results = #7
/*548581*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SDr_Int), 0|OPFL_Chain,
                              MVT::v2f64, 3/*#Ops*/, 0, 5, 7, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86strict_Fmadd:{ *:[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] }))
/*548590*/              /*Scope*/ 48, /*->548639*/
/*548591*/                OPC_MoveChild2,
/*548592*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*548595*/                OPC_CheckChild0Same, 0,
/*548597*/                OPC_CheckChild1Integer, 0, 
/*548599*/                OPC_MoveParent,
/*548600*/                OPC_RecordChild3, // #3 = $src3
/*548601*/                OPC_CheckType, MVT::f64,
/*548603*/                OPC_MoveParent,
/*548604*/                OPC_MoveParent,
/*548605*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*548607*/                OPC_EmitMergeInputChains1_1,
/*548608*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*548611*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 4,  // Results = #5
/*548619*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*548622*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 6,  // Results = #7
/*548630*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SDZr_Int), 0|OPFL_Chain,
                              MVT::v2f64, 3/*#Ops*/, 0, 5, 7, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86strict_Fmadd:{ *:[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] }))
/*548639*/              /*Scope*/ 48, /*->548688*/
/*548640*/                OPC_RecordChild2, // #3 = $src3
/*548641*/                OPC_MoveChild3,
/*548642*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*548645*/                OPC_CheckChild0Same, 0,
/*548647*/                OPC_CheckChild1Integer, 0, 
/*548649*/                OPC_MoveParent,
/*548650*/                OPC_CheckType, MVT::f64,
/*548652*/                OPC_MoveParent,
/*548653*/                OPC_MoveParent,
/*548654*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*548656*/                OPC_EmitMergeInputChains1_1,
/*548657*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*548660*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 4,  // Results = #5
/*548668*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*548671*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 6,  // Results = #7
/*548679*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD231SDZr_Int), 0|OPFL_Chain,
                              MVT::v2f64, 3/*#Ops*/, 0, 5, 7, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86strict_Fmadd:{ *:[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] }))
/*548688*/              0, /*End of Scope*/
/*548689*/            /*Scope*/ 87, /*->548777*/
/*548690*/              OPC_MoveChild1,
/*548691*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*548694*/              OPC_CheckChild0Same, 0,
/*548696*/              OPC_CheckChild1Integer, 0, 
/*548698*/              OPC_MoveParent,
/*548699*/              OPC_RecordChild2, // #2 = $src2
/*548700*/              OPC_RecordChild3, // #3 = $src3
/*548701*/              OPC_CheckType, MVT::f64,
/*548703*/              OPC_MoveParent,
/*548704*/              OPC_MoveParent,
/*548705*/              OPC_Scope, 34, /*->548741*/ // 2 children in Scope
/*548707*/                OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*548709*/                OPC_EmitMergeInputChains1_1,
/*548710*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*548713*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 4,  // Results = #5
/*548721*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*548724*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 6,  // Results = #7
/*548732*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SDr_Int), 0|OPFL_Chain,
                              MVT::v2f64, 3/*#Ops*/, 0, 5, 7, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86strict_Fmadd:{ *:[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] }))
/*548741*/              /*Scope*/ 34, /*->548776*/
/*548742*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*548744*/                OPC_EmitMergeInputChains1_1,
/*548745*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*548748*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 4,  // Results = #5
/*548756*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*548759*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 3, 6,  // Results = #7
/*548767*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADD213SDZr_Int), 0|OPFL_Chain,
                              MVT::v2f64, 3/*#Ops*/, 0, 5, 7, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (scalar_to_vector:{ *:[v2f64] } (X86strict_Fmadd:{ *:[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] }))
/*548776*/              0, /*End of Scope*/
/*548777*/            0, /*End of Scope*/
/*548778*/          /*SwitchOpcode*/ 29|128,2/*285*/, TARGET_VAL(ISD::FMA),// ->549067
/*548782*/            OPC_Scope, 67|128,1/*195*/, /*->548980*/ // 2 children in Scope
/*548785*/              OPC_RecordChild0, // #1 = $src2
/*548786*/              OPC_Scope, 47, /*->548835*/ // 4 children in Scope
/*548788*/                OPC_MoveChild1,
/*548789*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*548792*/                OPC_CheckChild0Same, 0,
/*548794*/                OPC_CheckChild1Integer, 0, 
/*548796*/                OPC_MoveParent,
/*548797*/                OPC_RecordChild2, // #2 = $src3
/*548798*/                OPC_CheckType, MVT::f64,
/*548800*/                OPC_MoveParent,
/*548801*/                OPC_MoveParent,
/*548802*/                OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*548804*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*548807*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 1, 3,  // Results = #4
/*548815*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*548818*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*548826*/                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] }))
/*548835*/              /*Scope*/ 47, /*->548883*/
/*548836*/                OPC_RecordChild1, // #2 = $src3
/*548837*/                OPC_MoveChild2,
/*548838*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*548841*/                OPC_CheckChild0Same, 0,
/*548843*/                OPC_CheckChild1Integer, 0, 
/*548845*/                OPC_MoveParent,
/*548846*/                OPC_CheckType, MVT::f64,
/*548848*/                OPC_MoveParent,
/*548849*/                OPC_MoveParent,
/*548850*/                OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*548852*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*548855*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 1, 3,  // Results = #4
/*548863*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*548866*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*548874*/                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] }))
/*548883*/              /*Scope*/ 47, /*->548931*/
/*548884*/                OPC_MoveChild1,
/*548885*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*548888*/                OPC_CheckChild0Same, 0,
/*548890*/                OPC_CheckChild1Integer, 0, 
/*548892*/                OPC_MoveParent,
/*548893*/                OPC_RecordChild2, // #2 = $src3
/*548894*/                OPC_CheckType, MVT::f64,
/*548896*/                OPC_MoveParent,
/*548897*/                OPC_MoveParent,
/*548898*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*548900*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*548903*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 1, 3,  // Results = #4
/*548911*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*548914*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*548922*/                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] }))
/*548931*/              /*Scope*/ 47, /*->548979*/
/*548932*/                OPC_RecordChild1, // #2 = $src3
/*548933*/                OPC_MoveChild2,
/*548934*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*548937*/                OPC_CheckChild0Same, 0,
/*548939*/                OPC_CheckChild1Integer, 0, 
/*548941*/                OPC_MoveParent,
/*548942*/                OPC_CheckType, MVT::f64,
/*548944*/                OPC_MoveParent,
/*548945*/                OPC_MoveParent,
/*548946*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*548948*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*548951*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 1, 3,  // Results = #4
/*548959*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*548962*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*548970*/                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] }))
/*548979*/              0, /*End of Scope*/
/*548980*/            /*Scope*/ 85, /*->549066*/
/*548981*/              OPC_MoveChild0,
/*548982*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*548985*/              OPC_CheckChild0Same, 0,
/*548987*/              OPC_CheckChild1Integer, 0, 
/*548989*/              OPC_MoveParent,
/*548990*/              OPC_RecordChild1, // #1 = $src2
/*548991*/              OPC_RecordChild2, // #2 = $src3
/*548992*/              OPC_CheckType, MVT::f64,
/*548994*/              OPC_MoveParent,
/*548995*/              OPC_MoveParent,
/*548996*/              OPC_Scope, 33, /*->549031*/ // 2 children in Scope
/*548998*/                OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*549000*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*549003*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 1, 3,  // Results = #4
/*549011*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*549014*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*549022*/                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] }))
/*549031*/              /*Scope*/ 33, /*->549065*/
/*549032*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*549034*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*549037*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 1, 3,  // Results = #4
/*549045*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*549048*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*549056*/                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] }))
/*549065*/              0, /*End of Scope*/
/*549066*/            0, /*End of Scope*/
/*549067*/          /*SwitchOpcode*/ 29|128,2/*285*/, TARGET_VAL(X86ISD::FMSUB),// ->549356
/*549071*/            OPC_Scope, 67|128,1/*195*/, /*->549269*/ // 2 children in Scope
/*549074*/              OPC_RecordChild0, // #1 = $src2
/*549075*/              OPC_Scope, 47, /*->549124*/ // 4 children in Scope
/*549077*/                OPC_MoveChild1,
/*549078*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*549081*/                OPC_CheckChild0Same, 0,
/*549083*/                OPC_CheckChild1Integer, 0, 
/*549085*/                OPC_MoveParent,
/*549086*/                OPC_RecordChild2, // #2 = $src3
/*549087*/                OPC_CheckType, MVT::f64,
/*549089*/                OPC_MoveParent,
/*549090*/                OPC_MoveParent,
/*549091*/                OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*549093*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*549096*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 1, 3,  // Results = #4
/*549104*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*549107*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*549115*/                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] }))
/*549124*/              /*Scope*/ 47, /*->549172*/
/*549125*/                OPC_RecordChild1, // #2 = $src3
/*549126*/                OPC_MoveChild2,
/*549127*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*549130*/                OPC_CheckChild0Same, 0,
/*549132*/                OPC_CheckChild1Integer, 0, 
/*549134*/                OPC_MoveParent,
/*549135*/                OPC_CheckType, MVT::f64,
/*549137*/                OPC_MoveParent,
/*549138*/                OPC_MoveParent,
/*549139*/                OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*549141*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*549144*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 1, 3,  // Results = #4
/*549152*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*549155*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*549163*/                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] }))
/*549172*/              /*Scope*/ 47, /*->549220*/
/*549173*/                OPC_MoveChild1,
/*549174*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*549177*/                OPC_CheckChild0Same, 0,
/*549179*/                OPC_CheckChild1Integer, 0, 
/*549181*/                OPC_MoveParent,
/*549182*/                OPC_RecordChild2, // #2 = $src3
/*549183*/                OPC_CheckType, MVT::f64,
/*549185*/                OPC_MoveParent,
/*549186*/                OPC_MoveParent,
/*549187*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*549189*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*549192*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 1, 3,  // Results = #4
/*549200*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*549203*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*549211*/                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] }))
/*549220*/              /*Scope*/ 47, /*->549268*/
/*549221*/                OPC_RecordChild1, // #2 = $src3
/*549222*/                OPC_MoveChild2,
/*549223*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*549226*/                OPC_CheckChild0Same, 0,
/*549228*/                OPC_CheckChild1Integer, 0, 
/*549230*/                OPC_MoveParent,
/*549231*/                OPC_CheckType, MVT::f64,
/*549233*/                OPC_MoveParent,
/*549234*/                OPC_MoveParent,
/*549235*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*549237*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*549240*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 1, 3,  // Results = #4
/*549248*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*549251*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*549259*/                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] }))
/*549268*/              0, /*End of Scope*/
/*549269*/            /*Scope*/ 85, /*->549355*/
/*549270*/              OPC_MoveChild0,
/*549271*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*549274*/              OPC_CheckChild0Same, 0,
/*549276*/              OPC_CheckChild1Integer, 0, 
/*549278*/              OPC_MoveParent,
/*549279*/              OPC_RecordChild1, // #1 = $src2
/*549280*/              OPC_RecordChild2, // #2 = $src3
/*549281*/              OPC_CheckType, MVT::f64,
/*549283*/              OPC_MoveParent,
/*549284*/              OPC_MoveParent,
/*549285*/              OPC_Scope, 33, /*->549320*/ // 2 children in Scope
/*549287*/                OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*549289*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*549292*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 1, 3,  // Results = #4
/*549300*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*549303*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*549311*/                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] }))
/*549320*/              /*Scope*/ 33, /*->549354*/
/*549321*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*549323*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*549326*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 1, 3,  // Results = #4
/*549334*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*549337*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*549345*/                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] }))
/*549354*/              0, /*End of Scope*/
/*549355*/            0, /*End of Scope*/
/*549356*/          /*SwitchOpcode*/ 29|128,2/*285*/, TARGET_VAL(X86ISD::FNMADD),// ->549645
/*549360*/            OPC_Scope, 67|128,1/*195*/, /*->549558*/ // 2 children in Scope
/*549363*/              OPC_RecordChild0, // #1 = $src2
/*549364*/              OPC_Scope, 47, /*->549413*/ // 4 children in Scope
/*549366*/                OPC_MoveChild1,
/*549367*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*549370*/                OPC_CheckChild0Same, 0,
/*549372*/                OPC_CheckChild1Integer, 0, 
/*549374*/                OPC_MoveParent,
/*549375*/                OPC_RecordChild2, // #2 = $src3
/*549376*/                OPC_CheckType, MVT::f64,
/*549378*/                OPC_MoveParent,
/*549379*/                OPC_MoveParent,
/*549380*/                OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*549382*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*549385*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 1, 3,  // Results = #4
/*549393*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*549396*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*549404*/                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] }))
/*549413*/              /*Scope*/ 47, /*->549461*/
/*549414*/                OPC_RecordChild1, // #2 = $src3
/*549415*/                OPC_MoveChild2,
/*549416*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*549419*/                OPC_CheckChild0Same, 0,
/*549421*/                OPC_CheckChild1Integer, 0, 
/*549423*/                OPC_MoveParent,
/*549424*/                OPC_CheckType, MVT::f64,
/*549426*/                OPC_MoveParent,
/*549427*/                OPC_MoveParent,
/*549428*/                OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*549430*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*549433*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 1, 3,  // Results = #4
/*549441*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*549444*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*549452*/                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] }))
/*549461*/              /*Scope*/ 47, /*->549509*/
/*549462*/                OPC_MoveChild1,
/*549463*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*549466*/                OPC_CheckChild0Same, 0,
/*549468*/                OPC_CheckChild1Integer, 0, 
/*549470*/                OPC_MoveParent,
/*549471*/                OPC_RecordChild2, // #2 = $src3
/*549472*/                OPC_CheckType, MVT::f64,
/*549474*/                OPC_MoveParent,
/*549475*/                OPC_MoveParent,
/*549476*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*549478*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*549481*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 1, 3,  // Results = #4
/*549489*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*549492*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*549500*/                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] }))
/*549509*/              /*Scope*/ 47, /*->549557*/
/*549510*/                OPC_RecordChild1, // #2 = $src3
/*549511*/                OPC_MoveChild2,
/*549512*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*549515*/                OPC_CheckChild0Same, 0,
/*549517*/                OPC_CheckChild1Integer, 0, 
/*549519*/                OPC_MoveParent,
/*549520*/                OPC_CheckType, MVT::f64,
/*549522*/                OPC_MoveParent,
/*549523*/                OPC_MoveParent,
/*549524*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*549526*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*549529*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 1, 3,  // Results = #4
/*549537*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*549540*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*549548*/                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] }))
/*549557*/              0, /*End of Scope*/
/*549558*/            /*Scope*/ 85, /*->549644*/
/*549559*/              OPC_MoveChild0,
/*549560*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*549563*/              OPC_CheckChild0Same, 0,
/*549565*/              OPC_CheckChild1Integer, 0, 
/*549567*/              OPC_MoveParent,
/*549568*/              OPC_RecordChild1, // #1 = $src2
/*549569*/              OPC_RecordChild2, // #2 = $src3
/*549570*/              OPC_CheckType, MVT::f64,
/*549572*/              OPC_MoveParent,
/*549573*/              OPC_MoveParent,
/*549574*/              OPC_Scope, 33, /*->549609*/ // 2 children in Scope
/*549576*/                OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*549578*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*549581*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 1, 3,  // Results = #4
/*549589*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*549592*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*549600*/                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] }))
/*549609*/              /*Scope*/ 33, /*->549643*/
/*549610*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*549612*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*549615*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 1, 3,  // Results = #4
/*549623*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*549626*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*549634*/                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] }))
/*549643*/              0, /*End of Scope*/
/*549644*/            0, /*End of Scope*/
/*549645*/          /*SwitchOpcode*/ 29|128,2/*285*/, TARGET_VAL(X86ISD::FNMSUB),// ->549934
/*549649*/            OPC_Scope, 67|128,1/*195*/, /*->549847*/ // 2 children in Scope
/*549652*/              OPC_RecordChild0, // #1 = $src2
/*549653*/              OPC_Scope, 47, /*->549702*/ // 4 children in Scope
/*549655*/                OPC_MoveChild1,
/*549656*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*549659*/                OPC_CheckChild0Same, 0,
/*549661*/                OPC_CheckChild1Integer, 0, 
/*549663*/                OPC_MoveParent,
/*549664*/                OPC_RecordChild2, // #2 = $src3
/*549665*/                OPC_CheckType, MVT::f64,
/*549667*/                OPC_MoveParent,
/*549668*/                OPC_MoveParent,
/*549669*/                OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*549671*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*549674*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 1, 3,  // Results = #4
/*549682*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*549685*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*549693*/                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] }))
/*549702*/              /*Scope*/ 47, /*->549750*/
/*549703*/                OPC_RecordChild1, // #2 = $src3
/*549704*/                OPC_MoveChild2,
/*549705*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*549708*/                OPC_CheckChild0Same, 0,
/*549710*/                OPC_CheckChild1Integer, 0, 
/*549712*/                OPC_MoveParent,
/*549713*/                OPC_CheckType, MVT::f64,
/*549715*/                OPC_MoveParent,
/*549716*/                OPC_MoveParent,
/*549717*/                OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*549719*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*549722*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 1, 3,  // Results = #4
/*549730*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*549733*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*549741*/                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] }))
/*549750*/              /*Scope*/ 47, /*->549798*/
/*549751*/                OPC_MoveChild1,
/*549752*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*549755*/                OPC_CheckChild0Same, 0,
/*549757*/                OPC_CheckChild1Integer, 0, 
/*549759*/                OPC_MoveParent,
/*549760*/                OPC_RecordChild2, // #2 = $src3
/*549761*/                OPC_CheckType, MVT::f64,
/*549763*/                OPC_MoveParent,
/*549764*/                OPC_MoveParent,
/*549765*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*549767*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*549770*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 1, 3,  // Results = #4
/*549778*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*549781*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*549789*/                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] }))
/*549798*/              /*Scope*/ 47, /*->549846*/
/*549799*/                OPC_RecordChild1, // #2 = $src3
/*549800*/                OPC_MoveChild2,
/*549801*/                OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*549804*/                OPC_CheckChild0Same, 0,
/*549806*/                OPC_CheckChild1Integer, 0, 
/*549808*/                OPC_MoveParent,
/*549809*/                OPC_CheckType, MVT::f64,
/*549811*/                OPC_MoveParent,
/*549812*/                OPC_MoveParent,
/*549813*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*549815*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*549818*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 1, 3,  // Results = #4
/*549826*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*549829*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*549837*/                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] }))
/*549846*/              0, /*End of Scope*/
/*549847*/            /*Scope*/ 85, /*->549933*/
/*549848*/              OPC_MoveChild0,
/*549849*/              OPC_CheckOpcode, TARGET_VAL(ISD::EXTRACT_VECTOR_ELT),
/*549852*/              OPC_CheckChild0Same, 0,
/*549854*/              OPC_CheckChild1Integer, 0, 
/*549856*/              OPC_MoveParent,
/*549857*/              OPC_RecordChild1, // #1 = $src2
/*549858*/              OPC_RecordChild2, // #2 = $src3
/*549859*/              OPC_CheckType, MVT::f64,
/*549861*/              OPC_MoveParent,
/*549862*/              OPC_MoveParent,
/*549863*/              OPC_Scope, 33, /*->549898*/ // 2 children in Scope
/*549865*/                OPC_CheckPatternPredicate, 196, // (Subtarget->hasFMA()) && (!Subtarget->hasAVX512())
/*549867*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*549870*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 1, 3,  // Results = #4
/*549878*/                OPC_EmitInteger, MVT::i32, X86::VR128RegClassID,
/*549881*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*549889*/                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] }))
/*549898*/              /*Scope*/ 33, /*->549932*/
/*549899*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*549901*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*549904*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 1, 3,  // Results = #4
/*549912*/                OPC_EmitInteger, MVT::i32, X86::VR128XRegClassID,
/*549915*/                OPC_EmitNode1, TARGET_VAL(TargetOpcode::COPY_TO_REGCLASS), 0,
                              MVT::v2f64, 2/*#Ops*/, 2, 5,  // Results = #6
/*549923*/                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] }))
/*549932*/              0, /*End of Scope*/
/*549933*/            0, /*End of Scope*/
/*549934*/          /*SwitchOpcode*/ 93, TARGET_VAL(ISD::STRICT_SINT_TO_FP),// ->550030
/*549937*/            OPC_RecordNode, // #1 = 'strict_sint_to_fp' chained node
/*549938*/            OPC_CheckFoldableChainNode,
/*549939*/            OPC_RecordChild1, // #2 = $src
/*549940*/            OPC_CheckType, MVT::f64,
/*549942*/            OPC_Scope, 42, /*->549986*/ // 2 children in Scope
/*549944*/              OPC_CheckChild1Type, MVT::i64,
/*549946*/              OPC_MoveParent,
/*549947*/              OPC_MoveParent,
/*549948*/              OPC_Scope, 11, /*->549961*/ // 3 children in Scope
/*549950*/                OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*549952*/                OPC_EmitMergeInputChains1_1,
/*549953*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI642SDrr_Int), 0|OPFL_Chain,
                              MVT::v2f64, 2/*#Ops*/, 0, 2, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (strict_sint_to_fp:{ *:[f64] } GR64:{ *:[i64] }:$src))) - Complexity = 9
                          // Dst: (VCVTSI642SDrr_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, GR64:{ *:[i64] }:$src)
/*549961*/              /*Scope*/ 11, /*->549973*/
/*549962*/                OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*549964*/                OPC_EmitMergeInputChains1_1,
/*549965*/                OPC_MorphNodeTo1, TARGET_VAL(X86::CVTSI642SDrr_Int), 0|OPFL_Chain,
                              MVT::v2f64, 2/*#Ops*/, 0, 2, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (strict_sint_to_fp:{ *:[f64] } GR64:{ *:[i64] }:$src))) - Complexity = 9
                          // Dst: (CVTSI642SDrr_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, GR64:{ *:[i64] }:$src)
/*549973*/              /*Scope*/ 11, /*->549985*/
/*549974*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*549976*/                OPC_EmitMergeInputChains1_1,
/*549977*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI642SDZrr_Int), 0,
                              MVT::v2f64, 2/*#Ops*/, 0, 2, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (strict_sint_to_fp:{ *:[f64] } GR64:{ *:[i64] }:$src))) - Complexity = 9
                          // Dst: (VCVTSI642SDZrr_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$dst, GR64:{ *:[i64] }:$src)
/*549985*/              0, /*End of Scope*/
/*549986*/            /*Scope*/ 42, /*->550029*/
/*549987*/              OPC_CheckChild1Type, MVT::i32,
/*549989*/              OPC_MoveParent,
/*549990*/              OPC_MoveParent,
/*549991*/              OPC_Scope, 11, /*->550004*/ // 3 children in Scope
/*549993*/                OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*549995*/                OPC_EmitMergeInputChains1_1,
/*549996*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI2SDrr_Int), 0|OPFL_Chain,
                              MVT::v2f64, 2/*#Ops*/, 0, 2, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (strict_sint_to_fp:{ *:[f64] } GR32:{ *:[i32] }:$src))) - Complexity = 9
                          // Dst: (VCVTSI2SDrr_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, GR32:{ *:[i32] }:$src)
/*550004*/              /*Scope*/ 11, /*->550016*/
/*550005*/                OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*550007*/                OPC_EmitMergeInputChains1_1,
/*550008*/                OPC_MorphNodeTo1, TARGET_VAL(X86::CVTSI2SDrr_Int), 0|OPFL_Chain,
                              MVT::v2f64, 2/*#Ops*/, 0, 2, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (strict_sint_to_fp:{ *:[f64] } GR32:{ *:[i32] }:$src))) - Complexity = 9
                          // Dst: (CVTSI2SDrr_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$dst, GR32:{ *:[i32] }:$src)
/*550016*/              /*Scope*/ 11, /*->550028*/
/*550017*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*550019*/                OPC_EmitMergeInputChains1_1,
/*550020*/                OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI2SDZrr_Int), 0|OPFL_Chain,
                              MVT::v2f64, 2/*#Ops*/, 0, 2, 
                          // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (strict_sint_to_fp:{ *:[f64] } GR32:{ *:[i32] }:$src))) - Complexity = 9
                          // Dst: (VCVTSI2SDZrr_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$dst, GR32:{ *:[i32] }:$src)
/*550028*/              0, /*End of Scope*/
/*550029*/            0, /*End of Scope*/
/*550030*/          /*SwitchOpcode*/ 85, TARGET_VAL(ISD::SINT_TO_FP),// ->550118
/*550033*/            OPC_RecordChild0, // #1 = $src
/*550034*/            OPC_CheckType, MVT::f64,
/*550036*/            OPC_Scope, 39, /*->550077*/ // 2 children in Scope
/*550038*/              OPC_CheckChild0Type, MVT::i64,
/*550040*/              OPC_MoveParent,
/*550041*/              OPC_MoveParent,
/*550042*/              OPC_Scope, 10, /*->550054*/ // 3 children in Scope
/*550044*/                OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*550046*/                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)
/*550054*/              /*Scope*/ 10, /*->550065*/
/*550055*/                OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*550057*/                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)
/*550065*/              /*Scope*/ 10, /*->550076*/
/*550066*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*550068*/                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)
/*550076*/              0, /*End of Scope*/
/*550077*/            /*Scope*/ 39, /*->550117*/
/*550078*/              OPC_CheckChild0Type, MVT::i32,
/*550080*/              OPC_MoveParent,
/*550081*/              OPC_MoveParent,
/*550082*/              OPC_Scope, 10, /*->550094*/ // 3 children in Scope
/*550084*/                OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*550086*/                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)
/*550094*/              /*Scope*/ 10, /*->550105*/
/*550095*/                OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*550097*/                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)
/*550105*/              /*Scope*/ 10, /*->550116*/
/*550106*/                OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*550108*/                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)
/*550116*/              0, /*End of Scope*/
/*550117*/            0, /*End of Scope*/
/*550118*/          /*SwitchOpcode*/ 39, TARGET_VAL(ISD::STRICT_UINT_TO_FP),// ->550160
/*550121*/            OPC_RecordNode, // #1 = 'strict_uint_to_fp' chained node
/*550122*/            OPC_CheckFoldableChainNode,
/*550123*/            OPC_RecordChild1, // #2 = $src
/*550124*/            OPC_CheckType, MVT::f64,
/*550126*/            OPC_Scope, 15, /*->550143*/ // 2 children in Scope
/*550128*/              OPC_CheckChild1Type, MVT::i64,
/*550130*/              OPC_MoveParent,
/*550131*/              OPC_MoveParent,
/*550132*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*550134*/              OPC_EmitMergeInputChains1_1,
/*550135*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUSI642SDZrr_Int), 0,
                            MVT::v2f64, 2/*#Ops*/, 0, 2, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (strict_uint_to_fp:{ *:[f64] } GR64:{ *:[i64] }:$src))) - Complexity = 9
                        // Dst: (VCVTUSI642SDZrr_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$dst, GR64:{ *:[i64] }:$src)
/*550143*/            /*Scope*/ 15, /*->550159*/
/*550144*/              OPC_CheckChild1Type, MVT::i32,
/*550146*/              OPC_MoveParent,
/*550147*/              OPC_MoveParent,
/*550148*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*550150*/              OPC_EmitMergeInputChains1_1,
/*550151*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUSI2SDZrr_Int), 0|OPFL_Chain,
                            MVT::v2f64, 2/*#Ops*/, 0, 2, 
                        // Src: (X86Movsd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$dst, (scalar_to_vector:{ *:[v2f64] } (strict_uint_to_fp:{ *:[f64] } GR32:{ *:[i32] }:$src))) - Complexity = 9
                        // Dst: (VCVTUSI2SDZrr_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$dst, GR32:{ *:[i32] }:$src)
/*550159*/            0, /*End of Scope*/
/*550160*/          /*SwitchOpcode*/ 35, TARGET_VAL(ISD::UINT_TO_FP),// ->550198
/*550163*/            OPC_RecordChild0, // #1 = $src
/*550164*/            OPC_CheckType, MVT::f64,
/*550166*/            OPC_Scope, 14, /*->550182*/ // 2 children in Scope
/*550168*/              OPC_CheckChild0Type, MVT::i64,
/*550170*/              OPC_MoveParent,
/*550171*/              OPC_MoveParent,
/*550172*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*550174*/              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)
/*550182*/            /*Scope*/ 14, /*->550197*/
/*550183*/              OPC_CheckChild0Type, MVT::i32,
/*550185*/              OPC_MoveParent,
/*550186*/              OPC_MoveParent,
/*550187*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*550189*/              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)
/*550197*/            0, /*End of Scope*/
/*550198*/          0, // EndSwitchOpcode
/*550199*/        0, // EndSwitchOpcode
/*550200*/      /*Scope*/ 66, /*->550267*/
/*550201*/        OPC_RecordChild1, // #1 = $src2
/*550202*/        OPC_Scope, 10, /*->550214*/ // 5 children in Scope
/*550204*/          OPC_CheckPatternPredicate, 125, // (shouldOptForSize(MF)) && (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*550206*/          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)
/*550214*/        /*Scope*/ 10, /*->550225*/
/*550215*/          OPC_CheckPatternPredicate, 197, // (shouldOptForSize(MF) || !Subtarget->hasSSE41()) && (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*550217*/          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)
/*550225*/        /*Scope*/ 14, /*->550240*/
/*550226*/          OPC_CheckPatternPredicate, 127, // (Subtarget->hasAVX()) && (!shouldOptForSize(MF))
/*550228*/          OPC_EmitInteger, MVT::i8, 1, 
/*550231*/          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] })
/*550240*/        /*Scope*/ 14, /*->550255*/
/*550241*/          OPC_CheckPatternPredicate, 128, // (!shouldOptForSize(MF)) && (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*550243*/          OPC_EmitInteger, MVT::i8, 1, 
/*550246*/          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] })
/*550255*/        /*Scope*/ 10, /*->550266*/
/*550256*/          OPC_CheckPatternPredicate, 129, // (Subtarget->hasAVX512()) && (shouldOptForSize(MF))
/*550258*/          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)
/*550266*/        0, /*End of Scope*/
/*550267*/      0, /*End of Scope*/
/*550268*/    0, /*End of Scope*/
/*550269*/  /*SwitchOpcode*/ 88|128,2/*344*/, TARGET_VAL(X86ISD::STRICT_CVTSI2P),// ->550617
/*550273*/    OPC_RecordNode, // #0 = 'X86strict_VSintToFP' chained node
/*550274*/    OPC_Scope, 26|128,2/*282*/, /*->550559*/ // 2 children in Scope
/*550277*/      OPC_MoveChild1,
/*550278*/      OPC_SwitchOpcode /*3 cases */, 48|128,1/*176*/, TARGET_VAL(ISD::BITCAST),// ->550459
/*550283*/        OPC_MoveChild0,
/*550284*/        OPC_SwitchOpcode /*2 cases */, 88, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->550376
/*550288*/          OPC_MoveChild0,
/*550289*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*550292*/          OPC_RecordMemRef,
/*550293*/          OPC_RecordNode, // #1 = 'ld' chained node
/*550294*/          OPC_CheckFoldableChainNode,
/*550295*/          OPC_RecordChild1, // #2 = $src
/*550296*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*550298*/          OPC_CheckPredicate, 9, // Predicate_load
/*550300*/          OPC_CheckType, MVT::i64,
/*550302*/          OPC_MoveParent,
/*550303*/          OPC_CheckType, MVT::v2i64,
/*550305*/          OPC_MoveParent,
/*550306*/          OPC_CheckType, MVT::v4i32,
/*550308*/          OPC_MoveParent,
/*550309*/          OPC_CheckType, MVT::v2f64,
/*550311*/          OPC_Scope, 20, /*->550333*/ // 3 children in Scope
/*550313*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*550315*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*550318*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*550322*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (X86strict_VSintToFP:{ *:[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)
/*550333*/          /*Scope*/ 20, /*->550354*/
/*550334*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*550336*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*550339*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*550343*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CVTDQ2PDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (X86strict_VSintToFP:{ *:[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)
/*550354*/          /*Scope*/ 20, /*->550375*/
/*550355*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*550357*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*550360*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*550364*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (X86strict_VSintToFP:{ *:[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)
/*550375*/          0, /*End of Scope*/
/*550376*/        /*SwitchOpcode*/ 79, TARGET_VAL(X86ISD::VZEXT_LOAD),// ->550458
/*550379*/          OPC_RecordMemRef,
/*550380*/          OPC_RecordNode, // #1 = 'X86vzld' chained node
/*550381*/          OPC_CheckFoldableChainNode,
/*550382*/          OPC_RecordChild1, // #2 = $src
/*550383*/          OPC_CheckPredicate, 49, // Predicate_X86vzload64
/*550385*/          OPC_CheckType, MVT::v2i64,
/*550387*/          OPC_MoveParent,
/*550388*/          OPC_CheckType, MVT::v4i32,
/*550390*/          OPC_MoveParent,
/*550391*/          OPC_CheckType, MVT::v2f64,
/*550393*/          OPC_Scope, 20, /*->550415*/ // 3 children in Scope
/*550395*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*550397*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*550400*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*550404*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (X86strict_VSintToFP:{ *:[v2f64] } (bitconvert:{ *:[v4i32] } (X86vzld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>)) - Complexity = 28
                      // Dst: (VCVTDQ2PDrm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*550415*/          /*Scope*/ 20, /*->550436*/
/*550416*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*550418*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*550421*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*550425*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CVTDQ2PDrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (X86strict_VSintToFP:{ *:[v2f64] } (bitconvert:{ *:[v4i32] } (X86vzld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>)) - Complexity = 28
                      // Dst: (CVTDQ2PDrm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*550436*/          /*Scope*/ 20, /*->550457*/
/*550437*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*550439*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*550442*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*550446*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (X86strict_VSintToFP:{ *:[v2f64] } (bitconvert:{ *:[v4i32] } (X86vzld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>)) - Complexity = 28
                      // Dst: (VCVTDQ2PDZ128rm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*550457*/          0, /*End of Scope*/
/*550458*/        0, // EndSwitchOpcode
/*550459*/      /*SwitchOpcode*/ 60, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->550522
/*550462*/        OPC_RecordMemRef,
/*550463*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*550464*/        OPC_CheckFoldableChainNode,
/*550465*/        OPC_RecordChild1, // #2 = $src
/*550466*/        OPC_SwitchType /*2 cases */, 25, MVT::v4i32,// ->550494
/*550469*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*550471*/          OPC_MoveParent,
/*550472*/          OPC_CheckType, MVT::v2f64,
/*550474*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*550476*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*550479*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*550483*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (X86strict_VSintToFP:{ *:[v2f64] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                    // Dst: (VCVTDQ2PDZ128rmb:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*550494*/        /*SwitchType*/ 25, MVT::v2i64,// ->550521
/*550496*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*550498*/          OPC_MoveParent,
/*550499*/          OPC_CheckType, MVT::v4f32,
/*550501*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*550503*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*550506*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*550510*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PSZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (X86strict_VSintToFP:{ *:[v4f32] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                    // Dst: (VCVTQQ2PSZ128rmb:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*550521*/        0, // EndSwitchType
/*550522*/      /*SwitchOpcode*/ 33, TARGET_VAL(ISD::LOAD),// ->550558
/*550525*/        OPC_RecordMemRef,
/*550526*/        OPC_RecordNode, // #1 = 'ld' chained node
/*550527*/        OPC_CheckFoldableChainNode,
/*550528*/        OPC_RecordChild1, // #2 = $src
/*550529*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*550531*/        OPC_CheckPredicate, 9, // Predicate_load
/*550533*/        OPC_CheckType, MVT::v2i64,
/*550535*/        OPC_MoveParent,
/*550536*/        OPC_CheckType, MVT::v4f32,
/*550538*/        OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*550540*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*550543*/        OPC_EmitMergeInputChains, 2, 0, 1, 
/*550547*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PSZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                  // Src: (X86strict_VSintToFP:{ *:[v4f32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VCVTQQ2PSZ128rm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*550558*/      0, // EndSwitchOpcode
/*550559*/    /*Scope*/ 56, /*->550616*/
/*550560*/      OPC_RecordChild1, // #1 = $src
/*550561*/      OPC_SwitchType /*2 cases */, 37, MVT::v2f64,// ->550601
/*550564*/        OPC_CheckChild1Type, MVT::v4i32,
/*550566*/        OPC_Scope, 10, /*->550578*/ // 3 children in Scope
/*550568*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*550570*/          OPC_EmitMergeInputChains1_0,
/*550571*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDrr), 0|OPFL_Chain,
                        MVT::v2f64, 1/*#Ops*/, 1, 
                    // Src: (X86strict_VSintToFP:{ *:[v2f64] } VR128:{ *:[v4i32] }:$src) - Complexity = 3
                    // Dst: (VCVTDQ2PDrr:{ *:[v2f64] } VR128:{ *:[v4i32] }:$src)
/*550578*/        /*Scope*/ 10, /*->550589*/
/*550579*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*550581*/          OPC_EmitMergeInputChains1_0,
/*550582*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CVTDQ2PDrr), 0|OPFL_Chain,
                        MVT::v2f64, 1/*#Ops*/, 1, 
                    // Src: (X86strict_VSintToFP:{ *:[v2f64] } VR128:{ *:[v4i32] }:$src) - Complexity = 3
                    // Dst: (CVTDQ2PDrr:{ *:[v2f64] } VR128:{ *:[v4i32] }:$src)
/*550589*/        /*Scope*/ 10, /*->550600*/
/*550590*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*550592*/          OPC_EmitMergeInputChains1_0,
/*550593*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDZ128rr), 0|OPFL_Chain,
                        MVT::v2f64, 1/*#Ops*/, 1, 
                    // Src: (X86strict_VSintToFP:{ *:[v2f64] } VR128X:{ *:[v4i32] }:$src) - Complexity = 3
                    // Dst: (VCVTDQ2PDZ128rr:{ *:[v2f64] } VR128X:{ *:[v4i32] }:$src)
/*550600*/        0, /*End of Scope*/
/*550601*/      /*SwitchType*/ 12, MVT::v4f32,// ->550615
/*550603*/        OPC_CheckChild1Type, MVT::v2i64,
/*550605*/        OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*550607*/        OPC_EmitMergeInputChains1_0,
/*550608*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PSZ128rr), 0|OPFL_Chain,
                      MVT::v4f32, 1/*#Ops*/, 1, 
                  // Src: (X86strict_VSintToFP:{ *:[v4f32] } VR128X:{ *:[v2i64] }:$src) - Complexity = 3
                  // Dst: (VCVTQQ2PSZ128rr:{ *:[v4f32] } VR128X:{ *:[v2i64] }:$src)
/*550615*/      0, // EndSwitchType
/*550616*/    0, /*End of Scope*/
/*550617*/  /*SwitchOpcode*/ 54|128,2/*310*/, TARGET_VAL(X86ISD::CVTSI2P),// ->550931
/*550621*/    OPC_Scope, 125|128,1/*253*/, /*->550877*/ // 2 children in Scope
/*550624*/      OPC_MoveChild0,
/*550625*/      OPC_SwitchOpcode /*3 cases */, 30|128,1/*158*/, TARGET_VAL(ISD::BITCAST),// ->550788
/*550630*/        OPC_MoveChild0,
/*550631*/        OPC_SwitchOpcode /*2 cases */, 79, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->550714
/*550635*/          OPC_MoveChild0,
/*550636*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*550639*/          OPC_RecordMemRef,
/*550640*/          OPC_RecordNode, // #0 = 'ld' chained node
/*550641*/          OPC_CheckFoldableChainNode,
/*550642*/          OPC_RecordChild1, // #1 = $src
/*550643*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*550645*/          OPC_CheckPredicate, 9, // Predicate_load
/*550647*/          OPC_CheckType, MVT::i64,
/*550649*/          OPC_MoveParent,
/*550650*/          OPC_CheckType, MVT::v2i64,
/*550652*/          OPC_MoveParent,
/*550653*/          OPC_CheckType, MVT::v4i32,
/*550655*/          OPC_MoveParent,
/*550656*/          OPC_CheckType, MVT::v2f64,
/*550658*/          OPC_Scope, 17, /*->550677*/ // 3 children in Scope
/*550660*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*550662*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*550665*/            OPC_EmitMergeInputChains1_0,
/*550666*/            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)
/*550677*/          /*Scope*/ 17, /*->550695*/
/*550678*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*550680*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*550683*/            OPC_EmitMergeInputChains1_0,
/*550684*/            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)
/*550695*/          /*Scope*/ 17, /*->550713*/
/*550696*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*550698*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*550701*/            OPC_EmitMergeInputChains1_0,
/*550702*/            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)
/*550713*/          0, /*End of Scope*/
/*550714*/        /*SwitchOpcode*/ 70, TARGET_VAL(X86ISD::VZEXT_LOAD),// ->550787
/*550717*/          OPC_RecordMemRef,
/*550718*/          OPC_RecordNode, // #0 = 'X86vzld' chained node
/*550719*/          OPC_CheckFoldableChainNode,
/*550720*/          OPC_RecordChild1, // #1 = $src
/*550721*/          OPC_CheckPredicate, 49, // Predicate_X86vzload64
/*550723*/          OPC_CheckType, MVT::v2i64,
/*550725*/          OPC_MoveParent,
/*550726*/          OPC_CheckType, MVT::v4i32,
/*550728*/          OPC_MoveParent,
/*550729*/          OPC_CheckType, MVT::v2f64,
/*550731*/          OPC_Scope, 17, /*->550750*/ // 3 children in Scope
/*550733*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*550735*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*550738*/            OPC_EmitMergeInputChains1_0,
/*550739*/            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] } (X86vzld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>)) - Complexity = 28
                      // Dst: (VCVTDQ2PDrm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*550750*/          /*Scope*/ 17, /*->550768*/
/*550751*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*550753*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*550756*/            OPC_EmitMergeInputChains1_0,
/*550757*/            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] } (X86vzld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>)) - Complexity = 28
                      // Dst: (CVTDQ2PDrm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*550768*/          /*Scope*/ 17, /*->550786*/
/*550769*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*550771*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*550774*/            OPC_EmitMergeInputChains1_0,
/*550775*/            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] } (X86vzld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>)) - Complexity = 28
                      // Dst: (VCVTDQ2PDZ128rm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*550786*/          0, /*End of Scope*/
/*550787*/        0, // EndSwitchOpcode
/*550788*/      /*SwitchOpcode*/ 53, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->550844
/*550791*/        OPC_RecordMemRef,
/*550792*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*550793*/        OPC_RecordChild1, // #1 = $src
/*550794*/        OPC_SwitchType /*2 cases */, 22, MVT::v4i32,// ->550819
/*550797*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*550799*/          OPC_MoveParent,
/*550800*/          OPC_CheckType, MVT::v2f64,
/*550802*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*550804*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*550807*/          OPC_EmitMergeInputChains1_0,
/*550808*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86VSintToFP:{ *:[v2f64] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                    // Dst: (VCVTDQ2PDZ128rmb:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*550819*/        /*SwitchType*/ 22, MVT::v2i64,// ->550843
/*550821*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*550823*/          OPC_MoveParent,
/*550824*/          OPC_CheckType, MVT::v4f32,
/*550826*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*550828*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*550831*/          OPC_EmitMergeInputChains1_0,
/*550832*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PSZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86VSintToFP:{ *:[v4f32] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                    // Dst: (VCVTQQ2PSZ128rmb:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*550843*/        0, // EndSwitchType
/*550844*/      /*SwitchOpcode*/ 29, TARGET_VAL(ISD::LOAD),// ->550876
/*550847*/        OPC_RecordMemRef,
/*550848*/        OPC_RecordNode, // #0 = 'ld' chained node
/*550849*/        OPC_RecordChild1, // #1 = $src
/*550850*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*550852*/        OPC_CheckPredicate, 9, // Predicate_load
/*550854*/        OPC_CheckType, MVT::v2i64,
/*550856*/        OPC_MoveParent,
/*550857*/        OPC_CheckType, MVT::v4f32,
/*550859*/        OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*550861*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*550864*/        OPC_EmitMergeInputChains1_0,
/*550865*/        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>>) - Complexity = 25
                  // Dst: (VCVTQQ2PSZ128rm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*550876*/      0, // EndSwitchOpcode
/*550877*/    /*Scope*/ 52, /*->550930*/
/*550878*/      OPC_RecordChild0, // #0 = $src
/*550879*/      OPC_SwitchType /*2 cases */, 34, MVT::v2f64,// ->550916
/*550882*/        OPC_CheckChild0Type, MVT::v4i32,
/*550884*/        OPC_Scope, 9, /*->550895*/ // 3 children in Scope
/*550886*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*550888*/          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)
/*550895*/        /*Scope*/ 9, /*->550905*/
/*550896*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*550898*/          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)
/*550905*/        /*Scope*/ 9, /*->550915*/
/*550906*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*550908*/          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)
/*550915*/        0, /*End of Scope*/
/*550916*/      /*SwitchType*/ 11, MVT::v4f32,// ->550929
/*550918*/        OPC_CheckChild0Type, MVT::v2i64,
/*550920*/        OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*550922*/        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)
/*550929*/      0, // EndSwitchType
/*550930*/    0, /*End of Scope*/
/*550931*/  /*SwitchOpcode*/ 10|128,1/*138*/, TARGET_VAL(X86ISD::INSERTPS),// ->551073
/*550935*/    OPC_RecordChild0, // #0 = $src1
/*550936*/    OPC_Scope, 88, /*->551026*/ // 2 children in Scope
/*550938*/      OPC_MoveChild1,
/*550939*/      OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*550942*/      OPC_MoveChild0,
/*550943*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*550946*/      OPC_RecordMemRef,
/*550947*/      OPC_RecordNode, // #1 = 'ld' chained node
/*550948*/      OPC_CheckFoldableChainNode,
/*550949*/      OPC_RecordChild1, // #2 = $src2
/*550950*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*550952*/      OPC_CheckPredicate, 9, // Predicate_load
/*550954*/      OPC_CheckType, MVT::f32,
/*550956*/      OPC_MoveParent,
/*550957*/      OPC_MoveParent,
/*550958*/      OPC_RecordChild2, // #3 = $src3
/*550959*/      OPC_MoveChild2,
/*550960*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*550963*/      OPC_MoveParent,
/*550964*/      OPC_Scope, 19, /*->550985*/ // 3 children in Scope
/*550966*/        OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*550968*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*550971*/        OPC_EmitMergeInputChains1_1,
/*550972*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (X86insertps:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (timm:{ *:[i8] }):$src3) - Complexity = 31
                  // Dst: (VINSERTPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*550985*/      /*Scope*/ 19, /*->551005*/
/*550986*/        OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*550988*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*550991*/        OPC_EmitMergeInputChains1_1,
/*550992*/        OPC_MorphNodeTo1, TARGET_VAL(X86::INSERTPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (X86insertps:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (timm:{ *:[i8] }):$src3) - Complexity = 31
                  // Dst: (INSERTPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*551005*/      /*Scope*/ 19, /*->551025*/
/*551006*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*551008*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*551011*/        OPC_EmitMergeInputChains1_1,
/*551012*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTPSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                  // Src: (X86insertps:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (scalar_to_vector:{ *:[v4f32] } (ld:{ *:[f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (timm:{ *:[i8] }):$src3) - Complexity = 31
                  // Dst: (VINSERTPSZrm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*551025*/      0, /*End of Scope*/
/*551026*/    /*Scope*/ 45, /*->551072*/
/*551027*/      OPC_RecordChild1, // #1 = $src2
/*551028*/      OPC_RecordChild2, // #2 = $src3
/*551029*/      OPC_MoveChild2,
/*551030*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*551033*/      OPC_MoveParent,
/*551034*/      OPC_Scope, 11, /*->551047*/ // 3 children in Scope
/*551036*/        OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*551038*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTPSrr), 0,
                      MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86insertps:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VINSERTPSrr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, (timm:{ *:[i8] }):$src3)
/*551047*/      /*Scope*/ 11, /*->551059*/
/*551048*/        OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*551050*/        OPC_MorphNodeTo1, TARGET_VAL(X86::INSERTPSrr), 0,
                      MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86insertps:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (INSERTPSrr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, (timm:{ *:[i8] }):$src3)
/*551059*/      /*Scope*/ 11, /*->551071*/
/*551060*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*551062*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VINSERTPSZrr), 0,
                      MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86insertps:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                  // Dst: (VINSERTPSZrr:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i8] }):$src3)
/*551071*/      0, /*End of Scope*/
/*551072*/    0, /*End of Scope*/
/*551073*/  /*SwitchOpcode*/ 66|128,2/*322*/, TARGET_VAL(X86ISD::CVTPH2PS),// ->551399
/*551077*/    OPC_Scope, 119|128,1/*247*/, /*->551327*/ // 2 children in Scope
/*551080*/      OPC_MoveChild0,
/*551081*/      OPC_SwitchOpcode /*2 cases */, 122, TARGET_VAL(ISD::BITCAST),// ->551207
/*551085*/        OPC_MoveChild0,
/*551086*/        OPC_SwitchOpcode /*2 cases */, 61, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->551151
/*551090*/          OPC_MoveChild0,
/*551091*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*551094*/          OPC_RecordMemRef,
/*551095*/          OPC_RecordNode, // #0 = 'ld' chained node
/*551096*/          OPC_CheckFoldableChainNode,
/*551097*/          OPC_RecordChild1, // #1 = $src
/*551098*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*551100*/          OPC_CheckPredicate, 9, // Predicate_load
/*551102*/          OPC_CheckType, MVT::i64,
/*551104*/          OPC_MoveParent,
/*551105*/          OPC_CheckType, MVT::v2i64,
/*551107*/          OPC_MoveParent,
/*551108*/          OPC_CheckType, MVT::v8i16,
/*551110*/          OPC_MoveParent,
/*551111*/          OPC_CheckType, MVT::v4f32,
/*551113*/          OPC_Scope, 17, /*->551132*/ // 2 children in Scope
/*551115*/            OPC_CheckPatternPredicate, 11, // (Subtarget->hasF16C()) && (!Subtarget->hasVLX())
/*551117*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*551120*/            OPC_EmitMergeInputChains1_0,
/*551121*/            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)
/*551132*/          /*Scope*/ 17, /*->551150*/
/*551133*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*551135*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*551138*/            OPC_EmitMergeInputChains1_0,
/*551139*/            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)
/*551150*/          0, /*End of Scope*/
/*551151*/        /*SwitchOpcode*/ 52, TARGET_VAL(X86ISD::VZEXT_LOAD),// ->551206
/*551154*/          OPC_RecordMemRef,
/*551155*/          OPC_RecordNode, // #0 = 'X86vzld' chained node
/*551156*/          OPC_CheckFoldableChainNode,
/*551157*/          OPC_RecordChild1, // #1 = $src
/*551158*/          OPC_CheckPredicate, 49, // Predicate_X86vzload64
/*551160*/          OPC_CheckType, MVT::v2i64,
/*551162*/          OPC_MoveParent,
/*551163*/          OPC_CheckType, MVT::v8i16,
/*551165*/          OPC_MoveParent,
/*551166*/          OPC_CheckType, MVT::v4f32,
/*551168*/          OPC_Scope, 17, /*->551187*/ // 2 children in Scope
/*551170*/            OPC_CheckPatternPredicate, 11, // (Subtarget->hasF16C()) && (!Subtarget->hasVLX())
/*551172*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*551175*/            OPC_EmitMergeInputChains1_0,
/*551176*/            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] } (X86vzld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>)) - Complexity = 28
                      // Dst: (VCVTPH2PSrm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*551187*/          /*Scope*/ 17, /*->551205*/
/*551188*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*551190*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*551193*/            OPC_EmitMergeInputChains1_0,
/*551194*/            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] } (X86vzld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>)) - Complexity = 28
                      // Dst: (VCVTPH2PSZ128rm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*551205*/          0, /*End of Scope*/
/*551206*/        0, // EndSwitchOpcode
/*551207*/      /*SwitchOpcode*/ 116, TARGET_VAL(ISD::LOAD),// ->551326
/*551210*/        OPC_RecordMemRef,
/*551211*/        OPC_RecordNode, // #0 = 'ld' chained node
/*551212*/        OPC_RecordChild1, // #1 = $src
/*551213*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*551215*/        OPC_CheckPredicate, 9, // Predicate_load
/*551217*/        OPC_SwitchType /*2 cases */, 83, MVT::v8i16,// ->551303
/*551220*/          OPC_MoveParent,
/*551221*/          OPC_SwitchType /*2 cases */, 38, MVT::v4f32,// ->551262
/*551224*/            OPC_Scope, 17, /*->551243*/ // 2 children in Scope
/*551226*/              OPC_CheckPatternPredicate, 11, // (Subtarget->hasF16C()) && (!Subtarget->hasVLX())
/*551228*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*551231*/              OPC_EmitMergeInputChains1_0,
/*551232*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPH2PSrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvtph2ps:{ *:[v4f32] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VCVTPH2PSrm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*551243*/            /*Scope*/ 17, /*->551261*/
/*551244*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*551246*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*551249*/              OPC_EmitMergeInputChains1_0,
/*551250*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPH2PSZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvtph2ps:{ *:[v4f32] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VCVTPH2PSZ128rm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*551261*/            0, /*End of Scope*/
/*551262*/          /*SwitchType*/ 38, MVT::v8f32,// ->551302
/*551264*/            OPC_Scope, 17, /*->551283*/ // 2 children in Scope
/*551266*/              OPC_CheckPatternPredicate, 11, // (Subtarget->hasF16C()) && (!Subtarget->hasVLX())
/*551268*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*551271*/              OPC_EmitMergeInputChains1_0,
/*551272*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPH2PSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvtph2ps:{ *:[v8f32] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VCVTPH2PSYrm:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*551283*/            /*Scope*/ 17, /*->551301*/
/*551284*/              OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*551286*/              OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*551289*/              OPC_EmitMergeInputChains1_0,
/*551290*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPH2PSZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                        // Src: (X86cvtph2ps:{ *:[v8f32] } (ld:{ *:[v8i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                        // Dst: (VCVTPH2PSZ256rm:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*551301*/            0, /*End of Scope*/
/*551302*/          0, // EndSwitchType
/*551303*/        /*SwitchType*/ 20, MVT::v16i16,// ->551325
/*551305*/          OPC_MoveParent,
/*551306*/          OPC_CheckType, MVT::v16f32,
/*551308*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*551310*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*551313*/          OPC_EmitMergeInputChains1_0,
/*551314*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPH2PSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86cvtph2ps:{ *:[v16f32] } (ld:{ *:[v16i16] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VCVTPH2PSZrm:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)
/*551325*/        0, // EndSwitchType
/*551326*/      0, // EndSwitchOpcode
/*551327*/    /*Scope*/ 70, /*->551398*/
/*551328*/      OPC_RecordChild0, // #0 = $src
/*551329*/      OPC_Scope, 52, /*->551383*/ // 2 children in Scope
/*551331*/        OPC_CheckChild0Type, MVT::v8i16,
/*551333*/        OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->551358
/*551336*/          OPC_Scope, 9, /*->551347*/ // 2 children in Scope
/*551338*/            OPC_CheckPatternPredicate, 11, // (Subtarget->hasF16C()) && (!Subtarget->hasVLX())
/*551340*/            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)
/*551347*/          /*Scope*/ 9, /*->551357*/
/*551348*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*551350*/            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)
/*551357*/          0, /*End of Scope*/
/*551358*/        /*SwitchType*/ 22, MVT::v8f32,// ->551382
/*551360*/          OPC_Scope, 9, /*->551371*/ // 2 children in Scope
/*551362*/            OPC_CheckPatternPredicate, 11, // (Subtarget->hasF16C()) && (!Subtarget->hasVLX())
/*551364*/            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)
/*551371*/          /*Scope*/ 9, /*->551381*/
/*551372*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*551374*/            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)
/*551381*/          0, /*End of Scope*/
/*551382*/        0, // EndSwitchType
/*551383*/      /*Scope*/ 13, /*->551397*/
/*551384*/        OPC_CheckChild0Type, MVT::v16i16,
/*551386*/        OPC_CheckType, MVT::v16f32,
/*551388*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*551390*/        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)
/*551397*/      0, /*End of Scope*/
/*551398*/    0, /*End of Scope*/
/*551399*/  /*SwitchOpcode*/ 100|128,1/*228*/, TARGET_VAL(X86ISD::STRICT_CVTUI2P),// ->551631
/*551403*/    OPC_RecordNode, // #0 = 'X86strict_VUintToFP' chained node
/*551404*/    OPC_Scope, 63|128,1/*191*/, /*->551598*/ // 2 children in Scope
/*551407*/      OPC_MoveChild1,
/*551408*/      OPC_SwitchOpcode /*3 cases */, 86, TARGET_VAL(ISD::BITCAST),// ->551498
/*551412*/        OPC_MoveChild0,
/*551413*/        OPC_SwitchOpcode /*2 cases */, 43, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->551460
/*551417*/          OPC_MoveChild0,
/*551418*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*551421*/          OPC_RecordMemRef,
/*551422*/          OPC_RecordNode, // #1 = 'ld' chained node
/*551423*/          OPC_CheckFoldableChainNode,
/*551424*/          OPC_RecordChild1, // #2 = $src
/*551425*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*551427*/          OPC_CheckPredicate, 9, // Predicate_load
/*551429*/          OPC_CheckType, MVT::i64,
/*551431*/          OPC_MoveParent,
/*551432*/          OPC_CheckType, MVT::v2i64,
/*551434*/          OPC_MoveParent,
/*551435*/          OPC_CheckType, MVT::v4i32,
/*551437*/          OPC_MoveParent,
/*551438*/          OPC_CheckType, MVT::v2f64,
/*551440*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*551442*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*551445*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*551449*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (X86strict_VUintToFP:{ *:[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)
/*551460*/        /*SwitchOpcode*/ 34, TARGET_VAL(X86ISD::VZEXT_LOAD),// ->551497
/*551463*/          OPC_RecordMemRef,
/*551464*/          OPC_RecordNode, // #1 = 'X86vzld' chained node
/*551465*/          OPC_CheckFoldableChainNode,
/*551466*/          OPC_RecordChild1, // #2 = $src
/*551467*/          OPC_CheckPredicate, 49, // Predicate_X86vzload64
/*551469*/          OPC_CheckType, MVT::v2i64,
/*551471*/          OPC_MoveParent,
/*551472*/          OPC_CheckType, MVT::v4i32,
/*551474*/          OPC_MoveParent,
/*551475*/          OPC_CheckType, MVT::v2f64,
/*551477*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*551479*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*551482*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*551486*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PDZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (X86strict_VUintToFP:{ *:[v2f64] } (bitconvert:{ *:[v4i32] } (X86vzld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>)) - Complexity = 28
                    // Dst: (VCVTUDQ2PDZ128rm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*551497*/        0, // EndSwitchOpcode
/*551498*/      /*SwitchOpcode*/ 60, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->551561
/*551501*/        OPC_RecordMemRef,
/*551502*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*551503*/        OPC_CheckFoldableChainNode,
/*551504*/        OPC_RecordChild1, // #2 = $src
/*551505*/        OPC_SwitchType /*2 cases */, 25, MVT::v4i32,// ->551533
/*551508*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*551510*/          OPC_MoveParent,
/*551511*/          OPC_CheckType, MVT::v2f64,
/*551513*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*551515*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*551518*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*551522*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (X86strict_VUintToFP:{ *:[v2f64] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                    // Dst: (VCVTUDQ2PDZ128rmb:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*551533*/        /*SwitchType*/ 25, MVT::v2i64,// ->551560
/*551535*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*551537*/          OPC_MoveParent,
/*551538*/          OPC_CheckType, MVT::v4f32,
/*551540*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*551542*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*551545*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*551549*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PSZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (X86strict_VUintToFP:{ *:[v4f32] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                    // Dst: (VCVTUQQ2PSZ128rmb:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*551560*/        0, // EndSwitchType
/*551561*/      /*SwitchOpcode*/ 33, TARGET_VAL(ISD::LOAD),// ->551597
/*551564*/        OPC_RecordMemRef,
/*551565*/        OPC_RecordNode, // #1 = 'ld' chained node
/*551566*/        OPC_CheckFoldableChainNode,
/*551567*/        OPC_RecordChild1, // #2 = $src
/*551568*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*551570*/        OPC_CheckPredicate, 9, // Predicate_load
/*551572*/        OPC_CheckType, MVT::v2i64,
/*551574*/        OPC_MoveParent,
/*551575*/        OPC_CheckType, MVT::v4f32,
/*551577*/        OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*551579*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*551582*/        OPC_EmitMergeInputChains, 2, 0, 1, 
/*551586*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PSZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                  // Src: (X86strict_VUintToFP:{ *:[v4f32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                  // Dst: (VCVTUQQ2PSZ128rm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*551597*/      0, // EndSwitchOpcode
/*551598*/    /*Scope*/ 31, /*->551630*/
/*551599*/      OPC_RecordChild1, // #1 = $src
/*551600*/      OPC_SwitchType /*2 cases */, 12, MVT::v2f64,// ->551615
/*551603*/        OPC_CheckChild1Type, MVT::v4i32,
/*551605*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*551607*/        OPC_EmitMergeInputChains1_0,
/*551608*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PDZ128rr), 0|OPFL_Chain,
                      MVT::v2f64, 1/*#Ops*/, 1, 
                  // Src: (X86strict_VUintToFP:{ *:[v2f64] } VR128X:{ *:[v4i32] }:$src) - Complexity = 3
                  // Dst: (VCVTUDQ2PDZ128rr:{ *:[v2f64] } VR128X:{ *:[v4i32] }:$src)
/*551615*/      /*SwitchType*/ 12, MVT::v4f32,// ->551629
/*551617*/        OPC_CheckChild1Type, MVT::v2i64,
/*551619*/        OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*551621*/        OPC_EmitMergeInputChains1_0,
/*551622*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PSZ128rr), 0|OPFL_Chain,
                      MVT::v4f32, 1/*#Ops*/, 1, 
                  // Src: (X86strict_VUintToFP:{ *:[v4f32] } VR128X:{ *:[v2i64] }:$src) - Complexity = 3
                  // Dst: (VCVTUQQ2PSZ128rr:{ *:[v4f32] } VR128X:{ *:[v2i64] }:$src)
/*551629*/      0, // EndSwitchType
/*551630*/    0, /*End of Scope*/
/*551631*/  /*SwitchOpcode*/ 80|128,1/*208*/, TARGET_VAL(X86ISD::CVTUI2P),// ->551843
/*551635*/    OPC_Scope, 46|128,1/*174*/, /*->551812*/ // 2 children in Scope
/*551638*/      OPC_MoveChild0,
/*551639*/      OPC_SwitchOpcode /*3 cases */, 80, TARGET_VAL(ISD::BITCAST),// ->551723
/*551643*/        OPC_MoveChild0,
/*551644*/        OPC_SwitchOpcode /*2 cases */, 40, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->551688
/*551648*/          OPC_MoveChild0,
/*551649*/          OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*551652*/          OPC_RecordMemRef,
/*551653*/          OPC_RecordNode, // #0 = 'ld' chained node
/*551654*/          OPC_CheckFoldableChainNode,
/*551655*/          OPC_RecordChild1, // #1 = $src
/*551656*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*551658*/          OPC_CheckPredicate, 9, // Predicate_load
/*551660*/          OPC_CheckType, MVT::i64,
/*551662*/          OPC_MoveParent,
/*551663*/          OPC_CheckType, MVT::v2i64,
/*551665*/          OPC_MoveParent,
/*551666*/          OPC_CheckType, MVT::v4i32,
/*551668*/          OPC_MoveParent,
/*551669*/          OPC_CheckType, MVT::v2f64,
/*551671*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*551673*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*551676*/          OPC_EmitMergeInputChains1_0,
/*551677*/          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)
/*551688*/        /*SwitchOpcode*/ 31, TARGET_VAL(X86ISD::VZEXT_LOAD),// ->551722
/*551691*/          OPC_RecordMemRef,
/*551692*/          OPC_RecordNode, // #0 = 'X86vzld' chained node
/*551693*/          OPC_CheckFoldableChainNode,
/*551694*/          OPC_RecordChild1, // #1 = $src
/*551695*/          OPC_CheckPredicate, 49, // Predicate_X86vzload64
/*551697*/          OPC_CheckType, MVT::v2i64,
/*551699*/          OPC_MoveParent,
/*551700*/          OPC_CheckType, MVT::v4i32,
/*551702*/          OPC_MoveParent,
/*551703*/          OPC_CheckType, MVT::v2f64,
/*551705*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*551707*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*551710*/          OPC_EmitMergeInputChains1_0,
/*551711*/          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] } (X86vzld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>)) - Complexity = 28
                    // Dst: (VCVTUDQ2PDZ128rm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*551722*/        0, // EndSwitchOpcode
/*551723*/      /*SwitchOpcode*/ 53, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->551779
/*551726*/        OPC_RecordMemRef,
/*551727*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*551728*/        OPC_RecordChild1, // #1 = $src
/*551729*/        OPC_SwitchType /*2 cases */, 22, MVT::v4i32,// ->551754
/*551732*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*551734*/          OPC_MoveParent,
/*551735*/          OPC_CheckType, MVT::v2f64,
/*551737*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*551739*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*551742*/          OPC_EmitMergeInputChains1_0,
/*551743*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86VUintToFP:{ *:[v2f64] } (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                    // Dst: (VCVTUDQ2PDZ128rmb:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*551754*/        /*SwitchType*/ 22, MVT::v2i64,// ->551778
/*551756*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*551758*/          OPC_MoveParent,
/*551759*/          OPC_CheckType, MVT::v4f32,
/*551761*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*551763*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*551766*/          OPC_EmitMergeInputChains1_0,
/*551767*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PSZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86VUintToFP:{ *:[v4f32] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                    // Dst: (VCVTUQQ2PSZ128rmb:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*551778*/        0, // EndSwitchType
/*551779*/      /*SwitchOpcode*/ 29, TARGET_VAL(ISD::LOAD),// ->551811
/*551782*/        OPC_RecordMemRef,
/*551783*/        OPC_RecordNode, // #0 = 'ld' chained node
/*551784*/        OPC_RecordChild1, // #1 = $src
/*551785*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*551787*/        OPC_CheckPredicate, 9, // Predicate_load
/*551789*/        OPC_CheckType, MVT::v2i64,
/*551791*/        OPC_MoveParent,
/*551792*/        OPC_CheckType, MVT::v4f32,
/*551794*/        OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*551796*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*551799*/        OPC_EmitMergeInputChains1_0,
/*551800*/        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>>) - Complexity = 25
                  // Dst: (VCVTUQQ2PSZ128rm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*551811*/      0, // EndSwitchOpcode
/*551812*/    /*Scope*/ 29, /*->551842*/
/*551813*/      OPC_RecordChild0, // #0 = $src
/*551814*/      OPC_SwitchType /*2 cases */, 11, MVT::v2f64,// ->551828
/*551817*/        OPC_CheckChild0Type, MVT::v4i32,
/*551819*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*551821*/        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)
/*551828*/      /*SwitchType*/ 11, MVT::v4f32,// ->551841
/*551830*/        OPC_CheckChild0Type, MVT::v2i64,
/*551832*/        OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*551834*/        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)
/*551841*/      0, // EndSwitchType
/*551842*/    0, /*End of Scope*/
/*551843*/  /*SwitchOpcode*/ 127, TARGET_VAL(X86ISD::VFIXUPIMMS),// ->551973
/*551846*/    OPC_RecordChild0, // #0 = $src1
/*551847*/    OPC_RecordChild1, // #1 = $src2
/*551848*/    OPC_Scope, 84, /*->551934*/ // 2 children in Scope
/*551850*/      OPC_MoveChild2,
/*551851*/      OPC_CheckOpcode, TARGET_VAL(ISD::SCALAR_TO_VECTOR),
/*551854*/      OPC_MoveChild0,
/*551855*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*551858*/      OPC_RecordMemRef,
/*551859*/      OPC_RecordNode, // #2 = 'ld' chained node
/*551860*/      OPC_CheckFoldableChainNode,
/*551861*/      OPC_RecordChild1, // #3 = $src3
/*551862*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*551864*/      OPC_SwitchType /*2 cases */, 32, MVT::i32,// ->551899
/*551867*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*551869*/        OPC_MoveParent,
/*551870*/        OPC_MoveParent,
/*551871*/        OPC_RecordChild3, // #4 = $src4
/*551872*/        OPC_MoveChild3,
/*551873*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*551876*/        OPC_MoveParent,
/*551877*/        OPC_CheckType, MVT::v4f32,
/*551879*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*551881*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*551884*/        OPC_EmitMergeInputChains1_2,
/*551885*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMSSZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                  // Src: (X86VFixupimms:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (scalar_to_vector:{ *:[v4i32] } (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>), (timm:{ *:[i32] }):$src4) - Complexity = 31
                  // Dst: (VFIXUPIMMSSZrmi:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i32] }):$src4)
/*551899*/      /*SwitchType*/ 32, MVT::i64,// ->551933
/*551901*/        OPC_CheckPredicate, 9, // Predicate_load
/*551903*/        OPC_MoveParent,
/*551904*/        OPC_MoveParent,
/*551905*/        OPC_RecordChild3, // #4 = $src4
/*551906*/        OPC_MoveChild3,
/*551907*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*551910*/        OPC_MoveParent,
/*551911*/        OPC_CheckType, MVT::v2f64,
/*551913*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*551915*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*551918*/        OPC_EmitMergeInputChains1_2,
/*551919*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMSDZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                  // Src: (X86VFixupimms:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (scalar_to_vector:{ *:[v2i64] } (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>), (timm:{ *:[i32] }):$src4) - Complexity = 31
                  // Dst: (VFIXUPIMMSDZrmi:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i32] }):$src4)
/*551933*/      0, // EndSwitchType
/*551934*/    /*Scope*/ 37, /*->551972*/
/*551935*/      OPC_RecordChild2, // #2 = $src3
/*551936*/      OPC_RecordChild3, // #3 = $src4
/*551937*/      OPC_MoveChild3,
/*551938*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*551941*/      OPC_MoveParent,
/*551942*/      OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->551957
/*551945*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*551947*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMSSZrri), 0,
                      MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (X86VFixupimms:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4i32] }:$src3, (timm:{ *:[i32] }):$src4) - Complexity = 6
                  // Dst: (VFIXUPIMMSSZrri:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4i32] }:$src3, (timm:{ *:[i32] }):$src4)
/*551957*/      /*SwitchType*/ 12, MVT::v2f64,// ->551971
/*551959*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*551961*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMSDZrri), 0,
                      MVT::v2f64, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (X86VFixupimms:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2i64] }:$src3, (timm:{ *:[i32] }):$src4) - Complexity = 6
                  // Dst: (VFIXUPIMMSDZrri:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2i64] }:$src3, (timm:{ *:[i32] }):$src4)
/*551971*/      0, // EndSwitchType
/*551972*/    0, /*End of Scope*/
/*551973*/  /*SwitchOpcode*/ 96|128,5/*736*/, TARGET_VAL(X86ISD::SHUFP),// ->552713
/*551977*/    OPC_Scope, 91, /*->552070*/ // 2 children in Scope
/*551979*/      OPC_MoveChild0,
/*551980*/      OPC_SwitchOpcode /*2 cases */, 43, TARGET_VAL(ISD::LOAD),// ->552027
/*551984*/        OPC_RecordMemRef,
/*551985*/        OPC_RecordNode, // #0 = 'ld' chained node
/*551986*/        OPC_CheckFoldableChainNode,
/*551987*/        OPC_RecordChild1, // #1 = $src2
/*551988*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*551990*/        OPC_CheckPredicate, 9, // Predicate_load
/*551992*/        OPC_CheckPredicate, 58, // Predicate_simple_load
/*551994*/        OPC_MoveParent,
/*551995*/        OPC_RecordChild1, // #2 = $src1
/*551996*/        OPC_CheckChild2Integer, 100|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551588*/, 
/*552007*/        OPC_CheckType, MVT::v4f32,
/*552009*/        OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*552011*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*552014*/        OPC_EmitMergeInputChains1_0,
/*552015*/        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_simple_load>>, VR128:{ *:[v4f32] }:$src1, -28:{ *:[i8] }) - Complexity = 30
                  // Dst: (MOVLPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*552027*/      /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VZEXT_LOAD),// ->552069
/*552030*/        OPC_RecordMemRef,
/*552031*/        OPC_RecordNode, // #0 = 'X86vzld' chained node
/*552032*/        OPC_CheckFoldableChainNode,
/*552033*/        OPC_RecordChild1, // #1 = $src2
/*552034*/        OPC_CheckPredicate, 49, // Predicate_X86vzload64
/*552036*/        OPC_MoveParent,
/*552037*/        OPC_RecordChild1, // #2 = $src1
/*552038*/        OPC_CheckChild2Integer, 100|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,127|128,1/*18446744073709551588*/, 
/*552049*/        OPC_CheckType, MVT::v4f32,
/*552051*/        OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*552053*/        OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #3 #4 #5 #6 #7
/*552056*/        OPC_EmitMergeInputChains1_0,
/*552057*/        OPC_MorphNodeTo1, TARGET_VAL(X86::MOVLPSrm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                  // Src: (X86Shufp:{ *:[v4f32] } (X86vzld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86vzload64>>, VR128:{ *:[v4f32] }:$src1, -28:{ *:[i8] }) - Complexity = 30
                  // Dst: (MOVLPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*552069*/      0, // EndSwitchOpcode
/*552070*/    /*Scope*/ 0|128,5/*640*/, /*->552712*/
/*552072*/      OPC_RecordChild0, // #0 = $src1
/*552073*/      OPC_Scope, 78|128,3/*462*/, /*->552538*/ // 2 children in Scope
/*552076*/        OPC_MoveChild1,
/*552077*/        OPC_SwitchOpcode /*2 cases */, 39|128,2/*295*/, TARGET_VAL(ISD::LOAD),// ->552377
/*552082*/          OPC_RecordMemRef,
/*552083*/          OPC_RecordNode, // #1 = 'ld' chained node
/*552084*/          OPC_CheckFoldableChainNode,
/*552085*/          OPC_RecordChild1, // #2 = $src2
/*552086*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*552088*/          OPC_CheckPredicate, 9, // Predicate_load
/*552090*/          OPC_Scope, 93, /*->552185*/ // 3 children in Scope
/*552092*/            OPC_MoveParent,
/*552093*/            OPC_RecordChild2, // #3 = $src3
/*552094*/            OPC_MoveChild2,
/*552095*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*552098*/            OPC_MoveParent,
/*552099*/            OPC_SwitchType /*4 cases */, 19, MVT::v4f32,// ->552121
/*552102*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*552104*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*552107*/              OPC_EmitMergeInputChains1_1,
/*552108*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                        // Src: (X86Shufp:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                        // Dst: (VSHUFPSrmi:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*552121*/            /*SwitchType*/ 19, MVT::v8f32,// ->552142
/*552123*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*552125*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*552128*/              OPC_EmitMergeInputChains1_1,
/*552129*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPSYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                        // Src: (X86Shufp:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                        // Dst: (VSHUFPSYrmi:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*552142*/            /*SwitchType*/ 19, MVT::v2f64,// ->552163
/*552144*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*552146*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*552149*/              OPC_EmitMergeInputChains1_1,
/*552150*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                        // Src: (X86Shufp:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                        // Dst: (VSHUFPDrmi:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*552163*/            /*SwitchType*/ 19, MVT::v4f64,// ->552184
/*552165*/              OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*552167*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*552170*/              OPC_EmitMergeInputChains1_1,
/*552171*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPDYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                        // Src: (X86Shufp:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                        // Dst: (VSHUFPDYrmi:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*552184*/            0, // EndSwitchType
/*552185*/          /*Scope*/ 53, /*->552239*/
/*552186*/            OPC_CheckPredicate, 39, // Predicate_memop
/*552188*/            OPC_MoveParent,
/*552189*/            OPC_RecordChild2, // #3 = $src3
/*552190*/            OPC_MoveChild2,
/*552191*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*552194*/            OPC_MoveParent,
/*552195*/            OPC_SwitchType /*2 cases */, 19, MVT::v4f32,// ->552217
/*552198*/              OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*552200*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*552203*/              OPC_EmitMergeInputChains1_1,
/*552204*/              OPC_MorphNodeTo1, TARGET_VAL(X86::SHUFPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                        // Src: (X86Shufp:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                        // Dst: (SHUFPSrmi:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*552217*/            /*SwitchType*/ 19, MVT::v2f64,// ->552238
/*552219*/              OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*552221*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*552224*/              OPC_EmitMergeInputChains1_1,
/*552225*/              OPC_MorphNodeTo1, TARGET_VAL(X86::SHUFPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                        // Src: (X86Shufp:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                        // Dst: (SHUFPDrmi:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*552238*/            0, // EndSwitchType
/*552239*/          /*Scope*/ 7|128,1/*135*/, /*->552376*/
/*552241*/            OPC_MoveParent,
/*552242*/            OPC_RecordChild2, // #3 = $src3
/*552243*/            OPC_MoveChild2,
/*552244*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*552247*/            OPC_MoveParent,
/*552248*/            OPC_SwitchType /*6 cases */, 19, MVT::v16f32,// ->552270
/*552251*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*552253*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*552256*/              OPC_EmitMergeInputChains1_1,
/*552257*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPSZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                        // Src: (X86Shufp:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                        // Dst: (VSHUFPSZrmi:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*552270*/            /*SwitchType*/ 19, MVT::v4f32,// ->552291
/*552272*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*552274*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*552277*/              OPC_EmitMergeInputChains1_1,
/*552278*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPSZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                        // Src: (X86Shufp:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                        // Dst: (VSHUFPSZ128rmi:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*552291*/            /*SwitchType*/ 19, MVT::v8f32,// ->552312
/*552293*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*552295*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*552298*/              OPC_EmitMergeInputChains1_1,
/*552299*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPSZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                        // Src: (X86Shufp:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                        // Dst: (VSHUFPSZ256rmi:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*552312*/            /*SwitchType*/ 19, MVT::v8f64,// ->552333
/*552314*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*552316*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*552319*/              OPC_EmitMergeInputChains1_1,
/*552320*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPDZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                        // Src: (X86Shufp:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                        // Dst: (VSHUFPDZrmi:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*552333*/            /*SwitchType*/ 19, MVT::v2f64,// ->552354
/*552335*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*552337*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*552340*/              OPC_EmitMergeInputChains1_1,
/*552341*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPDZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                        // Src: (X86Shufp:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                        // Dst: (VSHUFPDZ128rmi:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*552354*/            /*SwitchType*/ 19, MVT::v4f64,// ->552375
/*552356*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*552358*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*552361*/              OPC_EmitMergeInputChains1_1,
/*552362*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPDZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                        // Src: (X86Shufp:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                        // Dst: (VSHUFPDZ256rmi:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*552375*/            0, // EndSwitchType
/*552376*/          0, /*End of Scope*/
/*552377*/        /*SwitchOpcode*/ 28|128,1/*156*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->552537
/*552381*/          OPC_RecordMemRef,
/*552382*/          OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*552383*/          OPC_CheckFoldableChainNode,
/*552384*/          OPC_RecordChild1, // #2 = $src2
/*552385*/          OPC_Scope, 74, /*->552461*/ // 2 children in Scope
/*552387*/            OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*552389*/            OPC_MoveParent,
/*552390*/            OPC_RecordChild2, // #3 = $src3
/*552391*/            OPC_MoveChild2,
/*552392*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*552395*/            OPC_MoveParent,
/*552396*/            OPC_SwitchType /*3 cases */, 19, MVT::v16f32,// ->552418
/*552399*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*552401*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*552404*/              OPC_EmitMergeInputChains1_1,
/*552405*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPSZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v16f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                        // Src: (X86Shufp:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                        // Dst: (VSHUFPSZrmbi:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*552418*/            /*SwitchType*/ 19, MVT::v4f32,// ->552439
/*552420*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*552422*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*552425*/              OPC_EmitMergeInputChains1_1,
/*552426*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPSZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                        // Src: (X86Shufp:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                        // Dst: (VSHUFPSZ128rmbi:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*552439*/            /*SwitchType*/ 19, MVT::v8f32,// ->552460
/*552441*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*552443*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*552446*/              OPC_EmitMergeInputChains1_1,
/*552447*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPSZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                        // Src: (X86Shufp:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                        // Dst: (VSHUFPSZ256rmbi:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*552460*/            0, // EndSwitchType
/*552461*/          /*Scope*/ 74, /*->552536*/
/*552462*/            OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*552464*/            OPC_MoveParent,
/*552465*/            OPC_RecordChild2, // #3 = $src3
/*552466*/            OPC_MoveChild2,
/*552467*/            OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*552470*/            OPC_MoveParent,
/*552471*/            OPC_SwitchType /*3 cases */, 19, MVT::v8f64,// ->552493
/*552474*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*552476*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*552479*/              OPC_EmitMergeInputChains1_1,
/*552480*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPDZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v8f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                        // Src: (X86Shufp:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                        // Dst: (VSHUFPDZrmbi:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*552493*/            /*SwitchType*/ 19, MVT::v2f64,// ->552514
/*552495*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*552497*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*552500*/              OPC_EmitMergeInputChains1_1,
/*552501*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPDZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v2f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                        // Src: (X86Shufp:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                        // Dst: (VSHUFPDZ128rmbi:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*552514*/            /*SwitchType*/ 19, MVT::v4f64,// ->552535
/*552516*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*552518*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*552521*/              OPC_EmitMergeInputChains1_1,
/*552522*/              OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPDZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                            MVT::v4f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                        // Src: (X86Shufp:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src3) - Complexity = 28
                        // Dst: (VSHUFPDZ256rmbi:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$src3)
/*552535*/            0, // EndSwitchType
/*552536*/          0, /*End of Scope*/
/*552537*/        0, // EndSwitchOpcode
/*552538*/      /*Scope*/ 43|128,1/*171*/, /*->552711*/
/*552540*/        OPC_RecordChild1, // #1 = $src2
/*552541*/        OPC_RecordChild2, // #2 = $src3
/*552542*/        OPC_MoveChild2,
/*552543*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*552546*/        OPC_MoveParent,
/*552547*/        OPC_SwitchType /*6 cases */, 38, MVT::v4f32,// ->552588
/*552550*/          OPC_Scope, 11, /*->552563*/ // 3 children in Scope
/*552552*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*552554*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPSrri), 0,
                          MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86Shufp:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                      // Dst: (VSHUFPSrri:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, (timm:{ *:[i8] }):$src3)
/*552563*/          /*Scope*/ 11, /*->552575*/
/*552564*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*552566*/            OPC_MorphNodeTo1, TARGET_VAL(X86::SHUFPSrri), 0,
                          MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86Shufp:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                      // Dst: (SHUFPSrri:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, (timm:{ *:[i8] }):$src3)
/*552575*/          /*Scope*/ 11, /*->552587*/
/*552576*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*552578*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPSZ128rri), 0,
                          MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86Shufp:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                      // Dst: (VSHUFPSZ128rri:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i8] }):$src3)
/*552587*/          0, /*End of Scope*/
/*552588*/        /*SwitchType*/ 26, MVT::v8f32,// ->552616
/*552590*/          OPC_Scope, 11, /*->552603*/ // 2 children in Scope
/*552592*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*552594*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPSYrri), 0,
                          MVT::v8f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86Shufp:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                      // Dst: (VSHUFPSYrri:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, (timm:{ *:[i8] }):$src3)
/*552603*/          /*Scope*/ 11, /*->552615*/
/*552604*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*552606*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPSZ256rri), 0,
                          MVT::v8f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86Shufp:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                      // Dst: (VSHUFPSZ256rri:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (timm:{ *:[i8] }):$src3)
/*552615*/          0, /*End of Scope*/
/*552616*/        /*SwitchType*/ 38, MVT::v2f64,// ->552656
/*552618*/          OPC_Scope, 11, /*->552631*/ // 3 children in Scope
/*552620*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*552622*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPDrri), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86Shufp:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                      // Dst: (VSHUFPDrri:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, (timm:{ *:[i8] }):$src3)
/*552631*/          /*Scope*/ 11, /*->552643*/
/*552632*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*552634*/            OPC_MorphNodeTo1, TARGET_VAL(X86::SHUFPDrri), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86Shufp:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                      // Dst: (SHUFPDrri:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, (timm:{ *:[i8] }):$src3)
/*552643*/          /*Scope*/ 11, /*->552655*/
/*552644*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*552646*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPDZ128rri), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86Shufp:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                      // Dst: (VSHUFPDZ128rri:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i8] }):$src3)
/*552655*/          0, /*End of Scope*/
/*552656*/        /*SwitchType*/ 26, MVT::v4f64,// ->552684
/*552658*/          OPC_Scope, 11, /*->552671*/ // 2 children in Scope
/*552660*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*552662*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPDYrri), 0,
                          MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86Shufp:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                      // Dst: (VSHUFPDYrri:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, (timm:{ *:[i8] }):$src3)
/*552671*/          /*Scope*/ 11, /*->552683*/
/*552672*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*552674*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPDZ256rri), 0,
                          MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86Shufp:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                      // Dst: (VSHUFPDZ256rri:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (timm:{ *:[i8] }):$src3)
/*552683*/          0, /*End of Scope*/
/*552684*/        /*SwitchType*/ 11, MVT::v16f32,// ->552697
/*552686*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*552688*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPSZrri), 0,
                        MVT::v16f32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86Shufp:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                    // Dst: (VSHUFPSZrri:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i8] }):$src3)
/*552697*/        /*SwitchType*/ 11, MVT::v8f64,// ->552710
/*552699*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*552701*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VSHUFPDZrri), 0,
                        MVT::v8f64, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86Shufp:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i8] }):$src3) - Complexity = 6
                    // Dst: (VSHUFPDZrri:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i8] }):$src3)
/*552710*/        0, // EndSwitchType
/*552711*/      0, /*End of Scope*/
/*552712*/    0, /*End of Scope*/
/*552713*/  /*SwitchOpcode*/ 92|128,3/*476*/, TARGET_VAL(X86ISD::STRICT_CMPP),// ->553193
/*552717*/    OPC_RecordNode, // #0 = 'X86strict_cmpp' chained node
/*552718*/    OPC_Scope, 58|128,1/*186*/, /*->552907*/ // 2 children in Scope
/*552721*/      OPC_MoveChild1,
/*552722*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*552725*/      OPC_RecordMemRef,
/*552726*/      OPC_RecordNode, // #1 = 'ld' chained node
/*552727*/      OPC_CheckFoldableChainNode,
/*552728*/      OPC_RecordChild1, // #2 = $src2
/*552729*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*552731*/      OPC_CheckPredicate, 9, // Predicate_load
/*552733*/      OPC_Scope, 108, /*->552843*/ // 2 children in Scope
/*552735*/        OPC_MoveParent,
/*552736*/        OPC_RecordChild2, // #3 = $src1
/*552737*/        OPC_RecordChild3, // #4 = $cc
/*552738*/        OPC_MoveChild3,
/*552739*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*552742*/        OPC_CheckPredicate, 92, // Predicate_CommutableCMPCC
/*552744*/        OPC_MoveParent,
/*552745*/        OPC_SwitchType /*4 cases */, 22, MVT::v4f64,// ->552770
/*552748*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*552750*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*552753*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*552757*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 7/*#Ops*/, 3, 5, 6, 7, 8, 9, 4, 
                    // Src: (X86strict_cmpp:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v4f64] }:$src1, (timm:{ *:[i8] })<<P:Predicate_CommutableCMPCC>>:$cc) - Complexity = 29
                    // Dst: (VCMPPDYrmi:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/*552770*/        /*SwitchType*/ 22, MVT::v8f32,// ->552794
/*552772*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*552774*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*552777*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*552781*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 7/*#Ops*/, 3, 5, 6, 7, 8, 9, 4, 
                    // Src: (X86strict_cmpp:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v8f32] }:$src1, (timm:{ *:[i8] })<<P:Predicate_CommutableCMPCC>>:$cc) - Complexity = 29
                    // Dst: (VCMPPSYrmi:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/*552794*/        /*SwitchType*/ 22, MVT::v2f64,// ->552818
/*552796*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*552798*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*552801*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*552805*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 7/*#Ops*/, 3, 5, 6, 7, 8, 9, 4, 
                    // Src: (X86strict_cmpp:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v2f64] }:$src1, (timm:{ *:[i8] })<<P:Predicate_CommutableCMPCC>>:$cc) - Complexity = 29
                    // Dst: (VCMPPDrmi:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/*552818*/        /*SwitchType*/ 22, MVT::v4f32,// ->552842
/*552820*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*552822*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*552825*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*552829*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 3, 5, 6, 7, 8, 9, 4, 
                    // Src: (X86strict_cmpp:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v4f32] }:$src1, (timm:{ *:[i8] })<<P:Predicate_CommutableCMPCC>>:$cc) - Complexity = 29
                    // Dst: (VCMPPSrmi:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/*552842*/        0, // EndSwitchType
/*552843*/      /*Scope*/ 62, /*->552906*/
/*552844*/        OPC_CheckPredicate, 39, // Predicate_memop
/*552846*/        OPC_MoveParent,
/*552847*/        OPC_RecordChild2, // #3 = $src1
/*552848*/        OPC_RecordChild3, // #4 = $cc
/*552849*/        OPC_MoveChild3,
/*552850*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*552853*/        OPC_CheckPredicate, 92, // Predicate_CommutableCMPCC
/*552855*/        OPC_MoveParent,
/*552856*/        OPC_SwitchType /*2 cases */, 22, MVT::v2f64,// ->552881
/*552859*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*552861*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*552864*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*552868*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMPPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 7/*#Ops*/, 3, 5, 6, 7, 8, 9, 4, 
                    // Src: (X86strict_cmpp:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:{ *:[v2f64] }:$src1, (timm:{ *:[i8] })<<P:Predicate_CommutableCMPCC>>:$cc) - Complexity = 29
                    // Dst: (CMPPDrmi:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/*552881*/        /*SwitchType*/ 22, MVT::v4f32,// ->552905
/*552883*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*552885*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*552888*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*552892*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMPPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 3, 5, 6, 7, 8, 9, 4, 
                    // Src: (X86strict_cmpp:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:{ *:[v4f32] }:$src1, (timm:{ *:[i8] })<<P:Predicate_CommutableCMPCC>>:$cc) - Complexity = 29
                    // Dst: (CMPPSrmi:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/*552905*/        0, // EndSwitchType
/*552906*/      0, /*End of Scope*/
/*552907*/    /*Scope*/ 27|128,2/*283*/, /*->553192*/
/*552909*/      OPC_RecordChild1, // #1 = $src1
/*552910*/      OPC_Scope, 52|128,1/*180*/, /*->553093*/ // 2 children in Scope
/*552913*/        OPC_MoveChild2,
/*552914*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*552917*/        OPC_RecordMemRef,
/*552918*/        OPC_RecordNode, // #2 = 'ld' chained node
/*552919*/        OPC_CheckFoldableChainNode,
/*552920*/        OPC_RecordChild1, // #3 = $src2
/*552921*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*552923*/        OPC_CheckPredicate, 9, // Predicate_load
/*552925*/        OPC_Scope, 105, /*->553032*/ // 2 children in Scope
/*552927*/          OPC_MoveParent,
/*552928*/          OPC_RecordChild3, // #4 = $cc
/*552929*/          OPC_MoveChild3,
/*552930*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*552933*/          OPC_MoveParent,
/*552934*/          OPC_SwitchType /*4 cases */, 22, MVT::v4f32,// ->552959
/*552937*/            OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*552939*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*552942*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*552946*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 7/*#Ops*/, 1, 5, 6, 7, 8, 9, 4, 
                      // Src: (X86strict_cmpp:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$cc) - Complexity = 28
                      // Dst: (VCMPPSrmi:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/*552959*/          /*SwitchType*/ 22, MVT::v2f64,// ->552983
/*552961*/            OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*552963*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*552966*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*552970*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 7/*#Ops*/, 1, 5, 6, 7, 8, 9, 4, 
                      // Src: (X86strict_cmpp:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$cc) - Complexity = 28
                      // Dst: (VCMPPDrmi:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/*552983*/          /*SwitchType*/ 22, MVT::v8f32,// ->553007
/*552985*/            OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*552987*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*552990*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*552994*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 7/*#Ops*/, 1, 5, 6, 7, 8, 9, 4, 
                      // Src: (X86strict_cmpp:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$cc) - Complexity = 28
                      // Dst: (VCMPPSYrmi:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/*553007*/          /*SwitchType*/ 22, MVT::v4f64,// ->553031
/*553009*/            OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*553011*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*553014*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*553018*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 7/*#Ops*/, 1, 5, 6, 7, 8, 9, 4, 
                      // Src: (X86strict_cmpp:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$cc) - Complexity = 28
                      // Dst: (VCMPPDYrmi:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/*553031*/          0, // EndSwitchType
/*553032*/        /*Scope*/ 59, /*->553092*/
/*553033*/          OPC_CheckPredicate, 39, // Predicate_memop
/*553035*/          OPC_MoveParent,
/*553036*/          OPC_RecordChild3, // #4 = $cc
/*553037*/          OPC_MoveChild3,
/*553038*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*553041*/          OPC_MoveParent,
/*553042*/          OPC_SwitchType /*2 cases */, 22, MVT::v4f32,// ->553067
/*553045*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*553047*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*553050*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*553054*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMPPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 7/*#Ops*/, 1, 5, 6, 7, 8, 9, 4, 
                      // Src: (X86strict_cmpp:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (timm:{ *:[i8] }):$cc) - Complexity = 28
                      // Dst: (CMPPSrmi:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/*553067*/          /*SwitchType*/ 22, MVT::v2f64,// ->553091
/*553069*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*553071*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src2 #5 #6 #7 #8 #9
/*553074*/            OPC_EmitMergeInputChains, 2, 0, 2, 
/*553078*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMPPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 7/*#Ops*/, 1, 5, 6, 7, 8, 9, 4, 
                      // Src: (X86strict_cmpp:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (timm:{ *:[i8] }):$cc) - Complexity = 28
                      // Dst: (CMPPDrmi:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/*553091*/          0, // EndSwitchType
/*553092*/        0, /*End of Scope*/
/*553093*/      /*Scope*/ 97, /*->553191*/
/*553094*/        OPC_RecordChild2, // #2 = $src2
/*553095*/        OPC_RecordChild3, // #3 = $cc
/*553096*/        OPC_MoveChild3,
/*553097*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*553100*/        OPC_MoveParent,
/*553101*/        OPC_SwitchType /*4 cases */, 28, MVT::v4f32,// ->553132
/*553104*/          OPC_Scope, 12, /*->553118*/ // 2 children in Scope
/*553106*/            OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*553108*/            OPC_EmitMergeInputChains1_0,
/*553109*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSrri), 0|OPFL_Chain,
                          MVT::v4f32, 3/*#Ops*/, 1, 2, 3, 
                      // Src: (X86strict_cmpp:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, (timm:{ *:[i8] }):$cc) - Complexity = 6
                      // Dst: (VCMPPSrri:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, (timm:{ *:[i8] }):$cc)
/*553118*/          /*Scope*/ 12, /*->553131*/
/*553119*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*553121*/            OPC_EmitMergeInputChains1_0,
/*553122*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMPPSrri), 0|OPFL_Chain,
                          MVT::v4f32, 3/*#Ops*/, 1, 2, 3, 
                      // Src: (X86strict_cmpp:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, (timm:{ *:[i8] }):$cc) - Complexity = 6
                      // Dst: (CMPPSrri:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, (timm:{ *:[i8] }):$cc)
/*553131*/          0, /*End of Scope*/
/*553132*/        /*SwitchType*/ 28, MVT::v2f64,// ->553162
/*553134*/          OPC_Scope, 12, /*->553148*/ // 2 children in Scope
/*553136*/            OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*553138*/            OPC_EmitMergeInputChains1_0,
/*553139*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDrri), 0|OPFL_Chain,
                          MVT::v2f64, 3/*#Ops*/, 1, 2, 3, 
                      // Src: (X86strict_cmpp:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, (timm:{ *:[i8] }):$cc) - Complexity = 6
                      // Dst: (VCMPPDrri:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, (timm:{ *:[i8] }):$cc)
/*553148*/          /*Scope*/ 12, /*->553161*/
/*553149*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*553151*/            OPC_EmitMergeInputChains1_0,
/*553152*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMPPDrri), 0|OPFL_Chain,
                          MVT::v2f64, 3/*#Ops*/, 1, 2, 3, 
                      // Src: (X86strict_cmpp:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, (timm:{ *:[i8] }):$cc) - Complexity = 6
                      // Dst: (CMPPDrri:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, (timm:{ *:[i8] }):$cc)
/*553161*/          0, /*End of Scope*/
/*553162*/        /*SwitchType*/ 12, MVT::v8f32,// ->553176
/*553164*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*553166*/          OPC_EmitMergeInputChains1_0,
/*553167*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSYrri), 0|OPFL_Chain,
                        MVT::v8f32, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (X86strict_cmpp:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, (timm:{ *:[i8] }):$cc) - Complexity = 6
                    // Dst: (VCMPPSYrri:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, (timm:{ *:[i8] }):$cc)
/*553176*/        /*SwitchType*/ 12, MVT::v4f64,// ->553190
/*553178*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*553180*/          OPC_EmitMergeInputChains1_0,
/*553181*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDYrri), 0|OPFL_Chain,
                        MVT::v4f64, 3/*#Ops*/, 1, 2, 3, 
                    // Src: (X86strict_cmpp:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, (timm:{ *:[i8] }):$cc) - Complexity = 6
                    // Dst: (VCMPPDYrri:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, (timm:{ *:[i8] }):$cc)
/*553190*/        0, // EndSwitchType
/*553191*/      0, /*End of Scope*/
/*553192*/    0, /*End of Scope*/
/*553193*/  /*SwitchOpcode*/ 49|128,3/*433*/, TARGET_VAL(X86ISD::CMPP),// ->553630
/*553197*/    OPC_Scope, 40|128,1/*168*/, /*->553368*/ // 2 children in Scope
/*553200*/      OPC_MoveChild0,
/*553201*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*553204*/      OPC_RecordMemRef,
/*553205*/      OPC_RecordNode, // #0 = 'ld' chained node
/*553206*/      OPC_CheckFoldableChainNode,
/*553207*/      OPC_RecordChild1, // #1 = $src2
/*553208*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*553210*/      OPC_CheckPredicate, 9, // Predicate_load
/*553212*/      OPC_Scope, 96, /*->553310*/ // 2 children in Scope
/*553214*/        OPC_MoveParent,
/*553215*/        OPC_RecordChild1, // #2 = $src1
/*553216*/        OPC_RecordChild2, // #3 = $cc
/*553217*/        OPC_MoveChild2,
/*553218*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*553221*/        OPC_CheckPredicate, 92, // Predicate_CommutableCMPCC
/*553223*/        OPC_MoveParent,
/*553224*/        OPC_SwitchType /*4 cases */, 19, MVT::v4f64,// ->553246
/*553227*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*553229*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*553232*/          OPC_EmitMergeInputChains1_0,
/*553233*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86cmpp:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v4f64] }:$src1, (timm:{ *:[i8] })<<P:Predicate_CommutableCMPCC>>:$cc) - Complexity = 29
                    // Dst: (VCMPPDYrmi:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/*553246*/        /*SwitchType*/ 19, MVT::v8f32,// ->553267
/*553248*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*553250*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*553253*/          OPC_EmitMergeInputChains1_0,
/*553254*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86cmpp:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v8f32] }:$src1, (timm:{ *:[i8] })<<P:Predicate_CommutableCMPCC>>:$cc) - Complexity = 29
                    // Dst: (VCMPPSYrmi:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/*553267*/        /*SwitchType*/ 19, MVT::v2f64,// ->553288
/*553269*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*553271*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*553274*/          OPC_EmitMergeInputChains1_0,
/*553275*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86cmpp:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v2f64] }:$src1, (timm:{ *:[i8] })<<P:Predicate_CommutableCMPCC>>:$cc) - Complexity = 29
                    // Dst: (VCMPPDrmi:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/*553288*/        /*SwitchType*/ 19, MVT::v4f32,// ->553309
/*553290*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*553292*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*553295*/          OPC_EmitMergeInputChains1_0,
/*553296*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86cmpp:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v4f32] }:$src1, (timm:{ *:[i8] })<<P:Predicate_CommutableCMPCC>>:$cc) - Complexity = 29
                    // Dst: (VCMPPSrmi:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/*553309*/        0, // EndSwitchType
/*553310*/      /*Scope*/ 56, /*->553367*/
/*553311*/        OPC_CheckPredicate, 39, // Predicate_memop
/*553313*/        OPC_MoveParent,
/*553314*/        OPC_RecordChild1, // #2 = $src1
/*553315*/        OPC_RecordChild2, // #3 = $cc
/*553316*/        OPC_MoveChild2,
/*553317*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*553320*/        OPC_CheckPredicate, 92, // Predicate_CommutableCMPCC
/*553322*/        OPC_MoveParent,
/*553323*/        OPC_SwitchType /*2 cases */, 19, MVT::v2f64,// ->553345
/*553326*/          OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*553328*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*553331*/          OPC_EmitMergeInputChains1_0,
/*553332*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMPPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86cmpp:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:{ *:[v2f64] }:$src1, (timm:{ *:[i8] })<<P:Predicate_CommutableCMPCC>>:$cc) - Complexity = 29
                    // Dst: (CMPPDrmi:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/*553345*/        /*SwitchType*/ 19, MVT::v4f32,// ->553366
/*553347*/          OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*553349*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*553352*/          OPC_EmitMergeInputChains1_0,
/*553353*/          OPC_MorphNodeTo1, TARGET_VAL(X86::CMPPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 2, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86cmpp:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, VR128:{ *:[v4f32] }:$src1, (timm:{ *:[i8] })<<P:Predicate_CommutableCMPCC>>:$cc) - Complexity = 29
                    // Dst: (CMPPSrmi:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/*553366*/        0, // EndSwitchType
/*553367*/      0, /*End of Scope*/
/*553368*/    /*Scope*/ 3|128,2/*259*/, /*->553629*/
/*553370*/      OPC_RecordChild0, // #0 = $src1
/*553371*/      OPC_Scope, 34|128,1/*162*/, /*->553536*/ // 2 children in Scope
/*553374*/        OPC_MoveChild1,
/*553375*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*553378*/        OPC_RecordMemRef,
/*553379*/        OPC_RecordNode, // #1 = 'ld' chained node
/*553380*/        OPC_CheckFoldableChainNode,
/*553381*/        OPC_RecordChild1, // #2 = $src2
/*553382*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*553384*/        OPC_CheckPredicate, 9, // Predicate_load
/*553386*/        OPC_Scope, 93, /*->553481*/ // 2 children in Scope
/*553388*/          OPC_MoveParent,
/*553389*/          OPC_RecordChild2, // #3 = $cc
/*553390*/          OPC_MoveChild2,
/*553391*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*553394*/          OPC_MoveParent,
/*553395*/          OPC_SwitchType /*4 cases */, 19, MVT::v4f32,// ->553417
/*553398*/            OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*553400*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*553403*/            OPC_EmitMergeInputChains1_1,
/*553404*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86cmpp:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$cc) - Complexity = 28
                      // Dst: (VCMPPSrmi:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/*553417*/          /*SwitchType*/ 19, MVT::v2f64,// ->553438
/*553419*/            OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*553421*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*553424*/            OPC_EmitMergeInputChains1_1,
/*553425*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86cmpp:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$cc) - Complexity = 28
                      // Dst: (VCMPPDrmi:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/*553438*/          /*SwitchType*/ 19, MVT::v8f32,// ->553459
/*553440*/            OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*553442*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*553445*/            OPC_EmitMergeInputChains1_1,
/*553446*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86cmpp:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$cc) - Complexity = 28
                      // Dst: (VCMPPSYrmi:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/*553459*/          /*SwitchType*/ 19, MVT::v4f64,// ->553480
/*553461*/            OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*553463*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*553466*/            OPC_EmitMergeInputChains1_1,
/*553467*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDYrmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86cmpp:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$cc) - Complexity = 28
                      // Dst: (VCMPPDYrmi:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/*553480*/          0, // EndSwitchType
/*553481*/        /*Scope*/ 53, /*->553535*/
/*553482*/          OPC_CheckPredicate, 39, // Predicate_memop
/*553484*/          OPC_MoveParent,
/*553485*/          OPC_RecordChild2, // #3 = $cc
/*553486*/          OPC_MoveChild2,
/*553487*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*553490*/          OPC_MoveParent,
/*553491*/          OPC_SwitchType /*2 cases */, 19, MVT::v4f32,// ->553513
/*553494*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*553496*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*553499*/            OPC_EmitMergeInputChains1_1,
/*553500*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMPPSrmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86cmpp:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (timm:{ *:[i8] }):$cc) - Complexity = 28
                      // Dst: (CMPPSrmi:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/*553513*/          /*SwitchType*/ 19, MVT::v2f64,// ->553534
/*553515*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*553517*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*553520*/            OPC_EmitMergeInputChains1_1,
/*553521*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMPPDrmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86cmpp:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>, (timm:{ *:[i8] }):$cc) - Complexity = 28
                      // Dst: (CMPPDrmi:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i8] }):$cc)
/*553534*/          0, // EndSwitchType
/*553535*/        0, /*End of Scope*/
/*553536*/      /*Scope*/ 91, /*->553628*/
/*553537*/        OPC_RecordChild1, // #1 = $src2
/*553538*/        OPC_RecordChild2, // #2 = $cc
/*553539*/        OPC_MoveChild2,
/*553540*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*553543*/        OPC_MoveParent,
/*553544*/        OPC_SwitchType /*4 cases */, 26, MVT::v4f32,// ->553573
/*553547*/          OPC_Scope, 11, /*->553560*/ // 2 children in Scope
/*553549*/            OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*553551*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSrri), 0,
                          MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86cmpp:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, (timm:{ *:[i8] }):$cc) - Complexity = 6
                      // Dst: (VCMPPSrri:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, (timm:{ *:[i8] }):$cc)
/*553560*/          /*Scope*/ 11, /*->553572*/
/*553561*/            OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*553563*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMPPSrri), 0,
                          MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86cmpp:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, (timm:{ *:[i8] }):$cc) - Complexity = 6
                      // Dst: (CMPPSrri:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, (timm:{ *:[i8] }):$cc)
/*553572*/          0, /*End of Scope*/
/*553573*/        /*SwitchType*/ 26, MVT::v2f64,// ->553601
/*553575*/          OPC_Scope, 11, /*->553588*/ // 2 children in Scope
/*553577*/            OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*553579*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDrri), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86cmpp:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, (timm:{ *:[i8] }):$cc) - Complexity = 6
                      // Dst: (VCMPPDrri:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, (timm:{ *:[i8] }):$cc)
/*553588*/          /*Scope*/ 11, /*->553600*/
/*553589*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*553591*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CMPPDrri), 0,
                          MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                      // Src: (X86cmpp:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, (timm:{ *:[i8] }):$cc) - Complexity = 6
                      // Dst: (CMPPDrri:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, (timm:{ *:[i8] }):$cc)
/*553600*/          0, /*End of Scope*/
/*553601*/        /*SwitchType*/ 11, MVT::v8f32,// ->553614
/*553603*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*553605*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPSYrri), 0,
                        MVT::v8f32, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86cmpp:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, (timm:{ *:[i8] }):$cc) - Complexity = 6
                    // Dst: (VCMPPSYrri:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, (timm:{ *:[i8] }):$cc)
/*553614*/        /*SwitchType*/ 11, MVT::v4f64,// ->553627
/*553616*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*553618*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCMPPDYrri), 0,
                        MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                    // Src: (X86cmpp:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, (timm:{ *:[i8] }):$cc) - Complexity = 6
                    // Dst: (VCMPPDYrri:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, (timm:{ *:[i8] }):$cc)
/*553627*/        0, // EndSwitchType
/*553628*/      0, /*End of Scope*/
/*553629*/    0, /*End of Scope*/
/*553630*/  /*SwitchOpcode*/ 39|128,1/*167*/, TARGET_VAL(X86ISD::VMFPROUND),// ->553801
/*553634*/    OPC_Scope, 127, /*->553763*/ // 2 children in Scope
/*553636*/      OPC_MoveChild0,
/*553637*/      OPC_SwitchOpcode /*2 cases */, 60, TARGET_VAL(ISD::LOAD),// ->553701
/*553641*/        OPC_RecordMemRef,
/*553642*/        OPC_RecordNode, // #0 = 'ld' chained node
/*553643*/        OPC_CheckFoldableChainNode,
/*553644*/        OPC_RecordChild1, // #1 = $src
/*553645*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*553647*/        OPC_CheckPredicate, 9, // Predicate_load
/*553649*/        OPC_MoveParent,
/*553650*/        OPC_Scope, 24, /*->553676*/ // 2 children in Scope
/*553652*/          OPC_MoveChild1,
/*553653*/          OPC_CheckImmAllZerosV,
/*553654*/          OPC_MoveParent,
/*553655*/          OPC_RecordChild2, // #2 = $mask
/*553656*/          OPC_CheckType, MVT::v4f32,
/*553658*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*553660*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*553663*/          OPC_EmitMergeInputChains1_0,
/*553664*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86vmfpround:{ *:[v4f32] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>, immAllZerosV:{ *:[v4f32] }, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 29
                    // Dst: (VCVTPD2PSZ128rmkz:{ *:[v4f32] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*553676*/        /*Scope*/ 23, /*->553700*/
/*553677*/          OPC_RecordChild1, // #2 = $src0
/*553678*/          OPC_RecordChild2, // #3 = $mask
/*553679*/          OPC_CheckType, MVT::v4f32,
/*553681*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*553683*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #4 #5 #6 #7 #8
/*553686*/          OPC_EmitMergeInputChains1_0,
/*553687*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86vmfpround:{ *:[v4f32] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4f32] }:$src0, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 25
                    // Dst: (VCVTPD2PSZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*553700*/        0, /*End of Scope*/
/*553701*/      /*SwitchOpcode*/ 58, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->553762
/*553704*/        OPC_RecordMemRef,
/*553705*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*553706*/        OPC_CheckFoldableChainNode,
/*553707*/        OPC_RecordChild1, // #1 = $src
/*553708*/        OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*553710*/        OPC_MoveParent,
/*553711*/        OPC_Scope, 24, /*->553737*/ // 2 children in Scope
/*553713*/          OPC_MoveChild1,
/*553714*/          OPC_CheckImmAllZerosV,
/*553715*/          OPC_MoveParent,
/*553716*/          OPC_RecordChild2, // #2 = $mask
/*553717*/          OPC_CheckType, MVT::v4f32,
/*553719*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*553721*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*553724*/          OPC_EmitMergeInputChains1_0,
/*553725*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86vmfpround:{ *:[v4f32] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>, immAllZerosV:{ *:[v4f32] }, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 29
                    // Dst: (VCVTPD2PSZ128rmbkz:{ *:[v4f32] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*553737*/        /*Scope*/ 23, /*->553761*/
/*553738*/          OPC_RecordChild1, // #2 = $src0
/*553739*/          OPC_RecordChild2, // #3 = $mask
/*553740*/          OPC_CheckType, MVT::v4f32,
/*553742*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*553744*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #4 #5 #6 #7 #8
/*553747*/          OPC_EmitMergeInputChains1_0,
/*553748*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86vmfpround:{ *:[v4f32] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v4f32] }:$src0, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 25
                    // Dst: (VCVTPD2PSZ128rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*553761*/        0, /*End of Scope*/
/*553762*/      0, // EndSwitchOpcode
/*553763*/    /*Scope*/ 36, /*->553800*/
/*553764*/      OPC_RecordChild0, // #0 = $src
/*553765*/      OPC_Scope, 16, /*->553783*/ // 2 children in Scope
/*553767*/        OPC_MoveChild1,
/*553768*/        OPC_CheckImmAllZerosV,
/*553769*/        OPC_MoveParent,
/*553770*/        OPC_RecordChild2, // #1 = $mask
/*553771*/        OPC_CheckType, MVT::v4f32,
/*553773*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*553775*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZ128rrkz), 0,
                      MVT::v4f32, 2/*#Ops*/, 1, 0, 
                  // Src: (X86vmfpround:{ *:[v4f32] } VR128X:{ *:[v2f64] }:$src, immAllZerosV:{ *:[v4f32] }, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 7
                  // Dst: (VCVTPD2PSZ128rrkz:{ *:[v4f32] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*553783*/      /*Scope*/ 15, /*->553799*/
/*553784*/        OPC_RecordChild1, // #1 = $src0
/*553785*/        OPC_RecordChild2, // #2 = $mask
/*553786*/        OPC_CheckType, MVT::v4f32,
/*553788*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*553790*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZ128rrk), 0,
                      MVT::v4f32, 3/*#Ops*/, 1, 2, 0, 
                  // Src: (X86vmfpround:{ *:[v4f32] } VR128X:{ *:[v2f64] }:$src, VR128X:{ *:[v4f32] }:$src0, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 3
                  // Dst: (VCVTPD2PSZ128rrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2f64] }:$src)
/*553799*/      0, /*End of Scope*/
/*553800*/    0, /*End of Scope*/
/*553801*/  /*SwitchOpcode*/ 46|128,1/*174*/, TARGET_VAL(X86ISD::MCVTSI2P),// ->553979
/*553805*/    OPC_Scope, 3|128,1/*131*/, /*->553939*/ // 2 children in Scope
/*553808*/      OPC_MoveChild0,
/*553809*/      OPC_SwitchOpcode /*2 cases */, 62, TARGET_VAL(ISD::LOAD),// ->553875
/*553813*/        OPC_RecordMemRef,
/*553814*/        OPC_RecordNode, // #0 = 'ld' chained node
/*553815*/        OPC_CheckFoldableChainNode,
/*553816*/        OPC_RecordChild1, // #1 = $src
/*553817*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*553819*/        OPC_CheckPredicate, 9, // Predicate_load
/*553821*/        OPC_CheckType, MVT::v2i64,
/*553823*/        OPC_MoveParent,
/*553824*/        OPC_Scope, 24, /*->553850*/ // 2 children in Scope
/*553826*/          OPC_MoveChild1,
/*553827*/          OPC_CheckImmAllZerosV,
/*553828*/          OPC_MoveParent,
/*553829*/          OPC_RecordChild2, // #2 = $mask
/*553830*/          OPC_CheckType, MVT::v4f32,
/*553832*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*553834*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*553837*/          OPC_EmitMergeInputChains1_0,
/*553838*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PSZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86VMSintToFP:{ *:[v4f32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>, immAllZerosV:{ *:[v4f32] }, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 29
                    // Dst: (VCVTQQ2PSZ128rmkz:{ *:[v4f32] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*553850*/        /*Scope*/ 23, /*->553874*/
/*553851*/          OPC_RecordChild1, // #2 = $src0
/*553852*/          OPC_RecordChild2, // #3 = $mask
/*553853*/          OPC_CheckType, MVT::v4f32,
/*553855*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*553857*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #4 #5 #6 #7 #8
/*553860*/          OPC_EmitMergeInputChains1_0,
/*553861*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PSZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86VMSintToFP:{ *:[v4f32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4f32] }:$src0, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 25
                    // Dst: (VCVTQQ2PSZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*553874*/        0, /*End of Scope*/
/*553875*/      /*SwitchOpcode*/ 60, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->553938
/*553878*/        OPC_RecordMemRef,
/*553879*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*553880*/        OPC_CheckFoldableChainNode,
/*553881*/        OPC_RecordChild1, // #1 = $src
/*553882*/        OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*553884*/        OPC_CheckType, MVT::v2i64,
/*553886*/        OPC_MoveParent,
/*553887*/        OPC_Scope, 24, /*->553913*/ // 2 children in Scope
/*553889*/          OPC_MoveChild1,
/*553890*/          OPC_CheckImmAllZerosV,
/*553891*/          OPC_MoveParent,
/*553892*/          OPC_RecordChild2, // #2 = $mask
/*553893*/          OPC_CheckType, MVT::v4f32,
/*553895*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*553897*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*553900*/          OPC_EmitMergeInputChains1_0,
/*553901*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PSZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86VMSintToFP:{ *:[v4f32] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>, immAllZerosV:{ *:[v4f32] }, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 29
                    // Dst: (VCVTQQ2PSZ128rmbkz:{ *:[v4f32] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*553913*/        /*Scope*/ 23, /*->553937*/
/*553914*/          OPC_RecordChild1, // #2 = $src0
/*553915*/          OPC_RecordChild2, // #3 = $mask
/*553916*/          OPC_CheckType, MVT::v4f32,
/*553918*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*553920*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #4 #5 #6 #7 #8
/*553923*/          OPC_EmitMergeInputChains1_0,
/*553924*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PSZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86VMSintToFP:{ *:[v4f32] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v4f32] }:$src0, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 25
                    // Dst: (VCVTQQ2PSZ128rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*553937*/        0, /*End of Scope*/
/*553938*/      0, // EndSwitchOpcode
/*553939*/    /*Scope*/ 38, /*->553978*/
/*553940*/      OPC_RecordChild0, // #0 = $src
/*553941*/      OPC_CheckChild0Type, MVT::v2i64,
/*553943*/      OPC_Scope, 16, /*->553961*/ // 2 children in Scope
/*553945*/        OPC_MoveChild1,
/*553946*/        OPC_CheckImmAllZerosV,
/*553947*/        OPC_MoveParent,
/*553948*/        OPC_RecordChild2, // #1 = $mask
/*553949*/        OPC_CheckType, MVT::v4f32,
/*553951*/        OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*553953*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PSZ128rrkz), 0,
                      MVT::v4f32, 2/*#Ops*/, 1, 0, 
                  // Src: (X86VMSintToFP:{ *:[v4f32] } VR128X:{ *:[v2i64] }:$src, immAllZerosV:{ *:[v4f32] }, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 7
                  // Dst: (VCVTQQ2PSZ128rrkz:{ *:[v4f32] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*553961*/      /*Scope*/ 15, /*->553977*/
/*553962*/        OPC_RecordChild1, // #1 = $src0
/*553963*/        OPC_RecordChild2, // #2 = $mask
/*553964*/        OPC_CheckType, MVT::v4f32,
/*553966*/        OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*553968*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PSZ128rrk), 0,
                      MVT::v4f32, 3/*#Ops*/, 1, 2, 0, 
                  // Src: (X86VMSintToFP:{ *:[v4f32] } VR128X:{ *:[v2i64] }:$src, VR128X:{ *:[v4f32] }:$src0, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 3
                  // Dst: (VCVTQQ2PSZ128rrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*553977*/      0, /*End of Scope*/
/*553978*/    0, /*End of Scope*/
/*553979*/  /*SwitchOpcode*/ 46|128,1/*174*/, TARGET_VAL(X86ISD::MCVTUI2P),// ->554157
/*553983*/    OPC_Scope, 3|128,1/*131*/, /*->554117*/ // 2 children in Scope
/*553986*/      OPC_MoveChild0,
/*553987*/      OPC_SwitchOpcode /*2 cases */, 62, TARGET_VAL(ISD::LOAD),// ->554053
/*553991*/        OPC_RecordMemRef,
/*553992*/        OPC_RecordNode, // #0 = 'ld' chained node
/*553993*/        OPC_CheckFoldableChainNode,
/*553994*/        OPC_RecordChild1, // #1 = $src
/*553995*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*553997*/        OPC_CheckPredicate, 9, // Predicate_load
/*553999*/        OPC_CheckType, MVT::v2i64,
/*554001*/        OPC_MoveParent,
/*554002*/        OPC_Scope, 24, /*->554028*/ // 2 children in Scope
/*554004*/          OPC_MoveChild1,
/*554005*/          OPC_CheckImmAllZerosV,
/*554006*/          OPC_MoveParent,
/*554007*/          OPC_RecordChild2, // #2 = $mask
/*554008*/          OPC_CheckType, MVT::v4f32,
/*554010*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*554012*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*554015*/          OPC_EmitMergeInputChains1_0,
/*554016*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PSZ128rmkz), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86VMUintToFP:{ *:[v4f32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>, immAllZerosV:{ *:[v4f32] }, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 29
                    // Dst: (VCVTUQQ2PSZ128rmkz:{ *:[v4f32] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*554028*/        /*Scope*/ 23, /*->554052*/
/*554029*/          OPC_RecordChild1, // #2 = $src0
/*554030*/          OPC_RecordChild2, // #3 = $mask
/*554031*/          OPC_CheckType, MVT::v4f32,
/*554033*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*554035*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #4 #5 #6 #7 #8
/*554038*/          OPC_EmitMergeInputChains1_0,
/*554039*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PSZ128rmk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86VMUintToFP:{ *:[v4f32] } (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128X:{ *:[v4f32] }:$src0, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 25
                    // Dst: (VCVTUQQ2PSZ128rmk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*554052*/        0, /*End of Scope*/
/*554053*/      /*SwitchOpcode*/ 60, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->554116
/*554056*/        OPC_RecordMemRef,
/*554057*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*554058*/        OPC_CheckFoldableChainNode,
/*554059*/        OPC_RecordChild1, // #1 = $src
/*554060*/        OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*554062*/        OPC_CheckType, MVT::v2i64,
/*554064*/        OPC_MoveParent,
/*554065*/        OPC_Scope, 24, /*->554091*/ // 2 children in Scope
/*554067*/          OPC_MoveChild1,
/*554068*/          OPC_CheckImmAllZerosV,
/*554069*/          OPC_MoveParent,
/*554070*/          OPC_RecordChild2, // #2 = $mask
/*554071*/          OPC_CheckType, MVT::v4f32,
/*554073*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*554075*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #3 #4 #5 #6 #7
/*554078*/          OPC_EmitMergeInputChains1_0,
/*554079*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PSZ128rmbkz), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 6/*#Ops*/, 2, 3, 4, 5, 6, 7, 
                    // Src: (X86VMUintToFP:{ *:[v4f32] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>, immAllZerosV:{ *:[v4f32] }, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 29
                    // Dst: (VCVTUQQ2PSZ128rmbkz:{ *:[v4f32] } VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*554091*/        /*Scope*/ 23, /*->554115*/
/*554092*/          OPC_RecordChild1, // #2 = $src0
/*554093*/          OPC_RecordChild2, // #3 = $mask
/*554094*/          OPC_CheckType, MVT::v4f32,
/*554096*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*554098*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #4 #5 #6 #7 #8
/*554101*/          OPC_EmitMergeInputChains1_0,
/*554102*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PSZ128rmbk), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 2, 3, 4, 5, 6, 7, 8, 
                    // Src: (X86VMUintToFP:{ *:[v4f32] } (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v4f32] }:$src0, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 25
                    // Dst: (VCVTUQQ2PSZ128rmbk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK2WM:{ *:[v2i1] }:$mask, addr:{ *:[iPTR] }:$src)
/*554115*/        0, /*End of Scope*/
/*554116*/      0, // EndSwitchOpcode
/*554117*/    /*Scope*/ 38, /*->554156*/
/*554118*/      OPC_RecordChild0, // #0 = $src
/*554119*/      OPC_CheckChild0Type, MVT::v2i64,
/*554121*/      OPC_Scope, 16, /*->554139*/ // 2 children in Scope
/*554123*/        OPC_MoveChild1,
/*554124*/        OPC_CheckImmAllZerosV,
/*554125*/        OPC_MoveParent,
/*554126*/        OPC_RecordChild2, // #1 = $mask
/*554127*/        OPC_CheckType, MVT::v4f32,
/*554129*/        OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*554131*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PSZ128rrkz), 0,
                      MVT::v4f32, 2/*#Ops*/, 1, 0, 
                  // Src: (X86VMUintToFP:{ *:[v4f32] } VR128X:{ *:[v2i64] }:$src, immAllZerosV:{ *:[v4f32] }, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 7
                  // Dst: (VCVTUQQ2PSZ128rrkz:{ *:[v4f32] } VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*554139*/      /*Scope*/ 15, /*->554155*/
/*554140*/        OPC_RecordChild1, // #1 = $src0
/*554141*/        OPC_RecordChild2, // #2 = $mask
/*554142*/        OPC_CheckType, MVT::v4f32,
/*554144*/        OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*554146*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PSZ128rrk), 0,
                      MVT::v4f32, 3/*#Ops*/, 1, 2, 0, 
                  // Src: (X86VMUintToFP:{ *:[v4f32] } VR128X:{ *:[v2i64] }:$src, VR128X:{ *:[v4f32] }:$src0, VK2WM:{ *:[v2i1] }:$mask) - Complexity = 3
                  // Dst: (VCVTUQQ2PSZ128rrk:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src0, VK2WM:{ *:[v2i1] }:$mask, VR128X:{ *:[v2i64] }:$src)
/*554155*/      0, /*End of Scope*/
/*554156*/    0, /*End of Scope*/
/*554157*/  /*SwitchOpcode*/ 30|128,3/*414*/, TARGET_VAL(X86ISD::VPERMIL2),// ->554575
/*554161*/    OPC_RecordChild0, // #0 = $src1
/*554162*/    OPC_Scope, 42, /*->554206*/ // 9 children in Scope
/*554164*/      OPC_RecordChild1, // #1 = $src2
/*554165*/      OPC_MoveChild2,
/*554166*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*554169*/      OPC_RecordMemRef,
/*554170*/      OPC_RecordNode, // #2 = 'ld' chained node
/*554171*/      OPC_CheckFoldableChainNode,
/*554172*/      OPC_RecordChild1, // #3 = $src3
/*554173*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*554175*/      OPC_CheckPredicate, 9, // Predicate_load
/*554177*/      OPC_MoveParent,
/*554178*/      OPC_RecordChild3, // #4 = $src4
/*554179*/      OPC_MoveChild3,
/*554180*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*554183*/      OPC_MoveParent,
/*554184*/      OPC_CheckType, MVT::v2f64,
/*554186*/      OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*554188*/      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*554191*/      OPC_EmitMergeInputChains1_2,
/*554192*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMIL2PDrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2f64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                // Src: (X86vpermil2:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src4) - Complexity = 28
                // Dst: (VPERMIL2PDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i8] }):$src4)
/*554206*/    /*Scope*/ 42, /*->554249*/
/*554207*/      OPC_MoveChild1,
/*554208*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*554211*/      OPC_RecordMemRef,
/*554212*/      OPC_RecordNode, // #1 = 'ld' chained node
/*554213*/      OPC_CheckFoldableChainNode,
/*554214*/      OPC_RecordChild1, // #2 = $src2
/*554215*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*554217*/      OPC_CheckPredicate, 9, // Predicate_load
/*554219*/      OPC_MoveParent,
/*554220*/      OPC_RecordChild2, // #3 = $src3
/*554221*/      OPC_RecordChild3, // #4 = $src4
/*554222*/      OPC_MoveChild3,
/*554223*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*554226*/      OPC_MoveParent,
/*554227*/      OPC_CheckType, MVT::v2f64,
/*554229*/      OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*554231*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*554234*/      OPC_EmitMergeInputChains1_1,
/*554235*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMIL2PDmr), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2f64, 8/*#Ops*/, 0, 5, 6, 7, 8, 9, 3, 4, 
                // Src: (X86vpermil2:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v2i64] }:$src3, (timm:{ *:[i8] }):$src4) - Complexity = 28
                // Dst: (VPERMIL2PDmr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v2i64] }:$src3, (timm:{ *:[i8] }):$src4)
/*554249*/    /*Scope*/ 42, /*->554292*/
/*554250*/      OPC_RecordChild1, // #1 = $src2
/*554251*/      OPC_MoveChild2,
/*554252*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*554255*/      OPC_RecordMemRef,
/*554256*/      OPC_RecordNode, // #2 = 'ld' chained node
/*554257*/      OPC_CheckFoldableChainNode,
/*554258*/      OPC_RecordChild1, // #3 = $src3
/*554259*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*554261*/      OPC_CheckPredicate, 9, // Predicate_load
/*554263*/      OPC_MoveParent,
/*554264*/      OPC_RecordChild3, // #4 = $src4
/*554265*/      OPC_MoveChild3,
/*554266*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*554269*/      OPC_MoveParent,
/*554270*/      OPC_CheckType, MVT::v4f64,
/*554272*/      OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*554274*/      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*554277*/      OPC_EmitMergeInputChains1_2,
/*554278*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMIL2PDYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4f64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                // Src: (X86vpermil2:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src4) - Complexity = 28
                // Dst: (VPERMIL2PDYrm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i8] }):$src4)
/*554292*/    /*Scope*/ 42, /*->554335*/
/*554293*/      OPC_MoveChild1,
/*554294*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*554297*/      OPC_RecordMemRef,
/*554298*/      OPC_RecordNode, // #1 = 'ld' chained node
/*554299*/      OPC_CheckFoldableChainNode,
/*554300*/      OPC_RecordChild1, // #2 = $src2
/*554301*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*554303*/      OPC_CheckPredicate, 9, // Predicate_load
/*554305*/      OPC_MoveParent,
/*554306*/      OPC_RecordChild2, // #3 = $src3
/*554307*/      OPC_RecordChild3, // #4 = $src4
/*554308*/      OPC_MoveChild3,
/*554309*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*554312*/      OPC_MoveParent,
/*554313*/      OPC_CheckType, MVT::v4f64,
/*554315*/      OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*554317*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*554320*/      OPC_EmitMergeInputChains1_1,
/*554321*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMIL2PDYmr), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4f64, 8/*#Ops*/, 0, 5, 6, 7, 8, 9, 3, 4, 
                // Src: (X86vpermil2:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v4i64] }:$src3, (timm:{ *:[i8] }):$src4) - Complexity = 28
                // Dst: (VPERMIL2PDYmr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v4i64] }:$src3, (timm:{ *:[i8] }):$src4)
/*554335*/    /*Scope*/ 42, /*->554378*/
/*554336*/      OPC_RecordChild1, // #1 = $src2
/*554337*/      OPC_MoveChild2,
/*554338*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*554341*/      OPC_RecordMemRef,
/*554342*/      OPC_RecordNode, // #2 = 'ld' chained node
/*554343*/      OPC_CheckFoldableChainNode,
/*554344*/      OPC_RecordChild1, // #3 = $src3
/*554345*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*554347*/      OPC_CheckPredicate, 9, // Predicate_load
/*554349*/      OPC_MoveParent,
/*554350*/      OPC_RecordChild3, // #4 = $src4
/*554351*/      OPC_MoveChild3,
/*554352*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*554355*/      OPC_MoveParent,
/*554356*/      OPC_CheckType, MVT::v4f32,
/*554358*/      OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*554360*/      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*554363*/      OPC_EmitMergeInputChains1_2,
/*554364*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMIL2PSrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4f32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                // Src: (X86vpermil2:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src4) - Complexity = 28
                // Dst: (VPERMIL2PSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i8] }):$src4)
/*554378*/    /*Scope*/ 42, /*->554421*/
/*554379*/      OPC_MoveChild1,
/*554380*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*554383*/      OPC_RecordMemRef,
/*554384*/      OPC_RecordNode, // #1 = 'ld' chained node
/*554385*/      OPC_CheckFoldableChainNode,
/*554386*/      OPC_RecordChild1, // #2 = $src2
/*554387*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*554389*/      OPC_CheckPredicate, 9, // Predicate_load
/*554391*/      OPC_MoveParent,
/*554392*/      OPC_RecordChild2, // #3 = $src3
/*554393*/      OPC_RecordChild3, // #4 = $src4
/*554394*/      OPC_MoveChild3,
/*554395*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*554398*/      OPC_MoveParent,
/*554399*/      OPC_CheckType, MVT::v4f32,
/*554401*/      OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*554403*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*554406*/      OPC_EmitMergeInputChains1_1,
/*554407*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMIL2PSmr), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4f32, 8/*#Ops*/, 0, 5, 6, 7, 8, 9, 3, 4, 
                // Src: (X86vpermil2:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR128:{ *:[v4i32] }:$src3, (timm:{ *:[i8] }):$src4) - Complexity = 28
                // Dst: (VPERMIL2PSmr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v4i32] }:$src3, (timm:{ *:[i8] }):$src4)
/*554421*/    /*Scope*/ 42, /*->554464*/
/*554422*/      OPC_RecordChild1, // #1 = $src2
/*554423*/      OPC_MoveChild2,
/*554424*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*554427*/      OPC_RecordMemRef,
/*554428*/      OPC_RecordNode, // #2 = 'ld' chained node
/*554429*/      OPC_CheckFoldableChainNode,
/*554430*/      OPC_RecordChild1, // #3 = $src3
/*554431*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*554433*/      OPC_CheckPredicate, 9, // Predicate_load
/*554435*/      OPC_MoveParent,
/*554436*/      OPC_RecordChild3, // #4 = $src4
/*554437*/      OPC_MoveChild3,
/*554438*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*554441*/      OPC_MoveParent,
/*554442*/      OPC_CheckType, MVT::v8f32,
/*554444*/      OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*554446*/      OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*554449*/      OPC_EmitMergeInputChains1_2,
/*554450*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMIL2PSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8f32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                // Src: (X86vpermil2:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src4) - Complexity = 28
                // Dst: (VPERMIL2PSYrm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i8] }):$src4)
/*554464*/    /*Scope*/ 42, /*->554507*/
/*554465*/      OPC_MoveChild1,
/*554466*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*554469*/      OPC_RecordMemRef,
/*554470*/      OPC_RecordNode, // #1 = 'ld' chained node
/*554471*/      OPC_CheckFoldableChainNode,
/*554472*/      OPC_RecordChild1, // #2 = $src2
/*554473*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*554475*/      OPC_CheckPredicate, 9, // Predicate_load
/*554477*/      OPC_MoveParent,
/*554478*/      OPC_RecordChild2, // #3 = $src3
/*554479*/      OPC_RecordChild3, // #4 = $src4
/*554480*/      OPC_MoveChild3,
/*554481*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*554484*/      OPC_MoveParent,
/*554485*/      OPC_CheckType, MVT::v8f32,
/*554487*/      OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*554489*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #5 #6 #7 #8 #9
/*554492*/      OPC_EmitMergeInputChains1_1,
/*554493*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMIL2PSYmr), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v8f32, 8/*#Ops*/, 0, 5, 6, 7, 8, 9, 3, 4, 
                // Src: (X86vpermil2:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, VR256:{ *:[v8i32] }:$src3, (timm:{ *:[i8] }):$src4) - Complexity = 28
                // Dst: (VPERMIL2PSYmr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v8i32] }:$src3, (timm:{ *:[i8] }):$src4)
/*554507*/    /*Scope*/ 66, /*->554574*/
/*554508*/      OPC_RecordChild1, // #1 = $src2
/*554509*/      OPC_RecordChild2, // #2 = $src3
/*554510*/      OPC_RecordChild3, // #3 = $src4
/*554511*/      OPC_MoveChild3,
/*554512*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*554515*/      OPC_MoveParent,
/*554516*/      OPC_SwitchType /*4 cases */, 12, MVT::v2f64,// ->554531
/*554519*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*554521*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMIL2PDrr), 0,
                      MVT::v2f64, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (X86vpermil2:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, VR128:{ *:[v2i64] }:$src3, (timm:{ *:[i8] }):$src4) - Complexity = 6
                  // Dst: (VPERMIL2PDrr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, VR128:{ *:[v2i64] }:$src3, (timm:{ *:[i8] }):$src4)
/*554531*/      /*SwitchType*/ 12, MVT::v4f64,// ->554545
/*554533*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*554535*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMIL2PDYrr), 0,
                      MVT::v4f64, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (X86vpermil2:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, VR256:{ *:[v4i64] }:$src3, (timm:{ *:[i8] }):$src4) - Complexity = 6
                  // Dst: (VPERMIL2PDYrr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, VR256:{ *:[v4i64] }:$src3, (timm:{ *:[i8] }):$src4)
/*554545*/      /*SwitchType*/ 12, MVT::v4f32,// ->554559
/*554547*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*554549*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMIL2PSrr), 0,
                      MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (X86vpermil2:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, VR128:{ *:[v4i32] }:$src3, (timm:{ *:[i8] }):$src4) - Complexity = 6
                  // Dst: (VPERMIL2PSrr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, VR128:{ *:[v4i32] }:$src3, (timm:{ *:[i8] }):$src4)
/*554559*/      /*SwitchType*/ 12, MVT::v8f32,// ->554573
/*554561*/        OPC_CheckPatternPredicate, 49, // (Subtarget->hasXOP())
/*554563*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMIL2PSYrr), 0,
                      MVT::v8f32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (X86vpermil2:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, VR256:{ *:[v8i32] }:$src3, (timm:{ *:[i8] }):$src4) - Complexity = 6
                  // Dst: (VPERMIL2PSYrr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, VR256:{ *:[v8i32] }:$src3, (timm:{ *:[i8] }):$src4)
/*554573*/      0, // EndSwitchType
/*554574*/    0, /*End of Scope*/
/*554575*/  /*SwitchOpcode*/ 41|128,2/*297*/, TARGET_VAL(X86ISD::MOVDDUP),// ->554876
/*554579*/    OPC_Scope, 102|128,1/*230*/, /*->554812*/ // 2 children in Scope
/*554582*/      OPC_MoveChild0,
/*554583*/      OPC_SwitchOpcode /*3 cases */, 56, TARGET_VAL(ISD::SCALAR_TO_VECTOR),// ->554643
/*554587*/        OPC_MoveChild0,
/*554588*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*554591*/        OPC_RecordMemRef,
/*554592*/        OPC_RecordNode, // #0 = 'ld' chained node
/*554593*/        OPC_CheckFoldableChainNode,
/*554594*/        OPC_RecordChild1, // #1 = $src
/*554595*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*554597*/        OPC_CheckPredicate, 9, // Predicate_load
/*554599*/        OPC_CheckType, MVT::f64,
/*554601*/        OPC_MoveParent,
/*554602*/        OPC_MoveParent,
/*554603*/        OPC_CheckType, MVT::v2f64,
/*554605*/        OPC_Scope, 17, /*->554624*/ // 2 children in Scope
/*554607*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*554609*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*554612*/          OPC_EmitMergeInputChains1_0,
/*554613*/          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)
/*554624*/        /*Scope*/ 17, /*->554642*/
/*554625*/          OPC_CheckPatternPredicate, 163, // (Subtarget->hasSSE3() && !Subtarget->hasAVX())
/*554627*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*554630*/          OPC_EmitMergeInputChains1_0,
/*554631*/          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)
/*554642*/        0, /*End of Scope*/
/*554643*/      /*SwitchOpcode*/ 116, TARGET_VAL(ISD::LOAD),// ->554762
/*554646*/        OPC_RecordMemRef,
/*554647*/        OPC_RecordNode, // #0 = 'ld' chained node
/*554648*/        OPC_RecordChild1, // #1 = $src
/*554649*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*554651*/        OPC_CheckPredicate, 9, // Predicate_load
/*554653*/        OPC_Scope, 20, /*->554675*/ // 3 children in Scope
/*554655*/          OPC_MoveParent,
/*554656*/          OPC_CheckType, MVT::v4f64,
/*554658*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*554660*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*554663*/          OPC_EmitMergeInputChains1_0,
/*554664*/          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>>) - Complexity = 25
                    // Dst: (VMOVDDUPYrm:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*554675*/        /*Scope*/ 43, /*->554719*/
/*554676*/          OPC_CheckPredicate, 58, // Predicate_simple_load
/*554678*/          OPC_MoveParent,
/*554679*/          OPC_CheckType, MVT::v2f64,
/*554681*/          OPC_Scope, 17, /*->554700*/ // 2 children in Scope
/*554683*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*554685*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*554688*/            OPC_EmitMergeInputChains1_0,
/*554689*/            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_simple_load>>) - Complexity = 25
                      // Dst: (VMOVDDUPrm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*554700*/          /*Scope*/ 17, /*->554718*/
/*554701*/            OPC_CheckPatternPredicate, 163, // (Subtarget->hasSSE3() && !Subtarget->hasAVX())
/*554703*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*554706*/            OPC_EmitMergeInputChains1_0,
/*554707*/            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_simple_load>>) - Complexity = 25
                      // Dst: (MOVDDUPrm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*554718*/          0, /*End of Scope*/
/*554719*/        /*Scope*/ 41, /*->554761*/
/*554720*/          OPC_MoveParent,
/*554721*/          OPC_SwitchType /*2 cases */, 17, MVT::v8f64,// ->554741
/*554724*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*554726*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*554729*/            OPC_EmitMergeInputChains1_0,
/*554730*/            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>>) - Complexity = 25
                      // Dst: (VMOVDDUPZrm:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)
/*554741*/          /*SwitchType*/ 17, MVT::v4f64,// ->554760
/*554743*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*554745*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #2 #3 #4 #5 #6
/*554748*/            OPC_EmitMergeInputChains1_0,
/*554749*/            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>>) - Complexity = 25
                      // Dst: (VMOVDDUPZ256rm:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)
/*554760*/          0, // EndSwitchType
/*554761*/        0, /*End of Scope*/
/*554762*/      /*SwitchOpcode*/ 46, TARGET_VAL(X86ISD::VZEXT_LOAD),// ->554811
/*554765*/        OPC_RecordMemRef,
/*554766*/        OPC_RecordNode, // #0 = 'X86vzld' chained node
/*554767*/        OPC_RecordChild1, // #1 = $src
/*554768*/        OPC_CheckPredicate, 49, // Predicate_X86vzload64
/*554770*/        OPC_MoveParent,
/*554771*/        OPC_CheckType, MVT::v2f64,
/*554773*/        OPC_Scope, 17, /*->554792*/ // 2 children in Scope
/*554775*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*554777*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*554780*/          OPC_EmitMergeInputChains1_0,
/*554781*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VMOVDDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86Movddup:{ *:[v2f64] } (X86vzld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>) - Complexity = 25
                    // Dst: (VMOVDDUPrm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*554792*/        /*Scope*/ 17, /*->554810*/
/*554793*/          OPC_CheckPatternPredicate, 163, // (Subtarget->hasSSE3() && !Subtarget->hasAVX())
/*554795*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*554798*/          OPC_EmitMergeInputChains1_0,
/*554799*/          OPC_MorphNodeTo1, TARGET_VAL(X86::MOVDDUPrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86Movddup:{ *:[v2f64] } (X86vzld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86vzload64>>) - Complexity = 25
                    // Dst: (MOVDDUPrm:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*554810*/        0, /*End of Scope*/
/*554811*/      0, // EndSwitchOpcode
/*554812*/    /*Scope*/ 62, /*->554875*/
/*554813*/      OPC_RecordChild0, // #0 = $src
/*554814*/      OPC_SwitchType /*3 cases */, 22, MVT::v2f64,// ->554839
/*554817*/        OPC_Scope, 9, /*->554828*/ // 2 children in Scope
/*554819*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*554821*/          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)
/*554828*/        /*Scope*/ 9, /*->554838*/
/*554829*/          OPC_CheckPatternPredicate, 163, // (Subtarget->hasSSE3() && !Subtarget->hasAVX())
/*554831*/          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)
/*554838*/        0, /*End of Scope*/
/*554839*/      /*SwitchType*/ 22, MVT::v4f64,// ->554863
/*554841*/        OPC_Scope, 9, /*->554852*/ // 2 children in Scope
/*554843*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*554845*/          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)
/*554852*/        /*Scope*/ 9, /*->554862*/
/*554853*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*554855*/          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)
/*554862*/        0, /*End of Scope*/
/*554863*/      /*SwitchType*/ 9, MVT::v8f64,// ->554874
/*554865*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*554867*/        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)
/*554874*/      0, // EndSwitchType
/*554875*/    0, /*End of Scope*/
/*554876*/  /*SwitchOpcode*/ 17|128,4/*529*/, TARGET_VAL(X86ISD::VPERMILPI),// ->555409
/*554880*/    OPC_Scope, 2|128,3/*386*/, /*->555269*/ // 2 children in Scope
/*554883*/      OPC_MoveChild0,
/*554884*/      OPC_SwitchOpcode /*2 cases */, 97|128,1/*225*/, TARGET_VAL(ISD::LOAD),// ->555114
/*554889*/        OPC_RecordMemRef,
/*554890*/        OPC_RecordNode, // #0 = 'ld' chained node
/*554891*/        OPC_CheckFoldableChainNode,
/*554892*/        OPC_RecordChild1, // #1 = $src1
/*554893*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*554895*/        OPC_CheckPredicate, 9, // Predicate_load
/*554897*/        OPC_MoveParent,
/*554898*/        OPC_RecordChild1, // #2 = $src2
/*554899*/        OPC_MoveChild1,
/*554900*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*554903*/        OPC_MoveParent,
/*554904*/        OPC_SwitchType /*6 cases */, 40, MVT::v4f32,// ->554947
/*554907*/          OPC_Scope, 18, /*->554927*/ // 2 children in Scope
/*554909*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*554911*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*554914*/            OPC_EmitMergeInputChains1_0,
/*554915*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86VPermilpi:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPERMILPSmi:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*554927*/          /*Scope*/ 18, /*->554946*/
/*554928*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*554930*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*554933*/            OPC_EmitMergeInputChains1_0,
/*554934*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZ128mi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86VPermilpi:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPERMILPSZ128mi:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*554946*/          0, /*End of Scope*/
/*554947*/        /*SwitchType*/ 40, MVT::v8f32,// ->554989
/*554949*/          OPC_Scope, 18, /*->554969*/ // 2 children in Scope
/*554951*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*554953*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*554956*/            OPC_EmitMergeInputChains1_0,
/*554957*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSYmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86VPermilpi:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPERMILPSYmi:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*554969*/          /*Scope*/ 18, /*->554988*/
/*554970*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*554972*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*554975*/            OPC_EmitMergeInputChains1_0,
/*554976*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZ256mi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86VPermilpi:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPERMILPSZ256mi:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*554988*/          0, /*End of Scope*/
/*554989*/        /*SwitchType*/ 40, MVT::v2f64,// ->555031
/*554991*/          OPC_Scope, 18, /*->555011*/ // 2 children in Scope
/*554993*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*554995*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*554998*/            OPC_EmitMergeInputChains1_0,
/*554999*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86VPermilpi:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPERMILPDmi:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*555011*/          /*Scope*/ 18, /*->555030*/
/*555012*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*555014*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*555017*/            OPC_EmitMergeInputChains1_0,
/*555018*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZ128mi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86VPermilpi:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPERMILPDZ128mi:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*555030*/          0, /*End of Scope*/
/*555031*/        /*SwitchType*/ 40, MVT::v4f64,// ->555073
/*555033*/          OPC_Scope, 18, /*->555053*/ // 2 children in Scope
/*555035*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*555037*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*555040*/            OPC_EmitMergeInputChains1_0,
/*555041*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDYmi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86VPermilpi:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPERMILPDYmi:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*555053*/          /*Scope*/ 18, /*->555072*/
/*555054*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*555056*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*555059*/            OPC_EmitMergeInputChains1_0,
/*555060*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZ256mi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86VPermilpi:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPERMILPDZ256mi:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*555072*/          0, /*End of Scope*/
/*555073*/        /*SwitchType*/ 18, MVT::v16f32,// ->555093
/*555075*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*555077*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*555080*/          OPC_EmitMergeInputChains1_0,
/*555081*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86VPermilpi:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPERMILPSZmi:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*555093*/        /*SwitchType*/ 18, MVT::v8f64,// ->555113
/*555095*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*555097*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*555100*/          OPC_EmitMergeInputChains1_0,
/*555101*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86VPermilpi:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                    // Dst: (VPERMILPDZmi:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*555113*/        0, // EndSwitchType
/*555114*/      /*SwitchOpcode*/ 22|128,1/*150*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->555268
/*555118*/        OPC_RecordMemRef,
/*555119*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*555120*/        OPC_CheckFoldableChainNode,
/*555121*/        OPC_RecordChild1, // #1 = $src1
/*555122*/        OPC_Scope, 71, /*->555195*/ // 2 children in Scope
/*555124*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*555126*/          OPC_MoveParent,
/*555127*/          OPC_RecordChild1, // #2 = $src2
/*555128*/          OPC_MoveChild1,
/*555129*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*555132*/          OPC_MoveParent,
/*555133*/          OPC_SwitchType /*3 cases */, 18, MVT::v16f32,// ->555154
/*555136*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*555138*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*555141*/            OPC_EmitMergeInputChains1_0,
/*555142*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86VPermilpi:{ *:[v16f32] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPERMILPSZmbi:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*555154*/          /*SwitchType*/ 18, MVT::v8f32,// ->555174
/*555156*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*555158*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*555161*/            OPC_EmitMergeInputChains1_0,
/*555162*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZ256mbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86VPermilpi:{ *:[v8f32] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPERMILPSZ256mbi:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*555174*/          /*SwitchType*/ 18, MVT::v4f32,// ->555194
/*555176*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*555178*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*555181*/            OPC_EmitMergeInputChains1_0,
/*555182*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZ128mbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86VPermilpi:{ *:[v4f32] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPERMILPSZ128mbi:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*555194*/          0, // EndSwitchType
/*555195*/        /*Scope*/ 71, /*->555267*/
/*555196*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*555198*/          OPC_MoveParent,
/*555199*/          OPC_RecordChild1, // #2 = $src2
/*555200*/          OPC_MoveChild1,
/*555201*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*555204*/          OPC_MoveParent,
/*555205*/          OPC_SwitchType /*3 cases */, 18, MVT::v8f64,// ->555226
/*555208*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*555210*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*555213*/            OPC_EmitMergeInputChains1_0,
/*555214*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86VPermilpi:{ *:[v8f64] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPERMILPDZmbi:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*555226*/          /*SwitchType*/ 18, MVT::v4f64,// ->555246
/*555228*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*555230*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*555233*/            OPC_EmitMergeInputChains1_0,
/*555234*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZ256mbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86VPermilpi:{ *:[v4f64] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPERMILPDZ256mbi:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*555246*/          /*SwitchType*/ 18, MVT::v2f64,// ->555266
/*555248*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*555250*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*555253*/            OPC_EmitMergeInputChains1_0,
/*555254*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZ128mbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86VPermilpi:{ *:[v2f64] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i8] }):$src2) - Complexity = 28
                      // Dst: (VPERMILPDZ128mbi:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i8] }):$src2)
/*555266*/          0, // EndSwitchType
/*555267*/        0, /*End of Scope*/
/*555268*/      0, // EndSwitchOpcode
/*555269*/    /*Scope*/ 9|128,1/*137*/, /*->555408*/
/*555271*/      OPC_RecordChild0, // #0 = $src1
/*555272*/      OPC_RecordChild1, // #1 = $src2
/*555273*/      OPC_MoveChild1,
/*555274*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*555277*/      OPC_MoveParent,
/*555278*/      OPC_SwitchType /*6 cases */, 24, MVT::v4f32,// ->555305
/*555281*/        OPC_Scope, 10, /*->555293*/ // 2 children in Scope
/*555283*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*555285*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSri), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86VPermilpi:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPERMILPSri:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, (timm:{ *:[i8] }):$src2)
/*555293*/        /*Scope*/ 10, /*->555304*/
/*555294*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*555296*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZ128ri), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86VPermilpi:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPERMILPSZ128ri:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (timm:{ *:[i8] }):$src2)
/*555304*/        0, /*End of Scope*/
/*555305*/      /*SwitchType*/ 24, MVT::v8f32,// ->555331
/*555307*/        OPC_Scope, 10, /*->555319*/ // 2 children in Scope
/*555309*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*555311*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSYri), 0,
                        MVT::v8f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86VPermilpi:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPERMILPSYri:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, (timm:{ *:[i8] }):$src2)
/*555319*/        /*Scope*/ 10, /*->555330*/
/*555320*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*555322*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZ256ri), 0,
                        MVT::v8f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86VPermilpi:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPERMILPSZ256ri:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (timm:{ *:[i8] }):$src2)
/*555330*/        0, /*End of Scope*/
/*555331*/      /*SwitchType*/ 24, MVT::v2f64,// ->555357
/*555333*/        OPC_Scope, 10, /*->555345*/ // 2 children in Scope
/*555335*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*555337*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDri), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86VPermilpi:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPERMILPDri:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, (timm:{ *:[i8] }):$src2)
/*555345*/        /*Scope*/ 10, /*->555356*/
/*555346*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*555348*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZ128ri), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86VPermilpi:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPERMILPDZ128ri:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (timm:{ *:[i8] }):$src2)
/*555356*/        0, /*End of Scope*/
/*555357*/      /*SwitchType*/ 24, MVT::v4f64,// ->555383
/*555359*/        OPC_Scope, 10, /*->555371*/ // 2 children in Scope
/*555361*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*555363*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDYri), 0,
                        MVT::v4f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86VPermilpi:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPERMILPDYri:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, (timm:{ *:[i8] }):$src2)
/*555371*/        /*Scope*/ 10, /*->555382*/
/*555372*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*555374*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZ256ri), 0,
                        MVT::v4f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86VPermilpi:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                    // Dst: (VPERMILPDZ256ri:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (timm:{ *:[i8] }):$src2)
/*555382*/        0, /*End of Scope*/
/*555383*/      /*SwitchType*/ 10, MVT::v16f32,// ->555395
/*555385*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*555387*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPSZri), 0,
                      MVT::v16f32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86VPermilpi:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                  // Dst: (VPERMILPSZri:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i8] }):$src2)
/*555395*/      /*SwitchType*/ 10, MVT::v8f64,// ->555407
/*555397*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*555399*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VPERMILPDZri), 0,
                      MVT::v8f64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86VPermilpi:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i8] }):$src2) - Complexity = 6
                  // Dst: (VPERMILPDZri:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i8] }):$src2)
/*555407*/      0, // EndSwitchType
/*555408*/    0, /*End of Scope*/
/*555409*/  /*SwitchOpcode*/ 0|128,3/*384*/, TARGET_VAL(X86ISD::VREDUCE),// ->555797
/*555413*/    OPC_Scope, 42|128,2/*298*/, /*->555714*/ // 2 children in Scope
/*555416*/      OPC_MoveChild0,
/*555417*/      OPC_SwitchOpcode /*2 cases */, 9|128,1/*137*/, TARGET_VAL(ISD::LOAD),// ->555559
/*555422*/        OPC_RecordMemRef,
/*555423*/        OPC_RecordNode, // #0 = 'ld' chained node
/*555424*/        OPC_CheckFoldableChainNode,
/*555425*/        OPC_RecordChild1, // #1 = $src1
/*555426*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*555428*/        OPC_CheckPredicate, 9, // Predicate_load
/*555430*/        OPC_MoveParent,
/*555431*/        OPC_RecordChild1, // #2 = $src2
/*555432*/        OPC_MoveChild1,
/*555433*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*555436*/        OPC_MoveParent,
/*555437*/        OPC_SwitchType /*6 cases */, 18, MVT::v16f32,// ->555458
/*555440*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*555442*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*555445*/          OPC_EmitMergeInputChains1_0,
/*555446*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPSZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86VReduce:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                    // Dst: (VREDUCEPSZrmi:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*555458*/        /*SwitchType*/ 18, MVT::v4f32,// ->555478
/*555460*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*555462*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*555465*/          OPC_EmitMergeInputChains1_0,
/*555466*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPSZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86VReduce:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                    // Dst: (VREDUCEPSZ128rmi:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*555478*/        /*SwitchType*/ 18, MVT::v8f32,// ->555498
/*555480*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*555482*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*555485*/          OPC_EmitMergeInputChains1_0,
/*555486*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPSZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86VReduce:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                    // Dst: (VREDUCEPSZ256rmi:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*555498*/        /*SwitchType*/ 18, MVT::v8f64,// ->555518
/*555500*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*555502*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*555505*/          OPC_EmitMergeInputChains1_0,
/*555506*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPDZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86VReduce:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                    // Dst: (VREDUCEPDZrmi:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*555518*/        /*SwitchType*/ 18, MVT::v2f64,// ->555538
/*555520*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*555522*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*555525*/          OPC_EmitMergeInputChains1_0,
/*555526*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPDZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86VReduce:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                    // Dst: (VREDUCEPDZ128rmi:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*555538*/        /*SwitchType*/ 18, MVT::v4f64,// ->555558
/*555540*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*555542*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*555545*/          OPC_EmitMergeInputChains1_0,
/*555546*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPDZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86VReduce:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                    // Dst: (VREDUCEPDZ256rmi:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*555558*/        0, // EndSwitchType
/*555559*/      /*SwitchOpcode*/ 22|128,1/*150*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->555713
/*555563*/        OPC_RecordMemRef,
/*555564*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*555565*/        OPC_CheckFoldableChainNode,
/*555566*/        OPC_RecordChild1, // #1 = $src1
/*555567*/        OPC_Scope, 71, /*->555640*/ // 2 children in Scope
/*555569*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*555571*/          OPC_MoveParent,
/*555572*/          OPC_RecordChild1, // #2 = $src2
/*555573*/          OPC_MoveChild1,
/*555574*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*555577*/          OPC_MoveParent,
/*555578*/          OPC_SwitchType /*3 cases */, 18, MVT::v16f32,// ->555599
/*555581*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*555583*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*555586*/            OPC_EmitMergeInputChains1_0,
/*555587*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPSZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86VReduce:{ *:[v16f32] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                      // Dst: (VREDUCEPSZrmbi:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*555599*/          /*SwitchType*/ 18, MVT::v4f32,// ->555619
/*555601*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*555603*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*555606*/            OPC_EmitMergeInputChains1_0,
/*555607*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPSZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86VReduce:{ *:[v4f32] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                      // Dst: (VREDUCEPSZ128rmbi:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*555619*/          /*SwitchType*/ 18, MVT::v8f32,// ->555639
/*555621*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*555623*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*555626*/            OPC_EmitMergeInputChains1_0,
/*555627*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPSZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86VReduce:{ *:[v8f32] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                      // Dst: (VREDUCEPSZ256rmbi:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*555639*/          0, // EndSwitchType
/*555640*/        /*Scope*/ 71, /*->555712*/
/*555641*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*555643*/          OPC_MoveParent,
/*555644*/          OPC_RecordChild1, // #2 = $src2
/*555645*/          OPC_MoveChild1,
/*555646*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*555649*/          OPC_MoveParent,
/*555650*/          OPC_SwitchType /*3 cases */, 18, MVT::v8f64,// ->555671
/*555653*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*555655*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*555658*/            OPC_EmitMergeInputChains1_0,
/*555659*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPDZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86VReduce:{ *:[v8f64] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                      // Dst: (VREDUCEPDZrmbi:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*555671*/          /*SwitchType*/ 18, MVT::v2f64,// ->555691
/*555673*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*555675*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*555678*/            OPC_EmitMergeInputChains1_0,
/*555679*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPDZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86VReduce:{ *:[v2f64] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                      // Dst: (VREDUCEPDZ128rmbi:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*555691*/          /*SwitchType*/ 18, MVT::v4f64,// ->555711
/*555693*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*555695*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*555698*/            OPC_EmitMergeInputChains1_0,
/*555699*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPDZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86VReduce:{ *:[v4f64] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                      // Dst: (VREDUCEPDZ256rmbi:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*555711*/          0, // EndSwitchType
/*555712*/        0, /*End of Scope*/
/*555713*/      0, // EndSwitchOpcode
/*555714*/    /*Scope*/ 81, /*->555796*/
/*555715*/      OPC_RecordChild0, // #0 = $src1
/*555716*/      OPC_RecordChild1, // #1 = $src2
/*555717*/      OPC_MoveChild1,
/*555718*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*555721*/      OPC_MoveParent,
/*555722*/      OPC_SwitchType /*6 cases */, 10, MVT::v16f32,// ->555735
/*555725*/        OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*555727*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPSZrri), 0,
                      MVT::v16f32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86VReduce:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 6
                  // Dst: (VREDUCEPSZrri:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*555735*/      /*SwitchType*/ 10, MVT::v4f32,// ->555747
/*555737*/        OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*555739*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPSZ128rri), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86VReduce:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 6
                  // Dst: (VREDUCEPSZ128rri:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*555747*/      /*SwitchType*/ 10, MVT::v8f32,// ->555759
/*555749*/        OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*555751*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPSZ256rri), 0,
                      MVT::v8f32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86VReduce:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 6
                  // Dst: (VREDUCEPSZ256rri:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*555759*/      /*SwitchType*/ 10, MVT::v8f64,// ->555771
/*555761*/        OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*555763*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPDZrri), 0,
                      MVT::v8f64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86VReduce:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 6
                  // Dst: (VREDUCEPDZrri:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i32] }):$src2)
/*555771*/      /*SwitchType*/ 10, MVT::v2f64,// ->555783
/*555773*/        OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*555775*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPDZ128rri), 0,
                      MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86VReduce:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 6
                  // Dst: (VREDUCEPDZ128rri:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (timm:{ *:[i32] }):$src2)
/*555783*/      /*SwitchType*/ 10, MVT::v4f64,// ->555795
/*555785*/        OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*555787*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPDZ256rri), 0,
                      MVT::v4f64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86VReduce:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 6
                  // Dst: (VREDUCEPDZ256rri:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (timm:{ *:[i32] }):$src2)
/*555795*/      0, // EndSwitchType
/*555796*/    0, /*End of Scope*/
/*555797*/  /*SwitchOpcode*/ 0|128,3/*384*/, TARGET_VAL(X86ISD::VGETMANT),// ->556185
/*555801*/    OPC_Scope, 42|128,2/*298*/, /*->556102*/ // 2 children in Scope
/*555804*/      OPC_MoveChild0,
/*555805*/      OPC_SwitchOpcode /*2 cases */, 9|128,1/*137*/, TARGET_VAL(ISD::LOAD),// ->555947
/*555810*/        OPC_RecordMemRef,
/*555811*/        OPC_RecordNode, // #0 = 'ld' chained node
/*555812*/        OPC_CheckFoldableChainNode,
/*555813*/        OPC_RecordChild1, // #1 = $src1
/*555814*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*555816*/        OPC_CheckPredicate, 9, // Predicate_load
/*555818*/        OPC_MoveParent,
/*555819*/        OPC_RecordChild1, // #2 = $src2
/*555820*/        OPC_MoveChild1,
/*555821*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*555824*/        OPC_MoveParent,
/*555825*/        OPC_SwitchType /*6 cases */, 18, MVT::v16f32,// ->555846
/*555828*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*555830*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*555833*/          OPC_EmitMergeInputChains1_0,
/*555834*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPSZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86VGetMant:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                    // Dst: (VGETMANTPSZrmi:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*555846*/        /*SwitchType*/ 18, MVT::v4f32,// ->555866
/*555848*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*555850*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*555853*/          OPC_EmitMergeInputChains1_0,
/*555854*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPSZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86VGetMant:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                    // Dst: (VGETMANTPSZ128rmi:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*555866*/        /*SwitchType*/ 18, MVT::v8f32,// ->555886
/*555868*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*555870*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*555873*/          OPC_EmitMergeInputChains1_0,
/*555874*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPSZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86VGetMant:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                    // Dst: (VGETMANTPSZ256rmi:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*555886*/        /*SwitchType*/ 18, MVT::v8f64,// ->555906
/*555888*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*555890*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*555893*/          OPC_EmitMergeInputChains1_0,
/*555894*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPDZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86VGetMant:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                    // Dst: (VGETMANTPDZrmi:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*555906*/        /*SwitchType*/ 18, MVT::v2f64,// ->555926
/*555908*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*555910*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*555913*/          OPC_EmitMergeInputChains1_0,
/*555914*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPDZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86VGetMant:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                    // Dst: (VGETMANTPDZ128rmi:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*555926*/        /*SwitchType*/ 18, MVT::v4f64,// ->555946
/*555928*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*555930*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*555933*/          OPC_EmitMergeInputChains1_0,
/*555934*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPDZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                    // Src: (X86VGetMant:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                    // Dst: (VGETMANTPDZ256rmi:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*555946*/        0, // EndSwitchType
/*555947*/      /*SwitchOpcode*/ 22|128,1/*150*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->556101
/*555951*/        OPC_RecordMemRef,
/*555952*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*555953*/        OPC_CheckFoldableChainNode,
/*555954*/        OPC_RecordChild1, // #1 = $src1
/*555955*/        OPC_Scope, 71, /*->556028*/ // 2 children in Scope
/*555957*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*555959*/          OPC_MoveParent,
/*555960*/          OPC_RecordChild1, // #2 = $src2
/*555961*/          OPC_MoveChild1,
/*555962*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*555965*/          OPC_MoveParent,
/*555966*/          OPC_SwitchType /*3 cases */, 18, MVT::v16f32,// ->555987
/*555969*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*555971*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*555974*/            OPC_EmitMergeInputChains1_0,
/*555975*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPSZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86VGetMant:{ *:[v16f32] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                      // Dst: (VGETMANTPSZrmbi:{ *:[v16f32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*555987*/          /*SwitchType*/ 18, MVT::v4f32,// ->556007
/*555989*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*555991*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*555994*/            OPC_EmitMergeInputChains1_0,
/*555995*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPSZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86VGetMant:{ *:[v4f32] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                      // Dst: (VGETMANTPSZ128rmbi:{ *:[v4f32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*556007*/          /*SwitchType*/ 18, MVT::v8f32,// ->556027
/*556009*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*556011*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*556014*/            OPC_EmitMergeInputChains1_0,
/*556015*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPSZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86VGetMant:{ *:[v8f32] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                      // Dst: (VGETMANTPSZ256rmbi:{ *:[v8f32] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*556027*/          0, // EndSwitchType
/*556028*/        /*Scope*/ 71, /*->556100*/
/*556029*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*556031*/          OPC_MoveParent,
/*556032*/          OPC_RecordChild1, // #2 = $src2
/*556033*/          OPC_MoveChild1,
/*556034*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*556037*/          OPC_MoveParent,
/*556038*/          OPC_SwitchType /*3 cases */, 18, MVT::v8f64,// ->556059
/*556041*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*556043*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*556046*/            OPC_EmitMergeInputChains1_0,
/*556047*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPDZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86VGetMant:{ *:[v8f64] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                      // Dst: (VGETMANTPDZrmbi:{ *:[v8f64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*556059*/          /*SwitchType*/ 18, MVT::v2f64,// ->556079
/*556061*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*556063*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*556066*/            OPC_EmitMergeInputChains1_0,
/*556067*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPDZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86VGetMant:{ *:[v2f64] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                      // Dst: (VGETMANTPDZ128rmbi:{ *:[v2f64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*556079*/          /*SwitchType*/ 18, MVT::v4f64,// ->556099
/*556081*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*556083*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src1 #3 #4 #5 #6 #7
/*556086*/            OPC_EmitMergeInputChains1_0,
/*556087*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPDZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 6/*#Ops*/, 3, 4, 5, 6, 7, 2, 
                      // Src: (X86VGetMant:{ *:[v4f64] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i32] }):$src2) - Complexity = 28
                      // Dst: (VGETMANTPDZ256rmbi:{ *:[v4f64] } addr:{ *:[iPTR] }:$src1, (timm:{ *:[i32] }):$src2)
/*556099*/          0, // EndSwitchType
/*556100*/        0, /*End of Scope*/
/*556101*/      0, // EndSwitchOpcode
/*556102*/    /*Scope*/ 81, /*->556184*/
/*556103*/      OPC_RecordChild0, // #0 = $src1
/*556104*/      OPC_RecordChild1, // #1 = $src2
/*556105*/      OPC_MoveChild1,
/*556106*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*556109*/      OPC_MoveParent,
/*556110*/      OPC_SwitchType /*6 cases */, 10, MVT::v16f32,// ->556123
/*556113*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*556115*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPSZrri), 0,
                      MVT::v16f32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86VGetMant:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 6
                  // Dst: (VGETMANTPSZrri:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*556123*/      /*SwitchType*/ 10, MVT::v4f32,// ->556135
/*556125*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*556127*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPSZ128rri), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86VGetMant:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 6
                  // Dst: (VGETMANTPSZ128rri:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*556135*/      /*SwitchType*/ 10, MVT::v8f32,// ->556147
/*556137*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*556139*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPSZ256rri), 0,
                      MVT::v8f32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86VGetMant:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 6
                  // Dst: (VGETMANTPSZ256rri:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*556147*/      /*SwitchType*/ 10, MVT::v8f64,// ->556159
/*556149*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*556151*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPDZrri), 0,
                      MVT::v8f64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86VGetMant:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 6
                  // Dst: (VGETMANTPDZrri:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i32] }):$src2)
/*556159*/      /*SwitchType*/ 10, MVT::v2f64,// ->556171
/*556161*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*556163*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPDZ128rri), 0,
                      MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86VGetMant:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 6
                  // Dst: (VGETMANTPDZ128rri:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (timm:{ *:[i32] }):$src2)
/*556171*/      /*SwitchType*/ 10, MVT::v4f64,// ->556183
/*556173*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*556175*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPDZ256rri), 0,
                      MVT::v4f64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86VGetMant:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 6
                  // Dst: (VGETMANTPDZ256rri:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (timm:{ *:[i32] }):$src2)
/*556183*/      0, // EndSwitchType
/*556184*/    0, /*End of Scope*/
/*556185*/  /*SwitchOpcode*/ 19|128,3/*403*/, TARGET_VAL(X86ISD::VRANGE),// ->556592
/*556189*/    OPC_RecordChild0, // #0 = $src1
/*556190*/    OPC_Scope, 54|128,2/*310*/, /*->556503*/ // 2 children in Scope
/*556193*/      OPC_MoveChild1,
/*556194*/      OPC_SwitchOpcode /*2 cases */, 15|128,1/*143*/, TARGET_VAL(ISD::LOAD),// ->556342
/*556199*/        OPC_RecordMemRef,
/*556200*/        OPC_RecordNode, // #1 = 'ld' chained node
/*556201*/        OPC_CheckFoldableChainNode,
/*556202*/        OPC_RecordChild1, // #2 = $src2
/*556203*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*556205*/        OPC_CheckPredicate, 9, // Predicate_load
/*556207*/        OPC_MoveParent,
/*556208*/        OPC_RecordChild2, // #3 = $src3
/*556209*/        OPC_MoveChild2,
/*556210*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*556213*/        OPC_MoveParent,
/*556214*/        OPC_SwitchType /*6 cases */, 19, MVT::v8f64,// ->556236
/*556217*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*556219*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*556222*/          OPC_EmitMergeInputChains1_1,
/*556223*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPDZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86VRange:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src3) - Complexity = 28
                    // Dst: (VRANGEPDZrmi:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i32] }):$src3)
/*556236*/        /*SwitchType*/ 19, MVT::v2f64,// ->556257
/*556238*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*556240*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*556243*/          OPC_EmitMergeInputChains1_1,
/*556244*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPDZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86VRange:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src3) - Complexity = 28
                    // Dst: (VRANGEPDZ128rmi:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i32] }):$src3)
/*556257*/        /*SwitchType*/ 19, MVT::v4f64,// ->556278
/*556259*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*556261*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*556264*/          OPC_EmitMergeInputChains1_1,
/*556265*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPDZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86VRange:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src3) - Complexity = 28
                    // Dst: (VRANGEPDZ256rmi:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i32] }):$src3)
/*556278*/        /*SwitchType*/ 19, MVT::v16f32,// ->556299
/*556280*/          OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*556282*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*556285*/          OPC_EmitMergeInputChains1_1,
/*556286*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPSZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86VRange:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src3) - Complexity = 28
                    // Dst: (VRANGEPSZrmi:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i32] }):$src3)
/*556299*/        /*SwitchType*/ 19, MVT::v4f32,// ->556320
/*556301*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*556303*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*556306*/          OPC_EmitMergeInputChains1_1,
/*556307*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPSZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86VRange:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src3) - Complexity = 28
                    // Dst: (VRANGEPSZ128rmi:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i32] }):$src3)
/*556320*/        /*SwitchType*/ 19, MVT::v8f32,// ->556341
/*556322*/          OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*556324*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*556327*/          OPC_EmitMergeInputChains1_1,
/*556328*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPSZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                    // Src: (X86VRange:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src3) - Complexity = 28
                    // Dst: (VRANGEPSZ256rmi:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i32] }):$src3)
/*556341*/        0, // EndSwitchType
/*556342*/      /*SwitchOpcode*/ 28|128,1/*156*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->556502
/*556346*/        OPC_RecordMemRef,
/*556347*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*556348*/        OPC_CheckFoldableChainNode,
/*556349*/        OPC_RecordChild1, // #2 = $src2
/*556350*/        OPC_Scope, 74, /*->556426*/ // 2 children in Scope
/*556352*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*556354*/          OPC_MoveParent,
/*556355*/          OPC_RecordChild2, // #3 = $src3
/*556356*/          OPC_MoveChild2,
/*556357*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*556360*/          OPC_MoveParent,
/*556361*/          OPC_SwitchType /*3 cases */, 19, MVT::v8f64,// ->556383
/*556364*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*556366*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*556369*/            OPC_EmitMergeInputChains1_1,
/*556370*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPDZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86VRange:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i32] }):$src3) - Complexity = 28
                      // Dst: (VRANGEPDZrmbi:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i32] }):$src3)
/*556383*/          /*SwitchType*/ 19, MVT::v2f64,// ->556404
/*556385*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*556387*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*556390*/            OPC_EmitMergeInputChains1_1,
/*556391*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPDZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86VRange:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i32] }):$src3) - Complexity = 28
                      // Dst: (VRANGEPDZ128rmbi:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i32] }):$src3)
/*556404*/          /*SwitchType*/ 19, MVT::v4f64,// ->556425
/*556406*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*556408*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*556411*/            OPC_EmitMergeInputChains1_1,
/*556412*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPDZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86VRange:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i32] }):$src3) - Complexity = 28
                      // Dst: (VRANGEPDZ256rmbi:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i32] }):$src3)
/*556425*/          0, // EndSwitchType
/*556426*/        /*Scope*/ 74, /*->556501*/
/*556427*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*556429*/          OPC_MoveParent,
/*556430*/          OPC_RecordChild2, // #3 = $src3
/*556431*/          OPC_MoveChild2,
/*556432*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*556435*/          OPC_MoveParent,
/*556436*/          OPC_SwitchType /*3 cases */, 19, MVT::v16f32,// ->556458
/*556439*/            OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*556441*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*556444*/            OPC_EmitMergeInputChains1_1,
/*556445*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPSZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86VRange:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i32] }):$src3) - Complexity = 28
                      // Dst: (VRANGEPSZrmbi:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i32] }):$src3)
/*556458*/          /*SwitchType*/ 19, MVT::v4f32,// ->556479
/*556460*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*556462*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*556465*/            OPC_EmitMergeInputChains1_1,
/*556466*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPSZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86VRange:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i32] }):$src3) - Complexity = 28
                      // Dst: (VRANGEPSZ128rmbi:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i32] }):$src3)
/*556479*/          /*SwitchType*/ 19, MVT::v8f32,// ->556500
/*556481*/            OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*556483*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*556486*/            OPC_EmitMergeInputChains1_1,
/*556487*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPSZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 7/*#Ops*/, 0, 4, 5, 6, 7, 8, 3, 
                      // Src: (X86VRange:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i32] }):$src3) - Complexity = 28
                      // Dst: (VRANGEPSZ256rmbi:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, (timm:{ *:[i32] }):$src3)
/*556500*/          0, // EndSwitchType
/*556501*/        0, /*End of Scope*/
/*556502*/      0, // EndSwitchOpcode
/*556503*/    /*Scope*/ 87, /*->556591*/
/*556504*/      OPC_RecordChild1, // #1 = $src2
/*556505*/      OPC_RecordChild2, // #2 = $src3
/*556506*/      OPC_MoveChild2,
/*556507*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*556510*/      OPC_MoveParent,
/*556511*/      OPC_SwitchType /*6 cases */, 11, MVT::v8f64,// ->556525
/*556514*/        OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*556516*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPDZrri), 0,
                      MVT::v8f64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86VRange:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i32] }):$src3) - Complexity = 6
                  // Dst: (VRANGEPDZrri:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i32] }):$src3)
/*556525*/      /*SwitchType*/ 11, MVT::v2f64,// ->556538
/*556527*/        OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*556529*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPDZ128rri), 0,
                      MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86VRange:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3) - Complexity = 6
                  // Dst: (VRANGEPDZ128rri:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3)
/*556538*/      /*SwitchType*/ 11, MVT::v4f64,// ->556551
/*556540*/        OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*556542*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPDZ256rri), 0,
                      MVT::v4f64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86VRange:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (timm:{ *:[i32] }):$src3) - Complexity = 6
                  // Dst: (VRANGEPDZ256rri:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (timm:{ *:[i32] }):$src3)
/*556551*/      /*SwitchType*/ 11, MVT::v16f32,// ->556564
/*556553*/        OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*556555*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPSZrri), 0,
                      MVT::v16f32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86VRange:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i32] }):$src3) - Complexity = 6
                  // Dst: (VRANGEPSZrri:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i32] }):$src3)
/*556564*/      /*SwitchType*/ 11, MVT::v4f32,// ->556577
/*556566*/        OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*556568*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPSZ128rri), 0,
                      MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86VRange:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3) - Complexity = 6
                  // Dst: (VRANGEPSZ128rri:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3)
/*556577*/      /*SwitchType*/ 11, MVT::v8f32,// ->556590
/*556579*/        OPC_CheckPatternPredicate, 112, // (Subtarget->hasDQI()) && (Subtarget->hasVLX())
/*556581*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPSZ256rri), 0,
                      MVT::v8f32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86VRange:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (timm:{ *:[i32] }):$src3) - Complexity = 6
                  // Dst: (VRANGEPSZ256rri:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (timm:{ *:[i32] }):$src3)
/*556590*/      0, // EndSwitchType
/*556591*/    0, /*End of Scope*/
/*556592*/  /*SwitchOpcode*/ 38|128,3/*422*/, TARGET_VAL(X86ISD::VFIXUPIMM),// ->557018
/*556596*/    OPC_RecordChild0, // #0 = $src1
/*556597*/    OPC_RecordChild1, // #1 = $src2
/*556598*/    OPC_Scope, 66|128,2/*322*/, /*->556923*/ // 2 children in Scope
/*556601*/      OPC_MoveChild2,
/*556602*/      OPC_SwitchOpcode /*2 cases */, 21|128,1/*149*/, TARGET_VAL(ISD::LOAD),// ->556756
/*556607*/        OPC_RecordMemRef,
/*556608*/        OPC_RecordNode, // #2 = 'ld' chained node
/*556609*/        OPC_CheckFoldableChainNode,
/*556610*/        OPC_RecordChild1, // #3 = $src3
/*556611*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*556613*/        OPC_CheckPredicate, 9, // Predicate_load
/*556615*/        OPC_MoveParent,
/*556616*/        OPC_RecordChild3, // #4 = $src4
/*556617*/        OPC_MoveChild3,
/*556618*/        OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*556621*/        OPC_MoveParent,
/*556622*/        OPC_SwitchType /*6 cases */, 20, MVT::v16f32,// ->556645
/*556625*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*556627*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*556630*/          OPC_EmitMergeInputChains1_2,
/*556631*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPSZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                    // Src: (X86VFixupimm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src4) - Complexity = 28
                    // Dst: (VFIXUPIMMPSZrmi:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i32] }):$src4)
/*556645*/        /*SwitchType*/ 20, MVT::v4f32,// ->556667
/*556647*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*556649*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*556652*/          OPC_EmitMergeInputChains1_2,
/*556653*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPSZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                    // Src: (X86VFixupimm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src4) - Complexity = 28
                    // Dst: (VFIXUPIMMPSZ128rmi:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i32] }):$src4)
/*556667*/        /*SwitchType*/ 20, MVT::v8f32,// ->556689
/*556669*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*556671*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*556674*/          OPC_EmitMergeInputChains1_2,
/*556675*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPSZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                    // Src: (X86VFixupimm:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src4) - Complexity = 28
                    // Dst: (VFIXUPIMMPSZ256rmi:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i32] }):$src4)
/*556689*/        /*SwitchType*/ 20, MVT::v8f64,// ->556711
/*556691*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*556693*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*556696*/          OPC_EmitMergeInputChains1_2,
/*556697*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPDZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                    // Src: (X86VFixupimm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (ld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src4) - Complexity = 28
                    // Dst: (VFIXUPIMMPDZrmi:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i32] }):$src4)
/*556711*/        /*SwitchType*/ 20, MVT::v2f64,// ->556733
/*556713*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*556715*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*556718*/          OPC_EmitMergeInputChains1_2,
/*556719*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPDZ128rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                    // Src: (X86VFixupimm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (ld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src4) - Complexity = 28
                    // Dst: (VFIXUPIMMPDZ128rmi:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i32] }):$src4)
/*556733*/        /*SwitchType*/ 20, MVT::v4f64,// ->556755
/*556735*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*556737*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*556740*/          OPC_EmitMergeInputChains1_2,
/*556741*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPDZ256rmi), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                    // Src: (X86VFixupimm:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (ld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>, (timm:{ *:[i32] }):$src4) - Complexity = 28
                    // Dst: (VFIXUPIMMPDZ256rmi:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i32] }):$src4)
/*556755*/        0, // EndSwitchType
/*556756*/      /*SwitchOpcode*/ 34|128,1/*162*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->556922
/*556760*/        OPC_RecordMemRef,
/*556761*/        OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*556762*/        OPC_CheckFoldableChainNode,
/*556763*/        OPC_RecordChild1, // #3 = $src3
/*556764*/        OPC_Scope, 77, /*->556843*/ // 2 children in Scope
/*556766*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*556768*/          OPC_MoveParent,
/*556769*/          OPC_RecordChild3, // #4 = $src4
/*556770*/          OPC_MoveChild3,
/*556771*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*556774*/          OPC_MoveParent,
/*556775*/          OPC_SwitchType /*3 cases */, 20, MVT::v16f32,// ->556798
/*556778*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*556780*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*556783*/            OPC_EmitMergeInputChains1_2,
/*556784*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPSZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v16f32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                      // Src: (X86VFixupimm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i32] }):$src4) - Complexity = 28
                      // Dst: (VFIXUPIMMPSZrmbi:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i32] }):$src4)
/*556798*/          /*SwitchType*/ 20, MVT::v4f32,// ->556820
/*556800*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*556802*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*556805*/            OPC_EmitMergeInputChains1_2,
/*556806*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPSZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                      // Src: (X86VFixupimm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i32] }):$src4) - Complexity = 28
                      // Dst: (VFIXUPIMMPSZ128rmbi:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i32] }):$src4)
/*556820*/          /*SwitchType*/ 20, MVT::v8f32,// ->556842
/*556822*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*556824*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*556827*/            OPC_EmitMergeInputChains1_2,
/*556828*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPSZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                      // Src: (X86VFixupimm:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, (timm:{ *:[i32] }):$src4) - Complexity = 28
                      // Dst: (VFIXUPIMMPSZ256rmbi:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i32] }):$src4)
/*556842*/          0, // EndSwitchType
/*556843*/        /*Scope*/ 77, /*->556921*/
/*556844*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*556846*/          OPC_MoveParent,
/*556847*/          OPC_RecordChild3, // #4 = $src4
/*556848*/          OPC_MoveChild3,
/*556849*/          OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*556852*/          OPC_MoveParent,
/*556853*/          OPC_SwitchType /*3 cases */, 20, MVT::v8f64,// ->556876
/*556856*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*556858*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*556861*/            OPC_EmitMergeInputChains1_2,
/*556862*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPDZrmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                      // Src: (X86VFixupimm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i32] }):$src4) - Complexity = 28
                      // Dst: (VFIXUPIMMPDZrmbi:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i32] }):$src4)
/*556876*/          /*SwitchType*/ 20, MVT::v2f64,// ->556898
/*556878*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*556880*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*556883*/            OPC_EmitMergeInputChains1_2,
/*556884*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPDZ128rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                      // Src: (X86VFixupimm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i32] }):$src4) - Complexity = 28
                      // Dst: (VFIXUPIMMPDZ128rmbi:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i32] }):$src4)
/*556898*/          /*SwitchType*/ 20, MVT::v4f64,// ->556920
/*556900*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*556902*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #5 #6 #7 #8 #9
/*556905*/            OPC_EmitMergeInputChains1_2,
/*556906*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPDZ256rmbi), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 8/*#Ops*/, 0, 1, 5, 6, 7, 8, 9, 4, 
                      // Src: (X86VFixupimm:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, (timm:{ *:[i32] }):$src4) - Complexity = 28
                      // Dst: (VFIXUPIMMPDZ256rmbi:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3, (timm:{ *:[i32] }):$src4)
/*556920*/          0, // EndSwitchType
/*556921*/        0, /*End of Scope*/
/*556922*/      0, // EndSwitchOpcode
/*556923*/    /*Scope*/ 93, /*->557017*/
/*556924*/      OPC_RecordChild2, // #2 = $src3
/*556925*/      OPC_RecordChild3, // #3 = $src4
/*556926*/      OPC_MoveChild3,
/*556927*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*556930*/      OPC_MoveParent,
/*556931*/      OPC_SwitchType /*6 cases */, 12, MVT::v16f32,// ->556946
/*556934*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*556936*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPSZrri), 0,
                      MVT::v16f32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (X86VFixupimm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16i32] }:$src3, (timm:{ *:[i32] }):$src4) - Complexity = 6
                  // Dst: (VFIXUPIMMPSZrri:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16i32] }:$src3, (timm:{ *:[i32] }):$src4)
/*556946*/      /*SwitchType*/ 12, MVT::v4f32,// ->556960
/*556948*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*556950*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPSZ128rri), 0,
                      MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (X86VFixupimm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4i32] }:$src3, (timm:{ *:[i32] }):$src4) - Complexity = 6
                  // Dst: (VFIXUPIMMPSZ128rri:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4i32] }:$src3, (timm:{ *:[i32] }):$src4)
/*556960*/      /*SwitchType*/ 12, MVT::v8f32,// ->556974
/*556962*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*556964*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPSZ256rri), 0,
                      MVT::v8f32, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (X86VFixupimm:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8i32] }:$src3, (timm:{ *:[i32] }):$src4) - Complexity = 6
                  // Dst: (VFIXUPIMMPSZ256rri:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, VR256X:{ *:[v8i32] }:$src3, (timm:{ *:[i32] }):$src4)
/*556974*/      /*SwitchType*/ 12, MVT::v8f64,// ->556988
/*556976*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*556978*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPDZrri), 0,
                      MVT::v8f64, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (X86VFixupimm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8i64] }:$src3, (timm:{ *:[i32] }):$src4) - Complexity = 6
                  // Dst: (VFIXUPIMMPDZrri:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8i64] }:$src3, (timm:{ *:[i32] }):$src4)
/*556988*/      /*SwitchType*/ 12, MVT::v2f64,// ->557002
/*556990*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*556992*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPDZ128rri), 0,
                      MVT::v2f64, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (X86VFixupimm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2i64] }:$src3, (timm:{ *:[i32] }):$src4) - Complexity = 6
                  // Dst: (VFIXUPIMMPDZ128rri:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2i64] }:$src3, (timm:{ *:[i32] }):$src4)
/*557002*/      /*SwitchType*/ 12, MVT::v4f64,// ->557016
/*557004*/        OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*557006*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPDZ256rri), 0,
                      MVT::v4f64, 4/*#Ops*/, 0, 1, 2, 3, 
                  // Src: (X86VFixupimm:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4i64] }:$src3, (timm:{ *:[i32] }):$src4) - Complexity = 6
                  // Dst: (VFIXUPIMMPDZ256rri:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, VR256X:{ *:[v4i64] }:$src3, (timm:{ *:[i32] }):$src4)
/*557016*/      0, // EndSwitchType
/*557017*/    0, /*End of Scope*/
/*557018*/  /*SwitchOpcode*/ 4|128,15/*1924*/, TARGET_VAL(X86ISD::FMADDSUB),// ->558946
/*557022*/    OPC_Scope, 75, /*->557099*/ // 11 children in Scope
/*557024*/      OPC_RecordChild0, // #0 = $src2
/*557025*/      OPC_Scope, 35, /*->557062*/ // 2 children in Scope
/*557027*/        OPC_RecordChild1, // #1 = $src1
/*557028*/        OPC_MoveChild2,
/*557029*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*557032*/        OPC_RecordMemRef,
/*557033*/        OPC_RecordNode, // #2 = 'ld' chained node
/*557034*/        OPC_CheckFoldableChainNode,
/*557035*/        OPC_RecordChild1, // #3 = $src3
/*557036*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*557038*/        OPC_CheckPredicate, 9, // Predicate_load
/*557040*/        OPC_MoveParent,
/*557041*/        OPC_CheckType, MVT::v4f32,
/*557043*/        OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*557045*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*557048*/        OPC_EmitMergeInputChains1_2,
/*557049*/        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>>) - Complexity = 25
                  // Dst: (VFMADDSUB213PSm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*557062*/      /*Scope*/ 35, /*->557098*/
/*557063*/        OPC_MoveChild1,
/*557064*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*557067*/        OPC_RecordMemRef,
/*557068*/        OPC_RecordNode, // #1 = 'ld' chained node
/*557069*/        OPC_CheckFoldableChainNode,
/*557070*/        OPC_RecordChild1, // #2 = $src3
/*557071*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*557073*/        OPC_CheckPredicate, 9, // Predicate_load
/*557075*/        OPC_MoveParent,
/*557076*/        OPC_RecordChild2, // #3 = $src1
/*557077*/        OPC_CheckType, MVT::v4f32,
/*557079*/        OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*557081*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*557084*/        OPC_EmitMergeInputChains1_1,
/*557085*/        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>>, VR128:{ *:[v4f32] }:$src1) - Complexity = 25
                  // Dst: (VFMADDSUB231PSm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*557098*/      0, /*End of Scope*/
/*557099*/    /*Scope*/ 36, /*->557136*/
/*557100*/      OPC_MoveChild0,
/*557101*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*557104*/      OPC_RecordMemRef,
/*557105*/      OPC_RecordNode, // #0 = 'ld' chained node
/*557106*/      OPC_CheckFoldableChainNode,
/*557107*/      OPC_RecordChild1, // #1 = $src3
/*557108*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*557110*/      OPC_CheckPredicate, 9, // Predicate_load
/*557112*/      OPC_MoveParent,
/*557113*/      OPC_RecordChild1, // #2 = $src1
/*557114*/      OPC_RecordChild2, // #3 = $src2
/*557115*/      OPC_CheckType, MVT::v4f32,
/*557117*/      OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*557119*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*557122*/      OPC_EmitMergeInputChains1_0,
/*557123*/      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>>, VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2) - Complexity = 25
                // Dst: (VFMADDSUB132PSm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*557136*/    /*Scope*/ 75, /*->557212*/
/*557137*/      OPC_RecordChild0, // #0 = $src2
/*557138*/      OPC_Scope, 35, /*->557175*/ // 2 children in Scope
/*557140*/        OPC_RecordChild1, // #1 = $src1
/*557141*/        OPC_MoveChild2,
/*557142*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*557145*/        OPC_RecordMemRef,
/*557146*/        OPC_RecordNode, // #2 = 'ld' chained node
/*557147*/        OPC_CheckFoldableChainNode,
/*557148*/        OPC_RecordChild1, // #3 = $src3
/*557149*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*557151*/        OPC_CheckPredicate, 9, // Predicate_load
/*557153*/        OPC_MoveParent,
/*557154*/        OPC_CheckType, MVT::v8f32,
/*557156*/        OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*557158*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*557161*/        OPC_EmitMergeInputChains1_2,
/*557162*/        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>>) - Complexity = 25
                  // Dst: (VFMADDSUB213PSYm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*557175*/      /*Scope*/ 35, /*->557211*/
/*557176*/        OPC_MoveChild1,
/*557177*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*557180*/        OPC_RecordMemRef,
/*557181*/        OPC_RecordNode, // #1 = 'ld' chained node
/*557182*/        OPC_CheckFoldableChainNode,
/*557183*/        OPC_RecordChild1, // #2 = $src3
/*557184*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*557186*/        OPC_CheckPredicate, 9, // Predicate_load
/*557188*/        OPC_MoveParent,
/*557189*/        OPC_RecordChild2, // #3 = $src1
/*557190*/        OPC_CheckType, MVT::v8f32,
/*557192*/        OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*557194*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*557197*/        OPC_EmitMergeInputChains1_1,
/*557198*/        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>>, VR256:{ *:[v8f32] }:$src1) - Complexity = 25
                  // Dst: (VFMADDSUB231PSYm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*557211*/      0, /*End of Scope*/
/*557212*/    /*Scope*/ 36, /*->557249*/
/*557213*/      OPC_MoveChild0,
/*557214*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*557217*/      OPC_RecordMemRef,
/*557218*/      OPC_RecordNode, // #0 = 'ld' chained node
/*557219*/      OPC_CheckFoldableChainNode,
/*557220*/      OPC_RecordChild1, // #1 = $src3
/*557221*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*557223*/      OPC_CheckPredicate, 9, // Predicate_load
/*557225*/      OPC_MoveParent,
/*557226*/      OPC_RecordChild1, // #2 = $src1
/*557227*/      OPC_RecordChild2, // #3 = $src2
/*557228*/      OPC_CheckType, MVT::v8f32,
/*557230*/      OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*557232*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*557235*/      OPC_EmitMergeInputChains1_0,
/*557236*/      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>>, VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2) - Complexity = 25
                // Dst: (VFMADDSUB132PSYm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*557249*/    /*Scope*/ 75, /*->557325*/
/*557250*/      OPC_RecordChild0, // #0 = $src2
/*557251*/      OPC_Scope, 35, /*->557288*/ // 2 children in Scope
/*557253*/        OPC_RecordChild1, // #1 = $src1
/*557254*/        OPC_MoveChild2,
/*557255*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*557258*/        OPC_RecordMemRef,
/*557259*/        OPC_RecordNode, // #2 = 'ld' chained node
/*557260*/        OPC_CheckFoldableChainNode,
/*557261*/        OPC_RecordChild1, // #3 = $src3
/*557262*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*557264*/        OPC_CheckPredicate, 9, // Predicate_load
/*557266*/        OPC_MoveParent,
/*557267*/        OPC_CheckType, MVT::v2f64,
/*557269*/        OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*557271*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*557274*/        OPC_EmitMergeInputChains1_2,
/*557275*/        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>>) - Complexity = 25
                  // Dst: (VFMADDSUB213PDm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*557288*/      /*Scope*/ 35, /*->557324*/
/*557289*/        OPC_MoveChild1,
/*557290*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*557293*/        OPC_RecordMemRef,
/*557294*/        OPC_RecordNode, // #1 = 'ld' chained node
/*557295*/        OPC_CheckFoldableChainNode,
/*557296*/        OPC_RecordChild1, // #2 = $src3
/*557297*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*557299*/        OPC_CheckPredicate, 9, // Predicate_load
/*557301*/        OPC_MoveParent,
/*557302*/        OPC_RecordChild2, // #3 = $src1
/*557303*/        OPC_CheckType, MVT::v2f64,
/*557305*/        OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*557307*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*557310*/        OPC_EmitMergeInputChains1_1,
/*557311*/        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>>, VR128:{ *:[v2f64] }:$src1) - Complexity = 25
                  // Dst: (VFMADDSUB231PDm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*557324*/      0, /*End of Scope*/
/*557325*/    /*Scope*/ 36, /*->557362*/
/*557326*/      OPC_MoveChild0,
/*557327*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*557330*/      OPC_RecordMemRef,
/*557331*/      OPC_RecordNode, // #0 = 'ld' chained node
/*557332*/      OPC_CheckFoldableChainNode,
/*557333*/      OPC_RecordChild1, // #1 = $src3
/*557334*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*557336*/      OPC_CheckPredicate, 9, // Predicate_load
/*557338*/      OPC_MoveParent,
/*557339*/      OPC_RecordChild1, // #2 = $src1
/*557340*/      OPC_RecordChild2, // #3 = $src2
/*557341*/      OPC_CheckType, MVT::v2f64,
/*557343*/      OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*557345*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*557348*/      OPC_EmitMergeInputChains1_0,
/*557349*/      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>>, VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2) - Complexity = 25
                // Dst: (VFMADDSUB132PDm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*557362*/    /*Scope*/ 75, /*->557438*/
/*557363*/      OPC_RecordChild0, // #0 = $src2
/*557364*/      OPC_Scope, 35, /*->557401*/ // 2 children in Scope
/*557366*/        OPC_RecordChild1, // #1 = $src1
/*557367*/        OPC_MoveChild2,
/*557368*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*557371*/        OPC_RecordMemRef,
/*557372*/        OPC_RecordNode, // #2 = 'ld' chained node
/*557373*/        OPC_CheckFoldableChainNode,
/*557374*/        OPC_RecordChild1, // #3 = $src3
/*557375*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*557377*/        OPC_CheckPredicate, 9, // Predicate_load
/*557379*/        OPC_MoveParent,
/*557380*/        OPC_CheckType, MVT::v4f64,
/*557382*/        OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*557384*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*557387*/        OPC_EmitMergeInputChains1_2,
/*557388*/        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>>) - Complexity = 25
                  // Dst: (VFMADDSUB213PDYm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*557401*/      /*Scope*/ 35, /*->557437*/
/*557402*/        OPC_MoveChild1,
/*557403*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*557406*/        OPC_RecordMemRef,
/*557407*/        OPC_RecordNode, // #1 = 'ld' chained node
/*557408*/        OPC_CheckFoldableChainNode,
/*557409*/        OPC_RecordChild1, // #2 = $src3
/*557410*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*557412*/        OPC_CheckPredicate, 9, // Predicate_load
/*557414*/        OPC_MoveParent,
/*557415*/        OPC_RecordChild2, // #3 = $src1
/*557416*/        OPC_CheckType, MVT::v4f64,
/*557418*/        OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*557420*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*557423*/        OPC_EmitMergeInputChains1_1,
/*557424*/        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>>, VR256:{ *:[v4f64] }:$src1) - Complexity = 25
                  // Dst: (VFMADDSUB231PDYm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*557437*/      0, /*End of Scope*/
/*557438*/    /*Scope*/ 36, /*->557475*/
/*557439*/      OPC_MoveChild0,
/*557440*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*557443*/      OPC_RecordMemRef,
/*557444*/      OPC_RecordNode, // #0 = 'ld' chained node
/*557445*/      OPC_CheckFoldableChainNode,
/*557446*/      OPC_RecordChild1, // #1 = $src3
/*557447*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*557449*/      OPC_CheckPredicate, 9, // Predicate_load
/*557451*/      OPC_MoveParent,
/*557452*/      OPC_RecordChild1, // #2 = $src1
/*557453*/      OPC_RecordChild2, // #3 = $src2
/*557454*/      OPC_CheckType, MVT::v4f64,
/*557456*/      OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*557458*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*557461*/      OPC_EmitMergeInputChains1_0,
/*557462*/      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>>, VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2) - Complexity = 25
                // Dst: (VFMADDSUB132PDYm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*557475*/    /*Scope*/ 115|128,6/*883*/, /*->558360*/
/*557477*/      OPC_RecordChild0, // #0 = $src1
/*557478*/      OPC_Scope, 35, /*->557515*/ // 10 children in Scope
/*557480*/        OPC_RecordChild1, // #1 = $src2
/*557481*/        OPC_MoveChild2,
/*557482*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*557485*/        OPC_RecordMemRef,
/*557486*/        OPC_RecordNode, // #2 = 'ld' chained node
/*557487*/        OPC_CheckFoldableChainNode,
/*557488*/        OPC_RecordChild1, // #3 = $src3
/*557489*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*557491*/        OPC_CheckPredicate, 9, // Predicate_load
/*557493*/        OPC_MoveParent,
/*557494*/        OPC_CheckType, MVT::v4f32,
/*557496*/        OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*557498*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*557501*/        OPC_EmitMergeInputChains1_2,
/*557502*/        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>>) - Complexity = 25
                  // Dst: (VFMADDSUBPS4rm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*557515*/      /*Scope*/ 35, /*->557551*/
/*557516*/        OPC_MoveChild1,
/*557517*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*557520*/        OPC_RecordMemRef,
/*557521*/        OPC_RecordNode, // #1 = 'ld' chained node
/*557522*/        OPC_CheckFoldableChainNode,
/*557523*/        OPC_RecordChild1, // #2 = $src2
/*557524*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*557526*/        OPC_CheckPredicate, 9, // Predicate_load
/*557528*/        OPC_MoveParent,
/*557529*/        OPC_RecordChild2, // #3 = $src3
/*557530*/        OPC_CheckType, MVT::v4f32,
/*557532*/        OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*557534*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*557537*/        OPC_EmitMergeInputChains1_1,
/*557538*/        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>>, VR128:{ *:[v4f32] }:$src3) - Complexity = 25
                  // Dst: (VFMADDSUBPS4mr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v4f32] }:$src3)
/*557551*/      /*Scope*/ 35, /*->557587*/
/*557552*/        OPC_RecordChild1, // #1 = $src2
/*557553*/        OPC_MoveChild2,
/*557554*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*557557*/        OPC_RecordMemRef,
/*557558*/        OPC_RecordNode, // #2 = 'ld' chained node
/*557559*/        OPC_CheckFoldableChainNode,
/*557560*/        OPC_RecordChild1, // #3 = $src3
/*557561*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*557563*/        OPC_CheckPredicate, 9, // Predicate_load
/*557565*/        OPC_MoveParent,
/*557566*/        OPC_CheckType, MVT::v8f32,
/*557568*/        OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*557570*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*557573*/        OPC_EmitMergeInputChains1_2,
/*557574*/        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>>) - Complexity = 25
                  // Dst: (VFMADDSUBPS4Yrm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*557587*/      /*Scope*/ 35, /*->557623*/
/*557588*/        OPC_MoveChild1,
/*557589*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*557592*/        OPC_RecordMemRef,
/*557593*/        OPC_RecordNode, // #1 = 'ld' chained node
/*557594*/        OPC_CheckFoldableChainNode,
/*557595*/        OPC_RecordChild1, // #2 = $src2
/*557596*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*557598*/        OPC_CheckPredicate, 9, // Predicate_load
/*557600*/        OPC_MoveParent,
/*557601*/        OPC_RecordChild2, // #3 = $src3
/*557602*/        OPC_CheckType, MVT::v8f32,
/*557604*/        OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*557606*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*557609*/        OPC_EmitMergeInputChains1_1,
/*557610*/        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>>, VR256:{ *:[v8f32] }:$src3) - Complexity = 25
                  // Dst: (VFMADDSUBPS4Ymr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v8f32] }:$src3)
/*557623*/      /*Scope*/ 35, /*->557659*/
/*557624*/        OPC_RecordChild1, // #1 = $src2
/*557625*/        OPC_MoveChild2,
/*557626*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*557629*/        OPC_RecordMemRef,
/*557630*/        OPC_RecordNode, // #2 = 'ld' chained node
/*557631*/        OPC_CheckFoldableChainNode,
/*557632*/        OPC_RecordChild1, // #3 = $src3
/*557633*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*557635*/        OPC_CheckPredicate, 9, // Predicate_load
/*557637*/        OPC_MoveParent,
/*557638*/        OPC_CheckType, MVT::v2f64,
/*557640*/        OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*557642*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*557645*/        OPC_EmitMergeInputChains1_2,
/*557646*/        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>>) - Complexity = 25
                  // Dst: (VFMADDSUBPD4rm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*557659*/      /*Scope*/ 35, /*->557695*/
/*557660*/        OPC_MoveChild1,
/*557661*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*557664*/        OPC_RecordMemRef,
/*557665*/        OPC_RecordNode, // #1 = 'ld' chained node
/*557666*/        OPC_CheckFoldableChainNode,
/*557667*/        OPC_RecordChild1, // #2 = $src2
/*557668*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*557670*/        OPC_CheckPredicate, 9, // Predicate_load
/*557672*/        OPC_MoveParent,
/*557673*/        OPC_RecordChild2, // #3 = $src3
/*557674*/        OPC_CheckType, MVT::v2f64,
/*557676*/        OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*557678*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*557681*/        OPC_EmitMergeInputChains1_1,
/*557682*/        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>>, VR128:{ *:[v2f64] }:$src3) - Complexity = 25
                  // Dst: (VFMADDSUBPD4mr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v2f64] }:$src3)
/*557695*/      /*Scope*/ 35, /*->557731*/
/*557696*/        OPC_RecordChild1, // #1 = $src2
/*557697*/        OPC_MoveChild2,
/*557698*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*557701*/        OPC_RecordMemRef,
/*557702*/        OPC_RecordNode, // #2 = 'ld' chained node
/*557703*/        OPC_CheckFoldableChainNode,
/*557704*/        OPC_RecordChild1, // #3 = $src3
/*557705*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*557707*/        OPC_CheckPredicate, 9, // Predicate_load
/*557709*/        OPC_MoveParent,
/*557710*/        OPC_CheckType, MVT::v4f64,
/*557712*/        OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*557714*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*557717*/        OPC_EmitMergeInputChains1_2,
/*557718*/        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>>) - Complexity = 25
                  // Dst: (VFMADDSUBPD4Yrm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*557731*/      /*Scope*/ 35, /*->557767*/
/*557732*/        OPC_MoveChild1,
/*557733*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*557736*/        OPC_RecordMemRef,
/*557737*/        OPC_RecordNode, // #1 = 'ld' chained node
/*557738*/        OPC_CheckFoldableChainNode,
/*557739*/        OPC_RecordChild1, // #2 = $src2
/*557740*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*557742*/        OPC_CheckPredicate, 9, // Predicate_load
/*557744*/        OPC_MoveParent,
/*557745*/        OPC_RecordChild2, // #3 = $src3
/*557746*/        OPC_CheckType, MVT::v4f64,
/*557748*/        OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*557750*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*557753*/        OPC_EmitMergeInputChains1_1,
/*557754*/        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>>, VR256:{ *:[v4f64] }:$src3) - Complexity = 25
                  // Dst: (VFMADDSUBPD4Ymr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v4f64] }:$src3)
/*557767*/      /*Scope*/ 37|128,2/*293*/, /*->558062*/
/*557769*/        OPC_RecordChild1, // #1 = $src1
/*557770*/        OPC_MoveChild2,
/*557771*/        OPC_SwitchOpcode /*2 cases */, 9|128,1/*137*/, TARGET_VAL(ISD::LOAD),// ->557913
/*557776*/          OPC_RecordMemRef,
/*557777*/          OPC_RecordNode, // #2 = 'ld' chained node
/*557778*/          OPC_CheckFoldableChainNode,
/*557779*/          OPC_RecordChild1, // #3 = $src3
/*557780*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*557782*/          OPC_CheckPredicate, 9, // Predicate_load
/*557784*/          OPC_MoveParent,
/*557785*/          OPC_SwitchType /*6 cases */, 19, MVT::v16f32,// ->557807
/*557788*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*557790*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*557793*/            OPC_EmitMergeInputChains1_2,
/*557794*/            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>>) - Complexity = 25
                      // Dst: (VFMADDSUB213PSZm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*557807*/          /*SwitchType*/ 19, MVT::v8f32,// ->557828
/*557809*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*557811*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*557814*/            OPC_EmitMergeInputChains1_2,
/*557815*/            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>>) - Complexity = 25
                      // Dst: (VFMADDSUB213PSZ256m:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*557828*/          /*SwitchType*/ 19, MVT::v4f32,// ->557849
/*557830*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*557832*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*557835*/            OPC_EmitMergeInputChains1_2,
/*557836*/            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>>) - Complexity = 25
                      // Dst: (VFMADDSUB213PSZ128m:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*557849*/          /*SwitchType*/ 19, MVT::v8f64,// ->557870
/*557851*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*557853*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*557856*/            OPC_EmitMergeInputChains1_2,
/*557857*/            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>>) - Complexity = 25
                      // Dst: (VFMADDSUB213PDZm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*557870*/          /*SwitchType*/ 19, MVT::v4f64,// ->557891
/*557872*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*557874*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*557877*/            OPC_EmitMergeInputChains1_2,
/*557878*/            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>>) - Complexity = 25
                      // Dst: (VFMADDSUB213PDZ256m:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*557891*/          /*SwitchType*/ 19, MVT::v2f64,// ->557912
/*557893*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*557895*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*557898*/            OPC_EmitMergeInputChains1_2,
/*557899*/            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>>) - Complexity = 25
                      // Dst: (VFMADDSUB213PDZ128m:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*557912*/          0, // EndSwitchType
/*557913*/        /*SwitchOpcode*/ 16|128,1/*144*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->558061
/*557917*/          OPC_RecordMemRef,
/*557918*/          OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*557919*/          OPC_CheckFoldableChainNode,
/*557920*/          OPC_RecordChild1, // #3 = $src3
/*557921*/          OPC_Scope, 68, /*->557991*/ // 2 children in Scope
/*557923*/            OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*557925*/            OPC_MoveParent,
/*557926*/            OPC_SwitchType /*3 cases */, 19, MVT::v16f32,// ->557948
/*557929*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*557931*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*557934*/              OPC_EmitMergeInputChains1_2,
/*557935*/              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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VFMADDSUB213PSZmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*557948*/            /*SwitchType*/ 19, MVT::v8f32,// ->557969
/*557950*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*557952*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*557955*/              OPC_EmitMergeInputChains1_2,
/*557956*/              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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VFMADDSUB213PSZ256mb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*557969*/            /*SwitchType*/ 19, MVT::v4f32,// ->557990
/*557971*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*557973*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*557976*/              OPC_EmitMergeInputChains1_2,
/*557977*/              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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VFMADDSUB213PSZ128mb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*557990*/            0, // EndSwitchType
/*557991*/          /*Scope*/ 68, /*->558060*/
/*557992*/            OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*557994*/            OPC_MoveParent,
/*557995*/            OPC_SwitchType /*3 cases */, 19, MVT::v8f64,// ->558017
/*557998*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*558000*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*558003*/              OPC_EmitMergeInputChains1_2,
/*558004*/              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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VFMADDSUB213PDZmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*558017*/            /*SwitchType*/ 19, MVT::v4f64,// ->558038
/*558019*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*558021*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*558024*/              OPC_EmitMergeInputChains1_2,
/*558025*/              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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VFMADDSUB213PDZ256mb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*558038*/            /*SwitchType*/ 19, MVT::v2f64,// ->558059
/*558040*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*558042*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*558045*/              OPC_EmitMergeInputChains1_2,
/*558046*/              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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VFMADDSUB213PDZ128mb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*558059*/            0, // EndSwitchType
/*558060*/          0, /*End of Scope*/
/*558061*/        0, // EndSwitchOpcode
/*558062*/      /*Scope*/ 39|128,2/*295*/, /*->558359*/
/*558064*/        OPC_MoveChild1,
/*558065*/        OPC_SwitchOpcode /*2 cases */, 10|128,1/*138*/, TARGET_VAL(ISD::LOAD),// ->558208
/*558070*/          OPC_RecordMemRef,
/*558071*/          OPC_RecordNode, // #1 = 'ld' chained node
/*558072*/          OPC_CheckFoldableChainNode,
/*558073*/          OPC_RecordChild1, // #2 = $src3
/*558074*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*558076*/          OPC_CheckPredicate, 9, // Predicate_load
/*558078*/          OPC_MoveParent,
/*558079*/          OPC_RecordChild2, // #3 = $src1
/*558080*/          OPC_SwitchType /*6 cases */, 19, MVT::v16f32,// ->558102
/*558083*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*558085*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*558088*/            OPC_EmitMergeInputChains1_1,
/*558089*/            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>>, VR512:{ *:[v16f32] }:$src1) - Complexity = 25
                      // Dst: (VFMADDSUB231PSZm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*558102*/          /*SwitchType*/ 19, MVT::v8f32,// ->558123
/*558104*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*558106*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*558109*/            OPC_EmitMergeInputChains1_1,
/*558110*/            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>>, VR256X:{ *:[v8f32] }:$src1) - Complexity = 25
                      // Dst: (VFMADDSUB231PSZ256m:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*558123*/          /*SwitchType*/ 19, MVT::v4f32,// ->558144
/*558125*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*558127*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*558130*/            OPC_EmitMergeInputChains1_1,
/*558131*/            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>>, VR128X:{ *:[v4f32] }:$src1) - Complexity = 25
                      // Dst: (VFMADDSUB231PSZ128m:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*558144*/          /*SwitchType*/ 19, MVT::v8f64,// ->558165
/*558146*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*558148*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*558151*/            OPC_EmitMergeInputChains1_1,
/*558152*/            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>>, VR512:{ *:[v8f64] }:$src1) - Complexity = 25
                      // Dst: (VFMADDSUB231PDZm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*558165*/          /*SwitchType*/ 19, MVT::v4f64,// ->558186
/*558167*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*558169*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*558172*/            OPC_EmitMergeInputChains1_1,
/*558173*/            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>>, VR256X:{ *:[v4f64] }:$src1) - Complexity = 25
                      // Dst: (VFMADDSUB231PDZ256m:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*558186*/          /*SwitchType*/ 19, MVT::v2f64,// ->558207
/*558188*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*558190*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*558193*/            OPC_EmitMergeInputChains1_1,
/*558194*/            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>>, VR128X:{ *:[v2f64] }:$src1) - Complexity = 25
                      // Dst: (VFMADDSUB231PDZ128m:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*558207*/          0, // EndSwitchType
/*558208*/        /*SwitchOpcode*/ 18|128,1/*146*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->558358
/*558212*/          OPC_RecordMemRef,
/*558213*/          OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*558214*/          OPC_CheckFoldableChainNode,
/*558215*/          OPC_RecordChild1, // #2 = $src3
/*558216*/          OPC_Scope, 69, /*->558287*/ // 2 children in Scope
/*558218*/            OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*558220*/            OPC_MoveParent,
/*558221*/            OPC_RecordChild2, // #3 = $src1
/*558222*/            OPC_SwitchType /*3 cases */, 19, MVT::v16f32,// ->558244
/*558225*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*558227*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*558230*/              OPC_EmitMergeInputChains1_1,
/*558231*/              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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src1) - Complexity = 25
                        // Dst: (VFMADDSUB231PSZmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*558244*/            /*SwitchType*/ 19, MVT::v8f32,// ->558265
/*558246*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*558248*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*558251*/              OPC_EmitMergeInputChains1_1,
/*558252*/              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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1) - Complexity = 25
                        // Dst: (VFMADDSUB231PSZ256mb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*558265*/            /*SwitchType*/ 19, MVT::v4f32,// ->558286
/*558267*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*558269*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*558272*/              OPC_EmitMergeInputChains1_1,
/*558273*/              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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1) - Complexity = 25
                        // Dst: (VFMADDSUB231PSZ128mb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*558286*/            0, // EndSwitchType
/*558287*/          /*Scope*/ 69, /*->558357*/
/*558288*/            OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*558290*/            OPC_MoveParent,
/*558291*/            OPC_RecordChild2, // #3 = $src1
/*558292*/            OPC_SwitchType /*3 cases */, 19, MVT::v8f64,// ->558314
/*558295*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*558297*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*558300*/              OPC_EmitMergeInputChains1_1,
/*558301*/              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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src1) - Complexity = 25
                        // Dst: (VFMADDSUB231PDZmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*558314*/            /*SwitchType*/ 19, MVT::v4f64,// ->558335
/*558316*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*558318*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*558321*/              OPC_EmitMergeInputChains1_1,
/*558322*/              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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1) - Complexity = 25
                        // Dst: (VFMADDSUB231PDZ256mb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*558335*/            /*SwitchType*/ 19, MVT::v2f64,// ->558356
/*558337*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*558339*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*558342*/              OPC_EmitMergeInputChains1_1,
/*558343*/              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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1) - Complexity = 25
                        // Dst: (VFMADDSUB231PDZ128mb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*558356*/            0, // EndSwitchType
/*558357*/          0, /*End of Scope*/
/*558358*/        0, // EndSwitchOpcode
/*558359*/      0, /*End of Scope*/
/*558360*/    /*Scope*/ 6|128,3/*390*/, /*->558752*/
/*558362*/      OPC_MoveChild0,
/*558363*/      OPC_SwitchOpcode /*2 cases */, 103|128,1/*231*/, TARGET_VAL(ISD::LOAD),// ->558599
/*558368*/        OPC_RecordMemRef,
/*558369*/        OPC_RecordNode, // #0 = 'ld' chained node
/*558370*/        OPC_CheckFoldableChainNode,
/*558371*/        OPC_RecordChild1, // #1 = $src3
/*558372*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*558374*/        OPC_CheckPredicate, 9, // Predicate_load
/*558376*/        OPC_MoveParent,
/*558377*/        OPC_RecordChild1, // #2 = $src1
/*558378*/        OPC_RecordChild2, // #3 = $src2
/*558379*/        OPC_SwitchType /*6 cases */, 19, MVT::v16f32,// ->558401
/*558382*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*558384*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*558387*/          OPC_EmitMergeInputChains1_0,
/*558388*/          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>>, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2) - Complexity = 25
                    // Dst: (VFMADDSUB132PSZm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*558401*/        /*SwitchType*/ 42, MVT::v8f32,// ->558445
/*558403*/          OPC_Scope, 19, /*->558424*/ // 2 children in Scope
/*558405*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*558407*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*558410*/            OPC_EmitMergeInputChains1_0,
/*558411*/            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>>, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2) - Complexity = 25
                      // Dst: (VFMADDSUB132PSZ256m:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*558424*/          /*Scope*/ 19, /*->558444*/
/*558425*/            OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*558427*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*558430*/            OPC_EmitMergeInputChains1_0,
/*558431*/            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>>, VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src3) - Complexity = 25
                      // Dst: (VFMADDSUBPS4Ymr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v8f32] }:$src3)
/*558444*/          0, /*End of Scope*/
/*558445*/        /*SwitchType*/ 42, MVT::v4f32,// ->558489
/*558447*/          OPC_Scope, 19, /*->558468*/ // 2 children in Scope
/*558449*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*558451*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*558454*/            OPC_EmitMergeInputChains1_0,
/*558455*/            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>>, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2) - Complexity = 25
                      // Dst: (VFMADDSUB132PSZ128m:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*558468*/          /*Scope*/ 19, /*->558488*/
/*558469*/            OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*558471*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*558474*/            OPC_EmitMergeInputChains1_0,
/*558475*/            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>>, VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src3) - Complexity = 25
                      // Dst: (VFMADDSUBPS4mr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v4f32] }:$src3)
/*558488*/          0, /*End of Scope*/
/*558489*/        /*SwitchType*/ 19, MVT::v8f64,// ->558510
/*558491*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*558493*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*558496*/          OPC_EmitMergeInputChains1_0,
/*558497*/          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>>, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2) - Complexity = 25
                    // Dst: (VFMADDSUB132PDZm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*558510*/        /*SwitchType*/ 42, MVT::v4f64,// ->558554
/*558512*/          OPC_Scope, 19, /*->558533*/ // 2 children in Scope
/*558514*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*558516*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*558519*/            OPC_EmitMergeInputChains1_0,
/*558520*/            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>>, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2) - Complexity = 25
                      // Dst: (VFMADDSUB132PDZ256m:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*558533*/          /*Scope*/ 19, /*->558553*/
/*558534*/            OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*558536*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*558539*/            OPC_EmitMergeInputChains1_0,
/*558540*/            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>>, VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src3) - Complexity = 25
                      // Dst: (VFMADDSUBPD4Ymr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v4f64] }:$src3)
/*558553*/          0, /*End of Scope*/
/*558554*/        /*SwitchType*/ 42, MVT::v2f64,// ->558598
/*558556*/          OPC_Scope, 19, /*->558577*/ // 2 children in Scope
/*558558*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*558560*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*558563*/            OPC_EmitMergeInputChains1_0,
/*558564*/            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>>, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2) - Complexity = 25
                      // Dst: (VFMADDSUB132PDZ128m:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*558577*/          /*Scope*/ 19, /*->558597*/
/*558578*/            OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*558580*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*558583*/            OPC_EmitMergeInputChains1_0,
/*558584*/            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>>, VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src3) - Complexity = 25
                      // Dst: (VFMADDSUBPD4mr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v2f64] }:$src3)
/*558597*/          0, /*End of Scope*/
/*558598*/        0, // EndSwitchType
/*558599*/      /*SwitchOpcode*/ 20|128,1/*148*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->558751
/*558603*/        OPC_RecordMemRef,
/*558604*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*558605*/        OPC_CheckFoldableChainNode,
/*558606*/        OPC_RecordChild1, // #1 = $src3
/*558607*/        OPC_Scope, 70, /*->558679*/ // 2 children in Scope
/*558609*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*558611*/          OPC_MoveParent,
/*558612*/          OPC_RecordChild1, // #2 = $src1
/*558613*/          OPC_RecordChild2, // #3 = $src2
/*558614*/          OPC_SwitchType /*3 cases */, 19, MVT::v16f32,// ->558636
/*558617*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*558619*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*558622*/            OPC_EmitMergeInputChains1_0,
/*558623*/            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] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2) - Complexity = 25
                      // Dst: (VFMADDSUB132PSZmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*558636*/          /*SwitchType*/ 19, MVT::v8f32,// ->558657
/*558638*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*558640*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*558643*/            OPC_EmitMergeInputChains1_0,
/*558644*/            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] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2) - Complexity = 25
                      // Dst: (VFMADDSUB132PSZ256mb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*558657*/          /*SwitchType*/ 19, MVT::v4f32,// ->558678
/*558659*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*558661*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*558664*/            OPC_EmitMergeInputChains1_0,
/*558665*/            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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2) - Complexity = 25
                      // Dst: (VFMADDSUB132PSZ128mb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*558678*/          0, // EndSwitchType
/*558679*/        /*Scope*/ 70, /*->558750*/
/*558680*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*558682*/          OPC_MoveParent,
/*558683*/          OPC_RecordChild1, // #2 = $src1
/*558684*/          OPC_RecordChild2, // #3 = $src2
/*558685*/          OPC_SwitchType /*3 cases */, 19, MVT::v8f64,// ->558707
/*558688*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*558690*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*558693*/            OPC_EmitMergeInputChains1_0,
/*558694*/            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] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2) - Complexity = 25
                      // Dst: (VFMADDSUB132PDZmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*558707*/          /*SwitchType*/ 19, MVT::v4f64,// ->558728
/*558709*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*558711*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*558714*/            OPC_EmitMergeInputChains1_0,
/*558715*/            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] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2) - Complexity = 25
                      // Dst: (VFMADDSUB132PDZ256mb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*558728*/          /*SwitchType*/ 19, MVT::v2f64,// ->558749
/*558730*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*558732*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*558735*/            OPC_EmitMergeInputChains1_0,
/*558736*/            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] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2) - Complexity = 25
                      // Dst: (VFMADDSUB132PDZ128mb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*558749*/          0, // EndSwitchType
/*558750*/        0, /*End of Scope*/
/*558751*/      0, // EndSwitchOpcode
/*558752*/    /*Scope*/ 63|128,1/*191*/, /*->558945*/
/*558754*/      OPC_RecordChild0, // #0 = $src2
/*558755*/      OPC_RecordChild1, // #1 = $src1
/*558756*/      OPC_RecordChild2, // #2 = $src3
/*558757*/      OPC_SwitchType /*6 cases */, 38, MVT::v4f32,// ->558798
/*558760*/        OPC_Scope, 11, /*->558773*/ // 3 children in Scope
/*558762*/          OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*558764*/          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)
/*558773*/        /*Scope*/ 11, /*->558785*/
/*558774*/          OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*558776*/          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)
/*558785*/        /*Scope*/ 11, /*->558797*/
/*558786*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*558788*/          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)
/*558797*/        0, /*End of Scope*/
/*558798*/      /*SwitchType*/ 38, MVT::v8f32,// ->558838
/*558800*/        OPC_Scope, 11, /*->558813*/ // 3 children in Scope
/*558802*/          OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*558804*/          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)
/*558813*/        /*Scope*/ 11, /*->558825*/
/*558814*/          OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*558816*/          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)
/*558825*/        /*Scope*/ 11, /*->558837*/
/*558826*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*558828*/          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)
/*558837*/        0, /*End of Scope*/
/*558838*/      /*SwitchType*/ 38, MVT::v2f64,// ->558878
/*558840*/        OPC_Scope, 11, /*->558853*/ // 3 children in Scope
/*558842*/          OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*558844*/          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)
/*558853*/        /*Scope*/ 11, /*->558865*/
/*558854*/          OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*558856*/          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)
/*558865*/        /*Scope*/ 11, /*->558877*/
/*558866*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*558868*/          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)
/*558877*/        0, /*End of Scope*/
/*558878*/      /*SwitchType*/ 38, MVT::v4f64,// ->558918
/*558880*/        OPC_Scope, 11, /*->558893*/ // 3 children in Scope
/*558882*/          OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*558884*/          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)
/*558893*/        /*Scope*/ 11, /*->558905*/
/*558894*/          OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*558896*/          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)
/*558905*/        /*Scope*/ 11, /*->558917*/
/*558906*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*558908*/          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)
/*558917*/        0, /*End of Scope*/
/*558918*/      /*SwitchType*/ 11, MVT::v16f32,// ->558931
/*558920*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*558922*/        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)
/*558931*/      /*SwitchType*/ 11, MVT::v8f64,// ->558944
/*558933*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*558935*/        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)
/*558944*/      0, // EndSwitchType
/*558945*/    0, /*End of Scope*/
/*558946*/  /*SwitchOpcode*/ 4|128,15/*1924*/, TARGET_VAL(X86ISD::FMSUBADD),// ->560874
/*558950*/    OPC_Scope, 75, /*->559027*/ // 11 children in Scope
/*558952*/      OPC_RecordChild0, // #0 = $src2
/*558953*/      OPC_Scope, 35, /*->558990*/ // 2 children in Scope
/*558955*/        OPC_RecordChild1, // #1 = $src1
/*558956*/        OPC_MoveChild2,
/*558957*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*558960*/        OPC_RecordMemRef,
/*558961*/        OPC_RecordNode, // #2 = 'ld' chained node
/*558962*/        OPC_CheckFoldableChainNode,
/*558963*/        OPC_RecordChild1, // #3 = $src3
/*558964*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*558966*/        OPC_CheckPredicate, 9, // Predicate_load
/*558968*/        OPC_MoveParent,
/*558969*/        OPC_CheckType, MVT::v4f32,
/*558971*/        OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*558973*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*558976*/        OPC_EmitMergeInputChains1_2,
/*558977*/        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>>) - Complexity = 25
                  // Dst: (VFMSUBADD213PSm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*558990*/      /*Scope*/ 35, /*->559026*/
/*558991*/        OPC_MoveChild1,
/*558992*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*558995*/        OPC_RecordMemRef,
/*558996*/        OPC_RecordNode, // #1 = 'ld' chained node
/*558997*/        OPC_CheckFoldableChainNode,
/*558998*/        OPC_RecordChild1, // #2 = $src3
/*558999*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*559001*/        OPC_CheckPredicate, 9, // Predicate_load
/*559003*/        OPC_MoveParent,
/*559004*/        OPC_RecordChild2, // #3 = $src1
/*559005*/        OPC_CheckType, MVT::v4f32,
/*559007*/        OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*559009*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*559012*/        OPC_EmitMergeInputChains1_1,
/*559013*/        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>>, VR128:{ *:[v4f32] }:$src1) - Complexity = 25
                  // Dst: (VFMSUBADD231PSm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*559026*/      0, /*End of Scope*/
/*559027*/    /*Scope*/ 36, /*->559064*/
/*559028*/      OPC_MoveChild0,
/*559029*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*559032*/      OPC_RecordMemRef,
/*559033*/      OPC_RecordNode, // #0 = 'ld' chained node
/*559034*/      OPC_CheckFoldableChainNode,
/*559035*/      OPC_RecordChild1, // #1 = $src3
/*559036*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*559038*/      OPC_CheckPredicate, 9, // Predicate_load
/*559040*/      OPC_MoveParent,
/*559041*/      OPC_RecordChild1, // #2 = $src1
/*559042*/      OPC_RecordChild2, // #3 = $src2
/*559043*/      OPC_CheckType, MVT::v4f32,
/*559045*/      OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*559047*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*559050*/      OPC_EmitMergeInputChains1_0,
/*559051*/      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>>, VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2) - Complexity = 25
                // Dst: (VFMSUBADD132PSm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*559064*/    /*Scope*/ 75, /*->559140*/
/*559065*/      OPC_RecordChild0, // #0 = $src2
/*559066*/      OPC_Scope, 35, /*->559103*/ // 2 children in Scope
/*559068*/        OPC_RecordChild1, // #1 = $src1
/*559069*/        OPC_MoveChild2,
/*559070*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*559073*/        OPC_RecordMemRef,
/*559074*/        OPC_RecordNode, // #2 = 'ld' chained node
/*559075*/        OPC_CheckFoldableChainNode,
/*559076*/        OPC_RecordChild1, // #3 = $src3
/*559077*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*559079*/        OPC_CheckPredicate, 9, // Predicate_load
/*559081*/        OPC_MoveParent,
/*559082*/        OPC_CheckType, MVT::v8f32,
/*559084*/        OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*559086*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*559089*/        OPC_EmitMergeInputChains1_2,
/*559090*/        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>>) - Complexity = 25
                  // Dst: (VFMSUBADD213PSYm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*559103*/      /*Scope*/ 35, /*->559139*/
/*559104*/        OPC_MoveChild1,
/*559105*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*559108*/        OPC_RecordMemRef,
/*559109*/        OPC_RecordNode, // #1 = 'ld' chained node
/*559110*/        OPC_CheckFoldableChainNode,
/*559111*/        OPC_RecordChild1, // #2 = $src3
/*559112*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*559114*/        OPC_CheckPredicate, 9, // Predicate_load
/*559116*/        OPC_MoveParent,
/*559117*/        OPC_RecordChild2, // #3 = $src1
/*559118*/        OPC_CheckType, MVT::v8f32,
/*559120*/        OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*559122*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*559125*/        OPC_EmitMergeInputChains1_1,
/*559126*/        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>>, VR256:{ *:[v8f32] }:$src1) - Complexity = 25
                  // Dst: (VFMSUBADD231PSYm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*559139*/      0, /*End of Scope*/
/*559140*/    /*Scope*/ 36, /*->559177*/
/*559141*/      OPC_MoveChild0,
/*559142*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*559145*/      OPC_RecordMemRef,
/*559146*/      OPC_RecordNode, // #0 = 'ld' chained node
/*559147*/      OPC_CheckFoldableChainNode,
/*559148*/      OPC_RecordChild1, // #1 = $src3
/*559149*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*559151*/      OPC_CheckPredicate, 9, // Predicate_load
/*559153*/      OPC_MoveParent,
/*559154*/      OPC_RecordChild1, // #2 = $src1
/*559155*/      OPC_RecordChild2, // #3 = $src2
/*559156*/      OPC_CheckType, MVT::v8f32,
/*559158*/      OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*559160*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*559163*/      OPC_EmitMergeInputChains1_0,
/*559164*/      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>>, VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2) - Complexity = 25
                // Dst: (VFMSUBADD132PSYm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*559177*/    /*Scope*/ 75, /*->559253*/
/*559178*/      OPC_RecordChild0, // #0 = $src2
/*559179*/      OPC_Scope, 35, /*->559216*/ // 2 children in Scope
/*559181*/        OPC_RecordChild1, // #1 = $src1
/*559182*/        OPC_MoveChild2,
/*559183*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*559186*/        OPC_RecordMemRef,
/*559187*/        OPC_RecordNode, // #2 = 'ld' chained node
/*559188*/        OPC_CheckFoldableChainNode,
/*559189*/        OPC_RecordChild1, // #3 = $src3
/*559190*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*559192*/        OPC_CheckPredicate, 9, // Predicate_load
/*559194*/        OPC_MoveParent,
/*559195*/        OPC_CheckType, MVT::v2f64,
/*559197*/        OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*559199*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*559202*/        OPC_EmitMergeInputChains1_2,
/*559203*/        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>>) - Complexity = 25
                  // Dst: (VFMSUBADD213PDm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*559216*/      /*Scope*/ 35, /*->559252*/
/*559217*/        OPC_MoveChild1,
/*559218*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*559221*/        OPC_RecordMemRef,
/*559222*/        OPC_RecordNode, // #1 = 'ld' chained node
/*559223*/        OPC_CheckFoldableChainNode,
/*559224*/        OPC_RecordChild1, // #2 = $src3
/*559225*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*559227*/        OPC_CheckPredicate, 9, // Predicate_load
/*559229*/        OPC_MoveParent,
/*559230*/        OPC_RecordChild2, // #3 = $src1
/*559231*/        OPC_CheckType, MVT::v2f64,
/*559233*/        OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*559235*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*559238*/        OPC_EmitMergeInputChains1_1,
/*559239*/        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>>, VR128:{ *:[v2f64] }:$src1) - Complexity = 25
                  // Dst: (VFMSUBADD231PDm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*559252*/      0, /*End of Scope*/
/*559253*/    /*Scope*/ 36, /*->559290*/
/*559254*/      OPC_MoveChild0,
/*559255*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*559258*/      OPC_RecordMemRef,
/*559259*/      OPC_RecordNode, // #0 = 'ld' chained node
/*559260*/      OPC_CheckFoldableChainNode,
/*559261*/      OPC_RecordChild1, // #1 = $src3
/*559262*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*559264*/      OPC_CheckPredicate, 9, // Predicate_load
/*559266*/      OPC_MoveParent,
/*559267*/      OPC_RecordChild1, // #2 = $src1
/*559268*/      OPC_RecordChild2, // #3 = $src2
/*559269*/      OPC_CheckType, MVT::v2f64,
/*559271*/      OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*559273*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*559276*/      OPC_EmitMergeInputChains1_0,
/*559277*/      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>>, VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2) - Complexity = 25
                // Dst: (VFMSUBADD132PDm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*559290*/    /*Scope*/ 75, /*->559366*/
/*559291*/      OPC_RecordChild0, // #0 = $src2
/*559292*/      OPC_Scope, 35, /*->559329*/ // 2 children in Scope
/*559294*/        OPC_RecordChild1, // #1 = $src1
/*559295*/        OPC_MoveChild2,
/*559296*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*559299*/        OPC_RecordMemRef,
/*559300*/        OPC_RecordNode, // #2 = 'ld' chained node
/*559301*/        OPC_CheckFoldableChainNode,
/*559302*/        OPC_RecordChild1, // #3 = $src3
/*559303*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*559305*/        OPC_CheckPredicate, 9, // Predicate_load
/*559307*/        OPC_MoveParent,
/*559308*/        OPC_CheckType, MVT::v4f64,
/*559310*/        OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*559312*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*559315*/        OPC_EmitMergeInputChains1_2,
/*559316*/        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>>) - Complexity = 25
                  // Dst: (VFMSUBADD213PDYm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*559329*/      /*Scope*/ 35, /*->559365*/
/*559330*/        OPC_MoveChild1,
/*559331*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*559334*/        OPC_RecordMemRef,
/*559335*/        OPC_RecordNode, // #1 = 'ld' chained node
/*559336*/        OPC_CheckFoldableChainNode,
/*559337*/        OPC_RecordChild1, // #2 = $src3
/*559338*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*559340*/        OPC_CheckPredicate, 9, // Predicate_load
/*559342*/        OPC_MoveParent,
/*559343*/        OPC_RecordChild2, // #3 = $src1
/*559344*/        OPC_CheckType, MVT::v4f64,
/*559346*/        OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*559348*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*559351*/        OPC_EmitMergeInputChains1_1,
/*559352*/        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>>, VR256:{ *:[v4f64] }:$src1) - Complexity = 25
                  // Dst: (VFMSUBADD231PDYm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*559365*/      0, /*End of Scope*/
/*559366*/    /*Scope*/ 36, /*->559403*/
/*559367*/      OPC_MoveChild0,
/*559368*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*559371*/      OPC_RecordMemRef,
/*559372*/      OPC_RecordNode, // #0 = 'ld' chained node
/*559373*/      OPC_CheckFoldableChainNode,
/*559374*/      OPC_RecordChild1, // #1 = $src3
/*559375*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*559377*/      OPC_CheckPredicate, 9, // Predicate_load
/*559379*/      OPC_MoveParent,
/*559380*/      OPC_RecordChild1, // #2 = $src1
/*559381*/      OPC_RecordChild2, // #3 = $src2
/*559382*/      OPC_CheckType, MVT::v4f64,
/*559384*/      OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*559386*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*559389*/      OPC_EmitMergeInputChains1_0,
/*559390*/      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>>, VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2) - Complexity = 25
                // Dst: (VFMSUBADD132PDYm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*559403*/    /*Scope*/ 115|128,6/*883*/, /*->560288*/
/*559405*/      OPC_RecordChild0, // #0 = $src1
/*559406*/      OPC_Scope, 35, /*->559443*/ // 10 children in Scope
/*559408*/        OPC_RecordChild1, // #1 = $src2
/*559409*/        OPC_MoveChild2,
/*559410*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*559413*/        OPC_RecordMemRef,
/*559414*/        OPC_RecordNode, // #2 = 'ld' chained node
/*559415*/        OPC_CheckFoldableChainNode,
/*559416*/        OPC_RecordChild1, // #3 = $src3
/*559417*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*559419*/        OPC_CheckPredicate, 9, // Predicate_load
/*559421*/        OPC_MoveParent,
/*559422*/        OPC_CheckType, MVT::v4f32,
/*559424*/        OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*559426*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*559429*/        OPC_EmitMergeInputChains1_2,
/*559430*/        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>>) - Complexity = 25
                  // Dst: (VFMSUBADDPS4rm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*559443*/      /*Scope*/ 35, /*->559479*/
/*559444*/        OPC_MoveChild1,
/*559445*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*559448*/        OPC_RecordMemRef,
/*559449*/        OPC_RecordNode, // #1 = 'ld' chained node
/*559450*/        OPC_CheckFoldableChainNode,
/*559451*/        OPC_RecordChild1, // #2 = $src2
/*559452*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*559454*/        OPC_CheckPredicate, 9, // Predicate_load
/*559456*/        OPC_MoveParent,
/*559457*/        OPC_RecordChild2, // #3 = $src3
/*559458*/        OPC_CheckType, MVT::v4f32,
/*559460*/        OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*559462*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*559465*/        OPC_EmitMergeInputChains1_1,
/*559466*/        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>>, VR128:{ *:[v4f32] }:$src3) - Complexity = 25
                  // Dst: (VFMSUBADDPS4mr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v4f32] }:$src3)
/*559479*/      /*Scope*/ 35, /*->559515*/
/*559480*/        OPC_RecordChild1, // #1 = $src2
/*559481*/        OPC_MoveChild2,
/*559482*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*559485*/        OPC_RecordMemRef,
/*559486*/        OPC_RecordNode, // #2 = 'ld' chained node
/*559487*/        OPC_CheckFoldableChainNode,
/*559488*/        OPC_RecordChild1, // #3 = $src3
/*559489*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*559491*/        OPC_CheckPredicate, 9, // Predicate_load
/*559493*/        OPC_MoveParent,
/*559494*/        OPC_CheckType, MVT::v8f32,
/*559496*/        OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*559498*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*559501*/        OPC_EmitMergeInputChains1_2,
/*559502*/        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>>) - Complexity = 25
                  // Dst: (VFMSUBADDPS4Yrm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*559515*/      /*Scope*/ 35, /*->559551*/
/*559516*/        OPC_MoveChild1,
/*559517*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*559520*/        OPC_RecordMemRef,
/*559521*/        OPC_RecordNode, // #1 = 'ld' chained node
/*559522*/        OPC_CheckFoldableChainNode,
/*559523*/        OPC_RecordChild1, // #2 = $src2
/*559524*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*559526*/        OPC_CheckPredicate, 9, // Predicate_load
/*559528*/        OPC_MoveParent,
/*559529*/        OPC_RecordChild2, // #3 = $src3
/*559530*/        OPC_CheckType, MVT::v8f32,
/*559532*/        OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*559534*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*559537*/        OPC_EmitMergeInputChains1_1,
/*559538*/        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>>, VR256:{ *:[v8f32] }:$src3) - Complexity = 25
                  // Dst: (VFMSUBADDPS4Ymr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v8f32] }:$src3)
/*559551*/      /*Scope*/ 35, /*->559587*/
/*559552*/        OPC_RecordChild1, // #1 = $src2
/*559553*/        OPC_MoveChild2,
/*559554*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*559557*/        OPC_RecordMemRef,
/*559558*/        OPC_RecordNode, // #2 = 'ld' chained node
/*559559*/        OPC_CheckFoldableChainNode,
/*559560*/        OPC_RecordChild1, // #3 = $src3
/*559561*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*559563*/        OPC_CheckPredicate, 9, // Predicate_load
/*559565*/        OPC_MoveParent,
/*559566*/        OPC_CheckType, MVT::v2f64,
/*559568*/        OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*559570*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*559573*/        OPC_EmitMergeInputChains1_2,
/*559574*/        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>>) - Complexity = 25
                  // Dst: (VFMSUBADDPD4rm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*559587*/      /*Scope*/ 35, /*->559623*/
/*559588*/        OPC_MoveChild1,
/*559589*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*559592*/        OPC_RecordMemRef,
/*559593*/        OPC_RecordNode, // #1 = 'ld' chained node
/*559594*/        OPC_CheckFoldableChainNode,
/*559595*/        OPC_RecordChild1, // #2 = $src2
/*559596*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*559598*/        OPC_CheckPredicate, 9, // Predicate_load
/*559600*/        OPC_MoveParent,
/*559601*/        OPC_RecordChild2, // #3 = $src3
/*559602*/        OPC_CheckType, MVT::v2f64,
/*559604*/        OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*559606*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*559609*/        OPC_EmitMergeInputChains1_1,
/*559610*/        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>>, VR128:{ *:[v2f64] }:$src3) - Complexity = 25
                  // Dst: (VFMSUBADDPD4mr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v2f64] }:$src3)
/*559623*/      /*Scope*/ 35, /*->559659*/
/*559624*/        OPC_RecordChild1, // #1 = $src2
/*559625*/        OPC_MoveChild2,
/*559626*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*559629*/        OPC_RecordMemRef,
/*559630*/        OPC_RecordNode, // #2 = 'ld' chained node
/*559631*/        OPC_CheckFoldableChainNode,
/*559632*/        OPC_RecordChild1, // #3 = $src3
/*559633*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*559635*/        OPC_CheckPredicate, 9, // Predicate_load
/*559637*/        OPC_MoveParent,
/*559638*/        OPC_CheckType, MVT::v4f64,
/*559640*/        OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*559642*/        OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*559645*/        OPC_EmitMergeInputChains1_2,
/*559646*/        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>>) - Complexity = 25
                  // Dst: (VFMSUBADDPD4Yrm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*559659*/      /*Scope*/ 35, /*->559695*/
/*559660*/        OPC_MoveChild1,
/*559661*/        OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*559664*/        OPC_RecordMemRef,
/*559665*/        OPC_RecordNode, // #1 = 'ld' chained node
/*559666*/        OPC_CheckFoldableChainNode,
/*559667*/        OPC_RecordChild1, // #2 = $src2
/*559668*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*559670*/        OPC_CheckPredicate, 9, // Predicate_load
/*559672*/        OPC_MoveParent,
/*559673*/        OPC_RecordChild2, // #3 = $src3
/*559674*/        OPC_CheckType, MVT::v4f64,
/*559676*/        OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*559678*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #4 #5 #6 #7 #8
/*559681*/        OPC_EmitMergeInputChains1_1,
/*559682*/        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>>, VR256:{ *:[v4f64] }:$src3) - Complexity = 25
                  // Dst: (VFMSUBADDPD4Ymr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v4f64] }:$src3)
/*559695*/      /*Scope*/ 37|128,2/*293*/, /*->559990*/
/*559697*/        OPC_RecordChild1, // #1 = $src1
/*559698*/        OPC_MoveChild2,
/*559699*/        OPC_SwitchOpcode /*2 cases */, 9|128,1/*137*/, TARGET_VAL(ISD::LOAD),// ->559841
/*559704*/          OPC_RecordMemRef,
/*559705*/          OPC_RecordNode, // #2 = 'ld' chained node
/*559706*/          OPC_CheckFoldableChainNode,
/*559707*/          OPC_RecordChild1, // #3 = $src3
/*559708*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*559710*/          OPC_CheckPredicate, 9, // Predicate_load
/*559712*/          OPC_MoveParent,
/*559713*/          OPC_SwitchType /*6 cases */, 19, MVT::v16f32,// ->559735
/*559716*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*559718*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*559721*/            OPC_EmitMergeInputChains1_2,
/*559722*/            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>>) - Complexity = 25
                      // Dst: (VFMSUBADD213PSZm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*559735*/          /*SwitchType*/ 19, MVT::v8f32,// ->559756
/*559737*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*559739*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*559742*/            OPC_EmitMergeInputChains1_2,
/*559743*/            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>>) - Complexity = 25
                      // Dst: (VFMSUBADD213PSZ256m:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*559756*/          /*SwitchType*/ 19, MVT::v4f32,// ->559777
/*559758*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*559760*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*559763*/            OPC_EmitMergeInputChains1_2,
/*559764*/            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>>) - Complexity = 25
                      // Dst: (VFMSUBADD213PSZ128m:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*559777*/          /*SwitchType*/ 19, MVT::v8f64,// ->559798
/*559779*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*559781*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*559784*/            OPC_EmitMergeInputChains1_2,
/*559785*/            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>>) - Complexity = 25
                      // Dst: (VFMSUBADD213PDZm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*559798*/          /*SwitchType*/ 19, MVT::v4f64,// ->559819
/*559800*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*559802*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*559805*/            OPC_EmitMergeInputChains1_2,
/*559806*/            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>>) - Complexity = 25
                      // Dst: (VFMSUBADD213PDZ256m:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*559819*/          /*SwitchType*/ 19, MVT::v2f64,// ->559840
/*559821*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*559823*/            OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*559826*/            OPC_EmitMergeInputChains1_2,
/*559827*/            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>>) - Complexity = 25
                      // Dst: (VFMSUBADD213PDZ128m:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*559840*/          0, // EndSwitchType
/*559841*/        /*SwitchOpcode*/ 16|128,1/*144*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->559989
/*559845*/          OPC_RecordMemRef,
/*559846*/          OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*559847*/          OPC_CheckFoldableChainNode,
/*559848*/          OPC_RecordChild1, // #3 = $src3
/*559849*/          OPC_Scope, 68, /*->559919*/ // 2 children in Scope
/*559851*/            OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*559853*/            OPC_MoveParent,
/*559854*/            OPC_SwitchType /*3 cases */, 19, MVT::v16f32,// ->559876
/*559857*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*559859*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*559862*/              OPC_EmitMergeInputChains1_2,
/*559863*/              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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VFMSUBADD213PSZmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*559876*/            /*SwitchType*/ 19, MVT::v8f32,// ->559897
/*559878*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*559880*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*559883*/              OPC_EmitMergeInputChains1_2,
/*559884*/              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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VFMSUBADD213PSZ256mb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*559897*/            /*SwitchType*/ 19, MVT::v4f32,// ->559918
/*559899*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*559901*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*559904*/              OPC_EmitMergeInputChains1_2,
/*559905*/              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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                        // Dst: (VFMSUBADD213PSZ128mb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*559918*/            0, // EndSwitchType
/*559919*/          /*Scope*/ 68, /*->559988*/
/*559920*/            OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*559922*/            OPC_MoveParent,
/*559923*/            OPC_SwitchType /*3 cases */, 19, MVT::v8f64,// ->559945
/*559926*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*559928*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*559931*/              OPC_EmitMergeInputChains1_2,
/*559932*/              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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VFMSUBADD213PDZmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*559945*/            /*SwitchType*/ 19, MVT::v4f64,// ->559966
/*559947*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*559949*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*559952*/              OPC_EmitMergeInputChains1_2,
/*559953*/              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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VFMSUBADD213PDZ256mb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*559966*/            /*SwitchType*/ 19, MVT::v2f64,// ->559987
/*559968*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*559970*/              OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*559973*/              OPC_EmitMergeInputChains1_2,
/*559974*/              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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                        // Dst: (VFMSUBADD213PDZ128mb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*559987*/            0, // EndSwitchType
/*559988*/          0, /*End of Scope*/
/*559989*/        0, // EndSwitchOpcode
/*559990*/      /*Scope*/ 39|128,2/*295*/, /*->560287*/
/*559992*/        OPC_MoveChild1,
/*559993*/        OPC_SwitchOpcode /*2 cases */, 10|128,1/*138*/, TARGET_VAL(ISD::LOAD),// ->560136
/*559998*/          OPC_RecordMemRef,
/*559999*/          OPC_RecordNode, // #1 = 'ld' chained node
/*560000*/          OPC_CheckFoldableChainNode,
/*560001*/          OPC_RecordChild1, // #2 = $src3
/*560002*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*560004*/          OPC_CheckPredicate, 9, // Predicate_load
/*560006*/          OPC_MoveParent,
/*560007*/          OPC_RecordChild2, // #3 = $src1
/*560008*/          OPC_SwitchType /*6 cases */, 19, MVT::v16f32,// ->560030
/*560011*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*560013*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*560016*/            OPC_EmitMergeInputChains1_1,
/*560017*/            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>>, VR512:{ *:[v16f32] }:$src1) - Complexity = 25
                      // Dst: (VFMSUBADD231PSZm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*560030*/          /*SwitchType*/ 19, MVT::v8f32,// ->560051
/*560032*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*560034*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*560037*/            OPC_EmitMergeInputChains1_1,
/*560038*/            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>>, VR256X:{ *:[v8f32] }:$src1) - Complexity = 25
                      // Dst: (VFMSUBADD231PSZ256m:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*560051*/          /*SwitchType*/ 19, MVT::v4f32,// ->560072
/*560053*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*560055*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*560058*/            OPC_EmitMergeInputChains1_1,
/*560059*/            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>>, VR128X:{ *:[v4f32] }:$src1) - Complexity = 25
                      // Dst: (VFMSUBADD231PSZ128m:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*560072*/          /*SwitchType*/ 19, MVT::v8f64,// ->560093
/*560074*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*560076*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*560079*/            OPC_EmitMergeInputChains1_1,
/*560080*/            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>>, VR512:{ *:[v8f64] }:$src1) - Complexity = 25
                      // Dst: (VFMSUBADD231PDZm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*560093*/          /*SwitchType*/ 19, MVT::v4f64,// ->560114
/*560095*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*560097*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*560100*/            OPC_EmitMergeInputChains1_1,
/*560101*/            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>>, VR256X:{ *:[v4f64] }:$src1) - Complexity = 25
                      // Dst: (VFMSUBADD231PDZ256m:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*560114*/          /*SwitchType*/ 19, MVT::v2f64,// ->560135
/*560116*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*560118*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*560121*/            OPC_EmitMergeInputChains1_1,
/*560122*/            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>>, VR128X:{ *:[v2f64] }:$src1) - Complexity = 25
                      // Dst: (VFMSUBADD231PDZ128m:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*560135*/          0, // EndSwitchType
/*560136*/        /*SwitchOpcode*/ 18|128,1/*146*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->560286
/*560140*/          OPC_RecordMemRef,
/*560141*/          OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*560142*/          OPC_CheckFoldableChainNode,
/*560143*/          OPC_RecordChild1, // #2 = $src3
/*560144*/          OPC_Scope, 69, /*->560215*/ // 2 children in Scope
/*560146*/            OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*560148*/            OPC_MoveParent,
/*560149*/            OPC_RecordChild2, // #3 = $src1
/*560150*/            OPC_SwitchType /*3 cases */, 19, MVT::v16f32,// ->560172
/*560153*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*560155*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*560158*/              OPC_EmitMergeInputChains1_1,
/*560159*/              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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src1) - Complexity = 25
                        // Dst: (VFMSUBADD231PSZmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*560172*/            /*SwitchType*/ 19, MVT::v8f32,// ->560193
/*560174*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*560176*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*560179*/              OPC_EmitMergeInputChains1_1,
/*560180*/              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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1) - Complexity = 25
                        // Dst: (VFMSUBADD231PSZ256mb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*560193*/            /*SwitchType*/ 19, MVT::v4f32,// ->560214
/*560195*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*560197*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*560200*/              OPC_EmitMergeInputChains1_1,
/*560201*/              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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1) - Complexity = 25
                        // Dst: (VFMSUBADD231PSZ128mb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*560214*/            0, // EndSwitchType
/*560215*/          /*Scope*/ 69, /*->560285*/
/*560216*/            OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*560218*/            OPC_MoveParent,
/*560219*/            OPC_RecordChild2, // #3 = $src1
/*560220*/            OPC_SwitchType /*3 cases */, 19, MVT::v8f64,// ->560242
/*560223*/              OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*560225*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*560228*/              OPC_EmitMergeInputChains1_1,
/*560229*/              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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src1) - Complexity = 25
                        // Dst: (VFMSUBADD231PDZmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*560242*/            /*SwitchType*/ 19, MVT::v4f64,// ->560263
/*560244*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*560246*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*560249*/              OPC_EmitMergeInputChains1_1,
/*560250*/              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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1) - Complexity = 25
                        // Dst: (VFMSUBADD231PDZ256mb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*560263*/            /*SwitchType*/ 19, MVT::v2f64,// ->560284
/*560265*/              OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*560267*/              OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src3 #4 #5 #6 #7 #8
/*560270*/              OPC_EmitMergeInputChains1_1,
/*560271*/              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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1) - Complexity = 25
                        // Dst: (VFMSUBADD231PDZ128mb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*560284*/            0, // EndSwitchType
/*560285*/          0, /*End of Scope*/
/*560286*/        0, // EndSwitchOpcode
/*560287*/      0, /*End of Scope*/
/*560288*/    /*Scope*/ 6|128,3/*390*/, /*->560680*/
/*560290*/      OPC_MoveChild0,
/*560291*/      OPC_SwitchOpcode /*2 cases */, 103|128,1/*231*/, TARGET_VAL(ISD::LOAD),// ->560527
/*560296*/        OPC_RecordMemRef,
/*560297*/        OPC_RecordNode, // #0 = 'ld' chained node
/*560298*/        OPC_CheckFoldableChainNode,
/*560299*/        OPC_RecordChild1, // #1 = $src3
/*560300*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*560302*/        OPC_CheckPredicate, 9, // Predicate_load
/*560304*/        OPC_MoveParent,
/*560305*/        OPC_RecordChild1, // #2 = $src1
/*560306*/        OPC_RecordChild2, // #3 = $src2
/*560307*/        OPC_SwitchType /*6 cases */, 19, MVT::v16f32,// ->560329
/*560310*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*560312*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*560315*/          OPC_EmitMergeInputChains1_0,
/*560316*/          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>>, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2) - Complexity = 25
                    // Dst: (VFMSUBADD132PSZm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*560329*/        /*SwitchType*/ 42, MVT::v8f32,// ->560373
/*560331*/          OPC_Scope, 19, /*->560352*/ // 2 children in Scope
/*560333*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*560335*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*560338*/            OPC_EmitMergeInputChains1_0,
/*560339*/            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>>, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2) - Complexity = 25
                      // Dst: (VFMSUBADD132PSZ256m:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*560352*/          /*Scope*/ 19, /*->560372*/
/*560353*/            OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*560355*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*560358*/            OPC_EmitMergeInputChains1_0,
/*560359*/            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>>, VR256:{ *:[v8f32] }:$src1, VR256:{ *:[v8f32] }:$src3) - Complexity = 25
                      // Dst: (VFMSUBADDPS4Ymr:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v8f32] }:$src3)
/*560372*/          0, /*End of Scope*/
/*560373*/        /*SwitchType*/ 42, MVT::v4f32,// ->560417
/*560375*/          OPC_Scope, 19, /*->560396*/ // 2 children in Scope
/*560377*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*560379*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*560382*/            OPC_EmitMergeInputChains1_0,
/*560383*/            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>>, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2) - Complexity = 25
                      // Dst: (VFMSUBADD132PSZ128m:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*560396*/          /*Scope*/ 19, /*->560416*/
/*560397*/            OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*560399*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*560402*/            OPC_EmitMergeInputChains1_0,
/*560403*/            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>>, VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src3) - Complexity = 25
                      // Dst: (VFMSUBADDPS4mr:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v4f32] }:$src3)
/*560416*/          0, /*End of Scope*/
/*560417*/        /*SwitchType*/ 19, MVT::v8f64,// ->560438
/*560419*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*560421*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*560424*/          OPC_EmitMergeInputChains1_0,
/*560425*/          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>>, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2) - Complexity = 25
                    // Dst: (VFMSUBADD132PDZm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*560438*/        /*SwitchType*/ 42, MVT::v4f64,// ->560482
/*560440*/          OPC_Scope, 19, /*->560461*/ // 2 children in Scope
/*560442*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*560444*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*560447*/            OPC_EmitMergeInputChains1_0,
/*560448*/            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>>, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2) - Complexity = 25
                      // Dst: (VFMSUBADD132PDZ256m:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*560461*/          /*Scope*/ 19, /*->560481*/
/*560462*/            OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*560464*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*560467*/            OPC_EmitMergeInputChains1_0,
/*560468*/            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>>, VR256:{ *:[v4f64] }:$src1, VR256:{ *:[v4f64] }:$src3) - Complexity = 25
                      // Dst: (VFMSUBADDPD4Ymr:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2, VR256:{ *:[v4f64] }:$src3)
/*560481*/          0, /*End of Scope*/
/*560482*/        /*SwitchType*/ 42, MVT::v2f64,// ->560526
/*560484*/          OPC_Scope, 19, /*->560505*/ // 2 children in Scope
/*560486*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*560488*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*560491*/            OPC_EmitMergeInputChains1_0,
/*560492*/            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>>, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2) - Complexity = 25
                      // Dst: (VFMSUBADD132PDZ128m:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*560505*/          /*Scope*/ 19, /*->560525*/
/*560506*/            OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*560508*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src2 #4 #5 #6 #7 #8
/*560511*/            OPC_EmitMergeInputChains1_0,
/*560512*/            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>>, VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src3) - Complexity = 25
                      // Dst: (VFMSUBADDPD4mr:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2, VR128:{ *:[v2f64] }:$src3)
/*560525*/          0, /*End of Scope*/
/*560526*/        0, // EndSwitchType
/*560527*/      /*SwitchOpcode*/ 20|128,1/*148*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->560679
/*560531*/        OPC_RecordMemRef,
/*560532*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*560533*/        OPC_CheckFoldableChainNode,
/*560534*/        OPC_RecordChild1, // #1 = $src3
/*560535*/        OPC_Scope, 70, /*->560607*/ // 2 children in Scope
/*560537*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*560539*/          OPC_MoveParent,
/*560540*/          OPC_RecordChild1, // #2 = $src1
/*560541*/          OPC_RecordChild2, // #3 = $src2
/*560542*/          OPC_SwitchType /*3 cases */, 19, MVT::v16f32,// ->560564
/*560545*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*560547*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*560550*/            OPC_EmitMergeInputChains1_0,
/*560551*/            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] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2) - Complexity = 25
                      // Dst: (VFMSUBADD132PSZmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*560564*/          /*SwitchType*/ 19, MVT::v8f32,// ->560585
/*560566*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*560568*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*560571*/            OPC_EmitMergeInputChains1_0,
/*560572*/            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] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2) - Complexity = 25
                      // Dst: (VFMSUBADD132PSZ256mb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*560585*/          /*SwitchType*/ 19, MVT::v4f32,// ->560606
/*560587*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*560589*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*560592*/            OPC_EmitMergeInputChains1_0,
/*560593*/            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] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>, VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2) - Complexity = 25
                      // Dst: (VFMSUBADD132PSZ128mb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*560606*/          0, // EndSwitchType
/*560607*/        /*Scope*/ 70, /*->560678*/
/*560608*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*560610*/          OPC_MoveParent,
/*560611*/          OPC_RecordChild1, // #2 = $src1
/*560612*/          OPC_RecordChild2, // #3 = $src2
/*560613*/          OPC_SwitchType /*3 cases */, 19, MVT::v8f64,// ->560635
/*560616*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*560618*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*560621*/            OPC_EmitMergeInputChains1_0,
/*560622*/            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] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2) - Complexity = 25
                      // Dst: (VFMSUBADD132PDZmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*560635*/          /*SwitchType*/ 19, MVT::v4f64,// ->560656
/*560637*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*560639*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*560642*/            OPC_EmitMergeInputChains1_0,
/*560643*/            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] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2) - Complexity = 25
                      // Dst: (VFMSUBADD132PDZ256mb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*560656*/          /*SwitchType*/ 19, MVT::v2f64,// ->560677
/*560658*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*560660*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src3 #4 #5 #6 #7 #8
/*560663*/            OPC_EmitMergeInputChains1_0,
/*560664*/            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] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld64>>, VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2) - Complexity = 25
                      // Dst: (VFMSUBADD132PDZ128mb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, addr:{ *:[iPTR] }:$src3)
/*560677*/          0, // EndSwitchType
/*560678*/        0, /*End of Scope*/
/*560679*/      0, // EndSwitchOpcode
/*560680*/    /*Scope*/ 63|128,1/*191*/, /*->560873*/
/*560682*/      OPC_RecordChild0, // #0 = $src2
/*560683*/      OPC_RecordChild1, // #1 = $src1
/*560684*/      OPC_RecordChild2, // #2 = $src3
/*560685*/      OPC_SwitchType /*6 cases */, 38, MVT::v4f32,// ->560726
/*560688*/        OPC_Scope, 11, /*->560701*/ // 3 children in Scope
/*560690*/          OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*560692*/          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)
/*560701*/        /*Scope*/ 11, /*->560713*/
/*560702*/          OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*560704*/          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)
/*560713*/        /*Scope*/ 11, /*->560725*/
/*560714*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*560716*/          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)
/*560725*/        0, /*End of Scope*/
/*560726*/      /*SwitchType*/ 38, MVT::v8f32,// ->560766
/*560728*/        OPC_Scope, 11, /*->560741*/ // 3 children in Scope
/*560730*/          OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*560732*/          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)
/*560741*/        /*Scope*/ 11, /*->560753*/
/*560742*/          OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*560744*/          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)
/*560753*/        /*Scope*/ 11, /*->560765*/
/*560754*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*560756*/          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)
/*560765*/        0, /*End of Scope*/
/*560766*/      /*SwitchType*/ 38, MVT::v2f64,// ->560806
/*560768*/        OPC_Scope, 11, /*->560781*/ // 3 children in Scope
/*560770*/          OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*560772*/          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)
/*560781*/        /*Scope*/ 11, /*->560793*/
/*560782*/          OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*560784*/          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)
/*560793*/        /*Scope*/ 11, /*->560805*/
/*560794*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*560796*/          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)
/*560805*/        0, /*End of Scope*/
/*560806*/      /*SwitchType*/ 38, MVT::v4f64,// ->560846
/*560808*/        OPC_Scope, 11, /*->560821*/ // 3 children in Scope
/*560810*/          OPC_CheckPatternPredicate, 175, // (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*560812*/          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)
/*560821*/        /*Scope*/ 11, /*->560833*/
/*560822*/          OPC_CheckPatternPredicate, 176, // (Subtarget->hasFMA4()) && (!Subtarget->hasVLX())
/*560824*/          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)
/*560833*/        /*Scope*/ 11, /*->560845*/
/*560834*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*560836*/          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)
/*560845*/        0, /*End of Scope*/
/*560846*/      /*SwitchType*/ 11, MVT::v16f32,// ->560859
/*560848*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*560850*/        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)
/*560859*/      /*SwitchType*/ 11, MVT::v8f64,// ->560872
/*560861*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*560863*/        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)
/*560872*/      0, // EndSwitchType
/*560873*/    0, /*End of Scope*/
/*560874*/  /*SwitchOpcode*/ 104, TARGET_VAL(X86ISD::MOVLHPS),// ->560981
/*560877*/    OPC_RecordChild0, // #0 = $src1
/*560878*/    OPC_Scope, 63, /*->560943*/ // 2 children in Scope
/*560880*/      OPC_MoveChild1,
/*560881*/      OPC_SwitchOpcode /*2 cases */, 29, TARGET_VAL(ISD::LOAD),// ->560914
/*560885*/        OPC_RecordMemRef,
/*560886*/        OPC_RecordNode, // #1 = 'ld' chained node
/*560887*/        OPC_CheckFoldableChainNode,
/*560888*/        OPC_RecordChild1, // #2 = $src2
/*560889*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*560891*/        OPC_CheckPredicate, 9, // Predicate_load
/*560893*/        OPC_CheckPredicate, 58, // Predicate_simple_load
/*560895*/        OPC_MoveParent,
/*560896*/        OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*560898*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*560901*/        OPC_EmitMergeInputChains1_1,
/*560902*/        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_simple_load>>) - Complexity = 25
                  // Dst: (MOVHPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*560914*/      /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::VZEXT_LOAD),// ->560942
/*560917*/        OPC_RecordMemRef,
/*560918*/        OPC_RecordNode, // #1 = 'X86vzld' chained node
/*560919*/        OPC_CheckFoldableChainNode,
/*560920*/        OPC_RecordChild1, // #2 = $src2
/*560921*/        OPC_CheckPredicate, 49, // Predicate_X86vzload64
/*560923*/        OPC_MoveParent,
/*560924*/        OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*560926*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*560929*/        OPC_EmitMergeInputChains1_1,
/*560930*/        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, (X86vzld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86vzload64>>) - Complexity = 25
                  // Dst: (MOVHPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*560942*/      0, // EndSwitchOpcode
/*560943*/    /*Scope*/ 36, /*->560980*/
/*560944*/      OPC_RecordChild1, // #1 = $src2
/*560945*/      OPC_Scope, 10, /*->560957*/ // 3 children in Scope
/*560947*/        OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*560949*/        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)
/*560957*/      /*Scope*/ 10, /*->560968*/
/*560958*/        OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*560960*/        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)
/*560968*/      /*Scope*/ 10, /*->560979*/
/*560969*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*560971*/        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)
/*560979*/      0, /*End of Scope*/
/*560980*/    0, /*End of Scope*/
/*560981*/  /*SwitchOpcode*/ 91|128,2/*347*/, TARGET_VAL(X86ISD::STRICT_VFPROUND),// ->561332
/*560985*/    OPC_RecordNode, // #0 = 'X86strict_vfpround' chained node
/*560986*/    OPC_Scope, 127|128,1/*255*/, /*->561244*/ // 2 children in Scope
/*560989*/      OPC_MoveChild1,
/*560990*/      OPC_SwitchOpcode /*2 cases */, 34|128,1/*162*/, TARGET_VAL(ISD::LOAD),// ->561157
/*560995*/        OPC_RecordMemRef,
/*560996*/        OPC_RecordNode, // #1 = 'ld' chained node
/*560997*/        OPC_CheckFoldableChainNode,
/*560998*/        OPC_RecordChild1, // #2 = $src
/*560999*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*561001*/        OPC_CheckPredicate, 9, // Predicate_load
/*561003*/        OPC_SwitchType /*3 cases */, 76, MVT::v2f64,// ->561082
/*561006*/          OPC_Scope, 23, /*->561031*/ // 3 children in Scope
/*561008*/            OPC_MoveParent,
/*561009*/            OPC_CheckType, MVT::v4f32,
/*561011*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*561013*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*561016*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*561020*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (X86strict_vfpround:{ *:[v4f32] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VCVTPD2PSrm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*561031*/          /*Scope*/ 25, /*->561057*/
/*561032*/            OPC_CheckPredicate, 39, // Predicate_memop
/*561034*/            OPC_MoveParent,
/*561035*/            OPC_CheckType, MVT::v4f32,
/*561037*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*561039*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*561042*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*561046*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CVTPD2PSrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (X86strict_vfpround:{ *:[v4f32] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>><<P:Predicate_memop>>) - Complexity = 25
                      // Dst: (CVTPD2PSrm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*561057*/          /*Scope*/ 23, /*->561081*/
/*561058*/            OPC_MoveParent,
/*561059*/            OPC_CheckType, MVT::v4f32,
/*561061*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*561063*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*561066*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*561070*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZ128rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (X86strict_vfpround:{ *:[v4f32] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VCVTPD2PSZ128rm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*561081*/          0, /*End of Scope*/
/*561082*/        /*SwitchType*/ 47, MVT::v4f64,// ->561131
/*561084*/          OPC_MoveParent,
/*561085*/          OPC_CheckType, MVT::v4f32,
/*561087*/          OPC_Scope, 20, /*->561109*/ // 2 children in Scope
/*561089*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*561091*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*561094*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*561098*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (X86strict_vfpround:{ *:[v4f32] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VCVTPD2PSYrm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*561109*/          /*Scope*/ 20, /*->561130*/
/*561110*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*561112*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*561115*/            OPC_EmitMergeInputChains, 2, 0, 1, 
/*561119*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                      // Src: (X86strict_vfpround:{ *:[v4f32] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VCVTPD2PSZ256rm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*561130*/          0, /*End of Scope*/
/*561131*/        /*SwitchType*/ 23, MVT::v8f64,// ->561156
/*561133*/          OPC_MoveParent,
/*561134*/          OPC_CheckType, MVT::v8f32,
/*561136*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*561138*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*561141*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*561145*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (X86strict_vfpround:{ *:[v8f32] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VCVTPD2PSZrm:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*561156*/        0, // EndSwitchType
/*561157*/      /*SwitchOpcode*/ 83, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->561243
/*561160*/        OPC_RecordMemRef,
/*561161*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*561162*/        OPC_CheckFoldableChainNode,
/*561163*/        OPC_RecordChild1, // #2 = $src
/*561164*/        OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*561166*/        OPC_SwitchType /*3 cases */, 23, MVT::v8f64,// ->561192
/*561169*/          OPC_MoveParent,
/*561170*/          OPC_CheckType, MVT::v8f32,
/*561172*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*561174*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*561177*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*561181*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (X86strict_vfpround:{ *:[v8f32] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                    // Dst: (VCVTPD2PSZrmb:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*561192*/        /*SwitchType*/ 23, MVT::v4f64,// ->561217
/*561194*/          OPC_MoveParent,
/*561195*/          OPC_CheckType, MVT::v4f32,
/*561197*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*561199*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*561202*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*561206*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (X86strict_vfpround:{ *:[v4f32] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                    // Dst: (VCVTPD2PSZ256rmb:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*561217*/        /*SwitchType*/ 23, MVT::v2f64,// ->561242
/*561219*/          OPC_MoveParent,
/*561220*/          OPC_CheckType, MVT::v4f32,
/*561222*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*561224*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*561227*/          OPC_EmitMergeInputChains, 2, 0, 1, 
/*561231*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                    // Src: (X86strict_vfpround:{ *:[v4f32] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                    // Dst: (VCVTPD2PSZ128rmb:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*561242*/        0, // EndSwitchType
/*561243*/      0, // EndSwitchOpcode
/*561244*/    /*Scope*/ 86, /*->561331*/
/*561245*/      OPC_RecordChild1, // #1 = $src
/*561246*/      OPC_SwitchType /*2 cases */, 67, MVT::v4f32,// ->561316
/*561249*/        OPC_Scope, 37, /*->561288*/ // 2 children in Scope
/*561251*/          OPC_CheckChild1Type, MVT::v2f64,
/*561253*/          OPC_Scope, 10, /*->561265*/ // 3 children in Scope
/*561255*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*561257*/            OPC_EmitMergeInputChains1_0,
/*561258*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSrr), 0|OPFL_Chain,
                          MVT::v4f32, 1/*#Ops*/, 1, 
                      // Src: (X86strict_vfpround:{ *:[v4f32] } VR128:{ *:[v2f64] }:$src) - Complexity = 3
                      // Dst: (VCVTPD2PSrr:{ *:[v4f32] } VR128:{ *:[v2f64] }:$src)
/*561265*/          /*Scope*/ 10, /*->561276*/
/*561266*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*561268*/            OPC_EmitMergeInputChains1_0,
/*561269*/            OPC_MorphNodeTo1, TARGET_VAL(X86::CVTPD2PSrr), 0|OPFL_Chain,
                          MVT::v4f32, 1/*#Ops*/, 1, 
                      // Src: (X86strict_vfpround:{ *:[v4f32] } VR128:{ *:[v2f64] }:$src) - Complexity = 3
                      // Dst: (CVTPD2PSrr:{ *:[v4f32] } VR128:{ *:[v2f64] }:$src)
/*561276*/          /*Scope*/ 10, /*->561287*/
/*561277*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*561279*/            OPC_EmitMergeInputChains1_0,
/*561280*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZ128rr), 0|OPFL_Chain,
                          MVT::v4f32, 1/*#Ops*/, 1, 
                      // Src: (X86strict_vfpround:{ *:[v4f32] } VR128X:{ *:[v2f64] }:$src) - Complexity = 3
                      // Dst: (VCVTPD2PSZ128rr:{ *:[v4f32] } VR128X:{ *:[v2f64] }:$src)
/*561287*/          0, /*End of Scope*/
/*561288*/        /*Scope*/ 26, /*->561315*/
/*561289*/          OPC_CheckChild1Type, MVT::v4f64,
/*561291*/          OPC_Scope, 10, /*->561303*/ // 2 children in Scope
/*561293*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*561295*/            OPC_EmitMergeInputChains1_0,
/*561296*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSYrr), 0|OPFL_Chain,
                          MVT::v4f32, 1/*#Ops*/, 1, 
                      // Src: (X86strict_vfpround:{ *:[v4f32] } VR256:{ *:[v4f64] }:$src) - Complexity = 3
                      // Dst: (VCVTPD2PSYrr:{ *:[v4f32] } VR256:{ *:[v4f64] }:$src)
/*561303*/          /*Scope*/ 10, /*->561314*/
/*561304*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*561306*/            OPC_EmitMergeInputChains1_0,
/*561307*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZ256rr), 0|OPFL_Chain,
                          MVT::v4f32, 1/*#Ops*/, 1, 
                      // Src: (X86strict_vfpround:{ *:[v4f32] } VR256X:{ *:[v4f64] }:$src) - Complexity = 3
                      // Dst: (VCVTPD2PSZ256rr:{ *:[v4f32] } VR256X:{ *:[v4f64] }:$src)
/*561314*/          0, /*End of Scope*/
/*561315*/        0, /*End of Scope*/
/*561316*/      /*SwitchType*/ 12, MVT::v8f32,// ->561330
/*561318*/        OPC_CheckChild1Type, MVT::v8f64,
/*561320*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*561322*/        OPC_EmitMergeInputChains1_0,
/*561323*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZrr), 0|OPFL_Chain,
                      MVT::v8f32, 1/*#Ops*/, 1, 
                  // Src: (X86strict_vfpround:{ *:[v8f32] } VR512:{ *:[v8f64] }:$src) - Complexity = 3
                  // Dst: (VCVTPD2PSZrr:{ *:[v8f32] } VR512:{ *:[v8f64] }:$src)
/*561330*/      0, // EndSwitchType
/*561331*/    0, /*End of Scope*/
/*561332*/  /*SwitchOpcode*/ 55|128,2/*311*/, TARGET_VAL(X86ISD::VFPROUND),// ->561647
/*561336*/    OPC_Scope, 98|128,1/*226*/, /*->561565*/ // 2 children in Scope
/*561339*/      OPC_MoveChild0,
/*561340*/      OPC_SwitchOpcode /*2 cases */, 15|128,1/*143*/, TARGET_VAL(ISD::LOAD),// ->561488
/*561345*/        OPC_RecordMemRef,
/*561346*/        OPC_RecordNode, // #0 = 'ld' chained node
/*561347*/        OPC_RecordChild1, // #1 = $src
/*561348*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*561350*/        OPC_CheckPredicate, 9, // Predicate_load
/*561352*/        OPC_SwitchType /*3 cases */, 67, MVT::v2f64,// ->561422
/*561355*/          OPC_Scope, 20, /*->561377*/ // 3 children in Scope
/*561357*/            OPC_MoveParent,
/*561358*/            OPC_CheckType, MVT::v4f32,
/*561360*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*561362*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*561365*/            OPC_EmitMergeInputChains1_0,
/*561366*/            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>>) - Complexity = 25
                      // Dst: (VCVTPD2PSrm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*561377*/          /*Scope*/ 22, /*->561400*/
/*561378*/            OPC_CheckPredicate, 39, // Predicate_memop
/*561380*/            OPC_MoveParent,
/*561381*/            OPC_CheckType, MVT::v4f32,
/*561383*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*561385*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*561388*/            OPC_EmitMergeInputChains1_0,
/*561389*/            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_memop>>) - Complexity = 25
                      // Dst: (CVTPD2PSrm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*561400*/          /*Scope*/ 20, /*->561421*/
/*561401*/            OPC_MoveParent,
/*561402*/            OPC_CheckType, MVT::v4f32,
/*561404*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*561406*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*561409*/            OPC_EmitMergeInputChains1_0,
/*561410*/            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>>) - Complexity = 25
                      // Dst: (VCVTPD2PSZ128rm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*561421*/          0, /*End of Scope*/
/*561422*/        /*SwitchType*/ 41, MVT::v4f64,// ->561465
/*561424*/          OPC_MoveParent,
/*561425*/          OPC_CheckType, MVT::v4f32,
/*561427*/          OPC_Scope, 17, /*->561446*/ // 2 children in Scope
/*561429*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*561431*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*561434*/            OPC_EmitMergeInputChains1_0,
/*561435*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSYrm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86vfpround:{ *:[v4f32] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VCVTPD2PSYrm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*561446*/          /*Scope*/ 17, /*->561464*/
/*561447*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*561449*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*561452*/            OPC_EmitMergeInputChains1_0,
/*561453*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZ256rm), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86vfpround:{ *:[v4f32] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VCVTPD2PSZ256rm:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*561464*/          0, /*End of Scope*/
/*561465*/        /*SwitchType*/ 20, MVT::v8f64,// ->561487
/*561467*/          OPC_MoveParent,
/*561468*/          OPC_CheckType, MVT::v8f32,
/*561470*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*561472*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*561475*/          OPC_EmitMergeInputChains1_0,
/*561476*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZrm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86vfpround:{ *:[v8f32] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VCVTPD2PSZrm:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*561487*/        0, // EndSwitchType
/*561488*/      /*SwitchOpcode*/ 73, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->561564
/*561491*/        OPC_RecordMemRef,
/*561492*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*561493*/        OPC_RecordChild1, // #1 = $src
/*561494*/        OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*561496*/        OPC_SwitchType /*3 cases */, 20, MVT::v8f64,// ->561519
/*561499*/          OPC_MoveParent,
/*561500*/          OPC_CheckType, MVT::v8f32,
/*561502*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*561504*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*561507*/          OPC_EmitMergeInputChains1_0,
/*561508*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZrmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86vfpround:{ *:[v8f32] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                    // Dst: (VCVTPD2PSZrmb:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*561519*/        /*SwitchType*/ 20, MVT::v4f64,// ->561541
/*561521*/          OPC_MoveParent,
/*561522*/          OPC_CheckType, MVT::v4f32,
/*561524*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*561526*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*561529*/          OPC_EmitMergeInputChains1_0,
/*561530*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZ256rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86vfpround:{ *:[v4f32] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                    // Dst: (VCVTPD2PSZ256rmb:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*561541*/        /*SwitchType*/ 20, MVT::v2f64,// ->561563
/*561543*/          OPC_MoveParent,
/*561544*/          OPC_CheckType, MVT::v4f32,
/*561546*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*561548*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*561551*/          OPC_EmitMergeInputChains1_0,
/*561552*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86vfpround:{ *:[v4f32] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                    // Dst: (VCVTPD2PSZ128rmb:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*561563*/        0, // EndSwitchType
/*561564*/      0, // EndSwitchOpcode
/*561565*/    /*Scope*/ 80, /*->561646*/
/*561566*/      OPC_RecordChild0, // #0 = $src
/*561567*/      OPC_SwitchType /*2 cases */, 62, MVT::v4f32,// ->561632
/*561570*/        OPC_Scope, 34, /*->561606*/ // 2 children in Scope
/*561572*/          OPC_CheckChild0Type, MVT::v2f64,
/*561574*/          OPC_Scope, 9, /*->561585*/ // 3 children in Scope
/*561576*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*561578*/            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)
/*561585*/          /*Scope*/ 9, /*->561595*/
/*561586*/            OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*561588*/            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)
/*561595*/          /*Scope*/ 9, /*->561605*/
/*561596*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*561598*/            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)
/*561605*/          0, /*End of Scope*/
/*561606*/        /*Scope*/ 24, /*->561631*/
/*561607*/          OPC_CheckChild0Type, MVT::v4f64,
/*561609*/          OPC_Scope, 9, /*->561620*/ // 2 children in Scope
/*561611*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*561613*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSYrr), 0,
                          MVT::v4f32, 1/*#Ops*/, 0, 
                      // Src: (X86vfpround:{ *:[v4f32] } VR256:{ *:[v4f64] }:$src) - Complexity = 3
                      // Dst: (VCVTPD2PSYrr:{ *:[v4f32] } VR256:{ *:[v4f64] }:$src)
/*561620*/          /*Scope*/ 9, /*->561630*/
/*561621*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*561623*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZ256rr), 0,
                          MVT::v4f32, 1/*#Ops*/, 0, 
                      // Src: (X86vfpround:{ *:[v4f32] } VR256X:{ *:[v4f64] }:$src) - Complexity = 3
                      // Dst: (VCVTPD2PSZ256rr:{ *:[v4f32] } VR256X:{ *:[v4f64] }:$src)
/*561630*/          0, /*End of Scope*/
/*561631*/        0, /*End of Scope*/
/*561632*/      /*SwitchType*/ 11, MVT::v8f32,// ->561645
/*561634*/        OPC_CheckChild0Type, MVT::v8f64,
/*561636*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*561638*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZrr), 0,
                      MVT::v8f32, 1/*#Ops*/, 0, 
                  // Src: (X86vfpround:{ *:[v8f32] } VR512:{ *:[v8f64] }:$src) - Complexity = 3
                  // Dst: (VCVTPD2PSZrr:{ *:[v8f32] } VR512:{ *:[v8f64] }:$src)
/*561645*/      0, // EndSwitchType
/*561646*/    0, /*End of Scope*/
/*561647*/  /*SwitchOpcode*/ 49, TARGET_VAL(X86ISD::FANDN),// ->561699
/*561650*/    OPC_RecordChild0, // #0 = $src1
/*561651*/    OPC_Scope, 33, /*->561686*/ // 2 children in Scope
/*561653*/      OPC_MoveChild1,
/*561654*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*561657*/      OPC_RecordMemRef,
/*561658*/      OPC_RecordNode, // #1 = 'ld' chained node
/*561659*/      OPC_CheckFoldableChainNode,
/*561660*/      OPC_RecordChild1, // #2 = $src2
/*561661*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*561663*/      OPC_CheckPredicate, 9, // Predicate_load
/*561665*/      OPC_CheckPredicate, 39, // Predicate_memop
/*561667*/      OPC_MoveParent,
/*561668*/      OPC_CheckType, MVT::v4f32,
/*561670*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*561673*/      OPC_EmitMergeInputChains1_1,
/*561674*/      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_memop>>) - Complexity = 25
                // Dst: (ANDNPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*561686*/    /*Scope*/ 11, /*->561698*/
/*561687*/      OPC_RecordChild1, // #1 = $src2
/*561688*/      OPC_CheckType, MVT::v4f32,
/*561690*/      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)
/*561698*/    0, /*End of Scope*/
/*561699*/  /*SwitchOpcode*/ 101|128,1/*229*/, TARGET_VAL(X86ISD::ADDSUB),// ->561932
/*561703*/    OPC_RecordChild0, // #0 = $src1
/*561704*/    OPC_Scope, 16|128,1/*144*/, /*->561851*/ // 2 children in Scope
/*561707*/      OPC_MoveChild1,
/*561708*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*561711*/      OPC_RecordMemRef,
/*561712*/      OPC_RecordNode, // #1 = 'ld' chained node
/*561713*/      OPC_CheckFoldableChainNode,
/*561714*/      OPC_RecordChild1, // #2 = $src2
/*561715*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*561717*/      OPC_CheckPredicate, 9, // Predicate_load
/*561719*/      OPC_Scope, 83, /*->561804*/ // 2 children in Scope
/*561721*/        OPC_MoveParent,
/*561722*/        OPC_SwitchType /*4 cases */, 18, MVT::v4f32,// ->561743
/*561725*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*561727*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*561730*/          OPC_EmitMergeInputChains1_1,
/*561731*/          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>>) - Complexity = 25
                    // Dst: (VADDSUBPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*561743*/        /*SwitchType*/ 18, MVT::v8f32,// ->561763
/*561745*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*561747*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*561750*/          OPC_EmitMergeInputChains1_1,
/*561751*/          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>>) - Complexity = 25
                    // Dst: (VADDSUBPSYrm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*561763*/        /*SwitchType*/ 18, MVT::v2f64,// ->561783
/*561765*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*561767*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*561770*/          OPC_EmitMergeInputChains1_1,
/*561771*/          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>>) - Complexity = 25
                    // Dst: (VADDSUBPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*561783*/        /*SwitchType*/ 18, MVT::v4f64,// ->561803
/*561785*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*561787*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*561790*/          OPC_EmitMergeInputChains1_1,
/*561791*/          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>>) - Complexity = 25
                    // Dst: (VADDSUBPDYrm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*561803*/        0, // EndSwitchType
/*561804*/      /*Scope*/ 45, /*->561850*/
/*561805*/        OPC_CheckPredicate, 39, // Predicate_memop
/*561807*/        OPC_MoveParent,
/*561808*/        OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->561829
/*561811*/          OPC_CheckPatternPredicate, 163, // (Subtarget->hasSSE3() && !Subtarget->hasAVX())
/*561813*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*561816*/          OPC_EmitMergeInputChains1_1,
/*561817*/          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_memop>>) - Complexity = 25
                    // Dst: (ADDSUBPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*561829*/        /*SwitchType*/ 18, MVT::v2f64,// ->561849
/*561831*/          OPC_CheckPatternPredicate, 163, // (Subtarget->hasSSE3() && !Subtarget->hasAVX())
/*561833*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*561836*/          OPC_EmitMergeInputChains1_1,
/*561837*/          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_memop>>) - Complexity = 25
                    // Dst: (ADDSUBPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*561849*/        0, // EndSwitchType
/*561850*/      0, /*End of Scope*/
/*561851*/    /*Scope*/ 79, /*->561931*/
/*561852*/      OPC_RecordChild1, // #1 = $src2
/*561853*/      OPC_SwitchType /*4 cases */, 24, MVT::v4f32,// ->561880
/*561856*/        OPC_Scope, 10, /*->561868*/ // 2 children in Scope
/*561858*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*561860*/          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)
/*561868*/        /*Scope*/ 10, /*->561879*/
/*561869*/          OPC_CheckPatternPredicate, 163, // (Subtarget->hasSSE3() && !Subtarget->hasAVX())
/*561871*/          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)
/*561879*/        0, /*End of Scope*/
/*561880*/      /*SwitchType*/ 10, MVT::v8f32,// ->561892
/*561882*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*561884*/        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)
/*561892*/      /*SwitchType*/ 24, MVT::v2f64,// ->561918
/*561894*/        OPC_Scope, 10, /*->561906*/ // 2 children in Scope
/*561896*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*561898*/          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)
/*561906*/        /*Scope*/ 10, /*->561917*/
/*561907*/          OPC_CheckPatternPredicate, 163, // (Subtarget->hasSSE3() && !Subtarget->hasAVX())
/*561909*/          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)
/*561917*/        0, /*End of Scope*/
/*561918*/      /*SwitchType*/ 10, MVT::v4f64,// ->561930
/*561920*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*561922*/        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)
/*561930*/      0, // EndSwitchType
/*561931*/    0, /*End of Scope*/
/*561932*/  /*SwitchOpcode*/ 101|128,1/*229*/, TARGET_VAL(X86ISD::FHADD),// ->562165
/*561936*/    OPC_RecordChild0, // #0 = $src1
/*561937*/    OPC_Scope, 16|128,1/*144*/, /*->562084*/ // 2 children in Scope
/*561940*/      OPC_MoveChild1,
/*561941*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*561944*/      OPC_RecordMemRef,
/*561945*/      OPC_RecordNode, // #1 = 'ld' chained node
/*561946*/      OPC_CheckFoldableChainNode,
/*561947*/      OPC_RecordChild1, // #2 = $src2
/*561948*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*561950*/      OPC_CheckPredicate, 9, // Predicate_load
/*561952*/      OPC_Scope, 83, /*->562037*/ // 2 children in Scope
/*561954*/        OPC_MoveParent,
/*561955*/        OPC_SwitchType /*4 cases */, 18, MVT::v4f32,// ->561976
/*561958*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*561960*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*561963*/          OPC_EmitMergeInputChains1_1,
/*561964*/          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>>) - Complexity = 25
                    // Dst: (VHADDPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*561976*/        /*SwitchType*/ 18, MVT::v8f32,// ->561996
/*561978*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*561980*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*561983*/          OPC_EmitMergeInputChains1_1,
/*561984*/          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>>) - Complexity = 25
                    // Dst: (VHADDPSYrm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*561996*/        /*SwitchType*/ 18, MVT::v2f64,// ->562016
/*561998*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*562000*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*562003*/          OPC_EmitMergeInputChains1_1,
/*562004*/          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>>) - Complexity = 25
                    // Dst: (VHADDPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*562016*/        /*SwitchType*/ 18, MVT::v4f64,// ->562036
/*562018*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*562020*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*562023*/          OPC_EmitMergeInputChains1_1,
/*562024*/          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>>) - Complexity = 25
                    // Dst: (VHADDPDYrm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*562036*/        0, // EndSwitchType
/*562037*/      /*Scope*/ 45, /*->562083*/
/*562038*/        OPC_CheckPredicate, 39, // Predicate_memop
/*562040*/        OPC_MoveParent,
/*562041*/        OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->562062
/*562044*/          OPC_CheckPatternPredicate, 163, // (Subtarget->hasSSE3() && !Subtarget->hasAVX())
/*562046*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*562049*/          OPC_EmitMergeInputChains1_1,
/*562050*/          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_memop>>) - Complexity = 25
                    // Dst: (HADDPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*562062*/        /*SwitchType*/ 18, MVT::v2f64,// ->562082
/*562064*/          OPC_CheckPatternPredicate, 163, // (Subtarget->hasSSE3() && !Subtarget->hasAVX())
/*562066*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*562069*/          OPC_EmitMergeInputChains1_1,
/*562070*/          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_memop>>) - Complexity = 25
                    // Dst: (HADDPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*562082*/        0, // EndSwitchType
/*562083*/      0, /*End of Scope*/
/*562084*/    /*Scope*/ 79, /*->562164*/
/*562085*/      OPC_RecordChild1, // #1 = $src2
/*562086*/      OPC_SwitchType /*4 cases */, 24, MVT::v4f32,// ->562113
/*562089*/        OPC_Scope, 10, /*->562101*/ // 2 children in Scope
/*562091*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*562093*/          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)
/*562101*/        /*Scope*/ 10, /*->562112*/
/*562102*/          OPC_CheckPatternPredicate, 163, // (Subtarget->hasSSE3() && !Subtarget->hasAVX())
/*562104*/          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)
/*562112*/        0, /*End of Scope*/
/*562113*/      /*SwitchType*/ 10, MVT::v8f32,// ->562125
/*562115*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*562117*/        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)
/*562125*/      /*SwitchType*/ 24, MVT::v2f64,// ->562151
/*562127*/        OPC_Scope, 10, /*->562139*/ // 2 children in Scope
/*562129*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*562131*/          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)
/*562139*/        /*Scope*/ 10, /*->562150*/
/*562140*/          OPC_CheckPatternPredicate, 163, // (Subtarget->hasSSE3() && !Subtarget->hasAVX())
/*562142*/          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)
/*562150*/        0, /*End of Scope*/
/*562151*/      /*SwitchType*/ 10, MVT::v4f64,// ->562163
/*562153*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*562155*/        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)
/*562163*/      0, // EndSwitchType
/*562164*/    0, /*End of Scope*/
/*562165*/  /*SwitchOpcode*/ 101|128,1/*229*/, TARGET_VAL(X86ISD::FHSUB),// ->562398
/*562169*/    OPC_RecordChild0, // #0 = $src1
/*562170*/    OPC_Scope, 16|128,1/*144*/, /*->562317*/ // 2 children in Scope
/*562173*/      OPC_MoveChild1,
/*562174*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*562177*/      OPC_RecordMemRef,
/*562178*/      OPC_RecordNode, // #1 = 'ld' chained node
/*562179*/      OPC_CheckFoldableChainNode,
/*562180*/      OPC_RecordChild1, // #2 = $src2
/*562181*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*562183*/      OPC_CheckPredicate, 9, // Predicate_load
/*562185*/      OPC_Scope, 83, /*->562270*/ // 2 children in Scope
/*562187*/        OPC_MoveParent,
/*562188*/        OPC_SwitchType /*4 cases */, 18, MVT::v4f32,// ->562209
/*562191*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*562193*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*562196*/          OPC_EmitMergeInputChains1_1,
/*562197*/          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>>) - Complexity = 25
                    // Dst: (VHSUBPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*562209*/        /*SwitchType*/ 18, MVT::v8f32,// ->562229
/*562211*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*562213*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*562216*/          OPC_EmitMergeInputChains1_1,
/*562217*/          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>>) - Complexity = 25
                    // Dst: (VHSUBPSYrm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*562229*/        /*SwitchType*/ 18, MVT::v2f64,// ->562249
/*562231*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*562233*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*562236*/          OPC_EmitMergeInputChains1_1,
/*562237*/          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>>) - Complexity = 25
                    // Dst: (VHSUBPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*562249*/        /*SwitchType*/ 18, MVT::v4f64,// ->562269
/*562251*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*562253*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*562256*/          OPC_EmitMergeInputChains1_1,
/*562257*/          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>>) - Complexity = 25
                    // Dst: (VHSUBPDYrm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*562269*/        0, // EndSwitchType
/*562270*/      /*Scope*/ 45, /*->562316*/
/*562271*/        OPC_CheckPredicate, 39, // Predicate_memop
/*562273*/        OPC_MoveParent,
/*562274*/        OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->562295
/*562277*/          OPC_CheckPatternPredicate, 163, // (Subtarget->hasSSE3() && !Subtarget->hasAVX())
/*562279*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*562282*/          OPC_EmitMergeInputChains1_1,
/*562283*/          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_memop>>) - Complexity = 25
                    // Dst: (HSUBPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*562295*/        /*SwitchType*/ 18, MVT::v2f64,// ->562315
/*562297*/          OPC_CheckPatternPredicate, 163, // (Subtarget->hasSSE3() && !Subtarget->hasAVX())
/*562299*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*562302*/          OPC_EmitMergeInputChains1_1,
/*562303*/          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_memop>>) - Complexity = 25
                    // Dst: (HSUBPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*562315*/        0, // EndSwitchType
/*562316*/      0, /*End of Scope*/
/*562317*/    /*Scope*/ 79, /*->562397*/
/*562318*/      OPC_RecordChild1, // #1 = $src2
/*562319*/      OPC_SwitchType /*4 cases */, 24, MVT::v4f32,// ->562346
/*562322*/        OPC_Scope, 10, /*->562334*/ // 2 children in Scope
/*562324*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*562326*/          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)
/*562334*/        /*Scope*/ 10, /*->562345*/
/*562335*/          OPC_CheckPatternPredicate, 163, // (Subtarget->hasSSE3() && !Subtarget->hasAVX())
/*562337*/          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)
/*562345*/        0, /*End of Scope*/
/*562346*/      /*SwitchType*/ 10, MVT::v8f32,// ->562358
/*562348*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*562350*/        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)
/*562358*/      /*SwitchType*/ 24, MVT::v2f64,// ->562384
/*562360*/        OPC_Scope, 10, /*->562372*/ // 2 children in Scope
/*562362*/          OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*562364*/          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)
/*562372*/        /*Scope*/ 10, /*->562383*/
/*562373*/          OPC_CheckPatternPredicate, 163, // (Subtarget->hasSSE3() && !Subtarget->hasAVX())
/*562375*/          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)
/*562383*/        0, /*End of Scope*/
/*562384*/      /*SwitchType*/ 10, MVT::v4f64,// ->562396
/*562386*/        OPC_CheckPatternPredicate, 28, // (Subtarget->hasAVX())
/*562388*/        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)
/*562396*/      0, // EndSwitchType
/*562397*/    0, /*End of Scope*/
/*562398*/  /*SwitchOpcode*/ 122|128,3/*506*/, TARGET_VAL(X86ISD::VPERMILPV),// ->562908
/*562402*/    OPC_RecordChild0, // #0 = $src1
/*562403*/    OPC_Scope, 112|128,2/*368*/, /*->562774*/ // 2 children in Scope
/*562406*/      OPC_MoveChild1,
/*562407*/      OPC_SwitchOpcode /*2 cases */, 91|128,1/*219*/, TARGET_VAL(ISD::LOAD),// ->562631
/*562412*/        OPC_RecordMemRef,
/*562413*/        OPC_RecordNode, // #1 = 'ld' chained node
/*562414*/        OPC_CheckFoldableChainNode,
/*562415*/        OPC_RecordChild1, // #2 = $src2
/*562416*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*562418*/        OPC_CheckPredicate, 9, // Predicate_load
/*562420*/        OPC_MoveParent,
/*562421*/        OPC_SwitchType /*6 cases */, 40, MVT::v4f32,// ->562464
/*562424*/          OPC_Scope, 18, /*->562444*/ // 2 children in Scope
/*562426*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*562428*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*562431*/            OPC_EmitMergeInputChains1_1,
/*562432*/            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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPERMILPSrm:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*562444*/          /*Scope*/ 18, /*->562463*/
/*562445*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*562447*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*562450*/            OPC_EmitMergeInputChains1_1,
/*562451*/            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, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPERMILPSZ128rm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*562463*/          0, /*End of Scope*/
/*562464*/        /*SwitchType*/ 40, MVT::v8f32,// ->562506
/*562466*/          OPC_Scope, 18, /*->562486*/ // 2 children in Scope
/*562468*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*562470*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*562473*/            OPC_EmitMergeInputChains1_1,
/*562474*/            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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPERMILPSYrm:{ *:[v8f32] } VR256:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*562486*/          /*Scope*/ 18, /*->562505*/
/*562487*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*562489*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*562492*/            OPC_EmitMergeInputChains1_1,
/*562493*/            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, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                      // Dst: (VPERMILPSZ256rm:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*562505*/          0, /*End of Scope*/
/*562506*/        /*SwitchType*/ 40, MVT::v2f64,// ->562548
/*562508*/          OPC_Scope, 18, /*->562528*/ // 2 children in Scope
/*562510*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*562512*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*562515*/            OPC_EmitMergeInputChains1_1,
/*562516*/            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>>) - Complexity = 25
                      // Dst: (VPERMILPDrm:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*562528*/          /*Scope*/ 18, /*->562547*/
/*562529*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*562531*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*562534*/            OPC_EmitMergeInputChains1_1,
/*562535*/            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>>) - Complexity = 25
                      // Dst: (VPERMILPDZ128rm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*562547*/          0, /*End of Scope*/
/*562548*/        /*SwitchType*/ 40, MVT::v4f64,// ->562590
/*562550*/          OPC_Scope, 18, /*->562570*/ // 2 children in Scope
/*562552*/            OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*562554*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*562557*/            OPC_EmitMergeInputChains1_1,
/*562558*/            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>>) - Complexity = 25
                      // Dst: (VPERMILPDYrm:{ *:[v4f64] } VR256:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*562570*/          /*Scope*/ 18, /*->562589*/
/*562571*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*562573*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*562576*/            OPC_EmitMergeInputChains1_1,
/*562577*/            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>>) - Complexity = 25
                      // Dst: (VPERMILPDZ256rm:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*562589*/          0, /*End of Scope*/
/*562590*/        /*SwitchType*/ 18, MVT::v16f32,// ->562610
/*562592*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*562594*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*562597*/          OPC_EmitMergeInputChains1_1,
/*562598*/          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, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VPERMILPSZrm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*562610*/        /*SwitchType*/ 18, MVT::v8f64,// ->562630
/*562612*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*562614*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*562617*/          OPC_EmitMergeInputChains1_1,
/*562618*/          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>>) - Complexity = 25
                    // Dst: (VPERMILPDZrm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*562630*/        0, // EndSwitchType
/*562631*/      /*SwitchOpcode*/ 10|128,1/*138*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->562773
/*562635*/        OPC_RecordMemRef,
/*562636*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*562637*/        OPC_CheckFoldableChainNode,
/*562638*/        OPC_RecordChild1, // #2 = $src2
/*562639*/        OPC_Scope, 65, /*->562706*/ // 2 children in Scope
/*562641*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*562643*/          OPC_MoveParent,
/*562644*/          OPC_SwitchType /*3 cases */, 18, MVT::v16f32,// ->562665
/*562647*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*562649*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*562652*/            OPC_EmitMergeInputChains1_1,
/*562653*/            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, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPERMILPSZrmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*562665*/          /*SwitchType*/ 18, MVT::v4f32,// ->562685
/*562667*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*562669*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*562672*/            OPC_EmitMergeInputChains1_1,
/*562673*/            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, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPERMILPSZ128rmb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*562685*/          /*SwitchType*/ 18, MVT::v8f32,// ->562705
/*562687*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*562689*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*562692*/            OPC_EmitMergeInputChains1_1,
/*562693*/            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, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VPERMILPSZ256rmb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*562705*/          0, // EndSwitchType
/*562706*/        /*Scope*/ 65, /*->562772*/
/*562707*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*562709*/          OPC_MoveParent,
/*562710*/          OPC_SwitchType /*3 cases */, 18, MVT::v8f64,// ->562731
/*562713*/            OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*562715*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*562718*/            OPC_EmitMergeInputChains1_1,
/*562719*/            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, (X86VBroadcastld:{ *:[v8i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPERMILPDZrmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*562731*/          /*SwitchType*/ 18, MVT::v2f64,// ->562751
/*562733*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*562735*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*562738*/            OPC_EmitMergeInputChains1_1,
/*562739*/            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, (X86VBroadcastld:{ *:[v2i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPERMILPDZ128rmb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*562751*/          /*SwitchType*/ 18, MVT::v4f64,// ->562771
/*562753*/            OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*562755*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*562758*/            OPC_EmitMergeInputChains1_1,
/*562759*/            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, (X86VBroadcastld:{ *:[v4i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VPERMILPDZ256rmb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*562771*/          0, // EndSwitchType
/*562772*/        0, /*End of Scope*/
/*562773*/      0, // EndSwitchOpcode
/*562774*/    /*Scope*/ 3|128,1/*131*/, /*->562907*/
/*562776*/      OPC_RecordChild1, // #1 = $src2
/*562777*/      OPC_SwitchType /*6 cases */, 24, MVT::v4f32,// ->562804
/*562780*/        OPC_Scope, 10, /*->562792*/ // 2 children in Scope
/*562782*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*562784*/          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)
/*562792*/        /*Scope*/ 10, /*->562803*/
/*562793*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*562795*/          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)
/*562803*/        0, /*End of Scope*/
/*562804*/      /*SwitchType*/ 24, MVT::v8f32,// ->562830
/*562806*/        OPC_Scope, 10, /*->562818*/ // 2 children in Scope
/*562808*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*562810*/          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)
/*562818*/        /*Scope*/ 10, /*->562829*/
/*562819*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*562821*/          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)
/*562829*/        0, /*End of Scope*/
/*562830*/      /*SwitchType*/ 24, MVT::v2f64,// ->562856
/*562832*/        OPC_Scope, 10, /*->562844*/ // 2 children in Scope
/*562834*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*562836*/          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)
/*562844*/        /*Scope*/ 10, /*->562855*/
/*562845*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*562847*/          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)
/*562855*/        0, /*End of Scope*/
/*562856*/      /*SwitchType*/ 24, MVT::v4f64,// ->562882
/*562858*/        OPC_Scope, 10, /*->562870*/ // 2 children in Scope
/*562860*/          OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*562862*/          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)
/*562870*/        /*Scope*/ 10, /*->562881*/
/*562871*/          OPC_CheckPatternPredicate, 2, // (Subtarget->hasAVX512()) && (Subtarget->hasVLX())
/*562873*/          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)
/*562881*/        0, /*End of Scope*/
/*562882*/      /*SwitchType*/ 10, MVT::v16f32,// ->562894
/*562884*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*562886*/        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)
/*562894*/      /*SwitchType*/ 10, MVT::v8f64,// ->562906
/*562896*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*562898*/        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)
/*562906*/      0, // EndSwitchType
/*562907*/    0, /*End of Scope*/
/*562908*/  /*SwitchOpcode*/ 113|128,2/*369*/, TARGET_VAL(X86ISD::SCALEF),// ->563281
/*562912*/    OPC_RecordChild0, // #0 = $src1
/*562913*/    OPC_Scope, 32|128,2/*288*/, /*->563204*/ // 2 children in Scope
/*562916*/      OPC_MoveChild1,
/*562917*/      OPC_SwitchOpcode /*2 cases */, 3|128,1/*131*/, TARGET_VAL(ISD::LOAD),// ->563053
/*562922*/        OPC_RecordMemRef,
/*562923*/        OPC_RecordNode, // #1 = 'ld' chained node
/*562924*/        OPC_CheckFoldableChainNode,
/*562925*/        OPC_RecordChild1, // #2 = $src2
/*562926*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*562928*/        OPC_CheckPredicate, 9, // Predicate_load
/*562930*/        OPC_MoveParent,
/*562931*/        OPC_SwitchType /*6 cases */, 18, MVT::v16f32,// ->562952
/*562934*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*562936*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*562939*/          OPC_EmitMergeInputChains1_1,
/*562940*/          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>>) - Complexity = 25
                    // Dst: (VSCALEFPSZrm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*562952*/        /*SwitchType*/ 18, MVT::v8f64,// ->562972
/*562954*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*562956*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*562959*/          OPC_EmitMergeInputChains1_1,
/*562960*/          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>>) - Complexity = 25
                    // Dst: (VSCALEFPDZrm:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*562972*/        /*SwitchType*/ 18, MVT::v4f32,// ->562992
/*562974*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*562976*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*562979*/          OPC_EmitMergeInputChains1_1,
/*562980*/          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>>) - Complexity = 25
                    // Dst: (VSCALEFPSZ128rm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*562992*/        /*SwitchType*/ 18, MVT::v8f32,// ->563012
/*562994*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*562996*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*562999*/          OPC_EmitMergeInputChains1_1,
/*563000*/          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>>) - Complexity = 25
                    // Dst: (VSCALEFPSZ256rm:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*563012*/        /*SwitchType*/ 18, MVT::v2f64,// ->563032
/*563014*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*563016*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*563019*/          OPC_EmitMergeInputChains1_1,
/*563020*/          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>>) - Complexity = 25
                    // Dst: (VSCALEFPDZ128rm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*563032*/        /*SwitchType*/ 18, MVT::v4f64,// ->563052
/*563034*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*563036*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*563039*/          OPC_EmitMergeInputChains1_1,
/*563040*/          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>>) - Complexity = 25
                    // Dst: (VSCALEFPDZ256rm:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*563052*/        0, // EndSwitchType
/*563053*/      /*SwitchOpcode*/ 18|128,1/*146*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->563203
/*563057*/        OPC_RecordMemRef,
/*563058*/        OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*563059*/        OPC_CheckFoldableChainNode,
/*563060*/        OPC_RecordChild1, // #2 = $src2
/*563061*/        OPC_Scope, 23, /*->563086*/ // 4 children in Scope
/*563063*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*563065*/          OPC_MoveParent,
/*563066*/          OPC_CheckType, MVT::v16f32,
/*563068*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*563070*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*563073*/          OPC_EmitMergeInputChains1_1,
/*563074*/          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, (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                    // Dst: (VSCALEFPSZrmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*563086*/        /*Scope*/ 23, /*->563110*/
/*563087*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*563089*/          OPC_MoveParent,
/*563090*/          OPC_CheckType, MVT::v8f64,
/*563092*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*563094*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*563097*/          OPC_EmitMergeInputChains1_1,
/*563098*/          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, (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                    // Dst: (VSCALEFPDZrmb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*563110*/        /*Scope*/ 45, /*->563156*/
/*563111*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*563113*/          OPC_MoveParent,
/*563114*/          OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->563135
/*563117*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*563119*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*563122*/            OPC_EmitMergeInputChains1_1,
/*563123*/            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, (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VSCALEFPSZ128rmb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*563135*/          /*SwitchType*/ 18, MVT::v8f32,// ->563155
/*563137*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*563139*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*563142*/            OPC_EmitMergeInputChains1_1,
/*563143*/            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, (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VSCALEFPSZ256rmb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*563155*/          0, // EndSwitchType
/*563156*/        /*Scope*/ 45, /*->563202*/
/*563157*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*563159*/          OPC_MoveParent,
/*563160*/          OPC_SwitchType /*2 cases */, 18, MVT::v2f64,// ->563181
/*563163*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*563165*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*563168*/            OPC_EmitMergeInputChains1_1,
/*563169*/            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, (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VSCALEFPDZ128rmb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*563181*/          /*SwitchType*/ 18, MVT::v4f64,// ->563201
/*563183*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*563185*/            OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*563188*/            OPC_EmitMergeInputChains1_1,
/*563189*/            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, (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VSCALEFPDZ256rmb:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*563201*/          0, // EndSwitchType
/*563202*/        0, /*End of Scope*/
/*563203*/      0, // EndSwitchOpcode
/*563204*/    /*Scope*/ 75, /*->563280*/
/*563205*/      OPC_RecordChild1, // #1 = $src2
/*563206*/      OPC_SwitchType /*6 cases */, 10, MVT::v16f32,// ->563219
/*563209*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*563211*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPSZrr), 0,
                      MVT::v16f32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86scalef:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2) - Complexity = 3
                  // Dst: (VSCALEFPSZrr:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*563219*/      /*SwitchType*/ 10, MVT::v8f64,// ->563231
/*563221*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*563223*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPDZrr), 0,
                      MVT::v8f64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86scalef:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2) - Complexity = 3
                  // Dst: (VSCALEFPDZrr:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*563231*/      /*SwitchType*/ 10, MVT::v4f32,// ->563243
/*563233*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*563235*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPSZ128rr), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86scalef:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2) - Complexity = 3
                  // Dst: (VSCALEFPSZ128rr:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*563243*/      /*SwitchType*/ 10, MVT::v8f32,// ->563255
/*563245*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*563247*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPSZ256rr), 0,
                      MVT::v8f32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86scalef:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2) - Complexity = 3
                  // Dst: (VSCALEFPSZ256rr:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8f32] }:$src2)
/*563255*/      /*SwitchType*/ 10, MVT::v2f64,// ->563267
/*563257*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*563259*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPDZ128rr), 0,
                      MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86scalef:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2) - Complexity = 3
                  // Dst: (VSCALEFPDZ128rr:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*563267*/      /*SwitchType*/ 10, MVT::v4f64,// ->563279
/*563269*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*563271*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPDZ256rr), 0,
                      MVT::v4f64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86scalef:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2) - Complexity = 3
                  // Dst: (VSCALEFPDZ256rr:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src1, VR256X:{ *:[v4f64] }:$src2)
/*563279*/      0, // EndSwitchType
/*563280*/    0, /*End of Scope*/
/*563281*/  /*SwitchOpcode*/ 8|128,1/*136*/, TARGET_VAL(X86ISD::SCALAR_SINT_TO_FP),// ->563421
/*563285*/    OPC_RecordChild0, // #0 = $src1
/*563286*/    OPC_Scope, 84, /*->563372*/ // 2 children in Scope
/*563288*/      OPC_MoveChild1,
/*563289*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*563292*/      OPC_RecordMemRef,
/*563293*/      OPC_RecordNode, // #1 = 'ld' chained node
/*563294*/      OPC_CheckFoldableChainNode,
/*563295*/      OPC_RecordChild1, // #2 = $src2
/*563296*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*563298*/      OPC_SwitchType /*2 cases */, 23, MVT::i32,// ->563324
/*563301*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*563303*/        OPC_MoveParent,
/*563304*/        OPC_CheckType, MVT::v4f32,
/*563306*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*563308*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*563311*/        OPC_EmitMergeInputChains1_1,
/*563312*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI2SSZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86SintToFp:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>) - Complexity = 25
                  // Dst: (VCVTSI2SSZrm_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*563324*/      /*SwitchType*/ 45, MVT::i64,// ->563371
/*563326*/        OPC_CheckPredicate, 9, // Predicate_load
/*563328*/        OPC_MoveParent,
/*563329*/        OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->563350
/*563332*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*563334*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*563337*/          OPC_EmitMergeInputChains1_1,
/*563338*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI642SSZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86SintToFp:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VCVTSI642SSZrm_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*563350*/        /*SwitchType*/ 18, MVT::v2f64,// ->563370
/*563352*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*563354*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*563357*/          OPC_EmitMergeInputChains1_1,
/*563358*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI642SDZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86SintToFp:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VCVTSI642SDZrm_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*563370*/        0, // EndSwitchType
/*563371*/      0, // EndSwitchType
/*563372*/    /*Scope*/ 47, /*->563420*/
/*563373*/      OPC_RecordChild1, // #1 = $src2
/*563374*/      OPC_Scope, 14, /*->563390*/ // 2 children in Scope
/*563376*/        OPC_CheckChild1Type, MVT::i32,
/*563378*/        OPC_CheckType, MVT::v4f32,
/*563380*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*563382*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI2SSZrr_Int), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86SintToFp:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, GR32:{ *:[i32] }:$src2) - Complexity = 3
                  // Dst: (VCVTSI2SSZrr_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, GR32:{ *:[i32] }:$src2)
/*563390*/      /*Scope*/ 28, /*->563419*/
/*563391*/        OPC_CheckChild1Type, MVT::i64,
/*563393*/        OPC_SwitchType /*2 cases */, 10, MVT::v4f32,// ->563406
/*563396*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*563398*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI642SSZrr_Int), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86SintToFp:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, GR64:{ *:[i64] }:$src2) - Complexity = 3
                    // Dst: (VCVTSI642SSZrr_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, GR64:{ *:[i64] }:$src2)
/*563406*/        /*SwitchType*/ 10, MVT::v2f64,// ->563418
/*563408*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*563410*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI642SDZrr_Int), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86SintToFp:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, GR64:{ *:[i64] }:$src2) - Complexity = 3
                    // Dst: (VCVTSI642SDZrr_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, GR64:{ *:[i64] }:$src2)
/*563418*/        0, // EndSwitchType
/*563419*/      0, /*End of Scope*/
/*563420*/    0, /*End of Scope*/
/*563421*/  /*SwitchOpcode*/ 8|128,1/*136*/, TARGET_VAL(X86ISD::SCALAR_UINT_TO_FP),// ->563561
/*563425*/    OPC_RecordChild0, // #0 = $src1
/*563426*/    OPC_Scope, 84, /*->563512*/ // 2 children in Scope
/*563428*/      OPC_MoveChild1,
/*563429*/      OPC_CheckOpcode, TARGET_VAL(ISD::LOAD),
/*563432*/      OPC_RecordMemRef,
/*563433*/      OPC_RecordNode, // #1 = 'ld' chained node
/*563434*/      OPC_CheckFoldableChainNode,
/*563435*/      OPC_RecordChild1, // #2 = $src2
/*563436*/      OPC_CheckPredicate, 4, // Predicate_unindexedload
/*563438*/      OPC_SwitchType /*2 cases */, 23, MVT::i32,// ->563464
/*563441*/        OPC_CheckPredicate, 8, // Predicate_loadi32
/*563443*/        OPC_MoveParent,
/*563444*/        OPC_CheckType, MVT::v4f32,
/*563446*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*563448*/        OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*563451*/        OPC_EmitMergeInputChains1_1,
/*563452*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUSI2SSZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                  // Src: (X86UintToFp:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[i32] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_loadi32>>) - Complexity = 25
                  // Dst: (VCVTUSI2SSZrm_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*563464*/      /*SwitchType*/ 45, MVT::i64,// ->563511
/*563466*/        OPC_CheckPredicate, 9, // Predicate_load
/*563468*/        OPC_MoveParent,
/*563469*/        OPC_SwitchType /*2 cases */, 18, MVT::v4f32,// ->563490
/*563472*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*563474*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*563477*/          OPC_EmitMergeInputChains1_1,
/*563478*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUSI642SSZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86UintToFp:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VCVTUSI642SSZrm_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, addr:{ *:[iPTR] }:$src2)
/*563490*/        /*SwitchType*/ 18, MVT::v2f64,// ->563510
/*563492*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*563494*/          OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src2 #3 #4 #5 #6 #7
/*563497*/          OPC_EmitMergeInputChains1_1,
/*563498*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUSI642SDZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 6/*#Ops*/, 0, 3, 4, 5, 6, 7, 
                    // Src: (X86UintToFp:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, (ld:{ *:[i64] } addr:{ *:[iPTR] }:$src2)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VCVTUSI642SDZrm_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, addr:{ *:[iPTR] }:$src2)
/*563510*/        0, // EndSwitchType
/*563511*/      0, // EndSwitchType
/*563512*/    /*Scope*/ 47, /*->563560*/
/*563513*/      OPC_RecordChild1, // #1 = $src2
/*563514*/      OPC_Scope, 14, /*->563530*/ // 2 children in Scope
/*563516*/        OPC_CheckChild1Type, MVT::i32,
/*563518*/        OPC_CheckType, MVT::v4f32,
/*563520*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*563522*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUSI2SSZrr_Int), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86UintToFp:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, GR32:{ *:[i32] }:$src2) - Complexity = 3
                  // Dst: (VCVTUSI2SSZrr_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, GR32:{ *:[i32] }:$src2)
/*563530*/      /*Scope*/ 28, /*->563559*/
/*563531*/        OPC_CheckChild1Type, MVT::i64,
/*563533*/        OPC_SwitchType /*2 cases */, 10, MVT::v4f32,// ->563546
/*563536*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*563538*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUSI642SSZrr_Int), 0,
                        MVT::v4f32, 2/*#Ops*/, 0, 1, 
                    // Src: (X86UintToFp:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, GR64:{ *:[i64] }:$src2) - Complexity = 3
                    // Dst: (VCVTUSI642SSZrr_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, GR64:{ *:[i64] }:$src2)
/*563546*/        /*SwitchType*/ 10, MVT::v2f64,// ->563558
/*563548*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*563550*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUSI642SDZrr_Int), 0,
                        MVT::v2f64, 2/*#Ops*/, 0, 1, 
                    // Src: (X86UintToFp:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, GR64:{ *:[i64] }:$src2) - Complexity = 3
                    // Dst: (VCVTUSI642SDZrr_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, GR64:{ *:[i64] }:$src2)
/*563558*/        0, // EndSwitchType
/*563559*/      0, /*End of Scope*/
/*563560*/    0, /*End of Scope*/
/*563561*/  /*SwitchOpcode*/ 76, TARGET_VAL(X86ISD::STRICT_VFPEXT),// ->563640
/*563564*/    OPC_RecordNode, // #0 = 'X86strict_vfpext' chained node
/*563565*/    OPC_Scope, 33, /*->563600*/ // 2 children in Scope
/*563567*/      OPC_MoveChild1,
/*563568*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*563571*/      OPC_RecordMemRef,
/*563572*/      OPC_RecordNode, // #1 = 'X86VBroadcastld' chained node
/*563573*/      OPC_CheckFoldableChainNode,
/*563574*/      OPC_RecordChild1, // #2 = $src
/*563575*/      OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*563577*/      OPC_MoveParent,
/*563578*/      OPC_CheckType, MVT::v2f64,
/*563580*/      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*563582*/      OPC_CheckComplexPat, /*CP*/0, /*#*/2, // selectAddr:$src #3 #4 #5 #6 #7
/*563585*/      OPC_EmitMergeInputChains, 2, 0, 1, 
/*563589*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2f64, 5/*#Ops*/, 3, 4, 5, 6, 7, 
                // Src: (X86strict_vfpext:{ *:[v2f64] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                // Dst: (VCVTPS2PDZ128rmb:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*563600*/    /*Scope*/ 38, /*->563639*/
/*563601*/      OPC_RecordChild1, // #1 = $src
/*563602*/      OPC_CheckType, MVT::v2f64,
/*563604*/      OPC_Scope, 10, /*->563616*/ // 3 children in Scope
/*563606*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*563608*/        OPC_EmitMergeInputChains1_0,
/*563609*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PDrr), 0|OPFL_Chain,
                      MVT::v2f64, 1/*#Ops*/, 1, 
                  // Src: (X86strict_vfpext:{ *:[v2f64] } VR128:{ *:[v4f32] }:$src) - Complexity = 3
                  // Dst: (VCVTPS2PDrr:{ *:[v2f64] } VR128:{ *:[v4f32] }:$src)
/*563616*/      /*Scope*/ 10, /*->563627*/
/*563617*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*563619*/        OPC_EmitMergeInputChains1_0,
/*563620*/        OPC_MorphNodeTo1, TARGET_VAL(X86::CVTPS2PDrr), 0|OPFL_Chain,
                      MVT::v2f64, 1/*#Ops*/, 1, 
                  // Src: (X86strict_vfpext:{ *:[v2f64] } VR128:{ *:[v4f32] }:$src) - Complexity = 3
                  // Dst: (CVTPS2PDrr:{ *:[v2f64] } VR128:{ *:[v4f32] }:$src)
/*563627*/      /*Scope*/ 10, /*->563638*/
/*563628*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*563630*/        OPC_EmitMergeInputChains1_0,
/*563631*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PDZ128rr), 0|OPFL_Chain,
                      MVT::v2f64, 1/*#Ops*/, 1, 
                  // Src: (X86strict_vfpext:{ *:[v2f64] } VR128X:{ *:[v4f32] }:$src) - Complexity = 3
                  // Dst: (VCVTPS2PDZ128rr:{ *:[v2f64] } VR128X:{ *:[v4f32] }:$src)
/*563638*/      0, /*End of Scope*/
/*563639*/    0, /*End of Scope*/
/*563640*/  /*SwitchOpcode*/ 68, TARGET_VAL(X86ISD::VFPEXT),// ->563711
/*563643*/    OPC_Scope, 29, /*->563674*/ // 2 children in Scope
/*563645*/      OPC_MoveChild0,
/*563646*/      OPC_CheckOpcode, TARGET_VAL(X86ISD::VBROADCAST_LOAD),
/*563649*/      OPC_RecordMemRef,
/*563650*/      OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*563651*/      OPC_RecordChild1, // #1 = $src
/*563652*/      OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*563654*/      OPC_MoveParent,
/*563655*/      OPC_CheckType, MVT::v2f64,
/*563657*/      OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*563659*/      OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*563662*/      OPC_EmitMergeInputChains1_0,
/*563663*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PDZ128rmb), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                // Src: (X86vfpext:{ *:[v2f64] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                // Dst: (VCVTPS2PDZ128rmb:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*563674*/    /*Scope*/ 35, /*->563710*/
/*563675*/      OPC_RecordChild0, // #0 = $src
/*563676*/      OPC_CheckType, MVT::v2f64,
/*563678*/      OPC_Scope, 9, /*->563689*/ // 3 children in Scope
/*563680*/        OPC_CheckPatternPredicate, 0, // (Subtarget->hasAVX()) && (!Subtarget->hasVLX())
/*563682*/        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)
/*563689*/      /*Scope*/ 9, /*->563699*/
/*563690*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*563692*/        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)
/*563699*/      /*Scope*/ 9, /*->563709*/
/*563700*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*563702*/        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)
/*563709*/      0, /*End of Scope*/
/*563710*/    0, /*End of Scope*/
/*563711*/  /*SwitchOpcode*/ 91|128,2/*347*/, TARGET_VAL(X86ISD::RSQRT14),// ->564062
/*563715*/    OPC_Scope, 17|128,2/*273*/, /*->563991*/ // 2 children in Scope
/*563718*/      OPC_MoveChild0,
/*563719*/      OPC_SwitchOpcode /*2 cases */, 124, TARGET_VAL(ISD::LOAD),// ->563847
/*563723*/        OPC_RecordMemRef,
/*563724*/        OPC_RecordNode, // #0 = 'ld' chained node
/*563725*/        OPC_RecordChild1, // #1 = $src
/*563726*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*563728*/        OPC_CheckPredicate, 9, // Predicate_load
/*563730*/        OPC_MoveParent,
/*563731*/        OPC_SwitchType /*6 cases */, 17, MVT::v16f32,// ->563751
/*563734*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*563736*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*563739*/          OPC_EmitMergeInputChains1_0,
/*563740*/          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>>) - Complexity = 25
                    // Dst: (VRSQRT14PSZm:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)
/*563751*/        /*SwitchType*/ 17, MVT::v8f64,// ->563770
/*563753*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*563755*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*563758*/          OPC_EmitMergeInputChains1_0,
/*563759*/          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>>) - Complexity = 25
                    // Dst: (VRSQRT14PDZm:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*563770*/        /*SwitchType*/ 17, MVT::v4f32,// ->563789
/*563772*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*563774*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*563777*/          OPC_EmitMergeInputChains1_0,
/*563778*/          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>>) - Complexity = 25
                    // Dst: (VRSQRT14PSZ128m:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*563789*/        /*SwitchType*/ 17, MVT::v8f32,// ->563808
/*563791*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*563793*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*563796*/          OPC_EmitMergeInputChains1_0,
/*563797*/          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>>) - Complexity = 25
                    // Dst: (VRSQRT14PSZ256m:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*563808*/        /*SwitchType*/ 17, MVT::v2f64,// ->563827
/*563810*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*563812*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*563815*/          OPC_EmitMergeInputChains1_0,
/*563816*/          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>>) - Complexity = 25
                    // Dst: (VRSQRT14PDZ128m:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*563827*/        /*SwitchType*/ 17, MVT::v4f64,// ->563846
/*563829*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*563831*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*563834*/          OPC_EmitMergeInputChains1_0,
/*563835*/          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>>) - Complexity = 25
                    // Dst: (VRSQRT14PDZ256m:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*563846*/        0, // EndSwitchType
/*563847*/      /*SwitchOpcode*/ 11|128,1/*139*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->563990
/*563851*/        OPC_RecordMemRef,
/*563852*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*563853*/        OPC_RecordChild1, // #1 = $src
/*563854*/        OPC_Scope, 22, /*->563878*/ // 4 children in Scope
/*563856*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*563858*/          OPC_MoveParent,
/*563859*/          OPC_CheckType, MVT::v16f32,
/*563861*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*563863*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*563866*/          OPC_EmitMergeInputChains1_0,
/*563867*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14PSZmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86rsqrt14:{ *:[v16f32] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                    // Dst: (VRSQRT14PSZmb:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)
/*563878*/        /*Scope*/ 22, /*->563901*/
/*563879*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*563881*/          OPC_MoveParent,
/*563882*/          OPC_CheckType, MVT::v8f64,
/*563884*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*563886*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*563889*/          OPC_EmitMergeInputChains1_0,
/*563890*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14PDZmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86rsqrt14:{ *:[v8f64] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                    // Dst: (VRSQRT14PDZmb:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*563901*/        /*Scope*/ 43, /*->563945*/
/*563902*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*563904*/          OPC_MoveParent,
/*563905*/          OPC_SwitchType /*2 cases */, 17, MVT::v4f32,// ->563925
/*563908*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*563910*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*563913*/            OPC_EmitMergeInputChains1_0,
/*563914*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14PSZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86rsqrt14:{ *:[v4f32] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VRSQRT14PSZ128mb:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*563925*/          /*SwitchType*/ 17, MVT::v8f32,// ->563944
/*563927*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*563929*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*563932*/            OPC_EmitMergeInputChains1_0,
/*563933*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14PSZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86rsqrt14:{ *:[v8f32] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VRSQRT14PSZ256mb:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*563944*/          0, // EndSwitchType
/*563945*/        /*Scope*/ 43, /*->563989*/
/*563946*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*563948*/          OPC_MoveParent,
/*563949*/          OPC_SwitchType /*2 cases */, 17, MVT::v2f64,// ->563969
/*563952*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*563954*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*563957*/            OPC_EmitMergeInputChains1_0,
/*563958*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14PDZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86rsqrt14:{ *:[v2f64] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VRSQRT14PDZ128mb:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*563969*/          /*SwitchType*/ 17, MVT::v4f64,// ->563988
/*563971*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*563973*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*563976*/            OPC_EmitMergeInputChains1_0,
/*563977*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT14PDZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86rsqrt14:{ *:[v4f64] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VRSQRT14PDZ256mb:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*563988*/          0, // EndSwitchType
/*563989*/        0, /*End of Scope*/
/*563990*/      0, // EndSwitchOpcode
/*563991*/    /*Scope*/ 69, /*->564061*/
/*563992*/      OPC_RecordChild0, // #0 = $src
/*563993*/      OPC_SwitchType /*6 cases */, 9, MVT::v16f32,// ->564005
/*563996*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*563998*/        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)
/*564005*/      /*SwitchType*/ 9, MVT::v8f64,// ->564016
/*564007*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*564009*/        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)
/*564016*/      /*SwitchType*/ 9, MVT::v4f32,// ->564027
/*564018*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*564020*/        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)
/*564027*/      /*SwitchType*/ 9, MVT::v8f32,// ->564038
/*564029*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*564031*/        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)
/*564038*/      /*SwitchType*/ 9, MVT::v2f64,// ->564049
/*564040*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*564042*/        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)
/*564049*/      /*SwitchType*/ 9, MVT::v4f64,// ->564060
/*564051*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*564053*/        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)
/*564060*/      0, // EndSwitchType
/*564061*/    0, /*End of Scope*/
/*564062*/  /*SwitchOpcode*/ 91|128,2/*347*/, TARGET_VAL(X86ISD::RCP14),// ->564413
/*564066*/    OPC_Scope, 17|128,2/*273*/, /*->564342*/ // 2 children in Scope
/*564069*/      OPC_MoveChild0,
/*564070*/      OPC_SwitchOpcode /*2 cases */, 124, TARGET_VAL(ISD::LOAD),// ->564198
/*564074*/        OPC_RecordMemRef,
/*564075*/        OPC_RecordNode, // #0 = 'ld' chained node
/*564076*/        OPC_RecordChild1, // #1 = $src
/*564077*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*564079*/        OPC_CheckPredicate, 9, // Predicate_load
/*564081*/        OPC_MoveParent,
/*564082*/        OPC_SwitchType /*6 cases */, 17, MVT::v16f32,// ->564102
/*564085*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*564087*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*564090*/          OPC_EmitMergeInputChains1_0,
/*564091*/          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>>) - Complexity = 25
                    // Dst: (VRCP14PSZm:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)
/*564102*/        /*SwitchType*/ 17, MVT::v8f64,// ->564121
/*564104*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*564106*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*564109*/          OPC_EmitMergeInputChains1_0,
/*564110*/          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>>) - Complexity = 25
                    // Dst: (VRCP14PDZm:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*564121*/        /*SwitchType*/ 17, MVT::v4f32,// ->564140
/*564123*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*564125*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*564128*/          OPC_EmitMergeInputChains1_0,
/*564129*/          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>>) - Complexity = 25
                    // Dst: (VRCP14PSZ128m:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*564140*/        /*SwitchType*/ 17, MVT::v8f32,// ->564159
/*564142*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*564144*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*564147*/          OPC_EmitMergeInputChains1_0,
/*564148*/          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>>) - Complexity = 25
                    // Dst: (VRCP14PSZ256m:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*564159*/        /*SwitchType*/ 17, MVT::v2f64,// ->564178
/*564161*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*564163*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*564166*/          OPC_EmitMergeInputChains1_0,
/*564167*/          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>>) - Complexity = 25
                    // Dst: (VRCP14PDZ128m:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*564178*/        /*SwitchType*/ 17, MVT::v4f64,// ->564197
/*564180*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*564182*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*564185*/          OPC_EmitMergeInputChains1_0,
/*564186*/          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>>) - Complexity = 25
                    // Dst: (VRCP14PDZ256m:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*564197*/        0, // EndSwitchType
/*564198*/      /*SwitchOpcode*/ 11|128,1/*139*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->564341
/*564202*/        OPC_RecordMemRef,
/*564203*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*564204*/        OPC_RecordChild1, // #1 = $src
/*564205*/        OPC_Scope, 22, /*->564229*/ // 4 children in Scope
/*564207*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*564209*/          OPC_MoveParent,
/*564210*/          OPC_CheckType, MVT::v16f32,
/*564212*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*564214*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*564217*/          OPC_EmitMergeInputChains1_0,
/*564218*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14PSZmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86rcp14:{ *:[v16f32] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                    // Dst: (VRCP14PSZmb:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)
/*564229*/        /*Scope*/ 22, /*->564252*/
/*564230*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*564232*/          OPC_MoveParent,
/*564233*/          OPC_CheckType, MVT::v8f64,
/*564235*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*564237*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*564240*/          OPC_EmitMergeInputChains1_0,
/*564241*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14PDZmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86rcp14:{ *:[v8f64] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                    // Dst: (VRCP14PDZmb:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*564252*/        /*Scope*/ 43, /*->564296*/
/*564253*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*564255*/          OPC_MoveParent,
/*564256*/          OPC_SwitchType /*2 cases */, 17, MVT::v4f32,// ->564276
/*564259*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*564261*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*564264*/            OPC_EmitMergeInputChains1_0,
/*564265*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14PSZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86rcp14:{ *:[v4f32] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VRCP14PSZ128mb:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*564276*/          /*SwitchType*/ 17, MVT::v8f32,// ->564295
/*564278*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*564280*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*564283*/            OPC_EmitMergeInputChains1_0,
/*564284*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14PSZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86rcp14:{ *:[v8f32] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VRCP14PSZ256mb:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*564295*/          0, // EndSwitchType
/*564296*/        /*Scope*/ 43, /*->564340*/
/*564297*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*564299*/          OPC_MoveParent,
/*564300*/          OPC_SwitchType /*2 cases */, 17, MVT::v2f64,// ->564320
/*564303*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*564305*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*564308*/            OPC_EmitMergeInputChains1_0,
/*564309*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14PDZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86rcp14:{ *:[v2f64] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VRCP14PDZ128mb:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*564320*/          /*SwitchType*/ 17, MVT::v4f64,// ->564339
/*564322*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*564324*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*564327*/            OPC_EmitMergeInputChains1_0,
/*564328*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP14PDZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86rcp14:{ *:[v4f64] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VRCP14PDZ256mb:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*564339*/          0, // EndSwitchType
/*564340*/        0, /*End of Scope*/
/*564341*/      0, // EndSwitchOpcode
/*564342*/    /*Scope*/ 69, /*->564412*/
/*564343*/      OPC_RecordChild0, // #0 = $src
/*564344*/      OPC_SwitchType /*6 cases */, 9, MVT::v16f32,// ->564356
/*564347*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*564349*/        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)
/*564356*/      /*SwitchType*/ 9, MVT::v8f64,// ->564367
/*564358*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*564360*/        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)
/*564367*/      /*SwitchType*/ 9, MVT::v4f32,// ->564378
/*564369*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*564371*/        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)
/*564378*/      /*SwitchType*/ 9, MVT::v8f32,// ->564389
/*564380*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*564382*/        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)
/*564389*/      /*SwitchType*/ 9, MVT::v2f64,// ->564400
/*564391*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*564393*/        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)
/*564400*/      /*SwitchType*/ 9, MVT::v4f64,// ->564411
/*564402*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*564404*/        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)
/*564411*/      0, // EndSwitchType
/*564412*/    0, /*End of Scope*/
/*564413*/  /*SwitchOpcode*/ 9|128,1/*137*/, TARGET_VAL(X86ISD::RSQRT28),// ->564554
/*564417*/    OPC_Scope, 108, /*->564527*/ // 2 children in Scope
/*564419*/      OPC_MoveChild0,
/*564420*/      OPC_SwitchOpcode /*2 cases */, 48, TARGET_VAL(ISD::LOAD),// ->564472
/*564424*/        OPC_RecordMemRef,
/*564425*/        OPC_RecordNode, // #0 = 'ld' chained node
/*564426*/        OPC_RecordChild1, // #1 = $src
/*564427*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*564429*/        OPC_CheckPredicate, 9, // Predicate_load
/*564431*/        OPC_MoveParent,
/*564432*/        OPC_SwitchType /*2 cases */, 17, MVT::v16f32,// ->564452
/*564435*/          OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*564437*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*564440*/          OPC_EmitMergeInputChains1_0,
/*564441*/          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>>) - Complexity = 25
                    // Dst: (VRSQRT28PSZm:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)
/*564452*/        /*SwitchType*/ 17, MVT::v8f64,// ->564471
/*564454*/          OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*564456*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*564459*/          OPC_EmitMergeInputChains1_0,
/*564460*/          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>>) - Complexity = 25
                    // Dst: (VRSQRT28PDZm:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*564471*/        0, // EndSwitchType
/*564472*/      /*SwitchOpcode*/ 51, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->564526
/*564475*/        OPC_RecordMemRef,
/*564476*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*564477*/        OPC_RecordChild1, // #1 = $src
/*564478*/        OPC_Scope, 22, /*->564502*/ // 2 children in Scope
/*564480*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*564482*/          OPC_MoveParent,
/*564483*/          OPC_CheckType, MVT::v16f32,
/*564485*/          OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*564487*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*564490*/          OPC_EmitMergeInputChains1_0,
/*564491*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT28PSZmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86rsqrt28:{ *:[v16f32] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                    // Dst: (VRSQRT28PSZmb:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)
/*564502*/        /*Scope*/ 22, /*->564525*/
/*564503*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*564505*/          OPC_MoveParent,
/*564506*/          OPC_CheckType, MVT::v8f64,
/*564508*/          OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*564510*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*564513*/          OPC_EmitMergeInputChains1_0,
/*564514*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT28PDZmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86rsqrt28:{ *:[v8f64] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                    // Dst: (VRSQRT28PDZmb:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*564525*/        0, /*End of Scope*/
/*564526*/      0, // EndSwitchOpcode
/*564527*/    /*Scope*/ 25, /*->564553*/
/*564528*/      OPC_RecordChild0, // #0 = $src
/*564529*/      OPC_SwitchType /*2 cases */, 9, MVT::v16f32,// ->564541
/*564532*/        OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*564534*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT28PSZr), 0,
                      MVT::v16f32, 1/*#Ops*/, 0, 
                  // Src: (X86rsqrt28:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src) - Complexity = 3
                  // Dst: (VRSQRT28PSZr:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src)
/*564541*/      /*SwitchType*/ 9, MVT::v8f64,// ->564552
/*564543*/        OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*564545*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT28PDZr), 0,
                      MVT::v8f64, 1/*#Ops*/, 0, 
                  // Src: (X86rsqrt28:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src) - Complexity = 3
                  // Dst: (VRSQRT28PDZr:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src)
/*564552*/      0, // EndSwitchType
/*564553*/    0, /*End of Scope*/
/*564554*/  /*SwitchOpcode*/ 9|128,1/*137*/, TARGET_VAL(X86ISD::RCP28),// ->564695
/*564558*/    OPC_Scope, 108, /*->564668*/ // 2 children in Scope
/*564560*/      OPC_MoveChild0,
/*564561*/      OPC_SwitchOpcode /*2 cases */, 48, TARGET_VAL(ISD::LOAD),// ->564613
/*564565*/        OPC_RecordMemRef,
/*564566*/        OPC_RecordNode, // #0 = 'ld' chained node
/*564567*/        OPC_RecordChild1, // #1 = $src
/*564568*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*564570*/        OPC_CheckPredicate, 9, // Predicate_load
/*564572*/        OPC_MoveParent,
/*564573*/        OPC_SwitchType /*2 cases */, 17, MVT::v16f32,// ->564593
/*564576*/          OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*564578*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*564581*/          OPC_EmitMergeInputChains1_0,
/*564582*/          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>>) - Complexity = 25
                    // Dst: (VRCP28PSZm:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)
/*564593*/        /*SwitchType*/ 17, MVT::v8f64,// ->564612
/*564595*/          OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*564597*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*564600*/          OPC_EmitMergeInputChains1_0,
/*564601*/          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>>) - Complexity = 25
                    // Dst: (VRCP28PDZm:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*564612*/        0, // EndSwitchType
/*564613*/      /*SwitchOpcode*/ 51, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->564667
/*564616*/        OPC_RecordMemRef,
/*564617*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*564618*/        OPC_RecordChild1, // #1 = $src
/*564619*/        OPC_Scope, 22, /*->564643*/ // 2 children in Scope
/*564621*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*564623*/          OPC_MoveParent,
/*564624*/          OPC_CheckType, MVT::v16f32,
/*564626*/          OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*564628*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*564631*/          OPC_EmitMergeInputChains1_0,
/*564632*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP28PSZmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86rcp28:{ *:[v16f32] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                    // Dst: (VRCP28PSZmb:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)
/*564643*/        /*Scope*/ 22, /*->564666*/
/*564644*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*564646*/          OPC_MoveParent,
/*564647*/          OPC_CheckType, MVT::v8f64,
/*564649*/          OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*564651*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*564654*/          OPC_EmitMergeInputChains1_0,
/*564655*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP28PDZmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86rcp28:{ *:[v8f64] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                    // Dst: (VRCP28PDZmb:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*564666*/        0, /*End of Scope*/
/*564667*/      0, // EndSwitchOpcode
/*564668*/    /*Scope*/ 25, /*->564694*/
/*564669*/      OPC_RecordChild0, // #0 = $src
/*564670*/      OPC_SwitchType /*2 cases */, 9, MVT::v16f32,// ->564682
/*564673*/        OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*564675*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP28PSZr), 0,
                      MVT::v16f32, 1/*#Ops*/, 0, 
                  // Src: (X86rcp28:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src) - Complexity = 3
                  // Dst: (VRCP28PSZr:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src)
/*564682*/      /*SwitchType*/ 9, MVT::v8f64,// ->564693
/*564684*/        OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*564686*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP28PDZr), 0,
                      MVT::v8f64, 1/*#Ops*/, 0, 
                  // Src: (X86rcp28:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src) - Complexity = 3
                  // Dst: (VRCP28PDZr:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src)
/*564693*/      0, // EndSwitchType
/*564694*/    0, /*End of Scope*/
/*564695*/  /*SwitchOpcode*/ 9|128,1/*137*/, TARGET_VAL(X86ISD::EXP2),// ->564836
/*564699*/    OPC_Scope, 108, /*->564809*/ // 2 children in Scope
/*564701*/      OPC_MoveChild0,
/*564702*/      OPC_SwitchOpcode /*2 cases */, 48, TARGET_VAL(ISD::LOAD),// ->564754
/*564706*/        OPC_RecordMemRef,
/*564707*/        OPC_RecordNode, // #0 = 'ld' chained node
/*564708*/        OPC_RecordChild1, // #1 = $src
/*564709*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*564711*/        OPC_CheckPredicate, 9, // Predicate_load
/*564713*/        OPC_MoveParent,
/*564714*/        OPC_SwitchType /*2 cases */, 17, MVT::v16f32,// ->564734
/*564717*/          OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*564719*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*564722*/          OPC_EmitMergeInputChains1_0,
/*564723*/          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>>) - Complexity = 25
                    // Dst: (VEXP2PSZm:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)
/*564734*/        /*SwitchType*/ 17, MVT::v8f64,// ->564753
/*564736*/          OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*564738*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*564741*/          OPC_EmitMergeInputChains1_0,
/*564742*/          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>>) - Complexity = 25
                    // Dst: (VEXP2PDZm:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*564753*/        0, // EndSwitchType
/*564754*/      /*SwitchOpcode*/ 51, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->564808
/*564757*/        OPC_RecordMemRef,
/*564758*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*564759*/        OPC_RecordChild1, // #1 = $src
/*564760*/        OPC_Scope, 22, /*->564784*/ // 2 children in Scope
/*564762*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*564764*/          OPC_MoveParent,
/*564765*/          OPC_CheckType, MVT::v16f32,
/*564767*/          OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*564769*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*564772*/          OPC_EmitMergeInputChains1_0,
/*564773*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VEXP2PSZmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86exp2:{ *:[v16f32] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                    // Dst: (VEXP2PSZmb:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)
/*564784*/        /*Scope*/ 22, /*->564807*/
/*564785*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*564787*/          OPC_MoveParent,
/*564788*/          OPC_CheckType, MVT::v8f64,
/*564790*/          OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*564792*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*564795*/          OPC_EmitMergeInputChains1_0,
/*564796*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VEXP2PDZmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86exp2:{ *:[v8f64] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                    // Dst: (VEXP2PDZmb:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*564807*/        0, /*End of Scope*/
/*564808*/      0, // EndSwitchOpcode
/*564809*/    /*Scope*/ 25, /*->564835*/
/*564810*/      OPC_RecordChild0, // #0 = $src
/*564811*/      OPC_SwitchType /*2 cases */, 9, MVT::v16f32,// ->564823
/*564814*/        OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*564816*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VEXP2PSZr), 0,
                      MVT::v16f32, 1/*#Ops*/, 0, 
                  // Src: (X86exp2:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src) - Complexity = 3
                  // Dst: (VEXP2PSZr:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src)
/*564823*/      /*SwitchType*/ 9, MVT::v8f64,// ->564834
/*564825*/        OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*564827*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VEXP2PDZr), 0,
                      MVT::v8f64, 1/*#Ops*/, 0, 
                  // Src: (X86exp2:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src) - Complexity = 3
                  // Dst: (VEXP2PDZr:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src)
/*564834*/      0, // EndSwitchType
/*564835*/    0, /*End of Scope*/
/*564836*/  /*SwitchOpcode*/ 91|128,2/*347*/, TARGET_VAL(X86ISD::FGETEXP),// ->565187
/*564840*/    OPC_Scope, 17|128,2/*273*/, /*->565116*/ // 2 children in Scope
/*564843*/      OPC_MoveChild0,
/*564844*/      OPC_SwitchOpcode /*2 cases */, 124, TARGET_VAL(ISD::LOAD),// ->564972
/*564848*/        OPC_RecordMemRef,
/*564849*/        OPC_RecordNode, // #0 = 'ld' chained node
/*564850*/        OPC_RecordChild1, // #1 = $src
/*564851*/        OPC_CheckPredicate, 4, // Predicate_unindexedload
/*564853*/        OPC_CheckPredicate, 9, // Predicate_load
/*564855*/        OPC_MoveParent,
/*564856*/        OPC_SwitchType /*6 cases */, 17, MVT::v16f32,// ->564876
/*564859*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*564861*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*564864*/          OPC_EmitMergeInputChains1_0,
/*564865*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPSZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86fgetexp:{ *:[v16f32] } (ld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VGETEXPPSZm:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)
/*564876*/        /*SwitchType*/ 17, MVT::v8f64,// ->564895
/*564878*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*564880*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*564883*/          OPC_EmitMergeInputChains1_0,
/*564884*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPDZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86fgetexp:{ *:[v8f64] } (ld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VGETEXPPDZm:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*564895*/        /*SwitchType*/ 17, MVT::v4f32,// ->564914
/*564897*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*564899*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*564902*/          OPC_EmitMergeInputChains1_0,
/*564903*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPSZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86fgetexp:{ *:[v4f32] } (ld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VGETEXPPSZ128m:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*564914*/        /*SwitchType*/ 17, MVT::v8f32,// ->564933
/*564916*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*564918*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*564921*/          OPC_EmitMergeInputChains1_0,
/*564922*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPSZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86fgetexp:{ *:[v8f32] } (ld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VGETEXPPSZ256m:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*564933*/        /*SwitchType*/ 17, MVT::v2f64,// ->564952
/*564935*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*564937*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*564940*/          OPC_EmitMergeInputChains1_0,
/*564941*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPDZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86fgetexp:{ *:[v2f64] } (ld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VGETEXPPDZ128m:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*564952*/        /*SwitchType*/ 17, MVT::v4f64,// ->564971
/*564954*/          OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*564956*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*564959*/          OPC_EmitMergeInputChains1_0,
/*564960*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPDZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86fgetexp:{ *:[v4f64] } (ld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VGETEXPPDZ256m:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*564971*/        0, // EndSwitchType
/*564972*/      /*SwitchOpcode*/ 11|128,1/*139*/, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->565115
/*564976*/        OPC_RecordMemRef,
/*564977*/        OPC_RecordNode, // #0 = 'X86VBroadcastld' chained node
/*564978*/        OPC_RecordChild1, // #1 = $src
/*564979*/        OPC_Scope, 22, /*->565003*/ // 4 children in Scope
/*564981*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*564983*/          OPC_MoveParent,
/*564984*/          OPC_CheckType, MVT::v16f32,
/*564986*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*564988*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*564991*/          OPC_EmitMergeInputChains1_0,
/*564992*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPSZmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86fgetexp:{ *:[v16f32] } (X86VBroadcastld:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                    // Dst: (VGETEXPPSZmb:{ *:[v16f32] } addr:{ *:[iPTR] }:$src)
/*565003*/        /*Scope*/ 22, /*->565026*/
/*565004*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*565006*/          OPC_MoveParent,
/*565007*/          OPC_CheckType, MVT::v8f64,
/*565009*/          OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*565011*/          OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*565014*/          OPC_EmitMergeInputChains1_0,
/*565015*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPDZmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                    // Src: (X86fgetexp:{ *:[v8f64] } (X86VBroadcastld:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                    // Dst: (VGETEXPPDZmb:{ *:[v8f64] } addr:{ *:[iPTR] }:$src)
/*565026*/        /*Scope*/ 43, /*->565070*/
/*565027*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*565029*/          OPC_MoveParent,
/*565030*/          OPC_SwitchType /*2 cases */, 17, MVT::v4f32,// ->565050
/*565033*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*565035*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*565038*/            OPC_EmitMergeInputChains1_0,
/*565039*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPSZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86fgetexp:{ *:[v4f32] } (X86VBroadcastld:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VGETEXPPSZ128mb:{ *:[v4f32] } addr:{ *:[iPTR] }:$src)
/*565050*/          /*SwitchType*/ 17, MVT::v8f32,// ->565069
/*565052*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*565054*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*565057*/            OPC_EmitMergeInputChains1_0,
/*565058*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPSZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v8f32, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86fgetexp:{ *:[v8f32] } (X86VBroadcastld:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                      // Dst: (VGETEXPPSZ256mb:{ *:[v8f32] } addr:{ *:[iPTR] }:$src)
/*565069*/          0, // EndSwitchType
/*565070*/        /*Scope*/ 43, /*->565114*/
/*565071*/          OPC_CheckPredicate, 49, // Predicate_X86VBroadcastld64
/*565073*/          OPC_MoveParent,
/*565074*/          OPC_SwitchType /*2 cases */, 17, MVT::v2f64,// ->565094
/*565077*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*565079*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*565082*/            OPC_EmitMergeInputChains1_0,
/*565083*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPDZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v2f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86fgetexp:{ *:[v2f64] } (X86VBroadcastld:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VGETEXPPDZ128mb:{ *:[v2f64] } addr:{ *:[iPTR] }:$src)
/*565094*/          /*SwitchType*/ 17, MVT::v4f64,// ->565113
/*565096*/            OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*565098*/            OPC_CheckComplexPat, /*CP*/0, /*#*/1, // selectAddr:$src #2 #3 #4 #5 #6
/*565101*/            OPC_EmitMergeInputChains1_0,
/*565102*/            OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPDZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                          MVT::v4f64, 5/*#Ops*/, 2, 3, 4, 5, 6, 
                      // Src: (X86fgetexp:{ *:[v4f64] } (X86VBroadcastld:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)<<P:Predicate_X86VBroadcastld64>>) - Complexity = 25
                      // Dst: (VGETEXPPDZ256mb:{ *:[v4f64] } addr:{ *:[iPTR] }:$src)
/*565113*/          0, // EndSwitchType
/*565114*/        0, /*End of Scope*/
/*565115*/      0, // EndSwitchOpcode
/*565116*/    /*Scope*/ 69, /*->565186*/
/*565117*/      OPC_RecordChild0, // #0 = $src
/*565118*/      OPC_SwitchType /*6 cases */, 9, MVT::v16f32,// ->565130
/*565121*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*565123*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPSZr), 0,
                      MVT::v16f32, 1/*#Ops*/, 0, 
                  // Src: (X86fgetexp:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src) - Complexity = 3
                  // Dst: (VGETEXPPSZr:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src)
/*565130*/      /*SwitchType*/ 9, MVT::v8f64,// ->565141
/*565132*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*565134*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPDZr), 0,
                      MVT::v8f64, 1/*#Ops*/, 0, 
                  // Src: (X86fgetexp:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src) - Complexity = 3
                  // Dst: (VGETEXPPDZr:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src)
/*565141*/      /*SwitchType*/ 9, MVT::v4f32,// ->565152
/*565143*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*565145*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPSZ128r), 0,
                      MVT::v4f32, 1/*#Ops*/, 0, 
                  // Src: (X86fgetexp:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src) - Complexity = 3
                  // Dst: (VGETEXPPSZ128r:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src)
/*565152*/      /*SwitchType*/ 9, MVT::v8f32,// ->565163
/*565154*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*565156*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPSZ256r), 0,
                      MVT::v8f32, 1/*#Ops*/, 0, 
                  // Src: (X86fgetexp:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src) - Complexity = 3
                  // Dst: (VGETEXPPSZ256r:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src)
/*565163*/      /*SwitchType*/ 9, MVT::v2f64,// ->565174
/*565165*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*565167*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPDZ128r), 0,
                      MVT::v2f64, 1/*#Ops*/, 0, 
                  // Src: (X86fgetexp:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src) - Complexity = 3
                  // Dst: (VGETEXPPDZ128r:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src)
/*565174*/      /*SwitchType*/ 9, MVT::v4f64,// ->565185
/*565176*/        OPC_CheckPatternPredicate, 5, // (Subtarget->hasVLX())
/*565178*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPDZ256r), 0,
                      MVT::v4f64, 1/*#Ops*/, 0, 
                  // Src: (X86fgetexp:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src) - Complexity = 3
                  // Dst: (VGETEXPPDZ256r:{ *:[v4f64] } VR256X:{ *:[v4f64] }:$src)
/*565185*/      0, // EndSwitchType
/*565186*/    0, /*End of Scope*/
/*565187*/  /*SwitchOpcode*/ 12|128,2/*268*/, TARGET_VAL(X86ISD::DPBF16PS),// ->565459
/*565191*/    OPC_RecordChild0, // #0 = $src1
/*565192*/    OPC_RecordChild1, // #1 = $src2
/*565193*/    OPC_Scope, 87, /*->565282*/ // 3 children in Scope
/*565195*/      OPC_CheckChild1Type, MVT::v16i32,
/*565197*/      OPC_Scope, 67, /*->565266*/ // 2 children in Scope
/*565199*/        OPC_MoveChild2,
/*565200*/        OPC_SwitchOpcode /*2 cases */, 30, TARGET_VAL(ISD::LOAD),// ->565234
/*565204*/          OPC_RecordMemRef,
/*565205*/          OPC_RecordNode, // #2 = 'ld' chained node
/*565206*/          OPC_CheckFoldableChainNode,
/*565207*/          OPC_RecordChild1, // #3 = $src3
/*565208*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*565210*/          OPC_CheckPredicate, 9, // Predicate_load
/*565212*/          OPC_MoveParent,
/*565213*/          OPC_CheckType, MVT::v16f32,
/*565215*/          OPC_CheckPatternPredicate, 183, // (Subtarget->hasBF16())
/*565217*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*565220*/          OPC_EmitMergeInputChains1_2,
/*565221*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VDPBF16PSZm), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                    // Src: (X86dpbf16ps:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16i32] }:$src2, (ld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VDPBF16PSZm:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*565234*/        /*SwitchOpcode*/ 28, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->565265
/*565237*/          OPC_RecordMemRef,
/*565238*/          OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*565239*/          OPC_CheckFoldableChainNode,
/*565240*/          OPC_RecordChild1, // #3 = $src3
/*565241*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*565243*/          OPC_MoveParent,
/*565244*/          OPC_CheckType, MVT::v16f32,
/*565246*/          OPC_CheckPatternPredicate, 183, // (Subtarget->hasBF16())
/*565248*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*565251*/          OPC_EmitMergeInputChains1_2,
/*565252*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VDPBF16PSZmb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v16f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                    // Src: (X86dpbf16ps:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16i32] }:$src2, (X86VBroadcastld:{ *:[v16i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                    // Dst: (VDPBF16PSZmb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*565265*/        0, // EndSwitchOpcode
/*565266*/      /*Scope*/ 14, /*->565281*/
/*565267*/        OPC_RecordChild2, // #2 = $src3
/*565268*/        OPC_CheckType, MVT::v16f32,
/*565270*/        OPC_CheckPatternPredicate, 183, // (Subtarget->hasBF16())
/*565272*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VDPBF16PSZr), 0,
                      MVT::v16f32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86dpbf16ps:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3) - Complexity = 3
                  // Dst: (VDPBF16PSZr:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16i32] }:$src2, VR512:{ *:[v16i32] }:$src3)
/*565281*/      0, /*End of Scope*/
/*565282*/    /*Scope*/ 87, /*->565370*/
/*565283*/      OPC_CheckChild1Type, MVT::v8i32,
/*565285*/      OPC_Scope, 67, /*->565354*/ // 2 children in Scope
/*565287*/        OPC_MoveChild2,
/*565288*/        OPC_SwitchOpcode /*2 cases */, 30, TARGET_VAL(ISD::LOAD),// ->565322
/*565292*/          OPC_RecordMemRef,
/*565293*/          OPC_RecordNode, // #2 = 'ld' chained node
/*565294*/          OPC_CheckFoldableChainNode,
/*565295*/          OPC_RecordChild1, // #3 = $src3
/*565296*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*565298*/          OPC_CheckPredicate, 9, // Predicate_load
/*565300*/          OPC_MoveParent,
/*565301*/          OPC_CheckType, MVT::v8f32,
/*565303*/          OPC_CheckPatternPredicate, 182, // (Subtarget->hasBF16()) && (Subtarget->hasVLX())
/*565305*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*565308*/          OPC_EmitMergeInputChains1_2,
/*565309*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VDPBF16PSZ256m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                    // Src: (X86dpbf16ps:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (ld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VDPBF16PSZ256m:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*565322*/        /*SwitchOpcode*/ 28, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->565353
/*565325*/          OPC_RecordMemRef,
/*565326*/          OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*565327*/          OPC_CheckFoldableChainNode,
/*565328*/          OPC_RecordChild1, // #3 = $src3
/*565329*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*565331*/          OPC_MoveParent,
/*565332*/          OPC_CheckType, MVT::v8f32,
/*565334*/          OPC_CheckPatternPredicate, 182, // (Subtarget->hasBF16()) && (Subtarget->hasVLX())
/*565336*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*565339*/          OPC_EmitMergeInputChains1_2,
/*565340*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VDPBF16PSZ256mb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v8f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                    // Src: (X86dpbf16ps:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8i32] }:$src2, (X86VBroadcastld:{ *:[v8i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                    // Dst: (VDPBF16PSZ256mb:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*565353*/        0, // EndSwitchOpcode
/*565354*/      /*Scope*/ 14, /*->565369*/
/*565355*/        OPC_RecordChild2, // #2 = $src3
/*565356*/        OPC_CheckType, MVT::v8f32,
/*565358*/        OPC_CheckPatternPredicate, 182, // (Subtarget->hasBF16()) && (Subtarget->hasVLX())
/*565360*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VDPBF16PSZ256r), 0,
                      MVT::v8f32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86dpbf16ps:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3) - Complexity = 3
                  // Dst: (VDPBF16PSZ256r:{ *:[v8f32] } VR256X:{ *:[v8f32] }:$src1, VR256X:{ *:[v8i32] }:$src2, VR256X:{ *:[v8i32] }:$src3)
/*565369*/      0, /*End of Scope*/
/*565370*/    /*Scope*/ 87, /*->565458*/
/*565371*/      OPC_CheckChild1Type, MVT::v4i32,
/*565373*/      OPC_Scope, 67, /*->565442*/ // 2 children in Scope
/*565375*/        OPC_MoveChild2,
/*565376*/        OPC_SwitchOpcode /*2 cases */, 30, TARGET_VAL(ISD::LOAD),// ->565410
/*565380*/          OPC_RecordMemRef,
/*565381*/          OPC_RecordNode, // #2 = 'ld' chained node
/*565382*/          OPC_CheckFoldableChainNode,
/*565383*/          OPC_RecordChild1, // #3 = $src3
/*565384*/          OPC_CheckPredicate, 4, // Predicate_unindexedload
/*565386*/          OPC_CheckPredicate, 9, // Predicate_load
/*565388*/          OPC_MoveParent,
/*565389*/          OPC_CheckType, MVT::v4f32,
/*565391*/          OPC_CheckPatternPredicate, 182, // (Subtarget->hasBF16()) && (Subtarget->hasVLX())
/*565393*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*565396*/          OPC_EmitMergeInputChains1_2,
/*565397*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VDPBF16PSZ128m), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                    // Src: (X86dpbf16ps:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (ld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_unindexedload>><<P:Predicate_load>>) - Complexity = 25
                    // Dst: (VDPBF16PSZ128m:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*565410*/        /*SwitchOpcode*/ 28, TARGET_VAL(X86ISD::VBROADCAST_LOAD),// ->565441
/*565413*/          OPC_RecordMemRef,
/*565414*/          OPC_RecordNode, // #2 = 'X86VBroadcastld' chained node
/*565415*/          OPC_CheckFoldableChainNode,
/*565416*/          OPC_RecordChild1, // #3 = $src3
/*565417*/          OPC_CheckPredicate, 50, // Predicate_X86VBroadcastld32
/*565419*/          OPC_MoveParent,
/*565420*/          OPC_CheckType, MVT::v4f32,
/*565422*/          OPC_CheckPatternPredicate, 182, // (Subtarget->hasBF16()) && (Subtarget->hasVLX())
/*565424*/          OPC_CheckComplexPat, /*CP*/0, /*#*/3, // selectAddr:$src3 #4 #5 #6 #7 #8
/*565427*/          OPC_EmitMergeInputChains1_2,
/*565428*/          OPC_MorphNodeTo1, TARGET_VAL(X86::VDPBF16PSZ128mb), 0|OPFL_Chain|OPFL_MemRefs,
                        MVT::v4f32, 7/*#Ops*/, 0, 1, 4, 5, 6, 7, 8, 
                    // Src: (X86dpbf16ps:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4i32] }:$src2, (X86VBroadcastld:{ *:[v4i32] } addr:{ *:[iPTR] }:$src3)<<P:Predicate_X86VBroadcastld32>>) - Complexity = 25
                    // Dst: (VDPBF16PSZ128mb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4i32] }:$src2, addr:{ *:[iPTR] }:$src3)
/*565441*/        0, // EndSwitchOpcode
/*565442*/      /*Scope*/ 14, /*->565457*/
/*565443*/        OPC_RecordChild2, // #2 = $src3
/*565444*/        OPC_CheckType, MVT::v4f32,
/*565446*/        OPC_CheckPatternPredicate, 182, // (Subtarget->hasBF16()) && (Subtarget->hasVLX())
/*565448*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VDPBF16PSZ128r), 0,
                      MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86dpbf16ps:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3) - Complexity = 3
                  // Dst: (VDPBF16PSZ128r:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4i32] }:$src2, VR128X:{ *:[v4i32] }:$src3)
/*565457*/      0, /*End of Scope*/
/*565458*/    0, /*End of Scope*/
/*565459*/  /*SwitchOpcode*/ 94|128,1/*222*/, TARGET_VAL(X86ISD::VRNDSCALES),// ->565685
/*565463*/    OPC_RecordChild0, // #0 = $src1
/*565464*/    OPC_RecordChild1, // #1 = $src2
/*565465*/    OPC_RecordChild2, // #2 = $src3
/*565466*/    OPC_MoveChild2,
/*565467*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*565470*/    OPC_MoveParent,
/*565471*/    OPC_SwitchType /*2 cases */, 104, MVT::v4f32,// ->565578
/*565474*/      OPC_Scope, 21, /*->565497*/ // 6 children in Scope
/*565476*/        OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*565478*/        OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*565481*/        OPC_EmitMergeInputChains, 1, 8, 
/*565484*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDSSm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 2, 
                  // Src: (X86RndScales:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3) - Complexity = 24
                  // Dst: (VROUNDSSm_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3)
/*565497*/      /*Scope*/ 21, /*->565519*/
/*565498*/        OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*565500*/        OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*565503*/        OPC_EmitMergeInputChains, 1, 8, 
/*565506*/        OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDSSm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 2, 
                  // Src: (X86RndScales:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3) - Complexity = 24
                  // Dst: (ROUNDSSm_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3)
/*565519*/      /*Scope*/ 21, /*->565541*/
/*565520*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*565522*/        OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*565525*/        OPC_EmitMergeInputChains, 1, 8, 
/*565528*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESSZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 2, 
                  // Src: (X86RndScales:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3) - Complexity = 24
                  // Dst: (VRNDSCALESSZm_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3)
/*565541*/      /*Scope*/ 11, /*->565553*/
/*565542*/        OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*565544*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDSSr_Int), 0,
                      MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86RndScales:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3) - Complexity = 6
                  // Dst: (VROUNDSSr_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3)
/*565553*/      /*Scope*/ 11, /*->565565*/
/*565554*/        OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*565556*/        OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDSSr_Int), 0,
                      MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86RndScales:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3) - Complexity = 6
                  // Dst: (ROUNDSSr_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3)
/*565565*/      /*Scope*/ 11, /*->565577*/
/*565566*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*565568*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESSZr_Int), 0,
                      MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86RndScales:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3) - Complexity = 6
                  // Dst: (VRNDSCALESSZr_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3)
/*565577*/      0, /*End of Scope*/
/*565578*/    /*SwitchType*/ 104, MVT::v2f64,// ->565684
/*565580*/      OPC_Scope, 21, /*->565603*/ // 6 children in Scope
/*565582*/        OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*565584*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*565587*/        OPC_EmitMergeInputChains, 1, 8, 
/*565590*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDSDm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 2, 
                  // Src: (X86RndScales:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3) - Complexity = 24
                  // Dst: (VROUNDSDm_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3)
/*565603*/      /*Scope*/ 21, /*->565625*/
/*565604*/        OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*565606*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*565609*/        OPC_EmitMergeInputChains, 1, 8, 
/*565612*/        OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDSDm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 2, 
                  // Src: (X86RndScales:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3) - Complexity = 24
                  // Dst: (ROUNDSDm_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3)
/*565625*/      /*Scope*/ 21, /*->565647*/
/*565626*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*565628*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*565631*/        OPC_EmitMergeInputChains, 1, 8, 
/*565634*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESDZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 2, 
                  // Src: (X86RndScales:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3) - Complexity = 24
                  // Dst: (VRNDSCALESDZm_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3)
/*565647*/      /*Scope*/ 11, /*->565659*/
/*565648*/        OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*565650*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VROUNDSDr_Int), 0,
                      MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86RndScales:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3) - Complexity = 6
                  // Dst: (VROUNDSDr_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3)
/*565659*/      /*Scope*/ 11, /*->565671*/
/*565660*/        OPC_CheckPatternPredicate, 13, // (Subtarget->hasSSE41() && !Subtarget->hasAVX())
/*565662*/        OPC_MorphNodeTo1, TARGET_VAL(X86::ROUNDSDr_Int), 0,
                      MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86RndScales:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3) - Complexity = 6
                  // Dst: (ROUNDSDr_Int:{ *:[v2f64] } VR128:{ *:[v2f64] }:$src1, VR128:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3)
/*565671*/      /*Scope*/ 11, /*->565683*/
/*565672*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*565674*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESDZr_Int), 0,
                      MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86RndScales:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3) - Complexity = 6
                  // Dst: (VRNDSCALESDZr_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3)
/*565683*/      0, /*End of Scope*/
/*565684*/    0, // EndSwitchType
/*565685*/  /*SwitchOpcode*/ 82, TARGET_VAL(X86ISD::VRANGES),// ->565770
/*565688*/    OPC_RecordChild0, // #0 = $src1
/*565689*/    OPC_RecordChild1, // #1 = $src2
/*565690*/    OPC_RecordChild2, // #2 = $src3
/*565691*/    OPC_MoveChild2,
/*565692*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*565695*/    OPC_MoveParent,
/*565696*/    OPC_SwitchType /*2 cases */, 34, MVT::v2f64,// ->565733
/*565699*/      OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*565701*/      OPC_Scope, 19, /*->565722*/ // 2 children in Scope
/*565703*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*565706*/        OPC_EmitMergeInputChains, 1, 8, 
/*565709*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGESDZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 2, 
                  // Src: (X86Ranges:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3) - Complexity = 24
                  // Dst: (VRANGESDZrmi:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3)
/*565722*/      /*Scope*/ 9, /*->565732*/
/*565723*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGESDZrri), 0,
                      MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86Ranges:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3) - Complexity = 6
                  // Dst: (VRANGESDZrri:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3)
/*565732*/      0, /*End of Scope*/
/*565733*/    /*SwitchType*/ 34, MVT::v4f32,// ->565769
/*565735*/      OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*565737*/      OPC_Scope, 19, /*->565758*/ // 2 children in Scope
/*565739*/        OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*565742*/        OPC_EmitMergeInputChains, 1, 8, 
/*565745*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGESSZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 2, 
                  // Src: (X86Ranges:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3) - Complexity = 24
                  // Dst: (VRANGESSZrmi:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3)
/*565758*/      /*Scope*/ 9, /*->565768*/
/*565759*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGESSZrri), 0,
                      MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86Ranges:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3) - Complexity = 6
                  // Dst: (VRANGESSZrri:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3)
/*565768*/      0, /*End of Scope*/
/*565769*/    0, // EndSwitchType
/*565770*/  /*SwitchOpcode*/ 82, TARGET_VAL(X86ISD::VREDUCES),// ->565855
/*565773*/    OPC_RecordChild0, // #0 = $src1
/*565774*/    OPC_RecordChild1, // #1 = $src2
/*565775*/    OPC_RecordChild2, // #2 = $src3
/*565776*/    OPC_MoveChild2,
/*565777*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*565780*/    OPC_MoveParent,
/*565781*/    OPC_SwitchType /*2 cases */, 34, MVT::v2f64,// ->565818
/*565784*/      OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*565786*/      OPC_Scope, 19, /*->565807*/ // 2 children in Scope
/*565788*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*565791*/        OPC_EmitMergeInputChains, 1, 8, 
/*565794*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCESDZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 2, 
                  // Src: (X86Reduces:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3) - Complexity = 24
                  // Dst: (VREDUCESDZrmi:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3)
/*565807*/      /*Scope*/ 9, /*->565817*/
/*565808*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCESDZrri), 0,
                      MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86Reduces:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3) - Complexity = 6
                  // Dst: (VREDUCESDZrri:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3)
/*565817*/      0, /*End of Scope*/
/*565818*/    /*SwitchType*/ 34, MVT::v4f32,// ->565854
/*565820*/      OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*565822*/      OPC_Scope, 19, /*->565843*/ // 2 children in Scope
/*565824*/        OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*565827*/        OPC_EmitMergeInputChains, 1, 8, 
/*565830*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCESSZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 2, 
                  // Src: (X86Reduces:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3) - Complexity = 24
                  // Dst: (VREDUCESSZrmi:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3)
/*565843*/      /*Scope*/ 9, /*->565853*/
/*565844*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCESSZrri), 0,
                      MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86Reduces:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3) - Complexity = 6
                  // Dst: (VREDUCESSZrri:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3)
/*565853*/      0, /*End of Scope*/
/*565854*/    0, // EndSwitchType
/*565855*/  /*SwitchOpcode*/ 82, TARGET_VAL(X86ISD::VGETMANTS),// ->565940
/*565858*/    OPC_RecordChild0, // #0 = $src1
/*565859*/    OPC_RecordChild1, // #1 = $src2
/*565860*/    OPC_RecordChild2, // #2 = $src3
/*565861*/    OPC_MoveChild2,
/*565862*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*565865*/    OPC_MoveParent,
/*565866*/    OPC_SwitchType /*2 cases */, 34, MVT::v2f64,// ->565903
/*565869*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*565871*/      OPC_Scope, 19, /*->565892*/ // 2 children in Scope
/*565873*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*565876*/        OPC_EmitMergeInputChains, 1, 8, 
/*565879*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTSDZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 2, 
                  // Src: (X86GetMants:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3) - Complexity = 24
                  // Dst: (VGETMANTSDZrmi:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3)
/*565892*/      /*Scope*/ 9, /*->565902*/
/*565893*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTSDZrri), 0,
                      MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86GetMants:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3) - Complexity = 6
                  // Dst: (VGETMANTSDZrri:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3)
/*565902*/      0, /*End of Scope*/
/*565903*/    /*SwitchType*/ 34, MVT::v4f32,// ->565939
/*565905*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*565907*/      OPC_Scope, 19, /*->565928*/ // 2 children in Scope
/*565909*/        OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectScalarSSELoad:$src2 #3 #4 #5 #6 #7 + chain result
/*565912*/        OPC_EmitMergeInputChains, 1, 8, 
/*565915*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTSSZrmi), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 7/*#Ops*/, 0, 3, 4, 5, 6, 7, 2, 
                  // Src: (X86GetMants:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3) - Complexity = 24
                  // Dst: (VGETMANTSSZrmi:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3)
/*565928*/      /*Scope*/ 9, /*->565938*/
/*565929*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTSSZrri), 0,
                      MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86GetMants:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3) - Complexity = 6
                  // Dst: (VGETMANTSSZrri:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3)
/*565938*/      0, /*End of Scope*/
/*565939*/    0, // EndSwitchType
/*565940*/  /*SwitchOpcode*/ 102, TARGET_VAL(X86ISD::VFPROUNDS),// ->566045
/*565943*/    OPC_RecordChild0, // #0 = $src1
/*565944*/    OPC_RecordChild1, // #1 = $src2
/*565945*/    OPC_CheckType, MVT::v4f32,
/*565947*/    OPC_Scope, 20, /*->565969*/ // 6 children in Scope
/*565949*/      OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*565951*/      OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*565954*/      OPC_EmitMergeInputChains, 1, 7, 
/*565957*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSD2SSrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4f32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                // Src: (X86frounds:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2) - Complexity = 21
                // Dst: (VCVTSD2SSrm_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*565969*/    /*Scope*/ 20, /*->565990*/
/*565970*/      OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*565972*/      OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*565975*/      OPC_EmitMergeInputChains, 1, 7, 
/*565978*/      OPC_MorphNodeTo1, TARGET_VAL(X86::CVTSD2SSrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4f32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                // Src: (X86frounds:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2) - Complexity = 21
                // Dst: (CVTSD2SSrm_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*565990*/    /*Scope*/ 20, /*->566011*/
/*565991*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*565993*/      OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*565996*/      OPC_EmitMergeInputChains, 1, 7, 
/*565999*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSD2SSZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v4f32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                // Src: (X86frounds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2) - Complexity = 21
                // Dst: (VCVTSD2SSZrm_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*566011*/    /*Scope*/ 10, /*->566022*/
/*566012*/      OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*566014*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSD2SSrr_Int), 0,
                    MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (X86frounds:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v2f64] }:$src2) - Complexity = 3
                // Dst: (VCVTSD2SSrr_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v2f64] }:$src2)
/*566022*/    /*Scope*/ 10, /*->566033*/
/*566023*/      OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*566025*/      OPC_MorphNodeTo1, TARGET_VAL(X86::CVTSD2SSrr_Int), 0,
                    MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (X86frounds:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v2f64] }:$src2) - Complexity = 3
                // Dst: (CVTSD2SSrr_Int:{ *:[v4f32] } VR128:{ *:[v4f32] }:$src1, VR128:{ *:[v2f64] }:$src2)
/*566033*/    /*Scope*/ 10, /*->566044*/
/*566034*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*566036*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSD2SSZrr_Int), 0,
                    MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (X86frounds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v2f64] }:$src2) - Complexity = 3
                // Dst: (VCVTSD2SSZrr_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*566044*/    0, /*End of Scope*/
/*566045*/  /*SwitchOpcode*/ 76|128,1/*204*/, TARGET_VAL(X86ISD::FMAXS),// ->566253
/*566049*/    OPC_RecordChild0, // #0 = $src1
/*566050*/    OPC_RecordChild1, // #1 = $src2
/*566051*/    OPC_SwitchType /*2 cases */, 98, MVT::v4f32,// ->566152
/*566054*/      OPC_Scope, 20, /*->566076*/ // 6 children in Scope
/*566056*/        OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*566058*/        OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*566061*/        OPC_EmitMergeInputChains, 1, 7, 
/*566064*/        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)
/*566076*/      /*Scope*/ 20, /*->566097*/
/*566077*/        OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*566079*/        OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*566082*/        OPC_EmitMergeInputChains, 1, 7, 
/*566085*/        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)
/*566097*/      /*Scope*/ 20, /*->566118*/
/*566098*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*566100*/        OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*566103*/        OPC_EmitMergeInputChains, 1, 7, 
/*566106*/        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)
/*566118*/      /*Scope*/ 10, /*->566129*/
/*566119*/        OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*566121*/        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)
/*566129*/      /*Scope*/ 10, /*->566140*/
/*566130*/        OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*566132*/        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)
/*566140*/      /*Scope*/ 10, /*->566151*/
/*566141*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*566143*/        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)
/*566151*/      0, /*End of Scope*/
/*566152*/    /*SwitchType*/ 98, MVT::v2f64,// ->566252
/*566154*/      OPC_Scope, 20, /*->566176*/ // 6 children in Scope
/*566156*/        OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*566158*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*566161*/        OPC_EmitMergeInputChains, 1, 7, 
/*566164*/        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)
/*566176*/      /*Scope*/ 20, /*->566197*/
/*566177*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*566179*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*566182*/        OPC_EmitMergeInputChains, 1, 7, 
/*566185*/        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)
/*566197*/      /*Scope*/ 20, /*->566218*/
/*566198*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*566200*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*566203*/        OPC_EmitMergeInputChains, 1, 7, 
/*566206*/        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)
/*566218*/      /*Scope*/ 10, /*->566229*/
/*566219*/        OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*566221*/        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)
/*566229*/      /*Scope*/ 10, /*->566240*/
/*566230*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*566232*/        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)
/*566240*/      /*Scope*/ 10, /*->566251*/
/*566241*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*566243*/        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)
/*566251*/      0, /*End of Scope*/
/*566252*/    0, // EndSwitchType
/*566253*/  /*SwitchOpcode*/ 76|128,1/*204*/, TARGET_VAL(X86ISD::FMINS),// ->566461
/*566257*/    OPC_RecordChild0, // #0 = $src1
/*566258*/    OPC_RecordChild1, // #1 = $src2
/*566259*/    OPC_SwitchType /*2 cases */, 98, MVT::v4f32,// ->566360
/*566262*/      OPC_Scope, 20, /*->566284*/ // 6 children in Scope
/*566264*/        OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*566266*/        OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*566269*/        OPC_EmitMergeInputChains, 1, 7, 
/*566272*/        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)
/*566284*/      /*Scope*/ 20, /*->566305*/
/*566285*/        OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*566287*/        OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*566290*/        OPC_EmitMergeInputChains, 1, 7, 
/*566293*/        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)
/*566305*/      /*Scope*/ 20, /*->566326*/
/*566306*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*566308*/        OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*566311*/        OPC_EmitMergeInputChains, 1, 7, 
/*566314*/        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)
/*566326*/      /*Scope*/ 10, /*->566337*/
/*566327*/        OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*566329*/        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)
/*566337*/      /*Scope*/ 10, /*->566348*/
/*566338*/        OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*566340*/        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)
/*566348*/      /*Scope*/ 10, /*->566359*/
/*566349*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*566351*/        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)
/*566359*/      0, /*End of Scope*/
/*566360*/    /*SwitchType*/ 98, MVT::v2f64,// ->566460
/*566362*/      OPC_Scope, 20, /*->566384*/ // 6 children in Scope
/*566364*/        OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*566366*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*566369*/        OPC_EmitMergeInputChains, 1, 7, 
/*566372*/        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)
/*566384*/      /*Scope*/ 20, /*->566405*/
/*566385*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*566387*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*566390*/        OPC_EmitMergeInputChains, 1, 7, 
/*566393*/        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)
/*566405*/      /*Scope*/ 20, /*->566426*/
/*566406*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*566408*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*566411*/        OPC_EmitMergeInputChains, 1, 7, 
/*566414*/        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)
/*566426*/      /*Scope*/ 10, /*->566437*/
/*566427*/        OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*566429*/        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)
/*566437*/      /*Scope*/ 10, /*->566448*/
/*566438*/        OPC_CheckPatternPredicate, 3, // (Subtarget->hasSSE2() && !Subtarget->hasAVX())
/*566440*/        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)
/*566448*/      /*Scope*/ 10, /*->566459*/
/*566449*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*566451*/        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)
/*566459*/      0, /*End of Scope*/
/*566460*/    0, // EndSwitchType
/*566461*/  /*SwitchOpcode*/ 72, TARGET_VAL(X86ISD::FADDS),// ->566536
/*566464*/    OPC_RecordChild0, // #0 = $src1
/*566465*/    OPC_RecordChild1, // #1 = $src2
/*566466*/    OPC_SwitchType /*2 cases */, 32, MVT::v4f32,// ->566501
/*566469*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*566471*/      OPC_Scope, 18, /*->566491*/ // 2 children in Scope
/*566473*/        OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*566476*/        OPC_EmitMergeInputChains, 1, 7, 
/*566479*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSSZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                  // Src: (X86fadds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2) - Complexity = 21
                  // Dst: (VADDSSZrm_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*566491*/      /*Scope*/ 8, /*->566500*/
/*566492*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSSZrr_Int), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86fadds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2) - Complexity = 3
                  // Dst: (VADDSSZrr_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*566500*/      0, /*End of Scope*/
/*566501*/    /*SwitchType*/ 32, MVT::v2f64,// ->566535
/*566503*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*566505*/      OPC_Scope, 18, /*->566525*/ // 2 children in Scope
/*566507*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*566510*/        OPC_EmitMergeInputChains, 1, 7, 
/*566513*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSDZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                  // Src: (X86fadds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2) - Complexity = 21
                  // Dst: (VADDSDZrm_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*566525*/      /*Scope*/ 8, /*->566534*/
/*566526*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSDZrr_Int), 0,
                      MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86fadds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2) - Complexity = 3
                  // Dst: (VADDSDZrr_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*566534*/      0, /*End of Scope*/
/*566535*/    0, // EndSwitchType
/*566536*/  /*SwitchOpcode*/ 72, TARGET_VAL(X86ISD::FMULS),// ->566611
/*566539*/    OPC_RecordChild0, // #0 = $src1
/*566540*/    OPC_RecordChild1, // #1 = $src2
/*566541*/    OPC_SwitchType /*2 cases */, 32, MVT::v4f32,// ->566576
/*566544*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*566546*/      OPC_Scope, 18, /*->566566*/ // 2 children in Scope
/*566548*/        OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*566551*/        OPC_EmitMergeInputChains, 1, 7, 
/*566554*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSSZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                  // Src: (X86fmuls:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2) - Complexity = 21
                  // Dst: (VMULSSZrm_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*566566*/      /*Scope*/ 8, /*->566575*/
/*566567*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSSZrr_Int), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86fmuls:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2) - Complexity = 3
                  // Dst: (VMULSSZrr_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*566575*/      0, /*End of Scope*/
/*566576*/    /*SwitchType*/ 32, MVT::v2f64,// ->566610
/*566578*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*566580*/      OPC_Scope, 18, /*->566600*/ // 2 children in Scope
/*566582*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*566585*/        OPC_EmitMergeInputChains, 1, 7, 
/*566588*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSDZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                  // Src: (X86fmuls:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2) - Complexity = 21
                  // Dst: (VMULSDZrm_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*566600*/      /*Scope*/ 8, /*->566609*/
/*566601*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSDZrr_Int), 0,
                      MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86fmuls:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2) - Complexity = 3
                  // Dst: (VMULSDZrr_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*566609*/      0, /*End of Scope*/
/*566610*/    0, // EndSwitchType
/*566611*/  /*SwitchOpcode*/ 72, TARGET_VAL(X86ISD::FSUBS),// ->566686
/*566614*/    OPC_RecordChild0, // #0 = $src1
/*566615*/    OPC_RecordChild1, // #1 = $src2
/*566616*/    OPC_SwitchType /*2 cases */, 32, MVT::v4f32,// ->566651
/*566619*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*566621*/      OPC_Scope, 18, /*->566641*/ // 2 children in Scope
/*566623*/        OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*566626*/        OPC_EmitMergeInputChains, 1, 7, 
/*566629*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSSZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                  // Src: (X86fsubs:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2) - Complexity = 21
                  // Dst: (VSUBSSZrm_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*566641*/      /*Scope*/ 8, /*->566650*/
/*566642*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSSZrr_Int), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86fsubs:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2) - Complexity = 3
                  // Dst: (VSUBSSZrr_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*566650*/      0, /*End of Scope*/
/*566651*/    /*SwitchType*/ 32, MVT::v2f64,// ->566685
/*566653*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*566655*/      OPC_Scope, 18, /*->566675*/ // 2 children in Scope
/*566657*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*566660*/        OPC_EmitMergeInputChains, 1, 7, 
/*566663*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSDZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                  // Src: (X86fsubs:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2) - Complexity = 21
                  // Dst: (VSUBSDZrm_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*566675*/      /*Scope*/ 8, /*->566684*/
/*566676*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSDZrr_Int), 0,
                      MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86fsubs:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2) - Complexity = 3
                  // Dst: (VSUBSDZrr_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*566684*/      0, /*End of Scope*/
/*566685*/    0, // EndSwitchType
/*566686*/  /*SwitchOpcode*/ 72, TARGET_VAL(X86ISD::FDIVS),// ->566761
/*566689*/    OPC_RecordChild0, // #0 = $src1
/*566690*/    OPC_RecordChild1, // #1 = $src2
/*566691*/    OPC_SwitchType /*2 cases */, 32, MVT::v4f32,// ->566726
/*566694*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*566696*/      OPC_Scope, 18, /*->566716*/ // 2 children in Scope
/*566698*/        OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*566701*/        OPC_EmitMergeInputChains, 1, 7, 
/*566704*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSSZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                  // Src: (X86fdivs:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2) - Complexity = 21
                  // Dst: (VDIVSSZrm_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*566716*/      /*Scope*/ 8, /*->566725*/
/*566717*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSSZrr_Int), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86fdivs:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2) - Complexity = 3
                  // Dst: (VDIVSSZrr_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*566725*/      0, /*End of Scope*/
/*566726*/    /*SwitchType*/ 32, MVT::v2f64,// ->566760
/*566728*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*566730*/      OPC_Scope, 18, /*->566750*/ // 2 children in Scope
/*566732*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*566735*/        OPC_EmitMergeInputChains, 1, 7, 
/*566738*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSDZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                  // Src: (X86fdivs:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2) - Complexity = 21
                  // Dst: (VDIVSDZrm_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*566750*/      /*Scope*/ 8, /*->566759*/
/*566751*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSDZrr_Int), 0,
                      MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86fdivs:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2) - Complexity = 3
                  // Dst: (VDIVSDZrr_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*566759*/      0, /*End of Scope*/
/*566760*/    0, // EndSwitchType
/*566761*/  /*SwitchOpcode*/ 72, TARGET_VAL(X86ISD::SCALEFS),// ->566836
/*566764*/    OPC_RecordChild0, // #0 = $src1
/*566765*/    OPC_RecordChild1, // #1 = $src2
/*566766*/    OPC_SwitchType /*2 cases */, 32, MVT::v4f32,// ->566801
/*566769*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*566771*/      OPC_Scope, 18, /*->566791*/ // 2 children in Scope
/*566773*/        OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*566776*/        OPC_EmitMergeInputChains, 1, 7, 
/*566779*/        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) - Complexity = 21
                  // Dst: (VSCALEFSSZrm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*566791*/      /*Scope*/ 8, /*->566800*/
/*566792*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFSSZrr), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86scalefs:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2) - Complexity = 3
                  // Dst: (VSCALEFSSZrr:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*566800*/      0, /*End of Scope*/
/*566801*/    /*SwitchType*/ 32, MVT::v2f64,// ->566835
/*566803*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*566805*/      OPC_Scope, 18, /*->566825*/ // 2 children in Scope
/*566807*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*566810*/        OPC_EmitMergeInputChains, 1, 7, 
/*566813*/        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) - Complexity = 21
                  // Dst: (VSCALEFSDZrm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*566825*/      /*Scope*/ 8, /*->566834*/
/*566826*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFSDZrr), 0,
                      MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86scalefs:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2) - Complexity = 3
                  // Dst: (VSCALEFSDZrr:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*566834*/      0, /*End of Scope*/
/*566835*/    0, // EndSwitchType
/*566836*/  /*SwitchOpcode*/ 36, TARGET_VAL(X86ISD::VFPEXTS),// ->566875
/*566839*/    OPC_RecordChild0, // #0 = $src1
/*566840*/    OPC_RecordChild1, // #1 = $src2
/*566841*/    OPC_CheckType, MVT::v2f64,
/*566843*/    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*566845*/    OPC_Scope, 18, /*->566865*/ // 2 children in Scope
/*566847*/      OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*566850*/      OPC_EmitMergeInputChains, 1, 7, 
/*566853*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSS2SDZrm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::v2f64, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                // Src: (X86fpexts:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2) - Complexity = 21
                // Dst: (VCVTSS2SDZrm_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*566865*/    /*Scope*/ 8, /*->566874*/
/*566866*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSS2SDZrr_Int), 0,
                    MVT::v2f64, 2/*#Ops*/, 0, 1, 
                // Src: (X86fpexts:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v4f32] }:$src2) - Complexity = 3
                // Dst: (VCVTSS2SDZrr_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*566874*/    0, /*End of Scope*/
/*566875*/  /*SwitchOpcode*/ 72, TARGET_VAL(X86ISD::RCP14S),// ->566950
/*566878*/    OPC_RecordChild0, // #0 = $src1
/*566879*/    OPC_RecordChild1, // #1 = $src2
/*566880*/    OPC_SwitchType /*2 cases */, 32, MVT::v4f32,// ->566915
/*566883*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*566885*/      OPC_Scope, 18, /*->566905*/ // 2 children in Scope
/*566887*/        OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*566890*/        OPC_EmitMergeInputChains, 1, 7, 
/*566893*/        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)
/*566905*/      /*Scope*/ 8, /*->566914*/
/*566906*/        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)
/*566914*/      0, /*End of Scope*/
/*566915*/    /*SwitchType*/ 32, MVT::v2f64,// ->566949
/*566917*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*566919*/      OPC_Scope, 18, /*->566939*/ // 2 children in Scope
/*566921*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*566924*/        OPC_EmitMergeInputChains, 1, 7, 
/*566927*/        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)
/*566939*/      /*Scope*/ 8, /*->566948*/
/*566940*/        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)
/*566948*/      0, /*End of Scope*/
/*566949*/    0, // EndSwitchType
/*566950*/  /*SwitchOpcode*/ 72, TARGET_VAL(X86ISD::RSQRT14S),// ->567025
/*566953*/    OPC_RecordChild0, // #0 = $src1
/*566954*/    OPC_RecordChild1, // #1 = $src2
/*566955*/    OPC_SwitchType /*2 cases */, 32, MVT::v4f32,// ->566990
/*566958*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*566960*/      OPC_Scope, 18, /*->566980*/ // 2 children in Scope
/*566962*/        OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*566965*/        OPC_EmitMergeInputChains, 1, 7, 
/*566968*/        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)
/*566980*/      /*Scope*/ 8, /*->566989*/
/*566981*/        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)
/*566989*/      0, /*End of Scope*/
/*566990*/    /*SwitchType*/ 32, MVT::v2f64,// ->567024
/*566992*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*566994*/      OPC_Scope, 18, /*->567014*/ // 2 children in Scope
/*566996*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*566999*/        OPC_EmitMergeInputChains, 1, 7, 
/*567002*/        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)
/*567014*/      /*Scope*/ 8, /*->567023*/
/*567015*/        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)
/*567023*/      0, /*End of Scope*/
/*567024*/    0, // EndSwitchType
/*567025*/  /*SwitchOpcode*/ 72, TARGET_VAL(X86ISD::RCP28S),// ->567100
/*567028*/    OPC_RecordChild0, // #0 = $src1
/*567029*/    OPC_RecordChild1, // #1 = $src2
/*567030*/    OPC_SwitchType /*2 cases */, 32, MVT::v4f32,// ->567065
/*567033*/      OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*567035*/      OPC_Scope, 18, /*->567055*/ // 2 children in Scope
/*567037*/        OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*567040*/        OPC_EmitMergeInputChains, 1, 7, 
/*567043*/        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) - Complexity = 21
                  // Dst: (VRCP28SSZm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*567055*/      /*Scope*/ 8, /*->567064*/
/*567056*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP28SSZr), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86rcp28s:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2) - Complexity = 3
                  // Dst: (VRCP28SSZr:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*567064*/      0, /*End of Scope*/
/*567065*/    /*SwitchType*/ 32, MVT::v2f64,// ->567099
/*567067*/      OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*567069*/      OPC_Scope, 18, /*->567089*/ // 2 children in Scope
/*567071*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*567074*/        OPC_EmitMergeInputChains, 1, 7, 
/*567077*/        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) - Complexity = 21
                  // Dst: (VRCP28SDZm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*567089*/      /*Scope*/ 8, /*->567098*/
/*567090*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP28SDZr), 0,
                      MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86rcp28s:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2) - Complexity = 3
                  // Dst: (VRCP28SDZr:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*567098*/      0, /*End of Scope*/
/*567099*/    0, // EndSwitchType
/*567100*/  /*SwitchOpcode*/ 72, TARGET_VAL(X86ISD::RSQRT28S),// ->567175
/*567103*/    OPC_RecordChild0, // #0 = $src1
/*567104*/    OPC_RecordChild1, // #1 = $src2
/*567105*/    OPC_SwitchType /*2 cases */, 32, MVT::v4f32,// ->567140
/*567108*/      OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*567110*/      OPC_Scope, 18, /*->567130*/ // 2 children in Scope
/*567112*/        OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*567115*/        OPC_EmitMergeInputChains, 1, 7, 
/*567118*/        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) - Complexity = 21
                  // Dst: (VRSQRT28SSZm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*567130*/      /*Scope*/ 8, /*->567139*/
/*567131*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT28SSZr), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86rsqrt28s:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2) - Complexity = 3
                  // Dst: (VRSQRT28SSZr:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*567139*/      0, /*End of Scope*/
/*567140*/    /*SwitchType*/ 32, MVT::v2f64,// ->567174
/*567142*/      OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*567144*/      OPC_Scope, 18, /*->567164*/ // 2 children in Scope
/*567146*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*567149*/        OPC_EmitMergeInputChains, 1, 7, 
/*567152*/        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) - Complexity = 21
                  // Dst: (VRSQRT28SDZm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*567164*/      /*Scope*/ 8, /*->567173*/
/*567165*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT28SDZr), 0,
                      MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86rsqrt28s:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2) - Complexity = 3
                  // Dst: (VRSQRT28SDZr:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*567173*/      0, /*End of Scope*/
/*567174*/    0, // EndSwitchType
/*567175*/  /*SwitchOpcode*/ 72, TARGET_VAL(X86ISD::FGETEXPS),// ->567250
/*567178*/    OPC_RecordChild0, // #0 = $src1
/*567179*/    OPC_RecordChild1, // #1 = $src2
/*567180*/    OPC_SwitchType /*2 cases */, 32, MVT::v4f32,// ->567215
/*567183*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*567185*/      OPC_Scope, 18, /*->567205*/ // 2 children in Scope
/*567187*/        OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*567190*/        OPC_EmitMergeInputChains, 1, 7, 
/*567193*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPSSZm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                  // Src: (X86fgetexps:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2) - Complexity = 21
                  // Dst: (VGETEXPSSZm:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*567205*/      /*Scope*/ 8, /*->567214*/
/*567206*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPSSZr), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86fgetexps:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2) - Complexity = 3
                  // Dst: (VGETEXPSSZr:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*567214*/      0, /*End of Scope*/
/*567215*/    /*SwitchType*/ 32, MVT::v2f64,// ->567249
/*567217*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*567219*/      OPC_Scope, 18, /*->567239*/ // 2 children in Scope
/*567221*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*567224*/        OPC_EmitMergeInputChains, 1, 7, 
/*567227*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPSDZm), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                  // Src: (X86fgetexps:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2) - Complexity = 21
                  // Dst: (VGETEXPSDZm:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*567239*/      /*Scope*/ 8, /*->567248*/
/*567240*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPSDZr), 0,
                      MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86fgetexps:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2) - Complexity = 3
                  // Dst: (VGETEXPSDZr:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*567248*/      0, /*End of Scope*/
/*567249*/    0, // EndSwitchType
/*567250*/  /*SwitchOpcode*/ 72, TARGET_VAL(X86ISD::FSQRTS),// ->567325
/*567253*/    OPC_RecordChild0, // #0 = $src1
/*567254*/    OPC_RecordChild1, // #1 = $src2
/*567255*/    OPC_SwitchType /*2 cases */, 32, MVT::v4f32,// ->567290
/*567258*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*567260*/      OPC_Scope, 18, /*->567280*/ // 2 children in Scope
/*567262*/        OPC_CheckComplexPat, /*CP*/2, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*567265*/        OPC_EmitMergeInputChains, 1, 7, 
/*567268*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTSSZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v4f32, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                  // Src: (X86fsqrts:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2) - Complexity = 21
                  // Dst: (VSQRTSSZm_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, sse_load_f32:{ *:[v4f32] }:$src2)
/*567280*/      /*Scope*/ 8, /*->567289*/
/*567281*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTSSZr_Int), 0,
                      MVT::v4f32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86fsqrts:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2) - Complexity = 3
                  // Dst: (VSQRTSSZr_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*567289*/      0, /*End of Scope*/
/*567290*/    /*SwitchType*/ 32, MVT::v2f64,// ->567324
/*567292*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*567294*/      OPC_Scope, 18, /*->567314*/ // 2 children in Scope
/*567296*/        OPC_CheckComplexPat, /*CP*/3, /*#*/1, // selectScalarSSELoad:$src2 #2 #3 #4 #5 #6 + chain result
/*567299*/        OPC_EmitMergeInputChains, 1, 7, 
/*567302*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTSDZm_Int), 0|OPFL_Chain|OPFL_MemRefs,
                      MVT::v2f64, 6/*#Ops*/, 0, 2, 3, 4, 5, 6, 
                  // Src: (X86fsqrts:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2) - Complexity = 21
                  // Dst: (VSQRTSDZm_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, sse_load_f64:{ *:[v2f64] }:$src2)
/*567314*/      /*Scope*/ 8, /*->567323*/
/*567315*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTSDZr_Int), 0,
                      MVT::v2f64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86fsqrts:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2) - Complexity = 3
                  // Dst: (VSQRTSDZr_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*567323*/      0, /*End of Scope*/
/*567324*/    0, // EndSwitchType
/*567325*/  /*SwitchOpcode*/ 36, TARGET_VAL(X86ISD::FADDS_RND),// ->567364
/*567328*/    OPC_RecordChild0, // #0 = $src1
/*567329*/    OPC_RecordChild1, // #1 = $src2
/*567330*/    OPC_RecordChild2, // #2 = $rc
/*567331*/    OPC_MoveChild2,
/*567332*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*567335*/    OPC_MoveParent,
/*567336*/    OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->567350
/*567339*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*567341*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSSZrrb_Int), 0,
                    MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (X86faddRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VADDSSZrrb_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$rc)
/*567350*/    /*SwitchType*/ 11, MVT::v2f64,// ->567363
/*567352*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*567354*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VADDSDZrrb_Int), 0,
                    MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (X86faddRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VADDSDZrrb_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$rc)
/*567363*/    0, // EndSwitchType
/*567364*/  /*SwitchOpcode*/ 36, TARGET_VAL(X86ISD::FMULS_RND),// ->567403
/*567367*/    OPC_RecordChild0, // #0 = $src1
/*567368*/    OPC_RecordChild1, // #1 = $src2
/*567369*/    OPC_RecordChild2, // #2 = $rc
/*567370*/    OPC_MoveChild2,
/*567371*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*567374*/    OPC_MoveParent,
/*567375*/    OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->567389
/*567378*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*567380*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSSZrrb_Int), 0,
                    MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (X86fmulRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VMULSSZrrb_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$rc)
/*567389*/    /*SwitchType*/ 11, MVT::v2f64,// ->567402
/*567391*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*567393*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VMULSDZrrb_Int), 0,
                    MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (X86fmulRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VMULSDZrrb_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$rc)
/*567402*/    0, // EndSwitchType
/*567403*/  /*SwitchOpcode*/ 36, TARGET_VAL(X86ISD::FSUBS_RND),// ->567442
/*567406*/    OPC_RecordChild0, // #0 = $src1
/*567407*/    OPC_RecordChild1, // #1 = $src2
/*567408*/    OPC_RecordChild2, // #2 = $rc
/*567409*/    OPC_MoveChild2,
/*567410*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*567413*/    OPC_MoveParent,
/*567414*/    OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->567428
/*567417*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*567419*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSSZrrb_Int), 0,
                    MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (X86fsubRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VSUBSSZrrb_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$rc)
/*567428*/    /*SwitchType*/ 11, MVT::v2f64,// ->567441
/*567430*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*567432*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBSDZrrb_Int), 0,
                    MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (X86fsubRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VSUBSDZrrb_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$rc)
/*567441*/    0, // EndSwitchType
/*567442*/  /*SwitchOpcode*/ 36, TARGET_VAL(X86ISD::FDIVS_RND),// ->567481
/*567445*/    OPC_RecordChild0, // #0 = $src1
/*567446*/    OPC_RecordChild1, // #1 = $src2
/*567447*/    OPC_RecordChild2, // #2 = $rc
/*567448*/    OPC_MoveChild2,
/*567449*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*567452*/    OPC_MoveParent,
/*567453*/    OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->567467
/*567456*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*567458*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSSZrrb_Int), 0,
                    MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (X86fdivRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VDIVSSZrrb_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$rc)
/*567467*/    /*SwitchType*/ 11, MVT::v2f64,// ->567480
/*567469*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*567471*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVSDZrrb_Int), 0,
                    MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (X86fdivRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VDIVSDZrrb_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$rc)
/*567480*/    0, // EndSwitchType
/*567481*/  /*SwitchOpcode*/ 36, TARGET_VAL(X86ISD::FADD_RND),// ->567520
/*567484*/    OPC_RecordChild0, // #0 = $src1
/*567485*/    OPC_RecordChild1, // #1 = $src2
/*567486*/    OPC_RecordChild2, // #2 = $rc
/*567487*/    OPC_MoveChild2,
/*567488*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*567491*/    OPC_MoveParent,
/*567492*/    OPC_SwitchType /*2 cases */, 11, MVT::v16f32,// ->567506
/*567495*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*567497*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPSZrrb), 0,
                    MVT::v16f32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (X86faddRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VADDPSZrrb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i32] }):$rc)
/*567506*/    /*SwitchType*/ 11, MVT::v8f64,// ->567519
/*567508*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*567510*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VADDPDZrrb), 0,
                    MVT::v8f64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (X86faddRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VADDPDZrrb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i32] }):$rc)
/*567519*/    0, // EndSwitchType
/*567520*/  /*SwitchOpcode*/ 36, TARGET_VAL(X86ISD::FMUL_RND),// ->567559
/*567523*/    OPC_RecordChild0, // #0 = $src1
/*567524*/    OPC_RecordChild1, // #1 = $src2
/*567525*/    OPC_RecordChild2, // #2 = $rc
/*567526*/    OPC_MoveChild2,
/*567527*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*567530*/    OPC_MoveParent,
/*567531*/    OPC_SwitchType /*2 cases */, 11, MVT::v16f32,// ->567545
/*567534*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*567536*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPSZrrb), 0,
                    MVT::v16f32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (X86fmulRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VMULPSZrrb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i32] }):$rc)
/*567545*/    /*SwitchType*/ 11, MVT::v8f64,// ->567558
/*567547*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*567549*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VMULPDZrrb), 0,
                    MVT::v8f64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (X86fmulRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VMULPDZrrb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i32] }):$rc)
/*567558*/    0, // EndSwitchType
/*567559*/  /*SwitchOpcode*/ 36, TARGET_VAL(X86ISD::FSUB_RND),// ->567598
/*567562*/    OPC_RecordChild0, // #0 = $src1
/*567563*/    OPC_RecordChild1, // #1 = $src2
/*567564*/    OPC_RecordChild2, // #2 = $rc
/*567565*/    OPC_MoveChild2,
/*567566*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*567569*/    OPC_MoveParent,
/*567570*/    OPC_SwitchType /*2 cases */, 11, MVT::v16f32,// ->567584
/*567573*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*567575*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPSZrrb), 0,
                    MVT::v16f32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (X86fsubRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VSUBPSZrrb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i32] }):$rc)
/*567584*/    /*SwitchType*/ 11, MVT::v8f64,// ->567597
/*567586*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*567588*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VSUBPDZrrb), 0,
                    MVT::v8f64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (X86fsubRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VSUBPDZrrb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i32] }):$rc)
/*567597*/    0, // EndSwitchType
/*567598*/  /*SwitchOpcode*/ 36, TARGET_VAL(X86ISD::FDIV_RND),// ->567637
/*567601*/    OPC_RecordChild0, // #0 = $src1
/*567602*/    OPC_RecordChild1, // #1 = $src2
/*567603*/    OPC_RecordChild2, // #2 = $rc
/*567604*/    OPC_MoveChild2,
/*567605*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*567608*/    OPC_MoveParent,
/*567609*/    OPC_SwitchType /*2 cases */, 11, MVT::v16f32,// ->567623
/*567612*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*567614*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPSZrrb), 0,
                    MVT::v16f32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (X86fdivRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VDIVPSZrrb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i32] }):$rc)
/*567623*/    /*SwitchType*/ 11, MVT::v8f64,// ->567636
/*567625*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*567627*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VDIVPDZrrb), 0,
                    MVT::v8f64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (X86fdivRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VDIVPDZrrb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i32] }):$rc)
/*567636*/    0, // EndSwitchType
/*567637*/  /*SwitchOpcode*/ 36, TARGET_VAL(X86ISD::SCALEF_RND),// ->567676
/*567640*/    OPC_RecordChild0, // #0 = $src1
/*567641*/    OPC_RecordChild1, // #1 = $src2
/*567642*/    OPC_RecordChild2, // #2 = $rc
/*567643*/    OPC_MoveChild2,
/*567644*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*567647*/    OPC_MoveParent,
/*567648*/    OPC_SwitchType /*2 cases */, 11, MVT::v16f32,// ->567662
/*567651*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*567653*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPSZrrb), 0,
                    MVT::v16f32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (X86scalefRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VSCALEFPSZrrb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i32] }):$rc)
/*567662*/    /*SwitchType*/ 11, MVT::v8f64,// ->567675
/*567664*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*567666*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFPDZrrb), 0,
                    MVT::v8f64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (X86scalefRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VSCALEFPDZrrb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i32] }):$rc)
/*567675*/    0, // EndSwitchType
/*567676*/  /*SwitchOpcode*/ 36, TARGET_VAL(X86ISD::SCALEFS_RND),// ->567715
/*567679*/    OPC_RecordChild0, // #0 = $src1
/*567680*/    OPC_RecordChild1, // #1 = $src2
/*567681*/    OPC_RecordChild2, // #2 = $rc
/*567682*/    OPC_MoveChild2,
/*567683*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*567686*/    OPC_MoveParent,
/*567687*/    OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->567701
/*567690*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*567692*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFSSZrrb_Int), 0,
                    MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (X86scalefsRnd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VSCALEFSSZrrb_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$rc)
/*567701*/    /*SwitchType*/ 11, MVT::v2f64,// ->567714
/*567703*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*567705*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VSCALEFSDZrrb_Int), 0,
                    MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (X86scalefsRnd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VSCALEFSDZrrb_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$rc)
/*567714*/    0, // EndSwitchType
/*567715*/  /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::FMADDSUB_RND),// ->567757
/*567718*/    OPC_RecordChild0, // #0 = $src2
/*567719*/    OPC_RecordChild1, // #1 = $src1
/*567720*/    OPC_RecordChild2, // #2 = $src3
/*567721*/    OPC_RecordChild3, // #3 = $rc
/*567722*/    OPC_MoveChild3,
/*567723*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*567726*/    OPC_MoveParent,
/*567727*/    OPC_SwitchType /*2 cases */, 12, MVT::v16f32,// ->567742
/*567730*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*567732*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PSZrb), 0,
                    MVT::v16f32, 4/*#Ops*/, 1, 0, 2, 3, 
                // Src: (X86FmaddsubRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3, (timm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VFMADDSUB213PSZrb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, (timm:{ *:[i32] }):$rc)
/*567742*/    /*SwitchType*/ 12, MVT::v8f64,// ->567756
/*567744*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*567746*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFMADDSUB213PDZrb), 0,
                    MVT::v8f64, 4/*#Ops*/, 1, 0, 2, 3, 
                // Src: (X86FmaddsubRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3, (timm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VFMADDSUB213PDZrb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, (timm:{ *:[i32] }):$rc)
/*567756*/    0, // EndSwitchType
/*567757*/  /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::FMSUBADD_RND),// ->567799
/*567760*/    OPC_RecordChild0, // #0 = $src2
/*567761*/    OPC_RecordChild1, // #1 = $src1
/*567762*/    OPC_RecordChild2, // #2 = $src3
/*567763*/    OPC_RecordChild3, // #3 = $rc
/*567764*/    OPC_MoveChild3,
/*567765*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*567768*/    OPC_MoveParent,
/*567769*/    OPC_SwitchType /*2 cases */, 12, MVT::v16f32,// ->567784
/*567772*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*567774*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PSZrb), 0,
                    MVT::v16f32, 4/*#Ops*/, 1, 0, 2, 3, 
                // Src: (X86FmsubaddRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src3, (timm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VFMSUBADD213PSZrb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16f32] }:$src3, (timm:{ *:[i32] }):$rc)
/*567784*/    /*SwitchType*/ 12, MVT::v8f64,// ->567798
/*567786*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*567788*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFMSUBADD213PDZrb), 0,
                    MVT::v8f64, 4/*#Ops*/, 1, 0, 2, 3, 
                // Src: (X86FmsubaddRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src3, (timm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VFMSUBADD213PDZrb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8f64] }:$src3, (timm:{ *:[i32] }):$rc)
/*567798*/    0, // EndSwitchType
/*567799*/  /*SwitchOpcode*/ 63, TARGET_VAL(X86ISD::SCALAR_SINT_TO_FP_RND),// ->567865
/*567802*/    OPC_RecordChild0, // #0 = $src1
/*567803*/    OPC_RecordChild1, // #1 = $src2
/*567804*/    OPC_Scope, 21, /*->567827*/ // 2 children in Scope
/*567806*/      OPC_CheckChild1Type, MVT::i32,
/*567808*/      OPC_RecordChild2, // #2 = $rc
/*567809*/      OPC_MoveChild2,
/*567810*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*567813*/      OPC_MoveParent,
/*567814*/      OPC_CheckType, MVT::v4f32,
/*567816*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*567818*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI2SSZrrb_Int), 0,
                    MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (X86SintToFpRnd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, GR32:{ *:[i32] }:$src2, (timm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VCVTSI2SSZrrb_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, GR32:{ *:[i32] }:$src2, (timm:{ *:[i32] }):$rc)
/*567827*/    /*Scope*/ 36, /*->567864*/
/*567828*/      OPC_CheckChild1Type, MVT::i64,
/*567830*/      OPC_RecordChild2, // #2 = $rc
/*567831*/      OPC_MoveChild2,
/*567832*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*567835*/      OPC_MoveParent,
/*567836*/      OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->567850
/*567839*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*567841*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI642SSZrrb_Int), 0,
                      MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86SintToFpRnd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, GR64:{ *:[i64] }:$src2, (timm:{ *:[i32] }):$rc) - Complexity = 6
                  // Dst: (VCVTSI642SSZrrb_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, GR64:{ *:[i64] }:$src2, (timm:{ *:[i32] }):$rc)
/*567850*/      /*SwitchType*/ 11, MVT::v2f64,// ->567863
/*567852*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*567854*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSI642SDZrrb_Int), 0,
                      MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86SintToFpRnd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, GR64:{ *:[i64] }:$src2, (timm:{ *:[i32] }):$rc) - Complexity = 6
                  // Dst: (VCVTSI642SDZrrb_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, GR64:{ *:[i64] }:$src2, (timm:{ *:[i32] }):$rc)
/*567863*/      0, // EndSwitchType
/*567864*/    0, /*End of Scope*/
/*567865*/  /*SwitchOpcode*/ 63, TARGET_VAL(X86ISD::SCALAR_UINT_TO_FP_RND),// ->567931
/*567868*/    OPC_RecordChild0, // #0 = $src1
/*567869*/    OPC_RecordChild1, // #1 = $src2
/*567870*/    OPC_Scope, 21, /*->567893*/ // 2 children in Scope
/*567872*/      OPC_CheckChild1Type, MVT::i32,
/*567874*/      OPC_RecordChild2, // #2 = $rc
/*567875*/      OPC_MoveChild2,
/*567876*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*567879*/      OPC_MoveParent,
/*567880*/      OPC_CheckType, MVT::v4f32,
/*567882*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*567884*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUSI2SSZrrb_Int), 0,
                    MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (X86UintToFpRnd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, GR32:{ *:[i32] }:$src2, (timm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VCVTUSI2SSZrrb_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, GR32:{ *:[i32] }:$src2, (timm:{ *:[i32] }):$rc)
/*567893*/    /*Scope*/ 36, /*->567930*/
/*567894*/      OPC_CheckChild1Type, MVT::i64,
/*567896*/      OPC_RecordChild2, // #2 = $rc
/*567897*/      OPC_MoveChild2,
/*567898*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*567901*/      OPC_MoveParent,
/*567902*/      OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->567916
/*567905*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*567907*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUSI642SSZrrb_Int), 0,
                      MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86UintToFpRnd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, GR64:{ *:[i64] }:$src2, (timm:{ *:[i32] }):$rc) - Complexity = 6
                  // Dst: (VCVTUSI642SSZrrb_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, GR64:{ *:[i64] }:$src2, (timm:{ *:[i32] }):$rc)
/*567916*/      /*SwitchType*/ 11, MVT::v2f64,// ->567929
/*567918*/        OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*567920*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUSI642SDZrrb_Int), 0,
                      MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                  // Src: (X86UintToFpRnd:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, GR64:{ *:[i64] }:$src2, (timm:{ *:[i32] }):$rc) - Complexity = 6
                  // Dst: (VCVTUSI642SDZrrb_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, GR64:{ *:[i64] }:$src2, (timm:{ *:[i32] }):$rc)
/*567929*/      0, // EndSwitchType
/*567930*/    0, /*End of Scope*/
/*567931*/  /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::VFPROUNDS_RND),// ->567955
/*567934*/    OPC_RecordChild0, // #0 = $src1
/*567935*/    OPC_RecordChild1, // #1 = $src2
/*567936*/    OPC_RecordChild2, // #2 = $rc
/*567937*/    OPC_MoveChild2,
/*567938*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*567941*/    OPC_MoveParent,
/*567942*/    OPC_CheckType, MVT::v4f32,
/*567944*/    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*567946*/    OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSD2SSZrrb_Int), 0,
                  MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
              // Src: (X86froundsRnd:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$rc) - Complexity = 6
              // Dst: (VCVTSD2SSZrrb_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$rc)
/*567955*/  /*SwitchOpcode*/ 21, TARGET_VAL(X86ISD::VFPROUND_RND),// ->567979
/*567958*/    OPC_RecordChild0, // #0 = $src
/*567959*/    OPC_CheckChild0Type, MVT::v8f64,
/*567961*/    OPC_RecordChild1, // #1 = $rc
/*567962*/    OPC_MoveChild1,
/*567963*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*567966*/    OPC_MoveParent,
/*567967*/    OPC_CheckType, MVT::v8f32,
/*567969*/    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*567971*/    OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPD2PSZrrb), 0,
                  MVT::v8f32, 2/*#Ops*/, 0, 1, 
              // Src: (X86vfproundRnd:{ *:[v8f32] } VR512:{ *:[v8f64] }:$src, (timm:{ *:[i32] }):$rc) - Complexity = 6
              // Dst: (VCVTPD2PSZrrb:{ *:[v8f32] } VR512:{ *:[v8f64] }:$src, (timm:{ *:[i32] }):$rc)
/*567979*/  /*SwitchOpcode*/ 59, TARGET_VAL(X86ISD::SINT_TO_FP_RND),// ->568041
/*567982*/    OPC_RecordChild0, // #0 = $src
/*567983*/    OPC_Scope, 20, /*->568005*/ // 2 children in Scope
/*567985*/      OPC_CheckChild0Type, MVT::v16i32,
/*567987*/      OPC_RecordChild1, // #1 = $rc
/*567988*/      OPC_MoveChild1,
/*567989*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*567992*/      OPC_MoveParent,
/*567993*/      OPC_CheckType, MVT::v16f32,
/*567995*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*567997*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTDQ2PSZrrb), 0,
                    MVT::v16f32, 2/*#Ops*/, 0, 1, 
                // Src: (X86VSintToFpRnd:{ *:[v16f32] } VR512:{ *:[v16i32] }:$src, (timm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VCVTDQ2PSZrrb:{ *:[v16f32] } VR512:{ *:[v16i32] }:$src, (timm:{ *:[i32] }):$rc)
/*568005*/    /*Scope*/ 34, /*->568040*/
/*568006*/      OPC_CheckChild0Type, MVT::v8i64,
/*568008*/      OPC_RecordChild1, // #1 = $rc
/*568009*/      OPC_MoveChild1,
/*568010*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*568013*/      OPC_MoveParent,
/*568014*/      OPC_SwitchType /*2 cases */, 10, MVT::v8f64,// ->568027
/*568017*/        OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*568019*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PDZrrb), 0,
                      MVT::v8f64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86VSintToFpRnd:{ *:[v8f64] } VR512:{ *:[v8i64] }:$src, (timm:{ *:[i32] }):$rc) - Complexity = 6
                  // Dst: (VCVTQQ2PDZrrb:{ *:[v8f64] } VR512:{ *:[v8i64] }:$src, (timm:{ *:[i32] }):$rc)
/*568027*/      /*SwitchType*/ 10, MVT::v8f32,// ->568039
/*568029*/        OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*568031*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTQQ2PSZrrb), 0,
                      MVT::v8f32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86VSintToFpRnd:{ *:[v8f32] } VR512:{ *:[v8i64] }:$src, (timm:{ *:[i32] }):$rc) - Complexity = 6
                  // Dst: (VCVTQQ2PSZrrb:{ *:[v8f32] } VR512:{ *:[v8i64] }:$src, (timm:{ *:[i32] }):$rc)
/*568039*/      0, // EndSwitchType
/*568040*/    0, /*End of Scope*/
/*568041*/  /*SwitchOpcode*/ 59, TARGET_VAL(X86ISD::UINT_TO_FP_RND),// ->568103
/*568044*/    OPC_RecordChild0, // #0 = $src
/*568045*/    OPC_Scope, 20, /*->568067*/ // 2 children in Scope
/*568047*/      OPC_CheckChild0Type, MVT::v16i32,
/*568049*/      OPC_RecordChild1, // #1 = $rc
/*568050*/      OPC_MoveChild1,
/*568051*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*568054*/      OPC_MoveParent,
/*568055*/      OPC_CheckType, MVT::v16f32,
/*568057*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*568059*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUDQ2PSZrrb), 0,
                    MVT::v16f32, 2/*#Ops*/, 0, 1, 
                // Src: (X86VUintToFpRnd:{ *:[v16f32] } VR512:{ *:[v16i32] }:$src, (timm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VCVTUDQ2PSZrrb:{ *:[v16f32] } VR512:{ *:[v16i32] }:$src, (timm:{ *:[i32] }):$rc)
/*568067*/    /*Scope*/ 34, /*->568102*/
/*568068*/      OPC_CheckChild0Type, MVT::v8i64,
/*568070*/      OPC_RecordChild1, // #1 = $rc
/*568071*/      OPC_MoveChild1,
/*568072*/      OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*568075*/      OPC_MoveParent,
/*568076*/      OPC_SwitchType /*2 cases */, 10, MVT::v8f64,// ->568089
/*568079*/        OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*568081*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PDZrrb), 0,
                      MVT::v8f64, 2/*#Ops*/, 0, 1, 
                  // Src: (X86VUintToFpRnd:{ *:[v8f64] } VR512:{ *:[v8i64] }:$src, (timm:{ *:[i32] }):$rc) - Complexity = 6
                  // Dst: (VCVTUQQ2PDZrrb:{ *:[v8f64] } VR512:{ *:[v8i64] }:$src, (timm:{ *:[i32] }):$rc)
/*568089*/      /*SwitchType*/ 10, MVT::v8f32,// ->568101
/*568091*/        OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*568093*/        OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTUQQ2PSZrrb), 0,
                      MVT::v8f32, 2/*#Ops*/, 0, 1, 
                  // Src: (X86VUintToFpRnd:{ *:[v8f32] } VR512:{ *:[v8i64] }:$src, (timm:{ *:[i32] }):$rc) - Complexity = 6
                  // Dst: (VCVTUQQ2PSZrrb:{ *:[v8f32] } VR512:{ *:[v8i64] }:$src, (timm:{ *:[i32] }):$rc)
/*568101*/      0, // EndSwitchType
/*568102*/    0, /*End of Scope*/
/*568103*/  /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::FSQRT_RND),// ->568139
/*568106*/    OPC_RecordChild0, // #0 = $src
/*568107*/    OPC_RecordChild1, // #1 = $rc
/*568108*/    OPC_MoveChild1,
/*568109*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*568112*/    OPC_MoveParent,
/*568113*/    OPC_SwitchType /*2 cases */, 10, MVT::v16f32,// ->568126
/*568116*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*568118*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPSZrb), 0,
                    MVT::v16f32, 2/*#Ops*/, 0, 1, 
                // Src: (X86fsqrtRnd:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src, (timm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VSQRTPSZrb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src, (timm:{ *:[i32] }):$rc)
/*568126*/    /*SwitchType*/ 10, MVT::v8f64,// ->568138
/*568128*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*568130*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTPDZrb), 0,
                    MVT::v8f64, 2/*#Ops*/, 0, 1, 
                // Src: (X86fsqrtRnd:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src, (timm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VSQRTPDZrb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src, (timm:{ *:[i32] }):$rc)
/*568138*/    0, // EndSwitchType
/*568139*/  /*SwitchOpcode*/ 36, TARGET_VAL(X86ISD::FSQRTS_RND),// ->568178
/*568142*/    OPC_RecordChild0, // #0 = $src1
/*568143*/    OPC_RecordChild1, // #1 = $src2
/*568144*/    OPC_RecordChild2, // #2 = $rc
/*568145*/    OPC_MoveChild2,
/*568146*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*568149*/    OPC_MoveParent,
/*568150*/    OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->568164
/*568153*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*568155*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTSSZrb_Int), 0,
                    MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (X86fsqrtRnds:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VSQRTSSZrb_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$rc)
/*568164*/    /*SwitchType*/ 11, MVT::v2f64,// ->568177
/*568166*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*568168*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VSQRTSDZrb_Int), 0,
                    MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (X86fsqrtRnds:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$rc) - Complexity = 6
                // Dst: (VSQRTSDZrb_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$rc)
/*568177*/    0, // EndSwitchType
/*568178*/  /*SwitchOpcode*/ 36, TARGET_VAL(X86ISD::VRNDSCALES_SAE),// ->568217
/*568181*/    OPC_RecordChild0, // #0 = $src1
/*568182*/    OPC_RecordChild1, // #1 = $src2
/*568183*/    OPC_RecordChild2, // #2 = $src3
/*568184*/    OPC_MoveChild2,
/*568185*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*568188*/    OPC_MoveParent,
/*568189*/    OPC_SwitchType /*2 cases */, 11, MVT::v4f32,// ->568203
/*568192*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*568194*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESSZrb_Int), 0,
                    MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (X86RndScalesSAE:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3) - Complexity = 6
                // Dst: (VRNDSCALESSZrb_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3)
/*568203*/    /*SwitchType*/ 11, MVT::v2f64,// ->568216
/*568205*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*568207*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALESDZrb_Int), 0,
                    MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (X86RndScalesSAE:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3) - Complexity = 6
                // Dst: (VRNDSCALESDZrb_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3)
/*568216*/    0, // EndSwitchType
/*568217*/  /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VREDUCE_SAE),// ->568253
/*568220*/    OPC_RecordChild0, // #0 = $src1
/*568221*/    OPC_RecordChild1, // #1 = $src2
/*568222*/    OPC_MoveChild1,
/*568223*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*568226*/    OPC_MoveParent,
/*568227*/    OPC_SwitchType /*2 cases */, 10, MVT::v16f32,// ->568240
/*568230*/      OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*568232*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPSZrrib), 0,
                    MVT::v16f32, 2/*#Ops*/, 0, 1, 
                // Src: (X86VReduceSAE:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 6
                // Dst: (VREDUCEPSZrrib:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*568240*/    /*SwitchType*/ 10, MVT::v8f64,// ->568252
/*568242*/      OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*568244*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCEPDZrrib), 0,
                    MVT::v8f64, 2/*#Ops*/, 0, 1, 
                // Src: (X86VReduceSAE:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 6
                // Dst: (VREDUCEPDZrrib:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i32] }):$src2)
/*568252*/    0, // EndSwitchType
/*568253*/  /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VRNDSCALE_SAE),// ->568289
/*568256*/    OPC_RecordChild0, // #0 = $src1
/*568257*/    OPC_RecordChild1, // #1 = $src2
/*568258*/    OPC_MoveChild1,
/*568259*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*568262*/    OPC_MoveParent,
/*568263*/    OPC_SwitchType /*2 cases */, 10, MVT::v16f32,// ->568276
/*568266*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*568268*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPSZrrib), 0,
                    MVT::v16f32, 2/*#Ops*/, 0, 1, 
                // Src: (X86VRndScaleSAE:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 6
                // Dst: (VRNDSCALEPSZrrib:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*568276*/    /*SwitchType*/ 10, MVT::v8f64,// ->568288
/*568278*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*568280*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VRNDSCALEPDZrrib), 0,
                    MVT::v8f64, 2/*#Ops*/, 0, 1, 
                // Src: (X86VRndScaleSAE:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 6
                // Dst: (VRNDSCALEPDZrrib:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i32] }):$src2)
/*568288*/    0, // EndSwitchType
/*568289*/  /*SwitchOpcode*/ 33, TARGET_VAL(X86ISD::VGETMANT_SAE),// ->568325
/*568292*/    OPC_RecordChild0, // #0 = $src1
/*568293*/    OPC_RecordChild1, // #1 = $src2
/*568294*/    OPC_MoveChild1,
/*568295*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*568298*/    OPC_MoveParent,
/*568299*/    OPC_SwitchType /*2 cases */, 10, MVT::v16f32,// ->568312
/*568302*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*568304*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPSZrrib), 0,
                    MVT::v16f32, 2/*#Ops*/, 0, 1, 
                // Src: (X86VGetMantSAE:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 6
                // Dst: (VGETMANTPSZrrib:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, (timm:{ *:[i32] }):$src2)
/*568312*/    /*SwitchType*/ 10, MVT::v8f64,// ->568324
/*568314*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*568316*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTPDZrrib), 0,
                    MVT::v8f64, 2/*#Ops*/, 0, 1, 
                // Src: (X86VGetMantSAE:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i32] }):$src2) - Complexity = 6
                // Dst: (VGETMANTPDZrrib:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, (timm:{ *:[i32] }):$src2)
/*568324*/    0, // EndSwitchType
/*568325*/  /*SwitchOpcode*/ 36, TARGET_VAL(X86ISD::VRANGE_SAE),// ->568364
/*568328*/    OPC_RecordChild0, // #0 = $src1
/*568329*/    OPC_RecordChild1, // #1 = $src2
/*568330*/    OPC_RecordChild2, // #2 = $src3
/*568331*/    OPC_MoveChild2,
/*568332*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*568335*/    OPC_MoveParent,
/*568336*/    OPC_SwitchType /*2 cases */, 11, MVT::v8f64,// ->568350
/*568339*/      OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*568341*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPDZrrib), 0,
                    MVT::v8f64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (X86VRangeSAE:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i32] }):$src3) - Complexity = 6
                // Dst: (VRANGEPDZrrib:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, (timm:{ *:[i32] }):$src3)
/*568350*/    /*SwitchType*/ 11, MVT::v16f32,// ->568363
/*568352*/      OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*568354*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGEPSZrrib), 0,
                    MVT::v16f32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (X86VRangeSAE:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i32] }):$src3) - Complexity = 6
                // Dst: (VRANGEPSZrrib:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, (timm:{ *:[i32] }):$src3)
/*568363*/    0, // EndSwitchType
/*568364*/  /*SwitchOpcode*/ 36, TARGET_VAL(X86ISD::VRANGES_SAE),// ->568403
/*568367*/    OPC_RecordChild0, // #0 = $src1
/*568368*/    OPC_RecordChild1, // #1 = $src2
/*568369*/    OPC_RecordChild2, // #2 = $src3
/*568370*/    OPC_MoveChild2,
/*568371*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*568374*/    OPC_MoveParent,
/*568375*/    OPC_SwitchType /*2 cases */, 11, MVT::v2f64,// ->568389
/*568378*/      OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*568380*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGESDZrrib), 0,
                    MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (X86RangesSAE:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3) - Complexity = 6
                // Dst: (VRANGESDZrrib:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3)
/*568389*/    /*SwitchType*/ 11, MVT::v4f32,// ->568402
/*568391*/      OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*568393*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VRANGESSZrrib), 0,
                    MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (X86RangesSAE:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3) - Complexity = 6
                // Dst: (VRANGESSZrrib:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3)
/*568402*/    0, // EndSwitchType
/*568403*/  /*SwitchOpcode*/ 36, TARGET_VAL(X86ISD::VREDUCES_SAE),// ->568442
/*568406*/    OPC_RecordChild0, // #0 = $src1
/*568407*/    OPC_RecordChild1, // #1 = $src2
/*568408*/    OPC_RecordChild2, // #2 = $src3
/*568409*/    OPC_MoveChild2,
/*568410*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*568413*/    OPC_MoveParent,
/*568414*/    OPC_SwitchType /*2 cases */, 11, MVT::v2f64,// ->568428
/*568417*/      OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*568419*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCESDZrrib), 0,
                    MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (X86ReducesSAE:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3) - Complexity = 6
                // Dst: (VREDUCESDZrrib:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3)
/*568428*/    /*SwitchType*/ 11, MVT::v4f32,// ->568441
/*568430*/      OPC_CheckPatternPredicate, 19, // (Subtarget->hasDQI())
/*568432*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VREDUCESSZrrib), 0,
                    MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (X86ReducesSAE:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3) - Complexity = 6
                // Dst: (VREDUCESSZrrib:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3)
/*568441*/    0, // EndSwitchType
/*568442*/  /*SwitchOpcode*/ 36, TARGET_VAL(X86ISD::VGETMANTS_SAE),// ->568481
/*568445*/    OPC_RecordChild0, // #0 = $src1
/*568446*/    OPC_RecordChild1, // #1 = $src2
/*568447*/    OPC_RecordChild2, // #2 = $src3
/*568448*/    OPC_MoveChild2,
/*568449*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*568452*/    OPC_MoveParent,
/*568453*/    OPC_SwitchType /*2 cases */, 11, MVT::v2f64,// ->568467
/*568456*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*568458*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTSDZrrib), 0,
                    MVT::v2f64, 3/*#Ops*/, 0, 1, 2, 
                // Src: (X86GetMantsSAE:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3) - Complexity = 6
                // Dst: (VGETMANTSDZrrib:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, (timm:{ *:[i32] }):$src3)
/*568467*/    /*SwitchType*/ 11, MVT::v4f32,// ->568480
/*568469*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*568471*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VGETMANTSSZrrib), 0,
                    MVT::v4f32, 3/*#Ops*/, 0, 1, 2, 
                // Src: (X86GetMantsSAE:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3) - Complexity = 6
                // Dst: (VGETMANTSSZrrib:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, (timm:{ *:[i32] }):$src3)
/*568480*/    0, // EndSwitchType
/*568481*/  /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VFIXUPIMMS_SAE),// ->568523
/*568484*/    OPC_RecordChild0, // #0 = $src1
/*568485*/    OPC_RecordChild1, // #1 = $src2
/*568486*/    OPC_RecordChild2, // #2 = $src3
/*568487*/    OPC_RecordChild3, // #3 = $src4
/*568488*/    OPC_MoveChild3,
/*568489*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*568492*/    OPC_MoveParent,
/*568493*/    OPC_SwitchType /*2 cases */, 12, MVT::v4f32,// ->568508
/*568496*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*568498*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMSSZrrib), 0,
                    MVT::v4f32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (X86VFixupimmSAEs:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4i32] }:$src3, (timm:{ *:[i32] }):$src4) - Complexity = 6
                // Dst: (VFIXUPIMMSSZrrib:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2, VR128X:{ *:[v4i32] }:$src3, (timm:{ *:[i32] }):$src4)
/*568508*/    /*SwitchType*/ 12, MVT::v2f64,// ->568522
/*568510*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*568512*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMSDZrrib), 0,
                    MVT::v2f64, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (X86VFixupimmSAEs:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2i64] }:$src3, (timm:{ *:[i32] }):$src4) - Complexity = 6
                // Dst: (VFIXUPIMMSDZrrib:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2, VR128X:{ *:[v2i64] }:$src3, (timm:{ *:[i32] }):$src4)
/*568522*/    0, // EndSwitchType
/*568523*/  /*SwitchOpcode*/ 39, TARGET_VAL(X86ISD::VFIXUPIMM_SAE),// ->568565
/*568526*/    OPC_RecordChild0, // #0 = $src1
/*568527*/    OPC_RecordChild1, // #1 = $src2
/*568528*/    OPC_RecordChild2, // #2 = $src3
/*568529*/    OPC_RecordChild3, // #3 = $src4
/*568530*/    OPC_MoveChild3,
/*568531*/    OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
/*568534*/    OPC_MoveParent,
/*568535*/    OPC_SwitchType /*2 cases */, 12, MVT::v16f32,// ->568550
/*568538*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*568540*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPSZrrib), 0,
                    MVT::v16f32, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (X86VFixupimmSAE:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16i32] }:$src3, (timm:{ *:[i32] }):$src4) - Complexity = 6
                // Dst: (VFIXUPIMMPSZrrib:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2, VR512:{ *:[v16i32] }:$src3, (timm:{ *:[i32] }):$src4)
/*568550*/    /*SwitchType*/ 12, MVT::v8f64,// ->568564
/*568552*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*568554*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VFIXUPIMMPDZrrib), 0,
                    MVT::v8f64, 4/*#Ops*/, 0, 1, 2, 3, 
                // Src: (X86VFixupimmSAE:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8i64] }:$src3, (timm:{ *:[i32] }):$src4) - Complexity = 6
                // Dst: (VFIXUPIMMPDZrrib:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2, VR512:{ *:[v8i64] }:$src3, (timm:{ *:[i32] }):$src4)
/*568564*/    0, // EndSwitchType
/*568565*/  /*SwitchOpcode*/ 37, TARGET_VAL(X86ISD::MOVHLPS),// ->568605
/*568568*/    OPC_RecordChild0, // #0 = $src1
/*568569*/    OPC_RecordChild1, // #1 = $src2
/*568570*/    OPC_Scope, 10, /*->568582*/ // 3 children in Scope
/*568572*/      OPC_CheckPatternPredicate, 12, // (Subtarget->hasAVX() && !Subtarget->hasAVX512())
/*568574*/      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)
/*568582*/    /*Scope*/ 10, /*->568593*/
/*568583*/      OPC_CheckPatternPredicate, 1, // (Subtarget->hasSSE1() && !Subtarget->hasAVX())
/*568585*/      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)
/*568593*/    /*Scope*/ 10, /*->568604*/
/*568594*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*568596*/      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)
/*568604*/    0, /*End of Scope*/
/*568605*/  /*SwitchOpcode*/ 28, TARGET_VAL(X86ISD::FMINS_SAE),// ->568636
/*568608*/    OPC_RecordChild0, // #0 = $src1
/*568609*/    OPC_RecordChild1, // #1 = $src2
/*568610*/    OPC_SwitchType /*2 cases */, 10, MVT::v4f32,// ->568623
/*568613*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*568615*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VMINSSZrrb_Int), 0,
                    MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (X86fminSAEs:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2) - Complexity = 3
                // Dst: (VMINSSZrrb_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*568623*/    /*SwitchType*/ 10, MVT::v2f64,// ->568635
/*568625*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*568627*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VMINSDZrrb_Int), 0,
                    MVT::v2f64, 2/*#Ops*/, 0, 1, 
                // Src: (X86fminSAEs:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2) - Complexity = 3
                // Dst: (VMINSDZrrb_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*568635*/    0, // EndSwitchType
/*568636*/  /*SwitchOpcode*/ 28, TARGET_VAL(X86ISD::FMAXS_SAE),// ->568667
/*568639*/    OPC_RecordChild0, // #0 = $src1
/*568640*/    OPC_RecordChild1, // #1 = $src2
/*568641*/    OPC_SwitchType /*2 cases */, 10, MVT::v4f32,// ->568654
/*568644*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*568646*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXSSZrrb_Int), 0,
                    MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (X86fmaxSAEs:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2) - Complexity = 3
                // Dst: (VMAXSSZrrb_Int:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*568654*/    /*SwitchType*/ 10, MVT::v2f64,// ->568666
/*568656*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*568658*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXSDZrrb_Int), 0,
                    MVT::v2f64, 2/*#Ops*/, 0, 1, 
                // Src: (X86fmaxSAEs:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2) - Complexity = 3
                // Dst: (VMAXSDZrrb_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*568666*/    0, // EndSwitchType
/*568667*/  /*SwitchOpcode*/ 28, TARGET_VAL(X86ISD::FMIN_SAE),// ->568698
/*568670*/    OPC_RecordChild0, // #0 = $src1
/*568671*/    OPC_RecordChild1, // #1 = $src2
/*568672*/    OPC_SwitchType /*2 cases */, 10, MVT::v16f32,// ->568685
/*568675*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*568677*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPSZrrb), 0,
                    MVT::v16f32, 2/*#Ops*/, 0, 1, 
                // Src: (X86fminSAE:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2) - Complexity = 3
                // Dst: (VMINPSZrrb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*568685*/    /*SwitchType*/ 10, MVT::v8f64,// ->568697
/*568687*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*568689*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VMINPDZrrb), 0,
                    MVT::v8f64, 2/*#Ops*/, 0, 1, 
                // Src: (X86fminSAE:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2) - Complexity = 3
                // Dst: (VMINPDZrrb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*568697*/    0, // EndSwitchType
/*568698*/  /*SwitchOpcode*/ 28, TARGET_VAL(X86ISD::FMAX_SAE),// ->568729
/*568701*/    OPC_RecordChild0, // #0 = $src1
/*568702*/    OPC_RecordChild1, // #1 = $src2
/*568703*/    OPC_SwitchType /*2 cases */, 10, MVT::v16f32,// ->568716
/*568706*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*568708*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPSZrrb), 0,
                    MVT::v16f32, 2/*#Ops*/, 0, 1, 
                // Src: (X86fmaxSAE:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2) - Complexity = 3
                // Dst: (VMAXPSZrrb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src1, VR512:{ *:[v16f32] }:$src2)
/*568716*/    /*SwitchType*/ 10, MVT::v8f64,// ->568728
/*568718*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*568720*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VMAXPDZrrb), 0,
                    MVT::v8f64, 2/*#Ops*/, 0, 1, 
                // Src: (X86fmaxSAE:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2) - Complexity = 3
                // Dst: (VMAXPDZrrb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src1, VR512:{ *:[v8f64] }:$src2)
/*568728*/    0, // EndSwitchType
/*568729*/  /*SwitchOpcode*/ 14, TARGET_VAL(X86ISD::VFPEXTS_SAE),// ->568746
/*568732*/    OPC_RecordChild0, // #0 = $src1
/*568733*/    OPC_RecordChild1, // #1 = $src2
/*568734*/    OPC_CheckType, MVT::v2f64,
/*568736*/    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*568738*/    OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTSS2SDZrrb_Int), 0,
                  MVT::v2f64, 2/*#Ops*/, 0, 1, 
              // Src: (X86fpextsSAE:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v4f32] }:$src2) - Complexity = 3
              // Dst: (VCVTSS2SDZrrb_Int:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*568746*/  /*SwitchOpcode*/ 14, TARGET_VAL(X86ISD::VFPEXT_SAE),// ->568763
/*568749*/    OPC_RecordChild0, // #0 = $src
/*568750*/    OPC_CheckChild0Type, MVT::v8f32,
/*568752*/    OPC_CheckType, MVT::v8f64,
/*568754*/    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*568756*/    OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPS2PDZrrb), 0,
                  MVT::v8f64, 1/*#Ops*/, 0, 
              // Src: (X86vfpextSAE:{ *:[v8f64] } VR256X:{ *:[v8f32] }:$src) - Complexity = 3
              // Dst: (VCVTPS2PDZrrb:{ *:[v8f64] } VR256X:{ *:[v8f32] }:$src)
/*568763*/  /*SwitchOpcode*/ 14, TARGET_VAL(X86ISD::CVTPH2PS_SAE),// ->568780
/*568766*/    OPC_RecordChild0, // #0 = $src
/*568767*/    OPC_CheckChild0Type, MVT::v16i16,
/*568769*/    OPC_CheckType, MVT::v16f32,
/*568771*/    OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*568773*/    OPC_MorphNodeTo1, TARGET_VAL(X86::VCVTPH2PSZrrb), 0,
                  MVT::v16f32, 1/*#Ops*/, 0, 
              // Src: (X86cvtph2psSAE:{ *:[v16f32] } VR256X:{ *:[v16i16] }:$src) - Complexity = 3
              // Dst: (VCVTPH2PSZrrb:{ *:[v16f32] } VR256X:{ *:[v16i16] }:$src)
/*568780*/  /*SwitchOpcode*/ 28, TARGET_VAL(X86ISD::RCP28S_SAE),// ->568811
/*568783*/    OPC_RecordChild0, // #0 = $src1
/*568784*/    OPC_RecordChild1, // #1 = $src2
/*568785*/    OPC_SwitchType /*2 cases */, 10, MVT::v4f32,// ->568798
/*568788*/      OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*568790*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP28SSZrb), 0,
                    MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (X86rcp28SAEs:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2) - Complexity = 3
                // Dst: (VRCP28SSZrb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*568798*/    /*SwitchType*/ 10, MVT::v2f64,// ->568810
/*568800*/      OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*568802*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP28SDZrb), 0,
                    MVT::v2f64, 2/*#Ops*/, 0, 1, 
                // Src: (X86rcp28SAEs:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2) - Complexity = 3
                // Dst: (VRCP28SDZrb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*568810*/    0, // EndSwitchType
/*568811*/  /*SwitchOpcode*/ 28, TARGET_VAL(X86ISD::RSQRT28S_SAE),// ->568842
/*568814*/    OPC_RecordChild0, // #0 = $src1
/*568815*/    OPC_RecordChild1, // #1 = $src2
/*568816*/    OPC_SwitchType /*2 cases */, 10, MVT::v4f32,// ->568829
/*568819*/      OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*568821*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT28SSZrb), 0,
                    MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (X86rsqrt28SAEs:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2) - Complexity = 3
                // Dst: (VRSQRT28SSZrb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*568829*/    /*SwitchType*/ 10, MVT::v2f64,// ->568841
/*568831*/      OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*568833*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT28SDZrb), 0,
                    MVT::v2f64, 2/*#Ops*/, 0, 1, 
                // Src: (X86rsqrt28SAEs:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2) - Complexity = 3
                // Dst: (VRSQRT28SDZrb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*568841*/    0, // EndSwitchType
/*568842*/  /*SwitchOpcode*/ 28, TARGET_VAL(X86ISD::FGETEXPS_SAE),// ->568873
/*568845*/    OPC_RecordChild0, // #0 = $src1
/*568846*/    OPC_RecordChild1, // #1 = $src2
/*568847*/    OPC_SwitchType /*2 cases */, 10, MVT::v4f32,// ->568860
/*568850*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*568852*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPSSZrb), 0,
                    MVT::v4f32, 2/*#Ops*/, 0, 1, 
                // Src: (X86fgetexpSAEs:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2) - Complexity = 3
                // Dst: (VGETEXPSSZrb:{ *:[v4f32] } VR128X:{ *:[v4f32] }:$src1, VR128X:{ *:[v4f32] }:$src2)
/*568860*/    /*SwitchType*/ 10, MVT::v2f64,// ->568872
/*568862*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*568864*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPSDZrb), 0,
                    MVT::v2f64, 2/*#Ops*/, 0, 1, 
                // Src: (X86fgetexpSAEs:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2) - Complexity = 3
                // Dst: (VGETEXPSDZrb:{ *:[v2f64] } VR128X:{ *:[v2f64] }:$src1, VR128X:{ *:[v2f64] }:$src2)
/*568872*/    0, // EndSwitchType
/*568873*/  /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::RSQRT28_SAE),// ->568901
/*568876*/    OPC_RecordChild0, // #0 = $src
/*568877*/    OPC_SwitchType /*2 cases */, 9, MVT::v16f32,// ->568889
/*568880*/      OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*568882*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT28PSZrb), 0,
                    MVT::v16f32, 1/*#Ops*/, 0, 
                // Src: (X86rsqrt28SAE:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src) - Complexity = 3
                // Dst: (VRSQRT28PSZrb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src)
/*568889*/    /*SwitchType*/ 9, MVT::v8f64,// ->568900
/*568891*/      OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*568893*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VRSQRT28PDZrb), 0,
                    MVT::v8f64, 1/*#Ops*/, 0, 
                // Src: (X86rsqrt28SAE:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src) - Complexity = 3
                // Dst: (VRSQRT28PDZrb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src)
/*568900*/    0, // EndSwitchType
/*568901*/  /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::RCP28_SAE),// ->568929
/*568904*/    OPC_RecordChild0, // #0 = $src
/*568905*/    OPC_SwitchType /*2 cases */, 9, MVT::v16f32,// ->568917
/*568908*/      OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*568910*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP28PSZrb), 0,
                    MVT::v16f32, 1/*#Ops*/, 0, 
                // Src: (X86rcp28SAE:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src) - Complexity = 3
                // Dst: (VRCP28PSZrb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src)
/*568917*/    /*SwitchType*/ 9, MVT::v8f64,// ->568928
/*568919*/      OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*568921*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VRCP28PDZrb), 0,
                    MVT::v8f64, 1/*#Ops*/, 0, 
                // Src: (X86rcp28SAE:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src) - Complexity = 3
                // Dst: (VRCP28PDZrb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src)
/*568928*/    0, // EndSwitchType
/*568929*/  /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::EXP2_SAE),// ->568957
/*568932*/    OPC_RecordChild0, // #0 = $src
/*568933*/    OPC_SwitchType /*2 cases */, 9, MVT::v16f32,// ->568945
/*568936*/      OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*568938*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VEXP2PSZrb), 0,
                    MVT::v16f32, 1/*#Ops*/, 0, 
                // Src: (X86exp2SAE:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src) - Complexity = 3
                // Dst: (VEXP2PSZrb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src)
/*568945*/    /*SwitchType*/ 9, MVT::v8f64,// ->568956
/*568947*/      OPC_CheckPatternPredicate, 171, // (Subtarget->hasERI())
/*568949*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VEXP2PDZrb), 0,
                    MVT::v8f64, 1/*#Ops*/, 0, 
                // Src: (X86exp2SAE:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src) - Complexity = 3
                // Dst: (VEXP2PDZrb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src)
/*568956*/    0, // EndSwitchType
/*568957*/  /*SwitchOpcode*/ 25, TARGET_VAL(X86ISD::FGETEXP_SAE),// ->568985
/*568960*/    OPC_RecordChild0, // #0 = $src
/*568961*/    OPC_SwitchType /*2 cases */, 9, MVT::v16f32,// ->568973
/*568964*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*568966*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPSZrb), 0,
                    MVT::v16f32, 1/*#Ops*/, 0, 
                // Src: (X86fgetexpSAE:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src) - Complexity = 3
                // Dst: (VGETEXPPSZrb:{ *:[v16f32] } VR512:{ *:[v16f32] }:$src)
/*568973*/    /*SwitchType*/ 9, MVT::v8f64,// ->568984
/*568975*/      OPC_CheckPatternPredicate, 6, // (Subtarget->hasAVX512())
/*568977*/      OPC_MorphNodeTo1, TARGET_VAL(X86::VGETEXPPDZrb), 0,
                    MVT::v8f64, 1/*#Ops*/, 0, 
                // Src: (X86fgetexpSAE:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src) - Complexity = 3
                // Dst: (VGETEXPPDZrb:{ *:[v8f64] } VR512:{ *:[v8f64] }:$src)
/*568984*/    0, // EndSwitchType
/*568985*/  0, // EndSwitchOpcode
    0
  }; // Total Array size is 568987 bytes

  // Opcode Histogram:
  // #OPC_Scope                                = 4802
  // #OPC_RecordNode                           = 5086
  // #OPC_RecordChild                          = 18681
  // #OPC_RecordMemRef                         = 4771
  // #OPC_CaptureGlueInput                     = 18
  // #OPC_MoveChild                            = 10083
  // #OPC_MoveParent                           = 23534
  // #OPC_CheckSame                            = 0
  // #OPC_CheckChildSame                       = 1747
  // #OPC_CheckPatternPredicate                = 18686
  // #OPC_CheckPredicate                       = 12168
  // #OPC_CheckOpcode                          = 5349
  // #OPC_SwitchOpcode                         = 1624
  // #OPC_CheckType                            = 10111
  // #OPC_SwitchType                           = 3406
  // #OPC_CheckChildType                       = 2097
  // #OPC_CheckInteger                         = 3
  // #OPC_CheckChildInteger                    = 1251
  // #OPC_CheckCondCode                        = 0
  // #OPC_CheckChild2CondCode                  = 12
  // #OPC_CheckValueType                       = 11
  // #OPC_CheckComplexPat                      = 12315
  // #OPC_CheckAndImm                          = 7
  // #OPC_CheckOrImm                           = 0
  // #OPC_CheckImmAllOnesV                     = 71
  // #OPC_CheckImmAllZerosV                    = 3157
  // #OPC_CheckFoldableChainNode               = 4873
  // #OPC_EmitInteger                          = 275
  // #OPC_EmitStringInteger                    = 2368
  // #OPC_EmitRegister                         = 0
  // #OPC_EmitConvertToTarget                  = 332
  // #OPC_EmitMergeInputChains                 = 12866
  // #OPC_EmitCopyToReg                        = 319
  // #OPC_EmitNode                             = 2982
  // #OPC_EmitNodeXForm                        = 1005
  // #OPC_CompleteMatch                        = 0
  // #OPC_MorphNodeTo                          = 20101

  #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() || shouldOptForSize(MF));
  case 10: return (Subtarget->is64Bit()) && (!Subtarget->slowIncDec() || shouldOptForSize(MF));
  case 11: return (Subtarget->hasF16C()) && (!Subtarget->hasVLX());
  case 12: return (Subtarget->hasAVX() && !Subtarget->hasAVX512());
  case 13: return (Subtarget->hasSSE41() && !Subtarget->hasAVX());
  case 14: return (Subtarget->hasAVX()) && (!Subtarget->hasBWI());
  case 15: return (Subtarget->hasBWI());
  case 16: return (Subtarget->hasAVX() && !Subtarget->hasAVX2());
  case 17: return (Subtarget->hasAVX2()) && (!Subtarget->hasVLX());
  case 18: return (Subtarget->hasAVX()) && (!Subtarget->hasDQI());
  case 19: return (Subtarget->hasDQI());
  case 20: return (!TM.isPositionIndependent()) && (TM.getCodeModel() == CodeModel::Small ||TM.getCodeModel() == CodeModel::Kernel);
  case 21: return (MF->getFunction().hasMinSize());
  case 22: return (Subtarget->hasMOVBE());
  case 23: return (!Subtarget->hasSSE1());
  case 24: return (!Subtarget->hasSSE2());
  case 25: return (Subtarget->hasBWI()) && (Subtarget->hasVLX());
  case 26: return (Subtarget->hasMMX());
  case 27: return (!Subtarget->hasAVX());
  case 28: return (Subtarget->hasAVX());
  case 29: return (Subtarget->hasAVX2());
  case 30: return (Subtarget->hasVBMI2());
  case 31: return (Subtarget->hasVBMI2()) && (Subtarget->hasVLX());
  case 32: return (!Subtarget->hasSSE1()) && (Subtarget->hasCMov());
  case 33: return (!Subtarget->hasSSE2()) && (Subtarget->hasCMov());
  case 34: return (Subtarget->hasCMov());
  case 35: return (Subtarget->hasMMX()) && (Subtarget->hasSSE1());
  case 36: return (Subtarget->hasMMX()) && (Subtarget->hasSSSE3());
  case 37: return (Subtarget->hasBMI2());
  case 38: return (Subtarget->hasSSE42());
  case 39: return (Subtarget->hasMMX()) && (Subtarget->hasSSE2());
  case 40: return (Subtarget->has3DNow());
  case 41: return (Subtarget->hasSHA());
  case 42: return (Subtarget->hasAES()) && (Subtarget->hasAVX());
  case 43: return (Subtarget->hasAES()) && (!Subtarget->hasAVX());
  case 44: return (Subtarget->hasPCLMUL()) && (!Subtarget->hasAVX());
  case 45: return (Subtarget->hasAVX()) && (Subtarget->hasPCLMUL()) && (!Subtarget->hasVLX() || !Subtarget->hasVPCLMULQDQ());
  case 46: return (Subtarget->hasVLX()) && (Subtarget->hasVPCLMULQDQ());
  case 47: return (Subtarget->hasVPCLMULQDQ()) && (!Subtarget->hasVLX());
  case 48: return (Subtarget->hasAVX512()) && (Subtarget->hasVPCLMULQDQ());
  case 49: return (Subtarget->hasXOP());
  case 50: return (Subtarget->hasSSSE3() && !Subtarget->hasAVX());
  case 51: return (Subtarget->hasAES()) && (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasVAES());
  case 52: return (Subtarget->hasVAES()) && (Subtarget->hasVLX());
  case 53: return (Subtarget->hasVAES()) && (!Subtarget->hasVLX());
  case 54: return (Subtarget->hasAVX512()) && (Subtarget->hasVAES());
  case 55: return (shouldOptForSize(MF)) && (Subtarget->hasSSE1() && !Subtarget->hasAVX());
  case 56: return (Subtarget->hasAVX()) && (shouldOptForSize(MF));
  case 57: return (Subtarget->hasPRFCHW());
  case 58: return (Subtarget->hasPREFETCHWT1());
  case 59: return (Subtarget->hasSSEPrefetch());
  case 60: return (Subtarget->has3DNow()) && (!Subtarget->hasSSEPrefetch());
  case 61: return (Subtarget->hasLWP());
  case 62: return (Subtarget->hasPTWRITE());
  case 63: return (Subtarget->hasPTWRITE()) && (Subtarget->is64Bit());
  case 64: return (Subtarget->hasMOVDIRI());
  case 65: return (Subtarget->hasMOVDIRI()) && (Subtarget->is64Bit());
  case 66: return (Subtarget->hasMOVDIR64B());
  case 67: return (Subtarget->hasMOVDIR64B()) && (Subtarget->is64Bit());
  case 68: return (Subtarget->hasCLFLUSHOPT());
  case 69: return (Subtarget->hasCLWB());
  case 70: return (Subtarget->hasCLDEMOTE());
  case 71: return (Subtarget->hasFXSR());
  case 72: return (Subtarget->hasFXSR()) && (Subtarget->is64Bit());
  case 73: return (Subtarget->hasXSAVE());
  case 74: return (Subtarget->hasXSAVE()) && (Subtarget->is64Bit());
  case 75: return (Subtarget->hasXSAVEOPT());
  case 76: return (Subtarget->hasXSAVEOPT()) && (Subtarget->is64Bit());
  case 77: return (Subtarget->hasXSAVEC());
  case 78: return (Subtarget->hasXSAVEC()) && (Subtarget->is64Bit());
  case 79: return (Subtarget->hasXSAVES());
  case 80: return (Subtarget->hasXSAVES()) && (Subtarget->is64Bit());
  case 81: return (Subtarget->hasINVPCID()) && (!Subtarget->is64Bit());
  case 82: return (Subtarget->hasINVPCID()) && (Subtarget->is64Bit());
  case 83: return (Subtarget->hasRTM());
  case 84: return (Subtarget->hasMWAITX());
  case 85: return (Subtarget->hasWAITPKG()) && (!Subtarget->is64Bit());
  case 86: return (Subtarget->hasWAITPKG());
  case 87: return (Subtarget->hasWAITPKG()) && (Subtarget->is64Bit());
  case 88: return (Subtarget->hasSSE1());
  case 89: return (Subtarget->hasMFence());
  case 90: return (Subtarget->hasAVX()) && (!Subtarget->is64Bit());
  case 91: return (!Subtarget->is64Bit()) && (Subtarget->hasSSE2() && !Subtarget->hasAVX());
  case 92: return (Subtarget->hasAVX()) && (Subtarget->is64Bit());
  case 93: return (Subtarget->is64Bit()) && (Subtarget->hasSSE2() && !Subtarget->hasAVX());
  case 94: return (Subtarget->hasSSE3());
  case 95: return (Subtarget->hasMMX()) && (Subtarget->hasSSE1()) && (!Subtarget->is64Bit());
  case 96: return (Subtarget->hasMMX()) && (Subtarget->hasSSE1()) && (Subtarget->is64Bit());
  case 97: return (Subtarget->hasWBNOINVD());
  case 98: return (Subtarget->hasFSGSBase()) && (Subtarget->is64Bit());
  case 99: return (!Subtarget->is64Bit());
  case 100: return (Subtarget->is64Bit()) && (!Subtarget->useRetpolineIndirectCalls());
  case 101: return (!TM.isPositionIndependent()) && (!Subtarget->is64Bit()) && (!Subtarget->useRetpolineIndirectCalls());
  case 102: return (!Subtarget->isTarget64BitLP64());
  case 103: return (Subtarget->isTarget64BitLP64());
  case 104: return (!Subtarget->is64Bit()) && (!Subtarget->useRetpolineIndirectCalls());
  case 105: return (Subtarget->is64Bit()) && (Subtarget->useRetpolineIndirectCalls());
  case 106: return (!Subtarget->is64Bit()) && (Subtarget->useRetpolineIndirectCalls());
  case 107: return (Subtarget->hasTBM());
  case 108: return (Subtarget->hasBMI());
  case 109: return (Subtarget->hasBMI()) && (!Subtarget->hasBMI2()) && (!Subtarget->hasTBM());
  case 110: return (Subtarget->hasBMI2()) && (!Subtarget->hasTBM());
  case 111: return (shouldOptForSize(MF));
  case 112: return (Subtarget->hasDQI()) && (Subtarget->hasVLX());
  case 113: return (Subtarget->hasAVX512()) && (!Subtarget->hasVLX());
  case 114: return (Subtarget->hasBITALG());
  case 115: return (Subtarget->hasBITALG()) && (Subtarget->hasVLX());
  case 116: return (!Subtarget->hasDQI());
  case 117: return (Subtarget->hasBWI()) && (!Subtarget->hasVLX());
  case 118: return (Subtarget->hasAVX()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI());
  case 119: return (Subtarget->hasAVX2()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI());
  case 120: return (Subtarget->hasDQI()) && (!Subtarget->hasVLX());
  case 121: return (!Subtarget->hasCMov());
  case 122: return (!Subtarget->hasAVX512());
  case 123: return (!Subtarget->hasVLX());
  case 124: return (Subtarget->hasFastSHLDRotate());
  case 125: return (shouldOptForSize(MF)) && (Subtarget->hasAVX() && !Subtarget->hasAVX512());
  case 126: return (shouldOptForSize(MF) || !Subtarget->hasSSE41()) && (Subtarget->hasSSE1() && !Subtarget->hasAVX());
  case 127: return (Subtarget->hasAVX()) && (!shouldOptForSize(MF));
  case 128: return (!shouldOptForSize(MF)) && (Subtarget->hasSSE41() && !Subtarget->hasAVX());
  case 129: return (Subtarget->hasAVX512()) && (shouldOptForSize(MF));
  case 130: return (Subtarget->hasAVX512()) && (!shouldOptForSize(MF));
  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->useRetpolineIndirectCalls());
  case 138: return (!Subtarget->slowTwoMemOps()) && (Subtarget->is64Bit()) && (!Subtarget->useRetpolineIndirectCalls());
  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->hasVP2INTERSECT());
  case 147: return (Subtarget->hasAVX512()) && (Subtarget->hasVLX()) && (Subtarget->hasVP2INTERSECT());
  case 148: return (Subtarget->hasVNNI());
  case 149: return (Subtarget->hasVLX()) && (Subtarget->hasVNNI());
  case 150: return (Subtarget->hasAVX512()) && (!Subtarget->hasDQI());
  case 151: return (Subtarget->hasENQCMD()) && (!Subtarget->is64Bit());
  case 152: return (Subtarget->hasENQCMD());
  case 153: return (Subtarget->hasENQCMD()) && (Subtarget->is64Bit());
  case 154: return (Subtarget->hasCmpxchg8b());
  case 155: return (Subtarget->hasCmpxchg16b()) && (Subtarget->is64Bit());
  case 156: return (Subtarget->hasAVX512()) && (!Subtarget->hasBWI());
  case 157: return (!Subtarget->is64Bit()) && (shouldOptForSize(MF));
  case 158: return (!Subtarget->isTargetWin64() ||Subtarget->getFrameLowering()->hasFP(*MF)) && (MF->getFunction().hasMinSize());
  case 159: return (Subtarget->hasDQI()) && (!Subtarget->hasBWI());
  case 160: return (Subtarget->hasDQI()) && (Subtarget->hasVLX()) && (!Subtarget->hasBWI());
  case 161: return (Subtarget->hasRDPID()) && (!Subtarget->is64Bit());
  case 162: return (Subtarget->hasRDPID()) && (Subtarget->is64Bit());
  case 163: return (Subtarget->hasSSE3() && !Subtarget->hasAVX());
  case 164: return (TM.getCodeModel() == CodeModel::Kernel);
  case 165: return (Subtarget->hasLAHFSAHF());
  case 166: return (Subtarget->hasRDRAND());
  case 167: return (Subtarget->hasRDSEED());
  case 168: return (!Subtarget->isTargetPS4());
  case 169: return (Subtarget->isTargetPS4());
  case 170: return (Subtarget->is64Bit()) && (!Subtarget->isTarget64BitLP64());
  case 171: return (Subtarget->hasERI());
  case 172: return (shouldOptForSize(MF)) && (Subtarget->hasSSE41() && !Subtarget->hasAVX());
  case 173: return (Subtarget->hasFMA()) && (!Subtarget->hasAVX512()) && (!Subtarget->hasFMA4());
  case 174: return (Subtarget->hasFMA4()) && (!Subtarget->hasAVX512());
  case 175: return (Subtarget->hasFMA()) && (!Subtarget->hasFMA4()) && (!Subtarget->hasVLX());
  case 176: return (Subtarget->hasFMA4()) && (!Subtarget->hasVLX());
  case 177: return (shouldOptForSize(MF)) && (Subtarget->hasSSE2() && !Subtarget->hasAVX());
  case 178: return (Subtarget->hasSSE1()) && (!Subtarget->hasAVX512());
  case 179: return (Subtarget->hasSSE2()) && (!Subtarget->hasAVX512());
  case 180: return (Subtarget->hasBWI()) && (Subtarget->hasGFNI()) && (Subtarget->hasVLX());
  case 181: return (Subtarget->hasVBMI()) && (Subtarget->hasVLX());
  case 182: return (Subtarget->hasBF16()) && (Subtarget->hasVLX());
  case 183: return (Subtarget->hasBF16());
  case 184: return (Subtarget->hasIFMA()) && (Subtarget->hasVLX());
  case 185: return (Subtarget->hasIFMA());
  case 186: return (Subtarget->hasAVX512()) && (Subtarget->hasBWI()) && (Subtarget->hasGFNI());
  case 187: return (Subtarget->hasVBMI());
  case 188: return (Subtarget->hasGFNI()) && (Subtarget->hasSSE2() && !Subtarget->hasAVX());
  case 189: return (Subtarget->hasAVX()) && (Subtarget->hasGFNI()) && (!Subtarget->hasVLX() || !Subtarget->hasBWI());
  case 190: return (Subtarget->hasBWI()) && (Subtarget->hasDQI());
  case 191: return (Subtarget->hasBWI()) && (!Subtarget->hasDQI());
  case 192: return (Subtarget->hasAVX()) && (true);
  case 193: return (Subtarget->hasAVX2()) && (true);
  case 194: return (Subtarget->hasSSE42() && !Subtarget->hasAVX());
  case 195: return (Subtarget->hasAVX() && !Subtarget->hasAVX2()) && (MF->getFunction().hasMinSize());
  case 196: return (Subtarget->hasFMA()) && (!Subtarget->hasAVX512());
  case 197: return (shouldOptForSize(MF) || !Subtarget->hasSSE41()) && (Subtarget->hasSSE2() && !Subtarget->hasAVX());
  }
}
#endif // GET_DAGISEL_BODY

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

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

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

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

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

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

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

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

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

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

  return isUnneededShiftMask(N, 5);

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

  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->isSimple();
  return false;

  }
  case 8: { 
    // Predicate_loadi32
    SDNode *N = Node;
    (void)N;

  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->isSimple();
  return false;

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

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

  return isUnneededShiftMask(N, 6);

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

  return isUnneededShiftMask(N, 3);

  }
  case 12: { 
    // Predicate_shiftMask16
    SDNode *N = Node;
    (void)N;

  return isUnneededShiftMask(N, 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
    auto *N = cast<ConstantSDNode>(Node);
    (void)N;

    return !shouldAvoidImmediateInstFormsForSize(N);

  }
  case 15: { 
    // Predicate_relocImm8_su
    // Predicate_relocImm16_su
    // Predicate_relocImm32_su
    // Predicate_i64relocImmSExt32_su
    // Predicate_i64relocImmSExt8_su
    SDNode *N = Node;
    (void)N;

    return !shouldAvoidImmediateInstFormsForSize(N);

  }
  case 16: { 
    // Predicate_i64relocImmSExt32
    SDNode *N = Node;
    (void)N;

  return isSExtRelocImm<32>(N);

  }
  case 17: { 
    // Predicate_srl_su
    // Predicate_trunc_su
    // Predicate_and_su
    // Predicate_X86cmpm_su
    // Predicate_X86Vfpclass_su
    // Predicate_X86Vpshufbitqmb_su
    // Predicate_X86cmpms_su
    // Predicate_X86Vfpclasss_su
    // Predicate_X86cmpmsSAE_su
    // Predicate_X86cmpmSAE_su
    // Predicate_X86vpmaddwd_su
    SDNode *N = Node;
    (void)N;

  return N->hasOneUse();

  }
  case 18: { 
    // Predicate_vextract128_extract
    // Predicate_vextract256_extract
    SDNode *N = Node;
    (void)N;

  // Index 0 can be handled via extract_subreg.
  return !isNullConstant(N->getOperand(1));

  }
  case 19: { 
    // Predicate_simple_store
    SDNode *N = Node;
    (void)N;

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

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

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

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

  }
  case 23: { 
    // Predicate_alignedstore
    SDNode *N = Node;
    (void)N;

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

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

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

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

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

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

  }
  case 28: { 
    // Predicate_masked_store_aligned
    SDNode *N = Node;
    (void)N;

  // Use the node type to determine the size the alignment needs to match.
  // We can't use memory VT because type widening changes the node VT, but
  // not the memory VT.
  auto *St = cast<MaskedStoreSDNode>(N);
  return St->getAlignment() >= St->getOperand(1).getValueType().getStoreSize();

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

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

  }
  case 30: { 
    // Predicate_X86mtruncstore
    SDNode *N = Node;
    (void)N;

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

  }
  case 31: { 
    // Predicate_masked_truncstorevi8
    SDNode *N = Node;
    (void)N;

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

  }
  case 32: { 
    // Predicate_masked_truncstorevi16
    SDNode *N = Node;
    (void)N;

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

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

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

  }
  case 34: { 
    // Predicate_atomic_load_8
    // Predicate_atomic_store_8
    // Predicate_sextloadi8
    // Predicate_zextloadi8
    // Predicate_extloadi8
    // Predicate_atomic_swap_8
    // Predicate_atomic_load_add_8
    SDNode *N = Node;
    (void)N;
if (cast<MemSDNode>(N)->getMemoryVT() != MVT::i8) return false;
return true;

  }
  case 35: { 
    // Predicate_atomic_load_16
    // Predicate_atomic_store_16
    // Predicate_sextloadi16
    // Predicate_zextloadi16
    // Predicate_extloadi16
    // Predicate_atomic_swap_16
    // Predicate_atomic_load_add_16
    SDNode *N = Node;
    (void)N;
if (cast<MemSDNode>(N)->getMemoryVT() != MVT::i16) return false;
return true;

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

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

  }
  case 38: { 
    // Predicate_i64immSExt32
    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();
 return isInt<32>(Imm); 
  }
  case 39: { 
    // Predicate_memop
    SDNode *N = Node;
    (void)N;

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

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

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

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

  return Imm < 3;

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

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

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

  // 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 44: { 
    // Predicate_AndMask64
    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();

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

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

  return N->getOpcode() != ISD::TRUNCATE &&
         N->getOpcode() != TargetOpcode::EXTRACT_SUBREG &&
         N->getOpcode() != ISD::CopyFromReg &&
         N->getOpcode() != ISD::AssertSext &&
         N->getOpcode() != ISD::AssertZext;

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

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

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

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

  }
  case 48: { 
    // Predicate_i64immZExt32
    int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();
 return isUInt<32>(Imm); 
  }
  case 49: { 
    // Predicate_X86VBroadcastld64
    // Predicate_X86vextractstore64
    // Predicate_X86vzload64
    SDNode *N = Node;
    (void)N;

  return cast<MemIntrinsicSDNode>(N)->getMemoryVT().getStoreSize() == 8;

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

  return cast<MemIntrinsicSDNode>(N)->getMemoryVT().getStoreSize() == 4;

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

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

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

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

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

  }
  case 54: { 
    // Predicate_and_flag_nocf
    // Predicate_or_flag_nocf
    // Predicate_xor_flag_nocf
    // Predicate_X86add_flag_nocf
    SDNode *N = Node;
    (void)N;

  return hasNoCarryFlagUses(SDValue(N, 1));

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

  return hasNoCarryFlagUses(SDValue(N, 0));

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

  // Only use DEC if the result is used.
  return !SDValue(N, 0).use_empty() && hasNoCarryFlagUses(SDValue(N, 1));

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

  return isSExtRelocImm<8>(N);

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

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

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

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

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

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

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

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

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

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

  return cast<MemIntrinsicSDNode>(N)->getMemoryVT() == MVT::i16;

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

  return cast<MemIntrinsicSDNode>(N)->getMemoryVT() == MVT::i32;

  }
  case 64: { 
    // Predicate_X86fp_to_i64mem
    // Predicate_X86fist64
    // Predicate_X86fild64
    // Predicate_X86fildflag64
    SDNode *N = Node;
    (void)N;

  return cast<MemIntrinsicSDNode>(N)->getMemoryVT() == MVT::i64;

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

  return cast<MemIntrinsicSDNode>(N)->getMemoryVT() == MVT::f32;

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

  return cast<MemIntrinsicSDNode>(N)->getMemoryVT() == MVT::f64;

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

  return cast<MemIntrinsicSDNode>(N)->getMemoryVT() == MVT::f80;

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

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

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

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

  LoadSDNode *LD = cast<LoadSDNode>(N);
  ISD::LoadExtType ExtType = LD->getExtensionType();
  if (ExtType != ISD::EXTLOAD)
    return false;
  if (LD->getMemoryVT() == MVT::i32)
    return true;

  return LD->getAlignment() >= 4 && LD->isSimple();

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

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

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

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

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

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

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

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

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

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

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

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

  }
  case 80: { 
    // Predicate_truncstore_s_vi16
    SDNode *N = Node;
    (void)N;

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

  }
  case 81: { 
    // Predicate_truncstore_s_vi32
    SDNode *N = Node;
    (void)N;

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

  }
  case 82: { 
    // Predicate_masked_truncstore_s_vi8
    SDNode *N = Node;
    (void)N;

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

  }
  case 83: { 
    // Predicate_masked_truncstore_s_vi16
    SDNode *N = Node;
    (void)N;

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

  }
  case 84: { 
    // Predicate_masked_truncstore_s_vi32
    SDNode *N = Node;
    (void)N;

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

  }
  case 85: { 
    // Predicate_truncstore_us_vi8
    SDNode *N = Node;
    (void)N;

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

  }
  case 86: { 
    // Predicate_truncstore_us_vi16
    SDNode *N = Node;
    (void)N;

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

  }
  case 87: { 
    // Predicate_truncstore_us_vi32
    SDNode *N = Node;
    (void)N;

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

  }
  case 88: { 
    // Predicate_masked_truncstore_us_vi8
    SDNode *N = Node;
    (void)N;

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

  }
  case 89: { 
    // Predicate_masked_truncstore_us_vi16
    SDNode *N = Node;
    (void)N;

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

  }
  case 90: { 
    // Predicate_masked_truncstore_us_vi32
    SDNode *N = Node;
    (void)N;

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

  }
  case 91: { 
    // Predicate_anyext_sdiv
    SDNode *N = Node;
    (void)N;

  return (N->getOperand(0).getOpcode() == ISD::SDIVREM &&
          N->getOperand(0).getResNo() == 1);

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

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

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

  return N->isExactlyValue(+0.0);

  }
  case 94: { 
    // Predicate_memopf128
    SDNode *N = Node;
    (void)N;

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

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

  return Imm.isExactlyValue(+0.0);

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

  return Imm.isExactlyValue(+1.0);

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

  return Imm.isExactlyValue(-0.0);

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

  return Imm.isExactlyValue(-1.0);

  }
  case 99: { 
    // Predicate_X86VBroadcastld8
    SDNode *N = Node;
    (void)N;

  return cast<MemIntrinsicSDNode>(N)->getMemoryVT().getStoreSize() == 1;

  }
  case 100: { 
    // Predicate_X86VBroadcastld16
    SDNode *N = Node;
    (void)N;

  return cast<MemIntrinsicSDNode>(N)->getMemoryVT().getStoreSize() == 2;

  }
  case 101: { 
    // Predicate_maskzeroupperv1i1
    // Predicate_maskzeroupperv8i1
    // Predicate_maskzeroupperv16i1
    // Predicate_maskzeroupperv32i1
    // Predicate_maskzeroupperv2i1
    // Predicate_maskzeroupperv4i1
    SDNode *N = Node;
    (void)N;

    return isMaskZeroExtended(N);
  
  }
  case 102: { 
    // Predicate_masked_load
    SDNode *N = Node;
    (void)N;

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

  }
  case 103: { 
    // Predicate_masked_load_aligned
    SDNode *N = Node;
    (void)N;

  // Use the node type to determine the size the alignment needs to match.
  // We can't use memory VT because type widening changes the node VT, but
  // not the memory VT.
  auto *Ld = cast<MaskedLoadSDNode>(N);
  return Ld->getAlignment() >= Ld->getValueType(0).getStoreSize();

  }
  case 104: { 
    // Predicate_X86mExpandingLoad
    SDNode *N = Node;
    (void)N;

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

  }
  case 105: { 
    // Predicate_X86pcmpm
    // Predicate_X86pcmpm_commute
    SDNode *N = Node;
    (void)N;

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

  }
  case 106: { 
    // Predicate_X86pcmpum
    // Predicate_X86pcmpum_commute
    SDNode *N = Node;
    (void)N;

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

  }
  case 107: { 
    // Predicate_mgatherv4i32
    SDNode *N = Node;
    (void)N;

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

  }
  case 108: { 
    // Predicate_mgatherv2i64
    SDNode *N = Node;
    (void)N;

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

  }
  case 109: { 
    // Predicate_mgatherv4i64
    SDNode *N = Node;
    (void)N;

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

  }
  case 110: { 
    // Predicate_mgatherv8i32
    SDNode *N = Node;
    (void)N;

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

  }
  case 111: { 
    // Predicate_mgatherv8i64
    SDNode *N = Node;
    (void)N;

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

  }
  case 112: { 
    // Predicate_mgatherv16i32
    SDNode *N = Node;
    (void)N;

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

  }
  case 113: { 
    // Predicate_mscatterv8i32
    SDNode *N = Node;
    (void)N;

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

  }
  case 114: { 
    // Predicate_mscatterv8i64
    SDNode *N = Node;
    (void)N;

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

  }
  case 115: { 
    // Predicate_mscatterv4i32
    SDNode *N = Node;
    (void)N;

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

  }
  case 116: { 
    // Predicate_mscatterv4i64
    SDNode *N = Node;
    (void)N;

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

  }
  case 117: { 
    // Predicate_mscatterv2i64
    SDNode *N = Node;
    (void)N;

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

  }
  case 118: { 
    // Predicate_mscatterv16i32
    SDNode *N = Node;
    (void)N;

  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+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 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+1);
  return selectMOV64Imm32(N, Result[NextRes+0].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: {  // PCLMULCommuteImm
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());

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

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

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

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

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

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

  // Transformation function: Find the lowest 0.
  return getI64Imm((uint8_t)N->getAPIntValue().countTrailingOnes(), 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: {  // X86cmpm_imm_commute
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());

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

  }
  case 8: {  // 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 9: {  // 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 10: {  // inv_cond_XFORM
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());

  X86::CondCode CC = static_cast<X86::CondCode>(N->getZExtValue());
  return CurDAG->getTargetConstant(X86::GetOppositeBranchCondition(CC),
                                   SDLoc(N), MVT::i8);

  }
  case 11: {  // 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 12: {  // 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 13: {  // BTCBTSXForm
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());

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

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

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

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

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

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

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

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

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

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

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

  }
  case 19: {  // 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 20: {  // 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 21: {  // 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 22: {  // 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 23: {  // 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 24: {  // CommuteVPCOMCC
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());

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

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

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

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

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

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

  uint8_t Imm = N->getZExtValue();
  uint8_t NewImm = 0;
  for (unsigned i = 0; i != 2; ++i) {
    if (Imm & (1 << i))
      NewImm |= 0xf << (i * 4);
  }
  return getI8Imm(NewImm, SDLoc(N));

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

  uint8_t Imm = N->getZExtValue();
  uint8_t NewImm = 0;
  for (unsigned i = 0; i != 2; ++i) {
    if (Imm & (1 << i))
      NewImm |= 0xf << (i * 4);
  }
  return getI8Imm(NewImm ^ 0xff, SDLoc(N));

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

  uint8_t Imm = N->getZExtValue();
  uint8_t NewImm = 0;
  for (unsigned i = 0; i != 4; ++i) {
    if (Imm & (1 << i))
      NewImm |= 0x3 << (i * 2);
  }
  return getI8Imm(NewImm, SDLoc(N));

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

  uint8_t Imm = N->getZExtValue();
  uint8_t NewImm = 0;
  for (unsigned i = 0; i != 4; ++i) {
    if (Imm & (1 << i))
      NewImm |= 0x3 << (i * 2);
  }
  return getI8Imm(NewImm ^ 0xff, SDLoc(N));

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

  uint8_t Imm = N->getZExtValue();
  uint8_t NewImm = 0;
  for (unsigned i = 0; i != 2; ++i) {
    if (Imm & (1 << i))
      NewImm |= 0x3 << (i * 2);
  }
  return getI8Imm(NewImm, SDLoc(N));

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

  uint8_t Imm = N->getZExtValue();
  uint8_t NewImm = 0;
  for (unsigned i = 0; i != 2; ++i) {
    if (Imm & (1 << i))
      NewImm |= 0x3 << (i * 2);
  }
  return getI8Imm(NewImm ^ 0xf, SDLoc(N));

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

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

  }
  case 34: {  // 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
